commit fb2f72db27b96fba73ed525d1e14a141663f82cc
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Aug 1 11:17:40 2024 +0200

    Bump BASE-VER.
    
    2024-08-01  Jakub Jelinek  <jakub@redhat.com>
    
            * BASE-VER: Set to 14.2.1.

diff --git a/gcc/BASE-VER b/gcc/BASE-VER
index 07ea9fa4381..dab6a80f4a8 100644
--- a/gcc/BASE-VER
+++ b/gcc/BASE-VER
@@ -1 +1 @@
-14.2.0
+14.2.1

commit 973097d801a30385cd39a570624eefa7547f8ff3
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Aug 1 10:32:54 2024 +0200

    i386: Fix up *<extract_type>_vinsert<shuffletype><extract_suf>_0 [PR115981]
    
    The r14-537 change started canonicalizing VEC_MERGE operands based on
    swap_commutative_operands_p or if they have the same precedence least
    significant bit of the third operand.
    The *<extract_type>_vinsert<shuffletype><extract_suf>_0 pattern was
    added for combine matching and no longer triggers after that change,
    as it used the reg_or_0_operand as the first operand and VEC_DUPLICATE
    as the second.
    Now, reg_or_0_operand could be a REG, SUBREG of object or CONST_VECTOR.
    REG has commutative_operand_precedence -1 or -2, SUBREG of object -3,
    CONST_VECTOR -4, while VEC_DUPLICATE has 0, so VEC_DUPLICATE will always
    go first and REG, SUBREG or CONST_VECTOR second.
    
    This patch swaps the operands so that it matches again.
    
    2024-08-01  Jakub Jelinek  <jakub@redhat.com>
    
            PR target/115981
            * config/i386/sse.md
            (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Swap the
            first two VEC_MERGE operands, renumber match_operands and test
            for 0xF or 0x3 rather than 0xFFF0 or 0xFC immediate.
    
            * gcc.target/i386/avx512dq-pr90991-1.c: Add tests for no separate
            zero extension instructions.
            * gcc.target/i386/avx512dq-pr90991-2.c: Likewise.
    
    (cherry picked from commit df2b444a233e93b987adec76655ab89589b3fa10)

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 1bf50726e83..073aae293d4 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -19124,47 +19124,47 @@
 (define_insn "*<extract_type>_vinsert<shuffletype><extract_suf>_0"
   [(set (match_operand:AVX512_VEC 0 "register_operand" "=v,x,Yv")
 	(vec_merge:AVX512_VEC
-	  (match_operand:AVX512_VEC 1 "reg_or_0_operand" "v,C,C")
 	  (vec_duplicate:AVX512_VEC
-		(match_operand:<ssequartermode> 2 "nonimmediate_operand" "vm,xm,vm"))
+	    (match_operand:<ssequartermode> 1 "nonimmediate_operand" "vm,xm,vm"))
+	  (match_operand:AVX512_VEC 2 "reg_or_0_operand" "v,C,C")
 	  (match_operand:SI 3 "const_int_operand")))]
   "TARGET_AVX512F
    && (INTVAL (operands[3])
-       == (GET_MODE_UNIT_SIZE (<MODE>mode) == 4 ? 0xFFF0 : 0xFC))"
+       == (GET_MODE_UNIT_SIZE (<MODE>mode) == 4 ? 0xF : 0x3))"
 {
   if (which_alternative == 0)
-    return "vinsert<shuffletype><extract_suf>\t{$0, %2, %1, %0|%0, %1, %2, 0}";
+    return "vinsert<shuffletype><extract_suf>\t{$0, %1, %2, %0|%0, %2, %1, 0}";
   bool egpr_used = (TARGET_APX_EGPR
-		    && x86_extended_rex2reg_mentioned_p (operands[2]));
-  const char *align_templ = egpr_used ? "vmovaps\t{%2, %x0|%x0, %2}"
-				      : "vmovdqa\t{%2, %x0|%x0, %2}";
-  const char *unalign_templ = egpr_used ? "vmovups\t{%2, %x0|%x0, %2}"
-					: "vmovdqu\t{%2, %x0|%x0, %2}";
+		    && x86_extended_rex2reg_mentioned_p (operands[1]));
+  const char *align_templ = egpr_used ? "vmovaps\t{%1, %x0|%x0, %1}"
+				      : "vmovdqa\t{%1, %x0|%x0, %1}";
+  const char *unalign_templ = egpr_used ? "vmovups\t{%1, %x0|%x0, %1}"
+					: "vmovdqu\t{%1, %x0|%x0, %1}";
   switch (<MODE>mode)
     {
     case E_V8DFmode:
-      if (misaligned_operand (operands[2], <ssequartermode>mode))
-	return "vmovupd\t{%2, %x0|%x0, %2}";
+      if (misaligned_operand (operands[1], <ssequartermode>mode))
+	return "vmovupd\t{%1, %x0|%x0, %1}";
       else
-	return "vmovapd\t{%2, %x0|%x0, %2}";
+	return "vmovapd\t{%1, %x0|%x0, %1}";
     case E_V16SFmode:
-      if (misaligned_operand (operands[2], <ssequartermode>mode))
-	return "vmovups\t{%2, %x0|%x0, %2}";
+      if (misaligned_operand (operands[1], <ssequartermode>mode))
+	return "vmovups\t{%1, %x0|%x0, %1}";
       else
-	return "vmovaps\t{%2, %x0|%x0, %2}";
+	return "vmovaps\t{%1, %x0|%x0, %1}";
     case E_V8DImode:
-      if (misaligned_operand (operands[2], <ssequartermode>mode))
-	return which_alternative == 2 ? "vmovdqu64\t{%2, %x0|%x0, %2}"
+      if (misaligned_operand (operands[1], <ssequartermode>mode))
+	return which_alternative == 2 ? "vmovdqu64\t{%1, %x0|%x0, %1}"
 				      : unalign_templ;
       else
-	return which_alternative == 2 ? "vmovdqa64\t{%2, %x0|%x0, %2}"
+	return which_alternative == 2 ? "vmovdqa64\t{%1, %x0|%x0, %1}"
 				      : align_templ;
     case E_V16SImode:
-      if (misaligned_operand (operands[2], <ssequartermode>mode))
-	return which_alternative == 2 ? "vmovdqu32\t{%2, %x0|%x0, %2}"
+      if (misaligned_operand (operands[1], <ssequartermode>mode))
+	return which_alternative == 2 ? "vmovdqu32\t{%1, %x0|%x0, %1}"
 				      : unalign_templ;
       else
-	return which_alternative == 2 ? "vmovdqa32\t{%2, %x0|%x0, %2}"
+	return which_alternative == 2 ? "vmovdqa32\t{%1, %x0|%x0, %1}"
 				      : align_templ;
     default:
       gcc_unreachable ();
diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-pr90991-1.c b/gcc/testsuite/gcc.target/i386/avx512dq-pr90991-1.c
index 6c968126b7d..5d19b07bdee 100644
--- a/gcc/testsuite/gcc.target/i386/avx512dq-pr90991-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512dq-pr90991-1.c
@@ -7,6 +7,9 @@
 /* { dg-final { scan-assembler-times "vmovups\[ \t]\+\\(\[^\n\r]*\\), %xmm0" 1 } } */
 /* { dg-final { scan-assembler-times "vmovupd\[ \t]\+\\(\[^\n\r]*\\), %xmm0" 1 } } */
 /* { dg-final { scan-assembler-times "vmovdqu\[ \t]\+\\(\[^\n\r]*\\), %xmm0" 1 } } */
+/* { dg-final { scan-assembler-not "vmovaps\[ \t]\+%xmm0, %xmm0" } } */
+/* { dg-final { scan-assembler-not "vmovapd\[ \t]\+%xmm0, %xmm0" } } */
+/* { dg-final { scan-assembler-not "vmovdqa\[ \t]\+%xmm0, %xmm0" } } */
 
 #include <x86intrin.h>
 
diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-pr90991-2.c b/gcc/testsuite/gcc.target/i386/avx512dq-pr90991-2.c
index 7699c3149ae..68f53189d3e 100644
--- a/gcc/testsuite/gcc.target/i386/avx512dq-pr90991-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512dq-pr90991-2.c
@@ -7,6 +7,9 @@
 /* { dg-final { scan-assembler-times "vmovups\[ \t]\+\\(\[^\n\r]*\\), %ymm0" 1 } } */
 /* { dg-final { scan-assembler-times "vmovupd\[ \t]\+\\(\[^\n\r]*\\), %ymm0" 1 } } */
 /* { dg-final { scan-assembler-times "vmovdqu\[ \t]\+\\(\[^\n\r]*\\), %ymm0" 1 } } */
+/* { dg-final { scan-assembler-not "vmovaps\[ \t]\+%ymm0, %ymm0" } } */
+/* { dg-final { scan-assembler-not "vmovapd\[ \t]\+%ymm0, %ymm0" } } */
+/* { dg-final { scan-assembler-not "vmovdqa\[ \t]\+%ymm0, %ymm0" } } */
 
 #include <x86intrin.h>
 

commit ce84abae497ec2617a2eb12f40815639235be97c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jul 24 11:32:22 2024 +0100

    libstdc++: Fix std::vector<bool> for -std=gnu++14 -fconcepts [PR116070]
    
    This questionable combination of flags causes a number of errors. This
    one in std::vector<bool> needs to be fixed in the gcc-13 branch so I'm
    committing it separately to simplify backporting.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116070
            * include/bits/stl_bvector.h: Check feature test macro before
            using is_default_constructible_v.
    
    (cherry picked from commit 5fc9c40fea2481e56bf7bcc994cb40c71e28abb8)

diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h
index d567e26f4e4..4f1e7686a1c 100644
--- a/libstdc++-v3/include/bits/stl_bvector.h
+++ b/libstdc++-v3/include/bits/stl_bvector.h
@@ -593,7 +593,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 	_GLIBCXX20_CONSTEXPR
 	_Bvector_impl() _GLIBCXX_NOEXCEPT_IF(
 	  is_nothrow_default_constructible<_Bit_alloc_type>::value)
-#if __cpp_concepts
+#if __cpp_concepts && __glibcxx_type_trait_variable_templates
 	requires is_default_constructible_v<_Bit_alloc_type>
 #endif
 	: _Bit_alloc_type()

commit 9ba75a628e0214eb08673f1572c6fd06fe553525
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jul 24 11:32:22 2024 +0100

    libstdc++: Fix <ostream> and <istream> for -std=gnu++14 -fconcepts [PR116070]
    
    This questionable combination of flags causes a number of errors. The
    ones in the rvalue stream overloads need to be fixed in the gcc-14
    branch so I'm committing it separately to simplify backporting.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116070
            * include/std/istream: Check feature test macro before using
            is_class_v and is_same_v.
            * include/std/ostream: Likewise.
    
    (cherry picked from commit 6c22fe418cff57dad712c4b950638e6e2d09bd9c)

diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream
index 11d51d3e666..a2b207dae78 100644
--- a/libstdc++-v3/include/std/istream
+++ b/libstdc++-v3/include/std/istream
@@ -1069,7 +1069,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // 2328. Rvalue stream extraction should use perfect forwarding
   // 1203. More useful rvalue stream insertion
 
-#if __cpp_concepts >= 201907L
+#if __cpp_concepts >= 201907L && __glibcxx_type_trait_variable_templates
   template<typename _Is, typename _Tp>
     requires __derived_from_ios_base<_Is>
       && requires (_Is& __is, _Tp&& __t) { __is >> std::forward<_Tp>(__t); }
diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream
index 8a21758d0a3..12be6c4fd17 100644
--- a/libstdc++-v3/include/std/ostream
+++ b/libstdc++-v3/include/std/ostream
@@ -768,7 +768,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // _GLIBCXX_RESOLVE_LIB_DEFECTS
   // 1203. More useful rvalue stream insertion
 
-#if __cpp_concepts >= 201907L
+#if __cpp_concepts >= 201907L && __glibcxx_type_trait_variable_templates
   // Use concepts if possible because they're cheaper to evaluate.
   template<typename _Tp>
     concept __derived_from_ios_base = is_class_v<_Tp>

commit a1e166516f994751a8c87af033b92c15fae315c3
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Jul 5 20:00:04 2024 +0100

    libstdc++: Use reserved form of [[__likely__]] in <variant>
    
    We should not use [[unlikely]] before C++20, so use [[__unlikely__]]
    instead.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/variant (_Variant_storage::_M_reset): Use
            __unlikely__ form of attribute instead of unlikely.
    
    (cherry picked from commit 9f1cd51766f251aafe0f1b898892f79855892729)

diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant
index 748e9bae1cb..4e56134a6f7 100644
--- a/libstdc++-v3/include/std/variant
+++ b/libstdc++-v3/include/std/variant
@@ -490,7 +490,7 @@ namespace __variant
       constexpr void
       _M_reset()
       {
-	if (!_M_valid()) [[unlikely]]
+	if (!_M_valid()) [[__unlikely__]]
 	  return;
 
 	std::__do_visit<void>([](auto&& __this_mem) mutable

commit 5fcdb36fed0ef73c0dc995e0241bad72200ac8fa
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jun 12 14:53:00 2024 +0100

    libstdc++: Use __glibcxx_ranges_as_const to guard P2278R4 changes
    
    The P2278R4 additions for C++23 are currently guarded by a check for
    __cplusplus > 202002L but can use __glibcxx_ranges_as_const instead.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/ranges_base.h (const_iterator_t): Change
            preprocessor condition to use __glibcxx_ranges_as_const.
            (const_sentinel_t, range_const_reference_t): Likewise.
            (__access::__possibly_const_range, cbegin, cend, crbegin)
            (crend, cdata): Likewise.
            * include/bits/stl_iterator.h (iter_const_reference_t)
            (basic_const_iterator, const_iterator, const_sentinel)
            (make_const_iterator): Likewise.
    
    (cherry picked from commit 0755b2304bac9579fd5da337da8f861ccb1b042b)

diff --git a/libstdc++-v3/include/bits/ranges_base.h b/libstdc++-v3/include/bits/ranges_base.h
index 6597ffa532d..23c0b56ff22 100644
--- a/libstdc++-v3/include/bits/ranges_base.h
+++ b/libstdc++-v3/include/bits/ranges_base.h
@@ -513,7 +513,7 @@ namespace ranges
   template<range _Range>
     using sentinel_t = decltype(ranges::end(std::declval<_Range&>()));
 
-#if __cplusplus > 202002L
+#if __glibcxx_ranges_as_const // >= C++23
   template<range _Range>
     using const_iterator_t = const_iterator<iterator_t<_Range>>;
 
@@ -616,7 +616,7 @@ namespace ranges
     concept common_range
       = range<_Tp> && same_as<iterator_t<_Tp>, sentinel_t<_Tp>>;
 
-#if __cplusplus > 202002L
+#if __glibcxx_ranges_as_const // >= C++23
   template<typename _Tp>
     concept constant_range
       = input_range<_Tp> && std::__detail::__constant_iterator<iterator_t<_Tp>>;
@@ -624,7 +624,7 @@ namespace ranges
 
   namespace __access
   {
-#if __cplusplus > 202020L
+#if __glibcxx_ranges_as_const // >= C++23
     template<typename _Range>
       constexpr auto&
       __possibly_const_range(_Range& __r) noexcept
@@ -651,7 +651,7 @@ namespace ranges
 
     struct _CBegin
     {
-#if __cplusplus > 202002L
+#if __glibcxx_ranges_as_const // >= C++23
       template<__maybe_borrowed_range _Tp>
 	[[nodiscard]]
 	constexpr auto
@@ -679,7 +679,7 @@ namespace ranges
 
     struct _CEnd final
     {
-#if __cplusplus > 202002L
+#if __glibcxx_ranges_as_const // >= C++23
       template<__maybe_borrowed_range _Tp>
 	[[nodiscard]]
 	constexpr auto
@@ -707,7 +707,7 @@ namespace ranges
 
     struct _CRBegin
     {
-#if __cplusplus > 202002L
+#if __glibcxx_ranges_as_const // >= C++23
       template<__maybe_borrowed_range _Tp>
 	[[nodiscard]]
 	constexpr auto
@@ -735,7 +735,7 @@ namespace ranges
 
     struct _CREnd
     {
-#if __cplusplus > 202002L
+#if __glibcxx_ranges_as_const // >= C++23
       template<__maybe_borrowed_range _Tp>
 	[[nodiscard]]
 	constexpr auto
@@ -763,7 +763,7 @@ namespace ranges
 
     struct _CData
     {
-#if __cplusplus > 202002L
+#if __glibcxx_ranges_as_const // >= C++23
       template<__maybe_borrowed_range _Tp>
 	[[nodiscard]]
 	constexpr const auto*
diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h
index 560a10a7abe..d3823057270 100644
--- a/libstdc++-v3/include/bits/stl_iterator.h
+++ b/libstdc++-v3/include/bits/stl_iterator.h
@@ -2571,7 +2571,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 				      void>;
     };
 
-#if __cplusplus > 202020L
+#if __glibcxx_ranges_as_const // >= C++23
   template<indirectly_readable _It>
     using iter_const_reference_t
       = common_reference_t<const iter_value_t<_It>&&, iter_reference_t<_It>>;

commit 11b5ad5ba712c9c22e6eced415c839c67f617e52
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jul 10 10:29:52 2024 +0100

    libstdc++: Use direct-initialization for std::vector<bool>'s allocator [PR115854]
    
    The consensus in the standard committee is that this change shouldn't be
    necessary, and the Allocator requirements should require conversions
    between rebound allocators to be implicit. But we can make it work for
    now anyway.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/115854
            * include/bits/stl_bvector.h (_Bvector_base): Convert allocator
            to rebound type explicitly.
            * testsuite/23_containers/vector/allocator/115854.cc: New test.
            * testsuite/23_containers/vector/bool/allocator/115854.cc: New test.
    
    (cherry picked from commit c5efc6eca8e3eee7038ae218cf7e2dbe9ed9d82a)

diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h
index 4f1e7686a1c..ffc7428a927 100644
--- a/libstdc++-v3/include/bits/stl_bvector.h
+++ b/libstdc++-v3/include/bits/stl_bvector.h
@@ -654,7 +654,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
       _GLIBCXX20_CONSTEXPR
       _Bvector_base(const allocator_type& __a)
-      : _M_impl(__a) { }
+      : _M_impl(_Bit_alloc_type(__a)) { }
 
 #if __cplusplus >= 201103L
       _Bvector_base(_Bvector_base&&) = default;
diff --git a/libstdc++-v3/testsuite/23_containers/vector/allocator/115854.cc b/libstdc++-v3/testsuite/23_containers/vector/allocator/115854.cc
new file mode 100644
index 00000000000..6c9016b311f
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/allocator/115854.cc
@@ -0,0 +1,10 @@
+// { dg-do compile { target c++11 } }
+
+#include <vector>
+#include <testsuite_allocator.h>
+
+__gnu_test::ExplicitConsAlloc<int> alloc;
+std::vector<int, __gnu_test::ExplicitConsAlloc<int>> v;
+std::vector<int, __gnu_test::ExplicitConsAlloc<int>> v1(alloc);
+std::vector<int, __gnu_test::ExplicitConsAlloc<int>> v2(v1, alloc);
+std::vector<int, __gnu_test::ExplicitConsAlloc<int>> v3(std::move(v1), alloc);
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/allocator/115854.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/allocator/115854.cc
new file mode 100644
index 00000000000..14b28cc3e96
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/allocator/115854.cc
@@ -0,0 +1,10 @@
+// { dg-do compile { target c++11 } }
+
+#include <vector>
+#include <testsuite_allocator.h>
+
+__gnu_test::ExplicitConsAlloc<bool> alloc;
+std::vector<bool, __gnu_test::ExplicitConsAlloc<bool>> v;
+std::vector<bool, __gnu_test::ExplicitConsAlloc<bool>> v1(alloc);
+std::vector<bool, __gnu_test::ExplicitConsAlloc<bool>> v2(v1, alloc);
+std::vector<bool, __gnu_test::ExplicitConsAlloc<bool>> v3(std::move(v1), alloc);

commit 095be59fd737093dffb5a4cb83f9e91d6840299b
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Jun 7 17:44:29 2024 +0100

    libstdc++: Define __cpp_lib_ranges in <algorithm>
    
    The __cpp_lib_ranges macro is missing from <algorithm>.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/algorithm: Define __glibcxx_want_ranges.
            * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Check
            feature test macro in C++20 mode.
    
    (cherry picked from commit 77e84dc4e4e60ec5e7d6d1124e226452aa558108)

diff --git a/libstdc++-v3/include/std/algorithm b/libstdc++-v3/include/std/algorithm
index a4602a8807e..163e6b5dca7 100644
--- a/libstdc++-v3/include/std/algorithm
+++ b/libstdc++-v3/include/std/algorithm
@@ -67,6 +67,7 @@
 #define __glibcxx_want_constexpr_algorithms
 #define __glibcxx_want_freestanding_algorithm
 #define __glibcxx_want_parallel_algorithm
+#define __glibcxx_want_ranges
 #define __glibcxx_want_ranges_contains
 #define __glibcxx_want_ranges_find_last
 #define __glibcxx_want_ranges_fold
diff --git a/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc b/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc
index 8c61a614a47..08a47aa95c3 100644
--- a/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/headers/algorithm/synopsis.cc
@@ -19,6 +19,14 @@
 
 #include <algorithm>
 
+#if __cplusplus >= 202002L
+#ifndef __cpp_lib_ranges
+# error "Feature test macro for ranges is missing in <algorithm>"
+#elif __cpp_lib_ranges < 201911L
+# error "Feature test macro for ranges has wrong value in <algorithm>"
+#endif
+#endif
+
 namespace std
  {
   // 25.1, non-modifying sequence operations:

commit 7d269e34a318a8c7206edd0ac388113aed3fe902
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jun 18 16:59:52 2024 +0100

    libstdc++: Make std::any_cast<void> ill-formed (LWG 3305)
    
    LWG 3305 was approved earlier this year in Tokyo. We need to give an
    error if using std::any_cast<void>, but std::any_cast<void()> is valid
    (but always returns null).
    
    libstdc++-v3/ChangeLog:
    
            * include/std/any (any_cast(any*), any_cast(const any*)): Add
            static assertion to reject void types, as per LWG 3305.
            * testsuite/20_util/any/misc/lwg3305.cc: New test.
    
    (cherry picked from commit 466ee78e3e975627440992dac67973ee314a0551)

diff --git a/libstdc++-v3/include/std/any b/libstdc++-v3/include/std/any
index 690ddc2aa57..e4709b1ce04 100644
--- a/libstdc++-v3/include/std/any
+++ b/libstdc++-v3/include/std/any
@@ -554,6 +554,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   template<typename _ValueType>
     inline const _ValueType* any_cast(const any* __any) noexcept
     {
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 3305. any_cast<void>
+      static_assert(!is_void_v<_ValueType>);
+
+      // As an optimization, don't bother instantiating __any_caster for
+      // function types, since std::any can only hold objects.
       if constexpr (is_object_v<_ValueType>)
 	if (__any)
 	  return static_cast<_ValueType*>(__any_caster<_ValueType>(__any));
@@ -563,6 +569,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   template<typename _ValueType>
     inline _ValueType* any_cast(any* __any) noexcept
     {
+      static_assert(!is_void_v<_ValueType>);
+
       if constexpr (is_object_v<_ValueType>)
 	if (__any)
 	  return static_cast<_ValueType*>(__any_caster<_ValueType>(__any));
diff --git a/libstdc++-v3/testsuite/20_util/any/misc/lwg3305.cc b/libstdc++-v3/testsuite/20_util/any/misc/lwg3305.cc
new file mode 100644
index 00000000000..49f5d747ab3
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/any/misc/lwg3305.cc
@@ -0,0 +1,15 @@
+// { dg-do compile { target c++17 } }
+
+// LWG 3305. any_cast<void>
+
+#include <any>
+
+void
+test_lwg3305()
+{
+  std::any a;
+  (void) std::any_cast<const void>(&a); // { dg-error "here" }
+  const std::any a2;
+  (void) std::any_cast<volatile void>(&a2); // { dg-error "here" }
+}
+// { dg-error "static assertion failed" "" { target *-*-* } 0 }

commit 85d07df7be5fcc7326cecb9ee1ad643b89ea50d2
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jul 10 10:27:24 2024 +0100

    libstdc++: Make std::basic_format_context non-copyable [PR114387]
    
    Users are not supposed to create objects of this type, and there's no
    reason it needs to be copyable. LWG 4061 makes it non-copyable and
    non-default constructible.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/114387
            * include/std/format (basic_format_context): Define copy
            operations as deleted, as per LWG 4061.
            * testsuite/std/format/context.cc: New test.
    
    (cherry picked from commit d8cd8521185436ea45ed48c5dd481277e9b8a98d)

diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
index 48deba2bcb2..16cee0d3c74 100644
--- a/libstdc++-v3/include/std/format
+++ b/libstdc++-v3/include/std/format
@@ -3851,6 +3851,12 @@ namespace __format
       : _M_args(__args), _M_out(std::move(__out)), _M_loc(__loc)
       { }
 
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 4061. Should std::basic_format_context be
+      //       default-constructible/copyable/movable?
+      basic_format_context(const basic_format_context&) = delete;
+      basic_format_context& operator=(const basic_format_context&) = delete;
+
       template<typename _Out2, typename _CharT2, typename _Context2>
 	friend _Out2
 	__format::__do_vformat_to(_Out2, basic_string_view<_CharT2>,
@@ -3858,7 +3864,6 @@ namespace __format
 				  const locale*);
 
     public:
-      basic_format_context() = default;
       ~basic_format_context() = default;
 
       using iterator = _Out;
diff --git a/libstdc++-v3/testsuite/std/format/context.cc b/libstdc++-v3/testsuite/std/format/context.cc
new file mode 100644
index 00000000000..5cc5e9c9ba2
--- /dev/null
+++ b/libstdc++-v3/testsuite/std/format/context.cc
@@ -0,0 +1,36 @@
+// { dg-do compile { target c++20 } }
+
+#include <format>
+
+template<typename Context>
+concept format_context_reqs = std::is_destructible_v<Context>
+  && (!std::is_default_constructible_v<Context>)
+  && (!std::is_copy_constructible_v<Context>)
+  && (!std::is_move_constructible_v<Context>)
+  && (!std::is_copy_assignable_v<Context>)
+  && (!std::is_move_assignable_v<Context>)
+  && requires (Context& ctx, const Context& cctx) {
+    typename Context::iterator;
+    typename Context::char_type;
+    requires std::same_as<typename Context::template formatter_type<int>,
+			  std::formatter<int, typename Context::char_type>>;
+    { ctx.locale() } -> std::same_as<std::locale>;
+    { ctx.out() } -> std::same_as<typename Context::iterator>;
+    { ctx.advance_to(ctx.out()) } -> std::same_as<void>;
+    { cctx.arg(1) } -> std::same_as<std::basic_format_arg<Context>>;
+  };
+
+template<typename Out, typename charT>
+constexpr bool
+check(std::basic_format_context<Out, charT>*)
+{
+  using context = std::basic_format_context<Out, charT>;
+  static_assert( format_context_reqs<context> );
+  static_assert( std::is_same_v<typename context::iterator, Out> );
+  static_assert( std::is_same_v<typename context::char_type, charT> );
+  return true;
+}
+
+static_assert( check( (std::format_context*)nullptr) );
+static_assert( check( (std::wformat_context*)nullptr) );
+static_assert( check( (std::basic_format_context<char*, char>*)nullptr) );

commit a78480c4e92f6aa2e4b736fd393037df2267b7f8
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Jul 25 13:52:12 2024 +0100

    libstdc++: Remove std::basic_format_args default constructor (LWG 4106)
    
    There's no valid use case for default constructing this type, so the
    committee approved removing the default constructor.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/format (basic_format_args): Remove default
            constructor, as per LWG 4106.
            * testsuite/std/format/arguments/args.cc: Check it isn't default
            constructible.
    
    (cherry picked from commit 5be55447e256302324f38f04316a437909ae5847)

diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
index 16cee0d3c74..8f6a82a1fd4 100644
--- a/libstdc++-v3/include/std/format
+++ b/libstdc++-v3/include/std/format
@@ -3667,8 +3667,6 @@ namespace __format
 	{ return {_Format_arg::template _S_to_enum<_Args>()...}; }
 
     public:
-      basic_format_args() noexcept = default;
-
       template<typename... _Args>
 	basic_format_args(const _Store<_Args...>& __store) noexcept;
 
diff --git a/libstdc++-v3/testsuite/std/format/arguments/args.cc b/libstdc++-v3/testsuite/std/format/arguments/args.cc
index eba129ff894..16ca71caecb 100644
--- a/libstdc++-v3/testsuite/std/format/arguments/args.cc
+++ b/libstdc++-v3/testsuite/std/format/arguments/args.cc
@@ -3,6 +3,10 @@
 #include <format>
 #include <testsuite_hooks.h>
 
+// LWG 4106. basic_format_args should not be default-constructible
+static_assert( ! std::is_default_constructible_v<std::format_args> );
+static_assert( ! std::is_default_constructible_v<std::wformat_args> );
+
 template<typename Ctx, typename T>
 bool equals(std::basic_format_arg<Ctx> fmt_arg, T expected) {
   return std::visit_format_arg([=](auto arg_val) {

commit d8e564539f20a409302e6a692188ce4f5eedab68
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Jun 10 14:08:16 2024 +0100

    libstdc++: Fix std::tr2::dynamic_bitset shift operations [PR115399]
    
    The shift operations for dynamic_bitset fail to zero out words where the
    non-zero bits were shifted to a completely different word.
    
    For a right shift we don't need to sanitize the unused bits in the high
    word, because we know they were already clear and a right shift doesn't
    change that.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/115399
            * include/tr2/dynamic_bitset (operator>>=): Remove redundant
            call to _M_do_sanitize.
            * include/tr2/dynamic_bitset.tcc (_M_do_left_shift): Zero out
            low bits in words that should no longer be populated.
            (_M_do_right_shift): Likewise for high bits.
            * testsuite/tr2/dynamic_bitset/pr115399.cc: New test.
    
    (cherry picked from commit bd3a312728fbf8c35a09239b9180269f938f872e)

diff --git a/libstdc++-v3/include/tr2/dynamic_bitset b/libstdc++-v3/include/tr2/dynamic_bitset
index 0e4e8894287..274c4f6a138 100644
--- a/libstdc++-v3/include/tr2/dynamic_bitset
+++ b/libstdc++-v3/include/tr2/dynamic_bitset
@@ -815,10 +815,7 @@ namespace tr2
       operator>>=(size_type __pos)
       {
 	if (__builtin_expect(__pos < this->_M_Nb, 1))
-	  {
-	    this->_M_do_right_shift(__pos);
-	    this->_M_do_sanitize();
-	  }
+	  this->_M_do_right_shift(__pos);
 	else
 	  this->_M_do_reset();
 	return *this;
diff --git a/libstdc++-v3/include/tr2/dynamic_bitset.tcc b/libstdc++-v3/include/tr2/dynamic_bitset.tcc
index 63ba6f285c7..5aac7d88ee3 100644
--- a/libstdc++-v3/include/tr2/dynamic_bitset.tcc
+++ b/libstdc++-v3/include/tr2/dynamic_bitset.tcc
@@ -60,8 +60,7 @@ namespace tr2
 	      this->_M_w[__wshift] = this->_M_w[0] << __offset;
 	    }
 
-	  //// std::fill(this->_M_w.begin(), this->_M_w.begin() + __wshift,
-	  ////          static_cast<_WordT>(0));
+	  std::fill_n(this->_M_w.begin(), __wshift, _WordT(0));
 	}
     }
 
@@ -88,8 +87,7 @@ namespace tr2
 	      this->_M_w[__limit] = this->_M_w[_M_w.size()-1] >> __offset;
 	    }
 
-	  ////std::fill(this->_M_w.begin() + __limit + 1, this->_M_w.end(),
-	  ////          static_cast<_WordT>(0));
+	  std::fill_n(this->_M_w.end() - __wshift, __wshift, _WordT(0));
 	}
     }
 
diff --git a/libstdc++-v3/testsuite/tr2/dynamic_bitset/pr115399.cc b/libstdc++-v3/testsuite/tr2/dynamic_bitset/pr115399.cc
new file mode 100644
index 00000000000..e626e4a5d15
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr2/dynamic_bitset/pr115399.cc
@@ -0,0 +1,37 @@
+// { dg-do run { target c++11 } }
+
+// PR libstdc++/115399
+// std::tr2::dynamic_bitset shift behaves differently from std::bitset
+
+#include <tr2/dynamic_bitset>
+#include <testsuite_hooks.h>
+
+void
+test_left_shift()
+{
+  std::tr2::dynamic_bitset<> b(65);
+  b[0] = 1;
+  auto b2 = b << 64;
+  VERIFY(b2[64] == 1);
+  VERIFY(b2[0] == 0);
+  b <<= 64;
+  VERIFY( b2 == b );
+}
+
+void
+test_right_shift()
+{
+  std::tr2::dynamic_bitset<> b(65);
+  b[64] = 1;
+  auto b2 = b >> 64;
+  VERIFY(b2[64] == 0);
+  VERIFY(b2[0] == 1);
+  b >>= 64;
+  VERIFY( b2 == b );
+}
+
+int main()
+{
+  test_left_shift();
+  test_right_shift();
+}

commit 8d52ae39b9d80b5f4e27294960752a57211020aa
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Jun 20 16:13:10 2024 +0100

    libstdc++: Initialize base in test allocator's constructor
    
    This fixes a warning from one of the test allocators:
    warning: base class 'class std::allocator<__gnu_test::copy_tracker>' should be explicitly initialized in the copy constructor [-Wextra]
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/util/testsuite_allocator.h (tracker_allocator):
            Initialize base class in copy constructor.
    
    (cherry picked from commit e2fb245b07f489ed5bfd9a945e0053b4a3211245)

diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h
index b7739f13ca3..2f9c453cbd1 100644
--- a/libstdc++-v3/testsuite/util/testsuite_allocator.h
+++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h
@@ -154,7 +154,7 @@ namespace __gnu_test
       tracker_allocator()
       { }
 
-      tracker_allocator(const tracker_allocator&)
+      tracker_allocator(const tracker_allocator& a) : Alloc(a)
       { }
 
       ~tracker_allocator()

commit c79e73e7eda6c6c113ad4a6a88d798ef2da917fd
Author: Deev Patel <dkp10000@gmail.com>
Date:   Thu Jun 6 11:53:25 2024 +0100

    libstdc++: Add missing constexpr to __atomic_impl::__clear_padding
    
    This is called from the std::atomic<floating-point-type> constructor,
    which needs to be usable in constant expressions.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/atomic_base.h (__atomic_impl::__clear_padding):
            Add missing constexpr specifier.
            * testsuite/29_atomics/atomic_float/constinit.cc: New test.
    
    Co-authored-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit ae91b5dd14920ff9671db8ff80c0d763d25f977f)

diff --git a/libstdc++-v3/include/bits/atomic_base.h b/libstdc++-v3/include/bits/atomic_base.h
index dd360302f80..3a23c7881cd 100644
--- a/libstdc++-v3/include/bits/atomic_base.h
+++ b/libstdc++-v3/include/bits/atomic_base.h
@@ -968,7 +968,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       }
 
     template<typename _Tp>
-      _GLIBCXX_ALWAYS_INLINE _Tp*
+      _GLIBCXX_ALWAYS_INLINE _GLIBCXX14_CONSTEXPR _Tp*
       __clear_padding(_Tp& __val) noexcept
       {
 	auto* __ptr = std::__addressof(__val);
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/constinit.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/constinit.cc
new file mode 100644
index 00000000000..6b3f4f76b4c
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/constinit.cc
@@ -0,0 +1,3 @@
+// { dg-do compile { target c++20 } }
+#include <atomic>
+constinit std::atomic<float> a(0.0f);

commit c6372417e50bf4d094dac720b5f091c0d4aa7e2d
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed May 22 18:38:36 2024 +0100

    libstdc++: Add [[nodiscard]] to some std::locale functions
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/locale_classes.h (locale::combine)
            (locale::name, locale::operator==, locale::operator!=)
            (locale::operator(), locale::classic): Add nodiscard
            attribute.
            * include/bits/locale_classes.tcc (has_facet, use_facet):
            Likewise.
            * testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for
            nodiscard diagnostic.
            * testsuite/22_locale/locale/cons/2.cc: Cast use_facet
            expression to void, to suppress diagnostic.
            * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
            * testsuite/22_locale/locale/operations/2.cc: Add dg-warning.
    
    (cherry picked from commit fd1a674ff5f37e74fbbdcdb85d78399e963eb401)

diff --git a/libstdc++-v3/include/bits/locale_classes.h b/libstdc++-v3/include/bits/locale_classes.h
index a2e94217006..50a748066f1 100644
--- a/libstdc++-v3/include/bits/locale_classes.h
+++ b/libstdc++-v3/include/bits/locale_classes.h
@@ -240,6 +240,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
      *  @throw  std::runtime_error if __other has no facet of type _Facet.
     */
     template<typename _Facet>
+      _GLIBCXX_NODISCARD
       locale
       combine(const locale& __other) const;
 
@@ -248,7 +249,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
      *  @brief  Return locale name.
      *  @return  Locale name or "*" if unnamed.
     */
-    _GLIBCXX_DEFAULT_ABI_TAG
+    _GLIBCXX_NODISCARD _GLIBCXX_DEFAULT_ABI_TAG
     string
     name() const;
 
@@ -269,6 +270,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
      *  @return  True if other and this refer to the same locale instance, are
      *		 copies, or have the same name.  False otherwise.
     */
+    _GLIBCXX_NODISCARD
     bool
     operator==(const locale& __other) const throw();
 
@@ -279,6 +281,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
      *  @param  __other  The locale to compare against.
      *  @return  ! (*this == __other)
     */
+    _GLIBCXX_NODISCARD
     bool
     operator!=(const locale& __other) const throw()
     { return !(this->operator==(__other)); }
@@ -300,6 +303,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
      *  @return  True if collate<_Char> facet compares __s1 < __s2, else false.
     */
     template<typename _Char, typename _Traits, typename _Alloc>
+      _GLIBCXX_NODISCARD
       bool
       operator()(const basic_string<_Char, _Traits, _Alloc>& __s1,
 		 const basic_string<_Char, _Traits, _Alloc>& __s2) const;
@@ -321,6 +325,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     /**
      *  @brief  Return reference to the C locale.
     */
+    _GLIBCXX_NODISCARD
     static const locale&
     classic();
 
diff --git a/libstdc++-v3/include/bits/locale_classes.tcc b/libstdc++-v3/include/bits/locale_classes.tcc
index 63097582dec..6d3de23e8c0 100644
--- a/libstdc++-v3/include/bits/locale_classes.tcc
+++ b/libstdc++-v3/include/bits/locale_classes.tcc
@@ -162,6 +162,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    *  @return  true if @p __loc contains a facet of type _Facet, else false.
   */
   template<typename _Facet>
+    _GLIBCXX_NODISCARD
     inline bool
     has_facet(const locale& __loc) throw()
     {
@@ -191,6 +192,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wdangling-reference"
   template<typename _Facet>
+    _GLIBCXX_NODISCARD
     inline const _Facet&
     use_facet(const locale& __loc)
     {
diff --git a/libstdc++-v3/testsuite/22_locale/locale/cons/12438.cc b/libstdc++-v3/testsuite/22_locale/locale/cons/12438.cc
index 7ff3a487745..4838e1ba693 100644
--- a/libstdc++-v3/testsuite/22_locale/locale/cons/12438.cc
+++ b/libstdc++-v3/testsuite/22_locale/locale/cons/12438.cc
@@ -45,7 +45,7 @@ void test01(int iters)
 	  locale loc2 = locale("");
 	  VERIFY( !has_facet<MyFacet>(loc2) );
 	  
-	  loc1.combine<MyFacet>(loc2);
+	  loc1.combine<MyFacet>(loc2); // { dg-warning "nodiscard" "" { target c++17 } }
 	  VERIFY( false );
 	}
       catch (std::runtime_error&)
diff --git a/libstdc++-v3/testsuite/22_locale/locale/cons/2.cc b/libstdc++-v3/testsuite/22_locale/locale/cons/2.cc
index 12478dbfdc2..dce150effea 100644
--- a/libstdc++-v3/testsuite/22_locale/locale/cons/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/locale/cons/2.cc
@@ -68,7 +68,7 @@ void test01()
     { VERIFY( false ); }
 
   try 
-    { use_facet<gnu_facet>(loc02); }
+    { (void) use_facet<gnu_facet>(loc02); }
   catch(bad_cast& obj)
     { VERIFY( true ); }
   catch(...)
diff --git a/libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc b/libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
index 24af4142cd9..98d744de91e 100644
--- a/libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
+++ b/libstdc++-v3/testsuite/22_locale/locale/cons/unicode.cc
@@ -79,7 +79,7 @@ void test01()
     { VERIFY( false ); }
 
   try 
-    { use_facet<gnu_facet>(loc13); }
+    { (void) use_facet<gnu_facet>(loc13); }
   catch(bad_cast& obj)
     { VERIFY( true ); }
   catch(...)
diff --git a/libstdc++-v3/testsuite/22_locale/locale/operations/2.cc b/libstdc++-v3/testsuite/22_locale/locale/operations/2.cc
index 899535137ba..917adecac56 100644
--- a/libstdc++-v3/testsuite/22_locale/locale/operations/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/locale/operations/2.cc
@@ -48,7 +48,7 @@ void test02()
   // Derivation, MF check.
   locale loc_gnu(loc_c, new gnu_collate);
   gnu_count = 0;
-  loc_gnu(s01, s02);
+  loc_gnu(s01, s02); // { dg-warning "nodiscard" "" { target c++17 } }
   VERIFY( gnu_count == 1 );
 }
 

commit fb8da401213dd23b098400d641ca527e09d59c9e
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Aug 2 00:23:49 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2de0bedcd49..d828c55306f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2024-08-01  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-08-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/115981
+	* config/i386/sse.md
+	(*<extract_type>_vinsert<shuffletype><extract_suf>_0): Swap the
+	first two VEC_MERGE operands, renumber match_operands and test
+	for 0xF or 0x3 rather than 0xFFF0 or 0xFC immediate.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 5b64322fc60..ba6415cbd75 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240801
+20240802
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 65a87525570..794d365f469 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2024-08-01  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-08-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/115981
+	* gcc.target/i386/avx512dq-pr90991-1.c: Add tests for no separate
+	zero extension instructions.
+	* gcc.target/i386/avx512dq-pr90991-2.c: Likewise.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 2cb6f88ab5a..5687e8fc11a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,142 @@
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-05-22  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/locale_classes.h (locale::combine)
+	(locale::name, locale::operator==, locale::operator!=)
+	(locale::operator(), locale::classic): Add nodiscard
+	attribute.
+	* include/bits/locale_classes.tcc (has_facet, use_facet):
+	Likewise.
+	* testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for
+	nodiscard diagnostic.
+	* testsuite/22_locale/locale/cons/2.cc: Cast use_facet
+	expression to void, to suppress diagnostic.
+	* testsuite/22_locale/locale/cons/unicode.cc: Likewise.
+	* testsuite/22_locale/locale/operations/2.cc: Add dg-warning.
+
+2024-08-01  Deev Patel  <dkp10000@gmail.com>
+
+	Backported from master:
+	2024-06-08  Deev Patel  <dkp10000@gmail.com>
+		    Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/atomic_base.h (__atomic_impl::__clear_padding):
+	Add missing constexpr specifier.
+	* testsuite/29_atomics/atomic_float/constinit.cc: New test.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
+
+	* testsuite/util/testsuite_allocator.h (tracker_allocator):
+	Initialize base class in copy constructor.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-12  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/115399
+	* include/tr2/dynamic_bitset (operator>>=): Remove redundant
+	call to _M_do_sanitize.
+	* include/tr2/dynamic_bitset.tcc (_M_do_left_shift): Zero out
+	low bits in words that should no longer be populated.
+	(_M_do_right_shift): Likewise for high bits.
+	* testsuite/tr2/dynamic_bitset/pr115399.cc: New test.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-07-25  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/format (basic_format_args): Remove default
+	constructor, as per LWG 4106.
+	* testsuite/std/format/arguments/args.cc: Check it isn't default
+	constructible.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-07-10  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/114387
+	* include/std/format (basic_format_context): Define copy
+	operations as deleted, as per LWG 4061.
+	* testsuite/std/format/context.cc: New test.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/any (any_cast(any*), any_cast(const any*)): Add
+	static assertion to reject void types, as per LWG 3305.
+	* testsuite/20_util/any/misc/lwg3305.cc: New test.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-08  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/algorithm: Define __glibcxx_want_ranges.
+	* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Check
+	feature test macro in C++20 mode.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-07-10  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/115854
+	* include/bits/stl_bvector.h (_Bvector_base): Convert allocator
+	to rebound type explicitly.
+	* testsuite/23_containers/vector/allocator/115854.cc: New test.
+	* testsuite/23_containers/vector/bool/allocator/115854.cc: New test.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-13  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/ranges_base.h (const_iterator_t): Change
+	preprocessor condition to use __glibcxx_ranges_as_const.
+	(const_sentinel_t, range_const_reference_t): Likewise.
+	(__access::__possibly_const_range, cbegin, cend, crbegin)
+	(crend, cdata): Likewise.
+	* include/bits/stl_iterator.h (iter_const_reference_t)
+	(basic_const_iterator, const_iterator, const_sentinel)
+	(make_const_iterator): Likewise.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-07-06  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/variant (_Variant_storage::_M_reset): Use
+	__unlikely__ form of attribute instead of unlikely.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116070
+	* include/std/istream: Check feature test macro before using
+	is_class_v and is_same_v.
+	* include/std/ostream: Likewise.
+
+2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-07-24  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116070
+	* include/bits/stl_bvector.h: Check feature test macro before
+	using is_default_constructible_v.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit 1287b4abc67a915ef6b63fb0753a0bea41de47f1
Author: Patrick Palka <ppalka@redhat.com>
Date:   Wed Jul 17 21:02:52 2024 -0400

    c++: prev declared hidden tmpl friend inst [PR112288]
    
    When partially instantiating a previously declared hidden template
    friend definition (at class template scope) such as slot_allocated in
    the first testcase below, tsubst_friend_function needs to go through
    all existing specializations thereof and make them point to the new
    definition.
    
    But when the previous declaration was also at class template scope,
    old_decl is not the most general template, instead it's the partial
    instantiation, and since instantiations are relative to the most general
    template, old_decl's DECL_TEMPLATE_INSTANTIATIONS is empty.  So we
    to consistently use the most general template here.  And when adjusting
    DECL_TI_ARGS to match, only the innermost template arguments should be
    preserved; the outer ones should correspond to the new definition.
    
    Otherwise we fail a checking-only sanity check in instantiate_decl in
    the first testcase, and in the second/third we end up emitting multiple
    definitions of the template friend instantiation, resulting in a link
    failure.
    
            PR c++/112288
    
    gcc/cp/ChangeLog:
    
            * pt.cc (tsubst_friend_function): When adjusting existing
            specializations after defining a previously declared template
            friend, consider the most general template and correct
            DECL_TI_ARGS adjustment.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/template/friend80.C: New test.
            * g++.dg/template/friend81.C: New test.
            * g++.dg/template/friend81a.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 30dd420a06ad7d2adf4a672d176caee632f8168a)

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 80d0ca6d0dd..713946a1ff1 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -11582,6 +11582,7 @@ tsubst_friend_function (tree decl, tree args)
 	    ;
 	  else
 	    {
+	      tree old_template = most_general_template (old_decl);
 	      tree new_template = TI_TEMPLATE (new_friend_template_info);
 	      tree new_args = TI_ARGS (new_friend_template_info);
 
@@ -11619,7 +11620,7 @@ tsubst_friend_function (tree decl, tree args)
 		  /* Reassign any specializations already in the hash table
 		     to the new more general template, and add the
 		     additional template args.  */
-		  for (t = DECL_TEMPLATE_INSTANTIATIONS (old_decl);
+		  for (t = DECL_TEMPLATE_INSTANTIATIONS (old_template);
 		       t != NULL_TREE;
 		       t = TREE_CHAIN (t))
 		    {
@@ -11632,15 +11633,15 @@ tsubst_friend_function (tree decl, tree args)
 
 		      decl_specializations->remove_elt (&elt);
 
-		      DECL_TI_ARGS (spec)
-			= add_outermost_template_args (new_args,
-						       DECL_TI_ARGS (spec));
+		      tree& spec_args = DECL_TI_ARGS (spec);
+		      spec_args = add_outermost_template_args
+			(new_args, INNERMOST_TEMPLATE_ARGS (spec_args));
 
 		      register_specialization
-			(spec, new_template, DECL_TI_ARGS (spec), true, 0);
+			(spec, new_template, spec_args, true, 0);
 
 		    }
-		  DECL_TEMPLATE_INSTANTIATIONS (old_decl) = NULL_TREE;
+		  DECL_TEMPLATE_INSTANTIATIONS (old_template) = NULL_TREE;
 		}
 	    }
 
diff --git a/gcc/testsuite/g++.dg/template/friend80.C b/gcc/testsuite/g++.dg/template/friend80.C
new file mode 100644
index 00000000000..5c417e12dd0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend80.C
@@ -0,0 +1,25 @@
+// PR c++/112288
+// { dg-do compile { target c++11 } }
+
+template<class T>
+struct slot {
+  template<class U>
+  friend constexpr bool slot_allocated(slot<T>, U);
+};
+
+template<class T>
+struct allocate_slot {
+  template<class U>
+  friend constexpr bool slot_allocated(slot<T>, U) { return true; }
+};
+
+template<class T, bool = slot_allocated(slot<T>{}, 42)>
+constexpr int next(int) { return 1; }
+
+template<class T>
+constexpr int next(...) { return (allocate_slot<T>{}, 0); }
+
+// slot_allocated<slot<int>, int>() not defined yet
+static_assert(next<int>(0) == 0, "");
+// now it's defined, need to make existing spec point to defn or else ICE
+static_assert(next<int>(0) == 1, "");
diff --git a/gcc/testsuite/g++.dg/template/friend81.C b/gcc/testsuite/g++.dg/template/friend81.C
new file mode 100644
index 00000000000..5d3a2889c0f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend81.C
@@ -0,0 +1,28 @@
+// PR c++/112288
+// { dg-do link }
+
+template<class T> struct A;
+template<class T> struct B;
+
+A<int>* a;
+B<int>* b;
+
+template<class T>
+struct B {
+  template<class U>
+  friend int f(A<T>*, B*, U);
+};
+
+template struct B<int>; // f declared
+int n = f(a, b, 0); // f<int> specialized
+
+template<class T>
+struct A {
+  template<class U>
+  friend int f(A*, B<T>*, U) { return 42; }
+};
+
+template struct A<int>; // f defined, need to make existing f<int> point to defn
+int m = f(a, b, 0); // reuses existing specialization f<int>
+
+int main() { }
diff --git a/gcc/testsuite/g++.dg/template/friend81a.C b/gcc/testsuite/g++.dg/template/friend81a.C
new file mode 100644
index 00000000000..4557fd3c03a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend81a.C
@@ -0,0 +1,30 @@
+// PR c++/112288
+// { dg-do link }
+// A version of friend81.C where A and B have a different number of template
+// parameters.
+
+template<class T> struct A;
+template<class T, class = void> struct B;
+
+A<int>* a;
+B<int>* b;
+
+template<class T, class>
+struct B {
+  template<class U>
+  friend int f(A<T>*, B*, U);
+};
+
+template struct B<int>; // f declared
+int n = f(a, b, 0); // f<int> specialized
+
+template<class T>
+struct A {
+  template<class U>
+  friend int f(A*, B<T>*, U) { return 42; }
+};
+
+template struct A<int>; // f defined, need to make existing f<int> point to defn
+int m = f(a, b, 0); // reuses existing specialization f<int>
+
+int main() { }

commit e548a881a4540378151f6195e47e8413fe75a0d6
Author: Patrick Palka <ppalka@redhat.com>
Date:   Tue Jul 23 11:37:31 2024 -0400

    c++: missing SFINAE during alias CTAD [PR115296]
    
    During the alias CTAD transformation, if substitution failed for some
    guide we should just silently discard the guide.  We currently do
    discard the guide, but not silently, as in the below testcase which
    we diagnose forming a too-large array type when transforming the
    user-defined deduction guides.
    
    This patch fixes this by using complain=tf_none instead of
    tf_warning_or_error throughout alias_ctad_tweaks.
    
            PR c++/115296
    
    gcc/cp/ChangeLog:
    
            * pt.cc (alias_ctad_tweaks): Use complain=tf_none instead of
            tf_warning_or_error.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/class-deduction-alias23.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit f70281222df432a7bec1271904c5ebefd7f2c934)

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 713946a1ff1..13907858273 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -30369,7 +30369,7 @@ alias_ctad_tweaks (tree tmpl, tree uguides)
 			  (INNERMOST_TEMPLATE_PARMS (fullatparms)));
     }
 
-  tsubst_flags_t complain = tf_warning_or_error;
+  tsubst_flags_t complain = tf_none;
   tree aguides = NULL_TREE;
   tree atparms = INNERMOST_TEMPLATE_PARMS (fullatparms);
   unsigned natparms = TREE_VEC_LENGTH (atparms);
diff --git a/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias23.C b/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias23.C
new file mode 100644
index 00000000000..117212c67de
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias23.C
@@ -0,0 +1,19 @@
+// PR c++/115296
+// { dg-do compile { target c++20 } }
+
+using size_t = decltype(sizeof(0));
+
+template<class T, size_t N = size_t(-1)>
+struct span { span(T); };
+
+template<class T, size_t N>
+span(T(&)[N]) -> span<T, N>; // { dg-bogus "array exceeds maximum" }
+
+template<class T, size_t N>
+requires (sizeof(T[N]) != 42) // { dg-bogus "array exceeds maximum" }
+span(T*) -> span<T, N>;
+
+template<class T>
+using array_view = span<T>;
+
+array_view x = 0;

commit 241f710c851aa6a8627c3ddba1e126d8e503e1b0
Author: Patrick Palka <ppalka@redhat.com>
Date:   Tue Jul 23 13:16:14 2024 -0400

    c++: normalizing ttp constraints [PR115656]
    
    Here we normalize the constraint same_as<T, bool> for the first
    time during ttp coercion of B / UU, specifically constraint subsumption
    checking.  During this normalization the set of in-scope template
    parameters i.e. current_template_parms is empty, which we rely on
    during normalization of the ttp constraints since we pass in_decl=NULL_TREE
    to norm_info.  And this tricks the satisfaction cache into thinking that
    the satisfaction value of same_as<T, bool> is independent of its template
    parameters, and we incorrectly conflate the satisfaction value with
    T = bool vs T = long and accept the specialization A<long, B>.
    
    Since is_compatible_template_arg rewrites the ttp's constraints to
    be in terms of the argument template's parameters, and since it's
    the only caller of weakly_subsumes, the latter funcion can instead
    pass in_decl=tmpl to avoid relying on current_template_parms.  This
    patch implements this, and in turns renames weakly_subsumes to
    ttp_subsumes to reflect that this predicate is now hardcoded for this
    one caller.
    
            PR c++/115656
    
    gcc/cp/ChangeLog:
    
            * constraint.cc (weakly_subsumes): Pass in_decl=tmpl to
            get_normalized_constraints_from_info.  Rename to ...
            (ttp_subsumes): ... this.
            * cp-tree.h (weakly_subsumes): Rename to ...
            (ttp_subsumes): ... this.
            * pt.cc (is_compatible_template_arg): Adjust after renaming.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/concepts-ttp7.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 2861eb34e30973cb991a7964af7cfeae014a98b0)

diff --git a/gcc/cp/constraint.cc b/gcc/cp/constraint.cc
index 8a3b5d80ba7..b6c6a5e2330 100644
--- a/gcc/cp/constraint.cc
+++ b/gcc/cp/constraint.cc
@@ -3610,13 +3610,14 @@ strictly_subsumes (tree ci, tree tmpl)
   return subsumes (n1, n2) && !subsumes (n2, n1);
 }
 
-/* Returns true when the constraints in CI subsume the
-   associated constraints of TMPL.  */
+/* Returns true when the template template parameter constraints in CI
+   subsume the associated constraints of the template template argument
+   TMPL.  */
 
 bool
-weakly_subsumes (tree ci, tree tmpl)
+ttp_subsumes (tree ci, tree tmpl)
 {
-  tree n1 = get_normalized_constraints_from_info (ci, NULL_TREE);
+  tree n1 = get_normalized_constraints_from_info (ci, tmpl);
   tree n2 = get_normalized_constraints_from_decl (tmpl);
 
   return subsumes (n1, n2);
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index ed637015a93..3f607313db6 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -8606,7 +8606,7 @@ extern tree find_template_parameters		(tree, tree);
 extern bool equivalent_constraints              (tree, tree);
 extern bool equivalently_constrained            (tree, tree);
 extern bool strictly_subsumes			(tree, tree);
-extern bool weakly_subsumes			(tree, tree);
+extern bool ttp_subsumes			(tree, tree);
 extern int more_constrained                     (tree, tree);
 extern bool at_least_as_constrained             (tree, tree);
 extern bool constraints_equivalent_p            (tree, tree);
diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 13907858273..ea4a6c9bf53 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -8504,7 +8504,7 @@ is_compatible_template_arg (tree parm, tree arg, tree args)
         return false;
     }
 
-  return weakly_subsumes (parm_cons, arg);
+  return ttp_subsumes (parm_cons, arg);
 }
 
 // Convert a placeholder argument into a binding to the original
diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-ttp7.C b/gcc/testsuite/g++.dg/cpp2a/concepts-ttp7.C
new file mode 100644
index 00000000000..2ce884b995c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/concepts-ttp7.C
@@ -0,0 +1,12 @@
+// PR c++/115656
+// { dg-do compile { target c++20 } }
+
+template<class T, class U> concept same_as = __is_same(T, U);
+
+template<same_as<bool> T, template<same_as<bool>> class UU>
+struct A { };
+
+template<same_as<bool>> class B;
+
+A<bool, B> a1;
+A<long, B> a2; // { dg-error "constraint failure" }

commit 59e3934346f4546d7ef4fc82d300644b52bcefb0
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Jul 25 09:02:13 2024 -0400

    libstdc++: fix uses of explicit object parameter [PR116038]
    
    The type of an implicit object parameter is always the current class.
    For an explicit object parameter however, its deduced type can be a
    derived class of the current class.  So when combining multiple
    implicit-object overloads into a single explicit-object overload we need
    to account for this possibility.  For example when accessing a member of
    the current class through an explicit object parameter, it may now be a
    derived class from which the member is not accessible, as in the below
    testcases.
    
    This pitfall is discussed[1] in the deducing this paper.  The general
    solution is to cast the explicit object parameter to (a reference to)
    the current class rather than e.g. using std::forward which preserves
    the deduced type.
    
    This patch corrects the existing problematic uses of explicit object
    parameters in the library, all of which forward the parameter via
    std::forward, to instead cast the parameter to the current class via
    our __like_t alias template.  Note that unlike the paper's like_t,
    ours always returns a reference so we can just write
    
      __like_t<Self, B>(self)
    
    instead of
    
      (_like_t<Self, B>&&)self
    
    as the paper does.
    
    [1]: https://wg21.link/P0847#name-lookup-within-member-functions (and the
    section after that)
    
            PR libstdc++/116038
    
    libstdc++-v3/ChangeLog:
    
            * include/std/functional (_Bind_front::operator()): Use __like_t
            instead of std::forward when forwarding __self.
            (_Bind_back::operator()): Likewise.
            * include/std/ranges (_Partial::operator()): Likewise.
            (_Pipe::operator()): Likewise.
            * testsuite/20_util/function_objects/bind_back/116038.cc: New test.
            * testsuite/20_util/function_objects/bind_front/116038.cc: New test.
            * testsuite/std/ranges/adaptors/116038.cc: New test.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 1066a95aa33eee2d2bd9c8324f34dedb967f338c)

diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional
index 99364286a72..7788a963757 100644
--- a/libstdc++-v3/include/std/functional
+++ b/libstdc++-v3/include/std/functional
@@ -944,7 +944,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	noexcept(is_nothrow_invocable_v<__like_t<_Self, _Fd>,
 					__like_t<_Self, _BoundArgs>..., _CallArgs...>)
 	{
-	  return _S_call(std::forward<_Self>(__self), _BoundIndices(),
+	  return _S_call(__like_t<_Self, _Bind_front>(__self), _BoundIndices(),
 			 std::forward<_CallArgs>(__call_args)...);
 	}
 #else
@@ -1072,7 +1072,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	noexcept(is_nothrow_invocable_v<__like_t<_Self, _Fd>,
 					_CallArgs..., __like_t<_Self, _BoundArgs>...>)
 	{
-	  return _S_call(std::forward<_Self>(__self), _BoundIndices(),
+	  return _S_call(__like_t<_Self, _Bind_back>(__self), _BoundIndices(),
 			 std::forward<_CallArgs>(__call_args)...);
 	}
 
diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index afce818376b..59a25153620 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -1032,7 +1032,7 @@ namespace views::__adaptor
 	    return _Adaptor{}(std::forward<_Range>(__r),
 			      std::forward<decltype(__args)>(__args)...);
 	  };
-	  return std::apply(__forwarder, std::forward<_Self>(__self)._M_args);
+	  return std::apply(__forwarder, __like_t<_Self, _Partial>(__self)._M_args);
 	}
 #else
       template<typename _Range>
@@ -1081,7 +1081,10 @@ namespace views::__adaptor
 	requires __adaptor_invocable<_Adaptor, _Range, __like_t<_Self, _Arg>>
 	constexpr auto
 	operator()(this _Self&& __self, _Range&& __r)
-	{ return _Adaptor{}(std::forward<_Range>(__r), std::forward<_Self>(__self)._M_arg); }
+	{
+	  return _Adaptor{}(std::forward<_Range>(__r),
+			    __like_t<_Self, _Partial>(__self)._M_arg);
+	}
 #else
       template<typename _Range>
 	requires __adaptor_invocable<_Adaptor, _Range, const _Arg&>
@@ -1184,8 +1187,8 @@ namespace views::__adaptor
 	constexpr auto
 	operator()(this _Self&& __self, _Range&& __r)
 	{
-	  return (std::forward<_Self>(__self)._M_rhs
-		  (std::forward<_Self>(__self)._M_lhs
+	  return (__like_t<_Self, _Pipe>(__self)._M_rhs
+		  (__like_t<_Self, _Pipe>(__self)._M_lhs
 		   (std::forward<_Range>(__r))));
 	}
 #else
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/bind_back/116038.cc b/libstdc++-v3/testsuite/20_util/function_objects/bind_back/116038.cc
new file mode 100644
index 00000000000..ed392b1434e
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/function_objects/bind_back/116038.cc
@@ -0,0 +1,27 @@
+// PR libstdc++/116038
+// { dg-do compile { target c++23 } }
+
+#include <functional>
+#include <utility>
+
+struct A { };
+struct B { };
+
+template<class... Ts>
+struct overloaded : private Ts... {
+  overloaded(Ts...);
+  using Ts::operator()...;
+};
+
+int apply_a(A, int);
+int apply_b(B, int);
+
+int main() {
+  overloaded o = { std::bind_back(apply_a, 1),
+		   std::bind_back(apply_b, 2) };
+  A a;
+  o(a);
+  std::as_const(o)(a);
+  std::move(o)(a);
+  std::move(std::as_const(o))(a);
+}
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/116038.cc b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/116038.cc
new file mode 100644
index 00000000000..3bf1226375b
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/116038.cc
@@ -0,0 +1,27 @@
+// PR libstdc++/116038
+// { dg-do compile { target c++20 } }
+
+#include <functional>
+#include <utility>
+
+struct A { };
+struct B { };
+
+template<class... Ts>
+struct overloaded : private Ts... {
+  overloaded(Ts...);
+  using Ts::operator()...;
+};
+
+int apply_a(int, A);
+int apply_b(int, B);
+
+int main() {
+  overloaded o = { std::bind_front(apply_a, 1),
+		   std::bind_front(apply_b, 2) };
+  A a;
+  o(a);
+  std::as_const(o)(a);
+  std::move(o)(a);
+  std::move(std::as_const(o))(a);
+}
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/116038.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/116038.cc
new file mode 100644
index 00000000000..1afdf3d06d1
--- /dev/null
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/116038.cc
@@ -0,0 +1,29 @@
+// PR libstdc++/116038
+// { dg-do compile { target c++20 } }
+
+#include <ranges>
+#include <utility>
+
+struct A { };
+struct B { };
+
+template<class... Ts>
+struct overloaded : private Ts... {
+  overloaded(Ts...);
+  using Ts::operator()...;
+};
+
+int x[5];
+struct integralish { operator int() const; } i;
+
+int main() {
+  overloaded o1 = { std::views::drop(i) };
+  o1(x);
+  std::move(o1)(x);
+  std::as_const(o1)(x);
+
+  overloaded o2 = { std::views::drop(i) | std::views::take(i) };
+  o2(x);
+  std::move(o2)(x);
+  std::as_const(o1)(x);
+}

commit 37e54ffd2a0a18eec23c90bdf438c01a0393328a
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Jul 25 19:00:23 2024 -0400

    c++: alias of alias tmpl with dependent attrs [PR115897]
    
    As a follow-up to r15-2047-g7954bb4fcb6fa8, we also need to consider
    dependent attributes when recursing into a non-template alias that names
    a dependent alias template specialization (and so STF_STRIP_DEPENDENT
    is set), otherwise in the first testcase below we undesirably strip B
    all the way to T instead of to A<T>.
    
    We also need to move the typedef recursion case of strip_typedefs up to
    get checked before the compound type recursion cases.  Otherwise for C
    below (which ultimately aliases T*) we end up stripping it to T* instead
    of to A<T*> because the POINTER_TYPE recursion dominates the typedef
    recursion.  It also means we issue an unexpected extra error in the
    third testcase below.
    
    Ideally we would also want to consider dependent attributes on
    non-template aliases, so that we accept the second testcase below, but
    making that work correctly would require broader changes to e.g.
    structural_comptypes.
    
            PR c++/115897
    
    gcc/cp/ChangeLog:
    
            * tree.cc (strip_typedefs): Move up the typedef recursion case.
            Never strip a dependent alias template-id that has dependent
            attributes.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/alias-decl-78.C: New test.
            * g++.dg/cpp0x/alias-decl-79.C: New test.
            * g++.dg/cpp0x/alias-decl-pr92206-1a.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 9bcad238837e2100978cd839c343c488f72e1d4a)

diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc
index 41fdf67f757..d90244609c8 100644
--- a/gcc/cp/tree.cc
+++ b/gcc/cp/tree.cc
@@ -1607,11 +1607,32 @@ strip_typedefs (tree t, bool *remove_attributes /* = NULL */,
   if (t == TYPE_CANONICAL (t))
     return t;
 
-  if (!(flags & STF_STRIP_DEPENDENT)
-      && dependent_alias_template_spec_p (t, nt_opaque))
-    /* DR 1558: However, if the template-id is dependent, subsequent
-       template argument substitution still applies to the template-id.  */
-    return t;
+  if (typedef_variant_p (t))
+    {
+      if ((flags & STF_USER_VISIBLE)
+	  && !user_facing_original_type_p (t))
+	return t;
+
+      if (alias_template_specialization_p (t, nt_opaque))
+	{
+	  if (dependent_alias_template_spec_p (t, nt_opaque)
+	      && (!(flags & STF_STRIP_DEPENDENT)
+		  || any_dependent_type_attributes_p (DECL_ATTRIBUTES
+						      (TYPE_NAME (t)))))
+	    /* DR 1558: However, if the template-id is dependent, subsequent
+	       template argument substitution still applies to the template-id.  */
+	    return t;
+	}
+      else
+	/* If T is a non-template alias or typedef, we can assume that
+	   instantiating its definition will hit any substitution failure,
+	   so we don't need to retain it here as well.  */
+	flags |= STF_STRIP_DEPENDENT;
+
+      result = strip_typedefs (DECL_ORIGINAL_TYPE (TYPE_NAME (t)),
+			       remove_attributes, flags);
+      goto stripped;
+    }
 
   switch (TREE_CODE (t))
     {
@@ -1805,23 +1826,9 @@ strip_typedefs (tree t, bool *remove_attributes /* = NULL */,
     }
 
   if (!result)
-    {
-      if (typedef_variant_p (t))
-	{
-	  if ((flags & STF_USER_VISIBLE)
-	      && !user_facing_original_type_p (t))
-	    return t;
-	  /* If T is a non-template alias or typedef, we can assume that
-	     instantiating its definition will hit any substitution failure,
-	     so we don't need to retain it here as well.  */
-	  if (!alias_template_specialization_p (t, nt_opaque))
-	    flags |= STF_STRIP_DEPENDENT;
-	  result = strip_typedefs (DECL_ORIGINAL_TYPE (TYPE_NAME (t)),
-				   remove_attributes, flags);
-	}
-      else
-	result = TYPE_MAIN_VARIANT (t);
-    }
+    result = TYPE_MAIN_VARIANT (t);
+
+stripped:
   /*gcc_assert (!typedef_variant_p (result)
 	      || dependent_alias_template_spec_p (result, nt_opaque)
 	      || ((flags & STF_USER_VISIBLE)
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-78.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-78.C
new file mode 100644
index 00000000000..a52c0622e46
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-78.C
@@ -0,0 +1,34 @@
+// PR c++/115897
+// { dg-do compile { target c++11 } }
+
+template<class T, class U>
+struct is_same { static constexpr bool value = __is_same(T, U); };
+
+#if __cpp_variable_templates
+template<class T, class U>
+constexpr bool is_same_v = __is_same(T, U);
+#endif
+
+template<class T>
+using A [[gnu::vector_size(16)]] = T;
+
+template<class T>
+void f() {
+  using B = A<T>;
+  static_assert(!is_same<T, B>::value, "");
+#if __cpp_variable_templates
+  static_assert(!is_same_v<T, B>, "");
+#endif
+};
+
+template<class T>
+void g() {
+  using C = A<T*>;
+  static_assert(!is_same<T*, C>::value, "");
+#if __cpp_variable_templates
+  static_assert(!is_same_v<T*, C>, "");
+#endif
+};
+
+template void f<float>();
+template void g<float>();
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-79.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-79.C
new file mode 100644
index 00000000000..e0f07475cc1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-79.C
@@ -0,0 +1,37 @@
+// PR c++/115897
+// { dg-do compile { target c++11 } }
+
+template<class T, class U>
+struct is_same { static constexpr bool value = __is_same(T, U); };
+
+#if __cpp_variable_templates
+template<class T, class U>
+constexpr bool is_same_v = __is_same(T, U);
+#endif
+
+template<class T> struct A;
+
+template<class T>
+void f() {
+  using B [[gnu::vector_size(16)]] = T;
+  static_assert(!is_same<T, B>::value, "");        // { dg-bogus "" "" { xfail *-*-* } }
+  static_assert(!is_same<A<T>, A<B>>::value, "");  // { dg-bogus "" "" { xfail *-*-* } }
+#if __cpp_variable_templates
+  static_assert(!is_same_v<T, B>, "");             // { dg-bogus "" "" { xfail c++14 } }
+  static_assert(!is_same_v<A<T>, A<B>>, "");       // { dg-bogus "" "" { xfail c++14 } }
+#endif
+};
+
+template<class T>
+void g() {
+  using C [[gnu::vector_size(16)]] = T*;
+  static_assert(!is_same<T*, C>::value, "");       // { dg-bogus "" "" { xfail *-*-* } }
+  static_assert(!is_same<A<T*>, A<C>>::value, ""); // { dg-bogus "" "" { xfail *-*-* } }
+#if __cpp_variable_templates
+  static_assert(!is_same_v<T*, C>, "");            // { dg-bogus "" "" { xfail c++14 } }
+  static_assert(!is_same_v<A<T*>, A<C>>, "");      // { dg-bogus "" "" { xfail c++14 } }
+#endif
+};
+
+template void f<float>();
+template void g<float>();
diff --git a/gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-1a.C b/gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-1a.C
new file mode 100644
index 00000000000..09781f68bb6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-1a.C
@@ -0,0 +1,10 @@
+// A version of alias-decl-pr92206-1.C where alias2 is a compound type.
+// { dg-require-effective-target c++11 }
+
+template<typename> struct A {};
+template<typename T1, typename T2 = typename T1::value> using alias1 = A<T1>;
+template<typename T> class B {
+  using alias2 = alias1<A<T>>*; // { dg-error {no type named 'value'} }
+  A<alias2> a; // { dg-bogus {no type named 'value'} }
+};
+B<int> b;

commit 81db6857686c2d7932949afb948419a575bc0b3f
Author: Patrick Palka <ppalka@redhat.com>
Date:   Mon Jul 29 16:37:19 2024 -0400

    c++: generic lambda in default template argument [PR88313]
    
    Here we're rejecting the generic lambda inside the default template
    argument ultimately because auto_is_implicit_function_template_parm_p
    doesn't get set during parsing of the lambda's parameter list, due
    to the !processing_template_parmlist restriction.  But when parsing a
    lambda parameter list we should always set that flag regardless of where
    the lambda appears.  This patch makes sure of this via a local lambda_p
    flag.
    
            PR c++/88313
    
    gcc/cp/ChangeLog:
    
            * parser.cc (cp_parser_lambda_declarator_opt): Pass
            lambda_p=true to cp_parser_parameter_declaration_clause.
            (cp_parser_direct_declarator): Pass lambda_p=false to
            to cp_parser_parameter_declaration_clause.
            (cp_parser_parameter_declaration_clause): Add bool lambda_p
            parameter.  Consider lambda_p instead of current_class_type
            when setting parser->auto_is_implicit_function_template_parm_p.
            Don't consider processing_template_parmlist.
            (cp_parser_requirement_parameter_list): Pass lambda_p=false
            to cp_parser_parameter_declaration_clause.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/lambda-targ6.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 72a7ab891ae0061841c4eb641ef6ab7719bf0369)

diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index 7e81c1010c4..00cf128522a 100644
--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -2598,7 +2598,7 @@ static tree cp_parser_type_id_1
 static void cp_parser_type_specifier_seq
   (cp_parser *, cp_parser_flags, bool, bool, cp_decl_specifier_seq *);
 static tree cp_parser_parameter_declaration_clause
-  (cp_parser *, cp_parser_flags);
+  (cp_parser *, cp_parser_flags, bool);
 static tree cp_parser_parameter_declaration_list
   (cp_parser *, cp_parser_flags, auto_vec<tree> *);
 static cp_parameter_declarator *cp_parser_parameter_declaration
@@ -11867,7 +11867,7 @@ cp_parser_lambda_declarator_opt (cp_parser* parser, tree lambda_expr)
       /* Parse parameters.  */
       param_list
 	= cp_parser_parameter_declaration_clause
-	    (parser, CP_PARSER_FLAGS_TYPENAME_OPTIONAL);
+	    (parser, CP_PARSER_FLAGS_TYPENAME_OPTIONAL, /*lambda_p=*/true);
 
       /* Default arguments shall not be specified in the
 	 parameter-declaration-clause of a lambda-declarator.  */
@@ -23903,7 +23903,8 @@ cp_parser_direct_declarator (cp_parser* parser,
 
 	      /* Parse the parameter-declaration-clause.  */
 	      params
-		= cp_parser_parameter_declaration_clause (parser, flags);
+		= cp_parser_parameter_declaration_clause (parser, flags,
+							  /*lambda_p=*/false);
 	      const location_t parens_end
 		= cp_lexer_peek_token (parser->lexer)->location;
 
@@ -25252,13 +25253,17 @@ function_being_declared_is_template_p (cp_parser* parser)
 
    The parser flags FLAGS is used to control type-specifier parsing.
 
+   LAMBDA_P is true if this is the parameter-declaration-clause of
+   a lambda-declarator.
+
    Returns a representation for the parameter declarations.  A return
    value of NULL indicates a parameter-declaration-clause consisting
    only of an ellipsis.  */
 
 static tree
 cp_parser_parameter_declaration_clause (cp_parser* parser,
-					cp_parser_flags flags)
+					cp_parser_flags flags,
+					bool lambda_p)
 {
   tree parameters;
   cp_token *token;
@@ -25267,15 +25272,15 @@ cp_parser_parameter_declaration_clause (cp_parser* parser,
   auto cleanup = make_temp_override
     (parser->auto_is_implicit_function_template_parm_p);
 
-  if (!processing_specialization
-      && !processing_template_parmlist
-      && !processing_explicit_instantiation
-      /* default_arg_ok_p tracks whether this is a parameter-clause for an
-         actual function or a random abstract declarator.  */
-      && parser->default_arg_ok_p)
-    if (!current_function_decl
-	|| (current_class_type && LAMBDA_TYPE_P (current_class_type)))
-      parser->auto_is_implicit_function_template_parm_p = true;
+  if (lambda_p
+      || (!processing_specialization
+	  && !processing_template_parmlist
+	  && !processing_explicit_instantiation
+	  /* default_arg_ok_p tracks whether this is a parameter-clause for an
+	     actual function or a random abstract declarator.  */
+	  && parser->default_arg_ok_p
+	  && !current_function_decl))
+    parser->auto_is_implicit_function_template_parm_p = true;
 
   /* Peek at the next token.  */
   token = cp_lexer_peek_token (parser->lexer);
@@ -31472,7 +31477,8 @@ cp_parser_requirement_parameter_list (cp_parser *parser)
     return error_mark_node;
 
   tree parms = (cp_parser_parameter_declaration_clause
-		(parser, CP_PARSER_FLAGS_TYPENAME_OPTIONAL));
+		(parser, CP_PARSER_FLAGS_TYPENAME_OPTIONAL,
+		 /*lambda_p=*/false));
 
   if (!parens.require_close (parser))
     return error_mark_node;
diff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-targ6.C b/gcc/testsuite/g++.dg/cpp2a/lambda-targ6.C
new file mode 100644
index 00000000000..51728a040e2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/lambda-targ6.C
@@ -0,0 +1,15 @@
+// PR c++/88313
+// { dg-do compile { target c++20 } }
+
+template<int N = [](auto x) { return x; }(42)>
+constexpr int f() { return N; }
+
+template<auto F = [](auto x) { return x; }>
+constexpr auto g() { return F; }
+
+template<class T = decltype([](auto x) { return x; })>
+constexpr int h(T t = {}) { return t(42); }
+
+static_assert(f() == 42);
+static_assert(g()(42) == 42);
+static_assert(h() == 42);

commit 79d32baea4a94dd1d4e267a0e172fb15c238fb37
Author: Yang Yujie <yangyujie@loongson.cn>
Date:   Tue Jul 23 10:04:26 2024 +0800

    LoongArch: Remove gawk extension from a generator script.
    
    gcc/ChangeLog:
    
            * config/loongarch/genopts/gen-evolution.awk: Do not use
            "length()" to compute the size of an array.
    
    (cherry picked from commit c48f38288fb17b70784ae5e71cb741e664da023a)

diff --git a/gcc/config/loongarch/genopts/gen-evolution.awk b/gcc/config/loongarch/genopts/gen-evolution.awk
index 4d105afa906..1c8004e4146 100644
--- a/gcc/config/loongarch/genopts/gen-evolution.awk
+++ b/gcc/config/loongarch/genopts/gen-evolution.awk
@@ -1,4 +1,4 @@
-#!/usr/bin/gawk
+#!/usr/bin/awk -f
 #
 # A simple script that generates loongarch-evolution.h
 # from genopts/isa-evolution.in
@@ -94,8 +94,9 @@ function gen_cpucfg_useful_idx()
         idx_bucket[cpucfg_word[i]] = 1
 
     delete idx_list
+    j = 1
     for (i in idx_bucket)
-        idx_list[length(idx_list)-1] = i+0
+        idx_list[j++] = i+0
     delete idx_bucket
 
     asort (idx_list)
@@ -108,7 +109,7 @@ function gen_cpucfg_useful_idx()
     print ""
 
     printf ("static constexpr int N_CPUCFG_WORDS = %d;\n",
-            idx_list[length(idx_list)] + 1)
+            idx_list[j - 1] + 1)
 
     delete idx_list
 }

commit 30f4fa3f53e4c1476b4cb771f8d006c03804788a
Author: Haochen Jiang <haochen.jiang@intel.com>
Date:   Thu Jul 25 16:16:05 2024 +0800

    i386: Add non-optimize prefetchi intrins
    
    Under -O0, with the "newly" introduced intrins, the variable will be
    transformed as mem instead of the origin symbol_ref. The compiler will
    then treat the operand as invalid and turn the operation into nop, which
    is not expected. Use macro for non-optimize to keep the variable as
    symbol_ref just as how prefetch intrin does.
    
    gcc/ChangeLog:
    
            * config/i386/prfchiintrin.h
            (_m_prefetchit0): Add macro for non-optimized option.
            (_m_prefetchit1): Ditto.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/prefetchi-1b.c: New test.

diff --git a/gcc/config/i386/prfchiintrin.h b/gcc/config/i386/prfchiintrin.h
index dfca89c7d16..d6580e504c0 100644
--- a/gcc/config/i386/prfchiintrin.h
+++ b/gcc/config/i386/prfchiintrin.h
@@ -37,6 +37,7 @@
 #define __DISABLE_PREFETCHI__
 #endif /* __PREFETCHI__ */
 
+#ifdef __OPTIMIZE__
 extern __inline void
 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 _m_prefetchit0 (void* __P)
@@ -50,6 +51,14 @@ _m_prefetchit1 (void* __P)
 {
   __builtin_ia32_prefetchi (__P, 2);
 }
+#else
+#define _m_prefetchit0(P)	\
+  __builtin_ia32_prefetchi(P, 3);
+
+#define _m_prefetchit1(P)	\
+  __builtin_ia32_prefetchi(P, 2);
+
+#endif
 
 #ifdef __DISABLE_PREFETCHI__
 #undef __DISABLE_PREFETCHI__
diff --git a/gcc/testsuite/gcc.target/i386/prefetchi-1b.c b/gcc/testsuite/gcc.target/i386/prefetchi-1b.c
new file mode 100644
index 00000000000..93139554d3c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/prefetchi-1b.c
@@ -0,0 +1,26 @@
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-mprefetchi -O0" } */
+/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit0\[ \\t\]+bar\\(%rip\\)" 1 } } */
+/* { dg-final { scan-assembler-times "\[ \\t\]+prefetchit1\[ \\t\]+bar\\(%rip\\)" 1 } } */
+
+#include <x86intrin.h>
+
+int
+bar (int a)
+{
+  return a + 1;
+}
+
+int
+foo1 (int b)
+{
+  _m_prefetchit0 (bar);
+  return bar (b) + 1;
+}
+
+int
+foo2 (int b)
+{
+  _m_prefetchit1 (bar);
+  return bar (b) + 1;
+}

commit a295076bee293aa3112c615f9af7a27231816a36
Author: liuhongt <hongtao.liu@intel.com>
Date:   Wed Jul 24 11:29:23 2024 +0800

    Refine constraint "Bk" to define_special_memory_constraint.
    
    For below pattern, RA may still allocate r162 as v/k register, try to
    reload for address with leaq __libc_tsd_CTYPE_B@gottpoff(%rip), %rsi
    which result a linker error.
    
    (set (reg:DI 162)
         (mem/u/c:DI
           (const:DI (unspec:DI
                     [(symbol_ref:DI ("a") [flags 0x60]  <var_decl 0x7f621f6e1c60 a>)]
                     UNSPEC_GOTNTPOFF))
    
    Quote from H.J for why linker issue an error.
    >What do these do:
    >
    >        leaq    __libc_tsd_CTYPE_B@gottpoff(%rip), %rax
    >        vmovq   (%rax), %xmm0
    >
    >From x86-64 TLS psABI:
    >
    >The assembler generates for the x@gottpoff(%rip) expressions a R X86
    >64 GOTTPOFF relocation for the symbol x which requests the linker to
    >generate a GOT entry with a R X86 64 TPOFF64 relocation. The offset of
    >the GOT entry relative to the end of the instruction is then used in
    >the instruction. The R X86 64 TPOFF64 relocation is pro- cessed at
    >program startup time by the dynamic linker by looking up the symbol x
    >in the modules loaded at that point. The offset is written in the GOT
    >entry and later loaded by the addq instruction.
    >
    >The above code sequence looks wrong to me.
    
    gcc/ChangeLog:
    
            PR target/116043
            * config/i386/constraints.md (Bk): Refine to
            define_special_memory_constraint.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr116043.c: New test.
    
    (cherry picked from commit bc1fda00d5f20e2f3e77a50b2822562b6e0040b2)

diff --git a/gcc/config/i386/constraints.md b/gcc/config/i386/constraints.md
index 7508d7a58bd..b760e7c221a 100644
--- a/gcc/config/i386/constraints.md
+++ b/gcc/config/i386/constraints.md
@@ -187,7 +187,7 @@
   "@internal Vector memory operand."
   (match_operand 0 "vector_memory_operand"))
 
-(define_memory_constraint "Bk"
+(define_special_memory_constraint "Bk"
   "@internal TLS address that allows insn using non-integer registers."
   (and (match_operand 0 "memory_operand")
        (not (match_test "ix86_gpr_tls_address_pattern_p (op)"))))
diff --git a/gcc/testsuite/gcc.target/i386/pr116043.c b/gcc/testsuite/gcc.target/i386/pr116043.c
new file mode 100644
index 00000000000..76553496c10
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr116043.c
@@ -0,0 +1,33 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx512bf16 -O3" } */
+/* { dg-final { scan-assembler-not {(?n)lea.*@gottpoff} } } */
+
+extern __thread int a, c, i, j, k, l;
+int *b;
+struct d {
+  int e;
+} f, g;
+char *h;
+
+void m(struct d *n) {
+  b = &k;
+  for (; n->e; b++, n--) {
+    i = b && a;
+    if (i)
+      j = c;
+  }
+}
+
+char *o(struct d *n) {
+  for (; n->e;)
+    return h;
+}
+
+int q() {
+  if (l)
+    return 1;
+  int p = *o(&g);
+  m(&f);
+  m(&g);
+  l = p;
+}

commit 14fa2b2ae7f49dee5e7e7469243e281e48d925b9
Author: Andrew Pinski <quic_apinski@quicinc.com>
Date:   Thu Aug 1 10:33:34 2024 -0700

    forwprop: Don't add uses to dce list if debug statement [PR116156]
    
    The problem here is that when forwprop does a copy prop, into a statement,
    we mark the uses of that statement as possibly need to be removed. But it just
    happened that statement was a debug statement, there will be a difference when
    compiling with debuging info turned on vs off; this is not expected.
    So the fix is not to add the old use to dce list to process if it was a debug
    statement.
    
    Bootstrapped and tested on x86_64-linux-gnu with no regressions.
    
            PR tree-optimization/116156
    
    gcc/ChangeLog:
    
            * tree-ssa-forwprop.cc (pass_forwprop::execute): Don't add
            uses if the statement was a debug statement.
    
    gcc/testsuite/ChangeLog:
    
            * c-c++-common/torture/pr116156-1.c: New test.
    
    Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>

diff --git a/gcc/testsuite/c-c++-common/torture/pr116156-1.c b/gcc/testsuite/c-c++-common/torture/pr116156-1.c
new file mode 100644
index 00000000000..10f938ef4e5
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/torture/pr116156-1.c
@@ -0,0 +1,30 @@
+/* { dg-additional-options "-fcompare-debug" } */
+/* PR tree-optimization/116156 */
+
+/* Forwprop used to delete an unused statement
+   but only with debug statements around. */
+
+struct jpeg_compress_struct {
+  int X_density;
+};
+void gg();
+int h(const char*,const char*) __attribute((pure));
+int h1(const char*) __attribute((pure));
+int f1() __attribute__((returns_twice));
+void real_save_jpeg(char **keys, char *values) {
+  struct jpeg_compress_struct cinfo;
+  int x_density = 0;
+  while (*keys)
+  {
+    if (h1(*keys) == 0)
+      gg();
+    if (h1(*keys) == 0)  {
+      if (!*values)
+        x_density = -1;
+      if (x_density <= 0)
+        gg();
+    }
+  }
+  if (f1())
+    cinfo.X_density = x_density;
+}
diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc
index abf71f0d3a0..692e96604b8 100644
--- a/gcc/tree-ssa-forwprop.cc
+++ b/gcc/tree-ssa-forwprop.cc
@@ -3919,7 +3919,8 @@ pass_forwprop::execute (function *fun)
 	      tree val = fwprop_ssa_val (use);
 	      if (val && val != use)
 		{
-		  bitmap_set_bit (simple_dce_worklist, SSA_NAME_VERSION (use));
+		  if (!is_gimple_debug (stmt))
+		    bitmap_set_bit (simple_dce_worklist, SSA_NAME_VERSION (use));
 		  if (may_propagate_copy (use, val))
 		    {
 		      propagate_value (usep, val);
@@ -3959,12 +3960,13 @@ pass_forwprop::execute (function *fun)
 		    if (gimple_cond_true_p (cond)
 			|| gimple_cond_false_p (cond))
 		      cfg_changed = true;
-		  /* Queue old uses for simple DCE.  */
-		  for (tree use : uses)
-		    if (TREE_CODE (use) == SSA_NAME
-			&& !SSA_NAME_IS_DEFAULT_DEF (use))
-		      bitmap_set_bit (simple_dce_worklist,
-				      SSA_NAME_VERSION (use));
+		  /* Queue old uses for simple DCE if not debug statement.  */
+		  if (!is_gimple_debug (stmt))
+		    for (tree use : uses)
+		      if (TREE_CODE (use) == SSA_NAME
+			  && !SSA_NAME_IS_DEFAULT_DEF (use))
+			bitmap_set_bit (simple_dce_worklist,
+					SSA_NAME_VERSION (use));
 		}
 
 	      if (changed || substituted_p)

commit 21e2d27fd46c804192273a8960707de95467e5bc
Author: Joseph Myers <josmyers@redhat.com>
Date:   Fri Aug 2 21:13:59 2024 +0000

    Update gcc .po files
    
            * be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
            ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
            zh_TW.po: Update.

diff --git a/gcc/po/be.po b/gcc/po/be.po
index 9afcc33902f..7ed840da35b 100644
--- a/gcc/po/be.po
+++ b/gcc/po/be.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 3.1\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2002-05-17 15:54+0200\n"
 "Last-Translator: Ales Nyakhaychyk <nyakhaychyk@i18n.linux.by>\n"
 "Language-Team: Belarusian <i18n@tut.by>\n"
@@ -415,7 +415,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr ""
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr ""
 
@@ -19420,16 +19420,16 @@ msgstr "нераспазнаны выбар \"-%s\""
 msgid "insn does not satisfy its constraints:"
 msgstr ""
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr ""
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 msgid "created and used with different settings of %<-fpic%>"
 msgstr ""
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 msgid "created and used with different settings of %<-fpie%>"
 msgstr ""
 
@@ -19790,7 +19790,7 @@ msgstr ""
 msgid "<command-line>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "Нерэчаісны выбар \"%s\""
@@ -19809,9 +19809,9 @@ msgstr "Нерэчаісны выбар \"%s\""
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 #| msgid "invalid string constant `%E'"
 msgid "invalid vector constant"
@@ -19834,7 +19834,7 @@ msgstr "немагчымы апэратар '%s'"
 msgid "incompatible register operand for '%%%c'"
 msgstr "нерэчаісная назва рэгістра `%s'"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, fuzzy, c-format
 msgid "missing operand"
 msgstr "прапушчан ініцыялізатар"
@@ -19865,93 +19865,93 @@ msgstr "нерэчаісны адрас"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr ""
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr ""
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, fuzzy, c-format
 msgid "invalid %%J value"
 msgstr "дрэннае %%Q значэнне"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "нерэчаіснае значэньне %%r"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "нерэчаіснае значэньне %%R"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "нерэчаіснае значэньне %%N"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "нерэчаіснае значэньне %%P"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "нерэчаіснае значэньне %%h"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "нерэчаіснае значэньне %%L"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "нерэчаіснае значэньне %%m"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "нерэчаіснае значэньне %%M"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "нерэчаіснае значэньне %%U"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "нерэчаіснае значэньне %%v"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "нерэчаіснае значэньне %%C"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "нерэчаіснае значэньне %%E"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr ""
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "нерэчаіснае значэньне %%xn"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, fuzzy, c-format
 #| msgid "invalid address"
 msgid "invalid operand address"
@@ -20046,36 +20046,36 @@ msgstr "нерэчаісны %%-код"
 msgid "unrecognized supposed constant"
 msgstr "нераспазнаны выбар \"-%s\""
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, fuzzy, c-format
 #| msgid "invalid %%f operand"
 msgid "invalid shift operand"
 msgstr "нерэчаісны %%f аперанд"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, fuzzy, c-format
 msgid "predicated Thumb instruction"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr ""
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, fuzzy, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -20083,121 +20083,121 @@ msgstr "Нерэчаісны выбар \"%s\""
 msgid "invalid operand for code '%c'"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr ""
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr ""
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr ""
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr ""
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr ""
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr ""
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr ""
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr ""
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr ""
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr ""
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr ""
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr ""
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr ""
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 #, fuzzy
 msgid "invalid insn:"
 msgstr "Нерэчаісны выбар %s"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr ""
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr ""
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr ""
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr ""
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 #, fuzzy
 #| msgid "unsupported version"
 msgid "unsupported fixed-point conversion"
 msgstr "непадтрымліваемая версія"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr ""
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 #, fuzzy
 msgid "function parameter"
 msgstr "невыкарыстаемы параметр \"%s\""
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 #, fuzzy
 #| msgid "structure"
 msgid "structure field"
 msgstr "структура"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 #, fuzzy
 #| msgid "return type of `%s' is not `int'"
 msgid "return type of function"
 msgstr "вяртаемы тып \"%s\" не \"int\""
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr ""
 
@@ -20236,7 +20236,7 @@ msgstr "непадтрымліваемая версія"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20560,48 +20560,48 @@ msgstr ""
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr ""
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, fuzzy, c-format
 msgid "invalid operand code '%c'"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, fuzzy, c-format
 #| msgid "invalid %%c operand"
 msgid "invalid constraints for operand"
 msgstr "нерэчаісны %%c аперанд"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 msgid "invalid vector immediate"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 #, fuzzy
 msgid "unknown insn mode"
 msgstr "невядомы рэжым машыны \"%s\""
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -20637,7 +20637,7 @@ msgstr "нерэчаісны %%-код"
 msgid "invalid %%P operand"
 msgstr "нерэчаісны %%-код"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr ""
@@ -20666,29 +20666,29 @@ msgstr ""
 msgid "invalid addressing mode"
 msgstr ""
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, fuzzy, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "\"%s\" - гэта не пачатак дэкларацыі"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, fuzzy, c-format
 #| msgid "invalid use of `%D'"
 msgid "invalid use of '%%%c'"
@@ -20721,7 +20721,7 @@ msgid "post-increment address is not a register"
 msgstr ""
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "дрэнны адрас"
 
@@ -20892,7 +20892,7 @@ msgstr "нераспазнаны адрас"
 msgid "unsupported memory expression:"
 msgstr "непадтрымліваемая версія"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 #| msgid "invalid %%c operand"
 msgid "invalid vector operand"
@@ -20943,251 +20943,251 @@ msgstr ""
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%Q value"
 msgid "invalid %%A value"
 msgstr "дрэннае %%Q значэнне"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, fuzzy, c-format
 msgid "invalid %%D value"
 msgstr "дрэннае %%Q значэнне"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, fuzzy, c-format
 #| msgid "invalid %%Q value"
 msgid "invalid %%e value"
 msgstr "дрэннае %%Q значэнне"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "нерэчаіснае значэньне %%O"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 #| msgid "invalid %%Q value"
 msgid "invalid %%t value"
 msgstr "дрэннае %%Q значэнне"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, c-format
 msgid "invalid %%V value"
 msgstr "нерэчаіснае значэньне %%V"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, fuzzy, c-format
 #| msgid "invalid %%x/X value"
 msgid "invalid %%x value"
 msgstr "нерэчаіснае значэньне %%x/X"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, c-format
 msgid "invalid %%z value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, fuzzy, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 #, fuzzy
 #| msgid "too few arguments to function"
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "не хапае аргументаў у функцыі"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 #, fuzzy
 msgid "Could not generate addis value for fusion"
 msgstr "Стварыць код для DLL"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 msgid "Unable to generate load/store offset for fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr ""
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr ""
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, fuzzy, c-format
 msgid "cannot decompose address"
 msgstr "невядомая назва рэгістра: %s"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr ""
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr ""
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr ""
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 #| msgid "too few arguments to function"
 msgid "vector argument passed to unprototyped function"
 msgstr "не хапае аргументаў у функцыі"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr ""
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr ""
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -21382,12 +21382,12 @@ msgstr ""
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr ""
@@ -21400,7 +21400,7 @@ msgstr ""
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21409,7 +21409,7 @@ msgstr ""
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr ""
@@ -21417,7 +21417,7 @@ msgstr ""
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr ""
@@ -21428,29 +21428,29 @@ msgstr ""
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr ""
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr ""
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr ""
@@ -21460,17 +21460,17 @@ msgstr ""
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr ""
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr ""
@@ -21479,8 +21479,8 @@ msgstr ""
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr ""
@@ -21490,17 +21490,17 @@ msgid "expected %<.%>"
 msgstr ""
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr ""
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr ""
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr ""
@@ -21508,32 +21508,32 @@ msgstr ""
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr ""
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr ""
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, gcc-internal-format
 msgid "expected %<else%>"
 msgstr ""
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr ""
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -21541,7 +21541,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr ""
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr ""
@@ -21556,21 +21556,21 @@ msgstr ""
 msgid "candidate:"
 msgstr ""
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 msgid "  after user-defined conversion:"
 msgstr ""
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr ""
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr ""
 
@@ -21831,7 +21831,7 @@ msgstr ""
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr ""
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr ""
 
@@ -21880,50 +21880,50 @@ msgstr ""
 msgid "source type is not polymorphic"
 msgstr ""
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr ""
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr ""
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr ""
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr ""
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr ""
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 #, fuzzy
 #| msgid "too many arguments to function"
 msgid "in argument to unary !"
 msgstr "вельмі шмат аргументаў у функцыі"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr ""
 
@@ -22002,7 +22002,7 @@ msgstr ""
 msgid "Deleted feature:"
 msgstr ""
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr ""
 
@@ -22202,11 +22202,11 @@ msgstr ""
 msgid "implied END DO"
 msgstr ""
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr ""
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr ""
 
@@ -22386,47 +22386,47 @@ msgstr ""
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr ""
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr ""
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr ""
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr ""
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr ""
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr ""
 
@@ -22435,11 +22435,11 @@ msgstr ""
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr ""
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -22454,12 +22454,12 @@ msgstr ""
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr ""
 
@@ -22468,81 +22468,81 @@ msgstr ""
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -22564,15 +22564,15 @@ msgstr ""
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr ""
 
@@ -22649,7 +22649,7 @@ msgid "expected boolean type"
 msgstr ""
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr ""
@@ -22717,7 +22717,7 @@ msgstr "няма аргументаў"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function"
 msgid "too many arguments"
@@ -23375,7 +23375,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr ""
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr ""
@@ -23838,8 +23838,8 @@ msgstr ""
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 msgid "previous declaration here"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
@@ -23857,7 +23857,7 @@ msgstr "\"%s\" атрыбут ігнарыруецца"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr ""
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for `%s' attribute"
 msgid "wrong number of arguments specified for %qE attribute"
@@ -23868,7 +23868,7 @@ msgstr "памылковая колькасьць аргументаў, зада
 msgid "expected %i or more, found %i"
 msgstr ""
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, gcc-internal-format, gfc-internal-format
 msgid "expected %i, found %i"
 msgstr ""
@@ -23935,12 +23935,12 @@ msgstr ""
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -23949,7 +23949,7 @@ msgstr ""
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -23972,8 +23972,8 @@ msgstr "\"%s\" атрыбут ігнарыруецца"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of `%D'"
 msgid "previous declaration of %qD"
@@ -24085,7 +24085,7 @@ msgstr "немагчыма знайсьці файл для кляса %s"
 msgid "offset %qwi outside bounds of constant string"
 msgstr ""
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, gcc-internal-format
 msgid "%qE declared here"
 msgstr ""
@@ -24195,7 +24195,7 @@ msgstr "аргумент для \"%s\" прапушчан"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, gcc-internal-format
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
 msgstr ""
@@ -24217,7 +24217,7 @@ msgstr ""
 msgid "target format does not support infinity"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 #| msgid "`va_start' used in function with fixed args"
 msgid "%<va_start%> used in function with fixed arguments"
@@ -24225,40 +24225,40 @@ msgstr ""
 "`va_start' выкарыстоўвываецца ў функцыі з нязьменнай\n"
 "           колькасьцю аргументаў"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for `%s' attribute"
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "памылковая колькасьць аргументаў, зададзеных для атрыбута `%s'"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, fuzzy, gcc-internal-format
 #| msgid "`__builtin_next_arg' called without an argument"
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "\"__buitin_next_arg\" выклікаецца без аргумента"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for `%s' attribute"
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "памылковая колькасьць аргументаў, зададзеных для атрыбута `%s'"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr ""
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr ""
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr ""
@@ -25328,13 +25328,13 @@ msgstr ""
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, fuzzy, gcc-internal-format
 #| msgid "label `%s' used but not defined"
 msgid "%q+F used but never defined"
 msgstr "адмеціна `%s' выкарыстоўвываецца, але ня вызначана"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr ""
@@ -25901,7 +25901,7 @@ msgstr ""
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr ""
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, gcc-internal-format
 msgid "%qs failed"
 msgstr ""
@@ -25931,17 +25931,17 @@ msgstr ""
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr ""
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr ""
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr ""
@@ -25977,7 +25977,7 @@ msgstr ""
 msgid "comparison is always %d due to width of bit-field"
 msgstr ""
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr ""
@@ -26148,7 +26148,7 @@ msgstr ""
 msgid "%s signal terminated program %s"
 msgstr "Выкарыстоўвываць альтэрнатыўныя назвы рэгістраў"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "нераспазнаны выбар \"-%s\""
@@ -26414,7 +26414,7 @@ msgstr "параметр \"%s\" ініцыялізаваны"
 msgid "multilib exclusions %qs is invalid"
 msgstr ""
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr ""
@@ -26725,22 +26725,22 @@ msgstr ""
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr ""
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr ""
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
@@ -26781,16 +26781,16 @@ msgid "function returns address of local variable"
 msgstr ""
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, fuzzy, gcc-internal-format
@@ -26803,366 +26803,366 @@ msgstr "выклікана адсюль"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, gcc-internal-format
 msgid "directive argument %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, gcc-internal-format
 msgid "null destination pointer"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, gcc-internal-format
 msgid "null format string"
 msgstr ""
@@ -27904,12 +27904,12 @@ msgstr ""
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, fuzzy, gcc-internal-format
 msgid "%qD declared here"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
@@ -28675,7 +28675,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "нявернае выкарыстанне \"restict\""
@@ -29019,17 +29019,17 @@ msgstr ""
 msgid "mismatching definition"
 msgstr ""
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr ""
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -30105,74 +30105,74 @@ msgstr ""
 msgid "error closing optimization records %qs"
 msgstr ""
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, gcc-internal-format
 msgid "command-line option %qs is not supported by this configuration"
 msgstr ""
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, fuzzy, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "аргумент для \"%s\" прапушчан"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr ""
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, fuzzy, gcc-internal-format
 #| msgid "first argument of `%s' should be `int'"
 msgid "argument to %qs should be a non-negative integer"
 msgstr "першым аргументам \"%s\" павінен быць \"int\""
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "памер \"%s\" больш чам %d байт"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param option: %s"
 msgid "invalid argument in option %qs"
 msgstr "нерэчаісны выбар --param : %s"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr ""
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, fuzzy, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "нераспазнаны выбар \"-%s\""
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, fuzzy, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "-pipe не падтрымліваецца."
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is bigger than %d"
 msgstr "памер \"%s\" больш чам %d байт"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr ""
@@ -30249,8 +30249,8 @@ msgstr ""
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr ""
@@ -30974,7 +30974,7 @@ msgstr ""
 msgid "register of %qD used for multiple global register variables"
 msgstr ""
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr ""
@@ -31429,42 +31429,42 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, fuzzy, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, fuzzy, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, fuzzy, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, fuzzy, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
@@ -32593,82 +32593,82 @@ msgstr ""
 msgid "BB %i has incorrect fallthru edge"
 msgstr ""
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr ""
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr ""
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr ""
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr ""
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr ""
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr ""
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr ""
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr ""
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr ""
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr ""
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr ""
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr ""
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr ""
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "выклікана адсюль"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 msgid "called from this function"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr ""
@@ -32723,27 +32723,27 @@ msgstr "нявернае выкарыстанне \"restict\""
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "Нерэчаісны выбар \"%s\""
@@ -32948,7 +32948,7 @@ msgstr "прапушчан ініцыялізатар"
 msgid "%qs may be used uninitialized"
 msgstr ""
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, fuzzy, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
@@ -33181,7 +33181,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -33196,122 +33196,122 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr ""
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr ""
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr ""
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr ""
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr ""
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr ""
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr ""
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr ""
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, gcc-internal-format
 msgid "%qD is unavailable: %s"
 msgstr ""
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, gcc-internal-format
 msgid "%qD is unavailable"
 msgstr ""
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, gcc-internal-format
 msgid "%qE is unavailable: %s"
 msgstr ""
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, gcc-internal-format
 msgid "%qE is unavailable"
 msgstr ""
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr ""
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, gcc-internal-format
 msgid "type is unavailable"
 msgstr ""
@@ -33336,263 +33336,263 @@ msgstr ""
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr ""
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr ""
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type %s is not an opaque type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not with opaque mode"
 msgstr ""
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, gcc-internal-format
 msgid "main variant is not defined"
 msgstr ""
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%D' has non-integer type"
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "памер масіва `%D' не цэлалікавы тып"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr ""
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -33811,7 +33811,7 @@ msgstr "атрыбуты секцыі не падтрымліваюцца для
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -34016,7 +34016,7 @@ msgstr "\"%s\" атрыбут ігнарыруецца"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr ""
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr ""
@@ -34205,7 +34205,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "\"%s\" атрыбут ігнарыруецца"
@@ -34522,7 +34522,7 @@ msgstr ""
 msgid "%qE argument is not a function"
 msgstr "`%D' - гэта ня функцыя,"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr ""
@@ -35032,7 +35032,7 @@ msgstr ""
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr ""
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr ""
@@ -35164,9 +35164,9 @@ msgstr ""
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr ""
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, fuzzy, gcc-internal-format
@@ -35174,8 +35174,8 @@ msgstr ""
 msgid "too few arguments to function %qE"
 msgstr "не хапае аргументаў у функцыі"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, fuzzy, gcc-internal-format
@@ -35304,170 +35304,170 @@ msgstr "не магу атрымаць адрас бітавага поля \"%s
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%s' is too large"
 msgid "size of array is too large"
 msgstr "памер масіва \"%s\" вельмі вялікі"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr ""
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr ""
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function `%s'"
 msgid "incorrect number of arguments to function %qE"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "першым аргументам \"%s\" павінен быць \"int\""
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "першым аргументам \"%s\" павінен быць \"int\""
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "першым аргументам \"%s\" павінен быць \"int\""
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "першым аргументам \"%s\" павінен быць \"int\""
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "першым аргументам \"%s\" павінен быць \"int\""
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "першым аргументам \"%s\" павінен быць \"int\""
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr ""
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr ""
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "першым аргументам \"%s\" павінен быць \"int\""
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr ""
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr ""
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr ""
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr ""
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 msgid "size of array %qE is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 msgid "size of array is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array %qE is negative"
 msgstr "адмоўны памер масіва "
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array is negative"
 msgstr "адмоўны памер масіва "
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -36101,7 +36101,7 @@ msgstr ""
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr ""
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
@@ -36182,7 +36182,7 @@ msgstr ""
 msgid "traditional C rejects string constant concatenation"
 msgstr ""
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -36237,7 +36237,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr ""
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr ""
@@ -36253,17 +36253,17 @@ msgstr ""
 msgid "%qE is not initialized"
 msgstr "прапушчан ініцыялізатар"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr ""
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, fuzzy, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, fuzzy, gcc-internal-format
 msgid "missing increment expression"
 msgstr "аргумент для \"%s\" прапушчан"
@@ -36273,7 +36273,7 @@ msgstr "аргумент для \"%s\" прапушчан"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, fuzzy, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "нерэчаісны ініцыялізатар"
@@ -36358,7 +36358,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -36369,7 +36369,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "`%D' - гэта ня функцыя,"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr ""
@@ -36970,7 +36970,7 @@ msgid "wrong type argument to %s"
 msgstr "не хапае аргументаў у функцыі"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -37910,35 +37910,35 @@ msgstr ""
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -38152,117 +38152,117 @@ msgstr ""
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -38664,12 +38664,12 @@ msgstr ""
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr ""
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr ""
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr ""
@@ -39236,7 +39236,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -39313,12 +39313,12 @@ msgid "unknown tuning option (%s)"
 msgstr "невядомая назва рэгістра: %s\n"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -39329,7 +39329,7 @@ msgid "specify a system register with a small string length"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "Нерэчаісны выбар %s"
@@ -39510,9 +39510,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr ""
@@ -39565,18 +39565,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -39589,8 +39589,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported version"
 msgid "unsupported simdlen %wd"
@@ -39601,7 +39601,7 @@ msgstr "непадтрымліваемая версія"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr ""
@@ -39611,7 +39611,7 @@ msgstr ""
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr ""
@@ -39701,8 +39701,8 @@ msgstr ""
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr ""
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr ""
@@ -39824,18 +39824,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -39951,7 +39951,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "аргумент для \"-%s\" прапушчан"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr ""
@@ -39971,23 +39971,23 @@ msgstr "\"%s\" звычайна функцыя"
 msgid "argument of %qE attribute ignored"
 msgstr "памер \"%s\" больш чам %d байт"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr ""
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr ""
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr ""
@@ -40233,7 +40233,7 @@ msgstr "ISO C не падтрымлівае комлексныя цэлалік
 msgid "target CPU does not support unaligned accesses"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 msgid "This architecture does not support branch protection instructions"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
@@ -40283,7 +40283,7 @@ msgstr ""
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr ""
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr ""
@@ -40389,7 +40389,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -40429,42 +40429,42 @@ msgstr ""
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "\"%s\" звычайна функцыя"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr ""
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr ""
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr ""
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr ""
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr ""
@@ -40472,23 +40472,23 @@ msgstr ""
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr ""
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown target attribute or pragma %qs"
 msgstr "невядомая назва рэгістра: %s"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "-pipe не падтрымліваецца"
@@ -40542,164 +40542,164 @@ msgstr ""
 msgid "unknown core architecture %qs specified with %qs"
 msgstr ""
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe is not supported"
 msgid "%<-fpic%> is not supported"
 msgstr "-pipe не падтрымліваецца"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe is not supported"
 msgid "%<-fPIC%> is not supported"
 msgstr "-pipe не падтрымліваецца"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe is not supported"
 msgid "%<-fpie%> is not supported"
 msgstr "-pipe не падтрымліваецца"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe is not supported"
 msgid "%<-fPIE%> is not supported"
 msgstr "-pipe не падтрымліваецца"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr ""
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "%qs function cannot have arguments"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, fuzzy, gcc-internal-format
 #| msgid "function does not return string type"
 msgid "%qs function cannot return a value"
 msgstr "функцыя не вяртае тып string"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr ""
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr ""
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr ""
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "\"%s\" звычайна функцыя"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr ""
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr ""
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr ""
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr ""
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr ""
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr ""
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr ""
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr ""
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr ""
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr ""
@@ -40708,42 +40708,42 @@ msgstr ""
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr ""
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr ""
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr ""
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr ""
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr ""
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr ""
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -40884,7 +40884,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr ""
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, fuzzy, gcc-internal-format
@@ -41515,8 +41515,8 @@ msgstr "першым аргументам \"%s\" павінен быць \"int\"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s does not support %s"
 msgid "code model %s does not support PIC mode"
@@ -41584,255 +41584,255 @@ msgstr ""
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr ""
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr ""
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-pipe не падтрымліваецца"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "-pipe не падтрымліваецца"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "-pipe не падтрымліваецца"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr ""
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, fuzzy, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, gcc-internal-format
 msgid "bad value %qs for %<-march=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, gcc-internal-format
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr ""
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr ""
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -41840,291 +41840,291 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr ""
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr ""
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr ""
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr ""
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr ""
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "памер \"%s\" больш чам %d байт"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr ""
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute ignored"
 msgid "%qE incompatible attribute ignored"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr ""
@@ -42316,46 +42316,46 @@ msgstr ""
 msgid "non-integer operand used with operand code %<z%>"
 msgstr ""
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, gcc-internal-format
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr ""
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr ""
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr ""
@@ -42375,8 +42375,8 @@ msgstr ""
 msgid "malformed %<#pragma builtin%>"
 msgstr ""
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, fuzzy, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "нявернае выкарыстанне \"restict\""
@@ -42432,13 +42432,13 @@ msgstr ""
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr ""
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "argument of `__builtin_args_info' must be constant"
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "Не генерыраваць сімвальныя інструкцыі"
@@ -42564,17 +42564,17 @@ msgstr ""
 msgid "%qs cannot be used for compiling a shared library"
 msgstr ""
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, gcc-internal-format
 msgid "multiple %qE attribute"
 msgstr ""
@@ -42678,12 +42678,12 @@ msgstr ""
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr ""
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr ""
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not supported on this target"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
@@ -42724,7 +42724,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr ""
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr ""
@@ -42764,135 +42764,135 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr ""
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr ""
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr ""
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "%qs does not support MIPS16 code"
 msgstr "%s не падтрымлівае %s"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr ""
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr ""
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "unsupported version"
 msgid "unsupported combination: %s"
 msgstr "непадтрымліваемая версія"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr ""
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr ""
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "%s не падтрымлівае %s"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr ""
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr ""
@@ -42902,119 +42902,119 @@ msgstr ""
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr ""
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr ""
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported version"
 msgid "unsupported combination: %qs %s"
 msgstr "непадтрымліваемая версія"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr ""
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "%s не падтрымлівае %s"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr ""
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr ""
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, fuzzy, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "Не генерыраваць сімвальныя інструкцыі"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr ""
@@ -43894,57 +43894,57 @@ msgstr ""
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target()%> attribute"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
 msgstr "нявернае выкарыстанне \"restict\""
@@ -44004,173 +44004,193 @@ msgstr ""
 msgid "capture by copy of RVV type %qT"
 msgstr ""
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr ""
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
 msgstr ""
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr ""
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "\"%s\" звычайна функцыя"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, gcc-internal-format
 msgid "%qs requires an integer constant"
 msgstr ""
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr ""
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, gcc-internal-format
 msgid "code model %qs with %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr ""
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 #| msgid "invalid register name for `%s'"
 msgid "%qs is not a valid base register in %qs"
 msgstr "нерэчаісная назва рэгістра `%s'"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr ""
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -44424,32 +44444,32 @@ msgstr ""
 msgid "builtin %qs only accepts 3 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 msgid "%qs is not supported in this compiler configuration"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
@@ -44489,31 +44509,24 @@ msgstr "нявернае выкарыстанне \"restict\""
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr ""
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr ""
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, fuzzy, gcc-internal-format
 #| msgid "%s is too large"
 msgid "stack frame too large"
 msgstr "%s - вельмі вялікі"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr ""
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 #| msgid "Do not use register sb"
 msgid "%qs uses register r29"
 msgstr "Не выкарыстоўваць рэгістра sb"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr ""
@@ -44639,109 +44652,119 @@ msgstr ""
 msgid "unknown option for %<%s=%s%>"
 msgstr "невядомая назва рэгістра: %s\n"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, gcc-internal-format
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%D'"
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "нерэчаіснае выкарыстаньне `%D'"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 #| msgid "%s=%s is too large"
 msgid "%s%qs%s is not allowed"
 msgstr "%s=%s вельмі вялікі"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr ""
@@ -44786,7 +44809,7 @@ msgstr ""
 msgid "builtin %qs can only be used on vector types"
 msgstr ""
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr ""
@@ -44857,230 +44880,230 @@ msgstr ""
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr ""
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "параметр \"%s\" ініцыялізаваны"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `__builtin_args_info' out of range"
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "аргумент `__builtin_args_info' выйшаў за межы"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr ""
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr ""
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, gcc-internal-format
 msgid "bad builtin icode"
 msgstr ""
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr ""
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 #| msgid "size of `%s' is %d bytes"
 msgid "frame size of %qs is %wd bytes"
 msgstr "памер \"%s\" - %d байт"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr ""
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, gcc-internal-format
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr ""
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr ""
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr ""
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr ""
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, gcc-internal-format
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr ""
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr ""
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr ""
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr ""
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr ""
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr ""
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 #| msgid "first argument of `%s' should be `int'"
 msgid "arguments to %qs should be non-negative integers"
 msgstr "першым аргументам \"%s\" павінен быць \"int\""
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "памер \"%s\" больш чам %d байт"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr ""
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 #| msgid "invalid string constant `%E'"
 msgid "invalid cc output constraint: %qs"
 msgstr "`%E' - нерэчаісная нязьменная тыпу string"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe is not supported"
 msgid "multiple cc output constraints not supported"
 msgstr "-pipe не падтрымліваецца"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr ""
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr ""
@@ -45506,8 +45529,8 @@ msgstr "\"%s\" атрыбут ігнарыруецца"
 msgid "attribute %qs applies to array types only"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr ""
@@ -45586,7 +45609,7 @@ msgstr ""
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr ""
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr ""
@@ -45821,7 +45844,7 @@ msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэк
 msgid "declaration of %qD shadows a parameter"
 msgstr ""
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr ""
@@ -45831,7 +45854,7 @@ msgstr ""
 msgid "declaration of %qD shadows a previous local"
 msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, fuzzy, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
@@ -45899,7 +45922,7 @@ msgstr "\"%s\" не абвешчан (першае выкарыстанне ў 
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "(Аб кожным неабвешчаным ідэнтыфікатары паведамляецца"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr ""
@@ -45936,7 +45959,7 @@ msgstr ""
 msgid "duplicate label declaration %qE"
 msgstr "паўторнае абвяшчэньне адмеціны `%s'"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, fuzzy, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "паўтарэнне \"%s\""
@@ -45971,7 +45994,7 @@ msgstr ""
 msgid "%qE defined as wrong kind of tag"
 msgstr ""
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr ""
@@ -46117,12 +46140,12 @@ msgstr "ISO C89 не падтрымлівае \"long long\""
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr ""
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, gcc-internal-format
 msgid "%<omp::%s%> not allowed to be specified in this context"
 msgstr ""
@@ -46133,7 +46156,7 @@ msgstr ""
 msgid "%q+D is usually a function"
 msgstr "`%s' - звычайна функцыя"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, fuzzy, gcc-internal-format
 #| msgid "no previous declaration for `%s'"
 msgid "no previous declaration for %qD"
@@ -46213,7 +46236,7 @@ msgstr ""
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -46403,7 +46426,7 @@ msgstr ""
 msgid "storage class specified for unnamed parameter"
 msgstr ""
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr ""
@@ -46466,7 +46489,7 @@ msgstr ""
 msgid "declaration of type name as array of functions"
 msgstr ""
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, fuzzy, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "нявернае выкарыстанне \"restict\""
@@ -46580,7 +46603,7 @@ msgstr ""
 msgid "function definition has qualified void return type"
 msgstr "функцыя не вяртае тып string"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr ""
@@ -46709,7 +46732,7 @@ msgstr ""
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr ""
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, fuzzy, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "тып параметра \"%s\" не аб'яўлены"
@@ -46816,7 +46839,7 @@ msgstr ""
 msgid "object with variably modified type must have no linkage"
 msgstr ""
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr ""
@@ -46908,17 +46931,17 @@ msgstr "перанакіраванне stdout: %s"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "перанакіраванне stdout: %s"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr ""
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, gcc-internal-format
 msgid "%qT defined in underspecified object initializer"
 msgstr ""
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr ""
@@ -46950,474 +46973,474 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr ""
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr ""
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr ""
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr ""
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr ""
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr ""
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr ""
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, gcc-internal-format
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr ""
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, fuzzy, gcc-internal-format
 #| msgid "%s is too large"
 msgid "type %qT is too large"
 msgstr "%s - вельмі вялікі"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr ""
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr ""
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr ""
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 msgid "redefinition of struct or union %qT"
 msgstr "перанакіраванне stdout: %s"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, fuzzy, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "перанакіраванне stdout: %s"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D'"
 msgid "redeclaration of %<enum %E%>"
 msgstr "абвяшчэньне `%#D'"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr ""
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr ""
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, gcc-internal-format
 msgid "enumeration values exceed range of %qs"
 msgstr ""
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 msgid "conflicting redefinition of enum %qT"
 msgstr "перанакіраванне stdout: %s"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr ""
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr ""
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, gcc-internal-format
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr ""
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr ""
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr ""
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, fuzzy, gcc-internal-format
 #| msgid "return type of `%s' is not `int'"
 msgid "return type defaults to %<int%>"
 msgstr "вяртаемы тып \"%s\" не \"int\""
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr ""
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, fuzzy, gcc-internal-format
 #| msgid "no previous prototype for `%s'"
 msgid "no previous prototype for %qD"
 msgstr "няма папярэдняга прататыпа для \"%s\""
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, fuzzy, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, fuzzy, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, fuzzy, gcc-internal-format
 #| msgid "return type of `%s' is not `int'"
 msgid "return type of %qD is not %<int%>"
 msgstr "вяртаемы тып \"%s\" не \"int\""
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr ""
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is usually a function"
 msgid "%qD is normally a non-static function"
 msgstr "`%s' - звычайна функцыя"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr ""
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr ""
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr ""
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr ""
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr ""
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr ""
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, fuzzy, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "невыкарыстаемы параметр \"%s\""
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr ""
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr ""
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr ""
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for `%s' attribute"
 msgid "number of arguments doesn%'t match prototype"
 msgstr "памылковая колькасьць аргументаў, зададзеных для атрыбута `%s'"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, fuzzy, gcc-internal-format
 #| msgid "empty declaration"
 msgid "prototype declaration"
 msgstr "пустое абвяшчэньне"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr ""
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr ""
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr ""
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, fuzzy, gcc-internal-format
 #| msgid "label `%D' defined but not used"
 msgid "parameter %qD set but not used"
 msgstr "адмеціна `%D' вызначана, але не выкарыстоўваецца"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr ""
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr ""
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C89 не падтрымлівае \"long long\""
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr ""
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate label declaration `%s'"
 msgid "duplicate %qE declaration specifier"
 msgstr "паўторнае абвяшчэньне адмеціны `%s'"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr ""
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr ""
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr ""
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr ""
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, fuzzy, gcc-internal-format
 #| msgid "`long long long' is too long for GCC"
 msgid "%<long long long%> is too long for GCC"
 msgstr "`long long long' - вельмі доўга для GCC"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C89 does not support `long long'"
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C89 не падтрымлівае `long long'"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C89 does not support complex types"
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C89 не падтрымлівае комлексныя тыпы"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support saturating types"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate `%s'"
 msgid "duplicate %qE"
 msgstr "паўтарэньне `%s'"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C89 does not support complex types"
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C89 не падтрымлівае комлексныя тыпы"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, fuzzy, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr ""
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not at beginning of declaration"
 msgid "%qE is not at beginning of declaration"
@@ -47425,147 +47448,147 @@ msgstr "\"%s\" - гэта не пачатак дэкларацыі"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr ""
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr ""
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr ""
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr ""
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "ISO C99 does not support %qE"
 msgstr "%s не падтрымлівае %s"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "ISO C90 does not support %qE"
 msgstr "%s не падтрымлівае %s"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr ""
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr ""
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr ""
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr ""
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr ""
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr ""
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr ""
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr ""
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr ""
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support plain `complex' meaning `double complex'"
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C не падтрымлівае просты \"complex\" у значэнні \"double complex\""
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr ""
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr ""
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr ""
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr ""
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr ""
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr ""
@@ -47595,7 +47618,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr ""
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr ""
@@ -47606,8 +47629,8 @@ msgstr ""
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C не дазваляе пусты ізыходны файл"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -47648,9 +47671,9 @@ msgstr ""
 msgid "unknown type name %qE"
 msgstr "невядомая назва рэгістра: %s"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, fuzzy, gcc-internal-format
 #| msgid "empty declaration"
 msgid "expected declaration specifiers"
@@ -47682,7 +47705,7 @@ msgstr ""
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr ""
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, fuzzy, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "\"%s\" атрыбут ігнарыруецца"
@@ -47703,7 +47726,7 @@ msgstr ""
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr ""
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr ""
@@ -47795,7 +47818,7 @@ msgstr ""
 msgid "static assertion failed: %E"
 msgstr ""
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, gcc-internal-format
 msgid "static assertion failed"
 msgstr ""
@@ -47871,10 +47894,10 @@ msgstr "параметр \"%s\" ініцыялізаваны"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr ""
@@ -48026,7 +48049,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -48036,8 +48059,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -48214,12 +48237,12 @@ msgstr "ISO C не дазваляе пусты ізыходны файл"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr ""
@@ -48370,7 +48393,7 @@ msgstr "ISO C не падтрымлівае комлексныя цэлалік
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr ""
@@ -48696,12 +48719,12 @@ msgstr ""
 msgid "no type or storage class may be specified here,"
 msgstr ""
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr ""
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 msgid "missing property attribute"
 msgstr "прапушчан ініцыялізатар"
@@ -48711,57 +48734,57 @@ msgstr "прапушчан ініцыялізатар"
 msgid "unknown property attribute %<%s%s%>"
 msgstr ""
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr ""
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr ""
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr ""
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr ""
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr ""
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr ""
@@ -48771,25 +48794,25 @@ msgstr ""
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr ""
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr ""
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr ""
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %qs clauses"
@@ -48805,64 +48828,64 @@ msgstr ""
 msgid "expected %<)%> or %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "\"%s\" звычайна функцыя"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr ""
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, gcc-internal-format
 msgid "expected constant logical expression"
 msgstr ""
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr ""
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, gcc-internal-format
 msgid "expected %<data%>"
 msgstr ""
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<if%> clauses"
 msgstr "вельмі шмат уваходзячых файлаў"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr ""
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -48885,22 +48908,22 @@ msgstr ""
 msgid "%<num_tasks%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr ""
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr ""
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr ""
@@ -48910,96 +48933,96 @@ msgstr ""
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr ""
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr ""
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr ""
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr ""
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function"
 msgid "too many %<static%> arguments"
 msgstr "вельмі шмат аргументаў у функцыі"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, fuzzy, gcc-internal-format
 #| msgid "no arguments"
 msgid "unexpected argument"
 msgstr "няма аргументаў"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr ""
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, gcc-internal-format
 msgid "too many %<self%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, gcc-internal-format
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr ""
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr ""
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr ""
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr ""
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr ""
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, fuzzy, gcc-internal-format
 #| msgid "invalid %%-code"
 msgid "invalid schedule kind"
@@ -49010,22 +49033,22 @@ msgstr "нерэчаісны %%-код"
 msgid "%<num_teams%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr ""
@@ -49036,22 +49059,22 @@ msgstr ""
 msgid "duplicate %qs modifier"
 msgstr "паўтарэньне `%s'"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr ""
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr ""
@@ -49071,66 +49094,66 @@ msgstr ""
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr ""
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 #| msgid "invalid %%d operand"
 msgid "invalid depend kind"
 msgstr "нерэчаісны %%d аперанд"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mask"
 msgid "invalid doacross kind"
 msgstr "нерэчаісная маска"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr ""
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr ""
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<present%> modifiers"
 msgstr "вельмі шмат уваходзячых файлаў"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mask"
 msgid "invalid map kind"
 msgstr "нерэчаісная маска"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr ""
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr ""
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr ""
@@ -49145,89 +49168,89 @@ msgstr "Нерэчаісны выбар %s"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr ""
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr ""
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, fuzzy, gcc-internal-format
 #| msgid "complex invalid for `%s'"
 msgid "%qs is not valid for %qs"
 msgstr "complex нерэчаісны для \"%s\""
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr ""
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr ""
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr ""
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr ""
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr ""
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr ""
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -49242,7 +49265,7 @@ msgstr ""
 msgid "expected function name"
 msgstr ""
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function,"
 msgid "%qD does not refer to a function"
@@ -49253,22 +49276,22 @@ msgstr "`%D' - гэта ня функцыя,"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr ""
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr ""
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr ""
@@ -49294,7 +49317,7 @@ msgstr ""
 msgid "modified here"
 msgstr "'O' мадыфікатар"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr ""
@@ -49334,111 +49357,111 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr ""
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many atomic clauses"
 msgstr "вельмі шмат уваходзячых файлаў"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr ""
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr ""
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr ""
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, gcc-internal-format
 msgid "unexpected %<else%>"
 msgstr ""
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr ""
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr ""
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr ""
@@ -49448,27 +49471,27 @@ msgstr ""
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr ""
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, gcc-internal-format
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr ""
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr ""
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr ""
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -49478,163 +49501,163 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr ""
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr ""
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr ""
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr ""
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr ""
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr ""
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, gcc-internal-format
 msgid "not enough nested loops"
 msgstr ""
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, fuzzy, gcc-internal-format
 msgid "for statement expected"
 msgstr "вельмі шмат аргументаў у функцыі"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr ""
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr ""
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, gcc-internal-format
 msgid "expected %<point%>"
 msgstr ""
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr ""
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, gcc-internal-format
 msgid "expected trait selector name"
 msgstr ""
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr ""
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr ""
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr ""
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr ""
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, gcc-internal-format
 msgid "expected identifier or string literal"
 msgstr ""
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -49642,291 +49665,291 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr ""
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, gcc-internal-format
 msgid "expected context selector set name"
 msgstr ""
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, gcc-internal-format
 msgid "expected %<match%>"
 msgstr ""
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function,"
 msgid "variant %qD is not a function"
 msgstr "`%D' - гэта ня функцыя,"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, gcc-internal-format
 msgid "expected %<target%>"
 msgstr ""
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr ""
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr ""
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr ""
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr ""
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr ""
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr ""
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr ""
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr ""
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr ""
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, gcc-internal-format
 msgid "expected %qs or %qs"
 msgstr ""
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr ""
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, gcc-internal-format
 msgid "expected directive name"
 msgstr ""
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "невядомая назва рэгістра: %s\n"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, gcc-internal-format
 msgid "expected assumption clause"
 msgstr ""
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr ""
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr ""
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, fuzzy, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr ""
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr ""
@@ -50068,7 +50091,7 @@ msgstr ""
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr ""
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr ""
@@ -50098,7 +50121,7 @@ msgstr ""
 msgid "enum constant defined here"
 msgstr ""
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -50214,17 +50237,17 @@ msgstr ""
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr ""
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, gcc-internal-format
 msgid "comparison between pointer and zero character constant"
 msgstr ""
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr ""
@@ -50249,7 +50272,7 @@ msgstr ""
 msgid "arithmetic on pointer to an incomplete type"
 msgstr ""
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr ""
@@ -50544,7 +50567,7 @@ msgstr ""
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr ""
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr ""
@@ -50718,7 +50741,7 @@ msgstr ""
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr ""
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr ""
@@ -50918,12 +50941,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr ""
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -50933,7 +50956,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr ""
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr ""
@@ -50964,7 +50987,7 @@ msgstr "памер масіва \"%s\" адмоўны"
 msgid "initializer element is not computable at load time"
 msgstr ""
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr ""
@@ -50979,7 +51002,7 @@ msgstr ""
 msgid "braces around scalar initializer"
 msgstr ""
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr ""
@@ -51070,7 +51093,7 @@ msgstr ""
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr ""
@@ -51111,7 +51134,7 @@ msgstr "ISO C не падтрымлівае \"goto *expr;\""
 msgid "computed goto must be pointer type"
 msgstr ""
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, fuzzy, gcc-internal-format
 #| msgid "function does not return string type"
 msgid "function declared %<noreturn%> has a %<return%> statement"
@@ -51167,7 +51190,7 @@ msgstr ""
 msgid "break statement not within loop or switch"
 msgstr ""
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -51213,27 +51236,27 @@ msgstr ""
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr ""
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr ""
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr ""
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr ""
@@ -51305,29 +51328,29 @@ msgstr ""
 msgid "used vector type where scalar is required"
 msgstr ""
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr ""
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr ""
@@ -51338,85 +51361,85 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr ""
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr ""
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr ""
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr ""
@@ -51426,17 +51449,17 @@ msgstr ""
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr ""
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr ""
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr "бітавае поле \"%s\" мае нерэчаісны тып"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -51446,32 +51469,32 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr ""
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr ""
@@ -51501,7 +51524,7 @@ msgstr ""
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr ""
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr ""
@@ -51511,17 +51534,17 @@ msgstr ""
 msgid "variable length element type in array %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr ""
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -51536,23 +51559,23 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr ""
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr ""
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr ""
@@ -51564,32 +51587,32 @@ msgstr ""
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr ""
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr ""
@@ -51609,7 +51632,7 @@ msgstr ""
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr ""
@@ -51619,7 +51642,7 @@ msgstr ""
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr ""
@@ -51629,77 +51652,77 @@ msgstr ""
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported version"
 msgid "unsupported map expression %qE"
 msgstr "непадтрымліваемая версія"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr ""
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr ""
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr ""
@@ -51714,22 +51737,22 @@ msgstr ""
 msgid "%qs variable is neither a pointer nor an array"
 msgstr ""
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr ""
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr ""
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr ""
@@ -51739,38 +51762,38 @@ msgstr ""
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -52044,14 +52067,14 @@ msgstr "пераўтварэньне з `%T' у `%T'"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -52361,561 +52384,561 @@ msgstr ""
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr ""
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr ""
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr ""
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 #| msgid "return type of `%s' is not `int'"
 msgid "return type of %qD is not %qs"
 msgstr "вяртаемы тып \"%s\" не \"int\""
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr ""
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, gcc-internal-format
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr ""
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, gcc-internal-format
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr ""
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr ""
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr ""
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr ""
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, fuzzy, gcc-internal-format
 #| msgid "impossible operator '%s'"
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "немагчымы апэратар '%s'"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr ""
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 msgid "declared private here"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 #| msgid "called from here"
 msgid "declared protected here"
 msgstr "выклікана адсюль"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr ""
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 #| msgid "  from here"
 msgid "  declared here"
 msgstr " адсюль"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr ""
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr ""
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, fuzzy, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr ""
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr ""
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 #| msgid "converting from `%T' to `%T'"
 msgid "invalid conversion from %qH to %qI"
 msgstr "пераўтварэньне з `%T' у `%T'"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr ""
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr ""
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr ""
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr ""
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr ""
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr ""
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, fuzzy, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr ""
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr ""
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr ""
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr ""
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, fuzzy, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr ""
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr ""
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr ""
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr ""
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr ""
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr ""
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, gcc-internal-format
 msgid "; use assignment instead"
 msgstr ""
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr ""
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, gcc-internal-format
 msgid "%#qT declared here"
 msgstr ""
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr ""
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr ""
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 msgid "cannot convert %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr ""
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr ""
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr ""
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr ""
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr ""
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr ""
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr ""
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr ""
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr ""
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr ""
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr ""
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr ""
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, gcc-internal-format
 msgid "try making the operator a %<const%> member function"
 msgstr ""
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr ""
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 #| msgid "converting from `%T' to `%T'"
 msgid "  for conversion from %qH to %qI"
 msgstr "пераўтварэньне з `%T' у `%T'"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr ""
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr ""
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr ""
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr ""
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr ""
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr ""
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, gcc-internal-format
 msgid "possibly dangling reference to a temporary"
 msgstr ""
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr ""
@@ -52961,7 +52984,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr ""
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration `%D'"
 msgid "previous declaration %q#D"
@@ -53385,7 +53408,7 @@ msgstr ""
 msgid "next member %q#D declared here"
 msgstr ""
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of `%#T'"
 msgid "redefinition of %q#T"
@@ -53518,7 +53541,7 @@ msgstr ""
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
@@ -53559,7 +53582,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr ""
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -53577,7 +53600,7 @@ msgstr ""
 msgid "%q+E is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -53598,7 +53621,7 @@ msgstr ""
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 #| msgid "can't initialize friend function `%s'"
@@ -53647,7 +53670,7 @@ msgstr ""
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -53775,18 +53798,18 @@ msgstr ""
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr ""
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "прапушчан ініцыялізатар"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr ""
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -53794,474 +53817,474 @@ msgstr ""
 msgid "%qE is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "прапушчан ініцыялізатар"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr ""
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr ""
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr ""
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr ""
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr ""
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr ""
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr ""
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr ""
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr ""
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr ""
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr ""
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 #| msgid "called from here"
 msgid "allocated here"
 msgstr "выклікана адсюль"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, fuzzy, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "%qD used in its own initializer"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function,"
 msgid "%q#D is not const"
 msgstr "`%D' - гэта ня функцыя,"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr ""
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, fuzzy, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, fuzzy, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr ""
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr ""
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%D'"
 msgid "use of %qD"
 msgstr "нерэчаіснае выкарыстаньне `%D'"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr ""
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr ""
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr ""
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr ""
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, gcc-internal-format
 msgid "function concept must be called"
 msgstr ""
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr ""
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr ""
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr ""
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr ""
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr ""
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr ""
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr ""
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr ""
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, fuzzy, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr ""
@@ -54984,7 +55007,7 @@ msgstr "аргумент `__builtin_args_info' павінен быць канс
 msgid "no suspend point info for %qD"
 msgstr ""
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -55005,23 +55028,23 @@ msgstr ""
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr ""
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr ""
@@ -55041,68 +55064,68 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr ""
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr ""
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, gcc-internal-format
 msgid "pack expansion of %qE attribute"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -55144,7 +55167,7 @@ msgstr ""
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr ""
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr ""
@@ -55532,7 +55555,7 @@ msgstr "папярэдняе абвяшчэньне `%D'"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "гэта папярэдняе абвяшчэньне"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration `%D'"
 msgid "previous declaration %qD"
@@ -55677,8 +55700,8 @@ msgstr "няма папярэдняга аб'яўлення для \"%s\""
 msgid "%q#D previously defined here"
 msgstr "папярэдняе вызначэньне"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
@@ -55754,54 +55777,39 @@ msgstr "нехапае аргументаў у функцыі \"%s\""
 msgid "previous specification in %q#D here"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr "няма папярэдняга аб'яўлення для \"%s\""
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 #| msgid "conflicts with previous declaration `%#D'"
 msgid "conflicting exporting for declaration %qD"
 msgstr "канфлікт з папярэднім абвяшчэньнем `%#D'"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, gcc-internal-format
 msgid "previously declared here without exporting"
 msgstr ""
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition here"
 msgid "previous definition of %qD here"
 msgstr "папярэдняе вызначэньне"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, gcc-internal-format
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr ""
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, fuzzy, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr ""
@@ -55814,46 +55822,46 @@ msgstr ""
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "ініцыялізацыя"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 #| msgid "section of `%s' conflicts with previous declaration"
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of `%#T'"
 msgid "redefinition of %q#D"
 msgstr "папярэдняе вызначэньне `%#T'"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, fuzzy, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, fuzzy, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -55861,2535 +55869,2535 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr ""
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr ""
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr ""
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D'"
 msgid "redeclaration of %q#D"
 msgstr "абвяшчэньне `%#D'"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr ""
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, gcc-internal-format
 msgid "previous label"
 msgstr ""
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, fuzzy, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "паўтарэнне \"%s\""
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr ""
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr " адсюль"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr ""
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "ініцыялізацыя"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr ""
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr ""
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr ""
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 msgid "  enters statement expression"
 msgstr "вельмі шмат аргументаў у функцыі"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "  does not destroy %qD"
 msgstr "%s не падтрымлівае %s"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr ""
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "ініцыялізацыя"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, gcc-internal-format
 msgid "%qD used without template arguments"
 msgstr ""
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 msgid "%qD is a function, not a type"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr ""
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, fuzzy, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "вяртаемы тып \"%s\" не \"int\""
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, fuzzy, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "памер \"%s\" - %d байт"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr ""
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr ""
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr ""
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr ""
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, gcc-internal-format
 msgid "anonymous struct with base classes"
 msgstr ""
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr ""
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr ""
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr ""
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr ""
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr ""
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr ""
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr ""
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr ""
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr ""
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, fuzzy, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr ""
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr ""
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "параметр \"%s\" ініцыялізаваны"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr ""
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr ""
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr ""
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "пустое абвяшчэнне"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, fuzzy, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr ""
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, fuzzy, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, fuzzy, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr ""
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr ""
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr ""
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr ""
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, fuzzy, gcc-internal-format
 #| msgid "array size missing in `%D'"
 msgid "array size missing in %qD"
 msgstr "прапушчан памер масіва ў `%D'"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, fuzzy, gcc-internal-format
 #| msgid "zero-size array `%D'"
 msgid "zero-size array %qD"
 msgstr "нулявы памер масіва `%D'"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr ""
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, fuzzy, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr ""
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 msgid "uninitialized %<const %D%>"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr ""
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr ""
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr ""
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr ""
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, fuzzy, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr ""
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr ""
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "памер \"%s\" - %d байт"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr ""
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
 msgstr ""
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer for %q#D"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr ""
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, fuzzy, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, fuzzy, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, gcc-internal-format
 msgid "too many braces around scalar initializer for type %qT"
 msgstr ""
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, fuzzy, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, fuzzy, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr ""
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr ""
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr ""
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr ""
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr ""
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr ""
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr ""
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr ""
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "параметр \"%s\" ініцыялізаваны"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr "Не магу знайсці дэкларацыю інтэрфейса для \"%s\""
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr ""
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr ""
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template `%#D'"
 msgid "%<declare variant%> on deleted %qD"
 msgstr "абвяшчэньне шаблёну `%#D'"
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr ""
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr ""
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr ""
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr ""
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "вяртаемы тып \"%s\" не \"int\""
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr ""
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, fuzzy, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr ""
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr ""
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr ""
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr ""
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr ""
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr ""
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr ""
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr ""
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr ""
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr ""
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr ""
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr ""
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr ""
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr ""
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "array size missing in `%D'"
 msgid "array size missing in %qT"
 msgstr "прапушчан памер масіва ў `%D'"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 #| msgid "zero-size array `%D'"
 msgid "zero-size array %qT"
 msgstr "нулявы памер масіва `%D'"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr ""
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr ""
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr ""
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr ""
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr ""
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr ""
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr ""
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr ""
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr ""
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr ""
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr ""
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, fuzzy, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr ""
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr ""
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr ""
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr ""
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr ""
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr ""
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "a function concept cannot be constrained"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, gcc-internal-format
 msgid "constraints on a non-templated function"
 msgstr ""
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, gcc-internal-format
 msgid "constrained non-template friend declaration must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, fuzzy, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "ініцыялізацыя"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, fuzzy, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr ""
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr ""
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr ""
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be %qs"
 msgstr ""
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr ""
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 msgid "explicit object parameter declared here"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr ""
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr ""
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr ""
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr ""
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, fuzzy, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr ""
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, fuzzy, gcc-internal-format
 #| msgid "`main' must return `int'"
 msgid "%<::main%> must return %<int%>"
 msgstr "`main' павінна вяртаць `int'"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr ""
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr ""
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "ініцыялізацыя"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr ""
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr ""
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr ""
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "a variable concept cannot be constrained"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr ""
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr ""
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr ""
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr ""
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%D' has non-integer type"
 msgid "size of array %qD has non-integral type %qT"
 msgstr "памер масіва `%D' не цэлалікавы тып"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, fuzzy, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, fuzzy, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr ""
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr ""
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr ""
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr ""
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, gcc-internal-format
 msgid "creating array of template placeholder type %qT"
 msgstr ""
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D'"
 msgid "declaration of %qD as array of void"
 msgstr "абвяшчэньне `%#D'"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr ""
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr ""
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr ""
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr ""
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr ""
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr ""
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr ""
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, gcc-internal-format
 msgid "variable-length array of %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr ""
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "\"%s\" - гэта не пачатак дэкларацыі"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr ""
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "\"%s\" - гэта не пачатак дэкларацыі"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr ""
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr ""
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr ""
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr ""
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr ""
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr ""
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, gcc-internal-format
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, gcc-internal-format
 msgid "%q#T is not a class or namespace"
 msgstr ""
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qE as non-function"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D'"
 msgid "declaration of %qE as non-member"
 msgstr "абвяшчэньне `%#D'"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr ""
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr ""
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D'"
 msgid "declaration of %qD as %<typedef%>"
 msgstr "абвяшчэньне `%#D'"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D'"
 msgid "declaration of %qD as parameter"
 msgstr "абвяшчэньне `%#D'"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr ""
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not at beginning of declaration"
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "\"%s\" - гэта не пачатак дэкларацыі"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, fuzzy, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "пустое абвяшчэнне"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support plain `complex' meaning `double complex'"
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C не падтрымлівае просты \"complex\" у значэнні \"double complex\""
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_saveregs not supported by this target"
 msgid "%<__int%d%> is not supported by this target"
 msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support `long long'"
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ не падтрымлівае \"long long\""
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr ""
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr ""
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr ""
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr ""
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr ""
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr ""
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, fuzzy, gcc-internal-format
 #| msgid "complex invalid for `%s'"
 msgid "complex invalid for %qs"
 msgstr "complex нерэчаісны для \"%s\""
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr ""
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr ""
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr ""
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, fuzzy, gcc-internal-format
 #| msgid "Invalid declaration"
 msgid "%<virtual%> outside class declaration"
 msgstr "Нерэчаіснае абвяшчэнне"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr ""
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr ""
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr ""
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate label declaration `%s'"
 msgid "multiple storage classes in declaration of %qs"
 msgstr "паўторнае абвяшчэньне адмеціны `%s'"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr ""
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr ""
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr ""
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr ""
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute ignored"
 msgid "attribute ignored"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, gcc-internal-format
 msgid "remove parentheses"
 msgstr ""
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr ""
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr ""
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr ""
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual function cannot have deduced return type"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr ""
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' undeclared (first use in this function)"
 msgid "%qs declared as function returning a function"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr ""
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr ""
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr ""
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr ""
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr ""
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr ""
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr ""
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr ""
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
 msgstr ""
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr ""
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "Не магу знайсці файл для класа %s."
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr ""
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr ""
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr ""
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr ""
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr ""
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr ""
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr ""
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate label declaration `%s'"
 msgid "%<explicit%> outside class declaration"
 msgstr "паўторнае абвяшчэньне адмеціны `%s'"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr ""
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, fuzzy, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, fuzzy, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, fuzzy, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr ""
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr ""
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "\"%s\" - гэта не пачатак дэкларацыі"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr ""
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr ""
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, fuzzy, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr ""
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr ""
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr ""
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr ""
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, fuzzy, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "Не магу знайсці дэкларацыю пратакола для \"%s\""
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr ""
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, fuzzy, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, fuzzy, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr ""
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `::'"
 msgid "invalid use of %<::%>"
 msgstr "нерэчаіснае выкарыстаньне `::'"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr ""
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr ""
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template `%#D'"
 msgid "declaration of %qD as member of %qT"
 msgstr "абвяшчэньне шаблёну `%#D'"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr ""
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr ""
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr ""
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 #| msgid "[cannot find %s]"
 msgid "%qD cannot be %qs"
 msgstr "[нельга знайсці %s]"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr ""
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 msgid "variable template declared here"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, fuzzy, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, fuzzy, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr ""
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr ""
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr ""
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr ""
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 #| msgid "can't initialize friend function `%s'"
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr ""
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr ""
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr ""
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr ""
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr ""
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr ""
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr ""
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr ""
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr ""
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr ""
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr ""
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr ""
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr ""
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr ""
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, fuzzy, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, fuzzy, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, gcc-internal-format
 msgid "%qD must be a non-static member function"
 msgstr ""
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "вельмі шмат аргументаў у функцыі"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr ""
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr ""
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr ""
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr ""
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr ""
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr ""
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr ""
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr ""
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 #| msgid "no arguments"
 msgid "%qD must have no arguments"
 msgstr "няма аргументаў"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr ""
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr ""
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr ""
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr ""
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, fuzzy, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr ""
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr ""
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, fuzzy, gcc-internal-format
 #| msgid "this is a previous declaration"
 msgid "%qD has a previous declaration here"
 msgstr "гэта папярэдняе абвяшчэньне"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr ""
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 #| msgid "this is a previous declaration"
 msgid "%qT has a previous declaration here"
 msgstr "гэта папярэдняе абвяшчэньне"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr ""
@@ -58401,116 +58409,101 @@ msgstr ""
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, fuzzy, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "параметр \"%s\" ініцыялізаваны"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, fuzzy, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "памер \"%s\" - %d байт"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, gcc-internal-format
 msgid "class template %qD redeclared as non-template"
 msgstr ""
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr ""
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, fuzzy, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template `%#D'"
 msgid "redeclaration of %qT as a non-template"
 msgstr "абвяшчэньне шаблёну `%#D'"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, gcc-internal-format
-msgid "cannot declare %qD in a different module"
-msgstr ""
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, fuzzy, gcc-internal-format
-msgid "previously declared here"
-msgstr "няма папярэдняга аб'яўлення для \"%s\""
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr ""
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr ""
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr ""
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr ""
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr ""
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, fuzzy, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "паўтарэнне \"restrict\""
 
-#: cp/decl.cc:16984
-#, gcc-internal-format
-msgid "cannot declare %qD in different module"
-msgstr ""
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr "папярэдняе вызначэньне"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr ""
@@ -58519,83 +58512,83 @@ msgstr ""
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr ""
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr ""
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr ""
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr ""
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr ""
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr ""
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of `%#T'"
 msgid "multiple definition of %q#T"
 msgstr "папярэдняе вызначэньне `%#T'"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, fuzzy, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "вяртаемы тып \"%s\" не \"int\""
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr ""
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr ""
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr ""
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, gcc-internal-format
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr ""
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, fuzzy, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "не знойдзен клас \"%s\""
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, gcc-internal-format
 msgid "using %qs"
 msgstr ""
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr ""
@@ -58650,7 +58643,7 @@ msgstr ""
 msgid "deleting %qT is undefined"
 msgstr "метка \"%s\" ужываецца, але не вызначана"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, fuzzy, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "пустое абвяшчэнне"
@@ -58660,7 +58653,7 @@ msgstr "пустое абвяшчэнне"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr ""
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr ""
@@ -58845,64 +58838,64 @@ msgstr ""
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr ""
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr ""
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr ""
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr ""
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr ""
@@ -58911,107 +58904,107 @@ msgstr ""
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr ""
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr ""
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr ""
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, fuzzy, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 #| msgid "section of `%s' conflicts with previous declaration"
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration `%D'"
 msgid "previous mangling %q#D"
 msgstr "папярэдняе абвяшчэньне `%D'"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 #| msgid "label `%D' used but not defined"
 msgid "inline function %qD used but never defined"
 msgstr "адмеціна `%D' выкарыстоўвываецца, але ня вызначана"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "аргумент для \"%s\" прапушчан"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr ""
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr ""
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr ""
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr ""
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr ""
@@ -59117,7 +59110,7 @@ msgstr "памер \"%s\" - %d байт"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr ""
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr ""
@@ -59127,7 +59120,7 @@ msgstr ""
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr ""
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr ""
@@ -59152,47 +59145,47 @@ msgstr ""
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr ""
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr ""
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr ""
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr ""
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, gcc-internal-format
 msgid "for type %qT"
 msgstr ""
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr ""
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -59460,12 +59453,12 @@ msgstr ""
 msgid "type %qT is not a direct base of %qT"
 msgstr ""
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr ""
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "\"%s\" мае незавершаны тып"
@@ -59480,12 +59473,12 @@ msgstr ""
 msgid "invalid pointer to bit-field %qD"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "нявернае выкарыстанне \"restict\""
@@ -59681,52 +59674,52 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr ""
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr ""
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr ""
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr ""
@@ -60098,225 +60091,272 @@ msgstr ""
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 msgid "conflicting global module declaration %#qD"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration `%D'"
 msgid "existing declaration %#qD"
 msgstr "у абвяшчэньні  `%D'"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr ""
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition here"
 msgid "existing definition %qD"
 msgstr "папярэдняе вызначэньне"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, gcc-internal-format
 msgid "... this enumerator %qD"
 msgstr ""
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr ""
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, gcc-internal-format
 msgid "module %qs declared here"
 msgstr ""
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr ""
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr ""
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr ""
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, gcc-internal-format, gfc-internal-format
 msgid "compiled module is %sversion %s"
 msgstr ""
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, gcc-internal-format, gfc-internal-format
 msgid "compiler is %sversion %s%s%s"
 msgstr ""
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, gcc-internal-format
 msgid "module %qs found"
 msgstr ""
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr ""
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, gcc-internal-format
 msgid "interface partition is not exported"
 msgstr ""
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr ""
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr ""
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
+
+#: cp/module.cc:19122
+#, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#: cp/module.cc:19143
+#, gcc-internal-format
+msgid "conflicting declaration of %qD in global module"
+msgstr ""
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "previous declaration of `%D'"
+msgid "previously declared in module %qs"
+msgstr "папярэдняе абвяшчэньне `%D'"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "previous declaration of `%D'"
+msgid "previously declared in global module"
+msgstr "папярэдняе абвяшчэньне `%D'"
+
+#: cp/module.cc:19404
 #, gcc-internal-format
 msgid "reading CMI %qs"
 msgstr ""
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr ""
@@ -60328,399 +60368,399 @@ msgstr ""
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, gcc-internal-format
 msgid "module already declared"
 msgstr ""
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, gcc-internal-format
 msgid "module already imported"
 msgstr ""
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, gcc-internal-format
 msgid "module %qs imported here"
 msgstr ""
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr ""
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, gcc-internal-format
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr ""
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr ""
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 #| msgid "invalid register name for `%s'"
 msgid "invalid header name %qs"
 msgstr "нерэчаісная назва рэгістра `%s'"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 msgid "invalid module name %qs"
 msgstr "Нерэчаісны выбар %s"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 #| msgid "error writing to %s"
 msgid "writing CMI %qs"
 msgstr "памылка запісу ў %s"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, gcc-internal-format
 msgid "not writing module %qs due to errors"
 msgstr ""
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr ""
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown header kind %qs"
 msgstr "невядомая назва рэгістра: %s"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr ""
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr ""
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 #| msgid "conflicts with previous declaration `%#D'"
 msgid "%q#D conflicts with a previous declaration"
 msgstr "канфлікт з папярэднім абвяшчэньнем `%#D'"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr "дэструктару неабходны \"%#D\""
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, fuzzy, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D'"
 msgid "declaration of %q#D shadows a parameter"
 msgstr "абвяшчэньне `%#D'"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr ""
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr ""
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, gcc-internal-format
 msgid "%s %s %p %d"
 msgstr ""
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, gcc-internal-format
 msgid "%<%T%s%D%> names destructor"
 msgstr ""
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr ""
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr ""
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr ""
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 #| msgid "%s: Not a directory"
 msgid "%qT is not a direct base of %qT"
 msgstr "%s: не дырэкторыя"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template `%#D'"
 msgid "using-declaration may not name namespace %qD"
 msgstr "абвяшчэньне шаблёну `%#D'"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, fuzzy, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "дэструктару неабходны \"%#D\""
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, fuzzy, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr ""
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr ""
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr ""
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute ignored"
 msgid "%qD attribute directive ignored"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr ""
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr ""
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, gcc-internal-format
 msgid "it was later defined here"
 msgstr ""
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr ""
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, gcc-internal-format
 msgid "%<strong%> using directive no longer supported"
 msgstr ""
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, gcc-internal-format
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr ""
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr ""
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "памер \"%s\" - %d байт"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, fuzzy, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "\"%s\" - гэта не пачатак дэкларацыі"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 msgid "%qD defined here"
 msgstr "YYDEBUG не вызначан."
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "previous definition here"
 msgid "reachable %s definition here"
 msgstr "папярэдняе вызначэньне"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr ""
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr ""
@@ -60745,7 +60785,7 @@ msgstr ""
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr ""
@@ -60992,7 +61032,7 @@ msgstr ""
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
@@ -61174,7 +61214,7 @@ msgstr ""
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr ""
@@ -61229,7 +61269,7 @@ msgstr ""
 msgid "template-id not allowed for destructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -61249,7 +61289,7 @@ msgstr ""
 msgid "expected unqualified-id"
 msgstr ""
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "\"%s\" мае незавершаны тып"
@@ -61300,7 +61340,7 @@ msgstr ""
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "памылковая колькасьць аргументаў, зададзеных для атрыбута `%s'"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for `%s' attribute"
 msgid "wrong number of arguments to %<__builtin_launder%>"
@@ -61338,7 +61378,7 @@ msgstr ""
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%D'"
 msgid "invalid use of %qD"
@@ -61364,7 +61404,7 @@ msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr ""
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr ""
@@ -61514,8 +61554,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr ""
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
@@ -61556,7 +61596,7 @@ msgstr "памылковая колькасьць аргументаў, зада
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -61684,7 +61724,7 @@ msgstr ""
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, fuzzy, gcc-internal-format
 #| msgid "empty body in an else-statement"
 msgid "expected selection-statement"
@@ -61749,7 +61789,7 @@ msgstr ""
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr ""
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, fuzzy, gcc-internal-format
 #| msgid "empty body in an else-statement"
 msgid "expected iteration-statement"
@@ -61776,7 +61816,7 @@ msgstr ""
 msgid "ISO C++ forbids computed gotos"
 msgstr ""
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr ""
@@ -62059,12 +62099,12 @@ msgstr ""
 msgid "cannot expand initializer for member %qD"
 msgstr "прапушчан ініцыялізатар"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr ""
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr ""
@@ -62710,7 +62750,7 @@ msgstr "невыкарыстаемы параметр \"%s\""
 msgid "%qT not permitted in template argument"
 msgstr ""
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%T'"
@@ -62892,12 +62932,12 @@ msgstr "папярэдняе вызначэньне `%#T'"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr ""
@@ -63099,37 +63139,37 @@ msgstr ""
 msgid "expression must be enclosed in parentheses"
 msgstr ""
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, gcc-internal-format
 msgid "result type is not a plain type-constraint"
 msgstr ""
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr ""
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, fuzzy, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "Нерэчаіснае абвяшчэнне"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, fuzzy, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "невыкарыстаемы параметр \"%s\""
@@ -63138,445 +63178,445 @@ msgstr "невыкарыстаемы параметр \"%s\""
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr ""
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, fuzzy, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "-pipe не падтрымліваецца."
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr ""
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr ""
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr ""
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, fuzzy, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "ініцыялізацыя"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, fuzzy, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "пустое абвяшчэнне"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr ""
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, fuzzy, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "ініцыялізацыя"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr ""
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr ""
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr ""
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr ""
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate `%s'"
 msgid "duplicate %qD specifier"
 msgstr "паўтарэньне `%s'"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr ""
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr ""
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr ""
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support `long long'"
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ не падтрымлівае \"long long\""
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr ""
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate `%s'"
 msgid "duplicate %qD"
 msgstr "паўтарэньне `%s'"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate `%s'"
 msgid "duplicate %qs"
 msgstr "паўтарэньне `%s'"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr ""
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr ""
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr ""
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr ""
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr ""
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr ""
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, fuzzy, gcc-internal-format
 #| msgid "unregistered operator %s"
 msgid "expected %<operator%>"
 msgstr "нераспазнаны аператар %s"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr ""
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr ""
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr ""
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr ""
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr ""
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr ""
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr ""
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr ""
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr ""
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr ""
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr ""
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr ""
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr ""
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr ""
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr ""
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr ""
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr ""
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr ""
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr ""
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr ""
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr ""
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr ""
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, fuzzy, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, gcc-internal-format
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr ""
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr ""
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr ""
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr ""
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr ""
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr ""
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, fuzzy, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr ""
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr ""
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr ""
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr ""
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr ""
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr ""
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mode for gen_tst_reg"
 msgid "invalid type for instance variable"
 msgstr "нерэчаісны рэжым для gen_tst_reg"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr ""
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, fuzzy, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `restrict'"
 msgid "invalid type for property"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr ""
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, gcc-internal-format
 msgid "expected integer expression list"
 msgstr ""
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr ""
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr ""
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid reduction-identifier"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr ""
@@ -63585,12 +63625,12 @@ msgstr ""
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, gcc-internal-format
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr ""
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
@@ -63600,134 +63640,134 @@ msgstr ""
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr ""
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr ""
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr ""
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer clause"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr ""
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr ""
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr ""
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr ""
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr ""
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr ""
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr ""
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr ""
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr ""
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr ""
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -63757,7 +63797,7 @@ msgstr ""
 msgid "specialization of %qD must appear at namespace scope"
 msgstr ""
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr ""
@@ -63773,28 +63813,28 @@ msgstr "папярэдняе вызначэньне `%#T'"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr ""
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, fuzzy, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template `%#D'"
 msgid "specialization of alias template %qD"
 msgstr "абвяшчэньне шаблёну `%#D'"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "ініцыялізацыя"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr ""
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of `%#T'"
 msgid "from definition of %q#D"
@@ -63802,143 +63842,143 @@ msgstr "папярэдняе вызначэньне `%#T'"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr ""
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr ""
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr ""
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, gcc-internal-format
 msgid "%s %#qD"
 msgstr ""
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr ""
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr ""
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr ""
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr ""
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr ""
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "ініцыялізацыя"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "прапушчан прабел пасля нумара \"%.*s\""
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "прапушчан прабел пасля нумара \"%.*s\""
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 msgid "template-id %qE in declaration of primary template"
 msgstr "пустое абвяшчэнне"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, fuzzy, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "пустое абвяшчэнне"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "пустое абвяшчэнне"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr ""
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr "ініцыялізацыя"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr ""
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr ""
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function,"
 msgid "%qD is not a template function"
@@ -63952,157 +63992,157 @@ msgstr "`%D' - гэта ня функцыя,"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr ""
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, fuzzy, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "у функцыі \"%s\":"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration `%D'"
 msgid "friend declaration here"
 msgstr "у абвяшчэньні  `%D'"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, gcc-internal-format
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr ""
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr ""
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr ""
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr ""
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr ""
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template `%#D'"
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "абвяшчэньне шаблёну `%#D'"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr ""
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr ""
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function `%s'"
 msgid "too many arguments for partial specialization %qT"
 msgstr "вельмі шмат аргумэнтаў у функцыі `%s'"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr ""
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, gcc-internal-format
 msgid "primary template %qD"
 msgstr ""
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr ""
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr ""
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, fuzzy, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "нехапае аргументаў у функцыі \"%s\""
@@ -64111,47 +64151,47 @@ msgstr "нехапае аргументаў у функцыі \"%s\""
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr ""
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr ""
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr ""
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr ""
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr ""
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 msgid "template %qD declared"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr ""
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr ""
@@ -64161,509 +64201,509 @@ msgstr ""
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, fuzzy, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template `%#D'"
 msgid "template definition of non-template %q#D"
 msgstr "абвяшчэньне шаблёну `%#D'"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr ""
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, fuzzy, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "невыкарыстаемы параметр \"%s\""
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, fuzzy, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "невыкарыстаемы параметр \"%s\""
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr ""
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr ""
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, fuzzy, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "пустое абвяшчэнне"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] "нявернае выкарыстанне \"restict\""
 msgstr[1] "нявернае выкарыстанне \"restict\""
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "няма папярэдняга аб'яўлення для \"%s\""
 msgstr[1] "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, fuzzy, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "невыкарыстаемы параметр \"%s\""
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr ""
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, gcc-internal-format
 msgid "redeclared here"
 msgstr ""
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr ""
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr ""
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr ""
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr ""
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr ""
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "невыкарыстаемы параметр \"%s\""
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr ""
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr ""
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr ""
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr ""
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr ""
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr ""
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr ""
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr ""
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr ""
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "параметр \"%s\" ініцыялізаваны"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr ""
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr ""
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr ""
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr ""
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr ""
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr ""
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr ""
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for `%#D' has type `%T'"
 msgid "in template argument for type %qT"
 msgstr "звычайны аргумэнт для `%#D' мае тып `%T'"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr ""
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr ""
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr ""
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr ""
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr ""
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr ""
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr ""
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr ""
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr ""
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr ""
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `restrict'"
 msgid "invalid use of destructor %qE as a type"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr ""
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr ""
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr ""
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr ""
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr ""
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr ""
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr ""
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr ""
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "параметр \"%s\" ініцыялізаваны"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr ""
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr ""
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, fuzzy, gcc-internal-format
 msgid "provided for %qD"
 msgstr "дэструктару неабходны \"%#D\""
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr ""
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr ""
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, fuzzy, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "пустое абвяшчэнне"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, gcc-internal-format
 msgid "template constraint failure for %qD"
 msgstr ""
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr ""
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr ""
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr ""
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr ""
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr ""
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, gcc-internal-format
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr ""
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr ""
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr ""
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr ""
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr ""
@@ -64681,307 +64721,307 @@ msgstr ""
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, fuzzy, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter type `%T'"
 msgid "invalid parameter type %qT"
 msgstr "нерэчаісны тып парамэтра `%T'"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration `%D'"
 msgid "in declaration %q+D"
 msgstr "у абвяшчэньні  `%D'"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, fuzzy, gcc-internal-format
 #| msgid "function does not return string type"
 msgid "function returning an array"
 msgstr "функцыя не вяртае тып string"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, fuzzy, gcc-internal-format
 msgid "function returning a function"
 msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr ""
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr ""
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr ""
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr ""
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr ""
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr ""
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr ""
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr ""
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr ""
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr ""
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, fuzzy, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr ""
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr ""
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr ""
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr ""
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr ""
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr ""
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr ""
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for `%s' attribute"
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "памылковая колькасьць аргументаў, зададзеных для атрыбута `%s'"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for `%s' attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "памылковая колькасьць аргументаў, зададзеных для атрыбута `%s'"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr ""
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr ""
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for `%#D' has type `%T'"
 msgid "template argument for %qD uses local type %qT"
 msgstr "звычайны аргумэнт для `%#D' мае тып `%T'"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr ""
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, fuzzy, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr ""
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 msgid "%s %#qS"
 msgstr ""
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of function concept %q#D"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr ""
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr ""
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr ""
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, fuzzy, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr ""
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr ""
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr ""
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr ""
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, fuzzy, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "паўторнае абвяшчэнне меткі \"%s\""
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr ""
@@ -64993,164 +65033,164 @@ msgstr ""
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr ""
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr ""
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, fuzzy, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, fuzzy, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "\"%s\" - гэта не пачатак дэкларацыі"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "a concept cannot be constrained"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr ""
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr ""
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr ""
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr ""
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, gcc-internal-format
 msgid "use %qD directly instead"
 msgstr ""
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr ""
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "параметр \"%s\" ініцыялізаваны"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, gcc-internal-format
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr ""
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "ініцыялізацыя"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr ""
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr ""
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr ""
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr ""
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr ""
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr ""
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "нявернае выкарыстанне \"restict\""
@@ -65359,631 +65399,631 @@ msgstr "тып параметра \"%s\" не аб'яўлены"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr ""
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr ""
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr ""
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 msgid "cannot call a concept as a function"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, fuzzy, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "памер \"%s\" больш чам %d байт"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, gcc-internal-format
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr ""
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr ""
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr ""
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr ""
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, gcc-internal-format
 msgid "invalid use of %<this%> before it is valid"
 msgstr ""
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `restrict'"
 msgid "invalid use of %<this%> after it is valid"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr ""
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr ""
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr ""
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr ""
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr ""
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, fuzzy, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, fuzzy, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr ""
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, fuzzy, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, fuzzy, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "Нерэчаісная спецыфікацыя! Памылка ў cc."
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr ""
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr ""
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr ""
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 msgid "missing template arguments"
 msgstr "параметр \"%s\" ініцыялізаваны"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr ""
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr ""
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr ""
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr ""
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr ""
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr ""
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr ""
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr ""
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr ""
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr ""
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr ""
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
 msgstr ""
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr ""
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr ""
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr ""
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr ""
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr ""
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr ""
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr ""
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr ""
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr ""
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr ""
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr ""
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr ""
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr ""
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr ""
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr ""
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, gcc-internal-format
 msgid "static assertion failed: %.*s"
 msgstr ""
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr ""
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr ""
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr ""
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr ""
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr ""
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr ""
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr ""
@@ -65991,1169 +66031,1169 @@ msgstr ""
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr ""
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr ""
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 #| msgid "called from here"
 msgid " declared here"
 msgstr "выклікана адсюль"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr "Клас \"%s\" ужо існуе"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function,"
 msgid "%qD is not public"
 msgstr "`%D' - гэта ня функцыя,"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, gcc-internal-format
 msgid "%qD is mutable"
 msgstr ""
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr ""
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute argument must be a string constant"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "\"%s\" атрыбут ігнарыруецца"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr ""
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr ""
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr ""
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr ""
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "няма папярэдняга аб'яўлення для \"%s\""
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr ""
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr ""
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "сімвальная канстанта вельмі доўгая"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr ""
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr ""
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr ""
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr ""
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr ""
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr ""
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr ""
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr ""
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr ""
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr ""
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr ""
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "памер масіва \"%s\" адмоўны"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr ""
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr ""
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr ""
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr ""
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr ""
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr ""
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr ""
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr ""
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr ""
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr ""
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr ""
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function,"
 msgid "%qD is not a member template function"
 msgstr "`%D' - гэта ня функцыя,"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr ""
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr ""
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, fuzzy, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "нявернае выкарыстанне \"restict\""
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr ""
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr ""
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr ""
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr ""
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr ""
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, fuzzy, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "\"%s\" звычайна функцыя"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "вельмі шмат аргументаў у функцыі \"%s\""
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function"
 msgid "too many arguments to member function %q#D"
 msgstr "вельмі шмат аргументаў у функцыі"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function"
 msgid "too few arguments to member function %q#D"
 msgstr "не хапае аргументаў у функцыі"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function"
 msgid "too many arguments to function %q#D"
 msgstr "вельмі шмат аргументаў у функцыі"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function"
 msgid "too few arguments to function %q#D"
 msgstr "не хапае аргументаў у функцыі"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "вельмі шмат аргументаў у функцыі \"%s\""
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "вельмі шмат аргументаў у функцыі"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "не хапае аргументаў у функцыі"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, fuzzy, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, fuzzy, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr ""
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr ""
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr ""
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr ""
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, gcc-internal-format
 msgid "unordered comparison on non-floating-point argument"
 msgstr ""
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr ""
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr ""
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr ""
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr ""
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr ""
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr ""
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr ""
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr ""
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr ""
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "taking address of rvalue"
 msgstr "ISO C не дазваляе пусты ізыходны файл"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C не дазваляе пусты ізыходны файл"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, fuzzy, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "не магу атрымаць адрас бітавага поля \"%s\""
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr ""
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C forbids an empty source file"
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C не дазваляе пусты ізыходны файл"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, fuzzy, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, fuzzy, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr ""
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr ""
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr ""
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr ""
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr ""
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr ""
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr ""
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr ""
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr ""
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, gcc-internal-format
 msgid "type qualifiers ignored on cast result type"
 msgstr ""
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "вяртаемы тып \"%s\" не \"int\""
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 #| msgid "converting from `%T' to `%T'"
 msgid "converting from %qH to %qI"
 msgstr "пераўтварэньне з `%T' у `%T'"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, gcc-internal-format
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 msgid "cast from %qH to %qI loses precision"
 msgstr ""
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr ""
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr ""
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, fuzzy, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr ""
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr ""
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, gcc-internal-format
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C не дазваляе дэкларацыі метак (label)"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, fuzzy, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, gcc-internal-format
 msgid "moving %qE of type %qT to itself"
 msgstr ""
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr ""
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr ""
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr ""
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, fuzzy, gcc-internal-format
 msgid "array used as initializer"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, fuzzy, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "Нерэчаісны выбар %s"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr ""
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr ""
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr ""
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, fuzzy, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 msgid "cannot convert %qH to %qI in default argument"
 msgstr ""
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr ""
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 msgid "cannot convert %qH to %qI in initialization"
 msgstr ""
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 msgid "cannot convert %qH to %qI in return"
 msgstr ""
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 msgid "cannot convert %qH to %qI in assignment"
 msgstr ""
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "аргумент для \"%s\" прапушчан"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr ""
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, gcc-internal-format
 msgid "returning pointer to temporary"
 msgstr ""
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr ""
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr ""
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr ""
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr ""
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr ""
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr ""
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr ""
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr ""
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer"
 msgid "returning initializer list"
 msgstr "прапушчан ініцыялізатар"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr ""
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr ""
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr ""
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr ""
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr ""
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 #| msgid "invalid %%s value"
 msgid "using rvalue as lvalue"
@@ -67382,156 +67422,156 @@ msgstr ""
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr ""
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr ""
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr ""
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr ""
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, gcc-internal-format
 msgid "initializer-string for %qT is too long"
 msgstr ""
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, gcc-internal-format
 msgid "remove %<{ }%> around initializer"
 msgstr ""
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr ""
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, fuzzy, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "прапушчан ініцыялізатар"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, fuzzy, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "параметр \"%s\" ініцыялізаваны"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "параметр \"%s\" ініцыялізаваны"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr ""
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr ""
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr ""
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr ""
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%D' has non-integer type"
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "памер масіва `%D' не цэлалікавы тып"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr ""
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr ""
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, fuzzy, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr ""
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr ""
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr ""
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "Нерэчаісны выбар \"%s\""
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr ""
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, fuzzy, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "нерэчаісны ініцыялізатар"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, fuzzy, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "\"%s\" мае незавершаны тып"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, fuzzy, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "\"%s\" мае незавершаны тып"
@@ -68520,7 +68560,7 @@ msgstr ""
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr ""
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "invalid string constant `%E'"
 msgid "Invalid use of BOZ literal constant at %L"
@@ -69848,7 +69888,7 @@ msgstr ""
 msgid "deferred type parameter at %C"
 msgstr ""
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -70064,7 +70104,7 @@ msgstr ""
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr ""
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr ""
@@ -70867,7 +70907,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr ""
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr ""
@@ -71675,12 +71715,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr ""
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -71930,273 +71970,273 @@ msgstr ""
 msgid "check_init_expr(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr ""
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr ""
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr ""
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr ""
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr ""
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr ""
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr ""
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr ""
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr ""
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr ""
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr ""
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr ""
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr ""
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr ""
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr ""
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr ""
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr ""
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr ""
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr ""
@@ -72204,192 +72244,192 @@ msgstr ""
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr ""
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr ""
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr ""
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr ""
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr ""
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr ""
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr ""
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr ""
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr ""
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr ""
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr ""
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr ""
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr ""
@@ -72410,8 +72450,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr ""
@@ -72492,7 +72532,7 @@ msgstr ""
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr ""
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -72627,12 +72667,12 @@ msgstr ""
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
@@ -73504,7 +73544,7 @@ msgstr "пераўтварэньне з `%T' у `%T'"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr ""
@@ -74057,7 +74097,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr ""
@@ -74227,6 +74267,11 @@ msgstr ""
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -74628,7 +74673,7 @@ msgstr ""
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr ""
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr ""
@@ -75151,82 +75196,82 @@ msgstr ""
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr ""
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected RANK statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr ""
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr ""
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr ""
@@ -76651,8 +76696,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr ""
@@ -79019,12 +79064,12 @@ msgstr ""
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr ""
@@ -79144,7 +79189,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr ""
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr ""
@@ -79545,278 +79590,284 @@ msgstr ""
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr ""
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr ""
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "invalid parameter type `%T'"
+msgid "Invalid array reference at %L"
+msgstr "нерэчаісны тып парамэтра `%T'"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr ""
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr ""
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr ""
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr ""
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr ""
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr ""
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -79825,284 +79876,284 @@ msgstr ""
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr ""
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr ""
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr ""
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr ""
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr ""
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr ""
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr ""
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr ""
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr ""
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr ""
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr ""
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr ""
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr ""
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr ""
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr ""
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr ""
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr ""
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr ""
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr ""
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr ""
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr ""
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr ""
@@ -80110,212 +80161,212 @@ msgstr ""
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr ""
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr ""
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr ""
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr ""
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr ""
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr ""
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr ""
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr ""
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr ""
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr ""
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "тып параметра \"%s\" не аб'яўлены"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr ""
@@ -80323,1002 +80374,1002 @@ msgstr ""
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "size of array `%s' is too large"
 msgid "String length at %L is too large"
 msgstr "памер масіва \"%s\" вельмі вялікі"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr ""
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr ""
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr ""
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr ""
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr ""
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr ""
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr ""
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr ""
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr ""
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr ""
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr ""
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr ""
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr ""
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr ""
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr ""
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr ""
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr ""
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr ""
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr ""
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr ""
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr ""
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr ""
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr ""
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr ""
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr ""
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr ""
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr ""
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr ""
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr ""
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr ""
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr ""
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr ""
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr ""
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr ""
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr ""
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr ""
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "label `%s' defined but not used"
 msgid "Label %d at %L defined but not used"
 msgstr "адмеціна `%s' вызначана, але ня выкарыстоўваецца"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "label `%s' defined but not used"
 msgid "Label %d at %L defined but cannot be used"
 msgstr "адмеціна `%s' вызначана, але ня выкарыстоўваецца"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr ""
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr ""
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr ""
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr ""
@@ -81871,330 +81922,330 @@ msgstr ""
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, fuzzy, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "\"%s\" атрыбут ігнарыруецца"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr ""
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr ""
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr ""
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr ""
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr ""
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "\"%s\" звычайна функцыя"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, fuzzy, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "\"%s\" атрыбут ігнарыруецца"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr ""
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr ""
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr ""
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr ""
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr ""
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr ""
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr ""
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "памер \"%s\" - %d байт"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr ""
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr ""
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr ""
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr ""
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr ""
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr ""
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr ""
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr ""
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr ""
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr ""
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr ""
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr ""
@@ -82224,24 +82275,24 @@ msgstr ""
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr ""
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr ""
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr ""
@@ -82429,38 +82480,38 @@ msgstr ""
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr ""
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, fuzzy, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "невядомы рэжым машыны \"%s\""
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "too few arguments to function `%s'"
 msgid "Unknown argument list function at %L"
 msgstr "нехапае аргументаў у функцыі \"%s\""
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -82471,17 +82522,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr ""
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr ""
@@ -82622,7 +82673,7 @@ msgstr ""
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr ""
@@ -83001,6 +83052,11 @@ msgstr "\"%s\" не абвешчан (першае выкарыстанне ў 
 msgid "function %qD redeclared as variable"
 msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
 
+#: lto/lto-symtab.cc:865
+#, fuzzy, gcc-internal-format
+msgid "previously declared here"
+msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -84262,7 +84318,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr ""
@@ -84272,7 +84328,7 @@ msgstr ""
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr ""
diff --git a/gcc/po/da.po b/gcc/po/da.po
index 19cd9e94a49..73665b24f1d 100644
--- a/gcc/po/da.po
+++ b/gcc/po/da.po
@@ -137,7 +137,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc-9.1-b20190203\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2019-02-14 11:00+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -545,7 +545,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "-C og -o er indbyrdes uforenelige"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared og mdll er indbyrdes uforenelige"
 
@@ -20756,18 +20756,18 @@ msgstr "ukendt instruktion:"
 msgid "insn does not satisfy its constraints:"
 msgstr "instruktion tilfredsstiller ikke sine begrænsninger:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "oprettet og brugt med en anden indstilling for »%s«"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 #, fuzzy
 #| msgid "created and used with different settings of -fpic"
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "oprettet og brugt med forskellige indstillinger for -fpic"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 #, fuzzy
 #| msgid "created and used with different settings of -fpie"
 msgid "created and used with different settings of %<-fpie%>"
@@ -21091,7 +21091,7 @@ msgstr "længdemodifikation i strfmon-formatering"
 msgid "<command-line>"
 msgstr "<kommandolinje>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 #| msgid "Unsupported operand for code '%c'"
 msgid "unsupported operand for code '%c'"
@@ -21111,9 +21111,9 @@ msgstr "ugyldig operand for »%%%c«"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 #| msgid "invalid constant"
 msgid "invalid vector constant"
@@ -21136,7 +21136,7 @@ msgstr "ugyldig operand for »%%%c«"
 msgid "incompatible register operand for '%%%c'"
 msgstr "ugyldig operand for »%%%c«"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "manglende operand"
@@ -21168,93 +21168,93 @@ msgstr "ugyldig adresseringstilstand"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "ugyldige operander til binær %s"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "»%%&« brugt uden nogle lokale dynamiske TLS-referencer"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "ugyldig %%J-værdi"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "ugyldig %%r-værdi"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "ugyldig %%R-værdi"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "ugyldig %%N-værdi"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "ugyldig %%P-værdi"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "ugyldig %%h-værdi"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "ugyldig %%L-værdi"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "ugyldig %%m-værdi"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "ugyldig %%M-værdi"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "ugyldig %%U-værdi"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "ugyldig %%s-værdi"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "ugyldig %%C-værdi"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "ugyldig %%E-værdi"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "ukendt relokaliserings-unspec"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "ugyldig %%xn-kode"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, c-format
 msgid "invalid operand address"
 msgstr "ugyldig operandadresse"
@@ -21351,37 +21351,37 @@ msgstr "ugyldig UNSPEC som operand: %d"
 msgid "unrecognized supposed constant"
 msgstr "ukendt formodet konstant"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "ugyldig skift-operand"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, fuzzy, c-format
 #| msgid "Generate char instructions"
 msgid "predicated Thumb instruction"
 msgstr "Generér char-instruktioner"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, fuzzy, c-format
 #| msgid "ret instruction not implemented"
 msgid "predicated instruction in conditional sequence"
 msgstr "ret-instruktion ikke implementeret"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "Ikke understøttet operand for koden »%c«"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -21389,123 +21389,123 @@ msgstr "Ikke understøttet operand for koden »%c«"
 msgid "invalid operand for code '%c'"
 msgstr "ugyldig operand for koden »%c«"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "instruktion aldrig udført"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "forældet Maverick-formatkode »%c«"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "ugyldig konvertering fra %<__fpreg%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 #| msgid "invalid conversion to type `%T' from type `%T'"
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "adresseoperand kræver begrænsning for X-, Y- eller Z-register"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "operander til %T/%t skal være reg + const_int:"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr "ugyldig adresse, ikke en I/O-adresse:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr "ugyldig adresse, ikke en konstant:"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "ugyldig adresse, ikke (reg+disp):"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "ugyldig adresse, ikke post_inc eller pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "intern oversætterfejl - ugyldig adresse:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "Ikke understøttet kode »%c« for fast-punkt:"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "intern oversætterfejl - ugyldig tilstand:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "ugyldig instruktion:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "ukorrekt instruktion:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "ukendt flytteinstruktion:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "ugyldig skifteinstruktion:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "intern oversætterfejl - ukorrekt skift:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr "fast-punkt-konvertering er ikke understøttet"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr ""
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 #, fuzzy
 #| msgid "a parameter"
 msgid "function parameter"
 msgstr "en parameter"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 #, fuzzy
 #| msgid "structure"
 msgid "structure field"
 msgstr "struktur"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 #, fuzzy
 #| msgid "declaration of `%s' as array of functions"
 msgid "return type of function"
 msgstr "'%s' erklæret som en tabel af funktioner"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 #, fuzzy
 #| msgid "pointer"
 msgid "pointer"
@@ -21547,7 +21547,7 @@ msgstr "uventet operand"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -21874,55 +21874,55 @@ msgstr "operand er ikke et heltal, ugyldig operandkode »R«"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "operand er ikke et specifikt heltal, ugyldig operandkode »r«"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "ugyldig operandkode »%c«"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "ugyldige begrænsninger for operand"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 #| msgid "invalid constant"
 msgid "invalid vector immediate"
 msgstr "ugyldig konstant:"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "ukendt instruktionstilstand"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "ugyldig konvertering fra %<__fpreg%>"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "ugyldig konvertering fra %<__fpreg%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "ugyldig konvertering til %<__fpreg%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 #| msgid "invalid conversion to type `%T' from type `%T'"
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -21953,7 +21953,7 @@ msgstr "ugyldig operation på %<__fpreg%>"
 msgid "invalid %%P operand"
 msgstr "ugyldig %%P-operand"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "ugyldig %%p-værdi"
@@ -21980,29 +21980,29 @@ msgstr "kan ikke bruge ikke-gp relativ absolut adresse"
 msgid "invalid addressing mode"
 msgstr "ugyldig adresseringstilstand"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "»%%%c« er ikke et gyldigt operandpræfiks"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "ugyldig brug af »%%%c«"
@@ -22034,7 +22034,7 @@ msgid "post-increment address is not a register"
 msgstr "postfiks forøgelsesadresse er ikke et register"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "ugyldig adresse"
 
@@ -22203,7 +22203,7 @@ msgstr "ikke-understøttet kombination: %s"
 msgid "unsupported memory expression:"
 msgstr "fast-punkt-konvertering er ikke understøttet"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 #| msgid "invalid %%r operand"
 msgid "invalid vector operand"
@@ -22266,257 +22266,257 @@ msgstr "-mquad-memory-atomic kræver 64-bit tilstand"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "-mquad-memory er ikke tilgængelig i lilleendet tilstand"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 #, fuzzy
 #| msgid "bad operand"
 msgid "bad move"
 msgstr "ugyldig operand"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%A value"
 msgstr "ugyldig %%J-værdi"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "ugyldig %%D-værdi"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "ugyldig %%e-værdi"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "ugyldig %%f-værdi"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "ugyldig %%F-værdi"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "ugyldig %%G-værdi"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "ugyldig %%j-kode"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "ugyldig %%J-kode"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "ugyldig %%k-værdi"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "ugyldig %%K-værdi"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "ugyldig %%O-værdi"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "ugyldig %%q-værdi"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%t value"
 msgstr "ugyldig %%J-værdi"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "ugyldig %%T-værdi"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "ugyldig %%u-værdi"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "ugyldig %%v-værdi"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%V value"
 msgstr "ugyldig %%J-værdi"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "ugyldig %%x-værdi"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, c-format
 msgid "invalid %%z value"
 msgstr "ugyldig %%z-værdi"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "ugyldig %%y-værdi, prøv at brug »Z«-begrænsningen"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 #, fuzzy
 #| msgid "Use hardware floating point instructions"
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "Benyt hardware-kommatalsinstruktioner"
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "AltiVec-parameter sendt til funktion uden prototype"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 msgid "Could not generate addis value for fusion"
 msgstr "Kunne ikke generere addis-værdi for fusion"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 msgid "Unable to generate load/store offset for fusion"
 msgstr "Kunne ikke generere indlæsning/lagring af forskydning for fusion"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr "Ugyldig GPR-fusion"
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "ugyldig konvertering fra %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "ugyldig konvertering til %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "ugyldig konvertering fra %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "ugyldig konvertering til %<__fpreg%>"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr "symbolske hukommelsesreferencer er kun understøttet på z10 eller senere"
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "Kan ikke nedbryde adresse"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "ugyldig sammenligningsoperator til »E«-ændring"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "ugyldig reference til »J«-uddataændring"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "ugyldig adresse til »O«-uddataændring"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "ugyldig adresse til »R«-uddataændring"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "hukommelsesreference forventet til »S«-uddataændring"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "ugyldig adresse for »S«-uddatamodifikation"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "register eller hukommelsesudtryk forventet til »N«-uddataændring"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "register eller hukommelsesudtryk forventet til »M«-uddataændring"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "ugyldig konstant til uddataændringen »%c«"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "ugyldig konstant - prøv at bruge en uddataændring"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "ugyldig konstantvektor for uddataændringen »%c«"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "ugyldigt udtryk - prøv at brug en uddataændring"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "ugyldig udtryk til uddataændringen »%c«"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 msgid "vector argument passed to unprototyped function"
 msgstr "vektorparameter sendt til funktion uden prototype"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr "typer er forskellige i signedness"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr "binær operator understøtter ikke tovektor bool-operand"
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr "binær operator understøtter ikke vektor bool-operand"
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr "binær operator understøtter ikke at blande vektor bool med kommatals vektor-operand"
 
@@ -22711,12 +22711,12 @@ msgstr "({anonym})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "%<;%> forventet"
@@ -22729,7 +22729,7 @@ msgstr "%<;%> forventet"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -22738,7 +22738,7 @@ msgstr "%<;%> forventet"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "%<)%> forventet"
@@ -22746,7 +22746,7 @@ msgstr "%<)%> forventet"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "%<]%> forventet"
@@ -22757,29 +22757,29 @@ msgstr "%<;%>, %<,%> eller %<)%> forventet"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "%<(%> forventet"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "%<[%> forventet"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "%<{%> forventet"
@@ -22789,17 +22789,17 @@ msgstr "%<{%> forventet"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "%<:%> forventet"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "%<while%> forventet"
@@ -22808,8 +22808,8 @@ msgstr "%<while%> forventet"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "%<,%> forventet"
@@ -22819,17 +22819,17 @@ msgid "expected %<.%>"
 msgstr "%<.%> forventet"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "%<@end%> forventet"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "%<>%> forventet"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "%<,%> eller %<)%> forventet"
@@ -22837,33 +22837,33 @@ msgstr "%<,%> eller %<)%> forventet"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "%<=%> forventet"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "%<}%> forventet"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "expected %<else%>"
 msgstr "forventede %<delete%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "%<#pragma omp section%> eller %<}%> forventet"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -22871,7 +22871,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "(anonym)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "%<<%> forventet"
@@ -22888,24 +22888,24 @@ msgstr "forventet etiket"
 msgid "candidate:"
 msgstr "kandidat 1:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 #| msgid "Enable use of DB instruction"
 msgid "  after user-defined conversion:"
 msgstr "Aktivér brug af DB-instruktioner"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 #, fuzzy
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "candidate%s: %+#D"
 msgstr[1] "candidate%s: %+#D"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "kandidat 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "kandidat 2:"
 
@@ -23181,7 +23181,7 @@ msgstr ""
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr ""
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 #, fuzzy
 msgid "candidates are:"
 msgstr "candidate%s: %+#D"
@@ -23242,50 +23242,50 @@ msgstr ""
 msgid "source type is not polymorphic"
 msgstr ""
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "forkert parametertype til unært minus"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "forkert parametertype til unært plus"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "forkert parametertype til bitkomplement"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "forkert parametertype til abs"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "forkert parametertype til konjugation"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 #, fuzzy
 #| msgid "wrong type argument to unary plus"
 msgid "in argument to unary !"
 msgstr "forkert parametertype til unært plus"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr ""
 
@@ -23365,7 +23365,7 @@ msgstr ""
 msgid "Deleted feature:"
 msgstr ""
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 #, fuzzy
 #| msgid "assignment"
 msgid "array assignment"
@@ -23593,11 +23593,11 @@ msgstr ""
 msgid "implied END DO"
 msgstr ""
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "tildeling"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 #, fuzzy
 #| msgid "assignment"
 msgid "pointer assignment"
@@ -23791,49 +23791,49 @@ msgstr ""
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr ""
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr ""
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 #, fuzzy
 #| msgid "invalid expression as operand"
 msgid "End expression in DO loop"
 msgstr "ugyldigt udtryk som operand"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr ""
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr ""
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr ""
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr ""
 
@@ -23842,11 +23842,11 @@ msgstr ""
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr ""
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -23861,12 +23861,12 @@ msgstr ""
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr ""
 
@@ -23875,82 +23875,82 @@ msgstr ""
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, fuzzy, c-format
 #| msgid "too few arguments to function `%s'"
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "for få parametre til funktionen '%s'"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -23976,17 +23976,17 @@ msgstr ""
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 #, fuzzy
 #| msgid "output pipe has been closed"
 msgid "Loop variable has been modified"
 msgstr "uddataledningen er blevet lukket"
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr ""
 
@@ -24069,7 +24069,7 @@ msgid "expected boolean type"
 msgstr "forventet boolesk type"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, fuzzy, gcc-internal-format
 msgid "expected integer"
 msgstr "uventet operand"
@@ -24142,7 +24142,7 @@ msgstr "ikke nok parametre"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "for mange parametre"
@@ -24846,7 +24846,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "-g er kun understøttet ved brug af GAS på denne processor,"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "syntax error at '%s' token"
 msgid "Syntax error in %s statement at %C"
@@ -25313,8 +25313,8 @@ msgstr "dataområdet '%s' er i modstrid med tidligere erklæring"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration `%#D' here"
 msgid "previous declaration here"
@@ -25334,7 +25334,7 @@ msgstr "egenskabsdirektivet '%s' ignoreret"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "egenskabsdirektivet '%s' ignoreret"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for `%s' attribute"
 msgid "wrong number of arguments specified for %qE attribute"
@@ -25346,7 +25346,7 @@ msgstr "forkert antal parametre angivet til egenskaben '%s'"
 msgid "expected %i or more, found %i"
 msgstr "forventede %<return%>"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expected %<,%>"
 msgid "expected %i, found %i"
@@ -25416,12 +25416,12 @@ msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -25430,7 +25430,7 @@ msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -25454,8 +25454,8 @@ msgstr "egenskaben '%s' ignoreret"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr "uforenelig egenskab '%s' ignoreret"
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "tidligere erklæring af %qD"
@@ -25570,7 +25570,7 @@ msgstr "kan ikke læse funktionsprofil fra %s."
 msgid "offset %qwi outside bounds of constant string"
 msgstr "forskydning udenfor grænserne af konstant streng"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "%qE declared here"
@@ -25692,7 +25692,7 @@ msgstr "ugyldig typeparameter"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 #| msgid "invalid arg to `__builtin_frame_address'"
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
@@ -25717,48 +25717,48 @@ msgstr "den anden paramter til '__builtin_longjmp' skal være 1"
 msgid "target format does not support infinity"
 msgstr "målprocessoren understøtter ikke uendelig"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 #| msgid "`va_start' used in function with fixed args"
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "`va_start' benyttet i en funktion med fast antal parametre"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function `va_start'"
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "for mange parametre til funktionen 'va_start'"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, fuzzy, gcc-internal-format
 #| msgid "`__builtin_next_arg' called without an argument"
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "`__builtin_next_arg' kaldt uden en parameter"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for `%s' attribute"
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "forkert antal parametre angivet til egenskaben '%s'"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, fuzzy, gcc-internal-format
 #| msgid "second parameter of `va_start' not last named argument"
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "den anden parameter til 'va_start' er ikke den sidste navngivne parameter"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr ""
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute argument not an integer constant"
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "parameteren til egenskaben '%s' er ikke en heltalskonstant"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `asm' is not a constant string"
 msgid "last argument of %qD is not integer constant between 0 and 3"
@@ -26899,12 +26899,12 @@ msgstr ""
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F brugt, men aldrig defineret"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F erklæret %<static%>, men aldrig defineret"
@@ -27500,7 +27500,7 @@ msgstr "typeomtvingelse passer ikke til funktionstype"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "typeomtvingelse passer ikke til funktionstype"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, fuzzy, gcc-internal-format
 #| msgid "options enabled: "
 msgid "%qs failed"
@@ -27532,17 +27532,17 @@ msgstr "Generér kode til en C400"
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr "funktionen '%s' omerklæret med egenskaben noinline"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "funktionen '%s' omerklæret med egenskaben noinline"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr ""
@@ -27582,7 +27582,7 @@ msgstr "stort heltal forkortes underforstået til type uden fortegn"
 msgid "comparison is always %d due to width of bit-field"
 msgstr "sammenligning er altid %d på grund af den begrænsede rækkevidde af bitfeltet"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr ""
@@ -27770,7 +27770,7 @@ msgstr ""
 msgid "%s signal terminated program %s"
 msgstr "%s:%d:   instantieret fra '%s'\n"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "ignorerer kommandolinjetilvalget '%s'"
@@ -28050,7 +28050,7 @@ msgstr "skabelonsparameter %d er ugyldig"
 msgid "multilib exclusions %qs is invalid"
 msgstr ""
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr ""
@@ -28380,23 +28380,23 @@ msgstr "højreskiftsantal er negativ"
 msgid "%qD specified bound %E equals source length"
 msgstr "højreskiftsantal er negativ"
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "fleksibelt tabelmedlem ikke i slutningen af struktur"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "-mn is not supported for linux targets"
 msgid "%s not supported for variable length aggregates"
 msgstr "-mn er ikke understøttet for Linux-målarkitekturer"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Profiling is not supported on this target."
 msgid "%s not supported on this target"
@@ -28440,16 +28440,16 @@ msgid "function returns address of local variable"
 msgstr "funktion returnerer adressen på en lokal variabel"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, fuzzy, gcc-internal-format
@@ -28462,328 +28462,328 @@ msgstr "  '%#D' erklæret her"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, fuzzy, gcc-internal-format
 #| msgid "wrong type argument to %s"
 msgid "%<%.*s%> directive argument is null"
 msgstr "forkert parametertype til %s"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "referenced argument declared here"
 msgstr "  '%#D' erklæret her"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 #| msgid "wrong type argument to %s"
 msgid "directive argument %qE"
 msgstr "forkert parametertype til %s"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, fuzzy, gcc-internal-format
 #| msgid "disable pass %s for functions in the range of [%u, %u]"
 msgid "directive argument in the range [%E, %E]"
 msgstr "deaktiver videregivelse %s for funktioner i intervallet [%u, %u]"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 #, fuzzy
 #| msgid "no arguments for spec function"
 msgid "%qE argument %Z overlaps destination object %qE"
@@ -28791,44 +28791,44 @@ msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] "ingen parametre til specifikationsfunktion"
 msgstr[1] "ingen parametre til specifikationsfunktion"
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 #| msgid "pointer"
 msgid "null destination pointer"
 msgstr "henvisning"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 #| msgid "null format string"
 msgid "null format string"
@@ -29654,12 +29654,12 @@ msgstr "ugyldig henvisningstilstand '%s'"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "%qD declared here"
@@ -30486,7 +30486,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%D'"
 msgid "invalid use of attribute %<fallthrough%>"
@@ -30859,17 +30859,17 @@ msgstr "ingen filer angivet med -fdump-translation-unit"
 msgid "mismatching definition"
 msgstr "manglende startværdi"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, fuzzy, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr "Ugyldig erklæring"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -31996,80 +31996,80 @@ msgstr "fejl ved skrivning til %s: %m"
 msgid "error closing optimization records %qs"
 msgstr "Udfør krydsspringsoptimering"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "%s understøttes ikke af denne konfiguration"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, fuzzy, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "der mangler en parameter til tilvalget '-%s'"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "parameter til '%s' skal være en 2 bit-konstant uden fortegn"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "parameter til '%s' skal være en 2 bit-konstant uden fortegn"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 #| msgid "-malign-functions=%d is not between 1 and %d"
 msgid "argument to %qs is not between %d and %d"
 msgstr "-malign-functions=%d er ikke mellem 1 og %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument"
 msgid "invalid argument in option %qs"
 msgstr "ugyldig typeparameter"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, fuzzy, gcc-internal-format
 #| msgid "-mapcs-26 and -mapcs-32 may not be used together"
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "-mapcs-26 og -mapcs-32 kan ikke bruges på samme tid"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, fuzzy, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "ignorerer kommandolinjetilvalget '%s'"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of `%s' attribute"
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "ugyldig parameter til egenskaben '%s'"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of `%s' attribute"
 msgid "valid arguments to %qs are: %s"
 msgstr "ugyldig parameter til egenskaben '%s'"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, fuzzy, gcc-internal-format
 #| msgid "switch \"%s\" is no longer supported"
 msgid "switch %qs is no longer supported"
 msgstr "tilvalget '%s' understøttes ikke længere"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qE attribute larger than %d"
 msgid "argument to %qs is bigger than %d"
 msgstr "parameter til %qE-egenskaben er større end %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr ""
@@ -32145,8 +32145,8 @@ msgstr "parameter til '%s' skal være en 2 bit-konstant uden fortegn"
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, fuzzy, gcc-internal-format
 #| msgid "%s from incompatible pointer type"
 msgid "%qs is incompatible with %qs"
@@ -32926,7 +32926,7 @@ msgstr "en global registervariabel følger en funktionsdefinition"
 msgid "register of %qD used for multiple global register variables"
 msgstr "register for %qD brugt til flere globale registervariabler"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "er i konflikt med %qD"
@@ -33398,47 +33398,47 @@ msgstr "sektion for alias %q+D skal matche sektion for dens målarkitektur"
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "__builtin_saveregs understøttes ikke af denne målarkitektur"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 #| msgid "Profiling is not supported on this target."
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "Profilering er ikke understøttet på målarkitekturen."
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "-indlejrede funktioner er ikke understøttet på denne målarkitektur"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "indlejrede funktionstrampoliner er ikke understøttet på denne målarkitektur"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "global constructors not supported on this target"
 msgstr "stakgrænser understøttes ikke på målarkitekturen"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "global destructors not supported on this target"
 msgstr "stakgrænser understøttes ikke på målarkitekturen"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "målarkitekturegenskab er ikke understøttet på denne maskine"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "målarkitekturegenskab er ikke understøttet på denne maskine"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC target is not supported for this machine"
 msgid "%<#pragma GCC target%> is not supported for this machine"
@@ -34681,84 +34681,84 @@ msgstr ""
 msgid "BB %i has incorrect fallthru edge"
 msgstr "forkert instruktion i fald-gennem-kant"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr ""
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr ""
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr ""
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr ""
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr ""
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr ""
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr ""
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr ""
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr ""
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr ""
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr ""
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr ""
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 #| msgid "%Jinlining failed in call to '%F': %s"
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "%Jindlejring mislykkedes i kald til '%F': %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "kaldt herfra"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function `%D'"
 msgid "called from this function"
 msgstr "kald af ikke-funktion '%D'"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, fuzzy, gcc-internal-format
 #| msgid "%Jinlining failed in call to '%F': %s"
 msgid "inlining failed in call to %q+F: %s"
@@ -34817,28 +34817,28 @@ msgstr "ugyldig vektortype for egenskaben '%s'"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "ugyldig brug af '%D"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr "ugyldig brug af ikke-statisk felt '%D'"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function `%s'"
 msgid "in a call to built-in function %qD"
 msgstr "for mange parametre til funktionen '%s'"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "Ugyldig erklæring"
@@ -35055,7 +35055,7 @@ msgstr "manglende startværdi"
 msgid "%qs may be used uninitialized"
 msgstr "'%s' bliver måske brugt uden at have en startværdi i denne funktion"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "%qD was declared here"
@@ -35297,7 +35297,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -35312,131 +35312,131 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "en tabel af funktioner giver ikke mening"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "en funktions returtype kan ikke være en funktion"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "træ-kontrol: %s, har %s i %s, ved %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "træ-kontrol: forventede ingen af %s, har %s i %s, ved %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "træ-kontrol: forventede klasse %qs, har %qs (%s) i %s, ved %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "træ-kontrol: forventede ikke klasse %qs, har %qs (%s) i %s, ved %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "træ-kontrol: forventede omp_clause %s, har %s i %s, ved %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "træ-kontrol: forventede træ som indeholder %qs-struktur, har %qs i %s, ved %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_int_cst with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "trækontrol: tilgik udtrykstræ %d af tree_int_cst med %d udtrykstræer i %s, ved %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "trækontrol: tilgik udtrykstræ %d af tree_vec med %d udtrykstræer i %s, ved %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "trækontrol: tilgik operand %d af %s med %d operander i %s, ved %s:%d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at %s:%d"
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "trækontrol: tilgik operand %d af omp_clause %s med %d operander i %s, ved %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qD er forældet: %s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qD  er forældet"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE er forældet: %s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%qE er forældet"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "type er forældet: %s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "type er forældet"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a namespace"
 msgid "%qD is unavailable: %s"
 msgstr "'%D' er ikke et navnerum"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a namespace"
 msgid "%qD is unavailable"
 msgstr "'%D' er ikke et navnerum"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a namespace"
 msgid "%qE is unavailable: %s"
 msgstr "'%D' er ikke et navnerum"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a namespace"
 msgid "%qE is unavailable"
 msgstr "'%D' er ikke et navnerum"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "options enabled: "
 msgid "type is unavailable: %s"
 msgstr "tilvalg slået til: "
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a namespace"
 msgid "type is unavailable"
@@ -35462,283 +35462,283 @@ msgstr "'%D' er ikke et navnerum"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, fuzzy, gcc-internal-format
 #| msgid "type variant's TREE_TYPE"
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr "typevariants TREE_TYPE"
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, fuzzy, gcc-internal-format
 #| msgid "type variant's TREE_TYPE"
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr "typevariants TREE_TYPE"
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr ""
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr "og felt"
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, fuzzy, gcc-internal-format
 #| msgid "type variant's TREE_TYPE"
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr "typevariants TREE_TYPE"
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, fuzzy, gcc-internal-format
 #| msgid "type variant's TREE_TYPE"
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr "typevariants TREE_TYPE"
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, fuzzy, gcc-internal-format
 #| msgid "type's TREE_TYPE"
 msgid "type%'s %<TREE_TYPE%>"
 msgstr "types TREE_TYPE"
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "type er ikke forenelig med dens variant"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "`%T' is not a template type"
 msgid "type %s is not an opaque type"
 msgstr "'%T' er ikke en skabelonstype"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type `%D' is not a direct base of `%T'"
 msgid "type %s is not with opaque mode"
 msgstr "typen '%D' er ikke en direkte stamklasse til '%T'"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 #| msgid "Main variant is not defined"
 msgid "main variant is not defined"
 msgstr "Hovedvariant er ikke defineret"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_BINFO type is not TYPE_MAIN_VARIANT"
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr "TYPE_BINFO type er ikke TYPE_MAIN_VARIANT"
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CANONICAL is not compatible"
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr "TYPE_CANONICAL er ikke kompatibel"
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CANONICAL is not compatible"
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr "TYPE_CANONICAL er ikke kompatibel"
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_VFIELD is not FIELD_DECL nor TREE_LIST"
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr "TYPE_VFIELD er ikke FIELD_DECL eller TREE_LIST"
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_NEXT_PTR_TO is not POINTER_TYPE"
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr "TYPE_NEXT_PTR_TO er ikke POINTER_TYPE"
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_NEXT_REF_TO is not REFERENCE_TYPE"
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr "TYPE_NEXT_REF_TO er ikke REFERENCE_TYPE"
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_BINFO is not TREE_BINFO"
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr "TYPE_BINFO er ikke TREE_BINFO"
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_BINFO type is not TYPE_MAIN_VARIANT"
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr "TYPE_BINFO type er ikke TYPE_MAIN_VARIANT"
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 #| msgid "Array TYPE_DOMAIN is not integer type"
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "Tabellen TYPE_DOMAIN er ikke af en heltalstype"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_FIELDS defined in incomplete type"
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "TYPE_FIELDS er defineret i en ufuldstændig type"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, fuzzy, gcc-internal-format
 #| msgid "Wrong tree in TYPE_FIELDS list"
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr "Forkert træ i TYPE_FIELDS-liste"
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, fuzzy, gcc-internal-format
 #| msgid "wrong TYPE_CACHED_VALUES entry"
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr "forkert TYPE_CACHED_VALUES-element"
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, fuzzy, gcc-internal-format
 #| msgid "Wrong tree in TYPE_FIELDS list"
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr "Forkert træ i TYPE_FIELDS-liste"
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -35970,7 +35970,7 @@ msgstr "aliasdefinitioner er ikke understøttet i denne konfiguration; ignoreret
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "synlighedsegenskab er ikke understøttet i denne konfiguration; ignoreret"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -36197,7 +36197,7 @@ msgstr "'%s' brugt, men aldrig defineret"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "'%s' brugt, men aldrig defineret"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "'%s'-egenskaben kan kun anvendes sammen med funktioner"
@@ -36399,7 +36399,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "'%s'-egenskaben kan kun anvendes sammen med funktioner"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "%qE-attribut kan ikke angives for lokale variabler"
@@ -36754,7 +36754,7 @@ msgstr "-march=%s er ikke forenelig med den valgte ABI"
 msgid "%qE argument is not a function"
 msgstr "ingen parametre til specifikationsfunktion"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, fuzzy, gcc-internal-format
 #| msgid "second token after #line is not a string"
 msgid "deprecated message is not a string"
@@ -37319,7 +37319,7 @@ msgstr "new kan ikke bruges på en funktionstype"
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "new kan ikke bruges på en funktionstype"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, fuzzy, gcc-internal-format
 #| msgid "invalid application of `%s' to a void type"
 msgid "invalid application of %qs to a void type"
@@ -37468,9 +37468,9 @@ msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "standardparameter givet til %d. parameter for '%#D'"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, fuzzy, gcc-internal-format
@@ -37478,8 +37478,8 @@ msgstr "standardparameter givet til %d. parameter for '%#D'"
 msgid "too few arguments to function %qE"
 msgstr "for få parametre til funktionen"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, fuzzy, gcc-internal-format
@@ -37621,193 +37621,193 @@ msgstr "forsøg på at finde adressen af bitfeltstrukturmedlemmet '%D'"
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%s' is too large"
 msgid "size of array is too large"
 msgstr "størrelsen af tabellen '%s' er for stor"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible type for argument %d of `%s'"
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "typen af den %d. parameter i '%s' passer ikke"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 #| msgid "%s makes pointer from integer without a cast"
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "%s opretter en henvisningsvariabel ud fra et heltal uden en typeomtvingning"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 #| msgid "left argument must be a slice"
 msgid "both arguments must be compatible"
 msgstr "venstre parameter skal være en skive"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function `%s'"
 msgid "incorrect number of arguments to function %qE"
 msgstr "for få parametre til funktionen '%s'"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, fuzzy, gcc-internal-format
 #| msgid "argument 3 of `%s' must be a 2-bit literal"
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "parameter til '%s' skal være en 2 bit-konstant"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `asm' is not a constant string"
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "parameteren til 'asm' er ikke en konstant streng"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `asm' is not a constant string"
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "parameteren til 'asm' er ikke en konstant streng"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 #| msgid "argument 3 of `%s' must be a 2-bit literal"
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "parameter til '%s' skal være en 2 bit-konstant"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, fuzzy, gcc-internal-format
 #| msgid "argument 3 of `%s' must be a 2-bit literal"
 msgid "argument %d of %qE must be a pointer type"
 msgstr "parameter til '%s' skal være en 2 bit-konstant"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `asm' is not a constant string"
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "parameteren til 'asm' er ikke en konstant streng"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 #| msgid "argument 3 of `%s' must be a 2-bit literal"
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "parameter til '%s' skal være en 2 bit-konstant"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, fuzzy, gcc-internal-format
 #| msgid "in passing argument %P of `%+D'"
 msgid "size mismatch in argument %d of %qE"
 msgstr "i overbringelse af parameter %P af '%+D'"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `asm' is not a constant string"
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "parameteren til 'asm' er ikke en konstant streng"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 #| msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "typeomtvingning fra '%T' til '%T' kasserer modifikationer på henvisningsmålets type"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `asm' is not a constant string"
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "parameteren til 'asm' er ikke en konstant streng"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 #| msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "typeomtvingning fra '%T' til '%T' kasserer modifikationer på henvisningsmålets type"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument of `%s'"
 msgid "invalid memory model argument %d of %qE"
 msgstr "ugyldig typeparameter '%s'"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, fuzzy, gcc-internal-format
 #| msgid "accumulator number is out of bounds"
 msgid "index value is out of bound"
 msgstr "akkumulatortal er uden for det gyldig interval"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr ""
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "den indbyggede funktion '%s' er erklæret som noget der ikke er en funktion"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%D' is not an integral constant-expression"
 msgid "size of array %qE is not a constant expression"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "size of array is not a constant expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array %qE is negative"
 msgstr "størrelsen af tabel er negativ"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array is negative"
 msgstr "størrelsen af tabel er negativ"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, fuzzy, gcc-internal-format
 #| msgid "right shift count is negative"
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr "højreskiftsantal er negativ"
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, fuzzy, gcc-internal-format
 #| msgid "right shift count is negative"
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr "højreskiftsantal er negativ"
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 #| msgid "right shift count is negative"
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "højreskiftsantal er negativ"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, fuzzy, gcc-internal-format
 #| msgid "right shift count is negative"
 msgid "size of array exceeds maximum object size %qE"
 msgstr "højreskiftsantal er negativ"
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -38498,7 +38498,7 @@ msgstr "heltalskonstanten er for stor til typen '%s'"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "heltalskonstanten er for stor til typen '%s'"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 #| msgid "Profiling is not supported on this target."
 msgid "%<_BitInt(%d)%> is not supported on this target"
@@ -38590,7 +38590,7 @@ msgstr "muligvis begyndelsen af uafsluttet strengkonstant"
 msgid "traditional C rejects string constant concatenation"
 msgstr "traditionel C tillader ikke strengsammensætning"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -38647,7 +38647,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr "typedef-navn kan ikke klassemodificeres"
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute `%s'"
 msgid "invalid type for iteration variable %qE"
@@ -38665,19 +38665,19 @@ msgstr "ugyldig vektortype for egenskaben '%s'"
 msgid "%qE is not initialized"
 msgstr "manglende startværdi"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, fuzzy, gcc-internal-format
 #| msgid "missing '(' after predicate"
 msgid "missing controlling predicate"
 msgstr "manglende '(' efter udsagn"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, fuzzy, gcc-internal-format
 #| msgid "Invalid control expression"
 msgid "invalid controlling predicate"
 msgstr "Ugyldigt kontroludtryk"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, fuzzy, gcc-internal-format
 #| msgid "missing ')' in expression"
 msgid "missing increment expression"
@@ -38688,7 +38688,7 @@ msgstr "manglende ')' i udtryk"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, fuzzy, gcc-internal-format
 #| msgid "Invalid control expression"
 msgid "invalid increment expression"
@@ -38780,7 +38780,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -38791,7 +38791,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "'%D' er ikke en funktionsskabelon"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field `%s' has invalid type"
 msgid "bit-field %qE in %qs clause"
@@ -39453,7 +39453,7 @@ msgid "wrong type argument to %s"
 msgstr "forkert parametertype til %s"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -40491,35 +40491,35 @@ msgstr "sammenligning mellem '%#T' og '%#T'"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -40750,121 +40750,121 @@ msgstr "-mregparm=%d er ikke mellem 0 og %d"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "-mcpu=%s er i konflikt med tilvalget -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "-mcpu=%s er i konflikt med tilvalget -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, fuzzy, gcc-internal-format
 #| msgid "type of `%E' is unknown"
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "typen af '%E' er ukendt"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -41309,13 +41309,13 @@ msgstr "uventede bivirkninger i adresse"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "uventede bivirkninger i adresse"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires a string constant argument"
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%qE-egenskaben kræver et strengkonstant som parameter"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 #| msgid "junk at end of #pragma GCC java_exceptions"
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
@@ -41952,7 +41952,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -42036,12 +42036,12 @@ msgid "unknown tuning option (%s)"
 msgstr "ukendt specifikationsfunktion '%s'"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -42053,7 +42053,7 @@ msgid "specify a system register with a small string length"
 msgstr "Angiv registerallokeringsordnen"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "%s understøtter ikke %s"
@@ -42259,9 +42259,9 @@ msgstr "målarkitektursystem understøtter ikke %qs-fejlsøgningsformatet"
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "\"%s\" er ikke defineret"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute argument not a string constant"
 msgid "attribute %<target%> argument not a string"
@@ -42322,19 +42322,19 @@ msgid "virtual function multiversioning not supported"
 msgstr "stakgrænseudtryk understøttes ikke"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 #| msgid "Profiling is not supported on this target."
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "Profilering er ikke understøttet på målarkitekturen."
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -42348,8 +42348,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr "linjenummer er uden for det gyldige interval"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported version"
 msgid "unsupported simdlen %wd"
@@ -42361,7 +42361,7 @@ msgstr "versionen er ikke understøttet"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "ubenyttede parametre i formatering med $"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, fuzzy, gcc-internal-format
 #| msgid "unused arguments in $-style format"
 msgid "unsupported return type %qT for simd"
@@ -42373,7 +42373,7 @@ msgstr "ubenyttede parametre i formatering med $"
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "ubenyttede parametre i formatering med $"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 #| msgid "unused arguments in $-style format"
 msgid "unsupported argument type %qT for simd"
@@ -42475,8 +42475,8 @@ msgstr "L%d-mellemlagersventetid ukendt for %s"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "ugyldig værdi '%s' for -mmemory-latency"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "ugyldig indbygget fcode"
@@ -42606,18 +42606,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "parameteren til egenskaben '%s er ikke \"ilink1\" eller \"ilink2\""
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -42750,7 +42750,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "parameteren til egenskaben '%s er ikke \"ilink1\" eller \"ilink2\""
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute requires an integer constant argument"
 msgid "%qE attribute allows only an integer constant argument"
@@ -42774,26 +42774,26 @@ msgstr "egenskaben '%s' kan kun anvendes sammen med funktionstyper"
 msgid "argument of %qE attribute ignored"
 msgstr "parameteren til egenskaben '%s er ikke \"ilink1\" eller \"ilink2\""
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute only applies to variables"
 msgid "%qE attribute only applies to variables"
 msgstr "egenskaben '%s' kan kun anvendes på variabler"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, fuzzy, gcc-internal-format
 #| msgid "Statement at %0 invalid in this context"
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr "Sætning ved %0 er ugyldig i denne kontekst"
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown %<asm%> flag output %qs"
 msgstr "ukendt registernavn: %s"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for make function"
 msgid "invalid type for %<asm%> flag output"
@@ -43055,7 +43055,7 @@ msgstr "målprocessoren understøtter ikke THUMB-instruktioner"
 msgid "target CPU does not support unaligned accesses"
 msgstr "målprocessoren understøtter ikke interarbejde"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "This architecture does not support branch protection instructions"
@@ -43111,7 +43111,7 @@ msgstr "strukturstørrelsesgrænse kan kun sættes til 8 eller 32"
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "-mapcs-stack-check og -mno-apcs-frame er indbyrdes uforenelige"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in x32 mode"
 msgid "FDPIC mode is not supported in Thumb-1 mode"
@@ -43225,7 +43225,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -43270,44 +43270,44 @@ msgstr "'%s'-egenskaben kan kun anvendes sammen med funktioner"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "egenskaben '%s' kan kun anvendes sammen med funktionstyper"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, fuzzy, gcc-internal-format
 #| msgid "line number out of range"
 msgid "%s %wd out of range %wd - %wd"
 msgstr "linjenummer er uden for det gyldige interval"
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "kan ikke beregne virkelig placering af stakkede parametre"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr ""
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "ingen lave registre er tilgængelige til at modtage værdier fra høje registre"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "afbrydelsesservicerutiner kan ikke kodes i Thumb-tilstand"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute `%s'"
 msgid "invalid fpu for target attribute or pragma %qs"
@@ -43316,24 +43316,24 @@ msgstr "ugyldig vektortype for egenskaben '%s'"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute `%s'"
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "ugyldig vektortype for egenskaben '%s'"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown target attribute or pragma %qs"
 msgstr "ukendt registernavn: %s"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 #| msgid "address mode %qs not supported in the %s bit mode"
 msgid "%<asm%> flags not supported in thumb1 mode"
@@ -43395,174 +43395,174 @@ msgstr "Kendte MCU-arkitekturer:"
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "Finjustér justering til en given chip- eller processorversion"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe is not supported"
 msgid "%<-fpic%> is not supported"
 msgstr "-pipe understøttes ikke"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe is not supported"
 msgid "%<-fPIC%> is not supported"
 msgstr "-pipe understøttes ikke"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe is not supported"
 msgid "%<-fpie%> is not supported"
 msgstr "-pipe understøttes ikke"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe is not supported"
 msgid "%<-fPIE%> is not supported"
 msgstr "-pipe understøttes ikke"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 #| msgid "-traditional and -ansi are mutually exclusive"
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "-traditional og -ansi er indbyrdes uforenelige"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 #| msgid "`-%c' option must have argument"
 msgid "%qs function cannot have arguments"
 msgstr "tilvalget '-%c' skal have en parameter"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, fuzzy, gcc-internal-format
 #| msgid "function cannot be inline"
 msgid "%qs function cannot return a value"
 msgstr "funktion kan ikke indbygges"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr ""
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Number of registers used to pass integer arguments"
 msgid "fixed register %s used to pass parameter to function"
 msgstr "Antallet af registre der skal bruges til at overbringe heltalsparametre"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr ""
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute only applies to variables"
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "egenskaben '%s' kan kun anvendes på variabler"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "sektionsegenskaber understøttes ikke på denne målarkitektur"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute does not apply to types"
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "egenskaben '%s' kan ikke anvendes på typer"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute only applies to variables"
 msgid "%qE attribute on non-volatile variable"
 msgstr "egenskaben '%s' kan kun anvendes på variabler"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, fuzzy, gcc-internal-format
 #| msgid "inline functions not supported for this return value type"
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "integrerede funktioner understøttes ikke for denne returværditype"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, fuzzy, gcc-internal-format
 #| msgid "code model `%s' not supported in the %s bit mode"
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "kodemodellen %s er ikke understøttet i %s bit-tilstand"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr ""
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr ""
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute only applies to variables"
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "egenskaben '%s' kan kun anvendes på variabler"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr ""
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 #| msgid "only uninitialized variables can be placed in the .noinit section"
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "kun variabler uden startværdi kan placeres i .noinit-sektionen"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, fuzzy, gcc-internal-format
 #| msgid "only initialized variables can be placed into program memory area"
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "kun variabler med startværdi kan placeres i programhukommelsesområdet"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, fuzzy, gcc-internal-format
 #| msgid "only initialized variables can be placed into program memory area"
 msgid "uninitialized variable %q+D put into program memory area"
@@ -43572,46 +43572,46 @@ msgstr "kun variabler med startværdi kan placeres i programhukommelsesområdet"
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "slutfeltet '%s' bliver måske ikke klargjort"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' incompatible attribute ignored"
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "uforenelig egenskab '%s' ignoreret"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, fuzzy, gcc-internal-format
 #| msgid "MCU `%s' supported for assembler only"
 msgid "architecture %qs supported for assembler only"
 msgstr "MCU '%s' understøttes kun for maskinkode"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr ""
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "case label does not reduce to an integer constant"
 msgid "%s expects a compile time integer constant"
 msgstr "case-etiketten kan ikke reduceres til en heltalskonstant"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "`%s' attribute requires an integer constant argument"
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "egenskaben '%s' kræver en heltalskonstant som parameter"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -43766,7 +43766,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "Profilering er ikke understøttet på målarkitekturen."
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, fuzzy, gcc-internal-format
@@ -44471,8 +44471,8 @@ msgstr "1. parameter skal være en 5 bit-konstant med fortegn"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "kodemodellen %s understøtter ikke PIC-tilstand"
@@ -44540,282 +44540,282 @@ msgstr "intet klassenavn angivet med '-%s'"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr "Ukendt processor: -mcpu=%s"
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, fuzzy, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "kodemodellen %s er ikke understøttet i PIC-tilstand"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, fuzzy, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "Angiv klassesti (forældet: benyt --classpath i stedet)"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "Angiv klassesti (forældet: benyt --classpath i stedet)"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, fuzzy, gcc-internal-format
 #| msgid "strategy name %qs specified for option %qs not supported for 32-bit code"
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "strateginavnet %qs angivet for tilvalget %qs er ikke understøttet for 32-bit kode"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 #| msgid "-mips%d not supported"
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-mips%d er ikke understøttet"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 #| msgid "strategy name %qs specified for option %qs not supported for 32-bit code"
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "strateginavnet %qs angivet for tilvalget %qs er ikke understøttet for 32-bit kode"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "-mcmodel= understøttes ikke på 32 bit-systemer"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, fuzzy, gcc-internal-format
 #| msgid "strategy name %qs specified for option %qs not supported for 32-bit code"
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "strateginavnet %qs angivet for tilvalget %qs er ikke understøttet for 32-bit kode"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "adressetilstanden %qs er ikke understøttet i %s bit-tilstand"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 #| msgid "-traditional is not supported in C++"
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "-traditional understøttes ikke i C++"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, fuzzy, gcc-internal-format
 #| msgid "-traditional is not supported in C++"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "-traditional understøttes ikke i C++"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, fuzzy, gcc-internal-format
 #| msgid "-traditional is not supported in C++"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "-traditional understøttes ikke i C++"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, fuzzy, gcc-internal-format
 #| msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "-mapcs-stack-check og -mno-apcs-frame er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "kodemodellen %qs er ikke understøttet i %s bit-tilstand"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "kodemodellen %qs er ikke understøttet i x32-tilstand"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 #| msgid "-masm=intel not supported in this configuration"
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "-masm=intel understøttes ikke af denne konfiguration"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "%i bit-tilstand er ikke oversat med ind"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "den valgte processor understøtter ikke x86-64-instruktionssættet"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "ugyldig værdi (%s) til tilvalget -march="
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "ugyldig værdi (%s) til tilvalget -march="
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of `%s' attribute"
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "ugyldig parameter til egenskaben '%s'"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of `%s' attribute"
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr "ugyldig parameter til egenskaben '%s'"
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of `%s' attribute"
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "ugyldig parameter til egenskaben '%s'"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of `%s' attribute"
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "ugyldig parameter til egenskaben '%s'"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -mtune= switch"
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "ugyldig værdi (%s) til tilvalget -mcpu="
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -mtune= switch"
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "ugyldig værdi (%s) til tilvalget -mcpu="
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of `%s' attribute"
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "ugyldig parameter til egenskaben '%s'"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of `%s' attribute"
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr "ugyldig parameter til egenskaben '%s'"
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of `%s' attribute"
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "ugyldig parameter til egenskaben '%s'"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of `%s' attribute"
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "ugyldig parameter til egenskaben '%s'"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 #| msgid "type defaults to `int' in declaration of `%s'"
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "typen antages at være 'int' i erklæringen af '%s'"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm=%d is not between 0 and %d"
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "-mregparm=%d er ikke mellem 0 og %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "-march=%s er ikke forenelig med den valgte ABI"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, fuzzy, gcc-internal-format
 #| msgid "type defaults to `int' in declaration of `%s'"
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "typen antages at være 'int' i erklæringen af '%s'"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, fuzzy, gcc-internal-format
 #| msgid "type defaults to `int' in declaration of `%s'"
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "typen antages at være 'int' i erklæringen af '%s'"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -44823,315 +44823,315 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 #| msgid "-fprefetch-loop-arrays not supported for this target"
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "-fprefetch-loop-arrays understøttes ikke på målarkitekturen"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d er ikke mellem %d og 12"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mpreferred-stack-boundary=%d er ikke mellem %d og 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "-march=%s er ikke forenelig med den valgte ABI"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "profilering understøttes ikke endnu"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "SSE-instruktionssæt deaktiveret, bruger 387-beregninger"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "387-instruktionssæt deaktiveret, bruger SSE-beregninger"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "-march=%s er ikke forenelig med den valgte ABI"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr "-march=%s er ikke forenelig med den valgte ABI"
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 #| msgid "Unknown cpu: -mcpu=%s"
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "Ukendt processor: -mcpu=%s"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid option to the preprocessor"
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs er ikke et gyldigt tilvalg til præprocessoren"
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid option to the preprocessor"
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs er ikke et gyldigt tilvalg til præprocessoren"
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid option to the preprocessor"
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr "%qs er ikke et gyldigt tilvalg til præprocessoren"
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "-march=%s er ikke forenelig med den valgte ABI"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and cdecl attributes are not compatible"
 msgid "interrupt and naked attributes are not compatible"
 msgstr "stdcall og cdecl er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 #| msgid "fastcall and stdcall attributes are not compatible"
 msgid "%qs and %qs attributes are not compatible"
 msgstr "fastcall og stdcall er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s og -mcall-%s er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr "-msdata=%s og -mcall-%s er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s og -mcall-%s er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr "-msdata=%s og -mcall-%s er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, fuzzy, gcc-internal-format
 #| msgid "%s instructions aren't allowed in %s service routine"
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr "%s-instruktioner er ikke tilladt i %s-tjenesterutinen"
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, fuzzy, gcc-internal-format
 #| msgid "%s instructions aren't allowed in %s service routine"
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "%s-instruktioner er ikke tilladt i %s-tjenesterutinen"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, fuzzy, gcc-internal-format
 #| msgid "%s instructions aren't allowed in %s service routine"
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "%s-instruktioner er ikke tilladt i %s-tjenesterutinen"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "fastcall og regparm er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "regparam og thiscall er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "%qE-egenskaben kræver en heltalskonstant som parameter"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "parameter til %qE-egenskaben er større end %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "fastcall og cdecl er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "fastcall og stdcall er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "fastcall og thiscall er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "stdcall og cdecl er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "stdcall og fastcall er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "stdcall og thiscall er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "cdecl og thiscall er indbyrdes uforenelige"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "%qE-egenskaben bruges til ikke-klasse metode"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' incompatible attribute ignored"
 msgid "%qE incompatible attribute ignored"
 msgstr "uforenelig egenskab '%s' ignoreret"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute only applies to variables"
 msgid "%qE attribute only available for 32-bit"
 msgstr "egenskaben '%s' kan kun anvendes på variabler"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `%s' attribute is not a string constant"
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "parameteren til egenskaben '%s er ikke en strengkonstant"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "%qE-egenskaben kræver et strengkonstant som parameter"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "parameteren til egenskaben '%s er ikke \"ilink1\" eller \"ilink2\""
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "afbrydelsesservicerutiner kan ikke kodes i Thumb-tilstand"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "interrupt service routine must return %<void%>"
@@ -45335,49 +45335,49 @@ msgstr "ikke-understøttet operandstørrelse for udvidede registre"
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "ugyldig operandtype brugt med operandkoden »Z«"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr "tildeling (ikke klargøring) i erklæring"
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, fuzzy, gcc-internal-format
 #| msgid "no low registers available for popping high registers"
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "ingen lave registre er tilgængelige til at modtage værdier fra høje registre"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr ""
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, fuzzy, gcc-internal-format
 #| msgid "Tune alignment for the specified chip or CPU version"
 msgid "unknown architecture specific memory model"
 msgstr "Finjustér justering til en given chip- eller processorversion"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, fuzzy, gcc-internal-format
 #| msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
@@ -45399,8 +45399,8 @@ msgstr ""
 msgid "malformed %<#pragma builtin%>"
 msgstr "forkert udformet '#pragma builtin'"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "ugyldig parameter for egenskaben %qE"
@@ -45460,12 +45460,12 @@ msgstr "PRINT_OPERAND: Ukendt tegnsætning »%c«"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "PRINT_OPERAND nul-henvisning"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "parameteren til 'asm' er ikke en konstant streng"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "field `%s' declared as a function"
 msgid "failed to expand built-in function"
@@ -45597,19 +45597,19 @@ msgstr "-march=%s er ikke forenelig med den valgte ABI"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%s kan ikke bruges i asm her"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "%qE-attribut kan ikke angives for lokale variabler"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "%qE-attribut kan ikke angives for lokale variabler"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate ConstantValue attribute for field '%s'"
 msgid "multiple %qE attribute"
@@ -45724,12 +45724,12 @@ msgstr "sektionsegenskaben er ikke tilladt for '%s'"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "interrupt_thread er kun tilgængelig på fido"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "stakgrænseudtryk understøttes ikke"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 #| msgid "-fcheck-pointer-bounds is not supported for this target"
 msgid "%<-fexcess-precision=16%> is not supported on this target"
@@ -45774,7 +45774,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr ""
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires a string constant argument"
 msgid "%qE attribute requires a string argument"
@@ -45819,138 +45819,138 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "parameteren til egenskaben '%s er ikke en strengkonstant"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, fuzzy, gcc-internal-format
 #| msgid "can not handle inconsistent calls to `%s'"
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "kan ikke håndtere inkonsistente kald af '%s'"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr ""
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr ""
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function `%s' not currently supported"
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "den indbyggede funktion '%s' understøttes i øjeblikket ikke"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "%qs does not support MIPS16 code"
 msgstr "%s understøtter ikke %s"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr ""
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, fuzzy, gcc-internal-format
 #| msgid "Generate MC code"
 msgid "MSA MIPS16 code"
 msgstr "Generér MC-kode"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "ikke-understøttet kombination: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, fuzzy, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "-mips%d er i konflikt med de andre arkitekturtilvalg som angiver en MIPS%d-processor"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "-march=%s er ikke forenelig med den valgte ABI"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "%<-mgp64%> brugt med en 32-bit processor"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "%<-mgp32%> brugt med et 64-bit ABI"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, fuzzy, gcc-internal-format
 #| msgid "-mgp64 used with a 32-bit ABI"
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "-mgp64 benyttet med et 32 bit-ABI"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "fældetilstand understøttes ikke på Unicos/Mk"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr ""
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr ""
@@ -45960,129 +45960,129 @@ msgstr ""
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "målprocessoren understøtter ikke THUMB-instruktioner"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "målprocessoren understøtter ikke THUMB-instruktioner"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "arkitekturen %qs understøtter ikke ulige enkelpræcision registre"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs%s %s"
 msgstr "ikke-understøttet kombination: %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs %s"
 msgstr "ikke-understøttet kombination: %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "kan ikke oprette placeringsuafhængig kode for %qs"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, fuzzy, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "Generér placeringsuafhængig kode, om muligt"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "%s understøtter ikke %s"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "fældetilstand understøttes ikke på Unicos/Mk"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr ""
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, fuzzy, gcc-internal-format
 #| msgid "-frepo must be used with -c"
 msgid "%qs must be used with %qs"
 msgstr "-frepo skal bruges med -c"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, fuzzy, gcc-internal-format
 #| msgid "may not use both -mfp64 and -msingle-float"
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr "-mfp64 og -msingle-float er indbyrdes uforenelige"
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "målprocessoren understøtter ikke THUMB-instruktioner"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr ""
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "målprocessoren understøtter ikke THUMB-instruktioner"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, fuzzy, gcc-internal-format
 #| msgid "may not use both -mfp64 and -msingle-float"
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr "-mfp64 og -msingle-float er indbyrdes uforenelige"
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, fuzzy, gcc-internal-format
 #| msgid "may not use both -mfp64 and -msingle-float"
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr "-mfp64 og -msingle-float er indbyrdes uforenelige"
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, fuzzy, gcc-internal-format
 #| msgid "Use bit-field instructions"
 msgid "%qs requires branch-likely instructions"
 msgstr "Benyt bitfeltinstruktioner"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, fuzzy, gcc-internal-format
 #| msgid "this target does not support the -mabi switch"
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "denne målarkitektur understøtter ikke tilvalget -mabi"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "MIPS16-funktionsprofilering"
@@ -47031,61 +47031,61 @@ msgstr "%qE-egenskaben kræver et strengkonstant som parameter"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "ragelse i slutningen af '#pragma options'"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "målarkitekturegenskab er ikke understøttet på denne maskine"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 #| msgid "malformed spec function name"
 msgid "malformed %<target()%> attribute"
 msgstr "forkert udformet specifikationsfunktionsnavn"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 #| msgid "%s only accepts 1 argument"
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "%s accepterer kun 1 parameter"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_trap not supported by this target"
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "__builtin_trap understøttes ikke på denne målarkitektur"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "malformed %<target(\"%s\")%> attribute"
@@ -47155,187 +47155,211 @@ msgstr "kan ikke allokere et objekt af typen '%T'"
 msgid "capture by copy of RVV type %qT"
 msgstr "kan ikke %s en henvisning til en ufuldstændig type '%T'"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+#| msgid "a -ifile option requires a -map option"
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "et '-ifile'-tilvalg kræver et '-map'-tilvalg"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+#| msgid "a -ifile option requires a -map option"
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "et '-ifile'-tilvalg kræver et '-map'-tilvalg"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+#| msgid "a -ifile option requires a -map option"
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "et '-ifile'-tilvalg kræver et '-map'-tilvalg"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+#| msgid "a -ifile option requires a -map option"
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "et '-ifile'-tilvalg kræver et '-map'-tilvalg"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 #| msgid "a -ifile option requires a -map option"
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "et '-ifile'-tilvalg kræver et '-map'-tilvalg"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to `%D(%A)'"
 msgid "no matching function call to %qE with empty arguments"
 msgstr "ingen passende funktion for kald til '%D(%A)'"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 #| msgid "unknown value %qs for -mtune"
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "ukendt værdi %qs for -mtune"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr ""
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "AltiVec-parameter sendt til funktion uden prototype"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 #| msgid "Do not use the Xtensa NSA option"
 msgid "%s %qT requires the V ISA extension"
 msgstr "Benyt ikke Xtensa-NSA-indstillingen"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, fuzzy, gcc-internal-format
 #| msgid "a -ifile option requires a -map option"
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "et '-ifile'-tilvalg kræver et '-map'-tilvalg"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `%s' attribute is not a string constant"
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "parameteren til egenskaben '%s er ikke en strengkonstant"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 #| msgid "`sizeof' applied to incomplete type `%T'"
 msgid "%qs applied to non-RVV type %qT"
 msgstr "'sizeof' benyttet på en ufuldstændig type '%T'"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires an integer constant argument"
 msgid "%qs requires an integer constant"
 msgstr "%qE-egenskaben kræver en heltalskonstant som parameter"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support APCS-32"
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "målprocessoren understøtter ikke APCS-32"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "code model %qs with %qs"
 msgstr "kodemodellen %qs er ikke understøttet i %s bit-tilstand"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, fuzzy, gcc-internal-format
 #| msgid "--resource requires -o"
 msgid "ABI requires %<-march=rv%d%>"
 msgstr "--resource påkræver -o"
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d er ikke mellem %d og 12"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qs is not a valid base register in %qs"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "%s understøtter ikke %s"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 #| msgid "`-%c' option must have argument"
 msgid "%qs function cannot have different interrupt type"
 msgstr "tilvalget '-%c' skal have en parameter"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -47617,37 +47641,37 @@ msgstr "%s accepterer kun 1 parameter"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "%s accepterer kun 1 parameter"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, fuzzy, gcc-internal-format
 #| msgid "vec_lvsl is deprecated for little endian; use assignment for unaligned loads and stores"
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "vec_lvsl er forældet for lilleendet; brug opgave for ikke justerede indlæsninger og lagre"
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, fuzzy, gcc-internal-format
 #| msgid "vec_lvsr is deprecated for little endian; use assignment for unaligned loads and stores"
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "vec_lvsr er forældet for lilleendet; brug opgave for ikke justerede indlæsninger og lagre"
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 #| msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "typeomtvingning fra '%T' til '%T' kasserer modifikationer på henvisningsmålets type"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, fuzzy, gcc-internal-format
 #| msgid "invalid register in the instruction"
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "ugyldigt register i instruktionen"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, fuzzy, gcc-internal-format
 #| msgid "a -ifile option requires a -map option"
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr "et '-ifile'-tilvalg kræver et '-map'-tilvalg"
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "%qs is not supported in this compiler configuration"
@@ -47690,33 +47714,25 @@ msgstr "'%D' er ikke en funktionsskabelon"
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr ""
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, fuzzy, gcc-internal-format
-#| msgid "Use EABI"
-msgid "%qs requires the ELFv2 ABI"
-msgstr "Benyt EABI"
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, fuzzy, gcc-internal-format
 #| msgid "stack frame too big"
 msgid "stack frame too large"
 msgstr "stakramme for stor"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "too few arguments to function `%s'"
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "for få parametre til funktionen '%s'"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 #| msgid "-mips%d does not support 64 bit fp registers"
 msgid "%qs uses register r29"
 msgstr "-mips%d understøtter ikke 64-bit kommatalsregistre"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC target is not supported for this machine"
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
@@ -47855,115 +47871,125 @@ msgstr "kan ikke bruge %qs som et kald-brugt register"
 msgid "unknown option for %<%s=%s%>"
 msgstr "Ukendt processor: -mcpu=%s"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, fuzzy, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "%s har ingen %s"
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "ingen profilering af 64 bit-kode for denne ABI"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take the address of `this', which is an rvalue expression"
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "kan ikke tage adressen af 'this' som er et højreværdiudtryk"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 #| msgid "complex invalid for `%s'"
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "complex ugyldig for '%s'"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, fuzzy, gcc-internal-format
 #| msgid "complex invalid for `%s'"
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "complex ugyldig for '%s'"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter type `%T'"
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "ugyldig parametertype '%T'"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 #| msgid "\"%s\" is not defined"
 msgid "%s%qs%s is not allowed"
 msgstr "\"%s\" er ikke defineret"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "%s%qs%s is invalid"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "Virtual function multiversioning not supported"
 msgstr "stakgrænseudtryk understøttes ikke"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, fuzzy, gcc-internal-format
 #| msgid "a -ifile option requires a -map option"
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "et '-ifile'-tilvalg kræver et '-map'-tilvalg"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, fuzzy, gcc-internal-format
 #| msgid "a -ifile option requires a -map option"
 msgid "type %<__vector_pair%> requires the %qs option"
@@ -48010,7 +48036,7 @@ msgstr ""
 msgid "builtin %qs can only be used on vector types"
 msgstr "'%D' kan kun angives for funktioner"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, fuzzy, gcc-internal-format
 #| msgid "invalid option argument `%s'"
 msgid "constant value required for builtin %qF argument %d"
@@ -48091,247 +48117,247 @@ msgstr "'%s' er forældet"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "konstant parameter uden for det gyldige interval for '%s'"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for `%s'"
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "konstant parameter uden for det gyldige interval for '%s'"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for `%s'"
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "konstant parameter uden for det gyldige interval for '%s'"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for `%s'"
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "konstant parameter uden for det gyldige interval for '%s'"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, fuzzy, gcc-internal-format
 #| msgid "--resource requires -o"
 msgid "Builtin %qF requires z14 or higher"
 msgstr "--resource påkræver -o"
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, fuzzy, gcc-internal-format
 #| msgid "--resource requires -o"
 msgid "Builtin %qF requires z15 or higher"
 msgstr "--resource påkræver -o"
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot resolve address of overloaded function"
 msgid "unresolved overloaded builtin"
 msgstr "%s kan ikke finde adressen af flertydiggjort funktion"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, fuzzy, gcc-internal-format
 #| msgid "bad builtin fcode"
 msgid "bad builtin icode"
 msgstr "ugyldig indbygget fcode"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function"
 msgid "invalid argument %d for builtin %qF"
 msgstr "for mange parametre til funktionen"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "parameteren til egenskaben '%s er ikke \"ilink1\" eller \"ilink2\""
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, fuzzy, gcc-internal-format
 #| msgid "Total size of local variables exceeds architecture limit."
 msgid "total size of local variables exceeds architecture limit"
 msgstr "Total størrelse af lokale variable overstiger arkitekturgrænsen."
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsize of '%D' is %d bytes"
 msgid "frame size of %qs is %wd bytes"
 msgstr "%Jstørrelsen af '%D' er %d byte"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr ""
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 #| msgid "function `%s' cannot be declared `mutable'"
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "funktionen '%s' kan ikke erklæres 'mutable'"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, fuzzy, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "kodemodellen %s er ikke understøttet i PIC-tilstand"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Use hardware floating point instructions"
 msgid "hardware vector support not available on %s"
 msgstr "Benyt hardware-kommatalsinstruktioner"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, fuzzy, gcc-internal-format
 #| msgid "Use hardware floating point instructions"
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr "Benyt hardware-kommatalsinstruktioner"
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Use hardware floating point instructions"
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "Benyt hardware-kommatalsinstruktioner"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "Use hardware floating point instructions"
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "Benyt hardware-kommatalsinstruktioner"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr ""
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr ""
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr ""
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr ""
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "-f%s er ikke understøttet: ignoreret"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "parameter til '%s' skal være en 2 bit-konstant uden fortegn"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, fuzzy, gcc-internal-format
 #| msgid "argument to `%s' attribute larger than %d"
 msgid "argument to %qs is too large (max. %d)"
 msgstr "parameter til egenskaben '%s' er større end %d"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute argument not a string constant"
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "parameteren til egenskaben '%s' er ikke en strengkonstant"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_trap not supported by this target"
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "__builtin_trap understøttes ikke på denne målarkitektur"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 #| msgid "invalid constant"
 msgid "invalid cc output constraint: %qs"
 msgstr "ugyldig konstant:"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "inline float constants not supported on this host"
 msgid "multiple cc output constraints not supported"
 msgstr "integrerede kommatalskonstanter er ikke understøttede på denne vært"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, fuzzy, gcc-internal-format
 #| msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "asm-anvisning for variablen '%s' strider mod asm-overskrivelsesliste"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument"
 msgid "invalid type for cc output constraint"
@@ -48815,8 +48841,8 @@ msgstr "%s har ingen %s"
 msgid "attribute %qs applies to array types only"
 msgstr "egenskaben '%s' kan kun anvendes på variabler"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "tom værdi er ikke ignoreret som den burde være"
@@ -48897,7 +48923,7 @@ msgstr ""
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "'%D' er allerede erklæret i dette navnerum"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, fuzzy, gcc-internal-format
 msgid "originally defined here"
 msgstr "  oprindelig definition er her"
@@ -49143,7 +49169,7 @@ msgstr "erklæring af '%s' skygger for en tidligere lokal variabel"
 msgid "declaration of %qD shadows a parameter"
 msgstr "erklæring af '%#D' skygger for en parameter"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of \"%s\" shadows a global declaration"
 msgid "declaration of %qD shadows a global declaration"
@@ -49155,7 +49181,7 @@ msgstr "erklæring af '%s' skygger for en global erklæring"
 msgid "declaration of %qD shadows a previous local"
 msgstr "erklæring af '%s' skygger for en tidligere lokal variabel"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, fuzzy, gcc-internal-format
 #| msgid "%Jshadowed declaration is here"
 msgid "shadowed declaration is here"
@@ -49234,7 +49260,7 @@ msgstr "'%s' er ikke erklæret (først benyttet i denne funktion)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "(et kaldenavn der ikke er erklæret, rapporteres kun én gang per funktion)"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, fuzzy, gcc-internal-format
 #| msgid "label %s referenced outside of any function"
 msgid "label %qE referenced outside of any function"
@@ -49274,7 +49300,7 @@ msgstr "overløb i konstant udtryk"
 msgid "duplicate label declaration %qE"
 msgstr "etiketten '%s' er blevet erklæret mere end én gang"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate label `%D'"
 msgid "duplicate label %qD"
@@ -49313,7 +49339,7 @@ msgstr "overløb i konstant udtryk"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE defineret som forkert slags mærke"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute requires an integer constant argument"
 msgid "%qE attribute applied to %qD with void return type"
@@ -49466,12 +49492,12 @@ msgstr "ISO C90 understøtter ikke %<[*]%> arrayerklæringer"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr ""
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 msgid "%<omp::%s%> not allowed to be specified in this context"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
@@ -49481,7 +49507,7 @@ msgstr "'%D' blev ikke erklæret i dette virkefelt"
 msgid "%q+D is usually a function"
 msgstr "%q+D er normalt en funktion"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, fuzzy, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "ingen tidligere erklæring af '%s'"
@@ -49565,7 +49591,7 @@ msgstr "kan ikke anbringe et objekt med et volatile-felt i et register"
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "konstant '%D' uden startværdi"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -49779,7 +49805,7 @@ msgstr "lagringsklasse angivet for parameter '%s'"
 msgid "storage class specified for unnamed parameter"
 msgstr "lagringsklasse angivet for parameter '%s'"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "lagringsklasse angivet for typenavn"
@@ -49850,7 +49876,7 @@ msgstr "'%s' erklæret som en tabel af funktioner"
 msgid "declaration of type name as array of functions"
 msgstr "'%s' erklæret som en tabel af funktioner"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "ugyldig brug af struktur med fleksibelt tabelmedlem"
@@ -49970,7 +49996,7 @@ msgstr "typenavn er erklæret som en funktion, der returnerer en array"
 msgid "function definition has qualified void return type"
 msgstr "funktiondefinition har kvalificeret void-returtype"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "typemodifikationer ignoreret i funktionsreturtypen"
@@ -50110,7 +50136,7 @@ msgstr "ISO C forbyder const eller volatile funktionstyper"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "datamedlem må ikke have variabelt ændret type '%T'"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, fuzzy, gcc-internal-format
 #| msgid "variable or field declared void"
 msgid "variable or field %qE declared void"
@@ -50229,7 +50255,7 @@ msgstr "skabelonsparameter '%T' er en variabelt ændret type"
 msgid "object with variably modified type must have no linkage"
 msgstr ""
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, fuzzy, gcc-internal-format
 #| msgid "function declaration isn't a prototype"
 msgid "function declaration isn%'t a prototype"
@@ -50329,18 +50355,18 @@ msgstr "indlejret omdefinering af '%s'"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "indlejret omdefinering af '%s'"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr ""
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 #| msgid "unknown field `%s' specified in initializer"
 msgid "%qT defined in underspecified object initializer"
 msgstr "ukendt felt '%s' angivet i startværdi"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "erklæring erklærer ikke noget"
@@ -50373,373 +50399,373 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, fuzzy, gcc-internal-format
 #| msgid "named members"
 msgid "union has no named members"
 msgstr "navngivne medlemmer"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, fuzzy, gcc-internal-format
 msgid "union has no members"
 msgstr "anonym sammensat type uden medlemmer"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, fuzzy, gcc-internal-format
 #| msgid "named members"
 msgid "struct has no named members"
 msgstr "navngivne medlemmer"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, fuzzy, gcc-internal-format
 #| msgid "%s has no member named `%s'"
 msgid "struct has no members"
 msgstr "%s har intet medlem ved navn '%s'"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "fleksibelt tabelmedlem i union"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, fuzzy, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "fleksibelt tabelmedlem ikke i slutningen af struktur"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "fleksibelt tabelmedlem i union"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "fleksibelt tabelmedlem ikke i slutningen af struktur"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, fuzzy, gcc-internal-format
 #| msgid "%s is too large"
 msgid "type %qT is too large"
 msgstr "%s er for stor"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, fuzzy, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr "ukendt registernavn '%s'"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "union kan ikke ikke gøres gennemsigtig"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "omdefinering af '%s'"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of `struct %s'"
 msgid "redefinition of struct or union %qT"
 msgstr "omdefinering af 'struct %s'"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of `%s'"
 msgid "nested redefinition of %<enum %E%>"
 msgstr "indlejret omdefinering af '%s'"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of `enum %s'"
 msgid "redeclaration of %<enum %E%>"
 msgstr "omerklæring af 'enum %s'"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr ""
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "enum-værdier overstige rækkevidden af det største heltal"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "enum-værdier overstige rækkevidden af det største heltal"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of `%s'"
 msgid "conflicting redefinition of enum %qT"
 msgstr "indlejret omdefinering af '%s'"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for `%s' not integer constant"
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for `%s' not integer constant"
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "enum-værdier for store"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "array subscript is not an integer"
 msgid "enumerator value outside the range of underlying type"
 msgstr "tabelindeks er ikke et heltal"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 #| msgid "array subscript is not an integer"
 msgid "enumerator value outside the range of %qs"
 msgstr "tabelindeks er ikke et heltal"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of `int'"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C begrænser enum-værdier til rækkevidden af 'int'"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr "inline funktion '%s' givet egenskaben noinline"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "returtypen er en ufuldstændig type"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, fuzzy, gcc-internal-format
 #| msgid "return type defaults to `int'"
 msgid "return type defaults to %<int%>"
 msgstr "returtypen antages at være 'int'"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, fuzzy, gcc-internal-format
 #| msgid "field `%s' declared as a function"
 msgid "%q+D defined as variadic function without prototype"
 msgstr "feltet '%s' er erklæret som en funktion"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, fuzzy, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "ingen tidligere prototype for '%s'"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, fuzzy, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "'%s' blev brugt uden en prototype før dens definition"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, fuzzy, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "'%s' blev brugt uden en erklæring før dens definition"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, fuzzy, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "returtypen til '%s' er ikke 'int'"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr ""
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, fuzzy, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "'%s' er normalt en ikke-statisk funktion"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, fuzzy, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "kan ikke bruge '::' i parametererklæring"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "traditionel C tillader ikke ISO C-functionsdefinitioner"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support complex types"
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "ISO C90 understøtter ikke komplekse typer"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, fuzzy, gcc-internal-format
 #| msgid "traditional C rejects ISO C style function definitions"
 msgid "old-style function definition"
 msgstr "traditionel C tillader ikke ISO C-functionsdefinitioner"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, fuzzy, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "parameternavn mangler fra parameterliste"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "'%D' er erklæret som en ven"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, fuzzy, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "flere parametre ved navn '%s'"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, fuzzy, gcc-internal-format
 #| msgid "parameter `%D' declared void"
 msgid "parameter %qD declared with void type"
 msgstr "parameteren '%D' erklæret void"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, fuzzy, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "typen til '%s' antages at være 'int'"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, fuzzy, gcc-internal-format
 #| msgid "parameter has incomplete type"
 msgid "parameter %qD has incomplete type"
 msgstr "parameteren er af en ufuldstændig type"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, fuzzy, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "erklæring af parameteren '%s', men ingen sådan parameter"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, fuzzy, gcc-internal-format
 #| msgid "number of arguments doesn't match prototype"
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "antallet af parametre passer ikke til prototypen"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, fuzzy, gcc-internal-format
 #| msgid "number of arguments doesn't match prototype"
 msgid "number of arguments doesn%'t match prototype"
 msgstr "antallet af parametre passer ikke til prototypen"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, fuzzy, gcc-internal-format
 msgid "prototype declaration"
 msgstr "tom erklæring"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, fuzzy, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "den forfremmede parameter '%s' passer ikke til prototypen"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, fuzzy, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "den forfremmede parameter '%s' passer ikke til prototypen"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, fuzzy, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "parameteren '%s' passer ikke til prototypen"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, fuzzy, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "parameteren '%s' passer ikke til prototypen"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "ingen return-sætning i en funktion der ikke returnerer void"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, fuzzy, gcc-internal-format
 #| msgid "label `%D' defined but not used"
 msgid "parameter %qD set but not used"
 msgstr "etiketten '%D' er defineret, men ikke benyttet"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, fuzzy, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "begyndelseserklæring i 'for'-løkke benyttet uden for C99-tilstand"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr ""
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 understøtter ikke %<[*]%> arrayerklæringer"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, fuzzy, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "erklæring af '%s' der er en statisk variabel, i begyndelseserklæring i 'for'-løkke"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "erklæring af '%s' der er en 'extern'-variabel, i begyndelseserklæring i 'for'-løkke"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, fuzzy, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "'struct %s' erklæret i begyndelseserklæring i 'for'-løkke"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, fuzzy, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "'union %s' erklæret i begyndelseserklæring i 'for'-løkke"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, fuzzy, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "'enum %s' erklæret i begyndelseserklæring i 'for'-løkke"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, fuzzy, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "erklæring af '%s' der ikke er en variabel, i begyndelseserklæring i 'for'-løkke"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr ""
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 #| msgid "repeated declaration of unit `%s'"
 msgid "duplicate %qE declaration specifier"
 msgstr "gentaget erklæring af enheden '%s'"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, fuzzy, gcc-internal-format
 #| msgid "multiple storage classes in declaration of `%s'"
 msgid "multiple storage classes in declaration specifiers"
 msgstr "flere lagringsklasser optræder i erklæringen af '%s'"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 #| msgid "%s used with `%%%c' %s format"
 msgid "%qs used with %<auto%>"
@@ -50747,124 +50773,124 @@ msgstr "%s brugt med '%%%c' %s-formatering"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' was not declared in this scope"
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, fuzzy, gcc-internal-format
 #| msgid "two or more data types in declaration of `%s'"
 msgid "two or more data types in declaration specifiers"
 msgstr "mere end én datatype i erklæringen af '%s'"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, fuzzy, gcc-internal-format
 #| msgid "`long long long' is too long for GCC"
 msgid "%<long long long%> is too long for GCC"
 msgstr "'long long long' er for langt for GCC"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support `long long'"
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 understøtter ikke 'long long'"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 understøtter ikke komplekse typer"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support saturating types"
 msgstr "ISO C understøtter ikke komplekse heltalstyper"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate `%s'"
 msgid "duplicate %qE"
 msgstr "'%s' optræder mere end én gang"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C understøtter ikke komplekse heltalstyper"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 #| msgid "Profiling is not supported on this target."
 msgid "%<__int%d%> is not supported on this target"
 msgstr "Profilering er ikke understøttet på målarkitekturen."
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support complex types"
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 understøtter ikke komplekse typer"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C understøtter ikke komplekse heltalstyper"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 #| msgid "Profiling is not supported on this target."
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "Profilering er ikke understøttet på målarkitekturen."
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support `long long'"
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C90 understøtter ikke 'long long'"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "fixed-point types not supported for this target"
 msgstr "-fdata-sections understøttes ikke på målarkitekturen"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C understøtter ikke komplekse heltalstyper"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for `%s' not integer constant"
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' fails to be a typedef or built in type"
 msgid "%qE fails to be a typedef or built in type"
 msgstr "'%s' er hverken en typedef eller en indbygget type"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not at beginning of declaration"
 msgid "%qE is not at beginning of declaration"
@@ -50872,157 +50898,157 @@ msgstr "'%s' er ikke ved begyndelsen af erklæringen"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr ""
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr ""
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr ""
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' was not declared in this scope"
 msgid "%qE used with %<constexpr%>"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "ISO C99 does not support %qE"
 msgstr "%s understøtter ikke %s"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support `long long'"
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 understøtter ikke 'long long'"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, fuzzy, gcc-internal-format
 #| msgid "`__thread' before `extern'"
 msgid "%<__thread%> before %<extern%>"
 msgstr "'__thread' før 'extern'"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, fuzzy, gcc-internal-format
 #| msgid "`__thread' before `static'"
 msgid "%<__thread%> before %<static%>"
 msgstr "'__thread' før 'static'"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 #| msgid "typedef declared %<auto%>"
 msgid "%<typedef%> used with %<auto%>"
 msgstr "typedef erklæret %<auto%>"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<decltype%>"
 msgid "%qE used with %<extern%>"
 msgstr "forventede %<decltype%>"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 #| msgid "%s used with `%%%c' %s format"
 msgid "%qE used with %qs"
 msgstr "%s brugt med '%%%c' %s-formatering"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr ""
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, fuzzy, gcc-internal-format
 #| msgid "%s used with `%%%c' %s format"
 msgid "%qs used with %qE"
 msgstr "%s brugt med '%%%c' %s-formatering"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 #| msgid "%s used with `%%%c' %s format"
 msgid "%<constexpr%> used with %qE"
 msgstr "%s brugt med '%%%c' %s-formatering"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr ""
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support plain `complex' meaning `double complex'"
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C understøtter ikke at blot 'complex' betyder 'double complex'"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C understøtter ikke komplekse heltalstyper"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C understøtter ikke komplekse heltalstyper"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 #| msgid "left argument must be a slice"
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "venstre parameter skal være en skive"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support `long long'"
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++ understøtter ikke 'long long'"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, fuzzy, gcc-internal-format
 #| msgid "left shift count is negative"
 msgid "left shift of negative value"
 msgstr "venstreskiftsantal er negativ"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "venstreskiftsantal er negativ"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "højreskiftsantal er negativ"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "venstreskiftsantal er større end bredden af typen"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "højreskiftsantal er større end bredden af typen"
@@ -51055,7 +51081,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr "  anden type her"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, fuzzy, gcc-internal-format
 #| msgid "garbage at end of #line"
 msgid "expected end of line"
@@ -51067,8 +51093,8 @@ msgstr "ragelse i slutningen af #line"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C forbyder en tom kildefil"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -51112,9 +51138,9 @@ msgstr "'%D' har intet medlem ved navn '%E'"
 msgid "unknown type name %qE"
 msgstr "ukendt registernavn: %s"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, fuzzy, gcc-internal-format
 #| msgid "repeated declaration of unit `%s'"
 msgid "expected declaration specifiers"
@@ -51148,7 +51174,7 @@ msgstr "sektionsegenskaben er ikke tilladt for '%s'"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr ""
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute ignored for `%s'"
 msgid "prefix attributes are ignored for methods"
@@ -51170,7 +51196,7 @@ msgstr "uventet operand"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "sektionsegenskaben er ikke tilladt for '%s'"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr "sektionsegenskaben er ikke tilladt for '%s'"
@@ -51268,7 +51294,7 @@ msgstr "startværdien for den statiske variabel er ikke en konstant"
 msgid "static assertion failed: %E"
 msgstr ""
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, fuzzy, gcc-internal-format
 #| msgid "verification error at PC=%d"
 msgid "static assertion failed"
@@ -51348,10 +51374,10 @@ msgstr "skabelonsparameter %d er ugyldig"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, fuzzy, gcc-internal-format
 msgid "expected identifier"
 msgstr "uventet operand"
@@ -51516,7 +51542,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -51526,8 +51552,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -51712,12 +51738,12 @@ msgstr "ISO C forbyder udeladelse af den midterste del af et '?:'-udtryk"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "first %<sizeof%> operand was declared here"
@@ -51882,7 +51908,7 @@ msgstr "ISO C90 understøtter ikke komplekse typer"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, fuzzy, gcc-internal-format
 #| msgid "unexpected address expression"
 msgid "expected expression"
@@ -52236,13 +52262,13 @@ msgstr "Klasse- eller grænsefladeerklæring forventet"
 msgid "no type or storage class may be specified here,"
 msgstr "lagringsklasse angivet for typenavn"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, fuzzy, gcc-internal-format
 #| msgid "readonly property can not be set"
 msgid "empty property attribute list"
 msgstr "skrivebeskyttet egenskab kan ikke angives"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing property attribute"
@@ -52254,60 +52280,60 @@ msgstr "manglende Code-egenskab"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "Ukendt processor: -mcpu=%s"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr ""
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "%<,%> eller %<)%> forventet"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 #| msgid "empty body in an else-statement"
 msgid "expected %qE selector name"
 msgstr "tom krop i en else-sætning"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr ""
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma once in main file"
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "'#pragma once' i hovedfil"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr ""
@@ -52317,25 +52343,25 @@ msgstr ""
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr ""
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr ""
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %qs clauses"
@@ -52353,73 +52379,73 @@ msgstr "udsagn skal være et kaldenavn"
 msgid "expected %<)%> or %<,%>"
 msgstr "%<,%> eller %<)%> forventet"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a namespace"
 msgid "%qD is not a variable"
 msgstr "'%D' er ikke et navnerum"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a pointer-to-object type"
 msgid "%qD is not a pointer variable"
 msgstr "'%T' er ikke af en henvisning til objekt-type"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "collapse argument needs positive constant integer expression"
 msgstr "sammenlign mellem signed og unsigned heltalsudtryk"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<:%> or %<::%>"
 msgid "expected %<none%> or %<present%>"
 msgstr "forventede %<:%> or %<::%>"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 #| msgid "']' expected, invalid type expression"
 msgid "expected constant logical expression"
 msgstr "']' forventet, ugyldigt typeudtryk"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<catch%>"
 msgid "expected %<data%>"
 msgstr "forventede %<catch%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<if%> clauses"
 msgstr "for mange inddatafiler"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<if%> clauses without modifier"
 msgstr "for mange inddatafiler"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -52443,24 +52469,24 @@ msgstr ""
 msgid "%<num_tasks%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, fuzzy, gcc-internal-format
 #| msgid "%s rotate count is negative"
 msgid "%<priority%> value must be non-negative"
 msgstr "%s-roteringsantal er negativt"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 #| msgid "']' expected, invalid type expression"
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "']' forventet, ugyldigt typeudtryk"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
@@ -52472,106 +52498,106 @@ msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "for mange inddatafiler"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "for mange inddatafiler"
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, fuzzy, gcc-internal-format
 #| msgid "predicate must be an identifier"
 msgid "%qs expression must be integral"
 msgstr "udsagn skal være et kaldenavn"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, fuzzy, gcc-internal-format
 #| msgid "%s rotate count is negative"
 msgid "%qs value must be positive"
 msgstr "%s-roteringsantal er negativt"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments"
 msgid "too many %<static%> arguments"
 msgstr "for mange parametre"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, fuzzy, gcc-internal-format
 #| msgid "unexpected operand"
 msgid "unexpected argument"
 msgstr "uventet operand"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute argument not an integer constant"
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "parameteren til egenskaben '%s' er ikke en heltalskonstant"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<self%> clauses"
 msgstr "for mange inddatafiler"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "uventet operand"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<new%>"
 msgid "expected %<concurrent%>"
 msgstr "forventede %<new%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "ordered argument needs positive constant integer expression"
 msgstr "sammenlign mellem signed og unsigned heltalsudtryk"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr ""
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr ""
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 #| msgid "%s rotate count is negative"
 msgid "chunk size value must be positive"
 msgstr "%s-roteringsantal er negativt"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, fuzzy, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "ugyldig roteringsinstruktion"
@@ -52581,22 +52607,22 @@ msgstr "ugyldig roteringsinstruktion"
 msgid "%<num_teams%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %<allocator%> or %<align%>"
@@ -52608,24 +52634,24 @@ msgstr "%<,%> eller %<)%> forventet"
 msgid "duplicate %qs modifier"
 msgstr "duplikere %qs"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "sammenlign mellem signed og unsigned heltalsudtryk"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 #| msgid "multiple `virtual' specifiers"
 msgid "multiple linear modifiers"
 msgstr "mere end én 'virtual'-angivelse"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, fuzzy, gcc-internal-format
 #| msgid "multiple `virtual' specifiers"
 msgid "multiple %<step%> modifiers"
@@ -52646,70 +52672,70 @@ msgstr ""
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 #| msgid "%s from incompatible pointer type"
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "%s fra en henvisningstype der ikke er forenelig med målets"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 #| msgid "invalid %%d operand"
 msgid "invalid depend kind"
 msgstr "ugyldig %%d-operand"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mask"
 msgid "invalid doacross kind"
 msgstr "ugyldig maske"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<always%> modifiers"
 msgstr "for mange inddatafiler"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<close%> modifiers"
 msgstr "for mange inddatafiler"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<present%> modifiers"
 msgstr "for mange inddatafiler"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mask"
 msgid "invalid map kind"
 msgstr "ugyldig maske"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<:%> or %<::%>"
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "forventede %<:%> or %<::%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr ""
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "ugyldig roteringsinstruktion"
@@ -52726,92 +52752,92 @@ msgstr "ugyldig roteringsinstruktion"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "%<;%>, %<,%> eller %<)%> forventet"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected EOF while reading source file %s.\n"
 msgid "expected an OpenACC clause"
 msgstr "Stødt på slutningen af kildefilen %s tidligere end forventet.\n"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, fuzzy, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%s understøtter ikke %s"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr ""
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr "uventet operand"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of \"%s\" shadows a global declaration"
 msgid "array section in %<#pragma acc declare%>"
 msgstr "erklæring af '%s' skygger for en global erklæring"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr "erklæring af '%s' der er en 'extern'-variabel, i begyndelseserklæring i 'for'-løkke"
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, fuzzy, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "skabelonsparameter '%T' er en variabelt ændret type"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "erklæring af '%s' der er en 'extern'-variabel, i begyndelseserklæring i 'for'-løkke"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr "erklæring af '%s' der er en 'extern'-variabel, i begyndelseserklæring i 'for'-løkke"
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma once in main file"
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr "'#pragma once' i hovedfil"
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -52827,7 +52853,7 @@ msgstr "'%#D' kan ikke erklæres"
 msgid "expected function name"
 msgstr "forventet funktion"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a member template function"
 msgid "%qD does not refer to a function"
@@ -52838,24 +52864,24 @@ msgstr "'%D' er ikke en medlemsskabelonfunktion"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "en global registervariabel følger en funktionsdefinition"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "en global registervariabel følger en funktionsdefinition"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, fuzzy, gcc-internal-format
 #| msgid "braced-group within expression allowed only inside a function"
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "sætningsblokke i udtryk er kun tilladt inde i en funktion"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, fuzzy, gcc-internal-format
 #| msgid "braced-group within expression allowed only inside a function"
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "sætningsblokke i udtryk er kun tilladt inde i en funktion"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr ""
@@ -52882,7 +52908,7 @@ msgstr ""
 msgid "modified here"
 msgstr "'%s' tidligere defineret her"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
@@ -52923,121 +52949,121 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "%<;%>, %<,%> eller %<)%> forventet"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many atomic clauses"
 msgstr "for mange inddatafiler"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many memory order clauses"
 msgstr "for mange inddatafiler"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, fuzzy, gcc-internal-format
 #| msgid "%s from incompatible pointer type"
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "%s fra en henvisningstype der ikke er forenelig med målets"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, fuzzy, gcc-internal-format
 #| msgid "--resource requires -o"
 msgid "%qs clause requires %qs clause"
 msgstr "--resource påkræver -o"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "'%s' er erklæret inline efter dens definition"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 #| msgid "invalid #pragma %s"
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "ugyldig #pragma %s"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "unexpected %<else%>"
 msgstr "forventede %<delete%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 #| msgid "invalid #pragma %s"
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "ugyldig #pragma %s"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, fuzzy, gcc-internal-format
 #| msgid "invalid #pragma %s"
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "ugyldig #pragma %s"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operand for 'p' modifier"
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "ugyldig operand til 'p'-ændring"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr ""
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "størrelsen af medlemmet '%D' er ikke konstant"
@@ -53047,30 +53073,30 @@ msgstr "størrelsen af medlemmet '%D' er ikke konstant"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "størrelsen af medlemmet '%D' er ikke konstant"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "%<;%>, %<,%> eller %<)%> forventet"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -53080,176 +53106,176 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr ""
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<:%> or %<::%>"
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "forventede %<:%> or %<::%>"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp section%> or %<}%>"
 msgid "expected %<#pragma omp scan%>"
 msgstr "%<#pragma omp section%> eller %<}%> forventet"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, fuzzy, gcc-internal-format
 #| msgid "repeated declaration of automaton `%s'"
 msgid "expected iteration declaration or initialization"
 msgstr "gentaget erklæring af automaten '%s'"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 #| msgid "not enough arguments"
 msgid "not enough nested loops"
 msgstr "ikke nok parametre"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, fuzzy, gcc-internal-format
 #| msgid "')' or term expected"
 msgid "for statement expected"
 msgstr "')' eller term forventet"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr ""
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr ""
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, fuzzy, gcc-internal-format
 #| msgid "unexpected operand"
 msgid "expected %<point%>"
 msgstr "uventet operand"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "en global registervariabel følger en funktionsdefinition"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "en global registervariabel følger en funktionsdefinition"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 #| msgid "empty body in an else-statement"
 msgid "expected trait selector name"
 msgstr "tom krop i en else-sætning"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, fuzzy, gcc-internal-format
 #| msgid "unknown value %qs for -mtune"
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "ukendt værdi %qs for -mtune"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, fuzzy, gcc-internal-format
 #| msgid "incomplete type `%T' does not have member `%D'"
 msgid "selector %qs does not accept any properties"
 msgstr "ufuldstændig type '%T' har ikke medlemmet '%D'"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified inside a class"
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "'%D' kan kun angives inden i en klasse"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr "klargøringsliste behandlet som et sammensat udtryk"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 #| msgid "%s rotate count is negative"
 msgid "%<score%> argument must be non-negative"
 msgstr "%s-roteringsantal er negativt"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 #| msgid "_Pragma takes a parenthesized string literal"
 msgid "expected identifier or string literal"
 msgstr "_Pragma tager en strengkonstant med paranteser omkring"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 #| msgid "']' expected, invalid type expression"
 msgid "property must be constant integer expression"
 msgstr "']' forventet, ugyldigt typeudtryk"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -53257,307 +53283,307 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 #| msgid "code model `large' not supported yet"
 msgid "%<requires%> selector is not supported yet"
 msgstr "kodemodellen 'large' er ikke understøttet endnu"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 #| msgid "empty body in an else-statement"
 msgid "expected context selector set name"
 msgstr "tom krop i en else-sætning"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<catch%>"
 msgid "expected %<match%>"
 msgstr "forventede %<catch%>"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function,"
 msgid "variant %qD is not a function"
 msgstr "'%s' er ikke en funktion,"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 #| msgid "-f%s and -msdata=%s are incompatible"
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "-f%s og -msdata=%s er indbyrdes uforenelige"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "en global registervariabel følger en funktionsdefinition"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "en global registervariabel følger en funktionsdefinition"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, fuzzy, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "uventet operand"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "uventet operand"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr ""
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, fuzzy, gcc-internal-format
 #| msgid "argument to `%s' attribute larger than %d"
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "parameter til egenskaben '%s' er større end %d"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "uventet operand"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr ""
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of \"%s\" shadows a global declaration"
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "erklæring af '%s' skygger for en global erklæring"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr ""
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, fuzzy, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "uventet operand"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C forbids qualified function types"
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "ISO C forbyder funktionsreturtype med modifikationer"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C forbids qualified function types"
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "ISO C forbyder funktionsreturtype med modifikationer"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "%<;%>, %<,%> eller %<)%> forventet"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %qs or %qs"
 msgstr "%<,%> eller %<)%> forventet"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr ""
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 #| msgid "expected function"
 msgid "expected directive name"
 msgstr "forventet funktion"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown assumption clause %qs"
 msgstr "ukendt registernavn: %s"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 #| msgid "expected function"
 msgid "expected assumption clause"
 msgstr "forventet funktion"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr ""
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr ""
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, fuzzy, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "parameteren er af en ufuldstændig type"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr ""
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, fuzzy, gcc-internal-format
 #| msgid "%<transaction_may_cancel_outer%> function call not within outer transaction or %<transaction_may_cancel_outer%>"
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "%<transaction_may_cancel_outer%> funktionskald er ikke inden for ydre transaktion eller %<transaction_may_cancel_outer%>"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, fuzzy, gcc-internal-format
 #| msgid "error closing %s: %m"
 msgid "no closing brace"
@@ -53710,7 +53736,7 @@ msgstr "forsøg på at følge en 'void *'-henvisning"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "værdien der er påført et indeks, er hverken en tabel eller en henvisningsvariabel"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "tabelindeks er ikke et heltal"
@@ -53743,7 +53769,7 @@ msgstr "'%D' erklæret som en reference, men bliver ikke tildelt en startværdi"
 msgid "enum constant defined here"
 msgstr ""
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -53874,19 +53900,19 @@ msgstr ""
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "for få parametre til funktionen"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, fuzzy, gcc-internal-format
 #| msgid "%Jweak declaration of '%D' after first use results in unspecified behavior"
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "%Jsvag erklæring af '%D' efter første brug resulterer i ikke-defineret opførsel"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between pointer and integer"
 msgid "comparison between pointer and zero character constant"
 msgstr "sammenligning mellem henvisningsvariabel og heltal"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, fuzzy, gcc-internal-format
 #| msgid "casting `%T' to `%T' does not dereference pointer"
 msgid "did you mean to dereference the pointer?"
@@ -53914,7 +53940,7 @@ msgstr "henvisning til en funktion benyttet i subtraktion"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "beregninger udført på en henvisning til en ufuldstændig type"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic on pointer to an incomplete type"
 msgid "arithmetic on pointer to an empty aggregate"
@@ -54249,7 +54275,7 @@ msgstr "typeomtvingelse fra henvisning til heltal af en anden størrelse"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr ""
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "typeomtvingelse fra heltal til henvisning af en anden størrelse"
@@ -54450,7 +54476,7 @@ msgstr "Advar om funktioner som kan være kandidater til formateringsegenskaber"
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "funktion er en mulig kandidat til '%s'-formateringsegenskab"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, fuzzy, gcc-internal-format
 #| msgid "function might be possible candidate for `%s' format attribute"
 msgid "return type might be a candidate for a format attribute"
@@ -54685,12 +54711,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "klargøring af fleksibelt tabelmedlem"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, fuzzy, gcc-internal-format
 #| msgid "%s from incompatible pointer type"
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
@@ -54702,7 +54728,7 @@ msgstr "%s fra en henvisningstype der ikke er forenelig med målets"
 msgid "array of inappropriate type initialized from string constant"
 msgstr "char-tabel får tildelt startværdi fra en bred streng"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "ugyldig brug af en tabel der ikke kan optræde som en venstreværdi"
@@ -54734,7 +54760,7 @@ msgstr "startværdielement er ikke en konstant"
 msgid "initializer element is not computable at load time"
 msgstr "startværdielement kan ikke beregnes ved indlæsningstidspunktet"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, fuzzy, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "objekt af typen '%T' med variabel størrelse må ikke tildeles en startværdi"
@@ -54750,7 +54776,7 @@ msgid "braces around scalar initializer"
 msgstr "krøllede paranteser omkring skalarstartværdi"
 
 # RETMIG: eller er det fleksibel tabel-medlem
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "klargøring af fleksibelt tabelmedlem i en indlejret kontekst"
@@ -54846,7 +54872,7 @@ msgstr "for mange elementer i struct-startværdi"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "ikke-statisk klargøring af fleksibelt tabelmedlem"
@@ -54888,7 +54914,7 @@ msgstr "ISO C forbyder 'goto *udtryk;'"
 msgid "computed goto must be pointer type"
 msgstr "parameter til '%s' skal være en 2 bit-konstant"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, fuzzy, gcc-internal-format
 #| msgid "function declared `noreturn' has a `return' statement"
 msgid "function declared %<noreturn%> has a %<return%> statement"
@@ -54951,7 +54977,7 @@ msgstr "'default'-etiket befinder sig ikke inden i en switch-sætning"
 msgid "break statement not within loop or switch"
 msgstr "break-sætning befinder sig ikke i en løkke- eller switch-konstruktion"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -54999,30 +55025,30 @@ msgstr "adressen af '%D' vil altid være 'true'"
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "adressen af '%D' vil altid være 'true'"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types"
 msgid "comparing vectors with different element types"
 msgstr "operander til ?: har forskellige typer"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, fuzzy, gcc-internal-format
 #| msgid "operand constraints for `asm' differ in number of alternatives"
 msgid "comparing vectors with different number of elements"
 msgstr "operandbegrænsninger til 'asm' har forskellige antal alternativer"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types `%#T' and `%#T'"
 msgid "comparison between types %qT and %qT"
 msgstr "sammenligning mellem typerne '%#T' og '%#T'"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, fuzzy, gcc-internal-format
 #| msgid "comparing floating point with == or != is unsafe"
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
@@ -55102,31 +55128,31 @@ msgstr "værdi af union-type angivet hvor skalar er påkrævet"
 msgid "used vector type where scalar is required"
 msgstr "værdi af struct-type angivet hvor skalar er påkrævet"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "for mange inddatafiler"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qD is not a variable in %qs clause"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qE is not a variable in %qs clause"
@@ -55139,90 +55165,90 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "bitfeltet '%s' er af en ufuldstændig type"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "low bound %qE of array section does not have integral type"
 msgstr "størrelse i tabel-new skal være en heltalstype"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "length %qE of array section does not have integral type"
 msgstr "størrelse i tabel-new skal være en heltalstype"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected EOF while reading source file %s.\n"
 msgid "expected single pointer in %qs clause"
 msgstr "Stødt på slutningen af kildefilen %s tidligere end forventet.\n"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, fuzzy, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "Intern oversætterfejl i %s ved %s:%d."
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, fuzzy, gcc-internal-format
 #| msgid "predicate must be an identifier"
 msgid "for array function parameter length expression must be specified"
 msgstr "udsagn skal være et kaldenavn"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%qE does not have pointer or array type"
 msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 #| msgid "throwing NULL, which has integral, not pointer type"
 msgid "iterator %qD has neither integral nor pointer type"
@@ -55234,19 +55260,19 @@ msgstr "kaster NULL som har en heltals-, ikke en henvisningstype"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "ISO C forbyder funktionsreturtype med modifikationer"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 #| msgid "parameter has incomplete type"
 msgid "iterator %qD has const qualified type"
 msgstr "parameteren er af en ufuldstændig type"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field `%#D' with non-integral type"
 msgid "iterator step with non-integral type"
 msgstr "bitfelt '%#D' med en ikke-heltalstype"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -55256,37 +55282,37 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute `%s'"
 msgid "begin expression refers to outer iterator %qD"
 msgstr "ugyldig vektortype for egenskaben '%s'"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute `%s'"
 msgid "end expression refers to outer iterator %qD"
 msgstr "ugyldig vektortype for egenskaben '%s'"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute `%s'"
 msgid "step expression refers to outer iterator %qD"
 msgstr "ugyldig vektortype for egenskaben '%s'"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 #| msgid "unexpected operand"
 msgid "expected pointer in %qs clause"
 msgstr "uventet operand"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C forbids qualified function types"
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr "ISO C forbyder funktionsreturtype med modifikationer"
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C forbids qualified function types"
 msgid "%<inscan%> %<reduction%> clause with array section"
@@ -55322,7 +55348,7 @@ msgstr "bitfeltet '%s' er af en ufuldstændig type"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "ugyldig returtype for funktionen '%#D'"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr "brug af '%D' er tvetydigt"
@@ -55332,17 +55358,17 @@ msgstr "brug af '%D' er tvetydigt"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr ""
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -55357,26 +55383,26 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qE is not a variable in clause %qs"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in motion clauses"
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD fremgår mere end en gang i motion-klausuller"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr ""
@@ -55388,34 +55414,34 @@ msgstr ""
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr ""
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable `%s' is declared private"
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "instansvariablen '%s' er erklæret privat"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable `%s' is declared private"
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "instansvariablen '%s' er erklæret privat"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qE is not a variable in %<aligned%> clause"
@@ -55437,7 +55463,7 @@ msgstr "%<_Atomic%> %qD i %<aligned%>-klausul"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<depend%> clause"
 msgid "%qE is not a variable in %<nontemporal%> clause"
@@ -55449,7 +55475,7 @@ msgstr "%qE er ikke en variable i %<depend%>-klausul"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qD fremgår mere end en gang i map-klausuller"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qE is not a variable in %<allocate%> clause"
@@ -55461,78 +55487,78 @@ msgstr "'%s' er et ugyldigt klassenavn"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qD fremgår mere end en gang i map-klausuller"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<depend%> clause"
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qE er ikke en variable i %<depend%>-klausul"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 #| msgid "unused arguments in $-style format"
 msgid "unsupported map expression %qE"
 msgstr "ubenyttede parametre i formatering med $"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD fremgår mere end en gang i motion-klausuller"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD fremgår mere end en gang i map-klausuller"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD har ikke en mappable-type i %qs-klausul"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE er hverken en variabel eller et funktionsnavn i klausul %qs"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr ""
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr ""
@@ -55549,23 +55575,23 @@ msgstr "grundoperanden til '->' er ikke en henvisning"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr ""
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %qs clauses on a task construct"
 msgstr "for mange inddatafiler"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr ""
@@ -55575,39 +55601,39 @@ msgstr ""
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C forbids qualified function types"
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr "ISO C forbyder funktionsreturtype med modifikationer"
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -55915,14 +55941,14 @@ msgstr "  for konvertering fra '%T' til '%T'"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  for konvertering fra '%T' til '%T'"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -56261,624 +56287,624 @@ msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvi
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "enum- og ikke enum-type i betinget udtryk"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, fuzzy, gcc-internal-format
 #| msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "ingen '%D(int)' erklæret for suffiks '%s', prøver præfiksoperatoren i stedet"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, fuzzy, gcc-internal-format
 #| msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "ingen '%D(int)' erklæret for suffiks '%s', prøver præfiksoperatoren i stedet"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr "returtypen til '%s' er ikke 'int'"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between `%#T' and `%#T'"
 msgid "comparison between %q#T and %q#T"
 msgstr "sammenligning mellem '%#T' og '%#T'"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to `(%T) (%A)'"
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "ingen passende fundet for kald til '(%T) (%A)'"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 #| msgid "call of `(%T) (%A)' is ambiguous"
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "kald af '(%T) (%A)' er tvetydigt"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, fuzzy, gcc-internal-format
 #| msgid "implicit declaration of function `%#D'"
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "underforstået erklæring af funktionen '%#D'"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 #| msgid "implicit declaration of function `%#D'"
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "underforstået erklæring af funktionen '%#D'"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr ""
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, fuzzy, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "ingen passende 'operator delete' for '%T'"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is private within this context"
 msgstr "i denne kontekst"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "declared private here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is protected within this context"
 msgstr "i denne kontekst"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "declared protected here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 #| msgid "`%+#D' is inaccessible"
 msgid "%q#D is inaccessible within this context"
 msgstr "'%+#D' er ikke tilgængelig"
 
 # %s bliver til returnering eller tildeling eller noget i den retning
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, fuzzy, gcc-internal-format
 #| msgid "passing NULL used for non-pointer %s %P of `%D'"
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "overbringelse af NULL benyttet for ikke-henvisnings%s %P af '%D'"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "  declared here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, fuzzy, gcc-internal-format
 #| msgid "%s to non-pointer type `%T' from NULL"
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "%s til ikke-henvisningstypen '%T' fra NULL"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible type for argument %d of `%s'"
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "typen af den %d. parameter i '%s' passer ikke"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, fuzzy, gcc-internal-format
 #| msgid "converting NULL to non-pointer type"
 msgid "converting %<false%> to pointer type %qT"
 msgstr "konverterer NULL til en ikke-henvisningstype"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, fuzzy, gcc-internal-format
 #| msgid "  initializing argument %P of `%D'"
 msgid "  initializing argument %P of %qD"
 msgstr "  ved klargøring af parameteren %P til '%D'"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member initializers only available with -std=c++11 or -std=gnu++11"
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "ikkestatisk datamedlemsstartværdier er kun tilgængelige med -std=c++11 eller -std=gnu++11"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer for `%T'"
 msgid "too many braces around initializer for %qT"
 msgstr "krøllede paranteser omkring skalarstartværdi for '%T'"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 #, fuzzy
 #| msgid "cannot convert `%T' to `%T' in %s"
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "kan ikke konvertere '%T' til '%T' i %s"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 #| msgid "ISO C++ does not allow %<alignof%> with a non-type"
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C++ tillader ikke %<alignof%> med en ikke-type"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 #| msgid "invalid conversion from `%T' to `%T'"
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "ugyldig konvertering fra '%T' til '%T'"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 #| msgid "invalid conversion from `%T' to `%T'"
 msgid "invalid conversion from %qH to %qI"
 msgstr "ugyldig konvertering fra '%T' til '%T'"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr ""
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 #, fuzzy
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 #, fuzzy
 #| msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "videregivelse af '%T' som 'this'-parameteren til '%#D' forkaster modifikationer"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "kan ikke klargøre '%T' fra %T'"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, fuzzy, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "kan ikke erklære feltet '%D' til at være af typen '%T'"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, fuzzy, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "kan ikke klargøre '%T' fra %T'"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 #, fuzzy
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "konvertering fra NaN til unsigned int"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr ""
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, fuzzy, gcc-internal-format
 #| msgid "cannot receive objects of non-POD type `%#T' through `...'"
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "kan ikke modtage objekter af en ikke-POD type '%#T' gennem '...'"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr ""
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of default argument for `%#D'"
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "omdefinering af standardparameter for '%#D'"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, fuzzy, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "standardparameter for parameter af typen '%T' har typen '%T'"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, fuzzy, gcc-internal-format
 #| msgid "Warn about functions which might be candidates for format attributes"
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "Advar om funktioner som kan være kandidater til formateringsegenskaber"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr ""
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, fuzzy, gcc-internal-format
 #| msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "videregivelse af '%T' som 'this'-parameteren til '%#D' forkaster modifikationer"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, fuzzy, gcc-internal-format
 #| msgid "  in call to `%D'"
 msgid "  in call to %qD"
 msgstr "  i kald af '%D'"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "'%T' er en utilgængelig stamklasse til '%T'"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to %s `%+#D'"
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "for mange parametre til %s '%+#D'"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type `%T'"
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "opretter henvisning til medlem af typen '%T' der ikke er en klasse"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use assignment or value-initialization instead"
 msgstr "tildeling (ikke klargøring) i erklæring"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 #| msgid "#include nested too deeply"
 msgid "; use assignment instead"
 msgstr "#include indlejret for dybt"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type `%T'"
 msgid "; use value-initialization instead"
 msgstr "ugyldig omtvingelse til funktionstypen '%T'"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type `%T'"
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "opretter henvisning til medlem af typen '%T' der ikke er en klasse"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "tildeling (ikke klargøring) i erklæring"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, fuzzy, gcc-internal-format
 #| msgid "#include nested too deeply"
 msgid "; use copy-assignment instead"
 msgstr "#include indlejret for dybt"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate initialization of %D"
 msgid "; use copy-initialization instead"
 msgstr "%D tildelt startværdi mere end én gang"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "%#qT declared here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, fuzzy, gcc-internal-format
 #| msgid "non-floating-point argument to function `%s'"
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "parameter der ikke er et kommatal, til funktionen '%s'"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructor delegates to itself"
 msgstr "konstruktionsfunktioner kan ikke erklæres virtual"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 #| msgid "cannot convert `%T' to `%T' in %s"
 msgid "cannot convert %qH to %qI"
 msgstr "kan ikke konvertere '%T' til '%T' i %s"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "ingen passende funktion for kald til '%T::%D(%A)%#V'"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "ingen passende funktion for kald til '%T::%D(%A)%#V'"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function `%D'"
 msgid "call to non-function %qD"
 msgstr "kald af ikke-funktion '%D'"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, fuzzy, gcc-internal-format
 #| msgid "cannot call destructor `%T::~%T' without object"
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "kan ikke kalde destruktionsfunktion '%T::~%T' uden objekt"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to `%D(%A)'"
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "ingen passende funktion for kald til '%D(%A)'"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, fuzzy, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "kald af flertydig '%D(%A)' er tvetydigt"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr ""
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "returning a value from a constructor"
 msgid "pure virtual %q#D called from constructor"
 msgstr "returnerer en værdi fra en konstruktionsfunktion"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, fuzzy, gcc-internal-format
 #| msgid "returning a value from a destructor"
 msgid "pure virtual %q#D called from destructor"
 msgstr "returnerer en værdi fra en destruktionsfunktion"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, fuzzy, gcc-internal-format
 #| msgid "cannot call member function `%D' without object"
 msgid "cannot call member function %qD without object"
 msgstr "kan ikke kalde medlemsfunktionen '%D' uden et objekt"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, fuzzy, gcc-internal-format
 #| msgid "passing `%T' chooses `%T' over `%T'"
 msgid "passing %qT chooses %qT over %qT"
 msgstr "videregivelse af '%T' vælger '%T' frem for '%T'"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, fuzzy, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "ifølge ISO C++ er '%D' og '%D' tvetydigt selvom den værste konvertering for førstnævnte er bedre end den værste konvertering for den sidstnævnte"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 #| msgid "destructors must be member functions"
 msgid "try making the operator a %<const%> member function"
 msgstr "destruktionsfunktioner skal være medlemmer"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, fuzzy, gcc-internal-format
 #| msgid "choosing `%D' over `%D'"
 msgid "choosing %qD over %qD"
 msgstr "vælger '%D' frem for '%D'"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 #| msgid "  for conversion from `%T' to `%T'"
 msgid "  for conversion from %qH to %qI"
 msgstr "  for konvertering fra '%T' til '%T'"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  fordi konverteringssekvensen for parameteren er bedre"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, fuzzy, gcc-internal-format
 #| msgid "default argument specified in explicit specialization"
 msgid "default argument mismatch in overload resolution"
 msgstr "standardparameter angivet i eksplicit specialisering"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, fuzzy, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr "candidate%s: %+#D"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, fuzzy, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr "candidate%s: %+#D"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ifølge ISO C++ er '%D' og '%D' tvetydigt selvom den værste konvertering for førstnævnte er bedre end den værste konvertering for den sidstnævnte"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 #, fuzzy
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "possibly dangling reference to a temporary"
 msgstr "returnerer reference til midlertidig variabel"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, fuzzy, gcc-internal-format
 #| msgid "%s: definition of function `%s' not converted\n"
 msgid "explicit conversion function was not considered"
@@ -56932,7 +56958,7 @@ msgstr "'%#D' og '%#D' kan ikke flertydiggøres"
 
 # hænger sammen med næste tekst
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration `%D'"
 msgid "previous declaration %q#D"
@@ -57413,7 +57439,7 @@ msgstr "fleksibelt tabelmedlem i ellers tom struktur"
 msgid "next member %q#D declared here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of `%#T'"
 msgid "redefinition of %q#T"
@@ -57563,7 +57589,7 @@ msgstr "ugyldig returtype for medlemsfunktionen '%#D'"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
@@ -57606,7 +57632,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -57625,7 +57651,7 @@ msgstr "tom erklæring"
 msgid "%q+E is not a constant expression"
 msgstr "Manglende eller ugyldigt konstant udtryk"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing `void *' pointer"
@@ -57649,7 +57675,7 @@ msgstr "brugerdefineret '%D' evaluerer altid begge parametre"
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function `%D'"
@@ -57701,7 +57727,7 @@ msgstr "'%T' er en tvetydig stamklasse til '%T'"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function `%D'"
@@ -57845,20 +57871,20 @@ msgstr "tabelindeks er ikke et heltal"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "tabelindeks er ikke et heltal"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member `%D'"
 msgid "accessing uninitialized array element"
 msgstr "manglende startværdi for medlemmet '%D'"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing `void *' pointer"
 msgid "dereferencing a null pointer in %qE"
 msgstr "forsøg på at følge en 'void *'-henvisning"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -57867,514 +57893,514 @@ msgstr "forsøg på at følge en 'void *'-henvisning"
 msgid "%qE is not a constant expression"
 msgstr "Manglende eller ugyldigt konstant udtryk"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member `%D'"
 msgid "accessing uninitialized member %qD"
 msgstr "manglende startværdi for medlemmet '%D'"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, fuzzy, gcc-internal-format
 #| msgid "Missing or invalid constant expression"
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "Manglende eller ugyldigt konstant udtryk"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, fuzzy, gcc-internal-format
 #| msgid "Missing or invalid constant expression"
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "Manglende eller ugyldigt konstant udtryk"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 #| msgid "nested functions not supported on this target"
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "-indlejrede funktioner er ikke understøttet på denne målarkitektur"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member `%D'"
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "manglende startværdi for medlemmet '%D'"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, fuzzy, gcc-internal-format
 #| msgid "Missing or invalid constant expression"
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "Manglende eller ugyldigt konstant udtryk"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "allocated here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%D' is not an integral constant-expression"
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%D' is not an integral constant-expression"
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, fuzzy, gcc-internal-format
 #| msgid "excess elements in union initializer"
 msgid "%qD used in its own initializer"
 msgstr "for mange elementer i union-startværdi"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function,"
 msgid "%q#D is not const"
 msgstr "'%s' er ikke en funktion,"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, fuzzy, gcc-internal-format
 #| msgid "`%+#D' is private"
 msgid "%q#D is volatile"
 msgstr "'%+#D' er privat"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, fuzzy, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' was not declared in this scope"
 msgid "%qD was not declared %<constexpr%>"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "størrelse i tabel-new skal være en heltalstype"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert `%T' to `%T' in %s"
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "kan ikke konvertere '%T' til '%T' i %s"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr "skabelonsinstantieringsdybden overskrider maksimum på %d (benyt -ftemplate-depth-NN for at forøge maksimum) ved instantiering af '%D'"
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not constant"
 msgid "inline assembly is not a constant expression"
 msgstr "startværdielement er ikke en konstant"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%D'"
 msgid "use of %qD"
 msgstr "ugyldig brug af '%D"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 #| msgid "Missing or invalid constant expression"
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "Manglende eller ugyldigt konstant udtryk"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr "skabelonsinstantieringsdybden overskrider maksimum på %d (benyt -ftemplate-depth-NN for at forøge maksimum) ved instantiering af '%D'"
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 #| msgid "enumeral and non-enumeral type in conditional expression"
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "enum- og ikke enum-type i betinget udtryk"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, fuzzy, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "pointed-to object declared here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%D' is not an integral constant-expression"
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "størrelsen af medlemmet '%D' er ikke konstant"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 #| msgid "Missing or invalid constant expression"
 msgid "%<goto%> is not a constant expression"
 msgstr "Manglende eller ugyldigt konstant udtryk"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr "uventet operand"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, fuzzy, gcc-internal-format
 msgid "function concept must be called"
 msgstr "den indbyggede funktion '%s' er erklæret som noget der ikke er en funktion"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "address of a call to %qs is not a constant expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, fuzzy, gcc-internal-format
 #| msgid "unexpected address expression"
 msgid "unexpected expression %qE of kind %s"
 msgstr "uventet adresseudtryk"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot resolve address of overloaded function"
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "%s kan ikke finde adressen af flertydiggjort funktion"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 #| msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "ugyldig reinterpret_cast af et højreværdiudtryk fra typen '%T' til typen '%T'"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, fuzzy, gcc-internal-format
 #| msgid "invalid reinterpret_cast from type `%T' to type `%T'"
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "ugyldig reinterpret_cast fra typen '%T' til typen '%T'"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "use of %<this%> in a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "new-expression is not a constant expression before C++20"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "en virtuel funktion kan ikke erklæres som friend"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, fuzzy, gcc-internal-format
 #| msgid "Missing or invalid constant expression"
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "Manglende eller ugyldigt konstant udtryk"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, fuzzy, gcc-internal-format
 #| msgid "field `%D' declared static in union"
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "feltet '%D' er erklæret statisk i union"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, fuzzy, gcc-internal-format
 #| msgid "field `%D' declared static in union"
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "feltet '%D' er erklæret statisk i union"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "division by zero is not a constant expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, fuzzy, gcc-internal-format
 #| msgid "nonconstant array index in initializer"
 msgid "non-constant array initialization"
 msgstr "tabelindekset i startværdien er ikke en konstant"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "unexpected type for `id' (%s)"
 msgid "unexpected AST of kind %s"
@@ -59171,7 +59197,7 @@ msgstr "en tredje parameter til '__builtin_prefetch' skal være en konstant"
 msgid "no suspend point info for %qD"
 msgstr "ingen tidligere prototype for '%s'"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -59194,23 +59220,23 @@ msgstr "henvisningsvariabler er ikke tilladt som case-værdier"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr "Advar når en variabel ikke benyttes"
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'"
@@ -59231,77 +59257,77 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "'%D' er ikke en medlemsskabelonfunktion"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor"
 msgid "taking address of an immediate function %qD"
 msgstr "tager adressen på en destruktionsfunktion"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "adressen af '%D' vil altid være 'true'"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be `%s'"
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "destruktionsfunktioner må ikke være '%s'"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `%D' applied to template instantiation"
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "lagringsklasse '%D' anvendt på skabelonsinstantiering"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qE attribute"
 msgid "pack expansion of %qE attribute"
 msgstr "ugyldig parameter for egenskaben %qE"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 #| msgid "Invalid expression statement"
 msgid "use fold expression in the attribute argument instead"
 msgstr "Ugyldig udtrykssætning"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a template"
 msgid "%qD is not a type"
 msgstr "'%T' er ikke en skabelon"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a class or union type"
 msgid "%qD is not a class type"
 msgstr "'%T' er ikke af en klasse- eller union-type"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%qD does not have %<const char *%> type"
 msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "størrelse i tabel-new skal være en heltalstype"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -59350,7 +59376,7 @@ msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'"
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "konvertering fra '%T' til '%T' forkaster modifikationer"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, fuzzy, gcc-internal-format
 #| msgid "casting `%T' to `%T' does not dereference pointer"
 msgid "casting %qT to %qT does not dereference pointer"
@@ -59786,7 +59812,7 @@ msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "erklæring af '%D' som %s"
 
 # hænger sammen med næste tekst
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration `%D'"
 msgid "previous declaration %qD"
@@ -59949,8 +59975,8 @@ msgstr "tidligere ikke-funktionserklæring '%#D'"
 msgid "%q#D previously defined here"
 msgstr "'%#D' tidligere defineret her"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 #| msgid "`%#D' previously declared here"
 msgid "%q#D previously declared here"
@@ -60038,58 +60064,40 @@ msgstr "standardparameter givet til %d. parameter for '%#D'"
 msgid "previous specification in %q#D here"
 msgstr "efter tidligere specifikation i '%#D'"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-#| msgid "conflicts with built-in declaration `%#D'"
-msgid "declaration %qD conflicts with builtin"
-msgstr "strider mod indbygget erklæring '%#D'"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-#| msgid "conflicts with built-in declaration `%#D'"
-msgid "declaration %qD conflicts with import"
-msgstr "strider mod indbygget erklæring '%#D'"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-#| msgid "  first declared as `%#D' here"
-msgid "import declared %q#D here"
-msgstr "  først erklæret som '%#D' her"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 msgid "conflicting exporting for declaration %qD"
 msgstr "modstridende erklæringer af '%s'"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' previously declared here"
 msgid "previously declared here without exporting"
 msgstr "'%s' tidligere erklæret her"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr "tidligere definition her"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "tidligere erklæring af '%#D' her"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 #| msgid "function `%D' declared virtual inside a union"
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "funktionen '%D' erklæret virtual inden i en union"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, fuzzy, gcc-internal-format
 #| msgid "redundant redeclaration of `%D' in same scope"
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "overflødig omerklæring af '%D' i samme virkefelt"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of `%s'"
 msgid "deleted definition of %qD is not first declaration"
@@ -60103,48 +60111,48 @@ msgstr "indlejret omdefinering af '%s'"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %D after first use"
 msgid "explicit specialization of %qD after first use"
 msgstr "eksplicit specialisering af %D efter første brug"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "dataområdet '%s' er i modstrid med tidligere erklæring"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of `%#T'"
 msgid "redefinition of %q#D"
 msgstr "omdefinering af '%#T'"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, fuzzy, gcc-internal-format
 #| msgid "`%#D' conflicts with previous using declaration `%#D'"
 msgid "%qD conflicts with used function"
 msgstr "'%#D' strider mod tidligere using-erklæring '%#D'"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' not declared"
 msgid "%q#D not declared in class"
 msgstr "'%D' ikke erklæret"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -60152,837 +60160,837 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr ""
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, fuzzy, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "trådlokal erklæring af '%s' følger ikke-trådlokal erklæring"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, fuzzy, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "ikke-trådlokal erklæring af '%s' følger trådlokal erklæring"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D'"
 msgid "redeclaration of %q#D"
 msgstr "omerklæring af '%#D'"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 #| msgid "redundant redeclaration of `%s' in same scope"
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "overflødig omerklæring af '%s' i samme virkefelt"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, fuzzy, gcc-internal-format
 #| msgid "a previous local"
 msgid "previous label"
 msgstr "en tidligere lokal variabel"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "spring til etiketten %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "spring til case-etiket"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  herfra"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr ""
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 #| msgid "  crosses initialization of `%#D'"
 msgid "  crosses initialization of %q#D"
 msgstr "  krydser klargøring af '%#D'"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, fuzzy, gcc-internal-format
 #| msgid "  enters try block"
 msgid "  enters %<try%> block"
 msgstr "  går ind i try-blok"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "  enters catch block"
 msgid "  enters %<catch%> block"
 msgstr "  går ind i catch-blok"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, fuzzy, gcc-internal-format
 #| msgid "  enters try block"
 msgid "  enters OpenMP structured block"
 msgstr "  går ind i try-blok"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "  enters statement expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, fuzzy, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr "uventet operand"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, fuzzy, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr "uventet operand"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "  does not destroy %qD"
 msgstr "%s understøtter ikke %s"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, fuzzy, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr "størrelse i tabel-new skal være en heltalstype"
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 #| msgid "  skips initialization of `%#D'"
 msgid "  skips initialization of %q#D"
 msgstr "  springer over klargøring af '%#D'"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' used without template parameters"
 msgid "%qD used without template arguments"
 msgstr "'%D' benyttet uden skabelonsparametre"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "'%D' er ikke en funktionsskabelon"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, fuzzy, gcc-internal-format
 #| msgid "`%#T' is not a template"
 msgid "%q#T is not a class"
 msgstr "'%#T' er ikke en skabelon"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, fuzzy, gcc-internal-format
 #| msgid "no class template named `%#T' in `%#T'"
 msgid "no class template named %q#T in %q#T"
 msgstr "ingen klasseskabelon ved navn '%#T' i '%#T'"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, fuzzy, gcc-internal-format
 #| msgid "no type named `%#T' in `%#T'"
 msgid "no type named %q#T in %q#T"
 msgstr "ingen type ved navn '%#T' i '%#T'"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, fuzzy, gcc-internal-format
 #| msgid "call of `(%T) (%A)' is ambiguous"
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "kald af '(%T) (%A)' er tvetydigt"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr ""
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 #| msgid "`%D::%D' is not a template"
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "'%D::%D' er ikke en skabelon"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters cannot be friends"
 msgid "template parameters do not match template %qD"
 msgstr "skabelonsparametre kan ikke være venner"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 #| msgid "-falign-labels=%d is not supported"
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "-falign-labels=%d understøttes ikke"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, fuzzy, gcc-internal-format
 #| msgid "`%#D' invalid; an anonymous union can only have non-static data members"
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "'%#D' er ugyldig; en anonym union kan kun have ikke-statiske datamedlemmer"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, fuzzy, gcc-internal-format
 #| msgid "-traditional is deprecated and may be removed"
 msgid "this flexibility is deprecated and will be removed"
 msgstr "-traditional er forældet og kan blive fjernet"
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous struct not inside named type"
 msgid "anonymous struct with base classes"
 msgstr "anonym struct er ikke inden i en navngiven type"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, fuzzy, gcc-internal-format
 #| msgid "member %#D' with constructor not allowed in anonymous aggregate"
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "medlemmet '%#D' med konstruktionsfunktion er ikke tilladt i anonym sammensat type"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, fuzzy, gcc-internal-format
 #| msgid "member %#D' with destructor not allowed in anonymous aggregate"
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "medlemmet '%#D' med destruktionsfunktion er ikke tilladt i anonym sammensat type"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, fuzzy, gcc-internal-format
 #| msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "medlemmet '%#D' med kopitildelingsoperator er ikke tilladt i anonym sammensat type"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 #| msgid "forward declaration of `%#T'"
 msgid "attribute ignored in declaration of %q#T"
 msgstr "forhåndserklæring af '%#T'"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr ""
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "flere typer i én erklæring"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of C++ built-in type `%T'"
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "omerklæring af indbygget type i C++ '%T'"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified for objects and functions"
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "'%D' kan kun angives for objekter og funktioner"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "manglende typenavn i typedef-erklæring"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO C++ forbyder anonyme strukturer"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified for functions"
 msgid "%<inline%> can only be specified for functions"
 msgstr "'%D' kan kun angives for funktioner"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified for functions"
 msgid "%<virtual%> can only be specified for functions"
 msgstr "'%D' kan kun angives for funktioner"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified inside a class"
 msgid "%<friend%> can only be specified inside a class"
 msgstr "'%D' kan kun angives inden i en klasse"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified for constructors"
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "'%D' kan kun angives for konstruktionsfunktioner"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified for objects and functions"
 msgid "a storage class can only be specified for objects and functions"
 msgstr "'%D' kan kun angives for objekter og funktioner"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified for objects and functions"
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "'%D' kan kun angives for objekter og funktioner"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified for objects and functions"
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "'%D' kan kun angives for objekter og funktioner"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified for objects and functions"
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "'%D' kan kun angives for objekter og funktioner"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified for objects and functions"
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "'%D' kan kun angives for objekter og funktioner"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, fuzzy, gcc-internal-format
 #| msgid "type defaults to `int' in declaration of `%s'"
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "typen antages at være 'int' i erklæringen af '%s'"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "tom erklæring"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter list used in explicit instantiation"
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "skabelonsparameterliste benyttet i eksplicit instantiering"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute can only be applied to class definitions"
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute can only be applied to class definitions"
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr ""
 
 # init dækker over værditildeling her - samme for de næste mange
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 #| msgid "typedef `%D' is initialized (use __typeof__ instead)"
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef '%D' bliver tildelt en værdi (benyt __typeof__ i stedet)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D' has `extern' and is initialized"
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "erklæringen af '%#D' indeholder 'extern' og variablen bliver tildelt en startværdi"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, fuzzy, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "'auto' er påhæftet funktionsdefinitionen"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "'%#D' er ikke et statisk medlem af '%#T'"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of `%#D'"
 msgid "non-member-template declaration of %qD"
 msgstr "skabelonserklæring af '%#D'"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 #| msgid "invalid member template declaration `%D'"
 msgid "does not match member template declaration here"
 msgstr "ugyldig medlemsskabelonerklæring '%D'"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO C++ tillader ikke '%T::%D' at blive defineret som '%T::%D'"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate initialization of %D"
 msgid "duplicate initialization of %qD"
 msgstr "%D tildelt startværdi mere end én gang"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D' outside of class is not definition"
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "erklæring af '%#D' uden for en klasse er ikke en definition"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, fuzzy, gcc-internal-format
 #| msgid "variable `%#D' has initializer but incomplete type"
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "variablen '%#D' bliver tildelt en startværdi, men er af en ufuldstændig type"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, fuzzy, gcc-internal-format
 #| msgid "elements of array `%#D' have incomplete type"
 msgid "elements of array %q#D have incomplete type"
 msgstr "elementer i tabellen '%#D' er af en ufuldstændig type"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, fuzzy, gcc-internal-format
 #| msgid "aggregate `%#D' has incomplete type and cannot be defined"
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "den sammensatte type '%#D' er af en ufuldstændig type og kan ikke defineres"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared as reference but not initialized"
 msgid "%qD declared as reference but not initialized"
 msgstr "'%D' erklæret som en reference, men bliver ikke tildelt en startværdi"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "ikke-trivielle udpegede startværdier er ikke understøttet"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%D' is not an integral constant-expression"
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "startværdien giver ikke størrelsen af %qD"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "tabelstørrelsen mangler i %qD"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "nulstørrelsestabel %qD"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "lagringsstørrelsen af %qD er ikke kendt"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, fuzzy, gcc-internal-format
 #| msgid "storage size of `%D' isn't constant"
 msgid "storage size of %qD isn%'t constant"
 msgstr "lagringsstørrelsen af '%D' er ikke konstant"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, fuzzy, gcc-internal-format
 #| msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "semantikken for indlejret funktionsstatisk data '%#D' er forkert (du ender med flere kopier)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, fuzzy, gcc-internal-format
 #| msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "semantikken for indlejret funktionsstatisk data '%#D' er forkert (du ender med flere kopier)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, fuzzy, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr "  du kan arbejde dig rundt om dette ved at fjerne startværdien"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized const `%D'"
 msgid "uninitialized %<const %D%>"
 msgstr "konstant '%D' uden startværdi"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, fuzzy, gcc-internal-format
 #| msgid "register variable `%s' used in nested function"
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "registervariabel '%s' benyttet i indlejret funktion"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, fuzzy, gcc-internal-format
 #| msgid "register variable `%s' used in nested function"
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "registervariabel '%s' benyttet i indlejret funktion"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "typen '%T' har ingen destruktionsfunktion"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr ""
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer for virtual method `%D'"
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "ugyldig startværdi til virtuel medlemsfunktion '%D'"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, fuzzy, gcc-internal-format
 #| msgid "initializer for `%T' must be brace-enclosed"
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "startværdi for '%T' skal være indesluttet i krøllede paranteser"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr ""
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, fuzzy, gcc-internal-format
 #| msgid "request for member `%D' is ambiguous"
 msgid "request for member %qD is ambiguous"
 msgstr "forespørgsel efter medlemmet '%D' er tvetydigt"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' has no non-static data member named `%D'"
 msgid "%qT has no non-static data member named %qD"
 msgstr "'%T' har intet ikke-statisk medlem ved navn '%D'"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a member of `%T'"
 msgid "%qD is not a direct member of %qT"
 msgstr "'%D' er ikke et medlem af '%T'"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer for %q#D"
 msgstr "ugyldig startværdi"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, fuzzy, gcc-internal-format
 #| msgid "excess elements in aggregate initializer"
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr "for mange elementer i startværdi til sammensat type"
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "for mange startværdier for %qT"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer for `%T'"
 msgid "braces around scalar initializer for type %qT"
 msgstr "krøllede paranteser omkring skalarstartværdi for '%T'"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer for `%T'"
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "krøllede paranteser omkring skalarstartværdi for '%T'"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, fuzzy, gcc-internal-format
 #| msgid "missing braces around initializer"
 msgid "missing braces around initializer for %qT"
 msgstr "krøllede paranteser mangler omkring startværdien"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing pointer to incomplete type"
 msgid "structured binding has incomplete type %qT"
 msgstr "forsøg på at følge en henvisning til en variabel af en ufuldstændig type"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, fuzzy, gcc-internal-format
 #| msgid "elements of array `%#D' have incomplete type"
 msgid "elements of array %q#T have incomplete type"
 msgstr "elementer i tabellen '%#D' er af en ufuldstændig type"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C89 forbids compound literals"
 msgid "variable-sized compound literal"
 msgstr "ISO C89 forbyder sammensatte konstanter"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' has incomplete type"
 msgid "%q#D has incomplete type"
 msgstr "'%D' er af en ufuldstændig type"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, fuzzy, gcc-internal-format
 #| msgid "excess elements in union initializer"
 msgid "scalar object %qD requires one element in initializer"
 msgstr "for mange elementer i union-startværdi"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must be initialized by constructor, not by `{...}'"
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "'%D' skal klargøres af en konstruktionsfunktion, ikke af '{...}'"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, fuzzy, gcc-internal-format
 #| msgid "_Pragma takes a parenthesized string literal"
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "_Pragma tager en strengkonstant med paranteser omkring"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "tildeling af startværdi er ugyldig for statisk medlem med konstruktionsfunktion"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "ISO C++ forbyder tildeling af startværdi i klasse til ikke-konstant statisk medlem '%D'"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "ISO C++ forbyder tildeling af startværdi i klasse til ikke-konstant statisk medlem '%D'"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(en klargøring uden for klassens erklæring er nødvendig)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 #| msgid "member `%D' with uninitialized const fields"
 msgid "reference %qD is initialized with itself"
 msgstr "medlem '%D' med konstante felter uden startværdi"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not at beginning of declaration"
 msgid "could not find variant declaration"
 msgstr "'%s' er ikke ved begyndelsen af erklæringen"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to %s `%+#D'"
 msgid "%<declare variant%> on constructor %qD"
 msgstr "for få parametre til %s '%+#D'"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr "using-erklæring for destruktionsfunktion"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "tildeling (ikke klargøring) i erklæring"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++17 tillader ikke %<register%>-lagerklasseangivelse"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for %s `%s'"
 msgid "%<register%> storage class specifier used"
 msgstr "lagringsklasse angivet for %s '%s'"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D' has `extern' and is initialized"
 msgid "declaration of %q#D has no initializer"
 msgstr "erklæringen af '%#D' indeholder 'extern' og variablen bliver tildelt en startværdi"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member (did you forget the `&' ?)"
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "ugyldig brug af medlem (glemte du en '&'?)"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 #| msgid "return type `%#T' is incomplete"
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "returtype '%#T' er ufuldstændig"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "variable concept has no initializer"
 msgstr "et objekt af variabel størrelse må ikke tildeles en startværdi"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, fuzzy, gcc-internal-format
 #| msgid "shadowing previous type declaration of `%#D'"
 msgid "shadowing previous type declaration of %q#D"
 msgstr "skygger for tidligere typeerklæring af '%#D'"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute only applies to variables"
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "egenskaben '%s' kan kun anvendes på variabler"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, fuzzy, gcc-internal-format
 #| msgid "function `%#D' is initialized like a variable"
 msgid "function %q#D is initialized like a variable"
 msgstr "funktionen '%#D' bliver tildelt en startværdi som en variabel"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, fuzzy, gcc-internal-format
 #| msgid "  cannot use obsolete binding at `%D' because it has a destructor"
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "  kan ikke bruge forældet binding til '%D' fordi den har en destruktionsfunktion"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type `%T'"
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "opretter henvisning til medlem af typen '%T' der ikke er en klasse"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing pointer to incomplete type"
 msgid "structured binding refers to incomplete type %qT"
 msgstr "forsøg på at følge en henvisning til en variabel af en ufuldstændig type"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 forbids variable-size array `%s'"
 msgid "cannot decompose variable length array %qT"
 msgstr "ISO C90 forbyder tabellen '%s' med variabel størrelse"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "storage class specified for structure field `%s'"
 msgid "%u name provided for structured binding"
@@ -60990,2030 +60998,2030 @@ msgid_plural "%u names provided for structured binding"
 msgstr[0] "lagringsklasse angivet for strukturfelt '%s'"
 msgstr[1] "lagringsklasse angivet for strukturfelt '%s'"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 forbids variable-size array `%s'"
 msgid "cannot decompose variable length vector %qT"
 msgstr "ISO C90 forbyder tabellen '%s' med variabel størrelse"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute `%s'"
 msgid "in initialization of structured binding variable %qD"
 msgstr "ugyldig vektortype for egenskaben '%s'"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare bit-field `%D' with function type"
 msgid "cannot decompose union type %qT"
 msgstr "kan ikke erklære bitfelt '%D' med funktionstype"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type `%T'"
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "opretter henvisning til medlem af typen '%T' der ikke er en klasse"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare bit-field `%D' with function type"
 msgid "cannot decompose lambda closure type %qT"
 msgstr "kan ikke erklære bitfelt '%D' med funktionstype"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing pointer to incomplete type"
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "forsøg på at følge en henvisning til en variabel af en ufuldstændig type"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "ugyldig brug af ikke-statisk felt '%D'"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr ""
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, fuzzy, gcc-internal-format
 #| msgid "initializer fails to determine size of `%D'"
 msgid "initializer fails to determine size of %qT"
 msgstr "startværdien giver ikke størrelsen af '%D'"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "array size missing in `%D'"
 msgid "array size missing in %qT"
 msgstr "tabelstørrelsen mangler i '%D'"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 #| msgid "zero-size array `%D'"
 msgid "zero-size array %qT"
 msgstr "nulstørrelsestabel '%D'"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, fuzzy, gcc-internal-format
 #| msgid "destructor for alien class `%T' cannot be a member"
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "destruktionsfunktionen for den fremmede klasse '%T' kan ikke være et medlem"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, fuzzy, gcc-internal-format
 #| msgid "constructor for alien class `%T' cannot be a member"
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "konstruktionsfunktionen for den fremmede klasse '%T' kan ikke være et medlem"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared as a `virtual' %s"
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "'%D' erklæret som 'virtual' %s"
 
 # %s bliver omsat til typen
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, fuzzy, gcc-internal-format
 #| msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "'const'- og 'volatile'-funktionsangivelser til '%D' er ugyldigt i erklæring af %s"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared as a `virtual' %s"
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "'%D' erklæret som 'virtual' %s"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "'%D' er erklæret som en ven"
 
 # %s bliver omsat til typen
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, fuzzy, gcc-internal-format
 #| msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "'const'- og 'volatile'-funktionsangivelser til '%D' er ugyldigt i erklæring af %s"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared as a `virtual' %s"
 msgid "%qD declared as a %<virtual%> type"
 msgstr "'%D' erklæret som 'virtual' %s"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared as an `inline' %s"
 msgid "%qD declared as an %<inline%> type"
 msgstr "'%D' erklæret som 'inline' %s"
 
 # %s bliver omsat til typen
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, fuzzy, gcc-internal-format
 #| msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "'const'- og 'volatile'-funktionsangivelser til '%D' er ugyldigt i erklæring af %s"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared as a `virtual' %s"
 msgid "%qD declared as a %<virtual%> field"
 msgstr "'%D' erklæret som 'virtual' %s"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared as an `inline' %s"
 msgid "%qD declared as an %<inline%> field"
 msgstr "'%D' erklæret som 'inline' %s"
 
 # %s bliver omsat til typen
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, fuzzy, gcc-internal-format
 #| msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "'const'- og 'volatile'-funktionsangivelser til '%D' er ugyldigt i erklæring af %s"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared as a friend"
 msgid "%q+D declared as a friend"
 msgstr "'%D' er erklæret som en ven"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared with an exception specification"
 msgid "%q+D declared with an exception specification"
 msgstr "'%D' erklæret med en undtagelsesspecifikation"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%D' not in a namespace surrounding `%D'"
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "erklæring af '%D' er ikke i et navnerum der omgiver '%D'"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, fuzzy, gcc-internal-format
 #| msgid "static member function `%#D' declared with type qualifiers"
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "statisk medlemsfunktion '%#D' erklæret med typemodifikationer"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "'%D' er erklæret som en ven"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 #| msgid "parameter `%D' declared void"
 msgid "concept %q#D declared with a deduced return type"
 msgstr "parameteren '%D' erklæret void"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, fuzzy, gcc-internal-format
 #| msgid "Java method '%D' has non-Java return type `%T'"
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "Java-metoden '%D' har har en returtype '%T' som ikke er fra Java"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 #| msgid "node is alias but not definition"
 msgid "concept %qD has no definition"
 msgstr "node er alias men ikke definition"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 #| msgid "function cannot be inline"
 msgid "a function concept cannot be constrained"
 msgstr "funktion kan ikke indbygges"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a member template function"
 msgid "constraints on a non-templated function"
 msgstr "'%D' er ikke en medlemsskabelonfunktion"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "friend-erklæringen er ikke i klassedefinitionen"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, fuzzy, gcc-internal-format
 #| msgid "defining explicit specialization `%D' in friend declaration"
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "definering af eksplicit specialisering '%D' i friend-erklæring"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of template-id `%D' in declaration of primary template"
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "ugyldig brug af skabelons-id '%D' i erklæring af primær skabelon"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, fuzzy, gcc-internal-format
 #| msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "standardparametre er ikke tilladt i erklæring af venneskabelonsspecialisering '%D'"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, fuzzy, gcc-internal-format
 #| msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "'inline' er ikke tilladt i erklæring venneskabelonsspecialisering '%D'"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D' outside of class is not definition"
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "erklæring af '%#D' uden for en klasse er ikke en definition"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "kan ikke erklære %<::main%> som en skabelon"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "kan ikke erklære %<::main%> som indlejret"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare `::main' to be static"
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "kan ikke erklære '::main' som statisk"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare `::main' to be static"
 msgid "cannot declare %<::main%> to be static"
 msgstr "kan ikke erklære '::main' som statisk"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function `%D' cannot have `%T' method qualifier"
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function `%D' cannot have `%T' method qualifier"
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function `%D' cannot have `%T' method qualifier"
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function `%D' cannot have `%T' method qualifier"
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function `%D' cannot have `%T' method qualifier"
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function `%D' cannot have `%T' method qualifier"
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type `%T' declared `friend'"
 msgid "explicit object parameter declared here"
 msgstr "skabelonsparametertypen '%T' erklæret 'friend'"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %D after instantiation"
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "specialisering af '%D' efter instantiering"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %D after instantiation"
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "specialisering af '%D' efter instantiering"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%D' as non-function"
 msgid "deduction guide %qD must not have a function body"
 msgstr "erklæring af '%D' som ikke-funktion"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, fuzzy, gcc-internal-format
 #| msgid "template with C linkage"
 msgid "literal operator with C linkage"
 msgstr "skabelon med C-kædning"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, fuzzy, gcc-internal-format
 #| msgid "#%s with invalid argument"
 msgid "%qD has invalid argument list"
 msgstr "#%s med ugyldig parameter"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must be a nonstatic member function"
 msgid "%qD must be a non-member function"
 msgstr "'%D' skal være en ikke-statisk medlemsfunktion"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, fuzzy, gcc-internal-format
 #| msgid "`main' must return `int'"
 msgid "%<::main%> must return %<int%>"
 msgstr "'main' skal returnere typen 'int'"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, fuzzy, gcc-internal-format
 #| msgid "definition of implicitly-declared `%D'"
 msgid "definition of implicitly-declared %qD"
 msgstr "definition af underforstået-erklæret '%D'"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, fuzzy, gcc-internal-format
 #| msgid "definition of implicitly-declared `%D'"
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "definition af underforstået-erklæret '%D'"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 #| msgid "`%#D' previously defined here"
 msgid "%q#D explicitly defaulted here"
 msgstr "'%#D' tidligere defineret her"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, fuzzy, gcc-internal-format
 #| msgid "no `%#D' member function declared in class `%T'"
 msgid "no %q#D member function declared in class %qT"
 msgstr "ingen medlemsfunktion '%#D' erklæret i klassen '%T'"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare `::main' to be a template"
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "kan ikke erklære '::main' som en skabelon"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be `%s'"
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "destruktionsfunktioner må ikke være '%s'"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %D after instantiation"
 msgid "concept must be defined at namespace scope"
 msgstr "specialisering af '%D' efter instantiering"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "a variable concept cannot be constrained"
 msgstr "et objekt af variabel størrelse må ikke tildeles en startværdi"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type `%T'"
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "ugyldig tildeling af startværdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type `%T'"
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "ugyldig tildeling af startværdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type `%T'"
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "ugyldig tildeling af startværdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type `%T'"
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "ugyldig tildeling af startværdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ forbyder tildeling af startværdi i klasse til ikke-konstant statisk medlem '%D'"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ forbyder tildeling af startværdi til medlemskonstant '%D' af en ikke-heltallig type"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, fuzzy, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "størrelsen af tabellen '%D' er ikke af en heltalstype"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, fuzzy, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "størrelsen af tabel er ikke af en heltalstype"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, fuzzy, gcc-internal-format
 #| msgid "size of array `%D' is not an integral constant-expression"
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids zero-size array `%D'"
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C++ forbyder tabellen '%D' med størrelsen nul"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ forbyder tabel med størrelsen nul"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids variable-size array `%D'"
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ forbyder tabellen '%D' med variabel størrelse"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids variable-size array"
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++ forbyder tabel med variabel størrelse"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr ""
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr ""
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "tabeldimension for stor"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared as a friend"
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "'%D' er erklæret som en ven"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member reference type `%T'"
 msgid "creating array of template placeholder type %qT"
 msgstr "opretter henvisning til medlemsreference af typen '%T'"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%s' as array of voids"
 msgid "declaration of %qD as array of void"
 msgstr "'%s' erklæret som en tabel af void"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of `%T'"
 msgid "creating array of void"
 msgstr "opretter tabel af '%T'"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%s' as array of functions"
 msgid "declaration of %qD as array of functions"
 msgstr "'%s' erklæret som en tabel af funktioner"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%s' as array of functions"
 msgid "creating array of functions"
 msgstr "'%s' erklæret som en tabel af funktioner"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%s' as array of functions"
 msgid "declaration of %qD as array of references"
 msgstr "'%s' erklæret som en tabel af funktioner"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of `%T'"
 msgid "creating array of references"
 msgstr "opretter tabel af '%T'"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%s' as array of functions"
 msgid "declaration of %qD as array of function members"
 msgstr "'%s' erklæret som en tabel af funktioner"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%s' as array of functions"
 msgid "creating array of function members"
 msgstr "'%s' erklæret som en tabel af funktioner"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "erklæring af '%D' som flerdimensional tabel skal have grænser for alle dimensioner pånær den første"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "flerdimensional tabel skal have grænser for alle dimensioner pånær den første"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 #| msgid "Warn when a variable is unused"
 msgid "variable-length array of %<auto%>"
 msgstr "Advar når en variabel ikke benyttes"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "angivelse af returneringstypen til konstruktionsfunktion er ugyldigt"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of `operator %T'"
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "angivelse af returneringstypen til destruktionsfunktion er ugyldigt"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of `operator %T'"
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, fuzzy, gcc-internal-format
 #| msgid "return type specified for `operator %T'"
 msgid "return type specified for %<operator %T%>"
 msgstr "returtype angivet for 'operator %T'"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of `operator %T'"
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 #| msgid "return type specification for destructor invalid"
 msgid "return type specified for deduction guide"
 msgstr "angivelse af returneringstypen til destruktionsfunktion er ugyldigt"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of `operator %T'"
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "modstridende erklæringer af '%s'"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "modstridende erklæringer af '%s'"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "unavngiven variabel eller felt erklæret void"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "variabel eller felt erklæret void"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `inline' invalid for function `%s' declared out of global scope"
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "lagringsklassen 'inline' er ugyldig for funktionen '%s' erklæret uden for det globale virkefelt"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member initializers only available with -std=c++11 or -std=gnu++11"
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "ikkestatisk datamedlemsstartværdier er kun tilgængelige med -std=c++11 eller -std=gnu++11"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, fuzzy, gcc-internal-format
 #| msgid "%s as integer rather than floating due to prototype"
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr "%s som heltal i stedet for kommatal på grund af prototypen"
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be `%s'"
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "destruktionsfunktioner må ikke være '%s'"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member `%D'"
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "ugyldig brug af medlemmet '%D'"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, fuzzy, gcc-internal-format
 #| msgid "invalid definition of qualified type `%T'"
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "ugyldig definition af modificeret type '%T'"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member `%D'"
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "ugyldig brug af medlemmet '%D'"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a class or namespace"
 msgid "%q#T is not a class or namespace"
 msgstr "'%T' er ikke en klasse eller et navnerum"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%D' as non-function"
 msgid "declaration of %qE as non-function"
 msgstr "erklæring af '%D' som ikke-funktion"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%D' as non-function"
 msgid "declaration of %qE as non-member"
 msgstr "erklæring af '%D' som ikke-funktion"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, fuzzy, gcc-internal-format
 #| msgid "declarator-id missing; using reserved word `%D'"
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "erklærer-id mangler; bruger reserveret ord '%D'"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, fuzzy, gcc-internal-format
 #| msgid "function definition declared `register'"
 msgid "function definition does not declare parameters"
 msgstr "'register' er påhæftet funktionsdefinitionen"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%D' as non-function"
 msgid "declaration of %qD as non-function"
 msgstr "erklæring af '%D' som ikke-funktion"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%D' as %s"
 msgid "declaration of %qD as %<typedef%>"
 msgstr "erklæring af '%D' som %s"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D' shadows a parameter"
 msgid "declaration of %qD as parameter"
 msgstr "erklæring af '%#D' skygger for en parameter"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, fuzzy, gcc-internal-format
 #| msgid "both long and short specified for `%s'"
 msgid "both %qs and %qs specified"
 msgstr "både long og short er angivet for '%s'"
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "navnerum '%D' ikke tilladt i using-erklæring"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, fuzzy, gcc-internal-format
 #| msgid "two or more data types in declaration of `%s'"
 msgid "two or more data types in declaration of %qs"
 msgstr "mere end én datatype i erklæringen af '%s'"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support plain `complex' meaning `double complex'"
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C understøtter ikke at blot 'complex' betyder 'double complex'"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids declaration of `%s' with no type"
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ forbyder erklæring af '%s' uden en type"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_trap not supported by this target"
 msgid "%<__int%d%> is not supported by this target"
 msgstr "__builtin_trap understøttes ikke på denne målarkitektur"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support `long long'"
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ understøtter ikke 'long long'"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 #| msgid "signed and unsigned given together for `%s'"
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "signed og unsigned er begge angivet for '%s'"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 #| msgid "long and short specified together for `%s'"
 msgid "%<long%> and %<short%> specified together"
 msgstr "long og short er begge angivet for '%s'"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 #| msgid "%s used with `%%%c' %s format"
 msgid "%qs specified with %qT"
 msgstr "%s brugt med '%%%c' %s-formatering"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, fuzzy, gcc-internal-format
 #| msgid "%s used with `%%%c' %s format"
 msgid "%qs specified with typedef-name %qD"
 msgstr "%s brugt med '%%%c' %s-formatering"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<decltype%>"
 msgid "%qs specified with %<decltype%>"
 msgstr "forventede %<decltype%>"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 #| msgid "%s used with `%%%c' %s format"
 msgid "%qs specified with %<typeof%>"
 msgstr "%s brugt med '%%%c' %s-formatering"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, fuzzy, gcc-internal-format
 #| msgid "complex invalid for `%s'"
 msgid "complex invalid for %qs"
 msgstr "complex ugyldig for '%s'"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 #| msgid "member `%D' cannot be declared both virtual and static"
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "medlemmet '%D' kan ikke afklæres både virtual og static"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "member `%D' cannot be declared both virtual and static"
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "medlemmet '%D' kan ikke afklæres både virtual og static"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "typedef-erklæringer er ugyldig i parametererklæringer"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for parameter `%s'"
 msgid "storage class specified for template parameter %qs"
 msgstr "lagringsklasse angivet for parameter '%s'"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for parameter `%s'"
 msgid "storage class specified for parameter %qs"
 msgstr "lagringsklasse angivet for parameter '%s'"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters cannot be friends"
 msgid "a parameter cannot be declared %qs"
 msgstr "skabelonsparametre kan ikke være venner"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, fuzzy, gcc-internal-format
 #| msgid "virtual outside class declaration"
 msgid "%<virtual%> outside class declaration"
 msgstr "virtual angivet uden for klasseerklæring"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 #| msgid "forward declaration of `%#T'"
 msgid "structured binding declaration cannot be %qs"
 msgstr "forhåndserklæring af '%#T'"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "konstruktionsfunktioner kan ikke erklæres virtual"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "Ugyldig erklæring"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, fuzzy, gcc-internal-format
 #| msgid "function `%s' cannot be declared `mutable'"
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr "funktionen '%s' kan ikke erklæres 'mutable'"
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 #| msgid "function `%D' cannot be declared friend"
 msgid "structured binding declaration cannot have type %qT"
 msgstr "funktionen '%D' kan ikke erklæres friend"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, fuzzy, gcc-internal-format
 #| msgid "function `%D' cannot be declared friend"
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr "funktionen '%D' kan ikke erklæres friend"
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, fuzzy, gcc-internal-format
 #| msgid "multiple storage classes in declaration of `%s'"
 msgid "multiple storage classes in declaration of %qs"
 msgstr "flere lagringsklasser optræder i erklæringen af '%s'"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for %s `%s'"
 msgid "storage class specified for %qs"
 msgstr "lagringsklasse angivet for %s '%s'"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, fuzzy, gcc-internal-format
 #| msgid "nested function `%s' declared `extern'"
 msgid "nested function %qs declared %<extern%>"
 msgstr "indlejret funktion '%s' er erklæret 'extern'"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, fuzzy, gcc-internal-format
 #| msgid "top-level declaration of `%s' specifies `auto'"
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "erklæring af '%s' på øverste niveau angiver 'auto'"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, fuzzy, gcc-internal-format
 #| msgid "function-scope `%s' implicitly auto and declared `__thread'"
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "'%s' i funktionsvirkefelt underforstået auto og erklæret '__thread'"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "lagringsklasseanvisninger er ugyldige i vennefunktionserklæringer"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute ignored"
 msgid "attribute ignored"
 msgstr "egenskaben '%s' ignoreret"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 #| msgid "multiple storage classes in declaration of `%s'"
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "flere lagringsklasser optræder i erklæringen af '%s'"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, fuzzy, gcc-internal-format
 msgid "remove parentheses"
 msgstr "uventet operand"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 #| msgid "function cannot be inline"
 msgid "a function type cannot have an explicit object parameter"
 msgstr "funktion kan ikke indbygges"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr "en virtuel funktion kan ikke erklæres som friend"
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' is not a valid template argument"
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "'%E' er ikke en gyldig skabelonsparameter"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr ""
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type `%T' declared `friend'"
 msgid "valid explicit object parameter declared here"
 msgstr "skabelonsparametertypen '%T' erklæret 'friend'"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute requires an integer constant argument"
 msgid "requires-clause on return type"
 msgstr "egenskaben '%s' kræver en heltalskonstant som parameter"
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member initializers only available with -std=c++11 or -std=gnu++11"
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "ikkestatisk datamedlemsstartværdier er kun tilgængelige med -std=c++11 eller -std=gnu++11"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual function cannot have deduced return type"
 msgstr "en virtuel funktion kan ikke erklæres som friend"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%D'"
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "ugyldig brug af '%D"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "deduced class type %qD in function return type"
 msgstr "typemodifikationer ignoreret i funktionsreturtypen"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "deduction guide for %qT must have trailing return type"
 msgstr "en virtuel funktion kan ikke erklæres som friend"
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member initializers only available with -std=c++11 or -std=gnu++11"
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "ikkestatisk datamedlemsstartværdier er kun tilgængelige med -std=c++11 eller -std=gnu++11"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "a conversion function cannot have a trailing return type"
 msgstr "en virtuel funktion kan ikke erklæres som friend"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' declared as function returning a function"
 msgid "%qs declared as function returning a function"
 msgstr "'%s' er erklæret som en funktion der returnerer en funktion"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' declared as function returning an array"
 msgid "%qs declared as function returning an array"
 msgstr "'%s' er erklæret som en funktion der returnerer en tabel"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr ""
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "destruktionsfunktionen kan ikke være en statisk medlemsfunktion"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "konstruktionsfunktionen kan ikke være en statisk medlemsfunktion"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be `%s'"
 msgid "destructors may not be cv-qualified"
 msgstr "destruktionsfunktioner må ikke være '%s'"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, fuzzy, gcc-internal-format
 #| msgid "constructors may not be `%s'"
 msgid "constructors may not be cv-qualified"
 msgstr "konstruktionsfunktioner må ikke være '%s'"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be `%s'"
 msgid "destructors may not be ref-qualified"
 msgstr "destruktionsfunktioner må ikke være '%s'"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be `%s'"
 msgid "constructors may not be ref-qualified"
 msgstr "destruktionsfunktioner må ikke være '%s'"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "konstruktionsfunktioner kan ikke erklæres virtual"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "en virtuel funktion kan ikke erklæres som friend"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "friend-erklæringen er ikke i klassedefinitionen"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 #| msgid "can't define friend function `%s' in a local class definition"
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "kan ikke definere vennefunktion '%s' i en lokal klassedefinition"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function `%D' cannot have `%T' method qualifier"
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function `%D' cannot have `%T' method qualifier"
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "an explicit object member function cannot be %<static%>"
 msgstr "konstruktionsfunktioner kan ikke erklæres virtual"
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must be a nonstatic member function"
 msgid "%qD cannot be an explicit object member function"
 msgstr "'%D' skal være en ikke-statisk medlemsfunktion"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "destruktionsfunktioner må ikke have parametre"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to `%#T'"
 msgid "cannot declare pointer to %q#T"
 msgstr "kan ikke erklære henvisning til '%#T'"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to `%#T'"
 msgid "cannot declare reference to %q#T"
 msgstr "kan ikke erklære reference til '%#T'"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to `%#T' member"
 msgid "cannot declare pointer to %q#T member"
 msgstr "kan ikke erklære henvisning til medlemmet '%#T'"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare references to references"
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "kan ikke erklære referencer til referencer"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare bit-field `%D' with function type"
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "kan ikke erklære bitfelt '%D' med funktionstype"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr ""
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, fuzzy, gcc-internal-format
 #| msgid "template-id `%D' used as a declarator"
 msgid "template-id %qD used as a declarator"
 msgstr "skabelons-id '%D' benyttet som erklærer"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "medlemsfunktioner er underforstået venner af deres klasse"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, fuzzy, gcc-internal-format
 #| msgid "extra qualification `%T::' on member `%s' ignored"
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "ekstra modifikation '%T::' af medlemmet '%s' ignoreret"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare member function `%T::%s' within `%T'"
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "kan ikke erklære medlemsfunktion '%T::%s' inde i '%T'"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare member function `%T::%s' within `%T'"
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "kan ikke erklære medlemsfunktion '%T::%s' inde i '%T'"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare member `%T::%s' within `%T'"
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "kan ikke erklære medlem '%T::%s' inde i '%T'"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, fuzzy, gcc-internal-format
 #| msgid "data member `%D' cannot be a member template"
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "datamedlem '%D' kan ikke være en medlemsskabelon"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, fuzzy, gcc-internal-format
 #| msgid "data member may not have variably modified type `%T'"
 msgid "data member may not have variably modified type %qT"
 msgstr "datamedlem må ikke have variabelt ændret type '%T'"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, fuzzy, gcc-internal-format
 #| msgid "parameter may not have variably modified type `%T'"
 msgid "parameter may not have variably modified type %qT"
 msgstr "parameter må ikke have variabelt ændret type '%T'"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 #| msgid "virtual outside class declaration"
 msgid "%<explicit%> outside class declaration"
 msgstr "virtual angivet uden for klasseerklæring"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 #| msgid "defining explicit specialization `%D' in friend declaration"
 msgid "%<explicit%> in friend declaration"
 msgstr "definering af eksplicit specialisering '%D' i friend-erklæring"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, fuzzy, gcc-internal-format
 #| msgid "only declarations of constructors can be `explicit'"
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "kun erklæringer af konstruktionsfunktioner kan være 'explicit'"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, fuzzy, gcc-internal-format
 #| msgid "non-member `%s' cannot be declared `mutable'"
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "'%s' som ikke er medlem, kan ikke erklæres 'mutable'"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, fuzzy, gcc-internal-format
 #| msgid "non-object member `%s' cannot be declared `mutable'"
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "'%s' som ikke er objektmedlem, kan ikke erklæres 'mutable'"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, fuzzy, gcc-internal-format
 #| msgid "function `%s' cannot be declared `mutable'"
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "funktionen '%s' kan ikke erklæres 'mutable'"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "static `%s' cannot be declared `mutable'"
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "static '%s' kan ikke erklæres 'mutable'"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "const `%s' cannot be declared `mutable'"
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "const '%s' kan ikke erklæres 'mutable'"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "referencen %qs kan ikke erklæres %<mutable%>"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr "new kan ikke bruges på en referencetype"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr "new kan ikke bruges på en referencetype"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not at beginning of declaration"
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "'%s' er ikke ved begyndelsen af erklæringen"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "typedef erklæret %<auto%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "typedef-navn kan ikke være en indlejret-navn-specifikation"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ISO C++ forbyder indlejret type %qD med samme navn som den omgivende klasse"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "%<inline%> angivet for friend class-erklæring"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "skabelonsparametre kan ikke være venner"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "friend-erklæring kræver klasseangivelse, dvs. %<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "friend-erklæring kræver klasseangivelse, dvs. %<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "forsøg på at gøre klassen %qT til ven af det globale virkningsfelt"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "ugyldige modifikationer for ikke-medlemsfunktionstype"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, fuzzy, gcc-internal-format
 #| msgid "abstract declarator `%T' used as declaration"
 msgid "abstract declarator %qT used as declaration"
 msgstr "abstrakt erklærer '%T' benyttet som erklæring"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type `%T'"
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "ugyldig omtvingelse til funktionstypen '%T'"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, fuzzy, gcc-internal-format
 #| msgid "cannot use `::' in parameter declaration"
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "kan ikke bruge '::' i parametererklæring"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter `%D' to be of type `%T'"
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "kan ikke erklære parameteren '%D' til at være af typen '%T'"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, fuzzy, gcc-internal-format
 #| msgid "parameter `%D' declared void"
 msgid "parameter declared %<auto%>"
 msgstr "parameteren '%D' erklæret void"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of template-name '%E' in a declarator"
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "ugyldig brug af skabelonsnavn '%E' i erklæring"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' has no non-static data member named `%D'"
 msgid "non-static data member declared with placeholder %qT"
 msgstr "'%T' har intet ikke-statisk medlem ved navn '%D'"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C90 understøtter ikke fleksible tabelmedlemmer"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C90 understøtter ikke fleksible tabelmedlemmer"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `::'"
 msgid "invalid use of %<::%>"
 msgstr "ugyldig brug af '::'"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of C function `%#D' conflicts with"
 msgid "declaration of function %qD in invalid context"
 msgstr "erklæring af C-funktionen '%#D' strider mod"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 #| msgid "function `%D' declared virtual inside a union"
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "funktionen '%D' erklæret virtual inden i en union"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' cannot be declared virtual, since it is always static"
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "'%D' kan ikke erklæres virtual eftersom den altid er statisk"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of `operator %T'"
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%s' shadows a member of `this'"
 msgid "declaration of %qD as member of %qT"
 msgstr "erklæring af '%s' skygger for et medlem af 'this'"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be `%s'"
 msgid "a destructor cannot be %qs"
 msgstr "destruktionsfunktioner må ikke være '%s'"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of `operator %T'"
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be `%s'"
 msgid "a constructor cannot be %<concept%>"
 msgstr "destruktionsfunktioner må ikke være '%s'"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "a concept cannot be a member function"
 msgstr "konstruktionsfunktionen kan ikke være en statisk medlemsfunktion"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be %qs"
 msgstr "kan ikke åbne %s"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of implicitly-declared special member function"
 msgid "specialization of variable template %qD declared as function"
 msgstr "specialisering af underforstået erklæret speciel medlemsfunktion"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 #| msgid "variable or field declared void"
 msgid "variable template declared here"
 msgstr "variabel eller felt erklæret void"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 #| msgid "field `%D' has incomplete type"
 msgid "field %qD has incomplete type %qT"
 msgstr "feltet '%D' er af en ufuldstændig type"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, fuzzy, gcc-internal-format
 #| msgid "name `%T' has incomplete type"
 msgid "name %qT has incomplete type"
 msgstr "navnet '%T' er af en ufuldstændig type"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is neither function nor member function; cannot be declared friend"
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "'%s' er hverken en almindelig funktion eller en medlemsfunktion; kan ikke erklæres som friend"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is neither function nor member function; cannot be declared friend"
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "'%s' er hverken en almindelig funktion eller en medlemsfunktion; kan ikke erklæres som friend"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 #| msgid "static member `%D' declared `register'"
 msgid "static data member %qE declared %qs"
 msgstr "statisk medlem '%D' erklæret 'register'"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type `%T'"
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "ugyldig tildeling af startværdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 #| msgid "static member `%D' declared `register'"
 msgid "non-static data member %qE declared %qs"
 msgstr "statisk medlem '%D' erklæret 'register'"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `auto' invalid for function `%s'"
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "lagringsklassen 'auto' er ugyldig for funktionen '%s'"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `register' invalid for function `%s'"
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "lagringsklassen 'register' er ugyldig for funktionen '%s'"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `__thread' invalid for function `%s'"
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "lagringsklassen '__thread' er ugyldig for funktionen '%s'"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `__thread' invalid for function `%s'"
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "lagringsklassen '__thread' er ugyldig for funktionen '%s'"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' can only be specified for functions"
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "'%D' kan kun angives for funktioner"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, fuzzy, gcc-internal-format
 #| msgid "type specifier `%s' not allowed after struct or class"
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "typeangivelsen '%s' er ikke tilladt efter struct eller class"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `inline' invalid for function `%s' declared out of global scope"
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "lagringsklassen 'inline' er ugyldig for funktionen '%s' erklæret uden for det globale virkefelt"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `inline' invalid for function `%s' declared out of global scope"
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "lagringsklassen 'inline' er ugyldig for funktionen '%s' erklæret uden for det globale virkefelt"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, fuzzy, gcc-internal-format
 #| msgid "virtual non-class function `%s'"
 msgid "virtual non-class function %qs"
 msgstr "virtuel funktion '%s' tilhører ikke en klasse"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, fuzzy, gcc-internal-format
 #| msgid "method definition not in class context"
 msgid "%qs defined in a non-class scope"
 msgstr "metodedefinitionen optræder ikke i en klassekontekst"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration for non-member at class scope"
 msgid "%qs declared in a non-class scope"
 msgstr "using-erklæring for ikke-medlem ved klassevirkefelt"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare member function `%D' to have static linkage"
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "kan ikke erklære medlemsfunktion '%D' til at have statisk kædning"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "kan ikke erklære en funktion for static inden i en anden funktion"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, fuzzy, gcc-internal-format
 #| msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "'static' må ikke bruges ved definering (i modsætning til erklæring) af et statisk datamedlem"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, fuzzy, gcc-internal-format
 #| msgid "static member `%D' declared `register'"
 msgid "static member %qD declared %<register%>"
 msgstr "statisk medlem '%D' erklæret 'register'"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, fuzzy, gcc-internal-format
 #| msgid "cannot explicitly declare member `%#D' to have extern linkage"
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "kan ikke eksplicit erklære medlemmet '%#D' til at have extern-kædning"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D' outside of class is not definition"
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "erklæring af '%#D' uden for en klasse er ikke en definition"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters cannot be friends"
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "skabelonsparametre kan ikke være venner"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' initialized and declared `extern'"
 msgid "%qs initialized and declared %<extern%>"
 msgstr "'%s' bliver tildelt en startværdi og er samtidig erklæret 'extern'"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' has both `extern' and initializer"
 msgid "%qs has both %<extern%> and initializer"
 msgstr "'%s' er erklæret 'extern', men bliver tildelt en startværdi"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 #| msgid "default argument `%E' uses local variable `%D'"
 msgid "default argument %qE uses %qD"
 msgstr "standardparameter '%E' bruger lokal variabel '%D'"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, fuzzy, gcc-internal-format
 #| msgid "default argument `%E' uses local variable `%D'"
 msgid "default argument %qE uses local variable %qD"
 msgstr "standardparameter '%E' bruger lokal variabel '%D'"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `virtual' in template declaration of `%#D'"
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "ugyldig brug af 'virtual' i skabelonserklæring af '%#D'"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of template-name '%E' in a declarator"
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "ugyldig brug af skabelonsnavn '%E' i erklæring"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter type `%T'"
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "ugyldig parametertype '%T'"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, fuzzy, gcc-internal-format
 #| msgid "parameter `%D' invalidly declared method type"
 msgid "parameter %qD invalidly declared method type"
 msgstr "parameteren '%D' er på ugyldig vis erklæret som af en medlemsfunktionstype"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, fuzzy, gcc-internal-format
 #| msgid "parameter `%D' includes %s to array of unknown bound `%T'"
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "parameteren '%D' inkluderer %s til tabel med ukendt grænse '%T'"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, fuzzy, gcc-internal-format
 #| msgid "parameter `%D' includes %s to array of unknown bound `%T'"
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "parameteren '%D' inkluderer %s til tabel med ukendt grænse '%T'"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, fuzzy, gcc-internal-format
 #| msgid "invalid constructor; you probably meant `%T (const %T&)'"
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "ugyldig konstruktionsfunktion; du mente sandsynligvis '%T (const %T&)'"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' was not declared in this scope"
 msgid "%qD may not be declared within a namespace"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, fuzzy, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "'%#D' kan ikke erklæres"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must be a nonstatic member function"
 msgid "%qD must be a non-static member function"
 msgstr "'%D' skal være en ikke-statisk medlemsfunktion"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must be a nonstatic member function"
 msgid "%qD must be a member function"
 msgstr "'%D' skal være en ikke-statisk medlemsfunktion"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member initializers only available with -std=c++11 or -std=gnu++11"
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "ikkestatisk datamedlemsstartværdier er kun tilgængelige med -std=c++11 eller -std=gnu++11"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must be either a non-static member function or a non-member function"
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "'%D' skal enten være en ikke-statisk medlemsfunktion eller ikke en medlemsfunktion"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must have an argument of class or enumerated type"
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "'%D' skal have en parameter af en klasse- eller enum-type"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ prohibits overloading operator ?:"
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ forbyder flertydiggørelse af operatoren ?:"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must take either one or two arguments"
 msgid "%qD must not have variable number of arguments"
 msgstr "'%D' skal tage mod én eller to parametre"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must take either zero or one argument"
 msgid "%qD must have either zero or one argument"
 msgstr "'%D' skal tage mod nul eller én parameter"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must take either one or two arguments"
 msgid "%qD must have either one or two arguments"
 msgstr "'%D' skal tage mod én eller to parametre"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "postfix `%D' must take `int' as its argument"
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "postfiks '%D' skal tage mod 'int' som parameter"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 #| msgid "postfix `%D' must take `int' as its second argument"
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "postfiks '%D' skal tage mod 'int' som den anden parameter"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must take exactly two arguments"
 msgid "%qD must have no arguments"
 msgstr "'%s' skal tage mod to parametre"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must take exactly one argument"
 msgid "%qD must have exactly one argument"
 msgstr "'%s' skal tage mod én parameter"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' must take exactly two arguments"
 msgid "%qD must have exactly two arguments"
 msgstr "'%s' skal tage mod to parametre"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' cannot have default arguments"
 msgid "%qD cannot have default arguments"
 msgstr "'%D' kan ikke have standardparametre"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "konvertering til %s%s vil aldrig bruge en typekonverteringsoperator"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "konvertering til %s%s vil aldrig bruge en typekonverteringsoperator"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "konvertering til %s%s vil aldrig bruge en typekonverteringsoperator"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "konvertering til %s%s vil aldrig bruge en typekonverteringsoperator"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "konvertering til %s%s vil aldrig bruge en typekonverteringsoperator"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, fuzzy, gcc-internal-format
 #| msgid "user-defined `%D' always evaluates both arguments"
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "brugerdefineret '%D' evaluerer altid begge parametre"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, fuzzy, gcc-internal-format
 #| msgid "prefix `%D' should return `%T'"
 msgid "prefix %qD should return %qT"
 msgstr "præfiks '%D' skal returnere '%T'"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, fuzzy, gcc-internal-format
 #| msgid "postfix `%D' should return `%T'"
 msgid "postfix %qD should return %qT"
 msgstr "postfiks '%D' skal returnere '%T'"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' should return by value"
 msgid "%qD should return by value"
 msgstr "'%D' skal returnere pr. værdi (ikke reference)"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, fuzzy, gcc-internal-format
 #| msgid "using template type parameter `%T' after `%s'"
 msgid "using template type parameter %qT after %qs"
 msgstr "bruger skabelonstypeparameter '%D' efter '%s'"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous template specialization `%D' for `%+D'"
 msgid "using alias template specialization %qT after %qs"
 msgstr "tvetydig skabelonsspecialisering '%D' for '%+D'"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, fuzzy, gcc-internal-format
 #| msgid "using typedef-name `%D' after `%s'"
 msgid "using typedef-name %qD after %qs"
 msgstr "bruger typedef-navn '%D' efter '%s'"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, fuzzy, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "tidligere erklæring som '%#D'"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, fuzzy, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "'%#D' omerklæret som %C"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "dette er en tidligere erklæring"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, fuzzy, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "'%#D' omerklæret som %C"
@@ -63025,127 +63033,109 @@ msgstr "'%#D' omerklæret som %C"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, fuzzy, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "skabelonsparameter er påkrævet for '%T'"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, fuzzy, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "brug af '%D' er tvetydigt"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 msgid "class template %qD redeclared as non-template"
 msgstr "ikke-skabelon benyttet som skabelon"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr ""
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a template"
 msgid "%qT is not a template"
 msgstr "'%T' er ikke en skabelon"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, fuzzy, gcc-internal-format
 #| msgid "use of enum `%#D' without previous declaration"
 msgid "use of enum %q#D without previous declaration"
 msgstr "brug af enum '%#D' uden tidligere erklæring"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration `%#D' declares a non-template function"
 msgid "redeclaration of %qT as a non-template"
 msgstr "friend-erklæring '%#D' erklærer en ikke-skabelonsfunktion"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare `%D' to be a bit-field type"
-msgid "cannot declare %qD in a different module"
-msgstr "kan ikke erklære '%D' til at være en bitfeltstype"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, fuzzy, gcc-internal-format
-#| msgid "`%s' previously declared here"
-msgid "previously declared here"
-msgstr "'%s' tidligere erklæret her"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, fuzzy, gcc-internal-format
 #| msgid "derived union `%T' invalid"
 msgid "derived union %qT invalid"
 msgstr "nedarvet union '%T' ugyldig"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is already defined in the class %T"
 msgid "%qT defined with multiple direct bases"
 msgstr "'%D' er allerede defineret i klassen '%T'"
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, fuzzy, gcc-internal-format
 #| msgid "type `%D' is not a direct or virtual base of `%T'"
 msgid "%qT defined with direct virtual base"
 msgstr "typen '%D' er ikke en direkte eller en virtuel stamklasse til '%T'"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, fuzzy, gcc-internal-format
 #| msgid "base type `%T' fails to be a struct or class type"
 msgid "base type %qT fails to be a struct or class type"
 msgstr "stamklassetype '%T' er hverken en struct- eller class-type"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, fuzzy, gcc-internal-format
 #| msgid "recursive type `%T' undefined"
 msgid "recursive type %qT undefined"
 msgstr "rekursiv type '%T' ikke defineret"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate base type `%T' invalid"
 msgid "duplicate base type %qT invalid"
 msgstr "stamklassetype '%T' optræder mere end én gang"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %s to references"
-msgid "cannot declare %qD in different module"
-msgstr "kan ikke erklære %s til referencer"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, fuzzy, gcc-internal-format
 msgid "previous definition here"
 msgstr "tidligere definition her"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 #| msgid "argument 3 of `%s' must be a 2-bit literal"
 msgid "underlying type %qT of %qT must be an integral type"
@@ -63155,93 +63145,93 @@ msgstr "parameter til '%s' skal være en 2 bit-konstant"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr ""
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for `%s' not integer constant"
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for `%s' not integer constant"
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "enum-værdien for '%s' er ikke en heltalskonstant"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr ""
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of `int'"
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "ISO C begrænser enum-værdier til rækkevidden af 'int'"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in enumeration values at `%D'"
 msgid "overflow in enumeration values at %qD"
 msgstr "enum-værdier for store ved '%D'"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "array subscript is not an integer"
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "tabelindeks er ikke et heltal"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "flere definitioner af %q#T"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, fuzzy, gcc-internal-format
 #| msgid "return type `%#T' is incomplete"
 msgid "return type %q#T is incomplete"
 msgstr "returtype '%#T' er ufuldstændig"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, fuzzy, gcc-internal-format
 #| msgid "`operator=' should return a reference to `*this'"
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "'operator=' bør returnere en reference til '*this'"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statements in function returning %qT"
 msgstr "ingen return-sætning i en funktion der ikke returnerer void"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr ""
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "ingen return-sætning i en funktion der ikke returnerer void"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is already defined in class `%T'"
 msgid "%qD is already defined in class %qT"
 msgstr "'%D' er allerede defineret i klassen '%T'"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 #| msgid "error closing %s: %m"
 msgid "using %qs"
 msgstr "fejl ved lukning af %s: %m"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr ""
@@ -63301,7 +63291,7 @@ msgstr "kan ikke udføre delete på en funktion; kun henvisninger til objekter e
 msgid "deleting %qT is undefined"
 msgstr "benyttelse af delete på '%T' er ikke defineret"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of `%#D'"
 msgid "template declaration of %q#D"
@@ -63313,7 +63303,7 @@ msgstr "skabelonserklæring af '%#D'"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, fuzzy, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "datamedlem '%D' kan ikke være en medlemsskabelon"
@@ -63525,65 +63515,65 @@ msgstr "destruktionsfunktioner skal være medlemmer"
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "den første parameter til 'operator delete' skal være af typen '%T'"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr ""
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr ""
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "%J'%F' declared `static' but never defined"
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%J'%F' erklæret 'static', men aldrig defineret"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 #| msgid "%J'%F' declared `static' but never defined"
 msgid "%q#D, declared using an unnamed type, is used but not defined"
@@ -63593,118 +63583,118 @@ msgstr "%J'%F' erklæret 'static', men aldrig defineret"
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of `%#D' with %L linkage"
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "tidligere erklæring af '%#D' med %L-kædning"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of `%#D' with %L linkage"
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "tidligere erklæring af '%#D' med %L-kædning"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, fuzzy, gcc-internal-format
 #| msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "'%#D' refererer ikke til den ikkemodificerede type, so den bruges ikke til sammenkædning"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, fuzzy, gcc-internal-format
 #| msgid "%J'%F' declared `static' but never defined"
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%J'%F' erklæret 'static', men aldrig defineret"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 #| msgid "%J'%F' declared `static' but never defined"
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%J'%F' erklæret 'static', men aldrig defineret"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of `%#D' with %L linkage"
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "tidligere erklæring af '%#D' med %L-kædning"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "strider mod tidligere erklæring '%#D'"
 
 # hænger sammen med næste tekst
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration `%D'"
 msgid "previous mangling %q#D"
 msgstr "tidligere erklæring '%D'"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 #| msgid "inline function `%D' used but never defined"
 msgid "inline function %qD used but never defined"
 msgstr "indbygget funktion '%D' benyttet, men aldrig defineret"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 #| msgid "default argument missing for parameter %P of `%+#D'"
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "standardparameter mangler for parameter %P  i '%+#D'"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' cannot have default arguments"
 msgid "...following parameter %P which has a default argument"
 msgstr "'%D' kan ikke have standardparametre"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 #| msgid "class %qE is deprecated"
 msgid "implicitly-declared %qD is deprecated"
 msgstr "klassen %qE er forældet"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, fuzzy, gcc-internal-format
 #| msgid "converting NULL to non-pointer type"
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "konverterer NULL til en ikke-henvisningstype"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, fuzzy, gcc-internal-format
 #| msgid "sizeof applied to a function type"
 msgid "use of deleted function %qD"
 msgstr "sizeof benyttet på en funktionstype"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "'%#D' omerklæret som en anden form for symbol"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, fuzzy, gcc-internal-format
 #| msgid "use of template qualifier outside template"
 msgid "use of built-in parameter pack %qD outside of a template"
@@ -63827,7 +63817,7 @@ msgstr "brug af '%D' er tvetydigt"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "'%D' har intet medlem ved navn '%E'"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a member of `%T'"
 msgid "%qD is not a member of %qT"
@@ -63839,7 +63829,7 @@ msgstr "'%D' er ikke et medlem af '%T'"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "'%D' har intet medlem ved navn '%E'"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "'%D' er ikke et medlem af '%T'"
@@ -63865,53 +63855,53 @@ msgstr "håndtering af undtagelser er slået fra, angiv -fexceptions for at slå
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "kaster NULL som har en heltals-, ikke en henvisningstype"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  i kastet udtryk"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter `%D' to be of type `%T'"
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "kan ikke erklære parameteren '%D' til at være af typen '%T'"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create type information for type `%T' because its size is variable"
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "kan ikke oprette typeinformation for typen '%T' fordi dens størrelse er variabel"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create type information for type `%T' because its size is variable"
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "kan ikke oprette typeinformation for typen '%T' fordi dens størrelse er variabel"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, fuzzy, gcc-internal-format
 #| msgid "exception of type `%T' will be caught"
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "undtagelse af typen '%T' vil blive fanget"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, fuzzy, gcc-internal-format
 #| msgid "operand is r0"
 msgid "for type %qT"
 msgstr "operanden er r0"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, fuzzy, gcc-internal-format
 #| msgid "`...' handler must be the last handler for its try block"
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "håndteringen '...' skal være den sidste håndtering i try-blokken"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -64217,12 +64207,12 @@ msgstr "typen '%D' er ikke en direkte eller en virtuel stamklasse til '%T'"
 msgid "type %qT is not a direct base of %qT"
 msgstr "typen '%D' er ikke en direkte stamklasse til '%T'"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr ""
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a class or union type"
 msgid "%qT is not a class type"
@@ -64240,12 +64230,12 @@ msgstr "ufuldstændig type '%T' har ikke medlemmet '%D'"
 msgid "invalid pointer to bit-field %qD"
 msgstr "ugyldig henvisning til bitfeltet '%D'"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "ugyldig brug af ikke-statisk felt '%D'"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "ugyldig brug af ikke-statisk felt '%D'"
@@ -64450,54 +64440,54 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr ""
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %s to references"
 msgid "cannot capture %qE by reference"
 msgstr "kan ikke erklære %s til referencer"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type `%T'"
 msgid "capture by copy of incomplete type %qT"
 msgstr "kan ikke %s en henvisning til en ufuldstændig type '%T'"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr ""
@@ -64903,240 +64893,291 @@ msgstr "forventet skabelon-id for typen"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 msgid "conflicting global module declaration %#qD"
 msgstr "modstridende erklæringer af '%s'"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration `%D'"
 msgid "existing declaration %#qD"
 msgstr "i erklæringen '%D'"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 #| msgid "extern declaration of `%#D' doesn't match"
 msgid "definition of %qD does not match"
 msgstr "extern-erklæring af '%#D' passer ikke med"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer"
 msgid "existing definition %qD"
 msgstr "manglende startværdi"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of `enum %s'"
 msgid "... this enumerator %qD"
 msgstr "omerklæring af 'enum %s'"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 #| msgid "extern declaration of `%#D' doesn't match"
 msgid "enumerator %qD does not match ..."
 msgstr "extern-erklæring af '%#D' passer ikke med"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of default argument for `%#D'"
 msgid "recursive lazy load"
 msgstr "omdefinering af standardparameter for '%#D'"
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "module %qs declared here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%s' as array of voids"
 msgid "indirect import %qs is not already loaded"
 msgstr "'%s' erklæret som en tabel af void"
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr "tidligere definition her"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 #| msgid "inconsistent instance variable specification"
 msgid "inconsistent imported macro definition %qE"
 msgstr "inkonsistent instansvariabelangivelse"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 #| msgid "%s: can't delete file `%s': %s\n"
 msgid "compiled module file is %qs"
 msgstr "%s: kan ikke slette filen '%s': %s\n"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Display the compiler's version"
 msgid "compiled module is %sversion %s"
 msgstr "Vis oversætterens version"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2-version %s\n"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 #| msgid "no symbol table found"
 msgid "module %qs found"
 msgstr "ingen symboltabel fundet"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr ""
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 #| msgid "function attribute mismatch"
 msgid "fixed tree mismatch"
 msgstr "forskellige funktionsattributter"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "interface partition is not exported"
 msgstr "stakgrænseudtryk understøttes ikke"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr ""
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to find class '%s'"
 msgid "failed to read compiled module: %s"
 msgstr "kunne ikke finde klassen '%s'"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+#| msgid "conflicts with built-in declaration `%#D'"
+msgid "declaration %qD conflicts with builtin"
+msgstr "strider mod indbygget erklæring '%#D'"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+#| msgid "asm declaration conflicts with previous rename"
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "asm-erklæring er i konflikt med tidligere omdøbelse"
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of template `%#D'"
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "erklæring af skabelon '%#D'"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+#| msgid "conflicts with new declaration with %L linkage"
+msgid "conflicting declaration of %qD in global module"
+msgstr "strider mod ny erklæring af med %L-kædning"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "`%s' previously declared here"
+msgid "previously declared in module %qs"
+msgstr "'%s' tidligere erklæret her"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "`%s' previously declared here"
+msgid "previously declared in global module"
+msgstr "'%s' tidligere erklæret her"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 #| msgid "creating %s"
 msgid "reading CMI %qs"
 msgstr "opretter %s"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, fuzzy, gcc-internal-format
 #| msgid "Unknown cpu: -mcpu=%s"
 msgid "during load of pendings for %<%E%s%E%>"
@@ -65149,432 +65190,432 @@ msgstr "Ukendt processor: -mcpu=%s"
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 #| msgid "Symbols have a leading underscore"
 msgid "module already declared"
 msgstr "Symboler har en indledende understreg"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, fuzzy, gcc-internal-format
 #| msgid "Symbols have a leading underscore"
 msgid "module already imported"
 msgstr "Symboler har en indledende understreg"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "module %qs imported here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "unknown punctuation '%c'"
 msgid "unknown Compiled Module Interface: %s"
 msgstr "ukendt tegnsætning »%c«"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, fuzzy, gcc-internal-format
 #| msgid "while writing precompiled header"
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr "under skrivning af præoversat inkluderingsfil"
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "Aktivér stakprøvning"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, fuzzy, gcc-internal-format
 #| msgid "Do not use the Xtensa SEXT option"
 msgid "you should use the %<-%s%> option"
 msgstr "Benyt ikke Xtensa-SEXT-indstillingen"
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param value %qs"
 msgid "invalid header name %qs"
 msgstr "ugyldig »--param«-værdi %qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 #| msgid "invalid macro name `%s'"
 msgid "invalid module name %qs"
 msgstr "ugyldigt makronavn '%s'"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 msgid "writing CMI %qs"
 msgstr "fejl ved skrivning til %s"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 msgid "not writing module %qs due to errors"
 msgstr "Fejl ved skrivning af uddatafilen %s.\n"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to find class '%s'"
 msgid "failed to write compiled module: %s"
 msgstr "kunne ikke finde klassen '%s'"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown header kind %qs"
 msgstr "ukendt registernavn: %s"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D' shadows a parameter"
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "erklæring af '%#D' skygger for en parameter"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "strider mod tidligere erklæring '%#D'"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 #| msgid "`%#D' hides constructor for `%#T'"
 msgid "%q#D hides constructor for %q#D"
 msgstr "'%#D' skjuler konstruktionsfunktion for '%#T'"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "modstridende erklæringer af '%s'"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, fuzzy, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "Generér ikke kode til at kontrollere undtagelsesspecifikationer"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 #| msgid "parameter `%D' invalidly declared method type"
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "parameteren '%D' er på ugyldig vis erklæret som af en medlemsfunktionstype"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D' shadows a parameter"
 msgid "declaration of %q#D shadows a parameter"
 msgstr "erklæring af '%#D' skygger for en parameter"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%s' shadows a member of `this'"
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "erklæring af '%s' skygger for et medlem af 'this'"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "friend-erklæringen er ikke i klassedefinitionen"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s: %s: "
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 msgid "%s %s %p %d"
 msgstr "%s: %s: "
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "%q#D declared here with no linkage"
 msgstr "  '%#D' erklæret her"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' undeclared here (not in a function)"
 msgid "%q#D declared here with internal linkage"
 msgstr "'%s' ikke erklæret her (ikke i en funktion)"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "%q#D declared here with module linkage"
 msgstr "  '%#D' erklæret her"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' names constructor"
 msgid "%<%T%s%D%> names destructor"
 msgstr "'%D' navngiver en konstruktionsfunktion"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "using-erklæring for ikke-medlem ved klassevirkefelt"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a class or namespace"
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "'%T' er ikke en klasse eller et navnerum"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, fuzzy, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "using-erklæring for destruktionsfunktion"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration for non-member at class scope"
 msgid "using-declaration for member at non-class scope"
 msgstr "using-erklæring for ikke-medlem ved klassevirkefelt"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 #| msgid "type `%D' is not a direct base of `%T'"
 msgid "%qT is not a direct base of %qT"
 msgstr "typen '%D' er ikke en direkte stamklasse til '%T'"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "'%#D' kan ikke erklæres"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr "using-erklæring for destruktionsfunktion"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' names constructor"
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "'%D' navngiver en konstruktionsfunktion"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%D' not in a namespace surrounding `%D'"
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "erklæring af '%D' er ikke i et navnerum der omgiver '%D'"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate type qualifiers in %s declaration"
 msgid "explicit qualification in declaration of %qD"
 msgstr "dobbelte typemodifikationer i %s-erklæring"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' should have been declared inside `%D'"
 msgid "%qD should have been declared inside %qD"
 msgstr "'%D' skulle have været erklæret inden i '%D'"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "'%#D' kan ikke erklæres"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' declared as a friend"
 msgid "only here as a %<friend%>"
 msgstr "'%D' er erklæret som en ven"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute requires an integer constant argument"
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "egenskaben '%s' kræver en heltalskonstant som parameter"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr ""
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute only applies to variables"
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "egenskaben '%s' kan kun anvendes på variabler"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, fuzzy, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "egenskabsdirektivet '%s' ignoreret"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 #| msgid "`%#D' cannot be declared"
 msgid "the macro %qs had not yet been defined"
 msgstr "'%#D' kan ikke erklæres"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' previously defined here"
 msgid "it was later defined here"
 msgstr "'%s' tidligere defineret her"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, fuzzy, gcc-internal-format
 #| msgid "brace-enclosed initializer used to initialize `%T'"
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr "startværdi i krøllede paranteser benyttet til at klargøre '%T'"
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 #| msgid "switch \"%s\" is no longer supported"
 msgid "%<strong%> using directive no longer supported"
 msgstr "tilvalget '%s' understøttes ikke længere"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, fuzzy, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr "Angiv klassesti (forældet: benyt --classpath i stedet)"
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "`%D' was not declared in this scope"
 msgid "cannot nest more than %d namespaces"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 #| msgid "use of `%D' is ambiguous"
 msgid "%<namespace %E%> is ambiguous"
 msgstr "brug af '%D' er tvetydigt"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, fuzzy, gcc-internal-format
 #| msgid "namespace alias `%D' not allowed here, assuming `%D'"
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "navnerumsalias '%D' er ikke tilladt her, antager '%D'"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, fuzzy, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr "sektionsegenskaben kan ikke angives for lokale variabler"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 #| msgid "label `%D' defined but not used"
 msgid "%qD defined here"
 msgstr "etiketten '%D' er defineret, men ikke benyttet"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 #| msgid "`%#D' conflicts with previous using declaration `%#D'"
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "'%#D' strider mod tidligere using-erklæring '%#D'"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr "tidligere definition her"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr ""
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr ""
@@ -65600,7 +65641,7 @@ msgstr "kaldenavnet '%s' er i modstrid med den interne navngivningsstrategi i GN
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr "en global registervariabel følger en funktionsdefinition"
@@ -65869,7 +65910,7 @@ msgstr "skabelonsparameter %d er ugyldig"
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
@@ -66064,7 +66105,7 @@ msgstr "sætningsblokke i udtryk er kun tilladt inde i en funktion"
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, fuzzy, gcc-internal-format
 #| msgid "unexpected address expression"
 msgid "expected primary-expression"
@@ -66123,7 +66164,7 @@ msgstr "skabelonsparameter %d er ugyldig"
 msgid "template-id not allowed for destructor in C++20"
 msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'"
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -66144,7 +66185,7 @@ msgstr "skabelons-id '%D' benyttet som erklærer"
 msgid "expected unqualified-id"
 msgstr ""
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a template"
 msgid "%qD is not a template"
@@ -66197,7 +66238,7 @@ msgstr "new kan ikke bruges på en referencetype"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "forkert antal skabelonsparametre (%d, skulle være %d)"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 #| msgid "wrong type argument to bit-complement"
 msgid "wrong number of arguments to %<__builtin_launder%>"
@@ -66235,7 +66276,7 @@ msgstr "new kan ikke bruges på en referencetype"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%D'"
 msgid "invalid use of %qD"
@@ -66262,7 +66303,7 @@ msgstr "ISO C++ tillader ikke %<alignof%> med en ikke-type"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "new kan ikke bruges på en referencetype"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in a new-expression"
 msgid "types may not be defined in %qs expressions"
@@ -66427,8 +66468,8 @@ msgstr "en startværdi der ikke er tom, tildeles til en tabel med tomme elemente
 msgid "capture of non-variable %qE"
 msgstr "%s af variablen '%s' der kun må læses"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "%q#D declared here"
@@ -66473,7 +66514,7 @@ msgstr "standardparameter givet til %d. parameter for '%#D'"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -66613,7 +66654,7 @@ msgstr "ugyldig venstreværdi i asm-sætning"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, fuzzy, gcc-internal-format
 #| msgid "empty body in an else-statement"
 msgid "expected selection-statement"
@@ -66682,7 +66723,7 @@ msgstr "udtrykket er af en ufuldstændig type"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr ""
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, fuzzy, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "uventet operand"
@@ -66711,7 +66752,7 @@ msgstr "skabelonsparameter %d er ugyldig"
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ forbyder beregnede goto'er"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, fuzzy, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "uventet operand"
@@ -67016,12 +67057,12 @@ msgstr "kun konstruktionsfunktioner har stamklasseklargøringer"
 msgid "cannot expand initializer for member %qD"
 msgstr "manglende startværdi for medlemmet '%D'"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr ""
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr ""
@@ -67720,7 +67761,7 @@ msgstr "skabelonsparameter er påkrævet for '%T'"
 msgid "%qT not permitted in template argument"
 msgstr "new kan ikke bruges på en referencetype"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%T'"
@@ -67912,12 +67953,12 @@ msgstr "tidligere definition af '%#T'"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, fuzzy, gcc-internal-format
 msgid "expected class-key"
 msgstr "uventet operand"
@@ -68134,40 +68175,40 @@ msgstr "skabelonsparameter %d er ugyldig"
 msgid "expression must be enclosed in parentheses"
 msgstr "udsagn skal være et kaldenavn"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 #| msgid "asm template is not a string constant"
 msgid "result type is not a plain type-constraint"
 msgstr "asm-sætning er ikke en strengkonstant"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a constant"
 msgid "return-type-requirement is not a type-constraint"
 msgstr "angivet justering er ikke en konstant"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, fuzzy, gcc-internal-format
 #| msgid "invalid redeclaration of `%D'"
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "ugyldig omerklæring af '%D'"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, fuzzy, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
@@ -68176,464 +68217,464 @@ msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, fuzzy, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "for mange skabelonsparameterlister angivet i erklæring af '%D'"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of `operator %T'"
 msgid "template-id not allowed for constructor in C++20"
 msgstr "modifikationer er ikke tilladt i erklæring af 'operator %T'"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, fuzzy, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "--driver understøttes ikke længere"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, fuzzy, gcc-internal-format
 #| msgid "no matching template for `%D' found"
 msgid "no matching concept for template-introduction"
 msgstr "ingen passende skabelon for '%D' fundet"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, fuzzy, gcc-internal-format
 #| msgid "invalid declaration of member template `%#D' in local class"
 msgid "invalid declaration of member template in local class"
 msgstr "ugyldig erklæring af medlemsskabelon '%#D' i lokal klasse"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "skabelon med C-kædning"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization here"
 msgid "invalid explicit specialization"
 msgstr "eksplicit specialisering her"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of `%#D'"
 msgid "template declaration of %<typedef%>"
 msgstr "skabelonserklæring af '%#D'"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, fuzzy, gcc-internal-format
 #| msgid "declaration does not declare anything"
 msgid "a class template declaration must not declare anything else"
 msgstr "erklæring erklærer ikke noget"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization here"
 msgid "explicit template specialization cannot have a storage class"
 msgstr "eksplicit specialisering her"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, fuzzy, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "'>>' skulle have været '> >' i skabelonsklassenavn"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, fuzzy, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "'>>' skulle have været '> >' i skabelonsklassenavn"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "'>>' skulle have været '> >' i skabelonsklassenavn"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, fuzzy, gcc-internal-format
 #| msgid "invalid base-class specification"
 msgid "invalid use of %qD in linkage specification"
 msgstr "ugyldig stamklasseangivelse"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 #| msgid "multiple `virtual' specifiers"
 msgid "duplicate %qD specifier"
 msgstr "mere end én 'virtual'-angivelse"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 #| msgid "section type conflict with %qD"
 msgid "%qD specifier conflicts with %qs"
 msgstr "afsnitstypekonflikt med %qD"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> før %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, fuzzy, gcc-internal-format
 #| msgid "%s used with `%%%c' %s format"
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%s brugt med '%%%c' %s-formatering"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ 1998 understøtter ikke %<long long%>"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr ""
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "duplikere %qD"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "duplikere %qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "forventede %<new%>"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "forventede %<delete%>"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "forventede %<return%>"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "forventede %<extern%>"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "forventede %<static_assert%>"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "forventede %<decltype%>"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "forventede %<operator%>"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "forventede %<class%>"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "forventede %<template%>"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "forventede %<namespace%>"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "forventede %<using%>"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "forventede %<asm%>"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "forventede %<try%>"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "forventede %<catch%>"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "forventede %<throw%>"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<catch%>"
 msgid "expected %<auto%>"
 msgstr "forventede %<catch%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "forventede %<__label__%>"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "forventede %<@try%>"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "forventede %<@synchronized%>"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "forventede %<@throw%>"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "forventede %<__transaction_atomic%>"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "forventede %<__transaction_relaxed%>"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<@end%>"
 msgid "expected %<co_yield%>"
 msgstr "%<@end%> forventet"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "forventede %<::%>"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "forventede %<...%>"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "forventede %<*%>"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "forventede %<~%>"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "forventede %<:%> or %<::%>"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' tag used in naming `%#T'"
 msgid "%qs tag used in naming %q#T"
 msgstr "'%s'-mærke benyttet i navngivning af '%#T'"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "%q#T var tidligere erklæret her"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to `%#T'"
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "kan ikke erklære reference til '%#T'"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' not declared"
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "'%D' ikke erklæret"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "uventet operand"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 #| msgid "label `%D' defined but not used"
 msgid "%qT defined as %qs here"
 msgstr "etiketten '%D' er defineret, men ikke benyttet"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 #| msgid "  first declared as `%#D' here"
 msgid "%qT first declared as %qs here"
 msgstr "  først erklæret som '%#D' her"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD omerklæret med anden adgang"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr ""
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, fuzzy, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "%Hslutningen af filen læst inden i standardparameter"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr ""
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr ""
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr ""
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr ""
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, fuzzy, gcc-internal-format
 #| msgid "Class or interface declaration expected"
 msgid "objective-c++ method declaration is expected"
 msgstr "Klasse- eller grænsefladeerklæring forventet"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, fuzzy, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "sektionsegenskaben kan ikke angives for lokale variabler"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, fuzzy, gcc-internal-format
 #| msgid "invalid register name `%s' for register variable"
 msgid "invalid type for instance variable"
 msgstr "ugyldigt registernavn '%s' for registervariabel"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, fuzzy, gcc-internal-format
 #| msgid "Identifier expected"
 msgid "identifier expected after %<@protocol%>"
 msgstr "Kaldenavn forventet"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute ignored for `%s'"
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "'%s'-egenskaben ignoreret for '%s'"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument"
 msgid "invalid type for property"
 msgstr "ugyldig typeparameter"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown property attribute %qE"
 msgstr "ukendt registernavn: %s"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 #| msgid "unexpected address expression"
 msgid "expected integer expression list"
 msgstr "uventet adresseudtryk"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr ""
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "forventede %<class%>, %<typename%>, eller %<template%>"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 #| msgid "invalid identifier `%s'"
 msgid "invalid reduction-identifier"
 msgstr "ugyldigt kaldenavn '%s'"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr "new kan ikke bruges på en referencetype"
@@ -68642,13 +68683,13 @@ msgstr "new kan ikke bruges på en referencetype"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma vtable no longer supported"
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "'#pragma vtable' understøttes ikke længere"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
@@ -68658,140 +68699,140 @@ msgstr ""
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr "typedef-navn kan ikke klassemodificeres"
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, fuzzy, gcc-internal-format
 #| msgid "register variable `%s' used in nested function"
 msgid "iteration variable %qD should not be reduction"
 msgstr "registervariabel '%s' benyttet i indlejret funktion"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr ""
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer clause"
 msgstr "ugyldig startværdi"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 #| msgid "unexpected side-effects in address"
 msgid "expected id-expression (arguments)"
 msgstr "uventede bivirkninger i adresse"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr "new kan ikke bruges på en referencetype"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of \"%s\" shadows a global declaration"
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr "erklæring af '%s' skygger for en global erklæring"
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a member template function"
 msgid "%qD does not refer to a namespace scope function"
 msgstr "'%D' er ikke en medlemsskabelonfunktion"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 #| msgid "malformed #pragma map, ignored"
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "forkert udformet '#pragma map' - ignoreret"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 #| msgid "braced-group within expression allowed only inside a function"
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "sætningsblokke i udtryk er kun tilladt inde i en funktion"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr "profilering understøttes ikke endnu"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr "'%D' blev ikke erklæret i dette virkefelt"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr ""
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -68824,7 +68865,7 @@ msgstr "omgivende klasseskabeloner er ikke eksplicit specialiserede"
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "specialisering af %qD skal fremstå ved navnerumsanvendelsesområde"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "specialisering af %qD i andet navnerum"
@@ -68841,31 +68882,31 @@ msgstr "  i forhold til definition af %q#D"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "erklæring af '%D' i '%D' som ikke omgiver '%D'"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, fuzzy, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "ugyldig brug af skabelonstypeparameter"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template `%#D'"
 msgid "specialization of alias template %qD"
 msgstr "erklæring af skabelon '%#D'"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template `%T'"
 msgid "explicit specialization of non-template %qT"
 msgstr "eksplicit specialisering af '%T' der ikke er en skabelon"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of `%T' after instantiation"
 msgid "specialization of %qT after instantiation"
 msgstr "specialisering af '%T' efter instantiering"
 
 # hænger sammen med foregående tekst, derfor ikke 'fra'
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q#D"
 msgid "from definition of %q#D"
@@ -68873,162 +68914,162 @@ msgstr "  i forhold til definition af %q#D"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, fuzzy, gcc-internal-format
 #| msgid "specialization `%T' after instantiation `%T'"
 msgid "specialization %qT after instantiation %qT"
 msgstr "specialisering af '%T' efter instantiering '%T'"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, fuzzy, gcc-internal-format
 #| msgid "template specialization with C linkage"
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "skabelonsspecialisering med C-kædning"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %D after instantiation"
 msgid "specialization of %qD after instantiation"
 msgstr "specialisering af '%D' efter instantiering"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 #| msgid "%s %+#D"
 msgid "%s %#qD"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function template"
 msgid "%qD is not a function template"
 msgstr "'%D' er ikke en funktionsskabelon"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a template"
 msgid "%qD is not a variable template"
 msgstr "'%T' er ikke en skabelon"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, fuzzy, gcc-internal-format
 #| msgid "template-id `%D' for `%+D' does not match any template declaration"
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "skabelons-id '%D' for '%+D' passer ikke til nogen skabelonserklæring"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous template specialization `%D' for `%+D'"
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "tvetydig skabelonsspecialisering '%D' for '%+D'"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d)"
 msgid "too many template headers for %qD (should be %d)"
 msgstr "forkert antal skabelonsparametre (%d, skulle være %d)"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %D after first use"
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "eksplicit specialisering af %D efter første brug"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%D' in `%D' which does not enclose `%D'"
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "erklæring af '%D' i '%D' som ikke omgiver '%D'"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %D after first use"
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "eksplicit specialisering af %D efter første brug"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "skabelonsparameter er påkrævet for '%T'"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "skabelonsparameter er påkrævet for '%T'"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 #| msgid "template-id `%D' in declaration of primary template"
 msgid "template-id %qE in declaration of primary template"
 msgstr "skabelons-id '%D' i erklæring af primær skabelon"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "skabelonsparameterliste benyttet i eksplicit instantiering"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "definition angivet for eksplicit instantiering"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, fuzzy, gcc-internal-format
 #| msgid "too many template parameter lists in declaration of `%D'"
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "for mange skabelonsparameterlister angivet i erklæring af '%D'"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, fuzzy, gcc-internal-format
 #| msgid "too few template parameter lists in declaration of `%D'"
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "eksplicit specialisering følger ikke efter 'template <>'"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template `%T'"
 msgid "explicit specialization declared %<concept%>"
 msgstr "eksplicit specialisering af '%T' der ikke er en skabelon"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization `%D' of function template"
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "partiel specialisering '%D' af funktionsskabelon"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization `%D' of function template"
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "partiel specialisering '%D' af funktionsskabelon"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "standardparameter angivet i eksplicit specialisering"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a member template function"
 msgid "%qD is not a template function"
@@ -69042,157 +69083,157 @@ msgstr "'%D' er ikke en medlemsskabelonfunktion"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "specialisering af underforstået erklæret speciel medlemsfunktion"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, fuzzy, gcc-internal-format
 #| msgid "no member function `%D' declared in `%T'"
 msgid "no member function %qD declared in %qT"
 msgstr "ingen medlemsfunktion '%D' erklæret i '%T'"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "friend-erklæringen er ikke i klassedefinitionen"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration `%#D' here"
 msgid "friend declaration here"
 msgstr "tidligere erklæring af '%#D' her"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template `%T'"
 msgid "explicit specialization of function concept %qD"
 msgstr "eksplicit specialisering af '%T' der ikke er en skabelon"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `asm' is not a constant string"
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "parameteren til 'asm' er ikke en konstant streng"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, fuzzy, gcc-internal-format
 #| msgid "data member `%D' cannot be a member template"
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "datamedlem '%D' kan ikke være en medlemsskabelon"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, fuzzy, gcc-internal-format
 #| msgid "data member `%D' cannot be a member template"
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "datamedlem '%D' kan ikke være en medlemsskabelon"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr ""
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, fuzzy, gcc-internal-format
 #| msgid "        `%D'"
 msgid "        %qD"
 msgstr "        '%D'"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "        `%D'"
 msgid "        %s"
 msgstr "        '%D'"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D' shadows a parameter"
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "erklæring af '%#D' skygger for en parameter"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%#D' shadows a parameter"
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "erklæring af '%#D' skygger for en parameter"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type `%T' declared `friend'"
 msgid "template parameter %qD declared here"
 msgstr "skabelonsparametertypen '%T' erklæret 'friend'"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template `%#D'"
 msgid "specialization of variable concept %q#D"
 msgstr "erklæring af skabelon '%#D'"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "template parameters not deducible in partial specialization:"
 msgstr "skabelonsparametre der ikke bruges i partiel specialisering:"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization `%T' does not specialize any template arguments"
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "den partielle specialisering '%T' specialiserer ikke nogen skabelonsparametre"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization `%T' does not specialize any template arguments"
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr "den partielle specialisering '%T' specialiserer ikke nogen skabelonsparametre"
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr ""
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function"
 msgid "too many arguments for partial specialization %qT"
 msgstr "for mange parametre til funktionen"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization `%T' does not specialize any template arguments"
 msgid "partial specialization %qD is not more specialized than"
 msgstr "den partielle specialisering '%T' specialiserer ikke nogen skabelonsparametre"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate label `%D'"
 msgid "primary template %qD"
 msgstr "etiketten '%D' optræder mere end én gang"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr ""
 
 # flertalsform unødvendig
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, fuzzy, gcc-internal-format
 #| msgid "type `%T' of template argument `%E' depends on template parameter(s)"
 msgid "type %qT of template argument %qE depends on a template parameter"
@@ -69200,19 +69241,19 @@ msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "typen '%T' af skabelonsparameteren '%E' afhænger af skabelonsparameter"
 msgstr[1] "typen '%T' af skabelonsparameteren '%E' afhænger af skabelonsparameter"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for `%#T'"
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "tvetydig klasseskabelonsinstantiering for '%#T'"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %D after instantiation"
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "specialisering af '%D' efter instantiering"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, fuzzy, gcc-internal-format
 #| msgid "no default argument for `%D'"
 msgid "no default argument for %qD"
@@ -69222,53 +69263,53 @@ msgstr "ingen standardparameter til '%D'"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr ""
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, fuzzy, gcc-internal-format
 #| msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "standardparametre er ikke tilladt i erklæring af venneskabelonsspecialisering '%D'"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 #| msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "standardparametre er ikke tilladt i erklæring af venneskabelonsspecialisering '%D'"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "standardparametre er ikke tilladt i erklæring af venneskabelonsspecialisering '%D'"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "default template arguments may not be used in partial specializations"
 msgstr "skabelonsparametre der ikke bruges i partiel specialisering:"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for parameter of type `%T' has type `%T'"
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "standardparameter for parameter af typen '%T' har typen '%T'"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 #| msgid "parameter `%D' declared void"
 msgid "template %qD declared"
 msgstr "parameteren '%D' erklæret void"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "skabelonsklasse uden et navn"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr ""
@@ -69278,71 +69319,71 @@ msgstr ""
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, fuzzy, gcc-internal-format
 #| msgid "invalid member template declaration `%D'"
 msgid "invalid template declaration of %qD"
 msgstr "ugyldig medlemsskabelonerklæring '%D'"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, fuzzy, gcc-internal-format
 #| msgid "template definition of non-template `%#D'"
 msgid "template definition of non-template %q#D"
 msgstr "skabelonsdefinition af ikke-skabelon '%#D'"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, fuzzy, gcc-internal-format
 #| msgid "expected %d levels of template parms for `%#D', got %d"
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "forvented %d niveauer af skabelonsparametre for '%#D', modtog %d"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, fuzzy, gcc-internal-format
 #| msgid "got %d template parameters for `%#D'"
 msgid "got %d template parameters for %q#D"
 msgstr "modtog %d skabelonsparametre for '%#D'"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, fuzzy, gcc-internal-format
 #| msgid "got %d template parameters for `%#T'"
 msgid "got %d template parameters for %q#T"
 msgstr "modtog %d skabelonsparametre for '%#T'"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  men %d påkrævet"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, fuzzy, gcc-internal-format
 #| msgid "template-id `%D' for `%+D' does not match any template declaration"
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "skabelons-id '%D' for '%+D' passer ikke til nogen skabelonserklæring"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, fuzzy, gcc-internal-format
 #| msgid "enclosing class templates are not explicitly specialized"
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "omgivende klasseskabeloner er ikke eksplicit specialiserede"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "'%#D' omerklæret som en anden form for symbol"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a template type"
 msgid "%qT is not a template type"
 msgstr "'%T' er ikke en skabelonstype"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, fuzzy, gcc-internal-format
 #| msgid "too few template parameter lists in declaration of `%D'"
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "for få skabelonsparameterlister angivet i erklæring af '%D'"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "`%D' used without template parameters"
 msgid "redeclared with %d template parameter"
@@ -69350,7 +69391,7 @@ msgid_plural "redeclared with %d template parameters"
 msgstr[0] "'%D' benyttet uden skabelonsparametre"
 msgstr[1] "'%D' benyttet uden skabelonsparametre"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration `%#D' here"
 msgid "previous declaration %qD used %d template parameter"
@@ -69358,496 +69399,496 @@ msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "tidligere erklæring af '%#D' her"
 msgstr[1] "tidligere erklæring af '%#D' her"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter `%#D'"
 msgid "template parameter %q+#D"
 msgstr "skabelonsparameter '%#D'"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, fuzzy, gcc-internal-format
 #| msgid "redeclared here as `%#D'"
 msgid "redeclared here as %q#D"
 msgstr "omerklæret her som '%#D'"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid "redeclared here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "'%#D' omerklæret som en anden form for symbol"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "  oprindelig definition er her"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "'%#D' omerklæret som en anden form for symbol"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' is not a valid template argument"
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "'%E' er ikke en gyldig skabelonsparameter"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "den skal være adressen af en funktion med ekstern kædning"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, fuzzy, gcc-internal-format
 #| msgid "it must be the address of a function with external linkage"
 msgid "it must be the name of a function with external linkage"
 msgstr "den skal være adressen af en funktion med ekstern kædning"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, fuzzy, gcc-internal-format
 #| msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, fuzzy, gcc-internal-format
 #| msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, fuzzy, gcc-internal-format
 #| msgid "it must be a pointer-to-member of the form `&X::Y'"
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "den skal være en henvisning til medlem på formen '&X::Y'"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a member of `%T'"
 msgid "because it is a member of %qT"
 msgstr "'%D' er ikke et medlem af '%T'"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 #| msgid "got %d template parameters for `%#D'"
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "modtog %d skabelonsparametre for '%#D'"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr ""
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types `%#T' and `%#T'"
 msgid "  mismatched types %qT and %qT"
 msgstr "sammenligning mellem typerne '%#T' og '%#T'"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr ""
 
 # flertalsform unødvendig
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, fuzzy, gcc-internal-format
 #| msgid "template argument `%E' involves template parameter(s)"
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "skabelonsparameter '%E' involverer skabelonsparameter"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr ""
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr ""
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr ""
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' is not a valid template argument"
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "'%E' er ikke en gyldig skabelonsparameter"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' is not a valid template argument"
 msgid "  member function type %qT is not a valid template argument"
 msgstr "'%E' er ikke en gyldig skabelonsparameter"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert type `%T' to type `%T'"
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "kan ikke konvertere typen '%T' til typen '%T'"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is an ambiguous base of `%T'"
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "'%T' er en tvetydig stamklasse til '%T'"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, fuzzy, gcc-internal-format
 #| msgid "type `%T' is not derived from type `%T'"
 msgid "  %qT is not derived from %qT"
 msgstr "typen '%T' er ikke nedarvet fra typen '%T'"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type `%T'"
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "kan ikke %s en henvisning til en ufuldstændig type '%T'"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "  template argument %qE does not match %qE"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 #| msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 #| msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, fuzzy, gcc-internal-format
 #| msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' is not a valid template argument"
 msgid "the address of %qD is not a valid template argument"
 msgstr "'%E' er ikke en gyldig skabelonsparameter"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' is not a valid template argument"
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "'%E' er ikke en gyldig skabelonsparameter"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, fuzzy, gcc-internal-format
 #| msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, fuzzy, gcc-internal-format
 #| msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, fuzzy, gcc-internal-format
 #| msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, fuzzy, gcc-internal-format
 #| msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "skabelonsparameter er påkrævet for '%T'"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "skabelonsparameter er påkrævet for '%T'"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr ""
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, fuzzy, gcc-internal-format
 #| msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kædning"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr ""
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' is not a valid template argument"
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "'%E' er ikke en gyldig skabelonsparameter"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr ""
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' is not a valid template argument"
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "'%E' er ikke en gyldig skabelonsparameter"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr ""
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `%D' applied to template instantiation"
 msgid "ignoring attributes in template argument %qE"
 msgstr "lagringsklasse '%D' anvendt på skabelonsinstantiering"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "ugyldig standardparameter i skabelon"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `restrict'"
 msgid "invalid use of destructor %qE as a type"
 msgstr "ugyldig brug af 'restrict'"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, fuzzy, gcc-internal-format
 #| msgid "to refer to a type member of a template parameter, use `typename %E'"
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "benyt 'typename %E' for at referere til et typemedlem af en skabelonsparameter"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, fuzzy, gcc-internal-format
 #| msgid "type/value mismatch at argument %d in template parameter list for `%D'"
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "type/værdi-konflikt ved %d. parameter i skabelonsparameterliste for '%D'"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a constant of type `%T', got `%T'"
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  forventede en konstant af typen '%T', modtog '%T'"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for parameter of type `%T' has type `%T'"
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "standardparameter for parameter af typen '%T' har typen '%T'"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, fuzzy, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  forventede en klasseskabelon, modtog '%T'"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a type, got `%E'"
 msgid "  expected a type, got %qE"
 msgstr "  forventede en type, modtog '%E'"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a type, got `%T'"
 msgid "  expected a type, got %qT"
 msgstr "  forventede en type, modtog '%T'"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a class template, got `%T'"
 msgid "  expected a class template, got %qT"
 msgstr "  forventede en klasseskabelon, modtog '%T'"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a template of type `%D', got `%D'"
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  forventede en skabelon af typen '%D', modtog '%D'"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 #| msgid "type/value mismatch at argument %d in template parameter list for `%D'"
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "type/værdi-konflikt ved %d. parameter i skabelonsparameterliste for '%D'"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a type, got `%E'"
 msgid "  expected %qD but got %qD"
 msgstr "  forventede en type, modtog '%E'"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 #| msgid "could not convert template argument `%E' to `%T'"
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "kunne ikke konvertere skabelonsparameteren '%E' til '%T'"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "forkert antal skabelonsparametre (%d, skulle være %d)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d)"
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "forkert antal skabelonsparametre (%d, skulle være %d)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, fuzzy, gcc-internal-format
 #| msgid "provided for `%D'"
 msgid "provided for %qD"
 msgstr "angivet for '%D'"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, fuzzy, gcc-internal-format
 #| msgid "default argument given for parameter %d of `%#D'"
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "standardparameter givet til %d. parameter for '%#D'"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a function template"
 msgid "%q#D is not a function template"
 msgstr "'%D' er ikke en funktionsskabelon"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, fuzzy, gcc-internal-format
 #| msgid "non-template type `%T' used as a template"
 msgid "non-template type %qT used as a template"
 msgstr "ikke-skabelonstype '%T' benyttet som skabelon"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, fuzzy, gcc-internal-format
 #| msgid "for template declaration `%D'"
 msgid "for template declaration %q+D"
 msgstr "til skabelonserklæring '%D'"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 #| msgid "internal gcc abort"
 msgid "template constraint failure for %qD"
 msgstr "intern GCC-afbrydelse"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a template"
 msgid "use of invalid variable template %qE"
 msgstr "'%T' er ikke en skabelon"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "skabelonsinstantieringsdybden overskrider maksimum på %d (benyt -ftemplate-depth-NN for at forøge maksimum) ved instantiering af '%D'"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "score argument must be constant integer expression"
 msgstr "sammenlign mellem signed og unsigned heltalsudtryk"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 #| msgid "%s rotate count is negative"
 msgid "score argument must be non-negative"
 msgstr "%s-roteringsantal er negativt"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, fuzzy, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr "klargøringsliste behandlet som et sammensat udtryk"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "fleksibelt tabelmedlem i union"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not at beginning of declaration"
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "'%s' er ikke ved begyndelsen af erklæringen"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr ""
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr ""
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of default argument for `%#D'"
 msgid "  when instantiating default argument for call to %qD"
 msgstr "omdefinering af standardparameter for '%#D'"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member function of non-class type `%T'"
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "opretter henvisning til medlemsfunktion af typen '%T' der ikke er en klasse"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "comparison between types `%#T' and `%#T'"
 msgid "mismatched argument pack lengths (%d vs %d)"
@@ -69866,346 +69907,346 @@ msgstr "sammenligning mellem typerne '%#T' og '%#T'"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, fuzzy, gcc-internal-format
 #| msgid "sizeof applied to a function type"
 msgid "variable %qD has function type"
 msgstr "sizeof benyttet på en funktionstype"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter type `%T'"
 msgid "invalid parameter type %qT"
 msgstr "ugyldig parametertype '%T'"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration `%D'"
 msgid "in declaration %q+D"
 msgstr "i erklæringen '%D'"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, fuzzy, gcc-internal-format
 #| msgid "function returns an aggregate"
 msgid "function returning an array"
 msgstr "funktion returnerer en værdi af en sammensat type"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' declared as function returning a function"
 msgid "function returning a function"
 msgstr "'%s' er erklæret som en funktion der returnerer en funktion"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "danner reference til void"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, fuzzy, gcc-internal-format
 #| msgid "forming %s to reference type `%T'"
 msgid "forming pointer to reference type %qT"
 msgstr "danner %s til referencetypen '%T'"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, fuzzy, gcc-internal-format
 #| msgid "forming %s to reference type `%T'"
 msgid "forming reference to reference type %qT"
 msgstr "danner %s til referencetypen '%T'"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C forbids qualified function types"
 msgid "forming pointer to qualified function type %qT"
 msgstr "ISO C forbyder funktionsreturtype med modifikationer"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C forbids qualified function types"
 msgid "forming reference to qualified function type %qT"
 msgstr "ISO C forbyder funktionsreturtype med modifikationer"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type `%T'"
 msgid "creating pointer to member of non-class type %qT"
 msgstr "opretter henvisning til medlem af typen '%T' der ikke er en klasse"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member reference type `%T'"
 msgid "creating pointer to member reference type %qT"
 msgstr "opretter henvisning til medlemsreference af typen '%T'"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member reference type `%T'"
 msgid "creating pointer to member of type void"
 msgstr "opretter henvisning til medlemsreference af typen '%T'"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of `%T'"
 msgid "creating array of %qT"
 msgstr "opretter tabel af '%T'"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a class, struct, or union type"
 msgid "%qT is not a class, struct, or union type"
 msgstr "'%T' er ikke en class-, struct- eller union-type"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr ""
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "unavngiven klargøring af '%T' som ikke har nogen stamklasser"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, fuzzy, gcc-internal-format
 #| msgid "use of `%s' in template"
 msgid "use of %qs in template"
 msgstr "brug af '%s' i skabelon"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, fuzzy, gcc-internal-format
 #| msgid "qualified type `%T' does not match destructor name `~%T'"
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "den modificerede type '%T' passer ikke til destruktionsfunktionsnavnet '~%T'"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, fuzzy, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "'%D' benyttes som en type, men er ikke defineret som en type"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, fuzzy, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "  (benyt 'typename %T::%D' hvis det er hvad du mener)"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not constant"
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "startværdielement er ikke en konstant"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of void expression"
 msgid "invalid use of pack expansion expression"
 msgstr "ugyldig brug af void-udtryk"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr ""
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, fuzzy, gcc-internal-format
 #| msgid "non-empty initializer for array of empty elements"
 msgid "empty initializer in lambda init-capture"
 msgstr "en startværdi der ikke er tom, tildeles til en tabel med tomme elementer"
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' undeclared here (not in a function)"
 msgid "%qD declared here, later in the translation unit"
 msgstr "'%s' ikke erklæret her (ikke i en funktion)"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 #| msgid "first argument to __builtin_choose_expr not a constant"
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "første parameter til '__builtin_choose_expr' skal være en konstant"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for `%s' attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "forkert antal parametre angivet til egenskaben '%s'"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a class or namespace"
 msgid "%qT is not a class or namespace"
 msgstr "'%T' er ikke en klasse eller et navnerum"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a class or namespace"
 msgid "%qD is not a class or namespace"
 msgstr "'%T' er ikke en klasse eller et navnerum"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, fuzzy, gcc-internal-format
 #| msgid "missing static field `%s'"
 msgid "using invalid field %qD"
 msgstr "manglende statisk felt '%s'"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "skabelonsparameter '%T' benytter anonym type"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for `%#D' has type `%T'"
 msgid "template argument for %qD uses local type %qT"
 msgstr "standardparameter for '%#D' har typen '%T'"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, fuzzy, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "skabelonsparameter '%T' er en variabelt ændret type"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, fuzzy, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "størrelsen af medlemmet '%D' er ikke konstant"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, fuzzy, gcc-internal-format
 #| msgid "  trying to instantiate `%D'"
 msgid "  trying to instantiate %qD"
 msgstr "  ved forsøg på at instantiere '%D'"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for `%#T'"
 msgid "ambiguous template instantiation for %q#T"
 msgstr "tvetydig klasseskabelonsinstantiering for '%#T'"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for `%#T'"
 msgid "ambiguous template instantiation for %q#D"
 msgstr "tvetydig klasseskabelonsinstantiering for '%#T'"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 #| msgid "%s %+#D"
 msgid "%s %#qS"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template `%#D'"
 msgid "explicit instantiation of non-template %q#D"
 msgstr "eksplicit instantiering af ikke-skabelon '%#D'"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template `%#D'"
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "erklæring af skabelon '%#D'"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template `%T'"
 msgid "explicit instantiation of function concept %q#D"
 msgstr "eksplicit specialisering af '%T' der ikke er en skabelon"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "'%#D' er ikke et statisk medlem af '%#T'"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, fuzzy, gcc-internal-format
 #| msgid "no matching template for `%D' found"
 msgid "no matching template for %qD found"
 msgstr "ingen passende skabelon for '%D' fundet"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template type `%T'"
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "eksplicit instantiering af '%T' der ikke er en skabelonstype"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of `%#D'"
 msgid "explicit instantiation of %q#D"
 msgstr "eksplicit instantiering af '%#D'"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate explicit instantiation of `%#D'"
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "'%#D' er blevet eksplicit instantieret mere end én gang"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++ forbyder brugen af 'extern' ved eksplicitte instantieringer"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `%D' applied to template instantiation"
 msgid "storage class %qD applied to template instantiation"
 msgstr "lagringsklasse '%D' anvendt på skabelonsinstantiering"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template `%#D'"
 msgid "explicit instantiation of non-class template %qD"
 msgstr "eksplicit instantiering af ikke-skabelon '%#D'"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template type `%T'"
 msgid "explicit instantiation of non-template type %qT"
 msgstr "eksplicit instantiering af '%T' der ikke er en skabelonstype"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of `%#T' before definition of template"
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "eksplicit instantiering af '%T' før definering af skabelonen"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ forbyder brugen af '%s ved eksplicitte instantieringer"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate explicit instantiation of `%#T'"
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "'%#T' er blevet eksplicit instantieret mere end én gang"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %D after first use"
 msgid "exception specification of %qD depends on itself"
@@ -70218,184 +70259,184 @@ msgstr "eksplicit specialisering af %D efter første brug"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of `%D' but no definition available"
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "eksplicit instantiering af '%D', men ingen definition tilgængelig"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "skabelonsinstantieringsdybden overskrider maksimum på %d (benyt -ftemplate-depth-NN for at forøge maksimum) ved instantiering af '%D'"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 #| msgid "`%#T' is not a valid type for a template constant parameter"
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "'%#T' er ikke en gyldig type for en skabelonsparameterkonstant "
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, fuzzy, gcc-internal-format
 #| msgid "invalid catch parameter"
 msgid "invalid template non-type parameter"
 msgstr "ugyldig catch-parameter"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 #| msgid "`%#T' is not a valid type for a template constant parameter"
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "'%#T' er ikke en gyldig type for en skabelonsparameterkonstant "
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, fuzzy, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "bruger 'typename' uden for en skabelon"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "a concept cannot be constrained"
 msgstr "konstruktionsfunktionen kan ikke være en statisk medlemsfunktion"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a namespace"
 msgid "concept %qE not in namespace scope"
 msgstr "'%T' er ikke et navnerum"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 #| msgid "definition of `%#T' inside template parameter list"
 msgid "concept %qE has multiple template parameter lists"
 msgstr "definition af '%#T' inden i skabelonsparameterliste"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, fuzzy, gcc-internal-format
 #| msgid "brace-enclosed initializer used to initialize `%T'"
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr "startværdi i krøllede paranteser benyttet til at klargøre '%T'"
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr "ikke-skabelon benyttet som skabelon"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 #| msgid "#include nested too deeply"
 msgid "use %qD directly instead"
 msgstr "#include indlejret for dybt"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, fuzzy, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "skabelonsparameter er påkrævet for '%T'"
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "class template argument deduction failed:"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 #| msgid "function not considered for inlining"
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "funktion overvejes ikke for indbygning"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "Ugyldig erklæring"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 #| msgid "Invalid method declaration, return type required"
 msgid "unable to deduce lambda return type from %qE"
 msgstr "Ugyldig metodeerklæring, returtype påkrævet"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr ""
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "instruktion tilfredsstiller ikke sine begrænsninger:"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "instruktion tilfredsstiller ikke sine begrænsninger:"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "instruktion tilfredsstiller ikke sine begrænsninger:"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "ugyldig standardparameter i skabelon"
@@ -70624,697 +70665,697 @@ msgstr "typen af asm-operanden '%E' kunne ikke afgøres"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "begyndelseserklæring i 'for'-løkke benyttet uden for C99-tilstand"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member `%D' in static member function"
 msgid "invalid use of member %qD in static member function"
 msgstr "ugyldig brug af medlemmet '%D' i statisk medlemsfunktion"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member `%D' in static member function"
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "ugyldig brug af medlemmet '%D' i statisk medlemsfunktion"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member `%D' in static member function"
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "ugyldig brug af medlemmet '%D' i statisk medlemsfunktion"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr "skabelonsparameter er påkrævet for '%T'"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' cannot be used as a function"
 msgid "cannot call a concept as a function"
 msgstr "'%E' kan ikke bruges som en funktion"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, fuzzy, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "parameter til egenskaben '%s' er større end %d"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 #| msgid "`this' is unavailable for static member functions"
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "'this' er ikke tilgængelig for statiske medlemsfunktioner"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, fuzzy, gcc-internal-format
 #| msgid "used %d template parameter%s instead of %d"
 msgid "use explicit object parameter %qs instead"
 msgstr "benyttede %d skabelonsparameter%s i stedet for %d"
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, fuzzy, gcc-internal-format
 #| msgid "invalid catch parameter"
 msgid "name the explicit object parameter"
 msgstr "ugyldig catch-parameter"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, fuzzy, gcc-internal-format
 #| msgid "`this' is unavailable for static member functions"
 msgid "%<this%> is unavailable for static member functions"
 msgstr "'this' er ikke tilgængelig for statiske medlemsfunktioner"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `this' at top level"
 msgid "invalid use of %<this%> before it is valid"
 msgstr "ugyldig brug af 'this' ved øverste niveau"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `this' at top level"
 msgid "invalid use of %<this%> after it is valid"
 msgstr "ugyldig brug af 'this' ved øverste niveau"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `this' in non-member function"
 msgid "invalid use of %<this%> in non-member function"
 msgstr "ugyldig brug af 'this' i ikke-medlemsfunktion"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `this' at top level"
 msgid "invalid use of %<this%> at top level"
 msgstr "ugyldig brug af 'this' ved øverste niveau"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, fuzzy, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "ugyldige modifikationer for ikke-medlemsfunktionstype"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, fuzzy, gcc-internal-format
 #| msgid "qualified type `%T' does not match destructor name `~%T'"
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "den modificerede type '%T' passer ikke til destruktionsfunktionsnavnet '~%T'"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' is not of type `%T'"
 msgid "%qE is not of type %qT"
 msgstr "'%E' er ikke af typen '%T'"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr ""
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, fuzzy, gcc-internal-format
 #| msgid "function cannot be inline"
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "funktion kan ikke indbygges"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, fuzzy, gcc-internal-format
 #| msgid "template type parameters must use the keyword `class' or `typename'"
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "skabelonstypeparametre skal begynde med 'class' eller 'typename'"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, fuzzy, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "ugyldig brug af skabelonstypeparameter"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, fuzzy, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "ugyldig brug af skabelonstypeparameter"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, fuzzy, gcc-internal-format
 #| msgid "definition of `%#T' inside template parameter list"
 msgid "definition of %q#T inside template parameter list"
 msgstr "definition af '%#T' inden i skabelonsparameterliste"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, fuzzy, gcc-internal-format
 #| msgid "invalid definition of qualified type `%T'"
 msgid "invalid definition of qualified type %qT"
 msgstr "ugyldig definition af modificeret type '%T'"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "ugyldig stamklasseangivelse"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, fuzzy, gcc-internal-format
 #| msgid "protected member `%#D' in anonymous union"
 msgid "cannot capture member %qD of anonymous union"
 msgstr "beskyttet medlem '%#D' i en anonym union"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' not declared"
 msgid "%qD is not captured"
 msgstr "'%D' ikke erklæret"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, fuzzy, gcc-internal-format
 #| msgid "use of %s from containing function"
 msgid "use of local variable with automatic storage from containing function"
 msgstr "brug af %s fra indeholdende funktion"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, fuzzy, gcc-internal-format
 #| msgid "use of %s from containing function"
 msgid "use of parameter from containing function"
 msgstr "brug af %s fra indeholdende funktion"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 #| msgid "use of %s from containing function"
 msgid "use of parameter outside function body"
 msgstr "brug af %s fra indeholdende funktion"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 msgid "missing template arguments"
 msgstr "skabelonsparameter er påkrævet for '%T'"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr ""
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, fuzzy, gcc-internal-format
 #| msgid "use of class template `%T' as expression"
 msgid "use of class template %qT as expression"
 msgstr "brug af klasseskabelonen '%T' som udtryk"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, fuzzy, gcc-internal-format
 #| msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "forespørgsel efter medlemmet '%D' er tvetydigt i det multiple nedarvningsnet"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "størrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, fuzzy, gcc-internal-format
 #| msgid "type of `%E' is unknown"
 msgid "type of %qE is unknown"
 msgstr "typen af '%E' er ukendt"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a template type"
 msgid "%qT is not an enumeration type"
 msgstr "'%T' er ikke en skabelonstype"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a constant"
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "angivet justering er ikke en konstant"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 #| msgid "hex escape sequence out of range"
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "den hexadecimale undvigesekvens er uden for det gyldige interval"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specifiers invalid in parameter declarations"
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "lagringsklasseanvisninger er ugyldige i parametererklæringer"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr ""
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "ugyldig brug af ikke-statisk felt '%D'"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "ugyldig brug af ikke-statisk felt '%D'"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "ugyldig brug af ikke-statisk felt '%D'"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 #| msgid "trampolines not supported"
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "trampoliner understøttes ikke"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "brug af '%D' er tvetydigt"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, fuzzy, gcc-internal-format
 #| msgid "invalid return type for function `%#D'"
 msgid "%qE has const type for %<reduction%>"
 msgstr "ugyldig returtype for funktionen '%#D'"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qD is not a variable in clause %qs"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable `%s' is declared private"
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "instansvariablen '%s' er erklæret privat"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable `%s' is declared private"
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "instansvariablen '%s' er erklæret privat"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, fuzzy, gcc-internal-format
 #| msgid "predicate must be an identifier"
 msgid "%<gang%> static expression must be integral"
 msgstr "udsagn skal være et kaldenavn"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 #| msgid "%s rotate count is negative"
 msgid "%<gang%> static value must be positive"
 msgstr "%s-roteringsantal er negativt"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, fuzzy, gcc-internal-format
 #| msgid "predicate must be an identifier"
 msgid "%<gang%> num expression must be integral"
 msgstr "udsagn skal være et kaldenavn"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, fuzzy, gcc-internal-format
 #| msgid "predicate must be an identifier"
 msgid "%<vector%> length expression must be integral"
 msgstr "udsagn skal være et kaldenavn"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, fuzzy, gcc-internal-format
 #| msgid "predicate must be an identifier"
 msgid "%<worker%> num expression must be integral"
 msgstr "udsagn skal være et kaldenavn"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a power of 2"
 msgid "%<vector%> length value must be positive"
 msgstr "angivet justering er ikke en potens af 2"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, fuzzy, gcc-internal-format
 #| msgid "left argument must be a slice"
 msgid "%<worker%> num value must be positive"
 msgstr "venstre parameter skal være en skive"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "klargøringsliste behandlet som et sammensat udtryk"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in map clauses"
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD fremgår mere end en gang i map-klausuller"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in map clauses"
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD fremgår mere end en gang i map-klausuller"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is not a valid class name"
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "'%s' er et ugyldigt klassenavn"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "template %qE in clause %qs"
 msgstr "for mange inddatafiler"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, fuzzy, gcc-internal-format
 #| msgid "predicate must be an identifier"
 msgid "%<grainsize%> expression must be integral"
 msgstr "udsagn skal være et kaldenavn"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, fuzzy, gcc-internal-format
 #| msgid "predicate must be an identifier"
 msgid "%<priority%> expression must be integral"
 msgstr "udsagn skal være et kaldenavn"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 #| msgid "predicate must be an identifier"
 msgid "%<hint%> expression must be integral"
 msgstr "udsagn skal være et kaldenavn"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "klargøringsliste behandlet som et sammensat udtryk"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 #| msgid "predicate must be an identifier"
 msgid "%<filter%> expression must be integral"
 msgstr "udsagn skal være et kaldenavn"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 #| msgid "slice end must be integer"
 msgid "%<tile%> argument needs integral type"
 msgstr "skive-slutning skal være heltal"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr ""
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr ""
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr ""
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "klargøringsliste behandlet som et sammensat udtryk"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 #| msgid "verification error at PC=%d"
 msgid "static assertion failed: %.*s"
 msgstr "verifikationsfejl ved PC=%d"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, fuzzy, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "erklæring uden static af '%s' følger static-erklæring"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 #| msgid "use of class template `%T' as expression"
 msgid "argument to %<decltype%> must be an expression"
 msgstr "brug af klasseskabelonen '%T' som udtryk"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot resolve address of overloaded function"
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "%s kan ikke finde adressen af flertydiggjort funktion"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "`__builtin_next_arg' called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "`__builtin_next_arg' kaldt uden en parameter"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a template"
 msgid "%qD is not a class or alias template"
 msgstr "'%T' er ikke en skabelon"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
 #| msgid "left-hand operand of comma expression has no effect"
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "venstreoperanden til kommaudtrykket har ingen virkning"
 
 # flertalsform unødvendig
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, fuzzy, gcc-internal-format
 #| msgid "template argument `%E' involves template parameter(s)"
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "skabelonsparameter '%E' involverer skabelonsparameter"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported arg to `__builtin_return_address'"
 msgid "non-pointer argument to %<__builtin_launder%>"
@@ -71323,1315 +71364,1315 @@ msgstr "ikke-understøttet parameter til '__builtin_return_address'"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, fuzzy, gcc-internal-format
 #| msgid "`%V' qualifiers cannot be applied to `%T'"
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "modifikationerne '%V' kan ikke anvendes på '%T'"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "statement-expression in a constant expression"
 msgstr "overløb i konstant udtryk"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 #| msgid "  `%#D' declared here"
 msgid " declared here"
 msgstr "  '%#D' erklæret her"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr "tildeling (ikke klargøring) i erklæring"
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "base class `%T' has incomplete type"
 msgid "base class %qT is not public"
 msgstr "stamklasse '%T' er af en ufuldstændig type"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' not declared"
 msgid "%qD is not public"
 msgstr "'%D' ikke erklæret"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a namespace"
 msgid "%qD is mutable"
 msgstr "'%D' er ikke et navnerum"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a template"
 msgid "%qD has a non-structural type"
 msgstr "'%T' er ikke en skabelon"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute argument not a string constant"
 msgid "%qE attribute argument must be a string constant"
 msgstr "parameteren til egenskaben '%s' er ikke en strengkonstant"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute can only be applied to Java class definitions"
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "egenskaben '%s' kan kun anvendes med Java-klassedefinitioner"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute requires an integer constant argument"
 msgid "%qE attribute takes no arguments"
 msgstr "egenskaben '%s' kræver en heltalskonstant som parameter"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute only applies to functions"
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "egenskaben '%s' kan kun anvendes sammen med funktioner"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is not an integer constant"
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "den udbedte init_priority er ikke en heltalskonstant"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, fuzzy, gcc-internal-format
 #| msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "kan kun bruge egenskaben '%s' på filvirkefeltsdefinitioner af objekter af klassetype"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is out of range"
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "den udbedte init_priority er uden for det gyldige interval"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is reserved for internal use"
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "den udbedte init_priority er reserveret til intern brug"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of `%D' as %s"
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "erklæring af '%D' som %s"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute requires an integer constant argument"
 msgid "the %qE attribute requires arguments"
 msgstr "egenskaben '%s' kræver en heltalskonstant som parameter"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `%s' attribute is not a string constant"
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "parameteren til egenskaben '%s er ikke en strengkonstant"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 #| msgid "argument of `%s' attribute is not a string constant"
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "parameteren til egenskaben '%s er ikke en strengkonstant"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, fuzzy, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "'%T::%D' er ikke en gyldig erklærer"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a valid expression"
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "'%T' er ikke et gyldigt udtryk"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute only applies to function types"
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "egenskaben '%s' kan kun anvendes sammen med funktionstyper"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute can only be applied to class definitions"
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `%D' applied to template instantiation"
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "lagringsklasse '%D' anvendt på skabelonsinstantiering"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, fuzzy, gcc-internal-format
 #| msgid "storage class `%D' applied to template instantiation"
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "lagringsklasse '%D' anvendt på skabelonsinstantiering"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "'%s'-egenskaben kan kun anvendes sammen med funktioner"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "'%s'-egenskaben kan kun anvendes sammen med funktioner"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 #| msgid "comparison is always false due to limited range of data type"
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "sammenligning er altid falsk på grund af den begrænsede rækkevidde af datatypen"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, fuzzy, gcc-internal-format
 #| msgid "two `u's in integer constant"
 msgid "zero as null pointer constant"
 msgstr "to 'u'-endelser i heltalskonstant"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "lang_* check: failed in %s, at %s:%d"
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "lang_*-kontrol: mislykkedes i %s, ved %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ forbyder %s mellem henvisning af typen 'void *' og henvisning til funktion"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ forbyder %s mellem henvisning af typen 'void *' og henvisning til funktion"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ forbyder %s mellem henvisning af typen 'void *' og henvisning til funktion"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, fuzzy, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, fuzzy, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, fuzzy, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types"
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "operander til ?: har forskellige typer"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types"
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "operander til ?: har forskellige typer"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, fuzzy, gcc-internal-format
 #| msgid "invalid application of `%s' to a member function"
 msgid "invalid application of %qs to a member function"
 msgstr "ugyldig brug af '%s' på en medlemsfunktion"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "ugyldig anvendelse af '%s' på en void-type"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++ forbyder anvendelse af 'sizeof' på et udtryk af en funktionstype"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "ugyldig anvendelse af '%s' på en void-type"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++ forbyder anvendelse af 'sizeof' på et udtryk af en funktionstype"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "størrelsen af tabel er ikke af en heltalstype"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "ugyldig brug af ikke-statisk felt '%D'"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, fuzzy, gcc-internal-format
 #| msgid "deprecated conversion from string constant to `%T'"
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "forældet konvertering fra strengkonstant til '%T'"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, fuzzy, gcc-internal-format
 #| msgid "deprecated conversion from string constant to `%T'"
 msgid "deprecated conversion from string constant to %qT"
 msgstr "forældet konvertering fra strengkonstant til '%T'"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, fuzzy, gcc-internal-format
 #| msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "forespørgsel efter medlemmet '%D' i '%E' som er af en ikke-sammensat type '%T'"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, fuzzy, gcc-internal-format
 #| msgid "request for member `%D' in `%E', which is of non-class type `%T'"
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "forespørgsel efter medlemmet '%D' i '%E' som er af en ikke-klassetype '%T'"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr "ugyldig brug af ikke-statisk felt '%D'"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 #| msgid "invalid access to non-static data member `%D' of NULL object"
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "ugyldig tilgang til ikke-statisk datamedlem '%D' af NULL-objekt"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, fuzzy, gcc-internal-format
 #| msgid "qualified type `%T' does not match destructor name `~%T'"
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "den modificerede type '%T' passer ikke til destruktionsfunktionsnavnet '~%T'"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr ""
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 #| msgid "'%D' has no member named '%E'"
 msgid "%q#T has no member named %qE"
 msgstr "'%D' har intet medlem ved navn '%E'"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, fuzzy, gcc-internal-format
 #| msgid "'%D' has no member named '%E'"
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "'%D' har intet medlem ved navn '%E'"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, fuzzy, gcc-internal-format
 #| msgid "'%D' has no member named '%E'"
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "'%D' har intet medlem ved navn '%E'"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 #| msgid "'%D' has no member named '%E'"
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "'%D' har intet medlem ved navn '%E'"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, fuzzy, gcc-internal-format
 #| msgid "`%D::%D' is not a member of `%T'"
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "'%D::%D' er ikke et medlem af '%T'"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "'%D' er ikke et medlem af '%T'"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a member template function"
 msgid "%qD is not a member template function"
 msgstr "'%D' er ikke en medlemsskabelonfunktion"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, fuzzy, gcc-internal-format
 #| msgid "`%T' is not a pointer-to-object type"
 msgid "%qT is not a pointer-to-object type"
 msgstr "'%T' er ikke af en henvisning til objekt-type"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%s' on pointer to member"
 msgid "invalid use of array indexing on pointer to member"
 msgstr "ugyldig brug af '%s' på henvisning til medlem"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%s' on pointer to member"
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "ugyldig brug af '%s' på henvisning til medlem"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of `%s' on pointer to member"
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "ugyldig brug af '%s' på henvisning til medlem"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "indeks mangler i tabelopslag"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, fuzzy, gcc-internal-format
 #| msgid "subscripting array declared `register'"
 msgid "subscripting array declared %<register%>"
 msgstr "indeksering af tabel som er erklæret 'register'"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "værdien der er påført et indeks, er hverken en tabel eller en henvisningsvariabel"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, fuzzy, gcc-internal-format
 #| msgid "object missing in use of `%E'"
 msgid "object missing in use of %qE"
 msgstr "objekt mangler i brug af '%E'"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids calling `::main' from within program"
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ forbyder kald af '::main' inde fra programmet"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, fuzzy, gcc-internal-format
 #| msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "brug .* eller ->* i kald af henvisning til medlemsfunktion i '%E (...)'"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' cannot be used as a function"
 msgid "%qE cannot be used as a function"
 msgstr "'%E' kan ikke bruges som en funktion"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' cannot be used as a function"
 msgid "%qD cannot be used as a function"
 msgstr "'%E' kan ikke bruges som en funktion"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' cannot be used as a function"
 msgid "expression cannot be used as a function"
 msgstr "'%E' kan ikke bruges som en funktion"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to %s `%+#D'"
 msgid "too many arguments to constructor %q#D"
 msgstr "for mange parametre til %s '%+#D'"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to %s `%+#D'"
 msgid "too few arguments to constructor %q#D"
 msgstr "for få parametre til %s '%+#D'"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function"
 msgid "too many arguments to member function %q#D"
 msgstr "for mange parametre til funktionen"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function"
 msgid "too few arguments to member function %q#D"
 msgstr "for få parametre til funktionen"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function"
 msgid "too many arguments to function %q#D"
 msgstr "for mange parametre til funktionen"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function"
 msgid "too few arguments to function %q#D"
 msgstr "for få parametre til funktionen"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to %s `%+#D'"
 msgid "too many arguments to method %q#D"
 msgstr "for mange parametre til %s '%+#D'"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to %s `%+#D'"
 msgid "too few arguments to method %q#D"
 msgstr "for få parametre til %s '%+#D'"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "for mange parametre til funktionen"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "for få parametre til funktionen"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, fuzzy, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "parameteren '%s' er af en ufuldstændig type"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, fuzzy, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "parameteren er af en ufuldstændig type"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr "adressen af '%D' vil altid være 'true'"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "adressen af '%D' vil altid være 'true'"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "adressen af '%D' vil altid være 'true'"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, fuzzy, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "adressen af '%D' vil altid være 'true'"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types"
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "operander til ?: har forskellige typer"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types"
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "operander til ?: har forskellige typer"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "complex arguments must have floating-point type"
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "komplekse parametre skal have kommatalstype"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 #| msgid "%s from incompatible pointer type"
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "%s fra en henvisningstype der ikke er forenelig med målets"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, fuzzy, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr "overløb i konstant udtryk"
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible types in assignment of `%T' to `%T'"
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "uforenelige typer i tildeling af '%T' til '%T'"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, fuzzy, gcc-internal-format
 #| msgid "assuming cast to type `%T' from overloaded function"
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "antager typeomtvingning til typen '%T' fra flertydig funktion"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "NULL benyttet i udregning"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ forbyder sammenligning mellem henvisningsvariabel og heltal"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with integer zero"
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "ordnet sammenligning af henvisning med heltallet nul"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 #| msgid "unordered comparison on non-floating point argument"
 msgid "unordered comparison on non-floating-point argument"
 msgstr "uordnet sammenligning af ikke-kommatalsparameter"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 #, fuzzy
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "konvertering fra NaN til unsigned int"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operands of types `%T' and `%T' to binary `%O'"
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "ugyldige operander af typerne '%T' og '%T' til binær '%O'"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ forbyder brug af henvisning af typen 'void *' i fratrækning"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ forbyder brug af henvisning til funktion i fratrækning"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ forbyder brug af henvisning til medlemsfunktion i fratrækning"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "ugyldig brug af en henvisning til en ufuldstændig type i henvisningsberegning"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor"
 msgid "taking address of constructor %qD"
 msgstr "tager adressen på en destruktionsfunktion"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor"
 msgid "taking address of destructor %qD"
 msgstr "tager adressen på en destruktionsfunktion"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of '%E' to form a pointer-to-member-function.  Use a qualified-id."
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "ugyldig brug af '%E' til at danne en henvisning til medlemsfunktion; benyt et kaldenavn med klassepræfiks"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr ""
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, fuzzy, gcc-internal-format
 #| msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "paranteser omkring '%E' kan ikke bruges til at danne en henvisning til medlemsfunktion"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ forbyder at tage adressen på en ikke-modificeret, ikke-statisk medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'"
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO C++ forbyder at tage adressen på en ikke-modificeret, ikke-statisk medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say `&%T::%D'"
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ forbyder at tage adressen på en bundet medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say `&%T::%D'"
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ forbyder at tage adressen på en bundet medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with `&%E')"
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "(en henvisning til medlem kan kun dannes med '&%E')"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of rvalue"
 msgstr "tager adressen på midlertidig variabel"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking address of function `::main'"
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ forbyder at tage adressen på funktionen '::main'"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create pointer to reference member `%D'"
 msgid "cannot create pointer to reference member %qD"
 msgstr "kan ikke oprette henvisning til reference medlemmet '%D'"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take address of bit-field `%s'"
 msgid "attempt to take address of bit-field"
 msgstr "kan ikke finde adressen af bitfeltet '%s'"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "tager adressen på midlertidig variabel"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing an enum"
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ forbyder %s af en enum"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing an enum"
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ forbyder %s af en enum"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type `%T'"
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "kan ikke %s en henvisning til en ufuldstændig type '%T'"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type `%T'"
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "kan ikke %s en henvisning til en ufuldstændig type '%T'"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing a pointer of type `%T'"
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ forbyder %s af en henvisning af typen '%T'"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing a pointer of type `%T'"
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ forbyder %s af en henvisning af typen '%T'"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, fuzzy, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr "ISO C forbyder brug af typeomtvingningsudtryk som venstreværdier"
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take the address of `this', which is an rvalue expression"
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "kan ikke tage adressen af 'this' som er et højreværdiudtryk"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, fuzzy, gcc-internal-format
 #| msgid "address of register variable `%s' requested"
 msgid "address of explicit register variable %qD requested"
 msgstr "forespørgsel efter adressen af registervariablen '%s'"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, fuzzy, gcc-internal-format
 #| msgid "address requested for `%D', which is declared `register'"
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "adresse forespurgt for '%D' som er erklæret 'register'"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr ""
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "klargøringsliste behandlet som et sammensat udtryk"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "klargøringsliste behandlet som et sammensat udtryk"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "klargøringsliste behandlet som et sammensat udtryk"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "klargøringsliste behandlet som et sammensat udtryk"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, fuzzy, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "static_cast fra typen '%T' til typen '%T' fjerner konstanthed"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "static_cast fra typen '%T' til typen '%T' fjerner konstanthed"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 #| msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "reinterpret_cast fra '%T' til '%T' fjerner const (eller volatile)"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "skabelonsparameter '%T' benytter lokal type '%T'"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "type qualifiers ignored on cast result type"
 msgstr "typemodifikationer ignoreret i funktionsreturtypen"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type `%T' to type `%T'"
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "ugyldig static_cast fra typen '%T' til typen '%T'"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 #| msgid "return type `%#T' is incomplete"
 msgid "class type %qT is incomplete"
 msgstr "returtype '%#T' er ufuldstændig"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 #| msgid "converting from `%T' to `%T'"
 msgid "converting from %qH to %qI"
 msgstr "konvertering fra '%T' til '%T'"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 #| msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "ugyldig reinterpret_cast af et højreværdiudtryk fra typen '%T' til typen '%T'"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 #, fuzzy
 #| msgid "reinterpret_cast from `%T' to `%T' loses precision"
 msgid "cast from %qH to %qI loses precision"
 msgstr "reinterpret_cast fra '%T' til '%T' mister præcision"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 #, fuzzy
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 #| msgid "cast from `%T' to `%T' increases required alignment of target type"
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "typeomtvingning fra '%T' til '%T' forøger den påkrævede justering af målets type"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "ISO C++ forbyder sammenligninger mellem henvisning til funktion og henvisning til objekt"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast from type `%T' to type `%T'"
 msgid "invalid cast from type %qT to type %qT"
 msgstr "ugyldig const_cast fra typen '%T' til typen '%T'"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "ugyldig brug af const_cast med typen '%T' som ikke er en henvisnings-, reference- eller en henvisning til datamedlem-type"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "ugyldig brug af const_cast med typen '%T' som er en henvisning eller reference til funktion"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "ugyldig const_cast af en højreværdi fra typen '%T' til typen '%T'"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast from type `%T' to type `%T'"
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "ugyldig const_cast fra typen '%T' til typen '%T'"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids casting to an array type `%T'"
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype '%T'"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type `%T'"
 msgid "invalid cast to function type %qT"
 msgstr "ugyldig omtvingelse til funktionstypen '%T'"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert `%E' from type `%T' to type `%T'"
 msgid "moving %qE of type %qT to itself"
 msgstr "kan ikke konvertere '%E' fra typen '%T' til typen '%T'"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, fuzzy, gcc-internal-format
 #| msgid "  in evaluation of `%Q(%#T, %#T)'"
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  i evaluering af '%Q(%#T, %#T)'"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, fuzzy, gcc-internal-format
 #| msgid "nonconstant array index in initializer"
 msgid "assigning to an array from an initializer list"
 msgstr "tabelindekset i startværdien er ikke en konstant"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible types in assignment of `%T' to `%T'"
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "uforenelige typer i tildeling af '%T' til '%T'"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, fuzzy, gcc-internal-format
 #| msgid "bad array initializer"
 msgid "array used as initializer"
 msgstr "ugyldig tildeling af startværdi til tabel"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, fuzzy, gcc-internal-format
 #| msgid "invalid lvalue in assignment"
 msgid "invalid array assignment"
 msgstr "ugyldig venstreværdi i tildeling"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   i henvisning til medlemsfunktion-omdannelse"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, fuzzy, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "henvisning til medlem-omdannelse via den virtuelle stamklasse '%T' af '%T'"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   i henvisning til medlem-omdannelse"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, fuzzy, gcc-internal-format
 #| msgid "invalid conversion to type `%T' from type `%T'"
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 #| msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "kan ikke konvertere '%T' til '%T' for parameter '%P' til '%D'"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 #| msgid "cannot convert `%T' to `%T' in %s"
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "kan ikke konvertere '%T' til '%T' i %s"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 #| msgid "cannot convert `%T' to `%T' in %s"
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "kan ikke konvertere '%T' til '%T' i %s"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 #| msgid "cannot convert `%T' to `%T' in %s"
 msgid "cannot convert %qH to %qI in return"
 msgstr "kan ikke konvertere '%T' til '%T' i %s"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 #| msgid "cannot convert `%T' to `%T' in %s"
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "kan ikke konvertere '%T' til '%T' i %s"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, fuzzy, gcc-internal-format
 #| msgid "Warn about functions which might be candidates for format attributes"
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "Advar om funktioner som kan være kandidater til formateringsegenskaber"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, fuzzy, gcc-internal-format
 #| msgid "function might be possible candidate for `%s' format attribute"
 msgid "parameter might be a candidate for a format attribute"
 msgstr "funktion er en mulig kandidat til '%s'-formateringsegenskab"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, fuzzy, gcc-internal-format
 #| msgid "Warn about functions which might be candidates for format attributes"
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "Advar om funktioner som kan være kandidater til formateringsegenskaber"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, fuzzy, gcc-internal-format
 #| msgid "function might be possible candidate for `%s' format attribute"
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "funktion er en mulig kandidat til '%s'-formateringsegenskab"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, fuzzy, gcc-internal-format
 #| msgid "function might be possible candidate for `%s' format attribute"
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "funktion er en mulig kandidat til '%s'-formateringsegenskab"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 #| msgid "in passing argument %P of `%+D'"
 msgid "in passing argument %P of %qD"
 msgstr "i overbringelse af parameter %P af '%+D'"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "returnerer reference til midlertidig variabel"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "returnerer reference til midlertidig variabel"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, fuzzy, gcc-internal-format
 #| msgid "reference to local variable `%D' returned"
 msgid "reference to local variable %qD returned"
 msgstr "reference til den lokale variabel '%D' returneret"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable `%D' returned"
 msgid "address of label %qD returned"
 msgstr "adresse af den lokale variabel '%D' returneret"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable `%D' returned"
 msgid "address of local variable %qD returned"
 msgstr "adresse af den lokale variabel '%D' returneret"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 #| msgid "too many 'l' suffixes in integer constant"
 msgid "redundant move in return statement"
 msgstr "for mange 'l'-endelser i heltalskonstant"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 #| msgid "too many 'l' suffixes in integer constant"
 msgid "redundant move in initialization"
 msgstr "for mange 'l'-endelser i heltalskonstant"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "returnerer en værdi fra en destruktionsfunktion"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "kan ikke returnere fra en håndtering af en funktions-try-blok i en konstruktionsfunktion"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "returnerer en værdi fra en konstruktionsfunktion"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, fuzzy, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "'return' uden nogen værdi i en funktion der ikke returnerer void"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer"
 msgid "returning initializer list"
 msgstr "manglende startværdi"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, fuzzy, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "new kan ikke bruges på en referencetype"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr ""
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr "'return' uden nogen værdi i en funktion der ikke returnerer void"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, fuzzy, gcc-internal-format
 #| msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "'operator new' må ikke returnere NULL medmindre den er erklæret 'throw()' (eller -fcheck-new er benyttet)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 #| msgid "invalid covariant return type for `%#D'"
 msgid "not eliding copy on return from %qD"
 msgstr "ugyldig kovariant returneringstype for '%#D'"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 #| msgid "invalid %%s value"
 msgid "using rvalue as lvalue"
@@ -72888,183 +72929,183 @@ msgstr "flertydig funktion uden kontekstuelle typeoplysninger"
 msgid "insufficient contextual information to determine type"
 msgstr "utilstrækkelige kontekstuelle oplysninger til at afgøre typen"
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, fuzzy, gcc-internal-format
 #| msgid "constructor syntax used, but no constructor declared for type `%T'"
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "konstruktionsfunktionsyntaks benyttet, men ingen konstruktionsfunktion er erklæret for typen '%T'"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type `%T'"
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "ugyldig tildeling af startværdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 #| msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "konvertering af '%E' fra '%T' til '%T' er tvetydigt"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 #| msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "konvertering af '%E' fra '%T' til '%T' er tvetydigt"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr "størrelsen af tabel er ikke af et heltalligt konstantudtryk"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 #| msgid "initializer-string for array of chars is too long"
 msgid "initializer-string for %qT is too long"
 msgstr "startværdistrengen til char-tabellen er for lang"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "remove %<{ }%> around initializer"
 msgstr "krøllede paranteser omkring skalarstartværdi"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr ""
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member `%D'"
 msgid "missing initializer for member %qD"
 msgstr "manglende startværdi for medlemmet '%D'"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, fuzzy, gcc-internal-format
 #| msgid "member `%D' is uninitialized reference"
 msgid "member %qD is uninitialized reference"
 msgstr "medlemmet '%D' er en reference uden startværdi"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 #| msgid "member `%D' is uninitialized reference"
 msgid "member %qD with uninitialized reference fields"
 msgstr "medlemmet '%D' er en reference uden startværdi"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 #| msgid "template-id `%D' for `%+D' does not match any template declaration"
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "skabelons-id '%D' for '%+D' passer ikke til nogen skabelonserklæring"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, fuzzy, gcc-internal-format
 #| msgid "no field `%D' in union being initialized"
 msgid "no field %qD found in union being initialized"
 msgstr "intet felt '%D' i union der tildeles startværdi"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "indeksværdi i stedet for feltnavn i union-startværdi"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "fundet en henvisningsefterfølgelse der går i ring"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, fuzzy, gcc-internal-format
 #| msgid "base operand of `->' has non-pointer type `%T'"
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "grundoperanden til '->' har en ikke-henvisningstype '%T'"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, fuzzy, gcc-internal-format
 #| msgid "result of `operator->()' yields non-pointer result"
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "resultatet af 'operator->()' er ikke en henvisning"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, fuzzy, gcc-internal-format
 #| msgid "base operand of `->' is not a pointer"
 msgid "base operand of %<->%> is not a pointer"
 msgstr "grundoperanden til '->' er ikke en henvisning"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, fuzzy, gcc-internal-format
 #| msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "'%E' kan ikke bruges som en medlemshenvisning eftersom udtrykkets type er '%T'"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "kan ikke anvende medlemshenvisning '%E' på '%E' som er af den ikke-sammensatte type '%T'"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, fuzzy, gcc-internal-format
 #| msgid "member type `%T::' incompatible with object type `%T'"
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "medlemstypen '%T::' uforenelige med objekttypen '%T'"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "henvisning til en medlemsfunktion benyttet i udregning"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "henvisning til en medlemsfunktion benyttet i udregning"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "henvisning til en medlemsfunktion benyttet i udregning"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type `%T'"
 msgid "functional cast to array type %qT"
 msgstr "ugyldig omtvingelse til funktionstypen '%T'"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, fuzzy, gcc-internal-format
 #| msgid "function cannot be inline"
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "funktion kan ikke indbygges"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "skabelonsparameter %d er ugyldig"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, fuzzy, gcc-internal-format
 #| msgid "default-initialization of `%#D', which has reference type"
 msgid "invalid value-initialization of reference type"
 msgstr "standardklargøring af '%#D' som er af en referencetype"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, fuzzy, gcc-internal-format
 #| msgid "call to function `%D' which throws incomplete type `%#T'"
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "kald af en funktion '%D' som kaster en ufuldstændig type '%#T'"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, fuzzy, gcc-internal-format
 #| msgid "call to function which throws incomplete type `%#T'"
 msgid "call to function which throws incomplete type %q#T"
@@ -74124,7 +74165,7 @@ msgstr "datamedlem '%D' kan ikke være en medlemsskabelon"
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "1. parameter til __builtin_spe_predicate skal være en konstant"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "invalid suffix on integer constant"
 msgid "Invalid use of BOZ literal constant at %L"
@@ -75512,7 +75553,7 @@ msgstr ""
 msgid "deferred type parameter at %C"
 msgstr ""
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -75743,7 +75784,7 @@ msgstr ""
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr ""
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is already defined in `%T'"
 msgid "Component %qs at %C already declared at %L"
@@ -76587,7 +76628,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr ""
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr ""
@@ -77440,12 +77481,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr ""
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -77703,282 +77744,282 @@ msgstr ""
 msgid "check_init_expr(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "konstruktionsfunktionen kan ikke være en statisk medlemsfunktion"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr ""
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "konstruktionsfunktionen kan ikke være en statisk medlemsfunktion"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, fuzzy, gcc-internal-format
 #| msgid "double quoted strings not allowed in #if expressions"
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "strenge med dobbelte anførselstegn er ikke tilladte i #if-udtryk"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr ""
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr ""
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "overløb i konstant udtryk"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "Funktion %qs ved %L skal være PURE"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr ""
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr ""
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr ""
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "%qs ved %L er ikke en VÆRDI"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "incompatible types in assignment of `%T' to `%T'"
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "uforenelige typer i tildeling af '%T' til '%T'"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "incompatible types in assignment of `%T' to `%T'"
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "uforenelige typer i tildeling af '%T' til '%T'"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr ""
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr ""
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, fuzzy, gcc-internal-format
 #| msgid "Array or substring specification for `%A' out of range in statement at %0"
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Tabel- eller understrengsangivelse for '%A' er uden for det gyldige interval i sætning ved %0"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr ""
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "invalid lvalue in assignment"
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "ugyldig venstreværdi i tildeling"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, fuzzy, gcc-internal-format
 #| msgid "Statement at %0 invalid in context established by statement at %1"
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "Sætning ved %0 er ugyldig i den kontekst der er etableret af sætning ved %1"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr ""
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr ""
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, fuzzy, gcc-internal-format
 #| msgid "invalid lvalue in assignment"
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "ugyldig venstreværdi i tildeling"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "overløb i konstant udtryk"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr ""
@@ -77986,196 +78027,196 @@ msgstr ""
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr ""
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "pointer/integer type mismatch in conditional expression"
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "henvisnings- og heltalstype i betingelsesudtrykket passer ikke sammen"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Missing or invalid constant expression"
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "Manglende eller ugyldigt konstant udtryk"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr ""
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr ""
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr ""
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr ""
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 #| msgid "Statement at %0 invalid in context established by statement at %1"
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Sætning ved %0 er ugyldig i den kontekst der er etableret af sætning ved %1"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 #| msgid "Statement at %0 invalid in context established by statement at %1"
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Sætning ved %0 er ugyldig i den kontekst der er etableret af sætning ved %1"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr ""
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "overløb i konstant udtryk"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "overløb i konstant udtryk"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "overløb i konstant udtryk"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "overløb i konstant udtryk"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr ""
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr ""
@@ -78198,8 +78239,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "creating array of `%T'"
 msgid "Creating array temporary at %L"
@@ -78284,7 +78325,7 @@ msgstr ""
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr ""
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -78423,12 +78464,12 @@ msgstr ""
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
@@ -79337,7 +79378,7 @@ msgstr "konvertering fra NaN til int"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr "kunne ikke konvertere '%E' til '%T'"
@@ -79934,7 +79975,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr ""
@@ -80114,6 +80155,11 @@ msgstr "heltalsoverløb i udtryk"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -80543,7 +80589,7 @@ msgstr ""
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr ""
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "argument 3 of `%s' must be a 2-bit literal"
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
@@ -81095,91 +81141,91 @@ msgstr "Mystisk tal i FORMAT-sætning ved %0"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unsupported VXT statement at %0"
 msgid "SELECT RANK statement at %C"
 msgstr "Ikke-understøttet VXT-sætning ved %0"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Spurious number in FORMAT statement at %0"
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "Mystisk tal i FORMAT-sætning ved %0"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unsupported VXT statement at %0"
 msgid "Unexpected CASE statement at %C"
 msgstr "Ikke-understøttet VXT-sætning ved %0"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "parse error in method specification"
 msgid "Syntax error in CASE specification at %C"
 msgstr "tolkningsfejl i medlemsfunktionsangivelsen"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unsupported VXT statement at %0"
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "Ikke-understøttet VXT-sætning ved %0"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "parse error in method specification"
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "tolkningsfejl i medlemsfunktionsangivelsen"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "parse error in method specification"
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "tolkningsfejl i medlemsfunktionsangivelsen"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unsupported VXT statement at %0"
 msgid "Unexpected RANK statement at %C"
 msgstr "Ikke-understøttet VXT-sætning ved %0"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr ""
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "parse error in method specification"
 msgid "Syntax error in RANK specification at %C"
 msgstr "tolkningsfejl i medlemsfunktionsangivelsen"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr ""
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr ""
@@ -82675,8 +82721,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr ""
@@ -85133,12 +85179,12 @@ msgstr ""
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Label %A already defined at %1 when redefined at %0"
 msgid "Label %d referenced at %L is never defined"
@@ -85265,7 +85311,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "'%D' erklærer ikke en skabelonstype"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr ""
@@ -85681,288 +85727,294 @@ msgstr ""
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr ""
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 #| msgid "Null element at %0 for array reference at %1"
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "Nulelement ved %0 for tabelreference ved %1"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' is deprecated"
 msgid "Using variable %qs at %L is deprecated"
 msgstr "'%s' er forældet"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Null element at %0 for array reference at %1"
+msgid "Invalid array reference at %L"
+msgstr "Nulelement ved %0 for tabelreference ved %1"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "duplicate initialization of %D"
 msgid "Error in typebound call at %L"
 msgstr "%D tildelt startværdi mere end én gang"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr ""
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr ""
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr ""
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "\"%s\" after # is not a positive integer"
 msgid "%s at %L must be integer"
 msgstr "\"%s\" efter # er ikke et positivt heltal"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr ""
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array or substring specification for `%A' out of range in statement at %0"
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "Tabel- eller understrengsangivelse for '%A' er uden for det gyldige interval i sætning ved %0"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array or substring specification for `%A' out of range in statement at %0"
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "Tabel- eller understrengsangivelse for '%A' er uden for det gyldige interval i sætning ved %0"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array or substring specification for `%A' out of range in statement at %0"
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "Tabel- eller understrengsangivelse for '%A' er uden for det gyldige interval i sætning ved %0"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "No label definition for FORMAT statement at %0"
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "Ingen etiketdefinition for FORMAT-sætning ved %0"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "No label definition for FORMAT statement at %0"
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "Ingen etiketdefinition for FORMAT-sætning ved %0"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr ""
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 #| msgid "No label definition for FORMAT statement at %0"
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "Ingen etiketdefinition for FORMAT-sætning ved %0"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -85971,291 +86023,291 @@ msgstr ""
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expression statement has incomplete type"
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "udtrykket er af en ufuldstændig type"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr ""
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr ""
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr ""
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr ""
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr ""
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr ""
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr ""
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr ""
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 #| msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "\"%s\" kan ikke bruges som et makronavn da det er en operator i C++"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr ""
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expression statement has incomplete type"
 msgid "Selector at %L cannot be NULL()"
 msgstr "udtrykket er af en ufuldstændig type"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "parameter `%s' has incomplete type"
 msgid "Selector at %L has no type"
 msgstr "parameteren '%s' er af en ufuldstændig type"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr ""
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr ""
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr ""
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "`%D' must take exactly one argument"
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "'%s' skal tage mod én parameter"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr ""
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr ""
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr ""
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "use of class template `%T' as expression"
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "brug af klasseskabelonen '%T' som udtryk"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr ""
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Statement at %0 invalid in context established by statement at %1"
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "Sætning ved %0 er ugyldig i den kontekst der er etableret af sætning ved %1"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr ""
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr ""
@@ -86263,221 +86315,221 @@ msgstr ""
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Statement at %0 invalid in context established by statement at %1"
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "Sætning ved %0 er ugyldig i den kontekst der er etableret af sætning ved %1"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unsupported VXT statement at %0"
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "Ikke-understøttet VXT-sætning ved %0"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr ""
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "In construct"
 msgid "FORALL construct at %L"
 msgstr "I konstruktionen"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr ""
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr ""
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr ""
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr ""
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr ""
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr ""
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "invalid lvalue in assignment"
 msgid "Pointer procedure assignment at %L"
 msgstr "ugyldig venstreværdi i tildeling"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr ""
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 #| msgid "use of class template `%T' as expression"
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "brug af klasseskabelonen '%T' som udtryk"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "use of class template `%T' as expression"
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "brug af klasseskabelonen '%T' som udtryk"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr ""
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "initialization of new expression with `='"
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "tildeling af startværdi til new-udtryk med '='"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "invalid string constant `%E'"
 msgid "Invalid NULL at %L"
 msgstr "ugyldig strengkonstant '%E'"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr ""
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 #| msgid "parameter `%s' declared void"
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "parameteren '%s' erklæret void"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr ""
@@ -86485,1019 +86537,1019 @@ msgstr ""
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Integer at %0 too large"
 msgid "String length at %L is too large"
 msgstr "Heltal ved %0 for stort"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr ""
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr ""
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr ""
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr ""
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr ""
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, fuzzy, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "slutfeltet '%s' bliver måske ikke klargjort"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, fuzzy, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr "slutfeltet '%s' bliver måske ikke klargjort"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "slutfeltet '%s' bliver måske ikke klargjort"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, fuzzy, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "slutfeltet '%s' bliver måske ikke klargjort"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "slutfeltet '%s' bliver måske ikke klargjort"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "fstat %s"
 msgid "%s at %L"
 msgstr "fejl ved egenskabsundersøgelse af filen %s"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 #| msgid "function cannot be inline"
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "funktion kan ikke indbygges"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object of type `%T' may not be initialized"
 msgid "External object %qs at %L may not have an initializer"
 msgstr "objekt af typen '%T' med variabel størrelse må ikke tildeles en startværdi"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr ""
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr ""
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr ""
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr ""
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr ""
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "Interface of %qs at %L must be explicit"
 msgstr "konstruktionsfunktionen kan ikke være en statisk medlemsfunktion"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "`%D' must take exactly one argument"
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "'%s' skal tage mod én parameter"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr ""
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr ""
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr ""
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expression statement has incomplete type"
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "udtrykket er af en ufuldstændig type"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 #| msgid "argument to `%s' attribute larger than %d"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "parameter til egenskaben '%s' er større end %d"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr ""
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, fuzzy, gcc-internal-format
 #| msgid "argument 3 of `%s' must be a 2-bit literal"
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "parameter til '%s' skal være en 2 bit-konstant"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr ""
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "initialization of new expression with `='"
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "tildeling af startværdi til new-udtryk med '='"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr ""
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "'%#D' kan ikke erklæres"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "uforenelig afledt type i PARAMETER ved %L"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "CLASS-variablen %qs ved %L kan ikke have PARAMETER-attributten"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr ""
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "No specification for implied-DO iterator `%A' at %0"
 msgid "Bad specification for assumed size array at %L"
 msgstr "Ingen angivelse af underforstået DO-iterator '%A' ved %0"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr ""
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr ""
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr ""
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr ""
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, fuzzy, gcc-internal-format
 #| msgid "argument 3 of `%s' must be a 2-bit literal"
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "parameter til '%s' skal være en 2 bit-konstant"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr ""
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr ""
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr ""
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 #| msgid "data member `%D' cannot be a member template"
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "datamedlem '%D' kan ikke være en medlemsskabelon"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Extraneous comma in FORMAT statement at %0"
 msgid "Expecting definable entity near %L"
 msgstr "Ekstra komma i FORMAT-sætning ved %0"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr ""
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr ""
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 #| msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "CLASS-variablen %qs ved %L kan ikke have PARAMETER-attributten"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr ""
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "nonconstant array index in initializer"
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "tabelindekset i startværdien er ikke en konstant"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "argument 3 of `%s' must be a 2-bit literal"
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "parameter til '%s' skal være en 2 bit-konstant"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr ""
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "label `%D' defined but not used"
 msgid "Label %d at %L defined but not used"
 msgstr "etiketten '%D' er defineret, men ikke benyttet"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "label `%D' defined but not used"
 msgid "Label %d at %L defined but cannot be used"
 msgstr "etiketten '%D' er defineret, men ikke benyttet"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr ""
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, fuzzy, gcc-internal-format
 #| msgid "parse error in method specification"
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "tolkningsfejl i medlemsfunktionsangivelsen"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr ""
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr ""
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr ""
@@ -88061,345 +88113,345 @@ msgstr ""
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "`%s' attribute only applies to variables"
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "egenskaben '%s' kan kun anvendes på variabler"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr ""
+
+#: fortran/symbol.cc:508
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "Sætning ved %0 er ugyldig  i BLOCK DATA-programenhed ved %1"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr ""
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, fuzzy, gcc-internal-format
 #| msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "Ekstern procedure '%A' er overbragt som faktisk parameter ved %0, men ikke eksplicit erklæret EXTERNAL"
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr ""
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "`%s' attribute only applies to functions"
 msgid "%s attribute applied to %s %s at %L"
 msgstr "egenskaben '%s' kan kun anvendes sammen med funktioner"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "`%s' attribute only applies to variables"
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "egenskaben '%s' kan kun anvendes på variabler"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr ""
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr ""
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "duplicate ConstantValue attribute for field '%s'"
 msgid "Duplicate %s attribute specified at %L"
 msgstr "mere end én ConstantValue-egenskab for feltet '%s'"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "duplicate ConstantValue attribute for field '%s'"
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "mere end én ConstantValue-egenskab for feltet '%s'"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr ""
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "SAVE-sætning eller -egenskab ved %1 kan ikke angives sammen med SAVE-sætning eller -egenskab ved %0"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "duplicate ConstantValue attribute for field '%s'"
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "mere end én ConstantValue-egenskab for feltet '%s'"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "duplicate ConstantValue attribute for field '%s'"
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "mere end én ConstantValue-egenskab for feltet '%s'"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "SAVE-sætning eller -egenskab ved %1 kan ikke angives sammen med SAVE-sætning eller -egenskab ved %0"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "dataområdet '%s' er i modstrid med tidligere erklæring"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr ""
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr ""
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr ""
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr ""
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, fuzzy, gcc-internal-format
 #| msgid "Label %A already defined at %1 when redefined at %0"
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "Etiket %A er allerede defineret ved %1 ved omdefinering ved %0"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "use of `%D' is ambiguous"
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "brug af '%D' er tvetydigt"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr ""
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr ""
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a member of type `%T'"
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "'%D' er ikke et medlem af typen '%T'"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "`%D' is not a member of type `%T'"
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "'%D' er ikke et medlem af typen '%T'"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr ""
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr ""
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr ""
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unsupported VXT statement at %0"
 msgid "Labeled DO statement at %L"
 msgstr "Ikke-understøttet VXT-sætning ved %0"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr ""
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr ""
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr ""
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr ""
@@ -88432,24 +88484,24 @@ msgstr ""
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr ""
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr ""
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr ""
@@ -88644,40 +88696,40 @@ msgstr "Returnér værdier fra funktioner i fpu-registre"
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ISO C90 forbids variable-size array `%s'"
 msgid "Cannot compute the length of the char array at %L."
 msgstr "ISO C90 forbyder tabellen '%s' med variabel størrelse"
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, fuzzy, gcc-internal-format
 #| msgid "unknown insn mode"
 msgid "Unknown intrinsic op"
 msgstr "ukendt instruktionstilstand"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "too few arguments to function `%s'"
 msgid "Unknown argument list function at %L"
 msgstr "for få parametre til funktionen '%s'"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -88688,17 +88740,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr ""
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "environment variable DJGPP not defined"
 msgid "The event variable at %L shall not be coindexed"
@@ -88853,7 +88905,7 @@ msgstr ""
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr ""
@@ -89247,6 +89299,12 @@ msgstr "feltet '%s' er erklæret som en funktion"
 msgid "function %qD redeclared as variable"
 msgstr "funktionen '%s' omerklæret som inline"
 
+#: lto/lto-symtab.cc:865
+#, fuzzy, gcc-internal-format
+#| msgid "`%s' previously declared here"
+msgid "previously declared here"
+msgstr "'%s' tidligere erklæret her"
+
 #: lto/lto.cc:174
 #, fuzzy, gcc-internal-format
 #| msgid "lto_obj_file_open() failed"
@@ -90585,7 +90643,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, fuzzy, gcc-internal-format
 #| msgid "non-object member `%s' cannot be declared `mutable'"
 msgid "non-objective-c type %qT cannot be caught"
@@ -90596,7 +90654,7 @@ msgstr "'%s' som ikke er objektmedlem, kan ikke erklæres 'mutable'"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr ""
diff --git a/gcc/po/de.po b/gcc/po/de.po
index 5b7e75a269a..5aaa4a2b591 100644
--- a/gcc/po/de.po
+++ b/gcc/po/de.po
@@ -8,10 +8,10 @@
 # Roland Illig <roland.illig@gmx.de>, 2015, 2017-2024.
 msgid ""
 msgstr ""
-"Project-Id-Version: gcc 14.1.0\n"
+"Project-Id-Version: gcc 14.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
-"PO-Revision-Date: 2024-05-09 16:32+0200\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
+"PO-Revision-Date: 2024-08-01 19:25+0200\n"
 "Last-Translator: Roland Illig <roland.illig@gmx.de>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
@@ -20,7 +20,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 3.4.2\n"
+"X-Generator: Poedit 3.4.4\n"
 "X-Poedit-Bookmarks: -1,-1,-1,6017,-1,-1,-1,-1,-1,-1\n"
 
 #: cif-code.def:39
@@ -387,7 +387,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "»-march=…« und »-mcpu=…« dürfen nicht zusammen angegeben werden"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared und mdll sind unverträglich"
 
@@ -19182,16 +19182,16 @@ msgstr "unerkennbarer Befehl:"
 msgid "insn does not satisfy its constraints:"
 msgstr "Befehl erfüllt nicht seine Bedingungen:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "erzeugt und mit anderen Einstellungen von »%s« verwendet"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "erzeugt und mit anderen Einstellungen von %<-fpic%> verwendet"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 msgid "created and used with different settings of %<-fpie%>"
 msgstr "erzeugt und mit anderen Einstellungen von %<-fpie%> verwendet"
 
@@ -19512,7 +19512,7 @@ msgstr "Längenmodifizierer im strfmon-Format"
 msgid "<command-line>"
 msgstr "<Kommandozeile>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "Operand für Code »%c« nicht unterstützt"
@@ -19531,9 +19531,9 @@ msgstr "ungültiger Operand für »%%%c«"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, c-format
 msgid "invalid vector constant"
 msgstr "ungültige Vektorkonstante"
@@ -19553,7 +19553,7 @@ msgstr "unverträglicher Operand für »%%%c«"
 msgid "incompatible register operand for '%%%c'"
 msgstr "unverträglicher Registeroperand für »%%%c«"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "fehlender Operand"
@@ -19582,93 +19582,93 @@ msgstr "ungültiger Adressierungsmodus"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "GNU- und SVE-Vektoren können nicht in einer binären Operation kombiniert werden"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "»%%&« ohne lokale dynamische TLS-Referenzen verwendet"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "ungültiger %%J-Wert"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "ungültiger %%r-Wert"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "ungültiger %%R-Wert"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "ungültiger %%N-Wert"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "ungültiger %%P-Wert"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "ungültiger %%h-Wert"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "ungültiger %%L-Wert"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "ungültiger %%m-Wert"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "ungültiger %%M-Wert"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "ungültiger %%U-Wert"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "ungültiger %%s-Wert"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "ungültiger %%C-Wert"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "ungültiger %%E-Wert"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "unbekannte Adressverschiebungs-Unspec"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "ungültiger %%xn-Code"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, c-format
 msgid "invalid operand address"
 msgstr "ungültige Operandenadresse"
@@ -19761,35 +19761,35 @@ msgstr "ungültiges UNSPEC als Operand: %d"
 msgid "unrecognized supposed constant"
 msgstr "unerkannte vermutete Konstante"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "ungültiger Schiebeoperand"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "bedingter Thumb-Befehl"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "bedingter Befehl in bedingter Sequenz"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "Operand für Code »%c« nicht unterstützt"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -19797,113 +19797,113 @@ msgstr "Operand für Code »%c« nicht unterstützt"
 msgid "invalid operand for code '%c'"
 msgstr "ungültiger Operand für Code »%c«"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "Befehl wird niemals ausgeführt"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "veralteter Maverick-Formatcode »%c«"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "ungültige Umwandlung von Typ %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "ungültige Umwandlung in Typ %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr "Operation nicht erlaubt auf Typ %<bfloat16_t%>"
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "Adressoperand erfordert Beschränkung für X-, Y- oder Z-Register"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "Operanden für %T/%t müssen reg + const_int sein:"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr "falsche Adresse, keine E/A-Adresse:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr "falsche Adresse, keine Konstante:"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "Falsche Adresse, nicht (reg+disp):"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "Falsche Adresse, nicht post_inc oder pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "Interner Compiler-Fehler. Falsche Adresse:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "Code »%c« für Festkomma nicht unterstützt:"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "Interner Compiler-Fehler. Unbekannter Modus:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "Ungültiger Befehl:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "Falscher Befehl:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "Falscher Kopierbefehl:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "Falscher Schiebe-Befehl:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "Interner Compiler-Fehler. Falsche Verschiebung:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr "Festkommaumwandlung nicht unterstützt"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr "Variable"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 msgid "function parameter"
 msgstr "Funktionsparameter"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr "Strukturfeld"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 msgid "return type of function"
 msgstr "Rückgabetyp für Funktion"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr "Zeiger"
 
@@ -19939,7 +19939,7 @@ msgstr "nicht unterstützter Operand"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20258,46 +20258,46 @@ msgstr "Operand ist keine Ganzzahl, ungültiger Operandencode »R«"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "Operand ist keine bestimmte Ganzzahl, ungültiger Operandencode »R«"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "ungültiger Operandencode »%c«"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "ungültige Bedingungen für Operand"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, c-format
 msgid "invalid vector immediate"
 msgstr "ungültiger Vektordirektwert"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "unbekannter Befehlsmodus"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "ungültige Umwandlung von Typ %<__bf16%> ohne Option %<-msse2%>"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "ungültige Umwandlung von Typ %<_Float16%> ohne Option %<-msse2%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "ungültige Umwandlung in Typ %<__bf16%> ohne Option %<-msse2%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "ungültige Umwandlung in Typ %<_Float16%> ohne Option %<-msse2%>"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr "Operation nicht erlaubt auf Typ %<__bf16%> ohne Option %<-msse2%>"
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr "Operation nicht erlaubt auf Typ %<_Float16%> ohne Option %<-msse2%>"
 
@@ -20328,7 +20328,7 @@ msgstr "ungültige Operation auf %<__fpreg%>"
 msgid "invalid %%P operand"
 msgstr "ungültiger %%P-Operand"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "ungültiger %%p-Wert"
@@ -20355,29 +20355,29 @@ msgstr "Nicht-GP-relative absolute Adresse kann nicht verwendet werden"
 msgid "invalid addressing mode"
 msgstr "ungültiger Adressierungsmodus"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "»%%%c« ist kein gültiger Operandenpräfix"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "ungültige Verwendung von »%%%c«"
@@ -20409,7 +20409,7 @@ msgid "post-increment address is not a register"
 msgstr "Post-Increment-Adresse ist kein Register"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "Falsche Adresse"
 
@@ -20567,7 +20567,7 @@ msgstr "nicht unterstützte konstante Adresse:"
 msgid "unsupported memory expression:"
 msgstr "nicht unterstützter Speicherausdruck:"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, c-format
 msgid "invalid vector operand"
 msgstr "ungültiger Vektoroperand"
@@ -20615,242 +20615,242 @@ msgstr "%<-mquad-memory-atomic%> benötigt 64-Bit-Modus"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "%<-mquad-memory%> ist im Little-Endian-Modus nicht verfügbar"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr "ungültige Bewegung"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr "Falsche 128-Bit-Verschiebung"
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, c-format
 msgid "invalid %%A value"
 msgstr "ungültiger %%A-Wert"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "ungültiger %%D-Wert"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "ungültiger %%e-Wert"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "ungültiger %%f-Wert"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "ungültiger %%F-Wert"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "ungültiger %%G-Wert"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "ungültiger %%j-Code"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "ungültiger %%J-Code"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "ungültiger %%k-Wert"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "ungültiger %%K-Wert"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "ungültiger %%O-Wert"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "ungültiger %%q-Wert"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, c-format
 msgid "invalid %%t value"
 msgstr "ungültiger %%t-Wert"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "ungültiger %%T-Wert"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "ungültiger %%u-Wert"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "ungültiger %%v-Wert"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, c-format
 msgid "invalid %%V value"
 msgstr "ungültiger %%V-Wert"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "ungültiger %%x-Wert"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, c-format
 msgid "invalid %%z value"
 msgstr "ungültiger %%z-Wert"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "ungültiger %%y-Wert, bitte »Z«-Bedingung probieren"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "Unerlaubtes Mischen von IEEE-128-Bit- und IBM-128-Bit-Gleitkommatypen"
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "AltiVec-Argument an Funktion ohne Prototyp übergeben"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 msgid "Could not generate addis value for fusion"
 msgstr "Addis-Wert für Fusion kann nicht erzeugt werden"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 msgid "Unable to generate load/store offset for fusion"
 msgstr "Lade-/Speicheroffset für Fusion kann nicht generiert werden"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr "Falsche GPR-Fusion"
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "ungültige Umwandlung von Typ %<__vector_quad%>"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "ungültige Umwandlung in Typ %<__vector_quad%>"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "ungültige Umwandlung von %<__vector_pair%>"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "ungültige Umwandlung in %<__vector_pair%>"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr "symbolische Speicherreferenzen werden nur auf z10 oder neuer unterstützt"
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "Adresse kann nicht zerlegt werden"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "ungültiger Vergleichsoperator für Ausgabemodifizierer »E«"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "ungültige Referenz für Ausgabemodifizierer »J«"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "ungültige Adresse für Ausgabemodifizierer »O«"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "ungültige Adresse für Ausgabemodifizierer »R«"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "Speicherreferenz für Ausgabemodifizierer »S« erwartet"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "ungültige Adresse für Ausgabemodifizierer »S«"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "Register oder Speicherausdruck für Ausgabemodifizierer »N« erwartet"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "Register oder Speicherausdruck für Ausgabemodifizierer »M« erwartet"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "ungültige Konstante für Ausgabemodifizierer »%c«"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "Ungültige Konstante – anderen Ausgabemodifizierer probieren"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "ungültiger konstanter Vektor für Ausgabemodifizierer »%c«"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "ungültiger Ausdruck – anderen Ausgabemodifizierer probieren"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "ungültiger Ausdruck für Ausgabemodifizierer »%c«"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 msgid "vector argument passed to unprototyped function"
 msgstr "Vektor-Argument an Funktion ohne Prototyp übergeben"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr "Typen unterscheiden sich im Vorzeichenbesitz"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr "binärer Operator unterstützt keine zwei bool-Vektor-Operanden"
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr "Binärer Operator unterstützt Boolean-Vektor-Argument nicht"
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr "binärer Operator unterstützt nicht, dass bool-Vektor mit Gleitkommavektor vermischt wird"
 
@@ -21041,12 +21041,12 @@ msgstr "({anonym})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "%<;%> erwartet"
@@ -21059,7 +21059,7 @@ msgstr "%<;%> erwartet"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21068,7 +21068,7 @@ msgstr "%<;%> erwartet"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "%<)%> erwartet"
@@ -21076,7 +21076,7 @@ msgstr "%<)%> erwartet"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "%<]%> erwartet"
@@ -21087,29 +21087,29 @@ msgstr "%<;%>, %<,%> oder %<)%> erwartet"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "%<(%> erwartet"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "%<[%> erwartet"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "%<{%> erwartet"
@@ -21119,17 +21119,17 @@ msgstr "%<{%> erwartet"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "%<:%> erwartet"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "%<while%> erwartet"
@@ -21138,8 +21138,8 @@ msgstr "%<while%> erwartet"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "%<,%> erwartet"
@@ -21149,17 +21149,17 @@ msgid "expected %<.%>"
 msgstr "%<.%> erwartet"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "%<@end%> erwartet"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "%<>%> erwartet"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "%<,%> oder %<)%> erwartet"
@@ -21167,32 +21167,32 @@ msgstr "%<,%> oder %<)%> erwartet"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "%<=%> erwartet"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "%<}%> erwartet"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, gcc-internal-format
 msgid "expected %<else%>"
 msgstr "%<else%> erwartet"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "%<#pragma omp section%> oder %<}%> erwartet"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr "<Meldung nicht zur Compilierzeit bekannt>"
 
@@ -21200,7 +21200,7 @@ msgstr "<Meldung nicht zur Compilierzeit bekannt>"
 msgid "(anonymous)"
 msgstr "(anonym)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "%<<%> erwartet"
@@ -21215,21 +21215,21 @@ msgstr "Sprungmarke erwartet"
 msgid "candidate:"
 msgstr "Kandidat:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 msgid "  after user-defined conversion:"
 msgstr "  nach benutzerdefinierter Umwandlung:"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "Kandidat ist:"
 msgstr[1] "Kandidaten sind:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "Kandidat 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "Kandidat 2:"
 
@@ -21461,7 +21461,7 @@ msgstr "%r%s:%d:%d:%R   in %<constexpr%>-Ersetzung von %qs"
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr "%r%s:%d:%R   in %<constexpr%>-Ersetzung von %qs"
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "Kandidaten sind:"
 
@@ -21505,48 +21505,48 @@ msgstr "Umformung verwirft Konstantheit"
 msgid "source type is not polymorphic"
 msgstr "Quellentyp ist nicht polymorph"
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "Argument falschen Typs für unäres Minus"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "Argument falschen Typs für unäres Plus"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "Argument falschen Typs für Bit-Komplement"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "Argument falschen Typs für abs"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "Argument falschen Typs für Konjugation"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 msgid "in argument to unary !"
 msgstr "in Argument für unäres !"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr "kein Präinkrementoperator für Typ"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr "kein Postinkrementoperator für Typ"
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr "kein Prädekrementoperator für Typ"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr "kein Postdekrementoperator für Typ"
 
@@ -21631,7 +21631,7 @@ msgstr "Veraltete Funktion:"
 msgid "Deleted feature:"
 msgstr "Gelöschte Funktion:"
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr "Array-Zuweisung"
 
@@ -21824,11 +21824,11 @@ msgstr "Block-IF"
 msgid "implied END DO"
 msgstr "impliziertes END DO"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "Zuweisung"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "Zeigerzuweisung"
 
@@ -21988,47 +21988,47 @@ msgstr "Operand des Benutzeroperators %%<%s%%> bei %%L ist %s"
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "Operanden des Benutzeroperators %%<%s%%> bei %%L sind %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr "Schleifenvariable"
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr "Iteratorvariable"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr "Anfangs-Ausdruck in DO-Schleife"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr "End-Ausdruck in DO-Schleife"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr "Schrittausdruck in DO-Schleife"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr "DEALLOCATE Objekt"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr "ALLOCATE Objekt"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr "STAT-Variable"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr "ERRMSG-Variable"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr "Element in READ"
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr "Variable ACQUIRED_LOCK"
 
@@ -22037,11 +22037,11 @@ msgstr "Variable ACQUIRED_LOCK"
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "Unterschiedliche CHARACTER-Längen (%ld/%ld) in Feldkonstruktor"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr "Ganzzahlüberlauf bei der Berechnung des zu reservierenden Speichers"
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr "Der Wert des Parameters PDT LEN »%s« stimmt nicht mit dem in der Dummy-Deklaration überein"
@@ -22056,12 +22056,12 @@ msgstr "Effektive Zeichenkettenlänge passt nicht zur deklarierten für Scheinar
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "Effektive Zeichenkettenlänge ist kürzer als die deklarierte für Scheinargument »%s« (%ld/%ld)"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr "Ziel für neue Rangabbildung ist zu klein (%ld < %ld)"
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr "Zuweisung von Skalar zu unalloziertem Array"
 
@@ -22070,81 +22070,81 @@ msgstr "Zuweisung von Skalar zu unalloziertem Array"
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr "Ungleiche Zeichenlängen (%ld/%ld) in %s"
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr "POS-Argument (%ld) außerhalb des Bereichs 0:%ld in intrinsischem BTEST"
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "POS-Argument (%ld) außerhalb des Bereichs 0:%ld in intrinsischem »%s«"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr "POS-Argument (%ld) außerhalb des Bereichs 0:%ld in intrinsischem IBITS"
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr "LEN-Argument (%ld) außerhalb des Bereichs 0:%ld in intrinsischem IBITS"
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsischem IBITS"
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "SHIFT-Argument (%ld) außerhalb des Bereichs 0:%ld in intrinsischem »%s«"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr "SHIFT-Argument (%ld) außerhalb des Bereichs -%ld:%ld in intrinsischem ISHFT"
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr "SIZE-Argument (%ld) außerhalb des Bereichs 1:%ld in intrinsischem ISHFTC"
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr "SIZE-Argument (%ld) außerhalb des Bereichs -%ld:%ld in intrinsischem ISHFTC"
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "Argument NCOPIES des intrinsischen REPEAT ist negativ (sein Wert ist %ld)"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "Argument NCOPIES des intrinsischen REPEAT ist zu groß"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "FROMPOS-Argument (%ld) außerhalb des Bereichs 0:%d in intrinsischem MVBITS"
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "LEN-Argument (%ld) außerhalb des Bereichs 0:%d in intrinsischem MVBITS"
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "TOPOS-Argument (%ld) außerhalb des Bereichs 0:%d in intrinsischem MVBITS"
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsischem MVBITS"
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsischem MVBITS"
@@ -22166,15 +22166,15 @@ msgstr "Zugewiesene Marke ist keine Zielmarke"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr "Ungültige Bildanzahl %d in SYNC IMAGES"
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr "Schleife läuft endlos"
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr "Schleifenvariable wurde geändert"
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr "DO-Schrittwert ist Null"
 
@@ -22250,7 +22250,7 @@ msgid "expected boolean type"
 msgstr "boolescher Typ erwartet"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr "Ganzzahl erwartet"
@@ -22313,7 +22313,7 @@ msgstr "Nicht genug Argumente"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "zu viele Argumente"
@@ -22937,7 +22937,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "%<-mrelax%> wird nur für RTP PIC unterstützt"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "Syntaxfehler in Anweisung %s bei %C"
@@ -23373,8 +23373,8 @@ msgstr "Attribut %qE steht mit Attribut %qs in Konflikt; wird ignoriert"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, gcc-internal-format
 msgid "previous declaration here"
 msgstr "vorherige Deklaration hier"
@@ -23391,7 +23391,7 @@ msgstr "Attribut-Direktive %qE ignoriert"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "Attribut-Direktive im Bereich %<%E::%E%> ignoriert"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "Falsche Anzahl an Argumenten für das Attribut %qE angegeben"
@@ -23401,7 +23401,7 @@ msgstr "Falsche Anzahl an Argumenten für das Attribut %qE angegeben"
 msgid "expected %i or more, found %i"
 msgstr "%i oder mehr erwartet, %i gefunden"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, gcc-internal-format, gfc-internal-format
 msgid "expected %i, found %i"
 msgstr "%i erwartet, %i gefunden"
@@ -23468,12 +23468,12 @@ msgstr "Typattribute ignoriert, nachdem Typ bereits definiert ist"
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -23482,7 +23482,7 @@ msgstr "Typattribute ignoriert, nachdem Typ bereits definiert ist"
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -23504,8 +23504,8 @@ msgstr "Attribut %qE wird ignoriert"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr "Attribut %<target%> fehlt für multiversioniertes %qD"
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "vorherige Deklaration von %qD"
@@ -23614,7 +23614,7 @@ msgstr "Funktionsprofil aus %s kann nicht gelesen werden"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "Offset %qwi ist außerhalb der Grenzen der konstanten Zeichenkette"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, gcc-internal-format
 msgid "%qE declared here"
 msgstr "%qE ist hier deklariert"
@@ -23719,7 +23719,7 @@ msgstr "ungültiges Argument 0 für %qs"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, gcc-internal-format
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
 msgstr "ungültige Verwendung von %<__builtin_va_arg_pack ()%>"
@@ -23741,42 +23741,42 @@ msgstr "Zweites Argument für %<__builtin_longjmp%> muss 1 sein"
 msgid "target format does not support infinity"
 msgstr "Zielformat unterstützt nicht »unendlich«"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, gcc-internal-format
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "%<va_start%> in Funktion mit fester Parameteranzahl verwendet"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "falsche Anzahl der Argumente für Funktion %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "%<__builtin_next_arg%> ohne Argument gerufen"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "falsche Anzahl der Argumente für Funktion %<__builtin_next_arg%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "Zweiter Parameter von %<va_start%> ist nicht letztgenanntes Argument"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr "undefiniertes Verhalten, wenn zweiter Parameter von %<va_start%> mit %<register%>-Speicherklasse deklariert wird"
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "erstes Argument von %qD muss ein Zeiger, das zweite eine Ganzzahlkonstante sein"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr "letztes Argument von %qD ist keine Ganzzahlkonstante zwischen 0 und 3"
@@ -24823,12 +24823,12 @@ msgstr "Attribut %<weakref%> ignoriert, da Variable bereits initialisiert ist"
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F verwendet, aber nirgendwo definiert"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F als %<static%> deklariert, aber nirgendwo definiert"
@@ -25377,7 +25377,7 @@ msgstr "%<region_array%> passt nicht zum %<region_tree%>"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "%<lp_array%> passt nicht zum %<region_tree%>"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, gcc-internal-format
 msgid "%qs failed"
 msgstr "%qs fehlgeschlagen"
@@ -25408,17 +25408,17 @@ msgstr "umgekehrte Speicherreihenfolge für »%smode«"
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr "Schreiben von %wu Bit Daten außerhalb der Grenzen des Zielobjekts, Daten wurden auf %wu Bit abgeschnitten"
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr "Aufruf von %qs mit Attributfehler deklariert: %s"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "Aufruf von %qs mit Attributwarnung deklariert: %s"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr "der Compiler geht davon aus, dass kein vorzeichenbehafteter Überlauf auftritt, und vereinfacht daher %<X - Y %s 0%> zu %<X %s 0%>"
@@ -25453,7 +25453,7 @@ msgstr "große Festkommakonstante implizit auf Festkommatypen abgeschnitten"
 msgid "comparison is always %d due to width of bit-field"
 msgstr "Vergleich ist immer %d wegen Breite des Bitfeldes"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr "Annahme, dass vorzeichenbehafteter Überlauf nicht auftritt, wenn Bereichsprüfung vereinfacht wird"
@@ -25616,7 +25616,7 @@ msgstr "Verarbeitungszeiten konnten nicht ermittelt werden: %m"
 msgid "%s signal terminated program %s"
 msgstr "Signal %s hat Programm %s beendet"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "nicht erkannte Kommandozeilenoption %qs"
@@ -25878,7 +25878,7 @@ msgstr "Multilib-Spezifikation %qs ist ungültig"
 msgid "multilib exclusions %qs is invalid"
 msgstr "Multilib-Ausschlüsse %qs sind ungültig"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "Multilib-select %qs %qs ist ungültig"
@@ -26178,22 +26178,22 @@ msgstr "durch %qD angegebene Grenze %E überschreitet die Größe %E des Zielobj
 msgid "%qD specified bound %E equals source length"
 msgstr "%qD angegebene Grenze %E ist genau die Größe der Quelle"
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "flexibles Arrayelement %qD hat keine wohldefinierten Paddingbits für %qs"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr "PDP11-Bitfeld-Verarbeitung wird in %qs nicht unterstützt"
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr "%s wird für Aggregattypen mit variabler Länge nicht unterstützt"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr "%s wird auf diesem Ziel nicht unterstützt"
@@ -26234,16 +26234,16 @@ msgid "function returns address of local variable"
 msgstr "Funktion liefert Adresse einer lokalen Variablen zurück"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -26255,366 +26255,366 @@ msgstr "hier deklariert"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr "%<nonnull%>-Argument %qD wird mit NULL verglichen"
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr "%qE-Ausgabe könnte vor dem letzten Formatzeichen abgeschnitten sein"
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr "%qE-Ausgabe ist vor dem letzten Formatzeichen abgeschnitten"
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr "%qE könnte ein abschließendes NUL hinter das Ende des Ziels schreiben"
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr "%qE schreibt ein abschließendes NUL hinter das Ende des Ziels"
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] "%<%.*s%>-Direktive schreibt %wu Byte in eine Region der Größe %wu"
 msgstr[1] "%<%.*s%>-Direktive schreibt %wu Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von %wu Byte in eine Region der Größe %wu"
 msgstr[1] "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von %wu Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von %wu Byte in eine Region der Größe %wu"
 msgstr[1] "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von %wu Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von bis zu %wu Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von bis zu %wu Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr "%<%.*s%>-Direktive schreibt bis zu %wu Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von wahrscheinlich %wu oder mehr Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von wahrscheinlich %wu oder mehr Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%>-Direktive schreibt wahrscheinlich %wu oder mehr Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von %wu bis %wu Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von %wu bis %wu Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr "%<%.*s%>-Direktive schreibt zwischen %wu und %wu Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von %wu oder mehr Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von %wu oder mehr Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%>-Direktive schreibt %wu oder mehr Bytes in eine Region der Größe %wu"
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "%<%.*s%>-Direktive schreibt %wu Byte in eine Region der Größe zwischen %wu und %wu"
 msgstr[1] "%<%.*s%>-Direktive schreibt %wu Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von %wu Byte in eine Region der Größe zwischen %wu und %wu"
 msgstr[1] "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von %wu Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von %wu Byte in eine Region der Größe zwischen %wu und %wu"
 msgstr[1] "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von %wu Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von bis zu %wu Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von bis zu %wu Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-Direktive schreibt bis zu %wu Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von wahrscheinlich %wu oder mehr Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von wahrscheinlich %wu oder mehr Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-Direktive schreibt wahrscheinlich %wu oder mehr Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben zwischen %wu und %wu Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von %wu bis %wu Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-Direktive schreibt zwischen %wu und %wu Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive könnte abgeschnitten sein, beim Schreiben von %wu oder mehr Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "Ausgabe der %<%.*s%>-Direktive abgeschnitten, beim Schreiben von %wu oder mehr Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-Direktive schreibt %wu oder mehr Bytes in eine Region der Größe zwischen %wu und %wu"
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr "Argument %<%.*s%> für Direktive ist null"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr "Ausgabe der %<%.*s%>-Direktive von %wu Bytes überschreitet die minimal erforderliche Größe von 4095"
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr "Ausgabe der %<%.*s%>-Direktive zwischen %wu und %wu Bytes überschreitet die minimal erforderliche Größe von 4095"
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr "Ausgabe der %<%.*s%>-Direktive zwischen %wu und %wu Bytes könnte die minimal erforderliche Größe von 4095 überschreiten"
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr "Ausgabe der Direktive %<%.*s%> übersteigt mit %wu Bytes %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr "Ausgabe der Direktive %<%.*s%> zwischen %wu und %wu Bytes übersteigt %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "Ausgabe der %<%.*s%>-Direktive von %wu Bytes macht das Ergebnis größer als %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "Ausgabe der %<%.*s%>-Direktive zwischen %wu und %wu Bytes macht das Ergebnis größer als %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr "Ausgabe der %<%.*s%>-Direktive zwischen %wu und %wu Bytes könnte das Ergebnis größer als %<INT_MAX%> machen"
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr "Argument der Direktive %<%.*s%> ist keine nul-terminierte Zeichenkette"
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr "das referenzierte Argument wird hier deklariert"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] "angenommen, dass die Ausgabe der Direktive %wu Byte groß ist"
 msgstr[1] "angenommen, dass die Ausgabe der Direktive %wu Bytes groß ist"
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "Direktiven-Argument %qE"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr "Direktiven-Argument im Bereich [%E, %E]"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr "das Intervall [%E, %E] wird für das Argument der Direktive verwendet"
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] "%qE hat %wu Byte in ein Ziel der Größe %wu ausgegeben"
 msgstr[1] "%qE hat %wu Byte in ein Ziel der Größe %wu ausgegeben"
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr "%qE hat zwischen %wu und %wu Bytes in das Ziel der Größe %wu ausgegeben"
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr "%qE hat %wu oder mehr Bytes (angenommen %wu) in das Ziel der Größe %wu ausgegeben"
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr "%qE hat %wu oder mehr Bytes in das Ziel der Größe %wu ausgegeben"
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] "%qE hat %wu Byte ausgegeben"
 msgstr[1] "%qE hat %wu Bytes ausgegeben"
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr "%qE hat zwischen %wu und %wu Bytes ausgegeben"
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr "%qE hat %wu oder mehr Bytes (angenommen %wu) ausgegeben"
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr "%qE hat %wu oder mehr Bytes ausgegeben"
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr "Breite für %<%.*s%>-Direktive außerhalb des zulässigen Bereichs"
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr "Genauigkeit der %<%.*s%>-Direktive außerhalb des zulässigen Bereichs"
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr "Im Aufruf von %qE überlappen sich die Argumente %Z und vielleicht %Z mit dem Zielobjekt %qE"
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] "%qE Argument %Z überlappt das Zielobjekt %qE"
 msgstr[1] "%qE Argumente %Z überlappen das Zielobjekt %qE"
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] "%qE Argument %Z überlappt möglicherweise das Zielobjekt %qE"
 msgstr[1] "%qE Argumente %Z überlappen möglicherweise das Zielobjekt %qE"
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr "Zielobjekt, auf das durch %<restrict%>-qualifiziertes Argument 1 verwiesen wird, wurde hier deklariert"
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr "angegebene Grenze %wu überschreitet maximale Objektgröße %wu"
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr "angegebene Grenze %wu überschreitet %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr "angegebene Bereichsgrenze [%wu, %wu] überschreitet %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, gcc-internal-format
 msgid "null destination pointer"
 msgstr "Zielzeiger ist NULL"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr "angegebene Grenze %wu überschreitet die Größe %wu des Zielobjekts"
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, gcc-internal-format
 msgid "null format string"
 msgstr "NULL-Formatzeichenkette"
@@ -27351,12 +27351,12 @@ msgstr "baumelnder Zeiger auf %qD wird verwendet"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD ist hier deklariert"
@@ -28119,7 +28119,7 @@ msgstr "Token %u hat %<x-location == %u%>"
 msgid "token %u has %<y-location == %u%>"
 msgstr "Token %u hat %<y-location == %u%>"
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "ungültige Verwendung des Attributs %<fallthrough%>"
@@ -28463,17 +28463,17 @@ msgstr "Name %qs wird in einer anderen Übersetzungseinheit mit unterschiedliche
 msgid "mismatching definition"
 msgstr "abweichende Definition"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr "ungültige »fnsummary« in LTO-Datenstrom"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr "IPA-Inline-Zusammenfassung fehlt in Eingabedatei"
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr "IPA-modref-Zusammenfassung fehlt in Eingabedatei"
@@ -29536,72 +29536,72 @@ msgstr "Fehler beim Schreiben der Optimierungsdatensätze in %qs: %s"
 msgid "error closing optimization records %qs"
 msgstr "Fehler beim Schließen der Datei für Optimierungsdatensätze %qs"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, gcc-internal-format
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "Kommandozeilenoption %qs wird von dieser Konfiguration nicht unterstützt"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "fehlendes Argument für %qs"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "Argument für %qs sollte eine nicht-negative Ganzzahl sein, optional gefolgt von einer Größeneinheit"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "Argument von %qs sollte eine nicht-negative Ganzzahl sein"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "Argument von %qs ist nicht zwischen %d und %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, gcc-internal-format
 msgid "invalid argument in option %qs"
 msgstr "ungültiges Argument in Option %qs"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr "%qs ist in derselben Option mehrfach angegeben"
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "%qs und %qs schließen sich gegenseitig aus und können nicht zusammen angegeben werden"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "nicht erkanntes Kommandozeilenargument in Option %qs"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "gültige Argumente für %qs sind: %s; meinten Sie %qs?"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "gültige Argumente für %qs sind: %s"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "Schalter %qs wird nicht mehr unterstützt"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, gcc-internal-format
 msgid "argument to %qs is bigger than %d"
 msgstr "Argument für %qs ist größer als %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr "ungültige %<COLLECT_GCC_OPTIONS%>"
@@ -29675,8 +29675,8 @@ msgstr "Argument von %<-O%> sollte eine nicht-negative Ganzzahl, %<g%>, %<s%>, %
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "%qs ist mit %qs unverträglich"
@@ -30400,7 +30400,7 @@ msgstr "globale Registervariable folgt einer Funktionsdefinition"
 msgid "register of %qD used for multiple global register variables"
 msgstr "Register von %qD für mehrere globale Registervariablen verwendet"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "Konflikt mit %qD"
@@ -30878,42 +30878,42 @@ msgstr "Abschnitt des Aliases %q+D muss zum Abschnitt seines Ziels passen"
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "%<__builtin_saveregs%> wird von diesem Ziel nicht unterstützt"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "Argument %qs wird für %qs auf diesem Ziel nicht unterstützt"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "geschachtelte Funktionen werden auf diesem Ziel nicht unterstützt"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "-ffunction-sections wird für dieses Ziel nicht unterstützt"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "globale Konstruktoren werden für dieses Ziel nicht unterstützt"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "globale Destruktoren werden für dieses Ziel nicht unterstützt"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, gcc-internal-format
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "%<target%>-Attribut wird auf dieser Maschine nicht unterstützt"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, gcc-internal-format
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "%<target_version%>-Attribut wird auf dieser Maschine nicht unterstützt"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr "%<#pragma GCC target%> wird für diese Maschine nicht unterstützt"
@@ -32050,82 +32050,82 @@ msgstr "Interner Compilerfehler: BB %i has incorrect edge"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "Interner Compilerfehler: BB %i has incorrect fallthru edge"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "die Funktion %q+F kann nie kopiert werden, da sie ein nichtlokales »goto« empfängt"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "die Funktion %q+F kann nie kopiert werden, da sie die Adresse einer lokalen Marke in statischer Variablen speichert"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "die Funktion %q+F kann nie »inline« sein, da sie alloca verwendet (zum Aufheben: Attribut »always_inline« verwenden)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "die Funktion %q+F kann nie »inline« sein, da sie setjmp verwendet"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "die Funktion %q+F kann nie »inline« sein, da sie eine variable Argumentliste verwendet"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "die Funktion %q+F kann nie »inline« sein, da sie »setjmp-longjmp«-Ausnahmebehandlung verwendet"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "die Funktion %q+F kann nie »inline« sein, da sie ein nichtlokales »goto« enthält"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "die Funktion %q+F kann nie »inline« sein, da sie %<__builtin_return%> oder %<__builtin_apply_args%> verwendet"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "die Funktion %q+F kann nie »inline« sein, da sie ein berechnetes »goto« enthält"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "die Funktion %q+F kann nie »inline« sein, da sie ein Argument vom Typ Array variabler Länge hat"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "die Funktion %q+F kann nie inline sein, da dies mit %<-fno-inline%> unterdrückt wird"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "Funktion %q+F kann nie inline sein, da sie mit inline in Konflikt stehende Attribute hat"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "Inlining beim Aufruf von %q+F mit %<always_inline%> fehlgeschlagen: %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "von hier aufgerufen"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, gcc-internal-format
 msgid "called from this function"
 msgstr "von dieser Funktion aus aufgerufen"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "»inline« beim Aufruf von %q+F gescheitert: %s"
@@ -32180,27 +32180,27 @@ msgstr "invalid fn spec attribute \"%s\""
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "invalid fn spec attribute \"%s\" arg %i"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr "Zeiger %qs ist null"
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr "in einem Aufruf der nicht-statischen Elementfunktion %qD"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr "Argument %u ist null, aber nichtnull wird erwartet"
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "in einem Aufruf der eingebauten Funktion %qD"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "in einem Aufruf der Funktion %qD, die als %qs deklariert ist"
@@ -32405,7 +32405,7 @@ msgstr "%qs ist nicht initialisiert, wird aber benutzt"
 msgid "%qs may be used uninitialized"
 msgstr "%qs könnte uninitialisiert verwendet werden"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD wurde hier deklariert"
@@ -32651,7 +32651,7 @@ msgstr "Vektorbedingung wird stückweise ausgeweitet"
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr "Vektorumverteilungsoperation wird stückweise ausgeweitet"
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr "Vektorisierung für eine SIMD-Schleife nicht durchgeführt"
@@ -32666,122 +32666,122 @@ msgstr "non-constant element in constant CONSTRUCTOR"
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr "side-effects element in no-side-effects CONSTRUCTOR"
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "Arrays von Funktionen sind sinnlos"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "Rückgabetyp der Funktion kann keine Funktion sein"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "tree check: %s, have %s in %s, at %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "tree check: expected none of %s, have %s in %s, at %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qD ist veraltet: %s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qD ist veraltet"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE ist veraltet: %s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%qE ist veraltet"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "Typ ist veraltet: %s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "Typ ist veraltet"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, gcc-internal-format
 msgid "%qD is unavailable: %s"
 msgstr "%qD ist nicht verfügbar: %s"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, gcc-internal-format
 msgid "%qD is unavailable"
 msgstr "%qD ist nicht verfügbar"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, gcc-internal-format
 msgid "%qE is unavailable: %s"
 msgstr "%qE ist nicht verfügbar: %s"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, gcc-internal-format
 msgid "%qE is unavailable"
 msgstr "%qE ist nicht verfügbar"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr "Typ ist nicht verfügbar: %s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, gcc-internal-format
 msgid "type is unavailable"
 msgstr "Typ ist nicht verfügbar"
@@ -32806,262 +32806,262 @@ msgstr "Typ ist nicht verfügbar"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr "Interner Compilerfehler: type variant differs by %s"
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr "Interner Compilerfehler: type variant has different %<TYPE_SIZE_UNIT%>"
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr "Interner Compilerfehler: type variant%'s %<TYPE_SIZE_UNIT%>"
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr "Interner Compilerfehler: type%'s %<TYPE_SIZE_UNIT%>"
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr "Interner Compilerfehler: type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr "Interner Compilerfehler: type variant has different %<TYPE_VFIELD%>"
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr "Interner Compilerfehler: type variant has different %<TYPE_BINFO%>"
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr "Interner Compilerfehler: type variant%'s %<TYPE_BINFO%>"
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr "Interner Compilerfehler: type%'s %<TYPE_BINFO%>"
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr "Interner Compilerfehler: type variant has different %<TYPE_FIELDS%>"
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr "Interner Compilerfehler: first mismatch is field"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr "Interner Compilerfehler: and field"
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr "Interner Compilerfehler: type variant has different %<TREE_TYPE%>"
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr "Interner Compilerfehler: type variant%'s %<TREE_TYPE%>"
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr "Interner Compilerfehler: type%'s %<TREE_TYPE%>"
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "Interner Compilerfehler: type is not compatible with its variant"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not an opaque type"
 msgstr "Typ %s ist kein undurchsichtiger Ausdruck"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not with opaque mode"
 msgstr "Typ %s ist nicht im undurchsichtigen Modus"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr "Typ %s unterscheidet sich durch %<TYPE_MODE%>"
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr "Typ %s unterscheidet sich durch %<TYPE_SIZE%>"
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr "Typ %s unterscheidet sich durch %<TYPE_ALIGN%>"
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr "Typ %s unterscheidet sich durch %<TYPE_USER_ALIGN%>"
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, gcc-internal-format
 msgid "main variant is not defined"
 msgstr "Interner Compilerfehler: main variant is not defined"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr "Interner Compilerfehler: %<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr "Interner Compilerfehler: %<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr "Interner Compilerfehler: %<TYPE_CANONICAL%> is not compatible"
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr "Interner Compilerfehler: %<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr "Interner Compilerfehler: %<TYPE_CANONICAL%> of main variant is not main variant"
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr "Interner Compilerfehler: %<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr "Interner Compilerfehler: %<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr "Interner Compilerfehler: %<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr "Interner Compilerfehler: %<TYPE_BINFO%> is not %<TREE_BINFO%>"
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr "Interner Compilerfehler: %<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr "Interner Compilerfehler: %<TYPE_METHOD_BASETYPE%> is not record nor union"
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr "Interner Compilerfehler: %<TYPE_OFFSET_BASETYPE%> is not record nor union"
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr "Interner Compilerfehler: %<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr "Interner Compilerfehler: %<TYPE_MAX_VALUE_RAW%> non-NULL"
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr "Interner Compilerfehler: %<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr "Interner Compilerfehler: enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr "Interner Compilerfehler: enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr "Interner Compilerfehler: enum value name is not %<IDENTIFIER_NODE%>"
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "Interner Compilerfehler: array %<TYPE_DOMAIN%> is not integer type"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "Interner Compilerfehler: %<TYPE_FIELDS%> defined in incomplete type"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr "Interner Compilerfehler: wrong tree in %<TYPE_FIELDS%> list"
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr "Interner Compilerfehler: %<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr "Interner Compilerfehler: %<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr "Interner Compilerfehler: wrong %<TYPE_CACHED_VALUES%> entry"
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr "Interner Compilerfehler: %<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr "Interner Compilerfehler: wrong entry in %<TYPE_ARG_TYPES%> list"
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr "Interner Compilerfehler: %<TYPE_VALUES_RAW%> field is non-NULL"
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr "Interner Compilerfehler: %<TYPE_CACHED_VALUES_P%> is set while it should not be"
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr "Interner Compilerfehler: %<TYPE_METHOD_BASETYPE%> is not main variant"
@@ -33276,7 +33276,7 @@ msgstr "Alias-Definitionen werden in dieser Konfiguration nicht unterstützt"
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "Sichtbarkeitsattribute werden in dieser Konfiguration nicht unterstützt; ignoriert"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr "%+qD ohne %<retain%>-Attribut und %qD mit %<retain%>-Attribut liegen in einem Abschnitt mit demselben Namen"
@@ -33478,7 +33478,7 @@ msgstr "Attribut %qE ignoriert, da %qD keine Variable ist"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "Attribut %qE ignoriert, da %qD keine lokale Variable ist"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "Attribut %qE wirkt sich nur auf öffentliche Objekte aus"
@@ -33660,7 +33660,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "Attribut %qE wird ignoriert, da es sich nicht auf eine Variable bezieht"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "Attribut %qE kann nicht für lokale Variablen angegeben werden"
@@ -33975,7 +33975,7 @@ msgstr "%qD ist mit %qD unverträglich"
 msgid "%qE argument is not a function"
 msgstr "Argument %qE ist keine Funktion"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "Veraltete Meldung ist keine Zeichenkette"
@@ -34483,7 +34483,7 @@ msgstr "ISO-C++ erlaubt kein auf Funktionstypen angewendetes %<alignof%>"
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "ISO-C erlaubt kein auf Funktionstypen angewendetes %<_Alignof%>"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "Ungültige Anwendung von %qs auf einen void-Typen"
@@ -34614,17 +34614,17 @@ msgstr "Attribut %<fallthrough%> ist mehrfach angegeben"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "%<fallthrough%>-Attribut mit einem Parameter angegeben"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "Zu wenige Argumente für Funktion %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -34748,166 +34748,166 @@ msgstr "Versuch, die Adresse des Bitfeldstrukturelements %qD zu ermitteln"
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr "Index %E markiert einen Offset größer als die Größe von %qT"
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "Arraygröße ist zu groß"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "Operandentyp %qT ist inkompatibel mit Argument %d von %qE"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "als Argument 1 wurde entweder ein Zeigertyp oder ein Ganzzahltyp erwartet"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr "die beiden Argumente müssen kompatibel sein"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "Falsche Anzahl der Argumente für Funktion %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "Argument 1 von %qE muss ein Nicht-Void-Zeigertyp sein"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "Argument 1 von %qE muss ein Zeiger auf einen vollständigen Typen sein"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "Argument 1 von %qE muss ein Zeiger auf Typen konstanter Größe sein"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "Argument 1 von %qE muss ein Zeiger auf Objekt breiter als Null sein"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "Argument %d von %qE muss eine Zeigertyp sein"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "Argument %d von %qE muss ein Zeiger auf Typen konstanter Größe sein"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "Argument %d von %qE darf kein Zeiger auf eine Funktion sein"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "Unpassende Größe in Argument %d von %qE"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "Argument %d von %qE darf kein Zeiger auf einen %<const%>-Typen sein"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "Argument %d von %qE entfernt Kennzeichner %<const%>"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "Argument %d von %qE darf kein Zeiger auf einen %<volatile%>-Typen sein"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "Argument %d von %qE entfernt Kennzeichner %<volatile%>"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "Nicht-Ganzzahlargument %d für Speichermodell von %qE"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "ungültiges Argument %d für Speichermodell von %qE"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr "dieses Ziel definiert keine Spekulationsbarriere; das erzeugte Programm wird trotzdem korrekt laufen, aber irrige Spekulationen sind möglicherweise nicht eingeschränkt"
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "Indexwert ist außerhalb der Grenzen"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "Umwandlung von Skalar %qT in Vektor %qT führt zum Abschneiden"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "eingebaute Funktion %qE muss direkt aufgerufen werden"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, gcc-internal-format
 msgid "size of array %qE is not a constant expression"
 msgstr "Größe des Arrays %qE ist kein konstanter Ausdruck"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, gcc-internal-format
 msgid "size of array is not a constant expression"
 msgstr "Größe des Arrays ist kein konstanter Ausdruck"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, gcc-internal-format
 msgid "size %qE of array %qE is negative"
 msgstr "Größe %qE des Arrays %qE ist negativ"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, gcc-internal-format
 msgid "size %qE of array is negative"
 msgstr "Größe %qE des Arrays ist negativ"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr "Größe %qE des Arrays %qE übersteigt maximale Objektgröße %E"
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr "Größe %qE des Arrays überschreitet maximale Objektgröße %qE"
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "Größe des Arrays %qE übersteigt maximale Objektgröße %E"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr "Größe des Arrays übersteigt maximale Objektgröße %qE"
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr "Umgebungsvariable %qs muss ganzzahlig sein und zwischen 0 und %wd liegen"
@@ -35531,7 +35531,7 @@ msgstr "Ganzzahlkonstante ist zu groß für %<unsigned _BitInt(%d)%>-Typ"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "Ganzzahlkonstante ist zu groß für %<_BitInt(%d)%>-Typ"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "%<_BitInt(%d)%> wird für dieses Ziel nicht unterstützt"
@@ -35611,7 +35611,7 @@ msgstr "nicht unterstützte Nicht-Standard-Verkettung von Zeichenkettenliteralen
 msgid "traditional C rejects string constant concatenation"
 msgstr "traditionelles C weist Zeichenkettenkonstantenverkettung zurück"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr "%<#pragma omp critical%> mit %<hint%>-Klausel erfordert einen Namen, außer wenn %<omp_sync_hint_none%> verwendet wird"
@@ -35667,7 +35667,7 @@ msgstr "%<depobj%>-Abhängigkeitstyp in %<depend%>-Klausel von %<depobj%> angege
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr "%<iterator%>-Modifizierer darf nicht bei einem %<depobj%>-Konstrukt angegeben sein"
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "ungültiger Typ für Schleifenvariable %qE"
@@ -35682,17 +35682,17 @@ msgstr "%<_Atomic%>-Iterationsvariable %qE"
 msgid "%qE is not initialized"
 msgstr "%qE ist nicht initialisiert"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "Steuerprädikat fehlt"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "Steuerprädikat ungültig"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "Erhöhungsausdruck fehlt"
@@ -35702,7 +35702,7 @@ msgstr "Erhöhungsausdruck fehlt"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr "Erhöhung ist weder konstant 1 noch konstant -1 für die %<!=%>-Bedingung"
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "Erhöhungsausdruck ungültig"
@@ -35787,7 +35787,7 @@ msgstr "ungültiger %<task%>-Reduktionsmodifizierer in Konstrukt, das nicht mit
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr "%<inscan%>-%<reduction%>-Klausel bei Konstruktion außer %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr "%qD ist in %<allocate%>-Klausel angegeben, aber nicht in einer expliziten Privatisierungs-Klausel"
@@ -35797,7 +35797,7 @@ msgstr "%qD ist in %<allocate%>-Klausel angegeben, aber nicht in einer explizite
 msgid "%qD is not a function argument"
 msgstr "%qD ist kein Funktionsargument"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr "Bitfeld %qE in %qs-Klausel"
@@ -36389,7 +36389,7 @@ msgid "wrong type argument to %s"
 msgstr "Argument falschen Typs für %s"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -37313,35 +37313,35 @@ msgstr "Vergleich zwischen zwei Arrays"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
-msgstr "verwenden Sie das unäre %<+%>, das Operanden zu Zeigern degradiert, oder %<&%D[0] %s &%D[0]%>, um die Adressen zu vergleichen"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
+msgstr "das unäre %<+%> verwenden, das Operanden zu Zeigern oder zu %<&%s%E%s[0] %s &%s%E%s[0]%> degradiert, um die Adressen zu vergleichen"
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
-msgstr "verwenden Sie %<&%D[0] %s &%D[0]%>, um die Adressen zu vergleichen"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
+msgstr "%<&%s%E%s[0] %s &%s%E%s[0]%> verwenden, um die Adressen zu vergleichen"
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr "das Ergebnis von %<%wu ^ %wu%> ist %wu; meinten Sie %<1 << %wu%> (%wu)?"
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr "das Ergebnis von %<%wu ^ %wu%> ist %wu; meinten Sie %<1LL << %wu%>?"
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr "das Ergebnis von %<%wu ^ %wu%> ist %wu; meinten Sie Potenzbildung?"
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr "das Ergebnis von %<%wu ^ %wu%> ist %wu; meinten Sie %<1e%wu%>?"
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr "Sie können diese Warnung unterdrücken, indem Sie eine hexadezimale Konstante verwenden (%wx statt %wd)"
@@ -37552,122 +37552,122 @@ msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 3
 msgstr "für die Option %<-mcache-block-size=X%> sind nur die Werte 4, 8, 16, 32, 64, 128, 256 oder 512 gültig"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99291
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr "%<-march=%s%>: Erweiterung %qs kommt mehr als einmal vor"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99291
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr "%<-march=%s%>: Erweiterung %qs ist eine nicht unterstützte Einbuchstaben-Erweiterung"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99291
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr "%<-march=%s%>: die Erweiterung %qs beginnt mit %<z%>, ist aber eine nicht unterstützte Standarderweiterung"
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr "%<-march=%s%>: Erweiterung %qs beginnt mit %<s%>, ist aber eine nicht unterstützte Standard-Supervisor-Erweiterung"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99291
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr "%<-march=%s%>: Erweiterung %qs beginnt mit %<x%>, ist jedoch eine nicht unterstützte Nicht-Standard-Erweiterung"
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr "%<-march=%s%>: nach %<%dp%> muss eine Zahl stehen"
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr "%<-march=%s%>: für %<%s%dp%dp?%> wird Versionsnummer mit mehr als 2 Stufen nicht unterstützt"
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr "%<-march=%s%>: ISA-Zeichenkette muss mit %<rv32%> oder %<rv64%> anfangen"
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr "%<-march=%s%>: rv%de ist keine gültige Basis-ISA"
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr "Version von %<g%> wird weggelassen, bitte geben Sie die Version für die individuelle Erweiterung an"
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr "%<-march=%s%>: erste ISA-Teilmenge muss %<e%>, %<i%> oder %<g%> sein"
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr "%<-march=%s%>: Die Erweiterung %<%c%> ist keine einbuchstabige Erweiterung."
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99291
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr "%<-march=%s%>: Erweiterung zcf wird nur in rv32 unterstützt"
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr "%<-march=%s%>: z*inx ist mit Gleitkommaerweiterungen unverträglich"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99291
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr "%<-march=%s%>: Erweiterung h erfordert Erweiterung i"
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "%<-march=%s%>: zcd steht im Konflikt mit zcmt"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "%<-march=%s%>: zcd steht im Konflikt mit zcmp"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr "%<-march=%s%>: xtheadvector steht im Konflikt mit der Vektorerweiterung oder ihren Untererweiterungen"
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr "%<-march=%s%>: Name von %s muss mehr als 1 Buchstabe sein"
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "%<-march=%s%>: %s müssen durch %<_%> getrennt sein"
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr "%<-march=%s%>: i, e oder g muss die erste Erweiterung sein"
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%<-mcpu=%s%>: unbekannte CPU"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr "Keine Menge von geeigneten Multibibliotheken für %<-march=%s%>/%<-mabi=%s%> gefunden"
@@ -38067,12 +38067,12 @@ msgstr "64-Bit-Adresse erwartet, aber Argument 1 hat %d Bit"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "64-Bit-Adresse erwartet, aber Argument 2 hat %d Bit"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC aarch64%> erfordert eine Zeichenkette als Parameter"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr "unbekannte Option %qs für %<#pragma GCC aarch64%>"
@@ -38636,7 +38636,7 @@ msgstr "die Parameterübergabe für das Argument vom Typ %qT hat sich in GCC 14.
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr "die Parameterübergabe für das Argument vom Typ %qT hat sich in GCC 9.1 geändert"
@@ -38712,13 +38712,13 @@ msgid "unknown tuning option (%s)"
 msgstr "unbekannte Tuning-Option »%s«"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr "die Optionen %<-mstack-protector-guard=global%> und %<-mstack-protector-guard-offset=%s%> sind unverträglich"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90153
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr "wenn %<-mstack-protector-guard=sysreg%> angegeben ist, müssen sowohl %<-mstack-protector-guard-offset%> als auch %<-mstack-protector-guard-reg%> angegeben werden"
@@ -38730,7 +38730,7 @@ msgid "specify a system register with a small string length"
 msgstr "Systemregister mit einem kurzem Namen angeben"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "%qs ist in %qs kein gültiger Offset"
@@ -38915,9 +38915,9 @@ msgstr "Pragma oder Attribut %<target(\"%s\")%> erlaubt keine negierte Form"
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "Pragma oder Attribut %<target(\"%s=%s\")%> ist nicht gültig"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "Argument für Attribut %<target%> ist keine Zeichenkette"
@@ -38969,18 +38969,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "Multiversionierung virtueller Funktionen wird nicht unterstützt"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "Multiversionierung erfordert %<ifunc%>, was auf diesem Ziel nicht unterstützt wird"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr "die Parameterübergabe für das Argument vom Typ %qT mit %<[[no_unique_address]]%>-Elementen hat sich %{in GCC 10.1%} geändert"
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr "die Parameterübergabe für das Argument vom Typ %qT hat sich, sofern C++17 aktiviert ist, so geändert, dass es C++14 %{in GCC 10.1%} entspricht"
 
@@ -38993,8 +38993,8 @@ msgstr "die Parameterübergabe für das Argument vom Typ %qT hat sich %{mit GCC
 msgid "lane %wd out of range %wd - %wd"
 msgstr "Spur %wd ist außerhalb des Wertebereiches %wd bis %wd"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, gcc-internal-format
 msgid "unsupported simdlen %wd"
 msgstr "nicht unterstützte simdlen %wd"
@@ -39004,7 +39004,7 @@ msgstr "nicht unterstützte simdlen %wd"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "GCC bietet derzeit keine Unterstützung für Rückgabetyp %qT für SIMD-Funktionen"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr "nicht unterstützter Rückgabetyp %qT für SIMD"
@@ -39014,7 +39014,7 @@ msgstr "nicht unterstützter Rückgabetyp %qT für SIMD"
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "GCC bietet derzeit keine Unterstützung für Parametertyp %qT für SIMD-Funktionen"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "nicht unterstützter Argumenttyp %qT für SIMD"
@@ -39104,8 +39104,8 @@ msgstr "L%d Cache-Wartezeit unbekannt für %s"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "falscher Wert %qs für %<-mmemory-latency%>"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "Falscher eingebauter fcode"
@@ -39225,18 +39225,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "Argument des Attributes %qE ist weder »ilink« oder »firq«"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -39350,7 +39350,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "Argument des Attributs %qE fehlt"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "Attribut %qE erlaubt nur eine Ganzzahlkonstante als Argument"
@@ -39370,23 +39370,23 @@ msgstr "Attribut %qE kann nur auf Typen angewandt werden"
 msgid "argument of %qE attribute ignored"
 msgstr "Argument des Attributs %qE wird ignoriert"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "Attribut %qE bezieht sich nur auf Variablen"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr "Alternativen sind in %<asm%>-Flag-Ausgabe nicht erlaubt"
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr "unbekannte Ausgabe %qs des %<asm%>-Schalters"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr "ungültiger Typ für %<asm%>-Schalter-Ausgabe"
@@ -39630,7 +39630,7 @@ msgstr "Ziel-CPU unterstützt keine THUMB-Befehle"
 msgid "target CPU does not support unaligned accesses"
 msgstr "Ziel-CPU unterstützt keine unausgerichteten Zugriffe"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, gcc-internal-format
 msgid "This architecture does not support branch protection instructions"
 msgstr "Diese Architektur unterstützt keine Befehle mit Sprungschutz"
@@ -39680,7 +39680,7 @@ msgstr "Grenze für Strukturgröße kann nur auf 8 oder 32 gesetzt werden"
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "RTP PIC ist mit %<-msingle-pic-base%> unverträglich"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr "Der FDPIC-Modus wird im Thumb-1-Modus nicht unterstützt"
@@ -39786,7 +39786,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr "Argument vom Typ %qT ist zusammen mit %<-mgeneral-regs-only%> nicht erlaubt"
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr "die Parameterübergabe für das Argument vom Typ %qT hat sich in GCC 7.1 geändert"
@@ -39826,43 +39826,43 @@ msgstr "Attribut %qE wirkt sich nicht auf Funktionen mit »static«-Bindung aus"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "Attribut %qE kann nur auf Basistypen von Funktionszeiger angewandt werden"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr "Zugriff auf threadlokalen Speicher wird derzeit mit %<-mpure-code%> oder %<-mslow-flash-data%> nicht unterstützt"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79871
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr "»%s« %wd ist außerhalb des gültigen Bereichs von %wd bis %wd"
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "Wirkliche Stelle des gestapelten Parameters kann nicht berechnet werden"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr "Unexpected thumb1 far jump"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "keine unteren Register für das Hervorholen der hohen Register verfügbar"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "Interrupt-Dienst-Routinen können nicht im »Thumb-1«-Modus codiert werden"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr "%<-fstack-check=specific%> für Thumb-1"
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr "ungültige FPU für Zielattribut oder -pragma %qs"
@@ -39870,22 +39870,22 @@ msgstr "ungültige FPU für Zielattribut oder -pragma %qs"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr "automatische FPU-Auswahl ist hier momentan nicht erlaubt"
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "Ungültige Architektur für Zielattribut oder -pragma %qs"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr "Unbekanntes Zielattribut oder -pragma %qs"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "%<asm%>-Schalter werden im Thumb1-Modus nicht unterstützt"
@@ -39939,159 +39939,159 @@ msgstr "Unterstützte Kernarchitekturen:%s"
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "Unbekannte Kernarchitektur %qs in %qs angegeben"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, gcc-internal-format
 msgid "%<-fpic%> is not supported"
 msgstr "%<-fpic%> wird nicht unterstützt"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
 msgstr "%<-fPIC%> wird nicht unterstützt"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, gcc-internal-format
 msgid "%<-fpie%> is not supported"
 msgstr "%<-fpie%> wird nicht unterstützt"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr "%<-fPIE%> wird nicht unterstützt"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "Funktionsattribute %qs und %qs schließen sich gegenseitig aus"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "Funktion %qs kann keine Argumente haben"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "Funktion %qs kann keinen Wert zurückgeben"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79883
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs scheint ein falsch geschriebener %qs-Handler zu sein, das Präfix %<__vector%> fehlt"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr "%qs ist in der AVR-LibC ein reservierter Bezeichner. Erwägen Sie %<#include <avr/interrupt.h>%> vor der Benutzung des Makros %qs"
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr "%qs ist in der AVR-LibC ein veralteter Bezeichner. Erwägen Sie %<#include <avr/interrupt.h>%> oder %<#include <compat&deprecated.h>%> vor der Benutzung des Makros %qs"
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr "%<builtin_return_address%> enthält nur 2 Adressbytes"
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr "Zeigeroffset von Symbol könnte falsch sein"
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr "Zugriff auf Datenspeicher mit Programmspeicheradresse"
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr "Zugriff auf Programmspeicher mit Datenspeicheradresse"
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr "festes Register %s zur Parameterübergabe an Funktion verwendet"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "Schreibzugriff auf Adressraum %qs wird nicht unterstützt"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "Attribut %qE kann nur für »static«-Variablen verwendet werden"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "Attribut %qE wird nur für reduzierte Tiny-Kerne unterstützt"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "Adresse von Attribut %qE außerhalb des gültigen Bereichs 0x%x%s0x%x"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr "sowohl »%s« als auch das %qE-Attribut geben die Adresse an"
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "Attribut %qE an nicht-»volatile«-Variable"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "Adressräume werden auf reduzierten Tiny-Kernen nicht unterstützt"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "Adressraum %qs wird auf Geräten mit Flashspeicher bis zu %d KiB nicht unterstützt"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr "Zeiger auf Adressraum %qs muss in %qT konstant sein"
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr "Zeiger auf Adressraum %qs muss in %s %q+D konstant sein"
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "variablen %q+D, die mit dem %qs-Attribut markiert ist, muss im statischen Speicher verortet sein"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr "Variable %q+D muss konstant sein, um mit %qs in Nur-Lese-Abschnitt gelegt zu werden"
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "statische Attributdeklaration %qs für %q+D erfordert eine Adresse"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "Nur uninitialisierte Variablen können im %<.noinit%>-Bereich platziert werden"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "dynamisch initialisierte Variable %q+D in Programmspeicherbereich platziert"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "nicht initialisierte Variable %q+D in Programmspeicherbereich platziert"
@@ -40100,42 +40100,42 @@ msgstr "nicht initialisierte Variable %q+D in Programmspeicherbereich platziert"
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "die Variable %q+D mit dem Attribut %qs darf keinen Initialisierer haben"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%q+D hat unverträgliche Attribute %qs und %qs"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "Architektur %qs wird nur für Assemblierung unterstützt"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "Umwandlung von Adressraum %qs in Adressraum %qs"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "%s erwartet eine Ganzzahlkonstante zur Kompilierzeit"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%s erwartet eine Long-Ganzzahlkonstante als erstes Argument zur Kompilierzeit"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr "Rundung auf %d Bits hat keinen Effekt für Festkommawert mit %d Bit Nachkommaanteil"
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr "Rundungsergebnis wird immer 0 sein"
@@ -40271,7 +40271,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "indirekter Aufruf in Funktion, das wird von eBPF nicht unterstützt"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -40890,8 +40890,8 @@ msgstr "Das Argument zum eingebauten %<xabort%> ein 8-Bit-Direktwert sein"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr "Funktionsversionen können nicht als %<gnu_inline%> markiert werden, Körper müssen generiert werden"
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "Codemodell %s unterstützt keinen PIC-Modus"
@@ -40957,255 +40957,255 @@ msgstr "zu viele Größenbereiche in Option %qs angegeben"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr "Unbekannter Parameter für Option %<-mtune-ctrl%>: %s"
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "Intel-MCU-psABI wird im %s-Modus nicht unterstützt"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%<-mtune=x86-64%> ist veraltet; stattdessen entsprechend %<-mtune=k8%> oder %<-mtune=generic%> verwenden"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%<target(\"tune=x86-64\")%> ist veraltet; stattdessen entsprechend %<target(\"tune=k8\")%> oder %<target(\"tune=generic\")%> verwenden"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr "Unterstützung von %<-mtune=knl%> wird in GCC 15 entfernt"
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr "Unterstützung für %<target(\"tune=knl\")%> wird in GCC 15 entfernt"
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr "Unterstützung von %<-mtune=knm%> wird in GCC 15 entfernt"
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr "Unterstützung für %<target(\"tune=knm\")%> wird in GCC 15 entfernt"
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "%<-mstringop-strategy=rep_8byte%> wird für 32-Bit-Code nicht unterstützt"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, gcc-internal-format
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "%<-mapxf%> wird für 32-Bit-Code nicht unterstützt"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, gcc-internal-format
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "%<-mapx-features=%> wird für 32-Bit-Code nicht unterstützt"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "%<-muintr%> wird für 32-Bit-Code nicht unterstützt"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "%<-mlam=%>-Option: [u48|u57] wird für 32-Bit-Code nicht unterstützt"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "Adressmodus %qs wird im %s-Bit-Modus nicht unterstützt"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "%<-mabi=ms%> wird in der X32-ABI nicht unterstützt"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "%<-mabi=%s%> wird nicht zusammen mit %<-fsanitize=address%> unterstützt"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "%<-mabi=%s%> wird nicht zusammen mit %<-fsanitize=kernel-address%> unterstützt"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "%<-mabi=%s%> wird nicht zusammen mit %<-fsanitize=thread%> unterstützt"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr "%<-mlam=u48%> ist nicht kompatibel mit hardwareunterstütztem AddressSanitizer, stattdessen wird %<-mlam=u57%> verwendet"
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "Codemodell %qs wird im %s-Bit-Modus nicht unterstützt"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "Codemodell %qs wird im x32-Modus nicht unterstützt"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "%<-masm=intel%> wird in dieser Konfiguration nicht unterstützt"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "%i-Bit-Modus nicht einkompiliert"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "%<generic%>-CPU kann nur für %<-mtune=%>-Schalter verwendet werden"
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "%<generic%>-CPU kann nur für %<target(\"tune=\")%>-Schalter verwendet werden"
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "die CPU %<intel%> kann nur für den Schalter %<-mtune=%> verwendet werden"
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "die CPU %<intel%> kann nur für das Attribut %<target(\"tune=\")%> verwendet werden"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "Die ausgewählte CPU unterstützt nicht den x86-64-Befehlssatz"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr "Unterstützung für %<-march=knl%> wird in GCC 15 entfernt"
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr "Unterstützung für %<target(\"arch=knl\")%> wird in GCC 15 entfernt"
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr "Unterstützung für %<-march=knm%> wird in GCC 15 entfernt"
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr "Unterstützung für %<target(\"arch=knm\")%> wird in GCC 15 entfernt werden"
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, gcc-internal-format
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "falscher Wert %qs für Schalter %<-march=%>"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "unbekannter Wert %qs für Attribut %<target(\"arch=\")%>"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "gültige Argumente für %<-march=%> sind: %s; meinten Sie %qs?"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr "gültige Argumente für %<target(\"arch=\")%> sind: %s; meinten Sie %qs?"
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "gültige Argumente für %<-march=%> sind: %s"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "gültige Argumente für %<target(\"arch=\")%> sind: %s"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "falscher Wert %qs für Schalter %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "falscher Wert %qs für Attribut %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "gültige Argumente für %<-mtune=%> sind: %s; meinten Sie %qs?"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr "gültige Argumente für %<target(\"tune=\")%> sind: %s; meinten Sie %qs?"
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "gültige Argumente für %<-mtune=%> sind: %s"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "gültige Argumente für %<target(\"tune=\")%> sind: %s"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "%<-mregparm%> wird im 64-Bit-Modus ignoriert"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "%<-mregparm%> wird für Intel-MCU-psABI ignoriert"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, gcc-internal-format
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "%<-mregparm=%d%> liegt nicht zwischen 0 und %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "%<-m96bit-long-double%> ist nicht mit diesem Ziel kompatibel"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "%<-mrtd%> wird im 64-Bit-Modus ignoriert"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "%<target(\"rtd\")%> wird im 64-Bit-Modus ignoriert"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr "%<-mno-evex512%> oder %<-mno-avx512XXX%> kann AVX10-Befehle nicht deaktivieren, wenn AVX10.1-512 verfügbar ist"
@@ -41213,290 +41213,290 @@ msgstr "%<-mno-evex512%> oder %<-mno-avx512XXX%> kann AVX10-Befehle nicht deakti
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr "Die Verwendung von %<-mevex512%> ohne aktivierte AVX512-Funktionen zusammen mit AVX10.1 aktiviert keine AVX512- oder AVX10.1-512-Funktionen und verwendet 256 als maximale Vektorgröße"
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr "Vektorgrößenkonflikte zwischen AVX10.1 und AVX512, als maximale Vektorgröße wird 512 verwendet"
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr "%<-mno-avx512XXX%> kann AVX10-Anweisungen nicht deaktivieren, wenn AVX10 verfügbar ist"
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> können AVX512-Anweisungen nicht deaktivieren, wenn %<-mavx512XXX%> gewählt ist"
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "%<-mpreferred-stack-boundary%> wird für dieses Ziel nicht unterstützt"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "%<-mpreferred-stack-boundary=%d%> liegt nicht zwischen %d und %d"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "%<-mincoming-stack-boundary=%d%> liegt nicht zwischen %d und 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "%<-mnop-mcount%> ist nicht mit diesem Ziel kompatibel"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "%<-mnop-mcount%> ist für %<-fPIC%> nicht implementiert"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "%<-msseregparm%> verwendet, ohne dass SSE eingeschaltet ist"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "%<target(\"sseregparm\")%> verwendet, ohne dass SSE eingeschaltet ist"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "SSE-Befehlssatz ausgeschaltet, es wird 387-Arithmetik verwendet"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "387-Befehlssatz ausgeschaltet, es wird SSE-Arithmetik verwendet"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "Stapel-Überprüfung erfordert %<-maccumulate-outgoing-args%> für Korrektheit"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "Stapel-Überprüfung erfordert %<target(\"accumulate-outgoing-args\")%> für Korrektheit"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr "feststehendes ebp-Register erfordert %<-maccumulate-outgoing-args%>"
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr "feststehendes ebp-Register erfordert %<target(\"accumulate-outgoing-args\")%>"
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr "%<-mfentry%> wird für 32 Bit in Kombination mit %<-fpic%> nicht unterstützt"
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "%<-mno-fentry%> ist nicht mit SEH verträglich"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr "%<-mcall-ms2sysv-xlogues%> wird derzeit nicht zusammen mit SEH unterstützt"
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "unbekannte Option für %<-mrecip=%s%>"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs ist keine gültige Zahl in %<-mstack-protector-guard-offset=%>"
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs ist kein gültiger Offset in %<-mstack-protector-guard-offset=%>"
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr "%qs ist kein gültiges Basisregister in %<-mstack-protector-guard-reg=%>"
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr "%<-fcf-protection=full%> wird von %<-fhardened%> nicht aktiviert, da es in der Befehlszeile angegeben wurde"
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "%<-fcf-protection%> ist nicht mit diesem Ziel kompatibel"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr "die Attribute %<interrupt%> und %<naked%> sind nicht kompatibel"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr "Attribute %qs und %qs sind nicht verträglich"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr "Nur das DWARF-Debugformat ist für Interrupt-Service-Routinen unterstützt"
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "%<-mindirect-branch=%s%> und %<-mcmodel=large%> sind nicht kompatibel"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr "%<-mindirect-branch%> und %<-fcf-protection%> sind nicht kompatibel"
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "%<-mfunction-return=%s%> und %<-mcmodel=large%> sind nicht kompatibel"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr "%<-mfunction-return%> und %<-fcf-protection%> sind nicht kompatibel"
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr "%s-Befehle sind in Exception-Serviceroutine nicht erlaubt"
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "%s-Befehle sind in Interrupt-Serviceroutine nicht erlaubt"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "%s-Befehle sind in Funktionen mit %<no_caller_saved_registers%>-Attribut nicht erlaubt"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "Attribute fastcall und regparm sind nicht verträglich"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "Attribute regparam und thiscall sind nicht verträglich"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "Attribut %qE benötigt eine Ganzzahlkonstante als Argument"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "Argument für Attribut %qE ist größer als %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "Attribute fastcall und cdecl sind nicht verträglich"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "Attribute fastcall und stdcall sind nicht verträglich"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "Attribute fastcall und thiscall sind nicht verträglich"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "Attribute stdcall und cdecl sind nicht verträglich"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "Attribute stdcall und fastcall sind nicht verträglich"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "Attribute stdcall und thiscall sind nicht verträglich"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "Attribute cdecl und thiscall sind nicht verträglich"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "Attribut %qE wird für Nicht-Klassen-Methode verwendet"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "%qE-inkompatibles Attribut wird ignoriert"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "Attribut %qE nur für 32 Bit verfügbar"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "Argument des Attributes %qE ist weder Null noch Eins"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "Attribut %qE erfordert eine Zeichenkettenkonstante als Argument"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "Argument des Attributes %qE ist nicht (keep|thunk|thunk-inline|thunk-extern)"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr "in Interrupt-Service-Routinen sollte das erste Argument ein Zeiger sein"
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "in Interrupt-Service-Routinen sollte das zweite Argument vom Typ %qs sein"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr "Interrupt-Service-Routine darf nur ein Zeiger- und ein optionales Ganzzahl-Argument haben"
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr "Interrupt-Service-Routine muss den Rückgabetyp %<void%> haben"
@@ -41689,46 +41689,46 @@ msgid "non-integer operand used with operand code %<z%>"
 msgstr "Nicht-Ganzzahl-Operand mit Operandencode %<z%> verwendet"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90164
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr "das ABI zum Übergeben von leeren Klassen (%qT) als Parametern hat sich mit %<-fabi-version=12%> (GCC 8) geändert"
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr "die Ausrichtung von %<_Atomic %T%>-Feldern wurde mit %{GCC 11.1%} geändert"
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, gcc-internal-format
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "kein Register für die Profilerstellung von %<-mcmodel=large%s%> verfügbar"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "Profiling von %<-mcmodel=large%> wird mit PIC nicht unterstützt"
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr "%<__bfloat16%> ist seit GCC 13.1 von typedef %<short%> zum echten %<__bf16%> umdefiniert, Vorsicht bei impliziter Konvertierung zwischen %<__bf16%> und %<short%>; hier kann ein explizites Bitcast nötig sein"
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr "Unbekanntes architekturspezifisches Speichermodell"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr "%<HLE_ACQUIRE%> wird mit %<ACQUIRE%> oder stärkerem Speichermodell nicht verwendet"
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr "%<HLE_RELEASE%> wird mit %<RELEASE%> oder stärkerem Speichermodell nicht verwendet"
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr "%<-fexcess-precision=16%> ist nicht mit %<-mfpmath=387%> kompatibel"
@@ -41748,8 +41748,8 @@ msgstr "Definition des statischen Datenelementes %q+D einer »dllimport«-ierten
 msgid "malformed %<#pragma builtin%>"
 msgstr "Falsch geformtes %<#pragma builtin%>"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "ungültiges Argument für Attribut %qE"
@@ -41804,12 +41804,12 @@ msgstr "%<PRINT_OPERAND%>: Unbekanntes Satzzeichen %<%c%>"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "%<PRINT_OPERAND%> Null-Zeiger"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "Argument %d der eingebauten Funktion muss eine Konstante aus dem Bereich %d bis %d sein"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "eingebaute Funktion konnte nicht expandiert werden"
@@ -41935,17 +41935,17 @@ msgstr "Codemodell %qs ist inkompatibel zu %s"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%qs kann nicht zum Übersetzen einer gemeinsam genutzten Bibliothek verwendet werden"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "Attribut %qE kann nicht für threadlokale Variablen angegeben werden"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "Attribut %qE kann nicht für Register-Variablen angegeben werden"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, gcc-internal-format
 msgid "multiple %qE attribute"
 msgstr "doppeltes Attribut %qE"
@@ -42046,12 +42046,12 @@ msgstr "mehrere Interruptattribute sind nicht erlaubt"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "%<interrupt_thread%> ist nur auf Fido verfügbar"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "Ausdruck der Stapelgrenze wird nicht unterstützt"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not supported on this target"
 msgstr "%<-fexcess-precision=16%> wird auf diesem Ziel nicht unterstützt"
@@ -42092,7 +42092,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr "%<-mxl-multiply-high%> erfordert %<-mno-xl-soft-mul%>"
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "Attribut %qE erfordert eine Zeichenkettenkonstante als Argument"
@@ -42132,132 +42132,132 @@ msgstr "Interruptvektor für %qE-Attribut ist nicht %<vector=(sw0|sw1|hw0|hw1|hw
 msgid "argument to %qE attribute is not intstack"
 msgstr "Argument des Attributes %qE ist nicht »intstack«"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr "die ABI für die Übergabe eines Wertes, der Felder mit Null-Breite vor einem benachbarten 64-Bit-Gleitkommafeld enthält, wurde %{mit GCC 12.1%} geändert"
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr "die ABI für die Rückgabe eines Wertes, der Bit-Felder mit der Breite Null enthält, aber ansonsten ein Aggregat mit nur einem oder zwei Fließkomma-Feldern ist, wurde %{mit GCC 12.1%} geändert"
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr "die ABI für die Rückgabe eines Wertes, der leere C++17-Basen enthält, aber ansonsten ein Aggregat mit nur einem oder zwei Fließkomma-Feldern ist, wurde %{mit GCC 12.1%} geändert"
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "inkonsistente Aufrufe von %qs können nicht behandelt werden"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr "das %<interrupt%>-Attribut erfordert einen MIPS32r2-Prozessor oder neuer"
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr "Interrupthandler können keine MIPS16-Funktionen sein"
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr "%<-fstack-check=specific%> nicht für MIPS16 implementiert"
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "eingebaute Funktion %qE nicht für MIPS16 unterstützt"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs unterstützt keinen MIPS16-Code"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr "MIPS16 PIC für ABIs außer o32 und o64"
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "MIPS16 %<-mxgot%> Code"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr "%<hard-float%> MIPS16-Code für andere ABIs als o32 und o64"
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr "MSA-MIPS16-Code"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "MIPS16 erfordert %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "nicht unterstützte Kombination: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "%<-%s%> steht in Konflikt mit den anderen Architekturoptionen, die einen %s-Prozessor angeben"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%<-march=%s%> ist mit dem ausgewählten ABI unverträglich"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "%<-mgp64%> mit einem 32-Bit-Prozessor verwendet"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "%<-mgp32%> mit einem 64-Bit-ABI verwendet"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "%<-mgp64%> mit einem 32-Bit-ABI verwendet"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "die Architektur %qs unterstützt %<-mfp32%> nicht"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "%<-mgp32%> und %<-mfp64%> können nur kombiniert werden, wenn das Ziel die Befehle mfhc1 und mthc1 unterstützt"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%> und %<-mfp64%> können nur kombiniert werden, wenn o32-ABI verwendet wird"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "%<-mfpxx%> kann nur mit dem o32-ABI verwendet werden"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "%<-march=%s%> erfordert %<-mfp32%>"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr "%<-mfpxx%> erfordert %<-mlra%>"
@@ -42267,117 +42267,117 @@ msgstr "%<-mfpxx%> erfordert %<-mlra%>"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "die Kombination von %qs und %qs ist mit %qs unverträglich"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "die Architektur %qs unterstützt keine Befehle mit Sprungwahrscheinlichkeit"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "die Architektur %qs unterstützt die Befehle »madd« und »msub« nicht"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "die Architektur %qs unterstützt keine ungeraden Register für einfache Genauigkeit"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr "nicht unterstützte Kombination: %qs%s %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr "nicht unterstützte Kombination: %qs %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "für %qs kann kein lageunabhängiger Code erzeugt werden"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "lageunabhängiger Code erfordert %qs"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> erfordert %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr "Kleindatenzugriffe für %qs nicht möglich"
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "die Architektur %qs unterstützt %<-m%s=legacy%> nicht"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "die Architektur %qs unterstützt %<-m%s=2008%>"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "%<-mips3d%> erfordert %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs muss mit %qs verwendet werden"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr "%<-mmsa%> muss zusammen mit %<-mfp64%> und %<-mhard-float%> verwendet werden"
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "die Architektur %qs unterstützt keine paarweisen Einzel-Befehle"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "%qs erfordert ein Ziel, das den %qs-Befehl unterstützt"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "die Architektur %qs unterstützt keine DSP-Befehle"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr "%<-mloongson-mmi%> muss zusammen mit %<-mhard-float%> verwendet werden"
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr "%<-mloongson-ext2%> muss zusammen mit %<-mloongson-ext%> verwendet werden"
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "%qs erfordert sprungwahrscheinliche Befehle"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "die Architektur %qs unterstützt nicht den synci-Befehl"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "Profiling für mips16-Funktionen"
@@ -43252,59 +43252,59 @@ msgstr "%<#pragma riscv intrinsic%> erfordert eine Zeichenkette als Parameter"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "unbekannte Option %qs für %<#pragma riscv intrinsic%>"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr "unerwartete Architektur für %<target()%>-Attribut: muss mit + oder rv beginnen"
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr "unerwartete Architektur für %<target()%>-Attribut: Fehlerhafte Zeichenfolge %<%s%> gefunden"
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr "%<target()%>-Attribut: Architektur erscheint mehr als einmal"
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr "%<target()%>-Attribut: CPU erscheint mehr als einmal"
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr "%<target()%>-Attribut: unbekannte CPU %qs"
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "%<target()%>-Attribut: tune erscheint mehr als einmal"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr "%<Ziel()%>-Attribut: unbekanntes TUNE %qs"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79868
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, gcc-internal-format
 msgid "malformed %<target()%> attribute"
 msgstr "falsch geformtes %<target()%>-Attribut"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79868
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "Attribut %<target(\"%s\")%> akzeptiert keine Argumente"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "Unbekanntes Attribut %<target(\"%s\")%>"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
 msgstr "falsch geformtes Attribut %<target(\"%s\")%>"
@@ -43364,172 +43364,192 @@ msgstr "der RVV-Typ %qT kann weder geworfen noch gefangen werden"
 msgid "capture by copy of RVV type %qT"
 msgstr "der RVV-Typ %qT kann nicht durch Kopieren gefangen werden"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "Eingebaute Funktion %qE erfordert die ISA-Erweiterung zvfhmin oder zvfh"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "Eingebaute Funktion %qE erfordert die ISA-Erweiterung zve32f, zve64f, zve64d oder v"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "Eingebaute Funktion %qE erfordert die ISA-Erweiterung zve64d oder v"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "Eingebaute Funktion %qE erfordert die ISA-Erweiterung zve64x, zve64f, zve64d oder v"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "Eingebaute Funktion %qE erfordert die ISA-Erweiterung %qs"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
 msgstr "kein passender Funktionsaufruf für %qE mit leeren Argumenten"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "unbekannte CPU %qs für %<-mtune%>"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr "diese Operation erfordert die RVV-ISA-Erweiterung"
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr "Sie können RVV mit der Befehlszeilenoption %<-march%>, oder mit dem Attribut %<target%> oder Pragma aktivieren"
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "ABI für abgeflachte Struktur mit Bit-Feldern der Länge 0 hat wurde mit GCC 10 geändert"
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, gcc-internal-format
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "der RVV-Typ %qT kann nur an prototypisierte Funktionen übergeben werden"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr "%s %qT benötigt die V-ISA-Erweiterung"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr "%s %qT benötigt die ISA-Erweiterung zve64x, zve64f, zve64d oder v"
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr "%s %qT benötigt die ISA-Erweiterung zvfhmin oder zvfh"
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr "%s %qT benötigt die ISA-Erweiterung zve32f, zve64f, zve64d oder v"
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr "%s %qT benötigt die ISA-Erweiterung zve64d oder v"
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr "%s %qT benötigt mindestens die Vektorlänge %qd, aber %qd ist gegeben"
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "Funktionsattribut %qs erfordert die ISA-Erweiterung V"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "Argument des Attributs %qE muss %<\"user\"%>, %<\"supervisor\"%> oder %<\"machine\"%> sein"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr "%qs wird nur unterstützt, wenn %<-mrvv-vector-bits=zvl%> angegeben ist"
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qs angewendet auf Nicht-RVV-Typ %qT"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, gcc-internal-format
 msgid "%qs requires an integer constant"
 msgstr "%qs erfordert eine konstante Ganzzahl"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr "ungültige RVV-Vektorgröße %qd, erwartete Größe ist %qd basierend auf LMUL des Typs und %qs"
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr "%<-mdiv%> erfordert %<-march%>, um die %<M%>-Erweiterung zu ermitteln"
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr "Der aktuelle RISC-V-GCC unterstützt keine VLEN größer als 4096bit für die Erweiterung »V«"
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "Der aktuelle RISC-V-GCC unterstützt RVV im Big-Endian-Modus nicht"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, gcc-internal-format
 msgid "code model %qs with %qs"
 msgstr "Codemodell %qs mit %qs"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr "die angeforderte ABI erfordert %<-march%>, um die %qc-Erweiterung zu ermitteln"
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr "rv32e erfordert die ilp32e-ABI"
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr "rv64e erfordert lp64e-ABI"
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr "z*inx erfordert ABI ilp32, ilp32e, lp64 oder lp64e"
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr "ABI erfordert %<-march=rv%d%>"
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "%<-mpreferred-stack-boundary=%d%> muss zwischen %d und %d liegen"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr "%<-mriscv-attribute%> RISC-V-ELF-Attribut erfordert GNU as 2.32 [%<-mriscv-attribute%>]"
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs ist in %qs kein gültiges Basisregister"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs ist in %qs keine gültige Zahl"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr "%qs-Funktion kann keine andere Interrupt-Art haben"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr "vl-Register für %qs kann auf diesem Ziel nicht alloziert werden"
@@ -43779,32 +43799,32 @@ msgstr "Eingebaute Funktion %qs akzeptiert genau 2 Argumente"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "Eingebaute Funktion %qs akzeptiert genau 3 Argumente"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "%<vec_lvsl%> ist für Little-Endian veraltet; verwenden Sie Zuweisungen für unausgerichtete Speicherzugriffe"
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "%<vec_lvsr%> ist für Little-Endian veraltet; verwenden Sie Zuweisungen für unausgerichtete Speicherzugriffe"
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "Übergabe des Arguments %d von %qE entfernt Kennzeichner %qs von Zeiger-Zieltyp"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "ungültige Parameterkombination für AltiVec-spezifisches intrinsisches %qs"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr "überladene eingebaute Funktion %qs ist durch die eingebaute Funktion %qs umgesetzt"
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, gcc-internal-format
 msgid "%qs is not supported in this compiler configuration"
 msgstr "%qs wird von dieser Compiler-Konfiguration nicht unterstützt"
@@ -43844,29 +43864,22 @@ msgstr "ungültige Verwendung des MMA-Operanden vom Typ %qs als Parameter einer
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "GCC-Vektor per Referenz übergegeben: Nicht-Standard-ABI-Erweiterung ohne Kompatibilitätsgarantie"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr "%qs erfordert das ELFv2-ABI"
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "Stapelrahmen zu groß"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "nicht unterstützte Anzahl von NOPs vor Funktionsanfang (%u)"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr "%qs verwendet Register r29"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr "Stapelrahmen größer als 2G wird für %<-fsplit-stack%> nicht unterstützt"
@@ -43991,107 +44004,117 @@ msgstr "%qs erfordert ein gültiges Basisregister"
 msgid "unknown option for %<%s=%s%>"
 msgstr "unbekannte Option für %<%s=%s%>"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr "%<-mrop-protect%> erfordert %<-mcpu=power8%> oder höher"
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr "%<-mrop-protect%> erfordert das ELFv2-ABI"
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "%qs ist veraltet und wird unter keinen Umständen empfohlen"
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr "%qs ist ein undurchsichtiger Typ, und Sie können ihn nicht auf andere Werte setzen"
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "kein Profiling von 64-bit-Code für dieses ABI"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "Bei Verwendung der Option %qs kann die Adresse von geschachtelten Funktionen nicht verwendet werden"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "Verwendung von %<long double%> in AltiVec-Typen ist ungültig"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "Verwendung boolescher Typen in AltiVec-Typen ist ungültig"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "Verwendung von %<complex%> in AltiVec-Typen ist ungültig"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, gcc-internal-format
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "Verwendung dezimaler Gleitkommatypen in AltiVec-Typen ist ungültig"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "Verwendung von %<long%> in AltiVec-Typen ist für 64-Bit-Code ohne %qs ungültig"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "Verwendung von %<long%> in AltiVec-Typen ist veraltet; %<int%> verwenden"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "Verwendung von %<long long%> in AltiVec-Typen ist ohne %qs ungültig"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "Verwendung von %<double%> in AltiVec-Typen ist ohne %qs ungültig"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "ungültige CPU %qs für %s%qs%s"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "%s%qs%s ist nicht erlaubt"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr "%s%qs%s ist ungültig"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr "%<-mno-%s%> schaltet %<-m%s%> aus"
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr "das Attribut %<target_clones%> erfordert GLIBC (2.23 oder neuer), die Hardware-Fähigkeits-Bits exportiert"
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "Multiversionierung virtueller Funktionen wird nicht unterstützt"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr "das Ergebnis des Befehls xxspltidp ist für denormalisierte Eingabewerte undefiniert"
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "Typ %<__vector_quad%> erfordert die Option %qs"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr "Typ %<__vector_pair%> erfordert die Option %qs"
@@ -44138,7 +44161,7 @@ msgstr "RX-FPU-Befehle unterstützen keine NaNs und Unendlichkeiten"
 msgid "builtin %qs can only be used on vector types"
 msgstr "das eingebaute %qs kann nur mit Vektortypen verwendet werden"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr "Konstanter Wert erwartet für Argument %2$d der eingebauten Funktion %1$qF"
@@ -44208,227 +44231,227 @@ msgstr "%qs-Matchingvariante ist veraltet"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "Konstantes Argument %d für eingebaute %qF liegt außerhalb des Wertebereiches für Zieltyp"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "konstantes Argument %d für eingebautes %qF ist ungültig (%s)"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90180
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "konstantes Argument %d für eingebaute %qF liegt außerhalb des Bereichs 0 bis %wu"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79846
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "konstantes Argument %d für eingebaute %qF liegt außerhalb des Bereichs %wd bis %wd"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr "eingebaute %qF wird nur mit %<-mhtm%> unterstützt (standardmäßig für %<-march=zEC12%> und höher eingeschaltet)"
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr "eingebaute %qF wird nur mit %<-mvx%> unterstützt (standardmäßig für %<-march=z13%> und höher eingeschaltet)"
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr "Eingebaute %qF erfordert z14 oder höher"
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr "Eingebaute %qF erfordert z15 oder höher"
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr "unaufgelöste überladene eingebaute Funktion"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "Falscher eingebauter ICode"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "Ungültiges Argument %d für eingebaute Funktion %qF"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr "das angeforderte %qE-Attribut ist kein kommaseparierter Paar von nichtnegativen ganzzahligen Konstanten, oder es ist zu groß (maximal %d)"
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "Argument für %qE ist nicht (keep|thunk|thunk-extern)"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "Gesamtgröße der lokalen Variablen übersteigt Grenze der Architektur"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr "Rahmengröße der Funktion %qs ist %wd Bytes, das ist größer als die benutzerdefinierte Stapelgrenze von %d Bytes; eine bedingungslose Falle wird gesetzt"
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr "Rahmengröße der Funktion %qs ist %wd Bytes, das ist mehr als die Hälfte der Stapelgröße; die dynamische Prüfung wäre nicht zuverlässig; für diese Funktion wird keine Prüfcode generiert"
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "Rahmengröße von %qs ist %wd Bytes"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs verwendet dynamische Stapelanforderung"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr "die Parameterübergabe für das Argument vom Typ %qT mit Bitfeldern der Breite 0 hat sich in GCC 12 geändert"
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, gcc-internal-format
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "auf s390 können geschachtelte Funktionen mit %<-mfentry%> nicht im Profiling verwendet werden"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "64-Bit-ABI nicht unterstützt im ESA/390-Modus"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr "thunk-inline wird nur mit %<-mindirect-branch-jump%> unterstützt"
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr "Hardware-Vektorunterstützung ist auf %s nicht verfügbar"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr "Hardware-Vektorunterstützung ist mit %<-msoft-float%> nicht verfügbar"
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "Dezimale Hardware-Gleitkommabefehle sind auf %s nicht verfügbar"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, gcc-internal-format
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "Dezimale Hardware-Gleitkommabefehle sind im ESA/390-Modus nicht verfügbar"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr "%<-mhard-dfp%> kann nicht in Verbindung mit %<-msoft-float%> verwendet werden"
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "die Kombination aus %<-mbackchain%>, %<-mpacked-stack%> und %<-mhard-float%> wird nicht unterstützt"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "Stapelgröße muss größer als der Stapel-Überwachungswert sein"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "Stapelgröße darf nicht größer als 64k sein"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "%<-mstack-guard%> bringt %<-mstack-size%> mit sich"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-prologue-check%> erfordert eine Ganzzahl im Bereich von 0 bis 4095"
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-prologue-target%> erfordert eine Ganzzahl im Bereich von 0 bis 4095"
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-epilogue-check%> erfordert eine Ganzzahl im Bereich von 0 bis 4095"
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-epilogue-target%> erfordert eine Ganzzahl im Bereich von 0 bis 4095"
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "%<-mfentry%> wird nur auf 64-Bit-CPUs unterstützt"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "Argumente von %qs sollten nicht-negative Ganzzahlen sein"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "Argument für %qs ist zu groß (max. %d)"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr "%<-mno-pic-data-is-text-relative%> kann nur zusammen mit %<-fpic%>/%<-fPIC%> verwendet werden"
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "beim Attribut %<target%> ist das Argument %qs unbekannt"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "Wert %qs wird von Attribut %<target%> nicht unterstützt"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, gcc-internal-format
 msgid "invalid cc output constraint: %qs"
 msgstr "ungültige cc-Ausgabebeschränkung: %qs"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, gcc-internal-format
 msgid "multiple cc output constraints not supported"
 msgstr "mehrere cc-Ausgabebeschränkungen nicht unterstützt"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "%<asm%>-Spezifizierer für cc-Ausgabe steht in Konflikt mit %<asm%>-Clobber-Liste"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr "ungültiger Typ für cc-Ausgabebeschränkung"
@@ -44850,8 +44873,8 @@ msgstr "Attribut %qE hat keinen Effekt"
 msgid "attribute %qs applies to array types only"
 msgstr "Attribut %qs bezieht sich nur auf Arraytypen"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "void-Wert nicht ignoriert wie es sein sollte"
@@ -44926,7 +44949,7 @@ msgstr "Typ des Arrays %q+D vervollständigt Unverträglichkeit mit impliziter I
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "%qE wurde in diesem Gültigkeitsbereich bereits deklariert und ist unvollständig deklariert"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr "ursprünglich hier definiert"
@@ -45158,7 +45181,7 @@ msgstr "Deklaration von %q+D überdeckt eine vorhergehende Nicht-Variable"
 msgid "declaration of %qD shadows a parameter"
 msgstr "Deklaration von %qD überdeckt einen Parameter"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "Deklaration von %qD überdeckt eine globale Deklaration"
@@ -45168,7 +45191,7 @@ msgstr "Deklaration von %qD überdeckt eine globale Deklaration"
 msgid "declaration of %qD shadows a previous local"
 msgstr "Deklaration von %qD überdeckt einen vorhergehenden lokalen Bezeichner"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "verdeckte Deklaration ist hier"
@@ -45233,7 +45256,7 @@ msgstr "%qE nicht deklariert (erste Verwendung in dieser Funktion)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "jeder nicht deklarierte Bezeichner wird nur einmal für jede Funktion, in der er vorkommt, gemeldet"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "Marke %qE außerhalb einer Funktion referenziert"
@@ -45268,7 +45291,7 @@ msgstr "Sprung in Anweisungs-Ausdruck"
 msgid "duplicate label declaration %qE"
 msgstr "Doppelte Markendeklaration %qE"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "doppelte Marke %qD"
@@ -45303,7 +45326,7 @@ msgstr "switch springt in Anweisungs-Ausdruck"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE als falsche Symbolart definiert"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr "Attribut %qE auf %qD mit Rückgabetyp »void« angewendet"
@@ -45445,12 +45468,12 @@ msgstr "ISO-C90 unterstützt %<[*]%>-Arraydeklaratoren nicht"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%> außerhalb des Bereichs des Funktionsprototypen nicht erlaubt"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, gcc-internal-format
 msgid "%<omp::%s%> not allowed to be specified in this context"
 msgstr "%<omp::%s%> darf in diesem Kontext nicht angegeben werden"
@@ -45460,7 +45483,7 @@ msgstr "%<omp::%s%> darf in diesem Kontext nicht angegeben werden"
 msgid "%q+D is usually a function"
 msgstr "%q+D ist üblicherweise eine Funktion"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "keine vorherige Deklaration für %qD"
@@ -45536,7 +45559,7 @@ msgstr "Objekt mit volatile-Feld kann nicht in Register geladen werden"
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "nicht initialisiertes %<const %qD%> ist in C++ ungültig"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr "%q+D in »declare target«-Direktive hat keinen zuordenbaren Typ"
@@ -45721,7 +45744,7 @@ msgstr "Speicherklasse für Parameter %qE angegeben"
 msgid "storage class specified for unnamed parameter"
 msgstr "Speicherklasse für unbenannten Parameter angegeben"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "Speicherklasse für Typnamen angegeben"
@@ -45784,7 +45807,7 @@ msgstr "Deklaration von %qE als Array von Funktionen"
 msgid "declaration of type name as array of functions"
 msgstr "Deklaration eines Typnamen als Array von Funktionen"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "ungültige Verwendung einer Struktur mit flexiblem Arrayelement"
@@ -45890,7 +45913,7 @@ msgstr "Typname als Funktion, die ein Array zurückgibt, deklariert"
 msgid "function definition has qualified void return type"
 msgstr "Funktionsdefinition hat qualifizierten void-Rückgabetypen"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "Typkennzeichner an Funktions-Rückgabewert ignoriert"
@@ -46017,7 +46040,7 @@ msgstr "ISO-C verbietet const- oder volatile-Funktionstypen"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "Ein Element einer Struktur oder Union kann nicht variabel modifizierten Typ haben"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "Variable oder Feld %qE als »void« deklariert"
@@ -46122,7 +46145,7 @@ msgstr "nicht geschachtelte Funktion mit variabel modifiziertem Typen"
 msgid "object with variably modified type must have no linkage"
 msgstr "Objekt mit variabel geändertem Typ darf keine Bindung haben"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "Funktionsdeklaration ist kein Prototyp"
@@ -46212,17 +46235,17 @@ msgstr "Verschachtelte Redefinition von %<union %E%>"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "Verschachtelte Redefinition von %<struct %E%>"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr "Typdefinition in Ausdruck %qs ist in C++ ungültig"
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, gcc-internal-format
 msgid "%qT defined in underspecified object initializer"
 msgstr "%qT wurde in unvollständig angegebenem Objektinitialisierer definiert"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "Deklaration deklariert nichts"
@@ -46252,596 +46275,596 @@ msgstr "leere Struktur hat Größe 0 in C, aber 1 in C++"
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr "leere Union hat Größe 0 in C, aber 1 in C++"
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "Union hat keine benannten Elemente"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "Union hat keine Elemente"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "struct hat keine benannten Elemente"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "struct hat keine Elemente"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "flexibles Arrayelement in Union"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "flexibles Arrayelement nicht am Ende von struct"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "flexibles Arrayelement in einer Struktur ohne benannte Elemente"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, gcc-internal-format
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "Struktur, die ein flexibles Arrayelement enthält, ist nicht am Ende einer anderen Struktur"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "Typ %qT ist zu groß"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr "Typumgehung schaltet die Reihenfolge der Skalarspeicherung um"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "union kann nicht transparent gemacht werden"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "Redefinition des Struktur- oder Vereinigungstyps %qT mit variabel modifiziertem Typ"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, gcc-internal-format
 msgid "redefinition of struct or union %qT"
 msgstr "Redefinition von Struktur- oder Vereinigungstyp %qT"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "Verschachtelte Redefinition von %<enum %E%>"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "Redeklaration von %<enum %E%>"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr "%<enum%> deklariert aber ohne festen zugrundeliegenden Typen definiert"
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr "angegebener Modus zu klein für Aufzählungswerte"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "Aufzählungswerte überschreiten Wertebereich des größten Ganzzahltypen"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, gcc-internal-format
 msgid "enumeration values exceed range of %qs"
 msgstr "Aufzählungswerte überschreiten Wertebereich von %qs"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, gcc-internal-format
 msgid "conflicting redefinition of enum %qT"
 msgstr "widersprüchliche Redefinition des Aufzählungstyps %qT"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "Aufzählungswert für %qE ist keine Ganzzahlkonstante"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "Aufzählungswert für %qE ist kein Ganzzahlkonstantenausdruck"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "Überlauf in Aufzählungswerten"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr "Aufzählungswert ist außerhalb des Gültigkeitsbereichs des zugrundeliegenden Typen"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr "Aufzählungswert ist außerhalb des Gültigkeitsbereichs von %qs"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, gcc-internal-format
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C vor C23 beschränkt Aufzählungswerte auf den Bereich von %<int%>"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr "der inline-Funktion %qD wurde das Attribut %qs gegeben"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "Rückgabetyp ist unvollständig"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "Rückgabetyp ist auf %<int%> voreingestellt"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr "%q+D ist als variadische Funktion ohne Prototyp definiert"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "kein vorheriger Prototyp für %qD"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "%qD wurde vor seiner Definition ohne Prototyp verwendet"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "%qD wurde vor seiner Definition ohne Deklaration verwendet"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "Rückgabetyp von %qD ist nicht %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr "%<_Atomic%>-qualifizierter Rückgabetyp von %qD"
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%qD ist normalerweise eine nicht-statische Funktion"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "Parameterdeklarationen alten Stils in Prototyp-Funktionsdeklaration"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "traditionelles C weist Funktionsdefinitionen im ISO-C-Stil zurück"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "ISO-C unterstützt das Weglassen von Parameternamen in Funktionsdefinitionen erst ab C23"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr "Funktionsdefinition im alten Stil"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "Parametername fehlt in Parameterliste"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD als Nicht-Parameter deklariert"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "mehrere Parameter wurden %qD genannt"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "Parameter %qD als void deklariert"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "Typ von %qD ist auf %<int%> voreingestellt"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "Parameter %qD hat unvollständigen Typen"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "Deklaration für nicht vorhandenen Parameter %qD"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "Anzahl der Argumente passt nicht zum eingebauten Prototypen"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "Anzahl der Argumente passt nicht zum Prototypen"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "Prototyp-Deklaration"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "weitergegebenes Argument %qD passt nicht zu eingebautem Prototypen"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "weitergegebenes Argument %qD passt nicht zum Prototypen"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "Argument %qD passt nicht zu eingebautem Prototypen"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "Argument %qD passt nicht zum Prototypen"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "keine return-Anweisung in nicht void zurückgebender Funktion"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "Parameter %qD gesetzt, jedoch nicht verwendet"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "Anfangsdeklarationen in %<for%>-Schleifen sind nur im C99- oder C11-Modus erlaubt"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "die Option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> oder %<-std=gnu11%> verwenden, um den Code zu übersetzen"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, gcc-internal-format
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "Deklarationen im Initialisierungsteil einer %<for%>-Schleife werden von ISO C90 nicht unterstützt; ab ISO C99 geht es"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "Deklaration der »static«-Variablen %qD in Anfangsdeklaration einer %<for%>-Schleife"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "Deklaration der %<extern%>-Variablen %qD in Anfangsdeklaration einer %<for%>-Schleife"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> in Anfangsdeklaration einer %<for%>-Schleife deklariert"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> in Anfangsdeklaration einer %<for%>-Schleife deklariert"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> in Anfangsdeklaration einer %<for%>-Schleife deklariert"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "Deklaration der Nicht-Variablen %qD in Anfangsdeklaration einer %<for%>-Schleife"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr "Inkompatible Adressraumkennzeichen %qs und %qs"
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "Doppelter Deklarationsspezifizierer %qE"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "mehrere Speicherklassen in Deklaration"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr "%qs mit %<auto%> verwendet"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%<auto%> mit %<constexpr%> verwendet"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "zwei oder mehr Datentypen in Deklaration"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> ist für GCC zu lang"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO-C90 unterstützt nicht %<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO-C90 unterstützt keine komplexen Typen"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO-C unterstützt keine sättigenden Typen"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "doppeltes %qE"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO-C unterstützt die Typen %<__int%d%> nicht"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "%<__int%d%> wird für dieses Ziel nicht unterstützt"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO-C90 unterstützt keine booleschen Typen"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO-C unterstützt den Typen %<_Float%d%s%> erst ab C23"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "%<_Float%d%s%> wird für dieses Ziel nicht unterstützt"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, gcc-internal-format
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO-C unterstützt dezimale Gleitkommazahlen erst ab C23"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "Festkommatypen werden für dieses Ziel nicht unterstützt"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO-C unterstützt keine Ganzzahltypen"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, gcc-internal-format
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "%<_BitInt%>-Argument ist kein konstanter Ganzzahlausdruck"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "%<_BitInt%>-Argument %qE ist kein positiver konstanter Ganzzahlausdruck"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr "%<_BitInt%>-Argument %qE ist größer als %<BITINT_MAXWIDTH%> %qd"
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr "Nachschlagen von %qD würde in C++ ein Feld, keinen Typen zurückgeben"
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE ist kein typedef oder eingebauter Typ"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE ist nicht am Anfang einer Deklaration"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "%qE mit %<auto%> verwendet"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "%qE mit %<register%> verwendet"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "%qE mit %<typedef%> verwendet"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr "%qE mit %<constexpr%> verwendet"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "ISO-C99 unterstützt nicht %qE"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO-C90 unterstützt nicht %qE"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> vor %<extern%>"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> vor %<static%>"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%<typedef%> mit %<auto%> verwendet"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr "%qE mit %<extern%> verwendet"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr "%qE mit %qs verwendet"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr "doppeltes %<_Thread_local%> oder %<__thread%>"
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%qs mit %qE verwendet"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr "%<constexpr%> mit %qE verwendet"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<_Sat%> ohne %<_Fract%> oder %<_Accum%> verwendet"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO-C unterstützt nicht %<double complex%> bedeutendes einfaches %<complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, gcc-internal-format
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C unterstützt %<auto%>-Typinferenz erst ab C23"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr "%<__auto_type%> gefolgt von %<[[]]%>-Attributen"
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO-C unterstützt keine komplexen Ganzzahltypen"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "Argument für %<signed _BitInt%> muss mindestens 2 sein"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, gcc-internal-format
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO-C unterstützt %<%s_BitInt(%d)%> erst ab C23"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr "%<#pragma omp declare reduction%>-Kombinierer verweist auf Variable %qD, die weder %<omp_out%> noch %<omp_in%> ist"
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr "%<#pragma omp declare reduction%>-Initialisierung verweist auf Variable %qD, die weder %<omp_priv%> noch %<omp_orig%> ist"
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr "left shift of negative value"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "Links-Schiebe-Weite ist negativ"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "Rechts-Schiebe-Weite ist negativ"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "Links-Schiebe-Weite >= Breite des Typs"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "Rechts-Schiebe-Weite >= Breite des Typs"
@@ -46871,7 +46894,7 @@ msgstr "Konfliktmarker für Versionskontrolle in Datei"
 msgid "to match this %qs"
 msgstr "andere Fundstelle von %qs ist hier"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr "Zeilenende erwartet"
@@ -46881,8 +46904,8 @@ msgstr "Zeilenende erwartet"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO-C verbietet eine leere Quelldatei"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr "%qs ohne entsprechendes %qs"
@@ -46922,9 +46945,9 @@ msgstr "Unbekannter Typname %qE; meinten Sie %qs?"
 msgid "unknown type name %qE"
 msgstr "unbekannter Typname: %qE"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "Deklarationsspezifizierer erwartet"
@@ -46954,7 +46977,7 @@ msgstr "%<fallthrough%>-Attribut auf höchster Ebene"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "%<;%>, Bezeichner oder %<(%> erwartet"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "Präfixattribute werden für Methoden ignoriert"
@@ -46974,7 +46997,7 @@ msgstr "unerwartetes Attribut"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "%<fallthrough%>-Attribut ohne darauffolgendes %<;%>"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr "%<assume%>-Attribut ohne darauffolgendes %<;%>"
@@ -47065,7 +47088,7 @@ msgstr "Ausdruck in statischer Behauptung ist nicht konstant"
 msgid "static assertion failed: %E"
 msgstr "statische Behauptung gescheitert: %E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, gcc-internal-format
 msgid "static assertion failed"
 msgstr "statische Behauptung gescheitert"
@@ -47136,10 +47159,10 @@ msgstr "Leeres Enum ist ungültig"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "Bezeichner erwartet"
@@ -47290,7 +47313,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr "innere Schleifen müssen mit der %<reduction%>-%<inscan%>-Klausel perfekt verschachtelt sein"
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr "Vermischung von OpenMP-Direktiven mit Attribut- und Pragma-Syntax in ein und derselben Anweisung"
@@ -47300,8 +47323,8 @@ msgstr "Vermischung von OpenMP-Direktiven mit Attribut- und Pragma-Syntax in ein
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr "OpenMP-Attribut %<omp::decl%> an einer Anweisung"
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr "unbekannter OpenMP-Direktiven-Name im Argument des Attributs %qs"
@@ -47475,12 +47498,12 @@ msgstr "ISO-C verbietet das Weglassen des mittleren Terms eines %<?:%>-Ausdrucke
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr "Division %<sizeof (%T) / sizeof (%T)%> berechnet nicht die Anzahl der Feldelemente"
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr "der Operand des ersten %<sizeof%> wurde hier deklariert"
@@ -47627,7 +47650,7 @@ msgstr "ISO-C90 unterstützt den vordefinierten Bezeichner %<__func__%> nicht"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "Ausdruck erwartet"
@@ -47947,12 +47970,12 @@ msgstr "Methodendeklaration in Objective-C erwartet"
 msgid "no type or storage class may be specified here,"
 msgstr "hier darf kein Typ oder Speicherklasse angegeben werden,"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr "leere Liste von Eigenschaftsattributen"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, gcc-internal-format
 msgid "missing property attribute"
 msgstr "Eigenschaftsattribut fehlt"
@@ -47962,57 +47985,57 @@ msgstr "Eigenschaftsattribut fehlt"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "unbekanntes Eigenschaftsattribut %<%s%s%>"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "unbekanntes Eigenschaftsattribut"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "nach dem Objective-C-Attribut %qE wird ein %<=%> erwartet"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr "Selektorname für %qE erwartet"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr "Methodennamen von Settern müssen mit %<:%> aufhören"
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr "%<#pragma GCC unroll%> erfordert einen Zuweisungsausdruck, der zu einer nichtnegativen Ganzzahlkonstante kleiner als %u evaluiert"
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr "dazwischenliegender Code darf keine OpenMP-Direktiven enthalten"
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma %s%> darf nur in Verbundanweisungen verwendet werden"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<#pragma acc routine%> darf nur im Datei-Gültigkeitsbereich auftreten"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp scan%> darf nur in einem Schleifenkonstrukt mit %<inscan%>-%<reduction%>-Klausel verwendet werden"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<#pragma omp section%> darf nur in %<#pragma omp sections%>-Konstrukt verwendet werden"
@@ -48022,25 +48045,25 @@ msgstr "%<#pragma omp section%> darf nur in %<#pragma omp sections%>-Konstrukt v
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma %s%> darf nur im Gültigkeitsbereich einer Datei verwendet werden"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "for-, while- oder do-Anweisung erwartet"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%> muss zuerst kommen"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "zu viele %qs-Klauseln"
@@ -48055,63 +48078,63 @@ msgstr "Ausdruck muss ganzzahlig sein"
 msgid "expected %<)%> or %<,%>"
 msgstr "%<)%> oder %<,%> erwartet"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD ist keine Variable"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD ist keine Zeigervariable"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr "Collapse-Argument erfordert positiven konstanten Ganzzahlausdruck"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr "%<none%> oder %<present%> erwartet"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "%<none%>, %<shared%>, %<private%> oder %<firstprivate%> erwartet"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, gcc-internal-format
 msgid "expected constant logical expression"
 msgstr "Interner Fehler: expected constant logical expression"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "%<data%>, %<update%>, %<enter%> oder %<exit%> erwartet"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "%<data%> erwartet"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr "zu viele %<if%>-Klauseln mit %qs-Modifizierer"
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "zu viele %<if%>-Klauseln"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr "zu viele %<if%>-Klauseln ohne Modifizierer"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr "wenn eine der %<if%>-Klauseln einen Modifizierer verwendet, müssen alle %<if%>-Klauseln Modifizierer verwenden"
@@ -48134,22 +48157,22 @@ msgstr "Wert von %<num_threads%> muss positiv sein"
 msgid "%<num_tasks%> value must be positive"
 msgstr "Wert von %<num_tasks%> muss positiv sein"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "Wert von %<grainsize%> muss positiv sein"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "Wert von %<priority%> muss positiv sein"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "konstanter Ganzzahlausdruck mit gültigem sync-hint-Wert erwartet"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr "%<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> oder %<default%> erwartet"
@@ -48159,94 +48182,94 @@ msgstr "%<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> oder
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "%<scalar%>, %<aggregate%>, %<pointer%> oder %<all%> erwartet"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "zu viele %<defaultmap%>-Klauseln mit %qs-Kategorie"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "zu viele %<defaultmap%>-Klauseln mit nicht angegebener Kategorie"
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "%qs-Ausdruck muss ganzzahlig sein"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "Wert %qs muss positiv sein"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "zu viele %<static%>-Argumente"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, gcc-internal-format
 msgid "unexpected argument"
 msgstr "unerwartetes Argument"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "%<tile%>-Argument muss eine positive, ganzzahlige Konstante sein"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, gcc-internal-format
 msgid "too many %<self%> clauses"
 msgstr "zu viele %<self%>-Klauseln"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, gcc-internal-format
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "%<reproducible%> oder %<unconstrained%> erwartet"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr "%<concurrent%> erwartet"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "%<teams%>, %<parallel%> oder %<thread%> erwartet"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr "Argument für %<ordered%> muss ein positiver, ganzzahliger Ausdruck sein"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "%<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> oder Bezeichner erwartet"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "widersprüchliche Modifizierer %<monotonic%> und %<nonmonotonic%> angegeben"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "Ablauf %<runtime%> akzeptiert keinen Parameter %<chunk_size%>"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "Ablauf %<auto%> akzeptiert keinen Parameter %<chunk_size%>"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "Wert der Chunkgröße muss positiv sein"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "ungültige Ablaufart"
@@ -48256,22 +48279,22 @@ msgstr "ungültige Ablaufart"
 msgid "%<num_teams%> value must be positive"
 msgstr "Wert von %<num_teams%> muss positiv sein"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr "untere Grenze %qE von %<num_teams%> ist größer als obere Grenze %qE"
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "Wert von %<thread_limit%> muss positiv sein"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr "Ausdruck für %<aligned%>-Klausel erfordert positiven konstanten Ganzzahlausdruck"
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr "%<allocator%> oder %<align%> erwartet"
@@ -48281,22 +48304,22 @@ msgstr "%<allocator%> oder %<align%> erwartet"
 msgid "duplicate %qs modifier"
 msgstr "doppelter %qs-Modifizierer"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr "Allokationsausdruck in %<allocate%>-Klausel ist vom Typ %qT statt des erwarteten %<omp_allocator_handle_t%>"
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "in der %<allocate%>-Klausel muss das Argument des %<align%>-Modifizierers eine positive konstante Zweierpotenz eines ganzzahligen Ausdrucks sein"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr "mehrere »linear«-Modifizierer"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr "mehrere %<step%>-Modifizierer"
@@ -48317,62 +48340,62 @@ msgid "%<simdlen%> clause expression must be positive constant integer expressio
 msgstr "Ausdruck der %<simdlen%>-Klausel erfordert positiven konstanten Ganzzahlausdruck"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79924
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "Modifizierer %<iterator%> ist unverträglich mit %qs"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "ungültige Abhängigkeitsart"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, gcc-internal-format
 msgid "invalid doacross kind"
 msgstr "ungültige »doacross«-Art"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr "zu viele %<always%>-Modifizierer"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr "zu viele %<close%>-Modifizierer"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, gcc-internal-format
 msgid "too many %<present%> modifiers"
 msgstr "zu viele %<present%>-Modifizierer"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr "%<map%>-Klausel mit einem anderen map-type-Modifikator als %<always%>, %<close%> oder %<present%>"
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, gcc-internal-format
 msgid "invalid map kind"
 msgstr "ungültige Zuordnungsart"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr "%<ancestor%>-Gerätemodifikator, dem keine %<requires%>-Direktive mit %<reverse_offload%>-Klausel vorausgeht"
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "%<ancestor%> oder %<device_num%> erwartet"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr "der Ausdruck der %<device%>-Klausel muss den Wert %<1%> haben"
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "ungültige »dist_schedule«-Art"
@@ -48387,88 +48410,88 @@ msgstr "ungültige »proc_bind«-Art"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "%<host%>, %<nohost%> oder %<any%> erwartet"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr "Ereignishandle in %<detach%>-Klausel ist vom Typ %qT statt des erwarteten %<omp_event_handle_t%>"
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr "OpenACC-Klausel erwartet"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs ist für %qs ungültig"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr "Klauseln in %<simd%>-Eigenschaft sollten durch %<,%> getrennt werden"
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%qs muss die erste Klausel von %qs sein"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr "OpenMP-Klausel erwartet"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr "keine gültigen Klauseln in %<#pragma acc declare%> angegeben"
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "Arrayabschnitt in %<#pragma acc declare%>"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr "In %<#pragma acc declare link%> muss %qD eine globale Variable sein"
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "ungültige OpenACC-Klausel im Datei-Gültigkeitsbereich"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "ungültige Verwendung der %<extern%>-Variable %qD in %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "ungültige Verwendung der %<global%>-Variable %qD in %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr "%qD muss eine Variable sein, die im selben Gültigkeitsbereich wie %<#pragma acc declare%> deklariert ist"
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr "Variable %qD wird in %<#pragma acc declare%> mehr als einmal verwendet"
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "hinter %<#pragma acc %s%> wird %<data%> erwartet"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr "%<#pragma acc %s data%> hat keine Datenverschiebeklausel"
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr "das %<host_data%>-Konstrukt erfordert eine %<use_device%>-Klausel"
@@ -48483,7 +48506,7 @@ msgstr "%qE wurde nicht deklariert"
 msgid "expected function name"
 msgstr "Funktionsname erwartet"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "%qD bezeichnet keine Funktion"
@@ -48493,22 +48516,22 @@ msgstr "%qD bezeichnet keine Funktion"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma acc routine%> muss direkt vor einer Funktionsdeklaration oder -definition auftreten"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma acc routine%> muss direkt vor einer Deklaration oder Definition einer einzelnen Funktion auftreten"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "%<#pragma acc routine%> muss vor Verwendung angewendet werden"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<#pragma acc routine%> muss vor Definition angewendet werden"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr "%<#pragma acc update%> muss mindestens eine %<device%>- oder %<host%>- or %<self%>-Klausel enthalten"
@@ -48533,7 +48556,7 @@ msgstr "die in der %<allocator%>-Klausel verwendete Variable %qD darf zwischen d
 msgid "modified here"
 msgstr "hier verändert"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr "in der %<align%>-Klausel muss das Argument eine positive konstante Zweierpotenz eines ganzzahligen Ausdrucks sein"
@@ -48573,110 +48596,110 @@ msgstr "die %<allocator%>-Klausel erfordert einen vordefinierten Allokator, da %
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr "%<#pragma omp allocate%> wird für statische Variablen wie %qD noch nicht unterstützt"
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "eine der Klauseln %<read%>, %<write%>, %<update%> oder %<capture%> erwartet"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "%<seq_cst%>, %<acquire%> oder %<relaxed%> erwartet"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr "eine der Klauseln %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> oder %<hint%> erwartet"
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, gcc-internal-format
 msgid "too many atomic clauses"
 msgstr "zu viele atomare Klauseln"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr "zu viele Speicherreihenfolge-Klauseln"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "Klausel %qs ist unverträglich mit den Klauseln %<read%> oder %<write%>"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr "%qs-Klausel erfordert %qs-Klausel"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp atomic write%> inkompatibel mit %<acquire%>-Klausel, die implizit von einer %<requires%>-Direktive bereitgestellt wird"
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp atomic read%> inkompatibel mit %<release%>-Klausel, die implizit von einer %<requires%>-Direktive bereitgestellt wird"
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr "%<#pragma omp atomic read%> ist unverträglich mit der Klausel %<release%>"
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr "%<#pragma omp atomic write%> ist unverträglich mit der Klausel %<acquire%>"
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "in der %<if%>-Bedingung wird ein Vergleich mit %<==%> erwartet"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr "in der %<if%>-Bedingung wird ein Vergleich mit %<==%>, %<<%> oder %<>%> erwartet"
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "ungültige Form von %<#pragma omp atomic compare%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, gcc-internal-format
 msgid "unexpected %<else%>"
 msgstr "unerwartetes %<else%> gefunden"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "ungültige Form von %<#pragma omp atomic compare%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "ungültige Form von %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "ungültiger Operator für %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr "%<weak%>-Klausel erfordert atomaren Gleichheitsvergleich"
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic capture%> verwendet zwei unterschiedliche Ausdrücke für Speicher"
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "Ausdruck %<depobj%> ist kein lvalue-Ausdruck"
@@ -48686,27 +48709,27 @@ msgstr "Ausdruck %<depobj%> ist kein lvalue-Ausdruck"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "%<destroy%>-Ausdruck ist kein Lvalue-Ausdruck"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr "der %<destroy%>-Ausdruck %qE sollte mit dem %<depobj%>-Argument %qE identisch sein"
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, gcc-internal-format
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "%<in%>, %<out%>, %<inout%>, %<mutexinoutset%> oder %<inoutset%> erwartet"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "eine der Klauseln %<depend%>, %<destroy%> oder %<update%> erwartet"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "%<seq_cst%>, %<acq_rel%>, %<release%> oder %<acquire%> erwartet"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr "%<flush%>-Liste wurde zusammen mit Speicherreihenfolge-Klausel angegeben"
@@ -48716,163 +48739,163 @@ msgstr "%<flush%>-Liste wurde zusammen mit Speicherreihenfolge-Klausel angegeben
 msgid "expected %<(%> or end of line"
 msgstr "%<(%> oder Zeilenende erwartet"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr "%<[[omp::directive(%s)]]%> muss das einzige angegebene Attribut in einer Anweisung sein"
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp scan%> mit 0 vorhergehenden ausführbaren Anweisungen"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "%<inclusive%>- oder %<exclusive%>-Klausel erwartet"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr "%<#pragma omp scan%> erwartet"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp scan%> mit 0 nachfolgenden ausführbaren Anweisungen"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "Schleifendeklaration oder Initialisierung erwartet"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, gcc-internal-format
 msgid "not enough nested loops"
 msgstr "nicht genügend geschachtelte Schleifen"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr "%<ordered%>-Klauselparameter ist weniger als %<collapse%>"
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "für Anweisung erwartet"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "Schleifenvariable %qD sollte nicht »firstprivate« sein"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp ordered%> mit %qs-Klausel darf nur in Verbundanweisungen verwendet werden"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "%<for%> hinter %qs erwartet"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "%<point%> erwartet"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target data%> mit Zuordnungstyp außer %<to%>, %<from%>, %<tofrom%> oder %<alloc%> an %<map%>-Klausel"
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr "%<#pragma omp target data%> muss mindestens eine %<map%>-, %<use_device_ptr%>- oder %<use_device_addr%>-Klausel enthalten"
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr "%<#pragma omp target update%> muss mindestens eine %<from%>- oder %<to%>-Klausel enthalten"
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target enter data%> mit Zuordnungstyp außer %<to%>, %<tofrom%> oder %<alloc%> an %<map%>-Klausel"
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target enter data%> muss mindestens eine %<map%>-Klausel enthalten"
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr "%<#pragma omp target exit data%> mit Zuordnungstyp außer %<from%>, %<tofrom%>, %<release%> oder %<delete%> an %<map%>-Klausel"
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target exit data%> muss mindestens eine %<map%>-Klausel enthalten"
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target%> mit Zuordnungstyp außer %<to%>, %<from%>, %<tofrom%> oder %<alloc%> an %<map%>-Klausel"
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp declare %s%> muss von einer Funktionsdeklaration oder -definition oder einem weiteren %<#pragma omp declare %s%> gefolgt werden"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma omp declare %s%> muss vor der Deklaration oder Definition einer Funktion auftreten"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, gcc-internal-format
 msgid "expected trait selector name"
 msgstr "Name des Merkmalsselektors erwartet"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "unbekannter Selektor %qs für Kontextselektormenge %qs"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr "Selektor %qs akzeptiert keine Eigenschaften"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<score%> kann nicht in Traits in der Trait-Selektor-Menge %qs angegeben werden"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr "das %<score%>-Argument muss ein konstanter ganzzahliger Ausdruck sein"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr "das %<score%>-Argument darf nicht negativ sein"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, gcc-internal-format
 msgid "expected identifier or string literal"
 msgstr "Bezeichner oder Zeichenkettenliteral erwartet"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr "Eigenschaft muss ein konstanter ganzzahliger Ausdruck sein"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr "Eigenschaften für %<simd%>-Selektor dürfen nicht in %<metadirective%> angegeben werden"
@@ -48880,290 +48903,290 @@ msgstr "Eigenschaften für %<simd%>-Selektor dürfen nicht in %<metadirective%>
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr "der %<requires%>-Selektor wird noch nicht unterstützt"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, gcc-internal-format
 msgid "expected context selector set name"
 msgstr "Name der Kontextselektormenge erwartet"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, gcc-internal-format
 msgid "expected %<match%>"
 msgstr "%<match%> erwartet"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr "Variante %qD ist keine Funktion"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, gcc-internal-format
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "Variante %qD und Basis %qD haben unverträgliche Typen"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr "die Variante %qD ist eine eingebaute"
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "hinter %<#pragma omp declare %s%> muss direkt eine Funktionsdeklaration oder -definition stehen"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "hinter %<#pragma omp declare %s%> muss direkt eine einzelne Funktionsdeklaration oder -definition stehen"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr "%qD ist sowohl in %<link%>- als auch %qs-Klauseln des Deklarationsziels angegeben"
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr "%qD ist sowohl im Deklarationsziel %<link%> als auch in %<to%>- oder %<enter%>-Klauseln angegeben"
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr "Direktive mit nur %<device_type%>- oder %<indirect%>-Klauseln"
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr "die %<device_type%>-Klausel muss 'any' angeben, wenn sie mit einer %<indirect%>-Klausel verwendet wird"
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "%<target%> erwartet"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "%<declare target%> oder %<assumes%> erwartet"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr "%<#pragma omp end declare target%> ohne zugehöriges %<#pragma omp declare target%> oder %<#pragma omp begin declare target%>"
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr "%qs beginnt in der Attributsyntax, wird aber mit %qs in der Pragmasyntax abgeschlossen"
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "%qs beginnt in der Pragmasyntax, wird aber mit %qs in der Attributsyntax abgeschlossen"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "%<declare%> oder %<assumes%> erwartet"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr "%<#pragma omp declare reduction%> darf nur im Datei- oder Block-Gültigkeitsbereich auftreten"
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr "vordefinierter arithmetischer Typ in %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr "Funktions- oder Arraytyp in %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "%<_Atomic%>-qualifizierter Typ in %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr "mit const, volatile oder restrict qualifizierter Typ in %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr "Redeklaration von %qs %<#pragma omp declare reduction%> für Typ %qT"
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "vorheriges %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "%<omp_priv%> oder Funktionsname erwartet"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "Funktionsname und %<(%> erwartet"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr "eins der Argumente für den Initialisierungsaufruf sollte %<&omp_priv%> sein"
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "%<simd%>, %<reduction%>, %<target%> oder %<variant%> erwartet"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "%<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> oder %<seq_cst%> erwartet"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr "eine der Klauseln %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> oder %<atomic_default_mem_order%> erwartet"
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr "%qs-Klausel wird lexikalisch nach dem ersten Zielkonstrukt oder nach der ersten Auslagerungs-API verwendet"
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr "mehr als eine %<atomic_default_mem_order%>-Klausel in einer einzigen Übersetzungseinheit"
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr "%<atomic_default_mem_order%>-Klausel wird lexikalisch nach dem ersten %<atomic%>-Konstrukt ohne Speicherreihenfolge-Klausel verwendet"
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr "%<pragma omp requires%> erfordert mindestens eine Klausel"
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "Typ %qT mit Größe 0 in %<reduction%>-Klausel"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "Typ %qT mit variabler Länge in %<reduction%>-Klausel"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "eine der Klauseln %<at%>, %<severity%> oder %<message%> erwartet"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, gcc-internal-format
 msgid "expected %qs or %qs"
 msgstr "%qs oder %qs erwartet"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp error%> mit %<at(execution)%>-Klausel darf nur in Verbundanweisungen verwendet werden"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr "%<#pragma omp error%> gefunden: %s"
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr "%<#pragma omp error%> gefunden"
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr "mindestens eine Annahme-Klausel erwartet"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, gcc-internal-format
 msgid "expected directive name"
 msgstr "Name einer Direktive erwartet"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr "unbekannter OpenMP-Direktiven-Name im Argument der %qs-Klausel"
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr "%<%s%s%s%s%s%>-Direktive wird sowohl in %<absent%>- als auch %<contains%>-Klauseln erwähnt"
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr "%<%s%s%s%s%s%>-Direktive wird mehrfach in %qs-Klauseln erwähnt"
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "unbekanntes Annahme-Klausel %qs"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, gcc-internal-format
 msgid "expected assumption clause"
 msgstr "Annahme-Klausel erwartet"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE nach erster Verwendung als %<threadprivate%> deklariert"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "automatische Variable %qE kann nicht %<threadprivate%> sein"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%<threadprivate%> %qE hat unvollständigen Typen"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr "%<__transaction_cancel%> ohne eingeschaltete Unterstützung für transaktionsbasierten Speicher"
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr "%<__transaction_cancel%> innerhalb eines %<__transaction_relaxed%>"
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "Funktionsaufruf von %<__transaction_cancel%> nicht innerhalb von äußerer %<__transaction_atomic%>- oder %<transaction_may_cancel_outer%>-Funktion"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr "%<__transaction_cancel%> nicht innerhalb von %<__transaction_atomic%>"
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr "fehlende schließende geschweifte Klammer"
@@ -49305,7 +49328,7 @@ msgstr "Dereferenzierung eines %<void *%>-Zeigers"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "indizierter Wert ist weder Array noch Zeiger noch Vektor"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "Arrayindex ist keine Ganzzahl"
@@ -49335,7 +49358,7 @@ msgstr "unvollständig angegebenes %qD wird in seinem Initialisierer referenzier
 msgid "enum constant defined here"
 msgstr "enum-Konstante hier definiert"
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr "%<sizeof%> auf Array-Funktionsparameter %qE gibt die Größe von %qT zurück"
@@ -49448,17 +49471,17 @@ msgstr "implizite Umwandlung von %qT in %qT bei Übergabe von Argument an Funkti
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "zu wenige Argumente für eingebaute Funktion %qE, %u erwartet"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "Vergleich mit Zeichenkettenliteral führt zu unspezifiziertem Verhalten"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, gcc-internal-format
 msgid "comparison between pointer and zero character constant"
 msgstr "Vergleich zwischen Zeiger und '\\0'"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr "wollten Sie vielleicht den Zeiger dereferenzieren?"
@@ -49483,7 +49506,7 @@ msgstr "Zeiger auf eine Funktion in Subtraktion verwendet"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "Arithmetik mit Zeiger auf unvollständigen Typen"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr "Arithmetik mit Zeiger auf leeres Aggregat"
@@ -49776,7 +49799,7 @@ msgstr "Typkonvertierung von Zeiger auf Ganzzahl anderer Breite"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "Typumwandlung von Funktionsaufruf des Typs %qT in unpassenden Typen %qT"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "Typkonvertierung in Zeiger von Ganzzahl anderer Breite"
@@ -49948,7 +49971,7 @@ msgstr "Links-Zuweisung könnte Kandidat für Formatattribut sein"
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "Linke-Initialisierung könnte Kandidat für Formatattribut sein"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "Rückgabetyp könnte Kandidat für Formatattribut sein"
@@ -50148,12 +50171,12 @@ msgstr "%<constexpr%>-Initialisierer für einen reellen Typen hat komplexen Typ"
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr "%<constexpr%>-Initialisierer für einen binären Gleitkommatypen hat dezimalen Typ"
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "Initialisierung eines flexiblen Array-Elements"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr "Array von %qT kann nicht aus einem Zeichenkettenliteral mit Typ %<Array von %T%> initialisiert werden"
@@ -50163,7 +50186,7 @@ msgstr "Array von %qT kann nicht aus einem Zeichenkettenliteral mit Typ %<Array
 msgid "array of inappropriate type initialized from string constant"
 msgstr "Array unpassenden Typs mit Zeichenkettenkonstante initialisiert"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "ungültige Verwendung eines Nicht-L-Wert-Arrays"
@@ -50194,7 +50217,7 @@ msgstr "Initialisierungselement ist kein konstanter Ausdruck"
 msgid "initializer element is not computable at load time"
 msgstr "Initialisierungs-Element ist zur Lade-Zeit nicht berechenbar"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "opake Vektortypen können nicht initialisiert werden"
@@ -50209,7 +50232,7 @@ msgstr "zusätzliche geschweifte Klammern am Ende der Initialisierung"
 msgid "braces around scalar initializer"
 msgstr "geschweifte Klammern um Skalar-Initialisierung"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "Initialisierung eines flexiblen Array-Elements in geschachteltem Kontext"
@@ -50299,7 +50322,7 @@ msgstr "Elementüberschreitung in struct-Initialisierung"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr "positionelle Initialisierung eines Feldes in %<struct%>, die mit dem %<designated_init%>-Attribut deklariert wurde"
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "nicht-statische Initialisierung eines flexiblen Arrayelements"
@@ -50339,7 +50362,7 @@ msgstr "ISO-C verbietet %<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "das berechnete Goto muss von einem Zeigertyp sein"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "als %<noreturn%> deklarierte Funktion hat %<return%>-Anweisung"
@@ -50394,7 +50417,7 @@ msgstr "%<default%>-Marke nicht innerhalb einer switch-Anweisung"
 msgid "break statement not within loop or switch"
 msgstr "break-Anweisung nicht innerhalb einer Schleife oder »switch«"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -50440,27 +50463,27 @@ msgstr "der Vergleich wird immer als %<false%> ausgewertet, da die Adresse von %
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "der Vergleich wird immer als %<true%> ausgewertet, da die Adresse von %qE niemals NULL sein wird"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr "Vergleich von Vektoren mit verschiedenen Element-Typen"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr "Vergleich von Vektoren mit unterschiedlicher Elementanzahl"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "Vergleich zwischen den Typen %qT und %qT"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr "kein ganzzahliger Typ mit derselben Größe wie %qT gefunden"
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr "Vergleich von Gleitkomma mit %<==%> oder %<!=%> ist unsicher"
@@ -50532,29 +50555,29 @@ msgstr "Wert eines union-Typs anstelle des geforderten Skalars verwendet"
 msgid "used vector type where scalar is required"
 msgstr "Vektortyp verwendet, wo Skalars benötigt wird"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancel%> muss eine der Klauseln %<parallel%>, %<for%>, %<sections%> oder %<taskgroup%> angeben"
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "Klauselmodifizierer %<cancel%> %<if%> erwartet"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancellation point%> muss eine der Klauseln %<parallel%>, %<for%>, %<sections%> oder %<taskgroup%> angeben"
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD in %qs-Klausel muss eine Variable sein"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qE in %qs-Klausel muss eine Variable sein"
@@ -50565,85 +50588,85 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "%<_Atomic%>-Deklaration %qD in %qs-Klausel"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD in %qs-Klausel ist eine threadprivate Variable"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr "Untere Grenze %qE des Arrayabschnitts muss Ganzzahltyp haben"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "Länge %qE des Arrayabschnitts muss Ganzzahltyp haben"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr "einelnen Zeiger in %qs-Klausel erwartet"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "Arrayabschnitt der Länge 0 in %qs-Klausel"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr "für Arraytyp mit unbekannten Grenzen muss ein Längenausdruck angegeben werden"
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr "negative untere Grenze in Arrayabschnitt in %qs-Klausel"
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr "Arrayabschnitt mit negativer Länge in %qs-Klausel"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr "untere Grenze %qE geht über Abschnittsgröße in %qs-Klausel hinaus"
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr "Länge %qE geht über Abschnittsgröße in %qs-Klausel hinaus"
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr "obere Grenze %qE geht über Abschnittsgröße in %qs-Klausel hinaus"
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr "für Funktionsparameter vom Typ Array muss die Länge angegeben sein"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr "für Zeigertyp muss der Längenausdruck angegeben werden"
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr "Arrayabschnitt ist in %qs-Klausel nicht zusammenhängend"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qE hat weder Zeiger- noch Arraytyp"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr "Typ des Iterators %qD ist weder ganzzahlig noch ein Zeiger"
@@ -50653,17 +50676,17 @@ msgstr "Typ des Iterators %qD ist weder ganzzahlig noch ein Zeiger"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "Iterator %qD hat %<_Atomic%>-qualifizierten Typ"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr "Iterator %qD hat %<const%>-qualifizierten Typ"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr "Iterator-Schrittweite mit nichtganzzahligem Typ"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr "Iterator %qD hat Schrittweite 0"
@@ -50673,32 +50696,32 @@ msgstr "Iterator %qD hat Schrittweite 0"
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr "Typ des Iterators %qD verweist auf äußeren Iterator %qD"
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr "Anfangsausdruck verweist auf äußeren Iterator %qD"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr "Endausdruck verweist auf äußeren Iterator %qD"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr "Ausdruck für die Schrittweite verweist auf äußeren Iterator %qD"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr "Zeiger in %qs-Klausel erwartet"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr "die Klausel %<inscan%> darf nicht zusammen mit nicht-%<inscan%>-%<reduction%> am selben Konstrukt vorkommen"
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr "%<inscan%>-%<reduction%>-Klausel mit Arrayabschnitt"
@@ -50728,7 +50751,7 @@ msgstr "Typ %qT mit variabler Größe in %qs-Klausel"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE hat ungültigen Typ für %<reduction(%s)%>"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr "benutzerdefinierte Reduktion für %qE nicht gefunden"
@@ -50738,17 +50761,17 @@ msgstr "benutzerdefinierte Reduktion für %qE nicht gefunden"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "Elementtyp variabler Länge in %<reduction%>-Klausel eines Arrays"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr "%<nowait%>-Klausel darf nicht zusammen mit %<copyprivate%> verwendet werden"
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE muss für %<copyin%> %<threadprivate%> sein"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr "Modifizierer sollte an %<simd%>- oder %<for%>-Konstrukten nicht in %<linear%>-Klausel angegeben werden, außer wenn OpenMP 5.2 verwendet wird"
@@ -50763,23 +50786,23 @@ msgstr "»linear«-Klausel auf Variable vom Typ %qT angewendet, die weder Ganzza
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr "%<_Atomic%> %qD in %<linear%>-Klausel"
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr "Schrittweite %qE der %<linear%>-Klausel muss konstant oder ein Parameter sein"
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE ist in Klausel %qs keine Variable"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD kommt mehr als einmal in Datenfreigabeklauseln vor"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr "%qD tritt in Reduktionsklauseln mehrfach auf"
@@ -50791,32 +50814,32 @@ msgstr "%qE tritt in dieser Datenklausel mehrfach auf"
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "%qD tritt in Datenklausel mehrfach auf"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr "%qD tritt in Daten- und Zuordnungsklauseln mehrfach auf"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE ist in Klausel %<firstprivate%> keine Variable"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE ist in Klausel %<lastprivate%> keine Variable"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qE ist %<aligned%>-Klausel keine Variable"
@@ -50836,7 +50859,7 @@ msgstr "%<_Atomic%> %qD in %<aligned%>-Klausel"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE tritt in %<aligned%>-Klausel mehrfach auf"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr "%qE ist in %<nontemporal%>-Klausel keine Variable"
@@ -50846,7 +50869,7 @@ msgstr "%qE ist in %<nontemporal%>-Klausel keine Variable"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE tritt in %<nontemporal%>-Klausel mehrfach auf"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr "%qE in %<allocate%>-Klausel ist keine Variable"
@@ -50856,76 +50879,76 @@ msgstr "%qE in %<allocate%>-Klausel ist keine Variable"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE kommt mehr als einmal in %<allocate%>-Klauseln vor"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr "%<depend%>-Klausel mit %<depobj%>-Abhängigkeitstyp auf Arrayabschnitt"
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr "%<omp_all_memory%> wird mit %<depend%>-Art außer %<out%> oder %<inout%> verwendet"
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qE ist weder ein lvalue-Ausdruck noch ein Arrayabschnitt in %qs-Klausel"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr "%qE hat nicht den Typ %<omp_depend_t%>, in der %<depend%>-Klausel mit %<depobj%>-Abhängigkeitstyp"
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr "%qE sollte einen anderen Typ haben als %<omp_depend_t%>, in der %<depend%>-Klausel mit von %<depobj%> verschiedenem Abhängigkeitstyp"
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr "Arrayabschnitt in %qs-Klausel hat keinen zuordenbaren Typ"
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, gcc-internal-format
 msgid "unsupported map expression %qE"
 msgstr "nicht unterstützter Map-Ausdruck %qE"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD tritt in Bewegungsklausel mehrfach auf"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD tritt in Zuordnungsklauseln mehrfach auf"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD in %qs-Klausel hat keinen zuordenbaren Typ"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE in %qs-Klausel ist weder Variablen- noch Funktionsname"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE tritt in derselben %<declare target%>-Direktive mehrfach auf"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD in %<uniform%>-Klausel ist kein Argument"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "%qE in %<uniform%>-Klausel ist kein Argument"
@@ -50940,22 +50963,22 @@ msgstr "Variable %qs muss ein Zeiger sein"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "Variable %qs ist weder Zeiger noch Array"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr "%<order%>-Klausel darf nicht zusammen mit %<ordered%> verwendet werden"
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr "zu viele %qs-Klauseln an einem Task-Konstrukt"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr "%<inbranch%>-Klausel ist inkompatibel mit %<notinbranch%>"
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE ist vorbestimmt %qs für %qs"
@@ -50965,38 +50988,38 @@ msgstr "%qE ist vorbestimmt %qs für %qs"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr "%<const%>-qualifiziertes %qE darf nur in %<shared%>- oder %<firstprivate%>-Klauseln vorkommen"
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr "%<simdlen%>-Klauselwert ist größer als %<safelen%>-Klauselwert"
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr "%<nonmonotonic%>-Planungsmodifizierer zusammen mit %<ordered%>-Klausel angegeben"
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr "%qs-Klausel darf nicht zusammen mit %<inscan%>-%<reduction%>-Klausel verwendet werden"
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr "%<linear%>-Klauselschritt ist ein Parameter %qD, der nicht in der %<uniform%>-Klausel angegeben ist"
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr "%<nogroup%>-Klausel darf nicht zusammen mit %<reduction%>-Klausel verwendet werden"
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr "%<detach%>-Klausel darf nicht zusammen mit %<mergeable%>-Klausel verwendet werden"
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr "das Ereignishandle einer %<detach%>-Klausel sollte nicht in einer data-sharing-Klausel sein"
@@ -51262,14 +51285,14 @@ msgstr "  keine bekannte Umwandlung von %qH nach %qI"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  keine bekannte Umwandlung für Argument %d von %qH nach %qI"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] "  Kandidat erwartet mindestens %d Argument, %d angegeben"
 msgstr[1] "  Kandidat erwartet mindestens %d Argumente, %d angegeben"
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -51580,553 +51603,553 @@ msgstr "Bedingungsausdruck zwischen Gleitkommatyp %qT und Aufzählungstyp %qT is
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "Aufzählungs- und Nicht-Aufzählungstyp in bedingtem Ausdruck"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "kein %<%D(int)%> für Suffix %qs deklariert, stattdessen wird Präfixoperator versucht"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "kein %<%D(int)%> für Suffix %qs deklariert"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr "in C++20 ruft dieser Vergleich die aktuelle Funktion rekursiv mit vertauschten Argumenten auf"
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr "Rückgabetyp von %qD ist nicht %qs"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr "als umgeschriebener Kandidat für den Vergleich von %qT und %qT verwendet"
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "Vergleich zwischen %q#T und %q#T"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, gcc-internal-format
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "keine Übereinstimmung für den Aufruf von %<%T::operator[] (%A)%>"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, gcc-internal-format
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "Aufruf von %<%T::operator[] (%A)%> ist mehrdeutig"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr "Exceptionaufräumen für dieses Placement-New wählt delete-Operator für Nicht-Placement"
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "%qD ist eine übliche (nicht-placement) Deallokationsfunktion in C++14 (oder mit %<-fsized-deallocation%>)"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "%qD ist eine gewöhnliche (nicht-Platzierungs) Deallokationsfunktion"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr "keine passende Freigabefunktion für %qD"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr "das zerstörende Delete für %qD kann nicht verwendet werden, um den zugewiesenen Speicher freizugeben, wenn die Initialisierung fehlschlägt, weil das Objekt noch nicht konstruiert ist"
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "kein geeignetes %<operator %s%> für %qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr "%q#D ist in diesem Zusammenhang »private«"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, gcc-internal-format
 msgid "declared private here"
 msgstr "hier als »private« deklariert"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr "%q#D ist in diesem Zusammenhang »protected«"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, gcc-internal-format
 msgid "declared protected here"
 msgstr "hier als »protected« deklariert"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr "%q#D ist in diesem Zusammenhang unzugänglich"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "Übergabe von NULL an Nicht-Zeiger-Argument %P von %qD"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, gcc-internal-format
 msgid "  declared here"
 msgstr "  hier deklariert"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "Konvertierung in Nicht-Zeiger-Typ %qT von NULL"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "%<false%> wird für Argument %P von %qD in Zeigertyp umgewandelt"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "%<false%> wird in Zeigertyp %qT umgewandelt"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  Argument %P von %qD wird initialisiert"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "Umwandlungen in Arrays mit unbekannten Grenzen sind erst mit %<-std=c++20%> oder %<-std=gnu++20%> verfügbar"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "zu viele geschweifte Klammern um Initialisierung für %qT"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "Umwandlung von %qH nach %qI erfordert direkte Initialisierung"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C++ erlaubt keine Konvertierung in %qH von %qI mit größerem Konvertierungsrang"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr "ISO C++ erlaubt keine Konvertierung in %qH aus %qI mit ungeordnetem Konvertierungsrang"
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "ungültige benutzerdefinierte Umwandlung von %qH in %qI"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 msgid "invalid conversion from %qH to %qI"
 msgstr "ungültige Umwandlung von %qH in %qI"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr "Umwandlung in %qT von Initialisierungsliste würde expliziten Konstruktor %qD verwenden"
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr "in C++11 und neuer kann ein Defaultkonstruktor explizit sein"
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "rvalue-Referenz vom Typ %qH kann nicht an lvalue vom Typ %qI gebunden werden"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "nicht-konstante lvalue-Referenz vom Typ %qH kann nicht an Wert vom Typ %qI gebunden werden"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "nicht-konstante lvalue-Referenz vom Typ %qH kann nicht an rvalue vom Typ %qI gebunden werden"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "kann keine Lvalue-Referenz vom Typ %qH an einen Rvalue vom Typ %qI binden"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr "Referenz vom Typ %qH kann nicht an %qI gebunden werden, da die Arraygrenzen sich unterscheiden"
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "das Binden der Referenz vom Typ %qH an %qI streicht Qualifizierer"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "das Bitfeld %qE kann nicht mit %qT verbunden werden"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "das gepackte Feld %qE kann nicht mit %qT verbunden werden"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "der R-Wert %qE kann nicht mit %qT verbunden werden"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "implizite Umwandlung von %qH in %qI bei Übergabe von Argument an Funktion"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr "enum %qT mit eingeschränkter Sichtbarkeit wird vor %<-fabi-version=6%> als Typ %qT, später jedoch als %qT durch %<...%> übergeben"
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "Das Übergeben des nicht trivial-kopierbaren Typs %q#T über %<...%> ist »conditionally-supported« ([expr.call] 5.2.2/7)"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "Referenztyp %qT kann nicht über %<...%> empfangen werden"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "Das Übergeben des nicht trivial-kopierbaren Typs %q#T über %<...%> ist »conditionally-supported« ([expr.call] 5.2.2/7)"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "rekursive Auswertung des Standardarguments für %q#D"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "Aufruf von %qD verwendet das Standardargument für Parameter %P, der noch nicht definiert wurde"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "Argument des Funktionsaufrufs könnte Kandidat für Formatattribut sein"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr "Verwendung einer multiversionierten Funktion ohne Standardargument"
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr "verwenden Sie %<-fdiagnostics-all-candidates%>, um die in Frage kommenden Kandidaten anzuzeigen"
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "Die Übergabe von %qT als %<this%>-Argument streicht Qualifizierer"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  in Aufruf von %qD"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT ist keine erreichbare Basis von %qT"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "Argumente werden an Auslassungspunkte des geerbten Konstruktors %qD übergeben"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr "Zuweisung von temporärer %<initializer_list%> führt nicht dazu, dass die Lebenszeit des zugrundeliegenden Arrays ausgeweitet wird"
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr "%qD Schreibzugriff auf ein Objekt des Typs %#qT ohne triviale Kopierzuweisung"
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "%qD Schreiben in ein Objekt des nichttrivialen Typs %#qT%s"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr "%qD Schreibzugriff auf ein Objekt des Typs %#qT mit Element %qs %qD"
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr "%qD Schreibzugriff auf ein Objekt des Typs %#qT, das einen Zeiger auf Datenelement enthält%s"
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr "; verwenden Sie stattdessen eine Zuweisung oder Wertinitialisierung"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, gcc-internal-format
 msgid "; use assignment instead"
 msgstr "; verwenden Sie stattdessen eine Zuweisung"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr "; verwenden Sie stattdessen eine Wertinitialisierung"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr "%qD Säubern eines Objekts des Typs %#qT ohne triviale Kopierzuweisung%s"
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "%qD Säubern eines Objekts von nichttrivialem Typ %#qT%s"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr "%qD Säubern eines Objekts des Typs %#qT, das einen Zeiger auf Datenelement enthält%s"
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "; verwenden Sie stattdessen eine Kopierzuweisung oder Kopierinitialisierung"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr "; verwenden Sie stattdessen eine Kopierzuweisung"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr "; verwenden Sie stattdessen eine Kopierinitialisierung"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr "%qD Schreibzugriff auf ein Objekt des Typs %#qT ohne triviale Kopierzuweisung%s"
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr "%qD Schreiben in ein Objekt des nichttrivial kopierbaren Typs %#qT%s"
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr "%qD Schreibzugriff auf ein Objekt mit einem gelöschten Kopierkonstruktor"
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr "%qD Kopieren eines Objekts mit nichttrivialem Typ %#qT aus einem Array von %#qT"
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr "%qD Kopieren eines Objekts des Typs %#qT mit Element %qs %qD aus einem Array von %#qT; verwenden Sie eine Zuweisung oder Kopierinitialisierung stattdessen"
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr "%qD Schreiben in ein Objekt eines nichttrivialen Typen %#qT lässt %wu Bytes unverändert"
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr "%qD Schreiben in ein Objekt eines nichttrivialen Typen %#qT lässt %wu Byte unverändert"
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr "%qD Verschieben eines Objekts des nichttrivial kopierbaren Typs %#qT; verwenden Sie stattdessen %<new%> oder %<delete%>"
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr "%qD Verschieben eines Objekts des Typs %#qT mit gelöschtem Kopierkonstruktor; verwenden Sie stattdessen %<new%> und %<delete%>"
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr "%qD Verschieben eines Objekts des Typs %#qT mit gelöschtem Destruktor"
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr "%qD Verschieben eines Objekts des nichttrivialen Typs %#qT und Größe %E in eine Region der Größe %E"
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, gcc-internal-format
 msgid "%#qT declared here"
 msgstr "%#qT wird hier deklariert"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "Argument %u in Aufruf von %qE darf kein Zeiger auf nicht-trivial kopierbaren Typ %qT sein"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr "Konstruktor verweist auf sich selbst"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 msgid "cannot convert %qH to %qI"
 msgstr "%qH kann nicht nach %qI umgewandelt werden"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "keine passende Funktion für Aufruf von %<%T::operator %T(%A)%#V%>"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "keine passende Funktion für Aufruf von %<%T::%s%E(%A)%#V%>"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "Aufruf der Nicht-Funktion %qD"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "Konstruktor %<%T::%D%> kann nicht direkt aufgerufen werden"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr "um eine funktionsartige Umwandlung zu erreichen, entfernen Sie das redundante %<::%D%>"
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "keine passende Funktion für Aufruf von %<%s(%A)%>"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "Aufruf des überladenen %<%s(%A)%> ist mehrdeutig"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "pure virtuelle %q#D aus nichtstatischem Datenelement-Initialisierer heraus aufgerufen"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr "pure virtuelle %q#D aus Konstruktor heraus aufgerufen"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr "pure virtuelle %q#D aus Destruktor heraus aufgerufen"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "Elementfunktion %qD kann nicht ohne Objekt aufgerufen werden"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "Übergabe von %qT wählt %qT statt %qT"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "C++20 besagt, dass diese mehrdeutig sind, auch wenn der zweite umgekehrt ist:"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, gcc-internal-format
 msgid "try making the operator a %<const%> member function"
 msgstr "versuchen Sie, den Operator in eine %<const%>-Memberfunktion umzuwandeln"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "Wahl von %qD statt %qD"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 msgid "  for conversion from %qH to %qI"
 msgstr "  für Umwandlung von %qH in %qI"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  denn die Umwandlungsfolge für das Argument ist besser"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "Zuordnungsfehler der Standardargumente in Überladungsauflösung"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr " Kandidat 1: %q#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr " Kandidat 2: %q#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ISO C++ besagt, dass diese mehrdeutig sind, auch wenn die schlechteste Umwandlung für das erste besser ist als die schlechteste Umwandlung für das zweite:"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr "eine vorübergehende Bindung an %qD besteht nur, bis der Konstruktor beendet ist"
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "ungültige Initialisierung einer nicht-konstanten Referenz des Typs %qH von rvalue des Typs %qI"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "ungültige Initialisierung einer Referenz des Typs %qH von Ausdruck des Typs %qI"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, gcc-internal-format
 msgid "possibly dangling reference to a temporary"
 msgstr "möglicherweise baumelnde Referenz auf temporäres Objekt"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr "das temporäre Objekt wurde am Ende des vollständigen Ausdrucks %qE zerstört"
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr "explizite Umwandlungsfunktion wurde nicht berücksichtigt"
@@ -52172,7 +52195,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q#D kann nicht mit %q#D überladen werden"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "vorherige Deklaration von %q#D"
@@ -52593,7 +52616,7 @@ msgstr "flexibles Arrayelement %qD in ansonsten leerem %q#T"
 msgid "next member %q#D declared here"
 msgstr "nächstes Feld %q#D hier deklariert"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "Redefinition von %q#T"
@@ -52724,7 +52747,7 @@ msgstr "ungültiger Typ für Parameter %d der %<constexpr%>-Funktion %q+#D"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr "Lambdas sind erst ab C++17 implizit %<constexpr%>"
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%<constexpr%>-Destruktoren sind erst ab %<-std=c++20%> oder %<-std=gnu++20%> verfügbar"
@@ -52765,7 +52788,7 @@ msgstr "Körper der %<constexpr%>-Funktion %qD ist keine Rückgabeanweisung"
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%qD ist nicht als %<constexpr%>-Funktion verwendbar, denn:"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr "%qE wird außerhalb seiner Lebensdauer zerstört"
@@ -52783,7 +52806,7 @@ msgstr "Kontrollfluss für %<constexpr%>-Aufruf fällt hinten aus der Funktion"
 msgid "%q+E is not a constant expression"
 msgstr "%q+E ist kein Konstantenausdruck"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -52804,7 +52827,7 @@ msgstr "%qE wird zu »false« ausgewertet"
 msgid "failed %<assume%> attribute assumption"
 msgstr "%<assume%>-Attribut-Annahme fehlgeschlagen"
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, gcc-internal-format
 msgid "call to internal function %qE"
@@ -52851,7 +52874,7 @@ msgstr "%qT ist eine mehrdeutige Basisklasse des dynamischen Typen %qT seines Op
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr "der dynamische Typ %qT des Operanden hat keine eindeutige öffentliche Basisklasse %qT"
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -52979,18 +53002,18 @@ msgstr "Arrayindexwert %qE ist außerhalb der Grenzen des Arraytyps %qT"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "Arrayindex %qE ist ungleich 0 und wird mit Array vom Typ %qT mit unbekannten Grenzen verwendet"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "Zugriff auf uninitialisiertes Arrayelement"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr "Dereferenzierung eines Nullzeigers in %qE"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -52998,469 +53021,469 @@ msgstr "Dereferenzierung eines Nullzeigers in %qE"
 msgid "%qE is not a constant expression"
 msgstr "%qE ist kein Konstantenausdruck"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "veränderliches %qD ist in konstantem Ausdruck nicht verwendbar"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "Zugriff auf uninitialisiertes Element %qD"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr "Zugriff auf Element %qD statt auf initialisiertes Element %qD in Konstantenausdruck"
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "%qs ist kein konstanter Ausdruck, da %qT ein union-Typ ist"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "%qs ist kein konstanter Ausdruck, da %qT einen union-Typen enthält"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "%qs ist kein konstanter Ausdruck, da %qT ein Zeigertyp ist"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "%qs ist kein konstanter Ausdruck, da %qT einen Zeigertyp enthält"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "%qs ist kein konstanter Ausdruck, da %qT ein Referenztyp ist"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "%qs ist kein konstanter Ausdruck, da %qT einen Referenztypen enthält"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "%qs ist kein konstanter Ausdruck, da %qT ein Zeiger-auf-Element-Typ ist"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "%qs ist kein konstanter Ausdruck, da %qT einen Zeiger-auf-Element-Typen enthält"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "%qs ist kein konstanter Ausdruck, da %qT %<volatile%> ist"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "%qs ist kein konstanter Ausdruck, da %qT ein %<volatile%>-Teilobjekt enthält"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "%qs kann auf diesem Ziel nicht als konstanter Ausdruck ausgewertet werden"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr "%qs kann nicht als konstanter Ausdruck ausgewertet werden, da der Typ zu groß ist"
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr "%qs kann nicht als konstanter Ausdruck ausgewertet werden, da das Argument nicht codiert werden kann"
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "%qs greift auf das uninitialisierte Byte an Offset %d zu"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr "%qs kann nicht als konstanter Ausdruck ausgewertet werden, da das Argument nicht interpretiert werden kann"
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "auf Wert von %qE wird über ein %qT GL-Wert in Konstantenausdruck zugegriffen"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "angeforderter Speicher wird in konstantem Ausdruck verwendet, nachdem er wieder freigegeben wurde"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, gcc-internal-format
 msgid "allocated here"
 msgstr "wurde hier deklariert"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr "Zugriff auf %qE außerhalb seiner Lebensdauer"
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "der Wert von uninitialisiertem Speicher ist in konstantem Ausdruck nicht verwendbar"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "der Wert von %qD ist in konstantem Ausdruck nicht verwendbar"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "%qD in seiner eigenen Initialisierung verwendet"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%q#D ist nicht konstant"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%q#D ist volatile"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD wurde nicht mit konstantem Ausdruck initialisiert"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD wurde nicht als %<constexpr%> definiert"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "%qD hat keinen Ganzzahl- oder Aufzählungstyp"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "die Änderung des zugewiesenen Speichers nach der Freigabe ist kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "Modifikation von %qE außerhalb seiner Lebenszeit ist kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "das Zerstören von %qE außerhalb der aktuellen Auswertung ist kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "Modifikation von %qE von außerhalb der aktuellen Auswertung ist kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "Änderung des aktiven Elements einer union von %qD zu %qD ist vor C++20 kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr "%qD beginnt seine Lebensdauer nicht implizit, da %qT keinen nicht gelöschten trivialen Standardkonstruktor hat; verwenden Sie stattdessen %<std::construct_at%>"
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr "die Initialisierung von %qD erfordert einen Ausdruck für den Memberzugriff als linken Operanden der Zuweisung"
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "Änderung des aktiven Elements einer union von %qD zu %qD während der Initialisierung"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "Anweisung ist kein Konstantenausdruck"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr "Anzahl der Schleifendurchläufe in %<constexpr%> überschreitet Höchstwert %d (%<-fconstexpr-loop-limit=%> verwenden, um diesen zu erhöhen)"
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr "Inline-Assembler ist kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr "in einer %<constexpr%>-Funktion in C++20 darf Inline-Assemblercode nur vorkommen, wenn er nicht im Auswertungspfad liegt"
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, gcc-internal-format
 msgid "use of %qD"
 msgstr "Verwendung von %qD"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr "der Wert kann zwischen Compiler-Versionen oder mit verschiedenen %<-mtune%> oder %<-mcpu%> Flags variieren"
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr "wenn diese Verwendung Teil eines öffentlichen ABI ist, ändern Sie sie so, dass stattdessen eine konstante Variable verwendet wird, die Sie definieren"
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr "der Vorgabewert für die aktuelle CPU-Feineinstellung ist %d Bytes"
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr "Sie können diesen Wert mit %<--param hardware_destructive_interference_size=%d%> stabilisieren, oder diese Warnung mit %<-Wno-interference-size%> deaktivieren"
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "Wert %qE vom Typ %qT ist kein Konstantenausdruck"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr "Anzahl der Evaluierungsoperationen in %<constexpr%> überschreitet Höchstwert %wd (%<-fconstexpr-ops-limit=%> verwenden, um diesen zu erhöhen)"
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr "der Programmfluss geht durch die Definition von %qD mit thread-lokaler Speicherdauer"
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr "der Programmfluss geht durch die Definition von %qD mit statischer Speicherdauer"
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "Zwischenergebnis des nicht-literalen Typs %qT in konstantem Ausdruck"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "Ein %<reinterpret_cast%> ist kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "Umwandlung von Zeigertyp %qT in arithmetischen Typ %qT in Konstantenausdruck"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "der Cast von %qT ist in einem konstanten Ausdruck nicht zulässig, da der Typ %qT, auf den gezeigt wird, %qT nicht ähnlich ist"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr "der Typ, auf den gezeigt wird, ist hier deklariert"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "der Cast von %qT ist in einem konstanten Ausdruck nicht zulässig, da %qE nicht auf ein Objekt zeigt"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "der Cast von %qT ist in einem konstanten Ausdruck vor C++26 nicht erlaubt"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "%qE ist kein konstanter Ausdruck, solange die Klasse %qT noch unvollständig ist"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "%<reinterpret_cast<%T>(%E)%> ist kein Konstantenausdruck"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "Ausdruck %qE ist kein Konstantenausdruck"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "%<goto%> ist kein Konstantenausdruck"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "Vertragsbedingung ist false in konstantem Ausdruck"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr "unerwartete Template-ID %qE"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, gcc-internal-format
 msgid "function concept must be called"
 msgstr "Funktionskonzept muss aufgerufen werden"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr "Adresse des Aufrufs von %qs ist kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "unexpected expression %qE of kind %s"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr "%qE ist kein Konstantenausdruck, da er auf veränderliche Teilobjekte von %qT verweist"
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr "%qE ist kein Konstantenausdruck, da er auf eine unvollständig initialisierte Variable verweist"
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "%qE ist kein konstanter Ausdruck, da er auf das Ergebnis von %<operator new%> verweist"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr "%qE ist kein konstanter Ausdruck, da der angeforderte Speicher nicht vollständig freigegeben wurde"
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr "unmittelbare Auswertung liefert die Adresse der unmittelbaren Funktion %qD"
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "Konstantenauswertung liefert Adresse der unmittelbaren Funktion %qD"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "Umwandlung lvalue-in-rvalue eines volatile-lvalue %qE mit Typ %qT"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "Lambda-Einfangen von %qE ist kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr "da er als glvalue verwendet wird"
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "%<reinterpret_cast%> von Ganzzahl zu Zeiger"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr "Adresse eines Objektes %qE mit thread-lokalem oder automatischem Speicher ist kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "Verwendung von %<this%> in Konstantenausdruck"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "Lambda-Ausdruck ist erst ab C++17 ein konstanter Ausdruck"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr "new-expression ist erst ab C++20 ein konstanter Ausdruck"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, gcc-internal-format
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "virtuelle Funktionen können erst mit C++20 %<constexpr%> sein"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "%<typeid%> ist kein konstanter Ausdruck, da %qE polymorphen Typ hat"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "Umwandlung in Nicht-Ganzzahltyp %qT in konstantem Ausdruck"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "%qD in %<constexpr%>-Kontext als %<thread_local%> definiert"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "%qD in %<constexpr%>-Kontext als %<static%> definiert"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "Division durch Null ist kein konstanter Ausdruck"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "%<delete[]%> ist kein Konstantenausdruck"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "keiner der Zweige des %<if%> ist ein Konstantenausdruck"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "nicht konstante Arrayinitialisierung"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "Definition einer Sprungmarke innerhalb einer %<constexpr%>-Funktion ist erst ab %<-std=c++2b%> oder %<-std=gnu++2b%> verfügbar"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "unerwarteter AST der Art %s"
@@ -54172,7 +54195,7 @@ msgstr "das Richtungsargument für %<__builtin_coro_promise%> muss eine Konstant
 msgid "no suspend point info for %qD"
 msgstr "keine Informationen zum Aufschiebepunkt für %qD"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr "%qE wird von %qT bereitgestellt, ist aber nicht mit der Funktionssignatur %qD verwendbar"
@@ -54192,23 +54215,23 @@ msgstr "await-Ausdrücke sind in Handlern nicht erlaubt"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr "Arrays mit variabler Länge werden in Koroutinen noch nicht unterstützt"
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr "%qE wird von %qT bereitgestellt, aber %qE ist nicht mit %<throw()%> oder %<noexcept%> gekennzeichnet"
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr "%qE ist mit %<throw()%> oder %<noexcept%> markiert, aber %qT liefert kein brauchbares %<get_return_object_on_allocation_failure%>"
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr "%qE wird von %qT bereitgestellt, aber %<std::nothrow%> wurde nicht gefunden"
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr "ein Rückgabeobjekt vom Typ %qT kann nicht mit einem r-Wert vom Typ %<void%> initialisiert werden"
@@ -54228,68 +54251,68 @@ msgstr "%qD wurde in eine unmittelbare Funktion umgewandelt, da ihr Rumpf einen
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD wurde zu einer unmittelbaren Funktion befördert"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr "Adresse der direkten Funktion %qD wird genommen"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "Aufruf der consteval-Funktion %qE ist kein konstanter Ausdruck"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "%<throw%> wird immer %<terminate%> aufrufen"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "in C++11 sind Destruktoren standardmäßig %<noexcept%>"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr "in C++11 ruft dieses %<throw%> %<terminate%> auf, da Destruktoren standardmäßig %<noexcept%> sind"
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "Attribut %qE wird nach dem früheren %qE ignoriert"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, gcc-internal-format
 msgid "pack expansion of %qE attribute"
 msgstr "Packungsexpansion des Attributs %qE"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr "verwenden Sie stattdessen einen fold-Ausdruck im Attributargument"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD ist kein Typ"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr "%qD ist kein Klassentyp"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qD hat nicht den Typ %<const char *%>"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "%qD hat keinen Ganzzahltyp"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr "%<std::source_location::__impl%> enthält nicht nur nicht-statische Datenelemente %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> und %<_M_column%>"
@@ -54330,7 +54353,7 @@ msgstr "Umwandlung in nicht-konstanten Referenztyp %q#T von R-Wert des Typs %qT"
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "Umwandlung von %qH in %qI löscht Qualifizierer"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "Umwandlung von %qT in %qT dereferenziert nicht den Zeiger"
@@ -54714,7 +54737,7 @@ msgstr "von vorheriger Deklaration %qF"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "Redeklaration %qD unterscheidet sich in %qs von vorheriger Deklaration"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "vorherige Deklaration %qD"
@@ -54854,8 +54877,8 @@ msgstr "vorherige Deklaration von %<pragma omp declare reduction%>"
 msgid "%q#D previously defined here"
 msgstr "%q#D wurde bereits hier definiert"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "%q#D wurde bereits hier deklariert"
@@ -54930,52 +54953,37 @@ msgstr "Standardargument für Parameter %d von %q#D angegeben"
 msgid "previous specification in %q#D here"
 msgstr "bisherige Spezifikation in %q+#D hier"
 
-#: cp/decl.cc:2285
-#, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr "Deklaration %qD widerspricht der eingebauten Deklaration"
-
-#: cp/decl.cc:2288
-#, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr "Deklaration %qD widerspricht dem Import"
-
-#: cp/decl.cc:2289
-#, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr "der Import hat %q#D hier deklariert"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, gcc-internal-format
 msgid "conflicting exporting for declaration %qD"
 msgstr "in Konflikt stehender Export für Deklaration %qD"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, gcc-internal-format
 msgid "previously declared here without exporting"
 msgstr "vorher hier ohne Export deklariert"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr "vorherige Definition von %qD war hier"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "vorherige Deklaration von %qD war hier"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, gcc-internal-format
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "Funktion %qD wurde als %<[[noreturn]]%> deklariert, das weicht von der ersten Deklaration ab"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "redundante Redeklaration von %qD im selben Gültigkeitsbereich"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr "gelöschte Definition von %qD ist nicht die erste Deklaration"
@@ -54988,44 +54996,44 @@ msgstr "gelöschte Definition von %qD ist nicht die erste Deklaration"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "explizite Spezialisierung von %qD nach erster Verwendung"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%qD: Sichtbarkeitsattribut ignoriert, da es in Konflikt mit vorheriger Deklaration steht"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "Redefinition von %q#D"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "%qD steht mit verwendeter Funktion in Konflikt"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q#D nicht in Klasse deklariert"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%q+D mit Attribut %<gnu_inline%> »inline« redeklariert"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%q+D ohne Attribut %<gnu_inline%> »inline« redeklariert"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr "Vergleichsoperator %q+D mit Standardimplementierung nach der ersten Deklaration [class.compare.default]"
@@ -55033,2502 +55041,2502 @@ msgstr "Vergleichsoperator %q+D mit Standardimplementierung nach der ersten Dekl
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "Redeklaration des »friend« %q#D kann keine Standardtemplateargumente haben"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "Thread-lokale Deklaration von %q#D folgt nicht-Thread-lokaler Deklaration"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "Nicht-Thread-lokale Deklaration von %q#D folgt Thread-lokaler Deklaration"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "Redeklaration von %q#D"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "redundante Redeklaration von %<constexpr%>static-Datenmember %qD"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr "lokale Sprungmarke %qE steht in Konflikt mit bestehender Sprungmarke"
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, gcc-internal-format
 msgid "previous label"
 msgstr "vorherige Sprungmarke"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "Sprung zur Marke %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "Sprung zur case-Marke"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr "  als ein mögliches Ziel des berechneten goto"
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  von hier"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  beendet OpenMP-strukturierten Block"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "  überschneidet Initialisierung von %q#D"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr "  betritt %<try%>-Block"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr "  betritt %<catch%>-Block"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  tritt in OpenMP-strukturierten Block ein"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr "  synchronisierte oder atomare Anweisung wird betreten"
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, gcc-internal-format
 msgid "  enters statement expression"
 msgstr "  betritt den Anweisungsausdruck"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr "  betritt %<constexpr if%>-Anweisung"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr "  betritt %<consteval if%>-Anweisung"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, gcc-internal-format
 msgid "  does not destroy %qD"
 msgstr "  zerstört %qD nicht"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr "  bereinigt die behandelte Ausnahme nicht"
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "  überspringt Initialisierung von %q#D"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, gcc-internal-format
 msgid "%qD used without template arguments"
 msgstr "%qD wird ohne Template-Argumente verwendet"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, gcc-internal-format
 msgid "%qD is a function, not a type"
 msgstr "%qD ist eine Funktion, kein Typ"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T ist keine Klasse"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "kein Klassentemplate namens %q#T in %q#T"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "kein Typ namens %q#T in %q#T"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "Nachschlagen von %qT in %qT ist nicht eindeutig"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%> benennt %q#T, was kein Klassentemplate ist"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%> benennt %q#D, das ist jedoch kein Typ"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "Template-Parameter passen nicht zum Template %qD"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "%<-faligned-new=%d%> ist keine Zweierpotenz"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr "%<--param destructive-interference-size=%d%> ist kleiner als %d"
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr "%<--param destructive-interference-size=%d%> ist kleiner als %<--param l1-cache-line-size=%d%>"
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr "%<--param constructive-interference-size=%d%> ist kleiner als %d"
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr "%<--param constructive-interference-size=%d%> ist größer als %<--param l1-cache-line-size=%d%>"
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q#D ungültig; eine anonyme Union kann nur nicht-statische Datenelemente haben"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr "diese Flexibilität ist veraltet und wird demnächst entfernt"
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, gcc-internal-format
 msgid "anonymous struct with base classes"
 msgstr "anonyme Struktur mit Basisklassen"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "Element %q+#D mit Konstruktor in anonymem Aggregat nicht erlaubt"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "Element %q+#D mit Destruktor in anonymem Aggregat nicht erlaubt"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "Element %q+#D mit Zuweisungsoperator ist in anonymem Aggregt nicht erlaubt"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "Attribut in Deklaration von %q#T ignoriert"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "Attribut für %q#T muss dem Schlüsselwort %qs folgen"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "mehrere Typen in einer Deklaration"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "Redeklaration des eingebauten C++-Typs %qT"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "%<auto%> kann nur für Variablen oder Funktionsdeklarationen angegeben werden"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "fehlender Typname in typedef-Deklaration"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO-C++ verbietet anonyme structs"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "%<inline%> kann nur für Funktionen angegeben werden"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr "%<virtual%> kann nur für Funktionen angegeben werden"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> kann nur innerhalb einer Klasse angegeben werden"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "%<explicit%> kann nur für Konstruktoren angegeben werden"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "eine Speicherklasse kann nur für Objekte und Funktionen angegeben werden"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "%<const%> kann nur für Objekte und Funktionen angegeben werden"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "%<volatile%> kann nur für Objekte und Funktionen angegeben werden"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "%<__restrict%> kann nur für Objekte und Funktionen angegeben werden"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "%<__thread%> kann nur für Objekte und Funktionen angegeben werden"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "%<typedef%> wurde in dieser Deklaration ignoriert"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "%qs kann nicht für Typdeklarationen verwendet werden"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "Attribut in expliter Instanziierung %q#T ignoriert"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "auf explizite Instanziierung kann kein Attribut angewendet werden"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "auf Klassentyp %qT angewandte Attribute außerhalb einer Definition werden ignoriert"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr "auf abhängigen Typ %qT angewandte Attribute ohne zugehörige Deklaration werden ignoriert"
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD ist initialisiert (stattdessen %qs verwenden)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "Deklaration von %q#D hat %<extern%> und ist initialisiert"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "Definition von %q#D ist als %<dllimport%> markiert"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q+#D ist kein static-Datenelement von %q#T"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "Nichtelement-Templatedeklaration von %qD"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "entspricht nicht der Element-Templatedeklaration hier"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO-C++ erlaubt nicht, %<%T::%D%> als %<%T::%D%> zu definieren"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "doppelte Initialisierung von %qD"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "Deklaration von %q#D außerhalb einer Klasse ist keine Definition"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr "extern-Deklaration %q#D mit Gültigkeitsbereich Block darf nicht an ein benanntes Modul angehängt werden"
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%qD kann in einer %qs-Funktion erst ab %<-std=c++2b%> oder %<-std=gnu++2b%> als %<thread_local%> definiert werden"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%qD kann in einer %qs-Funktion erst ab %<-std=c++2b%> oder %<-std=gnu++2b%> als %<static%> definiert werden"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "Variable %q#D hat Initialisierung, aber unvollständigen Typ"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "Elemente des Arrays %q#D haben unvollständigen Typ"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "Aggregat %q#D hat unvollständigen Typ und kann nicht definiert werden"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD als Referenz deklariert, aber nicht initialisiert"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "Name in benannter Initialisierung im GNU-Stil für ein Array verwendet"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "Name %qD in benannter Initialisierung im GNU-Stil für ein Array verwendet"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "nicht-trivial markierte Initialisierungen nicht unterstützt"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "C99-Designator %qE ist kein konstanter Ganzzahlausdruck"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "Initialisierung gibt nicht die Größe von %qD an"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "Arraygröße fehlt in %qD"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "Array %qD der Größe null"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "Speichergröße von %qD ist unbekannt"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "Speichergröße von %qD ist nicht konstant"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "Entschuldigung: Semantik der Inline-Variable %q#D ist falsch (mehrere Kopien wären die Folge)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "Entschuldigung: Semantik von static-Variable %q#D in inline-Funktion ist falsch (mehrere Kopien wären die Folge)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr "dies kann durch das Löschen der Initialisierung umgangen werden"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, gcc-internal-format
 msgid "uninitialized %<const %D%>"
 msgstr "nicht initialisiertes %<const %D%>"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "uninitialisierte Variable %qD in %<constexpr%>-Funktion"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "uninitialisierte Variable %qD in %<constexpr%>-Kontext"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "%q#T hat keinen benutzerdefinierten Default-Konstruktor"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr "Konstruktor ist nicht benutzerdefiniert, da er im Klassenkörper ausdrücklich standardisiert ist"
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr "und der implizit definierte Konstruktor initialisiert %q#D nicht"
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "Ungültiger Typ %qT als Initialisierung für einen Vektor des Typs %qT"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "Initialisierung für %qT muss geklammert sein"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "%<[%E] =%> in benannter Initialisierung im GNU-Stil für Klasse %qT verwendet"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "Abfrage des Elementes %qD ist mehrdeutig"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT hat kein nicht-statisches Datenelement namens %qD"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD ist kein direktes Element von %qT"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "ungültige Initialisierung für %q#D"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr "C99-Bezeichner %qE außerhalb von Aggregatinitialisierung"
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "zu viele Initialisierer für %qT"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "geschweifte Klammern um skalare Initialisierung für Typ %qT"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90182
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, gcc-internal-format
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "zu viele geschweifte Klammern um skalare Initialisierung für Typ %qT"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "geschweifte Klammern fehlen um Initialisierung für %qT"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "Strukturierte Bindung hat unvollständigen Typen %qT"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "Elemente des Arrays %q#T haben unvollständigen Typ"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "zusammengesetztes Literal variabler Größe"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "%q#D hat unvollständigen Typ"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "skalares Objekt %qD erfordert ein Element in Initialisierung"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "in C++98 muss %qD mit Konstruktor initialisiert werden, nicht mit %<{...}%>"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "Array %qD mit geklammerter Zeichenkettenkonstante %qE initialisiert"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "Initialisierung ungültig für statisches Element mit Konstruktor"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "Initialisierung des nicht konstanten statischen Elements %qD in der Klasse ist ungültig"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "Initialisierung des nicht konstanten statischen Elements %qD in der Klasse ist ungültig"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(eine Initialisierung außerhalb der Klasse ist erforderlich)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "Referenz %qD wird mit sich selbst initialisiert"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr "Variantendeklaration nicht gefunden"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr "%<declare variant%> für Konstruktor %qD"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr "%<declare variant%> für Destruktor %qD"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr "%<declare variant%> an %qD mit Vorgabewert"
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr "%<declare variant%> an gelöschter %qD"
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr "%<declare variant%> an virtueller %qD"
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "Zuweisung (nicht Initialisierung) in Deklaration"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO-C++17 erlaubt Speicherklassenangabe %<register%> nicht"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr "%<register%>-Speicherklassenangabe verwendet"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "Deklaration von %q#D hat keine Initialisierung"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "Initialisierung für %<decltype(auto) %D%> hat Funktionstyp; %<()%> vergessen?"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, gcc-internal-format
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "deduzierter Typ %qT für %qD ist unvollständig"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr "Variablenkonzept hat keine Initialisierung"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "vorherige Typdeklaration von %q#D wird überschattet"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "Attribut %<constinit%> kann nur für Variablen verwendet werden, die »static« oder threadlokel sind"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "Funktion %q#D ist wie eine Variable initialisiert"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "Klassentyp %qT kann nicht dekomponiert werden, da er ein unbenanntes Strukturelement hat"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr "Klassentyp %qT kann nicht dekomponiert werden, da er ein unbenanntes Unionelement hat"
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "unzugreifbares Element %qD von %qT kann nicht dekomponiert werden"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr "Klassentyp %qT kann nicht dekomponiert werden, da sowohl er als auch seine Basisklasse %qT nichtstatische Datenelemente haben"
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr "Klassentyp %qT kann nicht dekomponiert werden, da seine Basisklassen %qT und %qT nichtstatische Datenelemente haben"
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "Strukturierte Bindung verweist auf unvollständigen Typen %qT"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "Array mit variabler Länge %qT kann nicht dekomponiert werden"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] "%u Name für strukturelle Bindung angegeben"
 msgstr[1] "%u Namen für strukturelle Bindung angegeben"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] "nur %u Name für strukturelle Bindung angegeben"
 msgstr[1] "nur %u Namen für strukturelle Bindung angegeben"
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] "während %qT in %wu Element zerlegt wird"
 msgstr[1] "während %qT in %wu Elemente zerlegt wird"
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr "Vektor %qT variabler Länge kann nicht zerlegt werden"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "%<std::tuple_size<%T>::value%> ist kein konstanter Ganzzahlausdruck"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr "während %qT in %E Elemente zerlegt wird"
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr "%<std::tuple_element<%u, %T>::type%> ist %<void%>"
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr "in Initialisierung der Variable %qD für strukturierte Bindung"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "Union-Typ %qT kann nicht dekomponiert werden"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "nicht-Array-nicht-Klassentyp %qT kann nicht dekomponiert werden"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr "Lambda-Abschluss-Typ %qT kann nicht dekomponiert werden"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "Strukturierte Bindung verweist auf unvollständigen Klassentypen %qT"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "Klassentyp %qT ohne nicht-static-Datenelemente kann nicht dekomponiert werden"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr "nicht-lokale %<__thread%>-Variable %qD erfordert dynamische Initialisierung"
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr "nicht-lokale %<__thread%>-Variable %qD hat einen nicht-trivialen Destruktor"
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr "%<thread_local%> in C++11 erlaubt dynamische Initialisierung und Zerstörung"
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "Initialisierung gibt nicht die Größe von %qT an"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "Arraygröße fehlt in %qT"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "Array %qT der Größe null"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "Destruktor für fremde Klasse %qT kann kein Element sein"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "Konstruktor für fremde Klasse %qT kann kein Element sein"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD als eine %<virtual%> Variable deklariert"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "Funktionsspezifizierer %<const%> und %<volatile%> an %qD ungültig in Variablendeklaration"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD als ein %<virtual%> Parameter deklariert"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD als ein %<inline%> Parameter deklariert"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "Funktionsspezifizierer %<const%> und %<volatile%> an %qD ungültig in Parameterdeklaration"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD als ein %<virtual%> Typ deklariert"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD als ein %<inline%> Typ deklariert"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "Funktionsspezifizierer %<const%> und %<volatile%> an %qD ungültig in Typdeklaration"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD als ein %<virtual%> Feld deklariert"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD als ein %<inline%> Feld deklariert"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "Funktionsspezifizierer %<const%> und %<volatile%> an %qD ungültig in Felddeklaration"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D als »friend« deklariert"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D mit einer Ausnahmespezifikation deklariert"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "Deklaration von %qD ist nicht in einem Namensbereich um %qT"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "statische Elementfunktion %q#D mit Typqualifizierern deklariert"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "Konzept %q#D mit Funktionsparametern deklariert"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr "Konzept %q#D mit hergeleitetem Rückgabetyp deklariert"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "Konzept %q#D mit nicht-%<bool%>-Rückgabetyp %qT"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "Konzept %qD hat keine Definition"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, gcc-internal-format
 msgid "a function concept cannot be constrained"
 msgstr "ein Funktionskonzept kann nicht eingeschränkt werden"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, gcc-internal-format
 msgid "constraints on a non-templated function"
 msgstr "Einschränkungen auf einer Funktion, die kein Template hat"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, gcc-internal-format
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "eingeschränkte Nicht-Template-friend-Deklaration muss eine Definition sein"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr "friend-Funktionstemplate mit Einschränkungen, die von äußeren Templateparametern abhängen, muss eine Definition sein"
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "Definition der expliziten Spezialisierung %qD in friend-Deklaration"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "ungültige Verwendung der Template-ID %qD in Deklaration des ursprünglichen Templates"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "Standardargumente sind nicht in Deklaration der friend-Template-Spezialisierung %qD erlaubt"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "%<inline%> ist nicht in Deklaration der friend-Template-Spezialisierung %qD erlaubt"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "»friend«-Deklaration von %qD gibt Defaultargumente an und ist keine Definition"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "%<::main%> kann nicht als Template deklariert werden"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "%<::main%> kann nicht inline deklariert werden"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "%<::main%> kann nicht als %qs deklariert werden"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "%<::main%> kann nicht statisch deklariert werden"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "Nicht-Elementfunktion %qD kann nicht CV-Qualifizierer haben"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "statische Elementfunktion %qD kann nicht CV-Qualifizierer haben"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "explizite Objekt-Member-Funktion %qD kann keine CV-Qualifizierer haben"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "Nicht-Elementfunktion %qD kann keinen ref-Qualifizierer haben"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "statische Elementfunktion %qD kann keinen ref-Qualifizierer haben"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "explizite Objekt-Member-Funktion %qD kann keinen ref-qualifier haben"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, gcc-internal-format
 msgid "explicit object parameter declared here"
 msgstr "expliziter Objektparameter wird hier deklariert"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "Herleitungshinweis %qD muss im selben Gültigkeitsbereich wie %qT deklariert sein"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "Herleitungshinweis %qD muss denselben Zugriff wie %qT haben"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr "Herleitungshinweis %qD darf keinen Funktionskörper haben"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr "literaler Operator mit C-Bindung"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "%qD hat ungültige Argumentliste"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr "Ganzzahl-Suffix %qs durch Implementierung überdeckt"
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr "Gleitkomma-Suffix %qs durch Implementierung überdeckt"
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr "Literale Operator-Suffixe ohne vorangehendes %<_%> sind für zukünftige Standardisierungen reserviert"
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%qD muss eine Nicht-Elementfunktion sein"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> muss %<int%> zurückgeben"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "Definition des implizit deklarierten %qD"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "Definition des explizit standardisierten %q+D"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "%q#D wurde hat hier ausdrücklichen Standardwert bekommen"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "keine Elementfunktion %q#D in Klasse %qT deklariert"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "%<::main%> kann nicht als globale Variable deklariert werden"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "eine Nicht-Template-Variable kann nicht %<concept%> sein"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr "Konzept muss im Gültigkeitsbereich des Namensbereiches definiert werden"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr "Konzept muss Typ %<bool%> haben"
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, gcc-internal-format
 msgid "a variable concept cannot be constrained"
 msgstr "ein Variablenkonzept kann nicht eingeschränkt werden"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "Initialisierung innerhalb der Klasse des statischen Datenelements %q#D mit unvollständigem Typ"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "%<constexpr%> erforderlich für Initialisierung innerhalb der Klasse des statischen Datenelements %q#D mit nicht eingebautem Typ"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "Initialisierung innerhalb der Klasse des statischen Datenelements %q#D mit nicht eingebautem Typ"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "ungültige Initialisierung innerhalb der Klasse des statischen Datenelements vom nicht eingebauten Typen %qT"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO-C++ verbietet Initialisierung des nicht konstanten statischen Elements %qD in der Klasse"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO-C++ verbietet Initialisierung der Elementkonstante %qD vom nicht eingebauten Typen %qT"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "Arraygröße von %qD hat nicht-ganzzahligen Typen %qT"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "Arraygröße hat nicht-ganzzahligen Typen %qT"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "Größe des Arrays %qD ist kein konstanter Ganzzahlausdruck"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "Größe des Arrays ist kein konstanter Ganzzahlausdruck"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO-C++ verbietet Array %qD der Größe null"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO-C++ verbietet Array der Größe null"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO-C++ verbietet Array %qD variabler Länge"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO-C++ verbietet Array variabler Länge"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "Array %qD variabler Länge wird verwendet"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "Array variabler Größe wird verwendet"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "Überlauf in Arraygröße"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%qD ist als Array vom Template-Platzhaltertyp %qT deklariert"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, gcc-internal-format
 msgid "creating array of template placeholder type %qT"
 msgstr "Array des Template-Platzhaltertyps %qT wird erzeugt"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "Deklaration von %qD als Array von voids"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr "Array von void wird erzeugt"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "Deklaration von %qD als Array von Funktionen"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr "Array von Funktionen wird erzeugt"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "Deklaration von %qD als Array von Referenzen"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr "Feld von Referenzen wird erzeugt"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "Deklaration von %qD als Feld von Funktionselementen"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr "Feld von Funktionselementen wird erzeugt"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "Deklaration von %qD als multidimensionales Feld muss für alle Dimensionen außer der ersten Grenzen haben"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "multidimensionales Feld muss für alle Dimensionen außer der ersten Grenzen haben"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, gcc-internal-format
 msgid "variable-length array of %<auto%>"
 msgstr "Array variabler Größe von %<auto%>"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "Angabe des Rückgabetyps für Konstruktor ist ungültig"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "Qualifizierer sind bei Konstruktordeklarationen nicht erlaubt"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "Angabe des Rückgabetyps für Destruktor ist ungültig"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "Qualifizierer sind bei Destruktordeklarationen nicht erlaubt"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "Rückgabetyp für %<operator %T%> angegeben"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "Qualifizierer sind bei Deklaration von %<operator %T%> nicht erlaubt"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr "Rückgabetyp für Herleitungshinweis angegeben"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "Qualifizierer sind bei Deklaration von Herleitungshinweis nicht erlaubt"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "Template-Template-Parameter %qT in Deklaration von Ableitungshinweis"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "%<decl-specifier%> in Deklaration von Ableitungshinweis"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "unbenannte Variable oder Feld als »void« deklariert"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "Variable oder Feld als »void« deklariert"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "%<inline%>-Spezifizierer ungültig für Variable %qD mit Gültigkeitsbereich Block"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "»inline«-Variablen sind nur mit %<-std=c++17%> oder %<-std=gnu++17%> verfügbar"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr "%qT als Typ statt als einfaches %<decltype(auto)%>"
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, gcc-internal-format
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "%<decltype(auto)%> darf nicht CV-qualifiziert sein"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "ungültige Verwendung des qualifizierten Namens %<::%D%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "ungültige Verwendung des qualifizierten Namens %<%T::%D%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "ungültige Verwendung des qualifizierten Namens %<%D::%D%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, gcc-internal-format
 msgid "%q#T is not a class or namespace"
 msgstr "%q#T ist weder Klasse noch Namensbereich"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, gcc-internal-format
 msgid "declaration of %qE as non-function"
 msgstr "Deklaration von %qE als Nicht-Funktion"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, gcc-internal-format
 msgid "declaration of %qE as non-member"
 msgstr "Deklaration von %qE als Nicht-Element"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "Deklarator-ID fehlt: reserviertes Wort %qD wird verwendet"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "Funktionsdefinition deklariert keine Parameter"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "Deklaration von %qD als Nicht-Funktion"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "Deklaration von %qD als %<typedef%>"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "Deklaration von %qD als Parameter"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr "sowohl %qs als auch %qs angegeben"
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%qs kann nicht in einer typedef-Deklaration auftreten"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr "höchstens einer der Spezifizierer %<constinit%> und %<constexpr%> kann verwendet werden"
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "zwei oder mehr Datentypen in Deklaration von %qs"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO-C++ unterstützt nicht, dass einfaches %<complex%> %<double complex%> bedeutet"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO-C++ verbietet Deklaration von %qs ohne Typ"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "%<__int%d%> wird von diesem Ziel nicht unterstützt"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO-C++ unterstützt %<__int%d%> für %qs nicht"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> und %<unsigned%> gleichzeitig angegeben"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> und %<short%> gleichzeitig angegeben"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr "%qs mit %qT angegeben"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr "%qs mit typedef-name %qD angegeben"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "%qs mit %<decltype%> angegeben"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr "%qs mit %<typeof%> angegeben"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "complex ungültig für %qs"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr "fehlende Template-Argumentliste nach %qE; für die Deduktion muss auf den Template-Platzhalter eine einfache Deklarator-ID folgen"
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "Element %qD kann nicht gleichzeitig %<virtual%> und %<static%> sein"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "Element %qD kann erst mit %<-std=c++20%> oder %<-std=gnu++20%> gleichzeitig %<virtual%> und %<constexpr%> sein"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "»typedef«-Deklaration in Parameterdeklaration ungültig"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "Speicherklasse für Template-Parameter %qs angegeben"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "Speicherklasse für Parameter %qs angegeben"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr "ein Parameter kann nicht als %qs deklariert sein"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%> außerhalb einer Klassendeklaration"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "Deklaration für strukturierte Bindung darf nicht als %qs deklariert werden"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "strukturierte Bindungsdeklarationen können erst ab %<-std=c++20%> oder %<-std=gnu++20%> %qs sein"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "%<volatile%>-qualifizierte strukturierte Bindung ist veraltet"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr "Deklaration für strukturierte Bindung darf nicht als %<auto%> (C++98) deklariert werden"
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "Deklaration für strukturierte Bindung darf nicht vom Typen %qT sein"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr "Typ muss cv-qualifizierter %<auto%> oder Referenz auf cv-qualifizierten %<auto%> sein"
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr "Deklaration für strukturierte Bindung darf nicht vom eingeschränkten %<auto%>-Typen %qT sein"
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "mehrere Speicherklassen in Deklaration von %qs"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "Speicherklasse %qs angegeben"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "geschachtelte Funktion %qs als %<extern%> deklariert"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "Deklaration höchster Ebene von %qs gibt %<auto%> an"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "Funktions-Gültigkeitsbereich %qs ist implizit auto und deklarierte %<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "Speicherklassenangaben sind in friend-Funktionsdeklarationen ungültig"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, gcc-internal-format
 msgid "attribute ignored"
 msgstr "Attribut wird ignoriert"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr "ein Attribut, das sich auf eine Typspezifizierung bezieht, wird ignoriert"
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "unnötige Klammern in Deklaration von %qs"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, gcc-internal-format
 msgid "remove parentheses"
 msgstr "entfernen Sie die Klammern"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "explizite Objekt-Member-Funktion ist erst ab %<-std=c++23%> oder %<-std=gnu++23%> verfügbar"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr "ein Funktionstyp kann keinen expliziten Objektparameter haben"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr "ein Zeiger auf einen Funktionstyp kann keinen expliziten Objektparameter haben"
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "ein Zeiger auf einen Memberfunktionstyp kann keinen expliziten Objektparameter haben"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr "der Typ eines Zeigers auf eine explizite Objekt-Member-Funktion ist ein normaler Funktionszeiger-Typ"
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr "der Typ einer expliziten Objekt-Member-Funktion ist ein normaler Funktionstyp"
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr "nur der erste Parameter einer Memberfunktion kann als expliziter Objektparameter deklariert werden"
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr "gültiger expliziter Objektparameter wird hier deklariert"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr "»requires«-Klausel für Rückgabetyp"
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr "Funktion %qs verwendet Typspezifikation %<auto%> ohne folgenden Rückgabetypen"
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "hergeleiteter Rückgabetyp nur mit %<-std=c++14%> oder %<-std=gnu++14%> verfügbar"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr "virtuelle Funktionen kann keinen hergeleiteten Rückgabetyp haben"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr "Funktion %qs mit folgendem Rückgabetypen hat %qT als seinen Typ statt einfaches %<auto%>"
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr "Funktion %qs mit nachgestelltem Rückgabetyp hat %<decltype(auto)%> als Typ statt einfachem %<auto%>"
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "ungültige Verwendung von %<decltype(auto)%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr "hergeleiteter Klassentyp %qD in Rückgabetyp von Funktion"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr "Herleitungshinweis für %qT muss angehängten Rückgabetyp haben"
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr "angehängter Rückgabetyp %qT den Ableitungshinweises ist keine Spezialisierung von %qT"
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "nachgestellter Rückgabetyp nur mit %<-std=c++11%> oder %<-std=gnu++11%> verfügbar"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr "Funktion %qs mit folgendem Rückgabetypen nicht mit Typspezifikation %<auto%> deklariert"
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr "eine Umwandlungsfunktion darf keinen angehängten Rückgabetyp haben"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr "%<volatile%>-qualifizierter Rückgabetyp ist veraltet"
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs als Funktion, die eine Funktion zurückgibt, deklariert"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs als Funktion, die ein Feld zurückgibt, deklariert"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "%<constinit%> ist am Rückgabetyp einer Funktion nicht erlaubt"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "Destruktor kann keine statische Elementfunktion sein"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "Konstruktor kann keine statische Elementfunktion sein"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "Destruktoren dürfen nicht CV-qualifiziert sein"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "Konstruktoren dürfen nicht CV-qualifiziert sein"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr "Destruktoren dürfen nicht ref-qualifiziert sein"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr "Konstruktoren dürfen nicht ref-qualifiziert sein"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "Konstruktoren dürfen nicht als %<virtual%> deklariert sein"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "virtuelle Funktionen können keine friends sein"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "friend-Deklaration nicht in Klassendefinition"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "%<friend%>-Funktion %qs kann nicht in einer lokalen Klassendefinition definiert werden"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr "Definition der Freundfunktion %qs kann keinen Namen haben, der mit %<::%> qualifiziert ist"
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr "Definition der Freundfunktion %qs kann keinen Namen haben, der mit %<%D::%> qualifiziert ist"
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "eine Funktion, die kein Member ist, kann keinen expliziten Objektparameter haben"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "eine explizite Objekt-Member-Funktion kann nicht %<virtual%> sein"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr "eine explizite Objekt-Member-Funktion kann nicht %<static%> sein"
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD kann keine explizite Objektelementfunktion sein"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "Destruktoren dürfen keine Parameter haben"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "Zeiger auf %q#T kann nicht deklariert werden"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "Referenz auf %q#T kann nicht deklariert werden"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "Zeiger auf Element %q#T kann nicht deklariert werden"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "Referenz auf qualifizierten Funktionstypen %qT kann nicht deklariert werden"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "Zeiger auf qualifizierten Funktionstypen %qT kann nicht deklariert werden"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr "Referenz auf %q#T kann nicht deklariert werden, da letzteres weder Typedef noch Templatetyp-Argument ist"
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "Template-ID %qD als Deklarator verwendet"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "Elementfunktionen sind implizite »friends« ihrer Klasse"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "zusätzliche Qualifizierung %<%T::%> an Element %qs"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "Elementfunktion %<%T::%s%> kann nicht innerhalb von %qT definiert werden"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "Elementfunktion %<%T::%s%> kann nicht innerhalb von %qT deklariert werden"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "Element %<%T::%s%> kann nicht in %qT deklariert werden"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "Nicht-Parameter %qs kann kein Parameterpack sein"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "Datenelement darf nicht variabel modifizierten Typ %qT haben"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "Parameter darf nicht variabel modifizierten Typ %qT haben"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "%<explicit%> außerhalb einer Klassendeklaration"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr "%<explicit%> in »friend«-Deklaration"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "nur Deklarationen von Konstruktoren und Umwandlungsoperatoren können %<explicit%> sein"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "Nicht-Element %qs kann nicht als %<mutable%> deklariert sein"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "Nicht-Objekt-Element %qs kann nicht als %<mutable%> deklariert sein"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "Funktion %qs kann nicht als %<mutable%> deklariert sein"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "%qs ist %<static%> und darf daher nicht als %<mutable%> deklariert sein"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "%qs ist %<const%> und darf daher nicht als %<mutable%> deklariert sein"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "Referenz %qs kann nicht als %<mutable%> deklariert sein"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr "mit %<typedef%> definierte Funktion darf keinen Rumpf %<{ … }%> haben"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr "mit %<typedef%> definierte Elementfunktion darf keinen Rumpf %<{ … }%> haben"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<auto%> ist in Aliasdeklaration nicht erlaubt"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "»typedef« als %<auto%> deklariert"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr "requires-clause an Typedef"
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "typedef-Name darf kein Spezifizierer mit geschachteltem Namen sein"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ISO-C++ verbietet geschachtelten Typen %qD mit gleichem Namen wie umschließende Klasse"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "%<inline%> für friend-Klassen-Deklaration angegeben"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "Template-Parameter können keine »friends« sein"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "friend-Deklaration erfordert Klassenschlüssel, d.h. %<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "friend-Deklaration erfordert Klassenschlüssel, d.h. %<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "Versuch, die Klasse %qT zu einem »friend« des globalen Gültigkeitsbereiches zu machen"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "ungültige Qualifizierer an Nicht-Element-Funktionstyp"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr "requires-clause an type-id"
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "abstrakter Deklarator %qT als Deklaration verwendet"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "»requires«-Klausel in Deklaration von Nichtfunktionstyp %qT"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "%<::%> kann nicht in Parameterdeklaration verwendet werden"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "Parameter kann nicht mit %<decltype(auto)%> deklariert werden"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr "fehlende Template-Argumentliste nach %qE; Template-Platzhalter ist in Parameter nicht erlaubt"
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr "oder verwenden Sie %<auto%> für ein abgekürztes Funktionstemplate"
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "%<auto%>-Parameter darf in diesem Kontext nicht verwendet werden"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "Parameter als %<auto%> deklariert"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "ungültige Verwendung des Template-Namens %qE ohne eine Argumentliste"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "nicht-statisches Datenelement mit Platzhalter %qT deklariert"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO-C++ verbietet flexibles Arrayelement %qs"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO-C++ verbietet flexible Arrayelemente"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "ungültige Verwendung von %<::%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "Deklaration der Funktion %qD in ungültigem Kontext"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "Funktion %qD wurde innerhalb einer Union als %<virtual%> deklariert"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD kann nicht als %<virtual%> deklariert werden, da es immer statisch ist"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "Qualifizierten Namen in Friend-Deklaration für Destruktor %qD erwartet"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "Deklaration von %qD als Element %qT"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr "ein Destruktor kann nicht %qs sein"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "Qualifizierten Namen in Friend-Deklaration für Konstruktor %qD erwartet"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr "ein Konstruktor kann nicht %<concept%> sein"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "ein Konzept kann keine Elementfunktion sein"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, gcc-internal-format
 msgid "%qD cannot be %qs"
 msgstr "%qD kann nicht %qs sein"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr "Spezialisierung des Variablentemplates %qD als Funktion deklariert"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, gcc-internal-format
 msgid "variable template declared here"
 msgstr "Variablentemplate hier deklariert"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "Feld %qD hat unvollständigen Typen %qT"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "Name %qT hat unvollständigen Typen"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE ist weder eine Funktion noch Elementfunktion; kann nicht als »friend« deklariert werden"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "unbenanntes Feld ist weder eine Funktion noch Elementfunktion; kann nicht als %<friend%> deklariert werden"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr "ein Attribut, das zu einer »friend«-Deklaration gehört, die keine Definition ist, wird ignoriert"
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr "statisches Datenelement %qE als %qs deklariert"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "statisches Datenelement %qD (%<constexpr%>) muss Initialisierung haben"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr "nicht-statisches Datenelement %qE als %qs deklariert"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "Speicherklasse %<auto%> ungültig für Funktion %qs"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "Speicherklasse %<register%> ungültig für Funktion %qs"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "Speicherklasse %<__thread%> ungültig für Funktion %qs"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "Speicherklasse %<thread_local%> ungültig für Funktion %qs"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "%<constinit%>-Angabe ungültig für Funktion %qs"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "virt-Spezifikation in %qs ist außerhalb einer Klassendefinition nicht erlaubt"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "%<static%> ist für außerhalb des globalen Gültigkeitsbereiches deklarierte Funktion %qs ungültig"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "%<inline%> ungültig für außerhalb des globalen Gültigkeitsbereiches deklarierte Funktion %qs"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "virtuelle Nicht-Klassen-Funktion %qs"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "%qs nicht in Klassen-Gültigkeitsbereich definiert"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "%qs in einem Nicht-Klassen-Gültigkeitsbereich definiert"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "Elementfunktion %qD kann nicht deklariert werden, statische Bindung zu haben"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "statische Funktion innerhalb anderer Funktion kann nicht deklariert werden"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "%<static%> darf nicht bei der Definition (im Gegensatz zu Deklaration) eines statischen Datenelementes verwendet werden"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "statisches Element %qD als %<register%> deklariert"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "Element %q#D kann nicht explizit deklariert werden, externe Bindung zu haben"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "Deklaration der %<constexpr%>-Variable %qD ist keine Definition"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "eine Variable kann nicht als %<consteval%> deklariert sein"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs initialisiert und als %<extern%> deklariert"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs hat sowohl %<extern%> als auch Initialisierung"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "Standardargument %qE verwendet %qD"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "Standardargument %qE verwendet lokale Variable %qD"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "ungültige Verwendung von cv-qualifiziertem Typ %qT in Parameterdeklaration"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "ungültige Verwendung von Typ %<void%> in Parameterdeklaration"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "%<volatile%>-qualifizierter Parameter ist veraltet"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "Parameter %qD deklariert ungültigerweise Methodentyp"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "Parameter %qD bezieht Zeiger auf Feld mit unbekannter Grenze %qT ein"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "Parameter %qD bezieht Referenz auf Feld mit unbekannter Grenze %qT ein"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "ungültiger Konstruktor; wahrscheinlich war %<%T (const %T&)%> gemeint"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD darf nicht innerhalb eines Namensbereiches definiert werden"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD darf nicht als »static« deklariert werden"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, gcc-internal-format
 msgid "%qD must be a non-static member function"
 msgstr "%qD muss eine nichtstatische Elementfunktion sein"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "%qD muss eine Memberfunktion sein"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "%qD darf erst ab %<-std=c++23%> oder %<-std=gnu++23%> eine statische Memberfunktion sein"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD muss entweder eine nichtstatische Elementfunktion oder eine Nicht-Element-Funktion sein"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD muss ein Argument von einem Klassen- oder Aufzählungstyp haben"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO-C++ verbietet Überladen von %<operator ?:%>"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "»%qD« darf keine variable Argumentanzahl haben"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr "%qD muss entweder null oder ein Argument nehmen"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr "%qD muss entweder ein oder zwei Argumente nehmen"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "Suffix-%qD muss %<int%> als sein Argument nehmen"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "Suffix-%qD muss %<int%> als sein zweites Argument nehmen"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, gcc-internal-format
 msgid "%qD must have no arguments"
 msgstr "%qD darf keine Argumente nehmen"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr "%qD muss genau ein Argument nehmen"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr "%qD muss genau zwei Argumente nehmen"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD kann keine Standardargumente haben"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "Umwandlung von %qT in %<void%> wird nie einen Typumwandlungsoperator verwenden"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "Umwandlung von %qT in Referenz auf gleichen Typ wird nie einen Typumwandlungsoperator verwenden"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "Umwandlung von %qT in gleichen Typ wird nie einen Typumwandlungsoperator verwenden"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "Umwandlung von %qT in Referenz auf Basisklasse %qT wird nie einen Typumwandlungsoperator verwenden"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "Umwandlung von %qT in Basisklasse %qT wird nie einen Typumwandlungsoperator verwenden"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "benutzerdefiniertes %qD wertet immer beide Argumente aus"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "Präfix-%qD sollte %qT zurückgeben"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "Suffix-%qD sollte %qT zurückgeben"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD sollte Wert zurückgeben"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "Templatetyp-Parameter %qT wird nach %qs verwendet"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "Templatespezialisierung alias %qT hinter %qs wird verwendet"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "typedef-Name %qD wird nach %qs verwendet"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "%qD hat eine vorherige Deklaration hier"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "%qT als %qs verwendet"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "%qT hat hier eine vorherige Deklaration"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "%qT als enum verwendet"
@@ -57540,115 +57548,100 @@ msgstr "%qT als enum verwendet"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "Template-Argument für %<%s %T%> benötigt"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "Referenz auf %qD ist mehrdeutig"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, gcc-internal-format
 msgid "class template %qD redeclared as non-template"
 msgstr "Klassentemplate %qD als Nicht-Template redeklariert"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD hat den gleichen Namen wie die Klasse, in der es deklariert wurde"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT ist kein Template"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr "Sie könnten ein explizites %<%T::%> hinzufügen"
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "Verwendung des enum %q#D ohne vorherige Deklaration"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "Redeklaration von %qT als Nicht-Template"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, gcc-internal-format
-msgid "cannot declare %qD in a different module"
-msgstr "%qD kann nicht in einem anderen Modul deklariert sein"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "vorher hier deklariert"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "abgeleitete Union %qT ist ungültig"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr "%qT ist mit mehreren direkten Basisklassen definiert"
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr "%qT ist mit direkter virtueller Basisklasse definiert"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "Basistyp %qT ist kein struct- oder Klassentyp"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "rekursiver Typ %qT nicht definiert"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "doppelter Basistyp %qT ungültig"
 
-#: cp/decl.cc:16984
-#, gcc-internal-format
-msgid "cannot declare %qD in different module"
-msgstr "%qD kann nicht in einem anderen Modul deklariert sein"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr "falsche Zuordnung zwischen innerhalb und außerhalb eines Gültigkeitsbereiches in enum %q#T"
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr "vorherige Definition hier"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr "falsche Zuordnung des zugrunde liegenden Typs in enum %q#T"
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr "anderer zugrunde liegender Typ in enum %q#T"
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr "zugrunde liegender Typ %qT von %qT muss ein ganzzahliger Typ sein"
@@ -57657,82 +57650,82 @@ msgstr "zugrunde liegender Typ %qT von %qT muss ein ganzzahliger Typ sein"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "kein Ganzzahltyp kann alle Aufzählungswerte für %qT darstellen"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "Aufzählungswert für %qD muss ganzzahligen oder Aufzählungstyp ohne Gültigkeitsbereich haben"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "Aufzählungswert für %qD ist keine Ganzzahlkonstante"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "erhöhter Aufzählungswert ist zu groß für %<unsigned long%>"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "erhöhter Aufzählungswert ist zu groß für %<long%>"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "Überlauf in Aufzählungswerten bei %qD"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "Aufzählungswert %qE ist außerhalb des Gültigkeitsbereichs des zugrundeliegenden Typen %qT"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "mehrfache Definition von %q#T"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "Rückgabetyp %q#T ist unvollständig"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%> sollte eine Referenz auf %<*this%> zurückgeben"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "keine return-Anweisungen in %qT zurückgebender Funktion"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "nur einfacher Rückgabetyp %<auto%> kann zu %<void%> hergeleitet werden"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, gcc-internal-format
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "eine %<constexpr%>-Funktion, die etwas Anderes als %<void%> zurückgibt, muss eine return-Anweisung enthalten"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD ist bereits in Klasse %qT definiert"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, gcc-internal-format
 msgid "using %qs"
 msgstr "%qs wird verwendet"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr "Verwendung von %qD vor Herleitung von %<auto%>"
@@ -57787,7 +57780,7 @@ msgstr "Eine Funktion kann nicht gelöscht werden. Nur Zeiger auf Objekte sind g
 msgid "deleting %qT is undefined"
 msgstr "Löschen von %qT ist nicht definiert"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "Templatedeklaration von %q#D"
@@ -57797,7 +57790,7 @@ msgstr "Templatedeklaration von %q#D"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "angegebene Template-Parameterlisten passen nicht zu Templateparametern von %qD"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "Destruktor %qD als Element-Template deklariert"
@@ -57981,64 +57974,64 @@ msgstr "der zerstörende %<operator delete%> muss eine übliche Deallozierungsfu
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> nimmt Typ %qT als ersten Parameter"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr "%qT hat ein Feld %q#D, dessen Typ keine Bindung hat"
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr "%qT hat ein Feld %qD, dessen Typ vom Typ %qT abhängt, der wiederum keine Bindung hat"
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%qT hat ein Feld %q#D, dessen Typ keine Bindung hat"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr "%qT hat ein Feld %q#D, dessen Typ den anonymen Namensbereich verwendet"
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qT mit bedeutenderer Sichtbarkeit als der Typ seines Feldes %qD deklariert"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr "%qT hat eine Basis %qT, die keine Bindung hat"
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr "%qT hat eine Basis %qT, die von Typ %qT abhängt, der wiederum keine Bindung hat"
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr "%qT hat eine Basis %qT, die interne Bindung hat"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr "%qT hat eine Basis %qT, die den anonymen Namensraum verwendet"
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT mit bedeutenderer Sichtbarkeit als seine Basis %qT deklariert"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%q#D (durch einen unbenannten Typen deklariert) wird verwendet, aber nirgends definiert"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr "%q#D (durch einen unbenannten Typen deklariert) wird verwendet, aber nirgends definiert"
@@ -58047,104 +58040,104 @@ msgstr "%q#D (durch einen unbenannten Typen deklariert) wird verwendet, aber nir
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "unbenannter Typ ohne Bindung wird verwendet, um Variable %q#D mit Bindung zu deklarieren"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "unbenannter Typ ohne Bindung wird verwendet, um Funktion %q#D mit Bindung zu deklarieren"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q#D verweist nicht auf den unqualifizierten Typen und wird daher nicht zum Binden verwendet"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q#D (durch lokalen Typen %qT deklariert) wird verwendet, aber nirgends definiert"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%q#D (durch lokalen Typen %qT deklariert) wird verwendet, aber nicht hier definiert"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr "Typ %qT ohne Bindung verwendet, um Variable %q#D mit Bindung zu deklarieren"
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "Typ %qT ohne Bindung für Funktionsdeklaration %q#D mit Bindung deklariert"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "Mangeln von %q#D als %qE steht mit einer vorherigen Mangelung in Konflikt"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr "vorherige Mangelung von %q#D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr "Eine spätere Option %<-fabi-version=%> (oder =0) verhindert diesen Fehler mit einer Änderung im Mangeln"
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr "das Programm sollte auch %qD definieren"
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr "inline-Funktion %qD verwendet, aber nirgendwo definiert"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "Standardargument fehlt für Parameter %P von %q#D"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr "... folgt auf Parameter %P, der ein Defaultargument hat"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr "implizit deklariertes %qD ist veraltet"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr "da %qT vom Benutzer bereitgestelltes %qD hat"
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "Lambda, das %<...%> verwendendet, wird in Funktionszeiger umgewandelt"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "gelöschte Funktion %qD wird verwendet"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "Verwendung der Funktion %qD mit nicht erfüllten Einschränkungen"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr "Verwendung von eingebautem Parameterpack %qD außerhalb eines Templates"
@@ -58249,7 +58242,7 @@ msgstr "Referenz auf %<%T::%D%> ist mehrdeutig"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qD ist kein Element von %qT; meinten Sie %qs?"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD ist kein Element von %qT"
@@ -58259,7 +58252,7 @@ msgstr "%qD ist kein Element von %qT"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qD ist kein Element von %qD; meinten Sie %qs?"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD ist kein Element von %qD"
@@ -58284,47 +58277,47 @@ msgstr "Ausnahmebehandlung ausgeschaltet, %<-fexceptions%> schaltet sie ein"
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "wirft NULL, was ganzzahlig, aber kein Zeigertyp ist"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  in geworfenem Ausdruck"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "%<catch%>-Parameter kann nicht als R-Wert-Referenztyp %qT deklariert werden"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "Ausdruck vom Typ %qT kann nicht geworfen werden, da Typen mit variabler Größe beteiligt sind"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "Exception vom Typ %qT kann nicht gefangen werden, da Typen mit variabler Größe beteiligt sind"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "Ausnahme des Typs %qT wird bereits von einem früheren Exceptionhandler verarbeitet"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, gcc-internal-format
 msgid "for type %qT"
 msgstr "für Typ %qT"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "%<...%>-Behandler muss der letzte Behandler für seinen »try«-Block sein"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr "noexcept-Ausdruck wird wegen Aufruf von %qD zu %<false%> ausgewertet"
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr "aber %qD wirft nicht; vielleicht sollte sie als %<noexcept%> deklariert werden"
@@ -58591,12 +58584,12 @@ msgstr "Typ %qT ist keine direkte oder virtuelle Basis von %qT"
 msgid "type %qT is not a direct base of %qT"
 msgstr "Typ %qT ist keine direkte Basis von %qT"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "Array muss mit Initialisierung mit umgebenden geschweiften Klammern initialisiert werden"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT ist kein Klassentyp"
@@ -58611,12 +58604,12 @@ msgstr "unvollständiger Typ %qT hat kein Element %qD"
 msgid "invalid pointer to bit-field %qD"
 msgstr "ungültiger Zeiger auf Bitfeld %qD"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "ungültige Verwendung der nicht-statischen Elementfunktion %qD"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "ungültige Verwendung des nicht-statischen Datenelementes %qD"
@@ -58811,52 +58804,52 @@ msgstr "Löschen des Objekts mit abstraktem Klassentyp %qT mit nicht-virtuellem
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr "Löschen des Objekts mit polymorphem Klassentyp %qT mit nicht-virtuellem Destruktor bewirkt möglicherweise undefiniertes Verhalten"
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "Typ für Vektor-»delete« ist weder Zeiger- noch Arraytyp"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr "Array mit Laufzeitgrenzen kann nicht durch Kopie eingefangen werden, sondern nur über eine Referenz"
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr "Einfangen des variabel geänderten Typs %qT, der kein N3639-Array mit Laufzeitgrenzen ist"
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr "da der Arrayelementtyp %qT variable Größe hat"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "%qE kann nicht per Referenz aufgefangen werden"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "Einfangen per Kopie von unvollständigem Typ %qT"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr "Versuch, %qD in Instanziierung eines generischen Lambdas einzufangen"
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr "implizites Einfangen von %qE via %<[=]%> ist in C++20 veraltet"
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr "fangen Sie %<this%> oder %<*this%> explizit ein"
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "%<this%> wurde für diese Lambda-Funktion nicht aufgefangen"
@@ -59230,225 +59223,270 @@ msgstr "unerwartete Angaben im ELF-Header"
 msgid "encapsulation is malformed"
 msgstr "Fehler im ELF-Header"
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, gcc-internal-format
 msgid "conflicting global module declaration %#qD"
 msgstr "widersprüchliche globale Moduldeklaration %#qD"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, gcc-internal-format
 msgid "existing declaration %#qD"
 msgstr "bestehende Deklaration %#qD"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr "Definition von %qD stimmt nicht überein"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, gcc-internal-format
 msgid "existing definition %qD"
 msgstr "bestehende Definition %qD"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, gcc-internal-format
 msgid "... this enumerator %qD"
 msgstr "... diesem Aufzählungswert %qD"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "der Aufzählungswert %qD passt nicht zu ..."
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr "zusätzliche Aufzählungswerte, die mit %qD beginnen"
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr "Aufzählungsbereich unterscheidet sich"
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr "%q#D verweist auf eine Einheit %q#D mit interner Verlinkung"
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr "rekursives verzögertes Laden"
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr "ein Modul kann nicht in seinen eigenen Bereich importiert werden"
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, gcc-internal-format
 msgid "module %qs declared here"
 msgstr "das Modul %qs ist hier deklariert"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr "der indirekte Import %qs ist noch nicht geladen"
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr "der Import %qs hat eine falsche CRC-Prüfsumme"
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr "weitere importierte Quellencodestellen können nicht dargestellt werden"
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr "%<#define %E%> wird nicht exportiert, da es ein Schlüsselwort ist"
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr "Makrodefinitionen von %qE sind kaputt"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr "inkonsistente importierte Makrodefinition %qE"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr "%<#undef %E%>"
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr "%<#define %s%>"
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr "die compilierte Moduldatei ist %qs"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104552
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, gcc-internal-format, gfc-internal-format
 msgid "compiled module is %sversion %s"
 msgstr "das kompilierte Modul ist %sVersion %s"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, gcc-internal-format, gfc-internal-format
 msgid "compiler is %sversion %s%s%s"
 msgstr "der Compiler ist %sVersion %s%s%s"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, gcc-internal-format
 msgid "module %qs found"
 msgstr "Modul %qs gefunden"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr "Headermodul erwartet, Modul %qs gefunden"
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr "Modul %qs erwartet, Headermodul gefunden"
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr "CRC-Fehler in Modul %qs"
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr "Ziel und Gastgeber sind %qs:%qs, erwartet werden jedoch %qs:%qs"
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr "Sprachdialekt ist %qs, erwartet wird jedoch %qs"
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr "Modul enthält OpenMP, verwenden Sie %<-fopenmp%>, um es einzuschalten"
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr "reparierte Bäume sind unverträglich"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, gcc-internal-format
 msgid "interface partition is not exported"
 msgstr "Schnittstellenpartition wird nicht exportiert"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr "Fehler beim Lesen des kompilierten Modul-Clusters %u: %s"
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr "Fehler beim Lesen des kompilierten Modus: %s"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr "erwägen Sie die Verwendung von %<-fno-module-lazy%>, die Erhöhung des Wertes von %<-param-lazy-modules=%u%> oder die Erhöhung der prozessspezifischen Dateideskriptorgrenze"
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr "Importe müssen gebaut werden, bevor sie importiert werden können"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104552#c26
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr "Zurück auf Los? (siehe https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104552#c26)"
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr "Deklaration %qD widerspricht der eingebauten Deklaration"
+
+#: cp/module.cc:19122
+#, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "Neudeklaration von %qD in Modul %qs widerspricht dem Import"
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr "Neudeklaration von %qD in globalem Modul widerspricht dem Import"
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr "der hier deklarierte Import wird an das Modul %qs angehängt"
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr "in globalem Modul deklarierter Import"
+
+#: cp/module.cc:19140
+#, gcc-internal-format
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "widersprüchliche Deklaration von %qD in Modul %qs"
+
+#: cp/module.cc:19143
+#, gcc-internal-format
+msgid "conflicting declaration of %qD in global module"
+msgstr "widersprüchliche Deklaration von %qD in globalem Modul"
+
+#: cp/module.cc:19148
+#, gcc-internal-format
+msgid "previously declared in module %qs"
+msgstr "vorher in Modul %qs deklariert"
+
+#: cp/module.cc:19152
+#, gcc-internal-format
+msgid "previously declared in global module"
+msgstr "vorher im globalen Modul deklariert"
+
+#: cp/module.cc:19404
 #, gcc-internal-format
 msgid "reading CMI %qs"
 msgstr "CMI %qs wird gelesen"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr "Fehler beim Laden der Bindung %<%E%s%E%>"
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr "Fehler beim Laden der Bindung %<%E%s%E@%s%>"
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr "beim Lesen der Bindung %<%E%s%E%>"
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr "beim Lesen der Bindung %<%E%s%E@%s%>"
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr "Fehler beim Laden der ausstehenden Einheiten für %<%E%s%E%>"
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr "beim Laden der ausstehenden Einheiten für %<%E%s%E%>"
@@ -59460,392 +59498,392 @@ msgstr "beim Laden der ausstehenden Einheiten für %<%E%s%E%>"
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr "Import eines benannten Moduls %qs innerhalb eines Sprachverlinkungsblocks"
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, gcc-internal-format
 msgid "module already declared"
 msgstr "das Modul wurde bereits deklariert"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, gcc-internal-format
 msgid "module already imported"
 msgstr "das Modul wurde bereits importiert"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, gcc-internal-format
 msgid "module %qs imported here"
 msgstr "das Modul %qs wurde hier importiert"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr "unbekannte Schnittstelle des compilierten Moduls (CMI): %s"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr "Fehler beim Bestimmen der %<#include%>-Übersetzung von %s: %s"
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr "%<include %s%> wurde übersetzt zu »import«"
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr "%<include %s%> wurde textuell verarbeitet"
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr "C++-Module sind nicht kompatibel mit vorkompilierten Headern"
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, gcc-internal-format
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "C++-Module sind nicht mit der traditionellen Vorverarbeitung kompatibel"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr "Debug-Ausgabe von Makros kann bei Modulen unvollständig sein"
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr "Modulabhängigkeiten erfordern Vorverarbeitung"
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr "Sie sollten die Option %<-%s%> verwenden"
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, gcc-internal-format
 msgid "invalid header name %qs"
 msgstr "ungültiger Headername %qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, gcc-internal-format
 msgid "invalid module name %qs"
 msgstr "ungültiger Modulname %qs"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr "%<-fmodule-only%> wird für Nicht-Schnittstelle verwendet"
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, gcc-internal-format
 msgid "writing CMI %qs"
 msgstr "CMI %qs wird geschrieben"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, gcc-internal-format
 msgid "not writing module %qs due to errors"
 msgstr "Modul %qs kann aufgrund von Fehlern nicht geschrieben werden"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr "Fehler beim Schreiben des kompilierten Moduls: %s"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr "unbekannte Header-Art %qs"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "namensunabhängige Deklarationen sind erst ab %<-std=c++2c%> oder %<-std=gnu++2c%> verfügbar"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "Neudeklaration von %q#D mit unterschiedlichen Templateparametern"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D steht mit vorheriger Deklaration in Konflikt"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D verdeckt Konstruktor für %q#D"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "in Konflikt stehende Deklaration %q#D mit Bindung für die Sprache \"C\""
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "durch andere Ausnahmespezifikationen"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, gcc-internal-format
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "Lambdaparameter %qD war vorher als Einfänger deklariert"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "Deklaration von %q#D überdeckt einen Parameter"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "Deklaration von %qD überdeckt ein Element von %qT"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "Friend-Deklaration %qD in lokaler Klasse ohne vorherige Deklaration"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %<%s(%E)%> %p %d"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, gcc-internal-format
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr "%q#D wird exportiert, hat jedoch keine externe Bindung"
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr "%q#D wird hier ohne Bindung deklariert"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr "%q#D wird hier mit interner Bindung deklariert"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr "%q#D wird hier mit Modulbindung deklariert"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, gcc-internal-format
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T%s%D%> benennt Destruktor"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "»using«-Deklaration für Nicht-Element im Gültigkeitsbereich der Klasse"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%<using%> mit Gültigkeitsbereich in enum-Typ %q#T ist erst ab %<-std=c++20%> oder %<-std=gnu++20%> verfügbar"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qT ist weder eine Klasse, noch ein Namensbereich oder eine Aufzählung"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "eine Using-Deklaration, die nicht-Member ist, benennt den Konstruktor von %qT"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr "%<using%>-Deklaration für Element außerhalb des Gültigkeitsbereichs der Klasse"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, gcc-internal-format
 msgid "%qT is not a direct base of %qT"
 msgstr "%qT ist keine direkte Basis von %qT"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr "meinten Sie %<using enum %T::%D%>?"
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "%qD wurde nicht innerhalb von %qD deklariert"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr "%<using%>-Deklaration darf den Namensraum %qD nicht benennen"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> benennt Konstruktor in %qT"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "Deklaration von %qD nicht in einem Namensbereich um %qD"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "explizite Qualifizierung in Deklaration von %qD"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD sollte innerhalb von %qD deklariert werden"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "%qD wurde nicht innerhalb von %qD deklariert"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr "sondern nur hier als %<friend%>"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "Attribut %qD erfordert ein einzelnes NTBS-Argument"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr "Attribut %qD ist bedeutungslos, da die Elemente des anonymen Namensraums lokale Symbole erhalten"
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr "Attribut %qD an unbenanntem Namensraum wird ignoriert"
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "Attribut %qD an nicht-»inline«-Namensraum wird ignoriert"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "Attribut-Anweisung %qD wird ignoriert"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr "obere Grenze von %d Namensräumen für %qE durchsucht"
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] "empfohlene Alternative:"
 msgstr[1] "empfohlene Alternativen:"
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr "  %qE"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr "%<std::%s%> ist im Header %qs definiert; um das zu beheben, könnten Sie %<#include %s%> hinzufügen"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79869
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "%<std::%s%> ist erst ab %s verfügbar"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr "das Makro %qs war noch nicht definiert"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, gcc-internal-format
 msgid "it was later defined here"
 msgstr "es wurde später hier definiert"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr "Deklaration von %<std::initializer_list%> entspricht nicht %<#include <initializer_list>%>, ist kein Template"
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, gcc-internal-format
 msgid "%<strong%> using directive no longer supported"
 msgstr "die Direktive %<strong%>-%<using%> wird nicht mehr unterstützt"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr "Sie können stattdessen einen inline-Namensraum verwenden"
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, gcc-internal-format
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%<omp::%E%> darf in diesem Kontext nicht angegeben werden"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr "es können maximal %d Namensräume geschachtelt werden"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "%<namespace %E%> ist mehrdeutig"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "Namensbereich-Alias %qD ist hier nicht erlaubt, %qD angenommen"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr "ein %<inline%>-Namensraum muss bei der ersten Definition angegeben werden"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, gcc-internal-format
 msgid "%qD defined here"
 msgstr "%qD hier definiert"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99298
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "%s-Namensraum %qD widerspricht der Erreichbarkeits-Definition"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr "Erreichbarkeitsdefinition %s ist hier"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX %<pop_everything%> wird betreten"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr "XXX %<pop_everything%> wird verlassen"
@@ -59870,7 +59908,7 @@ msgstr "Bezeichner %qE wird in C++20 zum Schlüsselwort"
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr "%<LEXER_DEBUGGING_ENABLED_P%> ist nicht auf true gesetzt"
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma omp declare %s%> muss direkt von einer Funktionsdeklaration oder -definition gefolgt sein"
@@ -60116,7 +60154,7 @@ msgstr "%<constinit%> aus C++20 ist erst ab %<-std=c++20%> oder %<-std=gnu++20%>
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<concept%> ist erst ab %<-std=c++20%> oder mit %<-fconcepts%> verfügbar"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<requires%> ist erst ab %<-std=c++20%> oder mit %<-fconcepts%> verfügbar"
@@ -60296,7 +60334,7 @@ msgstr "Anweisungs-Ausdrücke sind weder außerhalb von Funktionen noch in Templ
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "fold-expressions sind nur mit %<-std=c++17%> oder %<-std=gnu++17%> verfügbar"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "übergeordneter Ausdruck erwartet"
@@ -60351,7 +60389,7 @@ msgstr "%<~auto%> ist nur mit %<-std=c++14%> oder %<-std=gnu++14%> verfügbar"
 msgid "template-id not allowed for destructor in C++20"
 msgstr "template-id für Destruktor ist in C++20 nicht erlaubt"
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr "entfernen Sie %qs"
@@ -60371,7 +60409,7 @@ msgstr "typedef-Name %qD als Destruktor-Deklarator verwendet"
 msgid "expected unqualified-id"
 msgstr "unqualifizierte ID erwartet"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD ist kein Template"
@@ -60421,7 +60459,7 @@ msgstr "Typen dürfen nicht in einem %<typeid%>-Ausdruck definiert werden"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "falsche Anzahl von Argumenten für %<__builtin_addressof%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "falsche Anzahl von Argumenten für %<__builtin_launder%>"
@@ -60456,7 +60494,7 @@ msgstr "Typen dürfen nicht innerhalb von %<__builtin_classify_type%>-Aufrufen d
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr "in einem OpenMP-Arrayabschnitt können keine mehrdimensionalen Arrayindizes verwendet werden"
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "ungültige Verwendung von %qD"
@@ -60481,7 +60519,7 @@ msgstr "ISO-C++ erlaubt kein %<alignof%> mit einem Nicht-Typ"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "Typen dürfen nicht in %<noexcept%>-Ausdrücken definiert werden"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr "Typen dürfen nicht in einem %qs-Ausdruck definiert werden"
@@ -60631,8 +60669,8 @@ msgstr "nicht-leere Initialisierung »init-capture« eines Lambdas"
 msgid "capture of non-variable %qE"
 msgstr "Erfassung von Nicht-Variable %qE"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%q#D hier deklariert"
@@ -60672,7 +60710,7 @@ msgstr "Standardargument für Lambda-Parameter angegeben"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "Parameterdeklaration vor Lambdadeklarationsangaben ist erst ab %<-std=c++2b%> oder %<-std=gnu++2b%> optional"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr "ein Lambda mit Captures darf keinen expliziten Objektparameter eines nicht verwandten Typs haben"
@@ -60798,7 +60836,7 @@ msgstr "%<if consteval%> erfordert zusammengesetzte Anweisung"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "»init-statement in Auswahlanweisungen« ist nur mit %<-std=c++17%> oder %<-std=gnu++17%> verfügbar"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "Auswahl-Anweisung erwartet"
@@ -60860,7 +60898,7 @@ msgstr "bereichsbasierter %<for%>-Ausdruck mit Typ %qT hat unvollständigen Typ"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr "unvereinbare Anfang-/Ende-Typen in bereichsbasierter %<for%>-Anweisung: %qT und %qT"
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "Iterationsanweisung erwartet"
@@ -60886,7 +60924,7 @@ msgstr "%<goto%> innerhalb einer %<constexpr%>-Funktion ist erst mit %<-std=c++2
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO-C++ verbietet berechnete Gotos"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "Sprunganweisung erwartet"
@@ -61167,12 +61205,12 @@ msgstr "nur Konstruktoren nehmen Elementinitialisierungen"
 msgid "cannot expand initializer for member %qD"
 msgstr "Initialisierung für Element %qD kann nicht expandiert werden"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "Speicherinitialisierung für %qD folgt Konstruktordelegation"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr "Konstruktordelegation folgt Speicherinitialisierung für %qD"
@@ -61813,7 +61851,7 @@ msgstr "fehlende Templateargumente nach %qE"
 msgid "%qT not permitted in template argument"
 msgstr "%qT ist in einem Templateargument nicht erlaubt"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, gcc-internal-format
 msgid "invalid use of %qT"
@@ -61992,12 +62030,12 @@ msgstr "vorherige Definition von %q#T"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr "unexpandiertes Parameterpack in lokaler Klasse in Lambda"
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr "Klassenschlüssel erwartet"
@@ -62200,37 +62238,37 @@ msgstr "attribute-using-prefix ist nur mit %<-std=c++17%> oder %<-std=gnu++17%>
 msgid "expression must be enclosed in parentheses"
 msgstr "Ausdruck muss in runden Klammern eingeschlossen sein"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr "Fehlendes zusätzliches %<requries%>, um eine requires-expression zu beginnen"
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr "Prüfung, ob eine Konzept-ID ein gültiger Ausdruck ist; fügen Sie %<requires%> hinzu, um die Erfüllung zu prüfen"
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, gcc-internal-format
 msgid "result type is not a plain type-constraint"
 msgstr "Rückgabetyp ist keine einfache Typ-Einschränkung"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr "%<return-type-requirement%> ist keine Typ-Einschränkung"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr "spezialisierendes Element %<%T::%E%> erfordert Syntax %<template<>%>"
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "ungültige Deklaration von %<%T::%E%>"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "zu wenige Templateparameterlisten"
@@ -62239,438 +62277,438 @@ msgstr "zu wenige Templateparameterlisten"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "zu viele Templateparameterlisten"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr "template-id ist für Konstruktor in C++20 nicht erlaubt"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "benannte Rückgabewerte werden nicht mehr unterstützt"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90185
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr "ISO C++ unterstützt keine Operatortemplates in Zeichenkettenliteralen, die eine Argumentpackung von Zeichen bekommen"
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr "literales Operatortemplate %qD hat ungültige Parameterliste; nicht-Typ Templateargumentpack %<<char…>%> oder einzelner Nicht-Typ-Parameter von Klassentyp erwartet"
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr "literales Operatortemplate %qD hat ungültige Parameterliste; Template für Nicht-Typ Argumentpack %<<char…>%> erwartet"
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr "Template-Einführungen sind nicht Teil der C++20-Konzepte; verwenden Sie %qs, um sie zu aktivieren"
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr "kein passendes Konzept für template-introduction"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "ungültige Deklaration eines Elementtemplates in lokaler Klasse"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "Template mit C-Bindung"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "ungültige explizite Spezialisierung"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "Templatedeklaration von %<typedef%>"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr "eine Klassen-Templatedeklaration darf nichts anderes deklarieren"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "explizite Template-Spezialisierung kann keine Speicherklasse haben"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%<>>%> sollte innerhalb einer geschachtelten Templateargumentliste %<> >%> sein"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "falsches %<>>%>; %<>%> verwenden, um eine Templateargumentliste zu beenden"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "%qs sollte %qs sein, um eine Templateargumentliste zu beenden"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr "Argument von %<sizeof...%> muss mit Klammern umschlossen werden"
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "ungültige Verwendung von %qD in Spezifizierung der Bindung"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr "doppelter %qD-Spezifizierer"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr "%qD-Spezifizierer ist unverträglich mit %qs"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> vor %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%qD-Spezifizierer ist unverträglich mit %<typedef%>"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO-C++ 1998 unterstützt nicht %<long long%>"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "sowohl %<__thread%> als auch %<thread_local%> angegeben"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "doppeltes %qD"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "doppeltes %qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "%<new%> erwartet"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "%<delete%> erwartet"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "%<return%> erwartet"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "%<extern%> erwartet"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "%<static_assert%> erwartet"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "%<decltype%> erwartet"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "%<operator%> erwartet"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "%<class%> erwartet"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "%<template%> erwartet"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "%<namespace%> erwartet"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "%<using%> erwartet"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "%<asm%> erwartet"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "%<try%> erwartet"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "%<catch%> erwartet"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "%<throw%> erwartet"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr "%<auto%> erwartet"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "%<__label__%> erwartet"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "%<@try%> erwartet"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "%<@synchronized%> erwartet"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "%<@throw%> erwartet"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "%<__transaction_atomic%> erwartet"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "%<__transaction_relaxed%> erwartet"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr "%<co_yield%> erwartet"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "%<::%> erwartet"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "%<...%> erwartet"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "%<*%> erwartet"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "%<~%> erwartet"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "%<:%> oder %<::%> erwartet"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "%<class%>, %<typename%> oder %<template%> erwartet"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr "redundanter Aufzählungsschlüssel %<enum%s%> in Bezug auf %q#T"
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "Markierung %qs bei Benennung von %q#T verwendet"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "%q#T wurde vorher hier deklariert"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, gcc-internal-format
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "redundanter Klassenschlüssel %qs in Verweis auf %q#T"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qT mit nicht zusammenpassendem Klassenschlüssel %qs deklariert"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr "entfernen Sie den Klassenschlüssel oder ersetzen Sie ihn durch %qs"
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "Klassenschlüssel durch %qs ersetzen"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr "%qT wurde hier als %qs definiert"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr "%qT wurde erstmals hier als %qs deklariert"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD mit anderem Zugriff redeklariert"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "in C++98 ist %<template%> (zum eindeutig machen) nur innerhalb von Templates erlaubt"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "Datei endet in Standardargument"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "unpassendes Objective-C++-Konstrukt %<@%D%>"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr "Objective-C++-Nachrichtenempfänger erwartet"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr "Objective-C++ Nachrichtenargument(e) erwartet"
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "%<@encode%> muss als Argument einen Typen angeben"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "Ungültiger Objective-C++-Selektorname"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr "Objective-C++ Methodendeklaration erwartet"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "Methodenattribute müssen am Ende angegeben werden"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr "überflüssiges %qs zwischen Objective-C++ Methoden"
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "ungültiger Typ für Instanzvariable"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "Bezeichner nach %<@protocol%> erwartet"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr "Attribute dürfen nicht vor dem Objective-C++-Schlüsselwort %<@%D%> angegeben werden"
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "Präfix-Attribute vor %<@%D%> werden ignoriert"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, gcc-internal-format
 msgid "invalid type for property"
 msgstr "ungültiger Typ für Eigenschaft"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr "unbekanntes Eigenschaftsattribut %qE"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, gcc-internal-format
 msgid "expected integer expression list"
 msgstr "Liste von Ganzzahlausdrücken erwartet"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "%<wait%>-Ausdruck muss ganzzahlig sein"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "%<scalar%>, %<aggregate%> oder %<all%> erwartet"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "ungültiger reduction-identifier"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr "Typen dürfen nicht in Iteratortyp definiert werden"
@@ -62679,12 +62717,12 @@ msgstr "Typen dürfen nicht in Iteratortyp definiert werden"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, gcc-internal-format
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "%<#pragma omp allocate%> wird nicht mehr unterstützt"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr "geklammerte Initialisierung ist in OpenMP-%<for%>-Schleife nicht erlaubt"
@@ -62694,133 +62732,133 @@ msgstr "geklammerte Initialisierung ist in OpenMP-%<for%>-Schleife nicht erlaubt
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr "%<ordered%>-Klausel mit Parameter in %<for%>-Schleife über einen Bereich"
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "Schleifenvariable %qD sollte keine Reduktion sein"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp declare %s%> gefolgt von %<#pragma omp declare %s%>"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr "eine andere OpenMP-Direktive als %<declare simd%> oder %<declare variant%> gehört zu einer Deklaration"
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "ungültige Initialisierungsklausel"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "»id-expression (arguments)« erwartet"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr "eins der Aufrufargumente für die Initialisierung sollte %<omp_priv%> oder %<&omp_priv%> sein"
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr "neue Typen dürfen nicht in einem Rückgabetyp definiert werden"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr "vordeklarierter arithmetischer Typ %qT in %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr "Funktions- oder Arraytyp %qT in %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr "Referenztyp %qT in %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr "%<const%>-, %<volatile%>- oder %<__restrict%>-qualifizierter Typ %qT in %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr "%<#pragma acc routine%> benennt eine Menge von Überladungen"
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD bezeichnet keine Funktion innerhalb eines Namensraum"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr "%<atomic_cancel%>"
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr "%<__transaction_relaxed%> ohne eingeschaltete Unterstützung für transaktionsgebundenen Speicher"
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr "%<__transaction_atomic%> ohne eingeschaltete Unterstützung für transaktionsgebundenen Speicher"
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr "äußeres %<__transaction_cancel%> nicht innerhalb des äußeren %<__transaction_atomic%>"
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr "  oder einer %<transaction_may_cancel_outer%>-Funktion"
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "falsch geformtes %<#pragma GCC pch_preprocess%>"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp requires%> darf nur im Gültigkeitsbereich einer Datei oder eines Namensraums verwendet werden"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp assumes%> darf nur im Gültigkeitsbereich einer Datei oder eines Namensraums verwendet werden"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "%<#pragma GCC %s%> muss innerhalb einer Funktion sein"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr "Compilieren von mehreren Quellen ist für C++ nicht implementiert"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr "Platzhaltertyp ist in diesem Kontext nicht erlaubt"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr "Implizite Templates dürfen nicht %<virtual%> sein"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr "%<extern \"C\"%>-Bindung beginnt hier"
@@ -62850,7 +62888,7 @@ msgstr "einschließende Klassentemplates werden nicht explizit spezialisiert"
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "Spezialisierung von %qD muss im Gültigkeitsbereich des Namensbereiches auftreten"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "Spezialisierung von %qD in anderem Namensbereich"
@@ -62865,170 +62903,170 @@ msgstr "  aus Definition von %q#D"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "explizite Instanziierung von %qD in Namensbereich %qD (das nicht Namensbereich %qD einschließt)"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "Name der Klasse verdeckt Template-Templateparameter %qD"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "Spezialisierung des Alias-Template %qD"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "explizite Spezialisierung des Nicht-Templates %qT"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "Spezialisierung von %qT hinter Instanziierung"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, gcc-internal-format
 msgid "from definition of %q#D"
 msgstr "aus der Definition von %q#D"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "Spezialisierung %qT hinter Instanziierung %qT"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "Templatespezialisierung von %qD durch ISO C++ nicht erlaubt"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "Spezialisierung von %qD nach Instanziierung"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, gcc-internal-format
 msgid "%s %#qD"
 msgstr "%s %#qD"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD ist kein Funktionstemplate"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "%qD ist kein variadisches Template"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "Template-ID %qD für %q+D passt zu keiner Templatedeklaration"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr "%d %<template<>%> gefunden, %d werden für Spezialisierung eines Elementfunktionstemplates benötigt"
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "mehrdeutige Templatespezialisierung %qD für %q+D"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "variable Templates sind nur mit %<-std=c++14%> oder %<-std=gnu++14%> verfügbar"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr "zu viele Templateheader für %qD (sollten %d sein)"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr "Elemente einer explizit spezialisierten Klasse sind ohne Templateheader definiert"
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "explizite Spezialisierung von %qD außerhalb seines Namensraums muss einen nested-name-specifier verwenden"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "explizite Instanziierung von %qD außerhalb seines Namensraums muss einen nested-name-specifier verwenden"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "der expliziten Spezialisierung %q#D fehlen möglicherweise Attribute"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "fehlende primäre Templateattribute %s"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "fehlendes primäres Templateattribut %s"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, gcc-internal-format
 msgid "template-id %qE in declaration of primary template"
 msgstr "Template-ID %qE in Deklaration des ersten Templates"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "Templateparameterliste in expliziter Instanziierung verwendet"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "Definition für explizite Instanziierung angegeben"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "zu viele Templateparameterlisten in Deklaration von %qD"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "zu wenige Templateparameterlisten in Deklaration von %qD"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "der expliziten Spezialisierung von %D muss %<template <>%> vorausgehen"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr "explizite Spezialisierung als %<concept%> deklariert"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "Nichttyp-Teilspezialisierung %qE ist nicht erlaubt"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "Teilspezialisierung %qE ist nur für Klassen und Variablen erlaubt"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "Standardargument in expliziter Spezialisierung angegeben"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD ist keine Templatefunktion"
@@ -63041,154 +63079,154 @@ msgstr "%qD ist keine Templatefunktion"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "Spezialisierung der implizit deklarierten speziellen Elementfunktion"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "keine Elementfunktion %qD in %qT deklariert"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "»friend«-Deklaration %qD ist für explizite Spezialisierung nicht sichtbar"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, gcc-internal-format
 msgid "friend declaration here"
 msgstr "%<friend%>-Deklaration hier"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr "explizite Spezialisierung des Funktionskonzepts %qD"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, gcc-internal-format
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "Argument von %<__integer_pack%> muss zwischen 0 und %d liegen"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr "Expansion der Basisinitialisierung %qT enthält keine Parameterpacks"
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "Expansionsmuster %qT enthält keine Parameterpacks"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "Expansionsmuster %qE enthält keine Parameterpacks"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr "Parameterbündel nicht mit %<...%> aufgelöst:"
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr "         %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "Deklaration des Templateparameters %q+D überdeckt einen Templateparameter"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "Deklaration von %q+#D überdeckt einen Templateparameter"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr "Templateparameter %qD hier deklariert"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "Spezialisierung des Variablenkonzepts %q#D"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "Templateparameter nicht in partieller Spezialisierung herleitbar:"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "Teilspezialisierung %q+D spezialisiert keine Templateargumente; um das primäre Template zu definieren, entfernen Sie die Templateargumentliste"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr "Teilspezialisierung %q+D spezialisiert keine Templateargumente und ist nicht eingeschränkter als das primäre Template; um das primäre Template zu definieren, entfernen Sie die Templateargumentliste"
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr "ursprüngliches Template hier"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr "partielle Spezialisierung ist nicht näher spezialisiert als das ursprüngliche Template, da es mehrere Parameter mit einer »pack«-Erweiterung ersetzt"
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, gcc-internal-format
 msgid "too many arguments for partial specialization %qT"
 msgstr "zu viele Argumente für teilweise Spezialisierung %qT"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr "Teilspezialisierung %qD ist nicht spezialisierter als"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, gcc-internal-format
 msgid "primary template %qD"
 msgstr "primäres Template %qD"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr "Argument %qE für Parameterpack muss am Ende der Templateargumentliste sein"
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr "Argument %qT für Parameterpack muss am Ende der Templateargumentliste sein"
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "Typ %qT des Templatearguments %qE hängt von Templateparameter ab"
 msgstr[1] "Typ %qT des Templatearguments %qE hängt von Templateparametern ab"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "Deklaration von %qD macht vorherige Template-Instanziierung für %qD mehrdeutig"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "teilweise Spezialisierung von %qD nach Instanziierung von %qD"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "kein Standard-Argument für %qD"
@@ -63197,47 +63235,47 @@ msgstr "kein Standard-Argument für %qD"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "Parameterpack %q+D muss am Ende der Templateparameterliste sein"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "Standardtemplateargumente dürfen in friend-Redeklaration eines Funktionstemplates nicht verwendet werden"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "Standardtemplateargumente dürfen in friend-Deklaration nicht verwendet werden"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "Standardtemplateargumente dürfen in Funktionstemplates nur mit %<-std=c++11%> und %<-std=gnu++11%> verwendet werden"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr "Standardtemplateargumente dürfen in teilweiser Spezialisierung nicht verwendet werden"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "Standardargument für Template-Parameter für %qD umschließende Klasse"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, gcc-internal-format
 msgid "template %qD declared"
 msgstr "Template %qD deklariert"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "Templateklasse ohne Namen"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr "Element-Template %qD darf keine virt-Spezifizierer haben"
@@ -63247,506 +63285,506 @@ msgstr "Element-Template %qD darf keine virt-Spezifizierer haben"
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "ungültige Templatedeklaration von %qD"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "Template-Definition eines Nicht-Templates %q#D"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "%d Ebenen von Template-Parametern für %q#D erwartet, %d erhalten"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "%d Template-Parameter für %q#D erhalten"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "%d Template-Parameter für %q#T erhalten"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  aber %d benötigt"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "Template-Argumente für %qD passen nicht zum ursprünglichen Template %qD"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "verwenden Sie %<template<>%> für eine explizite Spezialisierung"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "Redeklaration von %qD mit unterschiedlichen Einschränkungen"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT ist kein Template-Typ"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "keine Templatespezifizierer in Deklaration von %qD angegeben"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] "mit %d Template-Parameter redeklariert"
 msgstr[1] "mit %d Template-Parametern redeklariert"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "vorherige Deklaration %qD verwendete %d Template-Parameter"
 msgstr[1] "vorherige Deklaration %qD verwendete %d Template-Parameter"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "Template-Parameter %q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "hier als %q#D redeklariert"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, gcc-internal-format
 msgid "redeclared here"
 msgstr "hier erneut deklariert"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "Deklaration von Templateparameter %q+#D mit unterschiedlichen Einschränkungen"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "ursprüngliche Deklaration trat hier auf"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "Redeklaration von %q#D mit unterschiedlichen Einschränkungen"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qE ist kein gültiges Templateargument für Typ %qT"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "es muss die Adresse einer Funktion mit externer Bindung sein"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr "es muss der Name einer Funktion mit externer Bindung sein"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE ist kein gültiges Templateargument für Typ %qT, weil %qD keine Bindung hat"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qE ist kein gültiges Templateargument für Typ %qT, weil %qD keine externe Bindung hat"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "es muss ein Zeiger auf ein Element der Form %<&X::Y%> sein"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr "da es ein Element von %qT ist"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "  Template-Parameter %qD konnte nicht hergeleitet werden"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr " Typen %qT und %qT haben unverträgliche CV-Qualifizierer"
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr " unpassende Typen %qT und %qT"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr " Templateparameter %qD ist kein Parameterpack wie Argument %qD"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr " Templateargumente %qE passt nicht zum konstanten Zeiger auf Element %qE"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr " %qE entspricht nicht %qE"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr " unpassende Herleitung von Parameterpack mit %qT und %qT"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr " hergeleitete Typen für Parameter %qT stehen in Konflikt (%qT und %qT)"
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr " hergeleitete Werte für Nicht-Typ-Parameter %qE stehen in Konflikt (%qE und %qE)"
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr " Arraytyp %qT mit veränderlicher Größe ist kein gültiges Templateargument"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr " Typ %qT von Elementfunktion ist kein gültiges Templateargument"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr " %qE (Typ %qT) kann nicht in den Typ %qT umgewandelt werden"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr " %qT ist mehrdeutige Basisklasse von %qT"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr " %qT ist nicht vom Typ %qT abgeleitet"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr " Templateparameter eines Template-Templatearguments sind mit anderen hergeleiteten Templateargumenten unverträglich"
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "  für %qT kann kein Template aus Nicht-Templatetyp %qT hergeleitet werden"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr " Template-Argument %qE passt nicht zu %qE"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE ist kein gültiges Templateargument vom Typ %qT, weil %qE weder eine Variable noch eine Funktion ist"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE ist in C++98 kein gültiges Templateargument des Typs %qT, weil %qD keine externe Bindung hat"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE ist kein gültiges Templateargument für Typ %qT, weil %qD keine Bindung hat"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr "die Adresse von %qD ist kein gültiges Templateargument"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "die Adresse des %qT-Teilobjekts von %qD ist kein gültiges Templateargument"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "die Adresse von %qD ist kein gültiges Templateargument, weil sie keine statische Lebensdauer hat"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qD ist kein gültiges Templateargument, weil %qD eine Variable und nicht die Adresse einer Variable ist"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qE ist kein gültiges Templateargument für %qT, da es keine Adresse einer Variable ist"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE ist kein gültiges Templateargument für Typ %qT, da Zeichenkettensymbole in diesem Zusammenhang nicht verwendet werden können"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "in Templateargument für Typ %qT"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "Templateargument %qE für Typ %qT ist keine Übersetzungszeit-Konstante"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE ist kein gültiges Templateargument für Typ %qT, da es in CV-Qualifikation in Konflikt steht"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE ist kein gültiges Templateargument für Typ %qT, weil es kein L-Wert ist"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%q#D ist kein gültiges Templateargument für Typ %qT, weil eine Referenzvariable keine konstante Adresse hat"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE ist kein gültiges Templateargument für Typ %qT, weil es ein Zeiger ist"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "stattdessen %qE verwenden"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE ist kein gültiges Templateargument für Typ %qT, weil es vom Typ %qT ist"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "Attribute an Templateargument %qT werden ignoriert"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "Attribute an Templateargument %qE werden ignoriert"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "eingegebener Klassenname %qD als Template-Templateargument verwendet"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "ungültige Verwendung des Destruktors %qE als Typ"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "um auf ein Typelement eines Templateparameters zu verweisen, %<typename %E%> verwenden"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "Typ/Wert des Arguments %d passt nicht in Template-Parameterliste für %qD"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  Konstante des Typs %qT erwartet, %qT erhalten"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "  mehrdeutiges Templateargument für Nichttyp-Templateparameter wird wie ein Funktionstyp behandelt"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  Klassentemplate erwartet, %qE erhalten"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  einen Typ erwartet, %qE erhalten"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  einen Typ erwartet, %qT erhalten"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  Klassentemplate erwartet, %qT erhalten"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  ein Template des Typs %qD erwartet, %qT erhalten"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "unpassende Beschränkungen für Argument %d in Template-Parameterliste für %qD"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr "  %qD erwartet, %qD erhalten"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "Templateargument %qE konnte nicht von %qT in %qT umgewandelt werden"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "Templateargument %d ist ungültig"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "falsche Anzahl der Templateargumente (%d, sollte %d sein)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "falsche Anzahl der Templateargumente (%d, sollte mindestens %d sein)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, gcc-internal-format
 msgid "provided for %qD"
 msgstr "für %qD bereitgestellt"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr "gepacktes Expansionsargument für Parameter %qD ohne »pack« von Alias-Template %qD"
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "gepacktes Expansionsargument für Parameter %qD ohne »pack« von Konzept %qD"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr "jegliche Instanziierung mit nichtleerer Parameterpackung wäre unzulässig"
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%q#D ist kein Funktionstemplate"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "Nicht-Template-Typ %qT als Template verwendet"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "Für Template-Deklaration %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, gcc-internal-format
 msgid "template constraint failure for %qD"
 msgstr "Template-Einschränkung für %qD fehlgeschlagen"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "Verwendung des ungültigen Variablentemplates %qE"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "Instanziierungstiefe für Templates überschreitet Höchstwert %d (%<-ftemplate-depth=%> verwenden, um dies zu erhöhen)"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr "das Score-Argument muss ein konstanter ganzzahliger Ausdruck sein"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr "das Score-Argument darf nicht negativ sein"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr "Eigenschaft muss ein konstanter ganzzahliger Ausdruck oder ein Zeichenkettenliteral sein"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "flexibles Arrayelement %qD in Union"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr "Falten einer leeren Expansion über %O"
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, gcc-internal-format
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE ist nicht das vollständige Muster einer Packexpansion"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr "Argumentpacklängen passen nicht bei Expansion von %qT"
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr "Argumentpacklängen passen nicht bei Expansion von %qE"
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "  bei Instanziierung des Standardarguments für Aufruf von %qD"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "Erzeugung eines Zeigers auf Elementfunktion des Nicht-Klassentyps %qT"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr "Argumentpacklängen %d und %d sind unverträglich"
@@ -63764,301 +63802,301 @@ msgstr "Argumentpacklängen %d und %d sind unverträglich"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "Variable %qD hat Funktionstyp"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "ungültiger Parametertyp %qT"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "in Deklaration %q+D"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "Funktion gibt ein Array zurück"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "Funktion gibt eine Funktion"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "Referenz auf »void« wird gebildet"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "Zeiger auf Referenztyp %qT wird geformt"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "Referenz auf Referenztyp %qT wird geformt"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "Zeiger auf qualifizierten Funktionstypen %qT wird geformt"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "Referenz auf qualifizierten Funktionstypen %qT wird geformt"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "Zeiger auf Element des Nicht-Klassentypen %qT wird erzeugt"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "Zeiger auf Elementreferenztyp %qT wird erzeugt"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "Zeiger auf Element mit Typ »void« wird erzeugt"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "Array von %qT wird erzeugt"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr "%qD wird für ein leeres Pack instanziiert"
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT ist kein Klassen-, Struktur- oder Union-Typ"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT wird in %qT aufgelöst, was kein Aufzählungstyp ist"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT wird in %qT aufgelöst, aber das ist kein Klassentyp"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "Verwendung von %qs in Template"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "qualifizierender Typ %qT passt nicht zum Destruktornamen ~%qT"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "Abhängigenname %qE wird als Nicht-Typ erkannt, aber die Instanziierung liefert einen Typ"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "%<typename %E%> sagen, wenn ein Typ gemeint ist"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "Initialisierer für %q#D expandiert zu einer leeren Ausdrucksliste"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "falsche Verwendung eines Packauflösungs-Ausdruckes"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr "%<...%> verwenden, um Argumentpack aufzulösen"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr "leere Initialisierung in »init-capture« für Lambda"
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr "%qD wurde in diesem Gültigkeitsbereich nicht deklariert, und bei argumentabhängiger Suche am Ort der Instanziierung wurden keine Deklarationen gefunden"
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr "Deklarationen in abhängiger Basis %qT wurden bei unqualifizierter Suche nicht gefunden"
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr "stattdessen %<this->%D%> verwenden"
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "stattdessen %<%T::%D%> verwenden"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%qD hier deklariert, später in der Übersetzungseinheit"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "falsche Anzahl von Argumenten für %<__builtin_convertvector%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, gcc-internal-format
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "Falsche Anzahl an Argumenten für das Attribut %<assume%> angegeben"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT ist keine Klasse oder Namensbereich"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD ist keine Klasse oder Namensbereich"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "ungültiges Feld %qD wird verwendet"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "%qT ist/verwendet anonymen Typen"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "Templateargument für %qD verwendet lokalen Typ %qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT ist ein variabel modifizierter Typ"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "Ganzzahlausdruck %qE ist nicht konstant"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  Versuch, %qD zu instanziieren"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "mehrdeutige Template-Instanziierung für %q#T"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "mehrdeutige Template-Instanziierung für %q#D"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 msgid "%s %#qS"
 msgstr "%s %#qS"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "explizite Instanziierung des Nicht-Templates %q#D"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "Explizite Instanziierung des Variablenkonzepts %q#D"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, gcc-internal-format
 msgid "explicit instantiation of function concept %q#D"
 msgstr "Explizite Instanziierung des Funktionskonzepts %q#D"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qD ist kein statisches Datenelement eines Klassentemplates"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "kein passendes Template für %qD gefunden"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "Typ %qT für explizite Instanziierung %qD passt nicht zum deklarierten Typ %qT"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "explizite Instanziierung von %q#D"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "doppelte explizite Instanziierung von %q#D"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO-C++ 1998 verbietet die Verwendung von %<extern%> bei expliziten Instanziierungen"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "Speicherklasse %qD auf Templateinstanziierung angewendet"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "explizite Instanziierung des Nicht-Klassen-Templates %qD"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "explizite Instanziierung des Nicht-Templatetyps %qT"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "explizite Instanziierung von %q#T vor Definition des Templates"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO-C++ verbietet die Verwendung von %qE bei expliziten Instanziierungen"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "doppelte explizite Instanziierung von %q#T"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr "Ausnahmen-Angabe von %qD hängt von sich selbst ab"
@@ -64070,163 +64108,163 @@ msgstr "Ausnahmen-Angabe von %qD hängt von sich selbst ab"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "explizite Instanziierung von %qD, aber keine Definition verfügbar"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "Instanziierungstiefe für Templates überschreitet Höchstwert %d beim Instanziieren von %q+D, möglicherweise wegen Generierung der virtuellen Tabelle (%<-ftemplate-depth=%> verwenden, um den Höchstwert zu erhöhen)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "Nichttypen-Templateparameter von hergeleitetem Klassentyp sind erst ab %<-std=c++20%> oder %<-std=gnu++20%> verfügbar"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%qT ist kein gültiger Typ für einen Nichttyp-Templateparameter, da er nicht strukturell ist"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "Nichttypen-Templateparameter von Klassentyp sind nur mit %<-std=c++20%> oder %<-std=gnu++20%> verfügbar"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "ungültiger Nicht-Typ-Parameter für Template"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T ist kein gültiger Typ für einen Nicht-Typ-Parameter eines Templates"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "Schlüsselwort %<template%> nicht innerhalb der declarator-id erlaubt"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, gcc-internal-format
 msgid "a concept cannot be constrained"
 msgstr "ein Konzept kann nicht eingeschränkt werden"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr "das Konzept %qE ist nicht im Gültigkeitsbereich des Namensraums"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr "das Konzept %qE hat mehrere Vorlagenparameterlisten"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr "Ermittlung aus geschweift geklammerter Initialisierungsliste erfordert %<#include <initializer_list>%>"
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr "nicht herleitbares Templates %qT wird ohne Template-Argumente verwendet"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "Alias-Template-Herleitung ist erst ab %<-std=c++20%> oder %<-std=gnu++20%> verfügbar"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, gcc-internal-format
 msgid "use %qD directly instead"
 msgstr "verwenden Sie stattdessen %qD"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr "Templateargumente für die Kopierinitialisierung von %qT können nicht abgeleitet werden, da es keine expliziten Ableitungshinweise oder benutzerdeklarierten Konstruktoren gibt"
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "Templateargumente für %qT können nicht abgeleitet werden, da es keine Ableitungshinweise gibt"
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "Argumentherleitung für Klassentemplate gescheitert:"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, gcc-internal-format
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "Explizite Herleitungshinweise werden nicht für »copy-initialization« berücksichtigt"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr "Argumentherleitung für Klassentemplate von %qT fehlgeschlagen: expliziter Herleitungshinweis in copy-list-initialization ausgewählt"
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "der explizite Herleitungshinweis ist hier deklariert"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "%qT beabsichtigt möglicherweise nicht, Argumentherleitung für Klassentemplates zu unterstützen"
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr "fügen Sie einen Herleitungshinweis hinzu, um diese Warnung zu unterdrücken"
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr "direct-list-initialization von %<auto%> erfordert genau ein Element"
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr "um %<std::initializer_list%> herzuleiten, verwenden Sie einen copy-list-initialization (also mit %<=%> vor dem %<{%>)"
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "Lambda-Rückgabewert von %qE kann nicht hergeleitet werden"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "%qT kann nicht aus %qE hergeleitet werden"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr "Platzhalter-Beschränkungen nicht erfüllt"
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "hergeleiteter Initialisierer erfüllt die Platzhalter-Beschränkungen nicht"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "hergeleiteter Rückgabetyp erfüllt die Platzhalter-Beschränkungen nicht"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "hergeleiteter Ausdruckstyp erfüllt die Platzhalterbeschränkungen nicht"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "ungültige Verwendung von %qT in Templateargument"
@@ -64432,630 +64470,630 @@ msgstr "Typ des %<asm%>-Operanden %qE konnte nicht ermittelt werden"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "%<__label__%>-Deklarationen sind nur im Funktionsgültigkeitsbereich erlaubt"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "ungültige Verwendung des Elementes %qD in statischer Elementfunktion"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "ungültige Verwendung des Elementes %qD in %<pre%>-Vertrag eines Konstruktors"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "ungültige Verwendung des Elementes %qD in %<post%>-Vertrag eines Destruktors"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr "fehlende Templateargumente für %qE"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr "ein Anweisungsausdruck reicht nicht als Kontext für Überladungs-Auflösung nicht aus"
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, gcc-internal-format
 msgid "cannot call a concept as a function"
 msgstr "ein Konzept kann nicht wie eine Funktion aufgerufen werden"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "Argumente für Destruktor sind nicht erlaubt"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, gcc-internal-format
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "%<this%> ist für explizite Objektmemberfunktionen nicht verfügbar"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr "verwenden Sie stattdessen den expliziten Objektparameter %qs"
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr "geben Sie dem expliziten Objektparameter einen Namen"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "%<this%> ist für statische Elementfunktionen nicht verfügbar"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, gcc-internal-format
 msgid "invalid use of %<this%> before it is valid"
 msgstr "ungültige Verwendung von %<this%>, bevor es gültig ist"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, gcc-internal-format
 msgid "invalid use of %<this%> after it is valid"
 msgstr "ungültige Verwendung von %<this%>, nachdem es gültig war"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "ungültige Verwendung von %<this%> in Nicht-Element-Funktion"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "ungültige Verwendung von %<this%> auf höchster Ebene"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "ungültiger angegebener Gültigkeitsbereich in Pseudodestruktor-Name"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "qualifizierter Typ %qT passt nicht zum Destruktornamen ~%qT"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE ist nicht vom Typ %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "zusammengesetztes Literal vom Nicht-Objekt-Typ %qT"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "%<auto{x}%> kann nicht eingeschränkt werden"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<auto{x}%> ist erst mit %<-std=c++2b%> oder %<-std=gnu++2b%> verfügbar"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "Templatetypparameter müssen das Schlüsselwort %<class%> oder %<typename%> verwenden"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "ungültige Verwendung des Typs %qT als Standardwert für einen Template-Templateparameter"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "ungültiges Standardargument für einen Template-Templateparameter"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "Definition von %q#T in Templateparameterliste"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "ungültige Definition des qualifizierten Typen %qT"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "ungültige Spezifizierung der Basisklasse"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr "Element %qD von unbenannter Union kann nicht eingefangen werden"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "%qD ist nicht eingefangen"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr "das Lambda hat keinen »capture-default«"
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr "Lambda in lokaler Klasse %q+T kann Variablen aus dem umschließenden Kontext nicht einfangen"
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr "Verwendung lokaler Variable mit automatischer Speicherklasse aus enthaltender Funktion"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "Verwendung eines Parameters aus enthaltender Funktion"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr "Verwendung eines Parameters außerhalb des Funktionskörpers"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, gcc-internal-format
 msgid "missing template arguments"
 msgstr "fehlende Templateargumente"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "Templateparameter %qD vom Typ %qT ist in ganzzahligem Konstantenausdruck nicht erlaubt, da er nicht Ganzzahl- oder Aufzählungstyp hat"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "Verwendung des Klassentemplates %qT als Ausdruck"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "Abfrage des Elementes %qD ist im Gitter der Mehrfachvererbung mehrdeutig"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD kann nicht in Konstanten-Ausdruck auftreten"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "Typ von %qE ist unbekannt"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qT ist kein Aufzählungstyp"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "%<__type_pack_element%>-Index ist keine Ganzzahlkonstante"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr "%<__type_pack_element%>-Index ist negativ"
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "%<__type_pack_element%>-Index liegt außerhalb des Bereichs"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "Parameterpack %<__bases%> ist nur in Templatedeklaration gültig"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "%<offsetof%> kann nicht auf Destruktor %<~%T%> angewandt werden"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "%<offsetof%> kann nicht auf Elementfunktion %qD angewandt werden"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "%<offsetof%> kann nicht auf Elementfunktion angewandt werden"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "%<offsetof%> kann nicht auf Aufzähler %qD angewandt werden"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr "%<offsetof%> innerhalb von Typ %qT (der kein Standardlayout hat) ist bedingt unterstützt"
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "Pointer-to-Member-Mapping %qE wird nicht unterstützt"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "benutzerdefinierte Reduktionsauflösung ist mehrdeutig"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr "%qE in %<reduction%>-Klausel ist ein Array der Länge 0"
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE hat konstanten Typ für %<reduction%>"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr "benutzerdefinierte Reduktion mit Konstruktorinitialisierung für Basisklasse %qT"
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr "Modifizierer außer %<val%> ist in %<linear%>-Klausel an %<simd%>- oder %<for%>-Konstrukten angegeben, zusammen mit OpenMP-5.2-Modifizierern"
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr "»linear«-Klausel mit Modifizierer %qs wird auf Nicht-Referenz-Variable mit Typ %qT angewandt"
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr "»linear«-Klausel wird auf Variable vom Typ %qT angewandt, die weder ganzzahlig noch Zeiger ist"
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr "Ausdruck für »linear«-Schrittweite muss ganzzahlig sein"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr "%<this%> ist in OpenMP nur innerhalb von %<declare simd%>-Klauseln erlaubt"
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD ist in Klausel %qs keine Variable"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "%qD ist in Klausel %<firstprivate%> keine Variable"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qD ist in Klausel %<lastprivate%> keine Variable"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr "statischer %<gang%>-Ausdruck muss ganzzahlig sein"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr "statischer %<gang%>-Ausdruck muss positiv sein"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr "Ausdruck für %<gang%>-Nummer muss ganzzahlig sein"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr "Ausdruck für %<vector%>-Länge muss ganzzahlig sein"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr "Ausdruck für %<worker%>-Nummer muss ganzzahlig sein"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "Wert von %<gang%> muss positiv sein"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr "Wert der %<vector%>-Länge muss positiv sein"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr "Wert der %<worker%>-Nummer muss positiv sein"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "Plan-Teilgrößenausdruck muss bestimmt sein"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr "Ausdruck für %qs-Länge muss ganzzahlig sein"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "Ausdruck für %qs-Länge muss ganzzahlig, positiv und konstant sein"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "%<async%>-Ausdruck muss ganzzahlig sein"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr "%<thread_limit%>-Ausdruck muss ganzzahlig sein"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr "%<device%>-ID muss ganzzahlig sein"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "Ausdruck für %<dist_schedule%>-Chunkgröße muss ganzzahlig sein"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD ist in %<aligned%>-Klausel keine Variable"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr "%qE in %<aligned%>-Klausel ist weder Zeiger noch Array noch Referenz auf Zeiger oder Array"
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qD tritt in %<aligned%>-Klausel mehrfach auf"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "Ausdruck für Ausrichtung der %<aligned%>-Klausel muss ganzzahlig sein"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD ist in %<nontemporal%>-Klausel keine Variable"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD tritt in %<nontemporal%>-Klauseln mehrfach auf"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%<this%> ist in %<allocate%>-Klausel nicht erlaubt"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD ist in %<allocate%>-Klausel keine Variable"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD kommt in %<allocate%>-Klausel mehrfach vor"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "%qD ist in %qs-Klausel weder lvalue-Ausdruck noch Arrayabschnitt"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr "Template %qE in Klausel %qs"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr "überladener Funktionsname %qE in Klausel %qs"
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "Ausdruck für %<grainsize%> muss ganzzahlig sein"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr "Ausdruck für %<priority%> muss ganzzahlig sein"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr "%<hint%>-Ausdruck muss ganzzahlig sein"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "%<hint%>-Ausdruck muss ganzzahlig und konstant sein"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr "%<filter%>-Ausdruck muss ganzzahlig sein"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "Variable %qs ist weder Zeiger noch Referenz auf Zeiger"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr "Variable %qs ist weder Zeiger noch Array noch Referenz auf Zeiger oder Array"
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr "Argument für %<tile%> erfordert ganzzahligen Typ"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr "%<const%>-qualifiziertes %qE ohne %<mutable%>-Element darf nur in %<shared%>- oder %<firstprivate%>-Klauseln vorkommen"
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr "%<threadprivate%> %qD ist weder Datei-, Namens- noch Blockbereichsvariable"
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "%<threadprivate%> Direktive %qE nicht in Definition von %qT"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr "Unterschied zwischen %qE und %qD hat keinen Ganzzahltyp"
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "%<#pragma omp simd%> zusammen mit Iterationsvariable %qE verwendet"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic update%> verwendet zwei unterschiedliche Ausdrücke für Speicher"
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr "%<static_assert%>-Meldung muss ein Stringliteral oder ein Objekt mit den Membern %<size%> und %<data%> sein"
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr "%<size()%> der %<static_assert%>-Nachricht muss implizit in %<std::size_t%> umwandelbar sein"
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr "%<data()%> der %<static_assert%>-Nachricht muss implizit in %<const char*%> umwandelbar sein"
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "%<size()%> der %<static_assert%>-Meldung muss ein konstanter Ausdruck sein"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr "%<size()%> der %<static_assert%>-Meldung ist %qE und damit zu groß"
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "%<data()[%d]%> der %<static_assert%>-Meldung muss ein konstanter Ausdruck sein"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "%<data()%> der %<static_assert%>-Meldung muss ein Kernkonstantenausdruck sein"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, gcc-internal-format
 msgid "static assertion failed: %.*s"
 msgstr "statische Assertion fehlgeschlagen: %.*s"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "Nicht-konstante Bedingung für statische Behauptung"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr "Argument für %<decltype%> muss ein Ausdruck sein"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "%<decltype%> kann die Adresse der überladenen Funktion nicht auflösen"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr "%<__builtin_is_pointer_interconvertible_with_class%> benötigt ein einziges Argument"
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr "Argument von %<__builtin_is_pointer_interconvertible_with_class%> muss ein Zeiger auf Member sein"
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr "%<__builtin_is_corresponding_member%> nicht wohldefiniert für anonyme Vereinigungen"
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "%<__builtin_is_corresponding_member%> benötigt zwei Argumente"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr "Argument von %<__builtin_is_corresponding_member%> muss ein Zeiger auf Member sein"
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "%qD ist weder ein Klassen- noch ein Alias-Template"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "Operand des Faltungsausdrucks hat keine unexpandierten Parameterpackungen"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "beide Argumente in binärer Faltung haben unexpandierte Parameterpackungen"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr "keine unexpandierten Parameterpackungen in binärer Faltung"
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr "Argument, das kein Zeiger ist, in %<__builtin_launder%>"
@@ -65063,1159 +65101,1159 @@ msgstr "Argument, das kein Zeiger ist, in %<__builtin_launder%>"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr "Zieltyp %qT von %<__builtin_bit_cast%> ist ein Arraytyp"
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr "Zieltyp %qT von %<__builtin_bit_cast%> ist nicht trivial kopierbar"
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr "Quelltyp %qT von %<__builtin_bit_cast%> ist nicht trivial kopierbar"
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr "in %<__builtin_bit_cast%> ist die Quellgröße %qE ungleich der Zieltypgröße %qE"
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "%qV-Qualifizierer können nicht auf %qT angewendet werden"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr "Anweisungs-Ausdruck in konstantem Ausdruck"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr "%<-fabi-version=13%> (GCC 8.2) korrigiert die Aufrufkonvention für %qT, die in 8.1 versehentlich geändert wurde"
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr "%<-fabi-version=12%> (GCC 8.1) ändert versehentlich die Aufrufkonvention für %qT"
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, gcc-internal-format
 msgid " declared here"
 msgstr " hier deklariert"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr "die Aufrufkonvention für %qT ändert sich mit %<-fabi-version=13%> (GCC 8.2)"
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr " da alle seine Kopier- und Verschiebekonstruktoren gelöscht sind"
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr "Basisklasse %qT ist nicht %<public%>"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, gcc-internal-format
 msgid "%qD is not public"
 msgstr "%qD ist nicht %<public%>"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, gcc-internal-format
 msgid "%qD is mutable"
 msgstr "%qD ist veränderlich"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr "%qD ist kein nicht-struktureller Typ"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "Attribut %qE kann nur auf Funktionen oder Parameter angewendet werden"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, gcc-internal-format
 msgid "%qE attribute argument must be a string constant"
 msgstr "Argument des Attributs %qE muss eine Zeichenkettenkonstante sein"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "Attribut %qE kann nur auf Funktionen oder auf Klasse- oder Aufzählungstypen angewendet werden"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "Attribut %qE kann nur auf nicht-statische Datenelemente angewendet werden"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, gcc-internal-format
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "Attribut %qE kann nicht auf Bitfeld angewendet werden"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr "Attribut %qE erwartet keine Argumente"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "Attribut %qE aus ISO C++ ist nicht auf Funktionen anwendbar; wird als %<[[gnu::%E]]%> behandelt"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, gcc-internal-format
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "angeforderte %<init_priority%> muss ganzzahlig und konstant sein"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "nur Attribut %qE kann für Definitionen von Objekten eines Klassentyps im Datei-Gültigkeitsbereich verwendet werden"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "angeforderte %<init_priority%> %i liegt außerhalb des Bereichs [0, %i]"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "angeforderte %<init_priority%> %i ist für interne Verwendung reserviert"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "Redeklaration von %qD fügt ABI-Marke %qE hinzu"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "Attribut %qE erfordert Argumente"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "Argumente für Attribut %qE müssen enge Zeichenkettenliterale sein"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "Argumente für Attribut %qE müssen gültige Bezeichner enthalten"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%c%> ist kein gültiges Anfangszeichen für einen Bezeichner"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%c%> ist kein gültiges Zeichen in einem Bezeichner"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "Attribut %qE auf Nicht-Klassen-, Nicht-Enum-Typ %qT angewendet"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "Attribut %qE auf %qT nach seiner Definition angewendet"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "%qE-Attribut wird für Templateinstanziierung %qT ignoriert"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "%qE-Attribut wird für Templatespezialisierung %qT ignoriert"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "%qE-Attribut wird auf %qD angewendet, das weder Funktion noch Variable ist"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "Attribut %qE wird auf »extern \"C\"«-Deklaration %qD angewendet"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "Argument %qE des Attributs muss ein Ausdruck sein, der zu true oder false auswertet"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "Null als Nullzeigerkonstante"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "%<lang_*%> check: failed in %s, at %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "Vergleich zwischen den unterschiedlichen Zeigertypen %qT und %qT benötigt Umwandlung"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "Umwandlung zwischen den unterschiedlichen Zeigertypen %qT und %qT benötigt Umwandlung"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "Bedingungsausdruck mit den unterschiedlichen Zeigertypen %qT und %qT benötigt Umwandlung"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO-C++ verbietet Vergleich zwischen Zeiger des Typs %<void *%> und Zeiger auf Funktion"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO-C++ verbietet Umwandlung zwischen Zeiger des Typs %<void *%> und Zeiger auf Funktion"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO-C++ verbietet Bedingungsausdruck mit Zeiger des Typs %<void *%> und Zeiger auf Funktion"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "beim Vergleich zwischen unterschiedlichen Zeiger-auf-Element-Typen %qT und %qT fehlt eine Typkonvertierung"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "bei Umwandlung zwischen unterschiedlichen Zeiger-auf-Element-Typen %qT und %qT fehlt eine Typkonvertierung"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "im Bedingungsausdruck mit unterschiedlichen Zeiger-auf-Element-Typen %qT und %qT fehlt eine Typkonvertierung"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "kanonische Typen unterscheiden sich für identische Typen %qT und %qT"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "selber kanonischer Typknoten für die unterschiedlichen Typen %qT und %qT"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "ungültige Anwendung von %qs auf Elementfunktion"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "ungültige Anwendung von %<sizeof%> auf ein Bitfeld"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO-C++ verbietet Anwendung von %<sizeof%> auf einen Ausdruck mit Funktionstyp"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "ungültige Anwendung von %<__alignof%> auf ein Bitfeld"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO-C++ verbietet Anwendung von %<__alignof%> auf einen Ausdruck mit Funktionstyp"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "Argument für %<alignas%> hat nicht-ganzzahligen Typen %qT"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "ungültige Verwendung der nicht-statischen Elementfunktion vom Typ %qT"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "ISO C++ verbietet, eine Zeichenkettenkonstante in %qT zu konvertieren"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "veraltete Konvertierung von Zeichenkettenkonstante in %qT"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "Anforderung des Elements %qD in %qE, das vom Zeigertyp %qT ist (vielleicht war %<->%> gemeint?)"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "Abfrage des Elementes %qD in %qE, das vom Nicht-Klassentyp %qT ist"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr "ungültige Verwendung des nicht-statischen Datenelements %qE"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "ungültiger Zugriff auf nicht-statisches Datenelement %qD in virtueller Basis des NULL-Objektes"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "Objekttyp %qT passt nicht zum Destruktornamen ~%qT"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "der zerstörte Typ ist %qT, aber der Destruktor verweist auf %qT"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr "auf Feld %q#D kann mittels %q#D zugegriffen werden"
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "%q#T hat kein Element namens %qE"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "%q#T hat kein Element namens %qE; meinten Sie %q#D? (zugreifbar über %q#D)"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "%q#T hat kein Element namens %qE; meinten Sie %q#D? (aus diesem Kontext nicht zugreifbar)"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%q#T hat kein Element namens %qE; meinten Sie %qE?"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> ist kein Element von %qT"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT ist keine Basis von %qT"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD ist keine Elementtemplatefunktion"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT ist kein Zeiger auf Objekt"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "ungültige Verwendung von Arrayindizierung bei Zeiger auf Element"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "ungültige Verwendung des unären %<*%> bei Zeiger auf Element"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "ungültige Verwendung impliziter Umwandlung bei Zeiger auf Element"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr "linker Operand von %<->*%> muss Zeiger auf Klasse sein, ist aber ein Zeiger auf Element des Typs %qT"
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "Index fehlt in Arrayreferenz"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "Indizierung eines als %<register%> deklarierten Arrays"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "indizierter Wert ist weder ein Array noch ein Zeiger"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "bei Verwendung von %qE fehlt Objekt"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO-C++ verbietet den Aufruf von %<::main%> vom Programm aus"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "%<.*%> oder %<->*%> muss verwendet werden, um Zeiger auf Element als Funktion in %<%E (...)%> aufzurufen, z.B. %<(... ->* %E) (...)%>"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE kann nicht als Funktion verwendet werden"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "%qD kann nicht als Funktion verwendet werden"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "Ausdruck kann nicht als Funktion verwendet werden"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "zu viele Argumente für Konstruktor %q#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "zu wenige Argumente für Konstruktor %q#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "zu viele Argumente für Elementfunktion %q#D"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "Zu wenige Argumente für Elementfunktion %q#D"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "zu viele Argumente für Funktion %q#D"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "zu wenige Argumente für Funktion %q#D"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "zu viele Argumente für Methode %q#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "zu wenige Argumente für Methode %q#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "zu viele Argumente für Funktion"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "zu wenige Argumente für Funktion"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "Parameter %P von %qD hat unvollständigen Typen %qT"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "Parameter %P hat unvollständigen Typen %qT"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr "die Adresse %qE ist niemals NULL"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "die Adresse von %qD ist niemals NULL"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "der Compiler kann annehmen, dass die Adresse von %qE niemals NULL ist"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr "Vergleich des Ergebnisses der Zeigeraddition %qE mit NULL"
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "der Compiler kann annehmen, dass die Adresse von %qD niemals NULL ist"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "bitweise Operation zwischen den unterschiedlichen Aufzählungstypen %qT und %qT"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "bitweise Operation zwischen den unterschiedlichen Aufzählungstypen %qT und %qT ist veraltet"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "Arithmetik zwischen den unterschiedlichen Aufzählungstypen %qT und %qT"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "Arithmetik zwischen den unterschiedlichen Aufzählungstypen %qT und %qT ist veraltet"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "Vergleich zwischen Aufzählungstyp %qT und Gleitkommatyp %qT"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "Vergleich zwischen Gleitkommatyp %qT und Aufzählungstyp %qT"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr "Vergleich zwischen Aufzählungstyp %qT und Gleitkommatyp %qT ist veraltet"
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr "Vergleich zwischen Gleitkommatyp %qT und Aufzählungstyp %qT ist veraltet"
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr "Arithmetik zwischen Aufzählungstyp %qT und Gleitkommatyp %qT"
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "Arithmetik zwischen Gleitkommatyp %qT und Aufzählungstyp %qT"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr "Arithmetik zwischen Aufzählungstyp %qT und Gleitkommatyp %qT ist veraltet"
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr "Arithmetik zwischen Gleitkommatyp %qT und Aufzählungstyp %qT ist veraltet"
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "Umwandlung in Typ %qT von überladener Funktion wird angenommen"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "NULL in Arithmetik verwendet"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO-C++ verbietet Vergleich zwischen Zeiger und Ganzzahl"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "Operandentypen sind %qT und %qT"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr "Drei-Wege-Vergleich von Vektoren"
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "geordneter Vergleich von Zeiger mit der Zahl 0 (%qT und %qT)"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, gcc-internal-format
 msgid "unordered comparison on non-floating-point argument"
 msgstr "ungeordneter Vergleich mit Nicht-Gleitkomma-Argument"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "implizite Umwandlung von %qH in %qI zur Anpassung an anderen Operanden des Binärausdrucks"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "ungültige Operanden der Typen %qT und %qT für binäres %qO"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO-C++ verbietet die Verwendung eines Zeigers des Typs %<void *%> in Subtraktion"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO-C++ verbietet die Verwendung eines Zeigers auf eine Funktion in Subtraktion"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO-C++ verbietet die Verwendung eines Zeigers auf Methode in Subtraktion"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "ungültige Verwendung eines Zeigers auf einen unvollständigen Typen in Zeigerarithmetik"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr "Adresse des Konstruktors %qD wird genommen"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr "Adresse des Destruktors %qD wird genommen"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "ungültige Verwendung von %qE um Zeiger auf Elementfunktion zu erzeugen"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  eine qualifizierte ID ist erforderlich"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "Klammern um %qE können nicht verwendet werden, einen Zeiger auf Elementfunktion zu erzeugen"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO-C++ verbietet das Ermitteln der Adresse einer nicht qualifizierten oder geklammerten nicht-statischen Elementfunktion, um einen Zeiger auf Elementfunktion zu erzeugen. Stattdessen %<&%T::%D%> verwenden"
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO-C++ verbietet das Ermitteln der Adresse einer nicht qualifizierten oder geklammerten nicht-statischen Memberfunktion, um einen Zeiger auf eine explizite Memberfunktion zu erzeugen"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO-C++ verbietet das Ermitteln der Adresse einer gebundenen Elementfunktion, um einen Zeiger auf Elementfunktion zu erzeugen. Stattdessen %<&%T::%D%> verwenden"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO-C++ verbietet es, die Adresse einer gebundenen Memberfunktion zu nehmen, um einen Zeiger auf eine explizite Objekt-Memberfunktion zu bilden"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "ein Zeiger auf eine explizite Objektelementfunktion kann nur mit %<&%T::%D%> erzeugt werden"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, gcc-internal-format
 msgid "taking address of rvalue"
 msgstr "Adresse eines Rvalues wird ermittelt"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO-C++ verbietet das Ermitteln der Adresse der Funktion %<::main%>"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "Zeiger auf Referenzelement %qD kann nicht erzeugt werden"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "Versuch, die Adresse eines Bitfelds zu bestimmen"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "%<~%> auf einem Ausdruck vom Typ %<bool%>"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr "meinten Sie ein logisches Nicht (%<!%>)?"
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO-C++ verbietet erhöhen einer Aufzählung"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO-C++ verbietet verringern einer Aufzählung"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "Zeiger auf unvollständigen Typen %qT kann nicht erhöht werden"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "Zeiger auf unvollständigen Typen %qT kann nicht verringert werden"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO-C++ verbietet Erhöhen eines Zeigers vom Typ %qT"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO-C++ verbietet Verringern eines Zeigers vom Typ %qT"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr "%qs-Ausdruck von %<volatile%>-qualifiziertem Typ ist veraltet"
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr "Verwendung eines Operanden vom Typ %qT in %<operator--%> ist verboten"
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr "Verwendung eines Operanden vom Typ %qT in %<operator++%> ist in C++17 verboten"
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr "Verwendung eines Operanden vom Typ %qT in %<operator++%> ist veraltet"
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "Adresse von %<this%> kann nicht ermittelt werden, das ein R-Wert-Ausdruck ist"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "Adresse der Register-Variablen %qD angefordert"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "Adresse für %qD angefordert, was als %<register%> deklariert ist"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "Listeninitialisierung für Nicht-Klassentyp darf nicht geklammert sein"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "Ausdrucksliste als zusammengesetzten Ausdruck in Initialisierung behandelt"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "Ausdrucksliste als zusammengesetzten Ausdruck in Speicherinitialisierung behandelt"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "Ausdrucksliste als zusammengesetzten Ausdruck in funktionaler Umwandlung behandelt"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80191
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "Ausdrucksliste für »%s« wird als zusammengesetzten Ausdruck behandelt"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr "kein Kontext, um Typ von %qE aufzulösen"
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "Umwandlung des Typs %qT in Typ %qT entfernt Qualifizierer"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "%<static_cast%> von Typ %qT in Typ %qT entfernt Qualifizierer"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "%<reinterpret_cast%> von Typ %qT in Typ %qT entfernt Qualifizierer"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "nutzlose Umwandlung in Typ %q#T"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, gcc-internal-format
 msgid "type qualifiers ignored on cast result type"
 msgstr "Typkennzeichner an Umwandlungs-Rückgabetyp ignoriert"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, gcc-internal-format
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "ungültiges %<static_cast%> von Typ %qT in Typ %qT"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "Klassentyp %qT ist unvollständig"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 msgid "converting from %qH to %qI"
 msgstr "Umwandlung von %qH nach %qI"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, gcc-internal-format
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "ungültige Typumwandlung eines prvalue-Ausdrucks des Typs %qT in Typ %qT"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 msgid "cast from %qH to %qI loses precision"
 msgstr "Typumwandlung von %qH nach %qI verliert Genauigkeit"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr "Umwandlung zwischen inkompatiblen Funktionstypen von %qH nach %qI"
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "Umwandlung zwischen inkompatiblen Elementzeigertypen von %qH nach %qI"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "Umwandlung von %qH in %qI erhöht erforderliche Ausrichtung des Zieltyps"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "Umwandlung zwischen Zeiger auf Funktion und Zeiger auf Objekt ist bedingt unterstützt"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "ungültige Umwandlung von Typ %qT in Typ %qT"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "ungültige Verwendung von %<const_cast%> mit Typ %qT, der weder Zeiger, Referenz, noch Zeiger auf ein Datenelement ist"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "ungültige Verwendung von %<const_cast%> mit Typ %qT, der ein Zeiger oder Referenz auf Funktionstyp ist"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, gcc-internal-format
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "ungültiges %<const_cast%> eines R-Wertes des Typs %qT in Typ %qT"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, gcc-internal-format
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "ungültiges %<const_cast%> von Typ %qT in Typ %qT"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO-C++ verbietet Umwandlung in Arraytyp %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "ungültige Umwandlung in Funktionstyp %qT"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, gcc-internal-format
 msgid "moving %qE of type %qT to itself"
 msgstr "%qE vom Typ %qT wird auf sich selbst verschoben"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr "entfernen Sie den Aufruf von %<std::move%>"
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  in Auswertung von %<%Q(%#T, %#T)%>"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr "Zuweisung an Array von Initialisierungsliste"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "unverträgliche Typen in Zuweisung von %qT an %qT"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "Array als Initialisierung verwendet"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "Ungültige Arrayzuweisung"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   in Umwandlung in Zeiger auf Elementfunktion"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "Umwandlung in Zeiger auf Element über virtuelle Basis %qT"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   in Umwandlung in Zeiger auf Element"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "ungültige Umwandlung in Typ %qT von Typ %qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "%qH kann nicht nach %qI im Standardargument umgewandelt werden"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "%qH kann nicht nach %qI bei Argumentübergabe umgewandelt werden"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "%qH kann nicht nach %qI in Initialisierung umgewandelt werden"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 msgid "cannot convert %qH to %qI in return"
 msgstr "%qH kann nicht nach %qI in Rückgabe umgewandelt werden"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "%qH kann nicht nach %qI in Zuweisung umgewandelt werden"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "Parameter %qP von %qD könnte Kandidat für Formatattribut sein"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr "Parameter könnte ein Kandidat für ein Formatattribut sein"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "Ziel der Umwandlung könnte Kandidat ein für ein Formatattribut sein"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "Ziel der Initialisierung könnte ein Kandidat für Formatattribut sein"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "linke Seite der Zuweisung könnte ein Kandidat für ein Formatattribut sein"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "bei Übergabe des Arguments %P von %qD"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "Referenz auf temporären Wert wird zurückgegeben"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, gcc-internal-format
 msgid "returning pointer to temporary"
 msgstr "Zeiger auf temporäre Variable wird zurückgegeben"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr "das Zurückgeben einer temporären %<initializer_list%> verlängert nicht die Lebenszeit des zugrundeliegenden Arrays"
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr "Referenz auf lokale Variable %qD zurückgegeben"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr "das Zurückgeben der lokalen %<initializer_list%>-Variable %qD verlängert nicht die Lebenszeit des zugrundeliegenden Arrays"
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr "Adresse der lokalen Variable %qD zurückgegeben"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr "Adresse der lokalen Variable %qD zurückgegeben"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr "das Verschieben eines temporären Objekts verhindert das Einsparen der Kopie"
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr "das Verschieben eines lokalen Objekts in einer return-Anweisung verhindert das Einsparen der Kopie"
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr "redundantes Verschieben in Rückgabeanweisung"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr "redundantes Verschieben in Initialisierung"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "Wert von Destruktor zurückgegeben"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "vom Behandler eines Funktions-try-Blocks eines Konstruktors kann nicht zurückgekehrt werden"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "Rückgabe eines Wertes von einem Konstruktor"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "Return-Anweisung ohne Wert, in %qT zurückgebender Funktion"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, gcc-internal-format
 msgid "returning initializer list"
 msgstr "Initialisierungsliste wird zurückgegeben"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "widersprüchliche Typen %qT und %qT für Lambda-Rückgabetypen hergeleitet"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "widersprüchliche Herleitung für automatischen Rückgabetyp: %qT und dann %qT"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr "Return-Anweisung mit Wert, in Funktion mit Rückgabetyp %qT"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%> darf nicht NULL zurückgeben, außer er ist mit %<throw%> deklariert (oder %<-fcheck-new%> ist eingeschaltet)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr "bei der Rückkehr von %qD wird das Kopieren nicht eingespart"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr "bei der Rückkehr in %qD wird das Kopieren nicht eingespart"
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, gcc-internal-format
 msgid "using rvalue as lvalue"
 msgstr "Rvalue wird als Lvalue verwendet"
@@ -66436,155 +66474,155 @@ msgstr "überladene Funktion ohne Typinformationen aus Kontext"
 msgid "insufficient contextual information to determine type"
 msgstr "unzureichende Informationen für Typbestimmung aus Kontext"
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "Konstruktorsyntax verwendet, aber kein Konstruktor für Typ %qT deklariert"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "%<constinit%>-Variable %qD muss eine konstante Initialisierung haben"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "verengende Umwandlung von %qE von %qH nach %qI ist in C++11 ungültig"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "verengende Umwandlung von %qE von %qH nach %qI"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr " der Ausdruck hat einen konstanten Wert, ist aber kein konstanter Ausdruck im Sinne von C++"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, gcc-internal-format
 msgid "initializer-string for %qT is too long"
 msgstr "Initialisierungs-Zeichenkette für %qT ist zu lang"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr "das Initialisieren einer Basisklasse vom Typ %qT führt zu Objektslicing"
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, gcc-internal-format
 msgid "remove %<{ }%> around initializer"
 msgstr "entfernen Sie die %<{ }%> um den Initialisierer"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "Aggregat des Typs %qT kann nicht mit zusammengesetztem Literal initialisiert werden"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "Initialisierung für Element %qD fehlt"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "Element %qD ist nicht initialisierte Referenz"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "Element %qD mit nicht initialisierten Feldern"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "Designator-Reihenfolge für Feld %qD passt nicht zur ursprünglichen Deklaration in %qT"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "kein Feld %qD in initialisierter Union gefunden"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "Indexwert statt Feldname in Union-Initialisierung"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "ringförmige Zeigerdelegation erkannt"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "Basisoperand von %<->%> hat Nicht-Zeiger-Typ %qT"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "Ergebnis von %<operator->()%> ergibt Nicht-Zeiger-Ergebnis"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "Basisoperand von %<->%> ist kein Zeiger"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE kann nicht als Elementzeiger verwendet werden, da es vom Typ %qT ist"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "Elementzeiger %qE kann nicht auf %qE angewandt werden, da letzteres vom Nicht-Klassen-Typ %qT ist"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "Zeiger auf Elementtyp %qT mit Objekttyp %qT inkompatibel"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "Typ für Zeiger auf Elementfunktion %qT braucht einen rvalue"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "Typ für Zeiger auf Elementfunktion %qT braucht einen lvalue"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "Zeiger-auf-Element-Funktions-Typ %qT braucht vor C++20 einen lvalue"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "funktionale Umwandlung in Arraytyp %qT"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "%<auto(x)%> kann nicht eingeschränkt werden"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<auto{x}%> ist erst mit %<-std=c++2b%> oder %<-std=gnu++2b%> verfügbar"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "ungültige Wert-Initialisierung von Referenztyp"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "Aufruf der Funktion %qD, die unvollständigen Typen %q#T wirft"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "Aufruf einer Funktion, die unvollständigen Typen %q#T wirft"
@@ -67582,7 +67620,7 @@ msgstr "Die BOZ-Literalkonstante bei %L darf kein tatsächliches Argument für %
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "Argumente von %qs bei %L und %L können nicht beide literale BOZ-Konstanten sein"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr "Ungültige Verwendung der BOZ-Literalkonstante bei %L"
@@ -68907,7 +68945,7 @@ msgstr "Falsche INTENT-Spezifikation bei %C"
 msgid "deferred type parameter at %C"
 msgstr "Parameter mit zurückgestelltem Typ bei %C"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr "Skalarer INTEGER-Ausdruck bei %L erwartet"
@@ -69122,7 +69160,7 @@ msgstr "Komponente %qs mit CLASS bei %C muss allozierbar oder Zeiger sein"
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "Feldkomponente der Struktur bei %C muss explizite oder aufgeschobene Form haben"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr "Komponente %qs bei %C bereits bei %L deklariert"
@@ -69925,7 +69963,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "Formale Argumentliste in Funktionsdefinition bei %C erwartet"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr "BIND(C)-Attribut bei %L kann nur für Variablen oder gemeinsame Blöcke verwendet werden"
@@ -70735,12 +70773,12 @@ msgstr "identical_array_ref(): inconsistent dimensions"
 msgid "are_identical_variables: Bad type"
 msgstr "are_identical_variables: Bad type"
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr "Effektives Argument von INTENT(%s) bei %L könnte effektives Argument bei %L stören."
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr "Interner Fehler: gfc_check_dependency: expecting an EXPR_VARIABLE"
@@ -71003,274 +71041,274 @@ msgstr "Parameter %qs bei %L wurde nicht deklariert oder ist eine Variable, die
 msgid "check_init_expr(): Unknown expression type"
 msgstr "check_init_expr(): Unknown expression type"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "Spezifikationsfunktion %qs bei %L kann keine Anweisungsfunktion sein"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "Spezifikationsfunktion %qs bei %L kann keine interne Funktion sein"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr "Spezifikationsfunktion %qs bei %L muss PURE sein"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "Spezifikationsfunktion %qs bei %L kann nicht RECURSIVE sein"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "Scheinargument %qs ist im Ausdruck bei %L nicht erlaubt"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "Scheinargument %qs bei %L kann nicht OPTIONAL sein"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "Scheinargument %qs bei %L kann nicht INTENT(OUT) sein"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "Variable %qs kann nicht im Ausdruck bei %L auftreten"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79596
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr "check_restricted(): Unknown expression type"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "Ausdruck bei %L muss INTEGER-Typ haben, %s gefunden"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "Funktion %qs bei %L muss PURE sein"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "Ausdruck bei %L muss skalar sein"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr "Interner Fehler: optype_msgid overflow: %d"
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "Unverträgliche Ränge in %s (%d und %d) bei %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "Andere Form für %s bei %L für Dimension %d (%d und %d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr "Die Zuweisung zu einer KIND- oder LEN-part_ref bei %L ist nicht erlaubt"
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "%qs bei %L ist kein VALUE"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr "Unzulässige Zuweisung an externe Prozedur bei %L"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "Unverträgliche Ränge %d und %d in Zuweisung bei %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "Unbekannter Variablentyp in Zuweisung bei %L"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "Auf rechter Seite in Zuweisung bei %L tritt NULL auf"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "POINTER-wertige Funktion tritt auf rechter Seite der Zuweisung bei %L auf"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr "BOZ-Literalkonstante in der Nähe von %L kann nicht einer %qs-Variablen zugewiesen werden"
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr "Die Zuweisung zu einer KIND- oder LEN-Komponente eines parametrisierten Typs bei %L ist nicht erlaubt"
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "Unverträgliche Typen in DATA-Anweisung bei %L; versuchte Umwandlung von %s an %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "Zeiger-Zuweisungsziel ist kein POINTER bei %L"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "%qs in Zeigerzuweisung bei %L kann kein L-Wert sein, da es eine Prozedur ist"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "Grenzen für %qs bei %L erwartet"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Grenzenangabe für %qs in Zeigerzuweisung bei %L"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr "Bei %L darf kein Schritt vorhanden sein"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr "Das Umordnen des Rangs erfordert eine Liste von %<untere-Grenze : obere-Grenze%>-Angaben bei %L"
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr "Liste von %<untere-Grenze :%> oder Liste von %<untere-Grenze : obere-Grenze%>-Angaben bei %L erwartet"
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "Zeigerobjekt bei %L darf keinen Koindex haben"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "Ungültige Zuweisung eines Prozedurzeigers bei %L"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "Funktionsergebnis %qs ist als Prozedurziel in Zuweisung des Prozedurzeigers bei %L ungültig"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "Abstrakte Schnittstelle %qs ist in Zuweisung des Prozedurzeigers bei %L ungültig"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "Anweisungsfunktion %qs ist in Zuweisung des Prozedurzeigers bei %L ungültig"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Interne Prozedur %qs ist in Zuweisung des Prozedurzeigers bei %L ungültig"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "Eingebautes %qs bei %L ist in Zuweisung des Prozedurzeigers ungültig"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Nichtintrinsische elementare Prozedur %qs ist in Zuweisung des Prozedurzeigers bei %L ungültig"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr "Unpassende Zuweisung des Prozedurzeigers bei %L: Unpassende Aufrufkonvention"
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "Unpassende Schnittstellen bei Zuweisung des Prozedurzeigers bei %L: %qs ist kein Unterprogramm"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "Explizite Schnittstelle für Komponente %qs bei %L erforderlich: %s"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "Explizite Schnittstelle für %qs bei %L erforderlich: %s"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "Unpassende Schnittstellen bei Zuweisung des Prozedurzeigers bei %L: %s"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr "Prozedurzeigerziel %qs bei %L muss entweder eine intrinsische Funktion, host- oder use-assoziiert oder referenziert sein, oder aber das EXTERNAL-Attribut haben"
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "Zeiger-Zuweisungsziel darf keine Konstante sein bei %L"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr "Datenzeigerobjekt bei %L muss unbegrenzt polymorph oder von einem Typ mit BIND- oder SEQUENCE-Attribut sein, um zum unbegrenzt polymorphen Ziel zu passen"
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "Verschiedene Typen in Zeigerzuweisung bei %L; Versuch der Zuweisung von %s an %s"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "Parameter verschiedener Typen in Zeigerzuweisung bei %L"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "Verschiedene Ränge in Zeigerzuweisung bei %L"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr "Ziel der Rang-Neuzuordnung ist kleiner als die Größe des Zeigers (%ld < %ld) bei %L"
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr "Ziel der Rang-Neuzuordnung muss Rang 1 oder einfach fortlaufend bei %L sein"
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr "Ziel der Rang-Neuzuordnung ist nicht Rang 1 bei %L"
@@ -71278,192 +71316,192 @@ msgstr "Ziel der Rang-Neuzuordnung ist nicht Rang 1 bei %L"
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr "Datenziel bei %L darf keinen Koindex haben"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "Zielausdruck in Zeigerzuweisung bei %L muss ein Zeigerergebnis liefern"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr "Array der Größe 0 bei %L gefunden, an dieser Stelle wird eine Entität mit TARGET-Attribut erwartet"
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "Ziel der Zeigerzuweisung in Initialisierungsausdruck bei %L muss das TARGET-Attribut haben"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "Jeder Feldindex der Zielspezifikation bei %L muss ein konstanter Ausdruck sein"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr "Start- und Endposition der Teilzeichenkette der Zielspezifikation bei %L müssen konstante Ausdrücke sein"
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "Zeiger-Zuweisungsziel bei %L ist weder TARGET noch POINTER"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "Falsches Ziel in Zeigerzuweisung in PURE-Prozedur bei %L"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "Zeigerzuweisung mit Vektorindex für rhs bei %L"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "Zeiger-Zuweisungsziel hat PROTECTED-Attribut bei %L"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr "Zuweisung an zusammenhängenden Zeiger von nichtzusammenhängendem Ziel bei %L"
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr "Zeiger bei %L in Zeigerzuweisung könnte Zeigerziel überdauern"
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "Ziel der Zeigerinitialisierung bei %L darf nicht ALLOCATABLE sein"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "Ziel der Zeigerinitialisierung bei %L muss das TARGET-Attribut haben"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "Ziel der Zeigerinitialisierung bei %L muss das SAVE-Attribut haben"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr "Ziel der Zeigerinitialisierung für Prozedur bei %L darf kein Prozedurzeiger sein"
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Interne Prozedur %qs ist in Initialisierung des Prozedurzeigers bei %L ungültig"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Dummyprozedur %qs ist in Initialisierung des Prozedurzeigers bei %L ungültig"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr "Interner Fehler: generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "Fortran 2008: Zeigerfunktionen in Variablen-Definitionskontext (%s) bei %L"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr "Nicht-variabler Ausdruck in Variablen-Definitionskontext (%s) bei %L"
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr "Benannte Konstante %qs in Variablen-Definitionskontext (%s) bei %L"
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "%qs in Variablen-Definitionskontext (%s) bei %L ist keine Variable"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr "Nicht-POINTER in Zeiger-Verbindungskontext (%s) bei %L"
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr "Typ nicht zugreifbar in Variablen-Definitionskontext (%s) bei %L"
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr "LOCK_TYPE in Variablen-Definitionskontext (%s) bei %L"
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr "LOCK_EVENT in Variablen-Definitionskontext (%s) bei %L"
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "Parameterabfrage %qs für %qs in Variablen-Definitionskontext (%s) bei %L"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr "Scheinargument %qs mit INTENT(IN) in Zeiger-Verbindungskontext (%s) bei %L"
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr "Scheinargument %qs mit INTENT(IN) in Variablen-Definitionskontext (%s) bei %L"
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "Variable %qs ist PROTECTED und kann nicht in einem Zeigerzuordnungskontext (%s) bei %L vorkommen"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "Variable %qs ist PROTECTED und kann nicht in Variablen-Definitionskontext (%s) bei %L auftreten"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "Variable %qs kann nicht in Variablen-Definitionskontext (%s) bei %L in PURE-Prozedur auftreten"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr "%qs ist bei %L mit vektorindiziertem Ziel verbunden und kann nicht in Variablen-Definitionskontext (%s) verwendet werden"
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr "%qs ist bei %L mit Ausdruck verbunden und kann nicht in Variablen-Definitionskontext (%s) verwendet werden"
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr "%qs bei %L ist mit einer Zeigerfunktion verbunden, die in einem Variablendefinitionskontext verwendet wird (%s)"
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "Associate-Name %qs kann nicht in Variablen-Definitionskontext (%s) bei %L auftreten, da sein Ziel bei %L es auch nicht kann"
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr "Elemente mit demselben Wert bei %L und %L in Vektorindex in einem Variablen-Definitionskontext (%s)"
@@ -71484,8 +71522,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr "Illegal id in copy_walk_reduction_arg"
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "Zwischenergebnis-Feld bei %L wird erzeugt"
@@ -71565,7 +71603,7 @@ msgstr "Variable %qs bei %L auf undefinierten Wert innerhalb der bei %L beginnen
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "Variable %qs bei %L kann nicht innerhalb der bei %L beginnenden Schleife als INTENT(INOUT)-Argument für Funktion %qs definiert werden"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr "Code zur Neu-Reservierung des reservierbaren Feldes bei %L wird hinzugefügt"
@@ -71701,12 +71739,12 @@ msgstr "Erstes Argument der definierten Zuweisung bei %L muss INTENT(OUT) oder I
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "Zweites Argument der definierten Zuweisung bei %L muss INTENT(IN)"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "Erstes Argument der Operatorschnittstelle bei %L muss INTENT(IN) sein"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "Zweites Argument der Operatorschnittstelle bei %L muss INTENT(IN) sein"
@@ -72587,7 +72625,7 @@ msgstr "Umwandlung von %s in %s bei %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr "%s kann nicht nach %s bei %L umgewandelt werden"
@@ -73138,7 +73176,7 @@ msgstr "NAMELIST %qs in READ-Anweisung bei %L enthält Symbol %qs, das im Kontex
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr "NAMELIST-Objekt %qs in Namensliste %qs bei %L ist polymorph und erfordert eine definierte Ein-/Ausgabeprozedur"
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr "NAMELIST-Objekt %qs in Namensliste %qs bei %L mit ALLOCATABLE- oder POINTER-Komponenten"
@@ -73305,6 +73343,11 @@ msgstr "identifier overflow: %d"
 msgid "check_charlen_present(): length not set"
 msgstr "Interner Fehler: check_charlen_present(): length not set"
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79596
 #: fortran/match.cc:118
 #, gcc-internal-format
@@ -73708,7 +73751,7 @@ msgstr "STOP-Code bei %L muss Standardzeichentyp KIND=%d sein"
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "STOP-Code bei %L muss Standardganzzahltyp KIND=%d sein"
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr "Der Spezifizierer QUIET bei %L muss ein skalarer LOGICAL sein"
@@ -74231,82 +74274,82 @@ msgstr "Syntaxfehler in »SELECT TYPE«-Anweisung bei %C"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr "Selektor in SELECT TYPE bei %C ist keine benannte Variable; associate-name=> verwendet"
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr "SELECT-RANK-Anweisung bei %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr "Der SELECT-RANK-Selektor bei %C muss eine angenommene Rangvariable sein"
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "Syntaxfehler in SELECT-RANK-Anweisung bei %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "Unerwartete CASE-Anweisung bei %C"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "Syntaxfehler in CASE-Spezifikation bei %C"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "Unerwartete TYPE IS-Anweisung bei %C"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr "Typspezifikation darf keinen Sequenz-abgeleiteten Typ oder Typ mit BIND-Attribut in SELECT TYPE bei %C beschreiben [F2003:C815]"
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr "Alle LEN-Typparameter in der TYPE-IS-Anweisung bei %C müssen ASSUMED sein"
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "Syntaxfehler in TYPE IS-Spezifikation bei %C"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "Syntaxfehler in CLASS IS-Spezifikation bei %C"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected RANK statement at %C"
 msgstr "Unerwartete RANK-Anweisung bei %C"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "Der SELECT-RANK-CASE-Ausdruck bei %C muss eine skalare, ganzzahlige Konstante sein"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr "Der Wert des SELECT-RANK-CASE-Ausdrucks bei %C darf nicht kleiner als Null oder größer als %d sein"
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr "Syntaxfehler in RANK-Spezifikation bei %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "ELSEWHERE-Anweisung bei %C nicht eingeschlossen in WHERE-Block"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr "Marke %qs bei %C passt nicht zur WHERE-Marke %qs"
@@ -75736,8 +75779,8 @@ msgstr "ORDERED-Parameter der Klausel bei %L ist weniger als COLLAPSE"
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr "ORDER-Klausel bei %L darf nicht zusammen mit ORDERED verwendet werden"
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "IF-Klausel bei %L erfordert einen skalaren LOGICAL-Ausdruck"
@@ -78112,12 +78155,12 @@ msgstr "Das bei %2$L deklarierte INTRINSIC %1$qs ist in den derzeitigen Standard
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "Nicht-RECURSIVE Prozedur %qs aus Modul %qs ruft sich möglicherweise rekursiv selbst auf, in der Prozedur %qs. Deklarieren Sie die Prozedur als RECURSIVE oder verwenden Sie %<-frecursive%>"
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "Nicht-RECURSIVE Prozedur %qs bei %L ruft sich möglicherweise rekursiv selbst auf. Sollte als RECURSIVE oder mit %<-frecursive%> verwendet werden"
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "Marke %d wird bei %L referenziert, aber nirgendwo definiert"
@@ -78237,7 +78280,7 @@ msgstr "Fehlende explizite Deklaration mit EXTERNAL-Attribut für Symbol %qs bei
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "Funktion %qs bei %L hat keinen IMPLICIT-Typ; meinen Sie %qs?"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr "Funktion %qs bei %L hat keinen IMPLICIT-Typ"
@@ -78646,279 +78689,284 @@ msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "Variable »%s« vermuteten Ranges bei %L darf keine Referenz auf Subobjekt haben"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79596
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "Skalare Variable %qs hat eine Array-Referenz bei %L"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr "In Spezifikationsausdruck verwendete Variable %qs wird bei %L vor Anweisung ENTRY referenziert, in der sie ein Parameter ist"
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr "Variable %qs wird bei %L vor Anweisung ENTRY verwendet, in der sie ein Parameter ist"
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr "Polymorphes Subobjekt des koindizierten Objektes bei %L"
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr "Koindiziertes Objekt mit polymorpher reservierbarer Subkomponente bei %L"
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr "Verwendung der Variable %qs bei %L ist veraltet"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid array reference at %L"
+msgstr "Ungültige Feldreferenz bei %L"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr "%qs bei %L ist Host-verbunden bei %L in eine enthaltene Prozedur mit einer gleichnamigen internen Prozedur"
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr "Fehler in Typbeschränktem Aufruf bei %L"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "Weitergegebenes Objekt bei %L muss Skalar sein"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr "Basisobjekt für Aufruf der Prozedurzeigerkomponente bei %L hat ABSTRACT-Typ %qs"
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr "Basisobjekt für Aufruf der typgebundenen Prozedur bei %L hat ABSTRACT-Typ %qs"
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "Basisobjekt für Aufruf der typgebundenen NOPASS-Prozedur bei %L muss skalar sein"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr "Keine passende spezifische Bindung für Aufruf des GENERIC %qs bei %L gefunden"
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "%qs bei %L sollte eine SUBROUTINE sein"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr "%qs bei %L sollte eine FUNCTION sein"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79596
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "gfc_resolve_expr(): Bad expression type"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s bei %L muss skalar sein"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "%s bei %L muss ganzzahlig sein"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s bei %L muss INTEGER sein"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "Schrittausdruck in DO-Schleife bei %L kann nicht Null sein"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr "DO-Schleife bei %L wird null mal ausgeführt"
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr "DO-Schleife bei %L ist undefiniert, da sie überläuft"
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr "DO-Schleife bei %L ist undefiniert, da sie unterläuft"
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "FORALL-Indexname bei %L muss skalarer INTEGER sein"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "FORALL-Anfangsausdruck bei %L muss skalarer INTEGER sein"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "FORALL-Endausdruck bei %L muss skalarer INTEGER sein"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "FORALL-Schrittausdruck bei %L muss skalares %s sein"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "FORALL-Schrittausdruck bei %L kann nicht Null sein"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "FORALL-Index %qs kann nicht in Tripel-Spezifikation bei %L auftreten"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "ALLOCATE-Objekt bei %L muss ALLOCATABLE oder ein POINTER sein"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr "Koindiziertes reservierbares Objekt bei %L"
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr "Quell-Ausdruck bei %L muss skalar sein oder den selben Rang wie das ALLOCATE-Objekt bei %L haben"
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr "Quell-Ausdruck bei %L und ALLOCATE-Objekt bei %L müssen dieselbe Form haben"
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr "Typ der Entität bei %L ist mit Quellausdruck bei %L typunverträglich"
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr "Das ALLOCATE-Objekt bei %L und der Quellausdruck bei %L müssen Typparameter der gleichen Art haben"
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr "Der Quellausdruck bei %L darf weder vom Typ LOCK_TYPE sein noch eine LOCK_TYPE-Komponente haben, wenn ALLOCATE-Objekt bei %L ein Koarray ist"
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr "Der Quellausdruck bei %L darf weder vom Typ EVENT_TYPE sein noch eine EVENT_TYPE-Komponente haben, wenn ALLOCATE-Objekt bei %L ein Koarray ist"
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr "Reservierung von %s mit ABSTRACT-Basistyp bei %L erfordert Typspezifikation oder Quellausdruck"
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr "Reservierung von %s bei %L mit Typspezifikation erfordert den selben Zeichenkettenlängenparameter wie in der Deklaration"
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "In ALLOCATE-Anweisung bei %L ist Feld-Spezifikation erforderlich"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "Feldspezifikation oder feldwertiger SOURCE=-Ausdruck erforderlich in ALLOCATE-Anweisung bei %L"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "Koarray-Spezifikation in ALLOCATE-Anweisung bei %L erforderlich"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "Falsche Koarray-Spezifikation in ALLOCATE-Anweisung bei %L"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr "Obere Kogrenze ist kleiner als untere Kogrenze bei %L"
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr "Obere Kogrenze ist kleiner als untere Kogrenze von 1 bei %L"
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "Falsche Feldspezifikation in ALLOCATE-Anweisung bei %L"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "%qs darf nicht bei %L in einer Feldspezifikation in der gleichen ALLOCATE-Anweisung auftreten, wo es selbst alloziert wird"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "In Koindex-Spezifikation in ALLOCATE-Anweisung bei %L wird %<*%> erwartet"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "Stat-Variable bei %L muss skalare INTEGER-Variable sein"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "Stat-Variable bei %L darf nicht %s innerhalb der gleichen %s-Anweisung sein"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr "ERRMSG bei %L ist ohne STAT-Marke nutzlos"
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "»ERRMSG=«-Variable bei %L muss skalare Default-CHARACTER-Variable sein"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr "ERRMSG-Variable bei %L darf nicht »%s« innerhalb der selben »%s«-Anweisung sein"
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr "ALLOCATE-Objekt bei %L tritt auch bei %L auf"
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr "ALLOCATE-Objekt bei %L ist Subobjekt des Objekts bei %L"
@@ -78927,284 +78975,284 @@ msgstr "ALLOCATE-Objekt bei %L ist Subobjekt des Objekts bei %L"
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "CASE-Marke bei %L überschneidet sich mit CASE-Marke bei %L"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "Ausdruck in CASE-Anweisung bei %L muss Typ %s haben"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "Ausdruck in CASE-Anweisung bei %L muss von der Art %d sein"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "Ausdruck in CASE-Anweisung bei %L muss skalar sein"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "Auswahlausdruck in berechneter GOTO-Anweisung bei %L muss ein skalarer Ganzzahlausdruck sein"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "Argument der SELECT-Anweisung bei %L kann nicht %s sein"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "Argument der SELECT-Anweisung bei %L muss ein skalarer Ausdruck sein"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "Ausdruck in CASE-Anweisung bei %L ist nicht im Bereich von %s"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "Der DEFAULT CASE bei %L kann nicht von zweitem DEFAULT CASE bei %L gefolgt werden"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "Logischer Bereich in CASE-Anweisung bei %L ist nicht erlaubt"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "Konstanter logischer Wert in CASE-Anweisung wird bei %L wiederholt"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "Bereichsspezifikation bei %L kann nie passen"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "Logischer SELECT CASE Block bei %L hat mehr als zwei Fälle"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "Zugeordneter Name %qs bei %L ist ein Prozedurzeiger"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "Abgeleiteter Typ %qs kann bei %L nicht als Variable verwendet werden"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "Zugeordneter Name %qs bei %L ist ein Prozedurname"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr "Der zuordnende Selektor-Ausdruck bei %L ergibt eine Prozedur"
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr "Selektor bei %L darf nicht NULL() sein"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr "Selektor bei %L hat keinen Typ"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr "Zugeordneter Name %qs bei %L wird als Feld verwendet"
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr "CLASS-Selektor bei %L erfordert Zwischenspeicher, was noch nicht implementiert ist"
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "Selektor muss in SELECT TYPE-Anweisung bei %L polymorph sein"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr "Selektor bei %L darf nicht koindiziert sein"
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "TYPE IS bei %L überlappt sich mit TYPE IS bei %L"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr "Abgeleiteter Typ %qs bei %L muss erweiterbar sein"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "Abgeleiteter Typ %qs bei %L muss eine Erweiterung von %qs sein"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "Unerwarteter intrinsischer Typ %qs bei %L"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr "Die Typspezifikation bei %L muss angeben, dass jeder Parameter mit Längentyp vermutet ist"
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr "Doppelter CLASS IS-Block in SELECT TYPE-Anweisung bei %L"
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr "RANK DEFAULT bei %L wird bei %L wiederholt"
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr "RANK (*) bei %L wird bei %L wiederholt"
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr "RANK (%i) bei %L wird bei %L wiederholt"
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr "RANK (*) bei %L kann nicht mit dem Zeiger oder dem allozierbaren Selektor bei %L verwendet werden"
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Ungültiger Kontext für NULL()-Zeiger bei %L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "DTIO-%s-Prozedur bei %L muss rekursiv sein"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr "Element zum Datenaustausch bei %L kann nicht polymorph sein, außer es wird von einer definierten E/A-Prozedur verarbeitet"
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "Datenübertragungselement bei %L kann keine POINTER-Komponenten haben, außer es wird von einer definierten E/A-Prozedur verarbeitet"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "Datenübertragungselement bei %L kann keine Prozedurzeiger-Komponenten haben"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "Datenübertragungselement bei %L kann keine ALLOCATABLE-Komponenten haben, außer es wird von einer definierten E/A-Prozedur verarbeitet"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "Datenübertragungselement bei %L kann keine PRIVATE-Komponenten haben"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "Datenübertragungselement bei %L kann keine PRIVATE-Komponenten haben, außer es wird von einer definierten E/A-Prozedur verarbeitet"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "Datenübertragungselement bei %L kann keine vollständige Referenz auf Feld vermuteter Größe sein"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "Lock-Variable bei %L muss Skalar mit LOCK_TYPE sein"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "Ereignis-Variable bei %L muss Skalar mit EVENT_TYPE sein"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "Argument für Ereignisvariable bei %L muss ein Koarray oder koindiziert sein"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "Argument für Ereignisvariable bei %L muss ein Koarray, aber nicht koindiziert sein"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "»STAT=«-Argument bei %L muss skalare INTEGER-Variable sein"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "»ERRMSG=«-Argument bei %L muss skalare CHARACTER-Variable sein"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "»ACQUIRED_LOCK=«-Argument bei %L muss skalare LOGICAL-Variable sein"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "Argument UNTIL_COUNT= bei %L muss ein skalarer INTEGER-Ausdruck sein"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "Argument für Imageset bei %L muss Skalar oder Rang-1-INTEGER-Ausdruck sein"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "Argument für Imageset bei %L muss zwischen 1 und num_images() liegen"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "Anweisung bei %L ist keine gültige Sprungzielanweisung für Sprungziel bei %L"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr "Sprung bei %L könnte Endlosschleife bewirken"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr "GOTO-Anweisung bei %L hinterlässt CRITICAL-Konstrukt für Marke bei %L"
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr "GOTO-Anweisung bei %L hinterlässt DO CONCURRENT-Konstrukt für Marke bei %L"
@@ -79212,215 +79260,215 @@ msgstr "GOTO-Anweisung bei %L hinterlässt DO CONCURRENT-Konstrukt für Marke be
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "Marke bei %L ist nicht im gleichen Block wie GOTO-Anweisung bei %L"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "WHERE-Maske bei %L hat ungültige Form"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "WHERE-Zuweisungsziel bei %L hat ungültige Form"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr "Benutzerdefinierte Nicht-ELEMENTAL-Zuweisung in WHERE bei %L"
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "Nicht unterstützte Anweisung in WHERE bei %L"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "Zuweisung an FORALL-Indexvariable bei %L"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "Das FORALL mit Index %qs wird nicht auf der linken Seite der Zuweisung bei %L verwendet und könnte somit mehrere Zuweisungen an dieses Objekt auslösen"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr "FORALL-Konstrukt bei %L"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "FORALL-Indexname bei %L muss skalarer INTEGER sein"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "Ein äußeres FORALL-Konstrukt hat bereits einen Index mit Namen %L"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "Klausel WHERE/ELSEWHERE bei %L erfordert ein LOGICAL-Feld"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79596
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr "gfc_resolve_blocks(): Bad block type"
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "Die Variable in der gewöhnlichen Zuweisung bei %L ist eine Prozedurzeigerkomponente"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "CHARACTER-Ausdruck wird in Zuweisung (%wd/%wd) bei %L abgeschnitten"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "Koindizierter Ausdruck bei %L wird einer Variable abgeleiteten Typs mit einer POINTER-Komponente in einer PURE-Prozedur zugewiesen"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr "In einem reinen Unterprogramm darf ein INTENT(IN)-Dummy-Argument nicht als »expr« bei %L einer intrinsischen Zuweisungsanweisung verwendet werden, in der die Variable von einem abgeleiteten Typ ist, wenn der abgeleitete Typ eine Zeigerkomponente auf irgendeiner Ebene der Komponentenauswahl hat."
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "Zuweisung an koindizierte Variable bei %L in einer PURE-Prozedur"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr "Zuweisung an polymorphes Koarray bei %L ist nicht erlaubt"
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "Zuweisung an allozierbare polymorphe Variable bei %L"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr "Zuweisung an allozierbare polymorphe Variable bei %L erfordert %<-frealloc-lhs%>"
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr "Nicht allozierbare Variable darf in intrinsischer Zuweisung bei %L nicht polymorph sein – bitte prüfen, ob es ein passendes spezifisches Unterprogramm für den »=«-Operator gibt"
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr "Koindizierte Variable darf keine reservierbare endgültige Komponente in Zuweisung bei %L haben"
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr "TODO: als typgebunden definierte Zuweisung(en) bei %L nicht durchgeführt, da Feldreferenzen mit mehreren Teilen in Ausdrücken als Zwischenergebnisse auftreten würden."
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr "Zuweisung eines Prozedurzeigers bei %L"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "Funktionsergebnis auf der linken Seite der Zuweisung bei %L muss Zeiger-Attribut haben."
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "TEAM-Argument für %qs bei %L muss ein skalarer Ausdruck vom Typ TEAM_TYPE sein"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "»TEAM NUMBER«-Argument für FORM TEAM bei %L muss skalares INTEGER sein"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "Anweisung ASSIGNED GOTO bei %L erfordert eine skalare INTEGER-Variable"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "Variable %qs bei %L wurde keine Zielmarke zugewiesen"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "Alternative RETURN-Anweisung bei %L erfordert einen SCALAR-INTEGER-Spezifizierer als Rückgabe"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "Erwarteter intrinsischer Initialisierungsausdruck OMP WORKSHARE bei %L"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "ASSIGN-Anweisung bei %L erfordert eine skalare Standard-INTEGER-Variable"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr "Ungültiges NULL bei %L"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "Arithmetische IF-Anweisung bei %L erfordert einen skalaren REAL- oder INTEGER-Ausdruck"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79596
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr "gfc_resolve_code(): No expression on DO WHILE"
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "Abbruchbedingung der DO WHILE-Schleife bei %L muss ein skalarer LOGICAL-Ausdruck sein"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "FORALL-Maskenklausel bei %L erfordert einen skalaren LOGICAL-Ausdruck"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79596
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_resolve_code(): Bad statement code"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "Verwendung von Parameter %qs, der bei %L deklariert wurde, ist veraltet"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "Variable %1$qs bei %3$L mit Binde-Marke %2$qs verwenden denselben globalen Bezeichner wie die Entität bei %4$L"
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr "Variable %qs aus Modul %qs mit Bindungsmarke %qs bei %L verwendet denselben globalen Bezeichner wie Entität bei %L aus Modul %qs"
@@ -79428,1000 +79476,1000 @@ msgstr "Variable %qs aus Modul %qs mit Bindungsmarke %qs bei %L verwendet densel
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "Prozedur %1$qs bei %3$L mit Binde-Marke %2$qs verwenden denselben globalen Bezeichner wie die Entität bei %4$L"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "Zeichenkettenlänge bei %L ist zu groß"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "Reservierbares Feld %qs bei %L muss aufgeschobene Form oder vermuteten Rang haben"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "Skalares Objekt %qs bei %L kann nicht ALLOCATABLE sein"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "Feldzeiger %qs bei %L muss aufgeschobene Form oder vermuteten Rang haben"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "Feld %qs bei %L kann keine aufgeschobene Form haben"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr "Typ %qs der CLASS-Variable %qs bei %L ist nicht erweiterbar"
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr "CLASS-Variable %qs bei %L muss Attrappe, reservierbar oder Zeiger sein"
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr "Der Typ %qs bei %L darf nicht mit Wirt verbunden sein, da er von unverträglichem bei %L definierten Objekt mit gleichem Namen blockiert wird"
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr "Einbezogenes SAVE für Modulvariable %qs bei %L, benötigt wegen Standardinitialisierung"
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "Entität %qs bei %L hat Parameter mit aufgeschobenem Typ und benötigt entweder das POINTER- oder ALLOCATABLE-Attribut"
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "Das Feld %qs im Modul oder Hauptprogramm bei %L muss konstante Form haben"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "Entität mit vermuteter Zeichenlänge bei %L muss ein Scheinargument oder ein PARAMETER sein"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr "%qs bei %L muss in diesem Zusammenhang konstante Zeichenlänge haben"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "COMMON-Variable %qs bei %L muss konstante Zeichenlänge haben"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "Zuordnungsfähiges %qs bei %L kann keine Initialisierung haben"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr "Externes %qs bei %L kann keine Initialisierung haben"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "Schein-%qs bei %L kann keine Initialisierung haben"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "Intrinsisches %qs bei %L kann keine Initialisierung haben"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "Funktionsergebnis %qs bei %L kann keine Initialisierung haben"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "Automatisches Feld %qs bei %L kann keine Initialisierung haben"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr "%s bei %L"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "Zeichenwertige Anweisungsfunktion %qs bei %L muss konstante Länge haben"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "%qs hat PRIVATE-Typ und kann kein Scheinargument von %qs bei %L sein, das PUBLIC ist"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr "Prozedur %qs in PUBLIC-Schnittstelle %qs bei %L nimmt Scheinargumente von %qs, das PRIVATE ist"
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "Funktion %qs bei %L darf keinen Initialisierer haben"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr "Externes Objekt %qs bei %L darf keinen Initialisierer haben"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "ELEMENTAL-Funktion %qs bei %L muss ein skalares Ergebnis haben"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "Anweisungsfunktion %qs bei %L darf weder POINTER- oder ALLOCATABLE-Attribut haben"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "CHARACTER(*)-Funktion %qs bei %L darf nicht feld-wertig sein"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "CHARACTER(*)-Funktion %qs bei %L darf nicht zeiger-wertig sein"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "CHARACTER(*)-Funktion %qs bei %L darf nicht rein sein"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "CHARACTER(*)-Funktion %qs bei %L darf nicht rekursiv sein"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "CHARACTER(*)-Funktion %qs bei %L"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "Prozedurzeiger %qs bei %L darf nicht ELEMENTAL sein"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "Scheinprozedur %qs bei %L darf nicht ELEMENTAL sein"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr "Funktionsergebnisvariable %qs bei %L von elementarer Funktion %qs darf nicht die Attribute ALLOCATABLE oder POINTER haben"
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "Attribut PROCEDURE steht mit Attribut SAVE in %qs bei %L in Konflikt"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "Attribut PROCEDURE steht mit Attribut INTENT in %qs bei %L in Konflikt"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "Attribut PROCEDURE steht mit Attribut RESULT in %qs bei %L in Konflikt"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "Attribut EXTERNAL steht mit Attribut FUNCTION in %qs bei %L in Konflikt"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr "Dem Ergebnis %qs als Prozedurzeiger bei %L fehlt das POINTER-Attribut"
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Konflikt in ELEMENTAL-Attribut zwischen MODULE-PROCEDURE bei %L und seiner Schnittstelle in %s"
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Konflikt in PURE-Attribut zwischen MODULE-PROCEDURE bei %L und seiner Schnittstelle in %s"
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Konflikt in RECURSIVE-Attribut zwischen MODULE-PROCEDURE bei %L und seiner Schnittstelle in %s"
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr "%s zwischen der MODULE-PROCEDURE-Deklaration in Modul %qs und der Deklaration bei %L in (SUB)MODULE %qs"
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr "Schnittstelle von %qs bei %L muss explizit sein"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "FINAL-Prozedur %qs bei %L ist keine SUBROUTINE"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "FINAL-Prozedur bei %L muss genau ein Argument haben"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "Argument der FINAL-Prozedur bei %L muss Typ %qs haben"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr "FINAL-Prozedur bei %L mit angenommenem Rangargument muss der einzige Finalisierer mit derselben Art/Typ sein (F2018: C790)"
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "Argument der FINAL-Prozedur bei %L darf kein POINTER sein"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "Argument der FINAL-Prozedur bei %L darf nicht ALLOCATABLE sein"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "Argument der FINAL-Prozedur bei %L darf nicht OPTIONAL sein"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "Argument der FINAL-Prozedur bei %L darf nicht INTENT(OUT) sein"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "Nicht-skalare FINAL-Prozedur bei %L sollte Argument mit vermuteter Form haben"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "Bei %2$L deklarierte FINAL-Prozedur %1$qs hat denselben Rang (%3$d) wie %4$qs"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr "Für den abgeleiteten Typ %qs, der bei %L definiert ist, sind ausschließlich Array-FINAL-Prozeduren deklariert. Empfohlen ist auch eine skalare, es sei denn, ein Finalisierer mit angenommenem Rang wurde deklariert"
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr "%qs und %qs können nicht gemischte FUNCTION/SUBROUTINE für GENERIC %qs bei %L sein"
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr "%qs und %qs für GENERIC %qs bei %L sind mehrdeutig"
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr "Undefinierte spezifische Bindung %qs als Ziel des GENERIC %qs bei %L"
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr "GENERIC %qs bei %L muss auf spezifische Bindung abzielen, %qs ist ebenfalls GENERIC"
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr "GENERIC %qs bei %L kann nicht spezifische Bindung mit gleichem Namen überschreiben"
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "Typgebundener Operator bei %L kann nicht NOPASS sein"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "%qs bei %L muss eine Modulprozedur oder eine externe Prozedur mit expliziter Schnittstelle sein"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Prozedur %qs mit PASS(%s) bei %L hat kein Argument %qs"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "Prozedur %qs mit PASS bei %L muss mindestens ein Argument haben"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "Nicht-polymorphes Scheinargument von %qs für weitergegebenes Objekt bei %L"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "Argument %qs von %qs mit PASS(%s) bei %L muss abgeleiteten Typ %qs haben"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "Argument %qs von %qs mit PASS(%s) bei %L muss den parametrisierten abgeleiteten Typ %qs haben"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr "Alle LEN-Typparameter des hereingereichten Dummyarguments %qs von %qs bei %L müssen ASSUMED sein."
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "Scheinargument von %qs für weitergegebenes Objekt bei %L muss ein Skalar sein"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "Scheinargument von %qs für weitergegebenes Objekt bei %L darf nicht ALLOCATABLE sein"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "Scheinargument von %qs für weitergegebenes Objekt bei %L darf nicht POINTER sein"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "Prozedur %qs bei %L hat den gleichen Namen wie eine Komponente von %qs"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "Prozedur %qs bei %L hat den selben Namen wie eine vererbte Komponente von %qs"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr "Bei %2$L deklarierter abgeleiteter Typ %1$qs muss ABSTRACT sein, da %3$qs DEFERRED und nicht überschrieben ist"
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "Koarray-Komponente %qs bei %L muss reservierbar mit aufgeschobener Form sein"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "Komponente %qs bei %L mit TYPE(C_PTR) oder TYPE(C_FUNPTR) darf kein Koarray sein"
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr "Komponente %qs bei %L mit Koarray-Komponente darf ein Nicht-Zeiger und nicht-reservierbares Skalar sein"
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr "Komponente %qs bei %L hat das CONTIGUOUS-Attribut, aber ist kein Feldzeiger"
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "Komponente %qs von BIND(C)-Typ bei %L muss Länge eins haben"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Prozedurzeiger-Komponente %qs mit PASS(%s) bei %L hat kein Argument %qs"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "Prozedurzeiger-Komponente %qs mit PASS bei %L muss mindestens ein Argument haben"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "Argument %qs von %qs mit PASS(%s) bei %L muss abgeleiteten Typ %qs haben"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "Parameter %qs von %qs mit PASS(%s) bei %L muss skalar sein"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "Argument %qs von %qs mit PASS(%s) bei %L darf kein POINTER-Attribut haben"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "Argument %qs von %qs mit PASS(%s) bei %L darf nicht ALLOCATABLE sein"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "Komponente %qs von %qs bei %L hat den gleichen Namen wie eine geerbte typgebundene Prozedur"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "Zeichenlänge der Komponente %qs muss ein konstanter Spezifikationsausdruck bei %L sein"
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "Ausdruck für Zeichenlänge der Komponente %qs bei %L muss vom Typ INTEGER sein, nicht %s"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr "Zeichenkomponente %qs von %qs bei %L mit aufgeschobener Länge muss POINTER oder ALLOCATABLE sein"
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "Die Komponente %qs ist ein PRIVATE-Typ und kann nicht Komponente von %qs sein, die PUBLIC bei %L ist"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr "Polymorphe Komponente %s bei %L in SEQUENCE oder BIND(C)-Typ %s"
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "Komponente %s des bei %L deklarierten SEQUENCE-Typen hat kein SEQUENCE-Attribut"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "In Konflikt stehende Initialisierungen in Union bei %L und %L"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr "Da der erweiterte Typ %qs bei %L eine Koarray-Komponente hat, muss der Elterntyp %qs auch eine haben"
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "Nicht-erweiterbarer abgeleiteter Typ %qs bei %L darf nicht ABSTRACT sein"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr "Parametrisierter Typ %1$qs hat bei %3$L keine Komponente, die zu Parameter %2$qs gehört"
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr "Allgemeiner Name %qs der Funktion %qs bei %L ist der gleiche wie der des abgeleiteten Typs bei %L"
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "Abgeleiteter Typ %qs bei %L wurde nicht deklariert"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "Feld %qs mit vermuteter Größe in Namensliste %qs bei %L ist nicht erlaubt"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr "NAMELIST-Feldobjekt %qs mit vermuteter Form in Namensliste %qs bei %L"
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr "NAMELIST-Feldobjekt %qs ohne konstante Form in Namensliste %qs bei %L"
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr "NAMELIST-Objekt %qs ohne konstante Zeichenlänge in Namensliste %qs bei %L"
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "NAMELIST-Objekt %qs wurde als PRIVATE deklariert und kann kein Element der PUBLIC-Namensliste %qs bei %L sein"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr "NAMELIST-Objekt %qs hat Verwendungs-verbundene PRIVATE-Komponenten und kann kein Element der Namensliste %qs bei %L sein"
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "NAMELIST-Objekt %qs hat PRIVATE-Komponenten und kann kein Element der PUBLIC-Namensliste %qs bei %L sein"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "Attribut PROCEDURE steht mit Attribut NAMELIST in %qs bei %L in Konflikt"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "Parameterfeld %qs bei %L kann nicht automatische oder vermutete Form haben"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "Implizit angegebener PARAMETER %qs bei %L passt nicht zu früherem IMPLICIT-Typ"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "Unverträglicher abgeleiteter Typ in PARAMETER bei %L"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "COMMON-Block %qs bei %L kann nicht das EXTERNAL-Attribut haben"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "Entität %qs bei %L hat verzögerten LEN-Parameter %qs und benötigt entweder das POINTER- oder ALLOCATABLE-Attribut"
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr "Das AUTOMATIC-Objekt %qs bei %L darf kein SAVE-Attribut haben und dard auch keine Variable im main-Programm, einem Modul oder einem Teilmodus sein (F08/C513)"
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr "Das Objekt %qs bei %L mit ASSUMED-Typparametern muss ein Dummy oder ein SELECT-TYPE-Selektor sein (F08/4.2)"
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr "Sorry, allozierbare/Zeiger-Komponenten in polymorphen (CLASS-)getypten Koarrays bei %L werden nicht unterstützt"
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr "%<omp_all_memory%>, bei %L deklariert, darf nur in der OpenMP-DEPEND-Klausel verwendet werden"
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "Attribut PROTECTED steht mit Attribut EXTERNAL bei %L in Konflikt"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "Attribut PROCEDURE steht mit Attribut PROTECTED bei %L in Konflikt"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr "%qs bei %L hat Attribut CONTIGUOUS, aber ist kein Feldzeiger oder Feld vermuteter Größe oder Rang"
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr "Falsche Spezifikation für Feld bei %L mit angenommener Größe"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "Feld mit vermuteter Größe bei %L muss ein Schein-Argument sein"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "Feld mit vermuteter Form bei %L muss ein Scheinargument sein"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "Feld mit vermutetem Rang bei %L muss ein Scheinargument sein"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr "Feld mit vermutetem Rang bei %L darf kein Attribut VALUE oder CODIMENSION haben"
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "Symbol bei %L ist keine Scheinvariable"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr "%qs bei %L kann nicht das VALUE-Attribut haben, da es kein Scheinargument ist"
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "Zeichenwertige Scheinvariable %qs bei %L mit VALUE-Attribut muss konstante Länge haben"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr "C-kompatible zeichenwertige Scheinvariable %qs bei %L mit VALUE-Attribut muss Länge eins haben"
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "Der abgeleitete Typ %qs bei %L hat Typ %qs, der nicht definiert wurde"
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr "Variable %s bei %L mit NO_ARG_CHECK-Attribut muss ein Scheinargument sein"
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr "Variable %s bei %L mit NO_ARG_CHECK-Attribut muss vom Typ TYPE(*) oder von einem numerischen intrinsischen Typ sein"
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Variable %s bei %L mit NO_ARG_CHECK-Attribut darf nicht die Attribute ALLOCATABLE, CODIMENSION, POINTER oder VALUE haben"
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "Variable %s bei %L mit NO_ARG_CHECK-Attribut darf nicht das Attribut INTENT(OUT) haben"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr "Variable %s bei %L mit NO_ARG_CHECK-Attribut muss entweder skalar sein oder ein Feld vermuteter Größe"
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "Vermuteter Typ der Variable %s bei %L ist nur für Scheinvariablen erlaubt"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Variable %s vermuteten Typs bei %L darf nicht die Attribute ALLOCATABLE, CODIMENSION, POINTER oder VALUE haben"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "Variable %s vermuteten Typs bei %L darf nicht das Attribut INTENT(OUT) haben"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr "Variable %s vermuteten Typs bei %L darf kein Feld mit ausdrücklicher Form sein"
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr "Variable %qs bei %L kann nicht BIND(C) sein, weil es weder ein COMMON-Block noch mit Sichtbarkeit auf Modulebene deklariert ist"
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "BIND(C)-Variable %qs bei %L muss Länge eins haben"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "PUBLIC %s %qs bei %L mit abgeleitetem PRIVATE-Typen %qs"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr "Variable %s bei %L mit LOCK_TYPE oder mit Subkomponente mit LOCK_TYPE muss ein Koarray sein"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79866
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr "Variable %s bei %L des Typs EVENT_TYPE oder mit Subkomponente des Typs EVENT_TYPE muss ein Koarray sein"
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "Das INTENT(OUT)-Scheinargument %qs bei %L hat ASSUMED SIZE und kann damit keine Standardinitialisierung haben"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "Scheinargument %qs bei %L mit LOCK_TYPE darf nicht INTENT(OUT) sein"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "Scheinargument %qs bei %L mit EVENT_TYPE darf nicht INTENT(OUT) sein"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "Funktionsergebnis %qs bei %L darf weder Koarray sein noch eine Koarray-Komponente haben"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "Variable %qs bei %L mit TYPE(C_PTR) oder TYPE(C_FUNPTR) darf kein Koarray sein"
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr "Variable %qs bei %L mit Koarraykomponente muss ein Nichtzeiger, nichtallozierbares Skalar und damit kein Koarray sein"
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr "Variable %qs bei %L ist ein Koarray und ist weder ALLOCATABLE, SAVE, noch ein Scheinargument"
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "Koarray-Variable %qs bei %L darf keine Kodimensionen mit aufgeschobener Form haben"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "Zuordnungsfähige Koarray-Variable %qs bei %L muss aufgeschobene Form haben"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr "Variable %qs bei %L ist INTENT(OUT) und kann daher kein reservierbares Coarray sein oder Coarray-Komponenten haben"
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "Coarray-Scheinvariable %qs bei %L in BIND(C)-Prozedur %qs nicht erlaubt"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "LOGICAL-Scheinargument %qs bei %L mit Nicht-C_Bool-Art in BIND(C)-Prozedur %qs"
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "LOGICAL-Rückgabevariable %qs bei %L mit Nicht-C_Bool-Art in BIND(C)-Prozedur %qs"
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "Namensliste %qs kann bei %L nicht als Argument für Unterprogramm oder Funktion verwendet werden"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr "Threadprivate bei %L ist nicht SAVEd"
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr "»!$OMP DECLARE TARGET«-Variable %qs bei %L ist nicht gespeichert (SAVE)"
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr "Definierbare Entität bei %L erwartet"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "BLOCK DATA Element %qs bei %L muss in COMMON sein"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "DATA-Feld %qs bei %L muss in vorheriger Deklaration angegeben werden"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "DATA-Element %qs bei %L kann keinen Coindex haben"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr "DATA-Element %qs bei %L ist ein Zeiger und muss daher ein vollständiges Feld sein"
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr "Das DATA-Objekt in der Nähe von %L hat das Zeiger-Attribut und der entsprechende DATA-Wert ist kein gültiges initial-data-target"
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "Das DATA-Element %qs bei %L kann kein ALLOCATABLE-Attribut haben"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "Abschnitt eines nicht konstanten Feldes bei %L in DATA-Anweisung"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "DATA-Anweisung bei %L hat mehr Variablen als Werte"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "Nichtkonstante Zeichenlänge bei %L in DATA-Anweisung"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr "Anfang der Implied-do-Schleife bei %L konnte nicht zu einem konstanten Wert vereinfacht werden"
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr "Ende der Implied-do-Schleife bei %L konnte nicht zu einem konstanten Wert vereinfacht werden"
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr "Schritt der Implied-do-Schleife bei %L konnte nicht zu einem konstanten Wert vereinfacht werden"
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "Schrittweite der implied-do-Schleife bei %L darf nicht 0 sein"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "DATA-Anweisung bei %L hat mehr Werte als Variablen"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "Marke %d bei %L definiert, aber nicht verwendet"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "Marke %d bei %L definiert, kann aber nicht verwendet werden"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "Variable %qs abgeleiteten Typs bei %L muss SEQUENCE-Attribut haben, um EQUIVALENCE-Objekt zu sein"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "Variable %qs abgeleiteten Typs bei %L kann keine ALLOCATABLE-Komponenten haben, um EQUIVALENCE-Objekt zu sein"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "Variable %qs abgeleiteten Typs bei %L mit Standardinitialisierung kann nicht in EQUIVALENCE mit einer Variablen in COMMON sein"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "Variable %qs abgeleiteten Typs bei %L mit Zeigerkomponenten kann kein EQUIVALENCE-Objekt sein"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "Syntaxfehler in EQUIVALENCE-Anweisung bei %L"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr "Entweder alle oder keines der Objekte in bei %L gesetztem EQUIVALENCE muss das Attribut PROTECTED haben"
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "COMMON-Blockelement %qs bei %L darf in der PURE-Prozedur %qs kein EQUIVALENCE-Objekt sein"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Benannte Konstante %qs bei %L kann kein EQUIVALENCE-Objekt sein"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "Feld %qs bei %L mit nicht-konstanten Grenzen kann kein EQUIVALENCE-Objekt sein"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Strukturkomponente %qs bei %L kann kein EQUIVALENCE-Objekt sein"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "Teilzeichenkette bei %L hat Länge Null"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "Selbstreferenz im Zeichenlängenausdruck für %qs bei %L"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "PUBLIC-Funktion %qs bei %L mit PRIVATE-Typ %qs"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "ENTRY %qs bei %L hat keinen IMPLICIT-Typ"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "Prozedur für Benutzeroperator %qs bei %L muss eine FUNCTION sein"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "Prozedur für Benutzeroperator %qs bei %L kann nicht vermutete Zeichenlänge haben"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "Prozedur für Benutzeroperator %qs bei %L muss mindestens ein Argument haben"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "Erstes Argument der Operatorschnittstelle bei %L kann nicht optional sein"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "Zweites Argument der Operatorschnittstelle bei %L kann nicht optional sein"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "Operatorschnittstelle bei %L darf höchstens zwei Argumente haben"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr "Enthaltene Prozedur %qs bei %L einer PURE-Prozedur muss auch PURE sein"
@@ -80985,128 +81033,128 @@ msgstr "Implizit deklarierte Variable %qs bei %L könnte nicht C-kompatibel sein
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "Funktionsergebnis %qs bei %L hat keinen IMPLICIT-Typ"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "Attribut %s steht mit Attribut %s bei %L in Konflikt"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "Attribut %s steht mit Attribut %s in %qs bei %L in Konflikt"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "Attribut %s ungültig in BLOCK DATA - Programmeinheit bei %L"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "Name der Namenslisten-Gruppe bei %L kann kein SAVE-Attribut haben"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "Interne Prozedur %qs bei %L steht in Konflikt mit DUMMY-Argument"
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "Prozedur-Zeiger bei %C"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "Attribut %s auf %s %s bei %L angewendet"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "BIND(C) auf %s %s bei %L angewendet"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "Attribut %s steht mit Attribut %s bei %L in Konflikt"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "Attribut %s steht mit Attribut %s in %qs bei %L in Konflikt"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "Attribute des USE-verbundenen Symbols bei %L können nicht verändert werden"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "Attribute des USE-verbundenen Symbols %s bei %L können nicht verändert werden"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "Attribut %s doppelt angegeben bei %L"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr "ALLOCATABLE außerhalb des INTERFACE-Körpers bei %L angegeben"
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "Doppeltes AUTOMATIC-Attribut bei %L angegeben"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "CODIMENSION für %qs außerhalb seines INTERFACE-Körpers bei %L angegeben"
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "DIMENSION für %qs außerhalb seines INTERFACE-Körpers bei %L angegeben"
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "Cray-Zeigerende bei %L tritt in mehreren pointer()-Anweisungen auf"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "Doppeltes PROTECTED-Attribut bei %L angegeben"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "SAVE-Attribut bei %L kann nicht in einer PURE-Prozedur angegeben werden"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "SAVE-Attribut doppelt angegeben bei %L"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "Doppeltes VALUE-Attribut bei %L angegeben"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "Doppeltes VOLATILE-Attribut bei %L angegeben"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "VOLATILE-Attribut bei %L darf nicht in einer PURE-Prozedur angegeben werden"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "Doppeltes ASYNCHRONOUS-Attribut bei %L angegeben"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "Attribut %s von %qs steht mit Attribut %s bei %L in Konflikt"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80012
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
@@ -81115,204 +81163,204 @@ msgstr ""
 "%s-Prozedur bei %L ist bereits als %s-Prozedur deklariert.\n"
 "F2008: Eine Zuweisung an eine Zeigerfunktion ist mehrdeutig, wenn dies die erste Anweisung nach dem Spezifikationsblock ist. Bitte fügen Sie davor irgend eine andere ausführbare Anweisung ein. FIXME (steht so im englischen Original.)"
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "Prozedur %s bei %L ist bereits als Prozedur %s deklariert"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "INTENT(%s) steht mit INTENT(%s) bei %L in Konflikt"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "ACCESS-Spezifikation bei %L wurde bereits spezifiziert"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "Doppeltes BIND-Attribut bei %L angegeben"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr "BIND(C) bei %L"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "Doppeltes EXTENDS-Attribut bei %L angegeben"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr "EXTENDS bei %L"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "Symbol %qs bei %L hat bereits eine explizite Schnittstelle"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr "%qs bei %L hat außerhalb seines INTERFACE-Körpers spezifizierte Attribute"
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr "Symbol %qs bei %L steht mit Symbol aus Modul %qs in Konflikt, verbunden durch Verwendung bei %L"
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "Symbol %qs bei %L hat bereits grundlegenden Typen %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "Prozedur %qs bei %L kann nicht grundlegenden Typen %s haben"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "Symbol %qs bei %L kann keinen Typen haben"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "Komponente %qs bei %C bereits im Elterntypen bei %L deklariert"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "Symbol %qs bei %C ist mehrdeutig"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "Abgeleiteter Typ %qs bei %C wird verwendet, bevor er definiert wird"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "Komponente %qs bei %C ist eine PRIVATE-Komponente von %qs"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "%qs bei %C ist kein Element der Struktur %qs; meinen Sie %qs?"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "%qs bei %C ist kein Element der Struktur %qs"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "Doppelte Anweisungsmarke %d bei %L und %L"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "Marke %d bei %C bereits als Sprungziel referenziert"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "Marke %d bei %C bereits als eine Formatmarke referenziert"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr "DO-Abbruchanweisung ist nicht »END DO« oder »CONTINUE« mit Marke %d bei %C"
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "Marke %d bei %C vorher als FORMAT-Marke verwendet"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "Marke %d bei %C vorher als Sprungziel verwendet"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr "Gemeinsam genutzte DO-Abbruchmarke %d bei %C"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr "DO-Anweisung mit Label bei %L"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "Name %qs bei %C ist eine mehrdeutige Referenz auf %qs vom Modul %qs"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "Name %qs bei %C ist eine mehrdeutige Referenz auf %qs von aktueller Programmeinheit"
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "Symbol %qs bei %C wurde bereits mit Host verbunden"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79596
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "Abgeleiteter Typ %qs, bei %L deklariert, muss BIND-Attribut haben, um C-kompatibel zu sein"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr "Abgeleiteter Typ %qs mit Attribut BIND(C) bei %L ist leer und könnte für entsprechenden C-Prozessor unzugreifbar sein"
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Komponente %qs bei %L kann nicht POINTER-Attribut haben, da es Element des BIND(C)-abgeleiteten Typs %qs bei %L ist"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "Komponente %qs des Prozedurzeigers bei %L kann kein Element des BIND(C)-abgeleiteten Typs %qs bei %L sein"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Komponente %qs bei %L kann nicht ALLOCATABLE-Attribut haben, da es Element des BIND(C)-abgeleiteten Typs %qs bei %L ist"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr "Komponente %qs in abgeleitetem Typ %qs bei %L könnte nicht C-kompatibel sein, obwohl abgeleiteter Typ %qs BIND(C) ist"
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "Komponente %qs in abgeleitetem Typ %qs bei %L könnte nicht C-kompatibel sein"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "Abgeleiteter Typ %qs bei %L kann nicht das SEQUENCE-Attribut haben, da er BIND(C) ist"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr "Symbol %qs wird bei %L verwendet, bevor es typisiert wird"
@@ -81342,24 +81390,24 @@ msgstr "Überlappende ungleiche Initialisierungen in EQUIVALENCE bei %L"
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "Überlappende ungleiche Initialisierungen in EQUIVALENCE bei %C"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr "Der Strukturkonstruktor bei %C wurde finalisiert. Dieses Feature wurde von f08/0011 entfernt. Verwenden Sie -std=f2018 oder -std=gnu, um die Finalisierung zu entfernen."
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr "Die Anzahl der Elemente im Feldkonstruktor bei %L erfordert Erhöhung der erlaubten oberen Grenze %d. Siehe Option %<-fmax-array-constructor%>"
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "Bei %L wird ein vorübergehendes Feld für Argument %qs erzeugt"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "Falscher Ausdruckstyp beim Durchlaufen (%d)"
@@ -81547,37 +81595,37 @@ msgstr "Rückgabewert %1$qs der bei %3$L deklarierten Funktion %2$qs nicht geset
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr "Entschuldigung, !$ACC DECLARE bei %L ist in einem BLOCK-Konstrukt nicht erlaubt"
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr "Länge des Arrays bei %L kann nicht berechnet werden."
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr "Code zur Neu-Reservierung der reservierbaren Variable bei %L wird hinzugefügt"
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr "Sorry, der koindizierte Zugriff bei %L auf ein unbegrenzt polymorphes Objekt wird nicht unterstützt"
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr "Sorry, der koindizierte Zugriff bei %L auf eine unbegrenzt polymorphe Komponente wird nicht unterstützt"
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "Unbekannte eingebauter Operator"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Unbekannte Argumentlistenfunktion bei %L"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr "Wenn die Neuzuordnung von Grenzen bei %L angegeben wird, darf das Zeigerziel nicht NULL sein"
@@ -81588,17 +81636,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "Intrinsische Funktion %qs (%d) nicht erkannt"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "Argument %<dim%> des intrinsischen »%s« bei %L ist kein gültiger Dimensionsindex"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr "Sorry, die Event-Komponente des abgeleiteten Typs bei %L wird noch nicht unterstützt"
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr "Event-Variable bei %L darf nicht koindiziert sein"
@@ -81740,7 +81788,7 @@ msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr "Entschuldigung; für Image-Set bei %2$L ist nur Unterstützung für Ganzzahl-Art %1$d implementiert"
 
 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79596
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr "gfc_trans_select(): Bad type for case expr."
@@ -82109,6 +82157,11 @@ msgstr "Variable %qD als Funktion redeklariert"
 msgid "function %qD redeclared as variable"
 msgstr "Funktion %qD als Variable redeklariert"
 
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "vorher hier deklariert"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -83347,7 +83400,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr "%<-fobjc-sjlj-exceptions%> wird für %<-fgnu-runtime%> ignoriert"
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr "Nicht-Objective-C-Typ %qT kann nicht aufgefangen werden"
@@ -83357,7 +83410,7 @@ msgstr "Nicht-Objective-C-Typ %qT kann nicht aufgefangen werden"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr "%<-fobjc-sjlj-exceptions%> ist das einzige unterstützte Ausnahmesystem für %<-fnext-runtime%> mit %<-fobjc-abi-version%>-Argument kleiner 2"
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr "%<-fobjc-sjlj-exceptions%> wird für %<-fnext-runtime%> ignoriert, wenn %<-fobjc-abi-version%> größer als 1 ist"
@@ -83427,3 +83480,11 @@ msgstr "unverwendeter Name %qE"
 #, gcc-internal-format, gfc-internal-format
 msgid "are you trying to break %s? how dare you?"
 msgstr "Wert »%s« kann in diesem Bereich nicht gefunden werden"
+
+#, gcc-internal-format
+#~ msgid "cannot declare %qD in a different module"
+#~ msgstr "%qD kann nicht in einem anderen Modul deklariert sein"
+
+#, gcc-internal-format
+#~ msgid "cannot declare %qD in different module"
+#~ msgstr "%qD kann nicht in einem anderen Modul deklariert sein"
diff --git a/gcc/po/el.po b/gcc/po/el.po
index 29bd89a2fa3..069f83a3cbd 100644
--- a/gcc/po/el.po
+++ b/gcc/po/el.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 4.0-b20041128\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2004-12-15 18:53+0000\n"
 "Last-Translator: Simos Xenitellis <simos74@gmx.net>\n"
 "Language-Team: Greek <nls@tux.hellug.gr>\n"
@@ -422,7 +422,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "δεν είναι δυνατό να παραληφθεί ο χρήστης και η ομάδα"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr ""
 
@@ -19302,16 +19302,16 @@ msgstr "Μη αναγνωρίσιμη μεταβλητή `%s'"
 msgid "insn does not satisfy its constraints:"
 msgstr ""
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr ""
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 msgid "created and used with different settings of %<-fpic%>"
 msgstr ""
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 msgid "created and used with different settings of %<-fpie%>"
 msgstr ""
 
@@ -19638,7 +19638,7 @@ msgstr ""
 msgid "<command-line>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "Μη έγκυρη επιλογή `%s'"
@@ -19657,9 +19657,9 @@ msgstr "Μη έγκυρη επιλογή `%s'"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 msgid "invalid vector constant"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
@@ -19679,7 +19679,7 @@ msgstr "RPC: Μη συμβατές εκδόσεις του RPC"
 msgid "incompatible register operand for '%%%c'"
 msgstr "RPC: Μη συμβατές εκδόσεις του RPC"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, fuzzy, c-format
 msgid "missing operand"
 msgstr "έχει παραληφθεί η λίστα με τα πεδία"
@@ -19708,93 +19708,93 @@ msgstr "Ακατάλληλη χρήση του διαμορφωτή διεύθυ
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr ""
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr ""
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, fuzzy, c-format
 msgid "invalid %%J value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, fuzzy, c-format
 msgid "invalid %%r value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, fuzzy, c-format
 msgid "invalid %%R value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, fuzzy, c-format
 msgid "invalid %%N value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, fuzzy, c-format
 msgid "invalid %%P value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, fuzzy, c-format
 msgid "invalid %%h value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, fuzzy, c-format
 msgid "invalid %%L value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, fuzzy, c-format
 msgid "invalid %%m value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, fuzzy, c-format
 msgid "invalid %%M value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, fuzzy, c-format
 msgid "invalid %%U value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, fuzzy, c-format
 msgid "invalid %%s value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, fuzzy, c-format
 msgid "invalid %%C value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, fuzzy, c-format
 msgid "invalid %%E value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, fuzzy, c-format
 msgid "unknown relocation unspec"
 msgstr "Δεν είναι δυνατόν να βρεθεί ο τύπος του επεξεργαστή."
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, fuzzy, c-format
 msgid "invalid %%xn code"
 msgstr "μη έγκυρο δικαίωμα"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, fuzzy, c-format
 msgid "invalid operand address"
 msgstr "Ακατάλληλη χρήση του διαμορφωτή διεύθυνσης"
@@ -19888,35 +19888,35 @@ msgstr "μη έγκυρη μετατόπιση UTC"
 msgid "unrecognized supposed constant"
 msgstr "άγνωστο πρόθεμα: %s"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, fuzzy, c-format
 msgid "invalid shift operand"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, fuzzy, c-format
 msgid "predicated Thumb instruction"
 msgstr "Ακατάλληλη εντολή"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, fuzzy, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, fuzzy, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -19924,124 +19924,124 @@ msgstr "Μη έγκυρη επιλογή `%s'"
 msgid "invalid operand for code '%c'"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, fuzzy, c-format
 msgid "instruction never executed"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr ""
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr ""
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr ""
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr ""
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 #, fuzzy
 msgid "bad address, not a constant:"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr ""
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr ""
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr ""
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr ""
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr ""
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 #, fuzzy
 msgid "invalid insn:"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 #, fuzzy
 msgid "incorrect insn:"
 msgstr "λάθος συνθηματικό"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 #, fuzzy
 msgid "unknown move insn:"
 msgstr "άγνωστο σετ `%s'"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr ""
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr ""
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 #, fuzzy
 msgid "unsupported fixed-point conversion"
 msgstr "Εμφάνιση έκδοσης προγράμματος"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr ""
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 #, fuzzy
 msgid "function parameter"
 msgstr "κακό όρισμα"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 #, fuzzy
 #| msgid "structure"
 msgid "structure field"
 msgstr "δομή"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 #, fuzzy
 msgid "return type of function"
 msgstr "η επιστρεφόμενη τιμή της `%s' δεν είναι `int'"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr ""
 
@@ -20077,7 +20077,7 @@ msgstr "Μη ορισμένο όνομα %s"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20430,51 +20430,51 @@ msgstr "Μη έγκυρη επιλογή `%s'"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr ""
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, fuzzy, c-format
 msgid "invalid operand code '%c'"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, fuzzy, c-format
 msgid "invalid constraints for operand"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 msgid "invalid vector immediate"
 msgstr "μη έγκυρο δικαίωμα"
 
 # src/grep.c:1133
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 #, fuzzy
 msgid "unknown insn mode"
 msgstr "άγνωστη μέθοδος καταλόγων"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -20508,7 +20508,7 @@ msgstr "Μη έγκυρος χαρακτήρας παραβολής"
 msgid "invalid %%P operand"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, fuzzy, c-format
 msgid "invalid %%p value"
 msgstr "μη έγκυρος χρήστης"
@@ -20537,29 +20537,29 @@ msgstr ""
 msgid "invalid addressing mode"
 msgstr "Ακατάλληλη χρήση του διαμορφωτή διεύθυνσης"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, fuzzy, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, fuzzy, c-format
 msgid "invalid use of '%%%c'"
 msgstr "Μη έγκυρη ημερομηνία `%s'."
@@ -20591,7 +20591,7 @@ msgid "post-increment address is not a register"
 msgstr ""
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 #, fuzzy
 msgid "bad address"
 msgstr "Εσφαλμένη διεύθυνση"
@@ -20753,7 +20753,7 @@ msgstr "Εμφάνιση έκδοσης προγράμματος"
 msgid "unsupported memory expression:"
 msgstr "Μη έγκυρη προπορευόμενη κανονική έκφραση"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 msgid "invalid vector operand"
 msgstr "μη έγκυρος χρήστης"
@@ -20802,251 +20802,251 @@ msgstr ""
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 #, fuzzy
 msgid "bad move"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 msgid "invalid %%A value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, fuzzy, c-format
 msgid "invalid %%D value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, fuzzy, c-format
 msgid "invalid %%e value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, fuzzy, c-format
 msgid "invalid %%f value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, fuzzy, c-format
 msgid "invalid %%F value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, fuzzy, c-format
 msgid "invalid %%G value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, fuzzy, c-format
 msgid "invalid %%j code"
 msgstr "μη έγκυρο δικαίωμα"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, fuzzy, c-format
 msgid "invalid %%J code"
 msgstr "μη έγκυρο δικαίωμα"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, fuzzy, c-format
 msgid "invalid %%k value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, fuzzy, c-format
 msgid "invalid %%K value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, fuzzy, c-format
 msgid "invalid %%O value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, fuzzy, c-format
 msgid "invalid %%q value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 msgid "invalid %%t value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, fuzzy, c-format
 msgid "invalid %%T value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, fuzzy, c-format
 msgid "invalid %%u value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, fuzzy, c-format
 msgid "invalid %%v value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, fuzzy, c-format
 msgid "invalid %%V value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, fuzzy, c-format
 msgid "invalid %%x value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, fuzzy, c-format
 msgid "invalid %%z value"
 msgstr "μη έγκυρος χρήστης"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, fuzzy, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "μη έγκυρη μέτρηση επανάληψης `%s' στη κατασκευή [c*n]"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 #, fuzzy
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "πολύ λίγα ορίσματα"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 #, fuzzy
 msgid "Could not generate addis value for fusion"
 msgstr "Ακατάλληλη εντολή"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 #, fuzzy
 msgid "Unable to generate load/store offset for fusion"
 msgstr "Αδύνατη η δημιουργία διεργασίας στον εξυπηρετητή"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr ""
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, fuzzy, c-format
 msgid "cannot decompose address"
 msgstr "Δεν είναι δυνατή η εκχώρηση της ζητηθήσας διεύθυνσης"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, fuzzy, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, fuzzy, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, fuzzy, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, fuzzy, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, fuzzy, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, fuzzy, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, fuzzy, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "Μη έγκυρος κώδικας αίτησης"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, fuzzy, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, fuzzy, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, fuzzy, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 msgid "vector argument passed to unprototyped function"
 msgstr "πολύ λίγα ορίσματα"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr ""
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr ""
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -21246,12 +21246,12 @@ msgstr "((ανώνυμο))"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, fuzzy, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "Μη ορισμένο όνομα %s"
@@ -21264,7 +21264,7 @@ msgstr "Μη ορισμένο όνομα %s"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21273,7 +21273,7 @@ msgstr "Μη ορισμένο όνομα %s"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, fuzzy, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "Μη ορισμένο όνομα %s"
@@ -21281,7 +21281,7 @@ msgstr "Μη ορισμένο όνομα %s"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, fuzzy, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "Μη ορισμένο όνομα %s"
@@ -21292,29 +21292,29 @@ msgstr ""
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, fuzzy, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, fuzzy, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "Μη ορισμένο όνομα %s"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, fuzzy, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "Μη ορισμένο όνομα %s"
@@ -21324,17 +21324,17 @@ msgstr "Μη ορισμένο όνομα %s"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, fuzzy, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, fuzzy, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "Μη ορισμένο όνομα %s"
@@ -21343,8 +21343,8 @@ msgstr "Μη ορισμένο όνομα %s"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, fuzzy, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "Μη ορισμένο όνομα %s"
@@ -21355,17 +21355,17 @@ msgid "expected %<.%>"
 msgstr "Μη ορισμένο όνομα %s"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, fuzzy, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, fuzzy, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr ""
@@ -21373,32 +21373,32 @@ msgstr ""
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, fuzzy, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "Μη ορισμένο όνομα %s"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, fuzzy, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 msgid "expected %<else%>"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr ""
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -21407,7 +21407,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "((ανώνυμο))"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, fuzzy, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "Μη ορισμένο όνομα %s"
@@ -21422,22 +21422,22 @@ msgstr "Μη ορισμένο όνομα %s"
 msgid "candidate:"
 msgstr ""
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 msgid "  after user-defined conversion:"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr ""
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr ""
 
@@ -21693,7 +21693,7 @@ msgstr ""
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr ""
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr ""
 
@@ -21744,49 +21744,49 @@ msgstr ""
 msgid "source type is not polymorphic"
 msgstr ""
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr ""
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr ""
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr ""
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, fuzzy, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "λάθος αριθμός ορισμάτων"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr ""
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 #, fuzzy
 msgid "in argument to unary !"
 msgstr "Λείπει παράμετρος για `%s'"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr ""
 
@@ -21865,7 +21865,7 @@ msgstr ""
 msgid "Deleted feature:"
 msgstr ""
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 #, fuzzy
 msgid "array assignment"
 msgstr "προσπέρασμα ορίσματος"
@@ -22075,12 +22075,12 @@ msgstr ""
 msgid "implied END DO"
 msgstr ""
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 #, fuzzy
 msgid "assignment"
 msgstr "προσπέρασμα ορίσματος"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 #, fuzzy
 msgid "pointer assignment"
 msgstr "προσπέρασμα ορίσματος"
@@ -22265,48 +22265,48 @@ msgstr ""
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr ""
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr ""
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 #, fuzzy
 msgid "End expression in DO loop"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr ""
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr ""
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr ""
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr ""
 
@@ -22315,11 +22315,11 @@ msgstr ""
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr ""
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -22334,12 +22334,12 @@ msgstr ""
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 #, fuzzy
 msgid "Assignment of scalar to unallocated array"
 msgstr "Η παράμετρος στο <%s> πρέπει να είναι ένας απλός χαρακτήρας"
@@ -22349,81 +22349,81 @@ msgstr "Η παράμετρος στο <%s> πρέπει να είναι ένα
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -22445,15 +22445,15 @@ msgstr ""
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr ""
 
@@ -22533,7 +22533,7 @@ msgid "expected boolean type"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, fuzzy, gcc-internal-format
 msgid "expected integer"
 msgstr "Μη ορισμένο όνομα %s"
@@ -22605,7 +22605,7 @@ msgstr "χωρίς ορίσματα"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, fuzzy, gcc-internal-format
 msgid "too many arguments"
 msgstr "πάρα πολλά ορίσματα"
@@ -23276,7 +23276,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr ""
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "syntax error at %qs token"
 msgid "Syntax error in %s statement at %C"
@@ -23719,8 +23719,8 @@ msgstr ""
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 msgid "previous declaration here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
@@ -23737,7 +23737,7 @@ msgstr "το `%s' είναι πρόγονος του `%s'"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "λάθος αριθμός ορισμάτων"
@@ -23747,7 +23747,7 @@ msgstr "λάθος αριθμός ορισμάτων"
 msgid "expected %i or more, found %i"
 msgstr ""
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "expected %i, found %i"
 msgstr "Μη ορισμένο όνομα %s"
@@ -23814,12 +23814,12 @@ msgstr ""
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -23828,7 +23828,7 @@ msgstr ""
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -23850,8 +23850,8 @@ msgstr "το `%s' είναι πρόγονος του `%s'"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
@@ -23961,7 +23961,7 @@ msgstr "δε βρέθηκε ο προεπεξεργαστής C: %s \n"
 msgid "offset %qwi outside bounds of constant string"
 msgstr ""
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 msgid "%qE declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
@@ -24066,7 +24066,7 @@ msgstr "Λείπει παράμετρος για `%s'"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
 msgstr "μη έγκυρος αριθμός από γραμμές"
@@ -24088,42 +24088,42 @@ msgstr ""
 msgid "target format does not support infinity"
 msgstr ""
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, gcc-internal-format
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr ""
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "πάρα πολλά ορίσματα"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr ""
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "πάρα πολλά ορίσματα"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr ""
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr ""
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "η τιμή για το %s πρέπει να είναι ακέραιος"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
@@ -25171,12 +25171,12 @@ msgstr ""
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, fuzzy, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr ""
@@ -25734,7 +25734,7 @@ msgstr ""
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr ""
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, gcc-internal-format
 msgid "%qs failed"
 msgstr ""
@@ -25764,17 +25764,17 @@ msgstr ""
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr ""
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr ""
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr ""
@@ -25809,7 +25809,7 @@ msgstr ""
 msgid "comparison is always %d due to width of bit-field"
 msgstr ""
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr ""
@@ -25978,7 +25978,7 @@ msgstr ""
 msgid "%s signal terminated program %s"
 msgstr "μη τερματιζόμενο όνομα βάρους"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "Μη έγκυρη επιλογή `%s'"
@@ -26240,7 +26240,7 @@ msgstr "έχουν παραληφθεί ορίσματα"
 msgid "multilib exclusions %qs is invalid"
 msgstr "έχουν παραληφθεί ορίσματα"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, fuzzy, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "έχουν παραληφθεί ορίσματα"
@@ -26543,22 +26543,22 @@ msgstr ""
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr ""
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr ""
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
@@ -26599,16 +26599,16 @@ msgid "function returns address of local variable"
 msgstr ""
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, fuzzy, gcc-internal-format
@@ -26620,366 +26620,366 @@ msgstr "Δεν υπάρχει προηγούμενη κανονική έκφρα
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, gcc-internal-format
 msgid "null destination pointer"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 msgid "null format string"
 msgstr "Η αλυσίδα μορφής δεν είναι έγκυρη: `%s'"
@@ -27719,12 +27719,12 @@ msgstr "Μη έγκυρη επιλογή `%s'"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, fuzzy, gcc-internal-format
 msgid "%qD declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
@@ -28489,7 +28489,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
@@ -28833,17 +28833,17 @@ msgstr ""
 msgid "mismatching definition"
 msgstr "έχει παραληφθεί το αρχείο προορισμού"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, fuzzy, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr "μη έγκυρο όνομα μήνα"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -29911,72 +29911,72 @@ msgstr "σφάλμα εγγραφής %s"
 msgid "error closing optimization records %qs"
 msgstr "Το βήμα αρχικοποίησης απέτυχε"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "Η οικογένεια διευθύνσεων δεν υποστηρίζεται από την οικογένεια πρωτοκόλλου"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, fuzzy, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "Λείπει παράμετρος για `%s'"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "το πρώτο όρισμα της `%s' πρέπει να είναι `int'"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "το πρώτο όρισμα της `%s' πρέπει να είναι `int'"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "%s: οι τιμές του πεδίου `%s' δεν πρέπει να είναι μεγαλύτερες από %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 msgid "invalid argument in option %qs"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr ""
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, fuzzy, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, fuzzy, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is bigger than %d"
 msgstr "%s: οι τιμές του πεδίου `%s' δεν πρέπει να είναι μεγαλύτερες από %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr ""
@@ -30052,8 +30052,8 @@ msgstr "το πρώτο όρισμα της `%s' πρέπει να είναι `i
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, fuzzy, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "μη έγκυρο δικαίωμα"
@@ -30766,7 +30766,7 @@ msgstr ""
 msgid "register of %qD used for multiple global register variables"
 msgstr ""
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, fuzzy, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
@@ -31216,42 +31216,42 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, fuzzy, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, fuzzy, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "το --no-dereference (-h) δεν υποστηρίζεται σε αυτό το σύστημα"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, fuzzy, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, fuzzy, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "προειδοποίηση: το --pid=PID δεν υποστηρίζεται σε αυτό το σύστημα"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
@@ -32364,82 +32364,82 @@ msgstr ""
 msgid "BB %i has incorrect fallthru edge"
 msgstr ""
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr ""
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr ""
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr ""
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr ""
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr ""
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr ""
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr ""
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr ""
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr ""
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr ""
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr ""
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr ""
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr ""
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr ""
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 msgid "called from this function"
 msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr ""
@@ -32494,28 +32494,28 @@ msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
 msgid "in a call to built-in function %qD"
 msgstr "κλήση σε μη-συνάρτηση %qD"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "Στη συνάρτηση μέλος `%s':"
@@ -32719,7 +32719,7 @@ msgstr "έχουν παραληφθεί ορίσματα"
 msgid "%qs may be used uninitialized"
 msgstr ""
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, fuzzy, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
@@ -32949,7 +32949,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -32964,122 +32964,122 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr ""
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr ""
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, fuzzy, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, fuzzy, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, fuzzy, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, fuzzy, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr ""
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 msgid "%qD is unavailable: %s"
 msgstr "το `%s' είναι μη-προσπελάσιμο"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 msgid "%qD is unavailable"
 msgstr "το `%s' είναι μη-προσπελάσιμο"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, gcc-internal-format
 msgid "%qE is unavailable: %s"
 msgstr ""
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 msgid "%qE is unavailable"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr ""
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, gcc-internal-format
 msgid "type is unavailable"
 msgstr ""
@@ -33104,262 +33104,262 @@ msgstr ""
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr ""
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr ""
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type %s is not an opaque type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type %s is not with opaque mode"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 msgid "main variant is not defined"
 msgstr "μη τερματιζόμενο όνομα βάρους"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "Ο κατάλογος `%s' δεν είναι προσιτός."
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr ""
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -33574,7 +33574,7 @@ msgstr "Η οικογένεια διευθύνσεων δεν υποστηρίζ
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "Η οικογένεια διευθύνσεων δεν υποστηρίζεται από την οικογένεια πρωτοκόλλου"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -33776,7 +33776,7 @@ msgstr "το `%s' είναι πρόγονος του `%s'"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr ""
@@ -33958,7 +33958,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
@@ -34273,7 +34273,7 @@ msgstr "δεν είστε μέλος της ομάδας `%s'"
 msgid "%qE argument is not a function"
 msgstr "πάρα πολλά ορίσματα"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, fuzzy, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
@@ -34779,7 +34779,7 @@ msgstr ""
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr ""
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "μη έγκυρος αριθμός αρχείου στη δήλωση πεδίου: `%s'"
@@ -34910,17 +34910,17 @@ msgstr ""
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr ""
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "πολύ λίγα ορίσματα"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, fuzzy, gcc-internal-format
@@ -35044,166 +35044,166 @@ msgstr "δεν είναι δυνατό να δημιουργηθεί το αρχ
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, fuzzy, gcc-internal-format
 msgid "size of array is too large"
 msgstr "Ο κατάλογος `%s' δεν είναι προσιτός."
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, fuzzy, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "%s μετατρέπει ακέραιο σε δείκτη χωρίς μετατροπέα"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr "Η παράμετρος στο <%s> πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "πολύ λίγα ορίσματα"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "μη πλήρης εγγραφή"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "Η παράμετρος στο <%s> πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "%s μετατρέπει ακέραιο σε δείκτη χωρίς μετατροπέα"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "%s μετατρέπει ακέραιο σε δείκτη χωρίς μετατροπέα"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "Λείπει παράμετρος για `%s'"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "%s μετατρέπει ακέραιο σε δείκτη χωρίς μετατροπέα"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "Η παράμετρος στο <%s> πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr ""
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, fuzzy, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, fuzzy, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, fuzzy, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "Η παράμετρος κινητής υποδιαστολής δεν είναι έγκυρη: %s"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, fuzzy, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr ""
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 msgid "size of array %qE is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 msgid "size of array is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array %qE is negative"
 msgstr "Ο κατάλογος `%s' δεν είναι προσιτός."
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array is negative"
 msgstr "Ο κατάλογος `%s' δεν είναι προσιτός."
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "Ο κατάλογος `%s' δεν είναι προσιτός."
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -35827,7 +35827,7 @@ msgstr "%s: το %s είναι τόσο μεγάλο που δε μπορεί ν
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "%s: το %s είναι τόσο μεγάλο που δε μπορεί να αναπαρασταθεί"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
@@ -35907,7 +35907,7 @@ msgstr "μη τερματιζμένο αλφαριθμητικό σταθερά
 msgid "traditional C rejects string constant concatenation"
 msgstr ""
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -35962,7 +35962,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr ""
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, fuzzy, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
@@ -35977,17 +35977,17 @@ msgstr ""
 msgid "%qE is not initialized"
 msgstr "έχει παραληφθεί το αρχείο προορισμού"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, fuzzy, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "Η λειτουργία δεν επιτρέπεται"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, fuzzy, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "μη έγκυρο όνομα μήνα"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, fuzzy, gcc-internal-format
 msgid "missing increment expression"
 msgstr "παράληψη ορίσματος αρχείου"
@@ -35997,7 +35997,7 @@ msgstr "παράληψη ορίσματος αρχείου"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, fuzzy, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "Μη έγκυρη κανονική έκφραση"
@@ -36082,7 +36082,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -36092,7 +36092,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr ""
@@ -36689,7 +36689,7 @@ msgid "wrong type argument to %s"
 msgstr "λάθος αριθμός ορισμάτων"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -37620,35 +37620,35 @@ msgstr ""
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -37859,117 +37859,117 @@ msgstr ""
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -38371,12 +38371,12 @@ msgstr ""
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr ""
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr ""
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr ""
@@ -38940,7 +38940,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -39016,12 +39016,12 @@ msgid "unknown tuning option (%s)"
 msgstr "άγνωστο σετ `%s'"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -39032,7 +39032,7 @@ msgid "specify a system register with a small string length"
 msgstr "Αποτυχία δέσμευσης πόρων συστήματος"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
@@ -39214,9 +39214,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
@@ -39268,18 +39268,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "ειδικά αρχεία μπλοκ δεν υποστηρίζονται"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -39292,8 +39292,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr "%s: αριθμός γραμμής έξω από τα όρια"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 msgid "unsupported simdlen %wd"
 msgstr "Εμφάνιση έκδοσης προγράμματος"
@@ -39303,7 +39303,7 @@ msgstr "Εμφάνιση έκδοσης προγράμματος"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr ""
@@ -39313,7 +39313,7 @@ msgstr ""
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
@@ -39403,8 +39403,8 @@ msgstr ""
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "Ακατάλληλη τιμή στο ai_flags"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr ""
@@ -39526,18 +39526,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -39651,7 +39651,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
@@ -39671,23 +39671,23 @@ msgstr "προειδοποίηση: το --pid=PID δεν υποστηρίζετ
 msgid "argument of %qE attribute ignored"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "προειδοποίηση: το --pid=PID δεν υποστηρίζεται σε αυτό το σύστημα"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr ""
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr ""
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr "Η παράμετρος κινητής υποδιαστολής δεν είναι έγκυρη: %s"
@@ -39929,7 +39929,7 @@ msgstr ""
 msgid "target CPU does not support unaligned accesses"
 msgstr "μη έγκυρη ώρα της μέρας"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, gcc-internal-format
 msgid "This architecture does not support branch protection instructions"
 msgstr ""
@@ -39979,7 +39979,7 @@ msgstr ""
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr ""
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
@@ -40087,7 +40087,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -40127,42 +40127,42 @@ msgstr ""
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr ""
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr ""
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr ""
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr ""
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr ""
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
@@ -40170,22 +40170,22 @@ msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, fuzzy, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr "άγνωστος χαρακτήρας `%s'"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
@@ -40239,160 +40239,160 @@ msgstr ""
 msgid "unknown core architecture %qs specified with %qs"
 msgstr ""
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fpic%> is not supported"
 msgstr "το -pipe δεν υποστηρίζεται"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
 msgstr "Το ai_family δεν υποστηρίζεται"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fpie%> is not supported"
 msgstr "το -pipe δεν υποστηρίζεται"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr "Το ai_family δεν υποστηρίζεται"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "οι επιλογές --string και --check είναι αμοιβαίως αποκλειόμενες"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "`return' χωρίς τιμή, σε συνάρτηση που επιστρέφει μη-κενό"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr ""
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr ""
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr ""
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr ""
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "προειδοποίηση: το --pid=PID δεν υποστηρίζεται σε αυτό το σύστημα"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr ""
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr ""
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr ""
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr ""
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr ""
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr ""
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr ""
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr ""
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "μη πλήρης εγγραφή"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr ""
@@ -40401,42 +40401,42 @@ msgstr ""
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr ""
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, fuzzy, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "μη έγκυρο δικαίωμα"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, fuzzy, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "Το servname δεν υποστηρίζεται από το ai_socktype"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr ""
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -40575,7 +40575,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr ""
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, fuzzy, gcc-internal-format
@@ -41196,8 +41196,8 @@ msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένα
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
@@ -41263,255 +41263,255 @@ msgstr "πάρα πολλά ορίσματα"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, fuzzy, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr ""
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr ""
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, fuzzy, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "Το ai_family δεν υποστηρίζεται"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "Η οικογένεια διευθύνσεων δεν υποστηρίζεται από την οικογένεια πρωτοκόλλου"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "%s: η υποστήριξη εκσφαλμάτωσης δεν έχει συμπεριληφθεί στη μεταγλώττιση.\n"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr ""
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "Ακατάλληλη τιμή στο ai_flags"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "Ακατάλληλη τιμή στο ai_flags"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "Ακατάλληλη τιμή στο ai_flags"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, gcc-internal-format
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr ""
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr ""
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -41519,290 +41519,290 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "το --no-dereference (-h) δεν υποστηρίζεται σε αυτό το σύστημα"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr ""
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr ""
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr ""
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr ""
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr ""
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "Άγνωστη επιλογή: %s %s %s"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "%s: οι τιμές του πεδίου `%s' δεν πρέπει να είναι μεγαλύτερες από %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, fuzzy, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "μη έγκυρο δικαίωμα"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr ""
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr ""
@@ -41993,46 +41993,46 @@ msgstr ""
 msgid "non-integer operand used with operand code %<z%>"
 msgstr ""
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, gcc-internal-format
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr ""
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, fuzzy, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "ειδικά αρχεία μπλοκ δεν υποστηρίζονται"
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr ""
@@ -42054,8 +42054,8 @@ msgstr ""
 msgid "malformed %<#pragma builtin%>"
 msgstr "κακοσχηματισμένος μετρητής επανάληψης"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, fuzzy, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
@@ -42110,12 +42110,12 @@ msgstr ""
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr ""
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "Η παράμετρος στο <%s> πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
@@ -42241,17 +42241,17 @@ msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζοντ
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, gcc-internal-format
 msgid "multiple %qE attribute"
 msgstr ""
@@ -42352,12 +42352,12 @@ msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζοντ
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr ""
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, fuzzy, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "ειδικά αρχεία μπλοκ δεν υποστηρίζονται"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not supported on this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
@@ -42399,7 +42399,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr ""
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
@@ -42439,132 +42439,132 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, fuzzy, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "αδυναμία εκτέλεσης ioctl στο `%s'"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr ""
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr ""
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "Η λειτουργία δεν υποστηρίζεται"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, fuzzy, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr ""
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr ""
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "Εμφάνιση έκδοσης προγράμματος"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr ""
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "Χρήση ABI 32-bit"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "Χρήση ABI 64-bit"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "Χρήση ABI 32-bit"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "Το servname δεν υποστηρίζεται από το ai_socktype"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr ""
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr ""
@@ -42574,117 +42574,117 @@ msgstr ""
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "Το servname δεν υποστηρίζεται από το ai_socktype"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr ""
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, fuzzy, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr "Εμφάνιση έκδοσης προγράμματος"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr "Εμφάνιση έκδοσης προγράμματος"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "Το servname δεν υποστηρίζεται από το ai_socktype"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr ""
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "Το servname δεν υποστηρίζεται από το ai_socktype"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr ""
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "Το servname δεν υποστηρίζεται από το ai_socktype"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, fuzzy, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "Ακατάλληλη εντολή"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "Το servname δεν υποστηρίζεται από το ai_socktype"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr ""
@@ -43557,57 +43557,57 @@ msgstr ""
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target()%> attribute"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
@@ -43667,173 +43667,193 @@ msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s
 msgid "capture by copy of RVV type %qT"
 msgstr ""
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr ""
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function call to %qE with empty arguments"
 msgstr "δεν ταιριάζει συνάρτηση για την κλήση στο %<%T::%s(%A)%#V%>"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "πάρα πολλές δηλώσεις μετατροπής στην κατάληξη"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr ""
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 msgid "%qs requires an integer constant"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr ""
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 msgid "code model %qs with %qs"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr ""
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr ""
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -44083,32 +44103,32 @@ msgstr ""
 msgid "builtin %qs only accepts 3 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "%s μετατρέπει ακέραιο σε δείκτη χωρίς μετατροπέα"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 msgid "%qs is not supported in this compiler configuration"
 msgstr "Η οικογένεια διευθύνσεων δεν υποστηρίζεται από την οικογένεια πρωτοκόλλου"
@@ -44148,30 +44168,23 @@ msgstr "Μη έγκυρη επιλογή `%s'"
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr ""
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr ""
-
 # src/shred.c:1134
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, fuzzy, gcc-internal-format
 msgid "stack frame too large"
 msgstr "%s: το αρχείο είναι πολύ μεγάλο"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr ""
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr "Δεν είναι δυνατή η καταχώρηση της υπηρεσίας"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr ""
@@ -44296,107 +44309,117 @@ msgstr ""
 msgid "unknown option for %<%s=%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, gcc-internal-format
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "Μη έγκυρη προτεραιότητα `%s'"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, fuzzy, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "ειδικά αρχεία μπλοκ δεν υποστηρίζονται"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr ""
@@ -44442,7 +44465,7 @@ msgstr ""
 msgid "builtin %qs can only be used on vector types"
 msgstr ""
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr ""
@@ -44513,225 +44536,225 @@ msgstr "το `%s' δεν είναι κανονικό αρχείο"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "Ο αριθμός σύνδεσμου είναι έξω από το όριο"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "έχουν παραληφθεί ορίσματα"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "Ο αριθμός σύνδεσμου είναι έξω από το όριο"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "Ο αριθμός σύνδεσμου είναι έξω από το όριο"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr ""
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, gcc-internal-format
 msgid "bad builtin icode"
 msgstr ""
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr ""
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "Το όνομα `%s' είναι άγνωστο\n"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr ""
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, gcc-internal-format
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr ""
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr ""
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr ""
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "Ακατάλληλη εντολή"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, gcc-internal-format
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr ""
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr ""
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr ""
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, fuzzy, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "%s: ο αριθμός γραμμής πρέπει να είναι μεγαλύτερος από το μηδέν"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr ""
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr ""
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "το πρώτο όρισμα της `%s' πρέπει να είναι `int'"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "%s: οι τιμές του πεδίου `%s' δεν πρέπει να είναι μεγαλύτερες από %d"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr ""
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 msgid "invalid cc output constraint: %qs"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 msgid "multiple cc output constraints not supported"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr ""
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr "Μη έγκυρος κώδικας αίτησης"
@@ -45157,8 +45180,8 @@ msgstr "%s σε %s"
 msgid "attribute %qs applies to array types only"
 msgstr "προειδοποίηση: το --pid=PID δεν υποστηρίζεται σε αυτό το σύστημα"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr ""
@@ -45233,7 +45256,7 @@ msgstr ""
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr ""
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, fuzzy, gcc-internal-format
 msgid "originally defined here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
@@ -45465,7 +45488,7 @@ msgstr "αυτός είναι ο πρώτος ορισμός"
 msgid "declaration of %qD shadows a parameter"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr ""
@@ -45475,7 +45498,7 @@ msgstr ""
 msgid "declaration of %qD shadows a previous local"
 msgstr ""
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, fuzzy, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
@@ -45541,7 +45564,7 @@ msgstr "%qE δεν έχει διακυρηχθεί (πρώτη χρήση στη
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr ""
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr ""
@@ -45577,7 +45600,7 @@ msgstr "Πρόωρο τέλος της κανονικής έκφρασης"
 msgid "duplicate label declaration %qE"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, fuzzy, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "διπλό κλειδί"
@@ -45612,7 +45635,7 @@ msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 msgid "%qE defined as wrong kind of tag"
 msgstr ""
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr ""
@@ -45754,12 +45777,12 @@ msgstr ""
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr ""
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, gcc-internal-format
 msgid "%<omp::%s%> not allowed to be specified in this context"
 msgstr ""
@@ -45769,7 +45792,7 @@ msgstr ""
 msgid "%q+D is usually a function"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, fuzzy, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
@@ -45846,7 +45869,7 @@ msgstr ""
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "μη αρχικοποιημένη σταθερά const %qD"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -46032,7 +46055,7 @@ msgstr "Εγγραφή ονομάτων των επιλεγμένων λέξεω
 msgid "storage class specified for unnamed parameter"
 msgstr "Εγγραφή ονομάτων των επιλεγμένων λέξεων-κλειδιών"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr ""
@@ -46095,7 +46118,7 @@ msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 msgid "declaration of type name as array of functions"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, fuzzy, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "μη έγκυρη ώρα της μέρας"
@@ -46201,7 +46224,7 @@ msgstr "%s: διπλός ορισμός έκδοσης κατηγορίας"
 msgid "function definition has qualified void return type"
 msgstr "μη έγκυρος αριθμός αρχείου στη δήλωση πεδίου: `%s'"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr ""
@@ -46328,7 +46351,7 @@ msgstr ""
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr ""
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, fuzzy, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
@@ -46433,7 +46456,7 @@ msgstr ""
 msgid "object with variably modified type must have no linkage"
 msgstr ""
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr ""
@@ -46523,17 +46546,17 @@ msgstr "αδυναμία ανοίγματος αρχείου ορισμού loca
 msgid "nested redefinition of %<struct %E%>"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr ""
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, gcc-internal-format
 msgid "%qT defined in underspecified object initializer"
 msgstr ""
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr ""
@@ -46563,598 +46586,598 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, fuzzy, gcc-internal-format
 msgid "union has no named members"
 msgstr "επώνυμα μέλη"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, fuzzy, gcc-internal-format
 msgid "union has no members"
 msgstr "επώνυμα μέλη"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, fuzzy, gcc-internal-format
 msgid "struct has no named members"
 msgstr "επώνυμα μέλη"
 
 # src/request.c:37
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, fuzzy, gcc-internal-format
 msgid "struct has no members"
 msgstr "%s σε %s"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "μη έγκυρη ώρα της μέρας"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, fuzzy, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "μη έγκυρη ώρα της μέρας"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "μη έγκυρη ώρα της μέρας"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, gcc-internal-format
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr ""
 
 # src/shred.c:1134
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, fuzzy, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "%s: το αρχείο είναι πολύ μεγάλο"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr ""
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr ""
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr ""
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 msgid "redefinition of struct or union %qT"
 msgstr "κανένας ορισμός του `UNDEFINED'"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, fuzzy, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr ""
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr ""
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 msgid "enumeration values exceed range of %qs"
 msgstr "σχετική θέση αρχείου είναι εκτός ορίων"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 msgid "conflicting redefinition of enum %qT"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr ""
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, gcc-internal-format
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr ""
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr ""
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, fuzzy, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "ο επιστρεφόμενος τύπος προκαθορίζεται σε `int'"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr ""
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, fuzzy, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "διατήρηση ωρών στο %s"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, fuzzy, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "αυτή είναι η θέση του πρώτου ορισμού"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, fuzzy, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "αυτή είναι η θέση του πρώτου ορισμού"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, fuzzy, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "η επιστρεφόμενη τιμή της `%s' δεν είναι `int'"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr ""
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, fuzzy, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr ""
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr ""
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr ""
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, fuzzy, gcc-internal-format
 msgid "old-style function definition"
 msgstr "Μη έγκυρη ανταλλαγή"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, fuzzy, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "Ελλιπής ή κακοσχηματισμένη ιδιότητα"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, fuzzy, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, fuzzy, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "ο επιστρεφόμενος τύπος προκαθορίζεται σε `int'"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "μη πλήρης εγγραφή"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, fuzzy, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, fuzzy, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "λάθος αριθμός ορισμάτων"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, fuzzy, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "λάθος αριθμός ορισμάτων"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, fuzzy, gcc-internal-format
 msgid "prototype declaration"
 msgstr "κενό αλφαριθμητικό"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, fuzzy, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "λάθος αριθμός ορισμάτων"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, fuzzy, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "λάθος αριθμός ορισμάτων"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, fuzzy, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "`return' χωρίς τιμή, σε συνάρτηση που επιστρέφει μη-κενό"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "έχουν παραληφθεί ορίσματα"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr ""
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr ""
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, fuzzy, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr ""
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr ""
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr "σφάλμα εγγραφής %s"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr ""
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr ""
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr ""
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "διπλό κλειδί"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, fuzzy, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr ""
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, fuzzy, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "σφάλμα εγγραφής %s"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr ""
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr ""
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr ""
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, fuzzy, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr ""
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr ""
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr ""
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr ""
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr ""
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr ""
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr ""
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr ""
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr ""
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr ""
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr ""
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr ""
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr ""
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr ""
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr ""
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr ""
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr ""
@@ -47184,7 +47207,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr ""
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, fuzzy, gcc-internal-format
 msgid "expected end of line"
 msgstr "Μη ορισμένο όνομα %s"
@@ -47194,8 +47217,8 @@ msgstr "Μη ορισμένο όνομα %s"
 msgid "ISO C forbids an empty translation unit"
 msgstr ""
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -47235,9 +47258,9 @@ msgstr "Μη έγκυρη επιλογή `%s'"
 msgid "unknown type name %qE"
 msgstr "άγνωστος χαρακτήρας `%s'"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, fuzzy, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "δημιουργία αρχείου `%s'\n"
@@ -47267,7 +47290,7 @@ msgstr ""
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr ""
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, fuzzy, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "το `%s' είναι πρόγονος του `%s'"
@@ -47287,7 +47310,7 @@ msgstr "Μη ορισμένο όνομα %s"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
@@ -47378,7 +47401,7 @@ msgstr "μη τερματιζμένο αλφαριθμητικό σταθερά
 msgid "static assertion failed: %E"
 msgstr ""
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, gcc-internal-format
 msgid "static assertion failed"
 msgstr ""
@@ -47449,10 +47472,10 @@ msgstr "έχουν παραληφθεί ορίσματα"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, fuzzy, gcc-internal-format
 msgid "expected identifier"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
@@ -47603,7 +47626,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -47613,8 +47636,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -47788,12 +47811,12 @@ msgstr ""
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr ""
@@ -47940,7 +47963,7 @@ msgstr "αρχεία fifo δεν υποστηρίζονται"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, fuzzy, gcc-internal-format
 msgid "expected expression"
 msgstr "Μη έγκυρη προπορευόμενη κανονική έκφραση"
@@ -48261,12 +48284,12 @@ msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χ
 msgid "no type or storage class may be specified here,"
 msgstr "Εγγραφή ονομάτων των επιλεγμένων λέξεων-κλειδιών"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr ""
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 msgid "missing property attribute"
 msgstr "Ελλιπής ή κακοσχηματισμένη ιδιότητα"
@@ -48276,57 +48299,57 @@ msgstr "Ελλιπής ή κακοσχηματισμένη ιδιότητα"
 msgid "unknown property attribute %<%s%s%>"
 msgstr ""
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr ""
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr ""
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr ""
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr ""
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr ""
@@ -48336,25 +48359,25 @@ msgstr ""
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr ""
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr ""
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "κακοδιαμορφωμένη γραμμή αγνοήθηκε"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, fuzzy, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "πάρα πολλά ορίσματα"
@@ -48369,63 +48392,63 @@ msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 msgid "expected %<)%> or %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr ""
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 msgid "expected constant logical expression"
 msgstr "Μη έγκυρη κανονική έκφραση"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr ""
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "πάρα πολλά ορίσματα"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr ""
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -48448,22 +48471,22 @@ msgstr ""
 msgid "%<num_tasks%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr ""
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr ""
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr ""
@@ -48473,94 +48496,94 @@ msgstr ""
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr ""
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr ""
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr ""
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, fuzzy, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, fuzzy, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "πάρα πολλά ορίσματα"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, fuzzy, gcc-internal-format
 msgid "unexpected argument"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 msgid "too many %<self%> clauses"
 msgstr "πάρα πολλά ορίσματα"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, gcc-internal-format
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr ""
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr "διπλό κλειδί"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr ""
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr ""
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, fuzzy, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "μη έγκυρος δηλωτής πεδίου: `%s'"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, fuzzy, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "μη έγκυρο δικαίωμα"
@@ -48570,22 +48593,22 @@ msgstr "μη έγκυρο δικαίωμα"
 msgid "%<num_teams%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr ""
@@ -48595,22 +48618,22 @@ msgstr ""
 msgid "duplicate %qs modifier"
 msgstr "διπλό κλειδί"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr ""
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr ""
@@ -48630,63 +48653,63 @@ msgstr ""
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr ""
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "μη έγκυρος χρήστης"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 msgid "invalid doacross kind"
 msgstr "μη έγκυρο όνομα μήνα"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr ""
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr ""
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<present%> modifiers"
 msgstr "υπερβολικά πολλά αρχεία εισόδου"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, fuzzy, gcc-internal-format
 msgid "invalid map kind"
 msgstr "μη έγκυρος χρήστης"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr ""
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr ""
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "Μη έγκυρη ημερομηνία `%s'."
@@ -48701,88 +48724,88 @@ msgstr "Μη έγκυρη ημερομηνία `%s'."
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr ""
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, fuzzy, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, fuzzy, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr ""
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr ""
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "μη έγκυρος αριθμός από κενές γραμμές: `%s'"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr ""
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr ""
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -48797,7 +48820,7 @@ msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 msgid "expected function name"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "Το `%s' δεν είναι κατάλογος."
@@ -48807,22 +48830,22 @@ msgstr "Το `%s' δεν είναι κατάλογος."
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr ""
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr ""
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr ""
@@ -48848,7 +48871,7 @@ msgstr ""
 msgid "modified here"
 msgstr ""
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr ""
@@ -48888,110 +48911,110 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr ""
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 msgid "too many atomic clauses"
 msgstr "πάρα πολλά ορίσματα"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr "πάρα πολλά ορίσματα"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr ""
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr ""
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 msgid "unexpected %<else%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr ""
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "κακοδιαμορφωμένη γραμμή αγνοήθηκε"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, fuzzy, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "κακοδιαμορφωμένη γραμμή αγνοήθηκε"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr ""
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "Λάθος έκφραση στην αποτίμηση: %s"
@@ -49001,27 +49024,27 @@ msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, gcc-internal-format
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr ""
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr ""
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr ""
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -49031,163 +49054,163 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr ""
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr ""
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr ""
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr "κακοδιαμορφωμένη γραμμή αγνοήθηκε"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr ""
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, fuzzy, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 msgid "not enough nested loops"
 msgstr "εμφάνιση πληροφοριών προόδου"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, fuzzy, gcc-internal-format
 msgid "for statement expected"
 msgstr "αναμενόταν ')'\n"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr ""
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr ""
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, fuzzy, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr ""
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 msgid "expected trait selector name"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr ""
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr ""
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr ""
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr ""
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 msgid "expected identifier or string literal"
 msgstr "μη τερματιζόμενo αλφαριθμητικό"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -49195,290 +49218,290 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr "ειδικά αρχεία μπλοκ δεν υποστηρίζονται"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, gcc-internal-format
 msgid "expected context selector set name"
 msgstr ""
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, gcc-internal-format
 msgid "expected %<match%>"
 msgstr ""
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "μη πλήρης εγγραφή"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, fuzzy, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr ""
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr ""
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr ""
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr ""
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr ""
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, fuzzy, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr ""
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, fuzzy, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr ""
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr ""
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 msgid "expected %qs or %qs"
 msgstr "%s: αναμενόταν ακέραιος μετά το `%c'"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, fuzzy, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 msgid "expected directive name"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "άγνωστο σετ `%s'"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 msgid "expected assumption clause"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr ""
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr ""
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, fuzzy, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "μη πλήρης εγγραφή"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr ""
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr ""
@@ -49623,7 +49646,7 @@ msgstr "Δεν μπορεί να καθοριστεί το όνομα του σ
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "το πέρασμα του ορίσματος %d του δείκτη στη συνάρτηση"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr ""
@@ -49653,7 +49676,7 @@ msgstr ""
 msgid "enum constant defined here"
 msgstr ""
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -49766,17 +49789,17 @@ msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζε
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "πολύ λίγα ορίσματα"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, fuzzy, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "Η λειτουργία δεν υποστηρίζεται"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 msgid "comparison between pointer and zero character constant"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, fuzzy, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr "Δεν μπορεί να καθοριστεί το όνομα του συστήματος"
@@ -49801,7 +49824,7 @@ msgstr ""
 msgid "arithmetic on pointer to an incomplete type"
 msgstr ""
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr ""
@@ -50094,7 +50117,7 @@ msgstr ""
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr ""
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr ""
@@ -50273,7 +50296,7 @@ msgstr ""
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr ""
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr ""
@@ -50473,12 +50496,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr ""
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -50488,7 +50511,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr ""
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "μη έγκυρη ώρα της μέρας"
@@ -50519,7 +50542,7 @@ msgstr "μη τερματιζμένο αλφαριθμητικό σταθερά
 msgid "initializer element is not computable at load time"
 msgstr ""
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, fuzzy, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
@@ -50534,7 +50557,7 @@ msgstr "ακολουθούν σκουπίδια στο τέλος της γρα
 msgid "braces around scalar initializer"
 msgstr ""
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr ""
@@ -50624,7 +50647,7 @@ msgstr ""
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr ""
@@ -50664,7 +50687,7 @@ msgstr ""
 msgid "computed goto must be pointer type"
 msgstr "Δεν είναι δυνατόν να βρεθεί ο τύπος του επεξεργαστή."
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr ""
@@ -50719,7 +50742,7 @@ msgstr ""
 msgid "break statement not within loop or switch"
 msgstr ""
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -50765,27 +50788,27 @@ msgstr ""
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr ""
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr ""
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr ""
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr ""
@@ -50857,29 +50880,29 @@ msgstr ""
 msgid "used vector type where scalar is required"
 msgstr ""
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr ""
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
@@ -50890,85 +50913,85 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr ""
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, fuzzy, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "Ο κατάλογος `%s' δεν είναι προσιτός."
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, fuzzy, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr ""
@@ -50978,17 +51001,17 @@ msgstr ""
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr ""
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr "εσωτερικό σφάλμα στο %s, γραμμή %u"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr "Ο κατάλογος `%s' δεν είναι προσιτός."
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -50998,32 +51021,32 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr ""
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr ""
@@ -51053,7 +51076,7 @@ msgstr ""
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr ""
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr "Οι ορισμοί πηγή βρίσκονται στο ΑΡΧΕΙΟ"
@@ -51063,17 +51086,17 @@ msgstr "Οι ορισμοί πηγή βρίσκονται στο ΑΡΧΕΙΟ"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr ""
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -51088,23 +51111,23 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr ""
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr ""
@@ -51116,32 +51139,32 @@ msgstr ""
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr ""
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
@@ -51161,7 +51184,7 @@ msgstr ""
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr ""
@@ -51171,7 +51194,7 @@ msgstr ""
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr ""
@@ -51181,76 +51204,76 @@ msgstr ""
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 msgid "unsupported map expression %qE"
 msgstr "Εμφάνιση έκδοσης προγράμματος"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr ""
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr ""
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, fuzzy, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr ""
@@ -51265,22 +51288,22 @@ msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 msgid "%qs variable is neither a pointer nor an array"
 msgstr ""
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr ""
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr ""
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, fuzzy, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "το `%s' είναι πρόγονος του `%s'"
@@ -51290,38 +51313,38 @@ msgstr "το `%s' είναι πρόγονος του `%s'"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -51590,14 +51613,14 @@ msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζε
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -51915,37 +51938,37 @@ msgstr ""
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "Μη έγκυρη κανονική έκφραση"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr ""
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr ""
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr "η επιστρεφόμενη τιμή της `%s' δεν είναι `int'"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr ""
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no match for call to %<%T::operator[] (%A)%>"
@@ -51953,425 +51976,425 @@ msgstr "δεν ταιριάζει συνάρτηση για την κλήση σ
 
 # src/getopt.c:813
 # src/getopt.c:813
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "%s: η επιλογή `-W %s' είναι διφορούμενη\n"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr ""
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr ""
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr ""
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr ""
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 msgid "declared private here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 msgid "declared protected here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr "το `%s' είναι μη-προσπελάσιμο"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, fuzzy, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "Λείπει παράμετρος για `%s'"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 msgid "  declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, fuzzy, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, fuzzy, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, fuzzy, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "Δεν είναι δυνατόν να βρεθεί ο τύπος του επεξεργαστή."
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, fuzzy, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, fuzzy, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "ακολουθούν σκουπίδια στο τέλος της γραμμής"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr ""
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr ""
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 msgid "invalid conversion from %qH to %qI"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr ""
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr ""
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr ""
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 #, fuzzy
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "δεν είναι δυνατό να μετανομαστεί το `.' ή το `..'"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, fuzzy, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "άγνωστος χαρακτήρας στο πεδίο `%s' της κατηγορίας `%s'"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, fuzzy, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "δεν είναι δυνατό να μετανομαστεί το `.' ή το `..'"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr ""
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr ""
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, fuzzy, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "αδυναμία αλλαγής στο κατάλογο %s"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr ""
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, fuzzy, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr ""
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr ""
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, fuzzy, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, fuzzy, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr ""
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 msgid "; use assignment instead"
 msgstr "Κακή αίτηση παραμέτρων"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, fuzzy, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr ""
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 msgid "%#qT declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr ""
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr ""
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 msgid "cannot convert %qH to %qI"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "δεν ταιριάζει συνάρτηση για την κλήση στο %<%T::%s(%A)%#V%>"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "δεν ταιριάζει συνάρτηση για την κλήση στο %<%T::%s(%A)%#V%>"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "κλήση σε μη-συνάρτηση %qD"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr ""
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%s(%A)%>"
@@ -52379,106 +52402,106 @@ msgstr "δεν ταιριάζει συνάρτηση για την κλήση σ
 
 # src/getopt.c:813
 # src/getopt.c:813
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "η κλήση της υπερφορτωμένης %<%s(%A)%> είναι διφορούμενη"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr ""
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr ""
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr ""
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr ""
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr ""
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 msgid "try making the operator a %<const%> member function"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr ""
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 msgid "  for conversion from %qH to %qI"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr ""
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, fuzzy, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "έχουν παραληφθεί ορίσματα"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr ""
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr ""
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr ""
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 msgid "possibly dangling reference to a temporary"
 msgstr "xdr_reference: η μνήμη εξαντλήθηκε\n"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, fuzzy, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr "Οι ορισμοί πηγή βρίσκονται στο ΑΡΧΕΙΟ"
@@ -52524,7 +52547,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "αυτός είναι ο πρώτος ορισμός"
@@ -52947,7 +52970,7 @@ msgstr "μη έγκυρη ώρα της μέρας"
 msgid "next member %q#D declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, fuzzy, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "κανένας ορισμός του `UNDEFINED'"
@@ -53078,7 +53101,7 @@ msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
@@ -53119,7 +53142,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr ""
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -53137,7 +53160,7 @@ msgstr ""
 msgid "%q+E is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -53158,7 +53181,7 @@ msgstr ""
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
@@ -53206,7 +53229,7 @@ msgstr "το `%s' είναι πρόγονος του `%s'"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
@@ -53335,18 +53358,18 @@ msgstr ""
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr ""
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "έχει παραληφθεί το αρχείο προορισμού"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr "Δεν μπορεί να καθοριστεί το όνομα του συστήματος"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -53354,469 +53377,469 @@ msgstr "Δεν μπορεί να καθοριστεί το όνομα του σ
 msgid "%qE is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "έχει παραληφθεί το αρχείο προορισμού"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr ""
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr ""
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr ""
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr ""
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr ""
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr ""
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr ""
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr ""
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, fuzzy, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 msgid "allocated here"
 msgstr "διπλό κλειδί"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, fuzzy, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, fuzzy, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "μη έγκυρο μέγεθος οριζόντιου στηλοθέτη: %s"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, fuzzy, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "το `%s' είναι μη-προσπελάσιμο"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, fuzzy, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, fuzzy, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr ""
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 msgid "use of %qD"
 msgstr "μη έγκυρος χρήστης"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr ""
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr ""
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr ""
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr "%s: αναμενόταν ακέραιος μετά το `%c'"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, gcc-internal-format
 msgid "function concept must be called"
 msgstr ""
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, fuzzy, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "Μη έγκυρη προπορευόμενη κανονική έκφραση"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr ""
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr ""
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr ""
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr ""
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr ""
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, gcc-internal-format
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr ""
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, fuzzy, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "Μη ορισμένο όνομα %s"
@@ -54530,7 +54553,7 @@ msgstr "Λείπει παράμετρος για `%s'"
 msgid "no suspend point info for %qD"
 msgstr "Ο αντιτοποθετητής επιφάνειας έχει τεθεί περισσότερο από μια φορά για το `%s'"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -54550,23 +54573,23 @@ msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr ""
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr ""
@@ -54586,68 +54609,68 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 msgid "pack expansion of %qE attribute"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -54692,7 +54715,7 @@ msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαρ
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, fuzzy, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "Δεν μπορεί να καθοριστεί το όνομα του συστήματος"
@@ -55079,7 +55102,7 @@ msgstr "αυτός είναι ο πρώτος ορισμός"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "αυτός είναι ο πρώτος ορισμός"
@@ -55220,8 +55243,8 @@ msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'
 msgid "%q#D previously defined here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
@@ -55296,52 +55319,37 @@ msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 msgid "previous specification in %q#D here"
 msgstr "%s: Μη έγκυρη ρύθμιση `%s'.\n"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr "αυτονόητη διακύρηξη της συνάρτησης `%#D'"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr "αυτονόητη διακύρηξη της συνάρτησης `%#D'"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 msgid "conflicting exporting for declaration %qD"
 msgstr "Μη έγκυρη ανταλλαγή"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 msgid "previously declared here without exporting"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr "κανένας ορισμός του `UNDEFINED'"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, gcc-internal-format
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr ""
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, fuzzy, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr "αυτός είναι ο πρώτος ορισμός"
@@ -55354,44 +55362,44 @@ msgstr "αυτός είναι ο πρώτος ορισμός"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, fuzzy, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "κανένας ορισμός του `UNDEFINED'"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, fuzzy, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "σφάλμα ταιριάσματος τύπου με προηγούμενη αυτονόητη διακύρηξη"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, fuzzy, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -55399,2510 +55407,2510 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, fuzzy, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, fuzzy, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, gcc-internal-format
 msgid "previous label"
 msgstr ""
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, fuzzy, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "διπλό κλειδί"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr ""
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr ""
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr ""
 
 # src/request.c:263
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "Το βήμα αρχικοποίησης απέτυχε"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr ""
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr ""
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr ""
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 msgid "  enters statement expression"
 msgstr "Πρόωρο τέλος της κανονικής έκφρασης"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 msgid "  does not destroy %qD"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr ""
 
 # src/request.c:263
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "Το βήμα αρχικοποίησης απέτυχε"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 msgid "%qD used without template arguments"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 msgid "%qD is a function, not a type"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr ""
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, fuzzy, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, fuzzy, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, fuzzy, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr ""
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr ""
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, gcc-internal-format
 msgid "anonymous struct with base classes"
 msgstr ""
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr ""
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr ""
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr ""
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr ""
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr ""
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "μόνο ένα όρισμα μπορεί να δηλωθεί"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr ""
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr ""
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr ""
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "Δεν ήταν δυνατή η εύρεση ετικέττας για μεταγωγή στο `%s'"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, fuzzy, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr ""
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr ""
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr ""
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "έχουν παραληφθεί ορίσματα"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr ""
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr ""
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "μη έγκυρος αριθμός από κενές γραμμές: `%s'"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr ""
 
 # src/request.c:263
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, fuzzy, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "Το βήμα αρχικοποίησης απέτυχε"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, fuzzy, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, fuzzy, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr ""
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr ""
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, fuzzy, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "Η λειτουργία δεν υποστηρίζεται"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr ""
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, fuzzy, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "σφάλμα κατά το κλείσιμο της εισόδου `%s'"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr ""
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, fuzzy, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "Το όνομα `%s' είναι άγνωστο\n"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, fuzzy, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "Το όνομα `%s' είναι άγνωστο\n"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr ""
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized const %qD"
 msgid "uninitialized %<const %D%>"
 msgstr "μη αρχικοποιημένη σταθερά const %qD"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr ""
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr ""
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr ""
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, fuzzy, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr ""
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr ""
 
 # src/getopt.c:628
 # src/getopt.c:628
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, fuzzy, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "μη έγκυρο μέγεθος οριζόντιου στηλοθέτη: %s"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr ""
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, fuzzy, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "υπερβολικά πολλά αρχεία εισόδου"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, fuzzy, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "ακολουθούν σκουπίδια στο τέλος της γραμμής"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "ακολουθούν σκουπίδια στο τέλος της γραμμής"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, fuzzy, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "ακολουθούν σκουπίδια στο τέλος της γραμμής"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, fuzzy, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr ""
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr ""
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr ""
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, fuzzy, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr ""
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr ""
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr ""
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr ""
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "έχουν παραληφθεί ορίσματα"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr ""
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr ""
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, fuzzy, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr "Εγγραφή ονομάτων των επιλεγμένων λέξεων-κλειδιών"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr ""
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "η επιστρεφόμενη τιμή της `%s' δεν είναι `int'"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr "ακολουθούν σκουπίδια στο τέλος της γραμμής"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, fuzzy, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr ""
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr ""
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr ""
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr ""
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr "Δεν είναι δυνατή η εκχώρηση της ζητηθήσας διεύθυνσης"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr ""
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr ""
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, fuzzy, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "σφάλμα κατά το κλείσιμο της εισόδου `%s'"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr ""
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr ""
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr ""
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "συνεχίζεται στο τμήμα"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr ""
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr ""
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr ""
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, fuzzy, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, fuzzy, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "συντακτικό σφάλμα στον καθορισμό σειράς"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr ""
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr ""
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "συνεχίζεται στο τμήμα"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr ""
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 msgid "a function concept cannot be constrained"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 msgid "constraints on a non-templated function"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr ""
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, fuzzy, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "Μη έγκυρη κανονική έκφραση"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "αδυναμία αλλαγής στο κατάλογο %s"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "αδυναμία αλλαγής στο κατάλογο %s"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "αδυναμία αλλαγής στο κατάλογο %s"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, fuzzy, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, fuzzy, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 msgid "explicit object parameter declared here"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr ""
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr ""
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr ""
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, fuzzy, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> πρέπει να επιστρέψει %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr ""
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, fuzzy, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "κανένας ορισμός του `UNDEFINED'"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr ""
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr ""
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, gcc-internal-format
 msgid "a variable concept cannot be constrained"
 msgstr ""
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, fuzzy, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "μη έγκυρος δεύτερος τελεστής σε κατάσταση συμβατότητας `%s'"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr ""
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr ""
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr ""
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, fuzzy, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr ""
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr ""
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr ""
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr ""
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr ""
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr ""
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr ""
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 msgid "creating array of template placeholder type %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, fuzzy, gcc-internal-format
 msgid "creating array of void"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, fuzzy, gcc-internal-format
 msgid "creating array of functions"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, fuzzy, gcc-internal-format
 msgid "creating array of references"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, fuzzy, gcc-internal-format
 msgid "creating array of function members"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, gcc-internal-format
 msgid "variable-length array of %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr ""
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr ""
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr ""
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "κενό αλφαριθμητικό"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr ""
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr ""
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "Προειδοποίηση: Πολύ λίγα ορίσματα στο εσωδομημένο `%s'"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr ""
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr ""
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr ""
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, gcc-internal-format
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "μη έγκυρος χρήστης"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "μη έγκυρος αριθμός από κενές γραμμές: `%s'"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "μη έγκυρος αριθμός από κενές γραμμές: `%s'"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a class or namespace"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qE as non-function"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qE as non-member"
 msgstr "Η λειτουργία δεν υποστηρίζεται"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr ""
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr ""
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%s'"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, fuzzy, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr "Δεν υπάρχουν αρχεία εισόδου"
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, fuzzy, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "Προειδοποίηση: Πολύ λίγα ορίσματα στο εσωδομημένο `%s'"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr ""
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "μη έγκυρος δηλωτής πεδίου: `%s'"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr "μόνο ένα όρισμα μπορεί να δηλωθεί"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr "μη ορισμένο"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr ""
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "μη ορισμένο"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr ""
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, fuzzy, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "Μη έγκυρη προτεραιότητα `%s'"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, fuzzy, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "Εγγραφή ονομάτων των επιλεγμένων λέξεων-κλειδιών"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr ""
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, fuzzy, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "κενό αλφαριθμητικό"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr ""
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, fuzzy, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, fuzzy, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "Εγγραφή ονομάτων των επιλεγμένων λέξεων-κλειδιών"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr ""
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr ""
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr ""
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, gcc-internal-format
 msgid "remove parentheses"
 msgstr ""
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr ""
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr ""
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr ""
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "μη έγκυρος αριθμός από γραμμές"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr "άγνωστος χαρακτήρας στο πεδίο `%s' της κατηγορίας `%s'"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, fuzzy, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%s: διπλός ορισμός έκδοσης κατηγορίας"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr ""
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "`return' χωρίς τιμή, σε συνάρτηση που επιστρέφει μη-κενό"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr ""
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr ""
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr ""
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr ""
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr ""
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, fuzzy, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr ""
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr ""
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "αδυναμία αλλαγής στο κατάλογο %s"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "δεν είναι δυνατόν να γίνει `stat' το locale αρχείο `%s'"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "αδυναμία αλλαγής στο κατάλογο %s"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "άγνωστος χαρακτήρας στο πεδίο `%s' της κατηγορίας `%s'"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr ""
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr ""
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr ""
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr ""
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, fuzzy, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr ""
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr "κενό αλφαριθμητικό"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr ""
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, fuzzy, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, fuzzy, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr ""
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr "μη έγκυρος αριθμός από κενές γραμμές: `%s'"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr ""
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "Υπάρχει αντικείμενο με το ίδιο όνομα"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr ""
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, fuzzy, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, fuzzy, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr ""
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr ""
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr ""
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, fuzzy, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "αδυναμία εισαγωγής στοιχείο παραβολής `%.*s'"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr ""
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, fuzzy, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
 
 # src/grep.c:785 src/grep.c:792
 # src/grep.c:1060 src/grep.c:1067 src/grep.c:1076
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, fuzzy, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "μη έγκυρο όρισμα μήκους περιεχομένου"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "μη έγκυρη ώρα της μέρας"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids flexible array members"
 msgstr "μη έγκυρη ώρα της μέρας"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "μη έγκυρος χρήστης"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "αυτονόητη διακύρηξη της συνάρτησης `%#D'"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, fuzzy, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, fuzzy, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr ""
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be %qs"
 msgstr "αδυναμία ανοίγματος του `%s'"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr ""
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 msgid "variable template declared here"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, fuzzy, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr ""
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr ""
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
 # src/shred.c:1134
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr "%s: το αρχείο είναι πολύ μεγάλο"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr ""
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, fuzzy, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "μη έγκυρη τάξη χαρακτήρων `%s'"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, fuzzy, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "μη έγκυρη τάξη χαρακτήρων `%s'"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, fuzzy, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "μη έγκυρη τάξη χαρακτήρων `%s'"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "μη έγκυρη τάξη χαρακτήρων `%s'"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "μη έγκυρη τάξη χαρακτήρων `%s'"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, fuzzy, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, fuzzy, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "μη έγκυρη τάξη χαρακτήρων `%s'"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, fuzzy, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr ""
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr ""
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr ""
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr ""
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr ""
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr ""
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr ""
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "μη έγκυρος αριθμός από κενές γραμμές: `%s'"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "μη έγκυρος αριθμός από κενές γραμμές: `%s'"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr ""
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr ""
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr ""
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, fuzzy, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a non-static member function"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr ""
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr ""
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr ""
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, fuzzy, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "η `%s' παίρνει είτε κανένα είτε δύο ορίσματα"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr "η `%s' παίρνει είτε κανένα είτε δύο ορίσματα"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr "η `%s' παίρνει είτε κανένα είτε δύο ορίσματα"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "η `%s' παίρνει είτε κανένα είτε δύο ορίσματα"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "η `%s' παίρνει είτε κανένα είτε δύο ορίσματα"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 msgid "%qD must have no arguments"
 msgstr "η `%s' παίρνει είτε κανένα είτε δύο ορίσματα"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr "η `%s' παίρνει είτε κανένα είτε δύο ορίσματα"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr "η `%s' παίρνει είτε κανένα είτε δύο ορίσματα"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr ""
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr ""
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, fuzzy, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, fuzzy, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr ""
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, fuzzy, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr ""
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr ""
@@ -57914,117 +57922,102 @@ msgstr ""
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, fuzzy, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "έχουν παραληφθεί ορίσματα"
 
 # src/getopt.c:628
 # src/getopt.c:628
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, fuzzy, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 msgid "class template %qD redeclared as non-template"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr ""
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, fuzzy, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "Η λειτουργία δεν υποστηρίζεται"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-msgid "cannot declare %qD in a different module"
-msgstr "άγνωστος χαρακτήρας στο πεδίο `%s' της κατηγορίας `%s'"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, fuzzy, gcc-internal-format
-msgid "previously declared here"
-msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr ""
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr ""
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, fuzzy, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr ""
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr ""
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, fuzzy, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "διπλός ορισμός συνόλου"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-msgid "cannot declare %qD in different module"
-msgstr "άγνωστος χαρακτήρας στο πεδίο `%s' της κατηγορίας `%s'"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, fuzzy, gcc-internal-format
 msgid "previous definition here"
 msgstr "κανένας ορισμός του `UNDEFINED'"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr ""
@@ -58033,82 +58026,82 @@ msgstr ""
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr ""
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr ""
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr ""
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr ""
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, fuzzy, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, fuzzy, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "η επιστρεφόμενη τιμή της `%s' δεν είναι `int'"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr ""
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "`return' χωρίς τιμή, σε συνάρτηση που επιστρέφει μη-κενό"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr ""
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "`return' χωρίς τιμή, σε συνάρτηση που επιστρέφει μη-κενό"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, fuzzy, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 msgid "using %qs"
 msgstr "σφάλμα ανάγνωσης %s"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr ""
@@ -58163,7 +58156,7 @@ msgstr ""
 msgid "deleting %qT is undefined"
 msgstr ""
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, fuzzy, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "δημιουργία αρχείου `%s'\n"
@@ -58173,7 +58166,7 @@ msgstr "δημιουργία αρχείου `%s'\n"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr ""
@@ -58358,64 +58351,64 @@ msgstr ""
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr ""
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr ""
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr ""
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr ""
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr ""
@@ -58424,104 +58417,104 @@ msgstr ""
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr ""
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr ""
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr ""
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, fuzzy, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr ""
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "έχουν παραληφθεί ορίσματα"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr ""
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr ""
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr ""
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, fuzzy, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr ""
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr ""
@@ -58629,7 +58622,7 @@ msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
@@ -58639,7 +58632,7 @@ msgstr "δεν είστε μέλος της ομάδας `%s'"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
@@ -58664,47 +58657,47 @@ msgstr ""
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr ""
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr ""
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr ""
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, gcc-internal-format
 msgid "for type %qT"
 msgstr ""
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr ""
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -58973,12 +58966,12 @@ msgstr "Το `%s' δεν είναι κατάλογος."
 msgid "type %qT is not a direct base of %qT"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr ""
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
@@ -58993,12 +58986,12 @@ msgstr ""
 msgid "invalid pointer to bit-field %qD"
 msgstr "ακατάλληλος τύπος δικτύου :`%s'\n"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
@@ -59193,52 +59186,52 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr ""
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr ""
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, fuzzy, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "αδυναμία αλλαγής στο κατάλογο %s"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, fuzzy, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
@@ -59611,223 +59604,268 @@ msgstr ""
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 msgid "conflicting global module declaration %#qD"
 msgstr "Μη έγκυρη ανταλλαγή"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 msgid "existing declaration %#qD"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 msgid "existing definition %qD"
 msgstr "έχει παραληφθεί το αρχείο προορισμού"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 msgid "... this enumerator %qD"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 msgid "module %qs declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr "κανένας ορισμός του `UNDEFINED'"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr "Μεταγλωττισμός προδιαγραφών τοπικών ρυθμίσεων"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr "αδυναμία ανοίγματος αρχείου εξόδου `%s'"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, gcc-internal-format, gfc-internal-format
 msgid "compiled module is %sversion %s"
 msgstr ""
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, gcc-internal-format, gfc-internal-format
 msgid "compiler is %sversion %s%s%s"
 msgstr ""
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 msgid "module %qs found"
 msgstr "το αρχείο χάρτη χαρακτήρων `%s' δεν βρέθηκε"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr ""
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr "Κακοσυνταίριασμα τύπων καταχώρησης/πίνακα"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 msgid "interface partition is not exported"
 msgstr "ειδικά αρχεία μπλοκ δεν υποστηρίζονται"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr ""
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr ""
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr "αυτονόητη διακύρηξη της συνάρτησης `%#D'"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "αυτονόητη διακύρηξη της συνάρτησης `%#D'"
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "Μη έγκυρη ανταλλαγή"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in global module"
+msgstr "Μη έγκυρη ανταλλαγή"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+msgid "previously declared in module %qs"
+msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+msgid "previously declared in global module"
+msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 msgid "reading CMI %qs"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr ""
@@ -59839,394 +59877,394 @@ msgstr ""
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, gcc-internal-format
 msgid "module already declared"
 msgstr ""
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, gcc-internal-format
 msgid "module already imported"
 msgstr ""
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, gcc-internal-format
 msgid "module %qs imported here"
 msgstr ""
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr ""
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, gcc-internal-format
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr ""
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr ""
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 msgid "invalid header name %qs"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 msgid "invalid module name %qs"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 msgid "writing CMI %qs"
 msgstr "σφάλμα εγγραφής %s"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, gcc-internal-format
 msgid "not writing module %qs due to errors"
 msgstr ""
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr ""
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr "άγνωστο σετ `%s'"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr ""
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "σφάλμα ταιριάσματος τύπου με προηγούμενη αυτονόητη διακύρηξη"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "Μη έγκυρη ανταλλαγή"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, fuzzy, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "συντακτικό σφάλμα στον καθορισμό σειράς"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
 # src/request.c:37
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s: %s: "
 
 # src/request.c:37
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 msgid "%s %s %p %d"
 msgstr "%s: %s: "
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 msgid "%<%T%s%D%> names destructor"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr ""
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, fuzzy, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a direct base of %qT"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, fuzzy, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, fuzzy, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr ""
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, fuzzy, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr ""
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, fuzzy, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 msgid "it was later defined here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr ""
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 msgid "%<strong%> using directive no longer supported"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, gcc-internal-format
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr ""
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr "δεν είναι δυνατό να μετανομαστεί το `.' ή το `..'"
 
 # src/getopt.c:628
 # src/getopt.c:628
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 msgid "%qD defined here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr "κανένας ορισμός του `UNDEFINED'"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr ""
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr ""
@@ -60251,7 +60289,7 @@ msgstr ""
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr ""
@@ -60497,7 +60535,7 @@ msgstr ""
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
@@ -60677,7 +60715,7 @@ msgstr ""
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, fuzzy, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "Μη έγκυρη προπορευόμενη κανονική έκφραση"
@@ -60732,7 +60770,7 @@ msgstr ""
 msgid "template-id not allowed for destructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -60752,7 +60790,7 @@ msgstr ""
 msgid "expected unqualified-id"
 msgstr ""
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
@@ -60802,7 +60840,7 @@ msgstr ""
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "Λείπει παράμετρος για `%s'"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "λάθος αριθμός ορισμάτων"
@@ -60837,7 +60875,7 @@ msgstr ""
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "μη έγκυρος χρήστης"
@@ -60862,7 +60900,7 @@ msgstr ""
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr ""
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
@@ -61012,8 +61050,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr "Μη αναγνωρίσιμη μεταβλητή `%s'"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
@@ -61053,7 +61091,7 @@ msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -61178,7 +61216,7 @@ msgstr ""
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, fuzzy, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
@@ -61240,7 +61278,7 @@ msgstr "μη πλήρης εγγραφή"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr ""
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, fuzzy, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
@@ -61266,7 +61304,7 @@ msgstr ""
 msgid "ISO C++ forbids computed gotos"
 msgstr ""
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, fuzzy, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
@@ -61547,12 +61585,12 @@ msgstr ""
 msgid "cannot expand initializer for member %qD"
 msgstr "έχει παραληφθεί το αρχείο προορισμού"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr ""
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr ""
@@ -62192,7 +62230,7 @@ msgstr "Ελλιπής ή κακοσχηματισμένη ιδιότητα"
 msgid "%qT not permitted in template argument"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT"
@@ -62371,12 +62409,12 @@ msgstr "κανένας ορισμός του `UNDEFINED'"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, fuzzy, gcc-internal-format
 msgid "expected class-key"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
@@ -62578,37 +62616,37 @@ msgstr ""
 msgid "expression must be enclosed in parentheses"
 msgstr ""
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 msgid "result type is not a plain type-constraint"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, fuzzy, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, fuzzy, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
@@ -62617,439 +62655,439 @@ msgstr "διπλό όνομα χαρακτήρα `%s'"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr ""
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, fuzzy, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, fuzzy, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr "Ο έλεγχος μονοπατιού για το `%s' βρήκε `%s'"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr ""
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr ""
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, fuzzy, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "Μη έγκυρη ρύθμιση θύρας (port)"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, fuzzy, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr ""
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, fuzzy, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, fuzzy, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr ""
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "Μη έγκυρη ρύθμιση θύρας (port)"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr "διπλό κλειδί"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr ""
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr ""
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr ""
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "αρχεία fifo δεν υποστηρίζονται"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, fuzzy, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "μη έγκυρος δηλωτής πεδίου: `%s'"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "διπλό κλειδί"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "διπλό κλειδί"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, fuzzy, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, fuzzy, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, fuzzy, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, fuzzy, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr ""
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, fuzzy, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, fuzzy, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr ""
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, fuzzy, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, fuzzy, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, fuzzy, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, fuzzy, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, fuzzy, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr ""
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, fuzzy, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr ""
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, fuzzy, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "%s: αναμενόταν αριθμητική τιμή."
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr ""
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr ""
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr ""
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, fuzzy, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr ""
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, fuzzy, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, fuzzy, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "Μη ορισμένο όνομα %s"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr ""
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr ""
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, fuzzy, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, fuzzy, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "αδυναμία αλλαγής στο κατάλογο %s"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, fuzzy, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "άγνωστο σετ `%s'"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "μη τερματιζόμενο όνομα βάρους"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr ""
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr ""
 
 # src/grep.c:785 src/grep.c:792
 # src/grep.c:1060 src/grep.c:1067 src/grep.c:1076
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, fuzzy, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "μη έγκυρο όρισμα μήκους περιεχομένου"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr ""
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr ""
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr ""
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr ""
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr ""
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, fuzzy, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, fuzzy, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "Ακατάλληλη τιμή στο ai_flags"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, fuzzy, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "Προσδιοριστής αφαιρέθηκε"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, fuzzy, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, fuzzy, gcc-internal-format
 msgid "invalid type for property"
 msgstr "Μη έγκυρη παράμετρος"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr ""
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 msgid "expected integer expression list"
 msgstr "Μη έγκυρη κανονική έκφραση"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr ""
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr ""
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "μη έγκυρο μέγεθος οριζόντιου στηλοθέτη: %s"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr "Το `%s' δεν είναι κατάλογος."
@@ -63058,12 +63096,12 @@ msgstr "Το `%s' δεν είναι κατάλογος."
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, gcc-internal-format
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr ""
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
@@ -63073,133 +63111,133 @@ msgstr ""
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr ""
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr ""
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr ""
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "μη έγκυρο μέγεθος οριζόντιου στηλοθέτη: %s"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "Μη έγκυρη προπορευόμενη κανονική έκφραση"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr ""
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "κακοδιαμορφωμένη γραμμή αγνοήθηκε"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr ""
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr ""
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr ""
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr ""
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr ""
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -63229,7 +63267,7 @@ msgstr ""
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr ""
@@ -63244,171 +63282,171 @@ msgstr "κανένας ορισμός του `UNDEFINED'"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, fuzzy, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr ""
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 msgid "from definition of %q#D"
 msgstr "κανένας ορισμός του `UNDEFINED'"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr ""
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, fuzzy, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr ""
 
 # src/request.c:37
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 msgid "%s %#qD"
 msgstr "%s: %s"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr ""
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr ""
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, fuzzy, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr "Ο έλεγχος μονοπατιού για το `%s' βρήκε `%s'"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr ""
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "Ελλιπής ή κακοσχηματισμένη ιδιότητα"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "Ελλιπής ή κακοσχηματισμένη ιδιότητα"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 msgid "template-id %qE in declaration of primary template"
 msgstr "Μη έγκυρη κανονική έκφραση"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, fuzzy, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "Προειδοποίηση: Πολύ λίγα ορίσματα στο εσωδομημένο `%s'"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "Προειδοποίηση: Πολύ λίγα ορίσματα στο εσωδομημένο `%s'"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr ""
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr ""
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr ""
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "Το `%s' δεν είναι κατάλογος."
@@ -63421,154 +63459,154 @@ msgstr "Το `%s' δεν είναι κατάλογος."
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr ""
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, fuzzy, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "Στη συνάρτηση μέλος `%s':"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "συντακτικό σφάλμα στον ορισμό κλάσης χαρακτήρων"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 msgid "friend declaration here"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr ""
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, fuzzy, gcc-internal-format
 msgid "        %qD"
 msgstr "        `%D'"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr "        `%D'"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr ""
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 msgid "too many arguments for partial specialization %qT"
 msgstr "πάρα πολλά ορίσματα"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr ""
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 msgid "primary template %qD"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, fuzzy, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "%s' δεν είναι ισχύων θετικός ακέραιος."
 msgstr[1] "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "διπλός ορισμός συνόλου"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, fuzzy, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
@@ -63577,47 +63615,47 @@ msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr ""
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr ""
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr ""
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, fuzzy, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 msgid "template %qD declared"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, fuzzy, gcc-internal-format
 msgid "template class without a name"
 msgstr "μη τερματιζόμενο όνομα βάρους"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr ""
@@ -63627,506 +63665,506 @@ msgstr ""
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, fuzzy, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "μη έγκυρος αριθμός από κενές γραμμές: `%s'"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, fuzzy, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr ""
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, fuzzy, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, fuzzy, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  αλλά %d απαιτούνται"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, fuzzy, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, fuzzy, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "Προειδοποίηση: Πολύ λίγα ορίσματα στο εσωδομημένο `%s'"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] "διπλό όνομα χαρακτήρα `%s'"
 msgstr[1] "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 msgstr[1] "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, fuzzy, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr ""
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 msgid "redeclared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr ""
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr ""
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr ""
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr ""
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, fuzzy, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr ""
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr ""
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, fuzzy, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, fuzzy, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr ""
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr ""
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr ""
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr ""
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "μη έγκυρος αριθμός από γραμμές"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr ""
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr ""
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, fuzzy, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "%s: αναμενόταν ακέραιος μετά το `%c'"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr ""
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, fuzzy, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "%s: αναμενόταν ακέραιος μετά το `%c'"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, fuzzy, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "%s: αναμενόταν ακέραιος μετά το `%c'"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, fuzzy, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "%s: αναμενόταν ακέραιος μετά το `%c'"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, fuzzy, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "%s: αναμενόταν ακέραιος μετά το `%c'"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, fuzzy, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "%s: αναμενόταν ακέραιος μετά το `%c'"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr "%s: αναμενόταν ακέραιος μετά το `%c'"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "έχουν παραληφθεί ορίσματα"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "λάθος αριθμός ορισμάτων"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "λάθος αριθμός ορισμάτων"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, gcc-internal-format
 msgid "provided for %qD"
 msgstr ""
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, fuzzy, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr ""
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, fuzzy, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "μη έγκυρος αριθμός από κενές γραμμές: `%s'"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 msgid "template constraint failure for %qD"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "Μη έγκυρη προτεραιότητα `%s'"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr ""
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr "Η παράμετρος στο <%s> πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr ""
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "μη έγκυρη ώρα της μέρας"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, gcc-internal-format
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr ""
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr ""
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr ""
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr ""
@@ -64144,303 +64182,303 @@ msgstr ""
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, fuzzy, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, fuzzy, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "Μη έγκυρη προτεραιότητα `%s'"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, fuzzy, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr ""
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr ""
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr ""
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, fuzzy, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, fuzzy, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr ""
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr ""
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr ""
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr ""
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr ""
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr ""
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, fuzzy, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "Μη έγκυρη κανονική έκφραση"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr ""
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr ""
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, fuzzy, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "λάθος αριθμός ορισμάτων"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "λάθος αριθμός ορισμάτων"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, fuzzy, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "έχει παραληφθεί η λίστα με τα πεδία"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, fuzzy, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "Η παράμετρος `%s' δεν είναι έγκυρη."
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr ""
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, fuzzy, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, fuzzy, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "διπλός ορισμός συνόλου"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "διπλός ορισμός συνόλου"
 
 # src/request.c:37
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 msgid "%s %#qS"
 msgstr "%s: %s"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of function concept %q#D"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, fuzzy, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "Ο έλεγχος μονοπατιού για το `%s' βρήκε `%s'"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, fuzzy, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "διπλός ορισμός συνόλου"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, fuzzy, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "διπλός ορισμός συνόλου"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr ""
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr ""
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "αδυναμία ανοίγματος αρχείου ορισμού locale `%s'"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr ""
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr ""
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, fuzzy, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "διπλός ορισμός συνόλου"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'"
@@ -64452,165 +64490,165 @@ msgstr "προηγούμενη αυτονόητη διακύρηξη του `%s'
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr ""
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, fuzzy, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "Μη έγκυρος χαρακτήρας παραβολής"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr ""
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be constrained"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr ""
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, gcc-internal-format
 msgid "use %qD directly instead"
 msgstr ""
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, fuzzy, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "έχουν παραληφθεί ορίσματα"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr ""
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, fuzzy, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "Δεν μπόρεσα να ανοίξω το αρχείο %s"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr ""
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr ""
 
 # src/grep.c:785 src/grep.c:792
 # src/grep.c:1060 src/grep.c:1067 src/grep.c:1076
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "μη έγκυρο όρισμα μήκους περιεχομένου"
@@ -64817,632 +64855,632 @@ msgstr ""
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr ""
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "μη έγκυρος αριθμός πεδίου: `%s'"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "μη έγκυρος αριθμός πεδίου: `%s'"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "μη έγκυρος αριθμός πεδίου: `%s'"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 msgid "cannot call a concept as a function"
 msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, fuzzy, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "%s: οι τιμές του πεδίου `%s' δεν πρέπει να είναι μεγαλύτερες από %d"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr ""
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr ""
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, fuzzy, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "η `%s' είναι συνήθως μη-στατική συνάρτηση"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> before it is valid"
 msgstr "μη έγκυρος χρήστης"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> after it is valid"
 msgstr "μη έγκυρος χρήστης"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "μη έγκυρος αριθμός πεδίου: `%s'"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "μη έγκυρος χρήστης"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr ""
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, fuzzy, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr ""
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr ""
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr ""
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr ""
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, fuzzy, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr ""
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, fuzzy, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "μη έγκυρος αριθμός αρχείου στη δήλωση πεδίου: `%s'"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, fuzzy, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "Μη έγκυρη ρύθμιση θύρας (port)"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr ""
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, fuzzy, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr ""
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 msgid "missing template arguments"
 msgstr "Ελλιπής ή κακοσχηματισμένη ιδιότητα"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr ""
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, fuzzy, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "Μη έγκυρη κανονική έκφραση"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr ""
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr ""
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "η τιμή για το %s πρέπει να είναι ακέραιος"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "%s: αριθμός γραμμής έξω από τα όρια"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr ""
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr ""
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr ""
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
 msgstr ""
 
 # src/getopt.c:628
 # src/getopt.c:628
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr ""
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr ""
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%s' δεν είναι ισχύων θετικός ακέραιος."
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr ""
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr ""
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr ""
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr ""
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr "αποτυχία κατά την εγγραφή δεδομένων για την κατηγορία `%s'"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr ""
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr ""
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr ""
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr ""
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr ""
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, gcc-internal-format
 msgid "static assertion failed: %.*s"
 msgstr ""
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr ""
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr "Η παράμετρος στο <%s> πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr ""
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr ""
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr ""
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr ""
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr "Λείπει παράμετρος για `%s'"
@@ -65450,1165 +65488,1165 @@ msgstr "Λείπει παράμετρος για `%s'"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, fuzzy, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 msgid " declared here"
 msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not public"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 msgid "%qD is mutable"
 msgstr "το `%s' είναι μη-προσπελάσιμο"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr ""
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute argument must be a string constant"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr ""
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr "η `%s' παίρνει είτε κανένα είτε δύο ορίσματα"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr ""
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "η τιμή για το %s πρέπει να είναι ακέραιος"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr ""
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr ""
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr ""
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "δημιουργία αρχείου `%s'\n"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "μη τερματιζμένο αλφαριθμητικό σταθεράς"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, fuzzy, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "%s: διπλός ορισμός έκδοσης κατηγορίας"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "διπλός ορισμός συνόλου"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr ""
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr ""
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "αδυναμία ανάγνωσης κεφαλίδας από το `%s'"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr ""
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, fuzzy, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "η τιμή για το %s πρέπει να είναι ακέραιος"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr ""
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr ""
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr ""
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr ""
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, fuzzy, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr ""
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, fuzzy, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "το αρχείο δεδομένων προφίλ `%s' δεν ταιριάζει με το διαμοιραζόμενο αντικείμενο `%s'"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr ""
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 # src/main.c:697 src/main.c:751
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "Άγνωστη γλώσσα `%s'"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr ""
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr ""
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, fuzzy, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "Το `%s' δεν είναι κατάλογος."
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "μη έγκυρη ώρα της μέρας"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, fuzzy, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "μη έγκυρη ώρα της μέρας"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, fuzzy, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "μη έγκυρη ώρα της μέρας"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr ""
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr ""
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr ""
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr ""
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr ""
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr ""
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, fuzzy, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "Το επώνυμο αντικείμενο δεν είναι αναζητήσιμο"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "πάρα πολλά ορίσματα"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "πολύ λίγα ορίσματα"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "πάρα πολλά ορίσματα"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "Προειδοποίηση: Πολύ λίγα ορίσματα στο εσωδομημένο `%s'"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "πάρα πολλά ορίσματα"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "Προειδοποίηση: Πολύ λίγα ορίσματα στο εσωδομημένο `%s'"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "πάρα πολλά ορίσματα"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "πολύ λίγα ορίσματα"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "πάρα πολλά ορίσματα"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "πολύ λίγα ορίσματα"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, fuzzy, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, fuzzy, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr ""
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr ""
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr ""
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, fuzzy, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr ""
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 msgid "unordered comparison on non-floating-point argument"
 msgstr "Η παράμετρος κινητής υποδιαστολής δεν είναι έγκυρη: %s"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr ""
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, fuzzy, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr ""
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr ""
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το αρχείο fifo `%s'"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "μη έγκυρη ώρα της μέρας"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr ""
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr ""
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr ""
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, gcc-internal-format
 msgid "taking address of rvalue"
 msgstr ""
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr ""
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, fuzzy, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "δεν είναι δυνατόν να γίνει `stat' το locale αρχείο `%s'"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το αρχείο fifo `%s'"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr ""
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr ""
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr ""
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, fuzzy, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, fuzzy, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr ""
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr ""
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr ""
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr ""
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "Λάθος έκφραση στην αποτίμηση: %s"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, fuzzy, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 msgid "type qualifiers ignored on cast result type"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "η επιστρεφόμενη τιμή της `%s' δεν είναι `int'"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 msgid "converting from %qH to %qI"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 msgid "cast from %qH to %qI loses precision"
 msgstr ""
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr ""
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr ""
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, fuzzy, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr ""
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr ""
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr ""
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, fuzzy, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 msgid "moving %qE of type %qT to itself"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr ""
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr ""
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, fuzzy, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, fuzzy, gcc-internal-format
 msgid "array used as initializer"
 msgstr "έχουν παραληφθεί ορίσματα"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, fuzzy, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "Η παράμετρος κινητής υποδιαστολής δεν είναι έγκυρη: %s"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr ""
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr ""
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr ""
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, fuzzy, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 msgid "cannot convert %qH to %qI in return"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "Λείπει παράμετρος για `%s'"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, fuzzy, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "xdr_reference: η μνήμη εξαντλήθηκε\n"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 msgid "returning pointer to temporary"
 msgstr "xdr_reference: η μνήμη εξαντλήθηκε\n"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr ""
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr ""
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr ""
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr "Έχει παραληφθεί εντολή"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr ""
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr ""
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr ""
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, fuzzy, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "`return' χωρίς τιμή, σε συνάρτηση που επιστρέφει μη-κενό"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 msgid "returning initializer list"
 msgstr "έχει παραληφθεί το αρχείο προορισμού"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr ""
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr ""
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr "`return' χωρίς τιμή, σε συνάρτηση που επιστρέφει μη-κενό"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr ""
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr "μη έγκυρος χαρακτήρας `%c' στο τύπο αλφαριθμητικού `%s'"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 msgid "using rvalue as lvalue"
 msgstr "μη έγκυρος χρήστης"
@@ -66829,157 +66867,157 @@ msgstr ""
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr ""
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζετε"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr ""
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, gcc-internal-format
 msgid "initializer-string for %qT is too long"
 msgstr ""
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, gcc-internal-format
 msgid "remove %<{ }%> around initializer"
 msgstr ""
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr ""
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, fuzzy, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "έχει παραληφθεί το αρχείο προορισμού"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr ""
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "το αρχείο δεδομένων προφίλ `%s' δεν ταιριάζει με το διαμοιραζόμενο αντικείμενο `%s'"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr ""
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr ""
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr ""
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr ""
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr ""
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, fuzzy, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr ""
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr ""
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr ""
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "Μη έγκυρη επιλογή `%s'"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr ""
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, fuzzy, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "μη έγκυρος αριθμός αρχείου στη δήλωση πεδίου: `%s'"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, fuzzy, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "μη πλήρης εγγραφή"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, fuzzy, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "μη πλήρης εγγραφή"
@@ -67962,7 +68000,7 @@ msgstr ""
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr "μη έγκυρος αριθμός από στήλες: `%s'"
@@ -69286,7 +69324,7 @@ msgstr ""
 msgid "deferred type parameter at %C"
 msgstr "ο διαχωριστής δε μπορεί να είναι κενός"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -69501,7 +69539,7 @@ msgstr ""
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr ""
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr ""
@@ -70309,7 +70347,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr ""
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr ""
@@ -71117,12 +71155,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr ""
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -71372,273 +71410,273 @@ msgstr ""
 msgid "check_init_expr(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr ""
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr ""
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr ""
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr ""
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr ""
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr ""
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "%s: μη έγκυρη κανονική έκφραση: %s"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr ""
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr ""
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr ""
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr ""
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "μη έγκυρο είδος αλφαριθμητικού `%s'"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "Η παράμετρος κινητής υποδιαστολής δεν είναι έγκυρη: %s"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "Μη έγκυρη ακέραια παράμετρος `%s'"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr ""
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, fuzzy, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "%s: Μη έγκυρη ρύθμιση `%s'.\n"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr ""
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "Η παράμετρος κινητής υποδιαστολής δεν είναι έγκυρη: %s"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr ""
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr ""
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr ""
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, fuzzy, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "διπλό όνομα χαρακτήρα `%s'"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr ""
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr ""
@@ -71646,192 +71684,192 @@ msgstr ""
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr ""
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr ""
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr ""
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr ""
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr ""
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr ""
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr ""
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr ""
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr ""
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr ""
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr ""
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr ""
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr ""
@@ -71852,8 +71890,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "δημιουργία αρχείου `%s'\n"
@@ -71933,7 +71971,7 @@ msgstr ""
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr ""
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -72068,12 +72106,12 @@ msgstr ""
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
@@ -72946,7 +72984,7 @@ msgstr "η μετατροπή από `%s' σε `%s' δεν υποστηρίζε
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
@@ -73497,7 +73535,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr ""
@@ -73663,6 +73701,11 @@ msgstr ""
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -74066,7 +74109,7 @@ msgstr ""
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr ""
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr ""
@@ -74589,82 +74632,82 @@ msgstr ""
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr ""
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "συντακτικό σφάλμα στο ορισμό του %s: %s"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "συντακτικό σφάλμα στο ορισμό του %s: %s"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "συντακτικό σφάλμα στο ορισμό του %s: %s"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected RANK statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr ""
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr "συντακτικό σφάλμα στο ορισμό του %s: %s"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr ""
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, fuzzy, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr "το αρχείο δεδομένων προφίλ `%s' δεν ταιριάζει με το διαμοιραζόμενο αντικείμενο `%s'"
@@ -76080,8 +76123,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr ""
@@ -78447,12 +78490,12 @@ msgstr ""
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr ""
@@ -78574,7 +78617,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr ""
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr ""
@@ -78973,279 +79016,284 @@ msgstr ""
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr ""
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
 # src/shred.c:1134
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr "%s: το αρχείο είναι πολύ μεγάλο"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+msgid "Invalid array reference at %L"
+msgstr "Μη έγκυρη πισω-παραπομπή"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr ""
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr ""
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr ""
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "η τιμή για το %s πρέπει να είναι ακέραιος"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr ""
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr ""
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -79254,284 +79302,284 @@ msgstr ""
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr ""
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr ""
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr ""
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr ""
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr ""
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr ""
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr ""
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr ""
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr ""
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr ""
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr ""
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr ""
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr ""
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr ""
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, fuzzy, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "%s: αναμενόταν ακέραιος μετά το `%c'"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr ""
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr ""
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr ""
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr ""
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "Η παράμετρος στο <%s> πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr ""
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "Η παράμετρος στο `%s' πρέπει να είναι ένας απλός χαρακτήρας"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr ""
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr ""
@@ -79539,212 +79587,212 @@ msgstr ""
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "Μη αναγνωρίσιμη μεταβλητή `%s'"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr ""
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr ""
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr ""
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr ""
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr ""
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr ""
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr ""
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr ""
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr ""
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr ""
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "ο χάρτης χαρακτήρων `%s' ορίστηκε ήδη"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr ""
@@ -79752,1001 +79800,1001 @@ msgstr ""
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "σχετική θέση αρχείου είναι εκτός ορίων"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr ""
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr ""
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr ""
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr ""
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr ""
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr ""
 
 # src/request.c:37
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "fstat %s"
 msgid "%s at %L"
 msgstr "fstat %s"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr ""
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr ""
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr ""
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr ""
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr ""
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "η `%s' παίρνει είτε κανένα είτε δύο ορίσματα"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr ""
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr ""
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr ""
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr ""
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr ""
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr ""
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr ""
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr ""
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "Δεν μπορεί να τεθεί η ημερομηνία."
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr ""
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr ""
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr ""
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr ""
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr ""
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr ""
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr ""
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr ""
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr ""
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr ""
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr ""
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr ""
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr ""
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr ""
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr ""
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "το `%s' δεν είναι κανονικό αρχείο"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr ""
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr ""
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr ""
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr ""
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr ""
@@ -81290,332 +81338,332 @@ msgstr ""
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, fuzzy, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "%s: οι τιμές του πεδίου `%s' δεν πρέπει να είναι μεγαλύτερες από %d"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr ""
+
+#: fortran/symbol.cc:508
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr ""
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr ""
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "δεν είναι δυνατό να δημιουργηθεί το %s `%s' στο `%s'"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "το `%s' είναι πρόγονος του `%s'"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, fuzzy, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "%s: οι τιμές του πεδίου `%s' δεν πρέπει να είναι μεγαλύτερες από %d"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr ""
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr ""
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr ""
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "συμβολικοί σύνδεσμοι δεν υποστηρίζονται στο σύστημα αυτό"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "αυτός είναι ο πρώτος ορισμός"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr ""
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr ""
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr ""
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr ""
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr ""
 
 # src/getopt.c:628
 # src/getopt.c:628
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr ""
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr ""
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr ""
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "δεν είστε μέλος της ομάδας `%s'"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "διπλός αριθμός μηνύματος"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr ""
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr ""
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr ""
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr ""
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr ""
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr ""
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr ""
@@ -81645,24 +81693,24 @@ msgstr ""
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr ""
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr ""
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr ""
@@ -81850,38 +81898,38 @@ msgstr ""
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr ""
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr ""
 
 # src/grep.c:1133
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, fuzzy, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "άγνωστη μέθοδος καταλόγων"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Προειδοποίηση: Πολύ λίγα ορίσματα στο εσωδομημένο `%s'"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -81892,17 +81940,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr ""
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr ""
@@ -82042,7 +82090,7 @@ msgstr ""
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr ""
@@ -82411,6 +82459,11 @@ msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 msgid "function %qD redeclared as variable"
 msgstr "Η λειτουργία δεν έχει υλοποιηθεί"
 
+#: lto/lto-symtab.cc:865
+#, fuzzy, gcc-internal-format
+msgid "previously declared here"
+msgstr "Δεν υπάρχει προηγούμενη κανονική έκφραση"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -83657,7 +83710,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr ""
@@ -83667,7 +83720,7 @@ msgstr ""
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr ""
diff --git a/gcc/po/es.po b/gcc/po/es.po
index 9da128eb902..4a18892d9f3 100644
--- a/gcc/po/es.po
+++ b/gcc/po/es.po
@@ -42,7 +42,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 10.1-b20200209\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2020-03-22 16:48+0100\n"
 "Last-Translator: Antonio Ceballos Roa <aceballos@gmail.com>\n"
 "Language-Team: Spanish <es@tp.org.es>\n"
@@ -431,7 +431,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "no especifique -march=... y -mcpu=... al mismo tiempo"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared y mdll no son compatibles"
 
@@ -19749,16 +19749,16 @@ msgstr "no se reconoce la insn:"
 msgid "insn does not satisfy its constraints:"
 msgstr "la insn no satisface sus restricciones:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "creado y usado con diferentes opciones de '%s'"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "creado y usado con diferentes opciones de %<-fpic%>"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 msgid "created and used with different settings of %<-fpie%>"
 msgstr "creado y usado con diferentes opciones de %<-fpie%>"
 
@@ -20079,7 +20079,7 @@ msgstr "modificador de longitud en formato strfmon"
 msgid "<command-line>"
 msgstr "<línea-de-órdenes>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "no se admite el operando para el código '%c'"
@@ -20098,9 +20098,9 @@ msgstr "operando no válido para '%%%c'"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, c-format
 msgid "invalid vector constant"
 msgstr "constante de vector no válida"
@@ -20122,7 +20122,7 @@ msgstr "coma flotante incompatible / operando de registro de vector para '%%%c'"
 msgid "incompatible register operand for '%%%c'"
 msgstr "coma flotante incompatible / operando de registro de vector para '%%%c'"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "falta un operando"
@@ -20153,93 +20153,93 @@ msgstr "modo de direccionamiento no válido"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "operandos no válidos en la operación binaria"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "se usó '%%&' sin ninguna referencia TLS dinámica local"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "valor %%J no válido"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "valor %%r no válido"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "valor %%R no válido"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "valor %%N no válido"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "valor %%P no válido"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "valor %%h no válido"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "valor %%L no válido"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "valor %%m no válido"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "valor %%M no válido"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "valor %%U no válido"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "valor %%s no válido"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "valor %%C no válido"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "valor %%E no válido"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "reubicación unspec desconocida"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "código %%xn no válido"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, c-format
 msgid "invalid operand address"
 msgstr "dirección de operando no válida"
@@ -20335,35 +20335,35 @@ msgstr "UNSPEC no válido como operando: %d"
 msgid "unrecognized supposed constant"
 msgstr "no se reconoce la constante supuesta"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "operando de desplazamiento no válido"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "instrucción de predicado Thumb"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "instrucción de predicado en una secuencia condicional"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "No se admite el operando para el código '%c'"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -20371,113 +20371,113 @@ msgstr "No se admite el operando para el código '%c'"
 msgid "invalid operand for code '%c'"
 msgstr "operando no válido para el código '%c'"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "la instrucción nunca se ejecuta"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "código de formato Maverick obsoleto '%c'"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "conversión no válida desde el tipo %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "conversión no válida al tipo %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr "operación no permitida con el tipo %<bfloat16_t%>"
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "el operando de dirección requiere una restricción para los registros X, Y, o Z"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "los operandos para %T/%t deben ser reg + const_int:"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr "dirección errónea, no es una dirección de E/S:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr "dirección errónea, no es una constante:"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "dirección errónea, no (reg+disp):"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "dirección errónea, no hay post_inc o pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "error interno del compilador.  Dirección errónea:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "Código '%c' no admitido para coma fija:"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "error interno del compilador.  Modo desconocido:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "insn no válida:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "insn incorrecta:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "insn move desconocida:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "insn shift errónea:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "error interno del compilador.  Desplazamiento incorrecto:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr "conversión de coma fija no admitida"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr "variable"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 msgid "function parameter"
 msgstr "parámetro de función"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr "campo de estructura"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 msgid "return type of function"
 msgstr "tipo de retorno de función"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr "puntero"
 
@@ -20517,7 +20517,7 @@ msgstr "operando inesperado"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20840,57 +20840,57 @@ msgstr "el operando no es un entero, código de operando 'R' no válido"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "el operando no es un entero concreto, código de operando 'R' no válido"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "código de operando '%c' no válido"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "restricciones no válidas para el operando"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 #| msgid "invalid vector constant"
 msgid "invalid vector immediate"
 msgstr "constante de vector no válida"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "modo insn desconocido"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from type %<bfloat16_t%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "conversión no válida desde el tipo %<bfloat16_t%>"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from type %<bfloat16_t%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "conversión no válida desde el tipo %<bfloat16_t%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to type %<bfloat16_t%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "conversión no válida al tipo %<bfloat16_t%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 #| msgid "invalid conversion to type %<bfloat16_t%>"
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "conversión no válida al tipo %<bfloat16_t%>"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 #, fuzzy
 #| msgid "operation not permitted on type %<bfloat16_t%>"
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr "operación no permitida con el tipo %<bfloat16_t%>"
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 #, fuzzy
 #| msgid "operation not permitted on type %<bfloat16_t%>"
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
@@ -20923,7 +20923,7 @@ msgstr "operación no válida en %<__fpreg%>"
 msgid "invalid %%P operand"
 msgstr "operando %%P no válido"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "valor %%p no válido"
@@ -20950,29 +20950,29 @@ msgstr "no se puede usar la dirección absoluta que no es relativa a gp"
 msgid "invalid addressing mode"
 msgstr "modo de direccionamiento no válido"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "'%%%c' no es un prefijo de operando válido"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "uso no válido de '%%%c'"
@@ -21004,7 +21004,7 @@ msgid "post-increment address is not a register"
 msgstr "la dirección de post-incremento no es un registro"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "dirección errónea"
 
@@ -21170,7 +21170,7 @@ msgstr "no se admite la combinación: %s"
 msgid "unsupported memory expression:"
 msgstr "conversión de coma fija no admitida"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 #| msgid "invalid %%r operand"
 msgid "invalid vector operand"
@@ -21219,253 +21219,253 @@ msgstr "%<-mquad-memory-atomic%> requiere modo de 64 bits"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "%<-mquad-memory%> no está disponible en modo little endian"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr "move erróneo"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr "Movimiento de 128 bits erróneo"
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%A value"
 msgstr "valor %%J no válido"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "valor %%D no válido"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "valor %%e no válido"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "valor %%f no válido"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "valor %%F no válido"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "valor %%G no válido"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "código %%j no válido"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "código %%J no válido"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "valor %%k no válido"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "valor %%K no válido"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "valor %%O no válido"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "valor %%q no válido"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, c-format
 msgid "invalid %%t value"
 msgstr "valor %%t no válido"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "valor %%T no válido"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "valor %%u no válido"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "valor %%v no válido"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, c-format
 msgid "invalid %%V value"
 msgstr "valor %%V no válido"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "valor %%x no válido"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, c-format
 msgid "invalid %%z value"
 msgstr "valor %%z no válido"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "valor %%y no válido, pruebe usando la restricción 'Z'"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 #, fuzzy
 #| msgid "Enable using IEEE 128-bit floating point instructions."
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "Activa el uso de instrucciones de coma flotante de 128 bits IEEE."
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "Se pasó un argumento Altivec a una función sin prototipo"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 msgid "Could not generate addis value for fusion"
 msgstr "No se ha podido generar valor addis para fusión"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 msgid "Unable to generate load/store offset for fusion"
 msgstr "No se puede generar desplazamiento de carga/almacenamiento para fusión"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr "Fusión GPR errónea"
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 #| msgid "invalid conversion from type %<bfloat16_t%>"
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "conversión no válida desde el tipo %<bfloat16_t%>"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 #| msgid "invalid conversion to type %<bfloat16_t%>"
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "conversión no válida al tipo %<bfloat16_t%>"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "conversión no válida de %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "conversión no válida a %<__fpreg%>"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr "las referencias a memoria simbólica sólo se admiten en z10 o posterior"
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "no se puede descomponer la dirección"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "operador de comparación no válido para el modificador de salida 'E'"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "referencia no válida para el modificador de salida 'J'"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "dirección no válida para el modificador de salida 'O'"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "dirección no válida para el modificador de salida 'R'"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "se esperaba una referencia de memoria para el modificador de salida 'S'"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "dirección no válida para el modificador de saida 'S'"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "se esperaba un registro o expresión de memoria para el modificador de salida 'N'"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "se esperaba un registro o expresión de memoria para el modificador de salida 'M'"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "constante no válida para el modificador de salida '%c'"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "constante no válida - pruebe usar un modificador de salida"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "vector constante no válido para el modificador de salida '%c'"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "expresión no válida - pruebe usar un modificador de salida"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "expresión no válida para el modificador de salida '%c'"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 msgid "vector argument passed to unprototyped function"
 msgstr "se pasó un argumento vector a una función sin prototipo"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr "los tipos difieren en el signo"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr "el operador binario no admite dos operadores bool vector"
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr "el operador binario no admite operador bool vector"
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr "el operador binario no admite que se mezclen operandos bool vector y vector de coma flotante"
 
@@ -21661,12 +21661,12 @@ msgstr "({anónimo})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "se esperaba %<;%>"
@@ -21679,7 +21679,7 @@ msgstr "se esperaba %<;%>"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21688,7 +21688,7 @@ msgstr "se esperaba %<;%>"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "se esperaba %<)%>"
@@ -21696,7 +21696,7 @@ msgstr "se esperaba %<)%>"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "se esperaba %<]%>"
@@ -21707,29 +21707,29 @@ msgstr "se esperaba %<;%>, %<,%> o %<)%>"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "se esperaba %<(%>"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "se esperaba %<[%>"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "se esperaba %<{%>"
@@ -21739,17 +21739,17 @@ msgstr "se esperaba %<{%>"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "se esperaba %<:%>"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "se esperaba %<while%>"
@@ -21758,8 +21758,8 @@ msgstr "se esperaba %<while%>"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "se esperaba %<,%>"
@@ -21769,17 +21769,17 @@ msgid "expected %<.%>"
 msgstr "se esperaba %<.%>"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "se esperaba %<@end%>"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "se esperaba %<>%>"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "se esperaba %<,%> o %<)%>"
@@ -21787,33 +21787,33 @@ msgstr "se esperaba %<,%> o %<)%>"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "se esperaba %<=%>"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "se esperaba %<}%>"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "expected %<else%>"
 msgstr "se esperaba %<delete%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "se esperaba %<#pragma omp section%> o %<}%>"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -21821,7 +21821,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "(anónimo)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "se esperaba %<<%>"
@@ -21838,23 +21838,23 @@ msgstr "se esperaba etiqueta"
 msgid "candidate:"
 msgstr "candidato 1:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 #| msgid "Enable user-defined instructions."
 msgid "  after user-defined conversion:"
 msgstr "Activa las instrucciones definidas por el usuario."
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "el candidato es:"
 msgstr[1] "los candidatos son:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "candidato 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "candidato 2:"
 
@@ -22106,7 +22106,7 @@ msgstr "%r%s:%d:%d:%R   en la expansión de la %<constexpr%> de %qs"
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr "%r%s:%d:%R   en la expansión de la %<constexpr%> de %qs"
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "los candidatos son:"
 
@@ -22150,48 +22150,48 @@ msgstr "la conversión descarta la constancia"
 msgid "source type is not polymorphic"
 msgstr "el tipo fuente no es polimórfico"
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "argumento de tipo erróneo para el decremento unario"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "argumento de tipo erróneo para el incremento unario"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "argumento de tipo erróneo para complemento de bits"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "argumento de tipo erróneo para abs"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "argumento de tipo erróneo para la conjugación"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 msgid "in argument to unary !"
 msgstr "en el argumento para el ! unario"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr "no hay operador de pre-incremento para el tipo"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr "no hay operador de post-incremento para el tipo"
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr "no hay operador de pre-decremento para el tipo"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr "no hay operador de post-decremento para el tipo"
 
@@ -22277,7 +22277,7 @@ msgstr "Característica obsoleta:"
 msgid "Deleted feature:"
 msgstr "Característica borrada:"
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr "asignación de matriz"
 
@@ -22486,11 +22486,11 @@ msgstr "bloque IF"
 msgid "implied END DO"
 msgstr "END DO implícito"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "asignación"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "asignación de puntero"
 
@@ -22651,47 +22651,47 @@ msgstr "El operando del operador de usuario %%<%s%%>  en %%L es %s"
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "Los operandos del operador de usuario %%<%s%%> en %%L son %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr "Variable de ciclo"
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr "variable de iterador"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr "Expresión de inicio en el bucle DO"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr "Expresión de fin en el bucle DO"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr "Expresión de paso en el bucle DO"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr "objeto DEALLOCATE"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr "objeto ALLOCATE"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr "variable STAT"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr "variable ERRMSG"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr "elemento en READ"
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr "variable ACQUIRED_LOCK"
 
@@ -22700,11 +22700,11 @@ msgstr "variable ACQUIRED_LOCK"
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "Longitudes de CHARACTER diferentes (%ld/%ld) en el constructor de matriz"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr "Desborde entero al calcular la cantidad de memoria a reservar"
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr "El valor del parámetro PDT LEN '%s' no concuerda con el de la declaración «dummy»"
@@ -22719,12 +22719,12 @@ msgstr "La longitud de la cadena actual no coincide con la declarada para el arg
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "La longitud de la cadena actual es más corta que la declarada para el argumento dummy '%s' (%ld/%ld)"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr "El objetivo del remapeo de rango es demasiado pequeño (%ld < %ld)"
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr "Asignación de escalar a un array sin espacio asignado"
 
@@ -22733,86 +22733,86 @@ msgstr "Asignación de escalar a un array sin espacio asignado"
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr "Longitudes de caracteres desiguales (%ld/%ld) en %s"
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "argumentos 'a%d' y 'a%d' para el intrínseco '%s'"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "argumentos 'a%d' y 'a%d' para el intrínseco '%s'"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "El argumento NCOPIES del intrínseco REPEAT es negativo (su valor es %ld)"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "El argumento NCOPIES del intrínseco REPEAT es demasiado grande"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "argumentos 'a%d' y 'a%d' para el intrínseco '%s'"
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "argumentos 'a%d' y 'a%d' para el intrínseco '%s'"
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "argumentos 'a%d' y 'a%d' para el intrínseco '%s'"
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -22834,15 +22834,15 @@ msgstr "La etiqueta asignada no es una etiqueta objetivo"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr "Número de imagen %d no válido en SYNC IMAGES"
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr "El bucle itera infinitamente"
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr "Se modificó la variable de ciclo"
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr "El valor de paso de DO es cero"
 
@@ -22921,7 +22921,7 @@ msgid "expected boolean type"
 msgstr "se esperaba un tipo booleano"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr "se esperaba un entero"
@@ -22986,7 +22986,7 @@ msgstr "faltan argumentos"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "demasiados argumentos"
@@ -23637,7 +23637,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "-mrelax sólo se admite pare el PIC de RTP"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "Error sintáctico en la declaración %s en %C"
@@ -24103,8 +24103,8 @@ msgstr "Se hace caso omiso del atributo %qE debido a un conflicto con el atribut
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, gcc-internal-format
 msgid "previous declaration here"
 msgstr "declaración previa aquí"
@@ -24121,7 +24121,7 @@ msgstr "se descarta la directiva de atributo %qE"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "se descarta la directiva de atributo de alcance %<%E::%E%>"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "se especificó el número equivocado de argumentos para el atributo %qE"
@@ -24132,7 +24132,7 @@ msgstr "se especificó el número equivocado de argumentos para el atributo %qE"
 msgid "expected %i or more, found %i"
 msgstr "se esperaba %<(%> o fin de línea"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expected %<(%> or end of line"
 msgid "expected %i, found %i"
@@ -24200,12 +24200,12 @@ msgstr "se descartan los atributos de tipo después de que el tipo ya se defini
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -24214,7 +24214,7 @@ msgstr "se descartan los atributos de tipo después de que el tipo ya se defini
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -24236,8 +24236,8 @@ msgstr "se descarta el atributo %qE"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr "falta el atributo %<target%> para %qD multiversionado"
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "declaración previa de %qD"
@@ -24349,7 +24349,7 @@ msgstr "no se puede leer el perfil de función de %s"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "el desplazamiento %qwi fuera de los límites de la constante de cadena"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared here"
 msgid "%qE declared here"
@@ -24463,7 +24463,7 @@ msgstr "argumento %qs no válido para %qs"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 #| msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
@@ -24487,44 +24487,44 @@ msgstr "el segundo argumento de %<__builtin_longjump%> debe ser 1"
 msgid "target format does not support infinity"
 msgstr "el formato objetivo no soporta infinito"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 #| msgid "%<va_start%> used in function with fixed args"
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "se usó %<va_start%> en una función con argumentos fijos"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "número erróneo argumentos para la función %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "se llamó a %<__builtin_next_arg%> sin un argumento"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "número erróneo de argumentos para la función %<__builtin_next_arg%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "el segundo parámetro de %<va_start%> no es el último argumento nombrado"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr "la conducta es indefinida cuando el segundo parámetro de %<va_start%> se declara con almacenamiento %<register%>"
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 #| msgid "%Kfirst argument of %qD must be a pointer, second integer constant"
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "%Kel primer argumento de %qD debe ser un puntero, el segundo una constante entera"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 #| msgid "%Klast argument of %qD is not integer constant between 0 and 3"
 msgid "last argument of %qD is not integer constant between 0 and 3"
@@ -25603,12 +25603,12 @@ msgstr "se descarta el atributo %<weakref%> porque ya se inicializó la variable
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "se usa %q+F pero nunca se define"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F se declaró %<static%> pero nunca se define"
@@ -26201,7 +26201,7 @@ msgstr "region_array no coincide con region_tree"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "lp_array no coincide con region_tree"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, fuzzy, gcc-internal-format
 #| msgid "open %s failed: %s"
 msgid "%qs failed"
@@ -26232,19 +26232,19 @@ msgstr ""
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 #| msgid "%Kcall to %qs declared with attribute error: %s"
 msgid "call to %qs declared with attribute error: %s"
 msgstr "%Kla llamada a %qs se redeclaró con error de atributo: %s"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 #| msgid "%Kcall to %qs declared with attribute warning: %s"
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "%Kla llamada a %qs se redecló con aviso de atributo: %s"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, fuzzy, gcc-internal-format
 #| msgid "assuming signed overflow does not occur when simplifying %<abs (X)%> to %<X%> or %<-X%>"
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
@@ -26281,7 +26281,7 @@ msgstr "se truncó la constante de coma fija grande implícitamente al tipo de c
 msgid "comparison is always %d due to width of bit-field"
 msgstr "la comparación siempre es %d debido a la anchura del campo de bit"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr "se asume que el desbordamiento con signo no sucede al simplificar la prueba de rango"
@@ -26460,7 +26460,7 @@ msgstr "no se pueden obtener los tiempos de proceso: %m"
 msgid "%s signal terminated program %s"
 msgstr "la señal %s terminó el programa %s"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option %qs"
 msgid "unrecognized command-line option %qs"
@@ -26741,7 +26741,7 @@ msgstr "la especificación multilib %qs es no válida"
 msgid "multilib exclusions %qs is invalid"
 msgstr "las exclusiones multilib %qs son no válidas"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "la selección multilib %qs %qs no es válida"
@@ -27065,24 +27065,24 @@ msgstr "%K%qD: el límite %E especificado excede el tamaño del destino %E"
 msgid "%qD specified bound %E equals source length"
 msgstr "el límite de %G%qD especificado %E es igual a la longitud del origen"
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member not at end of struct"
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "el miembro de matriz flexible no está al final del struct"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "-mn is not supported for linux targets"
 msgid "%s not supported for variable length aggregates"
 msgstr "no se admite -mn para objetivos linux"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ifunc is not supported on this target"
 msgid "%s not supported on this target"
@@ -27124,16 +27124,16 @@ msgid "function returns address of local variable"
 msgstr "la función devuelve la dirección de una variable local"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -27146,271 +27146,271 @@ msgstr "se declara aquí"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr "argumento %qD no nulo comparado con NULL"
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr "la salida %qE podría truncarse antes del último carácter de formato"
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr "la salida %qE podría truncarse antes del último carácter de formato"
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr "%qE podría escribir un nul al final del destino"
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr "%qE se escribe un nul al final del destino"
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] "directiva %<%.*s%> escribiendo %wu byte en una región de tamaño %wu"
 msgstr[1] "directiva %<%.*s%> escribiendo %wu bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] "salida de la directiva %<%.*s%> podría truncarse escribiendo %wu byte en una región de tamaño %wu"
 msgstr[1] "salida de la directiva %<%.*s%> podría truncarse escribiendo %wu bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] "salida de la directiva %<%.*s%> truncada escribiendo %wu byte en una región de tamaño %wu"
 msgstr[1] "salida de la directiva %<%.*s%> truncada escribiendo %wu bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr "la salida de la directiva %<%.*s%> podría truncarse al escribir hasta %wu bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr "salida de la directiva %<%.*s%> truncada escribiendo hasta %wu bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr "directiva %<%.*s%> escribiendo hasta %wu bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "la salida de la directiva %<%.*s%> podría truncarse escribiendo probablemente %wu o más bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "salida de la directiva %<%.*s%> truncada escribiendo probablemente %wu o más bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr "directiva %<%.*s%> escribiendo probablemente %wu o más bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "la salida de la directiva %<%.*s%> podría truncarse escribiendo entre %wu y %wu bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "salida de la directiva %<%.*s%> truncada escribiendo entre %wu y %wu bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr "directiva %<%.*s%> escribiendo entre %wu y %wu bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr "la salida de la directiva %<%.*s%> podría truncarse escribiendo %wu o más bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr "salida de la directiva %<%.*s%> truncada escribiendo %wu o más bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr "directiva %<%.*s%> escribiendo %wu o más bytes en una región de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "directiva %<%.*s%> escribiendo %wu byte en una región de un tamaño entre %wu y %wu"
 msgstr[1] "directiva %<%.*s%> escribiendo %wu bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "la salida de la directiva %<%.*s%> podría truncarse al escribir %wu byte en una región de un tamaño entre %wu y %wu"
 msgstr[1] "la salida de la directiva %<%.*s%> podría truncarse al escribir %wu bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "salida de la directiva %<%.*s%> truncada escribiendo %wu byte en una región de un tamaño entre %wu y %wu"
 msgstr[1] "salida de la directiva %<%.*s%> truncada escribiendo %wu bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "la salida de la directiva %<%.*s%> podría truncarse escribiendo hasta %wu bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "salida de la directiva %<%.*s%> truncada escribiendo hasta %wu bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "directiva %<%.*s%> escribiendo hasta %wu bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "la salida de la directiva %<%.*s%> podría truncarse escribiendo probablemente %wu o más bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "salida de la directiva %<%.*s%> truncada escribiendo probablemente %wu o más bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "directiva %<%.*s%> escribiendo probablemente %wu o más bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "la salida de la directiva %<%.*s%> podría truncarse escribiendo entre %wu y %wu bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "salida de la directiva %<%.*s%> truncada escribiendo entre %wu y %wu bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "directiva %<%.*s%> escribiendo entre %wu y %wu bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "la salida de la directiva %<%.*s%> podría truncarse escribiendo %wu o más bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "salida de la directiva %<%.*s%> truncada escribiendo %wu o más bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "directiva %<%.*s%> escribiendo %wu o más bytes en una región de un tamaño entre %wu y %wu"
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, fuzzy, gcc-internal-format
 #| msgid "%<%.*s%> directive argument is null"
 msgid "%<%.*s%> directive argument is null"
 msgstr "el argumento de la directiva %<%.*s%> es nulo"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr "la salida de la directiva %<%.*s%> de %wu bytes supera el tamaño mínimo requerido de 4095"
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr "la salida de la directiva %<%.*s%> entre %wu y %wu bytes supera el tamaño mínimo requerido de 4095"
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr "la salida de la directiva %<%.*s%> entre %wu y %wu bytes podría superar el tamaño mínimo requerido de 4095"
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, fuzzy, gcc-internal-format
 #| msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr "la salida de la directiva %<%.*s%> de %wu bytes provoca que el resultado supere %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, fuzzy, gcc-internal-format
 #| msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr "la salida de la directiva %<%.*s%> entre %wu y %wu bytes provoca que el resultado supere %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "la salida de la directiva %<%.*s%> de %wu bytes provoca que el resultado supere %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "la salida de la directiva %<%.*s%> entre %wu y %wu bytes provoca que el resultado supere %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr "la salida de la directiva %<%.*s%> entre %wu y %wu bytes podría provocar que el resultado supere %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, fuzzy, gcc-internal-format
 #| msgid "%<%.*s%> directive argument is null"
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr "el argumento de la directiva %<%.*s%> es nulo"
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, fuzzy, gcc-internal-format
 #| msgid "argument %qD declared here"
 msgid "referenced argument declared here"
 msgstr "el argumento %qD se declara aquí"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] "se asume salida de directiva de %wu byte"
 msgstr[1] "se asume salida de directiva de %wu bytes"
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "argumento de la directiva %qE"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr "argumento de la directiva en el rango de [%E, %E]"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr "se utiliza el rango [%E, %E] para el argumento de la directiva"
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, fuzzy, gcc-internal-format
 #| msgid "%qE output %wu byte into a destination of size %wu"
 msgid "%qE output %wu byte into a destination of size %wu"
@@ -27418,61 +27418,61 @@ msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] "%qE manda %wu byte a un destino de tamaño %wu"
 msgstr[1] "%qE manda %wu byte a un destino de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr "%qE manda entre %wu y %wu bytes a un destino de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr "%qE manda %wu o más bytes (se asume %wu) a un destino de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr "%qE manda %wu o más bytes a un destino de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, fuzzy, gcc-internal-format
 #| msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgid "%qE output between %wu and %wu bytes"
 msgstr "%qE manda entre %wu y %wu bytes a un destino de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, fuzzy, gcc-internal-format
 #| msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr "%qE manda %wu o más bytes (se asume %wu) a un destino de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, fuzzy, gcc-internal-format
 #| msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgid "%qE output %wu or more bytes"
 msgstr "%qE manda %wu o más bytes a un destino de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr "anchura de la directiva %<%.*s%> fuera de rango"
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr "precisión de la directiva %<%.*s%> fuera de rango"
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 #, fuzzy
 #| msgid "%qD source argument is the same as destination"
 msgid "%qE argument %Z overlaps destination object %qE"
@@ -27480,7 +27480,7 @@ msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] "el argumento origen %qD es el mismo que el destino"
 msgstr[1] "el argumento origen %qD es el mismo que el destino"
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 #, fuzzy
 #| msgid "%qE output %wu byte into a destination of size %wu"
 msgid "%qE argument %Z may overlap destination object %qE"
@@ -27488,39 +27488,39 @@ msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] "%qE manda %wu byte a un destino de tamaño %wu"
 msgstr[1] "%qE manda %wu byte a un destino de tamaño %wu"
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr "el límite especificado %wu supera el tamaño máximo del objeto %wu"
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr "el límite especificado %wu supera %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, fuzzy, gcc-internal-format
 #| msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr "el límite especificado %wu supera %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 #| msgid "null destination pointer"
 msgid "null destination pointer"
 msgstr "puntero de destino nulo"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr "el límite especificado %wu supera el tamaño %wu del objeto de destino"
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 #| msgid "null format string"
 msgid "null format string"
@@ -28414,12 +28414,12 @@ msgstr "modo de puntero %qs no válido"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD se declara aquí"
@@ -29268,7 +29268,7 @@ msgstr "el elemento %u tiene ubicación-x == %u"
 msgid "token %u has %<y-location == %u%>"
 msgstr "el elemento %u tiene ubicación-y == %u"
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "uso no válido del atribute  %<fallthrough%>"
@@ -29624,18 +29624,18 @@ msgstr "está definido como puntero a un tipo diferente en otra unidad de traduc
 msgid "mismatching definition"
 msgstr "falta la definición"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, fuzzy, gcc-internal-format
 #| msgid "invalid function in gimple call"
 msgid "invalid fnsummary in LTO stream"
 msgstr "función no válida en la llamada gimple"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr "falta el resumen de inclusión en línea ipa en el fichero de entrada"
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, fuzzy, gcc-internal-format
 #| msgid "ipa inline summary is missing in input file"
 msgid "IPA modref summary is missing in input file"
@@ -30773,77 +30773,77 @@ msgstr "error al escribir a %s: %m"
 msgid "error closing optimization records %qs"
 msgstr "Realiza optimizaciones de saltos cruzados."
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 #| msgid "command line option %qs is not supported by this configuration"
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "la opción de línea de órdenes %qs no se admite en esta configuración"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "faltan argumentos para %qs"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs should be a non-negative integer"
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "el argumento para %qs debe ser un entero no negativo"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "el argumento para %qs debe ser un entero no negativo"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "el argumento para %qs no está entre %d y %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument %qs to %qs"
 msgid "invalid argument in option %qs"
 msgstr "argumento %qs no válido para %qs"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, fuzzy, gcc-internal-format
 #| msgid "FPX fast and compact options cannot be specified together"
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "las opciones de FPX fast y compact no pueden especificarse juntas"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "no se reconoce el argumento en la opción %qs"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "los argumentos válidos para %qs son: %s; ¿quiso decir %qs?"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "los argumentos válidos para %qs son: %s"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "la opción %qs ya no se admite"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qE attribute larger than %d"
 msgid "argument to %qs is bigger than %d"
 msgstr "el argumento para el atributo %qE es más grande que %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, fuzzy, gcc-internal-format
 #| msgid "malformed COLLECT_GCC_OPTIONS"
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
@@ -30925,8 +30925,8 @@ msgstr "el argumento para %<-O%> debe ser un entero no negativo, %<g%>, %<s%> o
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "%qs es incompatible con %qs"
@@ -31717,7 +31717,7 @@ msgstr "la variable de registro global después de una definición de función"
 msgid "register of %qD used for multiple global register variables"
 msgstr "se usó el registro de %qD para múltiples variables de registro globales"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "genera un conflicto con %qD"
@@ -32185,45 +32185,45 @@ msgstr "la sección del alias %q+D debe cuadrar con la sección de su objetivo"
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "no se admite __builtin_saveregs en este objetivo"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 #| msgid "ifunc is not supported on this target"
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "no se admiten ifunc en este objetivo"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "no se admiten funciones anidadas en este objetivo"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "no se admiten trampolines de funciones anidadas para este objetivo"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "no se admiten constructores globales en este objetivo"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "no se admiten los destructores globales en este objetivo"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "el atributo target no se admite en esta plataforma"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "el atributo target no se admite en esta plataforma"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC target is not supported for this machine"
 msgid "%<#pragma GCC target%> is not supported for this machine"
@@ -33434,86 +33434,86 @@ msgstr "BB %i tiene un borde incorrecto"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "BB %i tiene un borde de respaldo incorrecto"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "la función %q+F nunca se puede copiar porque recibe un goto que no es local"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "la función %q+F nunca se puede copiar porque guarda direcciones de etiqueta local en una variable estática"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "la función %q+F nunca se puede incluir en línea porque usa alloca (forzar usando el atributo always_inline)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "la función %q+F nunca se puede incluir en línea porque usa setjmp"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "la función %q+F nunca se puede incluir en línea porque usa listas variables de argumentos"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "la función %q+F nunca se puede incluir en línea porque usa manejo de excepciones setjmp-longjmp"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "la función %q+F nunca se puede incluir en línea porque contiene un goto que no es local"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "la función %q+F nunca se puede incluir en línea porque usa __builtin_return o __builtin_apply_args"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "la función %q+F nunca se puede incluir en línea porque contiene un goto calculado"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "la función %q+F nunca se puede incluir en línea porque usa listas variables de argumentos"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "la función %q+F nunca puede ser incluida en línea porque se suprime al usar -fno-inline"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "la función %q+F nunca puede ser incluida en línea porque utiliza atributos que generan conflictos con la inclusión en línea"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 #| msgid "inlining failed in call to always_inline %q+F: %s"
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "falló la inclusión en línea en la llamada a always_inline %q+F: %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "llamado desde aquí"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, gcc-internal-format
 msgid "called from this function"
 msgstr "llamada desde esta función"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "falló la inclusión en línea en la llamada a %q+F: %s"
@@ -33572,29 +33572,29 @@ msgstr "tipo de elemento no válido para el atributo %qs"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "uso no válido del atribute  %<fallthrough%>"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "in a call to non-static member function %qD"
 msgstr "uso no válido de la función miembro no static %qD"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "argument %u null where non-null expected"
 msgid "argument %u null where non-null expected"
 msgstr "argumento %u nulo donde se esperaba no nulo"
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "en una llamada a la función interna %qD"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 #| msgid "in a call to function %qD declared here"
 msgid "in a call to function %qD declared %qs"
@@ -33832,7 +33832,7 @@ msgstr "%qE no está inicializado"
 msgid "%qs may be used uninitialized"
 msgstr "puede ser que se utilice %qD sin inicializar en esta función"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD se declaró aquí"
@@ -34071,7 +34071,7 @@ msgstr "la condición vectorial se expandirá por piezas"
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr "la operación de ordenamiento vectorial se expandirá por piezas"
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr "no se ha producido vectorización para un bucle simd"
@@ -34086,131 +34086,131 @@ msgstr "elemento no constante en CONSTRUCTOR constante"
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr "elemento con efectos colaterales en CONSTRUCTOR sin efectos colaterales"
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "las matrices de funciones no tienen significado"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "el tipo de devolución de función no puede ser función"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "revisión de árbol: %s, se tiene %s en %s, en %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "revisión de árbol: no se esperaba ninguno de %s, se tiene %s en %s, en %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "revisión de árbol: se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "revisión de árbol: no se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "revisión de árbol: se esperaba omp_clause %s, se tiene %s en %s, en %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "revisión de árbol: se esperaba un árbol que contenga la estructura %qs, se tiene %qs en %s, en %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_int_cst with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "revisión de árbol: acceso de elt %d de tree_int_cst con %d elts en %s, en %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "revisión de árbol: acceso de elt %d de tree_vec con %d elts en %s, en %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "revisión de árbol: acceso del operando %d de %s con %d operandos en %s, en %s:%d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at %s:%d"
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "revisión de árbol: acceso del operando %d de omp_clause %s con %d operandos en %s, en %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qD es obsoleto: %s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qD es obsoleto"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE es obsoleto: %s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%qE es obsoleto"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "el tipo es obsoleto: %s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "el tipo es obsoleto"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable: %s"
 msgstr "%qD no es una variable"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable"
 msgstr "%qD no es una variable"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable: %s"
 msgstr "%qD no es una variable"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable"
 msgstr "%qD no es una variable"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "open %s failed: %s"
 msgid "type is unavailable: %s"
 msgstr "falló al abrir %s: %s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "type is unavailable"
@@ -34236,308 +34236,308 @@ msgstr "%qD no es una variable"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr "tipo variante difiere en %s"
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_SIZE_UNIT"
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr "tipos variantes difieren en TYPE_SIZE_UNIT"
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, fuzzy, gcc-internal-format
 #| msgid "type variant's TYPE_SIZE_UNIT"
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr "TYPE_SIZE_UNIT del tipo variante"
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, fuzzy, gcc-internal-format
 #| msgid "type's TYPE_SIZE_UNIT"
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr "TYPE_SIZE_UNIT del tipo"
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, fuzzy, gcc-internal-format
 #| msgid "type variant with TYPE_ALIAS_SET_KNOWN_P"
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr "tipo variante con TYPE_ALIAS_SET_KNOWN_P"
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_VFIELD"
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr "tipo variante con diferente TYPE_VFIELD"
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_BINFO"
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr "tipo variante con diferente TYPE_BINFO"
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, fuzzy, gcc-internal-format
 #| msgid "type variant's TYPE_BINFO"
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr "TYPE_BINFO del tipo variante"
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, fuzzy, gcc-internal-format
 #| msgid "type's TYPE_BINFO"
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr "TYPE_BINFO del tipo"
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_FIELDS"
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr "tipo variante con diferente TYPE_FIELDS"
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr "el primer descuadre es campo"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr "y campo"
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TREE_TYPE"
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr "tipo variante con diferente TREE_TYPE"
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, fuzzy, gcc-internal-format
 #| msgid "type variant's TREE_TYPE"
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr "TREE_TYPE del tipo variante"
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, fuzzy, gcc-internal-format
 #| msgid "type's TREE_TYPE"
 msgid "type%'s %<TREE_TYPE%>"
 msgstr "TREE_TYPE del tipo"
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "el tipo no es compatible con su variante"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qT is not a template type"
 msgid "type %s is not an opaque type"
 msgstr "%qT no es un tipo plantilla"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "type %s is not with opaque mode"
 msgstr "el tipo %qT no es una base directa de %qT"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_BINFO"
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr "tipo variante con diferente TYPE_BINFO"
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_SIZE_UNIT"
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr "tipos variantes difieren en TYPE_SIZE_UNIT"
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_BINFO"
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr "tipo variante con diferente TYPE_BINFO"
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_SIZE_UNIT"
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr "tipos variantes difieren en TYPE_SIZE_UNIT"
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 #| msgid "Main variant is not defined"
 msgid "main variant is not defined"
 msgstr "La variante principal no está definida"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_MAIN_VARIANT has different TYPE_MAIN_VARIANT"
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr "TYPE_MAIN_VARIANT tiene diferente TYPE_MAIN_VARIANT"
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CANONICAL has different TYPE_CANONICAL"
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr "TYPE_CANONICAL tiene diferente TYPE_CANONICAL"
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CANONICAL is not compatible"
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr "TYPE_CANONICAL no es compatible"
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_MODE of TYPE_CANONICAL is not compatible"
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr "TYPE_MODE de TYPE_CANONICAL no es compatible"
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_VFIELD is not FIELD_DECL nor TREE_LIST"
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr "TYPE_VFIELD no es FIELD_DECL ni TREE_LIST"
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_NEXT_PTR_TO is not POINTER_TYPE"
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr "TYPE_NEXT_PTR_TO no es POINTER_TYPE"
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_NEXT_REF_TO is not REFERENCE_TYPE"
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr "TYPE_NEXT_REF_TO no es REFERENCE_TYPE"
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_BINFO is not TREE_BINFO"
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr "TYPE_BINFO no es TREE_BINFO"
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_BINFO type is not TYPE_MAIN_VARIANT"
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr "El tipo TYPE_BINFO no es TYPE_MAIN_VARIANT"
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_METHOD_BASETYPE is not record nor union"
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr "TYPE_METHOD_BASETYPE no es registro ni unión"
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_OFFSET_BASETYPE is not record nor union"
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr "TYPE_OFFSET_BASETYPE no es registro ni unión"
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_ARRAY_MAX_SIZE not INTEGER_CST"
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr "TYPE_ARRAY_MAX_SIZE no es INTEGER_CST"
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_MAX_VALUE_RAW non-NULL"
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr "TYPE_MAX_VALUE_RAW no NULL"
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_LANG_SLOT_1 (binfo) field is non-NULL"
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr "El campo TYPE_LANG_SLOT_1 (binfo) es no NULL"
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, fuzzy, gcc-internal-format
 #| msgid "Enum value is not CONST_DECL or INTEGER_CST"
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr "El valor enumerado no es CONST_DECL ni INTEGER_CST"
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, fuzzy, gcc-internal-format
 #| msgid "Enum value type is not INTEGER_TYPE nor convertible to the enum"
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr "El tipo de valor enumerado no es INTEGER_TYPE ni puede convertirse al enumerado"
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, fuzzy, gcc-internal-format
 #| msgid "Enum value name is not IDENTIFIER_NODE"
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr "El nombre de valor enumerado no es IDENTIFIER_NODE"
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 #| msgid "Array TYPE_DOMAIN is not integer type"
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "El array TYPE_DOMAIN no es de un tipo entero"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_FIELDS defined in incomplete type"
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "TYPE_FIELDS definidos en un tipo incompleto"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, fuzzy, gcc-internal-format
 #| msgid "Wrong tree in TYPE_FIELDS list"
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr "Árbol incorrecto en una lista TYPE_FIELDS"
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CACHED_VALUES_P is %i while TYPE_CACHED_VALUES is %p"
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr "TYPE_CACHED_VALUES_P es %i mientras que TYPE_CACHED_VALUES es %p"
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CACHED_VALUES is not TREE_VEC"
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr "TYPE_CACHED_VALUES no es TREE_VEC"
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, fuzzy, gcc-internal-format
 #| msgid "wrong TYPE_CACHED_VALUES entry"
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr "entrada TYPE_CACHED_VALUES incorrecta"
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, fuzzy, gcc-internal-format
 #| msgid "TREE_PURPOSE is non-NULL in TYPE_ARG_TYPES list"
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr "TREE_PURPOSE es no NULL en una lista TYPE_ARG_TYPES"
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, fuzzy, gcc-internal-format
 #| msgid "Wrong entry in TYPE_ARG_TYPES list"
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr "Entrada incorrecta en una lista TYPE_ARG_TYPES"
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_VALUES_RAW field is non-NULL"
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr "El campo TYPE_VALUES_RAW es no NULL"
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CACHED_VALUES_P is set while it should not"
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr "TYPE_CACHED_VALUES_P está activado y no debería"
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_METHOD_BASETYPE is not main variant"
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
@@ -34765,7 +34765,7 @@ msgstr "no se admiten las definiciones de alias en esta configuración"
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "no se admiten los atributos de visibilidad en esta configuración; descartados"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -34999,7 +34999,7 @@ msgstr "se descarta el atributo %qE porque %qT ya está definido"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "se descarta el atributo %qE porque %qT ya está definido"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "el atributo %qE sólo tiene efecto en objetos públicos"
@@ -35191,7 +35191,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "el atributo %qE no tiene efecto en variables automáticas"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "no se puede especificar el atributo %qE para las variables locales"
@@ -35543,7 +35543,7 @@ msgstr "%qD no es compatible con %qD"
 msgid "%qE argument is not a function"
 msgstr "el argumento %qE no es una función"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "el mensaje obsoleto no es una cadena"
@@ -36104,7 +36104,7 @@ msgstr "ISO C++ no permite %<alignof%> aplicado a un tipo de función"
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "ISO C no permite %<_Alignof%> aplicado a un tipo de función"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "aplicación no válida de %qs a un tipo void"
@@ -36239,17 +36239,17 @@ msgstr "atributo %<fallthrough%> especificado múltiples veces"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "el atributo %<fallthrough%> se especificó con un parámetro"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "faltan argumentos para la función %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -36381,181 +36381,181 @@ msgstr "se intentó tomar la dirección del miembro de la estructura de campos d
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr "el índice %E denota un desplazamiento mayor que el tamaño de %qT"
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "el tamaño de la matriz es demasiado grande"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "el tipo %qT del operando es incompatible con el argumento %d de %qE"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE makes pointer from integer without a cast"
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "el paso del argumento %d de %qE crea un puntero desde un entero sin una conversión"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 #| msgid "left argument must be a slice"
 msgid "both arguments must be compatible"
 msgstr "el argumento izquierdo debe ser una rebanada"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "número incorrecto de argumentos para la función %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "el argumento 1 de %qE debe ser un tipo puntero que no sea void"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 #| msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "el argumento 1 de %qE debe ser un puntero a un tipo de tamaño constante"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "el argumento 1 de %qE debe ser un puntero a un tipo de tamaño constante"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "el argumento 1 de %qE debe ser un puntero a un objeto de tamaño diferente de cero"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "el argumento %d de %qE debe ser un tipo puntero"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "el argumento %d de %qE debe ser un puntero a un tipo de tamaño constante"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "el argumento %d de %qE no debe ser un puntero a función"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "no coincide el tamaño en el argumento %d de %qE"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE must be a pointer to a constant size type"
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "el argumento %d de %qE debe ser un puntero a un tipo de tamaño constante"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards %qv qualifier from pointer target type"
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "el paso del argumento %d de %qE descarta el calificador %qv del tipo del destino del puntero"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE must be a pointer to a constant size type"
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "el argumento %d de %qE debe ser un puntero a un tipo de tamaño constante"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards %qv qualifier from pointer target type"
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "el paso del argumento %d de %qE descarta el calificador %qv del tipo del destino del puntero"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "argumento de modelo de memoria %d que no es entero de %qE"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "argumento de modelo de memoria %d no válido de %qE"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "el valor del índice está fuera del límite"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "la conversión del escalar %qT al vector %qT implica truncado"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "la función interna %qE ha de ser llamada directamente"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "size of array %qE is not a constant expression"
 msgstr "el tamaño de la matriz %qD no es una expresion constante integral"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "size of array is not a constant expression"
 msgstr "el tamaño de la matriz no es una expresion constante integral"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qE is negative"
 msgid "size %qE of array %qE is negative"
 msgstr "el tamaño de la matriz %qE es negativo"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array is negative"
 msgstr "el tamaño de la matriz es negativo"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, fuzzy, gcc-internal-format
 #| msgid "%Kargument %i value %qE exceeds maximum object size %E"
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr "%Kargumento %i, valor %qE, supera el tamaño máximo %E del objeto"
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, fuzzy, gcc-internal-format
 #| msgid "%K%qD specified size %E exceeds maximum object size %E"
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr "%K%qD: el tamaño especificado %E excede el tamaño máximo %E del objeto"
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 #| msgid "%Kargument %i value %qE exceeds maximum object size %E"
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "%Kargumento %i, valor %qE, supera el tamaño máximo %E del objeto"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, fuzzy, gcc-internal-format
 #| msgid "specified bound %wu exceeds maximum object size %wu"
 msgid "size of array exceeds maximum object size %qE"
 msgstr "el límite especificado %wu supera el tamaño máximo del objeto %wu"
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -37216,7 +37216,7 @@ msgstr "la constante entera es demasiado grande para el tipo %<unsigned long%>"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "la constante entera es demasiado grande para el tipo %<unsigned long%>"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int%d%> is not supported on this target"
 msgid "%<_BitInt(%d)%> is not supported on this target"
@@ -37302,7 +37302,7 @@ msgstr "no se admite la concatenación no estándar de literales de cadena"
 msgid "traditional C rejects string constant concatenation"
 msgstr "C tradicional rechaza la concatenación de constantes de cadenas"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -37361,7 +37361,7 @@ msgstr "cláusula %<depend(source)%> especificada junto con cláusulas %<depend(
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr "la cláusula %<ordered%> con parámetro no se puede especificar en la construcción %qs"
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "tipo no válido para la variable de iteración %qE"
@@ -37376,17 +37376,17 @@ msgstr "variable de iteración %<_Atomic%> %qE"
 msgid "%qE is not initialized"
 msgstr "%qE no está inicializado"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "falta el predicado controlador"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "predicado controlador no válido"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "falta la expresión de incremento"
@@ -37396,7 +37396,7 @@ msgstr "falta la expresión de incremento"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "expresión de incremento no válida"
@@ -37487,7 +37487,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -37498,7 +37498,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qD no es un argumento de función"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr "campo de bits %qE en cláusula %qs"
@@ -38140,7 +38140,7 @@ msgid "wrong type argument to %s"
 msgstr "argumento de tipo erróneo para %s"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -39098,35 +39098,35 @@ msgstr "comparación entre %qT y %qT"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -39358,129 +39358,129 @@ msgstr "-mregparm=%d no está entre 0 y %d"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr "para la opción -mcache-block-size=X, las X válidas son: 4, 8, 16, 32, 64, 128, 256, o 512"
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> requires %<-mfp32%>"
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr "%<-march=%s%> requiere %<-mfp32%>"
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s: ISA string must begin with rv32 or rv64"
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr "-march=%s: la cadena ISA debe empezar por rv32 o rv64"
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s: invalid ISA string"
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr "-march=%s: cadena ISA no válida"
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> requires %<-mfp32%>"
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr "%<-march=%s%> requiere %<-mfp32%>"
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s: ISA string must begin with rv32 or rv64"
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr "-march=%s: la cadena ISA debe empezar por rv32 o rv64"
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, fuzzy, gcc-internal-format
 #| msgid "Do not use the SPE ABI extensions."
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr "No usa las extensiones de ABI SPE."
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "-mcpu=%s genera conflicto con -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "-mcpu=%s genera conflicto con -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr "%<-march=%s%> no es compatible con la ABI seleccionada"
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "%<-march=%s%> no es compatible con la ABI seleccionada"
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s: ISA string must begin with rv32 or rv64"
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr "-march=%s: la cadena ISA debe empezar por rv32 o rv64"
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, fuzzy, gcc-internal-format
 #| msgid "%<%s%> is unknown"
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%<%s%> es desconocido"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -39923,13 +39923,13 @@ msgstr "se esperaba %qT pero el argumento es de tipo %qT"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "se esperaba %qT pero el argumento es de tipo %qT"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma GCC optimize%> is not a string or number"
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC optimize%> no es una cadena o un número"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 #| msgid "unknown #pragma GCC coprocessor %E"
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
@@ -40572,7 +40572,7 @@ msgstr "el paso de parámetro para argumentos de tipo %qT ha cambiado en GCC 7.1
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, fuzzy, gcc-internal-format
 #| msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
@@ -40656,12 +40656,12 @@ msgid "unknown tuning option (%s)"
 msgstr "opción de cadena de ajuste desconocida (%s)"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -40673,7 +40673,7 @@ msgid "specify a system register with a small string length"
 msgstr "Especifica el orden de asignación de registros"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "%qs no es un desplazamiento válido en %qs"
@@ -40873,9 +40873,9 @@ msgstr "el pragma o atributo %<target(\"%s\")%> no acepta forma negada"
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "el pragma o atributo %<target(\"%s=%s\")%> no es válido"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "el argumento del atributo %<target%> no es una cadena"
@@ -40933,21 +40933,21 @@ msgid "virtual function multiversioning not supported"
 msgstr "No se admiten versiones múltiples de funciones virtuales"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 #| msgid "multiversioning needs ifunc which is not supported on this target"
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "el versionado múltiple necesita ifunc, que no se admite en este objetivo"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 #, fuzzy
 #| msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr "el paso de parámetro para argumentos de tipo %qT ha cambiado en GCC 7.1"
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 #, fuzzy
 #| msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
@@ -40964,8 +40964,8 @@ msgstr "el paso de parámetro para argumentos de tipo %qT ha cambiado en GCC 7.1
 msgid "lane %wd out of range %wd - %wd"
 msgstr "vía %wd fuera de rango %wd - %wd"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported simdlen %d"
 msgid "unsupported simdlen %wd"
@@ -40977,7 +40977,7 @@ msgstr "simdlen %d no admitido"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "no se admite el tipo de retorno %qT para simd"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr "no se admite el tipo de retorno %qT para simd"
@@ -40988,7 +40988,7 @@ msgstr "no se admite el tipo de retorno %qT para simd"
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "no se admite el tipo de argumento %qT para simd"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "no se admite el tipo de argumento %qT para simd"
@@ -41090,8 +41090,8 @@ msgstr "latencia de caché L%d desconocida para %s"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "valor %qs erróneo para -mmemory-latency"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "fcode interno erróneo"
@@ -41220,18 +41220,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "el argumento del atributo %qE no es \"ilink\" o \"firq\""
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -41349,7 +41349,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "falta el argumento del atributo %qE"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "el atributo %qE sólo permite una constante entera como argumento"
@@ -41370,25 +41370,25 @@ msgstr "el atributo %qE se aplica solamente a tipos"
 msgid "argument of %qE attribute ignored"
 msgstr "falta el argumento del atributo %qE"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "el atributo %qE solamente se aplica a variables"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, fuzzy, gcc-internal-format
 #| msgid "alternatives not allowed in asm flag output"
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr "no se permiten alternativas en la salida del indicador asm"
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, fuzzy, gcc-internal-format
 #| msgid "unknown asm flag output %qs"
 msgid "unknown %<asm%> flag output %qs"
 msgstr "salida del indicador asm %qs desconocida"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for asm flag output"
 msgid "invalid type for %<asm%> flag output"
@@ -41654,7 +41654,7 @@ msgstr "el CPU objetivo no admite las instrucciones THUMB"
 msgid "target CPU does not support unaligned accesses"
 msgstr "el CPU objetivo no admite accesos sin alinear"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support branch-likely instructions"
 msgid "This architecture does not support branch protection instructions"
@@ -41710,7 +41710,7 @@ msgstr "el límite del tamaño de la estructura sólo se puede establecer a 8 o
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "El PIC de RTP es incompatible con -msingle-pic-base"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in x32 mode"
 msgid "FDPIC mode is not supported in Thumb-1 mode"
@@ -41827,7 +41827,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr "el paso de parámetro para argumentos de tipo %qT ha cambiado en GCC 7.1"
@@ -41868,45 +41868,45 @@ msgstr "el atributo %qE no tiene efecto en funciones con enlazado estático"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "el atributo %qE se aplica solamente al tipo base de un puntero a función"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr "%s %wd fuera de rango %wd - %wd"
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "no se puede calcular la ubicación real del parámetro apilado"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected end of module"
 msgid "Unexpected thumb1 far jump"
 msgstr "Fin de módulo inesperado"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "no hay registros inferiores disponibles para extraer registros superiores"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "no se pueden codificar las Rutinas de Servicios de Interrupción en el modo Thumb"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, fuzzy, gcc-internal-format
 #| msgid "-fstack-check=specific for Thumb-1"
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr "-fstack-check=specific para Thumb-1"
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr "fpu no válida para el atributo o pragma del objetivo %qs"
@@ -41914,22 +41914,22 @@ msgstr "fpu no válida para el atributo o pragma del objetivo %qs"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr "selección automática de fpu actualmente no permitida aquí"
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "arquitectura no válida para el atributo o pragma objetivo %qs"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr "atributo o pragma objetivo %qs desconocido"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 #| msgid "address mode %qs not supported in the %s bit mode"
 msgid "%<asm%> flags not supported in thumb1 mode"
@@ -41984,167 +41984,167 @@ msgstr "arquitecturas de núcleo no admitidas:%s"
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "arquitectura de núcleo %qs desconocida especificada con %qs"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 #| msgid "-fpic is not supported"
 msgid "%<-fpic%> is not supported"
 msgstr "no se admite -fpic"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 #| msgid "-fPIC is not supported"
 msgid "%<-fPIC%> is not supported"
 msgstr "no se admite -fPIC"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 #| msgid "-fpie is not supported"
 msgid "%<-fpie%> is not supported"
 msgstr "no se admite -fpie"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 #| msgid "-fPIE is not supported"
 msgid "%<-fPIE%> is not supported"
 msgstr "no se admite -fPIE"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "los atributos de función %qs y %qs son mutuamente excluyentes"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "la función %qs no puede tener argumentos"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "la función %qs no puede devolver un valor"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs parece ser un manejador %s mal escrito; falta el prefijo %<__vector%>"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr "%qs es un identificador invertido en AVR-LibC.  Plantéese %<#include <avr/interrupt.h>%> antes de usar la macro %qs"
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr "%qs es un identificador invertido en AVR-LibC.  Plantéese %<#include <avr/interrupt.h>%> antes de usar la macro %qs"
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr "%<builtin_return_address%> sólo contiene 2 bytes de dirección"
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr "el desplazamiento del puntero desde el símbolo tal vez es incorrecto"
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr "se accede a memoria de datos con dirección de memoria de programa"
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr "se accede a memoria de programa con dirección de memoria de datos"
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr "se usó el registro fijo %s para pasar un parámetro a la función"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "no se admite escribir al espacio de direcciones %qs"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "el atributo %qE se aplica solamente a variables en almacenamiento estático"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "solo se admite el atributo %qE núcleos Tiny reducidos"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute address out of range"
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "la dirección del atributo %qE está fuera de rango"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr "tanto el atributo %s como el %qE proporcionan dirección"
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "atributo %qE en variable no volátil"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "no se admiten espacios de direcciones para dispositivos Tiny reducidos"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "no se admite el espacio de direcciones %qs para dispositivos con tamaño de flash de hasta %d KiB"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr "el espacio de direcciones %qs que apuntan a punteros debe ser const en %qT"
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr "el espacio de direcciones %qs que apuntan a punteros debe ser const en %s %q+D"
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object %qD may not be initialized"
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "el objeto de tamaño variable %qD no se puede inicializar"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr "la variable %q+D debe ser const para que se ponga en la sección de sólo lectura a través de %qs"
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, fuzzy, gcc-internal-format
 #| msgid "static IO declaration for %q+D needs an address"
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "la declaración de ES estática para %q+D necesita una dirección"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 #| msgid "only uninitialized variables can be placed in the .noinit section"
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "Sólo las variables sin inicializar se pueden colocar en la sección .noinit"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "se colocó la variable %q+D con inicialización dinámica en el área de memoria del programa"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "se colocó la variable %q+D sin inicializar en el área de memoria del programa"
@@ -42153,43 +42153,43 @@ msgstr "se colocó la variable %q+D sin inicializar en el área de memoria del p
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object %qD may not be initialized"
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "el objeto de tamaño variable %qD no se puede inicializar"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%q+D tiene atributos incompatibles %qs y %qs"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "la arquitectura %qs sólo se admite para ensamblador"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "vonversión del espacio de direcciones %qs al espacio de direcciones %qs"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "%s expera una constante entera en tiempo de compilación"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%s espera una constante entera long en tiempo de compilación como primer argumento"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr "redondear a %d bits no tiene ningún efecto en valores de coma fija con %d bits de fracción"
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr "el resultado del redondeo será siempre 0"
@@ -42346,7 +42346,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "la llamada requiere ifunc, que no se admite en este objetivo"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -43035,8 +43035,8 @@ msgstr "el penúltimo argumento debe ser un inmediato de 8-bit"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr "Las versiones de funciones no pueden marcarse como gnu_inline; hay que generar cuerpos"
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "el modelo de código %s no admite el modo PIC"
@@ -43107,273 +43107,273 @@ msgstr "se especificaron demasiados rangos de tamaños en la opción %qs"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr "parámetro desconocido para la opción -mtune-ctrl: %s"
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "no se admite Intel MCU psABI en el modo %s"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%<-mtune=x86-64%> es obsoleto; use en su lugar %<-mtune=k8%> o %<-mtune=generic%> como sea adecuado"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%<target(\"tune=x86-64\")%> es obsoleto; use %<target(\"tune=k8\")%> o %<target(\"tune=generic\")%> en su lugar como convenga"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "no se admite -mstringop-stategy=rep_8byte para código de 32-bit"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32-bit systems"
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-mcmodel= no se admite en sistemas de 32 bits"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32-bit systems"
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "-mcmodel= no se admite en sistemas de 32 bits"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "no se admite -mstringop-stategy=rep_8byte para código de 32-bit"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32-bit systems"
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "-mcmodel= no se admite en sistemas de 32 bits"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "el modelo de direcciones %qs no se admite en el modo de bit %s"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 #| msgid "-mabi=ms not supported with X32 ABI"
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "no se admite -mabi=ms con X32 ABI"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, fuzzy, gcc-internal-format
 #| msgid "transactional memory is not supported with %<-fsanitize=address%>"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "la memoria transaccional no se admite con %<-fsanitize=address%>"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, fuzzy, gcc-internal-format
 #| msgid "transactional memory is not supported with %<-fsanitize=kernel-address%>"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "la memoria transaccional no se admite con %<-fsanitize=kernel-address%>"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, fuzzy, gcc-internal-format
 #| msgid "%<-fsanitize=leak%> is incompatible with %<-fsanitize=thread%>"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "%<-fsanitize=leak%> es incompatible con %<-fsanitize=thread%>"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "el modelo de código %qs no se admite en el modo de bit %s"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "el modelo de código %qs no se admite en modo x32"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 #| msgid "-masm=intel not supported in this configuration"
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "no se admite -masm=intel en esta configuración"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "no está compilado el modo bit-%i"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "la CPU %<generic%> solo se puede usar para el ajuste %<-tune=%>"
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "la CPU %<generic%> solo se puede usar para el atributo %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "la CPU %<intal%> solo se puede usar para el ajuste %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "la CPU %<intel%> solo se puede usar para el atributo %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "el CPU que seleccionó no admite el conjunto de instrucciones x86-64"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<-march=%> switch"
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "valor erróneo (%qs) para la opción %<-march=%>"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<target(\"arch=\")%> attribute"
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "valor erróneo (%qs) para el atributo %<target(\"arch=\")%>"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "los argumentos válidos para la opción %<-march=%> son: %s; ¿quiso decir %qs?"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr "los argumentos válidos para el atributo %<target(\"arch=\")%> son: %s; ¿qiuso decir %qs?"
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "los argumentos válidos para la opción %<-march=%> son: %s"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "los argumentos válidos para el atributo %<target(\"arch=\")%> son: %s"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<-mtune=%> switch"
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "valor erróneo (%qs) para la opción %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<target(\"tune=\")%> attribute"
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "valor erróneo (%qs) para el atributo %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "los argumentos válidos para la opción %<-mtune=%> son: %s; ¿quiso decir %qs?"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr "los argumentos válidos para el atributo %<target(\"tune=\")%> son: %s; ¿quiso decir %qs?"
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "los argumentos válidos para la opción %<-mtune=%> son: %s"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "los argumentos válidos para el atributo %<target(\"tune=\")%> son: %s"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm is ignored in 64-bit mode"
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "se descarta -mregparm en modo de 64-bit"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm is ignored for Intel MCU psABI"
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "se descarta -mregparm para Intel MCU psABI"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm=%d is not between 0 and %d"
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "-mregparm=%d no está entre 0 y %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "-mnop-mcount no es compatible con este objetivo"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "se descarta %<-mrtd%> en el modo de 64bit"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "se descarta %<target(\"rtd\")%> en el modo de 64bit"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -43381,311 +43381,311 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary is not supported for this target"
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "no se admite -mpreferred-stack-boundary en este objetivo"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and %d"
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d no está entre %d y %d"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 #| msgid "-mincoming-stack-boundary=%d is not between %d and 12"
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mincoming-stack-boundary=%d no está entre %d y 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "-mnop-mcount no es compatible con este objetivo"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not implemented for -fPIC"
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "-mnop-mcount no está implementada para -fPIC"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "se usó %<-msseregparm%> sin SSE activado"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "se usó %<target(\"ssseregparm\")%> sin SSE activado"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "el conjunto de instrucciones SSE está desactivado, usando la aritmética 387"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "el conjunto de instrucciones 387 está desactivado, usando la aritmética SSE"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "la prueba de pila requiere %<-maccumulate-outgoing-args%> para ser correcta"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "la prueba de pila requiere %<target(\"accumulate-outgoing-args\"%> para ser correcta"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr "el registro ebp fijo requiere %<-maccumulate-outgoing-args%>"
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr "el registro ebp fijo requiere %<target(\"accumulate-outgoing-args\")%>"
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, fuzzy, gcc-internal-format
 #| msgid "-mfentry isn%'t supported for 32-bit in combination with -fpic"
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr "-mfentry no se admite para 32-bit en combinación con -fpic"
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 #| msgid "-mno-fentry isn%'t compatible with SEH"
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "-mno-fentry no es compatible con SEH"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, fuzzy, gcc-internal-format
 #| msgid "-mcall-ms2sysv-xlogues is not compatible with %s"
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr "-mcall-ms2sysv-xlogues no es compatible con %s"
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 #| msgid "unknown option for -mrecip=%s"
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "opción desconocida para -mrecip=%s"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid number in -mstack-protector-guard-offset="
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs no es un número válido en -mstack-protector-guard-offset="
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid offset in -mstack-protector-guard-offset="
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs no es un desplazamiento válido en -mstack-protector-guard-offset="
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid base register in -mstack-protector-guard-reg="
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr "%qs no es un registro base válido en -mstack-protector-guard-reg="
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "-mnop-mcount no es compatible con este objetivo"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr "interrupción y atributos desnudos no es compatible"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 #| msgid "ms_abi and sysv_abi attributes are not compatible"
 msgid "%qs and %qs attributes are not compatible"
 msgstr "los atributos ms_abi y sysv_abi no son compatibles"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, fuzzy, gcc-internal-format
 #| msgid "Only DWARF debug format is supported for interrupt service routine."
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr "Solo se admite el formato de depuración DWARF para la rutina de servicio de interrupciones."
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "%<-mindirect-branch=%s%> y %<-mcmodel=large%> no son compatibles"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr "%<-mindirect-branch=%s%> y %<-mcmodel=large%> no son compatibles"
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "%<-mfunction-return=%s%> y %<-mcmodel=large%> no son compatibles"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr "%<-mfunction-return=%s%> y %<-mcmodel=large%> no son compatibles"
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, fuzzy, gcc-internal-format
 #| msgid "%s instructions aren't allowed in %s service routine"
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr "las instrucciones %s no se permiten en la rutina de servicio %s"
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, fuzzy, gcc-internal-format
 #| msgid "%s instructions aren't allowed in %s service routine"
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "las instrucciones %s no se permiten en la rutina de servicio %s"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, fuzzy, gcc-internal-format
 #| msgid "%s instructions aren't allowed in function with no_caller_saved_registers attribute"
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "Las instrucciones %s no están permitidas en funciones con el atributo no_caller_saved_registers"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "los atributos fastcall y regparm no son compatibles"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "los atributos regparam y thiscall no son compatibles"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "el atributo %qE requiere un argumento constante entero"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "el argumento para el atributo %qE es más grande que %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "los atributos fastcall y cdecl no son compatibles"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "los atributos fastcall y stdcall no son compatibles"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "los atributos fastcall y thiscall no son compatibles"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "los atributos stdcall y cdecl no son compatibles"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "los atributos stdcall y fastcall no son compatibles"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "los atributos stdcall y thiscall no son compatibles"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "los atributos cdecl y thiscall no son compatibles"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "se usó el atributo %qE para método no de clase"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "se descarta el atributo incompatible %qE"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "el atributo %qE solamente está disponible para 64-bit"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "el argumento del atributo %qE no es cero ni uno"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "el atributo %qE requiere una constante entera como argumento"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "el argumento del atributo %qE no es (keep|thunk|thunk-inline|thunk-extern)"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr "la rutina de servicio de interrupciones debería tener un puntero como primer argumento"
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt service routine should have unsigned %sint as the second argument"
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "la rutina de atención de interrupciones debería tener como segundo argumento un unsigned %sint"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr "la rutina de servicio de interrupciones solo puede tener un argumento puntero y un argumento entero opcional"
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt service routine can't have non-void return value"
 msgid "interrupt service routine must return %<void%>"
@@ -43895,53 +43895,53 @@ msgstr "no se admite el tamaño de operando para el registro extendido"
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "se usó un operando que no es entero con el código de operando 'z'"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, fuzzy, gcc-internal-format
 #| msgid "alignment of %qD is bigger than original declaration"
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr "la alineación de %qD es más grande que la declaración original"
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 #, fuzzy
 #| msgid "the mangling of %<va_list%> has changed in GCC 4.4"
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr "la decodificación de %<va_list%> cambió en GCC 4.4"
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, fuzzy, gcc-internal-format
 #| msgid "no low registers available for popping high registers"
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "no hay registros inferiores disponibles para extraer registros superiores"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32-bit systems"
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "-mcmodel= no se admite en sistemas de 32 bits"
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr "modelo de memoria específico de la arquitectura desconocido"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, fuzzy, gcc-internal-format
 #| msgid "HLE_ACQUIRE not used with ACQUIRE or stronger memory model"
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr "HLE_ACQUIRE no se usa con ACQUIRE o modelos de memoria más fuertes"
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, fuzzy, gcc-internal-format
 #| msgid "HLE_RELEASE not used with RELEASE or stronger memory model"
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr "HLE_RELEASE no se usa con RELEASE o modelos de memoria más fuertes"
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, fuzzy, gcc-internal-format
 #| msgid "-fdirectives-only is incompatible with -traditional"
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
@@ -43963,8 +43963,8 @@ msgstr "la definición de los datos miembro static %q+D de la clase dllimportada
 msgid "malformed %<#pragma builtin%>"
 msgstr "#pragma builtin malformado"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "argumento no válido del atributo %qE"
@@ -44024,12 +44024,12 @@ msgstr "PRINT_OPERAND: Puntuación desconocida '%c'"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "PRINT_OPERAND puntero nulo"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "el argumento %d para la función interna debe ser una constante en el rango entre %d y %d"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "fallo al expandir función interna"
@@ -44164,19 +44164,19 @@ msgstr "%qD no es compatible con %qD"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%<constexpr%> no se puede usar en declaraciones de tipo"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "no se puede especificar el atributo %qE para las variables locales"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "no se puede especificar el atributo %qE para las variables locales"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 #| msgid "Duplicate %s attribute at %L"
 msgid "multiple %qE attribute"
@@ -44290,12 +44290,12 @@ msgstr "no se permiten atributos interrupt múltiples"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "interrupt_thread sólo está disponible en fido"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "no se admite la expresión del límite de la pila"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 #| msgid "%<-fcf-protection=full%> is not supported for this target"
 msgid "%<-fexcess-precision=16%> is not supported on this target"
@@ -44342,7 +44342,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr "-mxl-multiply-high requiere -mno-xl-soft-mul"
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "el atributo %qE requiere una cadena como argumento"
@@ -44385,136 +44385,136 @@ msgstr "el vector de interrupciones para %qE no es vector=(sw0|sw1|hw0|hw1|hw2|h
 msgid "argument to %qE attribute is not intstack"
 msgstr "el argumento del atributo %qE no es intstack"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "no se pueden manejar llamadas inconsistentes a %qs"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr "el atributo %<interrupt%> requiere un procesador MIPS32r2 o superior"
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr "los manejadores de interrupciones no pueden ser funciones MIPS16"
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, fuzzy, gcc-internal-format
 #| msgid "-fstack-check=specific not implemented for MIPS16"
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr "-fstack-check=specific no implementado para MIPS16"
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "no se admite la función interna %qE para MIPS16"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs no admite código MIPS16"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr "PIC MIPS16 para ABIs diferentes de o32 y o64"
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, fuzzy, gcc-internal-format
 #| msgid "MIPS16 -mxgot code"
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "código MIPS16 -mxgot"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, fuzzy, gcc-internal-format
 #| msgid "hard-float MIPS16 code for ABIs other than o32 and o64"
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr "código MIPS16 de coma flotante hard para ABIs diferentes de o32 y o64"
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr "código MSA MIPS16"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> necesita %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "no se admite la combinación: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "%<-%s%> genera un conflicto con las otras opciones de la arquitectura, las cuales especifican un procesador %s"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%<-march=%s%> no es compatible con la ABI seleccionada"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "se utiliza %<-mgp64%> con un procesador de 32-bit"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "se utiliza %<-mgp32%> con una ABI de 64-bit"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "se utiliza %<-mgp64%> con una ABI de 32-bit"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "la arquitectura %qs no admite %<-mfp32%>"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "%<-mgp32%> y %<-mfp64%> sólo se pueden combinar si el objetivo admite las instrucciones mfhc1 y mthc1"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%> y %<-mfp64%> sólo se pueden combinar al usar la ABI o32"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "%<-mfpxx%> solo se puede usar con la ABI o32"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "%<-march=%s%> requiere %<-mfp32%>"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr "%<-mfpxx%> requiere %<-mlra%>"
@@ -44524,119 +44524,119 @@ msgstr "%<-mfpxx%> requiere %<-mlra%>"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "la combinacion de %qs y %qs es incompatible con %qs"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "la arquitectura %qs no admite las instrucciones con probabilidad de ramificación"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "la arquitectura %qs no admite las instrucciones madd ni msub"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "la arquitectura %qs no admite los registros de precisión sencilla impar"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr "no se admite la combinación: %qs%s %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr "no se admite la combinación: %qs %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "no se puede generar código independiente de posición para %qs"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "el código independiente de posición requiere %qs"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> necesita %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr "no se pueden usar accesos de data small para %qs"
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "la arquitectura %qs no admite %<-m%s=legacy%>"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "la arquitectura %qs no admite %<-m%s=2008%>"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "%<-mips3d%> requiere %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs se debe usar con %qs"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr "%<-mmsa%> debe usarse con %<-mfp64%> y %<-mhard-float%>"
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "la arquitectura %qs no admite las instrucciones par-sencillo"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "%qs requiere un objetivo que provea la instrucción %qs"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "la arquitectura %qs no admite las instrucciones DSP"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr "%<-mmsa%> debe usarse con %<-mfp64%> y %<-mhard-float%>"
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr "%<-mmsa%> debe usarse con %<-mfp64%> y %<-mhard-float%>"
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "%qs requiere instrucciones con probabilidad de ramificación"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "la arquitectura %qs no admite la instrucción synci"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "análisis de perfil de las funciones mips16"
@@ -45608,63 +45608,63 @@ msgstr "%<#pragma GCC optimize%> no es una cadena o un número"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "basura al final de #pragma GCC coprocessor %E"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, fuzzy, gcc-internal-format
 #| msgid "%qE appears more than once in data clauses"
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr "%qE aparece más de una vez en las cláusulas de datos"
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, fuzzy, gcc-internal-format
 #| msgid "%qE appears more than once in data clauses"
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr "%qE aparece más de una vez en las cláusulas de datos"
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 #| msgid "%qE appears more than once in data clauses"
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "%qE aparece más de una vez en las cláusulas de datos"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<target()%> pragma or attribute"
 msgid "malformed %<target()%> attribute"
 msgstr "pragma o atributo %<target()%> mal formado"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 #| msgid "pragma or attribute %<target(\"%s\")%> does not accept an argument"
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "el pragma o atributo %<target(\"%s\")%> no acepta un argumento"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, fuzzy, gcc-internal-format
 #| msgid "empty string in attribute %<target%>"
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "cadena vacía en el atributo %<target%>"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<target(\"%s\")%> pragma or attribute"
 msgid "malformed %<target(\"%s\")%> attribute"
@@ -45734,194 +45734,218 @@ msgstr "no se puede asignar un objeto de tipo abstracto %qT"
 msgid "capture by copy of RVV type %qT"
 msgstr "uso no válido del tipo incompleto %q#T"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+#| msgid "Builtin function %s requires the -mhtm option"
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "La función interna %s requiere la opción -mhtm"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+#| msgid "Builtin function %s requires the -mpaired option"
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "La función interna %s requiere la opción -mpaired"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+#| msgid "Builtin function %s requires the -mvsx option"
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "La función interna %s requiere la opción -mvsx"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+#| msgid "Builtin function %s requires the -mvsx option"
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "La función interna %s requiere la opción -mvsx"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 #| msgid "Builtin function %s requires the -mvsx option"
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "La función interna %s requiere la opción -mvsx"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%D(%A)%>"
 msgid "no matching function call to %qE with empty arguments"
 msgstr "no hay una función coincidente para la llamada a %<%D(%A)%>"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 #| msgid "unknown cpu %qs for -mtune"
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "cpu %qs desconocida para -mtune"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, fuzzy, gcc-internal-format
 #| msgid "Do not use the SPE ABI extensions."
 msgid "this operation requires the RVV ISA extension"
 msgstr "No usa las extensiones de ABI SPE."
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, fuzzy, gcc-internal-format
 #| msgid "the ABI of passing structure with complex float member has changed in GCC 4.4"
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "la ABI para pasar una estructura con un miembro de coma flotante compleja cambió en GCC 4.4"
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "Se pasó un argumento Altivec a una función sin prototipo"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 #| msgid "Use the SPE ABI extensions."
 msgid "%s %qT requires the V ISA extension"
 msgstr "Usa las extensiones de ABI SPE."
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, fuzzy, gcc-internal-format
 #| msgid "Use the SPE ABI extensions."
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr "Usa las extensiones de ABI SPE."
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, fuzzy, gcc-internal-format
 #| msgid "Use the SPE ABI extensions."
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr "Usa las extensiones de ABI SPE."
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, fuzzy, gcc-internal-format
 #| msgid "Use the SPE ABI extensions."
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr "Usa las extensiones de ABI SPE."
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, fuzzy, gcc-internal-format
 #| msgid "Use the SPE ABI extensions."
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr "Usa las extensiones de ABI SPE."
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, fuzzy, gcc-internal-format
 #| msgid "builtin function %qs requires the %qs option"
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "la función interna %qs requiere la opción %qs"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qE attribute is neither zero, nor one"
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "el argumento del atributo %qE no es cero ni uno"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 #| msgid "sizeof applied to a function type"
 msgid "%qs applied to non-RVV type %qT"
 msgstr "sizeof aplicado a un tipo de función"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires an integer constant argument"
 msgid "%qs requires an integer constant"
 msgstr "el atributo %qE requiere un argumento constante entero"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, fuzzy, gcc-internal-format
 #| msgid "-mdiv requires -march to subsume the %<M%> extension"
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr "-mdiv requiere -march para subsumir la extensión %<M%>"
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support ARM mode"
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "el CPU objetivo no tiene soporte para el modo ARM"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs with -f%s"
 msgid "code model %qs with %qs"
 msgstr "modelo de código %qs con -f%s"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, fuzzy, gcc-internal-format
 #| msgid "requested ABI requires -march to subsume the %qc extension"
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr "la ABI solicitada requiere -march para subsumir la extensión %qc"
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, fuzzy, gcc-internal-format
 #| msgid "ABI requires -march=rv%d"
 msgid "ABI requires %<-march=rv%d%>"
 msgstr "ABI requiere -march=rv%d"
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d must be between %d and %d"
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d debe estar entre %d y %d"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs no es un registro base válido en %qs"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs no es un número válido en %qs"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function cannot have arguments"
 msgid "%qs function cannot have different interrupt type"
 msgstr "la función %qs no puede tener argumentos"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -46193,36 +46217,36 @@ msgstr "el interno %qs sólo acepta 2 argumentos"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "el interno %qs solo acepta 3 argumentos"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, fuzzy, gcc-internal-format
 #| msgid "vec_lvsl is deprecated for little endian; use assignment for unaligned loads and stores"
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "vec_lvsl está obsoleta para little endian; utilize asignación para cargas y almacenajes no alineados"
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, fuzzy, gcc-internal-format
 #| msgid "vec_lvsr is deprecated for little endian; use assignment for unaligned loads and stores"
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "vec_lvsr está obsoleta para little endian; utilize asignación para cargas y almacenajes no alineados"
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards %qv qualifier from pointer target type"
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "el paso del argumento %d de %qE descarta el calificador %qv del tipo del destino del puntero"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "combinación de parámetros no válida para el intrínseco AltiVec %qs"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, fuzzy, gcc-internal-format
 #| msgid "builtin %qs requires builtin %qs"
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr "la función interna %qs requiere la función interna %qs"
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "%qs is not supported in this compiler configuration"
@@ -46265,31 +46289,23 @@ msgstr "operadores no válidos de tipos %qT y %qT para el binario %qO"
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "vector GCC pasado por referencia: extensión ABI que no es estándar sin garantía de compatibilidad"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, fuzzy, gcc-internal-format
-#| msgid "Use the ELFv2 ABI."
-msgid "%qs requires the ELFv2 ABI"
-msgstr "Usa el ABI ELFv2."
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "marco de pila demasiado grande"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "incorrect number of arguments to function %qE"
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "número incorrecto de argumentos para la función %qE"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr "%qs usa el registro r29"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, fuzzy, gcc-internal-format
 #| msgid "Stack frame larger than 2G is not supported for -fsplit-stack"
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
@@ -46423,109 +46439,119 @@ msgstr "%qs necesita un registro bae válido"
 msgid "unknown option for %<%s=%s%>"
 msgstr "opción desconocida para %<%s=%s%>"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "%qs está obsoleto y no está recomendada bajo ninguna circunstancia"
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "no hay análisis de perfil del código de 64-bit para esta ABI"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "no se puede tomar la dirección de una función anindada si se usa la opción %qs"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "el uso de %<long double%> en tipos AltiVec es no válido"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "el uso de tipos booleanos en tipos AltiVec es no válido"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "el uso de %<complex%> en tipos AltiVec es no válido"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 #| msgid "use of decimal floating point types in AltiVec types is invalid"
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "el uso de tipos de coma flotante decimal en tipos AltiVec es no válido"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "el uso de %<long%> en tipos AltiVec no es válido para código de 64 bits sin %qs"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "el uso de %<long%> en tipos AltiVec es obsoleto; use %<int%>"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "el uso de %<long long%> en tipos AltiVec no es válido sin %qs"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "el uso de %<double%> en tipos AltiVec no es válido sin %qs"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "cpu %qs no válida para %s%qs%s"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "%s%qs%s no está permitido"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr "%s%qs%s no es válido"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr "%<-mno=%s%> anula %<-m%s%>"
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "No se admiten versiones múltiples de funciones virtuales"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, fuzzy, gcc-internal-format
 #| msgid "builtin function %qs requires the %qs option"
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "la función interna %qs requiere la opción %qs"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, fuzzy, gcc-internal-format
 #| msgid "builtin function %qs requires the %qs option"
 msgid "type %<__vector_pair%> requires the %qs option"
@@ -46577,7 +46603,7 @@ msgstr "las instrucciones FPU de RX no admiten NaNs e infinitos"
 msgid "builtin %qs can only be used on vector types"
 msgstr "la interna vec_step solo puede usarse con tipos vectoriales."
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr "se requiere un valor constante para la interna %qF, argumento %d"
@@ -46654,250 +46680,250 @@ msgstr "%qs es obsoleto"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "el argumento constante %d para la función interna %qF está fuera de rango para el tipo de objetivo"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument %d for builtin %qF is out of range ("
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "el argumento constante %d para la función interna %qF está fuera de rango ("
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument %d for builtin %qF is out of range (0.."
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "el argumento constante %d para la función interna %qF está fuera de rango (0.."
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument %d for builtin %qF is out of range (0.."
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "el argumento constante %d para la función interna %qF está fuera de rango (0.."
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, fuzzy, gcc-internal-format
 #| msgid "builtin %qF is not supported without -mhtm (default with -march=zEC12 and higher)."
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr "la función interna %qF no se admite sin -mhtm (predeterminado con -march=zEC12 y superiores)."
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, fuzzy, gcc-internal-format
 #| msgid "builtin %qF requires -mvx (default with -march=z13 and higher)."
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr "la función interna %qF requiere -mvx (predeterminado con -march=z13 y superiores)."
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, fuzzy, gcc-internal-format
 #| msgid "Builtin %qF requires z14 or higher."
 msgid "Builtin %qF requires z14 or higher"
 msgstr "la función interna %qF requiere z14 o superior."
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, fuzzy, gcc-internal-format
 #| msgid "Builtin %qF requires z14 or higher."
 msgid "Builtin %qF requires z15 or higher"
 msgstr "la función interna %qF requiere z14 o superior."
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 #| msgid "<unresolved overloaded function type>"
 msgid "unresolved overloaded builtin"
 msgstr "<tipo de función sobrecargada sin resolver>"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "icode interno erróneo"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "argumento no válido %d para la función interna %qF"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr "el atributo %qE solicitado no es una pareja de constantes enteras no negativas separadas por coma o es demasiado grande (máx. %d)"
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "el argumento del atributo %qE no es (keep|thunk|thunk-extern)"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "el tamaño total de las variables locales excede el límite de la arquitectura"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, fuzzy, gcc-internal-format
 #| msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes.  An unconditional trap is added."
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr "el tamaño de marco de la función %qs de %wd bytes excede el límite de pila definido por el usuario de %d bytes.  Se agrega una trampa incondicional."
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, fuzzy, gcc-internal-format
 #| msgid "frame size of function %qs is %wd bytes which is more than half the stack size. The dynamic check would not be reliable. No check emitted for this function."
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr "el tamaño de marco de la función %qs de %wd bytes es mayor que la mitad del tamaño de la pila. La revisión dinámica no será confiable. No se emitirá revisión para esta función."
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "el tamaño de marco de %qs es de %wd bytes"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs utiliza alojamiento dinámico de pila"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, fuzzy, gcc-internal-format
 #| msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr "el paso de parámetro para argumentos de tipo %qT ha cambiado en GCC 7.1"
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 #| msgid "%<__RTL%> function cannot be compiled with %<-flto%>"
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "la función %<__RTL%> no se puede compilar con %<-flto%>"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "no se admite la ABI de 64-bit en el modo ESA/390"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, fuzzy, gcc-internal-format
 #| msgid "thunk-inline is only supported with -mindirect-branch-jump"
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr "thunk-inline solo se admite con -mindirect-branch-jump"
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr "vector de hardware no está disponible en %s"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, fuzzy, gcc-internal-format
 #| msgid "hardware vector support not available with -msoft-float"
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr "vector de hardware no está disponible con -msoft-float"
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "hardware decimal floating point instructions not available on %s"
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "las instrucciones de coma flotante decimal de hardware no están disponibles en %s"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "hardware decimal floating point instructions not available in ESA/390 mode"
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "las instrucciones de coma flotante decimal de hardware no están disponibles en el modo ESA/390"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float"
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr "-mhard-dfp no se puede usar en conjunción con -msoft-float"
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, fuzzy, gcc-internal-format
 #| msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "no se admiten -mbackchain -mpacked-stack -mhard-float en combinación"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "el tamaño de la pila debe ser mayor que el valor de la guardia de pila"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "el tamaño de la pila no debe ser mayor a 64k"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, fuzzy, gcc-internal-format
 #| msgid "-mstack-guard implies use of -mstack-size"
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "-mstack-guard implica el uso de -mstack-size"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is supported only for SH2A"
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "el atributo %qE solo se admite para SH2A"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "los argumentos para %qs deben ser enteros no negativos"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "el argumento para %qs es demasiado grande (máx. %d)"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, fuzzy, gcc-internal-format
 #| msgid "-mno-pic-data-is-text-relative cannot be used without -fpic/-fPIC"
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr "-mno-pic-data-is-text-relative no puede utilizarse sin -fpic/-fPIC"
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 #| msgid "attribute(target(\"%s\")) is unknown"
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "se desconoce attribute(target(\"%s\"))"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "no se admite el valor %qs para el atributo %<target%>"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 #| msgid "invalid fp constant"
 msgid "invalid cc output constraint: %qs"
 msgstr "constante fp no válida"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "-mhard-float not supported"
 msgid "multiple cc output constraints not supported"
 msgstr "no se admite -mhard-float"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, fuzzy, gcc-internal-format
 #| msgid "asm-specifier for variable %qE conflicts with asm clobber list"
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "el especificador asm para la variable %qE genera un conflicto con la lista de sobreescritura de asm"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for pointer diff"
 msgid "invalid type for cc output constraint"
@@ -47369,8 +47395,8 @@ msgstr "el atributo %qE no tiene efecto"
 msgid "attribute %qs applies to array types only"
 msgstr "el atributo %qs solamente se aplica a tipos de matriz"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "no se descarta el valor void como debería de ser"
@@ -47447,7 +47473,7 @@ msgstr "el tipo de la matriz %q+D se completó de forma incompatible con la inic
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "%qD ya se declaró en este ámbito"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr "se definió originalmente aquí"
@@ -47692,7 +47718,7 @@ msgstr "la declaración de %q+D oscurece a una declaración previa que no es var
 msgid "declaration of %qD shadows a parameter"
 msgstr "la declaración de %qD oscurece un parámetro"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "la declaración de %qD oscurece a una declaración global"
@@ -47702,7 +47728,7 @@ msgstr "la declaración de %qD oscurece a una declaración global"
 msgid "declaration of %qD shadows a previous local"
 msgstr "la declaración de %qD oscurece a una declaración local previa"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "aquí está la declaración oscurecida"
@@ -47768,7 +47794,7 @@ msgstr "%qE no se declaró aquí (primer uso en esta función)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "la etiqueta %qE es referenciada fuera de cualquier función"
@@ -47803,7 +47829,7 @@ msgstr "salto a una expresión de declaración"
 msgid "duplicate label declaration %qE"
 msgstr "declaración duplicada de la etiqueta %qE"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "etiqueta %qD duplicada"
@@ -47839,7 +47865,7 @@ msgstr "switch salta dentro de una expresión de declaración"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE definido como un tipo erróneo de etiqueta"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on types"
 msgid "%qE attribute applied to %qD with void return type"
@@ -47992,12 +48018,12 @@ msgstr "ISO C90 no admite declaradores de matriz %<[*]%>"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "no se permite %<[*]%> en otro lugar que no sea el ámbido de prototipo de función"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%s%> not allowed to be specified in this context"
@@ -48008,7 +48034,7 @@ msgstr "no se puede usar %<this%> en este contexto"
 msgid "%q+D is usually a function"
 msgstr "%q+D generalmente es una función"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "no hay declaración previa para %qD"
@@ -48088,7 +48114,7 @@ msgstr "no se puede poner un objeto con un campo volatile en register"
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "const %qD sin inicializar es no válida en C++"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr "%q+D en directiva de objetivo de declaración no tiene tipo asociable"
@@ -48279,7 +48305,7 @@ msgstr "se especificó una clase de almacenamiento para el parámetro %qE"
 msgid "storage class specified for unnamed parameter"
 msgstr "se especificó una clase de almacenamiento para un parámetro sin nombre"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "se especificó una clase de almacenamiento para el nombre de tipo"
@@ -48342,7 +48368,7 @@ msgstr "declaración de %qE como una matriz de funciones"
 msgid "declaration of type name as array of functions"
 msgstr "declaración de nombre de tipo como una matriz de funciones"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "uso no válido de una estructura con un miembro de matriz flexible"
@@ -48448,7 +48474,7 @@ msgstr "el nombre de tipo que se declaró como función devuelve una matriz"
 msgid "function definition has qualified void return type"
 msgstr "la definición de la función tiene un tipo de devolución void calificado"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "se descartan los calificadores de tipo en el tipo de devolución de la función"
@@ -48575,7 +48601,7 @@ msgstr "ISO C prohíbe los tipos de función const o volatile"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "un miembro de una estructura o union no puede tener un tipo modificado variablemente"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "se declaró la variable o campo %qE como void"
@@ -48684,7 +48710,7 @@ msgstr "función no anidada con tipo modificado variablemente"
 msgid "object with variably modified type must have no linkage"
 msgstr "un objeto con tipo modificado variablemente no debe tener enlace"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "la declaración de la función no es un prototipo"
@@ -48774,18 +48800,18 @@ msgstr "redefinición anidada de %<union %E%>"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "redefinición anidada de %<struct %E%>"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr "la definición de tipo en %qs es no válida en C++"
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 #| msgid "unknown field %qE specified in initializer"
 msgid "%qT defined in underspecified object initializer"
 msgstr "se especificó el campo desconocido %qE en el inicializador"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "la declaración no declara nada"
@@ -48815,362 +48841,362 @@ msgstr "una struct vacía tiene tamaño 0 en C y tamaño 1 en C++"
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr "una union vacía tiene tamaño 0 en C y tamaño 1 en C++"
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "union no tiene miembros nombrados"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "union no tiene miembros"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "struct no tiene miembros nombrados"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "struct no tiene miembros"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "miembro de matriz flexible en union"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "el miembro de matriz flexible no está al final del struct"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "miembro de matriz flexible en estructura sin miembros con nombre"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member not at end of struct"
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "el miembro de matriz flexible no está al final del struct"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "el tipo %qT es demasiado grande"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized scalar storage order value %qs"
 msgid "type punning toggles scalar storage order"
 msgstr "no se reconoce el valor del orden de almacenamiento de escalares %qs"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "union no se puede hacer transparente"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of typedef %q+D with variably modified type"
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "redefinición de la definición de tipo %q+D con un tipo modificado variablemente"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "redefinición de %<struct %E%>"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "redefinición anidada de %<enum %E%>"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "redeclaración de %<enum %E%>"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, fuzzy, gcc-internal-format
 #| msgid "specified mode too small for enumeral values"
 msgid "specified mode too small for enumerated values"
 msgstr "el modo especificado es demasiado pequeño para valores enumerados"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "los valores de enumeración exceden el rango del entero más grande"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "los valores de enumeración exceden el rango del entero más grande"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of %<enum %E%>"
 msgid "conflicting redefinition of enum %qT"
 msgstr "redefinición anidada de %<enum %E%>"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "el valor de enumerador para %qE no es una constante entera"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "el valor de enumerador para %qE no es una expresión constante entera"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "desbordamiento en valores de enumeración"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value %E is too large for underlying type %<%T%>"
 msgid "enumerator value outside the range of underlying type"
 msgstr "el valor de enumerador %E es demasiado grande para el tipo subyacente %<%T%>"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value %E is too large for underlying type %<%T%>"
 msgid "enumerator value outside the range of %qs"
 msgstr "el valor de enumerador %E es demasiado grande para el tipo subyacente %<%T%>"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C restringe los valores de enumeración al rango de %<int%>"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %qD given attribute noinline"
 msgid "inline function %qD given attribute %qs"
 msgstr "se le dió a la función incluida en línea %qD un atributo noinline"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "el tipo de devolución es un tipo de dato incompleto"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "el tipo de devolución por defecto es %<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, fuzzy, gcc-internal-format
 #| msgid "Warn about global functions without prototypes"
 msgid "%q+D defined as variadic function without prototype"
 msgstr "Avisa sobre funciones globales sin prototipos"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "no hay un prototipo previo para %qD"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "se usó %qD sin prototipo antes de su definición"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "se usó %qD sin declaración antes de su definición"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "el tipo de devolución de %qD no es %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr "calificado %<_Atomic%> el tipo de retorno de %qD"
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%qD generalmente es una función que no es static"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "declaraciones de parámetros de estilo antiguo en la definición de una función prototipo"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "C tradicional rechaza la definición de funciones de estilo ISO C"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support decimal floating point"
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "ISO C no admite coma flotante decimal"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr "definición de función de estilo antiguo"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "falta el nombre del parámetro de la lista de parámetros"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD se declaró como un no-parámetro"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "múltiples parámetros nombrados %qD"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "el parámetro %qD se declaró con tipo void"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "el tipo de %qD es %<int%> por defecto"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "el parámetro %qD tiene tipo incompleto"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "existe la declaración para el parámetro %qD pero no hay tal parámetro"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "el número de argumentos no coinciden con el prototipo interno"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "el número de argumentos no coinciden con el prototipo"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "declaración de prototipo"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "el argumento promovido %qD no coincide con el prototipo interno"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "el argumento promovido %qD no coincide con el prototipo"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "el argumento %qD no coincide con el prototipo interno"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "el argumento %qD no coincide con el prototipo"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "no hay una declaración de devolución en la función que no devuelve void"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "se definió el parámetro %qD pero no se usa"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "sólo se permiten las declaraciones iniciales del bucle %<for%> en modo C99 o C11"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, fuzzy, gcc-internal-format
 #| msgid "use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code"
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "use la opción -std=c99, -std=gnu99, -std=c11 o -std=gnu11 para compilar su código"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 no admite declaradores de matriz %<[*]%>"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "declaración de la variable static %qD en la declaración inicial del bucle %<for%>"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "declaración de la variable %<extern%> %qD en la declaración inicial del bucle %<for%>"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> se declaró en la declaración inicial del bucle %<for%>"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> se declaró en la declaración inicial del bucle %<for%>"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> se declaró en la declaración inicial del bucle %<for%>"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "declaración de %qD que no es variable en la declaración inicial del bucle %<for%>"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr "calificadores de espacio de direcciones incompatibles %qs y %qs"
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "especificador %qE de declaración duplicado"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "múltiples clases de almacenamiento en los especificadores de declaración"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<auto%>"
 msgid "%qs used with %<auto%>"
@@ -49178,262 +49204,262 @@ msgstr "se usó %qE con %<auto%>"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<register%>"
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "se usó %qE con %<register%>"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "dos o más tipos de datos en los especificadores de la declaración"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> es demasiado largo para GCC"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 no admite %<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 no admite tipos complejos"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO C no admite tipos saturantes"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "%qE duplicado"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C no admite los tipos %<__int%d%>"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "no se admite %<__int%d%> para este objetivo"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 no admite tipos booleanos"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support the %<_Float%d%s%> type"
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C no admite el tipo %<_float%d%s%>"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "no se admite %<_float%d%s%> para este objetivo"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support decimal floating point"
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C no admite coma flotante decimal"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "no se admiten tipos de coma fija para este objetivo"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C no admite tipos de coma fija"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 #| msgid "case label is not an integer constant expression"
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "la etiqueta de case no es una expresion constante entera"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant expression"
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "el valor de enumerador para %qE no es una expresión constante entera"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr "la búsqueda en C++ de %qD devolvería un campo, no un tipo"
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE falla al ser un typedef o un tipo interno del compilador"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE no está al inicio de la declaración"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "se usó %qE con %<auto%>"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "se usó %qE con %<register%>"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "se usó %qE con %<typedef%>"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<register%>"
 msgid "%qE used with %<constexpr%>"
 msgstr "se usó %qE con %<register%>"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "ISO C99 no admite %qE"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 no admite %qE"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> antes de %<extern%>"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> antes de %<static%>"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<auto%>"
 msgid "%<typedef%> used with %<auto%>"
 msgstr "se usó %qE con %<auto%>"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<register%>"
 msgid "%qE used with %<extern%>"
 msgstr "se usó %qE con %<register%>"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 #| msgid "%qs used with %qE"
 msgid "%qE used with %qs"
 msgstr "se usó %qs con %qE"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr "%<_Thread_local%> o %<__thread%> duplicado"
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "se usó %qs con %qE"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%<constexpr%> used with %qE"
 msgstr "se usó %<__thread%> con %qE"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "se usó %<_Sat%> sin %<_Fract%> o %<_Accum%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C no admite %<complex%> simples que significan %<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C90 no admite declaradores de matriz %<[*]%>"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C no admite tipos enteros complejos"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 #| msgid "Fixed line length must be at least seven."
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "La longitud de línea fija debe ser al menos de siete."
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<__int128%> for %qs"
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++ no admite %<__int128%> para %qs"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr "el combinador %<#pragma omp declare reduction%> hace referencia a la variable %qD, la cual no es %<omp_out%> ni %<omp_in%>"
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr "el nicializador %<#pragma omp declare reduction%> hace referencia a la variable %qD, la cual no es %<omp_priv%> ni %<omp_orig%>"
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr "desplazamiento a la izquierda o valor negativo"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "la cuenta de desplazamiento a la izquierda es negativa"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "la cuenta de desplazamiento a la derecha es negativa"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "cuenta de desplazamiento a la izquierda >= anchura del tipo"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "cuenta de desplazamiento a la derecha >= anchura del tipo"
@@ -49464,7 +49490,7 @@ msgstr "marcador de conflicto en control de versiones en el fichero"
 msgid "to match this %qs"
 msgstr "%J  otro tipo aquí"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr "se esperaba fin de línea"
@@ -49474,8 +49500,8 @@ msgstr "se esperaba fin de línea"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C prohíbe una unidad de traducción vacía"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -49516,9 +49542,9 @@ msgstr "nombre de tipo %qE desconocido; ¿quiso decir %qs?"
 msgid "unknown type name %qE"
 msgstr "nombre de tipo %qE desconocido"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "se esperaban especificadores de declaración"
@@ -49552,7 +49578,7 @@ msgstr "el atributo %<fallthrough%> no está seguido de %<;%>"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "se esperaba %<;>, identificador o %<(%>"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "se descartan los atributos de prefijo para los métodos"
@@ -49572,7 +49598,7 @@ msgstr "atributo inesperado"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "el atributo %<fallthrough%> no está seguido de %<;%>"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 #| msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgid "%<assume%> attribute not followed by %<;%>"
@@ -49668,7 +49694,7 @@ msgstr "la expresión en la aserción static no es una constante"
 msgid "static assertion failed: %E"
 msgstr "falló la aserción estática: %E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, fuzzy, gcc-internal-format
 #| msgid "static assertion failed: %E"
 msgid "static assertion failed"
@@ -49745,10 +49771,10 @@ msgstr "un enum vacío no es válido"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "se esperaba un identificador"
@@ -49911,7 +49937,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr "la cláusula %<nowait%> no debe utilizarse junto con %<copyprivate%>"
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -49921,8 +49947,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -50101,12 +50127,12 @@ msgstr "ISO C prohíbe la omisión del término medio de una expresión ?:"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr "la división %<sizeof (%T) / sizeof (%T)%> no computa el número de elementos del array"
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr "el primer operando %<sizeof%> se declaró aquí"
@@ -50258,7 +50284,7 @@ msgstr "ISO C90 no admite el identificador predefinido %<__func__%>"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "se esperaba una expresión"
@@ -50590,13 +50616,13 @@ msgstr "se esperaba una declaración método objective-c"
 msgid "no type or storage class may be specified here,"
 msgstr "ninguna clase de almacenamiento o tipo se puede especificar aquí,"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, fuzzy, gcc-internal-format
 #| msgid "unknown property attribute"
 msgid "empty property attribute list"
 msgstr "atributo de propiedad desconocido"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing property attribute"
@@ -50608,61 +50634,61 @@ msgstr "falta el atributo Code"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "atributo de propiedad desconocido"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "atributo de propiedad desconocido"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 #| msgid "repeated %<@%> before Objective-C string"
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "%<@%> repetida antes de la cadena Objective-C"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected %qE selector name"
 msgstr "se esperaba una declaración de selección"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, fuzzy, gcc-internal-format
 #| msgid "setter name must terminate with %<:%>"
 msgid "setter method names must terminate with %<:%>"
 msgstr "el nombre del setter debe terminar con %<:%>"
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr "%<#pragma GCC unroll%> requiere una expresión de asignación que evaluada dé una constante entera no negativa menor que %u"
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma %s%> sólo se puede usar en declaraciones compuestas"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<#pragma acc routine%> debe estar en el alcance del fichero"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp section%> sólo se puede usar en construcciones %<#pragma omp sections%>"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<#pragma omp section%> sólo se puede usar en construcciones %<#pragma omp sections%>"
@@ -50673,25 +50699,25 @@ msgstr "%<#pragma omp section%> sólo se puede usar en construcciones %<#pragma
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma %s%> sólo se puede usar en declaraciones compuestas"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "se esperaba una declaración for, while o do"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%> debe ser primero"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "demasiadas cláusulas %qs"
@@ -50707,65 +50733,65 @@ msgstr "la expresión debe ser integral"
 msgid "expected %<)%> or %<,%>"
 msgstr "se esperaba %<,%> o %<)%>"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD no es una variable"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD no es una variable puntero"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr "el argumento de collapse necesita una expresión entera constante positiva"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr "se esperaba %<none%> o %<present%>"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<simd%> or %<reduction%> or %<target%>"
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "se esperaba %<simd%>, %<reduction%> o %<target%>"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected constant logical expression"
 msgstr "se esperaba una expresión entera"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "se esperaba %<data%>, %<update%>, %<enter%> o %<exit%>"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "se esperaba %<data%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr "demasiadas cláusulas %<if%> con el modificador %qs"
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "demasiadas cláusulas %<if%>"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr "demasiadas cláusulas %<if%> sin modificador"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr "si alguna cláusula %<if%> tiene modificador, entonces todas las cláusulas %<if%> tienen que usar modificador"
@@ -50788,23 +50814,23 @@ msgstr "el valor de %<num_threads%> debe ser positivo"
 msgid "%<num_tasks%> value must be positive"
 msgstr "el valor de %<num_tasks%> debe ser positivo"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "el valor de %<grainsize%> debe ser positivo"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "el valor de %<priority%> debe ser no negativo"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "se esperaba una expresión entera"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> or %<max%>"
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
@@ -50816,102 +50842,102 @@ msgstr "se esperaba %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "se esperaba %<class%>, %<typename%> o %<template%>"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses with %qs modifier"
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "demasiadas cláusulas %<if%> con el modificador %qs"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses with %qs modifier"
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "demasiadas cláusulas %<if%> con el modificador %qs"
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "la expresión %qs debe ser integral"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "el valor de %qs debe ser positivo"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "demasiados argumentos %<static%>"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, gcc-internal-format
 msgid "unexpected argument"
 msgstr "argumento inesperado"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "el argumento de %<tile%> necesita una constante entera positiva"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses"
 msgid "too many %<self%> clauses"
 msgstr "demasiadas cláusulas %<if%>"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "se esperaba %<none%> o %<shared%>"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<new%>"
 msgid "expected %<concurrent%>"
 msgstr "se esperaba %<new%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "se esperaba %<class%>, %<typename%> o %<template%>"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, fuzzy, gcc-internal-format
 #| msgid "collapse argument needs positive constant integer expression"
 msgid "ordered argument needs positive constant integer expression"
 msgstr "el argumento de collapse necesita una expresión entera constante positiva"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "se esperaba %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> o identificador"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "se usaron al mismo tiempo los modificadores %<monotonic%> y %<nonmonotonic%>"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "el planificador %<runtime%> no toma un parámetro %<chunk_size%>"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "el planificador %<auto%> no toma un parámetro %<chunk_size%>"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "chunk size value must be positive"
 msgstr "el valor de %<num_threads%> debe ser positivo"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "género de planificador no válido"
@@ -50921,23 +50947,23 @@ msgstr "género de planificador no válido"
 msgid "%<num_teams%> value must be positive"
 msgstr "el valor de %<num_teams%> debe ser positivo"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "el valor de %<thread_limit%> debe ser positivo"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr "%Hel argumento de collapse necesita ser una expresión entera constante positiva"
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %<allocator%> or %<align%>"
@@ -50949,24 +50975,24 @@ msgstr "se esperaba %<,%> o %<)%>"
 msgid "duplicate %qs modifier"
 msgstr "%qs duplicado"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "%Hel argumento de collapse necesita ser una expresión entera constante positiva"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 #| msgid "multiple `virtual' specifiers"
 msgid "multiple linear modifiers"
 msgstr "especificadores `virtual' múltiples"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, fuzzy, gcc-internal-format
 #| msgid "multiple `virtual' specifiers"
 msgid "multiple %<step%> modifiers"
@@ -50990,69 +51016,69 @@ msgstr "%Hel argumento de collapse necesita ser una expresión entera constante
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr "%Hel argumento de collapse necesita ser una expresión entera constante positiva"
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 #| msgid "%qs feature modifier is incompatible with %s %s"
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "el modificador de característica %qs es incompatible con %s %s"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "tipo de dependencia no válida"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 #| msgid "invalid map kind"
 msgid "invalid doacross kind"
 msgstr "tipo de mapa no válida"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses with %qs modifier"
 msgid "too many %<always%> modifiers"
 msgstr "demasiadas cláusulas %<if%> con el modificador %qs"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses with %qs modifier"
 msgid "too many %<close%> modifiers"
 msgstr "demasiadas cláusulas %<if%> con el modificador %qs"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses with %qs modifier"
 msgid "too many %<present%> modifiers"
 msgstr "demasiadas cláusulas %<if%> con el modificador %qs"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, gcc-internal-format
 msgid "invalid map kind"
 msgstr "tipo de mapa no válida"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<present%>"
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "se esperaba %<none%> o %<present%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, fuzzy, gcc-internal-format
 #| msgid "schedule chunk size expression must be integral"
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr "la expresión schedule chunk size debe ser integral"
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 #| msgid "invalid schedule kind"
 msgid "invalid dist_schedule kind"
@@ -51070,91 +51096,91 @@ msgstr "género de planificador no válido"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "se esperaba %<;%>, %<,%> o %<)%>"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 #| msgid "expected pointer"
 msgid "expected an OpenACC clause"
 msgstr "se esperaba un puntero"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs no es válido para %qs"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%qs debe ser la primera cláusula de %qs"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 #| msgid "expected pointer"
 msgid "expected an OpenMP clause"
 msgstr "se esperaba un puntero"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr "no hay cláusulas válidas especificadas en %<#pragma acc declare%>"
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "sección de matriz en %<#pragma acc declare%>"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr "%qD debe ser una variable global en %<#pragma acc declare link%>"
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "cláusula OpenACC no válida en el alcance del fichero"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "uso no válido de la variable %<extern%> %qD en %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "uso no válido de la variable %<global%> %qD en %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr "%qD debe ser una variable global en %<#pragma acc declare link%>"
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr "La variable %qD se usa más de una vez con %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "se esperaba %<data%> después de %<#pragma acc %s%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr "%<#pragma acc %s data%> no tiene cláusula de movimiento de datos"
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -51169,7 +51195,7 @@ msgstr "%qE no se ha declarado"
 msgid "expected function name"
 msgstr "se esperaba nombre de función"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "%qD no hace referencia a una función"
@@ -51179,22 +51205,22 @@ msgstr "%qD no hace referencia a una función"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma acc routine%> no está inmediatamente seguido de una declaración o definición de función"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma acc routine%> no está inmediatamente seguido de una única declaración o definición de función"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "%<#pragma acc routine%> debe aplicarse antes de uso"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<#pragma acc routine%> debe aplicarse antes de definición"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr "%<#pragma acc update%> debe contener al menos una cláusula %<device%>, %<host%> o %<self%>"
@@ -51221,7 +51247,7 @@ msgstr ""
 msgid "modified here"
 msgstr "se definió union aquí"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
@@ -51263,125 +51289,125 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr "Aún no se admite la matriz polimórfica en %C"
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "se esperaba %<;%>, %<,%> o %<)%>"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "se esperaba %<class%>, %<typename%> o %<template%>"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr "se esperaba %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> o identificador"
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many atomic clauses"
 msgstr "demasiadas cláusulas %qs"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many memory order clauses"
 msgstr "demasiadas cláusulas %qs"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "%<#pragma omp target update%> debe contener al menos una cláusula %<from%> o %<to%>"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, fuzzy, gcc-internal-format
 #| msgid "%qs requires %qs"
 msgid "%qs clause requires %qs clause"
 msgstr "%qs requiere %qs"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp target update%> debe contener al menos una cláusula %<from%> o %<to%>"
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp target update%> debe contener al menos una cláusula %<from%> o %<to%>"
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr "%<#pragma omp target update%> debe contener al menos una cláusula %<from%> o %<to%>"
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr "%<#pragma omp target update%> debe contener al menos una cláusula %<from%> o %<to%>"
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%> after union definition"
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "se esperaba %<;%> después de la definición de union"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 #| msgid "invalid form of %<#pragma omp atomic%>"
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "forma no válida de %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "unexpected %<else%>"
 msgstr "se esperaba %<delete%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 #| msgid "invalid form of %<#pragma omp atomic%>"
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "forma no válida de %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "forma no válida de %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "operador no válido para %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic capture%> usa dos expresiones diferentes para la memoria"
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant-expression"
 msgid "%<depobj%> expression is not lvalue expression"
@@ -51393,30 +51419,30 @@ msgstr "la expresión %qE no es una expresión constante"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "la expresión %qE no es una expresión constante"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "se esperaba %<data%>, %<update%>, %<enter%> o %<exit%>"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "se esperaba %<;%>, %<,%> o %<)%>"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "se esperaba %<class%>, %<typename%> o %<template%>"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, fuzzy, gcc-internal-format
 #| msgid "%<linear%> clause may not be specified together with %<ordered%> clause with a parameter"
 msgid "%<flush%> list specified together with memory order clause"
@@ -51427,182 +51453,182 @@ msgstr "la cláusula %<linear%> no puede especificarse junto con la cláusula %<
 msgid "expected %<(%> or end of line"
 msgstr "se esperaba %<(%> o fin de línea"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp taskyield%> may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp taskyield%> sólo se puede usar en declaraciones compuestas"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<present%>"
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "se esperaba %<none%> o %<present%>"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected %<#pragma omp scan%>"
 msgstr "se esperaba una cláusula %<#pragma omp%>"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp taskyield%> may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp taskyield%> sólo se puede usar en declaraciones compuestas"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "se esperaba una declaración de iteración o una inicialización"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 #| msgid "not enough perfectly nested loops"
 msgid "not enough nested loops"
 msgstr "no hay suficientes bucles perfectamente anidados"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr "el parámetro de la cláusula %<ordered%> es menor que %<collapse%>"
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "se esperaba una declaración for"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "la variable de iteración %qD no debe ser firstprivate"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp barrier%> sólo se puede usar en declaraciones compuestas"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "se esperaba %<fork%> después de %qs"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "se esperaba %<point%>"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target data%> con map-type distinto de %<to%>, %<from%>, %<tofrom%> y %<alloc%> en la cláusula %<map%>"
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target data%> must contain at least one %<map%> clause"
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr "%<#pragma omp target data%> debe contener al menos una cláusula %<map%>"
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr "%<#pragma omp target update%> debe contener al menos una cláusula %<from%> o %<to%>"
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target enter data%> with map-type other than %<to%> or %<alloc%> on %<map%> clause"
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target enter data%> con map-type distinto de %<to%> y %<alloc%> en la cláusula %<map%>"
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target enter data%> debe contener al menos una cláusula %<map%>"
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<release%> or %<delete%> on %<map%> clause"
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr "%<#pragma omp target exit data%> con map-type distinto de %<from%>, %<release%> y %<delete%> en la cláusula %<map%>"
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target exit data%> debe contener al menos una cláusula %<map%>"
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target%> con map-type distinto de %<to%>, %<from%>, %<tofrom%> y %<alloc%> en la cláusula %<map%>"
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp declare simd%> must be followed by function declaration or definition or another %<#pragma omp declare simd%>"
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp declare simd%> debe ir seguida de una declaración o definición de función o de otra %<#pragma omp declare simd%>"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp declare simd%> must be followed by function declaration or definition"
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma omp declare simd%> debe ir seguida de una declaración o definición de función"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected trait selector name"
 msgstr "se esperaba una declaración de selección"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, fuzzy, gcc-internal-format
 #| msgid "constructor not allowed for non-vector types"
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "no se permite un constructor para tipos que no sean vectores"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, fuzzy, gcc-internal-format
 #| msgid "%<no-custom-%s%> does not accept arguments"
 msgid "selector %qs does not accept any properties"
 msgstr "%<no-custom-%s%> no acepta argumentos"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 #| msgid "%<friend%> can only be specified inside a class"
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<friend%> sólo se puede especificar dentro de una clase"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 #| msgid "collapse argument needs positive constant integer expression"
 msgid "%<score%> argument must be constant integer expression"
 msgstr "el argumento de collapse necesita una expresión entera constante positiva"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must be nonnegative"
 msgid "%<score%> argument must be non-negative"
 msgstr "'%s' en %L debe ser no negativo"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected identifier or string literal"
 msgstr "se esperaba una cadena literal"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "property must be constant integer expression"
 msgstr "se esperaba una expresión entera"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, fuzzy, gcc-internal-format
 #| msgid "property %qs already specified in %<@synthesize%>"
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
@@ -51611,317 +51637,317 @@ msgstr "la propiedad %qs ya se especificó en %<@synthesize%>"
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 #| msgid "code model %<large%> not supported yet"
 msgid "%<requires%> selector is not supported yet"
 msgstr "aún no se admite el modelo de código %<large%>"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected context selector set name"
 msgstr "se esperaba una declaración de selección"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<catch%>"
 msgid "expected %<match%>"
 msgstr "se esperaba %<catch%>"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L is not a function"
 msgid "variant %qD is not a function"
 msgstr "'%s' en %L no es una función"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 #| msgid "%qs and %qs are incompatible"
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "%qs y %qs son incompatibles"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp declare simd%> not immediately followed by a function declaration or definition"
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "%<#pragma omp declare simd%> no inmediatamente seguida de una declaración o definición de función"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp declare simd%> not immediately followed by a single function declaration or definition"
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma omp declare simd%> no inmediatamente seguida de una declaración o definición de función sencilla"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr "%qD aparece más de una vez en las cláusulas de datos"
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr "la cláusula %<nowait%> no debe utilizarse junto con %<copyprivate%>"
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr "la cláusula %<nowait%> no debe utilizarse junto con %<copyprivate%>"
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "se esperaba %<target%>"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "se esperaba %<class%>, %<typename%> o %<template%>"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%>"
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr "%<#pragma omp end declare target%> sin su correspondiente %<#pragma omp declare target%>"
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute conflicts with %s attribute at %L"
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "El atributo %s genera un conflicto con el atributo %s en %L"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "se esperaba %<class%>, %<typename%> o %<template%>"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr "%<#pragma omp declare reduction%> no está en ámbito de fichero o de bloque"
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr "tipo aritmético predeclarado en %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr "tipo función o matriz en %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "tipo calificado %<_Atomic%> en %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr "tipo calificado const, volatile o restrict en %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr "redeclaración de %qs %<#pragma omp declare reduction%> para el tipo %qT"
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "%<#pragma omp declare reduction%> previo"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "se esperaba %<omp_priv%> o nombre-de-función"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "se esperaba nombre-de-función %<(%>"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<simd%> or %<reduction%> or %<target%>"
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "se esperaba %<simd%>, %<reduction%> o %<target%>"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "se esperaba %<class%>, %<typename%> o %<template%>"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target data%> must contain at least one %<map%> clause"
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr "%<#pragma omp target data%> debe contener al menos una cláusula %<map%>"
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C forbids qualified function types"
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "ISO C prohíbe los tipos de función calificados"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 #| msgid "variable length array is used"
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "se usó la matriz de longitud variable"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "se esperaba %<;%>, %<,%> o %<)%>"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %qs or %qs"
 msgstr "se esperaba %<,%> o %<)%>"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp barrier%> sólo se puede usar en declaraciones compuestas"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, fuzzy, gcc-internal-format
 #| msgid "Cray pointer '%s' in %s clause at %L"
 msgid "expected at least one assumption clause"
 msgstr "El puntero Cray '%s' en la cláusula %s en %L"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 #| msgid "expected function name"
 msgid "expected directive name"
 msgstr "se esperaba nombre de función"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 #| msgid "unknown spec function %qs"
 msgid "unknown assumption clause %qs"
 msgstr "función de especificación %qs desconocida"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 #| msgid "expected pointer"
 msgid "expected assumption clause"
 msgstr "se esperaba un puntero"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE se declaró %<threadprivate%> después del primer uso"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "la variable automática %qE no puede ser %<threadprivate%>"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%<threadprivate%> %qE tiene tipo incompleto"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr "%<__transaction_cancel%> sin activar el soporte para memoria transaccional"
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr "%<__transaction_cancel%> dentro de un %<__transaction_relaxed%>"
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, fuzzy, gcc-internal-format
 #| msgid "%<transaction_may_cancel_outer%> function call not within outer transaction or %<transaction_may_cancel_outer%>"
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "la llamada a la función %<transaction_may_cancel_outer%> no está en una transacción más externa o %<transaction_may_cancel_outer%>"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr "%<__transaction_cancel%> no está dentro de %<__transaction_atomic%>"
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr "llave sin cerrar"
@@ -52069,7 +52095,7 @@ msgstr "deferenciando el puntero %<void *%>"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "el valor del subíndice no es ni matriz ni puntero ni vector"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "el subíndice de la matriz no es un entero"
@@ -52100,7 +52126,7 @@ msgstr "%qD declarado como referencia pero no se inicializa"
 msgid "enum constant defined here"
 msgstr "se definió la constante enum aquí"
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr "%<sizeof%> sobre el parámetro matriz %qE de función devolverá el tamaño de %qT"
@@ -52215,18 +52241,18 @@ msgstr "conversión implícita de %qT a %qT al pasar el argumento a la función"
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "faltan argumentos para la función %qE"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "la comparación con una literal de cadena resulta en una conducta no especificada"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between pointer and integer"
 msgid "comparison between pointer and zero character constant"
 msgstr "comparación entre puntero y entero"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr "¿pretendía desreferenciar el puntero?"
@@ -52251,7 +52277,7 @@ msgstr "se utilizó un puntero a una función en la sustracción"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "aritmética en puntero a un tipo de dato incompleto"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr "aritmética en puntero a un agregado vacío"
@@ -52561,7 +52587,7 @@ msgstr "conversión de puntero a entero de tamaño diferente"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "conversión desde una llamada a función de tipo %qT al tipo %qT que no coincide"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "conversión a puntero desde un entero de tamaño diferente"
@@ -52736,7 +52762,7 @@ msgstr "el lado izquierdo de la asignación puede ser un candidato para un atrib
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "el lado izquierdo de la inicialización puede ser un candidato para un atributo de formato"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "el tipo de devolución puede ser un candidato para un atributo de formato"
@@ -52946,12 +52972,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "inicialización de un miembro de matriz flexible"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, fuzzy, gcc-internal-format
 #| msgid "initialization of %qT from incompatible pointer type %qT"
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
@@ -52962,7 +52988,7 @@ msgstr "inicialización de %qT desde un tipo de puntero %qT incompatible"
 msgid "array of inappropriate type initialized from string constant"
 msgstr "matriz de tipo inapropiado inicializada con una constante de cadena"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "uso no válido de matriz no-lvaluada"
@@ -52993,7 +53019,7 @@ msgstr "el elemento inicializador no es una expresión constante"
 msgid "initializer element is not computable at load time"
 msgstr "el elemento inicializador no es calculable al momento de la carga"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "no se pueden inicializar los tipos de vector opacos"
@@ -53008,7 +53034,7 @@ msgstr "grupo extra de llaves al final del inicializador"
 msgid "braces around scalar initializer"
 msgstr "llaves alrededor del inicializador escalar"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "inicialización de un miembro de matriz flexible en un contexto anidado"
@@ -53099,7 +53125,7 @@ msgstr "exceso de elementos en el inicializador de struct"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr "inicialización posicional de un campo de %<struct%> declarado con el atributo %<designated_init%>"
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "inicialización no estática de un miembro de matriz flexible"
@@ -53140,7 +53166,7 @@ msgstr "ISO C prohíbe %<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "el argumento %d de %qE debe ser un tipo puntero"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "la función declarada %<noreturn%> tiene una declaración %<return%>"
@@ -53195,7 +53221,7 @@ msgstr "la etiqueta %<default%> no está dentro de una declaración switch"
 msgid "break statement not within loop or switch"
 msgstr "la declaración break no está dentro de un bucle o switch"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -53245,27 +53271,27 @@ msgstr "la comparación siempre se evalúa como %<false%> para la dirección de
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "la comparación siempre se evalúa como %<true%> para la dirección de %qD que nunca será NULL"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr "se comparan vectores con tipos de elemento diferentes"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr "se comparan vectores con números de elementos diferentes"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "comparación entre los tipos %qT y %qT"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr "no se puede encontrar un tipo entero del mismo tamaño que %qT"
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, fuzzy, gcc-internal-format
 #| msgid "comparing floating point with == or != is unsafe"
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
@@ -53338,30 +53364,30 @@ msgstr "se usa un valor de tipo union cuando se requiere un escalar"
 msgid "used vector type where scalar is required"
 msgstr "se usa un tipo vector cuando se requiere un escalar"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancel%> debe especificar una de las cláusulas %<parallel%>, %<for%>, %<sections%> o %<taskgroup%>"
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<parallel%> or %<target%> %<if%> clause modifier"
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "se esperaba el modificador de cláusula %<parallel%> o %<target%> %<if%>"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancellation point%> debe especificar una de las cláusulas %<parallel%>, %<for%>, %<sections%> o %<taskgroup%>"
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD no es una variable en la cláusula %qs"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qE no es una variable en la cláusula %qs"
@@ -53373,90 +53399,90 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "%Hdemasiadas cláusulas %qs"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD no es una variable en la cláusula %qs"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "low bound %qE of array section does not have integral type"
 msgstr "el tamaño de la matriz nueva debe tener un tipo integral"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "la longitud %qE de la sección de matriz no es de tipo integral"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 #| msgid "Cray pointer '%s' in %s clause at %L"
 msgid "expected single pointer in %qs clause"
 msgstr "El puntero Cray '%s' en la cláusula %s en %L"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "sección de matriz de longitud cero en la cláusula %qs"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr "límite inferior negativo en sección de matriz en cláusula %qs"
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr "longitud negativa en sección de matriz en cláusula %qs"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr "límite inferior %qE por encima del tamaño de la sección de matriz en cláusula %qs"
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr "longitud %qE por encima del tamaño de la sección de matriz en cláusula %qs"
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr "límite superior %qE por encima del tamaño de la sección de matriz en cláusula %qs"
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, fuzzy, gcc-internal-format
 #| msgid "for increment expression has no effect"
 msgid "for array function parameter length expression must be specified"
 msgstr "la expresión de incremento for no tiene efecto"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, fuzzy, gcc-internal-format
 #| msgid "for increment expression has no effect"
 msgid "for pointer type length expression must be specified"
 msgstr "la expresión de incremento for no tiene efecto"
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr "la sección de matriz no es contigua en la cláusula %qs"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qE no es de tipo puntero o matriz"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 #| msgid "throwing NULL, which has integral, not pointer type"
 msgid "iterator %qD has neither integral nor pointer type"
@@ -53468,19 +53494,19 @@ msgstr "arrojando NULL, que tiene un tipo integral, que no es puntero"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "tipo matriz cualificado %<_Atomic%>"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD has incomplete type"
 msgid "iterator %qD has const qualified type"
 msgstr "el parámetro %qD tiene tipo incompleto"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field %qD with non-integral type"
 msgid "iterator step with non-integral type"
 msgstr "campo de bits %qD con tipo no integral"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -53490,37 +53516,37 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, fuzzy, gcc-internal-format
 #| msgid "condition expression refers to iteration variable %qD"
 msgid "begin expression refers to outer iterator %qD"
 msgstr "la expresión de la condición hace referencia a la variable de iteración %qD"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 #| msgid "condition expression refers to iteration variable %qD"
 msgid "end expression refers to outer iterator %qD"
 msgstr "la expresión de la condición hace referencia a la variable de iteración %qD"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, fuzzy, gcc-internal-format
 #| msgid "initializer expression refers to iteration variable %qD"
 msgid "step expression refers to outer iterator %qD"
 msgstr "la expresión inicializadora hace referencia a la variable de iteración %qD"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 #| msgid "expected pointer"
 msgid "expected pointer in %qs clause"
 msgstr "se esperaba un puntero"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, fuzzy, gcc-internal-format
 #| msgid "code model %<large%> not supported yet"
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr "aún no se admite el modelo de código %<large%>"
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, fuzzy, gcc-internal-format
 #| msgid "code model %<large%> not supported yet"
 msgid "%<inscan%> %<reduction%> clause with array section"
@@ -53554,7 +53580,7 @@ msgstr "campo de bits %qE en cláusula %qs"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE tiene tipo no válido para %<reduction(%s)%>"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, fuzzy, gcc-internal-format
 #| msgid "No label definition found for %qs"
 msgid "user defined reduction not found for %qE"
@@ -53566,17 +53592,17 @@ msgstr "No se encontró una definición de etiqueta para %qs"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "se usó la matriz de longitud variable"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr "la cláusula %<nowait%> no debe utilizarse junto con %<copyprivate%>"
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE debe ser %<threadprivate%> para %<copin%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -53591,24 +53617,24 @@ msgstr "cláusula lineal aplicada a variable no puntero no integral con tipo %qT
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr "cláusula %<linear%> paso %qE no es ni constante ni parámetro"
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE no es una variable en la cláusula %qs"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD aparece más de una vez en las cláusulas de datos"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr "%qD aparece más de una vez en las cláusulas de reducción"
@@ -53620,33 +53646,33 @@ msgstr "%qE aparece más de una vez en las cláusulas de datos"
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "%qD aparece más de una vez en las cláusulas de datos"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears both in data and map clauses"
 msgstr "%qD aparece más de una vez en las cláusulas de datos"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE no es una variable en la cláusula %<firstprivate%>"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE no es una variable en la cláusula %<lastprivate%>"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qE no es una variable en la cláusula %<saligned%>"
@@ -53668,7 +53694,7 @@ msgstr "%qD no es una variable en la cláusula %qs"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE aparece más de una vez en las cláusulas de datos"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not a variable in %<nontemporal%> clause"
@@ -53680,7 +53706,7 @@ msgstr "%qE no es una variable en la cláusula %qs"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE aparece más de una vez en las cláusulas de datos"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<aligned%> clause"
 msgid "%qE is not a variable in %<allocate%> clause"
@@ -53692,85 +53718,85 @@ msgstr "%qE no es una variable en la cláusula %<saligned%>"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE aparece más de una vez en las cláusulas de datos"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qE no es una variable en la cláusula %qs"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, fuzzy, gcc-internal-format
 #| msgid "Array section not permitted in '%s' call at %L"
 msgid "array section does not have mappable type in %qs clause"
 msgstr "No se permite una sección de matriz en la llamada '%s' en %L"
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported fixed-point conversion"
 msgid "unsupported map expression %qE"
 msgstr "conversión de coma fija no admitida"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD aparece más de una vez en las cláusulas de datos"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD aparece más de una vez en las cláusulas de datos"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD no es una variable en la cláusula %qs"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE no es una variable en la cláusula %qs"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, fuzzy, gcc-internal-format
 #| msgid "%qE appears more than once in data clauses"
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE aparece más de una vez en las cláusulas de datos"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD no es una variable en la cláusula %qs"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not an argument in %<uniform%> clause"
@@ -53787,24 +53813,24 @@ msgstr "la fuente no es un puntero"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "la variable %qs no es un puntero ni una matriz"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr "la cláusula %<nowait%> no debe utilizarse junto con %<copyprivate%>"
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %qs clauses on a task construct"
 msgstr "demasiadas cláusulas %qs"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr "la cláusula %<inbranch%> es incompatible con %<notinbranch%>"
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE está predeterminado como %qs para %qs"
@@ -53814,41 +53840,41 @@ msgstr "%qE está predeterminado como %qs para %qs"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr "el valor de la cláusula %<simdlen%> es mayor que el valor de la cláusula %<safelen%>"
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr "la cláusula %<nowait%> no debe utilizarse junto con %<copyprivate%>"
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr "la cláusula %<nowait%> no debe utilizarse junto con %<copyprivate%>"
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr "la cláusula %<nowait%> no debe utilizarse junto con %<copyprivate%>"
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -54150,7 +54176,7 @@ msgstr "  no hay una conversión de %qH a %qI"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  no hay una conversión conocida para el argumento %d de %qH a %qI"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "  candidate expects %d argument, %d provided"
 #| msgid_plural "  candidate expects %d arguments, %d provided"
@@ -54159,7 +54185,7 @@ msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] "  el candidato espera %d argumento, se proporcionaron %d"
 msgstr[1] "  el candidato espera %d argumentos, se proporcionaron %d"
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -54493,624 +54519,624 @@ msgstr "la expresión condicional entre diferentes tipos de punteros %qT y %qT c
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "tipos enumeral y no enumeral en la expresión condicional"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "no se declaró %<%D(int)%> para el %qs postfijo, intentando en su lugar el operador prefijo"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "no se declaró %<%D(int)%> para el %qs postfijo"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 #| msgid "return type of %qD is not %<int%>"
 msgid "return type of %qD is not %qs"
 msgstr "el tipo de devolución de %qD no es %<int%>"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "comparación entre %q#T y %q#T"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to %<(%T) (%A)%>"
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "no hay coincidencia para la llamada a %<(%T) (%A)%>"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 #| msgid "call of %<(%T) (%A)%> is ambiguous"
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "la llamada de %<(%T) (%A)%> es ambigua"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, fuzzy, gcc-internal-format
 #| msgid "non-placement deallocation function %q+D"
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "función de desalojo %q+D sin ubicación"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 #| msgid "non-placement deallocation function %q+D"
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "función de desalojo %q+D sin ubicación"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr "no existe una función de desalojo correspondiente para %qD"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "no hay un %<operator %s%> adecuado para %qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is private within this context"
 msgstr "desde este contexto"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "declared private here"
 msgstr "se declara aquí"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is protected within this context"
 msgstr "desde este contexto"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "declared protected here"
 msgstr "se declara aquí"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D is inaccessible"
 msgid "%q#D is inaccessible within this context"
 msgstr "%q+#D es inaccesible"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "se pasó NULL al argumento %P de %qD que no es puntero"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "  declared here"
 msgstr "se declara aquí"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "se convierte al tipo %qT que no es puntero desde NULL"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "se convierte %<false%> a tipo puntero para el argumento %P de %qD"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "se convierte %<false%> al tipo puntero %qT"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  argumento de inicialización %P de %qD"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, fuzzy, gcc-internal-format
 #| msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "demasiadas llaves alrededor del inicializador para %qT"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in initialization"
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "no se puede convertir %qT a %qT en la inicialización"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 #| msgid "ISO C++ does not allow %<alignof%> with a non-type"
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C++ no permite %<alignof%> con algo que no es tipo"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 #| msgid "invalid user-defined conversion from %qT to %qT"
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "conversión definida por el usuario no válida de %qT a %qT"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid conversion from %qH to %qI"
 msgstr "conversión no válida de %qT a %qT"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr "la conversión a %qT desde la lista del inicializador usaría el constructor explícito %qD"
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, fuzzy, gcc-internal-format
 #| msgid "only declarations of constructors can be %<explicit%>"
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr "solamente las declaraciones de constructores pueden ser %<explicit%>"
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 #| msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "inicialización a un tipo de referencia volatile %q#T desde un r-valor de tipo %qT"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "inicialización no válida de una referencia que no es constante de tipo %qT desde un r-valor de tipo %qT"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "inicialización no válida de una referencia que no es constante de tipo %qT desde un r-valor de tipo %qT"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 #| msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "inicialización a un tipo de referencia volatile %q#T desde un r-valor de tipo %qT"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 #, fuzzy
 #| msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr "inicialización a un tipo de referencia volatile %q#T desde un r-valor de tipo %qT"
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 #, fuzzy
 #| msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "pasar %qT como el argumento %<this%> de %q#D descarta a los calificadores"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 #| msgid "cannot bind bitfield %qE to %qT"
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "no se puede unir el campo de bits %qE a %qT"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "no se unir el campo packed %qE a %qT"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "no se puede unir el r-valor %qE a %qT"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 #, fuzzy
 #| msgid "implicit conversion from %qT to %qT when passing argument to function"
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "conversión implícita de %qT a %qT al pasar el argumento a la función"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "el paso de objetos de tipo no-copiable-trivialmente %q#T a través de %<...%> se admite condicionalmente"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "no se puede recibir el tipo de referencia %qT a través de %<...%>"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "la recepción de objetos de tipo no-copiable-trivialmente %q#T a través de %<...%> se admite condicionalmente"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "evaluación recursiva del argumento por defecto para %q#D"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "la llamada a %qD usa el argumento por defecto para el parámetro %P, el cual no se ha definido aún"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "el argumento de la llamada a función puede ser un candidato para un atributo de formato"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, fuzzy, gcc-internal-format
 #| msgid "defaulted function %q+D with default argument"
 msgid "use of multiversioned function without a default"
 msgstr "función definida por defecto %q+D con argumento por defecto"
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, fuzzy, gcc-internal-format
 #| msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "pasar %qT como el argumento %<this%> de %q#D descarta a los calificadores"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  en la llamada a %qD"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT no es una base inaccesible de %qT"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to constructor %q#D"
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "demasiados argumentos para el constructor %q#D"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot be thread-local because it has non-trivial type %qT"
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "%qD no puede ser thread-local porque es de tipo %qT que no es trivial"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use assignment or value-initialization instead"
 msgstr "asignación (no inicialización) en la declaración"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use assignment instead"
 msgstr "use #include en su lugar"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, fuzzy, gcc-internal-format
 #| msgid "value-initialization of function type %qT"
 msgid "; use value-initialization instead"
 msgstr "inicialización por valor del tipo de función %qT"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot be thread-local because it has non-trivial type %qT"
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "%qD no puede ser thread-local porque es de tipo %qT que no es trivial"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "asignación (no inicialización) en la declaración"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use copy-assignment instead"
 msgstr "use #include en su lugar"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, fuzzy, gcc-internal-format
 #| msgid "Extension: re-initialization of '%s' at %L"
 msgid "; use copy-initialization instead"
 msgstr "Extensión: reinicialización de '%s' en %L"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to void will not access object of non-trivially-copyable type %qT"
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr "la conversión a void no accederá al objeto de tipo no-copiable-trivialmente %qT"
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, fuzzy, gcc-internal-format
 #| msgid "cannot receive objects of non-trivially-copyable type %q#T through %<...%>; "
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr "no se puede recibir objetos de tipo no-copiable-trivialmente q%#T a través de %<...%>"
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared here"
 msgid "%#qT declared here"
 msgstr "%qD se declara aquí"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, fuzzy, gcc-internal-format
 #| msgid "argument 3 in call to function %qE has pointer to boolean type"
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "el argumento 3 en la llamada a la función %qE tiene un puntero a un tipo boolean"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, fuzzy, gcc-internal-format
 #| msgid "constant refers to itself"
 msgid "constructor delegates to itself"
 msgstr "la constante se refiere a sí misma"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 #| msgid "cannot convert %qT to %qT"
 msgid "cannot convert %qH to %qI"
 msgstr "no se puede convertir %qT a %qT"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "no se encontró una función coincidente para la llamada a %<%T::operator %T(%A)%#V%>"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "no se encontró una función coincidente para la llamada a %<%T::%s(%A)%#V%>"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "llamada a %qD que no es función"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "no se puede llamar directamente al constructor %<%T::%D%>"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, fuzzy, gcc-internal-format
 #| msgid "  for a function-style cast, remove the redundant %<::%D%>"
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr "  para una conversión de estilo de función, borre el %<::%D%> redundante"
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%D(%A)%>"
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "no hay una función coincidente para la llamada a %<%D(%A)%>"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "la llamada del %<%s(%A)%> sobrecargado es ambigua"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member initializers"
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "los inicializadores de los datos miembro no son estáticos"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "abstract virtual `%#D' called from constructor"
 msgid "pure virtual %q#D called from constructor"
 msgstr "virtual abstracto `%#D' llamado desde un constructor"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, fuzzy, gcc-internal-format
 #| msgid "abstract virtual `%#D' called from destructor"
 msgid "pure virtual %q#D called from destructor"
 msgstr "virtual abstracto `%#D' llamado desde un destructor"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "no se puede llamar a la función miembro %qD sin un objeto"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "al pasar %qT se escoge %qT sobre %qT"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "ISO C++ dice que estos son ambiguos, aún cuando la peor conversión para el primero es mejor que la peor conversión para el segundo:"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 #| msgid "destructors must be member functions"
 msgid "try making the operator a %<const%> member function"
 msgstr "los destructores deben ser funciones miembro"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "se escoge %qD sobre %qD"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 #| msgid "  for conversion from %qT to %qT"
 msgid "  for conversion from %qH to %qI"
 msgstr "  para la conversión de %qT a %qT"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  porque la secuencia de conversión para el argumento es mejor"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "no coincide el argumento por defecto en la resolución de sobrecarga"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, fuzzy, gcc-internal-format
 #| msgid " candidate 1: %q+#F"
 msgid " candidate 1: %q#F"
 msgstr " candidato 1: %q+#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, fuzzy, gcc-internal-format
 #| msgid " candidate 2: %q+#F"
 msgid " candidate 2: %q#F"
 msgstr " candidato 2: %q+#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ISO C++ dice que estos son ambiguos, aún cuando la peor conversión para el primero es mejor que la peor conversión para el segundo:"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr "un enlace temporal a %qD sólo persiste hasta que el constructor termina"
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "inicialización no válida de una referencia que no es constante de tipo %qT desde un r-valor de tipo %qT"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 #| msgid "invalid initialization of reference of type %qT from expression of type %qT"
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "inicialización no válida de la referencia de tipo %qT desde una expresión de tipo %qT"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "possibly dangling reference to a temporary"
 msgstr "se devuelve la referencia al temporal"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, fuzzy, gcc-internal-format
 #| msgid "%s: definition of function '%s' not converted\n"
 msgid "explicit conversion function was not considered"
@@ -55165,7 +55191,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "no se puede sobrecargar %q+#D"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+#D"
 msgid "previous declaration %q#D"
@@ -55633,7 +55659,7 @@ msgstr "el miembro de matriz flexible sería de otra manera un struct vacío"
 msgid "next member %q#D declared here"
 msgstr "  %q+#D se declaró aquí"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "redefinición de %q#T"
@@ -55771,7 +55797,7 @@ msgstr "tipo no válido del parámetro %d en la función %<constexpr%> %q+#D"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
@@ -55818,7 +55844,7 @@ msgstr "el cuerpo de la función constexpr %qD no es una declaración de devoluc
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%q+D no se puede usar como una función constexpr porque:"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -55837,7 +55863,7 @@ msgstr "Avisa en las llamadas a estas funciones"
 msgid "%q+E is not a constant expression"
 msgstr "%q+E no es una expresión constante"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
@@ -55861,7 +55887,7 @@ msgstr "autocomparación siempre falsa"
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 #| msgid "internal function"
@@ -55914,7 +55940,7 @@ msgstr "  %qT es una clase base ambigua de %qT"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-constexpr function %qD"
@@ -56062,20 +56088,20 @@ msgstr "el subíndice de la matriz está fuera de los límites de la matriz"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "el subíndice de la matriz está fuera de los límites de la matriz"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "accessing uninitialized array element"
 msgstr "falta el inicializador para el miembro %qD"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
 msgid "dereferencing a null pointer in %qE"
 msgstr "deferenciando el puntero %<void *%>"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -56083,534 +56109,534 @@ msgstr "deferenciando el puntero %<void *%>"
 msgid "%qE is not a constant expression"
 msgstr "%qE no es una expresión constante"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "%qD mutable no se puede usar en una expresión constante"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "accessing uninitialized member %qD"
 msgstr "falta el inicializador para el miembro %qD"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr "se accede al miembro %qD  en lugar del miembro inicializado %qD en la expresión constante"
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, fuzzy, gcc-internal-format
 #| msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects"
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 #| msgid "ifunc is not supported on this target"
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "no se admiten ifunc en este objetivo"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, fuzzy, gcc-internal-format
 #| msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects"
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables"
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "falta el inicializador para el miembro %qD"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, fuzzy, gcc-internal-format
 #| msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects"
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables"
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "se accede al valor de %qE a través de glvalue %qT en una expresión constante"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 #| msgid "use of the value of the object being constructed in a constant expression"
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "uso del valor del objeto en construcción en una expresión constante"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "allocated here"
 msgstr "se declara aquí"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 #| msgid "the value of %qD is not usable in a constant expression"
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "el valor de %qD no se puede usar en una expresión constante"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "el valor de %qD no se puede usar en una expresión constante"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "se usó %qD en su propio inicializador"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%q#D no es const"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%q+#D es volatile"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD no se inicializó con una expresion constante"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD no se declaró %<constexpr%>"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "%qD no tiene tipo integral o de enumeración"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 #| msgid "use of the value of the object being constructed in a constant expression"
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "uso del valor del objeto en construcción en una expresión constante"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 #| msgid "division by zero is not a constant-expression"
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "la división entre cero no es una expresión constante"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 #| msgid "difference of two pointer expressions is not a constant expression"
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "la diferencia de dos expresiones puntero no es una expresión constante"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 #| msgid "division by zero is not a constant-expression"
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "la división entre cero no es una expresión constante"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, fuzzy, gcc-internal-format
 #| msgid "Change of value in conversion from  %s to %s at %L"
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "Cambio de valor en la conversión de %s a %s en %L"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, fuzzy, gcc-internal-format
 #| msgid "Change of value in conversion from  %s to %s at %L"
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "Cambio de valor en la conversión de %s a %s en %L"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not a constant expression"
 msgid "statement is not a constant expression"
 msgstr "el elemento inicializador no es una expresión constante"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, fuzzy, gcc-internal-format
 #| msgid "constexpr evaluation depth exceeds maximum of %d (use -fconstexpr-depth= to increase the maximum)"
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr "la profundidad de evaluación de constexpr excede el máximo de %d (use -fconstexpr-depth= para incrementar el máximo)"
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not a constant expression"
 msgid "inline assembly is not a constant expression"
 msgstr "el elemento inicializador no es una expresión constante"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
 msgid "use of %qD"
 msgstr "uso no válido de %qD"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "%qE no es una expresión constante"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, fuzzy, gcc-internal-format
 #| msgid "constexpr evaluation depth exceeds maximum of %d (use -fconstexpr-depth= to increase the maximum)"
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr "la profundidad de evaluación de constexpr excede el máximo de %d (use -fconstexpr-depth= para incrementar el máximo)"
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, fuzzy, gcc-internal-format
 #| msgid "capture of variable %qD with non-automatic storage duration"
 msgid "control passes through definition of %qD with static storage duration"
 msgstr "captura de la variable %qD con duración de almacenamiento que no es automática"
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "temporal del tipo %qT que no es literal en una expresión constante"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant-expression"
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "la expresión %qE no es una expresión constante"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from pointer type %qT to arithmetic type %qT in a constant-expression"
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "conversión del tipo puntero %qT al tipo aritmético %qT en una expresión constante"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, fuzzy, gcc-internal-format
 #| msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects"
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 #| msgid "  %q+#D declared here"
 msgid "pointed-to object declared here"
 msgstr "  %q+#D se declaró aquí"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "no se permite el parámetro de plantilla %qD de tipo %qT en una expresión integral constante porque no es de tipo integral o de enumeración"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 #| msgid "division by zero is not a constant-expression"
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "la división entre cero no es una expresión constante"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant-expression"
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "la expresión %qE no es una expresión constante"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant-expression"
 msgid "expression %qE is not a constant expression"
 msgstr "la expresión %qE no es una expresión constante"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%<goto%> is not a constant expression"
 msgstr "%qE no es una expresión constante"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant-expression"
 msgid "contract predicate is false in constant expression"
 msgstr "la expresión %qE no es una expresión constante"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 #| msgid "expected template-id"
 msgid "unexpected template-id %qE"
 msgstr "se esperaba un id de plantilla"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %qE must be directly called"
 msgid "function concept must be called"
 msgstr "la función interna %qE ha de ser llamada directamente"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "address of a call to %qs is not a constant expression"
 msgstr "el tamaño de la matriz %qD no es una expresion constante integral"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "expresión %qE inesperada de género %s"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, fuzzy, gcc-internal-format
 #| msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects"
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables"
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, fuzzy, gcc-internal-format
 #| msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects"
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables"
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, fuzzy, gcc-internal-format
 #| msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects"
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, fuzzy, gcc-internal-format
 #| msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects"
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables"
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor %qE"
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "se toma la dirección del destructor %qE"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "conversión no válida de una expresión r-valuada de tipo %qT al tipo %qT"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 #| msgid "division by zero is not a constant-expression"
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "la división entre cero no es una expresión constante"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, fuzzy, gcc-internal-format
 #| msgid "invalid reinterpret_cast from type `%T' to type `%T'"
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "reinterpret_cast no válido del tipo `%T' al tipo `%T'"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr "la dirección de un objeto %qE con hilo local o almacenamiento automático no es una expresión constante"
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "use of %<this%> in a constant expression"
 msgstr "%qE no es una expresión constante"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant-expression"
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "la expresión %qE no es una expresión constante"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant-expression"
 msgid "new-expression is not a constant expression before C++20"
 msgstr "la expresión %qE no es una expresión constante"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "las funciones virtual no pueden ser friend"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 #| msgid "temporary of non-literal type %qT in a constant expression"
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "temporal del tipo %qT que no es literal en una expresión constante"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, fuzzy, gcc-internal-format
 #| msgid "%qE undeclared here (not in a function)"
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "%qE no se declaró aquí (no en una función)"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "%q+F se declaró %<static%> pero nunca se define"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 #| msgid "division by zero is not a constant-expression"
 msgid "division by zero is not a constant expression"
 msgstr "la división entre cero no es una expresión constante"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%<delete[]%> is not a constant expression"
 msgstr "%qE no es una expresión constante"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "%qE no es una expresión constante"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "inicialización de una matriz que no es constante"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<constexpr%> de C++11 sólo está disponible con -std=c++11 o -std=gnu++11"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "AST inesperado de género %s"
@@ -57424,7 +57450,7 @@ msgstr "el tercer argumento de %<__builtin_prefetch%> debe ser una constante"
 msgid "no suspend point info for %qD"
 msgstr "no hay un prototipo previo para %qD"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -57447,23 +57473,23 @@ msgstr "no se permite usar punteros como valores case"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr "el límite del array de longitud variable es desconocido"
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
@@ -57485,78 +57511,78 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD no es una función plantilla"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor %qE"
 msgid "taking address of an immediate function %qD"
 msgstr "se toma la dirección del destructor %qE"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 #| msgid "division by zero is not a constant-expression"
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "la división entre cero no es una expresión constante"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will always evaluate as %<true%>"
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "la dirección de %qD siempre se evaluará como %<true%>"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "un destructor no puede ser %<constexpr%>"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes on template argument %qT"
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "se descartan los atributos en el argumento de plantilla %qT"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qE attribute"
 msgid "pack expansion of %qE attribute"
 msgstr "argumento no válido del atributo %qE"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 #| msgid "lambda-expression in unevaluated context"
 msgid "use fold expression in the attribute argument instead"
 msgstr "expresión lambda en un contexto sin evaluar"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD no es un tipo"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class type"
 msgid "%qD is not a class type"
 msgstr "%qT no es un tipo de clase"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have pointer or array type"
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qE no es de tipo puntero o matriz"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 #| msgid "%qD does not have integral or enumeration type"
 msgid "%qD does not have integral type"
 msgstr "%qD no tiene tipo integral o de enumeración"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -57605,7 +57631,7 @@ msgstr "inicialización a un tipo de referencia que no es constante %q#T desde u
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "la conversión de %qT a %qT descarta los calificadores"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "la conversión de %qT a %qT no dereferencía a los punteros"
@@ -58007,7 +58033,7 @@ msgstr "de la declaración previa de %q+F"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "la redeclaración de %qD difiere en %<constexpr%>"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+#D"
 msgid "previous declaration %qD"
@@ -58171,8 +58197,8 @@ msgstr "la declaración previa %q+#D que no es función"
 msgid "%q#D previously defined here"
 msgstr "se define %q+#D previamente aquí"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously declared here"
 msgid "%q#D previously declared here"
@@ -58259,60 +58285,42 @@ msgstr "argumento por defecto dado para el parámetro %d de %q#D"
 msgid "previous specification in %q#D here"
 msgstr "después de la especificación previa en %q+#D"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-#| msgid "conflicts with built-in declaration %q#D"
-msgid "declaration %qD conflicts with builtin"
-msgstr "genera un conflicto con la declaración interna %q#D"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-#| msgid "declaration of namespace %qD conflicts with"
-msgid "declaration %qD conflicts with import"
-msgstr "la declaración del espacio de nombres %qD genera un conflicto con"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-#| msgid "  also declared as %q#D here"
-msgid "import declared %q#D here"
-msgstr "  también declarado como %q#D aquí"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting exporting for declaration %qD"
 msgstr "declaraciones de %q#D en conflicto"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 #| msgid "previously declared here"
 msgid "previously declared here without exporting"
 msgstr "se declaró previamente aquí"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %q+D was here"
 msgid "previous definition of %qD here"
 msgstr "la definición previa de %q+D estaba aquí"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+D was here"
 msgid "previous declaration of %qD here"
 msgstr "la declaración previa de %q+D estaba aquí"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared virtual inside a union"
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "la función %qD se declaró virtual dentro de un union"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "declaración redundante de %qD en el mismo ámbito"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 #| msgid "deleted definition of %qD"
 msgid "deleted definition of %qD is not first declaration"
@@ -58326,45 +58334,45 @@ msgstr "se borró la definición de %qD"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "especialización explícita de %qD después del primer uso"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 #| msgid "'setter' attribute of property %qD conflicts with previous declaration"
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "el atributo 'setter' de la propiedad %qD genera un conflicto con la declaración previa"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "redefinición de %q#D"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "%qD genera un conflicto con la función utilizada"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q#D no se declaró en la clase"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%q+D se redeclaró incluida en línea con el atributo %<gnu_inline%>"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%q+D se redeclaró incluida en línea sin el atributo %<gnu_inline%>"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -58372,800 +58380,800 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "la redeclaración de friend %q#D no puede tener argumentos de plantilla por defecto"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "declaración thread-local de %q#D después de una declaración que no es thread-local"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "declaración que no es thread-local de %q#D después de una declaración thread-local"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "redeclaración de %q#D"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 #| msgid "redundant redeclaration of `%s' in same scope"
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "declaración redundante de `%s' en el mismo ámbito"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, fuzzy, gcc-internal-format
 #| msgid "a previous local"
 msgid "previous label"
 msgstr "un local previo"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "salto a la etiqueta %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "salto a la etiqueta case"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  desde aquí"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  sale del bloque estructurado OpenMP"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 #| msgid "  crosses initialization of %q+#D"
 msgid "  crosses initialization of %q#D"
 msgstr "  cruza la inicialización de %q+#D"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, fuzzy, gcc-internal-format
 #| msgid "  enters try block"
 msgid "  enters %<try%> block"
 msgstr "  entra al bloque try"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "  enters catch block"
 msgid "  enters %<catch%> block"
 msgstr "  entra al bloque catch"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  entra al bloque estructurado OpenMP"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 #| msgid "jump into statement expression"
 msgid "  enters statement expression"
 msgstr "salto a una expresión de declaración"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "  enters %<constexpr if%> statement"
 msgstr "se esperaba una declaración"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "  enters %<consteval if%> statement"
 msgstr "se esperaba una declaración"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C99 does not support %qE"
 msgid "  does not destroy %qD"
 msgstr "ISO C99 no admite %qE"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not take any feature options"
 msgid "  does not clean up handled exception"
 msgstr "%s no toma ninguna opción de característica"
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 #| msgid "  skips initialization of %q+#D"
 msgid "  skips initialization of %q#D"
 msgstr "  salta la inicialización de %q+#D"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "%qD used without template arguments"
 msgstr "se usa %qD sin parámetros de plantilla"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "%qD no es una plantilla de función"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T no es una clase"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "no hay una plantilla de clase llamada %q#T en %q#T"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "no hay un tipo llamado %q#T en %q#T"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "la búsqueda de %qT en %qT es ambigua"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%> nombra a %q#T, el cual no es una plantilla de clase"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 #| msgid "%<typename %T::%D%> names %q#T, which is not a type"
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%> nombra a %q#T, el cual no es un tipo"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters do not match template"
 msgid "template parameters do not match template %qD"
 msgstr "los parámetros de la plantilla no coinciden con la plantilla"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 #| msgid "-falign-labels=%d is not supported"
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "no se admite -falign-labels=%d"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q#D no válido; una union anónima solo puede tener miembros con datos no estáticos públicos"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr "esta flexibilidad es obsoleta y será eliminada"
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous struct not inside named type"
 msgid "anonymous struct with base classes"
 msgstr "struct anónimo no está dentro de un tipo nombrado"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "no se permite el miembro %q+#D con constructor en un agregado anónimo"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "no se permite el miembro %q+#D con destructor en un agregado anónimo"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "no se permite el miembro %q+#D con operador de asignación de copia en un agregado anónimo"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "se descarta el atributo en la declaración de %q#T"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "el atributo para %q#T debe estar a continuación de la palabra clave %qs"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "tipos múltiples en una declaración"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "redeclaración del tipo interno de C++ %qT"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "%<auto%> sólo se puede especificar para variables o declaraciones de función"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "falta el nombre del tipo en la declaración typedef"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO C++ prohíbe structs anónimos"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<inline%> can only be specified for functions"
 msgstr "%qs sólo se puede especificar para funciones"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<virtual%> can only be specified for functions"
 msgstr "%qs sólo se puede especificar para funciones"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> sólo se puede especificar dentro de una clase"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "%<explicit%> sólo se puede especificar para constructores"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "una clase de almacenamiento sólo se puede especificar para objetos y funciones"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "los calificadores sólo se pueden especificar para objetos y funciones"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "los calificadores sólo se pueden especificar para objetos y funciones"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "los calificadores sólo se pueden especificar para objetos y funciones"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, fuzzy, gcc-internal-format
 #| msgid "a storage class can only be specified for objects and functions"
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "una clase de almacenamiento sólo se puede especificar para objetos y funciones"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "se descartó %<typedef%> en esta declaración"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 #| msgid "%<constexpr%> cannot be used for type declarations"
 msgid "%qs cannot be used for type declarations"
 msgstr "%<constexpr%> no se puede usar en declaraciones de tipo"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 #| msgid "attributes ignored on template instantiation"
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "se descartan los atributos en la instanciación de una plantilla"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "el atributo %qE sólo se puede aplicar a definiciones de clase"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "se descartan los atributos aplicados al tipo de clase %qT fuera de la definición"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr "se descartan los atributos aplicados al tipo dependiente %qT sin una declaración asociada"
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 #| msgid "typedef %qD is initialized (use decltype instead)"
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD está inicializado (utilice decltype en su lugar)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "la declaración de %q#D tiene %<extern%> y está inicializada"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "la definición de %q#D se marca como %<dllimport%>"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D is not a non-static data member of %qT"
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q#D no es un dato miembro no static de %qT"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "non-member-template declaration of %qD"
 msgstr "declaración plantilla de %q#D"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 #| msgid "invalid member template declaration %qD"
 msgid "does not match member template declaration here"
 msgstr "declaración de la plantilla miembro %qD no válida"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO C++ no permite que %<%T::%D%> se defina como %<%T::%D%>"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "inicialización duplicada de %qD"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "la declaración de %q#D fuera de la clase no es una definición"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<constexpr%> de C++11 sólo está disponible con -std=c++11 o -std=gnu++11"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<constexpr%> de C++11 sólo está disponible con -std=c++11 o -std=gnu++11"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "la variable %q#D tiene inicializador pero de tipo de dato incompleto"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "elementos de la matriz %q#D con tipo de dato incompleto"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "el agregado %q#D tiene un tipo incompleto y no se puede definir"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD declarado como referencia pero no se inicializa"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "se usó un nombre en un inicializador designado de estilo GNU para una matriz"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "el nombre %qD se utiliza en un inicializador designado en estilo GNU para una matriz"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "no se admiten los inicializadores designados como no triviales"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "el tamaño de la matriz %qD no es una expresion constante integral"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "el inicializador no puede determinar el tamaño de %qD"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "falta el tamaño de la matriz en %qD"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "matriz %qD de tamaño cero"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "no se conoce el tamaño de almacenamiento de %qD"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "el tamaño de almacenamiento de %qD no es constante"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, fuzzy, gcc-internal-format
 #| msgid "sorry: semantics of inline function static data %q+#D are wrong (you%'ll wind up with multiple copies)"
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "perdón: la semántica de los datos static de la función inline %q+#D es errónea (terminará con múltiples copias)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, fuzzy, gcc-internal-format
 #| msgid "sorry: semantics of inline function static data %q+#D are wrong (you%'ll wind up with multiple copies)"
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "perdón: la semántica de los datos static de la función inline %q+#D es errónea (terminará con múltiples copias)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, fuzzy, gcc-internal-format
 #| msgid "  you can work around this by removing the initializer"
 msgid "you can work around this by removing the initializer"
 msgstr "  puede evitar esto eliminando el inicializador"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized const %qD"
 msgid "uninitialized %<const %D%>"
 msgstr "const %qD sin inicializar"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized member %qD in %<constexpr%> constructor"
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "miembro %qD sin inicializar en el constructor %<constexpr%>"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized member %qD in %<constexpr%> constructor"
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "miembro %qD sin inicializar en el constructor %<constexpr%>"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "%q#T no tiene constructor por defecto proporcionado por el usuario"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr "el constructor no es proporcionado por el usuario porque está marcado explícitamente por defecto en el cuerpo de la clase"
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, fuzzy, gcc-internal-format
 #| msgid "and the implicitly-defined constructor does not initialize %q+#D"
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr "y el constructor implícitamente definido no inicializa %q+#D"
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "tipo %qT no válido como inicializador para un vector de tipo %qT"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "el inicializador para %qT debe estar encerrado entre llaves"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "se usa %<[%E] =%> en un inicializador designado en estilo GNU para la clase %qT"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "la petición para el miembro %qD es ambigua"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT no tiene un dato miembro que no es static llamado %qD"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD no es un miembro de %qT"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer for array member %q#D"
 msgid "invalid initializer for %q#D"
 msgstr "inicializador no válido para la matriz miembro %q#D"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr "asignador C99 %qE fuera del inicializador agregado"
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "demasiados inicializadores para %qT"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "llaves alrededor del inicializador escalar para el tipo %qT"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer for type %qT"
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "llaves alrededor del inicializador escalar para el tipo %qT"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "faltan llaves alrededor del inicializador para %qT"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing pointer to incomplete type"
 msgid "structured binding has incomplete type %qT"
 msgstr "puntero deferenciado a tipo de dato incompleto"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "elementos de la matriz %q#T tienen tipo de dato incompleto"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "literal compuesta de tamaño variable"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "%q#D tiene un tipo incompleto"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "el objeto escalar %qD requiere un elemento en el inicializador"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "en C++98 %qD debe ser inicializado por un constructor, no por %<{...}%>"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "matriz %qD inicializada con una constante de cadena entre paréntesis %qE"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "inicializador no válido para el miembro static con constructor"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "inicialización en clase que no es constante no válida para el miembro static %qD"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 #| msgid "non-constant in-class initialization invalid for static member %qD"
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "inicialización en clase que no es constante no válida para el miembro static %qD"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(se requiere una inicialización fuera de la clase)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is initialized with itself"
 msgid "reference %qD is initialized with itself"
 msgstr "%qD se inicializa con sí mismo"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not in a declaration"
 msgid "could not find variant declaration"
 msgstr "%<[*]%> fuera de una declaración"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 #| msgid "%s: recursive invocation of constructor %qs"
 msgid "%<declare variant%> on constructor %qD"
 msgstr "%s: invocación recursiva del constructor %qs"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration cannot name destructor"
 msgid "%<declare variant%> on destructor %qD"
 msgstr "uan declaración de uso no puede nombrar al destructor"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "asignación (no inicialización) en la declaración"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not allow designated initializers"
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++ no permite inicializadores designados"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for %qs"
 msgid "%<register%> storage class specifier used"
 msgstr "se especificó una clase de almacenamiento para %qs"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "la declaración de %q#D no tiene inicializadores"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member function (did you forget the %<()%> ?)"
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "uso no válido de la función miembro (¿Olvidó el %<&%>?)"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "el tipo de devolución %q#T es un tipo de dato incompleto"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "variable concept has no initializer"
 msgstr "un objeto de tamaño variable puede no ser inicializado"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "se oscurece la declaración de tipo previa de %q#D"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables in static storage"
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "el atributo %qE se aplica solamente a variables en almacenamiento estático"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "la función %q#D se inicializa como una variable"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, fuzzy, gcc-internal-format
 #| msgid "  cannot use obsolete binding at %q+D because it has a destructor"
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "  no se puede usar la asignación obsoleta en %q+D porque tiene un destructor"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 #| msgid "cannot form pointer to member of non-class %q#T"
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "no se puede formar un puntero al miembro de %q#T que no es clase"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing pointer to incomplete type"
 msgid "structured binding refers to incomplete type %qT"
 msgstr "puntero deferenciado a tipo de dato incompleto"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 forbids variable length array %qE"
 msgid "cannot decompose variable length array %qT"
 msgstr "ISO C90 prohíbe la matriz de longitud variable %qE"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qs specified for structure field"
 msgid "%u name provided for structured binding"
@@ -59173,7 +59181,7 @@ msgid_plural "%u names provided for structured binding"
 msgstr[0] "se especificó %qs para el campo de estructura"
 msgstr[1] "se especificó %qs para el campo de estructura"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "invalid initializer for bit string"
 msgid "only %u name provided for structured binding"
@@ -59181,1908 +59189,1908 @@ msgid_plural "only %u names provided for structured binding"
 msgstr[0] "inicializador no válido para la cadena de bits"
 msgstr[1] "inicializador no válido para la cadena de bits"
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 forbids variable length array %qE"
 msgid "cannot decompose variable length vector %qT"
 msgstr "ISO C90 prohíbe la matriz de longitud variable %qE"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "el tamaño de la matriz no es una expresion constante integral"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for iteration variable %qE"
 msgid "in initialization of structured binding variable %qD"
 msgstr "tipo no válido para la variable de iteración %qE"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to qualified function type %qT"
 msgid "cannot decompose union type %qT"
 msgstr "no se puede declarar el puntero para el tipo de función calificado %qT"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "se crea un puntero al miembro del tipo %qT que no es clase"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to qualified function type %qT"
 msgid "cannot decompose lambda closure type %qT"
 msgstr "no se puede declarar el puntero para el tipo de función calificado %qT"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing pointer to incomplete type"
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "puntero deferenciado a tipo de dato incompleto"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to static data member %qD"
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "no se puede aplicar %<offsetof%> al dato miembro static %qD"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, fuzzy, gcc-internal-format
 #| msgid "  %q+T has a non-trivial destructor"
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr "  %q+T tiene un destructor que no es trivial"
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "el inicializador no puede determinar el tamaño de %qT"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "falta el tamaño de la matriz en %qT"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "matriz %qT de tamaño cero"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "el destructor para la clase extranjera %qT no puede ser un miembro"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "el constructor para la clase extranjera %qT no puede ser un miembro"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD se declaró como una variable %<virtual%>"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son no válidos en la declaración de variable"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD se declaró como un parámetro %<virtual%>"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD se declaró como un parámetro %<inline%>"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son no válidos en la declaración de parámetro"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD se declaró como un tipo %<virtual%>"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD se declaró como un tipo %<inline%>"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son no válidos en la declaración de tipo"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD se declaró como un campo %<virtual%>"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD se declaró como un campo %<inline%>"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son no válidos en la declaración de campo"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D se declaró como friend"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D se declaró con una especificación de excepción"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "la definición de %qD no está en un espacio de nombres que contenga a %qT"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "la función miembro static %q#D se declara con calificadores de tipo"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a non-parameter"
 msgid "concept %q#D declared with function parameters"
 msgstr "%qD se declaró como un no-parámetro"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD declared with void type"
 msgid "concept %q#D declared with a deduced return type"
 msgstr "el parámetro %qD se declaró con tipo void"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, fuzzy, gcc-internal-format
 #| msgid "Java method %qD has non-Java return type %qT"
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "el método Java %qD tiene un tipo de devolución %qT que no es de Java"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%> after union definition"
 msgid "concept %qD has no definition"
 msgstr "se esperaba %<;%> después de la definición de union"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 #| msgid "function cannot be instrumented"
 msgid "a function concept cannot be constrained"
 msgstr "no se puede instrumentar la función"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template function"
 msgid "constraints on a non-templated function"
 msgstr "%qD no es una función plantilla"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "la declaración friend no está en una definición de clase"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "definiendo la especialización explícita %qD en la declaración friend"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "uso no válido del id de plantilla %qD en la declaración de la plantilla primaria"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "no se permiten los argumentos por defecto en la declaración de la especialización friend de la plantilla %qD"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "no se permite %<inline%> en la declaración de la especialización friend de la plantilla %qD"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D outside of class is not definition"
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "la declaración de %q#D fuera de la clase no es una definición"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "no se puede declarar %<::main%> como plantilla"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "no se puede declarar %<::main%> como inline"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be static"
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "no se puede declarar %<::main%> como static"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "no se puede declarar %<::main%> como static"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "la función que no es miembro %qD no puede tener calificador-cv"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "la función miembro static %qD no puede tener calificador-cv"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "la función miembro static %qD no puede tener calificador-cv"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 #| msgid "non-member function %qD cannot have cv-qualifier"
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "la función que no es miembro %qD no puede tener calificador-cv"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have cv-qualifier"
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "la función miembro static %qD no puede tener calificador-cv"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "la función miembro static %qD no puede tener calificador-cv"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "explicit object parameter declared here"
 msgstr "el tipo de parámetro de plantilla %qT se declaró %<friend%>"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %qD must appear at namespace scope"
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "la especialización de %qD debe aparecer en un ámbito de espacio de nombres"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %qD must appear at namespace scope"
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "la especialización de %qD debe aparecer en un ámbito de espacio de nombres"
 
 #  FIXME traducción
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "deduction guide %qD must not have a function body"
 msgstr "la declaración de %qD como algo que no es función"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr "operador literal con enlace C"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "%qD tien una lista de argumentos no válida"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, fuzzy, gcc-internal-format
 #| msgid "integer suffix %<%s%> shadowed by implementation"
 msgid "integer suffix %qs shadowed by implementation"
 msgstr "se oscurece el sufijo entero %<%s%> por la implementación"
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, fuzzy, gcc-internal-format
 #| msgid "floating point suffix %<%s%> shadowed by implementation"
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr "se oscurece el sufijo de coma flotante %<%s%> por la implementación"
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr "los sufijos de operador literal que no están precedidos por %<_%> están reservados para estandarización futura"
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%qD debe ser una función que no sea miembro"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> debe devolver %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "la definición de %qD declarado implícitamente"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "la definición de %qD explícitamente por defecto"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D explicitly defaulted here"
 msgid "%q#D explicitly defaulted here"
 msgstr "%q+#D explícitamente por defecto aquí"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "no hay una función miembro %q#D declarada en la clase %qT"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be a template"
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "no se puede declarar %<::main%> como plantilla"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 #| msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "la variable automática %qE no puede ser %<threadprivate%>"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %qD must appear at namespace scope"
 msgid "concept must be defined at namespace scope"
 msgstr "la especialización de %qD debe aparecer en un ámbito de espacio de nombres"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "a variable concept cannot be constrained"
 msgstr "un objeto de tamaño variable puede no ser inicializado"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "inicialización en la clase del miembro de datos static %q#D de tipo incompleto"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "se necesita %<constexpr%> para la inicialización en la clase no válida del miembro de datos static %q#D de tipo que no es integral"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "inicialización en la clase del miembro de datos static %q#D de tipo que no es literal"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "inicialización en la clase no válida para el miembro de datos static de tipo %qT que no es integral"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ prohíbe la inicialización en la clase del miembro static %qD que no es constante"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ prohíbe la inicialización de la constante miembro %qD del tipo %qT que no es entero"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "el tamaño de la matriz %qD tiene un tipo %qT que no es integral"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "el tamaño de la matriz tiene un tipo %qT que no es integral"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "el tamaño de la matriz %qD no es una expresion constante integral"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "el tamaño de la matriz no es una expresion constante integral"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C++ prohíbe la matriz %qD de tamaño cero"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ prohíbe matrices de tamaño cero"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ prohíbe la matriz %qD de longitud variable"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++ prohíbe las matrices de longitud variable"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "se usa la matriz de longitud variable %qD"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "se usó la matriz de longitud variable"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "desbordamiento en la dimensión de la matriz"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a friend"
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%q+D se declaró como friend"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member reference type %qT"
 msgid "creating array of template placeholder type %qT"
 msgstr "se crea un puntero al miembro de referencia de tipo %qT"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "la declaración de %qD como una matriz de voids"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr "se crea la matriz de voids"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "la declaración de %qD como una matriz de funciones"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr "se crea la matriz de funciones"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "la declaración de %qD como una matriz de referencias"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr "se crea la matriz de referencias"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "la declaración de %qD como una matriz de miembros de función"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr "se crea la matriz de miembros de función"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "la declaración de %qD como una matriz multidimensional debe tener límites para todas las dimensiones excepto la primera"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "una matriz multidimensional debe tener límites para todas las dimensiones excepto para la primera"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 #| msgid "variable length array is used"
 msgid "variable-length array of %<auto%>"
 msgstr "se usó la matriz de longitud variable"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "la especificación del tipo de devolución para el constructor es no válida"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "no se permiten calificadores en la declaración de %<operator %T%>"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "la especificación del tipo de devolución para el destructor es no válida"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "no se permiten calificadores en la declaración de %<operator %T%>"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "se especificó un tipo de devolución para %<operator %T%>"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "no se permiten calificadores en la declaración de %<operator %T%>"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 #| msgid "return type specification for destructor invalid"
 msgid "return type specified for deduction guide"
 msgstr "la especificación del tipo de devolución para el destructor es no válida"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "no se permiten calificadores en la declaración de %<operator %T%>"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting specifiers in declaration of %qs"
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "especificadores en conflicto en la declaración de %qs"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting specifiers in declaration of %qs"
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "especificadores en conflicto en la declaración de %qs"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "se declaró la variable o campo sin nombre como void"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "se declaró la variable o campo como void"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "el especificador %<inline%> es no válido para la función %qs declarada fuera del ámbito global"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, fuzzy, gcc-internal-format
 #| msgid "inline namespaces only available with -std=c++11 or -std=gnu++11"
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "los nombres de espacio incluidos en línea sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "los destructores no pueden ser cv-calificados"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "uso no válido del nombre calificado %<::%D%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "uso no válido del nombre calificado %<%T::%D%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "uso no válido del nombre calificado %<%D::%D%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%q#T is not a class or namespace"
 msgstr "%qT no es una clase o un espacio de nombres"
 
 #  FIXME traducción
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "declaration of %qE as non-function"
 msgstr "la declaración de %qD como algo que no es función"
 
 #  FIXME traducción
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-member"
 msgid "declaration of %qE as non-member"
 msgstr "declaración de %qD como algo que no es miembro"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "falta el id del declarador; se utiliza la palabra reservada %qD"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "la definición de la función no declara parámetros"
 
 #  FIXME traducción
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "la declaración de %qD como algo que no es función"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "declaración de %qD como %<typedef%>"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "la declaración de %qD como parámetro"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, fuzzy, gcc-internal-format
 #| msgid "no classes specified"
 msgid "both %qs and %qs specified"
 msgstr "no se especificó ninguna clase"
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 #| msgid "%<constexpr%> cannot appear in a typedef declaration"
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%<constexpr%> no puede aparecer en una declaración typedef"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "dos o más tipos de datos en la declaración de %qs"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C no admite %<complex%> simples que significan %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ prohíbe la declaración de %qs sin tipo"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int128%> is not supported by this target"
 msgid "%<__int%d%> is not supported by this target"
 msgstr "no se admite %<__int128%> en este objetivo"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<__int128%> for %qs"
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ no admite %<__int128%> para %qs"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 #| msgid "%<signed%> and %<unsigned%> specified together for %qs"
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> y %<unsigned%> se especificaron juntos para %qs"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 #| msgid "%<long%> and %<short%> specified together for %qs"
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> y %<short%>  se especificaron juntos para %qs"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 #| msgid "%qs used with %qE"
 msgid "%qs specified with %qT"
 msgstr "se usó %qs con %qE"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<typedef%>"
 msgid "%qs specified with typedef-name %qD"
 msgstr "se usó %qE con %<typedef%>"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<typedef%>"
 msgid "%qs specified with %<decltype%>"
 msgstr "se usó %qE con %<typedef%>"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<typedef%>"
 msgid "%qs specified with %<typeof%>"
 msgstr "se usó %qE con %<typedef%>"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "complex no válido para %qs"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "el miembro %qD no se puede declarar como virtual y static al mismo tiempo"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "el miembro %qD no se puede declarar como virtual y static al mismo tiempo"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "declaración typedef no válida en la declaración de parámetros"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "se especificó una clase de almacenamiento para el parámetro de plantilla %qs"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "se especificó una clase de almacenamiento para el parámetro %qs"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 #| msgid "a parameter cannot be declared %<constexpr%>"
 msgid "a parameter cannot be declared %qs"
 msgstr "un parámetro no se puede declarar %<constexpr%>"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "declaración de clase fuera de %<virtual%>"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q#T"
 msgid "structured binding declaration cannot be %qs"
 msgstr "se descarta el atributo en la declaración de %q#T"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, fuzzy, gcc-internal-format
 #| msgid "unrestricted unions only available with -std=c++11 or -std=gnu++11"
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "las uniones sin restricción sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer for bit string"
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "inicializador no válido para la cadena de bits"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, fuzzy, gcc-internal-format
 #| msgid "function %qs cannot be declared %<mutable%>"
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr "la función %qs no se puede declarar %<mutable%>"
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 #| msgid "indirect function %q+D cannot be declared weak"
 msgid "structured binding declaration cannot have type %qT"
 msgstr "la función indirecta %q+D no se puede declarar weak"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, fuzzy, gcc-internal-format
 #| msgid "indirect function %q+D cannot be declared weak"
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr "la función indirecta %q+D no se puede declarar weak"
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "múltiples clases de almacenamiento en la declaración de %qs"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "se especificó una clase de almacenamiento para %qs"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "la función anidada %qs se declaró %<extern%>"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "la declaración del nivel superior de %qs especifica %<auto%>"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "el ámbito de la función %qs es implícitamente auto y declarado %<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "especificadores de clase de almacenamiento no válidos en las declaraciones de funciones friend"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, gcc-internal-format
 msgid "attribute ignored"
 msgstr "se descarta el atributo"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr "un atributo que atañe a un especificador de tipo se descarta"
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 #| msgid "multiple storage classes in declaration of %qs"
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "múltiples clases de almacenamiento en la declaración de %qs"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, fuzzy, gcc-internal-format
 #| msgid "Expected left parenthesis"
 msgid "remove parentheses"
 msgstr "Se esperaba un paréntesis izquierdo"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, fuzzy, gcc-internal-format
 #| msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L cannot have an initializer"
 msgid "a function type cannot have an explicit object parameter"
 msgstr "La función '%s' en %L no puede tener un inicializador"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function cannot have arguments"
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr "la función %qs no puede tener argumentos"
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 #| msgid "  member function type %qT is not a valid template argument"
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "  el tipo de función miembro %qT no es un argumento de plantilla válido"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in conditions"
 msgid "the type of an explicit object member function is a regular function type"
 msgstr "no se pueden definir tipos en condiciones"
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "valid explicit object parameter declared here"
 msgstr "el tipo de parámetro de plantilla %qT se declaró %<friend%>"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr ""
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr "la función %qs usa el especificador de tipo %<auto%> sin un tipo de devolución trailing"
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, fuzzy, gcc-internal-format
 #| msgid "trailing return type only available with -std=c++11 or -std=gnu++11"
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "el tipo de devolución trailing sólo está disponible con -std=c++11 o -std=gnu++11"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual function cannot have deduced return type"
 msgstr "las funciones virtual no pueden ser friend"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr "la función %qs con tipo de devolución trailing tiene %qT como su tipo en lugar de un simple %<auto%>"
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr "la función %qs con tipo de devolución trailing tiene %qT como su tipo en lugar de un simple %<auto%>"
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<auto%>"
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "uso no válido de %<auto%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "deduced class type %qD in function return type"
 msgstr "se descartan los calificadores de tipo en el tipo de devolución de la función"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function cannot have arguments"
 msgid "deduction guide for %qT must have trailing return type"
 msgstr "la función %qs no puede tener argumentos"
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, fuzzy, gcc-internal-format
 #| msgid "trailing return type only available with -std=c++11 or -std=gnu++11"
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "el tipo de devolución trailing sólo está disponible con -std=c++11 o -std=gnu++11"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr "no se declaró la función %qs con tipo de devolución trailing con el especificador de tipo %<auto%>"
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function cannot have arguments"
 msgid "a conversion function cannot have a trailing return type"
 msgstr "la función %qs no puede tener argumentos"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, fuzzy, gcc-internal-format
 #| msgid "%<_Atomic%>-qualified return type of %qD"
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr "calificado %<_Atomic%> el tipo de retorno de %qD"
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs que se declaró como función devuelve una función"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs que se declaró como función devuelve una matriz"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, fuzzy, gcc-internal-format
 #| msgid "%<noreturn%> function returns non-void value"
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "la función %<noreturn%> devuelve un valor que no es void"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "el destructor no puede ser una función miembro de tipo static"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "el constructor no puede ser una función miembro de tipo static"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "los destructores no pueden ser cv-calificados"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "los constructores tal vez no sean cv-calificados"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "destructors may not be ref-qualified"
 msgstr "los destructores no pueden ser cv-calificados"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "constructors may not be ref-qualified"
 msgstr "los destructores no pueden ser cv-calificados"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "los constructores no se pueden declarar virtual"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "las funciones virtual no pueden ser friend"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "la declaración friend no está en una definición de clase"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 #| msgid "can%'t define friend function %qs in a local class definition"
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "no se puede definir la función friend %qs en una definición de clase local"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 #| msgid "non-member function %qD cannot have cv-qualifier"
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "la función que no es miembro %qD no puede tener calificador-cv"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 #| msgid "templates may not be %<virtual%>"
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "las plantillas no pueden ser %<virtual%>"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "an explicit object member function cannot be %<static%>"
 msgstr "los constructores no se pueden declarar virtual"
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD debe ser una función miembro que no sea static"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "los destructores no pueden tener parámetros"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "no se puede declarar el puntero a %q#T"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "no se puede declarar la referencia a %q#T"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "no se puede declarar el puntero al miembro %q#T"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "no se puede declarar la referencia para el tipo de función calificado %qT"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "no se puede declarar el puntero para el tipo de función calificado %qT"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr "no se puede declarar la referencia a %q#T, el cual no es una definición de tipo o un argumento de tipo de plantilla"
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "el id de plantilla %qD se usa como un declarador"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "las funciones miembros son implícitamente friends de su clase"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "calificación extra %<%T::%> en el miembro %qs"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 #| msgid "cannot define member function %<%T::%s%> within %<%T%>"
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "no se puede definir la función miembro %<%T::%s%> dentro de %<%T%>"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare member function %<%T::%s%> within %<%T%>"
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "no se puede declarar la función miembro %<%T::%s%> dentro de %<%T%>"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "no se puede declarar el miembro %<%T::%s%> dentro de %qT"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "%qs que no es parámetro no puede ser un paquete de parámetro"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "los datos miembro pueden no tener el tipo modificado variablemente %qT"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "el parámetro puede no tener el tipo modificado variablemente %qT"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 #| msgid "%<virtual%> outside class declaration"
 msgid "%<explicit%> outside class declaration"
 msgstr "declaración de clase fuera de %<virtual%>"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> in empty declaration"
 msgid "%<explicit%> in friend declaration"
 msgstr "%<inline%> en una declaración vacía"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, fuzzy, gcc-internal-format
 #| msgid "only declarations of constructors can be %<explicit%>"
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "solamente las declaraciones de constructores pueden ser %<explicit%>"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "el no-miembro %qs no se puede declarar %<mutable%>"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "el miembro que no es objeto %qs no se puede declarar %<mutable%>"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "la función %qs no se puede declarar %<mutable%>"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "static %qs cannot be declared %<mutable%>"
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "static %qs no se puede declarar %<mutable%>"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "const %qs cannot be declared %<mutable%>"
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "const %qs no se puede declarar %<mutable%>"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "la referencia %qs no se puede declarar %<mutable%>"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in conditions"
 msgid "typedef may not be a function definition"
 msgstr "no se pueden definir tipos en condiciones"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in conditions"
 msgid "typedef may not be a member function definition"
 msgstr "no se pueden definir tipos en condiciones"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not in a declaration"
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<[*]%> fuera de una declaración"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "la definición de tipo se declaró %<auto%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "el nombre del typedef puede no ser un especificador-de-nombre-anidado"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ISO C++ prohíbe el tipo anidado %qD con el mismo nombre que la clase que lo contiene"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "se especificó %<inline%> para la declaración de clase friend"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "los parámetros de la plantilla no pueden ser friends"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "la declaración friend requere una llave de clase, p.e. %<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "la declaración friend requiere una llave de clase, p.e. %<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "se intenta hacer que la clase %qT sea un friend de ámbito global"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "calificadores no válidos en el tipo de función que no es miembro"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "el declarador abstracto %qT se usó como declaración"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 #| msgid "value-initialization of function type %qT"
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "inicialización por valor del tipo de función %qT"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "no se puede usar %<::%>  en la declaración de parámetros"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter %q+D to be of abstract type %qT"
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "no se puede declarar que el parámetro %q+D sea del tipo abstracto %qT"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "no se puede usar %<this%> en este contexto"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "el parámetro se declaró %<auto%>"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "uso no válido del nombre-de-plantilla %qE sin una lista de argumentos"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member declared %<auto%>"
 msgid "non-static data member declared with placeholder %qT"
 msgstr "se declaró el miembro dato que no es static como %<auto%>"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C90 no admite miembros de matriz flexibles"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C90 no admite miembros de matriz flexibles"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "uso no válido de %<::%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "declaración de la función %qD en un contexto no válido"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared virtual inside a union"
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "la función %qD se declaró virtual dentro de un union"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot be declared virtual, since it is always static"
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD no se puede declarar virtual, ya que siempre es static"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "se esperaba un nombre calificado en la declaración friend para el destructor %qD"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "declaración de %qD como miembro de %qT"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "a destructor cannot be %qs"
 msgstr "un destructor no puede ser %<constexpr%>"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "se esperaba un nombre calificado en la declaración friend para el constructor %qD"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "a constructor cannot be %<concept%>"
 msgstr "un destructor no puede ser %<constexpr%>"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "a concept cannot be a member function"
 msgstr "el constructor no puede ser una función miembro de tipo static"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 #| msgid "cannot open %s"
 msgid "%qD cannot be %qs"
 msgstr "no se puede abrir %s"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
 #| msgid "variable %qD redeclared as function"
 msgid "specialization of variable template %qD declared as function"
 msgstr "la variable %qD se redeclaró como función"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 #| msgid "original type declared here"
 msgid "variable template declared here"
 msgstr "el tipo original se definió aquí"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 #| msgid "field %qD has incomplete type"
 msgid "field %qD has incomplete type %qT"
 msgstr "el campo %qD tiene tipo de dato incompleto"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "el nombre %qT tiene tipo de dato incompleto"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE no es ni función ni función miembro; no se puede declarar friend"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is neither function nor member function; cannot be declared friend"
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "%qE no es ni función ni función miembro; no se puede declarar friend"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, fuzzy, gcc-internal-format
 #| msgid "an attribute that appertains to a type-specifier is ignored"
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr "un atributo que atañe a un especificador de tipo se descarta"
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member %qE declared %<constexpr%>"
 msgid "static data member %qE declared %qs"
 msgstr "se declaró el miembro dato que no es static %qE como %<constexpr%>"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 #| msgid "constexpr static data member %qD must have an initializer"
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "el miembro dato static constexpr %qD debe tener un inicializador"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member %qE declared %<constexpr%>"
 msgid "non-static data member %qE declared %qs"
 msgstr "se declaró el miembro dato que no es static %qE como %<constexpr%>"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "la clase de almacenamiento %<auto%> es no válida para la función %qs"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "la clase de almacenamiento %<register%> es no válida para la función %qs"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "la clase de almacenamiento %<__thread%> es no válida para la función %qs"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 #| msgid "storage class %<__thread%> invalid for function %qs"
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "la clase de almacenamiento %<__thread%> es no válida para la función %qs"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 #| msgid "alignment specified for function %qE"
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "se especificó la alineación para la función %qE"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "no se permiten los especificadores-virt en %qs fuera de una definición de clase"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, fuzzy, gcc-internal-format
 #| msgid "%<static%> specified invalid for function %qs declared out of global scope"
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "el especificador %<static%> es no válido para la función %qs declarada fuera del ámbito global"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "el especificador %<inline%> es no válido para la función %qs declarada fuera del ámbito global"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "función virtual %qs que no es clase"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "se definió %qs en un ámbito que no es una clase"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "se declaró %qs en un ámbito que no es una clase"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "no se puede declarar que la función miembro %qD tenga enlace estático"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "no se puede declarar una función static dentro de otra función"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "%<static%> puede no ser utilizado cuando se define (opuesto a la declaración) un dato miembro static"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "se declaró el miembro static %qD como %<register%>"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "no se puede declarar explícitamente que el miembro %q#D tenga un enlace externo"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of constexpr variable %qD is not a definition"
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "la declaración de la variable constexpr %qD no es una definición"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 #| msgid "a parameter cannot be declared %<constexpr%>"
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "un parámetro no se puede declarar %<constexpr%>"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs inicializado y declarado como %<extern%>"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs tiene %<extern%> e inicializador al mismo tiempo"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "el argumento por defecto %qE usa %qD"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "el argumento por defecto %qE usa la variable local %qD"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<virtual%> in template declaration of %q#D"
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "uso no válido de %<virtual%> en la declaración de plantilla de %q#D"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<virtual%> in template declaration of %q#D"
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "uso no válido de %<virtual%> en la declaración de plantilla de %q#D"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, fuzzy, gcc-internal-format
 #| msgid "%<_Atomic%>-qualified parameter type %qT of %q+D"
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "tipo de parámetro cualificado %<_Atomic%> %qT de %q+D"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "el parámetro %qD se declaró no válidamente como tipo de método"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "el parámetro %qD incluye un puntero a matriz %qT de límite desconocido"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "el parámetro %qD incluye una referencia a matriz %qT de límite desconocido"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "constructor no válido; tal vez quiso decir %<%T (const %T&)%>"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD no se puede declarar dentro de un espacio de nombres"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD no se puede declarar como static"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a non-static member function"
 msgstr "%qD debe ser una función miembro que no sea static"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a non-member function"
 msgid "%qD must be a member function"
 msgstr "%qD debe ser una función que no sea miembro"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, fuzzy, gcc-internal-format
 #| msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD debe ser una función miembro que no sea static o una función que no sea miembro"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD debe tener un argumento de tipo clase o enumerado"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ prohibits overloading operator ?:"
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ prohíbe la sobrecarga del operador ?:"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD no debe tener un número variable de argumentos"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either zero or one argument"
 msgid "%qD must have either zero or one argument"
 msgstr "%qD debe tomar cero o un argumentos"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either one or two arguments"
 msgid "%qD must have either one or two arguments"
 msgstr "%qD debe tomar uno o dos argumentos"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its argument"
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "el postfijo %qD debe tomar %<int%> como su argumento"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its second argument"
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "el postfijo %qD debe tomar %<int%> como su segundo argumento"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have no arguments"
 msgstr "%qD debe tomar dos argumentos exactamente"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly one argument"
 msgid "%qD must have exactly one argument"
 msgstr "%qD debe tomar un argumento exactamente"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have exactly two arguments"
 msgstr "%qD debe tomar dos argumentos exactamente"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD no puede tener argumentos por defecto"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to void will never use a type conversion operator"
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "la conversión a void nunca usará un operador de conversión de tipo"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to a reference to the same type will never use a type conversion operator"
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "la conversión a una referencia al mismo tipo nunca usará un operador de conversión de tipo"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to the same type will never use a type conversion operator"
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "la conversión al mismo tipo nunca usará un operador de conversión de tipo"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to a reference to a base class will never use a type conversion operator"
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "la conversión a una referencia a una clase base nunca usará un operador de conversión de tipo"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to a base class will never use a type conversion operator"
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "la conversión a una clase base nunca usará un operador de conversión de tipo"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "el %qD definido por el usuario siempre evalúa ambos argumentos"
 
 #  En esta traducción se emplea 'devolver' por 'return'. Si embargo, aquí
 #  se cambió por cacofonía: no es agradable escuchar 'debe devolver'. cfuga
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "el prefijo %qD debe regresar %qT"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "el postfijo %qD debe regresar %qT"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD debe devolver por valor"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "usando el parámetro de tipo plantilla %qT después de %qs"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "se usa especialización de plantilla %qT alias después de %qs"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "se usó el nombre de definición de tipo %qD después de %qs"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "%qD tiene una declaración previa aquí"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "se refirió a %qT como %qs"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 #| msgid "%q+T has a previous declaration here"
 msgid "%qT has a previous declaration here"
 msgstr "%q+T tiene una declaración previa aquí"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "se refirió a %qT como un enum"
@@ -61094,71 +61102,60 @@ msgstr "se refirió a %qT como un enum"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "se requiere un argumento de plantilla para %<%s %T%>"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "la referencia a %qD es ambigua"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 #| msgid "function template %qD redeclared as a class template"
 msgid "class template %qD redeclared as non-template"
 msgstr "la plantilla de función %qD se redeclaró commo una plantilla de clase"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD tiene el mismo nombre que la clase en la cual se declaró"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT no es una plantilla"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "uso del enum %q#D sin declaración previa"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "redeclaración de %qT como algo que no es plantilla"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD to be a bit-field type"
-msgid "cannot declare %qD in a different module"
-msgstr "no se puede declarar %qD que sea un tipo de campo de bits"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "se declaró previamente aquí"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "union derivada %qT no válida"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr ""
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct or virtual base of %qT"
 msgid "%qT defined with direct virtual base"
@@ -61166,49 +61163,43 @@ msgstr "el tipo %qT no es una base directa o virtual de %qT"
 
 #  No me gusta mucho esta traducción. Creo que es mejor
 #  "el tipo base %qT no es de tipo struct o clase". cfuga
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "el tipo base %qT falla en ser un tipo struct o clase"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "tipo recursivo %qT sin definir"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "tipo base duplicado %qT no válido"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-#| msgid "cannot capture %qE by reference"
-msgid "cannot declare %qD in different module"
-msgstr "no se puede capturar %qE por referencia"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr "no coinciden scoped/unscoped en el enum %q#T"
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr "la definición previa está aquí"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr "no coincide el tipo subyacente en el enum %q#T"
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr "tipos subyacentes diferentes en el enum %q#T"
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 #| msgid "underlying type %<%T%> of %<%T%> must be an integral type"
 msgid "underlying type %qT of %qT must be an integral type"
@@ -61218,89 +61209,89 @@ msgstr "el tipo subyacente %<%T%> de %<%T%> debe ser un tipo integral"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "ningún tipo integral puede representar todos los valores de enumerador de %qT"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qD is not an integer constant"
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "el valor de enumerador para %qD no es una constante entera"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "el valor de enumerador para %qD no es una constante entera"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "el valor del enumerador incrementado es demasiado grande para %<unsigned long%>"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 #| msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "el valor del enumerador incrementado es demasiado grande para %<unsigned long%>"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "desbordamiento en valores de enumeración en %qD"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value %E is too large for underlying type %<%T%>"
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "el valor de enumerador %E es demasiado grande para el tipo subyacente %<%T%>"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "definición múltiple de %q#T"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "el tipo de devolución %q#T es un tipo de dato incompleto"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%> debe devolver una referencia a %<*this%>"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statements in function returning %qT"
 msgstr "no hay una declaración de devolución en la función que no devuelve void"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, fuzzy, gcc-internal-format
 #| msgid "function return types not compatible due to %<volatile%>"
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "los tipos de devolución de función no son compatibles debido a %<volatile%>"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "no hay una declaración de devolución en la función que no devuelve void"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD ya se definió en la clase %qT"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 #| msgid "enclosing %qs"
 msgid "using %qs"
 msgstr "%qs contenedora"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, fuzzy, gcc-internal-format
 #| msgid "type of %qD defaults to %<int%>"
 msgid "use of %qD before deduction of %<auto%>"
@@ -61358,7 +61349,7 @@ msgstr "no se puede borrar una función.  Solamente los punteros a objetos son a
 msgid "deleting %qT is undefined"
 msgstr "el borrado de %qT está indefinido"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "declaración plantilla de %q#D"
@@ -61368,7 +61359,7 @@ msgstr "declaración plantilla de %q#D"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "las listas de parámetro de plantilla proporcionadas no coinciden con los parámetros de plantilla de %qD"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "se declaró el destructor %qD como una plantilla miembro"
@@ -61567,73 +61558,73 @@ msgstr "los destructores deben ser funciones miembro"
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> toma el tipo %qT como primer argumento"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr "%qT tiene un campo %qD cuyo tipo usa el espacio de nombres anónimo"
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr "%qT tiene un campo %qD cuyo tipo usa el espacio de nombres anónimo"
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%qT tiene un campo %qD cuyo tipo usa el espacio de nombres anónimo"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr "%qT tiene un campo %qD cuyo tipo usa el espacio de nombres anónimo"
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qT se declaró con mayor visibilidad que el tipo de su campo %qD"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which has no linkage"
 msgstr "%qT tiene una base %qT cuyo tipo usa el espacio de nombres anónimo"
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr "%qT tiene una base %qT cuyo tipo usa el espacio de nombres anónimo"
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which has internal linkage"
 msgstr "%qT tiene una base %qT cuyo tipo usa el espacio de nombres anónimo"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr "%qT tiene una base %qT cuyo tipo usa el espacio de nombres anónimo"
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT se declaró con mayor visibilidad que su base %qT"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D, declared using anonymous type, is used but never defined"
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%q+#D, declarada usando el tipo anónimo, se usa pero nunca se define"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D, declared using anonymous type, is used but never defined"
 msgid "%q#D, declared using an unnamed type, is used but not defined"
@@ -61643,118 +61634,118 @@ msgstr "%q+#D, declarada usando el tipo anónimo, se usa pero nunca se define"
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous type with no linkage used to declare variable %q#D with linkage"
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "se usó un tipo anónimo sin enlace para declarar la variable %q#D sin enlace"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous type with no linkage used to declare function %q#D with linkage"
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "se usó un tipo anónimo sin enlace para declarar la función %q#D con enlace"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q+#D no se refiere al tipo sin calificar, así que no se usa para el enlace"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D, declared using local type %qT, is used but never defined"
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q+#D, declarada usando el tipo local %qT, se usa pero nunca se define"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D, declared using local type %qT, is used but never defined"
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%q+#D, declarada usando el tipo local %qT, se usa pero nunca se define"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr "se usó el tipo %qT sin enlace para declarar la variable %q#D con enlace"
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "se usó el tipo %qT sin enlace para declarar la función %q#D con enlace"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D conflicts with a previous declaration"
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "%q#D genera un conflicto con una declaración previa"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+#D"
 msgid "previous mangling %q#D"
 msgstr "declaración previa de %q+#D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, fuzzy, gcc-internal-format
 #| msgid "-fabi-version=6 (or =0) avoids this error with a change in mangling"
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr "-fabi-version=6 (o =0) evita este error con un cambio en la decodificación"
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D used but never defined"
 msgid "inline function %qD used but never defined"
 msgstr "se usa la función inline %q+D pero nunca se define"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 #| msgid "default argument missing for parameter %P of %q+#D"
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "falta el argumento por defecto para el parámetro %P de %q+#D"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, fuzzy, gcc-internal-format
 #| msgid "parameter pack cannot have a default argument"
 msgid "...following parameter %P which has a default argument"
 msgstr "el paquete de parámetros no puede tener un argumento por defecto"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 #| msgid "class %qE is deprecated"
 msgid "implicitly-declared %qD is deprecated"
 msgstr "la clase %qE es obsoleta"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, fuzzy, gcc-internal-format
 #| msgid "converting lambda which uses %<...%> to function pointer"
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "se convierte lambda la cual usa %<...%> a un puntero de función"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "se usó la función borrada %q+D"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %qD differs in %<constexpr%>"
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "la redeclaración de %qD difiere en %<constexpr%>"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, fuzzy, gcc-internal-format
 #| msgid "using %<typename%> outside of template"
 msgid "use of built-in parameter pack %qD outside of a template"
@@ -61877,7 +61868,7 @@ msgstr "la referencia a %<%T::%D%> es ambigua"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qT no tiene un miembro llamado %qE; ¿quiso decir %qE?"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD no es un miembro de %qT"
@@ -61888,7 +61879,7 @@ msgstr "%qD no es un miembro de %qT"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qT no tiene un miembro llamado %qE; ¿quiso decir %qE?"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD no es un miembro de %qD"
@@ -61915,52 +61906,52 @@ msgstr "manejo de excepciones desactivado, use -fexceptions para activar"
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "arrojando NULL, que tiene un tipo integral, que no es puntero"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  en la expresión thrown"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter %q+D to be of abstract type %qT"
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "no se puede declarar que el parámetro %q+D sea del tipo abstracto %qT"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create type information for type %qT because it involves types of variable size"
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "no se puede crear la información de tipo para el tipo %qT porque involucra tipos de tamaño variable"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create type information for type %qT because it involves types of variable size"
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "no se puede crear la información de tipo para el tipo %qT porque involucra tipos de tamaño variable"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, fuzzy, gcc-internal-format
 #| msgid "exception of type %qT will be caught"
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "la excepción del tipo %qT se atrapará"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, fuzzy, gcc-internal-format
 #| msgid "wrong type argument to %s"
 msgid "for type %qT"
 msgstr "argumento de tipo erróneo para %s"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "el manejador %<...%> debe ser el último manejador para su bloque try"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr "la expresión noexcept evalúa a %<falso%> por una llamada a %qD"
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, fuzzy, gcc-internal-format
 #| msgid "but %q+D does not throw; perhaps it should be declared %<noexcept%>"
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
@@ -62238,12 +62229,12 @@ msgstr "el tipo %qT no es una base directa o virtual de %qT"
 msgid "type %qT is not a direct base of %qT"
 msgstr "el tipo %qT no es una base directa de %qT"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "la matriz se debe inicializar con un inicializador dentro de llaves"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT no es un tipo de clase"
@@ -62258,12 +62249,12 @@ msgstr "el tipo incompleto %qT no tiene al miembro %qD"
 msgid "invalid pointer to bit-field %qD"
 msgstr "puntero no válido al campo de bits %qD"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "uso no válido de la función miembro no static %qD"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "uso no válido del dato miembro no static %qD"
@@ -62477,54 +62468,54 @@ msgstr "si borra un objeto de tipo de clase abstracta %qT que tiene un destructo
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr "si borra un objeto de tipo de clase polimórfica %qT que tiene un destructor que no es virtual, puede causar conducta indefinida"
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "el tipo de vector delete no es del tipo puntero ni matriz"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, fuzzy, gcc-internal-format
 #| msgid "compound literal has variable size"
 msgid "because the array element type %qT has variable size"
 msgstr "la literal compuesta tiene tamaño variable"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "no se puede capturar %qE por referencia"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of incomplete type %q#T"
 msgid "capture by copy of incomplete type %qT"
 msgstr "uso no válido del tipo incompleto %q#T"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "no se capturó %<this%> para esta función lambda"
@@ -62934,242 +62925,293 @@ msgstr "se esperaba un id de plantilla para el tipo"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting global module declaration %#qD"
 msgstr "declaraciones de %q#D en conflicto"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration %q+D"
 msgid "existing declaration %#qD"
 msgstr "en la declaración %q+D"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 #| msgid "extern declaration of %q#D doesn%'t match"
 msgid "definition of %qD does not match"
 msgstr "la declaración extern de %q#D no coincide"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing definition"
 msgid "existing definition %qD"
 msgstr "falta la definición"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "... this enumerator %qD"
 msgstr "redeclaración del enumerador %q+D"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 #| msgid "argument of type %qT does not match %qT"
 msgid "enumerator %qD does not match ..."
 msgstr "el argumento de tipo %qT no coincide con %qT"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 #| msgid "routine %qD declared here"
 msgid "module %qs declared here"
 msgstr "la rutina %qD se declara aquí"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %q+D was here"
 msgid "macro definitions of %qE corrupted"
 msgstr "la definición previa de %q+D estaba aquí"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 #| msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgid "inconsistent imported macro definition %qE"
 msgstr "  deducción de paquete de parámetros inconsistente con %qT y %qT"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 #| msgid "Can't delete module file %qs: %s"
 msgid "compiled module file is %qs"
 msgstr "No se puede borrar el fichero de módulo %qs: %s"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Display the compiler's version."
 msgid "compiled module is %sversion %s"
 msgstr "Muestra la versión del compilador."
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2 versión %s\n"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 #| msgid "no %qs getter found"
 msgid "module %qs found"
 msgstr "no se encuentra el getter %qs"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, fuzzy, gcc-internal-format
 #| msgid "exception handling disabled, use -fexceptions to enable"
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr "manejo de excepciones desactivado, use -fexceptions para activar"
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 #| msgid "function attribute mismatch"
 msgid "fixed tree mismatch"
 msgstr "no coincide el atributo de función"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 #| msgid "target optimization options not supported yet"
 msgid "interface partition is not exported"
 msgstr "no se admiten aún las opciones de optimización del objetivo"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to rename %s to state file %s [%s]"
 msgid "failed to read compiled module cluster %u: %s"
 msgstr "no se puede renombrar %s al fichero de estado %s [%s]"
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to open %s"
 msgid "failed to read compiled module: %s"
 msgstr "no se puede abrir %s"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+#| msgid "conflicts with built-in declaration %q#D"
+msgid "declaration %qD conflicts with builtin"
+msgstr "genera un conflicto con la declaración interna %q#D"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of namespace %qD conflicts with"
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "la declaración del espacio de nombres %qD genera un conflicto con"
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of template %q#D"
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "redeclaración de la plantilla %q#D"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+#| msgid "previous declaration of %q+#D with %qL linkage"
+msgid "conflicting declaration of %qD in global module"
+msgstr "declaración previa de %q+#D con el enlace %qL"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared here"
+msgid "previously declared in module %qs"
+msgstr "se declaró previamente aquí"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared here"
+msgid "previously declared in global module"
+msgstr "se declaró previamente aquí"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 #| msgid "reading"
 msgid "reading CMI %qs"
 msgstr "leyendo"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, fuzzy, gcc-internal-format
 #| msgid "unknown option for %<%s=%s%>"
 msgid "during load of pendings for %<%E%s%E%>"
@@ -63182,442 +63224,442 @@ msgstr "opción desconocida para %<%s=%s%>"
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol %qs already declared"
 msgid "module already declared"
 msgstr "El símbolo %qs ya se había declarado"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, fuzzy, gcc-internal-format
 #| msgid "module procedure"
 msgid "module already imported"
 msgstr "procedimiento módulo"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, fuzzy, gcc-internal-format
 #| msgid "module procedure"
 msgid "module %qs imported here"
 msgstr "procedimiento módulo"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "unknown operand letter: '%c'"
 msgid "unknown Compiled Module Interface: %s"
 msgstr "letra de operando desconocida: '%c'"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, fuzzy, gcc-internal-format
 #| msgid "while writing precompiled header"
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr "al escribir el encabezado precompilado"
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 #| msgid "Enable traditional preprocessing."
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "Habilita el preprocesamiento tradicional."
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, fuzzy, gcc-internal-format
 #| msgid "Do not use the Xtensa SEXT option"
 msgid "you should use the %<-%s%> option"
 msgstr "No usar la opción SEXT de Xtensa"
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param name %qs"
 msgid "invalid header name %qs"
 msgstr "nombre de --param %qs no válido"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 #| msgid "invalid macro name `%s'"
 msgid "invalid module name %qs"
 msgstr "nombre de macro `%s' no válido"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 #| msgid "error writing %qs"
 msgid "writing CMI %qs"
 msgstr "error al escribir %qs"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 #| msgid "Error writing modules file: %s"
 msgid "not writing module %qs due to errors"
 msgstr "Error al escribir el fichero de módulos: %s"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to write state trailer [%s]"
 msgid "failed to write compiled module: %s"
 msgstr "no se puede escribir el estado remanente [%s]"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 #| msgid "unknown spec function %qs"
 msgid "unknown header kind %qs"
 msgstr "función de especificación %qs desconocida"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, fuzzy, gcc-internal-format
 #| msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "la declaración de %q+D oscurece un parámetro"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D genera un conflicto con una declaración previa"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D hides constructor for %q#T"
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D esconde el destructor para %q#T"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "declaraciones de %q#D en conflicto"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "debido a diferentes especificaciones de excepciones"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD invalidly declared method type"
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "el parámetro %qD se declaró no válidamente como tipo de método"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "la declaración de %q#D oscurece un parámetro"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as member of %qT"
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "declaración de %qD como miembro de %qT"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration %qD in local class without prior declaration"
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "una declaración friend %qD en una clase local sin declaración previa"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s(%E) %p %d\n"
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %s(%E) %p %d\n"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s %p %d\n"
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d\n"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, fuzzy, gcc-internal-format
 #| msgid "%qD does not have integral or enumeration type"
 msgid "exporting %q#D that does not have external linkage"
 msgstr "%qD no tiene tipo integral o de enumeración"
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D declared here"
 msgid "%q#D declared here with no linkage"
 msgstr "%q+#D se declaró aquí"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here, later in the translation unit"
 msgid "%q#D declared here with internal linkage"
 msgstr "%q+D se declaró aquí, después en la unidad de translación"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D declared here"
 msgid "%q#D declared here with module linkage"
 msgstr "%q+#D se declaró aquí"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> names destructor"
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T::%D%> nombra al destructor"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "declaración de uso para un no miembro en el ámbito de la clase"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%<constexpr%> de C++11 sólo está disponible con -std=c++11 o -std=gnu++11"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a class, namespace, or enumeration"
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qE no es una clase, un espacio de nombres o una enumeración"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "declaración plantilla de %q#D"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration for non-member at class scope"
 msgid "using-declaration for member at non-class scope"
 msgstr "declaración de uso para un no miembro en el ámbito de la clase"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "%qT is not a direct base of %qT"
 msgstr "el tipo %qT no es una base directa de %qT"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has not been declared"
 msgid "%qD has not been declared in %qD"
 msgstr "%qE no se ha declarado"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration cannot name destructor"
 msgid "using-declaration may not name namespace %qD"
 msgstr "uan declaración de uso no puede nombrar al destructor"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> nombra al constructor en %qT"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "la declaración de %qD no está en un espacio de nombres alrededor de %qD"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "calificación explícita en la declaración de %qD"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD se debería declarar dentro de %qD"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has not been declared"
 msgid "%qD has not been declared within %qD"
 msgstr "%qE no se ha declarado"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a friend"
 msgid "only here as a %<friend%>"
 msgstr "%q+D se declaró como friend"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "el atributo %qD requiere un solo argumento NTBS"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr "el atributo %qD no tiene signifcado porque los miembros del espacio de nombres anónimo tiene símbolos locales"
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes on template argument %qT"
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr "se descartan los atributos en el argumento de plantilla %qT"
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes on template argument %qT"
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "se descartan los atributos en el argumento de plantilla %qT"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "se descarta la directiva de atributo %qD"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr "límite máximo de %d espacios de nombres buscados para %qE"
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] "alternativa sugerida:"
 msgstr[1] "alternativas sugeridas:"
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr "  %qE"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not available for %s architecture"
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "%s no está disponible para la arquitectura %s"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 #| msgid "weak %q+D cannot be defined %qE"
 msgid "the macro %qs had not yet been defined"
 msgstr "weak %q+D no se puede definir como %qE"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 #| msgid "struct defined here"
 msgid "it was later defined here"
 msgstr "se definió struct aquí"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, fuzzy, gcc-internal-format
 #| msgid "deducing from brace-enclosed initializer list requires #include <initializer_list>"
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr "la deducción de una lista inicializadora encerrada entre llaves requiere #include <initializer_list>"
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 #| msgid "switch %qs is no longer supported"
 msgid "%<strong%> using directive no longer supported"
 msgstr "la opción %qs ya no se admite"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, fuzzy, gcc-internal-format
 #| msgid "This switch is deprecated; use -fsanitize-recover= instead."
 msgid "you can use an inline namespace instead"
 msgstr "Esta opción es obsoleta; utilice en su lugar -fsanitize-recover=."
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "no se puede usar %<this%> en este contexto"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qD may not be declared within a namespace"
 msgid "cannot nest more than %d namespaces"
 msgstr "%qD no se puede declarar dentro de un espacio de nombres"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L is ambiguous"
 msgid "%<namespace %E%> is ambiguous"
 msgstr "'%s' en %L es ambiguo"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "no se permite aquí el alias del espacio de nombres %qD, se asume que es %qD"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, fuzzy, gcc-internal-format
 #| msgid "method attributes must be specified at the end only"
 msgid "inline namespace must be specified at initial definition"
 msgstr "los atributos de método sólo se deben especificar al final"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 #| msgid "label %qD defined here"
 msgid "%qD defined here"
 msgstr "la etiqueta %qD se define aquí"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 #| msgid "%qD conflicts with used function"
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "%qD genera un conflicto con la función utilizada"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "previous definition here"
 msgid "reachable %s definition here"
 msgstr "la definición previa está aquí"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, fuzzy, gcc-internal-format
 #| msgid "XXX entering pop_everything ()\n"
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX entrando a pop_everything ()\n"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "XXX leaving pop_everything ()\n"
 msgid "XXX leaving %<pop_everything ()%>"
@@ -63644,7 +63686,7 @@ msgstr "el identificador %qE es una palabra clave en C++11"
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp declare simd%> not immediately followed by a function declaration or definition"
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
@@ -63904,7 +63946,7 @@ msgstr "%<constexpr%> de C++11 sólo está disponible con -std=c++11 o -std=gnu+
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<constexpr%> de C++11 sólo está disponible con -std=c++11 o -std=gnu++11"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, fuzzy, gcc-internal-format
 #| msgid "%<@required%> is not available in Objective-C 1.0"
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
@@ -64101,7 +64143,7 @@ msgstr "las expresiones-de-declaraciones no se permiten fuera de funciones ni en
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "las expresiones lambda sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "se esperaba una expresión primaria"
@@ -64160,7 +64202,7 @@ msgstr "C++0x automático sólo está disponible con -std=c++11 o -std=gnu++11"
 msgid "template-id not allowed for destructor in C++20"
 msgstr "no se permiten calificadores en la declaración de %<operator %T%>"
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -64180,7 +64222,7 @@ msgstr "se usa el nombre-de-definición-de-tipo %qD como un declarador de destru
 msgid "expected unqualified-id"
 msgstr "se esperaba un id sin calificar"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD no es una plantilla"
@@ -64235,7 +64277,7 @@ msgstr "no se pueden definir tipos en una expresión %<typeid%>"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "número erróneo de argumentos para %<__builtin_shuffle%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments to %<__builtin_complex%>"
 msgid "wrong number of arguments to %<__builtin_launder%>"
@@ -64274,7 +64316,7 @@ msgstr "no se pueden definir tipos en condiciones"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "uso no válido de %qD"
@@ -64299,7 +64341,7 @@ msgstr "ISO C++ no permite %<alignof%> con algo que no es tipo"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "no se pueden definir tipos en expresiones %<noexcept%>"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in a new-expression"
 msgid "types may not be defined in %qs expressions"
@@ -64466,8 +64508,8 @@ msgstr "inicializador no-vacío para una matriz de elementos vacíos"
 msgid "capture of non-variable %qE"
 msgstr "captura de %qD que no es variable "
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D declared here"
 msgid "%q#D declared here"
@@ -64511,7 +64553,7 @@ msgstr "se especificó un argumento por defecto para el parámetro lambda"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "las uniones sin restricción sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -64652,7 +64694,7 @@ msgstr "%<#pragma omp taskyield%> sólo se puede usar en declaraciones compuesta
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "los nombres de espacio incluidos en línea sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "se esperaba una declaración de selección"
@@ -64718,7 +64760,7 @@ msgstr "la expresión %<for%> basada en rango de tipo %qT es de tipo incompleto"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr "tipos begin/end inconsistentes para la declaración %<for%> basada en rango: %qT y %qT"
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "se esperaba una declaración de iteración"
@@ -64747,7 +64789,7 @@ msgstr "%<constexpr%> de C++11 sólo está disponible con -std=c++11 o -std=gnu+
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ prohíbe los gotos calculados"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "se esperaba una declaración de salto"
@@ -65058,12 +65100,12 @@ msgstr "solamente los constructores toman inicializadores miembro"
 msgid "cannot expand initializer for member %qD"
 msgstr "no se puede expandir el inicializador para el miembro %<%D%>"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "inicializador mem para %qD después de una delegación de constructor"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr "delegación de constructor después de un inicializador mem para %qD"
@@ -65759,7 +65801,7 @@ msgstr "en el argumento de plantilla para el tipo %qT "
 msgid "%qT not permitted in template argument"
 msgstr "en el argumento de plantilla para el tipo %qT "
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, gcc-internal-format
 msgid "invalid use of %qT"
@@ -65949,12 +65991,12 @@ msgstr "definición previa de %q+#T"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr "se esperaba una llave de clase"
@@ -66181,39 +66223,39 @@ msgstr "C++0x automático sólo está disponible con -std=c++11 o -std=gnu++11"
 msgid "expression must be enclosed in parentheses"
 msgstr "la expresión debe ser integral"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 #| msgid "asm template is not a string constant"
 msgid "result type is not a plain type-constraint"
 msgstr "la plantilla asm no es una cadena constante"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not an integer constant"
 msgid "return-type-requirement is not a type-constraint"
 msgstr "la alineación solicitada no es una constante entera"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr "el miembro especializado %<%T::%E%> requiere sintaxis %<template<>%>"
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "declaración no válida de %<%T::%E%>"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "faltan listas-de-parámetros-de-plantilla"
@@ -66222,462 +66264,462 @@ msgstr "faltan listas-de-parámetros-de-plantilla"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "demasiadas listas-de-parámetros-de-plantilla"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "template-id not allowed for constructor in C++20"
 msgstr "no se permiten calificadores en la declaración de %<operator %T%>"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "ya no se admiten los valores de devolución nombrados"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, fuzzy, gcc-internal-format
 #| msgid "literal operator template %qD has invalid parameter list.  Expected non-type template argument pack <char...>"
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr "la plantilla de operador literal %qD tiene una lista de parámetros no válida.  Se esperaba un paquete de argumentos de plantilla que no sean de tipo <char...>"
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, fuzzy, gcc-internal-format
 #| msgid "literal operator template %qD has invalid parameter list.  Expected non-type template argument pack <char...>"
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr "la plantilla de operador literal %qD tiene una lista de parámetros no válida.  Se esperaba un paquete de argumentos de plantilla que no sean de tipo <char...>"
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, fuzzy, gcc-internal-format
 #| msgid "no matching template for %qD found"
 msgid "no matching concept for template-introduction"
 msgstr "no se encontró una plantilla coincidente para %qD"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "declaración no válida de plantilla miembro en la clase local"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "plantilla con enlace C"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "especialización explícita no válida"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "declaración plantilla de %<typedef%>"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, fuzzy, gcc-internal-format
 #| msgid "declaration does not declare anything"
 msgid "a class template declaration must not declare anything else"
 msgstr "la declaración no declara nada"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "la especialización de plantilla explícita no puede tener una clase de almacenamiento"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%<>>%> debe ser %<> >%> dentro de una lista de argumentos de plantilla anidada"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "%<>>%> sobrante, use %<>%> para terminar una lista de argumentos de plantilla"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 #| msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "%<>>%> sobrante, use %<>%> para terminar una lista de argumentos de plantilla"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "uso no válido de %qD en la especificación de enlace"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate virt-specifier"
 msgid "duplicate %qD specifier"
 msgstr "especificador-virt duplicado"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 #| msgid "section type conflict with %qD"
 msgid "%qD specifier conflicts with %qs"
 msgstr "conflicto de tipo de sección con %qD"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> antes de %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<typedef%>"
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "se usó %qE con %<typedef%>"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ 1998 no admite %<long long%>"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, fuzzy, gcc-internal-format
 #| msgid "both %<_Sat%> and %<char%> in declaration specifiers"
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "se usaron al mismo tiempo %<_Sat%> y %<char%> en los especificadores de declaración"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate %qE"
 msgid "duplicate %qD"
 msgstr "%qE duplicado"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "%qs duplicado"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "se esperaba %<new%>"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "se esperaba %<delete%>"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "se esperaba %<return%>"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "se esperaba %<extern%>"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "se esperaba %<static_assert%>"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "se esperaba %<decltype%>"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "se esperaba %<operator%>"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "se esperaba %<class%>"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "se esperaba %<template%>"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "se esperaba %<namespace%>"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "se esperaba %<using%>"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "se esperaba %<asm%>"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "se esperaba %<try%>"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "se esperaba %<catch%>"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "se esperaba %<throw%>"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<data%>"
 msgid "expected %<auto%>"
 msgstr "se esperaba %<data%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "se esperaba %<__label__%>"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "se esperaba %<@try%>"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "se esperaba %<@synchronized%>"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "se esperaba %<@throw%>"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "se esperaba %<__transaction_atomic%>"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "se esperaba %<__transaction_relaxed%>"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<@end%>"
 msgid "expected %<co_yield%>"
 msgstr "se esperaba %<@end%>"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "se esperaba %<::%>"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "se esperaba %<...%>"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "se esperaba %<*%>"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "se esperaba %<~%>"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "se esperaba %<:%> o %<::%>"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "se esperaba %<class%>, %<typename%> o %<template%>"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "se usó la etiqueta %qs al nombrar a %q#T"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "%q#T se declaró previamente aquí"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "no se puede declarar la referencia a %q#T"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, fuzzy, gcc-internal-format
 #| msgid "%qT declared with greater visibility than its base %qT"
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qT se declaró con mayor visibilidad que su base %qT"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 #| msgid "expected class-key"
 msgid "replace the class-key with %qs"
 msgstr "se esperaba una llave de clase"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 #| msgid "label %qD defined here"
 msgid "%qT defined as %qs here"
 msgstr "la etiqueta %qD se define aquí"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 #| msgid "  first declared as %q#D here"
 msgid "%qT first declared as %qs here"
 msgstr "  declarado inicialmente como %q#D aquí"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD se redeclaró con acceso diferente"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, fuzzy, gcc-internal-format
 #| msgid "%<template%> (as a disambiguator) is only allowed within templates"
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "%<template%> (como desambiguador) sólo se permite dentro de plantillas"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "el fichero termina en el argumento por defecto"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "construct Objective-C++ %<@%D%> mal ubicado"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, fuzzy, gcc-internal-format
 #| msgid "objective-c++ message argument(s) are expected"
 msgid "objective-c++ message receiver expected"
 msgstr "se esperaba(n) argumento(s) de mensaje de objective-c++"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr "se esperaba(n) argumento(s) de mensaje de objective-c++"
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "%<@encode%> debe especificar un tipo como un argumento"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "nombre de selector Objective-C++ no válido"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr "se esperaba una declaración de método de objective-c++"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "los atributos de método se deben especificar al final"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr "%qs sobrante después de los métodos Objective-C++"
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "tipo no válido para la variable de de instancia"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "se esperaba un identificador después de %<@protocol%>"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr "los atributos no se pueden especificar antes de la palabra clave de Objective-C++ %<@%D%>"
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "se descartan los atributos de prefijo antes de %<@%D%>"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, gcc-internal-format
 msgid "invalid type for property"
 msgstr "tipo no válido para la propiedad"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, fuzzy, gcc-internal-format
 #| msgid "unknown property attribute"
 msgid "unknown property attribute %qE"
 msgstr "atributo de propiedad desconocido"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected integer expression list"
 msgstr "se esperaba una expresión entera"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<wait%> expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "se esperaba %<class%>, %<typename%> o %<template%>"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid reduction-identifier"
 msgstr "inicializador no válido"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in parameter types"
 msgid "types may not be defined in iterator type"
@@ -66687,13 +66729,13 @@ msgstr "no se pueden definir tipos en tipos de parámetro"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma vtable no longer supported"
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "#pragma vtable ya no se admite"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr "no se permite la inicialización entre paréntesis para el bucle %<for%> en OpenMP"
@@ -66704,146 +66746,146 @@ msgstr "no se permite la inicialización entre paréntesis para el bucle %<for%>
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr "la cláusula %<ordered%> con parámetro no se puede especificar en la construcción %qs"
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "la variable de iteración %qD no debe ser reduction"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%>"
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp end declare target%> sin su correspondiente %<#pragma omp declare target%>"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer clause"
 msgstr "inicializador no válido"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 #| msgid "expected id-expression"
 msgid "expected id-expression (arguments)"
 msgstr "se esperaba una expresión id"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "types may not be defined in declare reduction type list"
 msgstr "no se pueden definir tipos nuevos en un tipo de devolución"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, fuzzy, gcc-internal-format
 #| msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr "tipo calificado const, volatile o restrict en %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member template function"
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD no es una función plantilla miembro"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr "%<__transaction_relaxed%> sin activar el soporte de memoria transaccional"
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr "%<__transaction_atomic%> sin activar el soporte de memoria transaccional"
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr "%<__transaction_cancel%> más externo no está dentro del %<__transaction_atomic%> más externo"
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr "  o una función %<transaction_may_cancel_outer%>"
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 #| msgid "malformed #pragma GCC coprocessor"
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "#pragma GCC coprocessor malformado"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp barrier%> sólo se puede usar en declaraciones compuestas"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp taskyield%> may only be used in compound statements"
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp taskyield%> sólo se puede usar en declaraciones compuestas"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC optimize is not allowed inside functions"
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "no se permite #pragma GCC optimize dentro de funciones"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "multi-source compilation not implemented for C++"
 msgstr "no se han implementado las optimizaciones intermódulos para C++"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 #| msgid "standard conversions are not allowed in this context"
 msgid "placeholder type not allowed in this context"
 msgstr "no se permiten las conversiones estándar en este contexto"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, fuzzy, gcc-internal-format
 #| msgid "templates may not be %<virtual%>"
 msgid "implicit templates may not be %<virtual%>"
 msgstr "las plantillas no pueden ser %<virtual%>"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -66873,7 +66915,7 @@ msgstr "las plantillas de clase contenedoras no son explícitamente especializad
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "la especialización de %qD debe aparecer en un ámbito de espacio de nombres"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "especialización de %qD en un espacio de nombres diferente"
@@ -66889,28 +66931,28 @@ msgstr " de la definición de %q+#D"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "instanciación explícita de %qD en el espacio de nombres %qD (el cual no incluye el espacio de nombres %qD)"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "el nombre de la clase oscurece la plantilla de parámetro de plantilla %qD"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization of alias template %qD"
 msgid "specialization of alias template %qD"
 msgstr "especialización parcial de la plantilla alias %qD"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "instanciación explícita de %qT que no es plantilla"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "especialización de %qT después de la instanciación"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q+#D"
 msgid "from definition of %q#D"
@@ -66918,156 +66960,156 @@ msgstr " de la definición de %q+#D"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "especialización de %qT después de la instanciación %qT"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "no se permite la especialización de plantilla de %qD por ISO C++"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "especialización de %qD después de la instanciación"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 #| msgid "%s %+#D"
 msgid "%s %#qD"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD no es una plantilla de función"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is not a variable template"
 msgstr "%qD no es una variable"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "el id-de-plantilla %qD para %q+D no coincide con ninguna declaración de plantilla"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr "se encontró %d %<template<>%>, se necesita %d para especializar una plantilla de función miembro"
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "especialización de plantilla %qD ambigua para %q+D"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, fuzzy, gcc-internal-format
 #| msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d)"
 msgid "too many template headers for %qD (should be %d)"
 msgstr "número erróneo de argumentos de plantilla (%d, debe ser %d)"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "especialización explícita de %qD después del primer uso"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "instanciación explícita de %qD en el espacio de nombres %qD (el cual no incluye el espacio de nombres %qD)"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "especialización explícita de %qD después del primer uso"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "in template argument for type %qT "
 msgid "missing primary template attributes %s"
 msgstr "en el argumento de plantilla para el tipo %qT "
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "in template argument for type %qT "
 msgid "missing primary template attribute %s"
 msgstr "en el argumento de plantilla para el tipo %qT "
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 #| msgid "template-id %qD in declaration of primary template"
 msgid "template-id %qE in declaration of primary template"
 msgstr "id de plantilla %qD en la declaración de la plantilla primaria"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "no se usan la plantilla de lista de parámetros en la instanciación explícita"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "se proporcionó una definición para la instanciación explícita"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "demasiadas listas de parámetros de plantilla en la declaración de %qD"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "faltan listas de parámetros de plantilla en la declaración de %qD"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "la especialización explícita de %qD se debe preceder con %<template <>%>"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization declared %<concept%>"
 msgstr "instanciación explícita de %qT que no es plantilla"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "no se permite la especialización parcial de la función de plantilla %qD"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "no se permite la especialización parcial de la función de plantilla %qD"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "se especificó un argumento por defecto en la especialización explícita"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD no es una función plantilla"
@@ -67080,175 +67122,175 @@ msgstr "%qD no es una función plantilla"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "especialización de la función miembro especial declarada implícitamente"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "la función no miembro %qD se declaró en %qT"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration %qD in local class without prior declaration"
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "una declaración friend %qD en una clase local sin declaración previa"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 #| msgid "shadowed declaration is here"
 msgid "friend declaration here"
 msgstr "aquí está la declaración oscurecida"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization of function concept %qD"
 msgstr "instanciación explícita de %qT que no es plantilla"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ACOS at %L must be between -1 and 1"
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "El argumento de ACOS en %L debe estar entre -1 y 1"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, fuzzy, gcc-internal-format
 #| msgid "base initializer expansion %<%T%> contains no parameter packs"
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr "la expansión del inicializador base %<%T%> no contiene paquetes de parámetro"
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, fuzzy, gcc-internal-format
 #| msgid "expansion pattern %<%T%> contains no argument packs"
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "el patrón de expansión %<%T%> no contiene paquetes de argumento"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, fuzzy, gcc-internal-format
 #| msgid "expansion pattern %<%E%> contains no argument packs"
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "el patrón de expansión %<%E%> no contiene paquetes de argumento"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr "no se expanden los paquetes de parámetro con %<...%>"
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "          %s"
 msgid "        %s"
 msgstr "          %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "la declaración de %q+D oscurece un parámetro"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "la declaración de %q+D oscurece un parámetro"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "template parameter %qD declared here"
 msgstr "el tipo de parámetro de plantilla %qT se declaró %<friend%>"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization of alias template %qD"
 msgid "specialization of variable concept %q#D"
 msgstr "especialización parcial de la plantilla alias %qD"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "template parameters not deducible in partial specialization:"
 msgstr "no se usan los parámetros de plantilla en la especialización parcial:"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "la especialización parcial %qT no especializa ningún argumento de plantilla"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr "la especialización parcial %qT no especializa ningún argumento de plantilla"
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, fuzzy, gcc-internal-format
 #| msgid "previously declared here"
 msgid "primary template here"
 msgstr "se declaró previamente aquí"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qE"
 msgid "too many arguments for partial specialization %qT"
 msgstr "demasiados argumentos para la función %qE"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %qD is not more specialized than"
 msgstr "la especialización parcial %qT no especializa ningún argumento de plantilla"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 #| msgid "previously declared here"
 msgid "primary template %qD"
 msgstr "se declaró previamente aquí"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr "el argumento de paquete de parámetro %qE debe estar al final de la lista de argumentos de plantilla"
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr "el argumento de paquete de parámetro %qT debe estar al final de la lista de argumentos de plantilla"
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "el tipo %qT del argumento de plantilla %qE depende de un parámetro de plantilla"
 msgstr[1] "el tipo %qT del argumento de plantilla %qE depende de parámetros de plantilla"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "instanciación de plantilla clase ambigua para %q#T"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization of %qT after instantiation of %qT"
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "especialización parcial de %qT después de la instanciación %qT"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "no hay un argumento por defecto para %qD"
@@ -67257,51 +67299,51 @@ msgstr "no hay un argumento por defecto para %qD"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, fuzzy, gcc-internal-format
 #| msgid "parameter pack %qE must be at the end of the template parameter list"
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "el parámetro de paquete %qE debe estar al final de la lista de parámetros de plantilla"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "no se pueden usar los argumentos de plantilla por defecto en la re-declaración friend de la plantilla de función"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 #| msgid "default template arguments may not be used in function template friend declarations"
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "no se pueden usar los argumentos de plantilla por defecto en las declaraciones friend de la plantilla de función"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11"
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "los argumentos de plantilla por defecto no se pueden usar en las plantillas de función sin -std=c++11 o -std=gnu++11"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr "no se pueden usar los argumentos de plantilla por defecto en las especializaciones parciales"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "argumento por defecto para el parámetro de plantilla para la clase incluyente %qD"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 #| msgid "namespace %qT undeclared"
 msgid "template %qD declared"
 msgstr "espacio de nombres %qT sin declarar"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "clase de plantilla sin nombre"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, fuzzy, gcc-internal-format
 #| msgid "non-member function %qD cannot have cv-qualifier"
 msgid "member template %qD may not have virt-specifiers"
@@ -67312,71 +67354,71 @@ msgstr "la función que no es miembro %qD no puede tener calificador-cv"
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "declaración de la plantilla de %qD no válida"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "definición de plantilla de %q#D que no es plantilla"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "se esperaban %d niveles de parámetros de plantilla para %q#D, se obtuvieron %d"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "se obtuvieron %d parámetros de plantilla para %q#D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "se obtuvieron %d parámetros de plantilla para %q#T"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  pero se requieren %d"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "los argumentos de plantilla para %qD no coinciden con la plantilla original %qD"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, fuzzy, gcc-internal-format
 #| msgid "use template<> for an explicit specialization"
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "utilice template<> para una especialización explícita"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %qD differs in %<constexpr%>"
 msgid "redeclaration of %qD with different constraints"
 msgstr "la redeclaración de %qD difiere en %<constexpr%>"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT no es un tipo plantilla"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "no se especificaron los especificadores de plantilla en la declaración de %qD"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] "se redeclaró con %d parámetro de plantilla"
 msgstr[1] "se redeclaró con %d parámetros de plantilla"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D used %d template parameter"
 #| msgid_plural "previous declaration %q+D used %d template parameters"
@@ -67385,474 +67427,474 @@ msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "la declaración previa de %q+#D usó %d parámetro de plantilla"
 msgstr[1] "la declaración previa de %q+#D usó %d parámetros de plantilla"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "parámetro de plantilla %q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "redeclarado aquí como %q#D"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "redeclared here"
 msgstr "se declara aquí"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %qD differs in %<constexpr%>"
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "la redeclaración de %qD difiere en %<constexpr%>"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 #| msgid "original definition appeared here"
 msgid "original declaration appeared here"
 msgstr "la definición original apareció aquí"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %qD differs in %<constexpr%>"
 msgid "redeclaration of %q#D with different constraints"
 msgstr "la redeclaración de %qD difiere en %<constexpr%>"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "debe ser la dirección de una función con enlace externo"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, fuzzy, gcc-internal-format
 #| msgid "it must be the address of a function with external linkage"
 msgid "it must be the name of a function with external linkage"
 msgstr "debe ser la dirección de una función con enlace externo"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque %qD no tiene enlace"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque %qD no tiene enlace externo"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "debe ser un puntero-a-miembro de la forma %<&X::Y%>"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "because it is a member of %qT"
 msgstr "%qD no es un miembro de %qT"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 #| msgid "  couldn't deduce template parameter %qD"
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "  no se puede deducir el parámetro de plantilla %qD"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr "  los tipos %qT y %qT tiene calificadores-cv incompatibles"
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr "  no coinciden los tipos %qT y %qT"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "  el parámetro de plantilla %qD no es un paquete de parámetro, pero el argumento %qD sí"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "  el argumento de plantilla %qE no coincide con la constante puntero-a-miembro %qE"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "  %qE no es equivalente a %qE"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr "  deducción de paquete de parámetros inconsistente con %qT y %qT"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr "  se deducen tipos en conflicto para el parámetro %qT (%qT y %qT)"
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr "  se deducen valores en conflicto para el parámetro %qE que no es tipo (%qE y %qE)"
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "  el tipo matriz de tamaño variable %qT no es un argumento de plantilla válido"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr "  el tipo de función miembro %qT no es un argumento de plantilla válido"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "  no se puede convertir %qE (tipo %qT) al tipo %qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "  %qT es una clase base ambigua de %qT"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "  %qT no es derivado de %qT"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr "  los parámetros de plantilla de un argumento de plantilla plantilla son inconsistentes con otros argumentos de plantilla deducidos"
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 #| msgid "  can't deduce a template for %qT from non-template type %qT"
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "  no se puede deducir una plantilla para %qT del tipo %qT que no es plantilla"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "  template argument %qE does not match %qD"
 msgid "  template argument %qE does not match %qE"
 msgstr "  el argumento de plantilla %qE no coincide con %qD"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qE is not a variable"
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qE no es una variable"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qD no tiene enlace externo"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qD no tiene enlace"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 #| msgid "  variable-sized array type %qT is not a valid template argument"
 msgid "the address of %qD is not a valid template argument"
 msgstr "  el tipo matriz de tamaño variable %qT no es un argumento de plantilla válido"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, fuzzy, gcc-internal-format
 #| msgid "  variable-sized array type %qT is not a valid template argument"
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "  el tipo matriz de tamaño variable %qT no es un argumento de plantilla válido"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qD no tiene enlace externo"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qD no es un argumento válido de plantilla porque %qD es una variable, no la dirección de una variable"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qD no es un argumento válido de plantilla porque %qD es una variable, no la dirección de una variable"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque las literales de cadena nunca se pueden usar en este contexto"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 #| msgid "in template argument for type %qT "
 msgid "in template argument for type %qT"
 msgstr "en el argumento de plantilla para el tipo %qT "
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 #| msgid "in template argument for type %qT "
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "en el argumento de plantilla para el tipo %qT "
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT debido a conflictos en la calificación cv"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque no es un l-valor"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%q#D no es un argumento válido de plantilla para el tipo %qT porque una referencia variable no tiene una dirección constante"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es un puntero"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "intente utilizar %qE en su lugar"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es de tipo %qT"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "se descartan los atributos en el argumento de plantilla %qT"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes on template argument %qT"
 msgid "ignoring attributes in template argument %qE"
 msgstr "se descartan los atributos en el argumento de plantilla %qT"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "se usó el nombre-de-clase-inyectada %qD como un argumento de plantilla plantilla"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "uso no válido del destructor %qE como un tipo"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "para hacer referencia a un tipo miembro de un parámetro de plantilla, use %<typename %E%>"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "no coincide el tipo/valor en el argumento %d en la lista de parámetros de plantilla para %qD"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  se esperaba una constante de tipo %qT, se obtuvo %qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for template parameter for class enclosing %qD"
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "argumento por defecto para el parámetro de plantilla para la clase incluyente %qD"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  se esperaba una plantilla de clase, se obtuvo %qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  se esperaba un tipo, se obtuvo %qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  se esperaba un tipo, se obtuvo %qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  se esperaba una plantilla de clase, se obtuvo %qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  se esperaba una plantilla de tipo %qD, se obtuvo %qT"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 #| msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "no coincide el tipo/valor en el argumento %d en la lista de parámetros de plantilla para %qD"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a type, got %qE"
 msgid "  expected %qD but got %qD"
 msgstr "  se esperaba un tipo, se obtuvo %qE"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 #| msgid "could not convert template argument %qE to %qT"
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "no se puede convertir el argumento de plantilla %qE a %qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "el argumento de plantilla %d es no válido"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "número erróneo de argumentos de plantilla (%d, debe ser %d)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d)"
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "número erróneo de argumentos de plantilla (%d, debe ser %d)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, fuzzy, gcc-internal-format
 #| msgid "provided for %q+D"
 msgid "provided for %qD"
 msgstr "provisto por %q+D"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for template parameter for class enclosing %qD"
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr "argumento por defecto para el parámetro de plantilla para la clase incluyente %qD"
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, fuzzy, gcc-internal-format
 #| msgid "default argument given for parameter %d of %q#D"
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "argumento por defecto dado para el parámetro %d de %q#D"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%q#D no es una plantilla de función"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "se usa el tipo %qT que no es plantilla como una plantilla"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "para la declaración de plantilla %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 #| msgid "internal consistency failure"
 msgid "template constraint failure for %qD"
 msgstr "falla interna de consistencia"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 #| msgid "use of %qs in template"
 msgid "use of invalid variable template %qE"
 msgstr "uso de %qs en la plantilla"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum) substituting %qS"
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d (use -ftemplate-depth= para incrementar el máximo) al sustituir %qS"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 #| msgid "collapse argument needs positive constant integer expression"
 msgid "score argument must be constant integer expression"
 msgstr "el argumento de collapse necesita una expresión entera constante positiva"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must be nonnegative"
 msgid "score argument must be non-negative"
 msgstr "'%s' en %L debe ser no negativo"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "property must be constant integer expression or string literal"
 msgstr "%Hel argumento de collapse necesita ser una expresión entera constante positiva"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member in union"
 msgid "flexible array member %qD in union"
 msgstr "miembro de matriz flexible en union"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a potential constant expression"
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE no es una expresión constante potencial"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched argument pack lengths while expanding %<%T%>"
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<%T%>"
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched argument pack lengths while expanding %<%E%>"
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<%E%>"
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of default argument for %q#D"
 msgid "  when instantiating default argument for call to %qD"
 msgstr "redefinición del argumento por defecto para %q#D"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "se crea un puntero a función miembro del tipo %qT que no es clase"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "mismatched argument pack lengths while expanding %<%T%>"
 msgid "mismatched argument pack lengths (%d vs %d)"
@@ -67871,316 +67913,316 @@ msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "la variable %qD tiene tipo de función"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "tipo de parámetro %qT no válido"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "en la declaración %q+D"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "la función devuelve una matriz"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "la función devuelve una función"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "se forma la referencia a void"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "se forma un puntero para referenciar al tipo %qT"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "se forma una referencia para referenciar al tipo %qT"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to qualified function type %qT"
 msgid "forming pointer to qualified function type %qT"
 msgstr "no se puede declarar el puntero para el tipo de función calificado %qT"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to qualified function type %qT"
 msgid "forming reference to qualified function type %qT"
 msgstr "no se puede declarar la referencia para el tipo de función calificado %qT"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "se crea un puntero al miembro del tipo %qT que no es clase"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "se crea un puntero al miembro de referencia de tipo %qT"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "se crea un puntero al miembro de tipo void"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "se crea la matriz de %qT"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT no es de tipo clase, struct o union"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT resuelve a %qT, el cual no es un tipo enumerado"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 #| msgid "%qT resolves to %qT, which is is not a class type"
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT resuelve a %qT, el cual no es un tipo de clase"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "uso de %qs en la plantilla"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "el tipo calificador %qT no coincide con el nombre del destructor ~%qT"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "el nombre dependiente %qE se decodifica como un no tipo, pero la instanciación genera un tipo"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "escriba %<typename %E%> si quiere un tipo"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not a constant expression"
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "el elemento inicializador no es una expresión constante"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "uso no válido de la expresión de expansión de paquete"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr "use %<...%> para expandir el paquete de argumentos"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, fuzzy, gcc-internal-format
 #| msgid "non-empty initializer for array of empty elements"
 msgid "empty initializer in lambda init-capture"
 msgstr "inicializador no-vacío para una matriz de elementos vacíos"
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr "%qD no se declaró en este ámbito, y no se encontraron declaraciones en la búsqueda dependiente de argumentos en el punto de la instanciación"
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr "no se encontraron declaraciones en la base dependiente %qT pur la búsqueda no calificada"
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr "use %<this->%D%> en su lugar"
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "use %<%T::%D%> en su lugar"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here, later in the translation unit"
 msgid "%qD declared here, later in the translation unit"
 msgstr "%q+D se declaró aquí, después en la unidad de translación"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments to %<__builtin_choose_expr%>"
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "número erróneo de argumentos para %<__builtin_choose_expr%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qE attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "se especificó el número equivocado de argumentos para el atributo %qE"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT no es una clase o un espacio de nombres"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD no es una clase o un espacio de nombres"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "se usa el campo no válido %qD"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is/uses anonymous type"
 msgid "%qT is/uses unnamed type"
 msgstr "%qT es/usa un tipo anónimo"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "el argumento de plantilla para %qD usa el tipo local %qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT es un tipo modificado variablemente"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "la expresión integral %qE no es una constante"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  se trata de instanciar %qD"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "ambiguous template instantiation for %q#T"
 msgstr "instanciación de plantilla clase ambigua para %q#T"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "ambiguous template instantiation for %q#D"
 msgstr "instanciación de plantilla clase ambigua para %q#T"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 #| msgid "%s %+#D"
 msgid "%s %#qS"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "instanciación explícita de %q#D que no es plantilla"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization of alias template %qD"
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "especialización parcial de la plantilla alias %qD"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit instantiation of function concept %q#D"
 msgstr "instanciación explícita de %qT que no es plantilla"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qD no es un dato miembro static de una plantilla de clase"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "no se encontró una plantilla coincidente para %qD"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "el tipo %qT para la instanciación explícita %qD no coincide con el tipo declarado %qT"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "instanciación explícita de %q#D"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "instanciación explícita duplicada de %q#D"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++ 1998 prohíbe el uso de %<extern%> en instanciaciones explícitas"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "clase de almacenamiento %qD aplicada a la instanciación de una plantilla"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "instanciación explícita de la plantilla %qD que no es clase"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "instanciación explícita del tipo %qT que no es plantilla"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "instanciación explícita de %q#T antes de la definición de la plantilla"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ prohíbe el uso de %qE en las instanciaciones explícitas"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "instanciación explícita duplicada de %q#T"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "exception specification of %qD depends on itself"
@@ -68193,185 +68235,185 @@ msgstr "especialización explícita de %qD después del primer uso"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "instanciación explícita de %qD pero no hay una definición disponible"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth= to increase the maximum)"
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d al instanciar %q+D, posiblemente de la generación de tabla virtual (use -ftemplate-depth= para incrementar el máximo)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, fuzzy, gcc-internal-format
 #| msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a valid type for a template non-type parameter"
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%q#T no es un tipo válido para un parámetro que no es tipo plantilla"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, fuzzy, gcc-internal-format
 #| msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "parámetro que no es tipo plantilla no válido"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T no es un tipo válido para un parámetro que no es tipo plantilla"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, fuzzy, gcc-internal-format
 #| msgid "keyword %<typename%> not allowed outside of templates"
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "no se permite la palabra clave %<typename%> fuera de las plantillas"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "a concept cannot be constrained"
 msgstr "el constructor no puede ser una función miembro de tipo static"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a namespace"
 msgid "concept %qE not in namespace scope"
 msgstr "%qT no es un espacio de nombres"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 #| msgid "definition of %q#T inside template parameter list"
 msgid "concept %qE has multiple template parameter lists"
 msgstr "la definición de %q#T dentro de la lista de parámetros de plantilla"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, fuzzy, gcc-internal-format
 #| msgid "deducing from brace-enclosed initializer list requires #include <initializer_list>"
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr "la deducción de una lista inicializadora encerrada entre llaves requiere #include <initializer_list>"
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 #| msgid "non-template %qD used as template"
 msgid "non-deducible template %qT used without template arguments"
 msgstr "se usó %qD que no es plantilla como plantilla"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, fuzzy, gcc-internal-format
 #| msgid "variadic templates only available with -std=c++11 or -std=gnu++11"
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 #| msgid "try using %qE instead"
 msgid "use %qD directly instead"
 msgstr "intente utilizar %qE en su lugar"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, fuzzy, gcc-internal-format
 #| msgid "in template argument for type %qT "
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "en el argumento de plantilla para el tipo %qT "
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 #| msgid "  template argument deduction/substitution failed:"
 msgid "class template argument deduction failed:"
 msgstr "  falló la deducción/sustitución del argumento de plantilla:"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 #| msgid "function not considered for inlining"
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "la función no se consideró para la inclusión en línea"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, fuzzy, gcc-internal-format
 #| msgid "  template argument deduction/substitution failed:"
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr "  falló la deducción/sustitución del argumento de plantilla:"
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 #| msgid "in a call to function %qD declared here"
 msgid "explicit deduction guide declared here"
 msgstr "en una llamada a la función %qD declarada aquí"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, fuzzy, gcc-internal-format
 #| msgid "  template argument deduction/substitution failed:"
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "  falló la deducción/sustitución del argumento de plantilla:"
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 #| msgid "unable to deduce %qT from %qE"
 msgid "unable to deduce lambda return type from %qE"
 msgstr "no se puede deducir %qT de %qE"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "no se puede deducir %qT de %qE"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "la insn no satisface sus restricciones:"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "la insn no satisface sus restricciones:"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "la insn no satisface sus restricciones:"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of '%E' as a non-type template-argument"
 msgid "invalid use of %qT in template argument"
@@ -68604,700 +68646,700 @@ msgstr "no se puede determinar el tipo del operando asm %qE"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "las declaraciones __label__ sólo se permiten en ámbitos de función"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in static member function"
 msgstr "uso no válido del miembro %q+D en la función miembro static"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "uso no válido del miembro %q+D en la función miembro static"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "uso no válido del miembro %q+D en la función miembro static"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "in template argument for type %qT "
 msgid "%qE missing template arguments"
 msgstr "en el argumento de plantilla para el tipo %qT "
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "cannot call a concept as a function"
 msgstr "no se puede usar %qE como una función"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "no se permiten argumentos para el destructor"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "%<this%> no está disponible para funciones miembro static"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, fuzzy, gcc-internal-format
 #| msgid "used %d template parameter(s) instead of %d"
 msgid "use explicit object parameter %qs instead"
 msgstr "se usaron %d parámetro(s) de plantilla en lugar de %d"
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, fuzzy, gcc-internal-format
 #| msgid "invalid template non-type parameter"
 msgid "name the explicit object parameter"
 msgstr "parámetro que no es tipo plantilla no válido"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "%<this%> no está disponible para funciones miembro static"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> before it is valid"
 msgstr "uso no válido de %<this%> en el nivel principal"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> after it is valid"
 msgstr "uso no válido de %<this%> en el nivel principal"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "uso no válido de %<this%> en la función que no es miembro"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "uso no válido de %<this%> en el nivel principal"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "ámbito calificador no válido en el nombre del seudo-destructor"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "el tipo calificado %qT no coincide con el nombre del destructor ~%qT"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE no es de tipo %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "la literal compuesta del tipo %qT que no es objeto"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "el constructor no puede ser una función miembro de tipo static"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, fuzzy, gcc-internal-format
 #| msgid "C++0x auto only available with -std=c++11 or -std=gnu++11"
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++0x automático sólo está disponible con -std=c++11 o -std=gnu++11"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "los parámetros de tipo plantilla debe usar la palabra clave %<class%> o %<typename%>"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "uso no válido del tipo %qT como un valor por defecto para una plantilla de parámetro de plantilla"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "argumento por defecto no válido para una plantilla de parámetro de plantilla"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "la definición de %q#T dentro de la lista de parámetros de plantilla"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "definición no válida del tipo calificado %qT"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "especificación de clase base no válida"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, fuzzy, gcc-internal-format
 #| msgid "protected member %q+#D in anonymous union"
 msgid "cannot capture member %qD of anonymous union"
 msgstr "miembro protegido %q+#D en union anónima"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "%qD no se capturó"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<auto%> variable from containing function"
 msgid "use of local variable with automatic storage from containing function"
 msgstr "uso de la variable %<auto%> desde la función contenedora"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "uso de parámetro desde la función contenedora"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 #| msgid "use of parameter %qD outside function body"
 msgid "use of parameter outside function body"
 msgstr "se usó el parámetro %qD fuera del cuerpo de la función"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 #| msgid "in template argument for type %qT "
 msgid "missing template arguments"
 msgstr "en el argumento de plantilla para el tipo %qT "
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "no se permite el parámetro de plantilla %qD de tipo %qT en una expresión integral constante porque no es de tipo integral o de enumeración"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "uso de la plantilla de clase %qT como expresión"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "la petición por el miembro %qD es ambigua en la red de herencia múltiple"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD no puede aparecer en una expresion constante"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "el tipo de %qE es desconocido"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qT no es un tipo de enumeración"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not an integer constant"
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "la alineación solicitada no es una constante entera"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 #| msgid "Reference statement index out of range"
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "Índice de sentencia de referencia fuera de rango"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 #| msgid "Parameter pack __bases only valid in template declaration"
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "Los paquetes de parámetros __bases sólo son válidos en la declaración de plantilla"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "no se puede aplicar %<offsetof%> al destructor %<~%T%>"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "no se puede aplicar %<offsetof%> a la función miembro %qD"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to member function %qD"
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "no se puede aplicar %<offsetof%> a la función miembro %qD"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to member function %qD"
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "no se puede aplicar %<offsetof%> a la función miembro %qD"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, fuzzy, gcc-internal-format
 #| msgid "cannot receive objects of non-trivially-copyable type %q#T through %<...%>; "
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr "no se puede recibir objetos de tipo no-copiable-trivialmente q%#T a través de %<...%>"
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 #| msgid "constructor priorities are not supported"
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "no se admiten las prioridades de constructor"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 #| msgid "reference to %qD is ambiguous"
 msgid "user defined reduction lookup is ambiguous"
 msgstr "la referencia a %qD es ambigua"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr ""
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has invalid type for %<reduction%>"
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE tiene tipo no válido para %<reduction%>"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "linear step expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD no es una variable en la cláusula %qs"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "%qD no es una variable en la cláusula %<firstprivate%>"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qD no es una variable en la cláusula %<lastprivate%>"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<gang%> static expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<gang%> static value must be positive"
 msgstr "el valor de %<num_threads%> debe ser positivo"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<gang%> num expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<vector%> length expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<worker%> num expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<gang%> num value must be positive"
 msgstr "el valor de %<num_threads%> debe ser positivo"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<vector%> length value must be positive"
 msgstr "el valor de %<num_threads%> debe ser positivo"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<worker%> num value must be positive"
 msgstr "el valor de %<num_threads%> debe ser positivo"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "la expresión schedule chunk size debe ser integral"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%qs length expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "%Hel argumento de collapse necesita ser una expresión entera constante positiva"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<async%> expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<thread_limit%> expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, fuzzy, gcc-internal-format
 #| msgid "slice end must be integer"
 msgid "%<device%> id must be integral"
 msgstr "el final de la rebanada debe ser entero"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, fuzzy, gcc-internal-format
 #| msgid "schedule chunk size expression must be integral"
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "la expresión schedule chunk size debe ser integral"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD no es una variable en la cláusula %qs"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qD aparece más de una vez en las cláusulas de datos"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, fuzzy, gcc-internal-format
 #| msgid "schedule chunk size expression must be integral"
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "la expresión schedule chunk size debe ser integral"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD no es una variable en la cláusula %qs"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD aparece más de una vez en las cláusulas de datos"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<aligned%> clause"
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%qE no es una variable en la cláusula %<saligned%>"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD no es una variable en la cláusula %qs"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD aparece más de una vez en las cláusulas de datos"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "%qD no es una variable en la cláusula %qs"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "template %qE in clause %qs"
 msgstr "demasiadas cláusulas %qs"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<grainsize%> expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<priority%> expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<hint%> expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "%Hel argumento de collapse necesita ser una expresión entera constante positiva"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<filter%> expression must be integral"
 msgstr "la expresión num_threads debe ser integral"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "el tipo de vector delete no es del tipo puntero ni matriz"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr "el tipo de vector delete no es del tipo puntero ni matriz"
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<tile%> argument needs integral type"
 msgstr "el valor de %<num_threads%> debe ser positivo"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr "%<threadprivate%> %qD no es un fichero, espacio de nombres o variable de ámbito de bloque"
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "la directiva %<threadprivate%> %qE no está en la definición %qT"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr "la diferencia entre %qE y %qD no tiene tipo entero"
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp atomic update%> uses two different variables for memory"
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "%<#pragma omp atomic update%> usa dos variables diferentes para la memoria"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp atomic update%> uses two different variables for memory"
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic update%> usa dos variables diferentes para la memoria"
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "%Hel argumento de collapse necesita ser una expresión entera constante positiva"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant-expression"
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "la expresión %qE no es una expresión constante"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant-expression"
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "la expresión %qE no es una expresión constante"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 #| msgid "static assertion failed: %s"
 msgid "static assertion failed: %.*s"
 msgstr "falló la aserción estática: %s"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "condición que no es constante para una aserción estática"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 #| msgid "argument to decltype must be an expression"
 msgid "argument to %<decltype%> must be an expression"
 msgstr "el argumento para decltype debe ser una expresión"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 #| msgid "decltype cannot resolve address of overloaded function"
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "el tipo de declaración no puede resolver la dirección de la función sobrecargada"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "se llamó a %<__builtin_next_arg%> sin un argumento"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a template"
 msgid "%qD is not a class or alias template"
 msgstr "%qE no es una plantilla"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
 #| msgid "third operand of conditional expression has no effect"
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "el tercer operando de la expresión condicional no tiene efecto"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %qE involves template parameter(s)"
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "el argumento de plantilla %qE involucra a el(los) parámetro(s) de plantilla"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %<__builtin_return_address%>"
 msgid "non-pointer argument to %<__builtin_launder%>"
@@ -69306,1270 +69348,1270 @@ msgstr "argumento no admitido para %<__builtin_return_address%>"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "los calificadores %qV no se pueden aplicar a %qT"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant-expression"
 msgid "statement-expression in a constant expression"
 msgstr "la expresión %qE no es una expresión constante"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid " declared here"
 msgstr "se declara aquí"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, fuzzy, gcc-internal-format
 #| msgid "alignment of %qD is bigger than original declaration"
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr "la alineación de %qD es más grande que la declaración original"
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "base class %qT has cv qualifiers"
 msgid "base class %qT is not public"
 msgstr "la clase base %qT tiene calificadores cv"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not captured"
 msgid "%qD is not public"
 msgstr "%qD no se capturó"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is mutable"
 msgstr "%qD no es una variable"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a type"
 msgid "%qD has a non-structural type"
 msgstr "%qD no es un tipo"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "el atributo %qE sólo se puede aplicar a definiciones de clase"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute argument not a string constant"
 msgid "%qE attribute argument must be a string constant"
 msgstr "el argumento del atributo %qE no es una constante de cadena"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "el atributo %qE sólo se puede aplicar a definiciones de clase"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "el atributo %qE sólo se puede aplicar a definiciones de clase"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be applied to variables with specific sections"
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "el atributo %qE no se puede aplicar a variables con secciones específicas"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 #| msgid "%qD attribute requires a single NTBS argument"
 msgid "%qE attribute takes no arguments"
 msgstr "el atributo %qD requiere un solo argumento NTBS"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute does not apply to functions"
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "el atributo %qE no se aplica a funciones"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is not an integer constant"
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "la init_priority solicitada no es una constante entera"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "solo se puede usar el atributo %qE en definiciones de rango de fichero de objetos de tipo class"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is out of range"
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "la init_priority solicitada está fuera de rango"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is reserved for internal use"
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "la init_priority solicitada está reservada para uso interno"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as member of %qT"
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "declaración de %qD como miembro de %qT"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 #| msgid "%qD attribute requires a single NTBS argument"
 msgid "the %qE attribute requires arguments"
 msgstr "el atributo %qD requiere un solo argumento NTBS"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qE attribute is not a string constant"
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "el argumento del atributo %qE no es una cadena constante"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qE attribute is not a string constant"
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "el argumento del atributo %qE no es una cadena constante"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "%.*s is not a valid universal character"
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%.*s no es un carácter universal válido"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a valid declarator"
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%T::%D%> no es un declarador válido"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on non-class types"
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "se descarta el atributo %qE en tipos que no son clases"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes applied to %qT after definition"
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "se descartan los atributos aplicados al %qT después de la definición"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes applied to %qT after definition"
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "se descartan los atributos aplicados al %qT después de la definición"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes applied to %qT after definition"
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "se descartan los atributos aplicados al %qT después de la definición"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to functions, not %s"
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "el atributo %qE se aplica solamente a funciones, no a %s"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute applied to %s %s at %L"
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "El atributo %s se aplica a %s %s en %L"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute argument not a string constant"
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "el argumento del atributo %qE no es una constante de cadena"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "cero como constante de puntero nulo"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "lang_* check: failed in %s, at %s:%d"
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "revisión lang_*: falló en %s, en %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "la comparación entre diferentes tipos de punteros %qT y %qT carece de una conversión"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "la conversión entre diferentes tipos de punteros %qT y %qT carece de una conversión"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "la expresión condicional entre diferentes tipos de punteros %qT y %qT carece de una conversión"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ prohíbe la comparación entre punteros de tipo %<void *%> y punteros a función"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ prohíbe la conversión entre punteros de tipo %<void *%> y punteros a función"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ prohíbe la expresión condicional entre punteros de tipo %<void *%> y punteros a función"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "la comparación entre diferentes tipos de punteros-a-miembro %qT y %qT carece de una conversión"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "la conversión entre diferentes tipos de punteros-a-miembro %qT y %qT carece de una conversión"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "la expresión condicional entre diferentes tipos de punteros-a-miembro %qT y %qT carece de una conversión"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 #| msgid "canonical types differ for identical types %T and %T"
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "los tipos canónicos difieren para los tipos idénticos %T y %T"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, fuzzy, gcc-internal-format
 #| msgid "same canonical type node for different types %T and %T"
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "el mismo nodo de tipo canónico para los tipos diferentes %T y %T"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "aplicación no válida de %qs a una función miembro"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "aplicación no válida de %<sizeof%> a un campo de bits"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++ prohíbe la aplicación de %<sizeof%> a una expresión de tipo de función"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "aplicación no válida de %<__alignof%> a un campo de bits"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++ prohíbe la aplicación de %<__alignof%> a una expresión de tipo de función"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 #| msgid "size of array has non-integral type %qT"
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "el tamaño de la matriz tiene un tipo %qT que no es integral"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "invalid use of non-static member function of type %qT"
 msgstr "uso no válido de la función miembro no static %qD"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, fuzzy, gcc-internal-format
 #| msgid "deprecated conversion from string constant to %qT"
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "conversión obsoleta de una constante de cadena a %qT"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "conversión obsoleta de una constante de cadena a %qT"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "solicitud por el miembro %qD en %qE, el cual es de tipo puntero %qT (¿ Tal vez quiso utilizar %<->%> ?)"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "solicitud por el miembro %qD en %qE, el cual es del tipo %qT que no es clase"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of nonstatic data member %qE"
 msgid "invalid use of non-static data member %qE"
 msgstr "uso no válido del dato miembro no static %qE"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 #| msgid "invalid access to non-static data member %qD  of NULL object"
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "acceso no válido a datos del miembro que no es static %qD  del objeto NULL"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "el tipo de objeto %qT no coincide con el nombre del destructor ~%qT"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "el tipo que se destruye es %qT, pero el destructor se refiere a %qT"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE"
 msgstr "%qT no tiene un miembro llamado %qE"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "%qT no tiene un miembro llamado %qE"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "%qT no tiene un miembro llamado %qE"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%qT no tiene un miembro llamado %qE"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> no es un miembro de %qT"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT no es una base de %qT"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD no es una función plantilla miembro"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT no es de tipo puntero-a-objeto"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "uso no válido del índice de matriz en puntero a miembro"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "uso no válido del unario %<*%> en puntero a miembro"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "uso no válido de la conversión implícita en puntero a miembro"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "falta el subíndice en la referencia de la matriz"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "se declaró el subíndice de la matriz como %<register%>"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "el valor indicado por el subíndice no es ni matriz ni puntero"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "falta un objeto en el uso de %qE"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ prohíbe la llamada %<::main%> dentro del mismo programa"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "se debe usar %<.*%> o %<->*%> en la llamada a la función puntero-a-miembro en %<%E (...)%>, p.e. %<(... ->* %E) (...)%>"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "no se puede usar %qE como una función"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "%qD cannot be used as a function"
 msgstr "no se puede usar %qE como una función"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "expression cannot be used as a function"
 msgstr "no se puede usar %qE como una función"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "demasiados argumentos para el constructor %q#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "faltan argumentos para el constructor %q#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "demasiados argumentos para la función miembro %q#D"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "faltan argumentos para la función miembro %q#D"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "demasiados argumentos para la función %q#D"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "faltan argumentos para la función %q#D"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "demasiados argumentos para el método %q#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "faltan argumentos para el método %q#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "demasiados argumentos para la función"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "faltan argumentos para la función"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "el parámetro %P de %qD tiene el tipo incompleto %qT"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "el parámetro %P tiene el tipo incompleto %qT"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the address %qE will never be NULL"
 msgstr "la dirección de %qD nunca debe ser NULL"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "la dirección de %qD nunca debe ser NULL"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 #| msgid "the comparison will always evaluate as %<true%> for the address of %qD will never be NULL"
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "la comparación siempre se evalúa como %<true%> para la dirección de %qD que nunca será NULL"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, fuzzy, gcc-internal-format
 #| msgid "the comparison will always evaluate as %<true%> for the address of %qD will never be NULL"
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "la comparación siempre se evalúa como %<true%> para la dirección de %qD que nunca será NULL"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "los operandos de ?: tienen tipos diferentes %qT y %qT"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 #| msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "la conversión entre diferentes tipos de punteros %qT y %qT carece de una conversión"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 #| msgid "same canonical type node for different types %T and %T"
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "el mismo nodo de tipo canónico para los tipos diferentes %T y %T"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "la comparación entre diferentes tipos de punteros %qT y %qT carece de una conversión"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "complex arguments must have floating-point type"
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "los argumentos complejos deben tener tipo de coma flotante"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 #| msgid "cast from function call of type %qT to non-matching type %qT"
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "conversión desde una llamada a función de tipo %qT al tipo %qT que no coincide"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from pointer type %qT to arithmetic type %qT in a constant-expression"
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr "conversión del tipo puntero %qT al tipo aritmético %qT en una expresión constante"
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible types when assigning to type %qT from type %qT"
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "tipos incompatible en la asignación al tipo %qT del tipo %qT"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "se asume la conversión al tipo %qT desde la función sobrecargada"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "se usó NULL en la aritmética"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ prohíbe la comparación entre puntero y entero"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, fuzzy, gcc-internal-format
 #| msgid "no type named %q#T in %q#T"
 msgid "operand types are %qT and %qT"
 msgstr "no hay un tipo llamado %q#T en %q#T"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with integer zero"
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "comparación ordenada de puntero con el entero cero"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 #| msgid "unordered comparison on non-floating point argument"
 msgid "unordered comparison on non-floating-point argument"
 msgstr "comparación sin orden en el argumento de coma no flotante"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 #, fuzzy
 #| msgid "implicit conversion from %qT to %qT to match other operand of binary expression"
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "conversión implícita de %qT a %qT para coincidir con otro operando de la expresión binaria"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "operadores no válidos de tipos %qT y %qT para el binario %qO"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ prohíbe el uso de un puntero de tipo %<void *%> en la sustracción"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ prohíbe el uso de un puntero a una función en la sustracción"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ prohíbe el uso de un puntero a un método en la sustracción"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "uso no válido de un puntero a un tipo incompleto en aritmética de punteros"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of constructor %qE"
 msgid "taking address of constructor %qD"
 msgstr "se toma la dirección del constructor %qE"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor %qE"
 msgid "taking address of destructor %qD"
 msgstr "se toma la dirección del destructor %qE"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "uso no válido de %qE para formar una función puntero a miembro"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  se requiere un id calificado"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "no se pueden usar paréntesis alrededor de %qE para formar una función-puntero-a-miembro"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ prohíbe tomar la dirección de una función miembro no estática sin calificar o entre paréntesis para formar un puntero a la función miembro.  Como %<&%T::%D%>"
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO C++ prohíbe tomar la dirección de una función miembro no estática sin calificar o entre paréntesis para formar un puntero a la función miembro.  Como %<&%T::%D%>"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ prohíbe tomar la dirección de una función miembro limitada para formar un puntero a la función miembro.  Como %<&%T::%D%>"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ prohíbe tomar la dirección de una función miembro limitada para formar un puntero a la función miembro.  Como %<&%T::%D%>"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "(un puntero a miembro solamente se puede formar con %<&%E%>)"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of rvalue"
 msgstr "se toma la dirección del temporal"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ prohíbe tomar la dirección de la función %<::main%>"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "no se puede crear un puntero al miembro referencia %qD"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take address of bit-field %qD"
 msgid "attempt to take address of bit-field"
 msgstr "no se puede tomar la dirección del campo de bits %qD"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of expression of type %<void%>"
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "se toma la dirección de la expresión de tipo %<id%>"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ prohíbe incrementar un enum"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ prohíbe decrementar un enum"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "no se puede incrementar un puntero a un tipo incompleto %qT"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "no se puede decrementar un puntero a un tipo incompleto %qT"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ prohíbe incrementar un puntero de tipo %qT"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ prohíbe decrementar un puntero de tipo %qT"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, fuzzy, gcc-internal-format
 #| msgid "use of cast expressions as lvalues is deprecated"
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr "el uso de expresiones de conversión como l-valores es obsoleto"
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "no se puede tomar la dirección de %<this%> que es una expresión r-valuada"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "se solicitó la dirección de la variable register explícita %qD"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "se solicitó la dirección de %qD, la cual se declaró como %<register%>"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "el inicializador de lista para el tipo que no es clase no debe estar entre paréntesis"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "se trata la lista de expresiones como una expresión compuesta en en inicializador"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "se trata la lista de expresiones como una expresión compuesta en el inicializador de memoria"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "se trata la lista de expresiones como una expresión compuesta en la conversión funcional"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "se trata la lista de expresiones como una expresión compuesta %s"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr "no hay contexto para resolver el tipo de %qE"
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "la conversión del tipo %qT al tipo %qT proscribe los calificadores"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 #| msgid "static_cast from type %qT to type %qT casts away qualifiers"
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "static_cast del tipo %qT al tipo %qT proscribe los calificadores"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 #| msgid "reinterpret_cast from type %qT to type %qT casts away qualifiers"
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "reinterpret_cast del tipo %qT al tipo %qT proscribe los calificadores"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 #| msgid "%qT uses local type %qT"
 msgid "useless cast to type %q#T"
 msgstr "%qT usa el tipo local %qT"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "type qualifiers ignored on cast result type"
 msgstr "se descartan los calificadores de tipo en el tipo de devolución de la función"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "static_cast no válido del tipo %qT al tipo %qT"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "class type %qT is incomplete"
 msgstr "el tipo de devolución %q#T es un tipo de dato incompleto"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 #| msgid "converting from %qT to %qT"
 msgid "converting from %qH to %qI"
 msgstr "se convierte de %qT a %qT"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "conversión no válida de una expresión r-valuada de tipo %qT al tipo %qT"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 #, fuzzy
 #| msgid "cast from %qT to %qT loses precision"
 msgid "cast from %qH to %qI loses precision"
 msgstr "la conversión de %qT a %qT pierde precisión"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 #, fuzzy
 #| msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "la comparación entre diferentes tipos de punteros-a-miembro %qT y %qT carece de una conversión"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 #| msgid "cast from %qT to %qT increases required alignment of target type"
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "la conversión de %qT a %qT incrementa la alineación requerida del tipo del destino"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "ISO C++ prohíbe la conversión entre puntero a función y puntero a objeto"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "conversión no válida del tipo %qT al tipo %qT"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "uso no válido de const_cast con tipo %qT, que no es puntero, referencia, ni un tipo puntero-a-datos-miembro"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "uso no válido de const_cast con tipo %qT, el cual es un puntero o referencia a un tipo de función"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast of an rvalue of type %qT to type %qT"
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "const_cast no válido de un valor-r de tipo %qT al tipo %qT"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast from type %qT to type %qT"
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "const_cast no válido del tipo %qT al tipo %qT"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ prohíbe la conversión a un tipo de matriz %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "conversión no válida al tipo de función %qT"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qE from type %qT to type %qT"
 msgid "moving %qE of type %qT to itself"
 msgstr "no se puede convertir %qE desde el tipo %qT al tipo %qT"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  en la evaluación de %<%Q(%#T, %#T)%>"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr "se asigna a una matriz desde una lista de inicializador"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "tipos incompatible en la asignación de %qT a %qT"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "se usó una matriz como inicializador"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "asignación de matriz no válida"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   en la conversión del puntero a función miembro"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "puntero a la conversión miembro a través de la base virtual %qT"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   en la conversión del puntero a miembro"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "conversión no válida del tipo %qT a partir del tipo %qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in default argument"
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "no se puede convertir %qT a %qT en el argumento por defecto"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in argument passing"
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "no se puede convertir %qT a %qT en el paso de argumentos"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in initialization"
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "no se puede convertir %qT a %qT en la inicialización"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in return"
 msgid "cannot convert %qH to %qI in return"
 msgstr "no se puede convertir %qT a %qT en la devolución"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in assignment"
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "no se puede convertir %qT a %qT en la asignación"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "el parámetro %qP de %qD puede ser un candidato para un atributo de formato"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr "el parámetro puede ser un candidato para un atributo de formato"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "el objetivo de conversión puede ser un candidato para un atributo de formato"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "el objetivo de inicialización puede ser un candidato para un atributo de formato"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "el lado izquierdo de la asignación puede ser un candidato para un atributo de formato"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 #| msgid "in passing argument %P of %q+D"
 msgid "in passing argument %P of %qD"
 msgstr "al pasar el argumento %P de %q+D"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "se devuelve la referencia al temporal"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "se devuelve la referencia al temporal"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, fuzzy, gcc-internal-format
 #| msgid "reference to local variable %q+D returned"
 msgid "reference to local variable %qD returned"
 msgstr "se devolvió una referencia a la variable local %q+D"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of label %qD returned"
 msgstr "se devolvió la dirección de la variable local %q+D"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of local variable %qD returned"
 msgstr "se devolvió la dirección de la variable local %q+D"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 #| msgid "not enough values in return statement"
 msgid "redundant move in return statement"
 msgstr "faltan valores en la declaración de devolución"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 #| msgid "not enough values in return statement"
 msgid "redundant move in initialization"
 msgstr "faltan valores en la declaración de devolución"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "se devuelve un valor de un destructor"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "no se puede regresar de un manejador de una función-intenta-bloque de un constructor"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "se devuelve un valor de un constructor"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "declaración return sin valores, en una función que devuelve %qT"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 #| msgid "<brace-enclosed initializer list>"
 msgid "returning initializer list"
 msgstr "<lista inicializador dentro de llaves>"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "se deducen los tipos inconsistentes %qT y %qT para el tipo de devolución lambda"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, fuzzy, gcc-internal-format
 #| msgid "inconsistent deduction for %qT: %qT and then %qT"
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "deducción inconsistente para %qT: %qT y después %qT"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 #| msgid "return-statement with no value, in function returning %qT"
 msgid "return-statement with a value, in function returning %qT"
 msgstr "declaración return sin valores, en una función que devuelve %qT"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, fuzzy, gcc-internal-format
 #| msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%> no debe regresar NULL a menos que se declare %<throw()%> (o -fcheck-new esté en efecto)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 #| msgid "invalid covariant return type for %q+#D"
 msgid "not eliding copy on return from %qD"
 msgstr "tipo de devolución covariante no válido para %q+#D"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 #| msgid "using temporary as lvalue"
 msgid "using rvalue as lvalue"
@@ -70807,170 +70849,170 @@ msgstr "función sobrecargada sin información contextual de tipo"
 msgid "insufficient contextual information to determine type"
 msgstr "información contextual insuficiente para determinar el tipo"
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "se usó la sintaxis de constructor, pero no se declaró un constructor para el tipo %qT"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 #| msgid "constexpr static data member %qD must have an initializer"
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "el miembro dato static constexpr %qD debe tener un inicializador"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 #| msgid "narrowing conversion of %qE from %qT to %qT inside { } is ill-formed in C++11"
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "la conversión estrechadora de %qE desde %qT a %qT dentro de { } está mal formada en C++11"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 #| msgid "narrowing conversion of %qE from %qT to %qT inside { }"
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "conversión estrechadora de %qE desde %qT a %qT dentro de { }"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, fuzzy, gcc-internal-format
 #| msgid "expression in static assertion is not an integer constant expression"
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr "la expresión en la aserción static no es una expresión constante entera"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 #| msgid "initializer-string for array of chars is too long"
 msgid "initializer-string for %qT is too long"
 msgstr "la cadena del inicializador para la matriz de caracteres es demasiado larga"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "remove %<{ }%> around initializer"
 msgstr "llaves alrededor del inicializador escalar"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "no se puede inicializar el agregado del tipo %qT con una literal compuesta"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "falta el inicializador para el miembro %qD"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "el miembro %qD es una referencia sin inicializar"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD is uninitialized reference"
 msgid "member %qD with uninitialized reference fields"
 msgstr "el miembro %qD es una referencia sin inicializar"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 #| msgid "type of %qD does not match original declaration"
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "el tipo de %qD no coincide con la declaración original"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "no existe el campo %qD en la union que se está inicializando"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "valor de índice en lugar del nombre del campo en el inicializador de union"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "se detectó una delegación de puntero circular"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "el operando base de %<->%> tiene el tipo %qT que no es puntero"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "el resultado de %<operator->()%> produce un resultado que no es puntero"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "el operando base de %<->%> no es un puntero"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "no se puede usar %qE como un puntero miembro, porque es de tipo %qT"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "no se puede aplicar el puntero a miembro %qE a %qE, el cual es del tipo %qT que no es clase"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "el tipo de puntero a miembro %qT es incompatible con el tipo objeto %qT"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "se usó un puntero a una función miembro en la aritmética"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "se usó un puntero a una función miembro en la aritmética"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "se usó un puntero a una función miembro en la aritmética"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "conversión funcional al tipo de matriz %qT"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "el constructor no puede ser una función miembro de tipo static"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, fuzzy, gcc-internal-format
 #| msgid "C++0x auto only available with -std=c++11 or -std=gnu++11"
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++0x automático sólo está disponible con -std=c++11 o -std=gnu++11"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "inicialización por valor no válida del tipo de referencia"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "llamada a la función %qD la cual arroja el tipo incompleto %q#T"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "llamada a una función la cual arroja el tipo incompleto %q#T"
@@ -72056,7 +72098,7 @@ msgstr "La lista de nombres %s no se puede renombrar por asociación de USE a %s
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "'I' en %L y 'J' en %L no pueden ser constantes literal BOZ al mismo tiempo"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "invalid suffix on integer constant"
 msgid "Invalid use of BOZ literal constant at %L"
@@ -73570,7 +73612,7 @@ msgstr "Especificación INTENT errónea en %C"
 msgid "deferred type parameter at %C"
 msgstr "Fortran 2003: parámetro de tipo diferido en %C"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -73820,7 +73862,7 @@ msgstr "El componente '%s' con CLASS en %L debe ser allocatable o pointer"
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "El componente de matriz de la estructura en %C debe tener una forma explícita o diferida"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "Component %qs at %C already declared at %L"
@@ -74716,7 +74758,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "Se esperaba una lista de argumentos formales en la definición de la función en %C"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr "El atributo BIND(C) en %L sólo se puede usar para variables o bloques comunes"
@@ -75594,12 +75636,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr "El argumento actual INTENT(%s) en %L puede interferir con el argumento actual en %L."
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -75873,301 +75915,301 @@ msgstr "El parámetro '%s' en %L no se ha declarado o es una variable, lo cual n
 msgid "check_init_expr(): Unknown expression type"
 msgstr "Se esperaba un tipo de expresión"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be a statement function"
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "La función de especificación '%s' en %L no puede ser una función de declaración"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be an internal function"
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "La función de especificación '%s' en %L no puede ser una función interna"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L must be PURE"
 msgid "Specification function %qs at %L must be PURE"
 msgstr "La función de especificación '%s' en %L debe ser PURE"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be RECURSIVE"
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "La función de especificación '%s' en %L no puede ser RECURSIVE"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' not allowed in expression at %L"
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "No se permite el argumento dummy '%s' en la expresión en %L"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be OPTIONAL"
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "El argumento dummy '%s' en %L no puede ser OPTIONAL"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "El argumento dummy '%s' en %L no puede ser INTENT(OUT)"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "La variable '%s' no puede aparecer en la expresión en %L"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression type"
 msgid "check_restricted(): Unknown expression type"
 msgstr "Se esperaba un tipo de expresión"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "La expresión en %L debe ser de tipo INTEGER, se encontró %s"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L must be PURE"
 msgid "Function %qs at %L must be PURE"
 msgstr "La función '%s' en %L debe ser PURE"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "La expresión en %L debe ser escalar"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "Rangos incompatibles en %s (%d y %d) en %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "Forma diferente para %s en %L en la dimensión %d (%d y %d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Deferred-length character component '%s' at %L is not yet supported"
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr "El componente de caractér de longitud diferida '%s' en %L aún no se admite"
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L is not a VALUE"
 msgid "%qs at %L is not a VALUE"
 msgstr "'%s' en %L no es un VALUE"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Illegal stride of zero at %L"
 msgid "Illegal assignment to external procedure at %L"
 msgstr "Tranco ilegal de cero en %L"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "Rangos %d y %d incompatibles en la asignación en %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "El tipo de la variable es UNKNOWN en la asignación en %L"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "NULL aparece en el lado derecho de una asignación en %L"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "POINTER valued function appears on right-hand side of assignment at %L"
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "Una función valuada como POINTER aparece en el lado derecho de la asignación en %L"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Deferred-length character component '%s' at %L is not yet supported"
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr "El componente de caractér de longitud diferida '%s' en %L aún no se admite"
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "Tipos incompatible en la declaración DATA en %L; se intentó la conversión de %s a %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "El objetivo de asignación de puntero no es un POINTER en %L"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "'%s' en la asignación de puntero en %L no puede ser un l-valor ya que es un procedimiento"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, fuzzy, gcc-internal-format
 #| msgid "Expected bounds specification for '%s' at %L"
 msgid "Expected bounds specification for %qs at %L"
 msgstr "Se esperaba una especificación de límites para '%s' en %L"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: Bounds specification for '%s' in pointer assignment at %L"
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Fortran 2003: Especificación de límites para '%s' en una asignación de puntero en %L"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr "El tranco no debe ser estar presente en %L"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "El objeto puntero en %L no debe tener un coíndice"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "Asignación de puntero de procedimiento no válida en %L"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' is invalid in procedure pointer assignment at %L"
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "La función de declaración '%s' es no válida en la asignación de puntero de procedimiento en %L"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, fuzzy, gcc-internal-format
 #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "La interfaz abstracta '%s' es no válida en la asignación de puntero de procedimiento en %L"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' is invalid in procedure pointer assignment at %L"
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "La función de declaración '%s' es no válida en la asignación de puntero de procedimiento en %L"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is invalid in procedure pointer assignment at %L"
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "El procedimiento interno '%s' es no válido en la asignación de puntero de procedimiento en %L"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is invalid in procedure pointer assignment at %L"
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "El procedimiento interno '%s' es no válido en la asignación de puntero de procedimiento en %L"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, fuzzy, gcc-internal-format
 #| msgid "Nonintrinsic elemental procedure '%s' is invalid in procedure pointer assigment at %L"
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "El procedimiento elemental que no es intrínseco '%s' es no válido en la asignación de puntero de procedimiento en %L"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr "No hay coincidencia en la asignación de puntero a procedimiento en %L: no hay coincidencia en la convención a llamada"
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, fuzzy, gcc-internal-format
 #| msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "No coincide la interfaz en la asignación de puntero a procedimiento en %L: %s"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, fuzzy, gcc-internal-format
 #| msgid "NOPASS or explicit interface required at %C"
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "Se requiere NOPASS o una interfaz explícita en %C"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, fuzzy, gcc-internal-format
 #| msgid "NOPASS or explicit interface required at %C"
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "Se requiere NOPASS o una interfaz explícita en %C"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "No coincide la interfaz en la asignación de puntero a procedimiento en %L: %s"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "El objetivo de asignación de puntero no es un POINTER en %L"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "Tipos diferentes en la asignación de puntero en %L; se intentó la asignación de %s a %s"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "Parámetros de tipo de género diferentes en la asignación de puntero en %L"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "Rangos diferentes en la asignación de puntero en %L"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr "El objetivo de remapeo de rango es menor que el tamaño del puntero (%ld < %ld) en %L"
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr "El objetivo de remapeo de rango de debe ser de rango 1 o simplemente contiguo en %L"
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Fortran 2008: Rank remapping target is not rank 1 at %L"
 msgid "Rank remapping target is not rank 1 at %L"
@@ -76176,213 +76218,213 @@ msgstr "Fortran 2008: El objetivo de remapeo de rango no es rango 1 en %L"
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr "El objetivo de datos en %L no puede tener un coíndice"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "La expresión objetivo en la asignación de puntero en %L debe entregar un resultado puntero"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer initialization target at %C must have the TARGET attribute"
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "El objetivo de inicialización de puntero en %C debe tener el atributo TARGET"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "El especificador ASYNCHRONOUS= en %L debe ser una expresión de inicialización"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "El objetivo de asignación de puntero no es TARGET ni POINTER en %L"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "Objetivo erróneo en la asignación de puntero en el procedimiento PURE en %L"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "Asignación de puntero con subíndice vectorial del lado derecho en %L"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "El objetivo de asignación de puntero tiene atributo PROTECTED en %L"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr "La expresión objetivo en la asignación de puntero en %L debe entregar un resultado puntero"
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer initialization target at %L must not be ALLOCATABLE "
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "El objetivo de inicialización de puntero en %L no debe ser ALLOCATABLE"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer initialization target at %C must have the TARGET attribute"
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "El objetivo de inicialización de puntero en %C debe tener el atributo TARGET"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "El objetivo de inicialización de puntero en %L debe tener el atributo SAVE"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr "El objetivo de inicialización de puntero a procedimiento en %L tal vez no es un puntero a procedimiento"
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is invalid in procedure pointer assignment at %L"
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "El procedimiento interno '%s' es no válido en la asignación de puntero de procedimiento en %L"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is invalid in procedure pointer assignment at %L"
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "El procedimiento interno '%s' es no válido en la asignación de puntero de procedimiento en %L"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "Fortran 2008: Funciones puntero en un contexto de definición variable (%s) en %L"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr "Expresión que no es variable en el contexto de definición variable (%s) en %L"
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, fuzzy, gcc-internal-format
 #| msgid "Named constant '%s' in variable definition context (%s) at %L"
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr "Constante nombrada '%s' en el contexto de definición variable (%s) en %L"
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' in variable definition context (%s) at %L is not a variable"
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "'%s' en el contexto de definición variable (%s) en %L no es una variable"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr "Uno que no es POINTER en el contexto de asociación de puntero (%s) en %L"
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Named constant '%s' in variable definition context (%s) at %L"
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr "Constante nombrada '%s' en el contexto de definición variable (%s) en %L"
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr "LOCK_TYPE en el contexto de definición variable (%s) en %L"
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr "LOCK_TYPE en el contexto de definición variable (%s) en %L"
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, fuzzy, gcc-internal-format
 #| msgid "Named constant '%s' in variable definition context (%s) at %L"
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "Constante nombrada '%s' en el contexto de definición variable (%s) en %L"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' with INTENT(IN) in pointer association context (%s) at %L"
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr "Argumento dummy '%s' con INTENT(IN) en el contexto de asociación de puntero (%s) en %L"
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' with INTENT(IN) in variable definition context (%s) at %L"
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr "Argumento dummy '%s' con INTENT(IN) en el contexto de definición de variable (%s) en %L"
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' is PROTECTED and can not appear in a pointer association context (%s) at %L"
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "La variable '%s' es PROTECTED y no puede aparecer en un contexto de asociación de puntero (%s) en %L"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' is PROTECTED and can not appear in a variable definition context (%s) at %L"
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "La variable '%s' es PROTECTED y no puede aparecer en un contexto de definición variable (%s) en %L"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' can not appear in a variable definition context (%s) at %L in PURE procedure"
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "La variable '%s' no puede aparecer en un contexto de definición variable (%s) en %L en el procedimiento PURE"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L associated to vector-indexed target can not be used in a variable definition context (%s)"
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr "No se puede usar '%s' en %L asociado al objetivo con índice vectorial en un contexto de definición variable (%s)"
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L associated to expression can not be used in a variable definition context (%s)"
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr "No se puede usar '%s' en %L asociado a una expresión en un contexto de definición variable (%s)"
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L associated to expression can not be used in a variable definition context (%s)"
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr "No se puede usar '%s' en %L asociado a una expresión en un contexto de definición variable (%s)"
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, fuzzy, gcc-internal-format
 #| msgid "Associate-name '%s' can not appear in a variable definition context (%s) at %L because its target at %L can not, either"
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "El nombre asociado '%s' no puede aparecer en un contexto de definición variable (%s) en %L porque su obtetivo en %L tampoco puede aparecer"
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "'%s' at %L associated to expression can not be used in a variable definition context (%s)"
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
@@ -76406,8 +76448,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "Se crea una matriz temporal en %L"
@@ -76500,7 +76542,7 @@ msgstr "La variable '%s' en %C no se puede redefinir dentro del inicio de un buc
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "La variable '%s' en %C no se puede redefinir dentro del inicio de un bucle en %L"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -76645,12 +76687,12 @@ msgstr "El primer argumento de la asignación definida en %L debe ser INTENT(OUT
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "El segundo argumento de la asignación definida en %L debe ser INTENT(IN)"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "El primer argumento de la interfaz de operador en %L debe ser INTENT(IN)"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "El segundo argumento de la interfaz de operador en %L debe ser INTENT(IN)"
@@ -77660,7 +77702,7 @@ msgstr "Conversión de %s a %s en %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Can't convert %s to %s at %L"
 msgid "Cannot convert %s to %s at %L"
@@ -78277,7 +78319,7 @@ msgstr "NAMELIST '%s' en la declaración READ en %L contiene el símbolo '%s' el
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr "El objeto NAMELIST '%s' en la lista de nombres '%s' en %L es polimórfico y requiere un procedimiento de entrada/salida definido"
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE or POINTER components"
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
@@ -78459,6 +78501,11 @@ msgstr "Desbordamiento entero"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
@@ -78903,7 +78950,7 @@ msgstr "El código STOP en %L debe ser un carácter por defecto KIND=%d"
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "El código STOP en %L debe ser un entero por defecto KIND=%d"
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
@@ -79487,87 +79534,87 @@ msgstr "Error sintáctico en la declaración PROTECTED en %C"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr "El selector en SELECT TYPE en %C no es una variable nombrada; use nombre-asociado =>"
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Fortran 2008: LOCK statement at %C"
 msgid "SELECT RANK statement at %C"
 msgstr "Fortran 2008: Declaración LOCK en %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in PROTECTED statement at %C"
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "Error sintáctico en la declaración PROTECTED en %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "Declaración CASE inesperada en %C"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "Error sintáctico en la especificación CASE en %C"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "Declaración TYPE IS inesperada en %C"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "Error sintáctico en la especificación TYPE IS en %C"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "Error sintáctico en la especificación CLASS IS en %C"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected RANK statement at %C"
 msgstr "Declaración END inesperada en %C"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL stride expression at %L must be a scalar %s"
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "La expresión de tranco FORALL en %L debe ser un %s escalar"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE specification at %C"
 msgid "Syntax error in RANK specification at %C"
 msgstr "Error sintáctico en la especificación CASE en %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "La declaración ELSEWHERE en %C no está dentro de un bloque WHERE"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, fuzzy, gcc-internal-format
 #| msgid "Label '%s' at %C doesn't match WHERE label '%s'"
 msgid "Label %qs at %C doesn't match WHERE label %qs"
@@ -81122,8 +81169,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr "la cláusula %<nowait%> no debe utilizarse junto con %<copyprivate%>"
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "La cláusula IF en %L requiere una expresión LOGICAL escalar"
@@ -83764,13 +83811,13 @@ msgstr "El intrínseco '%s' declarado como INTRINSIC en %L no está disponible e
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "El procedimiento que no es RECURSIVE '%s' en %L posiblemente se está llamando a sí mismo recursivamente. Declárelo RECURSIVE o utilice -frecursive"
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, fuzzy, gcc-internal-format
 #| msgid "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively.  Declare it RECURSIVE or use -frecursive"
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "El procedimiento que no es RECURSIVE '%s' en %L posiblemente se está llamando a sí mismo recursivamente. Declárelo RECURSIVE o utilice -frecursive"
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "La etiqueta %d referenciada en %L nunca se define"
@@ -83907,7 +83954,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "La función '%s' en %L no es de tipo IMPLICIT"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L has no IMPLICIT type"
 msgid "Function %qs at %L has no IMPLICIT type"
@@ -84350,296 +84397,302 @@ msgstr "La variable de comatriz '%s' en %L no debe tener codimensiones con forma
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "La variable de comatriz '%s' en %L no debe tener codimensiones con forma diferida"
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of references"
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "se crea la matriz de referencias"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s', used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr "La variable '%s', usada en una expresión de especificación, se referencía en %L antes de la declaración ENTRY en la cual es un parámetro"
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' is used at %L before the ENTRY statement in which it is a parameter"
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr "La variable '%s' se usa en %L antes de la declaración ENTRY en la cual es un parámetro"
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr "Subobjecto polimórfico de un objeto coindizado en %L"
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr "Objeto coindizado con subcomponente alojable polimórfico en %L"
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "Using variable %qs at %L is deprecated"
 msgstr "%qs es obsoleto"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Bad array reference at %L"
+msgid "Invalid array reference at %L"
+msgstr "Referencia de matriz errónea en %L"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Error in type-spec at %L"
 msgid "Error in typebound call at %L"
 msgstr "Error en la especificación de tipo en %L"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "El objeto pasado en %L debe ser escalar"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, fuzzy, gcc-internal-format
 #| msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type '%s'"
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr "El objeto base para la llamada a componente procedimiento-puntero en %L es de tipo ABSTRACT '%s'"
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, fuzzy, gcc-internal-format
 #| msgid "Base object for type-bound procedure call at %L is of ABSTRACT type '%s'"
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr "El objeto base para la llamada a procedimiento enlazada a tipo en %L es de tipo ABSTRACT '%s'"
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "El objeto base para la llamada a procedimiento enlazada a tipo NOPASS en %L debe ser escalar"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, fuzzy, gcc-internal-format
 #| msgid "Found no matching specific binding for the call to the GENERIC '%s' at %L"
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr "No se encontró un enlace específico coincidente para la llamada al GENERIC '%s' en %L"
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L should be a SUBROUTINE"
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "'%s' en %L debe ser una SUBROUTINE"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L should be a FUNCTION"
 msgid "%qs at %L should be a FUNCTION"
 msgstr "'%s' en %L debe ser una FUNCTION"
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression type"
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "Se esperaba un tipo de expresión"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s en %L debe ser un escalar"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "'%s' at %L must be nonnegative"
 msgid "%s at %L must be integer"
 msgstr "'%s' en %L debe ser no negativo"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s en %L debe ser INTEGER"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "La expresión de paso en el bucle DO en %L no puede ser cero"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr "El bucle DO en %L se ejecutará cero veces"
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "El nombre de índice FORALL en %L debe ser un INTEGER escalar"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "La expresión de inicio FORALL en %L debe ser un INTEGER escalar"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "La expresión de fin FORALL en %L debe ser un INTEGER escalar"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "La expresión de tranco FORALL en %L debe ser un %s escalar"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "La expresión de tranco FORALL en %L no puede ser cero"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, fuzzy, gcc-internal-format
 #| msgid "FORALL index '%s' may not appear in triplet specification at %L"
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "El índice FORALL '%s' no puede aparecer en la especificación triplet en %L"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "El objeto de alojamiento en %L debe ser ALLOCATABLE o un POINTER"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr "Objeto alojable coindizado en %L"
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr "La expresión fuente en %L debe ser escalar o tener el mismo rango que el objeto de alojamiento en %L"
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr "La expresión fuente en %L y el objeto de alojamiento en %L deben tener la misma forma"
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr "El tipo de entidad en %L es de tipo incompatible con la expresión fuente en %L"
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr "El objeto de alojamiento en %L y la expresión fuente en %L deben tener el mismo parámetro de tipo de género"
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr "La expresión fuente en %L no puede ser de tipo LOCK_TYPE ni tener un componente LOCK_TYPE si el objeto-alojado en %L es una comatriz"
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr "La expresión fuente en %L no puede ser de tipo LOCK_TYPE ni tener un componente LOCK_TYPE si el objeto-alojado en %L es una comatriz"
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr "El alojamiento %s del tipo de base ABSTRACT en %L requiere una especificación de tipo o una expresión source"
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr "Alojar %s en %L con especificación de tipo requiere el mismo parámetro de longitud de carácter que el de la declaración"
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "Se requiere una especificación de matriz en la declaración ALLOCATE en %L"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array specification required in ALLOCATE statement at %L"
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "Se requiere una especificación de matriz en la declaración ALLOCATE en %L"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "Se requiere una especificación de comatriz en la declaración ALLOCATE en %L"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "Especificación de comatriz errónea en la declaración ALLOCATE en %L"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "Especificación de matriz errónea en la declaración ALLOCATE en %L"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "'%s' no debe aparecer en la especificación de matriz en %L en la misma declaración ALLOCATE donde se aloja a sí misma"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 #| msgid "Expected '*' in coindex specification in ALLOCATE statement at %L"
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "Se esperaba '*' en la especificación de comatriz en la declaración ALLOCATE en %L"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "La variable stat en %L debe ser una variable INTEGER escalar"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "La variable stat en %L no no debe ser %sd dentro de la misma declaración %s"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr "ERRMSG en %L es inútil sin una etiqueta STAT"
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "El argumento ERRMSG= en %L debe ser una variable CHARACTER escalar"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr "La variable errmsg en %L no debe ser %sd dentro de la misma declaración %s"
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr "El objeto de alojamiento en %L también aparece en %L"
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr "El objeto de alojamiento en %L es un subobjeto del objeto en %L"
@@ -84648,303 +84701,303 @@ msgstr "El objeto de alojamiento en %L es un subobjeto del objeto en %L"
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "La etiqueta CASE en %L se encima con la etiqueta CASE en %L"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "La expresión en la declaración CASE en %L debe ser de tipo %s"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "La expresión en la declaración CASE en %L debe ser de género %d"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "La expresión en la declaración CASE en %L debe ser escalar"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "La expresión de selección en una declaración GOTO computada en %L debe ser una expresión entera escalar"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "El argumento de la declaración SELECT en %L no puede ser %s"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "El argumento de la declaración SELECT en %L debe ser una expresión escalar"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "La expresión en la declaración CASE en %L no está en el rango de %s"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "El DEFAULT CASE en %L no puede tener después un segundo DEFAULT CASE en %L"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "No se permite un rango lógico en una declaración CASE en %L"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "Se repite un valor lógico constante en una declaración CASE en %L"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "La especificación de rango en %L nunca puede coincidir"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "El bloque SELECT CASE lógico en %L tiene más de dos cases"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is invalid in procedure pointer assignment at %L"
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "El procedimiento interno '%s' es no válido en la asignación de puntero de procedimiento en %L"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 #| msgid "The name '%s' cannot be used as a defined operator at %C"
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "El nombre '%s' no se puede usar como un operador definido en %C"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, fuzzy, gcc-internal-format
 #| msgid "Associate-name '%s' at %L is used as array"
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "Se usa el nombre asociado '%s' en %L como una matriz"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Association target at %C must not be coindexed"
 msgid "Selector at %L cannot be NULL()"
 msgstr "El objetivo de asociación en %C no debe estar coindizado"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Association target at %C must not be coindexed"
 msgid "Selector at %L has no type"
 msgstr "El objetivo de asociación en %C no debe estar coindizado"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, fuzzy, gcc-internal-format
 #| msgid "Associate-name '%s' at %L is used as array"
 msgid "Associate-name %qs at %L is used as array"
 msgstr "Se usa el nombre asociado '%s' en %L como una matriz"
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "El selector debe ser polimórfico en la declaración SELECT TYPE en %L"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Association target at %C must not be coindexed"
 msgid "Selector at %L must not be coindexed"
 msgstr "El objetivo de asociación en %C no debe estar coindizado"
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "CASE label at %L overlaps with CASE label at %L"
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "La etiqueta CASE en %L se encima con la etiqueta CASE en %L"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %L must be extensible"
 msgid "Derived type %qs at %L must be extensible"
 msgstr "El tipo derivado '%s' en %L debe ser extensible"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %L must be an extension of '%s'"
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "El tipo derivado '%s' en %L debe ser una extensión de '%s'"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected NULL() intrinsic at %L to dummy '%s'"
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "Intrínseco NULL inesperado en %L para el dummy '%s'"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Type-spec at %L cannot contain a deferred type parameter"
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr "La especificación de tipo en %L no puede tener un parámetro de tipo diferido"
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr "Bloque CLASS IS doble en la declaración SELECT TYPE  en %L"
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid context for NULL() pointer at %%L"
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Contexto no válido para el puntero NULL() en %%L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "STOP code at %L must be scalar"
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "El código STOP en %L debe ser escalar"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr "El elemento de transferencia de datos en %L no puede ser polimórfico a menos que se procese con un procedimiento de entrada/salida definido"
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "El elemento de transferencia de datos en %L no puede tener componentes POINTER a menos que se procese con un procedimiento de entrada/salida definido"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "El elemento de transferencia de datos en %L no puede tener componentes de puntero a procedimiento"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "El elemento de transferencia de datos en %L no puede tener componentes ALLOCATABLE a menos que se procese con un procedimiento de entrada/salida definido"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "El elemento de transferencia de datos en %L no puede tener componentes PRIVATE"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "El elemento de transferencia de datos en %L no puede tener componentes POINTER a menos que se procese con un procedimiento de entrada/salida definido"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "El elemento de transferencia de datos en %L no puede ser una referencia completa a una matriz de tamaño asumido"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "La variable lock en %L debe ser un escalar de tipo LOCK_TYPE"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "La variable lock en %L debe ser un escalar de tipo LOCK_TYPE"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Actual argument to '%s' at %L must be a coarray"
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "El argumento actual para '%s' en %L debe ser una comatriz"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Actual argument to '%s' at %L must be a coarray"
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "El argumento actual para '%s' en %L debe ser una comatriz"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "El argumento STAT= en %L debe ser una variable INTEGER escalar"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "El argumento ERRMSG= en %L debe ser una variable CHARACTER escalar"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "El argumento ACQUIRED_LOCK= en %L debe ser una variable LOGICAL escalar"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "El argumento de conjunto de imagen %L debe ser un escalar o una expresión INTEGER de rango 1"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "El argumento de conjunto de imagen %L debe ser un escalar o una expresión INTEGER de rango 1"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "El argumento de conjunto de imagen en %L debe estar entre 1 y num_images()"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "La declaración en %L no es una declaración de objetivo de ramificación válida para la declaración de ramificación en %L"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr "La ramificación en %L puede resultar en un bucle infinito"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr "La declaración GOTO en %L deja la construcción CRITICAL por la etiqueta en %L"
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr "La declaración GOTO en %L deja la construcción DO CONCURRENT por la etiqueta en %L"
@@ -84952,227 +85005,227 @@ msgstr "La declaración GOTO en %L deja la construcción DO CONCURRENT por la et
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "La etiqueta en %L no está en el mismo bloque que la declaración GOTO en %L"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "La máscara WHERE en %L tiene forma inconsistente"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "El objetivo de asignación WHERE en %L tiene forma inconsistente"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr "Asignación definida por el usuario de un no-ELEMENTAL en WHERE en %L"
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "Declaración sin soporte dentro de WHERE en %L"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "Asignación a una variable de índice FORALL en %L"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, fuzzy, gcc-internal-format
 #| msgid "The FORALL with index '%s' is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "No se usa el FORALL con índice '%s' en el lado izquierdo de la asignación en %L y podría causar múltiples asignaciones a este objeto"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Fortran 2008: BLOCK construct at %C"
 msgid "FORALL construct at %L"
 msgstr "Fortran 2008: Constructor BLOCK en %C"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "El nombre de índice FORALL en %L debe ser un INTEGER escalar"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "Una construcción FORALL externa ya tiene un índice con este nombre %L"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "la cláusula WHERE/ELSEWHERE en %L requiere una matriz LOGICAL"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have procedure pointer components"
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "El elemento de transferencia de datos en %L no puede tener componentes de puntero a procedimiento"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L"
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "Se truncará la expresión CHARACTER en la asignación (%d/%d) en %L"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "La expresión con coíndice en %L se asigna a una variable de tipo derivado con un componente POINTER en un procedimiento PURE"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "Asignación a una variable coindizada en %L en un procedimiento PURE"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Polymorphic array at %C not yet supported"
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr "Aún no se admite la matriz polimórfica en %C"
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assignment to a FORALL index variable at %L"
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "Asignación a una variable de índice FORALL en %L"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, fuzzy, gcc-internal-format
 #| msgid "Variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for '=' operator"
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr "La variable no debe ser polimórfica en la asignación intrínseca en %L - revise que hay una subrutina específica coincidente para el operador '='"
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Coindexed variable must not be have an allocatable ultimate component in assignment at %L"
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr "La variable coindizada no debe tener un componente último alojable en la asignación en %L"
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid procedure pointer assignment at %L"
 msgid "Pointer procedure assignment at %L"
 msgstr "Asignación de puntero de procedimiento no válida en %L"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "La expresión objetivo en la asignación de puntero en %L debe entregar un resultado puntero."
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "El argumento de la declaración SELECT en %L debe ser una expresión escalar"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "El argumento STAT= en %L debe ser una variable INTEGER escalar"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "La declaración ASSIGNED GOTO en %L requiere una variable INTEGER"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' has not been assigned a target label at %L"
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "La variable '%s' no se ha asignado a una etiqueta objetivo en %L"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "La declaración RETURN alternativa en %L requiere de un especificador de devolución SCALAR-INTEGER"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected initialization expression in CASE at %C"
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "Se esperaba la inicialización de la expresión en CASE en %C"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "La declaración de ASSIGN en %L requiere una variable INTEGER escalar por defecto"
 
 # 'kind' es el tipo del tipo de dato en Fortran. Lo traduzco como 
 # 'género', para evitar confusión con 'type' = 'tipo'. cfuga
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid kind for %s at %L"
 msgid "Invalid NULL at %L"
 msgstr "Género no válido para %s en %L"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Arithmetic IF statement at %L requires a numeric expression"
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "La declaración IF aritmética en %L requiere una expresión numérica"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "La condición de salida del bucle DO WHILE en %L debe ser una expresión LOGICAL escalar"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "La cláusula de máscara FORALL en %L requiere una expresión LOGICAL escalar"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_trans_code(): Código de declaración erróneo"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 #| msgid "Unused parameter '%s' declared at %L"
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "Se declaró el parámetro '%s' sin uso en %L"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, fuzzy, gcc-internal-format
 #| msgid "Binding label '%s' at %L collides with the global entity '%s' at %L"
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
@@ -85180,7 +85233,7 @@ msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, fuzzy, gcc-internal-format
 #| msgid "Binding label '%s' at %L collides with the global entity '%s' at %L"
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
@@ -85189,66 +85242,66 @@ msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, fuzzy, gcc-internal-format
 #| msgid "Binding label '%s' at %L collides with the global entity '%s' at %L"
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en %L"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "La longitud de la cadena en %L es demasiado grande"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable array '%s' at %L must have a deferred shape"
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "La matriz allocatable '%s' en %L debe tener una forma diferida"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, fuzzy, gcc-internal-format
 #| msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "El objeto escalar '%s' en %L no puede ser ALLOCATABLE"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, fuzzy, gcc-internal-format
 #| msgid "Array pointer '%s' at %L must have a deferred shape"
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "La matriz de puntero '%s' en %L debe tener una forma diferida"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L cannot have a deferred shape"
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "La matriz '%s' en %L no puede tener una forma diferida"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, fuzzy, gcc-internal-format
 #| msgid "Type '%s' of CLASS variable '%s' at %L is not extensible"
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr "El tipo '%s' de la variable CLASS '%s' en %L no es extensible"
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, fuzzy, gcc-internal-format
 #| msgid "CLASS variable '%s' at %L must be dummy, allocatable or pointer"
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr "La variable CLASS '%s' en %L debe ser dummy, allocatable o pointer"
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, fuzzy, gcc-internal-format
 #| msgid "The type '%s' cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr "El tipo '%s' no se puede asociar al anfitrión en %L porque está bloqueado por un objeto incompatible del mismo nombre declarado en %L"
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2008: Implied SAVE for module variable '%s' at %L, needed due to the default initialization"
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr "Fortran 2008: SAVE implícito para la variable de módulo '%s' en %L, se necesita por la inicialización por defecto"
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, fuzzy, gcc-internal-format
 #| msgid "Entity '%s' at %L has a deferred type parameter and requires either the pointer or allocatable attribute"
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
@@ -85256,1082 +85309,1082 @@ msgstr "La entidad '%s' en %L tiene un parámetro de tipo diferido y requiere el
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, fuzzy, gcc-internal-format
 #| msgid "The module or main program array '%s' at %L must have constant shape"
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "El módulo o la matriz del programa principal '%s' en %L deben tener una forma constante"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "La entidad con longitud de carácter asumida en %L debe ser un argumento de prueba o un PARAMETER"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must have constant character length in this context"
 msgid "%qs at %L must have constant character length in this context"
 msgstr "'%s' en %L debe tener longitud de cáracter constante en este contexto"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, fuzzy, gcc-internal-format
 #| msgid "COMMON variable '%s' at %L must have constant character length"
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "La variable COMMON '%s' en %L debe tener longitud de cáracter constante en este contexto"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable '%s' at %L cannot have an initializer"
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "El allocatable '%s' en %L no puede tener un inicializador"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, fuzzy, gcc-internal-format
 #| msgid "External '%s' at %L cannot have an initializer"
 msgid "External %qs at %L cannot have an initializer"
 msgstr "El external '%s' en %L no puede tener un inicializador"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy '%s' at %L cannot have an initializer"
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "El dummy '%s' en %L no puede tener un inicializador"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L cannot have an initializer"
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "El intrinsic '%s' en %L no puede tener un inicializador"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, fuzzy, gcc-internal-format
 #| msgid "Function result '%s' at %L cannot have an initializer"
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "El resultado de la función '%s' en %L no puede tener un inicializador"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, fuzzy, gcc-internal-format
 #| msgid "Automatic array '%s' at %L cannot have an initializer"
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "La matriz automática '%s' en %L no puede tener un inicializador"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "fstat %s"
 msgid "%s at %L"
 msgstr "fstat %s"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, fuzzy, gcc-internal-format
 #| msgid "Character-valued statement function '%s' at %L must have constant length"
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "La función de declaración valuada con carácter '%s' en %L debe tener longitud constante"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: '%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L"
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "Fortran 2003: '%s' es de un tipo PRIVATE y no puede ser un argumento dummy de '%s', el cual es PUBLIC en %L"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: Procedure '%s' in PUBLIC interface '%s' at %L takes dummy arguments of '%s' which is PRIVATE"
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr "Fortran 2003: El procedimiento '%s' en la interfaz PUBLIC '%s' en %L toma argumentos dummy de '%s' el cual es PRIVATE"
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L cannot have an initializer"
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "La función '%s' en %L no puede tener un inicializador"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, fuzzy, gcc-internal-format
 #| msgid "External object '%s' at %L may not have an initializer"
 msgid "External object %qs at %L may not have an initializer"
 msgstr "El objeto external '%s' en %L puede no tener un inicializador"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, fuzzy, gcc-internal-format
 #| msgid "ELEMENTAL function '%s' at %L must have a scalar result"
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "La función ELEMENTAL '%s' en %L debe tener un resultado escalar"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' at %L may not have pointer or allocatable attribute"
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "La función de declaración '%s' en %L no debe tener atributo puntero o alojable"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "La función CHARACTER(*) '%s' en %L no puede ser matriz-valuada"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "La función CHARACTER(*) '%s' en %L no puede ser puntero-valuada"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "La función CHARACTER(*) '%s' en %L no puede ser pura"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "La función CHARACTER(*) '%s' en %L no puede ser recursiva"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "La función CHARACTER(*) '%s' en %L no puede ser pura"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' in %s at %L has no explicit interface"
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "El procedimiento '%s' en %s en %L no tiene una interfaz explícita"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy procedure '%s' at %C cannot have a generic interface"
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "El procedimiento dummy '%s' en %C no puede tener una interfaz genérica"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr "La variable '%s' en %L no puede tener los atributos ALLOCATABLE y BIND(C) al mismo tiempo"
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "El atributo PROCEDURE genera un conflicto con el atributo SAVE en '%s' en %L"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "El atributo PROCEDURE genera un conflicto con el atributo INTENT en '%s' en %L"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with RESULT attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "El atributo PROCEDURE genera un conflicto con el atributo RESULT en '%s' en %L"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, fuzzy, gcc-internal-format
 #| msgid "EXTERNAL attribute conflicts with FUNCTION attribute in '%s' at %L"
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "El atributo EXTERNAL genera un conflicto con el atributo FUNCTION en '%s' en %L"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure pointer result '%s' at %L is missing the pointer attribute"
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr "Al resultado del puntero de procedimiento '%s' en %L le falta el atributo puntero"
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 #| msgid "Interface '%s' of procedure '%s' at %L must be explicit"
 msgid "Interface of %qs at %L must be explicit"
 msgstr "La interfaz '%s' del procedimiento '%s' en %L debe ser explícita"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, fuzzy, gcc-internal-format
 #| msgid "FINAL procedure '%s' at %L is not a SUBROUTINE"
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "El procedimiento FINAL '%s' en %L no debe ser una SUBROUTINE"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "El procedimiento FINAL en %L debe tener exactamente un argumento"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of FINAL procedure at %L must be of type '%s'"
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "El argumento del procedimiento FINAL en %L debe ser de tipo '%s'"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "El argumento del procedimiento FINAL en %L no debe ser un POINTER"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "El argumento del procedimiento final en %L no debe ser ALLOCATABLE"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "El argumento del procedimiento FINAL en %L no debe ser OPTIONAL"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "El argumento del procedimiento FINAL en %L no debe ser INTENT(OUT)"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "El procedimiento FINAL que no es escalar en %L debe tener un argumento sharp asumido"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, fuzzy, gcc-internal-format
 #| msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'"
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "El procedimiento FINAL '%s' declarado en %L tiene el mismo rango (%d) que '%s'"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, fuzzy, gcc-internal-format
 #| msgid "Only array FINAL procedures declared for derived type '%s' defined at %L, suggest also scalar one"
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr "Sólo se declaran procedimientos FINAL de matriz para el tipo derivado '%s' definido en %L, se sugiere también uno escalar"
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L"
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr "'%s' y '%s' no pueden ser FUNCTION/SUBROUTINE mezcladas para el GENERIC '%s' en %L"
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous"
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr "'%s' y '%s' para el GENERIC '%s' en %L son ambiguos"
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, fuzzy, gcc-internal-format
 #| msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L"
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr "El enlace específico '%s' no está definido como objetivo del GENERIC '%s' en %L"
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, fuzzy, gcc-internal-format
 #| msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too"
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr "El GENERIC '%s' en %L debe apuntar a un enlace específico, '%s' es GENERIC también"
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, fuzzy, gcc-internal-format
 #| msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name"
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr "El GENERIC '%s' en %L no puede sobreescribir el enlace específico con el mismo nombre"
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Type-bound operator at %L can't be NOPASS"
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "El operador enlazado a tipo en %L no puede ser NOPASS"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' must be a module procedure or an external procedure with an explicit interface at %L"
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "'%s' debe ser un procedimiento de módulo o un procedimiento externo con una interfaz explícita en %L"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'"
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "El procedimiento '%s' con PASS(%s) en %L no tiene un argumento '%s'"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' with PASS at %L must have at least one argument"
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "El procedimiento '%s' con PASS en %L debe tener al menos un argumento"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, fuzzy, gcc-internal-format
 #| msgid "Non-polymorphic passed-object dummy argument of '%s' at %L"
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "Argumento dummy pasado como objeto no polimórfico de '%s' en %L"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, fuzzy, gcc-internal-format
 #| msgid "Passed-object dummy argument of '%s' at %L must be scalar"
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "El argumento dummy de objeto pasado de '%s' en %L debe ser escalar"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, fuzzy, gcc-internal-format
 #| msgid "Passed-object dummy argument of '%s' at %L must not be ALLOCATABLE"
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "El argumento dummy de objeto pasado de '%s' en %L no debe ser ALLOCATABLE"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, fuzzy, gcc-internal-format
 #| msgid "Passed-object dummy argument of '%s' at %L must not be POINTER"
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "El argumento dummy de objeto pasado de '%s' en %L no debe ser POINTER"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' at %L has the same name as a component of '%s'"
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "El procedimiento '%s' en %L tiene el mismo nombre que un componente de '%s'"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' at %L has the same name as an inherited component of '%s'"
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "El procedimiento '%s' en %L tiene el mismo nombre que un componente heredado de '%s'"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, fuzzy, gcc-internal-format
 #| msgid "Derived-type '%s' declared at %L must be ABSTRACT because '%s' is DEFERRED and not overridden"
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr "El tipo derivado '%s' declarado en %L debe ser ABSTRACT porque '%s' es DEFERRED y no se sobreescribió"
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, fuzzy, gcc-internal-format
 #| msgid "Coarray component '%s' at %L must be allocatable with deferred shape"
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "El componente de comatriz '%s' en %L debe sel alojable con forma diferida"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "El componente '%s' en %L de TYPE(C_PTR) o TYPE(C_FUNPTR) no debe ser una comatriz"
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr "El componenten '%s' en %L con componente comatriz debe ser un escalar que no sea puntero alojable"
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr "El componente '%s' en %L tiene el atributo CONTIGUOUS porque no es un puntero de matriz"
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ICHAR at %L must be of length one"
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "El argumento de ICHAR en %L debe ser de longitud uno"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure pointer component '%s' with PASS(%s) at %L has no argument '%s'"
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "El procedimiento de componente puntero '%s' con PASS(%s) en %L no tiene un argumento '%s'"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure pointer component '%s' with PASS at %L must have at least one argument"
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "El procedimiento de componente puntero '%s' con PASS en %L debe tener al menos un argumento"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived type '%s'"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of '%s' with PASS(%s) at %L must be scalar"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser escalar"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of '%s' with PASS(%s) at %L may not have the POINTER attribute"
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L no puede tener el atributo POINTER"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of '%s' with PASS(%s) at %L may not be ALLOCATABLE"
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "El argumento '%s' de '%s' con PASS(%s) en %L no puede ser ALLOCATABLE"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' of '%s' at %L has the same name as an inherited type-bound procedure"
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "El componente '%s' de '%s' en %L tiene el mismo nombre que un procedimiento enlazado a tipo heredado"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, fuzzy, gcc-internal-format
 #| msgid "Character length of component '%s' needs to be a constant specification expression at %L"
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "La longitud de carácter del componente '%s' necesita ser una expresión de especificación constante en %L"
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, fuzzy, gcc-internal-format
 #| msgid "Expression at %L must be of INTEGER type, found %s"
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "La expresión en %L debe ser de tipo INTEGER, se encontró %s"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, fuzzy, gcc-internal-format
 #| msgid "Character component '%s' of '%s' at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr "El componente de carácter '%s' de '%s' en %L con longitud diferida debe ser POINTER o ALLOCATABLE"
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "Fortran 2003: el componente '%s' es un tipo PRIVATE y no puede ser un componente de '%s' el cual es PUBLIC en %L"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr "El componente polimórfico %s en %L en SEQUENCE o de tipo BIND(C) %s"
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "El componente %s del tipo SEQUENCE declarado en %L no tiene el atributo SEQUENCE"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Conflicting I/O control specifications at %0 and %1"
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "Especificaciones de control de E/S en conflicto en %0 y %1"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, fuzzy, gcc-internal-format
 #| msgid "As extending type '%s' at %L has a coarray component, parent type '%s' shall also have one"
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr "Como al extender el tipo '%s' en %L tiene un componente de comatriz, el tipo padre '%s' también debe tener uno"
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, fuzzy, gcc-internal-format
 #| msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT"
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "El tipo derivado '%s' que no es extensible en %L no debe ser ABSTRACT"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: Generic name '%s' of function '%s' at %L being the same name as derived type at %L"
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr "Fortran 2003: El nombre genérico '%s' de la función '%s' en %L tiene el mismo nombre que el tipo derivado en %L"
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %L must be extensible"
 msgid "Derived type %qs at %L has not been declared"
 msgstr "El tipo derivado '%s' en %L debe ser extensible"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, fuzzy, gcc-internal-format
 #| msgid "Assumed size array '%s' in namelist '%s' at %L is not allowed"
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "No se permite la matriz de tamaño asumido '%s' en la lista de nombres '%s' en %L"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: NAMELIST array object '%s' with assumed shape in namelist '%s' at %L"
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr "Fortran 2003: Objeto de matriz NAMELIST '%s' con forma asumida en la lista de nombres '%s' en %L"
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: NAMELIST array object '%s' with nonconstant shape in namelist '%s' at %L"
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr "Fortran 2003: El objeto de matriz NAMELIST '%s' con forma que no es constante en la lista de nombres '%s' en %L"
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: NAMELIST object '%s' with nonconstant character length in namelist '%s' at %L"
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr "Fortran 2003: El objeto de matriz NAMELIST '%s' con longitud de carácter que no es constante en la lista de nombres '%s' en %L"
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST object '%s' was declared PRIVATE and cannot be member of PUBLIC namelist '%s' at %L"
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "El objeto NAMELIST '%s' se declaró PRIVATE y no puede ser miembro de una lista de nombres PUBLIC '%s' en %L"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST object '%s' has use-associated PRIVATE components and cannot be member of namelist '%s' at %L"
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr "El objeto NAMELIST '%s' tiene componentes PRIVATE asociados a uso y no puede ser miembro de la lista de nombres '%s' en %L"
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST object '%s' has PRIVATE components and cannot be a member of PUBLIC namelist '%s' at %L"
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "El objeto NAMELIST '%s' tiene componentes PRIVATE y no puede ser un miembro de la lista de nombres PUBLIC '%s' en %L"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "El atributo PROCEDURE genera un conflicto con el atributo NAMELIST en '%s' en %L"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "Parameter array '%s' at %L cannot be automatic or of deferred shape"
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "La matriz de parámetro '%s' en %L no puede ser automática ni de forma diferida"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, fuzzy, gcc-internal-format
 #| msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "El PARAMETER de tipo implícito '%s' en %L no coincide con un tipo IMPLICIT posterior"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "Tipo derivado incompatible en PARAMETER en %L"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, fuzzy, gcc-internal-format
 #| msgid "COMMON block '%s' at %L can not have the EXTERNAL attribute"
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "El bloque COMMON '%s' en %L no puede tener el atributo EXTERNAL"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, fuzzy, gcc-internal-format
 #| msgid "Entity '%s' at %L has a deferred type parameter and requires either the pointer or allocatable attribute"
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "La entidad '%s' en %L tiene un parámetro de tipo diferido y requiere el atributo pointer o allocatable"
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "El atributo PROTECTED genera un conflicto con el atributo EXTERNAL en %L"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "El atributo PROCEDURE genera un conflicto con el atributo PROTECTED en %L"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape array"
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr "'%s' en %L tiene el atributo CONTIGUOUS pero no es un puntero de matriz o una matriz de forma asumida"
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad specification for assumed size array at %C"
 msgid "Bad specification for assumed size array at %L"
 msgstr "Especificación errónea para la matriz de tamaño asumido en %C"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "La matriz de tamaño asumido en %L debe ser un argumento de prueba"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "La matriz de forma asumida en %L debe ser un argumento de prueba"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assumed shape array at %L must be a dummy argument"
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "La matriz de forma asumida en %L debe ser un argumento de prueba"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "El símbolo en %L no es una variable DUMMY"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr "'%s' en %L no puede tener el atributo VALUE porque no es un argumento dummy"
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, fuzzy, gcc-internal-format
 #| msgid "Character dummy variable '%s' at %L with VALUE attribute must have constant length"
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "La variable dummy de carácter '%s' en %L con atributo VALUE debe tener longitud constante"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, fuzzy, gcc-internal-format
 #| msgid "C interoperable character dummy variable '%s' at %L with VALUE attribute must have length one"
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr "La variable dummy de carácter interoperable con C '%s' en %L con atributo VALUE debe ser de longitud uno"
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, fuzzy, gcc-internal-format
 #| msgid "The derived type '%s' at %L is of type '%s', which has not been defined"
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "El tipo derivado '%s' en %L es de tipo '%s', el cual no se ha definido"
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "La variable '%s' en %L no puede tener los atributos ALLOCATABLE y BIND(C) al mismo tiempo"
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "La variable '%s' en %L no puede tener los atributos POINTER y BIND(C) al mismo tiempo"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "'%s' at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape array"
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr "'%s' en %L tiene el atributo CONTIGUOUS pero no es un puntero de matriz o una matriz de forma asumida"
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assumed shape array '%s' at %L is not permitted in an initialization expression"
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "No se permite la matriz de forma asumida '%s' en %L en una expresión de inicialización"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "La variable '%s' en %L no puede tener los atributos ALLOCATABLE y BIND(C) al mismo tiempo"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "La variable '%s' en %L no puede tener los atributos POINTER y BIND(C) al mismo tiempo"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Loop variable at %C cannot be a coarray"
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr "La variable de bucle en %C no puede ser una comatriz"
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr "La variable '%s' en %L no puede ser BIND(C) porque no es un bloque COMMON ni se declaró en el ámbito de nivel de módulo"
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, fuzzy, gcc-internal-format
 #| msgid "COMMON variable '%s' at %L must have constant character length"
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "La variable COMMON '%s' en %L debe tener longitud de cáracter constante en este contexto"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: PUBLIC %s '%s' at %L of PRIVATE derived type '%s'"
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "Fortran 2003: La función PUBLIC %s '%s' en %L es de tipo derivado PRIVATE '%s'"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr "La variable %s en %L de tipo LOCK_TYPE o con un subcomponente de tipo LOCK_TYPE debe ser una comatriz"
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr "La variable %s en %L de tipo LOCK_TYPE o con un subcomponente de tipo LOCK_TYPE debe ser una comatriz"
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, fuzzy, gcc-internal-format
 #| msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "El argumento dummy INTENT(OUT) '%s' en %L es ASSUMED SIZE y por lo tanto no puede tener un inicializador por defecto"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "El argumento dummy '%s' en %L de LOCK_TYPE no puede ser INTENT(OUT)"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "El argumento dummy '%s' en %L de LOCK_TYPE no puede ser INTENT(OUT)"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, fuzzy, gcc-internal-format
 #| msgid "Function result '%s' at %L shall not be a coarray or have a coarray component"
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "El resultado de la función '%s' en %L no puede ser una comatriz o tener un componente comatriz"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "La variable '%s' en %L de TYPE(C_PTR) o TYPE(C_FUNPTR) no debe ser una comatriz"
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr "La variable '%s' en %L con componente de comatriz debe ser un escalar que no sea puntero alojable"
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr "La variable '%s' en %L es una comatriz y no es ALLOCATABLE, SAVE ni un argumento dummy"
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, fuzzy, gcc-internal-format
 #| msgid "Coarray variable '%s' at %L shall not have codimensions with deferred shape"
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "La variable de comatriz '%s' en %L no debe tener codimensiones con forma diferida"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable coarray variable '%s' at %L must have deferred shape"
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "La variable comatriz allocatable '%s' en %L debe tener forma diferida"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr "La variable '%s' en %L es INTENT(OUT) y por lo tanto no puede ser una comatriz allocatable o tener componentes comatriz"
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, fuzzy, gcc-internal-format
 #| msgid "Coarray dummy variable '%s' at %L not allowed in BIND(C) procedure '%s'"
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "No se permite la variable dummy comatriz '%s' en %L en el procedimiento BIND(C) '%s'"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, fuzzy, gcc-internal-format
 #| msgid "Coarray dummy variable '%s' at %L not allowed in BIND(C) procedure '%s'"
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "No se permite la variable dummy comatriz '%s' en %L en el procedimiento BIND(C) '%s'"
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, fuzzy, gcc-internal-format
 #| msgid "Coarray dummy variable '%s' at %L not allowed in BIND(C) procedure '%s'"
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "No se permite la variable dummy comatriz '%s' en %L en el procedimiento BIND(C) '%s'"
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 #| msgid "Namelist %s cannot be renamed by USE association to %s"
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "La lista de nombres %s no se puede renombrar por asociación de USE a %s"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr "No se guarda (SAVE) el threadprivate en %L"
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expecting list of named entities at %C"
 msgid "Expecting definable entity near %L"
 msgstr "Se espera la lista de entidades nombradas %C"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, fuzzy, gcc-internal-format
 #| msgid "BLOCK DATA element '%s' at %L must be in COMMON"
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "El elemento BLOCK DATA '%s' en %L debe estar en COMMON"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, fuzzy, gcc-internal-format
 #| msgid "DATA array '%s' at %L must be specified in a previous declaration"
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "La matriz DATA '%s' en %L se debe especificar en una declaración previa"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, fuzzy, gcc-internal-format
 #| msgid "DATA element '%s' at %L cannot have a coindex"
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "El elemento DATA '%s' en %L no puede tener un coíndice"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, fuzzy, gcc-internal-format
 #| msgid "DATA element '%s' at %L is a pointer and so must be a full array"
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr "El elemento DATA '%s' en %L es un puntero y entonces debe ser una matriz completa"
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L cannot have the ALLOCATABLE attribute"
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "El argumento '%s' del procedimiento elemental en %L no puede tener el atributo ALLOCATABLE"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "Sección de matriz no constante en %L en la declaración DATA"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "La declaración DATA en %L tiene más variables que valores"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Nonconstant array section at %L in DATA statement"
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "Sección de matriz no constante en %L en la declaración DATA"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr "el inicio del bucle do implícito en %L no se puede simplificar a un valor constante"
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr "el final del bucle do implícito en %L no se puede simplificar a un valor constante"
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr "el paso del bucle do implícito en %L no se puede simplificar a un valor constante"
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "el paso del bucle do implícito en %L no se puede simplificar a un valor constante"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "La declaración DATA en %L tiene más valores que variables"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "Se define la etiqueta %d en %L pero no se usa"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "Se define la etiqueta %d en %L pero no se puede usar"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "La variable de tipo derivado '%s' en %L debe tener el atributo SEQUENCE para ser un objeto EQUIVALENCE"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "La variable de tipo derivado '%s' en %L no puede tener componentes ALLOCATABLE que sean un objeto EQUIVALENCE"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "La variable de tipo derivado '%s' en %L con inicializadores por defecto no puede ser un objeto EQUIVALENCE con una variable en COMMON"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "La variable de tipo derivado '%s' en %L con componente(s) de puntero no puede ser un objeto EQUIVALENCE"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "Error sintáctico en la declaración EQUIVALENCE en %L"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr "Todos o ninguno de los objetos en el conjunto EQUIVALENCE en %L deben tener el atributo PROTECTED"
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, fuzzy, gcc-internal-format
 #| msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'"
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "El miembro de bloque común '%s' en %L no puede ser un objeto EQUIVALENCE en el procedimiento puro '%s'"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, fuzzy, gcc-internal-format
 #| msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "La constante nombrada '%s' en %L no puede ser un objeto EQUIVALENCE"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "La matriz '%s' en %L con límites que no son constantes no puede ser un objeto EQUIVALENCE"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, fuzzy, gcc-internal-format
 #| msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "El componente de estructura '%s' en %L no puede ser un objeto EQUIVALENCE"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "La subcadena en %L tiene longitud cero"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, fuzzy, gcc-internal-format
 #| msgid "Different character lengths in pointer assignment at %L"
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "Longitudes de carácter diferentes en la asignación de puntero en %L"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, fuzzy, gcc-internal-format
 #| msgid "PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'"
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "La función PUBLIC '%s' en %L no puede ser del tipo PRIVATE '%s'"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, fuzzy, gcc-internal-format
 #| msgid "ENTRY '%s' at %L has no IMPLICIT type"
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "ENTRY '%s' en %L no tiene tipo IMPLICIT"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L must be a FUNCTION"
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "El procedimiento de operador de usuario '%s' en %L debe ser FUNCTION"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L cannot be assumed character length"
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "El procedimiento de operador de usuario '%s' en %L no puede ser de longitud de carácter asumido"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "El procedimiento de operador de usuario '%s' en %L debe tener al menos un argumento"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "El primer argumento de la interfaz de operador en %L no puede ser opcional"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "El segundo argumento de la interfaz de operador en %L no puede ser opcional"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "La interfaz de operador en %L debe tener, cuando mucho, dos argumentos"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, fuzzy, gcc-internal-format
 #| msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
@@ -86915,364 +86968,364 @@ msgstr "La variable declarada implícitamente '%s' en %L tal vez no es interoper
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "El resultado de la función '%s' en %L no es de tipo IMPLICIT"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "El atributo %s genera un conflicto con el atributo %s en %L"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, fuzzy, gcc-internal-format
+#| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "El atributo %s genera un conflicto con el atributo %s en '%s' en %L"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "No se permite el atributo %s en la unidad de programa BLOCK DATA en %L"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "El nombre de grupo de lista de nombres en %L no puede tener el atributo SAVE"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr ""
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Fortran 2003: Procedure pointer at %C"
 msgid "Procedure pointer at %C"
 msgstr "Fortran 2003: Procedimiento puntero en %C"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "El atributo %s se aplica a %s %s en %L"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "Se aplicó BIND(C) a %s %s en %L"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "El atributo %s genera un conflicto con el atributo %s en %L"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, fuzzy, gcc-internal-format
-#| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "El atributo %s genera un conflicto con el atributo %s en '%s' en %L"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "No se pueden cambiar los atributos de un símbolo asociado con USE en %L"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "No se pueden cambiar los atributos del símbolo asociado con USE %s en %L"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "Se especificó un atributo %s duplicado en %L"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr "Se especificó ALLOCATABLE fuera de un cuerpo INTERFACE en %L"
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate VOLATILE attribute specified at %L"
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "Se especificó un atributo VOLATILE duplicado en %L"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, fuzzy, gcc-internal-format
 #| msgid "CODIMENSION specified for '%s' outside its INTERFACE body at %L"
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "Se especificó CODIMENSION para '%s' fuera de su cuerpo INTERFACE en %L"
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, fuzzy, gcc-internal-format
 #| msgid "DIMENSION specified for '%s' outside its INTERFACE body at %L"
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "Se especificó DIMENSION para '%s' fuera de su cuerpo INTERFACE en %L"
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "El Apuntado Cray en %L aparece en varias declaraciones pointer()"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "Se especificó un atributo PROTECTED duplicado en %L"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "El atributo SAVE en %L no se puede especificar en un procedimiento PURE"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "Se especificó un atributo SAVE duplicado en %L"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "Se especificó un atributo VALUE duplicado en %L"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "Se especificó un atributo VOLATILE duplicado en %L"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "El atributo SAVE en %L no se puede especificar en un procedimiento PURE"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "Se especificó un atributo ASYNCHRONOUS duplicado en %L"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute of '%s' conflicts with %s attribute at %L"
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "El atributo %s de '%s' genera un conflicto con el atributo %s en %L"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "El procedimiento %s en %L ya se había declarado como un procedimiento %s"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "INTENT (%s) genera un conflicto con INTENT(%s) en %L"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "La especificación ACCESS en %L ya se había especificado"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "Se especificó un atributo BIND duplicado en %L"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid " BIND(C)"
 msgid "BIND(C) at %L"
 msgstr " BIND(C)"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "Se especificó un atributo EXTENDS duplicado en %L"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Fortran 2003: EXTENDS at %L"
 msgid "EXTENDS at %L"
 msgstr "Fortran 2003: EXTENDS en %L"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L already has an explicit interface"
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "El símbolo '%s' en %L ya tenía una interfaz explícita"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L has attributes specified outside its INTERFACE body"
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr "'%s' en %L tiene atributos especificados fuera de su cuerpo INTERFACE"
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L conflicts with symbol from module '%s', use-associated at %L"
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr "El símbolo '%s' en %L genera conflictos con el símbolo del módulo '%s' asociado a uso en %L"
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L already has basic type of %s"
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "El símbolo '%s' en %L ya tenía el tipo básico de %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' at %L may not have basic type of %s"
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "El procedimiento '%s' en %L no puede tener el tipo básico de %s"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L cannot have a type"
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "El símbolo '%s' en %L no puede tener un tipo"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already in the parent type at %L"
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "El componente '%s' en %C ya estaba en el tipo padre en %L"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %C is ambiguous"
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "El símbolo '%s' en %C es ambiguo"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %C is being used before it is defined"
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "El tipo derivado '%s' en %C se está usando antes de ser definido"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C is a PRIVATE component of '%s'"
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "El componente '%s' en %C es un componente PRIVATE de '%s'"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %C is not a member of the '%s' structure"
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "'%s' en %C no es un miembro de la estructura '%s'"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %C is not a member of the '%s' structure"
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "'%s' en %C no es un miembro de la estructura '%s'"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "Declaración de etiqueta %d duplicada en %L y %L"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "La etiqueta %d en %C ya se referenció como objetivo de ramificación"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "La etiqueta %d en %C ya se referenció como etiqueta de formato"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "La etiqueta %d en %C se utilizó previamente como una etiqueta FORMAT"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "La etiqueta %d en %C se utilizó previamente como objetivo de ramificación"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected terminating name at %C"
 msgid "Shared DO termination label %d at %C"
 msgstr "Se esperaba un nombre terminal en %C"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Fortran 2008: LOCK statement at %C"
 msgid "Labeled DO statement at %L"
 msgstr "Fortran 2008: Declaración LOCK en %C"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, fuzzy, gcc-internal-format
 #| msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' del módulo '%s'"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, fuzzy, gcc-internal-format
 #| msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' de la unidad de programa actual"
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %C has already been host associated"
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "El símbolo '%s' en %C ya se había asociado con el anfitrión"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' declared at %L must have the BIND attribute to be C interoperable"
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "El tipo derivado '%s' declarado en %L debe tener el atributo BIND para ser interoperable con C"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr "El tipo derivado '%s' con atributo BIND(C) en %L está vacío, y puede ser inaccesible para el procesador acompañante de C"
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type '%s' at %L"
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "El componente '%s' en %L no puede tener el atributo POINTER porque es un miembro del tipo derivado BIND(C) '%s' en %L"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure pointer component '%s' at %L cannot be a member of the BIND(C) derived type '%s' at %L"
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "El procedimiento de componente puntero '%s' en %L no puede ser un miembro del tipo derivado BIND(C) '%s' en %L"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type '%s' at %L"
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "El componente '%s' en %L no puede tener el atributo ALLOCATABLE porque es un miembro del tipo derivado BIND(C) '%s' en %L"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' in derived type '%s' at %L may not be C interoperable, even though derived type '%s' is BIND(C)"
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr "El componente '%s' en el tipo derivado '%s' en %L tal vez no es interoperable con C, aún cuando el tipo derivado '%s' es BIND(C)"
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' in derived type '%s' at %L may not be C interoperable"
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "El componente '%s' en el tipo derivado '%s' en %L tal vez no es interoperable con C"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "El tipo derivado '%s' en %L no puede tener el atributo SEQUENCE porque es BIND(C)"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' is used before it is typed at %L"
 msgid "Symbol %qs is used before it is typed at %L"
@@ -87305,26 +87358,26 @@ msgstr "Se sobreescriben los inicializadores desiguales en EQUIVALENCE en %L"
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "Se sobreescriben los inicializadores desiguales en EQUIVALENCE en %L"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, fuzzy, gcc-internal-format
 #| msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit.   See -fmax-array-constructor option"
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr "El número de elementos en el constructor de matriz en %L requiere un incremento del límite superior %d permitido.  Vea la opción -fmax-array-constructor"
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, fuzzy, gcc-internal-format
 #| msgid "Creating array temporary at %L for argument '%s'"
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "Se crea una matriz temporal en %L para el argumento '%s'"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "tipo de expresión errónea durante la caminata (%d)"
@@ -87537,40 +87590,40 @@ msgstr "No se define el valor de devolución '%s' de la función '%s' declarada
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ISO C90 forbids variable length array %qE"
 msgid "Cannot compute the length of the char array at %L."
 msgstr "ISO C90 prohíbe la matriz de longitud variable %qE"
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Sorry, allocatable scalar coarrays are not yet supported at %L"
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr "Lo siento, aún no se admiten las comatrices escalares alojables en %L"
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Sorry, allocatable scalar coarrays are not yet supported at %L"
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr "Lo siento, aún no se admiten las comatrices escalares alojables en %L"
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "Operador intrínseco desconocido"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Lista de argumentos de función desconocida en %L"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -87582,19 +87635,19 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "No se reconoce la función intrínseca %s(%d)"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, fuzzy, gcc-internal-format
 #| msgid "'dim' argument of %s intrinsic at %L is not a valid dimension index"
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "el argumento 'dim' del intrínseco '%s' en %L no es un índice de dimensión válido"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Deferred-length character component '%s' at %L is not yet supported"
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr "El componente de caractér de longitud diferida '%s' en %L aún no se admite"
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer object at %C shall not be coindexed"
 msgid "The event variable at %L shall not be coindexed"
@@ -87750,7 +87803,7 @@ msgstr "El componente de caractér de longitud diferida '%s' en %L aún no se ad
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr "Lo siento, sólo se admite integer kind %d implementado para el conjunto imagen en %L"
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
 msgid "gfc_trans_select(): Bad type for case expr."
@@ -88153,6 +88206,11 @@ msgstr "la variable %qD se redeclaró como función"
 msgid "function %qD redeclared as variable"
 msgstr "la función %qD se redeclaró como variable"
 
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "se declaró previamente aquí"
+
 #: lto/lto.cc:174
 #, fuzzy, gcc-internal-format
 #| msgid "lto_obj_file_open() failed"
@@ -89455,7 +89513,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr "se descarta %<-fobjc-sjlj-exceptions%> por %<-fgnu-runtime%>"
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, fuzzy, gcc-internal-format
 #| msgid "non-objective-c type '%T' cannot be caught"
 msgid "non-objective-c type %qT cannot be caught"
@@ -89467,7 +89525,7 @@ msgstr "no se puede atrapar el tipo '%T' que no es de objective-c"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr "%<-fobjc-sjlj-exceptions%> es la única excepción a sistema admitida para %<-fnext-runtime%> con %<-fobjc-abi-version%> < 2"
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, fuzzy, gcc-internal-format
 #| msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> >= 2"
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
@@ -92364,15 +92422,9 @@ msgstr ""
 #~ msgid "Builtin function %s is only valid for the cell processor"
 #~ msgstr "La función interna %s sólo es válida para el procesador cell"
 
-#~ msgid "Builtin function %s requires the -mhtm option"
-#~ msgstr "La función interna %s requiere la opción -mhtm"
-
 #~ msgid "Builtin function %s requires the -maltivec option"
 #~ msgstr "La función interna %s requiere la opción -maltivec"
 
-#~ msgid "Builtin function %s requires the -mpaired option"
-#~ msgstr "La función interna %s requiere la opción -mpaired"
-
 #~ msgid "Builtin function %s requires the -mspe option"
 #~ msgstr "La función interna %s requiere la opción -mspe"
 
@@ -100698,6 +100750,9 @@ msgstr ""
 #~ msgid "unexpected letter %qc in locate_error\n"
 #~ msgstr "letra %qc inesperada en locate_error\n"
 
+#~ msgid "  also declared as %q#D here"
+#~ msgstr "  también declarado como %q#D aquí"
+
 #~ msgid "creating array with size zero"
 #~ msgstr "creando la matriz con tamaño cero"
 
diff --git a/gcc/po/fi.po b/gcc/po/fi.po
index a755ae678cf..b6b64704b3e 100644
--- a/gcc/po/fi.po
+++ b/gcc/po/fi.po
@@ -32,7 +32,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 11.1-b20210321\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2021-03-23 21:16+0200\n"
 "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -457,7 +457,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "ei voi määritellä sekä valitsinta -C että valitsinta -o"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 #, fuzzy
 msgid "shared and mdll are not compatible"
 msgstr "attribuutit fastcall ja cdecl eivät ole yhteensopivia"
@@ -19340,17 +19340,17 @@ msgstr "tunnistamaton käsky:"
 msgid "insn does not satisfy its constraints:"
 msgstr "alustusalkio ei ole vakio"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, fuzzy, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "%qD esitelty uudelleen eri näkyvyydellä"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 #, fuzzy
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "%qD esitelty uudelleen eri näkyvyydellä"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 #, fuzzy
 msgid "created and used with different settings of %<-fpie%>"
 msgstr "%qD esitelty uudelleen eri näkyvyydellä"
@@ -19677,7 +19677,7 @@ msgstr "pituusmääre strfmon-muotoilussa"
 msgid "<command-line>"
 msgstr "<komentorivi>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "fr30_print_operand: tuntematon koodi"
@@ -19696,9 +19696,9 @@ msgstr "virheellinen const_double-operandi"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 msgid "invalid vector constant"
 msgstr "virheellinen rotate-käsky"
@@ -19718,7 +19718,7 @@ msgstr "virheellinen const_double-operandi"
 msgid "incompatible register operand for '%%%c'"
 msgstr "virheellinen const_double-operandi"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "puuttuva operandi"
@@ -19748,93 +19748,93 @@ msgstr "virheellinen %%G-tila"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "Virheellinen liukulukuoperaatio"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr ""
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "virheellinen %%J-arvo"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "virheellinen %%r-arvo"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "virheellinen %%R-arvo"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "virheellinen %%N-arvo"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "virheellinen %%P-arvo"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "virheellinen %%h-arvo"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "virheellinen %%L-arvo"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "virheellinen %%m-arvo"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "virheellinen %%M-arvo"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "virheellinen %%U-arvo"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "virheellinen %%s-arvo"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "virheellinen %%C-arvo"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "virheellinen %%E-arvo"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, fuzzy, c-format
 msgid "unknown relocation unspec"
 msgstr "uudelleensijoitusvirhe"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "virheellinen %%xn-koodi"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, fuzzy, c-format
 msgid "invalid operand address"
 msgstr "PRINT_OPERAND_ADDRESS, null-osoitin"
@@ -19928,35 +19928,35 @@ msgstr "virheellinen lauseke kohdemuuttujana"
 msgid "unrecognized supposed constant"
 msgstr "tunnistamaton rekisterinimi %qs"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, fuzzy, c-format
 msgid "invalid shift operand"
 msgstr "virheellinen lauseke kohdemuuttujana"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, fuzzy, c-format
 msgid "predicated Thumb instruction"
 msgstr "Virheellinen käsky"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, fuzzy, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "ehtolausekkeessa on tyyppiristiriita"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, fuzzy, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "fr30_print_operand: tuntematon koodi"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -19964,126 +19964,126 @@ msgstr "fr30_print_operand: tuntematon koodi"
 msgid "invalid operand for code '%c'"
 msgstr "fr30_print_operand: virheellinen %%x-koodi"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, fuzzy, c-format
 msgid "instruction never executed"
 msgstr "kutsu  %2d ei suoritettu koskaan\n"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, fuzzy, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "fr30_print_operand: tuntematon koodi"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "virheellinen muunnos tyypistä %qT tyyppiin %qT"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr ""
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 #, fuzzy
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "virheellinen lvalue asm-tulosteessa %d"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 #, fuzzy
 msgid "bad address, not an I/O address:"
 msgstr "kääntäjän sisäinen virhe.  Virheellinen osoite:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 #, fuzzy
 msgid "bad address, not a constant:"
 msgstr "virheellinen merkkijonovakio"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 #, fuzzy
 msgid "bad address, not (reg+disp):"
 msgstr "kääntäjän sisäinen virhe.  Virheellinen osoite:"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 #, fuzzy
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "virheellinen merkkijonovakio"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "kääntäjän sisäinen virhe.  Virheellinen osoite:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, fuzzy, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "void-lausekkeen epäkelpo käyttö"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 #, fuzzy
 msgid "internal compiler error.  Unknown mode:"
 msgstr "kääntäjän sisäinen virhe.  Virheellinen osoite:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "virheellinen käsky:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "virheellinen käsky:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "tuntematon move-käsky:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "virheellinen shift-käsky:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 #, fuzzy
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "kääntäjän sisäinen virhe.  Virheellinen osoite:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 #, fuzzy
 msgid "unsupported fixed-point conversion"
 msgstr "kiintopistevakiot ovat GCC-laajennos"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 #, fuzzy
 msgid "variable"
 msgstr "Silmukkamuuttuja"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 #, fuzzy
 msgid "function parameter"
 msgstr "parametri %q+D määritelty uudelleen"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 #, fuzzy
 msgid "structure field"
 msgstr "struct määritelty täällä"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 msgid "return type of function"
 msgstr "funktion paluutyyppi"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 #, fuzzy
 msgid "pointer"
 msgstr "nollaosoitin"
@@ -20120,7 +20120,7 @@ msgstr "odottamaton siirros"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20475,51 +20475,51 @@ msgstr "fr30_print_operand: virheellinen %%F-koodi"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "fr30_print_operand: virheellinen %%F-koodi"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, fuzzy, c-format
 msgid "invalid operand code '%c'"
 msgstr "fr30_print_operand: virheellinen %%x-koodi"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, fuzzy, c-format
 msgid "invalid constraints for operand"
 msgstr "virheellinen lauseke kohdemuuttujana"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 msgid "invalid vector immediate"
 msgstr "Muotoillun tulosteen hallinta:"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 #, fuzzy
 msgid "unknown insn mode"
 msgstr "tuntematon move-käsky:"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "virheellinen muunnos tyypistä %qT tyyppiin %qT"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "virheellinen muunnos tyypistä %qT tyyppiin %qT"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -20553,7 +20553,7 @@ msgstr "Virheellinen operaatiokoodi"
 msgid "invalid %%P operand"
 msgstr "virheellinen %%P-operandi"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "virheellinen %%p-arvo"
@@ -20581,29 +20581,29 @@ msgstr ""
 msgid "invalid addressing mode"
 msgstr "virheellinen %%G-tila"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, fuzzy, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "Nolla ei ole kelvollinen lausekenimiö kohdassa %C"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "virheellinen ”%%%c”:n käyttö"
@@ -20639,7 +20639,7 @@ msgid "post-increment address is not a register"
 msgstr "halutaan rekisterimuuttujan %qD osoite"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "virheellinen osoite"
 
@@ -20810,7 +20810,7 @@ msgstr "yritettiin käyttää ominaisuutta, jolle ei ole tukea: ”%s”"
 msgid "unsupported memory expression:"
 msgstr "kiintopistevakiot ovat GCC-laajennos"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 #| msgid "invalid %%r operand"
 msgid "invalid vector operand"
@@ -20866,255 +20866,255 @@ msgstr "valitsin --resource vaatii valitsimen -o"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "Tuota little-endian-koodia"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 #, fuzzy
 msgid "bad move"
 msgstr "Siirrä alas"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 #, fuzzy
 msgid "Bad 128-bit move"
 msgstr "Käytä 128-bittistä long double -tyyppiä"
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 msgid "invalid %%A value"
 msgstr "virheellinen %%J-arvo"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "virheellinen %%D-arvo"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, fuzzy, c-format
 msgid "invalid %%e value"
 msgstr "virheellinen %%E-arvo"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "virheellinen %%f-arvo"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "virheellinen %%F-arvo"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "virheellinen %%G-arvo"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "virheellinen %%j-koodi"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "virheellinen %%J-koodi"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "virheellinen %%k-arvo"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "virheellinen %%K-arvo"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "virheellinen %%O-arvo"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "virheellinen %%q-arvo"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 msgid "invalid %%t value"
 msgstr "virheellinen %%J-arvo"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "virheellinen %%T-arvo"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "virheellinen %%u-arvo"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "virheellinen %%v-arvo"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, fuzzy, c-format
 msgid "invalid %%V value"
 msgstr "virheellinen %%J-arvo"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "virheellinen %%x-arvo"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, fuzzy, c-format
 msgid "invalid %%z value"
 msgstr "virheellinen %%J-arvo"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, fuzzy, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "virheellinen vektoripermutaatiovakio"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 #, fuzzy
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "AltiVec-argumentti välitetty funktiolle, jolla ei ole prototyyppiä"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 #, fuzzy
 msgid "Could not generate addis value for fusion"
 msgstr "Älä luo #line-direktiivejä"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 #, fuzzy
 msgid "Unable to generate load/store offset for fusion"
 msgstr "%s: Tätä tiedostoa ei voitu varmuuskopioida"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 #, fuzzy
 msgid "Bad GPR fusion"
 msgstr "Virheelliset merkit"
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "virheellinen muunnos tyypistä %qT tyyppiin %qT"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "virheellinen muunnos gimple-kutsussa"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr ""
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, fuzzy, c-format
 msgid "cannot decompose address"
 msgstr "Pyydettyä osoitetta ei voi asettaa"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, fuzzy, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, fuzzy, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, fuzzy, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, fuzzy, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, fuzzy, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, fuzzy, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, fuzzy, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, fuzzy, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, fuzzy, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, fuzzy, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, fuzzy, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, fuzzy, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, fuzzy, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 msgid "vector argument passed to unprototyped function"
 msgstr "AltiVec-argumentti välitetty funktiolle, jolla ei ole prototyyppiä"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr "tyypit eroavat etumerkillisyyden osalta"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 #, fuzzy
 msgid "binary operator does not support two vector bool operands"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 #, fuzzy
 msgid "binary operator does not support vector bool operand"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 #, fuzzy
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr "kohdemuoto ei tue äärettömyyttä"
@@ -21322,12 +21322,12 @@ msgstr "({nimetön})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, fuzzy, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "”)” oli odotus"
@@ -21340,7 +21340,7 @@ msgstr "”)” oli odotus"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21349,7 +21349,7 @@ msgstr "”)” oli odotus"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, fuzzy, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "”)” oli odotus"
@@ -21357,7 +21357,7 @@ msgstr "”)” oli odotus"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, fuzzy, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "”)” oli odotus"
@@ -21369,29 +21369,29 @@ msgstr "odotettiin %<,%>, %<;%> tai %<}%>"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, fuzzy, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "”)” oli odotus"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, fuzzy, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "”)” oli odotus"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, fuzzy, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "”)” oli odotus"
@@ -21401,17 +21401,17 @@ msgstr "”)” oli odotus"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, fuzzy, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "”)” oli odotus"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, fuzzy, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "odotettiin %<,%> tai %<;%>"
@@ -21420,8 +21420,8 @@ msgstr "odotettiin %<,%> tai %<;%>"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, fuzzy, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "”)” oli odotus"
@@ -21432,17 +21432,17 @@ msgid "expected %<.%>"
 msgstr "”)” oli odotus"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, fuzzy, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "odotettiin %<(%> tai rivin loppu"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, fuzzy, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "”)” oli odotus"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, fuzzy, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "odotettiin %<,%> tai %<;%>"
@@ -21450,33 +21450,33 @@ msgstr "odotettiin %<,%> tai %<;%>"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, fuzzy, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "”)” oli odotus"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, fuzzy, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "”)” oli odotus"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "expected %<else%>"
 msgstr "odotettiin %<delete%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, fuzzy, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "odotettiin merkkijonoa ilmaisun %<#pragma message%> jälkeen"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -21484,7 +21484,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "(nimetön)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, fuzzy, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "”)” oli odotus"
@@ -21500,22 +21500,22 @@ msgstr "odotettiin %<,%> tai %<;%>"
 msgid "candidate:"
 msgstr "ehdokas 1:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 msgid "  after user-defined conversion:"
 msgstr "Ota käyttöön käyttäjän määrittelemät käskyt"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "ehdokas on:"
 msgstr[1] "ehdokkaat ovat:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "ehdokas 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "ehdokas 2:"
 
@@ -21781,7 +21781,7 @@ msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "ehdokkaat ovat:"
 
@@ -21834,52 +21834,52 @@ msgstr "muunnos tyypistä %2$qT tyypiksi %1$qT"
 msgid "source type is not polymorphic"
 msgstr "lähde ei ole osoitin"
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "unaariselle miinus-operaatiolle annettu väärä tyyppiargumentti"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "unaariselle plus-operaatiolle annettu väärä tyyppiargumentti"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "bittikomplementille annettu väärä tyyppiargumentti"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "abs-funktiolle annettu väärä tyyppiargumentti"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "konjugaatiolle annettu väärä tyyppiargumentti"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 #, fuzzy
 msgid "in argument to unary !"
 msgstr "unaariselle huutomerkille annettu väärä tyyppiargumentti"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 #, fuzzy
 msgid "no pre-increment operator for type"
 msgstr "lisäykselle annettu väärä tyyppiargumentti"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 #, fuzzy
 msgid "no post-increment operator for type"
 msgstr "lisäykselle annettu väärä tyyppiargumentti"
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 #, fuzzy
 msgid "no pre-decrement operator for type"
 msgstr "vähennykselle annettu väärä tyyppiargumentti"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 #, fuzzy
 msgid "no post-decrement operator for type"
 msgstr "vähennykselle annettu väärä tyyppiargumentti"
@@ -21967,7 +21967,7 @@ msgstr "Noudata ISO Fortran 2009 -standardia"
 msgid "Deleted feature:"
 msgstr "Poistettu ominaisuus:"
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 #, fuzzy
 msgid "array assignment"
 msgstr "virheellinen taulukkosijoitus"
@@ -22189,11 +22189,11 @@ msgstr "lohkolaite"
 msgid "implied END DO"
 msgstr "syötteen loppu"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "sijoitus"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 #, fuzzy
 msgid "pointer assignment"
 msgstr "Rajapintatäsmäämättömyys proseduuriosoitinsijoituksessa kohdassa %L: %s"
@@ -22380,56 +22380,56 @@ msgstr "pilkkuoperaattori #if:in operandissa"
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "pilkkuoperaattori #if:in operandissa"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr "Silmukkamuuttuja"
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 #, fuzzy
 msgid "iterator variable"
 msgstr "Syntaksivirhe iteraattorissa kohdassa %C"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 #, fuzzy
 msgid "Start expression in DO loop"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 #, fuzzy
 msgid "End expression in DO loop"
 msgstr "Ennenaikainen säännöllisen lausekkeen loppu"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 #, fuzzy
 msgid "Step expression in DO loop"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 #, fuzzy
 msgid "DEALLOCATE object"
 msgstr "EI OBJEKTIA\n"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 #, fuzzy
 msgid "ALLOCATE object"
 msgstr "EI OBJEKTIA\n"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 #, fuzzy
 msgid "STAT variable"
 msgstr "tiedoston tilan lukeminen epäonnistui"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 #, fuzzy
 msgid "ERRMSG variable"
 msgstr "%qD ei ole muuttuja"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 #, fuzzy
 msgid "item in READ"
 msgstr "Soita numero"
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 #, fuzzy
 msgid "ACQUIRED_LOCK variable"
 msgstr "uutta arkistoa ei voi lukita"
@@ -22439,11 +22439,11 @@ msgstr "uutta arkistoa ei voi lukita"
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "Odotettiin PARAMETER-symbolia kompleksivakiossa kohdassa %C"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, fuzzy, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
@@ -22458,12 +22458,12 @@ msgstr "liikaa argumentteja funktiolle %s %q+#D"
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "liikaa argumentteja funktiolle %s %q+#D"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 #, fuzzy
 msgid "Assignment of scalar to unallocated array"
 msgstr "virheellinen taulukkosijoitus"
@@ -22473,82 +22473,82 @@ msgstr "virheellinen taulukkosijoitus"
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr "Erisuuret merkkipituudet (%ld/%ld) merkkijonossa %s kohdassa %L"
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, fuzzy, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "liian vähän (%d) argumentteja funktiolle ”%s”"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, fuzzy, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "liian vähän (%d) argumentteja funktiolle ”%s”"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, fuzzy, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "%<__builtin_args_info%>-funktion argumentin pitää olla vakio"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 #, fuzzy
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "%<__builtin_args_info%>-funktion argumentin pitää olla vakio"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, fuzzy, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "liian vähän (%d) argumentteja funktiolle ”%s”"
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, fuzzy, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "liian vähän (%d) argumentteja funktiolle ”%s”"
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, fuzzy, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "liian vähän (%d) argumentteja funktiolle ”%s”"
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -22573,16 +22573,16 @@ msgstr "ei-paikallinen nimiö "
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 #, fuzzy
 msgid "Loop variable has been modified"
 msgstr "Tiedostoa ”%s” on muokattu sen avaamisen jälkeen."
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 #, fuzzy
 msgid "DO step value is zero"
 msgstr "Odotettiin askelarvoa iteraattorissa kohdassa %C"
@@ -22664,7 +22664,7 @@ msgid "expected boolean type"
 msgstr "odotettiin totuusarvotyyppiä"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr "odotettiin kokonaislukua"
@@ -22735,7 +22735,7 @@ msgstr "liian vähän argumentteja"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "liian monta argumenttia"
@@ -23412,7 +23412,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "Vain 1k-lohkot/vyöhykkeet ovat tuettuja"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "Syntaksivirhe %s-lauseessa kohdassa %C"
@@ -23851,8 +23851,8 @@ msgstr "%qE-attribuutti on ristiriidassa attribuutin %s kanssa"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 msgid "previous declaration here"
 msgstr "%q+D:lla on edellinen esittely täällä"
@@ -23869,7 +23869,7 @@ msgstr "%qE-attribuuttia ei huomioida %qE:lle"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "%qs-attribuuttidirektiivi jätetty huomiotta"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "attribuutille %qE annettu väärä määrä argumentteja"
@@ -23879,7 +23879,7 @@ msgstr "attribuutille %qE annettu väärä määrä argumentteja"
 msgid "expected %i or more, found %i"
 msgstr "odotettu vähintään %i, löytyi %i"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expected %i or more, found %i"
 msgid "expected %i, found %i"
@@ -23947,12 +23947,12 @@ msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -23961,7 +23961,7 @@ msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -23983,8 +23983,8 @@ msgstr "%qE-attribuuttia ei huomioida"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr "%qE-attribuuttia ei huomioida"
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "%qD:lle ei ole edellistä esittelyä"
@@ -24093,7 +24093,7 @@ msgstr "tiedoston ”%s” otsaketta ei voi lukea"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "siirros vakiomerkkijonon rajojen ulkopuolelle"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, gcc-internal-format
 msgid "%qE declared here"
 msgstr "%qE esitelty täällä"
@@ -24198,7 +24198,7 @@ msgstr "virheellinen argumentti 0 %qs:lle"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
 msgstr "epäkelpo argumentti funktiolle %<__builtin_frame_address%>"
@@ -24220,42 +24220,42 @@ msgstr "%<__builtin_longjmp%>-fuktion toisen argumentin pitää olla 1"
 msgid "target format does not support infinity"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "funktiota %<va_start%> käytetty funktiossa, jolla on kiinteä määrä argumentteja"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "väärä määrä argumentteja funktiolle %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "funktiota %<__builtin_next_arg%> kutsuttu ilman argumenttia"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "väärä määrä argumentteja funktiolle %<__builtin_next_arg%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "%<va_start%>-funktion toinen parametri ei ole viimeinen nimetty argumentti"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr ""
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
@@ -25300,12 +25300,12 @@ msgstr "%qs-attribuuttia ei huomioida %qs:lle"
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, fuzzy, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "nimike %q+D määritelty mutta käyttämättä"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, fuzzy, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "sisäkkäinen funktio %q+D esitelty mutta ei koskaan määritelty"
@@ -25854,7 +25854,7 @@ msgstr "oikealle siirron lukumäärä on negatiivinen"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "oikealle siirron lukumäärä on negatiivinen"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, fuzzy, gcc-internal-format
 msgid "%qs failed"
 msgstr "tiedoston %s avaaminen epäonnistui"
@@ -25884,19 +25884,19 @@ msgstr "Käänteinen jä_rjestys"
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 #| msgid "%Kcall to %qs declared with attribute error: %s"
 msgid "call to %qs declared with attribute error: %s"
 msgstr "%Kkutsu kohteeseen %qs esitelty attribuuttivirheellä: %s"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 #| msgid "%Kcall to %qs declared with attribute warning: %s"
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "%Kkutsu kohteeseen %qs esitelty attribuuttivaroituksella: %s"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr ""
@@ -25931,7 +25931,7 @@ msgstr "suuri kokonaisluku implisiittisesti katkaistu etumerkittömäksi tyypiks
 msgid "comparison is always %d due to width of bit-field"
 msgstr "vertailu on aina %d johtuen bittikentän leveydestä"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr ""
@@ -26094,7 +26094,7 @@ msgstr "nykyisen prosessin ryhmien noutaminen epäonnistui"
 msgid "%s signal terminated program %s"
 msgstr "%s-signaali päätti %s-ohjelman"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "tuntematon komentorivivalitsin %qs"
@@ -26360,7 +26360,7 @@ msgstr "virheellinen tiedostonumero sarakemäärityksessä: %s"
 msgid "multilib exclusions %qs is invalid"
 msgstr "%qs-attribuutin virheellinen argumentti"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, fuzzy, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "%qs-attribuutin virheellinen argumentti"
@@ -26662,22 +26662,22 @@ msgstr "%qE esitelty funktion palauttavana funktiona"
 msgid "%qD specified bound %E equals source length"
 msgstr "raja %3$E, jonka %1$G%2$qD määrittelee, on sama kuin lähteen pituus"
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "joustava taulukkojäsen ei ole structin lopussa"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr "ISO C ei tue saturoituvia tyyppejä"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr "%qs ei ole tuettu tällä kohteella"
@@ -26718,16 +26718,16 @@ msgid "function returns address of local variable"
 msgstr "funktio palauttaa osoitteen paikalliseen muuttujaan"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -26739,369 +26739,369 @@ msgstr "esitelty täällä"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr "%<nonnull%>-argumenttia %qD verrataan NULLiin"
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr "%qE saattaa kirjoittaa päättävän nul-tavun kohteen lopun yli"
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr "%qE kirjoittaa päättävän nul-tavun kohteen lopun yli"
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] "%<%.*s%>-direktiivi kirjoittaa %wu tavun %wu tavun kokoiseen alueeseen"
 msgstr[1] "%<%.*s%>-direktiivi kirjoittaa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa %wu tavu %wu tavun kokoiseen alueeseen"
 msgstr[1] "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] "%<%.*s%>-direktiivin tuloste katkeaa kirjoittaessa %wu tavu %wu tavun kokoiseen alueeseen"
 msgstr[1] "%<%.*s%>-direktiivin tuloste katkeaa kirjoittaessa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa jopa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivin tuloste katkeaa kirjoitettaessa jopa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivi kirjoittaa jopa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa kaiketi ainakin %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivin tuloste katkeaa kirjoittaessa kaiketi ainakin %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivi kirjoittanee ainakin %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa %wu–%wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivin katkeaa kirjoittaessa %wu–%wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivi kirjoittaa %wu–%wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa ainakin %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivin katkeaa kirjoittaessa ainakin %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%>-direktiivi kirjoittaa vähintään %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "%<%.*s%>-direktiivi kirjoittaa %wu tavun %wu–%wu tavun kokoiseen alueeseen"
 msgstr[1] "%<%.*s%>-direktiivi kirjoittaa %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa %wu tavu %wu–%wu tavun kokoiseen alueeseen"
 msgstr[1] "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "%<%.*s%>-direktiivin katkeaa kirjoittaessa %wu tavu %wu–%wu tavun kokoiseen alueeseen"
 msgstr[1] "%<%.*s%>-direktiivin katkeaa kirjoittaessa %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa jopa %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivin tuloste katkeaa kirjoittaessa jopa %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivi kirjoittaa jopa %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa kaiketi ainakin %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivin tuloste katkeaa kirjoittaessa kaiketi ainakin %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivi kirjoittanee ainakin %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa %wu–%wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivin tuloste katkeaa kirjoittaessa %wu–%wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivi kirjoittaa %wu–%wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivin tuloste saattaa katketa kirjoittaessa ainakin %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivin tuloste katkeaa kirjoittaessa ainakin %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%>-direktiivi kirjoittaa ainakin %wu tavua %wu–%wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, fuzzy, gcc-internal-format
 #| msgid "%G%<%.*s%> directive argument is null"
 msgid "%<%.*s%> directive argument is null"
 msgstr "%G%<%.*s%>-direktiivin argumentti on null"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr "%<%.*s%>-direktiivin %wu tavun tuloste ylittää vaaditun vähimmäiskoon 4095"
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr "%<%.*s%>-direktiivin %wu–%wu tavun tuloste ylittää vaaditun vähimmäiskoon 4095"
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr "%<%.*s%>-direktiivin %wu–%wu tavun tuloste saattaa ylittää vaaditun vähimmäiskoon 4095"
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, fuzzy, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr "%<%.*s%>-direktiivi kirjoittaa jopa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, fuzzy, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr "%<%.*s%>-direktiivi kirjoittaa jopa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, fuzzy, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "%<%.*s%>-direktiivi kirjoittaa jopa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, fuzzy, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "%<%.*s%>-direktiivi kirjoittaa jopa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, fuzzy, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr "%<%.*s%>-direktiivi kirjoittaa jopa %wu tavua %wu tavun kokoiseen alueeseen"
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr "%<%.*s%>-direktiivin argumentti ei ole nul-päätteinen merkkijono"
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, fuzzy, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr "%qD esitelty ei-parametrina"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] "oletetaan direktiivin tuotos %wu-tavuiseksi"
 msgstr[1] "oletetaan direktiivin tuotos %wu-tavuiseksi"
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "Funktion %s argumentti kohdassa %L on negatiivinen"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr "direktiivin argumentti välillä [%E, %E]"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr "käytetään väliä [%E, %E] direktiivin argumentille"
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] "%qE tulosti %wu tavun %wu tavun kokoiseen kohteeseen"
 msgstr[1] "%qE tulosti %wu tavua %wu tavun kokoiseen kohteeseen"
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr "%qE tulosti %wu–%wu tavua %wu tavun kokoiseen kohteeseen"
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr "%qE tulosti vähintään %wu tavua (oletetaan %wu) %wu tavun kokoiseen kohteeseen"
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr "%qE tulosti ainakin %wu tavua %wu tavun kokoiseen kohteeseen"
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] "%qE tulosti %wu tavun"
 msgstr[1] "%qE tulosti %wu tavua"
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr "%qE tulosti %wu–%wu tavua"
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr "%qE tulosti ainakin %wu tavua (oletetaan %wu)"
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr "%qE tulosti ainakin %wu tavua"
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr "%<%.*s%>-direktiivin leveys sallitun välin ulkopuolella"
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr "%<%.*s%>-direktiivin tarkkuus sallitun välin ulkopuolella"
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 #, fuzzy
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] "%qE esitelty funktion palauttavana funktiona"
 msgstr[1] "%qE esitelty funktion palauttavana funktiona"
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 #, fuzzy
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] "%qE tulosti %wu tavun %wu tavun kokoiseen kohteeseen"
 msgstr[1] "%qE tulosti %wu tavua %wu tavun kokoiseen kohteeseen"
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr "määritelty raja %wu ylittää olion enimmäiskoon %wu"
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr "määritelty raja %wu ylittää %<INT_MAX%>:in"
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, fuzzy, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr "Funktion %s argumentti kohdassa %L on negatiivinen"
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 msgid "null destination pointer"
 msgstr "nollaosoitin"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, fuzzy, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr "%qE esitelty funktion palauttavana funktiona"
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 msgid "null format string"
 msgstr "%s muotoilumerkkijonossa kohdassa %L"
@@ -27845,12 +27845,12 @@ msgstr "epäkelpo osoitintila %qs"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD esitelty täällä"
@@ -28615,7 +28615,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "virheellinen %<auto%>:n käyttö muunnosoperaattorissa"
@@ -28959,17 +28959,17 @@ msgstr "%J%qD esitelty avoimeksi määrittelyn jälkeen"
 msgid "mismatching definition"
 msgstr "puuttuva määrittely"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, fuzzy, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr "virheellinen muunnos gimple-kutsussa"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -30036,72 +30036,72 @@ msgstr "%s: Virhe kirjoitettaessa %s\n"
 msgid "error closing optimization records %qs"
 msgstr "moduulienvälisiä optimointeja ei ole toteutettu C++:lle"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "komentorivivalitsin %qs on kelvollinen kohteelle %s, mutta ei kohteelle %s"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, fuzzy, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "polku puuttuu %qs:n jälkeen"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "%q+D:n ensimmäisen argumentin pitäisi olla %<int%>"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "%q+D:n ensimmäisen argumentin pitäisi olla %<int%>"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "  uid = %d, gid = %d, oikeudet = 0%o.\n"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 msgid "invalid argument in option %qs"
 msgstr "argumentti %qd ei ole vakio"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, fuzzy, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr "oletusargumentti määritelty lambda-parametrille"
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, fuzzy, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "valitsimia -mcorea ja -mcoreb ei voi käyttää yhdessä"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, fuzzy, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "tuntematon komentorivivalitsin %qs"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "Kelvolliset argumentit:"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "Kelvolliset argumentit:"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "valitsin %qs ei ole enää tuettu"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is bigger than %d"
 msgstr "%Jei voi asettaa %qE-attribuuttia määrittelyn jälkeen"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, fuzzy, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr "vääränmuotoinen COLLECT_GCC_OPTIONS"
@@ -30175,8 +30175,8 @@ msgstr "%q+D:n ensimmäisen argumentin pitäisi olla %<int%>"
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, fuzzy, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "Muodostin %qs"
@@ -30884,7 +30884,7 @@ msgstr "sisäkkäisessä funktiossa käytetty globaalia rekisterimuuttujaa %qD"
 msgid "register of %qD used for multiple global register variables"
 msgstr "sisäkkäisessä funktiossa käytetty globaalia rekisterimuuttujaa %qD"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, fuzzy, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "nimellä %qD"
@@ -31335,42 +31335,42 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "%Jlohkoattribuutteja ei tueta tälle kohteelle"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "%qs ei ole tuettu tällä kohteella"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, fuzzy, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "ISO C kieltää sisäkkäiset funktiot"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, fuzzy, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "%Jlohkoattribuutteja ei tueta tälle kohteelle"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, fuzzy, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "ISO C kieltää sisäkkäiset funktiot"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, fuzzy, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "ISO C kieltää sisäkkäiset funktiot"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "%Jlohkoattribuutteja ei tueta tälle kohteelle"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "%Jlohkoattribuutteja ei tueta tälle kohteelle"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr "#pragma extern_prefix ei ole tuettu tällä kohteella"
@@ -32498,82 +32498,82 @@ msgstr "nimettömällä kentällä on vaillinainen tyyppi"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "nimettömällä kentällä on vaillinainen tyyppi"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "funktiota %q+F ei voi koskaan kopioida, koska se vastaanottaa ei-paikallisen goto-käskyn"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "funktiota %q+F ei voi koskaan kopioida, koska se tallentaa paikallisen nimiön osoitteen staattiseen muuttujaan"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "%Jfunktio %qF ei voi koskaan olla avoin, koska se käyttää avoimille funktioille sopimattomia attribuutteja"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "%Jfunktio %qF ei voi koskaan olla avoin, koska ne on poistettu käytöstä -fno-inline:lla"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "%Jfunktio %qF ei voi koskaan olla avoin, koska se käyttää avoimille funktioille sopimattomia attribuutteja"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "%Jfunktio %qF ei voi koskaan olla avoin, koska se käyttää avoimille funktioille sopimattomia attribuutteja"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "funktiota %q+F ei voi koskaan kopioida, koska se vastaanottaa ei-paikallisen goto-käskyn"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "%Jfunktio %qF ei voi koskaan olla avoin, koska se käyttää avoimille funktioille sopimattomia attribuutteja"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "%Jfunktio %qF ei voi koskaan olla avoin, koska ne on poistettu käytöstä -fno-inline:lla"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "%Jfunktio %qF ei voi koskaan olla avoin, koska se käyttää avoimille funktioille sopimattomia attribuutteja"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "%Jfunktio %qF ei voi koskaan olla avoin, koska ne on poistettu käytöstä -fno-inline:lla"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "%Jfunktio %qF ei voi koskaan olla avoin, koska se käyttää avoimille funktioille sopimattomia attribuutteja"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "%J%qD esitelty turhaan uudestaan"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "kutsuttu täältä"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 msgid "called from this function"
 msgstr "kutsuttu täältä"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, fuzzy, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "%J%qD esitelty turhaan uudestaan"
@@ -32628,27 +32628,27 @@ msgstr "epäkelpo alkiotyyppi attribuutille %qs"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "virheellinen %<auto%>:n käyttö muunnosoperaattorissa"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "Virheellinen vähimmäisargumenttimäärä (%d) funktiolle %s"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "muuttuja %qD esitelty %<inline%>:ksi"
@@ -32853,7 +32853,7 @@ msgstr "%qE:a ei ole alustettu"
 msgid "%qs may be used uninitialized"
 msgstr "%qD saattaa tulla käytetyksi alustamattomana tässä funktiossa"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD esiteltiin täällä"
@@ -33084,7 +33084,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -33099,126 +33099,126 @@ msgstr "alustusalkio ei ole vakio"
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr "alustusalkio ei ole vakio"
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, fuzzy, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "------ Semaforitaulukot --------\n"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "funktion paluuarvon tyyppi ei voi olla funktio"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, fuzzy, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, fuzzy, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, fuzzy, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qD on vanhentunut: %s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qD on vanhentunut"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE on vanhentunut: %s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%qE on vanhentunut"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "tyyppi on vanhentunut: %s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "tyyppi on vanhentunut"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable: %s"
 msgstr "%qD ei ole muuttuja"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable"
 msgstr "%qD ei ole muuttuja"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable: %s"
 msgstr "%qD ei ole muuttuja"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable"
 msgstr "%qD ei ole muuttuja"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr "tiedoston %s avaaminen epäonnistui"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "type is unavailable"
@@ -33244,262 +33244,262 @@ msgstr "%qD ei ole muuttuja"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr "Tiedoston tyyppi eroaa"
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, fuzzy, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr "tyypillä %qT ei ole tunnettua kokoa"
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, fuzzy, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr "tyypillä %qT ei ole tunnettua kokoa"
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, fuzzy, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr "tyypillä %qT ei ole tunnettua kokoa"
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, fuzzy, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr "taulukon tyypillä on vaillinainen alkiotyyppi"
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, fuzzy, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr "taulukon tyypillä on vaillinainen alkiotyyppi"
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, fuzzy, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, fuzzy, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, fuzzy, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, fuzzy, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr "taulukon tyypillä on vaillinainen alkiotyyppi"
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, fuzzy, gcc-internal-format
 msgid "first mismatch is field"
 msgstr "tyyppitäsmäämättömyys taulukkoviitteessä"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, fuzzy, gcc-internal-format
 msgid "and field"
 msgstr "kentän leveys"
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, fuzzy, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, fuzzy, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, fuzzy, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, fuzzy, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "funktiokutsu epäsopivan tyypin läpi"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type %s is not an opaque type"
 msgstr "%qT ei ole malli"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type %s is not with opaque mode"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, fuzzy, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, fuzzy, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr "tyypillä %qT ei ole tunnettua kokoa"
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, fuzzy, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, fuzzy, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr "tyypillä %qT ei ole tunnettua kokoa"
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 msgid "main variant is not defined"
 msgstr "”%s” on määrittelemättä"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr "tyyppitäsmäämättömyys komponenttiviitteessä"
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr "tyyppitäsmäämättömyys komponenttiviitteessä"
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr "funktiokutsu epäsopivan tyypin läpi"
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr "funktiokutsu epäsopivan tyypin läpi"
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr "funktiokutsu epäsopivan tyypin läpi"
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr "ei voi muuntaa osoitintyypiksi"
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr "tyyppitäsmäämättömyys komponenttiviitteessä"
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr "tyyppitäsmäämättömyys komponenttiviitteessä"
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr "tyyppitäsmäämättömyys komponenttiviitteessä"
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr "funktiokutsu epäsopivan tyypin läpi"
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr "funktiokutsu epäsopivan tyypin läpi"
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr "taulukon %qE koko ei ole kokonaislukutyyppiä"
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr "NULLin muunnos epäosoitintyypiksi"
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr "NULLin muunnos epäosoitintyypiksi"
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "taulukkoindeksi alustimessa ei ole kokonaislukutyyppinen"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr "NULLin muunnos epäosoitintyypiksi"
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr "funktiokutsu epäsopivan tyypin läpi"
@@ -33715,7 +33715,7 @@ msgstr "weakref ei ole tuettu tässä konfiguraatiossa"
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "weakref ei ole tuettu tässä konfiguraatiossa"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -33920,7 +33920,7 @@ msgstr "%qE-attribuuttia ei huomioida koska %qT on jo määritelty"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "%qE-attribuuttia ei huomioida koska %qT on jo määritelty"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "%qE-attribuutti vaikuttaa vain julkisiin objekteihin"
@@ -34103,7 +34103,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "osoitealueattribuuttia ei voi määritellä paikallisille muuttujille"
@@ -34418,7 +34418,7 @@ msgstr "%qD ei ole %qD:n jäsen"
 msgid "%qE argument is not a function"
 msgstr "%qE esitelty funktion palauttavana funktiona"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, fuzzy, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "odotettiin merkkijonoa ilmaisun %<#pragma message%> jälkeen"
@@ -34926,7 +34926,7 @@ msgstr "ISO C ei salli ylimääräisiä %<;%>-merkkejä funktioiden ulkopuolella
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "ISO C ei salli ylimääräisiä %<;%>-merkkejä funktioiden ulkopuolella"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "epäkelpo %qs:n soveltaminen tyhjään tyyppiin"
@@ -35057,17 +35057,17 @@ msgstr "oletusargumentti määritelty lambda-parametrille"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "oletusargumentti määritelty lambda-parametrille"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "liian vähän argumentteja funktiolle %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -35191,166 +35191,166 @@ msgstr "bittikenttätietueen jäsenestä %qs yritettiin ottaa osoite"
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "taulukon koko on liian suuri"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, fuzzy, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "funktiolle %2$qE annettu argumentin %1$d tyyppi on yhteensopimaton"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "argumentin %d antaminen funktiolle %qE tekee kokonaisluvusta osoittimen ilman tyyppimuunnosta"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr "argumentin <%s>:lle on oltava yksittäinen merkki"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "liian monta argumenttia funktiolle %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "annettu yhteensopimatonta osoitintyyppiä oleva %d. argumentti funktiolle %qE"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "annettu yhteensopimatonta osoitintyyppiä oleva %d. argumentti funktiolle %qE"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "funktiolle %2$qE annettu argumentin %1$d tyyppi on yhteensopimaton"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "%d. argumentti funktiolle %qE hylkää kohdeosoitintyypin %qv-määritteen"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "%d. argumentti funktiolle %qE hylkää kohdeosoitintyypin %qv-määritteen"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, fuzzy, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "funktiolle %2$qE annettu argumentin %1$d tyyppi on yhteensopimaton"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, fuzzy, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "funktiolle %2$qE annettu argumentin %1$d tyyppi on yhteensopimaton"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, fuzzy, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "Arvo sallitun välin ulkopuolella."
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, fuzzy, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "muunnos tyypistä %qT tyyppiin %qT on moniselitteinen"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 msgid "size of array %qE is not a constant expression"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 msgid "size of array is not a constant expression"
 msgstr "taulukon koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array %qE is negative"
 msgstr "taulukon %qE koko on negatiivinen"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array is negative"
 msgstr "taulukon koko on negatiivinen"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr "paikallisten objektien kokonaiskoko on liian suuri"
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr "paikallisten objektien kokonaiskoko on liian suuri"
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "paikallisten objektien kokonaiskoko on liian suuri"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, fuzzy, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr "paikallisten objektien kokonaiskoko on liian suuri"
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -35989,7 +35989,7 @@ msgstr "kokonaislukuvakio on liian suuri tyypilleen"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "kokonaislukuvakio on liian suuri tyypilleen"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "kohteen int-tyyppi on kapeampi kuin kohteen char-tyyppi"
@@ -36069,7 +36069,7 @@ msgstr "virheellinen loppuliite ”%.*s” liukulukuvakiolla"
 msgid "traditional C rejects string constant concatenation"
 msgstr "perinteinen C ei salli merkkijonovakioiden katenointia"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -36124,7 +36124,7 @@ msgstr "%<void%> vain parametrina ei ole oikeutettu"
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
@@ -36139,17 +36139,17 @@ msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 msgid "%qE is not initialized"
 msgstr "%qE:a ei ole alustettu"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, fuzzy, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "’(’ puuttuu predikaatin jäljestä"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, fuzzy, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "Muotoillun tulosteen hallinta:"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "puuttuva kasvatuslauseke"
@@ -36159,7 +36159,7 @@ msgstr "puuttuva kasvatuslauseke"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "virheellinen kasvatuslauseke"
@@ -36246,7 +36246,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -36256,7 +36256,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qD ei ole funktioargumentti"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, fuzzy, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr "bittikentän %qs leveys on nolla"
@@ -36850,7 +36850,7 @@ msgid "wrong type argument to %s"
 msgstr "abs-funktiolle annettu väärä tyyppiargumentti"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -37782,35 +37782,35 @@ msgstr "tyyppien %qT ja %qT välinen vertailu"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -38020,117 +38020,117 @@ msgstr "  uid = %d, gid = %d, oikeudet = 0%o.\n"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr "%s %qs"
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr "valitsin -mcpu=%s on ristiriidassa valitsimen -march=%s kanssa"
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr "%s %qs"
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr "luokkanimeä ei ole annettu %qs:n kanssa"
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr "valitsin -mcpu=%s on ristiriidassa valitsimen -march=%s kanssa"
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr "%s %qs"
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr "Älä varoita Microsoft-laajennosten käytöstä"
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "valitsin -mcpu=%s on ristiriidassa valitsimen -march=%s kanssa"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "valitsin -mcpu=%s on ristiriidassa valitsimen -march=%s kanssa"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr "%s %qs"
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "%s %qs"
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr "%s %qs"
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, fuzzy, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%<%s%> on tuntematon"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -38529,12 +38529,12 @@ msgstr "odotettiin 64-bittistä osoitetta, mutta argumentti 1 on %d-bittinen"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "odotettiin 64-bittistä osoitetta, mutta argumentti 2 on %d-bittinen"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC optimize%> ei ole merkkijono eikä luku"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr "tuntematon #pragma GCC coprocessor %E"
@@ -39139,7 +39139,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -39219,12 +39219,12 @@ msgid "unknown tuning option (%s)"
 msgstr "tuntematon valitsin -%s"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -39235,7 +39235,7 @@ msgid "specify a system register with a small string length"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "Funktio %qs"
@@ -39415,9 +39415,9 @@ msgstr "%s ei tue muotoilua %<%%%s%c%> %s"
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "kohde ”%s” ei täsmää kohdehahmon kanssa"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "%qE-attribuutti tarvitsee merkkijonovakioargumentin"
@@ -39469,18 +39469,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "Varoita ylikuormitetuista virtuaalifunktioiden nimistä"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "#pragma redefine_extname ei ole tuettu tällä kohteella"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -39493,8 +39493,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr "operandinumero on arvoalueen ulkopuolella muotoilussa"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 msgid "unsupported simdlen %wd"
 msgstr "tuntematon värimoodi"
@@ -39504,7 +39504,7 @@ msgstr "tuntematon värimoodi"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "%<operator delete%>:n on palautettava tyyppi %qT"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, fuzzy, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr "%<operator delete%>:n on palautettava tyyppi %qT"
@@ -39514,7 +39514,7 @@ msgstr "%<operator delete%>:n on palautettava tyyppi %qT"
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
@@ -39604,8 +39604,8 @@ msgstr ""
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "virheellinen aikakatkaisuarvo: %s"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, fuzzy, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "<sisäänrakennettu>"
@@ -39725,18 +39725,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "%qE-attribuutti sallii vain kokonaislukuvakioargumentin"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -39850,7 +39850,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "%qE-attribuutti tarvitsee merkkijonovakioargumentin"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "%qE-attribuutti sallii vain kokonaislukuvakioargumentin"
@@ -39870,23 +39870,23 @@ msgstr "%qE-attribuutti pätee vain funktiotyyppeihin"
 msgid "argument of %qE attribute ignored"
 msgstr "%qE-attribuutti tarvitsee merkkijonovakioargumentin"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "%qE-attribuutti pätee vain muuttujiin"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, fuzzy, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr "taulukon indeksin tyyppi on %<char%>"
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, fuzzy, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr "Funktio %qs"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr "virheellinen lvalue asm-tulosteessa %d"
@@ -40133,7 +40133,7 @@ msgstr "AAPCS ei tue valitsinta -mcaller-super-interworking"
 msgid "target CPU does not support unaligned accesses"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 msgid "This architecture does not support branch protection instructions"
 msgstr "kohdemuoto ei tue äärettömyyttä"
@@ -40183,7 +40183,7 @@ msgstr ""
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "Muodostin %qs"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr "koodimalli %s ei tue PIC-tilaa"
@@ -40289,7 +40289,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr "%qD:n paluuarvoa ei huomioida, esitelty attribuutilla warn_unused_result"
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -40329,42 +40329,42 @@ msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "%qE-attribuutti pätee vain funktiotyyppeihin"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, fuzzy, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr "operandinumero on arvoalueen ulkopuolella muotoilussa"
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr ""
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, fuzzy, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr "%qs attribuuttia ei huomioida"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr ""
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, fuzzy, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "keskeytyskäsittelijät eivät voi olla MIPS16-funktioita"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr "epäkelpo vektorityyppi attribuutille %qs"
@@ -40372,22 +40372,22 @@ msgstr "epäkelpo vektorityyppi attribuutille %qs"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, fuzzy, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "epäkelpo vektorityyppi attribuutille %qE"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr "<tuntematon>"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
@@ -40441,158 +40441,158 @@ msgstr "muunnos ”%s” <-> ”%s” ei ole tuettu"
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "Funktio %qs:"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, gcc-internal-format
 msgid "%<-fpic%> is not supported"
 msgstr "%<-fPIC%> ei ole tuettu"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
 msgstr "%<-fPIC%> ei ole tuettu"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, gcc-internal-format
 msgid "%<-fpie%> is not supported"
 msgstr "%<-fpie%> ei ole tuettu"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr "%<-fPIE%> ei ole tuettu"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "valitsimet %s ja %s ovat toisensa poissulkevat"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "%qD:lla ei voi olla oletusargumentteja"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "funktion paluuarvon tyyppi ei voi olla funktio"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr ""
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr ""
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, fuzzy, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "%J%qD:n esittely varjostaa parametria"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "%qE-attribuutti soveltuu vain muuttujiin ja funktioihin"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "%Jlohkoattribuutteja ei tueta tälle kohteelle"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "%qE-attribuuttia ei huomioida"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, fuzzy, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr "%qE-attribuutti tarvitsee prototyyppejä, joilla nimettyjä argumentteja"
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "%qE-attribuuttia ei huomioida ei-luokkatyypeille"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, fuzzy, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, fuzzy, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, fuzzy, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr "ehtolausekkeessa on osoitintyyppiristiriita"
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, fuzzy, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr "ehtolausekkeessa on osoitintyyppiristiriita"
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "muuttuvakokoista objektia %qD ei voi alustaa"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, fuzzy, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "%J%qD:n esittely varjostaa parametria"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "%qD:a käytetään alustamattomana tässä funktiossa"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "muuttujalla %qD on alustin, mutta vaillinainen tyyppi"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "muuttujalla %qD on alustin, mutta vaillinainen tyyppi"
@@ -40601,42 +40601,42 @@ msgstr "muuttujalla %qD on alustin, mutta vaillinainen tyyppi"
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "muuttuvakokoista objektia %qD ei voi alustaa"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%q+D:n määritteet %qs ja %qs ovat yhteensopimattomat"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, fuzzy, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "muunnos merkistöstä ”%s” ei ole tuettu"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, fuzzy, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "muunnos tyypistä %qT tyyppiin %qT"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "%s odottaa käännösaikaista kokonaislukuvakiota"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%qs odottaa vakioargumenttia"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr "pyöristystulos on aina 0"
@@ -40773,7 +40773,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "#pragma redefine_extname ei ole tuettu tällä kohteella"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, fuzzy, gcc-internal-format
@@ -41400,8 +41400,8 @@ msgstr "puhdistusargumentti ei ole tunniste"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "koodimalli %s ei tue PIC-tilaa"
@@ -41469,255 +41469,255 @@ msgstr "epäkelpo osoitintila %qs"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr "Tuntematon argumenttiluettelofunktio kohdassa %L"
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, fuzzy, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "64-bittinen ABI ei ole tuettu ESA/390-tilassa"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, fuzzy, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, fuzzy, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "%Jkohdistusta ei voi määrittää %qD:lle"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "%Jkohdistusta ei voi määrittää %qD:lle"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "%Jkohdistusta ei voi määrittää %qD:lle"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "%Jkohdistusta ei voi määrittää %qD:lle"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, fuzzy, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "%Jkohdistusta ei voi määrittää %qD:lle"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, fuzzy, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "valitsin %qs ei ole enää tuettu"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "#pragma redefine_extname ei ole tuettu tällä kohteella"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "#pragma redefine_extname ei ole tuettu tällä kohteella"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "__COUNTER__ lavennettu direktiivin sisällä valitsimella -fdirectives-only"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "koodimalli %s ei tue PIC-tilaa"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "weakref ei ole tuettu tässä konfiguraatiossa"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr ""
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, fuzzy, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "virheellinen aikakatkaisuarvo: %s"
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, fuzzy, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "virheellinen aikakatkaisuarvo: %s"
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, fuzzy, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "virheellinen aikakatkaisuarvo: %s"
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, fuzzy, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "virheellinen aikakatkaisuarvo: %s"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, fuzzy, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "virheellinen aikakatkaisuarvo: %s"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "virheellinen aikakatkaisuarvo: %s"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "Kelvolliset argumentit:"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr "Kelvolliset argumentit:"
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "Kelvolliset argumentit:"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "Kelvolliset argumentit:"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "virheellinen aikakatkaisuarvo: %s"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "virheellinen aikakatkaisuarvo: %s"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "Kelvolliset argumentit:"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr "Kelvolliset argumentit:"
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "Kelvolliset argumentit:"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "Kelvolliset argumentit:"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "64-bittinen ABI ei ole tuettu ESA/390-tilassa"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "64-bittinen ABI ei ole tuettu ESA/390-tilassa"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "  uid = %d, gid = %d, oikeudet = 0%o.\n"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, fuzzy, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "64-bittinen ABI ei ole tuettu ESA/390-tilassa"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "64-bittinen ABI ei ole tuettu ESA/390-tilassa"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -41725,290 +41725,290 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "  uid = %d, gid = %d, oikeudet = 0%o.\n"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "  uid = %d, gid = %d, oikeudet = 0%o.\n"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "moduulienvälisiä optimointeja ei ole toteutettu C++:lle"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "SSE-käskykanta poistettu käytöstä, käytetään 387-aritmetiikkaa"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "387-käskykanta poistettu käytöstä, käytetään SSE-aritmetiikkaa"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, fuzzy, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr "%qE-attribuutti pätee vain funktioihin"
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, fuzzy, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr "”%s”-liitännäinen on yhteensopiva."
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "tuntematon valitsin -%s"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr "”%s” ei ole kelvollinen esikääntäjän valitsin"
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr "”%s” ei ole kelvollinen esikääntäjän valitsin"
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr "”%s” ei ole kelvollinen esikääntäjän valitsin"
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr "attribuutit stdcall ja cdecl eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr "attribuutit fastcall ja stdcall eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, fuzzy, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "valitsimet -l ja -s eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, fuzzy, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr "valitsimet -l ja -s eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, fuzzy, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "valitsimet -l ja -s eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, fuzzy, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr "valitsimet -l ja -s eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, fuzzy, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr "epäkelpo osoitintila %qs"
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, fuzzy, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "epäkelpo osoitintila %qs"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, fuzzy, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "epäkelpo osoitintila %qs"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, fuzzy, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "attribuutit fastcall ja cdecl eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, fuzzy, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "attribuutit fastcall ja stdcall eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "%qE-attribuutti tarvitsee kokonaislukuvakioargumentin"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "%Jei voi asettaa %qE-attribuuttia määrittelyn jälkeen"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "attribuutit fastcall ja cdecl eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "attribuutit fastcall ja stdcall eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, fuzzy, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "attribuutit fastcall ja cdecl eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "attribuutit stdcall ja cdecl eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "attribuutit stdcall ja fastcall eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, fuzzy, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "attribuutit fastcall ja stdcall eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, fuzzy, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "attribuutit fastcall ja cdecl eivät ole yhteensopivia"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "%qE-attribuuttia ei huomioida ei-luokkatyypeille"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, fuzzy, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "%qE-attribuuttia ei huomioida"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "%qE-attribuutti pätee vain funktioihin"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "näkyvyysargumentti ei ole merkkijono"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "%qE-attribuutti tarvitsee merkkijonovakioargumentin"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "%qE-attribuutti tarvitsee merkkijonovakioargumentin"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, fuzzy, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr "keskeytyskäsittelijät eivät voi olla MIPS16-funktioita"
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "keskeytyskäsittelijät eivät voi olla MIPS16-funktioita"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, fuzzy, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr "keskeytyskäsittelijät eivät voi olla MIPS16-funktioita"
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr "keskeytyskäsittelijät eivät voi olla MIPS16-funktioita"
@@ -42199,46 +42199,46 @@ msgstr "fr30_print_operand: tuntematon koodi"
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, fuzzy, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr "%J%qD:n lohko on ristiriidassa edellisen esittelyn kanssa"
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, gcc-internal-format
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr ""
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, fuzzy, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "valitsin -mmultiple ei ole tuettu little-endian-järjestelmissä"
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, fuzzy, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr "Tuntematon arkkitehtuuri ”%s”"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, fuzzy, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
@@ -42260,8 +42260,8 @@ msgstr "ei-staattista datajäsentä %q+D käytetty virheellisesti"
 msgid "malformed %<#pragma builtin%>"
 msgstr "vääränmuotoinen #pragma builtin"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, fuzzy, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "%qs-attribuutin virheellinen argumentti"
@@ -42319,12 +42319,12 @@ msgstr "Tuntematon tiheys: ”%c”"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "PRINT_OPERAND nollaosoitin"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "%<__builtin_expect%>-funktion toisen argumentin pitää olla vakio"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "virheellinen sisäinen makro ”%s”"
@@ -42450,17 +42450,17 @@ msgstr "%qD ei ole %qD:n jäsen"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%Hprototyypin esittely"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "osoitealueattribuuttia ei voi määritellä paikallisille muuttujille"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "osoitealueattribuuttia ei voi määritellä paikallisille muuttujille"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 msgid "multiple %qE attribute"
 msgstr "Kaksoiskappele %s attribuutti kohdassa %L"
@@ -42563,12 +42563,12 @@ msgstr "%Javoimelle funktiolle %qD annettu attribuutti noinline"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr ""
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, fuzzy, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "dwarfin versio %d ei ole tuettu"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not supported on this target"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
@@ -42609,7 +42609,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr ""
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "%qE-attribuutti tarvitsee merkkijonovakioargumentin"
@@ -42649,132 +42649,132 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "%qE-attribuutti tarvitsee merkkijonovakioargumentin"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, fuzzy, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "funktiota %<main%> ei voi määrittää avoimeksi"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr ""
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr "keskeytyskäsittelijät eivät voi olla MIPS16-funktioita"
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "weakref ei ole tuettu tässä konfiguraatiossa"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, fuzzy, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "koodimalli %s ei tue PIC-tilaa"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, fuzzy, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "Tuota MIPS16-koodia"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, fuzzy, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr "Tuota MIPS16-koodia"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "yritettiin käyttää ominaisuutta, jolle ei ole tukea: ”%s”"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr ""
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%s %qs"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "Käytä 32-bittistä ABIa"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "64-bittinen ABI ei ole tuettu ESA/390-tilassa"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "Käytä 32-bittistä ABIa"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "%s ei tue pituusmäärettä %qs %s"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "Valitsinta --acls voi käyttää vain POSIX-arkistoille"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "Valitsinta --acls voi käyttää vain POSIX-arkistoille"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, fuzzy, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "Valitsinta --acls voi käyttää vain POSIX-arkistoille"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "valitsin -mcpu=%s on ristiriidassa valitsimen -march=%s kanssa"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, fuzzy, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr "-m64 vaatii PowerPC64-suorittimen"
@@ -42784,117 +42784,117 @@ msgstr "-m64 vaatii PowerPC64-suorittimen"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, fuzzy, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "Jäsenfunktio %qs"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, fuzzy, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr "yritettiin käyttää ominaisuutta, jolle ei ole tukea: ”%s”"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr "yritettiin käyttää ominaisuutta, jolle ei ole tukea: ”%s”"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, fuzzy, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, fuzzy, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, fuzzy, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr "bittikentän %qD osoitetta ei voi ottaa"
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, fuzzy, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "-m64 vaatii PowerPC64-suorittimen"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, fuzzy, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "Muodostin %qs"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, fuzzy, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr "-Wformat-y2k jätetty huomiotta ilman valitsinta -Wformat"
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, fuzzy, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "Käytä AltiVec-käskyjä"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, fuzzy, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr "-Wformat-y2k jätetty huomiotta ilman valitsinta -Wformat"
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, fuzzy, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr "-Wformat-y2k jätetty huomiotta ilman valitsinta -Wformat"
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, fuzzy, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "Käytä AltiVec-käskyjä"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, fuzzy, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "Ota käyttöön funktioprofilointi"
@@ -43767,57 +43767,57 @@ msgstr "%<#pragma GCC optimize%> ei ole merkkijono eikä luku"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "tuntematon #pragma GCC coprocessor %E"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "%Jlohkoattribuutteja ei tueta tälle kohteelle"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target()%> attribute"
 msgstr "Väärin muotoiltu kohdekohtainen muuttujamäärittely"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "%J%qD sallii vain nolla tai kaksi argumenttia"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, fuzzy, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
 msgstr "Väärin muotoiltu kohdekohtainen muuttujamäärittely"
@@ -43880,173 +43880,193 @@ msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 msgid "capture by copy of RVV type %qT"
 msgstr "%2$qD:n parametrilla %1$P on vaillinainen tyyppi %3$qT"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
 msgstr "päättämätön kutsu funktioon ”%s”: puuttuva ”%c”"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "tuntematon cc_attr-arvo"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr "Älä varoita Microsoft-laajennosten käytöstä"
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr ""
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "AltiVec-argumentti välitetty funktiolle, jolla ei ole prototyyppiä"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr "Käytä 64-bittistä ABIa"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr "Käytä 64-bittistä ABIa"
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr "Käytä 64-bittistä ABIa"
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr "Käytä 64-bittistä ABIa"
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr "Käytä 64-bittistä ABIa"
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, fuzzy, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "näkyvyysargumentti ei ole merkkijono"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires an integer constant argument"
 msgid "%qs requires an integer constant"
 msgstr "%qE-attribuutti tarvitsee kokonaislukuvakioargumentin"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 msgid "code model %qs with %qs"
 msgstr "koodimalli %s ei tue PIC-tilaa"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, fuzzy, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr "-mvsx ja -mpaired ovat yhteensopimattomat"
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "  uid = %d, gid = %d, oikeudet = 0%o.\n"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "luokkanimeä ei ole annettu %qs:n kanssa"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "Funktio %qs"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr "%qD:lla ei voi olla oletusargumentteja"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -44297,33 +44317,33 @@ msgstr "%J%qD sallii vain nolla tai kaksi argumenttia"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "%J%qD sallii vain nolla tai kaksi argumenttia"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards %qv qualifier from pointer target type"
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "%d. argumentti funktiolle %qE hylkää kohdeosoitintyypin %qv-määritteen"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, fuzzy, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "virheellinen parametri %qs"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, fuzzy, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 msgid "%qs is not supported in this compiler configuration"
 msgstr "weakref ei ole tuettu tässä konfiguraatiossa"
@@ -44363,30 +44383,22 @@ msgstr "%qD:a käytetään alustamattomana tässä funktiossa"
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr ""
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, fuzzy, gcc-internal-format
-#| msgid "Use the ELFv2 ABI."
-msgid "%qs requires the ELFv2 ABI"
-msgstr "Käytä ELFv2-ABIa."
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "pinokehys on liian suuri"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "liian monta argumenttia funktiolle %qE"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr "%qs käyttää rekisteriä r29"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, fuzzy, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr "#pragma extern_prefix ei ole tuettu tällä kohteella"
@@ -44511,107 +44523,117 @@ msgstr "luokkanimeä ei ole annettu %qs:n kanssa"
 msgid "unknown option for %<%s=%s%>"
 msgstr "tuntematon valitsin -%s"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, fuzzy, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "Vanhentunut. Tämä valitsin ei vaikuta mihinkään"
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, fuzzy, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "64-bittinen ABI ei ole tuettu ESA/390-tilassa"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, fuzzy, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "bittikentän %qD osoitetta ei voi ottaa"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, fuzzy, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "%<long long%> virheellinen %qs:lle"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, fuzzy, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "%<long long%> virheellinen %qs:lle"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, fuzzy, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "%<long long%> virheellinen %qs:lle"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "%<long long%> virheellinen %qs:lle"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, fuzzy, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "%<long long%> virheellinen %qs:lle"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, fuzzy, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "%<long long%> virheellinen %qs:lle"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, fuzzy, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "%<long long%> virheellinen %qs:lle"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, fuzzy, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "%<long long%> virheellinen %qs:lle"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "virheellinen argumentti %s %s:lle"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "%s%qs%s ei ole sallittu"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr "%s%qs%s on virheellinen"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, fuzzy, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr "valitsin -mcpu=%s on ristiriidassa valitsimen -march=%s kanssa"
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, fuzzy, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "Varoita ylikuormitetuista virtuaalifunktioiden nimistä"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, fuzzy, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, fuzzy, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
@@ -44656,7 +44678,7 @@ msgstr ""
 msgid "builtin %qs can only be used on vector types"
 msgstr "määreet voidaan määrittää vain olioille ja funktioille"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, fuzzy, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr "virheellinen %%H-arvo"
@@ -44726,225 +44748,225 @@ msgstr "%qE on vanhentunut"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "%<__builtin_args_info%>-funktion argumentti on rajojen ulkopuolella"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "%<__builtin_args_info%>-funktion argumentti on rajojen ulkopuolella"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "%<__builtin_args_info%>-funktion argumentti on rajojen ulkopuolella"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "%<__builtin_args_info%>-funktion argumentti on rajojen ulkopuolella"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, fuzzy, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr "%qs määritelty parametrille %qE"
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, fuzzy, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr "%qs määritelty parametrille %qE"
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, fuzzy, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr "%qs määritelty parametrille %qE"
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr "<sisäänrakennettu>"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, fuzzy, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "<sisäänrakennettu>"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "%<__builtin_prefetch%>-funktion toinen argumentti on epäkelpo; käytetään nollaa"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "%qE-attribuutti tarvitsee merkkijonovakioargumentin"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, fuzzy, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "paikallisten objektien kokonaiskoko on liian suuri"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "pinokehys ei ole 8:n tavun monikerta: %wd"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr ""
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "ISO C kieltää sisäkkäiset funktiot"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "64-bittinen ABI ei ole tuettu ESA/390-tilassa"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, fuzzy, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, fuzzy, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "-fPIC ei ole tuettu"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, fuzzy, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "kohdistuksen pitää olla kahden potenssi, ei %d"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, fuzzy, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "kohdistuksen pitää olla kahden potenssi, ei %d"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr ""
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "%qE-attribuutti pätee vain funktioihin"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "%q+D:n ensimmäisen argumentin pitäisi olla %<int%>"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "%qs:n argumentti on liian suuri (maksimi %d)"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, fuzzy, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr "PROCEDURE-lauseen kohdassa %C on oltava geneerisessä rajapinnassa"
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "kohde ”%s” ei täsmää kohdehahmon kanssa"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 msgid "invalid cc output constraint: %qs"
 msgstr "virheellinen rotate-käsky"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 msgid "multiple cc output constraints not supported"
 msgstr "Ei ole tuettu"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr ""
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr "virheellinen tyyppimuunnos funktiotyyppiin %qT"
@@ -45368,8 +45390,8 @@ msgstr "%qE-attribuuttia ei huomioida %qE:lle"
 msgid "attribute %qs applies to array types only"
 msgstr "attribuutti %qs soveltuu vain taulukkotyyppeihin"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "tyhjää arvoa ei jätetä huomioimatta, vaikka kuuluisi"
@@ -45444,7 +45466,7 @@ msgstr "%Jtaulukon %qD tyyppi viimeistelty epäkelvosti implisiittisellä alustu
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "%qD on esittelemättä tällä näkyvyysalueella"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr "alunperin määritelty täällä"
@@ -45677,7 +45699,7 @@ msgstr "%J%qD:n esittely varjostaa edellistä paikallista"
 msgid "declaration of %qD shadows a parameter"
 msgstr "%q+D:n esittely varjostaa sisäänrakennetun funktion"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "%q+D:n esittely varjostaa sisäänrakennetun funktion"
@@ -45687,7 +45709,7 @@ msgstr "%q+D:n esittely varjostaa sisäänrakennetun funktion"
 msgid "declaration of %qD shadows a previous local"
 msgstr "%q+D:lla on edellinen esittely täällä"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "varjostunut esittely on täällä"
@@ -45752,7 +45774,7 @@ msgstr "%qE esittelemättä (ensimmäinen käyttökerta tässä funktiossa)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "(Jokaisesta esittelemättömästä tunnisteesta ilmoitetaan vain"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, fuzzy, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "%qD ei ole määritelty funktion näkyvyysalueen ulkopuolella"
@@ -45787,7 +45809,7 @@ msgstr "Odotettiin lauseketta %s-lauseessa kohdassa %C"
 msgid "duplicate label declaration %qE"
 msgstr "%qE-nimiön kaksoisesittely"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, fuzzy, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "Kaksoiskappale %s-nimiöspesifikaatio kohdassa %C"
@@ -45823,7 +45845,7 @@ msgstr "switch hyppää muuttuja-alustuksen yli"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE määritelty vääränlaisena tunnisteena"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
@@ -45974,12 +45996,12 @@ msgstr "ISO C90 ei tue syntaksia %<[*]%> taulukkoesittelijöissä"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr ""
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%s%> not allowed to be specified in this context"
@@ -45990,7 +46012,7 @@ msgstr "<this%>-sanaa ei voi käyttää tässä yhteydessä"
 msgid "%q+D is usually a function"
 msgstr "%q+D on yleensä funktio"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "%qD:lle ei ole edellistä esittelyä"
@@ -46066,7 +46088,7 @@ msgstr "ei voi laittaa volatile-kenttäistä objektia rekisteriin"
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "alustamaton vakio %qD on virheellinen C++-kielessä"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, fuzzy, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr "%qE nimiavaruudessa %qE ei nimeä tyyppiä"
@@ -46253,7 +46275,7 @@ msgstr "tallennusluokka annettu parametrille %qE"
 msgid "storage class specified for unnamed parameter"
 msgstr "tallennusluokka annettu nimettömälle parametrille"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "tallennusluokka annettu typenamelle"
@@ -46316,7 +46338,7 @@ msgstr "%qE:n esittely taulukollisena funktioita"
 msgid "declaration of type name as array of functions"
 msgstr "tyyppinimen esittely taulukollisena funktioita"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "joustavan taulukkojäsenen sisältävän tietueen epäkelpo käyttö"
@@ -46422,7 +46444,7 @@ msgstr "tyyppinimi esitelty taulukon palauttavan funktiona"
 msgid "function definition has qualified void return type"
 msgstr "funktion määrittely oikeuttaa tyhjän paluutyypin"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "tyyppimääritteet jätetään huomiotta funktion paluutyypissä"
@@ -46549,7 +46571,7 @@ msgstr "ISO C kieltää const- ja volatile-funktiotyypit"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "muuttuja tai kenttä %qE esitelty voidiksi"
@@ -46656,7 +46678,7 @@ msgstr "typedef %q+D määritelty uudelleen"
 msgid "object with variably modified type must have no linkage"
 msgstr "typedef %q+D määritelty uudelleen"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "funktion esittely ei ole prototyyppi"
@@ -46746,17 +46768,17 @@ msgstr "sisäkkäinen %<union %E%>:n uudelleenmäärittely"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "sisäkkäinen %<struct %E%>:n uudelleenmäärittely"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, fuzzy, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr "tyypin määritteleminen tyyppimuunnoksessa on virheellistä C++-kielessä"
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 msgid "%qT defined in underspecified object initializer"
 msgstr "%qs määritelty tietueen kentälle %qE"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "esittely ei esittele mitään"
@@ -46786,604 +46808,604 @@ msgstr "tyhjän structin koko on C:ssä 0, C++:ssa 1"
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr "tyhjän unionin koko on C:ssä 0, C++:ssa 1"
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "unionilla ei ole nimettyjä jäseniä"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "unionilla ei ole jäseniä"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "structilla ei ole nimettyjä jäseniä"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "structilla ei ole jäseniä"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "joustava taulukkojäsen unionissa"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "joustava taulukkojäsen ei ole structin lopussa"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "joustava taulukkojäsen unionissa"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member not at end of struct"
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "joustava taulukkojäsen ei ole structin lopussa"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, fuzzy, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "Arvo on liian suuri annetulle tietotyypille"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, fuzzy, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr "Käänteinen jä_rjestys"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "unionista ei voi tehdä läpinäkyvää"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "typedef %q+D määritelty uudelleen"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "%<struct %E%> uudelleenmääritelty"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "sisäkkäinen %<enum %E%>:n uudelleenmäärittely"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "%<enum %E%>:n uudelleenmäärittely"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, fuzzy, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr "annettu tila on liian pieni luetelluille arvoille"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "luetellun tyypin arvot ylittävät suurimman kokonaisluvun arvoalueen"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "luetellun tyypin arvot ylittävät suurimman kokonaisluvun arvoalueen"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of %<enum %E%>"
 msgid "conflicting redefinition of enum %qT"
 msgstr "sisäkkäinen %<enum %E%>:n uudelleenmäärittely"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "ylivuoto luetellun tyypin arvoissa"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C rajoittaa luetellun tyypin arvot %<int%>-tyypin arvoalueelle"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr "%Javoimelle funktiolle %qD annettu attribuutti noinline"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "paluutyyppi on oletuksena %<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, fuzzy, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr "kenttä %qE esitelty funktiona"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "%qD:lle ei ole edellistä prototyyppiä"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "%qD käytössä ilman prototyyppiä ennen sen määrittelyä"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "%qD käytössä ilman esittelyä ennen sen määrittelyä"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "%qD:n paluuarvon tyyppi ei ole %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, fuzzy, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr "%qD:n paluuarvon tyyppi ei ole %<int%>"
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%qD on tavallisesti ei-staattinen funktio"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "vanhanmallisia parametriesittelyitä prototyypitetyssä funktiomäärittelyssä"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "perinteinen C ei hyväksy ISO C -tyylisiä funktiomäärittelyitä"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "ISO C90 ei tue tyyppiä %<long long%>"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr "vanhanmallinen funktiomäärittely"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "parametrin nimi puuttuu parametriluettelosta"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD esitelty ei-parametrina"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "useita parametreja nimellä %qD"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "parametri %qD esitelty void-tyyppisenä"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "%qD:n oletustyyppi on %<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "parametrin %qD tyyppi on vaillinainen"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "parametrin %qD esittely, mutta parametria ei ole olemassa"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "argumenttien määrä ei vastaa sisäistä prototyyppiä"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "argumenttien määrä ei vastaa prototyyppiä"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "prototyypin esittely"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "ylennetty argumentti %qD ei vastaa sisäistä prototyyppiä"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "ylennetty argumentti %qD ei vastaa prototyyppiä"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "argumentti %qD ei vastaa sisäistä prototyyppiä"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "argumentti %qD ei sovi prototyyppiin"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "ei palautuslausetta funktiossa, joka palauttaa ei-voidin"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "parametri %qD on alustettu"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, fuzzy, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "%<for%>-silmukan alkuesittelyt ovat sallittuja vain C99-tilassa"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, fuzzy, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "käytä valitsinta -std=c99 tai -std=gnu99 koodisi kääntämiseen"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 ei tue syntaksia %<[*]%> taulukkoesittelijöissä"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "staattisen muuttujan %qD esittely %<for%>-silmukan alkuesittelyssä"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "%<extern%>-muuttujan %qD esittely %<for%>-silmukan alkuesittelyssä"
 
 # XXX: alkuesittely
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> esitelty %<for%>-silmukan alkuesittelyssä"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> esitelty %<for%>-silmukan alkuesittelyssä"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> esitelty %<for%>-silmukan alkuesittelyssä"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "ei-muuttujan %qD esittely %<for%>-silmukan alkuesittelyssä"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, fuzzy, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr "%qE-attribuuttia ei huomioida"
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "useita tallennusluokkia esittelymääritteissä"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "useita tallennusluokkia esittelymääritteissä"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr "%qE:a saatetaan käyttää alustamattomana tässä funktiossa"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%qE:a käytetään alustamattomana tässä funktiossa"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "yli yksi tietotyyppi esittelymääritteissä"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> on liian pitkä GCC:lle"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 ei tue %<long long%> -tyyppiä"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 ei tue kompleksityyppejä"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO C ei tue saturoituvia tyyppejä"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "%qE:n kaksoiskappale"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C ei tue saturoituvia tyyppejä"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "kohteen int-tyyppi on kapeampi kuin kohteen char-tyyppi"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 ei tue kompleksityyppejä"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C ei tue saturoituvia tyyppejä"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "kohteen int-tyyppi on kapeampi kuin kohteen char-tyyppi"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C90 ei tue tyyppiä %<long long%>"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, fuzzy, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C ei tue saturoituvia tyyppejä"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 #| msgid "case label is not an integer constant expression"
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "case-nimiö ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant expression"
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE ei ole typedef eikä sisäinen tyyppi"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE ei ole esittelyn alussa"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "%qE:a saatetaan käyttää alustamattomana tässä funktiossa"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "%qE:a käytetään alustamattomana tässä funktiossa"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "%qE ei ole typedef eikä sisäinen tyyppi"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr "%qE:a käytetään alustamattomana tässä funktiossa"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, fuzzy, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "ISO C90 ei tue %<long long%> -tyyppiä"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 ei tue %<long long%> -tyyppiä"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "käytetty %<__thread%> ennen %<extern%>:a"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "käytetty %<__thread%> ennen %<static%>:a"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%qE:a saatetaan käyttää alustamattomana tässä funktiossa"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr "%qE:a käytetään alustamattomana tässä funktiossa"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr "%qE:a käytetään alustamattomana tässä funktiossa"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr "kaksinkertainen %<_Thread_local%> tai %<__thread%>"
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, fuzzy, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%qE:a käytetään alustamattomana tässä funktiossa"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr "käytetty sekä %<__thread%> että %qs"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, fuzzy, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "käytetty sekä %<__thread%> että %<auto&>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C ei tue pelkkää %<complex%>-tyyppiä merkityksellä %<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C90 ei tue syntaksia %<[*]%> taulukkoesittelijöissä"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C ei tue kompleksikokonaislukutyyppejä"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "kohdistuksen %q+D:lle pitää olla vähintään %d"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++ 1998 ei tue %<long long%> -tyyppiä"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr "negatiivisen arvon siirto vasemmalle"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "vasemmalle siirron lukumäärä on negatiivinen"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "oikealle siirron lukumäärä on negatiivinen"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "vasemmalle siirron lukumäärä >= tyypin leveys"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "oikealle siirron lukumäärä >= tyypin leveys"
@@ -47413,7 +47435,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr "toinen täsmäävyys on täällä"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, fuzzy, gcc-internal-format
 msgid "expected end of line"
 msgstr "odotettiin %<(%> tai rivin loppu"
@@ -47423,8 +47445,8 @@ msgstr "odotettiin %<(%> tai rivin loppu"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C kieltää tyhjät käännösyksiköt"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -47464,9 +47486,9 @@ msgstr "tyypillä %qT ei ole %qE-nimistä jäsentä"
 msgid "unknown type name %qE"
 msgstr "%qE ei nimeä tyyppiä"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, fuzzy, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "useita tallennusluokkia esittelymääritteissä"
@@ -47496,7 +47518,7 @@ msgstr "pakattu attribuutti on tarpeeton %q+D:lle"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "odotettiin tunnistetta tai %<(%>"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, fuzzy, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "parametritaulukon esittelijän attribuutit jätetään huomiotta"
@@ -47516,7 +47538,7 @@ msgstr "Odottamattomat argumentit"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "pakattu attribuutti on tarpeeton %q+D:lle"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr "pakattu attribuutti on tarpeeton %q+D:lle"
@@ -47607,7 +47629,7 @@ msgstr "ei-vakio ehto staattiselle väitteelle"
 msgid "static assertion failed: %E"
 msgstr "staattinen väite epäonnistui: %E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, gcc-internal-format
 msgid "static assertion failed"
 msgstr "staattinen väite epäonnistui"
@@ -47679,10 +47701,10 @@ msgstr "enum-muunnos palautuksessa on virheellistä C++-kielessä"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "odotettu tunniste"
@@ -47836,7 +47858,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -47846,8 +47868,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, fuzzy, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr "tunnistamaton osoite"
@@ -48021,12 +48043,12 @@ msgstr "ISO C kieltää ?:-lausekkeen ilman keskimmäistä termiä"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, fuzzy, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr "%Jviimeksi käytetty täällä"
@@ -48176,7 +48198,7 @@ msgstr "ISO C ei tue kompleksikokonaiskulutyyppejä"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "odotettiin lauseketta"
@@ -48500,12 +48522,12 @@ msgstr "Odotettiin toista ulottuvuutta taulukkoesittelyssä kohdassa %C"
 msgid "no type or storage class may be specified here,"
 msgstr "tallennusluokka annettu %qs:lle"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, fuzzy, gcc-internal-format
 msgid "empty property attribute list"
 msgstr "<tuntematon>"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 msgid "missing property attribute"
 msgstr "puuttuva Code-attribuutti"
@@ -48515,57 +48537,57 @@ msgstr "puuttuva Code-attribuutti"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "<tuntematon>"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, fuzzy, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "<tuntematon>"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "toistuva %<@%> Objective-C-merkkijonon edellä"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr "%s-lausetta odotettiin kohdassa %L"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, fuzzy, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr "kuori on annettava polkuineen"
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "<this%>-sanaa ei voi käyttää tässä yhteydessä"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "<this%>-sanaa ei voi käyttää tässä yhteydessä"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "<this%>-sanaa ei voi käyttää tässä yhteydessä"
@@ -48575,25 +48597,25 @@ msgstr "<this%>-sanaa ei voi käyttää tässä yhteydessä"
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, fuzzy, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "Odotettiin =-merkkiä PARAMETER-lauseessa kohdassa %C"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "roskaa ilmaisun %<#pragma GCC pch_preprocess%> lopussa"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, fuzzy, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "%s: liian monta arvoa"
@@ -48608,63 +48630,63 @@ msgstr "taulukon koko ei ole kokonaislukutyyppinen vakiolauseke"
 msgid "expected %<)%> or %<,%>"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD ei ole muuttuja"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD ei ole muuttuja"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, fuzzy, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, fuzzy, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr "odotettiin %<none%> tai %<shared%>"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "%qs määrittää %<auto%>:n tiedostoalue-esittelyssä"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 msgid "expected constant logical expression"
 msgstr "odotettiin lauseketta"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "käytetty %<__thread%> ennen %<extern%>:a"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, fuzzy, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr "%s: Liian monta argumenttia\n"
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "%s: Liian monta argumenttia\n"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, fuzzy, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr "%s: Liian monta argumenttia\n"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -48687,22 +48709,22 @@ msgstr "%<num_threads%>-arvon on oltava positiivinen"
 msgid "%<num_tasks%> value must be positive"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, fuzzy, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, fuzzy, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "UNIT-numeron lauseessa kohdassa %L täytyy olla epänegatiivinen"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "odotettiin kokonaislukulauseketta"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, fuzzy, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr "odotettiin %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> tai %<max%>"
@@ -48712,95 +48734,95 @@ msgstr "odotettiin %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<m
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "  odotettiin luokkamallia, saatiin %qT"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, fuzzy, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "%s: Liian monta argumenttia\n"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, fuzzy, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "%s: Liian monta argumenttia\n"
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, fuzzy, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, fuzzy, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, fuzzy, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "%s: liian monta argumenttia\n"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, fuzzy, gcc-internal-format
 msgid "unexpected argument"
 msgstr "%qs attribuuttia ei huomioida"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "%qE-attribuutti sallii vain kokonaislukuvakioargumentin"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 msgid "too many %<self%> clauses"
 msgstr "%s: Liian monta argumenttia\n"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "odotettiin %<none%> tai %<shared%>"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr "odotettiin %<none%> tai %<shared%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "  odotettiin luokkamallia, saatiin %qT"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, fuzzy, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, fuzzy, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "odotettiin tunnistetta tai %<(%>"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, fuzzy, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "sekä %<long%> että %<void%> esittelymääritteissä"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, fuzzy, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "%qE määritelty vääränlaisena tunnisteena"
@@ -48810,22 +48832,22 @@ msgstr "%qE määritelty vääränlaisena tunnisteena"
 msgid "%<num_teams%> value must be positive"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, fuzzy, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, fuzzy, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr "odotettiin %<operator%>"
@@ -48836,22 +48858,22 @@ msgstr "odotettiin %<operator%>"
 msgid "duplicate %qs modifier"
 msgstr "kaksois-%qs"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr "ristiriitaiset tyyppimääreet %q+D:lle"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, fuzzy, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr "ristiriitaiset tyyppimääreet %q+D:lle"
@@ -48871,62 +48893,62 @@ msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "%s ei tue pituusmäärettä %qs %s"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "%qE määritelty vääränlaisena tunnisteena"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 msgid "invalid doacross kind"
 msgstr "%qE määritelty vääränlaisena tunnisteena"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr "%s: Liian monta argumenttia\n"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr "%s: Liian monta argumenttia\n"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 msgid "too many %<present%> modifiers"
 msgstr "%s: Liian monta argumenttia\n"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, fuzzy, gcc-internal-format
 msgid "invalid map kind"
 msgstr "%qE määritelty vääränlaisena tunnisteena"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "odotettiin %<none%> tai %<shared%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, fuzzy, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "virheellinen const_double-operandi"
@@ -48941,88 +48963,88 @@ msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "odotettiin %<,%>, %<;%> tai %<}%>"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, fuzzy, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "Funktio %qs"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, fuzzy, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "käytetty sekä %<__thread%> että %qs"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, fuzzy, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr "%Jluetellun tyypin jäsenen %qd uudelleenesittely"
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, fuzzy, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "%Jluetellun tyypin jäsenen %qd uudelleenesittely"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr "rajat määrittelemättömän taulukon epäkelpo käyttö"
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, fuzzy, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "muuttuja tai kenttä %qs esitelty tyhjäksi"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "%<extern%>-muuttujan %qD esittely %<for%>-silmukan alkuesittelyssä"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "rajat määrittelemättömän taulukon epäkelpo käyttö"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr "rajat määrittelemättömän taulukon epäkelpo käyttö"
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, fuzzy, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr "%Jluetellun tyypin jäsenen %qd uudelleenesittely"
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "odotettiin merkkijonoa ilmaisun %<#pragma message%> jälkeen"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -49037,7 +49059,7 @@ msgstr "%qE on esittelemättä"
 msgid "expected function name"
 msgstr "odotettiin luokan nimeä"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "funktiomalli %qD esitelty uudelleen luokkamallina"
@@ -49047,22 +49069,22 @@ msgstr "funktiomalli %qD esitelty uudelleen luokkamallina"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "#pragma GCC optimize ei ole sallittu funktioiden sisällä"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "#pragma GCC optimize ei ole sallittu funktioiden sisällä"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
@@ -49087,7 +49109,7 @@ msgstr ""
 msgid "modified here"
 msgstr "union määritelty täällä"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
@@ -49127,111 +49149,111 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr "valitsin %qs ei ole enää tuettu"
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "odotettiin %<,%>, %<;%> tai %<}%>"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "  odotettiin luokkamallia, saatiin %qT"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, fuzzy, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr "odotettiin tunnistetta tai %<(%>"
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 msgid "too many atomic clauses"
 msgstr "%s: liian monta arvoa"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr "%s: liian monta arvoa"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, fuzzy, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, fuzzy, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr "%qs määritelty parametrille %qE"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "Odotettiin :: TYPE-määrittelyssä kohdassa %C"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "roskaa ilmaisun %<#pragma pack%> lopussa"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "unexpected %<else%>"
 msgstr "odotettiin %<delete%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "roskaa ilmaisun %<#pragma pack%> lopussa"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "roskaa ilmaisun %<#pragma pack%> lopussa"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, fuzzy, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "roskaa ilmaisun %<#pragma pack%> lopussa"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
@@ -49241,27 +49263,27 @@ msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "käytetty %<__thread%> ennen %<extern%>:a"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "odotettiin %<,%>, %<;%> tai %<}%>"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "  odotettiin luokkamallia, saatiin %qT"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, fuzzy, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
@@ -49271,164 +49293,164 @@ msgstr "%<void%> vain parametrina ei ole oikeutettu"
 msgid "expected %<(%> or end of line"
 msgstr "odotettiin %<(%> tai rivin loppu"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "<this%>-sanaa ei voi käyttää tässä yhteydessä"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "odotettiin %<none%> tai %<shared%>"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr "odotettiin merkkijonoa ilmaisun %<#pragma message%> jälkeen"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "<this%>-sanaa ei voi käyttää tässä yhteydessä"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "odotettiin iteraatioesittelyä tai -alustusta"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 msgid "not enough nested loops"
 msgstr "liian vähän argumentteja"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, fuzzy, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, fuzzy, gcc-internal-format
 msgid "for statement expected"
 msgstr "%s-lausetta odotettiin kohdassa %L"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, fuzzy, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "sisäkkäisessä funktiossa käytetty rekisterimuuttujaa %qD"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "<this%>-sanaa ei voi käyttää tässä yhteydessä"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, fuzzy, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "tiedostonimi puuttuu %qs:n jälkeen"
 
 # XXXXXXX
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, fuzzy, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 msgid "expected trait selector name"
 msgstr "%s-lausetta odotettiin kohdassa %L"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, fuzzy, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "Tuntematon -mmacosx-version-min-arvo %qs"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, fuzzy, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr "%s ei tue muotoilua %<%%%c%> %s"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "tallennusluokan voi antaa vain olioille ja funktioille"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 msgid "expected identifier or string literal"
 msgstr "odotettiin merkkijonoliteraalia"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr "odotettiin kokonaislukulauseketta"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -49436,290 +49458,290 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr "-pipe ei ole tuettu"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 msgid "expected context selector set name"
 msgstr "%s-lausetta odotettiin kohdassa %L"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 msgid "expected %<match%>"
 msgstr "  siirtyy catch-lohkoon"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "valitsimet -l ja -s eivät ole yhteensopivia"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, fuzzy, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, fuzzy, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, fuzzy, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, fuzzy, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "# Ei kohde:"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "tallennusluokka annettu typenamelle"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr "%Jluetellun tyypin jäsenen %qd uudelleenesittely"
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, fuzzy, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "Kaksoiskappale-%s-attribuutti määritelty kohdassa %L"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "tallennusluokka annettu typenamelle"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, fuzzy, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr "%Jluetellun tyypin jäsenen %qd uudelleenesittely"
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, fuzzy, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr "edellinen esittely"
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, fuzzy, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "edellinen esittely"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, fuzzy, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr "edellinen esittely"
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr "%Jluetellun tyypin jäsenen %qd uudelleenesittely"
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, fuzzy, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "edellinen esittely"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, fuzzy, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "odotettiin %<(%> tai rivin loppu"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, fuzzy, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "odotettiin luokan nimeä"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "%qs määrittää %<auto%>:n tiedostoalue-esittelyssä"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "  odotettiin luokkamallia, saatiin %qT"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, fuzzy, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, fuzzy, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "odotettiin %<,%>, %<;%> tai %<}%>"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 msgid "expected %qs or %qs"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "<this%>-sanaa ei voi käyttää tässä yhteydessä"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, fuzzy, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr "valitsin %qs ei ole enää tuettu"
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, fuzzy, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr "valitsin %qs ei ole enää tuettu"
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, fuzzy, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr "Rajapintatäsmäämättömyys proseduuriosoitinsijoituksessa kohdassa %L: %s"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 msgid "expected directive name"
 msgstr "odotettiin luokan nimeä"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 msgid "expected assumption clause"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, fuzzy, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%J%qD esitelty avoimeksi kutsumisen jälkeen"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "automaattimuuttuja %qE ei voi olla %<threadprivate%>"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, fuzzy, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "parametrilla %u in vaillinainen tyyppi"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, fuzzy, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "Käyttö: %s <transaktiotiedosto> <tiedostojärjestelmä>\n"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, fuzzy, gcc-internal-format
 msgid "no closing brace"
 msgstr "          %s"
@@ -49861,7 +49883,7 @@ msgstr "%<void *%>-tyyppistä osoitinta käytetty laskutoimituksessa"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "indeksoitu arvo ei ole taulukko eikä osoitin"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "taulukon indeksi ei ole kokonaisluku"
@@ -49892,7 +49914,7 @@ msgstr "%qD esitelty viitteenä, mutta alustamatta"
 msgid "enum constant defined here"
 msgstr "lueteltu tyyppi määritelty täällä"
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -50005,17 +50027,17 @@ msgstr "muunnos tyypistä %qT tyyppiin %qT on moniselitteinen"
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "liian vähän argumentteja funktiolle %qE"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "vertailu merkkijonoliteraalin kanssa aiheuttaa määrittelemätöntä toimintaa"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 msgid "comparison between pointer and zero character constant"
 msgstr "osoittimen ja kokonaisluvun välinen vertailu"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, fuzzy, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr "oliko tarkoitus käyttää loogista negaatiota?"
@@ -50041,7 +50063,7 @@ msgstr "vähennyslaskussa käytetty osoitinta funktioon"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "%<void *%>-tyyppistä osoitinta käytetty laskutoimituksessa"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, fuzzy, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr "funktio-osoitinta käytetty laskutoimituksessa"
@@ -50337,7 +50359,7 @@ msgstr "tyyppimuunnos osoittimesta erikokoiseen kokonaislukuun"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "tyyppimuunnos %qT-tyyppisestä funktiokutsusta yhteensopimattomaan tyyppiin %qT"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "tyyppimuunnos erikokoisesta kokonaisluvusta osoittimeksi"
@@ -50515,7 +50537,7 @@ msgstr "funktio on ehkä mahdollinen ehdokas %qs-muotoiluattribuutille"
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "funktio on ehkä mahdollinen ehdokas %qs-muotoiluattribuutille"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, fuzzy, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "funktio on ehkä mahdollinen ehdokas %qs-muotoiluattribuutille"
@@ -50717,12 +50739,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "joustavan taulukkojäsenen alustus"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, fuzzy, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr "alustus yhteensopimattomasta osoitintyypistä"
@@ -50732,7 +50754,7 @@ msgstr "alustus yhteensopimattomasta osoitintyypistä"
 msgid "array of inappropriate type initialized from string constant"
 msgstr "sopimattomasta tyypistä koostuva taulukko alustetaan merkkijonovakiosta"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "ehtolausekkeessa ei-lvalue-taulukko"
@@ -50763,7 +50785,7 @@ msgstr "alustinalkio ei ole vakiolauseke"
 msgid "initializer element is not computable at load time"
 msgstr "alustusalkiota ei pystytä laskemaan latausajankohtana"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "läpinäkymättömiä vektorityyppejä ei voida alustaa"
@@ -50778,7 +50800,7 @@ msgstr "alustimen lopussa on ylimääräinen lohko"
 msgid "braces around scalar initializer"
 msgstr "skalaarialustimen ympärillä on aaltosulkeet"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "joustavan taulukkojäsenen alustaminen sisäkkäisessä asiayhteydessä"
@@ -50869,7 +50891,7 @@ msgstr "ylimääräisiä alkioita struct-alustimessa"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr "Varoita mahdollisesti puuttuvista aaltosuluista alustimissa"
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "joustavan taulukkojäsenen ei-staattinen alustus"
@@ -50909,7 +50931,7 @@ msgstr "ISO C90 kieltää yhdysliteraalit"
 msgid "computed goto must be pointer type"
 msgstr "annettu yhteensopimatonta osoitintyyppiä oleva %d. argumentti funktiolle %qE"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "%<noreturn%>-esitellyllä funktiolla on %<return%>-lause"
@@ -50964,7 +50986,7 @@ msgstr "break-lause silmukan tai switch-rakenteen ulkopuolella"
 msgid "break statement not within loop or switch"
 msgstr "break-lause silmukan tai switch-rakenteen ulkopuolella"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, fuzzy, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -51010,27 +51032,27 @@ msgstr "%qD:n osoite ei tule koskaan olemaan NULL"
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "%qD:n osoite ei tule koskaan olemaan NULL"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, fuzzy, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr "Varoita eri enum-tyyppien vertailusta"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, fuzzy, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr "Varoita eri enum-tyyppien vertailusta"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "tyyppien %qT ja %qT välinen vertailu"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, fuzzy, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr "%qD esitelty extern-avainsanalla sisäkkäin"
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, fuzzy, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr "liukulukujen vertailu operaattoreilla == ja != on epävarmaa"
@@ -51102,29 +51124,29 @@ msgstr "käytetty unionityypin arvoa, vaikka vaaditaan skalaari"
 msgid "used vector type where scalar is required"
 msgstr "käytetty unionityypin arvoa, vaikka vaaditaan skalaari"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "odotettiin %<operator%>"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "muuttuja %qD esitelty uudelleen funktiona"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qs määritelty parametrille %qE"
@@ -51135,85 +51157,85 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "bittikentän %qs leveys on nolla"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, fuzzy, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "sisäkkäisessä funktiossa käytetty rekisterimuuttujaa %qD"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, fuzzy, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, fuzzy, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr "Rajapintatäsmäämättömyys proseduuriosoitinsijoituksessa kohdassa %L: %s"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, fuzzy, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, fuzzy, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr "pilkkulausekkeen vasemmalla operandilla ei ole vaikutusta"
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, fuzzy, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, fuzzy, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, fuzzy, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, fuzzy, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, fuzzy, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, fuzzy, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr "pilkkulausekkeen vasemmalla operandilla ei ole vaikutusta"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, fuzzy, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr "pilkkulausekkeen vasemmalla operandilla ei ole vaikutusta"
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, fuzzy, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, fuzzy, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qE:lla ei ole luokkatyyppiä"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
@@ -51223,17 +51245,17 @@ msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "tyyppitäsmäämättömyys taulukkoviitteessä"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr "parametrin %qD tyyppi on vaillinainen"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr "iteraattorin askellus ei-kokonaislukutyypillä"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, fuzzy, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr "parametrin %qD tyyppi on vaillinainen"
@@ -51243,32 +51265,32 @@ msgstr "parametrin %qD tyyppi on vaillinainen"
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, fuzzy, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, fuzzy, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, fuzzy, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, fuzzy, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr "säiekohtaista muistia ei tueta tälle kohteelle"
@@ -51298,7 +51320,7 @@ msgstr "bittikentän %qs leveys on nolla"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "tyypillä %qE on virtuaalisia jäsenfunktioita"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr "tyypillä %qE on käyttäjän määrittelemä muodostin"
@@ -51308,17 +51330,17 @@ msgstr "tyypillä %qE on käyttäjän määrittelemä muodostin"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, fuzzy, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, fuzzy, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "automaattimuuttuja %qE ei voi olla %<threadprivate%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, fuzzy, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
@@ -51333,23 +51355,23 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr "muuttuja %qD esitelty uudelleen funktiona"
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, fuzzy, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr "indeksoitu arvo ei ole taulukko eikä osoitin"
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qs määritelty parametrille %qE"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
@@ -51361,32 +51383,32 @@ msgstr "funktiolle %2$qE annettu argumentin %1$d tyyppi on yhteensopimaton"
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, fuzzy, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "automaattimuuttuja %qE ei voi olla %<threadprivate%>"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "automaattimuuttuja %qE ei voi olla %<threadprivate%>"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "instanssimuuttuja %qE on esitelty yksityisenä"
@@ -51406,7 +51428,7 @@ msgstr "muuttuja %qD esitelty uudelleen funktiona"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "funktiolle %2$qE annettu argumentin %1$d tyyppi on yhteensopimaton"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr "instanssimuuttuja %qE on esitelty yksityisenä"
@@ -51416,7 +51438,7 @@ msgstr "instanssimuuttuja %qE on esitelty yksityisenä"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "funktiolle %2$qE annettu argumentin %1$d tyyppi on yhteensopimaton"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr "instanssimuuttuja %qE on esitelty yksityisenä"
@@ -51426,76 +51448,76 @@ msgstr "instanssimuuttuja %qE on esitelty yksityisenä"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "funktiolle %2$qE annettu argumentin %1$d tyyppi on yhteensopimaton"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, fuzzy, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "instanssimuuttuja %qE on esitelty yksityisenä"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, fuzzy, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, fuzzy, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, fuzzy, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr "%qE:lla ei ole luokkatyyppiä"
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 msgid "unsupported map expression %qE"
 msgstr "kiintopistevakiot ovat GCC-laajennos"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qE:lla ei ole luokkatyyppiä"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, fuzzy, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "halutaan rekisterimuuttujan %qD osoite"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, fuzzy, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "funktiolle %2$qE annettu argumentin %1$d tyyppi on yhteensopimaton"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, fuzzy, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, fuzzy, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "funktiolle %2$qE annettu argumentin %1$d tyyppi on yhteensopimaton"
@@ -51510,22 +51532,22 @@ msgstr "lähde ei ole osoitin"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "indeksoitu arvo ei ole taulukko eikä osoitin"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, fuzzy, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr "%s: liian monta arvoa"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, fuzzy, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr "__COUNTER__ lavennettu direktiivin sisällä valitsimella -fdirectives-only"
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, fuzzy, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qs määritelty parametrille %qE"
@@ -51535,38 +51557,38 @@ msgstr "%qs määritelty parametrille %qE"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, fuzzy, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, fuzzy, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, fuzzy, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, fuzzy, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, fuzzy, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -51835,14 +51857,14 @@ msgstr "muunnos tyypistä %qT tyyppiin %qT on moniselitteinen"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] "  ehdokas odottaa %d argumenttia, %d annettu"
 msgstr[1] "  ehdokas odottaa %d argumenttia, %d annettu"
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -52157,582 +52179,582 @@ msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä vertailusta puuttuu ty
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "ehtolausekkeessa etumerkkinen ja etumerkitön tyyppi"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr ""
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr ""
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr "%qD:n paluuarvon tyyppi ei ole %<int%>"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, fuzzy, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "%q#T ei ole luokka eikä nimiavaruus"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "Ei vastaavuutta"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "Virheellinen järjestelmäkutsu"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, fuzzy, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "Funktio %qs:"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "Funktio %qs:"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, fuzzy, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr "%qD:a käytetään alustamattomana tässä funktiossa"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, fuzzy, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "%<operator new%>:n on palautettava tyyppi %qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, fuzzy, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr "tässä yhteydessä"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 msgid "declared private here"
 msgstr "instanssimuuttuja %qE on esitelty yksityisenä"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr "tässä yhteydessä"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 msgid "declared protected here"
 msgstr "%qD esiteltiin täällä"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr "tässä yhteydessä"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "annettu NULL funktion %2$qD ei-osoitinargumenttina %1$P"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, gcc-internal-format
 msgid "  declared here"
 msgstr "  esitelty täällä"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "NULLin muunnos epäosoitintyypiksi %qT"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "muunnetaan %<false%> osoitintyyppiksi %2$qD:n argumentissa %1$P"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, fuzzy, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "NULLin muunnos epäosoitintyypiksi %qT"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, fuzzy, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "liikaa aaltosulkeita %qT:n alustimen ympärillä"
 
 # XXX
 # %s on "initialization", jota EI VOI suomentaa tällä hetkellä.
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 #, fuzzy
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "ei voi muuntaa tyypistä %qT tyyppiin %qT (%s)"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C ei salli ylimääräisiä %<;%>-merkkejä funktion ulkopuolella"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 msgid "invalid conversion from %qH to %qI"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr ""
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "virheellinen %qT-tyyppisen ei-const-viittauksen alustus %qT-tyyppisestä väliaikaisesta muuttujasta"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "virheellinen %qT-tyyppisen ei-const-viittauksen alustus %qT-tyyppisestä väliaikaisesta muuttujasta"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "virheellinen %qT-tyyppisen ei-const-viittauksen alustus %qT-tyyppisestä väliaikaisesta muuttujasta"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "virheellinen %qT-tyyppisen ei-const-viittauksen alustus %qT-tyyppisestä väliaikaisesta muuttujasta"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 #, fuzzy
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr "virheellinen %qT-tyyppisen ei-const-viittauksen alustus %qT-tyyppisestä väliaikaisesta muuttujasta"
 
 # Tämä esiintynee esim. const char* → char* -muunnoksessa.
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 #, fuzzy
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "muunnos tyypistä %qT tyyppiin %qT ei säilytä tyyppimääreitä"
 
 # XXX
 # %s on "initialization", jota EI VOI suomentaa tällä hetkellä.
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "ei voi muuntaa tyypistä %1$qT tyyppiin %2$qT %4$qD:n argumentiksi %3$qP"
 
 # XXX
 # %s on "initialization", jota EI VOI suomentaa tällä hetkellä.
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, fuzzy, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "ei voi muuntaa tyypistä %1$qT tyyppiin %2$qT %4$qD:n argumentiksi %3$qP"
 
 # XXX
 # %s on "initialization", jota EI VOI suomentaa tällä hetkellä.
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, fuzzy, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "ei voi muuntaa tyypistä %1$qT tyyppiin %2$qT %4$qD:n argumentiksi %3$qP"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 #, fuzzy
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "muunnos tyypistä %qT tyyppiin %qT on moniselitteinen"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, fuzzy, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "ei-triviaalisti-kopioitavan tyyppisiä %q#T-olioita ei voi välittää %<...%>:n kautta"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, fuzzy, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "ei-triviaalisti-kopioitavan tyyppisiä %q#T-olioita ei voi vastaanottaa %<...%>:n kautta"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, fuzzy, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "ei-triviaalisti-kopioitavan tyyppisiä %q#T-olioita ei voi vastaanottaa %<...%>:n kautta"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, fuzzy, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "oletusargumentti annettu %2$q#D:n parametrille %1$d"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr ""
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "funktiokutsun argumentti voi olla ehdokas muotoiluattribuutille"
 
 # XXX
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, fuzzy, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr "%Hswitch-lauseesta puuttuu default-nimike"
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
 # Tämä esiintynee esim. const char* → char* -muunnoksessa.
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, fuzzy, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "muunnos tyypistä %qT tyyppiin %qT ei säilytä tyyppimääreitä"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, fuzzy, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "%J%qD esitelty turhaan uudestaan"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "perustyypin %qT kaksoiskappale virheellinen"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, fuzzy, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "liikaa argumentteja muodostimelle %q#D"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr "%q#T-tyyppisiä epä-POD-objekteja ei voi välittää %<...%>:n kautta, ohjelma tulee keskeytymään ajettaessa"
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "%q#T-tyyppisiä epä-POD-objekteja ei voi välittää %<...%>:n kautta, ohjelma tulee keskeytymään ajettaessa"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr "%q#T-tyyppisiä epä-POD-objekteja ei voi välittää %<...%>:n kautta, ohjelma tulee keskeytymään ajettaessa"
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr "%q#T-tyyppisiä epä-POD-objekteja ei voi välittää %<...%>:n kautta, ohjelma tulee keskeytymään ajettaessa"
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, fuzzy, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr "sijoitus (ei alustus) esittelyssä"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 msgid "; use assignment instead"
 msgstr "käytä #includea sen sijaan"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, fuzzy, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr "virheellinen tyyppimuunnos funktiotyyppiin %qT"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, fuzzy, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr "%q#T-tyyppisiä epä-POD-objekteja ei voi välittää %<...%>:n kautta, ohjelma tulee keskeytymään ajettaessa"
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "%qD tyhjentää ei-triviaalintyyppisen objektin %#qT%s"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, fuzzy, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr "%q#T-tyyppisiä epä-POD-objekteja ei voi välittää %<...%>:n kautta, ohjelma tulee keskeytymään ajettaessa"
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, fuzzy, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "sijoitus (ei alustus) esittelyssä"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr "; käytä kopiosijoitusta sen sijaan"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr "; käytä kopioalustusta sen sijaan"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr "%q#T-tyyppisiä epä-POD-objekteja ei voi välittää %<...%>:n kautta, ohjelma tulee keskeytymään ajettaessa"
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr "%qD kirjoittaa ei-triviaalisti-kopioitavaan tyyppiin %#qT%s"
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr "%qD siirtää ei-triviaalisti-kopioitavan tyyppisen %q#T-olion; käytä %<new%>:tä ja %<delete%>:ä"
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, fuzzy, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr "%q#T-tyyppisiä epä-POD-objekteja ei voi välittää %<...%>:n kautta, ohjelma tulee keskeytymään ajettaessa"
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr "%q#T-tyyppisiä epä-POD-objekteja ei voi välittää %<...%>:n kautta, ohjelma tulee keskeytymään ajettaessa"
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr "%q#T-tyyppisiä epä-POD-objekteja ei voi välittää %<...%>:n kautta, ohjelma tulee keskeytymään ajettaessa"
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr "%qD siirtää ei-triviaalisti-kopioitavan tyyppisen %q#T-olion; käytä %<new%>:tä ja %<delete%>:ä"
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, fuzzy, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr "%qD siirtää ei-triviaalisti-kopioitavan tyyppisen %q#T-olion; käytä %<new%>:tä ja %<delete%>:ä"
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, fuzzy, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr "%qD siirtää ei-triviaalisti-kopioitavan tyyppisen %q#T-olion; käytä %<new%>:tä ja %<delete%>:ä"
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, fuzzy, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr "%qD siirtää ei-triviaalisti-kopioitavan tyyppisen %q#T-olion; käytä %<new%>:tä ja %<delete%>:ä"
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, gcc-internal-format
 msgid "%#qT declared here"
 msgstr "%#qT esitelty täällä"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, fuzzy, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, fuzzy, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr "Kopiomuodostin %qs"
 
 # XXX
 # %s on "initialization", jota EI VOI suomentaa tällä hetkellä.
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 msgid "cannot convert %qH to %qI"
 msgstr "ei voi muuntaa tyypistä %1$qT tyyppiin %2$qT %4$qD:n argumentiksi %3$qP"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "päättämätön kutsu funktioon ”%s”: puuttuva ”%c”"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "päättämätön kutsu funktioon ”%s”: puuttuva ”%c”"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, fuzzy, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr ""
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "päättämätön kutsu funktioon ”%s”: puuttuva ”%c”"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, fuzzy, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "%s: valitsin on moniselitteinen; vaihtoehdot:"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "arvon palautus muodostimesta"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr "arvon palautus muodostimesta"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr "arvon palautus hajottimesta"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "jäsenfunktiota %qD ei voi kutsua ilman oliota"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, fuzzy, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "%qD ei ole %qD:n jäsen"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "ISO C++:n mukaan nämä ovat moniselitteisiä siitä huolimatta, että ensimmäisen huonoin muunnos on parempi kuin toisen huonoin:"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 msgid "try making the operator a %<const%> member function"
 msgstr "hajotin ei voi olla staattinen jäsenfunktio"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, fuzzy, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "%qD ei ole %qD:n jäsen"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 msgid "  for conversion from %qH to %qI"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr ""
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, fuzzy, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "oletusargumentti määritelty lambda-parametrille"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, fuzzy, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr " ehdokas 1: %q+#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, fuzzy, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr " ehdokas 2: %q+#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ISO C++:n mukaan nämä ovat moniselitteisiä siitä huolimatta, että ensimmäisen huonoin muunnos on parempi kuin toisen huonoin:"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 #, fuzzy
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "virheellinen %qT-tyyppisen ei-const-viittauksen alustus %qT-tyyppisestä väliaikaisesta muuttujasta"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "virheellinen %qT-tyyppisen viittauksen alustus %qT-tyyppisestä lausekkeesta"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 msgid "possibly dangling reference to a temporary"
 msgstr "tyhjää arvoa ei jätetä huomioimatta, vaikka kuuluisi"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr ""
@@ -52788,7 +52810,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "käyttämätön muuttuja %q+D"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "edellinen esittely %q+D"
@@ -53209,7 +53231,7 @@ msgstr "joustava taulukkojäsen muuten tyhjässä structissa"
 msgid "next member %q#D declared here"
 msgstr "%q+#D aiemmin esitelty täällä"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "%q#T uudelleenmääritelty"
@@ -53340,7 +53362,7 @@ msgstr "epäkelpo tallennusluokka funktiolle %qs"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
@@ -53381,7 +53403,7 @@ msgstr "epäkelvot operandit binääriselle %s-operaatiolle"
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -53399,7 +53421,7 @@ msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 msgid "%q+E is not a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -53420,7 +53442,7 @@ msgstr "vertailu ”etumerkitön lauseke < 0” on aina epätosi"
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 msgid "call to internal function %qE"
@@ -53467,7 +53489,7 @@ msgstr "muunnos tyypistä %qT tyyppiin %qT on moniselitteinen"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -53596,18 +53618,18 @@ msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "taulukon tyypillä on vaillinainen alkiotyyppi"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr "%<void *%>-tyyppistä osoitinta käytetty laskutoimituksessa"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -53615,470 +53637,470 @@ msgstr "%<void *%>-tyyppistä osoitinta käytetty laskutoimituksessa"
 msgid "%qE is not a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "jäsen %qD on alustamaton viittaus"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, fuzzy, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr "taulukon koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "%qs ei ole tuettu tällä kohteella"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, fuzzy, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "jäsen %qD on alustamaton viittaus"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, fuzzy, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, gcc-internal-format
 msgid "allocated here"
 msgstr "varattu täällä"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, fuzzy, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, fuzzy, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "%qD käytössä ilman prototyyppiä ennen sen määrittelyä"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "käyttämätön muuttuja %q+D"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, fuzzy, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "käyttämätön muuttuja %q+D"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, fuzzy, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, fuzzy, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "parametriksi ei voida esitellä %<constexpr%>:ksi"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "alustinalkio ei ole vakiolauseke"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, fuzzy, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "muunnos tyypistä %qT tyyppiin %qT"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, fuzzy, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "muunnos tyypistä %qT tyyppiin %qT"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr "alustinalkio ei ole vakiolauseke"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
 msgid "use of %qD"
 msgstr "%qD:n virheellinen käyttö"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, fuzzy, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr "%qD:n poistettu määrittely"
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, fuzzy, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr "poistettu funktio %q+D"
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, fuzzy, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr "%qD esiteltiin täällä"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr "odotettiin %<template%>"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, fuzzy, gcc-internal-format
 msgid "function concept must be called"
 msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, fuzzy, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, fuzzy, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "hajottimen %qE osoitteen ottaminen"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "virheellinen static_cast-muunnos tyypistä %qT tyyppiin %qT"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, fuzzy, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr "virheellinen %%s-arvo"
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "tyyppimuunnos osoittimesta erikokoiseen kokonaislukuun"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, fuzzy, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "tyypillä %qE on virtuaalisia jäsenfunktioita"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, fuzzy, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "tallennusluokka %<thread_local%> virheellinen funktiolle %qs"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "ei-staattinen datajäsen %qE esitelty %<constexpr%>:ksi"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "Jako nollalla kohdassa %L"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "taulukon alustus ei-vakiolla"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, fuzzy, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "Odottamaton %s-lause kohdassa %C"
@@ -54824,7 +54846,7 @@ msgstr "%<__builtin_prefetch%>-funktion kolmannen argumentin pitää olla vakio"
 msgid "no suspend point info for %qD"
 msgstr "%qD:lle ei ole edellistä prototyyppiä"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -54846,23 +54868,23 @@ msgstr "osoittimet eivät ole sallittuja case-arvoja"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr ""
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr "virheellinen %qT-tyyppisen ei-const-viittauksen alustus %qT-tyyppisestä väliaikaisesta muuttujasta"
@@ -54883,68 +54905,68 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD ei ole mallifunktio"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr "hajottimen %qE osoitteen ottaminen"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "%qD:n osoite tulee aina olemaan %<true%>"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, fuzzy, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "hajotin ei voi olla %<constexpr%>"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "%qD:n malliargumentti käyttää paikallista tyyppiä %qT"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 msgid "pack expansion of %qE attribute"
 msgstr "%qs-attribuutin virheellinen argumentti"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr "oletusargumentti määritelty lambda-parametrille"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD ei ole tyyppi"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr "%qT ei ole luokkatyyppi"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qE:lla ei ole luokkatyyppiä"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -54990,7 +55012,7 @@ msgstr "virheellinen %qT-tyyppisen ei-const-viittauksen alustus %qT-tyyppisestä
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "muunnos tyypistä %qT tyyppiin %qT ei säilytä tyyppimääreitä"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, fuzzy, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "oliko tarkoitus käyttää loogista negaatiota?"
@@ -55375,7 +55397,7 @@ msgstr "edellisestä esittelystä %q+F"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "luetellun tyypin jäsenen %q+D uudelleenesittely"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "edellinen esittely %q+D"
@@ -55515,8 +55537,8 @@ msgstr "%J%qD:lle ei ole aiempaa esittelyä"
 msgid "%q#D previously defined here"
 msgstr "%q+#D määritelty aiemmin täällä"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "%q+#D aiemmin esitelty täällä"
@@ -55591,53 +55613,38 @@ msgstr "oletusargumentti annettu %2$q#D:n parametrille %1$d"
 msgid "previous specification in %q#D here"
 msgstr "%q+D:n edellinen esittely oli täällä"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr "%q+D:n osoitealue on ristiriidassa edellisen esittelyn kanssa"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr "nimiavaruuden %qD esittely on ristiriidassa"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr "esitelty täällä"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 msgid "conflicting exporting for declaration %qD"
 msgstr "ristiriitainen esittely %q#D"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 #| msgid "previously declared here"
 msgid "previously declared here without exporting"
 msgstr "esitelty aiemmin täällä"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr "%q+D:n edellinen määrittely oli täällä"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "%q+D:n edellinen esittely oli täällä"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "funktio %qD esitelty virtuaaliseksi unionissa"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "%qD uudelleenesitellään tarpeettomasti samalla näkyvyysalueella"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr "%qD:n poistettu määrittely"
@@ -55650,44 +55657,44 @@ msgstr "%qD:n poistettu määrittely"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "(mahdollisesti %qT:n määrittelyn perästä puuttuu puolipiste)"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%J%qD:n lohko on ristiriidassa edellisen esittelyn kanssa"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, fuzzy, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "%q+D määritelty uudelleen"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, fuzzy, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "%qD:a käytetään alustamattomana tässä funktiossa"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, fuzzy, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q+D esitelty ystävänä"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, fuzzy, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%J%qD esitelty uudelleen erityyppisenä symbolina"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, fuzzy, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%J%qD esitelty uudelleen erityyppisenä symbolina"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -55695,2507 +55702,2507 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "strftime-muotoilut eivät voi muotoilla argumentteja"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "säiekohtainen esittely %q#D seuraa ei-säiekohtaista esittelyä"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "ei-säiekohtainen esittely %q#D seuraa säiekohtaista esittelyä"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "%q+D:n virheellinen uudelleenesittely"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "luetellun tyypin jäsenen %q+D uudelleenesittely"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, fuzzy, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr "%q+D:n data-alue on ristiriidassa edellisen esittelyn kanssa"
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, fuzzy, gcc-internal-format
 msgid "previous label"
 msgstr "edellinen esittely"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "hyppy nimiöön %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "hyppy case-nimiöön"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  täältä"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, fuzzy, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  siirtyy catch-lohkoon"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "  ohittaa %q+#D:n alustuksen"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, fuzzy, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr "  siirtyy try-lohkoon"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr "  siirtyy catch-lohkoon"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, fuzzy, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  siirtyy catch-lohkoon"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, fuzzy, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr "lauseella ei ole vaikutusta"
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 msgid "  enters statement expression"
 msgstr "Odotettiin lauseketta %s-lauseessa kohdassa %C"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, fuzzy, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr "%s-lausetta odotettiin kohdassa %L"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, fuzzy, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr "%s-lausetta odotettiin kohdassa %L"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 msgid "  does not destroy %qD"
 msgstr "ISO C90 ei tue %<long long%> -tyyppiä"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, fuzzy, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "  ohittaa %q+#D:n alustuksen"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 msgid "%qD used without template arguments"
 msgstr "virheellinen %<auto%>:n käyttö muunnosoperaattorissa"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "%qD ei ole funktiomalli"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T ei ole luokka"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, fuzzy, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "%<typename %T::%D%> nimeää kohteen %q#T:n, joka ei ole luokkamalli"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, fuzzy, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "paluutyyppi %q#T on vaillinainen"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, fuzzy, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "muunnos tyypistä %qT tyyppiin %qT on moniselitteinen"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%> nimeää kohteen %q#T:n, joka ei ole luokkamalli"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 #| msgid "%<typename %T::%D%> names %q#T, which is not a type"
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%> nimeää %q#T:n, joka ei ole tyyppi"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "tyyppimuunnettu argumentti %qD ei sovi prototyyppiin"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "dwarfin versio %d ei ole tuettu"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
 # semi-fuzzy
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, fuzzy, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "ei-staattista datajäsentä %q+D käytetty virheellisesti"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 msgid "anonymous struct with base classes"
 msgstr "anonyymillä structilla ei voi olla funktiojäseniä"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, fuzzy, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "ei argumentteja"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, fuzzy, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "ei argumentteja"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, fuzzy, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "ei argumentteja"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "attribuutti jätetty huomioimatta %q+#T:n esittelyssä"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, fuzzy, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "%q+#T:n attribuutin on oltava %qs-avainsanan perässä"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "useita tyyppejä yhdessä esittelyssä"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "C++:n sisäinen tietotyyppi %qT määritelty uudelleen"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "tallennusluokan voi antaa vain objekteille ja funktioille"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "tyypin nimi puuttuu typedef-esittelystä"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO C++ kieltää nimettömät structit"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "määreet voidaan määrittää vain olioille ja funktioille"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, fuzzy, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr "määreet voidaan määrittää vain olioille ja funktioille"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, fuzzy, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "tallennusluokan voi antaa vain olioille ja funktioille"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "määreet voidaan määrittää vain olioille ja funktioille"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "tallennusluokan voi antaa vain olioille ja funktioille"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "määreet voidaan määrittää vain olioille ja funktioille"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "määreet voidaan määrittää vain olioille ja funktioille"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, fuzzy, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "tallennusluokan voi antaa vain olioille ja funktioille"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, fuzzy, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "määreet voidaan määrittää vain olioille ja funktioille"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, fuzzy, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "tyypin nimi puuttuu typedef-esittelystä"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "%Hprototyypin esittely"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, fuzzy, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD on alustettu (käytä __typeof__ sen sijaan)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "parametrilla %q+D on vain etukäteisesittely"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, fuzzy, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "funktion %q+D määrittely on merkitty dllimport-tyyppiseksi"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "%qD:n esittely ei-jäsenenä"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "malliesittelylle %q+D"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, fuzzy, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "jäsenen %q+D kaksoiskappale"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "%qD:n esittely ei-funktiona"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "muuttujalla %q#D on alustin, mutta vaillinainen tyyppi"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "taulukon %q#D alkiot ovat vaillinaista tyyppiä"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, fuzzy, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "parametrin %qD tyyppi on vaillinainen"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD esitelty viitteenä, mutta alustamatta"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, fuzzy, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "ISO C ei salli ylimääräisiä %<;%>-merkkejä funktion ulkopuolella"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, fuzzy, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "ISO C ei salli ylimääräisiä %<;%>-merkkejä funktion ulkopuolella"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, fuzzy, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "dwarfin versio %d ei ole tuettu"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, fuzzy, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "alustin ei pysty päättelemään taulukon %q+D kokoa"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "%qD-taulukon koko puuttuu"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "nollan kokoinen taulukko %qD"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "%qD:n koko muistissa ei ole tunnettu"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "%qD:n koko muistissa ei ole vakio"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, fuzzy, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr "  voit kiertää tämän poistamalla alustimen"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 msgid "uninitialized %<const %D%>"
 msgstr "alustamaton const %qD"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "%qD:a käytetään alustamattomana tässä funktiossa"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "%qD:a käytetään alustamattomana tässä funktiossa"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, fuzzy, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr "hajotin ei voi olla staattinen jäsenfunktio"
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, fuzzy, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "perustyypin %qT kaksoiskappale virheellinen"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, fuzzy, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "virheellinen alustin taulukon jäsenelle %q#D"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, fuzzy, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "ISO C ei salli ylimääräisiä %<;%>-merkkejä funktion ulkopuolella"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "%qD:n esittely ei-jäsenenä"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, fuzzy, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "ei-staattisella datajäsenellä %qD on Java-luokkatyyppi"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD:n esittely %qT:n jäsenenä"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "virheellinen alustin taulukon jäsenelle %q#D"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, fuzzy, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "liikaa alustimia %qT:lle"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, fuzzy, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "skalaarialustimen ympärillä on aaltosulkeet"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "skalaarialustimen ympärillä on aaltosulkeet"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, fuzzy, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "alustimen ympäriltä puuttuu aaltosulkeet"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "ei voida vähentää osoitinta vaillinaiseen tyyppiin %qT"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, fuzzy, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "taulukon %q#D alkiot ovat vaillinaista tyyppiä"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "muuttuvakokoinen yhdysliteraali"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "%q#D on vaillinaista tyyppiä"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "skalaariobjekti %qD vaatii yhden alkion alustimeensa"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "C++98:ssa %qD on alustettava muodostimessa, ei käyttäen %<{...}%>"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "taulukko %qD alustettu sulkujen sisällä olevalla merkkijonoliteraalilla %qE"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, fuzzy, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "virheellinen alustin taulukon jäsenelle %q#D"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, fuzzy, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, fuzzy, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "  ohittaa %q+#D:n alustuksen"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "%qD esitelty viitteenä, mutta ei ole alustettu"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr "%<[*]%> ei ole esittelyssä"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr "liian vähän argumentteja muodostimelle %q#D"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr "hajottimen %qE osoitteen ottaminen"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "sijoitus (ei alustus) esittelyssä"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, fuzzy, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C ei salli ylimääräisiä %<;%>-merkkejä funktion ulkopuolella"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr "%<register%>-tallennusluokkamääritteen käyttö"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "%q#D:n esittelyllä ei ole alustimia"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, fuzzy, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "jäsentä %q+D käytetty virheellisesti staattisessa jäsenfunktiossa"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "paluutyyppi %q#T on vaillinainen"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr "muuttujalla %qD on alustin, mutta vaillinainen tyyppi"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, fuzzy, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "%q+D:n edellinen esittely"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "%qE-attribuutti soveltuu vain muuttujiin ja funktioihin"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "funktio %q#D alustetaan kuin muuttuja"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "%qE-attribuutti pätee vain muuttujiin"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr "%qE-attribuutti pätee vain muuttujiin"
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "perustyypin %qT kaksoiskappale virheellinen"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr "%qE-attribuutti pätee vain muuttujiin"
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr "%qE-attribuutti pätee vain muuttujiin"
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "ei voida vähentää osoitinta vaillinaiseen tyyppiin %qT"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "ISO C90 kieltää muuttuvakokoisen taulukon %qE"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] "%qs määritelty tietueen kentälle"
 msgstr[1] "%qs määritelty tietueen kentälle"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] "%qs määritelty tietueen kentälle"
 msgstr[1] "%qs määritelty tietueen kentälle"
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr "luokalla %q#T on datajäseninä osoittimia"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "taulukon koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, fuzzy, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "tyyppimuunnos lisää funktiotyyppiin uusia määreitä"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "ei voida vähentää osoitinta vaillinaiseen tyyppiin %qT"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr "Pyydettyä osoitetta ei voi asettaa"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "%qE-attribuutti pätee vain muuttujiin"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, fuzzy, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr "Java-luokalla %qT ei voi olla implisiittistä epätriviaalia hajotinta"
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, fuzzy, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr "Java-luokalla %qT ei voi olla implisiittistä epätriviaalia hajotinta"
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, fuzzy, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "alustin ei pysty päättelemään taulukon %q+D kokoa"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "%qD-taulukon koko puuttuu"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "nollan kokoinen taulukko %qD"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, fuzzy, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "Java-luokalla %qT ei voi olla hajotinta"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, fuzzy, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "Java-luokalla %qT ei voi olla hajotinta"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "funktio %qD esitelty virtuaaliseksi unionissa"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "tallennusluokkatarkentimet virheellisiä parameteresittelyissä"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "parametri %qD esitelty void-tyyppisenä"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "parametri %q+D esitelty %<inline%>:ksi"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "tallennusluokkatarkentimet virheellisiä parameteresittelyissä"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "parametri %qD esitelty void-tyyppisenä"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "parametri %qD esitelty void-tyyppisenä"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "tallennusluokkatarkentimet virheellisiä parameteresittelyissä"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "funktio %qD esitelty virtuaaliseksi unionissa"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "parametri %q+D esitelty %<inline%>:ksi"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "tallennusluokkatarkentimet virheellisiä parameteresittelyissä"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D esitelty ystävänä"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, fuzzy, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "nimike %qD esitelty muttei määritelty"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, fuzzy, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "%qD ei ole luokka eikä nimiavaruus"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr "parametri %qD esitelty void-tyyppisenä"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "parametri %qD esitelty void-tyyppisenä"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "%qD:n poistettu määrittely"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 msgid "a function concept cannot be constrained"
 msgstr "funktiota %<main%> ei voi määrittää avoimeksi"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 msgid "constraints on a non-templated function"
 msgstr "%qD ei ole mallifunktio"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "luokkamäärittelyä ei voi esitellä ystäväksi"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, fuzzy, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "%<inline%> tyhjässä esittelyssä"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, fuzzy, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "%qD ei ole malli"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, fuzzy, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "oletusargumentti määritelty lambda-parametrille"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "luokkamäärittelyä ei voi esitellä ystäväksi"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "funktiota %<main%> ei voi määrittää avoimeksi"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "funktiota %<main%> ei voi määrittää avoimeksi"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "funktiota %<main%> ei voi määrittää avoimeksi"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "funktiota %<main%> ei voi määrittää avoimeksi"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, fuzzy, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, fuzzy, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 msgid "explicit object parameter declared here"
 msgstr "%qD esitelty ei-parametrina"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, fuzzy, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "%qD:n esittely ei-funktiona"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, fuzzy, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "%qD:n esittely ei-funktiona"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr "%qD:n esittely ei-funktiona"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, fuzzy, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr "malli C-linkityksellä"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, fuzzy, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "virheellinen IACC-argumentti"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, fuzzy, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr "virheellinen loppuliite ”%.*s” kokonaislukuvakiolla"
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, fuzzy, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr "virheellinen loppuliite ”%.*s” kokonaislukuvakiolla"
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%qD:n esittely ei-jäsenenä"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, fuzzy, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "paluutyyppi on oletuksena %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, fuzzy, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "funktion määrittely esitelty %<auto%>:ksi"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, fuzzy, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "%q+D:n edellinen määrittely oli täällä"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "%q+D:n edellinen määrittely oli täällä"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, fuzzy, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "%Jparametri %qD esitelty %<inline%>:ksi"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "automaattimuuttuja %qE ei voi olla %<threadprivate%>"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr "%qD:n esittely ei-funktiona"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, fuzzy, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr "keskeytysfunktiolla on oltava void-paluutyyppi"
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 msgid "a variable concept cannot be constrained"
 msgstr "muuttujalla %qD on alustin, mutta vaillinainen tyyppi"
 
 # semi-fuzzy
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, fuzzy, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "ei-staattista datajäsentä %q+D käytetty virheellisesti"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "ISO C++ kieltää epäkokonaislukutyyppiä %2$qT olevan vakiojäsenen %1$qD alustamisen"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, fuzzy, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "ISO C++ kieltää epäkokonaislukutyyppiä %2$qT olevan vakiojäsenen %1$qD alustamisen"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, fuzzy, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "ISO C++ kieltää epäkokonaislukutyyppiä %2$qT olevan vakiojäsenen %1$qD alustamisen"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ kieltää jäsenen %qD alustuksen"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ kieltää epäkokonaislukutyyppiä %2$qT olevan vakiojäsenen %1$qD alustamisen"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "taulukon %qD koolla on epäkokonaislukutyyppi %qT"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "taulukon koolla on epäkokonaislukutyyppi %qT"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "taulukon koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C++ kieltää nollan kokoisen taulukon %qD"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ kieltää nollan kokoisen taulukon"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ kieltää muuttuvakokoisen taulukon %qD"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++ kieltää muuttuvakokoisen taulukon"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, fuzzy, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "taulukon koon ylivuoto"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%qD esiteltiin täällä"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 msgid "creating array of template placeholder type %qT"
 msgstr "NULLin muunnos epäosoitintyypiksi %qT"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "%qD:n esittely void-taulukkona"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr "luodaan void-taulukko"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "%qD:n esittely funktioiden taulukkona"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr "luodaan funktioiden taulukko"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "%qD:n esittely viitteiden taulukkona"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr "luodaan viitteiden taulukko"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "%qD:n esittely funktiojäsenten taulukkona"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr "luodaan funktiojäsenten taulukkoa"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "moniulotteisell taulukolla on oltava rajat kaikkiin suuntiin paitsi ensimmäiseen"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "moniulotteisell taulukolla on oltava rajat kaikkiin suuntiin paitsi ensimmäiseen"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 #| msgid "variable length array is used"
 msgid "variable-length array of %<auto%>"
 msgstr "käytetään muuttuvapituista taulukkoa"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, fuzzy, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "virheellinen hajottimen %qD käyttö tyyppinä"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "Tyhjä taulukkomuodostin kohdassa %C ei ole sallittu"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, fuzzy, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "virheellinen hajottimen %qD käyttö tyyppinä"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, fuzzy, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "paluutyyppi %q#T on vaillinainen"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr "virheellinen hajottimen %qD käyttö tyyppinä"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "%qD esitelty ei-parametrina"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "useita tallennusluokkia esittelymääritteissä"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "nimetön muuttuja tai kenttä esitelty voidiksi"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "muuttuja tai kenttä esitelty voidiksi"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "ystäväesittely ei nimeä luokkaa tai funktiota"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, fuzzy, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "hajottimet eivät voi olla cv-määriteltyjä"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "Virheellinen käyttäjänimi ”%s” funktiossa %s, rivillä %d. Keskeytys."
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "määrittelemättömän tyypin %<%s %s%> epäkelpo käyttö"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "Virheellinen käyttäjänimi ”%s” funktiossa %s, rivillä %d. Keskeytys."
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a class or namespace"
 msgstr "%qT ei ole luokka eikä nimiavaruus"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qE as non-function"
 msgstr "%qD:n esittely ei-funktiona"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qE as non-member"
 msgstr "%qD:n esittely ei-jäsenenä"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr ""
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "funktion määrittely ei esittele parametrejä"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "%qD:n esittely ei-funktiona"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "vaillinaisen tyypin typedef %qD epäkelpo käyttö"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "parametrin %qD esittely, mutta parametria ei ole olemassa"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr ""
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%Hprototyypin esittely"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, fuzzy, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "yli yksi tietotyyppi esittelymääritteissä"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C ei tue pelkkää %<complex%>-tyyppiä merkityksellä %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ kieltää muuttujan %qs esittelyn ilman tyyppiä"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "kohteen int-tyyppi on kapeampi kuin kohteen char-tyyppi"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ 1998 ei tue %<long long%> -tyyppiä"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "sekä %<signed%> että %<unsigned%> määritelty %qs:lle"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr "sekä %<long%> että %<short%> määritelty %qs:lle"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr "%qE:a käytetään alustamattomana tässä funktiossa"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr "%qE ei ole typedef eikä sisäinen tyyppi"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "%qE ei ole typedef eikä sisäinen tyyppi"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr "%qE ei ole typedef eikä sisäinen tyyppi"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, fuzzy, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "epäkelpo osoitintila %qs"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "jäsentä %qD ei voida esitellä sekä virtuaaliseksi että staattiseksi"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "jäsentä %qD ei voida esitellä sekä virtuaaliseksi että staattiseksi"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, fuzzy, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "parametrin %qD esittely, mutta parametria ei ole olemassa"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "tallennusluokka annettu malliparametrille %qs"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "tallennusluokka annettu parametrille %qs"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr "parametriksi ei voida esitellä %<constexpr%>:ksi"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%> luokan esittelyn ulkopuolella"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "attribuutti jätetty huomioimatta %q+#T:n esittelyssä"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "virheellinen funktioesittely"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "attribuutti jätetty huomioimatta %q+#T:n esittelyssä"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr "attribuutti jätetty huomioimatta %q+#T:n esittelyssä"
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "useita tallennusluokkia %qs:n esittelyssä"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "tallennusluokka annettu %qs:lle"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "sisäkkäinen funktio %qs esitelty %<extern%>:ksi"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, fuzzy, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "%<auto%> tiedostoalueen tyhjässä esittelyssä"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "funktioalue %qs implisiittisesti auto ja esitelty %<__thread%>:ksi"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, fuzzy, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "tallennusluokkatarkentimet virheellisiä parameteresittelyissä"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, gcc-internal-format
 msgid "attribute ignored"
 msgstr "attribuuttia ei huomioida"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, fuzzy, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr "%qE-attribuuttia ei huomioida %qT-tyyppiselle kentälle"
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "tarpeettomat sulkeet %qs:n esittelyssä"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, fuzzy, gcc-internal-format
 msgid "remove parentheses"
 msgstr "Odotettiin oikeaa sulkumerkkiä lausekkeessa kohdassa %C"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr "Funktiolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, fuzzy, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr "%qs-nimikkeen kaksoisesittely"
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, fuzzy, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, fuzzy, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr "%qD esitelty ei-parametrina"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr "paluutyyppi on vaillinainen tyyppi"
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, fuzzy, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr "%qs-nimikkeen kaksoisesittely"
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, fuzzy, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr "%qs-nimikkeen kaksoisesittely"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "virheellinen %<auto%>:n käyttö muunnosoperaattorissa"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr "tyyppimääreet jätetään huomiotta funktion paluutyypissä"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, fuzzy, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr "%qs-nimikkeen kaksoisesittely"
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, fuzzy, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, fuzzy, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr "%qs-nimikkeen kaksoisesittely"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr "%qD:n paluuarvon tyyppi ei ole %<int%>"
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs esitelty taulukon palauttavan funktiona"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "%<noreturn%>-funktio palauttaa ei-void-arvon"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "hajotin ei voi olla staattinen jäsenfunktio"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "muodostin ei voi olla staattinen jäsenfunktio"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "hajottimet eivät voi olla cv-määriteltyjä"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "muodostimet eivät voi olla cv-määriteltyjä"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, fuzzy, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr "hajottimet eivät voi olla cv-määriteltyjä"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr "hajottimet eivät voi olla cv-määriteltyjä"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "muodostimia ei voi esitellä virtuaalisiksi"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, fuzzy, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "tyypillä %qE on virtuaalisia jäsenfunktioita"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, fuzzy, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "luokkamäärittelyä ei voi esitellä ystäväksi"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "luokkamäärittelyä ei voi esitellä ystäväksi"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "mallit eivät voi olla virtuaalisia"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, fuzzy, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD:n esittely ei-jäsenenä"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "hajottimilla ei voi olla parametreja"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "luokalla %q#T on datajäseninä osoittimia"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "luokalla %q#T on datajäseninä osoittimia"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "luokalla %q#T on datajäseninä osoittimia"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "tyyppimuunnos lisää funktiotyyppiin uusia määreitä"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "tyyppimuunnos lisää funktiotyyppiin uusia määreitä"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, fuzzy, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "%qD ei ole mallifunktio"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, fuzzy, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "ylimääräinen kvalifiointi %<%T::%> jäsenelle %qs"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "funktiota %<main%> ei voi määrittää avoimeksi"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "funktiota %<main%> ei voi määrittää avoimeksi"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, fuzzy, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "funktiota %<main%> ei voi määrittää avoimeksi"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, fuzzy, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "Muuttujatyyppi on UNKNOWN sijoituksessa kohdassa %L"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, fuzzy, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, fuzzy, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "%<virtual%> luokan esittelyn ulkopuolella"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr "%<inline%> tyhjässä esittelyssä"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, fuzzy, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "vain muodostimen esittely voi olla %<explicit%>"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, fuzzy, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, fuzzy, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, fuzzy, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "jäsentä %qD ei voida esitellä sekä virtuaaliseksi että staattiseksi"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, fuzzy, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "%Jparametri %qD esitelty %<inline%>:ksi"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<[*]%> ei ole esittelyssä"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, fuzzy, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "funktion määrittely esitelty %<auto%>:ksi"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr "<typedef-virhe>"
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, fuzzy, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "Odotettiin käyttöoikeustarkennetta kohdassa %C"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "kentällä %q+#D on sama nimi kuin luokalla"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "ystäväesittely ei nimeä luokkaa tai funktiota"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, fuzzy, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "strftime-muotoilut eivät voi muotoilla argumentteja"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, fuzzy, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "luokkamäärittelyä ei voi esitellä ystäväksi"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, fuzzy, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "luokkamäärittelyä ei voi esitellä ystäväksi"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr ""
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "virheelliset määreet ei-jäsenfunktion tyypissä"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr "<typedef-virhe>"
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, fuzzy, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "%q+D esitelty staattisena, edellinen esittely ei-staattinen"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "virheellinen %qT-tyyppisen viittauksen alustus %qT-tyyppisestä lausekkeesta"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, fuzzy, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "parametrin %qD esittely, mutta parametria ei ole olemassa"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, fuzzy, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr "%qD ei ole funktiomalli"
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "parametri esitelty %<auto%>:ksi"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "parametri esitelty %<auto%>:ksi"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "mallinimen %qE virheellinen käyttö ilman argumenttiluetteloa"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "ei-staattinen datajäsen %qE esitelty %<constexpr%>:ksi"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C++ kieltää nollan kokoisen taulukon %qD"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C90 ei tue joustavia taulukon jäseniä"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "%qD:n virheellinen käyttö"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "virheellinen funktioesittely"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "funktio %qD esitelty virtuaaliseksi unionissa"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "jäsentä %qD ei voida esitellä sekä virtuaaliseksi että staattiseksi"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, fuzzy, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "%qD esitelty staattisesti sisäkkäin"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "%qD:n esittely %qT:n jäsenenä"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr "hajotin ei voi olla %<constexpr%>"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, fuzzy, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "%qD esitelty staattisesti sisäkkäin"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, fuzzy, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr "Kopiomuodostin %qs"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "hajotin ei voi olla staattinen jäsenfunktio"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be %qs"
 msgstr "tiedostoa %s ei voi avata"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 msgid "variable template declared here"
 msgstr "%qD esiteltiin täällä"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "%2$qD:n parametrilla %1$P on vaillinainen tyyppi %3$qT"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "nimellä %qT on vaillinainen tyyppi"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, fuzzy, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "sisäkkäinen funktio %qs esitelty %<extern%>:ksi"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "sisäkkäinen funktio %qs esitelty %<extern%>:ksi"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, fuzzy, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr "%qE-attribuuttia ei huomioida %qT-tyyppiselle kentälle"
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr "ei-staattinen datajäsen %qE esitelty %<constexpr%>:ksi"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr "ei-staattinen datajäsen %qE esitelty %<constexpr%>:ksi"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "tallennusluokka %<auto%> virheellinen funktiolle %qs"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "tallennusluokka %<register%> virheellinen funktiolle %qs"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "tallennusluokka %<__thread%> virheellinen funktiolle %qs"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "tallennusluokka %<__thread%> virheellinen funktiolle %qs"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "kohdistusta ei voi määritellä %q+D:lle"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, fuzzy, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, fuzzy, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "tallennusluokkatarkentimet virheellisiä parameteresittelyissä"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "tallennusluokkatarkentimet virheellisiä parameteresittelyissä"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "virtuaalinen ei-luokkafunktio %qs"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, fuzzy, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "virtuaalinen ei-luokkafunktio %qs"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "virtuaalinen ei-luokkafunktio %qs"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, fuzzy, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "jäsenfunktiota %qD ei voi kutsua ilman oliota"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, fuzzy, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "%qE esitelty funktion palauttavana funktiona"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr ""
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, fuzzy, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "jäsentä %qD ei voida esitellä sekä virtuaaliseksi että staattiseksi"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, fuzzy, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "jäsenfunktiota %qD ei voi kutsua ilman oliota"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "%qD käytössä ilman esittelyä ennen sen määrittelyä"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "parametriksi ei voida esitellä %<constexpr%>:ksi"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs alustettu ja esitelty %<extern%>-avainsanalla"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs on sekä %<extern%> että alustin"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "%qD:n malliargumentti käyttää paikallista tyyppiä %qT"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "%qD:n malliargumentti käyttää paikallista tyyppiä %qT"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "vaillinaisen tyypin typedef %qD epäkelpo käyttö"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "Varoita implisiittisistä funktioesittelyistä"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "virheellinen parametrityyppi %qT"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "parametri %qD virheellisesti esitelty metodityyppi"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "virheellinen tyyppimuunnos funktiotyyppiin %qT"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "virheellinen tyyppimuunnos funktiotyyppiin %qT"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "virheellinen muodostin; tarkoitit todennäköisesti %<%T (const %T&)%>"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, fuzzy, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD esitelty ei-parametrina"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, fuzzy, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%q+D esitelty ystävänä"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a non-static member function"
 msgstr "jäsenfunktiota %qD ei voi kutsua ilman oliota"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "%qD:n esittely ei-jäsenenä"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, fuzzy, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, fuzzy, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "jäsenfunktiota %qD ei voi kutsua ilman oliota"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, fuzzy, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ kieltää ?:-operaattorin ylikuormituksen"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD:lla ei saa olla vaihtuvaa määrää argumentteja"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr "%qD:n on otettava joko nolla tai yksi argumenttia"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr "%qD:n on otettava joko yksi tai kaksi argumenttia"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "Kääntäjänsisäisellä ”%s”-funktiolla kohdassa %L on oltava vähintään kaksi argumenttia"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "Kääntäjänsisäisellä ”%s”-funktiolla kohdassa %L on oltava vähintään kaksi argumenttia"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 msgid "%qD must have no arguments"
 msgstr "%qD:n on otettava tasan kaksi argumenttia"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr "%qD:n on otettava tasan yksi argumentti"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr "%qD:n on otettava tasan kaksi argumenttia"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD:lla ei voi olla oletusargumentteja"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "muunnnos void-tyypiksi ei koskaan käytä tyyppimuunnosoperaattoria"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "muunnnos void-tyypiksi ei koskaan käytä tyyppimuunnosoperaattoria"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "muunnnos void-tyypiksi ei koskaan käytä tyyppimuunnosoperaattoria"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "muunnnos void-tyypiksi ei koskaan käytä tyyppimuunnosoperaattoria"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "muunnnos void-tyypiksi ei koskaan käytä tyyppimuunnosoperaattoria"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, fuzzy, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "vertailu ”etumerkitön lauseke >= 0” on aina tosi"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, fuzzy, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "<paluuarvo> "
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, fuzzy, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "<paluuarvo> "
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, fuzzy, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "<paluuarvo> "
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, fuzzy, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, fuzzy, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, fuzzy, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "tiedostonimi puuttuu %qs:n jälkeen"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "%q+D:lla on edellinen esittely täällä"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, fuzzy, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "lueteltu tyyppi määritelty täällä"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "%q+D:lla on edellinen esittely täällä"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, fuzzy, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "lueteltu tyyppi määritelty täällä"
@@ -58207,116 +58214,101 @@ msgstr "lueteltu tyyppi määritelty täällä"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, fuzzy, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "jäsennysvirhe malliargumenttien luettelossa"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "%qD-viittaus on moniselitteinen"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 #| msgid "function template %qD redeclared as a class template"
 msgid "class template %qD redeclared as non-template"
 msgstr "funktiomalli %qD esitelty uudelleen luokkamallina"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD:llä on sama nimi kuin luokalla, jossa se on esitelty"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT ei ole malli"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, fuzzy, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "on ristiriidassa %q+#D:n edellisen esittelyn kanssa"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "C++:n sisäinen tietotyyppi %qT määritelty uudelleen"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-msgid "cannot declare %qD in a different module"
-msgstr "bittikentän %qD osoitetta ei voi ottaa"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "esitelty aiemmin täällä"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, fuzzy, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "useita kenttiä unionissa %qT alustettu"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr "%qT määritelty monella suoralla kannoalla"
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr "%qT määritelty suoralla virtuaalisella kannalla"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, fuzzy, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "%qT ei ole luokka-, struct- eikä unionityyppi"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "rekursiivinen tyyppi %qT määrittelemätön"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "perustyypin %qT kaksoiskappale virheellinen"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-msgid "cannot declare %qD in different module"
-msgstr "bittikentän %qD osoitetta ei voi ottaa"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, fuzzy, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr "tyyppitäsmäämättömyys taulukkoviitteessä"
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr "edellinen määrittely täällä"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, fuzzy, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr "tyyppitäsmäämättömyys taulukkoviitteessä"
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, fuzzy, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr "tyyppitäsmäämättömyys taulukkoviitteessä"
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr "cppchar_t:n on oltava etumerkitön tyyppi"
@@ -58325,82 +58317,82 @@ msgstr "cppchar_t:n on oltava etumerkitön tyyppi"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr ""
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, fuzzy, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, fuzzy, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "ylivuoto luetellun tyypin arvoissa"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, fuzzy, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "edellinen %q+#T:n määrittely"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "paluutyyppi %q#T on vaillinainen"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, fuzzy, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator delete%>:n on palautettava tyyppi %qT"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "return-lause ilman arvoa funktiossa, jonka paluutyyppi on %qT"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, fuzzy, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "funktion paluuarvojen tyypit eivät ole yhteensopivia %<volatile%>:n takia"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "ei palautuslausetta funktiossa, joka palauttaa ei-voidin"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, fuzzy, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD on jo määritelty"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 msgid "using %qs"
 msgstr "          %s"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, fuzzy, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr "%q+D:n oletustyyppi on %<int%>"
@@ -58455,7 +58447,7 @@ msgstr ""
 msgid "deleting %qT is undefined"
 msgstr "rekursiivinen tyyppi %qT määrittelemätön"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, fuzzy, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "malliesittelylle %q+D"
@@ -58465,7 +58457,7 @@ msgstr "malliesittelylle %q+D"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "tyyppimuunnettu argumentti %qD ei sovi prototyyppiin"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, fuzzy, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "jäsentä %qD ei voida esitellä sekä virtuaaliseksi että staattiseksi"
@@ -58650,64 +58642,64 @@ msgstr "hajotin ei voi olla staattinen jäsenfunktio"
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%>:n ensimmäisen parametrin tyypin on oltava %qT"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, fuzzy, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, fuzzy, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qD esitelty uudelleen eri näkyvyydellä"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, fuzzy, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qD esitelty uudelleen eri näkyvyydellä"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%J%qF käytetty, mutta ei määritelty"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr "%J%qF käytetty, mutta ei määritelty"
@@ -58716,104 +58708,104 @@ msgstr "%J%qF käytetty, mutta ei määritelty"
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "%J%qD esitelty uudelleen ilman linkitystä"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "%J%qD esitelty uudelleen ilman linkitystä"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr ""
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%J%qF käytetty, mutta ei määritelty"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%J%qF käytetty, mutta ei määritelty"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, fuzzy, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr "%J%qD esitelty uudelleen ilman linkitystä"
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, fuzzy, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "%J%qD esitelty uudelleen ilman linkitystä"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "%q+D:n data-alue on ristiriidassa edellisen esittelyn kanssa"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr "edellinen esittely %q+D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr "sisäkkäinen funktio %qs esitelty %<extern%>:ksi"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "oletusargumentti annettu %2$q#D:n parametrille %1$d"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, fuzzy, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr "%<operator new%>:n ensimmäisellä parametrilla ei voi olla oletusargumenttia"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr "implisiittisesti esitelty %qD on vanhentunut"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, fuzzy, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "NULLin muunnos epäosoitintyypiksi"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, fuzzy, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "poistettu funktio %q+D"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "%q+D:n virheellinen uudelleenesittely"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr ""
@@ -58918,7 +58910,7 @@ msgstr "palautettu viittaus paikalliseen muuttujaan %q+D"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "tyypillä %qT ei ole %qE-nimistä jäsentä"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD:n esittely %qT:n jäsenenä"
@@ -58928,7 +58920,7 @@ msgstr "%qD:n esittely %qT:n jäsenenä"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "tyypillä %qT ei ole %qE-nimistä jäsentä"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD ei ole %qD:n jäsen"
@@ -58953,47 +58945,47 @@ msgstr ""
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, fuzzy, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "LAUSEKE"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, fuzzy, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "%<%T%>-tyyppinen poikkeus siepataan"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, fuzzy, gcc-internal-format
 msgid "for type %qT"
 msgstr "abs-funktiolle annettu väärä tyyppiargumentti"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr ""
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -59260,12 +59252,12 @@ msgstr "perustyypin %qT kaksoiskappale virheellinen"
 msgid "type %qT is not a direct base of %qT"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, fuzzy, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "skalaarialustimen ympärillä on aaltosulkeet"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT ei ole luokkatyyppi"
@@ -59280,12 +59272,12 @@ msgstr "luokalla %qT ei ole %qD-nimistä kenttää"
 msgid "invalid pointer to bit-field %qD"
 msgstr "virheellinen osoitin bittikenttään %qD"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
@@ -59480,52 +59472,52 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, fuzzy, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "%qE:lla ei ole luokkatyyppiä"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, fuzzy, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr "yhdysliteraalin koko on muuttuva"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, fuzzy, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "versioviitetaulukolle ei voi varata muistia"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "%2$qD:n parametrilla %1$P on vaillinainen tyyppi %3$qT"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, fuzzy, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr "%qE on vanhentunut"
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr "lisää eksplisiittinen %<this%>- tai %<*this%>-kaappaus"
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, fuzzy, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "Lambda-funktio"
@@ -59897,228 +59889,273 @@ msgstr "odotettiin %<template%>"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting global module declaration %#qD"
 msgstr "ristiriitainen esittely %q#D"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration %q+D"
 msgid "existing declaration %#qD"
 msgstr "esittelyssä %q+D"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr "%qD esitelty extern-avainsanalla sisäkkäin"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing definition"
 msgid "existing definition %qD"
 msgstr "puuttuva määrittely"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "... this enumerator %qD"
 msgstr "luetellun tyypin jäsenen %q+D uudelleenesittely"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "%qD esitelty extern-avainsanalla sisäkkäin"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, fuzzy, gcc-internal-format
 msgid "recursive lazy load"
 msgstr "    Rekursiiviset jäsenet:\n"
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 msgid "module %qs declared here"
 msgstr "%qD esiteltiin täällä"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, fuzzy, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr "%s%qs%s ei ole sallittu"
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr "%q+D:n edellinen määrittely oli täällä"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr "Ei voida poistaa moduulitiedostoa ”%s”: %s"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "compiled module is %sversion %s"
 msgstr "  --version                Näytä kääntäjän versiotiedot\n"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2-versio %s\n"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 msgid "module %qs found"
 msgstr "Ei löydy"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr ""
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr "tyyppitäsmäämättömyys taulukkoviitteessä"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 msgid "interface partition is not exported"
 msgstr "kohdemuoto ei tue äärettömyyttä"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr "%s: ei voida avata PCH-tiedostoa: %m\n"
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr "%s: ei voida avata PCH-tiedostoa: %m\n"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr "%q+D:n osoitealue on ristiriidassa edellisen esittelyn kanssa"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "nimiavaruuden %qD esittely on ristiriidassa"
+
+#: cp/module.cc:19125
+#, fuzzy, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr "nimiavaruuden %qD esittely on ristiriidassa"
+
+#: cp/module.cc:19130
+#, fuzzy, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr "esitelty täällä"
+
+#: cp/module.cc:19134
+#, fuzzy, gcc-internal-format
+msgid "import declared in global module"
+msgstr "virtuaalinen ei-luokkafunktio %qs"
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "malliesittelylle %q+D"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in global module"
+msgstr "%q#D:n esittely C-kielen linkityksellä"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+msgid "previously declared in module %qs"
+msgstr "esitelty aiemmin täällä"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+msgid "previously declared in global module"
+msgstr "esitelty aiemmin täällä"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 msgid "reading CMI %qs"
 msgstr "          %s"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, fuzzy, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr "tuntematon valitsin -%s"
@@ -60130,394 +60167,394 @@ msgstr "tuntematon valitsin -%s"
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 msgid "module already declared"
 msgstr "%qs alustettu ja esitelty %<extern%>-avainsanalla"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, fuzzy, gcc-internal-format
 #| msgid "In module imported at"
 msgid "module already imported"
 msgstr "Moduulissa, joka tuotu kohdassa"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, fuzzy, gcc-internal-format
 #| msgid "In module imported at"
 msgid "module %qs imported here"
 msgstr "Moduulissa, joka tuotu kohdassa"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr "Tuntematon tiheys: ”%c”"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "virheellinen esikääntäjän direktiivi #%s"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, fuzzy, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 msgid "invalid header name %qs"
 msgstr "virheellinen --param-arvo %qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 msgid "invalid module name %qs"
 msgstr "virheellinen --param-arvo %qs"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 msgid "writing CMI %qs"
 msgstr "virhe kirjoitettaessa i-solmua"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 #| msgid "Error writing modules file: %s"
 msgid "not writing module %qs due to errors"
 msgstr "Virhe kirjoitettaessa moduulitiedostoa %s"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr "%s: ei voida avata PCH-tiedostoa: %m\n"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr "tls_model-argumentti ei ole merkkijono"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, fuzzy, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "malliesittelylle %q+D"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q+D:n data-alue on ristiriidassa edellisen esittelyn kanssa"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr "muuttujan %q+D koko muistissa ei ole tunnettu"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "ristiriitainen esittely %q#D"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, fuzzy, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "parametri %qD virheellisesti esitelty metodityyppi"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "%q+D:n esittely varjostaa sisäänrakennetun funktion"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "%qD:n esittely %qT:n jäsenenä"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "friend-esittely %qD paikallisessa luokassa ilman edeltävää esittelyä"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %s(%E) %p %d\n"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d\n"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, fuzzy, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr "%q+D esitelty täällä"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr "%q+D esitelty täällä"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T::%D%> nimeää muodostimen, ei tyyppiä"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, fuzzy, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "virtuaalinen ei-luokkafunktio %qs"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, fuzzy, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qE ei ole luokka, nimiavaruus eikä lueteltu tyyppi"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, fuzzy, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "%qD:n esittely ei-jäsenenä"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr "virtuaalinen ei-luokkafunktio %qs"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a direct base of %qT"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, fuzzy, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr "oliko tarkoitus käyttää loogista negaatiota?"
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "%qD esitelty ei-parametrina"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr "ristiriitainen esittely %q#D"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, fuzzy, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> nimeää muodostimen, ei tyyppiä"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "%qD ei ole luokka eikä nimiavaruus"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, fuzzy, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "%qD:n esittely viitteiden taulukkona"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, fuzzy, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD esitelty ei-parametrina"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "%qD esitelty ei-parametrina"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr "%q+D esitelty ystävänä"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, fuzzy, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "%qs-attribuutti tarvitsee prototyyppejä, joilla nimettyjä argumentteja"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr ""
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "%qE-attribuutti pätee vain muuttujiin"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, fuzzy, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "%<fast_interrupt%>-attribuuttidirektiivi jätetty huomiotta"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] "ehdotettu vaihtoehto:"
 msgstr[1] "ehdotetut vaihtoehdot:"
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, fuzzy, gcc-internal-format
 msgid "  %qE"
 msgstr "%qE on vanhentunut"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "%<this%> ei ole käytettävissä staattisissa jäsenfunktioissa"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, gcc-internal-format
 msgid "it was later defined here"
 msgstr "määriteltiin myöhemmin tässä"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr "funktion %q+D määrittely on merkitty dllimport-tyyppiseksi"
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 msgid "%<strong%> using directive no longer supported"
 msgstr "valitsin %qs ei ole enää tuettu"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "<this%>-sanaa ei voi käyttää tässä yhteydessä"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "muunnos tyypistä %qT tyyppiin %qT on moniselitteinen"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, fuzzy, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "%<namespace%>-määrittely ei ole sallittu täällä"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, fuzzy, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr "%Jlohkoattribuuttia ei voi määrittää paikalliselle muuttujalle"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 msgid "%qD defined here"
 msgstr "nimiö %qD määritelty täällä"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "%qD:a käytetään alustamattomana tässä funktiossa"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr "edellinen määrittely täällä"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr ""
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr ""
@@ -60542,7 +60579,7 @@ msgstr "tunniste %qE on ristiriidassa C++:n varatun sanan kanssa"
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr "%Jvanhanmallinen funktiomäärittely"
@@ -60788,7 +60825,7 @@ msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, fuzzy, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
@@ -60968,7 +61005,7 @@ msgstr ""
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, fuzzy, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "odotettiin lauseketta"
@@ -61023,7 +61060,7 @@ msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 msgid "template-id not allowed for destructor in C++20"
 msgstr "%<[*]%> ei ole esittelyssä"
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, fuzzy, gcc-internal-format
 msgid "remove the %qs"
 msgstr "Odotettiin oikeaa sulkumerkkiä lausekkeessa kohdassa %C"
@@ -61043,7 +61080,7 @@ msgstr "%qD ei ole mallifunktio"
 msgid "expected unqualified-id"
 msgstr "ID"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD ei ole malli"
@@ -61093,7 +61130,7 @@ msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "väärä määrä argumentteja funktiolle %<__builtin_next_arg%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "väärä määrä argumentteja funktiolle %<__builtin_next_arg%>"
@@ -61128,7 +61165,7 @@ msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "%qD:n virheellinen käyttö"
@@ -61153,7 +61190,7 @@ msgstr "ISO C ei salli ylimääräisiä %<;%>-merkkejä funktion ulkopuolella"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
@@ -61303,8 +61340,8 @@ msgstr "tallennusluokka annettu parametrille %qs"
 msgid "capture of non-variable %qE"
 msgstr "%qD ei ole muuttuja"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%q+D esitelty täällä"
@@ -61344,7 +61381,7 @@ msgstr "oletusargumentti määritelty lambda-parametrille"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -61469,7 +61506,7 @@ msgstr ""
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, fuzzy, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "%s-lausetta odotettiin kohdassa %L"
@@ -61531,7 +61568,7 @@ msgstr "%Jparametrin %qD tyyppi on vaillinainen"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, fuzzy, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "odotettiin iteraatioesittelyä tai -alustusta"
@@ -61557,7 +61594,7 @@ msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ kieltää lasketut goto-käskyt"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, fuzzy, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "%s-lausetta odotettiin kohdassa %L"
@@ -61839,12 +61876,12 @@ msgstr "skalaarialustimen ympärillä on aaltosulkeet"
 msgid "cannot expand initializer for member %qD"
 msgstr "ei voi laajentaa alustinta jäsenelle %<%D%>"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, fuzzy, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "%q+D esitelty staattisena, edellinen esittely ei-staattinen"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, fuzzy, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
@@ -62482,7 +62519,7 @@ msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole obj
 msgid "%qT not permitted in template argument"
 msgstr "täsmäämättömät argumentit"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT"
@@ -62661,12 +62698,12 @@ msgstr "edellinen %q+#T:n määrittely"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, fuzzy, gcc-internal-format
 msgid "expected class-key"
 msgstr "odotettiin %<class%>"
@@ -62870,37 +62907,37 @@ msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 msgid "expression must be enclosed in parentheses"
 msgstr "taulukon koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 msgid "result type is not a plain type-constraint"
 msgstr "haluttu sijainti ei ole kokonaislukuvakio"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr "haluttu sijainti ei ole kokonaislukuvakio"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "virheellinen %<%T::%E%>:n esittely"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, fuzzy, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "%J%qD:n edellinen esittely oli täällä"
@@ -62909,439 +62946,439 @@ msgstr "%J%qD:n edellinen esittely oli täällä"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, fuzzy, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "%J%qD:n edellinen esittely oli täällä"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, fuzzy, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr "%<[*]%> ei ole esittelyssä"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "nimetyt paluuarvot eivät ole enää tuettuja"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, fuzzy, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr "lopetusalkio puuttuu funktiokutsusta"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, fuzzy, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "malliesittelylle %q+D"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "malli C-linkityksellä"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, fuzzy, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "    Ei ilmaistuja epäjäseniä\n"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, fuzzy, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "malliesittelylle %q+D"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, fuzzy, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr "esittely ei esittele mitään"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, fuzzy, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, fuzzy, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "mallinimen %qE virheellinen käyttö ilman argumenttiluetteloa"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, fuzzy, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "mallinimen %qE virheellinen käyttö ilman argumenttiluetteloa"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "mallinimen %qE virheellinen käyttö ilman argumenttiluetteloa"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr "%<sizeof...%>-argumentti on ympäröitävä sulkeilla"
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "virheellinen hajottimen %qD käyttö tyyppinä"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr "Kaksoiskappale pääsy-tarkenne kohdassa %C"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr "Tuntematon (tyyppi = %d, bitit = %d)\n"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, fuzzy, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "käytetty %<__thread%> ennen %<extern%>:a"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, fuzzy, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%qE ei ole typedef eikä sisäinen tyyppi"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ 1998 ei tue %<long long%> -tyyppiä"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, fuzzy, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "sekä %<_Sat%> että %<char%> esittelymääritteissä"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "ylimääräinen %<const%>"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "kaksois-%qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "odotettiin %<new%>"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "odotettiin %<delete%>"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "odotettiin %<return%>"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "odotettiin %<extern%>"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "odotettiin %<static_assert%>"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "odotettiin %<decltype%>"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "odotettiin %<operator%>"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "odotettiin %<class%>"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "odotettiin %<template%>"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "odotettiin %<namespace%>"
 
 # XXXXXXX
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, fuzzy, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, fuzzy, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "odotettiin %<=%>, %<,%>, %<;%>, %<asm%> tai %<__attribute__%>"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, fuzzy, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "”)” oli odotus"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, fuzzy, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "  siirtyy catch-lohkoon"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, fuzzy, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "<throw-lauseke>"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, fuzzy, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "nimiö "
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, fuzzy, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, fuzzy, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "Taso 2 ei ole synkronoitu"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, fuzzy, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "<throw-lauseke>"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, fuzzy, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, fuzzy, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr "odotettiin %<(%> tai rivin loppu"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, fuzzy, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "”)” oli odotus"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, fuzzy, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "”)” oli odotus"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, fuzzy, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "”)” oli odotus"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, fuzzy, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "”)” oli odotus"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, fuzzy, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "odotettiin %<:%> tai %<...%>"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, fuzzy, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "  odotettiin luokkamallia, saatiin %qT"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, fuzzy, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "%qs määritelty parametrille %qE"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, fuzzy, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "%q+#D aiemmin esitelty täällä"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "luokalla %q#T on datajäseninä osoittimia"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, fuzzy, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qD esitelty uudelleen eri näkyvyydellä"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "odotettiin %<class%>"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr "nimiö %qD määritelty täällä"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr "esitelty täällä"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, fuzzy, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD esitelty uudelleen eri näkyvyydellä"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "C++98:ssa %<template%> (selventimenä) on sallittu vain malleissa"
 
 # XXX
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, fuzzy, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "oletusargumentti määritelty lambda-parametrille"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, fuzzy, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "käytetty %<__thread%> ennen %<extern%>:a"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr "useita tallennuspaikkoja esittelymääritteissä"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr "useita tallennuspaikkoja esittelymääritteissä"
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr ""
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, fuzzy, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "%qE ei ole Objective-C-luokkanimi eikä -alias"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr "Odotettiin toista ulottuvuutta taulukkoesittelyssä kohdassa %C"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, fuzzy, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "%Jlohkoattribuuttia ei voi määrittää paikalliselle muuttujalle"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr "ylimääräinen %qs Objective-C++-metodien välissä"
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, fuzzy, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, fuzzy, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "odotettiin tunnistetta tai %<(%>"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, fuzzy, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "%qs-attribuuttia ei huomioida %qs:lle"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, fuzzy, gcc-internal-format
 msgid "invalid type for property"
 msgstr "virheellinen vastaanottajatyyppi %qs"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, fuzzy, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr "<tuntematon>"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 msgid "expected integer expression list"
 msgstr "odotettiin kokonaislukulauseketta"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, fuzzy, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "  odotettiin luokkamallia, saatiin %qT"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "odotettiin tunnistetta tai %<(%>"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
@@ -63350,12 +63387,12 @@ msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "valitsin %qs ei ole enää tuettu"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, fuzzy, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr "Alustus kohdassa %C ei ole sallittu PURE-proseduurissa"
@@ -63365,133 +63402,133 @@ msgstr "Alustus kohdassa %C ei ole sallittu PURE-proseduurissa"
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, fuzzy, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "sisäkkäisessä funktiossa käytetty rekisterimuuttujaa %qD"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%Jluetellun tyypin jäsenen %qd uudelleenesittely"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "epäkelpo alustin"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "odotettiin kokonaislukulauseketta"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, fuzzy, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr "%Jluetellun tyypin jäsenen %qd uudelleenesittely"
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, fuzzy, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr "edellinen esittely"
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, fuzzy, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr "%Jluetellun tyypin jäsenen %qd uudelleenesittely"
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, fuzzy, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr "edellinen esittely"
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "#pragma GCC optimize ei ole sallittu funktioiden sisällä"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, fuzzy, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr "_Peru"
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr "odotettiin %<,%> tai %<;%>"
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, fuzzy, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr "Käyttö: %s <transaktiotiedosto> <tiedostojärjestelmä>\n"
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, fuzzy, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr "%Jvanhanmallinen funktiomäärittely"
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "tuntematon #pragma GCC coprocessor %E"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "#pragma GCC optimize ei ole sallittu funktioiden sisällä"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr "moduulienvälisiä optimointeja ei ole toteutettu C++:lle"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr "Avainsana-argumentti ”%s” kohdassa %L ei ole proseduurissa"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, fuzzy, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr "mallit eivät voi olla virtuaalisia"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -63521,7 +63558,7 @@ msgstr "muodostimen virheellinen käyttö mallina"
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "%qD ei ole nimiavaruuden nimi"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, fuzzy, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "%qD ei ole nimiavaruuden nimi"
@@ -63536,170 +63573,170 @@ msgstr "funktion %q+D määrittely on merkitty dllimport-tyyppiseksi"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "%J%qD:n edellinen esittely oli täällä"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, fuzzy, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "muodostimen virheellinen käyttö mallina"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "%qD ei ole mallifunktio"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "funktio %qE esitelty implisiittisesti"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, fuzzy, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "(mahdollisesti %qT:n määrittelyn perästä puuttuu puolipiste)"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 msgid "from definition of %q#D"
 msgstr "funktion %q+D määrittely on merkitty dllimport-tyyppiseksi"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, fuzzy, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "(mahdollisesti %qT:n määrittelyn perästä puuttuu puolipiste)"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, fuzzy, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, fuzzy, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "(mahdollisesti %qT:n määrittelyn perästä puuttuu puolipiste)"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 msgid "%s %#qD"
 msgstr "%s %d"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD ei ole funktiomalli"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "%qD ei ole muuttujamalli"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, fuzzy, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "%qD:n tyyppi ei täsmää aiemman esittelyn kanssa"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, fuzzy, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, fuzzy, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr "%qD ei ole mallifunktio"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "(mahdollisesti %qT:n määrittelyn perästä puuttuu puolipiste)"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "%J%qD:n edellinen esittely oli täällä"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "(mahdollisesti %qT:n määrittelyn perästä puuttuu puolipiste)"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "ensiö"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "ensiö"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 msgid "template-id %qE in declaration of primary template"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, fuzzy, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, fuzzy, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, fuzzy, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "%qD esitelty ei-parametrina"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "Odotettiin toista ulottuvuutta taulukkoesittelyssä kohdassa %C"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "funktio %qE esitelty implisiittisesti"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr "%qs alustettu ja esitelty %<extern%>-avainsanalla"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, fuzzy, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "%Hdatamäärittelyllä ei ole tyyppiä eikä tallennusluokkaa"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, fuzzy, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "oletusargumentti määritelty lambda-parametrille"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD ei ole mallifunktio"
@@ -63712,154 +63749,154 @@ msgstr "%qD ei ole mallifunktio"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, fuzzy, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, fuzzy, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "%qD:n esittely %qT:n jäsenenä"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "useita tallennuspaikkoja esittelymääritteissä"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 msgid "friend declaration here"
 msgstr "%q+D:lla on edellinen esittely täällä"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr "funktio %qE esitelty implisiittisesti"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, fuzzy, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr "Muuttujatyyppi on UNKNOWN sijoituksessa kohdassa %L"
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, fuzzy, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "Muuttujatyyppi on UNKNOWN sijoituksessa kohdassa %L"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, fuzzy, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "Muuttujatyyppi on UNKNOWN sijoituksessa kohdassa %L"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, fuzzy, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr "parametrin %qD esittely, mutta parametria ei ole olemassa"
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr "        %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "%J%qD:n esittely varjostaa parametria"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr "%qD esitelty ei-parametrina"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "muuttuja %qD esitelty %<inline%>:ksi"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "%qs:n esittelyssä tyyppi on oletuksena %<int%>"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, fuzzy, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, fuzzy, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, fuzzy, gcc-internal-format
 msgid "primary template here"
 msgstr "ensiö"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, fuzzy, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 msgid "too many arguments for partial specialization %qT"
 msgstr "liian monta argumenttia funktiolle %qE"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, fuzzy, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 msgid "primary template %qD"
 msgstr "ensiö"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, fuzzy, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr "%Jparametrin nimi puuttuu parametrilistasta"
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, fuzzy, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr "%Jparametrin nimi puuttuu parametrilistasta"
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, fuzzy, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "tyyppimuunnettu argumentti %qD ei sovi prototyyppiin"
 msgstr[1] "tyyppimuunnettu argumentti %qD ei sovi prototyyppiin"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, fuzzy, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "%qD:lla ei voi olla oletusargumentteja"
@@ -63868,47 +63905,47 @@ msgstr "%qD:lla ei voi olla oletusargumentteja"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "%Jparametrin nimi puuttuu parametrilistasta"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, fuzzy, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "tallennusluokka annettu parametrille %qs"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, gcc-internal-format
 msgid "template %qD declared"
 msgstr "%qD-malli esitelty"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, fuzzy, gcc-internal-format
 msgid "template class without a name"
 msgstr "funktiomalli %qD esitelty uudelleen luokkamallina"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, fuzzy, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr "useita tallennuspaikkoja esittelymääritteissä"
@@ -63918,507 +63955,507 @@ msgstr "useita tallennuspaikkoja esittelymääritteissä"
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, fuzzy, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "%qD ei ole malli"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, fuzzy, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, fuzzy, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "  odotettiin tyyppiä, saatiin %qT"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, fuzzy, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, fuzzy, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  mutta %d vaaditaan"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, fuzzy, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "tyyppimuunnettu argumentti %qD ei sovi prototyyppiin"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, fuzzy, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "muodostimen virheellinen käyttö mallina"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "%q+D:n virheellinen uudelleenesittely"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT ei ole malli"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, fuzzy, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "%qs:n esittelyssä tyyppi on oletuksena %<int%>"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] "%J%qD:n edellinen esittely oli täällä"
 msgstr[1] "%J%qD:n edellinen esittely oli täällä"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "%J%qD:n edellinen esittely oli täällä"
 msgstr[1] "%J%qD:n edellinen esittely oli täällä"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, fuzzy, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, fuzzy, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "%q+D esitelty uudelleen erityyppisenä symbolina"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "redeclared here"
 msgstr "esitelty täällä"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "%q+D:n virheellinen uudelleenesittely"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "varjostunut esittely on täällä"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "%q+D:n virheellinen uudelleenesittely"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, fuzzy, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, fuzzy, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr ""
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr "%qD:n esittely %qT:n jäsenenä"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "%Juseita parametreja nimellä %qD"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, fuzzy, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr "valitsimet -l ja -s eivät ole yhteensopivia"
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr "  täsmäämättömät tyypit %qT ja %qT"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, fuzzy, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "strftime-muotoilut eivät voi muotoilla argumentteja"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "tyyppimuunnettu argumentti %qD ei sovi prototyyppiin"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, fuzzy, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "%qE-attribuuttia ei huomioida %qE:lle"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, fuzzy, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, fuzzy, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr "tyyppien %qT ja %qT välinen vertailu"
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, fuzzy, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr "tyyppien %qT ja %qT välinen vertailu"
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, fuzzy, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, fuzzy, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, fuzzy, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "%qE:ta ei voi muuntaa tyypistä %qT tyyppiin %qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "muunnos tyypistä %qT tyyppiin %qT on moniselitteinen"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, fuzzy, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "muunnos tyypistä %qT tyyppiin %qT"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "tyyppimuunnettu argumentti %qD ei sovi prototyyppiin"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, fuzzy, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr ""
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "%qD:n malliargumentti käyttää paikallista tyyppiä %qT"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "%qD:n malliargumentti käyttää paikallista tyyppiä %qT"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "%qD ei ole mallifunktio"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "virheellinen hajottimen %qD käyttö tyyppinä"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr ""
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, fuzzy, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "tallennusluokka annettu parametrille %qs"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  odotettiin %qT-tyyppistä vakiota, saatiin %qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, fuzzy, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "tallennusluokka annettu parametrille %qs"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  odotettiin luokkamallia, saatiin %qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  odotettiin tyyppiä, saatiin %qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  odotettiin tyyppiä, saatiin %qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  odotettiin luokkamallia, saatiin %qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, fuzzy, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  odotettiin tyyppiä, saatiin %qT"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "tallennusluokka annettu parametrille %qs"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr "  odotettiin tyyppiä, saatiin %qE"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "%qE:ta ei voi muuntaa tyypistä %qT tyyppiin %qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "muodostimen virheellinen käyttö mallina"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "attribuutille %qs annettu väärä määrä argumentteja"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "attribuutille %qs annettu väärä määrä argumentteja"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, fuzzy, gcc-internal-format
 msgid "provided for %qD"
 msgstr "nimellä %qD"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, fuzzy, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr "tallennusluokka annettu parametrille %qs"
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, fuzzy, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "tallennusluokka annettu parametrille %qs"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, fuzzy, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, fuzzy, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "%qD:n malliargumentti käyttää paikallista tyyppiä %qT"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 msgid "template constraint failure for %qD"
 msgstr "%qT ei ole malli"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "%qD ei ole muuttuja"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, fuzzy, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "joustava taulukkojäsen unionissa"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE ei ole esittelyn alussa"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, fuzzy, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr "  täsmäämättömät tyypit %qT ja %qT"
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, fuzzy, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr "  täsmäämättömät tyypit %qT ja %qT"
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "%q+D määritelty uudelleen"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr "  täsmäämättömät tyypit %qT ja %qT"
@@ -64436,223 +64473,223 @@ msgstr "  täsmäämättömät tyypit %qT ja %qT"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "muuttujalla %qD on funktiotyyppi"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "virheellinen parametrityyppi %qT"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "esittelyssä %q+D"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "taulukon palauttava funktio"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "funktion palauttava funktio"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, fuzzy, gcc-internal-format
 msgid "forming reference to void"
 msgstr "tyhjää arvoa ei jätetä huomioimatta, vaikka kuuluisi"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "NULLin muunnos epäosoitintyypiksi %qT"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, fuzzy, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "tyyppitäsmäämättömyys taulukkoviitteessä"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "tyyppimuunnos lisää funktiotyyppiin uusia määreitä"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "tyyppimuunnos lisää funktiotyyppiin uusia määreitä"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "%<void *%>-tyyppistä osoitinta käytetty laskutoimituksessa"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "NULLin muunnos epäosoitintyypiksi %qT"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "%<void *%>-tyyppistä osoitinta käytetty laskutoimituksessa"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, fuzzy, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "luodaan void-taulukko"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT ei ole luokka-, struct- eikä unionityyppi"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, fuzzy, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%Jcase-arvo %qs ei ole luetellussa tyypissä"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT ei ole luokka-, struct- eikä unionityyppi"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, fuzzy, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "muodostimen virheellinen käyttö mallina"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, fuzzy, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "objektityyppi %qT ei täsmää hajottimen nimen ~%qT kanssa"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr ""
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr ""
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "alustinalkio ei ole vakiolauseke"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, fuzzy, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "void-lausekkeen epäkelpo käyttö"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, fuzzy, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr "Käytä rekistereitä argumenttien välittämiseen"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, fuzzy, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr "tallennusluokka annettu parametrille %qs"
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, fuzzy, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr "käytä #includea sen sijaan"
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, fuzzy, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "käytä #includea sen sijaan"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%J%qD esitelty avoimeksi määrittelyn jälkeen"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "väärä määrä argumentteja funktiolle %<__builtin_next_arg%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qE attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "attribuutille %qE annettu väärä määrä argumentteja"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT ei ole luokka eikä nimiavaruus"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD ei ole luokka eikä nimiavaruus"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "käytetään virheellistä kenttää %qD"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "%qT on/käyttää anonyymiä tyyppiä"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "%qD:n malliargumentti käyttää paikallista tyyppiä %qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, fuzzy, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, fuzzy, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, fuzzy, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "ohjelman alustusta yritettäessä"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 msgid "%s %#qS"
 msgstr ""
@@ -64660,82 +64697,82 @@ msgstr ""
 "%s, %s, %s, %s,\n"
 "%s, %s ja %s.\n"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "muuttuja %qD esitelty %<inline%>:ksi"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of function concept %q#D"
 msgstr "funktio %qE esitelty implisiittisesti"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "staattinen jäsenfunktio %q#D esitelty tyyppimääreillä"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, fuzzy, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "%qD ei ole mallifunktio"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, fuzzy, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "käyttämätön muuttuja %q+D"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, fuzzy, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "jäsenen %q+D kaksoiskappale"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++ kieltää metodiosoittimen käytön vähennyslaskussa"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, fuzzy, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ kieltää metodiosoittimen käytön vähennyslaskussa"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, fuzzy, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "jäsenen %q+D kaksoiskappale"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr "%q+D:n edellinen esittely oli täällä"
@@ -64747,163 +64784,163 @@ msgstr "%q+D:n edellinen esittely oli täällä"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "käyttämätön muuttuja %q+D"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, fuzzy, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, fuzzy, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, fuzzy, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "staattinen tai tyyppimääreitä ei-parametrisessa taulukkoesittelijässä"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "tyyppi %qT ei ole tyypin %qT kantatyyppi"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, fuzzy, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "%<[*]%> ei ole esittelyssä"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be constrained"
 msgstr "hajotin ei voi olla staattinen jäsenfunktio"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr "%qT ei ole luokka eikä nimiavaruus"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr "malliesittelylle %q+D"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, fuzzy, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr "funktion %q+D määrittely on merkitty dllimport-tyyppiseksi"
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr "%qD ei ole mallifunktio"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, fuzzy, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 msgid "use %qD directly instead"
 msgstr "käytä #includea sen sijaan"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, fuzzy, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, fuzzy, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "%qE ei ole kelvollinen malliargumentti tyypille %qT, koska se ei ole objekti ulkoisella linkityksellä"
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "liian paljon argumentteja funktiolle %qs"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "Tiedostoa ”%s” on jo tarkasteltu.\n"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "sisäkkäinen funktio %qs esitelty %<extern%>:ksi"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, fuzzy, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "liian paljon argumentteja funktiolle %qs"
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "ei voi emuloida %qs"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, fuzzy, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "%qE:n muunnos tyypistä %qT tyyppiin %qT ei ole yksiselitteinen"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, fuzzy, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr "%qD ei ole %qD:n jäsen"
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "alustusalkio ei ole vakio"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, fuzzy, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "alustusalkio ei ole vakio"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, fuzzy, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "alustusalkio ei ole vakio"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "virheellinen %<auto%>:n käyttö muunnosoperaattorissa"
@@ -65109,633 +65146,633 @@ msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "%<for%>-silmukan alkuesittelyt ovat sallittuja vain C99-tilassa"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr "täsmäämättömät argumentit"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, fuzzy, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 msgid "cannot call a concept as a function"
 msgstr "%qE:a saatetaan käyttää alustamattomana tässä funktiossa"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, fuzzy, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "ei argumentteja"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "%<this%> ei ole käytettävissä staattisissa jäsenfunktioissa"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr ""
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, fuzzy, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr "staattinen tai tyyppimääreitä ei-parametrisessa taulukkoesittelijässä"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "%<this%> ei ole käytettävissä staattisissa jäsenfunktioissa"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> before it is valid"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> after it is valid"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, fuzzy, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "objektityyppi %qT ei täsmää hajottimen nimen ~%qT kanssa"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, fuzzy, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "objektityyppi %qT ei täsmää hajottimen nimen ~%qT kanssa"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE ei ole tyyppiä %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "ei-objektityyppinen yhdysliteraali %qT"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, fuzzy, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "hajotin ei voi olla staattinen jäsenfunktio"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, fuzzy, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, fuzzy, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "tallennusluokka annettu typenamelle"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, fuzzy, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "mallinimen %qE virheellinen käyttö ilman argumenttiluetteloa"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, fuzzy, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "mallinimen %qE virheellinen käyttö ilman argumenttiluetteloa"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, fuzzy, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "malliesittelylle %q+D"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, fuzzy, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "virheellinen muunnos tyypistä %qT tyyppiin %qT"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, fuzzy, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "perustyypin %qT kaksoiskappale virheellinen"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, fuzzy, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr "jäsentä %q+D käytetty virheellisesti staattisessa jäsenfunktiossa"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, fuzzy, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "        %qD"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, fuzzy, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr "oletusargumentti määritelty lambda-parametrille"
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, fuzzy, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr "poistettu funktio %q+D"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, fuzzy, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "poistettu funktio %q+D"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr "poistettu funktio %q+D"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 msgid "missing template arguments"
 msgstr "täsmäämättömät argumentit"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr ""
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, fuzzy, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "  odotettiin luokkamallia, saatiin %qT"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "%qD:n esittely ei-jäsenenä"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, fuzzy, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "%qE ei ole tyyppi"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "haluttu sijainti ei ole kokonaislukuvakio"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "sulkumerkkien käyttö laskulausekkeen ympärillä on suositeltavaa |-operandissa"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "tarpeeton tyyppimääre tyhjässä esittelyssä"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "jäsenfunktiota %qD ei voi kutsua ilman oliota"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "jäsenfunktiota %qD ei voi kutsua ilman oliota"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "jäsenfunktiota %qD ei voi kutsua ilman oliota"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "jäsenfunktiota %qD ei voi kutsua ilman oliota"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, fuzzy, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr "ei-triviaalisti-kopioitavan tyyppisiä %q#T-olioita ei voi vastaanottaa %<...%>:n kautta"
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "Muodostin %qs"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "tyypillä %qE on käyttäjän määrittelemä muodostin"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, fuzzy, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr "ISO C kieltää nollan kokoisen taulukon %qE"
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, fuzzy, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr "tyypillä %qE on virtuaalisia jäsenfunktioita"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr "tyypillä %qE on käyttäjän määrittelemä muodostin"
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, fuzzy, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, fuzzy, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "muuttuja %qD esitelty uudelleen funktiona"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "muuttuja %qD esitelty uudelleen funktiona"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "muuttuja %qD esitelty uudelleen funktiona"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, fuzzy, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, fuzzy, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, fuzzy, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr "%<num_threads%>-arvon on oltava positiivinen"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, fuzzy, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, fuzzy, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, fuzzy, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, fuzzy, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, fuzzy, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "muuttuja %qD esitelty uudelleen funktiona"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, fuzzy, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr "indeksoitu arvo ei ole taulukko eikä osoitin"
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, fuzzy, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "muuttuja %qD esitelty uudelleen funktiona"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "instanssimuuttuja %qE on esitelty yksityisenä"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "muuttuja %qD esitelty uudelleen funktiona"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, fuzzy, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "muuttuja %qD esitelty uudelleen funktiona"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr "%qE ei ole malli"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, fuzzy, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr "%qE ei ole malli"
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, fuzzy, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, fuzzy, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr "taulukon %qD koko ei ole kokonaislukutyyppinen vakiolauseke"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "indeksoitu arvo ei ole taulukko eikä osoitin"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, fuzzy, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr "indeksoitu arvo ei ole taulukko eikä osoitin"
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr "%s:n arvon on oltava kokonaisluku"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, fuzzy, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "%Jparametrin %qD tyyppi on vaillinainen"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, fuzzy, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr "virheellinen tyyppi iterointimuuttujalle %qE"
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "etumerkillisen ja etumerkittömän kokonaislukulausekkeen vertailu"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 #| msgid "static assertion failed: %s"
 msgid "static assertion failed: %.*s"
 msgstr "staattinen väite epäonnistui: %s"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "ei-vakio ehto staattiselle väitteelle"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "funktiota %<__builtin_next_arg%> kutsuttu ilman argumenttia"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "  odotettiin luokkamallia, saatiin %qE"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "pilkkulausekkeen vasemmalla operandilla ei ole vaikutusta"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, fuzzy, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "pilkkulausekkeen vasemmalla operandilla ei ole vaikutusta"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr "ei-tuettu argumentti funktiolle %<__builtin_return_address%>"
@@ -65743,1181 +65780,1181 @@ msgstr "ei-tuettu argumentti funktiolle %<__builtin_return_address%>"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, fuzzy, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "osoitealueattribuuttia ei voi määritellä paikallisille muuttujille"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, gcc-internal-format
 msgid " declared here"
 msgstr " esitelty täällä"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, fuzzy, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr "%J%qD:n lohko on ristiriidassa edellisen esittelyn kanssa"
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr "nimellä %qT on vaillinainen tyyppi"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not public"
 msgstr "        %qD"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 msgid "%qD is mutable"
 msgstr "%qD ei ole muuttuja"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr "%qD ei ole tyyppi"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "%qE-attribuutti pätee vain funktiotyyppeihin"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute argument must be a string constant"
 msgstr "%qE-attribuutti tarvitsee merkkijonovakioargumentin"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "%qE-attribuutti pätee vain funktiotyyppeihin"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "%qE-attribuutti pätee vain muuttujiin"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "osoitealueattribuuttia ei voi määritellä paikallisille muuttujille"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr "%qE-attribuutti tarvitsee prototyyppejä, joilla nimettyjä argumentteja"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "%qE-attribuutti pätee vain funktioihin"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "haluttu sijainti ei ole kokonaislukuvakio"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr ""
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, fuzzy, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "haluttu sijainti ei ole kokonaislukuvakio"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, fuzzy, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "haluttu sijainti ei ole kokonaislukuvakio"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "%qs:n esittely taulukollisena tyhjiä alkioita"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "%qE-attribuutti tarvitsee prototyyppejä, joilla nimettyjä argumentteja"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "näkyvyysargumentti ei ole merkkijono"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "näkyvyysargumentti ei ole merkkijono"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, fuzzy, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "universaali merkki %.*s ei ole kelvollinen tunniste"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "universaali merkki %.*s ei ole kelvollinen tunniste"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "%qs-attribuuttia ei huomioida ei-luokkatyypeille"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "%J%qE-attribuutti soveltuu vain funktioihin"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "%qE-attribuutti tarvitsee merkkijonovakioargumentin"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "nolla nollaosoitinvakiona"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "verifiointi epäonnistui kohdassa PC=%d: %s"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä vertailusta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä muunnoksesta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, fuzzy, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä vertailusta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ kieltää vertailun %<void *%>-osoittimen ja funktio-osoittimen välillä"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ kieltää muunnoksen %<void *%>-osoittimen ja funktio-osoittimen välillä"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ kieltää ehtolausekkeen %<void *%>-osoittimen ja funktio-osoittimen välillä"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, fuzzy, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä vertailusta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, fuzzy, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä muunnoksesta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, fuzzy, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä vertailusta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "?:-lausekkeen operandeilla on eri tyypit, %qT ja %qT"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, fuzzy, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "?:-lausekkeen operandeilla on eri tyypit, %qT ja %qT"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "Jäsenfunktio %qs"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "epäkelpo %<sizeof%>-avainsanan soveltaminen bittikenttään"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "epäkelpo %<sizeof%>-avainsanan soveltaminen funktiotyyppiin"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "%<__alignof%>-avainsanaa sovellettu bittikenttään"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "epäkelpo %<sizeof%>-avainsanan soveltaminen funktiotyyppiin"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "taulukon koolla on epäkokonaislukutyyppi %qT"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "ISO C++ kieltää merkkijonovakion muuntamisen %qT:ksi"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "vanhentunut tyyppimuunnos merkkijonovakiosta tyyppiin %qT"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "pyyntö jäsenen %qs käsittelyyn jossain, joka ei ole tietue tai unioni"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "pyyntö jäsenen %qs käsittelyyn jossain, joka ei ole tietue tai unioni"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
 # semi-fuzzy
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "ei-staattista datajäsentä %q+D käytetty virheellisesti"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "objektityyppi %qT ei täsmää hajottimen nimen ~%qT kanssa"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr ""
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, fuzzy, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr "käyttämätön muuttuja %q+D"
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "tyypillä %qT ei ole %qE-nimistä jäsentä"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "tyypillä %qT ei ole %qE-nimistä jäsentä"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "tyypillä %qT ei ole %qE-nimistä jäsentä"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "tyypillä %qT ei ole %qE-nimistä jäsentä"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, fuzzy, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> ei ole luokan jäsen"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "perustyypin %qT kaksoiskappale virheellinen"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "funktiomalli %qD esitelty uudelleen luokkamallina"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "ei voida kasvattaa osoitinta vaillinaiseen tyyppiin %qT"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "joustavan taulukkojäsenen sisältävän tietueen epäkelpo käyttö"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, fuzzy, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "joustavan taulukkojäsenen sisältävän tietueen epäkelpo käyttö"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, fuzzy, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "epäkelpo %<restrict%>-avainsanan käyttö"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, fuzzy, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "taulukon indeksi on taulukkorajojen yläpuolella"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, fuzzy, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "ISO C kieltää %<register%>-taulukon indeksoinnin"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "indeksoitu arvo ei ole taulukko eikä osoitin"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, fuzzy, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "%qE esittelemättä (ensimmäinen käyttökerta tässä funktiossa)"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ kieltää %<::main%>-funktion kutsumisen ohjelmasta"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr ""
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, fuzzy, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE:a saatetaan käyttää alustamattomana tässä funktiossa"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "%qD:a käytetään alustamattomana tässä funktiossa"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "funktio-osoitinta käytetty laskutoimituksessa"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "liikaa argumentteja muodostimelle %q#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "liian vähän argumentteja muodostimelle %q#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "liikaa argumentteja jäsenfunktiolle %q#D"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "liian vähän argumentteja jäsenfunktiolle %q#D"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "liikaa argumentteja funktiolle %q#D"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "liian vähän argumentteja funktiolle %q#D"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "liikaa argumentteja metodille %q#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "liian vähän argumentteja funktiolle %q#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "liikaa argumentteja funktiolle"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "liian vähän argumentteja funktiolle"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "%2$qD:n parametrilla %1$P on vaillinainen tyyppi %3$qT"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the address %qE will never be NULL"
 msgstr "%qD:n osoite ei tule koskaan olemaan NULL"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "%qD:n osoite ei tule koskaan olemaan NULL"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 #| msgid "the compiler can assume that the address of %qD will never be NULL"
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "kääntäjä voi olettaa, että %qD:n osoite ei koskaan ole NULL"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "kääntäjä voi olettaa, että %qD:n osoite ei koskaan ole NULL"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä muunnoksesta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä muunnoksesta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä vertailusta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä vertailusta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä vertailusta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, fuzzy, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä vertailusta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "erilaisten osoitintyyppien %qT ja %qT välisestä vertailusta puuttuu tyyppimuunnos"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, fuzzy, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "liian paljon argumentteja funktiolle %qs"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "NULL-arvon käyttö laskutoimituksessa"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ kieltää osoittimen ja kokonaisluvun vertailun"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, fuzzy, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "tyyppien %qT ja %qT välinen vertailu"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "osoittimen ja kokonaisluku nollan suuruusvertailu"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 msgid "unordered comparison on non-floating-point argument"
 msgstr "ei-liukulukuargumentti kutsussa funktiolle %qE"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 #, fuzzy
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "muunnos tyypistä %2$qT tyypiksi %1$qT"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, fuzzy, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "virheellinen parametrityyppi %qT"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ kieltää %<void *%>-tyyppisen osoittimen käytön vähennyslaskussa"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ kieltää funktio-osoittimen käytön vähennyslaskussa"
 
 # semi-fuzzy; onko metodi tässä luokan jäsenfunktio ja yllä muu funktio?
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ kieltää metodiosoittimen käytön vähennyslaskussa"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, fuzzy, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "ei voida kasvattaa osoitinta vaillinaiseen tyyppiin %qT"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr "muodostimen %qE osoitteen ottaminen"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr "hajottimen %qE osoitteen ottaminen"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "virheellinen ei-staattisen jäsenfunktion käyttö"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, fuzzy, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "id="
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, fuzzy, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, fuzzy, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "keskeytyskäsittelijät eivät voi olla MIPS16-funktioita"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "taking address of rvalue"
 msgstr "väliaikaismuuttujan osoitteen ottaminen"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ kieltää %<::main%>-funktion osoitteen ottamisen"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, fuzzy, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "NULLin muunnos epäosoitintyypiksi %qT"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "yritys ottaa bittikentän osoite"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, fuzzy, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "odotettiin lauseketta"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, fuzzy, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr "oliko tarkoitus käyttää loogista negaatiota?"
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ kieltää enumin lisäyksen"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ kieltää enumin vähentämisen"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "ei voida kasvattaa osoitinta vaillinaiseen tyyppiin %qT"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "ei voida vähentää osoitinta vaillinaiseen tyyppiin %qT"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ kieltää %qT-tyyppisen osoittimen kasvattamisen"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ kieltää %qT-tyyppisen osoittimen vähentämisen"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "ei voi ottaa %<this%>:in osoitetta, joka on rvalue-lauseke"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, fuzzy, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "halutaan rekisterimuuttujan %qD osoite"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, fuzzy, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "halutaan globaalin rekisterimuuttujan %qD osoite"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, fuzzy, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "virheellinen alustin taulukon jäsenelle %q#D"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "esittely ei esittele mitään"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, fuzzy, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr "%qE ei nimeä tyyppiä"
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "tyyppimuunnos tyypistä %qT tyyppiin %qT hylkää määreet"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "static_cast-muunnos tyypistä %qT tyyppiin %qT hylkää määreet"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "reinterpret_cast-muunnos tyypistä %qT tyyppiin %qT hylkää määreet"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "tarpeeton tyyppimuunnos tyyppiin %qT"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 msgid "type qualifiers ignored on cast result type"
 msgstr "tyyppimääreet jätetään huomiotta funktion paluutyypissä"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "virheellinen static_cast-muunnos tyypistä %qT tyyppiin %qT"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "nimellä %qT on vaillinainen tyyppi"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 msgid "converting from %qH to %qI"
 msgstr "muunnos tyypistä %qT tyyppiin %qT"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "virheellinen static_cast-muunnos tyypistä %qT tyyppiin %qT"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 #, fuzzy
 msgid "cast from %qH to %qI loses precision"
 msgstr "muunnoksessa tyypistä %qT tyyppiin %qT menetetään tarkkuutta"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 #, fuzzy
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr "ei voi muuntaa tyyppiä %qT tyypiksi %qT"
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "muunnos epäyhteensopivien jäsenosoitintyyppien %qH ja %qI välillä"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "muunnos tyypistä %qT tyyppiin %qT kasvattaa kohdetyypin vaadittua kohdistusta"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "tyyppimuunnos funktio-osoittimen ja olio-osoittimen välillä on ehdollisesti tuettu"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "virheellinen muunnos tyypistä %qT tyyppiin %qT"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr ""
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr ""
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "virheellinen const_cast tyypistä %qT tyyppiin %qT"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "virheellinen const_cast tyypistä %qT tyyppiin %qT"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ kieltää tyyppimuunnoksen taulukkotyyppiin %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "virheellinen tyyppimuunnos funktiotyyppiin %qT"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qE from type %qT to type %qT"
 msgid "moving %qE of type %qT to itself"
 msgstr "%qE:ta ei voi muuntaa tyypistä %qT tyyppiin %qT"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr "poista %<std::move%>-kutsu"
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, fuzzy, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "%q#T ei ole luokka eikä nimiavaruus"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, fuzzy, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr "ei-vakio taulukon indeksi alustimessa"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "vaillinaiset tyypit %qT:n sijoituksessa tyyppiin %qT"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "taulukkoa käytetty alustimena"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "virheellinen taulukkosijoitus"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, fuzzy, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "Jäsenfunktio %qs"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, fuzzy, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "Jäsenfunktio %qs"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, fuzzy, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "Jäsenfunktio %qs"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, fuzzy, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "virheellinen muunnos tyypistä %qT tyyppiin %qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "ei voi muuntaa tyypistä %1$qT tyyppiin %2$qT %4$qD:n argumentiksi %3$qP"
 
 # XXX
 # %s on "initialization", jota EI VOI suomentaa tällä hetkellä.
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "ei voi muuntaa tyypistä %1$qT tyyppiin %2$qT %4$qD:n argumentiksi %3$qP"
 
 # XXX
 # %s on "initialization", jota EI VOI suomentaa tällä hetkellä.
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "ei voi muuntaa tyypistä %1$qT tyyppiin %2$qT %4$qD:n argumentiksi %3$qP"
 
 # XXX
 # %s on "initialization", jota EI VOI suomentaa tällä hetkellä.
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 msgid "cannot convert %qH to %qI in return"
 msgstr "ei voi muuntaa tyyppiä %qT tyypiksi %qT"
 
 # XXX
 # %s on "initialization", jota EI VOI suomentaa tällä hetkellä.
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "ei voi muuntaa tyyppiä %qT tyypiksi %qT"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, fuzzy, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "funktio on ehkä mahdollinen ehdokas %qs-muotoiluattribuutille"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, fuzzy, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr "funktio on ehkä mahdollinen ehdokas %qs-muotoiluattribuutille"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, fuzzy, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "funktio on ehkä mahdollinen ehdokas %qs-muotoiluattribuutille"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, fuzzy, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "funktiokutsun argumentti voi olla ehdokas muotoiluattribuutille"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, fuzzy, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "funktio on ehkä mahdollinen ehdokas %qs-muotoiluattribuutille"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "  alustettaessa funktion %2$qD argumenttia %1$P"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, fuzzy, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "tyhjää arvoa ei jätetä huomioimatta, vaikka kuuluisi"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 msgid "returning pointer to temporary"
 msgstr "tyhjää arvoa ei jätetä huomioimatta, vaikka kuuluisi"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, fuzzy, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr "palautettu viittaus paikalliseen muuttujaan %q+D"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, fuzzy, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr "nimiö %qD määritelty täällä"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, fuzzy, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr "palautettu osoite paikalliseen muuttujaan %q+D"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr "%s: liian monta arvoa"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr "%s: liian monta arvoa"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "arvon palautus hajottimesta"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr ""
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "arvon palautus muodostimesta"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "return-lause ilman arvoa funktiossa, jonka paluutyyppi on %qT"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 msgid "returning initializer list"
 msgstr "taulukon palauttava funktio"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, fuzzy, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "uusia tyyppejä ei voi määritellä paluutyypissä"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, fuzzy, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "odotettiin %qT, mutta argumentti on tyyppiä %qT"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr "return-lause ilman arvoa funktiossa, jonka paluutyyppi on %qT"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, fuzzy, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%> ei saa palauttaa NULLia ellei esittely ole %<throw()%> (tai -fcheck-new ole voimassa)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr "epäkelpo vektorityyppi attribuutille %qs"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 msgid "using rvalue as lvalue"
 msgstr "virheellinen %%s-arvo"
@@ -67138,157 +67175,157 @@ msgstr ""
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "muodostinsyntaksia on käytetty, mutta %qT-tyypin muodostinta ei ole esitelty"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "virheellinen muunnos tyypistä %qT tyypiksi %qT"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "%qE:n kaventava muunnos tyypistä %qT tyyppiin %qT { }:n sisällä"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, fuzzy, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 msgid "initializer-string for %qT is too long"
 msgstr "merkkitaulukon alustusmerkkijono on liian pitkä"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 msgid "remove %<{ }%> around initializer"
 msgstr "skalaarialustimen ympärillä on aaltosulkeet"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr ""
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "puuttuva alustin jäsenelle %qD"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "jäsen %qD on alustamaton viittaus"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "jäsen %qD on alustamaton viittaus"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "%qD:n tyyppi ei täsmää aiemman esittelyn kanssa"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "alustettavassa unionissa ei ole kenttää %qD"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, fuzzy, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "ylimääräisiä alkioita union-alustimessa"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, fuzzy, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "PRINT_OPERAND null-osoitin"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, fuzzy, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "PRINT_OPERAND_ADDRESS, null-osoitin"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr ""
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, fuzzy, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "PRINT_OPERAND_ADDRESS, null-osoitin"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, fuzzy, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE:a saatetaan käyttää alustamattomana tässä funktiossa"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, fuzzy, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "parametrilla %P on vaillinainen tyyppi %qT"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, fuzzy, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "sijoitus yhteensopimattomasta osoitintyypistä"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "jäsenfunktio-osoitinta käytetty laskutoimituksessa"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "jäsenfunktio-osoitinta käytetty laskutoimituksessa"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "jäsenfunktio-osoitinta käytetty laskutoimituksessa"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "tyyppimuunnos määrittää taulukkotyypin"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, fuzzy, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "hajotin ei voi olla staattinen jäsenfunktio"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, fuzzy, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "attribuutti %qs pätee vain funktiotyyppeihin"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, fuzzy, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "virheellinen %qT-tyyppisen viittauksen alustus %qT-tyyppisestä lausekkeesta"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, fuzzy, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "%2$qD:n parametrilla %1$P on vaillinainen tyyppi %3$qT"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, fuzzy, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "epäkelpo %qs:n soveltaminen tyhjään tyyppiin"
@@ -68281,7 +68318,7 @@ msgstr "Muuttujatyyppi on UNKNOWN sijoituksessa kohdassa %L"
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L on oltava vakio"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr "epäkelpo osoitintila %qs"
@@ -69608,7 +69645,7 @@ msgstr "Kaksoiskappale %s-spesifikaatio kohdassa %C"
 msgid "deferred type parameter at %C"
 msgstr "virheellinen parametrityyppi %qT"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr "odotettiin kokonaislukulauseketta"
@@ -69823,7 +69860,7 @@ msgstr "Kääntäjänsisäisellä ”%s”-funktiolla kohdassa %L on oltava väh
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr "Proseduuri ”%s” kohdassa %C on jo määritelty kohdassa %L"
@@ -70624,7 +70661,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "Odotetiin muodollista argumenttiluetteloa funktiomäärittelyssä kohdassa %C"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr "%Jlohkoattribuuttia ei voi määrittää paikalliselle muuttujalle"
@@ -71431,12 +71468,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr ""
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -71685,273 +71722,273 @@ msgstr "luetellun tyypin jäsenen %qE arvo ei ole kokonaislukuvakio"
 msgid "check_init_expr(): Unknown expression type"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "Funktiolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "%s-lause ei ole sallittu PURE-proseduurissa kohdassa %C"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentti ”%1$s” kohdassa %3$L ei saa olla OPTIONAL"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L ei voi olla INTENT(IN)"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, fuzzy, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "Lauseke CASE-lauseessa kohdassa %L on oltava %s-tyyppinen"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "Yhteensopimattomat tasot %d ja %d sijoituksessa kohdassa %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "%<__builtin_args_info%>-funktion argumentti puuttuu"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr "kirjoitussuojatun muuttujan %qs sijoitus"
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "virheellinen %%L-arvo"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr "Iteraattoriaskel kohdassa %L ei voi olla nolla"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "Yhteensopimattomat tasot %d ja %d sijoituksessa kohdassa %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "Muuttujatyyppi on UNKNOWN sijoituksessa kohdassa %L"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "Yhteensopimattomat tasot %d ja %d sijoituksessa kohdassa %L"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "Yhteensopimattomat tasot %d ja %d sijoituksessa kohdassa %L"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr "kirjoitussuojatun muuttujan %qs sijoitus"
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "Yhteensopimattomat tyypit DATA-lauseessa kohdassa %L; yritettiin muuntaa tyyppi %s tyypiksi %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr ""
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, fuzzy, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "%J%qD:lle ei ole aiempaa esittelyä"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, fuzzy, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, fuzzy, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "Käskyfunktio ”%s” on virheellinen proseduuriosoitinsijoituksessa kohdassa %L"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, fuzzy, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "Käskyfunktio ”%s” on virheellinen proseduuriosoitinsijoituksessa kohdassa %L"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, fuzzy, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Sisäinen proseduuri ”%s” on virheellinen proseduuriosoittimessa kohdassa %L"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, fuzzy, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, fuzzy, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr "Rajapintatäsmäämättömyys proseduuriosoitinsijoituksessa kohdassa %L: %s"
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, fuzzy, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "Rajapintatäsmäämättömyys proseduuriosoitinsijoituksessa kohdassa %L: %s"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, fuzzy, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "Virheellinen proseduuriargumentti kohdassa %L"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, fuzzy, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "Virheellinen proseduuriargumentti kohdassa %L"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "Rajapintatäsmäämättömyys proseduuriosoitinsijoituksessa kohdassa %L: %s"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "Eri tyypit osoitinsijoituksessa kohdassa %L; yritettiin tyypin %s sijoitusta tyyppiin %s"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "Yhteensopimattomat tasot %d ja %d sijoituksessa kohdassa %L"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "Yhteensopimattomat tasot %d ja %d sijoituksessa kohdassa %L"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
@@ -71959,192 +71996,192 @@ msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "yhteensopimattomat tyypit sijoituksessa"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "(%qs:n alustuksen lähistöllä)"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "ASYNCHRONOUS= määrite kohdassa %L täytyy olla alustuslauseke"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "Muuttuja %s ei voida liittää PURE-proseduuriin kohdassa %C"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr "yhteensopimattomat tyypit sijoituksessa"
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "(%qs:n alustuksen lähistöllä)"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "(%qs:n alustuksen lähistöllä)"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "(%qs:n alustuksen lähistöllä)"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr "(%qs:n alustuksen lähistöllä)"
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Sisäinen proseduuri ”%s” on virheellinen proseduuriosoittimessa kohdassa %L"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Sisäinen proseduuri ”%s” on virheellinen proseduuriosoittimessa kohdassa %L"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, fuzzy, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, fuzzy, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, fuzzy, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr "vektoriylivuoto lausekkeessa"
@@ -72165,8 +72202,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "Luodaan väliaikainen komentotiedosto %s\n"
@@ -72246,7 +72283,7 @@ msgstr "ylivuoto vakiolausekkeessa"
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "ylivuoto vakiolausekkeessa"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -72381,12 +72418,12 @@ msgstr "%<__builtin_expect%>-funktion toisen argumentin pitää olla vakio"
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L ei voi olla INTENT(IN)"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L ei voi olla INTENT(IN)"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L ei voi olla INTENT(IN)"
@@ -73256,7 +73293,7 @@ msgstr "Muunnos tyypistä %s tyyppiin %s kohdassa %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr "Ei voi muuntaa tyyppiä %s tyyppiin %s kohdassa %L"
@@ -73807,7 +73844,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
@@ -73973,6 +74010,11 @@ msgstr "Kokonaisluvun ylivuoto"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, fuzzy, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -74374,7 +74416,7 @@ msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr "ASYNCHRONOUS= määrite kohdassa %L täytyy olla alustuslauseke"
@@ -74898,82 +74940,82 @@ msgstr "Syntaksivirhe PROTECTED-lauseessa kohdassa %C"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr "Syntaksivirhe IMPORT-lauseessa kohdassa %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "Syntaksivirhe PROTECTED-lauseessa kohdassa %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "Odottamaton CASE-lause kohdassa %C"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "Syntaksivirhe CASE-spesifikaatiossa kohdassa %C"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "Odottamaton TYPE IS -lause kohdassa %C"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "Syntaksivirhe TYPE IS -spesifikaatiossa kohdassa %C"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "Syntaksvirhe CLASS IS -spesifikaatiossa kohdassa %C"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Unexpected RANK statement at %C"
 msgstr "Odottamaton END-lause kohdassa %C"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr "Syntaksivirhe CASE-spesifikaatiossa kohdassa %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "Odottamaton %s-lause WHERE-lohkossa kohdassa %C"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, fuzzy, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr "Nimiö ”%s” kohdassa %C ei täsmää IF nimiön ”%s” kanssa"
@@ -76402,8 +76444,8 @@ msgstr "%<void%> vain parametrina ei ole oikeutettu"
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr "%<void%> vain parametrina ei ole oikeutettu"
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "decltypen argumentin on oltava lauseke"
@@ -78774,12 +78816,12 @@ msgstr ""
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "Nimiö %d kohdassa %L on määritelty, mutta ei käytetty"
@@ -78899,7 +78941,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
@@ -79299,278 +79341,283 @@ msgstr "muuttuvakokoista objektia ei voi alustaa"
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "luodaan viitteiden taulukko"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr "Ei voi muuntaa tyyppiä %s tyyppiin %s kohdassa %L"
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr "%qE on vanhentunut"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+msgid "Invalid array reference at %L"
+msgstr "Taulukkoviite rajojen ulkopuolella"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr "<tyyppivirhe>"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, fuzzy, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr "FINAL-proseduurin argumentin kohdassa %L täytyy olla tyyppiä ”%s”"
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, fuzzy, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr "FINAL-proseduurin argumentin kohdassa %L täytyy olla tyyppiä ”%s”"
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "FINAL-proseduurin argumentin kohdassa %L täytyy olla tyyppiä ”%s”"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, fuzzy, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr "%J%qD:lle ei ole aiempaa esittelyä"
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, fuzzy, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "Iteraattoriaskel kohdassa %L ei voi olla nolla"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, fuzzy, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "%J%qD:lle ei ole aiempaa esittelyä"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "Argumentti ”%s”/”%s” PASS(%s) kohdassa %L ei voi olla ALLOCATABLE"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr "tulosta ei voi kirjoittaa: %s"
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr "Jäsenfunktio %qs"
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr ""
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "Odotettiin muuttujaa READ-lauseessa kohdassa %C"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr "Odotettiin muuttujaa READ-lauseessa kohdassa %C"
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr "Argumentti ”%s”/”%s” PASS(%s) kohdassa %L ei voi olla ALLOCATABLE"
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr "Argumentti ”%s”/”%s” PASS(%s) kohdassa %L ei voi olla ALLOCATABLE"
@@ -79579,284 +79626,284 @@ msgstr "Argumentti ”%s”/”%s” PASS(%s) kohdassa %L ei voi olla ALLOCATABL
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "CASE-nimiö kohdassa %L menee CASE-nimiön päälle kohdassa %L"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "Lauseke CASE-lauseessa kohdassa %L on oltava %s-tyyppinen"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "Lauseke CASE-lauseessa kohdassa %L on oltava %d-kaltainen"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "Lauseke CASE-lauseessa kohdassa %L on oltava %s-tyyppinen"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "Lauseke CASE-lauseessa kohdassa %L on oltava %s-tyyppinen"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "Lauseke CASE-lauseessa kohdassa %L on oltava %s-tyyppinen"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "Tämä pikanäppäin on jo käytössä toiminnolle %s"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr ""
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, fuzzy, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "”%s” ei ole kelvollinen makron nimi, sillä se on C++:n operaattori"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, fuzzy, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, fuzzy, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "yhteensopimattomat tyypit sijoituksessa"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "CASE-nimiö kohdassa %L menee CASE-nimiön päälle kohdassa %L"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, fuzzy, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr "Automaattitaulukolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr "Syntaksivirhe PROTECTED-lauseessa kohdassa %C"
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "Varsinainen argumentti kohteelle ”%s” ei voi olla oletetunkokoinen taulukko kohdassa %L"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "Muuttuja %s ei voida liittää PURE-proseduuriin kohdassa %C"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "argumentin %d antamisessa funktiolle %qE tehdään osoitin kokonaisluvusta ilman tyyppimuunnosta"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "puhdistusargumentti ei ole tunniste"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "Odotettiin muuttujaa READ-lauseessa kohdassa %C"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr "Haarautuminen kohdassa %L voi aiheuttaa ikisilmukan"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr "break-lause silmukan tai switch-rakenteen ulkopuolella"
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr "break-lause silmukan tai switch-rakenteen ulkopuolella"
@@ -79864,213 +79911,213 @@ msgstr "break-lause silmukan tai switch-rakenteen ulkopuolella"
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "Odotettiin muuttujaa READ-lauseessa kohdassa %C"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "Odottamaton %s-lause WHERE-lohkossa kohdassa %C"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "Sijoitus FORALL-indeksimuuttujaan kohdassa %L"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr ""
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr "Lohkonimiö ei ole sopiva IF-lauseelle kohdassa %C"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr ""
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, fuzzy, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "CHARACTER-lauseke kohdassa %L on typistetty (%d/%d)"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr ""
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "kirjoitussuojatun muuttujan %qs sijoitus"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr "kirjoitussuojatun muuttujan %qs sijoitus"
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "Muuttujatyyppi on UNKNOWN sijoituksessa kohdassa %L"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, fuzzy, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr "Muuttujatyyppi on UNKNOWN sijoituksessa kohdassa %L"
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr "yhteensopimattomat tyypit sijoituksessa"
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "yhteensopimattomat tyypit sijoituksessa"
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "UNIT-numeron CLOSE-lauseessa kohdassa %L täytyy olla epänegatiivinen"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "Muuttuja %s ei voida liittää PURE-proseduuriin kohdassa %C"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "UNIT-numeron CLOSE-lauseessa kohdassa %L täytyy olla epänegatiivinen"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected initialization expression in CASE at %C"
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "Odotettiin alustuslauseketta CASE-lauseessa kohdassa %C"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "UNIT-numeron CLOSE-lauseessa kohdassa %L täytyy olla epänegatiivinen"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr "virheellinen %%L-arvo"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, fuzzy, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "Lausekkeen CASE-lauseessa kohdassa %L on oltava skalaari"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "decltypen argumentin on oltava lauseke"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, fuzzy, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "Käyttämätön parameteri ”%s” esitelty kohdassa %L"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
@@ -80078,114 +80125,114 @@ msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "Merkkijonon pituus kohdassa %L on liian suuri"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, fuzzy, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "Automaattitaulukolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, fuzzy, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "Argumentti ”%s”/”%s” PASS(%s) kohdassa %L ei voi olla ALLOCATABLE"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, fuzzy, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "Automaattitaulukolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, fuzzy, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "Automaattitaulukolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, fuzzy, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr "Funktion ”%s” paluuarvoa kohdassa %L ei ole asetettu"
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, fuzzy, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr "Kääntäjänsisäisellä ”%s”-funktiolla kohdassa %L on oltava vähintään kaksi argumenttia"
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, fuzzy, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, fuzzy, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "kolme pistettä sisältävä parametriluettelo ei sovellu tyhjään parametrinimiluettelon esittelyyn"
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, fuzzy, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L on oltava valemuuttuja"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr "Argumentin %s kohdassa %L on oltava pituudeltaan yksi"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, fuzzy, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "Argumentin %s kohdassa %L on oltava pituudeltaan yksi"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, fuzzy, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "Varattavalla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, fuzzy, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr "Ulkoisella ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "Tyhjällä ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, fuzzy, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "Luontaisella ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "Funktiolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, fuzzy, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "Automaattitaulukolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr ""
@@ -80193,887 +80240,887 @@ msgstr ""
 "  tai:  %s -l [SIGNAALI]...\n"
 "  tai:  %s -t [SIGNAALI]...\n"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, fuzzy, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "%<__builtin_expect%>-funktion toisen argumentin pitää olla vakio"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, fuzzy, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "Funktiolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, fuzzy, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr "Ulkoisella objektilla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, fuzzy, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "ELEMENTAL-funktiolla ”%s” kohdassa %L täytyy olla skalaaritulos"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, fuzzy, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "funktiokutsun argumentti voi olla ehdokas muotoiluattribuutille"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "CHARACTER(*)-funktio ”%s” kohdassa %L ei voi olla taulukkoarvoinen"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "CHARACTER(*)-funktio ”%s” kohdassa %L ei voi olla osoitinarvoinen"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "CHARACTER(*)-funktio ”%s” kohdassa %L ei voi olla puhdas"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "CHARACTER(*)-funktio ”%s” kohdassa %L ei voi olla rekursiivinen"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "%qs esitelty funktion palauttavana funktiona"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, fuzzy, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "Valeproseduurilla ”%s” kohdassa %C ei voi olla geneeristä rajapintaa"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, fuzzy, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr "Argumentilla ”%s”/”%s” PASS(%s) kohdassa %L ei voi olla POINTER-attribuuttia"
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "SAVE-attribuuttia kohdassa %L ei voida määritellä PURE-proseduurissa"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "PROCEDURE-attribuutti on ristiriidassa INTENT-attribuutin kanssa kohteessa ”%s” kohdassa %L"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "PROCEDURE-attribuutti on ristiriidassa RESULT-attribuutin kanssa kohteessa ”%s” kohdassa %L"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, fuzzy, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "EXTERNAL-attribuutti on ristiriidassa FUNCTION-attribuutin kanssa kohteessa ”%s” kohdassa %L"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Syntaksivirhe PROCEDURE-lauseessa kohdassa %C"
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Syntaksivirhe PROCEDURE-lauseessa kohdassa %C"
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Syntaksivirhe PROCEDURE-lauseessa kohdassa %C"
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, fuzzy, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "%qD:n on otettava tasan yksi argumentti"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, fuzzy, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "FINAL-proseduurin argumentin kohdassa %L täytyy olla tyyppiä ”%s”"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "FINAL-proseduurin argumentin kohdassa %L täytyy olla tyyppiä ”%s”"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "FINAL-proseduurin argumentin kohdassa %L täytyy olla tyyppiä ”%s”"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "FINAL-proseduurin argumentin kohdassa %L täytyy olla tyyppiä ”%s”"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "FINAL-proseduurin argumentin kohdassa %L täytyy olla tyyppiä ”%s”"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "Kääntäjänsisäisellä ”%s”-funktiolla kohdassa %L on oltava vähintään kaksi argumenttia"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, fuzzy, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr ""
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, fuzzy, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr "%J%qD:lle ei ole aiempaa esittelyä"
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "%s:n kohdassa %L täytyy olla INTEGER"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, fuzzy, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "Kääntäjänsisäisellä ”%s”-funktiolla kohdassa %L on oltava vähintään kaksi argumenttia"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, fuzzy, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "%<__builtin_expect%>-funktion toisen argumentin pitää olla vakio"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "Argumentin ”%s”/”%s” PASS(%s) kohdassa %L täytyy olla perittyä tyyppiä ”%s”"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "Argumentin ”%s”/”%s” PASS(%s) kohdassa %L täytyy olla perittyä tyyppiä ”%s”"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "%<__builtin_expect%>-funktion toisen argumentin pitää olla vakio"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "%<__builtin_args_info%>-funktion argumentin pitää olla vakio"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "%<__builtin_args_info%>-funktion argumentin pitää olla vakio"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, fuzzy, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, fuzzy, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr "Muuttujalla ”%s” kohdassa %L ei voi olla sekä POINTER- että BIND(C)-attribuutit"
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, fuzzy, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "Argumentin %s kohdassa %L on oltava pituudeltaan yksi"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "Kääntäjänsisäisellä ”%s”-funktiolla kohdassa %L on oltava vähintään kaksi argumenttia"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "Argumentin ”%s”/”%s” PASS(%s) kohdassa %L täytyy olla perittyä tyyppiä ”%s”"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "Argumentin ”%s”/”%s” PASS(%s) kohdassa %L täytyy olla skalaari"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "Argumentilla ”%s”/”%s” PASS(%s) kohdassa %L ei voi olla POINTER-attribuuttia"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "Argumentti ”%s”/”%s” PASS(%s) kohdassa %L ei voi olla ALLOCATABLE"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, fuzzy, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, fuzzy, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "Lauseke CASE-lauseessa kohdassa %L on oltava %s-tyyppinen"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, fuzzy, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "Argumentilla ”%s”/”%s” PASS(%s) kohdassa %L ei voi olla POINTER-attribuuttia"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "Ristiriita funktioargumentin attribuuteissa kohdassa %C"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, fuzzy, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, fuzzy, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr "kolme pistettä sisältävä parametriluettelo ei sovellu tyhjään parametrinimiluettelon esittelyyn"
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, fuzzy, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, fuzzy, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "Tyhjä taulukkomuodostin kohdassa %C ei ole sallittu"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr "funktiota %<__builtin_next_arg%> kutsuttu ilman argumenttia"
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr "funktiota %<__builtin_next_arg%> kutsuttu ilman argumenttia"
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr "funktiota %<__builtin_next_arg%> kutsuttu ilman argumenttia"
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "funktiota %<__builtin_next_arg%> kutsuttu ilman argumenttia"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr "funktiota %<__builtin_next_arg%> kutsuttu ilman argumenttia"
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "funktiota %<__builtin_next_arg%> kutsuttu ilman argumenttia"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "PROCEDURE-attribuutti on ristiriidassa INTENT-attribuutin kanssa kohteessa ”%s” kohdassa %L"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, fuzzy, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "Automaattitaulukolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "yhteensopimattomat tyypit sijoituksessa"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, fuzzy, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "Muuttujalla ”%s” kohdassa %L ei voi olla sekä POINTER- että BIND(C)-attribuutit"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, fuzzy, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "kolme pistettä sisältävä parametriluettelo ei sovellu tyhjään parametrinimiluettelon esittelyyn"
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "%qE-attribuutti soveltuu vain variadisiin funktioihin"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "SAVE-attribuuttia kohdassa %L ei voida määritellä PURE-proseduurissa"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr "Muuttujalla ”%s” kohdassa %L ei voi olla sekä POINTER- että BIND(C)-attribuutit"
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "%Jlohkoattribuutti ei ole sallittu %qD:lle"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L on oltava valemuuttuja"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "Sijoitus FORALL-indeksimuuttujaan kohdassa %L"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr "Muuttujalla ”%s” kohdassa %L ei voi olla sekä POINTER- että BIND(C)-attribuutit"
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, fuzzy, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "%<__builtin_expect%>-funktion toisen argumentin pitää olla vakio"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, fuzzy, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr "%<__builtin_expect%>-funktion toisen argumentin pitää olla vakio"
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, fuzzy, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Muuttujalla ”%s” kohdassa %L ei voi olla sekä ALLOCATABLE- että BIND(C)-attribuutit"
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "ASYNCHRONOUS= määrite kohdassa %L täytyy olla alustuslauseke"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Muuttujalla ”%s” kohdassa %L ei voi olla sekä ALLOCATABLE- että BIND(C)-attribuutit"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, fuzzy, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "Argumentin %s kohdassa %L on oltava pituudeltaan yksi"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, fuzzy, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "epäkelpo %qs:n soveltaminen tyhjään tyyppiin"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, fuzzy, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L ei voi olla INTENT(IN)"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L ei voi olla INTENT(IN)"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L ei voi olla INTENT(IN)"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "Funktiolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, fuzzy, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, fuzzy, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr "Funktiolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, fuzzy, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "Muuttujan alustus kohdassa %C ei ole sallittu PURE-proseduurissa"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, fuzzy, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "Muuttujan alustus kohdassa %C ei ole sallittu PURE-proseduurissa"
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, fuzzy, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "Muuttujan alustus kohdassa %C ei ole sallittu PURE-proseduurissa"
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "Tuntematon argumenttiluettelofunktio kohdassa %L"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, fuzzy, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr "Symboli ”%s” kohdassa %C on jo COMMON-lohkossa"
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr "%s-lausetta odotettiin kohdassa %L"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, fuzzy, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, fuzzy, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "Proseduurilla ”%s” kohdassa %C on eksplisiittinen rajapinta ja sillä ei saa olla attribuutteja, jotka on esitelty kohdassa %L"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "Argumentilla ”%s”/”%s” PASS(%s) kohdassa %L ei voi olla POINTER-attribuuttia"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "DATA-lause kohdassa %C ei ole sallittu PURE-proseduurissa"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "tyhjä esittely"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "vektoriylivuoto lausekkeessa"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "DATA-lause kohdassa %C ei ole sallittu PURE-proseduurissa"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "Nimiö %d kohdassa %L on määritelty, mutta ei käytetty"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "Nimiö %d kohdassa %L on määritelty, mutta sitä ei voida käyttää"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "Syntaksivirhe IMPORT-lauseessa kohdassa %C"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, fuzzy, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, fuzzy, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Ei voi sijoitaa nimettyyn vakioon kohdassa %C"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, fuzzy, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "muuttuvakokoista objektia ei voi alustaa"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, fuzzy, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "%J%qD on tavallisesti ei-staattinen funktio"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "Alimerkkijonon loppuindeksi kohdassa %L on liian suuri"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, fuzzy, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "Syntaksivirhe merkkipituusspesifikaatiossa kohdassa %C"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, fuzzy, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "epäkelpo %qs:n soveltaminen tyhjään tyyppiin"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, fuzzy, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "Kääntäjänsisäisellä ”%s”-funktiolla kohdassa %L on oltava vähintään kaksi argumenttia"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "BIND(C)-funktion ”%s” paluutyyppi kohdassa %L ei voi olla merkkijono"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "Kääntäjänsisäisellä ”%s”-funktiolla kohdassa %L on oltava vähintään kaksi argumenttia"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L on oltava %4$s"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentin ”%1$s” kohdassa %3$L on oltava %4$s"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "Kääntäjänsisäisellä ”%s”-funktiolla kohdassa %L on oltava vähintään kaksi argumenttia"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, fuzzy, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr "Proseduuri ”%s” kohdassa %C on jo määritelty kohdassa %L"
@@ -81618,330 +81665,330 @@ msgstr "Liikaa argumentteja funktiolle %s kohdassa %L"
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "Funktiolla ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, fuzzy, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "Kaksoiskappale-%s-attribuutti määritelty kohdassa %L"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, fuzzy, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "Kaksoiskappale-%s-attribuutti määritelty kohdassa %L"
+
+#: fortran/symbol.cc:508
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "Odottamaton %s-lause BLOCK DATA -lohkossa kohdassa %C"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "Muuttujalla ”%s” kohdassa %L ei voi olla sekä POINTER- että BIND(C)-attribuutit"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, fuzzy, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "Virheellinen proseduuriargumentti kohdassa %L"
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "Virheellinen proseduuriosoitinsijoitus kohdassa %L"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "Kaksoiskappale-%s-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "Nimi ”%s” kohdassa %C on jo määritelty geneerisenä rajapintana kohdassa %L"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, fuzzy, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "Kaksoiskappale-%s-attribuutti määritelty kohdassa %L"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, fuzzy, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "Kaksoiskappale-%s-attribuutti määritelty kohdassa %L"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr ""
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "Kaksoiskappale-%s-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "Kaksoiskappale VALUE-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr ""
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "Kaksoiskappale-%s-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "SAVE-attribuuttia kohdassa %L ei voida määritellä PURE-proseduurissa"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "Kaksoiskappale SAVE-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "Kaksoiskappale VALUE-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "Kaksoiskappale VALUE-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "SAVE-attribuuttia kohdassa %L ei voida määritellä PURE-proseduurissa"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "Kaksoiskappale-%s-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "Kaksoiskappale-%s-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "Proseduuri ”%s” kohdassa %C on jo määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "Tämä pikanäppäin on jo käytössä toiminnolle %s"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "Kaksoiskappale-BIND-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr "Kaksoiskappale-BIND-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "Kaksoiskappale-EXTENDS-attribuutti määritelty kohdassa %L"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr "virheellinen %%L-arvo"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "Nimi ”%s” kohdassa %C on jo määritelty geneerisenä rajapintana kohdassa %L"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr ""
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "Tyhjällä ”%s” kohdassa %L ei voi olla alustinta"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "Monimerkityksellinen symboli TYPE-määrittelyssä kohdassa %C"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "tyhjä esittely"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "Proseduuri ”%s” kohdassa %L ei voi olla perustyyppiä %s"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, fuzzy, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "Jäsenfunktio %qs"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "Jäsenfunktio %qs"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "FORMAT-nimiö %d kohdassa %L ei ole määritelty"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "Nimi ”%s” kohdassa %C on jo määritelty geneerisenä rajapintana kohdassa %L"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "Muuttuja %s ei voida liittää PURE-proseduuriin kohdassa %C"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "Nimiö ”%s” kohdassa %C ei täsmää IF nimiön ”%s” kanssa"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "parametri %qD virheellisesti esitelty metodityyppi"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr "Odotettiin päättävää nimeä kohdassa %C"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr "Syntaksivirhe IMPORT-lauseessa kohdassa %C"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr ""
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr ""
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "Symboli ”%s” kohdassa %C on jo COMMON-lohkossa"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "tyhjä esittely"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "tyhjä esittely"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, fuzzy, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr "BIND(C)-funktion ”%s” paluutyyppi kohdassa %L ei voi olla taulukko"
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, fuzzy, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "BIND(C)-funktion ”%s” paluutyyppi kohdassa %L ei voi olla taulukko"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "Muuttujalla ”%s” kohdassa %L ei voi olla sekä POINTER- että BIND(C)-attribuutit"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr "Symbolia ”%s” käytetään ennen kuin sille määritellään tyyppi kohdassa %L"
@@ -81971,24 +82018,24 @@ msgstr "Odotettiin argumenttiluetteloa kohdassa %C"
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "Odotettiin argumenttiluetteloa kohdassa %C"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, fuzzy, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "Luodaan väliaikainen komentotiedosto %s\n"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "taulukon koko ei ole kokonaislukutyyppinen vakiolauseke"
@@ -82174,37 +82221,37 @@ msgstr "Funktion ”%s” paluuarvoa kohdassa %L ei ole asetettu"
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr "ISO C90 kieltää muuttuvakokoisen taulukon %qE"
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr "kirjoitussuojatun muuttujan %qs sijoitus"
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr "kirjoitussuojatun muuttujan %qs sijoitus"
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, fuzzy, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "last-op"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Tuntematon argumenttiluettelofunktio kohdassa %L"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -82215,17 +82262,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "Luontaisella ”%s” kohdassa %L ei voi olla alustinta"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, fuzzy, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "kääntäjänsisäisen ”%2$s”-funktion argumentti ”%1$s” kohdassa %3$L ei ole kelvollinen ulottuvuusindeksi"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr "kirjoitussuojatun muuttujan %qs sijoitus"
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr "%<__builtin_args_info%>-funktion argumentin pitää olla vakio"
@@ -82365,7 +82412,7 @@ msgstr "kirjoitussuojatun muuttujan %qs sijoitus"
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, fuzzy, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr "vektoriylivuoto lausekkeessa"
@@ -82735,6 +82782,11 @@ msgstr "muuttuja %qD esitelty uudelleen funktiona"
 msgid "function %qD redeclared as variable"
 msgstr "funktio %qD esitelty uudelleen muuttujana"
 
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "esitelty aiemmin täällä"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -83988,7 +84040,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, fuzzy, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr "%<%T%>-tyyppinen poikkeus siepataan"
@@ -83998,7 +84050,7 @@ msgstr "%<%T%>-tyyppinen poikkeus siepataan"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr ""
@@ -84785,6 +84837,10 @@ msgstr ""
 #~ msgid "class template placeholder %qE not permitted in this context"
 #~ msgstr "parametri esitelty %<auto%>:ksi"
 
+#, fuzzy, gcc-internal-format
+#~ msgid "cannot declare %qD in a different module"
+#~ msgstr "bittikentän %qD osoitetta ei voi ottaa"
+
 #, fuzzy, gcc-internal-format
 #~ msgid "cannot define %qD in different module"
 #~ msgstr "%q+D:n virheellinen uudelleenesittely"
@@ -87442,10 +87498,6 @@ msgstr ""
 #~ msgid "Builtin function %s requires the -maltivec option"
 #~ msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
 
-#, fuzzy
-#~ msgid "Builtin function %s requires the -mpaired option"
-#~ msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
-
 #, fuzzy
 #~ msgid "Builtin function %s requires the -mhard-dfp and -mpower8-vector options"
 #~ msgstr "sisäinen funktio %q+D esitelty ei-funktiona"
diff --git a/gcc/po/fr.po b/gcc/po/fr.po
index 691ef6c95e3..c14d5719b71 100644
--- a/gcc/po/fr.po
+++ b/gcc/po/fr.po
@@ -99,7 +99,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 14.1.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2024-05-09 14:43+0200\n"
 "Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -474,7 +474,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "ne spécifiez pas à la fois -march=… et -mcpu=…"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared et mdll ne sont pas compatibles"
 
@@ -19265,16 +19265,16 @@ msgstr "insn non reconnaissable:"
 msgid "insn does not satisfy its constraints:"
 msgstr "insn ne satisfait pas à ses contraintes:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "créé et utilisé avec des configurations différentes de « %s »"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "créé et utilisé avec des configurations différentes de %<-fpic%>"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 msgid "created and used with different settings of %<-fpie%>"
 msgstr "créé et utilisé avec des configurations différentes de %<-fpie%>"
 
@@ -19595,7 +19595,7 @@ msgstr "modificateur de longueur dans le format de strfmon"
 msgid "<command-line>"
 msgstr "<ligne-de-commande>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "opérande non supporté pour le code « %c »"
@@ -19614,9 +19614,9 @@ msgstr "opérande invalide pour « %%%c »"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, c-format
 msgid "invalid vector constant"
 msgstr "constante vecteur invalide"
@@ -19636,7 +19636,7 @@ msgstr "opérande incompatible pour « %%%c »"
 msgid "incompatible register operand for '%%%c'"
 msgstr "opérande de registre incompatible pour « %%%c »"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "opérande manquant"
@@ -19665,93 +19665,93 @@ msgstr "mode d'adresse invalide"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "impossible de combiner les vecteurs GNU et SVE dans l'opération binaire"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "« %%& » utilisé sans référence à un TLS dynamique local"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "valeur %%J invalide"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "valeur %%r invalide"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "valeur %%R invalide"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "valeur %%N invalide"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "valeur %%P invalide"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "valeur %%h invalide"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "valeur %%L invalide"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "valeur %%m invalide"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "valeur %%M invalide"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "valeur %%U invalide"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "valeur %%s invalide"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "valeur %%C invalide"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "valeur %%E invalide"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "relocalisation unspec inconnue"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "valeur %%xn invalide"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, c-format
 msgid "invalid operand address"
 msgstr "adresse d'opérande invalide"
@@ -19844,35 +19844,35 @@ msgstr "UNSPEC invalide comme opérande : %d"
 msgid "unrecognized supposed constant"
 msgstr "constante supposée non reconnue"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "opérande shift invalide"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "instruction Thumb établie"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "instruction établie dans la séquence conditionnelle"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "Opérande non supporté pour le code « %c »"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -19880,113 +19880,113 @@ msgstr "Opérande non supporté pour le code « %c »"
 msgid "invalid operand for code '%c'"
 msgstr "opérande invalide pour « %c »"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "instruction jamais exécutée"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "code de format Maverick « %c » obsolète"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "conversion invalide depuis le type %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "conversion invalide vers le type %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr "opération non permise sur le type %<bfloat16_t%>"
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "l'opérande d'adresse requiert une contrainte sur le registre X, Y ou Z"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "les opérandes de %T/%t doivent être reg + const_int:"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr "mauvaise adresse, pas une adresse E/S:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr "mauvaise adresse, pas une constante:"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "mauvaise adresse, pas (reg+disp):"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "mauvaise adresse, pas post_inc ou pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "erreur interne du compilateur. Mauvaise adresse:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "Code « %c » non supporté en virgule fixe:"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "erreur interne du compilateur. Mode inconnu:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "insn invalide :"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "insn incorrecte :"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "insn de déplacement inconnue :"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "insn de décalage erronée :"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "erreur interne du compilateur. Décalage incorrect:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr "conversion en virgule fixe non supportée"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr "variable"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 msgid "function parameter"
 msgstr "paramètre de fonction"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr "champ de structure"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 msgid "return type of function"
 msgstr "type de retour d'une fonction"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr "pointeur"
 
@@ -20022,7 +20022,7 @@ msgstr "opérande non supporté"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20341,46 +20341,46 @@ msgstr "l'opérande n'est pas un entier, code d'opérande « R » invalide"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "l'opérande n'est pas un entier spécifique, code d'opérande « R » invalide"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "opérande invalide pour « %c »"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "contrainte invalide pour l'opérande"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, c-format
 msgid "invalid vector immediate"
 msgstr "immédiat vecteur invalide"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "mode insn inconnu"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "conversion invalide depuis le type %<__bf16%> sans option %<-msse2%>"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "conversion invalide depuis le type %<_Float16%> sans option %<-msse2%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "conversion invalide vers le type %<__bf16%> sans option %<-msse2%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "conversion invalide vers le type %<_Float16%> sans option %<-msse2%>"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr "opération non permise sur le type %<__bf16%> sans option %<-msse2%>"
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr "opération non permise sur le type %<_Float16%> sans option %<-msse2%>"
 
@@ -20411,7 +20411,7 @@ msgstr "opération invalide sur %<__fpreg%>"
 msgid "invalid %%P operand"
 msgstr "opérande %%P invalide"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "valeur %%p invalide"
@@ -20438,29 +20438,29 @@ msgstr "impossible d'utiliser une adresse absolue pas relative à gp"
 msgid "invalid addressing mode"
 msgstr "mode d'adressage invalide"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "« %%%c » n'est pas un préfixe d'opérande valide"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "utilisation invalide de « %%%c »"
@@ -20492,7 +20492,7 @@ msgid "post-increment address is not a register"
 msgstr "le post-incrément d'adresse n'est pas un registre"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "mauvaise adresse"
 
@@ -20650,7 +20650,7 @@ msgstr "adresse constante non supportée :"
 msgid "unsupported memory expression:"
 msgstr "expression mémoire non supportée :"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, c-format
 msgid "invalid vector operand"
 msgstr "opérande vectoriel invalide"
@@ -20698,242 +20698,242 @@ msgstr "%<-mquad-memory-atomic%> requiert le mode 64 bits"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "%<-mquad-memory%> n'est pas disponible en mode petit-boutiste"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr "mauvais déplacement"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr "Mauvais déplacement sur 128 bits"
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, c-format
 msgid "invalid %%A value"
 msgstr "valeur %%A invalide"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "valeur %%D invalide"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "valeur %%e invalide"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "valeur %%f invalide"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "valeur %%F invalide"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "valeur %%G invalide"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "valeur %%j invalide"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "valeur %%J invalide"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "valeur %%k invalide"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "valeur %%K invalide"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "valeur %%O invalide"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "valeur %%q invalide"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, c-format
 msgid "invalid %%t value"
 msgstr "valeur %%t invalide"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "valeur %%T invalide"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "valeur %%u invalide"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "valeur %%v invalide"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, c-format
 msgid "invalid %%V value"
 msgstr "valeur %%V invalide"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "valeur %%x invalide"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, c-format
 msgid "invalid %%z value"
 msgstr "valeur %%z invalide"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "valeur %%y invalide, essayez d'utiliser la contrainte « Z »"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "Mélange invalide de types en virgule flottante IEEE 128 bits et IBM 128 bits"
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "Argument AltiVec passé à une fonction sans prototype"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 msgid "Could not generate addis value for fusion"
 msgstr "N'a pu générer de valeur addis pour la fusion"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 msgid "Unable to generate load/store offset for fusion"
 msgstr "Impossible de générer un offset load/store pour la fusion"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr "Mauvaise fusion GPR"
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "conversion invalide depuis le type %<__vector_quad%>"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "conversion invalide vers le type %<__vector_quad%>"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "conversion invalide depuis le type %<__vector_pair%>"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "conversion invalide vers le type %<__vector_pair%>"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr "les références mémoire symboliques sont uniquement supportées sur z10 ou ultérieur"
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "adresse indécomposable"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "opérateur de comparaison invalide pour le modificateur de sortie « E »"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "référence invalide pour le modificateur de sortie « J »"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "adresse invalide pour le modificateur de sortie « O »"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "adresse invalide pour le modificateur de sortie « R »"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "référence mémoire attendue pour le modificateur de sortie « S »"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "adresse invalide pour le modificateur de sortie « S »"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "registre ou expression mémoire attendue pour le modificateur de sortie « N »"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "registre ou expression mémoire attendue pour le modificateur de sortie « M »"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "constante invalide pour le modificateur de sortie « %c »"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "constante invalide - essayez un modificateur de sortie"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "vecteur constant invalide pour le modificateur de sortie « %c »"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "expression invalide - essayez un modificateur de sortie"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "expression invalide pour le modificateur de sortie « %c »"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 msgid "vector argument passed to unprototyped function"
 msgstr "vecteur passé en argument à une fonction sans prototype"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr "les types diffèrent sur le type signé/non-signé"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr "l'opérateur binaire ne supporte pas deux opérandes booléens vectoriels"
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr "l'opérateur binaire ne supporte pas l'opérande booléen vectoriel"
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr "l'opérateur binaire ne supporte pas le mélange d'un booléen vectoriel avec un vecteur en virgule flottante"
 
@@ -21124,12 +21124,12 @@ msgstr "({anonyme})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "%<;%> attendu"
@@ -21142,7 +21142,7 @@ msgstr "%<;%> attendu"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21151,7 +21151,7 @@ msgstr "%<;%> attendu"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "%<)%> attendu"
@@ -21159,7 +21159,7 @@ msgstr "%<)%> attendu"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "%<]%> attendu"
@@ -21170,29 +21170,29 @@ msgstr "%<;%>, %<,%> ou %<)%> attendu"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "%<(%> attendu"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "%<[%> attendu"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "%<{%> attendu"
@@ -21202,17 +21202,17 @@ msgstr "%<{%> attendu"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "%<:%> attendu"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "%<while%> attendu"
@@ -21221,8 +21221,8 @@ msgstr "%<while%> attendu"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "%<,%> attendu"
@@ -21232,17 +21232,17 @@ msgid "expected %<.%>"
 msgstr "%<.%> attendu"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "%<@end%> attendu"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "%<>%> attendu"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "%<,%> ou %<)%> attendu"
@@ -21250,32 +21250,32 @@ msgstr "%<,%> ou %<)%> attendu"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "%<=%> attendu"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "%<}%> attendu"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, gcc-internal-format
 msgid "expected %<else%>"
 msgstr "%<else%> attendu"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "%<#pragma omp section%> ou %<}%> attendu"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr "<message inconnu durant la compilation>"
 
@@ -21283,7 +21283,7 @@ msgstr "<message inconnu durant la compilation>"
 msgid "(anonymous)"
 msgstr "(anonyme)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "%<<%> attendu"
@@ -21298,21 +21298,21 @@ msgstr "étiquette attendue"
 msgid "candidate:"
 msgstr "candidat :"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 msgid "  after user-defined conversion:"
 msgstr "  après la conversion définie par l'utilisateur :"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "le candidat est :"
 msgstr[1] "les candidats sont :"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "candidat 1 :"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "candidat 2 :"
 
@@ -21545,7 +21545,7 @@ msgstr "%r%s:%d:%d:%R   dans l'expansion %<constexpr%> de %qs"
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr "%r%s:%d:%R   dans l'expansion %<constexpr%> de %qs"
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "les candidats sont :"
 
@@ -21589,48 +21589,48 @@ msgstr "la conversion supprime l'attribut « const »"
 msgid "source type is not polymorphic"
 msgstr "le type source n'est pas polymorphique"
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "type d'argument erroné pour le moins unaire"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "type d'argument erroné pour le plus unaire"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "type d'argument erroné pour le complément de bit"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "type d'argument erroné pour abs"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "type d'argument erroné pour la conjugaison"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 msgid "in argument to unary !"
 msgstr "dans l'argument d'un unaire !"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr "pas d'opérateur de pré-incrémentation pour le type"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr "pas d'opérateur de post-incrémentation pour le type"
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr "pas d'opérateur de pré-décrémentation pour le type"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr "pas d'opérateur de post-décrémentation pour le type"
 
@@ -21714,7 +21714,7 @@ msgstr "Fonctionnalité obsolète :"
 msgid "Deleted feature:"
 msgstr "Fonctionnalité supprimée :"
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr "affectation de tableau"
 
@@ -21905,11 +21905,11 @@ msgstr "bloc IF"
 msgid "implied END DO"
 msgstr "END DO implicite"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "affectation"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "affectation de pointeur"
 
@@ -22069,47 +22069,47 @@ msgstr "L'opérande de l'opérateur utilisateur %%<%s%%> à %%L est %s"
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "Les opérandes de l'opérateur utilisateur %%<%s%%> à %%L sont %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr "Variable de boucle"
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr "variable d'itérateur"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr "Expression de départ dans la boucle DO"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr "Expression de fin dans la boucle DO"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr "Expression de pas dans la boucle DO"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr "objet DEALLOCATE"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr "objet ALLOCATE"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr "variable STAT"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr "variable ERRMSG"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr "élément dans READ"
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr "variable ACQUIRED_LOCK"
 
@@ -22118,11 +22118,11 @@ msgstr "variable ACQUIRED_LOCK"
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "Longueurs de CHARACTER différentes (%ld/%ld) dans le constructeur de tableau"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr "Débordement d'entier en calculant la quantité de mémoire à allouer"
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr "La valeur du paramètre PDT LEN « %s » n'est pas en accord avec celle dans la déclaration fictive"
@@ -22137,12 +22137,12 @@ msgstr "La longueur réelle de la chaîne ne correspond pas à celle déclarée
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "La longueur réelle de la chaîne est plus courte que celle déclarée pour l'argument fictif « %s » (%ld/%ld)"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr "La cible du remappage de rang est trop petite (%ld < %ld)"
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr "Assignation d'un scalaire à un tableau non alloué"
 
@@ -22151,81 +22151,81 @@ msgstr "Assignation d'un scalaire à un tableau non alloué"
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr "Longueurs de caractères inégales (%ld/%ld) dans %s"
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr "Argument POS (%ld) hors des limites 0:%ld dans l'intrinsèque BTEST"
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "Argument POS (%ld) hors limite 0:%ld dans l'intrinsèque %s"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr "Argument POS (%ld) hors limite 0:%ld dans l'intrinsèque IBITS"
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr "Argument LEN (%ld) hors limite 0:%ld dans l'intrinsèque IBITS"
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) dans l'intrinsèque IBITS"
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "Argument SHIFT (%ld) hors limite 0:%ld dans l'intrinsèque %s"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr "Argument SHIFT (%ld) hors limites -%ld:%ld dans l'intrinsèque ISHIFT"
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr "Argument SIZE (%ld) hors limite 1:%ld dans l'intrinsèque ISHFTC"
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr "Argument SHIFT (%ld) hors limite -%ld:%ld dans l'intrinsèque ISHFTC"
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "L'argument NCOPIES de l'intrinsèque REPEAT est négatif (sa valeur est %ld)"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "L'argument NCOPIES de l'intrinsèque REPEAT est trop grand"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "Argument FROMPOS (%ld) hors limite 0:%d dans l'intrinsèque MVBITS"
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "Argument LEN (%ld) hors limite 0:%d dans l'intrinsèque MVBITS"
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "Argument TOPOS (%ld) hors limite 0:%d dans l'intrinsèque MVBITS"
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) dans l'intrinsèque MVBITS"
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) dans l'intrinsèque MVBITS"
@@ -22247,15 +22247,15 @@ msgstr "L'étiquette assignée n'est pas une étiquette cible"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr "Numéro d'image %d invalide dans SYNC IMAGES"
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr "La boucle itère sans fin"
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr "La variable de boucle a été modifiée"
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr "La valeur de pas de DO est zéro"
 
@@ -22331,7 +22331,7 @@ msgid "expected boolean type"
 msgstr "type booléen attendu"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr "entier attendu"
@@ -22394,7 +22394,7 @@ msgstr "pas assez d'arguments"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "trop d'arguments"
@@ -23018,7 +23018,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "%<-mrelax%> est uniquement supporté pour le PIC RTP"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "Erreur de syntaxe dans l'instruction %s à %C"
@@ -23455,8 +23455,8 @@ msgstr "l'attribut %qE est ignoré car il est en conflit avec l'attribut %qs"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, gcc-internal-format
 msgid "previous declaration here"
 msgstr "déclaration précédente ici"
@@ -23473,7 +23473,7 @@ msgstr "directive d'attribut %qE ignorée"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "directive d'attribut de portée %<%E::%E%> ignorée"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "nombre erroné d'arguments spécifié pour l'attribut %qE"
@@ -23483,7 +23483,7 @@ msgstr "nombre erroné d'arguments spécifié pour l'attribut %qE"
 msgid "expected %i or more, found %i"
 msgstr "%i ou plus attendu, %i trouvé"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, gcc-internal-format, gfc-internal-format
 msgid "expected %i, found %i"
 msgstr "%i attendu, %i trouvé"
@@ -23550,12 +23550,12 @@ msgstr "les attributs de type sont ignorés après que le type ait déjà été
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -23564,7 +23564,7 @@ msgstr "les attributs de type sont ignorés après que le type ait déjà été
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -23586,8 +23586,8 @@ msgstr "attribut %qE ignoré"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr "attribut %<target%> manquant pour %qD avec plusieurs versions"
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "déclaration précédente de %qD"
@@ -23696,7 +23696,7 @@ msgstr "impossible de lire le profil de la fonction depuis %s"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "le décalage %qwi est hors des limites de la chaîne constante"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, gcc-internal-format
 msgid "%qE declared here"
 msgstr "%qE déclaré ici"
@@ -23801,7 +23801,7 @@ msgstr "argument 0 invalide pour %qs"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, gcc-internal-format
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
 msgstr "utilisation invalide de %<__builtin_va_arg_pack ()%>"
@@ -23823,42 +23823,42 @@ msgstr "le deuxième argument de %<__builtin_longjmp%> doit être 1"
 msgid "target format does not support infinity"
 msgstr "le format cible ne supporte pas l'infini"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, gcc-internal-format
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "%<va_start%> utilisé dans une fonction ayant des arguments fixes"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "nombre erroné d'arguments pour la fonction %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "%<__builtin_next_arg%> appelé sans argument"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "nombre erroné d'arguments pour la fonction %<__builtin_next_arg%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "le deuxième paramètre de %<va_start%> n'est pas le dernier argument nommé"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr "le comportement est indéfini quand le second paramètre de %<va_start%> est déclaré avec le stockage %<register%>"
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "le premier argument de %qD doit être un pointeur et le second une constante entière"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr "le dernier argument de %qD n'est pas une constante entière entre 0 et 3"
@@ -24904,12 +24904,12 @@ msgstr "l'attribut %<weakref%> est ignoré car la variable est initialisée"
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F utilisé mais jamais défini"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F déclaré %<static%> mais jamais défini"
@@ -25461,7 +25461,7 @@ msgstr "%<region_array%> ne correspond pas à %<region_tree%>"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "%<lp_array%> ne correspond pas à %<region_tree%>"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, gcc-internal-format
 msgid "%qs failed"
 msgstr "%qs a échoué"
@@ -25491,17 +25491,17 @@ msgstr "ordre de stockage inverse pour le mode %s"
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr "écriture de %wu bits de données hors des limites de l'objet de destination, les données ont été tronquées dans %wu bits"
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr "appel à %qs déclaré avec une erreur d'attribut : %s"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "appel à %qs déclaré avec un avertissement d'attribut : %s"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr "on suppose que le débordement signé n'a pas lieu lors de la simplification de %<X - Y %s 0%> en %<X %s Y%>"
@@ -25536,7 +25536,7 @@ msgstr "la constante de grande taille en virgule fixe a été tronquée implicit
 msgid "comparison is always %d due to width of bit-field"
 msgstr "la comparaison est toujours %d en raison de la largeur du champ de bits"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr "suppose qu'un débordement signé n'a pas lieu quand le test de la plage est simplifié"
@@ -25700,7 +25700,7 @@ msgstr "erreur à l'obtention des temps du processus: %m"
 msgid "%s signal terminated program %s"
 msgstr "le signal %s a terminé le programme %s"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "option %qs non reconnue sur la ligne de commande"
@@ -25963,7 +25963,7 @@ msgstr "la spec multilib %qs est invalide"
 msgid "multilib exclusions %qs is invalid"
 msgstr "les exclusions multilib %qs sont invalides"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "le sélecteur multilib %qs %qs est invalide"
@@ -26262,22 +26262,22 @@ msgstr "%qD la limite spécifiée %E excède la taille de la destination %E"
 msgid "%qD specified bound %E equals source length"
 msgstr "la limite spécifiée par %qD (%E) est égale la longueur de la destination"
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "le membre tableau flexible %qD n'a pas de bits de remplissage bien définis pour %qs"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr "la gestion du champ de bits PDP11 est non supportée dans %qs"
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr "%s n'est pas supporté pour des agrégats de longueur variable"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr "%s n'est pas supporté sur cette cible"
@@ -26318,16 +26318,16 @@ msgid "function returns address of local variable"
 msgstr "la fonction retourne l'adresse d'une variable locale"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -26339,366 +26339,366 @@ msgstr "déclaré ici"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr "argument %<nonnull%> %qD comparé à NULL"
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr "la sortie de %qE peut être tronquée avant le dernier caractère de format"
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr "la sortie de %qE peut être tronquée avant le dernier caractère de format"
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr "%qE peut écrire un zéro terminal au delà de la fin de la destination"
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr "%qE écrit un zéro terminal au delà de la fin de la destination"
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] "la directive %<%.*s%> écrit %wu octet dans une région dont la taille est %wu"
 msgstr[1] "la directive %<%.*s%> écrit %wu octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] "la sortie de la directive %<%.*s%> peut être tronquée en écrivant %wu octet dans une région dont la taille est %wu"
 msgstr[1] "la sortie de la directive %<%.*s%> peut être tronquée en écrivant %wu octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] "la sortie de la directive %<%.*s%> a été tronquée en écrivant %wu octet dans une région dont la taille est %wu"
 msgstr[1] "la sortie de la directive %<%.*s%> a été tronquée en écrivant %wu octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr "la sortie de la directive %<%.*s%> peut être tronquée en écrivant jusqu'à %wu octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr "la sortie de la directive %<%.*s%> a été tronquée en écrivant jusqu'à %wu octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr "la directive %<%.*s%> écrit jusqu'à %wu octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "la sortie de la directive %<%.*s%> peut être tronquée en écrivant probablement %wu octets ou plus dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "la sortie de la directive %<%.*s%> a été tronquée en écrivant probablement %wu octets ou plus dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr "la directive %<%.*s%> écrit probablement %wu octets ou plus dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "la sortie de la directive %<%.*s%> peut être tronquée en écrivant entre %wu et %wu octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "la sortie de la directive %<%.*s%> a été tronquée en écrivant entre %wu et %wu octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr "la directive %<%.*s%> écrit entre %wu et %wu octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr "la sortie de la directive %<%.*s%> peut être tronquée en écrivant %wu octets ou plus dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr "la sortie de la directive %<%.*s%> a été tronquée en écrivant %wu ou plus d'octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr "la directive %<%.*s%> écrit %wu ou plus d'octets dans une région dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "la directive %<%.*s%> écrit %wu octet dans une région dont la taille est comprise entre %wu et %wu"
 msgstr[1] "la directive %<%.*s%> écrit %wu octets dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "la sortie de la directive %<%.*s%> peut être tronquée en écrivant %wu octet dans une région dont la taille est comprise entre %wu et %wu"
 msgstr[1] "la sortie de la directive %<%.*s%> peut être tronquée en écrivant %wu octets dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "la sortie de la directive %<%.*s%> a été tronquée en écrivant %wu octet dans une région dont la taille est comprise entre %wu et %wu"
 msgstr[1] "la sortie de la directive %<%.*s%> a été tronquée en écrivant %wu octets dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "la sortie de la directive %<%.*s%> peut être tronquée en écrivant jusqu'à %wu octets dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "la sortie de la directive %<%.*s%> a été tronquée en écrivant jusqu'à %wu octets dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "la directive %<%.*s%> écrit jusqu'à %wu octets dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "la sortie de la directive %<%.*s%> peut être tronquée en écrivant probablement %wu octets ou plus dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "la sortie de la directive %<%.*s%> a été tronquée en écrivant probablement %wu octets ou plus dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "la directive %<%.*s%> écrit probablement %wu octets ou plus dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "la sortie de la directive %<%.*s%> peut être tronquée en écrivant entre %wu et %wu octets dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "la sortie de la directive %<%.*s%> a été tronquée en écrivant entre %wu et %wu octets dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "la directive %<%.*s%> écrit entre %wu et %wu octets dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "la sortie de la directive %<%.*s%> peut être tronquée en écrivant %wu octets ou plus dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "la sortie de la directive %<%.*s%> a été tronquée en écrivant %wu octets ou plus dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "la directive %<%.*s%> écrit %wu octets ou plus dans une région dont la taille est comprise entre %wu et %wu"
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr "l'argument de la directive %<%.*s%> est nul"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr "la sortie de la directive %<%.*s%> qui a %wu octets dépasse la taille minimum requise de 4095"
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr "la sortie de la directive %<%.*s%> qui contient entre %wu et %wu octets dépasse la taille minimum requise de 4095"
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr "la sortie de la directive %<%.*s%> qui contient entre %wu et %wu octets peut dépasser la taille minimum requise de 4095"
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr "la sortie de la directive %<%.*s%> qui a %wu octets dépasse %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr "la sortie de la directive %<%.*s%> qui contient entre %wu et %wu octets dépasse %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "la sortie de la directive %<%.*s%> qui a %wu octets fait déborder le résultat au delà de %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "la sortie de la directive %<%.*s%> qui contient entre %wu et %wu octets fait déborder le résultat au delà de %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr "la sortie de la directive %<%.*s%> qui contient entre %wu et %wu octets peut faire déborder le résultat au delà de %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr "l'argument de la directive %<%.*s%> n'est pas une chaîne avec un zéro terminal"
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr "l'argument référencé est déclaré ici"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] "on suppose que la sortie de la directive occupe %wu octet"
 msgstr[1] "on suppose que la sortie de la directive occupe %wu octets"
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "argument de directive %qE"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr "argument de directive dans la plage [%E, %E]"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr "utilise la plage [%E, %E] pour l'argument de la directive"
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] "%qE écrit %wu octet dans une destination dont la taille est %wu"
 msgstr[1] "%qE écrit %wu octets dans une destination dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr "%qE écrit entre %wu et %wu octets dans une destination dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr "%qE écrit %wu octets ou plus (%wu supposé) dans une destination dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr "%qE écrit %wu octets ou plus dans une destination dont la taille est %wu"
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] "%qE écrit %wu octet"
 msgstr[1] "%qE écrit %wu octets"
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr "%qE écrit entre %wu et %wu octets"
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr "%qE écrit %wu octets ou plus (%wu supposé)"
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr "%qE écrit %wu octets ou plus"
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr "la largeur de la directive %<%.*s%> est hors limites"
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr "la précision de la directive %<%.*s%> est hors limites"
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr "%qE les arguments %Z et peut-être %Z recouvrent l'objet de destination %qE"
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] "%qE l'argument %Z recouvre l'objet destination %qE"
 msgstr[1] "%qE les arguments %Z recouvrent l'objet destination %qE"
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] "%qE l'argument %Z peut recouvrir l'objet destination %qE"
 msgstr[1] "%qE les arguments %Z peuvent recouvrir l'objet destination %qE"
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr "l'objet destination référencé par l'argument 1 qualifié avec %<restrict%> était déclaré ici"
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr "la limite spécifiée %wu excède la taille maximale de l'objet (%wu)"
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr "la limite spécifiée %wu excède %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr "la plage de la limite spécifiée [%wu, %wu] excède %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, gcc-internal-format
 msgid "null destination pointer"
 msgstr "pointeur de destination nul"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr "la limite spécifiée %wu dépasse la taille %wu de l'objet de destination"
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, gcc-internal-format
 msgid "null format string"
 msgstr "chaîne de format nulle"
@@ -27435,12 +27435,12 @@ msgstr "utilisation d'un pointeur ballant vers %qD"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD déclaré ici"
@@ -28206,7 +28206,7 @@ msgstr "le jeton %u a %<x-location == %u%>"
 msgid "token %u has %<y-location == %u%>"
 msgstr "le jeton %u a %<y-location == %u%>"
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "utilisation invalide de l'attribut %<fallthrough%>"
@@ -28550,17 +28550,17 @@ msgstr "le nom %qs est défini à une valeur différente dans une autre unité d
 msgid "mismatching definition"
 msgstr "définition non concordante"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr "fnsummary invalide dans un flux LTO"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr "le résumé en ligne ipa est manquant dans le fichier d'entrée"
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr "le résumé de modref IPA est manquant dans le fichier d'entrée"
@@ -29624,72 +29624,72 @@ msgstr "erreur d'écriture des enregistrements optimisés dans %qs : %s"
 msgid "error closing optimization records %qs"
 msgstr "erreur lors de la fermeture des enregistrements optimisés %qs"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, gcc-internal-format
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "l'option %qs en ligne de commande n'est pas supportée par cette configuration"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "argument manquant à %qs"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "l'argument de %qs devrait être un entier non négatif optionnellement suivi d'une unité de taille"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "l'argument de %qs doit être un entier non négatif"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "l'argument de %qs n'est pas entre %d et %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, gcc-internal-format
 msgid "invalid argument in option %qs"
 msgstr "argument invalide pour l'option %qs"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr "%qs est spécifié plusieurs fois dans la même option"
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "%qs est mutuellement exclusif avec %qs et ne peuvent pas être spécifiées ensemble"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "argument non reconnu pour l'option %qs"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "les arguments valables pour %qs sont: %s; vouliez vous utiliser %qs ?"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "les arguments valables pour %qs sont: %s"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "l'option %qs n'est plus supportée"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, gcc-internal-format
 msgid "argument to %qs is bigger than %d"
 msgstr "l'argument pour %qs est plus grand que %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr "%<COLLECT_GCC_OPTIONS%> mal formé"
@@ -29763,8 +29763,8 @@ msgstr "l'argument de %<-O%> doit être un entier non négatif, %<g%>, %<s%>, %<
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "%qs est incompatible avec %qs"
@@ -30479,7 +30479,7 @@ msgstr "une variable-registre globale suit une définition de fonction"
 msgid "register of %qD used for multiple global register variables"
 msgstr "le registre de %qD est utilisé pour plusieurs variables-registre globales"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "en conflit avec %qD"
@@ -30930,42 +30930,42 @@ msgstr "la section de l'alias %q+D doit correspondre à la section de sa cible"
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "%<__builtin_saveregs%> n'est pas supporté par cette cible"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "l'argument %qs n'est pas supporté pour %qs sur cette cible"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "fonctions imbriquées pas supportées sur cette cible"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "trampolines de fonctions imbriquées pas supportés sur cette cible"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "les constructeurs globaux ne sont pas supportés sur cette cible"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "les destructeurs globaux ne sont pas supportés sur cette cible"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, gcc-internal-format
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "l'attribut %<target%> n'est pas supporté sur cette machine"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, gcc-internal-format
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "l'attribut %<target_version%> n'est pas supporté sur cette machine"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr "%<#pragma GCC target%> n'est pas supporté pour cette machine"
@@ -32078,82 +32078,82 @@ msgstr "le BB %i a une arête incorrecte"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "le BB %i a une arête fallthru incorrecte"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "la fonction %q+F ne peut jamais être copiée car elle reçoit un « goto » non local"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "la fonction %q+F ne peut jamais être copiée car elle sauvegarde l'adresse d'une étiquette locale dans une variable statique"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "la fonction %q+F ne peut jamais être mise en ligne car elle utilise « alloca » (ce qui sera outrepassé en utilisant l'attribut « always_inline »)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "la fonction %q+F ne peut jamais être mise en ligne parce qu'elle utilise setjmp"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "la fonction %q+F ne peut jamais être mise en ligne parce qu'elle utilise une liste variable d'arguments"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "la fonction %q+F ne peut jamais être mise en ligne parce qu'elle utilise setjmp-longjmp pour gérer les exceptions"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "la fonction %q+F ne peut jamais être mise en ligne parce qu'elle utilise un « goto » qui n'est pas local"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "la fonction %q+F ne peut jamais être mise en ligne parce qu'elle utilise %<__builtin_return%> ou %<__builtin_apply_args%>"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "la fonction %q+F ne peut jamais être mise en ligne parce qu'elle contient un « goto » calculé"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "la fonction %q+F ne peut jamais être mise en ligne parce qu'elle a un argument VLA"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "la fonction %q+F ne peut jamais être mise en ligne parce que cela est supprimé par l'utilisation de %<-fno-inline%>"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "la fonction %q+F ne peut jamais être mise en ligne parce qu'elle utilise des attributs en conflit avec la mise en ligne"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "la mise en ligne a échoué dans l'appel à %<always_inline%> %q+F: %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "appelé d'ici"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, gcc-internal-format
 msgid "called from this function"
 msgstr "appelé depuis cette fonction"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "la mise en ligne a échoué dans l'appel à %q+F: %s"
@@ -32209,27 +32209,27 @@ msgstr "attribut de spec fn « %s » invalide"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "attribut de spec fn « %s » invalide arg %i"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr "le pointeur %qs est nul"
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr "dans un appel à la fonction membre non statique %qD"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr "argument %u nul où un non-nul est attendu"
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "dans un appel à la fonction interne %qD"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "dans un appel à la fonction %qD déclarée %qs"
@@ -32433,7 +32433,7 @@ msgstr "%qs est utilisé sans avoir été initialisé"
 msgid "%qs may be used uninitialized"
 msgstr "%qs pourrait être utilisé sans être initialisé"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD a été déclaré ici"
@@ -32663,7 +32663,7 @@ msgstr "la condition vectorielle sera développée à la pièce"
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr "l'opération de brassage vectoriel sera développée à la pièce"
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr "la vectorisation n'a pas eu lieu pour une boucle simd"
@@ -32678,122 +32678,122 @@ msgstr "élément non constant dans un CONSTRUCTOR constant"
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr "élément avec des effets de bord dans un CONSTRUCTOR sans effets de bord"
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "les tableaux de fonctions ne sont pas pertinents"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "le type retourné par une fonction ne peut être une fonction"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "vérification de l'arbre: %s, obtenu %s dans %s, à %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "vérification de l'arbre: n'attendait aucun parmi %s, obtenu %s dans %s, à %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "vérification de l'arbre: attendait la classe %qs, obtenu %qs (%s) dans %s, à %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "vérification de l'arbre: on n'attendait pas la classe %qs, obtenu %qs (%s) dans %s, à %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "vérification de l'arbre: attendait %<omp_clause %s%>, obtenu %s dans %s, à %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "vérification de l'arbre: attendait un arbre contenant la structure %qs, obtenu %qs dans %s, à %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "vérification de l'arbre: accès à elt %d de %<tree_int_cst%> avec %d elts dans %s, à %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "vérification de l'arbre: accès à elt %d de %<tree_vec%> avec %d elts dans %s, à %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "vérification de l'arbre: opérande accédé %d de %s avec %d opérandes dans %s, à %s:%d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "vérification de l'arbre: opérande accédé %d de %<omp_clause %s%> avec %d opérandes dans %s, à %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qD est obsolète: %s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qD est obsolète"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE est obsolète: %s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%qE est obsolète"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "le type est obsolète: %s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "le type est obsolète"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, gcc-internal-format
 msgid "%qD is unavailable: %s"
 msgstr "%qD n'est pas disponible : %s"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, gcc-internal-format
 msgid "%qD is unavailable"
 msgstr "%qD n'est pas disponible"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, gcc-internal-format
 msgid "%qE is unavailable: %s"
 msgstr "%qE n'est pas disponible : %s"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, gcc-internal-format
 msgid "%qE is unavailable"
 msgstr "%qE n'est pas disponible"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr "le type n'est pas disponible : %s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, gcc-internal-format
 msgid "type is unavailable"
 msgstr "le type n'est pas disponible"
@@ -32818,262 +32818,262 @@ msgstr "le type n'est pas disponible"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr "la variante du type diffère sur %s"
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr "la variante du type a un %<TYPE_SIZE_UNIT%> différent"
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr "%<TYPE_SIZE_UNIT%> de la variante du type"
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr "%<TYPE_SIZE_UNIT%> du type"
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr "variante du type avec %<TYPE_ALIAS_SET_KNOWN_P%>"
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr "la variante du type a un %<TYPE_VFIELD%> différent"
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr "la variante du type a un %<TYPE_BINFO%> différent"
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr "%<TYPE_BINFO%> de la variante du type"
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr "%<TYPE_BINFO%> du type"
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr "la variante du type a un %<TYPE_FIELDS%> différent"
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr "le premier désaccord est le champ"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr "et le champ"
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr "la variante du type a un %<TREE_TYPE%> différent"
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr "%<TREE_TYPE%> de la variante du type"
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr "%<TREE_TYPE%> du type"
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "le type n'est pas compatible avec sa variante"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not an opaque type"
 msgstr "le type %s n'est pas un type opaque"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not with opaque mode"
 msgstr "le type %s n'est pas avec un mode opaque"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr "le type %s diffère sur %<TYPE_MODE%>"
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr "le type %s diffère sur %<TYPE_SIZE%>"
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr "le type %s diffère sur %<TYPE_ALIGN%>"
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr "le type %s diffère sur %<TYPE_USER_ALIGN%>"
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, gcc-internal-format
 msgid "main variant is not defined"
 msgstr "la variante principale n'est pas définie"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr "%<TYPE_MAIN_VARIANT%> a un %<TYPE_MAIN_VARIANT%> différent"
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr "%<TYPE_CANONICAL%> a un %<TYPE_CANONICAL%> différent"
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr "%<TYPE_CANONICAL%> n'est pas compatible"
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr "le %<TYPE_MODE%> de %<TYPE_CANONICAL%> n'est pas compatible"
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr "le %<TYPE_CANONICAL%> de la variante principale n'est pas la variante principale"
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr "%<TYPE_VFIELD%> n'est pas %<FIELD_DECL%> ni %<TREE_LIST%>"
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr "%<TYPE_NEXT_PTR_TO%> n'est pas %<POINTER_TYPE%>"
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr "%<TYPE_NEXT_REF_TO%> n'est pas %<REFERENCE_TYPE%>"
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr "%<TYPE_BINFO%> n'est pas %<TREE_BINFO%>"
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr "le type %<TYPE_BINFO%> n'est pas %<TYPE_MAIN_VARIANT%>"
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr "%<TYPE_METHOD_BASETYPE%> n'est pas un enregistrement ni une union"
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr "%<TYPE_OFFSET_BASETYPE%> n'est pas un enregistrement ni une union"
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr "%<TYPE_ARRAY_MAX_SIZE%> pas %<INTEGER_CST%>"
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr "%<TYPE_MAX_VALUE_RAW%> non NULL"
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr "le champ %<TYPE_LANG_SLOT_1 (binfo)%> est non NULL"
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr "la valeur de l'enum n'est pas %<CONST_DECL%> ou %<INTEGER_CST%>"
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr "le type de la valeur de l'enum n'est pas %<INTEGER_TYPE%> et n'est pas convertible en l'enum"
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr "le nom de la valeur de l'enum n'est pas %<IDENTIFIER_NODE%>"
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "le %<TYPE_DOMAIN%> du tableau n'est pas d'un type entier"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "%<TYPE_FIELDS%> défini dans un type incomplet"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr "arbre erroné dans la liste %<TYPE_FIELDS%>"
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr "%<TYPE_CACHED_VALUES_P%> est %i tandis que %<TYPE_CACHED_VALUES%> est %p"
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr "%<TYPE_CACHED_VALUES%> n'est pas %<TREE_VEC%>"
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr "mauvaise entrée %<TYPE_CACHED_VALUES%>"
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr "%<TREE_PURPOSE%> n'est pas NULL dans la liste %<TYPE_ARG_TYPES%>"
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr "entrée erronée dans la liste %<TYPE_ARG_TYPES%>"
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr "le champ %<TYPE_VALUES_RAW%> n'est pas NULL"
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr "%<TYPE_CACHED_VALUES_P%> est défini alors qu'il ne le devrait pas"
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr "%<TYPE_METHOD_BASETYPE%> n'est pas la variante principale"
@@ -33289,7 +33289,7 @@ msgstr "les définitions d'alias ne sont pas supportées dans cette configuratio
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "l'attribut de visibilité n'est pas supporté dans cette configuration; ignoré"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr "%+qD sans l'attribut %<retain%> et %qD avec l'attribut %<retain%> sont placés dans une section avec le même nom"
@@ -33493,7 +33493,7 @@ msgstr "l'attribut %qE est ignoré car %qD n'est pas une variable"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "l'attribut %qE est ignoré car %qD n'est pas une variable locale"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "l'attribut %qE n'a d'effet que sur les objets publics"
@@ -33675,7 +33675,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "l'attribut %qE est ignoré car il n'est pas défini sur une variable"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "l'attribut %qE ne peut être spécifié pour des variables locales"
@@ -33990,7 +33990,7 @@ msgstr "%qD n'est pas compatible avec %qD"
 msgid "%qE argument is not a function"
 msgstr "l'argument de %qE n'est pas une fonction"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "le message déprécié n'est pas une chaîne"
@@ -34496,7 +34496,7 @@ msgstr "le C++ ISO ne permet pas l'utilisation de %<alignof%> sur un type foncti
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "le C ISO ne permet pas l'utilisation de %<_Alignof%> sur un type fonction"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "utilisation invalide de %qs sur un type void"
@@ -34628,17 +34628,17 @@ msgstr "l'attribut %<fallthrough%> est spécifié plusieurs fois"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "l'attribut %<fallthrough%> est spécifié avec un paramètre"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "trop peu d'arguments pour la fonction %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -34762,166 +34762,166 @@ msgstr "tentative de prendre l'adresse du membre %qD qui est un champ de bits d'
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr "l'index %E désigne un offset plus grand que la taille de %qT"
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "la taille du tableau est trop grande"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "le type %qT de l'opérande est incompatible avec l'argument %d de %qE"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "argument de type pointeur ou de type entier attendu pour l'argument 1"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr "les deux arguments doivent être compatibles"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "nombre d'arguments incorrect pour la fonction %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "l'argument 1 de %qE doit être un type pointeur non void"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "l'argument 1 de %qE doit être un pointeur vers un type complet"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "l'argument 1 de %qE doit être un pointeur vers un type ayant une taille constante"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "l'argument 1 de %qE doit être un pointeur vers un objet de taille non nulle"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "l'argument %d de %qE doit être un type pointeur"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "l'argument %d de %qE doit être un pointeur vers un type ayant une taille constante"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "l'argument %d de %qE doit être un pointeur vers une fonction"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "désaccord de taille dans l'argument %d de %qE"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "l'argument %d de %qE doit être un pointeur vers un type %<const%>"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "l'argument %d de %qE perd le qualificatif %<const%>"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "l'argument %d de %qE ne peut pas être un pointeur vers un type %<volatile%>"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "l'argument %d de %qE perd le qualificatif %<volatile%>"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "modèle mémoire non entier pour l'argument %d de %qE"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "modèle mémoire invalide pour l'argument %d de %qE"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr "cette cible ne défini pas de barrière de spéculation; votre programme s'exécutera quand même correctement mais des spéculations incorrectes pourraient ne pas être restreintes"
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "la valeur de l'index est hors limites"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "la conversion du scalaire %qT vers le vecteur %qT implique une troncature"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "la fonction interne %qE doit être appelée directement"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, gcc-internal-format
 msgid "size of array %qE is not a constant expression"
 msgstr "la taille du tableau %qE n'est pas une expression constante"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, gcc-internal-format
 msgid "size of array is not a constant expression"
 msgstr "la taille du tableau n'est pas une expression constante"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, gcc-internal-format
 msgid "size %qE of array %qE is negative"
 msgstr "la taille %qE du tableau %qE est négative"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, gcc-internal-format
 msgid "size %qE of array is negative"
 msgstr "la taille %qE du tableau est négative"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr "la taille %qE du tableau %qE excède la taille maximale %qE de l'objet"
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr "la taille %qE du tableau excède la taille maximale %qE de l'objet"
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "la taille du tableau %qE excède la taille maximale %qE de l'objet"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr "la taille du tableau excède la taille maximale %qE de l'objet"
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr "la variable d'environnement %s doit fournir un entier non négatif plus petit que ou égal à %wd"
@@ -35545,7 +35545,7 @@ msgstr "la constante entière est trop grande pour le type %<unsigned _BitInt(%d
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "la constante entière est trop grande pour le type %<_BitInt(%d)%>"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "%<_BitInt(%d)%> n'est pas supporté sur cette cible"
@@ -35625,7 +35625,7 @@ msgstr "concaténation non standard de chaînes littérales non supportée"
 msgid "traditional C rejects string constant concatenation"
 msgstr "le C traditionnel rejette la concaténation de chaînes constantes"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr "%<#pragma omp critical%> avec la clause %<hint%> requiert un nom sauf quand %<omp_sync_hint_none%> est utilisé"
@@ -35680,7 +35680,7 @@ msgstr "type de dépendance %<depobj%> spécifié dans la clause %<depend%> d'un
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr "le modificateur %<iterator%> ne peut pas être spécifié sur une construction %<depobj%>"
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "type invalide pour la variable d'itération %qE"
@@ -35695,17 +35695,17 @@ msgstr "variable d'itération %<_Atomic%> %qE"
 msgid "%qE is not initialized"
 msgstr "%qE n'est pas initialisé"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "prédicat de contrôle manquant"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "prédicat de contrôle invalide"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "expression d'incrémentation manquante"
@@ -35715,7 +35715,7 @@ msgstr "expression d'incrémentation manquante"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr "l'incrément n'est pas la constante 1 ou -1 pour la condition %<!=%>"
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "expression d'incrémentation invalide"
@@ -35800,7 +35800,7 @@ msgstr "modificateur de réduction %<task%> invalide sur une construction pas co
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr "clause %<inscan%> %<reduction%> sur une construction autre que %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr "%qD spécifié dans la clause %<allocate%> mais pas dans dans la clause de privatisation explicite"
@@ -35810,7 +35810,7 @@ msgstr "%qD spécifié dans la clause %<allocate%> mais pas dans dans la clause
 msgid "%qD is not a function argument"
 msgstr "%qD n'est pas un argument de fonction"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr "champ de bits %qE dans la clause %qs"
@@ -36402,7 +36402,7 @@ msgid "wrong type argument to %s"
 msgstr "argument de type erroné pour %s"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -37329,36 +37329,38 @@ msgid "comparison between two arrays"
 msgstr "comparaison entre deux tableaux"
 
 #: c-family/c-warn.cc:3832
-#, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+#, fuzzy, gcc-internal-format
+#| msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr "utiliser le %<+%> unaire qui dégrade les opérandes vers des pointeurs ou %<&%D[0] %s &%D[0]%> pour comparer les adresses"
 
-#: c-family/c-warn.cc:3836
-#, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+#: c-family/c-warn.cc:3839
+#, fuzzy, gcc-internal-format
+#| msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr "utilisez %<&%D[0] %s &%D[0]%> pour comparer les adresses"
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr "le résultat de %<%wu^%wu%> est %wu ; vouliez-vous utiliser %<1 << %wu%> (%wu) ?"
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr "le résultat de %<%wu^%wu%> est %wu ; vouliez-vous utiliser %<1LL << %wu%> ?"
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr "le résultat de %<%wu^%wu%> est %wu ; vouliez-vous utiliser une exponentiation ?"
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr "le résultat de %<%wu^%wu%> est %wu ; vouliez-vous utiliser %<1e%wu%> ?"
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr "vous pouvez supprimer ces avertissements en utilisant une constante hexadécimale (%wx au lieu de %wd)"
@@ -37567,117 +37569,117 @@ msgstr "l'argument de %<-misr-secure=%d%> n'est pas entre 0 et 3"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr "dans l'option %<-mcache-block-size=X%>, les valeurs valides pour X sont: 4, 8, 16, 32, 64, 128, 256, ou 512"
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr "%<-march=%s%>: l'extension %qs apparaît plus d'une fois"
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr "%<-march=%s%>: l'extension %qs est une extension standard a une seule lettre non supportée"
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr "%<-march=%s%>: l'extension %qs commence par « z » mais c'est une extension standard non supportée"
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr "%<-march=%s%>: l'extension %qs commence par « s » mais c'est une extension superviseur standard non supportée"
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr "%<-march=%s%>: l'extension %qs commence par « x » mais c'est une extension non standard non supportée"
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr "%<-march=%s%>: nombre attendu après %<%dp%>"
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr "%<-march=%s%>: pour %<%s%dp%dp?%>, un numéro de version avec plus de deux niveaux n'est pas supporté"
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr "%<-march=%s%>: la chaîne ISA doit commencer par rv32 ou rv64"
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr "%<-march=%s%>: rv%de n'est pas une ISA de base valable"
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr "la version de %<g%> sera omise, veuillez spécifier la version pour chaque extension individuellement."
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr "%<-march=%s%>: le premier sous-ensemble ISA doit être %<e%>, %<i%> ou %<g%>"
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr "%<-march=%s%>: pas une extension a une seule lettre. %<%c%>"
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr "%<-march=%s%>: l'extension zcf est uniquement supportée dans rv32"
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr "%<-march=%s%>: conflits z*inx avec les extensions en virgule flottante"
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr "%<-march=%s%>: l'extension l'extension requiert l'extension i"
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "%<-march=%s%> zcd est en conflit avec zcmt"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "%<-march=%s%> zcd est en conflit avec zcmp"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr "%<-march=%s%>: xtheadvector est en conflit avec l'extension vectorielle ou sa sous-extension"
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr "%<-march=%s%>: le nom de %s doit avoir plus d'une lettre"
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "%<-march=%s%> %s doit être séparé par %<_%>"
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr "%<-march=%s%>: i, e ou g doit être la première extension"
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%<-mcpu=%s%>: CPU inconnu"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr "Impossible de trouver un ensemble multi bibliothèques pour %<-march=%s%>/%<-mabi=%s%>"
@@ -38075,12 +38077,12 @@ msgstr "adresse sur 64 bits attendue mais l'argument 1 a %d bits"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "adresse sur 64 bits attendue mais l'argument 2 a %d bits"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC aarch64%> existe une chaîne en paramètre"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr "option %qs inconnue pour %<#pragma GCC aarch64%>"
@@ -38644,7 +38646,7 @@ msgstr "le passage de paramètre pour l'argument de type %qT a changé dans GCC
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr "le passage de paramètre pour l'argument de type %qT a changé dans GCC 9.1"
@@ -38720,12 +38722,12 @@ msgid "unknown tuning option (%s)"
 msgstr "option d'ajustement inconnue (%s)"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr "%<-mstack-protector-guard=global%> et %<-mstack-protector-guard-offset=%qs%> incompatibles"
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr "%<-mstack-protector-guard-offset%> et %<-mstack-protector-guard-reg%> doivent être utilisés tous les deux avec %<-mstack-protector-guard=sysreg%>"
@@ -38736,7 +38738,7 @@ msgid "specify a system register with a small string length"
 msgstr "spécifie un registre système avec une chaîne de courte longueur"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "%qs n'est pas un décalage valide dans %qs"
@@ -38916,9 +38918,9 @@ msgstr "le pragma ou l'attribut %<target(\"%s\")%> n'autorise pas de forme néga
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "le pragma ou l'attribut %<target(\"%s=%s\")%> n'est pas valide"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "l'argument %<target%> de l'attribut n'est pas une chaîne"
@@ -38970,18 +38972,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "des versions multiples de fonctions virtuelles ne sont pas supportées"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "les versions multiples requièrent %<ifunc%> qui n'est pas supporté sur cette cible"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr "le passage de paramètre pour l'argument de type %qT avec des membres %<[[no_unique_address]]%> a changé dans %{GCC 10.1%}"
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr "le passage par paramètre pour l'argument de type %qT quand C++17 est activé a changé pour correspondre à C++14 %{dans GCC 10.1%}"
 
@@ -38994,8 +38996,8 @@ msgstr "le passage de paramètre pour l'argument de type %qT a changé dans %{GC
 msgid "lane %wd out of range %wd - %wd"
 msgstr "avenue %wd hors des limites %wd - %wd"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, gcc-internal-format
 msgid "unsupported simdlen %wd"
 msgstr "simdlen %wd non supportée"
@@ -39005,7 +39007,7 @@ msgstr "simdlen %wd non supportée"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "GCC ne supporte actuellement pas le type de retour %qT pour simd"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr "type de retour %qT non supporté pour simd"
@@ -39015,7 +39017,7 @@ msgstr "type de retour %qT non supporté pour simd"
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "GCC ne supporte actuellement pas un argument de type %qT pour simd"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "type d'argument %qT non supporté pour simd"
@@ -39105,8 +39107,8 @@ msgstr "latence de la cache L%d inconnue pour %s"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "valeur %qs erronée pour %<-mmemory-latency%>"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "fcode interne erroné"
@@ -39226,18 +39228,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "l'argument de l'attribut %qE n'est pas « ilink » ni « firq »"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -39351,7 +39353,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "l'argument de l'attribut %qE est manquant"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "l'attribut %qE n'accepte qu'une constante entière comme argument"
@@ -39371,23 +39373,23 @@ msgstr "l'attribut %qE ne s'applique qu'à des types"
 msgid "argument of %qE attribute ignored"
 msgstr "l'argument de l'attribut %qE est ignoré"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "l'attribut %qE ne s'applique qu'aux variables"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr "les alternatives ne sont pas autorisées dans la sortie du fanion %<asm%>"
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr "sortie du fanion %<asm%> %qs inconnue"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr "type invalide pour la sortie du fanion %<asm%>"
@@ -39629,7 +39631,7 @@ msgstr "le processeur cible ne supporte pas les instructions THUMB"
 msgid "target CPU does not support unaligned accesses"
 msgstr "le processeur cible ne supporte pas les accès non alignés"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, gcc-internal-format
 msgid "This architecture does not support branch protection instructions"
 msgstr "Cette architecture ne supporte pas les instructions de protection de branche"
@@ -39679,7 +39681,7 @@ msgstr "la frontière de la taille de la structure peut seulement être 8 ou 32"
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "RTP PIC est incompatible avec %<-msingle-pic-base%>"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr "le mode FDPIC n'est pas supporté en mode Thumb-1"
@@ -39785,7 +39787,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr "argument de type %qT pas permis avec %<-mgeneral-regs-only%>"
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr "le passage de paramètre pour l'argument de type %qT a changé dans GCC 7.1"
@@ -39825,42 +39827,42 @@ msgstr "l'attribut %qE n'a pas d'effet sur les fonctions statiques"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "l'attribut %qE ne s'applique qu'au type de base d'un pointeur vers une fonction"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr "l'accès à un stockage local au thread n'est actuellement pas supporté avec %<-mpure-code%> ou %<-mslow-flash-data%>"
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr "%s %wd hors des limites %wd - %wd"
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "incapable de calculer la position réelle des paramètres sur la pile"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr "Saut lointain thumb1 inattendu"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "pas de registre bas disponible pour dépiler les registres hauts"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "les routines du service d'interruption ne peuvent pas être codées en mode Thumb-1"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr "%<-fstack-check=specific%> pour Thumb-1"
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr "fpu invalide pour l'attribut ou le pragma cible %qs"
@@ -39868,22 +39870,22 @@ msgstr "fpu invalide pour l'attribut ou le pragma cible %qs"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr "la sélection automatique du fpu n'est actuellement pas permise ici"
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "architecture invalide pour l'attribut ou le pragma cible %qs"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr "attribut ou pragma cible %qs inconnu"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "fanions %<asm%> non supportés en mode thumb1"
@@ -39937,161 +39939,161 @@ msgstr "architectures de cœurs supportées:%s"
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "architecture de cœur %qs inconnue spécifiée avec %qs"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, gcc-internal-format
 msgid "%<-fpic%> is not supported"
 msgstr "%<-fpic%> n'est pas supporté"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
 msgstr "%<-fPIC%> n'est pas supporté"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, gcc-internal-format
 msgid "%<-fpie%> is not supported"
 msgstr "%<-fpie%> n'est pas supporté"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr "%<-fPIE%> n'est pas supporté"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "les attributs de fonction %qs et %qs sont mutuellement exclusifs"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "la fonction avec l'attribut %qs ne peut pas avoir d'argument"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "la fonction avec l'attribut %qs ne peut pas retourner une valeur"
 
 # %s est « interrupt » ou « signal » non traduit.
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs semble être un gestionnaire avec l'attribut %qs mal orthographié, il manque le préfixe %<__vector%>"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr "%qs est un identificateur réservé de AVR-LibC. Envisagez %<#include <avr/interrupt.h>%> avant d'utiliser la macro %qs"
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr "%qs est un identificateur déprécié de AVR-LibC. Envisagez %<#include <avr/interrupt.h>%> ou %<#include <compat/deprecated.h>%> avant d'utiliser la macro %qs"
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr "%<builtin_return_address%> ne contient que 2 octets d'adresse"
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr "l'offset du pointeur par rapport au symbole peut être incorrect"
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr "accès à la mémoire des données avec une adresse mémoire du programme"
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr "accès à la mémoire du programme avec une adresse mémoire des données"
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr "registre fixe %s utilisé pour passer un paramètre à la fonction"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "l'écriture dans l'espace d'adresses %qs n'est pas supportée"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "l'attribut %qE ne s'applique qu'aux variables statiques"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "l'attribut %qE n'est supporté que par les cœurs Tiny réduits"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "l'adresse de l'attribut %qE est hors limites 0x%x%s0x%x"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr "les attributs %s et %qE fournissent tous les deux une adresse"
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "attribut %qE sur une variable non volatile"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "les espaces d'adresses ne sont pas supportés pour les périphériques Tiny réduits"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "l'espace d'adresses %qs n'est pas supporté pour les périphériques avec une taille de flash jusqu'à %d Kio"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr "un pointeur visant l'espace d'adresses %qs doit être « const » dans %qT"
 
 # %s est un texte non traduit tel que « variable », « function parameter », « structure field »,…
 # J'ai soumis le bug 79453 pour demander de créer des messages spécifiques à chaque cas.
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr "un pointeur visant l'espace d'adresses %qs doit être const dans le/la %s %q+D"
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "la variable %q+D avec l'attribut %qs doit être placée dans le stockage statique"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr "la variable %q+D doit être « const » pour être placée dans une section en lecture seule à l'aide de %qs"
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "la déclaration de l'attribut statique %qs pour %q+D a besoin d'une adresse"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "seules les variables non initialisées peuvent être placées dans la section %<.noinit%>"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "variable %q+D avec une initialisation dynamique placée dans la zone mémoire du programme"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "variable non initialisée %q+D placée dans la zone mémoire du programme"
@@ -40100,42 +40102,42 @@ msgstr "variable non initialisée %q+D placée dans la zone mémoire du programm
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "la variable %q+D avec l'attribut %qs ne doit pas avoir d'initialiseur"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%q+D a les attributs incompatibles %qs et %qs"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "l'architecture %qs n'est supportée que par l'assembleur"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "conversion depuis l'espace d'adresses %qs vers l'espace d'adresses %qs"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "%s attend une constante entière à la compilation"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%s attend une constante sous forme d'entier long à la compilation comme premier argument"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr "arrondir à %d bits n'a pas d'effet pour une valeur en virgule fixe avec %d bits fractionnels"
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr "le résultat de l'arrondi sera toujours 0"
@@ -40271,7 +40273,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "appel indirect dans une fonction, ceci n'est pas supporté par eBPF"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -40890,8 +40892,8 @@ msgstr "l'argument de l'intrinsèque %<xabort%> doit être une valeur immédiate
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr "les versions de fonctions ne peuvent pas être marquées avec %<gnu_inline%>, des corps de fonctions doivent être générés"
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "le modèle de code %s ne supporte pas le mode PIC"
@@ -40957,255 +40959,255 @@ msgstr "trop de plages de tailles spécifiées dans l'option %qs"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr "paramètre inconnu dans l'option %<-mtune-ctrl%>: %s"
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "la psABI du MCU Intel n'est pas supportée dans le mode %s"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%<-mtune=x86-64%> est déprécié; utilisez plutôt %<-mtune=k8%> ou %<-mtune=generic%> selon ce qui est approprié"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%<target(\"tune=x86-64\")%> est déprécié; utilisez plutôt %<target(\"tune=k8\")%> ou %<target(\"tune=generic\")%> selon ce qui est approprié"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr "le support de %<-mtune=knl%> sera retiré dans GCC 15"
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr "le support de %<target(\"tune=knl\")%> sera retiré dans GCC 15"
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr "le support de %<-mtune=knm%> sera retiré dans GCC 15"
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr "le support de %<target(\"tune=knm\")%> sera retiré dans GCC 15"
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "%<-mstringop-strategy=rep_8byte%> pas supporté pour du code 32 bits"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, gcc-internal-format
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "%<-mapxf%> pas supporté pour du code 32 bits"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, gcc-internal-format
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "l'option %<-mapx-features=%> n'est pas supportée pour du code 32 bits"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "%<-muintr%> pas supporté pour du code 32 bits"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "option %<-mlam=%> : [u48|u57] pas supportée pour du code 32 bits"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "le mode d'adresse %qs n'est pas supporté en mode %s bits"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "%<-mabi=ms%> pas supporté avec l'ABI X32"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "%<-mabi=%s%> n'est pas supportée avec %<-fsanitize=address%>"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "%<-mabi=%s%> n'est pas supportée avec %<-fsanitize=kernel-address%>"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "%<-mabi=%s%> n'est pas supportée avec %<-fsanitize=thread%>"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr "%<-mlam=u48%> n'est pas compatible avec le Hardware-assisted AddressSanitizer, outrepasser pour %<-mlam=u57%>"
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "le modèle de code %qs n'est pas supporté en mode %s bits"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "le modèle de code %qs n'est pas supporté en mode x32"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "%<-masm=intel%> n'est pas supporté dans cette configuration"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "mode %i bits pas compilé"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "le processeur %<generic%> ne peut être utilisé qu'avec l'option %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "le processeur %<generic%> ne peut être utilisé qu'avec l'attribut %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "le processeur %<intel%> ne peut être utilisé qu'avec l'option %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "le processeur %<intel%> ne peut être utilisé qu'avec l'attribut %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "le processeur sélectionné ne supporte pas le jeu d'instructions x86-64"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr "le support de %<-march=knl%> sera retiré dans GCC 15"
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr "le support de %<target(\"arch=knl\")%> sera retiré dans GCC 15"
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr "le support de %<-march=knm%> sera retiré dans GCC 15"
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr "le support de %<target(\"arch=knm\")%> sera retiré dans GCC 15"
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, gcc-internal-format
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "valeur %qs erronée pour l'option %<-march=%>"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "valeur %qs erronée pour l'attribut %<target(\"arch=\")%>"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "les arguments valides pour l'option %<-march=%> sont: %s; vouliez-vous utiliser %qs ?"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr "les arguments valides pour l'attribut %<target(\"arch=\")%> sont: %s; vouliez-vous utiliser %qs ?"
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "les arguments valides pour l'option %<-march=%> sont: %s"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "les arguments valides pour l'attribut %<target(\"arch=\")%> sont: %s"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "valeur %qs erronée pour l'option %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "valeur %qs erronée pour l'attribut %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "les arguments valides pour l'option %<-mtune=%> sont: %s; vouliez-vous utiliser %qs ?"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr "les arguments valides pour l'attribut %<target(\"tune=\")%> sont: %s; vouliez-vous utiliser %qs ?"
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "les arguments valides pour l'option %<-mtune=%> sont: %s"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "les arguments valides pour l'attribut %<target(\"tune=\")%> sont: %s"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "%<-mregparm%> est ignoré en mode 64 bits"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "%<-mregparm%> est ignoré avec la psABI du MCU Intel"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, gcc-internal-format
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "%<-mregparm=%d%> n'est pas entre 0 et %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "%<-m96bit-long-double%> n'est pas compatible avec cette cible"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "%<-mrtd%> est ignoré en mode 64 bits"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "%<target(\"rtd\")%> est ignoré en mode 64 bits"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr "%<-mno-evex512%> ou %<-mno-avx512XXX%> ne peuvent pas désactiver les instructions AVX10 quand AVX10.1-512 est disponible"
@@ -41213,290 +41215,290 @@ msgstr "%<-mno-evex512%> ou %<-mno-avx512XXX%> ne peuvent pas désactiver les in
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr "Utiliser %<-mevex512%> sans fonctionnalités AVX512 activée mais avec AVX10.1 va simplement ne pas activer les fonctionnalités AVX512 ou AVX10.1-512, utilise 256 comme taille vectorielle max"
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr "Conflit de taille vectorielle entre AVX10.1 et AVX512, utilise 512 comme taille vectorielle max"
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr "%<-mno-avx512XXX%> ne sait pas désactiver les instructions AVX10 quand AVX10 est disponible"
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> ne sait pas désactiver les instructions AVX512 quand %<-mavx512XXX%>"
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "%<-mpreferred-stack-boundary%> n'est pas supporté pour cette cible"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "%<-mpreferred-stack-boundary=%d%> n'est pas entre %d et %d"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "%<-mincoming-stack-boundary=%d%> n'est pas entre %d et 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "%<-mnop-mcount%> n'est pas compatible avec cette cible"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "%<-mnop-mcount%> n'est pas implémenté pour %<-fPIC%>"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "%<-msseregparm%> utilisé sans que SSE soit activé"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "%<target(\"sseregparm\")%> utilisé sans que SSE soit activé"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "jeu d'instructions SSE désactivé, l'arithmétique 387 est utilisée"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "jeu d'instructions 387 désactivé, l'arithmétique SSE est utilisée"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "le sondage de la pile requiert %<-maccumulate-outgoing-args%> pour être correcte"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "le sondage de la pile requiert %<target(\"accumulate-outgoing-args\")%> pour être correcte"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr "le registre ebp fixé requiert %<-maccumulate-outgoing-args%>"
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr "le registre ebp fixé requiert %<target(\"accumulate-outgoing-args\")%>"
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr "%<-mfentry%> n'est pas supporté en 32 bits en combinaison avec %<-fpic%>"
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "%<-mno-fentry%> n'est pas compatible avec SEH (gestionnaire d'exceptions structuré)"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr "%<-mcall-ms2sysv-xlogues%> n%'est actuellement pas supporté avec SEH"
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "option inconnue pour %<-mrecip=%s%>"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs n'est pas un nombre valable dans %<-mstack-protector-guard-offset=%>"
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs n'est pas un décalage valable dans %<-mstack-protector-guard-offset=%>"
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr "%qs n'est pas un registre de base valable dans %<-mstack-protector-guard-reg=%>"
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr "%<-fcf-protection=full%> n'est pas activé par %<-fhardened%> car il a été spécifié sur la ligne de commande"
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "%<-fcf-protection%> n'est pas compatible avec cette cible"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr "les attributs d'interruption et nus sont incompatibles"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr "les attributs %qs et %qs sont incompatibles"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr "seul le format de débogage DWARF est supporté pour les routines de service d'interruptions"
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "%<-mindirect-branch=%s%> et %<-mcmodel=large%> sont incompatibles"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr "%<-mindirect-branch%> et %<-fcf-protection%> sont incompatibles"
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "%<-mfunction-return=%s%> et %<-mcmodel=large%> sont incompatibles"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr "%<-mfunction-return%> et %<-fcf-protection%> sont incompatibles"
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr "les instructions %s ne sont pas autorisées dans la routine de service exception"
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "les instructions %s ne sont pas autorisées dans la routine de service d'interruption"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "les instructions %s ne sont pas autorisées dans la fonction avec l%'attribut %<no_caller_saved_registers%>"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "les attributs fastcall et regparm sont incompatibles"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "les attributs regparam et thiscall sont incompatibles"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "l'attribut %qE requiert un argument de type constante entière"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "l'argument pour l'attribut %qE est plus grand que %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "les attributs fastcall et cdecl sont incompatibles"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "les attributs fastcall et stdcall sont incompatibles"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "les attributs fastcall et thiscall sont incompatibles"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "les attributs stdcall et cdecl sont incompatibles"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "les attributs stdcall et fastcall sont incompatibles"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "les attributs stdcall et thiscall sont incompatibles"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "les attributs cdecl et thiscall sont incompatibles"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "l'attribut %qE est utilisé pour une méthode qui n'est pas une classe"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "l'attribut incompatible %qE est ignoré"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "l'attribut %qE est uniquement disponible en 32 bits"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "l'argument de l'attribut %qE n'est ni zéro ni un"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "l'attribut %qE requiert un argument de type constante chaîne de caractères"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "l'argument de l'attribut %qE n'est pas (keep|thunk|thunk-inline|thunk-extern)"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr "la routine de service d'interruption devrait avoir un pointeur comme premier argument"
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "la routine de service d'interruption devrait avoir %qs comme deuxième argument"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr "la routine de service d'interruption ne peut avoir qu'un argument de type pointeur et un argument entier optionnel"
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr "la routine de service d'interruption doit retourner %<void%>"
@@ -41687,46 +41689,46 @@ msgstr "taille d'opérande non supportée pour un registre étendu"
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "opérande non entier utilise avec le code d'opérande %<z%>"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr "l'ABI de passage de paramètres pour la classe vide %qT change avec %<-fabi-version=12%> (GCC 8)"
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr "l'alignement des champs de %<_Atomic %T%> ont changé dans %{GCC 11.1%}"
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, gcc-internal-format
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "pas de registre disponible pour profiler %<-mcmodel=large%s%>"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "le profilage %<-mcmodel=large%> avec PIC n'est pas supporté"
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr "%<__bfloat16%> est redéfini du typedef %<short%> en un réel %<__bf16%> depuis GCC 13.1, soyez attentif aux conversions implicites entre %<__bf16%> et %<short%>; un transtypage binaire explicite pourrait être nécessaire ici"
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr "modèle mémoire spécifique à l'architecture inconnu"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr "%<HLE_ACQUIRE%> n'est pas utilisé avec le modèle mémoire %<ACQUIRE%> ou un autre plus contraignant"
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr "%<HLE_RELEASE%> n'est pas utilisé avec le modèle mémoire %<RELEASE%> ou un autre plus contraignant"
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr "%<-fexcess-precision=16%> n'est pas compatible avec %<-mfpmath=387%>"
@@ -41746,8 +41748,8 @@ msgstr "définition d'un membre de données statique %q+D de la classe importée
 msgid "malformed %<#pragma builtin%>"
 msgstr "%<#pragma builtin%> mal composé"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "argument invalide dans l'attribut %qE"
@@ -41802,12 +41804,12 @@ msgstr "%<PRINT_OPERAND%>: Ponctuation %<%c%> inconnue"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "%<PRINT_OPERAND%> pointeur nul"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "l'argument %d de la fonction interne doit être une constante dans la plage %d à %d"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "échec lors du développement de la fonction interne"
@@ -41933,17 +41935,17 @@ msgstr "le modèle de code %qs n'est pas compatible avec %s"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%qs ne peut pas être utilisé pour compiler une bibliothèque partagée"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "l'attribut %qE ne peut être spécifié pour des variables locales au thread"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "l'attribut %qE ne peut être spécifié pour des variables registres"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, gcc-internal-format
 msgid "multiple %qE attribute"
 msgstr "attribut %qE multiple"
@@ -42044,12 +42046,12 @@ msgstr "plusieurs attributs d'interruption ne sont pas permis"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "%<interrupt_thread%> est disponible uniquement sur fido"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "l'expression limitant la pile n'est pas supportée"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not supported on this target"
 msgstr "%<-fexcess-precision=16%> n'est pas supporté pour cette cible"
@@ -42090,7 +42092,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr "%<-mxl-multiply-high%> requiert %<-mno-xl-soft-mul%>"
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "l'attribut %qE requiert une chaîne comme argument"
@@ -42130,132 +42132,132 @@ msgstr "le vecteur d'interruption de l'attribut %qE n'est pas %<vector=(sw0|sw1|
 msgid "argument to %qE attribute is not intstack"
 msgstr "l'argument de l'attribut %qE n'est pas « intstack »"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr "l'ABI pour passer une valeur contenant des champs de bits de largeur zéro avant un champ en virgule flottante 64 bits adjacent a changé dans GCC %{12.1%}"
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr "l'ABI pour retourner une valeur contenant des champs de bits de largeur zéro mais étant par ailleurs un agrégat avec uniquement un ou deux champs en virgule flottante a été changée dans GCC %{12.1%}"
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr "l'ABI pour retourner une valeur avec des bases C++17 vides mais étant par ailleurs un agrégat avec uniquement un ou deux champs en virgule flottante a été changée dans GCC %{12.1%}"
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "ne peut traiter des appels inconstants à %qs"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr "l'attribut %<interrupt%> requiert un processeur MIPS32r2 ou supérieur"
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr "les gestionnaires d'interruptions ne peuvent pas être des fonctions MIPS16"
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr "%<-fstack-check=specific%> pas implémenté pour MIPS16"
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "la fonction interne %qE n'est pas supportée pour un MIPS16"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs ne supporte pas le code MIPS16"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr "PIC MIPS16 pour des ABI autres que o32 et o64"
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "code %<-mxgot%> MIPS16"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr "code MIPS16 %<hard-float%> pour des ABI autres que o32 et o64"
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr "code MIPS16 MSA"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "MIPS16 requiert %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "combinaison non supportée: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "%<-%s%> est en conflit avec d'autres options d'architecture, lesquelles spécifient un processeur %s"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%<-march=%s%> n'est pas compatible avec l'ABI sélectionnée"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "%<-mgp64%> utilisé avec un processeur 32 bits"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "%<-mgp32%> utilisé avec une ABI 64 bits"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "%<-mgp64%> utilisé avec une ABI 32 bits"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "l'architecture %qs ne supporte pas %<-mfp32%>"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "%<-mgp32%> et %<-mfp64%> peuvent uniquement être combinés si la cible supporte les instructions mfhc1 et mthc1"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%> et %<-mfp64%> peuvent uniquement être combinés en utilisant l'ABI o32"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "%<-mfpxx%> peut uniquement être utilisé avec l'ABI o32"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "%<-march=%s%> requiert %<-mfp32%>"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr "%<-mfpxx%> requiert %<-mlra%>"
@@ -42265,117 +42267,117 @@ msgstr "%<-mfpxx%> requiert %<-mlra%>"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "la combinaison de %qs et %qs est incompatible avec %qs"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "l'architecture %qs ne supporte pas les instructions de branchement probable"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "l'architecture %qs ne supporte pas les instructions madd ou msub"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "l'architecture %qs ne supporte pas les registres impairs en simple précision"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr "combinaison non supportée: %qs%s %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr "combinaison non supportée: %qs %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "impossible de produire du code indépendant de la position pour %qs"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "le code indépendant de la position requiert %qs"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> à besoin de %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr "impossible d'utiliser des accès à de petites données pour %qs"
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "l'architecture %qs ne supporte pas %<-m%s=legacy%>"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "l'architecture %qs ne supporte pas %<-m%s=2008%>"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "%<-mips3d%> requiert %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs doit être utilisé avec %qs"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr "%<-mmsa%> doit être utilisé avec %<-mfp64%> et %<-mhard-float%>"
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "l'architecture %qs ne supporte pas les instructions en simple précision appariées (paired-single)"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "%qs requiert une cible qui fourni l'instruction %qs"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "l'architecture %qs ne supporte pas les instructions DSP"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr "%<-mloongson-mmi%> doit être utilisé avec %<-mhard-float%>"
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr "%<-mloongson-ext2%> doit être utilisé avec %<-mloongson-ext%>"
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "%qs requiert les instructions de branchement probable"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "l'architecture %qs ne supporte pas l'instruction synci"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "profilage de fonction mips16"
@@ -43244,57 +43246,57 @@ msgstr "%<#pragma riscv intrinsic%> existe une chaîne en paramètre"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "option %qs inconnue pour %<#pragma riscv intrinsic%>"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr "architecture inattendue pour l'attribut %<target()%> : doit commencer par + ou rv"
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr "architecture inattendue pour l'attribut %<target()%> : mauvaise chaîne %<%s%> rencontrée"
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr "pour l'attribut %<target()%> : l'architecture apparaît plusieurs fois"
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr "pour l'attribut %<target()%> : le cpu apparaît plusieurs fois"
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr "pour l'attribut %<target()%> : CPU %qs inconnu"
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "pour l'attribut %<target()%> : TUNE apparaît plusieurs fois"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr "pour l'attribut %<target()%> : TUNE %qs inconnu"
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, gcc-internal-format
 msgid "malformed %<target()%> attribute"
 msgstr "l'attribut %<target()%> est mal composé"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "l'attribut %<target(\"%s\")%> n'accepte pas d'argument"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "attribut %<target(\"%s\")%> inconnu"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
 msgstr "l'attribut %<target(\"%s\")%> est mal composé"
@@ -43354,172 +43356,196 @@ msgstr "ne peut lever ou intercepter une exception sur le type RVV %qT"
 msgid "capture by copy of RVV type %qT"
 msgstr "capture par copie du type RVV %qT"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+#| msgid "built-in function %qE requires the %qs ISA extension"
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "la fonction interne %qE requiert l'extension ISA %qs"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+#| msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "%s %qT requiert l'extension ISA zve32f, zve64f, zve64d ou v"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+#| msgid "built-in function %qE requires the %qs ISA extension"
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "la fonction interne %qE requiert l'extension ISA %qs"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+#| msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "%s %qT requiert l'extension ISA zve64x, zve64f, zve64d ou v"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "la fonction interne %qE requiert l'extension ISA %qs"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
 msgstr "pas d'appel de fonction concordant pour %qE avec des arguments vides"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "processeur %qs inconnu pour %<-mtune%>"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr "cette opération requiert l'extension de l'ISA RVV"
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr "vous pouvez activer RVV en utilisant l'option %<-march%> sur la ligne de commande ou en utilisant l'attribut ou le pragma %<target%>"
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "l'ABI pour des structures aplaties avec un champ de bits d'une taille non nulle a changé dans GCC 10"
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, gcc-internal-format
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "le type RVV %qT ne peut pas être passé en argument à une fonction sans prototype"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr "%s %qT requiert l'extension ISA V"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr "%s %qT requiert l'extension ISA zve64x, zve64f, zve64d ou v"
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr "%s %qT requiert l'extension ISA zvfhmin ou zvfh"
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr "%s %qT requiert l'extension ISA zve32f, zve64f, zve64d ou v"
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr "%s %qT requiert l'extension ISA zve64d ou v"
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr "%s %qT requiert la longueur de vecteur minimale %qd mais %qd est fourni"
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "l'attribut de fonction %qs requiert l'extension ISA V"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "l'argument de l'attribut %qE n'est pas %<\"user\"%>, %<\"supervisor\"%> ou %<\"machine\"%>"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr "%qs est uniquement supporté quand %<-mrvv-vector-bits=zvl%> est spécifié"
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qs appliqué au type non-RVV %qT"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, gcc-internal-format
 msgid "%qs requires an integer constant"
 msgstr "%qs requiert une constante entière"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr "talle de vecteur RVV %qd invalide, la taille attendue est %qd sur base du LMUL de type %qs"
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr "%<-mdiv%> requiert %<-march%> pour incorporer l'extension %<M%>"
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr "Le GCC RISC-V actuel ne supporte pas un VLEN plus grand que 4096 bits pour l'extension « V »"
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "Le GCC RISC-V actuel ne supporte pas RVV en mode gros boutiste"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, gcc-internal-format
 msgid "code model %qs with %qs"
 msgstr "modèle de code %qs avec %qs"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr "l'ABI demandée requiert %<-march%> pour incorporer l'extension %qc"
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr "rv32e requiert l'ABI ilp32e"
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr "rv64e requiert l'ABI lp64e"
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr "z*inx requiert l'ABI ilp32, ilp32e, lp64 ou lp64e"
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr "l'ABI requiert %<-march=rv%d%>"
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "%<-mpreferred-stack-boundary=%d%> doit être entre %d et %d"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr "l'attribut RISC-V ELF %<-mriscv-attribute%> requiert GNU as 2.32 [%<-mriscv-attribute%>]"
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs n'est pas un registre de base valable dans %qs"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs n'est pas un nombre valide dans %qs"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr "la fonction %qs ne peut pas avoir un type d'interruption différent"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr "impossible d'allouer le registre vl pour %qs sur cette cible"
@@ -43769,32 +43795,32 @@ msgstr "la fonction interne %qs n'accepte que 2 arguments"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "la fonction interne %qs n'accepte que 3 arguments"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "%<vec_lvsl%> est déprécié pour les petits boutistes; utilisation d'une affectation pour des chargements et des stockages non alignés"
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "%<vec_lvsr%> est déprécié pour les petits boutistes; utilisation d'une affectation pour des chargements et des stockages non alignés"
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "passer l'argument %d de %qE abandonne le qualificatif %qs du type pointé"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "combinaison invalide de paramètres pour l'intrinsèque Altivec %qs"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr "l'interne surchargé %qs est implémenté par l'interne %qs"
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, gcc-internal-format
 msgid "%qs is not supported in this compiler configuration"
 msgstr "%qs n'est pas supporté dans cette configuration du compilateur"
@@ -43834,29 +43860,22 @@ msgstr "utilisation invalide d'un opérande MMA de type %qs comme paramètre de
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "vecteur GCC passé par référence: extension ABI non standard sans aucune garantie de compatibilité"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr "%qs exige l'ABI ELFv2"
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "trame de pile trop grande"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "nombre de nops non supporté avant l'entrée de la fonction (%u)"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr "%qs utilise le registre r29"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr "Une trame de pile plus grande que 2G n'est pas supportée par %<-fsplit-stack%>"
@@ -43982,107 +44001,118 @@ msgstr "%qs a besoin d'un registre de base valable"
 msgid "unknown option for %<%s=%s%>"
 msgstr "option inconnue pour %<%s=%s%>"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, fuzzy, gcc-internal-format
+#| msgid "%qs requires the ELFv2 ABI"
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr "%qs exige l'ABI ELFv2"
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "%qs est déprécié et recommandé dans aucune circonstance"
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr "%qs est un type opaque et vous ne pouvez pas le remplacer avec d'autres valeurs"
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "pas de profilage du code 64 bits pour cette ABI"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "Vous ne pouvez pas prendre l'adresse d'une fonction imbriquée si vous utilisez l'option %qs"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "l'utilisation de %<long double%> dans les types AltiVec est invalide"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "l'utilisation des types booléens dans les types AltiVec est invalide"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "l'utilisation de %<complex%> dans les types AltiVec est invalide"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, gcc-internal-format
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "l'utilisation de types décimaux en virgule flottante dans les types AltiVec est invalide"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "l'utilisation de %<long%> dans les types AltiVec est invalide pour du code 64 bits sans %qs"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "l'utilisation de %<long%> dans les types Altivec est obsolète; utilisez %<int%>"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "l'utilisation de %<long long%> dans les types AltiVec est invalide sans %qs"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "l'utilisation de %<double%> dans les types AltiVec est invalide sans %qs"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "processeur %qs invalide pour %s\"%s\"%s"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "%s\"%s\"%s n'est pas permis"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr "%s\"%s\"%s est invalide"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr "%<-mno-%s%> désactive %<-m%s%>"
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr "l'attribut %<target_clones%> requiert GLIBC (2.23 ou plus récent) qui exporte des bits de capacité matérielle"
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "Des versions multiples de fonctions virtuelles ne sont pas supportées"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr "le résultat de l'instruction xxspltidp n'est pas défini pour des valeurs d'entrée sous-normales"
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "le type %<__vector_quad%> requiert l'option %qs"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr "le type %<__vector_pair%> requiert l'option %qs"
@@ -44127,7 +44157,7 @@ msgstr "Les instructions du FPU RX ne supportent pas les NaN et les infinis"
 msgid "builtin %qs can only be used on vector types"
 msgstr "la fonction interne %qs peut uniquement être utilisée sur des types vectoriels."
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr "valeur constante requise pour l'argument %2$d de la fonction interne %1$qF"
@@ -44197,225 +44227,225 @@ msgstr "la variante correspondant à %qs est obsolète"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "l'argument constant %d de la fonction interne %qF est hors limite pour le type cible"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "l'argument constant %d de la fonction interne %qF est invalide (%s)"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "l'argument constant %d de la fonction interne %qF est hors limite (0-%wu)"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "l'argument constant %d de la fonction interne %qF est hors limite (%wd-%wd)"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr "la fonction interne %qF n'est pas supportée sans %<-mhtm%> (par défaut avec %<-march=zEC12%> et supérieur)"
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr "la fonction interne %qF requiert %<-mvx%> (par défaut avec %<-march=z13%> et supérieur)"
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr "La fonction interne %qF requiert z14 ou supérieur"
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr "La fonction interne %qF requiert z15 ou supérieur"
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr "fonction interne surchargée non résolue"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "icode de fonction interne erroné"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "argument %d invalide pour la fonction interne %qF"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr "l'attribut %qE demandé n'est pas une paire de constantes entières non négatives séparées par une virgule ou est trop grand (max. %d)"
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "l'argument de l'attribut %qE n'est pas (keep|thunk|thunk-extern)"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "la taille totale des variables locales excède la limite de l'architecture"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr "la taille de la trame de la fonction %qs est de %wd octets ; elle dépasse la limite de %d octets de la pile fournie par l'utilisateur ; un déroutement inconditionnel est ajouté"
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr "la taille de la trame de la fonction %qs est de %wd octets ; c'est plus que la moitié de la taille de la pile ; le contrôle dynamique ne serait pas fiable. Aucun contrôle n'est généré pour cette fonction"
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "la taille de la trame de %qs est de %wd octets"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs utilise l'allocation de pile dynamique"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr "le passage de paramètre pour l'argument de type %qT avec des membres de champs de bits de largeur nulle a changé dans GCC 12"
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, gcc-internal-format
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "les fonctions imbriquées ne savent pas être profilées avec %<-mfentry%> sur un s390"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "l'ABI 64 bits n'est pas supportée en mode ESA/390"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr "thunk-inline est uniquement supporté avec %<-mindirect-branch-jump%>"
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr "le support des vecteurs matériels n'est pas disponible sur %s"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr "le support des vecteurs matériels n'est pas disponible avec %<-msoft-float%>"
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "les instructions décimales en virgule flottante matérielles ne sont pas disponibles sur %s"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, gcc-internal-format
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "les instructions décimales en virgule flottante matérielles ne sont pas disponibles en mode ESA/390"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr "%<-mhard-dfp%> ne peut être utilisé en conjonction avec %<-msoft-float%>"
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> ne sont pas supportés en combinaison"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "la taille de la pile doit être plus grande que la valeur de la protection de la pile"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "la taille de la pile ne peut pas être plus grande que 64k"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "%<-mstack-guard%> implique l'utilisation de %<-mstack-size%>"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-prologue-check%> requiert un entier dans la plage 0-4095"
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-prologue-target%> requiert un entier dans la plage 0-4095"
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-epilogue-check%> requiert un entier dans la plage 0-4095"
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-epilogue-target%> requiert un entier dans la plage 0-4095"
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "%<-mfentry%> est supporté uniquement sur des processeurs 64 bits"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "les arguments de %qs doivent être des entiers non négatifs"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "l'argument de %qs est trop grand (max. %d)"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr "%<-mno-pic-data-is-text-relative%> ne peut pas être utilisé sans %<-fpic%>/%<-fPIC%>"
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "l'argument %<target%> de l'attribut %qs est inconnu"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "la valeur %qs n'est pas supportée par l'attribut %<target%>"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, gcc-internal-format
 msgid "invalid cc output constraint: %qs"
 msgstr "contrainte de sortie cc invalide : %qs"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, gcc-internal-format
 msgid "multiple cc output constraints not supported"
 msgstr "contraintes de sortie cc multiples non supportées"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "le spécificateur %<asm%> pour la sortie de cc est en conflit avec la liste d'écrasement de %<asm%>"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr "type invalide pour la contrainte de sortie de cc"
@@ -44837,8 +44867,8 @@ msgstr "l'attribut %qE n'a pas d’effet"
 msgid "attribute %qs applies to array types only"
 msgstr "l'attribut %qs s'applique seulement aux types tableaux"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "la valeur void n'a pas été ignorée comme elle aurait dû l'être"
@@ -44913,7 +44943,7 @@ msgstr "le type du tableau %q+D est complété de manière incompatible avec une
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "la déclaration sous-spécifiée de %qE est déjà déclaré dans cette portée"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr "défini initialement ici"
@@ -45145,7 +45175,7 @@ msgstr "la déclaration de %q+D masque la déclaration précédente de quelque c
 msgid "declaration of %qD shadows a parameter"
 msgstr "la déclaration de %qD masque un paramètre"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "la déclaration de %qD masque une déclaration globale"
@@ -45155,7 +45185,7 @@ msgstr "la déclaration de %qD masque une déclaration globale"
 msgid "declaration of %qD shadows a previous local"
 msgstr "la déclaration de %qD masque la déclaration locale précédente"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "la déclaration masquée est ici"
@@ -45220,7 +45250,7 @@ msgstr "%qE non déclaré (première utilisation dans cette fonction)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "chaque identificateur non déclaré est rapporté une seule fois pour chaque fonction dans laquelle il apparaît"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "l'étiquette %qE est référencée à l'extérieur de toute fonction"
@@ -45255,7 +45285,7 @@ msgstr "saut dans l'expression d'une instruction"
 msgid "duplicate label declaration %qE"
 msgstr "déclaration de l'étiquette %qE en double"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "étiquette %qD dupliquée"
@@ -45290,7 +45320,7 @@ msgstr "le « switch » saute dans l'expression d'une instruction"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE est défini comme un mauvais type de balise"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr "attribut %qE appliqué à %qD avec un type de retour void"
@@ -45432,12 +45462,12 @@ msgstr "le C90 ISO ne supporte pas %<[*]%> dans les déclarateurs de tableau"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%> n'est pas permis ailleurs que dans la portée du prototype d'une fonction"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, gcc-internal-format
 msgid "%<omp::%s%> not allowed to be specified in this context"
 msgstr "%<omp::%s%> ne peut pas être spécifié dans ce contexte"
@@ -45447,7 +45477,7 @@ msgstr "%<omp::%s%> ne peut pas être spécifié dans ce contexte"
 msgid "%q+D is usually a function"
 msgstr "%q+D est habituellement une fonction"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "aucune déclaration précédente pour %qD"
@@ -45523,7 +45553,7 @@ msgstr "impossible de mettre un objet avec un champ volatile dans un registre"
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "%<const %qD%> non initialisé est invalide en C++"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr "%q+D dans la directive de déclaration de cible n'a pas de type pour lequel une correspondance peut être établie (mappable type)"
@@ -45708,7 +45738,7 @@ msgstr "classe de stockage spécifiée pour le paramètre %qE"
 msgid "storage class specified for unnamed parameter"
 msgstr "classe de stockage spécifiée pour le paramètre sans nom"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "classe de stockage spécifiée pour un typename"
@@ -45771,7 +45801,7 @@ msgstr "déclaration de %qE comme un tableau de fonctions"
 msgid "declaration of type name as array of functions"
 msgstr "déclaration du nom de type comme un tableau de fonctions"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "utilisation invalide d'une structure ayant un membre qui est un tableau flexible"
@@ -45877,7 +45907,7 @@ msgstr "nom de type déclaré comme une fonction retournant un tableau"
 msgid "function definition has qualified void return type"
 msgstr "la définition de la fonction a un type de retour « void » qualifié"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "les qualificatifs de type sont ignorés sur le type retourné par la fonction"
@@ -46004,7 +46034,7 @@ msgstr "le C ISO interdit les fonctions de type volatile ou constante"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "un membre d'une structure ou d'une union ne peut pas avoir de type modifié par une variable"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "variable ou champ %qE déclaré « void »"
@@ -46109,7 +46139,7 @@ msgstr "fonction non imbriquée avec un type modifié par une variable"
 msgid "object with variably modified type must have no linkage"
 msgstr "un objet avec un type modifié par une variable ne peut pas avoir de classe de liaison"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "la déclaration de fonction n'est pas un prototype"
@@ -46200,17 +46230,17 @@ msgstr "redéfinition imbriquée de %<union %E%>"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "redéfinition imbriquée de %<struct %E%>"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr "définir le type dans l'expression %qs est invalide en C++"
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, gcc-internal-format
 msgid "%qT defined in underspecified object initializer"
 msgstr "%qT est défini dans l'initialiseur de l'objet sous-spécifié"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "la déclaration ne déclare rien du tout"
@@ -46240,596 +46270,596 @@ msgstr "une structure vide a une taille 0 en C et une taille 1 en C++"
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr "une union vide a une taille 0 en C et une taille 1 en C++"
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "l'union n'a aucun membre nommé"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "l'union n'a aucun membre"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "la structure n'a aucun membre nommé"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "la structure n'a aucun membre"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "tableau flexible comme membre de l'union"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "le tableau flexible n'est pas le dernier membre à la fin de la structure"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "tableau flexible comme membre d'une structure sans aucun membre nommé"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, gcc-internal-format
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "la structure contenant un membre tableau flexible n'est pas le dernier membre à la fin d'une autre structure"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "le type %qT est trop grand"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr "le transtypage à la barbare inverse l'ordre de stockage scalaire"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "une union ne peut pas être rendue transparente"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "redéfinition d'une struct ou union %qT avec un type modifié par une variable"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, gcc-internal-format
 msgid "redefinition of struct or union %qT"
 msgstr "redéfinition d'une struct ou union %qT"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "redéfinition imbriquée de %<enum %E%>"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "redéclaration de %<enum %E%>"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr "%<enum%> déclaré avec mais défini sans type sous-jacent fixe"
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr "le mode spécifié est trop petit pour les valeurs énumérées"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "les valeurs de l'énumération excèdent les limites du plus grand entier"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, gcc-internal-format
 msgid "enumeration values exceed range of %qs"
 msgstr "les valeurs de l'énumération excèdent la plage de %qs"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, gcc-internal-format
 msgid "conflicting redefinition of enum %qT"
 msgstr "redéfinition de enum %qT conflictuelle"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "la valeur de l'énumérateur pour %qE n'est pas une constante entière"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "la valeur de l'énumérateur pour %qE n'est pas une expression constante entière"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "débordement dans les valeurs de l'énumération"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr "la valeur de l'énumération est en dehors de la plage du type sous-jacent"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr "la valeur de l'énumération est en dehors de la plage de %qs"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, gcc-internal-format
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "le C ISO restreint les valeurs de l'énumérateur à la plage d'un %<int%> avant C23"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr "la fonction à mettre en ligne %qD a reçu l'attribut %qs"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "le type du retour est un type incomplet"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "le type du retour devient %<int%> par défaut"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr "%q+D est définie comme fonction variadique sans prototype"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "aucun prototype précédent pour %qD"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "%qD a été utilisé sans prototype avant sa définition"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "%qD a été utilisé sans déclaration avant sa définition"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "le type de retour de %qD n'est pas %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr "type de retour qualifié avec %<_Atomic%> pour %qD"
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%qD est normalement une fonction non statique"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "déclaration de paramètres selon l'ancien style dans la définition de fonction prototypée"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "le C traditionnel rejette les définitions de fonctions de style C ISO"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "le C ISO ne supporte pas l'omission des noms des paramètres dans les définitions de fonctions avant C23"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr "définition de fonction selon l'ancien style"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "nom du paramètre manquant dans la liste des paramètres"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD déclaré comme un non paramètre"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "plusieurs paramètres nommés %qD"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "paramètre %qD déclaré avec le type « void »"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "le type de %qD devient %<int%> par défaut"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "le paramètre %qD a un type incomplet"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "déclaration du paramètre %qD mais pas de tel paramètre"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "le nombre d'arguments ne concorde pas avec celui du prototype interne"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "le nombre d'arguments ne concorde pas avec celui du prototype"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "déclaration de prototype"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "l'argument promu %qD ne concorde pas avec le prototype interne"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "l'argument promu %qD ne concorde pas avec le prototype"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "l'argument %qD ne concorde pas avec le prototype interne"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "l'argument %qD ne concorde pas avec le prototype"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "« return » manquant dans une fonction devant retourner une valeur"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "le paramètre %qD est défini mais pas utilisé"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "les déclarations initiales de boucles %<for%> ne sont permises qu'en mode C99 et C11"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "utilisez l'option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> ou %<-std=gnu11%> pour compiler votre code"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, gcc-internal-format
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "le C90 ISO ne supporte pas les déclarations initiales de la boucle %<for%>"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "déclaration de la variable statique %qD dans la déclaration initiale de la boucle %<for%>"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "déclaration de la variable %<extern%> %qD dans la déclaration initiale de la boucle %<for%>"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> déclarée dans la déclaration initiale de la boucle %<for%>"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> déclarée dans la déclaration initiale de la boucle %<for%>"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> déclarée dans la déclaration initiale de la boucle %<for%>"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "déclaration de %qD (qui n'est pas une variable) dans la déclaration initiale de la boucle %<for%>"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr "les qualificatifs d'espace d'adresses %qs et %qs sont incompatibles"
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "spécificateur de déclaration %qE dupliqué"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "classes de stockage multiples dans les spécificateurs de la déclaration"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr "%qs utilisé avec %<auto%>"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%<auto%> utilisé avec %<constexpr%>"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "deux types de données ou plus dans le spécificateur de déclaration"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> est trop long pour GCC"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "le C90 ISO ne supporte pas %<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "le C90 ISO ne supporte pas les types « complex »"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "le C ISO ne supporte pas les types saturants"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "%qE dupliqué"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "le C ISO ne supporte pas les types %<__int%d%>"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "%<__int%d%> n'est pas supporté sur cette cible"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "le C90 ISO ne supporte pas les types booléens"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "le C ISO ne supporte pas le type %<_Float%d%s%> avant C23"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "%<_Float%d%s%> n'est pas supporté sur cette cible"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, gcc-internal-format
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "le C ISO ne supporte pas les virgules flottantes décimales avant C23"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "les types en virgule fixe ne sont pas supportés pour cette cible"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "le C ISO ne supporte pas les types en virgule fixe"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, gcc-internal-format
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "l'argument %<_BitInt%> n'est pas une expression constante entière"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "l'argument %<_BitInt%> %qE n'est pas une expression constante entière positive"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr "l'argument %<_BitInt%> %qE est plus grand que %<BITINT_MAXWIDTH%> %qd"
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr "la recherche de %qD par le C++ retournerait un champ, pas un type"
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE échoue a être un typedef ou un type interne"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE n'est pas au début de la déclaration"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "%qE utilisé avec %<auto%>"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "%qE utilisé avec %<register%>"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "%qE utilisé avec %<typedef%>"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr "%qE utilisé avec %<constexpr%>"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "le C99 ISO ne supporte pas %qE"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "le C90 ISO ne supporte pas %qE"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> avant %<extern%>"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> avant %<static%>"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%<typedef%> utilisé avec %<auto%>"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr "%qE utilisé avec %<extern%>"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr "%qE utilisé avec %qs"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr "%<_Thread_local%> ou %<__thread%> dupliqué"
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%qs utilisé avec %qE"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr "%<constexpr%> utilisé avec %qE"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<_Sat%> est utilisé sans %<_Fract%> ou %<_Accum%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "le C ISO ne supporte pas un simple %<complex%> signifiant %<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, gcc-internal-format
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "le C ISO ne supporte pas la déduction de type avec %<auto%> avant C23"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr "%<__auto_type%> suivi des attributs %<[[]]%>"
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "le C ISO interdit les types entiers complexes"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "l'argument de %<signed _BitInt%> doit être au moins 2"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, gcc-internal-format
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "le C ISO ne supporte pas %<%s_BitInt(%d)%> avant C23"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr "le combinateur %<#pragma omp declare reduction%> fait référence à la variable %qD qui n'est ni %<omp_out%> ni %<omp_in%>"
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr "l'initialiseur %<#pragma omp declare reduction%> fait référence à la variable %qD qui n'est ni %<omp_priv%> ni %<omp_orig%>"
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr "décalage vers la gauche d'une valeur négative"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "le compteur de décalages vers la gauche est négatif"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "le compteur de décalages vers la droite est négatif"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "compteur de décalages vers la gauche >= à la largeur du type"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "compteur de décalages vers la droite >= à la largeur du type"
@@ -46859,7 +46889,7 @@ msgstr "marqueur de conflit de contrôle de version dans le fichier"
 msgid "to match this %qs"
 msgstr "pour correspondre à ce %qs"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr "fin de ligne attendue"
@@ -46869,8 +46899,8 @@ msgstr "fin de ligne attendue"
 msgid "ISO C forbids an empty translation unit"
 msgstr "le C ISO interdit une unité de traduction vide"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr "%qs sans %qs correspondant"
@@ -46910,9 +46940,9 @@ msgstr "nom de type %qE inconnu; vouliez-vous utiliser %qs ?"
 msgid "unknown type name %qE"
 msgstr "nom de type %qE inconnu"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "spécificateurs de déclaration attendus"
@@ -46942,7 +46972,7 @@ msgstr "attribut %<fallthrough%> au plus haut niveau"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "%<;%>, identificateur ou %<(%> attendu"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "les attributs de préfixes sont ignorés pour les méthodes"
@@ -46962,7 +46992,7 @@ msgstr "attribut inattendu"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "l'attribut %<fallthrough%> n'est pas suivi par %<;%>"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr "l'attribut %<assume%> n'est pas suivi par %<;%>"
@@ -47053,7 +47083,7 @@ msgstr "l'expression dans l'assertion statique n'est pas une constante"
 msgid "static assertion failed: %E"
 msgstr "échec de l'assertion statique: %E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, gcc-internal-format
 msgid "static assertion failed"
 msgstr "l'assertion statique a échoué"
@@ -47124,10 +47154,10 @@ msgstr "un enum vide est invalide"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "identificateur attendu"
@@ -47278,7 +47308,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr "les boucles internes doivent être parfaitement imbriquées avec la clause %<reduction%> %<inscan%>"
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr "mélange de directives OpenMP avec des attributs et la syntaxe pragma sur la même instruction"
@@ -47288,8 +47318,8 @@ msgstr "mélange de directives OpenMP avec des attributs et la syntaxe pragma su
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr "attribut OpenMP %<omp::decl%> sur une instruction"
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr "nom de directive OpenMP inconnue dans l'argument de l'attribut %qs"
@@ -47463,12 +47493,12 @@ msgstr "le C ISO interdit l'omission du terme central de l'expression %<?:%>"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr "la division %<sizeof (%T) / sizeof (%T)%> ne calcule pas le nombre d'éléments dans le tableau"
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr "le premier opérande %<sizeof%> a été déclaré ici"
@@ -47615,7 +47645,7 @@ msgstr "le C90 ISO ne supporte pas l'identificateur prédéfini %<__func__%>"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "expression attendue"
@@ -47935,12 +47965,12 @@ msgstr "une déclaration de méthode objective-c est attendue"
 msgid "no type or storage class may be specified here,"
 msgstr "aucun type ni classe de stockage ne peut être spécifié ici,"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr "liste d'attributs de propriété vide"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, gcc-internal-format
 msgid "missing property attribute"
 msgstr "attribut de propriété manquant"
@@ -47950,57 +47980,57 @@ msgstr "attribut de propriété manquant"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "attribut de propriété %<%s%s%> inconnu"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "attribut de propriété inconnu"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "%<=%> attendu après Objective-C %qE"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr "nom de sélecteur %qE attendu"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr "les noms des méthodes « setter » doivent être terminés par %<:%>"
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr "%<#pragma GCC unroll%> requiert une expression d'affectation qui est évaluée en une constante entière non négative plus petite que %u"
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr "du code intervenant ne peut pas contenir des directives OpenMP"
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma %s%> ne peut être utilisé que dans des instructions composées"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<#pragma acc routine%> doit être dans la portée au niveau du fichier"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp scan%> ne peut être utilisé que dans une construction de boucle avec la clause %<inscan%> %<reduction%>"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<#pragma omp section%> ne peut être utilisé que dans une construction %<#pragma omp sections%>"
@@ -48010,25 +48040,25 @@ msgstr "%<#pragma omp section%> ne peut être utilisé que dans une construction
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma %s%> peut uniquement être utilisé dans la portée du fichier"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "instruction « for », « while » ou « do » attendue"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%> doit être le premier"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "trop de clauses %qs"
@@ -48043,63 +48073,63 @@ msgstr "l'expression doit être fondamentale"
 msgid "expected %<)%> or %<,%>"
 msgstr "%<)%> ou %<,%> attendu"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD n'est pas une variable"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD n'est pas une variable pointeur"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr "l'argument « collapse » a besoin d'une expression entière constante positive"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr "%<none%> ou %<present%> attendu"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "%<none%>, %<shared%>, %<private%> ou %<firstprivate%> attendu"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, gcc-internal-format
 msgid "expected constant logical expression"
 msgstr "expression logique constante attendue"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "%<data%>, %<update%>, %<enter%> ou %<exit%> attendu"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "%<data%> attendu"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr "trop de %<if%> avec le modificateur %qs"
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "trop de clauses %<if%>"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr "trop de clauses %<if%> sans modificateur"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr "si une clause %<if%> a un modificateur, alors toutes les clauses %<if%> doivent utiliser un modificateur"
@@ -48122,22 +48152,22 @@ msgstr "la valeur de %<num_threads%> doit être positive"
 msgid "%<num_tasks%> value must be positive"
 msgstr "la valeur de %<num_tasks%> doit être positive"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "la valeur de %<grainsize%> doit être positive"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "la valeur de %<priority%> doit être positive ou nulle"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "expression entière constante attendue avec une valeur sync-hint valide"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr "%<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> ou %<default%> attendu"
@@ -48147,94 +48177,94 @@ msgstr "%<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> ou %
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "%<scalar%>, %<aggregate%>, %<pointer%> ou %<all%> attendu"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "trop de clauses %<defaultmap%> avec la catégorie %qs"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "trop de clauses %<defaultmap%> avec une catégorie non spécifiée"
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "l'expression %qs doit être un entier"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "la valeur de %qs doit être positive"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "trop d'arguments pour %<static%>"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, gcc-internal-format
 msgid "unexpected argument"
 msgstr "argument inattendu"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "l'argument %<tile%> a besoin d'une constante entière positive"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, gcc-internal-format
 msgid "too many %<self%> clauses"
 msgstr "trop de clauses %<self%>"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, gcc-internal-format
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "%<reproducible%> ou %<unconstrained%%> attendu"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr "%<concurrent%> attendu"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "%<team%>, %<parallel%> ou %<thread%> attendu"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr "les arguments ordonnés ont besoin d'une expression entière constante positive"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "%<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> ou identificateur attendu"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "les deux modificateurs %<monotonic%> et %<nonmonotonic%> sont spécifiés"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "schedule %<runtime%> ne prend pas de paramètre %<chunk_size%>"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "schedule %<auto%> ne prend pas de paramètre %<chunk_size%>"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "la taille du fragment doit être positive"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "type d'ordonnancement invalide"
@@ -48244,22 +48274,22 @@ msgstr "type d'ordonnancement invalide"
 msgid "%<num_teams%> value must be positive"
 msgstr "la valeur de %<num_teams%> doit être positive"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr "la borne inférieure %<num_teams%> %qE est plus grande que la borne supérieure %qE"
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "la valeur de %<thread_limit%> doit être positive"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr "l'expression d'alignement %<aligned%> doit être une expression entière constante positive"
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr "%<allocator%> ou %<align%> attendu"
@@ -48269,22 +48299,22 @@ msgstr "%<allocator%> ou %<align%> attendu"
 msgid "duplicate %qs modifier"
 msgstr "modificateur %qs dupliqué"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr "l'expression d'allocation de la clause %<allocate%> a le type %qT plutôt que %<omp_allocator_handle_t%>"
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "dans la clause %<allocate%>, l'argument du modificateur %<align%> doit être une expression entière constante positive qui est une puissance de deux"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr "modificateurs linéaires multiples"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr "modificateurs %<step%> multiples"
@@ -48304,62 +48334,62 @@ msgstr "l'expression %<safelen%> doit être une expression entière constante po
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr "l'expression %<simdlen%> doit être une expression entière constante positive"
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "le modificateur %<iterator%> est incompatible avec %qs"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "type de « depend » invalide"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, gcc-internal-format
 msgid "invalid doacross kind"
 msgstr "type de « doacross » invalide"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr "trop de modificateurs %<always%>"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr "trop de modificateurs %<close%>"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, gcc-internal-format
 msgid "too many %<present%> modifiers"
 msgstr "trop de modificateurs %<present%>"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr "clause %<map%> avec un modificateur de type map autre que %<always%>, %<close%> ou %<present%>"
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, gcc-internal-format
 msgid "invalid map kind"
 msgstr "type de « map » invalide"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr "le modificateur de périphérique %<ancestor%> pas précédé de la directive %<requires%> avec la clause %<reverse_offload%>"
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "%<ancestor%> ou %<device_num%> attendu"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr "l'expression de la clause %<device%> doit être évaluée à %<1%>"
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "type de « dist_schedule » invalide"
@@ -48374,88 +48404,88 @@ msgstr "type de « proc_bind » invalide"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "%<host%>, %<nohost%> ou %<any%> attendu"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr "le gestionnaire d'événement de la clause %<detach%> a le type %qT plutôt que %<omp_event_handle_t%>"
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr "clause OpenACC attendue"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs n'est pas valide pour %qs"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr "les clauses dans un trait %<simd%> devraient être séparées par des %<,%>"
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%qs doit être la première clause de %qs"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr "clause OpenMP attendue"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr "pas de clause valide spécifiée dans %<#pragma acc declare%>"
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "section de tableau dans %<#pragma acc declare%>"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr "%qD doit être une variable globale dans %<#pragma acc declare link%>"
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "clause OpenACC invalide au niveau global du fichier"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "utilisation invalide de la variable %<extern%> %qD dans %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "utilisation invalide de la variable %<global%> %qD dans %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr "%qD doit être une variable déclarée dans la même portée que %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr "variable %qD utilisée plus d'une fois avec %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "%<data%> attendu après %<#pragma acc %s%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr "%<#pragma acc %s data%> n'a pas clause de mouvement de données"
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr "la construction %<host_data%> requiert la clause %<use_device%>"
@@ -48470,7 +48500,7 @@ msgstr "%qE n'a pas été déclaré"
 msgid "expected function name"
 msgstr "nom de fonction attendu"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "%qD ne fait pas référence à une fonction"
@@ -48480,22 +48510,22 @@ msgstr "%qD ne fait pas référence à une fonction"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma acc routine%> n'est pas immédiatement suivi d'une déclaration ou d'une définition de fonction"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma acc routine%> n'est pas immédiatement suivi d'une seule déclaration ou définition de fonction"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "%<#pragma acc routine%> doit être appliqué avant l'utilisation"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<#pragma acc routine%> doit être appliqué avant la définition"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr "%<#pragma acc update%> doit contenir au moins une clause %<device%> ou %<host%> ou %<self%>"
@@ -48520,7 +48550,7 @@ msgstr "la variable %qD utilisée dans la clause %<allocator%> ne peut pas être
 msgid "modified here"
 msgstr "modifié ici"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr "l'argument de la clause %<align%> doit être une expression de constante entière positive qui est une puissance de deux"
@@ -48560,110 +48590,110 @@ msgstr "la clause %<allocator%> requiert un allocateur prédéfini car %qD est s
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr "%<#pragma omp allocate%> pour des variables statiques comme %qD n'est pas encore supporté"
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "clause %<read%>, %<write%>,  %<update%> ou %<capture%> attendue"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "%<seq_cst%>, %<acquire%> ou %<relaxed%> attendu"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr "clause %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> ou %<hint%> attendue"
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, gcc-internal-format
 msgid "too many atomic clauses"
 msgstr "trop de clauses atomiques"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr "trop de clauses d'ordre de mémoire"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "la clause %qs est incompatible avec les clauses %<read%> ou %<write%>"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr "la clause %qs requiert la clause %qs"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp atomic write%> est incompatible avec la clause %<acquire%> fournie implicitement par une directive %<requires%>"
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp atomic read%> est incompatible avec la clause %<release%> fournie implicitement par une directive %<requires%>"
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr "%<#pragma omp atomic read%> est incompatible avec la clause %<release%>"
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr "%<#pragma omp atomic write%> est incompatible avec la clause %<acquire%>"
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "la comparaison %<==%> est attendue dans la condition %<if%>"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr "la comparaison %<==%>, %<<%> ou %<>%> est attendue dans la condition %<if%>"
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "forme invalide de %<#pragma omp atomic compare%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, gcc-internal-format
 msgid "unexpected %<else%>"
 msgstr "%<else%> attendu"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "forme invalide de %<pragma omp atomic compare%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "forme invalide de %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "opération invalide pour %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr "la clause %<weak%> requiert une comparaison d'égalité atomique"
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic capture%> utilise deux expressions différentes pour la mémoire"
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "l'expression %<depobj%> n'est pas une expression l-valeur"
@@ -48673,27 +48703,27 @@ msgstr "l'expression %<depobj%> n'est pas une expression l-valeur"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "l'expression %<destroy%> n'est pas une expression l-valeur"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr "l'expression %<destroy%> %qE devrait être la même que l'argument %<depobj%> %qE"
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, gcc-internal-format
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "%<in%>, %<out%>, %<inout%>, %<mutexinoutset%> ou %<inoutset%> attendu"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "clause %<depend%>, %<destroy%> ou %<update%> attendue"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "%<seq_cst%>, %<acq_rel%>, %<release%> ou %<acquire%> attendu"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr "liste %<flush%> spécifiée avec une clause d'ordre de mémoire"
@@ -48703,163 +48733,163 @@ msgstr "liste %<flush%> spécifiée avec une clause d'ordre de mémoire"
 msgid "expected %<(%> or end of line"
 msgstr "%<(%> ou fin de ligne attendue"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr "%<[[omp::directive(%s)]]%> doit être le seul attribut spécifié dans une instruction"
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp scan%> avec zéro instruction exécutable précédente"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "%<inclusive%> ou %<exclusive%> attendu"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr "%<#pragma omp scan%> attendu"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp scan%> avec zéro instruction exécutable suivante"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "déclaration ou initialisation d'itération attendue"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, gcc-internal-format
 msgid "not enough nested loops"
 msgstr "pas assez de boucles imbriquées"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr "le paramètre de la clause %<ordered%> est plus petit que %<collapse%>"
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "instruction « for » attendue"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "la variable d'itération %qD ne devrait pas être « firstprivate »"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp ordered%> avec la clause %qs ne peut être utilisé qu'avec des instructions composées"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "%<for%> attendu après %qs"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "%<point%> attendu"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target data%> avec un type avec correspondance autre que %<to%>, %<from%>, %<tofrom%> ou %<alloc%> sur un clause %<map%>"
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr "%<#pragma omp target data%> doit contenir au moins une clause %<map%>, %<use_device_ptr%> ou %<use_device_addr%>"
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr "%<#pragma omp target update%> doit contenir au moins une clause %<from%> ou %<to%>"
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target enter data%> avec un type avec correspondance autre que %<to%>, %<tofrom%> ou %<alloc%> sur une clause %<map%>"
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target enter data%> doit contenir au moins une clause %<map%>"
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr "%<#pragma omp target exit data%> avec un type « map » autre que %<from%>, %<tofrom%>, %<release%> ou %<delete%> sur une clause %<map%>"
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target exit data%> doit contenir au moins une clause %<map%>"
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target%> avec un type avec correspondance autre que %<to%>, %<from%>, %<tofrom%> ou %<alloc%> sur une clause %<map%>"
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp declare %s%> doit être suivi d'une déclaration ou une définition de fonction ou un autre %<#pragma omp declare %s%>"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma omp declare %s%> doit être suivi d'une déclaration ou une définition de fonction"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, gcc-internal-format
 msgid "expected trait selector name"
 msgstr "nom de sélecteur de trait attendu"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "sélecteur %qs inconnu pour l'ensemble %qs du sélecteur de contexte"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr "le sélecteur %qs n'accepte aucune propriété"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<score%> ne peut pas être spécifié dans les traits dans le trait-selector-set %qs"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr "l'argument %<score%> doit être une expression entière constante"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr "l'argument %<score%> doit être non négatif"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, gcc-internal-format
 msgid "expected identifier or string literal"
 msgstr "identificateur ou chaîne littérale attendus"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr "la propriété doit être une expression entière constante"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr "les propriétés pour le sélecteur %<simd%> ne peuvent pas être spécifiées dans %<metadirective%>"
@@ -48867,290 +48897,290 @@ msgstr "les propriétés pour le sélecteur %<simd%> ne peuvent pas être spéci
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr "le sélecteur %<requires%> n'est pas encore supportée"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, gcc-internal-format
 msgid "expected context selector set name"
 msgstr "nom de l'ensemble du sélecteur de contexte attendu"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, gcc-internal-format
 msgid "expected %<match%>"
 msgstr "%<match%> attendu"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr "le variant %qD n'est pas une fonction"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, gcc-internal-format
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "le variant %qD et la base %qD ont des types incompatibles"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr "le variant %qD est interne"
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "%<#pragma omp declare %s%> pas immédiatement suivi d'une déclaration ou une définition de fonction"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma omp declare %s%> pas immédiatement suivi par une seule déclaration ou définition de fonction"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr "%qD est spécifié à la fois dans les clauses declare target %<link%> et %qs"
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr "%qD est spécifié à la fois dans les clauses declare target %<link%> et %<to%> ou des clauses %<enter%>"
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr "la directive avec uniquement des clauses %<device_type%> ou %<indirect%>"
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr "la clause %<device_type%> doit spécifier « any » lorsqu'elle est utilisée avec une clause %<indirect%>"
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "%<target%> attendu"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "%<declare target%> ou %<assumes%> attendu"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr "%<#pragma omp end declare target%> sans %<#pragma omp declare target%> correspondant ou %<#pragma omp begin declare target%>"
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr "%qs dans la syntaxe d'attribut est terminé par %qs dans la syntaxe pragma"
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "%qs dans la syntaxe pragma est terminé par %qs dans la syntaxe d'attribut"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "%<declare%> ou %<assumes%> attendu"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr "%<#pragma omp declare reduction%> pas au niveau d'un fichier ou d'un bloc"
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr "type arithmétique prédéclaré dans %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr "fonction ou type tableau dans %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "type qualifié par %<_Atomic%> dans %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr "type qualifié par const, volatile ou restrict dans %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr "redéclaration de %qs %<#pragma omp declare reduction%> pour le type %qT"
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "%<#pragma omp declare reduction%> précédent"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "%<omp_priv%> ou nom de fonction attendu"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "nom de fonction %<(%> attendu"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr "un des arguments de l'appel de l'initialisation devrait être %<&omp_priv%>"
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "%<simd%>, %<reduction%>, %<target%> ou %<variant%> attendu"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "%<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> ou %<seq_cst%> attendu"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr "clause %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> ou %<atomic_default_mem_order%> attendue"
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr "clause %qs utilisée lexicalement après la construction de la première cible ou l'API de déchargement"
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr "plus d'une clause %<atomic_default_mem_order%> dans une même unité de compilation"
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr "clause %<atomic_default_mem_order%> utilisée lexicalement après la première construction %<atomic%> sans clause d'ordre de mémoire"
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr "%<pragma omp requires%> requiert au moins une clause"
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "type %qT de taille nulle dans la clause %<reduction%>"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "type %qT de taille variable dans la clause %<reduction%>"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "clause %<at%>, %<severity%> ou %<message%> attendue"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, gcc-internal-format
 msgid "expected %qs or %qs"
 msgstr "%qs ou %qs attendu"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp error%> avec une clause %<at(execution)%> peut uniquement être utilisé dans des instructions composées"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr "%<pragma omp error%> rencontrée : %s"
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr "%<pragma omp error%> rencontrée"
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr "au moins une clause de présomption est attendue"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, gcc-internal-format
 msgid "expected directive name"
 msgstr "nom de directive attendu"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr "nom de directive OpenMP inconnue dans l'argument de la clause %qs"
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr "directive %<%s%s%s%s%s%> mentionnée simultanément dans les clauses %<absent%> et %<contains%>"
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr "directive %<%s%s%s%s%s%> mentionnée plusieurs fois dans les clauses %qs"
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "clause de présomption %qs inconnue"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, gcc-internal-format
 msgid "expected assumption clause"
 msgstr "clause de présomption attendue"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE est déclaré %<threadprivate%> après la première utilisation"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "la variable automatique %qE ne peut être %<threadprivate%>"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%<threadprivate%> %qE a un type incomplet"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr "%<__transaction_cancel%> sans avoir activé le support pour la mémoire transactionnelle"
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr "%<__transaction_cancel%> à l'intérieur de %<__transaction_relaxed%>"
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "le %<__transaction_cancel%> extérieur n'est pas dans un %<__transaction_atomic%> extérieur ou une fonction %<transaction_may_cancel_outer%>"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr "%<__transaction_cancel%> pas à l'intérieur de %<__transaction_atomic%>"
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr "pas d'accolade fermante"
@@ -49291,7 +49321,7 @@ msgstr "déréférencement d'un pointeur %<void *%>"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "la valeur de l'indice n'est ni un tableau ni un pointeur ni un vecteur"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "l'indice du tableau n'est pas un entier"
@@ -49321,7 +49351,7 @@ msgstr "%qD sous-spécifié référencé dans son initialiseur"
 msgid "enum constant defined here"
 msgstr "constante enum définie ici"
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr "%<sizeof%> sur le tableau %qE en paramètre de fonction retournera la taille de %qT"
@@ -49434,17 +49464,17 @@ msgstr "conversion implicite de %qT en %qT lors du passage de l'argument à la f
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "trop peu d'arguments pour la fonction interne %qE %u attendus"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "une comparaison avec une chaîne littérale produit un résultat non spécifié"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, gcc-internal-format
 msgid "comparison between pointer and zero character constant"
 msgstr "comparaison entre un pointeur et la constante caractère zéro"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr "vouliez-vous déréférencer le pointeur ?"
@@ -49469,7 +49499,7 @@ msgstr "pointeur vers une fonction utilisé dans une soustraction"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "arithmétique sur un pointeur vers un type incomplet"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr "arithmétique sur un pointeur vers un agrégat vide"
@@ -49762,7 +49792,7 @@ msgstr "transtypage d'un pointeur vers un entier de taille différente"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "transtypage d'un appel de fonction de type %qT vers le type %qT ne correspondant pas"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "transtypage vers un pointeur depuis un entier de taille différente"
@@ -49934,7 +49964,7 @@ msgstr "le membre de gauche de l'affectation pourrait être un candidat pour un
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "le membre de gauche de l'initialisation pourrait être un candidat pour un attribut de format"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "le type de retour pourrait être un candidat pour un attribut de format"
@@ -50134,12 +50164,12 @@ msgstr "l'initialiseur de %<constexpr%> pour un type réel est de type complexe"
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr "l'initialiseur de %<constexpr%> pour un type en virgule flottante binaire est de type décimal"
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "initialisation d'un membre de tableau flexible"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr "impossible d'initialiser un tableau de %qT depuis une chaîne de caractères littérale avec un tableau de type %qT"
@@ -50149,7 +50179,7 @@ msgstr "impossible d'initialiser un tableau de %qT depuis une chaîne de caract
 msgid "array of inappropriate type initialized from string constant"
 msgstr "tableau d'un type inapproprié initialisé avec une chaîne constante"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "utilisation invalide d'un tableau n'étant pas une l-valeur"
@@ -50180,7 +50210,7 @@ msgstr "un élément de l'initialisation n'est pas une expression constante"
 msgid "initializer element is not computable at load time"
 msgstr "un élément de l'initialisation n'est pas évaluable lors du chargement"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "type de vecteur opaque ne peut être initialisé"
@@ -50195,7 +50225,7 @@ msgstr "groupe d'accolades superflu à la fin de l'initialisation"
 msgid "braces around scalar initializer"
 msgstr "accolades autour d'une initialisation d'un scalaire"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "initialisation d'un membre de tableau flexible dans un contexte imbriqué"
@@ -50285,7 +50315,7 @@ msgstr "trop d'éléments dans l'initialisation de la structure"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr "initialisation par position de champs dans une %<struct%> qui est déclarée avec l'attribut %<designated_init%>"
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "initialisation non statique d'un membre de tableau flexible"
@@ -50325,7 +50355,7 @@ msgstr "le C ISO interdit %<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "le goto calculé doit être un type pointeur"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "la fonction est déclarée avec %<noreturn%> mais elle utilise l'instruction %<return%>"
@@ -50380,7 +50410,7 @@ msgstr "étiquette %<default%> en dehors de tout « switch »"
 msgid "break statement not within loop or switch"
 msgstr "mot-clé « break » à l'extérieur de toute boucle ou « switch »"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -50426,27 +50456,27 @@ msgstr "la comparaison sera toujours %<false%> car l'adresse de %qE ne sera jama
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "la comparaison sera toujours %<true%> car l'adresse de %qE ne sera jamais NULL"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr "comparaison de vecteurs avec des types d'éléments différents"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr "comparaison de vecteurs avec des nombres d'éléments différents"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "comparaison entre les types %qT et %qT"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr "n'a pu trouver un type entier de la même taille que %qT"
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr "comparer des nombres flottants à l'aide de %<==%> ou %<!=%> n'est pas sûr"
@@ -50518,29 +50548,29 @@ msgstr "valeur de type « union » utilisée là où un scalaire est requis"
 msgid "used vector type where scalar is required"
 msgstr "valeur de type « vector » utilisée là où un scalaire est requis"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancel%> doit spécifier l'une des clauses %<parallel%>, %<for%>, %<sections%> ou %<taskgroup%>"
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "modificateur de clause %<cancel%> %<if%> attendus"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancellation point%> doit spécifier l'une des clauses %<parallel%>, %<for%>, %<sections%> ou %<taskgroup%>"
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD n'est pas une variable dans la clause %qs"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qE n'est pas une variable dans la clause %qs"
@@ -50551,86 +50581,86 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "%<_Atomic%> %qD dans la clause %qs"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD est une variable « threadprivate » dans la clause %qs"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr "la borne inférieure %qE de la section du tableau n'a pas un type entier"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "la longueur %qE de la section du tableau n'a pas un type entier"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr "pointeur unique attendu dans la clause %qs"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "section de tableau ayant une longueur nulle dans la clause %qs"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr "l'expression de longueur doit être spécifiée pour un type tableau dont la limite est inconnue"
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr "limite inférieure négative dans la section du tableau dans la clause %qs"
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr "longueur négative dans la section du tableau dans la clause %qs"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr "limite inférieure %qE au delà de la taille de la section du tableau dans la clause %qs"
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr "longueur %qE au delà de la taille de la section du tableau dans la clause %qs"
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr "limite supérieure %qE au delà de la taille de la section du tableau dans la clause %qs"
 
 # Ce message ne veut absolument rien dire !
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr "pour une fonction tableau, l'expression de longueur du paramètre doit être spécifiée"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr "l'expression de longueur doit être spécifiée pour un type pointeur"
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr "la section du tableau n'est pas contigüe dans la clause %qs"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qE n'a pas un type pointeur ou tableau"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr "l'itérateur %qD n'a pas le type entier ni le type pointeur"
@@ -50640,17 +50670,17 @@ msgstr "l'itérateur %qD n'a pas le type entier ni le type pointeur"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "l'itérateur %qD a le type qualifié par %<_Atomic%>"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr "l'itérateur %qD à le type qualifié par « const »"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr "pas de l'itérateur avec un type non entier"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr "l'itérateur %qD a un pas de zéro"
@@ -50660,32 +50690,32 @@ msgstr "l'itérateur %qD a un pas de zéro"
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr "le type de l'itérateur %qD fait référence à l'itérateur extérieur %qD"
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr "l'expression de début fait référence à l'itérateur extérieur %qD"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr "l'expression de fin fait référence à l'itérateur extérieur %qD"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr "l'expression de pas fait référence à l'itérateur extérieur %qD"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr "pointeur attendu dans la clause %qs"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr "clauses %<inscan%> et non-%<inscan%> %<reduction%> sur la même construction"
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr "clause %<inscan%> %<reduction%> avec une section de tableau"
@@ -50715,7 +50745,7 @@ msgstr "type de taille variable %qT dans la clause %qs"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE a un type invalide pour %<reduction(%s)%>"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr "réduction définie par l'utilisateur pas trouvée pour %qE"
@@ -50725,17 +50755,17 @@ msgstr "réduction définie par l'utilisateur pas trouvée pour %qE"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "type d'élément de longueur variable dans la table de la clause %<reduction%>"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr "la clause %<nowait%> ne doit pas être utilisée avec %<copyprivate%>"
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE doit être %<threadprivate%> pour %<copyin%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr "le modificateur ne devrait pas être spécifié dans la clause %<linear%> sur des constructions %<simd%> ou %<for%> lorsque les modificateurs OpenMP 5.2 ne sont pas utilisés"
@@ -50750,23 +50780,23 @@ msgstr "clause linéaire appliquée à une variable non entière non pointeur de
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr "%<_Atomic%> %qD dans la clause %<linear%>"
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr "le pas %qE de la clause %<linear%> n'est ni une constante ni un paramètre"
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE n'est pas une variable dans la clause %qs"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD apparaît plus d'une fois dans les clauses de partage de données"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr "%qD apparaît plus d'une fois dans les clauses de réduction"
@@ -50778,32 +50808,32 @@ msgstr "%qE apparaît plus d'une fois dans les clauses de données"
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "%qD apparaît plus d'une fois dans les clauses de données"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr "%qD apparaît à la fois dans les clauses « data » et « map »"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE n'est pas une variable dans la clause %<firstprivate%>"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE n'est pas une variable dans la clause %<lastprivate%>"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qE n'est pas une variable dans la clause %<aligned%>"
@@ -50823,7 +50853,7 @@ msgstr "%<_Atomic%> %qD dans la clause %<aligned%>"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE apparaît plus d'une fois dans les clause %<aligned%>"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr "%qE n'est pas une variable dans la clause %<nontemporal%>"
@@ -50833,7 +50863,7 @@ msgstr "%qE n'est pas une variable dans la clause %<nontemporal%>"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE apparaît plus d'une fois dans les clauses %<nontemporal%>"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr "%qE n'est pas une variable dans la clause %<allocate%>"
@@ -50843,76 +50873,76 @@ msgstr "%qE n'est pas une variable dans la clause %<allocate%>"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE apparaît plus d'une fois dans les clause %<allocate%>"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr "clause %<depend%> avec le type de dépendance %<depobj%> sur une section de tableau"
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr "%<omp_all_memory%> utilisé avec le type %<depend%> autre que %<out%> ou %<inout%>"
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qE n'est pas une une expression l-valeur ni une section de tableau dans la clause %qs"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr "%qE n'a pas le type %<omp_depend_t%> dans la clause %<depend%> avec le type de dépendance %<depobj%>"
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr "%qE ne devrait pas avoir le type %<omp_depend_t%> dans la clause %<depend%> avec un type de dépendance autre que %<depobj%>"
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr "la section du tableau n'a pas un type pour lequel une correspondance peut être établie (mappable type) dans la clause %qs"
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, gcc-internal-format
 msgid "unsupported map expression %qE"
 msgstr "expression map %qE non supportée"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD apparaît plus d'une fois dans les clauses de mouvement"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD apparaît plus d'une fois dans les clauses « map »"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD n'a pas un type pour lequel la correspondance peut être établie (mappable type) dans la clause %qs"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE n'est ni une variable ni un nom de fonction dans la clause %qs"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE apparaît plus d'une fois dans la même directive %<declare target%>"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD n'est pas un argument dans la clause %<uniform%>"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "%qE n'est pas un argument dans la clause %<uniform%>"
@@ -50927,23 +50957,23 @@ msgstr "la variable %qs n'est pas un pointeur"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "la variable %qs n'est ni un pointeur ni un tableau"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr "la clause %<order%> ne doit pas être utilisée avec %<ordered%>"
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr "trop de clauses %qs dans une construction de tâche"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr "la clause %<inbranch%> est incompatible avec %<notinbranch%>"
 
 # le premier %qs est un mot non traduit tel que « private », « shared » ou « threadprivate ».
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE est prédéterminé %qs pour %qs"
@@ -50953,38 +50983,38 @@ msgstr "%qE est prédéterminé %qs pour %qs"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr "%qE qualifié avec %<const%> peut uniquement apparaître dans les clauses %<shared%> ou %<firstprivate%>"
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr "la valeur de la clause %<simdlen%> est plus grande que la valeur de la clause %<safelen%>"
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr "modificateur d'ordonnancement %<nonmonotonic%> spécifié en même temps que la clause %<ordered%>"
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr "clause %qs spécifiée en même temps que la clause %<inscan%> %<reduction%>"
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr "le pas de la clause %<linear%> est un paramètre %qD pas spécifié dans la clause %<uniform%>"
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr "la clause %<nogroup%> ne doit pas être utilisée avec la clause %<reduction%>"
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr "la clause %<detach%> ne doit pas être utilisée avec la clause %<mergeable%>"
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr "l'identificateur de l'événement d'une clause %<detach%> ne devrait pas être dans une clause qui partage des données"
@@ -51249,14 +51279,14 @@ msgstr "  pas de conversion connue pour convertir %qH en %qI"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  pas de conversion connue pour convertir l'argument %d depuis %qH vers %qI"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] "  le candidat attend au moins %d argument, %d fourni(s)"
 msgstr[1] "  le candidat attend au moins %d arguments, %d fourni(s)"
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -51565,553 +51595,553 @@ msgstr "l'expression conditionnelle entre le type en virgule flottante %qT et le
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "type énuméré et non énuméré dans l'expression conditionnelle"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "pas de %<%D(int)%> déclaré pour l'opérateur suffixé %qs, on essaie avec l'opérateur préfixé à la place"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "pas de %<%D(int)%> déclaré pour l'opérateur suffixé %qs"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr "en C++20, cette comparaison appelle la fonction actuelle récursivement avec les arguments inversés"
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr "le type de retour de %qD n'est pas %qs"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr "utilisé comme candidat réécrit pour la comparaison de %qT et %qT"
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "comparaison entre %q#T et %q#T"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, gcc-internal-format
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "pas de concordance pour l'appel à %<%T::operator[] (%A)%>"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, gcc-internal-format
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "l'appel à %<%T::operator[] (%A)%> est ambigu"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr "le nettoyage pendant une exception pour cet opérateur « new » avec placement sélectionne %<operator delete%> sans placement"
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "%qD est une fonction de désallocation habituelle (sans placement) en C++14 (ou avec %<-fsized-deallocation%>)"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "%qD est une fonction de désallocation habituelle (sans placement)"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr "pas de fonction de désallocation correspondante pour %qD"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr "le destructeur delete %qD ne peut pas utilisé pour libérer la mémoire allouée si l'initialisation lève une exception car l'objet n'est pas encore construit"
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "pas de %<operator %s%> adapté pour %qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr "%q#D est privé dans ce contexte"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, gcc-internal-format
 msgid "declared private here"
 msgstr "déclaré privé ici"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr "%q#D est protégé dans ce contexte"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, gcc-internal-format
 msgid "declared protected here"
 msgstr "déclaré protégé ici"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr "%q#D est inaccessible dans ce contexte"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "passage de NULL pour l'argument non pointeur %P de %qD"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, gcc-internal-format
 msgid "  declared here"
 msgstr "  déclaré ici"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "conversion vers un type non pointeur %qT à partir de NULL"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "conversion de %<false%> vers un type pointeur pour l'argument %P de %qD"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "conversion de %<false%> vers le type pointeur %qT"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  initialisation de l'argument %P de %qD"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "les conversions vers des tableaux aux limites inconnues sont uniquement disponibles avec %<-std=c++20%> ou %<-std=gnu++20%>"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "trop d'accolades autour de l'initialiseur pour %qT"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "la conversion vers %qH depuis %qI requiert une initialisation directe"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "le C++ ISO n'autorise pas la conversion vers %qH à partir de %qI avec un plus grand rang de conversion"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr "le C++ ISO n'autorise pas la conversion vers %qH à partir de %qI avec des rangs de conversion pas ordonnés"
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "la conversion définie par l'utilisateur de %qH vers %qI est invalide"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 msgid "invalid conversion from %qH to %qI"
 msgstr "conversion invalide de %qH vers %qI"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr "la conversion de la liste d'initialisation vers %qT utiliserait le constructeur explicite %qD"
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr "en C++11 et au delà, un constructeur par défaut peut être explicite"
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "impossible de lier la référence d'une r-valeur de type %qH à une l-valeur de type %qI"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "impossible de lier la référence d'une l-valeur non constante de type %qH à une valeur de type %qI"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "impossible de lier la référence d'une l-valeur non constante de type %qH à une r-valeur de type %qI"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "impossible de lier la référence d'une l-valeur de type %qH à une r-valeur de type %qI"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr "impossible de lier la référence de type %qH vers %qI à cause des limites différentes des tableaux"
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "lier la référence du type %qH à %qI abandonne les qualificatifs"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "ne peut lier le champ de bits %qE avec %qT"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "ne peut lier le champs empaqueté %qE avec %qT"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "ne peut lier la r-valeur %qE avec %qT"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "conversion implicite de %qH en %qI lors du passage de l'argument à la fonction"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr "l'énumération %qT dans une portée limitée est passée au travers de %<...%> en tant que %qT avant %<-fabi-version=6%> et en tant que %qT après"
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "le passage d'objets du type %q#T non trivialement copiables au travers de %<...%> est supporté conditionnellement"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "impossible de recevoir le type référencé %qT au travers de %<...%>"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "la réception d'objets du type %q#T non trivialement copiables au travers de %<...%> est supporté conditionnellement"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "évaluation récursive de l'argument par défaut pour %q#D"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "l'appel à %qD utilise l'argument par défaut du paramètre %P qui n'est pas encore défini"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "l'argument de l'appel de fonction pourrait être un candidat pour un attribut de format"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr "utilisation d'une fonction ayant plusieurs versions sans version par défaut"
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr "utilisez %<-fdiagnostics-all-candidates%> pour afficher tous les candidats considérés"
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "le passage de %qT comme argument %<this%> abandonne les qualificatifs"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  dans l'appel de %qD"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT n'est pas une base accessible de %qT"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "passage des arguments à l'élision du constructeur hérité %qD"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr "l'affectation depuis le %<initializer_list%> temporaire n'étend pas la durée de vie du tableau sous-jacent"
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr "écriture %qD vers un objet de type %#qT sans affectation par copie triviale"
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "écriture %qD vers un objet de type non trivial %#qT%s"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr "écriture %qD vers un objet de type %#qT avec le membre %qs de %qD"
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr "écriture %qD vers un objet de type %#qT contenant un pointeur vers le membre de donnée%s"
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr "; utilisez plutôt une affectation ou une initialisation par valeur"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, gcc-internal-format
 msgid "; use assignment instead"
 msgstr "; utilisez plutôt une affectation"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr "; utilisez plutôt une initialisation par valeur"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr "%qD effacement d'un objet de type %#qT sans affectation par copie triviale%s"
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "%qD effacement d'un objet du type non trivial %#qT%s"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr "%qD effacement d'un objet de type %#qT contenant un pointeur vers un membre%s"
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "; utilisez plutôt une affectation par copie ou une initialisation par copie"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr "; utilisez plutôt une affectation par copie"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr "; utilisez plutôt une initialisation par copie"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr "%qD écriture dans un objet de type %#qT sans affectation par copie triviale%s"
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr "%qD écriture dans un objet du type non trivialement copiable %#qT%s"
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr "%qD écriture dans un objet avec un constructeur par copie supprimé"
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr "%qD copie un objet du type non trivial %#qT depuis un tableau de %#qT"
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr "%qD copie un objet de type %#qT avec le membre %qs de %qD depuis un tableau de %#qT; utilisez plutôt une affectation ou une initialisation par copie"
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr "%qD écriture dans un objet du type non trivial %#qT laisse %wu octets inchangés"
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr "%qD écriture dans un objet du type non trivial %#qT laisse %wu octet inchangé"
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr "%qD déplacement d'un objet du type non trivialement copiable %#qT; utilisez plutôt %<new%> et %<delete%>"
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr "%qD déplacement d'un objet de type %#qT avec un constructeur par copie supprimé; utilisez plutôt %<new%> et %<delete%>"
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr "%qD déplacement d'un objet de type %#qT avec un destructeur supprimé"
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr "%qD déplacement d'un objet du type non trivial %#qT et de taille %E dans une région de taille %E"
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, gcc-internal-format
 msgid "%#qT declared here"
 msgstr "%#qT déclaré ici"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "l'argument %u dans l'appel à la fonction %qE est un pointeur vers un type non trivialement copiable (%qT)"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr "le constructeur délègue à lui-même"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 msgid "cannot convert %qH to %qI"
 msgstr "ne peut convertir %qH en %qI"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "pas de fonction concordante pour l'appel à %<%T::operator %T(%A)%#V%>"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "pas de fonction concordante pour l'appel à %<%T::%s%E(%A)%#V%>"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "appel à la non fonction %qD"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "ne peut appeler le constructeur %<%T::%D%> directement"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr "pour un transtypage de style « fonction », enlevez le %<::%D%> redondant"
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "pas de fonction concordante pour l'appel de %<%s(%A)%>"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "appel ambigu à la surcharge %<%s(%A)%>"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "appel à %q#D qui est pur virtuel depuis un initialisateur qui n'est pas un membre statique"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr "appel à %q#D qui est pur virtuel depuis le constructeur"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr "appel à %q#D qui est pur virtuel depuis le destructeur"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "impossible d'appeler la fonction membre %qD sans objet"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "le passage de %qT choisi %qT au lieu de %qT"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "le C++20 indique que ceux-ci sont ambigus même si le second est inversé :"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, gcc-internal-format
 msgid "try making the operator a %<const%> member function"
 msgstr "essayez de rendre l'opérateur une fonction membre %<const%>"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "choix de %qD à la place de %qD"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 msgid "  for conversion from %qH to %qI"
 msgstr "  pour la conversion de %qH vers %qI"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  parce que la séquence de conversion pour l'argument est meilleure"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "désaccord dans l'argument par défaut lors de la résolution de la surcharge"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr " candidat 1: %q#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr " candidat 2: %q#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "le C++ ISO indique que ceux-ci sont ambigus même si la plus mauvaise conversion pour le premier est meilleures que la plus mauvaise conversion pour le second:"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr "une limite temporaire sur %qD existe uniquement jusqu'à la sortie du constructeur"
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "initialisation invalide pour une référence non constante du type %qH à partir d'une r-valeur de type %qI"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "initialisation invalide pour une référence du type %qH à partir d'une expression de type %qI"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, gcc-internal-format
 msgid "possibly dangling reference to a temporary"
 msgstr "est peut-être une référence ballante vers un temporaire"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr "le temporaire a été détruit à la fin de l'expression complète %qE"
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr "la fonction de conversion explicite n'a pas été considérée"
@@ -52158,7 +52188,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q#D ne peut pas être surchargé par %q#D"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "déclaration précédente de %q#D"
@@ -52579,7 +52609,7 @@ msgstr "membre tableau flexible %qD dans %q#T par ailleurs vide"
 msgid "next member %q#D declared here"
 msgstr "membre %q#D suivant déclaré ici"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "redéfinition de %q#T"
@@ -52711,7 +52741,7 @@ msgstr "type invalide pour le paramètre %d de la fonction %<constexpr%> %q+#D"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr "les lambdas ne sont implicitement %<constexpr%> qu'à partir du C++17"
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "les destructeurs %<constexpr%> sont uniquement disponible avec %<-std=c++20%> ou %<-std=gnu++20%>"
@@ -52752,7 +52782,7 @@ msgstr "le corps de la fonction %<constexpr%> %qD n'est pas une unique instructi
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%qD n'est pas utilisable comme une fonction %<constexpr%> car:"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr "destruction de %qE en dehors de sa durée de vie"
@@ -52770,7 +52800,7 @@ msgstr "l'appel %<constexpr%> déborde au delà de la fin de la fonction"
 msgid "%q+E is not a constant expression"
 msgstr "%q+E n'est pas une expression constante"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -52791,7 +52821,7 @@ msgstr "%qE est évalué à « faux »"
 msgid "failed %<assume%> attribute assumption"
 msgstr "la supposition de l'attribut %<assume%> a échoué"
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, gcc-internal-format
 msgid "call to internal function %qE"
@@ -52838,7 +52868,7 @@ msgstr "%qT est une classe de base ambigüe du type dynamique %qT de son opéran
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr "le type dynamique %qT de son opérande n'a pas une classe de base publique %qT non ambigüe"
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -52966,18 +52996,18 @@ msgstr "la valeur %qE de l'indice du tableau est hors des limites du tableau de
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "l'indice de tableau non nul %qE est utilisé avec un tableau de type %qT dont les limites sont inconnues"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "accès à un élément non initialisé du tableau"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr "déréférencement d'un pointeur nul dans %qE"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -52985,469 +53015,469 @@ msgstr "déréférencement d'un pointeur nul dans %qE"
 msgid "%qE is not a constant expression"
 msgstr "%qE n'est pas une expression constante"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "le mutable %qD n'est pas utilisable dans une expression constante"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "accès au membre non initialisé %qD"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr "accès au membre %qD au lieu du membre initialisé %qD dans l'expression constante"
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "%qs n'est pas une expression constante car %qT est un type union"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "%qs n'est pas une expression constante car %qT contient un type union"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "%qs n'est pas une expression constante car %qT est un type pointeur"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "%qs n'est pas une expression constante car %qT contient un type pointeur"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "%qs n'est pas une expression constante car %qT est un type référence"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "%qs n'est pas une expression constante car %qT contient un type référence"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "%qs n'est pas une expression constante car %qT est un type pointeur vers un membre"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "%qs n'est pas une expression constante car %qT contient un type pointeur vers un membre"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "%qs n'est pas une expression constante car %qT est volatile"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "%qs n'est pas une expression constante car %qT contient un sous-objet volatile"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "%qs ne peut pas être évalué de manière constante sur la cible"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr "%qs ne peut pas être évalué de manière constante car le type est trop grand"
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr "%qs ne peut pas être évalué de manière constante car l'argument ne sait pas être encodé"
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "%qs accès à un octet non initialisé à l'offset %d"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr "%qs ne peut pas être évalué de manière constante car l'argument ne sait pas être interprété"
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "accès à la valeur de %qE au travers d'une gl-valeur %qT dans une expression constante"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "utilisation d'un stockage alloué après sa désallocation dans une expression constante"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, gcc-internal-format
 msgid "allocated here"
 msgstr "alloué ici"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr "accès à %qE en dehors de sa durée de vie"
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "le contenu d'un stockage non initialisé n'est pas utilisable dans une expression constante"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "la valeur de %qD n'est pas utilisable dans une expression constante"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "%qD utilisé dans sa propre initialisation"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%q#D n'est pas const"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%q#D est volatile"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD n'a pas été initialisé par une expression constante"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD n'a pas été déclaré %<constexpr%>"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "%qD n'a pas un type entier ou énuméré"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "modifier un stockage alloué après désallocation n'est pas une expression constante"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "modifie %qE en dehors de sa durée de vie n'est pas une expression constante"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "détruire %qE en dehors de l'évaluation courante n'est pas une expression constante"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "la modification de %qE en dehors de l'évaluation courante n'est pas une expression constante"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "changement du membre actif d'une union de %qD à %qD n'est pas une expression constante avant C++20"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr "%qD ne commence pas implicitement sa durée de vie car %qT n'a pas un constructeur par défaut trivial non supprimé, utilisez plutôt %<std::construct_at%>"
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr "l'initialisation de %qD requiert une expression d'accès à un membre comme opérande de gauche dans l'assignement"
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "changement du membre actif d'une union de %qD à %qD durant l'initialisation"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "l'instruction n'est pas une expression constante"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr "le décompte des itérations de la boucle %<constexpr%> dépasse la limite permise %d (utilisez %<-fconstexpr-loop-limit=%> pour augmenter la limite)"
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr "l'assembleur en ligne n'est pas une expression constante"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr "seul de l'assembleur en ligne non évalué est autorisé dans une fonction %<constexpr%> en C++20"
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, gcc-internal-format
 msgid "use of %qD"
 msgstr "utilisation de %qD"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr "sa valeur peut varier entre les versions du compilateur ou avec des fanions %<-mtune%> ou %<-mcpu%> différents"
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr "si son utilisation fait partie d'une ABI publique, changez-le pour utiliser plutôt une variable constante que vous définissez"
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr "la valeur par défaut pour les réglages actuels du processeur est %d octets"
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr "vous pouvez stabiliser cette valeur avec %<--param hardware_destructive_interference_size=%d%> ou désactiver cet avertissement avec %<-Wno-interference-size%>"
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "la valeur %qE du type %qT n'est pas une expression constante"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr "le décompte des opérations d'évaluation de %<constexpr%> dépasse la limite permise %wd (utilisez %<-fconstexpr-ops-limit=%> pour augmenter la limite)"
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr "le contrôle passe au travers de la définition de %qD avec une durée de stockage limitée au thread"
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr "le contrôle passe au travers de la définition de %qD avec une durée de stockage statique"
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "temporaire du type %qT non littéral dans une expression constante"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "un %<reinterpret_cast%> n'est pas une expression constante"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "conversion depuis le type pointeur %qT vers le type arithmétique %qT dans une expression constante"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "le transtypage de %qT n'est pas permis dans une expression constante car le type pointé %qT n'est pas similaire à %qT"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr "l'objet pointé est déclaré ici"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "le transtypage depuis %qT n'est pas permis dans une expression constante car %qE ne pointe pas vers un objet"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "le transtypage depuis %qT n'est pas autorisé dans une expression constante avant C++26"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "%qE n'est pas une expression constante tant que la classe %qT est encore incomplète"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "%<reinterpret_cast<%T>(%E)%> n'est pas une expression constante"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "l'expression %qE n'est pas une expression constante"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "%<goto%> n'est pas une expression constante"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "le prédicat du contrat est faux dans une expression constante"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr "template-id %qE inattendu"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, gcc-internal-format
 msgid "function concept must be called"
 msgstr "un concept de fonction doit être appelé"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr "l'adresse d'un appel à %qs n'est pas une expression constante"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "l'expression %qE du sous-type %s est inattendue"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr "%qE n'est pas une expression constante car il fait référence aux sous-objets mutables de %qT"
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr "%qE n'est pas une expression constante car il fait référence à une variable incomplètement initialisée"
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "%qE n'est pas une expression constante car il fait référence à un résultat de %<operator new%>"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr "%qE n'est pas une expression constante car le stockage alloué n'a pas été désalloué"
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr "l'évaluation immédiate retourne l'adresse de la fonction immédiate %qD"
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "l'évaluation constante retourne l'adresse de la fonction immédiate %qD"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "conversion l-valeur vers r-valeur d'une l-valeur volatile %qE avec le type %qT"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "la capture lambda de %qE n'est pas une expression constante"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr "car il est utilisé comme gl-valeur"
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "%<reinterpret_cast%> d'un entier vers un pointeur"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr "prendre l'adresse avec address-of d'un objet %qE qui est local au thread ou a un stockage automatique n'est pas une expression constante"
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "utilisation de %<this%> dans une expression constante"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "expression lambda dans une expression constante avant C++17"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr "l'expression new n'est pas une expression constante avant C++20"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, gcc-internal-format
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "les fonctions virtuelles ne peuvent pas être %<constexpr%> avant C++20"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "l'expression %<typeid%> n'est pas une expression constante car %qE est un type polymorphique"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "transtypage vers le type non entier %qT dans une expression constante"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "%qD défini %<thread_local%> dans un contexte %<constexpr%>"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "%qD défini %<static%> dans un contexte %<constexpr%>"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "la division par zéro n'est pas une expression constante"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "%<delete[]%> n'est pas une expression constante"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "aucune des branches de %<if%> est une expression constante"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "initialisation d'un tableau non constant"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "la définition d'une étiquette dans une fonction %<constexpr%> est uniquement disponible avec %<-std=c++2b%> ou %<-std=gnu++2b%>"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "arbre syntaxique abstrait (AST=Abstract Syntax Tree) de type %s inattendu"
@@ -54158,7 +54188,7 @@ msgstr "l'argument de direction de %<__builtin_core_promise%> doit être une con
 msgid "no suspend point info for %qD"
 msgstr "aucune information du point de suspension pour %qD"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr "%qE est fourni par %qT mais il n'est pas utilisable avec la fonction ayant la signature %qD"
@@ -54178,23 +54208,23 @@ msgstr "les expressions temporisables ne sont pas permises dans les gestionnaire
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr "les tableaux de longueur variable ne sont pas encore supportés dans les coroutines"
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr "%qE est fourni par %qT mais %qE n'est pas marqué avec %<throw()%> ou %<noexcept%>"
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr "%qE est marqué avec %<throw()%> ou %<noexcep%> mais aucun %<get_return_object_on_allocation_failure%> utilisable est fourni par %qT"
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr "%qE est fourni par %qT mais %<std::nothrow%> n'est pas trouvé"
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr "impossible d'initialiser un objet retourné de type %qT avec une r-valeur de type %<void%>"
@@ -54214,68 +54244,68 @@ msgstr "%qD a été promu en une fonction immédiate car son corps contient une
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD a été promu en une fonction immédiate"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr "prise de l'adresse d'une fonction immédiate %qD"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "l'appel à la fonction consteval %qE n'est pas une expression constante"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "%<throw%> appellera toujours %<terminate%>"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "en C++11, les destructeurs sont %<noexcept%> par défaut"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr "en C++11, ce %<throw%> appellera %<terminate%> car les destructeurs sont %<noexcept%> par défaut"
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "l'attribut %qE est ignoré après un %qE antérieur"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, gcc-internal-format
 msgid "pack expansion of %qE attribute"
 msgstr "comprimer l'expansion de l'attribut %qE"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr "utiliser plutôt une expression de repli (fold) dans l'argument de l'attribut"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD n'est pas un type"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr "%qD n'est pas un type de classe"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qD n'a pas le type %<const char *%>"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "%qD n'a pas un type entier"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr "%<std::source_location::__impl%> ne contient pas uniquement que des membres de données non-statiques %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> et %<_M_column%>"
@@ -54316,7 +54346,7 @@ msgstr "conversion vers le type référencé non const %q#T depuis une r-valeur
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "la conversion depuis %qH vers %qI écarte les qualificatifs"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "le transtypage de %qT vers %qT ne déréférence pas le pointeur"
@@ -54699,7 +54729,7 @@ msgstr "par rapport à la déclaration précédente de %qF"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "la redéclaration de %qD diffère de %qs dans la déclaration précédente"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "déclaration précédente de %qD"
@@ -54839,8 +54869,8 @@ msgstr "déclaration %<pragma omp declare reduction%> précédente"
 msgid "%q#D previously defined here"
 msgstr "%q#D précédemment défini ici"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "%q#D précédemment déclaré ici"
@@ -54915,53 +54945,38 @@ msgstr "argument par défaut donné pour le paramètre %d de %q#D"
 msgid "previous specification in %q#D here"
 msgstr "la spécification précédente dans %q#D est ici"
 
-#: cp/decl.cc:2285
-#, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr "la déclaration %qD est en conflit avec la fonction interne"
-
-#: cp/decl.cc:2288
-#, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr "la déclaration %qD est en conflit avec l'import"
-
-#: cp/decl.cc:2289
-#, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr "l'import a déclaré %q#D ici"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, gcc-internal-format
 msgid "conflicting exporting for declaration %qD"
 msgstr "export conflictuel pour la déclaration %qD"
 
 # la phrase fait référence à une variable ou une fonction (cf les deux messages ci-dessus) d'où le féminin
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, gcc-internal-format
 msgid "previously declared here without exporting"
 msgstr "précédemment déclarée ici sans export"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr "la définition précédente de %qD est ici"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "la déclaration précédente de %qD est ici"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, gcc-internal-format
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "fonction %qD déclarée %<[[noreturn]]%> mais sa première déclaration ne l'était pas"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "déclaration redondante de %qD dans la même étendue"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr "définition supprimée de %qD n'est pas la première déclaration"
@@ -54974,44 +54989,44 @@ msgstr "définition supprimée de %qD n'est pas la première déclaration"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "spécialisation explicite de %qD après la première utilisation"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%qD: attribut de visibilité ignoré car il est en conflit avec la déclaration précédente"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "redéfinition de %q#D"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "%qD est en conflit avec la fonction utilisée"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q#D pas déclaré dans une classe"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%q+D redéclaré en ligne avec l'attribut %<gnu_inline%>"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%q+D redéclaré en ligne sans l'attribut %<gnu_inline%>"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr "l'opérateur de comparaison %q+D est remis au défaut après sa première déclaration"
@@ -55019,2502 +55034,2502 @@ msgstr "l'opérateur de comparaison %q+D est remis au défaut après sa premièr
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "la redéclaration de l'ami %q#D ne peut pas avoir d'arguments de patron par défaut"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "la déclaration locale au thread de %q#D suit la déclaration non locale au thread"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "la déclaration non locale au thread de %q#D suit la déclaration locale au thread"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "redéclaration de %q#D"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "redéclaration redondante du membre statique %<constexpr%> %qD"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr "l'étiquette locale %qE est en conflit avec l'étiquette existante"
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, gcc-internal-format
 msgid "previous label"
 msgstr "étiquette précédente"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "saut à l'étiquette %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "saut à l'étiquette du « case »"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr "  comme cible possible d'un goto calculé"
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  à partir d'ici"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  sort du block structuré OpenMP"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "  croise l'initialisation de %q#D"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr "  entre dans le bloc %<try%>"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr "  entre dans le bloc %<catch%>"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  entre dans le bloc structuré OpenMP"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr "  entre dans l'instruction synchronisée ou atomique"
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, gcc-internal-format
 msgid "  enters statement expression"
 msgstr "  entre dans l'expression de l'instruction"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr "  entre dans l'instruction %<constexpr if%>"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr "  entre dans l'instruction %<consteval if%>"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, gcc-internal-format
 msgid "  does not destroy %qD"
 msgstr "  ne détruit pas %qD"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr "  ne nettoie pas l'exception traitée"
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "  passe outre l'initialisation de %q#D"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, gcc-internal-format
 msgid "%qD used without template arguments"
 msgstr "%qD utilisé sans arguments du patron"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, gcc-internal-format
 msgid "%qD is a function, not a type"
 msgstr "%qD est une fonction, pas un type"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T n'est pas une classe"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "pas de patron de classe nommé %q#T dans %q#T"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "pas de type nommé %q#T dans %q#T"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "la recherche de %qT dans %qT est ambigüe"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%> nomme %q#T qui n'est pas un patron de classe"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%> nomme %q#D qui n'est pas un type"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "les paramètres du patron ne correspondent pas au patron %qD"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "%<-faligned-new=%d%> n'est pas une puissance de deux"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr "%<--param destructive-interference-size=%d%> est plus petit que %d"
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr "%<--param destructive-interference-size=%d%> est plus petit que %<--param l1-cache-line-size=%d%>"
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr "%<--param constructive-interference-size=%d%> est plus petit que %d"
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr "%<--param constructive-interference-size=%d%> est plus grand que %<--param l1-cache-line-size=%d%>"
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q#D est invalide; une union anonyme ne peut avoir que des membres de données publiques non statiques"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr "cette flexibilité est dépréciée et sera supprimée"
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, gcc-internal-format
 msgid "anonymous struct with base classes"
 msgstr "struct anonyme avec des classes de base"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "le membre %q+#D avec un constructeur n'est pas permis dans un agrégat anonyme"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "le membre %q+#D avec un destructeur n'est pas permis dans un agrégat anonyme"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "le membre %q+#D avec un opérateur d'affectation par copie n'est pas permis dans un agrégat anonyme"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "attribut ignoré dans la déclaration de %q#T"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "l'attribut pour %q#T doit suivre le mot-clé %qs"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "types multiples dans une déclaration"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "redéclaration du type interne C++ %qT"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "%<auto%> peut seulement être spécifié pour des déclarations de variables ou de fonctions"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "nom de type manquant dans la déclaration typedef"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "le C++ ISO interdit les structures anonymes"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "%<inline%> peut seulement être spécifié pour des fonctions"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr "%<virtual%> peut seulement être spécifié pour des fonctions"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> peut seulement être spécifié à l'intérieur d'une classe"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "%<explicit%> peut seulement être spécifié pour des constructeurs"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "une classe de stockage peut seulement être spécifiée pour des objets et des fonctions"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "%<const%> peut seulement être spécifié pour des objets et des fonctions"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "%<volatile%> peut seulement être spécifié pour des objets et des fonctions"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "%<__restrict%> peut seulement être spécifié pour des objets et des fonctions"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "%<__thread%> peut seulement être spécifié pour des objets et des fonctions"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "%<typedef%> a été ignoré dans cette déclaration"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "%qs ne peut pas être utilisé pour des déclarations de types"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "attribut ignoré dans l'instanciation explicite de %q#T"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "aucun attribut peut être appliqué à une instanciation explicite"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "les attributs sont ignorés s'ils sont appliqués à la classe de type %qT en dehors de la définition"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr "attributs ignorés car ils sont appliqués au type dépendent %qT sans déclaration associée"
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD est initialisé (utilisez plutôt %qs)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "la déclaration de %q#D est %<extern%> et est initialisée"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "la définition de %q#D est marquée %<dllimport%>"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q+#D n'est pas un membre de donnée statique de %q#T"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "la déclaration du patron non membre de %qD"
 
 # le message ci-dessous est la suite de celui juste ci-dessus
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "ne correspond pas à la déclaration du patron membre ici"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "le C++ ISO ne permet pas que %<%T::%D%> soit défini comme %<%T::%D%>"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "initialisation en double de %qD"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "la déclaration de %q#D en dehors de la classe n'est pas une définition"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr "la déclaration externe avec la portée bloc %q#D ne doit pas être attachée à un module nommé"
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%qD défini %<thread_local%> dans la fonction %qs est uniquement disponible avec %<-std=c++2b%> ou %<-std=gnu++2b%>"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%qD défini %<static%> dans la fonction %qs est uniquement disponible avec %<-std=c++2b%> ou %<-std=gnu++2b%>"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "la variable %q#D a un initialiseur mais a un type incomplet"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "les éléments du tableau %q#D ont un type incomplet"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "l'agrégat %q#D a un type incomplet et ne peut être défini"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD est déclaré comme référence mais n'est pas initialisé"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "nom utilisé dans une initialisation par désignation dans le style GNU pour un tableau"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "nom %qD utilisé dans une initialisation par désignation dans le style GNU pour un tableau"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "les initialisations par désignation non triviales ne sont pas supportées"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "le champ désigné par l'indicateur C99 %qE n'est pas une expression constante entière"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "l'initialisation n'a pu déterminer la taille de %qD"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "taille de tableau manquante dans %qD"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "tableau %qD de taille zéro"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "la taille de stockage de %qD n'est pas connue"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "la taille de stockage de %qD n'est pas constante"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "désolé: les sémantiques de la variable en ligne %q#D sont erronées (vous obtiendrez de multiples copies)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "désolé: les sémantiques de la fonction statique en ligne %q#D sont erronées (vous obtiendrez de multiples copies)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr "vous pouvez contourner cela en enlevant l'initialiseur"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, gcc-internal-format
 msgid "uninitialized %<const %D%>"
 msgstr "%<const %D%> non initialisé"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "variable %qD non initialisée dans une fonction %<constexpr%>"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "variable %qD non initialisée dans un contexte %<constexpr%>"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "%q#T n'a pas de constructeur par défaut fourni par l'utilisateur"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr "le constructeur n'est pas défini par l'utilisateur car le constructeur par défaut est explicitement demandé dans le corps de la classe"
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr "et le constructeur implicitement défini n'initialise pas %q#D"
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "type %qT invalide pour initialiser un vecteur de type %qT"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "l'initialisation de %qT doit être entre accolades"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "%<[%E] =%> utilisé dans une initialisation par désignation dans le style GNU pour la classe %qT"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "la requête pour le membre %qD est ambiguë"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT n'a pas de membre de données non statique nommé %qD"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD n'est pas un membre direct de %qT"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "initialisation invalide pour %q#D"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr "le champ désigné par l'indicateur C99 %qE est hors de l'initialisation de l'agrégat"
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "trop d'éléments d'initialisation pour %qT"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "accolades autour de l'initialiseur scalaire pour le type %qT"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, gcc-internal-format
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "trop d'accolades autour de l'initialiseur scalaire pour le type %qT"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "accolades manquantes autour de l'initialisation pour %qT"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "la liaison structurée à le type incomplet %qT"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "les éléments du tableau %q#T ont un type incomplet"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "littéral composé de taille variable"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "%q#D a un type incomplet"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "l'objet scalaire %qD requiert un élément dans l'initialisation"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "en C++98, %qD doit être initialisé par un constructeur et non par %<{...}%>"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "le tableau %qD est initialisé par la chaîne littérale entre parenthèses %qE"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "initialisation invalide pour un membre statique avec constructeur"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "l'initialisation non constante dans la classe est invalide pour le membre statique %qD"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "l'initialisation non constante dans la classe est invalide pour le membre statique pas en ligne %qD"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(une initialisation en dehors de la classe est requise)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "la référence %qD est initialisée avec elle-même"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr "n'a pu trouver la déclaration du variant"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr "%<declare variant%> sur le constructeur %qD"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr "%<declare variant%> sur le destructeur %qD"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr "%<declare variant%> sur %qD par défaut"
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr "%<declare variant%> sur %qD supprimé"
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr "%<declare variant%> sur %qD virtuel"
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "affectation (pas une initialisation) dans la déclaration"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "le C++17 ISO n'autorise pas le spécificateur de classe de stockage %<register%>"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr "spécificateur de classe de stockage %<register%> utilisé"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "la déclaration de %q#D n'est pas initialisée"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "l'initialisation pour %<decltype(auto) %D%> a un type fonction (avez-vous oublié les %<()%> ?)"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, gcc-internal-format
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "le type déduit %qT pour %qD est incomplet"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr "le concept de variable n'a pas d'initialisation"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "masque la déclaration précédente du type de %q#D"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "%<constinit%> peut uniquement être appliqué à une variable avec une durée de stockage statique ou au niveau du thread"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "la fonction %q#D est initialisée comme une variable"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "impossible de décomposer le type de la classe %qT car il a une structure anonyme comme membre"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr "impossible de décomposer le type de la classe %qT car il a une union anonyme comme membre"
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "impossible de décomposer le membre inaccessible %qD de %qT"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr "impossible de décomposer le type de classe %qT: lui et sa classe de base %qT ont des membres de données non statiques"
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr "impossible de décomposer le type de classe %qT: ses classes de base %qT et %qT ont des membres de données non statiques"
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "la liaison structurée fait référence au type incomplet %qT"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "impossible de décomposer le tableau de longueur variable %qT"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] "%u nom fourni pour la liaison structurée"
 msgstr[1] "%u noms fournis pour la liaison structurée"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] "seulement %u nom fourni pour la liaison structurée"
 msgstr[1] "seulement %u noms fournis pour la liaison structurée"
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] "alors que %qT se décompose en %wu élément"
 msgstr[1] "alors que %qT se décompose en %wu éléments"
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr "impossible de décomposer le vecteur de longueur variable %qT"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "%<std::tuple_size<%T>::value%> n'est pas une expression constante entière"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr "alors que %qT se décompose en %E éléments"
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr "%<std::tuple_element<%u, %T>::type%> est %<void%>"
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr "dans l'initialisation de la variable de liaison structurée %qD"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "impossible de décomposer le type union %qT"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "impossible de décomposer le type %qT qui n'est ni une classe ni un tableau"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr "impossible de décomposer le type de fermeture lambda %qT"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "la liaison structurée fait référence au type de classe incomplet %qT"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "impossible de décomposer le type de classe %qT sans membre de donnée non statique"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr "la variable non locale %qD déclarée %<__thread%> a besoin d'une initialisation dynamique"
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr "la variable non locale %qD déclarée %<__thread%> a un destructeur non trivial"
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr "%<thread_local%> en C++11 permet l'initialisation et la destruction dynamique"
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "l'initialisation n'a pu déterminer la taille de %qT"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "taille du tableau manquante dans %qT"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "tableau %qT de taille zéro"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "le destructeur pour la classe étrangère %qT ne peut pas être un membre"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "le constructeur pour la classe étrangère %qT ne peut pas être un membre"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD est déclaré comme une variable %<virtual%>"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "les spécificateurs de fonction %<const%> et %<volatile%> sur %qD sont invalides dans la déclaration de variable"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD déclaré comme un paramètre %<virtual%>"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD déclaré comme un paramètre %<inline%>"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "les spécificateurs de fonction %<const%> et %<volatile%> sur %qD sont invalides dans la déclaration de paramètre"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD déclaré comme un type %<virtual%>"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD déclaré comme un type %<inline%>"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "les spécificateurs de fonction %<const%> et %<volatile%> sur %qD sont invalides dans la déclaration de type"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD déclaré comme un champ %<virtual%>"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD déclaré comme un champ %<inline%>"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "les spécificateurs de fonction %<const%> et %<volatile%> sur %qD sont invalides dans la déclaration de champ"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D déclaré comme un ami"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D déclaré avec une spécification d'exception"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "la définition de %qD n'est pas dans l'espace de noms incluant %qT"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "la fonction membre statique %q#D est déclarée avec des qualificatifs de type"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "le concept %q#D est déclaré avec des paramètres de fonction"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr "le concept %q#D est déclaré avec un type de retour déduit"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "le concept %q#D a le type de retour %qT qui n'est pas %<bool%>"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "le concept %qD n'a pas de définition"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, gcc-internal-format
 msgid "a function concept cannot be constrained"
 msgstr "un concept de fonction ne peut pas être contraint"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, gcc-internal-format
 msgid "constraints on a non-templated function"
 msgstr "contraintes sur une fonction sans patron"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, gcc-internal-format
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "la déclaration amie hors patron et contrainte doit être une définition"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr "le patron de la fonction amie avec des contraintes qui dépendent de paramètres extérieures au patron doit être une définition"
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "définition de la spécialisation explicite %qD dans la déclaration amie"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "utilisation invalide du template-id %qD dans la déclaration du patron primaire"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "les arguments par défaut ne sont pas permis dans la déclaration de la spécialisation du patron ami %qD"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "%<inline%> n'est pas permis dans la déclaration de la spécialisation du patron ami %qD"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "la déclaration amie de %qD spécifie des arguments par défaut et n%'est pas une définition"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "ne peut déclarer %<::main%> comme étant un patron"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "ne peut déclarer %<::main%> comme étant à mettre en ligne"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "ne peut déclarer %<::main%> comme étant %qs"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "ne peut déclarer %<::main%> comme étant static"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "la fonction non membre %qD ne peut pas avoir de qualificatif CV"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "la fonction membre statique %qD ne peut pas avoir de qualificatif CV"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "la fonction membre objet explicite %qD ne peut pas avoir de qualificatif CV"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "la fonction non membre %qD ne peut pas avoir de qualificatif de référence"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "la fonction membre statique %qD ne peut pas avoir de qualificatif de référence"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "la fonction membre objet explicite %qD ne peut pas avoir de qualificatif de référence"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, gcc-internal-format
 msgid "explicit object parameter declared here"
 msgstr "le paramètre objet explicite est déclaré ici"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "le guide de déduction %qD doit être déclaré dans la même portée que %qT"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "le guide de déduction %qD doit avoir le même accès que %qT"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr "le guide de déduction %qD ne peut pas avoir un corps de fonction"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr "opérateur littéral avec une classe de liaison C"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "%qD a une liste d'arguments invalide"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr "le suffixe entier %qs est masqué par l'implémentation"
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr "le suffixe en virgule flottante %qs est masqué par l'implémentation"
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr "les suffixes d'opérateurs littéraux qui ne sont pas précédés par %<_%> sont réservés pour une standardisation future"
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%qD doit être une fonction non membre"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> doit retourner %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "définition de %qD déclaré implicitement"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "définition de %qD explicitement par défaut"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "%q#D explicitement par défaut ici"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "pas de fonction membre %q#D déclarée dans la classe %qT"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "ne peut déclarer %<::main%> comme variable globale"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "une variable qui n'est pas un patron ne peut pas avoir %<concept%>"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr "le concept doit être défini au niveau de l'espace de noms"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr "un concept doit avoir le type %<bool%>"
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, gcc-internal-format
 msgid "a variable concept cannot be constrained"
 msgstr "un concept variable ne peut pas être contraint"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "initialisation intra-classe du membre de donnée statique %q#D d'un type incomplet"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "%<constexpr%> est requis pour l'initialisation intra-classe du membre de donnée statique %q#D d'un type non entier"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "initialisation intra-classe du membre de donnée statique %q#D du type non littéral"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "initialisation intra-classe invalide du membre de donnée statique du type non entier %qT"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "le C++ ISO interdit l'initialisation intra-classe du membre statique non constant %qD"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "le C++ ISO interdit l'initialisation du membre constant %qD du type non entier %qT"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "la taille du tableau %qD a le type non entier %qT"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "la taille du tableau a le type non entier %qT"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "la taille du tableau %qD n'est pas une expression constante de type entier"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "la taille du tableau n'est pas une expression constante entière"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "le C++ ISO interdit le tableau de taille zéro %qD"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "le C++ ISO interdit le tableau de taille zéro"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "le C++ ISO interdit le tableau de taille variable %qD"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "le C++ ISO interdit le tableau de taille variable"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "le tableau de taille variable %qD est utilisé"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "le tableau de taille variable est utilisé"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "débordement dans la dimension du tableau"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%qD est déclaré comme tableau de type à remplacer dans un patron %qT"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, gcc-internal-format
 msgid "creating array of template placeholder type %qT"
 msgstr "création d'un tableau de type à remplacer dans un patron %qT"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "déclaration de %qD comme un tableau de « void »"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr "création d'un tableau « void »"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "déclaration de %qD comme un tableau de fonctions"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr "création d'un tableau de fonctions"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "déclaration de %qD comme un tableau de références"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr "création d'un tableau de références"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "déclaration de %qD comme un tableau de fonctions membres"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr "création d'un tableau de fonctions membres"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "la déclaration de %qD comme tableau multidimensionnel doit avoir des bornes pour chaque dimension excepté la première"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "le tableau multidimensionnel doit avoir des bornes pour chaque dimension excepté la première"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, gcc-internal-format
 msgid "variable-length array of %<auto%>"
 msgstr "tableau de taille variable de %<auto%>"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "la spécification d'un type retourné pour un constructeur est invalide"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "les qualificatifs ne sont pas permis dans la déclaration d'un constructeur"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "la spécification d'un type retourné pour un destructeur est invalide"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "les qualificatifs ne sont pas permis dans la déclaration d'un destructeur"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "type de retour spécifié pour %<operator %T%>"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "les qualificatifs ne sont pas permis dans la déclaration de %<operator %T%>"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr "type de retour spécifié pour le guide de déduction"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "les qualificatifs ne sont pas permis dans la déclaration du guide de déduction"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "paramètre de patron %qT, qui est lui-même un patron, dans la déclaration du guide de déduction"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "%<decl-specifier%> dans la déclaration du guide de déduction"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "variable non nommée ou champ déclaré void"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "variable ou champ déclaré void"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "spécificateur %<inline%> invalide pour la variable %qD déclarée au niveau du bloc"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "les variables « inline » sont uniquement disponibles avec %<-std=c++17%> ou %<-std=gnu++17%>"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr "%qT en tant que type plutôt qu'un simple %<decltype(auto)%>"
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, gcc-internal-format
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "%<decltype(auto)%> ne peut pas être qualifié avec CV"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "utilisation invalide du nom qualifié %<::%D%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "utilisation invalide du nom qualifié %<%T::%D%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "utilisation invalide du nom qualifié %<%D::%D%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, gcc-internal-format
 msgid "%q#T is not a class or namespace"
 msgstr "%q#T n'est pas une classe ou un espace de noms"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, gcc-internal-format
 msgid "declaration of %qE as non-function"
 msgstr "déclaration de %qE comme non fonction"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, gcc-internal-format
 msgid "declaration of %qE as non-member"
 msgstr "déclaration de %qE comme non membre"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "declarator-id manquant; utilisation du mot réservé %qD"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "la définition de fonction ne déclare aucun paramètre"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "déclaration de %qD comme non fonction"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "déclaration de %qD comme %<typedef%>"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "déclaration de %qD comme paramètre"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr "%qs et %qs spécifiés tous les deux"
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%qs ne peut pas apparaître dans une déclaration typedef"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr "au plus un seul spécificateur %<constinit%> ou %<constexpr%> peut être utilisé"
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "au moins deux types de données dans la déclaration de %qs"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "le C++ ISO n'accepte pas qu'un simple %<complex%> signifie %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "le C++ ISO interdit la déclaration de %qs sans type"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "%<__int%d%> n'est pas supporté par la cible"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "le C++ ISO ne supporte pas %<__int%d%> pour %qs"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> et %<unsigned%> spécifiés ensemble"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> et %<short%> spécifiés ensemble"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr "%qs spécifié avec %qT"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr "%qs spécifié avec le nom typedef %qD"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "%qs spécifié avec %<decltype%>"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr "%qs spécifié avec %<typeof%>"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "« complex » invalide pour %qs"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr "liste d'arguments de patron manquante après %qE ; pour la déduction, le type à remplacer doit être suivi d'un simple declarator-id"
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "le membre %qD ne peut pas être déclaré à la fois %<virtual%> et %<static%>"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "le membre %qD peut être déclaré à la fois %<virtual%> et %<constexpr%> uniquement avec %<-std=c++20%> ou %<-std=gnu++20%>"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "la déclaration typedef est invalide dans la déclaration du paramètre"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "classe de stockage spécifiée pour le paramètre %qs du patron"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "classe de stockage spécifiée pour le paramètre %qs"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr "un paramètre ne peut pas être déclaré %qs"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%> en dehors de la déclaration de classe"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "la déclaration d'une liaison structurée ne peut pas être %qs"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "les déclarations de liaisons structurées peuvent être %qs uniquement en %<-std=c++20%> ou %<-std=gnu++20%>"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "la liaison structurée qualifiée avec %<volatile%> est dépréciée"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr "une déclaration de liaison structurée ne peut pas avoir le %<auto%> du C++98"
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "une déclaration de liaison structurée ne peut pas avoir le type %qT"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr "le type doit être un %<auto%> qualifié avec CV ou une référence à un %<auto%> qualifié avec CV"
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr "une déclaration de liaison structurée ne peut pas avoir la contrainte %<auto%> de type %qT"
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "classes de stockage multiples dans la déclaration de %qs"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "classe de stockage spécifiée pour %qs"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "fonction imbriquée %qs déclarée %<extern%>"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "la déclaration de %qs hors de toute fonction spécifie %<auto%>"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "%qs dans le champ de la fonction est implicitement déclaré auto et déclaré %<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "spécificateurs de classe de stockage invalides dans les déclarations de fonctions amies"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, gcc-internal-format
 msgid "attribute ignored"
 msgstr "attribut ignoré"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr "un attribut qui appartient à un spécificateur de type est ignoré"
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "parenthèses inutiles dans la déclaration de %qs"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, gcc-internal-format
 msgid "remove parentheses"
 msgstr "retirez les parenthèses"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "la fonction membre objet explicite est uniquement disponible avec %<-std=c++23%> ou %<-std=gnu++23%>"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr "un type de fonction ne peut pas avoir de paramètre objet explicite"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr "un pointeur vers un type de fonction ne peut pas avoir de paramètre d'objet explicite"
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "un pointer vers un type de fonction membre ne peut pas avoir de paramètre objet explicite"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr "le type d'un pointeur vers une fonction membre d'objet explicite est un pointeur régulier vers un type de fonction"
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr "le type d'une fonction membre d'un objet explicite est un type de fonction régulier"
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr "seul le premier paramètre d'une fonction membre peut être déclaré comme un paramètre objet explicite"
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr "le paramètre objet explicite valide est déclaré ici"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr "clause « requires » sur le type de retour"
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr "la fonction %qs utilise le spécificateur de type %<auto%> sans type de retour à la fin"
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "le type de retour déduit est uniquement disponible avec %<-std=c++14%> ou %<-std=gnu++14%>"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr "une fonction virtuelle ne peut pas avoir un type de retour déduit"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr "la fonction %qs avec un type de retour à la fin a %qT comme étant son type au lieu d'un simple %<auto%>"
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr "la fonction %qs avec un type de retour à la fin a %<decltype(auto)%> comme étant son type au lieu d'un simple %<auto%>"
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "utilisation invalide de %<decltype(auto)%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr "type de classe %qD déduit dans le type de retour de la fonction"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr "le guide de déduction pour %qT doit avoir un type de retour à la fin"
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr "le type de retour %qT à la fin du guide de déduction n'est pas une spécialisation de %qT"
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "le type de retour à la fin est uniquement disponible avec %<-std=c++11%> ou %<-std=gnu++11%>"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr "la fonction %qs avec le type de retour à la fin n'est pas déclarée avec le spécificateur de type %<auto%>"
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr "une fonction de conversion ne peut pas avoir de type de retour à la fin"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr "le type de retour qualifié avec %<volatile%> est déprécié"
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs déclaré comme une fonction retournant une fonction"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs déclaré comme une fonction retournant un tableau"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "le type de retour %<constinit%> pour une fonction n'est pas permis"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "le destructeur ne peut être une fonction membre statique"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "le constructeur ne peut être une fonction membre statique"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "les destructeurs ne peuvent pas être qualifiés avec CV"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "les constructeurs ne peuvent pas être qualifiés avec CV"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr "les destructeurs ne peuvent pas être qualifiés comme des références"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr "les constructeurs ne peuvent pas être qualifiés comme des références"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "les constructeurs ne peuvent pas être déclarés %<virtual%>"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "les fonctions virtuelles ne peuvent pas être amies"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "la déclaration amie n'est pas dans la définition de la classe"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "ne peut définir la fonction amie %qs dans une définition de classe locale"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr "la définition de la fonction amie %qs ne peut pas avoir son nom qualifié avec %<::%>"
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr "la définition de la fonction amie %qs ne pas avoir son nom qualifié avec %<%D::%>"
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "la fonction non membre ne peut pas avoir de paramètre objet explicite"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "une fonction membre d'objet explicite ne peut pas être %<virtual%>"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr "une fonction membre d'objet explicite ne peut pas être %<static%>"
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD ne peut pas être une fonction membre d'un objet explicite"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "destructeurs ne peuvent pas avoir de paramètre"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "ne peut déclarer un pointeur vers %q#T"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "ne peut déclarer une référence vers %q#T"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "ne peut déclarer un pointeur vers le membre %q#T"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "ne peut déclarer une référence vers le type de fonction qualifié %qT"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "ne peut déclarer un pointeur vers le type de fonction qualifié %qT"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr "ne peut déclarer une référence vers %q#T qui n'est pas un typedef ou un argument vers un type d'un patron"
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "template-id %qD utilisé comme un déclarateur"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "les fonctions membres sont implicitement amies de leur classe"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "qualification %<%T::%> additionnelle sur le membre %qs"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "ne peut définir la fonction membre %<%T::%s%> à l'intérieur de %qT"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "ne peut déclarer la fonction membre %<%T::%s%> à l'intérieur de %qT"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "ne peut déclarer le membre %<%T::%s%> à l'intérieur de %qT"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "le non paramètre %qs ne peut pas être un paquet de paramètres"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "les membres de données ne peuvent pas avoir le type %qT modifié par une variable"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "le paramètre ne peut pas avoir le type %qT modifié par une variable"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "%<explicit%> en dehors de la déclaration de la classe"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr "%<explicit%> dans une déclaration amie"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "seuls les déclarations de constructeurs et les opérateurs de conversion peuvent être %<explicit%>"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "le non membre %qs ne peut pas être déclaré %<mutable%>"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "le membre non objet %qs ne peut pas être déclaré %<mutable%>"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "la fonction %qs ne peut pas être déclarée %<mutable%>"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "%<static%> %qs ne peut pas être déclaré %<mutable%>"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "%<const%> %qs ne peut pas être déclaré %<mutable%>"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "la référence %qs ne peut pas être déclarée %<mutable%>"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr "typedef ne peut pas être une définition de fonction"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr "typedef ne peut pas être une définition de fonction membre"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<auto%> n'est pas autorisé dans une déclaration de synonyme"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "typedef déclaré %<auto%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr "clause « requires » sur un typedef"
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "le nom du typedef ne peut pas être un nom de spécificateur imbriqué"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "le C++ ISO interdit le type imbriqué %qD avec le même nom que la classe englobante"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "%<inline%> spécifié pour la déclaration d'une classe amie"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "les paramètres du patron ne peuvent pas être amis"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "une déclaration amie requiert le mot-clé « class », c-à-d. %<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "une déclaration amie requiert le mot-clé « class », c-à-d %<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "tentative de rendre amie la classe %qT au niveau de la portée globale"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "qualificatifs invalides sur un type de fonction non membre"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr "clause « requires » sur type-id"
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "déclaration abstraite %qT utilisée comme déclaration"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "clause « requires » dans la déclaration du type non fonction %qT"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "ne peut utiliser %<::%> dans la déclaration d'un paramètre"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "ne peut déclarer un paramètre avec %<decltype(auto)%>"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr "liste d'arguments de patron manquante après %qE ; type à remplacer pour le patron non permis dans le paramètre"
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr "ou utilisez %<auto%> pour le patron de fonction abrégé"
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "le paramètre %<auto%> n'est pas permis dans ce contexte"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "paramètre déclaré %<auto%>"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "utilisation invalide du nom de patron %qE sans liste d'arguments"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "membre de donnée non statique déclaré avec %qT comme type à remplacer"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "le C++ ISO interdit le membre tableau flexible %qs"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array members"
 msgstr "le C++ ISO interdit les tableaux flexibles comme membres"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "utilisation invalide de %<::%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "déclaration de la fonction %qD dans un contexte invalide"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "fonction %qD déclarée %<virtual%> à l'intérieur d'une union"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD ne peut pas être déclaré %<virtual%> puisqu'il est toujours statique"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "nom qualifié attendu dans la déclaration amie du destructeur %qD"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "déclaration de %qD comme membre de %qT"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr "un destructeur ne peut pas être %qs"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "nom qualifié attendu dans la déclaration amie pour le constructeur %qD"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr "un constructeur ne peut pas être un %<concept%>"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "un concept ne peut être une fonction membre"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, gcc-internal-format
 msgid "%qD cannot be %qs"
 msgstr "%qD ne peut pas être %qs"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr "spécialisation du patron de variable %qD déclaré comme une fonction"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, gcc-internal-format
 msgid "variable template declared here"
 msgstr "le patron de variable a été déclaré ici"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "le champ %qD a le type incomplet %qT"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "le nom %qT a un type incomplet"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE n'est ni une fonction ni une fonction membre; il ne peut pas être déclaré ami"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "le champ sans nom n'est ni une fonction ni une fonction membre; il ne peut pas être déclaré ami"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr "un attribut qui appartient à une déclaration amie qui n'est pas une définition est ignorée"
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr "membre de donnée statique %qE déclaré %qs"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "le membre statique %<constexpr%> %qD doit avoir une initialisation"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr "le membre de donnée non statique %qE est déclaré %qs"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "la classe de stockage %<auto%> est invalide pour la fonction %qs"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "la classe de stockage %<register%> est invalide pour la fonction %qs"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "la classe de stockage %<__thread%> est invalide pour la fonction %qs"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "la classe de stockage %<thread_local%> est invalide pour la fonction %qs"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "le spécificateur %<constinit%> est invalide pour la fonction %qs"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "le spécificateur de type « virt-specifier » sur %qs n'est pas permis en dehors d'une définition de classe"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "le spécificateur %<static%> est invalide pour la fonction %qs déclarée en dehors de la portée globale"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "le spécificateur %<inline%> est invalide pour la fonction %qs déclarée en dehors de la portée globale"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "fonction non classe virtuelle %qs"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "%qs défini en dehors d'un contexte de classe"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "%qs déclaré en dehors d'un contexte de classe"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "ne peut déclarer la fonction membre %qD comme ayant une classe de liaison statique"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "ne peut déclarer une fonction statique à l'intérieur d'une autre fonction"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "%<static%> ne peut pas être utilisé lors de la définition (contrairement à la déclaration) d'un membre de donnée statique"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "membre statique %qD déclaré %<register%>"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "ne peut explicitement déclarer le membre %q#D comme ayant une classe de liaison externe"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "la déclaration de la variable %<constexpr%> %qD n'est pas une définition"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "une variable ne peut pas être déclarée %<consteval%>"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs initialisé et déclaré %<extern%>"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs a, à la fois, %<extern%> et une initialisation"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "l'argument par défaut %qE utilise %qD"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "l'argument par défaut %qE utilise la variable locale %qD"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "utilisation invalide du type %qT qualifié CV dans la déclaration du paramètre"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "utilisation invalide du type %<void%> dans la déclaration du paramètre"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "le paramètre qualifié avec %<volatile%> est obsolète"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "le paramètre %qD est incorrectement déclaré comme type de méthode"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "le paramètre %qD inclut un pointeur vers un tableau %qT dont les bornes sont inconnues"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "le paramètre %qD inclut une référence vers un tableau %qT dont les bornes sont inconnues"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "constructeur invalide; vous vouliez probablement utiliser %<%T (const %T&)%>"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD ne peut pas être déclaré dans un espace de noms"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD ne peut pas être déclaré statique"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, gcc-internal-format
 msgid "%qD must be a non-static member function"
 msgstr "%qD doit être une fonction membre non statique"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "%qD doit être une fonction membre"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "%qD peut être une fonction membre statique uniquement avec %<-std=c++23%> ou %<-std=gnu++23%>"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD doit être soit une fonction membre non statique ou une fonction non membre"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD doit avoir un argument de type classe ou énuméré"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "le C++ ISO interdit la surcharge de %<operator ?:%>"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD ne doit pas avoir un nombre variables d'arguments"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr "%qD doit avoir zéro ou un argument"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr "%qD doit avoir un ou deux arguments"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "%qD suffixé doit avoir %<int%> comme argument"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "%qD suffixé doit avoir %<int%> comme second argument"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, gcc-internal-format
 msgid "%qD must have no arguments"
 msgstr "%qD ne doit avoir aucun argument"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr "%qD doit avoir exactement un argument"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr "%qD doit avoir exactement deux arguments"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD ne peut avoir d'arguments par défaut"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "la conversion de %qT vers %<void%> n'utilisera jamais un opérateur de conversion de type"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "la conversion de %qT en une référence vers le même type n'utilisera jamais un opérateur de conversion de type"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "la conversion de %qT vers le même type n'utilisera jamais un opérateur de conversion de type"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "la conversion de %qT en une référence vers une classe de base %qT n'utilisera jamais un opérateur de conversion de type"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "la conversion de %qT vers une classe de base %qT n'utilisera jamais un opérateur de conversion de type"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "%qD défini par l'usager évalue toujours les 2 arguments"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "%qD préfixé devrait retourner %qT"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "%qD suffixé devrait retourner %qT"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD devrait retourner par valeur"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "utilisation du paramètre du type de patron %qT après %qs"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "utilisation de la spécialisation du patron d'alias %qT après %qs"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "utilisation du nom de typedef %qD après %qs"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "%qD a une déclaration précédente ici"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "%qT référé en tant que %qs"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "%qT a une déclaration précédente ici"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "il est fait référence à %qT comme un enum"
@@ -57526,116 +57541,100 @@ msgstr "il est fait référence à %qT comme un enum"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "argument du patron requis pour %<%s %T%>"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "la référence à %qD est ambiguë"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, gcc-internal-format
 msgid "class template %qD redeclared as non-template"
 msgstr "le patron de classe %qD est redéclaré comme un non patron"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD a le même nom que la classe dans laquelle il est déclaré"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT n'est pas un patron"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr "vous voulez peut-être ajouter %<%T::%> explicitement"
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "utilisation de l'enum %q#D sans déclaration précédente"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "redéclaration de %qT sous une forme qui n'est pas un patron"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, gcc-internal-format
-msgid "cannot declare %qD in a different module"
-msgstr "ne peut déclarer %qD dans un module différent"
-
-# la phrase fait référence à une variable ou une fonction (cf les deux messages ci-dessus) d'où le féminin
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "précédemment déclarée ici"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "l'union dérivée %qT est invalide"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr "%qT est défini avec des bases directes multiples"
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr "%qT est défini avec des bases virtuelles directes"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "le type de base %qT n'est pas un « struct » ou une « class »"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "type récursif %qT non défini"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "le type de base dupliqué %qT est invalide"
 
-#: cp/decl.cc:16984
-#, gcc-internal-format
-msgid "cannot declare %qD in different module"
-msgstr "ne peut déclarer %qD dans un module différent"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr "non concordance entre un enum simple et un enum fortement typé pour %q#T"
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr "définition précédente ici"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr "désaccord dans le type sous-jacent de l'enum %q#T"
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr "types sous-jacents différents dans l'enum %q#T"
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr "le type sous-jacent %qT de %qT doit être un type entier"
@@ -57644,83 +57643,83 @@ msgstr "le type sous-jacent %qT de %qT doit être un type entier"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "aucun type entier ne peut représenter toutes les valeurs de l'énumération pour %qT"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "les valeurs énumérées de %qD doivent être de type entier ou une énumération simple (donc, pas fortement typée)"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "la valeur de l'énumération pour %qD n'est pas une constante entière"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "la valeur incrémentée de l'énumération est trop grande pour %<unsigned long%>"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "la valeur incrémentée de l'énumération est trop grande pour %<long%>"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "débordement dans les valeurs de l'énumération à %qD"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "la valeur de l'énumération %qE est en dehors de la plage du type sous-jacent %qT"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "définition multiple de %q#T"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "le type retourné %q#T est incomplet"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%> devrait retourner une référence à %<*this%>"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "« return » manquant dans une fonction retournant %qT"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "seul un type de retour %<auto%> évident peut être déduit en %<void%>"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, gcc-internal-format
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "« return » manquant dans une fonction %<constexpr%> devant retourner une valeur"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD est déjà défini dans la classe %qT"
 
 # le %qs est un nom de région non traduit tel que « parallel », « task », « teams ».
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, gcc-internal-format
 msgid "using %qs"
 msgstr "en utilisant %qs"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr "utilisation de %qD avant la déduction de %<auto%>"
@@ -57775,7 +57774,7 @@ msgstr "ne peut détruire une fonction.  Seuls les pointeurs vers des objets son
 msgid "deleting %qT is undefined"
 msgstr "la destruction de %qT est non définie"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "déclaration du patron de %q#D"
@@ -57785,7 +57784,7 @@ msgstr "déclaration du patron de %q#D"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "la liste des paramètres du patron fournie ne correspond pas aux paramètres du patron de %qD"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "le destructeur %qD est déclaré en tant que patron membre"
@@ -57969,64 +57968,64 @@ msgstr "la destruction de %<operator delete%> doit être une fonction de désall
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> prend le type %qT comme premier paramètre"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr "%qT a un champ %q#D dont le type n'a pas de classe de liaison"
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr "%qT a un champ %qD dont le type dépend du type %qT qui n'a pas de classe de liaison"
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%qT a un champ %q#D dont le type a une classe de liaison interne"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr "%qT a un champ %q#D dont le type utilise l'espace de noms anonyme"
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qT est déclaré avec une plus grande visibilité que le type de son champs %qD"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr "%qT a la base %qT qui n'a pas de classe de liaison"
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr "%qT a la base %qT qui dépend du type %qT qui n'a pas de classe de liaison"
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr "%qT a la base %qT qui a une classe de liaison interne"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr "%qT a la base %qT qui utilise l'espace de noms anonyme"
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT est déclaré avec une plus grande visibilité que sa base %qT"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%q#D, déclaré avec un type non nommé, est utilisé mais jamais défini"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr "%q#D, déclaré avec un type non nommé, est utilisé mais jamais défini"
@@ -58035,104 +58034,104 @@ msgstr "%q#D, déclaré avec un type non nommé, est utilisé mais jamais défin
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "un type non nommé sans classe de liaison est utilisé pour déclarer la variable %q#D avec une classe de liaison"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "un type non nommé sans classe de liaison est utilisé pour déclarer la fonction %q#D avec une classe de liaison"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q#D ne réfère pas au type non qualifié, aussi n'est-il pas utilisé pour la liaison"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q#D, déclaré avec le type local %qT, est utilisé mais jamais défini"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%q#D, déclaré avec le type local %qT, est utilisé mais pas défini ici"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr "le type %qT sans classe de liaison est utilisé pour déclarer la variable %q#D avec une classe de liaison"
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "le type %qT sans classe de liaison est utilisé pour déclarer la fonction %q#D avec une classe de liaison"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "la décoration de %q#D qui abouti à %qE entre en conflit avec une décoration précédente"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr "décoration précédente de %q#D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr "un %<-fabi-version=%> plus récent (ou =0) évite cette erreur avec un changement de décoration"
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr "le programme devrait aussi définir %qD"
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr "la fonction en ligne %qD est utilisée mais n'a jamais été définie"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "argument par défaut manquant pour le paramètre %P de %q#D"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr "...suivant le paramètre %P qui a un argument par défaut"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr "%qD déclaré implicitement est déprécié"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr "car %qT a un %qD fourni par l'utilisateur"
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "conversion d'une fonction lambda qui utilise %<...%> en pointeur de fonction"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "utilisation de la fonction supprimée %qD"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "utilisation de la fonction %qD avec des contraintes non satisfaites"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr "utilisation du paquet de paramètres intégré %qD en dehors d'un patron"
@@ -58237,7 +58236,7 @@ msgstr "la référence à %<%T::%D%> est ambiguë"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qD n'est pas un membre de %qT; vouliez-vous employer %qs ?"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD n'est pas un membre de %qT"
@@ -58247,7 +58246,7 @@ msgstr "%qD n'est pas un membre de %qT"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qD n'est pas un membre de %qD; vouliez-vous employer %qs ?"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD n'est pas un membre de %qD"
@@ -58272,47 +58271,47 @@ msgstr "le traitement des exceptions est désactivé, utilisez %<-fexceptions%>
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "exception générée sur un NULL avec le type entier au lieu du type pointeur"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  dans l'expression de l'exception générée"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "impossible de déclarer le paramètre de %<catch%> comme étant une r-valeur faisant référence au type %qT"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "impossible de générer une exception de type %qT car il implique des types de taille variable"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "impossible d'intercepter une exception de type %qT car il implique des types de taille variable"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "une exception du type %qT sera interceptée par un gestionnaire précédent"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, gcc-internal-format
 msgid "for type %qT"
 msgstr "pour le type %qT"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "le gestionnaire %<...%> doit être le dernier gestionnaire de son bloc « try »"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr "l'expression « noexcept » est évaluée à %<false%> à cause de l'appel à %qD"
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr "mais %qD ne génère pas d'exception; peut-être devrait-il être déclaré %<noexcept%>"
@@ -58579,12 +58578,12 @@ msgstr "le type %qT n'est pas une base directe ou virtuelle de %qT"
 msgid "type %qT is not a direct base of %qT"
 msgstr "le type %qT n'est pas une base directe de %qT"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "le tableau doit être initialisé avec une initialisation entre accolades"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT n'est pas un type de classe"
@@ -58599,12 +58598,12 @@ msgstr "le type incomplet %qT n'a pas de membre %qD"
 msgid "invalid pointer to bit-field %qD"
 msgstr "pointeur invalide vers le champ de bits %qD"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "utilisation invalide de la fonction membre non statique %qD"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "utilisation invalide du membre de donnée non statique %qD"
@@ -58799,52 +58798,52 @@ msgstr "la destruction d'un objet de la classe abstraite %qT qui a un destructeu
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr "la destruction d'un objet de la classe polymorphique %qT qui a un destructeur non virtuel pourrait produire un comportement indéfini"
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "le type passé au delete vectoriel n'est ni un pointeur ni un type tableau"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr "le tableau avec une limite déterminée à l'exécution ne peut pas être capturée par copie, uniquement par référence"
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr "capture du type modifié par une variable %qT qui n'est pas un tableau N3639 avec une limite déterminée à l'exécution"
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr "car le type %qT des éléments du tableau a une taille variable"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "ne peut capturer %qE par référence"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "capture par copie du type incomplet %qT"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr "tentative de capturer %qD dans une instanciation d'une lambda générique"
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr "la capture implicite de %qE via %<[=]%> est dépréciée en C++20"
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr "ajoutez la capture %<this%> ou %<*this%> explicitement"
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "%<this%> n'a pas été capturé pour cette fonction lambda"
@@ -59218,224 +59217,279 @@ msgstr "format d'encapsulation ou type inattendu"
 msgid "encapsulation is malformed"
 msgstr "l'encapsulation est mal composée"
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, gcc-internal-format
 msgid "conflicting global module declaration %#qD"
 msgstr "déclaration de module global %#qD conflictuelle"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, gcc-internal-format
 msgid "existing declaration %#qD"
 msgstr "déclaration %#qD existante"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr "la définition de %qD ne concorde pas"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, gcc-internal-format
 msgid "existing definition %qD"
 msgstr "définition %qD existante"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, gcc-internal-format
 msgid "... this enumerator %qD"
 msgstr "... cet énumérateur %qD"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "l'énumérateur %qD ne concorde pas avec ..."
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr "énumérateurs supplémentaires commençant par %qD"
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr "la plage d'énumération diffère"
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr "%q#D fait référence à l'entité avec liaison interne %q#D"
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr "chargement tardif à la demande récursif"
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr "impossible d'importer le module dans sa propre portée"
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, gcc-internal-format
 msgid "module %qs declared here"
 msgstr "le module %qs est déclaré ici"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr "l'import indirect %qs n'est pas déjà chargé"
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr "l'import %qs a un CRC non concordant"
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr "impossible de représenter les emplacements sources des imports supplémentaires"
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr "pas d'export de %<#define %E%> car il est un mot-clé"
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr "la définition de macro de %qE est corrompue"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr "définition de macro %qE importée de manière inconsistante"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr "%<#undef %E%>"
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr "%<#define %s%>"
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr "le fichier du module compilé est %qs"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, gcc-internal-format, gfc-internal-format
 msgid "compiled module is %sversion %s"
 msgstr "le module compilé est %sversion %s"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, gcc-internal-format, gfc-internal-format
 msgid "compiler is %sversion %s%s%s"
 msgstr "le compilateur est %sversion %s%s%s"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, gcc-internal-format
 msgid "module %qs found"
 msgstr "module %qs trouvé"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr "module d'en-tête attendu, module %qs trouvé"
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr "module %qs attendu, module d'en-tête trouvé"
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr "désaccord dans la CRC du module %qs"
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr "la cible et l'hôte sont %qs:%qs, %qs:%qs attendu"
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr "le dialecte du langage %qs diffère, %qs attendu"
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr "le module contient OpenMP, utilisez %<-fopenmp%> pour l'activer"
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr "désaccord dans l'arbre fixe"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, gcc-internal-format
 msgid "interface partition is not exported"
 msgstr "la partition de l'interface n'est pas exportée"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr "échec de la lecture de la grappe %u du module compilé : %s"
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr "échec de la lecture du module compilé : %s"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr "envisagez d'utiliser %<-fno-module-lazy%>, augmenter la valeur de %<-param-lazy-modules=%u%> ou d'augmenter la limite des descripteurs de fichiers par processus"
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr "les imports doivent être construit avant d'être importés"
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr "retour à la porte pour un problème mécanique"
 
+#: cp/module.cc:19117
+#, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr "la déclaration %qD est en conflit avec la fonction interne"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+#| msgid "declaration %qD conflicts with import"
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "la déclaration %qD est en conflit avec l'import"
+
+#: cp/module.cc:19125
+#, fuzzy, gcc-internal-format
+#| msgid "declaration %qD conflicts with import"
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr "la déclaration %qD est en conflit avec l'import"
+
+#: cp/module.cc:19130
+#, fuzzy, gcc-internal-format
+#| msgid "import declared %q#D here"
+msgid "import declared attached to module %qs"
+msgstr "l'import a déclaré %q#D ici"
+
+#: cp/module.cc:19134
+#, fuzzy, gcc-internal-format
+#| msgid "import-declaration must be at global scope"
+msgid "import declared in global module"
+msgstr "la déclaration d'import doit être dans la portée globale"
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration of template %q#D"
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "déclaration conflictuelle du patron %q#D"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration of %q#D with %qL linkage"
+msgid "conflicting declaration of %qD in global module"
+msgstr "déclaration conflictuelle de %q#D avec la classe de liaison %qL"
+
+# la phrase fait référence à une variable ou une fonction (cf les deux messages ci-dessus) d'où le féminin
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared as %s"
+msgid "previously declared in module %qs"
+msgstr "précédemment déclarée comme %s"
+
+# la phrase fait référence à une variable ou une fonction (cf les deux messages ci-dessus) d'où le féminin
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared as %s"
+msgid "previously declared in global module"
+msgstr "précédemment déclarée comme %s"
+
 # le %qs est un nom de région non traduit tel que « parallel », « task », « teams ».
-#: cp/module.cc:19283
+#: cp/module.cc:19404
 #, gcc-internal-format
 msgid "reading CMI %qs"
 msgstr "lecture du CMI %qs"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr "échec du chargement de la liaison %<%E%s%E%>"
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr "échec du chargement de la liaison %<%E%s%E@%s%>"
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr "durant le chargement de la liaison %<%E%s%E%>"
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr "durant le chargement de la liaison %<%E%s%E@%s%>"
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr "échec lors du chargement des pendings pour %<%E%s%E%>"
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr "durant le chargement des pendings pour %<%E%s%E%>"
@@ -59447,391 +59501,391 @@ msgstr "durant le chargement des pendings pour %<%E%s%E%>"
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr "import du module nommé %qs à l'intérieur d'un bloc de liaison du langage"
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, gcc-internal-format
 msgid "module already declared"
 msgstr "module déjà déclaré"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, gcc-internal-format
 msgid "module already imported"
 msgstr "module déjà importé"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, gcc-internal-format
 msgid "module %qs imported here"
 msgstr "module %qs importé ici"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr "Interface de module compilé inconnue : %s"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr "impossible de déterminer la traduction %<#include%> de %s : %s"
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr "inclusion %qs traduite en import"
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr "inclusion %qs traitée textuellement"
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr "les modules C++ sont incompatibles avec les en-têtes précompilés"
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, gcc-internal-format
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "les modules C++ sont incompatibles avec le prétraitement traditionnel"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr "la sortie de débogage de macro peut être incomplète avec les modules"
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr "les dépendances du module requièrent un prétraitement"
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr "vous devriez utiliser l'option %<-%s%>"
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, gcc-internal-format
 msgid "invalid header name %qs"
 msgstr "nom d'en-tête %qs invalide"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, gcc-internal-format
 msgid "invalid module name %qs"
 msgstr "nom de module %qs invalide"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr "%<-fmodule-only%> utilisé pour une non-interface"
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, gcc-internal-format
 msgid "writing CMI %qs"
 msgstr "écriture CMI %qs"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, gcc-internal-format
 msgid "not writing module %qs due to errors"
 msgstr "pas d'écriture du module %qs à cause d'erreurs"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr "échec de l'écriture du module compilé : %s"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr "type d'en-tête %qs inconnu"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "la déclaration indépendante du nom est uniquement disponible avec %<-std=c++2c%> ou %<-std=gnu++2c%>"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "redéclaration de %q#D avec des paramètres de patron différents"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D entre en conflit avec une déclaration précédente"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D cache le constructeur pour %q#D"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "déclarations conflictuelles de l'édition de liens du langage C %q#D"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "à cause de spécifications d'exceptions différentes"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, gcc-internal-format
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "le paramètre lambda %qD a été déclaré précédemment comme une capture"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "la déclaration de %q#D masque un paramètre"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "la déclaration de %qD masque un membre de %qT"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "déclaration amie %qD dans la classe locale sans déclaration locale antérieure"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %<%s(%E)%> %p %d"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, gcc-internal-format
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr "export de %q#D qui n'a pas un lien externe"
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr "%q#D déclaré ici sans liaison"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr "%q#D déclaré ici avec un lien externe"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr "%q#D déclaré ici avec une liaison de module"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, gcc-internal-format
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T%s%D%> nomme le destructeur"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "déclaration « using » pour un non membre au niveau de la portée de la classe"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%<using%> avec la portée énumérée %q#T uniquement disponible avec %<-std=c++20%> ou %<-std=gnu++20%>"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qT n'est pas une classe, un espace de noms ou une énumération"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "la déclaration « using » non membre nomme le constructeur de %qT"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr "déclaration « using » pour un membre en dehors de la portée de la classe"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, gcc-internal-format
 msgid "%qT is not a direct base of %qT"
 msgstr "%qT n'est pas une base directe de %qT"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr "vouliez-vous utiliser %<using enum %T::%D%> ?"
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "%qD n'a pas été déclaré dans %qD"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr "la déclaration « using » ne peut pas nommer l'espace de nom %qD"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> nomme le constructeur dans %qT"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "la déclaration de %qD n'est pas dans l'espace de noms entourant %qD"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "qualificatifs explicites dans la déclaration de %qD"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD aurait dû être déclaré à l'intérieur de %qD"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "%qD n'a pas été déclaré dans %qD"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr "uniquement ici comme un %<friend%>"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "l'attribut %qD requiert un seul argument NTBS"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr "l'attribut %qD n'a pas de signification puisque les membres de l'espace de noms anonyme obtiennent des symboles locaux"
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr "l'attribut %qD est ignoré sur l'espace de noms anonyme"
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "l'attribut %qD est ignoré sur l'espace de noms pas en ligne"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "la directive d'attribut %qD est ignorée"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr "limite maximale de %d espaces de noms recherchés pour %qE"
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] "alternative suggérée:"
 msgstr[1] "alternatives suggérées:"
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr "  %qE"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr "%<std::%s%> est défini dans l'en-tête %qs ; cela peut probablement être corrigé en ajoutant %<#include %s%>"
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "%<std::%s%> est uniquement disponible à partir de %s"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr "la macro %qs n'a pas encore été définie"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, gcc-internal-format
 msgid "it was later defined here"
 msgstr "elle a été définie ici plus tard"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr "la déclaration de %<std::initializer_list%> ne correspond pas à %<#include <initializer_list>%> et n%'est pas un patron"
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, gcc-internal-format
 msgid "%<strong%> using directive no longer supported"
 msgstr "la directive « using » %<strong%> n'est plus supportée"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr "vous pouvez utiliser un espace de noms en ligne à la place"
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, gcc-internal-format
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%<omp::%E%> ne peut pas être spécifié dans ce contexte"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr "impossible d'imbriquer plus de %d espaces de noms"
 
 # %qs est le nom d'une procédure d'où le féminin
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "%<namespace %E%> est ambigu"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "l'alias de l'espace de noms %qD n'est pas permis ici, on suppose %qD"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr "un espace de nom en ligne doit être spécifié à la définition initiale"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, gcc-internal-format
 msgid "%qD defined here"
 msgstr "%qD défini ici"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "l'espace de noms %s %qD est en conflit avec la définition atteignable"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr "définition atteignable %s ici"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX entre dans %<pop_everything ()%>"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr "XXX quitte %<pop_everything ()%>"
@@ -59856,7 +59910,7 @@ msgstr "l'identificateur %qE est un mot clé en C++20"
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr "%<LEXER_DEBUGGING_ENABLED_P%> n'est pas défini à vrai"
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma omp declare %s%> pas immédiatement suivi par une déclaration ou une définition de fonction"
@@ -60102,7 +60156,7 @@ msgstr "le %<constinit%> du C++20 est uniquement disponible avec %<-std=c++20%>
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<concept%> uniquement disponible avec %<-std=c++20%> ou %<-fconcepts%>"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<requires%> uniquement disponible avec %<-std=c++20%> ou %<-fconcepts%>"
@@ -60283,7 +60337,7 @@ msgstr "les expressions-instructions ne sont pas permises en dehors des fonction
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "les expressions fold sont uniquement disponibles avec %<-std=c++17%> ou %<-std=gnu++17%>"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "expression primaire attendue"
@@ -60338,7 +60392,7 @@ msgstr "%<~auto%> est uniquement disponible avec %<-std=c++14%> ou %<-std=gnu++1
 msgid "template-id not allowed for destructor in C++20"
 msgstr "template-id n'est pas permis pour un destructeur en C++20"
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr "retirez le %qs"
@@ -60358,7 +60412,7 @@ msgstr "nom du typedef %qD utilisé comme déclaration de destructeur"
 msgid "expected unqualified-id"
 msgstr "unqualified-id attendu"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD n'est pas un patron"
@@ -60408,7 +60462,7 @@ msgstr "les types ne peuvent pas être définis dans une expression %<typeid%>"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "mauvais nombre d'arguments pour %<__builtin_addressof%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "mauvais nombre d'arguments pour %<__builtin_launder%>"
@@ -60443,7 +60497,7 @@ msgstr "des types ne peuvent pas être définis dans des appels %<__builtin_clas
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr "un indice multidimensionnel ne peut pas être utilisé dans une section de tableau OpenMP"
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "utilisation invalide de %qD"
@@ -60468,7 +60522,7 @@ msgstr "le C++ ISO ne permet pas %<alignof%> avec un non type"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "les types ne peuvent pas être définis dans des expressions %<noexcept%>"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr "les types ne peuvent pas être définis dans une expression %qs"
@@ -60618,8 +60672,8 @@ msgstr "initialisation vide pour la capture par initialisation d'une fonction la
 msgid "capture of non-variable %qE"
 msgstr "capture de %qE qui n'est pas une variable"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%q#D déclaré ici"
@@ -60659,7 +60713,7 @@ msgstr "argument par défaut spécifié pour un paramètre lambda"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "la déclaration d'un paramètre avant des spécificateurs de déclarations lambda est uniquement optionnelle avec %<-std=c++2b%> ou %<-std=gnu++2b%>"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr "une lambda avec capture ne peut pas avoir un paramètre objet explicite d'un type sans rapport"
@@ -60784,7 +60838,7 @@ msgstr "%<if consteval%> requiert une instruction composée"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "l'instruction init dans des instructions de sélection est uniquement disponible avec %<-std=c++17%> ou %<-std=gnu++17%>"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "instruction de sélection attendue"
@@ -60846,7 +60900,7 @@ msgstr "l'expression %<for%> parcourant une plage de type %qT a un type incompat
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr "types différents pour « begin » et « end » de l'instruction %<for%> parcourant une plage: %qT et %qT"
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "instruction d'itération attendue"
@@ -60872,7 +60926,7 @@ msgstr "%<goto%> dans une fonction %<constexpr%> uniquement disponible avec %<-s
 msgid "ISO C++ forbids computed gotos"
 msgstr "le C++ ISO interdit les gotos calculés"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "instruction de saut attendue"
@@ -61153,12 +61207,12 @@ msgstr "seuls les constructeurs prennent des initialisions membres"
 msgid "cannot expand initializer for member %qD"
 msgstr "impossible de développer l'initialisation du membre %qD"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "l'initialisation en mémoire pour %qD suit la délégation du constructeur"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr "la délégation du constructeur suit l'initialisation en mémoire pour %qD"
@@ -61797,7 +61851,7 @@ msgstr "arguments de patron manquants après %qE"
 msgid "%qT not permitted in template argument"
 msgstr "%qT pas permis dans un argument de patron"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, gcc-internal-format
 msgid "invalid use of %qT"
@@ -61976,12 +62030,12 @@ msgstr "définition précédente de %q#T"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr "paquet de paramètres non déroulés dans la classe locale d'un lambda"
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr "mot-clé de type classe (class ou struct) attendu"
@@ -62184,37 +62238,37 @@ msgstr "l'attribut de préfixe « using » est uniquement disponible avec %<-s
 msgid "expression must be enclosed in parentheses"
 msgstr "l'expression doit être comprise entre parenthèses"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr "%<requires%> additionnel manquant pour démarrer une expression « requires »"
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr "teste si un id de concept est une expression valide ; ajoutez %<requires%> pour vérifier la satisfaction"
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, gcc-internal-format
 msgid "result type is not a plain type-constraint"
 msgstr "le type de résultat n'est pas un contrainte de type simple"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr "l'exigence sur le type de retour n'est pas une contrainte de type"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr "la syntaxe %<template<>%> est requise pour spécialiser %<%T::%E%>"
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "déclaration invalide de %<%T::%E%>"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "trop peu de listes de paramètres pour le patron"
@@ -62223,437 +62277,437 @@ msgstr "trop peu de listes de paramètres pour le patron"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "trop de listes de paramètres pour le patron"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr "template-id n'est pas permis pour un constructeur en C++20"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "les valeurs nommées à retourner ne sont plus supportées"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr "le C++ ISO n'a pas adopté les patrons d'opérateurs de chaînes littérales prenant un paquet d'arguments de caractères"
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr "le patron de l'opérateur littéral %qD a une liste de paramètres invalide. On attendait un paquet de paramètres de type non patron %<<char...>%> ou un unique paramètre non-type de type class"
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr "le patron de l'opérateur littéral %qD a une liste de paramètres invalide. On attendait un paquet de paramètres de type non patron tel que %<<char...>%>"
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr "les introductions de patrons ne font pas partie des concepts C++20 ; utilisez %qs pour l'activer"
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr "pas de concept correspondant pour l'introduction du patron"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "déclaration invalide du patron membre dans la classe locale"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "patron avec liaison C"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "spécialisation explicite invalide"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "déclaration de patron de %<typedef%>"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr "une déclaration de patron de classe ne doit rien déclarer d'autre"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "une spécialisation explicite de patron ne peut pas avoir une classe de stockage"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%<>>%> devrait être %<> >%> à l'intérieur d'une liste d'arguments de patron imbriqués"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "le %<>>%> est faux, utilisez %<>%> pour terminer la liste d'arguments du patron"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "%qs devrait être %qs pour terminer une liste d'arguments du patron"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr "l'argument %<sizeof...%> doit être entouré de parenthèses"
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "utilisation invalide de %qD dans la spécification de la classe de liaison"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr "spécificateur %qD multiple"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr "le spécificateur %qD est en conflit avec %qs"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> avant %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "le spécificateur %qD est en conflit avec %<typedef%>"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "le C++ ISO 1998 ne permet pas %<long long%>"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "%<__thread%> et %<thread_local%> sont tous les deux spécifiés"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "%qD dupliqué"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "%qs dupliqué"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "%<new%> attendu"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "%<delete%> attendu"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "%<return%> attendu"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "%<extern%> attendu"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "%<static_assert%> attendu"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "%<decltype%> attendu"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "%<operator%> attendu"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "%<class%> attendu"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "%<template%> attendu"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "%<namespace%> attendu"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "%<using%> attendu"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "%<asm%> attendu"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "%<try%> attendu"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "%<catch%> attendu"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "%<throw%> attendu"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr "%<auto%> attendu"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "%<__label__%> attendu"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "%<@try%> attendu"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "%<@synchronized%> attendu"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "%<@throw%> attendu"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "%<__transaction_atomic%> attendu"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "%<__transaction_relaxed%> attendu"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr "%<co_yield%> attendu"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "%<::%> attendu"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "%<...%> attendu"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "%<*%> attendu"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "%<~%> attendu"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "%<:%> ou %<::%> attendu"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "%<class%>, %<typename%> ou %<template%> attendu"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr "clé d'énumération redondante dans %<enum%s%> en référence à %q#T"
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "étiquette %qs utilisée en nommant %q#T"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "%q#T a été précédemment déclaré ici"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, gcc-internal-format
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "clé de classe %qs redondante en référence à %q#T"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qT est déclaré avec clé de classe %qs non concordante"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr "retirez la clé de classe ou remplacez là par %qs"
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "remplacez la clé de classe avec %qs"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr "%qT est défini en tant que %qs ici"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr "%qT déclaré en tant que %qs pour la première fois ici"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD redéclaré avec un accès différent"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "en C++98, %<template%> (afin de lever une ambigüité) est seulement permis à l'intérieur des patrons"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "fin de fichier dans l'argument par défaut"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "construction Objective-C++ %<@%D%> mal placée"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr "récepteur de message objective-c++ attendu"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr "un ou des argument(s) de message objective-c++ est/sont attendu(s)"
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "%<@encode%> doit spécifier un type comme un argument"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "nom de sélecteur Objective-C++ invalide"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr "une déclaration de méthode objective-c++ est attendue"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "les attributs de méthodes doivent être spécifiés à la fin"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr "%qs égaré entre des méthodes Objective-C++"
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "type invalide pour la variable d'instance"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "identificateur attendu après %<@protocol%>"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr "des attributs ne peuvent pas être spécifiés avant le mot-clé %<@%D%> en Objective-C++"
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "les attributs de préfixes sont ignorés avant %<@%D%>"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, gcc-internal-format
 msgid "invalid type for property"
 msgstr "type invalide pour une propriété"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr "attribut de propriété %qE inconnu"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, gcc-internal-format
 msgid "expected integer expression list"
 msgstr "liste d'expressions entières attendue"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "l'expression %<wait%> doit être un nombre entier"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "%<scalar%>, %<aggregate%> ou %<all%> attendu"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "identificateur de réduction invalide"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr "des types ne peuvent pas être définis dans des types d'itérateurs"
@@ -62662,12 +62716,12 @@ msgstr "des types ne peuvent pas être définis dans des types d'itérateurs"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, gcc-internal-format
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "%<#pragma omp allocated%> n'est pas encore supporté"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr "une initialisation entre parenthèses n'est pas permise dans une boucle %<for%> de OpenMP"
@@ -62677,133 +62731,133 @@ msgstr "une initialisation entre parenthèses n'est pas permise dans une boucle
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr "clause %<ordered%> avec un paramètre sur une boucle %<for%> basée sur une portée"
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "la variable d'itération %qD ne devrait pas être une réduction"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp declare %s%> suivi de %<#pragma omp declare %s%>"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr "la directive OpenMP autre que %<declare simd%> ou %<declare variant%> appartient à une déclaration"
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "clause d'initialisation invalide"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "expression id (arguments) attendue"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr "un des arguments de l'appel de l'initialisation devrait être %<omp_priv%> ou %<&omp_priv%>"
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr "des types ne peuvent pas être définis dans une liste de types de réductions"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr "type arithmétique %qT prédéclaré dans %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr "type tableau ou fonction %qT dans %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr "type référence %qT dans %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr "un qualificatif %<const%>, %<volatile%> ou %<__restrict%> est appliqué au type %qT dans %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr "%<#pragma acc routine%> nomme un ensemble de surcharges"
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD ne fait pas référence à une fonction à l'intérieur de l'espace de noms"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr "%<atomic_cancel%>"
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr "%<__transaction_relaxed%> sans avoir activé le support pour la mémoire transactionnelle"
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr "%<__transaction_atomic%> sans avoir activé le support pour la mémoire transactionnelle"
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr "le %<__transaction_cancel%> extérieur n'est pas à l'intérieur d'un %<__transaction_atomic%> extérieur"
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr "  ou une fonction %<transaction_may_cancel_outer%>"
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "%<#pragma GCC pch_preprocess%> mal composé"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp require%> peut uniquement être utilisé dans la portée du fichier ou de l'espace de noms"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp assume%> peut uniquement être utilisé dans la portée du fichier ou de l'espace de noms"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "%<#pragma GCC %s%> doit être à l'intérieur d'une fonction"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr "la compilation multi source n'est pas implémentée pour le C++"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr "les types à remplacer ne sont pas permis dans ce contexte"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr "les patrons implicites ne peuvent pas être %<virtual%>"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr "édition de liens %<extern \"C\"%> démarrée ici"
@@ -62833,7 +62887,7 @@ msgstr "les patrons de classe englobants ne sont pas explicitement spécialisés
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "la spécialisation de %qD doit apparaître dans la portée de l'espace de noms"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "spécialisation de %qD dans différents espaces de noms"
@@ -62848,170 +62902,170 @@ msgstr "  à partir de la définition de %q#D"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "instanciation explicite de %qD dans l'espace de noms %qD (qui n'englobe pas l'espace de noms %qD)"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "le nom de la classe masque le paramètre de patron %qD qui est lui-même un patron"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "spécialisation du patron d'alias %qD"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "spécialisation explicite du non patron %qT"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "spécialisation de %qT après instanciation"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, gcc-internal-format
 msgid "from definition of %q#D"
 msgstr "à partir de la définition de %q#D"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "spécialisation de %qT après instanciation %qT"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "la spécialisation du patron de %qD n'est pas permise par le C++ ISO"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "spécialisation de %qD après instanciation"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, gcc-internal-format
 msgid "%s %#qD"
 msgstr "%s %#qD"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD n'est pas un patron de fonction"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "%qD n'est pas un patron de variable"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "template-id %qD pour %q+D ne concorde avec aucune déclaration de patron"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr "on a vu %d %<template<>%>, on a besoin de %d pour spécialiser un patron de fonction membre"
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "spécialisation de patron %qD ambiguë pour %q+D"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "les patrons de variables sont uniquement disponibles avec %<-std=c++14%> ou %<-std=gnu++14%>"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr "trop d'en-têtes de patrons pour %qD (devrait être %d)"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr "des membres d'une classe spécialisée explicitement sont définis sans en-tête de patron"
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "une spécialisation explicite de %qD en dehors de son espace de noms doit utiliser un spécificateur de nom imbriqué"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "une instanciation explicite de %qD en dehors de son espace de noms doit utiliser un spécificateur de nom imbriqué"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "il pourrait manquer des attributs dans la spécialisation explicite de %q#D"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "attributs de patron principal %s manquant"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "attribut de patron principal %s manquant"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, gcc-internal-format
 msgid "template-id %qE in declaration of primary template"
 msgstr "template-id %qE dans la déclaration de patron primaire"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "liste de paramètres de patron utilisée dans une instanciation explicite"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "définition fournie pour une instanciation explicite"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "trop de listes de paramètres de patron dans la déclaration de %qD"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "trop peu de listes de paramètres de patron dans la déclaration de %qD"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "la spécialisation explicite de %qD doit être introduite par %<template <>%>"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr "la spécialisation explicite doit être déclarée %<concept%>"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "la spécialisation partielle du non type %qE n'est pas permise"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "la spécialisation partielle de la non variable ou non classe %qE n'est pas permise"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "argument par défaut spécifié dans la spécialisation explicite"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD n'est pas un patron de fonction"
@@ -63024,154 +63078,154 @@ msgstr "%qD n'est pas un patron de fonction"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "spécialisation d'une fonction membre spéciale déclarée implicitement"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "pas de fonction membre %qD déclarée dans %qT"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "la déclaration amie %qD n'est pas visible par la spécialisation explicite"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, gcc-internal-format
 msgid "friend declaration here"
 msgstr "déclaration amie ici"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr "spécialisation explicite du concept de fonction %qD"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, gcc-internal-format
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "l'argument de %<__integer_pack%> doit être compris entre 0 et %d"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr "l'expansion de l'initialisation de base %qT ne contient pas de paquet de paramètres"
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "le motif d'expansion %qT ne contient pas de paquet de paramètres"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "le motif d'expansion %qE ne contient pas de paquet de paramètres"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr "les paquets de paramètres ne sont pas étendus avec %<...%>"
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr "        %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "la déclaration du paramètre de patron %q+D masque le paramètre de patron"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "la déclaration de %q+#D masque un paramètre de patron"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr "le paramètre de patron %qD est déclaré ici"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "spécialisation du concept de variable %q#D"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "les paramètres du patron ne peuvent pas être déduits dans la spécialisation partielle:"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "la spécialisation partielle %q+D ne spécialise aucun argument du patron; pour définir le patron primaire, retirez la liste d'arguments du patron"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr "la spécialisation partielle %q+D ne spécialise aucun argument du patron et n'a pas plus de contrainte que le patron primaire; pour définir le patron primaire, retirez la liste d'arguments du patron"
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr "le patron primaire ici"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr "la spécialisation partielle n'est pas plus spécialisée que le patron primaire car elle remplace des paramètres multiples par une expansion d'un paquet"
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, gcc-internal-format
 msgid "too many arguments for partial specialization %qT"
 msgstr "trop d'arguments pour la spécialisation partielle %qT"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr "la spécialisation partielle de %qD n'est pas plus spécialisée que"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, gcc-internal-format
 msgid "primary template %qD"
 msgstr "le patron primaire %qD"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr "l'argument %qE du paquet de paramètres doit être à la fin de la liste des arguments du patron"
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr "l'argument %qT du paquet de paramètres doit être à la fin de la liste des arguments du patron"
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "le type %qT de l'argument %qE du patron dépend d'un paramètre du patron"
 msgstr[1] "le type %qT de l'argument %qE du patron dépend de paramètres du patron"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "la déclaration de %qD rend ambigüe l'instanciation précédente du patron pour %qD"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "spécialisation partielle de %qD après l'instanciation de %qD"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "pas d'argument par défaut pour %qD"
@@ -63180,47 +63234,47 @@ msgstr "pas d'argument par défaut pour %qD"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "le paquet de paramètres %q+D doit être à la fin de la liste des paramètres du patron"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "les arguments par défaut du patron ne peuvent pas être utilisés dans la redéclaration d'un ami d'un patron d'une fonction"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "les arguments par défaut du patron ne peuvent pas être utilisés dans les déclarations d'un ami d'un patron"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "les arguments par défaut du patron ne peuvent pas être utilisés dans des patrons de fonctions sans %<-std=c++11%> ou %<-std=gnu++11%>"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr "les arguments par défaut du patron ne peuvent pas être utilisés dans des spécialisations partielles"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "argument par défaut pour le paramètre de patron pour la classe englobant %qD"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, gcc-internal-format
 msgid "template %qD declared"
 msgstr "patron %qD déclaré"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "patron de classe sans nom"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr "le patron de membre %qD ne peut pas avoir de spécificateur virtuel (virt-specifier)"
@@ -63230,506 +63284,506 @@ msgstr "le patron de membre %qD ne peut pas avoir de spécificateur virtuel (vir
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "déclaration de patron %qD invalide"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "définition de patron d'un non patron %q#D"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "on attendait %d niveaux de paramètres du patron pour %q#D mais on en a obtenu %d"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "a obtenu %d paramètres de patron pour %q#D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "a obtenu %d paramètres de patron pour %q#T"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  mais %d son requis"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "les arguments du patron %qD ne correspondent pas à ceux du patron original %qD"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "utilisez %<template<>%> pour une spécialisation explicite"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "redéclaration de %qD avec des contraintes différentes"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT n'est pas un type de patron"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "spécificateurs de patron pas spécifiés dans la déclaration de %qD"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] "redéclaré avec %d paramètre dans le patron"
 msgstr[1] "redéclaré avec %d paramètres dans le patron"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "la déclaration précédente %qD utilisait %d paramètre dans le patron"
 msgstr[1] "la déclaration précédente %qD utilisait %d paramètres dans le patron"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "paramètre %q+#D du patron"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "redéclaré ici comme %q#D"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, gcc-internal-format
 msgid "redeclared here"
 msgstr "redéclaré ici"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "déclaration du paramètre de patron %q+#D avec des contraintes différentes"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "la déclaration originale apparaît ici"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "redéclaration de %q#D avec des contraintes différentes"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qE n'est pas un argument de patron valide pour le type %qT"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "il doit être l'adresse d'une fonction avec une classe de liaison externe"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr "il doit être le nom d'une fonction avec une classe de liaison externe"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE n'est pas un argument de patron valable pour le type %qT car %qD n'a pas de classe de liaison"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qE n'est pas un argument de patron valable pour le type %qT car %qD n'a pas de classe de liaison externe"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "il doit être un pointeur vers un membre de la forme %<&X::Y%>"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr "car il est un membre de %qT"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "  n%'a pu déduire le paramètre %qD du patron"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr "  les types %qT et %qT ont des qualificatifs CV incompatibles"
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr "  types %qT et %qT non concordants"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "  le paramètre %qD du patron n'est pas un paquet de paramètres mais l'argument %qD en est un"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "  l'argument %qE du patron ne correspond pas à la constante %qE qui est un pointeur vers un membre"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "  %qE n'est pas équivalent à %qE"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr "  déduction du paquet de paramètres inconsistante entre %qT et %qT"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr "  types déduits conflictuels pour le paramètre %qT (%qT et %qT)"
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr "  valeurs déduites conflictuelles pour le paramètre non type %qE (%qE et %qE)"
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "  le type tableau %qT dimensionné par une variable n'est pas un argument de patron valable"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr "  le type fonction membre %qT n'est pas un argument de patron valable"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "  ne peut convertir %qE (type %qT) vers le type %qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "  %qT est une classe de base ambigüe de %qT"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "  %qT n'est pas dérivé de %qT"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr "  les paramètres du patron d'un argument de patron qui est lui-même un patron sont inconsistants avec les autres arguments déduits pour le patron"
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "  impossible de déduire un patron pour %qT depuis le type non patron %qT"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "  l'argument de patron %qE ne correspond pas à %qE"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE n'est pas un argument de patron valable pour le type %qT car %qE n'est pas une variable ni une fonction"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE n'est pas un argument de patron valable de type %qT en C++98 car %qD n'a pas une classe de liaison externe"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE n'est pas un argument de patron valable pour le type %qT car %qD n'a pas de classe de liaison"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr "l'adresse de %qD n'est pas un argument de patron valable"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "l'adresse du sous-objet %qT de %qD n'est pas un argument de patron valable"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "l'adresse de %qD n'est pas un argument de patron valable car elle n'a pas une durée de stockage statique"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qD n'est pas un argument de patron valable car %qD est une variable, pas une adresse d'une variable"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qE n'est pas un argument de patron valable pour %qT car ce n'est pas l'adresse d'une variable"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE n'est pas un argument de patron valable pour le type %qT car les chaînes littérales ne peuvent jamais être utilisées dans ce contexte"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "dans l'argument de patron pour le type %qT"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "l'argument de patron %qE pour le type %qT n'est pas une constante durant la compilation"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE n'est pas un argument de patron valable pour le type %qT à cause de conflits dans les qualificatifs CV"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE n'est pas un argument de patron valable pour le type %qT car ce n'est pas une l-valeur"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%q#D n'est pas un argument de patron valable pour le type %qT car une variable de référence n'a pas une adresse constante"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE n'est pas un argument de patron valable pour le type %qT car il est un pointeur"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "essayez d'utiliser %qE à la place"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE n'est pas un argument de patron valable pour le type %qT car il est du type %qT"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "les attributs sur l'argument %qT du patron sont ignorés"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "les attributs dans l'argument %qE du patron sont ignorés"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "nom de classe injecté %qD utilisé comme argument de patron qui est lui-même un patron"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "utilisation invalide du destructeur %qE comme un type"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "pour faire référence à un membre type d'un paramètre de patron, utilisez %<typename %E%>"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "non concordance de type/valeur pour l'argument %d dans la liste des paramètres du patron de %qD"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  on attendait une constante de type %qT, on a obtenu %qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "  l'argument de patron ambigu pour le paramètre de patron non type est traité comme un type fonction"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  on attendait un patron de classe, on a obtenu %qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  on attendait un type, on a obtenu %qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  on attendait un type, on a obtenu %qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  on attendait un patron de classe, on a obtenu %qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  on attendait un patron de type %qD, on a obtenu %qT"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "désaccord de contrainte à l'argument %d dans la liste des paramètres du patron pour %qD"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr "  on attendait %qD, on a obtenu %qD"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "impossible de convertir l'argument %qE du patron de %qT vers %qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "l'argument %d du patron est invalide"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "nombre erroné d'arguments du patron (%d, devrait être %d)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "nombre erroné d'arguments du patron (%d, devrait être au moins %d)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, gcc-internal-format
 msgid "provided for %qD"
 msgstr "fournis pour %qD"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr "argument d'expansion du paquet pour le paramètre non paquet %qD du patron d'alias %qD"
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "argument d'expansion du paquet pour le paramètre non paquet %qD du concept %qD"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr "ainsi, toute instanciation avec un paquet de paramètres non vide serait mal formée"
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%q#D n'est pas un patron de fonction"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "type non patron %qT utilisé comme un patron"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "pour la déclaration du patron %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, gcc-internal-format
 msgid "template constraint failure for %qD"
 msgstr "échec de la contrainte du patron pour %qD"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "utilisation du patron de variable invalide %qE"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "la profondeur d'instanciation du patron excède le maximum qui est %d (utilisez %<-ftemplate-depth=%> pour augmenter le maximum)"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr "l'argument du score doit être une expression entière constante"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr "l'argument du score doit être non négatif"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr "la propriété doit être une expression entière constante ou une chaîne littérale"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "membre tableau flexible %qD dans l'union"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr "repli de l'expansion vide sur %O"
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, gcc-internal-format
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE n'est pas le motif entier de l'expansion du paquet"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr "les longueurs des paquets d'arguments sont en désaccord durant l'expansion de %qT"
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr "les longueurs des paquets d'arguments sont en désaccord durant l'expansion de %qE"
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "  lors de l'instanciation de l'argument par défaut pour l'appel à %qD"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "création d'un pointeur vers la fonction membre d'un type non classe %qT"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr "les longueurs des paquets d'arguments sont en désaccord (%d vs %d)"
@@ -63747,301 +63801,301 @@ msgstr "les longueurs des paquets d'arguments sont en désaccord (%d vs %d)"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "la variable %qD a un type fonction"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "type de paramètre %qT invalide"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "dans la déclaration de %q+D"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "fonction retournant un tableau"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "fonction retournant une fonction"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "formation d'une référence vers void"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "formation d'un pointeur vers le type de référence %qT"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "formation d'une référence vers le type de référence %qT"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "formation d'un pointeur vers le type de fonction qualifié %qT"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "formation d'une référence vers le type de fonction qualifié %qT"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "création d'un pointeur vers le membre d'un type non classe %qT"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "création d'un pointeur vers le type de référence au membre %qT"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "création d'un pointeur vers le membre de type void"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "création d'un tableau de %qT"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr "%qD est instancié pour un paquet vide"
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT n'est pas un type class, struct ou union"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT est résolu en %qT qui n'est pas un type d'énumération"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT est résolu en %qT qui n'est pas un type de classe"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "utilisation de %qs dans le patron"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "le type qualifié %qT ne correspond pas au nom du destructeur ~%qT"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "le nom dépendant %qE est analysé comme un non type, mais son instanciation produit un type"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "utilisez %<typename %E%> si un type est désiré"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "l'initialiseur pour %q#D est développé en une liste vide d'expressions"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "utilisation invalide de l'expression d'expansion d'un paquet"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr "utilisez %<...%> pour dérouler le paquet d'arguments"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr "initialisation vide dans l'initialisation par capture de la fonction lambda"
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr "%qD n'a pas été déclaré dans cette portée et aucune déclaration a été trouvée par le recherche dépendant des arguments au point d'instanciation"
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr "les déclarations dans la base dépendante %qT ne sont pas trouvées par une recherche non qualifiée"
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr "utilisez plutôt %<this->%D%>"
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "utilisez plutôt %<%T::%D%>"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%qD déclaré ici, plus loin dans l'unité de traduction"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "mauvais nombre d'arguments pour %<__builtin_convertvector%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, gcc-internal-format
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "nombre erroné d'arguments pour l'attribut %<assume%>"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT n'est pas une classe ou un espace de noms"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD n'est pas une classe ou un espace de noms"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "utilisation du champ %qD invalide"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "%qT est/utilise un type anonyme"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "l'argument du patron pour %qD utilise le type local %qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT est un type modifié par une variable"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "l'expression intégrale %qE n'est pas une constante"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  tentative d'instancier %qD"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "instanciation de patron ambiguë pour %q#T"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "instanciation de patron ambiguë pour %q#D"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 msgid "%s %#qS"
 msgstr "%s %#qS"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "instanciation explicite du non patron %q#D"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "instanciation explicite du concept de variable %q#D"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, gcc-internal-format
 msgid "explicit instantiation of function concept %q#D"
 msgstr "instanciation explicite du concept de fonction %q#D"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qD n'est pas un membre de données statique d'un patron de classe"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "aucun patron correspondant trouvé pour %qD"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "le type %qT pour l'instanciation explicite %qD ne correspond pas au type déclaré %qT"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "instanciation explicite de %q#D"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "instanciation explicite dupliquée pour %q#D"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "le C++ ISO 1998 interdit l'utilisation de %<extern%> sur des instanciations explicites"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "classe de stockage %qD appliquée à l'instanciation du patron"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "instanciation explicite du patron non classe %qD"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "instanciation explicite du type non patron %qT"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "instanciation explicite de %q#T avant la définition de patron"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "le C++ ISO interdit l'utilisation de %qE sur des instanciations explicites"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "instanciation explicite dupliquée de %q#T"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr "la spécification d'exception %qD dépend d'elle-même"
@@ -64053,163 +64107,163 @@ msgstr "la spécification d'exception %qD dépend d'elle-même"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "instanciation explicite de %qD mais pas de définition disponible"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "la profondeur d'instanciation du patron excède le maximum de %d lors de l'instanciation de %q+D, peut-être via la génération de la table virtuelle (utilisez %<-ftemplate-depth=%> pour augmenter le maximum)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "les paramètres de patrons non typés du type classe déduit sont uniquement disponibles avec %<-std=c++20%> ou %<-std=gnu++20%>"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%qT n'est pas un type valide pour un paramètre non type du patron car il n'est pas structurel"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "les paramètres de patrons non typés du type classe sont uniquement disponibles avec %<-std=c++20%> ou %<-std=gnu++20%>"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "le paramètre non type du patron est invalide"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T n'est pas un type valide pour un paramètre non type du patron"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "le mot-clé %<template%> n'est pas permis dans declarator-id"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, gcc-internal-format
 msgid "a concept cannot be constrained"
 msgstr "un concept ne peut être contraint"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr "le concept %qE n'est pas dans la portée de l'espace de noms"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr "le concept %qE a plusieurs listes de paramètres de patrons"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr "la déduction à partir d'une liste d'initialisation entre accolades requiert %<#include <initializer_list>%>"
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr "le patron %qT ne peut être déduit et il est utilisé sans arguments de patron"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "la déduction du patron synonyme est uniquement disponible avec %<-std=c++20%> ou %<-std=gnu++20%>"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, gcc-internal-format
 msgid "use %qD directly instead"
 msgstr "utilisez directement %qD à la place"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr "impossible de déduire les arguments du patron pour l'initialisation par copie de %qT car il n'a pas de guides de déduction non explicites ou de constructeur déclaré par l'utilisateur"
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "impossible de déduire les arguments du patron de %qT car il n'a pas de guides de déduction viables"
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "la déduction des arguments du patron de classe a échoué:"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, gcc-internal-format
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "les guides de déduction explicites ne sont pas pris en compte pour l'initialisation par copie"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr "la déduction de l'argument du patron de classe pour %qT a échoué : guide de déduction explicite sélectionné dans l'initialisation par copie de liste"
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "guide de déduction explicite déclaré ici"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "%qT peut ne pas avoir l'intention de supporter la déduction d'argument pour un patron de classe"
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr "ajoutez un guide de déduction pour supprimer cet avertissement"
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr "l'initialisation par liste directe de %<auto%> requiert exactement un élément"
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr "pour la déduction de %<std::initializer_list%>, utilisez l'initialisation par liste copiée (c-à-d ajoutez %<=%> avant le %<{%>)"
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "impossible de déduire le type de retour de la lambda à partir de %qE"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "impossible de déduire %qT à partir de %qE"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr "les contraintes sur le type à remplacer ne sont pas satisfaites"
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "l'initialisation déduite ne satisfait pas les contraintes du type à remplacer"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "le type retourné déduit ne satisfait pas les contraintes du type à remplacer"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "le type déduit pour l'expression ne satisfait pas les contraintes du type à remplacer"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "utilisation invalide de %qT dans un argument de patron"
@@ -64415,631 +64469,631 @@ msgstr "le type de l'opérande %<asm%> %qE n'a pas pu être déterminé"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "les déclarations %<__label__%> sont uniquement permises à l'intérieur des fonctions"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "utilisation invalide du membre %qD dans une fonction membre statique"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "utilisation invalide du membre %qD dans le constructeur de contrat %<pre%>"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "utilisation invalide du membre %qD dans le destructeur de contrat %<post%>"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr "%qE arguments de patron manquants"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr "une expression-instruction est un contexte insuffisant pour la résolution d'une surcharge"
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, gcc-internal-format
 msgid "cannot call a concept as a function"
 msgstr "impossible d'appeler un concept comme une fonction"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "le destructeur n'accepte pas d'argument"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, gcc-internal-format
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "%<this%> n'est pas disponible pour les fonctions membres d'objet explicite"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr "utilisez plutôt le paramètre objet explicite %qs"
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr "nom du paramètre objet explicite"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "%<this%> n'est pas disponible pour les fonctions membres statiques"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, gcc-internal-format
 msgid "invalid use of %<this%> before it is valid"
 msgstr "utilisation invalide de %<this%> avant qu'il soit valide"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, gcc-internal-format
 msgid "invalid use of %<this%> after it is valid"
 msgstr "utilisation invalide de %<this%> après qu'il soit valide"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "utilisation invalide de %<this%> dans une fonction non membre"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "utilisation invalide de %<this%> hors de toute fonction"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "étendue de qualification invalide dans le nom du pseudo-destructeur"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "le type qualifié %qT ne concorde pas avec le nom du destructeur ~%qT"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE n'est pas un type %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "littéral composé du type non objet %qT"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "%<auto{x}%> ne peut être contraint"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<auto{x}%> est uniquement disponible avec %<-std=c++2b%> ou %<-std=gnu++2b%>"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "les paramètres de type du patron doivent utiliser le mot-clé %<class%> ou %<typename%>"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "utilisation invalide du type %qT comme valeur par défaut pour un paramètre de patron qui est lui-même un patron"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "argument par défaut invalide pour un paramètre de patron qui est un patron"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "définition de %q#T à l'intérieur d'une liste de paramètres de patron"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "définition invalide du type qualifié %qT"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "spécification de classe de base invalide"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr "impossible de capturer le membre %qD d'une union anonyme"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "%qD n'est pas capturé"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr "la lambda n'a pas de capture par défaut"
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr "la lambda dans la classe locale %q+T ne sait pas capturer des variables du contexte englobant"
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr "utilisation d'une variable locale avec un stockage automatique dans la fonction contenante"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "utilisation d'un paramètre dans la fonction contenante"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr "utilisation du paramètre en dehors du corps de la fonction"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, gcc-internal-format
 msgid "missing template arguments"
 msgstr "arguments de patron manquants"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "le paramètre %qD du patron, du type %qT, n'est pas permis dans une expression constante intégrale parce qu'il n'est pas d'un type intégral ou énuméré"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "utilisation du patron de classe %qT comme expression"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "l'accès au membre %qD est ambigu dans un réseau d'héritages multiples"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD ne peut pas apparaître dans une expression constante"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "le type de %qE est inconnu"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qT n'est pas un type énuméré"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "l'index %<__type_pack_element%> n'est pas une constante entière"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr "l'index %<__type_pack_element%> est négatif"
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "l'index %<__type_pack_element%> est hors limites"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "Le paquet de paramètres %<__bases%> est uniquement valable dans la déclaration d'un patron"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "impossible d'appliquer %<offsetof%> au destructeur %<~%T%>"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "impossible d'appliquer %<offsetof%> à la fonction membre %qD"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "impossible d'appliquer %<offsetof%> à la fonction membre"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "impossible d'appliquer %<offsetof%> à un énumérateur %qD"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr "l'utilisation de %<offsetof%> à l'intérieur du type %qT (qui ne respecte pas l'agencement standard) est supporté conditionnellement"
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "la correspondance d'un pointeur vers un membre %qE n'est pas supportée"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "la recherche de la réduction définie par l'utilisateur est ambiguë"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr "%qE dans la clause %<reduction%> est un tableau de taille nulle"
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE a le type const pour %<reduction%>"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr "réduction définie par l'utilisateur avec une initialisation du constructeur pour la classe de base %qT"
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr "modificateur autre que %<val%> spécifié dans la clause %<linear%> sur des constructions %<simd%> ou %<for%> en utilisant des modificateurs OpenMP 5.2"
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr "la clause linéaire avec le modificateur %qs est appliquée à la variable non référence ayant le type %qT"
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr "clause linéaire appliquée à la variable non entière non pointeur ayant le type %qT"
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr "l'expression du pas de « linear » doit être un entier"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr "%<this%> est autorisé dans OpenMP uniquement dans les clauses %<declare simd%>"
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD n'est pas une variable dans la clause %qs"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "%qD n'est pas une variable dans la clause %<firstprivate%>"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qD n'est pas une variable dans la clause %<lastprivate%>"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr "l'expression statique %<gang%> doit être un entier"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr "la valeur statique de %<gang%> doit être positive"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr "l'expression numérique de %<gang%> doit être un entier"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr "l'expression de longueur de %<vector%> doit être un entier"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr "l'expression numérique de %<worker%> doit être un entier"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "la valeur numérique de %<gang%> doit être positive"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr "la valeur de longueur de %<vector%> doit être positive"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr "la valeur numérique de %<worker%> doit être positive"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "l'expression de taille des tranches d'ordonnancement doit être un entier"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr "l'expression de longueur de %qs doit être un entier"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "l'expression de longueur %qs doit être une expression entière constante positive"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "l'expression de %<async%> doit être un entier"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr "l'expression de %<thread_limit%> doit être un entier"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr "l'identifiant de %<device%> doit être entier"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "l'expression de la taille des tranches de %<dist_schedule%> doit être un entier"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD n'est pas une variable dans la clause %<aligned%>"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr "%qE dans la clause %<aligned%> n'est ni un pointeur ni un tableau ni une référence vers un pointeur ou un tableau"
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qD apparaît plus d'une fois dans les clauses %<aligned%>"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "l'expression d'alignement de la clause %<aligned%> doit être un entier"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD n'est pas une variable dans la clause %<nontemporal%>"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD apparaît plus d'une fois dans les clauses %<nontemporal%>"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%<this%> n'est pas autorisé dans la clause %<allocate%>"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD n'est pas une variable dans la clause %<allocate%>"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD apparaît plus d'une fois dans les clauses %<allocate%>"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "%qD n'est pas une expression l-valeur ni une section de tableau dans une clause %qs"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr "patron %qE dans la clause %qs"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr "nom de fonction surchargée %qE dans la clause %qs"
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "l'expression de %<grainsize%> doit être un entier"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr "l'expression de %<priority%> doit être un entier"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr "l'expression %<hint%> doit être un nombre entier"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "l'expression %<hint%> doit être une expression entière constante"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr "l'expression %<filter%> doit être un nombre entier"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "la variable %qs n'est ni un pointeur ni une référence à un pointeur"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr "la variable %qs n'est ni un pointeur ni un tableau ni une référence à un pointeur ou un tableau"
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr "l'argument de %<tile%> doit être de type entier"
 
 # Cette traduction aurait du sens si on pouvait changer l'ordre des %. Je n'arrive pas à savoir si c'est possible.
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr "%<const%> qualifiant %qE sans membre %<mutable%> ne peut apparaître que dans les clauses %<shared%> ou %<firstprivate%>"
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr "%<threadprivate%> %qD n'est pas un fichier, un espace de noms ou une variable déclarée dans un bloc"
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "la directive %<threadprivate%> %qE n'est pas dans la définition de %qT"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr "la différence entre %qE et %qD n'est pas un type entier"
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "%<#pragma omp simd%> utilisé avec la variable d'itération de classe %qE"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic update%> utilise deux expressions différentes pour la mémoire"
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr "le message de %<static_assert%> doit être une chaîne littérale ou un objet avec les membres %<size%> et %<data%>"
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr "le message de %<static_assert%> doit avoir une %<size()%> qui peut être implicitement convertie en %<std::size_t%>"
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr "le message de %<static_assert%> doit avoir une %<data()%> qui peut être implicitement convertie en %<const char *%>"
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "le message de %<static_assert%> doit avoir une %<size()%> qui est une expression constante"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr "le message de %<static_assert%> a une %<size()%> %qE trop grande"
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "le message de %<static_assert%> doit avoir une %<data()[%d]%> qui est une expression constante"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "le message de %<static_assert%> doit avoir une %<data()%> qui est une expression constante du noyau"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, gcc-internal-format
 msgid "static assertion failed: %.*s"
 msgstr "l'assertion statique a échoué : %.*s"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "condition non constante pour l'assertion statique"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr "l'argument de %<decltype%> doit être une expression"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "%<decltype%> ne sait pas résoudre l'adresse d'une fonction surchargée"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr "%<__builtin_is_pointer_interconvertible_with_class%> a besoin d'un seul argument"
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr "l'argument de %<__builtin_is_pointer_interconvertible_with_class%> n'est pas un pointeur vers un membre"
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr "%<__builtin_is_corresponding_member%> n'est pas bien défini pour des unions anonymes"
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "%<__builtin_is_corresponding_member%> a besoin de deux arguments"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr "l'argument de %<__builtin_is_corresponding_member%> n'est pas un pointeur vers un membre"
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "%qD n'est pas un patron de classe ou un alias"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "l'opérande de l'expression fold n'a aucun paquet de paramètres non déroulé"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "les deux arguments dans le fold binaire ont des paquets de paramètres non déroulés"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr "aucun paquet de paramètres non déroulés dans le fold binaire"
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr "l'argument de %<__builtin_launder%> n'est pas un pointeur"
@@ -65047,1158 +65101,1158 @@ msgstr "l'argument de %<__builtin_launder%> n'est pas un pointeur"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr "%<__builtin_bit_cast%> a le type de destination %qT qui est un type tableau"
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr "%<__builtin_bit_cast%> a le type de destination %qT qui n'est pas trivialement copiable"
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr "%<__builtin_bit_cast%> a le type source %qT qui n'est pas trivialement copiable"
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr "%<__builtin_bit_cast%> a la taille source %qE qui n'est pas égale à la taille du type destination %qE"
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "les qualificatifs %qV ne peuvent pas être appliqués à %qT"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr "expression instruction dans une expression constante"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr "%<-fabi-version=13%> (GCC 8.2) corrige la convention d'appel pour %qT qui a changé accidentellement en 8.1"
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr "%<-fabi-version=12%> (GCC 8.1) change accidentellement la convention d'appel pour %qT"
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, gcc-internal-format
 msgid " declared here"
 msgstr " déclaré ici"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr "la convention d'appel pour %qT change avec %<-fabi-version=13%> (GCC 8.2)"
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr " car tous ses constructeurs par copie et déplacement sont supprimés"
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr "la classe de base %qT n'est pas publique"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, gcc-internal-format
 msgid "%qD is not public"
 msgstr "%qD n'est pas public"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, gcc-internal-format
 msgid "%qD is mutable"
 msgstr "%qD n'est pas mutable"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr "%qD a un type non structurel"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "l'attribut %qE peut uniquement être appliqué aux fonctions ou aux paramètres"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, gcc-internal-format
 msgid "%qE attribute argument must be a string constant"
 msgstr "l'argument de l'attribut %qE doit être une constante de chaîne de caractères"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "l'attribut %qE peut uniquement être appliqué aux fonctions ou aux classes ou aux types énumérés"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "l'attribut %qE peut uniquement être appliqué aux membres de données non statiques"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, gcc-internal-format
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "l'attribut %qE ne peut pas être appliqué à un champ de bits"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr "l'attribut %qE ne prend pas d'argument"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "l'attribut %qE du C++ ISO ne s'applique pas aux fonctions; il est traité comme %<[[gnu::%E]]%>"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, gcc-internal-format
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "le %<init_priority%> demandé n'est pas une constante entière"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "l'attribut %qE peut uniquement être utilisé sur les définitions dans la portée du fichier d'objets de type classe"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "le %<init_priority%> %i demandé est hors des limites [0, %i]"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "le %<init_priority%> %i demandé est réservé pour un usage interne"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "la redéclaration de %qD ajoute l'étiquette d'ABI %qE"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "l'attribut %qE requiert des arguments"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "les arguments de l'attribut %qE doivent être des chaînes littérales étroites"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "les arguments de l'attribut %qE doivent contenir des identificateurs valables"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%c%> n'est pas un premier caractère valable pour un identificateur"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%c%> n'est pas un caractère valable dans un identificateur"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "attribut %qE appliqué au type %qT qui n'est ni une classe ni un enum"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "attribut %qE appliqué à %qT après sa définition"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "l'attribut %qE est ignoré car il est appliqué à l'instanciation du patron %qT"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "l'attribut %qE est ignoré car il est appliqué à la spécialisation du patron %qT"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "attribut %qE appliqué à %qD qui n'est ni une fonction ni une variable"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "attribut %qE appliqué à la déclaration extern \"C\" %qD"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "l'argument de l'attribut %qE doit être une expression qui est évaluée à vrai ou faux"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "zéro comme constante de pointeur nul"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "vérification de %<lang_*%> : échec dans %s, à %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "la comparaison entre des pointeurs de types distincts %qT et %qT a besoin d'un transtypage"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "la conversion entre des pointeurs de types distincts %qT et %qT a besoin d'un transtypage"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "l'expression conditionnelle entre des pointeurs de types distincts %qT et %qT a besoin d'un transtypage"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "le C++ ISO interdit la comparaison entre les pointeurs de type %<void *%> et les pointeurs de fonctions"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "le C++ ISO interdit la conversion entre les pointeurs de type %<void *%> et les pointeurs de fonctions"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "le C++ ISO interdit l'expression conditionnelle entre les pointeurs de type %<void *%> et les pointeurs de fonctions"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "la comparaison entre des pointeurs vers des membres de types distincts %qT et %qT a besoin d'un transtypage"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "la conversion entre des pointeurs vers des membres de types distincts %qT et %qT a besoin d'un transtypage"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "l'expression conditionnelle entre des pointeurs vers des membres de types distincts %qT et %qT a besoin d'un transtypage"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "les types canoniques diffèrent pour les types identiques %qT et %qT"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "nœud de type canonique identique pour les types différents %qT et %qT"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "application invalide de %qs à une fonction membre"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "application invalide de %<sizeof%> sur un champ de bits"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "le C++ ISO interdit l'application de %<sizeof%> à une expression d'un type de fonction"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "application invalide de %<__alignof%> sur un champ de bits"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "le C++ ISO interdit l'application de %<__alignof%> à une expression d'un type de fonction"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "l'argument de %<alignas%> a le type non entier %qT"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "utilisation invalide de la fonction membre non statique de type %qT"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "le C++ ISO interdit la conversion d'une chaîne constante vers %qT"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "conversion obsolète de la chaîne constante vers %qT"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "requête du membre %qD dans %qE, lequel est le type pointeur %qT (vous avez peut-être oublié d'utiliser %<->%> ?)"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "requête du membre %qD dans %qE, lequel est de type non classe %qT"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr "utilisation invalide du membre de donnée non statique %qE"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "accès invalide au membre de donnée non statique %qD dans la base virtuelle d'un objet NULL"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "l'objet de type %qT ne correspond pas au nom du destructeur ~%qT"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "le type devant être détruit est %qT, mais le destructeur réfère à %qT"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr "le champ %q#D peut être accessible via %q#D"
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "%q#T n'a pas de membre nommé %qE"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "%q#T n'a pas de membre nommé %qE; vouliez-vous utiliser %q#D ? (accessible via %q#D)"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "%q#T n'a pas de membre nommé %qE; vouliez-vous utiliser %q#D ? (pas accessible depuis ce contexte)"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%q#T n'a pas de membre nommé %qE; vouliez-vous utiliser %qE ?"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> n'est pas un membre de %qT"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT n'est pas une base de %qT"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD n'est pas une fonction patron membre"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT n'est pas un type pointeur vers un objet"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "utilisation invalide de l'indexation de tableau sur un pointeur vers un membre"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "utilisation invalide du %<*%> unaire sur un pointeur vers un membre"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "utilisation invalide de la conversion implicite d'un pointeur vers un membre"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr "l'opérande de gauche de %<->*%> doit être un pointeur vers une classe mais il est un pointeur vers un membre du type %qT"
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "indice manquant dans la référence du tableau"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "l'accès indicé du tableau est déclaré %<register%>"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "la valeur indicée n'est ni un tableau ni un pointeur"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "objet manquant dans l'usage de %qE"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "le C++ ISO interdit l'appel de %<::main%> depuis l'intérieur du programme"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "il faut utiliser %<.*%> ou %<->*%> pour appeler une fonction via un pointeur vers un membre dans %<%E (...)%>, par ex: %<(... ->* %E) (...)%>"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE ne peut pas être utilisé comme une fonction"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "%qD ne peut pas être utilisé comme une fonction"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "l'expression ne peut pas être utilisée comme une fonction"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "trop d'arguments pour le constructeur %q#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "pas assez d'arguments pour le constructeur %q#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "trop d'arguments pour la fonction membre %q#D"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "trop peu d'arguments pour la fonction membre %q#D"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "trop d'arguments pour la fonction %q#D"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "trop peu d'arguments pour la fonction %q#D"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "trop d'arguments pour la méthode %q#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "pas assez d'arguments pour la méthode %q#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "trop d'arguments pour la fonction"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "trop peu d'arguments pour la fonction"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "le paramètre %P de %qD a un type incomplet %qT"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "le paramètre %P a un type incomplet %qT"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr "l'adresse de %qE ne sera jamais NULL"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "l'adresse de %qD ne sera jamais NULL"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "le compilateur peut supposer que l'adresse de %qE ne sera jamais NULL"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr "comparaison du résultat de l'addition de pointeur %qE et NULL"
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "le compilateur peut supposer que l'adresse de %qD ne sera jamais NULL"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "opération au niveau des bits entre les types énumérés différents %qT et %qT"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "l'opération au niveau des bits entre les types énumérés différents %qT et %qT est dépréciée"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "arithmétique entre des types énumérés différents %qT et %qT"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "l'arithmétique entre des types énumérés différents %qT et %qT est dépréciée"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "comparaison du type énuméré %qT avec le type en virgule flottante %qT"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "comparaison du type en virgule flottante %qT avec le type énuméré %qT"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr "la comparaison du type énuméré %qT avec le type en virgule flottante %qT est dépréciée"
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr "la comparaison du type en virgule flottante %qT avec le type énuméré %qT est dépréciée"
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr "arithmétique entre le type énuméré %qT et le type en virgule flottante %qT"
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "arithmétique entre le type en virgule flottante %qT et le type énuméré %qT"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr "l'arithmétique entre le type énuméré %qT et le type en virgule flottante %qT est déprécié"
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr "l'arithmétique entre le type en virgule flottante %qT et le type énuméré %qT est déprécié"
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "suppose un transtypage vers le type %qT depuis la fonction surchargée"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "NULL utilisé en arithmétique"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "le C++ ISO interdit la comparaison entre un pointeur et un entier"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "les types des opérandes sont %qT et %qT"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr "comparaison à trois voies de vecteurs"
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "comparaison ordonnée d'un pointeur avec un zéro entier (%qT et %qT)"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, gcc-internal-format
 msgid "unordered comparison on non-floating-point argument"
 msgstr "comparaison non ordonnée sur un argument n'étant pas en virgule flottante"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "conversion implicite de %qH vers %qI pour correspondre à d'autres opérandes de l'expression binaire"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "les opérandes des types %qT et %qT sont invalides pour le %qO binaire"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "le C++ ISO interdit l'utilisation d'un pointeur de type %<void *%> dans une soustraction"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "le C++ ISO interdit l'utilisation d'un pointeur vers une fonction dans une soustraction"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "le C++ ISO interdit l'utilisation d'un pointeur vers une méthode dans une soustraction"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "utilisation invalide d'un pointeur vers un type incomplet dans un pointeur arithmétique"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr "prise de l'adresse du destructeur %qD"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr "prise de l'adresse du destructeur %qD"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "utilisation invalide de %qE pour former un pointeur vers une fonction membre"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  un qualified-id est requis"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "les parenthèses autour de %qE ne peuvent pas être utilisées pour former un pointeur vers une fonction membre"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "le C++ ISO interdit de prendre l'adresse d'une fonction membre non statique non qualifié ou entre parenthèses pour former un pointeur vers une fonction membre. Utilisez %<&%T::%D%>"
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "le C++ ISO interdit de prendre l'adresse d'une fonction membre non statique non qualifié ou entre parenthèses pour former un pointeur vers une fonction membre d'un objet explicite"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "le C++ ISO interdit de prendre l'adresse d'une fonction membre liée pour former un pointeur vers une fonction membre. Utilisez %<&%T::%D%>"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "le C++ ISO interdit de prendre l'adresse d'une fonction membre liée pour former un pointeur vers une fonction membre d'un objet explicite"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "un pointeur vers une fonction membre d'un objet explicite peut seulement être formé avec %<&%T::%D%>"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, gcc-internal-format
 msgid "taking address of rvalue"
 msgstr "prise de l'adresse d'une r-valeur"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "le C++ ISO interdit de prendre l'adresse de la fonction %<::main%>"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "ne peut créer un pointeur vers le membre de référence %qD"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "tentative de prendre l'adresse d'un champ de bits"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "%<~%> sur une expression de type %<bool%>"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr "vouliez-vous utiliser le non logique (%<!%>) ?"
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "le C++ ISO interdit d'incrémenter un enum"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "le C++ ISO interdit de décrémenter un enum"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "ne peut incrémenter un pointeur vers le type incomplet %qT"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "ne peut décrémenter un pointeur vers le type incomplet %qT"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "le C++ ISO interdit d'incrémenter un pointeur du type %qT"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "le C++ ISO interdit de décrémenter un pointeur du type %qT"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr "l'expression %qs du type qualifié avec %<volatile%> est dépréciée"
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr "l'utilisation d'un opérande du type %qT dans %<operator--%> est interdite"
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr "l'utilisation d'un opérande du type %qT dans %<operator++%> est interdite en C++17"
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr "l'utilisation d'un opérande du type %qT dans %<operator++%> est dépréciée"
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "ne peut prendre l'adresse de %<this%> qui est une expression r-valeur"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "adresse de la variable registre explicite %qD requise"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "adresse requise pour %qD qui est déclaré %<register%>"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "une initialisation par liste pour un type non classe ne doit pas être entre parenthèses"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "la liste d'expressions est traitée comme une expression composée dans l'initialisation"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "la liste d'expressions est traitée comme une expression composée dans l'initialisation mémoire"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "la liste d'expressions est traitée comme une expression composée dans le transtypage fonctionnel"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "la liste d'expressions dans « %s » est traitée comme une expression composée"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr "pas de contexte pour résoudre le type de %qE"
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "le transtypage du type %qT vers le type %qT élimine les qualificatifs"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "utiliser %<static_cast%> pour transtyper du type %qT vers le type %qT élimine les qualificatifs"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "utiliser %<reinterpret_cast%> pour transtyper du type %qT vers le type %qT élimine les qualificatifs"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "transtypage inutile vers le type %q#T"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, gcc-internal-format
 msgid "type qualifiers ignored on cast result type"
 msgstr "les qualificatifs de type sont ignorés sur le type résultant du transtypage"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, gcc-internal-format
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "%<static_cast%> invalide depuis le type %qT vers le type %qT"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "le type classe %qT est incomplet"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 msgid "converting from %qH to %qI"
 msgstr "conversion de %qH vers %qI"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, gcc-internal-format
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "transtypage invalide d'une expression pr-valeur du type %qT vers le type %qT"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 msgid "cast from %qH to %qI loses precision"
 msgstr "le transtypage de %qH vers %qI perd en précision"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr "transtypage entre types de fonctions incompatibles de %qH vers %qI"
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "transtypage entre des pointeurs incompatibles vers des types membres de %qH vers %qI"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "le transtypage de %qH vers %qI augmente l'alignement requis pour le type ciblé"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "le transtypage entre un pointeur vers une fonction et un pointeur vers un objet est supporté conditionnellement"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "transtypage invalide à partir du type %qT vers le type %qT"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "utilisation invalide de %<const_cast%> avec le type %qT qui n'est pas un pointeur, une référence, ni un type pointeur vers une donnée membre"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "utilisation invalide de %<const_cast%> avec le type %qT qui est un pointeur ou une référence à un type fonction"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, gcc-internal-format
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "%<const_cast%> invalide d'une r-valeur du type %qT vers le type %qT"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, gcc-internal-format
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "%<const_cast%> invalide à partir du type %qT vers le type %qT"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "le C++ ISO interdit le transtypage vers un type tableau %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "transtypage invalide vers le type fonction %qT"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, gcc-internal-format
 msgid "moving %qE of type %qT to itself"
 msgstr "déplacement de %qE de type %qT sur lui-même"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr "supprime l'appel à %<std::move%>"
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  lors de l'évaluation de %<%Q(%#T, %#T)%>"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr "affectation à un tableau depuis une liste d'initialisation"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "types incompatibles dans l'affectation de %qT vers %qT"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "tableau utilisé comme initialisation"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "affectation de tableau invalide"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   dans la conversion d'un pointeur vers une fonction membre"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "conversion d'un pointeur vers un membre via la base virtuelle %qT"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   dans la conversion d'un pointeur vers un membre"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "conversion invalide vers le type %qT à partir du type %qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "ne peut convertir %qH en %qI dans l'argument par défaut"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "ne peut convertir %qH en %qI dans le passage d'argument"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "ne peut convertir %qH en %qI dans l'initialisation"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 msgid "cannot convert %qH to %qI in return"
 msgstr "ne peut convertir %qH en %qI dans le retour"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "ne peut convertir %qH en %qI dans l'affectation"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "le paramètre %qP de %qD pourrait être un candidat pour un attribut de format"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr "le paramètre pourrait être un candidat pour un attribut de format"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "la cible de la conversion pourrait être une candidate pour un attribut de format"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "la cible de l'initialisation pourrait être une candidate pour un attribut de format"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "le membre de gauche de l'affectation pourrait être un candidat pour un attribut de format"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "dans le passage de l'argument %P de %qD"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "retourne une référence vers un temporaire"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, gcc-internal-format
 msgid "returning pointer to temporary"
 msgstr "retourne un pointeur vers un temporaire"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr "retourner une %<initializer_list%> temporaire n'étend pas la durée de vie du tableau sous-jacent"
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr "référence vers la variable locale %qD retournée"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr "retourner la variable %<initializer_list%> locale %qD n'étend pas la durée de vie du tableau sous-jacent"
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr "adresse de l'étiquette %qD retournée"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr "adresse de la variable locale %qD retournée"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr "déplacer un objet temporaire empêche l'élision de la copie"
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr "déplacer un objet local dans une instruction de retour empêche l'élision de la copie"
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr "déplacement redondant dans l'instruction de retour"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr "déplacement redondant dans l'initialisation"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "retourne une valeur depuis un destructeur"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "ne peut retourner depuis le gestionnaire d'un try..catch sur tout le constructeur"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "retourne une valeur depuis un constructeur"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "instruction « return » sans valeur dans une fonction retournant %qT"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, gcc-internal-format
 msgid "returning initializer list"
 msgstr "liste d'initialisation retournée"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "les types incohérents %qT et %qT sont déduits du type retourné par la lambda"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "déduction incohérente pour le type de retour auto: %qT et puis %qT"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr "instruction « return » avec une valeur dans une fonction retournant %qT"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%> ne doit pas retourner NULL à moins qu'il soit déclaré %<throw()%> (ou %<-fcheck-new%> est actif)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr "copie non élidée au retour de %qD"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr "copie non élidée au retour dans %qD"
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, gcc-internal-format
 msgid "using rvalue as lvalue"
 msgstr "utilisation d'une r-valeur comme l-valeur"
@@ -66419,155 +66473,155 @@ msgstr "fonction surchargée sans information contextuelle de type"
 msgid "insufficient contextual information to determine type"
 msgstr "information contextuelle insuffisante pour déterminer le type"
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "syntaxe de constructeur utilisée mais aucun constructeur déclaré pour le type %qT"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "la variable %<constinit%> %qD n'a pas une initialisation constante"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "la conversion réductrice de %qE depuis %qH vers %qI est mal formée en C++11"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "conversion réductrice de %qE depuis %qH vers %qI"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr "l'expression a une valeur constante mais elle n'est pas une expression constante du C++"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, gcc-internal-format
 msgid "initializer-string for %qT is too long"
 msgstr "la chaîne d'initialisation pour %qT est trop longue"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr "l'initialisation d'une classe de base du type %qT résulte en un découpage d'objet"
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, gcc-internal-format
 msgid "remove %<{ }%> around initializer"
 msgstr "enlever %<{ }%> autour d'un initialiseur"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "impossible d'initialiser l'agrégat du type %qT avec un littéral composé"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "initialisation manquante pour le membre %qD"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "le membre %qD est une référence non initialisée"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "membre %qD avec des champs de référence non initialisés"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "l'ordre du désignateur pour le champ %qD ne correspond pas à l'ordre de la déclaration dans %qT"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "pas de champ %qD trouvé dans l'union initialisée"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "valeur d'index au lieu d'un nom de champ dans l'initialisation de l'union"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "délégation de pointeur circulaire détectée"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "l'opérande de base de %<->%> a un type non pointeur %qT"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "le résultat de %<operator->()%> est un non pointeur"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "l'opérande de base de %<->%> n'est pas un pointeur"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE ne peut pas être utilisé comme pointeur de membre puisqu'il est de type %qT"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "ne peut appliquer le pointeur membre %qE à %qE lequel est d'un type non classe %qT"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "le pointeur vers le type membre %qT est incompatible avec le type d'objet %qT"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "le type pointeur vers une fonction membre %qT requiert une r-valeur"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "le type pointeur vers une fonction membre %qT requiert une l-valeur"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "le type pointeur vers une fonction membre %qT requiert une l-valeur avant C++20"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "transtypage fonctionnel vers le type tableau %qT"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "%<auto(x)%> ne peut être contraint"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<auto(x)%> est uniquement disponible avec %<-std=c++2b%> ou %<-std=gnu++2b%>"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "l'initialisation par valeur du type référence est invalide"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "appel à la fonction %qD qui génère une exception du type incomplet %q#T"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "appel à une fonction qui génère une exception du type incomplet %q#T"
@@ -67545,7 +67599,7 @@ msgstr "La constante littérale BOZ à %L ne peut pas être un argument effectif
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "Les arguments de %qs à %L et %L ne peuvent pas être tous les deux des constantes littérales BOZ"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr "Utilisation invalide de la constant littérale BOZ à %L"
@@ -68868,7 +68922,7 @@ msgstr "Mauvaise spécification INTENT à %C"
 msgid "deferred type parameter at %C"
 msgstr "paramètre de type différé à %C"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr "Expression INTEGER scalaire attendue à %L"
@@ -69083,7 +69137,7 @@ msgstr "Le composant %qs avec CLASS à %C doit être allouable ou un pointeur"
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "Le composant tableau de structures à %C doit avoir une forme explicite ou différée"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr "Le composant %qs à %C est déjà déclaré à %L"
@@ -69884,7 +69938,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "Liste d'arguments formels attendue dans la définition de la fonction à %C"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr "L'attribut BIND(C) à %L peut uniquement être utilisé pour des variables ou des blocs communs"
@@ -70691,12 +70745,12 @@ msgstr "identical_array_ref(): dimensions incohérentes"
 msgid "are_identical_variables: Bad type"
 msgstr "are_identical_variables: Mauvais type"
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr "L'argument effectif de INTENT(%s) à %L pourrait interférer avec l'argument effectif à %L."
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr "gfc_check_dependency: on attendait une EXPR_VARIABLE"
@@ -70944,273 +70998,273 @@ msgstr "Le paramètre %qs à %L n'a pas été déclaré ou est une variable qui
 msgid "check_init_expr(): Unknown expression type"
 msgstr "check_init_expr(): Type d'expression inconnu"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "La fonction de spécification %qs à %L ne peut pas être une fonction-instruction"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "La fonction de spécification %qs à %L ne peut pas être une fonction interne"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr "La fonction de spécification %qs à %L doit être PURE"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "La fonction de spécification %qs à %L ne peut pas être RECURSIVE"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "L'argument muet %qs n'est pas autorisé dans l'expression à %L"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "L'argument muet %qs à %L ne peut pas être OPTIONAL"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "L'argument muet %qs à %L ne peut pas être INTENT(OUT)"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "La variable %qs ne peut pas apparaître dans l'expression à %L"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr "check_restricted(): Type d'expression inconnu"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "L'expression à %L doit être du type INTEGER et non %s"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "La fonction %qs à %L doit être PURE"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "L'expression à %L doit être un scalaire"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr "débordement de optype_msgid :%d"
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "Rangs incompatibles dans %s (%d et %d) à %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "Forme différente pour %s à %L sur la dimension %d (%d et %d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr "L'affectation à un part_ref LEN ou KIND à %L n'est pas permis"
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "%qs à %L n'est pas une VALUE"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr "Affectation illégale à une procédure externe à %L"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "Rangs incompatibles %d et %d dans l'affectation à %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "Le type de la variable est inconnu dans l'affectation à %L"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "NULL apparaît dans le membre de droite de l'affectation à %L"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "Une fonction avec la valeur d'un POINTER apparaît dans le membre de droite de l'affectation à %L"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr "La constante littérale BOZ près de %L ne peut pas être assignée à la variable %qs"
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr "L'affectation à un composant KIND ou LEN d'un type paramétrisé à %L n'est pas permis"
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "Types incompatibles dans l'instruction DATA à %L; tentative de conversion de %s en %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "La cible de l'affectation du pointeur n'est pas un POINTER à %L"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "%qs dans l'affectation de pointeur à %L ne peut pas être une l-valeur puisqu'il est une procédure"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "Spécification de limites attendue pour %qs à %L"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Spécification des limites pour %qs dans une affectation de pointeur à %L"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr "Le pas ne doit pas être présent à %L"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr "Le remappage de rang requiert une liste de spécifications %<borne-inf : borne-sup%> à %L"
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr "Liste de %<borne-inf :%> ou liste de %<borne-inf : borne-sup%> attendue à %L"
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "L'objet pointeur à %L ne sera point un co-index"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "Affectation de pointeur de procédure invalide à %L"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "Le résultat de la fonction %qs est invalide comme cible de procédure dans l'affectation du pointeur de procédure à %L"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "L'interface abstraite %qs est invalide dans l'affectation du pointeur de procédure à %L"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "La fonction-instruction %qs est invalide dans l'affectation du pointeur de procédure à %L"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "La procédure interne %qs est invalide dans l'affectation du pointeur de procédure à %L"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "L'intrinsèque %qs à %L est invalide dans une affectation du pointeur de procédure"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "La procédure élémentaire non intrinsèque %qs est invalide dans l'affectation du pointeur de procédure à %L"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr "Désaccord dans l'affectation du pointeur de procédure à %L: désaccord dans la convention d'appel"
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "Désaccord d'interface dans l'affectation du pointeur de procédure à %L: %qs n'est pas une sous-routine"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "Interface explicite requise pour le composant %qs à %L: %s"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "Interface explicite requise pour %qs à %L: %s"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "Interface non concordante dans l'affectation du pointeur de procédure à %L: %s"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr "La cible du pointeur de procédure %qs à %L doit être un intrinsèque, associé à l'hôte or à use, référencé ou avoir l'attribut EXTERNAL"
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "La cible de l'affectation du pointeur ne peut pas être une constante à %L"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr "L'objet pointeur de données à %L doit être polymorphique illimité ou être d'un type avec l'attribut BIND ou SEQUENCE pour être compatible avec une cible polymorphique illimitée"
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "Types différents dans une affectation de pointeur à %L; tentative d'affecter %s à %s"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "Paramètres de type de sous-type différents dans l'affectation de pointeur à %L"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "Rangs différents dans l'affectation du pointeur à %L"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr "La cible du remappage du rang est plus petite que la taille du pointeur (%ld < %ld) à %L"
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr "La cible du remappage du rang doit avoir le rang 1 ou être simplement contigüe à %L"
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr "La cible du remappage du rang n'a pas le rang 1 à %L"
@@ -71218,192 +71272,192 @@ msgstr "La cible du remappage du rang n'a pas le rang 1 à %L"
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr "La cible de données à %L n'aura point de co-index"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "L'expression cible dans l'affectation de pointeur à %L doit fournir un pointeur comme résultat"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr "Tableau de taille nulle détecté à %L où une entité avec l'attribut TARGET est attendu"
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "La cible de l'affectation du pointeur dans l'expression d'initialisation n'a pas l'attribut TARGET à %L"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "Chaque indice de la spécification cible à %L doit être une expression constante"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr "Les points de départ et de fin de la sous-chaîne de spécification de cible à %L doivent être des expressions constantes"
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "La cible de l'affectation du pointeur n'est ni TARGET ni POINTER à %L"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "Mauvaise cible dans l'affectation du pointeur dans la procédure PURE à %L"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "Affectation de pointeur avec un indice de vecteur dans le membre de droite à %L"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "La cible de l'affectation du pointeur a l'attribut PROTECTED à %L"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr "Affectation à un pointeur contigu depuis une cible non contigüe à %L"
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr "Le pointeur à %L dans l'affectation de pointeur pourrait vivre plus longtemps que la cible pointée"
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "La cible de l'initialisation de pointeur à %L ne doit pas être ALLOCATABLE"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "La cible de l'initialisation du pointeur à %L ne doit pas avoir l'attribut TARGET"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "La cible de l'initialisation du pointeur à %L doit avoir l'attribut SAVE"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr "La cible de l'initialisation du pointeur de procédure à %L ne peut pas être un pointeur de procédure"
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "La procédure interne %qs est invalide dans l'initialisation du pointeur de procédure à %L"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "La procédure fictive %qs est invalide dans l'initialisation du pointeur de procédure à %L"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr "generate_isocbinding_initializer(): mauvais type iso_c_binding, %<c_ptr%> ou %<c_funptr%> attendu"
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "Fortran 2008: Fonctions pointeurs dans le contexte de la définition de variable (%s) à %L"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr "Expression non variable dans le contexte de définition de variable (%s) à %L"
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr "Constante nommée %qs dans le contexte de la définition de variable (%s) à %L"
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "%qs dans le contexte de définition de variable (%s) à %L n'est pas une variable"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr "Non POINTER dans le contexte d'association de pointeur (%s) à %L"
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr "Type inaccessible dans le contexte de définition de variable (%s) à %L"
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr "LOCK_TYPE dans le contexte de définition de variable (%s) à %L"
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr "LOCK_EVENT dans un contexte de définition de variable (%s) à %L"
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "Requête de paramètre %qs pour %qs dans le contexte de la définition de variable (%s) à %L"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr "Argument muet %qs avec INTENT(IN) dans un contexte d'association de pointeur (%s) à %L"
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr "Argument muet %qs avec INTENT(IN) dans le contexte de définition de variable (%s) à %L"
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "La variable %qs est PROTECTED et ne peut pas apparaître dans le contexte d'association de pointeur (%s) à %L"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "La variable %qs est PROTECTED et ne peut pas apparaître dans le contexte de définition de variable (%s) à %L"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "La variable %qs ne peut pas apparaître dans le contexte de définition de variable (%s) à %L dans la procédure PURE"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr "%qs à %L associé à la cible vecteur indexé ne peut pas être utilisé dans le contexte de définition de variable (%s)"
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr "%qs à %L associé a une expression ne peut pas être utilisé dans un contexte de définition de variable (%s)"
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr "%qs à %L est associé a un pointeur qui cible une fonction qui est utilisé dans un contexte de définition de variable (%s)"
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "Le nom associé %qs ne peut pas apparaître dans le contexte de définition de variable (%s) à %L car sa cible à %L ne le peut pas non plus"
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr "Éléments avec la même valeur à %L et %L dans l'indice de vecteur dans le contexte de définition de variable (%s)"
@@ -71424,8 +71478,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr "Identifiant illégal dans copy_walk_reduction_arg"
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "Création d'un tableau temporaire à %L"
@@ -71505,7 +71559,7 @@ msgstr "La variable %qs à %L a une valeur non définie à l'intérieur de la bo
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "La variable %qs à %L n'est pas définissable à l'intérieur de la boucle commençant à %L comme argument INTENT(INOUT) de la fonction %qs"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr "Le code pour réallouer le tableau allouable à %L sera ajouté"
@@ -71640,12 +71694,12 @@ msgstr "Le premier argument de l'affectation définie à %L doit être INTENT(OU
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "Le deuxième argument de l'affection définie à %L doit être INTENT(IN)"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "Le premier argument de l'interface de l'opérateur à %L doit être INTENT(IN)"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "Le deuxième argument de l'interface de l'opérateur à %L doit être INTENT(IN)"
@@ -72515,7 +72569,7 @@ msgstr "Conversion de %s vers %s à %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr "Impossible de convertir %s en %s à %L"
@@ -73066,7 +73120,7 @@ msgstr "NAMELIST %qs dans l'instruction READ à %L contient le symbole %qs qui n
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr "L'objet NAMELIST %qs dans la liste de noms %qs à %L est polymorphique et requiert une procédure d'entrée/sortie définie"
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr "Objet NAMELIST %qs dans la liste de noms %qs à %L avec des composants ALLOCATABLE ou POINTER"
@@ -73232,6 +73286,11 @@ msgstr "débordement de l'identificateur : %d"
 msgid "check_charlen_present(): length not set"
 msgstr "check_charlen_present(): longueur non définie"
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -73633,7 +73692,7 @@ msgstr "Le code STOP à %L doit être un caractère par défaut avec KIND=%d"
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "Le code STOP à %L doit être un entier par défaut avec KIND=%d"
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr "Le spécificateur QUIET à %L doit être un scalaire LOGICAL"
@@ -74156,83 +74215,83 @@ msgstr "erreur d'analyse dans l'instruction SELECT TYPE à %C"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr "Le sélecteur dans SELECT TYPE à %C n'est pas une variable nommée; utilisez associate-name=>"
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr "Instruction SELECT RANK à %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr "Le sélecteur de SELECT RANK à %C doit être une variable de rang tacite"
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "erreur d'analyse dans l'instruction SELECT RANK à %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "Instruction CASE inattendue à %C"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "Erreur de syntaxe dans la spécification CASE à %C"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "Instruction TYPE IS inattendue à %C"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr "La spécification de type ne spécifiera point un type dérivé d'une séquence ou un type avec l'attribut BIND dans SELECT TYPE à %C [F2003:C815]"
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr "Tous les paramètres de type LEN dans l'instruction TYPE IS à %C doivent être ASSUMED"
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "Erreur de syntaxe dans la spécification TYPE IS à %C"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "Erreur de syntaxe dans la spécification CLASS IS à %C"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected RANK statement at %C"
 msgstr "Instruction RANK inattendue à %C"
 
 # %s est toujours « INTEGER » et rien d'autre
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "L'expression SELECT RANK CASE à %C doit être une constante entière scalaire"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr "La valeur de l'expression SELECT RANK CASE à %C ne peut pas être inférieure à zéro ou plus grande que %d"
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr "Erreur de syntaxe dans la spécification RANK à %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "Instruction ELSEWHERE à %C pas englobée dans un bloc WHERE"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr "L'étiquette %qs à %C ne correspond pas à l'étiquette %qs de WHERE"
@@ -75651,8 +75710,8 @@ msgstr "Le paramètre de la clause ORDERED est plus petit que COLLAPSE à %L"
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr "la clause ORDER ne doit pas être utilisée avec ORDERED à %L"
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "La clause IF à %L requiert une expression LOGICAL scalaire"
@@ -78026,12 +78085,12 @@ msgstr "L'intrinsèque %qs déclaré INTRINSIC à %L n'est pas disponible avec l
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "La procédure non RECURSIVE %qs du module %s s'appelle peut-être elle-même récursivement dans la procédure %qs. Déclarez la RECURSIVE ou utilisez %<-frecursive%>"
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "La procédure non RECURSIVE %qs à %L semble s'appeler elle-même récursivement. Déclarez la RECURSIVE ou utilisez %<-frecursive%>"
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "L'étiquette %d référencée à %L n'est jamais définie"
@@ -78151,7 +78210,7 @@ msgstr "Déclaration explicite manquante avec l'attribut EXTERNAL pour le symbol
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "La fonction %qs à %L n'a pas de type IMPLICIT, vouliez-vous employer %qs ?"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr "La fonction %qs à %L n'a pas de type IMPLICIT"
@@ -78552,281 +78611,287 @@ msgstr "La variable de type tacite %s à %L n'aura point de référence à un so
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "La variable de rang tacite %s à %L n'aura point de référence à un sous-objet"
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "La variable scalaire %qs a une référence à un tableau à %L"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr "La variable %qs, utilisée dans une expression de spécification, est référencée à %L avant l'instruction ENTRY dans laquelle elle est un paramètre"
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr "La variable %qs est utilisée à %L avant l'instruction ENTRY dans laquelle elle est un paramètre"
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr "Sous-objet polymorphique d'un objet co-indexé à %L"
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr "Objet co-indexé avec un sous-composant allouable polymorphique à %L"
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr "L'utilisation de la variable %qs à %L est obsolète"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Bad array reference at %L"
+msgid "Invalid array reference at %L"
+msgstr "Mauvaise référence à un tableau à %L"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr "%qs à %L est associé à l'hôte à %L dans une procédure contenue avec une procédure interne du même nom"
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr "Erreur dans l'appel avec type lié à %L"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "L'objet passé à %L doit être scalaire"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr "L'objet de base pour l'appel de composant pointeur de procédure à %L est du type ABSTRACT %qs"
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr "L'objet de base pour l'appel de procédure liée au type à %L est du type ABSTRACT %qs"
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "L'objet de base pour l'appel de procédure liée au type NOPASS à %L doit être scalaire"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr "Aucune liaison spécifique correspondante pour l'appel à GENERIC %qs à %L"
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "%qs à %L devrait être une SUBROUTINE"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr "%qs à %L devrait être une FUNCTION"
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "gfc_resolve_expr(): Mauvais type d'expression"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s à %L doit être un scalaire"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "%s à %L doit être un entier"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s à %L doit être INTEGER"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "L'expression de pas dans la boucle DO à %L ne peut pas être zéro"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr "La boucle DO à %L sera exécutée zéro fois"
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr "La boucle DO à %L est indéfinie car elle déborde"
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr "La boucle DO à %L est indéfinie car elle déborde vers le bas"
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "Le nom d'index FORALL à %L doit être un INTEGER scalaire"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "L'expression de départ de FORALL à %L doit être un INTEGER scalaire"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "L'expression de fin de FORALL à %L doit être un INTEGER scalaire"
 
 # %s est toujours « INTEGER » et rien d'autre
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "L'expression de pas de FORALL à %L doit être un %s scalaire"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "L'expression de pas de FORALL à %L ne peut pas être zéro"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "L'index %qs de FORALL ne peut pas apparaître dans une spécification de triplet à %L"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "L'objet allouable à %L doit être ALLOCATABLE ou un POINTER"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr "Objet allouable co-indexé à %L"
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr "L'expression source à %L doit être scalaire ou avoir le même rang que l'objet allouable à %L"
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr "L'expression source à %L et l'objet allouable à %L doivent avoir la même forme"
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr "Le type de l'entité à %L a un type incompatible avec l'expression source à %L"
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr "L'objet allouable à %L et l'expression source à %L auront le même paramètre de sous-type"
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr "L'expression source à %L n'aura ni le type LOCK_TYPE ni un composant LOCK_TYPE si l'objet allouable à %L est un co-tableau"
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr "L'expression source à %L n'aura ni le type EVENT_TYPE ni un composant EVENT_TYPE si l'objet allouable à %L est un co-tableau"
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr "L'allocation de %s du type de base ABSTRACT à %L requiert une spécification de type ou une expression source"
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr "L'allocation de %s à %L avec la spécification de type requiert la même longueur de caractères dans le paramètre que dans la déclaration"
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "Spécification de tableau requise dans l'instruction ALLOCATE à %L"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "Une spécification de tableau ou une expression SOURCE= avec une valeur tableau est requise dans l'instruction ALLOCATE à %L"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "Spécification de co-tableau requise dans l'instruction ALLOCATE à %L"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "Mauvaise spécification de co-tableau dans l'instruction ALLOCATE à %L"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr "La co-borne supérieure est plus petite que la co-borne inférieure à %L"
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr "La co-borne supérieure est plus petite que la co-borne inférieure 1 à %L"
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "Mauvaise spécification de tableau dans l'instruction ALLOCATE à %L"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "%qs ne doit pas apparaître dans la spécification de tableau à %L dans la même instruction ALLOCATE où il est lui-même alloué"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "%<*%> attendu dans la spécification du co-index dans l'instruction ALLOCATE à %L"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "La variable stat à %L doit être une variable INTEGER scalaire"
 
 # les deux %s sont le même mot-clé "ALLOCATE" ou "DEALLOCATE" utilisés une fois comme mot et comme instruction, merde les mecs, ils pourraient faire attention aux traducteurs…
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "La variable stat à %L ne sera point qualifiée par %s dans la même instruction %s"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr "ERRMSG à %L est inutile sans la balise STAT"
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "La variable ERRMSG à %L sera une variable CHARACTER du scalaire par défaut"
 
 # les deux %s sont le même mot-clé "ALLOCATE" ou "DEALLOCATE" utilisés une fois comme mot et comme instruction, merde les mecs, ils pourraient faire attention aux traducteurs…
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr "La variable errmsg à %L ne sera point qualifiée par %s dans la même instruction %s"
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr "L'objet alloué à %L apparaît aussi à %L"
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr "L'objet alloué à %L est un sous-objet d'un objet à %L"
@@ -78835,284 +78900,284 @@ msgstr "L'objet alloué à %L est un sous-objet d'un objet à %L"
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "L'étiquette CASE à %L chevauche l'étiquette CASE à %L"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "L'expression dans l'instruction CASE à %L doit être du type %s"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "L'expression dans l'instruction CASE à %L doit être du sous-type %d"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "L'expression dans l'instruction CASE à %L doit être scalaire"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "L'expression de sélection dans le GOTO calculé à %L doit être une expression entière scalaire"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "L'argument de l'instruction SELECT à %L ne peut pas être %s"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "L'argument de l'expression SELECT à %L doit être une expression scalaire"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "L'expression dans l'instruction CASE à %L n'est pas dans la plage de %s"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "Le DEFAULT CASE à %L ne peut pas être suivi par un second DEFAULT CASE à %L"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "Une plage logique n'est pas permise dans l'instruction CASE à %L"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "La valeur logique constante est répétée dans l'instruction CASE à %L"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "La spécification d'étendue à %L ne peut jamais correspondre à quoi que ce soit"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "Le bloc SELECT CASE logique à %L a plus de deux cas"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "L'entité associante %qs à %L est un pointeur de procédure"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "Le type dérivé %qs ne peut pas être utilisé comme une variable à %L"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "L'entité associante %qs à %L est un nom de procédure"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr "L'expression de sélecteur associant à %L donne une procédure"
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr "Le sélecteur à %L ne peut pas NULL()"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr "Le sélecteur à %L n'a pas de type"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr "Le nom associé %qs à %L est utilisé comme tableau"
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr "Le sélecteur CLASS à %L a besoin d'un temporaire qui n'est pas encore implémenté"
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "Le sélecteur sera polymorphique dans l'instruction SELECT TYPE à %L"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr "Le sélecteur à %L ne doit pas être co-indexé"
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "TYPE IS à %L chevauche TYPE IS à %L"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr "Le type dérivé %qs à %L doit être extensible"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "Le type dérivé %qs à %L doit être une extension de %qs"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "Type intrinsèque %qs inattendu à %L"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr "La spécification de type à %L doit spécifier que chaque paramètre de type de longueur est tacite"
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr "Bloc CLASS IS en double dans l'instruction SELECT TYPE à %L"
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr "RANK DEFAULT à %L est répété à %L"
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr "RANK (*) à %L est répété à %L"
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr "RANK (%i) à %L est répété à %L"
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr "RANK (*) à %L ne peut pas être utilisé avec un pointeur ou un sélecteur allouable à %L"
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Contexte invalide pour l'intrinsèque NULL () à %L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "La procédure DTIO %s à %L doit être récursive"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr "L'élément de transfert de données à %L ne peut pas être polymorphique à moins qu'il soit traité par une procédure d'entrée/sortie définie"
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "L'élément de transfert de données à %L ne peut pas avoir de composants POINTER à moins qu'il soit traité par une procédure d'entrée/sortie définie"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "L'élément de transfert de données à %L ne peut pas avoir de composants de pointeur de procédure"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "L'élément de transfert de données à %L ne peut pas avoir de composants ALLOCATABLE à moins qu'il soit traité par une procédure d'entrée/sortie définie"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "L'élément de transfert de données à %L ne peut pas avoir de composants PRIVATE"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "L'élément de transfert de données à %L ne peut pas avoir de composants PRIVATE à moins qu'il soit traité par une procédure d'entrée/sortie définie"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "L'élément de transfert de données à %L ne peut pas être une référence complète à un tableau de taille tacite"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "La variable verrou à %L doit être un scalaire de type LOCK_TYPE"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "La variable d'événement à %L doit être un scalaire de type EVENT_TYPE"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "L'argument variable d'événement à %L doit être un co-tableau ou co-indexé"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "L'argument variable d'événement à %L doit être un co-tableau mais pas co-indexé"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "L'argument STAT= à %L doit être une variable INTEGER scalaire"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "L'argument ERRMSG= à %L doit être une variable CHARACTER scalaire"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "L'argument ACQUIRED_LOCK= à %L doit être une variable LOGICAL scalaire"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "L'argument UNTIL_COUNT= à %L doit être une expression INTEGER scalaire"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "L'argument imageset à %L doit être une expression scalaire ou INTEGER de rang 1"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "L'argument imageset à %L doit être entre 1 et num_images()"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "L'instruction à %L n'est pas une instruction cible valable pour l'instruction de branchement à %L"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr "Le branchement à %L peut conduire à une boucle infinie"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr "L'instruction GOTO à %L quitte une construction CRITICAL pour l'étiquette à %L"
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr "L'instruction GOTO à %L quitte une construction DO CONCURRENT pour l'étiquette à %L"
@@ -79120,212 +79185,212 @@ msgstr "L'instruction GOTO à %L quitte une construction DO CONCURRENT pour l'é
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "L'étiquette à %L n'est pas dans le même bloc que l'instruction GOTO à %L"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "Le masque WHERE à %L a une forme inconsistante"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "La cible de l'affectation WHERE à %L a une forme inconsistante"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr "Affectation définie par l'utilisateur non ELEMENTAL dans WHERE à %L"
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "Instruction non supportée à l'intérieur de WHERE à %L"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "Affectation à une variable d'index FORALL à %L"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "Le FORALL avec l'index %qs n'est pas utilisé dans le membre de gauche de l'affectation à %L et, par conséquent, pourrait causer de multiples affectations à cet objet"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr "Construction FORALL à %L"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "Le nom d'index de FORALL à %L doit être une variable scalaire de type entier"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "Une construction de boucle FORALL extérieure a déjà un index avec ce nom à %L"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "La clause WHERE/ELSEWHERE à %L requiert un tableau LOGICAL"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr "gfc_resolve_blocks(): Mauvais type de bloc"
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "La variable dans l'assignation ordinaire à %L est un composant pointeur de procédure"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "L'expression CHARACTER sera tronquée dans l'affectation (%wd/%wd) à %L"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "L'expression co-indexée à %L est affectée à une variable de type dérivé avec un composant POINTER dans une procédure PURE"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr "Dans un sous-programme pure, un argument fictif INTENT(IN) ne sera point utilisé comme l'expression à %L d'une instruction d'affectation intrinsèque dans laquelle la variable est d'un type dérivé si le type dérivé a un composant pointeur à n'importe quel niveau de la sélection du composant."
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "Affectation à une variable co-indexée à %L dans une procédure PURE"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr "L'affectation à un co-tableau polymorphique à %L n'est pas permise"
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "Affectation à une variable polymorphique allouable à %L"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr "L'affectation à une variable polymorphique allouable à %L requiert %<-frealloc-lhs%>"
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr "La variable non allouable ne doit pas être polymorphique dans l'affectation intrinsèque à %L – vérifiez qu'il existe une sous-routine spécifique correspondante pour l'opérateur %<=%>"
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr "La variable co-indexée ne doit pas avoir un composant ultimement allouable dans l'affectation à %L"
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr "À FAIRE: la/les affectation(s) liée(s) au type à %L n'ont pas été réalisées car des références multiples à des parties de tableaux apparaîtraient dans des expressions intermédiaires."
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr "Affectation à une procédure pointeur à %L"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "Le résultat de la fonction dans le membre de gauche de l'affectation à %L doit avoir l'attribut pointeur."
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "L'argument TEAM de %qs à %L doit être une expression scalaire de type TEAM_TYPE"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "L'argument TEAM NUMBER pour FROM TEAM à %L doit être un INTEGER scalaire"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "L'instruction ASSIGNED GOTO à %L requiert une variable INTEGER scalaire"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "Une étiquette cible n'a pas été affectée à la variable %qs à %L"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "L'instruction RETURN alternatif à %L requiert un spécificateur de retour SCALAR-INTEGER"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "Assignation intrinsèque attendue dans OMP WORKSHARE à %L"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "L'instruction ASSIGN à %L requiert une variable scalaire INTEGER par défaut"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr "NULL invalide à %L"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "L'instruction IF arithmétique à %L requiert une expression scalaire REAL ou INTEGER"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr "gfc_resolve_code(): Pas d'expression dans le DO WHILE"
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "La condition de sortie de la boucle DO WHILE à %L doit être une expression LOGICAL scalaire"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "La clause de masque FORALL à %L requiert une expression scalaire LOGICAL"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_resolve_code(): Mauvais code d'instruction"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "L'utilisation du paramètre %qs déclaré à %L est obsolète"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "La variable %qs avec l'étiquette de liaison %qs à %L utilise le même identificateur global que l'entité à %L"
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr "La variable %qs du module %qs avec l'étiquette de liaison %qs à %L utilise le même identificateur global que l'entité à %L du module %qs"
@@ -79333,1001 +79398,1001 @@ msgstr "La variable %qs du module %qs avec l'étiquette de liaison %qs à %L uti
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "La procédure %qs avec l'étiquette de liaison %qs à %L utilise le même identificateur global que l'entité à %L"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "La longueur de chaîne à %L est trop grande"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "Le tableau allouable %qs à %L doit avoir une forme différée ou un rang tacite"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "L'objet scalaire %qs à %L ne peut pas être ALLOCATABLE"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "Le pointeur tableau %qs à %L doit avoir une forme différée ou un rang tacite"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "Le tableau %qs à %L ne peut pas avoir une forme différée"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr "Le type %qs de la variable CLASS %qs à %L n'est pas extensible"
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr "La variable CLASS %qs à %L doit être muette, allouable ou pointeur"
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr "Le type %qs ne peut pas être associé à un hôte à %L car il est bloqué par un objet incompatible du même nom déclaré à %L"
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr "SAVE implicite pour la variable module %qs à %L, nécessaire à cause de l'initialisation par défaut"
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "L'entité %qs à %L a un paramètre de type différé et requiert soit l'attribut POINTER ou ALLOCATABLE"
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "Le tableau %qs à %L du module ou du programme principal doit avoir une forme constante"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "L'entité avec une longueur de caractère tacite à %L doit être un argument muet ou un PARAMETER"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr "%qs à %L doit avoir une longueur de caractère constante dans ce contexte"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "La variable COMMON %qs à %L doit avoir une longueur de caractère constante"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "L'allouable %qs à %L ne peut pas avoir une initialisation"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr "L'externe %qs à %L ne peut pas avoir une initialisation"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "Le muet %qs à %L ne peut pas avoir une initialisation"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "L'intrinsèque %qs à %L ne peut pas avoir une initialisation"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "Le résultat de fonction %qs à %L ne peut pas avoir une initialisation"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "Le tableau automatique %qs à %L ne peut pas avoir une initialisation"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr "%s à %L"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "La fonction-instruction %qs avec une valeur de caractère à %L doit avoir une longueur constante"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "%qs est d'un type PRIVATE et ne peut pas être un argument muet de %qs, qui est PUBLIC à %L"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr "La procédure %qs dans l'interface PUBLIC %qs à %L prend des arguments muets de %qs qui est PRIVATE"
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "La fonction %qs à %L ne peut pas avoir une initialisation"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr "L'objet externe %qs à %L ne peut pas avoir d'initialisation"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "La fonction ELEMENTAL %qs à %L doit avoir un résultat scalaire"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "La fonction-instruction %qs à %L ne peut pas avoir l'attribut pointeur ou allouable"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "La fonction CHARACTER(*) %qs à %L ne peut pas avoir la valeur d'un tableau"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "La fonction CHARACTER(*) %qs à %L ne peut pas avoir la valeur d'un pointeur"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "La fonction CHARACTER(*) %qs à %L ne peut pas être pure"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "La fonction CHARACTER(*) %qs à %L ne peut pas être récursive"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "Fonction CHARACTER(*) %qs à %L"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "Le pointeur de procédure %qs à %L ne sera point élémental"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "La procédure muette %qs à %L ne sera point élémentale"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr "La variable résultat %qs de la fonction à %L de la fonction élémentale %qs n'aura point l'attribut ALLOCATABLE ou POINTER"
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "L'attribut PROCEDURE est en conflit avec l'attribut SAVE dans %qs à %L"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "L'attribut PROCEDURE est en conflit avec l'attribut INTENT dans %qs à %L"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "L'attribut PROCEDURE est en conflit avec l'attribut RESULT dans %qs à %L"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "L'attribut EXTERNAL est en conflit avec l'attribut FUNCTION dans %qs à %L"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr "Le résultat du pointeur de procédure %qs à %L n'a pas d'attribut pointeur"
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Désaccord sur l'attribut ELEMENTAL entre MODULE PROCEDURE à %L et son interface dans %s"
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Désaccord sur l'attribut PURE entre MODULE PROCEDURE à %L et son interface dans %s"
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Désaccord sur l'attribut RECURSIVE entre MODULE PROCEDURE à %L et son interface dans %s"
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr "%s entre la déclaration MODULE PROCEDURE dans MODULE %qs et la déclaration à %L dans (SUB)MODULE %qs"
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr "L'interface de %qs à %L doit être explicite"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "La procédure FINAL %qs à %L n'est pas une SUBROUTINE"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "La procédure FINAL à %L doit avoir exactement un argument"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "L'argument de la procédure FINAL à %L doit être du type %qs"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr "La procédure FINAL à %L avec un argument de rang tacite doit être le seul finaliseur avec le même genre/type (F2018: C790)"
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "L'argument de la procédure FINAL à %L ne peut pas être un POINTER"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "L'argument de la procédure FINAL à %L ne peut pas être ALLOCATABLE"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "L'argument de la procédure FINAL à %L ne peut pas être OPTIONAL"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "L'argument de la procédure FINAL à %L ne peut pas être INTENT(OUT)"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "La procédure FINAL non scalaire à %L devrait avoir un argument de forme tacite"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "La procédure FINAL %qs déclarée à %L a le même rang (%d) que %qs"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr "Seules des procédures FINAL tableaux déclarées pour le type dérivé %qs à %L, une scalaire est également suggérée à moins qu'un finaliseur de rang tacite a été déclaré"
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr "%qs et %qs ne peuvent pas être FUNCTION/SUBROUTINE mixte pour GENERIC %qs à %L"
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr "%qs et %qs pour GENERIC %qs à %L sont ambigus"
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr "Liaison spécifique %qs non définie comme cible du GENERIC %qs à %L"
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr "GENERIC %qs à %L doit cibler une liaison spécifique, %qs est GENERIC aussi"
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr "GENERIC %qs à %L ne peut écraser la liaison spécifique avec le même nom"
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "L'opérateur lié au type à %L ne peut pas être NOPASS"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "%qs doit être une procédure de module ou une procédure externe avec une interface explicite à %L"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "La procédure %qs avec PASS(%s) à %L n'a pas d'argument %qs"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "La procédure %qs avec PASS à %L doit avoir au moins un argument"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "Argument muet passé comme objet non polymorphique de %qs à %L"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "L'argument %qs de %qs avec PASS(%s) à %L doit être du type dérivé %qs"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "L'argument %qs de %qs avec PASS(%s) à %L doit être du type paramétré dérivé %qs"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr "Tous les paramètres de type LEN de l'argument muet %qs de %qs à %L doivent être ASSUMED."
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "L'argument muet de type objet passé de %qs à %L doit être scalaire"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "L'argument muet de type objet passé de %qs à %L ne peut pas être ALLOCATABLE"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "L'argument muet de type objet passé de %qs à %L ne peut pas être POINTER"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "La procédure %qs à %L a le même nom qu'un composant de %qs"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "La procédure %qs à %L a le même nom qu'un composant hérité de %qs"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr "Le type dérivé %qs déclaré à %L doit être ABSTRACT car %qs est DEFERRED et pas redéfini"
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "Le composant co-tableau %qs à %L doit être allouable avec une forme différée"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "Le composant %qs à %L ayant TYPE(C_PTR) ou TYPE(C_FUNPTR) ne sera point un co-tableau"
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr "Le composant %qs à %L avec le composant co-tableau sera un scalaire non pointeur, non allouable"
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr "Le composant %qs à %L a l'attribut CONTIGUOUS mais n'est pas un pointeur de tableau"
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "Le composant %qs du type BIND(C) à %L doit avoir la longueur un"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Le composant pointeur de procédure %qs avec PASS(%s) à %L n'a pas d'argument %qs"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "Le composant pointeur de procédure %qs avec PASS à %L doit avoir au moins un argument"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "L'argument %qs de %qs avec PASS(%s) à %L doit être du type dérivé %qs"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "L'argument %qs de %qs avec PASS(%s) à %L doit être scalaire"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "L'argument %qs de %qs avec PASS(%s) à %L ne peut pas avoir l'attribut POINTER"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "L'argument %qs de %qs avec PASS(%s) à %L ne peut pas être ALLOCATABLE"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "Le composant %qs de %qs à %L a le même nom qu'une procédure liée au type héritée"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "La longueur de caractère du composant %qs doit être une expression de spécification constante à %L"
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "L'expression de longueur de caractère du composent %qs à %L doit être du type INTEGER et non %s"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr "Le composant caractère %qs de %qs à %L avec une longueur différée doit être POINTER ou ALLOCATABLE"
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "le composant %qs est un type PRIVATE et ne peut pas être un composant de %qs, qui est PUBLIC à %L"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr "Le composant polymorphique %s à %L dans le type %s SEQUENCE ou BIND(C)"
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "Le composant %s du type SEQUENCE déclaré à %L n'a pas l'attribut SEQUENCE"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "Initialisations conflictuelles dans l'union à %L et %L"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr "Puisque l'extension du type %qs à %L a un composant co-tableau, le type parent %qs en aura un aussi"
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "Le type dérivé non extensible %qs à %L ne peut pas être ABSTRACT"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr "Le type paramétrisé %qs n'a pas de composant correspondant au paramètre %qs à %L"
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr "Nom générique %qs de la fonction %qs à %L étant le même nom que le type dérivé à %L"
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "Le type dérivé %qs à %L n'a pas été déclaré"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "Le tableau de taille tacite %qs dans la liste de noms %qs à %L n'est pas permis"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr "Objet tableau NAMELIST %qs avec la forme tacite dans la liste de noms %qs à %L"
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr "Objet tableau NAMELIST %qs avec la forme non constante dans la liste de noms %qs à %L"
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr "Objet NAMELIST %qs avec une longueur de caractère non constante dans la liste de noms %qs à %L"
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "L'objet NAMELIST %qs a été déclaré PRIVATE et ne peut pas être membre de la liste de noms PUBLIC %qs à %L"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr "L'objet NAMELIST %qs a des composants PRIVATE associés à USE et ne peut pas être membre de la liste de noms %qs à %L"
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "L'objet NAMELIST %qs a des composants PRIVATE et ne peut pas être un membre de la liste de noms PUBLIC %qs à %L"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "L'attribut PROCEDURE est en conflit avec l'attribut NAMELIST dans %qs à %L"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "Le tableau paramètre %qs à %L ne peut pas être automatique ou de forme différée"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "Le PARAMETER %qs implicitement typé à %L ne concorde pas avec le type IMPLICIT ultérieur"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "Type dérivé incompatible dans PARAMETER à %L"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "La variable CLASS %qs à %L ne peut pas avoir l'attribut PARAMETER"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "L'entité %qs à %L a un paramètre LEN différé %qs et requiert soit l'attribut POINTER ou soit l'attribut ALLOCATABLE"
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr "L'objet AUTOMATIC %qs à %L ne doit pas avoir l'attribut SAVE ou être une variable déclarée dans le programme principal, un module ou un sous-module(F08/C513)"
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr "L'objet %qs à %L avec des paramètres de type ASSUMED doit être fictif ou un sélecteur SELECT TYPE(F08/4.2)"
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr "Désolé, les composants allouables/pointeurs dans des co-tableaux de types polymorphiques (CLASS) à %L ne sont pas supportés"
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr "%<omp_all_memory%>, déclaré à %L, peut uniquement être utilisé dans la clause OpenMP DEPEND"
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "L'attribut PROTECTED est en conflit avec l'attribut EXTERNAL à %L"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "L'attribut PROCEDURE est en conflit avec l'attribut PROTECTED à %L"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr "%qs à %L a l'attribut CONTIGUOUS mais il n'est pas un pointeur de tableau ou un tableau de forme tacite ou de rang tacite"
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr "Mauvaise spécification pour le tableau de taille tacite à %L"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "Le tableau de taille tacite à %L doit être un argument muet"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "Le tableau de forme tacite à %L doit être un argument muet"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "Le tableau de rang tacite à %L doit être un argument muet"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr "Le tableau de rang tacite à %L ne peut pas avoir les attributs VALUE ou CODIMENSION"
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "Le symbole à %L n'est pas une variable MUETTE"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr "%qs à %L ne peut pas avoir l'attribut VALUE car ce n'est pas un argument muet"
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "La variable muette caractère %qs à %L avec l'attribut VALUE doit avoir une longueur constante"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr "La variable muette caractère %qs, interopérable avec le C, à %L avec l'attribut VALUE doit avoir la longueur un"
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "Le type dérivé %qs à %L est du type %qs qui n'a pas été défini"
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr "La variable %s à %L avec l'attribut NO_ARG_CHECK sera un argument muet"
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr "La variable %s à %L avec l'attribut NO_ARG_CHECK sera du type TYPE(*) ou d'un type intrinsèque numérique"
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "La variable %s à %L avec l'attribut NO_ARG_CHECK ne peut pas avoir les attributs ALLOCATABLE, CODIMENSION, POINTER ou VALUE"
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "La variable %s à %L avec l'attribut NO_ARG_CHECK ne peut pas avoir l'attribut INTENT(OUT)"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr "La variable %s à %L avec l'attribut NO_ARG_CHECK sera soit un scalaire ou un tableau de taille tacite"
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "Le type tacite de la variable %s à %L est uniquement permis pour des variables muettes"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "La variable de type tacite %s à %L ne peut pas avoir les attributs ALLOCATABLE, CODIMENSION, POINTER ou VALUE"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "La variable de type tacite %s à %L ne peut pas avoir l'attribut INTENT(OUT)"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr "La variable de type tacite %s à %L ne sera point un tableau de forme explicite"
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr "La variable %qs à %L ne peut pas être BIND(C) car elle n'est ni un bloc COMMON ni déclarée au niveau du module"
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "La variable BIND(C) %qs à %L doit avoir la longueur un"
 
 # %s est soit « parameter » ou « variable » sans traduction
 # voir bug #80195
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "PUBLIC %s %qs à %L du type dérivé PRIVATE %qs"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr "La variable %s à %L du type LOCK_TYPE ou avec un sous-composant de type LOCK_TYPE doit être un co-tableau"
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr "La variable %s à %L du type EVENT_TYPE ou avec un sous-composant du type EVENT_TYPE doit être un co-tableau"
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "L'argument muet INTENT(OUT) %qs à %L est ASSUMED SIZE et, par conséquent, ne peut pas avoir une initialisation par défaut"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "L'argument muet %qs à %L qui est LOCK_TYPE ne sera point INTENT(OUT)"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "L'argument muet %qs à %L qui est EVENT_TYPE ne sera point INTENT(OUT)"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "Le résultat %qs de la fonction à %L ne sera point un co-tableau et n'aura point un composant co-tableau"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "La variable %qs à %L du TYPE(C_PTR) ou TYPE(C_FUNPTR) ne sera point un co-tableau"
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr "La variable %qs à %L avec un composant co-tableau doit être un scalaire non pointeur, non allouable qui n'est pas un co-tableau"
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr "La variable %qs à %L est un co-tableau qui n'est pas ALLOCATABLE, SAVE ni un argument muet"
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "La variable co-tableau %qs à %L n'aura pas de co-dimensions avec une forme différée"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "La variable co-tableau allouable %qs à %L doit avoir une forme différée"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr "La variable %qs à %L est INTENT(OUT) et ne peut donc pas être un co-tableau allouable ou avoir des composants co-tableaux"
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "La variable muette co-tableau %qs à %L n'est pas permise dans la procédure BIND(C) %qs"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "Argument muet LOGICAL %qs à %L avec le sous-type non C_Bool dans la procédure BIND(C) %qs"
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "Variable résultat LOGICAL %qs à %L avec le sous-type non C_Bool dans la procédure BIND(C) %qs"
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "La liste de noms %qs ne peut pas être un argument de la sous-routine ou de la fonction à %L"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr "Le threadprivate à %L n'est pas sauvegardé avec SAVE"
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr "La variable !$OMP DECLARE TARGET %qs à %L n'est pas sauvegardée avec SAVE"
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr "Entité définissable attendue près de %L"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "L'élément BLOCK DATA %qs à %L doit être dans COMMON"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "Le tableau DATA %qs à %L doit être spécifié dans une déclaration précédente"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "L'élément DATA %qs à %L ne peut pas avoir un co-index"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr "L'élément DATA %qs à %L est un pointeur et doit donc être un tableau à part entière"
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr "L'objet DATA près de %L a l'attribut pointeur et la valeur DATA correspondante n'est pas une cible de donnée initiale valable"
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "L'élément DATA %qs à %L ne peut pas avoir l'attribut ALLOCATABLE"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "Section de tableau non constante à %L dans l'instruction DATA"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "L'instruction DATA à %L a plus de variables que de valeurs"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "Longueur de caractère non constante à %L dans l'instruction DATA"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr "Le début de la boucle DO implicite à %L n'a pas pu être simplifiée en une valeur constante"
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr "La fin de la boucle DO implicite à %L n'a pas pu être simplifiée en une valeur constante"
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr "Le pas de la boucle DO implicite à %L n'a pas pu être simplifiée en une valeur constante"
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "le pas de la boucle DO implicite à %L ne sera point zéro"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "L'instruction DATA à %L a plus de valeurs que de variables"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "L'étiquette %d à %L est définie mais non utilisée"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "L'étiquette %d à %L est définie mais ne peut pas être utilisée"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "La variable de type dérivé %qs à %L doit avoir l'attribut SEQUENCE pour être un objet EQUIVALENCE"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "La variable de type dérivé %qs à %L ne peut pas avoir des composants ALLOCATABLE pour être un objet EQUIVALENCE"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "La variable de type dérivé %qs à %L avec une initialisation par défaut ne peut pas être dans une EQUIVALENCE avec une variable dans COMMON"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "La variable de type dérivé %qs à %L avec un ou des composants pointeurs ne peut pas être dans un objet EQUIVALENCE"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "Erreur de syntaxe dans l'instruction EQUIVALENCE à %L"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr "Soit aucun ou tous les objets dans l'ensemble EQUIVALENCE à %L aura l'attribut PROTECTED"
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "Le membre %qs du bloc COMMON à %L ne peut pas être un objet EQUIVALENCE dans la procédure pure %qs"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "La constante nommée %qs à %L ne peut pas être un objet EQUIVALENCE"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "Le tableau %qs à %L avec des limites non constantes ne peut pas être un objet EQUIVALENCE"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Le composant de structure %qs à %L ne peut pas être un objet EQUIVALENCE"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "La sous-chaîne à %L a une longueur zéro"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "Référence à elle-même dans l'expression de longueur de caractère pour %qs à %L"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "Fonction PUBLIC %qs à %L du type PRIVATE %qs"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "ENTRY %qs à %L n'a pas de type IMPLICIT"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "La procédure opérateur utilisateur %qs à %L doit être une FUNCTION"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "La procédure opérateur utilisateur %qs à %L ne peut pas être une longueur de caractère tacite"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "La procédure opérateur utilisateur %qs à %L doit avoir au moins un argument"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "Le premier argument de l'interface opérateur à %L ne peut pas être optionnel"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "Le deuxième argument de l'interface opérateur à %L ne peut pas être optionnel"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "L'interface opérateur à %L doit avoir, au plus, deux arguments"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr "La procédure contenue %qs à %L d'une procédure PURE doit aussi être PURE"
@@ -80871,127 +80936,127 @@ msgstr "La variable %qs implicitement déclarée à %L peut ne pas être interop
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "Le résultat de la fonction %qs à %L n'a pas de type IMPLICIT"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "L'attribut %s est en conflit avec l'attribut %s à %L"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "L'attribut %s est en conflit avec l'attribut %s dans %qs à %L"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "L'attribut %s n'est pas permis dans le BLOCK DATA de l'unité de programme à %L"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "Le nom de groupe de la liste de noms à %L ne peut pas avoir l'attribut SAVE"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "La procédure interne %qs à %L est en conflit avec l'argument DUMMY"
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "Pointeur de procédure à %C"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "Attribut %s appliqué à %s %s à %L"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "BIND(C) appliqué à %s %s à %L"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "L'attribut %s est en conflit avec l'attribut %s à %L"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "L'attribut %s est en conflit avec l'attribut %s dans %qs à %L"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "Impossible de changer les attributs du symbole associé à USE à %L"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "Impossible de changer les attributs du symbole %s associé à USE à %L"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "Attribut %s spécifié en double à %L"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr "ALLOCATABLE spécifié en dehors du corps de INTERFACE à %L"
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "Attribut AUTOMATIC spécifié en double à %L"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "CODIMENSION spécifié pour %qs en dehors du corps de son INTERFACE à %L"
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "DIMENSION spécifié pour %qs en dehors du corps de son INTERFACE à %L"
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "Le pointé Cray à %L apparaît dans plusieurs instructions pointer()"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "Attribut PROTECTED spécifié en double à %L"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "L'attribut SAVE à %L ne peut pas être spécifié dans une procédure PURE"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "Attribut SAVE spécifié en double à %L"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "Attribut SAVE spécifié en double à %L"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "Attribut VOLATILE spécifié en double à %L"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "L'attribut VOLATILE à %L ne peut pas être spécifié dans une procédure PURE"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "Attribut ASYNCHRONOUS spécifié en double à %L"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "L'attribut %s de %qs est en conflit avec l'attribut %s à %L"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
@@ -81000,203 +81065,203 @@ msgstr ""
 "La procédure %s à %L est déjà déclarée comme procédure %s.\n"
 "F2008: Une affectation à une fonction pointeur est ambigüe si elle est la première instruction exécutable après la spécification du bloc. Veuillez ajouter n'importe quel autre type d'instruction exécutable avant elle. FIXME"
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "La procédure %s à %L est déjà déclarée comme procédure %s"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "INTENT (%s) est en conflit avec INTENT(%s) à %L"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "La spécification ACCESS à %L a déjà été spécifiée"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "L'attribut BIND est spécifié en double à %L"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr "BIND(C) à %L"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "L'attribut EXTENDS est spécifié en double à %L"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr "EXTENDS à %L"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "Le symbole %qs à %L a déjà une interface explicite"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr "%qs à %L a des attributs spécifiés en dehors du corps de son INTERFACE"
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr "Le symbole %qs à %L est en conflit avec le symbole du module %qs, associé à USE à %L"
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "Le symbole %qs à %L a déjà le type de base %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "La procédure %qs à %L ne peut pas avoir le type de base %s"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "Le symbole %qs à %L ne peut pas avoir de type"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "Le composant %qs à %C est déjà dans le type parent à %L"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "Le symbole %qs à %C est ambigu"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "Le type dérivé %qs à %C est utilisé avant sa définition"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "Le composant %qs à %C est un composant PRIVATE de %qs"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "%qs à %C n'est pas un membre de la structure %qs; vouliez-vous employer %qs ?"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "%qs à %C n'est pas un membre de la structure %qs"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "Étiquette d'instruction %d dupliquée à %L et %L"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "L'étiquette %d à %C est déjà référencée comme cible d'un branchement"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "L'étiquette %d à %C est déjà référencée comme une étiquette de format"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr "Instruction de fin de DO qui n'est pas END DO ou CONTINUE avec l'étiquette %d à %C"
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "Étiquette %d à %C précédemment utilisée comme étiquette de FORMAT"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "Étiquette %d à %C précédemment utilisée comme cible de branchement"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr "Étiquette de fin de DO %d partagée à %C"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr "Instruction DO étiquetée à %L"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "Le nom %qs à %C est une référence ambigüe à %qs depuis le module %qs"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "Le nom %qs à %C est une référence ambigüe à %qs depuis l'unité de programme actuelle"
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "Le symbole %qs à %C a déjà été associée à un hôte"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr "verify_bind_c_derived_type(): Le symbole donné est NULL de manière inattendue"
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "Le type dérivé %qs, déclaré à %L, doit avoir l'attribut BIND pour être interopérable avec le C"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr "Le type dérivé %qs avec l'attribut BIND(C) à %L est vide et peut être inaccessible pour le processeur C compagnon"
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Le composant %qs à %L ne peut pas avoir l'attribut POINTER car il est un membre du type dérivé BIND(C) %qs à %L"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "Le composant pointeur de procédure %qs à %L ne peut pas être un membre du type dérivé BIND(C) %qs à %L"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Le composant %qs à %L ne peut pas avoir l'attribut ALLOCATABLE car il est un membre du type dérivé BIND(C) %qs à %L"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr "Le composant %qs dans le type dérivé %qs à %L peut ne pas être interopérable avec le C bien que le type dérivé %qs soit BIND(C)"
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "Le composant %qs dans le type dérivé %qs à %L peut ne pas être interopérable avec le C"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "Le type dérivé %qs à %L ne peut pas avoir l'attribut SEQUENCE car il est BIND(C)"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr "Le symbole %qs est utilisé à %L avant qu'un type lui soit assigné"
@@ -81226,24 +81291,24 @@ msgstr "Initialisations inégales et se chevauchant dans EQUIVALENCE à %L"
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "Initialisations inégales et se chevauchant dans EQUIVALENCE à %C"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr "Le constructeur de structure à %C a été finalisé. Cette fonctionnalité a été enlevée par f08/0011. Utilisez -std=f2018 ou -std=gnu pour éliminer la finalisation."
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr "Le nombre d'éléments dans le constructeur du tableau à %L requiert une augmentation de la limite supérieure permise %d. Voyez l'option %<-fmax-array-constructor%>"
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "Création d'un temporaire pour le tableau à %L dans l'argument %qs"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "mauvais type d'expression durant le parcours (%d)"
@@ -81429,37 +81494,37 @@ msgstr "La valeur de retour %qs de la fonction %qs est déclarée à %L mais ne
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr "Désolé, !$ACC DECLARE à %L n'est pas permis dans une construction BLOCK"
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr "Impossible de calculer la longueur du tableau de caractères à %L."
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr "Du code pour réallouer la variable allouable à %L va être ajouté"
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr "Désolé, un accès co-indexé à un objet polymorphique illimité à %L n'est pas supporté"
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr "Désolé, un accès co-indexé à un composant polymorphique illimité à %L n'est pas supporté"
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "Op intrinsèque inconnue"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Fonction de liste d'arguments inconnue à %L"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr "Si le remappage des limites est spécifié à %L, la cible du pointeur ne sera point NULL"
@@ -81470,17 +81535,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "Fonction intrinsèque %qs (%d) non reconnue"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "L'argument %<dim%> de l'intrinsèque %s à %L n'est pas un index de dimension valide"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr "Désolé, le composant de l'événement du type dérivé à %L n'est pas encore supporté"
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr "La variable d'événement à %L ne sera point co-indexée"
@@ -81620,7 +81685,7 @@ msgstr "Désolé, le composant verrou du type dérivé à %L n'est pas encore su
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr "Désolé, seul le support pour les entiers du sous-type %d est implémenté pour l'ensemble d'images à %L"
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr "gfc_trans_select(): Mauvais type pour l'expression case"
@@ -81986,6 +82051,12 @@ msgstr "variable %qD redéclarée comme une fonction"
 msgid "function %qD redeclared as variable"
 msgstr "fonction %qD redéclarée comme une variable"
 
+# la phrase fait référence à une variable ou une fonction (cf les deux messages ci-dessus) d'où le féminin
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "précédemment déclarée ici"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -83223,7 +83294,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr "%<-fobjc-sjlj-exceptions%> est ignoré pour %<-fgnu-runtime%>"
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr "le type non-objective-c %qT ne peut être intercepté"
@@ -83233,7 +83304,7 @@ msgstr "le type non-objective-c %qT ne peut être intercepté"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr "%<-fobjc-sjlj-exceptions%> est le seul système d'exceptions supporté pour %<-fnext-runtime%> avec un argument de %<-fobjc-abi-version%> inférieur à 2"
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr "%<-fobjc-sjlj-exceptions%> est ignoré pour %<-fnext-runtime%> lorsque %<-fobjc-abi-version%> est plus grand que 1"
@@ -83303,6 +83374,14 @@ msgstr "paramètre %qE inutilisé"
 msgid "are you trying to break %s? how dare you?"
 msgstr "essayez-vous de casser %s ? Comment osez vous ?"
 
+#, gcc-internal-format
+#~ msgid "cannot declare %qD in a different module"
+#~ msgstr "ne peut déclarer %qD dans un module différent"
+
+#, gcc-internal-format
+#~ msgid "cannot declare %qD in different module"
+#~ msgstr "ne peut déclarer %qD dans un module différent"
+
 #, no-c-format
 #~ msgid "turn on quadruple tracing (internal switch)"
 #~ msgstr "activer le traçage quadrupôle (commutateur interne)."
diff --git a/gcc/po/hr.po b/gcc/po/hr.po
index 61a7d208da1..ef271ee8572 100644
--- a/gcc/po/hr.po
+++ b/gcc/po/hr.po
@@ -3,13 +3,13 @@
 # This file is distributed under the same license as the gcc package.
 #
 # Tomislav Krznar <tomislav.krznar@gmail.com>, 2012, 2022.
-# Božidar Putanec <bozidarp@yahoo.com>, 2022, 2023.
+# Božidar Putanec <bozidarp@yahoo.com>, 2022, 2023, 2024.
 msgid ""
 msgstr ""
-"Project-Id-Version: gcc 14.1.0\n"
+"Project-Id-Version: gcc 14.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
-"PO-Revision-Date: 2024-05-09 18:08-0700\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
+"PO-Revision-Date: 2024-08-02 17:19+0200\n"
 "Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
 "Language: hr\n"
@@ -387,7 +387,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "nemojte istovremeno specificirati -march=... i -mcpu=..."
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr ""
 
@@ -19171,16 +19171,16 @@ msgstr "neprepoznati insn:"
 msgid "insn does not satisfy its constraints:"
 msgstr "insn ne zadovoljava svoja ograničenja:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "stvoren i korišten s različitim postavkama ‘%s”"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "stvoren i korišten s različitim postavkama %<-fpic%>"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 msgid "created and used with different settings of %<-fpie%>"
 msgstr "stvoren i korišten s različitim postavkama of %<-fpie%>"
 
@@ -19503,7 +19503,7 @@ msgstr ""
 msgid "<command-line>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "nepodržani operand za kȏd ‘%c’"
@@ -19522,9 +19522,9 @@ msgstr "nevaljani operand za ‘%%%c’"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, c-format
 msgid "invalid vector constant"
 msgstr "nevaljana vektorska konstanta"
@@ -19544,7 +19544,7 @@ msgstr "nekompatibilan operand za ‘%%%c’"
 msgid "incompatible register operand for '%%%c'"
 msgstr "nekompatibilan operand registra za ‘%%%c’"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "nema operanda"
@@ -19573,93 +19573,93 @@ msgstr "nevaljani način adresiranja"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "ne mogu se kombinirati GNU i SVE vektori u binarnoj operaciji"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "‘%%&’ je upotrebljen bez ikakve dinamičke TLS referencije"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "nevaljana %%J vrijednost"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "nevaljana %%r vrijednos"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "nevaljana %%R vrijednost"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "nevaljana %%N vrijednost"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "nevaljana %%P vrijednost"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "nevaljana %%h vrijednost"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "nevaljana %%L vrijednost"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "nevaljana %%m vrijednost"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "nevaljana %%M vrijednost"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "nevaljana %%U vrijednost"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "nevaljana %%s vrijednost"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "nevaljana %%C vrijednost"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "nevaljana %%E vrijednost"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "nepoznata relokacija unspec"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "nevaljani %%xn kȏd"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, c-format
 msgid "invalid operand address"
 msgstr "nevaljani operand adrese"
@@ -19752,35 +19752,35 @@ msgstr "nevaljani UNSPEC kao operand: %d"
 msgid "unrecognized supposed constant"
 msgstr "neprepoznata pretpostavljena konstanta"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "nevaljani operand pomaka (shift)"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "predviđena Thumb instrukcija"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "predviđena instrukcija u uvjetnoj sekvenciji"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "Nepodržani operand za kȏd ‘%c’"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -19788,113 +19788,113 @@ msgstr "Nepodržani operand za kȏd ‘%c’"
 msgid "invalid operand for code '%c'"
 msgstr "nevaljani operand za kȏd ‘%c’"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "instrukcija nije nikada izvršena"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "zastarjela Maverick format kȏd ‘%c’"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "nevaljana konverzija od tipa %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "nevaljana konverzija u tip %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr "nelegalna operacija na tipu %<bfloat16_t%>"
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "operand adrese zahtjeva ograničenje za for X, Y, ili Z registar"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "operandi za %T/%t moraju biti reg + const_int:"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr "loša adresa, nije U/I (I/O) adresa:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr "loša adresa, nije konstanta:"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "loša adresa, nije (reg+disp):"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "loša adresa, nije post_inc ili pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "interna greška kompajlera. Loša adresa:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "Nepodržani kȏd ‘%c’ za nepomični zarez (fixed-point):"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "interna greška kompajlera. Nepozat način rada:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "nevaljani insn:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "netočni insn:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "nepoznati insn za pomicanje, kopiranje:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "loš pomak (shift) insn:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "interna greška kompajlera. Netočni pomak (shift):"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr "nepodržana konverzija nepomičnog zareza (fixed-point conversion)"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr "varijabla"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 msgid "function parameter"
 msgstr "parametar funkcije"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr "strukturno polje"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 msgid "return type of function"
 msgstr "vrati tip funkcije"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr "kazaljka (pointer)"
 
@@ -19930,7 +19930,7 @@ msgstr ""
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20249,46 +20249,46 @@ msgstr "operand nije cijeli broj, nevaljani operand kȏd ‘R’"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "operand nije određeni cijeli broj, nevaljani operand kȏd ‘R’"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "nevaljani operand kȏd ‘%c’"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "nevaljano ograničenje za operand"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, c-format
 msgid "invalid vector immediate"
 msgstr "nevaljana vektorska konstanta"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "nepoznati insn način"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "nevaljana konverzija od tipa %<__bf16%> bez opcije %<-msse2%> "
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "nevaljana konverzija od tipa %<_Float16%> bez opcije %<-msse2%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "nevaljana konverzija u tip %<__bf16%> bez opcije %<-msse2%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "nevaljana konverzija u tip %<_Float16%> bez opcije %<-msse2%>"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr "nelegalna operacija na tipu%<__bf16%> bez opcije %<-msse2%>"
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr "nelegalna operacija na tipu %<_Float16%> bez opcije %<-msse2%>"
 
@@ -20319,7 +20319,7 @@ msgstr ""
 msgid "invalid %%P operand"
 msgstr ""
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr ""
@@ -20346,29 +20346,29 @@ msgstr ""
 msgid "invalid addressing mode"
 msgstr ""
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr ""
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr ""
@@ -20400,7 +20400,7 @@ msgid "post-increment address is not a register"
 msgstr ""
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr ""
 
@@ -20558,7 +20558,7 @@ msgstr ""
 msgid "unsupported memory expression:"
 msgstr ""
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, c-format
 msgid "invalid vector operand"
 msgstr "nevaljani vektorski operand"
@@ -20606,242 +20606,242 @@ msgstr ""
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, c-format
 msgid "invalid %%A value"
 msgstr "nevaljana %%A vrijednost"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "nevaljana %%e vrijednost"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, c-format
 msgid "invalid %%t value"
 msgstr "nevaljani %%t kȏd"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, c-format
 msgid "invalid %%V value"
 msgstr "nevaljana %%V vrijednost"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, c-format
 msgid "invalid %%z value"
 msgstr "nevaljani %%z kȏd"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 msgid "Could not generate addis value for fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 msgid "Unable to generate load/store offset for fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr ""
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr ""
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr ""
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr ""
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr ""
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr ""
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 msgid "vector argument passed to unprototyped function"
 msgstr ""
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr ""
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr ""
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -21032,12 +21032,12 @@ msgstr "({anoniman})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "očekivano je %<;%>"
@@ -21050,7 +21050,7 @@ msgstr "očekivano je %<;%>"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21059,7 +21059,7 @@ msgstr "očekivano je %<;%>"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "očekivano je %<)%>"
@@ -21067,7 +21067,7 @@ msgstr "očekivano je %<)%>"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "očekivano je %<]%>"
@@ -21078,29 +21078,29 @@ msgstr "očekivano je %<;%>, %<,%> ili %<)%>"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "očekivano je %<(%>"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "očekivano je %<[%>"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "očekivano je %<{%>"
@@ -21110,17 +21110,17 @@ msgstr "očekivano je %<{%>"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "očekivano je %<:%>"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "očekivano je %<while%>"
@@ -21129,8 +21129,8 @@ msgstr "očekivano je %<while%>"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "očekivano je %<,%>"
@@ -21140,17 +21140,17 @@ msgid "expected %<.%>"
 msgstr "očekivano je %<.%>"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "očekivano je %<@end%>"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "očekivano je %<>%>"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "očekivano je %<,%> ili %<)%>"
@@ -21158,32 +21158,32 @@ msgstr "očekivano je %<,%> ili %<)%>"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "očekivano je %<=%>"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "očekivano je %<}%>"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, gcc-internal-format
 msgid "expected %<else%>"
 msgstr "očekivano %<else%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr ""
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -21191,7 +21191,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr ""
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr ""
@@ -21206,22 +21206,22 @@ msgstr "očekivana je oznaka"
 msgid "candidate:"
 msgstr ""
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 msgid "  after user-defined conversion:"
 msgstr ""
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr ""
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr ""
 
@@ -21453,7 +21453,7 @@ msgstr ""
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr ""
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr ""
 
@@ -21497,48 +21497,48 @@ msgstr ""
 msgid "source type is not polymorphic"
 msgstr ""
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr ""
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr ""
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr ""
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr ""
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr ""
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 msgid "in argument to unary !"
 msgstr ""
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr ""
 
@@ -21616,7 +21616,7 @@ msgstr ""
 msgid "Deleted feature:"
 msgstr ""
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr ""
 
@@ -21807,11 +21807,11 @@ msgstr ""
 msgid "implied END DO"
 msgstr ""
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr ""
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr ""
 
@@ -21971,47 +21971,47 @@ msgstr ""
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr ""
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr ""
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr ""
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr ""
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr ""
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr ""
 
@@ -22020,11 +22020,11 @@ msgstr ""
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr ""
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -22039,12 +22039,12 @@ msgstr ""
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr ""
 
@@ -22053,81 +22053,81 @@ msgstr ""
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -22149,15 +22149,15 @@ msgstr ""
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr ""
 
@@ -22233,7 +22233,7 @@ msgid "expected boolean type"
 msgstr ""
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr "očekivan je cijeli broj"
@@ -22296,7 +22296,7 @@ msgstr ""
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr ""
@@ -22920,7 +22920,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr ""
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr ""
@@ -23356,8 +23356,8 @@ msgstr ""
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, gcc-internal-format
 msgid "previous declaration here"
 msgstr ""
@@ -23374,7 +23374,7 @@ msgstr ""
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr ""
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr ""
@@ -23384,7 +23384,7 @@ msgstr ""
 msgid "expected %i or more, found %i"
 msgstr "očekivano je %i ili više, pronađeno %i"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, gcc-internal-format, gfc-internal-format
 msgid "expected %i, found %i"
 msgstr "očekivano je %i, pronađeno je %i"
@@ -23451,12 +23451,12 @@ msgstr ""
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -23465,7 +23465,7 @@ msgstr ""
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -23487,8 +23487,8 @@ msgstr "zanemareni atribut %qE"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr ""
@@ -23599,7 +23599,7 @@ msgstr ""
 msgid "offset %qwi outside bounds of constant string"
 msgstr ""
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, gcc-internal-format
 msgid "%qE declared here"
 msgstr ""
@@ -23704,7 +23704,7 @@ msgstr ""
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, gcc-internal-format
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
 msgstr ""
@@ -23726,42 +23726,42 @@ msgstr ""
 msgid "target format does not support infinity"
 msgstr ""
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, gcc-internal-format
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr ""
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr ""
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr ""
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr ""
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr ""
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr ""
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr ""
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr ""
@@ -24806,12 +24806,12 @@ msgstr ""
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr ""
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr ""
@@ -25360,7 +25360,7 @@ msgstr ""
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr ""
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, gcc-internal-format
 msgid "%qs failed"
 msgstr ""
@@ -25390,17 +25390,17 @@ msgstr ""
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr ""
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr ""
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr ""
@@ -25435,7 +25435,7 @@ msgstr ""
 msgid "comparison is always %d due to width of bit-field"
 msgstr ""
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr ""
@@ -25598,7 +25598,7 @@ msgstr "nije uspjelo dobiti izlazni status: %m"
 msgid "%s signal terminated program %s"
 msgstr "signal %s je prekinuo (završio) program %s"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "neprepoznata opcija na naredbenom retku %qs"
@@ -25860,7 +25860,7 @@ msgstr ""
 msgid "multilib exclusions %qs is invalid"
 msgstr ""
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "nevaljani ‘multilib’ odabir %qs %qs"
@@ -26159,22 +26159,22 @@ msgstr ""
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr ""
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr ""
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr ""
@@ -26215,16 +26215,16 @@ msgid "function returns address of local variable"
 msgstr "funkcija vraća adresu lokalne varijable"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -26236,27 +26236,27 @@ msgstr ""
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
@@ -26264,7 +26264,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
@@ -26272,7 +26272,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
@@ -26280,67 +26280,67 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
@@ -26348,7 +26348,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
@@ -26356,7 +26356,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
@@ -26364,122 +26364,122 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
@@ -26487,22 +26487,22 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, gcc-internal-format
 msgid "directive argument %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
@@ -26510,22 +26510,22 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
@@ -26533,80 +26533,80 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, gcc-internal-format
 msgid "null destination pointer"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, gcc-internal-format
 msgid "null format string"
 msgstr ""
@@ -27345,12 +27345,12 @@ msgstr ""
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr ""
@@ -28123,7 +28123,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr ""
@@ -28473,17 +28473,17 @@ msgstr ""
 msgid "mismatching definition"
 msgstr ""
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr ""
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -29546,72 +29546,72 @@ msgstr ""
 msgid "error closing optimization records %qs"
 msgstr ""
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, gcc-internal-format
 msgid "command-line option %qs is not supported by this configuration"
 msgstr ""
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr ""
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr ""
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr ""
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr ""
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, gcc-internal-format
 msgid "invalid argument in option %qs"
 msgstr ""
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr ""
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr ""
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr ""
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr ""
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr ""
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, gcc-internal-format
 msgid "argument to %qs is bigger than %d"
 msgstr ""
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr "deformirani %<COLLECT_GCC_OPTIONS%>"
@@ -29685,8 +29685,8 @@ msgstr ""
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr ""
@@ -30394,7 +30394,7 @@ msgstr ""
 msgid "register of %qD used for multiple global register variables"
 msgstr ""
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr ""
@@ -30844,42 +30844,42 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr ""
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "argument %qs nije podržan za %qs na ovom cilju"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr ""
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr ""
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr ""
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr ""
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, gcc-internal-format
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "atribut %<target%> nije podržan na ovom računalu"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, gcc-internal-format
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "atribut %<target_version%> nije podržan na ovom računalu"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr ""
@@ -31992,82 +31992,82 @@ msgstr ""
 msgid "BB %i has incorrect fallthru edge"
 msgstr ""
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr ""
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr ""
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr ""
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr ""
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr ""
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr ""
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr ""
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr ""
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr ""
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr ""
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr ""
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr ""
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr ""
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr ""
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, gcc-internal-format
 msgid "called from this function"
 msgstr ""
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr ""
@@ -32122,27 +32122,27 @@ msgstr ""
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr ""
@@ -32353,7 +32353,7 @@ msgstr ""
 msgid "%qs may be used uninitialized"
 msgstr ""
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr ""
@@ -32583,7 +32583,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -32598,122 +32598,122 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr ""
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "povratni tip funkcije ne može biti funkcija"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr ""
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr ""
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr ""
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr ""
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr ""
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr ""
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, gcc-internal-format
 msgid "%qD is unavailable: %s"
 msgstr ""
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, gcc-internal-format
 msgid "%qD is unavailable"
 msgstr ""
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, gcc-internal-format
 msgid "%qE is unavailable: %s"
 msgstr ""
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, gcc-internal-format
 msgid "%qE is unavailable"
 msgstr ""
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr ""
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, gcc-internal-format
 msgid "type is unavailable"
 msgstr ""
@@ -32738,262 +32738,262 @@ msgstr ""
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr ""
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr ""
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not an opaque type"
 msgstr "tip %s nije neproziran tip"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not with opaque mode"
 msgstr ""
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, gcc-internal-format
 msgid "main variant is not defined"
 msgstr ""
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr ""
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr ""
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -33208,7 +33208,7 @@ msgstr ""
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr ""
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -33410,7 +33410,7 @@ msgstr ""
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr ""
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr ""
@@ -33592,7 +33592,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr ""
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr ""
@@ -33907,7 +33907,7 @@ msgstr ""
 msgid "%qE argument is not a function"
 msgstr ""
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr ""
@@ -34412,7 +34412,7 @@ msgstr ""
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr ""
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr ""
@@ -34543,17 +34543,17 @@ msgstr ""
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr ""
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr ""
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -34677,166 +34677,166 @@ msgstr ""
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr ""
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr ""
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr ""
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr ""
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr ""
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr ""
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr ""
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr ""
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr ""
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr ""
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr ""
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr ""
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr ""
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr ""
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr ""
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr ""
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr ""
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, gcc-internal-format
 msgid "size of array %qE is not a constant expression"
 msgstr ""
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, gcc-internal-format
 msgid "size of array is not a constant expression"
 msgstr ""
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, gcc-internal-format
 msgid "size %qE of array %qE is negative"
 msgstr ""
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, gcc-internal-format
 msgid "size %qE of array is negative"
 msgstr ""
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -35459,7 +35459,7 @@ msgstr ""
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr ""
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "%<_BitInt(%d)%> nije podržan na ovom cilju"
@@ -35539,7 +35539,7 @@ msgstr ""
 msgid "traditional C rejects string constant concatenation"
 msgstr ""
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -35594,7 +35594,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr ""
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr ""
@@ -35609,17 +35609,17 @@ msgstr ""
 msgid "%qE is not initialized"
 msgstr ""
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr ""
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr ""
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr ""
@@ -35629,7 +35629,7 @@ msgstr ""
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr ""
@@ -35714,7 +35714,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -35724,7 +35724,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qD nije argument funkcije"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr ""
@@ -36316,7 +36316,7 @@ msgid "wrong type argument to %s"
 msgstr ""
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -37246,35 +37246,35 @@ msgstr ""
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -37483,117 +37483,117 @@ msgstr ""
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -37991,12 +37991,12 @@ msgstr ""
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr ""
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr ""
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr ""
@@ -38561,7 +38561,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -38637,12 +38637,12 @@ msgid "unknown tuning option (%s)"
 msgstr "nepoznata tuning opcija (%s)"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -38653,7 +38653,7 @@ msgid "specify a system register with a small string length"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr ""
@@ -38833,9 +38833,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr ""
@@ -38887,18 +38887,18 @@ msgid "virtual function multiversioning not supported"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -38911,8 +38911,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, gcc-internal-format
 msgid "unsupported simdlen %wd"
 msgstr ""
@@ -38922,7 +38922,7 @@ msgstr ""
 msgid "GCC does not currently support return type %qT for simd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr ""
@@ -38932,7 +38932,7 @@ msgstr ""
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr ""
@@ -39022,8 +39022,8 @@ msgstr ""
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr ""
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr ""
@@ -39143,18 +39143,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr ""
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -39268,7 +39268,7 @@ msgid "argument of %qE attribute is missing"
 msgstr ""
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr ""
@@ -39288,23 +39288,23 @@ msgstr ""
 msgid "argument of %qE attribute ignored"
 msgstr ""
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr ""
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr ""
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr ""
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr ""
@@ -39546,7 +39546,7 @@ msgstr ""
 msgid "target CPU does not support unaligned accesses"
 msgstr ""
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, gcc-internal-format
 msgid "This architecture does not support branch protection instructions"
 msgstr ""
@@ -39596,7 +39596,7 @@ msgstr ""
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr ""
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr ""
@@ -39702,7 +39702,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -39742,42 +39742,42 @@ msgstr ""
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr ""
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr ""
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr ""
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr ""
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr ""
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr ""
@@ -39785,22 +39785,22 @@ msgstr ""
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr ""
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr ""
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr ""
@@ -39854,158 +39854,158 @@ msgstr ""
 msgid "unknown core architecture %qs specified with %qs"
 msgstr ""
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, gcc-internal-format
 msgid "%<-fpic%> is not supported"
 msgstr ""
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
 msgstr ""
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, gcc-internal-format
 msgid "%<-fpie%> is not supported"
 msgstr ""
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr ""
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr ""
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr ""
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr ""
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr ""
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr ""
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr ""
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr ""
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr ""
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr ""
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr ""
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr ""
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr ""
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr ""
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr ""
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr ""
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr ""
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr ""
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr ""
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr ""
@@ -40014,42 +40014,42 @@ msgstr ""
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr ""
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr ""
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr ""
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr ""
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr ""
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr ""
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -40185,7 +40185,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr ""
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -40804,8 +40804,8 @@ msgstr ""
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr ""
@@ -40871,255 +40871,255 @@ msgstr ""
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr ""
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr ""
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, gcc-internal-format
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "%<-mapxf%> nije podržan za 32-bitni kod"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, gcc-internal-format
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr ""
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr ""
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr ""
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, gcc-internal-format
 msgid "bad value %qs for %<-march=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, gcc-internal-format
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr ""
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr ""
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -41127,290 +41127,290 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr ""
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr ""
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr ""
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr ""
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr ""
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr ""
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr ""
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr ""
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr ""
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr ""
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr ""
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr ""
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr ""
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr ""
@@ -41601,46 +41601,46 @@ msgstr ""
 msgid "non-integer operand used with operand code %<z%>"
 msgstr ""
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, gcc-internal-format
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr ""
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr ""
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr ""
@@ -41660,8 +41660,8 @@ msgstr ""
 msgid "malformed %<#pragma builtin%>"
 msgstr ""
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr ""
@@ -41716,12 +41716,12 @@ msgstr ""
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr ""
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr ""
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr ""
@@ -41847,17 +41847,17 @@ msgstr ""
 msgid "%qs cannot be used for compiling a shared library"
 msgstr ""
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr ""
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for register variables"
 msgstr ""
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, gcc-internal-format
 msgid "multiple %qE attribute"
 msgstr ""
@@ -41958,12 +41958,12 @@ msgstr ""
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr ""
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr ""
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not supported on this target"
 msgstr ""
@@ -42004,7 +42004,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr ""
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr ""
@@ -42044,132 +42044,132 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr ""
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr ""
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr ""
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr ""
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr ""
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr ""
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr ""
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr ""
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr ""
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr ""
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr ""
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr ""
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr ""
@@ -42179,117 +42179,117 @@ msgstr ""
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr ""
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr ""
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr ""
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr ""
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr ""
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr ""
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr ""
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr ""
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr ""
@@ -43158,57 +43158,57 @@ msgstr ""
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, gcc-internal-format
 msgid "malformed %<target()%> attribute"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
 msgstr ""
@@ -43268,172 +43268,192 @@ msgstr ""
 msgid "capture by copy of RVV type %qT"
 msgstr ""
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr ""
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
 msgstr ""
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr ""
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, gcc-internal-format
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr ""
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr ""
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, gcc-internal-format
 msgid "%qs requires an integer constant"
 msgstr "%qs zahtijeva cijelobrojnu (integer) konstantu"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr ""
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, gcc-internal-format
 msgid "code model %qs with %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr ""
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr ""
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr "ne može dodijeliti vl registar za %qs na ovoom cilju"
@@ -43683,32 +43703,32 @@ msgstr ""
 msgid "builtin %qs only accepts 3 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, gcc-internal-format
 msgid "%qs is not supported in this compiler configuration"
 msgstr "%qs nije podržan u ovoj konfiguraciji"
@@ -43748,29 +43768,22 @@ msgstr ""
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr ""
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr ""
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr ""
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr ""
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr ""
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr ""
@@ -43895,107 +43908,117 @@ msgstr ""
 msgid "unknown option for %<%s=%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, gcc-internal-format
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr ""
@@ -44040,7 +44063,7 @@ msgstr ""
 msgid "builtin %qs can only be used on vector types"
 msgstr ""
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr ""
@@ -44110,225 +44133,225 @@ msgstr ""
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr ""
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr ""
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr ""
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr ""
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr ""
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, gcc-internal-format
 msgid "bad builtin icode"
 msgstr ""
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr ""
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr ""
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr ""
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr ""
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr ""
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, gcc-internal-format
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr ""
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr ""
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr ""
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr ""
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, gcc-internal-format
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr ""
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr ""
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr ""
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr ""
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr ""
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr ""
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr ""
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr ""
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr ""
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, gcc-internal-format
 msgid "invalid cc output constraint: %qs"
 msgstr "nevaljano cc izlazno ograničenje: %qs"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, gcc-internal-format
 msgid "multiple cc output constraints not supported"
 msgstr "višestruka cc izlazna ograničenja nisu podržana"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr ""
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr "nevaljani tip za cc izlazno ograničenje"
@@ -44750,8 +44773,8 @@ msgstr ""
 msgid "attribute %qs applies to array types only"
 msgstr ""
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr ""
@@ -44826,7 +44849,7 @@ msgstr ""
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr ""
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr ""
@@ -45058,7 +45081,7 @@ msgstr ""
 msgid "declaration of %qD shadows a parameter"
 msgstr ""
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr ""
@@ -45068,7 +45091,7 @@ msgstr ""
 msgid "declaration of %qD shadows a previous local"
 msgstr ""
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr ""
@@ -45133,7 +45156,7 @@ msgstr ""
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr ""
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr ""
@@ -45168,7 +45191,7 @@ msgstr ""
 msgid "duplicate label declaration %qE"
 msgstr ""
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr ""
@@ -45203,7 +45226,7 @@ msgstr ""
 msgid "%qE defined as wrong kind of tag"
 msgstr ""
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr ""
@@ -45345,12 +45368,12 @@ msgstr ""
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr ""
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, gcc-internal-format
 msgid "%<omp::%s%> not allowed to be specified in this context"
 msgstr ""
@@ -45360,7 +45383,7 @@ msgstr ""
 msgid "%q+D is usually a function"
 msgstr ""
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr ""
@@ -45436,7 +45459,7 @@ msgstr ""
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr ""
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -45621,7 +45644,7 @@ msgstr ""
 msgid "storage class specified for unnamed parameter"
 msgstr ""
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr ""
@@ -45684,7 +45707,7 @@ msgstr ""
 msgid "declaration of type name as array of functions"
 msgstr ""
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr ""
@@ -45790,7 +45813,7 @@ msgstr ""
 msgid "function definition has qualified void return type"
 msgstr ""
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr ""
@@ -45917,7 +45940,7 @@ msgstr ""
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr ""
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr ""
@@ -46022,7 +46045,7 @@ msgstr ""
 msgid "object with variably modified type must have no linkage"
 msgstr ""
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr ""
@@ -46112,17 +46135,17 @@ msgstr ""
 msgid "nested redefinition of %<struct %E%>"
 msgstr ""
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr ""
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, gcc-internal-format
 msgid "%qT defined in underspecified object initializer"
 msgstr ""
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr ""
@@ -46152,596 +46175,596 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr ""
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr ""
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr ""
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr ""
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr ""
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr ""
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr ""
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, gcc-internal-format
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr ""
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, gcc-internal-format
 msgid "type %qT is too large"
 msgstr ""
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr ""
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr ""
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr ""
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, gcc-internal-format
 msgid "redefinition of struct or union %qT"
 msgstr ""
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr ""
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr ""
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr ""
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr ""
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, gcc-internal-format
 msgid "enumeration values exceed range of %qs"
 msgstr ""
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, gcc-internal-format
 msgid "conflicting redefinition of enum %qT"
 msgstr ""
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr ""
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr ""
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr ""
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr ""
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, gcc-internal-format
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr ""
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr ""
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr ""
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr ""
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr ""
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr ""
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr ""
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr ""
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr ""
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr ""
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr ""
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr ""
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr ""
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr ""
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr ""
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr ""
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr ""
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr ""
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr ""
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr ""
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr ""
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr ""
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr ""
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr ""
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr ""
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr ""
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr ""
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr ""
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr ""
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr ""
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr ""
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, gcc-internal-format
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr ""
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr ""
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr ""
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr ""
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr ""
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr ""
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr ""
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr ""
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr ""
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr ""
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr ""
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr ""
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr ""
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr ""
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr ""
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr ""
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr ""
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, gcc-internal-format
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr ""
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr ""
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr ""
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, gcc-internal-format
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr ""
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr ""
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr ""
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr ""
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr ""
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr ""
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr ""
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr ""
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr ""
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr ""
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr ""
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr ""
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr ""
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr ""
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr ""
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr ""
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr ""
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr ""
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr ""
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr ""
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, gcc-internal-format
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr ""
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr ""
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "%<signed _BitInt%> argument mora biti najmanje 2"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, gcc-internal-format
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr ""
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr ""
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr ""
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr ""
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr ""
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr ""
@@ -46771,7 +46794,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr ""
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr "očekivan je kraj retka"
@@ -46781,8 +46804,8 @@ msgstr "očekivan je kraj retka"
 msgid "ISO C forbids an empty translation unit"
 msgstr ""
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -46822,9 +46845,9 @@ msgstr ""
 msgid "unknown type name %qE"
 msgstr ""
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr ""
@@ -46854,7 +46877,7 @@ msgstr ""
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr ""
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr ""
@@ -46874,7 +46897,7 @@ msgstr ""
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr ""
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr ""
@@ -46965,7 +46988,7 @@ msgstr ""
 msgid "static assertion failed: %E"
 msgstr ""
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, gcc-internal-format
 msgid "static assertion failed"
 msgstr ""
@@ -47036,10 +47059,10 @@ msgstr ""
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr ""
@@ -47190,7 +47213,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -47200,8 +47223,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -47375,12 +47398,12 @@ msgstr ""
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr ""
@@ -47527,7 +47550,7 @@ msgstr ""
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr ""
@@ -47847,12 +47870,12 @@ msgstr ""
 msgid "no type or storage class may be specified here,"
 msgstr ""
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr ""
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, gcc-internal-format
 msgid "missing property attribute"
 msgstr ""
@@ -47862,57 +47885,57 @@ msgstr ""
 msgid "unknown property attribute %<%s%s%>"
 msgstr ""
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr ""
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr ""
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr "očekivano je ime selektora za %qE"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr ""
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr ""
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr ""
@@ -47922,25 +47945,25 @@ msgstr ""
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr ""
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr ""
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr ""
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr ""
@@ -47955,63 +47978,63 @@ msgstr ""
 msgid "expected %<)%> or %<,%>"
 msgstr "očekivano %<)%> or %<,%>"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr ""
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr ""
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr "očekivano je %<none%> ili %<present%>"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "očekivano je %<none%>, %<shared%>, %<private%> ili %<firstprivate%>"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, gcc-internal-format
 msgid "expected constant logical expression"
 msgstr "očekivan je konstantni logički izraz"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "očekivano je %<data%>, %<update%>, %<enter%> ili %<exit%>"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "očekivano je %<data%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr ""
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -48034,22 +48057,22 @@ msgstr ""
 msgid "%<num_tasks%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr ""
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr ""
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr ""
@@ -48059,94 +48082,94 @@ msgstr ""
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "očekivan je %<scalar%>, %<aggregate%>, %<pointer%> ili %<all%>"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr ""
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr ""
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr ""
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr ""
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, gcc-internal-format
 msgid "unexpected argument"
 msgstr "neočekivani argument"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr ""
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, gcc-internal-format
 msgid "too many %<self%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, gcc-internal-format
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "%<scalar%>, %<aggregate%> or %<pointer%>"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr "očekivano je %<concurrent%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "očekivano je %<teams%>, %<parallel%> ili %<thread%>"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr ""
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr ""
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr ""
@@ -48156,22 +48179,22 @@ msgstr ""
 msgid "%<num_teams%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr "očekivano je %<allocator%> ili %<align%>"
@@ -48181,22 +48204,22 @@ msgstr "očekivano je %<allocator%> ili %<align%>"
 msgid "duplicate %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr "višekratni linearni modifikatori"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr ""
@@ -48216,62 +48239,62 @@ msgstr ""
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr ""
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "nevaljana vrsta ovisnosti"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, gcc-internal-format
 msgid "invalid doacross kind"
 msgstr "nevaljana ‘doacross’ vrsta"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr ""
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr ""
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, gcc-internal-format
 msgid "too many %<present%> modifiers"
 msgstr ""
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, gcc-internal-format
 msgid "invalid map kind"
 msgstr "nevaljana vrsta dodjele"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "očekivano je %<ancestor%> ili %<device_num%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr ""
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr ""
@@ -48286,88 +48309,88 @@ msgstr ""
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "očekivano je %<host%>, %<nohost%> ili %<any%>"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr "očekivana je OpenACC klauzula"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr ""
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr ""
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr "očekivana je OpenMP klauzula"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr ""
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr ""
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "očekivano je %<data%> iza %<#pragma acc %s%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr ""
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -48382,7 +48405,7 @@ msgstr ""
 msgid "expected function name"
 msgstr "očekivano je ime funkcije"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr ""
@@ -48392,22 +48415,22 @@ msgstr ""
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr ""
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr ""
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr ""
@@ -48432,7 +48455,7 @@ msgstr ""
 msgid "modified here"
 msgstr "izmijenjeno ovdje"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr ""
@@ -48472,110 +48495,110 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "očekivano je %<read%>, %<write%>, %<update%>, ili %<capture%> klauzula"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "očekivano je %<seq_cst%>, %<acquire%> ili %<relaxed%>"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, gcc-internal-format
 msgid "too many atomic clauses"
 msgstr ""
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr ""
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr ""
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "očekivan je %<==%> usporedba u uvjetu %<if%>"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr ""
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, gcc-internal-format
 msgid "unexpected %<else%>"
 msgstr "očekivano je %<else%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr ""
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr ""
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr ""
@@ -48585,27 +48608,27 @@ msgstr ""
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "izraz %<destroy%> nije izraz lvalue"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, gcc-internal-format
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "očekivano %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> ili %<inoutset%>"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "očekivano je %<depend%>, %<destroy%> ili %<update%> klauzula"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "očekivano je %<seq_cst%>, %<acq_rel%>, %<release%> ili %<acquire%>"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -48615,163 +48638,163 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr ""
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr ""
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "očekivano je %<inclusive%> ili %<exclusive%> klauzula"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr "očekivano je %<#pragma omp scan%>"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr ""
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr ""
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, gcc-internal-format
 msgid "not enough nested loops"
 msgstr ""
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr ""
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr ""
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "očekivano je %<for%> iza %qs"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "očekivano je %<point%>"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr ""
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, gcc-internal-format
 msgid "expected trait selector name"
 msgstr ""
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr ""
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr ""
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr ""
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr "argument %<score%> mora biti konstantan cjelobrojni izraz"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr "argument %<score%> ne smije biti negativan"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, gcc-internal-format
 msgid "expected identifier or string literal"
 msgstr ""
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -48779,290 +48802,290 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr "%<requires%> selektor još nije podržan"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, gcc-internal-format
 msgid "expected context selector set name"
 msgstr "očekivano je ime konteksta skupa selektora"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, gcc-internal-format
 msgid "expected %<match%>"
 msgstr "očekivano je %<match%>"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr ""
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, gcc-internal-format
 msgid "variant %qD and base %qD have incompatible types"
 msgstr ""
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "očekivano je %<target%>"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "očekivano %<declare target%> ili %<assumes%>"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr ""
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr ""
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "očekivano %<declare%> ili %<assumes%>"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr ""
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr ""
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "očekivano je function-name %<(%>"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "očekivano je %<simd%>, %<reduction%>, %<target%> ili %<variant%>"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "očekivano je %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> ili %<seq_cst%>"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "očekivano je %<at%>, %<severity%> ili %<message%> klauzula"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, gcc-internal-format
 msgid "expected %qs or %qs"
 msgstr "očekivano je %qs ili %qs"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr "očekivana je barem jedna klauzula pretpostavki"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, gcc-internal-format
 msgid "expected directive name"
 msgstr "očekivano je ime direktive"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "nepoznata klauzula pretpostavki %qs"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, gcc-internal-format
 msgid "expected assumption clause"
 msgstr "očekivana je klauzula pretpostavki"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr ""
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr ""
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr ""
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr ""
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr ""
@@ -49203,7 +49226,7 @@ msgstr ""
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr ""
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr ""
@@ -49233,7 +49256,7 @@ msgstr ""
 msgid "enum constant defined here"
 msgstr ""
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -49346,17 +49369,17 @@ msgstr ""
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr ""
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr ""
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, gcc-internal-format
 msgid "comparison between pointer and zero character constant"
 msgstr ""
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr ""
@@ -49381,7 +49404,7 @@ msgstr ""
 msgid "arithmetic on pointer to an incomplete type"
 msgstr ""
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr ""
@@ -49674,7 +49697,7 @@ msgstr ""
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr ""
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr ""
@@ -49846,7 +49869,7 @@ msgstr ""
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr ""
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr ""
@@ -50046,12 +50069,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr ""
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -50061,7 +50084,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr ""
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr ""
@@ -50092,7 +50115,7 @@ msgstr ""
 msgid "initializer element is not computable at load time"
 msgstr ""
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr ""
@@ -50107,7 +50130,7 @@ msgstr ""
 msgid "braces around scalar initializer"
 msgstr ""
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr ""
@@ -50197,7 +50220,7 @@ msgstr ""
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr ""
@@ -50237,7 +50260,7 @@ msgstr ""
 msgid "computed goto must be pointer type"
 msgstr ""
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr ""
@@ -50292,7 +50315,7 @@ msgstr ""
 msgid "break statement not within loop or switch"
 msgstr ""
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -50338,27 +50361,27 @@ msgstr ""
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr ""
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr ""
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr ""
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr ""
@@ -50430,29 +50453,29 @@ msgstr ""
 msgid "used vector type where scalar is required"
 msgstr ""
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr ""
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr ""
@@ -50463,85 +50486,85 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr ""
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr ""
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr ""
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr ""
@@ -50551,17 +50574,17 @@ msgstr ""
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr ""
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr ""
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr ""
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -50571,32 +50594,32 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr "očekivan je pokazivač (pointer) u %qs klauzuli"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr ""
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr ""
@@ -50626,7 +50649,7 @@ msgstr ""
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr ""
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr ""
@@ -50636,17 +50659,17 @@ msgstr ""
 msgid "variable length element type in array %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr ""
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -50661,23 +50684,23 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr ""
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr ""
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr ""
@@ -50689,32 +50712,32 @@ msgstr ""
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr ""
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr ""
@@ -50734,7 +50757,7 @@ msgstr ""
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr ""
@@ -50744,7 +50767,7 @@ msgstr ""
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr ""
@@ -50754,76 +50777,76 @@ msgstr ""
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, gcc-internal-format
 msgid "unsupported map expression %qE"
 msgstr "nepodržani %qE izraz mape"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr ""
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr ""
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr ""
@@ -50838,22 +50861,22 @@ msgstr ""
 msgid "%qs variable is neither a pointer nor an array"
 msgstr ""
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr ""
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr ""
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr ""
@@ -50863,38 +50886,38 @@ msgstr ""
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -51159,7 +51182,7 @@ msgstr ""
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
@@ -51167,7 +51190,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -51477,553 +51500,553 @@ msgstr ""
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr ""
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr ""
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr ""
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr ""
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr ""
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, gcc-internal-format
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr ""
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, gcc-internal-format
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr ""
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr ""
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr ""
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr ""
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr ""
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr ""
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, gcc-internal-format
 msgid "declared private here"
 msgstr ""
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr ""
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, gcc-internal-format
 msgid "declared protected here"
 msgstr ""
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr ""
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, gcc-internal-format
 msgid "  declared here"
 msgstr ""
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr ""
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr ""
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr ""
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr ""
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr ""
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 msgid "invalid conversion from %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr ""
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr ""
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr ""
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr ""
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr ""
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr ""
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr ""
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr ""
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr ""
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr ""
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr ""
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr ""
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr ""
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr ""
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr ""
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr ""
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr ""
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr ""
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr ""
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, gcc-internal-format
 msgid "; use assignment instead"
 msgstr ""
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr ""
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, gcc-internal-format
 msgid "%#qT declared here"
 msgstr ""
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr ""
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr ""
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 msgid "cannot convert %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr ""
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr ""
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr ""
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr ""
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr ""
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr ""
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr ""
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr ""
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr ""
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr ""
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr ""
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr ""
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, gcc-internal-format
 msgid "try making the operator a %<const%> member function"
 msgstr ""
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr ""
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 msgid "  for conversion from %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr ""
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr ""
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr ""
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr ""
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr ""
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr ""
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, gcc-internal-format
 msgid "possibly dangling reference to a temporary"
 msgstr ""
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr ""
@@ -52069,7 +52092,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr ""
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr ""
@@ -52490,7 +52513,7 @@ msgstr ""
 msgid "next member %q#D declared here"
 msgstr ""
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr ""
@@ -52621,7 +52644,7 @@ msgstr ""
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
@@ -52662,7 +52685,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr ""
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -52680,7 +52703,7 @@ msgstr ""
 msgid "%q+E is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -52701,7 +52724,7 @@ msgstr ""
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, gcc-internal-format
 msgid "call to internal function %qE"
@@ -52748,7 +52771,7 @@ msgstr ""
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -52876,18 +52899,18 @@ msgstr ""
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr ""
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr ""
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr ""
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -52895,469 +52918,469 @@ msgstr ""
 msgid "%qE is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr ""
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr ""
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr ""
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr ""
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr ""
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr ""
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr ""
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr ""
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr ""
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr ""
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr ""
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr ""
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, gcc-internal-format
 msgid "allocated here"
 msgstr ""
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr ""
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr ""
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr ""
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr ""
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr ""
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr ""
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, gcc-internal-format
 msgid "use of %qD"
 msgstr ""
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr "pointed-to objekt deklariran ovdje"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr ""
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr ""
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr ""
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr ""
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, gcc-internal-format
 msgid "function concept must be called"
 msgstr ""
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr ""
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr ""
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr ""
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr ""
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr ""
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr ""
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr ""
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, gcc-internal-format
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr ""
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr ""
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr ""
@@ -54067,7 +54090,7 @@ msgstr ""
 msgid "no suspend point info for %qD"
 msgstr ""
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -54087,23 +54110,23 @@ msgstr "‘await’ izraz nije dopušten u rukovateljima (handlers)"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr ""
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr ""
@@ -54123,68 +54146,68 @@ msgstr "%qD je promovirana u trenutnu funkciju jer njezino tijelo sadrži izraz
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD je promovirana u trenutnu funkciju"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr ""
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, gcc-internal-format
 msgid "pack expansion of %qE attribute"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -54225,7 +54248,7 @@ msgstr ""
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr ""
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr ""
@@ -54608,7 +54631,7 @@ msgstr ""
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr ""
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr ""
@@ -54748,8 +54771,8 @@ msgstr ""
 msgid "%q#D previously defined here"
 msgstr ""
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr ""
@@ -54824,52 +54847,37 @@ msgstr ""
 msgid "previous specification in %q#D here"
 msgstr ""
 
-#: cp/decl.cc:2285
-#, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr ""
-
-#: cp/decl.cc:2288
-#, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr ""
-
-#: cp/decl.cc:2289
-#, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr ""
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, gcc-internal-format
 msgid "conflicting exporting for declaration %qD"
 msgstr ""
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, gcc-internal-format
 msgid "previously declared here without exporting"
 msgstr "ranije deklarirana ovdje bez izvoza (exporting)"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr ""
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr ""
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, gcc-internal-format
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr ""
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr ""
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr ""
@@ -54882,44 +54890,44 @@ msgstr ""
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr ""
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr ""
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr ""
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr ""
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr ""
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -54927,741 +54935,741 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr ""
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr ""
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr ""
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr ""
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr ""
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, gcc-internal-format
 msgid "previous label"
 msgstr ""
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr ""
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr ""
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr ""
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr ""
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr ""
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr ""
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr ""
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr ""
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, gcc-internal-format
 msgid "  enters statement expression"
 msgstr ""
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, gcc-internal-format
 msgid "  does not destroy %qD"
 msgstr "  ne uništi %qD"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr ""
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr ""
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, gcc-internal-format
 msgid "%qD used without template arguments"
 msgstr ""
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, gcc-internal-format
 msgid "%qD is a function, not a type"
 msgstr ""
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr ""
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr ""
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr ""
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr ""
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr ""
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr ""
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr ""
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr ""
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr ""
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, gcc-internal-format
 msgid "anonymous struct with base classes"
 msgstr ""
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr ""
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr ""
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr ""
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr ""
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr ""
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr ""
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr ""
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr ""
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr ""
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr ""
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr ""
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr ""
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr ""
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr ""
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr ""
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr ""
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr ""
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr ""
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr ""
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr ""
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr ""
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr ""
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr ""
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr ""
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr ""
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr ""
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr ""
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr ""
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr ""
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr ""
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr ""
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr ""
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr ""
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr ""
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr ""
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr ""
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, gcc-internal-format
 msgid "uninitialized %<const %D%>"
 msgstr ""
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr ""
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr ""
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr ""
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr ""
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr ""
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr ""
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr ""
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr ""
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr ""
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
 msgstr ""
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr ""
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr ""
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr ""
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr ""
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, gcc-internal-format
 msgid "too many braces around scalar initializer for type %qT"
 msgstr ""
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr ""
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr ""
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr ""
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr ""
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr ""
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr ""
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr ""
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr ""
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr ""
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr ""
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr ""
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr ""
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr ""
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr ""
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr ""
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr ""
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr ""
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr ""
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr ""
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr ""
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr ""
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, gcc-internal-format
 msgid "deduced type %qT for %qD is incomplete"
 msgstr ""
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr ""
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr ""
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr ""
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr ""
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr ""
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr ""
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr ""
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr ""
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
@@ -55669,7 +55677,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
@@ -55677,7 +55685,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
@@ -55685,1746 +55693,1746 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr ""
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr ""
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr ""
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr ""
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr ""
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr ""
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr ""
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr ""
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr ""
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr ""
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr ""
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr ""
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr ""
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr ""
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr ""
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr ""
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr ""
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr ""
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr ""
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr ""
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr ""
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr ""
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr ""
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr ""
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr ""
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr ""
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr ""
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr ""
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr ""
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr ""
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, gcc-internal-format
 msgid "a function concept cannot be constrained"
 msgstr ""
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, gcc-internal-format
 msgid "constraints on a non-templated function"
 msgstr ""
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, gcc-internal-format
 msgid "constrained non-template friend declaration must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr ""
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr ""
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr ""
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr ""
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr ""
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be %qs"
 msgstr ""
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr ""
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, gcc-internal-format
 msgid "explicit object parameter declared here"
 msgstr ""
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr ""
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "deduction guide %qD mora imati isti pristup kao %qT"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr ""
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr ""
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr ""
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr ""
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr ""
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr ""
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr ""
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr ""
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr ""
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr ""
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr ""
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr ""
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, gcc-internal-format
 msgid "a variable concept cannot be constrained"
 msgstr ""
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr ""
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr ""
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr ""
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr ""
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr ""
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr ""
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr ""
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr ""
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr ""
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr ""
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr ""
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr ""
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, gcc-internal-format
 msgid "creating array of template placeholder type %qT"
 msgstr ""
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr ""
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr ""
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr ""
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr ""
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr ""
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr ""
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr ""
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr ""
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, gcc-internal-format
 msgid "variable-length array of %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr ""
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr ""
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr ""
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr ""
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr ""
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr ""
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr ""
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr ""
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr ""
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr ""
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, gcc-internal-format
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr ""
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr ""
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, gcc-internal-format
 msgid "%q#T is not a class or namespace"
 msgstr ""
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, gcc-internal-format
 msgid "declaration of %qE as non-function"
 msgstr ""
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, gcc-internal-format
 msgid "declaration of %qE as non-member"
 msgstr ""
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr ""
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr ""
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr ""
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr ""
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr ""
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr ""
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr ""
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr ""
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr ""
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr ""
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr ""
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr ""
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr ""
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr ""
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr ""
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr ""
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr ""
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr ""
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr ""
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr ""
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr ""
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr ""
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr ""
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr ""
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr ""
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr ""
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr ""
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr ""
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr ""
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr ""
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "%qs opseg funkcije je implicitno auto i deklariran kao %<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr ""
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, gcc-internal-format
 msgid "attribute ignored"
 msgstr ""
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr ""
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, gcc-internal-format
 msgid "remove parentheses"
 msgstr ""
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "eksplicitna funkcija člana objekta dostupna je samo s %<-std=c++23%> ili %<-std=gnu++23%>"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr ""
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr ""
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr ""
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr ""
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr ""
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr ""
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr ""
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr ""
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr ""
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr ""
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr ""
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr ""
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr ""
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr ""
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr ""
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr ""
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr ""
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD ne može biti eksplicitna funkcija člana objekta"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr ""
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr ""
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr ""
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr ""
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr ""
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr ""
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr ""
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr ""
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr ""
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr ""
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr ""
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr ""
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr ""
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr ""
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr ""
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr ""
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr ""
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr ""
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr ""
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr ""
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr ""
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr ""
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr ""
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr ""
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr ""
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr ""
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr ""
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr ""
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr ""
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr ""
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array members"
 msgstr ""
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr ""
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr ""
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr ""
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr ""
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr ""
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr ""
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr ""
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr ""
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr ""
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr ""
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, gcc-internal-format
 msgid "%qD cannot be %qs"
 msgstr "%qD ne može bit %qs"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr ""
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, gcc-internal-format
 msgid "variable template declared here"
 msgstr ""
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr ""
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr ""
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr ""
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr ""
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr ""
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr ""
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr ""
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr ""
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr ""
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr ""
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr ""
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr ""
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr ""
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr ""
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr ""
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr ""
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr ""
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr ""
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr ""
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr ""
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr ""
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr ""
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr ""
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr ""
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr ""
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr ""
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr ""
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, gcc-internal-format
 msgid "%qD must be a non-static member function"
 msgstr ""
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "%qD mora biti član funkcije"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr ""
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr ""
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr ""
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr ""
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr ""
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr ""
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr ""
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr ""
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, gcc-internal-format
 msgid "%qD must have no arguments"
 msgstr ""
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr ""
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr ""
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr ""
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr ""
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr ""
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr ""
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr ""
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr ""
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr ""
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr ""
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr ""
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr ""
@@ -57436,115 +57444,100 @@ msgstr ""
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr ""
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr ""
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, gcc-internal-format
 msgid "class template %qD redeclared as non-template"
 msgstr ""
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr ""
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr ""
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr ""
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr ""
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, gcc-internal-format
-msgid "cannot declare %qD in a different module"
-msgstr ""
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "ranije deklarirana ovdje"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr ""
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr ""
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr ""
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr ""
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr ""
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr ""
 
-#: cp/decl.cc:16984
-#, gcc-internal-format
-msgid "cannot declare %qD in different module"
-msgstr ""
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr ""
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr ""
@@ -57553,82 +57546,82 @@ msgstr ""
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr ""
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr ""
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr ""
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr ""
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr ""
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr ""
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr ""
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr ""
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr ""
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr ""
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr ""
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr ""
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, gcc-internal-format
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr ""
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr ""
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, gcc-internal-format
 msgid "using %qs"
 msgstr "koristimo %qs"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr ""
@@ -57683,7 +57676,7 @@ msgstr ""
 msgid "deleting %qT is undefined"
 msgstr ""
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr ""
@@ -57693,7 +57686,7 @@ msgstr ""
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr ""
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr ""
@@ -57877,64 +57870,64 @@ msgstr ""
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr ""
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr ""
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr ""
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr ""
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr ""
@@ -57943,104 +57936,104 @@ msgstr ""
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr ""
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr ""
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr ""
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr ""
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr ""
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr ""
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr ""
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr ""
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr ""
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr ""
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr ""
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "funkcija %qD se koristi s nezadovoljenim ograničenjima"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr ""
@@ -58145,7 +58138,7 @@ msgstr ""
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr ""
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr ""
@@ -58155,7 +58148,7 @@ msgstr ""
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr ""
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr ""
@@ -58180,47 +58173,47 @@ msgstr ""
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr ""
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr ""
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr ""
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr ""
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, gcc-internal-format
 msgid "for type %qT"
 msgstr ""
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr ""
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -58487,12 +58480,12 @@ msgstr ""
 msgid "type %qT is not a direct base of %qT"
 msgstr ""
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr ""
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr ""
@@ -58507,12 +58500,12 @@ msgstr ""
 msgid "invalid pointer to bit-field %qD"
 msgstr ""
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr ""
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr ""
@@ -58707,52 +58700,52 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr ""
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr ""
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr ""
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr ""
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr ""
@@ -59123,223 +59116,268 @@ msgstr ""
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, gcc-internal-format
 msgid "conflicting global module declaration %#qD"
 msgstr ""
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, gcc-internal-format
 msgid "existing declaration %#qD"
 msgstr ""
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr ""
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, gcc-internal-format
 msgid "existing definition %qD"
 msgstr ""
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, gcc-internal-format
 msgid "... this enumerator %qD"
 msgstr ""
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr ""
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, gcc-internal-format
 msgid "module %qs declared here"
 msgstr ""
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr ""
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr ""
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr ""
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, gcc-internal-format, gfc-internal-format
 msgid "compiled module is %sversion %s"
 msgstr "kompilirani modul je %sversion %s"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, gcc-internal-format, gfc-internal-format
 msgid "compiler is %sversion %s%s%s"
 msgstr "kompajler je %sversion %s%s%s"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, gcc-internal-format
 msgid "module %qs found"
 msgstr ""
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr ""
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr ""
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, gcc-internal-format
 msgid "interface partition is not exported"
 msgstr ""
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr ""
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr "nije uspjelo pročitati kompilirani modul: %s"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr ""
+
+#: cp/module.cc:19122
+#, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, gcc-internal-format
+msgid "conflicting declaration of %qD in module %qs"
+msgstr ""
+
+#: cp/module.cc:19143
+#, gcc-internal-format
+msgid "conflicting declaration of %qD in global module"
+msgstr ""
+
+#: cp/module.cc:19148
+#, gcc-internal-format
+msgid "previously declared in module %qs"
+msgstr "ranije deklarirano u modulu %qs"
+
+#: cp/module.cc:19152
+#, gcc-internal-format
+msgid "previously declared in global module"
+msgstr "ranije deklarirano u globalnom modulu"
+
+#: cp/module.cc:19404
 #, gcc-internal-format
 msgid "reading CMI %qs"
 msgstr "čitamo CMI %qs"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr "nije uspjelo učitati vezanja %<%E%s%E%>"
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr "nije uspjelo učitati jedinice na čekanju za %<%E%s%E%>"
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr ""
@@ -59351,297 +59389,297 @@ msgstr ""
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, gcc-internal-format
 msgid "module already declared"
 msgstr ""
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, gcc-internal-format
 msgid "module already imported"
 msgstr ""
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, gcc-internal-format
 msgid "module %qs imported here"
 msgstr ""
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr ""
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, gcc-internal-format
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr ""
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr ""
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, gcc-internal-format
 msgid "invalid header name %qs"
 msgstr ""
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, gcc-internal-format
 msgid "invalid module name %qs"
 msgstr ""
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, gcc-internal-format
 msgid "writing CMI %qs"
 msgstr ""
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, gcc-internal-format
 msgid "not writing module %qs due to errors"
 msgstr ""
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr "nije uspjelo zapisati kompilirani modul: %s"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr ""
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "deklaracije neovisne o imenu dostupne su samo s %<-std=c++2c%> ili %<-std=gnu++2c%>"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr ""
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr ""
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D skriva konstruktora za %q#D"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr ""
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr ""
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, gcc-internal-format
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr ""
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr ""
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr ""
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr ""
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, gcc-internal-format
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, gcc-internal-format
 msgid "%<%T%s%D%> names destructor"
 msgstr ""
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr ""
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr ""
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr ""
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, gcc-internal-format
 msgid "%qT is not a direct base of %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr ""
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr ""
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr ""
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr ""
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
@@ -59649,93 +59687,93 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr ""
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr ""
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, gcc-internal-format
 msgid "it was later defined here"
 msgstr ""
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr ""
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, gcc-internal-format
 msgid "%<strong%> using directive no longer supported"
 msgstr ""
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, gcc-internal-format
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr ""
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr ""
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr ""
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, gcc-internal-format
 msgid "%qD defined here"
 msgstr ""
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr ""
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr ""
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr ""
@@ -59760,7 +59798,7 @@ msgstr ""
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr ""
@@ -60006,7 +60044,7 @@ msgstr ""
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
@@ -60186,7 +60224,7 @@ msgstr ""
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr ""
@@ -60241,7 +60279,7 @@ msgstr ""
 msgid "template-id not allowed for destructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -60261,7 +60299,7 @@ msgstr ""
 msgid "expected unqualified-id"
 msgstr ""
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr ""
@@ -60311,7 +60349,7 @@ msgstr ""
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr ""
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr ""
@@ -60346,7 +60384,7 @@ msgstr ""
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr ""
@@ -60371,7 +60409,7 @@ msgstr ""
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr ""
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr ""
@@ -60521,8 +60559,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr ""
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, gcc-internal-format
 msgid "%q#D declared here"
 msgstr ""
@@ -60562,7 +60600,7 @@ msgstr ""
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -60687,7 +60725,7 @@ msgstr ""
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr ""
@@ -60749,7 +60787,7 @@ msgstr ""
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr ""
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr ""
@@ -60775,7 +60813,7 @@ msgstr ""
 msgid "ISO C++ forbids computed gotos"
 msgstr ""
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr ""
@@ -61056,12 +61094,12 @@ msgstr ""
 msgid "cannot expand initializer for member %qD"
 msgstr ""
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr ""
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr ""
@@ -61699,7 +61737,7 @@ msgstr ""
 msgid "%qT not permitted in template argument"
 msgstr ""
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, gcc-internal-format
 msgid "invalid use of %qT"
@@ -61878,12 +61916,12 @@ msgstr ""
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr ""
@@ -62085,37 +62123,37 @@ msgstr ""
 msgid "expression must be enclosed in parentheses"
 msgstr ""
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, gcc-internal-format
 msgid "result type is not a plain type-constraint"
 msgstr ""
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr ""
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr ""
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr ""
@@ -62124,437 +62162,437 @@ msgstr ""
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr ""
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr ""
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr ""
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr ""
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr ""
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr ""
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr ""
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr ""
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr ""
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr ""
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr ""
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr ""
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr ""
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr ""
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr ""
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr ""
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr ""
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr ""
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr ""
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, gcc-internal-format
 msgid "duplicate %qD"
 msgstr ""
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr ""
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr ""
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr ""
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr ""
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr ""
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr ""
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr ""
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr ""
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr ""
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr ""
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr ""
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr ""
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr ""
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr ""
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr ""
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr ""
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr "očekivano je %<auto%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr ""
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr ""
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr ""
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr ""
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr ""
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr "očekivano je %<co_yield%>"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr ""
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr ""
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr ""
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr ""
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr ""
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr ""
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr ""
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr ""
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, gcc-internal-format
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr ""
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr ""
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr ""
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr ""
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr ""
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr ""
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr ""
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr ""
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr ""
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr ""
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr ""
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr ""
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr ""
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr ""
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr ""
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr ""
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, gcc-internal-format
 msgid "invalid type for property"
 msgstr ""
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr ""
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, gcc-internal-format
 msgid "expected integer expression list"
 msgstr ""
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr ""
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "očekivano je %<scalar%>, %<aggregate%>, %<all%>"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr ""
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr ""
@@ -62563,12 +62601,12 @@ msgstr ""
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, gcc-internal-format
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr ""
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
@@ -62578,133 +62616,133 @@ msgstr ""
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr ""
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr ""
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr ""
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr ""
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr ""
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr ""
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr ""
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr ""
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr ""
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr ""
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr ""
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr ""
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr ""
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr ""
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -62734,7 +62772,7 @@ msgstr ""
 msgid "specialization of %qD must appear at namespace scope"
 msgstr ""
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr ""
@@ -62749,170 +62787,170 @@ msgstr ""
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr ""
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr ""
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr ""
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr ""
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, gcc-internal-format
 msgid "from definition of %q#D"
 msgstr ""
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr ""
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr ""
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr ""
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, gcc-internal-format
 msgid "%s %#qD"
 msgstr ""
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr ""
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr ""
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr ""
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr ""
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr ""
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr ""
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr ""
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr ""
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr ""
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr ""
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, gcc-internal-format
 msgid "template-id %qE in declaration of primary template"
 msgstr ""
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr ""
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr ""
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr ""
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr ""
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr ""
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr ""
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr ""
@@ -62925,137 +62963,137 @@ msgstr ""
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr ""
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr ""
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, gcc-internal-format
 msgid "friend declaration here"
 msgstr ""
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr ""
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, gcc-internal-format
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr ""
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr ""
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr ""
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr ""
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr ""
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr ""
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr ""
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr ""
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr ""
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr ""
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, gcc-internal-format
 msgid "too many arguments for partial specialization %qT"
 msgstr ""
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr ""
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, gcc-internal-format
 msgid "primary template %qD"
 msgstr ""
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
@@ -63063,17 +63101,17 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr ""
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr ""
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr ""
@@ -63082,47 +63120,47 @@ msgstr ""
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr ""
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr ""
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr ""
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr ""
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr ""
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, gcc-internal-format
 msgid "template %qD declared"
 msgstr ""
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr ""
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr ""
@@ -63132,62 +63170,62 @@ msgstr ""
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr ""
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr ""
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr ""
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr ""
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr ""
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr ""
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr ""
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "ponovna deklaracija %qD s drukčijim ograničenjima"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr ""
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr ""
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
@@ -63195,7 +63233,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
@@ -63203,437 +63241,437 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr ""
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr ""
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, gcc-internal-format
 msgid "redeclared here"
 msgstr "ponovno deklarirano ovdje"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr ""
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr ""
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "ponovljena deklaracija %q#D s drugačijim ograničenjima"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr ""
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr ""
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr ""
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr ""
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr ""
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr ""
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr ""
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr ""
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr ""
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr ""
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr ""
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr ""
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr ""
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr ""
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr ""
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr ""
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr ""
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr ""
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr ""
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr ""
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr ""
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr ""
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr ""
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr ""
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr ""
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr ""
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr ""
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr ""
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr ""
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr ""
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr ""
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr ""
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr ""
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr ""
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr ""
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr ""
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr ""
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr ""
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr ""
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr ""
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr ""
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr ""
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr ""
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr ""
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr ""
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr ""
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr ""
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, gcc-internal-format
 msgid "provided for %qD"
 msgstr ""
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr ""
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr ""
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr ""
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr ""
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, gcc-internal-format
 msgid "template constraint failure for %qD"
 msgstr ""
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr ""
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr ""
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr ""
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr ""
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr ""
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, gcc-internal-format
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr ""
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr ""
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr ""
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr ""
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr ""
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr ""
@@ -63651,301 +63689,301 @@ msgstr ""
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr ""
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr ""
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr ""
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "funkcija vraća polje"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "funkcija vraća funkciju"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr ""
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr ""
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr ""
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr ""
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr ""
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr ""
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr ""
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr ""
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr ""
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr ""
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr ""
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr ""
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr ""
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr ""
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr ""
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr ""
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr ""
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr ""
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr ""
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr ""
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr ""
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, gcc-internal-format
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr ""
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr ""
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr ""
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr ""
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr ""
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr ""
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr ""
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr ""
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr ""
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr ""
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr ""
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 msgid "%s %#qS"
 msgstr ""
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr ""
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr ""
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, gcc-internal-format
 msgid "explicit instantiation of function concept %q#D"
 msgstr ""
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr ""
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr ""
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr ""
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr ""
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr ""
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr ""
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr ""
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr ""
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr ""
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr ""
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr ""
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr ""
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr ""
@@ -63957,163 +63995,163 @@ msgstr ""
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr ""
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr ""
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr ""
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr ""
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr ""
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, gcc-internal-format
 msgid "a concept cannot be constrained"
 msgstr ""
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr ""
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr ""
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr ""
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr ""
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, gcc-internal-format
 msgid "use %qD directly instead"
 msgstr ""
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr ""
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr ""
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, gcc-internal-format
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr ""
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr ""
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr ""
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr ""
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr ""
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr "ograničenja rezerviranog mjesta nisu zadovoljena"
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "izvedeni povratni tip ne zadovoljava ograničenja rezerviranog mjesta"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "izvedeni povratni tip ne zadovoljava ograničenja rezerviranog mjesta"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "izvedeni povratni tip ne zadovoljava ograničenja rezerviranog mjesta"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr ""
@@ -64319,630 +64357,630 @@ msgstr ""
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr ""
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr ""
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr ""
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr ""
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr ""
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, gcc-internal-format
 msgid "cannot call a concept as a function"
 msgstr ""
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr ""
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, gcc-internal-format
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr ""
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr ""
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr ""
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr ""
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, gcc-internal-format
 msgid "invalid use of %<this%> before it is valid"
 msgstr ""
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, gcc-internal-format
 msgid "invalid use of %<this%> after it is valid"
 msgstr ""
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr ""
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr ""
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr ""
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr ""
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr ""
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr ""
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr ""
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr ""
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr ""
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr ""
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr ""
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr ""
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr ""
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr ""
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr ""
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, gcc-internal-format
 msgid "missing template arguments"
 msgstr ""
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr ""
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr ""
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr ""
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr ""
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr ""
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr ""
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "index %<__type_pack_element%> je izvan raspona"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr ""
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr ""
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr ""
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr ""
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr ""
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
 msgstr ""
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr ""
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr ""
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr ""
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr ""
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr ""
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr ""
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr ""
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr ""
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr ""
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr ""
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr ""
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr ""
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr ""
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr ""
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr ""
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, gcc-internal-format
 msgid "static assertion failed: %.*s"
 msgstr ""
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr ""
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr ""
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr ""
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr ""
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr ""
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr ""
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr ""
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr ""
@@ -64950,1158 +64988,1158 @@ msgstr ""
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr ""
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr ""
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, gcc-internal-format
 msgid " declared here"
 msgstr ""
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr ""
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, gcc-internal-format
 msgid "%qD is not public"
 msgstr ""
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, gcc-internal-format
 msgid "%qD is mutable"
 msgstr ""
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr ""
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr ""
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, gcc-internal-format
 msgid "%qE attribute argument must be a string constant"
 msgstr ""
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr ""
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr ""
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, gcc-internal-format
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr ""
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr ""
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr ""
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, gcc-internal-format
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr ""
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr ""
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr ""
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr ""
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr ""
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr ""
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr ""
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr ""
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr ""
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr ""
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr ""
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr ""
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr ""
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr ""
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr ""
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr ""
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr ""
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr ""
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr ""
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr ""
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr ""
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr ""
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr ""
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr ""
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr ""
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr ""
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr ""
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr ""
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr ""
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr ""
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr ""
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr ""
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr ""
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr ""
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr ""
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr ""
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr ""
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr ""
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr ""
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr ""
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr ""
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr ""
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr ""
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr ""
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr ""
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr ""
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr ""
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr ""
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr ""
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr ""
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr ""
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr ""
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr ""
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr ""
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr ""
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr ""
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr ""
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, gcc-internal-format
 msgid "unordered comparison on non-floating-point argument"
 msgstr ""
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr ""
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr ""
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr ""
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr ""
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr ""
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr ""
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr ""
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr ""
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr ""
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, gcc-internal-format
 msgid "taking address of rvalue"
 msgstr ""
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr ""
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr ""
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr ""
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr ""
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr ""
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr ""
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr ""
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr ""
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr ""
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr ""
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr ""
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr ""
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr ""
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr ""
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr ""
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, gcc-internal-format
 msgid "type qualifiers ignored on cast result type"
 msgstr ""
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, gcc-internal-format
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr ""
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 msgid "converting from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, gcc-internal-format
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 msgid "cast from %qH to %qI loses precision"
 msgstr ""
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr ""
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr ""
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr ""
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr ""
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, gcc-internal-format
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, gcc-internal-format
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr ""
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr ""
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, gcc-internal-format
 msgid "moving %qE of type %qT to itself"
 msgstr ""
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr ""
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr ""
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr ""
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr ""
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr ""
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr ""
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr ""
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr ""
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr ""
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 msgid "cannot convert %qH to %qI in default argument"
 msgstr ""
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr ""
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 msgid "cannot convert %qH to %qI in initialization"
 msgstr ""
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 msgid "cannot convert %qH to %qI in return"
 msgstr ""
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 msgid "cannot convert %qH to %qI in assignment"
 msgstr ""
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr ""
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr ""
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, gcc-internal-format
 msgid "returning pointer to temporary"
 msgstr ""
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr ""
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr ""
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr ""
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr ""
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr ""
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr ""
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr ""
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr ""
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr ""
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, gcc-internal-format
 msgid "returning initializer list"
 msgstr ""
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr ""
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr ""
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr ""
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr ""
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr ""
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, gcc-internal-format
 msgid "using rvalue as lvalue"
 msgstr ""
@@ -66322,155 +66360,155 @@ msgstr ""
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr ""
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr ""
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr ""
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr ""
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, gcc-internal-format
 msgid "initializer-string for %qT is too long"
 msgstr ""
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, gcc-internal-format
 msgid "remove %<{ }%> around initializer"
 msgstr ""
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr ""
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr ""
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr ""
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr ""
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr ""
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr ""
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr ""
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr ""
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr ""
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr ""
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr ""
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr ""
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr ""
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr ""
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr ""
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr ""
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr ""
@@ -67448,7 +67486,7 @@ msgstr ""
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr ""
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr ""
@@ -68771,7 +68809,7 @@ msgstr ""
 msgid "deferred type parameter at %C"
 msgstr ""
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -68986,7 +69024,7 @@ msgstr ""
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr ""
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr ""
@@ -69787,7 +69825,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr ""
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr ""
@@ -70594,12 +70632,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr ""
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -70847,273 +70885,273 @@ msgstr ""
 msgid "check_init_expr(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr ""
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr ""
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr ""
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr ""
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr ""
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr ""
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr ""
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr ""
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr ""
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr ""
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr ""
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr ""
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr ""
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr ""
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr ""
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr ""
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr ""
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr ""
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr ""
@@ -71121,192 +71159,192 @@ msgstr ""
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr ""
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr ""
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr ""
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr ""
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr ""
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr ""
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr ""
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr ""
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr ""
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr ""
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr ""
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr ""
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr ""
@@ -71327,8 +71365,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr ""
@@ -71408,7 +71446,7 @@ msgstr ""
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr ""
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -71543,12 +71581,12 @@ msgstr ""
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
@@ -72418,7 +72456,7 @@ msgstr ""
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr ""
@@ -72969,7 +73007,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr ""
@@ -73135,6 +73173,11 @@ msgstr ""
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -73536,7 +73579,7 @@ msgstr ""
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr ""
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr ""
@@ -74059,82 +74102,82 @@ msgstr ""
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr ""
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected RANK statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr ""
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr ""
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr ""
@@ -75550,8 +75593,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr ""
@@ -77914,12 +77957,12 @@ msgstr ""
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr ""
@@ -78039,7 +78082,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr ""
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr ""
@@ -78438,278 +78481,283 @@ msgstr ""
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr ""
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr ""
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid array reference at %L"
+msgstr ""
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr ""
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr ""
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr ""
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr ""
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr ""
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "%qs se ne smije pojaviti u specifikaciji polja pri %L u istoj ALLOCATE izjavi gdje je i sam dodijeljen"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -78718,284 +78766,284 @@ msgstr ""
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr ""
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr ""
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr ""
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr ""
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr ""
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr ""
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr ""
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr ""
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr ""
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr ""
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr ""
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr ""
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr ""
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr ""
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr ""
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr ""
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr ""
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr ""
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr ""
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr ""
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr ""
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr ""
@@ -79003,212 +79051,212 @@ msgstr ""
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr ""
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr ""
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr ""
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr ""
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr ""
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr ""
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr ""
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr ""
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr ""
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr ""
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr ""
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr ""
@@ -79216,999 +79264,999 @@ msgstr ""
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr ""
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr ""
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr ""
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr ""
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr ""
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr ""
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr ""
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr ""
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr ""
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr ""
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr ""
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr ""
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr ""
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr ""
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr ""
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr ""
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr ""
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr ""
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr ""
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr ""
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr ""
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr ""
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr ""
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr ""
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr ""
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr ""
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr ""
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr ""
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr ""
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr ""
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr ""
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr ""
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr ""
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr ""
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr ""
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr ""
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr ""
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr ""
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr ""
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr ""
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr ""
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr ""
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr ""
@@ -80752,330 +80800,330 @@ msgstr ""
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr ""
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr ""
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr ""
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr ""
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr ""
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr ""
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr ""
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr ""
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr ""
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr ""
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr ""
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr ""
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr ""
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr ""
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr ""
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr ""
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr ""
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr ""
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr ""
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr ""
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr ""
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr ""
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr ""
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr ""
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr ""
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr ""
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr ""
@@ -81105,24 +81153,24 @@ msgstr ""
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr ""
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr ""
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr ""
@@ -81308,37 +81356,37 @@ msgstr ""
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr ""
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr ""
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr ""
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -81349,17 +81397,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr ""
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr ""
@@ -81499,7 +81547,7 @@ msgstr ""
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr ""
@@ -81865,6 +81913,11 @@ msgstr "varijable %qD je ponovno deklarirana kao funkcija"
 msgid "function %qD redeclared as variable"
 msgstr "funkcija %qD je ponovno deklarirana kao varijabla"
 
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "ranije deklarirana ovdje"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -83102,7 +83155,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr ""
@@ -83112,7 +83165,7 @@ msgstr ""
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr ""
diff --git a/gcc/po/id.po b/gcc/po/id.po
index 156aa92cf72..bbdda773c9f 100644
--- a/gcc/po/id.po
+++ b/gcc/po/id.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 4.4.1\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2009-11-10 09:00+0700\n"
 "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -446,7 +446,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "Jangan spesifikasikan baik -march=... dan -mcpu=..."
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared dan mdll tidak kompatibel"
 
@@ -21402,18 +21402,18 @@ msgstr "insn tidak dikenal:"
 msgid "insn does not satisfy its constraints:"
 msgstr "insn tidak memenuhi batasannya:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "dibuat dan digunakan dengan konfigurasi berbeda dari '%s'"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 #, fuzzy
 #| msgid "created and used with different settings of -fpic"
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "dibuat dan digunakan dengan konfigurasi berbeda dari -fpic"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 #, fuzzy
 #| msgid "created and used with different settings of -fpie"
 msgid "created and used with different settings of %<-fpie%>"
@@ -21741,7 +21741,7 @@ msgstr "pemodifikasi panjang dalam format strfmon"
 msgid "<command-line>"
 msgstr "<baris-perintah>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 #| msgid "invalid operand for code '%c'"
 msgid "unsupported operand for code '%c'"
@@ -21762,9 +21762,9 @@ msgstr "operan tidak valid untuk kode '%c'"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 #| msgid "invalid punctuation %qc in constraint"
 msgid "invalid vector constant"
@@ -21787,7 +21787,7 @@ msgstr "operan tidak valid untuk kode '%c'"
 msgid "incompatible register operand for '%%%c'"
 msgstr "operan tidak valid untuk kode '%c'"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "hilang operan"
@@ -21822,93 +21822,93 @@ msgstr "alamat tidak valid"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "operan tidak valid dalam operasi binary"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr ""
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "nilai %%J tidak valid"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "nilai %%r tidak valid"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "nilai %%R tidak valid"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "nilai %%N tidak valid"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "nilai %%P tidak valid"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "nilai %%h tidak valid"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "nilai %%L tidak valid"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "nilai %%m tidak valid"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "nilai %%M tidak valid"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "nilai %%U tidak valid"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "nilai %%s tidak valid"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "nilai %%C tidak valid"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "nilai %%E tidak valid"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "relokasi unspek tidak diketahui"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "kode %%xn tidak valid"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, fuzzy, c-format
 #| msgid "invalid address"
 msgid "invalid operand address"
@@ -22011,36 +22011,36 @@ msgstr "UNSPEC tidak valid sebagai operan"
 msgid "unrecognized supposed constant"
 msgstr "konstanta yang diharapkan tidak dikenal"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "operan shift tidak valid"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "instruksi Thumb terprediksi"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "instruksi terprediksi dalam urutan berkondisi"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, fuzzy, c-format
 #| msgid "invalid operand for code '%c'"
 msgid "Unsupported operand for code '%c'"
 msgstr "operan tidak valid untuk kode '%c'"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -22048,129 +22048,129 @@ msgstr "operan tidak valid untuk kode '%c'"
 msgid "invalid operand for code '%c'"
 msgstr "operan tidak valid untuk kode '%c'"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "instruksi tidak pernah dijalankan"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr ""
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "konversi dari %<__fpreg%> tidak valid"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "konversi tidak valid ke tipe %qT dari tipe %qT"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "alamat operan membutuhkan batasan untuk X, Y, atau Z register"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 #, fuzzy
 #| msgid "output operand %d must use %<&%> constraint"
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "keluaran operan %d harus menggunakan batasan %<&%>"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 #, fuzzy
 #| msgid "bad address, not (reg+disp):"
 msgid "bad address, not an I/O address:"
 msgstr "alamat buruk, bukan (reg+disp):"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 #, fuzzy
 #| msgid "address offset not a constant"
 msgid "bad address, not a constant:"
 msgstr "ofset alamat bukan sebuah konstanta"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "alamat buruk, bukan (reg+disp):"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "alamat buruk, bukan post_inc atau pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "internal kompiler error. Alamat buruk:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr ""
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "internal kompiler error. Kode tidak diketahui:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "insn tidak valid:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "insn tidak benar:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "insn move tidak dikenal:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "shift insn buruk:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "internal kompiler error. shift tidak benar:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 #, fuzzy
 #| msgid "invalid types in fixed-point conversion"
 msgid "unsupported fixed-point conversion"
 msgstr "tipe tidak valid dalam konversi titik tetap"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr ""
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 #, fuzzy
 #| msgid "redefinition of parameter %q+D"
 msgid "function parameter"
 msgstr "redefinisi dari parameter %q+D"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr ""
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 #, fuzzy
 #| msgid "function return type cannot be function"
 msgid "return type of function"
 msgstr "tipe kembali fungsi tidak dapat berupa fungsi"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr ""
 
@@ -22209,7 +22209,7 @@ msgstr "operan tidak terduga"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -22545,55 +22545,55 @@ msgstr "operan bukan sebuah kode kondisi, kode operan 'D' tidak valid"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "operan bukan sebuah kode kondisi, kode operan 'D' tidak valid"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "kode operan '%c' tidak valid"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "batasan untuk operan tidak valid"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 #| msgid "invalid controlling predicate"
 msgid "invalid vector immediate"
 msgstr "predikat pengontrol tidak valid"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "mode insn tidak diketahui"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "konversi dari %<__fpreg%> tidak valid"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "konversi dari %<__fpreg%> tidak valid"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "konversi ke %<__fpreg%> tidak valid"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "konversi tidak valid ke tipe %qT dari tipe %qT"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -22625,7 +22625,7 @@ msgstr "operasi di %<__fpreg%> tidak valid"
 msgid "invalid %%P operand"
 msgstr "operan %%P tidak valid"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "nilai %%p tidak valid"
@@ -22656,29 +22656,29 @@ msgstr ""
 msgid "invalid addressing mode"
 msgstr "alamat tidak valid"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "'%%%c' bukan sebuah awalan operan yang valid"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "penggunaan dari '%%%c' tidak valid"
@@ -22710,7 +22710,7 @@ msgid "post-increment address is not a register"
 msgstr "alamat post-increment bukan sebuah register"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "alamat buruk"
 
@@ -22884,7 +22884,7 @@ msgstr "kombinasi tidak didukung: %s"
 msgid "unsupported memory expression:"
 msgstr "diduga ekspresi integer"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 #| msgid "invalid %%c operand"
 msgid "invalid vector operand"
@@ -22939,275 +22939,275 @@ msgstr ""
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 #, fuzzy
 #| msgid "bad test"
 msgid "bad move"
 msgstr "tes buruk"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%A value"
 msgstr "nilai %%H tidak valid"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "nilai %%D tidak valid"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%e value"
 msgstr "nilai %%H tidak valid"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "nilai %%f tidak valid"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "nilai %%F tidak valid"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "nilai %%G tidak valid"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "kode %%j tidak valid"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "kode %%J tidak valid"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "nilai %%k tidak valid"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "nilai %%K tidak valid"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "nilai %%O tidak valid"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "nilai %%q tidak valid"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%t value"
 msgstr "nilai %%H tidak valid"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "nilai %%T tidak valid"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "nilai %%u tidak valid"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "nilai %%v tidak valid"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%V value"
 msgstr "nilai %%H tidak valid"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "nilai %%x tidak valid"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%z value"
 msgstr "nilai %%H tidak valid"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "nilai %%ytidak valid, coba menggunakan batasan 'Z'"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "Argumen AltiVec dilewatkan ke fungsi yang tidak berprototipe"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 #, fuzzy
 #| msgid "Do not generate a single exit point for each function"
 msgid "Could not generate addis value for fusion"
 msgstr "Jangan hasilkan sebuah titik keluar tunggal untuk setiap fungsi"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 #, fuzzy
 #| msgid "unable to generate reloads for:"
 msgid "Unable to generate load/store offset for fusion"
 msgstr "tidak dapat menghasilkan reloads untuk:"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "konversi dari %<__fpreg%> tidak valid"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "konversi ke %<__fpreg%> tidak valid"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "konversi dari %<__fpreg%> tidak valid"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "konversi ke %<__fpreg%> tidak valid"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr ""
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "tidak dapat menguraikan alamat"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "operan tidak valid untuk pemodifikasi 'b'"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid reference for 'J' output modifier"
 msgstr "operan tidak valid untuk pemodifikasi 'b'"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, fuzzy, c-format
 #| msgid "invalid operand for 'O' modifier"
 msgid "invalid address for 'O' output modifier"
 msgstr "operan tidak valid untuk pemodifikasi 'O'"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid address for 'R' output modifier"
 msgstr "operan tidak valid untuk pemodifikasi 'b'"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid address for 'S' output modifier"
 msgstr "operan tidak valid untuk pemodifikasi 'b'"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, fuzzy, c-format
 #| msgid "invalid operand for 'o' modifier"
 msgid "invalid constant for output modifier '%c'"
 msgstr "operan tidak valid untuk pemodifikasi 'o'"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, fuzzy, c-format
 #| msgid "invalid operand output code"
 msgid "invalid constant - try using an output modifier"
 msgstr "operan kode keluaran tidak valid"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, fuzzy, c-format
 #| msgid "invalid operand for 'o' modifier"
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "operan tidak valid untuk pemodifikasi 'o'"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, fuzzy, c-format
 #| msgid "invalid expression for min lvalue"
 msgid "invalid expression - try using an output modifier"
 msgstr "ekspresi tidak valid untuk minimal lvalue"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, fuzzy, c-format
 #| msgid "invalid operand for 'o' modifier"
 msgid "invalid expression for output modifier '%c'"
 msgstr "operan tidak valid untuk pemodifikasi 'o'"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "vector argument passed to unprototyped function"
 msgstr "Argumen AltiVec dilewatkan ke fungsi yang tidak berprototipe"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 #, fuzzy
 #| msgid "pointer targets in return differ in signedness"
 msgid "types differ in signedness"
 msgstr "target penunjuk dalam kembali berbeda dalam signedness"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr ""
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -23411,12 +23411,12 @@ msgstr "<anonim>"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "diduga %<,%>"
@@ -23429,7 +23429,7 @@ msgstr "diduga %<,%>"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -23438,7 +23438,7 @@ msgstr "diduga %<,%>"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<)%>"
@@ -23447,7 +23447,7 @@ msgstr "diduga %<{%>"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<]%>"
@@ -23461,30 +23461,30 @@ msgstr "diduga %<,%>, %<,%> atau %<}%>"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "diduga %<(%>"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<[%>"
 msgstr "diduga %<{%>"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "diduga %<{%>"
@@ -23494,18 +23494,18 @@ msgstr "diduga %<{%>"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<:%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<while%>"
@@ -23515,8 +23515,8 @@ msgstr "diduga %<{%>"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<,%>"
@@ -23529,19 +23529,19 @@ msgid "expected %<.%>"
 msgstr "diduga %<{%>"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@end%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<>%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<,%> or %<)%>"
@@ -23550,34 +23550,34 @@ msgstr "diduga %<,%> atau %<,%>"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "diduga %<=%>"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<}%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<else%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "diduga %<#pragma omp section%> atau %<}%>"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -23587,7 +23587,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "<anonim>"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<<%>"
@@ -23606,13 +23606,13 @@ msgstr "Diduga nama"
 msgid "candidate:"
 msgstr "kandidat 1:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 #| msgid "type %qs has a user-defined constructor"
 msgid "  after user-defined conversion:"
 msgstr "tipe %qs memiliki sebuah konstruktor yang didefinisikan pengguna"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 #, fuzzy
 #| msgid "candidate 1:"
 msgid "candidate is:"
@@ -23620,11 +23620,11 @@ msgid_plural "candidates are:"
 msgstr[0] "kandidat 1:"
 msgstr[1] "kandidat 1:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "kandidat 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "kandidat 2:"
 
@@ -23908,7 +23908,7 @@ msgstr ""
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr ""
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "kandidat adalah:"
 
@@ -23968,54 +23968,54 @@ msgstr "konversi ke %qT mengubah nilai konstanta %qT"
 msgid "source type is not polymorphic"
 msgstr ""
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "tipe argumen salah ke unary minus"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "tipe argume salah ke unary plus"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "tipe argumen salah ke bit-complement"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "tipe argumen salah ke abs"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "tipe argumen salah ke konjugasi"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 #, fuzzy
 #| msgid "wrong type argument to unary plus"
 msgid "in argument to unary !"
 msgstr "tipe argume salah ke unary plus"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 #, fuzzy
 #| msgid "cannot increment a pointer to incomplete type %qT"
 msgid "no pre-increment operator for type"
 msgstr "tidak dapat meningkatkan sebuah penunjuk ke tipe tidak lengkap %qT"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 #, fuzzy
 #| msgid "cannot decrement a pointer to incomplete type %qT"
 msgid "no pre-decrement operator for type"
 msgstr "tidak dapat mengurangi penunjuk ke tipe tidak lengkap %qT"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr ""
 
@@ -24098,7 +24098,7 @@ msgstr ""
 msgid "Deleted feature:"
 msgstr ""
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr "penempatan array"
 
@@ -24295,11 +24295,11 @@ msgstr "blok IF"
 msgid "implied END DO"
 msgstr "Diimplikasikan END DO"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "assignment"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "assignmen penunjuk"
 
@@ -24497,59 +24497,59 @@ msgstr "Operan dari operator pengguna '%s' di %%L adalah %s"
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "Operan dari operator pengguna '%s' di %%L adalah %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr ""
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 #, fuzzy
 #| msgid "%qD is not a variable"
 msgid "iterator variable"
 msgstr "%qD bukan sebuah variabel"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 #, fuzzy
 #| msgid "Step expression in DO loop at %L cannot be zero"
 msgid "Start expression in DO loop"
 msgstr "Ekspresi step dalam loop DO di %L tidak dapat berupa nol"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 #, fuzzy
 #| msgid "invalid expression as operand"
 msgid "End expression in DO loop"
 msgstr "ekspresi sebagai operan tidak valid"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 #, fuzzy
 #| msgid "Step expression in DO loop at %L cannot be zero"
 msgid "Step expression in DO loop"
 msgstr "Ekspresi step dalam loop DO di %L tidak dapat berupa nol"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 #, fuzzy
 #| msgid "DEALLOCATE "
 msgid "DEALLOCATE object"
 msgstr "DEALOKASIKAN "
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 #, fuzzy
 #| msgid "ALLOCATE "
 msgid "ALLOCATE object"
 msgstr "ALOKASIKAN "
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr ""
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr ""
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr ""
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr ""
 
@@ -24559,11 +24559,11 @@ msgstr ""
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "Pajang KARAKTER berbeda (%d/%d) dalam konstruktor array di %L"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -24580,12 +24580,12 @@ msgstr "Argumen aktual berisi terlalu sedikit elemen untuk argumen dummy '%s' (%
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "Argumen aktual berisi terlalu sedikit elemen untuk argumen dummy '%s' (%lu/%lu) di %L"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr ""
 
@@ -24595,84 +24595,84 @@ msgstr ""
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr "Panjang karakter tidak sama (%ld/%ld) dalam %s di %L"
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, fuzzy, c-format
 #| msgid "Argument NCOPIES of REPEAT intrinsic is negative at %L"
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "Argumen NCOPIES dari REPEAT intrinsik adalah negatif di %L"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 #, fuzzy
 #| msgid "Argument NCOPIES of REPEAT intrinsic is too large at %L"
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "Argumen NCOPIES dari REPEAT intrinsik adalah terlalu besar di %L"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -24698,15 +24698,15 @@ msgstr ""
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr ""
 
@@ -24798,7 +24798,7 @@ msgid "expected boolean type"
 msgstr "diduga bukan tuple"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, fuzzy, gcc-internal-format
 #| msgid "Expected integer"
 msgid "expected integer"
@@ -24880,7 +24880,7 @@ msgstr "tidak ada argumen"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments for format"
 msgid "too many arguments"
@@ -25625,7 +25625,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "-mrelax hanya didukung untuk RTP PIC"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "Sintaks error dalam pernyataan %s di %C"
@@ -26118,8 +26118,8 @@ msgstr "%qE atribut konflik dengan atribut %s"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+#D here"
 msgid "previous declaration here"
@@ -26139,7 +26139,7 @@ msgstr "%qs atribut direktif diabaikan"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "%qs atribut direktif diabaikan"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qs attribute"
 msgid "wrong number of arguments specified for %qE attribute"
@@ -26151,7 +26151,7 @@ msgstr "jumlah dari argumen salah dispesifikasikan untuk atribut %qs"
 msgid "expected %i or more, found %i"
 msgstr "diduga %<(%> atau akhir dari baris"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %i, found %i"
@@ -26221,12 +26221,12 @@ msgstr "tipe atribut diabaikan setelah tipe telah didefinisikan"
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -26235,7 +26235,7 @@ msgstr "tipe atribut diabaikan setelah tipe telah didefinisikan"
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -26257,8 +26257,8 @@ msgstr "%qE atribut diabaikan"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+D"
 msgid "previous declaration of %qD"
@@ -26377,7 +26377,7 @@ msgstr "tidak dapat menemukan berkas untuk class %s"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "ofset diluar dari jangkauan dari konstanta string"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%qE declared here"
@@ -26493,7 +26493,7 @@ msgstr "hilang argumen ke \"%s\""
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 #| msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
@@ -26517,45 +26517,45 @@ msgstr "%<__builtin_longjmp%> argumen kedua harus berupa 1"
 msgid "target format does not support infinity"
 msgstr "format target tidak mendukung infinity"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 #| msgid "%<va_start%> used in function with fixed args"
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "%<va_start%> digunakan dalam fungsi dengan argumen tetap"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "jumlah dari argumen ke fungsi %<va_start%> salah"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "%<__builtin_next_arg%> dipanggil tanpa sebuah argumen"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "jumlah dari argumen ke fungsi %<__builtin_next_arg%> salah"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "parameter kedua dari %<va_start%> bukan argumen bernama terakhir"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, fuzzy, gcc-internal-format
 #| msgid "undefined behaviour when second parameter of %<va_start%> is declared with %<register%> storage"
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr "perilaku tidak terdefinisi ketika parameter kedua dari %<va_start%> dideklarasikan dengan penyimpanan %<register%>"
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 #| msgid "%Kfirst argument of %D must be a pointer, second integer constant"
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "%K argumen pertama dari %D harus berupa sebuah penunjuk, integer kedua konstanta"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 #| msgid "%Klast argument of %D is not integer constant between 0 and 3"
 msgid "last argument of %qD is not integer constant between 0 and 3"
@@ -27675,12 +27675,12 @@ msgstr "%qE atribut diabaikan karena %qT telah didefinisikan"
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F digunakan tetapi tidak pernah didefinisikan"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F dideklarasikan %<static%> tetapi tidak pernah didefinisikan"
@@ -28280,7 +28280,7 @@ msgstr "array tidak cocok dengan daerah pohon"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "array tidak cocok dengan daerah pohon"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, gcc-internal-format
 msgid "%qs failed"
 msgstr ""
@@ -28310,19 +28310,19 @@ msgstr ""
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 #| msgid "%Kcall to %qs declared with attribute error: %s"
 msgid "call to %qs declared with attribute error: %s"
 msgstr "%K panggilan ke %qs dideklarasikan dengan atribut error: %s"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 #| msgid "%Kcall to %qs declared with attribute warning: %s"
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "%K panggilan ke %qs dideklarasikan dengan atribut peringatan: %s"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, fuzzy, gcc-internal-format
 #| msgid "assuming signed overflow does not occur when simplifying && or || to & or |"
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
@@ -28362,7 +28362,7 @@ msgstr "konstanta titik-tetap besar secara implisit dipotong ke tipe titik-tetap
 msgid "comparison is always %d due to width of bit-field"
 msgstr "perbandingan selalu %d karena lebar dari bit-field"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr "diasumsikan signed overflow tidak terjadi ketika menyederhanakan pemeriksaan jangkauan"
@@ -28546,7 +28546,7 @@ msgstr "gagal untuk memperoleh waktu pemrosesan"
 msgid "%s signal terminated program %s"
 msgstr "Gunakan nama alternatif register"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option \"%s\""
 msgid "unrecognized command-line option %qs"
@@ -28839,7 +28839,7 @@ msgstr "spesifikasi multilib '%s' tidak valid"
 msgid "multilib exclusions %qs is invalid"
 msgstr "ekslusi multilib '%s' tidak valid"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, fuzzy, gcc-internal-format
 #| msgid "multilib select '%s' is invalid"
 msgid "multilib select %qs %qs is invalid"
@@ -29176,23 +29176,23 @@ msgstr ""
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr ""
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s not supported for nested functions"
 msgid "%s not supported for variable length aggregates"
 msgstr "%s tidak didukung untuk fungsi nested"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Spe not supported in this target"
 msgid "%s not supported on this target"
@@ -29237,16 +29237,16 @@ msgid "function returns address of local variable"
 msgstr "fungsi mengembalikan alamat dari variabel lokal"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, fuzzy, gcc-internal-format
@@ -29259,369 +29259,369 @@ msgstr "%q+D dideklarasikan disini"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 #| msgid "invalid option argument %qs"
 msgid "directive argument %qE"
 msgstr "pilihan argumen %qs tidak valid"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, fuzzy, gcc-internal-format
 #| msgid "%s expects an integer literal in the range [%d, %d]."
 msgid "directive argument in the range [%E, %E]"
 msgstr "%s diduga sebuah integer literal dalam jangkauan [%d, %d]."
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 #| msgid "Maintain backchain pointer"
 msgid "null destination pointer"
 msgstr "jaga backchain penunjuk"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 #| msgid "%s in format string at %L"
 msgid "null format string"
@@ -30384,12 +30384,12 @@ msgstr "mode pointer tidak valid %qs"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%qD declared here"
@@ -31205,7 +31205,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<auto%>"
 msgid "invalid use of attribute %<fallthrough%>"
@@ -31560,17 +31560,17 @@ msgstr ""
 msgid "mismatching definition"
 msgstr "hilang definisi"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr ""
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -32701,82 +32701,82 @@ msgstr "error menulis ke %s: %m"
 msgid "error closing optimization records %qs"
 msgstr "Lakukan optimisasi cross-jumping"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 #| msgid "command line option %qs is not supported by this configuration"
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "pilihan baris perintah %qs tidak didukung dalam konfigurasi ini"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, fuzzy, gcc-internal-format
 #| msgid "missing argument to \"%s\""
 msgid "missing argument to %qs"
 msgstr "hilang argumen ke \"%s\""
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 #| msgid "argument to \"%s\" should be a non-negative integer"
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "argumen ke \"%s\" seharusnya sebuah integer tidak negatif"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, fuzzy, gcc-internal-format
 #| msgid "argument to \"%s\" should be a non-negative integer"
 msgid "argument to %qs should be a non-negative integer"
 msgstr "argumen ke \"%s\" seharusnya sebuah integer tidak negatif"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 #| msgid "%sregparm=%d%s is not between 0 and %d"
 msgid "argument to %qs is not between %d and %d"
 msgstr "%sregparm=%d%s tidak berada diantara 0 dan %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument of %qs"
 msgid "invalid argument in option %qs"
 msgstr "tipe argumen tidak valid dari %qs"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr ""
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option \"%s\""
 msgid "unrecognized argument in option %qs"
 msgstr "pilihan baris perintah \"%s\" tidak dikenal"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "argumen dari atribut %qs tidak valid"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %qs are: %s"
 msgstr "argumen dari atribut %qs tidak valid"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "pilihan %qs tidak lagi didukung"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs attribute larger than %d"
 msgid "argument to %qs is bigger than %d"
 msgstr "argumen ke atribut %qs lebih besar daripada %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr ""
@@ -32857,8 +32857,8 @@ msgstr "argumen ke \"%s\" seharusnya sebuah integer tidak negatif"
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "%qs is incompatible with %qs"
@@ -33638,7 +33638,7 @@ msgstr "variabel register global mengikuti sebuah definisi fungsi"
 msgid "register of %qD used for multiple global register variables"
 msgstr "register digunakan untuk dua variabel register global"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, fuzzy, gcc-internal-format
 #| msgid "  conflict with %q+D"
 msgid "conflicts with %qD"
@@ -34116,47 +34116,47 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "__builtin_saveregs tidak didukung oleh target ini"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "-fdata-sections tidak didukung untuk target ini"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, fuzzy, gcc-internal-format
 #| msgid "global destructors not supported on this target"
 msgid "nested functions not supported on this target"
 msgstr "global desktruktor tidak didukung di target ini"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, fuzzy, gcc-internal-format
 #| msgid "-ffunction-sections not supported for this target"
 msgid "nested function trampolines not supported on this target"
 msgstr "-ffunction-sections tidak didukung untuk target ini"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "global konstruktor tidak didukung di target ini"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "global desktruktor tidak didukung di target ini"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "atribut target tidak didukung di platform ini"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "atribut target tidak didukung di platform ini"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC target is not supported for this machine"
 msgid "%<#pragma GCC target%> is not supported for this machine"
@@ -35383,89 +35383,89 @@ msgstr "BB %i pernyataan terakhir memiliki daerah set tidak benar"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "insn salah dalam ujung fallthru"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it receives a non-local goto"
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "fungsi %q+F tidak akan dapat inline karena ini menerima sebuah goto bukan lokal"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it saves address of local label in a static variable"
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "fungsi %q+F tidak akan dapat inline karena ini menyimpan alamat dari label lokal dalam sebuah variabel statis"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "fungsi %q+F tidak akan dapat terinline karena ini menggunakan alloca (override menggunaka always_inline atribut)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "fungsi %q+F tidak akan dapat inline karena ini menggunakan setjmp"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "fungsi %q+F tidak akan dapat inline karena ini menggunakan daftar argumen variabel"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "fungsi %q+F tidak akan dapat inline karena ini menggunakan penanganan setjmp-longjmp exception"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "fungsi %q+F tidak akan dapat inline karena ini menggunakan goto tidak lokal"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "fungsi %q+F tidak akan dapat inline karena ini menggunakan __builtin_return atau __builtin_apply_args"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "fungsi %q+F tidak akan dapat inline karena ini berisi sebuah goto yang dihitung"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "fungsi %q+F tidak akan dapat inline karena ini menggunakan daftar argumen variabel"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "fungsi %q+F tidak akan inline karena ini ditekan menggunakan -fno-inline"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "fungsi %q+F tidak akan inline karena ini menggunakan atribut yang konflik dengan inline"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 #| msgid "inlining failed in call to %q+F: %s"
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "inlining gagal dalam panggilan ke %q+F: %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "dipanggil dari sini"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 #| msgid "from this location"
 msgid "called from this function"
 msgstr "dari lokasi ini"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "inlining gagal dalam panggilan ke %q+F: %s"
@@ -35525,29 +35525,29 @@ msgstr "tipe vektori tidak valid untuk atribut %qE"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "tipe vektori tidak valid untuk atribut %qE"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "in a call to non-static member function %qD"
 msgstr "penggunaan tidak valid dari anggota fungsi %qD bukan statis"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to built-in function"
 msgid "in a call to built-in function %qD"
 msgstr "argumen ke fungsi bawaan tidak valid"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 #| msgid "no member function %qD declared in %qT"
 msgid "in a call to function %qD declared %qs"
@@ -35763,7 +35763,7 @@ msgstr "%qE tidak terinisialisasi"
 msgid "%qs may be used uninitialized"
 msgstr "%qD mungkin digunakan tidak terinisialisasi dalam fungsi ini"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qD was declared here"
 msgid "%qD was declared here"
@@ -36004,7 +36004,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -36019,135 +36019,135 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "array dari fungsi tidak berarti"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "tipe kembali fungsi tidak dapat berupa fungsi"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "pemeriksaan pohon: %s, memiliki %s dalam %s, di %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "pemeriksaan pohon: diduga kosong dari %s, memiliki %s dalam %s, di %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "pemeriksaan pohon: diduga kelas %qs, memiliki %qs (%s) dalam %s, di %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "pemeriksaan pohon: tidak menduga kelas %qs, memiliki %qs (%s dalam %s, di %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "pemeriksaan pohon: diduga omp_clause %s, memiliki %s dalam %s, di %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "pemeriksaan pohon: diduga pohon yang berisi struktur %qs, memiliki %qs dalam %s, di %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "pemeriksaan pohon: diakses elt %d dari tree_vec dengan %d elts dalam %s, di %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "pemeriksaan pohon: diakses elt %d dari tree_vec dengan %d elts dalam %s, di %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "pemeriksaan pohon: diakses operan %d dari %s dengan %d operan dalam %s, di %s:%d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at %s:%d"
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "pemeriksaan pohon: diakses operan %d dari omp_clause %s dengan %d operan dalam %s, di %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qD is deprecated: %s"
 msgstr "%qs sudah ditinggalkan"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qD is deprecated"
 msgstr "%qs sudah ditinggalkan"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qE is deprecated: %s"
 msgstr "%qs sudah ditinggalkan"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qE is deprecated"
 msgstr "%qs sudah ditinggalkan"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type is deprecated"
 msgid "type is deprecated: %s"
 msgstr "tipe sudah ditinggalkan"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "tipe sudah ditinggalkan"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable: %s"
 msgstr "%qD bukan sebuah variabel"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable"
 msgstr "%qD bukan sebuah variabel"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable: %s"
 msgstr "%qD bukan sebuah variabel"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable"
 msgstr "%qD bukan sebuah variabel"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr ""
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "type is unavailable"
@@ -36173,268 +36173,268 @@ msgstr "%qD bukan sebuah variabel"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr ""
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "type is not compatible with its variant"
 msgstr "assert: %s adalah assign kompatibel dengan %s"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qT is not a template type"
 msgid "type %s is not an opaque type"
 msgstr "%qT bukan sebuah tipe template"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "type %s is not with opaque mode"
 msgstr "tipe %qT bukan sebuah dasar langsung dari %qT"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 #| msgid "environment variable \"%s\" not defined"
 msgid "main variant is not defined"
 msgstr "variabel lingkungan \"%s\" tidak terdefinisi"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs has non-integer type"
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "ukuran dari array %qs memiliki tipe bukan integer"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has an incomplete type"
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "%qD memiliki tipe tidak lengkap"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -36673,7 +36673,7 @@ msgstr "%J definisi alias tidak didukung dalam konfigurasi ini"
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "visibility atribut tidak didukung dalam konfigurasi ini; diabaikan"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -36903,7 +36903,7 @@ msgstr "%qE atribut diabaikan karena %qT telah didefinisikan"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "%qE atribut diabaikan karena %qT telah didefinisikan"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "%qE atribut hanya memiliki efek dalam objek publik"
@@ -37106,7 +37106,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "%qs atribut hanya berlaku ke variabel"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for local variables"
@@ -37466,7 +37466,7 @@ msgstr "%qD tidak dideklarasikan dalam %qD"
 msgid "%qE argument is not a function"
 msgstr "membersihkan argumen bukan sebuah fungsi"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, fuzzy, gcc-internal-format
 #| msgid "version attribute is not a string"
 msgid "deprecated message is not a string"
@@ -38016,7 +38016,7 @@ msgstr "ISO C++ melarang mengaplikasikan %<__alignof%> ke sebuah ekspresi dari t
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "new tidak dapat diaplikasikan ke sebuah fungsi tipe"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "aplikasi tidak valid dari %qs ke sebuah tipe void"
@@ -38158,17 +38158,17 @@ msgstr ""
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr ""
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "terlalu sediki argumen ke fungsi %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -38305,132 +38305,132 @@ msgstr "mencoba untuk mengambil alamat dari bit-field anggota struktur %qD"
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "ukuran dari array terlalu besar"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible type for argument %d of %qE"
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "tipe tidak kompatibel untuk argumen %d dari %qE"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE makes pointer from integer without a cast"
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "melewatkan argumen %d dari %qE membuat penunjuk dari integer tanpa sebuah cast"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 #| msgid "argument must be a constant"
 msgid "both arguments must be compatible"
 msgstr "argumen harus berupa sebuah konstanta"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 #| msgid "not enough arguments to function %qE"
 msgid "incorrect number of arguments to function %qE"
 msgstr "tidak cukup argumen ke fungsi %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs must be a 2-bit unsigned literal"
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "argumen ke %qs harus berupa sebuah 2 bit unsigned literal"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic on pointer to an incomplete type"
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "aritmetik di penunjuk ke sebuah tipe tidak lengkap"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 #| msgid "%Kfirst argument of %D must be a pointer, second integer constant"
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "%K argumen pertama dari %D harus berupa sebuah penunjuk, integer kedua konstanta"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 #| msgid "%Kfirst argument of %D must be a pointer, second integer constant"
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "%K argumen pertama dari %D harus berupa sebuah penunjuk, integer kedua konstanta"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE from incompatible pointer type"
 msgid "argument %d of %qE must be a pointer type"
 msgstr "melewatkan argumen %d dari %qE dari tipe penunjuk yang tidak kompatibel"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE might be a candidate for a format attribute"
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "argumen %d dari %qE mungkin menjadi sebuah kandidat untuk sebuah format atribut"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE makes integer from pointer without a cast"
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "melewatkan argumen %d dari %qE membuat integer dari penunjuk tanpa sebuah cast"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, fuzzy, gcc-internal-format
 #| msgid "Type/rank mismatch in argument '%s' at %L"
 msgid "size mismatch in argument %d of %qE"
 msgstr "Tipe/tingkat tidak cocok dalam argumen '%s' di %L"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE makes integer from pointer without a cast"
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "melewatkan argumen %d dari %qE membuat integer dari penunjuk tanpa sebuah cast"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards qualifiers from pointer target type"
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "melewatkan argumen %d dari %qE mengabaikan pengkualifikasi dari tipe target penunjuk"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE might be a candidate for a format attribute"
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "argumen %d dari %qE mungkin menjadi sebuah kandidat untuk sebuah format atribut"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards qualifiers from pointer target type"
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "melewatkan argumen %d dari %qE mengabaikan pengkualifikasi dari tipe target penunjuk"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible type for argument %d of %qE"
 msgid "non-integer memory model argument %d of %qE"
 msgstr "tipe tidak kompatibel untuk argumen %d dari %qE"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument of %qs"
 msgid "invalid memory model argument %d of %qE"
 msgstr "tipe argumen tidak valid dari %qs"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, fuzzy, gcc-internal-format
 #| msgid "index in dimension %d is out of bounds at %L"
 msgid "index value is out of bound"
 msgstr "indeks dalam dimensi %d diluar dari jangkauan di %L"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from %qT to %qT is ambiguous"
 msgid "conversion of scalar %qT to vector %qT involves truncation"
@@ -38438,59 +38438,59 @@ msgstr "konversi dari %qT ke %qT adalah ambigu"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D cannot be declared weak"
 msgid "built-in function %qE must be directly called"
 msgstr "fungsi inline %q+D tidak dapat dideklarasikan lemah"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "size of array %qE is not a constant expression"
 msgstr "ukuran dari array %qD bukan sebuah integral konstan-ekspresi"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "size of array is not a constant expression"
 msgstr "ukuran dari array bukan sebuah integral konstan ekspresi"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is negative"
 msgid "size %qE of array %qE is negative"
 msgstr "ukuran dari array %qs adalah negatif"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array is negative"
 msgstr "ukuran dari array negatif"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is negative"
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "ukuran dari array %qs adalah negatif"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -39158,7 +39158,7 @@ msgstr "konstanta integer terlalu besar untuk tipe %qs"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "konstanta integer terlalu besar untuk tipe %qs"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<_BitInt(%d)%> is not supported on this target"
@@ -39245,7 +39245,7 @@ msgstr "tidak didukung bukan-standar pemotongan dari string literals"
 msgid "traditional C rejects string constant concatenation"
 msgstr "tradisional C menolak pemotongan konstanta string"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -39301,7 +39301,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr ""
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "tipe tidak valid untuk iterasi variabel %qE"
@@ -39317,17 +39317,17 @@ msgstr "%Htipe tidak valid untuk iterasi variabel %qE"
 msgid "%qE is not initialized"
 msgstr "%qE tidak terinisialisasi"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "hilang predikat pengontrol"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "predikat pengontrol tidak valid"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "hilang ekspresi peningkatan"
@@ -39337,7 +39337,7 @@ msgstr "hilang ekspresi peningkatan"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "ekspresi peningkatan tidak valid"
@@ -39429,7 +39429,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -39440,7 +39440,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qD bukan sebuah template fungsi"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr ""
@@ -40096,7 +40096,7 @@ msgid "wrong type argument to %s"
 msgstr "tipe argumen salah ke abs"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -41104,35 +41104,35 @@ msgstr "perbandingan antara %q#T dan %q#T"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -41362,119 +41362,119 @@ msgstr "%sregparm=%d%s tidak berada diantara 0 dan %d"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "-mcpu=%s konflik dengan -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "-mcpu=%s konflik dengan -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -41919,13 +41919,13 @@ msgstr "diduga %qT tetapi argumen memiliki tipe %qT"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "diduga %qT tetapi argumen memiliki tipe %qT"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma GCC optimize%> is not a string or number"
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC optimize%> bukan sebuah string atau angka"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 #| msgid "junk at end of #pragma GCC java_exceptions"
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
@@ -42554,7 +42554,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -42635,12 +42635,12 @@ msgid "unknown tuning option (%s)"
 msgstr "fungsi spesifikasi '%s' tidak diketahui"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -42652,7 +42652,7 @@ msgid "specify a system register with a small string length"
 msgstr "Spesifikasikan pengurutan alokasi register"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "%qs is not a valid offset in %qs"
@@ -42844,9 +42844,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "atribut(target(\"%s\")) tidak diketahui"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, fuzzy, gcc-internal-format
 #| msgid "alias argument not a string"
 msgid "attribute %<target%> argument not a string"
@@ -42903,19 +42903,19 @@ msgid "virtual function multiversioning not supported"
 msgstr "ekspresi batas stack tidak didukung"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_eh_return not supported on this target"
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "__builtin_eh_return tidak didukung dalam target ini"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -42928,8 +42928,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported simdlen %wd"
@@ -42941,7 +42941,7 @@ msgstr "kombinasi tidak didukung: %s"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "ISO C tidak mendukung tipe yang bersaturasi"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr ""
@@ -42951,7 +42951,7 @@ msgstr ""
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 #| msgid "unused arguments in $-style format"
 msgid "unsupported argument type %qT for simd"
@@ -43053,8 +43053,8 @@ msgstr "L%d cache latensi tidak diketahui untuk %s"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "nilai buruk %qs untuk -mmemory-latency"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "fcode bawaan buruk"
@@ -43185,18 +43185,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "argumen dari atribut %qs bukan \"ilink1\" atau \"ilink2\""
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -43321,7 +43321,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "argumen dari atribut %qs bukan sebuah konstanta string"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qE attribute allows only an integer constant argument"
@@ -43345,24 +43345,24 @@ msgstr "atribut %qs hanya berlaku ke fungsi tipe"
 msgid "argument of %qE attribute ignored"
 msgstr "%qE atribut diabaikan"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to variables"
 msgid "%qE attribute only applies to variables"
 msgstr "%qs atribut hanya berlaku ke variabel"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr ""
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr ""
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 #| msgid "invalid lvalue in asm output %d"
 msgid "invalid type for %<asm%> flag output"
@@ -43625,7 +43625,7 @@ msgstr "target CPU tidak mendukung instruksi THUMB"
 msgid "target CPU does not support unaligned accesses"
 msgstr "target CPU tidak mendukung kode ARM"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support branch-likely instructions"
 msgid "This architecture does not support branch protection instructions"
@@ -43682,7 +43682,7 @@ msgstr "ukuran batas struktur hanya dapat diset ke %s"
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "RTP PIC tidak kompatibel dengan -msingle-pic-base"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "FDPIC mode is not supported in Thumb-1 mode"
@@ -43797,7 +43797,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -43841,44 +43841,44 @@ msgstr "%qE atribut hanya memiliki efek dalam objek publik"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "atribut %qs hanya berlaku ke fungsi tipe"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "tidak dapat menghitung lokasi ril dari parameter terstack"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected end of module"
 msgid "Unexpected thumb1 far jump"
 msgstr "Tidak terduga akhir dari modul"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "tidak ada register bawah yang tersedia unruk popping register atas"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "Interrupt Sevice Routines tidak dapat dikodekan dalam mode Thumb"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute %qE"
 msgid "invalid fpu for target attribute or pragma %qs"
@@ -43887,24 +43887,24 @@ msgstr "tipe vektori tidak valid untuk atribut %qE"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute %qE"
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "tipe vektori tidak valid untuk atribut %qE"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown target attribute or pragma %qs"
 msgstr "nama register: %s tidak dikenal"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "%<asm%> flags not supported in thumb1 mode"
@@ -43966,173 +43966,173 @@ msgstr ""
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "tidak ada nama class dispesifikasikan dengan %qs"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fpic%> is not supported"
 msgstr "-pipe tidak didukung"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fPIC%> is not supported"
 msgstr "-pipe tidak didukung"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fpie%> is not supported"
 msgstr "-pipe tidak didukung"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fPIE%> is not supported"
 msgstr "-pipe tidak didukung"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 #| msgid "-G and -static are mutually exclusive"
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "-G dan -static adalah mutually exclusive"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot have default arguments"
 msgid "%qs function cannot have arguments"
 msgstr "%qD tidak dapat memiliki argumen baku"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, fuzzy, gcc-internal-format
 #| msgid "Function does not return a value"
 msgid "%qs function cannot return a value"
 msgstr "Fungsi tidak mengembalikan sebuah nilai"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, fuzzy, gcc-internal-format
 #| msgid "%qs appears to be a misspelled signal handler"
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs sepertinya salah nama signal handler"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Number of registers used to pass integer arguments"
 msgid "fixed register %s used to pass parameter to function"
 msgstr "Jumlah dari register yang digunakan untuk melewati argumen integer"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, fuzzy, gcc-internal-format
 #| msgid "weak declaration of %q+D not supported"
 msgid "writing to address space %qs not supported"
 msgstr "deklarasi lemah dari %q+D tidak didukung"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to variables"
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "%qs atribut hanya berlaku ke variabel"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variadic functions"
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "%qE atribut hanya berlaku untuk fungsi variadic"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr ""
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to variables"
 msgid "%qE attribute on non-volatile variable"
 msgstr "%qs atribut hanya berlaku ke variabel"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr ""
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr ""
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr ""
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr ""
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr ""
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr ""
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 #| msgid "only uninitialized variables can be placed in the .noinit section"
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "hanya variabel yang belum terinisialisasi yang dapat ditempatkan dalam daerah .noinit"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, fuzzy, gcc-internal-format
 #| msgid "only initialized variables can be placed into program memory area"
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "hanya variabel terinisialisasi yang dapat ditempatkan kedalam daerah memori aplikasi"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, fuzzy, gcc-internal-format
 #| msgid "only initialized variables can be placed into program memory area"
 msgid "uninitialized variable %q+D put into program memory area"
@@ -44142,48 +44142,48 @@ msgstr "hanya variabel terinisialisasi yang dapat ditempatkan kedalam daerah mem
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable '%s' at %L cannot have an initializer"
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "Dapat dialokasikan '%s' di %L tidak dapat memiliki sebuah penginisialisasi"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, fuzzy, gcc-internal-format
 #| msgid "%qs incompatible attribute ignored"
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "atribut %qs tidak kompatibel diabaikan"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, fuzzy, gcc-internal-format
 #| msgid "MCU %qs supported for assembler only"
 msgid "architecture %qs supported for assembler only"
 msgstr "MCU %qs hanya didukung untuk perakit saja"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, fuzzy, gcc-internal-format
 #| msgid "Conversion from %s to %s at %L"
 msgid "conversion from address space %qs to address space %qs"
 msgstr "Konversi dari %s ke %s di %L"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected end of module in string constant"
 msgid "%s expects a compile time integer constant"
 msgstr "Tidak terduga akhir dari modul dalam konstanta string"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "atribut %qs membutuhkan sebuah argumen konstanta integer"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -44339,7 +44339,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr ""
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -45034,8 +45034,8 @@ msgstr "argumen selanjutnya ke terakhir harus berupa sebuah 8 bit immediate"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "model kode %s tidak mendukung kode PIC"
@@ -45109,281 +45109,281 @@ msgstr "tidak ada nama class dispesifikasikan dengan %qs"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, fuzzy, gcc-internal-format
 #| msgid "64-bit ABI not supported in ESA/390 mode"
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "64 bit ABI tidak didukung di mode ESA/390"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, fuzzy, gcc-internal-format
 #| msgid "%stune=x86-64%s is deprecated.  Use %stune=k8%s or %stune=generic%s instead as appropriate."
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%smtune=x86-64%s sudah ditinggalkan. Lebih baik gunakan %stune=k8%s atau %stune=generic%s yang lebih sesuai."
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, fuzzy, gcc-internal-format
 #| msgid "%stune=x86-64%s is deprecated.  Use %stune=k8%s or %stune=generic%s instead as appropriate."
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%smtune=x86-64%s sudah ditinggalkan. Lebih baik gunakan %stune=k8%s atau %stune=generic%s yang lebih sesuai."
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-mcmodel= tidak didukung di sistem 32 bit"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "-fdata-sections tidak didukung untuk target ini"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "-mcmodel= tidak didukung di sistem 32 bit"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "model kode %qs tidak mendukung dalam mode %s bit"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mgp64%> used with a 32-bit ABI"
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "%<-mgp64%> digunakan dengan sebuah ABI 32 bit"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "model kode %qs tidak mendukung dalam mode %s bit"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "code model %qs not supported in x32 mode"
 msgstr "model kode %qs tidak mendukung dalam mode %s bit"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 #| msgid "-m%s not supported in this configuration"
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "-m%s tidak didukung dalam konfigurasi ini"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "%i-bit mode tidak terkompile"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, fuzzy, gcc-internal-format
 #| msgid "generic CPU can be used only for %stune=%s %s"
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "CPU generik hanya dapat digunakan untuk pilihan %stune=%s %s"
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, fuzzy, gcc-internal-format
 #| msgid "generic CPU can be used only for %stune=%s %s"
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "CPU generik hanya dapat digunakan untuk pilihan %stune=%s %s"
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, fuzzy, gcc-internal-format
 #| msgid "generic CPU can be used only for %stune=%s %s"
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "CPU generik hanya dapat digunakan untuk pilihan %stune=%s %s"
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, fuzzy, gcc-internal-format
 #| msgid "generic CPU can be used only for %stune=%s %s"
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "CPU generik hanya dapat digunakan untuk pilihan %stune=%s %s"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "CPU yang anda pilih tidak mendukung set instruksi x86-64"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 #| msgid "bad value %qs for -mcpu switch"
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "nilai buruk %qs untuk pilihan -mcpu"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for %sarch=%s %s"
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "nilai (%s) buruk untuk pilihan %sarch=%s %s"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "argumen dari atribut %qs tidak valid"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 #| msgid "bad value %<%s%> for -mtune= switch"
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "nilai %<%s%> buruk untuk pilihan -mtune="
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for %stune=%s %s"
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "nilai (%s) buruk untuk %stune=%s %s"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to %<__builtin_return_address%>"
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "argumen ke %<__builtin_return_address%> tidak valid"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "argumen dari atribut %qs tidak valid"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 #| msgid "%sregparm%s is ignored in 64-bit mode"
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "%sregparm%s diabaikan dalam mode 64 bit"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 #| msgid "%sregparm=%d%s is not between 0 and %d"
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "%sregparm=%d%s tidak berada diantara 0 dan %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "%<-march=%s%> tidak kompatibel dengan ABI yang dipilih"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, fuzzy, gcc-internal-format
 #| msgid "%srtd%s is ignored in 64bit mode"
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "%srtd%s diabaikan dalam mode 64 bit"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, fuzzy, gcc-internal-format
 #| msgid "%srtd%s is ignored in 64bit mode"
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "%srtd%s diabaikan dalam mode 64 bit"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -45391,322 +45391,322 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 #| msgid "-fprefetch-loop-arrays not supported for this target"
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "-fprefetch-loop-array tidak didukung untuk target ini"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 #| msgid "%spreferred-stack-boundary=%d%s is not between %d and 12"
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "%spreferred-stack-boundary=%d%s tidak berada diantara %d dan 12"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 #| msgid "-mincoming-stack-boundary=%d is not between %d and 12"
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mincoming-stack-boundary=%d tidak berada diantara %d dan 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "%<-march=%s%> tidak kompatibel dengan ABI yang dipilih"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "inter-module optimisasi tidak diimplementasikan untuk C++"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, fuzzy, gcc-internal-format
 #| msgid "%ssseregparm%s used without SSE enabled"
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "%ssseregparam%s digunakan tanpa SSE aktif"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, fuzzy, gcc-internal-format
 #| msgid "%ssseregparm%s used without SSE enabled"
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "%ssseregparam%s digunakan tanpa SSE aktif"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "set instruksi SSE non-aktif, menggunakan 387 aritmetik"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "set instruksi 387 non-aktif, menggunakan aritmetik SSE"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, fuzzy, gcc-internal-format
 #| msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "stack probing membutuhkan %saccumulate-outgoing-args%s untuk pembenaran"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, fuzzy, gcc-internal-format
 #| msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "stack probing membutuhkan %saccumulate-outgoing-args%s untuk pembenaran"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, fuzzy, gcc-internal-format
 #| msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr "stack probing membutuhkan %saccumulate-outgoing-args%s untuk pembenaran"
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, fuzzy, gcc-internal-format
 #| msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr "stack probing membutuhkan %saccumulate-outgoing-args%s untuk pembenaran"
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "%<-march=%s%> tidak kompatibel dengan ABI yang dipilih"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "mengabaikan pilihan tidak dikenal %q.*s dalam %<-fdump-%s%>"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "%<-march=%s%> tidak kompatibel dengan ABI yang dipilih"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and cdecl attributes are not compatible"
 msgid "interrupt and naked attributes are not compatible"
 msgstr "atribut stdcall dan cdecl tidak kompatibel"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 #| msgid "ms_abi and sysv_abi attributes are not compatible"
 msgid "%qs and %qs attributes are not compatible"
 msgstr "atribut ms_abi dan sysv_abi tidak kompatibel"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s dan -mcall-%s tidak kompatibel"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s dan -mcall-%s tidak kompatibel"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, fuzzy, gcc-internal-format
 #| msgid "%Hattributes are not allowed on a function-definition"
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr "%Hatribut tidak diijinkan dalam sebuah definisi fungsi"
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "atribut fastcall dan regparm tidak kompatibel"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, fuzzy, gcc-internal-format
 #| msgid "fastcall and stdcall attributes are not compatible"
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "atribut fastcall dan stdcall tidak kompatibel"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qE attribute requires an integer constant argument"
 msgstr "atribut %qs membutuhkan sebuah argumen konstanta integer"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs attribute larger than %d"
 msgid "argument to %qE attribute larger than %d"
 msgstr "argumen ke atribut %qs lebih besar daripada %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "atribut fastcall dan cdecl tidak kompatibel"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "atribut fastcall dan stdcall tidak kompatibel"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, fuzzy, gcc-internal-format
 #| msgid "fastcall and stdcall attributes are not compatible"
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "atribut fastcall dan stdcall tidak kompatibel"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "atribut stdcall dan cdecl tidak kompatibel"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "atribut stdcall dan fastcall tidak kompatibel"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and fastcall attributes are not compatible"
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "atribut stdcall dan fastcall tidak kompatibel"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and fastcall attributes are not compatible"
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "atribut stdcall dan fastcall tidak kompatibel"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on non-class types"
 msgid "%qE attribute is used for non-class method"
 msgstr "%qE atribut diabaikan dalam tipe bukan-class"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, fuzzy, gcc-internal-format
 #| msgid "%qs incompatible attribute ignored"
 msgid "%qE incompatible attribute ignored"
 msgstr "atribut %qs tidak kompatibel diabaikan"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only available for 64-bit"
 msgid "%qE attribute only available for 32-bit"
 msgstr "%qs atribut hanya tersedia untuk 64 bit"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "argumen dari atribut %qs bukan sebuah konstanta string"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qE attribute requires a string constant argument"
 msgstr "atribut %qs membutuhkan sebuah argumen konstanta integer"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "argumen dari atribut %qs bukan sebuah konstanta string"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "Interrupt Sevice Routines tidak dapat dikodekan dalam mode Thumb"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "interrupt service routine must return %<void%>"
@@ -45918,50 +45918,50 @@ msgstr "ukuran operan tidak didukung untuk register ekstended"
 msgid "non-integer operand used with operand code %<z%>"
 msgstr ""
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 #, fuzzy
 #| msgid "the mangling of %<va_list%> has changed in GCC 4.4"
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr "mangling dari %<va_list%> telah berubah dalam GCC 4.4"
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, fuzzy, gcc-internal-format
 #| msgid "no low registers available for popping high registers"
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "tidak ada register bawah yang tersedia unruk popping register atas"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr ""
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, fuzzy, gcc-internal-format
 #| msgid "Unknown architecture '%s'"
 msgid "unknown architecture specific memory model"
 msgstr "Arsitektur '%s' tidak dikenal"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr ""
@@ -45984,8 +45984,8 @@ msgstr "definisi dari anggota data statis %q+D dari class dllimport"
 msgid "malformed %<#pragma builtin%>"
 msgstr "salah bentuk #pragma builtin"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "invalid argument of %qE attribute"
@@ -46048,13 +46048,13 @@ msgstr "PRINT_OPERAND: Punctuation '%c' tidak diketahui"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "PRINT_OPERAND penunjuk kosong"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "argument 1 of __builtin_spe_predicate must be a constant"
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "argumen 1 dari __builtin_spe_predicate harus berupa sebuah konstanta"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "failed to reclaim unneeded function"
 msgid "failed to expand built-in function"
@@ -46185,19 +46185,19 @@ msgstr "assert: %s adalah assign kompatibel dengan %s"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%s tidak digunakan dalam asm disini"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "atribut `%s' tidak dapat dispesifikasikan untuk variabel lokal"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 #| msgid "`%s' attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "atribut `%s' tidak dapat dispesifikasikan untuk variabel lokal"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 #| msgid "Duplicate %s attribute at %L"
 msgid "multiple %qE attribute"
@@ -46315,12 +46315,12 @@ msgstr "multiple atribut interupsi tidak diijinkan"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "interrupt_thread hanya tersedia di fido"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "ekspresi batas stack tidak didukung"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "%<-fexcess-precision=16%> is not supported on this target"
@@ -46364,7 +46364,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr ""
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, fuzzy, gcc-internal-format
 #| msgid "%qD attribute requires a single NTBS argument"
 msgid "%qE attribute requires a string argument"
@@ -46410,140 +46410,140 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "argumen dari atribut %qs bukan sebuah konstanta string"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "tidak dapat menangani panggilan tidak konsisten ke %qs"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr ""
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr ""
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %qs not supported for MIPS16"
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "fungsi bawaan %qs tidak didukung untuk MIPS16"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs tidak mendukung kode MIPS16"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr "MIPS16 PIC untuk ABI selain dari o32 dan o64"
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, fuzzy, gcc-internal-format
 #| msgid "MIPS16 -mxgot code"
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "MIPS16 -mxgot kode"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, fuzzy, gcc-internal-format
 #| msgid "hard-float MIPS16 code for ABIs other than o32 and o64"
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr "hard-float MIPS16 kode untuk ABI selain dari o32 dan o64"
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, fuzzy, gcc-internal-format
 #| msgid "Generate MIPS16 code"
 msgid "MSA MIPS16 code"
 msgstr "Hasilkan kode MIPS16"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> membutuhkan %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "kombinasi tidak didukung: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "%<-%s%> konflik dengan pilihan arsitektur lain, yang menspesifikasikan sebuah %s prosesor"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%<-march=%s%> tidak kompatibel dengan ABI yang dipilih"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "%<-mgp64%> digunakan dengan sebuah prosesor 32 bit"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "%<-mgp32%> digunakan dengan sebuah ABI 64 bit"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "%<-mgp64%> digunakan dengan sebuah ABI 32 bit"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support branch-likely instructions"
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "arsitektur %qs tidak mendukung instruksi branch-likely"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "%<-mgp32%> dan %<-mfp64%> hanya dapat dikombinasikan jika target mendukung instruksi mfhc1 dan mthc1"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%> dan %<-mfp64%> hanya dapat dikombinasikan ketika menggunakan ABI o32"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "%<-mgp32%> dan %<-mfp64%> hanya dapat dikombinasikan ketika menggunakan ABI o32"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "%<-mips3d%> membutuhkan %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgid "%<-mfpxx%> requires %<-mlra%>"
@@ -46554,128 +46554,128 @@ msgstr "%<-mips3d%> membutuhkan %<-mpaired-single%>"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "assert: %s adalah assign kompatibel dengan %s"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "arsitektur %qs tidak mendukung instruksi branch-likely"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support paired-single instructions"
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "aristektur %qs tidak mendukung instruksi paired-single"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support paired-single instructions"
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "aristektur %qs tidak mendukung instruksi paired-single"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs%s %s"
 msgstr "kombinasi tidak didukung: %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs %s"
 msgstr "kombinasi tidak didukung: %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, fuzzy, gcc-internal-format
 #| msgid "Generate position-independent code if possible (large mode)"
 msgid "cannot generate position-independent code for %qs"
 msgstr "Hasilkan kode bebas posisi jika memungkinkan (mode besar)"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, fuzzy, gcc-internal-format
 #| msgid "Generate position-independent code if possible (large mode)"
 msgid "position-independent code requires %qs"
 msgstr "Hasilkan kode bebas posisi jika memungkinkan (mode besar)"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> membutuhkan %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr "tidak dapat menggunakan data-kecil akses untuk %qs"
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support paired-single instructions"
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "aristektur %qs tidak mendukung instruksi paired-single"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support branch-likely instructions"
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "arsitektur %qs tidak mendukung instruksi branch-likely"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "%<-mips3d%> membutuhkan %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs harus digunakan dengan %qs"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "aristektur %qs tidak mendukung instruksi paired-single"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "%qs membutuhkan sebuah target yang menyediakan instruksi %qs"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support branch-likely instructions"
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "arsitektur %qs tidak mendukung instruksi branch-likely"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "%qs membutuhkan instruksi branch-likely"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support branch-likely instructions"
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "arsitektur %qs tidak mendukung instruksi branch-likely"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "mips16 fungsi profiling"
@@ -47621,60 +47621,60 @@ msgstr "%<#pragma GCC optimize%> bukan sebuah string atau angka"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "sampah diakhir dari %<#pragma reset_options%>"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "atribut target tidak didukung di platform ini"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "malformed %<target()%> attribute"
 msgstr "argumen dari atribut %qs tidak valid"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 #| msgid "attribute(target(\"%s\")) is unknown"
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "atribut(target(\"%s\")) tidak diketahui"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "malformed %<target(\"%s\")%> attribute"
@@ -47742,185 +47742,206 @@ msgstr "tidak dapat mengubah tipe %qT ke tipe %qT"
 msgid "capture by copy of RVV type %qT"
 msgstr ""
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+#| msgid "built-in function %qs not supported for MIPS16"
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "fungsi bawaan %qs tidak didukung untuk MIPS16"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %q+D declared as non-function"
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "fungsi bawaan %q+D dideklarasikan sebagai bukan-fungsi"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 #| msgid "mangling function-style cast with more than one argument"
 msgid "no matching function call to %qE with empty arguments"
 msgstr "mangling function-style cast dengan lebih dari satu argumen"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 #| msgid "unknown value %s for -mfpu"
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "nilai %s tidak diketahui untuk pilihan -mfpu"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, fuzzy, gcc-internal-format
 #| msgid "The ABI of passing structure with complex float member has changed in GCC 4.4"
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "ABI dari melewatkan structure dengan anggota float kompleks telah berubah dalam GCC 4.4"
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "Argumen AltiVec dilewatkan ke fungsi yang tidak berprototipe"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "argumen dari atribut %qs bukan \"ilink1\" atau \"ilink2\""
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not of type %qT"
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qE bukan dari tipe %qT"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qs requires an integer constant"
 msgstr "atribut %qs membutuhkan sebuah argumen konstanta integer"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support ARM mode"
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "target CPU tidak mendukung kode ARM"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "code model %qs with %qs"
 msgstr "model kode %qs tidak mendukung dalam mode %s bit"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 #| msgid "%spreferred-stack-boundary=%d%s is not between %d and 12"
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "%spreferred-stack-boundary=%d%s tidak berada diantara %d dan 12"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs tidak valid untuk %qs"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs tidak valid untuk %qs"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr ""
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -48198,34 +48219,34 @@ msgstr "%s hanya menerima 2 argumen"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "%s hanya menerima 2 argumen"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards qualifiers from pointer target type"
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "melewatkan argumen %d dari %qE mengabaikan pengkualifikasi dari tipe target penunjuk"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter combination for AltiVec intrinsic"
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "kombinasi parameter untuk AltiVec intrinsik tidak valid"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "%qs is not supported in this compiler configuration"
@@ -48269,30 +48290,23 @@ msgstr "operang tidak valid untuk tipe %qT dan %qT ke binari %qO"
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "GCC vektor dilewatkan dengan referensi: bukan ekstensi standar ABI dengan tidak ada garansi kompabilitas"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr ""
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "stack frame terlalu besar"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr ""
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 #| msgid "Use registers r2 and r5"
 msgid "%qs uses register r29"
 msgstr "Gunakan register r2 dan r5"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr ""
@@ -48430,116 +48444,126 @@ msgstr "Butuh sebuah call-clobbered target register"
 msgid "unknown option for %<%s=%s%>"
 msgstr "Operator tidak dikenal '%s' di %%L"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "tidak ada profiling dari kode 64 bit untuk ABI ini"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "tidak dapat mengambil alamat dari %<this%>, yang merupakan ekspresi rvalue"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "penggunaan dari %<long double%> dalam tipe AltiVec tidak valid"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "penggunaan dari tipe boolean dalam tipe AltiVec tidak valid"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "penggunaan dari %<complex%> dalam tipe AltiVec tidak valid"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 #| msgid "use of decimal floating point types in AltiVec types is invalid"
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "penggunaan dari tipe titik pecahan desimal dalam tipe AltiVec tidak valid"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "penggunaan dari %<long%> dalam tipe AltiVec tidak valid untuk kode 64 bit"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "penggunaan dari %<long%> dalam tipe AltiVec sudah ditinggalkan; gunakan %<int%>"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<long long%> in AltiVec types is invalid"
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "penggunaan dari %<long long%> dalam tipe AltiVec tidak valid"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<double%> in AltiVec types is invalid"
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "penggunaan dari %<double%> dalam tipe AltiVec tidak valid"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 #| msgid "invalid abstract type %qT for %qE"
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "tipe abstrak tidak valid %qT untuk %qE"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<#pragma%> is not allowed here"
 msgid "%s%qs%s is not allowed"
 msgstr "%H%<#pragma%> tidak diijinkan disini"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, fuzzy, gcc-internal-format
 #| msgid "spec '%s' is invalid"
 msgid "%s%qs%s is invalid"
 msgstr "spesifikasi '%s' tidak valid"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "Virtual function multiversioning not supported"
 msgstr "ekspresi batas stack tidak didukung"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr ""
@@ -48588,7 +48612,7 @@ msgstr ""
 msgid "builtin %qs can only be used on vector types"
 msgstr "%qs hanya dapat dispesifikasikan untuk fungsi"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr ""
@@ -48663,248 +48687,248 @@ msgstr "%qs sudah ditinggalkan"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "konstanta argumen diluar dari jangkauan untuk %qs"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "template argumen %d tidak valid"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "konstanta argumen diluar dari jangkauan untuk %qs"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "konstanta argumen diluar dari jangkauan untuk %qs"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 #| msgid "unresolved overload for Altivec builtin %qF"
 msgid "unresolved overloaded builtin"
 msgstr "tidak teresolf overload untuk Altivec bawaan %qF"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, fuzzy, gcc-internal-format
 #| msgid "bad builtin code"
 msgid "bad builtin icode"
 msgstr "kode bawaan buruk"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to built-in function"
 msgid "invalid argument %d for builtin %qF"
 msgstr "argumen ke fungsi bawaan tidak valid"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "argumen dari atribut %qs bukan sebuah konstanta string"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "ukuran total dari variabel lokal melebihi batas arsitektur"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 #| msgid "frame size of %qs is "
 msgid "frame size of %qs is %wd bytes"
 msgstr "ukuran frame dari %qs adalah "
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs menggunakan alokasi dinamis stack"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 #| msgid "nested function %qs declared %<extern%>"
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "fungsi nested %qs dideklarasikan %<extern%>"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "64 bit ABI tidak didukung di mode ESA/390"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Hardware decimal floating point instructions not available on %s"
 msgid "hardware vector support not available on %s"
 msgstr "Instruksi perangkat keras titik pecahan desimal tidak tersedia di %s"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Hardware decimal floating point instructions not available on %s"
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "Instruksi perangkat keras titik pecahan desimal tidak tersedia di %s"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "Hardware decimal floating point instructions not available in ESA/390 mode"
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "Instruksi perangkat keras titik pecahan desimal tidak tersedia dalam mode ESA/390"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "-mhard-dfp can't be used in conjunction with -msoft-float"
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr "-mhard-dfp tidak dapat digunakan dalam konjungsi dengan -msoft-float"
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, fuzzy, gcc-internal-format
 #| msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "-mbackchain -mpacked-stack -mhard-float tidak didukung dalam kombinasi"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "ukuran stack harus lebih besar dari nilai penjaga stack"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "ukuran stack harus lebih besar  dari 64k"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, fuzzy, gcc-internal-format
 #| msgid "-mstack-guard implies use of -mstack-size"
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "-mstack-guard mengimplikasikan penggunaan dari -mstack-size"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute is supported only for SH2A"
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "atribut %qs tidak didukung hanya untuk SH2A"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 #| msgid "argument to \"%s\" should be a non-negative integer"
 msgid "arguments to %qs should be non-negative integers"
 msgstr "argumen ke \"%s\" seharusnya sebuah integer tidak negatif"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs attribute larger than %d"
 msgid "argument to %qs is too large (max. %d)"
 msgstr "argumen ke atribut %qs lebih besar daripada %d"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 #| msgid "attribute(target(\"%s\")) is unknown"
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "atribut(target(\"%s\")) tidak diketahui"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "batas stact tidak didukung dalam target ini"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 #| msgid "invalid option argument %qs"
 msgid "invalid cc output constraint: %qs"
 msgstr "pilihan argumen %qs tidak valid"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "multiple interrupt attributes not allowed"
 msgid "multiple cc output constraints not supported"
 msgstr "multiple atribut interupsi tidak diijinkan"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, fuzzy, gcc-internal-format
 #| msgid "asm-specifier for variable %qs conflicts with asm clobber list"
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "asm-specifier untuk variabel %qs konflik dengan daftar asm clobber"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 #| msgid "invalid types in nop conversion"
 msgid "invalid type for cc output constraint"
@@ -49385,8 +49409,8 @@ msgstr "%qE atribut diabaikan"
 msgid "attribute %qs applies to array types only"
 msgstr "%qs atribut hanya berlaku ke variabel"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "nilai void tidak diabaikan karena ini seharusnya"
@@ -49464,7 +49488,7 @@ msgstr "tipe dari array %q+D dilengkapi secara tidak kompatibel dengan inisialis
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "%qD telah dideklarasikan dalam lingkup ini"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, fuzzy, gcc-internal-format
 #| msgid "%Joriginal definition appeared here"
 msgid "originally defined here"
@@ -49717,7 +49741,7 @@ msgstr "deklarasi dari %q+D membayangi bukan-variabel sebelumnya"
 msgid "declaration of %qD shadows a parameter"
 msgstr "deklarasi dari %q+D membayangi sebuah parameter"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "deklarasi dari %qD membayangi sebuah deklarasi global"
@@ -49727,7 +49751,7 @@ msgstr "deklarasi dari %qD membayangi sebuah deklarasi global"
 msgid "declaration of %qD shadows a previous local"
 msgstr "deklarasi dari %qD membayangi sebuah lokal sebelumnya"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, fuzzy, gcc-internal-format
 #| msgid "%Jshadowed declaration is here"
 msgid "shadowed declaration is here"
@@ -49801,7 +49825,7 @@ msgstr "%H%qE tidak dideklarasikan (pertama digunakan dalam fungsi ini)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "%H (Setiap identifier yang tidak dideklarasikan hanya dilaporkan sekali)"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "label %qE direferensikan diluar dari fungsi apapun"
@@ -49838,7 +49862,7 @@ msgstr "melompat kedalam pernyataan ekspresi"
 msgid "duplicate label declaration %qE"
 msgstr "duplikasi deklarasi label %qE"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "duplikasi label %qD"
@@ -49876,7 +49900,7 @@ msgstr "melompat kedalam pernyataan ekspresi"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%H%qE didefinisikan sebagai jenis salah dari tag"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to function types"
 msgid "%qE attribute applied to %qD with void return type"
@@ -50032,12 +50056,12 @@ msgstr "ISO C90 tidak mendukung %<[*]%> array pendeklarasi"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%> tidak diijinkan dalam hal lain selain lingkup prototipe fungsi"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<this%> may not be used in this context"
 msgid "%<omp::%s%> not allowed to be specified in this context"
@@ -50048,7 +50072,7 @@ msgstr "%H%<this%> mungkin tidak digunakan dalam konteks ini"
 msgid "%q+D is usually a function"
 msgstr "%q+D biasanya sebuah fungsi"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, fuzzy, gcc-internal-format
 #| msgid "no previous declaration for %q+D"
 msgid "no previous declaration for %qD"
@@ -50131,7 +50155,7 @@ msgstr "tidak dapat meletakan objek dengan bagian volatile kedalam register"
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "tidak terinisialisasi const %qD"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -50335,7 +50359,7 @@ msgstr "class penyimpanan dispesifikasikan untuk parameter %qs"
 msgid "storage class specified for unnamed parameter"
 msgstr "class penyimpanan dispesifikasikan untuk parameter %qs"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "class penyimpanan dispesifikasikan untuk nama tipe"
@@ -50408,7 +50432,7 @@ msgstr "deklarasi dari %qs sebagai array dari fungsi"
 msgid "declaration of type name as array of functions"
 msgstr "deklarasi dari %qs sebagai array dari fungsi"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "penggunaan tidak valid dari struktur dengan anggota array fleksibel"
@@ -50531,7 +50555,7 @@ msgstr "%qs dideklarasikan sebagai fungsi yang mengembalikan sebuah array"
 msgid "function definition has qualified void return type"
 msgstr "definisi fungsi memiliki pengkualifikasi tipe kembali void"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "tipe pengkualifikasi diabaikan di tipe kembali fungsi"
@@ -50675,7 +50699,7 @@ msgstr "ISO C melarang tipe fungsi const atau volatile"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "sebuah anggota dari sebuah struktur atau union tidak dapat memiliki sebuah tipe variabel termodifikasi"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "variabel atau field %qE dideklarasikan void"
@@ -50794,7 +50818,7 @@ msgstr "melompat kedalam lingkup dari pengidentifikasi dengan tipe variabel dapa
 msgid "object with variably modified type must have no linkage"
 msgstr "objek dengan tipe variabel termodifikasi harus tidak memiliki hubungan"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "deklarasi fungsi bukan sebuah prototipe"
@@ -50889,18 +50913,18 @@ msgstr "nested redefinisi dari %<union %E%>"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "nested redefinisi dari %<struct %E%>"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr ""
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 #| msgid "unknown field %qE specified in initializer"
 msgid "%qT defined in underspecified object initializer"
 msgstr "field %qE tidak dikenal dispesifikasikan dalam penginisialisasi"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "redeklarasi tidak mendeklarasikan apapun"
@@ -50932,386 +50956,386 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "union tidak memiliki anggota bernama"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "union tidak memiliki anggota"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "struct tidak memiliki anggota bernama"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "struct tidak memiliki anggota"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member in union"
 msgid "flexible array member in union"
 msgstr "%J anggota array fleksibel dalam union"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member not at end of struct"
 msgid "flexible array member not at end of struct"
 msgstr "%J anggota array fleksibel tidak diakhir dari struct"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member in union"
 msgid "flexible array member in a struct with no named members"
 msgstr "%J anggota array fleksibel dalam union"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member not at end of struct"
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "%J anggota array fleksibel tidak diakhir dari struct"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is too large"
 msgid "type %qT is too large"
 msgstr "ukuran dari array %qs adalah terlalu besar"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr ""
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "union tidak dapat dibuat transparan"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 #| msgid "a member of a structure or union cannot have a variably modified type"
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "sebuah anggota dari sebuah struktur atau union tidak dapat memiliki sebuah tipe variabel termodifikasi"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "redefinisi dari %<struct %E%>"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "nested redefinisi dari %<enum %E%>"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "redeklarasi dari %<enum %E%>"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, fuzzy, gcc-internal-format
 #| msgid "specified mode too small for enumeral values"
 msgid "specified mode too small for enumerated values"
 msgstr "mode yang dispesifikasikan terlalu kecil untuk nilai enumerasi"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "nilai enumerasi melebihi jangkauan dari integer terbesar"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "nilai enumerasi melebihi jangkauan dari integer terbesar"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of %<enum %E%>"
 msgid "conflicting redefinition of enum %qT"
 msgstr "nested redefinisi dari %<enum %E%>"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "nilai pengenumerasi untuk %qE bukan sebuah konstanta integer"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant"
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "nilai pengenumerasi untuk %qE bukan sebuah konstanta integer"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "overflow dalam nilai enumerasi"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value %E is too large for underlying type %<%T%>"
 msgid "enumerator value outside the range of underlying type"
 msgstr "nilai pengenumerasi untuk %E terlalu besar untuk tipe yang digaris bawahi %<%T%>"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "enumerator value outside the range of %qs"
 msgstr "ISO C melarang nilai pengenumerasi ke jangkauan dari %<int%>"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C melarang nilai pengenumerasi ke jangkauan dari %<int%>"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D given attribute noinline"
 msgid "inline function %qD given attribute %qs"
 msgstr "fungsi inline %q+D memberikan atribut noinline"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "tipe kembali adalah sebuah tipe tidak lengkap"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "tipe baku kembali ke %<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, fuzzy, gcc-internal-format
 #| msgid "Warn about global functions without prototypes"
 msgid "%q+D defined as variadic function without prototype"
 msgstr "Peringatkan mengenai fungsi global tanpa prototipe"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, fuzzy, gcc-internal-format
 #| msgid "no previous prototype for %q+D"
 msgid "no previous prototype for %qD"
 msgstr "tidak ada prototipe sebelumnya untuk %q+D"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D was used with no prototype before its definition"
 msgid "%qD was used with no prototype before its definition"
 msgstr "%q+D telah digunakan dengan tidak ada prototipe sebelum definisinya"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D was used with no declaration before its definition"
 msgid "%qD was used with no declaration before its definition"
 msgstr "%q+D telah digunakan tanpa deklarasi sebelum definisinya"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, fuzzy, gcc-internal-format
 #| msgid "return type of %q+D is not %<int%>"
 msgid "return type of %qD is not %<int%>"
 msgstr "tipe kembali dari %q+D bukan %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr ""
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is normally a non-static function"
 msgid "%qD is normally a non-static function"
 msgstr "%q+D secara normal sebuah fungsi bukan-statis"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, fuzzy, gcc-internal-format
 #| msgid "%Jold-style parameter declarations in prototyped function definition"
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "%J deklarasi parameter gaya lama dalam definisi fungsi prototipe"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, fuzzy, gcc-internal-format
 #| msgid "%Jtraditional C rejects ISO C style function definitions"
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "%J tradisional C menolak gaya ISO C definisi fungsi"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr ""
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, fuzzy, gcc-internal-format
 #| msgid "%Jold-style function definition"
 msgid "old-style function definition"
 msgstr "%J definisi fungsi gaya-lama"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, fuzzy, gcc-internal-format
 #| msgid "%Jparameter name missing from parameter list"
 msgid "parameter name missing from parameter list"
 msgstr "%J nama parameter hilang dari daftar parameter"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a non-parameter"
 msgid "%qD declared as a non-parameter"
 msgstr "%q+D dideklarasikan sebagai sebuah bukan-parameter"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, fuzzy, gcc-internal-format
 #| msgid "multiple parameters named %q+D"
 msgid "multiple parameters named %qD"
 msgstr "multiple parameter bernama %q+D"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D declared with void type"
 msgid "parameter %qD declared with void type"
 msgstr "parameter %q+D dideklarasikan dengan tipe void"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, fuzzy, gcc-internal-format
 #| msgid "type of %q+D defaults to %<int%>"
 msgid "type of %qD defaults to %<int%>"
 msgstr "tipe dari %q+D baku ke %<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D has incomplete type"
 msgid "parameter %qD has incomplete type"
 msgstr "parameter %q+D memiliki tipe tidak lengkap"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, fuzzy, gcc-internal-format
 #| msgid "declaration for parameter %q+D but no such parameter"
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "deklarasi untuk parameter %q+D tetapi tidak ada parameter seperti itu"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "jumlah dari argumen tidak cocok dengan prototipe bawaan"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "jumlah dari argumen tidak cocok prototipe"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "deklarasi prototipe"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "argumen dipromosikan %qD tidak cocok dengan prototipe bawaan"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "argumen dipromosikan %qD tidak cocok dengan prototipe"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "argumen %qD tidak cocok dengan prototipe bawaan"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "argumen %qD tidak cocok dengan prototipe"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "tidak ada pernyataaan kembali dalam fungsi yang mengembalikan bukan void"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD is initialized"
 msgid "parameter %qD set but not used"
 msgstr "parameter %qD dinisialisasi"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, fuzzy, gcc-internal-format
 #| msgid "%<for%> loop initial declarations are only allowed in C99 mode"
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "%<for%> deklarasi inisial loop hanya diijinkan dalam mode C99"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, fuzzy, gcc-internal-format
 #| msgid "use option -std=c99 or -std=gnu99 to compile your code"
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "gunakan pilihan -std=c99 atau -std=gnu99 untuk mengkompile kode anda"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 tidak mendukung %<[*]%> array pendeklarasi"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of static variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "deklarasi dari variabel statis %q+D dalam %<for%> inisial deklarasi loop"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "deklarasi dari variabel %<extern%> %q+D dalam %<for> inisial deklarasi loop"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> dideklarasikan dalam %<for%> inisial deklarasi loop"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> dideklarasikan dalam %<for%> inisial deklarasi loop"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> dideklarasikan dalam %<for%> inisial deklarasi loop"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of non-variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "deklarasi dari bukan-variabel %q+D dalam %<for%> inisial deklarasi loop"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr ""
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration specifiers"
 msgid "duplicate %qE declaration specifier"
 msgstr "diduga penspesifikasi deklarasi"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "multiple class penyimpanan dalam deklarasi penspesifikasi"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%qs used with %<auto%>"
@@ -51319,273 +51343,273 @@ msgstr "%<__thread%> digunakan dengan %<auto%>"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%<__thread%> digunakan dengan %<register%>"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "dua atau lebih tipe data dalam penspesifikasi deklarasi"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> terlalu panjang untuk GCC"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 tidak mendukung %<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 tidak mendukung tipe kompleks"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO C tidak mendukung tipe yang bersaturasi"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "duplikasi %qE"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support fixed-point types"
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C tidak mendukung tipe titik tetap"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<__int%d%> is not supported on this target"
 msgstr "batas stact tidak didukung dalam target ini"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support complex types"
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 tidak mendukung tipe kompleks"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support the %<%%%s%c%> %s format"
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "%s tidak mendukung format %<%%%s%c%> %s"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "batas stact tidak didukung dalam target ini"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support decimal floating point"
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C tidak mendukung titik pecahan desimal"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "tipe titik tetap tidak didukung untuk target ini"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C tidak mendukung tipe titik tetap"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "ukuran dari array bukan sebuah integral konstan ekspresi"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "ukuran dari array %qD bukan sebuah integral konstan-ekspresi"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE gagal untuk menjadi sebuah typedef atau tipe bawaan"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE tidak berada di awal dari deklarasi"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%qE used with %<auto%>"
 msgstr "%<__thread%> digunakan dengan %<auto%>"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<register%>"
 msgstr "%<__thread%> digunakan dengan %<register%>"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qE used with %<typedef%>"
 msgstr "%<__thread%> digunakan dengan %<typedef%>"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<constexpr%>"
 msgstr "%<__thread%> digunakan dengan %<register%>"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "ISO C99 does not support %qE"
 msgstr "%s tidak mendukung %s"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<long long%>"
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 tidak mendukung %<long long%>"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> sebelum %<extern%>"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> sebelum %<static%>"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%<__thread%> digunakan dengan %<auto%>"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<extern%>"
 msgstr "%<__thread%> digunakan dengan %<register%>"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 #| msgid "%qs must be used with %qs"
 msgid "%qE used with %qs"
 msgstr "%qs harus digunakan dengan %qs"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr ""
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, fuzzy, gcc-internal-format
 #| msgid "%qs must be used with %qs"
 msgid "%qs used with %qE"
 msgstr "%qs harus digunakan dengan %qs"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%<constexpr%> used with %qE"
 msgstr "%<_thread%> digunakan dengan %qE"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<_Sat%> digunakan tanpa %<_Fract%> atau %<_Accum%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C tidak mendukung plain %<complex%> yang berarti %<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C90 tidak mendukung %<[*]%> array pendeklarasi"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C tidak mendukung tipe integer kompleks"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 #| msgid "Fixed line length must be at least seven."
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "Panjang baris tetap harus paling tidak tujuh."
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support %<~%> for complex conjugation"
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C tidak mendukung %<~%> untuk konjugasi kompleks"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, fuzzy, gcc-internal-format
 #| msgid "left shift count is negative"
 msgid "left shift of negative value"
 msgstr "jumlah geser kiri negatif"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "jumlah geser kiri negatif"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "jumlah geser kanan negatif"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "jumlah geser kiri >= lebar dari tipe"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "jumlah geser kanan >= lebar dari tipe"
@@ -51618,7 +51642,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr ""
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected end of module"
 msgid "expected end of line"
@@ -51629,8 +51653,8 @@ msgstr "Tidak terduga akhir dari modul"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C melarang sebuah satuan terjemahan kosong"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -51672,9 +51696,9 @@ msgstr "nama register %qs tidak dikenal dalam %<asm%>"
 msgid "unknown type name %qE"
 msgstr "nama register: %s tidak dikenal"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "diduga penspesifikasi deklarasi"
@@ -51708,7 +51732,7 @@ msgstr ""
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "diduga pengidentifikasi atau %<(%>"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored for %qE"
 msgid "prefix attributes are ignored for methods"
@@ -51732,7 +51756,7 @@ msgstr "Diduga nama atribut bit"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "atribut daerah tidak diijinkan untuk %q+D"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 #| msgid "section attribute not allowed for %q+D"
 msgid "%<assume%> attribute not followed by %<;%>"
@@ -51832,7 +51856,7 @@ msgstr "ekspresi integral %qE bukan konstan"
 msgid "static assertion failed: %E"
 msgstr "static assertion gagal: %E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, fuzzy, gcc-internal-format
 #| msgid "static assertion failed: %E"
 msgid "static assertion failed"
@@ -51911,10 +51935,10 @@ msgstr "template argumen %d tidak valid"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "diduga pengidentifikasi"
@@ -52075,7 +52099,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -52085,8 +52109,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -52269,12 +52293,12 @@ msgstr "ISO C melarang mengabaikan term tengah dari sebuah ekspresi ?:"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qD was declared here"
 msgid "first %<sizeof%> operand was declared here"
@@ -52443,7 +52467,7 @@ msgstr "ISO C90 tidak mendukung %<[*]%> array pendeklarasi"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "diduga ekspresi"
@@ -52793,12 +52817,12 @@ msgstr "diduga penspesifikasi deklarasi"
 msgid "no type or storage class may be specified here,"
 msgstr "kelas penyimpanan dispesifikasikan untuk %qs"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr ""
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing property attribute"
@@ -52810,62 +52834,62 @@ msgstr "hilang atribut Code"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "Operator tidak dikenal '%s' di %%L"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr ""
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<}%> before %<else%>"
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "diduga %<}%> sebelum %<else%>"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected %qE selector name"
 msgstr "diduga nama class"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr ""
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma omp flush%> hanya mungkin digunakan dalam pernyataan compound"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<#pragma GCC pch_preprocess%> harus menjadi pertama"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp section%> hanya bisa digunakan dalam %<#pragma omp section%> konstruk"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<#pragma omp section%> hanya bisa digunakan dalam %<#pragma omp section%> konstruk"
@@ -52876,26 +52900,26 @@ msgstr "%<#pragma omp section%> hanya bisa digunakan dalam %<#pragma omp section
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma omp flush%> hanya mungkin digunakan dalam pernyataan compound"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, fuzzy, gcc-internal-format
 #| msgid "for statement expected"
 msgid "for, while or do statement expected"
 msgstr "diduga pernyataan for"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%> harus menjadi pertama"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "terlalu banyak %qs clauses"
@@ -52912,71 +52936,71 @@ msgstr "num_threads ekspresi harus integral"
 msgid "expected %<)%> or %<,%>"
 msgstr "diduga %<,%> atau %<,%>"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD bukan sebuah variabel"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is not a pointer variable"
 msgstr "%qD bukan sebuah variabel"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr "argumen collapes membutuhkan konstanta positif ekspresi integer"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<none%> or %<present%>"
 msgstr "diduga %<none%> atau %<shared%>"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "diduga %<=%>, %<,%>, %<,%>, %<asm%> atau %<__attribute__%>"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected constant logical expression"
 msgstr "diduga ekspresi integer"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "diduga %<,%>, %<,%> atau %<}%>"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<data%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<if%> clauses"
 msgstr "terlalu banyak %qs clauses"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<if%> clauses without modifier"
 msgstr "terlalu banyak %qs clauses"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -53000,25 +53024,25 @@ msgstr "%<num_threads%> nilai harus positif"
 msgid "%<num_tasks%> value must be positive"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<grainsize%> value must be positive"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<priority%> value must be non-negative"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "diduga ekspresi integer"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, or %<||%>"
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
@@ -53030,107 +53054,107 @@ msgstr "diduga %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, atau %<||%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "diduga %<,%>, %<,%> atau %<}%>"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr ""
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr ""
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%qs expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%qs value must be positive"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<static%> arguments"
 msgstr "terlalu banyak %qs clauses"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected element"
 msgid "unexpected argument"
 msgstr "Elemen tidak diduga"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute argument not an integer constant"
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "argumen atribut %qs bukan sebuah konstanta integer"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<self%> clauses"
 msgstr "terlalu banyak %qs clauses"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "diduga %<none%> atau %<shared%>"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<concurrent%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "diduga %<,%>, %<,%> atau %<}%>"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, fuzzy, gcc-internal-format
 #| msgid "collapse argument needs positive constant integer expression"
 msgid "ordered argument needs positive constant integer expression"
 msgstr "argumen collapes membutuhkan konstanta positif ekspresi integer"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, or %<||%>"
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "diduga %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, atau %<||%>"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, fuzzy, gcc-internal-format
 #| msgid "both %<long%> and %<void%> in declaration specifiers"
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "baik %<long%> dan %<void%> dalam penspesifikasi deklarasi"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "jadwal %<runtime%> tidak mengambil sebuah parameter %<chunk_size%>"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "penjadwalan %<auto%> tidak mengambil sebuah parameter %<chunk_size%>"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "chunk size value must be positive"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "jenis penjadwalan tidak valid"
@@ -53141,24 +53165,24 @@ msgstr "jenis penjadwalan tidak valid"
 msgid "%<num_teams%> value must be positive"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<thread_limit%> value must be positive"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr "%Hkolaps argumen membutuhkan konstanta positif integer ekspresi"
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<allocator%> or %<align%>"
@@ -53170,24 +53194,24 @@ msgstr "diduga %<,%> atau %<,%>"
 msgid "duplicate %qs modifier"
 msgstr "%Hduplikasi %qs"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "%Hkolaps argumen membutuhkan konstanta positif integer ekspresi"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 #| msgid "multiple inline callers"
 msgid "multiple linear modifiers"
 msgstr "multiple pemanggil inline"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr ""
@@ -53210,70 +53234,70 @@ msgstr "%Hkolaps argumen membutuhkan konstanta positif integer ekspresi"
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr "%Hkolaps argumen membutuhkan konstanta positif integer ekspresi"
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "assert: %s adalah assign kompatibel dengan %s"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 #| msgid "invalid schedule kind"
 msgid "invalid depend kind"
 msgstr "jenis penjadwalan tidak valid"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 #| msgid "invalid schedule kind"
 msgid "invalid doacross kind"
 msgstr "jenis penjadwalan tidak valid"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<always%> modifiers"
 msgstr "terlalu banyak %qs clauses"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<close%> modifiers"
 msgstr "terlalu banyak %qs clauses"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<present%> modifiers"
 msgstr "terlalu banyak berkas masukan"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mask"
 msgid "invalid map kind"
 msgstr "topeng tidak valid"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "diduga %<none%> atau %<shared%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr ""
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 #| msgid "invalid schedule kind"
 msgid "invalid dist_schedule kind"
@@ -53291,93 +53315,93 @@ msgstr "jenis penjadwalan tidak valid"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "diduga %<,%>, %<,%> atau %<}%>"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected an OpenACC clause"
 msgstr "diduga clause %<#pragma omp%>"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs tidak valid untuk %qs"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, fuzzy, gcc-internal-format
 #| msgid "%qs must be used with %qs"
 msgid "%qs must be the first clause of %qs"
 msgstr "%qs harus digunakan dengan %qs"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected an OpenMP clause"
 msgstr "diduga clause %<#pragma omp%>"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr ""
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr ""
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "deklarasi dari variabel %<extern%> %q+D dalam %<for> inisial deklarasi loop"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, fuzzy, gcc-internal-format
 #| msgid "expected a string after %<#pragma message%>"
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "diduga sebuah string setelah %<#pragma message%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr ""
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -53394,7 +53418,7 @@ msgstr "%H%qE belum pernah dideklarasikan"
 msgid "expected function name"
 msgstr "diduga nama class"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is not a function,"
 msgid "%qD does not refer to a function"
@@ -53405,23 +53429,23 @@ msgstr "%q+D bukan sebuah fungsi,"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr ""
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<#pragma align%> harus muncul sebelum deklarasi dari %D, abaikan"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr ""
@@ -53448,7 +53472,7 @@ msgstr ""
 msgid "modified here"
 msgstr "'E' pemodifikasi"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
@@ -53489,119 +53513,119 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "diduga %<:%>, %<,%>, %<,%>, %<}%> atau %<__attribute__%>"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "diduga %<,%>, %<,%> atau %<}%>"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many atomic clauses"
 msgstr "terlalu banyak %qs clauses"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many memory order clauses"
 msgstr "terlalu banyak %qs clauses"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr ""
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<(%> or end of line"
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "diduga %<(%> atau akhir dari baris"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operator for %<#pragma omp atomic%>"
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "operator tidak valid untuk %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "unexpected %<else%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operator for %<#pragma omp atomic%>"
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "operator tidak valid untuk %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operator for %<#pragma omp atomic%>"
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "operator tidak valid untuk %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "operator tidak valid untuk %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr ""
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "%<depobj%> expression is not lvalue expression"
@@ -53613,30 +53637,30 @@ msgstr "%s daftar ekspresi diperlakukan sebagai ekspresi compound"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "%s daftar ekspresi diperlakukan sebagai ekspresi compound"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "diduga %<=%>, %<,%>, %<,%>, %<asm%> atau %<__attribute__%>"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "diduga %<,%>, %<,%> atau %<}%>"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "diduga %<=%>, %<,%>, %<,%>, %<asm%> atau %<__attribute__%>"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -53646,178 +53670,178 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr "diduga %<(%> atau akhir dari baris"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp taskwait%> may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp taskwait%> hanya  boleh digunakan dalam pernyataan compound"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<}%> before %<else%>"
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "diduga %<}%> sebelum %<else%>"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected %<#pragma omp scan%>"
 msgstr "diduga clause %<#pragma omp%>"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp taskwait%> may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp taskwait%> hanya  boleh digunakan dalam pernyataan compound"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "diduga iterasi deklarasi atau inisialisasi"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 #| msgid "not enough perfectly nested loops"
 msgid "not enough nested loops"
 msgstr "tidak cukup secara sempurna nested loops"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "diduga pernyataan for"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "iterasi variabel %qD seharusnya bukan first private"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp barrier%> hanya mungkin digunakan dalam pernyataan compound"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<for%> after %qs"
 msgstr "diduga %<,%> atau %<,%>"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<point%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr ""
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma align%> harus muncul sebelum deklarasi dari %D, abaikan"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 #| msgid "Expected attribute bit name"
 msgid "expected trait selector name"
 msgstr "Diduga nama atribut bit"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr ""
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr ""
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 #| msgid "%<friend%> can only be specified inside a class"
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<friend%> hanya dapat dispesifikasikan didalam sebuah kelas"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%<score%> argument must be constant integer expression"
 msgstr "%Hkolaps argumen membutuhkan konstanta positif integer ekspresi"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 #| msgid "last argument must be an immediate"
 msgid "%<score%> argument must be non-negative"
 msgstr "argumen terakhir harus berupa sebuah immediate"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected identifier or string literal"
 msgstr "diduga string literal"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 #| msgid "collapse argument needs positive constant integer expression"
 msgid "property must be constant integer expression"
 msgstr "argumen collapes membutuhkan konstanta positif ekspresi integer"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -53825,310 +53849,310 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr ""
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected context selector set name"
 msgstr "diduga nama class"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<match%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is not a function,"
 msgid "variant %qD is not a function"
 msgstr "%q+D bukan sebuah fungsi,"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 #| msgid "elements of array %q#D have incomplete type"
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "elemen dari array %q#D memiliki tipe tidak lengkap"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<target%>"
 msgstr "diduga %<{%>"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "diduga %<none%> atau %<shared%>"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr ""
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr ""
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "diduga %<none%> atau %<shared%>"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr ""
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp section%> or %<}%>"
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "diduga %<#pragma omp section%> atau %<}%>"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<(%> or end of line"
 msgid "expected %<omp_priv%> or function-name"
 msgstr "diduga %<(%> atau akhir dari baris"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, fuzzy, gcc-internal-format
 #| msgid "expected identifier or %<(%>"
 msgid "expected function-name %<(%>"
 msgstr "diduga pengidentifikasi atau %<(%>"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "diduga %<=%>, %<,%>, %<,%>, %<asm%> atau %<__attribute__%>"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "diduga %<=%>, %<,%>, %<,%>, %<asm%> atau %<__attribute__%>"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has invalid type for %<reduction%>"
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "%qE memiliki tipe tidak valid untuk %<reduction%>"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "diduga %<,%>, %<,%> atau %<}%>"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %qs or %qs"
 msgstr "diduga %<,%> atau %<,%>"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp barrier%> hanya mungkin digunakan dalam pernyataan compound"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected at least one assumption clause"
 msgstr "diduga clause %<#pragma omp%>"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected directive name"
 msgstr "diduga nama class"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 #| msgid "unknown machine mode %qs"
 msgid "unknown assumption clause %qs"
 msgstr "mode mesin %qs tidak dikenal"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected assumption clause"
 msgstr "diduga clause %<#pragma omp%>"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE dideklarasikan %<threadprivate%> setelah penggunaan pertama"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "variabel otomatis %qE tidak dapat berupa %<threadprivate%>"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%<threadprivate%> %qE memiliki tipe tidak lengkap"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr ""
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, fuzzy, gcc-internal-format
 #| msgid "%Henclosing parallel"
 msgid "no closing brace"
@@ -54280,7 +54304,7 @@ msgstr "dereferensi penunjuk %<void *%>"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "nilai subscripted adalah bukan array ataupun penunjuk"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "array subscrip bukan sebuah integer"
@@ -54311,7 +54335,7 @@ msgstr "%qD dideklarasikan sebagai referensi tetapi tidak terinisialisasi"
 msgid "enum constant defined here"
 msgstr ""
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -54432,18 +54456,18 @@ msgstr "meminta untuk konversi implisit dari %qT ke %qT tidak diijinkan dalam C+
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "terlalu sediki argumen ke fungsi %qE"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "perbandingan dengan string literal menghasilkan perilaku yang tidak dispesifikasikan"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between pointer and integer"
 msgid "comparison between pointer and zero character constant"
 msgstr "perbandingan diantara penunjuk dan integer"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, fuzzy, gcc-internal-format
 #| msgid "casting %qT to %qT does not dereference pointer"
 msgid "did you mean to dereference the pointer?"
@@ -54470,7 +54494,7 @@ msgstr "penunjuk ke sebuah fungsi digunakan dalam pengurangan"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "aritmetik di penunjuk ke sebuah tipe tidak lengkap"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic on pointer to an incomplete type"
 msgid "arithmetic on pointer to an empty aggregate"
@@ -54791,7 +54815,7 @@ msgstr "cast dari penunjuk ke integer dari ukuran berbeda"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "cast dari panggilan fungsi dari tipe %qT ke tipe yang tidak cocok %qT"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "cast ke penunjuk dari integer dari ukuran yang berbeda"
@@ -54991,7 +55015,7 @@ msgstr "penempatan sisi tangan-kiri mungkin menjadi sebuah kandidat untuk sebuah
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "inisialisasi sisi tangan kiri mungkin menjadi sebuah kandidat untuk sebuah format atribut"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "tipe kembali mungkin berupa sebuah kandidat untuk sebuah atribut format"
@@ -55209,12 +55233,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "inisialisasi dari sebuah anggota array fleksibel"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -55224,7 +55248,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr "array dari tipe yang tidak sesuai terinisialisasi dari konstanta string"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "penggunaan tidak valid dari bukan-lvalue array"
@@ -55256,7 +55280,7 @@ msgstr "elemen penginisialisasi bukan sebuah konstanta"
 msgid "initializer element is not computable at load time"
 msgstr "elemen penginisialisasi tidak dapat dihitung di waktu load"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "tipe vektor opaque tidak dapat diinisialisasi"
@@ -55271,7 +55295,7 @@ msgstr "kelebihan grup kurung diakhir dari penginisialisasi"
 msgid "braces around scalar initializer"
 msgstr "kurung disekitar penginisialisasi skalar"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "inisialisasi dari anggota array fleksibel dalam sebuah konteks bertelur"
@@ -55365,7 +55389,7 @@ msgstr "kelebihan elemen dalam struktur penginisialisasi"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "inisialisasi tidak statis dari sebuah anggota array fleksibel"
@@ -55406,7 +55430,7 @@ msgstr "ISO C melarang %<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "tidak dapat mengubah ke sebuah tipe penunjuk"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "fungsi dideklarasikan %<noreturn%> memiliki sebuah pernyataan %<return%>"
@@ -55463,7 +55487,7 @@ msgstr "%<default%> label tidak dalam sebuah pernyataan switch"
 msgid "break statement not within loop or switch"
 msgstr "pernyataan break tidak dalam loop atau switch"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -55509,28 +55533,28 @@ msgstr ""
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr ""
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, fuzzy, gcc-internal-format
 #| msgid "Warn about comparison of different enum types"
 msgid "comparing vectors with different element types"
 msgstr "Peringatkan mengenai perbandingan dari tipe enum yang berbeda"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr ""
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "perbandingan diantara tipe %qT dan %qT"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, fuzzy, gcc-internal-format
 #| msgid "comparing floating point with == or != is unsafe"
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
@@ -55607,31 +55631,31 @@ msgstr "menggunaka nilai tipe union dimana skalar dibutuhkan"
 msgid "used vector type where scalar is required"
 msgstr "menggunakan nilai tipe struct dimana skalar dibutuhkan"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "diduga clause %<#pragma omp%>"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD bukan sebuah variabel dalam clause %qs"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not a variable in %qs clause"
@@ -55644,93 +55668,93 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "%Hterlalu banyak %qs clauses"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD bukan sebuah variabel dalam clause %qs"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "low bound %qE of array section does not have integral type"
 msgstr "ukuran dalam array baru harus memiliki tipe integral"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "length %qE of array section does not have integral type"
 msgstr "ukuran dalam array baru harus memiliki tipe integral"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected single pointer in %qs clause"
 msgstr "diduga string literal"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, fuzzy, gcc-internal-format
 #| msgid "variable length array %qs is used"
 msgid "zero length array section in %qs clause"
 msgstr "array dengan panjang bervariabel %qs digunakan"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, fuzzy, gcc-internal-format
 #| msgid "variable length array %qs is used"
 msgid "negative length in array section in %qs clause"
 msgstr "array dengan panjang bervariabel %qs digunakan"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, fuzzy, gcc-internal-format
 #| msgid "Copy array sections into a contiguous block on procedure entry"
 msgid "array section is not contiguous in %qs clause"
 msgstr "Salin bagian array kedalam sebuah blok kontinu dalam masukan prosedur"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qE does not have class type"
 msgid "%qE does not have pointer or array type"
 msgstr "%H%qE tidak memiliki tipe kelas"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 #| msgid "throwing NULL, which has integral, not pointer type"
 msgid "iterator %qD has neither integral nor pointer type"
@@ -55741,19 +55765,19 @@ msgstr "melemparkan KOSONG, yang memiliki integral, bukan tipe penunjuk"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr ""
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field %qs has invalid type"
 msgid "iterator %qD has const qualified type"
 msgstr "bit-field %qs memiliki tipe tidak valid"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field %qD with non-integral type"
 msgid "iterator step with non-integral type"
 msgstr "bit-field %qD dengan tipe bukan integral"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -55763,33 +55787,33 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected pointer in %qs clause"
 msgstr "diduga clause %<#pragma omp%>"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr ""
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr ""
@@ -55821,7 +55845,7 @@ msgstr "array dengan panjang bervariabel %qs digunakan"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE memiliki tipe tidak valid untuk %<reduction(%s)%>"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr ""
@@ -55832,17 +55856,17 @@ msgstr ""
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "array dengan panjang bervariabel digunakan"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE harus berupa %<threadprivate%> untuk %<copyin%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -55857,24 +55881,24 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr ""
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE bukan sebuah variabel dalam clause %qs"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD muncul lebih dari sekali dalam data clauses"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in reduction clauses"
@@ -55887,33 +55911,33 @@ msgstr "%qE muncul lebih dari sekali dalam clause data"
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "%qD muncul lebih dari sekali dalam data clauses"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears both in data and map clauses"
 msgstr "%qD muncul lebih dari sekali dalam data clauses"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE bukan sebuah variabel dalam clause %<firstprivate%>"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE bukan sebuah variabel dalam clause %<lastprivate%>"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not a variable in %<aligned%> clause"
@@ -55936,7 +55960,7 @@ msgstr ""
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE muncul lebih dari sekali dalam clause data"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not a variable in %<nontemporal%> clause"
@@ -55948,7 +55972,7 @@ msgstr "%qE bukan sebuah variabel dalam clause %qs"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE muncul lebih dari sekali dalam clause data"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not a variable in %<allocate%> clause"
@@ -55960,84 +55984,84 @@ msgstr "%qE bukan sebuah variabel dalam clause %qs"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE muncul lebih dari sekali dalam clause data"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression in array specification at %C"
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "Diduga ekspresi dalam spesifikasi array di %C"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported map expression %qE"
 msgstr "kombinasi tidak didukung: %s"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD muncul lebih dari sekali dalam data clauses"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD muncul lebih dari sekali dalam data clauses"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD bukan sebuah variabel dalam clause %qs"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE bukan sebuah variabel dalam clause %qs"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, fuzzy, gcc-internal-format
 #| msgid "%qE appears more than once in data clauses"
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE muncul lebih dari sekali dalam clause data"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD bukan sebuah variabel dalam clause %qs"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not an argument in %<uniform%> clause"
@@ -56055,23 +56079,23 @@ msgstr "%s variabel %qs private dalam konteks luar"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "tipe dari vektor delete bukan penunjuk ataupun tipe array"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr ""
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %qs clauses on a task construct"
 msgstr "terlalu banyak %qs clauses"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE adalah predetermined %qs untuk %qs"
@@ -56081,38 +56105,38 @@ msgstr "%qE adalah predetermined %qs untuk %qs"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -56420,14 +56444,14 @@ msgstr "  untuk konversi dari %qT ke %qT"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  untuk konversi dari %qT ke %qT"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -56773,620 +56797,620 @@ msgstr ""
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "tipe enumeral dan bukan enumeral dalam ekspresi kondisional"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "tidak ada %<%D(int%> dideklarasikan untuk postfix %qs, mencoba operator prefix sebaliknya"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, fuzzy, gcc-internal-format
 #| msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "tidak ada %<%D(int%> dideklarasikan untuk postfix %qs, mencoba operator prefix sebaliknya"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 #| msgid "return type of %q+D is not %<int%>"
 msgid "return type of %qD is not %qs"
 msgstr "tipe kembali dari %q+D bukan %<int%>"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "perbandingan antara %q#T dan %q#T"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to %<(%T) (%A)%>"
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "tidak ada yang cocok untuk panggilan ke %<(%T) (%A)%>"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 #| msgid "call of %<(%T) (%A)%> is ambiguous"
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "panggilan dari %<(%T) (%A)%> adalah ambigu"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr ""
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is normally a non-static function"
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "%q+D secara normal sebuah fungsi bukan-statis"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr "tidak ada dealokasi fungsi yang berhubungan untuk %qD"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "tidak cocok %<operator %s%> untuk %qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is private within this context"
 msgstr "dalam konteks ini"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "declared private here"
 msgstr "%q+D dideklarasikan disini"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is protected within this context"
 msgstr "dalam konteks ini"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "declared protected here"
 msgstr "%q+D dideklarasikan disini"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D is inaccessible"
 msgid "%q#D is inaccessible within this context"
 msgstr "%q+#D tidak dapat diakses"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "melewatkan koson ke argumen bukan penunjuk %P dari %qD"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "  declared here"
 msgstr "%q+D dideklarasikan disini"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "mengubah ke tipe bukan penunjuk %qT dari KOSONG"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "mengubah %<false%> ke tipe penunjuk untuk argumen %P dari %qD"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, fuzzy, gcc-internal-format
 #| msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgid "converting %<false%> to pointer type %qT"
 msgstr "mengubah %<false%> ke tipe penunjuk untuk argumen %P dari %qD"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  inisialisasi argumen %P dari %qD"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "terlalu banyak kurung diantara penginisialisasi untuk %qT"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr ""
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr ""
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "konversi dari %qT ke %qT tidak valid"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid conversion from %qH to %qI"
 msgstr "konversi dari %qT ke %qT tidak valid"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr "mengubah ke %qT untuk daftar penginisialisasi akan menggunakan konstruktor eksplist %qD"
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, fuzzy, gcc-internal-format
 #| msgid "only declarations of constructors can be %<explicit%>"
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr "hanya deklarasi dari konstruktor yang dapan berupa %<explicit%>"
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "cast tidak valid dari sebuah ekspresi rvalue dari tipe %qT ke tipe %qT"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "inisialisasi dari referensi bukan const dari tipe %qT dari sebuah tipe sementara %qT tidak valid"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "inisialisasi dari referensi bukan const dari tipe %qT dari sebuah tipe sementara %qT tidak valid"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 #| msgid "invalid initialization of reference of type %qT from expression of type %qT"
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "inisialisasi dari referensi dari tipe %qT dari ekspresi dari tipe %qT tidak valid"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr ""
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 #, fuzzy
 #| msgid "conversion from %qT to %qT discards qualifiers"
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "konversi dari %qT ke %qT mengabaikan kualifikasi"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 #| msgid "cannot bind bitfield %qE to %qT"
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "tidak dapat mengikat bitfield %qE ke %qT"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "tidak dapat mengikat packed field %qE ke %qT"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "tidak dapat mengikat rvalue %qE ke %qT"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 #, fuzzy
 #| msgid "request for implicit conversion from %qT to %qT not permitted in C++"
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "meminta untuk konversi implisit dari %qT ke %qT tidak diijinkan dalam C++"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, fuzzy, gcc-internal-format
 #| msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "tidak dapat melewatkan objek dari tipe bukan POD %q#T melalui %<...%>; panggilan akan dibatalkan pada saat waktu-jalan"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "tidak dapat mendeklarasikan referensi ke %q#T"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, fuzzy, gcc-internal-format
 #| msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "tidak dapat menerima objek dari tipe bukan POD %q#T melalui %<...%>; panggilan akan dibatalkan pada saat waktu-jalan"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "evaluasi rekursi dari argumen baku untuk %q#D"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, fuzzy, gcc-internal-format
 #| msgid "the default argument for parameter %d of %qD has not yet been parsed"
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "argumen baku untuk parameter %d dari %qD belum diparse"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "argumen dari fungsi panggilan mungkin menjadi sebuah kandidat untuk sebuah atribut format"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr ""
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, fuzzy, gcc-internal-format
 #| msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "melewatkan %qT sebagai %<this%> argumen dari %q#D mengabaikan kualifier"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  dalam panggilan ke %qD"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT bukan sebuah dasar yang bisa diakses dari %qT"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, fuzzy, gcc-internal-format
 #| msgid "Missing arguments to %s intrinsic at %L"
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "Hilang argumen ke %s intrinsik di %L"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "membuat penunjuk ke anggota dari tipe bukan kelas %qT"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use assignment or value-initialization instead"
 msgstr "penempatan (tidak terinisialisasi) dalam deklarasi"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use assignment instead"
 msgstr "lebih baik gunakan #include"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, fuzzy, gcc-internal-format
 #| msgid "value-initialization of reference"
 msgid "; use value-initialization instead"
 msgstr "nilai-inisialisasi dari referensi"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "membuat penunjuk ke anggota dari tipe bukan kelas %qT"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "penempatan (tidak terinisialisasi) dalam deklarasi"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use copy-assignment instead"
 msgstr "lebih baik gunakan #include"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, fuzzy, gcc-internal-format
 #| msgid "value-initialization of reference"
 msgid "; use copy-initialization instead"
 msgstr "nilai-inisialisasi dari referensi"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%#qT declared here"
 msgstr "%q+D dideklarasikan disini"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr ""
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructor delegates to itself"
 msgstr "konstruktor tidak dapat dideklarasikan virtual"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI"
 msgstr "tidak dapat mengubah %qT ke %qT dalam %s"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "tidak pasangan fungsi untuk panggilan ke %<%T::%s(%A)%#V%>"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "tidak pasangan fungsi untuk panggilan ke %<%T::%s(%A)%#V%>"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "panggilan ke bukan-fungsi %qD"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr ""
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, fuzzy, gcc-internal-format
 #| msgid "mangling function-style cast with more than one argument"
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr "mangling function-style cast dengan lebih dari satu argumen"
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%D(%A)%>"
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "tidak ada fungsi yang cocok untuk panggilan ke %<%D(%A)%>"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "panggilan dari overloaded %<%s(%A)%> adalah ambigu"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no non-static data member named %qD"
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "%qT memiliki anggota data tidak statis bernama %qD"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "returning a value from a constructor"
 msgid "pure virtual %q#D called from constructor"
 msgstr "mengembalikan sebuah nilai dari sebuah konstruktor"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, fuzzy, gcc-internal-format
 #| msgid "returning a value from a destructor"
 msgid "pure virtual %q#D called from destructor"
 msgstr "mengembalikan sebuah nilai dari sebuah destruktor"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "tidak dapat memanggil anggota fungsi %qD tanpa objek"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "melewatkan %qT memilih %qT diatas %qT"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "ISO C++ mengatakan bahwa ini adalah ambigu, meskipun melalui konversi terburuk untuk yang pertama lebih baik daripada konversi terburuk untuk yang kedua:"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "try making the operator a %<const%> member function"
 msgstr "%qD harus berupa sebuah anggota fungsi tidak statis"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "memilih %qD diatas %qD"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 #| msgid "  for conversion from %qT to %qT"
 msgid "  for conversion from %qH to %qI"
 msgstr "  untuk konversi dari %qT ke %qT"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  karena urutan konversi untuk argumen lebih baik"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "argumen baku tidak cocok dalam kelebihan beban resolusi"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, fuzzy, gcc-internal-format
 #| msgid " candidate 1: %q+#F"
 msgid " candidate 1: %q#F"
 msgstr " kandidat 1: %q+#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, fuzzy, gcc-internal-format
 #| msgid " candidate 2: %q+#F"
 msgid " candidate 2: %q#F"
 msgstr " kandidat 2: %q+#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ISO C++ mengatakan bahwa ini adalah ambigu, meskipun melalui konversi terburuk untuk yang pertama lebih baik daripada konversi terburuk untuk yang kedua:"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "inisialisasi dari referensi bukan const dari tipe %qT dari sebuah tipe sementara %qT tidak valid"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 #| msgid "invalid initialization of reference of type %qT from expression of type %qT"
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "inisialisasi dari referensi dari tipe %qT dari ekspresi dari tipe %qT tidak valid"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "possibly dangling reference to a temporary"
 msgstr "mengembalikan referensi ke sementara"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, fuzzy, gcc-internal-format
 #| msgid "%s: definition of function '%s' not converted\n"
 msgid "explicit conversion function was not considered"
@@ -57440,7 +57464,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q+#D tidak dapat overloaded"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous declaration %q#D"
@@ -57910,7 +57934,7 @@ msgstr "%J anggota array fleksibel dalam sebaliknya struct kosong"
 msgid "next member %q#D declared here"
 msgstr "  %q+#D dideklarasikan disini"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "redefinisi dari %q#T"
@@ -58051,7 +58075,7 @@ msgstr "tipe kembali abstrak tidak valid untuk fungsi %q+#D"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
@@ -58096,7 +58120,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr ""
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -58115,7 +58139,7 @@ msgstr ""
 msgid "%q+E is not a constant expression"
 msgstr "%s tidak dapat muncul dalam sebuah konstanta ekspresi"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
@@ -58137,7 +58161,7 @@ msgstr ""
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
@@ -58188,7 +58212,7 @@ msgstr "%qT adalah sebuah dasar ambigu dari %qT"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
@@ -58332,20 +58356,20 @@ msgstr "%H array subscript diluar dari cakupan array"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr ""
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "accessing uninitialized array element"
 msgstr "hilang penginisialisasi untuk anggota %qD"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
 msgid "dereferencing a null pointer in %qE"
 msgstr "dereferensi penunjuk %<void *%>"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -58354,516 +58378,516 @@ msgstr "dereferensi penunjuk %<void *%>"
 msgid "%qE is not a constant expression"
 msgstr "%s tidak dapat muncul dalam sebuah konstanta ekspresi"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot appear in a constant-expression"
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "%qD tidak dapat muncul dalam sebuah ekspresi konstan"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "accessing uninitialized member %qD"
 msgstr "hilang penginisialisasi untuk anggota %qD"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr ""
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr ""
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena ini adalah sebuah penunjuk"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr ""
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr ""
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr ""
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "parameter template %qD dari tipe %qT tidak diijinkan dalam sebuah ekspresi konstanta integral karena ini bukan tipe integral atau enumerasi"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr ""
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr ""
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot be used in asm here"
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "%s tidak digunakan dalam asm disini"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr ""
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr ""
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "ukuran dari array bukan sebuah integral konstan ekspresi"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 #| msgid "called from here"
 msgid "allocated here"
 msgstr "dipanggil dari sini"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "ukuran dari array bukan sebuah integral konstan ekspresi"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "ukuran dari array %qD bukan sebuah integral konstan-ekspresi"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not initialized"
 msgid "%qD used in its own initializer"
 msgstr "%qE tidak terinisialisasi"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a class"
 msgid "%q#D is not const"
 msgstr "%q#T bukan sebuah kelas"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D is private"
 msgid "%q#D is volatile"
 msgstr "%q+#D adalah private"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot appear in a constant-expression"
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD tidak dapat muncul dalam sebuah ekspresi konstan"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, fuzzy, gcc-internal-format
 #| msgid "%qD was not declared in this scope"
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD belum pernah dideklarasikan dalam lingkup ini"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, fuzzy, gcc-internal-format
 #| msgid "%Hexpression in new-declarator must have integral or enumeration type"
 msgid "%qD does not have integral or enumeration type"
 msgstr "%Hekspresi dalam pendeklarasi new harus memiliki integral atau tipe enumerasi"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D outside of class is not definition"
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "deklarasi dari %q#D diluar dari kelas bukan sebuah definisi"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr ""
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "statement is not a constant expression"
 msgstr "Tipe buruk dalam ekspresi konstanta"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "inline assembly is not a constant expression"
 msgstr "ukuran dari array bukan sebuah integral konstan ekspresi"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
 msgid "use of %qD"
 msgstr "penggunaan tidak valid dari %qD"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "Tipe buruk dalam ekspresi konstanta"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 #| msgid "enumeral and non-enumeral type in conditional expression"
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "tipe enumeral dan bukan enumeral dalam ekspresi kondisional"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "%s tidak dapat muncul dalam sebuah konstanta ekspresi"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, fuzzy, gcc-internal-format
 #| msgid "cast from type %qT to type %qT casts away constness"
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "cast dari tipe %qT ke tipe %qT menghilangkan constness"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "parameter template %qD dari tipe %qT tidak diijinkan dalam sebuah ekspresi konstanta integral karena ini bukan tipe integral atau enumerasi"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr ""
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "parameter template %qD dari tipe %qT tidak diijinkan dalam sebuah ekspresi konstanta integral karena ini bukan tipe integral atau enumerasi"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "ukuran dari array %qD bukan sebuah integral konstan-ekspresi"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr ""
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "%s tidak dapat muncul dalam sebuah konstanta ekspresi"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 #| msgid "integral expression %qE is not constant"
 msgid "expression %qE is not a constant expression"
 msgstr "ekspresi integral %qE bukan konstan"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "%<goto%> is not a constant expression"
 msgstr "overflow dalam konstanta ekspresi"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "contract predicate is false in constant expression"
 msgstr "Tipe buruk dalam ekspresi konstanta"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a class template, got %qE"
 msgid "unexpected template-id %qE"
 msgstr "  diduga sebuah template kelas, diperoleh %qE"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, fuzzy, gcc-internal-format
 #| msgid "non-function in gimple call"
 msgid "function concept must be called"
 msgstr "bukan fungsi dalam panggilan gimple"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "address of a call to %qs is not a constant expression"
 msgstr "ukuran dari array %qD bukan sebuah integral konstan-ekspresi"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "unexpected expression %qE of kind %s"
 msgstr "diduga ekspresi"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr ""
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr ""
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr ""
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "cast tidak valid dari sebuah ekspresi rvalue dari tipe %qT ke tipe %qT"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "Tipe buruk dalam ekspresi konstanta"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, fuzzy, gcc-internal-format
 #| msgid "reinterpret_cast from type %qT to type %qT casts away constness"
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "reinterpret_cast dari tipe %qT ke tipe %qT menghilangkan constness"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "use of %<this%> in a constant expression"
 msgstr "Tipe buruk dalam ekspresi konstanta"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "Tipe buruk dalam ekspresi konstanta"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "new-expression is not a constant expression before C++20"
 msgstr "%s daftar ekspresi diperlakukan sebagai ekspresi compound"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "fungsi virtual tidak dapat menjadi friend"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr ""
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "Tipe buruk dalam ekspresi konstanta"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "division by zero is not a constant expression"
 msgstr "Tipe buruk dalam ekspresi konstanta"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "%<delete[]%> is not a constant expression"
 msgstr "Tipe buruk dalam ekspresi konstanta"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "overflow dalam konstanta ekspresi"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, fuzzy, gcc-internal-format
 #| msgid "nonconstant array index in initializer"
 msgid "non-constant array initialization"
 msgstr "indeks array bukan konstan dalam penginisialisasi"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected end of file in '%s'"
 msgid "unexpected AST of kind %s"
@@ -59668,7 +59692,7 @@ msgstr "argumen ketiga ke %<__builtin_prefetch%> harus berupa sebuah konstan"
 msgid "no suspend point info for %qD"
 msgstr "tidak ada prototipe sebelumnya untuk %q+D"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -59691,23 +59715,23 @@ msgstr "penunjuk tidak diijinkan sebagai nilai case"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr "array dengan panjang bervariabel %qs digunakan"
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
@@ -59729,77 +59753,77 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD bukan sebuah fungsi template"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "taking address of an immediate function %qD"
 msgstr "penggunaan tidak valid dari anggota fungsi %qD bukan statis"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "ukuran dari array %qD bukan sebuah integral konstan-ekspresi"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will always evaluate as %<true%>"
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "alamat dari %qD akan selalu dievaluasi sebagai %<true%>"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes applied to %qT after definition"
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "mengabaikan atribut yang diaplikasikan ke %qT setelah definisi"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "pack expansion of %qE attribute"
 msgstr "argumen dari atribut %qs tidak valid"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 #| msgid "%Hparse error in template argument list"
 msgid "use fold expression in the attribute argument instead"
 msgstr "%Hparse error dalam daftar argumen template"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD bukan sebuah tipe"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class type"
 msgid "%qD is not a class type"
 msgstr "%qT bukan sebuah tipe kelas"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qE does not have class type"
 msgid "%qD does not have %<const char *%> type"
 msgstr "%H%qE tidak memiliki tipe kelas"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qE does not have class type"
 msgid "%qD does not have integral type"
 msgstr "%H%qE tidak memiliki tipe kelas"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -59852,7 +59876,7 @@ msgstr "inisialisasi dari referensi bukan const dari tipe %qT dari sebuah tipe s
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "konversi dari %qT ke %qT mengabaikan kualifikasi"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "casting %qT ke %qT tidak medereferensi penunjuk"
@@ -60283,7 +60307,7 @@ msgstr "dari deklarasi sebelumnya %q+F"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "deklarasi friend %qD dalam kelas lokal tanpa deklarasi sebelumnya"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous declaration %qD"
@@ -60448,8 +60472,8 @@ msgstr "deklarasi sebelumnya bukan fungsi %q+#D"
 msgid "%q#D previously defined here"
 msgstr "%q+#D sebelumnya didefinisikan disini"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously defined here"
 msgid "%q#D previously declared here"
@@ -60533,59 +60557,41 @@ msgstr "argumen baku diberikan untuk parameter %d dari %q#D"
 msgid "previous specification in %q#D here"
 msgstr "setelah spesifikasi sebelumnya dalam %q+#D"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-#| msgid "declaration of namespace %qD conflicts with"
-msgid "declaration %qD conflicts with builtin"
-msgstr "deklarasi dari namespace %qD konflik dengan"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-#| msgid "declaration of namespace %qD conflicts with"
-msgid "declaration %qD conflicts with import"
-msgstr "deklarasi dari namespace %qD konflik dengan"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-#| msgid "previous declaration %q+#D here"
-msgid "import declared %q#D here"
-msgstr "deklarasi sebelumnya %q+#D disini"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting exporting for declaration %qD"
 msgstr "konflik deklarasi %q#D"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, gcc-internal-format
 msgid "previously declared here without exporting"
 msgstr ""
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %q+D was here"
 msgid "previous definition of %qD here"
 msgstr "definisi sebelumnya dari %q+D ada disini"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+D was here"
 msgid "previous declaration of %qD here"
 msgstr "deklarasi sebelumnya dari %q+D ada disini"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 #| msgid "function declared %<noreturn%> has a %<return%> statement"
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "fungsi dideklarasikan %<noreturn%> memiliki sebuah pernyataan %<return%>"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "deklarasi redundansi dari %qD dalam lingkup sama"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 #| msgid "deleted definition of %qD"
 msgid "deleted definition of %qD is not first declaration"
@@ -60599,50 +60605,50 @@ msgstr "definisi terhapus dari %qD"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "spesisialisasi eksplisit dari %qD setelah penggunaan pertama"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D: visibility attribute ignored because it"
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%q+D: atribut visibility diabaikan karenanya"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %q#T"
 msgid "redefinition of %q#D"
 msgstr "redefinisi dari %q#T"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D conflicts with previous using declaration %q#D"
 msgid "%qD conflicts with used function"
 msgstr "%q#D konflik dengan deklarasi sebelumnya menggunakan %q#D"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not declared in %qD"
 msgid "%q#D not declared in class"
 msgstr "%qD tidak dideklarasikan dalam %qD"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, fuzzy, gcc-internal-format
 #| msgid "%qs redeclared with conflicting %qs attributes"
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%qs redeklarasi konflik dengan atribut %qs"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, fuzzy, gcc-internal-format
 #| msgid "%qs redeclared with conflicting %qs attributes"
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%qs redeklarasi konflik dengan atribut %qs"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -60650,812 +60656,812 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot have default arguments"
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "%qD tidak dapat memiliki argumen baku"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, fuzzy, gcc-internal-format
 #| msgid "thread-local declaration of %q+D follows non-thread-local declaration"
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "thread-local deklarasi dari %q+D mengikuti deklarasi bukan-thread-lokal"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, fuzzy, gcc-internal-format
 #| msgid "non-thread-local declaration of %q+D follows thread-local declaration"
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "non-thread-local deklarasi dari %q+D mengikuti deklarasi thread-local"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D"
 msgid "redeclaration of %q#D"
 msgstr "deklarasi dari %q#D"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 #| msgid "redundant redeclaration of %qD in same scope"
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "deklarasi redundansi dari %qD dalam lingkup sama"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, gcc-internal-format
 msgid "previous label"
 msgstr ""
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "lompat ke label %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "lompat ke case label"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  dari sini"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  keluar OpenMP structured block"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 #| msgid "  crosses initialization of %q+#D"
 msgid "  crosses initialization of %q#D"
 msgstr "  menyilangi inisialisasi dari %q+#D"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, fuzzy, gcc-internal-format
 #| msgid "  enters try block"
 msgid "  enters %<try%> block"
 msgstr "  memasuki blok percobaan"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "  enters catch block"
 msgid "  enters %<catch%> block"
 msgstr "  mamasuki blok penangkapan"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  memasuki blok terstruktur OpenMP"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 #| msgid "jump into statement expression"
 msgid "  enters statement expression"
 msgstr "melompat kedalam pernyataan ekspresi"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "  does not destroy %qD"
 msgstr "%s tidak mendukung %s"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr ""
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 #| msgid "  skips initialization of %q+#D"
 msgid "  skips initialization of %q#D"
 msgstr "  melewati inisialisasi dari %q+#D"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "%qD used without template arguments"
 msgstr "%qD digunakan tanpa parameter template"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "%qD bukan sebuah template fungsi"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T bukan sebuah kelas"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "tidak ada tempat kelas yang bernama %q#T dalam %q#T"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, fuzzy, gcc-internal-format
 #| msgid "no class template named %q#T in %q#T"
 msgid "no type named %q#T in %q#T"
 msgstr "tidak ada tempat kelas yang bernama %q#T dalam %q#T"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from %qT to %qT is ambiguous"
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "konversi dari %qT ke %qT adalah ambigu"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%> nama %q#T, yang bukan sebuah class template"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 #| msgid "%<typename %T::%D%> names %q#T, which is not a type"
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%> nama %q#T, yang bukan sebuah tipe"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters do not match template"
 msgid "template parameters do not match template %qD"
 msgstr "parameter template tidak cocok dengan template"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a power of 2"
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "alignmen yang diminta bukan kelipatan dari 2"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D invalid; an anonymous union can only have non-static data members"
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q+#D tidak valid; sebuah anonymous union hanya dapat mempunnya anggota data tidak statis"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous struct not inside named type"
 msgid "anonymous struct with base classes"
 msgstr "anonymous struct tidak didalam tipe bernama"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "anggota %q+#D dengan konstruktor tidak diijinkan dalam kumpulan anonymous"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "anggota %q+#D dengan desktruktor tidak diijinkan dalam kumpulan anoymous"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "anggota %q+#D dengan operator penempatan salin tidak diperbolehkan dalam kumpulan anonymous"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q+#T"
 msgid "attribute ignored in declaration of %q#T"
 msgstr "atribut diabaikan dalam deklarasi dari %q+#T"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, fuzzy, gcc-internal-format
 #| msgid "attribute for %q+#T must follow the %qs keyword"
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "atribut untuk %q+#T harus mengikuti kata kunci %qs"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "multiple tipe dalam satu deklarasi"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "redeklarasi dari C++ tipe bawaan %qT"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "%qs hanya dapat dispesifikasikan untuk fungsi"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "hilang nama-tipe dalam typedef-deklarasi"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO C++ menghambat struct anonymous"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<inline%> can only be specified for functions"
 msgstr "%qs hanya dapat dispesifikasikan untuk fungsi"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<virtual%> can only be specified for functions"
 msgstr "%qs hanya dapat dispesifikasikan untuk fungsi"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> hanya dapat dispesifikasikan didalam sebuah kelas"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "%<explicit%> hanya dapat dispesifikasikan untuk konstruktor"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "sebuah kelas penyimpanan hanya dapat dispesifikasikan untuk objek dan fungsi"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "kualifier hanya dapat dispesifikasikan untuk objek dan fungsi"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "kualifier hanya dapat dispesifikasikan untuk objek dan fungsi"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "kualifier hanya dapat dispesifikasikan untuk objek dan fungsi"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, fuzzy, gcc-internal-format
 #| msgid "a storage class can only be specified for objects and functions"
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "sebuah kelas penyimpanan hanya dapat dispesifikasikan untuk objek dan fungsi"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "%<typedef%> telah diabaikan dalam deklarasi ini"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "%qs cannot be used for type declarations"
 msgstr "%qE tidak dapat digunakan sebagai sebuah fungsi"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 #| msgid "attributes ignored on template instantiation"
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "atribut diabaikan di template instantiation"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "%qE atribut hanya dapat diaplikasikan ke definisi class"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "mengabaikan atribut yang diaplikasikan ke tipe kelas %qT diluar dari definisi"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr "mengabaikan atribut yang diaplikasikan ke tipe dependen %qT tanpa sebuah deklarasi yang berasosiasi"
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 #| msgid "typedef %qD is initialized (use decltype instead)"
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD diinisialisasi (lebih baik gunakan decltype)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "deklarasi dari %q#D memiliki %<extern%> dan terinisialisasi"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "definisi dari %q#D ditandai %<dllimport%>"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D is not a non-static data member of %qT"
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q#D bukan sebuah anggota data bukan-statis dari %qT"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "non-member-template declaration of %qD"
 msgstr "template deklarasi dari %q#D"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 #| msgid "invalid member template declaration %qD"
 msgid "does not match member template declaration here"
 msgstr "deklarasi anggota template %qD tidak valid"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO C++ tidak mengijinkan %<%T::%D%> untuk didefinisikan sebagai %<%T::%D%>"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "duplikasi inisialisasi dari %qD"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "deklarasi dari %q#D diluar dari kelas bukan sebuah definisi"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "variabel %q#D memiliki penginisialisasi tetapi tipe tidak lengkap"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "elemen dari array %q#D memiliki tipe tidak lengkap"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "kumpulan %q#D memiliki tipe tidak lengkap dan tidak dapat didefinisikan"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD dideklarasikan sebagai referensi tetapi tidak terinisialisasi"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "nama digunakan dalam sebuah gaya GNU diperuntukan penginisialisasi untuk sebuah array"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "nama %qD digunakan dalam sebuah gaya GNU didesign penginisialisasi untuk sebuah array"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "bukan trivial designated penginisialisasi tidak didukung"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "ukuran dari array %qD bukan sebuah integral konstan-ekspresi"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "penginisialisasi gagal untuk menentukan ukuran dari %qD"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "ukuran array hilang dalam %qD"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "array berukuran-nol %qD"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, fuzzy, gcc-internal-format
 #| msgid "storage size of %q+D isn%'t known"
 msgid "storage size of %qD isn%'t known"
 msgstr "ukuran penyimpanan dari %q+D tidak diketahui"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, fuzzy, gcc-internal-format
 #| msgid "storage size of %q+D isn%'t constant"
 msgid "storage size of %qD isn%'t constant"
 msgstr "ukuran penyimpanan dari %q+D bukan konstant"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, fuzzy, gcc-internal-format
 #| msgid "sorry: semantics of inline function static data %q+#D are wrong (you'll wind up with multiple copies)"
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "maaf: semantik dari fungsi inline data statis %q+#D salah (anda akan berputar putar dengan beberap salinan)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, fuzzy, gcc-internal-format
 #| msgid "sorry: semantics of inline function static data %q+#D are wrong (you'll wind up with multiple copies)"
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "maaf: semantik dari fungsi inline data statis %q+#D salah (anda akan berputar putar dengan beberap salinan)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, fuzzy, gcc-internal-format
 #| msgid "%J  you can work around this by removing the initializer"
 msgid "you can work around this by removing the initializer"
 msgstr "%J  anda dapat memperbaiki ini dengan menghapus penginisialisasi"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized const %qD"
 msgid "uninitialized %<const %D%>"
 msgstr "tidak terinisialisasi const %qD"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, fuzzy, gcc-internal-format
 #| msgid "register variable %qD used in nested function"
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "variabel register %qD digunakan dalam fungsi nested"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, fuzzy, gcc-internal-format
 #| msgid "%Juninitialized member %qD with %<const%> type %qT"
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "%J anggota tidak terinisialisasi %qD dengan %<const%> tipe %qT"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, fuzzy, gcc-internal-format
 #| msgid "type %qs has a user-defined constructor"
 msgid "%q#T has no user-provided default constructor"
 msgstr "tipe %qs memiliki sebuah konstruktor yang didefinisikan pengguna"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr ""
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "tipe tidak valid %qT sebagai penginisialisasi untuk sebuah vektor dari tipe %qT"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "penginisialisasi untuk %qT harus berupa kurung dilingkupi"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, fuzzy, gcc-internal-format
 #| msgid "name %qD used in a GNU-style designated initializer for an array"
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "nama %qD digunakan dalam sebuah gaya GNU didesign penginisialisasi untuk sebuah array"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "permintaan untuk anggota %qD adalah ambigu"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT memiliki anggota data tidak statis bernama %qD"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD bukan sebuah anggota dari %qT"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer for %q#D"
 msgstr "penginisialisasi tidak valid"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr ""
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "terlalu banyak penginisialisasi untuk %qT"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "kurung disekitar penginisialisasi skalar untuk tipe %qT"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer for type %qT"
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "kurung disekitar penginisialisasi skalar untuk tipe %qT"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "hilang kurung diantara penginisialisasi untuk %qT"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %P has incomplete type %qT"
 msgid "structured binding has incomplete type %qT"
 msgstr "parameter %P memiliki tipe tidak lengkap %qT"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "elemen dari array %q#T memiliki tipe tidak lengkap"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "ukuran-variabel compound literals"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has incomplete type"
 msgid "%q#D has incomplete type"
 msgstr "%qD memiliki tipe tidak lengkap"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "objek skalar %qD membutuhkan satu elemen dalam penginisialisasi"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "dalam C++98 %qD harus diinisialisasi dengan konstruktor, bukan dengan %<{...}%>"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "array %qD diinisialisasi dengan tanda kurung string literal %qE"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "penginisialisasi tidak valid untuk anggota statis  dengan konstruktor"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "ISO C++ melarang dalam kelas inisialisasi dari anggota statis bukan const %qD"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "ISO C++ melarang dalam kelas inisialisasi dari anggota statis bukan const %qD"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(diluar dari kelas inisialisasi dibutuhkan)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD is initialized"
 msgid "reference %qD is initialized with itself"
 msgstr "parameter %qD dinisialisasi"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not in a declaration"
 msgid "could not find variant declaration"
 msgstr "%<[*]%> tidak dalam sebuah deklarasi"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "%<declare variant%> on constructor %qD"
 msgstr "redeklarasi dari enumerator %q+D"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "%<declare variant%> on destructor %qD"
 msgstr "redeklarasi dari enumerator %q+D"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template %q#D"
 msgid "%<declare variant%> on defaulted %qD"
 msgstr "deklarasi dari template %q#D"
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template %q#D"
 msgid "%<declare variant%> on deleted %qD"
 msgstr "deklarasi dari template %q#D"
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%<declare variant%> on virtual %qD"
 msgstr "%qD dideklarasikan sebagai sebuah %<virtual%> %s"
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "penempatan (tidak terinisialisasi) dalam deklarasi"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not allow designated initializers"
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++ tidak mengijinkan designated penginisialisasi"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for %qs"
 msgid "%<register%> storage class specifier used"
 msgstr "kelas penyimpanan dispesifikasikan untuk %qs"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "deklarasi dari %q#D tidak memiliki penginisialisasi"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr ""
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "tipe kembali %q#T tidak lengkap"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "variable concept has no initializer"
 msgstr "objek berukuran-variabel tidak boleh diinisialisasi"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "membayangi tipe deklarasi sebelumnya dari %q#D"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr ""
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "fungsi %q#D telah dinisialisasi seperti sebuah variabel"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, fuzzy, gcc-internal-format
 #| msgid "  cannot use obsolete binding at %q+D because it has a destructor"
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "  tidak dapat menggunakan obsolete binding di %q+D karena ini memiliki sebuah desktruktor"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is an inaccessible base of %qT"
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "%qT adalah sebuah dasar tidak dapat diakses dari %qT"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 #| msgid "cannot increment a pointer to incomplete type %qT"
 msgid "structured binding refers to incomplete type %qT"
 msgstr "tidak dapat meningkatkan sebuah penunjuk ke tipe tidak lengkap %qT"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 forbids variable length array %qs"
 msgid "cannot decompose variable length array %qT"
 msgstr "ISO C90 melarang array dengan panjang bervariabel %qs"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%Hinitializer provided for function"
 msgid "%u name provided for structured binding"
@@ -61463,1940 +61469,1940 @@ msgid_plural "%u names provided for structured binding"
 msgstr[0] "%Hpenginisialisasi disediakan untuk fungsi"
 msgstr[1] "%Hpenginisialisasi disediakan untuk fungsi"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to %q#T"
 msgid "cannot decompose variable length vector %qT"
 msgstr "tidak dapat mendeklarasikan penunjuk ke %q#T"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "ukuran dari array bukan sebuah integral konstan ekspresi"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, fuzzy, gcc-internal-format
 #| msgid "initialization string truncated to match variable at %L"
 msgid "in initialization of structured binding variable %qD"
 msgstr "inisialisasi dari string terpotong untuk mencocokan dengan variabel di %L"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %s to qualified function type %qT"
 msgid "cannot decompose union type %qT"
 msgstr "tidak dapat mendeklarasikan %s untuk fungsi yang dikualifikasikan dengan tipe %qT"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "membuat penunjuk ke anggota dari tipe bukan kelas %qT"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "cannot decompose address"
 msgid "cannot decompose lambda closure type %qT"
 msgstr "tidak dapat menguraikan alamat"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "cannot increment a pointer to incomplete type %qT"
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "tidak dapat meningkatkan sebuah penunjuk ke tipe tidak lengkap %qT"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to static data member %qD"
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "tidak dapat menjalankan %<offsetof%> ke anggota data statis %qD"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr ""
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, fuzzy, gcc-internal-format
 #| msgid "initializer fails to determine size of %qD"
 msgid "initializer fails to determine size of %qT"
 msgstr "penginisialisasi gagal untuk menentukan ukuran dari %qD"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "array size missing in %qD"
 msgid "array size missing in %qT"
 msgstr "ukuran array hilang dalam %qD"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 #| msgid "zero-size array %qD"
 msgid "zero-size array %qT"
 msgstr "array berukuran-nol %qD"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "desktruktor untuk alien kelas %qT tidak dapat berupa sebuah anggota"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "konstruktor untuk alien kelas %qT tidak dapt berupa sebuah anggota"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD dideklarasikan sebagai sebuah %<virtual%> %s"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, fuzzy, gcc-internal-format
 #| msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "%<const%> dan %<volatile%> fungsi penspesifikasi di %qD tidak valid dalam %s deklarasi"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD dideklarasikan sebagai sebuah %<virtual%> %s"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as an %<inline%> %s"
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD dideklarasikan sebagai sebuah %<inline%> %s"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, fuzzy, gcc-internal-format
 #| msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "%<const%> dan %<volatile%> fungsi penspesifikasi di %qD tidak valid dalam %s deklarasi"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD dideklarasikan sebagai sebuah %<virtual%> %s"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as an %<inline%> %s"
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD dideklarasikan sebagai sebuah %<inline%> %s"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, fuzzy, gcc-internal-format
 #| msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "%<const%> dan %<volatile%> fungsi penspesifikasi di %qD tidak valid dalam %s deklarasi"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD dideklarasikan sebagai sebuah %<virtual%> %s"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as an %<inline%> %s"
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD dideklarasikan sebagai sebuah %<inline%> %s"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, fuzzy, gcc-internal-format
 #| msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "%<const%> dan %<volatile%> fungsi penspesifikasi di %qD tidak valid dalam %s deklarasi"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D dideklarasikan sebagai sebuah friend"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D dideklarasikan dengan spesifikasi eksepsi"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "definisi dari %qD tidak dalam namespace melingkupi %qT"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "anggota fungsi statis %q#D dideklarasikan dengan tipe pengkualifikasi"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a non-parameter"
 msgid "concept %q#D declared with function parameters"
 msgstr "%q+D dideklarasikan sebagai sebuah bukan-parameter"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D declared with void type"
 msgid "concept %q#D declared with a deduced return type"
 msgstr "parameter %q+D dideklarasikan dengan tipe void"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, fuzzy, gcc-internal-format
 #| msgid "Java method %qD has non-Java return type %qT"
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "metoda Java %qD memiliki tipe kembali %qT bukan Java"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "concept %qD has no definition"
 msgstr "deklarasi dari %qD sebagai bukan fungsi"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "a function concept cannot be constrained"
 msgstr "fungsi virtual tidak dapat menjadi friend"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template function"
 msgid "constraints on a non-templated function"
 msgstr "%qD bukan sebuah fungsi template"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "deklarasi friend tidak dalam definisi kelas"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "mendifinisikan eksplisit spesialisasi %qD dalam deklarasi friend"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "penggunaan tidak valid dari template-id %qD dalam deklarasi dari primary template"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "argumen baku tidak diijinkan dalam deklarasi dari spesialisasi template friend %qD"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "%<inline%> tidak diijinkan dalam deklarasi dari spesialisasi template friend %qD"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D outside of class is not definition"
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "deklarasi dari %q#D diluar dari kelas bukan sebuah definisi"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "tidak dapat mendeklarasikan %<::main%> untuk menjadi sebuah template"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "tidak dapat mendeklarasikan %<::main%> untuk menjadi inline"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be static"
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "tidak dapat mendeklarasikan %<::main%> untuk menjadi statis"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "tidak dapat mendeklarasikan %<::main%> untuk menjadi statis"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "fungsi bukan-anggota %qD tidak dapat memiliki cv-kualifier"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "anggota fungsi statis %qD tidak dapat memiliki cv kualifier"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "anggota fungsi statis %qD tidak dapat memiliki cv kualifier"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 #| msgid "non-member function %qD cannot have cv-qualifier"
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "fungsi bukan-anggota %qD tidak dapat memiliki cv-kualifier"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have cv-qualifier"
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "anggota fungsi statis %qD tidak dapat memiliki cv kualifier"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "anggota fungsi statis %qD tidak dapat memiliki cv kualifier"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "explicit object parameter declared here"
 msgstr "tipe parameter template %qT dideklarasikan %<friend%>"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr ""
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, fuzzy, gcc-internal-format
 #| msgid "Binding at %C must have the same access as already defined binding '%s'"
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "Binding di %C harus memiliki akses sama seperti telah didefinisikan binding '%s'"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "deduction guide %qD must not have a function body"
 msgstr "deklarasi dari %qD sebagai bukan fungsi"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, fuzzy, gcc-internal-format
 #| msgid "%Htemplate with C linkage"
 msgid "literal operator with C linkage"
 msgstr "%Htemplate dengan C linkage"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, fuzzy, gcc-internal-format
 #| msgid "invalid option argument %qs"
 msgid "%qD has invalid argument list"
 msgstr "pilihan argumen %qs tidak valid"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a non-member function"
 msgstr "%qD harus berupa sebuah anggota fungsi tidak statis"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> harus kembali %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "definisi dari secara implisit dideklarasikan %qD"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, fuzzy, gcc-internal-format
 #| msgid "definition of implicitly-declared %qD"
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "definisi dari secara implisit dideklarasikan %qD"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously defined here"
 msgid "%q#D explicitly defaulted here"
 msgstr "%q+#D sebelumnya didefinisikan disini"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "bukan %q#D anggota fungsi dideklarasikan dalam kelas %qT"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be a template"
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "tidak dapat mendeklarasikan %<::main%> untuk menjadi sebuah template"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 #| msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "variabel otomatis %qE tidak dapat berupa %<threadprivate%>"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 #| msgid "strong using only meaningful at namespace scope"
 msgid "concept must be defined at namespace scope"
 msgstr "strong using hanya berarti di lingkup namespace"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "a variable concept cannot be constrained"
 msgstr "objek berukuran-variabel tidak boleh diinisialisasi"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "tidak valid dalam kelas penginisialisasian dari anggota data statis dari tipe bukan integral %qT"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "tidak valid dalam kelas penginisialisasian dari anggota data statis dari tipe bukan integral %qT"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "tidak valid dalam kelas penginisialisasian dari anggota data statis dari tipe bukan integral %qT"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "tidak valid dalam kelas penginisialisasian dari anggota data statis dari tipe bukan integral %qT"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ melarang dalam kelas inisialisasi dari anggota statis bukan const %qD"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ melarang inisialisasi dari anggota constant %qD dari bukan integral tipe %qT"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "ukuran dari array %qD memiliki tipe bukan integral %qT"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "ukuran dari array memiliki tipe %qT bukan integral"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "ukuran dari array %qD bukan sebuah integral konstan-ekspresi"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "ukuran dari array bukan sebuah integral konstan ekspresi"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C++ melarang array berukuran-nol %qD"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ melarang array berukuran-nol"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ melarang array dengan variabel panjang %qD"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++ melarang array dengan variabel panjang"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "array dengan panjang bervariabel  %qD digunakan"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "array dengan panjang bervariabel digunakan"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "overflow dalam dimensi array"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr ""
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member reference type %qT"
 msgid "creating array of template placeholder type %qT"
 msgstr "membuat penunjuk ke anggota referensi tipe %qT"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of voids"
 msgid "declaration of %qD as array of void"
 msgstr "deklarasi dari %qs sebagai dari voids"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of %qT"
 msgid "creating array of void"
 msgstr "membuat array dari %qT"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "declaration of %qD as array of functions"
 msgstr "deklarasi dari %qs sebagai array dari fungsi"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of %qT"
 msgid "creating array of functions"
 msgstr "membuat array dari %qT"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "declaration of %qD as array of references"
 msgstr "deklarasi dari %qs sebagai array dari fungsi"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of %qT"
 msgid "creating array of references"
 msgstr "membuat array dari %qT"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "declaration of %qD as array of function members"
 msgstr "deklarasi dari %qs sebagai array dari fungsi"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "creating array of function members"
 msgstr "deklarasi dari %qs sebagai array dari fungsi"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "deklarasi dari %qD sebagai array multidimensi harus memiliki batasan untuk seluruh dimensi kecuali yang pertama"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "array multidimensi harus memiliki batasan untuk seluruh dimensi kecuali yang pertama"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 #| msgid "variable length array is used"
 msgid "variable-length array of %<auto%>"
 msgstr "array dengan panjang bervariabel digunakan"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "spesifikasi tipe kembali untuk konstruktor tidak valid"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "kualifier tidak diijinkan dalam deklarasi dari %<operator %T%>"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "spesifikasi tipe kembali untuk desktruktor tidak valid"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "kualifier tidak diijinkan dalam deklarasi dari %<operator %T%>"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "tipe kembali yang dispesifikasikan untuk %<operator %T%>"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "kualifier tidak diijinkan dalam deklarasi dari %<operator %T%>"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 #| msgid "return type specification for destructor invalid"
 msgid "return type specified for deduction guide"
 msgstr "spesifikasi tipe kembali untuk desktruktor tidak valid"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "kualifier tidak diijinkan dalam deklarasi dari %<operator %T%>"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 #| msgid "too many template parameter lists in declaration of %qD"
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "terlalu banyak daftar parameter template dalam deklarasi dari %qD"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting specifiers in declaration of %qs"
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "penspesifikasi konflik dalam deklarasi dari %qs"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "variabel tidak bernama atau field dideklarasikan void"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "variabel atau field dideklarasikan void"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "%<inline%> penspesifikasi tidak valid untuk fungsi %qs dideklarasikan diluar dari lingkup global"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "desktruktor mungkin berupa cv-kualified"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "penggunaan tidak valid dari nama kualifikasi %<::%D%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "penggunaan tidak valid dari nama kualifikasi %<%T::%D%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "penggunaan tidak valid dari nama kualifikasi %<%D::%D%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%q#T is not a class or namespace"
 msgstr "%qT bukan sebuah class atau namespace"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "declaration of %qE as non-function"
 msgstr "deklarasi dari %qD sebagai bukan fungsi"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-member"
 msgid "declaration of %qE as non-member"
 msgstr "deklarasi dari %qD sebagai bukan anggota"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "id pendeklarasi hilang; menggunaka kata reserved %qD"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "definisi fungsi tidak mendeklarasikan parameter"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "deklarasi dari %qD sebagai bukan fungsi"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as %s"
 msgid "declaration of %qD as %<typedef%>"
 msgstr "deklarasi dari %qD sebagai %s"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of %qD as parameter"
 msgstr "deklarasi dari %q+D membayangi sebuah parameter"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr ""
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 #| msgid "missing type-name in typedef-declaration"
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "hilang nama-tipe dalam typedef-deklarasi"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "dua atau lebih tipe data dalam deklarasi dari %qs"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C tidak mendukung plain %<complex%> yang berarti %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ melarang deklarasi dari %qs dengan tidak ada tipe"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_saveregs not supported by this target"
 msgid "%<__int%d%> is not supported by this target"
 msgstr "__builtin_saveregs tidak didukung oleh target ini"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ 1998 does not support %<long long%>"
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ 1998 tidak mendukung %<long long%>"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 #| msgid "%<signed%> and %<unsigned%> specified together for %qs"
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> dan %<unsigned%> dispesifikasikan bersama untuk %qs"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 #| msgid "%<long%> and %<short%> specified together for %qs"
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> dan %<short%> dispesifikasikan bersama untuk %qs"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 #| msgid "no class name specified with %qs"
 msgid "%qs specified with %qT"
 msgstr "tidak ada nama class dispesifikasikan dengan %qs"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr ""
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 #| msgid "%qs not specified in enclosing parallel"
 msgid "%qs specified with %<decltype%>"
 msgstr "%qs tidak dispesifikan dalam parallel yang melingkupi"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qs specified with %<typeof%>"
 msgstr "%<__thread%> digunakan dengan %<typedef%>"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "kompleks tidak valid untuk %qs"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "anggota %qD tidak dapat dideklarasikan baik virtual dan statis"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "anggota %qD tidak dapat dideklarasikan baik virtual dan statis"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "type deklarasi tidak valid dalam parameter deklarasi"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for parameter %qs"
 msgid "storage class specified for template parameter %qs"
 msgstr "class penyimpanan dispesifikasikan untuk parameter %qs"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "class penyimpanan dispesifikasikan untuk parameter %qs"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters cannot be friends"
 msgid "a parameter cannot be declared %qs"
 msgstr "parameter template tidak dapat berupa friends"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%> diluar deklarasi kelas"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q+#T"
 msgid "structured binding declaration cannot be %qs"
 msgstr "atribut diabaikan dalam deklarasi dari %q+#T"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q+#T"
 msgid "structured binding declaration cannot have type %qT"
 msgstr "atribut diabaikan dalam deklarasi dari %q+#T"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr ""
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "multiple storage kelas dalam deklarasi dari %qs"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "kelas penyimpanan dispesifikasikan untuk %qs"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "fungsi nested %qs dideklarasikan %<extern%>"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "top-level deklarasi dari %qs menspesifikasikan %<auto%>"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "lingkup-fungsi %qs secara implisit auto dan dideklarasikan %<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "spesifikasi kelas penyimpanan tidak valid dalam deklarasi fungsi friend"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored"
 msgid "attribute ignored"
 msgstr "%qE atribut diabaikan"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 #| msgid "multiple storage classes in declaration of %qs"
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "multiple storage kelas dalam deklarasi dari %qs"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, fuzzy, gcc-internal-format
 #| msgid "Expected left parenthesis"
 msgid "remove parentheses"
 msgstr "Diduga parenthesis kiri"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L cannot have an initializer"
 msgid "a function type cannot have an explicit object parameter"
 msgstr "Fungsi '%s' di %L tidak dapat memiliki sebuah penginisialisasi"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "penunjuk ke anggota fungsi digunakan dalam aritmetik"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr ""
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr ""
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr ""
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function uses %<auto%> type specifier without late return type"
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr "%qs fungsi menggunakan penspesifikasi tipe %<auto%> tanpa tipe kembali late"
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual function cannot have deduced return type"
 msgstr "fungsi virtual tidak dapat menjadi friend"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function with late return type has %qT as its type rather than plain %<auto%>"
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr "%qs fungsi dengan tipe kembali late memiliki %qT sebagai tipenya daripada plain %<auto%>"
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function with late return type has %qT as its type rather than plain %<auto%>"
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr "%qs fungsi dengan tipe kembali late memiliki %qT sebagai tipenya daripada plain %<auto%>"
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<auto%>"
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "penggunaan tidak valid dari %<auto%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "deduced class type %qD in function return type"
 msgstr "tipe pengkualifikasi diabaikan di tipe kembali fungsi"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function with late return type not declared with %<auto%> type specifier"
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr "%qs fungsi dengan tipe kembali late tidak dideklarasikan dengan penspesifikasi tipe %<auto%>"
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs dideklarasikan sebagai fungsi yang mengembalikan sebuah fungsi"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs dideklarasikan sebagai fungsi yang mengembalikan sebuah array"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, fuzzy, gcc-internal-format
 #| msgid "%<noreturn%> function returns non-void value"
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "%<noreturn%> fungsi mengembalikan nilai bukan-void"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "desktruktor tidak dapat berupa anggota statis fungsi"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, fuzzy, gcc-internal-format
 #| msgid "destructor cannot be static member function"
 msgid "constructor cannot be static member function"
 msgstr "desktruktor tidak dapat berupa anggota statis fungsi"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "desktruktor mungkin berupa cv-kualified"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "constructors may not be cv-qualified"
 msgstr "desktruktor mungkin berupa cv-kualified"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "destructors may not be ref-qualified"
 msgstr "desktruktor mungkin berupa cv-kualified"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "constructors may not be ref-qualified"
 msgstr "desktruktor mungkin berupa cv-kualified"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "konstruktor tidak dapat dideklarasikan virtual"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "fungsi virtual tidak dapat menjadi friend"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "deklarasi friend tidak dalam definisi kelas"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 #| msgid "can't define friend function %qs in a local class definition"
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "tidak dapat mendefinisikan fungsi friend %qs dalam sebuah definisi lokal kelas"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 #| msgid "non-member function %qD cannot have cv-qualifier"
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "fungsi bukan-anggota %qD tidak dapat memiliki cv-kualifier"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have cv-qualifier"
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "anggota fungsi statis %qD tidak dapat memiliki cv kualifier"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD harus berupa sebuah anggota fungsi tidak statis"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "destruktor mungkin tidak memiliki parameter"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "tidak dapat mendeklarasikan penunjuk ke %q#T"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "tidak dapat mendeklarasikan referensi ke %q#T"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "tidak dapat mendeklarasikan penunjuk ke %q#T anggota"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %s to qualified function type %qT"
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "tidak dapat mendeklarasikan %s untuk fungsi yang dikualifikasikan dengan tipe %qT"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %s to qualified function type %qT"
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "tidak dapat mendeklarasikan %s untuk fungsi yang dikualifikasikan dengan tipe %qT"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr "tidak dapat mendeklarasikan referensi ke %q#T, yang bukan sebuah typedef atau sebuah argumen tipe template"
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "template-id %qD digunakan sebagai sebuah pendeklarasi"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "anggota fungsi secara implisit friends dari kelasnya"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "ekstra kualifikasi %<%T::%> di anggota %qs"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 #| msgid "cannot define member function %<%T::%s%> within %<%T%>"
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "tidak dapat mendefinisikan anggota fungsi %<%T::%s%> dalam %<%T%>"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare member %<%T::%s%> within %qT"
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "tidak dapat mendeklarasikan anggota %<%T::%s%> dalam %qT"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "tidak dapat mendeklarasikan anggota %<%T::%s%> dalam %qT"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "bukan parameter %qs tidak dapat menjadi parameter pack"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "anggota member tidak boleh memiliki tipe variabel termodifikasi %qT"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "parameter mungkin tidak memiliki tipe variabel termodifikasi %qT"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 #| msgid "%<virtual%> outside class declaration"
 msgid "%<explicit%> outside class declaration"
 msgstr "%<virtual%> diluar deklarasi kelas"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> in empty declaration"
 msgid "%<explicit%> in friend declaration"
 msgstr "%<inline%> dalam deklarasi kosong"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, fuzzy, gcc-internal-format
 #| msgid "only declarations of constructors can be %<explicit%>"
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "hanya deklarasi dari konstruktor yang dapan berupa %<explicit%>"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "bukan-anggota %qs tidak dapat dideklarasikan %<mutable%>"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "anggota bukan-objek %qs tidak dapat dideklarasikan %<mutable%>"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "fungsi %qs tidak dapat dideklarasikan %<mutable%>"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "static %qs cannot be declared %<mutable%>"
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "statis %qs tidak dapat dideklarasikan %<mutable%>"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "const %qs cannot be declared %<mutable%>"
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "const %qs tidak dapat dideklarasikan %<mutable%>"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, fuzzy, gcc-internal-format
 #| msgid "function %qs cannot be declared %<mutable%>"
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "fungsi %qs tidak dapat dideklarasikan %<mutable%>"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 #| msgid "%Hattributes are not allowed on a function-definition"
 msgid "typedef may not be a function definition"
 msgstr "%Hatribut tidak diijinkan dalam sebuah definisi fungsi"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 #| msgid "destructor cannot be static member function"
 msgid "typedef may not be a member function definition"
 msgstr "desktruktor tidak dapat berupa anggota statis fungsi"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<[*]%> not allowed in other than a declaration"
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%H%<[*]%> tidak diijinkan selain dalam sebuah deklarasi"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, fuzzy, gcc-internal-format
 #| msgid "parameter declared %<auto%>"
 msgid "typedef declared %<auto%>"
 msgstr "parameter dideklarasikan %<auto%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, fuzzy, gcc-internal-format
 #| msgid "%Jtypedef name may not be a nested-name-specifier"
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "%J typedef nama mungkin berupa sebuah nested-name-specifier"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ISO C++ melarang tipe nested %qD dengan nama sama seperti kelas yang melingkupi"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "%<inline%> dispesifikan untuk deklarasi kelas friend"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "parameter template tidak dapat berupa friends"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "deklarasi friend membutuhkan kunci kelas, i.e. %<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "deklarasi friend membutuhkan class-key, i.e. %<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "mencoba untuk membuat kelas %qT sebuah friend dari lingkup global"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "kualifier tidak valid di tipe fungsi bukan anggota"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "deklarasi abstrak %qT digunakan sebagai deklarasi"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of C++ built-in type %qT"
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "redeklarasi dari C++ tipe bawaan %qT"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "tidak dapat menggunakan %<::%> dalam parameter deklarasi"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter %q+D to be of abstract type %qT"
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "tidak dapat mendeklarasikan parameter %q+D untuk menjadi tipe abstrak %qT"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<this%> may not be used in this context"
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "%H%<this%> mungkin tidak digunakan dalam konteks ini"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "parameter dideklarasikan %<auto%>"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid use of template-name %qE without an argument list"
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "%Hpenggunaan tidak vlaid dari nama template %qE tanpa sebuah daftar argumen"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 #| msgid "static member %qD declared %<register%>"
 msgid "non-static data member declared with placeholder %qT"
 msgstr "anggota statis %qD dideklarasikan %<register%>"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids zero-size array %qD"
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C++ melarang array berukuran-nol %qD"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C90 tidak mendukung keanggotaan array fleksibel"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "penggunaan tidak valid dari %<::%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of C function %q#D conflicts with"
 msgid "declaration of function %qD in invalid context"
 msgstr "deklarasi dari C fungsi %q#D konflik dengan"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared virtual inside a union"
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "fungsi %qD dideklarasikan virtual didalam sebuah union"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot be declared virtual, since it is always static"
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD tidak dapat dideklarasikan virtual, karena itu selalu statis"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "diduga nama yang dikualifikasikan dalam deklarasi friend untuk destruktor %qD"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "deklarasi dari %qD sebagai anggota dari %qT"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "a destructor cannot be %qs"
 msgstr "desktruktor mungkin berupa cv-kualified"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "diduga kualifikasi nama dalam deklarasi friend untuk konstruktor %qD"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "a constructor cannot be %<concept%>"
 msgstr "konstruktor tidak dapat dideklarasikan virtual"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 #| msgid "destructor cannot be static member function"
 msgid "a concept cannot be a member function"
 msgstr "desktruktor tidak dapat berupa anggota statis fungsi"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 #| msgid "cannot open %s"
 msgid "%qD cannot be %qs"
 msgstr "tidak dapat membuka %s"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of implicitly-declared special member function"
 msgid "specialization of variable template %qD declared as function"
 msgstr "spesialisasi dari anggota fungsi spesial secara implist dideklarasikan"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 #| msgid "variable or field declared void"
 msgid "variable template declared here"
 msgstr "variabel atau field dideklarasikan void"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 #| msgid "field %qD has incomplete type"
 msgid "field %qD has incomplete type %qT"
 msgstr "field %qD memiliki tipe tidak lengkap"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "nama %qT memiliki tipe tidak lengkap"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE bukan fungsi atau anggota fungsi; tidak dapat dideklarasikan sebagai friend"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is neither function nor member function; cannot be declared friend"
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "%qE bukan fungsi atau anggota fungsi; tidak dapat dideklarasikan sebagai friend"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 #| msgid "static member %qD declared %<register%>"
 msgid "static data member %qE declared %qs"
 msgstr "anggota statis %qD dideklarasikan %<register%>"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member %qD has Java class type"
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "anggota data bukan statis %qD memiliki tipe kelas Java"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 #| msgid "static member %qD declared %<register%>"
 msgid "non-static data member %qE declared %qs"
 msgstr "anggota statis %qD dideklarasikan %<register%>"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "kelas penyimpanan %<auto%> tidak valid untuk fungsi %qs"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "kelas penyimpanan %<register%> tidak valid untuk fungsi %qs"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "kelas penyimpanan %<__thread%> tidak valid untuk fungsi %qs"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 #| msgid "storage class %<__thread%> invalid for function %qs"
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "kelas penyimpanan %<__thread%> tidak valid untuk fungsi %qs"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "%<inline%> penspesifikasi tidak valid untuk fungsi %qs dideklarasikan diluar dari lingkup global"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, fuzzy, gcc-internal-format
 #| msgid "%Han asm-specification is not allowed on a function-definition"
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "%Hsebuah spesifikasi asm tidak diijinkan dalam sebuah definisi fungsi"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, fuzzy, gcc-internal-format
 #| msgid "%<static%> specified invalid for function %qs declared out of global scope"
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "%<static%> dispesifikasikan tidak valid untuk fungsi %qs dideklarasikan diluar lingkup global"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "%<inline%> penspesifikasi tidak valid untuk fungsi %qs dideklarasikan diluar dari lingkup global"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "virtual bukan kelas fungsi %qs"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "%qs didefinisikan dalam sebuah lingkup bukan kelas"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 #| msgid "%qs defined in a non-class scope"
 msgid "%qs declared in a non-class scope"
 msgstr "%qs didefinisikan dalam sebuah lingkup bukan kelas"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "tidak dapat mendeklarasikan anggota fungsi %qD untuk memiliki linkage statis"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "tidak dapat mendeklarasikan fungsi statis didalam fungsi lainnya"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "%<static%> mungkin tidak digunakan ketika mendefinisikan (terbalik untuk deklarasi) sebuah anggota data statis"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "anggota statis %qD dideklarasikan %<register%>"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "tidak dapat secara eksplisit mendeklarasikan anggota %q#D untuk memiliki extern linkage"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "deklarasi dari variabel %<extern%> %q+D dalam %<for> inisial deklarasi loop"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 #| msgid "static %qs cannot be declared %<mutable%>"
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "statis %qs tidak dapat dideklarasikan %<mutable%>"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs diinisialisasi dan dideklarasi %<extern%>"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs keduanya memiliki %<extern> dan penginisialisasi"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 #| msgid "default argument %qE uses local variable %qD"
 msgid "default argument %qE uses %qD"
 msgstr "argumen baku %qE menggunakan variabel lokal %qD"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "argumen baku %qE menggunakan variabel lokal %qD"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specifiers invalid in parameter declarations"
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "penspesifikasi kelas penyimpanan dalam parameter deklarasi"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 #| msgid "cannot use %<::%> in parameter declaration"
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "tidak dapat menggunakan %<::%> dalam parameter deklarasi"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr ""
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "parameter %qD secara tidak valid dideklarasikan tipe metode"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD includes %s to array of unknown bound %qT"
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "parameter %qD includes %s ke array dari ikatan tidak dikenal %qT"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD includes %s to array of unknown bound %qT"
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "parameter %qD includes %s ke array dari ikatan tidak dikenal %qT"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "konstruktor tidak valid; anda mungkin bermaksud %<%T (const %T&)%>"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD mungkin tidak dideklarasikan dalam sebuah namespace"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD tidak boleh dideklarasikan sebagai statis"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a non-static member function"
 msgstr "%qD harus berupa sebuah anggota fungsi tidak statis"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a member function"
 msgstr "%qD harus berupa sebuah anggota fungsi tidak statis"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD harus baik sebuah anggota fungsi tidak statis atau bukan anggota fungsi"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD harus memiliki sebuah argumen dari kelas atau tipe enumerasi"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ prohibits overloading operator ?:"
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ melarang overloading operator ?:"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD tidak boleh memiliki argumen dengan jumlah bervariabel"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either zero or one argument"
 msgid "%qD must have either zero or one argument"
 msgstr "%qD harus mengambil baik nol atau satu argumen"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either one or two arguments"
 msgid "%qD must have either one or two arguments"
 msgstr "%qD harus mengambil baik satu atau dua argumen"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its argument"
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "postfix %qD harus mengambil %<int%> sebagai argumennya"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its second argument"
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "postfix %qD harus mengambil %<int%> sebagai argumen keduanya"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have no arguments"
 msgstr "%qD harus mengambil secara tepat dua argumen"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly one argument"
 msgid "%qD must have exactly one argument"
 msgstr "%qD harus mengambil secara tepat satu argumen"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have exactly two arguments"
 msgstr "%qD harus mengambil secara tepat dua argumen"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD tidak dapat memiliki argumen baku"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "konversi ke %s%s tidak akan pernah menggunakan sebuah tipe operator konversi"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "konversi ke %s%s tidak akan pernah menggunakan sebuah tipe operator konversi"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "konversi ke %s%s tidak akan pernah menggunakan sebuah tipe operator konversi"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "konversi ke %s%s tidak akan pernah menggunakan sebuah tipe operator konversi"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "konversi ke %s%s tidak akan pernah menggunakan sebuah tipe operator konversi"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "definisi-pengguna %qD selalu mengevaluasikan kedua argumen"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "prefix %qD seharusnya mengembalikan %qT"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "postfix %qD seharusnya mengembalikan %qT"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD seharusnya kembali dengan nilai"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "menggunakan parameter tipe template %qT setelah %qs"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous template specialization %qD for %q+D"
 msgid "using alias template specialization %qT after %qs"
 msgstr "spesialisasi template ambigu %qD untuk %q+D"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "menggunakan typedef-name %qD setelah %qs"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D has a previous declaration here"
 msgid "%qD has a previous declaration here"
 msgstr "%q+D telah dideklarasikan sebelumnya disini"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "%qT mereferensikan sebagai %qs"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 #| msgid "%q+T has a previous declaration here"
 msgid "%qT has a previous declaration here"
 msgstr "%q+T telah dideklarasikan sebelumnya disini"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "%qT direferensikan sebagai enum"
@@ -63408,121 +63414,103 @@ msgstr "%qT direferensikan sebagai enum"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "argumen template dibutuhkan untuk %<%s %T%>"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "referensi ke %qD adalah ambigu"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfunction template %qD redeclared as a class template"
 msgid "class template %qD redeclared as non-template"
 msgstr "%Htemplate fungsi %qD redeklarasikan sebagai sebuah template kelas"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD memiliki nama sama seperti kelas yang telah dideklarasikan"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT mungkin bukan sebuah template"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "penggunaan dari enum %q#D tanpa deklarasi sebelumnya"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "redeklarasi dari %qT sebagai bukan-template"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD to be a bit-field type"
-msgid "cannot declare %qD in a different module"
-msgstr "tidak dapat mendeklarasikan %qD untuk menjadi sebuah tipe bit-field"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, fuzzy, gcc-internal-format
-#| msgid "%Jpreviously used here"
-msgid "previously declared here"
-msgstr "%J sebelumnya digunakan disini"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "union turunan %qT tidak valid"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr ""
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct or virtual base of %qT"
 msgid "%qT defined with direct virtual base"
 msgstr "tipe %qT tidak sebuah langsung atau virtual base dari %qT"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "tipe base %qT gagal untuk menjadi sebuah struct atau tipe kelas"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "tipe rekursif %qT tidak terdefinisi"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "duplikasi tipe dasar %qT tidak valid"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD to be a bit-field type"
-msgid "cannot declare %qD in different module"
-msgstr "tidak dapat mendeklarasikan %qD untuk menjadi sebuah tipe bit-field"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, fuzzy, gcc-internal-format
 #| msgid "%Jprevious definition here"
 msgid "previous definition here"
 msgstr "%J definisi sebelumnya disini"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 #| msgid "underlying type %<%T%> of %<%T%> must be an integral type"
 msgid "underlying type %qT of %qT must be an integral type"
@@ -63532,90 +63520,90 @@ msgstr "tipe yang digaris bawahi %<%T%> dari %<%T%> harus berupa sebuah tipe int
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "tidak ada tipe integral yang dapat merepresentasikan seluruh dari nilai enumerasi untuk %qT"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qD is not an integer constant"
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "nilai enumerasi untuk %qD bukan sebuah konstanta integer"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "nilai enumerasi untuk %qD bukan sebuah konstanta integer"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value %E is too large for underlying type %<%T%>"
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "nilai pengenumerasi untuk %E terlalu besar untuk tipe yang digaris bawahi %<%T%>"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value %E is too large for underlying type %<%T%>"
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "nilai pengenumerasi untuk %E terlalu besar untuk tipe yang digaris bawahi %<%T%>"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "overflow dalam nilai enumerasi di %qD"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value %E is too large for underlying type %<%T%>"
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "nilai pengenumerasi untuk %E terlalu besar untuk tipe yang digaris bawahi %<%T%>"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "multiple definisi dari %q#T"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "tipe kembali %q#T tidak lengkap"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%> seharusnya mengembalikan referensi ke %<*this%>"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statements in function returning %qT"
 msgstr "tidak ada pernyataaan kembali dalam fungsi yang mengembalikan bukan void"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, fuzzy, gcc-internal-format
 #| msgid "function return types not compatible due to %<volatile%>"
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "tipe kembali fungsi tidak kompatibel karena %<volatile%>"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "tidak ada pernyataaan kembali dalam fungsi yang mengembalikan bukan void"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD telah didefinisikan dalam kelas %qT"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 #| msgid "try using %qE instead"
 msgid "using %qs"
 msgstr "lebih baik coba gunakan %qE"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr ""
@@ -63671,7 +63659,7 @@ msgstr "tidak dapat menghapus sebuah fungsi. Hanya penunjuk-ke-objek yang valid
 msgid "deleting %qT is undefined"
 msgstr "menghapus %qT tidak terdefinisi"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "template deklarasi dari %q#D"
@@ -63682,7 +63670,7 @@ msgstr "template deklarasi dari %q#D"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "daftar parameter template yang disediakan tidak cocok dengan paramter template dari %qD"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "destruktor %qD dideklarasikan sebagai anggota template"
@@ -63882,73 +63870,73 @@ msgstr ""
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> mengambil tipe %qT sebagai parameter pertama"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr "%qT memiliki sebuah field %qD yang tipe menggunakan namespace anonymous"
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr "%qT memiliki sebuah field %qD yang tipe menggunakan namespace anonymous"
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%qT memiliki sebuah field %qD yang tipe menggunakan namespace anonymous"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr "%qT memiliki sebuah field %qD yang tipe menggunakan namespace anonymous"
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qT dideklarasikan dengan visibility lebih besar dari tipe dari fieldnya %qD"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which has no linkage"
 msgstr "%qT memiliki sebuah base %qT yang menggunakan tipe namespace anonymous"
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr "%qT memiliki sebuah base %qT yang menggunakan tipe namespace anonymous"
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which has internal linkage"
 msgstr "%qT memiliki sebuah base %qT yang menggunakan tipe namespace anonymous"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr "%qT memiliki sebuah base %qT yang menggunakan tipe namespace anonymous"
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT dideklarasikan dengan visibility lebih besar dari basenya %qT"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%q+F dideklarasikan %<static%> tetapi tidak pernah didefinisikan"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr ""
@@ -63957,115 +63945,115 @@ msgstr ""
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q+#D tidak merefer ke tipe tidak terkualifikasi, jadi ini tidak digunakan untuk linkage"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q+F dideklarasikan %<static%> tetapi tidak pernah didefinisikan"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr ""
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+#D with %qL linkage"
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "deklarasi sebelumnya dari %q+#D dengan %qL linkage"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 #| msgid "section of %q+D conflicts with previous declaration"
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "daerah dari %q+D konflik dengan deklarasi sebelumnya"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous mangling %q#D"
 msgstr "deklarasi sebelumnya %q+D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D used but never defined"
 msgid "inline function %qD used but never defined"
 msgstr "fungsi inline %q+D digunakan tetapi tidak pernah didefinisikan"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 #| msgid "default argument missing for parameter %P of %q+#D"
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "argumen baku hilang untuk parameter %P dari %q+#Ddd"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, fuzzy, gcc-internal-format
 #| msgid "%H%sparameter pack cannot have a default argument"
 msgid "...following parameter %P which has a default argument"
 msgstr "%H%s parameter pack tidak dapat memiliki sebuah argumen baku"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 #| msgid "definition of implicitly-declared %qD"
 msgid "implicitly-declared %qD is deprecated"
 msgstr "definisi dari secara implisit dideklarasikan %qD"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr ""
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, fuzzy, gcc-internal-format
 #| msgid "deleted function %q+D"
 msgid "use of deleted function %qD"
 msgstr "fungsi %q+D terhapus"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "insn tidak memenuhi batasannya:"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, fuzzy, gcc-internal-format
 #| msgid "using %<typename%> outside of template"
 msgid "use of built-in parameter pack %qD outside of a template"
@@ -64190,7 +64178,7 @@ msgstr "%Hreferensi ke %<%T::%D%> adalah ambigu"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qD bukan sebuah anggota dari %qT"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD bukan sebuah anggota dari %qT"
@@ -64201,7 +64189,7 @@ msgstr "%qD bukan sebuah anggota dari %qT"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%H%qD bukan sebuah anggota dari %qD"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qD is not a member of %qD"
 msgid "%qD is not a member of %qD"
@@ -64230,52 +64218,52 @@ msgstr "penanganan eksespsi dinon-aktifkan, gunakan -fexception untuk mengaktifk
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "melemparkan KOSONG, yang memiliki integral, bukan tipe penunjuk"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  dalam ekspresi thrown"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter %q+D to be of abstract type %qT"
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "tidak dapat mendeklarasikan parameter %q+D untuk menjadi tipe abstrak %qT"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create type information for type %qT because it involves types of variable size"
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "tidak dapat membuat tipe informasi untuk tipe %qT karena ini melibatkan tipe dari ukuran variabel"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create type information for type %qT because it involves types of variable size"
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "tidak dapat membuat tipe informasi untuk tipe %qT karena ini melibatkan tipe dari ukuran variabel"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, fuzzy, gcc-internal-format
 #| msgid "%Hexception of type %qT will be caught"
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "%H eksepsi dari tipe %qT tidak akan ditangkap"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, gcc-internal-format
 msgid "for type %qT"
 msgstr ""
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<...%> handler must be the last handler for its try block"
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "%H%<...%> penanganan seharusnya penanganan terakhir untuk blok cobanya"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -64566,12 +64554,12 @@ msgstr "tipe %qT tidak sebuah langsung atau virtual base dari %qT"
 msgid "type %qT is not a direct base of %qT"
 msgstr "tipe %qT bukan sebuah dasar langsung dari %qT"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "array harus diinisialisasi dengan sebuah kurung melingkupi penginisialisasi"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT bukan sebuah tipe kelas"
@@ -64586,12 +64574,12 @@ msgstr "tipe tidak lengkap %qT tidak memiliki anggota %qD"
 msgid "invalid pointer to bit-field %qD"
 msgstr "penunjuk tidak valid ke bit-field %qD"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "penggunaan tidak valid dari anggota fungsi %qD bukan statis"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "penggunaan tidak valid dari anggota data tidak statis %qD"
@@ -64801,55 +64789,55 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "tipe dari vektor delete bukan penunjuk ataupun tipe array"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, fuzzy, gcc-internal-format
 #| msgid "compound literal has variable size"
 msgid "because the array element type %qT has variable size"
 msgstr "compound literal memiliki ukuran variabel"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "cannot capture %qE by reference"
 msgstr "tidak dapat mendeklarasikan referensi ke %q#T"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 #| msgid "cannot increment a pointer to incomplete type %qT"
 msgid "capture by copy of incomplete type %qT"
 msgstr "tidak dapat meningkatkan sebuah penunjuk ke tipe tidak lengkap %qT"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> was not captured for this lambda function"
@@ -65249,238 +65237,290 @@ msgstr "diduga deklarasi atau pernyataan"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting global module declaration %#qD"
 msgstr "konflik deklarasi %q#D"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration %q+D"
 msgid "existing declaration %#qD"
 msgstr "dalam deklarasi %q+D"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 #| msgid "extern declaration of %q#D doesn't match"
 msgid "definition of %qD does not match"
 msgstr "deklarasi extern dari %q#D tidak cocok"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing definition"
 msgid "existing definition %qD"
 msgstr "hilang definisi"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "... this enumerator %qD"
 msgstr "redeklarasi dari enumerator %q+D"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 #| msgid "argument of type %qT does not match %qT"
 msgid "enumerator %qD does not match ..."
 msgstr "argumen dari tipe %qT tidak cocok dengan %qT"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "module %qs declared here"
 msgstr "%q+D dideklarasikan disini"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q+#D"
 msgid "macro definitions of %qE corrupted"
 msgstr "  dari definisi dari %q+#D"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 #| msgid "inconsistent instance variable specification"
 msgid "inconsistent imported macro definition %qE"
 msgstr "spesifikasi variabel instance tidak konsisten"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 #| msgid "Can't delete module file '%s': %s"
 msgid "compiled module file is %qs"
 msgstr "tidak dapat menghapus berkas modul '%s': %s"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s"
 msgid "compiled module is %sversion %s"
 msgstr "collect2 versi %s"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2 versi %s"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 #| msgid "field %qs not found"
 msgid "module %qs found"
 msgstr "field %qs tidak ditemukan"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr ""
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr ""
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "interface partition is not exported"
 msgstr "ekspresi batas stack tidak didukung"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr ""
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr ""
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of namespace %qD conflicts with"
+msgid "declaration %qD conflicts with builtin"
+msgstr "deklarasi dari namespace %qD konflik dengan"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of namespace %qD conflicts with"
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "deklarasi dari namespace %qD konflik dengan"
+
+#: cp/module.cc:19125
+#, fuzzy, gcc-internal-format
+#| msgid "friend declaration %qD in local class without prior declaration"
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr "deklarasi friend %qD dalam kelas lokal tanpa deklarasi sebelumnya"
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration %q#D"
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "konflik deklarasi %q#D"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration %q#D"
+msgid "conflicting declaration of %qD in global module"
+msgstr "konflik deklarasi %q#D"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "previous declaration of %qs"
+msgid "previously declared in module %qs"
+msgstr "deklarasi sebelumnya dari %qs"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "previous declaration of %qs"
+msgid "previously declared in global module"
+msgstr "deklarasi sebelumnya dari %qs"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 #| msgid "creating %s"
 msgid "reading CMI %qs"
 msgstr "membuat %s"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr ""
@@ -65492,430 +65532,430 @@ msgstr ""
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' already declared"
 msgid "module already declared"
 msgstr "Simbol '%s' telah terdeklarasi"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, gcc-internal-format
 msgid "module already imported"
 msgstr ""
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, gcc-internal-format
 msgid "module %qs imported here"
 msgstr ""
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr ""
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 #| msgid "Enable traditional preprocessing"
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "Aktifkan preprosesing tradisional"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr ""
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter %qs"
 msgid "invalid header name %qs"
 msgstr "parameter %qs tidak valid"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 #| msgid "%s: invalid file name: %s\n"
 msgid "invalid module name %qs"
 msgstr "%s: nama berkas tidak valid: %s\n"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 #| msgid "error writing %qs"
 msgid "writing CMI %qs"
 msgstr "error menulis %qs"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 #| msgid "Error writing modules file: %s"
 msgid "not writing module %qs due to errors"
 msgstr "Error menulis berkas modul: %s"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr ""
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 #| msgid "unknown machine mode %qs"
 msgid "unknown header kind %qs"
 msgstr "mode mesin %qs tidak dikenal"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 #| msgid "redeclared with %d template parameter(s)"
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "redeklarasikan dengan %d parameter template"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D conflicts with previous using declaration %q#D"
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D konflik dengan deklarasi sebelumnya menggunakan %q#D"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D hides constructor for %q#T"
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D menyembunyikan konstruktor untuk %q#T"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "konflik deklarasi %q#D"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "karena perbedaan eksepsi spesifikasi"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD invalidly declared method type"
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "parameter %qD secara tidak valid dideklarasikan tipe metode"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "deklarasi dari %q#D membayangi sebuah parameter"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as member of %qT"
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "deklarasi dari %qD sebagai anggota dari %qT"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration %qD in local class without prior declaration"
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "deklarasi friend %qD dalam kelas lokal tanpa deklarasi sebelumnya"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s(%E) %p %d\n"
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %s(%E) %p %d\n"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s %p %d\n"
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d\n"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as reference but not initialized"
 msgid "%q#D declared here with no linkage"
 msgstr "%qD dideklarasikan sebagai referensi tetapi tidak terinisialisasi"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qD redeclared with different access"
 msgid "%q#D declared here with internal linkage"
 msgstr "%H%qD redeklarasi dengan akses berbeda"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 #| msgid "  %q+#D declared here"
 msgid "%q#D declared here with module linkage"
 msgstr "  %q+#D dideklarasikan disini"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> names destructor"
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T::%D%> names desktruktor"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "using-declaration untuk bukan-anggota di class scope"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qT bukan sebuah class atau namespace"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration for non-member at class scope"
 msgid "using-declaration for member at non-class scope"
 msgstr "using-declaration untuk bukan-anggota di class scope"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "%qT is not a direct base of %qT"
 msgstr "tipe %qT bukan sebuah dasar langsung dari %qT"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not declared in %qD"
 msgid "%qD has not been declared in %qD"
 msgstr "%qD tidak dideklarasikan dalam %qD"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD not in a namespace surrounding %qD"
 msgid "using-declaration may not name namespace %qD"
 msgstr "deklarasi dari %qD bukan dalam sebuah lingkup namespace %qD"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> names konstruktor dalam %qT"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "deklarasi dari %qD bukan dalam sebuah lingkup namespace %qD"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "eksplisit kualifikasi dalam deklarasi dari %qD"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD seharusnya telah dideklarasikan didalam %qD"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not declared in %qD"
 msgid "%qD has not been declared within %qD"
 msgstr "%qD tidak dideklarasikan dalam %qD"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a friend"
 msgid "only here as a %<friend%>"
 msgstr "%q+D dideklarasikan sebagai sebuah friend"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "%qD atribut membutuhkan sebuah argumen NTBS tunggal"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr "%qD atribut tidak berarti karena anggota dari anonymous namespace memperoleh simbol lokal"
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "atribut %qD direktif diabaikan"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, fuzzy, gcc-internal-format
 #| msgid "  %q+#D"
 msgid "  %qE"
 msgstr "  %q+#D"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "%<this%> tidak tersedia untuk anggota fungsi static"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr ""
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qD was declared here"
 msgid "it was later defined here"
 msgstr "%J%qD telah dideklarasikan disini"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr ""
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 #| msgid "%Hnamed return values are no longer supported"
 msgid "%<strong%> using directive no longer supported"
 msgstr "%Hnilai kembali bernama tidak lagi didukung"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<this%> may not be used in this context"
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%H%<this%> mungkin tidak digunakan dalam konteks ini"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qD may not be declared within a namespace"
 msgid "cannot nest more than %d namespaces"
 msgstr "%qD mungkin tidak dideklarasikan dalam sebuah namespace"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L is ambiguous"
 msgid "%<namespace %E%> is ambiguous"
 msgstr "'%s' di %L adalah ambigu"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "namespace alias %qD tidak diijinkan disini, diasumsikan %qD"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%qD defined here"
 msgstr "%q+D dideklarasikan disini"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 #| msgid "address area of %q+D conflicts with previous declaration"
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "daerah alamat dari %q+D konflik dengan deklarasi sebelumnya"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%Jprevious definition here"
 msgid "reachable %s definition here"
 msgstr "%J definisi sebelumnya disini"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, fuzzy, gcc-internal-format
 #| msgid "XXX entering pop_everything ()\n"
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX memasuki pop_everything ()\n"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "XXX leaving pop_everything ()\n"
 msgid "XXX leaving %<pop_everything ()%>"
@@ -65944,7 +65984,7 @@ msgstr "pengidentifikasi %<%s%> akan menjadi sebuah kata kunci dalam C++0x"
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr ""
@@ -66233,7 +66273,7 @@ msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
@@ -66436,7 +66476,7 @@ msgstr "%Hpernyataan ekspresi tidak diijinkan diluar fungsi atau didalam daftar
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "expected primary-expression"
@@ -66499,7 +66539,7 @@ msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 msgid "template-id not allowed for destructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -66522,7 +66562,7 @@ msgstr "%Htypedef-nama %qD digunakan sebagai desktruktor deklarator"
 msgid "expected unqualified-id"
 msgstr "diduga specifier-qualifier-list"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD bukan sebuah template"
@@ -66580,7 +66620,7 @@ msgstr "%Htipe baru mungkin tidak didefinisikan dalam sebuah tipe kembali"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "jumlah dari argumen ke fungsi %<__builtin_next_arg%> salah"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgid "wrong number of arguments to %<__builtin_launder%>"
@@ -66619,7 +66659,7 @@ msgstr "%Htipe baru mungkin tidak didefinisikan dalam sebuah tipe kembali"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "penggunaan tidak valid dari %qD"
@@ -66647,7 +66687,7 @@ msgstr "ISO C++ tidak mengijinkan designated penginisialisasi"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "%Htipe baru mungkin tidak didefinisikan dalam sebuah tipe kembali"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 #| msgid "%Hnew types may not be defined in a return type"
 msgid "types may not be defined in %qs expressions"
@@ -66817,8 +66857,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr "peningkatan dari variabel baca-saja %qD"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%q#D declared here"
@@ -66861,7 +66901,7 @@ msgstr "argumen baku diberikan untuk parameter %d dari %q#D"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -66998,7 +67038,7 @@ msgstr "lvalue dibutuhkan dalam pernyataan asm"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration or statement"
 msgid "expected selection-statement"
@@ -67068,7 +67108,7 @@ msgstr "ekspresi pernyataan memiliki tipe tidak lengkap"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr ""
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration or statement"
 msgid "expected iteration-statement"
@@ -67098,7 +67138,7 @@ msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ melarang gotos yang sudah dihitung"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "expected jump-statement"
@@ -67414,13 +67454,13 @@ msgstr "%Hhanya konstruktor yang mengambil penginisialisasi dasar"
 msgid "cannot expand initializer for member %qD"
 msgstr "%Htidak dapat mengekspand penginisialisasi untuk anggota %<%D%>"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, fuzzy, gcc-internal-format
 #| msgid "static declaration of %q+D follows non-static declaration"
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "deklarasi statis dari %q+D mengikuti deklarasi bukan statis"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr ""
@@ -68147,7 +68187,7 @@ msgstr "hilang target makefile setelah %qs"
 msgid "%qT not permitted in template argument"
 msgstr "%Hparse error dalam daftar argumen template"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
@@ -68357,12 +68397,12 @@ msgstr "%Hdefinisi sebelumnya dari %q+#T"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected class-key"
@@ -68592,40 +68632,40 @@ msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 msgid "expression must be enclosed in parentheses"
 msgstr "ekspresi pernyataan memiliki tipe tidak lengkap"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 #| msgid "requested position is not an integer constant"
 msgid "result type is not a plain type-constraint"
 msgstr "posisi yang diminta bukan sebuah konstanta integer"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a constant"
 msgid "return-type-requirement is not a type-constraint"
 msgstr "alignmen yang diminta bukan sebuah konstanta"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, fuzzy, gcc-internal-format
 #| msgid "invalid redeclaration of %q+D"
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "redeklarasi tidak valid dari %q+D"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, fuzzy, gcc-internal-format
 #| msgid "%Htoo few template-parameter-lists"
 msgid "too few template-parameter-lists"
@@ -68635,506 +68675,506 @@ msgstr "%Hterlalu sedikit template-parameter-list"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, fuzzy, gcc-internal-format
 #| msgid "%Htoo many template-parameter-lists"
 msgid "too many template-parameter-lists"
 msgstr "%Hterlalu banyak template-parameter-lists"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, fuzzy, gcc-internal-format
 #| msgid "%Hnamed return values are no longer supported"
 msgid "named return values are no longer supported"
 msgstr "%Hnilai kembali bernama tidak lagi didukung"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, fuzzy, gcc-internal-format
 #| msgid "no matching template for %qD found"
 msgid "no matching concept for template-introduction"
 msgstr "template tidak cocok untuk %qD yang ditemukan"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid declaration of member template in local class"
 msgid "invalid declaration of member template in local class"
 msgstr "%Hdeklarasi tidak valid dari anggota template dalam kelas lokal"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, fuzzy, gcc-internal-format
 #| msgid "%Htemplate with C linkage"
 msgid "template with C linkage"
 msgstr "%Htemplate dengan C linkage"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, fuzzy, gcc-internal-format
 #| msgid "invalid base-class specification"
 msgid "invalid explicit specialization"
 msgstr "spesifikasi kelas dasar tidak valid"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "template declaration of %<typedef%>"
 msgstr "template deklarasi dari %q#D"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, fuzzy, gcc-internal-format
 #| msgid "declaration does not declare anything"
 msgid "a class template declaration must not declare anything else"
 msgstr "redeklarasi tidak mendeklarasikan apapun"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, fuzzy, gcc-internal-format
 #| msgid "%Hexplicit template specialization cannot have a storage class"
 msgid "explicit template specialization cannot have a storage class"
 msgstr "%Heksplisit template spesialisasi tidak dapat memiliki sebuah kelas penyimpanan"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%H%<>>%> seharusnya %<> >%> didalam sebuah daftar argumen template nested"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, fuzzy, gcc-internal-format
 #| msgid "%Hspurious %<>>%>, use %<>%> to terminate a template argument list"
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "%Hspurious %<>>%>, gunakan %<>%> untuk mengakhiri sebuah daftar argumen template"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 #| msgid "%Hspurious %<>>%>, use %<>%> to terminate a template argument list"
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "%Hspurious %<>>%>, gunakan %<>%> untuk mengakhiri sebuah daftar argumen template"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid use of %qD in linkage specification"
 msgid "invalid use of %qD in linkage specification"
 msgstr "%Hpenggunaan tidak valid dari %qD dalam spesifikasi linkage"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 #| msgid "%Hduplicate %qs"
 msgid "duplicate %qD specifier"
 msgstr "%Hduplikasi %qs"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 #| msgid "  conflict with %q+D"
 msgid "%qD specifier conflicts with %qs"
 msgstr "  konflik dengan %q+D"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<__thread%> before %qD"
 msgid "%<__thread%> before %qD"
 msgstr "%H%<__thread%> sebelum %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr ""
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ 1998 tidak mendukung %<long long%>"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, fuzzy, gcc-internal-format
 #| msgid "both %<_Sat%> and %<char%> in declaration specifiers"
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "baik %<_Sat%> dan %<char%> dalam penspesifikasi deklarasi"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate %qE"
 msgid "duplicate %qD"
 msgstr "duplikasi %qE"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, fuzzy, gcc-internal-format
 #| msgid "%Hduplicate %qs"
 msgid "duplicate %qs"
 msgstr "%Hduplikasi %qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<new%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<delete%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<return%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<extern%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "expected %<static_assert%>"
 msgstr "diduga pernyataan"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<decltype%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<operator%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<class%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<template%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<namespace%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<using%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<asm%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<try%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<catch%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<throw%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<auto%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<__label__%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@try%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@synchronized%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@throw%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<__transaction_relaxed%>"
 msgstr "diduga %<none%> atau %<shared%>"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<co_yield%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<::%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<...%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<*%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<~%>"
 msgstr "diduga %<{%>"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<:%> or %<...%>"
 msgid "expected %<:%> or %<::%>"
 msgstr "diduga %<:%> atau %<...%>"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "diduga %<,%>, %<,%> atau %<}%>"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "%qs tag digunakan dalam penamaan %q#T"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, fuzzy, gcc-internal-format
 #| msgid "%q+T has a previous declaration here"
 msgid "%q#T was previously declared here"
 msgstr "%q+T telah dideklarasikan sebelumnya disini"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "tidak dapat mendeklarasikan referensi ke %q#T"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, fuzzy, gcc-internal-format
 #| msgid "%qT declared with greater visibility than its base %qT"
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qT dideklarasikan dengan visibility lebih besar dari basenya %qT"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 #| msgid "template class without a name"
 msgid "replace the class-key with %qs"
 msgstr "template kelas tanpa sebuah nama"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 #| msgid "%qT referred to as %qs"
 msgid "%qT defined as %qs here"
 msgstr "%qT mereferensikan sebagai %qs"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qD was declared here"
 msgid "%qT first declared as %qs here"
 msgstr "%J%qD telah dideklarasikan disini"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qD redeclared with different access"
 msgid "%qD redeclared with different access"
 msgstr "%H%qD redeklarasi dengan akses berbeda"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<template%> (as a disambiguator) is only allowed within templates"
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "%H%<template%> (sebagai sebuah disambiguator) hanya diijinkan dalam templates"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfile ends in default argument"
 msgid "file ends in default argument"
 msgstr "%Hberkas berakhir dalam argumen baku"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, fuzzy, gcc-internal-format
 #| msgid "%Hmisplaced %<@%D%> Objective-C++ construct"
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "%Hsalah tempat %<@%D%> Objective-C++ konstruk"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr ""
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<@encode%> must specify a type as an argument"
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "%H%<@encode%> harus menspesifikasikan sebuah tipe sebagai sebuah argumen"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid Objective-C++ selector name"
 msgid "invalid Objective-C++ selector name"
 msgstr "%Hpemilih nama Objective-C++ tidak valid"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration specifiers"
 msgid "objective-c++ method declaration is expected"
 msgstr "diduga penspesifikasi deklarasi"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attribute cannot be specified for local variables"
 msgid "method attributes must be specified at the end"
 msgstr "%J atribut daerah tidak dapat dispesifikasikan untuk variabel lokal"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for iteration variable %qE"
 msgid "invalid type for instance variable"
 msgstr "tipe tidak valid untuk iterasi variabel %qE"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, fuzzy, gcc-internal-format
 #| msgid "%Hidentifier expected after %<@protocol%>"
 msgid "identifier expected after %<@protocol%>"
 msgstr "%Hpengidentifikasi diduga setelah %<@protocol%>"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored for %qE"
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "%qE atribut diabaikan untuk %qE"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument"
 msgid "invalid type for property"
 msgstr "tipe argumen tidak valid"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr ""
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected integer expression list"
 msgstr "diduga ekspresi integer"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<wait%> expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "diduga %<,%>, %<,%> atau %<}%>"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid reduction-identifier"
 msgstr "penginisialisasi tidak valid"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 #| msgid "%Hnew types may not be defined in a return type"
 msgid "types may not be defined in iterator type"
@@ -69144,13 +69184,13 @@ msgstr "%Htipe baru mungkin tidak didefinisikan dalam sebuah tipe kembali"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma vtable no longer supported"
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "#pragma vtable tidak lagi didukung"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr "inisialisasi berkurung tidak diijinkan dalam loop OpenMP %<for%>"
@@ -69160,145 +69200,145 @@ msgstr "inisialisasi berkurung tidak diijinkan dalam loop OpenMP %<for%>"
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr ""
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "iterasi variabel %qD seharusnya bukan reduksi"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp section%> hanya bisa digunakan dalam %<#pragma omp section%> konstruk"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer clause"
 msgstr "penginisialisasi tidak valid"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "expected id-expression (arguments)"
 msgstr "diduga ekspresi"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, fuzzy, gcc-internal-format
 #| msgid "%Hnew types may not be defined in a return type"
 msgid "types may not be defined in declare reduction type list"
 msgstr "%Htipe baru mungkin tidak didefinisikan dalam sebuah tipe kembali"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member template function"
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD bukan sebuah anggota dari fungsi template"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 #| msgid "%Hjunk at end of %<#pragma GCC pch_preprocess%>"
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "%Hsampah diakhir dari %<#pragma GCC pch_preprocess%>"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp barrier%> hanya mungkin digunakan dalam pernyataan compound"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp flush%> hanya mungkin digunakan dalam pernyataan compound"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC option is not allowed inside functions"
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "#pragma GCC option tidak diijinkan didalam fungsi"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "multi-source compilation not implemented for C++"
 msgstr "inter-module optimisasi tidak diimplementasikan untuk C++"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 #| msgid "standard conversions are not allowed in this context"
 msgid "placeholder type not allowed in this context"
 msgstr "konversi baku tidak diijinkan dalam konteks ini"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, fuzzy, gcc-internal-format
 #| msgid "%Htemplates may not be %<virtual%>"
 msgid "implicit templates may not be %<virtual%>"
 msgstr "%Htemplate mungkin bukan %<virtual%>"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -69329,7 +69369,7 @@ msgstr "template kelas yang melingkupi tidak secara eksplisit terspesialisasi"
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "spesialisasi dari %qD dalam namespace berbeda"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "spesialisasi dari %qD dalam namespace berbeda"
@@ -69345,28 +69385,28 @@ msgstr "  dari definisi dari %q+#D"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "eksplisit instantiation dari %qD dalam namespace %qD (yang tidak melingkupi namespace %qD)"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "nama dari template kelas bayangan parameter template %qD"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template %q#D"
 msgid "specialization of alias template %qD"
 msgstr "deklarasi dari template %q#D"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "spesialisasi eksplisit dari bukan-template %qT"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "spesialisasi dari %qT setelah instantiation"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q+#D"
 msgid "from definition of %q#D"
@@ -69374,157 +69414,157 @@ msgstr "  dari definisi dari %q+#D"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "spesialisasi %qT setelah instantiation %qT"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "fungsi template partial spesialisasi %qD tidak diijinkan"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "spesialisasi dari %qD setelah instansiasi"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 #| msgid "%s %+#D"
 msgid "%s %#qD"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD bukan sebuah template fungsi"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is not a variable template"
 msgstr "%qD bukan sebuah variabel"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "template-id %qD untuk %q+D tidak cocok dengan deklarasi template apapun"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "spesialisasi template ambigu %qD untuk %q+D"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, fuzzy, gcc-internal-format
 #| msgid "no matching template for %qD found"
 msgid "too many template headers for %qD (should be %d)"
 msgstr "template tidak cocok untuk %qD yang ditemukan"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "spesisialisasi eksplisit dari %qD setelah penggunaan pertama"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "eksplisit instantiation dari %qD dalam namespace %qD (yang tidak melingkupi namespace %qD)"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "spesisialisasi eksplisit dari %qD setelah penggunaan pertama"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing primary template attributes %s"
 msgstr "hilang atribut Code"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing primary template attribute %s"
 msgstr "hilang atribut Code"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 #| msgid "template-id %qD in declaration of primary template"
 msgid "template-id %qE in declaration of primary template"
 msgstr "template-id %qD dalam deklarasi dari template utama"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "daftar parameter template digunakan dalam instantiation eksplisit"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "definisi disediakan untuk instantiation eksplisit"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "terlalu banyak daftar parameter template dalam deklarasi dari %qD"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "terlalu sedikit daftar parameter template dalam deklarasi dari %qD"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "eksplisit spesialisasi dari %qD harus dikenalkan oleh %<template <>%>"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization declared %<concept%>"
 msgstr "spesialisasi eksplisit dari bukan-template %qT"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "fungsi template partial spesialisasi %qD tidak diijinkan"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "fungsi template partial spesialisasi %qD tidak diijinkan"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "argumen baku dispesifikasikan dalam spesialisasi eksplisit"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD bukan sebuah fungsi template"
@@ -69537,154 +69577,154 @@ msgstr "%qD bukan sebuah fungsi template"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "spesialisasi dari anggota fungsi spesial secara implist dideklarasikan"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "tidak ada anggota fungsi %qD dideklarasikan dalam %qT"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration %qD in local class without prior declaration"
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "deklarasi friend %qD dalam kelas lokal tanpa deklarasi sebelumnya"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 #| msgid "%Jshadowed declaration is here"
 msgid "friend declaration here"
 msgstr "%J membayangi deklarasi ada disini"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization of function concept %qD"
 msgstr "spesialisasi eksplisit dari bukan-template %qT"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ACOS at %L must be between -1 and 1"
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "Argumen dari ACOS di %L harus berada diantara -1 dan 1"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, fuzzy, gcc-internal-format
 #| msgid "base initializer expansion %<%T%> contains no parameter packs"
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr "ekspansi penginisialisasi dasar %<%T%> berisi parameter packs"
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, fuzzy, gcc-internal-format
 #| msgid "expansion pattern %<%T%> contains no argument packs"
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "pola ekspansi %<%T%> berisi tidak ada argumen packs"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, fuzzy, gcc-internal-format
 #| msgid "expansion pattern %<%E%> contains no argument packs"
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "pola ekspansi %<%E%> berisi tidak ada argumen packs"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr "parameter packs tidak diekspan dengan %<...%>:"
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "          %s"
 msgid "        %s"
 msgstr "          %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "deklarasi dari %q+D membayangi sebuah parameter"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "deklarasi dari %q+D membayangi sebuah parameter"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "template parameter %qD declared here"
 msgstr "tipe parameter template %qT dideklarasikan %<friend%>"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "specialization of variable concept %q#D"
 msgstr "spesialisasi eksplisit dari bukan-template %qT"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "template parameters not deducible in partial specialization:"
 msgstr "parameter template tidak digunakan dalam spesialisasi partial:"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "partial spesialisasi %qT tidak menspesialisasikan argumen template apapun"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr ""
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qE"
 msgid "too many arguments for partial specialization %qT"
 msgstr "terlalu banyak argumen ke fungsi %qE"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %qD is not more specialized than"
 msgstr "partial spesialisasi %qT tidak menspesialisasikan argumen template apapun"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template %q#D"
 msgid "primary template %qD"
 msgstr "deklarasi dari template %q#D"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr "parameter pack argumen %qE harus berada di akhir dari daftar argumen template"
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr "parameter pack argumen %qT harus berada di akhir dari daftar argumen template"
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT of template argument %qE depends on template parameter(s)"
 msgid "type %qT of template argument %qE depends on a template parameter"
@@ -69692,19 +69732,19 @@ msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "tipe %qT dari template argumen %qE tergantung di parameter template"
 msgstr[1] "tipe %qT dari template argumen %qE tergantung di parameter template"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "template class instantiation ambigu untuk %q#T"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %qD after instantiation"
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "spesialisasi dari %qD setelah instansiasi"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "tidak ada argumen baku untuk %qD"
@@ -69713,53 +69753,53 @@ msgstr "tidak ada argumen baku untuk %qD"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, fuzzy, gcc-internal-format
 #| msgid "parameter pack %qE must be at the end of the template parameter list"
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "parameter pack %qE harus berada di akhir dari daftar parameter template"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, fuzzy, gcc-internal-format
 #| msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "argumen baku tidak diijinkan dalam deklarasi dari spesialisasi template friend %qD"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "parameter template tidak digunakan dalam spesialisasi partial:"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "default template arguments may not be used in partial specializations"
 msgstr "parameter template tidak digunakan dalam spesialisasi partial:"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for parameter of type %qT has type %qT"
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "argumen baku untuk parameter dari tipe %qT memiliki tipe %qT"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD declared void"
 msgid "template %qD declared"
 msgstr "parameter %qD dideklarasikan void"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "template kelas tanpa sebuah nama"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, fuzzy, gcc-internal-format
 #| msgid "non-member function %qD cannot have cv-qualifier"
 msgid "member template %qD may not have virt-specifiers"
@@ -69770,64 +69810,64 @@ msgstr "fungsi bukan-anggota %qD tidak dapat memiliki cv-kualifier"
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "deklarasi template dari %qD tidak valid"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "definisi template dari bukan template %q#D"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "diduga %d tingkat dari parm template untuk %q#D, diperoleh %d"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "diperoleh %d parameter template untuk %q#D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "diperoleh %d parameter template untuk %q#T"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  tetapi %d dibutuhkan"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "template argumen ke %qD tidak cocok dengan template asli %qD"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, fuzzy, gcc-internal-format
 #| msgid "use template<> for an explicit specialization"
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "gunakan template<> untuk spesialisasi eksplisit"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qF throws different exceptions"
 msgid "redeclaration of %qD with different constraints"
 msgstr "deklarasi dari %qF throws exceptions berbeda"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT bukan sebuah tipe template"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "penspesifikasi template tidak dispesifikasikan dalam deklarasi dari %qD"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "redeclared with %d template parameter(s)"
 msgid "redeclared with %d template parameter"
@@ -69835,7 +69875,7 @@ msgid_plural "redeclared with %d template parameters"
 msgstr[0] "redeklarasikan dengan %d parameter template"
 msgstr[1] "redeklarasikan dengan %d parameter template"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D used %d template parameter(s)"
 msgid "previous declaration %qD used %d template parameter"
@@ -69843,490 +69883,490 @@ msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "deklarasi sebelumnya %q+D digunakan %d parameter template"
 msgstr[1] "deklarasi sebelumnya %q+D digunakan %d parameter template"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "parameter template %q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "redeklarasikan disini sebagai %q#D"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 #| msgid "redeclared here as %q#D"
 msgid "redeclared here"
 msgstr "redeklarasikan disini sebagai %q#D"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qF throws different exceptions"
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "deklarasi dari %qF throws exceptions berbeda"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 #| msgid "%Joriginal definition appeared here"
 msgid "original declaration appeared here"
 msgstr "%J definisi asli muncul disini"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qF throws different exceptions"
 msgid "redeclaration of %q#D with different constraints"
 msgstr "deklarasi dari %qF throws exceptions berbeda"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "ini harus berupa alamat dari sebuah fungsi dengan hubungan eksternal"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, fuzzy, gcc-internal-format
 #| msgid "it must be the address of a function with external linkage"
 msgid "it must be the name of a function with external linkage"
 msgstr "ini harus berupa alamat dari sebuah fungsi dengan hubungan eksternal"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena objek %qD bukan eksternal linkage"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qE bukan sebuah argumen template yang valid dari tipe %qT karena %qD tidak memiliki eksternal linkage"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "(sebuah penunjuk ke anggota hanya dapat dibentuk dengan %<&%E%>)"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a member of %qT"
 msgid "because it is a member of %qT"
 msgstr "%qT bukan sebuah anggota dari %qT"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 #| msgid "got %d template parameters for %q#D"
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "diperoleh %d parameter template untuk %q#D"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr ""
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %qT and %qT"
 msgid "  mismatched types %qT and %qT"
 msgstr "perbandingan diantara tipe %qT dan %qT"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, fuzzy, gcc-internal-format
 #| msgid "%Htemplate parameter pack %qD cannot have a default argument"
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "%Htemplate parameter pack %qD tidak dapat memiliki sebuah argumen baku"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, fuzzy, gcc-internal-format
 #| msgid "template arguments to %qD do not match original template %qD"
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "template argumen ke %qD tidak cocok dengan template asli %qD"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "  %qE is not equivalent to %qE"
 msgstr "%qs tidak valid untuk %qs"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr ""
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr ""
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "partial spesialisasi %qT tidak menspesialisasikan argumen template apapun"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT"
 msgid "  member function type %qT is not a valid template argument"
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert type %qT to type %qT"
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "tidak dapat mengubah tipe %qT ke tipe %qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is an ambiguous base of %qT"
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "%qT adalah sebuah dasar ambigu dari %qT"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not derived from type %qT"
 msgid "  %qT is not derived from %qT"
 msgstr "tipe %qT tidak diturunkan dari tipe %qT"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 #| msgid "cannot decrement a pointer to incomplete type %qT"
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "tidak dapat mengurangi penunjuk ke tipe tidak lengkap %qT"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "argument of type %qT does not match %qT"
 msgid "  template argument %qE does not match %qE"
 msgstr "argumen dari tipe %qT tidak cocok dengan %qT"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qE is not a variable"
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE bukan sebuah argumen template yang valid dari tipe %qT karena %qE bukan sebuah variabel"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE bukan sebuah argumen template yang valid dari tipe %qT karena %qD tidak memiliki eksternal linkage"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qE is not a variable"
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE bukan sebuah argumen template yang valid dari tipe %qT karena %qE bukan sebuah variabel"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT"
 msgid "the address of %qD is not a valid template argument"
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "%qE bukan sebuah argumen template yang valid dari tipe %qT karena %qD tidak memiliki eksternal linkage"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qD bukan sebuah template argumen yang valid karena %qD bukan sebuah variabel, bukan alamat dari sebuah variabel"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qD bukan sebuah template argumen yang valid karena %qD bukan sebuah variabel, bukan alamat dari sebuah variabel"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena string literal tidak dapat digunakan dalam konteks ini"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT"
 msgid "in template argument for type %qT"
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "argumen dari atribut %qs bukan sebuah konstanta string"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE bukan sebuah template argumen yang valid untuk tipe %qT karena konflik dalam cv kualifikasi"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena ini bukan sebuah lvalue"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%qE bukan sebuah template argumen yang valid untuk tipe %qT karena ini bukan sebuah ekspresi konstan"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena ini adalah sebuah penunjuk"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "lebih baik coba gunakan %qE"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE bukan sebuah argumen template yang valid untuk tipe %qT karena ini dari tipe %qT"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, fuzzy, gcc-internal-format
 #| msgid "Conflict in attributes of function argument at %C"
 msgid "ignoring attributes on template argument %qT"
 msgstr "Konflik dalam atribut dari argumen fungsi di %C"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes applied to %qT after definition"
 msgid "ignoring attributes in template argument %qE"
 msgstr "mengabaikan atribut yang diaplikasikan ke %qT setelah definisi"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, fuzzy, gcc-internal-format
 #| msgid "name of class shadows template template parameter %qD"
 msgid "injected-class-name %qD used as template template argument"
 msgstr "nama dari template kelas bayangan parameter template %qD"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid use of destructor %qD as a type"
 msgid "invalid use of destructor %qE as a type"
 msgstr "%Hpenggunaan tidak valid dari desktruktor %qD memiliki sebuah tipe"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "merefer ke sebuah anggota tipe dari sebuah parameter template, gunakan %<typename %E%>"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "tipe/nilai tidak cocok di argumen %d dalam daftar parameter template untuk %qD"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  diduga sebuah konstanta dari tipe %qT, diperoleh %qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr ""
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  diduga sebuah template kelas, diperoleh %qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  diduga sebuah tipe, diperoleh %qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  diduga sebuah tipe, diperoleh %qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  diduga sebuah template kelas, diperoleh %qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a template of type %qD, got %qD"
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  diduga sebuah template dari tipe %qD, diperoleh %qD"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 #| msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "tipe/nilai tidak cocok di argumen %d dalam daftar parameter template untuk %qD"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a type, got %qE"
 msgid "  expected %qD but got %qD"
 msgstr "  diduga sebuah tipe, diperoleh %qE"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 #| msgid "could not convert template argument %qE to %qT"
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "tidak dapat mengubah argumen template %qE ke %qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "template argumen %d tidak valid"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "jumlah dari argumen template salah (%d, seharusnya %d)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d)"
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "jumlah dari argumen template salah (%d, seharusnya %d)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, fuzzy, gcc-internal-format
 #| msgid "provided for %q+D"
 msgid "provided for %qD"
 msgstr "disediakan untuk %q+D"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, fuzzy, gcc-internal-format
 #| msgid "default argument given for parameter %d of %q#D"
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "argumen baku diberikan untuk parameter %d dari %q#D"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%q#D is not a function template"
 msgstr "%qD bukan sebuah template fungsi"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "tipe bukan template %qT digunakan sebuah sebuah template"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "untuk deklarasi template %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "template constraint failure for %qD"
 msgstr "template deklarasi dari %q#D"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 #| msgid "use of %qs in template"
 msgid "use of invalid variable template %qE"
 msgstr "penggunaan dari %qs dalam template"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "kedalaman template instantiation melebihi maksimal dari %d (gunakan -ftemplate-depth-NN untuk meningkatkan maksimal) instantiating %qD"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 #| msgid "collapse argument needs positive constant integer expression"
 msgid "score argument must be constant integer expression"
 msgstr "argumen collapes membutuhkan konstanta positif ekspresi integer"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 #| msgid "last argument must be an immediate"
 msgid "score argument must be non-negative"
 msgstr "argumen terakhir harus berupa sebuah immediate"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, fuzzy, gcc-internal-format
 #| msgid "collapse argument needs positive constant integer expression"
 msgid "property must be constant integer expression or string literal"
 msgstr "argumen collapes membutuhkan konstanta positif ekspresi integer"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member in union"
 msgid "flexible array member %qD in union"
 msgstr "%J anggota array fleksibel dalam union"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not at beginning of declaration"
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE tidak berada di awal dari deklarasi"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched argument pack lengths while expanding %<%T%>"
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr "panjang argumen pack tidak cocok akan diekspan %<%T%>"
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched argument pack lengths while expanding %<%E%>"
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr "panjang argumen pack tidak cocok ketika mengekspan %<%E%>"
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of default argument for %q#D"
 msgid "  when instantiating default argument for call to %qD"
 msgstr "redefinisi dari argumen baku untuk %q#D"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "membuat penunjuk ke anggota fungsi dari tipe bukan kelas %qT"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "mismatched argument pack lengths while expanding %<%T%>"
 msgid "mismatched argument pack lengths (%d vs %d)"
@@ -70345,319 +70385,319 @@ msgstr "panjang argumen pack tidak cocok akan diekspan %<%T%>"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "variabel %qD memiliki tipe fungsi"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "tipe parameter %qT tidak valid"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "dalam deklarasi %q+D"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "fungsi mengembalikan sebuah array"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "fungsi mengembalikan sebuah fungsi"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "membentuk referensi ke void"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, fuzzy, gcc-internal-format
 #| msgid "forming %s to reference type %qT"
 msgid "forming pointer to reference type %qT"
 msgstr "membentuk %s ke tipe referensi %qT"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, fuzzy, gcc-internal-format
 #| msgid "forming %s to reference type %qT"
 msgid "forming reference to reference type %qT"
 msgstr "membentuk %s ke tipe referensi %qT"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %s to qualified function type %qT"
 msgid "forming pointer to qualified function type %qT"
 msgstr "tidak dapat mendeklarasikan %s untuk fungsi yang dikualifikasikan dengan tipe %qT"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %s to qualified function type %qT"
 msgid "forming reference to qualified function type %qT"
 msgstr "tidak dapat mendeklarasikan %s untuk fungsi yang dikualifikasikan dengan tipe %qT"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "membuat penunjuk ke anggota dari tipe bukan kelas %qT"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "membuat penunjuk ke anggota referensi tipe %qT"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "membuat penunjuk ke anggota dari tipe void"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "membuat array dari %qT"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT bukan sebuah tipe class, struct, atau union"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT meresolf ke %qT, yang bukan sebuah tipe enumerasi"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 #| msgid "%qT resolves to %qT, which is is not a class type"
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT meresolf ke %qT, yang bukan sebuah tipe class"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "penggunaan dari %qs dalam template"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, fuzzy, gcc-internal-format
 #| msgid "qualified type %qT does not match destructor name ~%qT"
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "tipe kualifikasi %qT tidak cocok dengan nama destruktor ~%qT"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "dependent-name %qE diparse sebagai sebuah bukan-tipe, tetapi instantiation menghasilkan sebuah tipe"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "katakan %<typename %E%> jika sebuah tipe adalah berarti"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operands in comparison expression"
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "operan tidak valid dalam ekspresi perbandingan"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "penggunaan tidak valid dari ekspresi ekspansi pack"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr "gunakan %<...%> untuk mengekspan argumen pack"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr ""
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qE undeclared here (not in a function)"
 msgid "%qD declared here, later in the translation unit"
 msgstr "%H%qE tidak dideklarasikan disini (bukan dalam sebuah fungsi)"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "jumlah dari argumen ke fungsi %<__builtin_next_arg%> salah"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qs attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "jumlah dari argumen salah dispesifikasikan untuk atribut %qs"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT bukan sebuah class atau namespace"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD bukan sebuah class atau namespace"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "menggunakan field tidak valid %qD"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is/uses anonymous type"
 msgid "%qT is/uses unnamed type"
 msgstr "%qT adalah/menggunakan tipe anonymous"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "argumen template untuk %qD menggunakan tipe lokal %qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT adalah sebuah tipe variabel termodifikasi"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "ekspresi integral %qE bukan konstan"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  mencoba untuk instantiate %qD"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "ambiguous template instantiation for %q#T"
 msgstr "template class instantiation ambigu untuk %q#T"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "ambiguous template instantiation for %q#D"
 msgstr "template class instantiation ambigu untuk %q#T"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 #| msgid "%s %+#D"
 msgid "%s %#qS"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "instantiation eksplisit dari bukan-template %q#D"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "instantiation eksplisit dari bukan-template %q#D"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of function concept %q#D"
 msgstr "instantiation eksplisit dari bukan-template %q#D"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qD bukan sebuah anggota data statis dari sebuah template class"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "template tidak cocok untuk %qD yang ditemukan"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "tipe %qT untuk instantiation eksplisit %qD tidak cocok dengan tipe yang dideklarasikan %qT"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "eksplisit instantiation dari %q#D"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "duplikasi eksplisit instantiation dari %q#D"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++ 1998 melarang penggunaan dari %<extern%> di instantiation eksplisit"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "class penyimpanan %qD diaplikasikan ke template instantiation"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of non-class template %qD"
 msgstr "instantiation eksplisit dari bukan-template %q#D"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "eksplisit instantiation dari tipe bukan template %qT"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "eksplisit instantiation dari %q#T sebelum definisi dari template"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ melarang penggunaan dari %qE di instantiasi eksplisit"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "duplikasi instansiasi eksplisit dari %q#T"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "exception specification of %qD depends on itself"
@@ -70670,183 +70710,183 @@ msgstr "spesisialisasi eksplisit dari %qD setelah penggunaan pertama"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "eksplisit instansiasi dari %qD tetapi tidak ada definisi yang tersedia"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth-NN to increase the maximum)"
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "kedalaman template instansiasi melebihi maksimal dari %d instantiating %q+D, kemungkinan dari pembuatan tabel virtual (gunakan -ftemplate-depth-NN untuk meningkatkan maksimal)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a valid type for a template constant parameter"
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%q#T bukan sebuah tipe valid untuk sebuah parameter template konstan"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, fuzzy, gcc-internal-format
 #| msgid "using template type parameter %qT after %qs"
 msgid "invalid template non-type parameter"
 msgstr "menggunakan parameter tipe template %qT setelah %qs"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a valid type for a template constant parameter"
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T bukan sebuah tipe valid untuk sebuah parameter template konstan"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, fuzzy, gcc-internal-format
 #| msgid "%Hkeyword %<typename%> not allowed outside of templates"
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "%Hkata kunci %<typename%> tidak diijinkan diluar dari templates"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 #| msgid "opaque vector types cannot be initialized"
 msgid "a concept cannot be constrained"
 msgstr "tipe vektor opaque tidak dapat diinisialisasi"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a namespace"
 msgid "concept %qE not in namespace scope"
 msgstr "%qT bukan sebuah namespace"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 #| msgid "definition of %q#T inside template parameter list"
 msgid "concept %qE has multiple template parameter lists"
 msgstr "definisi dari %q#T didalam daftar parameter template"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, fuzzy, gcc-internal-format
 #| msgid "deducing auto from brace-enclosed initializer list requires #include <initializer_list>"
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr "deduksi auto dari daftar penginisialisasi dikurung membutuhkan #include <daftar_penginisialisasi>"
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "non-deducible template %qT used without template arguments"
 msgstr "%qD digunakan tanpa parameter template"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "use %qD directly instead"
 msgstr "lebih baik gunakan #include"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr ""
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "class template argument deduction failed:"
 msgstr "template argumen %d tidak valid"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 #| msgid "function not considered for inlining"
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "fungsi tidak dipertimbangkan untuk inlining"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 #| msgid "explicit qualification in declaration of %qD"
 msgid "explicit deduction guide declared here"
 msgstr "eksplisit kualifikasi dalam deklarasi dari %qD"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr ""
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 #| msgid "unable to deduce %qT from %qE"
 msgid "unable to deduce lambda return type from %qE"
 msgstr "tidak dapat mendeduksi %qT dari %qE"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "tidak dapat mendeduksi %qT dari %qE"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "insn tidak memenuhi batasannya:"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "insn tidak memenuhi batasannya:"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "insn tidak memenuhi batasannya:"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 #| msgid "use of %qs in template"
 msgid "invalid use of %qT in template argument"
@@ -71072,692 +71112,692 @@ msgstr "tipe dari operan asm %qE tidak dapat ditentukan"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "deklarasi __label__ hanya diperbolehkan dalam lingkup fungsi"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in static member function"
 msgstr "penggunaan tidak valid dari anggota %q+D dalam anggota fungsi statis"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "penggunaan tidak valid dari anggota %q+D dalam anggota fungsi statis"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "penggunaan tidak valid dari anggota %q+D dalam anggota fungsi statis"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched arguments"
 msgid "%qE missing template arguments"
 msgstr "argumen tidak cocok"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "cannot call a concept as a function"
 msgstr "%qE tidak dapat digunakan sebagai sebuah fungsi"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "argumen ke destruktor tidak diijinkan"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "%<this%> tidak tersedia untuk anggota fungsi static"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr ""
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr ""
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "%<this%> tidak tersedia untuk anggota fungsi static"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> before it is valid"
 msgstr "penggunaan tidak valid ari %<this%> di tingkat paling atas"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> after it is valid"
 msgstr "penggunaan tidak valid ari %<this%> di tingkat paling atas"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "penggunaan tidak valid dari %<this%> dalam fungsi bukan anggota"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "penggunaan tidak valid ari %<this%> di tingkat paling atas"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "tidak valid pengkualifikasi lingkup dalam nama pseudo-destruktor"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "tipe kualifikasi %qT tidak cocok dengan nama destruktor ~%qT"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE bukan dari tipe %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "compound literal dari tipe bukan-objek %qT"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr ""
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "tipe parameter template harus menggunakan kata kunci %<class%> atau %<typename%>"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "penggunaan tidak valid dari tipe %qT sebagai nilai baku untuk sebuah parameter template"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "argumen baku tidak valid untuk sebuah parameter template template"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "definisi dari %q#T didalam daftar parameter template"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "definisi tidak valid dari tipe pengkualifikasi %qT"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "spesifikasi kelas dasar tidak valid"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, fuzzy, gcc-internal-format
 #| msgid "protected member %q+#D in anonymous union"
 msgid "cannot capture member %qD of anonymous union"
 msgstr "anggota terproteksi %q+#D dalam union anonymous"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a type"
 msgid "%qD is not captured"
 msgstr "%qD bukan sebuah tipe"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<auto%> variable from containing function"
 msgid "use of local variable with automatic storage from containing function"
 msgstr "penggunaan dari variabel %<auto%> dari fungsi yang berisi"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<auto%> variable from containing function"
 msgid "use of parameter from containing function"
 msgstr "penggunaan dari variabel %<auto%> dari fungsi yang berisi"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 #| msgid "alloc_size parameter outside range"
 msgid "use of parameter outside function body"
 msgstr "alloc_size parameter diluar dari jangkauan"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched arguments"
 msgid "missing template arguments"
 msgstr "argumen tidak cocok"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "parameter template %qD dari tipe %qT tidak diijinkan dalam sebuah ekspresi konstanta integral karena ini bukan tipe integral atau enumerasi"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "penggunaan dari template class %qT sebagai ekspresi"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "permintaan untuk anggota %qD adalah ambigu dalam multiple inheritance lattice"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD tidak dapat muncul dalam sebuah ekspresi konstan"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "tipe dari %qE tidak dikenal"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a template type"
 msgid "%qT is not an enumeration type"
 msgstr "%qT bukan sebuah tipe template"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 #| msgid "%Harray bound is not an integer constant"
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "%Harray bound bukan sebuah konstanta integer"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr ""
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specifiers invalid in parameter declarations"
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "penspesifikasi kelas penyimpanan dalam parameter deklarasi"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "tidak dapat mengaplikasikan %<offsetof%> ke destruktor %<~%T%>"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "tidak dapat mengaplikasikan %<offsetof%> ke anggota fungsi %qD"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to member function %qD"
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "tidak dapat mengaplikasikan %<offsetof%> ke anggota fungsi %qD"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to member function %qD"
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "tidak dapat mengaplikasikan %<offsetof%> ke anggota fungsi %qD"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 #| msgid "constructor priorities are not supported"
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "prioritas konstruktor tidak didukung"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 #| msgid "reference to %qD is ambiguous"
 msgid "user defined reduction lookup is ambiguous"
 msgstr "referensi ke %qD adalah ambigu"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr ""
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has invalid type for %<reduction%>"
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE memiliki tipe tidak valid untuk %<reduction%>"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "linear step expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD bukan sebuah variabel dalam clause %qs"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "%qD bukan sebuah variabel dalam clause %<firstprivate%>"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qD bukan sebuah variabel dalam clause %<lastprivate%>"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<gang%> static expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<gang%> static value must be positive"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<gang%> num expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<vector%> length expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<worker%> num expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<gang%> num value must be positive"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<vector%> length value must be positive"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<worker%> num value must be positive"
 msgstr "%<num_threads%> nilai harus positif"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "schedule chunk ukuran ekspresi harus integral"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%qs length expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "%Hkolaps argumen membutuhkan konstanta positif integer ekspresi"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<async%> expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<thread_limit%> expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<device%> id must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, fuzzy, gcc-internal-format
 #| msgid "schedule chunk size expression must be integral"
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "schedule chunk ukuran ekspresi harus integral"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD bukan sebuah variabel dalam clause %qs"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qD muncul lebih dari sekali dalam data clauses"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, fuzzy, gcc-internal-format
 #| msgid "schedule chunk size expression must be integral"
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "schedule chunk ukuran ekspresi harus integral"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD bukan sebuah variabel dalam clause %qs"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD muncul lebih dari sekali dalam data clauses"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr ""
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD bukan sebuah variabel dalam clause %qs"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD muncul lebih dari sekali dalam data clauses"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr ""
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 #| msgid "reimplementation of class %qs"
 msgid "template %qE in clause %qs"
 msgstr "reimplementasi dari class %qs"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<grainsize%> expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<priority%> expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<hint%> expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 #| msgid "%Hcollapse argument needs positive constant integer expression"
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "%Hkolaps argumen membutuhkan konstanta positif integer ekspresi"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<filter%> expression must be integral"
 msgstr "num_threads ekspresi harus integral"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 #| msgid "subscripted value is neither array nor pointer"
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "nilai subscripted adalah bukan array ataupun penunjuk"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 #| msgid "%<tree%> is not defined as a pointer type"
 msgid "%<tile%> argument needs integral type"
 msgstr "%<tree%> tidak didefinisikan sebagai sebuah tipe pointer"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr "%<threadprivate%> %qD bukan berkas, namespace atau blok scope variabel"
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "%<threadprivate%> %qE direktif tidak dalam definisi %qT"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, fuzzy, gcc-internal-format
 #| msgid "%Hdifference between %qE and %qD does not have integer type"
 msgid "difference between %qE and %qD does not have integer type"
 msgstr "%Hperbedaan antara %qE dan %qD tidak memiliki tipe integer"
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid type for iteration variable %qE"
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "%Htipe tidak valid untuk iterasi variabel %qE"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr ""
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 #| msgid "static assertion failed: %E"
 msgid "static assertion failed: %.*s"
 msgstr "static assertion gagal: %E"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "kondisi bukan konstan untuk assertion static"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 #| msgid "argument to decltype must be an expression"
 msgid "argument to %<decltype%> must be an expression"
 msgstr "argumen ke decltype harus berupa sebuah ekspresi"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot resolve address of overloaded function"
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "%s tidak dapat meresolf alamat dari fungsi overloaded"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "%<__builtin_next_arg%> dipanggil tanpa sebuah argumen"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a class or namespace"
 msgid "%qD is not a class or alias template"
 msgstr "%qD bukan sebuah class atau namespace"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
 #| msgid "left-hand operand of comma expression has no effect"
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "operan tangan-kiri dari ekspresi koma tidak memiliki efek"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %qE involves template parameter(s)"
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "template argumen %qE melibatkan parameter template"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %<__builtin_return_address%>"
 msgid "non-pointer argument to %<__builtin_launder%>"
@@ -71766,1293 +71806,1293 @@ msgstr "argumen ke %<__builtin_return_address%> tidak didukung"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "%qV kualifier tidak dapat diaplikasikan ke %qT"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "statement-expression in a constant expression"
 msgstr "Tipe buruk dalam ekspresi konstanta"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid " declared here"
 msgstr "%q+D dideklarasikan disini"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "base class %qT has cv qualifiers"
 msgid "base class %qT is not public"
 msgstr "kelas dasar %qT memiliki cv pengkualifikasi"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a type"
 msgid "%qD is not public"
 msgstr "%qD bukan sebuah tipe"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is mutable"
 msgstr "%qD bukan sebuah variabel"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has an incomplete type"
 msgid "%qD has a non-structural type"
 msgstr "%qD memiliki tipe tidak lengkap"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "%qE atribut hanya dapat diaplikasikan ke definisi class"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute argument not a string constant"
 msgid "%qE attribute argument must be a string constant"
 msgstr "argumen atribut %qs bukan sebuah konstanta string"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "%qE atribut hanya dapat diaplikasikan ke definisi class"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "%qE atribut hanya dapat diaplikasikan ke definisi class"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "%qE atribut hanya dapat diaplikasikan ke definisi class"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qE attribute applies only to functions"
 msgid "%qE attribute takes no arguments"
 msgstr "atribut %J%qE berlaku hanya untuk fungsi"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr ""
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is not an integer constant"
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "permintaan init_priority bukan sebuah konstanta integer"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "hanya dapat menggunakan atribut %qE di definisi lingkup-berkas dari objek dari tipe class"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is out of range"
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "permintaan init_priority diluar dari jangkauan"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is reserved for internal use"
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "permintaan init_priority disimpan untuk penggunaan internal"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as %s"
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "deklarasi dari %qD sebagai %s"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 #| msgid "%qD attribute requires a single NTBS argument"
 msgid "the %qE attribute requires arguments"
 msgstr "%qD atribut membutuhkan sebuah argumen NTBS tunggal"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "argumen dari atribut %qs bukan sebuah konstanta string"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "argumen dari atribut %qs bukan sebuah konstanta string"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a valid declarator"
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%T::%D%> bukan sebuah deklarator yang valid"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a valid declarator"
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%T::%D%> bukan sebuah deklarator yang valid"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on non-class types"
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "%qE atribut diabaikan dalam tipe bukan-class"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes applied to %qT after definition"
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "mengabaikan atribut yang diaplikasikan ke %qT setelah definisi"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes applied to %qT after definition"
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "mengabaikan atribut yang diaplikasikan ke %qT setelah definisi"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes applied to %qT after definition"
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "mengabaikan atribut yang diaplikasikan ke %qT setelah definisi"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qE attribute applies only to functions"
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "atribut %J%qE berlaku hanya untuk fungsi"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute applied to %s %s at %L"
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "%s atribut diaplikasikan ke %s %s di %L"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr ""
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, fuzzy, gcc-internal-format
 #| msgid "array bound is not an integer constant"
 msgid "zero as null pointer constant"
 msgstr "array bound bukan sebuah konstanta integer"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "lang_* check: failed in %s, at %s:%d"
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "pemeriksaan lang_*: gagal dalam %s, di %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "%s diantara tipe penunjuk berbeda %qT dan %qT kurang sebuah cast"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "%s diantara tipe penunjuk berbeda %qT dan %qT kurang sebuah cast"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "%s diantara tipe penunjuk berbeda %qT dan %qT kurang sebuah cast"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ melarang %s diantara penunjuk dari tipe %<void *%> dan penunjuk-ke-fungsi"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ melarang %s diantara penunjuk dari tipe %<void *%> dan penunjuk-ke-fungsi"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ melarang %s diantara penunjuk dari tipe %<void *%> dan penunjuk-ke-fungsi"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "%s diantara penunjuk-ke-anggota tipe berbeda %qT dan %qT kurang sebuah cast"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "%s diantara penunjuk-ke-anggota tipe berbeda %qT dan %qT kurang sebuah cast"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "%s diantara penunjuk-ke-anggota tipe berbeda %qT dan %qT kurang sebuah cast"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 #| msgid "canonical types differ for identical types %T and %T"
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "tipe kanonikal berbeda untuk tipe identik %T dan %T"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, fuzzy, gcc-internal-format
 #| msgid "same canonical type node for different types %T and %T"
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "tipe titik kanonikal sama untuk tipe berbeda %T dan %T"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "aplikasi tidak valid dari %qs ke anggota fungsi"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "aplikasi tidak valid dari %<sizeof%> ke sebuah bit-field"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++ melarang mengaplikasikan %<sizeof%> ke sebuah ekspresi dari tipe fungsi"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "aplikasi tidak valid dari %<__alignof%> ke sebuah bit-field"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++ melarang mengaplikasikan %<__alignof%> ke sebuah ekspresi dari tipe fungsi"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 #| msgid "size of array has non-integral type %qT"
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "ukuran dari array memiliki tipe %qT bukan integral"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "invalid use of non-static member function of type %qT"
 msgstr "penggunaan tidak valid dari anggota fungsi %qD bukan statis"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, fuzzy, gcc-internal-format
 #| msgid "deprecated conversion from string constant to %qT"
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "konversi sudah ditinggalkan dari konstanta string ke %qT"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "konversi sudah ditinggalkan dari konstanta string ke %qT"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, fuzzy, gcc-internal-format
 #| msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "permintaan untuk anggota %qD dalam %qE, yangg tipe bukan class %qT"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "permintaan untuk anggota %qD dalam %qE, yangg tipe bukan class %qT"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of nonstatic data member %qE"
 msgid "invalid use of non-static data member %qE"
 msgstr "penggunaan tidak valid dari anggota data tidak statis %qE"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 #| msgid "invalid access to non-static data member %qD  of NULL object"
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "akses tidak valid ke anggota data tidak statis %qD dari objek KOSONG"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "tipe objek %qT tidak cocok dengan nama destruktor ~%qT"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "tipe yang sedang dihancurkan adalah %qT, tetapi destruktor merefer ke %qT"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE"
 msgstr "%qT tidak memiliki anggota bernama %qE"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr ""
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr ""
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%qT tidak memiliki anggota bernama %qE"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> bukan sebuah anggota dari %qT"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT bukan sebuah basis dari %qT"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD bukan sebuah anggota dari fungsi template"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT bukan sebuah penunjuk-ke-objek tipe"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qs on pointer to member"
 msgid "invalid use of array indexing on pointer to member"
 msgstr "penggunaan tidak valid dari %qs di penunjuk ke anggota"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qs on pointer to member"
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "penggunaan tidak valid dari %qs di penunjuk ke anggota"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qs on pointer to member"
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "penggunaan tidak valid dari %qs di penunjuk ke anggota"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "subscrip hilang dalam referensi array"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "subscripting array dideklarasikan %<register%>"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "nilai subscripted adalah bukan array ataupun penunjuk"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "objek hilang dalam penggunaan dari %qE"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ melarang pemanggilan %<::main%> dari dalam aplikasi"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "harus menggunakan %<.*%> atau %<->*%> untuk memanggil penunjuk-ke-anggota fungsi dalam %<%E (...)%>, contoh %<(... ->* %E) (...)%>"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE tidak dapat digunakan sebagai sebuah fungsi"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "%qD cannot be used as a function"
 msgstr "%qE tidak dapat digunakan sebagai sebuah fungsi"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "expression cannot be used as a function"
 msgstr "%qE tidak dapat digunakan sebagai sebuah fungsi"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to %s %q+#D"
 msgid "too many arguments to constructor %q#D"
 msgstr "terlalu banyak argumen ke %s %q+#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to %s %q+#D"
 msgid "too few arguments to constructor %q#D"
 msgstr "terlalu sedikit argumen ke %s %q+#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qE"
 msgid "too many arguments to member function %q#D"
 msgstr "terlalu banyak argumen ke fungsi %qE"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %qE"
 msgid "too few arguments to member function %q#D"
 msgstr "terlalu sediki argumen ke fungsi %qE"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qE"
 msgid "too many arguments to function %q#D"
 msgstr "terlalu banyak argumen ke fungsi %qE"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %qE"
 msgid "too few arguments to function %q#D"
 msgstr "terlalu sediki argumen ke fungsi %qE"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to %s %q+#D"
 msgid "too many arguments to method %q#D"
 msgstr "terlalu banyak argumen ke %s %q+#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to %s %q+#D"
 msgid "too few arguments to method %q#D"
 msgstr "terlalu sedikit argumen ke %s %q+#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "terlalu banyak argumen ke fungsi"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "terlalu sedikit argumen ke fungsi"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "parameter %P dari %qD memiliki tipe tidak lengkap %qT"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "parameter %P memiliki tipe tidak lengkap %qT"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the address %qE will never be NULL"
 msgstr "alamat dari %qD tidak akan pernah menjadi KOSONG"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "alamat dari %qD tidak akan pernah menjadi KOSONG"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "alamat dari %qD tidak akan pernah menjadi KOSONG"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "alamat dari %qD tidak akan pernah menjadi KOSONG"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "operan ke ?: memiliki tipe berbeda %qT dan %qT"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible types when returning type %qT but %qT was expected"
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "tipe tidak kompatibel ketika mengembalikan tipe %qT tetapi %qT telah diduga"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 #| msgid "same canonical type node for different types %T and %T"
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "tipe titik kanonikal sama untuk tipe berbeda %T dan %T"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "%s diantara tipe penunjuk berbeda %qT dan %qT kurang sebuah cast"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "cast from function call of type %qT to non-matching type %qT"
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "cast dari panggilan fungsi dari tipe %qT ke tipe yang tidak cocok %qT"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 #| msgid "cast from function call of type %qT to non-matching type %qT"
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "cast dari panggilan fungsi dari tipe %qT ke tipe yang tidak cocok %qT"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible types when assigning to type %qT from type %qT"
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "tipe tidak kompatibel dalam penempatan ke tipe %qT dari tipe %qT"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "mengasumsikan cast ke tipe %qT dari fungsi overloaded"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "NULL digunakan dalam aritmetik"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ melarang perbandingan diantara penunjuk dan integer"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %qT and %qT"
 msgid "operand types are %qT and %qT"
 msgstr "perbandingan diantara tipe %qT dan %qT"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with integer zero"
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "perbandingan terurut dari penunjuk dengan integer nol"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 #| msgid "unordered comparison on non-floating point argument"
 msgid "unordered comparison on non-floating-point argument"
 msgstr "perbandingan tidak berurut di argumen bukan titik pecahan"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 #, fuzzy
 #| msgid "request for implicit conversion from %qT to %qT not permitted in C++"
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "meminta untuk konversi implisit dari %qT ke %qT tidak diijinkan dalam C++"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "operang tidak valid untuk tipe %qT dan %qT ke binari %qO"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ melarang menggunakan penunjuk dari tipe %<void *%> dalam pengurangan"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ melarang menggunakan penunjuk ke sebuah fungsi  dalam pengurangan"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ melarang menggunakan penunjuk ke sebuah metoda  dalam pengurangan"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "penggunaan tidak valid dari sebuah penunjuk ke sebuah tipe tidak lengkap dalam aritmetik penunjuk"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of constructor %qD"
 msgstr "memakai alamat dari sementara"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of destructor %qD"
 msgstr "memakai alamat dari sementara"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "penggunaan tidak valid dari %qE untuk membentuk sebuah penunjuk ke anggota fungsi"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  sebuah kualified-id dibutuhkan"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "tanda kurung disekitar %qE tidak dapat digunakan untuk membentuk sebuah penunjuk-ke-anggota-fungsi"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ melarang mengambil alamat dari tidak terkualifikasi atau bertanda kurun anggota bukan statis fungsi untuk membentuk sebuah penunjuk ke anggota fungsi. Katakan %<&%T::%D%>"
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO C++ melarang mengambil alamat dari tidak terkualifikasi atau bertanda kurun anggota bukan statis fungsi untuk membentuk sebuah penunjuk ke anggota fungsi. Katakan %<&%T::%D%>"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ melarang mengambil alamat dari sebuah anggota fungsi terikat ke sebuah bentuk penunjuk ke anggota fungsi. Katakan %<&%T::%D%>"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ melarang mengambil alamat dari sebuah anggota fungsi terikat ke sebuah bentuk penunjuk ke anggota fungsi. Katakan %<&%T::%D%>"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "(sebuah penunjuk ke anggota hanya dapat dibentuk dengan %<&%E%>)"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of rvalue"
 msgstr "memakai alamat dari sementara"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ melarang mengambil alamat dari fungsi %<::main%>"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "tidak dapat membuat penunjuk ke anggota referensi %qD"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take address of bit-field %qD"
 msgid "attempt to take address of bit-field"
 msgstr "tidak dapat mengambil alamat dari bit-field %qD"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr ""
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ melarang menaikkan sebuah enum"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ melarang mengurangi sebuah enum"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "tidak dapat meningkatkan sebuah penunjuk ke tipe tidak lengkap %qT"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "tidak dapat mengurangi penunjuk ke tipe tidak lengkap %qT"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ melarang meningkatkan sebuah penunjuk dari tipe %qT"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ melarang mengurangi sebuah penunjuk dari tipe %qT"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "tidak dapat mengambil alamat dari %<this%>, yang merupakan ekspresi rvalue"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "alamat dari variabel eksplisit register %qD diminta"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "alamat yang diminta untuk %qD, yang dideklarasikan %<register%>"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, fuzzy, gcc-internal-format
 #| msgid "initializer for %qT must be brace-enclosed"
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "penginisialisasi untuk %qT harus berupa kurung dilingkupi"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "expression list treated as compound expression in initializer"
 msgstr "%s daftar ekspresi diperlakukan sebagai ekspresi compound"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "%s daftar ekspresi diperlakukan sebagai ekspresi compound"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "expression list treated as compound expression in functional cast"
 msgstr "%s daftar ekspresi diperlakukan sebagai ekspresi compound"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "%s daftar ekspresi diperlakukan sebagai ekspresi compound"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, fuzzy, gcc-internal-format
 #| msgid "cast from type %qT to type %qT casts away constness"
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "cast dari tipe %qT ke tipe %qT menghilangkan constness"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 #| msgid "static_cast from type %qT to type %qT casts away constness"
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "static_cast dari tipe %qT ke tipe %qT menghilangkan constness"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 #| msgid "reinterpret_cast from type %qT to type %qT casts away constness"
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "reinterpret_cast dari tipe %qT ke tipe %qT menghilangkan constness"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type %qT"
 msgid "useless cast to type %q#T"
 msgstr "cast ke fungsi tipe %qT tidak valid"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "type qualifiers ignored on cast result type"
 msgstr "tipe pengkualifikasi diabaikan di tipe kembali fungsi"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "tidak valid static_cast dari tipe %qT ke tipe %qT"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "class type %qT is incomplete"
 msgstr "tipe kembali %q#T tidak lengkap"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 #| msgid "converting from %qT to %qT"
 msgid "converting from %qH to %qI"
 msgstr "mengubah dari %qT ke %qT"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "cast tidak valid dari sebuah ekspresi rvalue dari tipe %qT ke tipe %qT"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 #, fuzzy
 #| msgid "cast from %qT to %qT loses precision"
 msgid "cast from %qH to %qI loses precision"
 msgstr "cast dari %qT ke %qT kehilangan presisi"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 #, fuzzy
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "%s diantara penunjuk-ke-anggota tipe berbeda %qT dan %qT kurang sebuah cast"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 #| msgid "cast from %qT to %qT increases required alignment of target type"
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "cast dari %qT ke %qT menaikan alignmen yang dibutuhkan dari tipe target"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "ISO C++ melarang casting diantara penunjuk ke fungsi dan penunjuk ke objek"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "cast dari tipe %qT ke tipe %qT tidak valid"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "penggunaan tidak valid dari const_cast dengan tipe %qT, yang bukan sebuah penunjuk, referensi, ataupun sebuah tipe penunjuk-ke-anggota-data"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "penggunaan tidak valid dari const_cast dengan tipe %qT, yang merupakan sebuah penunjuk atau referensi ke sebuah tipe fungsi"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast of an rvalue of type %qT to type %qT"
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "const_cast tidak valid dari sebuah rvalue dari tipe %qT ke tipe %qT"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast from type %qT to type %qT"
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "const_cast dari tipe %qT ke tipe %qT tidak valid"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ melarang casting ke sebuah tipe array %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "cast ke fungsi tipe %qT tidak valid"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qE from type %qT to type %qT"
 msgid "moving %qE of type %qT to itself"
 msgstr "tidak dapat mengubah %qE dari tipe %qT ke tipe %qT"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  dalam evaluasi dari %<%Q(%#T, %#T)%>"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, fuzzy, gcc-internal-format
 #| msgid "nonconstant array index in initializer"
 msgid "assigning to an array from an initializer list"
 msgstr "indeks array bukan konstan dalam penginisialisasi"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "tipe tidak kompatibel dalam assignmen dari %qT ke %qT"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "array digunakan sebagai penginisialisasi"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "assignmen array tidak valid"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   dalam penunjuk ke anggota fungsi konversi"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "penunjuk ke anggota konversi melalui basis maya %qT"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   dalam penunjuk ke anggota konversi"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "konversi tidak valid ke tipe %qT dari tipe %qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 #| msgid "cannot convert %qT to %qT for argument %qP to %qD"
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "tidak dapat mengubah %qT ke %qT untuk argumen %qP ke %qD"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "tidak dapat mengubah %qT ke %qT dalam %s"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "tidak dapat mengubah %qT ke %qT dalam %s"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in return"
 msgstr "tidak dapat mengubah %qT ke %qT dalam %s"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "tidak dapat mengubah %qT ke %qT dalam %s"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE might be a candidate for a format attribute"
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "argumen %d dari %qE mungkin menjadi sebuah kandidat untuk sebuah format atribut"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, fuzzy, gcc-internal-format
 #| msgid "return type might be a candidate for a format attribute"
 msgid "parameter might be a candidate for a format attribute"
 msgstr "tipe kembali mungkin berupa sebuah kandidat untuk sebuah atribut format"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, fuzzy, gcc-internal-format
 #| msgid "argument of function call might be a candidate for a format attribute"
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "argumen dari fungsi panggilan mungkin menjadi sebuah kandidat untuk sebuah atribut format"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, fuzzy, gcc-internal-format
 #| msgid "argument of function call might be a candidate for a format attribute"
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "argumen dari fungsi panggilan mungkin menjadi sebuah kandidat untuk sebuah atribut format"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, fuzzy, gcc-internal-format
 #| msgid "assignment left-hand side might be a candidate for a format attribute"
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "penempatan sisi tangan-kiri mungkin menjadi sebuah kandidat untuk sebuah atribut format"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 #| msgid "in passing argument %P of %q+D"
 msgid "in passing argument %P of %qD"
 msgstr "dalam melewatkan argumen %P dari %q+D"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "mengembalikan referensi ke sementara"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "mengembalikan referensi ke sementara"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, fuzzy, gcc-internal-format
 #| msgid "reference to local variable %q+D returned"
 msgid "reference to local variable %qD returned"
 msgstr "referensi ke variabel lokal %q+D dikembalikan"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of label %qD returned"
 msgstr "alamat dari variabel lokal %q+D dikembalikan"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of local variable %qD returned"
 msgstr "alamat dari variabel lokal %q+D dikembalikan"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operand in return statement"
 msgid "redundant move in return statement"
 msgstr "operan tidak valid dalam pernyataan return"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 #| msgid "<During initialization>\n"
 msgid "redundant move in initialization"
 msgstr "<Selama inisialisasi>\n"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "mengembalikan sebuah nilai dari sebuah destruktor"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "tidam dapat kembali dari sebuah penanganan dari sebuah fungsi-coba-blok dari sebuah konstruktor"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "mengembalikan sebuah nilai dari sebuah konstruktor"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "pernyataan-kembali dengan tidak ada nilai, dalam fungsi mengembalikan %qT"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer"
 msgid "returning initializer list"
 msgstr "hilang penginisialisasi"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr ""
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr ""
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 #| msgid "return-statement with no value, in function returning %qT"
 msgid "return-statement with a value, in function returning %qT"
 msgstr "pernyataan-kembali dengan tidak ada nilai, dalam fungsi mengembalikan %qT"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, fuzzy, gcc-internal-format
 #| msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%> harus tidak mengembalikan KOSONG kecuali ini dideklarasikan %<throw()%> (atau ada dalam pengaruh -fcheck-new )"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr ""
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 #| msgid "invalid %%s value"
 msgid "using rvalue as lvalue"
@@ -73303,169 +73343,169 @@ msgstr ""
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "sintaks konstruktor digunakan, tetapi tidak ada konstruktor dideklarasikan untuk tipe %qT"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 #| msgid "interface %qs does not have valid constant string layout"
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "antar-muka %qs tidak memiliki layout konstanta string yang valid"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 #| msgid "narrowing conversion of %qE from %qT to %qT inside { }"
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "menyempitkan konversi %qE dari %qT ke %qT didalam { }"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 #| msgid "narrowing conversion of %qE from %qT to %qT inside { }"
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "menyempitkan konversi %qE dari %qT ke %qT didalam { }"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr ""
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 #| msgid "initializer-string for array of chars is too long"
 msgid "initializer-string for %qT is too long"
 msgstr "inisialisasi-string untuk array dari karakter terlalu panjang"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "remove %<{ }%> around initializer"
 msgstr "kurung disekitar penginisialisasi skalar"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "tidak dapat menginisialisasi kumpulan dari tipe %qT dengan sebuah kompound literal"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "hilang penginisialisasi untuk anggota %qD"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "anggota %qD referensi tidak terinisialisasi"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD is uninitialized reference"
 msgid "member %qD with uninitialized reference fields"
 msgstr "anggota %qD referensi tidak terinisialisasi"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 #| msgid "prototype for %q#D does not match any in class %qT"
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "prototipe untuk %q#D tidak cocok dengan kelas apapun %qT"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "tidak ada field %qD ditemukan dalam union sedang diinisialisasi"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "nilai indeks daripada nama field dalam union penginisialisasi"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "penunjuk circular delegasi terdeteksi"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "operan dasar dari %<->%> memiliki tipe bukan penunjuk %qT"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "hasil dari %<operator->()%> menghasilkan hasil bukan penunjuk"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "operan dasar dari %<->%> bukan sebuah penunjuk"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE tidak dapat digunakan sebagai sebuah anggota penunjuk, karena ini adalah tipe %qT"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "tidak dapat mengaplikasikan anggota penunjuk %qE ke %qE, yang dari tipe bukan class %qT"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "penunjuk ke anggota tipe %qT tidak kompatibel dengan tipe objek %qT"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "penunjuk ke anggota fungsi digunakan dalam aritmetik"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "penunjuk ke anggota fungsi digunakan dalam aritmetik"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr ""
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type %qT"
 msgid "functional cast to array type %qT"
 msgstr "cast ke fungsi tipe %qT tidak valid"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr ""
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, fuzzy, gcc-internal-format
 #| msgid "%s only available with -std=c++0x or -std=gnu++0x"
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%s hanya tersedia dengan -std=c++0x atau -std=gnu++0x"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, fuzzy, gcc-internal-format
 #| msgid "invalid value-initialization of reference types"
 msgid "invalid value-initialization of reference type"
 msgstr "nilai-inisialisasi dari referensi tidak valid"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "panggilan ke fungsi %qD yang melemparkan tipe tidak lengkap %q#T"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "panggilan ke fungsi yang melemparkan tipe tidak lengkap %q#T"
@@ -74534,7 +74574,7 @@ msgstr ""
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "argumen dari atribut %qs bukan sebuah konstanta string"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad kind for logical constant at %C"
 msgid "Invalid use of BOZ literal constant at %L"
@@ -76026,7 +76066,7 @@ msgstr "Spesifikasi INTENT buruk di %C"
 msgid "deferred type parameter at %C"
 msgstr "menggunakan parameter tipe template %qT setelah %qs"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -76272,7 +76312,7 @@ msgstr ""
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "Komponen array dari struktur di %C harus memiliki bentuk eksplisit atau deffered"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "Component %qs at %C already declared at %L"
@@ -77151,7 +77191,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "Diduga daftar argumen formal dalam definisi fungsi di %C"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr "atribut BIND(C) di %L hanya dapat digunakan untuk variabel atau blok umum"
@@ -78033,12 +78073,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr "INTENT(%s) argumen aktual di %L mungkin menginterferensi dengan argumen aktual di %L."
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -78308,302 +78348,302 @@ msgstr "Parameter '%s' di %L belum terdeklarasi atau sebuah variabel, yang tidak
 msgid "check_init_expr(): Unknown expression type"
 msgstr "Diduga tipe ekspresi"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be a statement function"
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "Fungsi spesifikasi '%s' di %L tidak dapat berupa sebuah pernyataan fungsi"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be an internal function"
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "Spesifikasi fungsi '%s' di %L tidak dapat berupa sebuah internal fungsi"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L must be PURE"
 msgid "Specification function %qs at %L must be PURE"
 msgstr "Spesifikasi fungsi '%s' di %L harus berupa PURE"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be RECURSIVE"
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "Spesifikasi fungsi '%s' di %L tidak dapat REKURSIF"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' not allowed in expression at %L"
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "Dummy argumen '%s' tidak diijinkan dalam ekspresi di %L"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be OPTIONAL"
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "Dummy argumen '%s' di %L tidak dapat berupa OPSIONAL"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "Dummy argumen '%s' di %L tidak dapat berupa INTENT(OUT)"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "Variabel '%s' tidak dapat muncul dalam ekspresi di %L"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression type"
 msgid "check_restricted(): Unknown expression type"
 msgstr "Diduga tipe ekspresi"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "Ekspresi di %L harus berupa tipe INTEGER, ditemukan %s"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L must be PURE"
 msgid "Function %qs at %L must be PURE"
 msgstr "Fungsi '%s' di %L harus berupa PURE"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "Ekspresi di %L harus berupa skalar"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "Tingkat tidak kompatibel dalam %s (%d dan %d) di %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "Bentuk berbeda untuk %s di %L dalam dimensi %d (%d dan %d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L is not a VALUE"
 msgid "%qs at %L is not a VALUE"
 msgstr "'%s' di %L bukan sebuah NILAI"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Illegal stride of zero at %L"
 msgid "Illegal assignment to external procedure at %L"
 msgstr "Tidak legal stride dari nol di %L"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "Tingkat tidak kompatibel %d dan %d dalam penempatan di %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "Tipe variabel adalah TIDAK DIKETAHUI dalam penempatan di %L"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "NULL muncul di sisi kanan dalam penempatan di %L"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "POINTER valued function appears on right-hand side of assignment at %L"
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "fungsi dinilai POINTER muncul di sisi kanan dari penempatan di %L"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "Tipe tidak kompatibel dalam pernyataan DATA di %L; dicoba mengubah %s ke %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "Penempatan target penunjuk bukan sebuah PENUNJUK di %L"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "'%s' dalam penempatan penunjuk di %L tidak dapat berupa sebuah nilai-kiri karena iniadalah sebuah prosedur"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, fuzzy, gcc-internal-format
 #| msgid "Expected bounds specification for '%s' at %L"
 msgid "Expected bounds specification for %qs at %L"
 msgstr "Diduga spesifikasi terikat untuk '%s' di %L"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: Bounds specification for '%s' in pointer assignment at %L"
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Fortran 2003: Spesifikasi terikat untuk '%s' dalam penempatan penunjuk di %L"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "stack size must not be greater than 64k"
 msgid "Stride must not be present at %L"
 msgstr "ukuran stack harus lebih besar  dari 64k"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "External object '%s' at %L may not have an initializer"
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "Objek eksternal '%s' di %L tidak boleh memiliki sebuah penginisialisasi"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "Penempatan penunjuk prosedur tidak valid di %L"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, fuzzy, gcc-internal-format
 #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, fuzzy, gcc-internal-format
 #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, fuzzy, gcc-internal-format
 #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, fuzzy, gcc-internal-format
 #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, fuzzy, gcc-internal-format
 #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, fuzzy, gcc-internal-format
 #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr ""
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, fuzzy, gcc-internal-format
 #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, fuzzy, gcc-internal-format
 #| msgid "Expected a procedure for argument '%s' at %L"
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "Diduga sebuah prosedur untuk argumen '%s' di %L"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate interface declaration for class %qs"
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "duplikasi deklarasi antar-muka untuk class %qs"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid procedure pointer assignment at %L"
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "Penempatan penunjuk prosedur tidak valid di %L"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "Penempatan target penunjuk bukan sebuah PENUNJUK di %L"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "Tipe berbeda dalam penempatan penunjuk di %L; mencoba penempatan dari %s ke %s"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "Jenis parameter berbeda dalam penempatan penunjuk di %L"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "Tingkat berbeda dalam penempatan penunjuk di %L"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Rank remapping target is not rank 1 at %L"
@@ -78612,205 +78652,205 @@ msgstr "Penempatan target penunjuk bukan sebuah PENUNJUK di %L"
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Data target at %L shall not have a coindex"
 msgstr "Elemen pemindahan data di %L tidak dapat memiliki komponen PENUNJUK"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "Pemilihan ekspresi dalam pernyataan GOTO yang terhitung di %L harus berupa sebuah ekspresi integer skalar"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "Target penempatan penunjuk memiliki atribut PROTECTED di %L"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "Argumen dari pernyataan SELECT di %L harus berupa sebuah ekspresi skalar"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "Target penempatan penunjun baik bukan TARGET ataupun PENUNJUN di %L"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "Target buruk dalam penempatan penunjuk dalam prosedur PURE di %L"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "Penempatan penunjuk dengan subscrip vektori di rhs di %L"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "Target penempatan penunjuk memiliki atribut PROTECTED di %L"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr ""
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "Argumen dari prosedur FINAL di %L harus berupa DAPAT-DIALOKASIKAN"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Component at %C must have the POINTER attribute"
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "Komponen di %C harus memiliki sebuah atribut PENUNJUK"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Component at %C must have the POINTER attribute"
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "Komponen di %C harus memiliki sebuah atribut PENUNJUK"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 #| msgid "Abstract interface '%s' is invalid in procedure pointer assignment at %L"
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Antarmuka abstrak '%s' tidak valid dalam penempatan penunjuk prosedur di %L"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Fortran 2003: Noninteger exponent in an initialization expression at %L"
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "Fortran 2003: eksponen bukan integer dalam sebuah ekspresi inisialisasi di %L"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, fuzzy, gcc-internal-format
 #| msgid "Argument to '%s' at %L is not a variable"
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "Argumen ke '%s' di %L bukan sebuah variabel"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "Variabel '%s' tidak dapat muncul dalam ekspresi di %L"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 #| msgid "Variable %s cannot be assigned in PURE procedure at %C"
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "Variabel %s tidak dapat ditempatkan dalam prosedur PURE di %C"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr ""
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr ""
@@ -78833,8 +78873,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "Membuat array sementara di %L"
@@ -78924,7 +78964,7 @@ msgstr "Variabel '%s' di %C tidak dapat diredefinisi didalam loop berawal di %L"
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "Variabel '%s' di %C tidak dapat diredefinisi didalam loop berawal di %L"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -79068,12 +79108,12 @@ msgstr "Argumen pertama dari penempatan yang didefinisikan di %L harus berupa IN
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "Argumen kedua dari penempatan didefinisikan di %L harus berupa INTENT(IN)"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "Argumen pertama dari antar-muka operator di %L harus berupa INTENT(IN)"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "Argumen kedua dari antar-muka operator di %L harus berupa INTENT(IN)"
@@ -80058,7 +80098,7 @@ msgstr "Konversi dari %s ke %s di %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Can't convert %s to %s at %L"
 msgid "Cannot convert %s to %s at %L"
@@ -80685,7 +80725,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST object '%s' in namelist '%s' at %L cannot have ALLOCATABLE components"
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
@@ -80866,6 +80906,11 @@ msgstr "Integer overflow"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
@@ -81319,7 +81364,7 @@ msgstr ""
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "Penunjuk Cray di %C harus berupa sebuah integer"
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s at %L must be a scalar"
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
@@ -81892,91 +81937,91 @@ msgstr "Sintaks error dalam pernyataan TERPROTEKSI di %C"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Empty IMPLICIT statement at %C"
 msgid "SELECT RANK statement at %C"
 msgstr "Pernyataan IMPLISIT kosong di %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in SAVE statement at %C"
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "Sintaks error dalam pernyataan SAVE di %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "Diduga pernyataan CASE di %C"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in CASE specification at %C"
 msgstr "Sintaks error dalam spesifikasi CASE di %C"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "Tidak terduga pernyataan END di %C"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "Sintaks error dalam spesifikasi CASE di %C"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "Sintaks error dalam spesifikasi CASE di %C"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected RANK statement at %C"
 msgstr "Tidak terduga pernyataan END di %C"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL stride expression at %L must be a scalar %s"
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "FORALL stride ekspresi di %L harus berupa sebuah skalar %s"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in RANK specification at %C"
 msgstr "Sintaks error dalam spesifikasi CASE di %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "pernyataan ELSEWHERE di %C tidak terenklose dalam blok WHERE"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, fuzzy, gcc-internal-format
 #| msgid "Label '%s' at %C doesn't match WHERE label '%s'"
 msgid "Label %qs at %C doesn't match WHERE label %qs"
@@ -83521,8 +83566,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "IF clause di %L membutuhkan sebuah ekspresi skalara LOGIKAL"
@@ -86130,13 +86175,13 @@ msgstr "Intrinsik '%s' dideklarasikan INTRINSIC di %L tidak tersedia dalam konfi
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "Bukan prosedur REKURSIF '%s' di %L mungkin memanggil dirinya sendiri secara rekursif. Deklarasikan itu secara RECURSIVE atau gunakan -frecursive"
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, fuzzy, gcc-internal-format
 #| msgid "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively.  Declare it RECURSIVE or use -frecursive"
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "Bukan prosedur REKURSIF '%s' di %L mungkin memanggil dirinya sendiri secara rekursif. Deklarasikan itu secara RECURSIVE atau gunakan -frecursive"
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "Label %d direferensikan di %L tidak pernah terdefinisi"
@@ -86273,7 +86318,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "Fungsi '%s' di %L tidak memiliki tipe IMPLISIT"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L has no IMPLICIT type"
 msgid "Function %qs at %L has no IMPLICIT type"
@@ -86712,298 +86757,304 @@ msgstr "Intrinsik subroutine '%s' di %L tidak boleh memiliki sebuah penspesifika
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "Intrinsik subroutine '%s' di %L tidak boleh memiliki sebuah penspesifikasi tipe"
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 #| msgid "Bad array reference at %L"
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "Referensi array buruk di %L"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s', used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr "Variabel '%s', digunakan dalam sebuah ekspresi spesifikasi, direferensikan di %L sebelum pernyataan MASUKAN dimana ini adalah sebuah parameter"
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' is used at %L before the ENTRY statement in which it is a parameter"
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr "Variabel '%s' digunakan di %L sebelum pernyataan MASUKAN dimana ini adalah sebuah parameter"
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable %qs is declared %s"
 msgid "Using variable %qs at %L is deprecated"
 msgstr "instance variabel %qs dideklarasikan %s"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Bad array reference at %L"
+msgid "Invalid array reference at %L"
+msgstr "Referensi array buruk di %L"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "Objek yang dilewatkan di %L harus berupa skalar"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L must be scalar"
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "Argumen '%s' dari prosedur elemental di %L harus berupa skalar"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, fuzzy, gcc-internal-format
 #| msgid "Found no matching specific binding for the call to the GENERIC '%s' at %L"
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr "Tidak ditemukan pengikatan spesifik yang cocok untuk panggilan ke GENERIC '%s' di %L"
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L should be a SUBROUTINE"
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "'%s' di %L seharusnya berupa sebuah SUBROUTINE"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L should be a FUNCTION"
 msgid "%qs at %L should be a FUNCTION"
 msgstr "'%s' di %L seharusnya berupa sebuah FUNGSI"
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression type"
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "Diduga tipe ekspresi"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s di %L harus berupa sebuah skalar"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Deleted feature: %s at %L must be integer"
 msgid "%s at %L must be integer"
 msgstr "Featur terhapus: %s di %L harus berupa integer"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s di %L harus berupa INTEGER"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "Ekspresi step dalam loop DO di %L tidak dapat berupa nol"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "FORALL nama-indeks di %L harus berupa sebuah skalar INTEGER"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "FORALL awal ekspresi di %L harus berupa sebuah skalar INTEGER"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "FORALL akhir ekspresi di %L harus berupa sebuah skalar INTEGER"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "FORALL stride ekspresi di %L harus berupa sebuah skalar %s"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "FORALL stride ekspresi di %L tidak dapat berupa nol"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, fuzzy, gcc-internal-format
 #| msgid "FORALL index '%s' may not appear in triplet specification at %L"
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "FORALL indeks '%s' mungkin tidak muncul dalam spesifikasi triplet di %L"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expression in ALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "Ekspresi dalam pernyataan ALOKASI di %L harus berupa DAPAT DIALOKASIKAN atau sebuah PENUNJUK"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "Spesifikasi array dibutuhkan dalam pernyatan ALOKASI di %L"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array specification required in ALLOCATE statement at %L"
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "Spesifikasi array dibutuhkan dalam pernyatan ALOKASI di %L"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array specification required in ALLOCATE statement at %L"
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "Spesifikasi array dibutuhkan dalam pernyatan ALOKASI di %L"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad array specification in ALLOCATE statement at %L"
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "Spesifikasi array buruk dalam pernyataan ALOKASI di %L"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "Spesifikasi array buruk dalam pernyataan ALOKASI di %L"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "'%s' tidak boleh muncul dalam spesifikasi array di %L dalam pernyataan ALOKASI yang sama dimana ini sendiri dialokasikan"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 #| msgid "Bad array specification in ALLOCATE statement at %L"
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "Spesifikasi array buruk dalam pernyataan ALOKASI di %L"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "pernyataan ASSIGN di %L membutuhkan sebuah skalar baku variabel INTEGER"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "Label di %L tidak dalam blok yang sama seperti pernyataan GOTO di %L"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "pernyataan ASSIGN di %L membutuhkan sebuah skalar baku variabel INTEGER"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -87012,310 +87063,310 @@ msgstr ""
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "CASE label di %L overlaps dengan CASE label di %L"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "Ekspresi dalam pernyataan CASE di %L harus berupa tipe %s"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "Ekspresi dalam pernyataan CASE di %L harus berupa tipe %d"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "Ekspresi dalam pernyataan CASE di %L harus berupa skalar"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "Pemilihan ekspresi dalam pernyataan GOTO yang terhitung di %L harus berupa sebuah ekspresi integer skalar"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "Argumen dari pernyataan SELECT di %L tidak dapat berupa %s"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "Argumen dari pernyataan SELECT di %L harus berupa sebuah ekspresi skalar"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expression in CASE statement at %L must be of type %s"
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "Ekspresi dalam pernyataan CASE di %L harus berupa tipe %s"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "KASUS BAKU di %L tidak dapat diikuti oleh sebuah KASUS BAKU kedua di %L"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "Jangkauan logikal dalam pernyataan CASE di %L tidak diperbolehkan"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "constant logical value in CASE statement is repeated at %L"
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "nilai logikan konstan dalam pernyataan CASE diulang di %L"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "Spesifikasi jangkauan di %L tidak pernah cocok"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "Logikal SELECT CASE blok di %L memiliki lebih dari dua kasus"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr ""
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 #| msgid "The name '%s' cannot be used as a defined operator at %C"
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "Nama '%s' tidak dapat digunakan sebagai sebuah operator terdefinisi di %C"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr ""
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Iterator step at %L cannot be zero"
 msgid "Selector at %L cannot be NULL()"
 msgstr "Langkah iterasi di %L tidak dapat nol"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Function '%s' at %L has no IMPLICIT type"
 msgid "Selector at %L has no type"
 msgstr "Fungsi '%s' di %L tidak memiliki tipe IMPLISIT"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr ""
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in EQUIVALENCE statement at %L"
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "Sintaks error dalam pernyataan EKUIVALEN di %L"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Deleted feature: %s at %L must be integer"
 msgid "Selector at %L must not be coindexed"
 msgstr "Featur terhapus: %s di %L harus berupa integer"
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "CASE label at %L overlaps with CASE label at %L"
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "CASE label di %L overlaps dengan CASE label di %L"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %L is empty"
 msgid "Derived type %qs at %L must be extensible"
 msgstr "Tipe turunan '%s' di %L adalah kosong"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %L is empty"
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "Tipe turunan '%s' di %L adalah kosong"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected %s statement at %C"
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "Tidak terduga pernyataan %s di %C"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr ""
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid context for NULL() pointer at %%L"
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Konteks tidak valid untuk penunjuk NULL() di %%L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Interface '%s' of procedure '%s' at %L must be explicit"
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "Antar-muka '%s' dari prosedur '%s' di %L harus berupa eksplisit"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "Elemen pemindahan data di %L tidak dapat memiliki komponen PENUNJUK"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "Elemen pemindahan data di %L tidak dapat memiliki komponen PENUNJUK"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have ALLOCATABLE components"
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "Elemen pemindahan data di %L tidak dapat memiliki komponen DAPAT DIALOKASIKAN"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "Elemen pemindahan data di %L tidak dapat memiliki komponen PRIVATE"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have PRIVATE components"
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "Elemen pemindahan data di %L tidak dapat memiliki komponen PRIVATE"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "Elemen pemindahan data di %L tidak dapat berupa sebuah referensi lengkap ke sebuah array yang ukurannya diasumsikan"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "FORALL nama-indeks di %L harus berupa sebuah skalar INTEGER"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "By-value argument at %L cannot be an array or an array section"
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "Argumen dengan nilai di %L tidak dapat berupa sebuah array atau sebuah daerah array"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "By-value argument at %L cannot be an array or an array section"
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "Argumen dengan nilai di %L tidak dapat berupa sebuah array atau sebuah daerah array"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "pernyataan ASSIGN di %L membutuhkan sebuah skalar baku variabel INTEGER"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "pernyataan ASSIGN di %L membutuhkan sebuah skalar baku variabel INTEGER"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument dim at %L must be scalar"
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "Argumen dim di %L harus berupa skalar"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "NUM_THREADS clause at %L requires a scalar INTEGER expression"
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "NUM_THREADS clause di %L membutuhkan sebuah ekspresi skalar INTEGER"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "Argumen dari pernyataan SELECT di %L harus berupa sebuah ekspresi skalar"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of ACOS at %L must be between -1 and 1"
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "Argumen dari ACOS di %L harus berada diantara -1 dan 1"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "Pernyataan di %L bukan sebuah pernyataan pencabangan target yang valid untuk sebuah pernyataan percabangan di %L"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr "Cabang di %L bisa menyebabkan sebuah loop tak terhingga"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr ""
@@ -87323,222 +87374,222 @@ msgstr ""
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "Label di %L tidak dalam blok yang sama seperti pernyataan GOTO di %L"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "DIMANA mask di %L memiliki bentuk tidak konsisten"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "penempatan target WHERE di %L memiliki bentuk tidak konsisten"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr "penempatan bukan-ELEMEN didefinisikan-pengguna dalam WHERE di %L"
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "Pernyataan didalam WHERE di %L tidak didukung"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "Penempatan ke sebuah indeks variabel FORALL di %L"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, fuzzy, gcc-internal-format
 #| msgid "The FORALL with index '%s' is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "FORALL dengan indeks '%s' tidak digunakan di sisi kiri dari penempatan di %L dan jadi mungkin menyebabkan penempatan berulang di objek ini"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "FORALL nama-indeks di %L harus berupa sebuah skalar INTEGER"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "Sebuah konstruks FORALL luar telah memiliki sebuah indeks dengan nama ini %L"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "WHERE/ELSEWHERE clause di %L membutuhkan sebuah array LOGIKAL"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr ""
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L"
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "Ekspresi KARAKTER akan dipotong dalam penempatan (%d/%d) di %L"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "The impure variable at %L is assigned to a derived type variable with a POINTER component in a PURE procedure (12.6)"
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "Variabel impure di %L ditempatkan ke sebuah tipe variabel turunan dengan sebuah komponen PENUNJUK dalam sebuah prosedur PURE (12.6)"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assignment to a FORALL index variable at %L"
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "Penempatan ke sebuah indeks variabel FORALL di %L"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assignment to a FORALL index variable at %L"
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "Penempatan ke sebuah indeks variabel FORALL di %L"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid procedure pointer assignment at %L"
 msgid "Pointer procedure assignment at %L"
 msgstr "Penempatan penunjuk prosedur tidak valid di %L"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr ""
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "Argumen dari pernyataan SELECT di %L harus berupa sebuah ekspresi skalar"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "FORALL awal ekspresi di %L harus berupa sebuah skalar INTEGER"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "pernyataan GOTO ASSIGNED di %L membutuhkan sebuah variabel INTEGER"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' has not been assigned a target label at %L"
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "Variabel '%s' belum pernah ditempatkan sebuah label target di %L"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "Pernyataan RETURN alternatif di %L membutuhkan sebuah SKALAR-INTEGER return penspesifikasi"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected initialization expression in CASE at %C"
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "Diduga ekspresi inisialisasi dalam CASE di %C"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "pernyataan ASSIGN di %L membutuhkan sebuah skalar baku variabel INTEGER"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid kind for %s at %L"
 msgid "Invalid NULL at %L"
 msgstr "Jenis tidak valid untuk %s di %L"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Arithmetic IF statement at %L requires a numeric expression"
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "Pernyataan aritmetik IF di %L membutuhkan sebuah ekspresi numerik"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "Kondisi keluar dari loop DO WHILE di %L harus berupa sebuah ekspresi skalar LOGIKAL"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL mask clause at %L requires a LOGICAL expression"
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "FORALL mask clause di %L membutuhkan sebuah ekspresi LOGIKAL"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_trans_code(): Pernyataan kode buruk"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 #| msgid "Unused parameter '%s' declared at %L"
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "Parameter '%s' tidak digunakan dideklarasikan di %L"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, fuzzy, gcc-internal-format
 #| msgid "Binding label '%s' at %L collides with the global entity '%s' at %L"
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
@@ -87546,7 +87597,7 @@ msgstr "Binding label '%s' di %L collides dengan global entity '%s' di %L"
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr ""
@@ -87554,1127 +87605,1127 @@ msgstr ""
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, fuzzy, gcc-internal-format
 #| msgid "Binding label '%s' at %L collides with the global entity '%s' at %L"
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "Binding label '%s' di %L collides dengan global entity '%s' di %L"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "size of array %qs is too large"
 msgid "String length at %L is too large"
 msgstr "ukuran dari array %qs adalah terlalu besar"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable array '%s' at %L must have a deferred shape"
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "Array dapat dialokasikan '%s' di %L harus memiliki sebuah bentuk deferred"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, fuzzy, gcc-internal-format
 #| msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "Objek skalar '%s' di %L mungkin tidak dapat DIALOKASIKAN"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, fuzzy, gcc-internal-format
 #| msgid "Array pointer '%s' at %L must have a deferred shape"
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "Penunjuk array '%s' di %L harus memiliki sebuah bentuk deffered"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L cannot have a deferred shape"
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "Array '%s' di %L tidak dapat memiliki sebuah bentuk deferred"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, fuzzy, gcc-internal-format
 #| msgid "The type '%s' cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr "Tipe '%s' tidak dapat host assosiasi di %L karena ini diblok dengan sebuah objek tidak kompatibel dari nama sama yang dideklarasikan di %L"
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr ""
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, fuzzy, gcc-internal-format
 #| msgid "The module or main program array '%s' at %L must have constant shape"
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "Modul atau array aplikasi utama '%s' di %L harus memiliki bentuk konstan"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "Entity dengan panjang karakter diasumsikan di %L harus berupa sebuah argumen dummy atau sebuah PARAMETER"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must have constant character length in this context"
 msgid "%qs at %L must have constant character length in this context"
 msgstr "'%s' di %L harus memiliki panjang karakter konstan dalam konteks ini"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must have constant character length in this context"
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "'%s' di %L harus memiliki panjang karakter konstan dalam konteks ini"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable '%s' at %L cannot have an initializer"
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "Dapat dialokasikan '%s' di %L tidak dapat memiliki sebuah penginisialisasi"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, fuzzy, gcc-internal-format
 #| msgid "External '%s' at %L cannot have an initializer"
 msgid "External %qs at %L cannot have an initializer"
 msgstr "Eksternal '%s' di %L tidak dapat memiliki sebuah penginisialisasi"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy '%s' at %L cannot have an initializer"
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "Dummy '%s' di %L tidak dapat memiliki sebuah penginisialisasi"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L cannot have an initializer"
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "Intrinsik '%s' di %L tidak dapat memiliki sebuah penginisialisasi"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, fuzzy, gcc-internal-format
 #| msgid "Function result '%s' at %L cannot have an initializer"
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "Hasil fungsi '%s' di %L tidak dapat memiliki sebuah penginisialisasi"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, fuzzy, gcc-internal-format
 #| msgid "Automatic array '%s' at %L cannot have an initializer"
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "Array otomatis '%s' di %L tidak dapat memiliki sebuah penginisialisasi"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "in %s, at %s:%d"
 msgid "%s at %L"
 msgstr "dalam %s, di %s:%d"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, fuzzy, gcc-internal-format
 #| msgid "Character-valued statement function '%s' at %L must have constant length"
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "Pernyataan fungsi nilai-karakter '%s' di %L harus memiliki panjang konstant"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: '%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L"
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "Fortran 2003: '%s' adalah sebuah tipe PRIVATE dan tidak dapat berupa sebuah argumen dummy dari '%s', yang mana ini adalah PUBLIK di %L"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: Procedure '%s' in PUBLIC interface '%s' at %L takes dummy arguments of '%s' which is PRIVATE"
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr "Fortran 2003: Prosedur '%s' dalam antar-muka PUBLIK '%s' di %L memakai argumen dummy dari '%s' dimana ini adalah PRIVATE"
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L cannot have an initializer"
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "Fungsi '%s' di %L tidak dapat memiliki sebuah penginisialisasi"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, fuzzy, gcc-internal-format
 #| msgid "External object '%s' at %L may not have an initializer"
 msgid "External object %qs at %L may not have an initializer"
 msgstr "Objek eksternal '%s' di %L tidak boleh memiliki sebuah penginisialisasi"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, fuzzy, gcc-internal-format
 #| msgid "ELEMENTAL function '%s' at %L must have a scalar result"
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "Fungsi ELEMEN '%s' di %L harus memiliki sebuah hasil skalar"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' at %L is not allowed as an actual argument"
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "Pernyataan fungsi '%s' di %L tidak diperbolehkan sebagai argumen aktual"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "Fungsi KARAKTER(*) '%s' di %L tidak dapat bernilai-array"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "Fungsi KARAKTER(*) '%s' di %L tidak dapat bernilai-penunjuk"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "Fungsi KARAKTER(*) '%s' di %L tidak dapat pure"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "Fungsi KARAKTER(*) '%s' di %L tidak dapat rekursif"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "Fungsi KARAKTER(*) '%s' di %L tidak dapat pure"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' in %s at %L has no explicit interface"
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "Prosedur '%s' dalam %s di %L tidak memiliki antar-muka eksplisit"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy procedure '%s' at %C cannot have a generic interface"
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "Prosedur dummy '%s' di %C tidak dapat memiliki sebuah antar-muka umum"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "atribut PROSEDUR konflik dengan atribut SAVE dalam '%s' di %L"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "atribut PROSEDUR konflik dengan atribut INTENT dalam '%s' di %L"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "atribut PROSEDUR konflik dengan atribut NAMELIST dalam '%s' di %L"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "atribut PROSEDUR konflik dengan atribut INTENT dalam '%s' di %L"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 #| msgid "Interface '%s' of procedure '%s' at %L must be explicit"
 msgid "Interface of %qs at %L must be explicit"
 msgstr "Antar-muka '%s' dari prosedur '%s' di %L harus berupa eksplisit"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, fuzzy, gcc-internal-format
 #| msgid "FINAL procedure '%s' at %L is not a SUBROUTINE"
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "Prosedur FINAL '%s' di %L bukan sebuah SUBROUTINE"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "Prosedur FINAL di %L harus memiliki tepat satu argumen"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of FINAL procedure at %L must be of type '%s'"
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "Argumen dari prosedur FINAL di %L harus berupa tipe '%s'"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "argumen dari prosedur FINAL di %L harus berupa sebuah PENUNJUK"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "Argumen dari prosedur FINAL di %L harus berupa DAPAT-DIALOKASIKAN"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "Argumen dari prosedur FINAL di %L tidak boleh berupa OPSIONAL"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "Argumen dari prosedur FINAL di %L harus berupa INTENT(OUT)"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "Prosedur FINAL bukan skalar di %L seharusnya memiliki diasumsikan argumen bentuk"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, fuzzy, gcc-internal-format
 #| msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'"
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "prosedur FINAL '%s' dideklarasikan di %L memiliki tingkat yang sama (%d) seperti '%s'"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, fuzzy, gcc-internal-format
 #| msgid "Only array FINAL procedures declared for derived type '%s' defined at %L, suggest also scalar one"
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr "Hanya array prosedur FINAL dideklarasikan untuk tipe turunan '%s' didefinisikan di %L, disarankan juga skalar satu"
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L"
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr "'%s' dan '%s' tidak dapat dicampurkan FUNCTION/SUBROUTINE untuk GENERIC '%s' di %L"
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous"
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr "'%s' dan '%s' untuk GENERIC '%s' di %L adalah ambigu"
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, fuzzy, gcc-internal-format
 #| msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L"
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr "Tidak terdefinisi pengikatan spesifik '%s' sebagai target dari GENERIC '%s' di %L"
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, fuzzy, gcc-internal-format
 #| msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too"
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr "GENERIC '%s' di %L harus target sebuah pengikatan spesifik, '%s' adalah GENERIC, juga"
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, fuzzy, gcc-internal-format
 #| msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name"
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr "GENERIC '%s' di %L tidak dapat overwrite pengikatan spesifik dengan nama sama"
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Iterator step at %L cannot be zero"
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "Langkah iterasi di %L tidak dapat nol"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' must be a module procedure or an external procedure with an explicit interface at %L"
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "'%s' harus berupa sebuah prosedur modul atau sebuah prosedur eksternal dengan sebuah antar-muka eksplisit di %L"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'"
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Prosedur '%s' dengan PASS(%s) di %L tidak memiliki argumen '%s'"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' with PASS at %L must have at least one argument"
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "Prosedur '%s' dengan PASS di %L harus memiliki paling tidak satu argumen"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, fuzzy, gcc-internal-format
 #| msgid "Polymorphic entities are not yet implemented, non-polymorphic passed-object dummy argument of '%s' at %L accepted"
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "entiti polymorphic belum diimplementasikan, bukan polymorphic objek argumen dummy dilewatkan dari '%s' di %L diterima"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "Argumen '%s' dari '%s' dengan PASS(%s) di %L harus berupa tipe turunan '%s'"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "Argumen '%s' dari '%s' dengan PASS(%s) di %L harus berupa tipe turunan '%s'"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, fuzzy, gcc-internal-format
 #| msgid "Passed-object at %L must be scalar"
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "Objek yang dilewatkan di %L harus berupa skalar"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "'%s' argumen dari '%s' intrinsik di %L harus berupa DAPAT-DIALOKASIKAN"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "'%s' argumen dari '%s' instrinsik di %L harus berupa sebuah PENUNJUK"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' at %L has the same name as a component of '%s'"
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "Prosedur '%s' di %L memiliki nama sama sebagai sebuah komponen dari '%s'"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' at %L has the same name as an inherited component of '%s'"
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "Prosedur '%s' di %L memiliki nama sama seperti sebuah komponen turunan dari '%s'"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr ""
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, fuzzy, gcc-internal-format
 #| msgid "Array pointer '%s' at %L must have a deferred shape"
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "Penunjuk array '%s' di %L harus memiliki sebuah bentuk deffered"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ICHAR at %L must be of length one"
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "Argumen dari ICHAR di %L harus berupa panjang satu"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'"
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Prosedur '%s' dengan PASS(%s) di %L tidak memiliki argumen '%s'"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' with PASS at %L must have at least one argument"
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "Prosedur '%s' dengan PASS di %L harus memiliki paling tidak satu argumen"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "Argumen '%s' dari '%s' dengan PASS(%s) di %L harus berupa tipe turunan '%s'"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "Argumen '%s' dari '%s' dengan PASS(%s) di %L harus berupa tipe turunan '%s'"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "Argumen '%s' dari prosedur elemental di %L tidak dapat memiliki atribut POINTER"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "'%s' argumen dari '%s' intrinsik di %L harus berupa DAPAT-DIALOKASIKAN"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' of '%s' at %L has the same name as an inherited type-bound procedure"
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "Komponen '%s' dari '%s' di %L memiliki nama sama dengan prosedur yang melingkupinya"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, fuzzy, gcc-internal-format
 #| msgid "Character length of component '%s' needs to be a constant specification expression at %L"
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "Panjang karakter dari komponen '%s' butuh untuk menjadi sebuah ekspresi spesifikasi konstan di %L"
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, fuzzy, gcc-internal-format
 #| msgid "Expression at %L must be of INTEGER type, found %s"
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "Ekspresi di %L harus berupa tipe INTEGER, ditemukan %s"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "Fortran 2003: Komponen '%s' adalah sebuah tipe PRIVATE dan tidak dapat berupa sebuah komponen dari '%s', yang mana adalah PUBLIK di %L"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "Komponen %s dari tipe URUTAN dideklarasikan di %L tidak dapat memiliki atribut URUTAN"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Conflict in attributes of function argument at %C"
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "Konflik dalam atribut dari argumen fungsi di %C"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, fuzzy, gcc-internal-format
 #| msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT"
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "Bukan ekstensible tipe turunan '%s' di %L tidak boleh berupa ABSTRACT"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qE has not been declared"
 msgid "Derived type %qs at %L has not been declared"
 msgstr "%H%qE belum pernah dideklarasikan"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, fuzzy, gcc-internal-format
 #| msgid "Assumed size array '%s' in namelist '%s' at %C is not allowed"
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "Ukuran array yang diasumsikan '%s' dalam daftar nama '%s' di %C tidak diperbolehkan"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST array object '%s' must not have assumed shape in namelist '%s' at %L"
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr "NAMELIST array objek '%s' tidak boleh memiliki bentuk yang diasumsikan dalam daftar-nama '%s' di %L"
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST array object '%s' must have constant shape in namelist '%s' at %L"
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr "NAMELIST array objek '%s' harus memiliki bentuk konstan dalam daftar-nama '%s' di %L"
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST array object '%s' must have constant shape in namelist '%s' at %L"
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr "NAMELIST array objek '%s' harus memiliki bentuk konstan dalam daftar-nama '%s' di %L"
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST object '%s' was declared PRIVATE and cannot be member of PUBLIC namelist '%s' at %L"
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "NAMELIST objek '%s' telah dideklarasikan PRIVATE dan tidak dapat berupa anggota dari PUBLIK namelist '%s' di %L"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST object '%s' has use-associated PRIVATE components and cannot be member of namelist '%s' at %L"
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr "NAMELIST objek '%s' memiliki use-associated komponen PRIVATE dan tidak dapat berupa anggota dari daftar-nama '%s' di %L"
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST object '%s' has PRIVATE components and cannot be a member of PUBLIC namelist '%s' at %L"
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "NAMELIST objek '%s' meemiliki komponen PRIVATE dan tidak dapat berupa anggota dari PUBLIK daftar-nama '%s' di %L"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "atribut PROSEDUR konflik dengan atribut NAMELIST dalam '%s' di %L"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "Parameter array '%s' at %L cannot be automatic or of deferred shape"
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "Parameter array '%s' di %L tidak dapat berupa otomatis atau bentuk deferred"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, fuzzy, gcc-internal-format
 #| msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "Tipe PARAMETER secara implisit '%s' di %L tidak cocok dengan tipe IMPLISIT kemudian"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "Tipe turunan tidak kompatibel dalam PARAMETER di %L"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "Variabel '%s' di %L tidak dapat memiliki dua atribut PENUNJUK dan BIND(C)"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "atribut PROSEDUR konflik dengan atribut INTENT dalam '%s' di %L"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "atribut PROSEDUR konflik dengan atribut INTENT dalam '%s' di %L"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr ""
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad specification for assumed size array at %C"
 msgid "Bad specification for assumed size array at %L"
 msgstr "Spesifikasi buruk untuk diasumsikan ukuran array di %C"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "Ukuran array yang diasumsikan di %L harus berupa sebuah argumen dummy"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "Bentuk array yang diasumsikan di %L harus berupa sebuah argumen dummy"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assumed shape array at %L must be a dummy argument"
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "Bentuk array yang diasumsikan di %L harus berupa sebuah argumen dummy"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "Simbol di %L bukan sebuah variabel DUMMY"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr "'%s' di %L tidak dapat memiliki VALUE atribut karena ini bukan sebuah argumen dummy"
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, fuzzy, gcc-internal-format
 #| msgid "Character dummy variable '%s' at %L with VALUE attribute must have constant length"
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "Karakter dummy variabel '%s' di %L dengan atribut NILAI harus memiliki panjang konstant"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, fuzzy, gcc-internal-format
 #| msgid "C interoperable character dummy variable '%s' at %L with VALUE attribute must have length one"
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr "C interoperable karakter dummy variabel '%s' di %L dengan atribut NILAI harus memiliki panjang satu"
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, fuzzy, gcc-internal-format
 #| msgid "The derived type '%s' at %L is of type '%s', which has not been defined"
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "Tipe turunana '%s' di %L adalah tipe '%s',  yang mana belum didefinisikan"
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Variabel '%s' di %L tidak dapat memiliki dua atribut DAPAT DIALOKASIKAN dan BIND(C)"
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "Variabel '%s' di %L tidak dapat memiliki dua atribut PENUNJUK dan BIND(C)"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assumed shape array '%s' at %L is not permitted in an initialization expression"
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "Diasumsikan bentuk array '%s' di %L tidak diijinkan dalam sebuah ekspresi inisialisasi"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Variabel '%s' di %L tidak dapat memiliki dua atribut DAPAT DIALOKASIKAN dan BIND(C)"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes"
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "Variabel '%s' di %L tidak dapat memiliki dua atribut PENUNJUK dan BIND(C)"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr ""
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr "Variabel '%s' di %L tidak dapat berupa BIND(C) karena ini bukan sebuah blok UMUM atau dideklarasikan dalam tingkat cakupan modul"
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of %s at %L must be of length one"
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "Argumen dari %s di %L harus berupa panjang satu"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, fuzzy, gcc-internal-format
 #| msgid "Fortran 2003: PUBLIC %s '%s' at %L of PRIVATE derived type '%s'"
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "Fortran 2003: PUBLIK %s '%s' di %L dari tipe turunan '%s' PRIVATE"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, fuzzy, gcc-internal-format
 #| msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "INTENT(OUT) dummy argumen '%s' di %L adalah UKURAN DIASUMSIKAN dan jadi tidak dapat memiliki sebuah penginisialisasi baku"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "Dummy argumen '%s' di %L tidak dapat berupa INTENT(OUT)"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "Dummy argumen '%s' di %L tidak dapat berupa INTENT(OUT)"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, fuzzy, gcc-internal-format
 #| msgid "By-value argument at %L cannot be an array or an array section"
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "Argumen dengan nilai di %L tidak dapat berupa sebuah array atau sebuah daerah array"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L cannot have a deferred shape"
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "Array '%s' di %L tidak dapat memiliki sebuah bentuk deferred"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable array '%s' at %L must have a deferred shape"
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "Array dapat dialokasikan '%s' di %L harus memiliki sebuah bentuk deferred"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr ""
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy procedure at %L not allowed in ELEMENTAL procedure"
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "Prosedur dummy di %L tidak diperbolehkan dalam prosedur ELEMENTAL"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 #| msgid "Namelist %s cannot be renamed by USE association to %s"
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "Daftar-nama %s tidak dapat diubah namanya dengan assosiasi USE ke %s"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr "Threadprivate di %L bukan SAVEd"
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expecting list of named entities at %C"
 msgid "Expecting definable entity near %L"
 msgstr "Diduga daftar dari entiti bernama di %C"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, fuzzy, gcc-internal-format
 #| msgid "BLOCK DATA element '%s' at %L must be in COMMON"
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "DATA BLOK elemen '%s' di %L harus berupa dalam COMMON"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, fuzzy, gcc-internal-format
 #| msgid "DATA array '%s' at %L must be specified in a previous declaration"
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "DATA array '%s' di %L harus dispesifikasikan dalam sebuah deklarasi sebelumnya"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy '%s' at %L cannot have an initializer"
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "Dummy '%s' di %L tidak dapat memiliki sebuah penginisialisasi"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "Variabel '%s' di %L tidak dapat memiliki dua atribut DAPAT DIALOKASIKAN dan BIND(C)"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "Daerah array tidak konstant di %L dalam pernyataan DATA"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "pernyataan DATA di %L memiliki lebih variabel daripada nilai"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Nonconstant array section at %L in DATA statement"
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "Daerah array tidak konstant di %L dalam pernyataan DATA"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Step expression in DO loop at %L cannot be zero"
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "Ekspresi step dalam loop DO di %L tidak dapat berupa nol"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "pernyataan DATA di %L memiliki lebih banyak nilai daripada variabel"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "Label %d di %L didefinisikan tetapi tidak digunakan"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "Label %d di %L didefinisikan tetapi tidak dapat digunakan"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "Tipe variabel turunan '%s' di %L harus memiliki atribut URUTAN untuk menjadi sebuah objek EKUIVALEN"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "Tipe variabel turunan '%s' di %L tidak dapat memiliki komponen DAPAT DIALOKASIKAN untuk menjadi sebuah objek EKUIVALEN"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "Tipe variabel turunan '%s' di %L dengan inisialisasi baku tidak dapat berada dalam EKUIVALEN dengan sebuah variabel dalam COMMON"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "Tipe variabel turunan '%s' di %L dengan komponen penunjuk tidak dapat berupa sebuah objek EKUIVALEN"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "Sintaks error dalam pernyataan EKUIVALEN di %L"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr "Baik semua atau kosong dari objek dalam EKUIVALEN set di %L yang memiliki atribut TERPROTEKSI"
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, fuzzy, gcc-internal-format
 #| msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'"
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "Anggota blok umum '%s' di %L tidak dapat berupa sebuah objek EKUIVALEN dalam prosedur pure '%s'"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, fuzzy, gcc-internal-format
 #| msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Konstanta bernama '%s' di %L tidak dapat berupa sebuah objek EKUIVALEN"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "Array '%s' di %L dengan cakupan tidak-konstan tidak dapat berupa sebuah objek EKUIVALEN"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, fuzzy, gcc-internal-format
 #| msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Komponen struktur '%s' di %L tidak dapat berupa sebuah objek EKUIVALEN"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "Substring di %L memiliki panjang nol"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, fuzzy, gcc-internal-format
 #| msgid "Different character lengths in pointer assignment at %L"
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "Panjang karakter berbeda dalam penempatan penunjuk di %L"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, fuzzy, gcc-internal-format
 #| msgid "PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'"
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "Fungsi PUBLIK '%s' di %L tidak dapat berupa tipe PRIVATE '%s'"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, fuzzy, gcc-internal-format
 #| msgid "ENTRY '%s' at %L has no IMPLICIT type"
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "MASUKAN '%s' di %L tidak memiliki tipe IMPLISIT"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L must be a FUNCTION"
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "Prosedur operator pengguna '%s' di %L harus berupa sebuah FUNGSI"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L cannot be assumed character length"
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "Prosedur operator pengguna '%s' di %L tidak dapat berupa panjang karakter diasumsikan"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "Prosedur operator pengguna '%s' di %L harus memiliki paling tida satu argumen"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "Argumen pertama dari antar-muka operator di %L tidak dapat berupa pilihanonal"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "Argumen kedua dari antar-muka operator di %L tidak dapat berupa pilihanonal"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "Antar-muka operator di %L harus memiliki, paling tidak, dua argumen"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, fuzzy, gcc-internal-format
 #| msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
@@ -89260,364 +89311,364 @@ msgstr "Variabel '%s' secara implisit terdeklarasi di %L mungkin tidak C interop
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "Hasil fungsi '%s' di %L tidak memiliki tipe IMPLISIT"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "%s atribut konflik dengan %s atribut di %L"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, fuzzy, gcc-internal-format
+#| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "%s atribut konflik dengan %s atribut dalam '%s' di %L"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "%s atribut tidak diperbolehkan dalam BLOK DATA satuan aplikasi di %L"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "Argumen '%s' dari prosedur elemental di %L tidak dapat memiliki atribut POINTER"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr ""
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "procedure name = %s"
 msgid "Procedure pointer at %C"
 msgstr "nama prosedur = %s"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "%s atribut diaplikasikan ke %s %s di %L"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "BIND(C) diaplikasikan ke %s %s di %L"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "%s atribut konflik dengan %s atribut di %L"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, fuzzy, gcc-internal-format
-#| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "%s atribut konflik dengan %s atribut dalam '%s' di %L"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "Tidak dapat mengubah atribut dari USE-assosiasi simbol di %L"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "Tidak dapat mengubah atribut dari USE-assosiasi simbol %s di %L"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "Duplikasi atribut %s dispesifikasikan di %L"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr "ALLOCATABLE dispesifikasikan diluar dari tubuh ANTAR-MUKA di %L"
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate VOLATILE attribute specified at %L"
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "Duplikasi atribut VOLATILE dispesifikasikan di %L"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, fuzzy, gcc-internal-format
 #| msgid "DIMENSION specified for '%s' outside its INTERFACE body at %L"
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "DIMENSION dispesifikasikan untuk '%s' diluar dari badan ANTAR-MUKA di %L"
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, fuzzy, gcc-internal-format
 #| msgid "DIMENSION specified for '%s' outside its INTERFACE body at %L"
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "DIMENSION dispesifikasikan untuk '%s' diluar dari badan ANTAR-MUKA di %L"
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "Cray Pointee di %L muncul dalam beberapa pernyataan penunjuk()"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "Duplikasi atribut TERPROTEKSI dispesifikasikan di %L"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "atribut SAVE di %L tidak dapat dispesifikasikan dalam sebuah prosedur PURE"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "Duplikasi SAVE atribut dispesifikasikan di %L"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "Duplikasi atribut NILAI dispesifikasikan di %L"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "Duplikasi atribut VOLATILE dispesifikasikan di %L"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "atribut SAVE di %L tidak dapat dispesifikasikan dalam sebuah prosedur PURE"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate VALUE attribute specified at %L"
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "Duplikasi atribut NILAI dispesifikasikan di %L"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute of '%s' conflicts with %s attribute at %L"
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "%s atribut dari '%s' konflik dengan %s atribut di %L"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "%s prosedur di %L telah dideklarasikan sebagai %s prosedur"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "INTENT (%s) konfliks dengan INTENT(%s) di %L"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "Spesifikasi AKSES di %L telah dispesifikasikan"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "Duplikasi atribut BIND dispesifikasikan di %L"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid " BIND(C)"
 msgid "BIND(C) at %L"
 msgstr " BIND(C)"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "Duplikasi atribut EXTENDS dispesifikasikan di %L"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Fortran 2003: EXTENDS at %L"
 msgid "EXTENDS at %L"
 msgstr "Fortran 2003: EXTENDS di %L"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L already has an explicit interface"
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "Simbol '%s' di %L telah memiliki sebuah antar-muka eksplisit"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L has attributes specified outside its INTERFACE body"
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr "'%s' di %L memiliki atribut dispesifikasikan diluar dari badan ANTAR-MUKA-nya"
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %C already has a type of %s"
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "Fungsi '%s' di %C telah memiliki sebuah tipe dari %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' at %L has the same name as a component of '%s'"
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "Prosedur '%s' di %L memiliki nama sama sebagai sebuah komponen dari '%s'"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L cannot have a type"
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "Simbol '%s' di %L tidak dapat memiliki sebuah tipe"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already in the parent type at %L"
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "Komponen '%s' di %C telah berada dalam tipe induknya di %L"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %C is ambiguous"
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "Simbol '%s' di %C adalah ambigu"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %C is being used before it is defined"
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "Tipe turunan '%s' di %C sedang digunakan sebelum itu didefinisikan"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C is a PRIVATE component of '%s'"
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "Komponen '%s' di %C adalah sebuah komponen PRIVATE dari '%s'"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %C is not a member of the '%s' structure"
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "'%s' di %C bukan sebuah anggota dari struktur '%s'"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %C is not a member of the '%s' structure"
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "'%s' di %C bukan sebuah anggota dari struktur '%s'"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "Duplikasi pernyataan label %d di %L dan %L"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "Label %d di %C telah direferensikan sebagai target percabangan"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "Label %d di %C telah direferensikan sebagai sebuah format label"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "Label %d di %C sebelumnya digunakan sebagai sebuah FORMAT label"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "Label %d di %C sebelumnya digunakan sebagai target percabangan"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected terminating name at %C"
 msgid "Shared DO termination label %d at %C"
 msgstr "Diduga nama berakhir di %C"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Labeled DO statement at %L"
 msgstr "Tidak terduga pernyataan END di %C"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, fuzzy, gcc-internal-format
 #| msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "Nama '%s' di C adalah sebuah referensi ambigu ke '%s' dari module '%s'"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, fuzzy, gcc-internal-format
 #| msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "Nama '%s' di %C adalah sebuah referensi ambigu ke '%s' dari satuan aplikasi sekarang"
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %C has already been host associated"
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "Simbol '%s' di %C telah diassosiasikan host"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' declared at %L must have the BIND attribute to be C interoperable"
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "Tipe turunan '%s' dideklarasikan di %L harus memiliki atribut BIND ke Cinteroperable"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type '%s' at %L"
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Komponen '%s' di %L tidak dapat memiliki atribut PENUNJUK karena ini sebuah anggota tari BIND(C) tipe turunan '%s' di %L"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type '%s' at %L"
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "Komponen '%s' di %L tidak dapat memiliki atribut PENUNJUK karena ini sebuah anggota tari BIND(C) tipe turunan '%s' di %L"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type '%s' at %L"
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Komponen '%s' di %L tidak dapat memiliki atribut DAPAT DIALOKASIKAN karena ini sebuah anggota dari tipe turunan BIND(C) '%s' di %L"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' in derived type '%s' at %L may not be C interoperable, even though derived type '%s' is BIND(C)"
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr "Komponen '%s' dalam tipe turunan '%s' di %L mungkin tidak C interoperabel, walaupun melalui tipe turunan '%s' adalah BIND(C)"
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' in derived type '%s' at %L may not be C interoperable"
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "Komponen '%s' dalam tipe turunan '%s' di %L mungkin tidak C interoperabel"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "Tipe turunan '%s' di %L tidak dapat memiliki urutan atribut karena ini adalah BIND(C)"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' is used before it is typed at %L"
 msgid "Symbol %qs is used before it is typed at %L"
@@ -89650,26 +89701,26 @@ msgstr "Overlapping tidak sama penginisialisasi dalam EKUIVALEN di %L"
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "Overlapping tidak sama penginisialisasi dalam EKUIVALEN di %L"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, fuzzy, gcc-internal-format
 #| msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit.   See -fmax-array-constructor option"
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr "Jumlah dari elemen dalam konstruktor array di %L membutuhkan sebuah peningkatan dari batas atas %d yang diijinkan. Lihat pilihan -fmax-array-constructor"
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, fuzzy, gcc-internal-format
 #| msgid "Creating array temporary at %L for argument '%s'"
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "Membuat array sementara di %L untuk argumen '%s'"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "tipe ekspresi buruk selama walk (%d)"
@@ -89882,37 +89933,37 @@ msgstr "Nilai kembali dari fungsi '%s' dideklarasikan di %L tidak diset"
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr ""
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "Instrinsik op tidak diketahui"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Daftar fungsi argumen tidak diketahui di %L"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -89924,18 +89975,18 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "Fungsi instrinsik %s(%d) tidak dikenal"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, fuzzy, gcc-internal-format
 #| msgid "'dim' argument of %s intrinsic at %L is not a valid dimension index"
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "'dim' argumen dari %s intrinsik di %L bukan sebuah dimensi indeks valid"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "environment variable \"%s\" not defined"
 msgid "The event variable at %L shall not be coindexed"
@@ -90089,7 +90140,7 @@ msgstr ""
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
 msgid "gfc_trans_select(): Bad type for case expr."
@@ -90504,6 +90555,12 @@ msgstr "field %qs dideklarasikan sebagai sebuah fungsi"
 msgid "function %qD redeclared as variable"
 msgstr "fungsi %q+D redeklarasi sebagai inline"
 
+#: lto/lto-symtab.cc:865
+#, fuzzy, gcc-internal-format
+#| msgid "%Jpreviously used here"
+msgid "previously declared here"
+msgstr "%J sebelumnya digunakan disini"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -91876,7 +91933,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, fuzzy, gcc-internal-format
 #| msgid "non-object member %qs cannot be declared %<mutable%>"
 msgid "non-objective-c type %qT cannot be caught"
@@ -91887,7 +91944,7 @@ msgstr "anggota bukan-objek %qs tidak dapat dideklarasikan %<mutable%>"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr ""
diff --git a/gcc/po/ja.po b/gcc/po/ja.po
index 869bc483956..d6734a6a23b 100644
--- a/gcc/po/ja.po
+++ b/gcc/po/ja.po
@@ -21,7 +21,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 11.1.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2021-05-11 22:47+0900\n"
 "Last-Translator: Hiroshi Takekawa <sian@big.or.jp>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -417,7 +417,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "-march=... と -mcpu=... の両方を指定しないでください"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared と mdll は併用できません"
 
@@ -19219,16 +19219,16 @@ msgstr "認識できない命令:"
 msgid "insn does not satisfy its constraints:"
 msgstr "命令が制約を満たしません:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "作成時と使用時で '%s' の設定が異なります"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "作成時と使用時で %<-fpic%> の設定が異なります"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 msgid "created and used with different settings of %<-fpie%>"
 msgstr "作成時と使用時で %<-fpie%> の設定が異なります"
 
@@ -19549,7 +19549,7 @@ msgstr "strfmon 書式の長さ修飾子"
 msgid "<command-line>"
 msgstr "<コマンドライン>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "コード '%c' に対する無効な被演算子です"
@@ -19568,9 +19568,9 @@ msgstr "コード '%c' に対する無効な被演算子です"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, c-format
 msgid "invalid vector constant"
 msgstr "無効なベクトル定数です"
@@ -19591,7 +19591,7 @@ msgstr "コード '%c' に対する無効な被演算子です"
 msgid "incompatible register operand for '%%%c'"
 msgstr "コード '%c' に対する無効な被演算子です"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "被演算子がありません"
@@ -19620,93 +19620,93 @@ msgstr "無効なアドレスモードです"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "GNU と SVE ベクタの二項演算はできません"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "局所動的 TLS 参照無しで '%%&' が使用されました"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "無効な %%J 値"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "無効な %%r 値"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "無効な %%R 値"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "無効な %%N 値"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "無効な %%P 値"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "無効な %%h 値"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "無効な %%L 値"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "無効な %%m 値"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "無効な %%M 値"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "無効な %%U 値"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "無効な %%s 値"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "無効な %%C 値"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "無効な %%E 値"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr ""
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "無効な %%xn コード"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, fuzzy, c-format
 msgid "invalid operand address"
 msgstr "無効なアドレスです"
@@ -19802,35 +19802,35 @@ msgstr "被演算子として無効な UNSPEC です"
 msgid "unrecognized supposed constant"
 msgstr "認識できない定数のようなもの"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "無効なシフト被演算子"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "述語付き Thumb 命令"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "条件シーケンスにある述語付き命令"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "コード '%c' に対する無効な被演算子です"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -19838,114 +19838,114 @@ msgstr "コード '%c' に対する無効な被演算子です"
 msgid "invalid operand for code '%c'"
 msgstr "コード '%c' に対する無効な被演算子です"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "命令は決して実行されません"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr ""
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "%<bfloat16_t%> からの無効な変換です"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "%<bfloat16_t%> への無効な変換です"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "アドレス被演算子は X、Y または Z レジスタに対する制約を要求します"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 #, fuzzy
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "出力被演算子 %d は %<&%> 制約を使用しなければいけません"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr "誤ったアドレスです。I/O アドレスではありません:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr "誤ったアドレスです。定数ではありません:"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "誤ったアドレスです。(reg+disp) ではありません:"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "誤ったアドレスです。post_inc または pre_dec ではありません:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "コンパイラ内部エラー。誤ったアドレス:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr ""
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "コンパイラ内部エラー。不明なモード:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "無効な命令:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "正しくない命令:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "不明な move 命令:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "誤ったシフト命令:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "コンパイラ内部エラー。正しくないシフト:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr "サポートしていない固定小数点変換です"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr "変数"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 msgid "function parameter"
 msgstr "関数パラメータ"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr "構造体フィールド"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 msgid "return type of function"
 msgstr "関数の戻り値の型"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr "ポインタ"
 
@@ -19980,7 +19980,7 @@ msgstr "サポートされていない演算子"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20299,54 +20299,54 @@ msgstr "被演算子は条件コードではありません。無効な被演算
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "被演算子は条件コードではありません。無効な被演算子コード 'D' です"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "無効な被演算子コード '%c' です"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "演算子に対する無効な制約です"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, c-format
 msgid "invalid vector immediate"
 msgstr "無効なベクトル直接表記"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "不明な命令モード"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from type %<bfloat16_t%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "%<bfloat16_t%> からの無効な変換です"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from type %<bfloat16_t%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "%<bfloat16_t%> からの無効な変換です"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to type %<bfloat16_t%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "%<bfloat16_t%> への無効な変換です"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 #| msgid "invalid conversion to type %<bfloat16_t%>"
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "%<bfloat16_t%> への無効な変換です"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -20377,7 +20377,7 @@ msgstr "%<__fpreg%> に関する無効な操作です"
 msgid "invalid %%P operand"
 msgstr "無効な %%P 被演算子です"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "無効な %%p 値です"
@@ -20404,29 +20404,29 @@ msgstr "非 gp 関連の絶対アドレスを使用できません"
 msgid "invalid addressing mode"
 msgstr "無効なアドレスモードです"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "'%%%c' は有効な被演算子接頭辞ではありません"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "'%%%c' の無効な使用法です"
@@ -20458,7 +20458,7 @@ msgid "post-increment address is not a register"
 msgstr "後置増分アドレスがレジスタではありません"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "誤ったアドレスです"
 
@@ -20616,7 +20616,7 @@ msgstr "サポートされていない定数アドレス:"
 msgid "unsupported memory expression:"
 msgstr "固定小数変換内で無効な型です"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 msgid "invalid vector operand"
 msgstr "無効な %%P 被演算子です"
@@ -20670,249 +20670,249 @@ msgstr ""
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "リトルエンディアンモードでコードを生成する"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr "誤った move です"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr "誤った 128 ビット move"
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, c-format
 msgid "invalid %%A value"
 msgstr "無効な %%A 値"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "無効な %%D 値です"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "無効な %%e 値"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "無効な %%f 値です"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "無効な %%F 値です"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "無効な %%G 値です"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "無効な %%j コードです"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "無効な %%J コードです"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "無効な %%k 値です"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "無効な %%K 値です"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "無効な %%O 値です"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "無効な %%q 値です"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, c-format
 msgid "invalid %%t value"
 msgstr "無効な %%t 値"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "無効な %%T 値です"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "無効な %%u 値です"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "無効な %%v 値です"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, c-format
 msgid "invalid %%V value"
 msgstr "無効な %%V 値"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "無効な %%x 値です"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, c-format
 msgid "invalid %%z value"
 msgstr "無効な %%z 値"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "無効な %%y 値です。'Z' 制約を使用してみてください"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 #, fuzzy
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "32 ビット乗算命令を有効にする"
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "プロトタイプが無い関数に AltiVec 引数が渡されました"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 #, fuzzy
 msgid "Could not generate addis value for fusion"
 msgstr "各関数で単一の終了点を生成しない"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 #, fuzzy
 msgid "Unable to generate load/store offset for fusion"
 msgstr "整列されていない load/store 命令を有効にする"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "%<__vector_quad%> からの無効な変換です"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "%<__vector_quad%> への無効な変換です"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "%<__fpreg%> からの無効な変換です"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "%<__fpreg%> への無効な変換です"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr "シンボルによるメモリ参照は z10 またはそれ以降でのみサポートされます"
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr ""
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "'E' 出力修飾子用の無効な比較演算子です"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "'J' 出力修飾子用の無効な参照です"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "'O' 出力修飾子用の無効なアドレスです"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "'R' 出力修飾子用の無効なアドレスです"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "'S' 出力修飾子用にはメモリ参照が予期されます"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "'S' 出力修飾子用の無効なアドレスです"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "'N' 出力修飾子用にはレジスタまたはメモリ式が予期されます"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "'M' 出力修飾子用にはレジスタまたはメモリ式が予期されます"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "出力修飾子 '%c' 用の無効な定数です"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "無効な定数です - 出力修飾子の使用を試みてください"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, fuzzy, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "出力修飾子 '%c' 用の無効な定数です"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "無効な式です - 出力修飾子の使用を試みてください"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "出力修飾子 '%c' 用の無効な式です"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 msgid "vector argument passed to unprototyped function"
 msgstr "プロトタイプが無い関数に AltiVec 引数が渡されました"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 #, fuzzy
 msgid "types differ in signedness"
 msgstr "戻りでのポインタの先の符号が異なります"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr ""
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -21112,12 +21112,12 @@ msgstr "({無名})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "%<;%> が予期されます"
@@ -21130,7 +21130,7 @@ msgstr "%<;%> が予期されます"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21139,7 +21139,7 @@ msgstr "%<;%> が予期されます"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "%<)%> が予期されます"
@@ -21147,7 +21147,7 @@ msgstr "%<)%> が予期されます"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "%<]%> が予期されます"
@@ -21158,29 +21158,29 @@ msgstr "%<;%>、%<,%> または %<)%> が予期されます"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "%<(%> が予期されます"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "%<[%> が予期されます"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "%<{%> が予期されます"
@@ -21190,17 +21190,17 @@ msgstr "%<{%> が予期されます"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "%<:%> が予期されます"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "%<while%> が予期されます"
@@ -21209,8 +21209,8 @@ msgstr "%<while%> が予期されます"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "%<,%> が予期されます"
@@ -21220,17 +21220,17 @@ msgid "expected %<.%>"
 msgstr "%<.%> が予期されます"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "%<@end%> が予期されます"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "%<>%> が予期されます"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "%<,%> または %<)%> が予期されます"
@@ -21238,33 +21238,33 @@ msgstr "%<,%> または %<)%> が予期されます"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "%<=%> が予期されます"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "%<}%> が予期されます"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "expected %<else%>"
 msgstr "%<delete%> が予期されます"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "%<#pragma omp section%> または %<}%> が予期されます"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -21272,7 +21272,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "(無名)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "%<<%> が予期されます"
@@ -21287,21 +21287,21 @@ msgstr "%<__label__%> が予期されます"
 msgid "candidate:"
 msgstr "候補:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 msgid "  after user-defined conversion:"
 msgstr "利用者定義命令を有効にする"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "候補:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "候補 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "候補 2:"
 
@@ -21555,7 +21555,7 @@ msgstr "%s:%d:%d:   %qs から実体化されました\n"
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr ""
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "候補:"
 
@@ -21599,48 +21599,48 @@ msgstr ""
 msgid "source type is not polymorphic"
 msgstr ""
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "単項マイナスへの引数の型が間違っています"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "単項プラスへの引数の型が間違っています"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "ビット反転への引数の型が間違っています"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "abs への引数の型が間違っています"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "複素共役(~)への引数の型が間違っています"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 msgid "in argument to unary !"
 msgstr ""
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr ""
 
@@ -21722,7 +21722,7 @@ msgstr ""
 msgid "Deleted feature:"
 msgstr "演算子が予期されます"
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr "配列代入"
 
@@ -21928,11 +21928,11 @@ msgstr ""
 msgid "implied END DO"
 msgstr ""
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "代入"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 #, fuzzy
 msgid "pointer assignment"
 msgstr "代入"
@@ -22105,47 +22105,47 @@ msgstr ""
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr ""
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr ""
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr "DEALLOCATE オブジェクト"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr "ALLOCATE オブジェクト"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr "STAT 変数"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr "ERRMSG 変数"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr ""
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr ""
 
@@ -22154,11 +22154,11 @@ msgstr ""
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr ""
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -22173,12 +22173,12 @@ msgstr ""
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr ""
 
@@ -22187,81 +22187,81 @@ msgstr ""
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, fuzzy, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "関数 `%s' への引数が少なすぎます"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, fuzzy, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "関数呼び出しが集合体の値を持っています"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, fuzzy, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "関数 `%s' への引数が少なすぎます"
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, fuzzy, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "関数 `%s' への引数が少なすぎます"
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, fuzzy, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "関数 `%s' への引数が少なすぎます"
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -22283,15 +22283,15 @@ msgstr ""
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr ""
 
@@ -22369,7 +22369,7 @@ msgid "expected boolean type"
 msgstr "整数または真偽型が予期されます"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, fuzzy, gcc-internal-format
 msgid "expected integer"
 msgstr "ポインタが予期されます"
@@ -22435,7 +22435,7 @@ msgstr "十分な引数がありません"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "引数が多すぎます"
@@ -23090,7 +23090,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "-mrelax は RTP PIC 用にのみサポートされています"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "'%s' トークンの所で文法エラー"
@@ -23536,8 +23536,8 @@ msgstr "%qE 属性は %s 属性と競合します"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 msgid "previous declaration here"
 msgstr "前方での `%s' の宣言"
@@ -23554,7 +23554,7 @@ msgstr "%qE 属性指示が無視されました"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "%qE 属性指示が無視されました"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "%qE 属性用に間違った数の引数が指定されました"
@@ -23564,7 +23564,7 @@ msgstr "%qE 属性用に間違った数の引数が指定されました"
 msgid "expected %i or more, found %i"
 msgstr "%<(%> またはファイル終端 (EOF) が予期されます"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "expected %i, found %i"
 msgstr "%<(%> またはファイル終端 (EOF) が予期されます"
@@ -23631,12 +23631,12 @@ msgstr "型が既に定義されているため型属性が無視されました
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -23645,7 +23645,7 @@ msgstr "型が既に定義されているため型属性が無視されました
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -23667,8 +23667,8 @@ msgstr "%qE 属性は無視されました"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "前方での `%s' の宣言"
@@ -23775,7 +23775,7 @@ msgstr "クラス %s 用のファイルを見つけられません。"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "オフセットが定数文字列の境界の外にあります"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 msgid "%qE declared here"
 msgstr "%qD はここで宣言されています"
@@ -23880,7 +23880,7 @@ msgstr "%qs への有効な引数は次の通りです: %s"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 #| msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
@@ -23904,42 +23904,42 @@ msgstr "%<__builtin_longjmp%> の第二引数は 1 でなければいけませ
 msgid "target format does not support infinity"
 msgstr "ターゲット形式は無限大をサポートしません"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "%<va_start%> が引数の数が固定の関数内で使用されました"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "関数 %<va_start%> への引数の数が間違っています"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "%<__builtin_next_arg%> が引数無しで呼び出されました"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "関数 %<__builtin_next_arg%> への引数の数が間違っています"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "%<va_start%> の第二引数が、最後の名前付き引数ではありません"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, fuzzy, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr "%<va_start%> の第二引数が %<register%> 記憶域の場合の動作は不定です"
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "%K %D の第一引数がポインタ、第二引数が整数定数でなければいけません"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr "%K %D の最後の引数が 0 から 3 の間の整数定数ではありません"
@@ -24986,12 +24986,12 @@ msgstr "%qE 属性は %qT が既に定義されているため無視されます
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F が使用されましたが定義されていません"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F が %<static%> と宣言されましたが定義されていません"
@@ -25541,7 +25541,7 @@ msgstr "region_array が region_tree と適合しません"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "lp_array が region_tree と適合しません"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, fuzzy, gcc-internal-format
 msgid "%qs failed"
 msgstr "atexit に失敗しました"
@@ -25571,17 +25571,17 @@ msgstr ""
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr "インライン関数 %q+D を弱いとして宣言できません"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "インライン関数 %q+D を弱いとして宣言できません"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, fuzzy, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr "%<abs (X)%> を %<X%> または %<-X%> へ単純化するときに符号のオーバーフローが発生しないと見なしています"
@@ -25616,7 +25616,7 @@ msgstr "大きな固定小数定数が暗黙的に固定整数型に切り詰め
 msgid "comparison is always %d due to width of bit-field"
 msgstr "ビットフィールド幅のため、比較が常に %d になります"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr ""
@@ -25787,7 +25787,7 @@ msgstr "プロセス時間の取得に失敗しました: %m"
 msgid "%s signal terminated program %s"
 msgstr "代替レジスタ名を使用する"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "認識できないコマンドラインオプション %qs です"
@@ -26049,7 +26049,7 @@ msgstr "multilib spec %qs は無効です"
 msgid "multilib exclusions %qs is invalid"
 msgstr ""
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, fuzzy, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "multilib spec %qs は無効です"
@@ -26349,22 +26349,22 @@ msgstr "配列 %qE のサイズが負です"
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "構造体の最後ではない所に可変配列メンバがあります"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr "%<__int128%> はこのターゲットではサポートされていません"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr "入れ子になった関数はこのターゲットではサポートされていません"
@@ -26405,16 +26405,16 @@ msgid "function returns address of local variable"
 msgstr "関数が局所変数のアドレスを返します"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -26426,355 +26426,355 @@ msgstr "ここで宣言されています"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, fuzzy, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr "%qE への引数が少なすぎます"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, fuzzy, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr "%qD はここで宣言されています"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "%qE への引数が少なすぎます"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, fuzzy, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr "%s は [%d, %d] の範囲内の整数リテラルが予期されます"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 msgid "null destination pointer"
 msgstr "NULL ポインタ"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 msgid "null format string"
 msgstr "フォーマット文字列が null です"
@@ -27513,12 +27513,12 @@ msgstr "無効なポインタモード %qs です"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD はここで宣言されています"
@@ -28274,7 +28274,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "無効な %<auto%> の使用です"
@@ -28612,17 +28612,17 @@ msgstr "%qE がここでは宣言されていません (関数内ではない)"
 msgid "mismatching definition"
 msgstr "定義がありません"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr ""
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -29690,72 +29690,72 @@ msgstr "%s への書き込み中にエラーが発生しました: %m"
 msgid "error closing optimization records %qs"
 msgstr "ジャンプをまたがった最適化を行う"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "コマンドラインオプション %qs はこの設定ではサポートされていません"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "%qs への引数がありません"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "%qs への引数は非負整数であるべきです"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "%qs への引数は非負整数であるべきです"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "%sregparm=%d%s が 0 と %d の間ではありません"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 msgid "invalid argument in option %qs"
 msgstr "%qs への有効な引数は次の通りです: %s"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, fuzzy, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr "%qE 属性は R8C ターゲット用にはサポートされていません"
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, fuzzy, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "-mcorea と -mcoreb は併用できません"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "オプション %qs 内で認識できない引数です"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "%qs への有効な引数は次の通りです: %s"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "%qs への有効な引数は次の通りです: %s"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "%qs スイッチは既にサポートされていません"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is bigger than %d"
 msgstr "%qE 属性への引数が %d より大きいです"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, fuzzy, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr "誤った形式の COLLECT_GCC_OPTIONS です"
@@ -29830,8 +29830,8 @@ msgstr "%qs への引数は非負整数であるべきです"
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, fuzzy, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "RTP PIC は Thumb では使用できません"
@@ -30552,7 +30552,7 @@ msgstr "大域レジスタ変数が関数定義に続いてあります"
 msgid "register of %qD used for multiple global register variables"
 msgstr "レジスタが二つの大域レジスタ変数として使われました"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, fuzzy, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "%q+D と型が競合しています"
@@ -31002,44 +31002,44 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "__builtin_saveregs はこのターゲットではサポートされていません"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "入れ子になった関数はこのターゲットではサポートされていません"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "入れ子になった関数はこのターゲットではサポートされていません"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr ""
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "大域コンストラクタはこのターゲットではサポートされていません"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "大域デストラクタはこのターゲットではサポートされていません"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "target 属性はこのマシン上ではサポートされていません"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "target 属性はこのマシン上ではサポートされていません"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr "#pragma GCC target はこのマシン用にはサポートされていません"
@@ -32157,83 +32157,83 @@ msgstr ""
 msgid "BB %i has incorrect fallthru edge"
 msgstr ""
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "関数 %q+F は非局所 goto を受け取るため決して複製されません"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "関数 %q+F は静的変数内の局所ラベルのアドレスを保存するため、決して複写されません"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "関数 %q+F は alloca を使用しているため決してインライン化されません (always_inline 属性を上書きします)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "関数 %q+F は setjmp を使用しているため決してインライン化されません"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "関数 %q+F は可変引数リストを使用しているため決してインライン化されません"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "関数 %q+F は setjmp-longjmp 例外処理を使用しているため決してインライン化されません"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "関数 %q+F は非局所 goto を使用しているため決してインライン化されません"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "関数 %q+F は __builtin_return または __builtin_apply_args を使用しているため決してインライン化されません"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr ""
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "関数 %q+F は可変引数リストを使用しているため決してインライン化されません"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "関数 %q+F は -fno-inline を使用して抑止されているため決してインライン化されません"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "関数 %q+F はインライン化と競合する属性を使用しているため決してインライン化されません"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "%q+F 呼び出しのインライン化に失敗しました: %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "ここから呼び出されました"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 msgid "called from this function"
 msgstr "呼び出されたオブジェクト %qE は関数ではありません"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "%q+F 呼び出しのインライン化に失敗しました: %s"
@@ -32288,27 +32288,27 @@ msgstr "%qs 属性用の無効なエレメント型です"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "無効な %<auto%> の使用です"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr "非メンバ関数での `this' の使用は無効です"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "組み込み関数への無効な引数です"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "インライン関数 %q+D を弱いとして宣言できません"
@@ -32505,7 +32505,7 @@ msgstr "%qE は初期化されていません"
 msgid "%qs may be used uninitialized"
 msgstr "%qD はこの関数内初期化されずに使用されるかもしれません"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD はここで定義されています"
@@ -32736,7 +32736,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -32751,127 +32751,127 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "関数の配列は意味がありません"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "関数の返す型が関数であってはなりません"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "RTL 検査: コード `%s' のはずなのに `%s' (%s 中)です (%s:%d)"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "RTL check: ベクトルの elt %d を最後の elt %d (%s 中)と一緒にアクセスします (%s:%d)"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "RTL check: ベクトルの elt %d を最後の elt %d (%s 中)と一緒にアクセスします (%s:%d)"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "RTL check: ベクトルの elt %d を最後の elt %d (%s 中)と一緒にアクセスします (%s:%d)"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, fuzzy, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qE は廃止されました: %s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, fuzzy, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qE は廃止されました"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE は廃止されました: %s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%qE は廃止されました"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "型は廃止されました: %s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "型は廃止されました"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable: %s"
 msgstr "%qD は変数ではありません"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable"
 msgstr "%qD は変数ではありません"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable: %s"
 msgstr "%qD は変数ではありません"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable"
 msgstr "%qD は変数ではありません"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type is deprecated: %s"
 msgid "type is unavailable: %s"
 msgstr "型は廃止されました: %s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "type is unavailable"
@@ -32897,263 +32897,263 @@ msgstr "%qD は変数ではありません"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr ""
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, fuzzy, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "ms_hook_prologue は入れ子になった関数と両立できません"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qT is not a template type"
 msgid "type %s is not an opaque type"
 msgstr "%qT はテンプレート型ではありません"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not with opaque mode"
 msgstr ""
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 msgid "main variant is not defined"
 msgstr "環境変数 %qs が定義されていません"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "配列 %qE のサイズが非整数型です"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "フィールド %qE が不完全型を持っています"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -33369,7 +33369,7 @@ msgstr "この設定では別名定義はサポートされていません"
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "可視性属性はこの設定ではサポートされていません。無視されました"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -33573,7 +33573,7 @@ msgstr "%qE 属性は %qT が既に定義されているため無視されます
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "%qE 属性は %qT が既に定義されているため無視されます"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "%qE 属性は公開オブジェクトに関してのみ効果があります"
@@ -33758,7 +33758,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "%qE 属性はユニット局所関数に関しては効果がありません"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "%qE 属性は局所変数用には指定できません"
@@ -34073,7 +34073,7 @@ msgstr "%qD は %qD 内では宣言されていません"
 msgid "%qE argument is not a function"
 msgstr "呼び出されたオブジェクトは関数ではありません"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "廃止された (deprecated) メッセージが文字列ではありません"
@@ -34578,7 +34578,7 @@ msgstr "ISO C++ は名前つき戻り値を許可しません"
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "ISO C++ は名前つき戻り値を許可しません"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "%qs をvoid 型へ適用することは無効です"
@@ -34709,17 +34709,17 @@ msgstr "仮引数 `%s' で指定された記憶クラス"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "仮引数 `%s' で指定された記憶クラス"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "関数 %qE へ渡す引数が少なすぎます"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -34843,166 +34843,166 @@ msgstr "ビットフィールドである構造体のメンバ %qD のアドレ
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "配列のサイズが大きすぎます"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, fuzzy, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "%d 番目の %qE の引数用の互換性がない型です"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "%d 番目の %qE の引数へ渡すときに整数からキャスト無しにポインタを作成しています"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr "型は全く互換がありません"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "関数 %qE へ十分な引数がありません"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "%d 番目の %qE の引数はアドレスでなければいけません"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "%K %D の第一引数がポインタ、第二引数が整数定数でなければいけません"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "%K %D の第一引数がポインタ、第二引数が整数定数でなければいけません"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "%K %D の第一引数がポインタ、第二引数が整数定数でなければいけません"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "%d 番目の %qE の引数はアドレスでなければいけません"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "%d 番目の %qE の引数は format 属性の候補のようです"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "%d 番目の %qE の引数は %d の倍数でなければいけません"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "引数 %d 個の `%s' を渡します"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "%d 番目の %qE の引数は format 属性の候補のようです"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "passing argument %d 番目の %qE の引数を渡すときにポインタからキャスト無しに整数を作成しています"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "%d 番目の %qE の引数は format 属性の候補のようです"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "passing argument %d 番目の %qE の引数を渡すときにポインタからキャスト無しに整数を作成しています"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, fuzzy, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "%d 番目の %qE の引数用の互換性がない型です"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, fuzzy, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "%d 番目の %qE の引数用の互換性がない型です"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr ""
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, fuzzy, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "%qT から %qT への変換が曖昧です"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "組み込み関数 %qD は単一の引数をとります"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 msgid "size of array %qE is not a constant expression"
 msgstr "配列 `%s' の大きさは非整数型"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 msgid "size of array is not a constant expression"
 msgstr "定数式が欠けているか無効です"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array %qE is negative"
 msgstr "配列 %qE のサイズが負です"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array is negative"
 msgstr "配列 `%s' の大きさが負です"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "配列 %qE のサイズが負です"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -35629,7 +35629,7 @@ msgstr "整数定数が %<unsigned long%> 型に対して大きすぎます"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "整数定数が %<unsigned long%> 型に対して大きすぎます"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "%<__int128%> はこのターゲットではサポートされていません"
@@ -35710,7 +35710,7 @@ msgstr "サポートされていない非標準の文字列リテラルの連結
 msgid "traditional C rejects string constant concatenation"
 msgstr "伝統的な C では文字列定数の連結を拒否します"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -35765,7 +35765,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr "唯一の仮引数となる %<void%> には修飾子がつきません"
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr ""
@@ -35780,17 +35780,17 @@ msgstr "%qs が自動変数 %qE 用に指定されています"
 msgid "%qE is not initialized"
 msgstr "%qE は初期化されていません"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr ""
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr ""
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "増分式がありません"
@@ -35800,7 +35800,7 @@ msgstr "増分式がありません"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "無効な増分式です"
@@ -35887,7 +35887,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -35897,7 +35897,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qD は関数テンプレートではありません"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr ""
@@ -36495,7 +36495,7 @@ msgid "wrong type argument to %s"
 msgstr "%s への間違った型の引数です"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -37414,35 +37414,35 @@ msgstr "%qT と %qT の比較です"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -37651,117 +37651,117 @@ msgstr "%sregparm=%d%s が 0 と %d の間ではありません"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr "%<-march=%s%> は選択した ABI とは互換性がありません"
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr "%<-mips3d%> は %<-mpaired-single%> が必要です"
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr "%<-mips3d%> は %<-mpaired-single%> が必要です"
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr "ビットフィールド命令を使用しない"
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "-mcpu=%s が -march=%s と競合しています"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "-mcpu=%s が -march=%s と競合しています"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr "%<-march=%s%> は選択した ABI とは互換性がありません"
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "%<-march=%s%> は選択した ABI とは互換性がありません"
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr "%<-march=%s%> は選択した ABI とは互換性がありません"
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, fuzzy, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "レジスタ '%c' が不明です"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -38166,12 +38166,12 @@ msgstr "式が予期されます"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "式が予期されます"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC optimize%> が文字列または番号ではありません"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr "不明な #pragma GCC coprocessor %E です"
@@ -38774,7 +38774,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -38851,12 +38851,12 @@ msgid "unknown tuning option (%s)"
 msgstr "不明な spec 関数 %qs です"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -38867,7 +38867,7 @@ msgid "specify a system register with a small string length"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "%qs は %qs 用には有効ではありません"
@@ -39047,9 +39047,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "attribute(target(\"%s\")) が不明です"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "属性 %qE の引数が文字列ではありません"
@@ -39101,18 +39101,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "静的リンクはサポートされていません"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "入れ子になった関数はこのターゲットではサポートされていません"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -39125,8 +39125,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 msgid "unsupported simdlen %wd"
 msgstr "サポートされていない組み合わせです: %s"
@@ -39136,7 +39136,7 @@ msgstr "サポートされていない組み合わせです: %s"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "組み込み関数へのサポートされていない引数の型です"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr ""
@@ -39146,7 +39146,7 @@ msgstr ""
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "組み込み関数へのサポートされていない引数の型です"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "組み込み関数へのサポートされていない引数の型です"
@@ -39237,8 +39237,8 @@ msgstr "L%d キャッシュレイテンシは %s にとって不明です"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "-mmemory-latency 用の間違った値 %qs です"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "間違った組み込み fcode です"
@@ -39358,18 +39358,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "%qE 属性の引数が \"ilink1\" または \"ilink2\" ではありません"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -39483,7 +39483,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "%qE 属性の引数が文字列定数ではありません"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "%qE 属性は整数定数引数のみ許可されています"
@@ -39503,23 +39503,23 @@ msgstr "%qE 属性は関数型にのみ適用できます"
 msgid "argument of %qE attribute ignored"
 msgstr "%qE 属性は無視されました"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "%qE は変数にのみ適用できます"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr ""
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, fuzzy, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr "不明な IRA アルゴリズム %qs です"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr "無効な被演算子出力コード"
@@ -39768,7 +39768,7 @@ msgstr "ターゲット CPU は Thumb 命令をサポートしていません"
 msgid "target CPU does not support unaligned accesses"
 msgstr "ターゲット CPU は ARM モードをサポートしていません"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support branch-likely instructions"
 msgid "This architecture does not support branch protection instructions"
@@ -39819,7 +39819,7 @@ msgstr "構造体サイズ境界は %s にのみ設定できます"
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "RTP PIC は -msingle-pic-base と併用できません"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr "コードモデル %qs は %s ビットモード内ではサポートされません"
@@ -39928,7 +39928,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr "warn_unused_result 属性付きで宣言されている %qD の戻り値を無視しています"
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -39968,42 +39968,42 @@ msgstr "%qE 属性はユニット局所関数に関しては効果がありま
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "%qE 属性は関数型にのみ適用できます"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "スタックに積まれた仮引数の実際の位置を計算できません"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, fuzzy, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr "予期しない型が `id' (%s) に指定されました"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "高位レジスタを pop する為に使用できる低位レジスタがありません"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, fuzzy, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "割り込みサービスルーチンを Thumb モードでコード化することはできません"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr "%qs 属性用の無効なベクトル型です"
@@ -40011,22 +40011,22 @@ msgstr "%qs 属性用の無効なベクトル型です"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, fuzzy, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "%qs 属性用の無効なベクトル型です"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr "target 属性または pragma が SPE ABI を変更します"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "コードモデル %qs は %s ビットモード内ではサポートされません"
@@ -40080,159 +40080,159 @@ msgstr "不明なアーキテクチャ %qs です"
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "不明なアーキテクチャ %qs です"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 msgid "%<-fpic%> is not supported"
 msgstr "-fpic はサポートされていません"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
 msgstr "-fPIC はサポートされていません"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 msgid "%<-fpie%> is not supported"
 msgstr "-fpic はサポートされていません"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr "-fPIC はサポートされていません"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "-pedantic と -traditional とは相互排他的です"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "割り込み関数は引数無しでなければいけません"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "関数が __fp16 型を返しません"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, fuzzy, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs は綴りが間違ったシグナルハンドラのように見えます"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, fuzzy, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr "'builtin_return_address' がアドレスの 2 バイトのみ含んでいます"
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr "シンボルからのポインタオフセットが間違っているようです"
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr "プログラムメモリアドレスとしてデータメモリをアクセスしています"
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, fuzzy, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr "データメモリアドレスとしてプログラムメモリをアクセスしています"
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr "レジスタの数が整数を引数を渡すために使われる"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, fuzzy, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "名前付きアドレス空間 (%s と %s) が競合しています"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "%qE 属性は変数および関数へのみ適用できます"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "%qE 属性は R8C ターゲット用にはサポートされていません"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "%qE 属性は効果がありません"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "%qE は変数にのみ適用できます"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr ""
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr ""
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr ""
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr ""
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "%qE 属性は変数および関数へのみ適用できます"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, fuzzy, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "%q+D の再宣言は仮引数を隠します"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 #| msgid "only uninitialized variables can be placed in the .noinit section"
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "初期化されていない変数のみ .noinit セクション内に配置できます"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "初期化された変数のみプログラムメモリ領域内に配置できます"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "初期化された変数のみプログラムメモリ領域内に配置できます"
@@ -40241,42 +40241,42 @@ msgstr "初期化された変数のみプログラムメモリ領域内に配置
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "関数を inline にできません"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, fuzzy, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "互換性がない %qE 属性は無視されました"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, fuzzy, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "MCU %qs はアセンブラのみ用にサポートされています"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, fuzzy, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "NaN から整数への変換です"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "文字列定数の中でファイルの終端を検出しました"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%qs には定数引数が予期されます"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -40416,7 +40416,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "入れ子になった関数はこのターゲットではサポートされていません"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -41045,8 +41045,8 @@ msgstr "最後の引数の前の引数は 8 ビット即値でなければいけ
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "コードモデル %s は PIC モードをサポートしません"
@@ -41112,255 +41112,255 @@ msgstr "%qs にクラス名が指定されていません"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr "不明なレジスタ名です: %s"
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, fuzzy, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "64 ビット ABI は ESA/390 モード内ではサポートされていません"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, fuzzy, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%stune=x86-64%s は廃止されました。代わりに %stune=k8%s または %stune=generic%s の適切な方を使用してください"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%stune=x86-64%s は廃止されました。代わりに %stune=k8%s または %stune=generic%s の適切な方を使用してください"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-mcmodel= は 32 ビットシステム上ではサポートされていません"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "-mcmodel= は 32 ビットシステム上ではサポートされていません"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "-mcmodel= は 32 ビットシステム上ではサポートされていません"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, fuzzy, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "-mcmodel= は 32 ビットシステム上ではサポートされていません"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, fuzzy, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "コードモデル %qs は %s ビットモード内ではサポートされません"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "-mg でのプロファイルはサポートされていません"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "-fdirectives-only は -traditional と併用できません"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "-fdirectives-only は -traditional と併用できません"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "-fdirectives-only は -traditional と併用できません"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "コードモデル %qs は %s ビットモード内ではサポートされません"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "コードモデル %qs は %s ビットモード内ではサポートされません"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "-m%s はこの設定ではサポートされていません"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "%i ビットモードが使用できるようにコンパイルされていません"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "選択した CPU は x86-64 命令セットをサポートしていません"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "-mcmodel= スイッチ用の誤った値 %s です"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "-mcmodel= スイッチ用の誤った値 %s です"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "%qs への有効な引数は次の通りです: %s"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "%qs への有効な引数は次の通りです: %s"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "%qs への有効な引数は次の通りです: %s"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "-mtune スイッチ用の間違った値 %qs です"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "-mtune スイッチ用の間違った値 %qs です"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "%qs への有効な引数は次の通りです: %s"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "%qs への有効な引数は次の通りです: %s"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "%qs への有効な引数は次の通りです: %s"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "%sregparm%s は 64 ビットモードでは無視されます"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "%sregparm%s は 64 ビットモードでは無視されます"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "%sregparm=%d%s が 0 と %d の間ではありません"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "-mno-fentry は SEH と互換性がありません"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, fuzzy, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "%srtd%s は 64 ビットモードでは無視されます"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "%srtd%s は 64 ビットモードでは無視されます"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -41368,290 +41368,290 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "%spreferred-stack-boundary%s はこのターゲットではサポートされていません"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "%spreferred-stack-boundary=%d%s が %d と %d の間ではありません"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mincoming-stack-boundary=%d が %d と 12 の間ではありません"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "-mno-fentry は SEH と互換性がありません"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "ret 命令は実装されていません"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, fuzzy, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "%ssseregparm%s が SSE が有効ではない状態で使用されています"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "%ssseregparm%s が SSE が有効ではない状態で使用されています"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "SSE 命令セットが無効になっています。 387 数値演算を使用します"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "387 命令セットが無効になっています。SSE 数値演算を使用します"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "-mno-fentry は SEH と互換性がありません"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, fuzzy, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr "ms_hook_prologue は入れ子になった関数と両立できません"
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "-mrecip=%s 用の不明なオプションです"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs は前処理の有効なオプションではありません"
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs は前処理の有効なオプションではありません"
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr "%qs は前処理の有効なオプションではありません"
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "-mno-fentry は SEH と互換性がありません"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr "stdcall と cdecl 属性は併用できません"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr "ms_abi と sysv_abi 属性は互換性がありません"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, fuzzy, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s と -mcall-%s は併用できません"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, fuzzy, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr "-msdata=%s と -mcall-%s は併用できません"
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, fuzzy, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s と -mcall-%s は併用できません"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, fuzzy, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr "-msdata=%s と -mcall-%s は併用できません"
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, fuzzy, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr "2 バイト cop 命令は 64 ビット VLIW モードでは許可されていません"
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, fuzzy, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "2 バイト cop 命令は 64 ビット VLIW モードでは許可されていません"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, fuzzy, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "2 バイト cop 命令は 64 ビット VLIW モードでは許可されていません"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "fastcall と regparm 属性は併用できません"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "regparam と thiscall 属性は併用できません"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "%qE 属性には整数定数引数が必要です"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "%qE 属性への引数が %d より大きいです"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "fastcall と cdecl 属性は併用できません"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "fastcall と stdcall 属性は併用できません"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "fastcall と thiscall 属性は併用できません"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "stdcall と cdecl 属性は併用できません"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "stdcall と fastcall 属性は併用できません"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "stdcall と thiscall 属性は併用できません"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "cdecl と thiscall 属性は併用できません"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "%qE 属性が非クラスメソッド用に使用されています"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "互換性がない %qE 属性は無視されました"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "%qE 属性は 32 ビットでのみ使用できます"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "%qE 属性への引数が 0 でも 1 でもありません"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "%qE 属性は文字列定数引数を必要とします"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "%qE 属性の引数が文字列定数ではありません"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "割り込みサービスルーチンを Thumb モードでコード化することはできません"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr "割り込みサービスルーチンを Thumb モードでコード化することはできません"
@@ -41846,47 +41846,47 @@ msgstr ""
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "被演算子コード '%c' に無効な被演算子型が使用されました"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, fuzzy, gcc-internal-format
 #| msgid "no low registers available for popping high registers"
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "高位レジスタを pop する為に使用できる低位レジスタがありません"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, fuzzy, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "-mcmodel= は 32 ビットシステム上ではサポートされていません"
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, fuzzy, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr "不明なアーキテクチャ %qs です"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, fuzzy, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr "-mno-fentry は SEH と互換性がありません"
@@ -41907,8 +41907,8 @@ msgstr ""
 msgid "malformed %<#pragma builtin%>"
 msgstr "間違った形式の #pragma builtin です"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "%qE 属性の無効な引数です"
@@ -41966,12 +41966,12 @@ msgstr "PRINT_OPERAND: 不明な句読点 '%c'"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "PRINT_OPERAND NULL ポインタ"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "%d 番目の %qE の引数は %d...%d の範囲でなければいけません"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "組み込み関数を認識する"
@@ -42098,19 +42098,19 @@ msgstr "%qD は %qD 内では宣言されていません"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "\"%s\" はマクロ名としては使えません"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "%qE 属性は局所変数用には指定できません"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "%qE 属性は局所変数用には指定できません"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 msgid "multiple %qE attribute"
 msgstr "定義の後で `%s' 属性をセットすることはできません"
@@ -42216,12 +42216,12 @@ msgstr "複数の割り込み属性は許可されていません"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "interrupt_thread は fido 上でのみ使用出来ます"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "スタック制限式はサポートされていません"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not supported on this target"
 msgstr "-fstack-protector はこのターゲットではサポートされていません"
@@ -42262,7 +42262,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr "-mxl-multiply-high は -mno-xl-soft-mul が必要です"
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "%qE 属性は文字列定数引数を必要とします"
@@ -42303,133 +42303,133 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "%qE 属性の引数が文字列定数ではありません"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "一貫していない %qs への呼び出しを取り扱えません"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, fuzzy, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr "%<interrupt%> 属性は MIPS32r2 プロセッサが必要です"
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr "割り込みハンドラが MIPS16 関数ではいけません"
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "組み込み関数 %qE は MIPS16 用にはサポートされていません"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs は MIPS16 コードをサポートしません"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr ""
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, fuzzy, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr "MIPS16 コードを生成する"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> は %<-mexplicit-relocs%> が必要です"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "サポートされていない組み合わせです: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr ""
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%<-march=%s%> は選択した ABI とは互換性がありません"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "%<-mgp64%> が 32 ビットプロセッサで使用されています"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "%<-mgp32%> が 64 ビット ABI で使用されています"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "%<-mgp64%> が 32 ビット ABI で使用されています"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "%qs アーキテクチャは synci 命令をサポートしていません"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "%<-mgp32%> と %<-mfp64%> はターゲットが mfhc1 と mthc1 命令をサポートしている時のみ組み合わせることができます"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%> と %<-mfp64%> は o32 ABI を使用している時のみ組み合わせることができます"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, fuzzy, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "%<-mgp32%> と %<-mfp64%> は o32 ABI を使用している時のみ組み合わせることができます"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "%<-mips3d%> は %<-mpaired-single%> が必要です"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, fuzzy, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr "%<-mips3d%> は %<-mpaired-single%> が必要です"
@@ -42439,117 +42439,117 @@ msgstr "%<-mips3d%> は %<-mpaired-single%> が必要です"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "%qs アーキテクチャは branch-likely 命令をサポートしていません"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "%qs アーキテクチャは synci 命令をサポートしていません"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "%qs アーキテクチャは paired-single 命令をサポートしていません"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, fuzzy, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr "サポートされていない組み合わせです: %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr "サポートされていない組み合わせです: %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, fuzzy, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "可能であれば位置非依存コードを生成する (large モード)"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, fuzzy, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "OS カーネルコード内で使用するために位置非依存コード (PIC) を無効にする"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> は %<-mexplicit-relocs%> が必要です"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "%qs アーキテクチャは paired-single 命令をサポートしていません"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "%qs アーキテクチャは synci 命令をサポートしていません"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "%<-mips3d%> は %<-mpaired-single%> が必要です"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs は %qs と併用しなければいけません"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "%qs アーキテクチャは paired-single 命令をサポートしていません"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "%qs はターゲットが %qs 命令を提供していることが必要となります"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "%qs アーキテクチャは synci 命令をサポートしていません"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "%qs は branch-likely 命令が必要となります"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "%qs アーキテクチャは synci 命令をサポートしていません"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "mips16 関数プロファイル"
@@ -43425,58 +43425,58 @@ msgstr "%<#pragma GCC optimize%> が文字列または番号ではありませ
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "不明な #pragma GCC coprocessor %E です"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "target 属性はこのマシン上ではサポートされていません"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target()%> attribute"
 msgstr "間違った形式の %<#pragma init%> です"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "%qE 属性は文字列定数引数を必要とします"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, fuzzy, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "attribute(target(\"%s\")) が不明です"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
 msgstr "間違った形式の %<#pragma init%> です"
@@ -43537,175 +43537,195 @@ msgstr ""
 msgid "capture by copy of RVV type %qT"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "組み込み関数 %qD は %<-mconstant-cfstrings%> フラグを要求します"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "組み込み関数 %qD は %<-mconstant-cfstrings%> フラグを要求します"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "組み込み関数 %qD は %<-mconstant-cfstrings%> フラグを要求します"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "組み込み関数 %qD は %<-mconstant-cfstrings%> フラグを要求します"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "組み込み関数 %qD は %<-mconstant-cfstrings%> フラグを要求します"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
 msgstr "%<%D(%A)%> の呼び出しに適合する関数がありません"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "-mfpu 用の不明な値 %s です"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr "ビットフィールド命令を使用しない"
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, fuzzy, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "複素浮動小数メンバを持つ構造体を渡す ABI は GCC 4.4 で変更になっています"
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "プロトタイプが無い関数に AltiVec 引数が渡されました"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr "ビットフィールド命令を使用しない"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr "ビットフィールド命令を使用しない"
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr "ビットフィールド命令を使用しない"
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr "ビットフィールド命令を使用しない"
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr "ビットフィールド命令を使用しない"
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, fuzzy, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "組み込み関数 %qD は %<-mconstant-cfstrings%> フラグを要求します"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "%qE 属性への引数が 0 でも 1 でもありません"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qE 属性は非クラス型に関しては無視されます"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires an integer constant argument"
 msgid "%qs requires an integer constant"
 msgstr "%qE 属性には整数定数引数が必要です"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support ARM mode"
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "ターゲット CPU は ARM モードをサポートしていません"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "code model %qs with %qs"
 msgstr "コードモデル %qs は %s ビットモード内ではサポートされません"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "%spreferred-stack-boundary=%d%s が %d と %d の間ではありません"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs は %qs 用には有効ではありません"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs は %qs 用には有効ではありません"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr "割り込み関数は引数無しでなければいけません"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -43957,32 +43977,32 @@ msgstr "%s は 2 この引数のみ受け付けます"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "%s は 2 この引数のみ受け付けます"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "passing argument %d 番目の %qE の引数を渡すときにポインタからキャスト無しに整数を作成しています"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 msgid "%qs is not supported in this compiler configuration"
 msgstr "%s はこの設定ではサポートされていません"
@@ -44022,29 +44042,22 @@ msgstr "二項演算子 %s が不適切です"
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr ""
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, fuzzy, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr "EABI を使用する"
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "スタックフレームが大きすぎます"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "関数 %qE へ十分な引数がありません"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr "レジスタ r2 と r5 を使用する"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, fuzzy, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr "#pragma GCC target はこのマシン用にはサポートされていません"
@@ -44169,108 +44182,118 @@ msgstr "%qs を呼び出しで使用されるレジスタとして使用でき
 msgid "unknown option for %<%s=%s%>"
 msgstr "-mrecip=%s 用の不明なオプションです"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, fuzzy, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "`this' は右辺値式であり、そのアドレスを取ることはできません"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "AltiVec 型内での %<long double%> の使用は無効です"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "AltiVec 型内での真偽型 (boolean) の使用は無効です"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "AltiVec 型内での %<complex%> の使用は無効です"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 #| msgid "use of decimal floating point types in AltiVec types is invalid"
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "AltiVec 型内での十進浮動小数点の使用は無効です"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, fuzzy, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "-mvsx 無しで 64 ビットコード用の AltiVec 型内での %<long%> の使用は無効です"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "AltiVec 型内での %<long%> の使用は廃止されました。%<int%> を使用してください"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, fuzzy, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "-mvsx 無しで AltiVec 型内での %<long long%> の使用は無効です"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, fuzzy, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "-mvsx 無しで AltiVec 型内での %<double%> の使用は無効です"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "CPU \"%s\" は %s\"%s\"%s 用には無効です"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "%s\"%s\"%s は許可されていません"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, fuzzy, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr "%s\"%s\"%s は無効です"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, fuzzy, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "静的リンクはサポートされていません"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, fuzzy, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "組み込み関数 %qD は %<-mconstant-cfstrings%> フラグを要求します"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, fuzzy, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr "組み込み関数 %qD は %<-mconstant-cfstrings%> フラグを要求します"
@@ -44315,7 +44338,7 @@ msgstr "RX FPU 命令は NaNs と無限大をサポートしません"
 msgid "builtin %qs can only be used on vector types"
 msgstr "非関数 `%s' の引数に format 属性が指定されました"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr ""
@@ -44385,228 +44408,228 @@ msgstr "%qE は廃止されました"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "%qs 用の定数引数が範囲外です"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "%qs 用の定数引数が範囲外です"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "%qs 用の定数引数が範囲外です"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "%qs 用の定数引数が範囲外です"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, fuzzy, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr "%qE は %qs (%qs 用) として前もって決められています"
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, fuzzy, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr "%qE は %qs (%qs 用) として前もって決められています"
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, fuzzy, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr "%qE は %qs (%qs 用) として前もって決められています"
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr "<未解決オーバーロードされた関数型>"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, fuzzy, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "間違った組み込みコードです"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "組み込み関数への無効な引数です"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "%qE 属性への引数が 0 でも 1 でもありません"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "局所変数の合計サイズがアーキテクチャの制限を超過しています"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "%qs のフレームサイズ: "
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs は動的スタック割り当てを使用します"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, fuzzy, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr "複素浮動小数メンバを持つ構造体を渡す ABI は GCC 4.4 で変更になっています"
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "関数 `%s' を `mutable' としては宣言できません"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "64 ビット ABI は ESA/390 モード内ではサポートされていません"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr "ハードウェア十進浮動小数点命令は %s 上では使用出来ません"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, fuzzy, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr "ハードウェア十進浮動小数点命令は %s 上では使用出来ません"
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "hardware decimal floating point instructions not available on %s"
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "ハードウェア十進浮動小数点命令は %s 上では使用出来ません"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "hardware decimal floating point instructions not available in ESA/390 mode"
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "ハードウェア十進浮動小数点命令は ESA/390 モードでは使用出来ません"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, fuzzy, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr "-mhard-dfp は -msoft-float と併用できません"
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, fuzzy, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "-mbackchain -mpacked-stack -mhard-float の組み合わせはサポートされていません"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr ""
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "スタックサイズは 64k より大きくてはいけません"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, fuzzy, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "-mstack-guard は -mstack-size を暗黙的に使用します"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "%qE 属性は SH2A 用にのみサポートされています"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "%qs への引数は非負整数であるべきです"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "%qE 属性への引数が %d より大きいです"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "attribute(target(\"%s\")) が不明です"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "このターゲットでは %<__int128%> はサポートされていません"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 #| msgid "invalid fp constant"
 msgid "invalid cc output constraint: %qs"
 msgstr "無効な浮動小数点定数です"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 msgid "multiple cc output constraints not supported"
 msgstr "-mhard-float はサポートされていません"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr ""
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr "コンストラクタの静的メンバ初期化子は無効です"
@@ -45048,8 +45071,8 @@ msgstr "%qE 属性は効果がありません"
 msgid "attribute %qs applies to array types only"
 msgstr "%qs 属性は配列型のみに適用できます"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "void の値が本来の意味通りに無視されませんでした"
@@ -45125,7 +45148,7 @@ msgstr ""
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr ""
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr "元々はここで定義されました"
@@ -45358,7 +45381,7 @@ msgstr "%q+D の宣言は前の非変数を隠します"
 msgid "declaration of %qD shadows a parameter"
 msgstr "%q+D の再宣言は仮引数を隠します"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "`%s' の宣言はグローバル宣言を覆い隠します"
@@ -45368,7 +45391,7 @@ msgstr "`%s' の宣言はグローバル宣言を覆い隠します"
 msgid "declaration of %qD shadows a previous local"
 msgstr "`%s' の宣言は前方のローカルシンボルを覆い隠します"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "隠された宣言はここです"
@@ -45433,7 +45456,7 @@ msgstr "%qE が宣言されていません (この関数内での最初の使用
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "未宣言の識別子は出現した各関数内で一回のみ報告されます"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "ラベル %qE があらゆる関数の外側から参照されました"
@@ -45468,7 +45491,7 @@ msgstr ""
 msgid "duplicate label declaration %qE"
 msgstr "重複したラベルの宣言 %qE です"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "重複したラベル %qD です"
@@ -45503,7 +45526,7 @@ msgstr ""
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE が誤った種類のタグとして宣言されました"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr "%qE 属性は関数型にのみ適用できます"
@@ -45650,12 +45673,12 @@ msgstr "ISO C90 は %<[*]%> 配列宣言をサポートしません"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%> は関数プロトタイプスコープ以外では許可されていません"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 msgid "%<omp::%s%> not allowed to be specified in this context"
 msgstr "マクロ引数内でディレクトリを使うことはできません"
@@ -45665,7 +45688,7 @@ msgstr "マクロ引数内でディレクトリを使うことはできません
 msgid "%q+D is usually a function"
 msgstr "%q+D は通常は関数です"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "前に %qD 用の定義がありません"
@@ -45741,7 +45764,7 @@ msgstr "volatile フィールドがあるオブジェクトをレジスタに配
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "初期化されていない定数 %qD は C++ 内では無効です"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -45928,7 +45951,7 @@ msgstr "仮引数 %qE 用に記憶域クラスが指定されました"
 msgid "storage class specified for unnamed parameter"
 msgstr "無名仮引数用に記憶域クラスが指定されました"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "型名用に記憶域クラスが指定されました"
@@ -45991,7 +46014,7 @@ msgstr "関数の配列としての %qE の宣言です"
 msgid "declaration of type name as array of functions"
 msgstr "関数の配列としての型名の宣言です"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr ""
@@ -46097,7 +46120,7 @@ msgstr "型名は配列を返す関数として定義されています"
 msgid "function definition has qualified void return type"
 msgstr "関数定義が void 戻り型の修飾子を持っています"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "関数戻り値の型修飾子は無視されました"
@@ -46224,7 +46247,7 @@ msgstr "ISO C は const や volatile の関数型を禁止しています"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "構造体または共用体のメンバは可変型を持つことは出来ません"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "変数またはフィールド %qE が void と宣言されています"
@@ -46331,7 +46354,7 @@ msgstr "可変型の入れ子になっていない関数です"
 msgid "object with variably modified type must have no linkage"
 msgstr "可変型のオブジェクトはリンクされてはいけません"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "関数宣言がプロトタイプではありません"
@@ -46421,18 +46444,18 @@ msgstr "%<union %E%> の入れ子になった再定義です"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "%<struct %E%> の入れ子になった再定義です"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr "%qs 式内での型定義は C++ では無効です"
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 forbids specifying subobject to initialize"
 msgid "%qT defined in underspecified object initializer"
 msgstr "ISO C90 は初期化用に副オブジェクトを指定することを禁止してます"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "宣言が何も宣言していません"
@@ -46462,604 +46485,604 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "共用体に名前付きメンバがありません"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "共用体にメンバがありません"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "構造体に名前付きメンバがありません"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "構造体にメンバがありません"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "共用体に可変配列メンバがあります"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "構造体の最後ではない所に可変配列メンバがあります"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "共用体に可変配列メンバがあります"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member not at end of struct"
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "構造体の最後ではない所に可変配列メンバがあります"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, fuzzy, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "配列 %qE のサイズが大きすぎます"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, fuzzy, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr "認識できないレジスタ名 %qs です"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "共用体を透過的にできません"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 #| msgid "a member of a structure or union cannot have a variably modified type"
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "構造体または共用体のメンバは可変型を持つことは出来ません"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "%<struct %E%> の再定義です"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "%<enum %E%> の入れ子になった再定義です"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "%<enum %E%> の再定義です"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, fuzzy, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr "指定したモードは列挙値用には小さすぎます"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "列挙値が整数の範囲の最大値を超えました"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "列挙値が整数の範囲の最大値を超えました"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of %<enum %E%>"
 msgid "conflicting redefinition of enum %qT"
 msgstr "%<enum %E%> の入れ子になった再定義です"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "%qE 用の列挙値が整数定数ではありません"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "%qE の列挙値が整数定数式ではありません"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "列挙値がオーバーフローしました"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr "%qE 用の列挙値が整数定数ではありません"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr "%qE 用の列挙値が整数定数ではありません"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C は列挙値を %<int%> の範囲に制限しています"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr "非インライン (noinline) 属性が与えられたインライン関数 %qD です"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "戻り値の型が不完全型です"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "戻り値の型をデフォルトの %<int%> にします"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, fuzzy, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr "プロトタイプ無しの大域関数に関して警告する"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "前に %qD 用のプロトタイプがありません"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "%qD がプロトタイプ無しで、定義される前に使用されました"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "%qD はその定義の前で宣言しないで使用されました"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "%qD の戻り型が %<int%> ではありません"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr ""
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%qD は通常は非静的関数です。"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "プロトタイプ関数宣言内で古いスタイルの仮引数宣言です"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "伝統的な C では ISO C スタイルの関数定義は拒否されます"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "ISO C は十進浮動小数点をサポートしません"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr "古いスタイルの関数定義です"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "仮引数リストに仮引数名がありません"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD は非仮引数として宣言されています"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "複数の仮引数が %qD という名前です"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "仮引数 %qD が void 型で宣言されています"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "%qD の型をデフォルトの %<int%> にします"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "仮引数 %qD が不完全型を持っています"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "仮引数 %qD 用の宣言がありますが、そのような仮引数はありません"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "引数の数が組み込みプロトタイプと一致しません"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "引数の数がプロトタイプと一致しません"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "プロトタイプ宣言です"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr ""
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "引数 %qD が組み込みプロトタイプと一致しません"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "引数 %qD がプロトタイプと一致しません"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "非 void を戻す関数内に return 文がありません"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "仮引数 %qD が設定されましたが使用されません"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, fuzzy, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "%<for%> ループ初期化宣言は C99 モード内でのみ許可されています"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, fuzzy, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "オプション -std=c99 または -std=gnu99 をコードコンパイル時に使用してください"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 は %<[*]%> 配列宣言をサポートしません"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "静的変数 %qD の宣言が %<for%> ループ初期化宣言内にあります"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "%<extern%> 変数 %qD の宣言が %<for%> ループ初期化宣言内にあります"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> が %<for%> ループ初期化宣言内で宣言されています"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> が %<for%> ループ初期化宣言内で宣言されています"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> が %<for%> ループ初期化宣言内で宣言されています"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "非変数 %qD の宣言が %<for%> ループ初期化宣言内にあります"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr "互換性のないアドレス空間修飾子 %qs と %qs です"
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "宣言指定が予期されます"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "宣言指定内に複数の記憶域クラスがあります"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr "%<__thread%> が %<auto%> と併せて使用されています"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%<__thread%> が %<register%> と併せて使用されています"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "宣言指定内に二個またはそれ以上の型があります"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> は GCC にとって長すぎます"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 は %<long long%> をサポートしません"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 は複素数型をサポートしません"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr ""
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "%qE が重複しています"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C は %<__int128%> 型をサポートしません"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "%<__int128%> はこのターゲットではサポートされていません"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 は複素数型をサポートしません"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C は %<__int128%> 型をサポートしません"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "%<__int128%> はこのターゲットではサポートされていません"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C は十進浮動小数点をサポートしません"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "固定小数点型はこのターゲットではサポートされていません"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C は固定小数点型をサポートしません"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 #| msgid "case label is not an integer constant expression"
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "case ラベルは整数定数式に出来ません"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant expression"
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "%qE の列挙値が整数定数式ではありません"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr ""
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE は宣言の開始ではありません"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "%<__thread%> が %<auto%> と併せて使用されています"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "%<__thread%> が %<register%> と併せて使用されています"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "%<__thread%> が %<typedef%> と併せて使用されています"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr "%<__thread%> が %<register%> と併せて使用されています"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, fuzzy, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "%s は %s をサポートしません"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 は %<long long%> をサポートしません"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> が %<extern%> の前にあります"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> が %<static%> の前にあります"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%<__thread%> が %<auto%> と併せて使用されています"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr "%<__thread%> が %<register%> と併せて使用されています"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr "%qs は %qs と併用しなければいけません"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr ""
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, fuzzy, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%qs は %qs と併用しなければいけません"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr "%qs は %qs と併用しなければいけません"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<_Sat%> が %<_Fract%> または %<_Accum%> 無しで使用されています"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C は単なる %<complex%> を %<double complex%> を意味するものとしてはサポートしません"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C90 は %<[*]%> 配列宣言をサポートしません"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C は複素整数型をサポートしません"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "%q+D 用の整列は最低 %d でなければいけません"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++ は %<__int128%> を %qs に対してはサポートしていません"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, fuzzy, gcc-internal-format
 msgid "left shift of negative value"
 msgstr "左シフト回数が負です"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "左シフト回数が負です"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "右シフト回数が負です"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "左シフト回数 >= 型の幅となっています"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "右シフト回数 >= 型の幅となっています"
@@ -47089,7 +47112,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr ""
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr "行末 (EOL) が予期されます"
@@ -47099,8 +47122,8 @@ msgstr "行末 (EOL) が予期されます"
 msgid "ISO C forbids an empty translation unit"
 msgstr ""
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -47140,9 +47163,9 @@ msgstr "不明な型名 %qE です"
 msgid "unknown type name %qE"
 msgstr "不明な型名 %qE です"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "宣言指定が予期されます"
@@ -47172,7 +47195,7 @@ msgstr "getter/setter 属性は後に %<=%> が無ければいけません"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "%<;%>、識別子または %<(%> が予期されます"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr ""
@@ -47192,7 +47215,7 @@ msgstr "packed 属性は必要ありません"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "getter/setter 属性は後に %<=%> が無ければいけません"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr "getter/setter 属性は後に %<=%> が無ければいけません"
@@ -47283,7 +47306,7 @@ msgstr "静的アサーション内の式が定数ではありません"
 msgid "static assertion failed: %E"
 msgstr "静的アサーションに失敗しました: %E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, fuzzy, gcc-internal-format
 msgid "static assertion failed"
 msgstr "静的アサーションに失敗しました: %E"
@@ -47354,10 +47377,10 @@ msgstr "マクロ引数 \"%s\" は文字列化されます"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "識別子が予期されます"
@@ -47511,7 +47534,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -47521,8 +47544,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, fuzzy, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr "認識できないアドレス"
@@ -47696,12 +47719,12 @@ msgstr "ISO C は中間項が省略された ?: 式を禁じます"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, fuzzy, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr "フィールドの型はここで宣言されました"
@@ -47851,7 +47874,7 @@ msgstr "ISO C は %<__int128%> 型をサポートしません"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "式が予期されます"
@@ -48173,12 +48196,12 @@ msgstr "objective-c メソッド定義が予期されます"
 msgid "no type or storage class may be specified here,"
 msgstr "型または記憶域クラスがここで指定されていません、"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, fuzzy, gcc-internal-format
 msgid "empty property attribute list"
 msgstr "不明な property 属性です"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 msgid "missing property attribute"
 msgstr "不明な property 属性です"
@@ -48188,57 +48211,57 @@ msgstr "不明な property 属性です"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "不明な property 属性です"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "不明な property 属性です"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "Objective-C 文字列の前に連続した %<@%> があります"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr "クラス名が予期されます"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, fuzzy, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr "setter 名は %<:%> で終端されなければいけません"
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma omp flush%> は複合文内でのみ使用できます"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<#pragma GCC pch_preprocess%> は最初に無ければいけません"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp taskwait%> は複合文内でのみ使用できます"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr ""
@@ -48248,25 +48271,25 @@ msgstr ""
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma GCC pch_preprocess%> は最初に無ければいけません"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, fuzzy, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "for 文が予期されます"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%> は最初に無ければいけません"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "%qs 句が多すぎます"
@@ -48281,63 +48304,63 @@ msgstr "添え字は整数でなければいけません"
 msgid "expected %<)%> or %<,%>"
 msgstr "%<,%> または %<)%> が予期されます"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD は変数ではありません"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD は変数ではありません"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, fuzzy, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr "%<none%> または %<shared%> が予期されます"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "%<#pragma omp section%> または %<}%> が予期されます"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 msgid "expected constant logical expression"
 msgstr "式が予期されます"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "%<;%>、%<,%> または %<)%> が予期されます"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "%<catch%> が予期されます"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, fuzzy, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -48360,22 +48383,22 @@ msgstr "%<num_threads%> 値は正でなければいけません"
 msgid "%<num_tasks%> value must be positive"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, fuzzy, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, fuzzy, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "整数式が予期されます"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, fuzzy, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr "%<;%>、%<,%> または %<)%> が予期されます"
@@ -48385,95 +48408,95 @@ msgstr "%<;%>、%<,%> または %<)%> が予期されます"
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "%<class%>、%<typename%>、または %<template%> が予期されます"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, fuzzy, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, fuzzy, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, fuzzy, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "添え字は整数でなければいけません"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, fuzzy, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, fuzzy, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "引数が多すぎます"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, fuzzy, gcc-internal-format
 msgid "unexpected argument"
 msgstr "packed 属性は必要ありません"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "%qE 属性の引数が整数定数ではありません"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 msgid "too many %<self%> clauses"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "%<none%> または %<shared%> が予期されます"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr "%<using%> が予期されます"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "%<class%>、%<typename%>、または %<template%> が予期されます"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, fuzzy, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr "整数 0 とポインタとの順序比較です"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, fuzzy, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "%<+%>、%<*%>、%<-%>、%<&%>、%<^%>、%<|%>、%<&&%> または %<||%> が予期されます"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr ""
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "スケジュール %<runtime%> は %<chunk_size%> 仮引数をとりません"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "スケジュール %<auto%> は %<chunk_size%> 仮引数をとりません"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "`無効なスケジュールの種類です"
@@ -48483,22 +48506,22 @@ msgstr "`無効なスケジュールの種類です"
 msgid "%<num_teams%> value must be positive"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, fuzzy, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr "%<operator%> が予期されます"
@@ -48508,22 +48531,22 @@ msgstr "%<operator%> が予期されます"
 msgid "duplicate %qs modifier"
 msgstr "`%s' が重複しています"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "整数 0 とポインタとの順序比較です"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr "重複する `virtual' 指定子"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, fuzzy, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr "重複する `virtual' 指定子"
@@ -48543,62 +48566,62 @@ msgstr ""
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "RTP PIC は Thumb では使用できません"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "`無効なスケジュールの種類です"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 msgid "invalid doacross kind"
 msgstr "無効なマスクです"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 msgid "too many %<present%> modifiers"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, fuzzy, gcc-internal-format
 msgid "invalid map kind"
 msgstr "無効なマスクです"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "%<none%> または %<shared%> が予期されます"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr ""
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "`無効なスケジュールの種類です"
@@ -48613,88 +48636,88 @@ msgstr "`無効なスケジュールの種類です"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "%<;%>、%<,%> または %<)%> が予期されます"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr "ポインタが予期されます"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs は %qs 用には有効ではありません"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, fuzzy, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%qs は %qs と併用しなければいけません"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr "ポインタが予期されます"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, fuzzy, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "セクション属性は `%s' には使えません"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr ""
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, fuzzy, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "ファイルスコープの可変フィールドです"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "%<extern%> 変数 %qD の宣言が %<for%> ループ初期化宣言内にあります"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "%<#pragma message%> の後に文字列が予期されます"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr ""
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -48709,7 +48732,7 @@ msgstr ""
 msgid "expected function name"
 msgstr "関数が予期されます"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "メンバ関数の名前を欠いています"
@@ -48719,22 +48742,22 @@ msgstr "メンバ関数の名前を欠いています"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr ""
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<#pragma align%> は %D の前に現れなければいけません。無視しています"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr ""
@@ -48759,7 +48782,7 @@ msgstr ""
 msgid "modified here"
 msgstr "共用体がここで定義されています"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr "整数 0 とポインタとの順序比較です"
@@ -48799,112 +48822,112 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr "--driver は最早サポートされません"
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "%<;%>、%<,%> または %<)%> が予期されます"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "%<class%>、%<typename%>、または %<template%> が予期されます"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, fuzzy, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr "%<+%>、%<*%>、%<-%>、%<&%>、%<^%>、%<|%>、%<&&%> または %<||%> が予期されます"
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 msgid "too many atomic clauses"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, fuzzy, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "RTP PIC は Thumb では使用できません"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, fuzzy, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr "%qE は %qs (%qs 用) として前もって決められています"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%> after union definition"
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "共用体定義の後には %<;%> が予期されます"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "%<#pragma omp atomic%> 用の無効な演算子です"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "unexpected %<else%>"
 msgstr "%<delete%> が予期されます"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "%<#pragma omp atomic%> 用の無効な演算子です"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "%<#pragma omp atomic%> 用の無効な演算子です"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "%<#pragma omp atomic%> 用の無効な演算子です"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr ""
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "初期化子の要素が定数式ではありません"
@@ -48914,27 +48937,27 @@ msgstr "初期化子の要素が定数式ではありません"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "%<;%>、%<,%> または %<)%> が予期されます"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "%<;%>、%<,%> または %<)%> が予期されます"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "%<class%>、%<typename%>、または %<template%> が予期されます"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -48944,164 +48967,164 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr "%<(%> またはファイル終端 (EOF) が予期されます"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp flush%> は複合文内でのみ使用できます"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "%<none%> または %<shared%> が予期されます"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr "%<#pragma omp%> 句が予期されます"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp flush%> は複合文内でのみ使用できます"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr ""
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 #| msgid "not enough perfectly nested loops"
 msgid "not enough nested loops"
 msgstr "ループが完全な入れ子になっていません"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "for 文が予期されます"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr ""
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp barrier%> は複合文内でのみ使用できます"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, fuzzy, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "%<operator%> が予期されます"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, fuzzy, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "%<using%> が予期されます"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "%<#pragma align%> は %D の前に現れなければいけません。無視しています"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma align%> は %D の前に現れなければいけません。無視しています"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 msgid "expected trait selector name"
 msgstr "クラス名が予期されます"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, fuzzy, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "不明な演算子 %qs が %%:version-compare 内にあります"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, fuzzy, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr "%s は 2 この引数のみ受け付けます"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr ""
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr "整数 0 とポインタとの順序比較です"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 msgid "expected identifier or string literal"
 msgstr "文字列リテラルが予期されます"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr "静的アサーション内の式が整数定数式ではありません"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -49109,292 +49132,292 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr "%qs スイッチは既にサポートされていません"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 msgid "expected context selector set name"
 msgstr "クラス名が予期されます"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 msgid "expected %<match%>"
 msgstr "%<catch%> が予期されます"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr "呼び出されたオブジェクトは関数ではありません"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "-f%s と -msdata=%s は併用できません"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "%<#pragma align%> は %D の前に現れなければいけません。無視しています"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma align%> は %D の前に現れなければいけません。無視しています"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, fuzzy, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, fuzzy, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "%<try%> が予期されます"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "%<class%>、%<typename%>、または %<template%> が予期されます"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr "%<#pragma GCC pop_options%> に対応した %<#pragma GCC push_options%> がありません"
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr ""
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "%<class%>、%<typename%>、または %<template%> が予期されます"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr ""
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, fuzzy, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "前方での `%s' の宣言"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, fuzzy, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "%<(%> またはファイル終端 (EOF) が予期されます"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, fuzzy, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "関数が予期されます"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "%<#pragma omp section%> または %<}%> が予期されます"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "%<class%>、%<typename%>、または %<template%> が予期されます"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, fuzzy, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "可変長配列が使用されています"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "可変長配列が使用されています"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "%<;%>、%<,%> または %<)%> が予期されます"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %qs or %qs"
 msgstr "%<,%> または %<)%> が予期されます"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp barrier%> は複合文内でのみ使用できます"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, fuzzy, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr "--driver は最早サポートされません"
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, fuzzy, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr "--driver は最早サポートされません"
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, fuzzy, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr "代入として無効な左辺値です"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 msgid "expected directive name"
 msgstr "関数が予期されます"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 #| msgid "unknown spec function %qs"
 msgid "unknown assumption clause %qs"
 msgstr "不明な spec 関数 %qs です"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 msgid "expected assumption clause"
 msgstr "ポインタが予期されます"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE は最初に使用した後に %<threadprivate%> と宣言されています"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "自動変数 %qE は %<threadprivate%> になることは出来ません"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%<threadprivate%> %qE は不完全型を持っています"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr ""
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr ""
@@ -49535,7 +49558,7 @@ msgstr "%<void *%> ポインタの参照を解除しています"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "添字が付けられた値が、配列、ポインタまたはベクトルではありません"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "配列の添字が整数型ではありません"
@@ -49565,7 +49588,7 @@ msgstr "%qE は初期化されていません"
 msgid "enum constant defined here"
 msgstr "列挙型定数がここで定義されています"
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -49678,17 +49701,17 @@ msgstr "関数へ引数を渡すときに %qT から %qT へ暗黙的に変換
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "関数 %qE へ渡す引数が少なすぎます"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "文字列リテラルの比較結果は不定です"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 msgid "comparison between pointer and zero character constant"
 msgstr "ポインタと整数との比較を行なっています"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr ""
@@ -49713,7 +49736,7 @@ msgstr "関数ポインタの差を求めようとしています"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "不完全型へのポインタに関する計算です"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, fuzzy, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr "不完全型へのポインタに関する計算です"
@@ -50008,7 +50031,7 @@ msgstr "ポインタから異なるサイズの整数へのキャストです"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "型 %qT の関数呼び出しから一致しない型 %qT へのキャストです"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "異なるサイズの整数からポインタへのキャストです"
@@ -50180,7 +50203,7 @@ msgstr "左辺への代入は format 属性の候補のようです"
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "左辺の初期化は format 属性の候補のようです"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "戻り型は format 属性の候補のようです"
@@ -50382,12 +50405,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "可変配列メンバを初期化しています"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, fuzzy, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr "互換性のないポインタ型からの初期化です"
@@ -50397,7 +50420,7 @@ msgstr "互換性のないポインタ型からの初期化です"
 msgid "array of inappropriate type initialized from string constant"
 msgstr "適切でない型の配列が文字列定数で初期化されています"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "非左辺値配列の無効な使用です"
@@ -50428,7 +50451,7 @@ msgstr "初期化子の要素が定数式ではありません"
 msgid "initializer element is not computable at load time"
 msgstr "初期化子の要素がロード時に計算出来ません"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, fuzzy, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "可変長オブジェクトは初期化されないことになるでしょう"
@@ -50443,7 +50466,7 @@ msgstr "初期化子の終わりに余分なブレースのグループ"
 msgid "braces around scalar initializer"
 msgstr "スカラー初期化子が中括弧で囲まれています"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "入れ子になったコンテキスト内で可変配列メンバを初期化しています"
@@ -50534,7 +50557,7 @@ msgstr "構造体初期化子内の要素が多すぎます"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr ""
@@ -50574,7 +50597,7 @@ msgstr "ISO C は %<goto *expr;%> を禁止しています"
 msgid "computed goto must be pointer type"
 msgstr "%d 番目の %qE の引数はアドレスでなければいけません"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "%<noreturn%> と宣言されている関数が %<return%> 文を持っています"
@@ -50629,7 +50652,7 @@ msgstr "switch 文の外にある %<default%> ラベルです"
 msgid "break statement not within loop or switch"
 msgstr "ループまたは switch 文の外にある break 文です"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -50675,27 +50698,27 @@ msgstr ""
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr ""
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, fuzzy, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr "異なる列挙型の比較に関して警告する"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, fuzzy, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr "結果の数が異なります"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "型 %qT と %qT の間での比較です"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, fuzzy, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr "浮動小数点の比較で == や != を使うのは安全ではありません"
@@ -50767,29 +50790,29 @@ msgstr "スカラーが必要な場所で共用体型の値が使用されてい
 msgid "used vector type where scalar is required"
 msgstr "スカラーが必要な場所で構造体型の値が使用されています"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "インスタンス変数 `%s' は %s と宣言されています"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qE は句 %qs 内では変数ではありません"
@@ -50800,85 +50823,85 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "%qs 句が多すぎます"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, fuzzy, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "インスタンス変数 `%s' は %s と宣言されています"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, fuzzy, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr "配列 new でのサイズは完全な型を持たねばなりません"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, fuzzy, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "配列 new でのサイズは完全な型を持たねばなりません"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr "代入として無効な左辺値です"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, fuzzy, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "セクション属性は `%s' には使えません"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, fuzzy, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr "可変長配列が使用されています"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, fuzzy, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr "メソッド仕様内での構文解析エラー"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, fuzzy, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "ベクトル型の delete ですが、ポインタでも配列型でもありません"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr "ベクトル型の delete ですが、ポインタでも配列型でもありません"
@@ -50888,17 +50911,17 @@ msgstr "ベクトル型の delete ですが、ポインタでも配列型でも
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "ISO C は関数型の修飾子を禁止しています"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr "仮引数 %qD が不完全型を持っています"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr "非整数型のビットフィールド %qD です"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -50908,32 +50931,32 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, fuzzy, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr "読み取り専用変数 %qD の増分です"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr "読み取り専用変数 %qD の増分です"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, fuzzy, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr "初期化子は `%s' のサイズの特定に失敗しました"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr "ポインタが予期されます"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr ""
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr ""
@@ -50963,7 +50986,7 @@ msgstr "可変長配列 %qE が使用されています"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE は %<reduction(%s)%> 用の無効な型を持っています"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr ""
@@ -50973,17 +50996,17 @@ msgstr ""
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "可変長配列が使用されています"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE は %<threadprivate%> (%<copyin%> 用として) でなければいけません"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -50998,24 +51021,24 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr ""
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE は句 %qs 内では変数ではありません"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "%qE appears more than once in data clauses"
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
@@ -51027,32 +51050,32 @@ msgstr "%qE がデータ句内で二回以上出現しています"
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr ""
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, fuzzy, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE は %<firstprivate%> 句内では変数ではありません"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE は %<lastprivate%> 句内では変数ではありません"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qE は句 %qs 内では変数ではありません"
@@ -51072,7 +51095,7 @@ msgstr ""
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr "%qE は句 %qs 内では変数ではありません"
@@ -51082,7 +51105,7 @@ msgstr "%qE は句 %qs 内では変数ではありません"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr "%qE は句 %qs 内では変数ではありません"
@@ -51092,76 +51115,76 @@ msgstr "%qE は句 %qs 内では変数ではありません"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qE は句 %qs 内では変数ではありません"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 msgid "unsupported map expression %qE"
 msgstr "固定小数変換内で無効な型です"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "インスタンス変数 `%s' は %s と宣言されています"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, fuzzy, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE は句 %qs 内では変数ではありません"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, fuzzy, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, fuzzy, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "インスタンス変数 `%s' は %s と宣言されています"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, fuzzy, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "%qE は句 %qs 内では変数ではありません"
@@ -51176,22 +51199,22 @@ msgstr "ソースはポインタではありません"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "ベクトル型の delete ですが、ポインタでも配列型でもありません"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr ""
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr "%qs 句が多すぎます"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE は %qs (%qs 用) として前もって決められています"
@@ -51201,38 +51224,38 @@ msgstr "%qE は %qs (%qs 用) として前もって決められています"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -51501,13 +51524,13 @@ msgstr "第 %d 引数を %qT から %qT へ変換する方法が不明です"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "第 %d 引数を %qT から %qT へ変換する方法が不明です"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] "  候補では %d 個の引数が予期されますが、%d 個の引数が与えられています"
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -51819,568 +51842,568 @@ msgstr "型が全く異なるポインタの比較でキャストを欠いてい
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "条件式内でポインタ型と整数型が適合しません"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr ""
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr ""
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr "%qD の戻り型が %<int%> ではありません"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "%q#T と %q#T の間での比較です"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to %<(%T) (%A)%>"
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "%<(%T) (%A)%> への呼び出しが適合しません"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 #| msgid "call of %<(%T) (%A)%> is ambiguous"
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "%<(%T) (%A)%> の呼び出しが曖昧です"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, fuzzy, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "%qD は通常は非静的関数です。"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "%qD は通常は非静的関数です。"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr ""
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "%<operator %s%> は %qT 用としては適切ではありません"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, fuzzy, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr "マクロ引数内でディレクトリを使うことはできません"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 msgid "declared private here"
 msgstr "ここで宣言されています"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr "マクロ引数内でディレクトリを使うことはできません"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 msgid "declared protected here"
 msgstr "ここで宣言されています"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr "%q+#D はアクセス出来ません"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 msgid "  declared here"
 msgstr "ここで宣言されています"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "NULL から非ポインタ型 %qT へ変換しています"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, fuzzy, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "NULL から非ポインタ型へ変換しています"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, fuzzy, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "%qT 用の初期化子の周りに中括弧が多すぎます"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr ""
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C++ は名前つき戻り値を許可しません"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "%qT から %qT への無効な変換です"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 msgid "invalid conversion from %qH to %qI"
 msgstr "%qT から %qT への無効な変換です"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, fuzzy, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr "`explicit' にできるのは、コンストラクタだけです"
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "参照を参照として宣言できません"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "参照を参照として宣言できません"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "参照を参照として宣言できません"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "参照を参照として宣言できません"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 #, fuzzy
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr "参照を参照として宣言できません"
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr ""
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "ビットフィールド %qD を関数型として宣言できません"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr ""
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr ""
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 #, fuzzy
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "関数へ引数を渡すときに %qT から %qT へ暗黙的に変換されます"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr ""
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, fuzzy, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "参照を参照として宣言できません"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr ""
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr ""
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr ""
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "関数呼び出しの引数が format 属性の候補であるようです"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr ""
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr ""
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr ""
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr ""
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, fuzzy, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "一時オブジェクトのアドレスを取ろうとしています"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "   ポインタからメンバへの変換で"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, fuzzy, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr "宣言の中に代入(初期化ではなく)があります"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 msgid "; use assignment instead"
 msgstr "代わりに #include を使用してください"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, fuzzy, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr "可変配列メンバを初期化しています"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, fuzzy, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "   ポインタからメンバへの変換で"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, fuzzy, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "宣言の中に代入(初期化ではなく)があります"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, fuzzy, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr "代わりに #include を使用してください"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, fuzzy, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr "可変配列メンバを初期化しています"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 msgid "%#qT declared here"
 msgstr "%qD はここで宣言されています"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, fuzzy, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "不完全型への変換です"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, fuzzy, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr "定数が自身を参照しています"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 msgid "cannot convert %qH to %qI"
 msgstr "型 %qT から型 %qT へ変換できません"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr ""
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "%<%D(%A)%> の呼び出しに適合する関数がありません"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "非関数 %qD の呼び出しです"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "コンストラクタ %<%T::%D%> を直接呼び出すことは出来ません"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "%<%D(%A)%> の呼び出しに適合する関数がありません"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "オーバーロードされた %<%s(%A)%> の呼び出しは曖昧です"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "%s に `%s' という名前のメンバはありません"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr "コンストラクタから値を返そうとしています"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr "デストラクタから値を返そうとしています"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "オブジェクト以外がメンバ関数 %qD を呼び出すことは出来ません"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr ""
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr ""
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 msgid "try making the operator a %<const%> member function"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr ""
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 msgid "  for conversion from %qH to %qI"
 msgstr "%q#T から %q#T への変換です"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr ""
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr ""
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, fuzzy, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr " 候補 1: %q+#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, fuzzy, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr " 候補 2: %q+#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr ""
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "無効なバージョン番号形式"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "possibly dangling reference to a temporary"
 msgstr "一時オブジェクトへの参照を返そうとしています"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr ""
@@ -52426,7 +52449,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q+#D はオーバーロードすることが出来ません"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "前方での `%s' の宣言"
@@ -52848,7 +52871,7 @@ msgstr "構造体に可変配列メンバ以外のメンバがありません"
 msgid "next member %q#D declared here"
 msgstr "`%s' は前にここで宣言されました"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "%q#T が再定義されています"
@@ -52980,7 +53003,7 @@ msgstr "関数 `%s' に対して不適切な保存クラス"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
@@ -53021,7 +53044,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr ""
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -53039,7 +53062,7 @@ msgstr ""
 msgid "%q+E is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -53060,7 +53083,7 @@ msgstr ""
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 msgid "call to internal function %qE"
@@ -53107,7 +53130,7 @@ msgstr "%s に `%s' という名前のメンバはありません"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -53236,18 +53259,18 @@ msgstr "配列の添字が配列境界の外にあります"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "配列の添字が配列境界の外にあります"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "初期化子を欠いています"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr "%<void *%> ポインタの参照を解除しています"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -53255,470 +53278,470 @@ msgstr "%<void *%> ポインタの参照を解除しています"
 msgid "%qE is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "%qD は定数式で初期化されませんでした"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "初期化子を欠いています"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "入れ子になった関数はこのターゲットではサポートされていません"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, fuzzy, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "初期化子を欠いています"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr ""
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "定数式がオーバーフローしました"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 msgid "allocated here"
 msgstr "ここで宣言されています"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "%qD は定数式で初期化されませんでした"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, fuzzy, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "%qE は初期化されていません"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%q#D は const ではありません"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%q#D は volatile です"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD は定数式で初期化されませんでした"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr ""
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr ""
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "定数式がオーバーフローしました"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, fuzzy, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "ポインタ型へ変換できません"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, fuzzy, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "ポインタ型へ変換できません"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
 msgid "use of %qD"
 msgstr "無効な %qD の使用です"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "定数式がオーバーフローしました"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, fuzzy, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr "%q+D が再定義されました"
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, fuzzy, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr "%q+D が再定義されました"
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "定数式がオーバーフローしました"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr "フィールドの型はここで宣言されました"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr "%<template%> が予期されます"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, fuzzy, gcc-internal-format
 msgid "function concept must be called"
 msgstr "組み込み関数 %qD は単一の引数をとります"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr "配列 `%s' の大きさは非整数型"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr ""
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr ""
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "`%s' はその定義の前にプロトタイプなしで使われました"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr ""
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, fuzzy, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "一時オブジェクトのアドレスを取ろうとしています"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr ""
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "%qE の列挙値が整数定数式ではありません"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "定数式がオーバーフローしました"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "仮想関数は friend にできません"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, fuzzy, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "定数式内でオーバーフローしました"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "定数式がオーバーフローしました"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "%qE は最初に使用した後に %<threadprivate%> と宣言されています"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "%q+F が %<static%> と宣言されましたが定義されていません"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "定数式がオーバーフローしました"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, fuzzy, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "初期化子内に非定数の配列インデックスがあります"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, fuzzy, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "ファイル \"%s\" に戻るはずでした"
@@ -54449,7 +54472,7 @@ msgstr "%<__builtin_prefetch%> への第三引数は定数でなければいけ
 msgid "no suspend point info for %qD"
 msgstr "前に %qD 用のプロトタイプがありません"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -54471,23 +54494,23 @@ msgstr "case の値としてポインタは許可されていません"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr ""
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr "参照を参照として宣言できません"
@@ -54508,69 +54531,69 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD はテンプレート関数ではありません"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr "一時オブジェクトのアドレスを取ろうとしています"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "配列 `%s' の大きさは非整数型"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "%qD のアドレスは常に %<true%> と評価されます"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, fuzzy, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "定義した後に %qT に適用される属性を無視しています"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qE attribute"
 msgid "pack expansion of %qE attribute"
 msgstr "%qE 属性の無効な引数です"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr "マクロ引数リストにあり得ないトークン"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%s は型 %s ではありません (引数 %d)"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr "クラスタイプ項を欠いています"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr "ベクトル型の delete ですが、ポインタでも配列型でもありません"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "ベクトル型の delete ですが、ポインタでも配列型でもありません"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -54615,7 +54638,7 @@ msgstr ""
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "%qT から %qT への変換が曖昧です"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr ""
@@ -55002,7 +55025,7 @@ msgstr "前方での `%s' の宣言"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "使用している宣言 %q+D は前に使用している宣言と競合しています"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "前方での `%s' の宣言"
@@ -55143,8 +55166,8 @@ msgstr "前方での `%s' の暗黙的な宣言"
 msgid "%q#D previously defined here"
 msgstr "前はここで定義されました"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "前はここで宣言されました"
@@ -55220,53 +55243,38 @@ msgstr ""
 msgid "previous specification in %q#D here"
 msgstr "前の %q+D の宣言はここです"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr "%q+D のセクションが前の宣言と競合しています"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr "%q+D のセクションが前の宣言と競合しています"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr "%qD はここで宣言されています"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 msgid "conflicting exporting for declaration %qD"
 msgstr "無効な宣言です"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 #| msgid "previously declared here"
 msgid "previously declared here without exporting"
 msgstr "前はここで宣言されました"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr "前の %q+D の宣言はここです"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "前の %q+D の宣言はここです"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "領域 `%s' は関数として宣言されています"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr ""
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr "%q+D が再定義されました"
@@ -55279,44 +55287,44 @@ msgstr "%q+D が再定義されました"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr ""
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%q+D のデータ領域が前の宣言と競合しています"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr ""
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr ""
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr ""
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -55324,2503 +55332,2503 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr ""
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr ""
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr ""
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr ""
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "%q+D の冗長な再宣言です"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, fuzzy, gcc-internal-format
 msgid "previous label"
 msgstr "前方での `%s' の宣言"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr ""
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "case ラベルにジャンプしています"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  ここから"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr ""
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "(`%s' の初期化は不完全です)"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, fuzzy, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr "  try ブロックに入ります"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr "  catch ブロックに入ります"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, fuzzy, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  try ブロックに入ります"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 #| msgid "missing increment expression"
 msgid "  enters statement expression"
 msgstr "増分式がありません"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, fuzzy, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr "文が予期されます"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, fuzzy, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr "文が予期されます"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 msgid "  does not destroy %qD"
 msgstr "%s は %s をサポートしません"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr ""
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "(`%s' の初期化は不完全です)"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 msgid "%qD used without template arguments"
 msgstr "非テンプレート %qD がテンプレートとして使用されています"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "%qD は関数テンプレートではありません"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr ""
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr ""
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, fuzzy, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "不明な型名 %qE です"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, fuzzy, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "%s: オプション `%s' はあいまいです\n"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr ""
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr ""
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "仮引数 `%s' の型が宣言されていません"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "要求された整列が 2 の累乗ではありません"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, fuzzy, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q+#D は無効です。無名共用体は非静的データメンバのみ持つことが出来ます"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous struct not inside named type"
 msgid "anonymous struct with base classes"
 msgstr "無名構造体が名前つき型の中にありません"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "`%s' の宣言に二つ以上のデータ型が指定されました"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr ""
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "一つの宣言に複数の型があります"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "`enum %s' の再宣言"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "非関数 `%s' の引数に format 属性が指定されました"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, fuzzy, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "typdef 宣言で型名を欠いています"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO C++ は無名構造体を禁止しています"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "非関数 `%s' の引数に format 属性が指定されました"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, fuzzy, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr "非関数 `%s' の引数に format 属性が指定されました"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr ""
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "コンストラクタに対する戻り値の型指定は無視されました"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, fuzzy, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "%s に対する記憶クラス指定子 `%s'"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "%s に対する記憶クラス指定子 `%s'"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "%s に対する記憶クラス指定子 `%s'"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, fuzzy, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "%s に対する記憶クラス指定子 `%s'"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, fuzzy, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "%s に対する記憶クラス指定子 `%s'"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, fuzzy, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "`%s' の宣言で型がデフォルトの `int' とされました"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "\"%s\" はマクロ名としては使えません"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "自動テンプレート実体化を有効にする"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, fuzzy, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "`com_interface' 属性はクラス定義にのみ用いる事ができます"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "`com_interface' 属性はクラス定義にのみ用いる事ができます"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr ""
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef `%s' が初期化されました"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "`%s' の宣言に `extern' がついており、初期化もされています"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, fuzzy, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "初期化された変数 `%s' は dllimport マークされています"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%s に `%s' という名前のメンバはありません"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "%q#D のテンプレート宣言です"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "ポインタ宣言子に不適切な型修飾子"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, fuzzy, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "重複した初期化子"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "friend 宣言がクラス定義の中にありません"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, fuzzy, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "変数 `%s' には初期化子がありますが、不完全型です"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, fuzzy, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "配列 `%s' の要素に不完全型があります"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, fuzzy, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "仮引数 `%s' は不完全型です"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr ""
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, fuzzy, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "自明でないラベルのついた初期化子です"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "配列 `%s' の大きさは非整数型"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, fuzzy, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "初期化子は `%s' のサイズの特定に失敗しました"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, fuzzy, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "`%s' での配列サイズを欠いています"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, fuzzy, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "ISO C は サイズ 0 の配列 `%s' を禁じます"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr ""
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr ""
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr ""
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 msgid "uninitialized %<const %D%>"
 msgstr "未初期化定数を ROM に置かない"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "レジスタ変数 %qD が入れ子になった関数内で使用されています"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "初期化された変数 %q+D は dllimport とマークされています"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr ""
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr ""
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, fuzzy, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "無効なビット列初期化子です"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, fuzzy, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "無名基底クラスの初期設定子が曖昧です"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr ""
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "要求されたメンバ `%s' は多重継承グラフの中で曖昧です"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, fuzzy, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%s に `%s' という名前のメンバはありません"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
 msgstr "%s に `%s' という名前のメンバはありません"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "無効な初期化子です"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr ""
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, fuzzy, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "入力ファイルが多すぎます"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, fuzzy, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "スカラー初期化子がブレースで囲まれています"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "スカラー初期化子がブレースで囲まれています"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, fuzzy, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "初期化子のまわりのブレースを欠いています"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "ソースは不完全型へのポインタです"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, fuzzy, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "配列 `%s' の要素に不完全型があります"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, fuzzy, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "ISO C89 は複合リテラルを禁じます"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "`%s' は不完全型です"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, fuzzy, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "共用体初期化子内の要素が多すぎます"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr ""
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, fuzzy, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "_Pramga が括弧で囲まれた文字列リテラルを受け取りました"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "コンストラクタの静的メンバ初期化子は無効です"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr ""
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "ISO C++ は new 式の初期化での `=' を禁じます"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(クラス外での初期化を必要とします)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "仮引数 %qD が初期化されます"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr "宣言内にない %<[*]%> です"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr "一時オブジェクトのアドレスを取ろうとしています"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr "一時オブジェクトのアドレスを取ろうとしています"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "宣言の中に代入(初期化ではなく)があります"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, fuzzy, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++ は名前つき戻り値を許可しません"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, fuzzy, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr "%qs に対して記憶域クラスが指定されています"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "`%s' の宣言に `extern' がついており、初期化もされています"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, fuzzy, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "非メンバ関数での `this' の使用は無効です"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "戻り値の型が不完全型です"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr "可変長オブジェクトが初期化されないようです"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, fuzzy, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "前方での `%s' の宣言"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "%qE 属性は変数および関数へのみ適用できます"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, fuzzy, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "関数 `%s' が変数であるかのように初期化されました"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr ""
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr ""
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "ソースは不完全型へのポインタです"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "ISO C90 は可変長の配列 %qE を禁止しています"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] "%qs が構造体フィールド用に指定されています"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr "ポインタを参照として宣言できません"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "定数式が欠けているか無効です"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr ""
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "ポインタを参照として宣言できません"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "   ポインタからメンバへの変換で"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr "不完全型のポインタへの間接参照"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "ソースは不完全型へのポインタです"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "%<offsetof%> を静的データメンバ %qD へ適用できません"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr ""
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, fuzzy, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "初期化子は `%s' のサイズの特定に失敗しました"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "`%s' での配列サイズを欠いています"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "ISO C は サイズ 0 の配列 `%s' を禁じます"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, fuzzy, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "他のクラス `%s' のデストラクタを、メンバにはできません"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, fuzzy, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "他のクラス `%s' のデストラクタを、メンバにはできません"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr ""
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr ""
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr ""
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr ""
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr ""
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr ""
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr ""
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr ""
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr ""
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr ""
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, fuzzy, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "領域 `%s' は関数として宣言されています"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, fuzzy, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "例外仕様の検査をするコードを生成しない"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr ""
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr ""
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "%qD は非仮引数として宣言されています"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr "仮引数 %qD が void 型で宣言されています"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "Java メソッド %qD が非 Java 戻り型 %qT を持ちます"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "共用体定義の後には %<;%> が予期されます"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 msgid "a function concept cannot be constrained"
 msgstr "共用体を透過的にできません"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 msgid "constraints on a non-templated function"
 msgstr "%qD はテンプレート関数ではありません"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "friend 宣言がクラス定義の中にありません"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, fuzzy, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "宣言の中に代入(初期化ではなく)があります"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr ""
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "friend 宣言がクラス定義の中にありません"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "`::main' を template としては宣言できません"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "`::main' を inline としては宣言できません"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "`::main' を static としては宣言できません"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "`::main' を static としては宣言できません"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "静的メンバ %qD はビットフィールドに出来ません"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "`::main' を static としては宣言できません"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "静的メンバ %qD はビットフィールドに出来ません"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "静的メンバ %qD はビットフィールドに出来ません"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 msgid "explicit object parameter declared here"
 msgstr "仮引数 `%s' が void と宣言されています"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, fuzzy, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "`%s' の宣言は関数の配列"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, fuzzy, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "`%s' の宣言は関数の配列"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr "`%s' の宣言は関数の配列"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr ""
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, fuzzy, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "%qs は -mcpu= への引数としては無効です"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, fuzzy, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "`main' は `int' を返さなければなりません"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr ""
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, fuzzy, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "typedef %q+D が再定義されました"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "%qD はここで宣言されています"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, fuzzy, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "メンバ関数へのポインタが呼ばれましたが、クラススコープ内ではありません"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "`::main' を template としては宣言できません"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "自動変数 %qE は %<threadprivate%> になることは出来ません"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr "%s=%s は数値ではありません"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 msgid "a variable concept cannot be constrained"
 msgstr "可変長オブジェクトが初期化されないようです"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, fuzzy, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "ISO C++ は new 式の初期化での `=' を禁じます"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr ""
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr ""
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ は new 式の初期化での `=' を禁じます"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ は new 式の初期化での `=' を禁じます"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, fuzzy, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "配列 `%s' の大きさは非整数型"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, fuzzy, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "配列 `%s' の大きさは非整数型"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, fuzzy, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "配列 `%s' の大きさは非整数型"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, fuzzy, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "定数式が欠けているか無効です"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C は サイズ 0 の配列 `%s' を禁じます"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C は サイズ 0 の配列 `%s' を禁じます"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C89 は可変長サイズの配列 `%s' を禁じます"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C89 は可変長サイズの配列 `%s' を禁じます"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr ""
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "可変長配列が使用されています"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "配列の次元がオーバーフローしました"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "領域 `%s' は関数として宣言されています"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 msgid "creating array of template placeholder type %qT"
 msgstr "   ポインタからメンバへの変換で"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "`%s' の宣言は void の配列"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, fuzzy, gcc-internal-format
 msgid "creating array of void"
 msgstr "`%s' の宣言は void の配列"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "`%s' の宣言は関数の配列"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, fuzzy, gcc-internal-format
 msgid "creating array of functions"
 msgstr "`%s' の宣言は関数の配列"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "`%s' の宣言は関数の配列"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, fuzzy, gcc-internal-format
 msgid "creating array of references"
 msgstr "配列参照での添字を欠いています"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "`%s' の宣言は関数の配列"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, fuzzy, gcc-internal-format
 msgid "creating array of function members"
 msgstr "`%s' の宣言は関数の配列"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 #| msgid "variable length array is used"
 msgid "variable-length array of %<auto%>"
 msgstr "可変長配列が使用されています"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, fuzzy, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "コンストラクタに対する戻り値の型指定は無視されました"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "大域 register 変数が関数定義の後ろにあります"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, fuzzy, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "コンストラクタに対する戻り値の型指定は無視されました"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "大域 register 変数が関数定義の後ろにあります"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, fuzzy, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "コンストラクタに対する戻り値の型指定は無視されました"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr ""
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr "コンストラクタに対する戻り値の型指定は無視されました"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "大域 register 変数が関数定義の後ろにあります"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "%qD の宣言内でテンプレート仮引数リストが多すぎます"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "`%s' の宣言が矛盾しています"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "無名変数やフィールドが void と宣言されました"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "変数またはフィールドが void と宣言されました"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "大域スコープ外の関数 `%s' に対する記憶クラス `inline' は無効です"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, fuzzy, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "コンストラクタは virtual 宣言できません"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "未定義の型 `%s %s' の使用は不適切です"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "未定義の型 `%s %s' の使用は不適切です"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "未定義の型 `%s %s' の使用は不適切です"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a class or namespace"
 msgstr "%s=%s は数値ではありません"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qE as non-function"
 msgstr "`%s' の宣言は関数の配列"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qE as non-member"
 msgstr "`%s' の宣言は仮引数を覆い隠します"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr ""
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, fuzzy, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "関数の定義が `register' と宣言されました"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "`%s' の宣言は関数の配列"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "`%s' の extern 宣言がネストしています"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "%q+D の再宣言は仮引数を隠します"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr ""
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "宣言内にない %<[*]%> です"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, fuzzy, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "`%s' の宣言に二つ以上のデータ型が指定されました"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C は単なる %<complex%> を %<double complex%> を意味するものとしてはサポートしません"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ では型の無い %qs の宣言を禁止しています"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "このターゲットでは %<__int128%> はサポートされていません"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ は %<__int128%> を %qs に対してはサポートしていません"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> と %<unsigned%> が %qs に対して両方指定されています"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> および %<short%> が %qs に対して両方指定されています"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr "%qs は %qs と併用しなければいけません"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr "%<__thread%> が %<typedef%> と併せて使用されています"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "%<__thread%> が %<typedef%> と併せて使用されています"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr "%<__thread%> が %<typedef%> と併せて使用されています"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "complex は %qs に対しては無効です"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "非メンバ `%s' を `mutable' とは宣言できません"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "非メンバ `%s' を `mutable' とは宣言できません"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "仮引数宣言の中の typedef 宣言は無効です"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, fuzzy, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "仮引数 `%s' で指定された記憶クラス"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "仮引数 %qs に対して記憶域クラスタ指定されています"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr "仮引数は %<constexpr%> として宣言してはいけません"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%> がクラス宣言外で使用されています"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "`%s' の宣言に二つ以上のデータ型が指定されました"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "無効な宣言です"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "`%s' の宣言に二つ以上のデータ型が指定されました"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr "`%s' の宣言に二つ以上のデータ型が指定されました"
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "%qs の宣言内に複数の記憶域クラスがあります"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "%qs に対して記憶域クラスが指定されています"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, fuzzy, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "ネストした関数 `%s' は `extern' に宣言されました"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, fuzzy, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "`%s' のトップレベルの宣言が `auto' を指定します"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr ""
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "friend 関数宣言内の記憶クラス指定子は無効です"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored"
 msgstr "%qE 属性は無視されました"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "%qs の宣言内に複数の記憶域クラスがあります"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, gcc-internal-format
 msgid "remove parentheses"
 msgstr ""
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr "関数を inline にできません"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "静的メンバ %qD はビットフィールドに出来ません"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, fuzzy, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, fuzzy, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr "仮引数 `%s' が void と宣言されています"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr ""
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, fuzzy, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr "仮想関数は friend にできません"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "%<restrict%> の誤った使用法です"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr "関数戻り値の型修飾子は無視されました"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, fuzzy, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, fuzzy, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "`%s' は関数を返す関数として宣言されています"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, fuzzy, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "`%s' は配列を返す関数として宣言されています"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr ""
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, fuzzy, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, fuzzy, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "コンストラクタは virtual 宣言できません"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, fuzzy, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "コンストラクタは virtual 宣言できません"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, fuzzy, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr "コンストラクタは virtual 宣言できません"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr "コンストラクタは virtual 宣言できません"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "コンストラクタは virtual 宣言できません"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "仮想関数は friend にできません"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "friend 宣言がクラス定義の中にありません"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "friend 宣言がクラス定義の中にありません"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "`::main' を static としては宣言できません"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "静的メンバ %qD はビットフィールドに出来ません"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, fuzzy, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "デストラクタは仮引数を取りません"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "ポインタを参照として宣言できません"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "参照を参照として宣言できません"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "ポインタを参照として宣言できません"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "参照を参照として宣言できません"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "ポインタを参照として宣言できません"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr ""
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr ""
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "メンバ関数は暗黙的にそのクラスの friend です"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr ""
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "オブジェクト以外がメンバ関数 %qD を呼び出すことは出来ません"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "`::main' を static としては宣言できません"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, fuzzy, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "非メンバ `%s' を `mutable' とは宣言できません"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "%<virtual%> がクラス宣言外で使用されています"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr "空の宣言内に %<inline%> があります"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, fuzzy, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "`explicit' にできるのは、コンストラクタだけです"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, fuzzy, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "非メンバ `%s' を `mutable' とは宣言できません"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, fuzzy, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "非オブジェクトメンバ `%s' を `mutable' とは宣言できません"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, fuzzy, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "関数 `%s' を `mutable' としては宣言できません"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "static `%s' を mutable として宣言できません"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "const `%s' を `mutable' として宣言できません"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, fuzzy, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "関数 `%s' を `mutable' としては宣言できません"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr "大域 register 変数が関数定義の後ろにあります"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "宣言内にない %<[*]%> です"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, fuzzy, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "仮引数 `%s' が void と宣言されています"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr ""
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr ""
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "クラス宣言の外側で virtual 指定しています"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, fuzzy, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "複雑なパラメタをもつ関数は inline にできません"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, fuzzy, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "friend 宣言がクラス定義の中にありません"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, fuzzy, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "クラス `%s' を大域スコープの friend にしようとしています"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, fuzzy, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "非メンバ関数での `this' の使用は無効です"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, fuzzy, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "`%s' の宣言はグローバル宣言を覆い隠します"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "`enum %s' の再宣言"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, fuzzy, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "仮引数宣言の中で `::' を使えません"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "ポインタを参照として宣言できません"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, fuzzy, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr "%qD は関数テンプレートではありません"
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "マクロ引数内でディレクトリを使うことはできません"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, fuzzy, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "仮引数 `%s' が void と宣言されています"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, fuzzy, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "無効なデフォルトテンプレート引数"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "%s に `%s' という名前のメンバはありません"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C は サイズ 0 の配列 `%s' を禁じます"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C は サイズ 0 の配列 `%s' を禁じます"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "無効な用法の of %%d, %%x, 又は %%X"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "%s: 関数 `%s' の宣言が変換されていません\n"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "領域 `%s' は関数として宣言されています"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "`::main' を static としては宣言できません"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr ""
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "`%s' の宣言により `this' のメンバが覆い隠されます"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr ""
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, fuzzy, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be %qs"
 msgstr "%s を開けません"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr "変数 %qD が関数として再宣言されました"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 msgid "variable template declared here"
 msgstr "元の型はここで宣言されました"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "領域 `%s' は不完全な型です"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, fuzzy, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "仮引数が不完全型です"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, fuzzy, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "`%s' は関数でもメンバ関数でもありません -- friend とは宣言できません"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "`%s' は関数でもメンバ関数でもありません -- friend とは宣言できません"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr "仮引数 %q+D が %<inline%> と宣言されています"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "関数を inline にできません"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr "非オブジェクトメンバ `%s' を `mutable' とは宣言できません"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, fuzzy, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "関数 `%s' に対する記憶クラス `auto' は無効です"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, fuzzy, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "関数 `%s' に対する記憶クラス `register' は無効です"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, fuzzy, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "関数 `%s' に対する記憶クラス `auto' は無効です"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "関数 `%s' に対する記憶クラス `auto' は無効です"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "関数 %qD への代入です"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, fuzzy, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "初期化子リストは非メンバ関数では使えません"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, fuzzy, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "大域スコープ外の関数 `%s' に対する記憶クラス `inline' は無効です"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "大域スコープ外の関数 `%s' に対する記憶クラス `inline' は無効です"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, fuzzy, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "virtual な非クラス関数 `%s'"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, fuzzy, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "メソッド定義がクラスコンテキスト内ではありません"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "メソッド定義がクラスコンテキスト内ではありません"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, fuzzy, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "`::main' を static としては宣言できません"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "他の関数内で static 関数を宣言できません"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr ""
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr ""
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr ""
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "%<extern%> 変数 %qD の宣言が %<for%> ループ初期化宣言内にあります"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "仮引数は %<constexpr%> として宣言してはいけません"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, fuzzy, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "`%s' が初期化されるところで、`extern' 宣言されました"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, fuzzy, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "`%s' に `extern' と初期化子の両方があります"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "関数がローカル変数のアドレスを返しています"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "関数がローカル変数のアドレスを返しています"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "仮引数宣言の中で `::' を使えません"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "仮引数 `%s' は無効です"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "パラメタはメソッドの型を不正に宣言しました"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr ""
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr ""
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, fuzzy, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "`::main' を static としては宣言できません"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a non-static member function"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, fuzzy, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr ""
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr ""
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ は無名構造体を禁止しています"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr ""
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr "`%s' は 0 か 2 個の引数しかとりません"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr "`%s' は 0 か 2 個の引数しかとりません"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "`%s' は 0 か 2 個の引数しかとりません"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "`%s' は 0 か 2 個の引数しかとりません"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 msgid "%qD must have no arguments"
 msgstr "`%s' は 0 か 2 個の引数しかとりません"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr "`%s' は 0 か 2 個の引数しかとりません"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr "`%s' は 0 か 2 個の引数しかとりません"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr ""
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "%s%s への変換で型変換演算子が利用されることは決してありません"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "%s%s への変換で型変換演算子が利用されることは決してありません"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "%s%s への変換で型変換演算子が利用されることは決してありません"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "%s%s への変換で型変換演算子が利用されることは決してありません"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "%s%s への変換で型変換演算子が利用されることは決してありません"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr ""
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr ""
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr ""
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, fuzzy, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "%qD の無効なテンプレート宣言です"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr ""
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, fuzzy, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "前方での `%s' の宣言"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr ""
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "前方での `%s' の宣言"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr ""
@@ -57832,116 +57840,101 @@ msgstr ""
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr ""
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, fuzzy, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "%s: オプション `%s' はあいまいです\n"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 #| msgid "function template %qD redeclared as a class template"
 msgid "class template %qD redeclared as non-template"
 msgstr "関数テンプレート %qD がクラステンプレートとして再定義されました"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr ""
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr ""
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, fuzzy, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "事前の宣言なしの大域関数に関して警告する"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "`%s' の宣言は仮引数を覆い隠します"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-msgid "cannot declare %qD in a different module"
-msgstr "%qD をビットフィールド型として宣言できません"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "前はここで宣言されました"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr ""
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr ""
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr ""
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, fuzzy, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "型修飾子 `%s' は struct や class の後には使えません"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr ""
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, fuzzy, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "重複した case の値"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-msgid "cannot declare %qD in different module"
-msgstr "%qD をビットフィールド型として宣言できません"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, fuzzy, gcc-internal-format
 msgid "previous definition here"
 msgstr "`%s' は前にここで定義されました"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr "述語は識別子でなければなりません"
@@ -57950,82 +57943,82 @@ msgstr "述語は識別子でなければなりません"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr ""
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "`%s' の列挙値が整数定数ではありません"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "`%s' の列挙値が整数定数ではありません"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, fuzzy, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "整数定数が %<unsigned long%> 型に対して大きすぎます"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "ISO C は列挙値を %<int%> の範囲に制限しています"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, fuzzy, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "列挙値がオーバーフロー"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "%qE 用の列挙値が整数定数ではありません"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "%q#T が複数定義されています"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, fuzzy, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "戻り値の型が不完全型です"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr ""
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "非 void を戻す関数内に return 文がありません"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, fuzzy, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "関数の戻り型は %<volatile%> と互換性がありません"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "非 void を戻す関数内に return 文がありません"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr ""
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 msgid "using %qs"
 msgstr "%s を閉じているときにエラーが発生しました: %m"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, fuzzy, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr "%qD の型をデフォルトの %<int%> にします"
@@ -58080,7 +58073,7 @@ msgstr "関数を削除 (delete) できません。%<delete%> の有効な引数
 msgid "deleting %qT is undefined"
 msgstr "%qT の削除は定義されていません"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "%q#D のテンプレート宣言です"
@@ -58090,7 +58083,7 @@ msgstr "%q#D のテンプレート宣言です"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr ""
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "デストラクタ %qD がメンバテンプレートとして宣言されています"
@@ -58274,64 +58267,64 @@ msgstr ""
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "`operator delete' は第一引数として `void *' 型をとります"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, fuzzy, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "ベクトル型の delete ですが、ポインタでも配列型でもありません"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr ""
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr ""
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "`%s' が `static' と宣言されましたが未定義です"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr "`%s' が `static' と宣言されましたが未定義です"
@@ -58340,104 +58333,104 @@ msgstr "`%s' が `static' と宣言されましたが未定義です"
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr ""
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "`%s' が `static' と宣言されましたが未定義です"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "`%s' が `static' と宣言されましたが未定義です"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "%q+D のセクションが前の宣言と競合しています"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr "前方での `%s' の宣言"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr "`%s' が使われましたが未定義です"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "仮引数リストからの仮引数名を欠いています"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, fuzzy, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr "strftime フォーマットは引数をフォーマットできません"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr "%qE は廃止されました"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr ""
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr ""
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "`%s' が別のシンボル種として再宣言されました"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr ""
@@ -58542,7 +58535,7 @@ msgstr ""
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qT は %qE という名前のメンバを持っていません"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%s に `%s' という名前のメンバはありません"
@@ -58552,7 +58545,7 @@ msgstr "%s に `%s' という名前のメンバはありません"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qT は %qE という名前のメンバを持っていません"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%s に `%s' という名前のメンバはありません"
@@ -58577,47 +58570,47 @@ msgstr "例外処理を無効にしました. 有効にするには -fexceptions
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr ""
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  throw された式の中"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "ポインタを参照として宣言できません"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr ""
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, fuzzy, gcc-internal-format
 msgid "for type %qT"
 msgstr "%q+D と型が競合しています"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr ""
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -58884,12 +58877,12 @@ msgstr ""
 msgid "type %qT is not a direct base of %qT"
 msgstr ""
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr ""
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "クラスタイプ項を欠いています"
@@ -58904,12 +58897,12 @@ msgstr ""
 msgid "invalid pointer to bit-field %qD"
 msgstr "二項演算子 %s が不適切です"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "非メンバ関数での `this' の使用は無効です"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "メンバへのポインタでの無効な `%s' の使用"
@@ -59104,52 +59097,52 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "ベクトル型の delete ですが、ポインタでも配列型でもありません"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, fuzzy, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr "複合リテラルが可変サイズを持っています"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, fuzzy, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "%s を参照として宣言できません"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr ""
@@ -59521,228 +59514,273 @@ msgstr "式が予期されます"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 msgid "conflicting global module declaration %#qD"
 msgstr "無効な宣言です"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 msgid "existing declaration %#qD"
 msgstr "無効な宣言です"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr "初期化された変数 `%s' は dllimport マークされています"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing definition"
 msgid "existing definition %qD"
 msgstr "定義がありません"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "... this enumerator %qD"
 msgstr "列挙型 %q+D の再宣言です"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "型 %qT の引数が %qT と一致しません"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 msgid "module %qs declared here"
 msgstr "%qD はここで宣言されています"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, fuzzy, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr "%s\"%s\"%s は許可されていません"
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr "前の %q+D の宣言はここです"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 #| msgid "inconsistent instance variable specification"
 msgid "inconsistent imported macro definition %qE"
 msgstr "インスタンス変数の仕様が一貫していません"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr "%s: ファイル `%s' を削除できません: %s\n"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "compiled module is %sversion %s"
 msgstr "`コンパイラのバージョンを表示する"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2 バージョン %s\n"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, gcc-internal-format
 msgid "module %qs found"
 msgstr ""
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, fuzzy, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr "例外処理を無効にしました. 有効にするには -fexceptions を使ってください"
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr "<戻り値> "
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "interface partition is not exported"
 msgstr "スタック制限式はサポートされていません"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr "%s を開くのに失敗しました"
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr "%s を開くのに失敗しました"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr "%q+D のセクションが前の宣言と競合しています"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "%q+D のセクションが前の宣言と競合しています"
+
+#: cp/module.cc:19125
+#, fuzzy, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr "%q+D のセクションが前の宣言と競合しています"
+
+#: cp/module.cc:19130
+#, fuzzy, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr "%qD はここで宣言されています"
+
+#: cp/module.cc:19134
+#, fuzzy, gcc-internal-format
+msgid "import declared in global module"
+msgstr "メソッド定義がクラスコンテキスト内ではありません"
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "インラインテンプレートの明示的な実体化のみを生成する"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in global module"
+msgstr "リンク無し %q+D の再定義です"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+msgid "previously declared in module %qs"
+msgstr "前はここで宣言されました"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+msgid "previously declared in global module"
+msgstr "前はここで宣言されました"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 msgid "reading CMI %qs"
 msgstr "%s を閉じているときにエラーが発生しました: %m"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, fuzzy, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr "-mrecip=%s 用の不明なオプションです"
@@ -59754,390 +59792,390 @@ msgstr "-mrecip=%s 用の不明なオプションです"
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 msgid "module already declared"
 msgstr "シンボルの頭にアンダースコアをつける"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, fuzzy, gcc-internal-format
 msgid "module already imported"
 msgstr "シンボルの頭にアンダースコアをつける"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, fuzzy, gcc-internal-format
 msgid "module %qs imported here"
 msgstr "%qD はここで宣言されています"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr "<不明な演算子>"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "伝統的な前処理を有効にする"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, fuzzy, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr "組み込み関数 %qD は %<-mconstant-cfstrings%> フラグを要求します"
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 msgid "invalid header name %qs"
 msgstr "%%R への無効な被演算子です"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 msgid "invalid module name %qs"
 msgstr "無効な %qD の使用です"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 #| msgid "error writing %qs"
 msgid "writing CMI %qs"
 msgstr "%qs へ書き込み中にエラーが発生しました"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 msgid "not writing module %qs due to errors"
 msgstr "%s への書き込みエラーです"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr "%s を開くのに失敗しました"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr "不明な TLS モデル %qs です"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, fuzzy, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "%q+D の再宣言は仮引数を隠します"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "`%s' のセクションは前方でに宣言されたものと衝突します"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr "%d 個のコンストラクタが見つかりました\n"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "`%s' の宣言が矛盾しています"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, fuzzy, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "例外仕様の検査をするコードを生成しない"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "パラメタはメソッドの型を不正に宣言しました"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "`%s' の宣言は仮引数を覆い隠します"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "`%s' の宣言により `this' のメンバが覆い隠されます"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "friend 宣言がクラス定義の中にありません"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s: %s: "
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 msgid "%s %s %p %d"
 msgstr "%s: %s: "
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, fuzzy, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr "ベクトル型の delete ですが、ポインタでも配列型でもありません"
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr "%qD はここで宣言されています"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr "ベクトル型の delete ですが、ポインタでも配列型でもありません"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr "%qD はここで宣言されています"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, gcc-internal-format
 msgid "%<%T%s%D%> names destructor"
 msgstr ""
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr ""
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, fuzzy, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%s=%s は数値ではありません"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, fuzzy, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "%q#D のテンプレート宣言です"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr "メソッド定義がクラスコンテキスト内ではありません"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a direct base of %qT"
 msgstr "%s に `%s' という名前のメンバはありません"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "%qD は %qD 内では宣言されていません"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr "%q#D が宣言されています"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, fuzzy, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "`%s' の宣言が矛盾しています"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "%qD は %qD 内では宣言されていません"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr "領域 `%s' は関数として宣言されています"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, fuzzy, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "%s: オプション `%s' には引数が必要です\n"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr ""
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "非インライン (noinline) 属性が与えられたインライン関数 %qD です"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, fuzzy, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "`%s' 属性の疑似命令が無視されました"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] ""
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "`this' は静的メンバ関数から使用できません"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr "弱い %q+D は %qE として定義できません"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 msgid "it was later defined here"
 msgstr "構造体がここで定義されています"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr "初期化された変数 `%s' は dllimport マークされています"
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 msgid "%<strong%> using directive no longer supported"
 msgstr "%qs スイッチは既にサポートされていません"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "マクロ引数内でディレクトリを使うことはできません"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr ""
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "%s: オプション `%s' はあいまいです\n"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, fuzzy, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr "メソッド属性を指定するのは最後のみでなければいけません"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 msgid "%qD defined here"
 msgstr "ラベル %qD はここで定義されています"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "%q+D  のアドレス領域は前の宣言と競合しています"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr "`%s' は前にここで定義されました"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr ""
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr ""
@@ -60162,7 +60200,7 @@ msgstr "識別子 %qE は C++ 予約語と競合しています"
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma align%> は %D の前に現れなければいけません。無視しています"
@@ -60408,7 +60446,7 @@ msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, fuzzy, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
@@ -60588,7 +60626,7 @@ msgstr ""
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr ""
@@ -60643,7 +60681,7 @@ msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定
 msgid "template-id not allowed for destructor in C++20"
 msgstr "大域 register 変数が関数定義の後ろにあります"
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -60663,7 +60701,7 @@ msgstr ""
 msgid "expected unqualified-id"
 msgstr ""
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr ""
@@ -60713,7 +60751,7 @@ msgstr ""
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "関数 %<__builtin_next_arg%> への引数の数が間違っています"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "関数 %<__builtin_next_arg%> への引数の数が間違っています"
@@ -60748,7 +60786,7 @@ msgstr "一つの空の宣言中に、二つの型が指定されています"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "無効な %qD の使用です"
@@ -60773,7 +60811,7 @@ msgstr "ISO C++ は名前つき戻り値を許可しません"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr ""
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr "\"%s\" はマクロ仮引数リストに現れてはなりません"
@@ -60923,8 +60961,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr "読み取り専用変数 %qD の増分です"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%qD はここで宣言されています"
@@ -60964,7 +61002,7 @@ msgstr "仮引数 `%s' で指定された記憶クラス"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -61090,7 +61128,7 @@ msgstr ""
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr ""
@@ -61152,7 +61190,7 @@ msgstr "式の中の文に不完全型があります"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr ""
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr ""
@@ -61178,7 +61216,7 @@ msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ は計算型 goto を禁じます"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr ""
@@ -61459,12 +61497,12 @@ msgstr ""
 msgid "cannot expand initializer for member %qD"
 msgstr "メンバ `%s' に対する無効な初期値"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, fuzzy, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "%q+D は静的宣言の後に非静的宣言が続いています"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr ""
@@ -62102,7 +62140,7 @@ msgstr "`%s' の引数として無効な型"
 msgid "%qT not permitted in template argument"
 msgstr "合っていない引数です"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT"
@@ -62282,12 +62320,12 @@ msgstr "%q+#T の前の定義"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr ""
@@ -62489,37 +62527,37 @@ msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定
 msgid "expression must be enclosed in parentheses"
 msgstr "添え字は整数でなければいけません"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 msgid "result type is not a plain type-constraint"
 msgstr "要求された整列が定数ではありません"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr "要求された整列が定数ではありません"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, fuzzy, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "無効な宣言です"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr ""
@@ -62528,437 +62566,437 @@ msgstr ""
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr ""
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, fuzzy, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr "大域 register 変数が関数定義の後ろにあります"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, fuzzy, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "--driver は最早サポートされません"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr ""
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr ""
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr ""
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr ""
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, fuzzy, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "`%s' の extern 宣言がネストしています"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, fuzzy, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr "宣言が何も宣言していません"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr ""
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, fuzzy, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "`>>' はテンプレートクラス名は `> >' とすべきです"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr ""
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "`>>' はテンプレートクラス名は `> >' とすべきです"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "テンプレート型統一中 `%s' が使用されました"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr "型指定子が予期されます"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr "%+D によりセクション型が競合します"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> が %qD の前にあります"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, fuzzy, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%<__thread%> が %<typedef%> と併せて使用されています"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ は `long long' を受け入れません"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr ""
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "%qE が重複しています"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "`%s' が重複しています"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "%<new%> が予期されます"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "%<delete%> が予期されます"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "%<return%> が予期されます"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "%<extern%> が予期されます"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "%<static_assert%> が予期されます"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "%<decltype%> が予期されます"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "%<operator%> が予期されます"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "%<class%> が予期されます"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "%<template%> が予期されます"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "%<namespace%> が予期されます"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "%<using%> が予期されます"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "%<asm%> が予期されます"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "%<try%> が予期されます"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "%<catch%> が予期されます"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "%<throw%> が予期されます"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr "%<catch%> が予期されます"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "%<__label__%> が予期されます"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "%<@try%> が予期されます"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "%<@synchronized%> が予期されます"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "%<@throw%> が予期されます"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, fuzzy, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "%<static_assert%> が予期されます"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, fuzzy, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "%<static_assert%> が予期されます"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr "%<@end%> が予期されます"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "%<::%> が予期されます"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "%<...%> が予期されます"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "%<*%> が予期されます"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "%<~%> が予期されます"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "%<:%> または %<::%> が予期されます"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "%<class%>、%<typename%>、または %<template%> が予期されます"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr ""
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, fuzzy, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "前はここで宣言されました"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "参照を参照として宣言できません"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr ""
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "名前無しテンプレートクラスです"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr "ラベル %qD はここで定義されています"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr "%qD はここで宣言されています"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, fuzzy, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "`%s' が別のシンボル種として再宣言されました"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr ""
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "デフォルト引数内でファイルが終了しています"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr ""
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr "objective-c メソッド定義が予期されます"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr ""
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr ""
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr ""
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr ""
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr ""
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, fuzzy, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "識別子が必要です"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr ""
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, gcc-internal-format
 msgid "invalid type for property"
 msgstr ""
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, fuzzy, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr "不明な property 属性です"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 msgid "expected integer expression list"
 msgstr "整数式が予期されます"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, fuzzy, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "添え字は整数でなければいけません"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "%<class%>、%<typename%>、または %<template%> が予期されます"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "無効な初期化子です"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr "\"%s\" はマクロ仮引数リストに現れてはなりません"
@@ -62967,12 +63005,12 @@ msgstr "\"%s\" はマクロ仮引数リストに現れてはなりません"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "--driver は最早サポートされません"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
@@ -62982,133 +63020,133 @@ msgstr ""
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr "唯一の仮引数となる %<void%> には修飾子がつきません"
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, fuzzy, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "レジスタ変数 `%s' が入れ子関数の中で使われました"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma GCC pop_options%> に対応した %<#pragma GCC push_options%> がありません"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "無効な初期化子です"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "式が予期されます"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr "参照型に対して new を適用できません"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "メンバ関数の名前を欠いています"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "#pragma GCC java_exceptions の末尾にゴミ"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp taskwait%> は複合文内でのみ使用できます"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp taskwait%> は複合文内でのみ使用できます"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "#pragma GCC optimize は関数内では許可されていません"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr "ret 命令は実装されていません"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr "#if 式の中では文字列定数が使えません"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr ""
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -63138,7 +63176,7 @@ msgstr ""
 msgid "specialization of %qD must appear at namespace scope"
 msgstr ""
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr ""
@@ -63153,170 +63191,170 @@ msgstr "`%s' が再定義されました"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr ""
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr ""
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr ""
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 msgid "from definition of %q#D"
 msgstr "`%s' が再定義されました"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr ""
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr ""
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr ""
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 msgid "%s %#qD"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD は関数テンプレートではありません"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "%qD は変数ではありません"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr ""
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr ""
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, fuzzy, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr ""
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr ""
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr ""
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "宣言の中に代入(初期化ではなく)があります"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "Code 属性を欠いています"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "Code 属性を欠いています"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 msgid "template-id %qE in declaration of primary template"
 msgstr "`operator delete' の宣言内に多すぎる引数"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, fuzzy, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "#define 中の仮引数リストが終端されていません"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "%qD の宣言内でテンプレート仮引数リストが多すぎます"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "%qD の宣言内でテンプレート仮引数リストが少なすぎます"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr ""
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "FPU レジスタ内の機能の値を返す"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr ""
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD はテンプレート関数ではありません"
@@ -63329,153 +63367,153 @@ msgstr "%qD はテンプレート関数ではありません"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr ""
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "メンバ関数 %qD は %qT 内では宣言されていません"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "friend 宣言がクラス定義の中にありません"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 msgid "friend declaration here"
 msgstr "隠された宣言はここです"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "%K %D の最後の引数が 0 から 3 の間の整数定数ではありません"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, fuzzy, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "非メンバ `%s' を `mutable' とは宣言できません"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, fuzzy, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "非メンバ `%s' を `mutable' とは宣言できません"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr ""
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr "          %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "%q+D の再宣言は仮引数を隠します"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "%q+D の再宣言は仮引数を隠します"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr "仮引数 `%s' が void と宣言されています"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "#define 中の仮引数リストが終端されていません"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, fuzzy, gcc-internal-format
 msgid "primary template here"
 msgstr "前はここで宣言されました"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 msgid "too many arguments for partial specialization %qT"
 msgstr "関数 %qE への引数が多すぎます"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr ""
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 msgid "primary template %qD"
 msgstr "重複したラベル %qD です"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] ""
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "自動テンプレート実体化を有効にする"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "%qD 用のデフォルト引数がありません"
@@ -63484,47 +63522,47 @@ msgstr "%qD 用のデフォルト引数がありません"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "仮引数リスト中の `void' はリスト全体を占めなければなりません"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr ""
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "一つの空の宣言中に、二つの型が指定されています"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "一つの空の宣言中に、二つの型が指定されています"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr ""
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, fuzzy, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "クロスコンパイル時の実数値テンプレート仮引数"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 msgid "template %qD declared"
 msgstr "仮引数 `%s' が void と宣言されています"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "名前無しテンプレートクラスです"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr ""
@@ -63534,505 +63572,505 @@ msgstr ""
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "%qD の無効なテンプレート宣言です"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "非テンプレート %q#D のテンプレート定義です"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr ""
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr ""
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr ""
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr ""
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr ""
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "`%s' が別のシンボル種として再宣言されました"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT はテンプレート型ではありません"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr ""
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] ""
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "`%s' の宣言は仮引数を覆い隠します"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "テンプレート仮引数 %q+#D です"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "ここで %q#D として再宣言されています"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "redeclared here"
 msgstr "ここで宣言されています"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "`%s' が別のシンボル種として再宣言されました"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "元の定義はここに出現しています"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "`%s' が別のシンボル種として再宣言されました"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr ""
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "`%s' の引数として無効な型"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr ""
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr ""
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr "%s に `%s' という名前のメンバはありません"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "テンプレート仮引数 %q+#D です"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr ""
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, fuzzy, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr "型 %qT と %qT の間での比較です"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, fuzzy, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "strftime フォーマットは引数をフォーマットできません"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "%qE 属性の引数が整数定数ではありません"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, fuzzy, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "%qs は %qs 用には有効ではありません"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr ""
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr ""
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, fuzzy, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "型 %qT から型 %qT へ変換できません"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "%s に `%s' という名前のメンバはありません"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, fuzzy, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "%s に `%s' という名前のメンバはありません"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "不完全型のポインタへの間接参照"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "型 %qT の引数が %qT と一致しません"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "`%s' の引数として無効な型"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "`%s' の引数として無効な型"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr ""
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr "%qD のアドレスは常に %<true%> と評価されます"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr ""
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr ""
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr ""
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr ""
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "`%s' の引数として無効な型"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "`%s' の引数として無効な型"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr ""
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr ""
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr ""
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr ""
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr ""
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr ""
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "定義した後に %qT に適用される属性を無視しています"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr ""
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "`restrict' の用法が不適切です"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr ""
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr ""
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, fuzzy, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "クロスコンパイル時の実数値テンプレート仮引数"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr ""
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, fuzzy, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "予期しない型が `id' (%s) に指定されました"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, fuzzy, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "予期しない型が `id' (%s) に指定されました"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "クロスコンパイル時の実数値テンプレート仮引数"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr "予期しない型が `id' (%s) に指定されました"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "%qE から %qT へ変換できません"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "マクロ引数 \"%s\" は文字列化されます"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr ""
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "関数 %<va_start%> への引数の数が間違っています"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, gcc-internal-format
 msgid "provided for %qD"
 msgstr ""
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, fuzzy, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr "クロスコンパイル時の実数値テンプレート仮引数"
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr ""
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%qD は関数テンプレートではありません"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr ""
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, fuzzy, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "空の宣言です"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 msgid "template constraint failure for %qD"
 msgstr "内部一貫性がありません"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "テンプレート内で `%s' を使用しています"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr "整数 0 とポインタとの順序比較です"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, fuzzy, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr "静的アサーション内の式が整数定数式ではありません"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "共用体に可変配列メンバがあります"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE は宣言の開始ではありません"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr ""
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr ""
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "%q#D 用のデフォルト引数の再定義です"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "メンバ関数へのポインタが呼ばれましたが、クラススコープ内ではありません"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr ""
@@ -64050,303 +64088,303 @@ msgstr ""
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, fuzzy, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "sizeof が関数型に適用されました"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, fuzzy, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "仮引数 `%s' は無効です"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, fuzzy, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "無効な宣言です"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, fuzzy, gcc-internal-format
 msgid "function returning an array"
 msgstr "関数が集合体を返しています"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, fuzzy, gcc-internal-format
 msgid "function returning a function"
 msgstr "`%s' は関数を返す関数として宣言されています"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, fuzzy, gcc-internal-format
 msgid "forming reference to void"
 msgstr "一時オブジェクトへの参照を返そうとしています"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "不完全型のポインタへの間接参照"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, fuzzy, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "参照を参照として宣言できません"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "ポインタを参照として宣言できません"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "参照を参照として宣言できません"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "   ポインタからメンバへの変換で"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "   ポインタからメンバへの変換で"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "   ポインタからメンバへの変換で"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, fuzzy, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "大きさゼロの配列を作ろうとしています"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr ""
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr ""
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "クラスタイプ項を欠いています"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, fuzzy, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "テンプレート内で `%s' を使用しています"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr ""
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr ""
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, fuzzy, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "void 式の不適切な使用"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr ""
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr ""
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%qE がここでは宣言されていません (関数内ではない)"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "関数 %<__builtin_next_arg%> への引数の数が間違っています"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qE attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "%qE 属性用に間違った数の引数が指定されました"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr ""
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr ""
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, fuzzy, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "static フィールド `%s' を欠いています"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "%qT はテンプレート型ではありません"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr ""
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr ""
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, fuzzy, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "初期化子の要素が定数ではありません"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, fuzzy, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "不正な文字列定数です"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "自動テンプレート実体化を有効にする"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "自動テンプレート実体化を有効にする"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 msgid "%s %#qS"
 msgstr "%s: %s"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of function concept %q#D"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr ""
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr ""
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr ""
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "%s: `%s' の初期化:\n"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, fuzzy, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++ は減算にメソッドへのポインタを使うことを禁じます"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, fuzzy, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "自動テンプレート実体化を有効にする"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ は減算に関数へのポインタを使うことを禁じます"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, fuzzy, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr ""
@@ -64358,163 +64396,163 @@ msgstr ""
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "インラインテンプレートの明示的な実体化のみを生成する"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, fuzzy, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "'#' にマクロ仮引数名が続いていません"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, fuzzy, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, fuzzy, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "'#' にマクロ仮引数名が続いていません"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr ""
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be constrained"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr "%s=%s は数値ではありません"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr "`%s' の宣言は仮引数リストのシンボルを覆い隠します"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr ""
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr "非テンプレート %qD がテンプレートとして使用されています"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, fuzzy, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 msgid "use %qD directly instead"
 msgstr "spec %qs が無効です"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr ""
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "マクロ引数 \"%s\" は文字列化されます"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "inline に出来ると見なされていない関数です"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "間接関数 %q+D は弱い参照として宣言できません"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, fuzzy, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "マクロ引数 \"%s\" は文字列化されます"
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "無効なメソッド宣言です。メソッド名が必要です"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr ""
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "命令が制約を満たしません:"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, fuzzy, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "命令が制約を満たしません:"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, fuzzy, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "命令が制約を満たしません:"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "不完全な typedef `%s' の使用は不適切です"
@@ -64720,632 +64758,632 @@ msgstr ""
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "%<for%> ループ初期化宣言は C99 モード内でのみ許可されています"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "非メンバ関数での `this' の使用は無効です"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "非メンバ関数での `this' の使用は無効です"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "非メンバ関数での `this' の使用は無効です"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr "合っていない引数です"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 msgid "cannot call a concept as a function"
 msgstr "\"%s\" はマクロ名としては使えません"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, fuzzy, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "引数が構造体です"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "`this' は静的メンバ関数から使用できません"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr ""
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, fuzzy, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, fuzzy, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "`this' は静的メンバ関数から使用できません"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> before it is valid"
 msgstr "トップレベルでの `this' の使用は無効です"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> after it is valid"
 msgstr "トップレベルでの `this' の使用は無効です"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "非メンバ関数での `this' の使用は無効です"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "トップレベルでの `this' の使用は無効です"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr ""
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, fuzzy, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%s は型 %s ではありません (引数 %d)"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr ""
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, fuzzy, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, fuzzy, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, fuzzy, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "テンプレート型仮引数には `class' や `typename' 予約語を使わねばなりません"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr ""
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, fuzzy, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "無効なデフォルトテンプレート引数"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, fuzzy, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "`%s' の宣言は仮引数リストのシンボルを覆い隠します"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, fuzzy, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "インスタンス化されない型に対する無効な操作です"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, fuzzy, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "無効な宣言です"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, fuzzy, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr "無名共用体内に保護されたメンバ %q+#D があります"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr ""
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr "alloc_size パラメータが範囲外です"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 msgid "missing template arguments"
 msgstr "合っていない引数です"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr ""
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr ""
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "要求されたメンバ `%s' は多重継承グラフの中で曖昧です"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "定数式がオーバーフローしました"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, fuzzy, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "レジスタ '%c' が不明です"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qT はテンプレート型ではありません"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "要求された整列が定数ではありません"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "被演算子の数字が範囲外です"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "仮引数宣言の中の記憶域クラス指定は無効です"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr ""
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "ISO C++ はメンバ関数への `sizeof' の適用を禁じます"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "ISO C++ はメンバ関数への `sizeof' の適用を禁じます"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "ISO C++ はメンバ関数への `sizeof' の適用を禁じます"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 #| msgid "constructor priorities are not supported"
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "コンストラクタのプロパティはサポートされません"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "%s: オプション `%s' はあいまいです\n"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr ""
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, fuzzy, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE は %<reduction%> 用の無効な型を持っています"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, fuzzy, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr "添え字は整数でなければいけません"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "インスタンス変数 `%s' は %s と宣言されています"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "インスタンス変数 `%s' は private と宣言されています"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "インスタンス変数 `%s' は private と宣言されています"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, fuzzy, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr "%<num_threads%> 値は正でなければいけません"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr "添え字は整数でなければいけません"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "静的アサーション内の式が整数定数式ではありません"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, fuzzy, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "添え字は整数でなければいけません"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, fuzzy, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr "添え字は整数でなければいけません"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "インスタンス変数 `%s' は %s と宣言されています"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "インスタンス変数 `%s' は %s と宣言されています"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%qE は句 %qs 内では変数ではありません"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "インスタンス変数 `%s' は %s と宣言されています"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qE がデータ句内で二回以上出現しています"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, fuzzy, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "インスタンス変数 `%s' は %s と宣言されています"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr "%qs 句が多すぎます"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, fuzzy, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "添え字は整数でなければいけません"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr "添え字は整数でなければいけません"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "静的アサーション内の式が整数定数式ではありません"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr "添え字は整数でなければいけません"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "ベクトル型の delete ですが、ポインタでも配列型でもありません"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr "%<tree%> がポインタ型として定義されていません"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr ""
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr ""
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr ""
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "静的アサーション内の式が整数定数式ではありません"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 msgid "static assertion failed: %.*s"
 msgstr "静的アサーションに失敗しました: %E"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr ""
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr "%<__builtin_prefetch%> への第三引数は定数でなければいけません"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "<未解決オーバーロードされた関数型>"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "%<__builtin_next_arg%> が引数無しで呼び出されました"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "クラスタイプ項を欠いています"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "カンマ演算子の左側の式に効力がありません"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr ""
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr "%<__builtin_return_address%> へのサポートされていない引数です"
@@ -65353,1170 +65391,1170 @@ msgstr "%<__builtin_return_address%> へのサポートされていない引数
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr ""
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr "定数式がオーバーフローしました"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 msgid " declared here"
 msgstr "ここで宣言されています"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr "基底クラス %q#T が非仮想デストラクタを持っています"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not public"
 msgstr "%s は型 %s ではありません (引数 %d)"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 msgid "%qD is mutable"
 msgstr "%qD は変数ではありません"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr "%s は型 %s ではありません (引数 %d)"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "`com_interface' 属性はクラス定義にのみ用いる事ができます"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute argument must be a string constant"
 msgstr "%qE 属性の引数が文字列定数ではありません"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "`com_interface' 属性はクラス定義にのみ用いる事ができます"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "`java_interface' 属性は Java クラス定義に対してのみ用いる事ができます"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "%qE 属性は変数および関数へのみ適用できます"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr "%s: オプション `%s' には引数が必要です\n"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "%qE 属性は型に適用できません"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "要求された init_priority は整数型の定数ではありません"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, fuzzy, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "init_priority 属性はクラス型オブジェクトのファイルスコープ定義でのみ使えます"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, fuzzy, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "要求された init_priority が範囲外です"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, fuzzy, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "要求された init_priority は内部で使用するために予約されています"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "`%s' の宣言により `this' のメンバが覆い隠されます"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "%s: オプション `%s' には引数が必要です\n"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "%qE 属性の引数が文字列定数ではありません"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "%qE 属性の引数が文字列定数ではありません"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, fuzzy, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%T::%D%> は有効な宣言子ではありません"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%T::%D%> は有効な宣言子ではありません"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "%qE 属性は非クラス型に関しては無視されます"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "定義した後に %qT に適用される属性を無視しています"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "定義した後に %qT に適用される属性を無視しています"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "定義した後に %qT に適用される属性を無視しています"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "%qE 属性は関数へのみ適用出来ます。%s へは適用できません"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "`%s' 属性は関数に対してのみ適用されます"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "%qE 属性の引数が文字列定数ではありません"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, fuzzy, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "配列の添字が整数型ではありません"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "Tree 検査: %s があるべき所に %s があります(%s 内, %s:%d)"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, fuzzy, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, fuzzy, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, fuzzy, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ は `void *' 型ポインタと関数ポインタとの %s を禁じます"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ は `void *' 型ポインタと関数ポインタとの %s を禁じます"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ は `void *' 型ポインタと関数ポインタとの %s を禁じます"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, fuzzy, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, fuzzy, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, fuzzy, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "?: への被演算子が異なる型 %qT と %qT を持っています"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, fuzzy, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "?: への被演算子が異なる型 %qT と %qT を持っています"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "非メンバ関数での `this' の使用は無効です"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "ビットフィールドに `__alignof' が適用されました"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++ は関数型の式への `sizeof' の適用を禁じます"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr ""
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++ は関数型の式への `sizeof' の適用を禁じます"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "配列 `%s' の大きさは非整数型"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "非メンバ関数での `this' の使用は無効です"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "文字列定数中の \\r エスケープ"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, fuzzy, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "文字列定数中の \\r エスケープ"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr ""
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr "メンバへのポインタでの無効な `%s' の使用"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "メンバへのポインタでの無効な `%s' の使用"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr ""
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "%qT は %qE という名前のメンバを持っていません"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "%qT は %qE という名前のメンバを持っていません"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "%qT は %qE という名前のメンバを持っていません"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%qT は %qE という名前のメンバを持っていません"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr ""
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr ""
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "メンバ関数の名前を欠いています"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr ""
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "メンバへのポインタでの無効な `%s' の使用"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, fuzzy, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "メンバへのポインタでの無効な `%s' の使用"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, fuzzy, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "メンバへのポインタでの無効な `%s' の使用"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "配列参照での添字を欠いています"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, fuzzy, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "`register' と宣言された配列に添字をつけようとしています"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "添字をつけられた値が配列でもポインタでもありません"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, fuzzy, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "メンバへのポインタ構築の使用でオブジェクトを欠いています"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ はプログラムの中から `::main' を呼び出すことを禁じます"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr ""
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, fuzzy, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "\"%s\" はマクロ名としては使えません"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "\"%s\" はマクロ名としては使えません"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "\"%s\" はマクロ名としては使えません"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr ""
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "関数に対する引数が多すぎます"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "関数への引数が少なすぎます"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, fuzzy, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "仮引数が不完全型です"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, fuzzy, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "仮引数が不完全型です"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "%qD のアドレスは常に %<true%> と評価されます"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr ""
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr ""
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, fuzzy, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "関数ポインタが計算で使われました"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ はポインタと整数との比較を禁じます"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, fuzzy, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "%qT と %qT の比較です"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "整数 0 とポインタとの順序比較です"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 msgid "unordered comparison on non-floating-point argument"
 msgstr "非浮動小数点引数での順序付けられない比較です"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 #, fuzzy
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "関数へ引数を渡すときに %qT から %qT へ暗黙的に変換されます"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, fuzzy, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "二項演算子 %s が不適切です"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ は減算に `void *' 型のポインタを使うことを禁じます"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ は減算に関数へのポインタを使うことを禁じます"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ は減算にメソッドへのポインタを使うことを禁じます"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "ポインタ演算で不完全型へのポインタを使うことは無効です"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr "一時オブジェクトのアドレスを取ろうとしています"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr "一時オブジェクトのアドレスを取ろうとしています"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "メンバへのポインタでの無効な `%s' の使用"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr ""
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr ""
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO C++ は非左辺値式へのキャストのアドレスを取ることを禁じます"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ は非左辺値式へのキャストのアドレスを取ることを禁じます"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ は非左辺値式へのキャストのアドレスを取ることを禁じます"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr ""
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "taking address of rvalue"
 msgstr "一時オブジェクトのアドレスを取ろうとしています"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ は `::main' 関数のアドレスを取ることを禁じます"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, fuzzy, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "ポインタを参照として宣言できません"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "ビットフィールド %qD のアドレスを取得できません"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, fuzzy, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "%<void%> 型の式のアドレスを取得しています"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ は enum の %s を禁じます"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ は enum の %s を禁じます"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, fuzzy, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "不完全型へのポインタに対する演算"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, fuzzy, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "不完全型のポインタへの間接参照"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ は減算に `void *' 型のポインタを使うことを禁じます"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ は減算に `void *' 型のポインタを使うことを禁じます"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, fuzzy, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "`this' は右辺値式であり、そのアドレスを取ることはできません"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, fuzzy, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "register 変数 `%s' のアドレスが要求されました"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr ""
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, fuzzy, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "無名基底クラスの初期設定子が曖昧です"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr ""
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr ""
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr ""
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "初期化子リストは複合式として取り扱われました"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "関数 `%s' に対して不適切な保存クラス"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 msgid "type qualifiers ignored on cast result type"
 msgstr "関数戻り値の型修飾子は無視されました"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "戻り値の型が不完全型です"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 msgid "converting from %qH to %qI"
 msgstr "NaN から整数への変換です"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 #, fuzzy
 msgid "cast from %qH to %qI loses precision"
 msgstr "%s: 全体的な精度の低下"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 #, fuzzy
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "型が全く異なるポインタの比較でキャストを欠いています"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "キャストによってポインタが示す型の要求アラインメントが増加します"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, fuzzy, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "ISO C++ は関数ポインタとオブジェクトポインタの間でのキャストを禁じます"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, fuzzy, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr ""
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr ""
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "不完全な typedef `%s' の使用は不適切です"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C は共用体型へのキャストを禁じます"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, fuzzy, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "関数 `%s' に対して不適切な保存クラス"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qE from type %qT to type %qT"
 msgid "moving %qE of type %qT to itself"
 msgstr "%qE を型 %qT から型 %qT へ変換できません"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr ""
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr ""
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, fuzzy, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "%d 番目の引数が `%s' の型と互換性がありません"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, fuzzy, gcc-internal-format
 msgid "array used as initializer"
 msgstr "配列の不正な初期化"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, fuzzy, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "代入として無効な左辺値です"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   ポインタからメンバ関数への変換で"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, fuzzy, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "   ポインタからメンバへの変換で"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   ポインタからメンバへの変換で"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, fuzzy, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "無効なバージョン番号形式"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "ポインタ型へ変換できません"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "ポインタ型へ変換できません"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "ポインタ型へ変換できません"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 msgid "cannot convert %qH to %qI in return"
 msgstr "ポインタ型へ変換できません"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "ポインタ型へ変換できません"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, fuzzy, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "format 属性をの候補となりそうな関数について警告する"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "引数 %d 個の `%s' を渡します"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "一時オブジェクトへの参照を返そうとしています"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "一時オブジェクトへの参照を返そうとしています"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, fuzzy, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr "非左辺値への参照が返されました"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, fuzzy, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr "要求された大域レジスタ変数 `%s' のアドレス"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, fuzzy, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr "要求された大域レジスタ変数 `%s' のアドレス"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr "return 文に十分な値がありません"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr "return 文に十分な値がありません"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "デストラクタから値を返そうとしています"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "コンストラクタの関数 try ブロックのハンドラからは return できません"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "コンストラクタから値を返そうとしています"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, fuzzy, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "戻り型が関数で、`return' に値がありません"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 msgid "returning initializer list"
 msgstr "初期化子がありません"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr ""
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr ""
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr "戻り型が関数で、`return' に値がありません"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr ""
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr "無効なメソッド宣言です。メソッド名が必要です"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 msgid "using rvalue as lvalue"
 msgstr "無効な %%s 値"
@@ -66737,157 +66775,157 @@ msgstr ""
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "関数を inline にできません"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "%qE の %qT から %qT への変換は曖昧です"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "%qE の %qT から %qT への変換は曖昧です"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, fuzzy, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr "静的アサーション内の式が整数定数式ではありません"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 msgid "initializer-string for %qT is too long"
 msgstr "char の配列にとって初期化子文字列が長すぎます"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 msgid "remove %<{ }%> around initializer"
 msgstr "スカラー初期化子が中括弧で囲まれています"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr ""
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, fuzzy, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "初期化子を欠いています"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, fuzzy, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "仮引数 `%s' が初期化されました"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "仮引数 `%s' が初期化されました"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "%qD の型は元の宣言と一致しません"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, fuzzy, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "レコードや共用体にフィールド名がない初期化子です"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "union 初期化子がフィールド名ではなくインデックス値になっています"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "循環ポインタの代表を検出しました"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, fuzzy, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "`->' のベースオペランドがポインタではありません"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, fuzzy, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "`operator->()'の結果が非ポインタの結果をもたらします"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, fuzzy, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "`->' のベースオペランドがポインタではありません"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, fuzzy, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "\"%s\" は C++ の演算子であり、マクロ名として使用することはできません"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "メンバ関数へのポインタが計算内で使用されています"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "メンバ関数へのポインタが計算内で使用されています"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "メンバ関数へのポインタが計算内で使用されています"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "関数 `%s' に対して不適切な保存クラス"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, fuzzy, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "デストラクタを静的メンバ関数とすることはできません"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, fuzzy, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "制限のない共用体は -std=c++0x または -std=gnu++0x を指定した時のみ使用できます"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr ""
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, fuzzy, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "不完全型への変換です"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, fuzzy, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "不完全型への変換です"
@@ -67879,7 +67917,7 @@ msgstr "非メンバ `%s' を `mutable' とは宣言できません"
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "`__builtin_args_info' の引数は定数でなければなりません"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr "無効なビット列初期化子です"
@@ -69202,7 +69240,7 @@ msgstr ""
 msgid "deferred type parameter at %C"
 msgstr "引数の型が異なります"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -69417,7 +69455,7 @@ msgstr ""
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr ""
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr "シンボルの頭にアンダースコアをつける"
@@ -70218,7 +70256,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr ""
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr ""
@@ -71025,12 +71063,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr ""
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -71278,273 +71316,273 @@ msgstr ""
 msgid "check_init_expr(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "コンストラクタを静的メンバ関数とすることはできません"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "組み込み関数 `%s' は非関数として宣言されました"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr "コンストラクタを静的メンバ関数とすることはできません"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "コンストラクタを静的メンバ関数とすることはできません"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "二重にクォートされた文字列は #if 式内では使えません"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr ""
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr ""
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "定数式がオーバーフローしました"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr ""
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr ""
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr ""
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "呼び出されたオブジェクトは関数ではありません"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr "(`%s' の初期化は不完全です)"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr ""
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, fuzzy, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "キャストは関数型を指定しています"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, fuzzy, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr ""
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, fuzzy, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, fuzzy, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, fuzzy, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, fuzzy, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, fuzzy, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr ""
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, fuzzy, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr ""
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr ""
@@ -71552,192 +71590,192 @@ msgstr ""
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr ""
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "ANSI C++ は定数でない集合体の初期化子式を禁じます"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "初期化子の要素が定数式ではありません"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr ""
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr ""
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr ""
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr ""
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, fuzzy, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "`asm' の引数が定数文字列ではありません "
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "`asm' の引数が定数文字列ではありません "
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "定数式がオーバーフローしました"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "定数式がオーバーフローしました"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "`asm' の引数が定数文字列ではありません "
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, fuzzy, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "`asm' の引数が定数文字列ではありません "
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr ""
@@ -71758,8 +71796,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "一時オブジェクトへの参照を返そうとしています"
@@ -71839,7 +71877,7 @@ msgstr ""
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr ""
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -71974,12 +72012,12 @@ msgstr ""
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
@@ -72849,7 +72887,7 @@ msgstr "NaN から整数への変換です"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr "値をベクトルには変換できません"
@@ -73400,7 +73438,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr ""
@@ -73566,6 +73604,11 @@ msgstr "式の整数がオーバーフローしました"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -73967,7 +74010,7 @@ msgstr ""
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr ""
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr ""
@@ -74490,82 +74533,82 @@ msgstr "'%s' トークンの所で文法エラー"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr "式内"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "'%s' トークンの所で文法エラー"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "メソッド仕様内での構文解析エラー"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "メソッド仕様内での構文解析エラー"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "メソッド仕様内での構文解析エラー"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Unexpected RANK statement at %C"
 msgstr "文が予期されます"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr ""
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr "メソッド仕様内での構文解析エラー"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr ""
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr ""
@@ -75986,8 +76029,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr ""
@@ -78355,12 +78398,12 @@ msgstr ""
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "ラベル %s があらゆる関数の外側で参照されました"
@@ -78480,7 +78523,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr ""
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr ""
@@ -78879,278 +78922,283 @@ msgstr ""
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr ""
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "`%s' の宣言は関数の配列"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr "%qE は廃止されました"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+msgid "Invalid array reference at %L"
+msgstr "無効な参照型です"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr ""
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr ""
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr ""
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "添え字は整数でなければいけません"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr ""
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr ""
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "式文が無効です"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -79159,284 +79207,284 @@ msgstr ""
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "式の中の文に不完全型があります"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr ""
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr ""
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr ""
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr ""
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr ""
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr ""
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr ""
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, fuzzy, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "\"%s\" は C++ の演算子であり、マクロ名として使用することはできません"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, fuzzy, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr ""
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr "仮引数 %u が void 型を持っています"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr ""
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr ""
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, fuzzy, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "数値型が予期されます"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr ""
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "無効なオプション %s"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr ""
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr ""
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr ""
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr ""
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr ""
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr ""
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr ""
@@ -79444,212 +79492,212 @@ msgstr ""
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr ""
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr "コンストラクタ %qs 内"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr ""
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr ""
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr ""
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr ""
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr ""
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr ""
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "フォーマット引数がポインタではありません (引数 %d)"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "引数は定数でなければいけません"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr ""
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr "無効なオプション %s"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr ""
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "仮引数 `%s' が void と宣言されています"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr ""
@@ -79657,999 +79705,999 @@ msgstr ""
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "配列 `%s' の大きさが大きすぎます"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, fuzzy, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "`%s' に `extern' と初期化子の両方があります"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr ""
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr ""
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr ""
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr ""
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr ""
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, fuzzy, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "関数を inline にできません"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, fuzzy, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr "可変長オブジェクトは初期化されないことになるでしょう"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "`%s' に `extern' と初期化子の両方があります"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, fuzzy, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "関数を inline にできません"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "関数を inline にできません"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, fuzzy, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "`%s' に `extern' と初期化子の両方があります"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr "%s 内、位置 %s:%d"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "関数を inline にできません"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, fuzzy, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr "可変長オブジェクトは初期化されないことになるでしょう"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr ""
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, fuzzy, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "組み込み関数 `%s' は非関数として宣言されました"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "関数を inline にできません"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "関数を inline にできません"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr ""
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr ""
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "%qE 属性は %s 属性と競合します"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "%qE 属性は %s 属性と競合します"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "%qE 属性は %s 属性と競合します"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, fuzzy, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "%qE 属性は %s 属性と競合します"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr "コンストラクタを静的メンバ関数とすることはできません"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr ""
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, fuzzy, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "式の中の文に不完全型があります"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr ""
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr ""
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr ""
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr ""
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "`__builtin_args_info' の引数は定数でなければなりません"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr ""
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "`__builtin_args_info' の引数は定数でなければなりません"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr ""
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "ANSI C++ は定数でない集合体の初期化子式を禁じます"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr ""
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "%qD は既に定義されています"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "%qE 属性は %s 属性と競合します"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "%s に互換性のない型"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr ""
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr ""
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr ""
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr ""
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr ""
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr ""
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr ""
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr ""
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "関数 `%s' への引数が少なすぎます"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr "式文が無効です"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, fuzzy, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "データ領域 '%s' は前の宣言と矛盾します"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "`%s' に `extern' と初期化子の両方があります"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "`%s' に `extern' と初期化子の両方があります"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr ""
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "初期化子内に非定数の配列インデックスがあります"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "`%s' の第二引数は `char **' とすべきです"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr ""
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "ラベル `%s' が定義されましたが使われていません"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "ラベル `%s' が定義されましたが使われていません"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr ""
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, fuzzy, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "メソッド仕様内での構文解析エラー"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr ""
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr ""
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr ""
@@ -81193,330 +81241,330 @@ msgstr ""
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr ""
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, fuzzy, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "データ領域 '%s' は前の宣言と矛盾します"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr ""
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr ""
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr ""
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "代入として無効な左辺値です"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "`%s' 属性は関数に対してのみ適用されます"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr ""
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, fuzzy, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "データ領域 '%s' は前の宣言と矛盾します"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr ""
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "フィールド '%s' の ConstantValue 属性が重複しています"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "フィールド '%s' の ConstantValue 属性が重複しています"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr ""
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "section 属性はローカル変数に対しては指定できません"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "フィールド '%s' の ConstantValue 属性が重複しています"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "section 属性はローカル変数に対しては指定できません"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "データ領域 '%s' は前の宣言と矛盾します"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr ""
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "組み込み関数 `%s' は非関数として宣言されました"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr ""
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "`%s' に `extern' と初期化子の両方があります"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "%s: オプション `%s' はあいまいです\n"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr ""
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr ""
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr ""
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "%s に `%s' という名前のメンバはありません"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr ""
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr ""
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr ""
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr "行番号 %u に戻るはずでした"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr "式内"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr ""
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr ""
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr ""
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr ""
@@ -81546,24 +81594,24 @@ msgstr ""
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr ""
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, fuzzy, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "一時オブジェクトへの参照を返そうとしています"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr ""
@@ -81749,37 +81797,37 @@ msgstr "FPU レジスタ内の機能の値を返す"
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr "ISO C90 は可変長の配列 %qE を禁止しています"
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr ""
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "関数 `%s' への引数が少なすぎます"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -81790,17 +81838,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "言語 %s は認識できません"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, fuzzy, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "`__builtin_args_info' の引数は定数でなければなりません"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr "環境変数 %qs が定義されていません"
@@ -81941,7 +81989,7 @@ msgstr ""
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr ""
@@ -82315,6 +82363,11 @@ msgstr "変数 %qD が関数として再宣言されました"
 msgid "function %qD redeclared as variable"
 msgstr "関数 %qD が変数として再宣言されました"
 
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "前はここで宣言されました"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -83570,7 +83623,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, fuzzy, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr "非オブジェクトメンバ `%s' を `mutable' とは宣言できません"
@@ -83580,7 +83633,7 @@ msgstr "非オブジェクトメンバ `%s' を `mutable' とは宣言できま
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr ""
@@ -84267,6 +84320,10 @@ msgstr ""
 #~ msgid "class template placeholder %qE not permitted in this context"
 #~ msgstr "マクロ引数内でディレクトリを使うことはできません"
 
+#, fuzzy, gcc-internal-format
+#~ msgid "cannot declare %qD in a different module"
+#~ msgstr "%qD をビットフィールド型として宣言できません"
+
 #, fuzzy, gcc-internal-format
 #~ msgid "cannot define %qD in different module"
 #~ msgstr "作成時と使用時でエンディアンが異なります"
diff --git a/gcc/po/nl.po b/gcc/po/nl.po
index 1d14c1e3e25..5bf417fe393 100644
--- a/gcc/po/nl.po
+++ b/gcc/po/nl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 4.9-b20140202\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2014-02-05 12:25+0100\n"
 "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -417,7 +417,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "-march=... en -mcpu=... gaan niet samen"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "-shared en -mdll zijn niet compatibel"
 
@@ -19288,20 +19288,20 @@ msgstr "onherkenbare insn:"
 msgid "insn does not satisfy its constraints:"
 msgstr ""
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr ""
 
 # Vertaling voor "endianness"? Of niet nodig?
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 #, fuzzy
 #| msgid "created and used with different endianness"
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "aangemaakt en gebruikt met verschillende \"endianness\""
 
 # Vertaling voor "endianness"? Of niet nodig?
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 #, fuzzy
 #| msgid "created and used with different endianness"
 msgid "created and used with different settings of %<-fpie%>"
@@ -19631,7 +19631,7 @@ msgstr "lengte-modifier in strfmon-formaat"
 msgid "<command-line>"
 msgstr "<opdrachtregel>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "ongeldige operand voor code '%c'"
@@ -19650,9 +19650,9 @@ msgstr "ongeldige operand voor '%%%c'"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 #| msgid "invalid constant"
 msgid "invalid vector constant"
@@ -19675,7 +19675,7 @@ msgstr "ongeldige operand voor '%%%c'"
 msgid "incompatible register operand for '%%%c'"
 msgstr "ongeldige operand voor '%%%c'"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "operand ontbreekt"
@@ -19707,94 +19707,94 @@ msgstr "ongeldige adresseringsmodus"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "ongeldige operanden in binaire bewerking"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr ""
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "ongeldige waarde voor %%J"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "ongeldige waarde voor %%r"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "ongeldige waarde voor %%R"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "ongeldige waarde voor %%N"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "ongeldige waarde voor %%P"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "ongeldige waarde voor %%h"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "ongeldige waarde voor %%L"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "ongeldige waarde voor %%m"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "ongeldige waarde voor %%M"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "ongeldige waarde voor %%U"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "ongeldige waarde voor %%s"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "ongeldige waarde voor %%C"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "ongeldige waarde voor %%E"
 
 # mja, is nogal technisch - ikke nie snap nie
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "onbekende 'unspec' relocatie"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "ongeldige code voor %%xn"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, fuzzy, c-format
 msgid "invalid operand address"
 msgstr "Ongeldige modus voor gen_tst_reg"
@@ -19892,36 +19892,36 @@ msgstr "ongeldige UNSPEC als operand: %d"
 msgid "unrecognized supposed constant"
 msgstr "vermoedelijke constante niet herkend"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "ongeldige shift-operand"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "Thumb-instructie met predicaat"
 
 # mja. snappen wie snappen kan ^^
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "instructie met predicaat in voorwaardelijke sequentie"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, fuzzy, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "ongeldige operand voor code '%c'"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -19929,122 +19929,122 @@ msgstr "ongeldige operand voor code '%c'"
 msgid "invalid operand for code '%c'"
 msgstr "ongeldige operand voor code '%c'"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "instructie wordt nooit uitgevoerd"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr ""
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "ongeldige conversie van %<__fpreg%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "ongeldige registernaam voor %qs"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr ""
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 #, fuzzy
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "operand %<%d%> is geen register"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr ""
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 #, fuzzy
 msgid "bad address, not a constant:"
 msgstr "adres-offset is geen constante"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr ""
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr ""
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "interne compilerfout.  Slecht adres:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr ""
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "interne compilerfout.  Onbekende modus:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "ongeldige insn:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr ""
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "onbekende move-insn:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr ""
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "interne compilerfout.  Verkeerde shift:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr ""
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 #, fuzzy
 msgid "variable"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 #, fuzzy
 msgid "function parameter"
 msgstr "%Jherdefinitie van parameter %qD"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 #, fuzzy
 msgid "structure field"
 msgstr "%qs tevoren hier gedefinieerd"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 #, fuzzy
 msgid "return type of function"
 msgstr "doorgeven van argument %d van %qs"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 #, fuzzy
 msgid "pointer"
 msgstr "ongeldige lvalue in toewijzing"
@@ -20083,7 +20083,7 @@ msgstr "onverwachte operand"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20407,54 +20407,54 @@ msgstr "operand is noch een constante, noch een conditiecode ⇒ ongeldige opera
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "operand is noch een constante, noch een conditiecode ⇒ ongeldige operandcode 'c'"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "ongeldige operand voor '%c'"
 
 # "constraints" hier te vertalen ("beperkingen"/"restricties") of niet?
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "ongeldige constraints voor operand"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 msgid "invalid vector immediate"
 msgstr "Ongeldig token in expressie"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "onbekende insn-modus"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "ongeldige conversie van %<__fpreg%>"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "ongeldige conversie van %<__fpreg%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "ongeldige conversie naar %<__fpreg%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "ongeldige registernaam voor %qs"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -20485,7 +20485,7 @@ msgstr "ongeldige bewerking met %<__fpreg%>"
 msgid "invalid %%P operand"
 msgstr "ongeldige operand voor %%P"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "ongeldige waarde voor %%p"
@@ -20513,29 +20513,29 @@ msgstr ""
 msgid "invalid addressing mode"
 msgstr "ongeldige adresseringsmodus"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "'%%%c' is geen geldige operand-prefix"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "ongeldig gebruik van '%%%c'"
@@ -20570,7 +20570,7 @@ msgid "post-increment address is not a register"
 msgstr "post-increment adres is geen register"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "slecht adres"
 
@@ -20734,7 +20734,7 @@ msgstr "niet-ondersteunde versie"
 msgid "unsupported memory expression:"
 msgstr "ongeldige waarheidsexpressie"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 msgid "invalid vector operand"
 msgstr "ongeldige operand voor %%P"
@@ -20787,263 +20787,263 @@ msgstr ""
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "case-label niet in een switch-statement"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 #, fuzzy
 msgid "bad move"
 msgstr "slechte test"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%A value"
 msgstr "ongeldige waarde voor %%H"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "ongeldige waarde voor %%D"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%e value"
 msgstr "ongeldige waarde voor %%H"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "ongeldige waarde voor %%K"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "ongeldige waarde voor %%O"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "ongeldige waarde voor %%q"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%t value"
 msgstr "ongeldige waarde voor %%H"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%V value"
 msgstr "ongeldige waarde voor %%H"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "ongeldige waarde voor %%x"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%z value"
 msgstr "ongeldige waarde voor %%H"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, fuzzy, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "twee %<u%>s in integerconstante"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "AltiVec argument doorgegeven aan functie zonder prototype"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 #, fuzzy
 msgid "Could not generate addis value for fusion"
 msgstr "interne fout - slechte ingebouwde functie %qs"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 #, fuzzy
 msgid "Unable to generate load/store offset for fusion"
 msgstr "interne fout - slechte ingebouwde functie %qs"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "ongeldige conversie van %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "ongeldige conversie naar %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "ongeldige conversie van %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "ongeldige conversie naar %<__fpreg%>"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr ""
 
 # Betere vertaling voor 'decompose'?
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "kan adres niet ontleden"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, fuzzy, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "ongeldige operand voor 'b' modifier"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, fuzzy, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "ongeldige operand voor 'b' modifier"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, fuzzy, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "ongeldige operand voor 'O' modifier"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, fuzzy, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "ongeldige operand voor 'b' modifier"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, fuzzy, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "ongeldige operand voor 'b' modifier"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, fuzzy, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "ongeldige operand voor 'o' modifier"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, fuzzy, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "ongeldige code voor operanduitvoer"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, fuzzy, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "ongeldige operand voor 'o' modifier"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, fuzzy, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "ongeldige expressie als operand"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, fuzzy, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "ongeldige operand voor 'o' modifier"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "vector argument passed to unprototyped function"
 msgstr "AltiVec argument doorgegeven aan functie zonder prototype"
 
 # 'signedness' = 'signed-heid'?
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 #, fuzzy
 msgid "types differ in signedness"
 msgstr "doelen van pointer in %s verschillen in signedness"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr ""
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -21247,12 +21247,12 @@ msgstr "{{anoniem}}"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, fuzzy, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "ongeldige operand van %s"
@@ -21265,7 +21265,7 @@ msgstr "ongeldige operand van %s"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21274,7 +21274,7 @@ msgstr "ongeldige operand van %s"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, fuzzy, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "ongeldige operand van %s"
@@ -21282,7 +21282,7 @@ msgstr "ongeldige operand van %s"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, fuzzy, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "ongeldige operand van %s"
@@ -21294,29 +21294,29 @@ msgstr "ongeldige operand van %s"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, fuzzy, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, fuzzy, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "ongeldige operand van %s"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, fuzzy, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "ongeldige operand van %s"
@@ -21326,17 +21326,17 @@ msgstr "ongeldige operand van %s"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, fuzzy, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, fuzzy, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "ongeldige operand van %s"
@@ -21345,8 +21345,8 @@ msgstr "ongeldige operand van %s"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, fuzzy, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "ongeldige operand van %s"
@@ -21357,17 +21357,17 @@ msgid "expected %<.%>"
 msgstr "ongeldige operand van %s"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, fuzzy, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, fuzzy, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, fuzzy, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "ongeldige operand van %s"
@@ -21375,32 +21375,32 @@ msgstr "ongeldige operand van %s"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, fuzzy, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "ongeldige operand van %s"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, fuzzy, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 msgid "expected %<else%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, fuzzy, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "top-level declaratie van %qs specifieert %<auto%>"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -21408,7 +21408,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "(anoniem)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, fuzzy, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "ongeldige operand van %s"
@@ -21425,23 +21425,23 @@ msgstr "ongeldige operand van %s"
 msgid "candidate:"
 msgstr "kandidaat 1:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 msgid "  after user-defined conversion:"
 msgstr "ongeldig gebruik van %<restrict%>"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 #, fuzzy
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "kandidaat 1:"
 msgstr[1] "kandidaat 1:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "kandidaat 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "kandidaat 2:"
 
@@ -21702,7 +21702,7 @@ msgstr ""
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr ""
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "kandidaten zijn:"
 
@@ -21753,54 +21753,54 @@ msgstr "conversie gooit constantheid weg"
 msgid "source type is not polymorphic"
 msgstr ""
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "argument van verkeerd type voor unaire min"
 
 # 'unary' = 'unair'?
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "argument van verkeerd type voor unaire plus"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "argument van verkeerd type voor bit-complement"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "argument van verkeerd type voor abs"
 
 # OK, ik geef het op: wat is hier een goede vertaling voor 'conjugation'?
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "argument van verkeerd type voor vervoeging"
 
 # 'unary' = 'unair'?
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 #, fuzzy
 msgid "in argument to unary !"
 msgstr "argument van verkeerd type voor unaire plus"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 #, fuzzy
 msgid "no pre-increment operator for type"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 #, fuzzy
 msgid "no pre-decrement operator for type"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr ""
 
@@ -21879,7 +21879,7 @@ msgstr ""
 msgid "Deleted feature:"
 msgstr ""
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 #, fuzzy
 msgid "array assignment"
 msgstr "beginwaarde ontbreekt"
@@ -22082,12 +22082,12 @@ msgstr ""
 msgid "implied END DO"
 msgstr ""
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 #, fuzzy
 msgid "assignment"
 msgstr "beginwaarde ontbreekt"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 #, fuzzy
 msgid "pointer assignment"
 msgstr "ongeldige lvalue in toewijzing"
@@ -22260,49 +22260,49 @@ msgstr ""
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr ""
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr ""
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 #, fuzzy
 msgid "iterator variable"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 #, fuzzy
 msgid "End expression in DO loop"
 msgstr "ongeldige expressie als operand"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr ""
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr ""
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr ""
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr ""
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr ""
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr ""
 
@@ -22311,11 +22311,11 @@ msgstr ""
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr ""
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -22330,12 +22330,12 @@ msgstr ""
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr ""
 
@@ -22344,81 +22344,81 @@ msgstr ""
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, fuzzy, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "Ontbrekende argumenten voor intrinsic %s op %L"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, fuzzy, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "Ontbrekende argumenten voor intrinsic %s op %L"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, fuzzy, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -22442,15 +22442,15 @@ msgstr ""
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr ""
 
@@ -22531,7 +22531,7 @@ msgid "expected boolean type"
 msgstr "ongeldige operand van %s"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, fuzzy, gcc-internal-format
 msgid "expected integer"
 msgstr "ongeldige operand van %s"
@@ -22602,7 +22602,7 @@ msgstr "geen argumenten"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, fuzzy, gcc-internal-format
 msgid "too many arguments"
 msgstr "te veel argumenten voor formaat"
@@ -23270,7 +23270,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "%s voor %qs"
@@ -23721,8 +23721,8 @@ msgstr "attribuut %qE botst met attribuut %s"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 msgid "previous declaration here"
 msgstr "eerdere declaratie van %qs"
@@ -23739,7 +23739,7 @@ msgstr "attribuut-commando %qE wordt genegeerd"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "attribuut-commando %qs wordt genegeerd"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "verkeerd aantal argumenten opgegeven voor attribuut %qE"
@@ -23749,7 +23749,7 @@ msgstr "verkeerd aantal argumenten opgegeven voor attribuut %qE"
 msgid "expected %i or more, found %i"
 msgstr "ongeldige operand van %s"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "expected %i, found %i"
 msgstr "ongeldige operand van %s"
@@ -23816,12 +23816,12 @@ msgstr ""
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -23830,7 +23830,7 @@ msgstr ""
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -23852,8 +23852,8 @@ msgstr "attribuut %qE wordt genegeerd"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "eerdere declaratie van %qs"
@@ -23964,7 +23964,7 @@ msgstr "kan %s niet vinden"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "offset buiten de grenzen van een constante string"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 msgid "%qE declared here"
 msgstr "%qs tevoren hier gedeclareerd"
@@ -24071,7 +24071,7 @@ msgstr "ontbrekend argument bij %qs"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
 msgstr "ongeldig argument voor %<__builtin_frame_address%>"
@@ -24093,43 +24093,43 @@ msgstr "tweede argument van %<__builtin_longjmp%> moet 1 zijn"
 msgid "target format does not support infinity"
 msgstr "doelformaat ondersteunt geen oneindige waarde"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 #| msgid "%<va_start%> used in function with fixed args"
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "%<va_start%> gebruikt in functie met vaste argumenten"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "te weinig argumenten voor functie %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "%<__builtin_next_arg%> opgeroepen zonder argument"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "te weinig argumenten voor functie %<va_start%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "de tweede parameter van %<va_start%> is niet het laatste benoemde argument"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr ""
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr "herhalings-aantal is geen integerconstante"
@@ -25182,12 +25182,12 @@ msgstr ""
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, fuzzy, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "label %qs gebruikt maar niet gedefinieerd"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, fuzzy, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "label %qs gebruikt maar niet gedefinieerd"
@@ -25747,7 +25747,7 @@ msgstr ""
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr ""
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, fuzzy, gcc-internal-format
 msgid "%qs failed"
 msgstr "kan bestand '%s' niet openen"
@@ -25777,19 +25777,19 @@ msgstr ""
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+D redeclared with attribute noinline"
 msgid "call to %qs declared with attribute error: %s"
 msgstr "functie %q+D is geherdeclareerd met attribuut 'noinline'"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+D redeclared with attribute noinline"
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "functie %q+D is geherdeclareerd met attribuut 'noinline'"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr ""
@@ -25824,7 +25824,7 @@ msgstr "grote integer impliciet afgekapt naar 'unsigned' type"
 msgid "comparison is always %d due to width of bit-field"
 msgstr "vergelijking is altijd %d vanwege breedte van bit-veld"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr ""
@@ -25990,7 +25990,7 @@ msgstr "kon procestijden niet ophalen"
 msgid "%s signal terminated program %s"
 msgstr ""
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option %qs"
 msgid "unrecognized command-line option %qs"
@@ -26257,7 +26257,7 @@ msgstr "multilib spec '%s' is ongeldig"
 msgid "multilib exclusions %qs is invalid"
 msgstr "multilib exclusions '%s' is ongeldig"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, fuzzy, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "multilib select '%s' in ongeldig"
@@ -26558,22 +26558,22 @@ msgstr ""
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "%Jflexibel array-lid niet aan het eind van de struct"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr "ISO C ondersteunt %<long long%> niet"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
@@ -26615,16 +26615,16 @@ msgid "function returns address of local variable"
 msgstr "functie geeft adres van lokale variabele terug"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, fuzzy, gcc-internal-format
@@ -26636,366 +26636,366 @@ msgstr "%qs tevoren hier gedeclareerd"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, fuzzy, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr "ongeldige beginwaarde"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "Te veel argumenten voor %s op %L"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 msgid "null destination pointer"
 msgstr "lege declaratie"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 #| msgid "unterminated format string"
 msgid "null format string"
@@ -27739,12 +27739,12 @@ msgstr "%qs is geen geldige pointer-modus"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, fuzzy, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qs tevoren hier gedeclareerd"
@@ -28516,7 +28516,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "ongeldig gebruik van %<restrict%>"
@@ -28860,17 +28860,17 @@ msgstr "%J%qD als inline gedeclareerd na zijn definitie"
 msgid "mismatching definition"
 msgstr "beginwaarde ontbreekt"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr ""
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -29948,77 +29948,77 @@ msgstr "kan bestand '%s' niet openen"
 msgid "error closing optimization records %qs"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 #| msgid "command line option %qs is not supported by this configuration"
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "opdrachtregeloptie %qs wordt niet ondersteund door deze configuratie"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "ontbrekend argument bij %qs"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs should be a non-negative integer"
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "argument van %qs moet een niet-negatieve integer zijn"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "argument van %qs moet een niet-negatieve integer zijn"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "-malign-loops=%d ligt niet tussen 0 en %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized argument in option %qs"
 msgid "invalid argument in option %qs"
 msgstr "niet-herkend argument bij optie %qs"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr ""
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "niet-herkend argument bij optie %qs"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 #| msgid "valid arguments to %qs are: %s"
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "geldige argumenten van %qs zijn: %s"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "geldige argumenten van %qs zijn: %s"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, fuzzy, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qE attribute larger than %d"
 msgid "argument to %qs is bigger than %d"
 msgstr "argument van attribuut %qE is groter dan %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr ""
@@ -30096,8 +30096,8 @@ msgstr "argument voor \"%s\" moet een niet-negatieve integer zijn"
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, fuzzy, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "case-selector niet compatibel met label"
@@ -30819,7 +30819,7 @@ msgstr "globale registervariabele volgt op een functiedefinitie"
 msgid "register of %qD used for multiple global register variables"
 msgstr "registernaam opgegeven voor niet-registervariabele %qs"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, fuzzy, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "conflicterende types voor %qs"
@@ -31272,42 +31272,42 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "__builtin_saveregs wordt niet ondersteund door dit doelsysteem"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, fuzzy, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, fuzzy, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "sectie-attributen worden niet ondersteund voor dit doelsysteem"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, fuzzy, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, fuzzy, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
@@ -32439,83 +32439,83 @@ msgstr ""
 msgid "BB %i has incorrect fallthru edge"
 msgstr ""
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr ""
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr ""
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr ""
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr ""
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr ""
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr ""
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr ""
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr ""
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr ""
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr ""
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr ""
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr ""
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "inline maken mislukt in oproep van %qs"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "van hieruit opgeroepen"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 #| msgid "called from here"
 msgid "called from this function"
 msgstr "van hieruit opgeroepen"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, fuzzy, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "inline maken mislukt in oproep van %qs"
@@ -32573,27 +32573,27 @@ msgstr "ongeldig element-type voor attribuut %qs"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "ongeldig element-type voor attribuut %qs"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "ongeldig argument voor %<__builtin_return_address%>"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "%Jgeneste functie %qD gedeclareerd maar niet gedefinieerd"
@@ -32799,7 +32799,7 @@ msgstr "parameter %qD krijgt beginwaarde"
 msgid "%qs may be used uninitialized"
 msgstr "%qs is hier niet gedeclareerd (eerste gebruik in deze functie)"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, fuzzy, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qs tevoren hier gedeclareerd"
@@ -33031,7 +33031,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -33046,122 +33046,122 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "arrays van functies zijn niet betekenisvol"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, fuzzy, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, fuzzy, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, fuzzy, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, fuzzy, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr ""
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 msgid "%qD is unavailable: %s"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 msgid "%qD is unavailable"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 msgid "%qE is unavailable: %s"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 msgid "%qE is unavailable"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr "kan bestand '%s' niet openen"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 msgid "type is unavailable"
 msgstr "functie-oproep heeft geaggregeerde waarde"
@@ -33186,262 +33186,262 @@ msgstr "functie-oproep heeft geaggregeerde waarde"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, fuzzy, gcc-internal-format
 msgid "first mismatch is field"
 msgstr "types in voorwaardelijke expressie komen niet overeen"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, fuzzy, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type %s is not an opaque type"
 msgstr "%qs is geen iterator"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type %s is not with opaque mode"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 msgid "main variant is not defined"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "grootte van array %qs is van een niet-integer type"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "%qs heeft een onvolledig type"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -33659,7 +33659,7 @@ msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -33876,7 +33876,7 @@ msgstr "attribuut %qE wordt genegeerd omdat %qT reeds gedefinieerd is"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "attribuut %qE wordt genegeerd omdat %qT reeds gedefinieerd is"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr ""
@@ -34069,7 +34069,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "attribuut %qE kan niet opgegeven worden voor lokale variabelen"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "attribuut %qE kan niet opgegeven worden voor lokale variabelen"
@@ -34407,7 +34407,7 @@ msgstr "%<%.*s%> is niet gedefinieerd"
 msgid "%qE argument is not a function"
 msgstr "het argument van %<cleanup%> is geen functie"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr ""
@@ -34936,7 +34936,7 @@ msgstr "ISO C++ verbiedt het adres van een gecaste expressie"
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "ISO C staat geen extra %<;%> buiten een functie toe"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "ongeldige toepasing van %qs op een void-type"
@@ -35069,17 +35069,17 @@ msgstr ""
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "argumenten aan macro %qs gegeven"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "te weinig argumenten voor functie %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, fuzzy, gcc-internal-format
@@ -35204,167 +35204,167 @@ msgstr "poging om het adres te nemen van lid %qs van een bitveld-structure"
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, fuzzy, gcc-internal-format
 msgid "size of array is too large"
 msgstr "omvang van array %qs is te groot"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible type for argument %d of %qE"
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "incompatibel type voor argument %d van %qE"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "%s maakt pointer van integer zonder een cast"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr "%<defined%> zonder een naam"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "te weinig argumenten voor functie %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr ""
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr ""
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "doorgeven van argument %d van %qs"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "cast laat qualifiers van doeltype van pointer vallen"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "cast laat qualifiers van doeltype van pointer vallen"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, fuzzy, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "ongeldig type-argument %qs"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "indexwaarde valt buiten bereik"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr ""
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 msgid "size of array %qE is not a constant expression"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 msgid "size of array is not a constant expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array %qE is negative"
 msgstr "grootte van array %qs is negatief"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array is negative"
 msgstr "grootte van array %qs is negatief"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "grootte van array %qs is negatief"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -36001,7 +36001,7 @@ msgstr "integerconstante is zo groot dat hij unsigned is"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "integerconstante is zo groot dat hij unsigned is"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "sectie-attributen worden niet ondersteund voor dit doelsysteem"
@@ -36081,7 +36081,7 @@ msgstr ""
 msgid "traditional C rejects string constant concatenation"
 msgstr "traditionele C verwerpt het aaneenplakken van stringconstantes"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -36136,7 +36136,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr ""
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "ongeldig type voor iteratie-variabele %qE"
@@ -36152,17 +36152,17 @@ msgstr "ongeldig type voor iteratie-variabele %qE"
 msgid "%qE is not initialized"
 msgstr "parameter %qD krijgt beginwaarde"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, fuzzy, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "Ongeldig token in expressie"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, fuzzy, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "Ongeldig token in expressie"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, fuzzy, gcc-internal-format
 msgid "missing increment expression"
 msgstr "toewijzingsonderdrukking"
@@ -36172,7 +36172,7 @@ msgstr "toewijzingsonderdrukking"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, fuzzy, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "Ongeldig token in expressie"
@@ -36260,7 +36260,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -36270,7 +36270,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qs is geen iterator"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, fuzzy, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr "bitveld %qs heeft een ongeldig type"
@@ -36875,7 +36875,7 @@ msgid "wrong type argument to %s"
 msgstr "argument van verkeerd type voor abs"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -37816,35 +37816,35 @@ msgstr "vergelijking tussen %qT en %qT"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -38065,117 +38065,117 @@ msgstr "-mregparm=%d ligt niet tussen 0 en %d"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "optie -mcpu=%s geeft conflicten met optie -mtune="
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "optie -mcpu=%s geeft conflicten met optie -mtune="
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, fuzzy, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "opslaggrootte van %qs is onbekend"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -38580,13 +38580,13 @@ msgstr "eerste argument van %qs zou een %<int%> moeten zijn"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "eerste argument van %qs zou een %<int%> moeten zijn"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma GCC optimize%> is not a string or number"
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC optimize%> is geen string of getal"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr "misvormde #pragma pack"
@@ -39157,7 +39157,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -39235,12 +39235,12 @@ msgid "unknown tuning option (%s)"
 msgstr "onbekende spec-functie '%s'"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -39251,7 +39251,7 @@ msgid "specify a system register with a small string length"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "-fPIC is niet geldig met -mcoff"
@@ -39433,9 +39433,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "het argument van %<alias%> is geen string"
@@ -39487,18 +39487,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "-pipe wordt niet ondersteund"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "instructie-scheduling wordt niet ondersteund op deze doelmachine"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -39511,8 +39511,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr "operandnummer buiten bereik"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 msgid "unsupported simdlen %wd"
 msgstr "niet-ondersteunde versie"
@@ -39522,7 +39522,7 @@ msgstr "niet-ondersteunde versie"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "ongebruikte argumenten in $-stijl formaat"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, fuzzy, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr "ongebruikte argumenten in $-stijl formaat"
@@ -39532,7 +39532,7 @@ msgstr "ongebruikte argumenten in $-stijl formaat"
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "ongebruikte argumenten in $-stijl formaat"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "ongebruikte argumenten in $-stijl formaat"
@@ -39624,8 +39624,8 @@ msgstr "L%d cache-latency niet gekend voor %s"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "slechte waarde %qs voor -mmeroy-latency"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr ""
@@ -39746,18 +39746,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "het argument van %<asm%> is geen constante string"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -39875,7 +39875,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "argument van attribuut %qE is geen string-constante"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "herhalings-aantal is geen integerconstante"
@@ -39898,23 +39898,23 @@ msgstr "attribuut %qE is enkel van toepassing op functie-types"
 msgid "argument of %qE attribute ignored"
 msgstr "attribuut %qE wordt genegeerd"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "attribuut %qE is enkel van toepassing op variabelen"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr ""
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, fuzzy, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr "onbekende machine-modus %qs"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr "ongeldig gebruik van %<restrict%>"
@@ -40158,7 +40158,7 @@ msgstr "doel-CPU ondersteunt geen interworking"
 msgid "target CPU does not support unaligned accesses"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 msgid "This architecture does not support branch protection instructions"
 msgstr "doel-CPU ondersteunt geen interworking"
@@ -40210,7 +40210,7 @@ msgstr "Grens voor structure-grootte kan enkel op 8 of 32 insgesteld worden"
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "case-selector niet compatibel met label"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr "ISO C ondersteunt de %<%c%> lengte-optie niet"
@@ -40317,7 +40317,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -40362,42 +40362,42 @@ msgstr "attribuut %qE is enkel van toepassing op geïnitialiseerde variabelen di
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "attribuut %qE is enkel van toepassing op functie-types"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr ""
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, fuzzy, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr "ongeldige operand van %s"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr ""
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr ""
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr "ongeldig type-argument %qs"
@@ -40405,24 +40405,24 @@ msgstr "ongeldig type-argument %qs"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute %qs"
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "ongeldig vector-type voor attribuut %qs"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 #| msgid "junk at end of #pragma %s"
 msgid "unknown target attribute or pragma %qs"
 msgstr "rommel aan einde van #pragma %s"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "ISO C ondersteunt de %<%c%> lengte-optie niet"
@@ -40476,162 +40476,162 @@ msgstr ""
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "%Jer kan geen alignment opgegeven worden voor %qD"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 msgid "%<-fpic%> is not supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 msgid "%<-fpie%> is not supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "-G en -static sluiten elkaar uit"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "functie %qs kan geen waarde teruggeven"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr ""
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr "registervariabele %qs gebruikt in geneste functie"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, fuzzy, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "de zwakke declaratie van %qs moet publiek zijn"
 
 # goede vertaling van variadic?
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables and functions"
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "attribuut %qE is enkel van toepassing op variabelen en functies"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "%Jsectie-attributen worden niet ondersteund voor dit doelsysteem"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute does not apply to types"
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "attribuut %qE heeft geen betekenis voor types"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables"
 msgid "%qE attribute on non-volatile variable"
 msgstr "attribuut %qE is enkel van toepassing op variabelen"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, fuzzy, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "sectie-attributen worden niet ondersteund voor dit doelsysteem"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, fuzzy, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "ISO C ondersteunt de %<%c%> lengte-optie niet"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr ""
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr ""
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr ""
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr ""
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "Enkel variabelen met beginwaarde kunnen in het 8-bit gebied geplaatst worden."
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "Enkel variabelen met beginwaarde kunnen in het 8-bit gebied geplaatst worden."
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "Enkel variabelen met beginwaarde kunnen in het 8-bit gebied geplaatst worden."
@@ -40640,43 +40640,43 @@ msgstr "Enkel variabelen met beginwaarde kunnen in het 8-bit gebied geplaatst wo
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, fuzzy, gcc-internal-format
 #| msgid "%qE incompatible attribute ignored"
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "incompatibel attribuut %qE wordt genegeerd"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, fuzzy, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "-pipe wordt niet ondersteund"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, fuzzy, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "ongeldige registernaam voor %qs"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "ongeldige registernaam voor %qs"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -40819,7 +40819,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr ""
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, fuzzy, gcc-internal-format
@@ -41458,8 +41458,8 @@ msgstr "%<defined%> zonder een naam"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "afrondingsmodus niet ondersteund voor VAX-floats"
@@ -41525,263 +41525,263 @@ msgstr "Bestandsnaam voor uitvoer twee keer opgegeven"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr "Bestandsnaam ontbreekt na %qs optie"
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, fuzzy, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "afrondingsmodus niet ondersteund voor VAX-floats"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr ""
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr ""
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-pipe wordt niet ondersteund"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "sectie-attributen worden niet ondersteund voor dit doelsysteem"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "sectie-attributen worden niet ondersteund voor dit doelsysteem"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, fuzzy, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "ISO C ondersteunt de %<%c%> lengte-optie niet"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "-pipe wordt niet ondersteund"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "ISO C ondersteunt de %<%c%> lengte-optie niet"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "ISO C ondersteunt de %<%c%> lengte-optie niet"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr ""
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, fuzzy, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "slechte waarde (%s) voor de -march= optie"
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, fuzzy, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "slechte waarde (%s) voor de -march= optie"
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, fuzzy, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "slechte waarde (%s) voor de -march= optie"
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, fuzzy, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "slechte waarde (%s) voor de -march= optie"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, fuzzy, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "slechte waarde (%s) voor de -march= optie"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "slechte waarde (%s) voor de -march= optie"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, fuzzy, gcc-internal-format
 #| msgid "valid arguments to %qs are: %s"
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "geldige argumenten van %qs zijn: %s"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, fuzzy, gcc-internal-format
 #| msgid "valid arguments to %qs are: %s"
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "geldige argumenten van %qs zijn: %s"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 #| msgid "valid arguments to %qs are: %s"
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "geldige argumenten van %qs zijn: %s"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "slechte waarde (%s) voor de -march= optie"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "slechte waarde (%s) voor de -march= optie"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, fuzzy, gcc-internal-format
 #| msgid "valid arguments to %qs are: %s"
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "geldige argumenten van %qs zijn: %s"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 #| msgid "valid arguments to %qs are: %s"
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "geldige argumenten van %qs zijn: %s"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 #| msgid "valid arguments to %qs are: %s"
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "geldige argumenten van %qs zijn: %s"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm=%d is not between 0 and %d"
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "-mregparm=%d ligt niet tussen 0 en %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "case-selector niet compatibel met label"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, fuzzy, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -41789,295 +41789,295 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "sectie-attributen worden niet ondersteund voor dit doelsysteem"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "-mpreferred_stack_boundary=%d ligt niet tussen 2 en 31"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mpreferred_stack_boundary=%d ligt niet tussen 2 en 31"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "case-selector niet compatibel met label"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr ""
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, fuzzy, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "pointer naar functie gebruikt in rekensom"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, fuzzy, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "pointer naar functie gebruikt in rekensom"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "onbekende machine-modus %qs"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "case-selector niet compatibel met label"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s en -mcall-%s zijn incompatibel"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s en -mcall-%s zijn incompatibel"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, fuzzy, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, fuzzy, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "argument van attribuut %qE is groter dan %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, fuzzy, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, fuzzy, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, fuzzy, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, fuzzy, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, fuzzy, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, fuzzy, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, fuzzy, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "-pg en -fomit-frame-pointer zijn niet compatibel"
 
 # XXX FIXME, ERROR:  s/none /non-/
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is used for none class-method"
 msgid "%qE attribute is used for non-class method"
 msgstr "attribuut %qE is gebruikt voor non-class-methode"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "incompatibel attribuut %qE wordt genegeerd"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "attribuut %qE is alleen beschikbaar voor 32-bits"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr ""
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "attribuut %qE vereist een string-constante als argument"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qE attribute is not a string constant"
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "argument van attribuut %qE is geen string-constante"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "de '-%c' moet een argument hebben"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr "%<return%> zonder waarde in een functie die een niet-void waarde teruggeeft"
@@ -42268,46 +42268,46 @@ msgstr ""
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "herdefinitie van %<union %s%>"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, gcc-internal-format
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr ""
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr ""
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, fuzzy, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr "onbekende machine-modus %qs"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr ""
@@ -42327,8 +42327,8 @@ msgstr "%qs is geen static veld"
 msgid "malformed %<#pragma builtin%>"
 msgstr "misvormde #pragma weak"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, fuzzy, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "ongeldig type-argument %qs"
@@ -42383,12 +42383,12 @@ msgstr "onbekende spec-functie '%s'"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr ""
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "Alignment moet een kleine macht van twee zijn, en niet %d, in #pragma pack"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "veld %qs als een functie gedeclareerd"
@@ -42514,19 +42514,19 @@ msgstr "%<%.*s%> is niet gedefinieerd"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "veld %qs als een functie gedeclareerd"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "attribuut %qE kan niet opgegeven worden voor lokale variabelen"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "attribuut %qE kan niet opgegeven worden voor lokale variabelen"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 msgid "multiple %qE attribute"
 msgstr "herhaalde label-declaratie %qs"
@@ -42631,12 +42631,12 @@ msgstr "meerdere interrupt-attributen zijn niet toegestaan"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr ""
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, fuzzy, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not supported on this target"
 msgstr "sectie-attributen worden niet ondersteund voor dit doelsysteem"
@@ -42677,7 +42677,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr ""
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires a string constant argument"
 msgid "%qE attribute requires a string argument"
@@ -42720,132 +42720,132 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "argument van attribuut %qE is geen string-constante"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, fuzzy, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "kan oproep van %qs niet inline maken"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr ""
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr ""
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "-pipe wordt niet ondersteund"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, fuzzy, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%s ondersteunt %s niet"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr ""
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr ""
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "niet-ondersteunde versie"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr ""
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "case-selector niet compatibel met label"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr ""
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, fuzzy, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "macro %qs gebruikt zonder argumenten"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr ""
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr ""
@@ -42855,117 +42855,117 @@ msgstr ""
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, fuzzy, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "case-selector niet compatibel met label"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, fuzzy, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr "niet-ondersteunde versie"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr "niet-ondersteunde versie"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, fuzzy, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "Positie-onafhankelijke code wordt niet ondersteund.  Genegeerd"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, fuzzy, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "Positie-onafhankelijke code wordt niet ondersteund.  Genegeerd"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr ""
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, fuzzy, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%<__thread%> samen met %s gebruikt"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr ""
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, fuzzy, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr ""
@@ -43864,57 +43864,57 @@ msgstr "%<#pragma GCC optimize%> is geen string of getal"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "rommel aan einde van %<#pragma reset_options%>"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target()%> attribute"
 msgstr "ongeldig type-argument %qs"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "het argument van %<alias%> is geen string"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
 msgstr "misvormde #pragma pack"
@@ -43976,173 +43976,193 @@ msgstr "kon 0x%l.8x niet naar een regio omzetten"
 msgid "capture by copy of RVV type %qT"
 msgstr ""
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
 msgstr "ongeldig type-argument %qs"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "slechte waarde (%s) voor de -march= optie"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr ""
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "AltiVec argument doorgegeven aan functie zonder prototype"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr "ongeldig gebruik van %<restrict%>"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, fuzzy, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "het argument van %<asm%> is geen constante string"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%<%c%> optie gebruikt bij type %<%c%>"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 msgid "%qs requires an integer constant"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "doel-CPU ondersteunt geen interworking"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 msgid "code model %qs with %qs"
 msgstr "ISO C ondersteunt de %<%c%> lengte-optie niet"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "-mpreferred_stack_boundary=%d ligt niet tussen 2 en 31"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "-fPIC is niet geldig met -mcoff"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "-fPIC is niet geldig met -mcoff"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -44396,32 +44416,32 @@ msgstr "%J%qD neemt ofwel geen, ofwel twee argumenten"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "%J%qD neemt ofwel geen, ofwel twee argumenten"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "cast laat qualifiers van doeltype van pointer vallen"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, fuzzy, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "ongeldig argument voor %<__builtin_return_address%>"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 msgid "%qs is not supported in this compiler configuration"
 msgstr "alias-definities worden niet ondersteund in deze configuratie; genegeerd"
@@ -44461,29 +44481,22 @@ msgstr "ongeldige operanden voor binaire %s-operator"
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr ""
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr ""
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, fuzzy, gcc-internal-format
 msgid "stack frame too large"
 msgstr "bestand %qs is te groot"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "te weinig argumenten voor functie %qE"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr "%<__thread%> samen met %<register%> gebruikt"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr ""
@@ -44610,107 +44623,117 @@ msgstr "-fPIC is niet geldig met -mcoff"
 msgid "unknown option for %<%s=%s%>"
 msgstr "onbekende machine-modus %qs"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, fuzzy, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, fuzzy, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "kan adres van bitveld %qs niet nemen"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "ISO C staat het testen van asserties niet toe"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, fuzzy, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "'complex' ongeldig voor %qs"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "ongeldig gebruik van '%%%c'"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "spec '%s' is ongeldig"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, fuzzy, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr "spec '%s' is ongeldig"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, fuzzy, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, fuzzy, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, fuzzy, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
@@ -44756,7 +44779,7 @@ msgstr ""
 msgid "builtin %qs can only be used on vector types"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr ""
@@ -44826,229 +44849,229 @@ msgstr "%<%.*s%> is niet gedefinieerd"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "te veel argumenten voor procedure `%s'"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "argument %d is alleen-lezen"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "te veel argumenten voor procedure `%s'"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "te veel argumenten voor procedure `%s'"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr "einde van niet-void functie werd bereikt zonder teruggeefwaarde"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, fuzzy, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "slechte conditiecode"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "ongeldig argument voor %<__builtin_return_address%>"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, fuzzy, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr "gevraagde positie is geen integerconstante"
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qE attribute is not a string constant"
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "argument van attribuut %qE is geen string-constante"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr ""
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "opslaggrootte van %qs is onbekend"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr ""
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 #| msgid "nested function %qs declared %<extern%>"
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, fuzzy, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "afrondingsmodus niet ondersteund voor VAX-floats"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr "ISO C staat het testen van asserties niet toe"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "ISO C staat het testen van asserties niet toe"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "ISO C staat het testen van asserties niet toe"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr ""
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr ""
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr ""
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr ""
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs should be a non-negative integer"
 msgid "arguments to %qs should be non-negative integers"
 msgstr "argument van %qs moet een niet-negatieve integer zijn"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "argument van %qs is te groot (max. %d)"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "het argument van %<alias%> is geen string"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 msgid "invalid cc output constraint: %qs"
 msgstr "twee %<u%>s in integerconstante"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "multiple interrupt attributes not allowed"
 msgid "multiple cc output constraints not supported"
 msgstr "meerdere interrupt-attributen zijn niet toegestaan"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, fuzzy, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "type-qualifiers voor %qs geven een conflict met een eerdere declaratie"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr "ongeldig gebruik van %<restrict%>"
@@ -45488,8 +45511,8 @@ msgstr "attribuut %qE heeft geen effect"
 msgid "attribute %qs applies to array types only"
 msgstr "attribuut %qs is enkel van toepassing op array-types"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "void-waarde niet genegeerd zoals het hoort"
@@ -45565,7 +45588,7 @@ msgstr ""
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, fuzzy, gcc-internal-format
 msgid "originally defined here"
 msgstr "functie-definitie als %<typdef%> gedeclareerd"
@@ -45803,7 +45826,7 @@ msgstr "%Jdeclaratie van %qD verbergt een eerdere niet-variabele"
 msgid "declaration of %qD shadows a parameter"
 msgstr "de declaratie van %qs verbergt een parameter"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "de declaratie van %qs verbergt een parameter"
@@ -45813,7 +45836,7 @@ msgstr "de declaratie van %qs verbergt een parameter"
 msgid "declaration of %qD shadows a previous local"
 msgstr "de declaratie van %qs verbergt een parameter"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, fuzzy, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "%Jde verborgen declaratie is hier"
@@ -45879,7 +45902,7 @@ msgstr "%qE is hier niet gedeclareerd (eerste gebruik in deze functie)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "(Elke niet-gedeclareerde naam wordt slechts één"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, fuzzy, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "naar label %s gerefereerd buiten enige functie"
@@ -45914,7 +45937,7 @@ msgstr "overflow in constante expressie"
 msgid "duplicate label declaration %qE"
 msgstr "herhaalde label-declaratie %qs"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, fuzzy, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "herhaald label %qs"
@@ -45949,7 +45972,7 @@ msgstr "overflow in constante expressie"
 msgid "%qE defined as wrong kind of tag"
 msgstr ""
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to function types"
 msgid "%qE attribute applied to %qD with void return type"
@@ -46101,12 +46124,12 @@ msgstr "ISO C90 ondersteunt geen %<[*]%> declaratoren van arrays"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr ""
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 msgid "%<omp::%s%> not allowed to be specified in this context"
 msgstr "%<%.*s%> is niet gedefinieerd"
@@ -46116,7 +46139,7 @@ msgstr "%<%.*s%> is niet gedefinieerd"
 msgid "%q+D is usually a function"
 msgstr "%J%qD is meestal een functie"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, fuzzy, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "%Jgeen eerdere declaratie voor %qD"
@@ -46194,7 +46217,7 @@ msgstr "een object met een volatile veld kan niet in een register geplaatst word
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "ongeïnitialiseerde const %qD is ongeldig in C++"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -46380,7 +46403,7 @@ msgstr "opslagklasse opgegeven voor parameter %qs"
 msgid "storage class specified for unnamed parameter"
 msgstr "opslagklasse opgegeven voor parameter %qs"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "opslagklasse opgegeven voor typenaam"
@@ -46443,7 +46466,7 @@ msgstr "%qs wordt gedeclareerd als een array van functies"
 msgid "declaration of type name as array of functions"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "ongeldig gebruik van strcture met flexibel array-lid"
@@ -46550,7 +46573,7 @@ msgstr "%qs gedeclareerd als een functie die een array teruggeeft"
 msgid "function definition has qualified void return type"
 msgstr "functiedefinitie heeft een gekwalificeerde %<void%> als teruggeeftype"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "typekwalificaties op teruggeeftypes van functies worden genegeerd"
@@ -46678,7 +46701,7 @@ msgstr "ISO C verbiedt %<const%> of %<volatile%> functie-types"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "argument %d is alleen-lezen"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, fuzzy, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "variabele of veld %qs als void gedeclareerd"
@@ -46784,7 +46807,7 @@ msgstr "argument %d is alleen-lezen"
 msgid "object with variably modified type must have no linkage"
 msgstr ""
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "functie-declaratie is geen prototype"
@@ -46874,17 +46897,17 @@ msgstr "geneste herdefinitie van %<union %s%>"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "geneste herdefinitie van %<struct %s%>"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr ""
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 msgid "%qT defined in underspecified object initializer"
 msgstr "onbekend veld %qs opgegeven in beginwaarde"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "declaratie declareert niets"
@@ -46914,605 +46937,605 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "union heeft geen benoemde leden"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "union heeft geen leden"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "struct heeft geen benoemde leden"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "struct heeft geen leden"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "%Jflexibel array-lid in union"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, fuzzy, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "%Jflexibel array-lid niet aan het eind van de struct"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "%Jflexibel array-lid in union"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "%Jflexibel array-lid niet aan het eind van de struct"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, fuzzy, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "omvang van array %qs is te groot"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr ""
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "union kan niet transparant gemaakt worden"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "argument %d is alleen-lezen"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 msgid "redefinition of struct or union %qT"
 msgstr "herdefinitie van %<struct %s%>"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, fuzzy, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "geneste herdefinitie van %<enum %qs%>"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "herdeclaratie van %<enum %qs%>"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, fuzzy, gcc-internal-format
 #| msgid "specified mode too small for enumeral values"
 msgid "specified mode too small for enumerated values"
 msgstr "opgegeven modus is te klein voor enumeratiewaarden"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "enumeratiewaarden overschrijden het bereik van de grootste integer"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "enumeratiewaarden overschrijden het bereik van de grootste integer"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 msgid "conflicting redefinition of enum %qT"
 msgstr "geneste herdefinitie van %<enum %qs%>"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "enumeratiewaarde voor %qE is geen integerconstante"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "enumeratiewaarde voor %qE is geen integerconstante"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "overflow in enumeratiewaarden"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumerator value outside the range of underlying type"
 msgstr "enumeratiewaarden overschrijden het bereik van de grootste integer"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "enumerator value outside the range of %qs"
 msgstr "ISO C beperkt enumeratiewaarden tot het bereik van het %<int%> type"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C beperkt enumeratiewaarden tot het bereik van het %<int%> type"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr "%J%<noinline%> attribuut gegeven aan ingebouwde functie %qD"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "teruggeeftype is onvolledig"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "teruggeeftype krijgt standaardwaarde %<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, fuzzy, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr "sectie van %qs geeft een conflict met een eerdere declaratie"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, fuzzy, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "%Jgeen eerder prototype voor %qD"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, fuzzy, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "%J%qD werd voor haar definitie gebruikt zonder protoype"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, fuzzy, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "%J%qD werd voor haar definitie gebruikt zonder declaratie"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, fuzzy, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "%Jteruggeeftype van %qD is niet %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, fuzzy, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr "ISO C verbiedt gekwalificeerde functie-types"
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, fuzzy, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%J%qD is gewoonlijk een niet-static funtie"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, fuzzy, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "%Jparameterdeclaraties in oude stijl gebruikt in de definitie van een functie die een prototype heeft"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, fuzzy, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "%Jtraditionele C verwerpt functiedefinities in de stijl van ISO C"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr ""
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, fuzzy, gcc-internal-format
 msgid "old-style function definition"
 msgstr "%Jfunctiedefinitie in oude stijl"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, fuzzy, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "%Jparameternaam ontbreekt in parameterlijst"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%J%qD als niet-parameter gedeclareerd"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, fuzzy, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "%Jmeerdere parameters hebben de naam %qD"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "%Jparameter %qD als void gedeclareerd"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, fuzzy, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "%Jtype van %qD krijgt standaardtype %<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "%Jparameter %qD heeft een onvolledig type"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, fuzzy, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "%Jdeclaratie voor parameter %qD maar er is zo geen parameter"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, fuzzy, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "aantal argumenten kom niet overeen met prototype"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "aantal argumenten kom niet overeen met prototype"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, fuzzy, gcc-internal-format
 msgid "prototype declaration"
 msgstr "%Hdeclaratie van prototype"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, fuzzy, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "gepromoveerd argument %qD komt niet overeen met prototype"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "gepromoveerd argument %qD komt niet overeen met prototype"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, fuzzy, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "argument %qs komt niet overeen met prototype"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, fuzzy, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "argument %qs komt niet overeen met prototype"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, fuzzy, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "%<return%> zonder waarde in een functie die een niet-void waarde teruggeeft"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "parameter %qD krijgt beginwaarde"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, fuzzy, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "initiële declaratie voor %<for%> lus gebruikt buiten C99 modus"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr ""
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 ondersteunt geen %<[*]%> declaratoren van arrays"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, fuzzy, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "de declaratie van %qs verbergt een globale declaratie"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "de declaratie van %qs verbergt een globale declaratie"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, fuzzy, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%qs als 'inline' gedeclareerd na de definitie"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, fuzzy, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%qs als 'inline' gedeclareerd na de definitie"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, fuzzy, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%qs als 'inline' gedeclareerd na de definitie"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, fuzzy, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "de declaratie van %qs verbergt een globale declaratie"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr ""
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "meerdere opslagklassen in declaratie van %qs"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, fuzzy, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "meerdere opslagklassen in declaratie van %qs"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr "%<__thread%> samen met %<auto%> gebruikt"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%<__thread%> samen met %<register%> gebruikt"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "twee of meer data types opgegeven bij declaratie"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> is te lang voor GCC"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 ondersteunt %<long long%> niet"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 ondersteunt geen complexe types"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO C ondersteunt %<long long%> niet"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "herhaalde %qs"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C ondersteunt %<long long%> niet"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "sectie-attributen worden niet ondersteund voor dit doelsysteem"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support complex types"
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 ondersteunt geen complexe types"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C ondersteunt %<long long%> niet"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "sectie-attributen worden niet ondersteund voor dit doelsysteem"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C90 ondersteunt %<long long%> niet"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, fuzzy, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "sectie-attributen worden niet ondersteund voor dit doelsysteem"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C ondersteunt %<long long%> niet"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "enumeratiewaarde voor %qE is geen integerconstante"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
 # is letterlijke vertaling maar klinkt zo vreemd...
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, fuzzy, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qs slaagt er niet in een typedef of ingebouwd type te zijn"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, fuzzy, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qs staat niet aan het begin van een declaratie"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "%<__thread%> samen met %<auto%> gebruikt"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "%<__thread%> samen met %<register%> gebruikt"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "%<__thread%> samen met %<typedef%> gebruikt"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr "%<__thread%> samen met %<register%> gebruikt"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, fuzzy, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "%s ondersteunt %s niet"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 ondersteunt %<long long%> niet"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> vóór %<extern%> gebruikt"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> vóór %<static%> gebruikt"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%<__thread%> samen met %<auto%> gebruikt"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr "%<__thread%> samen met %<register%> gebruikt"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr "%<__thread%> samen met %s gebruikt"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr ""
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, fuzzy, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%<__thread%> samen met %s gebruikt"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr "%<__thread%> samen met %s gebruikt"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, fuzzy, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<__thread%> samen met %<auto%> gebruikt"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C ondersteunt gewone %<complex%> niet in de betekenis van %<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C ondersteunt %<long long%> niet"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C ondersteunt %<long long%> niet"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "%<defined%> zonder een naam"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++ ondersteunt %<long long%> niet"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, fuzzy, gcc-internal-format
 #| msgid "left shift count is negative"
 msgid "left shift of negative value"
 msgstr "teller van links shift is negatief"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "teller van links shift is negatief"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "teller van rechtse shift is negatief"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "teller van links shift is >= breedte van het type"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "teller van rechtse shift is >= breedte van het type"
@@ -47544,7 +47567,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr ""
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, fuzzy, gcc-internal-format
 msgid "expected end of line"
 msgstr "ongeldige operand van %s"
@@ -47554,8 +47577,8 @@ msgstr "ongeldige operand van %s"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C verbiedt een leeg bronbestand"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -47596,9 +47619,9 @@ msgstr "onbekende machine-modus %qs"
 msgid "unknown type name %qE"
 msgstr "onbekende machine-modus %qs"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, fuzzy, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "meerdere opslagklassen in declaratie van %qs"
@@ -47628,7 +47651,7 @@ msgstr ""
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr ""
@@ -47649,7 +47672,7 @@ msgstr "ongeldige operand van %s"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "sectie-attribuut is niet toegestaan voor %q+D"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 #| msgid "section attribute not allowed for %q+D"
 msgid "%<assume%> attribute not followed by %<;%>"
@@ -47743,7 +47766,7 @@ msgstr "beginwaarde-element is niet constant"
 msgid "static assertion failed: %E"
 msgstr ""
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, fuzzy, gcc-internal-format
 msgid "static assertion failed"
 msgstr "pex_init mislukt"
@@ -47814,10 +47837,10 @@ msgstr "argument %d is alleen-lezen"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, fuzzy, gcc-internal-format
 msgid "expected identifier"
 msgstr "ongeldige operand van %s"
@@ -47971,7 +47994,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -47981,8 +48004,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -48157,12 +48180,12 @@ msgstr "ISO C verbiedt het weglaten van de middelste term van een ?: expresie"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, fuzzy, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr "%qs tevoren hier gedeclareerd"
@@ -48313,7 +48336,7 @@ msgstr "ISO C90 ondersteunt %<long long%> niet"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, fuzzy, gcc-internal-format
 msgid "expected expression"
 msgstr "ongeldige waarheidsexpressie"
@@ -48639,12 +48662,12 @@ msgstr "meerdere opslagklassen in declaratie van %qs"
 msgid "no type or storage class may be specified here,"
 msgstr "opslagklasse opgegeven voor parameter %qs"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr ""
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 msgid "missing property attribute"
 msgstr "beginwaarde ontbreekt"
@@ -48654,57 +48677,57 @@ msgstr "beginwaarde ontbreekt"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "onbekende operator '%s' in %%:version-compare"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr ""
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr "herdeclaratie van %qs"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr ""
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "misvormde #pragma pack(pop[,id])"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr ""
@@ -48714,25 +48737,25 @@ msgstr ""
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, fuzzy, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "overflow in constante expressie"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "misvormde #pragma pack(pop[,id])"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, fuzzy, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "te veel invoerbestanden"
@@ -48747,63 +48770,63 @@ msgstr "%<defined%> zonder een naam"
 msgid "expected %<)%> or %<,%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, fuzzy, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 msgid "expected constant logical expression"
 msgstr "ongeldige waarheidsexpressie"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "te veel invoerbestanden"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, fuzzy, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr "te veel invoerbestanden"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -48826,22 +48849,22 @@ msgstr ""
 msgid "%<num_tasks%> value must be positive"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, fuzzy, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, fuzzy, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "ongeldige waarheidsexpressie"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr ""
@@ -48851,95 +48874,95 @@ msgstr ""
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr ""
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr ""
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, fuzzy, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, fuzzy, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, fuzzy, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "te veel argumenten voor formaat"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, fuzzy, gcc-internal-format
 msgid "unexpected argument"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 msgid "too many %<self%> clauses"
 msgstr "te veel invoerbestanden"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, fuzzy, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr ""
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, fuzzy, gcc-internal-format
 #| msgid "both %<long%> and %<void%> in declaration specifiers"
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "zowel %<long%> als %<void%> opgegeven bij declaratie"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, fuzzy, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "ongeldige const_double operand"
@@ -48949,22 +48972,22 @@ msgstr "ongeldige const_double operand"
 msgid "%<num_teams%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr "ongeldige operand van %s"
@@ -48975,22 +48998,22 @@ msgstr "ongeldige operand van %s"
 msgid "duplicate %qs modifier"
 msgstr "herhaalde %qs"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr "herhaalde case-waarde"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, fuzzy, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr "herhaalde case-waarde"
@@ -49010,63 +49033,63 @@ msgstr ""
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "case-selector niet compatibel met label"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "ongeldige const_double operand"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 msgid "invalid doacross kind"
 msgstr "ongeldige const_double operand"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr "te veel invoerbestanden"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr "te veel invoerbestanden"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<present%> modifiers"
 msgstr "te veel invoerbestanden"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, gcc-internal-format
 msgid "invalid map kind"
 msgstr ""
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr ""
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "ongeldige const_double operand"
@@ -49081,88 +49104,88 @@ msgstr "ongeldige const_double operand"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, fuzzy, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "-fPIC is niet geldig met -mcoff"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, fuzzy, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%<__thread%> samen met %s gebruikt"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, fuzzy, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "de declaratie van %qs verbergt een parameter"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr ""
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, fuzzy, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "lege declaratie"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "de declaratie van %qs verbergt een globale declaratie"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "ongeldige linker operand van %s"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr ""
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -49177,7 +49200,7 @@ msgstr "%<%.*s%> is niet gedefinieerd"
 msgid "expected function name"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "%qs is meestal een functie"
@@ -49187,22 +49210,22 @@ msgstr "%qs is meestal een functie"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr ""
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr ""
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr ""
@@ -49227,7 +49250,7 @@ msgstr ""
 msgid "modified here"
 msgstr "%qs tevoren hier gedefinieerd"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr "expressie-statement heeft onvolledig type"
@@ -49267,110 +49290,110 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 msgid "too many atomic clauses"
 msgstr "te veel invoerbestanden"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr "te veel invoerbestanden"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, fuzzy, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "case-selector niet compatibel met label"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, fuzzy, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "conflicterende declaraties van %qs"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "ongeldige bewerking met %<__fpreg%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 msgid "unexpected %<else%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "ongeldige bewerking met %<__fpreg%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "ongeldige bewerking met %<__fpreg%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, fuzzy, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "ongeldige bewerking met %<__fpreg%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr ""
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "beginwaarde-element is niet constant"
@@ -49380,27 +49403,27 @@ msgstr "beginwaarde-element is niet constant"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "beginwaarde-element is niet constant"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, gcc-internal-format
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr ""
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -49410,163 +49433,163 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr ""
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr "top-level declaratie van %qs specifieert %<auto%>"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr ""
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, fuzzy, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "herdeclaratie van %qs"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 msgid "not enough nested loops"
 msgstr "geen argumenten"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, fuzzy, gcc-internal-format
 msgid "for statement expected"
 msgstr "overflow in constante expressie"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, fuzzy, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, fuzzy, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, fuzzy, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr ""
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 msgid "expected trait selector name"
 msgstr "herdeclaratie van %qs"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, fuzzy, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "onbekende machine-modus %qs"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr ""
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 msgid "expected identifier or string literal"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -49574,290 +49597,290 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr "__builtin_saveregs wordt niet ondersteund door dit doelsysteem"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 msgid "expected context selector set name"
 msgstr "herdeclaratie van %qs"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 msgid "expected %<match%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr "%qs is meestal een functie"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "%Jparameter %qD heeft een onvolledig type"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, fuzzy, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr ""
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr ""
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr ""
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, fuzzy, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "de declaratie van %qs verbergt een parameter"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, fuzzy, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, fuzzy, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr ""
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "ongeldig gebruik van %<restrict%>"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 msgid "expected %qs or %qs"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr ""
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 msgid "expected directive name"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "onbekende machine-modus %qs"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 msgid "expected assumption clause"
 msgstr "ongeldige operand van %s"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, fuzzy, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "label %qs gebruikt maar niet gedefinieerd"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, fuzzy, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, fuzzy, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%Jparameter %u heeft een onvolledig type"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr ""
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr ""
@@ -49999,7 +50022,7 @@ msgstr "%<void *%> pointer wordt gederefereerd"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "waarde met subscript is noch een array, noch een pointer"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "array subscript is geen integer"
@@ -50029,7 +50052,7 @@ msgstr "%qs als ander soort symbool geherdeclareerd"
 msgid "enum constant defined here"
 msgstr ""
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -50143,18 +50166,18 @@ msgstr "ongeldige registernaam voor %qs"
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "te weinig argumenten voor functie %qE"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr ""
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between pointer and integer"
 msgid "comparison between pointer and zero character constant"
 msgstr "vergelijking tussen pointer en integer"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, fuzzy, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr "kan niet derefereren, is geen pointer."
@@ -50181,7 +50204,7 @@ msgid "arithmetic on pointer to an incomplete type"
 msgstr "rekensom met pointer naar onvolledig type"
 
 # 'Arithmetic'?? 'rekensom' is wel correct, maar het klinkt zo stom.
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, fuzzy, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr "rekensom met pointer naar onvolledig type"
@@ -50480,7 +50503,7 @@ msgstr "cast van pointer naar integer met andere grootte"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr ""
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "cast naar pointer van integer met andere grootte"
@@ -50661,7 +50684,7 @@ msgstr ""
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr ""
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr ""
@@ -50868,12 +50891,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "initialisatie van flexibel array-lid"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -50883,7 +50906,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr "array van ongeschikt type heeft stringconstante als beginwaarde"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "ongeldig gebruik van array die geen lvalue is"
@@ -50914,7 +50937,7 @@ msgstr "beginwaarde-element is niet constant"
 msgid "initializer element is not computable at load time"
 msgstr "beginwaarde-element kan niet berekend worden tijdens het laden"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, fuzzy, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
@@ -50929,7 +50952,7 @@ msgstr "extra accolade-groep aan einde van beginwaarde"
 msgid "braces around scalar initializer"
 msgstr "accolades rond scalaire beginwaarde"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "initialisatie van flexibel array-lid in een geneste context"
@@ -51021,7 +51044,7 @@ msgstr "overtollige elementen in beginwaarde van struct"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "niet-statische initialisatie van flexibel array-lid"
@@ -51061,7 +51084,7 @@ msgstr "ISO C verbiedt %<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "het argument van %<cleanup%> is geen naam"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, fuzzy, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "als %<noreturn%> gedeclareerde functie bevat een %<return%> statement"
@@ -51117,7 +51140,7 @@ msgstr "default-label niet in een switch-statement"
 msgid "break statement not within loop or switch"
 msgstr "break-statement niet in een lus of switch"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -51164,27 +51187,27 @@ msgstr ""
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr ""
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr ""
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr ""
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "vergelijking tussen types %qT en %qT"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr ""
@@ -51257,29 +51280,29 @@ msgstr "waarde van union-type gebruikt waar een scalair nodig is"
 msgid "used vector type where scalar is required"
 msgstr "waarde van struct-type gebruikt waar een scalair nodig is"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "ongeldige operand van %s"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qs is geen bestand, pipe of tty"
@@ -51290,85 +51313,85 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "te veel invoerbestanden"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, fuzzy, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr ""
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, fuzzy, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "grootte van array %qs is van een niet-integer type"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr "ongeldige operand van %s"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, fuzzy, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "ISO C90 verbiedt array %qs van variabele grootte"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, fuzzy, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qs is smaller dan waarden van zijn type"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr "%qs is smaller dan waarden van zijn type"
@@ -51378,17 +51401,17 @@ msgstr "%qs is smaller dan waarden van zijn type"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "ISO C verbiedt gekwalificeerde functie-types"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr "%Jparameter %qD heeft een onvolledig type"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr "breedte van bitveld %qs is geen integerconstante"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -51398,32 +51421,32 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr "ongeldige operand voor 'o' modifier"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr "ongeldige operand van %s"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr ""
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr ""
@@ -51453,7 +51476,7 @@ msgstr "ISO C90 verbiedt array %qs van variabele grootte"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr ""
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr "grootte van %qs is %u bytes"
@@ -51463,17 +51486,17 @@ msgstr "grootte van %qs is %u bytes"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "ISO C90 verbiedt array %qs van variabele grootte"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr ""
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -51488,23 +51511,23 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr ""
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr ""
@@ -51516,32 +51539,32 @@ msgstr ""
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr ""
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qs is geen bestand, pipe of tty"
@@ -51561,7 +51584,7 @@ msgstr "%qs is geen bestand, pipe of tty"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr "%qs is geen bestand, pipe of tty"
@@ -51571,7 +51594,7 @@ msgstr "%qs is geen bestand, pipe of tty"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr "%qs is geen bestand, pipe of tty"
@@ -51581,76 +51604,76 @@ msgstr "%qs is geen bestand, pipe of tty"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 msgid "unsupported map expression %qE"
 msgstr "niet-ondersteunde versie"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, fuzzy, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, fuzzy, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qs is geen static veld"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, fuzzy, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, fuzzy, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "%qs is geen bestand, pipe of tty"
@@ -51665,22 +51688,22 @@ msgstr "grootte van array %qs is van een niet-integraal type"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "waarde met subscript is noch een array, noch een pointer"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr ""
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr "te veel invoerbestanden"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr ""
@@ -51690,38 +51713,38 @@ msgstr ""
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -52001,14 +52024,14 @@ msgstr "ongeldige registernaam voor %qs"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -52322,568 +52345,568 @@ msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "types in voorwaardelijke expressie komen niet overeen"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr ""
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr ""
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr "%Jteruggeeftype van %qD is niet %<int%>"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "vergelijking tussen %q#T en %q#T"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "Teveel argumenten in oproep van %qs"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "grootte van %qs is %u bytes"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr ""
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "impliciete declaratie van functie %qE"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr ""
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr ""
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, fuzzy, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr "registervariabele %qs gebruikt in geneste functie"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 msgid "declared private here"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 msgid "declared protected here"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr "%s is niet addresseerbaar"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, fuzzy, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "doorgeven van argument %d van %qs"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 msgid "  declared here"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr ""
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, fuzzy, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "doorgeven van argument %d van %qs"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, fuzzy, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "doorgeven van argument %d van %qs"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, fuzzy, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "ongeldig type-argument %qs"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, fuzzy, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "accolades ontbreken rond beginwaarde"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 #, fuzzy
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C++ staat het gebruik van %<varargs.h%> niet toe"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 msgid "invalid conversion from %qH to %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr ""
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "ongeldige registernaam voor %qs"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr ""
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 #, fuzzy
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "cast laat qualifiers van doeltype van pointer vallen"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr ""
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr ""
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 #, fuzzy
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr ""
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, fuzzy, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "kan niet derefereren, is geen pointer."
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr ""
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, fuzzy, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "herdefinitie van %<struct %s%>"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, fuzzy, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "argumenten aan macro %qs gegeven"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr ""
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, fuzzy, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "cast laat qualifiers van doeltype van pointer vallen"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, fuzzy, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "kan oproep van %qs niet inline maken"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, fuzzy, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "te veel argumenten voor %s %q+#D"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "herhaald lid %qs"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is too large"
 msgid "; use assignment instead"
 msgstr "gevraagd alignment is te groot"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, fuzzy, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr "dubbele beginwaarde"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, fuzzy, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "herhaald lid %qs"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr ""
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, fuzzy, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr "dubbele beginwaarde"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 msgid "%#qT declared here"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr ""
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr ""
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 msgid "cannot convert %qH to %qI"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "Teveel argumenten in oproep van %qs"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "Teveel argumenten in oproep van %qs"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, fuzzy, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "kan functie %<main%> niet inline maken"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr ""
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "Teveel argumenten in oproep van %qs"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr ""
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "union heeft geen lid dat %qs heet"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr ""
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr ""
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr ""
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, fuzzy, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "doorgeven van argument %d van %qs"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr ""
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 msgid "try making the operator a %<const%> member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr ""
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 msgid "  for conversion from %qH to %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr ""
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, fuzzy, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "parameternaam ontbreekt uit parameterlijst"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, fuzzy, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr "kandidaat is: %+#D"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, fuzzy, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr "kandidaat is: %+#D"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr ""
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 #, fuzzy
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, gcc-internal-format
 msgid "possibly dangling reference to a temporary"
 msgstr ""
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, fuzzy, gcc-internal-format
 #| msgid "%s: declaration of function '%s' not converted\n"
 msgid "explicit conversion function was not considered"
@@ -52930,7 +52953,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "eerdere declaratie van %qs"
@@ -53352,7 +53375,7 @@ msgstr "%Jflexibel array-lid in overigens lege struct"
 msgid "next member %q#D declared here"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, fuzzy, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "herdefinitie van %qs"
@@ -53483,7 +53506,7 @@ msgstr "ongeldige opslagklasse voor functie %qs"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
@@ -53524,7 +53547,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%J%qD is gewoonlijk een niet-static funtie"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -53542,7 +53565,7 @@ msgstr "%<register%> in lege declaratie op bestandsniveau"
 msgid "%q+E is not a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -53563,7 +53586,7 @@ msgstr ""
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 msgid "call to internal function %qE"
@@ -53610,7 +53633,7 @@ msgstr "%qs is geen bestand, pipe of tty"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -53739,18 +53762,18 @@ msgstr "array subscript is geen integer"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr ""
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "ongeldige beginwaarde voor member %qs"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr "%<void *%> pointer wordt gederefereerd"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -53758,469 +53781,469 @@ msgstr "%<void *%> pointer wordt gederefereerd"
 msgid "%qE is not a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "ongeldige beginwaarde voor member %qs"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr ""
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "sectie-attributen worden niet ondersteund op dit doelsysteem"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr ""
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr ""
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 msgid "allocated here"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, fuzzy, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, fuzzy, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "array-index in beginwaarde van niet-array"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%qs is geen iterator"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, fuzzy, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, fuzzy, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, fuzzy, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "%qs is smaller dan waarden van zijn type"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, fuzzy, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 msgid "use of %qD"
 msgstr "ongeldig gebruik van %<restrict%>"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, fuzzy, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr "%Jeerder hier gebruikt"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr ""
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr "ongeldige beginwaarde"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, fuzzy, gcc-internal-format
 msgid "function concept must be called"
 msgstr "functie kan niet inline gemaakt worden"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, fuzzy, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "ongeldige waarheidsexpressie"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr ""
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr ""
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr ""
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, fuzzy, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "einde van niet-void functie werd bereikt zonder teruggeefwaarde"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr ""
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "functiedefinitie heeft een gekwalificeerde %<void%> als teruggeeftype"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr ""
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, fuzzy, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "niet-constante array-index in beginwaarde"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "onverwachte operand"
@@ -54940,7 +54963,7 @@ msgstr "derde argument voor %<__builtin_prefetch%> moet een constante zijn"
 msgid "no suspend point info for %qD"
 msgstr "%Jgeen eerder prototype voor %qD"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -54961,23 +54984,23 @@ msgstr "pointers zijn niet toegestaan als case-waarden"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr ""
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr "ongeldige registernaam voor %qs"
@@ -54997,69 +55020,69 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qs is meestal een functie"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr "ongeldige beginwaarde voor member %qs"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "overflow in constante expressie"
 
 # is de "," deel van de special format spec of niet?  en moet "true" hier vertaald worden of niet?
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "het adres van %qD, zal altijd %<true%> zijn"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 msgid "pack expansion of %qE attribute"
 msgstr "ongeldig type-argument %qs"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr "%qs is geen iterator"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qs is geen iterator"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr "%qs is geen iterator"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qs is smaller dan waarden van zijn type"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "%qs is smaller dan waarden van zijn type"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -55104,7 +55127,7 @@ msgstr "ongeldige registernaam voor %qs"
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "cast laat qualifiers van doeltype van pointer vallen"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, fuzzy, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "kan niet derefereren, is geen pointer."
@@ -55489,7 +55512,7 @@ msgstr "eerdere declaratie van %qs"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "ingebouwde functie %qs als niet-functie gedeclareerd"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "eerdere declaratie van %qs"
@@ -55630,8 +55653,8 @@ msgstr "eerdere declaratie van %qs"
 msgid "%q#D previously defined here"
 msgstr "%qs tevoren hier gedefinieerd"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "%qs tevoren hier gedefinieerd"
@@ -55706,52 +55729,37 @@ msgstr "argumenten aan macro %qs gegeven"
 msgid "previous specification in %q#D here"
 msgstr "eerdere definitie van %qs"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr "conflicterende declaraties van %qs"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr "conflicterende declaraties van %qs"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr "%qs tevoren hier gedeclareerd"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 msgid "conflicting exporting for declaration %qD"
 msgstr "conflicterende declaraties van %qs"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 msgid "previously declared here without exporting"
 msgstr "%Jeerder hier gebruikt"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr "%Jeerdere definitie van %qD was hier"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "%Jeerdere declaratie van %qD was hier"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "als %<noreturn%> gedeclareerde functie bevat een %<return%> statement"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, fuzzy, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "overbodige herdeclaratie van %qs in zelfde bereik"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr "%Jherdefinitie van %qD"
@@ -55764,44 +55772,44 @@ msgstr "%Jherdefinitie van %qD"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "sectie van %qs geeft een conflict met een eerdere declaratie"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "herdefinitie van %q#D"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "%qD botst met gebruikte functie"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q#D is niet gedeclareerd in class"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -55809,2512 +55817,2512 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, fuzzy, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "%Jdeclaratie van %qD als thread-local volgt declaratie als niet-thread-local"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, fuzzy, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "%Jdeclaratie van %qD als niet-thread-local volgt declaratie als thread-local"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "herdeclaratie van %qs"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "overbodige herdeclaratie van %qs in zelfde bereik"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, fuzzy, gcc-internal-format
 msgid "previous label"
 msgstr "eerdere declaratie van %qs"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, fuzzy, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "herhaald label %qs"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr ""
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, fuzzy, gcc-internal-format
 msgid "  from here"
 msgstr "van hieruit opgeroepen"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr ""
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr ""
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr "ongeldige operand van %s"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr ""
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 msgid "  enters statement expression"
 msgstr "overflow in constante expressie"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 msgid "  does not destroy %qD"
 msgstr "%s ondersteunt %s niet"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr ""
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 msgid "%qD used without template arguments"
 msgstr "macro %qs gebruikt zonder argumenten"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 msgid "%qD is a function, not a type"
 msgstr "%qs is geen iterator"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%qs is geen iterator"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr ""
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr ""
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, fuzzy, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, fuzzy, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%qs is smaller dan waarden van zijn type"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%qs is geen iterator"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "niet-beëindigde parameterlijst in %<#define%>"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "-pipe wordt niet ondersteund"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, fuzzy, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "ongeldig gebruik van onvolledige typedef %qs"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 msgid "anonymous struct with base classes"
 msgstr "anonieme %s gedeclareerd binnen parameterlijst"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "eerdere declaratie van %qs"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr ""
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr ""
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "herdeclaratie van %qs"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, fuzzy, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "nutteloos sleutelwoord of typenaam in lege declaratie"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr ""
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, fuzzy, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, fuzzy, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, fuzzy, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, fuzzy, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, fuzzy, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, fuzzy, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "type krijgt standaardwaarde %<int%> in de declaratie van %qs"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "%<register%> in lege declaratie op bestandsniveau"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "herhaalde definitie %qs"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr ""
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr ""
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr ""
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD krijgt beginwaarde (gebruik beter __typeof__)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "de declaratie van %qs is %<extern%> en heeft een beginwaarde"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, fuzzy, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "functie-definitie als %<auto%> gedeclareerd"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%qs is geen static veld"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "herdeclaratie van %qs"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "herhaalde label-declaratie %qs"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, fuzzy, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "dubbele beginwaarde"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "de zwakke declaratie van %qs moet aan de definitie voorafgaan"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, fuzzy, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "variabele %qs heeft beginwaarde, maar een onvolledig type"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, fuzzy, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "elementen van array %qs hebben een onvolledig type"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, fuzzy, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "parameter %qs heeft een onvolledig type"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qs als ander soort symbool geherdeclareerd"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, fuzzy, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "ISO C++ staat het gebruik van %<varargs.h%> niet toe"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, fuzzy, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "beginwaarde legt grootte van %qs niet vast"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, fuzzy, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "array-grootte ontbreekt in %qs"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, fuzzy, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "array %qs heeft grootte die negatief of 0 is"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, fuzzy, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "opslaggrootte van %qs is onbekend"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, fuzzy, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "opslaggrootte van %qs is niet constant"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr ""
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized const %qD"
 msgid "uninitialized %<const %D%>"
 msgstr "ongeïnitialiseerde const %qD"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr ""
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr ""
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr ""
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr ""
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr ""
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "grootte van %qs is %u bytes"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, fuzzy, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "union heeft geen lid dat %qs heet"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "ongeldige beginwaarde"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr ""
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, fuzzy, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "ongeldige beginwaarde voor veld %qs"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, fuzzy, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "accolades rond scalaire beginwaarde"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "accolades rond scalaire beginwaarde"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, fuzzy, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "accolades ontbreken rond beginwaarde"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "veld %qs heeft een onvolledig type"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, fuzzy, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "elementen van array %qs hebben een onvolledig type"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, fuzzy, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "ISO C90 verbiedt het gebruik van samengestelde expressies als lvalues"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "%qs heeft een onvolledig type"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, fuzzy, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "overtollige elementen in beginwaarde van union"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr ""
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr ""
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr ""
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, fuzzy, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr ""
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "%qs is hier niet gedeclareerd (eerste gebruik in deze functie)"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr "%qs staat niet aan het begin van een declaratie"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr "te weinig argumenten voor functie %qs"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr "%Jherdeclaratie van enum %qD"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr ""
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, fuzzy, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++ staat het gebruik van %<varargs.h%> niet toe"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, fuzzy, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr "opslagklasse opgegeven voor parameter %qs"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "de declaratie van %qs is %<extern%> en heeft een beginwaarde"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, fuzzy, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "type van teruggeefwaarde is onvolledig"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "variable concept has no initializer"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, fuzzy, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "eerdere declaratie van %qs"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, fuzzy, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "typedef %qs krijgt beginwaarde alsof het een variabele is"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr ""
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "dereferentie van pointer naar onvolledig type"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "ISO C90 verbiedt array %qs van variabele grootte"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] "opslagklasse opgegeven voor structure-veld %qs"
 msgstr[1] "opslagklasse opgegeven voor structure-veld %qs"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, fuzzy, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr "dubbele beginwaarde"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "herhaald lid %qs"
 
 # Betere vertaling voor 'decompose'?
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "cannot decompose address"
 msgid "cannot decompose lambda closure type %qT"
 msgstr "kan adres niet ontleden"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "teruggeeftype is onvolledig"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "ongeldig gebruik van onvolledige typedef %qs"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr ""
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, fuzzy, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "beginwaarde legt grootte van %qs niet vast"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "array-grootte ontbreekt in %qs"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "array %qs heeft grootte die negatief of 0 is"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr ""
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr ""
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr ""
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, fuzzy, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "veld %qs als een functie gedeclareerd"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, fuzzy, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%qs gedeclareerd als een functie die een functie teruggeeft"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, fuzzy, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, fuzzy, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "%J%qD als niet-parameter gedeclareerd"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr "%Jparameter %qD als void gedeclareerd"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr ""
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "%Jfunctiedefinitie in oude stijl"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 #| msgid "function return type cannot be function"
 msgid "a function concept cannot be constrained"
 msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 msgid "constraints on a non-templated function"
 msgstr "%qs is meestal een functie"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, gcc-internal-format
 msgid "constrained non-template friend declaration must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, fuzzy, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, fuzzy, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "de zwakke declaratie van %qs moet aan de definitie voorafgaan"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr ""
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, fuzzy, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, fuzzy, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 msgid "explicit object parameter declared here"
 msgstr "parameter %qs als void gedeclareerd"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr ""
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr ""
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, fuzzy, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr "conflicterende declaraties van %qs"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, fuzzy, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "Ongeldige optie %qs"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr ""
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, fuzzy, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "functie-definitie als %<auto%> gedeclareerd"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, fuzzy, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "functie-definitie als %<auto%> gedeclareerd"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "%qs tevoren hier gedefinieerd"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, fuzzy, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr "de declaratie van %qs is %<extern%> en heeft een beginwaarde"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 msgid "a variable concept cannot be constrained"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, fuzzy, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, fuzzy, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, fuzzy, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, fuzzy, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, fuzzy, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, fuzzy, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C++ verbiedt array %qs met lengte 0"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ verbiedt array %qs met lengte 0"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ verbiedt array %qs van variabele lengte"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++ verbiedt array %qs van variabele lengte"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr ""
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr ""
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr ""
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr ""
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 msgid "creating array of template placeholder type %qT"
 msgstr "herhaald lid %qs"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "%qs wordt gedeclareerd als een array van voids"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, fuzzy, gcc-internal-format
 msgid "creating array of void"
 msgstr "doorgeven van argument %d van %qs"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, fuzzy, gcc-internal-format
 msgid "creating array of functions"
 msgstr "doorgeven van argument %d van %qs"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, fuzzy, gcc-internal-format
 msgid "creating array of references"
 msgstr "doorgeven van argument %d van %qs"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, fuzzy, gcc-internal-format
 msgid "creating array of function members"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 msgid "variable-length array of %<auto%>"
 msgstr "ISO C90 verbiedt array %qs van variabele grootte"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr ""
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr ""
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, fuzzy, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "registernaam niet opgegeven voor %qs"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr ""
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr "registernaam niet opgegeven voor %qs"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, fuzzy, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "meerdere opslagklassen in declaratie van %qs"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "conflicterende declaraties van %qs"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr ""
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr ""
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "structure heeft geen lid dat %qs heet"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "ongeldig gebruik van %<restrict%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "ongeldig gebruik van het niet gedefinieerde type %<%s %s%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "ongeldig gebruik van het niet gedefinieerde type %<%s %s%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a class or namespace"
 msgstr "%qs is geen iterator"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qE as non-function"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qE as non-member"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr ""
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, fuzzy, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "functie-definitie als %<register%> gedeclareerd"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "herdeclaratie van %qs"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "de declaratie van %qs verbergt een parameter"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr ""
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%qs staat niet aan het begin van een declaratie"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, fuzzy, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "twee of meer data types in de declaratie van %qs"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C ondersteunt gewone %<complex%> niet in de betekenis van %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ verbiedt lid-declaraties zonder leden"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "__builtin_saveregs wordt niet ondersteund door dit doelsysteem"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ ondersteunt %<long long%> niet"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "zowel 'signed' als 'unsigned' opgegeven voor %qs"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr "zowel 'long' als 'short' opgegeven voor %qs"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr "%<__thread%> samen met %s gebruikt"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr "opslagklasse opgegeven voor parameter %qs"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "%<__thread%> samen met %<typedef%> gebruikt"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr "%<__thread%> samen met %<typedef%> gebruikt"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, fuzzy, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "'complex' ongeldig voor %qs"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, fuzzy, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "opslagklasse opgegeven voor parameter %qs"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "opslagklasse opgegeven voor parameter %qs"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, fuzzy, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "eerdere declaratie van %qs"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "eerdere declaratie van %qs"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr ""
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, fuzzy, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "meerdere opslagklassen in declaratie van %qs"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, fuzzy, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "opslagklasse opgegeven voor parameter %qs"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, fuzzy, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "top-level declaratie van %qs specifieert %<auto%>"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr ""
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr ""
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, gcc-internal-format
 msgid "attribute ignored"
 msgstr "attribuut wordt genegeerd"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "meerdere opslagklassen in declaratie van %qs"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, gcc-internal-format
 msgid "remove parentheses"
 msgstr ""
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr ""
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr ""
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr ""
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr "functiedefinitie heeft een gekwalificeerde %<void%> als teruggeeftype"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "ongeldig gebruik van %<restrict%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "deduced class type %qD in function return type"
 msgstr "typekwalificaties op teruggeeftypes van functies worden genegeerd"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, fuzzy, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr "functiedefinitie heeft een gekwalificeerde %<void%> als teruggeeftype"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs gedeclareerd als een functie die een functie teruggeeft"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs gedeclareerd als een functie die een array teruggeeft"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, fuzzy, gcc-internal-format
 #| msgid "%<noreturn%> function returns non-void value"
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "%<noreturn%> functie geeft niet-void waarde terug"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr ""
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, fuzzy, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, fuzzy, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "structure heeft geen lid dat %qs heet"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, fuzzy, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "structure heeft geen lid dat %qs heet"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, fuzzy, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr "structure heeft geen lid dat %qs heet"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr "structure heeft geen lid dat %qs heet"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr ""
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr ""
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr ""
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "kan niet derefereren, is geen pointer."
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "kan niet derefereren, is geen pointer."
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr ""
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, fuzzy, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "parameter %qs heeft enkel een voorwaartse declaratie"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr ""
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr ""
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "kan niet derefereren, is geen pointer."
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "kan niet derefereren, is geen pointer."
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, fuzzy, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "kan niet derefereren, is geen pointer."
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, fuzzy, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, fuzzy, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "argument %d is alleen-lezen"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, fuzzy, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "argument %d is alleen-lezen"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> in empty declaration"
 msgid "%<explicit%> in friend declaration"
 msgstr "%<inline%> bij lege declaratie"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr ""
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, fuzzy, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, fuzzy, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, fuzzy, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, fuzzy, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%qs staat niet aan het begin van een declaratie"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, fuzzy, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "%Jtypedef %qD als %<inline%> gedeclareerd"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr ""
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr ""
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "POS mag niet opgegeven worden voor een lijst van veld-declaraties"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, fuzzy, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "niet-beëindigde parameterlijst in %<#define%>"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr ""
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr ""
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, fuzzy, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "%s laat qualifiers van doeltype van pointer vallen"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, fuzzy, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "de declaratie van %qs verbergt een globale declaratie"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "dubbele beginwaarde"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, fuzzy, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "attributen genegeerd in declarator van parameter-array"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "cast geeft functie-type op"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, fuzzy, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "%Jparameter %qD als %<inline%> gedeclareerd"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, fuzzy, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C++ verbiedt array %qs met lengte 0"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C90 ondersteunt geen flexibele array-leden"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "ongeldig gebruik van %<restrict%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "veld %qs als een functie gedeclareerd"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, fuzzy, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "eerdere impliciete declaratie van `%s'"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "de declaratie van %qs verbergt een parameter"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr "In functie %qs"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, fuzzy, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "eerdere impliciete declaratie van `%s'"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, fuzzy, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be %qs"
 msgstr "open %s"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr "herdeclaratie van %<enum %s%>"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 msgid "variable template declared here"
 msgstr "variabele of veld %qs als void gedeclareerd"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "veld %qs heeft een onvolledig type"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, fuzzy, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "parameter %qs heeft een onvolledig type"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, fuzzy, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qs mag niet als alleen-lezen gedeclareerd worden"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "%qs mag niet als alleen-lezen gedeclareerd worden"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "%qs is geen static veld"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, fuzzy, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, fuzzy, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, fuzzy, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "argument-formaat opgegeven voor niet-functie %qs"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, fuzzy, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, fuzzy, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr ""
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr ""
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr ""
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr ""
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, fuzzy, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr ""
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "de zwakke declaratie van %qs moet aan de definitie voorafgaan"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs krijgt beginwaarde en is als %<extern%> gedeclareerd"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs heeft zowel %<extern%> als een beginwaarde"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "ongeldig type-argument %qs"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "ongeldig type-argument %qs"
 
 # Of is 'verbiedt parameterdeclaraties op voorhand' beter?
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "ISO C verbiedt voorwaartse declaraties van parameters"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "attributen genegeerd in declarator van parameter-array"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr ""
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "parameter %qs als void gedeclareerd"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr ""
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, fuzzy, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, fuzzy, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a non-static member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, fuzzy, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr ""
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr ""
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, fuzzy, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 msgid "%qD must have no arguments"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "%s laat qualifiers van doeltype van pointer vallen"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr ""
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr ""
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr ""
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr ""
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr ""
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, fuzzy, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "beginwaarde ontbreekt"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, fuzzy, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "dit is een eerdere declaratie"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr ""
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "dit is een eerdere declaratie"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr ""
@@ -58326,115 +58334,100 @@ msgstr ""
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, fuzzy, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, fuzzy, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "grootte van %qs is %u bytes"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 msgid "class template %qD redeclared as non-template"
 msgstr "parameter %qs heeft enkel een voorwaartse declaratie"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr ""
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qs is geen iterator"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, fuzzy, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "sectie van %qs geeft een conflict met een eerdere declaratie"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "ingebouwde functie %qs als niet-functie gedeclareerd"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-msgid "cannot declare %qD in a different module"
-msgstr "cast geeft functie-type op"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, fuzzy, gcc-internal-format
-msgid "previously declared here"
-msgstr "%Jeerder hier gebruikt"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, fuzzy, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "overtollige elementen in beginwaarde van union"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr ""
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, fuzzy, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, fuzzy, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "%qs is geen typedef of ingebouwd type"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr ""
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, fuzzy, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "herhaalde case-waarde"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-msgid "cannot declare %qD in different module"
-msgstr "kan niet derefereren, is geen pointer."
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, fuzzy, gcc-internal-format
 msgid "previous definition here"
 msgstr "eerdere definitie van %qs"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr "grootte van array %qs is van een niet-integer type"
@@ -58443,83 +58436,83 @@ msgstr "grootte van array %qs is van een niet-integer type"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr ""
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "enumeratiewaarde voor %qE is geen integerconstante"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "enumeratiewaarde voor %qE is geen integerconstante"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, fuzzy, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "ISO C beperkt enumeratiewaarden tot het bereik van het %<int%> type"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "ISO C beperkt enumeratiewaarden tot het bereik van het %<int%> type"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, fuzzy, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "overflow in enumeratiewaarden"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant"
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "enumeratiewaarde voor %qE is geen integerconstante"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, fuzzy, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "herdefinitie van %qs"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, fuzzy, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "type van teruggeefwaarde is onvolledig"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr ""
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "%<return%> zonder waarde in een functie die een niet-void waarde teruggeeft"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, fuzzy, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "de terugkeerwaarde van een functie kan geen funtie zijn"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "%<return%> zonder waarde in een functie die een niet-void waarde teruggeeft"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, fuzzy, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "kan klasse '%s' niet vinden"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 msgid "using %qs"
 msgstr "%J%s %<%c%s%>"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr ""
@@ -58574,7 +58567,7 @@ msgstr ""
 msgid "deleting %qT is undefined"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, fuzzy, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "herdeclaratie van %qs"
@@ -58584,7 +58577,7 @@ msgstr "herdeclaratie van %qs"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "niet-beëindigde parameterlijst in %<#define%>"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, fuzzy, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "%<%s %s%> binnen parameterlijst gedeclareerd"
@@ -58769,64 +58762,64 @@ msgstr ""
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr ""
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr ""
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr ""
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "label %qs gebruikt maar niet gedefinieerd"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr "label %qs gebruikt maar niet gedefinieerd"
@@ -58835,104 +58828,104 @@ msgstr "label %qs gebruikt maar niet gedefinieerd"
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "eerdere declaratie van %qs"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "eerdere declaratie van %qs"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr ""
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "label %qs gebruikt maar niet gedefinieerd"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "label %qs gebruikt maar niet gedefinieerd"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, fuzzy, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "eerdere declaratie van %qs"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "sectie van %qs geeft een conflict met een eerdere declaratie"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr "eerdere declaratie van %qs"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr "label %qs gebruikt maar niet gedefinieerd"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "parameternaam ontbreekt uit parameterlijst"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, fuzzy, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr ""
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, fuzzy, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "kan functie %<main%> niet inline maken"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr ""
@@ -59038,7 +59031,7 @@ msgstr "grootte van %qs is %u bytes"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qs is geen bestand, pipe of tty"
@@ -59048,7 +59041,7 @@ msgstr "%qs is geen bestand, pipe of tty"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qs is geen bestand, pipe of tty"
@@ -59073,47 +59066,47 @@ msgstr ""
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr ""
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr ""
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "cast geeft functie-type op"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr ""
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, fuzzy, gcc-internal-format
 msgid "for type %qT"
 msgstr "%s voor %qs"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr ""
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -59380,12 +59373,12 @@ msgstr "%qs is geen bestand, pipe of tty"
 msgid "type %qT is not a direct base of %qT"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr ""
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qs is geen iterator"
@@ -59400,12 +59393,12 @@ msgstr ""
 msgid "invalid pointer to bit-field %qD"
 msgstr "bitveld %qs heeft een negatieve breedte"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "ongeldig gebruik van onvolledige typedef %qs"
@@ -59600,52 +59593,52 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr ""
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr ""
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, fuzzy, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "kan niet derefereren, is geen pointer."
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "ongeldig gebruik van onvolledige typedef %qs"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, fuzzy, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
@@ -60021,229 +60014,274 @@ msgstr "herdeclaratie van %qs"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 msgid "conflicting global module declaration %#qD"
 msgstr "conflicterende declaraties van %qs"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 msgid "existing declaration %#qD"
 msgstr "herdeclaratie van %qs"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr "externe declaratie van %qs komt niet overeen met de globale declaratie"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 msgid "existing definition %qD"
 msgstr "beginwaarde ontbreekt"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 msgid "... this enumerator %qD"
 msgstr "%Jherdeclaratie van enum %qD"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "externe declaratie van %qs komt niet overeen met de globale declaratie"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 msgid "module %qs declared here"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr "herdefinitie van %qs"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr ""
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr "kan bestand '%s' niet openen"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiled module is %sversion %s"
 msgstr "collect2 versie %s\n"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2 versie %s\n"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 msgid "module %qs found"
 msgstr "veld %qs niet gevonden"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr ""
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr ""
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 msgid "interface partition is not exported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr ""
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to open %s"
 msgid "failed to read compiled module: %s"
 msgstr "kan %s niet openen"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr "conflicterende declaraties van %qs"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "sectie van %qs geeft een conflict met een eerdere declaratie"
+
+#: cp/module.cc:19125
+#, fuzzy, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr "%Jsectie van %qD geeft een conflict met een eerdere declaratie"
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "conflicterende declaraties van %qs"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in global module"
+msgstr "conflicterende declaraties van %qs"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+msgid "previously declared in module %qs"
+msgstr "%Jeerder hier gebruikt"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+msgid "previously declared in global module"
+msgstr "%Jeerder hier gebruikt"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 #| msgid "Creating '%s'\n"
 msgid "reading CMI %qs"
 msgstr "Aanmaken van '%s'\n"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, fuzzy, gcc-internal-format
 #| msgid "failed to open %s"
 msgid "failed to load binding %<%E%s%E%>"
 msgstr "kan %s niet openen"
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, fuzzy, gcc-internal-format
 #| msgid "failed to open %s"
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr "kan %s niet openen"
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr ""
@@ -60255,396 +60293,396 @@ msgstr ""
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 msgid "module already declared"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, fuzzy, gcc-internal-format
 msgid "module already imported"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, fuzzy, gcc-internal-format
 msgid "module %qs imported here"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr ""
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
 # of "preprocessing" behouden?
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 #| msgid "Enable traditional preprocessing"
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "Schakel traditionele voorverwerking in"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr ""
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 msgid "invalid header name %qs"
 msgstr "ongeldige macronaam %<%.*s%>"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 #| msgid "invalid pointer mode %qs"
 msgid "invalid module name %qs"
 msgstr "%qs is geen geldige pointer-modus"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 msgid "writing CMI %qs"
 msgstr "#error %s"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 msgid "not writing module %qs due to errors"
 msgstr "%s:fout bij schrijven van uitvoerbestand '%s'\n"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr "kon exit-status niet ophalen"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr "onbekende 'unspec' relocatie"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr ""
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "macro %qs gebruikt zonder argumenten"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "sectie van %qs geeft een conflict met een eerdere declaratie"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr "%d constructor(s) gevonden\n"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "conflicterende declaraties van %qs"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, fuzzy, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "%qs gedeclareerd als een functie die een functie teruggeeft"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "parameter %qs als void gedeclareerd"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "de declaratie van %qs verbergt een parameter"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "de declaratie van %qs verbergt een parameter"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "%Jsectie van %qD geeft een conflict met een eerdere declaratie"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%J%s %<%c%s%>"
 
 # XXX FIXME:  useless gettextization
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s%s\n"
 msgid "%s %s %p %d"
 msgstr "%s %s%s\n"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr "%qs als ander soort symbool geherdeclareerd"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 msgid "%<%T%s%D%> names destructor"
 msgstr "%qs is geen iterator"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr ""
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qs is geen iterator"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a direct base of %qT"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr "conflicterende declaraties van %qs"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, fuzzy, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%d constructor(s) gevonden\n"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, fuzzy, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "eerdere impliciete declaratie van `%s'"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr "veld %qs als een functie gedeclareerd"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, fuzzy, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr ""
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "attribuut-commando %qD wordt genegeerd"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, fuzzy, gcc-internal-format
 msgid "  %qE"
 msgstr "%s voor %qs"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 msgid "it was later defined here"
 msgstr "%qs tevoren hier gedefinieerd"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr ""
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 msgid "%<strong%> using directive no longer supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr "%<%.*s%> is niet gedefinieerd"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "grootte van %qs is %u bytes"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, fuzzy, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "%qs staat niet aan het begin van een declaratie"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 msgid "%qD defined here"
 msgstr "label %qs gedefinieerd maar niet gebruikt"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 #| msgid "%qD conflicts with used function"
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "%qD botst met gebruikte functie"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr "eerdere definitie van %qs"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr ""
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr ""
@@ -60669,7 +60707,7 @@ msgstr ""
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr "globale registervariabele volgt op een functiedefinitie"
@@ -60915,7 +60953,7 @@ msgstr ""
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
@@ -61097,7 +61135,7 @@ msgstr "accolade-groep in expressie enkel toegestaan binnen een functie"
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, fuzzy, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "ongeldige waarheidsexpressie"
@@ -61152,7 +61190,7 @@ msgstr ""
 msgid "template-id not allowed for destructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -61172,7 +61210,7 @@ msgstr "parameter %qs heeft enkel een voorwaartse declaratie"
 msgid "expected unqualified-id"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qs is geen iterator"
@@ -61222,7 +61260,7 @@ msgstr "types in voorwaardelijke expressie komen niet overeen"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "te weinig argumenten voor functie %<va_start%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "te weinig argumenten voor functie %<va_start%>"
@@ -61257,7 +61295,7 @@ msgstr "types in voorwaardelijke expressie komen niet overeen"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "ongeldig gebruik van %<restrict%>"
@@ -61282,7 +61320,7 @@ msgstr "ISO C++ staat het gebruik van %<varargs.h%> niet toe"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "types in voorwaardelijke expressie komen niet overeen"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr "types in voorwaardelijke expressie komen niet overeen"
@@ -61432,8 +61470,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr "%s van alleen-lezen variabele %qs"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%qs tevoren hier gedeclareerd"
@@ -61473,7 +61511,7 @@ msgstr "argumenten aan macro %qs gegeven"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -61598,7 +61636,7 @@ msgstr "ongeldige lvalue in asm-statement"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, fuzzy, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "herdeclaratie van %qs"
@@ -61661,7 +61699,7 @@ msgstr "expressie-statement heeft onvolledig type"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr ""
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, fuzzy, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "herdeclaratie van %qs"
@@ -61687,7 +61725,7 @@ msgstr ""
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ verbiedt geneste functies"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, fuzzy, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "ongeldige beginwaarde"
@@ -61971,12 +62009,12 @@ msgstr ""
 msgid "cannot expand initializer for member %qD"
 msgstr "ongeldige beginwaarde voor member %qs"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, fuzzy, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "%Jdeclaratie van %qD als static volgt declaratie als niet-static"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr ""
@@ -62620,7 +62658,7 @@ msgstr "eerste argument van %qs zou een %<int%> moeten zijn"
 msgid "%qT not permitted in template argument"
 msgstr "%qs is geen iterator"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT"
@@ -62799,12 +62837,12 @@ msgstr "eerdere definitie van %qs"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, fuzzy, gcc-internal-format
 msgid "expected class-key"
 msgstr "ongeldige operand van %s"
@@ -63007,38 +63045,38 @@ msgstr ""
 msgid "expression must be enclosed in parentheses"
 msgstr "%qs is geen iterator"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 #| msgid "requested position is not an integer constant"
 msgid "result type is not a plain type-constraint"
 msgstr "gevraagde positie is geen integerconstante"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr "gevraagd alignment is geen constante"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, fuzzy, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "herdeclaratie van %qs"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, fuzzy, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "twee of meer data types in de declaratie van %qs"
@@ -63047,438 +63085,438 @@ msgstr "twee of meer data types in de declaratie van %qs"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, fuzzy, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "meerdere opslagklassen in declaratie van %qs"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, fuzzy, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr ""
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, fuzzy, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "herdeclaratie van %<enum %s%>"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr ""
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, fuzzy, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "ongeldige linker operand van %s"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, fuzzy, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "herdeclaratie van %qs"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, fuzzy, gcc-internal-format
 #| msgid "declaration does not declare anything"
 msgid "a class template declaration must not declare anything else"
 msgstr "declaratie declareert niets"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, fuzzy, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, fuzzy, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%qs is geen iterator"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr ""
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "%qs is geen iterator"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "ongeldige linker operand van %s"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr "herhaalde case-waarde"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr "conflicterende types voor %qs"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, fuzzy, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> vóór %<extern%> gebruikt"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, fuzzy, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%<__thread%> samen met %<typedef%> gebruikt"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ ondersteunt %<long long%> niet"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, fuzzy, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "zowel %<short%> als %<char%> opgegeven bij declaratie"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "herhaalde %qs"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "herhaalde %qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, fuzzy, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, fuzzy, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, fuzzy, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, fuzzy, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, fuzzy, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "ongeldige beginwaarde"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, fuzzy, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, fuzzy, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, fuzzy, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, fuzzy, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, fuzzy, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, fuzzy, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, fuzzy, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, fuzzy, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, fuzzy, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, fuzzy, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, fuzzy, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, fuzzy, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, fuzzy, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, fuzzy, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr ""
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, fuzzy, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, fuzzy, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, fuzzy, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, fuzzy, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, fuzzy, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, fuzzy, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, fuzzy, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "Ongeldige optie %qs"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, fuzzy, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "dit is een eerdere declaratie"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "kan niet derefereren, is geen pointer."
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr ""
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr "label %qs gedefinieerd maar niet gebruikt"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, fuzzy, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qs als ander soort symbool geherdeclareerd"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr ""
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, fuzzy, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "ongeldig type-argument %qs"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr ""
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr "meerdere opslagklassen in declaratie van %qs"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr ""
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr ""
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr "meerdere opslagklassen in declaratie van %qs"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr ""
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr ""
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr ""
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "prefix-attributen worden genegeerd vóór %<@%D%>"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, fuzzy, gcc-internal-format
 msgid "invalid type for property"
 msgstr "ongeldige operand voor 'p' modifier"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, fuzzy, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr "onbekende machine-modus %qs"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 msgid "expected integer expression list"
 msgstr "ongeldige waarheidsexpressie"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, fuzzy, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "ongeldige operand van %s"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "ongeldige beginwaarde"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr "%qs is geen iterator"
@@ -63487,12 +63525,12 @@ msgstr "%qs is geen iterator"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
@@ -63502,134 +63540,134 @@ msgstr ""
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr ""
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, fuzzy, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "registervariabele %qs gebruikt in geneste functie"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr ""
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "ongeldige beginwaarde"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "ongeldige waarheidsexpressie"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr ""
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qs is meestal een functie"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "misvormde #pragma weak"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr ""
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr ""
 
 # 'braced-group'? Wie schrijft verdorie die foutmeldingen?
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "accolade-groep in expressie enkel toegestaan binnen een functie"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr ""
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr ""
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -63659,7 +63697,7 @@ msgstr ""
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "de declaratie van %qs is %<extern%> en heeft een beginwaarde"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, fuzzy, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "de declaratie van %qs is %<extern%> en heeft een beginwaarde"
@@ -63674,172 +63712,172 @@ msgstr "herdefinitie van %qs"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, fuzzy, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "herdeclaratie van %<enum %s%>"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, fuzzy, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "de declaratie van %qs is %<extern%> en heeft een beginwaarde"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 msgid "from definition of %q#D"
 msgstr "herdefinitie van %qs"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, fuzzy, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "de declaratie van %qs is %<extern%> en heeft een beginwaarde"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, fuzzy, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, fuzzy, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "de declaratie van %qs is %<extern%> en heeft een beginwaarde"
 
 # XXX FIXME:  useless gettextization
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 #| msgid "%s %qs"
 msgid "%s %#qD"
 msgstr "%s %qs"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr ""
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr ""
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr ""
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "impliciete declaratie van functie %qs"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "%qs wordt gedeclareerd als een array van functies"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "misvormde #pragma pack"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "ontbrekende witruimte na getal %qs"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 msgid "template-id %qE in declaration of primary template"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, fuzzy, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "meerdere opslagklassen in declaratie van %qs"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "twee of meer data types in de declaratie van %qs"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr ""
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qs is meestal een functie"
@@ -63852,154 +63890,154 @@ msgstr "%qs is meestal een functie"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, fuzzy, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "%qs impliciet als functie gedeclareerd"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, fuzzy, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "%Jsectie van %qD geeft een conflict met een eerdere declaratie"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 msgid "friend declaration here"
 msgstr "eerdere declaratie van %qs"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, fuzzy, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, fuzzy, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr ""
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr ""
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr "<anoniem>"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "de declaratie van %qs verbergt een parameter"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "de declaratie van %qs verbergt een parameter"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr "parameter %qs als void gedeclareerd"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "herdeclaratie van %<enum %s%>"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "niet-beëindigde parameterlijst in %<#define%>"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, fuzzy, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr ""
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 msgid "too many arguments for partial specialization %qT"
 msgstr "te veel argumenten voor functie %qE"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, fuzzy, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 msgid "primary template %qD"
 msgstr "herhaald label %qs"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, fuzzy, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "argument %d is alleen-lezen"
 msgstr[1] "argument %d is alleen-lezen"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "herhaalde definitie %qs"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "de declaratie van %qs is %<extern%> en heeft een beginwaarde"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, fuzzy, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "ongeldig type-argument %qs"
@@ -64008,47 +64046,47 @@ msgstr "ongeldig type-argument %qs"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "macro %qs gebruikt zonder argumenten"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr ""
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "argumenten aan macro %qs gegeven"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "argumenten aan macro %qs gegeven"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr ""
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, fuzzy, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "eerste argument van %qs zou een %<int%> moeten zijn"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 msgid "template %qD declared"
 msgstr "parameter %qs als void gedeclareerd"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr ""
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, fuzzy, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
@@ -64058,509 +64096,509 @@ msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, fuzzy, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "herhaalde label-declaratie %qs"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, fuzzy, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "herdefinitie van %<union %s%>"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, fuzzy, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, fuzzy, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, fuzzy, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr ""
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, fuzzy, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "niet-beëindigde parameterlijst in %<#define%>"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, fuzzy, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "ongeldige linker operand van %s"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "ingebouwde functie %qs als niet-functie gedeclareerd"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, fuzzy, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "twee of meer data types in de declaratie van %qs"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] "macro %qs gebruikt zonder argumenten"
 msgstr[1] "macro %qs gebruikt zonder argumenten"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "eerdere declaratie van %qs"
 msgstr[1] "eerdere declaratie van %qs"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, fuzzy, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, fuzzy, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "ongeldige naam %qs"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 msgid "redeclared here"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "%Jherdefinitie van typedef %qD"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "functie-definitie als %<typdef%> gedeclareerd"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "ingebouwde functie %qs als niet-functie gedeclareerd"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr ""
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr ""
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, fuzzy, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "%qs neemt ofwel geen, ofwel twee argumenten"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "niet-beëindigde parameterlijst in %<#define%>"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, fuzzy, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "-fPIC is niet geldig met -mcoff"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr ""
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr ""
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, fuzzy, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, fuzzy, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, fuzzy, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, fuzzy, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "iterator %qs is van een afgeleid type"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "niet-beëindigde parameterlijst in %<#define%>"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, fuzzy, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr ""
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "eerste argument van %qs zou een %<int%> moeten zijn"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "niet-beëindigde parameterlijst in %<#define%>"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr ""
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr ""
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "ongeldige beginwaarde voor member %qs"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr ""
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, fuzzy, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, fuzzy, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "eerste argument van %qs zou een %<int%> moeten zijn"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr ""
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr ""
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr ""
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, fuzzy, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "meerdere parameters hebben de naam %qs"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr "eerste argument van %qs zou een %<int%> moeten zijn"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "argument %d is alleen-lezen"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr ""
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d or more)"
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "verkeerd aantal sjabloonargumenten (%d, moet %d of meer zijn)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, fuzzy, gcc-internal-format
 #| msgid "provided for %q+D"
 msgid "provided for %qD"
 msgstr "gegeven voor %q+D"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, fuzzy, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "argumenten aan macro %qs gegeven"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%q#D is geen functiesjabloon"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, fuzzy, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "parameter %qs heeft enkel een voorwaartse declaratie"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, fuzzy, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "lege declaratie"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 msgid "template constraint failure for %qD"
 msgstr "herdeclaratie van %qs"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, fuzzy, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "%Jflexibel array-lid in union"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qs staat niet aan het begin van een declaratie"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr ""
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr ""
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "herdefinitie van %<struct %s%>"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "pointer naar lid-functie gebruikt in rekensom"
 
 # Betere term voor "mismatched"?
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "mismatched arguments"
 msgid "mismatched argument pack lengths (%d vs %d)"
@@ -64579,305 +64617,305 @@ msgstr "slechte combinatie van argumenten"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, fuzzy, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "variabele %qs als inline gedeclareerd"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, fuzzy, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "ongeldige operand voor %p-code"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, fuzzy, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "herdeclaratie van %qs"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, fuzzy, gcc-internal-format
 msgid "function returning an array"
 msgstr "%qs gedeclareerd als een functie die een array teruggeeft"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, fuzzy, gcc-internal-format
 msgid "function returning a function"
 msgstr "%qs gedeclareerd als een functie die een functie teruggeeft"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr ""
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "herhaald lid %qs"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, fuzzy, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "herhaald lid %qs"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "%s laat qualifiers van doeltype van pointer vallen"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "%s laat qualifiers van doeltype van pointer vallen"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "herhaald lid %qs"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "herhaald lid %qs"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, fuzzy, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "herhaald lid %qs"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, fuzzy, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "doorgeven van argument %d van %qs"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr ""
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qs is smaller dan waarden van zijn type"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, fuzzy, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, fuzzy, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "argument %qs komt niet overeen met prototype"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr ""
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr ""
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, fuzzy, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr ""
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr ""
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, fuzzy, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%J%qD als inline gedeclareerd na zijn definitie"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "te weinig argumenten voor functie %<va_start%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qE attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "verkeerd aantal argumenten opgegeven voor attribuut %qE"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, fuzzy, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "ontbrekende witruimte na getal %qs"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "%qs is smaller dan waarden van zijn type"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, fuzzy, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "eerste argument van %qs zou een %<int%> moeten zijn"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, fuzzy, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "argument %d is alleen-lezen"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, fuzzy, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr ""
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "herhaalde definitie %qs"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "herhaalde definitie %qs"
 
 # XXX FIXME:  useless gettextization
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 #| msgid "%s %qs"
 msgid "%s %#qS"
 msgstr "%s %qs"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of function concept %q#D"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qs is geen static veld"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr ""
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, fuzzy, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "eerdere impliciete declaratie van %qs"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, fuzzy, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "herhaalde definitie %qs"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "pointer naar functie gebruikt in aftrekking"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, fuzzy, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "herhaalde definitie %qs"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "impliciete declaratie van functie %qs"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "pointer naar functie gebruikt in aftrekking"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, fuzzy, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "herhaalde definitie %qs"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr "impliciete declaratie van functie %qs"
@@ -64889,165 +64927,165 @@ msgstr "impliciete declaratie van functie %qs"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "eerdere impliciete declaratie van %qs"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr ""
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, fuzzy, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "%qs staat niet aan het begin van een declaratie"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be constrained"
 msgstr "niet-beëindigde parameterlijst in %<#define%>"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr "de declaratie van %qs verbergt een symbool uit de parameterlijst"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr ""
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr "macro %qs gebruikt zonder argumenten"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 msgid "use %qD directly instead"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, fuzzy, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "%qs is geen iterator"
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "argument %d is alleen-lezen"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 #| msgid "function not considered for inlining"
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "functie wordt niet als kandidaat voor inlining beschouwd"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "%Jeerder hier gebruikt"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr ""
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, fuzzy, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "kan %qs niet nabootsen"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not constant"
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "beginwaarde-element is niet constant"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr ""
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr ""
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "ongeldig type-argument %qs"
@@ -65253,636 +65291,636 @@ msgstr "type van parameter %qs is niet gedeclareerd"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "initiële declaratie voor %<for%> lus gebruikt buiten C99 modus"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
 # Betere term voor "mismatched"?
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched arguments"
 msgid "%qE missing template arguments"
 msgstr "slechte combinatie van argumenten"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 msgid "cannot call a concept as a function"
 msgstr "veld %qs als een functie gedeclareerd"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr ""
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr ""
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr ""
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, fuzzy, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> before it is valid"
 msgstr "ongeldig gebruik van %<this%> op hoogste niveau"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> after it is valid"
 msgstr "ongeldig gebruik van %<this%> op hoogste niveau"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "%s laat qualifiers van doeltype van pointer vallen"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "ongeldig gebruik van %<this%> op hoogste niveau"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, fuzzy, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "%s laat qualifiers van doeltype van pointer vallen"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, fuzzy, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%<%c%> optie gebruikt bij type %<%c%>"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr ""
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr ""
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr ""
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr ""
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr ""
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, fuzzy, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "de declaratie van %qs verbergt een symbool uit de parameterlijst"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, fuzzy, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "ongeldig gebruik van het niet gedefinieerde type %<%s %s%>"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, fuzzy, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "ongeldige linker operand van %s"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, fuzzy, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, fuzzy, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "%qs is geen iterator"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr "kan functie %<main%> niet inline maken"
 
 # Betere term voor "mismatched"?
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched arguments"
 msgid "missing template arguments"
 msgstr "slechte combinatie van argumenten"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr ""
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, fuzzy, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "modi in %s expressie komen niet overeen"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "grootte van %qs is %u bytes"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "overflow in constante expressie"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, fuzzy, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "opslaggrootte van %qs is onbekend"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qs is geen iterator"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "gevraagd alignment is geen constante"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "operandnummer buiten bereik"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "nutteloze type-kwalificatie in lege declaratie"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr ""
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "-pipe wordt niet ondersteund"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "grootte van %qs is %u bytes"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr ""
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, fuzzy, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr "ongeldig gebruik van %<restrict%>"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, fuzzy, gcc-internal-format
 #| msgid "vectorlength must be an integer constant"
 msgid "%<vector%> length expression must be integral"
 msgstr "vectorlengte moet een integerconstante zijn"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr "gevraagd alignment is geen macht van 2"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, fuzzy, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "%<defined%> zonder een naam"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, fuzzy, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr "te veel invoerbestanden"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, fuzzy, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "%<defined%> zonder een naam"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr "%<defined%> zonder een naam"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr "%<defined%> zonder een naam"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "rekensom met pointer naar onvolledig type"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr "%qs is geen iterator"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, fuzzy, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "%Jparameter %u heeft een onvolledig type"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr ""
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr ""
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, gcc-internal-format
 msgid "static assertion failed: %.*s"
 msgstr ""
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, fuzzy, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "%Jdeclaratie van %qD als niet-static volgt declaratie als static"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr "modi in %s expressie komen niet overeen"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "einde van niet-void functie werd bereikt zonder teruggeefwaarde"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "%<__builtin_next_arg%> opgeroepen zonder argument"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "%qs is geen iterator"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "linker operand van comma-expressie heeft geen effect"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, fuzzy, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "argument %d is alleen-lezen"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %<__builtin_return_address%>"
 msgid "non-pointer argument to %<__builtin_launder%>"
@@ -65891,1194 +65929,1194 @@ msgstr "niet-ondersteund argument voor %<__builtin_return_address%>"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr ""
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr "overflow in constante expressie"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 msgid " declared here"
 msgstr "%qs tevoren hier gedeclareerd"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr "veld %qs heeft een onvolledig type"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not public"
 msgstr "%qs is geen iterator"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 msgid "%qD is mutable"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr "%qs heeft een onvolledig type"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to function types"
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "attribuut %qE is enkel van toepassing op functie-types"
 
 # XXX FIXME:  duplicate
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute argument not a string constant"
 msgid "%qE attribute argument must be a string constant"
 msgstr "het argument van attribuut %qE is geen string-constante"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "attribuut %qE is enkel van toepassing op class-definities"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "attribuut %qE is enkel van toepassing op class-definities"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "attribuut %qE is enkel van toepassing op class-definities"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute has no effect"
 msgid "%qE attribute takes no arguments"
 msgstr "attribuut %qE heeft geen effect"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute does not apply to types"
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "attribuut %qE heeft geen betekenis voor types"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 #| msgid "requested position is not an integer constant"
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "gevraagde positie is geen integerconstante"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr ""
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr ""
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr ""
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "herdeclaratie van %qs"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qE attribute is not a string constant"
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "argument van attribuut %qE is geen string-constante"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qE attribute is not a string constant"
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "argument van attribuut %qE is geen string-constante"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr ""
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 #| msgid "'%%%c' is not a valid operand prefix"
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "'%%%c' is geen geldige operand-prefix"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr ""
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr ""
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "herhaalde definitie %qs"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to functions, not %s"
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "attribuut %qE is enkel van toepassing op functies, niet %s"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute applies only to functions"
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "attribuut %qE is enkel van toepassing op functies"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "herhalings-aantal is geen integerconstante"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, fuzzy, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "array subscript is geen integer"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr ""
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, fuzzy, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, fuzzy, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, fuzzy, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "pointer van type %<void *%> gebruikt in aftrekking"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "pointer van type %<void *%> gebruikt in aftrekking"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "pointer van type %<void *%> gebruikt in aftrekking"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, fuzzy, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, fuzzy, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, fuzzy, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %qT and %qT"
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "vergelijking tussen types %qT en %qT"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "ongeldige toepasing van %qs op een void-type"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++ verbiedt het adres van een gecaste expressie"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "ongeldige toepasing van %qs op een void-type"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++ verbiedt het adres van een gecaste expressie"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "%<this%> is niet beschikbaar in static member-funties"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "ISO C++ verbiedt casts naar een union-type"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr ""
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr ""
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr "ongeldig gebruik van onvolledige typedef %qs"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "ongeldig gebruik van onvolledige typedef %qs"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, fuzzy, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "argument %qs komt niet overeen met prototype"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr ""
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "union heeft geen lid dat %qs heet"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr ""
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr ""
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "union heeft geen lid dat %qs heet"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, fuzzy, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qs is meestal een functie"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qs is geen iterator"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "ongeldig gebruik van array die geen lvalue is"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, fuzzy, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "ongeldig gebruik van array die geen lvalue is"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, fuzzy, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "ongeldig gebruik van array die geen lvalue is"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "subscript ontbreekt in array-referentie"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, fuzzy, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "subscript ontbreekt in array-referentie"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "waarde met subscript is noch een array, noch een pointer"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, fuzzy, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "array-grootte ontbreekt in %qs"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ verbiedt accolade-groepen in expressies"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr ""
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, fuzzy, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "veld %qs als een functie gedeclareerd"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "veld %qs als een functie gedeclareerd"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "veld %qs als een functie gedeclareerd"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "te veel argumenten voor %s %q+#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "te weinig argumenten voor functie %qs"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "te veel argumenten voor functie %qE"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "te weinig argumenten voor functie %qE"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "te veel argumenten voor functie %qE"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "te weinig argumenten voor functie %qE"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "te veel argumenten voor %s %q+#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "te weinig argumenten voor functie %qs"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "te veel argumenten voor functie"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "te weinig argumenten voor functie"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, fuzzy, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "parameter heeft een onvolledig type"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, fuzzy, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "parameter heeft een onvolledig type"
 
 # is de "," deel van de special format spec of niet?  en moet "true" hier vertaald worden of niet?
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr "het adres van %qD, zal altijd %<true%> zijn"
 
 # is de "," deel van de special format spec of niet?  en moet "true" hier vertaald worden of niet?
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "het adres van %qD, zal altijd %<true%> zijn"
 
 # is de "," deel van de special format spec of niet?  en moet "true" hier vertaald worden of niet?
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "het adres van %qD, zal altijd %<true%> zijn"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
 # is de "," deel van de special format spec of niet?  en moet "true" hier vertaald worden of niet?
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, fuzzy, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "het adres van %qD, zal altijd %<true%> zijn"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %qT and %qT"
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "vergelijking tussen types %qT en %qT"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %qT and %qT"
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "vergelijking tussen types %qT en %qT"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
 # 'Arithmetic'?? 'rekensom' is wel correct, maar het klinkt zo stom.
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic on pointer to an incomplete type"
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "rekensom met pointer naar onvolledig type"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, fuzzy, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "einde van niet-void functie werd bereikt zonder teruggeefwaarde"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, fuzzy, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "pointer naar functie gebruikt in rekensom"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ verbiedt een vergelijking tussen pointer en integer"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "operand-types zijn %qT en %qT"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with integer zero"
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "geordende vergelijking van pointer met integer nul"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with null pointer"
 msgid "unordered comparison on non-floating-point argument"
 msgstr "geordende vergelijking van pointer met null-pointer"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 #, fuzzy
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, fuzzy, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "ongeldige operanden voor binaire %s-operator"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "pointer van type %<void *%> gebruikt in aftrekking"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "pointer naar functie gebruikt in aftrekking"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "pointer naar functie gebruikt in aftrekking"
 
 # 'Arithmetic'?? 'rekensom' is wel correct, maar het klinkt zo stom.
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, fuzzy, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "rekensom met pointer naar onvolledig type"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr "ongeldige beginwaarde voor member %qs"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr "ongeldige beginwaarde voor member %qs"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "ongeldig gebruik van array die geen lvalue is"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr ""
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, fuzzy, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "ongeldig gebruik van array die geen lvalue is"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO C++ verbiedt het adres van een gecaste expressie"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ verbiedt het adres van een gecaste expressie"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ verbiedt het adres van een gecaste expressie"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr ""
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "taking address of rvalue"
 msgstr "ongeldige beginwaarde voor member %qs"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ verbiedt het adres van een gecaste expressie"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, fuzzy, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "ongeldige beginwaarde voor member %qs"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "kan adres van bitveld %qs niet nemen"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr ""
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ verbiedt het %sen van een enum"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ verbiedt het %sen van een enum"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, fuzzy, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, fuzzy, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ verbiedt het %sen van een pointer van type %qT"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ verbiedt het %sen van een pointer van type %qT"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, fuzzy, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "kan adres van bitveld %qs niet nemen"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, fuzzy, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "adres van registervariabele %qs gevraagd"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr ""
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr ""
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, fuzzy, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "cast laat qualifiers van doeltype van pointer vallen"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "type qualifiers ignored on cast result type"
 msgstr "typekwalificaties op teruggeeftypes van functies worden genegeerd"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "type van teruggeefwaarde is onvolledig"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 msgid "converting from %qH to %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 msgid "cast from %qH to %qI loses precision"
 msgstr ""
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 #, fuzzy
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "een cast ontbreekt bij vergelijking van ongelijke pointer-types"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "cast verhoogt het benodigde alignment van het doeltype"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, fuzzy, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "ISO C++ verbiedt voorwaardelijke expressies tussen 0 en een functiepointer"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, fuzzy, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr ""
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr ""
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ verbiedt casts naar een union-type"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, fuzzy, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, gcc-internal-format
 msgid "moving %qE of type %qT to itself"
 msgstr ""
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr ""
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr ""
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr ""
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, fuzzy, gcc-internal-format
 msgid "array used as initializer"
 msgstr "array-index in beginwaarde van niet-array"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, fuzzy, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "ongeldige lvalue in toewijzing"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr ""
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, fuzzy, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "pointer naar lid-functie gebruikt in rekensom"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr ""
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, fuzzy, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 msgid "cannot convert %qH to %qI in return"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "doorgeven van argument %d van %qs"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr ""
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 msgid "returning pointer to temporary"
 msgstr "herhaald lid %qs"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, fuzzy, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr "adres van globale registervariabele %qs gevraagd"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, fuzzy, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr "adres van globale registervariabele %qs gevraagd"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, fuzzy, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr "adres van globale registervariabele %qs gevraagd"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr "ongeldige lvalue in asm-statement"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr ""
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr ""
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr ""
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, fuzzy, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "%<return%> zonder waarde in een functie die een niet-void waarde teruggeeft"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 msgid "returning initializer list"
 msgstr "beginwaarde ontbreekt"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr ""
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr ""
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr "%<return%> zonder waarde in een functie die een niet-void waarde teruggeeft"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr ""
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 #| msgid "invalid %%s value"
 msgid "using rvalue as lvalue"
@@ -67300,159 +67338,159 @@ msgstr ""
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "%qs is geen static veld"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "ongeldige registernaam voor %qs"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, fuzzy, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 #| msgid "initializer-string for array of chars is too long"
 msgid "initializer-string for %qT is too long"
 msgstr "beginwaarde-string voor array van chars is te lang"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "remove %<{ }%> around initializer"
 msgstr "accolades rond scalaire beginwaarde"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr ""
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, fuzzy, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "ongeldige beginwaarde voor member %qs"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, fuzzy, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "parameter %qs krijgt beginwaarde"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "parameter %qs krijgt beginwaarde"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "niet-beëindigde parameterlijst in %<#define%>"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, fuzzy, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "onbekend veld %qs opgegeven in beginwaarde"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr ""
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr ""
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, fuzzy, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr ""
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, fuzzy, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "grootte van array %qs is van een niet-integraal type"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, fuzzy, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, fuzzy, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "pointer naar lid-functie gebruikt in rekensom"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "pointer naar lid-functie gebruikt in rekensom"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "pointer naar lid-functie gebruikt in rekensom"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "ongeldige opslagklasse voor functie %qs"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr ""
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, fuzzy, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "dubbele beginwaarde"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, fuzzy, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, fuzzy, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "parameter %qs wijst naar een onvolledig type"
@@ -68440,7 +68478,7 @@ msgstr ""
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr ""
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr "%s voor %qs"
@@ -69851,7 +69889,7 @@ msgstr ""
 msgid "deferred type parameter at %C"
 msgstr ""
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -70068,7 +70106,7 @@ msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr ""
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr "gevraagd alignment is geen macht van 2"
@@ -70872,7 +70910,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr ""
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr ""
@@ -71680,12 +71718,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr ""
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -71933,274 +71971,274 @@ msgstr ""
 msgid "check_init_expr(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr "gevraagd alignment is geen macht van 2"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr ""
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "overflow in constante expressie"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "Te veel argumenten voor %s op %L"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "Te veel argumenten voor %s op %L"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "overflow in constante expressie"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr ""
 
 # vertaling voor 'statement'?
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "gevraagd alignment is geen macht van 2"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr ""
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr ""
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr ""
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "%qs is meestal een functie"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "ongeldige lvalue in toewijzing"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr ""
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, fuzzy, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "herhaalde label-declaratie %qs"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, fuzzy, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "herhaalde label-declaratie %qs"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr ""
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, fuzzy, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, fuzzy, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, fuzzy, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, fuzzy, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, fuzzy, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr ""
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, fuzzy, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "Te veel argumenten voor %s op %L"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, fuzzy, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "doorgeven van argument %d van %qs"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, fuzzy, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "doorgeven van argument %d van %qs"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "%s van alleen-lezen variabele %qs"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr ""
@@ -72208,194 +72246,194 @@ msgstr ""
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr "globale registervariabele volgt op een functiedefinitie"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr ""
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "%s van alleen-lezen variabele %qs"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "ongeldig gebruik van een void-expressie"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr ""
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "%s van alleen-lezen variabele %qs"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr ""
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr ""
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "ongeldige waarheidsexpressie"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, fuzzy, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr "ongeldige waarheidsexpressie"
 
 # dit klinkt niet al te best
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, fuzzy, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr "ongeldige waarheidsexpressie"
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr ""
 
 # dit klinkt niet al te best
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "ongeldige waarheidsexpressie"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr "overflow in constante expressie"
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr "overflow in constante expressie"
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "overflow in constante expressie"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "overflow in constante expressie"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "overflow in constante expressie"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr "overflow in constante expressie"
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr "ongeldige waarheidsexpressie"
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, fuzzy, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "overflow in constante expressie"
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr ""
@@ -72416,8 +72454,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "doorgeven van argument %d van %qs"
@@ -72497,7 +72535,7 @@ msgstr ""
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr ""
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -72633,12 +72671,12 @@ msgstr ""
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
@@ -73508,7 +73546,7 @@ msgstr "ongeldige registernaam voor %qs"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr "kon 0x%l.8x niet naar een regio omzetten"
@@ -74063,7 +74101,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr ""
@@ -74231,6 +74269,11 @@ msgstr "integer overflow in expressie"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -74632,7 +74675,7 @@ msgstr ""
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr ""
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een scalair zijn"
@@ -75157,82 +75200,82 @@ msgstr "%s voor %qs"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr "ongeldige beginwaarde"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "%s voor %qs"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "twee of meer data types in de declaratie van %qs"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "ongeldige beginwaarde"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "twee of meer data types in de declaratie van %qs"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "twee of meer data types in de declaratie van %qs"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Unexpected RANK statement at %C"
 msgstr "ongeldige beginwaarde"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr ""
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr "twee of meer data types in de declaratie van %qs"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr ""
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr ""
@@ -76655,8 +76698,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr ""
@@ -79023,12 +79066,12 @@ msgstr ""
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "naar label %s gerefereerd buiten enige functie"
@@ -79148,7 +79191,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
@@ -79553,278 +79596,283 @@ msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "kan niet derefereren, is geen pointer."
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr "statische variable %qs is als dllimport aangeduid"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+msgid "Invalid array reference at %L"
+msgstr "kan niet derefereren, is geen pointer."
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een scalair zijn"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr ""
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr ""
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr ""
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr ""
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, fuzzy, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "overflow in constante expressie"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "%s voor %qs"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "%s voor %qs"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr ""
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "ongeldige expressie als operand"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -79833,287 +79881,287 @@ msgstr ""
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr ""
 
 # vertaling voor 'statement'?
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "expressie-statement heeft onvolledig type"
 
 # vertaling voor 'statement'?
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr ""
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr ""
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr ""
 
 # vertaling voor 'statement'?
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr ""
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr ""
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, fuzzy, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "functie-oproep heeft geaggregeerde waarde"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr ""
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr ""
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr "%Jparameter %u heeft %<void%> als type"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, fuzzy, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een array zijn"
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, fuzzy, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "ongeldige beginwaarde"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr ""
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Ongeldige soort voor %s op %L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een scalair zijn"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr ""
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr ""
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een array zijn"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een array zijn"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr ""
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "%<defined%> zonder een naam"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr ""
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr ""
@@ -80121,214 +80169,214 @@ msgstr ""
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "%s van alleen-lezen variabele %qs"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr ""
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr "In functie %qs"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr ""
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr ""
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr ""
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr ""
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "%s van alleen-lezen variabele %qs"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "%s van alleen-lezen variabele %qs"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, fuzzy, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr "%s van alleen-lezen variabele %qs"
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr "ongeldig type-argument %qs"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een array zijn"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "overflow in constante expressie"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr ""
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr ""
 
 # Ongeldig soort wat?
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid kind for %s at %L"
 msgid "Invalid NULL at %L"
 msgstr "Ongeldige soort voor %s op %L"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr ""
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "parameter %qs als void gedeclareerd"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr ""
@@ -80336,1005 +80384,1005 @@ msgstr ""
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "String-lengte bij %L is te groot"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, fuzzy, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, fuzzy, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "(dicht bij initialisatie van %qs)"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, fuzzy, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, fuzzy, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, fuzzy, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, fuzzy, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr ""
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr ""
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, fuzzy, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, fuzzy, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, fuzzy, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, fuzzy, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, fuzzy, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr "%s voor %qs"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, fuzzy, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een array zijn"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, fuzzy, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, fuzzy, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "parameternamen (zonder types) in functiedeclaratie"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, fuzzy, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute conflicts with attribute %s"
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "attribuut %qE botst met attribuut %s"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute conflicts with attribute %s"
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "attribuut %qE botst met attribuut %s"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute conflicts with attribute %s"
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "attribuut %qE botst met attribuut %s"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute conflicts with attribute %s"
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "attribuut %qE botst met attribuut %s"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr "parameternamen (zonder types) in functiedeclaratie"
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, fuzzy, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een scalair zijn"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, fuzzy, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een scalair zijn"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr ""
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, fuzzy, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "veld %qs heeft al een beginwaarde gekregen"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr ""
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr ""
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, fuzzy, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "parameternamen (zonder types) in functiedeclaratie"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "parameternamen (zonder types) in functiedeclaratie"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, fuzzy, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "Te veel argumenten voor %s op %L"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet kleiner dan rang %d zijn"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet kleiner dan rang %d zijn"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een scalair zijn"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "Te veel argumenten voor %s op %L"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "Te veel argumenten voor %s op %L"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "veld %qs heeft al een beginwaarde gekregen"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "veld %qs heeft al een beginwaarde gekregen"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr ""
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, fuzzy, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "parameternamen (zonder types) in functiedeclaratie"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet kleiner dan rang %d zijn"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een scalair zijn"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een scalair zijn"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een scalair zijn"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, fuzzy, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr ""
 
 # vertaling voor 'statement'?
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, fuzzy, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "expressie-statement heeft onvolledig type"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "ongeldige waarheidsexpressie"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, fuzzy, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, fuzzy, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "Lege array-constructor op %C is niet toegestaan"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute conflicts with attribute %s"
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "attribuut %qE botst met attribuut %s"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, fuzzy, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr ""
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr "herhaalde label-declaratie %qs"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr ""
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, fuzzy, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr ""
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "overflow in constante expressie"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr ""
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, fuzzy, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, fuzzy, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr ""
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "ongeldig type-argument %qs"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, fuzzy, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, fuzzy, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, fuzzy, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "overflow in constante expressie"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, fuzzy, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "overflow in constante expressie"
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, fuzzy, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "overflow in constante expressie"
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "Bestandsnaam ontbreekt na %qs optie"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr "ongeldige beginwaarde"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, fuzzy, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr ""
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr ""
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "niet-constante array in DATA statement %L."
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "ongeldig type-argument %qs"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr ""
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "label %qs gedefinieerd maar niet gebruikt"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "label %qs gedefinieerd maar niet gebruikt"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "Substring bij %L heeft lengte nul"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, fuzzy, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "overflow in constante expressie"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, fuzzy, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, fuzzy, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr ""
@@ -81881,333 +81929,333 @@ msgstr "Te veel argumenten voor %s op %L"
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr ""
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, fuzzy, gcc-internal-format
+#| msgid "%qE attribute conflicts with attribute %s"
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "attribuut %qE botst met attribuut %s"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr ""
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr ""
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, fuzzy, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "Intrinsic '%s' op %L moet minstens twee argumenten hebben"
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "parameter %qs wijst naar een onvolledig type"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr ""
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute conflicts with attribute %s"
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "attribuut %qE botst met attribuut %s"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr ""
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "herhaalde label-declaratie %qs"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr ""
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "attribuut %qE kan niet opgegeven worden voor lokale variabelen"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute conflicts with attribute %s"
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "attribuut %qE botst met attribuut %s"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr ""
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "gevraagd alignment is geen macht van 2"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr ""
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "gevraagd alignment is geen macht van 2"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "gevraagd alignment is geen macht van 2"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "grootte van %qs is %u bytes"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr ""
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr ""
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, fuzzy, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "%qs is geen bestand, pipe of tty"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "herhaalde case-waarde"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr ""
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr ""
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr "ongeldige beginwaarde"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr ""
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr ""
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "grootte van %qs is %u bytes"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, fuzzy, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "object van variabele lengte mag geen beginwaarde krijgen"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr ""
@@ -82237,24 +82285,24 @@ msgstr ""
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr ""
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, fuzzy, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "doorgeven van argument %d van %qs"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr ""
@@ -82441,37 +82489,37 @@ msgstr "%s: definitie van functie '%s' niet omgezet\n"
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr ""
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, fuzzy, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "onbekende machine-modus %qs"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Bestandsnaam ontbreekt na %qs optie"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -82483,17 +82531,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "Intrinsieke functie %s(%d) wordt niet herkend"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, fuzzy, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "'%s' argument voor intrinsic '%s' op %L moet een constante zijn"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr "ongeldig type-argument %qs"
@@ -82635,7 +82683,7 @@ msgstr ""
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr ""
@@ -83008,6 +83056,11 @@ msgstr "veld %qs als een functie gedeclareerd"
 msgid "function %qD redeclared as variable"
 msgstr "functie %qs geherdeclareerd als inline"
 
+#: lto/lto-symtab.cc:865
+#, fuzzy, gcc-internal-format
+msgid "previously declared here"
+msgstr "%Jeerder hier gebruikt"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -84257,7 +84310,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, fuzzy, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
@@ -84267,7 +84320,7 @@ msgstr "geneste functie %qs is als %<extern%> gedeclareerd"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr ""
@@ -85120,18 +85173,10 @@ msgstr ""
 #~ msgid "argument 1 of __builtin_spe_predicate must be a constant"
 #~ msgstr "argument voor %<__builtin_args_info%> moet een constante zijn"
 
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#~ msgid "Builtin function %s requires the -mhtm option"
-#~ msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
-
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #~ msgid "Builtin function %s requires the -maltivec option"
 #~ msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
 
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#~ msgid "Builtin function %s requires the -mpaired option"
-#~ msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
-
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #~ msgid "Builtin function %s requires the -mspe option"
 #~ msgstr "%Jingebouwde functie %qD gedeclareerd als niet-functie"
diff --git a/gcc/po/ru.po b/gcc/po/ru.po
index dd5d4749b89..a51bfd459db 100644
--- a/gcc/po/ru.po
+++ b/gcc/po/ru.po
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 9.1-b20190414\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2019-05-04 12:10+0300\n"
 "Last-Translator: Pavel Maryanov <acid@jack.kiev.ua>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
@@ -408,7 +408,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "не задавайте одновременно -march=... и -mcpu=..."
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared и mdll несовместимы"
 
@@ -19833,18 +19833,18 @@ msgstr "некорректная RTL-инструкция"
 msgid "insn does not satisfy its constraints:"
 msgstr "RTL-инструкция не удовлетворяет своим ограничениям:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "создан с одним значением '%s', а используется с другим"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 #, fuzzy
 #| msgid "created and used with different settings of -fpic"
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "создан с одним значением -fpic, а используется с другим"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 #, fuzzy
 #| msgid "created and used with different settings of -fpie"
 msgid "created and used with different settings of %<-fpie%>"
@@ -20169,7 +20169,7 @@ msgstr "модификатор размера в формате strfmon"
 msgid "<command-line>"
 msgstr "<command-line>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, c-format
 msgid "unsupported operand for code '%c'"
 msgstr ""
@@ -20188,9 +20188,9 @@ msgstr "недопустимый операнд для кода '%%%c'"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, c-format
 msgid "invalid vector constant"
 msgstr ""
@@ -20212,7 +20212,7 @@ msgstr "недопустимый операнд для кода '%%%c'"
 msgid "incompatible register operand for '%%%c'"
 msgstr "недопустимый операнд - плавающий или векторный регистр для кода '%%%c'"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "отсутствует операнд"
@@ -20243,93 +20243,93 @@ msgstr ""
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "неверные операнды в бинарной операции"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "'%%&' использовано без локальной динамической TLS ссылки"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "некорректное %%J значение"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "некорректное значение %%r"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "некорректное значение %%R"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "некорректное значение %%N"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "некорректное значение %%P"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "некорректное значение %%h"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "некорректное значение %%L"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "некорректное значение %%M"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "некорректное значение %%M"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "некорректное значение %%U"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "некорректное значение %%s"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "некорректное значение %%C"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "некорректное значение %%E"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "некорректное unspec-перемещение"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "некорректный код %%xn"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, c-format
 msgid "invalid operand address"
 msgstr "некорректный адрес операнда"
@@ -20425,35 +20425,35 @@ msgstr "некорректный операнд UNSPEC: %d"
 msgid "unrecognized supposed constant"
 msgstr "неопознанная константа"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "некорректный оператор сдвига"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "предикативная инструкция для архитектуры Thumb"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "предикативная инструкция в условной последовательности"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "Неподдерживаемый операнд для кода '%c'"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -20461,117 +20461,117 @@ msgstr "Неподдерживаемый операнд для кода '%c'"
 msgid "invalid operand for code '%c'"
 msgstr "недопустимый операнд для кода '%c'"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "инструкция никогда не выполняется"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "устаревший код формата Maverick '%c'"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "некорректное преобразование из %<__fpreg%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "некорректное преобразование к типу %qT от типа %qT"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "для операнда адреса требуются ограничения одного из регистров X, Y или Z"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "операнды для %T/%t должны быть reg + const_int:"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr "некорректный адрес, не I/O адрес:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr "некорректный адрес, не константа:"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "некорректный адрес, не (reg+disp)"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "некорректный адрес, не post_inc или pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "внутренняя ошибка компилятора.  Некорректный адрес:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "Неподдерживаемый код '%c' для значения с фикс. точкой:"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "внутренняя ошибка компилятора.  Неизвестный режим:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "недопустимая инструкция:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "некорректная инструкция:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "некорректная инструкция перемещения:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "некорректная инструкция сдвига:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "внутренняя ошибка компилятора.  Некорректное смещение:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr "неподдерживаемое преобразование с фиксированной точкой"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr "переменная"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 msgid "function parameter"
 msgstr "параметр функции"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr "поле структуры"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 msgid "return type of function"
 msgstr "тип результата функции"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr "указатель"
 
@@ -20612,7 +20612,7 @@ msgstr "некорректный операнд"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20937,54 +20937,54 @@ msgstr "операнд не является целым, неверный код
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "операнд не является специфическим целым, неверный код операнда 'R'"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "некорректный код операнда '%c'"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "некорректные ограничения для операнда"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, c-format
 msgid "invalid vector immediate"
 msgstr ""
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "некорректный режим инструкции"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "некорректное преобразование из %<__fpreg%>"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "некорректное преобразование из %<__fpreg%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "некорректное преобразование к %<__fpreg%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "некорректное преобразование к типу %qT от типа %qT"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -21015,7 +21015,7 @@ msgstr "некорректный операнд для %<__fpreg%>"
 msgid "invalid %%P operand"
 msgstr "неверный операнд для кода %%P"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "неверное значение для кода %%p"
@@ -21042,29 +21042,29 @@ msgstr "невозможно использовать абсолютный ад
 msgid "invalid addressing mode"
 msgstr "некорректный режим адресации"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "'%%%c' не является корректным префиксом операнда"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "недопустимое использование '%%%c'"
@@ -21096,7 +21096,7 @@ msgid "post-increment address is not a register"
 msgstr "постинкрементный адрес - не регистр"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "некорректный адрес"
 
@@ -21265,7 +21265,7 @@ msgstr "неподдерживаемая комбинация: %s"
 msgid "unsupported memory expression:"
 msgstr "неподдерживаемое преобразование с фиксированной точкой"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 #| msgid "invalid %%r operand"
 msgid "invalid vector operand"
@@ -21328,256 +21328,256 @@ msgstr "ключ -mquad-memory-atomic требует 64-битного режи
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "ключ -mquad-memory не поддерживается для обратного (little endian) порядка байт"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr "некорректная пересылка"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr "некорректная 128-битная пересылка"
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%A value"
 msgstr "некорректное %%J значение"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "неверное значение для кода %%D"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "некорректное %%e значение"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "недопустимое значение для кода %%f"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "недопустимое значение для кода %%F"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "недопустимое значение для кода %%G"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "недопустимое значение для кода %%j"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "недопустимое значение для кода %%J"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "недопустимое значение для кода %%k"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "недопустимое значение для кода %%K"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "недопустимое значение для кода %%O"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "недопустимое значение для кода %%q"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%t value"
 msgstr "некорректное %%J значение"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "недопустимое значение для кода %%T"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "недопустимое значение для кода %%u"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "недопустимое значение для кода %%v"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%V value"
 msgstr "некорректное %%J значение"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "неверное значение для кода %%x"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%z value"
 msgstr "некорректное %%J значение"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "некорректное значение %%y, попробуйте использовать ограничитель 'Z'"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 #, fuzzy
 #| msgid "Enable using IEEE 128-bit floating point instructions."
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "Включить использование инструкций IEEE 128-битной плавающей точки."
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "Аргумент AltiVec передан в функцию без прототипа"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 msgid "Could not generate addis value for fusion"
 msgstr "Не удалось сгенерировать дополнительное значение для синтеза"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 msgid "Unable to generate load/store offset for fusion"
 msgstr "Не удалось сгенерировать смещение загрузки/сохранения для синтеза"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr "Некорректный GPR синтез"
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "некорректное преобразование из %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "некорректное преобразование к %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "некорректное преобразование из %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "некорректное преобразование к %<__fpreg%>"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr "символьные ссылки на память поддерживаются только для z10 или более поздних версий"
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "ошибка при декомпозиции адреса"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "некорректный оператор сравнения для 'E' модификатора вывода"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "некорректная ссылка для 'J' модификатора вывода"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "некорректный адрес для 'O' модификатора вывода"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "некорректный адрес для 'R' модификатора вывода"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "ожидалась ссылка на память для 'S' модификатора вывода"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "некорректный адрес для 'S' модификатора вывода"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "ожидалось выражении из регистров и памяти для 'N' модификатора вывода"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "ожидался регистр или выражение памяти для модификатора вывода 'M'"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "некорректная константа для модификатора вывода '%c'"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "некорректная константа - попытайтесь использовать модификатор вывода"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "некорректная константный вектор для модификатора вывода '%c'"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "некорректное выражение - попытайтесь использовать модификатор вывода"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "некорректное выражение для модификатора вывода '%c'"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 msgid "vector argument passed to unprototyped function"
 msgstr "векторный аргумент передан в функцию без прототипа"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr "типы различаются знаковостью"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr "бинарный оператор не поддерживает два операнда-вектора с булевыми компонентами"
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr "бинарный оператор не поддерживает операнд - вектор с булевыми компонентами"
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr "бинарный оператор не поддерживает сочетание операндов вектор с булевыми компонентами и вектор с плавающими компонентами"
 
@@ -21773,12 +21773,12 @@ msgstr "({anonymous})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "ожидалось %<;%>"
@@ -21791,7 +21791,7 @@ msgstr "ожидалось %<;%>"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21800,7 +21800,7 @@ msgstr "ожидалось %<;%>"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "ожидалась %<)%>"
@@ -21808,7 +21808,7 @@ msgstr "ожидалась %<)%>"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "ожидалась %<]%>"
@@ -21819,29 +21819,29 @@ msgstr "ожидалось %<;%>, %<,%> или %<)%>"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "ожидалась %<(%>"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "ожидалось %<[%>"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "ожидалась %<{%>"
@@ -21851,17 +21851,17 @@ msgstr "ожидалась %<{%>"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "ожидалось %<:%>"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "ожидалось %<while%>"
@@ -21870,8 +21870,8 @@ msgstr "ожидалось %<while%>"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "ожидалась %<,%>"
@@ -21881,17 +21881,17 @@ msgid "expected %<.%>"
 msgstr "ожидалась %<.%>"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "ожидалось %<@end%>"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "ожидалось %<>%>"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "ожидалась %<,%> или %<)%>"
@@ -21899,33 +21899,33 @@ msgstr "ожидалась %<,%> или %<)%>"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "ожидалось %<=%>"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "ожидалась %<}%>"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "expected %<else%>"
 msgstr "ожидалось %<delete%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "ожидалось %<#pragma omp section%> или %<}%>"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -21933,7 +21933,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "(anonymous)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "ожидалось %<<%>"
@@ -21950,24 +21950,24 @@ msgstr "ожидалась метка"
 msgid "candidate:"
 msgstr "кандидат 1:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 #| msgid "Enable user-defined instructions."
 msgid "  after user-defined conversion:"
 msgstr "Включить определяемые пользователем инструкции."
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "кандидат"
 msgstr[1] "претенденты:"
 msgstr[2] "претенденты:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "кандидат 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "кандидат 2:"
 
@@ -22219,7 +22219,7 @@ msgstr ""
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr ""
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "претенденты:"
 
@@ -22263,48 +22263,48 @@ msgstr "преобразование типа отбрасывает конст
 msgid "source type is not polymorphic"
 msgstr "тип источника не является полиморфным"
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "неверный тип аргумента для унарного минуса"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "неверный тип аргумента для унарного плюса"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "неверный тип аргумента для побитового дополнения"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "неверный тип аргумента для abs"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "неверный тип аргумента для сопряжения"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 msgid "in argument to unary !"
 msgstr "в аргументе унарного !"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr "нет преинкрементного оператора для типа"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr "нет постинкрементного оператора для типа"
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr "нет предекрементного оператора для типа"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr "нет постдекрементного оператора для типа"
 
@@ -22384,7 +22384,7 @@ msgstr "Устаревшая возможность:"
 msgid "Deleted feature:"
 msgstr "Отмененная возможность:"
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr "присваивание массивов"
 
@@ -22591,11 +22591,11 @@ msgstr "блочный IF"
 msgid "implied END DO"
 msgstr "предписанный END DO"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "присваивание"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "присваивание указателя"
 
@@ -22756,47 +22756,47 @@ msgstr "Операнд пользовательского оператора %%<
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "Операнды пользовательского оператора %%<%s%%> в %%L есть %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr "Переменная цикла"
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr "Переменная итератора"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr "Начальное выражение в DO цикле"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr "Конечное выражение в DO цикле"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr "Шаговое выражение в DO цикле"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr "DEALLOCATE объект"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr "ALLOCATE объект"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr "STAT переменная"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr "ERRMSG переменная"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr "элемент в READ"
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr "ACQUIRED_LOCK переменная"
 
@@ -22805,11 +22805,11 @@ msgstr "ACQUIRED_LOCK переменная"
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "Разные CHARACTER длины (%ld/%ld) в конструкторе массива"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr "Целочисленное переполнение при вычислении объема памяти для размещения"
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -22824,12 +22824,12 @@ msgstr "Фактическая длина строки не соответств
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "Фактическая длина строки меньше декларированной для формального аргумента '%s' (%ld/%ld)"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr "Цель переотображения ранга слишком мала (%ld < %ld)"
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr "Присваивание скаляра неразмещенному массиву"
 
@@ -22838,83 +22838,83 @@ msgstr "Присваивание скаляра неразмещенному м
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr "Неравные character длины (%ld/%ld) в %s"
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "аргументы 'a%d' и 'a%d' для внутренней функции '%s'"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "аргументы 'a%d' и 'a%d' для внутренней функции '%s'"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "Аргумент NCOPIES от REPEAT встроенной функции отрицателен (его значение равно %ld)"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "Аргумент NCOPIES от REPEAT встроенной функции слишком велик"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -22936,15 +22936,15 @@ msgstr "Assigned метка не есть целевая метка"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr "Некорректный image номер %d в SYNC IMAGES"
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr "Бесконечный цикл"
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr "Переменная цикла изменена"
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr "Значение DO шага нулевое"
 
@@ -23023,7 +23023,7 @@ msgid "expected boolean type"
 msgstr "ожидался булевый тип"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr "ожидалось целое"
@@ -23088,7 +23088,7 @@ msgstr "недостаточно аргументов"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "слишком много аргументов"
@@ -23738,7 +23738,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "-mrelax поддерживается только для RTP PIC"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "синтаксическая ошибка в %s операторе в %C"
@@ -24201,8 +24201,8 @@ msgstr ""
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, gcc-internal-format
 msgid "previous declaration here"
 msgstr "предыдущая декларация здесь"
@@ -24219,7 +24219,7 @@ msgstr "директива описания атрибута %qE проигно
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "%<%E::%E%> scoped attribute директива проигнорирована"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "для атрибута %qE задано неверное число аргументов"
@@ -24230,7 +24230,7 @@ msgstr "для атрибута %qE задано неверное число а
 msgid "expected %i or more, found %i"
 msgstr "ожидалось %<(%> или конец строки"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expected %<,%> before %qE"
 msgid "expected %i, found %i"
@@ -24298,12 +24298,12 @@ msgstr "атрибуты типов игнорируются, если тип у
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -24312,7 +24312,7 @@ msgstr "атрибуты типов игнорируются, если тип у
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -24334,8 +24334,8 @@ msgstr "атрибут %qE проигнорирован"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "предыдущая декларация %qD"
@@ -24449,7 +24449,7 @@ msgstr "ошибка чтения профиля функции из %s"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "смещение %qwi вне границ константной строки"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared here"
 msgid "%qE declared here"
@@ -24563,7 +24563,7 @@ msgstr "отсутствует аргумент для %qs"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 #| msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
@@ -24587,44 +24587,44 @@ msgstr "второй аргумент %<__builtin_longjmp%> должен быт
 msgid "target format does not support infinity"
 msgstr "целевой формат не поддерживает бесконечные значения"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 #| msgid "%<va_start%> used in function with fixed args"
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "%<va_start%> в функции с фиксированным числом аргументов"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "неверное число аргументов в вызове функции %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "вызов %<__builtin_next_arg%> без аргумента"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "неверное число аргументов в вызове функции %<__builtin_next_arg%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "второй аргумент %<va_start%> не является последним явным аргументом"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr "неопределенное поведение, если второй параметр %<va_start%> продекларирован с классом памяти %<register%>"
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 #| msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "аргумент 1 для %qE должен быть типом с константным размером"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 #| msgid "%Kargument %d must be a constant immediate"
 msgid "last argument of %qD is not integer constant between 0 and 3"
@@ -25704,12 +25704,12 @@ msgstr "атрибут %<weakref%> игнорируется, поскольку
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F используется, но нигде не определена"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F объявлена %<static%>, но нигде не определена"
@@ -26297,7 +26297,7 @@ msgstr "region_array не соответствует region_tree"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "lp_array не соответствует region_tree"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, fuzzy, gcc-internal-format
 #| msgid "open %s failed: %s"
 msgid "%qs failed"
@@ -26328,19 +26328,19 @@ msgstr "обратить порядок хранения для %smode"
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr "запись %wu-бит данных вне границ объекта-приемника, данные усечены до %wu-бит"
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 #| msgid "%Kcall to %qs declared with attribute error: %s"
 msgid "call to %qs declared with attribute error: %s"
 msgstr "%Kвызов %qs, объявленной с атрибутом error: %s"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 #| msgid "%Kcall to %qs declared with attribute warning: %s"
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "%Kвызов %qs, объявленной с атрибутом warning: %s"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, fuzzy, gcc-internal-format
 #| msgid "assuming signed overflow does not occur when simplifying %<abs (X)%> to %<X%> or %<-X%>"
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
@@ -26377,7 +26377,7 @@ msgstr "большая константа с фиксированной точк
 msgid "comparison is always %d due to width of bit-field"
 msgstr "при данной ширине битового поля результат сравнения - всегда %d"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr "предполагается, что при упрощении проверки диапазона не произошло переполнение"
@@ -26556,7 +26556,7 @@ msgstr "не удалось вычислить время обработки: %m
 msgid "%s signal terminated program %s"
 msgstr ""
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option %qs"
 msgid "unrecognized command-line option %qs"
@@ -26837,7 +26837,7 @@ msgstr "описание мультибиблиотеки %qs некоррект
 msgid "multilib exclusions %qs is invalid"
 msgstr "исключения %qs в мультибиблиотеке некорректны"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "выбор мультибиблиотеки %qs %qs некорректен"
@@ -27159,24 +27159,24 @@ msgstr "заданная граница %wu превышает максимал
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member %qD not at end of %q#T"
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "элемент регулируемого массива %qD не в конце %q#T"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "-mn is not supported for linux targets"
 msgid "%s not supported for variable length aggregates"
 msgstr "-mn не поддерживается для linux целей"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SPE not supported in this target"
 msgid "%s not supported on this target"
@@ -27218,16 +27218,16 @@ msgid "function returns address of local variable"
 msgstr "функция возвращает адрес локальной переменной"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -27240,27 +27240,27 @@ msgstr "объявлено здесь"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr "nonnull аргумент %qD сравнивается с NULL"
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr "%qE вывод может быть усечен ранее последнего символа формата"
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr "%qE вывод усечен ранее последнего символа формата"
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr "%qE может писать завершающий nul после конца приемника"
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr "%qE запись завершающего nul после конца приемника"
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
@@ -27268,7 +27268,7 @@ msgstr[0] "%<%.*s%> директивная запись %wu байт в обла
 msgstr[1] "%<%.*s%> директивная запись %wu байт в область размера %wu"
 msgstr[2] "%<%.*s%> директивная запись %wu байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
@@ -27276,7 +27276,7 @@ msgstr[0] "%<%.*s%> директивный вывод может быть усе
 msgstr[1] "%<%.*s%> директивный вывод может быть усечен записью %wu байт в область размера %wu"
 msgstr[2] "%<%.*s%> директивный вывод может быть усечен записью %wu байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
@@ -27284,67 +27284,67 @@ msgstr[0] "%<%.*s%> директивный вывод усечен запись
 msgstr[1] "%<%.*s%> директивный вывод усечен записью %wu байт в область размера %wu"
 msgstr[2] "%<%.*s%> директивный вывод усечен записью %wu байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr "%<%.*s%> директивный вывод может быть усечен записью до %wu байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr "%<%.*s%> директивный вывод усечен записью до %wu байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr "%<%.*s%> директивная запись до %wu байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%> директивный вывод может быть усечен записью примерно %wu или более байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%> директивный вывод усечен записью примерно %wu или более байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%> директивная запись примерно %wu или более байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "%<%.*s%> директивный вывод может быть усечен записью от %wu до %wu байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "%<%.*s%> директивный вывод усечен записью от %wu до %wu байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr "%<%.*s%> директивная запись от %wu до %wu байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%> директивный вывод может быть усечен записью %wu или более байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%> директивный вывод усечен записью %wu или более байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr "%<%.*s%> директивная запись %wu или более байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
@@ -27352,7 +27352,7 @@ msgstr[0] "%<%.*s%> директивная запись %wu байт в обла
 msgstr[1] "%<%.*s%> директивная запись %wu байт в область размера от %wu до %wu"
 msgstr[2] "%<%.*s%> директивная запись %wu байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
@@ -27360,7 +27360,7 @@ msgstr[0] "%<%.*s%> директивный вывод может быть усе
 msgstr[1] "%<%.*s%> директивный вывод может быть усечен записью %wu байт в область размера от %wu до %wu"
 msgstr[2] "%<%.*s%> директивный вывод может быть усечен записью %wu байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
@@ -27368,128 +27368,128 @@ msgstr[0] "%<%.*s%> директивный вывод усечен запись
 msgstr[1] "%<%.*s%> директивный вывод усечен записью %wu байт в область размера от %wu до %wu"
 msgstr[2] "%<%.*s%> директивный вывод усечен записью %wu байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивный вывод может быть усечен записью до %wu байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивный вывод усечен записью до %wu байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивная запись до %wu байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивный вывод может быть усечен записью примерно %wu или более байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивный вывод усечен записью примерно %wu или более байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивная запись примерно %wu или более байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивный вывод может быть усечен записью от %wu до %wu байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивный вывод усечен записью от %wu до %wu байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивная запись от %wu до %wu байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивный вывод может быть усечен записью %wu или более байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивный вывод усечен записью %wu или более байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "%<%.*s%> директивная запись %wu или более байт в область размера от %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, fuzzy, gcc-internal-format
 #| msgid "directive argument %qE"
 msgid "%<%.*s%> directive argument is null"
 msgstr "аргумент директивы %qE"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr "%<%.*s%> директивный вывод от %wu до %wu байт превышает минимальный требуемый размер 4095"
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr "%<%.*s%> директивный вывод от %wu до %wu байт может превысить минимальный требуемый размер 4095"
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, fuzzy, gcc-internal-format
 #| msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr "%<%.*s%> директивный вывод от %wu до %wu байт вызывает превышение результатом %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, fuzzy, gcc-internal-format
 #| msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr "%<%.*s%> директивный вывод от %wu до %wu байт вызывает превышение результатом %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "%<%.*s%> директивный вывод от %wu до %wu байт вызывает превышение результатом %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr "%<%.*s%> директивный вывод от %wu до %wu байт может вызвать превышение результатом %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, fuzzy, gcc-internal-format
 #| msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 #| msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr "%<%.*s%> директивная запись %wu байт в область размера %wu"
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD declared here"
 msgid "referenced argument declared here"
 msgstr "параметр шаблона %qD декларирован здесь"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
@@ -27497,22 +27497,22 @@ msgstr[0] "предполагать директивный вывод в %wu б
 msgstr[1] "предполагать директивный вывод в %wu байт"
 msgstr[2] "предполагать директивный вывод в %wu байт"
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "аргумент директивы %qE"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr "аргумент директивы в диапазоне [%E, %E]"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr "использование диапазона [%E, %E] для аргумента директивы"
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, fuzzy, gcc-internal-format
 #| msgid "%qE output %wu byte into a destination of size %wu"
 msgid "%qE output %wu byte into a destination of size %wu"
@@ -27521,22 +27521,22 @@ msgstr[0] "%qE вывод %wu байт в приемник размера %wu"
 msgstr[1] "%qE вывод %wu байт в приемник размера %wu"
 msgstr[2] "%qE вывод %wu байт в приемник размера %wu"
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr "%qE вывод от %wu до %wu байт в приемник размера %wu"
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr "%qE вывод %wu или более байт (предполагается %wu) в приемник размера %wu"
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr "%qE вывод %wu или более байт в приемник размера %wu"
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
@@ -27544,46 +27544,46 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, fuzzy, gcc-internal-format
 #| msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgid "%qE output between %wu and %wu bytes"
 msgstr "%qE вывод от %wu до %wu байт в приемник размера %wu"
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, fuzzy, gcc-internal-format
 #| msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr "%qE вывод %wu или более байт (предполагается %wu) в приемник размера %wu"
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, fuzzy, gcc-internal-format
 #| msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgid "%qE output %wu or more bytes"
 msgstr "%qE вывод %wu или более байт в приемник размера %wu"
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 #, fuzzy
 #| msgid "%qE output %wu byte into a destination of size %wu"
 msgid "%qE argument %Z may overlap destination object %qE"
@@ -27592,38 +27592,38 @@ msgstr[0] "%qE вывод %wu байт в приемник размера %wu"
 msgstr[1] "%qE вывод %wu байт в приемник размера %wu"
 msgstr[2] "%qE вывод %wu байт в приемник размера %wu"
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr "заданная граница %wu превышает максимальный размер объекта %wu"
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 #| msgid "null destination pointer"
 msgid "null destination pointer"
 msgstr "нулевой указатель приемника"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr "заданная граница %wu превышает размер %wu объекта приемника"
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 #| msgid "null format string"
 msgid "null format string"
@@ -28508,12 +28508,12 @@ msgstr "неизвестная машинный режим %qs для указа
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD объявлено здесь"
@@ -29340,7 +29340,7 @@ msgstr "токен %u имеет x-location == %u"
 msgid "token %u has %<y-location == %u%>"
 msgstr "токен %u имеет y-location == %u"
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "недопустимое использование атрибута %<fallthrough%>"
@@ -29703,18 +29703,18 @@ msgstr "это определено как указатель на другой
 msgid "mismatching definition"
 msgstr "отсутствует определение"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, fuzzy, gcc-internal-format
 #| msgid "invalid function in gimple call"
 msgid "invalid fnsummary in LTO stream"
 msgstr "некорректная функция в gimple вызове"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr "во входном файле отсутствует информация о межпроцедурных inline-подстановках"
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, fuzzy, gcc-internal-format
 #| msgid "ipa inline summary is missing in input file"
 msgid "IPA modref summary is missing in input file"
@@ -30849,77 +30849,77 @@ msgstr "ошибка записи в %s: %m"
 msgid "error closing optimization records %qs"
 msgstr "Выполнить оптимизацию кода вокруг команд передачи управления."
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 #| msgid "command line option %qs is not supported by this configuration"
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "ключ %qs для этой конфигурации не поддерживается"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "отсутствует аргумент для %qs"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs should be a non-negative integer"
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "аргумент %qs должен быть неотрицательным целым числом"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "аргумент %qs должен быть неотрицательным целым числом"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr ""
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to %qD"
 msgid "invalid argument in option %qs"
 msgstr "некорректный аргумент для %qD"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, fuzzy, gcc-internal-format
 #| msgid "FPX fast and compact options cannot be specified together"
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "FPX fast и compact опции не могут задаваться вместе"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "некорректный аргумент ключа %qs"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "допустимые аргументы для %qs: %s; имелось в виду %qs?"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "допустимые аргументы %qs: %s"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "ключ %qs больше не поддерживается"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qE attribute larger than %d"
 msgid "argument to %qs is bigger than %d"
 msgstr "аргумент для %qE атрибута больше чем %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, fuzzy, gcc-internal-format
 #| msgid "malformed COLLECT_GCC_OPTIONS"
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
@@ -31002,8 +31002,8 @@ msgstr "аргумент %<-O%> должен быть неотрицательн
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "%qs несовместим с %qs"
@@ -31790,7 +31790,7 @@ msgstr "глобальная регистровая переменная - за
 msgid "register of %qD used for multiple global register variables"
 msgstr "регистр %qD назначен для нескольких глобальных регистровых переменных"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "конфликтует с %qD"
@@ -32257,45 +32257,45 @@ msgstr "секция синонима %q+D должна соответствов
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "__builtin_saveregs не поддерживается для этой целевой платформы"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 #| msgid "ifunc is not supported on this target"
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "ifunc не поддерживается на этой платформе"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "вложенные функции не поддерживаются для этой платформы"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "трамплины вложенных функций не поддерживается для этой платформы"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "глобальные конструкторы не поддерживаются для этой платформы"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "глобальные деструкторы не поддерживаются для этой платформы"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "атрибут target не поддерживается для данной машины"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "атрибут target не поддерживается для данной машины"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC target is not supported for this machine"
 msgid "%<#pragma GCC target%> is not supported for this machine"
@@ -33503,86 +33503,86 @@ msgstr "блок %i содержит некорректную дугу"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "блок %i содержит некорректную сквозную дугу"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "функция %q+F не может быть скопирована, поскольку имеют нелокальные переходы в эту функцию"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "функция %q+F не может быть скопирована, поскольку она сохраняет адрес локальной метки в статической переменной"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "inline-подстановка функции %q+F невозможна, поскольку функция использует alloca (что отменяет атрибут always_inline)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "inline-подстановка функции %q+F невозможна, поскольку функция использует setjmp"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "inline-подстановка функции %q+F невозможна, поскольку функция использует списки из переменного числа аргументов"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "inline-подстановка функции %q+F невозможна, поскольку функция содержит обработку исключительных ситуаций setjmp-longjmp"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "inline-подстановка функции %q+F невозможна, поскольку функция использует не локальный goto"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "inline-подстановка функции %q+F невозможна, поскольку функция использует __builtin_return или __builtin_apply_args"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "inline-подстановка функции %q+F невозможна, поскольку функция использует вычисляемый goto"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "inline-подстановка функции %q+F невозможна, поскольку функция использует списки из переменного числа аргументов"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "подстановка функций %q+F невозможна, т.к. задан ключ -fno-inline"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "подстановка функции %q+F невозможна, т.к. она имеет атрибуты, препятствующие inline-подстановке"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 #| msgid "inlining failed in call to always_inline %q+F: %s"
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "inline-подстановка для вызова always_inline функции %q+F не выполнена: %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "которая вызвана здесь"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, gcc-internal-format
 msgid "called from this function"
 msgstr "вызвано из этой функции"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "inline-подстановка при вызове %q+F не выполнена: %s"
@@ -33643,28 +33643,28 @@ msgstr "некорректный тип элемента для атрибута
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "недопустимое использование атрибута %<fallthrough%>"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "in a call to non-static member function %qD"
 msgstr "некорректное использование нестатической функции-элемента %qD"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "в вызове встроенной функции %qD"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 #| msgid "in a call to function %qD declared here"
 msgid "in a call to function %qD declared %qs"
@@ -33910,7 +33910,7 @@ msgstr "%qE не инициализирован"
 msgid "%qs may be used uninitialized"
 msgstr "%qD, возможно, используется без инициализации в данной функции"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD было объявлено здесь"
@@ -34149,7 +34149,7 @@ msgstr "векторное условие будет расширено по ч
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr "векторная операция перемешивания будет выполнена по частям"
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr "векторизация не получилась для simd цикла"
@@ -34164,131 +34164,131 @@ msgstr "неконстантный элемент в константном CONS
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr "элемент с побочными эффектами в no-side-effects CONSTRUCTOR"
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "массивы функций не имеют осмысленной интерпретации"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "результат функции не может иметь тип функции"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "дерево: %s, имеется %s в %s, на %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "дерево: не ожидалось ничего из %s, обнаружено %s в %s, на %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "дерево: ожидался класс %qs, обнаружен %qs (%s) в %s, на %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "дерево: не ожидался класс %qs, обнаружен %qs (%s) в %s, на %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "дерево: ожидалось omp_clause %s, обнаружено %s в %s, на %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "дерево: ожидалось дерево, содержащее структуру %qs, обнаружено %qs в %s, на %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_int_cst with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "проверка дерева: доступ к элементу %d tree_int_cst с %d элементами в %s, на %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "дерево: доступ к элементу %d вектора tree_vec с %d элементами в %s, на %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "дерево: доступ к операнду %d функции %s с %d операндами в %s, в %s:%d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at %s:%d"
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "дерево: доступ к операнду %d функции omp_clause %s с %d операндами в %s, в %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qD устарело: %s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qD устарело"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE устаревшее: %s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "имя %qE будет исключено в будущих версиях"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "поддержка данного типа будет исключена в будущих версиях: %s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "поддержка данного типа будет исключена в будущих версиях"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable: %s"
 msgstr "%qD не переменная"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable"
 msgstr "%qD не переменная"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable: %s"
 msgstr "%qD не переменная"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable"
 msgstr "%qD не переменная"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "open %s failed: %s"
 msgid "type is unavailable: %s"
 msgstr "ошибка открытия %s: %s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "type is unavailable"
@@ -34314,307 +34314,307 @@ msgstr "%qD не переменная"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_SIZE_UNIT"
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr "вариант типа имеет другой TYPE_SIZE_UNIT"
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, fuzzy, gcc-internal-format
 #| msgid "type variant's TYPE_SIZE_UNIT"
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr "TYPE_SIZE_UNIT варианта типа"
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, fuzzy, gcc-internal-format
 #| msgid "type's TYPE_SIZE_UNIT"
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr "TYPE_SIZE_UNIT типа"
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, fuzzy, gcc-internal-format
 #| msgid "type variant with TYPE_ALIAS_SET_KNOWN_P"
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr "вариант типа с TYPE_ALIAS_SET_KNOWN_P"
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_VFIELD"
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr "вариант типа имеет другой TYPE_VFIELD"
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_BINFO"
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr "вариант типа имеет другой TYPE_BINFO"
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, fuzzy, gcc-internal-format
 #| msgid "type variant's TYPE_BINFO"
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr "TYPE_BINFO варианта типа"
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, fuzzy, gcc-internal-format
 #| msgid "type's TYPE_BINFO"
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr "TYPE_BINFO типа"
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_FIELDS"
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr "вариант типа имеет другой TYPE_FIELDS"
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr "первое несоответствие является полем"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr "и поле"
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TREE_TYPE"
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr "вариант типа имеет другой TREE_TYPE"
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, fuzzy, gcc-internal-format
 #| msgid "type variant's TREE_TYPE"
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr "TREE_TYPE варианта типа"
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, fuzzy, gcc-internal-format
 #| msgid "type's TREE_TYPE"
 msgid "type%'s %<TREE_TYPE%>"
 msgstr "TREE_TYPE типа"
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "тип не совместим со своим вариантом"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qT is not a template type"
 msgid "type %s is not an opaque type"
 msgstr "%qT не является шаблонным типом"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "type %s is not with opaque mode"
 msgstr "тип %qT не является непосредственной базой %qT"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_SIZE_UNIT"
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr "вариант типа имеет другой TYPE_SIZE_UNIT"
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, fuzzy, gcc-internal-format
 #| msgid "type variant has different TYPE_BINFO"
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr "вариант типа имеет другой TYPE_BINFO"
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 #| msgid "Main variant is not defined"
 msgid "main variant is not defined"
 msgstr "Главный вариант не определен"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_MAIN_VARIANT has different TYPE_MAIN_VARIANT"
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr "TYPE_MAIN_VARIANT имеет другой TYPE_MAIN_VARIANT"
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CANONICAL has different TYPE_CANONICAL"
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr "TYPE_CANONICAL имеет другой TYPE_CANONICAL"
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CANONICAL is not compatible"
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr "TYPE_CANONICAL несовместим"
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_MODE of TYPE_CANONICAL is not compatible"
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr "TYPE_MODE от TYPE_CANONICAL несовместим"
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CANONICAL of main variant is not main variant"
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr "TYPE_CANONICAL от главного варианта не есть главный вариант"
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_VFIELD is not FIELD_DECL nor TREE_LIST"
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr "TYPE_VFIELD не есть ни FIELD_DECL ни TREE_LIST"
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_NEXT_PTR_TO is not POINTER_TYPE"
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr "TYPE_NEXT_PTR_TO не есть POINTER_TYPE"
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_NEXT_REF_TO is not REFERENCE_TYPE"
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr "TYPE_NEXT_REF_TO не есть REFERENCE_TYPE"
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_BINFO is not TREE_BINFO"
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr "TYPE_BINFO не есть TREE_BINFO"
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_BINFO type is not TYPE_MAIN_VARIANT"
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr "TYPE_BINFO тип не есть TYPE_MAIN_VARIANT"
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_METHOD_BASETYPE is not record nor union"
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr "TYPE_METHOD_BASETYPE не есть ни record ни union"
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_OFFSET_BASETYPE is not record nor union"
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr "TYPE_OFFSET_BASETYPE не есть ни record ни union"
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_ARRAY_MAX_SIZE not INTEGER_CST"
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr "TYPE_ARRAY_MAX_SIZE не INTEGER_CST"
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_VALUES_RAW field is non-NULL"
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr "TYPE_VALUES_RAW поле не-NULL"
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_LANG_SLOT_1 (binfo) field is non-NULL"
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr "TYPE_LANG_SLOT_1 (binfo) поле не-NULL"
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, fuzzy, gcc-internal-format
 #| msgid "Enum value is not CONST_DECL or INTEGER_CST"
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr "Enum значение не есть CONST_DECL или INTEGER_CST"
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, fuzzy, gcc-internal-format
 #| msgid "Enum value type is not INTEGER_TYPE nor convertible to the enum"
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr "Тип enum значения не есть ни INTEGER_TYPE ни преобразуемый в enum"
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, fuzzy, gcc-internal-format
 #| msgid "Enum value name is not IDENTIFIER_NODE"
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr "Имя enum значения не есть IDENTIFIER_NODE"
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 #| msgid "Array TYPE_DOMAIN is not integer type"
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "Массивный TYPE_DOMAIN не есть целочисленный тип"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_FIELDS defined in incomplete type"
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "TYPE_FIELDS определено в неполном типе"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, fuzzy, gcc-internal-format
 #| msgid "Wrong tree in TYPE_FIELDS list"
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr "Неверное дерево в TYPE_FIELDS списке"
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CACHED_VALUES_P is %i while TYPE_CACHED_VALUES is %p"
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr "TYPE_CACHED_VALUES_P есть %i, в то время как TYPE_CACHED_VALUES есть %p"
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CACHED_VALUES is not TREE_VEC"
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr "TYPE_CACHED_VALUES не есть TREE_VEC"
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, fuzzy, gcc-internal-format
 #| msgid "wrong TYPE_CACHED_VALUES entry"
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr "неверный TYPE_CACHED_VALUES элемент"
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, fuzzy, gcc-internal-format
 #| msgid "TREE_PURPOSE is non-NULL in TYPE_ARG_TYPES list"
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr "TREE_PURPOSE не-NULL в TYPE_ARG_TYPES списке"
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, fuzzy, gcc-internal-format
 #| msgid "Wrong entry in TYPE_ARG_TYPES list"
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr "Неверный элемент в TYPE_ARG_TYPES списке"
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_VALUES_RAW field is non-NULL"
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr "TYPE_VALUES_RAW поле не-NULL"
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_CACHED_VALUES_P is set while it should not"
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr "TYPE_CACHED_VALUES_P установлен хотя не должен"
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, fuzzy, gcc-internal-format
 #| msgid "TYPE_METHOD_BASETYPE is not main variant"
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
@@ -34842,7 +34842,7 @@ msgstr "в данной конфигурации определения алиа
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "атрибут видимости не поддерживается в данной конфигурации; определение игнорируется"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -35075,7 +35075,7 @@ msgstr "атрибут %qE игнорируется, поскольку %qT уж
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "атрибут %qE игнорируется, поскольку %qT уже определен"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "%qE атрибут действует только в public-объектах"
@@ -35267,7 +35267,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "%qE атрибут для non-volatile переменной"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "%qE атрибут нельзя задавать для локальных переменных"
@@ -35619,7 +35619,7 @@ msgstr "%qD не совместим с %qD"
 msgid "%qE argument is not a function"
 msgstr "аргумент %qE не функция"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "сообщение для атрибута deprecated не является строковой константой"
@@ -36176,7 +36176,7 @@ msgstr "ISO C++ не разрешает применение %<alignof%> к ти
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "ISO C++ не разрешает применение %<_Alignof%> к типу функции"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "недопустимое применение %qs к типу void"
@@ -36311,17 +36311,17 @@ msgstr "%<fallthrough%> атрибут задан несколько раз"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "%<fallthrough%> атрибут задан с параметром"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "слишком мало аргументов в вызове функции %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -36453,181 +36453,181 @@ msgstr "взятие адреса от битового поля структу
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr "индекс %E обозначает смещение, превышающее размер %qT"
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "размер массива слишком велик"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "тип операнда %qT несовместим с аргументом %d для %qE"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE makes pointer from integer without a cast"
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "при передаче аргумента %d %qE целое преобразуется в указатель без приведения типа"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 #| msgid "left argument must be a slice"
 msgid "both arguments must be compatible"
 msgstr "левый аргумент должен быть вырезкой"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "неправильное число аргументов в вызове функции %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "аргумент 1 для %qE должен быть не-void указателем"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 #| msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "аргумент 1 для %qE должен быть типом с константным размером"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "аргумент 1 для %qE должен быть типом с константным размером"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "аргумент 1 для %qE должен быть указателем на объект ненулевого размера"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "аргумент %d для %qE должен быть указателем"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "аргумент %d для %qE должен быть указателем на тип константного размера"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "аргумент %d для %qE не должен быть указателем на функцию"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "несоответствие размера в аргументе %d для %qE"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE must be a pointer to a constant size type"
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "аргумент %d для %qE должен быть указателем на тип константного размера"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards %qv qualifier from pointer target type"
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "передача аргумента %d %qE отменяет квалификатор %qv указуемого типа"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE must be a pointer to a constant size type"
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "аргумент %d для %qE должен быть указателем на тип константного размера"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards %qv qualifier from pointer target type"
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "передача аргумента %d %qE отменяет квалификатор %qv указуемого типа"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "нецелочисленный аргумент %d модели памяти для %qE"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "некорректный аргумент %d модели памяти для %qE"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "значение индекса вне диапазона"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "преобразование скаляра %qT в вектор %qT включает усечение"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "внутренняя функция %qE должна вызываться напрямую"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "size of array %qE is not a constant expression"
 msgstr "размер массива %qD не является целочисленным константным выражением"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "size of array is not a constant expression"
 msgstr "размер массива не является целочисленным константным выражением"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qE is negative"
 msgid "size %qE of array %qE is negative"
 msgstr "размер массива %qE отрицательный"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array is negative"
 msgstr "размер массива отрицательный"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, fuzzy, gcc-internal-format
 #| msgid "%Kargument %i value %qE exceeds maximum object size %E"
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr "%Kаргумент %i значение %qE превышает максимальный размер объекта %E"
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, fuzzy, gcc-internal-format
 #| msgid "specified bound %wu exceeds maximum object size %wu"
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr "заданная граница %wu превышает максимальный размер объекта %wu"
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 #| msgid "%Kargument %i value %qE exceeds maximum object size %E"
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "%Kаргумент %i значение %qE превышает максимальный размер объекта %E"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, fuzzy, gcc-internal-format
 #| msgid "specified bound %wu exceeds maximum object size %wu"
 msgid "size of array exceeds maximum object size %qE"
 msgstr "заданная граница %wu превышает максимальный размер объекта %wu"
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, fuzzy, gcc-internal-format
 #| msgid "environment variable SOURCE_DATE_EPOCH must expand to a non-negative integer less than or equal to %wd"
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
@@ -37286,7 +37286,7 @@ msgstr "целая константа слишком велика для тип
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "целая константа слишком велика для типа %<unsigned long%>"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int%d%> is not supported on this target"
 msgid "%<_BitInt(%d)%> is not supported on this target"
@@ -37372,7 +37372,7 @@ msgstr "неподдерживаемая нестандартная конкат
 msgid "traditional C rejects string constant concatenation"
 msgstr "традиционный Си не поддерживает конкатенацию строковых констант"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -37431,7 +37431,7 @@ msgstr "%<depend(source)%> клаузула задана вместе с %<depen
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr "%<ordered%> клаузула с параметром не может быть задана в %qs конструкции"
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "некорректный тип итерационной переменной %qE"
@@ -37446,17 +37446,17 @@ msgstr "%<_Atomic%> итерационная переменная %qE"
 msgid "%qE is not initialized"
 msgstr "%qE не инициализирован"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "отсутствует управляющий предикат"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "некорректный управляющий предикат"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "отсутствует инкрементальное выражение"
@@ -37466,7 +37466,7 @@ msgstr "отсутствует инкрементальное выражение
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "некорректное инкрементальное выражение"
@@ -37557,7 +37557,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -37569,7 +37569,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qD не является аргументом функции"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr "битовое поле %qE в %qs клаузуле"
@@ -38210,7 +38210,7 @@ msgid "wrong type argument to %s"
 msgstr "неверный аргумент типа для %s"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -39171,35 +39171,35 @@ msgstr "сравнение между %qT и %qT"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -39430,128 +39430,128 @@ msgstr "-mregparm=%d не между 0 и %d"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr "для опции -mcache-block-size=X допустимый X должен быть: 4, 8, 16, 32, 64, 128, 256 или 512"
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> requires %<-mfp32%>"
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr "%<-march=%s%> требует %<-mfp32%>"
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s: ISA string must begin with rv32 or rv64"
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr "-march=%s: ISA цепочка должна начинаться с rv32 или rv64"
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s: invalid ISA string"
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr "-march=%s: некорректная ISA цепочка"
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> requires %<-mfp32%>"
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr "%<-march=%s%> требует %<-mfp32%>"
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s: ISA string must begin with rv32 or rv64"
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr "-march=%s: ISA цепочка должна начинаться с rv32 или rv64"
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "-mcpu=%s конфликтует с -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "-mcpu=%s конфликтует с -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr "ключ %<-march=%s%> несовместим с выбранным ABI"
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "ключ %<-march=%s%> несовместим с выбранным ABI"
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s: ISA string must begin with rv32 or rv64"
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr "-march=%s: ISA цепочка должна начинаться с rv32 или rv64"
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, fuzzy, gcc-internal-format
 #| msgid "%<%s%> is unknown"
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%<%s%> неизвестен"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -39997,13 +39997,13 @@ msgstr "ожидался тип %qT, но аргумент имеет тип %qT
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "ожидался тип %qT, но аргумент имеет тип %qT"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma GCC optimize%> is not a string or number"
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC optimize%> не строка и не число"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 #| msgid "unknown #pragma GCC coprocessor %E"
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
@@ -40647,7 +40647,7 @@ msgstr "передача параметров для аргументов тип
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, fuzzy, gcc-internal-format
 #| msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
@@ -40730,12 +40730,12 @@ msgid "unknown tuning option (%s)"
 msgstr "неизвестная опция настройки (%s)"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -40747,7 +40747,7 @@ msgid "specify a system register with a small string length"
 msgstr "Порядок выделения регистров"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr ""
@@ -40947,9 +40947,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "аргумент атрибута %<target%> не строка"
@@ -41007,21 +41007,21 @@ msgid "virtual function multiversioning not supported"
 msgstr "мультиверсионность виртуальной функции не поддерживается"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 #| msgid "multiversioning needs ifunc which is not supported on this target"
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "мультиверсионность требует ifunc, что не поддерживается на этой платформе"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 #, fuzzy
 #| msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr "передача параметров для аргументов типа %qT изменилась в GCC 7.1"
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 #, fuzzy
 #| msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
@@ -41038,8 +41038,8 @@ msgstr "передача параметров для аргументов тип
 msgid "lane %wd out of range %wd - %wd"
 msgstr "проход %wd вне диапазона %wd - %wd"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported simdlen %d"
 msgid "unsupported simdlen %wd"
@@ -41051,7 +41051,7 @@ msgstr "неподдерживаемая simdlen %d"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "неподдерживаемый тип аргумента для внутренней функции"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr ""
@@ -41062,7 +41062,7 @@ msgstr ""
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "неподдерживаемый тип аргумента для внутренней функции"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr ""
@@ -41164,8 +41164,8 @@ msgstr "L%d латентность кэша для %s неизвестна"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "некорректное значение %qs для -mmemory-latency"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "некорректный встроенный fcode"
@@ -41296,18 +41296,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr ""
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -41425,7 +41425,7 @@ msgid "argument of %qE attribute is missing"
 msgstr ""
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "аргументом атрибута %qE должна быть целая константа"
@@ -41446,25 +41446,25 @@ msgstr ""
 msgid "argument of %qE attribute ignored"
 msgstr ""
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "%qE атрибут применим только к переменным"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, fuzzy, gcc-internal-format
 #| msgid "alternatives not allowed in asm flag output"
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr "альтернативы не допускается в выводе ассемблерного флага"
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, fuzzy, gcc-internal-format
 #| msgid "unknown asm flag output %qs"
 msgid "unknown %<asm%> flag output %qs"
 msgstr "неизвестный вывод ассемблерного флага %qs"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for asm flag output"
 msgid "invalid type for %<asm%> flag output"
@@ -41730,7 +41730,7 @@ msgstr "целевой процессор не поддерживает кома
 msgid "target CPU does not support unaligned accesses"
 msgstr "целевой процессор не поддерживает невыровненные доступы"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support branch-likely instructions"
 msgid "This architecture does not support branch protection instructions"
@@ -41785,7 +41785,7 @@ msgstr "граница размера структуры может быть т
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "позиционно-независимый RTP несовместим с -msingle-pic-base"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in x32 mode"
 msgid "FDPIC mode is not supported in Thumb-1 mode"
@@ -41902,7 +41902,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr "передача параметров для аргументов типа %qT изменилась в GCC 7.1"
@@ -41943,45 +41943,45 @@ msgstr "атрибут %qE не действует на функции со ст
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "атрибут %qE применим только к базовому типу указателя на функцию"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, fuzzy, gcc-internal-format
 #| msgid "accessing thread-local storage is not currently supported with -mpure-code or -mslow-flash-data"
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr "доступ к локальной памяти потока в настоящее время не поддерживается с -mpure-code или -mslow-flash-data"
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr "%s %wd вне диапазона %wd - %wd"
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "невозможно вычислить фактическое положение параметра в стеке"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr "Неожиданный thumb1 далекий переход"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "нет свободных low-регистров для выталкивания high-регистров"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "подпрограммы Service Routines для прерываний не могут использоваться в режиме Thumb"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, fuzzy, gcc-internal-format
 #| msgid "-fstack-check=specific for Thumb-1"
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr "-fstack-check=specific для Thumb-1"
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr ""
@@ -41989,22 +41989,22 @@ msgstr ""
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr "auto fpu выбор в настоящее время здесь не допускается"
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr ""
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr ""
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32-bit systems"
 msgid "%<asm%> flags not supported in thumb1 mode"
@@ -42059,166 +42059,166 @@ msgstr "поддерживаемые архитектуры ядра:%s"
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "неизвестная архитектура ядра %qs задана с %qs"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 #| msgid "-fpic is not supported"
 msgid "%<-fpic%> is not supported"
 msgstr "ключ -fpic не поддерживается"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 #| msgid "-fPIC is not supported"
 msgid "%<-fPIC%> is not supported"
 msgstr "ключ -fPIC не поддерживается"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 #| msgid "-fpie is not supported"
 msgid "%<-fpie%> is not supported"
 msgstr "-fpie не поддерживается"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 #| msgid "-fPIE is not supported"
 msgid "%<-fPIE%> is not supported"
 msgstr "-fPIE не поддерживается"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr ""
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "%qs функция не может иметь аргументы"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "%qs функция не может возвращать значение"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs похоже искаженный %qs обработчик, отсутствует %<__vector%> префикс"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr "%<builtin_return_address%> содержит только 2 байта адреса"
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr "смещение указателя от символа, возможно, некорректно"
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr "доступ к памяти данных с адресом программной памяти"
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr "доступ к программной памяти с адресом памяти данных"
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr "фиксированный регистр %s использован для передачи параметра функции"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "запись в адресное пространство %qs не поддерживается"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "атрибут %qE применим только к переменным в статической памяти"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "атрибут %qE поддерживается только для сокращенных Tiny ядер"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute address out of range"
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "адрес атрибута %qE вне диапазона"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr "и %s и %qE атрибут предоставляют адрес"
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "%qE атрибут для non-volatile переменной"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "адресные пространства не поддерживаются для сокращенных Tiny устройств"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "адресное пространство %qs не поддерживается для устройств с флэш-памятью размером до %d KiB"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr "указатель в адресное пространство %qs должен быть const в %qT"
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr "указатель в адресное пространство %qs должен быть const в %s %q+D"
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables in static storage"
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "атрибут %qE применим только к переменным в статической памяти"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr "переменная %q+D должна быть const, чтобы ее можно было поместить в доступную только на чтение секцию посредством %qs"
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, fuzzy, gcc-internal-format
 #| msgid "static IO declaration for %q+D needs an address"
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "декларация статического IO для %q+D требует адрес"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 #| msgid "only uninitialized variables can be placed in the .noinit section"
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "только неинициализированные переменные могут размещаться в секции .noinit"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "переменная %q+D с динамической инициализацией помещена в область программной памяти"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "неинициализированная переменная %q+D помещена в область программной памяти"
@@ -42227,43 +42227,43 @@ msgstr "неинициализированная переменная %q+D по
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 #| msgid "variable %q#D with %<auto%> type used in its own initializer"
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "переменная %q#D с %<auto%> типом использована в своем собственном инициализаторе"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%q+D имеет несовместимые атрибуты %qs и %qs"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "архитектура %qs поддерживается только для ассемблера"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "преобразование из адресного пространства %qs в адресное пространство %qs"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "%s ожидает целую константу времени компиляции"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%s ожидает длинную целую константу времени компиляции в качестве первого аргумента"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr "округление до %d бит не влияет на величину с фиксированной точкой с %d битами в дробной части"
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr "результат округления всегда будет 0"
@@ -42421,7 +42421,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "вызов требует ifunc, которая не поддерживается этой целью"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -43110,8 +43110,8 @@ msgstr "следующий за последним аргумент должен
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr "версии функции не могут быть помечены как gnu_inline, должны генерироваться тела"
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "модель кода %s не поддерживает PIC режим"
@@ -43181,273 +43181,273 @@ msgstr "слишком много диапазонов размера задан
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "Intel MCU psABI не поддерживается в %s режиме"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%<-mtune=x86-64%> устарело; используйте вместо этого соответственно %<-mtune=k8%> или %<-mtune=generic%>"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%<target(\"tune=x86-64\")%> устарело; используйте вместо этого соответственно %<target(\"tune=k8\")%> или %<target(\"tune=generic\")%>"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte не поддерживается для 32-битного кода"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32-bit systems"
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-mcmodel= не поддерживается на 32-битных системах"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32-bit systems"
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "-mcmodel= не поддерживается на 32-битных системах"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte не поддерживается для 32-битного кода"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32-bit systems"
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "-mcmodel= не поддерживается на 32-битных системах"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "адресный режим %qs не поддерживается в %s-битном режиме"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 #| msgid "%<-Wabi=1%> is not supported, using =2"
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "%<-Wabi=1%> не поддерживается, используется =2"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, fuzzy, gcc-internal-format
 #| msgid "transactional memory is not supported with %<-fsanitize=address%>"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "транзакционная память не поддерживается с %<-fsanitize=address%>"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, fuzzy, gcc-internal-format
 #| msgid "transactional memory is not supported with %<-fsanitize=kernel-address%>"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "транзакционная память не поддерживается с %<-fsanitize=kernel-address%>"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, fuzzy, gcc-internal-format
 #| msgid "%<-fcheck-pointer-bounds%> is not supported with %<-fsanitize=bounds%>"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "%<-fcheck-pointer-bounds%> не поддерживается с %<-fsanitize=bounds%>"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "модель кодирования %s не поддерживается в %s-битном режиме"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "модель кода %qs не поддерживается в режиме x32"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 #| msgid "-masm=intel not supported in this configuration"
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "-masm=intel не поддерживается в этой конфигурации"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "%i-битный режим не компилируется в"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "%<generic%> процессор может использоваться только для %<-mtune=%> ключа"
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "%<generic%> процессор может использоваться только для %<target(\"tune=\")%> атрибута"
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "%<intel%> процессор может использоваться только для %<-mtune=%> ключа"
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "%<intel%> процессор может использоваться только для %<target(\"tune=\")%> атрибута"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "заданный процессор не поддерживает набор команд x86-64"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<-march=%> switch"
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "некорректное значение (%qs) для ключа %<-march=%>"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<target(\"arch=\")%> attribute"
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "некорректное значение (%qs) для %<target(\"arch=\")%> атрибута"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "допустимые аргументы для %<-march=%> ключа: %s; имелось в виду %qs?"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr "допустимые аргументы для %<target(\"arch=\")%> атрибута: %s; вы имели в виду %qs?"
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "допустимые аргументы для %<-march=%> ключа: %s"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "допустимые аргументы для %<target(\"arch=\")%> атрибута: %s"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<-mtune=%> switch"
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "некорректное значение (%qs) для ключа %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<target(\"tune=\")%> attribute"
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "некорректное значение (%qs) для %<target(\"tune=\")%> атрибута"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "допустимые аргументы для %<-mtune=%> ключа: %s; имелось в виду %qs?"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr "допустимые аргументы для %<target(\"tune=\")%> атрибута: %s; вы имели в виду %qs?"
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "допустимые аргументы для %<-mtune=%> ключа: %s"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "допустимые аргументы для %<target(\"tune=\")%> атрибута: %s"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm is ignored in 64-bit mode"
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "-mregparm игнорируется в 64-битном режиме"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm is ignored for Intel MCU psABI"
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "-mregparm игнорируется для Intel MCU psABI"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm=%d is not between 0 and %d"
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "-mregparm=%d не между 0 и %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "-mnop-mcount несовместимо с этой целью"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "%<-mrtd%> игнорируется в 64-битном режиме"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "%<target(\"rtd\")%> игнорируется в 64-битном режиме"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -43455,309 +43455,309 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary is not supported for this target"
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "-mpreferred-stack-boundary не поддерживается для этой целевой платформы"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and %d"
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d не между %d и %d"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 #| msgid "-mincoming-stack-boundary=%d is not between %d and 12"
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mincoming-stack-boundary=%d не между %d и 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "-mnop-mcount несовместимо с этой целью"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not implemented for -fPIC"
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "-mnop-mcount не реализовано для -fPIC"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "%<-msseregparm%> используется без SSE включения"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "%<target(\"sseregparm\")%> используется без SSE включения"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "набор команд SSE отменен, используется арифметика 387"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "набор команд 387 отменен, используется арифметика SSE"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "опробование стека требует %<-maccumulate-outgoing-args%> для корректной работы"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "опробование стека требует %<target(\"accumulate-outgoing-args\")%> для корректной работы"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr "фиксированный ebp регистр требует %<-maccumulate-outgoing-args%>"
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr "фиксированный ebp регистр требует %<target(\"accumulate-outgoing-args\")%>"
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, fuzzy, gcc-internal-format
 #| msgid "-mfentry isn%'t supported for 32-bit in combination with -fpic"
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr "-mfentry не поддерживается для 32 бит в комбинации с -fpic"
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 #| msgid "-mno-fentry isn%'t compatible with SEH"
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "-mno-fentry несовместимо с SEH"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 #| msgid "unknown option for -mrecip=%s"
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "неизвестная опция для -mrecip=%s"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid number in -mstack-protector-guard-offset="
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs не есть допустимое число в -mstack-protector-guard-offset"
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid offset in -mstack-protector-guard-offset="
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs не есть допустимое смещение в -mstack-protector-guard-offset="
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid base register in -mstack-protector-guard-reg="
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr "%qs не есть допустимый базовый регистр в -mstack-protector-guard-reg"
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "-mnop-mcount несовместимо с этой целью"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 #| msgid "ms_abi and sysv_abi attributes are not compatible"
 msgid "%qs and %qs attributes are not compatible"
 msgstr "атрибуты ms_abi и sysv_abi несовместимы"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, fuzzy, gcc-internal-format
 #| msgid "Only DWARF debug format is supported for interrupt service routine."
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr "Только отладочный формат DWARF поддерживается для программы обслуживания прерываний."
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, fuzzy, gcc-internal-format
 #| msgid "%s instructions aren't allowed in %s service routine"
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr "%s инструкции не допускаются в %s сервисной программе"
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, fuzzy, gcc-internal-format
 #| msgid "%s instructions aren't allowed in %s service routine"
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "%s инструкции не допускаются в %s сервисной программе"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, fuzzy, gcc-internal-format
 #| msgid "%s instructions aren't allowed in function with no_caller_saved_registers attribute"
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "%s инструкции не допускаются в функции с no_caller_saved_registers атрибутом"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "атрибуты fastcall и regparm несовместимы"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "атрибуты regparam и thiscall несовместимы"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "%qE атрибут требует целый константный аргумент"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "аргумент для %qE атрибута больше чем %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "атрибуты fastcall и cdecl несовместимы"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "атрибуты fastcall и stdcall несовместимы"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "атрибуты fastcall и thiscall несовместимы"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "атрибуты stdcall и cdecl несовместимы"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "атрибуты stdcall и fastcall несовместимы"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "атрибуты stdcall и thiscall несовместимы"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "атрибуты cdecl и thiscall несовместимы"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "атрибут %qE используется для неклассового метода"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "несовместимый атрибут %qE игнорируется"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "атрибут %qE допустим только для 32 бит"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "аргумент атрибута %qE не ноль и не один"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "аргументом атрибута %qE должна быть строковая константа"
 
 #
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr ""
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr "программа обслуживания прерываний должна иметь указатель первым аргументом"
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt service routine should have unsigned %sint as the second argument"
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "программа обслуживания прерываний должна иметь беззнаковый %sint вторым аргументом"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr "программа обслуживания прерываний может иметь только указательный аргумент и необязательный целочисленный аргумент"
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt service routine can't have non-void return value"
 msgid "interrupt service routine must return %<void%>"
@@ -43967,52 +43967,52 @@ msgstr "некорректный размер операнда для расши
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "нецелый операнд использован с кодом операнда 'z'"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 #, fuzzy
 #| msgid "the mangling of %<va_list%> has changed in GCC 4.4"
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr "разборка %<va_list%> изменилась в GCC 4.4"
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, fuzzy, gcc-internal-format
 #| msgid "no low registers available for popping high registers"
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "нет свободных low-регистров для выталкивания high-регистров"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32-bit systems"
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "-mcmodel= не поддерживается на 32-битных системах"
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, fuzzy, gcc-internal-format
 #| msgid "HLE_ACQUIRE not used with ACQUIRE or stronger memory model"
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr "HLE_ACQUIRE не использовано с ACQUIRE или более сильной моделью памяти"
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, fuzzy, gcc-internal-format
 #| msgid "HLE_RELEASE not used with RELEASE or stronger memory model"
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr "HLE_RELEASE не использовано с RELEASE или более сильной моделью памяти"
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, fuzzy, gcc-internal-format
 #| msgid "-fdirectives-only is incompatible with -traditional"
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
@@ -44034,8 +44034,8 @@ msgstr "определение статического элемента дан
 msgid "malformed %<#pragma builtin%>"
 msgstr "Некорректный синтаксис #pragma builtin"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "некорректный аргумент атрибута %qE"
@@ -44095,12 +44095,12 @@ msgstr "PRINT_OPERAND: некорректный символ пунктуаци
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "нулевой указатель в вызове PRINT_OPERAND"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "аргумент %d для внутренней функции должен быть константой в диапазоне от %d до %d"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "ошибка при расширении внутренней функции"
@@ -44235,19 +44235,19 @@ msgstr "%qD не совместим с %qD"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%s нельзя использовать в asm в таком контексте"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "%qE атрибут нельзя задавать для локальных переменных"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "%qE атрибут нельзя задавать для локальных переменных"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 #| msgid "Duplicate %s attribute at %L"
 msgid "multiple %qE attribute"
@@ -44361,12 +44361,12 @@ msgstr "несколько атрибутов прерываний не допу
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "interrupt_thread доступен только на fido"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "выражение для границы стека не поддерживается"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int%d%> is not supported on this target"
 msgid "%<-fexcess-precision=16%> is not supported on this target"
@@ -44414,7 +44414,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr "-mxl-multiply-high требует -mno-xl-soft-mul"
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "%qE атрибут требует строковый аргумент"
@@ -44457,136 +44457,136 @@ msgstr "вектор прерывания для %qE атрибута не ес
 msgid "argument to %qE attribute is not intstack"
 msgstr "аргумент %qE атрибута не есть intstack"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "ошибка при обработке некорректных вызовов %qs"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr "атрибут %<interrupt%> требует процессор MIPS32r2 или выше"
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr "обработчики прерываний не могут быть функциями MIPS16"
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, fuzzy, gcc-internal-format
 #| msgid "-fstack-check=specific not implemented for MIPS16"
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr "-fstack-check=specific не реализовано для MIPS16"
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "встроенная функция %qE не поддерживается для MIPS16"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs не поддерживает код MIPS16"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr "MIPS16 PIC для ABI, отличного от o32 и o64"
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, fuzzy, gcc-internal-format
 #| msgid "MIPS16 -mxgot code"
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "код MIPS16 -mxgot"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, fuzzy, gcc-internal-format
 #| msgid "hard-float MIPS16 code for ABIs other than o32 and o64"
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr "аппаратная реализация плавающей арифметики для MIPS16 и ABI, отличного от o32 и o64"
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr "MSA MIPS16 код"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "для %<-mno-gpopt%> требуется %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "неподдерживаемая комбинация: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "%<-%s%> конфликтует с другими ключами, которые задают процессор %s"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "ключ %<-march=%s%> несовместим с выбранным ABI"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "ключ %<-mgp64%> задан для 32-битного процессора"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "ключ %<-mgp32%> задан для 64-битного процессора"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "ключ %<-mgp64%> задан для 32-битного ABI"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "архитектура %qs не поддерживает %<-mfp32%>"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "%<-mgp32%> и %<-mfp64%> могут сочетаться, только если процессор поддерживает команды mfhc1 и mthc1"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%> и %<-mfp64%> могут сочетаться только при использовании ABI o32"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "%<-mfpxx%> использоваться только с o32 ABI"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "%<-march=%s%> требует %<-mfp32%>"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr "%<-mfpxx%> требует %<-mlra%>"
@@ -44596,119 +44596,119 @@ msgstr "%<-mfpxx%> требует %<-mlra%>"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "сочетание %qs and %qs несовместимо с %qs"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "архитектура %qs не поддерживает команды branch-likely"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "архитектура %qs не поддерживает инструкции madd или msub"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "архитектура %qs не поддерживает нечетные регистры одинарной точности"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr "неподдерживаемая комбинация: %qs%s %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr "неподдерживаемая комбинация: %qs %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "невозможно генерировать позиционно-независимый код для %qs"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "позиционно-независимый код требует %qs"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "для %<-mno-gpopt%> требуется %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr "невозможно использовать метод доступа к малым объектам данных для %qs"
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "архитектура %qs не поддерживает %<-m%s=legacy%>"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "архитектура %qs не поддерживает %<-m%s=2008%>"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "для %<-mips3d%> требуется %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs следует использовать вместе с %qs"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr "%<-mmsa%> должно использоваться с %<-mfp64%> и %<-mhard-float%>"
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "архитектура %qs не поддерживает команды формата PS"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "%qs поддерживается только для процессоров, имеющих команду %qs"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "архитектура %qs не поддерживает DSP инструкции"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr "%<-mmsa%> должно использоваться с %<-mfp64%> и %<-mhard-float%>"
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr "%<-mmsa%> должно использоваться с %<-mfp64%> и %<-mhard-float%>"
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "%qs поддерживается только для процессоров, имеющих команды branch likely"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "архитектура %qs не поддерживает команду synci"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "профилирование функций mips16"
@@ -45672,64 +45672,64 @@ msgstr "%<#pragma GCC optimize%> не строка и не число"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "неизвестная модель '#pragma extern_model' '%s'"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, fuzzy, gcc-internal-format
 #| msgid "unexpected attribute before string constant"
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr "неожиданный атрибут перед строковой константой"
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, fuzzy, gcc-internal-format
 #| msgid "variable appears in more than one clause"
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr "%qE встречается более одного раза в конструкции данных"
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, fuzzy, gcc-internal-format
 #| msgid "variable appears in more than one clause"
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr "%qE встречается более одного раза в конструкции данных"
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 #| msgid "variable appears in more than one clause"
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "%qE встречается более одного раза в конструкции данных"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<target(\"arch=\")%> attribute"
 msgid "malformed %<target()%> attribute"
 msgstr "некорректное значение (%qs) для %<target(\"arch=\")%> атрибута"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 #| msgid "%<no-custom-%s%> does not accept arguments"
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "%<no-custom-%s%> не принимает аргументы"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, fuzzy, gcc-internal-format
 #| msgid "unknown property attribute before %qE"
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "неизвестный атрибут свойства перед %qE"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<target(\"arch=\")%> attribute"
 msgid "malformed %<target(\"%s\")%> attribute"
@@ -45799,190 +45799,214 @@ msgstr "невозможно разместить объект абстракт
 msgid "capture by copy of RVV type %qT"
 msgstr "захват копированием неполного типа %qT"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+#| msgid "Builtin function %s requires the -mhtm option"
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "Встроенная функция %s требует опцию -mhtm"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+#| msgid "Builtin function %s requires the -mpaired option"
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "Встроенная функция %s требует опцию --mpaired"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+#| msgid "Builtin function %s requires the -mvsx option"
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "Встроенная функция %s требует опцию -mvsx"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+#| msgid "Builtin function %s requires the -mvsx option"
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "Встроенная функция %s требует опцию -mvsx"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 #| msgid "Builtin function %s requires the -mvsx option"
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "Встроенная функция %s требует опцию -mvsx"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%s(%A)%>"
 msgid "no matching function call to %qE with empty arguments"
 msgstr "нет соответствующей функции для вызова %<%s(%A)%>"
 
 #
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 #| msgid "unknown cpu %qs for -mtune"
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "неизвестный процессор %qs для -mtune"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, fuzzy, gcc-internal-format
 #| msgid "the ABI of passing structure with complex float member has changed in GCC 4.4"
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "ABI для передачи структуры с элементом complex float изменен в GCC 4.4"
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "Аргумент AltiVec передан в функцию без прототипа"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 #| msgid "Use the SPE ABI extensions."
 msgid "%s %qT requires the V ISA extension"
 msgstr "Использовать расширения SPE ABI."
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, fuzzy, gcc-internal-format
 #| msgid "function attributes %qs and %qs have no effect on %qs function"
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "атрибуты функций %qs и %qs не воздействуют на %qs функцию"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qE attribute is neither zero, nor one"
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "аргумент атрибута %qE не ноль и не один"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgid "%qs applied to non-RVV type %qT"
 msgstr "атрибут %qE применен к неклассовому, неперечислимому типу %qT"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires an integer constant argument"
 msgid "%qs requires an integer constant"
 msgstr "%qE атрибут требует целый константный аргумент"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, fuzzy, gcc-internal-format
 #| msgid "-mdiv requires -march to subsume the %<M%> extension"
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr "-mdiv требует -march, чтобы понять %<M%> расширение"
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support ARM mode"
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "целевой процессор не поддерживает режим ARM"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs with -f%s"
 msgid "code model %qs with %qs"
 msgstr "модель кода %qs с -f%s"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, fuzzy, gcc-internal-format
 #| msgid "requested ABI requires -march to subsume the %qc extension"
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr "запрошенный ABI требует -march, чтобы понять %qc расширение"
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, fuzzy, gcc-internal-format
 #| msgid "ABI requires -march=rv%d"
 msgid "ABI requires %<-march=rv%d%>"
 msgstr "ABI требует -march=rv%d"
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and %d"
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d не между %d и %d"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function cannot have arguments"
 msgid "%qs function cannot have different interrupt type"
 msgstr "%qs функция не может иметь аргументы"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -46254,35 +46278,35 @@ msgstr ""
 msgid "builtin %qs only accepts 3 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, fuzzy, gcc-internal-format
 #| msgid "vec_lvsl is deprecated for little endian; use assignment for unaligned loads and stores"
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "vec_lvsl устарело для little endian; используйте присваивание для невыровненных загрузок и сохранений"
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, fuzzy, gcc-internal-format
 #| msgid "vec_lvsr is deprecated for little endian; use assignment for unaligned loads and stores"
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "vec_lvsr устарело для little endian; используйте присваивание для невыровненных загрузок и сохранений"
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards %qv qualifier from pointer target type"
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "передача аргумента %d %qE отменяет квалификатор %qv указуемого типа"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "%qs is not supported in this compiler configuration"
@@ -46324,31 +46348,23 @@ msgstr "некорректные операнды типов %qT и %qT для 
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "GCC вектор, переданный по ссылке: нестандартное расширение ABI без гарантий совместимости"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, fuzzy, gcc-internal-format
-#| msgid "Use the ELFv2 ABI."
-msgid "%qs requires the ELFv2 ABI"
-msgstr "Использовать ELFv2 ABI."
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "кадр стека слишком велик"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "incorrect number of arguments to function %qE"
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "неправильное число аргументов в вызове функции %qE"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr ""
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, fuzzy, gcc-internal-format
 #| msgid "Stack frame larger than 2G is not supported for -fsplit-stack"
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
@@ -46481,110 +46497,120 @@ msgstr ""
 msgid "unknown option for %<%s=%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "отсутствует профилирование 64-битного кода для этого ABI"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "использование %<long double%> в типах AltiVec некорректно"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "использование типов boolean в типах AltiVec некорректно"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "использование %<complex%> в типах AltiVec некорректно"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 #| msgid "use of decimal floating point types in AltiVec types is invalid"
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "использование типов decimal floating point в типах AltiVec некорректно"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "использование %<long%> в типах AltiVec не рекомендуется; используйте %<int%>"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
 #
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "мультиверсионность виртуальной функции не поддерживается"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, fuzzy, gcc-internal-format
 #| msgid "Builtin function %s requires the -mvsx option"
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "Встроенная функция %s требует опцию -mvsx"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, fuzzy, gcc-internal-format
 #| msgid "Builtin function %s requires the -mvsx option"
 msgid "type %<__vector_pair%> requires the %qs option"
@@ -46636,7 +46662,7 @@ msgstr "инструкции RX FPU не поддерживают NaNs и бес
 msgid "builtin %qs can only be used on vector types"
 msgstr "встроенная функция vec_step может использоваться только для векторных типов"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr "константное значение требуется для встроенной функции %qF (аргумент %d)"
@@ -46712,246 +46738,246 @@ msgstr "%qs соответствующий вариант устарел."
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "константный аргумент %d для внутренней функции %qF вне диапазона для целевого типа"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument %d for builtin %qF is out of range ("
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "константный аргумент %d для внутренней функции %qF вне диапазона ("
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument %d for builtin %qF is out of range (0.."
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "константный аргумент %d для внутренней функции %qF вне диапазона (0.."
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument %d for builtin %qF is out of range (0.."
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "константный аргумент %d для внутренней функции %qF вне диапазона (0.."
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, fuzzy, gcc-internal-format
 #| msgid "builtin %qF is not supported without -mhtm (default with -march=zEC12 and higher)."
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr "встроенная функция %qF не поддерживается без -mhtm (по умолчанию с -march=zEC12 и выше)."
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, fuzzy, gcc-internal-format
 #| msgid "builtin %qF requires -mvx (default with -march=z13 and higher)."
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr "встроенная функция %qF требует -mvx (по умолчанию с -march=z13 и выше)."
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, fuzzy, gcc-internal-format
 #| msgid "Builtin %qF requires z14 or higher."
 msgid "Builtin %qF requires z14 or higher"
 msgstr "Встроенная функция %qF требует z14 или выше."
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, fuzzy, gcc-internal-format
 #| msgid "Builtin %qF requires z14 or higher."
 msgid "Builtin %qF requires z15 or higher"
 msgstr "Встроенная функция %qF требует z14 или выше."
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr "неразрешенная перегрузка внутренней функции"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "некорректный встроенный icode"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "некорректный аргумент %d для встроенной функции %qF"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
 #
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr ""
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "суммарный размер локальных переменных превышает архитектурный предел"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "размер кадра %qs равен %wd байт"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs использует динамическое размещение стека"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, fuzzy, gcc-internal-format
 #| msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr "передача параметров для аргументов типа %qT изменилась в GCC 7.1"
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 #| msgid "%<__RTL%> function cannot be compiled with %<-flto%>"
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "%<__RTL%> функция не может компилироваться с %<-flto%>"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "64-битный ABI в режиме ESA/390 не поддерживается"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr "аппаратная поддержка векторов отсутствует на %s"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, fuzzy, gcc-internal-format
 #| msgid "hardware vector support not available with -msoft-float"
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr "аппаратная поддержка векторов недоступна с -msoft-float"
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "hardware decimal floating point instructions not available on %s"
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "аппаратные инструкции десятичной плавающей точки отсутствуют на %s"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "hardware decimal floating point instructions not available in ESA/390 mode"
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "аппаратные инструкции десятичной плавающей точки отсутствуют в режиме ESA/390"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float"
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr "ключ -mhard-dfp не может быть использован вместе с -msoft-float"
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, fuzzy, gcc-internal-format
 #| msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "сочетание ключей -mbackchain -mpacked-stack -mhard-float не поддерживается"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "размер стека должен быть больше чем охраняющее значение стека"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "размер стека должен быть больше чем 64k"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, fuzzy, gcc-internal-format
 #| msgid "-mstack-guard implies use of -mstack-size"
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "ключ -mstack-guard влечет использование ключа -mstack-size"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is supported only for SH2A"
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "атрибут %qE поддерживается только для SH2A"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "аргументы для %qs должны быть неотрицательными целыми числами"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 #| msgid "attribute %<target%> argument not a string"
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "аргумент атрибута %<target%> не строка"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "значение %qs не поддерживается атрибутом %<target%>"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 #| msgid "invalid constant"
 msgid "invalid cc output constraint: %qs"
 msgstr "недопустимая константа"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "placeholder constraints not satisfied"
 msgid "multiple cc output constraints not supported"
 msgstr "ограничения заполнителя не удовлетворены"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, fuzzy, gcc-internal-format
 #| msgid "asm-specifier for variable %qE conflicts with asm clobber list"
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "asm-спецификатор для переменной %qE конфликтует со списком переписываемых регистров"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for asm flag output"
 msgid "invalid type for cc output constraint"
@@ -47423,8 +47449,8 @@ msgstr "атрибут %qE не действует"
 msgid "attribute %qs applies to array types only"
 msgstr "атрибут %qs применим только к массивным типам"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "использование пустого (void) значения"
@@ -47501,7 +47527,7 @@ msgstr "тип массива %q+D завершен несовместимым 
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "в этой области видимости уже есть декларация %qD"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr "исходное определение находится здесь"
@@ -47746,7 +47772,7 @@ msgstr "декларация %q+D перекрывает предшествую
 msgid "declaration of %qD shadows a parameter"
 msgstr "декларация %qD перекрывает параметр"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "декларация %qD перекрывает глобальную декларацию"
@@ -47756,7 +47782,7 @@ msgstr "декларация %qD перекрывает глобальную д
 msgid "declaration of %qD shadows a previous local"
 msgstr "декларация %qD перекрывает декларированную ранее локальную переменную"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "перекрытая декларация находится здесь"
@@ -47822,7 +47848,7 @@ msgstr "%qE не описан (первое использование в это
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "сообщение о каждом неописанном идентификаторе выдается один раз в каждой функции, где он встречается"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "ссылка на метку %qE вне функции"
@@ -47857,7 +47883,7 @@ msgstr "переход в выражение-оператор"
 msgid "duplicate label declaration %qE"
 msgstr "повторная декларация метки %qE"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "дублирование метки %qD"
@@ -47893,7 +47919,7 @@ msgstr "по переключателю происходит переход в 
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE: определение с некорректным видом тега"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr "%qE атрибут применен к %qD с void типом возврата"
@@ -48046,12 +48072,12 @@ msgstr "ISO C90 не поддерживает конструкцию %<[*]%> в
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%> не допускается нигде кроме прототипа функции"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%s%> not allowed to be specified in this context"
@@ -48062,7 +48088,7 @@ msgstr "%<this%> недопустим в данном контексте"
 msgid "%q+D is usually a function"
 msgstr "%q+D обычно является функцией"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "отсутствует предварительная декларация %qD"
@@ -48142,7 +48168,7 @@ msgstr "некорректная попытка разместить в реги
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "неинициализированная константа %qD не допускается в C++"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr "%q+D в declare target директиве не имеет отображаемого типа"
@@ -48332,7 +48358,7 @@ msgstr "класс хранения в декларации параметра %
 msgid "storage class specified for unnamed parameter"
 msgstr "класс хранения задан для неименованного параметра"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "класс хранения задан для имени типа"
@@ -48395,7 +48421,7 @@ msgstr "имя %qE описано как массив функций"
 msgid "declaration of type name as array of functions"
 msgstr "имя типа описано как массив функций"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "неверное употребление структуры с регулируемым элементом-массивом"
@@ -48501,7 +48527,7 @@ msgstr "имя типа объявлено как функция, возвращ
 msgid "function definition has qualified void return type"
 msgstr "в определении функции задан квалифицированный void-тип возвращаемого значения"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "квалификаторы в описании типа возвращаемого значения функции "
@@ -48628,7 +48654,7 @@ msgstr "в ISO C функции с квалификаторами const и volat
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "элемент структуры или объединения не может иметь переменно модифицируемый тип"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "переменная или поле %qE объявлено void"
@@ -48737,7 +48763,7 @@ msgstr "не вложенная функция с переменно модиф
 msgid "object with variably modified type must have no linkage"
 msgstr "объект с переменно модифицируемым типом не должен иметь привязки"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "декларация функции не является прототипом"
@@ -48827,18 +48853,18 @@ msgstr "вложенное переопределение %<union %E%>"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "вложенное переопределение %<struct %E%>"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr "определение типа в выражении %qs некорректно в C++"
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 #| msgid "unknown field %qE specified in initializer"
 msgid "%qT defined in underspecified object initializer"
 msgstr "неизвестное поле %qE в инициализаторе"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "декларация ничего не описывает"
@@ -48868,360 +48894,360 @@ msgstr "пустая структура имеет размер 0 в C, разм
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr "пустое объединение имеет размер 0 в C, размер 1 в C++"
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "объединение не содержит именованных элементов"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "объединение без элементов"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "структура не содержит именованных элементов"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "структура не содержит элементов"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "регулируемый элемент-массив в объединении"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "регулируемый элемент-массив - не последний элемент структуры"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "регулируемый элемент-массив в структуре без именованных элементов"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member not at end of struct"
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "регулируемый элемент-массив - не последний элемент структуры"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "тип %qT слишком велик"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, fuzzy, gcc-internal-format
 #| msgid "reverse scalar storage order"
 msgid "type punning toggles scalar storage order"
 msgstr "обратить порядок хранения скаляра"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "трактовка данного объединения как прозрачного невозможна"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of typedef %q+D with variably modified type"
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "переопределение typedef %q+D с переменно модифицируемым типом"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "повторное определение %<struct %E%>"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "вложенное переопределение %<enum %E%>"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "повторная декларация %<enum %E%>"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, fuzzy, gcc-internal-format
 #| msgid "specified mode too small for enumeral values"
 msgid "specified mode too small for enumerated values"
 msgstr "заданный режим слишком мал для значений перечислимого типа"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "перечислимый тип превышает диапазон максимального целочисленного типа"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "перечислимый тип превышает диапазон максимального целочисленного типа"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of %<enum %E%>"
 msgid "conflicting redefinition of enum %qT"
 msgstr "вложенное переопределение %<enum %E%>"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "значение перечислимого типа для %qE не является константой целого типа"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "значение перечислимого типа для %qE не является целочисленным константным выражением"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "переполнение значений перечислимого типа"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgid "enumerator value outside the range of underlying type"
 msgstr "значение перечислимого типа для %qD должно иметь целочисленный или unscoped перечислимый тип"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "enumerator value outside the range of %qs"
 msgstr "в ISO C значения перечислимого типа ограничены диапазоном типа %<int%>"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "в ISO C значения перечислимого типа ограничены диапазоном типа %<int%>"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %qD given attribute noinline"
 msgid "inline function %qD given attribute %qs"
 msgstr "inline функция %qD с атрибутом noinline"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "тип возвращаемого значения не полный"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "по умолчанию возвращаемый тип функции - %<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr "%q+D определена как variadic функциях без прототипа"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "прототип для %qD не был предварительно определен"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "%qD использована без прототипа, до её определению"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "функция %qD использована до определения без предварительной декларации"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "возвращаемое значение функции %qD - не %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr "%<_Atomic%>-квалифицированный возвращаемый тип в %qD"
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "обычно %qD является нестатической функцией"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "старый стиль деклараций параметров в определении функции с прототипом"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "в традиционном С не поддерживаются определения функций в стиле ISO C"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C99 does not support %<_Static_assert%>"
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "ISO C99 не поддерживает %<_Static_assert%>"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr "определение функции в старом стиле"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "в списке параметров пропущено имя параметра"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD декларирован как не параметр"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "более одного параметра с именем %qD"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "параметр %qD объявлен с типом void"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "по умолчанию для %qD принят тип %<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "параметр %qD имеет неполный тип"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "декларация параметра %q+D, не заданного в списке параметров"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "число аргументов не соответствует встроенному прототипу"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "число аргументов не соответствует прототипу"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "декларация прототипа"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "аргумент %qD после приведения типа не соответствует встроенному прототипу"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "аргумент %qD после приведения типа не соответствует прототипу"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "аргумент %qD не соответствует встроенному прототипу"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "аргумент %qD не соответствует прототипу"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "в функции, которая должна возвращать значение, отсутствует оператор return"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "параметру %qD присвоено значение, но он не использован"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "декларации в заголовке %<for%>-цикла допускаются только в C99 или C11 режиме"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, fuzzy, gcc-internal-format
 #| msgid "use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code"
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "используйте опцию -std=c99, -std=gnu99,-std=c11 или -std=gnu11 для компиляции вашей программы"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, gcc-internal-format
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 не поддерживает конструкцию %<for%> в декларациях циклов"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "декларация статической переменной %qD в заголовке %<for%>-цикла"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "декларация %<extern%> переменной %qD в заголовке %<for%>-цикла"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "декларация %<struct %E%> в заголовке %<for%>-цикла"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "декларация %<union %E%> в заголовке %<for%>-цикла"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "декларация %<enum %E%> в заголовке %<for%>-цикла"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "декларация %qD, не являющегося переменной, в заголовке %<for%>-цикла"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr "несовместимые квалификаторы адресного пространства %qs и %qs"
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "повторный %qE  спецификатор декларации"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "в декларации задано более одного класса хранения"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<auto%>"
 msgid "%qs used with %<auto%>"
@@ -49229,262 +49255,262 @@ msgstr "%qE использован с %<auto%>"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<register%>"
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%qE использован с %<register%>"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "два или более типа в декларации"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "GCC не поддерживает тип %<long long long%>"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 не поддерживает тип %<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 не поддерживает комплексные типы"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO C не поддерживает типы с насыщением"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "дублирование %qE"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C не поддерживает типы %<__int%d%>"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "%<__int%d%> не поддерживается для этой целевой машины"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 не поддерживает булевы типы"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support the %<_Float%d%s%> type"
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C не поддерживает тип %<_Float%d%s%>"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "%<_Float%d%s%> не поддерживается для этой целевой машины"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support decimal floating point"
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C не поддерживает десятичный тип с плавающей точкой"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "типы с фиксированной точкой не поддерживаются для этой целевой платформы"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C не поддерживает типы с фиксированной точкой"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 #| msgid "case label is not an integer constant expression"
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "case-метка не является целочисленным константным выражением"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant expression"
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "значение перечислимого типа для %qE не является целочисленным константным выражением"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr "в C++ результатом поиска %qD будет поле, а не тип"
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE не является встроенным типом или typedef-типом"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE - не в начале декларации"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "%qE использован с %<auto%>"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "%qE использован с %<register%>"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "%qE использован с %<typedef%>"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<register%>"
 msgid "%qE used with %<constexpr%>"
 msgstr "%qE использован с %<register%>"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "ISO C99 не поддерживает %qE"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 не поддерживает %qE"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> перед %<extern%>"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> перед %<static%>"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<auto%>"
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%qE использован с %<auto%>"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<register%>"
 msgid "%qE used with %<extern%>"
 msgstr "%qE использован с %<register%>"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 #| msgid "%qs used with %qE"
 msgid "%qE used with %qs"
 msgstr "%qs использован с %qE"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr "повторение %<_Thread_local%> или %<__thread%>"
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%qs использован с %qE"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%<constexpr%> used with %qE"
 msgstr "спецификатор %<__thread%> использован с %qE"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<_Sat%> использован без %<_Fract%> или %<_Accum%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C не поддерживает %<complex%> как эквивалент %<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support %<__int%d%> types"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C не поддерживает типы %<__int%d%>"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C не поддерживает целочисленные комплексные типы"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 #| msgid "Fixed line length must be at least seven"
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "Фиксированная длина строки должна быть по крайней мере семь"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++ не поддерживает %<__int%d%> для %qs"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr "%<#pragma omp declare reduction%> объединитель ссылается на переменную %qD, которая не %<omp_out%> и не %<omp_in%>"
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr "%<#pragma omp declare reduction%> инициализатор ссылается на переменную %qD, которая не %<omp_priv%> и не %<omp_orig%>"
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr "сдвиг влево отрицательного значения"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "сдвиг влево на отрицательное число позиций"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "сдвиг вправо на отрицательное число позиций"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "величина сдвига влево больше или равна ширине данного типа"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "величина сдвига вправо больше или равна ширине данного типа"
@@ -49515,7 +49541,7 @@ msgstr "противоречивый маркер управления верс
 msgid "to match this %qs"
 msgstr ""
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr "ожидался конец строки"
@@ -49525,8 +49551,8 @@ msgstr "ожидался конец строки"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C не допускает пустых единиц трансляции"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -49567,9 +49593,9 @@ msgstr "неизвестное имя типа %qE; имелось в виду %
 msgid "unknown type name %qE"
 msgstr "неизвестное имя типа %qE"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "ожидались спецификаторы декларации"
@@ -49603,7 +49629,7 @@ msgstr "за атрибутом %<fallthrough%> не следует %<;%>"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "ожидалось %<;%>, идентификатор или %<(%>"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "префиксные атрибуты для методов игнорируются"
@@ -49623,7 +49649,7 @@ msgstr "неожиданный атрибут"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "за атрибутом %<fallthrough%> не следует %<;%>"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 #| msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgid "%<assume%> attribute not followed by %<;%>"
@@ -49719,7 +49745,7 @@ msgstr "выражение в статическом утверждении не
 msgid "static assertion failed: %E"
 msgstr "не выполнено статическое утверждение: %E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, gcc-internal-format
 msgid "static assertion failed"
 msgstr "нарушено статическое утверждение"
@@ -49795,10 +49821,10 @@ msgstr "пустое перечисление некорректно"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "ожидался идентификатор"
@@ -49962,7 +49988,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr "%<nowait%> предложение не может использоваться вместе с %<copyprivate%>"
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -49972,8 +49998,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -50151,12 +50177,12 @@ msgstr "ISO C не поддерживает выражения ?: с пусты
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr ""
@@ -50308,7 +50334,7 @@ msgstr "ISO C90 не поддерживает %<__func__%> предопреде
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "ожидалось выражение"
@@ -50640,13 +50666,13 @@ msgstr "ожидалась декларация метода objective-c"
 msgid "no type or storage class may be specified here,"
 msgstr "в этом месте не может указываться ни тип, ни класс хранения,"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, fuzzy, gcc-internal-format
 #| msgid "unknown property attribute"
 msgid "empty property attribute list"
 msgstr "неизвестный атрибут свойства"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing property attribute"
@@ -50658,61 +50684,61 @@ msgstr "отсутствует атрибут Code"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "неизвестный атрибут свойства"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "неизвестный атрибут свойства"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%> before %qE"
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "ожидалось %<=%> перед %qE"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected %qE selector name"
 msgstr "ожидался selection-statement"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, fuzzy, gcc-internal-format
 #| msgid "setter name must terminate with %<:%>"
 msgid "setter method names must terminate with %<:%>"
 msgstr "имя setter должно заканчиваться %<:%>"
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma %s%> может использоваться только в составных операторах"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<#pragma acc routine%> должна быть в контексте файла"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp section%> может использоваться только в конструкции %<#pragma omp sections%>"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<#pragma omp section%> может использоваться только в конструкции %<#pragma omp sections%>"
@@ -50723,25 +50749,25 @@ msgstr "%<#pragma omp section%> может использоваться толь
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma %s%> может использоваться только в составных операторах"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "for, while или do оператор ожидался"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%> должна быть первой"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "слишком много конструкций %qs"
@@ -50756,65 +50782,65 @@ msgstr "выражение должно быть целочисленным"
 msgid "expected %<)%> or %<,%>"
 msgstr "ожидалась %<)%> или %<,%>"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD не переменная"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD не указательная переменная"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr "collapse аргумент требует положительного константного целого выражения"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%> before %<#pragma%>"
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "ожидалось %<none%> или %<shared%> перед %<#pragma%>"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected constant logical expression"
 msgstr "ожидалось целочисленное выражение"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "ожидалось %<data%>, %<update%>, %<enter%> или %<exit%>"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "ожидалось %<data%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr "слишком много %<if%> клаузул с %qs модификатором"
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "слишком много %<if%> клаузул"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr "слишком много %<if%> клаузул без модификатора"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr "если какая-либо %<if%> клаузула имеет модификатор, то все %<if%> должны использовать модификатор"
@@ -50837,23 +50863,23 @@ msgstr "значение %<num_threads%> должно быть положите
 msgid "%<num_tasks%> value must be positive"
 msgstr "значение %<num_tasks%> должно быть положительным"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "значение %<grainsize%> должно быть положительным"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "значение %<priority%> должен быть неотрицательным"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "ожидалось целочисленное выражение"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%> before %<decltype%>"
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
@@ -50865,100 +50891,100 @@ msgstr "ожидалось %<=%>, %<,%>, %<;%>, %<asm%> или %<__attribute__%>
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "ожидалось %<class%>, %<typename%> или %<template%>"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses with %qs modifier"
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "слишком много %<if%> клаузул с %qs модификатором"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses with %qs modifier"
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "слишком много %<if%> клаузул с %qs модификатором"
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "%qs выражение должно быть целочисленным"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "значение %qs должно быть положительным"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "слишком много %<static%> аргументов"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, gcc-internal-format
 msgid "unexpected argument"
 msgstr "неожиданный аргумент"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "%<tile%> аргумент требует положительной целочисленной константы"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses"
 msgid "too many %<self%> clauses"
 msgstr "слишком много %<if%> клаузул"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "ожидалось %<none%> или %<shared%>"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%>"
 msgid "expected %<concurrent%>"
 msgstr "ожидалось %<new%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "ожидалось %<class%>, %<typename%> или %<template%>"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr "ordered аргумент требует положительного константного целого выражения"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "ожидалось %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> или идентификатор"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "заданы оба модификатора %<monotonic%> и %<nonmonotonic%>"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "расписание %<runtime%> не имеет параметра %<chunk_size%>"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "расписание %<auto%> не имеет параметра %<chunk_size%>"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "значение размера чанка должно быть положительным"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "некорректный тип планирования"
@@ -50968,22 +50994,22 @@ msgstr "некорректный тип планирования"
 msgid "%<num_teams%> value must be positive"
 msgstr "значение %<num_teams%> должно быть положительным"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "значение %<thread_limit%> должно быть положительным"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr "%<aligned%> клаузула выражения выравнивания должна быть положительным константным целочисленным выражением"
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %<allocator%> or %<align%>"
@@ -50995,24 +51021,24 @@ msgstr "ожидалась %<,%> или %<)%>"
 msgid "duplicate %qs modifier"
 msgstr "дублирование %qs"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 #| msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "%<aligned%> клаузула выражения выравнивания должна быть положительным константным целочисленным выражением"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 #| msgid "multiple ref-qualifiers"
 msgid "multiple linear modifiers"
 msgstr "несколько ref-квалификаторов"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, fuzzy, gcc-internal-format
 #| msgid "multiple ref-qualifiers"
 msgid "multiple %<step%> modifiers"
@@ -51033,69 +51059,69 @@ msgstr "%<safelen%> клаузула выражения должна быть п
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr "%<simdlen%> клаузула выражения должна быть положительным константным целочисленным выражением"
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 #| msgid "%qs feature modifier is incompatible with %s %s"
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "модификатор %qs возможности несовместим с %s %s"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "некорректный depend вид"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 #| msgid "invalid map kind"
 msgid "invalid doacross kind"
 msgstr "некорректный map вид"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses with %qs modifier"
 msgid "too many %<always%> modifiers"
 msgstr "слишком много %<if%> клаузул с %qs модификатором"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses with %qs modifier"
 msgid "too many %<close%> modifiers"
 msgstr "слишком много %<if%> клаузул с %qs модификатором"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses with %qs modifier"
 msgid "too many %<present%> modifiers"
 msgstr "слишком много %<if%> клаузул с %qs модификатором"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, gcc-internal-format
 msgid "invalid map kind"
 msgstr "некорректный map вид"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%> or %<typename%>"
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "ожидалось %<class%> или %<typename%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, fuzzy, gcc-internal-format
 #| msgid "%<linear%> clause step expression must be integral"
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr "%<linear%> клаузула выражения шага должна быть целочисленным выражением"
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "некорректный dist_schedule вид"
@@ -51111,94 +51137,94 @@ msgstr "некорректный proc_bind вид"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "ожидалось %<;%>, %<,%> или %<)%>"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected OpenACC parallelism."
 msgid "expected an OpenACC clause"
 msgstr "Неожиданный OpenACC параллелизм."
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs не является корректным для %qs"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%qs должна быть первой клаузулой %qs"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 #| msgid "expected label"
 msgid "expected an OpenMP clause"
 msgstr "ожидалась метка"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr "нет допустимых клаузул заданных в %<#pragma acc declare%>"
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "секция массива в %<#pragma acc declare%>"
 
 #
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr "%qD должна быть глобальной переменной в %<#pragma acc declare link%>"
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "некорректная OpenACC клаузула в контексте файла"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "некорректное использование %<extern%> переменной %qD в %<#pragma acc declare%>"
 
 #
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "некорректное использование %<global%> переменной %qD в %<#pragma acc declare%>"
 
 #
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr "%qD должна быть глобальной переменной в %<#pragma acc declare link%>"
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr "переменная %qD использована более одного раза с %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "ожидалось %<data%> после %<#pragma acc %s%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr "%<#pragma acc %s data%> не содержит клаузулу перемещения данных"
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -51213,7 +51239,7 @@ msgstr "%qE не был декларирован"
 msgid "expected function name"
 msgstr "ожидалось имя функции"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "%qD не ссылается на функцию"
@@ -51223,22 +51249,22 @@ msgstr "%qD не ссылается на функцию"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "за %<#pragma acc routine%> не следует немедленно декларация или определение функции"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "за %<#pragma acc routine%> не следует немедленно декларация или определение одиночной функции"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "%<#pragma acc routine%> должна быть применена до использования"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<#pragma acc routine%> должна быть применена до определения"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr "%<#pragma acc update%> должна содержать по крайней мере одну %<device%>, %<host%> или %<self%>клаузулу"
@@ -51265,7 +51291,7 @@ msgstr ""
 msgid "modified here"
 msgstr "объединение определено здесь"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 #| msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
@@ -51306,126 +51332,126 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "ожидалась клаузула %<depend%>, %<destroy%> или %<update%>"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "ожидалось %<class%>, %<typename%> или %<template%>"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr "ожидалось %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> или идентификатор"
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many atomic clauses"
 msgstr "слишком много конструкций %qs"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many memory order clauses"
 msgstr "слишком много конструкций %qs"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "%<#pragma omp target update%> должна содержать хотя бы одну %<from%> или %<to%> клаузулу"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in %qs clause"
 msgid "%qs clause requires %qs clause"
 msgstr "%qD не есть переменная в %qs клаузуле"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp target update%> должна содержать хотя бы одну %<from%> или %<to%> клаузулу"
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp target update%> должна содержать хотя бы одну %<from%> или %<to%> клаузулу"
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr "%<#pragma omp target update%> должна содержать хотя бы одну %<from%> или %<to%> клаузулу"
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr "%<#pragma omp target update%> должна содержать хотя бы одну %<from%> или %<to%> клаузулу"
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%> after union definition"
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "ожидалось %<;%> после определения объединения"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%> before string constant"
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr "ожидалось %<;%>, %<,%> или %<)%> перед строковой константой"
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 #| msgid "invalid form of %<#pragma omp atomic%>"
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "некорректный формат %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "unexpected %<else%>"
 msgstr "ожидалось %<delete%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 #| msgid "invalid form of %<#pragma omp atomic%>"
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "некорректный формат %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "некорректный формат %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "некорректный оператор для %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic capture%> использует два различных выражения для памяти"
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant expression"
 msgid "%<depobj%> expression is not lvalue expression"
@@ -51437,29 +51463,29 @@ msgstr "выражение %qE не является константным вы
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "выражение %qE не является константным выражением"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "ожидалось %<data%>, %<update%>, %<enter%> или %<exit%>"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "ожидалась клаузула %<depend%>, %<destroy%> или %<update%>"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "ожидалось %<class%>, %<typename%> или %<template%>"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, fuzzy, gcc-internal-format
 #| msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgid "%<flush%> list specified together with memory order clause"
@@ -51470,183 +51496,183 @@ msgstr "%<nonmonotonic%> модификатор планирования зад
 msgid "expected %<(%> or end of line"
 msgstr "ожидалось %<(%> или конец строки"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp cancel%> may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp taskyield%> может использоваться только в составных операторах"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<while%> before %<decltype%>"
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "ожидалось %<while%> перед %<decltype%>"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected %<#pragma omp scan%>"
 msgstr "ожидалась конструкция %<#pragma omp%>"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp cancel%> may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp taskyield%> может использоваться только в составных операторах"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "ожидалась декларация итерации или инициализация"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 #| msgid "not enough perfectly nested loops"
 msgid "not enough nested loops"
 msgstr "недостаточно аккуратно вложенные циклы"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr "%<ordered%> параметр клаузулы меньше чем %<collapse%>"
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "ожидался оператор for"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "итерационная переменная %qD не должна быть firstprivate"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp ordered%> with %<depend> clause may only be used in compound statements"
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp barrier%> может использоваться только в составных операторах"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "ожидался %<for%> после %qs"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "ожидалось %<point%>"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target data%> с map-type отличном от %<to%>, %<from%>, %<tofrom%> или %<alloc%> на %<map%> клаузуле"
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target data%> must contain at least one %<map%> clause"
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr "%<#pragma omp target data%> должна содержать хотя бы одну %<map%> клаузулу"
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr "%<#pragma omp target update%> должна содержать хотя бы одну %<from%> или %<to%> клаузулу"
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target enter data%> with map-type other than %<to%> or %<alloc%> on %<map%> clause"
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target enter data%> с map-type отличном от %<to%> или %<alloc%> на %<map%> клаузуле"
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target enter data%> должна содержать хотя бы одну %<map%> клаузулу"
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<release%> or %<delete%> on %<map%> clause"
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr "%<#pragma omp target exit data%> с map-type отличном от %<from%>, %<release%> или %<delete%> на %<map%> клаузуле"
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target exit data%> должна содержать хотя бы одну %<map%> клаузулу"
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target%> с map-type отличном от %<to%>, %<from%>, %<tofrom%> или %<alloc%> на %<map%> клаузуле"
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp declare simd%> must be followed by function declaration or definition or another %<#pragma omp declare simd%>"
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "за %<#pragma omp declare simd%> должна следовать декларация функции или определение или другая %<#pragma omp declare simd%>"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp declare simd%> must be followed by function declaration or definition"
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "за %<#pragma omp declare simd%> должна следовать декларация или определение функции"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected trait selector name"
 msgstr "ожидался selection-statement"
 
 #
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, fuzzy, gcc-internal-format
 #| msgid "unknown value %qs for 'tune' target %s"
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "неизвестное значение %s для ключа -mfpu"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, fuzzy, gcc-internal-format
 #| msgid "%<no-custom-%s%> does not accept arguments"
 msgid "selector %qs does not accept any properties"
 msgstr "%<no-custom-%s%> не принимает аргументы"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 #| msgid "%<friend%> can only be specified inside a class"
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<friend%> может быть задан только внутри класса"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 #| msgid "%qs length expression must be positive constant integer expression"
 msgid "%<score%> argument must be constant integer expression"
 msgstr "%qs выражение длины должно быть положительным константным целочисленным выражением"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 #| msgid "%<priority%> value must be non-negative"
 msgid "%<score%> argument must be non-negative"
 msgstr "значение %<priority%> должен быть неотрицательным"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected identifier or string literal"
 msgstr "ожидался строковый литерал"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "property must be constant integer expression"
 msgstr "ожидалось целочисленное выражение"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, fuzzy, gcc-internal-format
 #| msgid "property %qs already specified in %<@synthesize%>"
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
@@ -51656,317 +51682,317 @@ msgstr "свойство %qs уже специфицировано в %<@synthes
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 #| msgid "using parameters for %<linear%> step is not supported yet"
 msgid "%<requires%> selector is not supported yet"
 msgstr "модель кода %<large%> пока не поддерживается"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected context selector set name"
 msgstr "ожидался selection-statement"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<catch%>"
 msgid "expected %<match%>"
 msgstr "ожидалось %<catch%>"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %L is not a function"
 msgid "variant %qD is not a function"
 msgstr "%qs в %L не есть функция"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 #| msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "  типы %qT и %qT имеют несовместимые cv-qualifiers"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp declare simd%> not immediately followed by a function declaration or definition"
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "%<#pragma omp declare simd%>, за которой не следует немедленно декларация функции или определение"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp declare simd%> not immediately followed by a single function declaration or definition"
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma omp declare simd%>, за которой не следует немедленно одиночная декларация функции или определение"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, fuzzy, gcc-internal-format
 #| msgid "%qD specified both in declare target %<link%> and %<to%> clauses"
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr "%qD задан и в declare target %<link%> и в %<to%> клаузулах"
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, fuzzy, gcc-internal-format
 #| msgid "%qD specified both in declare target %<link%> and %<to%> clauses"
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr "%qD задан и в declare target %<link%> и в %<to%> клаузулах"
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr "%<nowait%> предложение не может использоваться вместе с %<copyprivate%>"
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "ожидалось %<target%>"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%> or %<typename%>"
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "ожидалось %<class%> или %<typename%>"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%>"
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr "%<#pragma omp end declare target%> без соответствующей %<#pragma omp declare target%>"
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute with %s attribute at %L"
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "%s атрибут конфликтует с %s атрибутом в %L"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%> or %<typename%>"
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "ожидалось %<class%> или %<typename%>"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr "%<#pragma omp declare reduction%> не в контексте файла или блока"
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr "предекларированный арифметический тип в %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr "функциональный или массивный тип в %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "%<_Atomic%> квалифицированный тип в %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr "const, volatile или restrict квалифицированный тип в %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr "повторная декларация %qs %<#pragma omp declare reduction%> для типа %qT"
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "предыдущая %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "ожидалось %<omp_priv%> или имя функции"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "ожидалось имя функции %<(%>"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr "одним из аргументов вызова инициализатора должен быть %<&omp_priv%>"
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<simd%> or %<reduction%> or %<target%>"
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "ожидалось %<simd%> или %<reduction%> или %<target%>"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "ожидалось %<class%>, %<typename%> или %<template%>"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target data%> must contain at least one %<map%> clause"
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr "%<#pragma omp target data%> должна содержать хотя бы одну %<map%> клаузулу"
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, fuzzy, gcc-internal-format
 #| msgid "%<_Atomic%> %qE in %<reduction%> clause"
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "%<_Atomic%> %qE в %<reduction%> клаузуле"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 #| msgid "variable length element type in array %<reduction%> clause"
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "тип элемента переменой длины в предложении массива %<reduction%>"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "ожидалась клаузула %<depend%>, %<destroy%> или %<update%>"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<(%> before %qE"
 msgid "expected %qs or %qs"
 msgstr "ожидалась %<(%> перед %qE"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp ordered%> with %<depend%> clause may only be used in compound statements"
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp ordered%> с %<depend%> клаузулой может использоваться только в составных операторах"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected at least one assumption clause"
 msgstr "ожидалась конструкция %<#pragma omp%>"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 #| msgid "expected function name"
 msgid "expected directive name"
 msgstr "ожидалось имя функции"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 #| msgid "unknown asm flag output %qs"
 msgid "unknown assumption clause %qs"
 msgstr "неизвестный вывод ассемблерного флага %qs"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 #| msgid "expected function name"
 msgid "expected assumption clause"
 msgstr "ожидалось имя функции"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE объявлена %<threadprivate%> после первого использования"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "автоматическая переменная %qE не может быть %<threadprivate%>"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%<threadprivate%> %qE имеет неполный тип"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr "%<__transaction_cancel%> без включения транзакционной памяти"
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr "%<__transaction_cancel%> внутри %<__transaction_relaxed%>"
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, fuzzy, gcc-internal-format
 #| msgid "%<transaction_may_cancel_outer%> function call not within outer transaction or %<transaction_may_cancel_outer%>"
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "%<transaction_may_cancel_outer%> вызов функции не внутри внешней транзакции или %<transaction_may_cancel_outer%>"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr "%<__transaction_cancel%> не внутри %<__transaction_atomic%>"
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr "нет закрывающей скобки"
@@ -52114,7 +52140,7 @@ msgstr "доступ по указателю %<void *%>"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "индексируемый объект не является ни массивом, ни указателем, ни вектором"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "индекс массива не является целым значением"
@@ -52145,7 +52171,7 @@ msgstr "переменная %qD декларирована как ссылка,
 msgid "enum constant defined here"
 msgstr "константа перечислимого типа определена здесь"
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr "%<sizeof%> от массивного параметра функции %qE вернет размер от %qT"
@@ -52260,17 +52286,17 @@ msgstr "неявная конверсия из %qT в %qT при передач
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "слишком мало аргументов в вызове функции %qE"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "сравнение со строковым литералом приводит к неопределенному поведению"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, gcc-internal-format
 msgid "comparison between pointer and zero character constant"
 msgstr "сравнение указателя и нулевой символьной константы"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr "вы хотели перейти по указателю?"
@@ -52295,7 +52321,7 @@ msgstr "указатель на функцию в операции вычита
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "арифметическая операция над указателем на неполный тип"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr "арифметическая операция над указателем на пустой агрегат"
@@ -52601,7 +52627,7 @@ msgstr "приведение указателя к целому другого 
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "приведение вызова функции типа %qT к несоответствующему типу %qT"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "приведение к типу указателя от целого другого размера"
@@ -52776,7 +52802,7 @@ msgstr "левой части присваивания, вероятно, мож
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "левой части инициализации, вероятно, можно задать атрибут format"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "тип результата, вероятно, может быть задан с атрибутом format"
@@ -52986,12 +53012,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "инициализация регулируемого элемента-массива"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -53001,7 +53027,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr "инициализация массива несоответствующего типа строковой константой"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "некорректное использование массива, не являющегося левой частью присваивания"
@@ -53032,7 +53058,7 @@ msgstr "элемент инициализатора не является кон
 msgid "initializer element is not computable at load time"
 msgstr "инициализирующий элемент не может быть вычислен во время компоновки"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "вектор скрытого типа не может быть инициализирован"
@@ -53047,7 +53073,7 @@ msgstr "избыточные фигурные скобки в конце ини
 msgid "braces around scalar initializer"
 msgstr "фигурные скобки вокруг скалярного инициализатора"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "инициализация элемента регулируемого элемента-массива во вложенном контексте"
@@ -53138,7 +53164,7 @@ msgstr "избыточные элементы в инициализаторе с
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr "позиционная инициализация поля в %<struct%> декларированной с %<designated_init%> атрибутом"
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "не статическая инициализация регулируемого элемента-массива в структуре"
@@ -53179,7 +53205,7 @@ msgstr "в ISO C операторы вида %<goto *expr;%> запрещены"
 msgid "computed goto must be pointer type"
 msgstr "аргумент %d для %qE должен быть указателем"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "функция декларированная с атрибутом %<noreturn%> содержит оператор %<return%>"
@@ -53234,7 +53260,7 @@ msgstr "метка %<default%> вне оператора switch"
 msgid "break statement not within loop or switch"
 msgstr "оператор break вне цикла или оператора switch"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -53284,27 +53310,27 @@ msgstr "результат сравнения всегда %<false%>, поско
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "результат сравнения всегда %<true%>, поскольку адрес %qD не может быть NULL"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr "сравнение векторов с разными типами элементов"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr "сравнение векторов с разным числом элементов"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "сравнение между типами %qT и %qT"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr "невозможно найти целый тип того же размера, что и %qT"
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, fuzzy, gcc-internal-format
 #| msgid "comparing floating point with == or != is unsafe"
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
@@ -53377,30 +53403,30 @@ msgstr "объединение употреблено в контексте, г
 msgid "used vector type where scalar is required"
 msgstr "векторный тип использован в контексте, где допустимо только скалярное значение"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancel%> должна задавать одну из %<parallel%>, %<for%>, %<sections%> или %<taskgroup%> клаузул"
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<parallel%> or %<target%> %<if%> clause modifier"
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "ожидался %<parallel%> или %<target%> модификатор %<if%> клаузулы"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancellation point%> должна задавать одну из %<parallel%>, %<for%>, %<sections%> или %<taskgroup%> клаузул"
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD не есть переменная в %qs клаузуле"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qE не есть переменная в %qs клаузуле"
@@ -53411,87 +53437,87 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "%<_Atomic%> %qD в %qs клаузуле"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD есть threadprivate переменная в %qs клаузуле"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr "нижняя граница %qE секции массива не имеет целочисленный тип"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "длина %qE секции массива не имеет целочисленный тип"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure pointer %qs in %s clause at %L"
 msgid "expected single pointer in %qs clause"
 msgstr "Указатель на процедуру %qs в %s клаузуле в %L"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "секция массива нулевой длины в %qs клаузуле"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr "для массивного типа с неизвестной границей должно быть задано выражение для длины"
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr "отрицательная нижняя граница в секции массива в %qs клаузуле"
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr "отрицательная длина в секции массива в %qs клаузуле"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr "нижняя граница %qE выше размера секции массива в %qs клаузуле"
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr "длина %qE выше размера секции массива в %qs клаузуле"
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr "верхняя граница %qE выше размера секции массива в %qs клаузуле"
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, fuzzy, gcc-internal-format
 #| msgid "for unknown bound array type length expression must be specified"
 msgid "for array function parameter length expression must be specified"
 msgstr "для массивного типа с неизвестной границей должно быть задано выражение для длины"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr "для типа указателя должно быть задано выражение длины"
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr "секция массив не непрерывна в %qs клаузуле"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qE не имеет тип указателя или массива"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 #| msgid "throwing NULL, which has integral, not pointer type"
 msgid "iterator %qD has neither integral nor pointer type"
@@ -53503,19 +53529,19 @@ msgstr "исключительная ситуация NULL имеет целый
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "%<_Atomic%>-квалифицированный массивный тип"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD has incomplete type"
 msgid "iterator %qD has const qualified type"
 msgstr "параметр %qD имеет неполный тип"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field %qD with non-integral type"
 msgid "iterator step with non-integral type"
 msgstr "битовое поле %qD не целочисленного типа"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -53525,39 +53551,39 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, fuzzy, gcc-internal-format
 #| msgid "condition expression refers to iteration variable %qD"
 msgid "begin expression refers to outer iterator %qD"
 msgstr "выражение условия ссылается на итерационную переменную %qD"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 #| msgid "condition expression refers to iteration variable %qD"
 msgid "end expression refers to outer iterator %qD"
 msgstr "выражение условия ссылается на итерационную переменную %qD"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, fuzzy, gcc-internal-format
 #| msgid "initializer expression refers to iteration variable %qD"
 msgid "step expression refers to outer iterator %qD"
 msgstr "выражение инициализатора ссылается на итерационную переменную %qD"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 #| msgid "expected pointer"
 msgid "expected pointer in %qs clause"
 msgstr "ожидался указатель"
 
 #
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, fuzzy, gcc-internal-format
 #| msgid "using parameters for %<linear%> step is not supported yet"
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr "модель кода %<large%> пока не поддерживается"
 
 #
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, fuzzy, gcc-internal-format
 #| msgid "using parameters for %<linear%> step is not supported yet"
 msgid "%<inscan%> %<reduction%> clause with array section"
@@ -53590,7 +53616,7 @@ msgstr "битовое поле %qE в %qs клаузуле"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE имеет недопустимый тип для %<reduction(%s)%>"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr "определенная пользователем редукция не найдена для %qE"
@@ -53600,17 +53626,17 @@ msgstr "определенная пользователем редукция н
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "тип элемента переменой длины в предложении массива %<reduction%>"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr "%<nowait%> предложение не может использоваться вместе с %<copyprivate%>"
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE должно быть %<threadprivate%> для %<copyin%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, fuzzy, gcc-internal-format
 #| msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs"
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
@@ -53626,24 +53652,24 @@ msgstr "линейное предложение применено к нецел
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr "%<_Atomic%> %qD в предложении %<linear%>"
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr "шаг предложения %<linear%> %qE не является ни константой, ни параметром"
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE не является переменной в предложении %qs"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD многократно встречается в предложениях данных"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr "%qD многократно встречается в предложениях сокращения"
@@ -53655,32 +53681,32 @@ msgstr "%qE многократно встречается в предложен
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "%qD многократно встречается в предложениях данных"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr "%qD встречается в предложениях данных и сопоставления"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE не является переменной в предложении %<firstprivate%>"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE не является переменной в предложении %<lastprivate%>"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qE не является переменной в предложении %<aligned%>"
@@ -53700,7 +53726,7 @@ msgstr "%<_Atomic%> %qD в предложении %<aligned%>"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE многократно встречается в предложении %<aligned%>"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<depend%> clause"
 msgid "%qE is not a variable in %<nontemporal%> clause"
@@ -53712,7 +53738,7 @@ msgstr "%qE не является переменной в предложении
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE многократно встречается в предложении %<aligned%>"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<aligned%> clause"
 msgid "%qE is not a variable in %<allocate%> clause"
@@ -53724,78 +53750,78 @@ msgstr "%qE не является переменной в предложении
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE многократно встречается в предложении %<aligned%>"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<depend%> clause"
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qE не является переменной в предложении %<depend%>"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr "секция массива не имеет отображаемый тип в предложении %qs"
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %qD"
 msgid "unsupported map expression %qE"
 msgstr "неподдерживаемый аргумент для %qD"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD многократно встречается в предложениях движения"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD многократно встречается в предложениях сопоставления"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD не имеет отображаемый тип в предложении %qs"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE не является ни переменной, ни именем функции в предложении %qs"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE многократно встречается в одной директиве %<declare target%><)%>"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD не является аргументом в %<uniform%> предложении"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "%qE не является аргументом в %<uniform%> предложении"
@@ -53811,24 +53837,24 @@ msgstr "источник не есть указатель"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "%qs переменная не является ни указателем, ни массивом"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr "%<nowait%> предложение не может использоваться вместе с %<copyprivate%>"
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %qs clauses on a task construct"
 msgstr "слишком много конструкций %qs"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr "предложение %<inbranch%> несовместимо с %<notinbranch%>"
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE является предопределённым %qs для %qs"
@@ -53838,41 +53864,41 @@ msgstr "%qE является предопределённым %qs для %qs"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr "значение предложения %<simdlen%> больше значения %<safelen%> предложения"
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr "%<nonmonotonic%> модификатор планирования задан вместе с %<ordered%> предложением"
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr "%<nowait%> предложение не может использоваться вместе с %<copyprivate%>"
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr "шаг %<linear%> предложения является параметром %qD, который не указан в %<uniform%> предложении"
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr "%<nowait%> предложение не может использоваться вместе с %<copyprivate%>"
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, fuzzy, gcc-internal-format
 #| msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr "%<nowait%> предложение не может использоваться вместе с %<copyprivate%>"
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -54167,7 +54193,7 @@ msgstr ""
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
@@ -54175,7 +54201,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -54497,575 +54523,575 @@ msgstr "условное выражение между различными ук
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "перечислимый и неперечислимый тип в условном выражении"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "нет %<%D(int)%> декларированного для постфиксного %qs, пробуем применить префиксный оператор"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "нет %<%D(int)%> декларированного для постфиксного %qs"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 #| msgid "return type of %qD is not %<int%>"
 msgid "return type of %qD is not %qs"
 msgstr "возвращаемое значение функции %qD - не %<int%>"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "сравнение между %q#T и %q#T"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to %<(%T) (%A)%>"
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "не найден метод для преобразования в %<(%T) (%A)%>"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 #| msgid "call of %<(%T) (%A)%> is ambiguous"
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "вызов %<(%T) (%A)%> неоднозначен"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, fuzzy, gcc-internal-format
 #| msgid "exception cleanup for this placement new selects non-placement operator delete"
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr "очистка исключений для этого размещения new выбирает неразмещенный оператор delete"
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with -fsized-deallocation)"
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "%qD есть обычная (неразмещенная) функция освобождения в C++14 (или с -fsized-deallocation)"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "%qD есть обычная (неразмещенная) функция освобождения"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr "нет соответствующей функции освобождения для %qD"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "нет подходящего %<operator %s%> для %qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr "%q#D private в данном контексте"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, gcc-internal-format
 msgid "declared private here"
 msgstr "декларировано private здесь"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr "%q#D protected в данном контексте"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, gcc-internal-format
 msgid "declared protected here"
 msgstr "декларировано protected здесь"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr "%q#D недоступно в данном контексте"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "передача NULL в неуказательный аргумент %P в %qD"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 #| msgid " declared here"
 msgid "  declared here"
 msgstr " объявлено здесь"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "преобразование в неуказательный тип %qT из NULL"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "преобразование %<false%> в указательный тип для аргумента %P в %qD"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "преобразование %<false%> в указательный тип %qT"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  при инициализации %P -го аргумента %qD"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, fuzzy, gcc-internal-format
 #| msgid "explicit conversion operators only available with -std=c++11 or -std=gnu++11"
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "явные операции преобразования доступны только с -std=c++11 или -std=gnu++11"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "слишком много фигурных скобок вокруг инициализатора для %qT"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr ""
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 #| msgid "ISO C++ does not allow %<alignof%> with a non-type"
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C++ не допускает %<alignof%> с не-типом"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 msgid "invalid conversion from %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr "преобразование в %qT из списка инициализации будет использовать явный конструктор %qD"
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr "в C++11 и выше подразумеваемый конструктор может быть явным"
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 #| msgid "conversion to non-const reference type %q#T from rvalue of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "преобразование к неконстантной ссылки типа %qT из rvalue типа %qT"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr ""
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 #| msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "преобразование к volatile ссылке типа %qT из rvalue типа %qT"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr ""
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr ""
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 #| msgid "cannot bind bitfield %qE to %qT"
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "недопустимое связывание битового поля %qE с %qT"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "недопустимое связывание упакованного  поля %qE с %qT"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "недопустимое связывание rvalue %qE с %qT"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr ""
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, fuzzy, gcc-internal-format
 #| msgid "scoped enum %qT passed through ... as %qT before -fabi-version=6, %qT after"
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr "scoped enum %qT передан дальше ... как %qT перед fabi-version=6, %qT после"
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "передача объектов нетривиально копируемого типа %q#T через %<...%> условно поддерживается"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "невозможно принять ссылочный тип %q#T через %<...%>"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "прием объектов нетривиально копируемого типа %q#T через %<...%> условно поддерживается"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "рекурсивное вычисление подразумеваемого аргумента для %q#D"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "вызов %qD использует подразумеваемый аргумент для параметра %P, который еще не определен"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "аргумент вызова функции мог быть кандидатом для атрибута формата"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr "использование мультиверсионной функции без подразумеваемой"
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "передача %qT как аргумент %<this%> отбрасывает квалификаторы"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  в вызове %qD"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT не является базовым для %qT"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "передача аргументов в многоточие унаследованного конструктора %qD"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, gcc-internal-format
 msgid "; use assignment instead"
 msgstr ""
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr ""
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, gcc-internal-format
 msgid "%#qT declared here"
 msgstr ""
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, fuzzy, gcc-internal-format
 #| msgid "argument 3 in call to function %qE has pointer to boolean type"
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "аргумент 3 в вызове функции %qE имеет тип указателя на boolean"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr "конструктор делегирует к себе"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 msgid "cannot convert %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "нет подходящей функции для вызова %<%T::operator %T(%A)%#V%>"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr ""
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "вызов не функции %qD"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "невозможно вызвать конструктор %<%T::%D%> непосредственно"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr "для приведения типов в функциональном стиле удалите избыточные %<::%D%>"
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "нет соответствующей функции для вызова %<%s(%A)%>"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "вызов перегруженной %<%s(%A)%> имеет неоднозначную трактовку"
 
 #
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "чисто виртуальная %q#D вызвана из инициализатора нестатического элемента данных"
 
 #
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr "чисто виртуальная %q#D вызвана из конструктора"
 
 #
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr "чисто виртуальная %q#D вызвана из деструктора"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "некорректный вызов элемента-функции %qD без объекта"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "при передаче %qT предпочтение отдается %qT, а не %qT"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "ISO C++ говорит здесь о неоднозначности, хотя худшее преобразование для первого лучше, чем худшее преобразование для второго:"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 #| msgid "destructor cannot be static member function"
 msgid "try making the operator a %<const%> member function"
 msgstr "деструктор не может быть статической элементом-функцией"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "предпочтение отдается %qD (а не %qD)"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 msgid "  for conversion from %qH to %qI"
 msgstr ""
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  поскольку это дает лучшую последовательность преобразований аргумента"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "несоответствие подразумеваемого аргумента при разрешении перегрузки"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr ""
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr ""
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ISO C++ говорит здесь о неоднозначности, хотя худшее преобразование для первого лучше, чем худшее преобразование для второго:"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr "временная граница %qD сохраняется, пока существует конструктор"
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr ""
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "possibly dangling reference to a temporary"
 msgstr "возврат ссылки на временную переменную"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, fuzzy, gcc-internal-format
 #| msgid "%s: definition of function '%s' not converted\n"
 msgid "explicit conversion function was not considered"
@@ -55113,7 +55139,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr ""
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "предыдущая декларация %q#D"
@@ -55550,7 +55576,7 @@ msgstr "элемент регулируемого массива %qD в друг
 msgid "next member %q#D declared here"
 msgstr "следующий элемент %q#D объявлен здесь"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "повторное определение %q#T"
@@ -55685,7 +55711,7 @@ msgstr ""
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
@@ -55727,7 +55753,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr ""
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -55745,7 +55771,7 @@ msgstr ""
 msgid "%q+E is not a constant expression"
 msgstr "%q+E не есть константное выражение"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -55768,7 +55794,7 @@ msgstr "самосравнение всегда дает false"
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, gcc-internal-format
 msgid "call to internal function %qE"
@@ -55820,7 +55846,7 @@ msgstr "  %qT является неоднозначным базовым кла
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -55960,18 +55986,18 @@ msgstr "значение индекс массива %qE вне границ т
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "значение индекса массива %qE вне границ массива %qD типа %qT"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "доступ к неинициализированному элементу массива"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr "доступ по пустому указателю в %qE"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -55979,517 +56005,517 @@ msgstr "доступ по пустому указателю в %qE"
 msgid "%qE is not a constant expression"
 msgstr "%qE не есть константное выражение"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "mutable %qD не может использоваться в константном выражении"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "доступ к неинициализированному элементу %qD"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr "обращение к элементу %qD вместо инициализированного элемента %qD в константном выражении"
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "typeid-expression не есть константное выражение, поскольку %qE полиморфного типа"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "typeid-expression не есть константное выражение, поскольку %qE полиморфного типа"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "typeid-expression не есть константное выражение, поскольку %qE полиморфного типа"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "typeid-expression не есть константное выражение, поскольку %qE полиморфного типа"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "typeid-expression не есть константное выражение, поскольку %qE полиморфного типа"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "typeid-expression не есть константное выражение, поскольку %qE полиморфного типа"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "typeid-expression не есть константное выражение, поскольку %qE полиморфного типа"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "typeid-expression не есть константное выражение, поскольку %qE полиморфного типа"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "typeid-expression не есть константное выражение, поскольку %qE полиморфного типа"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "%qE не есть константное выражение, поскольку оно ссылается на mutable подобъекты %qT"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 #| msgid "nested functions not supported on this target"
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "вложенные функции не поддерживаются для этой платформы"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, fuzzy, gcc-internal-format
 #| msgid "accessing uninitialized member %qD"
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "доступ к неинициализированному элементу %qD"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "обращение к значению %qE через %qT glvalue в константном выражении"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 #| msgid "use of the value of the object being constructed in a constant expression"
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "использование значения конструируемого объекта в константном выражении"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "allocated here"
 msgstr "объявлено здесь"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 #| msgid "the value of %qD is not usable in a constant expression"
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "значение %qD не может использоваться в константном выражении"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "значение %qD не может использоваться в константном выражении"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "%qD использована в своем собственном инициализаторе"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%q#D не есть const"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%q#D переменная"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD не была инициализирована константным выражением"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD не была декларирована %<constexpr%>"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "%qD не имеет целый или перечислимый тип"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 #| msgid "modification of %qE is not a constant expression"
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "модификация %qE не есть константное выражение"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 #| msgid "modification of %qE is not a constant expression"
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "модификация %qE не есть константное выражение"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 #| msgid "a reinterpret_cast is not a constant expression"
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "reinterpret_cast не является константным выражением"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 #| msgid "modification of %qE is not a constant expression"
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "модификация %qE не есть константное выражение"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, fuzzy, gcc-internal-format
 #| msgid "Change of value in conversion from %qs to %qs at %L"
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "Изменение значения в преобразовании из %qs в %qs в %L"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, fuzzy, gcc-internal-format
 #| msgid "Change of value in conversion from %qs to %qs at %L"
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "Изменение значения в преобразовании из %qs в %qs в %L"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "оператор не является константным выражением"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum)"
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr "глубина конкретизации шаблона превышает максимум %d (используйте -ftemplate-depth=, чтобы увеличить максимум)"
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not a constant expression"
 msgid "inline assembly is not a constant expression"
 msgstr "элемент инициализатора не является константным выражением"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
 msgid "use of %qD"
 msgstr "некорректное использование %qD"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "значение %qE типа %qT не есть константное выражение"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum)"
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr "глубина конкретизации шаблона превышает максимум %d (используйте -ftemplate-depth=, чтобы увеличить максимум)"
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, fuzzy, gcc-internal-format
 #| msgid "capture of variable %qD with non-automatic storage duration"
 msgid "control passes through definition of %qD with static storage duration"
 msgstr "capture переменной  %qD с неавтоматическим сроком хранения"
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "временная нелитерального типа %qT в константном выражении"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 #| msgid "a reinterpret_cast is not a constant expression"
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "reinterpret_cast не является константным выражением"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "преобразование из указательного типа %qT в арифметический тип %qT в константном выражении"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "%qE не есть константное выражение, поскольку оно ссылается на mutable подобъекты %qT"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 #| msgid "routine %qD declared here"
 msgid "pointed-to object declared here"
 msgstr "программа %qD декларирована здесь"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "параметр шаблона %qD типа %qT не допускается в целочисленном константном выражении, поскольку он не целого или перечислимого типа"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 #| msgid "the value of %qD is not usable in a constant expression"
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "значение %qD не может использоваться в константном выражении"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "%qE не есть константное выражение, поскольку оно ссылается на не полностью инициализированную переменную"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "%<reinterpret_cast<%T>(%E)%> не является константным выражением"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "выражение %qE не является константным выражением"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "%<goto%> не есть константное выражение"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 #| msgid "a reinterpret_cast is not a constant expression"
 msgid "contract predicate is false in constant expression"
 msgstr "reinterpret_cast не является константным выражением"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 #| msgid "expected template-id"
 msgid "unexpected template-id %qE"
 msgstr "ожидался template-id"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %qE must be directly called"
 msgid "function concept must be called"
 msgstr "внутренняя функция %qE должна вызываться напрямую"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "address of a call to %qs is not a constant expression"
 msgstr "размер массива %qD не является целочисленным константным выражением"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "неожиданное выражение %qE вида %s"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr "%qE не есть константное выражение, поскольку оно ссылается на mutable подобъекты %qT"
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr "%qE не есть константное выражение, поскольку оно ссылается на не полностью инициализированную переменную"
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "%qE не есть константное выражение, поскольку оно ссылается на mutable подобъекты %qT"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr "%qE не есть константное выражение, поскольку оно ссылается на mutable подобъекты %qT"
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, fuzzy, gcc-internal-format
 #| msgid "statement cannot resolve address of overloaded function"
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "оператор не может разрешить адрес перегруженной функции"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "некорректное приведение rvalue выражения из типа %qT к типу %qT"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, fuzzy, gcc-internal-format
 #| msgid "reinterpret_cast from integer to pointer"
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "reinterpret_cast из целого в указатель"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr "address-of объекта %qE с поточно-локальным или автоматическим хранением не есть константное выражение"
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "использование %<this%> в константном выражении"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr ""
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 #| msgid "expression %qE is not a constant expression"
 msgid "new-expression is not a constant expression before C++20"
 msgstr "выражение %qE не является константным выражением"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "виртуальные функции не могут быть friend-функциями"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, fuzzy, gcc-internal-format
 #| msgid "typeid-expression is not a constant expression because %qE is of polymorphic type"
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "typeid-expression не есть константное выражение, поскольку %qE полиморфного типа"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "приведение к нецелочисленному типу %qT в константном выражении"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared %<thread_local%> in %<constexpr%> function"
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "%qD декларирована %<thread_local%> я %<constexpr%> функции"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared %<static%> in %<constexpr%> function"
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "%qD декларирована %<static%> я %<constexpr%> функции"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "деление на ноль не есть константное выражение"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "%<delete[]%> не есть константное выражение"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<this%> in a constant expression"
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "использование %<this%> в константном выражении"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "неконстантная инициализация массива"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++11 %<constexpr%> доступно только с -std=c++11 или -std=gnu++11"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "неожиданное AST вида %s"
@@ -57301,7 +57327,7 @@ msgstr "третий аргумент %<__builtin_prefetch%> должен быт
 msgid "no suspend point info for %qD"
 msgstr "прототип для %qD не был предварительно определен"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -57324,23 +57350,23 @@ msgstr "в конструкции case нельзя употреблять ук
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr "граница массив переменной длины неизвестна"
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
@@ -57362,79 +57388,79 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD не является функцией шаблоном"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to member function %q#D"
 msgid "taking address of an immediate function %qD"
 msgstr "слишком много аргументов для элемента-функции %q#D"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 #| msgid "modification of %qE is not a constant expression"
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "модификация %qE не есть константное выражение"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 #| msgid "throw will always call terminate()"
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "throw будет всегда вызывать terminate()"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, fuzzy, gcc-internal-format
 #| msgid "in C++11 destructors default to noexcept"
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "в C++11 деструкторы подразумевают noexcept"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, fuzzy, gcc-internal-format
 #| msgid "in C++11 this throw will terminate because destructors default to noexcept"
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr "в C++11 это throw терминируется, поскольку деструкторы подразумевают noexcept"
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring attributes in template argument %qE"
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "игнорирование атрибутов аргумента шаблона %qE"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qE attribute"
 msgid "pack expansion of %qE attribute"
 msgstr "некорректный аргумент атрибута %qE"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 #| msgid "lambda-expression in template-argument"
 msgid "use fold expression in the attribute argument instead"
 msgstr "lambda-выражение в аргументе шаблона"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD не является типом"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class type"
 msgid "%qD is not a class type"
 msgstr "%qT не является классовым типом"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have pointer or array type"
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qE не имеет тип указателя или массива"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 #| msgid "%qD does not have integral or enumeration type"
 msgid "%qD does not have integral type"
 msgstr "%qD не имеет целый или перечислимый тип"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -57477,7 +57503,7 @@ msgstr "преобразование к неконстантной ссылки
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr ""
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "преобразование %qT в %qT не снимает указатель"
@@ -57870,7 +57896,7 @@ msgstr "из предыдущей декларации %qF"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "редекларация %qD отличается в %<constexpr%> от предыдущей декларации"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "предыдущая декларация %qD"
@@ -58021,8 +58047,8 @@ msgstr "предыдущая декларация %<pragma omp declare reduction
 msgid "%q#D previously defined here"
 msgstr "%q#D ранее определено здесь"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "%q#D ранее декларировано здесь"
@@ -58102,60 +58128,42 @@ msgstr "подразумеваемый аргумент задан для пар
 msgid "previous specification in %q#D here"
 msgstr "предыдущая спецификации в %q#D здесь"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-#| msgid "declaration of %q+#D conflicts with built-in declaration %q#D"
-msgid "declaration %qD conflicts with builtin"
-msgstr "декларация %q+#D конфликтует с внутренней декларацией %q#D"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-#| msgid "declaration of namespace %qD conflicts with"
-msgid "declaration %qD conflicts with import"
-msgstr "декларация namespace %qD противоречит"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-#| msgid " declared here"
-msgid "import declared %q#D here"
-msgstr " объявлено здесь"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q+#D"
 msgid "conflicting exporting for declaration %qD"
 msgstr "конфликтующая декларация %q+#D"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 #| msgid "previously declared here"
 msgid "previously declared here without exporting"
 msgstr "предыдущая декларация здесь"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %qD was here"
 msgid "previous definition of %qD here"
 msgstr "предыдущее определение %qD было здесь"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %qD was here"
 msgid "previous declaration of %qD here"
 msgstr "предыдущая декларация %qD была здесь"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared %<virtual%> inside a union"
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "функция %qD декларирована %<virtual%> внутри объединения"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "избыточная повторная декларация %qD в той же области видимости"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 #| msgid "deleted definition of %q+D"
 msgid "deleted definition of %qD is not first declaration"
@@ -58169,44 +58177,44 @@ msgstr "удаленное определение %q+D"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "явная специализация %qD после первого использования"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%qD: атрибут видимости проигнорирован, так как он конфликтует с предыдущей декларацией"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "переопределение %q#D"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "%qD противоречит использованной функции"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q#D не декларировано в классе"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%q+D переопределен inline с %<gnu_inline%> атрибутом"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%q+D переопределен inline без %<gnu_inline%> атрибута"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -58214,766 +58222,766 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "редекларация friend %q#D не может иметь подразумеваемые аргументы шаблона"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "локальная для потока декларация %q#D следует за не локальной для потока декларацией"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "не локальная для потока декларация %q#D следует за локальной для потока декларацией"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "редекларация %q#D"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "избыточное переопределение %<constexpr%> элемента статических данных %qD"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr "локальная метка %qE конфликтует с существующей меткой"
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, gcc-internal-format
 msgid "previous label"
 msgstr "предыдущая метка"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "переход по метке %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "переход по case-метке"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  отсюда"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  покидает OpenMP структурный блок"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "  пересекает инициализацию %q#D"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, fuzzy, gcc-internal-format
 #| msgid "  enters try block"
 msgid "  enters %<try%> block"
 msgstr "  входит в try-блок"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "  enters catch block"
 msgid "  enters %<catch%> block"
 msgstr "  входит в catch-блок"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  входит в OpenMP структурный блок"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr "  входит в синхронизируемый или атомарный оператор"
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 #| msgid "jump into statement expression"
 msgid "  enters statement expression"
 msgstr "переход в выражение-оператор"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, fuzzy, gcc-internal-format
 #| msgid "  enters %<constexpr%> if statement"
 msgid "  enters %<constexpr if%> statement"
 msgstr "  входит в %<constexpr%> оператор if"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, fuzzy, gcc-internal-format
 #| msgid "  enters %<constexpr%> if statement"
 msgid "  enters %<consteval if%> statement"
 msgstr "  входит в %<constexpr%> оператор if"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C99 does not support %qE"
 msgid "  does not destroy %qD"
 msgstr "ISO C99 не поддерживает %qE"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr ""
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "  пропускает инициализацию %q#D"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "%qD used without template arguments"
 msgstr "использование %qD без параметров шаблона"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "%qD не является шаблоном функции"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T не является классом"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "шаблон класса с именем %q#T' отсутствует в %q#T"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "нет имени типа %q#T в %q#T"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "просмотр %qT в %qT неоднозначен"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%> именует %q#T, который не является шаблоном класса"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 #| msgid "%<typename %T::%D%> names %q#T, which is not a type"
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%> именует %q#T, который не является типом"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "параметры шаблона не соответствуют шаблону %qD"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 #| msgid "-faligned-new=%d is not a power of two"
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "-faligned-new=%d не есть степень двойки"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr ""
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous struct not inside named type"
 msgid "anonymous struct with base classes"
 msgstr "анонимная структура не внутри именованного типа"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "элемент %q+#D с конструктором недопустим в анонимном агрегатном типе"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "элемент %q+#D с деструктором недопустим в анонимном агрегатном типе"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "элемент %q+#D с операцией присваивания-копирования недопустим в анонимном агрегатном типе"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "атрибуты проигнорированы в декларации %q#T"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "атрибут для %q#T должен следовать за %qs ключевым словом"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "несколько типов в одной декларации"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "повторная декларация внутреннего типа C++ %qT"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "%<auto%> можно задавать только для переменных или деклараций функций"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "отсутствует имя типа в typedef-декларации"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "в ISO C++ анонимные структуры запрещены"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "%<inline%> может задаваться только для функций"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr "%<virtual%> может задаваться только для функций"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> может быть задан только внутри класса"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "%<explicit%> может быть задан только для конструкторов"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "класс хранения может быть задан только для объектов и функций"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "%<const%> может задаваться только для объектов и функций"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "%<volatile%> может задаваться только для объектов и функций"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "%<__restrict%> может задаваться только для объектов и функций"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "%<__thread%> может задаваться только для объектов и функций"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "%<typedef%> в этой декларации отброшен"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 #| msgid "%<constexpr%> cannot be used for type declarations"
 msgid "%qs cannot be used for type declarations"
 msgstr "%<constexpr%> не может использоваться для деклараций типов"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "атрибут игнорируется в явной конкретизации %q#T"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "никакой атрибут не может применяться к явной конкретизации"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "игнорирование атрибутов примененных к классу %qT вне определения"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr "игнорирование атрибутов примененных к зависимому типу %qT без ассоциированной декларации"
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 #| msgid "typedef %qD is initialized (use decltype instead)"
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD инициализирован (используйте decltype взамен)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "декларация %q#D содержит %<extern%> и инициализирована"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "определение функции %q#D помечено %<dllimport%>"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q+#D не есть статический элемент данных %q#T"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "non-member-template декларация %qD"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "не соответствует декларации элемента шаблона здесь"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO C++ не разрешает определять %<%T::%D%> как %<%T::%D%>"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "повторная инициализация %qD"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "декларация %q#D вне класса не является определением"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++11 %<constexpr%> доступно только с -std=c++11 или -std=gnu++11"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++11 %<constexpr%> доступно только с -std=c++11 или -std=gnu++11"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "переменная %q#D инициализирована, хотя имеет неполный тип"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "элементы массива %q#D имеют неполный тип"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "агрегатный тип %q#D неполон и не может быть определён"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "переменная %qD декларирована как ссылка, но не инициализирована"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "имя использовано в определенном в GNU-стиле инициализаторе массива"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "имя %qD использовано в определенном в GNU-стиле инициализаторе массива"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "нетривиально определенные инициализаторы не поддерживаются"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "C99 обозначение %qE не является целочисленным константным выражением"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "при инициализации не удалось определить размер %qD"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "не задан размер массива для %qD"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "массив %qD имеет нулевой размер"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "размер памяти %qD неизвестен"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "размер памяти %qD не константа"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "простите: семантики inline переменной %q#D являются неверными (запутаетесь с несколькими копиями)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "простите: семантики статических данных inline функции %q#D являются неверными (запутаетесь с несколькими копиями)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr "это можно обойти, удалив инициализатор"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized const %qD"
 msgid "uninitialized %<const %D%>"
 msgstr "неинициализированная константа %qD"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "неинициализированная переменная %qD в %<constexpr%> функции"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr ""
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "%q#T не имеет предоставленный пользователем подразумеваемый конструктор"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr "конструктор не является предоставленным пользователем, поскольку он явно подразумевался в теле класса"
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr "и неявно определенный конструктор не инициализирует %q#D"
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "некорректный тип %qT является инициализатором для вектора типа %qT"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "инициализатор для %qT должен быт заключен в фигурные скобки"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "%<[%E] =%> использовано в определенном в GNU-стиле инициализаторе для класса %qT"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "запрос элемента %qD неоднозначен"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT не имеет нестатического элемента данных с именем %qD"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD не является элементом %qT"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "некорректный инициализатор для %q#D"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr "C99 обозначение %qE вне инициализатора агрегата"
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "избыточные элементы в инициализаторе для %qT"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "фигурные скобки вокруг скалярного инициализатора для типа %qT"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer for type %qT"
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "фигурные скобки вокруг скалярного инициализатора для типа %qT"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "отсутствуют фигурные скобки вокруг инициализатора %qT"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 #| msgid "field %qD has incomplete type %qT"
 msgid "structured binding has incomplete type %qT"
 msgstr "поле %qD имеет неполный тип %qT"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "элементы массива %q#T имеют неполный тип"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "составной литерал переменного размера"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "%q#D имеет неполный тип"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "в инициализаторе скалярного объекта %qD должен быть только один элемент"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "в C++98 %qD следует инициализировать при помощи конструктора, а не %<{...}%>"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "массив %qD инициализируется строковой константой %qE, заключённой в скобки"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "инициализатор недопустим для статического элемента с конструктором"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "неконстантная инициализация внутри класса некорректна для статического элемента %qD"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "неконстантная инициализация внутри класса некорректна для non-inline статического элемента %qD"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(запрошена инициализация вне класса)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "ссылка %qD инициализируется собой"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not in a declaration"
 msgid "could not find variant declaration"
 msgstr "%<[*]%> не является декларацией"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to constructor %q#D"
 msgid "%<declare variant%> on constructor %qD"
 msgstr "слишком мало аргументов для конструктора %q#D"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "%<declare variant%> on destructor %qD"
 msgstr "повторная декларация перечислимого типа %q+D"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "присваивание (а не инициализация) в декларации"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr ""
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr "использован %<register%> спецификатор класса хранения"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "декларация %q#D не имеет инициализатора"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, fuzzy, gcc-internal-format
 #| msgid "initializer for %<decltype(auto) %D%> has function type (did you forget the %<()%> ?)"
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "инициализатор для %<decltype(auto) %D%> имеет тип функции (вы забыли %<()%> ?)"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "тип результата %q#T неполный"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr "переменная concept не имеет инициализатора"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "перекрытие предыдущей декларации %q#D"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables in static storage"
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "атрибут %qE применим только к переменным в статической памяти"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "функция %q#D инициализирована как переменная"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "невозможна декомпозиция типа класса %qT, так как он содержит анонимный элемент структуры"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr "невозможна декомпозиция типа класса %qT, так как он имеет анонимный элемент объединения"
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr ""
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr "невозможна декомпозиция типа класса %qT: и он и его базовый класс %qT имеют нестатические элементы данных"
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr "невозможна декомпозиция типа класса %qT: его базовые классы %qT и %qT имеют нестатические элементы данных"
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr ""
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "невозможна декомпозиция массива переменной длины %qT"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
@@ -58981,7 +58989,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
@@ -58989,7 +58997,7 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
@@ -58997,1822 +59005,1822 @@ msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr ""
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "%<std::tuple_size<%T>::value%> не является целочисленным константным выражением"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr ""
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "невозможна декомпозиция типа объединения %qT"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "невозможна декомпозиция non-array non-class типа %qT"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr "невозможна декомпозиция типа lambda замыкания %qT"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr ""
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "невозможна декомпозиция типа класса %qT без нестатических элементов данных"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr "нелокальная переменная %qD декларированная %<__thread%> требует динамической инициализации"
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr "нелокальная переменная %qD декларированная %<__thread%> имеет нетривиальный деструктор"
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr "C++11 %<thread_local%> допускает динамическую инициализацию и уничтожение"
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "при инициализации не удалось определить размер %qT"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "не задан размер массива в %qT"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "нулевой размер массива %qT"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "деструктор чужого класса %qT не может быть элементом"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "конструктор чужого класса %qT не может быть элементом"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD декларирована как %<virtual%> переменная"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "спецификаторы %<const%> и %<volatile%> для функции %qD некорректны в декларации переменной"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD декларирован как %<virtual%> параметр"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD декларирован как %<inline%> параметр"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "спецификаторы %<const%> и %<volatile%> для функции %qD некорректны в декларации параметра"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD декларирован как %<virtual%> тип"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD декларирован как %<inline%> тип"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "спецификаторы %<const%> и %<volatile%> для функции %qD некорректны в декларации типа"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD декларирован как %<virtual%> поле"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD декларирован как %<inline%> поле"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "спецификаторы %<const%> и %<volatile%> для функции %qD некорректны в декларации поля"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D декларировано как friend"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D декларировано со спецификацией исключений"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "определение %qD вне пространства имён, объемлющего %qT"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "статическая функция-член %q#D объявлена с квалификаторами типа"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "concept %q#D декларирован с параметрами функциями"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr "concept %q#D декларирован с выведенным типом возврата"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "concept %q#D с non-%<bool%> типом возврата %qT"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "concept %qD не имеет определения"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 #| msgid "function cannot be instrumented"
 msgid "a function concept cannot be constrained"
 msgstr "функция не может быть инструментирована"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template function"
 msgid "constraints on a non-templated function"
 msgstr "%qD не является функцией шаблоном"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "friend-декларация вне определения класса"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "определение явной специализации %qD в friend-декларации"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "некорректное использование идентификатора шаблона %qD в декларации первичного шаблона"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "аргументы по умолчанию не допускаются в декларации специализации friend-шаблона %qD"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "не допускается использовать %<inline%> в декларации специализации friend-шаблона %qD"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D outside of class is not definition"
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "декларация %q#D вне класса не является определением"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "недопустимая декларация %<::main%> как шаблона"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "недопустимая декларация %<::main%> как inline-функции"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be static"
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "недопустимая декларация %<::main%> как статической функции"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "недопустимая декларация %<::main%> как статической функции"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "не-элемент-функция %qD не может иметь cv-квалификатор"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "статическая элемент-функция %qD не может иметь cv-квалификатор"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "статическая элемент-функция %qD не может иметь cv-квалификатор"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "non-member функция %qD не может иметь ref-квалификатор"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "статическая элемент-функция %qD не может иметь ref-квалификатор"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have ref-qualifier"
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "статическая элемент-функция %qD не может иметь ref-квалификатор"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD declared here"
 msgid "explicit object parameter declared here"
 msgstr "параметр шаблона %qD декларирован здесь"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, fuzzy, gcc-internal-format
 #| msgid "deduction guide %qD must be declared at namespace scope"
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "руководство вывода %qD должно декларироваться в контексте пространства имен"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, fuzzy, gcc-internal-format
 #| msgid "deduction guide %qD must be declared at namespace scope"
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "руководство вывода %qD должно декларироваться в контексте пространства имен"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr "руководство вывода %qD не должно иметь тело функции"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr "литеральный оператор с C-привязкой"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "%qD имеет некорректный список аргументов"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr "целый суффикс %qs перекрыт реализацией"
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, fuzzy, gcc-internal-format
 #| msgid "floating point suffix %qs shadowed by implementation"
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr "суффикс плавающей точки %qs перекрыт реализацией"
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr "суффиксы литеральных операторов без предшествующего %<_%> зарезервированы для будущей стандартизации"
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%qD должен быть не-элемент-функцией"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> должна возвращать %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "определение неявно декларированного %qD"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "определение явно подразумеваемого %q+D"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "%q#D явно подразумевается здесь"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "нет элемента-функции %q#D в классе %qT"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "невозможно декларировать %<::main%> как глобальную переменную"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "non-template переменная не может быть %<concept%>"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 #| msgid "deduction guide %qD must be declared at namespace scope"
 msgid "concept must be defined at namespace scope"
 msgstr "руководство вывода %qD должно декларироваться в контексте пространства имен"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr "concept должен иметь тип %<bool%>"
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 #| msgid "variable concept has no initializer"
 msgid "a variable concept cannot be constrained"
 msgstr "переменная concept не имеет инициализатора"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "инициализация внутри класса статического элемента данных %q#D неполного типа"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "%<constexpr%> требуется для инициализации внутри класса статического элемента данных %q#D нецелого типа"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "инициализация внутри класса статического элемента данных %q#D нелитерального типа"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "некорректная инициализация внутри класса статического элемента данных нецелочисленного типа %qT"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ запрещает инициализацию внутри класса неконстантного статического элемента %qD"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ запрещает инициализацию элемента-константы %qD нецелочисленного типа %qT"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "размер массива %qD имеет нецелочисленный тип %qT"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "размер массива имеет нецелочисленный тип %qT"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "размер массива %qD не является целочисленным константным выражением"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "размер массива не является целочисленным константным выражением"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C++ запрещает массив нулевого размера %qD"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ запрещает массивы нулевого размера"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ запрещает массив переменного размера %qD"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++ запрещает массивы переменного размера"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "используется массив переменного размера %qD"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "используется массив переменного размера"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "переполнение в размерности массива"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as array of %qT"
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%qD декларировано как массив %qT"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member reference type %qT"
 msgid "creating array of template placeholder type %qT"
 msgstr "создание указателя на элемент ссылочного типа %qT"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "декларация %qD как массива void"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr "создание массива void"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "декларация %qD как массива функций"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr "создание массива функций"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "декларация %qD как массива ссылок"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr "создание массива ссылок"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "декларация %qD как массива элементов-функций"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr "создание массива элементов-функций"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "декларация многомерного массива %qD должна определять границы для всех размерностей, кроме первой"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "в многомерном массиве должны быть определены границы для всех размерностей, кроме первой"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 #| msgid "variable length array is used"
 msgid "variable-length array of %<auto%>"
 msgstr "используется массив переменного размера"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "некорректная спецификация возвращаемого типа в конструкторе"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "квалификаторы не допускаются в декларации конструктора"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "некорректная спецификация возвращаемого типа в деструкторе"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "квалификаторы не допускаются в декларации деструктора"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "тип результата задан для %<operator %T%>"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "квалификаторы не допускаются в декларации %<operator %T%>"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr "возвращаемый тип задан для руководства вывода"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "квалификаторы не допускаются в декларации руководства вывода"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 #| msgid "decl-specifier in declaration of deduction guide"
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "decl-спецификатор в декларации руководства вывода"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "декларация безымянной переменной или поля с типом void"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "декларация переменной или поля с типом void"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "%<inline%> спецификатор некорректен для переменной %qD декларированной в контексте блока"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, fuzzy, gcc-internal-format
 #| msgid "inline namespaces only available with -std=c++11 or -std=gnu++11"
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "inline namespaces доступны только с -std=c++11 или -std=gnu++11"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr "%qT как тип а не плоский %<decltype(auto)%>"
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "деструкторы не могут быть cv-квалифицированы"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "недопустимое использование квалифицированного имени %<::%D%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "недопустимое использование квалифицированного имени %<%T::%D%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "недопустимое использование квалифицированного имени %<%D::%D%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%q#T is not a class or namespace"
 msgstr "%qT не является классом или пространством имён"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "declaration of %qE as non-function"
 msgstr "декларация %qD как не-функции"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-member"
 msgid "declaration of %qE as non-member"
 msgstr "декларация %qD как не-элемента"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "декларатор отсутствует; используется зарезервированное слово %qD"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "определение функции не объявляет параметры"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "декларация %qD как не-функции"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "декларация %qD как %<typedef%>"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "декларация %qD как параметра"
 
 #
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, fuzzy, gcc-internal-format
 #| msgid "no classes specified"
 msgid "both %qs and %qs specified"
 msgstr "нет специфицированных классов"
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 #| msgid "%<constexpr%> cannot appear in a typedef declaration"
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%<constexpr%> не может встречаться в typedef декларации"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "два или более типа в декларации имени %qs"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C++ не поддерживает плоские %<complex%> означающие %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ запрещает декларации %qs без типа"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "%<__int%d%> не поддерживается этой целевой платформой"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ не поддерживает %<__int%d%> для %qs"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 #| msgid "%<signed%> and %<unsigned%> specified together for %qs"
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> и %<unsigned%> одновременно заданы для %qs"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 #| msgid "%<long%> and %<short%> specified together for %qs"
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> и %<short%> одновременно заданы для %qs"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 #| msgid "%qs used with %qE"
 msgid "%qs specified with %qT"
 msgstr "%qs использован с %qE"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, fuzzy, gcc-internal-format
 #| msgid "%qs specified with %<typeof%>"
 msgid "%qs specified with typedef-name %qD"
 msgstr "%qs указан с %<typeof%>"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "%qs указан с %<decltype%>"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr "%qs указан с %<typeof%>"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "спецификатор complex для %qs недопустим"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, fuzzy, gcc-internal-format
 #| msgid "template placeholder type %qT must be followed by a simple declarator-id"
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr "за типом заполнителя шаблона %qT должен следовать простой declarator-id"
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "элемент %qD не может быть декларирован и как %<virtual%> и как %<static%>"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both %<virtual%> and %<constexpr%>"
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "элемент %qD не может быть декларирован и как %<virtual%> и как %<constexpr%>"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "typedef-декларация не допускается в декларации параметров"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "класс хранения задан для параметра шаблона %qs"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "класс хранения в декларации параметра %qs"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 #| msgid "a parameter cannot be declared %<constexpr%>"
 msgid "a parameter cannot be declared %qs"
 msgstr "параметр не может быть декларирован %<constexpr%>"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%> вне декларации класса"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr ""
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, fuzzy, gcc-internal-format
 #| msgid "unrestricted unions only available with -std=c++11 or -std=gnu++11"
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "unrestricted объединения допустимы только с -std=c++11 или -std=gnu++11"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer for structured binding declaration"
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "некорректный инициализатор для структурированной связывающей декларации"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr ""
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr "тип должен быть cv-qualified %<auto%> или ссылкой на cv-qualified %<auto%>"
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr ""
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "в декларации %qs задано более одного класса хранения"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "для %qs задан класс хранения"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "вложенная функция %qs объявлена %<extern%>"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "имя %qs описано на верхнем уровне с классом хранения %<auto%>"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "имя %qs на уровне функции неявно имеет класс auto и объявлено %<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "класс хранения не допускается в декларации friend-функции"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, gcc-internal-format
 msgid "attribute ignored"
 msgstr "атрибут проигнорирован"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr "атрибут, относящийся к спецификатору типа, игнорируется"
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr ""
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, fuzzy, gcc-internal-format
 #| msgid "Expected left parenthesis"
 msgid "remove parentheses"
 msgstr "Ожидалась открывающая скобка"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, fuzzy, gcc-internal-format
 #| msgid "%<~auto%> only available with -std=c++14 or -std=gnu++14"
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "%<~auto%> доступно только с -std=c++14 или -std=gnu++14"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 #| msgid "Function %qs at %L cannot have an initializer"
 msgid "a function type cannot have an explicit object parameter"
 msgstr "Функция %qs в %L не может иметь инициализатор"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, fuzzy, gcc-internal-format
 #| msgid "a conversion function cannot have a trailing return type"
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr "функция преобразования не может иметь завершающий тип возврата"
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 #| msgid "  member function type %qT is not a valid template argument"
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "  тип элемента-функции %qT не есть корректный аргумент шаблона"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr ""
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD declared here"
 msgid "valid explicit object parameter declared here"
 msgstr "параметр шаблона %qD декларирован здесь"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr "requires-клаузула для типа возврата"
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr "%qs функция использует %<auto%> спецификатор типа без завершающего типа возврата"
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, fuzzy, gcc-internal-format
 #| msgid "deduced return type only available with -std=c++14 or -std=gnu++14"
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "выведенный тип возврата доступен только с -std=c++14 или -std=gnu++14"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr "виртуальная функция не может иметь выведенный тип возврата"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr "%qs функция с завершающим типом возврата имеет %qT в качестве своего типа а не обычный %<auto%>"
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr "%qs функция с завершающим типом возврата имеет %qT в качестве своего типа а не обычный %<auto%>"
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<restrict%>"
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "неверное употребление спецификатора %<restrict%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr ""
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr "руководство вывода для %qT должно иметь завершающий тип возврата"
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr "хвостовой тип возврата %qT руководства вывода не есть специализация %qT"
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, fuzzy, gcc-internal-format
 #| msgid "trailing return type only available with -std=c++11 or -std=gnu++11"
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "завершающий тип возврата доступен только с -std=c++11 или -std=gnu++11"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr "%qs функция с завершающим типом возврата не декларирована с %<auto%> спецификатором типа"
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr "функция преобразования не может иметь завершающий тип возврата"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, fuzzy, gcc-internal-format
 #| msgid "%<_Atomic%>-qualified return type of %qD"
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr "%<_Atomic%>-квалифицированный возвращаемый тип в %qD"
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs объявлена как функция, возвращающая функцию"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs объявлена как функция, возвращающая массив"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, fuzzy, gcc-internal-format
 #| msgid "%<noreturn%> function returns non-void value"
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "функция с атрибутом noreturn возвращает не-void значение"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "деструктор не может быть статической элементом-функцией"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "конструктор не может быть статической элементом-функцией"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "деструкторы не могут быть cv-квалифицированы"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "конструкторы не могут быть cv-квалифицированы"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr "деструкторы не могут быть ref-квалифицированы"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr "конструкторы не могут быть ref-квалифицированы"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "конструкторы не могут быть декларированы %<virtual%>"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "виртуальные функции не могут быть friend-функциями"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "friend-декларация вне определения класса"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 #| msgid "can%'t define friend function %qs in a local class definition"
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "невозможно определить friend-функцию %qs в определении локального класса"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 #| msgid "non-member function %qD cannot have cv-qualifier"
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "не-элемент-функция %qD не может иметь cv-квалификатор"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 #| msgid "implicit templates may not be %<virtual%>"
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "неявные шаблоны не могут быть %<virtual%>"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD должен быть нестатической элементом-функцией"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "деструкторы не могут иметь параметров"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "недопустимая декларация указателя на %q#T"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "недопустимая декларация ссылки на %q#T"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "недопустимая декларация указателя на элемент %q#T"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "невозможно декларировать ссылку на квалифицированный тип функции %qT"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "невозможно декларировать указатель на квалифицированный тип функции %qT"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr "Недопустимо определять ссылку на %q#T, которая не будет определением типа или аргументом шаблона"
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "идентификатор шаблона %qD использован как декларатор"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "элементы-функции неявно считаются friend-функциями своего класса"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "избыточная квалификация %<%T::%> элемента %qs"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "недопустимая декларация элемента %<%T::%s%> внутри %qT"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "не параметрический %qs не может содержать параметры"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "элемент данных не может иметь тип %qT модифицируемого размера"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "параметр не может иметь модифицированный тип `%T"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "%<explicit%> вне декларации класса"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr "%<explicit%> в friend декларации"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "только декларации конструкторов и операторов преобразования могут быть %<explicit%>"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "недопустимая декларация не-элемента %qs как %<mutable%>"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "недопустимая декларация не объектного элемента %qs как %<mutable%>"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "недопустимая декларация функции %qs как %<mutable%>"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "static %qs cannot be declared %<mutable%>"
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "недопустимая декларация статического %qs как %<mutable%>"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "const %qs cannot be declared %<mutable%>"
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "недопустимая декларация константного %qs как %<mutable%>"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "ссылка %qs не может быть декларирована %<mutable%>"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in conditions"
 msgid "typedef may not be a function definition"
 msgstr "типы нельзя определять в условиях"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in conditions"
 msgid "typedef may not be a member function definition"
 msgstr "типы нельзя определять в условиях"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not in a declaration"
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<[*]%> не является декларацией"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "typedef декларирован %<auto%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr "requires-клаузула для typedef"
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "typedef имя не может быть вложенным спецификатором имени"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ISO C++ запрещает определять вложенный тип %qD с тем же именем, что и объемлющий класс"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "в декларации friend-класса использован квалификатор %<inline%>"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "параметры шаблона не могут быть friend"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "в friend-декларации требуется указание класса: %<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "в friend-декларации требуется указание класса: %<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "попытка сделать класс %qT \"другом\" глобальной области видимости"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "некорректные квалификаторы для типа функции, не являющейся элементом"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr "requires-клаузула для идентификатора типа"
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "абстрактный декларатор %qT использован в качестве декларатора"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "requires-клаузула в декларации нефункционального типа %qT"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "недопустимое использование %<::%> в декларации параметра"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter to be of abstract type %qT"
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "невозможно декларировать параметр с абстрактным типом %qT"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "%<auto%> параметр недопустим в данном контексте"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "параметр декларирован %<auto%>"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "некорректное использование имени шаблона %qE без списка аргументов"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "нестатический элемент данных декларирован с заполнителем %qT"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C++ запрещает элемент регулируемый массив %qs"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C++ запрещает элементы регулируемые массивы"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "недопустимое использование %<::%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "декларация функции %qD в неверном контексте"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "функция %qD декларирована %<virtual%> внутри объединения"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD не может быть декларирована %<virtual%>, поскольку она всегда статическая"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "ожидалось квалифицированное имя в friend декларации для деструктора %qD"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "декларация %qD как элемента %qT"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "a destructor cannot be %qs"
 msgstr "деструктор не может быть %<constexpr%>"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "ожидалось квалифицированное имя в friend декларации для конструктора %qD"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr "конструктор не может быть %<concept%>"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "concept не может быть элементом-функцией"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 #| msgid "cannot open %s"
 msgid "%qD cannot be %qs"
 msgstr "ошибка открытия %s"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr "специализация переменного шаблона %qD декларирована как функция"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, gcc-internal-format
 msgid "variable template declared here"
 msgstr "переменный шаблон декларирован здесь"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "поле %qD имеет неполный тип %qT"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "имя %qT имеет неполный тип"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE не является ни функцией, ни элементом-функцией; не может быть декларировано как friend"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is neither function nor member function; cannot be declared friend"
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "%qE не является ни функцией, ни элементом-функцией; не может быть декларировано как friend"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, fuzzy, gcc-internal-format
 #| msgid "an attribute that appertains to a type-specifier is ignored"
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr "атрибут, относящийся к спецификатору типа, игнорируется"
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 #| msgid "static data member %qE declared %<concept%>"
 msgid "static data member %qE declared %qs"
 msgstr "статический элемент данных %qE декларирован %<concept%>"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr ""
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member %qE declared %<constexpr%>"
 msgid "non-static data member %qE declared %qs"
 msgstr "нестатический элемент данных %qE объявлен как %<constexpr%>"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "некорректный класс хранения %<auto%> для функции %qs"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "некорректный класс хранения %<register%> для функции %qs"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "некорректный класс хранения %<__thread%> для функции %qs"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "класс хранения %<thread_local%> недопустим для функции %qs"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 #| msgid "alignment specified for function %qE"
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "выравнивание задано для функции %qE"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "virt-спецификаторы в %qs не допускаются вне определения класса"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "%<static%> спецификатор некорректен для функции %qs декларированной вне глобального контекста"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "некорректно указано %<inline%> для функции %qs, объявленной вне глобальной области видимости"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "виртуальная функция %qs не является элементом класса"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "%qs определен не в контексте класса"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "%qs декларирован не в контексте класса"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "недопустимая декларация статического элемента-функции %qD"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "недопустимая декларация статической функции внутри другой функции"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "слово %<static%> недопустимо при определении (в отличие от объявления) статического элемента данных в классе"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "статический элемент %qD объявлен как %<register%>"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "недопустимая явная extern-декларация элемента %q#D"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr ""
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 #| msgid "a parameter cannot be declared %<constexpr%>"
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "параметр не может быть декларирован %<constexpr%>"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%<extern%> декларация %qs с инициализацией"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "для %qs задан спецификатор %<extern%> и инициализатор"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "аргумент по умолчанию %qE использует %qD"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "аргумент по умолчанию %qE использует локальную переменную %qD"
 
 #
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "некорректное использование cv-квалифицированного типа %qT в декларации параметра"
 
 #
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "некорректное использование типа %<void%> в декларации параметра"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, fuzzy, gcc-internal-format
 #| msgid "%<_Atomic%>-qualified parameter type %qT of %q+D"
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "%<_Atomic%>-квалифицированный параметр типа %qT для %q+D"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "некорректная декларация параметра %qD с типом метода"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "параметр %qD включает указатель на массив с неизвестной границей %qT"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "параметр %qD включает ссылку на массив с неизвестной границей %qT"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "некорректный конструктор; возможно, вы имели в виду %<%T (const %T&)%>"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "декларация %qD может не действовать в пространстве имён"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD можно не определять статической"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a non-static member function"
 msgstr "%qD должен быть нестатической элементом-функцией"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a non-member function"
 msgid "%qD must be a member function"
 msgstr "%qD должен быть не-элемент-функцией"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "C++11 %<constexpr%> доступно только с -std=c++11 или -std=gnu++11"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD должен быть либо нестатическим элементом-функцией или функцией-не-элементом"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD должен иметь аргумент типа класс или перечислимого типа"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ prohibits overloading operator ?:"
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ не поддерживает перегрузку операции ?:"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD не может иметь переменное число аргументов"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr ""
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr ""
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr ""
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr ""
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, gcc-internal-format
 msgid "%qD must have no arguments"
 msgstr ""
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr ""
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr ""
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD не может иметь аргументов по умолчанию"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to void will never use a type conversion operator"
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "преобразование к void никогда не использует операцию преобразования типа"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to a reference to the same type will never use a type conversion operator"
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "преобразование к ссылке на тот же тип никогда не будет использовать операцию преобразования типа"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to the same type will never use a type conversion operator"
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "преобразование к тому же типу никогда не будет использовать операцию преобразования типа"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to a reference to a base class will never use a type conversion operator"
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "преобразование к ссылке на базовый класс никогда не будет использовать операцию преобразования типа"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to a base class will never use a type conversion operator"
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "преобразование к базовому классу никогда не будет использовать операцию преобразования типа"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "пользовательский оператор %qD всегда вычисляет оба аргумента"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "префиксный %qD должен возвращать %qT"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "постфиксный %qD должен возвращать %qT"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD должен возвращать результат по значению"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "использование параметра шаблона %qT после %qs"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "использование синонима специализации шаблона %qT после %qs"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "использование typedef-имени %qD после %qs"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "%qD ранее декларирован здесь"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "ссылка на %qT как на %qs"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "%qT ранее декларирован здесь"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "ссылка на %qT как на enum"
@@ -60824,118 +60832,101 @@ msgstr "ссылка на %qT как на enum"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "для %<%s %T%> нужен аргумент-шаблон"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "ссылка на %qD противоречива"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 #| msgid "function template %qD redeclared as a class template"
 msgid "class template %qD redeclared as non-template"
 msgstr "шаблон функции %qD редекларирован как шаблон класса"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD имеет то же имя, что и класс, в котором он(а) декларируется"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT не является шаблоном"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr "возможно вы хотите явно добавить %<%T::%>"
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "использование перечисления %q#D без предыдущей декларации"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "повторная декларация %qT как не-шаблона"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD to be a bit-field type"
-msgid "cannot declare %qD in a different module"
-msgstr "недопустимая декларация %qD как битового поля"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "предыдущая декларация здесь"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "некорректный производный тип union %qT"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr "%qT определен с многими непосредственными базами"
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr "%qT определен с непосредственной виртуальной базой"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "базовый тип %qT не является ни структурой, ни классом"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "рекурсивный тип %qT не определён"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "некорректное дублирование базового типа %qT"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-#| msgid "cannot capture %qE by reference"
-msgid "cannot declare %qD in different module"
-msgstr "невозможно захватить %qE по ссылке"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr "scoped/unscoped рассогласование в enum %q#T"
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr "предыдущее определение здесь"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr "рассогласование основного типа в enum %q#T"
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr "отличающийся основной тип в enum %q#T"
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr ""
@@ -60944,84 +60935,84 @@ msgstr ""
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "ни один целочисленный тип не годится для представления всех значений перечислимого типа %qT"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "значение перечислимого типа для %qD должно иметь целочисленный или unscoped перечислимый тип"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "значение перечислимого типа для %qD не является константой целого типа"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "увеличенное значение перечисления слишком велико для %<unsigned long%>"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "увеличенное значение перечисления слишком велико для %<long%>"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "переполнение в перечисляемых значениях для %qD"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr ""
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "повторное определение %q#T"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "тип результата %q#T неполный"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%> должен возвращать ссылку на %<*this%>"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "нет операторов возврата в функции возвращающей %qT"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "только плоский %<auto%> тип возврата может быть приведен к %<void%>"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "в функции, которая должна возвращать значение, отсутствует оператор return"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD уже определена в классе %qT"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 #| msgid "enclosing %qs"
 msgid "using %qs"
 msgstr "объемлющая %qs"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr "использование %qD до приведения %<auto%>"
@@ -61076,7 +61067,7 @@ msgstr ""
 msgid "deleting %qT is undefined"
 msgstr "удаление %qT не определено"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "шаблонная декларация %q#D"
@@ -61086,7 +61077,7 @@ msgstr "шаблонная декларация %q#D"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "предоставленные списки параметров шаблона не соответствуют параметрам шаблона %qD"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "деструктор %qD объявлен как шаблон элемента"
@@ -61274,72 +61265,72 @@ msgstr "деструктор не может быть статической э
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> имеет первый параметр типа %qT"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type has no linkage"
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr "%qT имеет поле %qD, тип которого не имеет привязки"
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr "%qT имеет поле %qD, тип которого зависит от типа %qT, который не имеет привязки"
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type has no linkage"
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%qT имеет поле %qD, тип которого не имеет привязки"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr "%qT имеет поле %qD, использующее анонимное пространство имён"
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qT объявлен с большей областью видимости, чем тип его поля %qD"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type has no linkage"
 msgid "%qT has a base %qT which has no linkage"
 msgstr "%qT имеет базу %qT чей тип не имеет привязки"
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type depends on the type %qT which has no linkage"
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr "%qT имеет базу %qT чей тип зависит от типа %qT, который не имеет привязки"
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type has no linkage"
 msgid "%qT has a base %qT which has internal linkage"
 msgstr "%qT имеет базу %qT чей тип не имеет привязки"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr "%qT наследован от %qT, использующего анонимное пространство имён"
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT объявлен с большей областью видимости, чем родитель %qT"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D, declared using unnamed type, is used but never defined"
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%q#D, декларированное с использованием неименованного типа, используется, но не определяется"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D, declared using unnamed type, is used but never defined"
 msgid "%q#D, declared using an unnamed type, is used but not defined"
@@ -61349,110 +61340,110 @@ msgstr "%q#D, декларированное с использованием н
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "неименованный тип без привязки использован для декларации переменной %q#D с привязкой"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "неименованный тип без привязки использован для декларации функции %q#D с привязкой"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q#D не ссылается на неквалифицированный тип, поэтому не используется для привязки"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q#D, декларированное с использованием локального типа %qT, используется, но не определяется"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D, declared using local type %qT, is used but never defined"
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%q#D, декларированное с использованием локального типа %qT, используется, но не определяется"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr "тип %qT без привязки использован для декларации переменной %q#D с привязкой"
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "тип %qT без привязки использован для декларации функции %q#D с привязкой"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr ""
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr ""
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, fuzzy, gcc-internal-format
 #| msgid "a later -fabi-version= (or =0) avoids this error with a change in mangling"
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr "более поздняя -fabi-version= (или =0) избегает этой ошибки изменением в разборке"
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr "программа должна также определять %qD"
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr "inline функция %qD использована, но нигде не определена"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 #| msgid "default argument missing for parameter %P of %q+#D"
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "отсутствует аргумент по умолчанию для параметра %P функции %q+#D"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, fuzzy, gcc-internal-format
 #| msgid "parameter pack cannot have a default argument"
 msgid "...following parameter %P which has a default argument"
 msgstr "parameter pack не может иметь подразумеваемый аргумент"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 #| msgid "class %qE is deprecated"
 msgid "implicitly-declared %qD is deprecated"
 msgstr "класс %qE устарел"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr ""
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "использование удаленной функции %qD"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %q#D with different constraints"
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "редекларация %q#D с другими ограничениями"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr ""
@@ -61573,7 +61564,7 @@ msgstr "ссылка на %<%T::%D%> неоднозначна"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qT не содержит элемент с именем %qE; имелось в виду %qE?"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD не является элементом %qT"
@@ -61584,7 +61575,7 @@ msgstr "%qD не является элементом %qT"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qT не содержит элемент с именем %qE; имелось в виду %qE?"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD не является элементом %qD"
@@ -61611,50 +61602,50 @@ msgstr "обработка прерываний отключена, задайт
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "исключительная ситуация NULL имеет целый тип, а не тип указателя"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  в throw-выражении"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare catch parameter to be of rvalue reference type %qT"
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "невозможно декларировать catch параметр как rvalue тип ссылки %qT"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "невозможно throw выражение типа %qT, поскольку он включает типы переменного размера"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "невозможно catch тип %qT, поскольку он включает типы переменного размера"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, fuzzy, gcc-internal-format
 #| msgid "exception of type %qT will be caught"
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "исключительная ситуация типа %qT будет обработана"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, fuzzy, gcc-internal-format
 #| msgid "for %qD"
 msgid "for type %qT"
 msgstr "для %qD"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "обработчик %<...%> должен быть последним в своем try-блоке"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr "noexcept-expression приводится к %<false%> из-за вызова %qD"
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr "но %qD не делает throw; возможно его следует декларировать %<noexcept%>"
@@ -61925,12 +61916,12 @@ msgstr "тип %qT не является непосредственной или
 msgid "type %qT is not a direct base of %qT"
 msgstr "тип %qT не является непосредственной базой %qT"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "массив должен быть инициализирован инициализатором в фигурных скобках"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT не является классовым типом"
@@ -61945,12 +61936,12 @@ msgstr "неполный тип %qT не имеет элемента %qD"
 msgid "invalid pointer to bit-field %qD"
 msgstr "некорректный указатель на битовое поле %qD"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "некорректное использование нестатической функции-элемента %qD"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "некорректное использование нестатического элемента %qD"
@@ -62156,52 +62147,52 @@ msgstr "удаление объекта абстрактного типа кла
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr "удаление объекта полиморфного типа класса %qT, имеющего невиртуальный деструктор, может вызвать неопределенное поведение"
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "тип, заданный в векторном delete, не является ни массивом, ни указателем"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr "массив с границей времени выполнения не может захватываться копированием, только по ссылке"
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr "так как тип элементов массива %qT имеет переменный размер"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "невозможно захватить %qE по ссылке"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "захват копированием неполного типа %qT"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "%<this%> не было захвачено для этой lambda функции"
@@ -62600,242 +62591,293 @@ msgstr "ожидался template-id для типа"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q+#D"
 msgid "conflicting global module declaration %#qD"
 msgstr "конфликтующая декларация %q+#D"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration %q+D"
 msgid "existing declaration %#qD"
 msgstr "в декларации %q+D"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 #| msgid "extern declaration of %q#D doesn%'t match"
 msgid "definition of %qD does not match"
 msgstr "extern декларация %q#D не соответствует"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing definition"
 msgid "existing definition %qD"
 msgstr "отсутствует определение"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "... this enumerator %qD"
 msgstr "повторная декларация перечислимого типа %q+D"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 #| msgid "argument of type %qT does not match %qT"
 msgid "enumerator %qD does not match ..."
 msgstr "аргумент типа %qT не соответствует типу %qT"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 #| msgid "routine %qD declared here"
 msgid "module %qs declared here"
 msgstr "программа %qD декларирована здесь"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %qD was here"
 msgid "macro definitions of %qE corrupted"
 msgstr "предыдущее определение %qD было здесь"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 #| msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgid "inconsistent imported macro definition %qE"
 msgstr "  противоречивый вывод parameter pack с %qT и %qT"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 #| msgid "Can't delete module file %qs: %s"
 msgid "compiled module file is %qs"
 msgstr "Не удалось удалить файл модуля %qs: %s"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Display the compiler's version."
 msgid "compiled module is %sversion %s"
 msgstr "Показать версию компилятора."
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2 версия %s\n"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 #| msgid "no %qs getter found"
 msgid "module %qs found"
 msgstr "не найден %qs getter"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, fuzzy, gcc-internal-format
 #| msgid "exception handling disabled, use -fexceptions to enable"
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr "обработка прерываний отключена, задайте -fexceptions"
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 #| msgid "function attribute mismatch"
 msgid "fixed tree mismatch"
 msgstr "несовпадение атрибутов функции"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "interface partition is not exported"
 msgstr "выражение для границы стека не поддерживается"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to rename %s to state file %s [%s]"
 msgid "failed to read compiled module cluster %u: %s"
 msgstr "не удалось переименовать %s в файл состояния %s [%s]"
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to create map component '%s'"
 msgid "failed to read compiled module: %s"
 msgstr "не удалось создать map компонент '%s'"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of %q+#D conflicts with built-in declaration %q#D"
+msgid "declaration %qD conflicts with builtin"
+msgstr "декларация %q+#D конфликтует с внутренней декларацией %q#D"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of namespace %qD conflicts with"
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "декларация namespace %qD противоречит"
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration of template %q+#D"
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "конфликтующая декларация шаблона %q+#D"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration of %q+#D with %qL linkage"
+msgid "conflicting declaration of %qD in global module"
+msgstr "конфликтующая декларация %q+#D с %qL привязкой"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared here"
+msgid "previously declared in module %qs"
+msgstr "предыдущая декларация здесь"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared here"
+msgid "previously declared in global module"
+msgstr "предыдущая декларация здесь"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 #| msgid "creating %s"
 msgid "reading CMI %qs"
 msgstr "создание %s"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr ""
@@ -62847,326 +62889,326 @@ msgstr ""
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol %qs already declared"
 msgid "module already declared"
 msgstr "Символ %qs уже декларирован"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, fuzzy, gcc-internal-format
 #| msgid "module procedure"
 msgid "module already imported"
 msgstr "процедура модуля"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, fuzzy, gcc-internal-format
 #| msgid "module procedure"
 msgid "module %qs imported here"
 msgstr "процедура модуля"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "unknown punctuation '%c'"
 msgid "unknown Compiled Module Interface: %s"
 msgstr "неизвестный знак пунктуации '%c'"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, fuzzy, gcc-internal-format
 #| msgid "the \"%s\" debug format cannot be used with pre-compiled headers"
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr "\"%s\" отладочный формат не может быть использован с прекомпилированными заголовками"
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 #| msgid "Enable traditional preprocessing."
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "Традиционное препроцессирование."
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr ""
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param name %qs"
 msgid "invalid header name %qs"
 msgstr "некорректное --param имя %qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param name %qs"
 msgid "invalid module name %qs"
 msgstr "некорректное --param имя %qs"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 #| msgid "error writing %qs"
 msgid "writing CMI %qs"
 msgstr "ошибка записи %qs"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 #| msgid "Error writing modules file: %s"
 msgid "not writing module %qs due to errors"
 msgstr "Ошибка записи в файл модулей: %s"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to create map component '%s'"
 msgid "failed to write compiled module: %s"
 msgstr "не удалось создать map компонент '%s'"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 #| msgid "unknown spec function %qs"
 msgid "unknown header kind %qs"
 msgstr "неизвестная функция %qs в спецификации"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, fuzzy, gcc-internal-format
 #| msgid "inline namespaces only available with -std=c++11 or -std=gnu++11"
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "inline namespaces доступны только с -std=c++11 или -std=gnu++11"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+#D shadows template parameter"
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "декларация %q+#D перекрывает параметр шаблона"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D конфликтует с предыдущей декларацией"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr ""
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr ""
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "из-за различных спецификаций исключений"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD invalidly declared method type"
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "некорректная декларация параметра %qD с типом метода"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "декларация %q#D перекрывает параметр"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "декларация %qD перекрывает элемент %qT"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr ""
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s %p %d\n"
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %s %p %d\n"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s %p %d\n"
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d\n"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D declared here"
 msgid "%q#D declared here with no linkage"
 msgstr "%q#D декларировано здесь"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared here, later in the translation unit"
 msgid "%q#D declared here with internal linkage"
 msgstr "%qD декларировано здесь, позднее в единице трансляции"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D declared here"
 msgid "%q#D declared here with module linkage"
 msgstr "%q#D декларировано здесь"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> names destructor"
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T::%D%> обозначает деструктор"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "using-декларация для не-элемента внутри класса"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<constexpr%> only available with -std=c++11 or -std=gnu++11"
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "C++11 %<constexpr%> доступно только с -std=c++11 или -std=gnu++11"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a class, namespace, or enumeration"
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qE не класс, пространство имен или перечисление"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, fuzzy, gcc-internal-format
 #| msgid "non-member-template declaration of %qD"
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "non-member-template декларация %qD"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration for non-member at class scope"
 msgid "using-declaration for member at non-class scope"
 msgstr "using-декларация для не-элемента внутри класса"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "%qT is not a direct base of %qT"
 msgstr "тип %qT не является непосредственной базой %qT"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, fuzzy, gcc-internal-format
 #| msgid "did you mean to use logical not (%<!%>)?"
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr "имелось в виду использовать логическое отрицание (%<!%>)?"
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has not been declared"
 msgid "%qD has not been declared in %qD"
 msgstr "%qE не был декларирован"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration of namespace %q+D"
 msgid "using-declaration may not name namespace %qD"
 msgstr "противоречивая декларация %q#D"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> обозначает конструктор в %qT"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "декларация %qD вне пространства имён, объемлющего %qD"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "явные квалификаторы в декларации %qD"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD следовало объявить внутри %qD"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr ""
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "%qD атрибут требует единственный NTBS аргумент"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr "%qD атрибут не имеет смысла, поскольку элементы анонимного пространства имен получают локальные символы"
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr "игнорирование %qD атрибута в анонимном пространстве имен"
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "игнорирование %qD атрибута в non-inline пространстве имен"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "атрибут %qD игнорируется"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr "максимальное число %d пространств имен просмотрено для %qE"
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
@@ -63174,100 +63216,100 @@ msgstr[0] "предлагаемый вариант:"
 msgstr[1] "предлагаемые варианты:"
 msgstr[2] "предлагаемые варианты:"
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr "  %qE"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr ""
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr ""
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, gcc-internal-format
 msgid "it was later defined here"
 msgstr ""
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, fuzzy, gcc-internal-format
 #| msgid "definition of %qD does not match %<#include <initializer_list>%>"
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr "определение %qD не соответствует %<#include <initializer_list>%>"
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 #| msgid "%<-fabi-version=1%> is no longer supported"
 msgid "%<strong%> using directive no longer supported"
 msgstr "%<-fabi-version=1%> больше не поддерживается"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%<this%> недопустим в данном контексте"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr ""
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %L is ambiguous"
 msgid "%<namespace %E%> is ambiguous"
 msgstr "%qs в %L неоднозначно"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "использование пространства имён %qD здесь недопустимо; предполагается %qD"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, gcc-internal-format
 msgid "%qD defined here"
 msgstr ""
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 #| msgid "%qD conflicts with used function"
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "%qD противоречит использованной функции"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "previous definition here"
 msgid "reachable %s definition here"
 msgstr "предыдущее определение здесь"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, fuzzy, gcc-internal-format
 #| msgid "XXX entering pop_everything ()\n"
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX вход в pop_everything ()\n"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "XXX leaving pop_everything ()\n"
 msgid "XXX leaving %<pop_everything ()%>"
@@ -63295,7 +63337,7 @@ msgstr "идентификатор %qE является ключевым сло
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr "LEXER_DEBUGGING_ENABLED_P не установлено в true"
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp declare simd%> not immediately followed by function declaration or definition"
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
@@ -63551,7 +63593,7 @@ msgstr "C++11 %<constexpr%> доступно только с -std=c++11 или -
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<concept%> доступно только с -fconcepts"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, fuzzy, gcc-internal-format
 #| msgid "%<requires%> only available with -fconcepts"
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
@@ -63735,7 +63777,7 @@ msgstr "операторы-выражения не допустимы вне ф
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "lambda-выражения доступны только с -std=c++11 или -std=gnu++11"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "ожидалось primary-expression"
@@ -63795,7 +63837,7 @@ msgstr "%<~auto%> доступно только с -std=c++14 или -std=gnu++1
 msgid "template-id not allowed for destructor in C++20"
 msgstr "квалификаторы не допускаются в декларации деструктора"
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -63815,7 +63857,7 @@ msgstr "typedef-имя %qD использовано как декларатор
 msgid "expected unqualified-id"
 msgstr "ожидался unqualified-id"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD не является шаблоном"
@@ -63867,7 +63909,7 @@ msgstr "типы нельзя определять в %<typeid%> выражен
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "неверное число аргументов для %<__builtin_addressof%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "неверное число аргументов для %<__builtin_launder%>"
@@ -63905,7 +63947,7 @@ msgstr "типы нельзя определять в условиях"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "некорректное использование %qD"
@@ -63930,7 +63972,7 @@ msgstr "ISO C++ не допускает %<alignof%> с не-типом"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "типы не могут быть определены в %<noexcept%> выражениях"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in a new-expression"
 msgid "types may not be defined in %qs expressions"
@@ -64093,8 +64135,8 @@ msgstr "пустой инициализатор для lambda init-capture"
 msgid "capture of non-variable %qE"
 msgstr ""
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%q#D декларировано здесь"
@@ -64137,7 +64179,7 @@ msgstr "задан аргумент по умолчанию для lambda-пар
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "inline namespaces доступны только с -std=c++11 или -std=gnu++11"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -64276,7 +64318,7 @@ msgstr "в операторе asm требуется lvalue-выражение"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "наследуемые конструкторы доступны только с -std=c++11 или -std=gnu++11"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "ожидался selection-statement"
@@ -64342,7 +64384,7 @@ msgstr "range-based %<for%> выражение типа %qT имеет непо
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr "противоречивые begin/end типы в range-based %<for%> операторе: %qT и %qT"
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "ожидался iteration-statement"
@@ -64371,7 +64413,7 @@ msgstr "C++11 %<constexpr%> доступно только с -std=c++11 или -
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ не поддерживает вычисляемые goto"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "ожидался оператор перехода"
@@ -64673,12 +64715,12 @@ msgstr "только конструкторы берут инициализат
 msgid "cannot expand initializer for member %qD"
 msgstr ""
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "mem-initializer для %qD следует за constructor delegation"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr "constructor delegation следует за mem-initializer для %qD"
@@ -65357,7 +65399,7 @@ msgstr "отсутствуют аргументы шаблона после %qT"
 msgid "%qT not permitted in template argument"
 msgstr "отсутствуют аргументы шаблона"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, gcc-internal-format
 msgid "invalid use of %qT"
@@ -65542,13 +65584,13 @@ msgstr "предыдущее определение %q#T"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, fuzzy, gcc-internal-format
 #| msgid "no unexpanded parameter packs in binary fold"
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr "нет нерасширенных пакетов параметров в бинарной свертке"
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr "ожидалось class-key"
@@ -65763,39 +65805,39 @@ msgstr "C++11 атрибуты доступны только с -std=c++11 ил
 msgid "expression must be enclosed in parentheses"
 msgstr "выражение должно быть целочисленным"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 #| msgid "requested position is not an integer constant"
 msgid "result type is not a plain type-constraint"
 msgstr "заданная позиция не является целой константой"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not an integer constant"
 msgid "return-type-requirement is not a type-constraint"
 msgstr "запрошенное выравнивание не является целочисленной константой"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr "специализация элемента %<%T::%E%> требует %<template<>%> синтаксис"
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "некорректная декларация %<%T::%E%>"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "недостаточно списков параметров шаблонов"
@@ -65804,453 +65846,453 @@ msgstr "недостаточно списков параметров шабло
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "слишком много списков параметров шаблонов"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on constructor declaration"
 msgid "template-id not allowed for constructor in C++20"
 msgstr "квалификаторы не допускаются в декларации конструктора"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "именованные возвращаемые значения больше не поддерживаются"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr "нет подходящего concept для template-introduction"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "некорректная декларация шаблона элемента в локальном классе"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "шаблон с привязкой C"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "некорректная явная специализация"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "шаблонная декларация %<typedef%>"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr "декларация шаблона класса не должна декларирован ничего иного"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "явная специализация шаблона не может иметь класс хранения"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%<>>%> должно быть %<> >%> внутри списка аргументов вложенного шаблона"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "ошибочное использование %<>>%>, используйте %<>%> для завершения списка аргументов шаблона"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 #| msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "ошибочное использование %<>>%>, используйте %<>%> для завершения списка аргументов шаблона"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr "аргумент %<sizeof...%> должен быть окружен скобками"
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "некорректное использование %qD в спецификации привязки"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate virt-specifier"
 msgid "duplicate %qD specifier"
 msgstr "повторный virt-specifier"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 #| msgid "%qs used with %qE"
 msgid "%qD specifier conflicts with %qs"
 msgstr "%qs использован с %qE"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> перед %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, fuzzy, gcc-internal-format
 #| msgid "%qs specified with %<typeof%>"
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%qs указан с %<typeof%>"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ 1998 не поддерживает %<long long%>"
 
 #
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "заданы и %<__thread%> и %<thread_local%>"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "дублирование %qD"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "дублирование %qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "ожидалось %<new%>"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "ожидалось %<delete%>"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "ожидалось %<return%>"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "ожидалось %<extern%>"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "ожидалось %<static_assert%>"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "ожидалось %<decltype%>"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "ожидалось %<operator%>"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "ожидалось %<class%>"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "ожидалось %<template%>"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "ожидалось %<namespace%>"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "ожидалось %<using%>"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "ожидалось %<asm%>"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "ожидалось %<try%>"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "ожидалось %<catch%>"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "ожидалось %<throw%>"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<data%>"
 msgid "expected %<auto%>"
 msgstr "ожидалось %<data%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "ожидалось %<__label__%>"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "ожидалось %<@try%>"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "ожидалось %<@synchronized%>"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "ожидалось %<@throw%>"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "ожидалось %<__transaction_atomic%>"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "ожидалось %<__transaction_relaxed%>"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<@end%>"
 msgid "expected %<co_yield%>"
 msgstr "ожидалось %<@end%>"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "ожидалось %<::%>"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "ожидалось %<...%>"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "ожидалось %<*%>"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "ожидалось %<~%>"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "ожидалось %<:%> или %<::%>"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "ожидалось %<class%>, %<typename%> или %<template%>"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "%qs tag использован в именовании %q#T"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "%q#T был ранее декларирован здесь"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "недопустимая декларация ссылки на %q#T"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, fuzzy, gcc-internal-format
 #| msgid "%qT declared with greater visibility than its base %qT"
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qT объявлен с большей областью видимости, чем родитель %qT"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 #| msgid "expected class-key"
 msgid "replace the class-key with %qs"
 msgstr "ожидалось class-key"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 #| msgid "label %qD defined here"
 msgid "%qT defined as %qs here"
 msgstr "метка %qD определена здесь"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 #| msgid "%qT declared here"
 msgid "%qT first declared as %qs here"
 msgstr "%qT декларировано здесь"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD редекларирован с другим доступом"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "в C++98 %<template%> (для снятия неоднозначности) допускается только внутри шаблонов"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "конец файла в аргументе по умолчанию"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "неверное положение %<@%D%> конструкции Objective-C++"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr "objective-c++ получатель сообщения ожидался"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr "ожидались objective-c++ аргумент(ы) сообщения"
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "в конструкции %<@encode%> в качестве аргумента должен быть задан тип"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "некорректное Objective-C++ имя селектора"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr "ожидалась objective-c++ декларация метода"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "атрибуты метода должны задаваться в конце"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr "случайное %qs между Objective-C++ методами"
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "некорректный тип для instance переменной"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "ожидался идентификатор после %<@protocol%>"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr "атрибуты нельзя задавать до %<@%D%> Objective-C++ ключевого слова"
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "префиксные атрибуты игнорируются до %<@%D%>"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, gcc-internal-format
 msgid "invalid type for property"
 msgstr "некорректный тип для property"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, fuzzy, gcc-internal-format
 #| msgid "unknown property attribute"
 msgid "unknown property attribute %qE"
 msgstr "неизвестный атрибут свойства"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected integer expression list"
 msgstr "ожидалось целочисленное выражение"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "%<wait%> выражение должно быть целочисленным"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "ожидалось %<class%>, %<typename%> или %<template%>"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "некорректный reduction-инициализатор"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in parameter types"
 msgid "types may not be defined in iterator type"
@@ -66260,13 +66302,13 @@ msgstr "типы нельзя определять в типах парамет
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma vtable no longer supported"
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "#pragma vtable больше не поддерживается"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr "скобочная инициализация не допускается в OpenMP %<for%> цикле"
@@ -66277,142 +66319,142 @@ msgstr "скобочная инициализация не допускаетс
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr "%<ordered%> клаузула с параметром не может быть задана в %qs конструкции"
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "итерационная переменная %qD не должна быть reduction"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%>"
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp end declare target%> без соответствующей %<#pragma omp declare target%>"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "некорректная клаузула инициализатора"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "ожидалось id-выражение (аргументы)"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr "один из аргументов вызова инициализатора должен быть %<omp_priv%> или %<&omp_priv%>"
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr "типы не могут определяться в declare reduction списке типов"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr "предекларированный арифметический тип %qT в %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr "функциональный или массивный тип %qT в %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr "тип ссылки %qT в %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, fuzzy, gcc-internal-format
 #| msgid "const, volatile or __restrict qualified type %qT in %<#pragma omp declare reduction%>"
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr "const, volatile или __restrict квалифицированный тип %qT в %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr "%<#pragma acc routine%> именует множество перегрузок"
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD не ссылается на функцию в контексте пространства имен"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, fuzzy, gcc-internal-format
 #| msgid "atomic_cancel"
 msgid "%<atomic_cancel%>"
 msgstr "atomic_cancel"
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr "%<__transaction_relaxed%> без включения поддержки транзакционной памяти"
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr "%<__transaction_atomic%> без включения поддержки транзакционной памяти"
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr "внешний %<__transaction_cancel%> не внутри внешнего %<__transaction_atomic%>"
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr "  либо %<transaction_may_cancel_outer%> функция"
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 #| msgid "malformed #pragma GCC coprocessor"
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "некорректный синтаксис #pragma GCC coprocessor"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp barrier%> может использоваться только в составных операторах"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp cancel%> may only be used in compound statements"
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp taskyield%> может использоваться только в составных операторах"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma GCC ivdep%> must be inside a function"
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "%<#pragma GCC ivdep%> должна быть внутри функций"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "multi-source compilation not implemented for C++"
 msgstr "межмодульные оптимизации не реализованы для C++"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 #| msgid "standard conversions are not allowed in this context"
 msgid "placeholder type not allowed in this context"
 msgstr "стандартные преобразования в данном контексте недопустимы"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr "неявные шаблоны не могут быть %<virtual%>"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -66442,7 +66484,7 @@ msgstr "объемлющие шаблоны классов не были явн
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "специализация %qD должна появляться в пределах пространства имен"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "специализация %qD в другой namespace-области"
@@ -66457,27 +66499,27 @@ msgstr ""
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "явная конкретизация %qD в пространстве имен %qD (которое не включает пространство имен %qD)"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "имя класса затеняет шаблон параметра шаблона %qD"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "специализация алиасного шаблона %qD"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "явная специализация не-шаблона %qT"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "специализация %qT после конкретизации"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %q#D"
 msgid "from definition of %q#D"
@@ -66485,147 +66527,147 @@ msgstr "переопределение %q#D"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "специализация %qT после конкретизации %qT"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "специализация шаблона %qD не допускается ISO C++"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "специализация %qD после конкретизации"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, gcc-internal-format
 msgid "%s %#qD"
 msgstr ""
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD не является шаблоном функции"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "%qD не есть переменный шаблон"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "идентификатор шаблона %qD для %q+D не соответствует никакой декларации шаблона"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr "разбор %d %<template<>%>, требуется %d для специализации шаблона элемента-функции"
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "неоднозначная конкретизация шаблона %qD для %q+D"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, fuzzy, gcc-internal-format
 #| msgid "variable templates only available with -std=c++14 or -std=gnu++14"
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "переменные шаблоны доступны только с -std=c++14 или -std=gnu++14"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr ""
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr "элементы явно специализированного класса определяются без заголовка шаблона"
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "явная специализация %qD вне своего пространства имен должна использовать nested-name-specifier"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "явная конкретизация %qD вне своего пространства имен должна использовать nested-name-specifier"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr ""
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr ""
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr ""
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 #| msgid "template-id %qD in declaration of primary template"
 msgid "template-id %qE in declaration of primary template"
 msgstr "template-id %qD в декларации первичного шаблона"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "список параметров шаблона использован в явной конкретизации"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "определение представленное для явной конкретизации"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "слишком много списков параметров шаблона в декларации %qD"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "слишком мало списков параметров шаблона в декларации %qD"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "перед явной специализацией %qD должно быть %<template <>%>"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr "явная специализация декларированного %<concept%>"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 #| msgid "non-type partial specialization %qD is not allowed"
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "нетиповая частичная специализация %qD не допускается"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, fuzzy, gcc-internal-format
 #| msgid "non-class, non-variable partial specialization %qD is not allowed"
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "неклассовая, непеременная частичная специализация %qD не допускается"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "задан подразумеваемый аргумент в явной специализации"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD не является функцией шаблоном"
@@ -66638,142 +66680,142 @@ msgstr "%qD не является функцией шаблоном"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "специализация неявно декларированного специального элемента-функции"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "никакая элемент-функция %qD не декларирована в %qT"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "friend декларация %qD не видна для явной специализации"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, gcc-internal-format
 msgid "friend declaration here"
 msgstr "friend декларация здесь"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr "явная специализация function concept %qD"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ACOS at %L must be between -1 and 1"
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "Аргумент ACOS в %L должен быть между -1 и 1"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, fuzzy, gcc-internal-format
 #| msgid "non-parameter %qs cannot be a parameter pack"
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "не параметрический %qs не может содержать параметры"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, fuzzy, gcc-internal-format
 #| msgid "non-parameter %qs cannot be a parameter pack"
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "не параметрический %qs не может содержать параметры"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr "packs параметров не расширены с %<...%>:"
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "          %s"
 msgid "        %s"
 msgstr "          %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "декларация параметра шаблона %q+D перекрывает параметр шаблона"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "декларация %q+#D перекрывает параметр шаблона"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr "параметр шаблона %qD декларирован здесь"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "специализация variable concept %q#D"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "параметры шаблона не выводимы в частичной специализации:"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr "первичный шаблон здесь"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr "частичная специализация не более специальна чем первичный шаблон, так как она замещает несколько параметров пакетным расширением"
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qE"
 msgid "too many arguments for partial specialization %qT"
 msgstr "слишком много аргументов в вызове функции %qE"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr "частичная специализация %qD не более специальна чем"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, gcc-internal-format
 msgid "primary template %qD"
 msgstr "первичный шаблон %qD"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr "parameter pack аргумент %qE должен быть в конце списка аргументов шаблона"
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr "parameter pack аргумент %qT должен быть в конце списка аргументов шаблона"
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
@@ -66781,17 +66823,17 @@ msgstr[0] "тип %qT аргумента шаблона %qE зависит от
 msgstr[1] "тип %qT аргумента шаблона %qE зависит от параметров шаблона"
 msgstr[2] "тип %qT аргумента шаблона %qE зависит от параметров шаблона"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "декларация %qD делает неоднозначной более раннюю конкретизацию шаблона для %qD"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "частичная специализация %qD после конкретизации %qD"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "нет подразумеваемого аргумента для %qD"
@@ -66800,48 +66842,48 @@ msgstr "нет подразумеваемого аргумента для %qD"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "parameter pack %q+D должен быть в конце списка параметров шаблона"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "подразумеваемые аргументы шаблона не могут использоваться в редекларации friend шаблона функции"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr ""
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11"
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "подразумеваемые аргументы шаблона не могут использоваться в шаблонах функций без -std=c++11 или -std=gnu++11"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr "подразумеваемые аргументы шаблона не могут использоваться в частичных специализациях"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "подразумеваемый аргумент для параметра шаблона для класса включающего %qD"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, gcc-internal-format
 msgid "template %qD declared"
 msgstr "шаблон %qD декларирован"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "шаблон класса без имени"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr "элемент-шаблон %qD не может иметь virt-спецификаторы"
@@ -66851,63 +66893,63 @@ msgstr "элемент-шаблон %qD не может иметь virt-спец
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "некорректная template-декларация %qD"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "определение шаблона для не-шаблона %q#D"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "ожидалось %d уровней параметров шаблона для %q#D, дано %d"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "дано %d параметров шаблона для %q#D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "дано %d параметров шаблона для %q#T"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  вместо требуемых %d"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "аргументы шаблона для %qD не соответствуют первоначальному шаблону %qD"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "используйте %<template<>%> для явной специализации"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %q#D with different constraints"
 msgid "redeclaration of %qD with different constraints"
 msgstr "редекларация %q#D с другими ограничениями"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT не является шаблонным типом"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "спецификаторы шаблона не заданы в декларации %qD"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
@@ -66915,7 +66957,7 @@ msgstr[0] "редекларировано с %d параметром шабло
 msgstr[1] "редекларировано с %d параметрами шаблона"
 msgstr[2] "редекларировано с %d параметрами шаблона"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
@@ -66923,453 +66965,453 @@ msgstr[0] "предыдущая декларация %qD использовал
 msgstr[1] "предыдущая декларация %qD использовала %d параметра шаблона"
 msgstr[2] "предыдущая декларация %qD использовала %d параметра шаблона"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "параметр шаблона %q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "редекларирован здесь как %q#D"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "redeclared here"
 msgstr "объявлено здесь"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %q#D with different constraints"
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "редекларация %q#D с другими ограничениями"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "исходная декларация находится здесь"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %q#D with different constraints"
 msgid "redeclaration of %q#D with different constraints"
 msgstr "редекларация %q#D с другими ограничениями"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%E не является корректным аргументом шаблона для типа %qT"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "это должно быть адресом функции с внешней привязкой"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr "это должно быть именем функции с внешней привязкой"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%E не является корректным аргументом шаблона для типа %qT, поскольку %qD не имеет привязки"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%E не является корректным аргументом шаблона для типа %qT, поскольку %qD не имеет внешней привязки"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "это должно быть указателем на элемент вида %<&X::Y%>"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr ""
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 #| msgid "  couldn't deduce template parameter %qD"
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "  невозможно вывести параметр шаблона %qD"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr "  типы %qT и %qT имеют несовместимые cv-qualifiers"
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr "  несоответствие типов %qT и %qT"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "  параметр шаблона %qD не есть parameter pack, но аргумент %qD таковым является"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "  аргумент шаблона %qE не соответствует указателю на элемент константе %qE"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "  %qE не эквивалентно %qE"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr "  противоречивый вывод parameter pack с %qT и %qT"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr "  выведены конфликтующие типы для параметра %qT (%qT и %qT)"
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr "  выведены конфликтующие значения для нетипового параметра %qE (%qE и %qE)"
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "  тип массива переменного размера %qT не есть корректный аргумент шаблона"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr "  тип элемента-функции %qT не есть корректный аргумент шаблона"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "  невозможно преобразовать %qE (типа %qT) к типу %qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "  %qT является неоднозначным базовым классом %qT"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "  %qT не является производным от %qT"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr "  параметры шаблона для шаблона аргумента шаблона несовместимы с другими выведенными аргументами шаблона"
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 #| msgid "  can't deduce a template for %qT from non-template type %qT"
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "  невозможно вывести шаблон для %qT из нешаблонного типа %qT"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr ""
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qE is not a variable"
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE не есть корректный аргумент шаблона типа %qT, поскольку %qE не переменная"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE не есть корректный аргумент шаблона типа %qT, поскольку %qD не имеет внешней привязки"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE не есть корректный аргумент шаблона типа %qT, поскольку %qD не имеет привязки"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr "адрес %qD не есть корректный аргумент шаблона"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "адрес %qT подобъекта %qD не есть корректный аргумент шаблона"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "адрес %qD не есть корректный аргумент шаблона, так как он не имеет статический срок хранения"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qD не есть корректный аргумент шаблона, поскольку %qD переменная, а не адрес переменной"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qE не есть корректный аргумент шаблона для %qT, поскольку не является адресом переменной"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE не есть корректный аргумент шаблона для типа %qT, поскольку строковые литералы не могут быть использованы в этом контексте"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr ""
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 #| msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "  аргумент шаблона %qE не соответствует указателю на элемент константе %qE"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE не есть корректный аргумент шаблона для типа %qT из-за конфликтов в cv-qualification"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE не есть корректный аргумент шаблона для типа %qT, поскольку он не есть lvalue"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%q#D не есть корректный аргумент шаблона для типа %qT, поскольку ссылочная переменная не имеет постоянного адреса"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE не есть корректный аргумент шаблона для типа %qT, поскольку он является указателем"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "попробуйте задать %qE"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE не есть корректный аргумент шаблона для типа %qT, поскольку он имеет тип %qT"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "игнорирование атрибутов аргумента шаблона %qT"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "игнорирование атрибутов аргумента шаблона %qE"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "injected-class-name %qD использовано как шаблон аргумента шаблона"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "некорректное использование деструктора %qE в качестве типа"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "для того чтобы сослаться на тип параметра шаблона, используйте конструкцию %<typename %E%>"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "несоответствия типа/значения в аргументе %d в списке параметров шаблона для %qD"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  ожидалась константа типа %qT, а обнаружено %qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for template parameter for class enclosing %qD"
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "подразумеваемый аргумент для параметра шаблона для класса включающего %qD"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  ожидался шаблон класса, а обнаружено %qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  ожидался тип, обнаружено %qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  ожидался тип, обнаружено %qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  ожидался шаблон класса, обнаружено %qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  ожидался шаблон типа %qD, обнаружено %qT"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "несоответствие ограничений в аргументе %d в списке параметров шаблона для %qD"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr ""
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "ошибка при преобразовании аргумента шаблона %qE из %qT в %qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "некорректный аргумент шаблона %d"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "неправильное число аргументов шаблона (%d, а должно быть %d)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "неправильное число аргументов шаблона (%d, а должно быть по крайней мере %d)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, gcc-internal-format
 msgid "provided for %qD"
 msgstr "предоставлено для %qD"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr "pack expansion аргумент для non-pack параметра %qD алиасного шаблона %qD"
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "pack expansion аргумент для non-pack параметра %qD concept %qD"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr "так что любая конкретизация с непустым пакетом параметров была бы синтаксически некорректной"
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%q#D не является шаблоном функции"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "не-шаблонный тип %qT использован как шаблон"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "для декларации шаблона %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 #| msgid "template constraint failure"
 msgid "template constraint failure for %qD"
 msgstr "нарушение ограничения шаблона"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "использование некорректного переменного шаблона %qE"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum)"
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "глубина конкретизации шаблона превышает максимум %d (используйте -ftemplate-depth=, чтобы увеличить максимум)"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 #| msgid "ordered argument needs positive constant integer expression"
 msgid "score argument must be constant integer expression"
 msgstr "ordered аргумент требует положительного константного целого выражения"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %L must be nonnegative"
 msgid "score argument must be non-negative"
 msgstr "%qs в %L должен быть неотрицательным"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, fuzzy, gcc-internal-format
 #| msgid "%qs length expression must be positive constant integer expression"
 msgid "property must be constant integer expression or string literal"
 msgstr "%qs выражение длины должно быть положительным константным целочисленным выражением"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr ""
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr "свертка пустого расширения над %O"
 
 #
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a potential constant expression"
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE не есть потенциальное константное выражение"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr ""
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr ""
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr ""
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "создание указателя на элемент-функцию не классового типа %qT"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "mismatched arguments"
 msgid "mismatched argument pack lengths (%d vs %d)"
@@ -67388,307 +67430,307 @@ msgstr "несовпадающие аргументы"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "переменная %qD имеет тип функции"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "некорректный тип параметра %qT"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "в декларации %q+D"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "функция возвращает массив"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "функция возвращает функцию"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "создание ссылки на void"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "формирование указателя на ссылочный тип %qT"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "формирование ссылки на ссылочный тип %qT"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "формирование указателя на квалифицированный тип функции %qT"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "формирование ссылки на квалифицированный тип функции %qT"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "создание указателя на элемент не классового типа %qT"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "создание указателя на элемент ссылочного типа %qT"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "создание указателя на элемент типа void"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "создание массива элементов типа %qT"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT не является типом class, struct или union"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT разрешается в %qT, который не является перечислимым типом"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 #| msgid "%qT resolves to %qT, which is is not a class type"
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT разрешается в %qT, который не является классовым типом"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "использование %qs в шаблоне"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "квалифицированный тип %qT не соответствует имени деструктора ~%qT"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "зависимое имя %qE разбирается как не тип, но конкретизация дает тип"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "задайте %<typename %E%>, если подразумевается тип"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not a constant expression"
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "элемент инициализатора не является константным выражением"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "некорректное использование pack expansion expression"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr "используйте %<...%> для расширения argument pack"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr "пустой инициализатор в lambda init-capture"
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr "%qD не декларирован в этом контексте, и не было найдено деклараций при зависимом от аргументов поиске в точке конкретизации"
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr "декларации в зависимой базе %qT не найдены при неквалифицированном поиске"
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr "используйте %<this->%D%>"
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "используйте %<%T::%D%>"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%qD декларировано здесь, позднее в единице трансляции"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments to %<__builtin_choose_expr%>"
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "неверное число аргументов в вызове %<__builtin_choose_expr%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qE attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "для атрибута %qE задано неверное число аргументов"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT не является классом или пространством имён"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD не является классом или пространством имён"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "использование некорректного поля %qD"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "%qT есть/использует неименованный тип"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "аргумент шаблона для %qD использует локальный тип %qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT есть переменно модифицированный тип"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "целочисленное выражение %qE не является константой"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  при конкретизации %qD"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "неоднозначная конкретизация шаблона для %q#T"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "неоднозначная конкретизация шаблона класса для %q#D"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 msgid "%s %#qS"
 msgstr ""
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "явная конкретизация нешаблона %q#D"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of variable concept %q#D"
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "специализация variable concept %q#D"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of function concept %qD"
 msgid "explicit instantiation of function concept %q#D"
 msgstr "явная специализация function concept %qD"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qD не является статическим элементом данных шаблона класса"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "нет подходящего шаблона для %qD"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "тип %qT для явной конкретизации %qD не соответствует декларированному типу %qT"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "явная конкретизация %q#D"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "повторная явная конкретизация %q#D"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++ 1998 запрещает использование %<extern%> в явной конкретизации"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "класс хранения %qD в конкретизации шаблона"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "явная конкретизация неклассового шаблона %qD"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "явная конкретизация типа %qT, не являющегося шаблоном"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "явная конкретизация %q#T до определения шаблона"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ запрещает использование %qE в явных конкретизациях"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "повторная явная конкретизация %q#T"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr ""
@@ -67700,175 +67742,175 @@ msgstr ""
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "явная конкретизация %qD без определения"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth= to increase the maximum)"
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "глубина конкретизации шаблона превышает максимум %d при конкретизации %q+D, возможно при генерации виртуальной таблицы (задайте -ftemplate-depth=, чтобы увеличить максимум)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, fuzzy, gcc-internal-format
 #| msgid "lambda templates are only available with -std=c++14 or -std=gnu++14"
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "lambda шаблоны доступны только с -std=c++14 или -std=gnu++14"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a valid type for a template non-type parameter"
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%q#T не является корректным типом для нетипового параметра шаблона"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, fuzzy, gcc-internal-format
 #| msgid "lambda templates are only available with -std=c++14 or -std=gnu++14"
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "lambda шаблоны доступны только с -std=c++14 или -std=gnu++14"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "некорректный нетиповый параметр шаблона"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T не является корректным типом для нетипового параметра шаблона"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr ""
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 #| msgid "a concept cannot be a member function"
 msgid "a concept cannot be constrained"
 msgstr "concept не может быть элементом-функцией"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a namespace or unscoped enum"
 msgid "concept %qE not in namespace scope"
 msgstr "%qT не является пространством имен или unscoped enum"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 #| msgid "definition of %q#T inside template parameter list"
 msgid "concept %qE has multiple template parameter lists"
 msgstr "определение %q#T внутри списка параметров шаблона"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr ""
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 #| msgid "non-class template %qT used without template arguments"
 msgid "non-deducible template %qT used without template arguments"
 msgstr "неклассовый шаблон %qT использован без аргументов шаблона"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, fuzzy, gcc-internal-format
 #| msgid "lambda templates are only available with -std=c++14 or -std=gnu++14"
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "lambda шаблоны доступны только с -std=c++14 или -std=gnu++14"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "use %qD directly instead"
 msgstr "используйте директиву #include"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr "невозможно вывести аргументы шаблона для инициализации копированием %qT, поскольку он имеет неявное руководство вывода или декларированные пользователем конструкторы"
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr ""
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "вывод аргумента шаблона класса потерпел неудачу:"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, gcc-internal-format
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "явные руководства вывода не рассматриваются для copy-инициализации"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 #| msgid "in a call to function %qD declared here"
 msgid "explicit deduction guide declared here"
 msgstr "в вызове функции %qD определенной здесь"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, fuzzy, gcc-internal-format
 #| msgid "class template argument deduction failed:"
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "вывод аргумента шаблона класса потерпел неудачу:"
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr "direct-list-initialization %<auto%> требует ровно один элемент"
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr "для вывода к %<std::initializer_list%> используйте copy-list-initialization (то есть добавьте %<=%> перед %<{%>)"
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "не удается вывести возвращаемый тип lambda из %qE"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "невозможно вывести %qT из %qE"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr "ограничения заполнителя не удовлетворены"
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "выведенный инициализатор не удовлетворяет ограничениям заполнителя"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "выведенный тип возврата не удовлетворяет ограничениям заполнителя"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "выведенный тип выражения не удовлетворяет ограничениям заполнителя"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr ""
@@ -68084,665 +68126,665 @@ msgstr "невозможно определить тип операнда %qE д
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "__label__ декларации допускаются только в контекстах функций"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "некорректное использование элемента %qD в статическом элементе-функции"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %qD in static member function"
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "некорректное использование элемента %qD в статическом элементе-функции"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %qD in static member function"
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "некорректное использование элемента %qD в статическом элементе-функции"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "missing template arguments"
 msgid "%qE missing template arguments"
 msgstr "отсутствуют аргументы шаблона"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "cannot call a concept as a function"
 msgstr "%qE нельзя использовать как функцию"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "аргументы к деструктору не допускаются"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "имя %<this%> недоступно для статических элементов-функций"
 
 #
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, fuzzy, gcc-internal-format
 #| msgid "used %d template parameter(s) instead of %d"
 msgid "use explicit object parameter %qs instead"
 msgstr "использовано %d параметр(ов) шаблона вместо %d"
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, fuzzy, gcc-internal-format
 #| msgid "invalid template non-type parameter"
 msgid "name the explicit object parameter"
 msgstr "некорректный нетиповый параметр шаблона"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "имя %<this%> недоступно для статических элементов-функций"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> before it is valid"
 msgstr "некорректное использование %<this%> на внешнем уровне"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> after it is valid"
 msgstr "некорректное использование %<this%> на внешнем уровне"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "некорректное использование %<this%> в функции, не являющейся элементом"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "некорректное использование %<this%> на внешнем уровне"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "некорректный квалифицированный контекст в имени псевдодеструктора"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "квалифицированный тип %qT не соответствует имени деструктора ~%qT"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE не имеет тип %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "составной литерал необъектного типа %qT"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, fuzzy, gcc-internal-format
 #| msgid "function cannot be instrumented"
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "функция не может быть инструментирована"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, fuzzy, gcc-internal-format
 #| msgid "%<~auto%> only available with -std=c++14 or -std=gnu++14"
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<~auto%> доступно только с -std=c++14 или -std=gnu++14"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "параметры шаблона, являющиеся типами, должны задаваться при помощи ключевых слов %<class%> или %<typename%>"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "некорректное использование типа %qT как подразумеваемого значения для шаблона параметра шаблона"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "некорректный подразумеваемый аргумент для шаблона параметра шаблона"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "определение %q#T внутри списка параметров шаблона"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "некорректное определение квалифицированного типа %qT"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "некорректная спецификация базового класса"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr "невозможно захватить элемент %qD анонимного объединения"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "%qD не захватывается"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr "lambda не имеет подразумеваемого захвата"
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr "lambda в локальном классе %q+T не может захватывать переменные из объемлющего контекста"
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr "использование локальной переменной с автоматическим хранением из объемлющей функции"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "использование параметра из внутренней функции"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr "использование параметра вне тела функции"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, gcc-internal-format
 msgid "missing template arguments"
 msgstr "отсутствуют аргументы шаблона"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "параметр шаблона %qD типа %qT не допускается в целочисленном константном выражении, поскольку он не целого или перечислимого типа"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "использование шаблона класса %qT в качестве выражения"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "запрос элемента %qD неоднозначен в сетке множественного наследования"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD не может появляться в константном выражении"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "тип %qE неизвестен"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qT не имеет перечислимый тип"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not an integer constant"
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "запрошенное выравнивание не является целочисленной константой"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 #| msgid "Reference statement index out of range"
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "Индекс оператора ссылки вне диапазона"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 #| msgid "Parameter pack __bases only valid in template declaration"
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "Parameter pack __bases допустим только в декларации шаблона"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "невозможно применить %<offsetof%> к деструктору %<~%T%>"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "невозможно применить %<offsetof%> к элементу-функции %qD"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr ""
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr ""
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 #| msgid "constructor priorities are not supported"
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "приоритеты конструкторов не поддерживаются"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "определенный пользователем reduction поиск неоднозначен"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr "%qE в %<reduction%> клаузуле есть массив нулевого размера"
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE имеет const тип для %<reduction%>"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr "определенная пользователем редукция в конструкторским инициализатором для базового класса %qT"
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, fuzzy, gcc-internal-format
 #| msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs"
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr "модификатор не должен задаваться в предложении %<linear%> для конструкций %<simd%> или %<for%>"
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr "linear клаузула с %qs модификатором применена к нессылочной переменной с %qT типом"
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr "linear клаузула применена к нецелой, неуказательной переменной с %qT типом"
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr "выражение линейного шага должно быть целочисленным"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr "%<this%> допускается в OpenMP только в %<declare simd%> клаузулах"
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD не есть переменная в клаузуле %qs"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "%qD не есть переменная в клаузуле %<firstprivate%>"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qD не есть переменная в клаузуле %<lastprivate%>"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr "%<gang%> статическое выражение должно быть целочисленным"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr "%<gang%> статическое значение должно быть положительным"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr "%<gang%> числовое выражение должно быть целочисленным"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr "%<vector%> выражение длины должно быть целочисленным"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr "%<worker%> числовое выражение должно быть целочисленным"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "%<gang%> числовое значение должно быть положительным"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr "%<vector%> значение длины должно быть положительным"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr "%<worker%> числовое значение должно быть положительным"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "schedule chunk size выражение должно быть целочисленным"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr "%qs выражение длины должно быть целочисленным"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "%qs выражение длины должно быть положительным константным целочисленным выражением"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "%<async%> выражение должно быть целочисленным"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr "%<thread_limit%> выражение должно быть целочисленным"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr "%<device%> идентификатор должен быть целочисленным"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "%<dist_schedule%> выражение размера чанка должно быть целочисленным"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD не есть переменная в %<aligned%> клаузуле"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr "%qE в %<aligned%> клаузуле не указатель, не массив и не ссылка на указатель или массив"
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qD появляется более одного раза в %<aligned%> клаузулах"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "%<aligned%> клаузула выражения выравнивания должна быть целочисленной"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in %<depend%> clause"
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD не есть переменная в %<depend%> клаузуле"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in %<aligned%> clauses"
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD появляется более одного раза в %<aligned%> клаузулах"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<aligned%> clause"
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%qE не является переменной в предложении %<aligned%>"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in %<aligned%> clause"
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD не есть переменная в %<aligned%> клаузуле"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in %<aligned%> clauses"
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD появляется более одного раза в %<aligned%> клаузулах"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in %<depend%> clause"
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "%qD не есть переменная в %<depend%> клаузуле"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr "шаблон %qE в клаузуле %qs"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr "перегрузка имени функции %qE в клаузуле %qs"
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "%<grainsize%> выражение должно быть целочисленным"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr "%<priority%> выражение должно быть целочисленным"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 #| msgid "%<wait%> expression must be integral"
 msgid "%<hint%> expression must be integral"
 msgstr "%<wait%> выражение должно быть целочисленным"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 #| msgid "%qs length expression must be positive constant integer expression"
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "%qs выражение длины должно быть положительным константным целочисленным выражением"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 #| msgid "%<wait%> expression must be integral"
 msgid "%<filter%> expression must be integral"
 msgstr "%<wait%> выражение должно быть целочисленным"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 #| msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "%qs переменная не является ни указателем, ни массивом, ни ссылкой на указатель или массив"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr "%qs переменная не является ни указателем, ни массивом, ни ссылкой на указатель или массив"
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr "%<tile%> аргумент требует целочисленный тип"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr "%<threadprivate%> %qD не есть переменная файла, пространства имен или контекста блока"
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "%<threadprivate%> %qE директива не в %qT определении"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr "разность между %qE и %qD не имеет целый тип"
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "%<#pragma omp simd%> использована с итерационной переменной класса %qE"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic update%> использует два различных выражения для памяти"
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 #| msgid "%qs length expression must be positive constant integer expression"
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "%qs выражение длины должно быть положительным константным целочисленным выражением"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, fuzzy, gcc-internal-format
 #| msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "%<reinterpret_cast<%T>(%E)%> не является константным выражением"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, fuzzy, gcc-internal-format
 #| msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "%<reinterpret_cast<%T>(%E)%> не является константным выражением"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 #| msgid "static assertion failed: %s"
 msgid "static assertion failed: %.*s"
 msgstr "неудача static assertion: %s"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "неконстантное условие для static assertion"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 #| msgid "argument to decltype must be an expression"
 msgid "argument to %<decltype%> must be an expression"
 msgstr "аргумент decltype должен быть выражением"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 #| msgid "decltype cannot resolve address of overloaded function"
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "decltype не может разрешить адрес перегруженной функции"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "вызов %<__builtin_next_arg%> без аргумента"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a class template"
 msgid "%qD is not a class or alias template"
 msgstr "%qE не является шаблоном класса"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "операнд выражения свертки не имеет нерасширенных пакетов параметров"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "оба аргумента в бинарной свертке имеют нерасширенные пакеты параметров"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr "нет нерасширенных пакетов параметров в бинарной свертке"
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr "неуказательный аргумент для %<__builtin_launder%>"
@@ -68750,1210 +68792,1210 @@ msgstr "неуказательный аргумент для %<__builtin_launder
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "квалификаторы %qV не могут быть применены к %qT"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr ""
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, gcc-internal-format
 msgid " declared here"
 msgstr " объявлено здесь"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, fuzzy, gcc-internal-format
 #| msgid "alignment of %qD increased in -fabi-version=9 (GCC 5.2)"
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr "выравнивание %qD увеличено в -fabi-version=9 (GCC 5.2)"
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "base class %qT has cv qualifiers"
 msgid "base class %qT is not public"
 msgstr "базовый класс %qT имеет квалификаторы cv"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not captured"
 msgid "%qD is not public"
 msgstr "%qD не захватывается"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is mutable"
 msgstr "%qD не переменная"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a type"
 msgid "%qD has a non-structural type"
 msgstr "%qD не является типом"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "%qE атрибут может применяться только к функциям или к классовым или перечислимым типам"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute argument not a string constant"
 msgid "%qE attribute argument must be a string constant"
 msgstr "аргумент атрибута %qE не строковая константа"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "%qE атрибут может применяться только к функциям или к классовым или перечислимым типам"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to Java class definitions"
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "%qE атрибут может применяться только к определениям Java классов"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to Java class definitions"
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "%qE атрибут может применяться только к определениям Java классов"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 #| msgid "the %qE attribute requires arguments"
 msgid "%qE attribute takes no arguments"
 msgstr "%qE атрибуту требуются аргументы"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute doesn't apply to functions"
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "%qE атрибут не применим к функциям"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is not an integer constant"
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "заданный init_priority не является целой константой"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "%qE атрибут может использоваться только для определений объектов типа class на уровне файла"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is out of range"
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "заданный init_priority вне диапазона"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is reserved for internal use"
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "заданный init_priority зарезервировано для внутреннего использования"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr ""
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "%qE атрибуту требуются аргументы"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "аргументы для %qE атрибута должны быть узкими строковыми литералами"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "аргументы для %qE атрибута должны содержать корректные идентификаторы"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%c%> не является корректным символом для идентификатора"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%c%> не является корректным символом в идентификаторе"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "атрибут %qE применен к неклассовому, неперечислимому типу %qT"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "атрибут %qE применен к %qT после его определения"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "игнорирование %qE атрибута, примененного к конкретизации шаблона %qT"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "игнорирование %qE атрибута, примененного к специализации шаблона %qT"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "атрибут %qE применен к нефункции, непеременной %qD"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "атрибут %qE применен к extern \"C\" декларации %qD"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 #| msgid "Warn if a comparison always evaluates to true or false."
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "Предупреждать, если результат сравнения всегда истина или всегда ложь."
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "ноль как константа пустой указатель"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "lang_* check: failed in %s, at %s:%d"
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "lang_* check: ошибка в %s, в %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "сравнение между различными указательными типами %qT и %qT без приведения типов"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "преобразование между различными указательными типами %qT и %qT без приведения типов"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "условное выражение между различными указательными типами %qT и %qT без приведения типов"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ запрещает сравнение между указателем типа %<void *%> и указателем не функцию"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ запрещает преобразование между указателем типа %<void *%> и указателем не функцию"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ запрещает условное выражение между указателем типа %<void *%> и указателем не функцию"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "сравнение между различными pointer-to-member типами %qT и %qT без приведения типов"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "преобразование между различными pointer-to-member типами %qT и %qT без приведения типов"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "условное выражение между различными pointer-to-member типами %qT и %qT без приведения типов"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr ""
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "некорректное применение %qs к элементу-функции"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "недопустимое применение %<sizeof%> к битовому полю"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++ запрещает применение %<sizeof%> к выражению функционального типа"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "недопустимое применение %<__alignof%> к битовому полю"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++ запрещает применение %<__alignof%> к выражению функционального типа"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "%<alignas%> аргумент имеет нецелочисленный тип %qT"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "некорректное использование нестатической функции-элемента типа %qT"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "ISO C++ запрещает преобразование строковой константы в %qT"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "устаревшее преобразование из строковой константы в %qT"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "запрос на элемент %qD в %qE, который имеет указательный тип %qT (возможно вы хотели использовать %<->%> ?)"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "запрос элемента %qD в %qE, имеющего не классовый тип %qT"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of nonstatic data member %qE"
 msgid "invalid use of non-static data member %qE"
 msgstr "некорректное использование нестатического элемента данных %qE"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "недопустимый доступ к нестатическому элементу данных в %qD в виртуальной базе NULL объекта"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "объектный тип %qT не соответствует имени деструктора ~%qT"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "разрушаемый тип %qT, а деструктор относится к %qT"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr "поле %q#D доступно через %q#D"
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "%q#T не содержит элемента с именем %qE"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T has no member named %qE; did you mean %qE?"
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "%q#T не содержит элемента с именем %qE; имелось в виду %qE?"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T has no member named %qE; did you mean %qE?"
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "%q#T не содержит элемента с именем %qE; имелось в виду %qE?"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%q#T не содержит элемента с именем %qE; имелось в виду %qE?"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> не является элементом %qT"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT не является базовым для %qT"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD не является шаблонным элементом-функцией"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT не является типом указателя на объект"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "некорректное использование индексирования массива к указателю на элемент"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "некорректное использование унарной %<*%> к указателю на элемент"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "некорректное использование неявного преобразования к указателю на элемент"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr "левый операнд %<->*%> должен быть указателем на класс, но является указателем на элемент типа %qT"
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "отсутствует индекс массива"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "индексируемый массив объявлен как %<register%>"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "индексируемый объект не является ни массивом, ни указателем"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "не задан объект при использовании %qE"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ запрещает использование %<::main%> из программы"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "необходимо использовать %<.*%> или %<->*%> для вызова pointer-to-member функции в %<%E (...)%>, например %<(... ->* %E) (...)%>"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE нельзя использовать как функцию"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "%qD нельзя использовать как функцию"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "выражение нельзя использовать как функцию"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "слишком много аргументов для конструктора %q#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "слишком мало аргументов для конструктора %q#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "слишком много аргументов для элемента-функции %q#D"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "слишком мало аргументов для элемента-функции %q#D"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "слишком много аргументов для функции %q#D"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "слишком мало аргументов для функции %q#D"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "слишком много аргументов для метода %q#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "слишком мало аргументов для метода %q#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "для функции задано слишком много аргументов"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "слишком мало аргументов функции"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "параметр %P %qD имеет неполный тип %qT"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "параметр %P имеет неполный тип %qT"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the address %qE will never be NULL"
 msgstr "адрес %qD никогда не будет NULL"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "адрес %qD никогда не будет NULL"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 #| msgid "the compiler can assume that the address of %qD will never be NULL"
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "компилятор может предположить, что адрес %qD не может быть NULL"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "компилятор может предположить, что адрес %qD не может быть NULL"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "операнды для ?: имеют разные типы %qT и %qT"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 #| msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "преобразование между различными указательными типами %qT и %qT без приведения типов"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %qT and %qT"
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "сравнение между типами %qT и %qT"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "сравнение между различными указательными типами %qT и %qT без приведения типов"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "complex arguments must have floating-point type"
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "complex аргументы должны иметь плавающие типы"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 #| msgid "cast from function call of type %qT to non-matching type %qT"
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "приведение вызова функции типа %qT к несоответствующему типу %qT"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr "преобразование из указательного типа %qT в арифметический тип %qT в константном выражении"
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible types when assigning to type %qT from type %qT"
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "несовместимые типы в присваивании типу %qT значения типа %qT"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "предполагается приведение к типу %qT из перегруженной функции"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "NULL в арифметическом выражении"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ не поддерживает сравнение между указателем и целым"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "типы операндов %qT и %qT"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with integer zero"
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "упорядоченное сравнение указателя с целочисленным нулем"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 #| msgid "unordered comparison on non-floating point argument"
 msgid "unordered comparison on non-floating-point argument"
 msgstr "аргумент неупорядоченного сравнения - не плавающее значение"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr ""
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "некорректные операнды типов %qT и %qT для бинарной операции %qO"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ не поддерживает использование указателя %<void *%> в вычитании"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ не поддерживает использование указателя на функцию в вычитании"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ не поддерживает использование указателя на метод в вычитании"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "некорректное использование указателя на неполный тип в вычислениях с указателями"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr ""
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr ""
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "некорректное использование %qE для образования указателя на элемент-функцию"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  qualified-id требуется"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "нельзя использовать скобки вокруг %qE для образования указателя на элемент-функцию"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ не поддерживает взятие адреса от приведения к не-lvalue-выражению"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "(указатель на элемент можно получить только при помощи %<&%E%>)"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of rvalue"
 msgstr "адрес от временной переменной"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ не поддерживает взятие адреса от функции %<::main%>"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "нельзя создать указатель на элемент-ссылку %qD"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "попытка взять адрес битового поля"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, fuzzy, gcc-internal-format
 #| msgid "%<~%> on an expression of type bool"
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "%<~%> от выражения типа bool"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr "имелось в виду использовать логическое отрицание (%<!%>)?"
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ запрещает инкрементирование enum"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ запрещает декрементирование enum"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "невозможно инкрементировать указатель на неполный тип %qT"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "невозможно декрементировать указатель на неполный тип %qT"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ запрещает инкрементирование указателя типа %qT"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ запрещает декрементирование указателя типа %qT"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr "использование операнда типа %qT в %<operator--%> запрещено"
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr "использование операнда типа %qT в %<operator++%> устарело"
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "нельзя взять адрес от %<this%>, поскольку это rvalue-выражение"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "запрошен адрес явной регистровой переменной %qD"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "запрошен адрес для %qD, которая декларирована как %<register%>"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "list-initializer для неклассового типа не должен быть заключен в скобки"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "список выражений рассматривается как составное выражение в инициализаторе"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "список выражений рассматривается как составное выражение в mem-initializer"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "список выражений рассматривается как составное выражение в функциональном приведении типов"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "%s - список выражений рассматривается как составное выражение"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr "нет контекста для разрешения типа %qE"
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "приведение от типа %qT к типу %qT отбрасывает квалификаторы"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 #| msgid "static_cast from type %qT to type %qT casts away qualifiers"
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "static_cast от типа %qT к типу %qT отбрасывает квалификаторы"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 #| msgid "reinterpret_cast from type %qT to type %qT casts away qualifiers"
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "reinterpret_cast от типа %qT к типу %qT отбрасывает квалификаторы"
 
 #
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr ""
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, gcc-internal-format
 msgid "type qualifiers ignored on cast result type"
 msgstr ""
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "некорректное применение static_cast от типа %qT к типу %qT"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "тип класса %qT неполный"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 msgid "converting from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "некорректное приведение rvalue выражения из типа %qT к типу %qT"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 msgid "cast from %qH to %qI loses precision"
 msgstr ""
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr ""
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "приведение указателя на функцию к указателю на объект условно поддерживается"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "некорректное приведение из типа %qT к типу %qT"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "некорректное применение const_cast с типом %qT, не являющимся ни указателем, ни ссылкой, ни  указателем на элемент данных"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "некорректное применение const_cast с типом %qT, являющимся указателем или ссылкой на функцию"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast of an rvalue of type %qT to type %qT"
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "некорректное применение const_cast от rvalue-выражения типа %qT к типу %qT"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast from type %qT to type %qT"
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "некорректное применение const_cast от типа %qT к типу %qT"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ не поддерживает приведение к типу массива %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "некорректное приведение к типу функции %qT"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qE from type %qT to type %qT"
 msgid "moving %qE of type %qT to itself"
 msgstr "ошибка преобразования %qE из типа %qT в тип %qT"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  в вычислении %<%Q(%#T, %#T)%>"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr "присваивание массиву из списка инициализатора"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "несовместимые типы в присваивании %qT -> %qT"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "массив использован как инициализатор"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "некорректное присваивание массива"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   в преобразовании указателя на элемент-функцию"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "преобразование указателя к элементу через виртуальную базу %qT"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   в преобразовании указателя на элемент"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "некорректное преобразование к типу %qT от типа %qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 msgid "cannot convert %qH to %qI in default argument"
 msgstr ""
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr ""
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 msgid "cannot convert %qH to %qI in initialization"
 msgstr ""
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 msgid "cannot convert %qH to %qI in return"
 msgstr ""
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 msgid "cannot convert %qH to %qI in assignment"
 msgstr ""
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "параметр %qP %qD мог быть кандидатом для атрибута формата"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr "параметр мог быть кандидатом для атрибута формата"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "цель преобразования могла быть кандидатом для атрибута формата"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "цель инициализации могла быть кандидатом для атрибута формата"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "левая часть присваивания могла быть кандидатом для атрибута формата"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "при передаче аргумента %P от %qD"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "возврат ссылки на временную переменную"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "возврат ссылки на временную переменную"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr "возвращена ссылка на локальную переменную %qD"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr "возвращен адрес метки %qD"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr "возвращен адрес локальной переменной %qD"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
 #
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 #| msgid "not enough values in return statement"
 msgid "redundant move in return statement"
 msgstr "недостаточно значений в операторе возврата"
 
 #
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 #| msgid "not enough values in return statement"
 msgid "redundant move in initialization"
 msgstr "недостаточно значений в операторе возврата"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "возвращен результат деструктора"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "возврат в обработчике try-блока конструктора"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "возврат результата конструктора"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "return без значения в функции, возвращающей %qT"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, gcc-internal-format
 msgid "returning initializer list"
 msgstr "возврат списка инициализатора"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "противоречивые типы %qT и %qT выведены для возвращаемого типа lambda"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "противоречивый вывод для auto return type: %qT и затем %qT"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr ""
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, fuzzy, gcc-internal-format
 #| msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%> не должен возвращать NULL, если только он не декларирован %<throw()%> (или задан ключ -fcheck-new)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 #| msgid "invalid covariant return type for %q#D"
 msgid "not eliding copy on return from %qD"
 msgstr "некорректный ковариантный тип результата для %q#D"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 #| msgid "using temporary as lvalue"
 msgid "using rvalue as lvalue"
@@ -70178,165 +70220,165 @@ msgstr "перегруженная функция без контекстной
 msgid "insufficient contextual information to determine type"
 msgstr "недостаточно контекстной информации для определения типа"
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "использован синтаксис конструктора для типа %qT, который не имеет конструкторов"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 #| msgid "interface %qE does not have valid constant string layout"
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "интерфейс %qE не имеет корректной структуры константной строки"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 #| msgid "Warn about narrowing conversions within { } that are ill-formed in C++11."
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "Предупреждать о сужающих преобразованиях в { }, являющихся дефектными в C++11."
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 #| msgid "conversion from %q#T to %q#T"
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "преобразование из %q#T в %q#T"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr ""
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 #| msgid "initializer-string for array of chars is too long"
 msgid "initializer-string for %qT is too long"
 msgstr "слишком длинная строка инициализации для символьного массива"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "remove %<{ }%> around initializer"
 msgstr "фигурные скобки вокруг скалярного инициализатора"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "невозможно инициализировать агрегат типа %qT составным литералом"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "отсутствует инициализатор для элемента %qD"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "элемент %qD - неинициализированная ссылка"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "элемент %qD с неинициализированными ссылочными полями"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr ""
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "поле %qD не найдено в инициализируемом объединении"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "значение индекса вместо имени поля в инициализаторе объединения"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "обнаружено циклическое делегирование указателей"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "базовый операнд %<->%> имеет неуказательный тип %qT"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "результат %<operator->()%> не является указателем"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "базовый операнд %<->%> не является указателем"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE не может использоваться как элемент, поскольку имеет тип %qT"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "невозможно применить элементный указатель %qE к %qE, который имеет неклассовый тип %qT"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "указатель на элементный тип %qT несовместим с объектным типом %qT"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "тип указатель на элемент-функцию %qT требует rvalue"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "тип указатель на элемент-функцию %qT требует lvalue"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, fuzzy, gcc-internal-format
 #| msgid "pointer-to-member-function type %qT requires an lvalue"
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "тип указатель на элемент-функцию %qT требует lvalue"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "функциональное приведение к массивному типу %qT"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, fuzzy, gcc-internal-format
 #| msgid "function cannot be instrumented"
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "функция не может быть инструментирована"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, fuzzy, gcc-internal-format
 #| msgid "%<~auto%> only available with -std=c++14 or -std=gnu++14"
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<~auto%> доступно только с -std=c++14 или -std=gnu++14"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "некорректная инициализация значения ссылочного типа"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "вызов функции %qD, которая вызывает исключение неполного типа %q#T"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "вызов функции, которая вызывает исключение неполного типа %q#T"
@@ -71386,7 +71428,7 @@ msgstr "Список имен %qs не может быть аргументом
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "%<I%> в %L и %<J%> в %L не могут обе быть BOZ литеральными константами"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid exponent-letter %<q%> in real-literal-constant at %C"
 msgid "Invalid use of BOZ literal constant at %L"
@@ -72754,7 +72796,7 @@ msgstr "Некорректная INTENT спецификация в %C"
 msgid "deferred type parameter at %C"
 msgstr "отложенный параметр типа в %C"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr "Скалярное INTEGER выражение ожидалось в %L"
@@ -72981,7 +73023,7 @@ msgstr "Компонент %qs с CLASS в %C должен быть размещ
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "Компонент-массив структуры в %C должен иметь явную или отложенную форму"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr "Компонент %qs в %C уже декларирован в %L"
@@ -73800,7 +73842,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "Ожидался список формальный аргументов в определении функции в %C"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr "BIND(C) атрибут в %L может использоваться только для переменных или common блоков"
@@ -74618,12 +74660,12 @@ msgstr "identical_array_ref(): противоречивые размерност
 msgid "are_identical_variables: Bad type"
 msgstr "are_identical_variables: Некорректный тип"
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr "INTENT(%s) фактические аргументы в %L могут противоречить фактическим аргументам в %L."
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr "gfc_check_dependency: ожидается EXPR_VARIABLE"
@@ -74879,276 +74921,276 @@ msgstr "Parameter %qs at %L не был декларирован или явля
 msgid "check_init_expr(): Unknown expression type"
 msgstr "check_init_expr(): Неизвестный тип выражения"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "Спецификационная функция %qs в %L не может быть оператор-функцией"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "Спецификационная функция %qs в %L не может быть внутренней функцией"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr "Спецификационная функция %qs в %L должна быть PURE"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "Спецификационная функция %qs в %L не может быть RECURSIVE"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "Формальный аргумент %qs не допускается в выражении в %L"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "Формальный аргумент %qs в %L не может быть OPTIONAL"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "Формальный аргумент %qs в %L не может быть INTENT(OUT)"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "Переменная %qs не может появляться в выражении в %L"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr "check_restricted(): Неизвестный тип выражения"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "Выражение в %L должно быть INTEGER типа, найдено %s"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "Функция %qs в %L должна быть PURE"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "Выражение в %L должно быть скалярным"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "Несовместимые ранги в %s (%d и %d) в %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "Иная форма для %s в %L по измерению %d (%d и %d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr "Присваивание полиморфному комассиву в %L не допускается"
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "%qs в %L не есть VALUE"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Illegal stride of zero at %L"
 msgid "Illegal assignment to external procedure at %L"
 msgstr "Некорректный нулевой шаг в %L"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "Несовместимые ранги %d и %d в присваивании в %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "Тип переменной UNKNOWN в присваивании в %L"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "NULL появляется в правой части присваивания в %L"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "Функция с POINTER-значением появляется в правой части присваивания в %L"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "Несовместимые типы в DATA операторе в %L; попытка преобразования %s в %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "Цель указательного присваивания не есть POINTER в %L"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "%qs в указательном присваивании в %L не может быть l-value, поскольку это процедура"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "Ожидалась спецификация границ для %qs в %L"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Спецификация границ для %qs в указательном присваивании в %L"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr "Шаг не может присутствовать в %L"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "Указательный объект в %L не должен иметь коиндекс"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "Некорректное присваивание указателя на процедуру в %L"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "Результат функции %qs некорректен как процедурная цель в присваивании указателя на процедуру в %L"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "Абстрактный интерфейс %qs некорректен в присваивании указателя на процедуру в %L"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "Оператор-функция %qs некорректна в присваивании указателя на процедуру в %L"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Внутренняя процедура %qs некорректна в присваивании указателя на процедуру в %L"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "Встроенная функция %qs в %L некорректна в присваивании указателя на процедуру"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Невстроенная элементная процедура %qs некорректна в присваивании указателя на процедуру в %L"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr "Несоответствие в присваивании указателя на процедуру в %L: несоответствие в соглашении о вызове"
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "Несоответствие интерфейсов в присваивании указателя на процедуру в %L: %qs не есть подпрограмма"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "Явный интерфейс требуются для компонента %qs в %L: %s"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "Явный интерфейс требуются для %qs в %L: %s"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "Несоответствие интерфейсов в присваивании указателя на процедуру в %L: %s"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr "Цель указателя на процедуру %qs в %L должна быть встроенной функцией, host или use ассоциированной, на нее должна быть ссылка или она должна иметь EXTERNAL атрибут"
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "Цель указательного присваивания не есть POINTER в %L"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr "Data-pointer-object в %L должен быть неограниченно полиморфным или иметь тип с BIND или SEQUENCE атрибутами, чтобы быть совместимым с неограниченно полиморфной целью"
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "Разные типа в присваивании указателя в %L; попытка присвоить %s в %s"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "Разные виды типовых параметров в присваивании указателя в %L"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "Разные ранги в присваивании указателя в %L"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr "Цель переотображения ранга меньше чем размер указателя (%ld < %ld) в %L"
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr "Цель переотображения ранга должна быть ранга 1 или просто непрерывна в %L"
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr "Цель, переотображающая ранг, не ранга 1 в %L"
@@ -75156,204 +75198,204 @@ msgstr "Цель, переотображающая ранг, не ранга 1 
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr "Целевые данные в %L не должны иметь коиндекс"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "Целевое выражение в присваивании указателя в %L должна выдавать указательный результат"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "Цель инициализации указателя в %L должна иметь TARGET атрибут"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "NAME= specifier at %C should be a constant expression"
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "NAME= спецификатор в %C должен быть константным выражением"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "Цель присваивания указателя не TARGET и не POINTER в %L"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "Некорректная цель в присваивании указателя в PURE процедуре в %L"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "Присваивание указателя с индексом вектора в правой части в %L"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "Цель присваивания указателя имеет PROTECTED атрибут в %L"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr "Указатель в %L в присваивании указателя может пережить цель указателя"
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "Цель инициализации указателя в %L не должна быть ALLOCATABLE"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "Цель инициализации указателя в %L должна иметь TARGET атрибут"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "Цель инициализации указателя в %L должна иметь SAVE атрибут"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr "Цель инициализации указателя на процедуру в %L не может быть указателем на процедуру"
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Внутренняя процедура %qs некорректна в присваивании указателя на процедуру в %L"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Внутренняя процедура %qs некорректна в присваивании указателя на процедуру в %L"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "Fortran 2008: Указательные функции в контексте определения переменных (%s) в %L"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr "Non-variable выражение в контексте определения переменных (%s) в %L"
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr "Именованная константа %qs в контексте определения переменных (%s) в %L"
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "%qs в контексте определения переменных (%s) в %L не есть переменная"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr "Non-POINTER в контексте ассоциации указателей (%s) в %L"
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr "Тип недоступен в контексте определения переменных (%s) в %L"
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr "LOCK_TYPE в контексте определения переменных (%s) в %L"
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr "LOCK_EVENT в контексте определения переменных (%s) в %L"
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, fuzzy, gcc-internal-format
 #| msgid "Named constant %qs in variable definition context (%s) at %L"
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "Именованная константа %qs в контексте определения переменных (%s) в %L"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr "Формальный аргумент %qs с INTENT(IN) в контексте ассоциации указателей (%s) в %L"
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr "Формальный аргумент %qs с INTENT(IN) в контексте определения переменных (%s) в %L"
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "Variable %qs is PROTECTED and can not appear in a pointer association context (%s) at %L"
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "Переменная %qs является PROTECTED и не может появляться в контексте ассоциации указателей (%s) в %L"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, fuzzy, gcc-internal-format
 #| msgid "Variable %qs is PROTECTED and can not appear in a variable definition context (%s) at %L"
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "Переменная %qs является PROTECTED и не может появляться в контексте определения переменных (%s) в %L"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 #| msgid "Variable %qs can not appear in a variable definition context (%s) at %L in PURE procedure"
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "Переменная %qs не может появляться в контексте определения переменных (%s) в %L"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %L associated to vector-indexed target can not be used in a variable definition context (%s)"
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr "%qs в %L ассоциированное с векторно индексированной целью не может использоваться в контексте определения переменных (%s)"
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %L associated to expression can not be used in a variable definition context (%s)"
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr "%qs в %L ассоциированное с выражением не может использоваться в контексте определения переменных (%s)"
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %L associated to expression can not be used in a variable definition context (%s)"
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr "%qs в %L ассоциированное с выражением не может использоваться в контексте определения переменных (%s)"
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, fuzzy, gcc-internal-format
 #| msgid "Associate-name %qs can not appear in a variable definition context (%s) at %L because its target at %L can not, either"
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "Имя ассоциации %qs не может появляться в контексте определения переменных (%s) в %L, поскольку его цель в %L также не может"
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr "Элементы с одинаковым значением в %L и %L в векторном индексе в контексте определения переменной (%s)"
@@ -75376,8 +75418,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr "Некорректный идентификатор в copy_walk_reduction_arg"
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "Создание временного массива в %L"
@@ -75462,7 +75504,7 @@ msgstr "Переменная %qs в %L установлена в неопред
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "Переменная %qs в %L не определяется внутри цикла, начинающегося в %L, как INTENT(OUT) аргумент для функции %qs"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr "Код для переразмещения размещаемого массива в %L будет добавлен"
@@ -75599,12 +75641,12 @@ msgstr "Первый аргумент определенного присваи
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "Второй аргумент определенного присваивания в %L должен быть INTENT(IN)"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "Первый аргумент интерфейса оператора в %L должен быть INTENT(IN)"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "Второй аргумент интерфейса оператора в %L должен быть INTENT(IN)"
@@ -76500,7 +76542,7 @@ msgstr "Преобразование из %s в %s в %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Can't convert %s to %s at %L"
 msgid "Cannot convert %s to %s at %L"
@@ -77089,7 +77131,7 @@ msgstr "NAMELIST %qs в READ операторе в %L содержит симв
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr "NAMELIST объект %qs в списке имен %qs в %L является полиморфным и требует определенную процедуру ввода/вывода"
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr "NAMELIST объект %qs в списке имен %qs в %L с ALLOCATABLE или POINTER компонентами"
@@ -77265,6 +77307,11 @@ msgstr "Переполнение при вычислении целочисле
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -77683,7 +77730,7 @@ msgstr "STOP код в %L должен быть default character KIND=%d"
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "STOP код в %L должен быть default integer KIND=%d"
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
@@ -78218,87 +78265,87 @@ msgstr "ошибка разбора в SELECT TYPE операторе в %C"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr "Селектор в SELECT TYPE в %C не есть именованная переменная; используйте associate-name=>"
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "LOCK statement at %C"
 msgid "SELECT RANK statement at %C"
 msgstr "LOCK оператор в %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "parse error in SELECT TYPE statement at %C"
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "ошибка разбора в SELECT TYPE операторе в %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "Неожиданный CASE оператор в %C"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "Синтаксическая ошибка в CASE спецификации в %C"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "Неожиданный TYPE IS оператор в %C"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr "Спецификация типа не должна специфицировать sequence производный тип или тип с BIND атрибутом в SELECT TYPE в %C [F2003:C815]"
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "Синтаксическая ошибка в TYPE IS спецификации в %C"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "Синтаксическая ошибка в CLASS IS спецификации в %C"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected RANK statement at %C"
 msgstr "Неожиданный END оператор в %C"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL stride expression at %L must be a scalar %s"
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "FORALL шаговое выражение в %L должно быть скаляром %s"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE specification at %C"
 msgid "Syntax error in RANK specification at %C"
 msgstr "Синтаксическая ошибка в CASE спецификации в %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "ELSEWHERE оператор в %C не заключен в WHERE блок"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr "Метка %qs в %C не соответствует WHERE метке %qs"
@@ -79813,8 +79860,8 @@ msgstr "параметр ORDERED клаузулы меньше чем COLLAPSE 
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr "%<nowait%> предложение не может использоваться вместе с %<copyprivate%>"
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "IF клаузула в %L требует скалярное LOGICAL выражение"
@@ -82285,12 +82332,12 @@ msgstr "Встроенная %qs декларированная INTRINSIC в %L
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "Не-RECURSIVE процедура %qs в %L возможно вызывает себя рекурсивно.  Объявите её RECURSIVE или используйте %<-frecursive%>"
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "Не-RECURSIVE процедура %qs в %L возможно вызывает себя рекурсивно.  Объявите её RECURSIVE или используйте %<-frecursive%>"
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "Метка %d используемая в %L нигде не определяется"
@@ -82412,7 +82459,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "Функция %qs в %L не имеет IMPLICIT тип. Может имелось в виду %qs?"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr "Функция %qs в %L не имеет IMPLICIT тип"
@@ -82821,282 +82868,288 @@ msgstr "Переменная предполагаемого типа %s в %L н
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "Переменная предполагаемого ранга %s в %L не должна иметь ссылку на подобъект"
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_variable_attr(): Bad array reference"
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "gfc_variable_attr(): Некорректная ссылка на массив"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr "Переменная %qs, использованная в спецификационном выражении, фигурирует в %L до ENTRY оператора, в котором она является параметром"
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr "Переменная %qs используется в %L до оператора ENTRY, в котором она является параметром"
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr "Полиморфный подобъект коиндексированного объекта в %L"
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr "Коиндексированный объект с полиморфным размещаемым подкомпонентом в %L"
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 #| msgid "%qs matching variant is deprecated."
 msgid "Using variable %qs at %L is deprecated"
 msgstr "%qs соответствующий вариант устарел."
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Bad array reference at %L"
+msgid "Invalid array reference at %L"
+msgstr "Некорректная ссылка на массив в %L"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Error in type-spec at %L"
 msgid "Error in typebound call at %L"
 msgstr "Ошибка в спецификации типа в %L"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "Передаваемый объект в %L должен быть скаляром"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr "Базовый объект для вызова компонента указателя на процедуру в %L имеет ABSTRACT тип %qs'"
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr "Базовый объект для вызова type-bound процедуры в %L имеет ABSTRACT тип %qs"
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "Базовый объект для вызова NOPASS type-bound процедуры в %L должен быть скаляром"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr "Не найдено подходящего конкретного связывания для вызова GENERIC %qs в %L"
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "%qs в %L должна быть SUBROUTINE"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr "%qs в %L должна быть FUNCTION"
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "gfc_resolve_expr(): Некорректный тип выражения"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "'%s' в %L должна быть скаляром"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "%s в %L должен быть integer"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s в %L должна быть INTEGER"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "Шаговое выражение в DO цикле в %L не может быть нулевым"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr "DO цикл в %L будет выполнен ноль раз"
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr "DO цикл в %L является неопределенным, так как он переполняется"
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr "DO цикл в %L является неопределенным, так как он теряет значимость"
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "FORALL индекс-имя в %L должно быть скалярным INTEGER"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "FORALL стартовое выражение в %L должно быть скалярным INTEGER"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "FORALL конечное выражение в %L должно быть скалярным INTEGER"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "FORALL шаговое выражение в %L должно быть скаляром %s"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "FORALL шаговое выражение в %L не может быть нулевым"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "FORALL индекс %qs не может появляться в спецификации триплета в %L"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "Allocate-object в %L должен быть ALLOCATABLE или POINTER"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr "Коиндексированный размещаемый объект в %L"
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr "Source-expr в %L должно быть скалярным или иметь тот же ранг, что и allocate-object в %L"
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr "Source-expr в %L и allocate-object в %L должны иметь одинаковую форму"
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr "Тип сущности в %L есть тип несовместимый с source-expr в %L"
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr "Allocate-object в %L и source-expr в %L должны иметь одинаковый вид параметра типа"
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr "Source-expr в %L не должно быть типа LOCK_TYPE и не должно иметь LOCK_TYPE компонент, если allocate-object в %L является комассивом"
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr "Source-expr в %L не должно быть типа EVENT_TYPE и не должно иметь EVENT_TYPE компонент, если allocate-object в %L является комассивом"
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr "Размещение %s ABSTRACT базового типа в %L требует type-spec или source-expr"
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr "Размещение %s в %L с type-spec требует того же character-length параметра, что и в декларации"
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "Спецификация массива требуется в ALLOCATE операторе в %L"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "Спецификация массива или SOURCE= выражение со значением массивом требуется в ALLOCATE операторе в %L"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "Спецификация комассива требуется в ALLOCATE операторе в %L"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "Некорректная спецификация комассива в ALLOCATE операторе в %L"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "Некорректная спецификация массива в ALLOCATE операторе в %L"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "%qs не должно появляться в спецификации массива в %L в том же ALLOCATE операторе где оно само размещается"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 #| msgid "Expected '*' in coindex specification in ALLOCATE statement at %L"
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "Ожидалась '*' в спецификации коиндекса в ALLOCATE операторе в %L"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "Stat-variable в %L должна быть скалярной INTEGER переменной"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "Stat-variable в %L не должна быть %sd в том же %s операторе"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr "ERRMSG в %L бесполезно без STAT тега"
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "ERRMSG переменная в %L должна быть стандартной скалярной CHARACTER переменной"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr "Переменная Errmsg в %L не должна быть %sd в том же операторе %s"
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr "Allocate-object в %L также появляется в %L"
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr "Allocate-object в %L есть подобъект объекта в %L"
@@ -83105,287 +83158,287 @@ msgstr "Allocate-object в %L есть подобъект объекта в %L"
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "CASE метка в %L перекрывается с CASE меткой в %L"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "Выражение в CASE операторе в %L должно быть типа %s"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "Выражение в CASE операторе в %L должно быть вида %d"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "Выражение в CASE операторе в %L должно быть скаляром"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "Выражение выбора в вычисляемом GOTO операторе в %L должно быть скалярным integer выражением"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "Аргумент SELECT оператора в %L не может быть %s"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "Аргумент SELECT оператора в %L не может быть скалярным выражением"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "Выражение в CASE операторе в %L не находится в диапазоне %s"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "За DEFAULT CASE в %L не может следовать второй DEFAULT CASE в %L"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "Логический диапазон в CASE операторе в %L не допускается"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "Константное логическое значение в CASE операторе повторяется в %L"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "Спецификации диапазона в %L невозможно найти соответствие"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "Логический SELECT CASE блок в %L имеет более двух случаев"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "Встроенная функция %qs в %L некорректна в присваивании указателя на процедуру"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type %qs cannot be used as a variable at %C"
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "Производный тип %qs не может быть использован как переменная в %C"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, fuzzy, gcc-internal-format
 #| msgid "Associate-name %qs at %L is used as array"
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "Имя ассоциации %qs в %L используется как массив"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr "Селектор в %L не может быть NULL()"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr "Селектор в %L не имеет типа"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr "Имя ассоциации %qs в %L используется как массив"
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr "CLASS селектор в %L требует временной переменной, которая пока не реализована"
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "Селектор должен быть полиморфным в SELECT TYPE операторе в %L"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr "Селектор в %L не должен быть коиндексирован"
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "TYPE IS в %L перекрывается с TYPE IS в %L"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr "Производный тип %qs в %L должен быть расширяемым"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "Производный тип %qs в %L должен быть расширением %qs"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "Неожиданный встроенный тип %qs в %L"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr "Спецификация типа в %L должна специфицировать, что каждый параметр длины типа является предполагаемым"
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr "Двойной CLASS IS блок в SELECT TYPE операторе в %L"
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Некорректный контекст для NULL () встроенной в %L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "DTIO %s процедура в %L должна быть рекурсивной"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr "Элемент передачи данных в %L не может быть полиморфным, если только он не обрабатывается определенной процедурой ввода/вывода"
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "Элемент передачи данных в %L не может иметь POINTER компоненты, если только он не обрабатывается определенной процедурой ввода/вывода"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "Элемент передачи данных в %L не может иметь компоненты указатели на процедуру"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "Элемент передачи данных в %L не может иметь ALLOCATABLE компоненты если только он не обрабатывается определенной процедурой ввода/вывода"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "Элемент передачи данных в %L не может иметь PRIVATE компоненты"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "Элемент передачи данных в %L не может иметь PRIVATE компоненты, если только он не обрабатывается определенной процедурой ввода/вывода"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "Элемент передачи данных в %L не может быть полной ссылкой на массив предполагаемого размера"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "Lock переменная в %L должна быть скаляром типа LOCK_TYPE"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "Event переменная в %L должна быть скаляром типа EVENT_TYPE"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "Аргумент event переменная в %L должен быть комассивом или коиндексированным"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "Аргумент event переменная в %L должен быть комассивом, но не коиндексированным"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "STAT= аргумент в %L должна быть скалярной INTEGER переменной"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "ERRMSG= аргумент в %L должна быть скалярной CHARACTER переменной"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "ACQUIRED_LOCK= аргумент в %L должна быть скалярной LOGICAL переменной"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "UNTIL_COUNT= аргумент в %L должен быть скалярным INTEGER выражением"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "Imageset аргумент в %L должен быть скалярным или ранга 1 INTEGER выражением"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "Imageset аргумент в %L должен быть между 1 и num_images()"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "Оператор в %L не есть корректный оператор цели перехода для оператора перехода в %L"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr "Переход в %L может вызвать зацикливание"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr "GOTO оператор в %L покидает CRITICAL конструкцию для метки в %L"
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr "GOTO оператор в %L покидает DO CONCURRENT конструкцию для метки в %L"
@@ -83393,221 +83446,221 @@ msgstr "GOTO оператор в %L покидает DO CONCURRENT констр
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "Метка в %L не находится в том же блоке, что GOTO оператор в %L"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "WHERE маска в %L имеет противоречивую форму"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "WHERE цель присваивания в %L имеет противоречивую форму"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr "Non-ELEMENTAL определенное пользователем присваивание в WHERE в %L"
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "Неподдерживаемый оператор внутри WHERE в %L"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "Присваивание FORALL индексной переменной в %L"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "FORALL с индексом %qs не используется в левой части присваивания в %L и поэтому может вызвать множественное присваивание этому объекту"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "BLOCK construct at %C"
 msgid "FORALL construct at %L"
 msgstr "BLOCK конструкция в %C"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "FORALL имя индекса в %L должно быть скалярной переменной типа integer"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "Внешняя FORALL конструкция уже имеет индекс с этим именем %L"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "WHERE/ELSEWHERE клаузула в %L требует LOGICAL массив"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr "gfc_resolve_blocks(): Некорректный тип блока"
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have procedure pointer components"
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "Элемент передачи данных в %L не может иметь компоненты указатели на процедуру"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER expression will be truncated in assignment (%ld/%ld) at %L"
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "CHARACTER выражение будет усечено в присваивании (%ld/%ld) в %L"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "Коиндексированное выражение в %L присваивается переменной производного типа с POINTER компонентом в PURE процедуре"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "Присваивание коиндексированной переменной в %L в PURE процедуре"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr "Присваивание полиморфному комассиву в %L не допускается"
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "Присваивание размещаемой полиморфной переменной в %L"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr "Присваивание размещаемой полиморфной переменной в %L требует %<-frealloc-lhs%>"
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, fuzzy, gcc-internal-format
 #| msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for '=' operator"
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr "Неразмещаемая переменная не должна быть полиморфной во встроенном присваивании в %L - проверьте, что имеется соответствующая конкретная подпрограмма для '=' оператора"
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr "Коиндексированная переменная не должна иметь размещаемых окончательных компонентов в присваивании в %L"
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr "TODO: type-bound определенные присваивания в %L не выполнены, так как несколько ссылок на части массива появятся в промежуточных выражениях."
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr "Присваивание указателя на процедуру в %L"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "Результат функции в левой части присваивания в %L должен иметь pointer атрибут."
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "Аргумент SELECT оператора в %L не может быть скалярным выражением"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "STAT= аргумент в %L должна быть скалярной INTEGER переменной"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "ASSIGNED GOTO оператор в %L требует INTEGER переменной"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "Переменной %qs не присвоили целевую метку в %L"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "Alternate RETURN оператор в %L требует SCALAR-INTEGER спецификатор возврата"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected initialization expression in CASE at %C"
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "Ожидалось инициализационное выражение в CASE в %C"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "ASSIGN оператор в %L требует скалярную подразумеваемого INTEGER переменную"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr "Некорректный NULL в %L"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "Оператор арифметического IF в %L требует скалярное REAL или INTEGER выражение"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr "gfc_resolve_code(): Нет выражения в DO WHILE"
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "Условие выхода из DO WHILE цикла в %L должно быть скалярным LOGICAL выражением"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "FORALL клаузула маски в %L требует скалярное LOGICAL выражение"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_resolve_code(): Некорректный код оператора"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 #| msgid "Unused parameter %qs declared at %L"
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "Неиспользуемый параметр %qs декларирован в %L"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "Переменная %qs со связывающей меткой %qs в %L использует тот же глобальный идентификатор, что и сущность в %L"
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr "Переменная %qs из модуля %qs со связывающей меткой %qs в %L использует тот же глобальный идентификатор, что и сущность в %L из модуля %qs"
@@ -83615,1013 +83668,1013 @@ msgstr "Переменная %qs из модуля %qs со связывающе
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "Процедура %qs со связывающей меткой %qs в %L использует тот же глобальный идентификатор, что и сущность в %L"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "Длина строки в %L слишком велика"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "Размещаемый массив %qs в %L должен иметь отложенную форму или предполагаемый ранг"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "Скалярный объект %qs в %L не может быть ALLOCATABLE"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "Указатель на массив %qs at %L должен иметь отложенную форму или предполагаемый ранг"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "Массив %qs at %L не может иметь отложенную форму"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr "Тип %qs CLASS переменной %qs at %L не является расширяемым"
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr "CLASS переменная %qs в %L должна быть формальным параметром, размещаемой или указателем"
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr "Тип %qs не может быть host ассоциированным в %L, поскольку он блокирован несовместимым объектом с тем же именем декларированным в %L"
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr "Выведенный SAVE для переменной модуля %qs в %L необходим из-за подразумеваемой инициализации"
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "Сущность %qs в %L имеет параметр отложенного типа и требует либо POINTER либо ALLOCATABLE атрибут"
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "Массив из модуля или главной программы %qs в %L должен иметь константную форму"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "Сущность с предполагаемой character длиной в %L должна быть формальным аргументом или PARAMETER"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr "%qs в %L должна иметь константную character длину в этом контексте"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "COMMON переменная %qs в %L должна иметь константную character длину"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "Размещаемая %qs в %L не может иметь инициализатор"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr "Внешняя %qs в %L не может иметь инициализатор"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "Формальный параметр %qs в %L не может иметь инициализатор"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "Встроенная %qs в %L не может иметь инициализатор"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "Результат функции %qs в %L не может иметь инициализатор"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "Автоматический массив %qs в %L не может иметь инициализатор"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr "%s в %L"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "Оператор функция с character значением %qs в %L должна иметь константную длину"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "%qs имеет PRIVATE тип и не может быть формальным аргументом %qs, который PUBLIC в %L"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr "Процедура %qs в PUBLIC интерфейсе %qs в %L берет формальные аргументы %qs, который PRIVATE"
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "Функция %qs в %L не может иметь инициализатор"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr "Внешний объект %qs в %L не может иметь инициализатор"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "ELEMENTAL функция %qs в %L должна иметь скалярный результат"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "Оператор функция %qs в %L не может иметь pointer или allocatable атрибут"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "CHARACTER(*) функция %qs в %L не может иметь значение массив"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "CHARACTER(*) функция %qs в %L не может иметь значение указатель"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "CHARACTER(*) функция %qs в %L не может быть pure"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "CHARACTER(*) функция %qs в %L не может быть рекурсивной"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "CHARACTER(*) функция %qs в %L"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "Указатель на процедуру %qs в %L не должен быть элементным"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "Формальная процедура %qs в %L не должна быть элементной"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr "Переменная результата функции %s в %L элементной функции %qs не должна иметь атрибут ALLOCATABLE или POINTER"
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "PROCEDURE атрибут конфликтует с SAVE атрибутом в %qs в %L"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "PROCEDURE атрибут конфликтует с INTENT атрибутом в %qs в %L"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "PROCEDURE атрибут конфликтует с RESULT атрибутом в %qs в %L"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "EXTERNAL атрибут конфликтует с FUNCTION атрибутом в %qs в %L"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr "Результат указатель на процедуру %qs в %L оказался без pointer атрибута"
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Несоответствие в ELEMENTAL атрибуте между MODULE PROCEDURE в %L и ее интерфейсом в %s"
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Несоответствие в PURE атрибуте между MODULE PROCEDURE в %L и ее интерфейсом в %s"
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Несоответствие в RECURSIVE атрибуте между MODULE PROCEDURE в %L и ее интерфейсом в %s"
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr "%s между MODULE PROCEDURE декларацией в MODULE %qs и декларацией в %L в (SUB)MODULE %qs"
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 #| msgid "Interface %qs at %L must be explicit"
 msgid "Interface of %qs at %L must be explicit"
 msgstr "Интерфейс %qs в %L должен быть явным"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "FINAL процедура %qs в %L не есть SUBROUTINE"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "FINAL процедура в %L должна иметь ровно один аргумент"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "Аргумент FINAL процедуры в %L должен быть типа %qs"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "Аргумент FINAL процедуры в %L не должен быть POINTER"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "Аргумент FINAL процедуры в %L не должен быть ALLOCATABLE"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "Аргумент FINAL процедуры в %L не должен быть OPTIONAL"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "Аргумент FINAL процедуры в %L не должен быть INTENT(OUT)"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "Нескалярная FINAL процедура в %L должна иметь аргумент предполагаемой формы"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "FINAL процедура %qs декларированная в %L имеет тот же ранг (%d), что и %qs"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, fuzzy, gcc-internal-format
 #| msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one"
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr "Только массивные FINAL процедуры декларированные для производного типа %qs определенного в %L, предлагают также скалярный тип"
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, fuzzy, gcc-internal-format
 #| msgid "%qs and %qs can't be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr "%qs и %qs не могут быть смешанными FUNCTION/SUBROUTINE для GENERIC %qs в %L"
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr "%qs и %qs для GENERIC %qs в %L неоднозначны"
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr "Неопределенное конкретное связывание %qs как цели GENERIC %qs в %L"
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr "GENERIC %qs в %L должен нацеливаться на конкретное связывание, %qs также GENERIC"
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, fuzzy, gcc-internal-format
 #| msgid "GENERIC %qs at %L can't overwrite specific binding with the same name"
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr "GENERIC %qs в %L не может перебить конкретное связывание с тем же именем"
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Type-bound operator at %L can't be NOPASS"
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "Type-bound оператор в %L не может быть NOPASS"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "%qs должна быть процедурой модуля или внешней процедурой с явным интерфейсом в %L"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Процедура %qs с PASS(%s) в %L не имеет аргумента %qs"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "Процедура %qs с PASS в %L должна иметь по крайней мере один аргумент"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "Неполиморфный passed-object формальный аргумент %qs в %L"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "Аргумент %qs от %qs с PASS(%s) в %L должен быть производного типа %qs"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 #| msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "Аргумент %qs от %qs с PASS(%s) в %L должен быть производного типа %qs"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "Passed-object формальный аргумент %qs в %L должен быть скаляром"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "Passed-object формальный аргумент %qs в %L не должен быть ALLOCATABLE"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "Passed-object формальный аргумент %qs в %L не должен быть POINTER"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "Процедура %qs в %L имеет то же имя, что и компонент %qs"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "Процедура %qs в %L имеет то же имя, что и унаследованный компонент %qs"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr "Производный тип %qs декларированный в %L должен быть ABSTRACT, поскольку %qs есть DEFERRED и не перебивается"
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "Комассивный компонент %qs в %L должен быть размещаемым с отложенной формой"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "Компонент %qs в %L типа TYPE(C_PTR) или TYPE(C_FUNPTR) не должен быть комассивом"
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr "Компонент %qs в %L с комассивным компонентом должен быть неуказательным, неразмещаемым скаляром"
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr "Компонент %qs в %L имеет CONTIGUOUS атрибут, но не является указателем на массив"
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "Компонент %qs типа BIND(C) в %L должен иметь единичную длину"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Компонент указателя на процедуру %qs с PASS(%s) в %L не имеет аргумента %qs"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "Компонент указателя на процедуру %qs с PASS в %L должен иметь по крайней мере один аргумент"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "Аргумент %qs от %qs с PASS(%s) в %L должен быть производного типа %qs"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "Аргумент %qs от %qs с PASS(%s) в %L должен быть скаляром"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "Аргумент %qs от %qs с PASS(%s) в %L не может иметь POINTER атрибут"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "Аргумент %qs от %qs с PASS(%s) в %L не может быть ALLOCATABLE"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "Компонент %qs от %qs в %L имеет то же имя, что и унаследованная type-bound процедура"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "Character длина компонента %qs должна быть константным спецификационным выражением в %L"
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, fuzzy, gcc-internal-format
 #| msgid "Expression at %L must be of INTEGER type, found %s"
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "Выражение в %L должно быть INTEGER типа, найдено %s"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr "Character компонент %qs от %qs в %L с отложенной длиной должен быть POINTER или ALLOCATABLE"
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "компонент %qs имеет PRIVATE тип и не может быть компонентом %qs, который PUBLIC в %L"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr "Полиморфный компонент %s в %L в SEQUENCE или BIND(C) типе %s"
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "Компонент %s SEQUENCE типа декларированный в %L не имеет SEQUENCE атрибут"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "Конфликтующие инициализаторы в объединении в %L и %L"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr "Поскольку расширяющий тип %qs в %L имеет комассивный компонент, родительский тип %qs должен также иметь его"
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "Нерасширяемый производный тип %qs в %L не должен быть ABSTRACT"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr "Generic имя %qs функции %qs в %L то же, что и имя производного типа в %L"
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type %qs at %L must be extensible"
 msgid "Derived type %qs at %L has not been declared"
 msgstr "Производный тип %qs в %L должен быть расширяемым"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "Массив предполагаемого размера %qs в списке имен %qs в %L не допускается"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr "NAMELIST массивный объект %qs с предполагаемой формой в списке имен %qs в %L"
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr "NAMELIST массивный объект %qs с неконстантной формой в списке имен %qs в %L"
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr "NAMELIST объект %qs с неконстантной character длиной в списке имен %qs в %L"
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "NAMELIST объект %qs был декларирован PRIVATE и не может быть членом PUBLIC списка имен %qs в %L"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr "NAMELIST объект %qs имеет use-associated PRIVATE компоненты и не может быть членом списка имен %qs в %L"
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "NAMELIST объект %qs имеет PRIVATE компоненты и не может быть членом PUBLIC списка имен %qs в %L"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "PROCEDURE атрибут конфликтует с NAMELIST атрибутом в %qs в %L"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "Parameter массив %qs at %L не может быть автоматическим или отложенной формы"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "Неявно типизированный PARAMETER %qs в %L не соответствует более позднему IMPLICIT типу"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "Несовместимый производный тип в PARAMETER в %L"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "CLASS переменная %qs в %L не может иметь PARAMETER атрибут"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, fuzzy, gcc-internal-format
 #| msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "Сущность %qs в %L имеет параметр отложенного типа и требует либо POINTER либо ALLOCATABLE атрибут"
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr "Простите, размещаемые/указательные компоненты в комассивах полиморфных (CLASS) типов в %L не поддерживаются"
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "PROTECTED атрибут конфликтует с EXTERNAL атрибутом в %L"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "PROCEDURE атрибут конфликтует с PROTECTED атрибутом в %L"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr "%qs в %L имеет CONTIGUOUS атрибут, но не является указателем на массив или массивом предполагаемой формы или предполагаемого ранга"
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "Массив предполагаемого размера в %L должен быть формальным аргументом"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "Массив предполагаемой формы в %L должен быть формальным аргументом"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "Массив предполагаемой формы в %L должен быть формальным аргументом"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr "Массив предполагаемого ранга в %L не может иметь VALUE или CODIMENSION атрибут"
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "Символ в %L не является DUMMY переменной"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr "%qs в %L не может иметь VALUE атрибут, поскольку он не является формальным аргументом"
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "Character формальная переменная %qs в %L с VALUE атрибутом должна иметь константную длину"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr "C совместимая character формальная переменная %qs в %L с VALUE атрибутом должна иметь длину один"
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "Производный тип %qs в %L имеет тип %qs, который не был определен"
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr "Переменная %s в %L с NO_ARG_CHECK атрибутов должна быть формальным аргументом"
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr "Переменная %s в %L с NO_ARG_CHECK атрибутом должна быть типа TYPE(*) или числового встроенного типа"
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Переменная %s в %L с NO_ARG_CHECK атрибутом не может иметь ALLOCATABLE, CODIMENSION, POINTER или VALUE атрибут"
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "Переменная %s в %L с NO_ARG_CHECK атрибутом не может иметь INTENT(OUT) атрибут"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr "Переменная %s в %L с NO_ARG_CHECK атрибутом должна быть или скаляром или массивом предполагаемого размера"
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "Предполагаемый тип переменной %s в %L разрешен только для формальных переменных"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Переменная предполагаемого типа %s в %L не может иметь ALLOCATABLE, CODIMENSION, POINTER или VALUE атрибут"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "Переменная предполагаемого типа %s в %L не может иметь INTENT(OUT) атрибут"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr "Переменная предполагаемого типа %s в %L не должна быть массивом явной формы"
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr "Переменная %qs at %L не может быть BIND(C), поскольку она не COMMON блок и не декларирована на уровне модуля"
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "PUBLIC %s %qs в %L PRIVATE производного типа %qs"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr "Переменная %s в %L типа LOCK_TYPE или с подкомпонентом типа LOCK_TYPE должна быть комассивом"
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "INTENT(OUT) формальный аргумент %qs в %L имеет ASSUMED SIZE и поэтому не может иметь подразумеваемый инициализатор"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "Формальный аргумент %qs в %L типа LOCK_TYPE не должен быть INTENT(OUT)"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "Формальный аргумент %qs в %L типа EVENT_TYPE не должен быть INTENT(OUT)"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "Результат функции %qs в %L не должен быть комассивом или иметь комассивный компонент"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "Переменная %qs в %L типа TYPE(C_PTR) или TYPE(C_FUNPTR) не должна быть комассивом"
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr "Переменная %qs в %L с комассивным компонентом должна быть неуказательным, неразмещаемым скаляром, который не есть комассив"
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr "Переменная %qs в %L является комассивом и не является ни ALLOCATABLE, ни SAVE, ни формальным аргументом"
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "Комассивная переменная %qs в %L не должна иметь коизмерения с отложенной формой"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "Размещаемая комассивная переменная %qs в %L должна иметь отложенную форму"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr "Переменная %qs в %L является INTENT(OUT) и может поэтому не быть размещаемым комассивом или иметь комассивные компоненты"
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "Комассивная формальная переменная %qs в %L не допускается в BIND(C) процедуре %qs"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "LOGICAL формальная переменная %qs в %L с не-C_Bool видом в BIND(C) процедуре %qs"
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "LOGICAL результирующая переменная %qs в %L с не-C_Bool видом в BIND(C) процедуре %qs"
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 #| msgid "Namelist %qs can not be an argument to subroutine or function at %L"
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "Список имен %qs не может быть аргументом для подпрограммы или функции в %L"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr "Threadprivate в %L не является SAVEd"
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr "!$OMP DECLARE TARGET переменная %qs в %L не есть SAVEd"
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expecting list of named entities at %C"
 msgid "Expecting definable entity near %L"
 msgstr "Ожидается список именованных сущностей в %C"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "BLOCK DATA элемент %qs в %L должен быть в COMMON"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "DATA массив %qs в %L должен быть указан в предыдущей декларации"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "DATA элемент %qs в %L не может иметь коиндекс"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr "DATA элемент %qs в %L является указателем и поэтому должен быть полным массивом"
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 #| msgid "Argument %qs of elemental procedure at %L cannot have the ALLOCATABLE attribute"
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "Аргумент %qs элементной процедуры в %L не может иметь ALLOCATABLE атрибут"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "Неконстантная секция массива в %L в DATA операторе"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "DATA оператор в %L имеет больше переменных чем значений"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Nonconstant array section at %L in DATA statement"
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "Неконстантная секция массива в %L в DATA операторе"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr "начало implied-do цикла в %L не может быть упрощено до константного значения"
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr "окончание implied-do цикла в %L не может быть упрощено до константного значения"
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr "шаг implied-do цикла в %L не может быть упрощен до константного значения"
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "шаг implied-do цикла в %L не может быть упрощен до константного значения"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "DATA оператор в %L имеет больше значений чем переменных"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "Метка %d в %L определена, но не используется"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "Метка %d в %L определена, но не может быть использована"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "Переменная производного типа %qs в %L должна иметь SEQUENCE атрибут, чтобы быть EQUIVALENCE объектом"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "Переменная производного типа %qs в %L не может иметь ALLOCATABLE компоненты, чтобы быть EQUIVALENCE объектом"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "Переменная производного типа %qs в %L с подразумеваемой инициализацией не может быть в EQUIVALENCE с переменной в COMMON"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "Переменная производного типа %qs в %L с указательным(и) компонент(ами) не может быть EQUIVALENCE объектом"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "Синтаксическая ошибка в EQUIVALENCE операторе в %L"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr "Все или никакие объекты в EQUIVALENCE установленной в %L должны иметь PROTECTED атрибут"
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Именованная константа %qs at %L не может быть EQUIVALENCE объектом"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "Массив %qs at %L с неконстантными границами не может быть EQUIVALENCE объектом"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Компонент структуры %qs at %L не может быть EQUIVALENCE объектом"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "Подстрока в %L имеет нулевую длину"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "PUBLIC функция %qs в %L PRIVATE типа %qs"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "ENTRY %qs в %L не имеет IMPLICIT тип"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "Процедура пользовательского оператора %qs в %L должна быть FUNCTION"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "Процедура пользовательского оператора %qs в %L не может быть предполагаемой character длиной"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "Процедура пользовательского оператора %qs в %L должна иметь по крайней мере один аргумент"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "Первый аргумент интерфейса оператора в %L не может быть необязательным"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "Второй аргумент интерфейса оператора в %L не может быть необязательным"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "Интерфейс оператора в %L должен иметь не более двух аргументов"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr "Внутренняя процедура %qs в %L PURE процедуры должна также быть PURE"
@@ -85179,127 +85232,127 @@ msgstr "Неявно декларированная переменная %qs в
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "Результат функции %qs в %L не имеет IMPLICIT тип"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "%s атрибут конфликтует с %s атрибутом в %L"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "%s атрибут конфликтует с %s атрибутом в %qs в %L"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "%s атрибут не допускается в BLOCK DATA программной единице в %L"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "Имя NAMELIST группы в %L не может иметь SAVE атрибут"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "внутренняя процедура %qs в %L конфликтует с DUMMY аргументом"
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "Указатель на процедуру в %C"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "%s атрибут применен к %s %s в %L"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "BIND(C) применен к %s %s в %L"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "%s атрибут конфликтует с %s атрибутом в %L"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "%s атрибут конфликтует с %s атрибутом в %qs в %L"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "Невозможно изменить атрибуты USE-associated символа в %L"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "Невозможно изменить атрибуты USE-associated символа %s в %L"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "Повторный %s атрибут специфицирован в %L"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr "ALLOCATABLE специфицирован вне INTERFACE тела в %L"
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "Повторный AUTOMATIC атрибут специфицирован в %L"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "CODIMENSION специфицирован для %qs вне своего INTERFACE тела в %L"
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "DIMENSION специфицирован для %qs вне своего INTERFACE тела в %L"
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "Cray указуемое в %L появляется в нескольких pointer() операторах"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "Повторный PROTECTED атрибут специфицирован в %L"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "SAVE атрибут в %L не может быть специфицирован в PURE процедуре"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "Повторный SAVE атрибут специфицирован в %L"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "Повторный VALUE атрибут специфицирован в %L"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "Повторный VOLATILE атрибут специфицирован в %L"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "Атрибут VOLATILE в %L нельзя указать в процедуре PURE"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "Повторный атрибут ASYNCHRONOUS указан в %L"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "Атрибут %s %qs конфликтует с атрибутом %s в %L"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
@@ -85308,204 +85361,204 @@ msgstr ""
 "Процедура %s в %L уже объявлена как процедура %s \n"
 "F2008: присваивание указательной функции неоднозначно, если оно является первым выполняемым оператором блока спецификаций. Добавьте перед ним выполняемый оператор любого другого. ИСПРАВИТЬ"
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "Процедура %s в %L уже объявлена как процедура %s"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "INTENT (%s)  конфликтует с INTENT(%s) в %L"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "ACCESS спецификация в %L уже была специфицирована"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "Повторный BIND атрибут специфицирован в %L"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr "BIND(C) в %L"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "Повторный EXTENDS атрибут специфицирован в %L"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr "EXTENDS в %L"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "Символ %qs в %L уже имеет явный интерфейс"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr "%qs в %L имеет атрибуты специфицированные вне своего INTERFACE тела"
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr "Символ %qs в %L конфликтует с символом из модуля %qs, use-associated в %L"
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "Символ %qs в %L уже имеет базовый тип %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "Процедура %qs в %L не может иметь базовый тип %s"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "Символ %qs в %L не может иметь тип"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "Компонент %qs в %C уже в родительском типе в %L"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "Символ %qs в %C неоднозначен"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "Производный тип %qs в %C используется до своего определения"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "Компонент %qs в %C есть PRIVATE компонент %qs"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "%qs в %C не является элементом структуры %qs. Может имелось в виду %qs?"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "%qs в %C не является элементом структуры %qs"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "Повторная метка оператора %d в %L и %L"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "Метка %d в %C уже фигурирует как цель перехода"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "Метка %d в %C уже фигурирует как метка формата"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr "завершающий оператор DO цикла не END DO или CONTINUE с меткой %d в %C"
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "Метка %d в %C ранее использована как FORMAT метка"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "Метка %d в %C ранее использована как цель перехода"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr "Разделяемая DO терминирующая метка %d в %C"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "LOCK statement at %C"
 msgid "Labeled DO statement at %L"
 msgstr "LOCK оператор в %C"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "Имя %qs в %C является неоднозначной ссылкой на %qs из модуля %qs"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "Имя %qs в %C является неоднозначной ссылкой на %qs из текущей программной единицы"
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "Символ %qs в %C уже был host ассоциирован"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr "verify_bind_c_derived_type(): Данный символ неожиданно оказался NULL"
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "Производный тип %qs декларированный в %L должен иметь BIND атрибут, чтобы быть C совместимым"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr "Производный тип %qs с BIND(C) атрибутом в %L пуст и может быть недоступен для C парного процессора"
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Компонент %qs в %L не может иметь POINTER атрибут, поскольку он является элементом BIND(C) производного типа %qs в %L"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "Компонент указатель на процедуру %qs в %L не может быть элементом BIND(C) производного типа %qs в %L"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Компонент %qs в %L не может иметь ALLOCATABLE атрибут, поскольку он является элементом BIND(C) производного типа %qs в %L"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr "Компонент %qs в производном типе %qs в %L может не быть C совместимым хотя производный тип %qs есть BIND(C)"
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "Компонент %qs в производном типе %qs в %L может не быть C совместимым"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "Производный тип %qs в %L не может иметь SEQUENCE атрибут, поскольку он есть BIND(C)"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr "Символ %qs используется до своего типизирования в %L"
@@ -85535,24 +85588,24 @@ msgstr "Перекрывающиеся неравные инициализато
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "Перекрывающиеся неравные инициализаторы в EQUIVALENCE в %C"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "Создание временного массива в %L для аргумента %qs"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "Некорректный тип выражения при проходе (%d)"
@@ -85745,38 +85798,38 @@ msgstr "Возвращаемое значение %qs функции %qs дек
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr "Извините, !$ACC DECLARE в %L не допускается в конструкции BLOCK"
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Can't compute the length of the char array at %L."
 msgid "Cannot compute the length of the char array at %L."
 msgstr "Не могу вычислить длину char массива в %L."
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr "Код для переразмещения размещаемой переменной в %L будет добавлен"
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr "Простите, коиндексированный доступ к неограниченному полиморфному объекту в %L не поддерживается"
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr "Простите, коиндексированный доступ к неограниченному полиморфному компоненту в %L не поддерживается"
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "Неизвестная встроенная операция"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Неизвестная функция списка аргументов в %L"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -85787,17 +85840,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "Встроенная функция %qs (%d) не опознана"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "%<dim%> аргумент встроенной функции %s в %L не есть корректный индекс измерения"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr "Простите, event компонент производного типа в %L пока не поддерживается"
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr "event переменная в %L не должен быть коиндексирована"
@@ -85950,7 +86003,7 @@ msgstr "Простите, lock компонент производного ти
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr "Извините, поддержка только для integer вида %d реализована для image-set в %L"
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr "gfc_trans_select(): Некорректный тип для case выражения."
@@ -86334,6 +86387,11 @@ msgstr "переменная %qD повторно декларирована к
 msgid "function %qD redeclared as variable"
 msgstr "функция %qD повторно декларирована как переменная"
 
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "предыдущая декларация здесь"
+
 #: lto/lto.cc:174
 #, fuzzy, gcc-internal-format
 #| msgid "lto_obj_file_open() failed"
@@ -87632,7 +87690,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr "%<-fobjc-sjlj-exceptions%> игнорируется для %<-fgnu-runtime%>"
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr ""
@@ -87643,7 +87701,7 @@ msgstr ""
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr "%<-fobjc-sjlj-exceptions%> единственная поддерживаемая система исключений для %<-fnext-runtime%> с %<-fobjc-abi-version%> < 2"
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, fuzzy, gcc-internal-format
 #| msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> >= 2"
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
@@ -90127,15 +90185,9 @@ msgstr ""
 #~ msgid "Builtin function %s is only valid for the cell processor"
 #~ msgstr "Встроенная функция %s допустима только для процессора cell"
 
-#~ msgid "Builtin function %s requires the -mhtm option"
-#~ msgstr "Встроенная функция %s требует опцию -mhtm"
-
 #~ msgid "Builtin function %s requires the -maltivec option"
 #~ msgstr "Встроенная функция %s требует опцию --maltivec"
 
-#~ msgid "Builtin function %s requires the -mpaired option"
-#~ msgstr "Встроенная функция %s требует опцию --mpaired"
-
 #~ msgid "Builtin function %s requires the -mspe option"
 #~ msgstr "Встроенная функция %s требует опцию -mspe"
 
diff --git a/gcc/po/sr.po b/gcc/po/sr.po
index 38ad52fcb58..ad434e5bdaa 100644
--- a/gcc/po/sr.po
+++ b/gcc/po/sr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 4.2.1\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2007-08-19 12:00+0200\n"
 "Last-Translator: Caslav Ilic <caslav.ilic@gmx.net>\n"
 "Language-Team: Serbian <gnu@prevod.org>\n"
@@ -456,7 +456,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "не могу се задати и -C и -o"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared и mdll нису сагласни"
 
@@ -21300,18 +21300,18 @@ msgstr "непрепознатљива ија:"
 msgid "insn does not satisfy its constraints:"
 msgstr "ија не задовољава своја ограничења:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "направљено и употребљено са различитим поставкама за ‘%s’"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 #, fuzzy
 #| msgid "created and used with different settings of -fpic"
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "направљено и употребљено са различитим поставкама за -fpic"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 #, fuzzy
 #| msgid "created and used with different settings of -fpie"
 msgid "created and used with different settings of %<-fpie%>"
@@ -21651,7 +21651,7 @@ msgstr "модификатор дужине у формату strfmon"
 msgid "<command-line>"
 msgstr "<командна-линија>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 #| msgid "invalid operand for code '%c'"
 msgid "unsupported operand for code '%c'"
@@ -21672,9 +21672,9 @@ msgstr "неисправан операнд за кôд ‘%c’"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 #| msgid "invalid punctuation %qc in constraint"
 msgid "invalid vector constant"
@@ -21697,7 +21697,7 @@ msgstr "неисправан операнд за кôд ‘%c’"
 msgid "incompatible register operand for '%%%c'"
 msgstr "неисправан операнд за кôд ‘%c’"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "недостаје операнд"
@@ -21730,93 +21730,93 @@ msgstr "неисправна адреса"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr ""
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr ""
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "неисправна %%J вредност"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "неисправна %%r вредност"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "неисправна %%R вредност"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "неисправна %%N вредност"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "неисправна %%P вредност"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "неисправна %%h вредност"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "неисправна %%L вредност"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "неисправна %%m вредност"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "неисправна %%M вредност"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "неисправна %%U вредност"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "неисправна %%s вредност"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "неисправна %%C вредност"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "неисправна %%E вредност"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "непознато unspec релокације"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "неисправан %%xn кôд"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, fuzzy, c-format
 #| msgid "invalid address"
 msgid "invalid operand address"
@@ -21919,36 +21919,36 @@ msgstr "неисправан УНСПЕЦ као операнд"
 msgid "unrecognized supposed constant"
 msgstr "непрепозната претпостављена константа"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "неисправан операнд помака"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "предикатна инструкција Тамба"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "предикатна инструкција у условном редоследу"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, fuzzy, c-format
 #| msgid "invalid operand for code '%c'"
 msgid "Unsupported operand for code '%c'"
 msgstr "неисправан операнд за кôд ‘%c’"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -21956,130 +21956,130 @@ msgstr "неисправан операнд за кôд ‘%c’"
 msgid "invalid operand for code '%c'"
 msgstr "неисправан операнд за кôд ‘%c’"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, fuzzy, c-format
 #| msgid "instruction never exectued"
 msgid "instruction never executed"
 msgstr "инструкција се никад не извршава"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr ""
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "неисправно претварање из %<__fpreg%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "неисправно претварање у тип %qT из типа %qT"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "адресни операнд захтева ограничење за X, Y или Z регистар"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 #, fuzzy
 #| msgid "output operand %d must use %<&%> constraint"
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "излазни операнд %d мора користити ограничење %<&%>"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 #, fuzzy
 #| msgid "bad address, not (reg+disp):"
 msgid "bad address, not an I/O address:"
 msgstr "лоша адреса, није (reg+disp):"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 #, fuzzy
 #| msgid "address offset not a constant"
 msgid "bad address, not a constant:"
 msgstr "помак адресе није константа"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "лоша адреса, није (reg+disp):"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "лоша адреса, није post_inc или pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "унутрашња грешка компилатора. Лоша адреса:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr ""
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "унутрашња грешка компилатора. Непознат режим:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "неисправна ија:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "нетачна ија:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "непозната ија премештања:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "лоша ија помака:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "унутрашња грешка компилатора. Нетачан помак:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 #, fuzzy
 #| msgid "unsupported combination: %s"
 msgid "unsupported fixed-point conversion"
 msgstr "неподржана комбинација: %s"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr ""
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 #, fuzzy
 #| msgid "redefinition of parameter %q+D"
 msgid "function parameter"
 msgstr "поновљена дефиниција параметра %q+D"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr ""
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 #, fuzzy
 #| msgid "function return type cannot be function"
 msgid "return type of function"
 msgstr "повратни тип функције не може бити функција"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr ""
 
@@ -22118,7 +22118,7 @@ msgstr "неочекиван операнд"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -22455,55 +22455,55 @@ msgstr "операнд није ни константа ни условни кô
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "операнд није ни константа ни условни кôд, неисправан кôд аргумента ‘c’"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "неисправан кôд операнда ‘%c;’"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "неисправна ограничења за операнд"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 #| msgid "%Hinvalid controlling predicate"
 msgid "invalid vector immediate"
 msgstr "%Hнеисправан контролишући предикат"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "непознат режим ије"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "неисправно претварање из %<__fpreg%>"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "неисправно претварање из %<__fpreg%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "неисправно претварање у %<__fpreg%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "неисправно претварање у тип %qT из типа %qT"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -22535,7 +22535,7 @@ msgstr "неисправна операција на %<__fpreg%>"
 msgid "invalid %%P operand"
 msgstr "неисправан %%P операнд"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "неисправна %%p вредност"
@@ -22566,30 +22566,30 @@ msgstr ""
 msgid "invalid addressing mode"
 msgstr "неисправна адреса"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, fuzzy, c-format
 #| msgid "'%s' is not a valid class name"
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "‘%s’ није исправно име класе"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, fuzzy, c-format
 #| msgid "invalid use of %qD"
 msgid "invalid use of '%%%c'"
@@ -22622,7 +22622,7 @@ msgid "post-increment address is not a register"
 msgstr "адреса постувећања није регистар"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "лоша адреса"
 
@@ -22795,7 +22795,7 @@ msgstr "неподржана комбинација: %s"
 msgid "unsupported memory expression:"
 msgstr "очекиван је целобројни израз"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 #| msgid "invalid %%c operand"
 msgid "invalid vector operand"
@@ -22850,276 +22850,276 @@ msgstr ""
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 #, fuzzy
 #| msgid "bad test"
 msgid "bad move"
 msgstr "лоша проба"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%A value"
 msgstr "неисправна %%H вредност"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "неисправна %%D вредност"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%e value"
 msgstr "неисправна %%H вредност"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "неисправна %%f вредност"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "неисправна %%F вредност"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "неисправна %%G вредност"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "неисправан %%j кôд"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "неисправан %%J кôд"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "неисправна %%k вредност"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "неисправна %%K вредност"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "неисправна %%O вредност"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "неисправна %%q вредност"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%t value"
 msgstr "неисправна %%H вредност"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "неисправна %%T вредност"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "неисправна %%u вредност"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "неисправна %%v вредност"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%V value"
 msgstr "неисправна %%H вредност"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "неисправна %%x вредност"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%z value"
 msgstr "неисправна %%H вредност"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, fuzzy, c-format
 #| msgid "invalid punctuation %qc in constraint"
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "неисправна интерпункција %qc у ограничењу"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "алтивек аргумент прослеђен непрототипизираној функцији"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 #, fuzzy
 #| msgid "Do not generate a single exit point for each function"
 msgid "Could not generate addis value for fusion"
 msgstr "Не стварај јединствену излазну тачку за сваку функцију"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 #, fuzzy
 #| msgid "unable to generate reloads for:"
 msgid "Unable to generate load/store offset for fusion"
 msgstr "не могу да створим поновљена учитавања за:"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "неисправно претварање из %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "неисправно претварање у %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "неисправно претварање из %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "неисправно претварање у %<__fpreg%>"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr ""
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "не могу да разложим адресу"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "неисправан операнд за модификатор ‘b’"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid reference for 'J' output modifier"
 msgstr "неисправан операнд за модификатор ‘b’"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, fuzzy, c-format
 #| msgid "invalid operand for 'O' modifier"
 msgid "invalid address for 'O' output modifier"
 msgstr "неисправан операнд за модификатор ‘O’"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid address for 'R' output modifier"
 msgstr "неисправан операнд за модификатор ‘b’"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid address for 'S' output modifier"
 msgstr "неисправан операнд за модификатор ‘b’"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, fuzzy, c-format
 #| msgid "invalid operand for 'o' modifier"
 msgid "invalid constant for output modifier '%c'"
 msgstr "неисправан операнд за модификатор ‘o’"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, fuzzy, c-format
 #| msgid "invalid operand output code"
 msgid "invalid constant - try using an output modifier"
 msgstr "неисправан кôд излаза операнада"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, fuzzy, c-format
 #| msgid "invalid operand for 'o' modifier"
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "неисправан операнд за модификатор ‘o’"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, fuzzy, c-format
 #| msgid "invalid expression as operand"
 msgid "invalid expression - try using an output modifier"
 msgstr "неисправан израз као операнд"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, fuzzy, c-format
 #| msgid "invalid operand for 'o' modifier"
 msgid "invalid expression for output modifier '%c'"
 msgstr "неисправан операнд за модификатор ‘o’"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "vector argument passed to unprototyped function"
 msgstr "алтивек аргумент прослеђен непрототипизираној функцији"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 #, fuzzy
 #| msgid "pointer targets in return differ in signedness"
 msgid "types differ in signedness"
 msgstr "циљеви показивача у повратку разликују се у означености"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr ""
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -23322,12 +23322,12 @@ msgstr "<анонимно>"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "очекивано је %<;%>"
@@ -23340,7 +23340,7 @@ msgstr "очекивано је %<;%>"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -23349,7 +23349,7 @@ msgstr "очекивано је %<;%>"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<)%>"
@@ -23358,7 +23358,7 @@ msgstr "очекивано је %<{%>"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<]%>"
@@ -23372,30 +23372,30 @@ msgstr "очекивано је %<,%>, %<;%> или %<}%>"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "очекивано је %<(%>"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<[%>"
 msgstr "очекивано је %<{%>"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "очекивано је %<{%>"
@@ -23405,18 +23405,18 @@ msgstr "очекивано је %<{%>"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<:%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<while%>"
@@ -23426,8 +23426,8 @@ msgstr "очекивано је %<{%>"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<,%>"
@@ -23440,19 +23440,19 @@ msgid "expected %<.%>"
 msgstr "очекивано је %<{%>"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@end%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<>%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<,%> or %<)%>"
@@ -23461,34 +23461,34 @@ msgstr "очекивано је %<,%> или %<;%>"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "очекивано је %<=%>"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<}%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<else%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "очекивано је %<#pragma omp section%> или %<}%>"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -23498,7 +23498,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "<анонимно>"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<<%>"
@@ -23517,13 +23517,13 @@ msgstr "Очекивано је име"
 msgid "candidate:"
 msgstr "кандидат 1:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 #| msgid "type %qs has a user-defined constructor"
 msgid "  after user-defined conversion:"
 msgstr "тип %qs има кориснички дефинисан конструктор"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 #, fuzzy
 #| msgid "candidate 1:"
 msgid "candidate is:"
@@ -23533,11 +23533,11 @@ msgstr[1] "кандидат 1:"
 msgstr[2] "кандидат 1:"
 msgstr[3] "кандидат 1:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "кандидат 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "кандидат 2:"
 
@@ -23823,7 +23823,7 @@ msgstr ""
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr ""
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "кандидати су:"
 
@@ -23881,50 +23881,50 @@ msgstr ""
 msgid "source type is not polymorphic"
 msgstr ""
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "погрешан тип аргумента уз унарно минус"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "погрешан тип аргумента уз унарно плус"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "погрешан тип аргумента уз битски комплемент"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "погрешан тип аргумента за abs"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "погрешан тип аргумента за конјугацију"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 #, fuzzy
 #| msgid "wrong type argument to unary plus"
 msgid "in argument to unary !"
 msgstr "погрешан тип аргумента уз унарно плус"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr ""
 
@@ -24007,7 +24007,7 @@ msgstr ""
 msgid "Deleted feature:"
 msgstr ""
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 #, fuzzy
 #| msgid "Array assignment"
 msgid "array assignment"
@@ -24208,11 +24208,11 @@ msgstr "блоковско IF"
 msgid "implied END DO"
 msgstr "имплицитно END DO"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "додела"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "додела показивача"
 
@@ -24411,59 +24411,59 @@ msgstr "Операнд корисничког оператора ‘%s’ код
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "Операнди корисничког оператора ‘%s’ код %%L су %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr ""
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 #, fuzzy
 #| msgid "Perform variable tracking"
 msgid "iterator variable"
 msgstr "Изврши праћење променљивих"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 #, fuzzy
 #| msgid "Step expression in DO loop at %L cannot be zero"
 msgid "Start expression in DO loop"
 msgstr "Израз за корак у петљи DO код %L не може бити нула"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 #, fuzzy
 #| msgid "invalid expression as operand"
 msgid "End expression in DO loop"
 msgstr "неисправан израз као операнд"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 #, fuzzy
 #| msgid "Step expression in DO loop at %L cannot be zero"
 msgid "Step expression in DO loop"
 msgstr "Израз за корак у петљи DO код %L не може бити нула"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 #, fuzzy
 #| msgid "DEALLOCATE "
 msgid "DEALLOCATE object"
 msgstr "DEALLOCATE "
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 #, fuzzy
 #| msgid "ALLOCATE "
 msgid "ALLOCATE object"
 msgstr "ALLOCATE "
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr ""
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr ""
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr ""
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr ""
 
@@ -24472,11 +24472,11 @@ msgstr ""
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr ""
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -24491,12 +24491,12 @@ msgstr ""
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 #, fuzzy
 #| msgid "assignment of read-only location"
 msgid "Assignment of scalar to unallocated array"
@@ -24507,84 +24507,84 @@ msgstr "додела само-за-читање локацији"
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, fuzzy, c-format
 #| msgid "Argument NCOPIES of REPEAT intrinsic is negative"
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "Аргумент NCOPIES уз сопствено REPEAT негативан је"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 #, fuzzy
 #| msgid "Argument NCOPIES of REPEAT intrinsic is negative"
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "Аргумент NCOPIES уз сопствено REPEAT негативан је"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -24610,15 +24610,15 @@ msgstr "Додељена етикета није етикета циља"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr ""
 
@@ -24704,7 +24704,7 @@ msgid "expected boolean type"
 msgstr "Очекиван је тип израза"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, fuzzy, gcc-internal-format
 #| msgid "Expected integer"
 msgid "expected integer"
@@ -24786,7 +24786,7 @@ msgstr "без аргумената"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments for format"
 msgid "too many arguments"
@@ -25530,7 +25530,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr ""
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "Синтаксна грешка у наредби %s код %C"
@@ -26021,8 +26021,8 @@ msgstr "Атрибут %s коси се са атрибутом %s код %L"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+#D here"
 msgid "previous declaration here"
@@ -26042,7 +26042,7 @@ msgstr "атрибутска директива %qs игнорисана"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "атрибутска директива %qs игнорисана"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qs attribute"
 msgid "wrong number of arguments specified for %qE attribute"
@@ -26054,7 +26054,7 @@ msgstr "погрешан број аргумената наведне за ат
 msgid "expected %i or more, found %i"
 msgstr "очекивано је %<(%> или крај линије"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %i, found %i"
@@ -26124,12 +26124,12 @@ msgstr "атрибути типа игноришу се пошто је тип 
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -26138,7 +26138,7 @@ msgstr "атрибути типа игноришу се пошто је тип 
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -26160,8 +26160,8 @@ msgstr "атрибут %qE се игнорише"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+D"
 msgid "previous declaration of %qD"
@@ -26286,7 +26286,7 @@ msgstr "не могу да нађем датотеку за класу %s"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "померај ван граница константне ниске"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%qE declared here"
@@ -26403,7 +26403,7 @@ msgstr "недостаје аргумент за „%s“"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to %<__builtin_frame_address%>"
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
@@ -26427,46 +26427,46 @@ msgstr "%<__builtin_longjmp%> други аргумент мора бити 1"
 msgid "target format does not support infinity"
 msgstr "циљни формат не подржава бесконачност"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 #| msgid "%<va_start%> used in function with fixed args"
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "%<va_start%> употребљено у функцији са фиксним аргументима"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %<va_start%>"
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "премало аргумената за функцију %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "%<__builtin_next_arg%> позвано без аргумената"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %<va_start%>"
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "премало аргумената за функцију %<va_start%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "други параметар за %<va_start%> није последњи именовани аргумент"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr ""
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfirst argument of %D must be a pointer, second integer constant"
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "%Hпрви аргумент за %D мора бити показивач, а други целобројна константа"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 #| msgid "%Hlast argument of %D is not integer constant between 0 and 3"
 msgid "last argument of %qD is not integer constant between 0 and 3"
@@ -27585,12 +27585,12 @@ msgstr "атрибут %qE се игнорише јер је %qT већ дефи
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F употребљено али недефинисано"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F декларисано као %<static%> али нигде дефинисано"
@@ -28193,7 +28193,7 @@ msgstr "низ не одговара стаблу области"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "низ не одговара стаблу области"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, gcc-internal-format
 msgid "%qs failed"
 msgstr ""
@@ -28223,19 +28223,19 @@ msgstr ""
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+D redeclared with attribute noinline"
 msgid "call to %qs declared with attribute error: %s"
 msgstr "функција %q+D поново декларисана са атрибутом неуткане"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+D redeclared with attribute noinline"
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "функција %q+D поново декларисана са атрибутом неуткане"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, fuzzy, gcc-internal-format
 #| msgid "assuming signed overflow does not occur when simplifying range test"
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
@@ -28276,7 +28276,7 @@ msgstr "велики целобројни имплицитно подсечен
 msgid "comparison is always %d due to width of bit-field"
 msgstr "поређење је увек %d услед ширине битског поља"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr "претпостављам да се означено преливање не дешава при упрошћавању пробе опсега"
@@ -28465,7 +28465,7 @@ msgstr "нисам успео да добавим времена процеса"
 msgid "%s signal terminated program %s"
 msgstr "Користи алтернативна имена регистара"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option \"%s\""
 msgid "unrecognized command-line option %qs"
@@ -28757,7 +28757,7 @@ msgstr "вишебиб. навод ‘%s’ није исправан"
 msgid "multilib exclusions %qs is invalid"
 msgstr "вишебиб. искључење ‘%s’ није исправно"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, fuzzy, gcc-internal-format
 #| msgid "multilib select '%s' is invalid"
 msgid "multilib select %qs %qs is invalid"
@@ -29088,23 +29088,23 @@ msgstr ""
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr ""
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s not supported for nested functions"
 msgid "%s not supported for variable length aggregates"
 msgstr "%s није подржано за угњеждене функције"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%s not supported on this target"
@@ -29148,16 +29148,16 @@ msgid "function returns address of local variable"
 msgstr "функција враћа адресу на локалну променљиву"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, fuzzy, gcc-internal-format
@@ -29170,27 +29170,27 @@ msgstr "%q+D декларисано овде"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
@@ -29199,7 +29199,7 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
@@ -29208,7 +29208,7 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
@@ -29217,67 +29217,67 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
@@ -29286,7 +29286,7 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
@@ -29295,7 +29295,7 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
@@ -29304,122 +29304,122 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
@@ -29428,23 +29428,23 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 #| msgid "invalid option argument %qs"
 msgid "directive argument %qE"
 msgstr "неисправан аргумент опције %qs"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
@@ -29453,22 +29453,22 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
@@ -29477,36 +29477,36 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
@@ -29514,7 +29514,7 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
@@ -29522,38 +29522,38 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 #| msgid "Maintain backchain pointer"
 msgid "null destination pointer"
 msgstr "Одржавај показивач контраланца"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 #| msgid "%s in format string at %C"
 msgid "null format string"
@@ -30317,12 +30317,12 @@ msgstr "неисправан режим показивача %qs"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%qD declared here"
@@ -31154,7 +31154,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "invalid use of attribute %<fallthrough%>"
@@ -31524,17 +31524,17 @@ msgstr ""
 msgid "mismatching definition"
 msgstr "недостаје дефиниција"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr ""
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -32667,82 +32667,82 @@ msgstr "грешка при упису у %s: %m"
 msgid "error closing optimization records %qs"
 msgstr "Изврши оптимизацију за укрштање скокова"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 #| msgid "command line option %qs is not supported by this configuration"
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "опција командне линије %qs није подржана овом конфигурацијом"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, fuzzy, gcc-internal-format
 #| msgid "missing argument to \"%s\""
 msgid "missing argument to %qs"
 msgstr "недостаје аргумент за „%s“"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 #| msgid "argument to \"%s\" should be a non-negative integer"
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "аргумент за „%s“ треба да је ненегативан цео број"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, fuzzy, gcc-internal-format
 #| msgid "argument to \"%s\" should be a non-negative integer"
 msgid "argument to %qs should be a non-negative integer"
 msgstr "аргумент за „%s“ треба да је ненегативан цео број"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm=%d is not between 0 and %d"
 msgid "argument to %qs is not between %d and %d"
 msgstr "-mregparm=%d није између 0 и %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument of %qs"
 msgid "invalid argument in option %qs"
 msgstr "неисправан аргумент типа за %qs"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr ""
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option \"%s\""
 msgid "unrecognized argument in option %qs"
 msgstr "непрепозната опција командне линије „%s“"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 #| msgid "Invalid argument type %qs to %qs"
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "Неисправан тип аргумента %qs за %qs"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, fuzzy, gcc-internal-format
 #| msgid "Invalid argument type %qs to %qs"
 msgid "valid arguments to %qs are: %s"
 msgstr "Неисправан тип аргумента %qs за %qs"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "прекидач %qs више није подржан"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs attribute larger than %d"
 msgid "argument to %qs is bigger than %d"
 msgstr "аргумент за атрибут %qs већи од %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr ""
@@ -32824,8 +32824,8 @@ msgstr "аргумент за „%s“ треба да је ненегатива
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "%qs is incompatible with %qs"
@@ -33599,7 +33599,7 @@ msgstr "глобална регистарска променљива прати
 msgid "register of %qD used for multiple global register variables"
 msgstr "регистар се користи за две глобалне регистарске променљиве"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, fuzzy, gcc-internal-format
 #| msgid "  conflict with %q+D"
 msgid "conflicts with %qD"
@@ -34076,47 +34076,47 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "__builtin_saveregs није подржано овим циљем"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "-fdata-sections није подржано за овај циљ"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, fuzzy, gcc-internal-format
 #| msgid "global destructors not supported on this target"
 msgid "nested functions not supported on this target"
 msgstr "глобални деструктори нису подржани на овом циљу"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, fuzzy, gcc-internal-format
 #| msgid "-ffunction-sections not supported for this target"
 msgid "nested function trampolines not supported on this target"
 msgstr "-ffunction-sections није подржано за овај циљ"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "глобални конструктори нису подржани на овом циљу"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "глобални деструктори нису подржани на овом циљу"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is not supported on this platform"
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "атрибут %qE није подржан на овој платформи"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attributes are not supported for this target"
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "%Jатрибути одељка нису подржани за овај циљ"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma extern_prefix not supported on this target"
 msgid "%<#pragma GCC target%> is not supported for this machine"
@@ -35359,89 +35359,89 @@ msgstr "Последња наредба у об. %i има неисправно
 msgid "BB %i has incorrect fallthru edge"
 msgstr "погрешна ија у пропадном потегу"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it receives a non-local goto"
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "функција %q+F се не може уткати јер прима нелокално goto"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses variable sized variables"
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "функција %q+F се не може уткати јер користи променљиве променљиве величине"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "функција %q+F се не може уткати јер користи alloca (потисните атрибутом always_inline)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "функција %q+F се не може уткати јер користи setjmp"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "функција %q+F се не може уткати јер користи променљиву листу аргумената"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "функција %q+F се не може уткати јер користи јер користи руковање изузецима типа setjmp-longjmp"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "функција %q+F се не може уткати јер користи нелокално goto"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "функција %q+F се не може уткати јер користи __builtin_return или __builtin_apply_args"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "функција %q+F се не може уткати јер користи рачунско goto"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "функција %q+F се не може уткати јер користи променљиву листу аргумената"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "функција %q+F не може никако бити уткана јер је то сузбијено помоћу -fno-inline"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "функција %q+F не може никако бити уткана јер користи атрибуте сукобљене са уткивањем"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 #| msgid "inlining failed in call to %q+F: %s"
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "уткивање није успело у позиву %q+F: %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "позвано одавде"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 #| msgid "from this location"
 msgid "called from this function"
 msgstr "на овој локацији"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "уткивање није успело у позиву %q+F: %s"
@@ -35501,29 +35501,29 @@ msgstr "неисправан тип вектора за атрибут %qE"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "неисправан тип вектора за атрибут %qE"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "in a call to non-static member function %qD"
 msgstr "неисправна употреба нестатичке чланске функције %qD"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
 msgid "in a call to built-in function %qD"
 msgstr "позив не-функције %qD"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 #| msgid "no member function %qD declared in %qT"
 msgid "in a call to function %qD declared %qs"
@@ -35753,7 +35753,7 @@ msgstr "%H%qE није успостављено"
 msgid "%qs may be used uninitialized"
 msgstr "%H%qD у овој функцији може бити бити употребљено неуспостављено"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qD was declared here"
 msgid "%qD was declared here"
@@ -35994,7 +35994,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -36009,136 +36009,136 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "низови функција немају смисла"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "повратни тип функције не може бити функција"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "провера стабла: %s, имам %s у %s, код %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "провера стабла: не очекивах ниједно од %s, имам %s у %s, код %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "провера стабла: очекивах класу %qs, имам %qs (%s) у %s, код %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "провера стабла: нисам очекивао класу %qs, имам %qs (%s) у %s, код %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "провера стабла: очекивах omp_clause %s, имам %s у %s, код %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected tree that contains %qs structure, have %qs  in %s, at %s:%d"
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "провера стабла: очекивах стабло које садржи структуру %qs, имам %qs у %s, код %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "провера стабла: приступих елту %d у tree_vec са %d елтова у %s, код %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "провера стабла: приступих елту %d у tree_vec са %d елтова у %s, код %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "провера стабла: приступих операнду %d од %s са %d операнада у %s, код %s:%d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at %s:%d"
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "провера стабла: приступих операнду %d од omp_clause %s са %d операнада у %s, код %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qD is deprecated: %s"
 msgstr "%qs је превазиђено"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qD is deprecated"
 msgstr "%qs је превазиђено"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qE is deprecated: %s"
 msgstr "%qs је превазиђено"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qE is deprecated"
 msgstr "%qs је превазиђено"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type is deprecated"
 msgid "type is deprecated: %s"
 msgstr "тип је превазиђен"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "тип је превазиђен"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is unavailable: %s"
 msgstr "%qD није променљива у одредби %qs"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D is inaccessible"
 msgid "%qD is unavailable"
 msgstr "%q+#D није приступно"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is unavailable: %s"
 msgstr "%qE није променљива у одредби %qs"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a template"
 msgid "%qE is unavailable"
 msgstr "%qE није шаблон"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr ""
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, gcc-internal-format
 msgid "type is unavailable"
 msgstr ""
@@ -36163,268 +36163,268 @@ msgstr ""
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr ""
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "type is not compatible with its variant"
 msgstr "тврдња: %s је доделом сагласно са %s"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qT is not a template type"
 msgid "type %s is not an opaque type"
 msgstr "%qT није шаблонски тип"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "type %s is not with opaque mode"
 msgstr "тип %qT није непосредна основа од %qT"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 #| msgid "environment variable DJGPP not defined"
 msgid "main variant is not defined"
 msgstr "променљива окружења DJGPP није дефинисана"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs has non-integer type"
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "величина низа %qs има нецелобројни тип"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has an incomplete type"
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "%qD има непотпун тип"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -36662,7 +36662,7 @@ msgstr "%Jдефиниције алијаса нису подржане у ов
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "атрибут видљивости није подржан у овој конфигурацији, игноришем"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -36891,7 +36891,7 @@ msgstr "атрибут %qE се игнорише јер је %qT већ дефи
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "атрибут %qE се игнорише јер је %qT већ дефинисан"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "атрибут %qE има утицаја само у јавним објектима"
@@ -37096,7 +37096,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "атрибут %qs примењује се само на променљиве"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for local variables"
@@ -37458,7 +37458,7 @@ msgstr "%qD није декларисано у %qD"
 msgid "%qE argument is not a function"
 msgstr "чистачки аргумент није функција"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a constant"
 msgid "deprecated message is not a string"
@@ -38007,7 +38007,7 @@ msgstr "ИСО Ц++ забрањује примену %<__alignof%> на изр
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "new се не може применити на функцијиски тип"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "неисправна примена %qs на празан тип"
@@ -38148,17 +38148,17 @@ msgstr ""
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr ""
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "премало аргумената за функцију %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -38298,133 +38298,133 @@ msgstr "покушај узимања адресе битског поља %qD 
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is too large"
 msgid "size of array is too large"
 msgstr "величина низа %qs је превелика"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible type for argument %d of %qE"
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "несагласни тип за аргумент %d у %qE"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE makes pointer from integer without a cast"
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "прослеђивање аргумента %d од %qE прави показивач од целобројног без претапања"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 #| msgid "types are not quite compatible"
 msgid "both arguments must be compatible"
 msgstr "типови нису сасвим сагласни"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %qE"
 msgid "incorrect number of arguments to function %qE"
 msgstr "премало аргумената за функцију %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs must be a 2-bit unsigned literal"
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "аргумент за %qs мора бити двобитна неозначена константа"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic on pointer to an incomplete type"
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "аритметика са показивачем на непотпун тип"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfirst argument of %D must be a pointer, second integer constant"
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "%Hпрви аргумент за %D мора бити показивач, а други целобројна константа"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfirst argument of %D must be a pointer, second integer constant"
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "%Hпрви аргумент за %D мора бити показивач, а други целобројна константа"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE from incompatible pointer type"
 msgid "argument %d of %qE must be a pointer type"
 msgstr "прослеђивање аргумента %d од %qE из несагласног показивачког типа"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE might be a candidate for a format attribute"
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "аргумент %d од %qE може бити кандидат за форматски атрибут"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE makes integer from pointer without a cast"
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "прослеђивање аргумента %d од %qE прави целобројни од показивача без претапања"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, fuzzy, gcc-internal-format
 #| msgid "Type/rank mismatch in argument '%s' at %L"
 msgid "size mismatch in argument %d of %qE"
 msgstr "Неслагање типа/ранга у аргументу ‘%s’ код %L"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE makes integer from pointer without a cast"
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "прослеђивање аргумента %d од %qE прави целобројни од показивача без претапања"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards qualifiers from pointer target type"
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "прослеђивање аргумента %d од %qE одбацује одредбе са циљног типа показивача"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE might be a candidate for a format attribute"
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "аргумент %d од %qE може бити кандидат за форматски атрибут"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards qualifiers from pointer target type"
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "прослеђивање аргумента %d од %qE одбацује одредбе са циљног типа показивача"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible type for argument %d of %qE"
 msgid "non-integer memory model argument %d of %qE"
 msgstr "несагласни тип за аргумент %d у %qE"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument of %qs"
 msgid "invalid memory model argument %d of %qE"
 msgstr "неисправан аргумент типа за %qs"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, fuzzy, gcc-internal-format
 #| msgid "index in dimension %d is out of bounds at %L"
 msgid "index value is out of bound"
 msgstr "Индекс у димензији %d је ван граница код %L"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from %qT to %qT is ambiguous"
 msgid "conversion of scalar %qT to vector %qT involves truncation"
@@ -38432,59 +38432,59 @@ msgstr "двосмислено претварање из %qT у %qT"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D used but never defined"
 msgid "built-in function %qE must be directly called"
 msgstr "уткана функција %q+D употребљена али недефинисана"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "size of array %qE is not a constant expression"
 msgstr "величина низа %qD није интегралан констатан израз"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "size of array is not a constant expression"
 msgstr "величина низа није интегралан констатан израз"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is negative"
 msgid "size %qE of array %qE is negative"
 msgstr "величина низа %qs је негативна"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array is negative"
 msgstr "негативна величина низа"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is negative"
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "величина низа %qs је негативна"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -39152,7 +39152,7 @@ msgstr "целобројна константа превелика за тип %
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "целобројна константа превелика за тип %qs"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<_BitInt(%d)%> is not supported on this target"
@@ -39238,7 +39238,7 @@ msgstr ""
 msgid "traditional C rejects string constant concatenation"
 msgstr "традиционални Ц одбија надовезивање константних ниски"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -39294,7 +39294,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr ""
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid type for iteration variable %qE"
 msgid "invalid type for iteration variable %qE"
@@ -39312,19 +39312,19 @@ msgstr "%Hнеисправан тип променљиве итерације %q
 msgid "%qE is not initialized"
 msgstr "%H%qE није успостављено"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, fuzzy, gcc-internal-format
 #| msgid "%Hmissing controlling predicate"
 msgid "missing controlling predicate"
 msgstr "%Hнедостаје контролишући предикат"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid controlling predicate"
 msgid "invalid controlling predicate"
 msgstr "%Hнеисправан контролишући предикат"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, fuzzy, gcc-internal-format
 #| msgid "%Hmissing increment expression"
 msgid "missing increment expression"
@@ -39335,7 +39335,7 @@ msgstr "%Hнедостаје израз увећања"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid increment expression"
 msgid "invalid increment expression"
@@ -39428,7 +39428,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -39439,7 +39439,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qD није шаблон функције"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr ""
@@ -40093,7 +40093,7 @@ msgid "wrong type argument to %s"
 msgstr "погрешан тип аргумента за abs"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -41130,35 +41130,35 @@ msgstr "поређење између %q#T и %q#T"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -41389,117 +41389,117 @@ msgstr "-mregparm=%d није између 0 и %d"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -41935,12 +41935,12 @@ msgstr ""
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr ""
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr ""
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 #| msgid "junk at end of #pragma GCC java_exceptions"
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
@@ -42569,7 +42569,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -42650,12 +42650,12 @@ msgid "unknown tuning option (%s)"
 msgstr "непозната функција навода ‘%s’"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -42667,7 +42667,7 @@ msgid "specify a system register with a small string length"
 msgstr "Одредите редослед резервисања регистара"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "%qs is not a valid offset in %qs"
@@ -42858,9 +42858,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, fuzzy, gcc-internal-format
 #| msgid "alias argument not a string"
 msgid "attribute %<target%> argument not a string"
@@ -42916,19 +42916,19 @@ msgid "virtual function multiversioning not supported"
 msgstr "израз ограничења стека није подржан"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_eh_return not supported on this target"
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "__builtin_eh_return није подржан на овом циљу"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -42941,8 +42941,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported simdlen %wd"
@@ -42954,7 +42954,7 @@ msgstr "неподржана комбинација: %s"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "-fPIC тренутно није подржано на 68000 и 68010"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr ""
@@ -42965,7 +42965,7 @@ msgstr ""
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "-fPIC тренутно није подржано на 68000 и 68010"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 #| msgid "Invalid argument type %qs to %qs"
 msgid "unsupported argument type %qT for simd"
@@ -43067,8 +43067,8 @@ msgstr "Кашњење L%d оставе непознато за %s"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "лоша вредност %qs за -mmemory-latency"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "лош уграђени fcode"
@@ -43199,18 +43199,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "аргумент атрибута %qs није „ilink1“ или „ilink2“"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -43334,7 +43334,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "аргумент атрибута %qs није константна ниска"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qE attribute allows only an integer constant argument"
@@ -43358,24 +43358,24 @@ msgstr "атрибут %qs је примењив само на функцијс
 msgid "argument of %qE attribute ignored"
 msgstr "атрибут %qE се игнорише"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to variables"
 msgid "%qE attribute only applies to variables"
 msgstr "атрибут %qs примењује се само на променљиве"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr ""
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr ""
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 #| msgid "invalid lvalue in asm output %d"
 msgid "invalid type for %<asm%> flag output"
@@ -43637,7 +43637,7 @@ msgstr "циљни ЦПУ не подржава инструкције Тамб
 msgid "target CPU does not support unaligned accesses"
 msgstr "циљни ЦПУ не подржава интерворкинг"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "This architecture does not support branch protection instructions"
@@ -43694,7 +43694,7 @@ msgstr "граница величине структура може бити п
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "%<-G%> није сагласно са %<-mabicalls%>"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 #| msgid "code model %s not supported in PIC mode"
 msgid "FDPIC mode is not supported in Thumb-1 mode"
@@ -43809,7 +43809,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -43853,44 +43853,44 @@ msgstr "атрибут %qE има утицаја само у јавним обј
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "атрибут %qs је примењив само на функцијске типове"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "не могу да срачунам стварну локацију параметра на стеку"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected end of module"
 msgid "Unexpected thumb1 far jump"
 msgstr "Неочекиван крај модула"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "нема доступних ниских регистара за подизање високих регистара"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "сервисне рутине прекида не могу бити кодиране у режиму Тамба"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute %qE"
 msgid "invalid fpu for target attribute or pragma %qs"
@@ -43899,24 +43899,24 @@ msgstr "неисправан тип вектора за атрибут %qE"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute %qE"
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "неисправан тип вектора за атрибут %qE"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown target attribute or pragma %qs"
 msgstr "непознато име регистра: %s"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "%<asm%> flags not supported in thumb1 mode"
@@ -43978,173 +43978,173 @@ msgstr ""
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "нема имена класе наведеног помоћу %qs"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fpic%> is not supported"
 msgstr "-pipe није подржано"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fPIC%> is not supported"
 msgstr "-pipe није подржано"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fpie%> is not supported"
 msgstr "-pipe није подржано"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fPIE%> is not supported"
 msgstr "-pipe није подржано"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 #| msgid "-G and -static are mutually exclusive"
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "-G и -static су међусобно искључиви"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot have default arguments"
 msgid "%qs function cannot have arguments"
 msgstr "%qD не може имати подразумеване аргументе"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, fuzzy, gcc-internal-format
 #| msgid "Function does not return a value"
 msgid "%qs function cannot return a value"
 msgstr "Функција не враћа вредност"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, fuzzy, gcc-internal-format
 #| msgid "%qs appears to be a misspelled signal handler"
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs изгледа као погрешно написан руковалац сигналима"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Number of registers used to pass integer arguments"
 msgid "fixed register %s used to pass parameter to function"
 msgstr "Број регистара који се користи за прослеђивање целобројних аргумената"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, fuzzy, gcc-internal-format
 #| msgid "weak declaration of %q+D not supported"
 msgid "writing to address space %qs not supported"
 msgstr "слаба декларација %q+D није подржана"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to variables"
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "атрибут %qs примењује се само на променљиве"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variadic functions"
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "атрибут %qE је примењив само на варијадичке функције"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr ""
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to variables"
 msgid "%qE attribute on non-volatile variable"
 msgstr "атрибут %qs примењује се само на променљиве"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr ""
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr ""
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr ""
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr ""
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr ""
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr ""
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 #| msgid "only uninitialized variables can be placed in the .noinit section"
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "само неуспостављене променљиве могу се сместити у одељак .noint"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, fuzzy, gcc-internal-format
 #| msgid "only initialized variables can be placed into program memory area"
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "само успостављене променљиве могу се сместити у меморијску област програма"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, fuzzy, gcc-internal-format
 #| msgid "only initialized variables can be placed into program memory area"
 msgid "uninitialized variable %q+D put into program memory area"
@@ -44154,48 +44154,48 @@ msgstr "само успостављене променљиве могу се с
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 #| msgid "variable %qD may not have been initialized"
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "променљива %qD можда није успостављена"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, fuzzy, gcc-internal-format
 #| msgid "%qs incompatible attribute ignored"
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%qs несагласан атрибут игнорисан"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, fuzzy, gcc-internal-format
 #| msgid "MCU %qs supported for assembler only"
 msgid "architecture %qs supported for assembler only"
 msgstr "МЦУ %qs подржан само за асемблер"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, fuzzy, gcc-internal-format
 #| msgid "Conversion from %s to %s at %L"
 msgid "conversion from address space %qs to address space %qs"
 msgstr "Претварање из %s у %s код %L"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected end of module in string constant"
 msgid "%s expects a compile time integer constant"
 msgstr "Неочекиван крај модула у константној ниски"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "атрибут %qs захтева целобројну константу као аргумент"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -44351,7 +44351,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "Уткане функције Ц-а 99 нису подржане; користим Гну 89"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, fuzzy, gcc-internal-format
@@ -45049,8 +45049,8 @@ msgstr "аргумент за %qs мора бити двобитна неозн
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "code model %s not supported in PIC mode"
 msgid "code model %s does not support PIC mode"
@@ -45124,278 +45124,278 @@ msgstr "нема имена класе наведеног помоћу %qs"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, fuzzy, gcc-internal-format
 #| msgid "64-bit ABI not supported in ESA/390 mode"
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "64-битни АБИ није подржан у режиму ЕСЕ/390"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, fuzzy, gcc-internal-format
 #| msgid "-mtune=x86-64 is deprecated.  Use -mtune=k8 or -mtune=generic instead as appropriate."
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "-mtune=x86-64 је превазиђено. Користите -mtune=k8 или -mtune=generic уместо тога."
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, fuzzy, gcc-internal-format
 #| msgid "-mtune=x86-64 is deprecated.  Use -mtune=k8 or -mtune=generic instead as appropriate."
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "-mtune=x86-64 је превазиђено. Користите -mtune=k8 или -mtune=generic уместо тога."
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-mcmodel= није подржано на 32-битним системима"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "-fdata-sections није подржано за овај циљ"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "-mcmodel= није подржано на 32-битним системима"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "модела кôда %qs није подржан у %s-битном режиму"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "модела кôда %qs није подржан у %s-битном режиму"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, fuzzy, gcc-internal-format
 #| msgid "code model %s not supported in PIC mode"
 msgid "code model %qs not supported in x32 mode"
 msgstr "модела кôда %s није подржан у ПИЦ режиму"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 #| msgid "-m%s not supported in this configuration"
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "-m%s није подржано у овој конфигурацији"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "%i-битни режим није укомпилован"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, fuzzy, gcc-internal-format
 #| msgid "generic CPU can be used only for -mtune= switch"
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "генерички ЦПУ може бити употребљен само за прекидач -mtune="
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, fuzzy, gcc-internal-format
 #| msgid "generic CPU can be used only for -mtune= switch"
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "генерички ЦПУ може бити употребљен само за прекидач -mtune="
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, fuzzy, gcc-internal-format
 #| msgid "generic CPU can be used only for -mtune= switch"
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "генерички ЦПУ може бити употребљен само за прекидач -mtune="
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, fuzzy, gcc-internal-format
 #| msgid "generic CPU can be used only for -mtune= switch"
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "генерички ЦПУ може бити употребљен само за прекидач -mtune="
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "ЦПУ који сте изабрали не подржава скуп инструкција икс86-64"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "лоша вредност (%s) за прекидач -march="
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "лоша вредност (%s) за прекидач -march="
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "лоша вредност (%s) за прекидач -march="
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "неисправан аргумент за атрибут %qs"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -mtune= switch"
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "лоша вредност (%s) за прекидач -mtune="
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -mtune= switch"
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "лоша вредност (%s) за прекидач -mtune="
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 #| msgid "Invalid argument %qs for %<instanceof%>"
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "Неисправан аргумент %qs за %<instanceof%>"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "неисправан аргумент за атрибут %qs"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm=%d is not between 0 and %d"
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "-mregparm=%d није између 0 и %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr ""
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, fuzzy, gcc-internal-format
 #| msgid "-mrtd calling convention not supported in the 64bit mode"
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "конвенција позивања -mrtd није подржана у 64-битном режиму"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -45403,318 +45403,318 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 #| msgid "-fprefetch-loop-arrays not supported for this target"
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "-fprefetch-loop-arrays није подржано за овај циљ"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d није између %d и 12"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mpreferred-stack-boundary=%d није између %d и 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "-march=%s није сагласно са изабраним АБИјем"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "унутармодулске оптимизације нису имплеметиране за Ц++"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, fuzzy, gcc-internal-format
 #| msgid "-msseregparm used without SSE enabled"
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "-msseregparm употребљено без укључених ССЕ инструкција"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, fuzzy, gcc-internal-format
 #| msgid "-msseregparm used without SSE enabled"
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "-msseregparm употребљено без укључених ССЕ инструкција"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "скуп ССЕ инструкција искључен, користим 387 аритметику"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "скуп 387 инструкција искључен, користим ССЕ аритметику"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, fuzzy, gcc-internal-format
 #| msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "табеле одмотавања тренутно захтевају или показивач оквира или -maccumulate-outgoing-args за исправност"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, fuzzy, gcc-internal-format
 #| msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "табеле одмотавања тренутно захтевају или показивач оквира или -maccumulate-outgoing-args за исправност"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring unknown option %q.*s in %<-fdump-%s%>"
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "игноришем непознату опцију %q.*s у %<-fdump-%s%>"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 #| msgid "-fstack-protector not supported for this target"
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "-fstack-protector није подржано за овај циљ"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and cdecl attributes are not compatible"
 msgid "interrupt and naked attributes are not compatible"
 msgstr "атрибути stdcall и cdecl нису сагласни"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and cdecl attributes are not compatible"
 msgid "%qs and %qs attributes are not compatible"
 msgstr "атрибути stdcall и cdecl нису сагласни"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s и -mcall-%s нису сагласни"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s и -mcall-%s нису сагласни"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "атрибути fastcall и regparm нису сагласни"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, fuzzy, gcc-internal-format
 #| msgid "fastcall and stdcall attributes are not compatible"
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "атрибути fastcall и stdcall нису сагласни"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qE attribute requires an integer constant argument"
 msgstr "атрибут %qs захтева целобројну константу као аргумент"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs attribute larger than %d"
 msgid "argument to %qE attribute larger than %d"
 msgstr "аргумент за атрибут %qs већи од %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "атрибути fastcall и cdecl нису сагласни"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "атрибути fastcall и stdcall нису сагласни"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, fuzzy, gcc-internal-format
 #| msgid "fastcall and stdcall attributes are not compatible"
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "атрибути fastcall и stdcall нису сагласни"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "атрибути stdcall и cdecl нису сагласни"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "атрибути stdcall и fastcall нису сагласни"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and fastcall attributes are not compatible"
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "атрибути stdcall и fastcall нису сагласни"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and fastcall attributes are not compatible"
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "атрибути stdcall и fastcall нису сагласни"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on non-class types"
 msgid "%qE attribute is used for non-class method"
 msgstr "атрибут %qE се игнорише на не-класним типовима"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, fuzzy, gcc-internal-format
 #| msgid "%qs incompatible attribute ignored"
 msgid "%qE incompatible attribute ignored"
 msgstr "%qs несагласан атрибут игнорисан"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to variables"
 msgid "%qE attribute only available for 32-bit"
 msgstr "атрибут %qs примењује се само на променљиве"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "аргумент атрибута %qs није константна ниска"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qE attribute requires a string constant argument"
 msgstr "атрибут %qs захтева целобројну константу као аргумент"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "аргумент атрибута %qs није константна ниска"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "сервисне рутине прекида не могу бити кодиране у режиму Тамба"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "interrupt service routine must return %<void%>"
@@ -45922,48 +45922,48 @@ msgstr "неподржана величина операнда за прошир
 msgid "non-integer operand used with operand code %<z%>"
 msgstr ""
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, fuzzy, gcc-internal-format
 #| msgid "no low registers available for popping high registers"
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "нема доступних ниских регистара за подизање високих регистара"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, fuzzy, gcc-internal-format
 #| msgid "code model %<large%> not supported yet"
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "модела кôда %<large%> још увек није подржан"
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, fuzzy, gcc-internal-format
 #| msgid "%<-G%> is incompatible with %<-mabicalls%>"
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
@@ -45987,8 +45987,8 @@ msgstr "дефиниција статичког чланског податка
 msgid "malformed %<#pragma builtin%>"
 msgstr "лоше формирано уграђено #pragma"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "invalid argument of %qE attribute"
@@ -46052,13 +46052,13 @@ msgstr "PRINT_OPERAND: Непозната интерпункција „%c“"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "PRINT_OPERAND нулти показивач"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "argument 1 of __builtin_spe_predicate must be a constant"
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "аргумент 1 за __builtin_spe_predicate мора бити константа"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "failed to reclaim unneeded function"
 msgid "failed to expand built-in function"
@@ -46190,19 +46190,19 @@ msgstr "тврдња: %s је доделом сагласно са %s"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%s се не може користити овде у асемблеру"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "%Jатрибут одељка се не може навести за локалне променљиве"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "%Jатрибут одељка се не може навести за локалне променљиве"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 #| msgid "Duplicate %s attribute at %L"
 msgid "multiple %qE attribute"
@@ -46320,12 +46320,12 @@ msgstr "наведени вишеструки атрибути типа функ
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr ""
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "израз ограничења стека није подржан"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "%<-fexcess-precision=16%> is not supported on this target"
@@ -46368,7 +46368,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr ""
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires a single NTBS argument"
 msgid "%qE attribute requires a string argument"
@@ -46413,140 +46413,140 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "аргумент атрибута %qs није константна ниска"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "не могу да обрадим неусаглашене позиве за %qs"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr ""
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr ""
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, fuzzy, gcc-internal-format
 #| msgid "C99 inline functions are not supported; using GNU89"
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "Уткане функције Ц-а 99 нису подржане; користим Гну 89"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "%qs does not support MIPS16 code"
 msgstr "%s не подржава %s"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr ""
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr ""
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "неподржана комбинација: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, fuzzy, gcc-internal-format
 #| msgid "-%s conflicts with the other architecture options, which specify a %s processor"
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "-%s се коси са осталим опцијама архитектуре, које наводе процесор %s"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "-march=%s није сагласно са изабраним АБИјем"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, fuzzy, gcc-internal-format
 #| msgid "-mgp64 used with a 32-bit processor"
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "-mgp64 употребљено са 32-битним процесором"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, fuzzy, gcc-internal-format
 #| msgid "-mgp32 used with a 64-bit ABI"
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "-mgp32 употребљено са 64-битним АБИјем"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, fuzzy, gcc-internal-format
 #| msgid "-mgp64 used with a 32-bit ABI"
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "-mgp64 употребљено са 32-битним АБИјем"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, fuzzy, gcc-internal-format
 #| msgid "this target does not support %qs"
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "овај циљ не подржава %qs"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr ""
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr ""
@@ -46556,134 +46556,134 @@ msgstr ""
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "тврдња: %s је доделом сагласно са %s"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "циљни ЦПУ не подржава инструкције Тамба"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "циљни ЦПУ не подржава инструкције Тамба"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr ""
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs%s %s"
 msgstr "неподржана комбинација: %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs %s"
 msgstr "неподржана комбинација: %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, fuzzy, gcc-internal-format
 #| msgid "Generate position-independent code if possible (large mode)"
 msgid "cannot generate position-independent code for %qs"
 msgstr "Стварај положајно-независни кôд ако је могуће (велики режим)"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, fuzzy, gcc-internal-format
 #| msgid "Generate position-independent code if possible (large mode)"
 msgid "position-independent code requires %qs"
 msgstr "Стварај положајно-независни кôд ако је могуће (велики режим)"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, fuzzy, gcc-internal-format
 #| msgid "this target does not support %qs"
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "овај циљ не подржава %qs"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, fuzzy, gcc-internal-format
 #| msgid "this target does not support %qs"
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "овај циљ не подржава %qs"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, fuzzy, gcc-internal-format
 #| msgid "-mips3d requires -mpaired-single"
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "-mips3d захтева -mpaired-single"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, fuzzy, gcc-internal-format
 #| msgid "-frepo must be used with -c"
 msgid "%qs must be used with %qs"
 msgstr "-frepo мора бити коришћено уз -c"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, fuzzy, gcc-internal-format
 #| msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr "-mips3d и -mpaired-single морају бити употребљени са -mfp64 -mhard-float"
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "циљни ЦПУ не подржава инструкције Тамба"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr ""
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "циљни ЦПУ не подржава инструкције Тамба"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, fuzzy, gcc-internal-format
 #| msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr "-mips3d и -mpaired-single морају бити употребљени са -mfp64 -mhard-float"
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, fuzzy, gcc-internal-format
 #| msgid "Use the bit-field instructions"
 msgid "%qs requires branch-likely instructions"
 msgstr "Користи инструкције битског нивоа"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "циљни ЦПУ не подржава инструкције Тамба"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "профилисање функција мипса16"
@@ -47627,58 +47627,58 @@ msgstr ""
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "malformed %<target()%> attribute"
 msgstr "неисправан аргумент за атрибут %qs"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "malformed %<target(\"%s\")%> attribute"
@@ -47746,183 +47746,203 @@ msgstr "не може се претворити из типа %qT у %qT"
 msgid "capture by copy of RVV type %qT"
 msgstr ""
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %q+D declared as non-function"
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "уграђена функција %q+D декларисана као нефункција"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%D(%A)%>"
 msgid "no matching function call to %qE with empty arguments"
 msgstr "нема одговарајуће функције за позив %<%D(%A)%>"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr ""
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "алтивек аргумент прослеђен непрототипизираној функцији"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not \"ilink1\" or \"ilink2\""
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "аргумент атрибута %qs није „ilink1“ или „ilink2“"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not of type %qT"
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qE није типа %qT"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qs requires an integer constant"
 msgstr "атрибут %qs захтева целобројну константу као аргумент"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr ""
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "code model %qs with %qs"
 msgstr "модела кôда %qs није подржан у %s-битном режиму"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d није између %d и 12"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs није исправно за %qs"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs није исправно за %qs"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "%qs function cannot have different interrupt type"
 msgstr "%sчланска функција %qD не може имати кн-одредбу"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -48193,34 +48213,34 @@ msgstr ""
 msgid "builtin %qs only accepts 3 arguments"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE discards qualifiers from pointer target type"
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "прослеђивање аргумента %d од %qE одбацује одредбе са циљног типа показивача"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter combination for AltiVec intrinsic"
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "неисправна комбинација параметара за алтивек сопствену"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "%qs is not supported in this compiler configuration"
@@ -48264,30 +48284,23 @@ msgstr "неисправни операнди типова %qT и %qT за би
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "ГЦЦ вектор прослеђен упућивачем: нестандарно проширење АБИја, без јемства сагласности"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr ""
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "оквир стека превелик"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr ""
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 #| msgid "Use registers r2 and r5"
 msgid "%qs uses register r29"
 msgstr "Користи регистре r2 и r5"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr ""
@@ -48425,116 +48438,126 @@ msgstr "Потребан је позивом продрман циљни рег
 msgid "unknown option for %<%s=%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "нема профилисања 64-битног кôда за овај АБИ"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "не може се узети адреса од %<this%>, јер је д-вредносни израз"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "употреба %<long double%> у алтивек типовима није исправна"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "употреба логичких типова у алтивек типовима није исправна"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "употреба %<complex%> у алтивек типовима није исправна"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 #| msgid "use of decimal floating point types in AltiVec types is invalid"
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "употреба децималних реалних типова у алтивек типовима није исправна"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "употреба %<long%> у алтивек типовима није исправна у 64-битном кôду"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "превазиђена употреба %<long%> у алтивек; користите %<int%>"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<long long%> in AltiVec types is invalid"
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "употреба %<long long%> у алтивек типовима није исправна"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<double%> in AltiVec types is invalid"
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "употреба %<double%> у алтивек типовима није исправна"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 #| msgid "invalid abstract type %qT for %qE"
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "неисправан апстрактни тип %qT за %qE"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qE is not initialized"
 msgid "%s%qs%s is not allowed"
 msgstr "%H%qE није успостављено"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, fuzzy, gcc-internal-format
 #| msgid "spec '%s' is invalid"
 msgid "%s%qs%s is invalid"
 msgstr "навод ‘%s’ није исправан"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "Virtual function multiversioning not supported"
 msgstr "израз ограничења стека није подржан"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr ""
@@ -48582,7 +48605,7 @@ msgstr ""
 msgid "builtin %qs can only be used on vector types"
 msgstr "%qs може бити наведено само за функције"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr ""
@@ -48657,244 +48680,244 @@ msgstr "%qs је превазиђено"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "константан аргумент ван опсега за %qs"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "неисправан шаблонски аргумент %d"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "константан аргумент ван опсега за %qs"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "константан аргумент ван опсега за %qs"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 #| msgid "unresolved overload for Altivec builtin %qF"
 msgid "unresolved overloaded builtin"
 msgstr "неразрешено препуњавање за алтивек уграђено %qF"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, fuzzy, gcc-internal-format
 #| msgid "bad builtin fcode"
 msgid "bad builtin icode"
 msgstr "лош уграђени fcode"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to builtin function"
 msgid "invalid argument %d for builtin %qF"
 msgstr "неисправан аргумент за уграђену функцију"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "аргумент атрибута %qs није константна ниска"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "укупна величина локалних променљивих премашује ограничење архитектуре"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 #| msgid "frame size of %qs is "
 msgid "frame size of %qs is %wd bytes"
 msgstr "величина оквира за %qs је "
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs користи динамичко резервисање стека"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 #| msgid "nested function %qs declared %<extern%>"
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "угњеждена функција %qs декларисана као %<extern%>"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "64-битни АБИ није подржан у режиму ЕСЕ/390"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr ""
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Restrict the use of hardware floating-point instructions to 32-bit operations"
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "Ограничи употребу хардверских инструкција покретног зареза на 32-битне операције"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "Allow hardware floating-point instructions to cover both 32-bit and 64-bit operations"
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "Дозволи хардверским ФП инструкцијама да покрију и 32-битне и 64-битне операције"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, fuzzy, gcc-internal-format
 #| msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "-mbackchain -mpacked-stack -mhard-float нису подржани у комбинацији"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "величина стека мора бити већа од вредности браника стека"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "величина стека не сме бити већа од 64k"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, fuzzy, gcc-internal-format
 #| msgid "-mstack-guard implies use of -mstack-size"
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "-mstack-guard имплицира коришћење -mstack-size"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr ""
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 #| msgid "argument to \"%s\" should be a non-negative integer"
 msgid "arguments to %qs should be non-negative integers"
 msgstr "аргумент за „%s“ треба да је ненегативан цео број"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs attribute larger than %d"
 msgid "argument to %qs is too large (max. %d)"
 msgstr "аргумент за атрибут %qs већи од %d"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr ""
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "ограничења стека нису подржана на овом циљу"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 #| msgid "invalid option argument %qs"
 msgid "invalid cc output constraint: %qs"
 msgstr "неисправан аргумент опције %qs"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "mudflap: this language is not supported"
 msgid "multiple cc output constraints not supported"
 msgstr "блатобран: овај језик није подржан"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, fuzzy, gcc-internal-format
 #| msgid "asm-specifier for variable %qs conflicts with asm clobber list"
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "наводилац asm за променљиву %qs коси се са asm листом продрмавања"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operand output code"
 msgid "invalid type for cc output constraint"
@@ -49375,8 +49398,8 @@ msgstr "атрибут %qE се игнорише"
 msgid "attribute %qs applies to array types only"
 msgstr "атрибут %qs примењује се само на променљиве"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "празна вредност није игнорисана а требало би"
@@ -49455,7 +49478,7 @@ msgstr "тип низа %q+D довршен несагласно са импли
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "%qD је већ декларисано у овом досегу"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, fuzzy, gcc-internal-format
 #| msgid "original label is here"
 msgid "originally defined here"
@@ -49707,7 +49730,7 @@ msgstr "декларација %q+D заклања претходну не-пр
 msgid "declaration of %qD shadows a parameter"
 msgstr "декларација %q+D заклања параметар"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "декларација %qD заклања глобалну декларацију"
@@ -49717,7 +49740,7 @@ msgstr "декларација %qD заклања глобалну деклар
 msgid "declaration of %qD shadows a previous local"
 msgstr "декларација %qD заклања претходну локалну"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, fuzzy, gcc-internal-format
 #| msgid "%Jshadowed declaration is here"
 msgid "shadowed declaration is here"
@@ -49791,7 +49814,7 @@ msgstr "%H%qE недекларисано (прва употреба у овој
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "%H(Сваки недекларисани идентификатор пријављен је само једном"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "на етикету %qE упућено ван било које функције"
@@ -49828,7 +49851,7 @@ msgstr "скок у наредбени израз"
 msgid "duplicate label declaration %qE"
 msgstr "Удвостручена декларација етикете %qE"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "удвостручена етикета %qD"
@@ -49867,7 +49890,7 @@ msgstr "скок у наредбени израз"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%H%qE дефинисан као погрешна врста ознаке"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to function types"
 msgid "%qE attribute applied to %qD with void return type"
@@ -50023,12 +50046,12 @@ msgstr "ИСО Ц 90 не подржава деклараторе низова %
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%> није дозвољено другде осим у досегу прототипа функције"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%s%> not allowed to be specified in this context"
@@ -50039,7 +50062,7 @@ msgstr "%<this%> се не може употребити у овом конте
 msgid "%q+D is usually a function"
 msgstr "%q+D је обично функција"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, fuzzy, gcc-internal-format
 #| msgid "no previous declaration for %q+D"
 msgid "no previous declaration for %qD"
@@ -50122,7 +50145,7 @@ msgstr "не могу да ставим објекат са непостојан
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "неуспостављена константа %qD"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -50327,7 +50350,7 @@ msgstr "складишна класа наведена за параметар %
 msgid "storage class specified for unnamed parameter"
 msgstr "складишна класа наведена за параметар %qs"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "складишна класа наведена за име типа"
@@ -50400,7 +50423,7 @@ msgstr "декларација %qs као низа функција"
 msgid "declaration of type name as array of functions"
 msgstr "декларација %qs као низа функција"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "неисправна употреба структуре са флексибилним чланским низом"
@@ -50524,7 +50547,7 @@ msgstr "%qs декларисано као функција која враћа 
 msgid "function definition has qualified void return type"
 msgstr "дефиниција функције има одређен празан повратни тип"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "одредбе типова се игноришу на повратном типу функције"
@@ -50668,7 +50691,7 @@ msgstr "ИСО Ц забрањује константне или непосто
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "члан структуре или уније не може имати променљиво измењив тип"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "променљива или поље %qE декларисано празним"
@@ -50787,7 +50810,7 @@ msgstr "скок у досег идентификатора са променљ
 msgid "object with variably modified type must have no linkage"
 msgstr "објекат променљиво измењивог типа не може имати повезивост"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "декларација функције није прототип"
@@ -50882,18 +50905,18 @@ msgstr "угњеждена поновна дефиниција %<union %E%>"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "угњеждена поновна дефиниција %<struct %E%>"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr ""
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 #| msgid "unknown field %qE specified in initializer"
 msgid "%qT defined in underspecified object initializer"
 msgstr "непознато поље %qE наведено у успостављачу"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "декларација ништа не декларише"
@@ -50925,386 +50948,386 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "унија нема именованих чланова"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "унија нема чланова"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "структура нема именованих чланова"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "структура нема чланова"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member in union"
 msgid "flexible array member in union"
 msgstr "%Jфлексибилан члански низ у унији"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member not at end of struct"
 msgid "flexible array member not at end of struct"
 msgstr "%Jфлексибилан члански низ није на крају структуре"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member in union"
 msgid "flexible array member in a struct with no named members"
 msgstr "%Jфлексибилан члански низ у унији"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member not at end of struct"
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "%Jфлексибилан члански низ није на крају структуре"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is too large"
 msgid "type %qT is too large"
 msgstr "величина низа %qs је превелика"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr ""
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "унија не може бити учињена провидном"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 #| msgid "a member of a structure or union cannot have a variably modified type"
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "члан структуре или уније не може имати променљиво измењив тип"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "поновна дефиниција %<struct %E%>"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "угњеждена поновна дефиниција %<enum %E%>"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "поновљена декларација %<enum %E%>"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, fuzzy, gcc-internal-format
 #| msgid "specified mode too small for enumeral values"
 msgid "specified mode too small for enumerated values"
 msgstr "наведени режим је премали за набројиве вредности"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "вредности у набрајању премашују опсег највећег целог броја"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "вредности у набрајању премашују опсег највећег целог броја"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of %<enum %E%>"
 msgid "conflicting redefinition of enum %qT"
 msgstr "угњеждена поновна дефиниција %<enum %E%>"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "вредност набрајача за %qE није целобројна константа"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant"
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "вредност набрајача за %qE није целобројна константа"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "преливање у вредностима набрајача"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumerator value outside the range of underlying type"
 msgstr "вредности у набрајању премашују опсег највећег целог броја"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "enumerator value outside the range of %qs"
 msgstr "ИСО Ц ограничава вредности набрајача на опсег %<int%>"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ИСО Ц ограничава вредности набрајача на опсег %<int%>"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D given attribute noinline"
 msgid "inline function %qD given attribute %qs"
 msgstr "утканој функцији %q+D дат је атрибут noinline"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "повратни тип је непотпун тип"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "повратни тип спада на %<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, fuzzy, gcc-internal-format
 #| msgid "Warn about global functions without prototypes"
 msgid "%q+D defined as variadic function without prototype"
 msgstr "Упозори на глобалне функције без прототипа"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, fuzzy, gcc-internal-format
 #| msgid "no previous prototype for %q+D"
 msgid "no previous prototype for %qD"
 msgstr "нема претходног прототипа за %q+D"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D was used with no prototype before its definition"
 msgid "%qD was used with no prototype before its definition"
 msgstr "%q+D је употребљено без прототипа пре дефиниције"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D was used with no declaration before its definition"
 msgid "%qD was used with no declaration before its definition"
 msgstr "%q+D је употребљено без декларације пре дефиниције"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, fuzzy, gcc-internal-format
 #| msgid "return type of %q+D is not %<int%>"
 msgid "return type of %qD is not %<int%>"
 msgstr "повратни тип за %q+D није %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr ""
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is normally a non-static function"
 msgid "%qD is normally a non-static function"
 msgstr "%q+D је обично нестатичка функција"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, fuzzy, gcc-internal-format
 #| msgid "%Jold-style parameter declarations in prototyped function definition"
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "%Jстаровремска декларација параметара у дефиницији функције са прототипом"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, fuzzy, gcc-internal-format
 #| msgid "%Jtraditional C rejects ISO C style function definitions"
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "%Jтрадиционални Ц одбија дефиниције функција у стилу ИСО Ц-а"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr ""
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, fuzzy, gcc-internal-format
 #| msgid "%Jold-style function definition"
 msgid "old-style function definition"
 msgstr "%Jстаровремска дефиниција функције"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, fuzzy, gcc-internal-format
 #| msgid "%Jparameter name missing from parameter list"
 msgid "parameter name missing from parameter list"
 msgstr "%Jнедостаје име параметра у листи параметара"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a non-parameter"
 msgid "%qD declared as a non-parameter"
 msgstr "%q+D декларисано као не-параметарско"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, fuzzy, gcc-internal-format
 #| msgid "multiple parameters named %q+D"
 msgid "multiple parameters named %qD"
 msgstr "више параметара по имену %q+D"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D declared with void type"
 msgid "parameter %qD declared with void type"
 msgstr "параметар %q+D декларисан са празним типом"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, fuzzy, gcc-internal-format
 #| msgid "type of %q+D defaults to %<int%>"
 msgid "type of %qD defaults to %<int%>"
 msgstr "тип за %q+D спада на %<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D has incomplete type"
 msgid "parameter %qD has incomplete type"
 msgstr "параметар %q+D има непотпун тип"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, fuzzy, gcc-internal-format
 #| msgid "declaration for parameter %q+D but no such parameter"
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "декларација за параметар %q+D, али нема таквог"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "број аргумената не одговора уграђеном прототипу"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "број аргумената не одговара прототипу"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, fuzzy, gcc-internal-format
 #| msgid "%Hprototype declaration"
 msgid "prototype declaration"
 msgstr "%Hдекларација прототипа"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "унапређени аргумент %qD не одговара уграђеном прототипу"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "унапређени аргумент %qD не одговара прототипу"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "аргумент %qD не одговара уграђеном прототипу"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "аргумент %qD не одговара прототипу"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "нема повратне наредбе у функцији која враћа непразан тип"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD is initialized"
 msgid "parameter %qD set but not used"
 msgstr "параметар %qD је успостављен"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, fuzzy, gcc-internal-format
 #| msgid "%<for%> loop initial declaration used outside C99 mode"
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "Почетна декларација у %<for%> петљи употребљена ван режима Ц-а 99"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr ""
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ИСО Ц 90 не подржава деклараторе низова %<[*]%>"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of static variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "декларација статичке променљиве %q+D у почетној декларацији %<for%> петље"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "декларација спољашње променљиве %q+D у почетној декларацији %<for%> петље"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> декларисана у почетној декларацији %<for%> петље"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> декларисана у почетној декларацији %<for%> петље"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> декларисан у почетној декларацији %<for%> петље"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of non-variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "декларација не-променљиве %q+D у почетној декларацији %<for%> петље"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr ""
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration specifiers"
 msgid "duplicate %qE declaration specifier"
 msgstr "очекивани су наводиоци декларације"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "вишеструке складишне класе у наводиоцима декларације"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%qs used with %<auto%>"
@@ -51312,277 +51335,277 @@ msgstr "%<__thread%> употребљено уз %<auto%>"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%<__thread%> употребљено уз %<register%>"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "два или више типова података у наводиоцима декларације"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> је предуго за ГЦЦ"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ИСО Ц 90 не подржава %<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ИСО Ц 90 не подржава комплексне типове"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support saturating types"
 msgstr "ИСО Ц не подржава комплексне целобројне типове"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "удвостручено %qE"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ИСО Ц не подржава комплексне целобројне типове"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<__int%d%> is not supported on this target"
 msgstr "ограничења стека нису подржана на овом циљу"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support complex types"
 msgid "ISO C90 does not support boolean types"
 msgstr "ИСО Ц 90 не подржава комплексне типове"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support the %<%%%s%c%> %s format"
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "%s не подржава %<%%%s%c%> формат за %s"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "ограничења стека нису подржана на овом циљу"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support decimal floating point"
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ИСО Ц не подржава децимални покретни зарез"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "fixed-point types not supported for this target"
 msgstr "-fdata-sections није подржано за овај циљ"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support fixed-point types"
 msgstr "ИСО Ц не подржава комплексне целобројне типове"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "величина низа није интегралан констатан израз"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "величина низа %qD није интегралан констатан израз"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE није ни по дефиницији типа ни уграђени тип"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE није на почетку декларације"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%qE used with %<auto%>"
 msgstr "%<__thread%> употребљено уз %<auto%>"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<register%>"
 msgstr "%<__thread%> употребљено уз %<register%>"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qE used with %<typedef%>"
 msgstr "%<__thread%> употребљено уз %<typedef%>"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<constexpr%>"
 msgstr "%<__thread%> употребљено уз %<register%>"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "ISO C99 does not support %qE"
 msgstr "%s не подржава %s"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<long long%>"
 msgid "ISO C90 does not support %qE"
 msgstr "ИСО Ц 90 не подржава %<long long%>"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> пре %<extern%>"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> пре %<static%>"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%<__thread%> употребљено уз %<auto%>"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<extern%>"
 msgstr "%<__thread%> употребљено уз %<register%>"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%qE used with %qs"
 msgstr "%<__thread%> употребљено уз %qE"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr ""
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%qs used with %qE"
 msgstr "%<__thread%> употребљено уз %qE"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%<constexpr%> used with %qE"
 msgstr "%<__thread%> употребљено уз %qE"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, fuzzy, gcc-internal-format
 #| msgid "%<@try%> without %<@catch%> or %<@finally%>"
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<@try%> без %<@catch%> или %<@finally%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ИСО Ц не подржава да обичан %<complex%> значи %<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ИСО Ц 90 не подржава деклараторе низова %<[*]%>"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ИСО Ц не подржава комплексне целобројне типове"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 #| msgid "Fixed line length must be at least seven."
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "Фиксна дужина линије мора бити барем седам."
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support %<~%> for complex conjugation"
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ИСО Ц не подржава %<~%> за комплексну конјугацију"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, fuzzy, gcc-internal-format
 #| msgid "left shift count is negative"
 msgid "left shift of negative value"
 msgstr "негативан леви помак"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "негативан леви помак"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "негативан десни помак"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "леви помак >= од ширине типа"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "десни помак >= од ширине типа"
@@ -51614,7 +51637,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr ""
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected end of module"
 msgid "expected end of line"
@@ -51626,8 +51649,8 @@ msgstr "Неочекиван крај модула"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ИСО Ц забрањује празну изворну датотеку"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -51669,9 +51692,9 @@ msgstr "нема типа по имену %q#T у %q#T"
 msgid "unknown type name %qE"
 msgstr "непознато име регистра: %s"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "очекивани су наводиоци декларације"
@@ -51705,7 +51728,7 @@ msgstr ""
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "очекиван је идентификатор или %<(%>"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored for %qE"
 msgid "prefix attributes are ignored for methods"
@@ -51729,7 +51752,7 @@ msgstr "Очекивано је име атрибутског бита"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "атрибут одељка није допуштен за %q+D"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 #| msgid "section attribute not allowed for %q+D"
 msgid "%<assume%> attribute not followed by %<;%>"
@@ -51830,7 +51853,7 @@ msgstr "интегрални израз %qE није константа"
 msgid "static assertion failed: %E"
 msgstr "Тврдња КРИС-порта није прошла: "
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, fuzzy, gcc-internal-format
 #| msgid "CRIS-port assertion failed: "
 msgid "static assertion failed"
@@ -51909,10 +51932,10 @@ msgstr "неисправан шаблонски аргумент %d"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "очекиван је идентификатор"
@@ -52072,7 +52095,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -52082,8 +52105,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -52270,12 +52293,12 @@ msgstr "ИСО Ц забрањује изостављање средњег чл
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qD was declared here"
 msgid "first %<sizeof%> operand was declared here"
@@ -52445,7 +52468,7 @@ msgstr "ИСО Ц 90 не подржава деклараторе низова %
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "очекиван је израз"
@@ -52791,12 +52814,12 @@ msgstr "Очекивана је декларација класе или суч
 msgid "no type or storage class may be specified here,"
 msgstr "складишна класа наведена за %qs"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr ""
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing property attribute"
@@ -52807,61 +52830,61 @@ msgstr "недостаје атрибут Code"
 msgid "unknown property attribute %<%s%s%>"
 msgstr ""
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr ""
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr ""
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected %qE selector name"
 msgstr "очекивано је име класе"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr ""
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma omp flush%> може бити употребљено само у сложеним наредбама"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, fuzzy, gcc-internal-format
 #| msgid "%<continue%> must be in loop"
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<continue%> мора бити у оквиру петље"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp section%> може бити употребљено само у конструкцији %<#pragma omp sections%>"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<#pragma omp section%> може бити употребљено само у конструкцији %<#pragma omp sections%>"
@@ -52872,26 +52895,26 @@ msgstr "%<#pragma omp section%> може бити употребљено сам
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma omp flush%> може бити употребљено само у сложеним наредбама"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, fuzzy, gcc-internal-format
 #| msgid "for statement expected"
 msgid "for, while or do statement expected"
 msgstr "очекивана је наредба for"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%> мора бити прво"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "превише %qs одредби"
@@ -52908,73 +52931,73 @@ msgstr "израз за num_threads мора бити интегрални"
 msgid "expected %<)%> or %<,%>"
 msgstr "очекивано је %<,%> или %<;%>"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable"
 msgstr "%qD није променљива у одредби %qs"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is not a pointer variable"
 msgstr "%qD није шаблон"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "collapse argument needs positive constant integer expression"
 msgstr "поређење означених и неозначених целобројних израза"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<none%> or %<present%>"
 msgstr "очекивано је %<none%> или %<shared%>"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "очекивано је %<=%>, %<,%>, %<;%>, %<asm%> или %<__attribute__%>"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected constant logical expression"
 msgstr "очекиван је целобројни израз"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "очекивано је %<,%>, %<;%> или %<}%>"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<data%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<if%> clauses"
 msgstr "превише %qs одредби"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<if%> clauses without modifier"
 msgstr "превише %qs одредби"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -52998,25 +53021,25 @@ msgstr "вредност %<num_threads%> мора бити позитивна"
 msgid "%<num_tasks%> value must be positive"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<grainsize%> value must be positive"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<priority%> value must be non-negative"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "очекиван је целобројни израз"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, or %<||%>"
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
@@ -53028,108 +53051,108 @@ msgstr "очекивано је %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "очекивано је %<,%>, %<;%> или %<}%>"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr ""
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr ""
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%qs expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%qs value must be positive"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<static%> arguments"
 msgstr "превише %qs одредби"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected element"
 msgid "unexpected argument"
 msgstr "Неочекивани елемент"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute argument not an integer constant"
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "аргумент атрибута %qs није целобројна константа"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<self%> clauses"
 msgstr "превише %qs одредби"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "очекивано је %<none%> или %<shared%>"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<concurrent%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "очекивано је %<,%>, %<;%> или %<}%>"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with integer zero"
 msgid "ordered argument needs positive constant integer expression"
 msgstr "поређење уређености показивача са целобројном нулом"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, or %<||%>"
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "очекивано је %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%> или %<||%>"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, fuzzy, gcc-internal-format
 #| msgid "both %<long%> and %<void%> in declaration specifiers"
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "и %<long%> и %<void%> у наводиоцима декларације"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "распоред %<runtime%> не узима параметар %<chunk_size%>"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, fuzzy, gcc-internal-format
 #| msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "распоред %<runtime%> не узима параметар %<chunk_size%>"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "chunk size value must be positive"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "неисправна врста распореда"
@@ -53140,23 +53163,23 @@ msgstr "неисправна врста распореда"
 msgid "%<num_teams%> value must be positive"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<thread_limit%> value must be positive"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<allocator%> or %<align%>"
@@ -53168,23 +53191,23 @@ msgstr "очекивано је %<,%> или %<;%>"
 msgid "duplicate %qs modifier"
 msgstr "удвостручено %qs"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 #| msgid "multiple inline callers"
 msgid "multiple linear modifiers"
 msgstr "вишеструки уткани позивачи"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr ""
@@ -53205,70 +53228,70 @@ msgstr ""
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "тврдња: %s је доделом сагласно са %s"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 #| msgid "invalid schedule kind"
 msgid "invalid depend kind"
 msgstr "неисправна врста распореда"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 #| msgid "invalid schedule kind"
 msgid "invalid doacross kind"
 msgstr "неисправна врста распореда"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<always%> modifiers"
 msgstr "превише %qs одредби"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<close%> modifiers"
 msgstr "превише %qs одредби"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<present%> modifiers"
 msgstr "превише улазних датотека"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mask"
 msgid "invalid map kind"
 msgstr "неисправна маска"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "очекивано је %<none%> или %<shared%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr ""
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 #| msgid "invalid schedule kind"
 msgid "invalid dist_schedule kind"
@@ -53286,95 +53309,95 @@ msgstr "неисправна врста распореда"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "очекивано је %<,%>, %<;%> или %<}%>"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected an OpenACC clause"
 msgstr "очекивана је одредба %<#pragma omp%>"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs није исправно за %qs"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a nested class of %qT"
 msgid "%qs must be the first clause of %qs"
 msgstr "%qT није угњеждена класа у %qT"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected an OpenMP clause"
 msgstr "очекивана је одредба %<#pragma omp%>"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr ""
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr ""
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "декларација спољашње променљиве %q+D у почетној декларацији %<for%> петље"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<--%> on bool variable %qD"
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "неисправна употреба %<--%> на логичкој променљивој %qD"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, fuzzy, gcc-internal-format
 #| msgid "Variable %qs is used more than once in the argument list of method %qs"
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr "Променљива %qs употребљена више од једном у листи аргумената метода %qs"
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "очекивано је %<,%> или %<;%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr ""
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -53391,7 +53414,7 @@ msgstr "%qD није декларисано"
 msgid "expected function name"
 msgstr "очекивано је име класе"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is not a function,"
 msgid "%qD does not refer to a function"
@@ -53402,23 +53425,23 @@ msgstr "%q+D није функција,"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr ""
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<#pragma align%> мора да се јави пре декларације %D, игноришем"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr ""
@@ -53445,7 +53468,7 @@ msgstr ""
 msgid "modified here"
 msgstr "модификатор ‘E’"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr ""
@@ -53485,119 +53508,119 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "очекивано је %<:%>, %<,%>, %<;%>, %<}%> или %<__attribute__%>"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "очекивано је %<,%>, %<;%> или %<}%>"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many atomic clauses"
 msgstr "превише %qs одредби"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many memory order clauses"
 msgstr "превише %qs одредби"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr ""
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<(%> or end of line"
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "очекивано је %<(%> или крај линије"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operator for %<#pragma omp atomic%>"
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "неисправан оператор за %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "unexpected %<else%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operator for %<#pragma omp atomic%>"
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "неисправан оператор за %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operator for %<#pragma omp atomic%>"
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "неисправан оператор за %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "неисправан оператор за %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr ""
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "%<depobj%> expression is not lvalue expression"
@@ -53609,30 +53632,30 @@ msgstr "листа израза %s узима се као сложени изр
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "листа израза %s узима се као сложени израз"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "очекивано је %<=%>, %<,%>, %<;%>, %<asm%> или %<__attribute__%>"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "очекивано је %<,%>, %<;%> или %<}%>"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "очекивано је %<=%>, %<,%>, %<;%>, %<asm%> или %<__attribute__%>"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -53642,178 +53665,178 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr "очекивано је %<(%> или крај линије"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp flush%> може бити употребљено само у сложеним наредбама"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "очекивано је %<none%> или %<shared%>"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected %<#pragma omp scan%>"
 msgstr "очекивана је одредба %<#pragma omp%>"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp flush%> може бити употребљено само у сложеним наредбама"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "очекивано је успостављање или декларација итерације"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 #| msgid "not enough type information"
 msgid "not enough nested loops"
 msgstr "нема довољно података о типу"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "очекивана је наредба for"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, fuzzy, gcc-internal-format
 #| msgid "iteration variable %qs should not be firstprivate"
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "не би требало да променљива итерације %qs буде firstprivate"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp barrier%> може бити употребљено само у сложеним наредбама"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<for%> after %qs"
 msgstr "очекивано је %<,%> или %<;%>"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<point%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr ""
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma align%> мора да се јави пре декларације %D, игноришем"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 #| msgid "Expected attribute bit name"
 msgid "expected trait selector name"
 msgstr "Очекивано је име атрибутског бита"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr ""
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr ""
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 #| msgid "%<friend%> can only be specified inside a class"
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<friend%> може бити наведено само унутар класе"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<score%> argument must be non-negative"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected identifier or string literal"
 msgstr "очекивана је дословна ниска"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "property must be constant integer expression"
 msgstr "очекиван је целобројни израз"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -53821,311 +53844,311 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 #| msgid "code model %<large%> not supported yet"
 msgid "%<requires%> selector is not supported yet"
 msgstr "модела кôда %<large%> још увек није подржан"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected context selector set name"
 msgstr "очекивано је име класе"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<match%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is not a function,"
 msgid "variant %qD is not a function"
 msgstr "%q+D није функција,"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 #| msgid "elements of array %q#D have incomplete type"
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "елементи низа %q#D имају непотпун тип"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<target%>"
 msgstr "очекивано је %<{%>"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "очекивано је %<none%> или %<shared%>"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr ""
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr ""
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "очекивано је %<none%> или %<shared%>"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr ""
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp section%> or %<}%>"
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "очекивано је %<#pragma omp section%> или %<}%>"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<(%> or end of line"
 msgid "expected %<omp_priv%> or function-name"
 msgstr "очекивано је %<(%> или крај линије"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, fuzzy, gcc-internal-format
 #| msgid "expected identifier or %<(%>"
 msgid "expected function-name %<(%>"
 msgstr "очекиван је идентификатор или %<(%>"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "очекивано је %<=%>, %<,%>, %<;%>, %<asm%> или %<__attribute__%>"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "очекивано је %<=%>, %<,%>, %<;%>, %<asm%> или %<__attribute__%>"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has invalid type for %<reduction%>"
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "%qE има неисправан тип за %<reduction%>"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "очекивано је %<,%>, %<;%> или %<}%>"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %qs or %qs"
 msgstr "очекивано је %<,%> или %<;%>"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp barrier%> може бити употребљено само у сложеним наредбама"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected at least one assumption clause"
 msgstr "очекивана је одредба %<#pragma omp%>"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected directive name"
 msgstr "очекивано је име класе"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 #| msgid "unknown machine mode %qs"
 msgid "unknown assumption clause %qs"
 msgstr "непознат машински режим %qs"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected assumption clause"
 msgstr "очекивана је одредба %<#pragma omp%>"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE декларисано као нитно-локално после прве употребе"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "аутоматска променљива %qE не може бити нитно-локална"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "нитно-локално %qE има непотпун тип"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr ""
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, fuzzy, gcc-internal-format
 #| msgid "%Henclosing parallel"
 msgid "no closing brace"
@@ -54277,7 +54300,7 @@ msgstr "разрешавање %<void *%> показивача"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "индексирана вредност није ни низ ни показивач"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "индекс низа није целобројан"
@@ -54308,7 +54331,7 @@ msgstr "%qD декларисано као упућивач али није ус
 msgid "enum constant defined here"
 msgstr ""
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -54429,19 +54452,19 @@ msgstr "захтев за имплицтно претварање из %qT у %q
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "премало аргумената за функцију %qE"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, fuzzy, gcc-internal-format
 #| msgid "comparison with string literal results in unspecified behaviour"
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "поређење са дословном ниском резултује неодређеним понашањем"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between pointer and integer"
 msgid "comparison between pointer and zero character constant"
 msgstr "поређење између показивача и целобројног"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, fuzzy, gcc-internal-format
 #| msgid "casting %qT to %qT does not dereference pointer"
 msgid "did you mean to dereference the pointer?"
@@ -54468,7 +54491,7 @@ msgstr "показивач на функцију употребљен у оду
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "аритметика са показивачем на непотпун тип"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic on pointer to an incomplete type"
 msgid "arithmetic on pointer to an empty aggregate"
@@ -54789,7 +54812,7 @@ msgstr "претапање из показивача у целобројни р
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "претапање из функцијског позива типа %qT у непоклапајући тип %qT"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "претапање из целобројног у показивач различите величине"
@@ -54990,7 +55013,7 @@ msgstr "лева страна доделе може бити кандидат з
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "лева страна успостављања може бити кандидат за форматски атрибут"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "повратни тип може бити кандидат за форматски атрибут"
@@ -55212,12 +55235,12 @@ msgstr "успостављач за целобројну вредност је 
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "успостављање флексибилног чланског низа"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -55227,7 +55250,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr "низ неподесног типа успостављен константном ниском"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "неисправна употреба не-л-вредносног низа"
@@ -55259,7 +55282,7 @@ msgstr "елемент успостављача није константан"
 msgid "initializer element is not computable at load time"
 msgstr "елемент успостављача се не може израчунати при учитавању"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "непрозирни векторски типови не могу бити успостављени"
@@ -55274,7 +55297,7 @@ msgstr "сувишна група витичастих заграда на кр
 msgid "braces around scalar initializer"
 msgstr "витичасте заграде око скаларног успостављача"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "успостављање флексибилног чланског низа у угњежденом контексту"
@@ -55367,7 +55390,7 @@ msgstr "сувишни елементи у успостављачу структ
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "нестатичко успостављање флексибилног чланског низа"
@@ -55408,7 +55431,7 @@ msgstr "ИСО Ц забрањује %<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "не могу да претворим у показивачки тип"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "функција декларисана са %<noreturn%> има наредбу %<return%>"
@@ -55466,7 +55489,7 @@ msgstr "етикета %<default%> није у оквиру наредбе пр
 msgid "break statement not within loop or switch"
 msgstr "наредба искакања није у оквиру петље или прекидача"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -55512,28 +55535,28 @@ msgstr ""
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr ""
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr ""
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr ""
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %q#T and %q#T"
 msgid "comparison between types %qT and %qT"
 msgstr "поређење између типова %q#T и %q#T"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, fuzzy, gcc-internal-format
 #| msgid "comparing floating point with == or != is unsafe"
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
@@ -55610,31 +55633,31 @@ msgstr "употребљена вредност унијског типа где
 msgid "used vector type where scalar is required"
 msgstr "употребљена вредност структурног типа где се захтева скалар"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "очекивана је одредба %<#pragma omp%>"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD није променљива у одредби %qs"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not a variable in %qs clause"
@@ -55647,91 +55670,91 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "превише %qs одредби"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD није променљива у одредби %qs"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "low bound %qE of array section does not have integral type"
 msgstr "величина у низовном new мора бити интегралног типа"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "length %qE of array section does not have integral type"
 msgstr "величина у низовном new мора бити интегралног типа"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected single pointer in %qs clause"
 msgstr "очекивана је дословна ниска"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, fuzzy, gcc-internal-format
 #| msgid "Copy array sections into a contiguous block on procedure entry"
 msgid "array section is not contiguous in %qs clause"
 msgstr "Копирај одељке низа у непрекидан блок при улазу у процедуру"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have class type"
 msgid "%qE does not have pointer or array type"
 msgstr "%qE нема класни тип"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 #| msgid "throwing NULL, which has integral, not pointer type"
 msgid "iterator %qD has neither integral nor pointer type"
@@ -55742,19 +55765,19 @@ msgstr "баца се NULL, које има интегрални, а не пок
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr ""
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field %qs has invalid type"
 msgid "iterator %qD has const qualified type"
 msgstr "битско поље %qs има неисправан тип"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field %qD with non-integral type"
 msgid "iterator step with non-integral type"
 msgstr "битско поље %qD неинтегралног типа"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -55764,36 +55787,36 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, fuzzy, gcc-internal-format
 #| msgid "expression reference type error at %L"
 msgid "begin expression refers to outer iterator %qD"
 msgstr "грешка типа упућивача израза код %L"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 #| msgid "expression reference type error at %L"
 msgid "end expression refers to outer iterator %qD"
 msgstr "грешка типа упућивача израза код %L"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, fuzzy, gcc-internal-format
 #| msgid "expression reference type error at %L"
 msgid "step expression refers to outer iterator %qD"
 msgstr "грешка типа упућивача израза код %L"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected pointer in %qs clause"
 msgstr "очекивана је одредба %<#pragma omp%>"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr ""
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr ""
@@ -55825,7 +55848,7 @@ msgstr "Променљива %qs није дефинисана у типу %qs"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE има неисправан тип за %<reduction(%s)%>"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, fuzzy, gcc-internal-format
 #| msgid "No label definition found for %qs"
 msgid "user defined reduction not found for %qE"
@@ -55836,17 +55859,17 @@ msgstr "Није нађена дефиниција етикете за %qs"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE мора бити нитно-локално за %<copyin%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -55861,24 +55884,24 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr ""
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE није променљива у одредби %qs"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD се појављује више од једном у одредбама података"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in reduction clauses"
@@ -55891,33 +55914,33 @@ msgstr "%qE се појављује више од једном у одредба
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "%qD се појављује више од једном у одредбама података"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears both in data and map clauses"
 msgstr "%qD се појављује више од једном у одредбама података"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE није променљива у одредби %<firstprivate%>"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE није променљива у одредби %<lastprivate%>"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not a variable in %<aligned%> clause"
@@ -55940,7 +55963,7 @@ msgstr ""
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE се појављује више од једном у одредбама података"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not a variable in %<nontemporal%> clause"
@@ -55952,7 +55975,7 @@ msgstr "%qE није променљива у одредби %qs"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE се појављује више од једном у одредбама података"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not a variable in %<allocate%> clause"
@@ -55964,84 +55987,84 @@ msgstr "%qE није променљива у одредби %qs"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE се појављује више од једном у одредбама података"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression in array specification at %C"
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "Очекиван је израз у одредници низа код %C"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported map expression %qE"
 msgstr "неподржана комбинација: %s"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD се појављује више од једном у одредбама података"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD се појављује више од једном у одредбама података"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD није променљива у одредби %qs"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE није променљива у одредби %qs"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, fuzzy, gcc-internal-format
 #| msgid "%qE appears more than once in data clauses"
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE се појављује више од једном у одредбама података"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD није променљива у одредби %qs"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is not an argument in %<uniform%> clause"
@@ -56059,24 +56082,24 @@ msgstr "%s променљива %qs је приватна у спољашњем
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "тип уз векторско delete није ни показивачки ни низовни"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr ""
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %qs clauses on a task construct"
 msgstr "превише %qs одредби"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, fuzzy, gcc-internal-format
 #| msgid "%<-G%> is incompatible with %<-mabicalls%>"
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr "%<-G%> није сагласно са %<-mabicalls%>"
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE је предодређено као %qs за %qs"
@@ -56086,38 +56109,38 @@ msgstr "%qE је предодређено као %qs за %qs"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -56426,7 +56449,7 @@ msgstr "  за претварање из %qT у %qT"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  за претварање из %qT у %qT"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
@@ -56435,7 +56458,7 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -56782,621 +56805,621 @@ msgstr ""
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "набројиви и ненабројиви тип у условном изразу"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "%<%D(int)%> није декларисано за постфиксно %qs, покушавам смену префиксним оператором"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, fuzzy, gcc-internal-format
 #| msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "%<%D(int)%> није декларисано за постфиксно %qs, покушавам смену префиксним оператором"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 #| msgid "return type of %q+D is not %<int%>"
 msgid "return type of %qD is not %qs"
 msgstr "повратни тип за %q+D није %<int%>"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "поређење између %q#T и %q#T"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to %<(%T) (%A)%>"
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "нема поклапања за позив %<(%T) (%A)%>"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 #| msgid "call of %<(%T) (%A)%> is ambiguous"
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "двосмислен позив %<(%T) (%A)%>"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr ""
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is normally a non-static function"
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "%q+D је обично нестатичка функција"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, fuzzy, gcc-internal-format
 #| msgid "no corresponding deallocation function for `%D'"
 msgid "no corresponding deallocation function for %qD"
 msgstr "нема одговарајуће функције за ослобађање меморије за ‘%D’"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "нема погодног %<operator %s%> за %qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is private within this context"
 msgstr "у овом контексту"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "declared private here"
 msgstr "%q+D декларисано овде"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is protected within this context"
 msgstr "у овом контексту"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "declared protected here"
 msgstr "%q+D декларисано овде"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D is inaccessible"
 msgid "%q#D is inaccessible within this context"
 msgstr "%q+#D није приступно"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "прослеђивање NULL непоказивачком аргументу %P од %qD"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "  declared here"
 msgstr "%q+D декларисано овде"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "претварање у непоказивачки тип %qT из NULL"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qT to %qT for argument %qP to %qD"
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "не може се претворити %qT у %qT као аргумент %qP за %qD"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, fuzzy, gcc-internal-format
 #| msgid "converting NULL to non-pointer type"
 msgid "converting %<false%> to pointer type %qT"
 msgstr "претварање NULL у непоказивачки тип"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  успостављање аргумента %P од %qD"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, fuzzy, gcc-internal-format
 #| msgid "missing braces around initializer for %qT"
 msgid "too many braces around initializer for %qT"
 msgstr "недостају витичасте заграде око успостављача за %qT"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr ""
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr ""
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "неисправно претварање из %qT у %qT"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid conversion from %qH to %qI"
 msgstr "неисправно претварање из %qT у %qT"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, fuzzy, gcc-internal-format
 #| msgid "only declarations of constructors can be %<explicit%>"
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr "само декларације конструктора могу имати %<explicit%>"
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "неисправно претапање д-вредносног израза типа %qT у тип %qT"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "неисправно успостављање неконстантног упућивача типа %qT привременим типа %qT"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "неисправно успостављање неконстантног упућивача типа %qT привременим типа %qT"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 #| msgid "invalid initialization of reference of type %qT from expression of type %qT"
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "неисправно успостављање упућивача типа %qT изразом типа %qT"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr ""
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 #, fuzzy
 #| msgid "conversion from %qT to %qT discards qualifiers"
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "претварање из %qT у %qT одбацује одредбе"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 #| msgid "cannot bind bitfield %qE to %qT"
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "не може се повезати битско поље %qE са %qT"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "не може се повезати паковано поље %qE са %qT"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "не може се повезати д-вредност %qE са %qT"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 #, fuzzy
 #| msgid "request for implicit conversion from %qT to %qT not permitted in C++"
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "захтев за имплицтно претварање из %qT у %qT није дозвољен у Ц++у"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, fuzzy, gcc-internal-format
 #| msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "не могу се проследити објекти не-ПОД типа %q#T кроз %<...%>; позив ће искочити при извршавању"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "не може се декларисати упућивач на %q#T"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, fuzzy, gcc-internal-format
 #| msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "не могу се примати објекти не-ПОД типа %q#T кроз %<...%>; позив ће искочити при извршавању"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of default argument for %q#D"
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "поновљена дефиниција подразумеваног аргумента за %q#D"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, fuzzy, gcc-internal-format
 #| msgid "the default argument for parameter %d of %qD has not yet been parsed"
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "подразумевани аргумент за параметер %d у %qD још увек није рашчлањен"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "аргумент позива функције може бити кандидат за форматски атрибут"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr ""
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, fuzzy, gcc-internal-format
 #| msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "прослеђивање %qT као аргумента %<this%> у %q#D одбацује одредбе"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  у позиву %qD"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT није приступна основа од %qT"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, fuzzy, gcc-internal-format
 #| msgid "Missing arguments to %s intrinsic at %L"
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "Недостају аргументи за сопствено %s код %L"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "стварање показивача на члан некласног типа %qT"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use assignment or value-initialization instead"
 msgstr "додела (не успостављање) у декларацији"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use assignment instead"
 msgstr "користите #include уместо тога"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "стварање показивача на члан некласног типа %qT"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "додела (не успостављање) у декларацији"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use copy-assignment instead"
 msgstr "користите #include уместо тога"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%#qT declared here"
 msgstr "%q+D декларисано овде"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr ""
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructor delegates to itself"
 msgstr "конструктор не може бити виртуелан"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI"
 msgstr "не може се претворити %qT у %qT у %s"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "нема одговарајуће функције за позив %<%T::%s(%A)%#V%>"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "нема одговарајуће функције за позив %<%T::%s(%A)%#V%>"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "позив не-функције %qD"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr ""
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%D(%A)%>"
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "нема одговарајуће функције за позив %<%D(%A)%>"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "двосмислен позив препуњене %<%s(%A)%>"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no non-static data member named %qD"
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "%qT нема нестатички члански податак по имену %qD"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "returning a value from a constructor"
 msgid "pure virtual %q#D called from constructor"
 msgstr "враћање вредности из конструктора"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, fuzzy, gcc-internal-format
 #| msgid "returning a value from a destructor"
 msgid "pure virtual %q#D called from destructor"
 msgstr "враћање вредности из деструктора"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "чланска функција %qD не може се позвати без објекта"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "прослеђивање %qT бира %qT пре него %qT"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "ИСО Ц++ каже да је ово двосмислено, чак иако је најгоре претварање првог боље од најгорег претварања другог:"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "try making the operator a %<const%> member function"
 msgstr "%qD мора бити нестатичка чланска функција"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "бирам %qD пре него %qD"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 #| msgid "  for conversion from %qT to %qT"
 msgid "  for conversion from %qH to %qI"
 msgstr "  за претварање из %qT у %qT"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  зато што је редослед претварања за аргумент бољи"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, fuzzy, gcc-internal-format
 #| msgid "default argument specified in explicit specialization"
 msgid "default argument mismatch in overload resolution"
 msgstr "наведен подразумевани аргумент у експлицитној специјализацији"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, fuzzy, gcc-internal-format
 #| msgid "candidate 1:"
 msgid " candidate 1: %q#F"
 msgstr "кандидат 1:"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, fuzzy, gcc-internal-format
 #| msgid "candidate 2:"
 msgid " candidate 2: %q#F"
 msgstr "кандидат 2:"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ИСО Ц++ каже да је ово двосмислено, чак иако је најгоре претварање првог боље од најгорег претварања другог:"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "неисправно успостављање неконстантног упућивача типа %qT привременим типа %qT"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 #| msgid "invalid initialization of reference of type %qT from expression of type %qT"
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "неисправно успостављање упућивача типа %qT изразом типа %qT"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "possibly dangling reference to a temporary"
 msgstr "враћање упућивача на привремени"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, fuzzy, gcc-internal-format
 #| msgid "%s: definition of function '%s' not converted\n"
 msgid "explicit conversion function was not considered"
@@ -57450,7 +57473,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q+#D не може бити препуњено"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous declaration %q#D"
@@ -57919,7 +57942,7 @@ msgstr "%Jфлексибилан члански низ у иначе празн
 msgid "next member %q#D declared here"
 msgstr "  %q+#D декларисано овде"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "поновна дефиниција %q#T"
@@ -58061,7 +58084,7 @@ msgstr "неисправан апстрактни повратни тип за 
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
@@ -58105,7 +58128,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr ""
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -58124,7 +58147,7 @@ msgstr ""
 msgid "%q+E is not a constant expression"
 msgstr "Недостаје или неисправан константан израз"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
@@ -58146,7 +58169,7 @@ msgstr ""
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
@@ -58198,7 +58221,7 @@ msgstr "%qT је двосмислена основа за %qT"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
@@ -58341,20 +58364,20 @@ msgstr ""
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr ""
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "accessing uninitialized array element"
 msgstr "недостаје успостављач за члан %qD"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
 msgid "dereferencing a null pointer in %qE"
 msgstr "разрешавање %<void *%> показивача"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -58363,513 +58386,513 @@ msgstr "разрешавање %<void *%> показивача"
 msgid "%qE is not a constant expression"
 msgstr "Недостаје или неисправан константан израз"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot appear in a constant-expression"
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "%qD се не може јавити у константном изразу"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "accessing uninitialized member %qD"
 msgstr "недостаје успостављач за члан %qD"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr ""
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr ""
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "%qE није исправан шаблонски аргумент за тип %qT јер је показивач"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr ""
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr ""
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr ""
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "шаблонски параметар %qD типа %qT није дозвољен у интегралном константном изразу јер није интегралног или набројивог типа"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr ""
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr ""
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot be used in asm here"
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "%s се не може користити овде у асемблеру"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr ""
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, fuzzy, gcc-internal-format
 #| msgid "Missing or invalid constant expression"
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "Недостаје или неисправан константан израз"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "величина низа није интегралан констатан израз"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 #| msgid "called from here"
 msgid "allocated here"
 msgstr "позвано одавде"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "величина низа није интегралан констатан израз"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "величина низа %qD није интегралан констатан израз"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, fuzzy, gcc-internal-format
 #| msgid "array used as initializer"
 msgid "%qD used in its own initializer"
 msgstr "низ употребљен као успостављач"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a class"
 msgid "%q#D is not const"
 msgstr "%q#T није класа"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D is private"
 msgid "%q#D is volatile"
 msgstr "%q+#D је приватно"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot appear in a constant-expression"
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD се не може јавити у константном изразу"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, fuzzy, gcc-internal-format
 #| msgid "%qD was not declared in this scope"
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD није декларисано у овом досегу"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, fuzzy, gcc-internal-format
 #| msgid "expression in new-declarator must have integral or enumeration type"
 msgid "%qD does not have integral or enumeration type"
 msgstr "израз у декларатору new мора имати интегрални или набројиви тип"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D outside of class is not definition"
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "декларација %q#D изван класе није дефиниција"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr ""
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "statement is not a constant expression"
 msgstr "Лош тип у константном изразу"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "inline assembly is not a constant expression"
 msgstr "величина низа није интегралан констатан израз"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
 msgid "use of %qD"
 msgstr "неисправна употреба %qD"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "Лош тип у константном изразу"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 #| msgid "enumeral and non-enumeral type in conditional expression"
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "набројиви и ненабројиви тип у условном изразу"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "%s не може да се јави у константном изразу"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "шаблонски параметар %qD типа %qT није дозвољен у интегралном константном изразу јер није интегралног или набројивог типа"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr ""
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "шаблонски параметар %qD типа %qT није дозвољен у интегралном константном изразу јер није интегралног или набројивог типа"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "величина низа %qD није интегралан констатан израз"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr ""
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "%s не може да се јави у константном изразу"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 #| msgid "integral expression %qE is not constant"
 msgid "expression %qE is not a constant expression"
 msgstr "интегрални израз %qE није константа"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "%<goto%> is not a constant expression"
 msgstr "преливање у константном изразу"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "contract predicate is false in constant expression"
 msgstr "Лош тип у константном изразу"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a class template, got %qE"
 msgid "unexpected template-id %qE"
 msgstr "  очекивах шаблон класе, добих %qE"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, gcc-internal-format
 msgid "function concept must be called"
 msgstr ""
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "address of a call to %qs is not a constant expression"
 msgstr "величина низа %qD није интегралан констатан израз"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "unexpected expression %qE of kind %s"
 msgstr "очекиван је израз"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr ""
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr ""
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr ""
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "неисправно претапање д-вредносног израза типа %qT у тип %qT"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "Лош тип у константном изразу"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr ""
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "use of %<this%> in a constant expression"
 msgstr "Лош тип у константном изразу"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "Лош тип у константном изразу"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "new-expression is not a constant expression before C++20"
 msgstr "листа израза %s узима се као сложени израз"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "виртуелне функције не могу бити пријатељи"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr ""
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "Лош тип у константном изразу"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 #| msgid "Missing or invalid constant expression"
 msgid "division by zero is not a constant expression"
 msgstr "Недостаје или неисправан константан израз"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "%<delete[]%> is not a constant expression"
 msgstr "Лош тип у константном изразу"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 #| msgid "overflow in constant expression"
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "преливање у константном изразу"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, fuzzy, gcc-internal-format
 #| msgid "nonconstant array index in initializer"
 msgid "non-constant array initialization"
 msgstr "неконстантан индекс низа у успостављачу"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected end of file in '%s'"
 msgid "unexpected AST of kind %s"
@@ -59674,7 +59697,7 @@ msgstr "трећи аргумент за %<__builtin_prefetch%> мора бит
 msgid "no suspend point info for %qD"
 msgstr "нема претходног прототипа за %q+D"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -59696,23 +59719,23 @@ msgstr "показивачи нису дозвољени као вредност
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr ""
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
@@ -59734,76 +59757,76 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD није шаблонска функција"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "taking address of an immediate function %qD"
 msgstr "неисправна употреба нестатичке чланске функције %qD"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "величина низа %qD није интегралан констатан израз"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will always evaluate as %<true%>"
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "адреса за %qD ће увек бити израчуната као %<true%>"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "pack expansion of %qE attribute"
 msgstr "неисправан аргумент за атрибут %qs"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 #| msgid "parse error in template argument list"
 msgid "use fold expression in the attribute argument instead"
 msgstr "грешка у рашчлањивању листе шаблонских аргумената"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD није тип"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a type"
 msgid "%qD is not a class type"
 msgstr "%qD није тип"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have class type"
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qE нема класни тип"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have class type"
 msgid "%qD does not have integral type"
 msgstr "%qE нема класни тип"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -59856,7 +59879,7 @@ msgstr "неисправно успостављање неконстантног
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "претварање из %qT у %qT одбацује одредбе"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "претапање %qT у %qT не разрешава показивач"
@@ -60288,7 +60311,7 @@ msgstr "од претходне декларације %q+F"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "Декларација %qs заклања претходну декларацију етикете"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous declaration %qD"
@@ -60453,8 +60476,8 @@ msgstr "претходна нефункцијска декларација %q+#D
 msgid "%q#D previously defined here"
 msgstr "%q+#D претходно дефинисано овде"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously declared here"
 msgid "%q#D previously declared here"
@@ -60537,60 +60560,42 @@ msgstr "подразумевани аргумент дат за парамета
 msgid "previous specification in %q#D here"
 msgstr "после претходног навода у %q+#D"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-#| msgid "declaration of namespace %qD conflicts with"
-msgid "declaration %qD conflicts with builtin"
-msgstr "декларација именског простора %qD коси се са"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-#| msgid "declaration of namespace %qD conflicts with"
-msgid "declaration %qD conflicts with import"
-msgstr "декларација именског простора %qD коси се са"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-#| msgid "previous declaration %q+#D here"
-msgid "import declared %q#D here"
-msgstr "претходном декларацијом %q+#D овде"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting exporting for declaration %qD"
 msgstr "сукобљена декларација %q#D"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously declared here"
 msgid "previously declared here without exporting"
 msgstr "%q+#D претходно декларисано овде"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %q+D was here"
 msgid "previous definition of %qD here"
 msgstr "претходна дефиниција %q+D беше овде"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+D was here"
 msgid "previous declaration of %qD here"
 msgstr "претходна декларација %q+D беше овде"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 #| msgid "function declared %<noreturn%> has a %<return%> statement"
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "функција декларисана са %<noreturn%> има наредбу %<return%>"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "сувишна поновна декларација %qD у истом досегу"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 #| msgid "definition of %qD is not in namespace enclosing %qT"
 msgid "deleted definition of %qD is not first declaration"
@@ -60604,50 +60609,50 @@ msgstr "дефиниција %qD није у именском простору 
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "експлицитна специјализација %qD после прве употребе"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D: visibility attribute ignored because it"
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%q+D: атрибут видљивости игнорисан зато што"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %q#T"
 msgid "redefinition of %q#D"
 msgstr "поновна дефиниција %q#T"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D conflicts with previous using declaration %q#D"
 msgid "%qD conflicts with used function"
 msgstr "%q#D се коси са претходном декларацијом употребе %q#D"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not declared in %qD"
 msgid "%q#D not declared in class"
 msgstr "%qD није декларисано у %qD"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared inline after its definition"
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%q+D декларисано уткано после своје дефиниције"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared inline after its definition"
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%q+D декларисано уткано после своје дефиниције"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -60655,816 +60660,816 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot have default arguments"
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "%qD не може имати подразумеване аргументе"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, fuzzy, gcc-internal-format
 #| msgid "thread-local declaration of %q+D follows non-thread-local declaration"
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "нитно-локална декларација %q+D прати не-нитно-локалну декларацију"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, fuzzy, gcc-internal-format
 #| msgid "non-thread-local declaration of %q+D follows thread-local declaration"
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "не-нитно-локална декларација %q+D прати нитно-локалну декларацију"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D"
 msgid "redeclaration of %q#D"
 msgstr "декларација %q#D"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 #| msgid "redundant redeclaration of %qD in same scope"
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "сувишна поновна декларација %qD у истом досегу"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, gcc-internal-format
 msgid "previous label"
 msgstr ""
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "скок на етикету %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "скок на етикету случаја"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  одавде"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  излази из структуираног блока ОпенМПа"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 #| msgid "  crosses initialization of %q+#D"
 msgid "  crosses initialization of %q#D"
 msgstr "  пресеца успостављање %q+#D"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, fuzzy, gcc-internal-format
 #| msgid "  enters try block"
 msgid "  enters %<try%> block"
 msgstr "  улази у блок покушаја"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "  enters catch block"
 msgid "  enters %<catch%> block"
 msgstr "  улази у блок хватања"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  улази структуирани блок ОпенМПа"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 #| msgid "jump into statement expression"
 msgid "  enters statement expression"
 msgstr "скок у наредбени израз"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "  does not destroy %qD"
 msgstr "%s не подржава %s"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr ""
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 #| msgid "  skips initialization of %q+#D"
 msgid "  skips initialization of %q#D"
 msgstr "  прескаче успостављање %q+#D"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "%qD used without template arguments"
 msgstr "%qD употребљено без параметара шаблона"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "%qD није шаблон функције"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T није класа"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "нема шаблона класе по имену %q#T у %q#T"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "нема типа по имену %q#T у %q#T"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from %qT to %qT is ambiguous"
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "двосмислено претварање из %qT у %qT"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%> именује %q#T, што није шаблон класе"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 #| msgid "%<typename %T::%D%> names %q#T, which is not a type"
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%> именује %q#T, што није тип"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters do not match template"
 msgid "template parameters do not match template %qD"
 msgstr "параметри шаблона се не поклапају са шаблоном"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a power of 2"
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "захтевано равнање није степен двојке"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D invalid; an anonymous union can only have non-static data members"
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q+#D није исправно; анонимна унија може имати само нестатичке чланске податке"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous struct not inside named type"
 msgid "anonymous struct with base classes"
 msgstr "анонимна структура није унутар именованог типа"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "члан %q+#D са конструктором није дозвољен у анонимној скупини"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "члан %q+#D са деструктором није дозвољен у анонимној скупини"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "члан %q+#D са оператором копирања-доделе није дозвољен у анонимној скупини"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q+#T"
 msgid "attribute ignored in declaration of %q#T"
 msgstr "атрибут игнорисан у декларацији %q+#T"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, fuzzy, gcc-internal-format
 #| msgid "attribute for %q+#T must follow the %qs keyword"
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "атрибут за %q+#T мора пратити кључну реч %qs"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "вишеструки типови у једној декларацији"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "поновљена декларација Ц++ уграђеног типа %qT"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "%qs може бити наведено само за функције"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "недостаје име типа у наредби typedef"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ИСО Ц++ забрањује анонимне структуре"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<inline%> can only be specified for functions"
 msgstr "%qs може бити наведено само за функције"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<virtual%> can only be specified for functions"
 msgstr "%qs може бити наведено само за функције"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> може бити наведено само унутар класе"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "%<explicit%> може бити наведено само за конструкторе"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "складишна класа може бити наведена само за објекте и функције"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "одредбе могу бити наведене само за објекте и функције"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "одредбе могу бити наведене само за објекте и функције"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "одредбе могу бити наведене само за објекте и функције"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, fuzzy, gcc-internal-format
 #| msgid "a storage class can only be specified for objects and functions"
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "складишна класа може бити наведена само за објекте и функције"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, fuzzy, gcc-internal-format
 #| msgid "typedef declaration invalid in parameter declaration"
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "декларација typedef није исправна у декларацији параметра"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 #| msgid "Class %qs not found in type declaration"
 msgid "%qs cannot be used for type declarations"
 msgstr "Класа %qs не налази се у декларацији типа"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 #| msgid "attributes ignored on template instantiation"
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "атрибут се игнорише при извођењу шаблона"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "атрибут %qE може се применити само на дефиниције класа"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "атрибут %qE може се применити само на дефиниције класа"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr ""
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 #| msgid "typedef %qD is initialized (use __typeof__ instead)"
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "дефиниција типа %qD је успостављена (употребите __typeof__)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "декларација %q#D има %<extern%> и ипак је успостављена"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "дефиниција %q+D означена као %<dllimport%>"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D is not a non-static data member of %qT"
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q#D је нестатички члански податак у %qT"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "non-member-template declaration of %qD"
 msgstr "декларација шаблона %q#D"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 #| msgid "invalid member template declaration %qD"
 msgid "does not match member template declaration here"
 msgstr "неисправна декларација чланског шаблона %qD"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ИСО Ц++ не дозвољава да %<%T::%D%> буде дефинисано као %<%T::%D%>"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "удвостручено успостављање %qD"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "декларација %q#D изван класе није дефиниција"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "променљива %q#D има успостављач али је непотпуног типа"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "елементи низа %q#D имају непотпун тип"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "скупина %q#D има непотпун тип и не може се дефинисати"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD декларисано као упућивач али није успостављено"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, fuzzy, gcc-internal-format
 #| msgid "name %qD used in a GNU-style designated initializer for an array"
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "име %qD употребљено у успостављачу низа утврђеном као Гну-стил"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "име %qD употребљено у успостављачу низа утврђеном као Гну-стил"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "нетривијални утврђени успостављачи нису подржани"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "величина низа %qD није интегралан констатан израз"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "успостављач не одређује величину %qD"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "недостаје величина низа у %qD"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "низ %qD нулте величине"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, fuzzy, gcc-internal-format
 #| msgid "storage size of %q+D isn%'t known"
 msgid "storage size of %qD isn%'t known"
 msgstr "величина складишта за %q+D није позната"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, fuzzy, gcc-internal-format
 #| msgid "storage size of %q+D isn%'t constant"
 msgid "storage size of %qD isn%'t constant"
 msgstr "величина складишта за %q+D није константна"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, fuzzy, gcc-internal-format
 #| msgid "sorry: semantics of inline function static data %q+#D are wrong (you'll wind up with multiple copies)"
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "извините: семантика статичких података уткане функције %q+#D је погрешна (доћи ће до вишеструких копија)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, fuzzy, gcc-internal-format
 #| msgid "sorry: semantics of inline function static data %q+#D are wrong (you'll wind up with multiple copies)"
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "извините: семантика статичких података уткане функције %q+#D је погрешна (доћи ће до вишеструких копија)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, fuzzy, gcc-internal-format
 #| msgid "%J  you can work around this by removing the initializer"
 msgid "you can work around this by removing the initializer"
 msgstr "%J  можете ово заобићи уклањањем успостављача"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized const %qD"
 msgid "uninitialized %<const %D%>"
 msgstr "неуспостављена константа %qD"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, fuzzy, gcc-internal-format
 #| msgid "register variable %qD used in nested function"
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "регистарска променљива %qD употребљена у угњежденој функцији"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, fuzzy, gcc-internal-format
 #| msgid "%Juninitialized member %qD with %<const%> type %qT"
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "%Jнеуспостављени члан %qD са %<const%> типом %qT"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, fuzzy, gcc-internal-format
 #| msgid "type %qs has a user-defined constructor"
 msgid "%q#T has no user-provided default constructor"
 msgstr "тип %qs има кориснички дефинисан конструктор"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr ""
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "неисправан тип %qT као успостављач за вектор типа %qT"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "успостављач за %qT мора бити у витичастим заградама"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, fuzzy, gcc-internal-format
 #| msgid "name %qD used in a GNU-style designated initializer for an array"
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "име %qD употребљено у успостављачу низа утврђеном као Гну-стил"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "двосмислен захтев за чланом %qD"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT нема нестатички члански податак по имену %qD"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD није члан у %qT"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer for %q#D"
 msgstr "неисправан успостављач"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr ""
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "превише успостављача за %qT"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "витичасте заграде око скаларног успостављача за тип %qT"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer for type %qT"
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "витичасте заграде око скаларног успостављача за тип %qT"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "недостају витичасте заграде око успостављача за %qT"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %P has incomplete type %qT"
 msgid "structured binding has incomplete type %qT"
 msgstr "параметар %P непотпуног је типа %qT"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, fuzzy, gcc-internal-format
 #| msgid "elements of array %q#D have incomplete type"
 msgid "elements of array %q#T have incomplete type"
 msgstr "елементи низа %q#D имају непотпун тип"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 forbids compound literals"
 msgid "variable-sized compound literal"
 msgstr "ИСО Ц 90 забрањује сложене дословне ниске"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has incomplete type"
 msgid "%q#D has incomplete type"
 msgstr "%qD има непотпун тип"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "скаларни објекат %qD захтева један елемент у успостављачу"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be initialized by constructor, not by %<{...}%>"
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "%qD мора бити успостављен конструктором, не помоћу %<{...}%>"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "низ %qD успостављен заграђеном константном ниском %qE"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "успостављач неисправан за статички члан са конструктором"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "ИСО Ц++ забрањује успостављање унутар класе неконстантног статичког члана %qD"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "ИСО Ц++ забрањује успостављање унутар класе неконстантног статичког члана %qD"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(потребно је успостављање изван класе)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD is initialized"
 msgid "reference %qD is initialized with itself"
 msgstr "параметар %qD је успостављен"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 #| msgid "Class %qs not found in type declaration"
 msgid "could not find variant declaration"
 msgstr "Класа %qs не налази се у декларацији типа"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 #| msgid "%s: recursive invocation of constructor %qs"
 msgid "%<declare variant%> on constructor %qD"
 msgstr "%s: рекурзивно позивање конструктора %qs"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "%<declare variant%> on destructor %qD"
 msgstr "поновљена декларација набрајача %q+D"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template %q#D"
 msgid "%<declare variant%> on defaulted %qD"
 msgstr "декларација шаблона %q#D"
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template %q#D"
 msgid "%<declare variant%> on deleted %qD"
 msgstr "декларација шаблона %q#D"
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%<declare variant%> on virtual %qD"
 msgstr "%qD декларисано као %<virtual%> %s"
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "додела (не успостављање) у декларацији"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not allow designated initializers"
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ИСО Ц++ не дозвољава утврђене успостављаче"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for %qs"
 msgid "%<register%> storage class specifier used"
 msgstr "складишна класа наведена за %qs"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D has %<extern%> and is initialized"
 msgid "declaration of %q#D has no initializer"
 msgstr "декларација %q#D има %<extern%> и ипак је успостављена"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr ""
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "повратни тип %q#T није потпун"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "variable concept has no initializer"
 msgstr "објекат променљиве величине не може се успостављати"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "заклањање претходне декларације типа за %q#D"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr ""
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "функција %q#D успостављена као променљива"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, fuzzy, gcc-internal-format
 #| msgid "  cannot use obsolete binding at %q+D because it has a destructor"
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "  не може се користити застарело везивање код %q+D јер има деструктор"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is an inaccessible base of %qT"
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "%qT је неприступачна основа за %qT"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type %qT"
 msgid "structured binding refers to incomplete type %qT"
 msgstr "не може се %s показивач на непотпуни тип %qT"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare variable %q+D to be of abstract type %qT"
 msgid "cannot decompose variable length array %qT"
 msgstr "не може се декларисати променљива %q+D апстрактног типа %qT"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "initializer provided for function"
 msgid "%u name provided for structured binding"
@@ -61474,7 +61479,7 @@ msgstr[1] "успостављач дат за функцију"
 msgstr[2] "успостављач дат за функцију"
 msgstr[3] "успостављач дат за функцију"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
@@ -61483,7 +61488,7 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
@@ -61492,1923 +61497,1923 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to %q#T"
 msgid "cannot decompose variable length vector %qT"
 msgstr "не може се декларисати показивач на %q#T"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "величина низа није интегралан констатан израз"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, fuzzy, gcc-internal-format
 #| msgid "initialization string truncated to match variable at %L"
 msgid "in initialization of structured binding variable %qD"
 msgstr "успостављачка ниска подсечена да одговара променљивој код %L"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert type %qT to type %qT"
 msgid "cannot decompose union type %qT"
 msgstr "не може се претворити из типа %qT у %qT"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "стварање показивача на члан некласног типа %qT"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "cannot decompose address"
 msgid "cannot decompose lambda closure type %qT"
 msgstr "не могу да разложим адресу"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type %qT"
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "не може се %s показивач на непотпуни тип %qT"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to static data member %qD"
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "не могу применити %<offsetof%> на статички члански податак %qD"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr ""
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, fuzzy, gcc-internal-format
 #| msgid "initializer fails to determine size of %qD"
 msgid "initializer fails to determine size of %qT"
 msgstr "успостављач не одређује величину %qD"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "array size missing in %qD"
 msgid "array size missing in %qT"
 msgstr "недостаје величина низа у %qD"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 #| msgid "zero-size array %qD"
 msgid "zero-size array %qT"
 msgstr "низ %qD нулте величине"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "деструктор за туђинску класу %qT не може бити члан"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "конструктор за туђинску класу %qT не може бити члан"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD декларисано као %<virtual%> %s"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, fuzzy, gcc-internal-format
 #| msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "наводиоци функције %<const%> и %<volatile%> за %qD нису исправни у декларацији %s"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD декларисано као %<virtual%> %s"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as an %<inline%> %s"
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD декларисано као %<inline%> %s"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, fuzzy, gcc-internal-format
 #| msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "наводиоци функције %<const%> и %<volatile%> за %qD нису исправни у декларацији %s"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD декларисано као %<virtual%> %s"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as an %<inline%> %s"
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD декларисано као %<inline%> %s"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, fuzzy, gcc-internal-format
 #| msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "наводиоци функције %<const%> и %<volatile%> за %qD нису исправни у декларацији %s"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD декларисано као %<virtual%> %s"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as an %<inline%> %s"
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD декларисано као %<inline%> %s"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, fuzzy, gcc-internal-format
 #| msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in %s declaration"
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "наводиоци функције %<const%> и %<volatile%> за %qD нису исправни у декларацији %s"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D декларисано као пријатељ"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D декларисано са одредницом изузетака"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "дефиниција %qD није у именском простору који обухвата %qT"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "статичка чланска функција %q#D декларисана са одредбама типа"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a non-parameter"
 msgid "concept %q#D declared with function parameters"
 msgstr "%q+D декларисано као не-параметарско"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D declared with void type"
 msgid "concept %q#D declared with a deduced return type"
 msgstr "параметар %q+D декларисан са празним типом"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, fuzzy, gcc-internal-format
 #| msgid "Java method %qD has non-Java return type %qT"
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "јавански метод %qD има не-јавански повратни тип %qT"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "concept %qD has no definition"
 msgstr "декларација %qD као не-функције"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "a function concept cannot be constrained"
 msgstr "виртуелне функције не могу бити пријатељи"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template function"
 msgid "constraints on a non-templated function"
 msgstr "%qD није шаблонска функција"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "декларација пријатеља није у дефиницији класе"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "дефиниција експлицитне специјализације %qD у декларацији пријатеља"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "неисправна употреба ид. шаблона %qD у декларацији примарног шаблона"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "подразумевани аргументи нису дозвољени у декларацији пријатељске специјализације шаблона %qD"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "%<inline%> није дозвољено у декларацији пријатељске специјализације шаблона %qD"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D outside of class is not definition"
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "декларација %q#D изван класе није дефиниција"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "%<::main%> се не може декларисати као шаблон"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "%<::main%> се не може декларисати као уткано"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be static"
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "%<::main%> се не може декларисати као статичко"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "%<::main%> се не може декларисати као статичко"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "%sчланска функција %qD не може имати кн-одредбу"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "%sчланска функција %qD не може имати кн-одредбу"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "%sчланска функција %qD не може имати кн-одредбу"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "%sчланска функција %qD не може имати кн-одредбу"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "%sчланска функција %qD не може имати кн-одредбу"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "%sчланска функција %qD не може имати кн-одредбу"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "explicit object parameter declared here"
 msgstr "шаблонски параметарски тип %qT декларисан пријатељским"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr ""
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr ""
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "deduction guide %qD must not have a function body"
 msgstr "декларација %qD као не-функције"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, fuzzy, gcc-internal-format
 #| msgid "template with C linkage"
 msgid "literal operator with C linkage"
 msgstr "шаблон са Ц повезивошћу"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, fuzzy, gcc-internal-format
 #| msgid "invalid option argument %qs"
 msgid "%qD has invalid argument list"
 msgstr "неисправан аргумент опције %qs"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a non-member function"
 msgstr "%qD мора бити нестатичка чланска функција"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> мора враћати %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "дефиниција имплицитно декларисаног %qD"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, fuzzy, gcc-internal-format
 #| msgid "definition of implicitly-declared %qD"
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "дефиниција имплицитно декларисаног %qD"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously defined here"
 msgid "%q#D explicitly defaulted here"
 msgstr "%q+#D претходно дефинисано овде"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "чланска функција %q#D није декларисана у класи %qT"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be a template"
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "%<::main%> се не може декларисати као шаблон"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 #| msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "аутоматска променљива %qE не може бити нитно-локална"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 #| msgid "strong using only meaningful at namespace scope"
 msgid "concept must be defined at namespace scope"
 msgstr "јако using има смисла само у досегу именског простора"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "a variable concept cannot be constrained"
 msgstr "објекат променљиве величине не може се успостављати"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "неисправно успостављање унутар класе статичког чланског податка неинтегралног типа %qT"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "неисправно успостављање унутар класе статичког чланског податка неинтегралног типа %qT"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "неисправно успостављање унутар класе статичког чланског податка неинтегралног типа %qT"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "неисправно успостављање унутар класе статичког чланског податка неинтегралног типа %qT"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ИСО Ц++ забрањује успостављање унутар класе неконстантног статичког члана %qD"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ИСО Ц++ забрањује успостављање чланске константе %qD неинтегралног типа %qT"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "величина низа %qD има неинтегрални тип %qT"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "величина низа има неинтегрални тип %qT"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "величина низа %qD није интегралан констатан израз"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "величина низа није интегралан констатан израз"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ИСО Ц++ забрањује низ нулте величине %qD"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ИСО Ц++ забрањује низ нулте величине"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids variable-size array %qD"
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ИСО Ц++ забрањује низ променљиве величине %qD"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids variable-size array"
 msgid "ISO C++ forbids variable length array"
 msgstr "ИСО Ц++ забрањује низ променљиве величине"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr ""
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr ""
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "преливање у димензији низа"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 #| msgid "%qD does not declare a template type"
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%qD не декларише шаблонски тип"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member reference type %qT"
 msgid "creating array of template placeholder type %qT"
 msgstr "стварање показивача на члан упућивачког типа %qT"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of voids"
 msgid "declaration of %qD as array of void"
 msgstr "декларација %qs као низа празних"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of %qT"
 msgid "creating array of void"
 msgstr "стварање низа типа %qT"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "declaration of %qD as array of functions"
 msgstr "декларација %qs као низа функција"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of %qT"
 msgid "creating array of functions"
 msgstr "стварање низа типа %qT"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "declaration of %qD as array of references"
 msgstr "декларација %qs као низа функција"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of %qT"
 msgid "creating array of references"
 msgstr "стварање низа типа %qT"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "declaration of %qD as array of function members"
 msgstr "декларација %qs као низа функција"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "creating array of function members"
 msgstr "декларација %qs као низа функција"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "декларација %qD као вишедимензионог низа мора имати границе за све димензије осим прве"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "вишедимензиони низ мора имати границе за све димензије осим прве"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, gcc-internal-format
 msgid "variable-length array of %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "навод повратног типа за конструктор није исправан"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "одредбе нису дозвољене уз декларацију %<operator %T%>"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "навод повратног типа за деструктор није исправан"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "одредбе нису дозвољене уз декларацију %<operator %T%>"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "наведен повратни тип за %<operator %T%>"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "одредбе нису дозвољене уз декларацију %<operator %T%>"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 #| msgid "return type specification for destructor invalid"
 msgid "return type specified for deduction guide"
 msgstr "навод повратног типа за деструктор није исправан"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "одредбе нису дозвољене уз декларацију %<operator %T%>"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 #| msgid "too many template parameter lists in declaration of %qD"
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "превише листа шаблонских параметара у декларацији %qD"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting specifiers in declaration of %qs"
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "сукобљени наводиоци у декларацији %qs"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "неименована променљива или поље декларисано празним"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "променљива или поље декларисано празним"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "наводилац %<inline%> није исправан за функцију %qs декларисану изван глобалног досега"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "деструктори не могу бити кн-одређени"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "неисправна употреба одређеног имена %<::%D%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "неисправна употреба одређеног имена %<%T::%D%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "неисправна употреба одређеног имена %<%D::%D%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%q#T is not a class or namespace"
 msgstr "%qT није ни класа ни именски простор"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "declaration of %qE as non-function"
 msgstr "декларација %qD као не-функције"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-member"
 msgid "declaration of %qE as non-member"
 msgstr "декларација %qD као не-члана"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "недостаје ид. декларатора; користи се резервисана реч %qD"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "дефиниција функције не декларише параметре"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "декларација %qD као не-функције"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as %s"
 msgid "declaration of %qD as %<typedef%>"
 msgstr "декларација %qD као %s"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of %qD as parameter"
 msgstr "декларација %q+D заклања параметар"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, fuzzy, gcc-internal-format
 #| msgid "no classes specified"
 msgid "both %qs and %qs specified"
 msgstr "није наведена ниједна класа"
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 #| msgid "Class %qs not found in type declaration"
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "Класа %qs не налази се у декларацији типа"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "два или више типова података у декларацији %qs"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ИСО Ц не подржава да обичан %<complex%> значи %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ИСО Ц++ забрањује декларацију %qs без типа"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_saveregs not supported by this target"
 msgid "%<__int%d%> is not supported by this target"
 msgstr "__builtin_saveregs није подржано овим циљем"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<long long%>"
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ИСО Ц++ не подржава %<long long%>"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 #| msgid "%<signed%> and %<unsigned%> specified together for %qs"
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> и %<unsigned%> наведени заједно за %qs"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 #| msgid "%<long%> and %<short%> specified together for %qs"
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> и %<short%> наведени заједно за %qs"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 #| msgid "no class name specified with %qs"
 msgid "%qs specified with %qT"
 msgstr "нема имена класе наведеног помоћу %qs"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr ""
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 #| msgid "%qs not specified in enclosing parallel"
 msgid "%qs specified with %<decltype%>"
 msgstr "%qs није наведено у обухватајућем паралелном"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qs specified with %<typeof%>"
 msgstr "%<__thread%> употребљено уз %<typedef%>"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "complex неисправно за %qs"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "члан %qD не може бити декларисан и као виртуелни и као статички"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "члан %qD не може бити декларисан и као виртуелни и као статички"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "декларација typedef није исправна у декларацији параметра"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for parameter %qs"
 msgid "storage class specified for template parameter %qs"
 msgstr "складишна класа наведена за параметар %qs"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "складишна класа наведена за параметар %qs"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters cannot be friends"
 msgid "a parameter cannot be declared %qs"
 msgstr "шаблонски параметри не могу бити пријатељи"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, fuzzy, gcc-internal-format
 #| msgid "virtual outside class declaration"
 msgid "%<virtual%> outside class declaration"
 msgstr "virtual изван декларације класе"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q+#T"
 msgid "structured binding declaration cannot be %qs"
 msgstr "атрибут игнорисан у декларацији %q+#T"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q+#T"
 msgid "structured binding declaration cannot have type %qT"
 msgstr "атрибут игнорисан у декларацији %q+#T"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr ""
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "вишеструке складишне класе у декларацији %qs"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "складишна класа наведена за %qs"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "угњеждена функција %qs декларисана као %<extern%>"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "декларација %qs на највишем нивоу наводи %<auto%>"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "%qs досега функције имплицитно аутоматска и декларасина као %<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "наводиоци складишне класе нису исправни у декларацијама пријатељских функција"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored"
 msgid "attribute ignored"
 msgstr "атрибут %qE се игнорише"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 #| msgid "multiple storage classes in declaration of %qs"
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "вишеструке складишне класе у декларацији %qs"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, fuzzy, gcc-internal-format
 #| msgid "Expected left parenthesis"
 msgid "remove parentheses"
 msgstr "Очекивана је лева заграда"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "показивач на чланску функцију употребљен у аритметици"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr ""
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr ""
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr ""
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual function cannot have deduced return type"
 msgstr "виртуелне функције не могу бити пријатељи"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<restrict%>"
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "неисправна употреба %<restrict%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "deduced class type %qD in function return type"
 msgstr "одредбе типова се игноришу на повратном типу функције"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs декларисано као функција која враћа функцију"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs декларисано као функција која враћа низ"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, fuzzy, gcc-internal-format
 #| msgid "%<noreturn%> function returns non-void value"
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "функција са %<noreturn%> враћа непразну вредност"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "деструктор не може бити статичка чланска функција"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "конструктор не може бити статичка чланска функција"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "деструктори не могу бити кн-одређени"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "конструктори не могу бити кн-одређени"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "destructors may not be ref-qualified"
 msgstr "деструктори не могу бити кн-одређени"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 #| msgid "constructors may not be cv-qualified"
 msgid "constructors may not be ref-qualified"
 msgstr "конструктори не могу бити кн-одређени"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "конструктор не може бити виртуелан"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "виртуелне функције не могу бити пријатељи"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "декларација пријатеља није у дефиницији класе"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 #| msgid "can't define friend function %qs in a local class definition"
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "не може се дефинисати пријатељска функција %qs у дефиницији локалне класе"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "%sчланска функција %qD не може имати кн-одредбу"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 #| msgid "non-object member %qs cannot be declared %<mutable%>"
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "не-објектни члан %qs не може бити декларисан %<mutable%>"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD мора бити нестатичка чланска функција"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "деструктори не могу имати параметре"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "не може се декларисати показивач на %q#T"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "не може се декларисати упућивач на %q#T"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "не може се декларисати показивач на члан %q#T"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "не може се декларисати упућивач на %q#T"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare bit-field %qD with function type"
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "не може се декларисати битско поље %qD са функцијским типом"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr ""
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "ид. шаблона %qD употребљен као декларатор"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "чланске функције су имплицитно пријатељи својих класа"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "сувишна одредба %<%T::%> на члану %qs"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 #| msgid "cannot define member function %<%T::%s%> within %<%T%>"
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "не може се дефинисати чланска функција %<%T::%s%> унутар %<%T%>"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare member function %<%T::%s%> within %<%T%>"
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "не може се декларисати функција %<%T::%s%> унутар %<%T%>"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "не може се декларисати члан %<%T::%s%> унутар %qT"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, fuzzy, gcc-internal-format
 #| msgid "data member %qD cannot be a member template"
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "члански податак %qD не може бити члански шаблон"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "члански податак не може имати променљиво измењив тип %qT"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "параметар не може имати променљиво измењив тип %qT"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 #| msgid "virtual outside class declaration"
 msgid "%<explicit%> outside class declaration"
 msgstr "virtual изван декларације класе"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> in empty declaration"
 msgid "%<explicit%> in friend declaration"
 msgstr "%<inline%> у празној декларацији"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, fuzzy, gcc-internal-format
 #| msgid "only declarations of constructors can be %<explicit%>"
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "само декларације конструктора могу имати %<explicit%>"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "не-члан %qs не може бити декларисан %<mutable%>"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "не-објектни члан %qs не може бити декларисан %<mutable%>"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "функција %qs не може бити декларисана %<mutable%>"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "static %qs cannot be declared %<mutable%>"
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "статичко %qs не може бити декларисано %<mutable%>"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "const %qs cannot be declared %<mutable%>"
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "константно %qs не може бити декларисано %<mutable%>"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, fuzzy, gcc-internal-format
 #| msgid "function %qs cannot be declared %<mutable%>"
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "функција %qs не може бити декларисана %<mutable%>"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 #| msgid "attributes are not allowed on a function-definition"
 msgid "typedef may not be a function definition"
 msgstr "атрибути нису дозвољени на дефиницији функције"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 #| msgid "attributes are not allowed on a function-definition"
 msgid "typedef may not be a member function definition"
 msgstr "атрибути нису дозвољени на дефиницији функције"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not allowed in other than a declaration"
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<[*]%> није дозвољено другде осим у декларацији"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, fuzzy, gcc-internal-format
 #| msgid "typedef %q+D declared %<inline%>"
 msgid "typedef declared %<auto%>"
 msgstr "дефиниција типа %q+D декларисана као %<inline%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, fuzzy, gcc-internal-format
 #| msgid "%Jtypedef name may not be a nested-name-specifier"
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "%Jиме за дефиницију типа не може бити угњеждени-именски-наводилац"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ИСО Ц++ забрањује угњеждени тип %qD истог имена као и обухватајућа класа"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "%<inline%> наведено уз декларацију пријатељске класе"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "шаблонски параметри не могу бити пријатељи"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "декларација пријатеља захтева реч class, тј. %<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "декларација пријатеља захтева реч class, тј. %<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "покушај да се класа %qT учини пријатељем глобалног досега"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "неисправне одредбе уз тип не-чланске функције"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "апстрактни декларатор %qT употребљен као декларација"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of C++ built-in type %qT"
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "поновљена декларација Ц++ уграђеног типа %qT"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "не може се користити %<::%> у декларацији параметра"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter %q+D to be of abstract type %qT"
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "не може се декларисати параметар %q+D апстрактног типа %qT"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "%<this%> се не може употребити у овом контексту"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D declared %<inline%>"
 msgid "parameter declared %<auto%>"
 msgstr "параметар %q+D декларисан као %<inline%>"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "неисправна употреба шаблонског имена %qE без листе аргумената"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 #| msgid "static member %qD declared %<register%>"
 msgid "non-static data member declared with placeholder %qT"
 msgstr "статички члан %qD декларисан као %<register%>"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids zero-size array %qD"
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ИСО Ц++ забрањује низ нулте величине %qD"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array members"
 msgstr "ИСО Ц 90 не подржава флексибилне чланске низове"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "неисправна употреба %<::%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of C function %q#D conflicts with"
 msgid "declaration of function %qD in invalid context"
 msgstr "декларација Ц функције %q#D коси се са"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared virtual inside a union"
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "функција %qD декларисана виртуелном унутар уније"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot be declared virtual, since it is always static"
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD не може бити декларисана виртуелном, јер је увек статичка"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "очекивано одређено име у декларацији пријатеља за деструктор %qD"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "декларација %qD као члана %qT"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 #| msgid "Constructor can't be %s"
 msgid "a destructor cannot be %qs"
 msgstr "Конструктор не може бити %s"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, fuzzy, gcc-internal-format
 #| msgid "expected qualified name in friend declaration for destructor %qD"
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "очекивано одређено име у декларацији пријатеља за деструктор %qD"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, fuzzy, gcc-internal-format
 #| msgid "Constructor can't be %s"
 msgid "a constructor cannot be %<concept%>"
 msgstr "Конструктор не може бити %s"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "a concept cannot be a member function"
 msgstr "конструктор не може бити статичка чланска функција"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 #| msgid "cannot open %s"
 msgid "%qD cannot be %qs"
 msgstr "не могу да отворим %s"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of implicitly-declared special member function"
 msgid "specialization of variable template %qD declared as function"
 msgstr "специјализација имплицитно декларисане посебне чланске функције"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 #| msgid "variable or field declared void"
 msgid "variable template declared here"
 msgstr "променљива или поље декларисано празним"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 #| msgid "field %qD has incomplete type"
 msgid "field %qD has incomplete type %qT"
 msgstr "поље %qD има непотпун тип"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "име %qT има непотпун тип"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE није ни функција ни чланска функција; не може се декларисати пријатељем"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is neither function nor member function; cannot be declared friend"
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "%qE није ни функција ни чланска функција; не може се декларисати пријатељем"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 #| msgid "static member %qD declared %<register%>"
 msgid "static data member %qE declared %qs"
 msgstr "статички члан %qD декларисан као %<register%>"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L cannot have an initializer"
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "Сопствено ‘%s’ код %L не може имати успостављач"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 #| msgid "static member %qD declared %<register%>"
 msgid "non-static data member %qE declared %qs"
 msgstr "статички члан %qD декларисан као %<register%>"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "складишна класа %<auto%> неисправна за функцију %qs"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "складишна класа %<register%> неисправна за функцију %qs"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "складишна класа %<__thread%> неисправна за функцију %qs"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 #| msgid "storage class %<__thread%> invalid for function %qs"
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "складишна класа %<__thread%> неисправна за функцију %qs"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "наводилац %<inline%> није исправан за функцију %qs декларисану изван глобалног досега"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, fuzzy, gcc-internal-format
 #| msgid "an asm-specification is not allowed on a function-definition"
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "навод asm није дозвољен на дефиницији функције"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, fuzzy, gcc-internal-format
 #| msgid "%<static%> specified invalid for function %qs declared out of global scope"
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "%<static%> неисправно наведено за функцију %qs декларисану изван глобалног досега"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "наводилац %<inline%> није исправан за функцију %qs декларисану изван глобалног досега"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "виртуелна не-класна функција %qs"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, fuzzy, gcc-internal-format
 #| msgid "No variable %qs defined in class %qs"
 msgid "%qs defined in a non-class scope"
 msgstr "Променљива %qs није дефинисана у класи %qs"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 #| msgid "%qD was not declared in this scope"
 msgid "%qs declared in a non-class scope"
 msgstr "%qD није декларисано у овом досегу"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "не може се декларисати статичка повезивост за чланску функцију %qD"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "не може се декларисати статичка функција унутар друге функције"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "%<static%> не може бити употребљено при дефинисању (насупрот декларисања) статичког чланског податка"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "статички члан %qD декларисан као %<register%>"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "не може се експлицитно декларисати спољашња повезивост за члан %q#D"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "декларација спољашње променљиве %q+D у почетној декларацији %<for%> петље"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 #| msgid "static %qs cannot be declared %<mutable%>"
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "статичко %qs не може бити декларисано %<mutable%>"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs успостављено и декларисано као %<extern%>"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs има и %<extern%> и успостављач"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 #| msgid "default argument %qE uses local variable %qD"
 msgid "default argument %qE uses %qD"
 msgstr "подразумевани аргумент %qE користи локалну променљиву %qD"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "подразумевани аргумент %qE користи локалну променљиву %qD"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specifiers invalid in parameter declarations"
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "наводиоци складишне класе нису исправни у декларацијама параметара"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 #| msgid "cannot use %<::%> in parameter declaration"
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "не може се користити %<::%> у декларацији параметра"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr ""
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "параметар %qD неисправно декларише тип метода"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD includes %s to array of unknown bound %qT"
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "параметар %qD укључује %s у низ непознатих граница %qT"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD includes %s to array of unknown bound %qT"
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "параметар %qD укључује %s у низ непознатих граница %qT"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "неисправан конструктор; вероватно сте мислили %<%T (const %T&)%>"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD не може бити декларисано унутар именског простора"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD не може бити декларисано статичко"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a non-static member function"
 msgstr "%qD мора бити нестатичка чланска функција"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a member function"
 msgstr "%qD мора бити нестатичка чланска функција"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD мора бити или нестатичка чланска функција или не-чланска функција"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD мора имати аргумент класног или набројивог типа"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ prohibits overloading operator ?:"
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ИСО Ц++ забрањује препуњавање оператора ?:"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD не може имати променљив број аргумената"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either zero or one argument"
 msgid "%qD must have either zero or one argument"
 msgstr "%qD мора узимати ниједан или један аргумент"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either one or two arguments"
 msgid "%qD must have either one or two arguments"
 msgstr "%qD мора узимати један или два аргумента"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its argument"
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "постфиксно %qD мора узимати %<int%> као аргумент"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its second argument"
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "постфиксно %qD мора узимати %<int%> као други аргумент"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have no arguments"
 msgstr "%qD мора узимати тачно два аргумента"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly one argument"
 msgid "%qD must have exactly one argument"
 msgstr "%qD мора узимати тачно један аргумент"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have exactly two arguments"
 msgstr "%qD мора узимати тачно два аргумента"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD не може имати подразумеване аргументе"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "претварање у %s%s никад неће користити оператор претварања типа"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "претварање у %s%s никад неће користити оператор претварања типа"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "претварање у %s%s никад неће користити оператор претварања типа"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "претварање у %s%s никад неће користити оператор претварања типа"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "претварање у %s%s никад неће користити оператор претварања типа"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "кориснички дефинисано %qD увек израчунава оба аргумента"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "префиксно %qD треба да враћа %qT"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "постфиксно %qD треба да враћа %qT"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD треба да враћа по вредност"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "употреба параметра шаблонског типа %qT после %qs"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous template specialization %qD for %q+D"
 msgid "using alias template specialization %qT after %qs"
 msgstr "двосмислена специјализација шаблона %qD за %q+D"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "употреба typedef-имена %qD после %qs"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D has a previous declaration here"
 msgid "%qD has a previous declaration here"
 msgstr "%q+D има претходну декларацију овде"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "%qT се помиње као %qs"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 #| msgid "%q+T has a previous declaration here"
 msgid "%qT has a previous declaration here"
 msgstr "%q+T има претходну декларацију овде"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "%qT се помиње као набрајање"
@@ -63420,121 +63425,103 @@ msgstr "%qT се помиње као набрајање"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "потребан шаблонски аргумент за %<%s %T%>"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "двосмислено упућивање на %qD"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 #| msgid "non-template %qD used as template"
 msgid "class template %qD redeclared as non-template"
 msgstr "%qD употребљено као шаблон, а није"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD има исто име као и класа у којој је декларисано"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT није шаблон"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "употреба набрајања %q#D без претходне декларације"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "поновљена декларација %qT као не-шаблона"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD to be a bit-field type"
-msgid "cannot declare %qD in a different module"
-msgstr "%qD се не може декларисати као тип битског поља"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, fuzzy, gcc-internal-format
-#| msgid "%q+#D previously declared here"
-msgid "previously declared here"
-msgstr "%q+#D претходно декларисано овде"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "неисправна изведена унија %qT"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr ""
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct or virtual base of %qT"
 msgid "%qT defined with direct virtual base"
 msgstr "тип %qT није непосредна или виртуелна основа од %qT"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "тип основе %qT није класа или структура"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "недефинисан рекурзивни тип %qT"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "неисправан удвостручен тип основе %qT"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD to be a bit-field type"
-msgid "cannot declare %qD in different module"
-msgstr "%qD се не може декларисати као тип битског поља"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, fuzzy, gcc-internal-format
 #| msgid "%Jprevious definition here"
 msgid "previous definition here"
 msgstr "%Jпретходна дефиниција је овде"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 #| msgid "Cray pointer at %C must be an integer."
 msgid "underlying type %qT of %qT must be an integral type"
@@ -63544,91 +63531,91 @@ msgstr "Крејов показивач код %C мора бити целобр
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "ниједан интегрални тип не може представљати све вредности набрајача за %qT"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qD not integer constant"
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "вредност набрајача за %qD није целобројна константа"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant"
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "вредност набрајача за %qE није целобројна константа"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "ИСО Ц ограничава вредности набрајача на опсег %<int%>"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "ИСО Ц ограничава вредности набрајача на опсег %<int%>"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "преливање у вредностима набрајача код %qD"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant"
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "вредност набрајача за %qE није целобројна константа"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "вишеструке дефиниције %q#T"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "повратни тип %q#T није потпун"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%> треба да враћа упућивач на %<*this%>"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statements in function returning %qT"
 msgstr "нема повратне наредбе у функцији која враћа непразан тип"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, fuzzy, gcc-internal-format
 #| msgid "function return types not compatible due to %<volatile%>"
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "повратни типови функција нису сагласни услед %<volatile%>"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "нема повратне наредбе у функцији која враћа непразан тип"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD је већ дефинисано у класи %qT"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 #| msgid "Processing %s\n"
 msgid "using %qs"
 msgstr "Обрађујем %s\n"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr ""
@@ -63684,7 +63671,7 @@ msgstr "не може се обрисати функција. Само пока
 msgid "deleting %qT is undefined"
 msgstr "брисање %qT није дефинисано"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "декларација шаблона %q#D"
@@ -63695,7 +63682,7 @@ msgstr "декларација шаблона %q#D"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "параметри шаблона се не поклапају са шаблоном"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "деструктор %qD декларисан као члански шаблон"
@@ -63895,73 +63882,73 @@ msgstr ""
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> узима тип %<size_t%> (%qT) као први параметар"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr "%qT има поље %qD чији тип користи анонимни именски простор"
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr "%qT има поље %qD чији тип користи анонимни именски простор"
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%qT има поље %qD чији тип користи анонимни именски простор"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr "%qT има поље %qD чији тип користи анонимни именски простор"
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qT декларисано са већом видљивошћу од типа његовог поља %qD"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which has no linkage"
 msgstr "%qT има основу %qT чији тип користи анонимни именски простор"
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr "%qT има основу %qT чији тип користи анонимни именски простор"
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which has internal linkage"
 msgstr "%qT има основу %qT чији тип користи анонимни именски простор"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr "%qT има основу %qT чији тип користи анонимни именски простор"
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT декларисано са већом видљивошћу од своје основе %qT"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%q+F декларисано као %<static%> али нигде дефинисано"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr ""
@@ -63970,114 +63957,114 @@ msgstr ""
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q+#D не упућује на неодређени тип, тако да се не користи за повезивост"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q+F декларисано као %<static%> али нигде дефинисано"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr ""
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+#D with %qL linkage"
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "претходна декларација %q+#D са повезивошћу %qL"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 #| msgid "section of %q+D conflicts with previous declaration"
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "одељак за %q+D коси се са претходном декларацијом"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous mangling %q#D"
 msgstr "претходна декларација %q+D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D used but never defined"
 msgid "inline function %qD used but never defined"
 msgstr "уткана функција %q+D употребљена али недефинисана"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 #| msgid "default argument missing for parameter %P of %q+#D"
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "недостаје подразумевани аргумент за параметар %P од %q+#D"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr ""
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 #| msgid "definition of implicitly-declared %qD"
 msgid "implicitly-declared %qD is deprecated"
 msgstr "дефиниција имплицитно декларисаног %qD"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr ""
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "use of deleted function %qD"
 msgstr "неисправна употреба нестатичке чланске функције %qD"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "ија не задовољава своја ограничења:"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, fuzzy, gcc-internal-format
 #| msgid "using %<typename%> outside of template"
 msgid "use of built-in parameter pack %qD outside of a template"
@@ -64185,7 +64172,7 @@ msgstr "двосмислено упућивање на %<%T::%D%>"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qD није члан у %qT"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD није члан у %qT"
@@ -64196,7 +64183,7 @@ msgstr "%qD није члан у %qT"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qD није члан у %qD"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD није члан у %qD"
@@ -64223,52 +64210,52 @@ msgstr "руковање изузецима је искључено, укључ
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "баца се NULL, које има интегрални, а не показивачки тип"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  у баченом изразу"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter %q+D to be of abstract type %qT"
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "не може се декларисати параметар %q+D апстрактног типа %qT"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create type information for type %qT because it involves types of variable size"
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "не могу се створити подаци о типу за %qT, јер укључује типове променљиве величине"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create type information for type %qT because it involves types of variable size"
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "не могу се створити подаци о типу за %qT, јер укључује типове променљиве величине"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, fuzzy, gcc-internal-format
 #| msgid "%Hexception of type %qT will be caught"
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "%Hбиће ухваћен изузетак типа %qT"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, gcc-internal-format
 msgid "for type %qT"
 msgstr ""
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<...%> handler must be the last handler for its try block"
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "%Hруковалац %<...%> мора бити последњи у свом блоку покушаја"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -64559,12 +64546,12 @@ msgstr "тип %qT није непосредна или виртуелна ос
 msgid "type %qT is not a direct base of %qT"
 msgstr "тип %qT није непосредна основа од %qT"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "успостављач низа мора бити нешто у витичастим заградама"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a class"
 msgid "%qT is not a class type"
@@ -64580,12 +64567,12 @@ msgstr "непотпун тип %qT нема члан %qD"
 msgid "invalid pointer to bit-field %qD"
 msgstr "неисправан показивач на битско поље %qD"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "неисправна употреба нестатичке чланске функције %qD"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "неисправна употреба нестатичког чланског податка %qD"
@@ -64794,55 +64781,55 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "тип уз векторско delete није ни показивачки ни низовни"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, fuzzy, gcc-internal-format
 #| msgid "compound literal has variable size"
 msgid "because the array element type %qT has variable size"
 msgstr "сложена дословна ниска има променљиву величину"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "cannot capture %qE by reference"
 msgstr "не може се декларисати упућивач на %q#T"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type %qT"
 msgid "capture by copy of incomplete type %qT"
 msgstr "не може се %s показивач на непотпуни тип %qT"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> was not captured for this lambda function"
@@ -65242,239 +65229,290 @@ msgstr "очекивана је декларација или наредба"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting global module declaration %#qD"
 msgstr "сукобљена декларација %q#D"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration %q+D"
 msgid "existing declaration %#qD"
 msgstr "у декларацији %q+D"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 #| msgid "extern declaration of %q#D doesn't match"
 msgid "definition of %qD does not match"
 msgstr "спољашња декларација %q#D не слаже се"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing definition"
 msgid "existing definition %qD"
 msgstr "недостаје дефиниција"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "... this enumerator %qD"
 msgstr "поновљена декларација набрајача %q+D"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 #| msgid "argument of type %qT does not match %qT"
 msgid "enumerator %qD does not match ..."
 msgstr "аргумент типа %qT не поклапа се са %qT"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "module %qs declared here"
 msgstr "%q+D декларисано овде"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q+#D"
 msgid "macro definitions of %qE corrupted"
 msgstr "  из дефиниције %q+#D"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 #| msgid "inconsistent instance variable specification"
 msgid "inconsistent imported macro definition %qE"
 msgstr "неусаглашена одредница променљиве примерка"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 #| msgid "could not open dump file %qs: %s"
 msgid "compiled module file is %qs"
 msgstr "нисам могао да отворим датотеку пописа %qs: %s"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s"
 msgid "compiled module is %sversion %s"
 msgstr "collect2 верзија %s"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2 верзија %s"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 #| msgid "field %qs not found"
 msgid "module %qs found"
 msgstr "поље %qs није нађено"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr ""
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 #| msgid "field initializer type mismatch"
 msgid "fixed tree mismatch"
 msgstr "неслагање типа успостављача поља"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "interface partition is not exported"
 msgstr "израз ограничења стека није подржан"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr ""
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr ""
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of namespace %qD conflicts with"
+msgid "declaration %qD conflicts with builtin"
+msgstr "декларација именског простора %qD коси се са"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of namespace %qD conflicts with"
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "декларација именског простора %qD коси се са"
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration %q#D"
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "сукобљена декларација %q#D"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration %q#D"
+msgid "conflicting declaration of %qD in global module"
+msgstr "сукобљена декларација %q#D"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "previous declaration of %qs"
+msgid "previously declared in module %qs"
+msgstr "претходна декларација %qs"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "%q+#D previously declared here"
+msgid "previously declared in global module"
+msgstr "%q+#D претходно декларисано овде"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 #| msgid "creating %s"
 msgid "reading CMI %qs"
 msgstr "прави %s"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr ""
@@ -65486,326 +65524,326 @@ msgstr ""
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "module already declared"
 msgstr "Компонента ‘%s’ код %C већ је декларисана код %L"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, gcc-internal-format
 msgid "module already imported"
 msgstr ""
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, gcc-internal-format
 msgid "module %qs imported here"
 msgstr ""
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr ""
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 #| msgid "Enable traditional preprocessing"
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "Укључи традиционалну предобраду"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr ""
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter %qs"
 msgid "invalid header name %qs"
 msgstr "неисправан параметар %qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 #| msgid "%s: invalid file name: %s\n"
 msgid "invalid module name %qs"
 msgstr "%s: неисправно име датотеке: %s\n"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 #| msgid "error writing %qs"
 msgid "writing CMI %qs"
 msgstr "грешка при писању %qs"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 #| msgid "Error writing modules file: %s"
 msgid "not writing module %qs due to errors"
 msgstr "Грешка при писању датотеке модула: %s"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr ""
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 #| msgid "unknown machine mode %qs"
 msgid "unknown header kind %qs"
 msgstr "непознат машински режим %qs"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr ""
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D shadows a parameter"
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "декларација %q#D заклања параметар"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D conflicts with previous using declaration %q#D"
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D се коси са претходном декларацијом употребе %q#D"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D hides constructor for %q#T"
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D скрива конструктор за %q#T"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "сукобљена декларација %q#D"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, fuzzy, gcc-internal-format
 #| msgid "Generate code to check exception specifications"
 msgid "due to different exception specifications"
 msgstr "Створи кôд за проверу одредница изузетака"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD invalidly declared method type"
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "параметар %qD неисправно декларише тип метода"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "декларација %q#D заклања параметар"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as member of %qT"
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "декларација %qD као члана %qT"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 #| msgid "using declaration %q+D conflicts with a previous using declaration"
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "декларација коришћења %q+D коси се са претходном декларацијом коришћења"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s(%E) %p %d\n"
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %s(%E) %p %d\n"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s %p %d\n"
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d\n"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as reference but not initialized"
 msgid "%q#D declared here with no linkage"
 msgstr "%qD декларисано као упућивач али није успостављено"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 #| msgid "%qD redeclared with different access"
 msgid "%q#D declared here with internal linkage"
 msgstr "%qD поново декларисано са другачијим приступом"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 #| msgid "%qD redeclared with different access"
 msgid "%q#D declared here with module linkage"
 msgstr "%qD поново декларисано са другачијим приступом"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> names destructor"
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T::%D%> именује деструктор"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "декларација употребе за не-члан у досегу класе"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qT није ни класа ни именски простор"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration for non-member at class scope"
 msgid "using-declaration for member at non-class scope"
 msgstr "декларација употребе за не-члан у досегу класе"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "%qT is not a direct base of %qT"
 msgstr "тип %qT није непосредна основа од %qT"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has not been declared"
 msgid "%qD has not been declared in %qD"
 msgstr "%qD није декларисано"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD not in a namespace surrounding %qD"
 msgid "using-declaration may not name namespace %qD"
 msgstr "декларација %qD није у именском простору који окружује %qD"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> именује конструктор у %qT"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "декларација %qD није у именском простору који окружује %qD"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "експлицитна одредба у декларацији %qD"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD треба да је декларисано унутар %qD"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has not been declared"
 msgid "%qD has not been declared within %qD"
 msgstr "%qD није декларисано"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a friend"
 msgid "only here as a %<friend%>"
 msgstr "%q+D декларисано као пријатељ"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires a single NTBS argument"
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "атрибут %qs захтева тачно један НТБС аргумент"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr ""
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "атрибутска директива %qD игнорисана"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
@@ -65814,105 +65852,105 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[3] ""
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, fuzzy, gcc-internal-format
 #| msgid "  %q+#D"
 msgid "  %qE"
 msgstr "  %q+#D"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "%<this%> није доступно за статичке чланске функције"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has not been declared"
 msgid "the macro %qs had not yet been defined"
 msgstr "%qD није декларисано"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qD was declared here"
 msgid "it was later defined here"
 msgstr "%J%qD декларисано овде"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr ""
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 #| msgid "switch %qs is no longer supported"
 msgid "%<strong%> using directive no longer supported"
 msgstr "прекидач %qs више није подржан"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%<this%> се не може употребити у овом контексту"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qD may not be declared within a namespace"
 msgid "cannot nest more than %d namespaces"
 msgstr "%qD не може бити декларисано унутар именског простора"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 #| msgid "Type name '%s' at %C is ambiguous"
 msgid "%<namespace %E%> is ambiguous"
 msgstr "Двосмислено име типа ‘%s’ код %C"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "алијас именског простора %qD није дозвољен овде, претпостављам %qD"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%qD defined here"
 msgstr "%q+D декларисано овде"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 #| msgid "address area of %q+D conflicts with previous declaration"
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "адресна област за %q+D коси се са претходном декларацијом"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%Jprevious definition here"
 msgid "reachable %s definition here"
 msgstr "%Jпретходна дефиниција је овде"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, fuzzy, gcc-internal-format
 #| msgid "XXX entering pop_everything ()\n"
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX entering pop_everything ()\n"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "XXX leaving pop_everything ()\n"
 msgid "XXX leaving %<pop_everything ()%>"
@@ -65939,7 +65977,7 @@ msgstr ""
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr ""
@@ -66215,7 +66253,7 @@ msgstr ""
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
@@ -66414,7 +66452,7 @@ msgstr "наредбени изрази дозвољени су само уну
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "expected primary-expression"
@@ -66473,7 +66511,7 @@ msgstr ""
 msgid "template-id not allowed for destructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -66494,7 +66532,7 @@ msgstr "typedef-име %qD употребљено као декларатор д
 msgid "expected unqualified-id"
 msgstr "очекивана је листа наводилаца-одредби"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD није шаблон"
@@ -66552,7 +66590,7 @@ msgstr "не могу се дефинисати нови типови у пов
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "неподржан аргумент за %<__builtin_frame_address%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %<__builtin_return_address%>"
 msgid "wrong number of arguments to %<__builtin_launder%>"
@@ -66591,7 +66629,7 @@ msgstr "не могу се дефинисати нови типови у пов
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "неисправна употреба %qD"
@@ -66619,7 +66657,7 @@ msgstr "ИСО Ц++ не дозвољава утврђене успостављ
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "не могу се дефинисати нови типови у повратном типу"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "types may not be defined in %qs expressions"
@@ -66781,8 +66819,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr "увећање само-за-читање променљиве %qD"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%q#D declared here"
@@ -66824,7 +66862,7 @@ msgstr "подразумевани аргумент дат за парамета
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -66955,7 +66993,7 @@ msgstr "неопходна л-вредност у asm наредби"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration or statement"
 msgid "expected selection-statement"
@@ -67024,7 +67062,7 @@ msgstr "наредба израза има непотпун тип"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr ""
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration or statement"
 msgid "expected iteration-statement"
@@ -67051,7 +67089,7 @@ msgstr ""
 msgid "ISO C++ forbids computed gotos"
 msgstr "ИСО Ц++ забрањује рачунско goto"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "expected jump-statement"
@@ -67355,13 +67393,13 @@ msgstr "само конструктори узимају успостављач
 msgid "cannot expand initializer for member %qD"
 msgstr "недостаје успостављач за члан %qD"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, fuzzy, gcc-internal-format
 #| msgid "static declaration of %q+D follows non-static declaration"
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "статичка декларација %q+D прати нестатичку декларацију"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr ""
@@ -68067,7 +68105,7 @@ msgstr "недостаје справљачки циљ после %qs"
 msgid "%qT not permitted in template argument"
 msgstr "грешка у рашчлањивању листе шаблонских аргумената"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
@@ -68270,12 +68308,12 @@ msgstr "претходна дефиниција %q+#T"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected class-key"
@@ -68496,40 +68534,40 @@ msgstr ""
 msgid "expression must be enclosed in parentheses"
 msgstr "наредба израза има непотпун тип"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 #| msgid "requested position is not an integer constant"
 msgid "result type is not a plain type-constraint"
 msgstr "захтевани положај није целобројна константа"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a constant"
 msgid "return-type-requirement is not a type-constraint"
 msgstr "захтевано равнање није константа"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, fuzzy, gcc-internal-format
 #| msgid "invalid redeclaration of %q+D"
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "неисправна поновљена декларација %q+D"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "премало листа параметара шаблона"
@@ -68538,493 +68576,493 @@ msgstr "премало листа параметара шаблона"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "превише листа шаблонских параметера"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "именоване повратне вредности нису више подржане"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, fuzzy, gcc-internal-format
 #| msgid "no matching template for %qD found"
 msgid "no matching concept for template-introduction"
 msgstr "поклапајући шаблон за %qD није нађен"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "неисправна декларација чланског шаблона у локалној класи"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "шаблон са Ц повезивошћу"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, fuzzy, gcc-internal-format
 #| msgid "invalid base-class specification"
 msgid "invalid explicit specialization"
 msgstr "неисправан навод основне класе"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %qs"
 msgid "template declaration of %<typedef%>"
 msgstr "декларација шаблона %qs"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, fuzzy, gcc-internal-format
 #| msgid "declaration does not declare anything"
 msgid "a class template declaration must not declare anything else"
 msgstr "декларација ништа не декларише"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization in non-namespace scope %qD"
 msgid "explicit template specialization cannot have a storage class"
 msgstr "експлицитна специјализација у не-именскопросторном досегу %qD"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%H%<>>%> треба да је %<> >%> унутар угњеждене листе шаблонских аргумената"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "сувишно %<>>%>, користите %<>%> за затварање листе шаблонских аргумената"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 #| msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "сувишно %<>>%>, користите %<>%> за затварање листе шаблонских аргумената"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "неисправна употреба %qD у одредници повезивости"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate %qs"
 msgid "duplicate %qD specifier"
 msgstr "удвостручено %qs"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 #| msgid "  conflict with %q+D"
 msgid "%qD specifier conflicts with %qs"
 msgstr "  коси се са %q+D"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> пре %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr ""
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<long long%>"
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ИСО Ц++ не подржава %<long long%>"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, fuzzy, gcc-internal-format
 #| msgid "both %<short%> and %<char%> in declaration specifiers"
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "и %<short%> и %<char%> у наводиоцима декларације"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate %qE"
 msgid "duplicate %qD"
 msgstr "удвостручено %qE"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "удвостручено %qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<new%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<delete%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<return%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<extern%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "expected %<static_assert%>"
 msgstr "очекивана је наредба"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<decltype%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<operator%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<class%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<template%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<namespace%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<using%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<asm%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<try%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<catch%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<throw%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<auto%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<__label__%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@try%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@synchronized%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@throw%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<__transaction_relaxed%>"
 msgstr "очекивано је %<none%> или %<shared%>"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<co_yield%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<::%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<...%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<*%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<~%>"
 msgstr "очекивано је %<{%>"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<:%> or %<...%>"
 msgid "expected %<:%> or %<::%>"
 msgstr "очекивано је %<:%> или %<...%>"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "очекивано је %<,%>, %<;%> или %<}%>"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "ознака %qs употребљена при именовању %q#T"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously declared here"
 msgid "%q#T was previously declared here"
 msgstr "%q+#D претходно декларисано овде"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "не може се декларисати упућивач на %q#T"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, fuzzy, gcc-internal-format
 #| msgid "%qT declared with greater visibility than its base %qT"
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qT декларисано са већом видљивошћу од своје основе %qT"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 #| msgid "template class without a name"
 msgid "replace the class-key with %qs"
 msgstr "шаблонска класа без имена"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 #| msgid "%qT referred to as %qs"
 msgid "%qT defined as %qs here"
 msgstr "%qT се помиње као %qs"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qD was declared here"
 msgid "%qT first declared as %qs here"
 msgstr "%J%qD декларисано овде"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD поново декларисано са другачијим приступом"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, fuzzy, gcc-internal-format
 #| msgid "%<template%> (as a disambiguator) is only allowed within templates"
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "%<template%> (као разјашњење двосмислености) дозвољено је само унутар шаблона"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "датотека се завршава подразумеваним аргументом"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "конструкција %<@%D%> објективног Ц++а на погрешном месту"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr ""
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "%<@encode%> мора навести тип као аргумент"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "неисправно име селектора објективног Ц++а"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, fuzzy, gcc-internal-format
 #| msgid "Class or interface declaration expected"
 msgid "objective-c++ method declaration is expected"
 msgstr "Очекивана је декларација класе или сучеља"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attribute cannot be specified for local variables"
 msgid "method attributes must be specified at the end"
 msgstr "%Jатрибут одељка се не може навести за локалне променљиве"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid type for iteration variable %qE"
 msgid "invalid type for instance variable"
 msgstr "%Hнеисправан тип променљиве итерације %qE"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "очекиван је идентификатор после %<@protocol%>"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored for %qE"
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "атрибут %qE се игнорише за %qE"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument"
 msgid "invalid type for property"
 msgstr "неисправан типски аргумент"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr ""
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected integer expression list"
 msgstr "очекиван је целобројни израз"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<wait%> expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "очекивано је %<,%>, %<;%> или %<}%>"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid reduction-identifier"
 msgstr "неисправан успостављач"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "types may not be defined in iterator type"
@@ -69034,13 +69072,13 @@ msgstr "не могу се дефинисати нови типови у пов
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma vtable no longer supported"
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "#pragma vtable више није подржано"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
@@ -69050,146 +69088,146 @@ msgstr ""
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr ""
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, fuzzy, gcc-internal-format
 #| msgid "iteration variable %qs should not be reduction"
 msgid "iteration variable %qD should not be reduction"
 msgstr "не би требало да променљива итерације %qs буде свођена"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp section%> може бити употребљено само у конструкцији %<#pragma omp sections%>"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer clause"
 msgstr "неисправан успостављач"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "expected id-expression (arguments)"
 msgstr "очекиван је израз"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "types may not be defined in declare reduction type list"
 msgstr "не могу се дефинисати нови типови у повратном типу"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member template function"
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD није чланска шаблонска функција"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 #| msgid "junk at end of %<#pragma GCC pch_preprocess%>"
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "смеће на крају %<#pragma GCC pch_preprocess%>"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp barrier%> може бити употребљено само у сложеним наредбама"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp flush%> може бити употребљено само у сложеним наредбама"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC diagnostic not allowed inside functions"
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "#pragma GCC diagnostic није дозвољено унутар функција"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "multi-source compilation not implemented for C++"
 msgstr "унутармодулске оптимизације нису имплеметиране за Ц++"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 #| msgid "standard conversions are not allowed in this context"
 msgid "placeholder type not allowed in this context"
 msgstr "стандардна претварања нису дозвољена у овом контексту"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, fuzzy, gcc-internal-format
 #| msgid "templates may not be %<virtual%>"
 msgid "implicit templates may not be %<virtual%>"
 msgstr "шаблони не могу бити виртуелни"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -69220,7 +69258,7 @@ msgstr "обухватајући шаблони класа не бивају е
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "специјализација %qD у различитом именском простору"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "специјализација %qD у различитом именском простору"
@@ -69236,28 +69274,28 @@ msgstr "  из дефиниције %q+#D"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "експлицитно извођење %qD у именском простору %qD (који не обухвата простор %qD)"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "име класе заклања шаблонски шаблонски параметар %qD"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template %q#D"
 msgid "specialization of alias template %qD"
 msgstr "декларација шаблона %q#D"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "експлицитна специјализација не-шаблонског %qT"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "специјализација %qT после извођења"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q+#D"
 msgid "from definition of %q#D"
@@ -69265,156 +69303,156 @@ msgstr "  из дефиниције %q+#D"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "специјализација %qT после извођења %qT"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "делимична специјализација шаблона функције %qD није дозвољена"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "специјализација %qD после извођења"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 #| msgid "%s %+#D"
 msgid "%s %#qD"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD није шаблон функције"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is not a variable template"
 msgstr "%qD није шаблон"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "ид. шаблона %qD за %q+D не одговара ниједној декларацији шаблона"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "двосмислена специјализација шаблона %qD за %q+D"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, fuzzy, gcc-internal-format
 #| msgid "no matching template for %qD found"
 msgid "too many template headers for %qD (should be %d)"
 msgstr "поклапајући шаблон за %qD није нађен"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "експлицитна специјализација %qD после прве употребе"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "експлицитно извођење %qD у именском простору %qD (који не обухвата простор %qD)"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "експлицитна специјализација %qD после прве употребе"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing primary template attributes %s"
 msgstr "недостаје атрибут Code"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing primary template attribute %s"
 msgstr "недостаје атрибут Code"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 #| msgid "template-id %qD in declaration of primary template"
 msgid "template-id %qE in declaration of primary template"
 msgstr "ид. шаблона %qD у декларацији примарног шаблона"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "листа шаблонских параметара употребљена у експлицитном извођењу"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "дефиниција дата за експлицитно извођење"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "превише листа шаблонских параметара у декларацији %qD"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "премало листа шаблонских параметара у декларацији %qD"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "експлицитна специјализација %qD мора бити уведена помоћу %<template <>%>"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization declared %<concept%>"
 msgstr "експлицитна специјализација не-шаблонског %qT"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "делимична специјализација шаблона функције %qD није дозвољена"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "делимична специјализација шаблона функције %qD није дозвољена"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "наведен подразумевани аргумент у експлицитној специјализацији"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD није шаблонска функција"
@@ -69427,151 +69465,151 @@ msgstr "%qD није шаблонска функција"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "специјализација имплицитно декларисане посебне чланске функције"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "нема чланске функције %qD декларисане у %qT"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "декларација пријатеља није у дефиницији класе"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 #| msgid "%Jshadowed declaration is here"
 msgid "friend declaration here"
 msgstr "%Jзаклоњена декларација је овде"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization of function concept %qD"
 msgstr "експлицитна специјализација не-шаблонског %qT"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ACOS at %L must be between -1 and 1"
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "Аргумент у ACOS код %L мора бити између -1 и 1"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr ""
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "        %qD"
 msgid "        %s"
 msgstr "        %qD"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "декларација %q+D заклања параметар"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "декларација %q+D заклања параметар"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "template parameter %qD declared here"
 msgstr "шаблонски параметарски тип %qT декларисан пријатељским"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "specialization of variable concept %q#D"
 msgstr "експлицитна специјализација не-шаблонског %qT"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "template parameters not deducible in partial specialization:"
 msgstr "шаблонски параметри неискоришћени у делимичној специјализацији:"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "делимична специјализација %qT не специјализује ниједан шаблонски аргумент"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr ""
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qs"
 msgid "too many arguments for partial specialization %qT"
 msgstr "превише аргумената за функцију %qs"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %qD is not more specialized than"
 msgstr "делимична специјализација %qT не специјализује ниједан шаблонски аргумент"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template %q#D"
 msgid "primary template %qD"
 msgstr "декларација шаблона %q#D"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT of template argument %qE depends on template parameter(s)"
 msgid "type %qT of template argument %qE depends on a template parameter"
@@ -69581,19 +69619,19 @@ msgstr[1] "тип %qT шаблонског аргумента %qE зависи 
 msgstr[2] "тип %qT шаблонског аргумента %qE зависи од шаблонских параметара"
 msgstr[3] "тип %qT шаблонског аргумента %qE зависи од шаблонских параметара"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "двосмислено извођење шаблона класе за %q#T"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %qD after instantiation"
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "специјализација %qD после извођења"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "нема подразумеваног аргумента за %qD"
@@ -69602,53 +69640,53 @@ msgstr "нема подразумеваног аргумента за %qD"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "%qD употребљено без параметара шаблона"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, fuzzy, gcc-internal-format
 #| msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "подразумевани аргументи нису дозвољени у декларацији пријатељске специјализације шаблона %qD"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "шаблонски параметри неискоришћени у делимичној специјализацији:"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "default template arguments may not be used in partial specializations"
 msgstr "шаблонски параметри неискоришћени у делимичној специјализацији:"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for parameter of type %qT has type %qT"
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "подразумевани аргумент за параметар типа %qT има тип %qT"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD declared void"
 msgid "template %qD declared"
 msgstr "параметар %qD декларисан празним"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "шаблонска класа без имена"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "member template %qD may not have virt-specifiers"
@@ -69659,65 +69697,65 @@ msgstr "%sчланска функција %qD не може имати кн-од
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "неисправна декларација шаблона %qD"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "шаблонска дефиниција нешаблонског %q#D"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "очекивах %d нивоа шаблонских параметара за %q#D, добих %d"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "добих %d шаблонских параметара за %q#D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "добих %d шаблонских параметара за %q#T"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  а потребно је %d"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters do not match template"
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "параметри шаблона се не поклапају са шаблоном"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, fuzzy, gcc-internal-format
 #| msgid "enclosing class templates are not explicitly specialized"
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "обухватајући шаблони класа не бивају експлицитно специјализовани"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qF throws different exceptions"
 msgid "redeclaration of %qD with different constraints"
 msgstr "декларација %qF баца различите изузетке"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT није шаблонски тип"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "наводиоци шаблона нису задати у декларацији %qD"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "redeclared with %d template parameter"
@@ -69727,7 +69765,7 @@ msgstr[1] "%qD употребљено без параметара шаблона
 msgstr[2] "%qD употребљено без параметара шаблона"
 msgstr[3] "%qD употребљено без параметара шаблона"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+#D here"
 msgid "previous declaration %qD used %d template parameter"
@@ -69737,486 +69775,486 @@ msgstr[1] "претходном декларацијом %q+#D овде"
 msgstr[2] "претходном декларацијом %q+#D овде"
 msgstr[3] "претходном декларацијом %q+#D овде"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "шаблонски параметар %q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "поново декларисано овде као %q#D"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 #| msgid "redeclared here as %q#D"
 msgid "redeclared here"
 msgstr "поново декларисано овде као %q#D"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qF throws different exceptions"
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "декларација %qF баца различите изузетке"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 #| msgid "%J  original definition appeared here"
 msgid "original declaration appeared here"
 msgstr "%J  првобитна дефиниција налази се овде"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qF throws different exceptions"
 msgid "redeclaration of %q#D with different constraints"
 msgstr "декларација %qF баца различите изузетке"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qE није исправан шаблонски аргумент за тип %qT јер је показивач"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE није исправан шаблонски аргумент за тип %qT јер објекат %qD нема спољашњу повезивост"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qE није исправан шаблонски аргумент типа %qT јер %qD нема спољашњу повезивост"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "(показивач на члан може бити формиран само помоћу %<&%E%>)"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a member of %qT"
 msgid "because it is a member of %qT"
 msgstr "%qT није члан из %qT"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 #| msgid "got %d template parameters for %q#D"
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "добих %d шаблонских параметара за %q#D"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr ""
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %q#T and %q#T"
 msgid "  mismatched types %qT and %qT"
 msgstr "поређење између типова %q#T и %q#T"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr ""
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %qE involves template parameter(s)"
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "шаблонски аргумент %qE уплиће шаблонске параметре"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "  %qE is not equivalent to %qE"
 msgstr "%qs није исправно за %qs"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, fuzzy, gcc-internal-format
 #| msgid "Inconsistent ranks for operator at %L and %L"
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr "Неусаглашени рангови за оператор код %L и %L"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr ""
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr ""
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "делимична специјализација %qT не специјализује ниједан шаблонски аргумент"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' at %L is not allowed as an actual argument"
 msgid "  member function type %qT is not a valid template argument"
 msgstr "Наредбена функција ‘%s’ код %L није дозвољена као стварни аргумент"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert type %qT to type %qT"
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "не може се претворити из типа %qT у %qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is an ambiguous base of %qT"
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "%qT је двосмислена основа за %qT"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not derived from type %qT"
 msgid "  %qT is not derived from %qT"
 msgstr "тип %qT није изведен из типа %qT"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type %qT"
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "не може се %s показивач на непотпуни тип %qT"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "argument of type %qT does not match %qT"
 msgid "  template argument %qE does not match %qE"
 msgstr "аргумент типа %qT не поклапа се са %qT"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qE is not a variable"
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE није исправан шаблонски аргумент типа %qT јер %qE није променљива"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE није исправан шаблонски аргумент типа %qT јер %qD нема спољашњу повезивост"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qE is not a variable"
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE није исправан шаблонски аргумент типа %qT јер %qE није променљива"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will always evaluate as %<true%>"
 msgid "the address of %qD is not a valid template argument"
 msgstr "адреса за %qD ће увек бити израчуната као %<true%>"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "%qE није исправан шаблонски аргумент типа %qT јер %qD нема спољашњу повезивост"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qD није исправан шаблонски аргумент јер је %qD променљива, а не адреса неке променљиве"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qD није исправан шаблонски аргумент јер је %qD променљива, а не адреса неке променљиве"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE није исправан шаблонски аргумент за тип %qT јер се константне ниске не могу користити у овом контексту"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 #| msgid "template argument for %qD uses local type %qT"
 msgid "in template argument for type %qT"
 msgstr "шаблонски аргумент за %qD користи локални тип %qT"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "аргумент атрибута %qs није константна ниска"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE није исправан шаблонски аргумент за тип %qT јер се коси са кн-одредбом"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE није исправан шаблонски аргумент за тип %qT јер није л-вредност"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is a non-constant expression"
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%qE није исправан шаблонски аргумент за тип %qT јер није константан израз"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE није исправан шаблонски аргумент за тип %qT јер је показивач"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "покушајте са %qE уместо тога"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE није исправан шаблонски аргумент за тип %qT јер је типа %qT"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, fuzzy, gcc-internal-format
 #| msgid "applying attributes to template parameters is not implemented"
 msgid "ignoring attributes on template argument %qT"
 msgstr "примењивање атрибута на шаблонске параметре није имплементирано"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 #| msgid "Ignoring statement label in empty statement at %C"
 msgid "ignoring attributes in template argument %qE"
 msgstr "Игноришем етикету наредбе у празној наредби код %C"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, fuzzy, gcc-internal-format
 #| msgid "name of class shadows template template parameter %qD"
 msgid "injected-class-name %qD used as template template argument"
 msgstr "име класе заклања шаблонски шаблонски параметар %qD"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of destructor %qD as a type"
 msgid "invalid use of destructor %qE as a type"
 msgstr "неисправна употреба деструктора %qD као типа"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "да упутите на тип шаблонског параметра, употребите %<typename %E%>"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "неслагање типа/вредности код аргумента %d у листи шаблонских параметара за %qD"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  очекивах константу типа %qT, добих %qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr ""
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  очекивах шаблон класе, добих %qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  очекивах тип, добих %qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr " очекивах тип, добих %qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  очекивах шаблон класе, добих %qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a template of type %qD, got %qD"
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  очекивах шаблон типа %qD, добих %qD"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 #| msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "неслагање типа/вредности код аргумента %d у листи шаблонских параметара за %qD"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a type, got %qE"
 msgid "  expected %qD but got %qD"
 msgstr "  очекивах тип, добих %qE"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 #| msgid "could not convert template argument %qE to %qT"
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "нисам могао да претворим шаблонски аргумент %qE у %qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "неисправан шаблонски аргумент %d"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "погрешан број шаблонских аргумената ((%d, а треба %d)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d)"
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "погрешан број шаблонских аргумената ((%d, а треба %d)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, fuzzy, gcc-internal-format
 #| msgid "provided for %q+D"
 msgid "provided for %qD"
 msgstr "дат за %q+D"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, fuzzy, gcc-internal-format
 #| msgid "default argument given for parameter %d of %q#D"
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "подразумевани аргумент дат за параметар %d у %q#D"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%q#D is not a function template"
 msgstr "%qD није шаблон функције"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "нешаблонски тип %qT употребљен као шаблон"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "за декларацију шаблона %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "template constraint failure for %qD"
 msgstr "декларација шаблона %q#D"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 #| msgid "use of %qs in template"
 msgid "use of invalid variable template %qE"
 msgstr "употреба %qs у шаблону"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "дубина извођења шаблона премашује максимум од %d (употребите -ftemplate-depth-NN да повећате дубину) извођења %qD"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr ""
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 #| msgid "argument to \"%s\" should be a non-negative integer"
 msgid "score argument must be non-negative"
 msgstr "аргумент за „%s“ треба да је ненегативан цео број"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr ""
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member in union"
 msgid "flexible array member %qD in union"
 msgstr "%Jфлексибилан члански низ у унији"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not at beginning of declaration"
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE није на почетку декларације"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr ""
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr ""
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of default argument for %q#D"
 msgid "  when instantiating default argument for call to %qD"
 msgstr "поновљена дефиниција подразумеваног аргумента за %q#D"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "стварање показивача на чланску функцију некласног типа %qT"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr ""
@@ -70234,324 +70272,324 @@ msgstr ""
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "променљива %qD има функцијски тип"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "неисправан тип параметра %qT"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "у декларацији %q+D"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "функција враћа низ"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "функција враћа функцију"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "обликовање упућивача на празно"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, fuzzy, gcc-internal-format
 #| msgid "forming %s to reference type %qT"
 msgid "forming pointer to reference type %qT"
 msgstr "обликовање %s на тип упућивача %qT"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, fuzzy, gcc-internal-format
 #| msgid "forming %s to reference type %qT"
 msgid "forming reference to reference type %qT"
 msgstr "обликовање %s на тип упућивача %qT"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring %qV qualifiers added to function type %qT"
 msgid "forming pointer to qualified function type %qT"
 msgstr "игнорисање %qV одредбе додате функцијском типу %qT"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 #| msgid "ignoring %qV qualifiers added to function type %qT"
 msgid "forming reference to qualified function type %qT"
 msgstr "игнорисање %qV одредбе додате функцијском типу %qT"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "стварање показивача на члан некласног типа %qT"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "стварање показивача на члан упућивачког типа %qT"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "стварање показивача на члан празног типа"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "стварање низа типа %qT"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT није тип класе, структуре, нити уније"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT се разрешава до %qT, што није набројиви тип"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 #| msgid "%qT resolves to %qT, which is is not a class type"
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT се разрешава до %qT, што није класни тип"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "употреба %qs у шаблону"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, fuzzy, gcc-internal-format
 #| msgid "qualified type %qT does not match destructor name ~%qT"
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "одређени тип %qT не поклапа се са именом деструктора ~%qT"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "зависно име %qE рашчлањује се као не-тип, али извођење производи тип"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "ставите %<typename %E%> ако мислите на тип"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr ""
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of void expression"
 msgid "invalid use of pack expansion expression"
 msgstr "неисправна употреба израза празног типа"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, fuzzy, gcc-internal-format
 #| msgid "%<...%> as arguments.)"
 msgid "use %<...%> to expand argument pack"
 msgstr "%<...%> за аргументе.)"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr ""
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a type"
 msgid "use %<%T::%D%> instead"
 msgstr "%<%T::%D%> није тип"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qE undeclared here (not in a function)"
 msgid "%qD declared here, later in the translation unit"
 msgstr "%H%qE недекларисано овде (не у функцији)"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %<__builtin_return_address%>"
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "неподржан аргумент за %<__builtin_return_address%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qs attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "погрешан број аргумената наведне за атрибут %qs"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT није ни класа ни именски простор"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD није ни класа ни именски простор"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "употреба неисправног поља %qD"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is/uses anonymous type"
 msgid "%qT is/uses unnamed type"
 msgstr "%qT јесте/користи анонимни тип"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "шаблонски аргумент за %qD користи локални тип %qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT је променљиво измењив тип"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "интегрални израз %qE није константа"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  покушај извођења %qD"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "ambiguous template instantiation for %q#T"
 msgstr "двосмислено извођење шаблона класе за %q#T"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "ambiguous template instantiation for %q#D"
 msgstr "двосмислено извођење шаблона класе за %q#T"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 #| msgid "%s %+#D"
 msgid "%s %#qS"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "експлицитно извођење не-шаблона %q#D"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "експлицитно извођење не-шаблона %q#D"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of function concept %q#D"
 msgstr "експлицитно извођење не-шаблона %q#D"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D is not a non-static data member of %qT"
 msgid "%qD is not a static data member of a class template"
 msgstr "%q#D је нестатички члански податак у %qT"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "поклапајући шаблон за %qD није нађен"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template type %qT"
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "експлицитно извођење нешаблонског типа %qT"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "експлицитно извођење %q#D"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "удвостручено експлицитно извођење %q#D"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ИСО Ц++ забрањује употребу %<extern%> на експлицитним извођењима"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "складишна класа %qD примењена на извођење шаблона"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of non-class template %qD"
 msgstr "експлицитно извођење не-шаблона %q#D"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "експлицитно извођење нешаблонског типа %qT"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "експлицитно извођење %q#T пре дефиниције шаблона"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ИСО Ц++ забрањује употребу %qE на експлицитним извођењима"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "удвостручено експлицитно извођење %q#T"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "exception specification of %qD depends on itself"
@@ -70564,181 +70602,181 @@ msgstr "експлицитна специјализација %qD после п
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "експлицитно извођење %qD али дефиниција није доступна"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth-NN to increase the maximum)"
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "дубина извођења шаблона премашује максимум од %d извођења %q+D, могуће услед стварања виртуелних табела (употребите -ftemplate-depth-NN да повећате максимум)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a valid type for a template constant parameter"
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%q#T није исправан тип за шаблонски константан параметар"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, fuzzy, gcc-internal-format
 #| msgid "using template type parameter %qT after %qs"
 msgid "invalid template non-type parameter"
 msgstr "употреба параметра шаблонског типа %qT после %qs"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a valid type for a template constant parameter"
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T није исправан тип за шаблонски константан параметар"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, fuzzy, gcc-internal-format
 #| msgid "keyword %<typename%> not allowed outside of templates"
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "кључна реч %<typename%> није дозвољена изван шаблона"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 #| msgid "opaque vector types cannot be initialized"
 msgid "a concept cannot be constrained"
 msgstr "непрозирни векторски типови не могу бити успостављени"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a namespace"
 msgid "concept %qE not in namespace scope"
 msgstr "%qT није именски простор"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 #| msgid "definition of %q#T inside template parameter list"
 msgid "concept %qE has multiple template parameter lists"
 msgstr "дефиниција %q#T унутар листе шаблонских параметара"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr ""
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "non-deducible template %qT used without template arguments"
 msgstr "%qD употребљено без параметара шаблона"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "use %qD directly instead"
 msgstr "користите #include уместо тога"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr ""
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "class template argument deduction failed:"
 msgstr "неисправан шаблонски аргумент %d"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 #| msgid "function not considered for inlining"
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "функција се не разматра за уткивање"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 #| msgid "explicit qualification in declaration of %qD"
 msgid "explicit deduction guide declared here"
 msgstr "експлицитна одредба у декларацији %qD"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr ""
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 #| msgid "Invalid method declaration, return type required"
 msgid "unable to deduce lambda return type from %qE"
 msgstr "Неисправна декларација метода, неопходан је повратни тип"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, fuzzy, gcc-internal-format
 #| msgid "unable to emulate %qs"
 msgid "unable to deduce %qT from %qE"
 msgstr "не могу да емулирам %qs"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "ија не задовољава своја ограничења:"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "ија не задовољава своја ограничења:"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "ија не задовољава своја ограничења:"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 #| msgid "use of %qs in template"
 msgid "invalid use of %qT in template argument"
@@ -70966,695 +71004,695 @@ msgstr "тип asm-операнда %qE не може бити одређен"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "декларације објективног Ц-а могу се јављати само у глобалном досегу"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in static member function"
 msgstr "неисправна употреба члана %q+D у статичкој чланској функцији"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "неисправна употреба члана %q+D у статичкој чланској функцији"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "неисправна употреба члана %q+D у статичкој чланској функцији"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "parse error in template argument list"
 msgid "%qE missing template arguments"
 msgstr "грешка у рашчлањивању листе шаблонских аргумената"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "cannot call a concept as a function"
 msgstr "%qE не може бити употребљено као функција"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "аргументи нису дозвољени у деструктору"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "%<this%> није доступно за статичке чланске функције"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, fuzzy, gcc-internal-format
 #| msgid "used %d template parameter(s) instead of %d"
 msgid "use explicit object parameter %qs instead"
 msgstr "употребљено је %d шаблонских параметара уместо %d"
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr ""
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "%<this%> није доступно за статичке чланске функције"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> before it is valid"
 msgstr "неисправна употреба %<this%> на највишем нивоу"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> after it is valid"
 msgstr "неисправна употреба %<this%> на највишем нивоу"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "неисправна употреба %<this%> у нечланској функцији"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "неисправна употреба %<this%> на највишем нивоу"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "неисправан одредбени досег у имену псеудодеструктора"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "одређени тип %qT не поклапа се са именом деструктора ~%qT"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE није типа %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "сложени дословни необјектног типа %qT"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr ""
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "типски параметри шаблона морају користити кључну реч %<class%> или %<typename%>"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "неисправна употреба типа %qT као подразумеване вредности за шаблонски шаблонски параметар"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "неисправан подразумевани аргумент за шаблонски шаблонски параметар"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "дефиниција %q#T унутар листе шаблонских параметара"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "неисправна дефиниција одређеног типа %qT"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "неисправан навод основне класе"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, fuzzy, gcc-internal-format
 #| msgid "protected member %q+#D in anonymous union"
 msgid "cannot capture member %qD of anonymous union"
 msgstr "заштићени члан %q+#D у анонимној унији"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a type"
 msgid "%qD is not captured"
 msgstr "%qD није тип"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<auto%> variable from containing function"
 msgid "use of local variable with automatic storage from containing function"
 msgstr "употреба %<auto%> променљиве из обухватајуће функције"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "употреба параметра из обухватајуће вункције"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 #| msgid "use of parameter from containing function"
 msgid "use of parameter outside function body"
 msgstr "употреба параметра из обухватајуће вункције"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 #| msgid "parse error in template argument list"
 msgid "missing template arguments"
 msgstr "грешка у рашчлањивању листе шаблонских аргумената"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "шаблонски параметар %qD типа %qT није дозвољен у интегралном константном изразу јер није интегралног или набројивог типа"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "употреба шаблона класе %qT као израза"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "захтев за члан %qD двосмислен је у вишеструком снопу наслеђивања"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD се не може јавити у константном изразу"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "тип за %qE није познат"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a template type"
 msgid "%qT is not an enumeration type"
 msgstr "%qT није шаблонски тип"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 #| msgid "array bound is not an integer constant"
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "граница низа није целобројна константа"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr ""
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specifiers invalid in parameter declarations"
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "наводиоци складишне класе нису исправни у декларацијама параметара"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "не може се применити %<offsetof%> на деструктор %<~%T%>"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "не може се применити %<offsetof%> на чланску функцију %qD"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to member function %qD"
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "не може се применити %<offsetof%> на чланску функцију %qD"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to member function %qD"
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "не може се применити %<offsetof%> на чланску функцију %qD"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
 msgstr ""
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 #| msgid "reference to %qD is ambiguous"
 msgid "user defined reduction lookup is ambiguous"
 msgstr "двосмислено упућивање на %qD"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr ""
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has invalid type for %<reduction%>"
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE има неисправан тип за %<reduction%>"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "linear step expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD није променљива у одредби %qs"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %<firstprivate%>"
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "%qE није променљива у одредби %<firstprivate%>"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %<lastprivate%>"
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qE није променљива у одредби %<lastprivate%>"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<gang%> static expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<gang%> static value must be positive"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<gang%> num expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<vector%> length expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<worker%> num expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<gang%> num value must be positive"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<vector%> length value must be positive"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, fuzzy, gcc-internal-format
 #| msgid "%<num_threads%> value must be positive"
 msgid "%<worker%> num value must be positive"
 msgstr "вредност %<num_threads%> мора бити позитивна"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "израз за величину одломка при распоређивању мора бити интегрални"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%qs length expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "листа израза %s узима се као сложени израз"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<async%> expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<thread_limit%> expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, fuzzy, gcc-internal-format
 #| msgid "%<continue%> must be in loop"
 msgid "%<device%> id must be integral"
 msgstr "%<continue%> мора бити у оквиру петље"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, fuzzy, gcc-internal-format
 #| msgid "schedule chunk size expression must be integral"
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "израз за величину одломка при распоређивању мора бити интегрални"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD није променљива у одредби %qs"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qD се појављује више од једном у одредбама података"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, fuzzy, gcc-internal-format
 #| msgid "schedule chunk size expression must be integral"
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "израз за величину одломка при распоређивању мора бити интегрални"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD није променљива у одредби %qs"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD се појављује више од једном у одредбама података"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not allowed in other than a declaration"
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%<[*]%> није дозвољено другде осим у декларацији"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in clause %qs"
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD није променљива у одредби %qs"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD се појављује више од једном у одредбама података"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr ""
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 #| msgid "reimplementation of class %qs"
 msgid "template %qE in clause %qs"
 msgstr "поновљена имплементација класе %qs"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<grainsize%> expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<priority%> expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<hint%> expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "листа израза %s узима се као сложени израз"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 #| msgid "num_threads expression must be integral"
 msgid "%<filter%> expression must be integral"
 msgstr "израз за num_threads мора бити интегрални"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 #| msgid "subscripted value is neither array nor pointer"
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "индексирана вредност није ни низ ни показивач"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 #| msgid "%<tree%> is not defined as a pointer type"
 msgid "%<tile%> argument needs integral type"
 msgstr "%<tree%> није дефинисано као показивачки тип"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, fuzzy, gcc-internal-format
 #| msgid "%<threadprivate%> %qE is not file, namespace or block scope variable"
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr "%<threadprivate%> %qE није датотека, именски простор нити променљива блоковског досега"
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, fuzzy, gcc-internal-format
 #| msgid "%<threadprivate%> %qE has incomplete type"
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "нитно-локално %qE има непотпун тип"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, fuzzy, gcc-internal-format
 #| msgid "%Hinvalid type for iteration variable %qE"
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "%Hнеисправан тип променљиве итерације %qE"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr ""
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 #| msgid "CRIS-port assertion failed: "
 msgid "static assertion failed: %.*s"
 msgstr "Тврдња КРИС-порта није прошла: "
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, fuzzy, gcc-internal-format
 #| msgid "non-static declaration of %q+D follows static declaration"
 msgid "non-constant condition for static assertion"
 msgstr "нестатичка декларација %q+D прати статичку декларацију"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 #| msgid "second argument to %<__builtin_expect%> must be a constant"
 msgid "argument to %<decltype%> must be an expression"
 msgstr "други аргумент за %<__builtin_expect%> мора бити константа"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot resolve address of overloaded function"
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "%s не може да разреши адресу препуњене функције"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "%<__builtin_next_arg%> позвано без аргумената"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a class or namespace"
 msgid "%qD is not a class or alias template"
 msgstr "%qD није ни класа ни именски простор"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
 #| msgid "left-hand operand of comma expression has no effect"
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "леви операнд зарез-израза нема ефекта"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %qE involves template parameter(s)"
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "шаблонски аргумент %qE уплиће шаблонске параметре"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %<__builtin_return_address%>"
 msgid "non-pointer argument to %<__builtin_launder%>"
@@ -71663,1303 +71701,1303 @@ msgstr "неподржан аргумент за %<__builtin_return_address%>"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "%qV одредбе не могу се применити на %qT"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "statement-expression in a constant expression"
 msgstr "Лош тип у константном изразу"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid " declared here"
 msgstr "%q+D декларисано овде"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "base class %qT has cv qualifiers"
 msgid "base class %qT is not public"
 msgstr "основна класа %qT има кн-одредбе"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a type"
 msgid "%qD is not public"
 msgstr "%qD није тип"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a type"
 msgid "%qD is mutable"
 msgstr "%qD није тип"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has an incomplete type"
 msgid "%qD has a non-structural type"
 msgstr "%qD има непотпун тип"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "атрибут %qE може се применити само на дефиниције класа"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute argument not a string constant"
 msgid "%qE attribute argument must be a string constant"
 msgstr "аргумент атрибута %qs није константна ниска"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "атрибут %qE може се применити само на дефиниције класа"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "атрибут %qE може се применити само на дефиниције класа"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "атрибут %qE може се применити само на дефиниције класа"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qE attribute applies only to functions"
 msgid "%qE attribute takes no arguments"
 msgstr "%Jатрибут %qE примењује се само на функције"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr ""
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is not an integer constant"
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "захтевано init_priority није целобројна константа"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "атрибут %qE може се користити само уз дефиниције објеката класног типа у датотечном досегу"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is out of range"
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "захтевано init_priority је ван опсега"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is reserved for internal use"
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "захтевано init_priority резервисано је за унутрашњу употребу"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as %s"
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "декларација %qD као %s"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires a single NTBS argument"
 msgid "the %qE attribute requires arguments"
 msgstr "атрибут %qs захтева тачно један НТБС аргумент"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "аргумент атрибута %qs није константна ниска"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "аргумент атрибута %qs није константна ниска"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a valid declarator"
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%T::%D%> није исправан декларатор"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a valid declarator"
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%T::%D%> није исправан декларатор"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on non-class types"
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "атрибут %qE се игнорише на не-класним типовима"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "атрибут %qE може се применити само на дефиниције класа"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 #| msgid "attributes ignored on template instantiation"
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "атрибут се игнорише при извођењу шаблона"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, fuzzy, gcc-internal-format
 #| msgid "attributes ignored on template instantiation"
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "атрибут се игнорише при извођењу шаблона"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qE attribute applies only to functions"
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "%Jатрибут %qE примењује се само на функције"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qE attribute applies only to functions"
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "%Jатрибут %qE примењује се само на функције"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr ""
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, fuzzy, gcc-internal-format
 #| msgid "array bound is not an integer constant"
 msgid "zero as null pointer constant"
 msgstr "граница низа није целобројна константа"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "lang_* check: failed in %s, at %s:%d"
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "провера lang_*: крах у %s, код %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "недостаје претапање за %s између различитих типова показивача %qT и %qT"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "недостаје претапање за %s између различитих типова показивача %qT и %qT"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "недостаје претапање за %s између различитих типова показивача %qT и %qT"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ИСО Ц++ забрањује %s између показивача типа %<void *%> и показивача-на-функцију"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ИСО Ц++ забрањује %s између показивача типа %<void *%> и показивача-на-функцију"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ИСО Ц++ забрањује %s између показивача типа %<void *%> и показивача-на-функцију"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "недостаје претапање за %s између различитих типова показивача-на-члан %qT и %qT"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "недостаје претапање за %s између различитих типова показивача-на-члан %qT и %qT"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "недостаје претапање за %s између различитих типова показивача-на-члан %qT и %qT"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "операнди у ?: различитих су типова %qT и %qT"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "операнди у ?: различитих су типова %qT и %qT"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "неисправна примена %qs на чланску функцију"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "неисправна примена %<sizeof%> на битско поље"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ИСО Ц++ забрањује примену %<sizeof%> на израз функцијског типа"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "неисправна примена %<__alignof%> на битско поље"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ИСО Ц++ забрањује примену %<__alignof%> на израз функцијског типа"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 #| msgid "size of array has non-integral type %qT"
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "величина низа има неинтегрални тип %qT"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "invalid use of non-static member function of type %qT"
 msgstr "неисправна употреба нестатичке чланске функције %qD"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, fuzzy, gcc-internal-format
 #| msgid "deprecated conversion from string constant to %qT"
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "превазиђено претварање из константне ниске у %qT"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "превазиђено претварање из константне ниске у %qT"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, fuzzy, gcc-internal-format
 #| msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "захтев за члан %qD у %qE, које је не-класног типа %qT"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "захтев за члан %qD у %qE, које је не-класног типа %qT"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of nonstatic data member %qE"
 msgid "invalid use of non-static data member %qE"
 msgstr "неисправна употреба нестатичког чланског податка %qE"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 #| msgid "invalid access to non-static data member %qD of NULL object"
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "неисправан приступ нестатичком чланском податку %qD нултог објекта"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, fuzzy, gcc-internal-format
 #| msgid "qualified type %qT does not match destructor name ~%qT"
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "одређени тип %qT не поклапа се са именом деструктора ~%qT"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "тип који се уништава је %qT, али деструктор упућује на %qT"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE"
 msgstr "%qT нема члан по имену %qE"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr ""
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr ""
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%qT нема члан по имену %qE"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> није члан у %qT"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT није основа за %qT"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD није чланска шаблонска функција"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT није типа показивач-на-објекат"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qs on pointer to member"
 msgid "invalid use of array indexing on pointer to member"
 msgstr "неисправна употреба %qs на показивачу-на-члан"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qs on pointer to member"
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "неисправна употреба %qs на показивачу-на-члан"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qs on pointer to member"
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "неисправна употреба %qs на показивачу-на-члан"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "недостаје индекс у упућивачу низа"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "индексирање низа декларисаног као %<register%>"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "индексирана вредност није ни низ ни показивач"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "недостаје објекат у употреби %qE"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ИСО Ц++ забрањује звање %<::main%> унутар програма"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, fuzzy, gcc-internal-format
 #| msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "мора се употребити или %<.*%> или %<->*%> за позив показивача на чланску функцију у %<%E (...)%>"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE не може бити употребљено као функција"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "%qD cannot be used as a function"
 msgstr "%qE не може бити употребљено као функција"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "expression cannot be used as a function"
 msgstr "%qE не може бити употребљено као функција"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to %s %q+#D"
 msgid "too many arguments to constructor %q#D"
 msgstr "превише аргумената за %s %q+#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to %s %q+#D"
 msgid "too few arguments to constructor %q#D"
 msgstr "премало аргумената за %s %q+#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qs"
 msgid "too many arguments to member function %q#D"
 msgstr "превише аргумената за функцију %qs"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %qs"
 msgid "too few arguments to member function %q#D"
 msgstr "премало аргумената за функцију %qs"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qs"
 msgid "too many arguments to function %q#D"
 msgstr "превише аргумената за функцију %qs"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %qs"
 msgid "too few arguments to function %q#D"
 msgstr "премало аргумената за функцију %qs"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to %s %q+#D"
 msgid "too many arguments to method %q#D"
 msgstr "превише аргумената за %s %q+#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to %s %q+#D"
 msgid "too few arguments to method %q#D"
 msgstr "премало аргумената за %s %q+#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "превише аргумената за функцију"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "превише аргумената за функцију"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "параметар %P за %qD непотпуног је типа %qT"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "параметар %P непотпуног је типа %qT"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the address %qE will never be NULL"
 msgstr "адреса за %qD никако не може бити NULL"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "адреса за %qD никако не може бити NULL"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "адреса за %qD никако не може бити NULL"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "адреса за %qD никако не може бити NULL"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "операнди у ?: различитих су типова %qT и %qT"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "недостаје претапање за %s између различитих типова показивача %qT и %qT"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "операнди у ?: различитих су типова %qT и %qT"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "недостаје претапање за %s између различитих типова показивача %qT и %qT"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "cast from function call of type %qT to non-matching type %qT"
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "претапање из функцијског позива типа %qT у непоклапајући тип %qT"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 #| msgid "cast from function call of type %qT to non-matching type %qT"
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "претапање из функцијског позива типа %qT у непоклапајући тип %qT"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic on pointer to an incomplete type"
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "аритметика са показивачем на непотпун тип"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "претпоставља се претапање у тип %qT из препуњене функције"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "NULL употребљено аритметички"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ИСО Ц++ забрањује поређење показивача и целобројног"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, fuzzy, gcc-internal-format
 #| msgid "no type named %q#T in %q#T"
 msgid "operand types are %qT and %qT"
 msgstr "нема типа по имену %q#T у %q#T"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with integer zero"
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "поређење уређености показивача са целобројном нулом"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 #| msgid "unordered comparison on non-floating point argument"
 msgid "unordered comparison on non-floating-point argument"
 msgstr "неуређено поређење са не-реалним аргументом"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 #, fuzzy
 #| msgid "request for implicit conversion from %qT to %qT not permitted in C++"
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "захтев за имплицтно претварање из %qT у %qT није дозвољен у Ц++у"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "неисправни операнди типова %qT и %qT за бинарно %qO"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ИСО Ц++ забрањује употребу показивача типа %<void *%> у одузимању"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ИСО Ц++ забрањује употребу показивача на функцију у одузимању"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ИСО Ц++ забрањује употребу показивача на метод у одузимању"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "неисправна употреба показивача на непотпун тип у аритметици са показивачима"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of constructor %qD"
 msgstr "узимање адресе привременог"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of destructor %qD"
 msgstr "узимање адресе привременог"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "неисправна употреба %qE за добијање показивача-на-чланску-функцију"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  неопходан је одређен ид."
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "заграде око %qE не могу бити коришћене за добијање показивача-на-чланску-функцију"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ИСО Ц++ забрањује узимање адресе неодређене или заграћене нестатичке чланске функције, за добијање показивача на чланску функцију. Употребите %<&%T::%D%>"
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ИСО Ц++ забрањује узимање адресе неодређене или заграћене нестатичке чланске функције, за добијање показивача на чланску функцију. Употребите %<&%T::%D%>"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ИСО Ц++ забрањује узимање адресе везане чланске функције за добијање показивача на чланску функцију. Употребите %<&%T::%D%>"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ИСО Ц++ забрањује узимање адресе везане чланске функције за добијање показивача на чланску функцију. Употребите %<&%T::%D%>"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "(показивач на члан може бити формиран само помоћу %<&%E%>)"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of rvalue"
 msgstr "узимање адресе привременог"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ИСО Ц++ забрањује узимање адресе функције %<::main%>"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "не може се створити показивач на упућивачки члан %qD"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take address of bit-field %qD"
 msgid "attempt to take address of bit-field"
 msgstr "не може се узети адреса битског поља %qD"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr ""
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing an enum"
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ИСО Ц++ забрањује %s-вање набрајања"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing an enum"
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ИСО Ц++ забрањује %s-вање набрајања"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type %qT"
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "не може се %s показивач на непотпуни тип %qT"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type %qT"
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "не може се %s показивач на непотпуни тип %qT"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing a pointer of type %qT"
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ИСО Ц++ забрањује %s-вање показивача типа %qT"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing a pointer of type %qT"
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ИСО Ц++ забрањује %s-вање показивача типа %qT"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "не може се узети адреса од %<this%>, јер је д-вредносни израз"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "затражена је адреса експлицитне регистарске променљиве %qD"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "затражена је адреса од %qD, а декларисано је као %<register%>"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, fuzzy, gcc-internal-format
 #| msgid "initializer for %qT must be brace-enclosed"
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "успостављач за %qT мора бити у витичастим заградама"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "expression list treated as compound expression in initializer"
 msgstr "листа израза %s узима се као сложени израз"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "листа израза %s узима се као сложени израз"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "expression list treated as compound expression in functional cast"
 msgstr "листа израза %s узима се као сложени израз"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "листа израза %s узима се као сложени израз"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from %qT to %qT discards qualifiers"
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "претварање из %qT у %qT одбацује одредбе"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "неисправно статичко претапање из типа %qT у тип %qT"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "неисправно статичко претапање из типа %qT у тип %qT"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type %qT"
 msgid "useless cast to type %q#T"
 msgstr "неисправно претапање у функцијски тип %qT"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "type qualifiers ignored on cast result type"
 msgstr "одредбе типова се игноришу на повратном типу функције"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "неисправно статичко претапање из типа %qT у тип %qT"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "class type %qT is incomplete"
 msgstr "повратни тип %q#T није потпун"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 #| msgid "converting from %qT to %qT"
 msgid "converting from %qH to %qI"
 msgstr "претварање из %qT у %qT"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "неисправно претапање д-вредносног израза типа %qT у тип %qT"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 #, fuzzy
 #| msgid "cast from %qT to %qT loses precision"
 msgid "cast from %qH to %qI loses precision"
 msgstr "претапање из %qT у %qT губи на тачности"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 #, fuzzy
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "недостаје претапање за %s између различитих типова показивача-на-члан %qT и %qT"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 #| msgid "cast from %qT to %qT increases required alignment of target type"
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "претапање из %qT у %qT повећава неопходно равнање циљног типа"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "ИСО Ц++ забрањује претапање између показивача на функцију и показивача на објекат"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "неисправно претапање из типа %qT у тип %qT"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "неисправна употреба константног претапања са типом %qT, који није показивач, нити показивач на члански податак"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "неисправна употреба константног претапања са типом %qT, који је показивач или упућивач на функцијски тип"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast of an rvalue of type %qT to type %qT"
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "неисправно константно претапање д-вредности типа %qT у тип %qT"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast from type %qT to type %qT"
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "неисправно константно претапање из типа %qT у тип %qT"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ИСО Ц++ забрањује претапање у низовни тип %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "неисправно претапање у функцијски тип %qT"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qE from type %qT to type %qT"
 msgid "moving %qE of type %qT to itself"
 msgstr "не може се претворити %qE из типа %qT у тип %qT"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  у израчунавању %<%Q(%#T, %#T)%>"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, fuzzy, gcc-internal-format
 #| msgid "nonconstant array index in initializer"
 msgid "assigning to an array from an initializer list"
 msgstr "неконстантан индекс низа у успостављачу"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "несагласни типови у додели %qT у %qT"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "низ употребљен као успостављач"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "неисправна додела низа"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   у претварању показивача на чланску функцију"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "претварање показивача на члан преко виртуелне основе %qT"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   у претварању показивача на члан"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "неисправно претварање у тип %qT из типа %qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 #| msgid "cannot convert %qT to %qT for argument %qP to %qD"
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "не може се претворити %qT у %qT као аргумент %qP за %qD"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "не може се претворити %qT у %qT у %s"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "не може се претворити %qT у %qT у %s"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in return"
 msgstr "не може се претворити %qT у %qT у %s"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "не може се претворити %qT у %qT у %s"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE might be a candidate for a format attribute"
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "аргумент %d од %qE може бити кандидат за форматски атрибут"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, fuzzy, gcc-internal-format
 #| msgid "return type might be a candidate for a format attribute"
 msgid "parameter might be a candidate for a format attribute"
 msgstr "повратни тип може бити кандидат за форматски атрибут"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, fuzzy, gcc-internal-format
 #| msgid "argument of function call might be a candidate for a format attribute"
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "аргумент позива функције може бити кандидат за форматски атрибут"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, fuzzy, gcc-internal-format
 #| msgid "argument of function call might be a candidate for a format attribute"
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "аргумент позива функције може бити кандидат за форматски атрибут"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, fuzzy, gcc-internal-format
 #| msgid "assignment left-hand side might be a candidate for a format attribute"
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "лева страна доделе може бити кандидат за форматски атрибут"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 #| msgid "in passing argument %P of %q+D"
 msgid "in passing argument %P of %qD"
 msgstr "у прослеђивању аргумента %P за %q+D"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "враћање упућивача на привремени"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "враћање упућивача на привремени"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, fuzzy, gcc-internal-format
 #| msgid "reference to local variable %q+D returned"
 msgid "reference to local variable %qD returned"
 msgstr "враћање упућивача на локалну променљиву %q+D"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of label %qD returned"
 msgstr "враћање адресе локалне променљиве %q+D"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of local variable %qD returned"
 msgstr "враћање адресе локалне променљиве %q+D"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 #| msgid "Missing return statement"
 msgid "redundant move in return statement"
 msgstr "Недостаје наредба повратка"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible types in initialization"
 msgid "redundant move in initialization"
 msgstr "несагласни типови у успостављању"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "враћање вредности из деструктора"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "не може се враћати из руковаоца у блоку покушаја у конструктору"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "враћање вредности из конструктора"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "наредба враћања без вредности, у функцији која враћа %qT"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer"
 msgid "returning initializer list"
 msgstr "недостаје успостављач"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "не могу се дефинисати нови типови у повратном типу"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, fuzzy, gcc-internal-format
 #| msgid "Inconsistent ranks for operator at %L and %L"
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "Неусаглашени рангови за оператор код %L и %L"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 #| msgid "return-statement with no value, in function returning %qT"
 msgid "return-statement with a value, in function returning %qT"
 msgstr "наредба враћања без вредности, у функцији која враћа %qT"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, fuzzy, gcc-internal-format
 #| msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%> не сме вратити NULL, осим ако је декларисан уз %<throw()%> (или је задато -fcheck-new)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr ""
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 #| msgid "invalid %%s value"
 msgid "using rvalue as lvalue"
@@ -73210,168 +73248,168 @@ msgstr ""
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "употребљена синтакса конструктора, али конструктор није декларисан за тип %qT"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 #| msgid "variable %qD may not have been initialized"
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "променљива %qD можда није успостављена"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 #| msgid "conversion of %qE from %qT to %qT is ambiguous"
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "двосмислено претварање %qE из %qT у %qT"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "неисправно претварање из %qT у %qT"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr ""
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 #| msgid "initializer-string for array of chars is too long"
 msgid "initializer-string for %qT is too long"
 msgstr "предугачка ниска успостављача за низ знакова"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "remove %<{ }%> around initializer"
 msgstr "витичасте заграде око скаларног успостављача"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "скупина типа %qT не може се успостављати сложеном константном"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "недостаје успостављач за члан %qD"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "члан %qD је неуспостављен упућивач"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD is uninitialized reference"
 msgid "member %qD with uninitialized reference fields"
 msgstr "члан %qD је неуспостављен упућивач"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 #| msgid "prototype for %q#D does not match any in class %qT"
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "прототип за %q#D не одговара ниједном у класи %qT"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "поље %qD није нађено у унији која се успоставља"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "индексна вредност уместо имена поља у успостављачу уније"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "откривено кружно прослеђивање показивача"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "основни операнд за %<->%> непоказивачког је типа %qT"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "%<operator->()%> производи непоказивачки резултат"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "основни операнд за %<->%> није показивач"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE се не може користити као члански показивач, пошто је типа %qT"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "члански показивач %qE не може се применити на %qE, које је некласног типа %qT"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "тип показивача на члан %qT није сагласан са типом објекта %qT"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "показивач на чланску функцију употребљен у аритметици"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "показивач на чланску функцију употребљен у аритметици"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr ""
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type %qT"
 msgid "functional cast to array type %qT"
 msgstr "неисправно претапање у функцијски тип %qT"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr ""
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, fuzzy, gcc-internal-format
 #| msgid "%Jdefault-initialization of %q#D, which has reference type"
 msgid "invalid value-initialization of reference type"
 msgstr "%Jподразумевано успостављање %q#D, које је упућивачког типа"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "позив функције %qD која баца непотпун тип %q#T"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "позив функције која баца непотпун тип %q#T"
@@ -74438,7 +74476,7 @@ msgstr ""
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "аргумент атрибута %qs није константна ниска"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad kind for logical constant at %C"
 msgid "Invalid use of BOZ literal constant at %L"
@@ -75924,7 +75962,7 @@ msgstr "Лоша одредница намере код %C"
 msgid "deferred type parameter at %C"
 msgstr "употреба параметра шаблонског типа %qT после %qs"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -76158,7 +76196,7 @@ msgstr ""
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "Низовна компонента структуре код %C мора имати експлицитан или одложени облик"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "Component %qs at %C already declared at %L"
@@ -77035,7 +77073,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "Очекивана је формална листа аргумената у дефиницији функције код %C"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr ""
@@ -77927,12 +77965,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr ""
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -78201,306 +78239,306 @@ msgstr "Параметар ‘%s’ код %L није декларисан ил
 msgid "check_init_expr(): Unknown expression type"
 msgstr "Очекиван је тип израза"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be a statement function"
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "Одредничка функција ‘%s’ код %L не може бити наредбена функција"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be an internal function"
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "Одредничка функција ‘%s’ код %L не може бити унутрашња функција"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L must be PURE"
 msgid "Specification function %qs at %L must be PURE"
 msgstr "Одредничка функција ‘%s’ код %L мора бити чиста"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be RECURSIVE"
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "Одредничка функција ‘%s’ код %L не може бити рекурзивна"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "Променљива ‘%s’ се не може јавити у изразу код %L"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be OPTIONAL"
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "Лажни аргумент ‘%s’ код %L не може бити опцион"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "Лажни аргумент ‘%s’ код %L не може бити намере-из"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "Променљива ‘%s’ се не може јавити у изразу код %L"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression type"
 msgid "check_restricted(): Unknown expression type"
 msgstr "Очекиван је тип израза"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expression at %L must be of INTEGER type"
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "Израз код %L мора бити целобројног типа"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L must be PURE"
 msgid "Function %qs at %L must be PURE"
 msgstr "Одредничка функција ‘%s’ код %L мора бити чиста"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "Израз код %L мора бити скалар"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Incompatible ranks in %s at %L"
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "Несагласни рангови у %s код %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "different shape for %s at %L on dimension %d (%d/%d)"
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "%s код %L има различит облик за димензију %d (%d/%d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L is not a VALUE"
 msgid "%qs at %L is not a VALUE"
 msgstr "‘%s’ код %L није вредност"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Illegal stride of zero at %L"
 msgid "Illegal assignment to external procedure at %L"
 msgstr "Недозвољен нулти корак код %L"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "Несагласни рангови %d и %d у додели код %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "Тип променљиве је UNKNOWN у додели код %L"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "Појављује се NULL на десној страни у додели код %L"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "POINTER valued function appears on right-hand side of assignment at %L"
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "Функција са показивачком вредношћу појављује се на десној страни доделе код %L"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Incompatible types in assignment at %L, %s to %s"
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "Несагласни типови у додели код %L, %s у %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "Циљ доделе показивача није показивач код %L"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "‘%s’ у додели показивача код %L не може бити л-вредност јер је процедура"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, fuzzy, gcc-internal-format
 #| msgid "Duplicate %s specification at %C"
 msgid "Expected bounds specification for %qs at %L"
 msgstr "Удвостручена одредница %s код %C"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, fuzzy, gcc-internal-format
 #| msgid "Different types in pointer assignment at %L"
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Различити типови у додели показивача код %L"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "stack size must not be greater than 64k"
 msgid "Stride must not be present at %L"
 msgstr "величина стека не сме бити већа од 64k"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "External object '%s' at %L may not have an initializer"
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "Спољашњи објекат ‘%s’ код %L не може имати успостављач"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Different types in pointer assignment at %L"
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "Различити типови у додели показивача код %L"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, fuzzy, gcc-internal-format
 #| msgid "Different kind type parameters in pointer assignment at %L"
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "Различите врсте типова параметара у додели показивача код %L"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, fuzzy, gcc-internal-format
 #| msgid "Different kind type parameters in pointer assignment at %L"
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "Различите врсте типова параметара у додели показивача код %L"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' requires argument list at %C"
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "Наредбена функција ‘%s’ захтева листу аргумената код %C"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Унутрашња процедура ‘%s’ код %L није дозвољена као стварни аргумент"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L is not allowed as an actual argument"
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "Сопствено ‘%s’ код %L није дозвољено као стварни аргумент"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr ""
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr ""
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, fuzzy, gcc-internal-format
 #| msgid "Expected a procedure for argument '%s' at %L"
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "Очекивана је процедура за аргумент ‘%s’ код %L"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate interface declaration for class %qs"
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "удвостручена декларација сучеља за класу %qs"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Different character lengths in pointer assignment at %L"
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "Различите знаковне дужине у додели показивача код %L"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "Циљ доделе показивача није показивач код %L"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Different types in pointer assignment at %L"
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "Различити типови у додели показивача код %L"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "Различите врсте типова параметара у додели показивача код %L"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "Различити рангови у додели показивача код %L"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Rank remapping target is not rank 1 at %L"
@@ -78509,203 +78547,203 @@ msgstr "Циљ доделе показивача није показивач к
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Data target at %L shall not have a coindex"
 msgstr "Елемент преноса података код %L не може имати показивачке компоненте"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "Изборни израз у рачунском GOTO код %L мора бити скаларни целобројан израз"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "Циљ доделе показивача није ни циљ ни показивач код %L"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "Аргумент наредбе SELECT код %L мора бити скаларни израз"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "Циљ доделе показивача није ни циљ ни показивач код %L"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "Лош циљ у додели показивача у чистој процедури код %L"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "Додела показивача са векторским индексом на десној страни код %L"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "Циљ доделе показивача није показивач код %L"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr ""
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer initialization at %C requires '=>', not '='"
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "Успостављање показивача код %C захтева ‘=>’, не ‘=’"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Component at %C must have the POINTER attribute"
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "Компонента код %C мора имати атрибут показивача"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Object '%s' at %L must have the SAVE attribute %s"
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "Објекат ‘%s’ код %L мора имати атрибут %s за SAVE"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Унутрашња процедура ‘%s’ код %L није дозвољена као стварни аргумент"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr ""
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qE is not a variable"
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "%qE није исправан шаблонски аргумент типа %qT јер %qE није променљива"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "Променљива ‘%s’ се не може јавити у изразу код %L"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr ""
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr ""
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr ""
@@ -78728,8 +78766,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "creating array of %qT"
 msgid "Creating array temporary at %L"
@@ -78819,7 +78857,7 @@ msgstr "Променљива ‘%s’ код %C не може се редефи
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "Променљива ‘%s’ код %C не може се редефинисати унутар петље која почиње код %L"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -78965,12 +79003,12 @@ msgstr "Први аргумент дефинисане доделе код %L м
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "Други аргумент дефинисане доделе код %L мора бити намере-у"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "Први аргумент сучеља оператора код %L мора бити намере-у"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "Други аргумент сучеља оператора код %L мора бити намере-у"
@@ -79919,7 +79957,7 @@ msgstr "Претварање из %s у %s код %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Can't convert %s to %s at %L"
 msgid "Cannot convert %s to %s at %L"
@@ -80543,7 +80581,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, fuzzy, gcc-internal-format
 #| msgid "NAMELIST object '%s' at %L cannot have ALLOCATABLE components"
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
@@ -80725,6 +80763,11 @@ msgstr "Целобројно преливање"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
@@ -81178,7 +81221,7 @@ msgstr ""
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "Крејов показивач код %C мора бити целобројни."
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s at %L must be a scalar"
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
@@ -81748,92 +81791,92 @@ msgstr "Синтаксна грешка у наредби SAVE код %C"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Empty IMPLICIT statement at %C"
 msgid "SELECT RANK statement at %C"
 msgstr "Празна наредба IMPLICIT код %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr "Статусни израз код %C мора бити променљива"
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in SAVE statement at %C"
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "Синтаксна грешка у наредби SAVE код %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "Неочекивана наредба CASE код %C"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in CASE specification at %C"
 msgstr "Синтаксна грешка у одредници CASE код %C"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "Неочекивана наредба END код %C"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "Синтаксна грешка у одредници CASE код %C"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "Синтаксна грешка у одредници CASE код %C"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected RANK statement at %C"
 msgstr "Неочекивана наредба END код %C"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "Статусни израз код %C мора бити променљива"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in RANK specification at %C"
 msgstr "Синтаксна грешка у одредници CASE код %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "Наредба ELSEWHERE код %C није обухваћена блоком WHERE"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, fuzzy, gcc-internal-format
 #| msgid "Label '%s' at %C doesn't match WHERE label '%s'"
 msgid "Label %qs at %C doesn't match WHERE label %qs"
@@ -83369,8 +83412,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "Одредба IF код %L захтева скаларни логички израз"
@@ -85949,12 +85992,12 @@ msgstr ""
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "Етикета %d поменута код %L није дефинисана"
@@ -86090,7 +86133,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "Функција ‘%s’ код %L нема имплицитан тип"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L has no IMPLICIT type"
 msgid "Function %qs at %L has no IMPLICIT type"
@@ -86533,298 +86576,304 @@ msgstr ""
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr ""
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 #| msgid "Bad array reference at %L"
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "Лош упућивач низа код %L"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s',used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr "Променљива ‘%s’, употребљена у одредничком изразу, користи се код %L пре наредбе ENTRY у којој је параметар"
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' is used at %L before the ENTRY statement in which it is a parameter"
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr "Променљива ‘%s’ употребљена је код %L пре наредбе ENTRY у којој је параметар"
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable %qs is declared %s"
 msgid "Using variable %qs at %L is deprecated"
 msgstr "променљива примерка %qs декларисана је %s"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Bad array reference at %L"
+msgid "Invalid array reference at %L"
+msgstr "Лош упућивач низа код %L"
+
+#: fortran/resolve.cc:6433
 #, fuzzy, gcc-internal-format
 #| msgid "The type %s cannot be host associated at %L because it is blocked by an incompatible object of the same name at %L"
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr "Тип %s не може бити придружен домаћину код %L зато што га блокира несагласан објекат истог имена код %L"
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s tag at %L must be scalar"
 msgid "Passed-object at %L must be scalar"
 msgstr "Ознака %s код %L мора бити скалар"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L must be scalar"
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "Аргумент ‘%s’ елементалне процедуре код %L мора бити скалар"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, fuzzy, gcc-internal-format
 #| msgid "%s at %L must be INTEGER"
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "%s код %L мора бити целобројно"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression type"
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "Очекиван је тип израза"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s код %L мора бити скалар"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s at %L must be a scalar"
 msgid "%s at %L must be integer"
 msgstr "%s код %L мора бити скалар"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s код %L мора бити целобројно"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "Израз за корак у петљи DO код %L не може бити нула"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "Индекс-име у FORALL код %L мора бити скларни целобројан"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "Израз за почетак у FORALL код %L мора бити скаларни целобројан"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "Израз за крај у FORALL код %L мора бити скаларни целобројан"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "Израз за корак у FORALL код %L мора бити скаларни %s"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "Израз за корак у FORALL код %L не може бити нула"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "Променљива ‘%s’ се не може јавити у изразу код %L"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expression in ALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "Израз у наредби ALLOCATE код %L мора бити резервљив или показивач"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "Потребна је одредница низа у наредби ALLOCATE код %L"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array specification required in ALLOCATE statement at %L"
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "Потребна је одредница низа у наредби ALLOCATE код %L"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array specification required in ALLOCATE statement at %L"
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "Потребна је одредница низа у наредби ALLOCATE код %L"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad array specification in ALLOCATE statement at %L"
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "Лоша одредница низа у наредби ALLOCATE код %L"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "Лоша одредница низа у наредби ALLOCATE код %L"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' must not appear an the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "‘%s’ не може да се јави у одредници низа код %L у истој наредби резервисања где се и само резервише"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 #| msgid "Bad array specification in ALLOCATE statement at %L"
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "Лоша одредница низа у наредби ALLOCATE код %L"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "ASSIGN код %L захтева скаларну подразумевану целобројну променљиву"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "Етикета код %L није у истом блоку као наредба GOTO код %L"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "ASSIGN код %L захтева скаларну подразумевану целобројну променљиву"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -86833,298 +86882,298 @@ msgstr ""
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "Етикета CASE код %L преклапа етикету CASE код %L"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "Израз у наредби CASE код %L мора бити типа %s"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expression in CASE statement at %L must be kind %d"
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "Израз у наредби CASE код %L мора бити врста %d"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "Израз у наредби CASE код %L мора бити скалар"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "Изборни израз у рачунском GOTO код %L мора бити скаларни целобројан израз"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "Аргумент наредбе SELECT код %L не може бити %s"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "Аргумент наредбе SELECT код %L мора бити скаларни израз"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expression in CASE statement at %L must be of type %s"
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "Израз у наредби CASE код %L мора бити типа %s"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "DEFAULT CASE код %L не може бити праћен другим DEFAULT CASE код %L"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "Логички опсег у наредби CASE код %L није дозвољен"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "constant logical value in CASE statement is repeated at %L"
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "константна логичка вредност у наредби CASE поновљена је код %L"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "Одредница опсега код %L не може никако бити поклопљена"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "Блок логичког SELECT CASE код %L има више од два случаја"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr ""
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 #| msgid "The name '%s' cannot be used as a defined operator at %C"
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "Име ‘%s’ се не може употребити као дефинисани оператор код %C"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr ""
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Iterator step at %L cannot be zero"
 msgid "Selector at %L cannot be NULL()"
 msgstr "Корак итератора код %L не може бити нула"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Function '%s' at %L has no IMPLICIT type"
 msgid "Selector at %L has no type"
 msgstr "Функција ‘%s’ код %L нема имплицитан тип"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr ""
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in EQUIVALENCE statement at %L"
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "Синтаксна грешка у наредби EQUIVALENCE код %L"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "CASE label at %L overlaps with CASE label at %L"
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "Етикета CASE код %L преклапа етикету CASE код %L"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %C is being used before it is defined"
 msgid "Derived type %qs at %L must be extensible"
 msgstr "Изведени тип ‘%s’ код %C користи се пре него што је дефинисан"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type name '%s' at %C already has a basic type of %s"
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "Име изведеног типа ‘%s’ код %C већ има основни тип %s"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected %s statement at %C"
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "Неочекивана наредба %s код %C"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr ""
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid kind for %s at %L"
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Неисправна врста за %s код %L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L must be scalar"
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "Аргумент ‘%s’ елементалне процедуре код %L мора бити скалар"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "Елемент преноса података код %L не може имати показивачке компоненте"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "Елемент преноса података код %L не може имати показивачке компоненте"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have ALLOCATABLE components"
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "Елемент преноса података код %L не може имати резервљиве компоненте"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "Елемент преноса података код %L не може имати приватне компоненте"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have PRIVATE components"
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "Елемент преноса података код %L не може имати приватне компоненте"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "Елемент преноса података код %L не може бити пун упућивач на низ претпостављене величине"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "Индекс-име у FORALL код %L мора бити скларни целобројан"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "By-value argument at %L cannot be an array or an array section"
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "Аргумент-по-вредности код %L не може бити низ или одељак низа"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "By-value argument at %L cannot be an array or an array section"
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "Аргумент-по-вредности код %L не може бити низ или одељак низа"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "ASSIGN код %L захтева скаларну подразумевану целобројну променљиву"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "ASSIGN код %L захтева скаларну подразумевану целобројну променљиву"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument dim at %L must be scalar"
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "Аргумент димензије код %L мора бити скалар"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "NUM_THREADS clause at %L requires a scalar INTEGER expression"
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "Одредба NUM_THREADS код %L захтева скаларни целобројни израз"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "Аргумент наредбе SELECT код %L мора бити скаларни израз"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of ACOS at %L must be between -1 and 1"
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "Аргумент у ACOS код %L мора бити између -1 и 1"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "Наредба код %L није исправна наредба циља гранања за наредбу гранања код %L"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Branch at %L causes an infinite loop"
 msgid "Branch at %L may result in an infinite loop"
@@ -87132,12 +87181,12 @@ msgstr "Гранање код %L води у бесконачну петљу"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr ""
@@ -87145,229 +87194,229 @@ msgstr ""
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "Етикета код %L није у истом блоку као наредба GOTO код %L"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "Маска у WHERE код %L има неусаглашен облик"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "Циљ доделе у WHERE код %L има неусаглашен облик"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "Неподржана наредба унутар WHERE код %L"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "Додела у индексну променљиву за FORALL код %L"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, fuzzy, gcc-internal-format
 #| msgid "The FORALL with index '%s' cause more than one assignment to this object at %L"
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "FORALL са индексом ‘%s’ изазива више од једне доделе овом објекту код %L"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "Индекс-име у FORALL код %L мора бити скларни целобројан"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "Спољашња конструкција FORALL већ има индекс са овим именом %L"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "Одредба WHERE/ELSEWHERE код %L захтева логички низ"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr ""
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER expression at %L is being truncated (%d/%d)"
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "Знаковни израз код %L бива подсечен (%d/%d)"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Right side of assignment at %L is a derived type containing a POINTER in a PURE procedure"
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "Десна страна доделе код %L је изведени тип који садржи показивач у чистој процедури"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assignment to a FORALL index variable at %L"
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "Додела у индексну променљиву за FORALL код %L"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assignment to a FORALL index variable at %L"
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "Додела у индексну променљиву за FORALL код %L"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Different types in pointer assignment at %L"
 msgid "Pointer procedure assignment at %L"
 msgstr "Различити типови у додели показивача код %L"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr ""
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "Аргумент наредбе SELECT код %L мора бити скаларни израз"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "Израз за почетак у FORALL код %L мора бити скаларни целобројан"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "Наредба ASSIGNED GOTO код %L захтева целобројну променљиву"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' has not been assigned a target label at %L"
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "Променљивој ‘%s’ није додељена циљна етикета код %L"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "Алтернативна наредба повратка код %L захтева скаларни целобројни наводилац повратка"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected initialization expression in CASE at %C"
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "Очекиван је успостављачки израз у CASE код %C"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "ASSIGN код %L захтева скаларну подразумевану целобројну променљиву"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid kind for %s at %L"
 msgid "Invalid NULL at %L"
 msgstr "Неисправна врста за %s код %L"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Arithmetic IF statement at %L requires a numeric expression"
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "Аритметичко IF код %L захтева бројевни израз"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "Излазни услов из петље DO WHILE код %L мора бити скаларни логички израз"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL mask clause at %L requires a LOGICAL expression"
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "Одредба маске у FORALL код %L захтева логички израз"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_trans_code(): лош кôд наредбе"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 #| msgid "Unused parameter %s declared at %L"
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "Неупотребљен параметар %s декларисан код %L"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr ""
@@ -87375,1108 +87424,1108 @@ msgstr ""
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "size of array %qs is too large"
 msgid "String length at %L is too large"
 msgstr "величина низа %qs је превелика"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable array '%s' at %L must have a deferred shape"
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "Резервљиви низ ‘%s’ код %L мора имати одложени облик"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, fuzzy, gcc-internal-format
 #| msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "Скаларни објекат ‘%s’ код %L не може бити резервљив"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, fuzzy, gcc-internal-format
 #| msgid "Array pointer '%s' at %L must have a deferred shape"
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "Низовни показивач ‘%s’ код %L мора имати одложен облик"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L cannot have a deferred shape"
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "Низ ‘%s’ код %L не може имати одложен облик"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, fuzzy, gcc-internal-format
 #| msgid "The type %s cannot be host associated at %L because it is blocked by an incompatible object of the same name at %L"
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr "Тип %s не може бити придружен домаћину код %L зато што га блокира несагласан објекат истог имена код %L"
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr ""
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, fuzzy, gcc-internal-format
 #| msgid "The module or main program array '%s' at %L must have constant shape"
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "Низ модула или главног програма ‘%s’ код %L мора имати константан облик"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "Ентитет са претпостављеном знаковном дужином код %L мора бити лажни аргумент или параметар"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must have constant character length in this context"
 msgid "%qs at %L must have constant character length in this context"
 msgstr "‘%s’ код %L мора имати константну знаковну дужину у овом контексту"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must have constant character length in this context"
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "‘%s’ код %L мора имати константну знаковну дужину у овом контексту"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable '%s' at %L cannot have an initializer"
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "Резервљиво ‘%s’ код %L не може имати успостављач"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, fuzzy, gcc-internal-format
 #| msgid "External '%s' at %L cannot have an initializer"
 msgid "External %qs at %L cannot have an initializer"
 msgstr "Спољашње ‘%s’ код %L не може имати успостављач"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy '%s' at %L cannot have an initializer"
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "Лажно ‘%s’ код %L не може имати успостављач"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L cannot have an initializer"
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "Сопствено ‘%s’ код %L не може имати успостављач"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, fuzzy, gcc-internal-format
 #| msgid "Function result '%s' at %L cannot have an initializer"
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "Резултат функцији ‘%s’ код %L не може имати успостављач"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, fuzzy, gcc-internal-format
 #| msgid "Automatic array '%s' at %L cannot have an initializer"
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "Аутоматски низ ‘%s’ код %L не може имати успостављач"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "in %s, at %s:%d"
 msgid "%s at %L"
 msgstr "у %s, код %s:%d"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, fuzzy, gcc-internal-format
 #| msgid "Character-valued statement function '%s' at %L must have constant length"
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "Наредбена функција знаковне вредности ‘%s’ код %L мора имати константну дужину"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L"
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "‘%s’ је приватног типа и не може бити лажни аргумент у ‘%s’, који је јаван код %L"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 #| msgid "Function result '%s' at %L cannot have an initializer"
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "Резултат функцији ‘%s’ код %L не може имати успостављач"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, fuzzy, gcc-internal-format
 #| msgid "External object '%s' at %L may not have an initializer"
 msgid "External object %qs at %L may not have an initializer"
 msgstr "Спољашњи објекат ‘%s’ код %L не може имати успостављач"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, fuzzy, gcc-internal-format
 #| msgid "ELEMENTAL function '%s' at %L must have a scalar result"
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "Елементална функција ‘%s’ код %L мора имати скаларни резултат"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' at %L is not allowed as an actual argument"
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "Наредбена функција ‘%s’ код %L није дозвољена као стварни аргумент"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "Функција типа CHARACTER(*) ‘%s’ код %L не може имати низовну вредност"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "Функција типа CHARACTER(*) ‘%s’ код %L не може имати показивачку вредност"
 
 # no-c-format
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "Функција типа CHARACTER(*) ‘%s’ код %L не може бити чиста"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "Функција типа CHARACTER(*) ‘%s’ код %L не може бити рекурзивна"
 
 # no-c-format
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "Функција типа CHARACTER(*) ‘%s’ код %L не може бити чиста"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy procedure '%s' at %C cannot have a generic interface"
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "Лажна процедура ‘%s’ код %C не може имати генеричко сучеље"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "Атрибут процедуре коси се са атрибутом листе имена у ‘%s’ код %L"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "Атрибут процедуре коси се са атрибутом листе имена у ‘%s’ код %L"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "Атрибут процедуре коси се са атрибутом листе имена у ‘%s’ код %L"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "Атрибут %s коси се са атрибутом %s у ‘%s’ код %L"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of %s at %L must be of length one"
 msgid "Interface of %qs at %L must be explicit"
 msgstr "Аргумент за %s код %L мора бити дужине један"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "Процедура корисничког оператора ‘%s’ код %L мора имати бар један аргумент"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ICHAR at %L must be of length one"
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "Аргумент у ICHAR код %L мора бити дужине један"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити показивач"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити резервљив"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must not be OPTIONAL"
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L не сме бити опциони"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "Први аргумент сучеља оператора код %L мора бити намере-у"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "Процедура корисничког оператора ‘%s’ код %L мора имати бар један аргумент"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, fuzzy, gcc-internal-format
 #| msgid "INTERFACE procedure '%s' at %L has the same name as the enclosing procedure"
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "Процедура сучеља ‘%s’ код %L има исто име као и обухватајућа процедура"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr ""
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Iterator step at %L cannot be zero"
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "Корак итератора код %L не може бити нула"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' called with an implicit interface at %L"
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "Процедура ‘%s’ позвана са имплицитним сучељем код %L"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "Процедура корисничког оператора ‘%s’ код %L мора имати бар један аргумент"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити неизведени тип"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити неизведени тип"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a scalar"
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити скалар"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити резервљив"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити показивач"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, fuzzy, gcc-internal-format
 #| msgid "INTERFACE procedure '%s' at %L has the same name as the enclosing procedure"
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "Процедура сучеља ‘%s’ код %L има исто име као и обухватајућа процедура"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, fuzzy, gcc-internal-format
 #| msgid "INTERFACE procedure '%s' at %L has the same name as the enclosing procedure"
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "Процедура сучеља ‘%s’ код %L има исто име као и обухватајућа процедура"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr ""
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, fuzzy, gcc-internal-format
 #| msgid "Array pointer '%s' at %L must have a deferred shape"
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "Низовни показивач ‘%s’ код %L мора имати одложен облик"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ICHAR at %L must be of length one"
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "Аргумент у ICHAR код %L мора бити дужине један"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "Процедура корисничког оператора ‘%s’ код %L мора имати бар један аргумент"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити неизведени тип"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, fuzzy, gcc-internal-format
 #| msgid "Argument dim at %L must be scalar"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "Аргумент димензије код %L мора бити скалар"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "Аргумент ‘%s’ елементалне процедуре код %L не може имати атрибут показивача"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "Аргумент ‘%s’ за сопствено ‘%s’ код %L мора бити резервљив"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, fuzzy, gcc-internal-format
 #| msgid "INTERFACE procedure '%s' at %L has the same name as the enclosing procedure"
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "Процедура сучеља ‘%s’ код %L има исто име као и обухватајућа процедура"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, fuzzy, gcc-internal-format
 #| msgid "Character length of component '%s' needs to be a constant specification expression at %L."
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "Знаковна дужина компоненте ‘%s’ мора бити константан одреднички израз код %L."
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, fuzzy, gcc-internal-format
 #| msgid "Expression at %L must be of INTEGER type"
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "Израз код %L мора бити целобројног типа"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, fuzzy, gcc-internal-format
 #| msgid "The component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "Компонента ‘%s’ је приватни тип и не може бити компонента у ‘%s’, која је јавна код %L"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "Компонента %s типа SEQUENCE декларисаног код %L нема атрибут SEQUENCE"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr ""
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr ""
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has not been declared"
 msgid "Derived type %qs at %L has not been declared"
 msgstr "%qD није декларисано"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, fuzzy, gcc-internal-format
 #| msgid "Assumed size array '%s' in namelist '%s'at %C is not allowed."
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "Низ претпостављене величине ‘%s’ у листи имена ‘%s’ код %C није дозвољен."
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, fuzzy, gcc-internal-format
 #| msgid "PRIVATE symbol '%s' cannot be member of PUBLIC namelist at %L"
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "Приватни симбол ‘%s’ не може бити члан јавне листе имена код %L"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, fuzzy, gcc-internal-format
 #| msgid "PRIVATE symbol '%s' cannot be member of PUBLIC namelist at %L"
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "Приватни симбол ‘%s’ не може бити члан јавне листе имена код %L"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "Атрибут процедуре коси се са атрибутом листе имена у ‘%s’ код %L"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "Parameter array '%s' at %L cannot be automatic or assumed shape"
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "Параметарски низ ‘%s’ код %L не може бити аутоматског или претпостављеног облика"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, fuzzy, gcc-internal-format
 #| msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "Имплицитно типски параметар ‘%s’ код %L не одговара каснијем имплицитном типу"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "Несагласан изведени тип у параметру код %L"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, fuzzy, gcc-internal-format
 #| msgid "Object '%s' at %L must have the SAVE attribute %s"
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "Објекат ‘%s’ код %L мора имати атрибут %s за SAVE"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "Атрибут процедуре коси се са атрибутом листе имена у ‘%s’ код %L"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "Атрибут процедуре коси се са атрибутом листе имена у ‘%s’ код %L"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr ""
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad specification for assumed size array at %C"
 msgid "Bad specification for assumed size array at %L"
 msgstr "Лоша одредница за низ претпостављене величине код %C"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "Низ претпостављене величине код %L мора бити лажни аргумент"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "Низ претпостављеног облика код %L мора бити лажни аргумент"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assumed shape array at %L must be a dummy argument"
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "Низ претпостављеног облика код %L мора бити лажни аргумент"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "Симбол код %L није лажна променљива"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, fuzzy, gcc-internal-format
 #| msgid "Character-valued statement function '%s' at %L must have constant length"
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "Наредбена функција знаковне вредности ‘%s’ код %L мора имати константну дужину"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, fuzzy, gcc-internal-format
 #| msgid "The derived type '%s' at %L is of type '%s', which has not been defined."
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "Изведени тип ‘%s’ код %L је типа ‘%s’, који није дефинисан."
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr ""
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Derived type variable in COMMON at %C does not have the SEQUENCE attribute"
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "Променљива изведеног типа у заједничком код %C нема атрибут SEQUENCE"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr ""
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of %s at %L must be of length one"
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "Аргумент за %s код %L мора бити дужине један"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, fuzzy, gcc-internal-format
 #| msgid "PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'"
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "Јавна функција ‘%s’ код %L не може бити приватног типа ‘%s’"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, fuzzy, gcc-internal-format
 #| msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "Лажни аргумент намере-из ‘%s’ код %L је претпостављене величине и зато не може имати подразумевани успостављач"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "Лажни аргумент ‘%s’ код %L не може бити намере-из"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "Лажни аргумент ‘%s’ код %L не може бити намере-из"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, fuzzy, gcc-internal-format
 #| msgid "By-value argument at %L cannot be an array or an array section"
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "Аргумент-по-вредности код %L не може бити низ или одељак низа"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L cannot have a deferred shape"
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "Низ ‘%s’ код %L не може имати одложен облик"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable array '%s' at %L must have a deferred shape"
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "Резервљиви низ ‘%s’ код %L мора имати одложени облик"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr ""
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy procedure at %L not allowed in ELEMENTAL procedure"
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "Лажна процедура код %L није дозвољена у елементалној процедури"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 #| msgid "Namelist %s cannot be renamed by USE association to %s."
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "Листа имена %s не може се преименовати у %s придружењем USE."
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr "Нитно-приватно код %L не снима се"
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expecting %s statement at %C"
 msgid "Expecting definable entity near %L"
 msgstr "Очекивана је наредба %s код %C"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, fuzzy, gcc-internal-format
 #| msgid "BLOCK DATA element '%s' at %L must be in COMMON"
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "BLOCK DATA елемент ‘%s’ код %L мора бити у заједничком"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr ""
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy '%s' at %L cannot have an initializer"
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "Лажно ‘%s’ код %L не може имати успостављач"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "Аргумент ‘%s’ елементалне процедуре код %L не може имати атрибут показивача"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "Неконстантан одељак низа код %L у наредби DATA"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "Наредба DATA код %L има више променљивих него вредности"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Nonconstant array section at %L in DATA statement"
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "Неконстантан одељак низа код %L у наредби DATA"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Step expression in DO loop at %L cannot be zero"
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "Израз за корак у петљи DO код %L не може бити нула"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "Наредба DATA код %L има више вредности него променљивих"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "Ознака %d код %L дефинисана али неупотребљена"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "Ознака %d код %L дефинисана али не може бити употребљена"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "Променљива изведеног типа ‘%s’ код %L мора имати атрибут SEQUENCE да би била објекат еквиваленције"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "Променљива изведеног типа ‘%s’ код %L не може имати резервљиве компоненте како би била објекат еквиваленције"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L with default initializer cannot be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "Променљива изведеног типа ‘%s’ код %L са подразумеваним успостављачем не може бити објекат еквиваленције"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "Променљива изведеног типа ‘%s’ код %L са показивачким компонентама не може бити објекат еквиваленције"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "Синтаксна грешка у наредби EQUIVALENCE код %L"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, fuzzy, gcc-internal-format
 #| msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'"
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "Члан заједничког блока ‘%s’ код %L не може бити објекат еквиваленције у чистој процедури ‘%s’"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, fuzzy, gcc-internal-format
 #| msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object"
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Именована константа ‘%s’ код %L не може бити објекат еквиваленције"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "Низ ‘%s’ код %L са неконстантним границама не може бити објекат еквиваленције"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, fuzzy, gcc-internal-format
 #| msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object"
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Компонената структуре ‘%s’ код %L не може бити објекат еквиваленције"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "Подниска код %L има нулту дужину"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, fuzzy, gcc-internal-format
 #| msgid "Different character lengths in pointer assignment at %L"
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "Различите знаковне дужине у додели показивача код %L"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, fuzzy, gcc-internal-format
 #| msgid "PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'"
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "Јавна функција ‘%s’ код %L не може бити приватног типа ‘%s’"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, fuzzy, gcc-internal-format
 #| msgid "ENTRY '%s' at %L has no IMPLICIT type"
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "Унос ‘%s’ код %L нема имплицитан тип"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L must be a FUNCTION"
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "Процедура корисничког оператора ‘%s’ код %L мора бити функција"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L cannot be assumed character length"
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "Процедура корисничког оператора ‘%s’ код %L не може бити претпостављене знаковне дужине"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "Процедура корисничког оператора ‘%s’ код %L мора имати бар један аргумент"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "Први аргумент сучеља оператора код %L не може бити опциони"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "Други аргумент сучеља оператора код %L не може бити опциони"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "Сучеље оператора код %L мора имати, највише, два аргумента"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, fuzzy, gcc-internal-format
 #| msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE"
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
@@ -89064,362 +89113,362 @@ msgstr ""
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "Функција ‘%s’ код %L нема имплицитан тип"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "Атрибут %s коси се са атрибутом %s код %L"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, fuzzy, gcc-internal-format
+#| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "Атрибут %s коси се са атрибутом %s у ‘%s’ код %L"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "Атрибут %s није дозвољен у јединици програма BLOCK DATA код %L"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Object '%s' at %L must have the SAVE attribute %s"
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "Објекат ‘%s’ код %L мора имати атрибут %s за SAVE"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr ""
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "procedure name = %s"
 msgid "Procedure pointer at %C"
 msgstr "име процедуре = %s"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s attribute conflicts with %s attribute at %L"
 msgid "%s attribute applied to %s %s at %L"
 msgstr "Атрибут %s коси се са атрибутом %s код %L"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "Атрибут %s коси се са атрибутом %s код %L"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, fuzzy, gcc-internal-format
-#| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "Атрибут %s коси се са атрибутом %s у ‘%s’ код %L"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "Не могу се променити атрибути USE-придруженог симбола код %L"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "Не могу се променити атрибути USE-придруженог симбола %s код %L"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate %s attribute specified at %L"
 msgid "Duplicate %s attribute specified at %L"
 msgstr "Удвостручени атрибут %S наведен код %L"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "Удвостручени атрибут SAVE наведен код %L"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Cray Pointee at %L appears in multiple pointer() statements."
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "Крејов показивани код %L појављује се у више наредби pointer()"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "Удвостручени атрибут SAVE наведен код %L"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "Атрибут SAVE код %L не може бити наведен у чистој процедури"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "Удвостручени атрибут SAVE наведен код %L"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "Удвостручени атрибут SAVE наведен код %L"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "Удвостручени атрибут SAVE наведен код %L"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "Атрибут SAVE код %L не може бити наведен у чистој процедури"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "Удвостручени атрибут SAVE наведен код %L"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute conflicts with %s attribute at %L"
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "Атрибут %s коси се са атрибутом %s код %L"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "Процедура %s код %L је већ декларисана као процедура %s"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "Намера-%s коси се са намером-%s код %L"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "Одредница ACCESS код %L је већ наведена "
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate %s attribute specified at %L"
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "Удвостручени атрибут %S наведен код %L"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "Удвостручени атрибут SAVE наведен код %L"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L already has an explicit interface"
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "Симбол ‘%s’ код %L већ има експлицитно сучеље"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr ""
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %C already has a type of %s"
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "Функција ‘%s’ код %C већ има тип %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type name '%s' at %C already has a basic type of %s"
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "Име изведеног типа ‘%s’ код %C већ има основни тип %s"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L cannot have a type"
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "Симбол ‘%s’ код %L не може имати тип"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "Компонента ‘%s’ код %C већ је декларисана код %L"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %C is ambiguous"
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "Двосмислен симбол ‘%s’ код %C"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %C is being used before it is defined"
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "Изведени тип ‘%s’ код %C користи се пре него што је дефинисан"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C is a PRIVATE component of '%s'"
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "Компонента ‘%s’ код %C је приватна компонента у ‘%s’"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %C is not a member of the '%s' structure"
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "‘%s’ код %C није члан структуре ‘%s’"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %C is not a member of the '%s' structure"
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "‘%s’ код %C није члан структуре ‘%s’"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "Удвостручена етикета наредбе %d код %L и %L"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "Етикета %d код %C је већ поменута као циљ гранања"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "Етикета %d код %C је већ поменута код етикета формата"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "Етикета %d код %C је претходно употребљена као етикета формата"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "Етикета %d код %C је претходно употребљена као циљ гранања"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected terminating name at %C"
 msgid "Shared DO termination label %d at %C"
 msgstr "Очекивано је завршно име код %C"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Labeled DO statement at %L"
 msgstr "Неочекивана наредба END код %C"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, fuzzy, gcc-internal-format
 #| msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "Име ‘%s’ код %C је двосмислен упућивач на ‘%s’ из модула ‘%s’"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, fuzzy, gcc-internal-format
 #| msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit"
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "Име ‘%s’ код %C је двосмислен упућивач на ‘%s’ из текуће програмске јединице"
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %C has already been host associated"
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "Симбол ‘%s’ код %C је већ придружен домаћину"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "Променљива изведеног типа ‘%s’ код %L мора имати атрибут SEQUENCE да би била објекат еквиваленције"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "Променљива изведеног типа ‘%s’ код %L мора имати атрибут SEQUENCE да би била објекат еквиваленције"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr ""
@@ -89452,24 +89501,24 @@ msgstr ""
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr ""
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr ""
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "лош тип израза током хода (%d)"
@@ -89680,37 +89729,37 @@ msgstr "Враћај вредности функција у регистрима
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr ""
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "Непознат сопствени оператор"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Непозната функције листе аргумената код %L"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -89722,18 +89771,18 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "Сопствена функција %s(%d) није препозната"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, fuzzy, gcc-internal-format
 #| msgid "'dim' argument of %s intrinsic at %L is not a valid dimension index"
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "Аргумент ‘dim’ за сопствено ‘%s’ код %L није исправан димензиони индекс"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "iteration variable %qs should not be reduction"
 msgid "The event variable at %L shall not be coindexed"
@@ -89884,7 +89933,7 @@ msgstr ""
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
 msgid "gfc_trans_select(): Bad type for case expr."
@@ -90299,6 +90348,12 @@ msgstr "поље %qs декларисано као функција"
 msgid "function %qD redeclared as variable"
 msgstr "функција %q+D поново декларисана као уткана"
 
+#: lto/lto-symtab.cc:865
+#, fuzzy, gcc-internal-format
+#| msgid "%q+#D previously declared here"
+msgid "previously declared here"
+msgstr "%q+#D претходно декларисано овде"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -91672,7 +91727,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, fuzzy, gcc-internal-format
 #| msgid "non-object member %qs cannot be declared %<mutable%>"
 msgid "non-objective-c type %qT cannot be caught"
@@ -91683,7 +91738,7 @@ msgstr "не-објектни члан %qs не може бити деклари
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr ""
diff --git a/gcc/po/sv.po b/gcc/po/sv.po
index 9151df652e0..cfaef7d1230 100644
--- a/gcc/po/sv.po
+++ b/gcc/po/sv.po
@@ -29,10 +29,10 @@
 # thunk			snutt
 msgid ""
 msgstr ""
-"Project-Id-Version: gcc 14.1.0\n"
+"Project-Id-Version: gcc 14.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
-"PO-Revision-Date: 2024-05-16 22:03+0200\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
+"PO-Revision-Date: 2024-08-01 21:36+0200\n"
 "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
@@ -406,7 +406,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "ange inte både -march=... och -mcpu=..."
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared och mdll är inkompatibla"
 
@@ -19191,16 +19191,16 @@ msgstr "okänd instruktion:"
 msgid "insn does not satisfy its constraints:"
 msgstr "instruktionen håller inte sina begränsningar:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "skapad och använd med olika inställningar av ”%s”"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "skapad och använd med olika inställningar av %<-fpic%>"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 msgid "created and used with different settings of %<-fpie%>"
 msgstr "skapad och använd med olika inställningar av %<-fpie%>"
 
@@ -19522,7 +19522,7 @@ msgstr "längdmodifierare i strfmon-format"
 msgid "<command-line>"
 msgstr "<kommandorad>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "ej stödd operand för kod ”%c”"
@@ -19541,9 +19541,9 @@ msgstr "ogiltig operand för ”%%%c”"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, c-format
 msgid "invalid vector constant"
 msgstr "ogiltig vektorkonstant"
@@ -19563,7 +19563,7 @@ msgstr "inkompatibel operand för ”%%%c”"
 msgid "incompatible register operand for '%%%c'"
 msgstr "inkompatibla registeroperander för ”%%%c”"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "operand saknas"
@@ -19592,93 +19592,93 @@ msgstr "ogiltigt adressläge"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "det går inte att kombinera GNU- och SVE-vektorer i en binär operation"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "”%%&” använt utan någon lokal dynamisk TLS-referens"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "ogiltigt %%J-värde"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "ogiltigt %%r-värde"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "ogiltigt %%R-värde"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "ogiltigt %%N-värde"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "ogiltigt %%P-värde"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "ogiltigt %%h-värde"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "ogiltigt %%L-värde"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "ogiltigt %%m-värde"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "ogiltigt %%M-värde"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "ogiltigt %%U-värde"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "ogiltigt %%s-värde"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "ogiltigt %%C-värde"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "ogiltigt %%E-värde"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "okänd avspecifikation av omlokalisering"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "ogiltig %%xn-kod"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, c-format
 msgid "invalid operand address"
 msgstr "ogiltig operandadress"
@@ -19771,35 +19771,35 @@ msgstr "ogiltig UNSPEC som operand: %d"
 msgid "unrecognized supposed constant"
 msgstr "okänd förmodad konstant"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "ogiltig skiftoperand"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "förutsade Thumb-instruktion"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "förutsade instruktion i villkorlig sekvens"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "Ej stödd operand för kod ”%c”"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -19807,113 +19807,113 @@ msgstr "Ej stödd operand för kod ”%c”"
 msgid "invalid operand for code '%c'"
 msgstr "ogiltig operand för kod ”%c”"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "instruktionen aldrig utförd"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "föråldrad Maverick-formatkod ”%c”"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "ogiltig konvertering från typen %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "ogiltig konvertering till typen %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr "operationen är inte tillåten på typen %<bfloat16_t%>"
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "adressoperander kräver begränsning för X-, Y- eller Z-register"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "operander till %T/%t måste vara reg + const_int:"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr "felaktig adress, inte en I/O-adress:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr "felaktig adress, inte en konstant:"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "felaktig adress, inte (reg+avst):"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "felaktig adress, inte post_inc eller pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "internt kompilatorfel.  Felaktig adress:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "Ej stödd kod ”%c” för fixdecimal:"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "internt kompilatorfel.  Okänt läge:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "ogiltig instruktion:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "felaktig instruktion:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "okänd move-instruktion:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "felaktig skiftinstruktion:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "internt kompilatorfel.  Felaktig skift:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr "ej stödd fixdecimalskonvertering"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr "variabel"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 msgid "function parameter"
 msgstr "funktionsparameter"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr "postfält"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 msgid "return type of function"
 msgstr "returtyp för en funktion"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr "pekare"
 
@@ -19949,7 +19949,7 @@ msgstr "ej stödd operand"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20268,46 +20268,46 @@ msgstr "operanden är inte ett heltal, ogiltig operandkod ”R”"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "operanden är inte ett specifikt heltal, ogiltig operandkod ”R”"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "ogiltig operandkod ”%c”"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "ogiltig begränsning för operand"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, c-format
 msgid "invalid vector immediate"
 msgstr "ogiltig vektoromedelbar"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "okänt instruktionsläge"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "ogiltig konvertering från typen %<__bf16%> utan flaggan %<-msse2%>"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "ogiltig konvertering från typen %<_Float16%> utan flaggan %<-msse2%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "ogiltig konvertering till typen %<__bf16%> utan flaggan %<-msse2%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "ogiltig konvertering till typen %<_Float16%> utan flaggan %<-msse2%>"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr "operationen är inte tillåten på typen %<bf16%> utan flaggan %<-msse2%>"
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr "operationen är inte tillåten på typen %<_Float16%> utan flaggan %<-msse2%>"
 
@@ -20338,7 +20338,7 @@ msgstr "ogiltig operation på %<__fpreg%>"
 msgid "invalid %%P operand"
 msgstr "ogiltig %%P-operand"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "ogiltigt %%p-värde"
@@ -20365,29 +20365,29 @@ msgstr "kan inte använda icke-gp-relativa absoluta adresser"
 msgid "invalid addressing mode"
 msgstr "ogiltigt adresseringsläge"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "%%%c är inte ett giltigt operandprefix"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "felaktig användning av ”%%%c”"
@@ -20419,7 +20419,7 @@ msgid "post-increment address is not a register"
 msgstr "efterinkrementeringsadress är inte ett register"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "felaktig adress"
 
@@ -20577,7 +20577,7 @@ msgstr "ej stödd konstant adress:"
 msgid "unsupported memory expression:"
 msgstr "ej stött minnesuttryck:"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, c-format
 msgid "invalid vector operand"
 msgstr "ogiltig vektoroperand"
@@ -20625,242 +20625,242 @@ msgstr "%<-mquad-memory-atomic%> förutsätter 64-bitarsläge"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "%<-mquad-memory%> är inte tillgängligt i läget med omvänd byteordning"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr "felaktig förflyttning"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr "Felaktig 128-bitsförflyttning"
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, c-format
 msgid "invalid %%A value"
 msgstr "ogiltigt %%A-värde"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "ogiltigt %%D-värde"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "ogiltigt %%e-värde"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "ogiltigt %%f-värde"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "ogiltigt %%F-värde"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "ogiltigt %%G-värde"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "ogiltig %%j-kod"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "ogiltig %%J-kod"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "ogiltigt %%k-värde"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "ogiltigt %%K-värde"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "ogiltigt %%O-värde"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "ogiltigt %%q-värde"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, c-format
 msgid "invalid %%t value"
 msgstr "ogiltigt %%t-värde"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "ogiltigt %%T-värde"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "ogiltigt %%u-värde"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "ogiltig %%v-kod"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, c-format
 msgid "invalid %%V value"
 msgstr "ogiltigt %%V-värde"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "ogiltigt %%x-värde"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, c-format
 msgid "invalid %%z value"
 msgstr "ogiltigt %%z-värde"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "ogiltigt %%y-värde, försök använda ”Z”-begränsningen"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "Felaktig blandning av IEEE 128-bitars och IBM 128-bitars flyttalstyper"
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "AltiVec-argument skickat till funktion utan prototyp"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 msgid "Could not generate addis value for fusion"
 msgstr "Kunde inte generera addis-värde för sammanslagning"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 msgid "Unable to generate load/store offset for fusion"
 msgstr "Kan inte generera ladda/lagra-avstånd för sammanslagning"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr "Felaktig GPR-sammanslagning"
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "ogiltig konvertering från typen %<__vector_quad%>"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "ogiltig konvertering till typen %<__vector_quad%>"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "ogiltig konvertering från typen %<__vector_pair%>"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "ogiltig konvertering till typen %<__vector_pair%>"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr "symboliska minnesreferenser stödjs endast på z10 eller senare"
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "kan inte dekomponera adress"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "ogiltig jämförelseoperator för utmatningsmodifieraren ”E”"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "ogiltig referens för utmatningsmodifieraren ”J”"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "ogiltig adress för utmatningsmodifieraren ”O”"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "ogiltig adress för utmatningsmodifieraren ”R”"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "minnesreferens förväntas för utmatningsmodifieraren ”S”"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "ogiltig adress för ”S”-utmatningsmodifierare"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "register- eller minnesuttryck förväntas för utmatningsmodifieraren ”N”"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "register- eller minnesuttryck förväntas för utmatningsmodifieraren ”M”"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "ogiltig konstant för utmatningsmodifieraren ”%c”"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "ogiltig konstant - försök med att använda en utmatningsmodifierare"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "ogiltig konstant vektor för utmatningsmodifieraren ”%c”"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "ogiltigt uttryck - försök med att använda en utmatningsmodifierare"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "ogiltigt uttryck för utmatningsmodifieraren ”%c”"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 msgid "vector argument passed to unprototyped function"
 msgstr "vektorargument skickat till funktion utan prototyp"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr "typer skiljer i teckenhet"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr "binäroperator stödjer inte två vektorbooleanoperander"
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr "den binära operatorn stödjer inte vektor-bool-operand"
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr "binär operator stödjer inte blandning av operanderna vektorboolean och flyttalsvektor"
 
@@ -21051,12 +21051,12 @@ msgstr "({anonym})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "%<;%> förväntades"
@@ -21069,7 +21069,7 @@ msgstr "%<;%> förväntades"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21078,7 +21078,7 @@ msgstr "%<;%> förväntades"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "%<)%> förväntades"
@@ -21086,7 +21086,7 @@ msgstr "%<)%> förväntades"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "%<]%> förväntades"
@@ -21097,29 +21097,29 @@ msgstr "%<;%>, %<,%> eller %<)%> förväntades"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "%<(%> förväntades"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "%<[%> förväntades"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "%<{%> förväntades"
@@ -21129,17 +21129,17 @@ msgstr "%<{%> förväntades"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "%<:%> förväntades"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "%<while%> förväntades"
@@ -21148,8 +21148,8 @@ msgstr "%<while%> förväntades"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "%<,%> förväntades"
@@ -21159,17 +21159,17 @@ msgid "expected %<.%>"
 msgstr "%<.%> förväntades"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "%<@end%> förväntades"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "%<>%> förväntades"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "%<,%> eller %<)%> förväntades"
@@ -21177,32 +21177,32 @@ msgstr "%<,%> eller %<)%> förväntades"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "%<=%> förväntades"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "%<}%> förväntades"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, gcc-internal-format
 msgid "expected %<else%>"
 msgstr "%<else%> förväntades"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "%<#pragma omp section%> eller %<}%> förväntades"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr "<meddelandet okänt vid kompileringstillfället>"
 
@@ -21210,7 +21210,7 @@ msgstr "<meddelandet okänt vid kompileringstillfället>"
 msgid "(anonymous)"
 msgstr "(anonym)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "%<<%> förväntades"
@@ -21225,21 +21225,21 @@ msgstr "etikett förväntades"
 msgid "candidate:"
 msgstr "kandidat:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 msgid "  after user-defined conversion:"
 msgstr "  efter användardefinierad konvertering:"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "kandidat är:"
 msgstr[1] "kandidater är:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "kandidat 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "kandidat 2:"
 
@@ -21471,7 +21471,7 @@ msgstr "%r%s:%d:%d:%R   i expansion av %<constexpr%> i %qs"
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr "%r%s:%d:%R   i expansion av %<constexpr%> i %qs"
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "kandidater är:"
 
@@ -21515,48 +21515,48 @@ msgstr "konvertering konverterar bort konstantskap"
 msgid "source type is not polymorphic"
 msgstr "källtypen är inte polymorfisk"
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "fel typ på argument till unärt minus"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "fel typ på argument till unärt plus"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "fel typ på argument till bitkomplement"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "fel typ på argument till abs"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "fel typ på argument till konjunktion"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 msgid "in argument to unary !"
 msgstr "i argument till unärt !"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr "ingen pre-ökningsoperator för typen"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr "ingen post-ökningsoperator för typen"
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr "ingen pre-minskningsoperator för typen"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr "ingen post-minskningsoperator för typen"
 
@@ -21640,7 +21640,7 @@ msgstr "Förlegad funktion:"
 msgid "Deleted feature:"
 msgstr "Borttagen funktion:"
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr "vektortilldelning"
 
@@ -21831,11 +21831,11 @@ msgstr "block-IF"
 msgid "implied END DO"
 msgstr "implicerat END DO"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "tilldelning"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "pekartilldelning"
 
@@ -21995,47 +21995,47 @@ msgstr "Operanderna till användaroperatorn %%<%s%%> vid %%L är %s"
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "Operanderna till användaroperatorn %%<%s%%> vid %%L är %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr "Slingvariabel"
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr "iteratorvariabel"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr "Startuttryck i DO-slinga"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr "Slututtryck i DO-slinga"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr "Steguttryck i DO-slinga"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr "DEALLOCATE-objekt"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr "ALLOCATE-objekt"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr "STAT-variabel"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr "ERRMSG-variabel"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr "objekt i READ"
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr "ACQUIRED_LOCK-variabel"
 
@@ -22044,11 +22044,11 @@ msgstr "ACQUIRED_LOCK-variabel"
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "Olika CHARACTER-längder (%ld/%ld) i vektorkonstruerare"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr "Heltalsspill vid beräkning av mängden minne att allokera"
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr "Värdet på PDT LEN-parametern ”%s” stämmer inte överens med det i attrappdeklarationen"
@@ -22063,12 +22063,12 @@ msgstr "Aktuell stränglängd matchar inte den deklarerade för attrappargument
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "Aktuell stränglängd är kortare än den deklarerade för attrappargument ”%s” (%ld/%ld)"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr "Målet för återavbildning av ordning är för litet (%ld < %ld)"
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr "Tilldelning av skalär till en oallokerad vektor"
 
@@ -22077,81 +22077,81 @@ msgstr "Tilldelning av skalär till en oallokerad vektor"
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr "Olika teckenlängder (%ld/%ld) i %s"
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr "POS-argumentet (%ld) är utanför intervallet 0:%ld i inbyggd BTEST"
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "POS-argument (%ld) utanför intervallet 0:%ld i inbyggd %s"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr "POS-argumentet (%ld) är utanför intervallet 0:%ld i inbyggd IBITS"
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr "LEN-argumentet (%ld) är utanför intervallet 0:%ld i inbyggd IBITS"
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) i inbyggd IBITS"
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "SHIFT-argumentet (%ld) utanför intervallet 0:%ld i inbyggd %s"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr "SHIFT-argumentet (%ld) är utanför intervallet -%ld:%ld i inbyggd ISHFT"
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr "SIZE-argumentet (%ld) är utanför intervallet 1:%ld i inbyggd ISHFTC"
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr "SHIFT-argumentet (%ld) är utanför intervallet -%ld:%ld i inbyggd ISHFTC"
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "Argument NCOPIES till inbyggd REPEAT är negativt (dess värde är %ld)"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "Argumentet NCOPIES till inbyggd REPEAT är för stort"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "FROMPOS-argumentet (%ld) är utanför intervallet 0:%d i inbyggd MVBITS"
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "LEN-argumentet (%ld) är utanför intervallet 0:%d i inbyggd MVBITS"
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "TOPOS-argumentet (%ld) är utanför intervallet 0:%d i inbyggd MVBITS"
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) i inbyggd MVBITS"
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) i inbyggd MVBITS"
@@ -22173,15 +22173,15 @@ msgstr "Tilldelad etikett är inte en måletikett"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr "Ogiltigt bildnummer %d i SYNC IMAGES"
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr "Slingan itererar oändligt"
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr "Slingvariabel har modifierats"
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr "DO-stegvärdet är noll"
 
@@ -22257,7 +22257,7 @@ msgid "expected boolean type"
 msgstr "boolesk typ förväntades"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr "heltal förväntades"
@@ -22320,7 +22320,7 @@ msgstr "för få argument"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "för många argument"
@@ -22944,7 +22944,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "%<-mrelax%> stödjs endast för RTP PIC"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "Syntaxfel i %s-sats vid %C"
@@ -23380,8 +23380,8 @@ msgstr "ignorerar attributet %qE eftersom det står i konflikt med attributet %q
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, gcc-internal-format
 msgid "previous declaration here"
 msgstr "tidigare deklaration här"
@@ -23398,7 +23398,7 @@ msgstr "attributdirektivet %qE ignorerat"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "attributdirektivet %<%E::%E%> med räckvidd ignorerat"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "fel antal argument angivet för attributet %qE"
@@ -23408,7 +23408,7 @@ msgstr "fel antal argument angivet för attributet %qE"
 msgid "expected %i or more, found %i"
 msgstr "%i eller fler förväntades, hittade %i"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, gcc-internal-format, gfc-internal-format
 msgid "expected %i, found %i"
 msgstr "%i förväntades, %i hittades"
@@ -23475,12 +23475,12 @@ msgstr "typattribut ignoreras efter att typen redan är definierad"
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -23489,7 +23489,7 @@ msgstr "typattribut ignoreras efter att typen redan är definierad"
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -23511,8 +23511,8 @@ msgstr "attributet %qE ignorerat"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr "saknat attribut %<target%> för flerversioners %qD"
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "tidigare deklaration av %qD"
@@ -23621,7 +23621,7 @@ msgstr "det går inte att läsa profilen från %s"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "index %qwi till en konstant sträng pekar utanför dess gränser"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, gcc-internal-format
 msgid "%qE declared here"
 msgstr "%qE är deklarerad här"
@@ -23726,7 +23726,7 @@ msgstr "otillåtet argument 0 till %qs"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, gcc-internal-format
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
 msgstr "ogiltig användning av %<__builtin_va_arg_pack ()%>"
@@ -23748,42 +23748,42 @@ msgstr "andra argumentet till %<__builtin_longjmp%> måste vara 1"
 msgid "target format does not support infinity"
 msgstr "målformatet stödjer inte oändligheten"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, gcc-internal-format
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "%<va_start%> används i en funktion med fixt antal argument"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "fel antal argument till funktionen %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "%<__builtin_next_arg%> anropad utan argument"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "fel antal argument till funktionen %<__builtin_next_arg%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "andra parametern till %<va_start%> är inte det sista namngivna argumentet"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr "odefinierat beteende när andra parametern till %<va_start%> är deklarerad med lagringsklass %<register%>"
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "första argumentet till %qD måste vara en pekare, det andra en heltalskonstant"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr "sista argumentet till %qD är inte en heltalskonstant mellan 0 och 3"
@@ -24828,12 +24828,12 @@ msgstr "attributet %<weakref%> ignorerat för att variabeln är initierad"
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F är använd men inte definierad"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F är deklarerad %<static%> men definieras aldrig"
@@ -25382,7 +25382,7 @@ msgstr "%<region_array%> stämmer inte med %<region_tree%>"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "%<lp_array%> stämmer inte med %<region_tree%>"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, gcc-internal-format
 msgid "%qs failed"
 msgstr "%qs misslyckades"
@@ -25412,17 +25412,17 @@ msgstr "omvänd lagringsordning för %s-läget"
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr "skrivning av %wu-bitsdata utanför gränsen för destinationsobjektet, data avhuggen till %wu bitar"
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr "anrop av %qs deklarerat med attributet error: %s"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "anrop av %qs deklarerat med attributet warning: %s"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr "antar att teckenspill inte förekommer vid förenkling av %<X - Y %s 0%> till %<X %s Y%>"
@@ -25457,7 +25457,7 @@ msgstr "stor fixdecimalskonstant implicit trunkerad till fixdecimaltyp"
 msgid "comparison is always %d due to width of bit-field"
 msgstr "jämförelsen är alltid %d på grund av bredd på bitfält"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr "antar att teckenspill inte förekommer vid förenkling av intervalltest"
@@ -25620,7 +25620,7 @@ msgstr "kunde inte ta processtider: %m"
 msgid "%s signal terminated program %s"
 msgstr "%s-signal avslutade programmet %s"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "okänd kommandoradsflagga %qs"
@@ -25882,7 +25882,7 @@ msgstr "multilib-specifikation %qs är ogiltig"
 msgid "multilib exclusions %qs is invalid"
 msgstr "multilib-undantag %qs är ogiltiga"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "multilib-val %qs %qs är ogiltigt"
@@ -26181,22 +26181,22 @@ msgstr "%qD: den angivna gränsen %E överskrider destinationsstorleken %E"
 msgid "%qD specified bound %E equals source length"
 msgstr "%qD angiven gräns %E är lika med källängden"
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "flexibel vektormedlem %qD har inte väldefinierade utfyllnadsbitar för %qs"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr "PDP11-bitfältshantering stödjs inte i %qs"
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr "%s stödjs inte för aggregat med variabel längd"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr "%s stödjs inte på denna målarkitektur"
@@ -26237,16 +26237,16 @@ msgid "function returns address of local variable"
 msgstr "funktionen returnerar adress till en lokal variabel"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -26258,366 +26258,366 @@ msgstr "deklarerad här"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr "%<nonnull%>-argument %qD jämfört med NULL"
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr "%qE-utdata kan ha trunkerats före det sista formattecknet"
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr "%qE-utdata trunkerades före det sista formattecknet"
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr "%qE kan skriva en avslutande nolla efter slutet på destinationen"
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr "%qE skriver en avslutande nolla efter slutet på destinationen"
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] "direktivet %<%.*s%> skrev %wu byte till en region av storlek %wu"
 msgstr[1] "direktivet %<%.*s%> skrev %wu byte till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek %wu"
 msgstr[1] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] "utdata från direktivet %<%.*s%> avhugget när %wu byte skrevs till en region av storlek %wu"
 msgstr[1] "utdata från direktivet %<%.*s%> avhugget när %wu byte skrevs till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr "utdata från direktivet %<%.*s%> kan ha huggits av när upp till %wu byte skrevs till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr "utdata från direktivet %<%.*s%> avhugget när upp till %wu byte skrevs till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr "direktivet %<%.*s%> skrev upp till %wu byte till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "utdata från direktivet %<%.*s%> kan ha huggits av när antagligen %wu eller fler byte skrevs till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "utdata från direktivet %<%.*s%> avhugget när antagligen %wu eller fler byte skrevs till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr "direktivet %<%.*s%> skrev antagligen %wu eller fler byte till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "utdata från direktivet %<%.*s%> kan ha huggits av när mellan %wu och %wu byte skrevs till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "utdata från direktivet %<%.*s%> avhugget när mellan %wu och %wu byte skrevs till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr "direktivet %<%.*s%> skrev mellan %wu och %wu byte till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr "utdata från direktivet %<%.*s%> kan ha huggits av när %wu eller fler byte skrevs till en region med storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr "utdata från direktivet %<%.*s%> avhugget när %wu eller fler byte skrevs till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr "direktivet %<%.*s%> skrev %wu eller fler byte till en region av storlek %wu"
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "direktivet %<%.*s%> skrev %wu byte till en region av storlek mellan %wu och %wu"
 msgstr[1] "direktivet %<%.*s%> skrev %wu byte till en region av storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek mellan %wu och %wu"
 msgstr[1] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] "utdata från direktivet %<%.*s%> avhugget när %wu byte skrevs till en region av storlek mellan %wu och %wu"
 msgstr[1] "utdata från direktivet %<%.*s%> avhugget när %wu byte skrevs till en region av storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "utdata från direktivet %<%.*s%> kan ha huggits av när upp till %wu byte skrevs till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "utdata från direktivet %<%.*s%> avhugget när upp till %wu byte skrevs till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "direktivet %<%.*s%> skrev upp till %wu byte till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "utdata från direktivet %<%.*s%> kan ha huggits av när antagligen %wu eller fler byte skrevs till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "utdata från direktivet %<%.*s%> höggs av när antagligen %wu eller fler byte skrevs till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "direktivet %<%.*s%> skrev antagligen %wu eller fler byte till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "utdata från direktivet %<%.*s%> kan ha huggits av när mellan %wu och %wu byte skrevs till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "utdata från direktivet %<%.*s%> höggs av när mellan %wu och %wu byte skrevs till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "direktivet %<%.*s%> skrev mellan %wu och %wu byte till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "utdata från direktivet %<%.*s%> kan ha huggits av när %wu eller fler byte skrevs till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "utdata från direktivet %<%.*s%> höggs av när %wu eller fler byte skrevs till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "direktivet %<%.*s%> skrev %wu eller fler byte till en region med storlek mellan %wu och %wu"
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr "direktivargumentet %<%.*s%> är null"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr "utdata från direktivet %<%.*s%> på %wu byte överskrider minsta nödvändiga storlek på 4095"
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr "utdata från direktivet %<%.*s%> mellan %wu och %wu byte överskrider minsta nödvändiga storlek på 4095"
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr "utdata från direktivet %<%.*s%> mellan %wu och %wu byte kan överskrida minsta nödvändiga storlek på 4095"
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr "utdata från direktivet %<%.*s%> på %wu byte överskrider %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr "utdata från direktivet %<%.*s%> mellan %wu och %wu byte överskrider %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "utdata från direktivet %<%.*s%> på %wu byte får resultatet att överskrida %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "utdata från direktivet %<%.*s%> mellan %wu och %wu byte får resultatet att överskrida %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr "utdata från direktivet %<%.*s%> mellan %wu och %wu byte kan få resultatet att överskrida %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr "direktivargumentet %<%.*s%> är inte en nollavslutad sträng"
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr "det refererade argumentet deklarerades här"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] "antar direktivutdata på %wu byte"
 msgstr[1] "antar direktivutdata på %wu byte"
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "direktivargument %qE"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr "direktivargument i intervallet [%E, %E]"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr "använder intervallet [%E, %E] som direktivargument"
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] "%qE-utdata på %wu byte in i en destination med storlek %wu"
 msgstr[1] "%qE-utdata på %wu byte in i en destination med storlek %wu"
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr "%qE-utdata mellan %wu och %wu byte in i en destination med storlek %wu"
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr "%qE-utdata på %wu eller fler byte (antar %wu) in i en destination med storlek %wu"
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr "%qE-utdata på %wu eller fler byte in i en destination med storlek %wu"
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] "%qE-utdata %wu byte"
 msgstr[1] "%qE-utdata %wu byte"
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr "%qE-utdata mellan %wu och %wu byte"
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr "%qE-utdata på %wu eller fler byte (antar %wu)"
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr "%qE-utdata på %wu eller fler byte"
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr "direktivbredden %<%.*s%> är utanför intervallet"
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr "direktivprecisionen %<%.*s%> är utanför intervallet"
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr "argumentet %qE %Z och kanske %Z överlappar destinationsobjektet %qE"
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] "%qE:s argument %Z överlappar destinationsobjektet %qE"
 msgstr[1] "%qE:s argument %Z överlappar destinationsobjektet %qE"
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] "%qE:s argument %Z kan överlappa destinationsobjektet %qE"
 msgstr[1] "%qE:s argument %Z kan överlappa destinationsobjektet %qE"
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr "destinationsobjektet som refereras av det %<restrict%>-kvalificerade argument 1 deklarerades här"
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr "angiven gräns på %wu överskrider maximal objektstorlek %wu"
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr "angiven gräns på %wu överskrider %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr "angiven gränsintervall på [%wu, %wu] överskrider %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, gcc-internal-format
 msgid "null destination pointer"
 msgstr "nolldestinationspekare"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr "angiven gräns på %wu överskrider storleken %wu på destinationsobjektet"
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, gcc-internal-format
 msgid "null format string"
 msgstr "nollformatsträng"
@@ -27354,12 +27354,12 @@ msgstr "använder en hängande pekare till %qD"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD är deklarerad här"
@@ -28121,7 +28121,7 @@ msgstr "symbol %u har %<x-location == %u%>"
 msgid "token %u has %<y-location == %u%>"
 msgstr "symbol %u har %<y-location == %u%>"
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "ogiltig användning av attributet %<fallthrough%>"
@@ -28465,17 +28465,17 @@ msgstr "namnet %qs är definierat till ett annat värde i en annan översättnin
 msgid "mismatching definition"
 msgstr "definitionen stämmer inte överens"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr "ogiltig fnsummary i LTO-ström"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr "ipa-inline-sammanfattning saknas i indatafil"
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr "IPA modref-sammanfattning saknas i indatafilen"
@@ -29538,72 +29538,72 @@ msgstr "fel vid skrivning av optimeringsposter till %qs: %s"
 msgid "error closing optimization records %qs"
 msgstr "fel när optimeringsposter %qs stängdes"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, gcc-internal-format
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "kommandoradsflaggan %qs stödjs inte av denna konfiguration"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "argument saknas till %qs"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "argumentet till %qs skall vara ett ickenegativt heltal eventuellt följt av en storleksenhet"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "argumentet till %qs skall vara ett ickenegativt heltal"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "argument till %qs är inte mellan %d och %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, gcc-internal-format
 msgid "invalid argument in option %qs"
 msgstr "ogiltigt argument i flaggan %qs"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr "%qs angivet flera gånger i samma flagga"
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "%qs är ömsesidigt uteslutande med %qs och kan inte användas tillsammans"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "okänt argument till flaggan %qs"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "giltiga argument till %qs är: %s; menade du %qs?"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "giltiga argument till %qs är: %s"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "flaggan %qs stödjs inte längre"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, gcc-internal-format
 msgid "argument to %qs is bigger than %d"
 msgstr "argument till %qs är större än %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr "felformaterad %<COLLECT_GCC_OPTIONS%>"
@@ -29677,8 +29677,8 @@ msgstr "argumentet till %<-O%> skall vara ett ickenegativt heltal, %<g%>, %<s%>,
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "%qs är inkompatibel med %qs"
@@ -30392,7 +30392,7 @@ msgstr "global registervariabel följer en funktionsdefinition"
 msgid "register of %qD used for multiple global register variables"
 msgstr "register för %qD använt till flera globala registervariabler"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "står i konflikt med %qD"
@@ -30842,42 +30842,42 @@ msgstr "sektionen för aliaset %q+D måste stämma med sektionen för dess mål"
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "%<__builtin_saveregs%> stödjs inte på denna målarkitektur"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "argument %qs stödjs inte till %qs på detta mål"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "nästade funktioner stödjs inte på denna målarkitektur"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "nästade funktionstrampoliner stödjs inte för denna målarkitektur"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "globala konstruerare stödjs inte för denna målarkitektur"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "globala destruerare stödjs inte på denna målarkitektur"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, gcc-internal-format
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "attributet %<target%> stödjs inte på denna maskin"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, gcc-internal-format
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "attributet %<target_version%> stödjs inte på denna maskin"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr "%<#pragma GCC target%> stödjs inte för denna maskin"
@@ -31990,82 +31990,82 @@ msgstr "GB %i har felaktig båge"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "GB %i har felaktig fall-igenom-båge"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "funktion %q+F kan aldrig kopieras eftersom den tar emot ett icke-lokalt goto"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "funktion %q+F kan aldrig kopieras eftersom den sparar adressen av en lokal etikett i en statisk variabel"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "funktion %q+F kan aldrig inline:as för att den använder alloca (åsidosätt genom att använda attributet always_inline)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "funktion %q+F kan aldrig inline:as eftersom den använder setjmp"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "funktion %q+F kan aldrig inline:as eftersom den använder variabel argumentlista"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "funktion %q+F kan aldrig inline:as eftersom den använder setjmp-longjmp-undantagshantering"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "funktion %q+F kan aldrig inline:as eftersom den använder icke-lokala goto"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "funktion %q+F kan aldrig inline:as eftersom den använder %<__builtin_return%> eller %<__builtin_apply_args%>"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "funktion %q+F kan aldrig inline:as eftersom den innehåller ett beräknat goto"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "funktion %q+F kan aldrig inline:as eftersom den har ett VLA-argument"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "funktionen %q+F kan aldrig vara inline eftersom det stängs av av %<-fno-inline%>"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "funktionen %q+F kan aldrig vara inline eftersom den använder attribut som står i konflikt med inline"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "inline:ing misslyckades i anrop av %<always_inline%> %q+F: %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "anropad härifrån"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, gcc-internal-format
 msgid "called from this function"
 msgstr "anropad från denna funktion"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "inline:ing misslyckades i anrop av %q+F: %s"
@@ -32120,27 +32120,27 @@ msgstr "ogiltigt fn-specifikationsattribut ”%s”"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "ogiltigt fn-specifikationsattribut ”%s” arg %i"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr "%qs pekaren är noll"
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr "i ett anrop av en icke-statisk medlemsfunktion %qD"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr "argument %u är noll där icke-noll förväntades"
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "i ett anrop till den inbyggda funktionen %qD"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "i ett anrop till funktionen %qD deklarerad %qs"
@@ -32344,7 +32344,7 @@ msgstr "%qs används oinitierad"
 msgid "%qs may be used uninitialized"
 msgstr "%qs kan användas oinitierad"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD deklarerades här"
@@ -32574,7 +32574,7 @@ msgstr "vektorvillkor kommer expanderas bitvis"
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr "vektorblandningsoperationen kommer expanderas bitvis"
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr "vektorisering hände inte för en simd-slinga"
@@ -32589,122 +32589,122 @@ msgstr "icke konstant element i konstant CONSTRUCTOR"
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr "sidoeffektselement i icke sidoeffekts-CONSTRUCTOR"
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "vektorer av funktioner är inte meningsfulla"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "funktionsreturtyp kan inte vara funktion"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "trädkontroll: %s, har %s i %s, vid %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "trädkontroll: förväntade ingen av %s, har %s i %s, vid %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "trädkontroll: förväntade klass %qs, har %qs (%s) i %s, vid %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "trädkontroll: klass %qs förväntades inte, har %qs (%s) i %s, vid %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "trädkontroll: %<omp_clause %s%> förväntades, har %qs i %s, vid %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "trädkontroll: förväntade träd som innehåller posten %qs, har %qs i %s, vid %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "trädkontroll: använde element %d av %<tree_int_cst%> med %d element i %s, vid %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "trädkontroll: använde element %d av %<tree_vec%> med %d element i %s, vid %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "trädkontroll: använde operand %d av %s med %d operander i %s, vid %s:%d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "trädkontroll: använde operand %d av %<omp_clause %s%> med %d operander i %s, vid %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qD bör undvikas: %s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qD bör undvikas"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE bör undvikas: %s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%qE bör undvikas"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "typen bör undvikas: %s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "typen bör undvikas"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, gcc-internal-format
 msgid "%qD is unavailable: %s"
 msgstr "%qD är otillgänglig: %s"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, gcc-internal-format
 msgid "%qD is unavailable"
 msgstr "%qD är otillgänglig"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, gcc-internal-format
 msgid "%qE is unavailable: %s"
 msgstr "%qE är otillgänglig: %s"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, gcc-internal-format
 msgid "%qE is unavailable"
 msgstr "%qE är otillgänglig"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr "typen är otillgänglig: %s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, gcc-internal-format
 msgid "type is unavailable"
 msgstr "typen är otillgänglig"
@@ -32729,262 +32729,262 @@ msgstr "typen är otillgänglig"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr "typvarianter skiljer i %s"
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr "typvariant har en annan %<TYPE_SIZE_UNIT%>"
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr "typvariantens %<TYPE_SIZE_UNIT%>"
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr "typens %<TYPE_SIZE_UNIT%>"
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr "typvariant med %<TYPE_ALIAS_SET_KNOWN_P%>"
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr "typvariant har en annan %<TYPE_VFIELD%>"
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr "typvariant har en annan %<TYPE_BINFO%>"
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr "typvariantens %<TYPE_BINFO%>"
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr "typens %<TYPE_BINFO%>"
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr "typvariant har andra %<TYPE_FIELDS%>"
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr "första som inte stämmer är fält"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr "och fält"
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr "typvariant har en annan %<TREE_TYPE%>"
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr "typvariantens %<TREE_TYPE%>"
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr "typens %<TREE_TYPE%>"
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "typen är inte kompatibel med sin variant"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not an opaque type"
 msgstr "typen %s är inte en ogenomskinlig typ"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not with opaque mode"
 msgstr "typen %s har inte ogenomskinligt läge"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr "typen %s skiljer i %<TYPE_MODE%>"
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr "typen %s skiljer i %<TYPE_SIZE%>"
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr "typen %s skiljer i %<TYPE_ALIGN%>"
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr "typen %s skiljer i %<TYPE_USER_ALIGN%>"
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, gcc-internal-format
 msgid "main variant is not defined"
 msgstr "huvudvarianten är inte definierad"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr "%<TYPE_MAIN_VARIANT%> har en annan %<TYPE_MAIN_VARIANT%>"
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr "%<TYPE_CANONICAL%> har en annan %<TYPE_CANONICAL%>"
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr "%<TYPE_CANONICAL%> är inte kompatibla"
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr "%<TYPE_MODE%> av %<TYPE_CANONICAL%> är inte kompatibla"
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr "%<TYPE_CANONICAL%> av huvudvarianten är inte en huvudvariant"
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr "%<TYPE_VFIELD%> är varken %<FIELD_DECL%> eller %<TREE_LIST%>"
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr "%<TYPE_NEXT_PTR_TO%> är inte %<POINTER_TYPE%>"
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr "%<TYPE_NEXT_REF_TO%> är inte %<REFERENCE_TYPE%>"
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr "%<TYPE_BINFO%> är inte %<TREE_BINFO%>"
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr "%<TYPE_BINFO%>-typ är inte %<TYPE_MAIN_VARIANT%>"
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr "%<TYPE_METHOD_BASETYPE%> är inte en post eller union"
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr "%<TYPE_OFFSET_BASETYPE%> är inte en post eller union"
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr "%<TYPE_ARRAY_MAX_SIZE%> inte %<INTEGER_CST%>"
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr "%<TYPE_MAX_VALUE_RAW%> icke-NULL"
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr "%<TYPE_LANG_SLOT_1 (binfo)%>-fält är icke-NULL"
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr "enum-värde är inte %<CONST_DECL%> eller %<INTEGER_CST%>"
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr "enum-värdetyp är varken %<INTEGER_TYPE%> eller konvertibel till enum"
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr "enum-värdenamn är inte %<IDENTIFIER_NODE%>"
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "vektorn %<TYPE_DOMAIN%> är inte av heltalstyp"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "%<TYPE_FIELDS%> definierad i ofullständig typ"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr "fel träd i %<TYPE_FIELDS%>-lista"
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr "%<TYPE_CACHED_VALUES_P%> är %i medan %<TYPE_CACHED_VALUES%> är %p"
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr "%<TYPE_CACHED_VALUES%> är inte %<TREE_VEC%>"
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr "fel %<TYPE_CACHED_VALUES%>-post"
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr "%<TREE_PURPOSE%> är icke-NULL i %<TYPE_ARG_TYPES%>-lista"
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr "fel post i %<TYPE_ARG_TYPES%>-lista"
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr "%<TYPE_VALUES_RAW%>-fält är icke-NULL"
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr "%<TYPE_CACHED_VALUES_P%> är satt när det inte skulle vara det"
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr "%<TYPE_METHOD_BASETYPE%> är inte en huvudvariant"
@@ -33199,7 +33199,7 @@ msgstr "aliasdefinitioner stödjs inte i denna konfiguration"
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "synlighetsattribut stödjs inte för denna konfiguration, ignoreras"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr "%+qD utan attributet %<retain%> och %qD med attributet %<retain%> är placerad i en sektion med samma namn"
@@ -33401,7 +33401,7 @@ msgstr "attributet %qE ignorerat eftersom %qD inte är en variabel"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "attributet %qE ignorerat eftersom %qD inte är en lokal variabel"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "attributet %qE har bara effekt på publika objekt"
@@ -33583,7 +33583,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "ignorerar attributet %qE som inte är satt på en variabel"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "attributet %qE kan inte anges för lokala variabler"
@@ -33898,7 +33898,7 @@ msgstr "%qD är inte kompatibel med %qD"
 msgid "%qE argument is not a function"
 msgstr "argumentet %qE är inte en funktion"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "deprecated-meddelande är inte en sträng"
@@ -34403,7 +34403,7 @@ msgstr "ISO C++ tillåter inte %<alignof%> använt på en funktionstyp"
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "ISO C tillåter inte %<_Alignof%> använt på en funktionstyp"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "ogiltig användning av %qs på en void-typ"
@@ -34534,17 +34534,17 @@ msgstr "attributet %<fallthrough%> angivet flera gånger"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "attributet %<fallthrough%> angivet med en parameter"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "för få argument till funktionen %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -34668,166 +34668,166 @@ msgstr "försök att ta adressen till en medlem %qD i en bitfältspost"
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr "index %E anger ett avstånd större än storleken på %qT"
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "storleken på vektorn är för stor"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "operandtypen %qT är inkompatibel med argument %d till %qE"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "argument av typen pekare eller av typen heltal förväntades som argument 1"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr "båda argumenten måste vara kompatibla"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "felaktigt antal argument till funktionen %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "argument 1 till %qE måste vara pekartyp som inte pekar på void"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "argument 1 till %qE måste vara en pekare på en fullständig typ"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "argument 1 till %qE måste vara en pekare till en typ med konstant storlek"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "argument 1 till %qE måste vara en pekare till ett objekt av storlek större än noll"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "argument %d till %qE måste vara en pekartyp"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "argument %d till %qE måste vara en pekare till en typ med konstant storlek"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "argument %d till %qE får inte vara en pekare till en funktion"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "storleken stämmer inte i argument %d till %qE"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "argument %d till %qE måste ha typen pekare på en %<const%>"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "argument %d till %qE kastar %<const%>-kvalificerare"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "argument %d till %qE får inte vara en pekare på en %<volatile%> typ"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "argument %d till %qE kastar %<volatile%>-kvalificerare"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "minnesmodellsargument %d som inte är heltal till %qE"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "ogiltig minnesmodellsargument %d till %qE"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr "detta mål definierar inte en spekulationsbarriär; ditt program kommer fortfarande fungera korrekt, men felaktig spekulation kommer kanske inte vara begränsat"
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "indexvärdet är utanför gränsen"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "konvertering av skalären %qT till vektorn %qT innebär avhuggning"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "inbyggd funktion %qE måste anropas direkt"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, gcc-internal-format
 msgid "size of array %qE is not a constant expression"
 msgstr "storlek på vektorn %qE är inte ett konstant uttryck"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, gcc-internal-format
 msgid "size of array is not a constant expression"
 msgstr "storlek på vektorn är inte ett konstant uttryck"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, gcc-internal-format
 msgid "size %qE of array %qE is negative"
 msgstr "storleken %qE på vektorn %qE är negativ"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, gcc-internal-format
 msgid "size %qE of array is negative"
 msgstr "storleken %qE på vektorn är negativ"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr "storleken %qE på vektorn %qE överskrider maximal objektstorlek %qE"
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr "storleken %qE på vektorn överskrider maximal objektstorlek %qE"
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "storleken på vektorn %qE överskrider maximal objektstorlek %qE"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr "storleken på vektorn överskrider maximal objektstorlek %qE"
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr "miljövariabeln %qs måste expandera till ett ickenegativt heltal mindre än eller lika med %wd"
@@ -35450,7 +35450,7 @@ msgstr "heltalskonstant är för stor för typen %<unsigned _BitInt(%d)%>"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "heltalskonstant är för stor för typen %<_BitInt(%d)%>"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "%<_BitInt(%d)%> stödjs inte för denna målarkitektur"
@@ -35530,7 +35530,7 @@ msgstr "ej stödd konkatenering av stränglitteraler som inte följer standard"
 msgid "traditional C rejects string constant concatenation"
 msgstr "traditionell C stödjer inte strängkonstantsammanslagning"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr "%<#pragma omp critical%> med %<hint%>-klausul kräver ett namn, utom när %<omp_sync_hint_none%> används"
@@ -35585,7 +35585,7 @@ msgstr "%<depobj%>-beroendetyp angiven i %<depend%>-klausul på en %<depobj%>-ko
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr "en %<iterator%>-modifierare får inte anges på en %<depobj%>-konstruktion"
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "ogiltig typ för iterationsvariabeln %qE"
@@ -35600,17 +35600,17 @@ msgstr "%<_Atomic%>-iterationsvariabel %qE"
 msgid "%qE is not initialized"
 msgstr "%qE är inte initierad"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "styrpredikat saknas"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "ogiltigt styrpredikat"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "utelämnat ökningsuttryck"
@@ -35620,7 +35620,7 @@ msgstr "utelämnat ökningsuttryck"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr "ökningen är inte en konstant 1 eller -1 för villkoret %<!=%>"
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "ogiltigt ökningsuttryck"
@@ -35705,7 +35705,7 @@ msgstr "felaktig reduktionsmodifierare %<task%> på en konstruktion inte kombine
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr "%<inscan%> %<reduction%>-klausul på en annan konstruktion än %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr "%qD angivet i en %<allocate%>-klausul men inte i en explicit privatiseringsklausul"
@@ -35715,7 +35715,7 @@ msgstr "%qD angivet i en %<allocate%>-klausul men inte i en explicit privatiseri
 msgid "%qD is not a function argument"
 msgstr "%qD är inte ett funktionsargument"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr "bitfältet %qE i %qs-klausul"
@@ -36307,7 +36307,7 @@ msgid "wrong type argument to %s"
 msgstr "fel typ på argument till %s"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -37230,35 +37230,35 @@ msgstr "jämförelse mellan två vektorer"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
-msgstr "använd unärt %<+%> som degenererar operander till pekare eller %<&%D[0] %s &%D[0]%> för att jämföra adresser"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
+msgstr "använd unärt %<+%> som degenererar operander till pekare eller %<&%s%E%s[0] %s &%s%E%s[0]%> för att jämföra adresser"
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
-msgstr "använd %<&%D[0] %s &%D[0]%> för att jämföra adresser"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
+msgstr "använd %<&%s%E%s[0] %s &%s%E%s[0]%> för att jämföra adresser"
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr "resultatet av %<%wu^%wu%> är %wu; menade du %<1 << %wu%> (%wu)?"
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr "resultatet av %<%wu^%wu%> är %wu; menade du %<1LL << %wu%>?"
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr "resultatet av %<%wu^%wu%> är %wu; menade du exponentiering?"
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr "resultatet av %<%wu^%wu%> är %wu; menade du %<1e%wu%>?"
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr "man kan tysta denna varning genom att använda en hexadecimal konstant (%wx istället för %wd)"
@@ -37467,117 +37467,117 @@ msgstr "argumentet till %<-misr-secure=%d%> är inte mellan 0 och 3"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr "för flaggan %<-mcache-block-size=X%> måste ett giltigt X vara: 4, 8, 16, 32, 64, 128, 256 eller 512"
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr "%<-march=%s%>: utökningen %qs förekommer mer än en gång."
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr "%<-march=%s%>: utökningen %qs är en standard enkelbokstavsutökning som inte stödjs"
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr "%<-march=%s%>: utökningen %qs börjar med ”z” men är en standardutökning som inte stödjs"
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr "%<-march=%s%>: utvidgningen %qs börjar med ”s” men är en standardövervakarutvidgning som inte stöjds"
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr "%<-march=%s%>: utökningen %qs börjar med ”x” men är en icke-standardutökning som inte stödjs"
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr "%<-march=%s%>: ett tal förväntades efter %<%dp%>."
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr "%<-march=%s%>: för %<%s%dp%dp?%>, versionsnummer med mer än 2 nivåer stödjs inte"
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr "%<-march=%s%>: ISA-strängen måste börja med rv32 eller rv64"
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr "%<-march%s%>: rv%de är inte en giltig bas-ISA"
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr "versionen av %<g%> kommer utelämnas, ange en version för individuell utökning."
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr "%<-march=%s%>: första ISA-undergrupp måste vara %<e%>, %<i%> eller %<g%>"
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr "%<-march=%s%>: Inte en enbokstavsutökning. %<%c%>"
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr "%<-march=%s%>: utökningen zcf stödjs bara i rv32"
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr "%<-march=%s%>: z*inx står i konflikt med flyttalsutökningar"
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr "%<-march=%s%>: utökningen h kräver utökningen i"
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "%<-mcpu=%s%> zcd står i konflikt med zcmt"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "%<-mcpu=%s%> zcd står i konflikt med zcmp"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr "%<-march=%s%>: xtheadvector står i konflikt med en vektorutökning eller des underutökning"
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr "%<-march=%s%>: namnet på %s måste vara mer än 1 bokstav"
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "%<-march=%s%>: %s måste separeras med %<_%>"
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr "%<-march=%s%>: i, e eller g måste vara den första utökningen"
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%<-mcpu=%s%>: okänd CPU"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr "Kan inte hitta en lämpligt multilib-mängd för %<-march=%s%>/%<-mabi=%s%>"
@@ -37975,12 +37975,12 @@ msgstr "en 64-bitars adress förväntades men argument 1 är %d-bitars"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "en 64-bitars adress förväntades men argument 2 är %d-bitars"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC aarch64%> kräver en strängparameter"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr "okänd %<#pragma GCC aarch64%>-flagga %qs"
@@ -38544,7 +38544,7 @@ msgstr "parameterskickandet för argument av typen %qT ändrades i GCC 14.1"
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr "parameterskickandet för argument av typen %qT ändrades i GCC 9.1"
@@ -38620,12 +38620,12 @@ msgid "unknown tuning option (%s)"
 msgstr "okänd trimningsflagga (%s)"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr "inkompatibla flaggor %<-mstack-protector-guard=global%> och %<-mstack-protector-guard-offset=%s%>"
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr "både %<-mstack-protector-guard-offset%> och %<-mstack-protector-guard-reg%> måste användas med %<-mstack-protector-guard=sysreg%>"
@@ -38636,7 +38636,7 @@ msgid "specify a system register with a small string length"
 msgstr "ange ett systemregister med en liten stränglängd"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "%qs är inte ett giltigt avstånd i %qs"
@@ -38816,9 +38816,9 @@ msgstr "pragmat eller attributet %<target(\"%s\")%> tillåter inte en negerad fo
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "pragmat eller attributet %<target(\"%s=%s\")%> är inte giltigt"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "argument till attribut %<target%> är inte en sträng"
@@ -38870,18 +38870,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "multiversionering av virtuell funktion stödjs inte"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "multiversionering behöver %<ifunc%> som inte stödjs på detta mål"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr "parameterskickandet för argument av typen %qT med %<[[no_unique_address]]%>-medlemmar ändrades %{i GCC 10.1%}"
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr "parameterskickandet för argument av typen %qT när C++17 är aktiverat ändrades till att matcha C++14 %{i GCC 10.1%}"
 
@@ -38894,8 +38894,8 @@ msgstr "parameterskickandet för argument av typen %qT ändrades %{i GCC 12.1%}"
 msgid "lane %wd out of range %wd - %wd"
 msgstr "bana %wd utanför intervallet %wd - %wd"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, gcc-internal-format
 msgid "unsupported simdlen %wd"
 msgstr "ej stödd simdlen %wd"
@@ -38905,7 +38905,7 @@ msgstr "ej stödd simdlen %wd"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "GCC stödjer för närvarande inte returtypen %qT för simd"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr "returtyp %qT stödjs ej för simd"
@@ -38915,7 +38915,7 @@ msgstr "returtyp %qT stödjs ej för simd"
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "GCC stödjer för närvarande inte argumenttypen %qT för simd"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "argumenttyp %qT som inte stödjs till simd"
@@ -39005,8 +39005,8 @@ msgstr "L%d-cachelatens okänd för %s"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "felaktigt värde %qs till %<-mmemory-latency%>"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "felaktig inbyggd fcode"
@@ -39126,18 +39126,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "argumentet till attributet %qE är inte ”ilink” eller ”firq”"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -39251,7 +39251,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "argumentet till attributet %qE saknas"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "attributet %qE tillåter endast en heltalskonstant som argument"
@@ -39271,23 +39271,23 @@ msgstr "attributet %qE är bara tillämpligt på typer"
 msgid "argument of %qE attribute ignored"
 msgstr "argumentet till attributet %qE ignoreras"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "attributet %qE är bara tillämpligt på variabler"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr "alternativ är inte tillåtna i %<asm%>-flaggutdata"
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr "okänd %<asm%>-flaggutdata %qs"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr "ogiltig typ för %<asm%>-flaggutdata"
@@ -39529,7 +39529,7 @@ msgstr "målprocessorn stödjer inte THUMB-instruktioner"
 msgid "target CPU does not support unaligned accesses"
 msgstr "målprocessorn stödjer inte ojusterade åtkomster"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, gcc-internal-format
 msgid "This architecture does not support branch protection instructions"
 msgstr "Denna arkitektur stödjer inte grenskyddsinstruktioner"
@@ -39579,7 +39579,7 @@ msgstr "storleksgräns för poster kan bara sättas till 8 eller 32"
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "RTP PIC är inkompatibelt med %<-msingle-pic-base%>"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr "FDPIC-läget stödjs inte i Thumb-1-läge"
@@ -39685,7 +39685,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr "argument av typen %qT är inte tillåtna med %<-mgeneral-regs-only%>"
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr "parameterskickandet för argument av typen %qT ändrades i GCC 7.1"
@@ -39725,42 +39725,42 @@ msgstr "attributet %qE har ingen effekt på funktioner med statisk länkklass"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "attributet %qE är bara tillämpligt på bastypen av en funktionspekare"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr "att nå trådlokal lagring stödjs inte för närvarande med %<-mpure-code%> eller %<-mslow-flash-data%>"
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr "%s %wd utanför intervall %wd - %wd"
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "kan inte beräkna verklig plats för stackparameter"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr "Oväntat långt thumb1-hopp"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "inga låga register tillgängliga för att poppa höga register"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "Avbrottshanteringsrutiner kan inte kodas i Thumb-1-läge"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr "%<-fstack-check=specific%> för Thumb-1"
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr "ogiltig fpu för målattributet eller pragmat %qs"
@@ -39768,22 +39768,22 @@ msgstr "ogiltig fpu för målattributet eller pragmat %qs"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr "automatiskt fpu-val är för närvarande inte tillåtet här"
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "ogiltig arkitektur för målattribut eller -pragma %qs"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr "okänt målattribut eller -pragma %qs"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "%<asm%>-flaggor stödjs inte i thumb1-läge"
@@ -39837,158 +39837,158 @@ msgstr "stödda kärnarkitekturer:%s"
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "okänd kärnarkitektur %qs angiven till %qs"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, gcc-internal-format
 msgid "%<-fpic%> is not supported"
 msgstr "%<-fpic%> stödjs inte"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
 msgstr "%<-fPIC%> stödjs inte"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, gcc-internal-format
 msgid "%<-fpie%> is not supported"
 msgstr "%<-fpie%> stödjs inte"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr "%<-fPIE%> stödjs inte"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "funktionsattributen %qs och %qs är ömsesidigt uteslutande"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "funktionen %qs kan inte ha argument"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "funktionen %qs kan inte returnera ett värde"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs verkar vara en felstavad %qs-hanterare, prefixet %<__vector%> saknas"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr "%qs är en reserverad identifierare i AVR-LibC.  Överväg %<#include <avr/interrupt.h>%> före makrot %qs används"
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr "%qs är en undanbedd identifierare i AVR-LibC. Överväg %<#include <avr/interrupt.h>%> eller %<#include <compat/deprecated.h>%> före makrot %qs används"
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr "%<builtin_return_address%> innehåller bara 2 byte adress"
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr "pekarförskjutning från symbol kan vara oriktig"
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr "åtkomst av dataminne med programminnesadress"
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr "åtkomst av programminne med dataminnesadress"
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr "fast register %s använt för att skicka en parameter till en funktion"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "skrivning till adressrymden %qs stödjs inte"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "attributet %qE är bara tillämpligt på variabler med statisk lagringsklass"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "attributet %qE stödjs bara för reducerade Tiny-kärnor"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "adressen till attributet %qE är utanför giltigt intervall 0x%x%s0x%x"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr "både attributet %s och %qE anger en adress"
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "attributet %qE på en icke-volatile variabel"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "adressrymder stödjs inte för reducerade Tiny-enheter"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "adressrymden %qs stödjs inte för enheter med flash-storlek upp till %d KiB"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr "pekare med mål i adressrymden %qs måste vara konstanta i %qT"
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr "pekare med mål i adressrymden %qs måste vara konstanta i %s %q+D"
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "variabeln %q+D med attributet %qs måste vara placerat i statisk lagring"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr "variabeln %q+D måste vara const för att kunna läggas i en endast läsbar sektion med hjälp av %qs"
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "deklarationen av det statiska attributet %qs för %q+D behöver en adress"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "bara oinitierade variabler kan placeras i sektionen %<.noinit%>"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "variabeln %q+D med dynamisk initiering placerad i programminnesområdet"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "den oinitierade variabeln %q+D placerad i programminnesområdet"
@@ -39997,42 +39997,42 @@ msgstr "den oinitierade variabeln %q+D placerad i programminnesområdet"
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "variabeln %q+D med attributet %qs får inte ha en initierare"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%q+D har inkompatibla attribut %qs och %qs"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "arkitekturen %qs stödjs endast i assembler"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "konvertering från adressrymd %qs till adressrymd %qs"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "%s förväntar sig ett heltal konstant vid kompileringstillfället"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%s förväntar sig ett långt heltal konstant vid kompileringstillfället som första argument"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr "avrundning till %d bitar har ingen effekt för flyttalsvärde med %d decimalbitar"
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr "avrundningsresultatet kommer alltid bli 0"
@@ -40168,7 +40168,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "indirekt anrop i en funktion, vilket inte stödjs av eBPF"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -40787,8 +40787,8 @@ msgstr "argumentet till den inbyggda %<xabort%> måste vara en 8-bitars omedelba
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr "funktionsversioner kan inte markeras som %<gnu_inline%>, kropparna måste vara genererade"
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "kodmodellen %s stödjer inte PIC-läge"
@@ -40854,259 +40854,259 @@ msgstr "för många storleksintervall angivna i flaggan %qs"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr "okänd parameter till flaggan %<-mtune-ctrl%>: %s"
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "Intel MCU psABI stödjs inte i %s-läge"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%<-mtune=x86-64%> bör undvikas.  Använd istället det som passar av %<-mtune=k8%> och %<-mtune=generic%>"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%<target(\"tune=x86-64\")%> bör undvikas.  Använd istället det som passar av %<target(\"tune=k8\")%> och %<target(\"tune=generic\")%>"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr "stödet för %<-mtune=knl%> kommer tas bort i GCC 15"
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr "stödet för %<target(\"tune=knl\")%> kommer tas bort i GCC 15"
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr "stödet för %<-mtune=knm%> kommer tas bort i GCC 15"
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr "stödet för %<target(\"tune=knm\")%> kommer tas bort i GCC 15"
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "%<-mstringop-strategy=rep_8byte%> stödjs inte för 32-bitarskod"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, gcc-internal-format
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "%<-mapxf%> stödjs inte för 32-bitarskod"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, gcc-internal-format
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "flaggan %<-mapx-features=%>- stödjs inte för 32-bitarskod"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "%<-muintr%> stödjs inte för 32-bitarskod"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "%<-mlam=%> flaggan: [u48|u57] stödjs inte för 32-bitarskod"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "adressläget %qs stödjs inte i %s-bitsläge"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "%<-mabi=ms%> stödjs inte med X32 ABI"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "%<-mabi=%s%> stödjs inte med %<-fsanitize=address%>"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "%<-mabi=%s%> stödjs inte med %<-fsanitize=kernel-address%>"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "%<-mabi=%s%> stödjs inte med %<-fsanitize=thread%>"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr "%<-mlam=u48%> är inte kompatibelt med hårdvaruassisterad AddressSanitizer, åsidosätt till %<-mlam=u57%>"
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "kodmodellen %qs stödjs inte i %s-bitsläge"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "kodmodellen %qs stödjs inte i x32-läge"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "%<-masm=intel%> stödjs inte i denna konfiguration"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "%i-bitsläge inte inkompilerat"
 
 # "generic" är bokstavligt argument till flaggan
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "CPU %<generic%> kan användas endast till flaggan %<-mtune=%>"
 
 # "generic" är bokstavligt argument till flaggan
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "CPU %<generic%> kan användas endast till attributet %<target(\"tune=\")%>"
 
 # "intel" är bokstavligt argument till flaggan
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "CPU %<intel%> kan användas endast till flaggan %<-mtune=%>"
 
 # "intel" är bokstavligt argument till flaggan
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "CPU %<intel%> kan användas endast till attributet %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "CPU:n du valde stödjer inte instruktionsuppsättningen x86-64"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr "stödet för %<-march=knl%> kommer tas bort i GCC 15"
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr "stödet för %<target(\"arch=knl\")%> kommer tas bort i GCC 15"
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr "stödet för %<-march=knm%> kommer tas bort i GCC 15"
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr "stödet för %<target(\"arch=knm\")%> kommer tas bort i GCC 15"
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, gcc-internal-format
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "felaktigt värde %qs till flaggan %<-march=%>"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "felaktigt värde %qs till attributet %<target(\"arch=\")%>"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "giltiga argument till flaggan %<-march=%> är: %s; menade du %qs?"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr "giltiga argument till attributet %<target(\"arch=\")%> är: %s; menade du %qs?"
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "giltiga argument till flaggan %<-march=%> är: %s"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "giltiga argument till attributet %<target(\"arch=\")%> är: %s"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "felaktigt värde %qs till flaggan %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "felaktigt värde %qs till attributet %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "giltiga argument till flaggan %<-mtune=%> är: %s; menade du %qs?"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr "giltiga argument till attributet %<target(\"tune=\")%> är: %s; menade du %qs?"
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "giltiga argument till flaggan %<-mtune=%> är: %s"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "giltiga argument till attributet %<target(\"tune=\")%> är: %s"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "%<-mregparm%> ignoreras i 64-bitsläge"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "%<-mregparm%> ignoreras för Intel MCU psABI"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, gcc-internal-format
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "%<-mregparm=%d%> är inte mellan 0 och %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "%<-m96bit-long-double%> är inte kompatibelt med denna målarkitektur"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "%<-mrtd%> ignoreras i 64-bitsläge"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "%<target(\"rtd\")%> ignoreras i 64-bitsläge"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr "%<-mno-evex512%> eller %<-mno-avx512XXX%> kan inte avaktivera AVX10-instruktioner när AVX10.1-512 är tillgängligt"
@@ -41114,291 +41114,291 @@ msgstr "%<-mno-evex512%> eller %<-mno-avx512XXX%> kan inte avaktivera AVX10-inst
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr "Att använda %<-mevex512%> utan några AVX512-funktioner aktiverade tillsammans med endast AVX10.1 kommer inte aktivera några AVX512- eller AVX10.1-512-funktioner, använder 256 som maximal vektorstorlek"
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr "Vektorstorleken står i konflikt mellan AVX10.1 och AVX512, använder 512 som maximal vektorstorlek"
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr "%<-mno-avx512XXX%> kan inte avaktivera AVX10-instruktioner när AVX10 är tillgängligt"
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> kan inte avaktivera AVX512-instruktioner när %<-mavx512XXX%>"
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "%<-mpreferred-stack-boundary%> stödjs inte för denna målarkitektur"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "%<-mpreferred-stack-boundary=%d%> är inte mellan %d och %d"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "%<-mincoming-stack-boundary=%d%> är inte mellan %d och 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "%<-mnop-mcount%> är inte kompatibelt med denna målarkitektur"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "%<-mnop-mcount%> är inte implementerat för %<-fPIC%>"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "%<-msseregparm%> använd utan SSE aktiverat"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "%<target(\"sseregparm\")%> använt utan SSE aktiverat"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "instruktionsuppsättningen SSE avaktiverad, använder 387-aritmetik"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "instruktionsuppsättningen 387 avaktiverad, använder SSE-aritmetik"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "stackavkänning kräver %<-maccumulate-outgoing-args%> för att bli korrekt"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "stackavkänning kräver %<target(\"accumulate-outgoing-args\")%> för att bli korrekt"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr "fasta ebp-register kräver %<-maccumulate-outgoing-args%>"
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr "fasta ebp-register kräver %<target(\"accumulate-outgoing-args\")%>"
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr "%<-mfentry%> stödjs inte för 32 bitar i kombination med %<-fpic%>"
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "%<-mno-fentry%> är inte kompatibelt med SEH"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr "%<-mcall-ms2sysv-xlogues%> stödjs inte för närvarande med SEH"
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "okänt alternativ till %<-mrecip=%s%>"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs är inte ett giltigt tal i %<-mstack-protector-guard-offset=%>"
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs är inte ett giltigt avstånd i %<-mstack-protector-guard-offset=%>"
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr "%qs är inte ett giltigt basregister i %<-mstack-protector-guard-reg=%>"
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr "%<-fcf-protection=full%> är inte aktiverat av %<-fhardened%> eftersom det angavs på kommandoraden"
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "%<-fcf-protection%> är inte kompatibelt med denna målarkitektur"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr "attributen interrupt och naked är inte kompatibla"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr "attributen %qs och %qs är inte kompatibla"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr "endast felsökningsformatet DWARF stödjs för en avbrottshanteringsrutin"
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "%<-mindirect-branch=%s%> och %<-mcmodel=large%> är inte kompatibla"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr "%<-mindirect-branch%> och %<-fcf-protection%> är inte kompatibla"
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "%<-mfunction-return=%s%> och %<-mcmodel=large%> är inte kompatibla"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr "%<-mfunction-return%> och %<-fcf-protection%> är inte kompatibla"
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr "%s-instruktioner är inte tillåtna i en undantagshanteringsrutin"
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "%s-instruktioner är inte tillåtna i en avbrottshanteringsrutin"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "%s-instruktioner är inte tillåtna i en funktion med attributet %<no_caller_saved_registers%>"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "attributen fastcall och regparm är inte kompatibla"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "attributen regparam och thiscall är inte kompatibla"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "attributet %qE kräver en heltalskonstant som argument"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "argument till attributet %qE är större än %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "attributen fastcall och cdecl är inte kompatibla"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "attributen fastcall och stdcall är inte kompatibla"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "attributen fastcall och thiscall är inte kompatibla"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "attributen stdcall och cdecl är inte kompatibla"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "attributen stdcall och fastcall är inte kompatibla"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "attributen stdcall och thiscall är inte kompatibla"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "attributen cdecl och thiscall är inte kompatibla"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "attributet %qE används för annat än klassmetod"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "%qE-inkompatibelt attribut ignorerat"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "attributet %qE är bara tillgängligt för 32 bitar"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "argumentet till attributet %qE är varken noll eller ett"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "attributet %qE kräver en strängkonstant som argument"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "argumentet till attributet %qE är inte (keep|thunk|thunk-inline|thunk-extern)"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr "avbrottshanteringsrutiner skall ha en pekare som första argument"
 
 # "unsigned %sint" är tänkt att expanderas till C-syntax
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "avbrottshanteringsrutiner skall ha %qs som andra argument"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr "avbrottshanteringrutiner kan endast ha ett pekarargument och ett valfritt heltalsargument"
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr "avbrottshanteringsrutiner måste returnera %<void%>"
@@ -41589,46 +41589,46 @@ msgstr "ej stödd operandstorlek för utökat register"
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "operand som inte är heltal använt med operandkod %<z%>"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr "den tomma klassen %qT parameterskickande ABI ändras i %<-fabi-version=12%> (GCC 8)"
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr "justeringen av %<_Atomic %T%>-fält ändrades i %{GCC 11.1%}"
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, gcc-internal-format
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "inga register tillgängliga för profilering %<-mcmodel=large%s%>"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "profileringen %<-mcmodel=large%> med PIC stödjs inte"
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr "%<__bfloat16%> är omdefinierat från typedef %<short%> till reell %<__bf16%> sedan GCC 13.1, var vaksam på implicita konverteringar mellan %<__bf16%> och %<short%>; en explicit bittypkonvertering kan behövas här"
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr "okänd arkitekturspecifik minnesmodell"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr "%<HLE_ACQUIRE%> används inte med %<ACQUIRE%> eller starkare minnesmodell"
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr "%<HLE_RELEASE%> används inte med %<RELEASE%> eller starkare minnesmodell"
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr "%<-fexcess-precision=16%> är inte kompatibel med %<-mfpmath=387%>"
@@ -41648,8 +41648,8 @@ msgstr "definition av statisk datamedlem %q+D i dllimport:erad klass"
 msgid "malformed %<#pragma builtin%>"
 msgstr "felformaterat %<#pragma builtin%>"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "ogiltigt argument till attributet %qE"
@@ -41704,12 +41704,12 @@ msgstr "%<PRINT_OPERAND%>: Okänd interpunktion %<%c%>"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "%<PRINT_OPERAND%> null-pekare"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "argument %d till den inbyggda måste vara en konstant i intervallet från %d till %d"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "misslyckades att expandera inbyggd funktion"
@@ -41835,17 +41835,17 @@ msgstr "kodmodellen %qs är inte kompatibel med %s"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%qs kan inte användas till kompilering av ett delat bibliotek"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "attributet %qE kan inte anges för trådlokala variabler"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "attributet %qE kan inte anges för registervariabler"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, gcc-internal-format
 msgid "multiple %qE attribute"
 msgstr "multipla %qE-attribut"
@@ -41946,12 +41946,12 @@ msgstr "flera avbrottsattribut är inte tillåtet"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "%<interrupt_thread%> är tillgängligt endast för fido"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "stackgränsuttryck stödjs inte"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not supported on this target"
 msgstr "%<-fexcess-precision=16%> stödjs inte för denna målarkitektur"
@@ -41992,7 +41992,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr "%<-mxl-multiply-high%> kräver %<-mno-xl-soft-mul%>"
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "attributet %qE behöver ett strängargument"
@@ -42032,132 +42032,132 @@ msgstr "avbrottsvektor till %qE-attributet är inte %<vector=(sw0|sw1|hw0|hw1|hw
 msgid "argument to %qE attribute is not intstack"
 msgstr "argumentet till attributet %qE är inte intstack"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr "ABI:et för att skicka ett värde som innehåller fält med nollbredd före ett intilliggande 64-bitars flyttalsfält ändrades i GCC %{12.1%}"
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr "ABI:et för att returnera ett värde som innehåller bitfält med noll bredd men i övrigt ett aggregat med endast ett eller två flyttalsfält ändrades i GCC %{12.1%}"
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr "ABI:et för att returnera ett värde med C++17 tomma baser men i övrigt ett aggregat med endast ett eller två flyttalsfält ändrades i GCC %{12.1%}"
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "kan inte hantera inkonsistenta anrop av %qs"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr "attributet %<interrupt%> kräver en MIPS32r2-processor eller bättre"
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr "avbrottshanterare kan inte vara MIPS16-funktioner"
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr "%<-fstack-check=specific%> är inte implementerat för MIPS16"
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "inbyggd funktion %qE stödjs inte för MIPS16"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs stödjer inte MIPS16-kod"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr "MIPS16 PIC för andra ABI:er än o32 och o64"
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "MIPS16 %<-mxgot%>-kod"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr "MIPS16-kod med %<hard-float%> för andra ABI:er än o32 och o64"
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr "MSA MIPS16-kod"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "MIPS16 behöver %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "ej stödd kombination: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "%<-%s%> står i konflikt med andra arkitekturflaggor, som anger en %s-processor"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%<-march=%s%> är inte kompatibelt med det valda ABI:et"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "%<-mgp64%> använt med en 32-bitarsprocessor"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "%<-mgp32%> använt med ett 64-bitars ABI"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "%<-mgp64%> använt med ett 32-bitars ABI"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "arkitekturen %qs stödjer inte %<-mfp32%>"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "%<-mgp32%> och %<-mfp64%> kan bara kombineras om målet stödjer instruktionerna mfhc1 och mthc1"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%> och %<-mfp64%> kan endast kombineras när ABI:et o32 används"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "%<-mfpxx%> kan endast användas med ABI:et o32"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "%<-march=%s%> kräver %<-mfp32%>"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr "%<-mfpxx%> kräver %<-mlra%>"
@@ -42167,117 +42167,117 @@ msgstr "%<-mfpxx%> kräver %<-mlra%>"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "kombinationen av %qs och %qs är inkompatibel med %qs"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "arkitekturen %qs stödjer inte trolig gren-instruktioner"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "arkitekturen %qs stödjer inte instruktionerna madd eller msub"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "arkitekturen %qs stödjer inte udda enkelprecisionsregister"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr "ej stödd kombination: %qs%s %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr "ej stödd kombination: %qs %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "kan inte generera positionsoberoende kod för %qs"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "positionsoberoende kod behöver %qs"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> behöver %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr "det går inte att använda smådataåtkomster för %qs"
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "arkitekturen %qs stödjer inte %<-m%s=legacy%>"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "arkitekturen %qs stödjer inte %<-m%s=2008%>"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "%<-mips3d%> kräver %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs måste användas tillsammans med %qs"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr "%<-mmsa%> måste användas med %<-mfp64%> och %<-mhard-float%>"
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "arkitekturen %qs stödjer inte par-enkel-instruktioner"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "%qs kräver ett mål som klarar instruktionen %qs"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "arkitekturen %qs stödjer inte DSP-instruktioner"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr "%<-mloongson-mmi%> måste användas med %<-mhard-float%>"
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr "%<-mloongson-ext2%> måste användas med %<-mloongson-ext%>"
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "%qs kräver trolig gren-instruktioner"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "arkitekturen %qs stödjer inte instruktionen synci"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "funktionsprofilering för mips16"
@@ -43148,57 +43148,57 @@ msgstr "%<#pragma riscv intrinsic%> kräver en strängparameter"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "okänd %<#pragma riscv intrinsic%>-flagga %qs"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr "oväntad arkitektur till attributet %<target()%>: måste börja med + elller rv"
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr "oväntat arkitektur till attributet %<target()%>: felaktig sträng funnen %<%s%>"
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr "attributet %<target()%>: arkitekturen förekommer mer än en gång"
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr "attributet %<target()%>: cpu:n förekommer mer än en gång"
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr "attributet %<target()%>: okänd CPU %qs"
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "attributet %<target()%>: trimning förekommer mer än en gång"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr "attributet %<target()%>: okänd TUNE %qs"
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, gcc-internal-format
 msgid "malformed %<target()%> attribute"
 msgstr "felformaterat attribut %<target()%>"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "attributet %<target(\"%s\")%> tar inte något argument"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "Fick ett okänt attribut %<target(\"%s\")%>"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
 msgstr "felformaterat attribut %<target(\"%s\")%>"
@@ -43258,172 +43258,192 @@ msgstr "kan inte kasta eller fånga RVV-typen %qT"
 msgid "capture by copy of RVV type %qT"
 msgstr "fångst av kopia av RVV-typen %qT"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "den inbyggda funktionen %qE behöver ISA-utökningen zvfhmin eller zvfh"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "den inbyggda funktionen %qE behöver ISA-utökningen zve32f, zve64f, zve64d eller v"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "den inbyggda funktionen %qE behöver ISA-utökningen zve64d eller v"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "den inbyggda funktionen %qE behöver ISA-utökningen zve64x, zve64f, zve64d eller v"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "den inbyggda funktionen %qE kräver ISA-utökningen %qs"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
 msgstr "ingen funktion som stämmer för anrop av %qE med tomma argument"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "okänt cpu %qs till %<-mtune%>"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr "denna åtgärd kräver ISA-utökningen RVV"
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr "man kan aktivera RVV genom att använda kommandoradsflaggan %<-march%>, eller genom att använda attributet eller pragmat %<target%>"
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "ABI:et för en tillplattad post med nollängds bitfält ändrades i GCC 10"
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, gcc-internal-format
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "RVV-typen %qT kan inte skickas till en funktion utan prototyp"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr "%s %qT kräver ISA-utökningen V"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr "%s %qT kräver ISA-utökningen zve64x, zve64f, zve64d eller v"
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr "%s %qT kräver ISA-utökningen zvfhmin eller zvfh"
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr "%s %qT kräver ISA-utökningen zve32f, zve64f, zve64d eller v"
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr "%s %qT kräver ISA-utökningen zve64d eller v"
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr "%s %qT kräver den minimala vektorlängden %qd men %qd ges"
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "funktionsattributet %qs kräver ISA-utökningen V"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "argumentet till attributet %qE är inte %<\"user\"%>, %<\"supervisor\"%> eller %<\"machine\"%>"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr "%qs stödjs endast när %<-mrvv-vector-bits=zvl%> anges"
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qs använt på %qT som inte är en RVV-typ"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, gcc-internal-format
 msgid "%qs requires an integer constant"
 msgstr "%qs kräver en heltalskonstant"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr "felaktig RVV-vektorstorlek %qd, förväntad storlek är %qd baserat på LMUL av typen och %qs"
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr "%<-mdiv%> kräver %<-march%> för att innefatta utökningen %<M%>"
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr "Aktuell RISC-V GCC stödjer inte VLEN större än 4096 bitar till utökningen ”V”"
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "Nuvarande RISC-V GCC stödjer inte RVV i läget rak byteordning"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, gcc-internal-format
 msgid "code model %qs with %qs"
 msgstr "kodmodell %qs med %qs"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr "begärt ABI kräver %<-march%> för att innefatta utökningen %qc"
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr "rv32e kräver ABI:et ilp32e"
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr "rv64e kräver ABI:et lp64e"
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr "z*inx kräver ABI:et ilp32, ilp32e, lp64 eller lp64"
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr "ABI:et kräver %<-march=rv%d%>"
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "%<-mpreferred-stack-boundary=%d%> måste vara mellan %d och %d"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr "%<-mriscv-attribute%> RISC-V ELF-attribut behöver GNU as 2.32 [%<-mriscv-attribute%>]"
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs är inte ett giltigt basregister i %qs"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs är inte ett giltigt tal i %qs"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr "funktionen %qs kan inte ha olika avbrottstyp"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr "kan inte allokera vl-register för %qs på detta mål"
@@ -43673,32 +43693,32 @@ msgstr "den inbyggda %qs tar endast 2 argument"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "den inbyggda %qs tar endast 3 argument"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "%<vec_lvsl%> bör undvikas för omvänd byteordning; använd tilldelning för ojusterade laddningar och lagringar"
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "%<vec_lvsr%> bör undvikas för omvänd byteordning; använd tilldelning för ojusterade laddningar och lagringar"
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "att skicka argument %d till %qE kastar %qs-kvalificerare från pekarmåltyp"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "ogiltig parameterkombination för inbyggd %qs i AltiVec"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr "den överlagrade inbyggda %qs implementeras av den inbyggda %qs"
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, gcc-internal-format
 msgid "%qs is not supported in this compiler configuration"
 msgstr "%qs stödjs inte i denna kompilatorkonfiguration"
@@ -43738,29 +43758,22 @@ msgstr "felaktig användning av MMA-operand av typ %qs som en funktionsparameter
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "GCC-vektor skickad som referens: icke-standard ABI-utökning utan kompatibilitetsgaranti"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr "%qs kräver ELFv2 ABI"
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "för stor stackram"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "ej stött antal nop:ar före funktionsposten (%u)"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr "%qs använder register r29"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr "Stackramar större än 2 G stödjs inte med %<-fsplit-stack%>"
@@ -43885,107 +43898,117 @@ msgstr "%qs behöver ett giltigt basregister"
 msgid "unknown option for %<%s=%s%>"
 msgstr "okänt alternativ till %<%s=%s%>"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr "%<-mrop-protect%> behöver %<-mcpu=power8%> eller senare"
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr "%<-mprop-protect%> behöver ELFv2 ABI:et"
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "%qs bör undvikas och rekommenderas inte under några omständigheter"
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr "%qs är en ogenomskinlig typ, och det går inte att sätta den till andra värden"
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "ingen profilering av 64-bitskod för detta ABI"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "du kan inte ta adressen till en nästad funktion om du använder flaggan %qs"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "användning av %<long double%> i AltiVec-typer är ogiltigt"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "användning av booleaner i AltiVec-typer är ogiltigt"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "användning av %<complex%> i AltiVec-typer är ogiltigt"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, gcc-internal-format
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "användning av decimala flyttalstyper i AltiVec-typer är ogiltigt"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "användning av %<long%> i AltiVec-typer är ogiltigt för 64-bitskod utan %qs"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "användning av %<long%> i AltiVec-typer bör undvikas, använd %<int%>"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "användning av %<long long%> i AltiVec-typer är ogiltigt utan %qs"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "användning av %<double%> i AltiVec-typer är ogiltigt utan %qs"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "felaktig cpu %qs för %s%qs%s"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "%s%qs%s är inte tillåtet"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr "%s%qs%s är ogiltigt"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr "%<-mno-%s%> slår av %<-m%s%>"
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr "attributet %<target_clones%> behöver GLIBC (2.23 och nyare) som exporterar bitar om hårdvaruegenskaper"
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "Multiversionering av virtuell funktion stödjs inte"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr "resultatet av instruktionen xxspltidp är odefinierat för undernormala indatavärden"
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "typen %<__vector_quad%> behöver flaggan %qs"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr "typen %<__vector_pair%> behöver flaggan %qs"
@@ -44030,7 +44053,7 @@ msgstr "RX FPU-instruktioner stödjer inte NaN:er och oändligheter"
 msgid "builtin %qs can only be used on vector types"
 msgstr "inbyggd %qs kan endast användas på vektortyper"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr "konstant värde behövs till den inbyggda %qF argument %d"
@@ -44100,225 +44123,225 @@ msgstr "%qs-matchningsvariant bör undvikas"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "det konstanta argumentet %d till den inbyggda %qF är utanför intervallet för måltypen"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "det konstanta argumentet %d till den inbyggda %qF är ogiltigt (%s)"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "det konstanta argumentet %d till den inbyggda %qF ligger utanför intervallet (0-%wu)"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "det konstanta argumentet %d till den inbyggda %qF ligger utanför intervallet (%wd-%wd)"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr "inbyggd %qF stödjs inte utan %<-mhtm%> (standard med %<-march=zEC12%> och högre)"
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr "inbyggd %qF behöver %<-mvx%> (standard med %<-march=z13%> och högre)"
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr "Inbyggd %qF kräver z14 eller högre"
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr "Inbyggd %qF kräver z15 eller högre"
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr "ej upplöst överlagrad inbyggd"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "felaktig inbyggd icode"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "ogiltigt argument %d till den inbyggda %qF"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr "begärt attribut %qE är inte ett kommaseparerat par av ickenegativa heltalskonstanter eller för stort (max. %d)"
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "argumentet till attributet %qE är inte (keep|thunk|thunk-extern)"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "totala storleken på lokala variabler överskrider arkitekturens gräns"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr "ramstorleken för funktionen %qs är %wd byte vilket överskrider användarens valda stackgräns på %d byte; en ovillkorlig fälla läggs till"
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr "ramstorleken för funktionen %qs är %wd byte vilket är mer än hälften av stackstorleken; den dynamiska kontrollen skulle inte vara pålitlig.  Ingen kontroll läggs ut för denna funktion"
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "ramstorlek på %qs är %wd byte"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs använder dynamisk stackallokering"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr "parameterskickandet för argument av typen %qT med noll breda bitfältsmedlemmar ändrades i GCC 12"
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, gcc-internal-format
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "nästade funktioner kan inte profileras med %<-mfentry%> på s390"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "64-bits ABI stödjs inte i ESA/390-läge"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr "thunk-inline stödjs endast med %<-mindirect-branch-jump%>"
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr "vektorstöd i hårdvara är inte tillgängliga på %s"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr "stöd för hårdvaruvektorer är inte tillgängligt med %<-msoft-float%>"
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "hårdvaruinstruktioner för decimala flyttal är inte tillgängliga på %s"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, gcc-internal-format
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "hårdvaruinstruktioner för decimalflyttal är inte tillgängliga i läget ESA/390"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr "%<-mhard-dfp%> kan inte användas tillsammans med %<-msoft-float%>"
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> stödjs inte i kombination"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "stackstorlek måste vara större än stackvaktsvärdet"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "stackstorlek får inte vara större än 64 k"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "%<-mstack-guard%> implicerar användning av %<-mstack-size%>"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-prologue-check%> behöver ett heltal i intervallet 0-4095"
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-prologue-target%> behöver ett heltal i intervallet 0-4095"
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-epilogue-check%> behöver ett heltal i intervallet 0-4095"
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-epilogue-target%> behöver ett heltal i intervallet 0-4095"
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "%<-mfentry%> stödjs endast för 64-bitars CPU:er"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "argumenten till %qs skall vara ickenegativa heltal"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "argumentet till %qs är för stort (max. %d)"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr "%<-mno-pic-data-is-text-relative%> kan inte användas utan %<-fpic%>/%<-fPIC%>"
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "argument %qs till attribut %<target%> är okänt"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "värdet %qs stödjs inte av attributet %<target%>"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, gcc-internal-format
 msgid "invalid cc output constraint: %qs"
 msgstr "ogiltig cc-utmatningsbegränsning: %qs"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, gcc-internal-format
 msgid "multiple cc output constraints not supported"
 msgstr "flera cc-utmatningsbegränsningar stödjs inte"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "%<asm%>-specificerare för cc-utmatning står i konflikt med %<asm%>-överskrivningslista"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr "ogiltig typ för cc-utmatningsbegränsning"
@@ -44744,8 +44767,8 @@ msgstr "attributet %qE har ingen effekt"
 msgid "attribute %qs applies to array types only"
 msgstr "attributet %qs är bara tillämpbart på vektortyper"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "värdet av typen void ignoreras inte vilket bör göras"
@@ -44820,7 +44843,7 @@ msgstr "den kompletterade typen på vektor %q+D är inkompatibel med implicit in
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "underspecificerad deklaration av %qE, som redan är deklarerad i denna räckvidd"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr "ursprungligen definierad här"
@@ -45052,7 +45075,7 @@ msgstr "deklaration av %q+D skuggar tidigare icke-variabel"
 msgid "declaration of %qD shadows a parameter"
 msgstr "deklaration av %qD skuggar en parameter"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "deklaration av %qD skuggar en global deklaration"
@@ -45063,7 +45086,7 @@ msgstr "deklaration av %qD skuggar en global deklaration"
 msgid "declaration of %qD shadows a previous local"
 msgstr "deklaration av %qD skuggar en tidigare lokal deklaration"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "skuggad deklaration är här"
@@ -45128,7 +45151,7 @@ msgstr "%qE är odeklarerad (första förekomsten i denna funktion)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "varje odeklarerad identifierare rapporteras bara en gång för varje funktion den förekommer i"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "etikett %qE är refererad till utanför någon funktion"
@@ -45163,7 +45186,7 @@ msgstr "hopp in i satsuttryck"
 msgid "duplicate label declaration %qE"
 msgstr "dubbel deklaration av etikett %qE"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "dubblerad etikett %qD"
@@ -45198,7 +45221,7 @@ msgstr "switch hoppar in i satsuttryck"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE definierad som fel sorts tagg"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr "attributet %qE tillämpat på %qD med returtypen void"
@@ -45340,12 +45363,12 @@ msgstr "ISO C90 stödjer inte %<[*]%>-vektordeklarerare"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%> är inte tillåtet annat än inom en funktionsprototyp"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, gcc-internal-format
 msgid "%<omp::%s%> not allowed to be specified in this context"
 msgstr "%<omp::%s%> är inte tillåtet att anges i detta sammanhang"
@@ -45355,7 +45378,7 @@ msgstr "%<omp::%s%> är inte tillåtet att anges i detta sammanhang"
 msgid "%q+D is usually a function"
 msgstr "%q+D är vanligtvis en funktion"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "ingen tidigare deklaration av %qD"
@@ -45431,7 +45454,7 @@ msgstr "kan inte lägga objekt med volatile-fält i register"
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "oinitierad %<const %D%> är ogiltig i C++"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr "%q+D i deklarationsmålsdirektiv har inte en avbildbar typ"
@@ -45616,7 +45639,7 @@ msgstr "lagringsklass angiven för parameter %qE"
 msgid "storage class specified for unnamed parameter"
 msgstr "lagringsklass angiven för namnlös parameter"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "lagringsklass angiven för typnamn"
@@ -45679,7 +45702,7 @@ msgstr "deklaration av %qE som en vektor av funktioner"
 msgid "declaration of type name as array of functions"
 msgstr "deklaration av typnamn som en vektor av funktioner"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "ogiltig användning av post med flexibel vektormedlem"
@@ -45785,7 +45808,7 @@ msgstr "typnamn är deklarerat som en funktion som returnerar en vektor"
 msgid "function definition has qualified void return type"
 msgstr "funktionsdefinition som har kvalificerad void-returtyp"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "typkvalificerare ignoreras för funktions returtyp"
@@ -45912,7 +45935,7 @@ msgstr "ISO C förbjuder const- eller volatile-funktionstyper"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "en medlem av an post eller union får inte ha variabel typ"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "variabel eller fält %qE deklarerad void"
@@ -46017,7 +46040,7 @@ msgstr "onästad funktion med variabelt modifierad typ"
 msgid "object with variably modified type must have no linkage"
 msgstr "objekt med variabel typ får inte ha länkklass"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "funktionsdeklarationen är inte en prototyp"
@@ -46107,17 +46130,17 @@ msgstr "nästad omdefinition av %<union %E%>"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "nästad omdefinition av %<struct %E%>"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr "att definiera en typ i %qs-uttryck är ogiltigt i C++"
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, gcc-internal-format
 msgid "%qT defined in underspecified object initializer"
 msgstr "%qT är definierat i underspecificerad objektinitierare"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "deklaration som inte deklarerar något"
@@ -46147,596 +46170,596 @@ msgstr "tom post har storlek 0 i C, storlek 1 i C++"
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr "tom union har storlek 0 i C, storlek 1 i C++"
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "unionen har inga namngivna medlemmar"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "unionen har inga medlemmar"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "posten har inga namngivna medlemmar"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "posten har inga medlemmar"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "flexibel vektormedlem i union"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "flexibel vektormedlem inte vid slutet av post"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "flexibel vektormedlem i struct utan namngivna medlemmar"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, gcc-internal-format
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "posten som innehåller en flexibel vektormedlem inte vid slutet av annan post"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "typen %qT är för stor"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr "typstampning byter lagringsordning för skalärer"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "unionen kan inte göras transparent"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "omdefinition av posten eller unionen %qT med variabelt modifierad typ"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, gcc-internal-format
 msgid "redefinition of struct or union %qT"
 msgstr "omdefinition av posten eller unionen %qT"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "nästad omdefinition av %<enum %E%>"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "omdeklaration av %<enum %E%>"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr "%<enum%> deklarerad med men definierad utan en fast underliggande typ"
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr "angiven sort för liten för uppräkningsvärden"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "uppräkningsvärden överskrider gränsen för största heltal"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, gcc-internal-format
 msgid "enumeration values exceed range of %qs"
 msgstr "uppräkningsvärden överskrider gränsen på %qs"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, gcc-internal-format
 msgid "conflicting redefinition of enum %qT"
 msgstr "omdefinition av enum %qT som står i konflikt"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "uppräkningsvärde för %qE är inte en heltalskonstant"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "uppräkningsvärde för %qE är inte ett konstant heltalsuttryck"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "överspill i uppräkningsvärden"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr "uppräkningsvärdet är utanför intervallet för den underliggande typen"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr "uppräkningsvärdet är utanför intervallet för %qs"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, gcc-internal-format
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C begränsar uppräkningsvärden till intervallet hos %<int%> före C23"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr "inline-funktionen %qD har fått attributet %qs"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "returtypen är en ofullständig typ"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "returtyp sätts skönsmässigt till %<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr "%q+D deklarerat som en variadisk funktion utan prototyp"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "ingen tidigare prototyp för %qD"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "%qD användes utan någon prototyp före sin definition"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "%qD användes utan någon deklaration före sin definition"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "returtypen för %qD är inte %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr "%<_Atomic%>-kvalificerad returtyp till för %qD"
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%qD är normalt en icke-statisk funktion"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "gammaldags parameterdeklarationer i funktionsdefinition med prototyp"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "traditionell C tillåter inte ISO C:s stil av funktionsdefinitioner"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "ISO C stödjer inte att utelämna parameternamn i funktionsdefinitioner före C23"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr "gammaldags funktionsdefinition"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "parameternamn saknas i parameterlista"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD deklarerad som en icke-parameter"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "flera parametrar med namnet %qD"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "parameter %qD deklarerad med typen void"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "typen på %qD sätts skönsmässigt till %<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "parametern %qD har ofullständig typ"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "deklaration av parameter %qD med det finns ingen sådan parameter"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "antalet argument stämmer inte med inbyggd prototyp"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "antalet argument stämmer inte med prototypen"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "prototypdeklaration"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "befordrat argument %qD stämmer inte med inbyggd prototyp"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "befordrat argument %qD stämmer inte med prototypen"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "argument %qD stämmer inte med inbyggd prototyp"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "argument %qD stämmer inte med prototypen"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "ingen retursats i funktion som returnerar icke-void"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "parametern %qD sätts men används inte"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "%<for%>-slinga med startdeklaration är endast tillåtet i C99- och C11-läge"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "använd flaggan %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> eller %<-std=gnu11%> för att kompilera din kod"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, gcc-internal-format
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 stödjer inte %<for%>-slingor med initiala deklarationer"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "deklaration av statisk variabel %qD i %<for%>-slingas initiala deklaration"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "deklaration av %<extern%>-variabel %qD i %<for%>-slingas initiala deklaration"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> är deklarerad i %<for%>-slingas initiala deklaration"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> är deklarerad i %<for%>-slingas initiala deklaration"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> är deklarerad i %<for%>-slingas initiala deklaration"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "deklaration av icke-variabel %qD i %<for%>-slingas initiala deklaration"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr "inkompatibla adressrymdskvalificerare %qs och %qs"
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "dubblerade %qE-deklarationsspecificerare"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "flera lagringsklasser i deklarationsspecificerare"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr "%qs använt med %<auto%>"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%<auto%> använt med %<constexpr%>"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "två eller fler datatyper i deklaration av specificerare"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> är för långt för GCC"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 stödjer inte %<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 stödjer inte komplexa typer"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO C stödjer inte mättning av typer"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "dubblerad %qE"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C stödjer inte typen %<__int%d%>"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "%<__int%d%> stödjs inte för denna målarkitektur"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 stödjer inte booleska typer"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C stödjer inte typen %<_Float%d%s%> före C23"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "%<_Float%d%s%> stödjs inte för denna målarkitektur"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, gcc-internal-format
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C stödjer inte decimala flyttal före C23"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "fixdecimaltyper stödjs inte för denna målarkitektur"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C stödjer inte fixdecimaltyper"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, gcc-internal-format
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "argumentet till %<_BitInt%> är inte ett konstant heltalsuttryck"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "argumentet %qE till %<_BitInt%> är inte ett konstant positivt heltalsuttryck"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr "argumentet %qE till %<_BitInt%> är större än %<BITINT_MAXWIDTH%> %qd"
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr "C++-uppslagning av %qD skulle returnera ett fält, inte en typ"
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE är varken en typedef eller en inbyggd typ"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE är inte i början av deklarationen"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "%qE använt med %<auto%>"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "%qE använt med %<register%>"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "%qE använt med %<typedef%>"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr "%qE använt med %<constexpr%>"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "ISO C99 stödjer inte %qE"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 stödjer inte %qE"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> före %<extern%>"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> före %<static%>"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%<typedef%> använt med %<auto%>"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr "%qE använt med %<extern%>"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr "%qE använt med %qs"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr "dubblerat %<_Thread_local%> eller %<__thread%>"
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%qs använt med %qE"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr "%<constexpr%> använt med %qE"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<_Sat%> används utan %<_Fract%> eller %<_Accum%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C stödjer inte bara %<complex%> i meningen %<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, gcc-internal-format
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C stödjer inte %<auto%>-attribut före C23"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr "%<__auto_type%> följt av %<[[]]%>-attribut"
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C stödjer inte komplexa heltalstyper"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "argumentet till %<signed _BitInt%> måste vara åtminstone 2"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, gcc-internal-format
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C stödjer inte %<%s_BitInt(%d)%> före C23"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr "%<#pragma omp declare reduction%>-kombinerare refererar variabeln %qD som inte är varken %<omp_out%> eller %<omp_in%>"
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr "%<#pragma omp declare reduction%>-initierare refererar till variabeln %qD som inte är varken %<omp_priv%> eller %<omp_orig%>"
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr "vänsterskift med negativt värde"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "vänstershiftoperanden är negativ"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "högershiftoperanden är negativ"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "vänstershiftoperanden ≥ storleken på typen"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "högershiftoperanden ≥ storleken på typen"
@@ -46766,7 +46789,7 @@ msgstr "markör för versionshanteringskonflikt i filen"
 msgid "to match this %qs"
 msgstr "för att matcha denna %qs"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr "oväntat radslut"
@@ -46776,8 +46799,8 @@ msgstr "oväntat radslut"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C förbjuder tomma översättningsenheter"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr "%qs utan motsvarande %qs"
@@ -46817,9 +46840,9 @@ msgstr "okänt typnamn %qE; menade du %qs?"
 msgid "unknown type name %qE"
 msgstr "okänt typnamn %qE"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "deklarationsspecificerare förväntades"
@@ -46849,7 +46872,7 @@ msgstr "attributet %<fallthrough%> på toppnivå"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "%<;%>, identifierare eller %<(%> förväntades"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "prefixattribut ignoreras för metoder"
@@ -46869,7 +46892,7 @@ msgstr "oväntat attribut"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "attributet %<fallthrough%> följs inte av %<;%>"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr "attributet %<assume%> följs inte av %<;%>"
@@ -46960,7 +46983,7 @@ msgstr "uttryck i statisk försäkran är inte konstant"
 msgid "static assertion failed: %E"
 msgstr "statisk försäkran misslyckades: %E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, gcc-internal-format
 msgid "static assertion failed"
 msgstr "statisk försäkran misslyckades"
@@ -47031,10 +47054,10 @@ msgstr "tom enum är ogiltig"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "identifierare förväntades"
@@ -47185,7 +47208,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr "inre slingor måste vara perfekt nästade med en %<reduction%> %<inscan%>-klausul"
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr "OpenMP-direktiv blandas med attribut- och pragma-syntax på samma sats"
@@ -47195,8 +47218,8 @@ msgstr "OpenMP-direktiv blandas med attribut- och pragma-syntax på samma sats"
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr "OpenMP %<omp::decl%>-attribut på en sats"
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr "okänt OpenMP-direktivnamn i klausulargumentet %qs"
@@ -47370,12 +47393,12 @@ msgstr "ISO C förbjuder utelämnande av den mittersta termen i ett %<?:%>-uttry
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr "divisionen %<sizeof (%T) / sizeof (%T)%> beräknar inte antalet vektorelement"
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr "första %<sizeof%>-operanden deklarerades här"
@@ -47522,7 +47545,7 @@ msgstr "ISO C90 stödjer inte den fördefinierade identifieraren %<__func__%>"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "uttryck förväntades"
@@ -47842,12 +47865,12 @@ msgstr "objective-c-metoddeklaration förväntas"
 msgid "no type or storage class may be specified here,"
 msgstr "ingen typ eller lagringsklass kan anges här,"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr "tom egenskapsattributslista"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, gcc-internal-format
 msgid "missing property attribute"
 msgstr "saknat egenskapsattribut"
@@ -47857,57 +47880,57 @@ msgstr "saknat egenskapsattribut"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "okänt egenskapsattribut %<%s%s%>"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "okänt egenskapsattribut"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "%<=%> förväntades efter Objective-C %qE"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr "%qE-väljarnamn förväntades"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr "setter-metodnamn måste avslutas med %<:%>"
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr "%<#pragma GCC unroll%> kräver ett tilldelningsuttryck som beräknas till en icke-negativ heltalskonstant mindre än %u"
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr "mellanliggande kod får inte innehålla OpemMP-direktiv"
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma %s%> får bara användas i sammansatta satser"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<#pragma acc routine%> måste ha filräckvidd"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp scan%> får bara användas i en slingkonstruktion med %<inscan%> %<reduction%>-klausul"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<#pragma omp section%> får bara användas i %<#pragma omp sections%>-konstruktion"
@@ -47917,25 +47940,25 @@ msgstr "%<#pragma omp section%> får bara användas i %<#pragma omp sections%>-k
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma %s%> får bara användas med filräckvidd"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "for-, while- eller do-sats förväntades"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%> måste komma först"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "för många %qs-klausuler"
@@ -47950,63 +47973,63 @@ msgstr "uttrycket måste vara ett heltal"
 msgid "expected %<)%> or %<,%>"
 msgstr "%<)%> eller %<,%> förväntades"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD är inte en variabel"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD är inte en pekarvariabel"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr "collapse-argument behöver ett positivt konstant heltalsuttryck"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr "%<none%> eller %<present%> förväntades"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "%<none%>, %<shared%>, %<private%> eller %<firstprivate%> förväntades"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, gcc-internal-format
 msgid "expected constant logical expression"
 msgstr "ett konstant logiskt uttryck förväntades"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "%<data%>, %<update%>, %<enter%> eller %<exit%> förväntades"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "%<data%> förväntades"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr "för många %<if%>-klausuler med %qs-modifierare"
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "för många %<if%>-klausuler"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr "för många %<if%>-klausuler utan modifierare"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr "om någon %<if%>-klausul har en modifierare måste alla %<if%>-klausuler använda modifierare"
@@ -48029,22 +48052,22 @@ msgstr "%<num_threads%>-värdet måste vara positivt"
 msgid "%<num_tasks%> value must be positive"
 msgstr "%<num_tasks%>-värdet måste vara positivt"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "%<grainsize%>-värdet måste vara positivt"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "%<priority%>-värdet måste vara positivt"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "konstant heltalsuttryck med giltigt sync-hint-värde förväntades"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr "%<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> eller %<default%> förväntades"
@@ -48054,94 +48077,94 @@ msgstr "%<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> elle
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "%<scalar%>, %<aggregate%>, %<pointer%> eller %<all%> förväntades"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "för många %<defaultmap%>-klausuler med %qs-modifierare"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "för många %<defaultmap%>-klausuler med ospecificerad kategori"
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "%qs-uttrycket måste vara ett heltal"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "%qs-värdet måste vara positivt"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "för många %<static%>-argument"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, gcc-internal-format
 msgid "unexpected argument"
 msgstr "oväntat argument"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "argumentet till %<tile%> behöver en positiv heltalskonstant"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, gcc-internal-format
 msgid "too many %<self%> clauses"
 msgstr "för många %<self%>-klausuler"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, gcc-internal-format
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "%<reproducible%> eller %<unconstrained%> förväntades"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr "%<concurrent%> förväntades"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "%<teams%>, %<parallel%> eller %<thread%> förväntades"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr "ordered-argument behöver ett positivt konstant heltalsuttryck"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "%<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> eller identifierare förväntades"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "både %<monotonic%>- och %<nonmonotonic%>-modifierare angivna"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "%<runtime%>-schemaläggning tar ingen %<chunk_size%>-parameter"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "%<auto%>-schemaläggning tar ingen %<chunk_size%>-parameter"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "värdet på styckesstorleken måste vara positivt"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "ogiltig schedule-sort"
@@ -48151,22 +48174,22 @@ msgstr "ogiltig schedule-sort"
 msgid "%<num_teams%> value must be positive"
 msgstr "%<num_teams%>-värdet måste vara positivt"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr "%<num_teams%> undre gräns %qE är större än den övre gränsen %qE"
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "%<thread_limit%>-värdet måste vara positivt"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr "%<aligned%>-klausulens justeringsuttryck måste vara ett positivt konstant heltalsuttryck"
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr "%<allocator%> eller %<align%> förväntades"
@@ -48176,22 +48199,22 @@ msgstr "%<allocator%> eller %<align%> förväntades"
 msgid "duplicate %qs modifier"
 msgstr "dubblerad %qs-modifierare"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr "%<allocate%>-klausulens allokeraruttryck har typen %qT istället för %<omp_allocator_handle_t%>"
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "argumentet till modifieraren %<align%> av klausulen %<allocate%> måste vara ett positivt konstant heltalsuttryck som är en exponent av två"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr "upprepade linear-modifierare"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr "upprepade %<step%>-modifierare"
@@ -48211,62 +48234,62 @@ msgstr "%<safelen%>-klausulens uttryck måste vara ett positivt konstant heltals
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr "%<simdlen%>-klausulens uttryck måste vara ett positivt konstant heltalsuttryck"
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "modifieraren %<iterator%> är inkompatibel med %qs"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "ogiltig depend-sort"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, gcc-internal-format
 msgid "invalid doacross kind"
 msgstr "felaktig doacross-sort"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr "för många %<always%>-modifierare"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr "för många %<close%>-modifierare"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, gcc-internal-format
 msgid "too many %<present%> modifiers"
 msgstr "för många %<present%>-modifierare"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr "en klausul %<map%> med en annan avbildningstypsmodifierare än %<always%>, %<close%> eller %<present%>"
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, gcc-internal-format
 msgid "invalid map kind"
 msgstr "ogiltig map-sort"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr "%<ancestor%>-enhetsmodifierare som inte föregås av ett %<requires%>-direktiv med en klausul %<reverse_offload%>"
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "%<ancestor%> eller %<device_num%> förväntades"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr "%<device%>-klausulens uttryck måste beräknas till %<1%>"
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "ogiltig dist_schedule-sort"
@@ -48281,88 +48304,88 @@ msgstr "ogiltig proc_bind-sort"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "%<host%>, %<nohost%> eller %<any%> förväntades"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr "%<detach%>-klausulens händelsehandtag har typen %qT istället för %<omp_event_handle_t%>"
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr "en OpenACC-klausul förväntades"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs är inte giltigt för %qs"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr "klausuler i %<simd%>-egenskap skall separeras av %<,%>"
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%qs måste vara den första klausulen i %qs"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr "en OpenMP-klausul förväntades"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr "inga giltiga klausuler angivna i %<#pragma acc declare%>"
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "vektorsektionen i %<#pragma acc declare%>"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr "%qD måste vara en global variabel i %<#pragma acc declare link%>"
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "ogiltig OpenACC-klausul vid filräckvidd"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "ogiltig användning av %<extern%>-variabel %qD i %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "ogiltig användning av %<global%>-variabeln %qD i %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr "%qD måste vara en variabel deklarerad i samma räckvidd som %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr "variabeln %qD använd mer än en gång med %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "%<data%> förväntades efter %<#pragma acc %s%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr "%<#pragma acc %s data%> har ingen dataflyttningsklausul"
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr "konstruktionen %<host_data%> kräver en klausul %<use_device%>"
@@ -48377,7 +48400,7 @@ msgstr "%qE har inte deklarerats"
 msgid "expected function name"
 msgstr "ett funktionsnamn förväntades"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "%qD refererar inte till en funktion"
@@ -48387,22 +48410,22 @@ msgstr "%qD refererar inte till en funktion"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma acc routine%> följs inte omedelbart av en funktionsdeklaration eller -definition"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma acc routine%> följs inte omedelbart av en ensam funktionsdeklaration eller -definition"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "%<#pragma acc routine%> måste vara tillämpad före användning"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<#pragma acc routine%> måste vara tillämpad före definitionen"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr "%<#pragma acc update%> måste innehålla åtminstone en %<device%>- eller %<host%>- eller %<self%>-klausul"
@@ -48427,7 +48450,7 @@ msgstr "variabeln %qD använd i klausulen %<allocator%> får inte ändras mellan
 msgid "modified here"
 msgstr "modifierad här"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr "klausulargumentet %<align%> måste vara ett positivt konstant heltalsuttryck som är en exponent av två"
@@ -48467,110 +48490,110 @@ msgstr "%<allocate%>-klausulen kräver en fördefinierad allokerare eftersom %qD
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr "%<#pragma omp allocate%> för statiska variabler som %qD stödjs inte ännu"
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "%<read%>-, %<write%>-, %<update%>- eller %<capture%>-klausul förväntades"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "%<seq_cst%>, %<acquire%> eller %<relaxed%> förväntades"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr "%<read%>-, %<write%>-, %<update%>-, %<capture%>-, %<compare%>-, %<weak%>-, %<fail%>-, %<seq_cst%>-, %<acq_rel%>-, %<release%>-, %<relaxed%>- eller %<hint%>-klausul förväntades"
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, gcc-internal-format
 msgid "too many atomic clauses"
 msgstr "för många atomära klausuler"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr "för många minnesordningsklausuler"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "en %qs-klausul är inkompatibel med en %<read%>- eller %<write%>-klausul"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr "en %qs-klausul behöver en %qs-klausul"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp atomic write%> är inkompatibelt med en %<acquire%>-klausul implicit tillhandahållen av ett %<requires%>-direktiv"
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp atomic read%> är inkompatibelt med en %<release%>-klausul implicit tillhandahållen av ett %<requires%>-direktiv"
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr "%<#pragma omp atomic read%> är inkompatibelt med en %<release%>-klausul"
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr "%<#pragma omp atomic write%> är inkompatibelt en %<acquire%>-klausul"
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "en %<==%>-jämförelse förväntades i ett %<if%>-villkor"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr "jämförelse med %<==%>, %<<%> eller %<>%> förväntades i %<if%>-villkor"
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "ogiltig form på %<#pragma omp atomic compare%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, gcc-internal-format
 msgid "unexpected %<else%>"
 msgstr "oväntat %<else%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "ogiltig form på %<pragma omp atomic compare%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "ogiltig form på %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "ogiltig operator för %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr "%<weak%>-klausul kräver atomär likhetsjämförelse"
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic capture%> använder två olika uttryck till minne"
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "uttrycket %<depobj%> är inte ett l-värde-uttryck"
@@ -48580,27 +48603,27 @@ msgstr "uttrycket %<depobj%> är inte ett l-värde-uttryck"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "uttrycket %<destroy%> är inte ett l-värde-uttryck"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr "uttrycket %qE till %<destroy%> skall vara detsamma som argumentet %qE till %<depobj%>"
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, gcc-internal-format
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "%<in%>, %<out%>, %<inout%>, %<mutexinoutset%> eller %<inoutset%> förväntades"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "%<depend%>-, %<destroy%>- eller %<update%>-klausul förväntades"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "%<seq_cst%>, %<acq_rel%>, %<release%> eller %<acquire%> förväntades"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr "%<flush%>-lista specificerat tillsammans med minnesordningsklausul"
@@ -48610,163 +48633,163 @@ msgstr "%<flush%>-lista specificerat tillsammans med minnesordningsklausul"
 msgid "expected %<(%> or end of line"
 msgstr "%<(%> eller filslut förväntades"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr "%<[[omp::directive(%s)]]%> måste vara det enda angivna attributet på en sats"
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp scan%> med noll föregående körbara satser"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "en %<inclusive%>- eller %<exclusive%>-klausul förväntades"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr "%<#pragma omp scan%> förväntades"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp scan%> med noll flöljande körbara satser"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "iterationsdeklaration eller initiering förväntades"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, gcc-internal-format
 msgid "not enough nested loops"
 msgstr "inte tillräckligt med nästade slingor"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr "%<ordered%>-klausulparameter är mindre än %<collapse%>"
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "for-sats förväntades"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "iterationsvariabel %qD får inte vara firstprivate"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp ordered%> med %qs-klausul får bara användas i sammansatta satser"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "%<for%> förväntades efter %qs"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "%<point%> förväntades"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target data%> med en annan map-typ än %<to%>, %<from%>, %<tofrom%> eller %<alloc%> på %<map%>-klausul"
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr "%<#pragma omp target data%> måste innehålla åtminstone en %<map%>-, %<use_device_ptr%>- eller %<use_device_addr%>-klausul"
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr "%<#pragma omp target update%> måste innehålla åtminstone en %<from%>- eller %<to%>-klausul"
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target enter data%> med en annan map-typ än %<to%>, %<tofrom%> eller %<alloc%> på %<map%>-klausul"
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target enter data%> måste innehålla åtminstone en %<map%>-klausul"
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr "%<#pragma omp target exit data%> med en annan map-typ än %<from%>, %<tofrom%>, %<release%> eller %<delete%> på %<map%>-klausul"
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target exit data%> måste innehålla åtminstone en %<map%>-klausul"
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target%> med en annan map-typ än %<to%>, %<from%>, %<tofrom%> eller %<alloc%> på %<map%>-klausul"
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp declare %s%> måste följas av funktionsdeklaration eller -definition eller en annan %<#pragma omp declare %s%>"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma omp declare %s%> måste följas av en funktionsdeklaration eller -definition"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, gcc-internal-format
 msgid "expected trait selector name"
 msgstr "trait-väljarnamn förväntades"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "okänd selektor %qs för kontextselektormängden %qs"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr "väljaren %qs tar inte några egenskaper"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<score%> kan inte anges i egenskaper i trait-selector-set %qs"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr "argumentet till %<score%> måste vara ett konstant heltalsuttryck"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr "argumentet till %<score%> måste vara ickenegativt"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, gcc-internal-format
 msgid "expected identifier or string literal"
 msgstr "identifierare eller strängkonstant förväntades"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr "egenskapen måste vara ett konstant heltalsuttryck"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr "egenskaper för %<simd%>-väljare får inte anges i %<metadirective%>"
@@ -48774,290 +48797,290 @@ msgstr "egenskaper för %<simd%>-väljare får inte anges i %<metadirective%>"
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr "selektorn %<requires%> stödjs inte ännu"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, gcc-internal-format
 msgid "expected context selector set name"
 msgstr "namn på kontextväljare förväntades"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, gcc-internal-format
 msgid "expected %<match%>"
 msgstr "%<match%> förväntades"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr "varianten %qD är inte en funktion"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, gcc-internal-format
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "varianten %qD och basen %qD har inkompatibla typer"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr "varianten %qD är en inbyggd"
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "%<#pragma omp declare %s%> som inte omedelbart följs av en funktionsdefinition eller -deklaration"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma omp declare %s%> som inte omedelbart följs av en ensam funktionsdeklaration eller -definition"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr "%qD angivet både i deklarationsmålets %<link%>- och %qs-klausuler"
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr "%qD angivet både i deklarationsmålets %<link%>- och %<to%>- eller %<enter%>-klausuler"
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr "direktiv med endast %<device_type%>- eller %<indirect%>-klausul"
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr "klausulen %<device_type%> måste ange ”any” när den används med en %<indirect%>-klausul"
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "%<target%> förväntades"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "%<declare target%> eller %<assumes%> förväntades"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr "%<#pragma omp end declare target%> utan en motsvarande %<#pragma omp declare target%> eller %<#pragma omp begin declare target%>"
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr "%qs i attributsyntax som avslutas med %qs i pragma-syntax"
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "%qs i pragma-syntax som avslutas med %qs i attributsyntax"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "%<declare%> eller %<assumes%> förväntades"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr "%<#pragma omp declare reduction%> inte med fil- eller blockräckvidd"
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr "fördeklarerad aritmetisk typ i %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr "funktions- eller vektortyp i %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "%<_Atomic%>-kvalificerad typ i %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr "const-, volatile- eller restrict-kvalificerad typ i %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr "omdeklaration av %qs %<#pragma omp declare reduction%> för typen %qT"
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "tidigare %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "%<omp_priv%> eller funktionsnamn förväntades"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "funktionsnamn %<(%> förväntades"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr "en av initierarens anropsargument skall vara %<&omp_priv%>"
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "%<simd%>, %<reduction%>, %<target%> eller %<variant%> förväntades"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "%<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> eller %<seq_cst%> förväntades"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr "en klausul %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> eller %<atomic_default_mem_order%> förväntades"
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr "klausulen %qs använd lexikalt efter första målkonstruktionen eller avlastnings-API:et"
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr "mer än en klausul %<atomic_default_mem_order%> i en enskild kompileringsenhet"
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr "klausulen %<atomic_default_mem_order%> använd lexikalt efter första konstruktionen %<atomic%> utan minnesordningsklausul"
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr "%<pragma omp requires%> kräver åtminstone en klausul"
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "nollstor typ %qT i %<reduction%>-klausul"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "typen %qT med variabel storlek i-%<reduction%>-klausul"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "%<at%>-, %<severity%>- eller %<message%>-klausul förväntades"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, gcc-internal-format
 msgid "expected %qs or %qs"
 msgstr "%qs eller %qs förväntades"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp error%> med %<at(execution)%>-klausul får bara användas i sammansatta satser"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr "%<pragma omp error%> påträffat: %s"
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr "%<pragma omp error%> påträffat"
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr "åtminstone enn assumption-klausul förväntades"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, gcc-internal-format
 msgid "expected directive name"
 msgstr "ett direktivnamn förväntades"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr "okänt OpenMP-direktivnamn i attributargumentet %qs"
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr "%<%s%s%s%s%s%>-direktivet nämnt i både %<absent%>- %<contains%>-klausuler"
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr "%<%s%s%s%s%s%>-direktivet nämnt flera gånger i %qs-klausuler"
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "okänd assumption-klausul %qs"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, gcc-internal-format
 msgid "expected assumption clause"
 msgstr "assumption-klausul förväntades"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE är deklarerad %<threadprivate%> efter första användningen"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "automatisk variabel %qE kan inte vara %<threadprivate%>"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%<threadprivate%> %qE har ofullständig typ"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr "%<__transaction_cancel%> utan att stöd för transaktionsminne är aktiverat"
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr "%<__transaction_cancel%> inom en %<__transaction_relaxed%>"
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "yttre %<__transaction_cancel%> som inte är inuti en yttre %<__transaction_atomic%>- eller en %<transaction_may_cancel_outer%>-funktion"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr "%<__transaction_cancel%> inte inom %<__transaction_atomic%>"
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr "ingen avslutande klammer"
@@ -49198,7 +49221,7 @@ msgstr "derefererar %<void *%>-pekare"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "indexerat värde är varken en vektor eller pekare"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "fältindex är inte ett heltal"
@@ -49228,7 +49251,7 @@ msgstr "underspecificerad %qD refererad i sin initierare"
 msgid "enum constant defined here"
 msgstr "uppräkningskonstant definierad här"
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr "%<sizeof%> på vektorfunktionsparametern %qE kommer returnera storleken på %qT"
@@ -49341,17 +49364,17 @@ msgstr "implicit konvertering från %qT till %qT när argument skickas till en f
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "för få argument till den inbyggda funktionen %qE, %u förväntades"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "jämförelse med stränglitteral resulterar i odefinierat beteende"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, gcc-internal-format
 msgid "comparison between pointer and zero character constant"
 msgstr "jämförelse mellan pekare och teckenkonstanten noll"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr "tänkte du dereferera pekaren?"
@@ -49376,7 +49399,7 @@ msgstr "pekare till funktion använd i subtraktion"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "aritmetik på pekare till ofullständig typ"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr "aritmetik på pekare till ett tomt aggregat"
@@ -49669,7 +49692,7 @@ msgstr "typkonvertering från pekare till heltal av annan storlek"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "typkonvertering från funktionsanrop av typ %qT till typ %qT matchar inte"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "typkonvertering till pekare från heltal med annan storlek"
@@ -49841,7 +49864,7 @@ msgstr "vänsterhandssida av tilldelning kan vara en kandidat för ett formatatt
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "vänsterhandssida av initiering kan vara en kandidat för ett formatattribut"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "returtypen kan vara en kandidat för ett formatattribut"
@@ -50041,12 +50064,12 @@ msgstr "%<constexpr%>-initierare för en reell typ har komplex typ"
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr "%<constexpr%>-initierare för en binär flyttalstyp har en decimal typ"
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "initiering av medlem som är en flexibel vektor"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr "det går inte att initiera vektorn av %qT från en stränglitteral med typvektor %qT"
@@ -50056,7 +50079,7 @@ msgstr "det går inte att initiera vektorn av %qT från en stränglitteral med t
 msgid "array of inappropriate type initialized from string constant"
 msgstr "vektor av typ som inte passar initierad från strängkonstant"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "ogiltig användning av icke-l-värde-vektor"
@@ -50087,7 +50110,7 @@ msgstr "initierarelement är inte ett konstant uttryck"
 msgid "initializer element is not computable at load time"
 msgstr "initierarelement är inte beräkningsbart vid laddtidpunkt"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "ogenomskinliga vektortyper kan inte initieras"
@@ -50102,7 +50125,7 @@ msgstr "extra klammergrupp vid slutet av initierare"
 msgid "braces around scalar initializer"
 msgstr "klamrar runt skalär initierare"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "initiering av medlem som är en flexibel vektor i nästat sammanhang"
@@ -50192,7 +50215,7 @@ msgstr "överflödiga element i postinitierare"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr "positionsinitiering av fält i %<struct%> deklarerad med attributet %<designated_init%>"
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "icke-statisk initiering av an flexibel vektormedlem"
@@ -50232,7 +50255,7 @@ msgstr "ISO C förbjuder %<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "beräknat goto måste vara en pekartyp"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "funktion deklarerad %<noreturn%> har en %<return%>-sats"
@@ -50287,7 +50310,7 @@ msgstr "%<default%>-etikett som inte ligger i en switch-sats"
 msgid "break statement not within loop or switch"
 msgstr "break-sats som inte är i en loop eller switch"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -50333,27 +50356,27 @@ msgstr "jämförelsen kommer alltid beräknas till %<false%> för att adressen t
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "jämförelsen kommer alltid beräknas till %<true%> för att adressen till %qE aldrig kommer att vara NULL"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr "jämför vektorer med skilda elementtyper"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr "jämför vektorer med olika antal element"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "jämförelse mellan typer %qT och %qT"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr "det går inte att hitta en heltalstyp med samma storlek som %qT"
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr "att jämföra flyttal med %<==%> eller %<!=%> är osäkert"
@@ -50425,29 +50448,29 @@ msgstr "värde av uniontyp använt där skalär krävs"
 msgid "used vector type where scalar is required"
 msgstr "vektortyp använd där skalär krävs"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancel%> måste ange en av klausulerna %<parallel%>, %<for%>, %<sections%> eller %<taskgroup%>"
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "%<cancel%> %<if%>-klausulmodifierare förväntades"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancellation point%> måste ange en av klausulerna %<parallel%>, %<for%>, %<sections%> eller %<taskgroup%>"
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD är inte en variabel i en %qs-klausul"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qE är inte en variabel i en %qs-klausul"
@@ -50458,85 +50481,85 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "%<_Atomic%> %qD i %qs-klausul"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD är en trådprivat variabel i en %qs-klausul"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr "undre gränsen %qE i vektorsektion har inte heltalstyp"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "längden %qE i vektorsektion har inte heltalstyp"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr "en enda pekare förväntades i en %qs-klausul"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "nollängds vektorsektion i en %qs-klausul"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr "för en vektor med okänd gräns måste ett längduttryck anges"
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr "negativ nedre gräns i vektorsektion i %qs-klausul"
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr "negativ längd i vektorsektion i en %qs-klausul"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr "nedre gränsen %qE över storleken på vektorsektionen i en %qs-klausul"
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr "längden %qE över storleken på vektorsektionen i en %qs-klausul"
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr "övre gräns %qE ovanför storleken på vektorsektionen i en %qs-klausul"
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr "för en vektorfunktionsparameter måste ett längduttryck anges"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr "för pekartyper måste ett längduttryck anges"
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr "vektorsektionen är inte sammanhängande i %qs-klausulen"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qE har inte pekar- eller vektortyp"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr "iteratorn %qD har varken heltals- eller pekartyp"
@@ -50546,17 +50569,17 @@ msgstr "iteratorn %qD har varken heltals- eller pekartyp"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "iteratorn %qD har %<_Atomic%>-kvalificerad typ"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr "iteratorn %qD har const-kvalificerad typ"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr "iteratorsteg med en icke-heltalstyp"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr "iteratorn %qD har nollsteg"
@@ -50566,32 +50589,32 @@ msgstr "iteratorn %qD har nollsteg"
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr "typ av iteratorn %qD refererar till den yttre iteratorn %qD"
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr "startuttrycket refererar till den yttre iteratorn %qD"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr "slututtrycket refererar till den yttre iteratorn %qD"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr "steguttrycket refererar till den yttre iteratorn %qD"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr "pekare förväntades i en %qs-klausul"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr "%<inscan%>- och icke-%<inscan%> %<reduction%>-klausul på samma konstruktion"
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr "en %<inscan%> %<reduction%>-klausul med vektorsektion"
@@ -50621,7 +50644,7 @@ msgstr "typen %qT med variabel storlek i %qs-klausul"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE har ogiltig typ för %<reduction(%s)%>"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr "ingen användardefinierad reduktion funnen för %qE"
@@ -50631,17 +50654,17 @@ msgstr "ingen användardefinierad reduktion funnen för %qE"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "elementtyp med variabel längd i vektor-%<reduction%>-klausul"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr "en %<nowait%>-klausul får inte användas tillsammans med %<copyprivate%>"
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE måste vara %<threadprivate%> för %<copyin%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr "modifierare skall inte anges i %<linear%>-klausul på %<simd%>- eller %<for%>-konstruktioner när man inte använder OpenMP 5.2-modiferare"
@@ -50656,23 +50679,23 @@ msgstr "en linjär klausul använd på variabel som inte är heltal och inte pek
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr "%<_Atomic%> %qD i %<linear%>-klausul"
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr "%<linear%>-klausulens steg %qE är varken en konstant eller en parameter"
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE är inte en variabel i klausul %qs"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD förekommer mer än en gång i datadelningsklausuler"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr "%qD förekommer mer än en gång i reduktionsklausuler"
@@ -50684,32 +50707,32 @@ msgstr "%qE förekommer mer än en gång i dataklausuler"
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "%qD förekommer mer än en gång i dataklausuler"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr "%qD förekommer både i data- och map-klausuler"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE är inte en variabel i klausul %<firstprivate%>"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE är inte en variabel i klausul %<lastprivate%>"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qE är inte en variabel i %<aligned%>-klausul"
@@ -50729,7 +50752,7 @@ msgstr "%<_Atomic%> %qD i %<aligned%>-klausul"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE förekommer mer än en gång i %<aligned%>-klausuler"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr "%qE är inte en variabel i en %<nontemporal%>-klausul"
@@ -50739,7 +50762,7 @@ msgstr "%qE är inte en variabel i en %<nontemporal%>-klausul"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE förekommer mer än en gång i %<nontemporal%>-klausuler"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr "%qE är inte en variabel i %<allocate%>-klausul"
@@ -50749,76 +50772,76 @@ msgstr "%qE är inte en variabel i %<allocate%>-klausul"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE förekommer mer än en gång i %<allocate%>-klausuler"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr "klausulen %<depend%> med beroendetyp %<depobj%> på vektorsektion"
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr "%<omp_all_memory%> använt med en annan %<depend%>-sortkind än %<out%> eller %<inout%>"
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qE är varken ett l-värdeuttryck eller en vektorsektion i en %qs-klausul"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr "%qE har inte en typ %<omp_depend_t%> i klausulen %<depend%> med beroendetyp %<depobj%>"
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr "%qE skall inte ha en typ %<omp_depend_t%> i klausulen %<depend%> med annan beroendetyp än %<depobj%>"
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr "vektorsektionen har inte en avbildbar typ i %qs-klausulen"
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, gcc-internal-format
 msgid "unsupported map expression %qE"
 msgstr "ej stött avbildningsuttryck %qE"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD förekommer mer än en gång i rörelseklausuler"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD förekommer mer än en gång i avbildningsklausuler"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD har inte en avbildbar typ i %qs-klausul"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE är varken en variabel eller ett funktionsnamn i klausulen %qs"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE förekommer mer än en gång i samma %<declare target%>-direktiv"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD är inte en ett argument i en %<uniform%>-klausul"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "%qE är inte ett argument i en %<uniform%>-klausul"
@@ -50833,22 +50856,22 @@ msgstr "variabeln %qs är inte en pekare"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "%qs-variabeln är varken en pekare eller en vektor"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr "en %<order%>-klausul får inte användas tillsammans med %<ordered%>"
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr "för många %qs-klausuler på en task-konstruktion"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr "en %<inbranch%>-klausul är inkompatibel med %<notinbranch%>"
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE är förutbestämd som %qs för %qs"
@@ -50858,38 +50881,38 @@ msgstr "%qE är förutbestämd som %qs för %qs"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr "%<const%>-kvalificerad %qE kan förekomma endast i klausuler %<shared%> eller %<firstprivate%>"
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr "%<simdlen%>-klausulvärde är större än %<safelen%>-klausulvärde"
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr "%<nonmonotonic%>-schemaläggningsmodifierare angiven tillsammans med %<ordered%>-klausul"
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr "en %qs-klausul angiven tillsammans med en %<inscan%> %<reduction%>-klausul"
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr "%<linear%>-klausulsteg är en parameter %qD inte angiven i %<uniform%>-klausul"
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr "en %<nogroup%>-klausul får inte användas tillsammans med en %<reduction%>-klausul"
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr "en %<detach%>-klausul får inte användas tillsammans med en %<mergeable%>-klausul"
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr "händelsehanteraren för en %<detach%>-klausul skall inte finnas i en datadelningsklausul"
@@ -51154,14 +51177,14 @@ msgstr "  ingen känd konvertering från %qH till %qI"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  ingen känd konvertering för argument %d från %qH till %qI"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] "  kandidaten förväntade sig åtminstone %d argument, %d fanns"
 msgstr[1] "  kandidaten förväntade sig åtminstone %d argument, %d fanns"
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -51470,555 +51493,555 @@ msgstr "villkorsuttryck mellan flyttalstypen %qT och uppräkningstypen %qT bör
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "uppräknings- och inte uppräkningstyp i villkorsuttryck"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "ingen %<%D(int)%> deklarerad för postfix %qs, försöker med prefixoperator istället"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "ingen %<%D(int)%> deklarerad för postfix %qs"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr "i C++20 anropar denna jämförelse den aktuella funktionen rekursivt med omvända argument"
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr "returtypen för %qD är inte %qs"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr "använd som omskriven kandidat för jämförelse mellan %qT och %qT"
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "jämförelse mellan %q#T och %q#T"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, gcc-internal-format
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "ingen träff för anrop till %<%T::operator[] (%A)%>"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, gcc-internal-format
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "anrop av %<%T::operator[] (%A)%> är tvetydigt"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr "undantagsuppstädning för denna placerande new väljer icke-placerande %<operator delete%>"
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "%qD är som en vanlig (icke placerande) avallokeringsfunktion i C++14 (eller med %<-fsized-deallocation%>)"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "%qD är en vanlig (utan placering) avallokeringsfunktion"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr "ingen motsvarande avallokeringsfunktion för %qD"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr "förstörande delete %qD kan inte användas för att släppa det allokerade minnet om initieringen kastar eftersom objektet inte är konstruerat ännu"
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "ingen passande %<operator %s%> för %qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr "%q#D är privat inom denna kontext"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, gcc-internal-format
 msgid "declared private here"
 msgstr "deklarerad privat här"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr "%q#D är skyddad inom denna kontext"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, gcc-internal-format
 msgid "declared protected here"
 msgstr "deklarerad skyddad här"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr "%q#D är oåtkomlig inom denna kontext"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "skickar NULL till icke-pekarargument %P till %qD"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, gcc-internal-format
 msgid "  declared here"
 msgstr "  deklarerad här"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "konverterar till icke-pekartyp %qT från NULL"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "konverterar %<false%> till pekartyp för argument %P till %qD"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "konverterar %<false%> till pekartyp %qT"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  initierar argument %P till %qD"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "konverteringar till vektorer med okänd gräns är endast tillgängliga med %<-std=c++20%> eller %<-std=gnu++20%>"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "för många klamrar runt initierare för %qT"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "konvertering till %qH från %qI behöver en direktinitiering"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C++ tillåter inte konvertering till %qH från %qI med en större konverteringsordning"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr "ISO C++ tillåter inte konvertering till %qH från %qI med oordnad konverteringsordningar"
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "ogiltig användardefinierad konvertering från %qH till %qI"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 msgid "invalid conversion from %qH to %qI"
 msgstr "ogiltig konvertering från %qH till %qI"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr "att konvertera till %qT från initierarlista skulle använda den explicita konstrueraren %qD"
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr "i C++11 och senare kan en standardkonstruerare vara explicit"
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "kan inte binda r-värdesreferens av typen %qH till ett l-värde av typ %qI"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "kan inte binda icke-const-l-värde av typen %qH till ett värde av typ %qI"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "kan inte binda icke-const-l-värde av typen %qH till ett r-värde av typ %qI"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "kan inte binda l-värdesreferens av typen %qH till ett r-värde av typen %qI"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr "det går inte att binda en referens av typen %qH till %qI på grund av olika vektorgränser"
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "att binda en referens av typen %qH till %qI kastar kvalificerare"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "det går inte att binda bitfält %qE till %qT"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "det går inte att binda packat fält %qE till %qT"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "det går inte att binda rvalue %qE till %qT"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "implicit konvertering från %qH till %qI när argument skickas till en funktion"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr "enum %qT med räckvidd skickad vidare %<...%> som %qT före %<-fabi-version=6%>, %qT efter"
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "att skicka objekt av ej trivialt kopierbar typ %q#T via %<...%> är villkorligt stött"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "det går inte att referera typen %qT via %<...%>"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "att ta emot objekt av ej trivialt kopierbar typ %q#T via %<...%> är villkorligt stött"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "rekursiv beräkning av standardargument till %q#D"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "anrop till %qD använder standardargumentet för parameter %P, vilket inte definierats ännu"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "argument till funktionsanrop kan vara en kandidat för ett formatattribut"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr "användning av multiversionsfunktion utan ett standardfall"
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr "använd %<-fdiagnostics-all-candidates%> för att visa kandidater som övervägts"
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "att skicka %qT som %<this%>-argument kastar kvalificerare"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  i anrop till %qD"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT är inte en åtkomlig bas till %qT"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "skickar argument till ellips av den ärvda konstrueraren %qD"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr "tilldelning från en temporär %<initializer_list%> utökar inte livslängden på den underliggande vektorn"
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr "%qD skriver till ett objekt av typen %#qT utan någon trivial kopieringstilldelning"
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "%qD skriver till ett object av den icke-triviala typen %#qT%s"
 
 # %qs blir "protected" eller "private"
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr "%qD skriver till ett objekt av typen %#qT med %qs-medlem %qD"
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr "%qD skriver till ett objekt av typen %#qT som innehåller en pekare till datamedlem%s"
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr "; använd tilldelning eller värdeinitiering istället"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, gcc-internal-format
 msgid "; use assignment instead"
 msgstr "; använd tilldelning istället"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr "; använd värdeinitiering istället"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr "%qD nollställer ett objekt av typen %#qT utan någon trivial kopieringstilldelning%s"
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "%qD nollställer ett objekt av den icke-triviala typen %#qT%s"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr "%qD nollställer ett objekt av typen %#qT som innehåller en pekare-till-medlem%s"
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "; använd kopieringstilldelning eller kopieringsinitiering istället"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr "; använd kopieringstilldelning istället"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr "; använd kopieringsinitiering istället"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr "%qD skriver till ett objekt av typen %#qT utan någon trivial kopieringstilldelning%s"
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr "%qD skriver till ett objekt av typen %#qT som inte är trivialt kopierbar%s"
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr "%qD skriver till ett objekt med en borttagen kopieringskonstruerare"
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr "%qD kopierar ett objekt med en icke-trivial typ %#qT från en vektor av %#qT"
 
 # %qs blir "protected" eller "private"
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr "%qD kopierar ett objekt av typen %#qT med %qs-medlem %qD från en vektor av %#qT; använd tilldelning eller kopieringsinitiering istället"
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr "%qD skriver till ett objekt med en icke-trivial typ %#qT och lämnar %wu byte oförändrade"
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr "%qD skriver till ett objekt av en icke-trivial typ %#qT och lämnar %wu byte oförändrade"
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr "%qD flyttar ett objekt av en icke trivialt kopierbar typ %#qT; använd %<new%> och %<delete%> istället"
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr "%qD flyttar ett objekt av typen %#qT med en borttagen kopieringskonstruerare; använd %<new%> och %<delete%> istället"
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr "%qD flyttar ett objekt av typen %#qT med en borttagen destruerare"
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr "%qD flyttar ett objekt av den icke-triviala typen %#qT och storleken %E in i en region av storleken %E"
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, gcc-internal-format
 msgid "%#qT declared here"
 msgstr "%#qT är deklarerad här"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "argument %u i anropet av funktionen %qE har en pekare till en icke trivialt kopierbar typ (%qT)"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr "konstruerare delegerar till sig själv"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 msgid "cannot convert %qH to %qI"
 msgstr "det går inte att konvertera %qH till %qI"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "ingen matchande funktion för anrop av %<%T::operator %T(%A)%#V%>"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "ingen matchande funktion för anrop av %<%T::%s%E(%A)%#V%>"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "anrop av icke-funktion %qD"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "kan inte anropa konstrueraren %<%T::%D%> direkt"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr "för en typkonvertering i funktionsstil, ta bort det överflödiga %<::%D%>"
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "ingen funktion som stämmer för anrop av %<%s(%A)%>"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "anrop av överlagrad %<%s(%A)%> är tvetydigt"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "pure virtual %q#D anropad från initierare av ickestatisk datamedlem"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr "pure virtual %q#D anropad från en konstruerare"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr "pure virtual %q#D anropad från en destruerare"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "det går inte att anropa medlemsfunktion %qD utan ett objekt"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "att skicka %qT väljer %qT framför %qT"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "C++20 säger att dessa är tvetydiga, trots att den andra är reverserad:"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, gcc-internal-format
 msgid "try making the operator a %<const%> member function"
 msgstr "försök att göra operatorn till en %<const%>-medlemsfunktion"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "väljer %qD framför %qD"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 msgid "  for conversion from %qH to %qI"
 msgstr "  för konvertering från %qH till %qI"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  för att konverteringssekvensen för argumentet är bättre"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "standardargument stämmer inte överens i upplösning av överlagring"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr " kandidat 1: %q#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr " kandidat 2: %q#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ISO C++ säger att dessa är tvetydiga, trots att den sämsta konverteringen för den första är bättre än den sämsta konverteringen för den andra:"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr "en temporär bunden till %qD består endast tills konstrueraren avslutar"
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "ogiltig initiering av icke konstant referens av typ %qH från ett r-värde av typ %qI"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "ogiltig initiering av referens av typ %qH från uttryck av typ %qI"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, gcc-internal-format
 msgid "possibly dangling reference to a temporary"
 msgstr "möjlig hängande referens till en temporär"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr "den temporära destruerades vid slutet av det fullständiga uttrycket %qE"
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr "en explicit konverteringsfunktion övervägdes inte"
@@ -52064,7 +52087,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q#D kan inte överlagras med %q#D"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "tidigare deklaration %q#D"
@@ -52485,7 +52508,7 @@ msgstr "flexibel vektor medlem %qD i en i övrigt tom %q#T"
 msgid "next member %q#D declared here"
 msgstr "nästa medlem %q#D är deklarerad här"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "omdefinition av %q#T"
@@ -52616,7 +52639,7 @@ msgstr "ogiltig typ för parameter %d till %<constexpr%>-funktion %q+#D"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr "lambdan är implicit %<constexpr%> endast i C++17 och senare"
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%<constexpr%>-destruerare är endast tillgängliga med %<-std=c++20%> eller %<-std=gnu++20%>"
@@ -52657,7 +52680,7 @@ msgstr "kroppen i %<constexpr%>-funktionen %qD är inte en retursats"
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%qD är inte användbar som en %<constexpr%>-funktion eftersom:"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr "förstör %qE utanför dess livstid"
@@ -52675,7 +52698,7 @@ msgstr "%<constexpr%>-anrop flödar förbi slutet på funktionen"
 msgid "%q+E is not a constant expression"
 msgstr "%q+E är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -52696,7 +52719,7 @@ msgstr "%qE beräknas till falskt"
 msgid "failed %<assume%> attribute assumption"
 msgstr "misslyckat %<assume%>-attributantagande"
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, gcc-internal-format
 msgid "call to internal function %qE"
@@ -52743,7 +52766,7 @@ msgstr "%qT är en tvetydig basklass till den dynamiska typen %qT av sin operand
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr "den dynamiska typen %qT av sin operand har inte en otvetydig publik basklass %qT"
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -52871,18 +52894,18 @@ msgstr "vektorindexvärdet %qE är utanför gränserna för vektortypen %qT"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "icke-noll vektorindex %qE används med en vektor av typen %qT med okända gränser"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "använder oinitierat vektorelement"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr "derefererar en nollpekare i %qE"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -52890,470 +52913,470 @@ msgstr "derefererar en nollpekare i %qE"
 msgid "%qE is not a constant expression"
 msgstr "%qE är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "muterbar %qD är inte användbart i ett konstant uttryck"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "använder oinitierad medlem %qD"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr "använder medlem %qD istället för initierad medlem %qD i ett konstant uttryck"
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "%qs är inte ett konstant uttryck eftersom %qT är en uniontyp"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "%qs är inte ett konstant uttryck eftersom %qT innehåller en uniontyp"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "%qs är inte ett konstant uttryck eftersom %qT är en pekartyp"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "%qs är inte ett konstant uttryck eftersom %qT innehåller en pekartyp"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "%qs är inte ett konstant uttryck eftersom %qT är en referenstyp"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "%qs är inte ett konstant uttryck eftersom %qT innehåller en referenstyp"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "%qs är inte ett konstant uttryck eftersom %qT är en pekare-till-medlem-typ"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "%qs är inte ett konstant uttryck eftersom %qT innehåller en pekare-till-medlem-typ"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "%qs är inte ett konstant uttryck eftersom %qT är volatil"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "%qs är inte ett konstant uttryck eftersom  %qT innehåller ett volatilt delobjekt"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "%qs kan inte beräknas konstant på denna målarkitektur"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr "%qs kan inte vara konstant beräknat eftersom typen är för stor"
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr "%qs kan inte beräknas konstant eftersom argumentet inte kan kodas"
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "%qs använder oinitierad byte vid avståndet %d"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr "%qs kan inte beräknas konstant eftersom argumentet inte kan tolkas"
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "använder värdet av %qE genom ett %qT-glvalue i ett konstant uttryck"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "användning av allokerad lagring efter deallokering i ett konstant uttryck"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, gcc-internal-format
 msgid "allocated here"
 msgstr "allokerad här"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr "åtkomst av %qE utanför sin livstid"
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "innehållet av den oinitierade lagringen är inte användbart i ett konstant uttryck"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "värdet på %qD är inte användbart i ett konstant uttryck"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "%qD använd i sin egen initierare"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%q#D är inte const"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%q+#D är volatile"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD initierades inte med ett konstant uttryck"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD deklarerades inte %<constexpr%>"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "%qD har inte heltals- eller uppräkningstyp"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "ändring av allokerad lagring efter deallokering är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "ändring av %qE utanför sin livstid är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "att förstöra %qE utanför den nuvarande beräkningen är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "ändring av %qE från utanför den nuvarande beräkningen är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "ändring av den aktiva medlemmen av en union %qD till %qD är inte ett konstant uttryck före C++20"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr "%qD börjar inte implicit sin livstid eftersom %qT inte har någon oraderad trivial standardkonstruerare, använd %<std::construct_at%> istället"
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr "initiering av %qD kräver ett medlemsåtkomstuttryck som vänster operand i tilldelningen"
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "ändring av den aktiva medlemmen av en union %qD till %qD under initiering"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "satsen är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr "%<constexpr%>-slingiterationsantal överskrider gränsen på %d (använd %<-fconstexpr-loop-limit=%> för att öka gränsen)"
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr "inline-assembler är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr "endast oevaluerad inline:ad assembler är tillåten i en %<constexpr%>-funktion i C++20"
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, gcc-internal-format
 msgid "use of %qD"
 msgstr "användning av %qD"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr "dess värde kan variera mellan kompilatorversioner eller med olika flaggor %<-mtune%> eller %<-mcpu%>"
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr "om denna användning är en del av ett publikt ABI, byt det till att istället använda en konstant variabel du definierar"
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr "standardvärdet för den aktuella CPU-trimningen är %d byte"
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr "man kan stabilisera detta värde med %<--param hardware_destructive_interference_size=%d%>, eller avaktivera denna varning med %<-Wno-interference-size%>"
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "värdet %qE av typen %qT är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr "antalet %<constexpr%>-evalueringsoperationer överskrider gränsen på %wd (använd %<-fconstexpr-ops-limit=%> för att öka gränsen)"
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr "kontrollen skickas via definitionen av %qD med trådlagringsvaraktighet"
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr "kontrollen skickas via definitionen av %qD med statisk Lagringsvaraktighet"
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "temporär av den ej litterala typen %qT i ett konstant uttryck"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "en %<reinterpret_cast%> är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "konvertering från pekartypen %qT till den aritmetiska typen %qT i ett konstant uttryck"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "typkonvertering från %qT är inte tillåtet i ett konstant uttryck eftersom den utpekade typen %qT inte liknar %qT"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr "utpekat objekt är deklarerat här"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "typkonvertering från %qT är inte tillåtet i ett konstant uttryck eftersom %qE inte pekar på ett objekt"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "typkonvertering från %qT är inte tillåtet i ett konstant uttryck före C++26"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "%qE är inte ett konstant uttryck när kassen %qT fortfarande är ofullständig"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "%<reinterpret_cast<%T>(%E)%> är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "uttrycket %qE är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "%<goto%> är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "kontraktspredikatet är falskt i ett konstant uttryck"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr "oväntat mall-id %qE"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, gcc-internal-format
 msgid "function concept must be called"
 msgstr "funktionskoncept måste anropas"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr "adressen för ett anrop av %qs är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "oväntat uttryck %qE av sorten %s"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr "%qE är inte ett konstant uttryck eftersom det har referenser till muterbara delobjekt av %qT"
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr "%qE är inte ett konstant uttryck eftersom det refererar till en ofullständigt initierad variabel"
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "%qE är inte ett konstant uttryck eftersom det refererar ett resultat av %<operator new%>"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr "%qE är inte ett konstant uttryck eftersom allokerad lagring inte har avallokerats"
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr "omedelbar evaluering returnerar adressen till en omedelbar funktion %qD"
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "konstantevaluering returnerar adressen till en omedelbar funktion %qD"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "konvertering av l-värde till r-värde av ett volatilt l-värde %qE med typen %qT"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "lambdafångst av %qE är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr "för att det används som ett gl-värde"
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "%<reinterpret_cast%> från heltal till pekare"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr "adress-av på ett objekt %qE med trådlokal eller automatisk lagring är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "%<this%> används i ett konstant uttryck"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "lambdauttryck är inte ett konstant uttryck före C++17"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr "new-uttryck är inte ett konstant uttryck före C++20"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, gcc-internal-format
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "virtuella funktioner kan inte %<constexpr%> före C++20"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "%<typeid%> är inte ett konstant uttryck eftersom %qE har polymorf typ"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "typkonvertering till %qT som inte är en heltalstyp i ett konstant uttryck"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "%qD är definierad %<thread_local%> i en %<constexpr%>-kontext"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "%qD är definierad %<static%> i en %<constexpr%>-kontext"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "division med noll är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "%<delete[]%> är inte ett konstant uttryck"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "ingendera grenen av %<if%> är ett konstant uttryck"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "ickekonstant vektorinitierare"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "en etikettdefinition i en %<constexpr%>-funktion är endast tillgängligt med %<-std=c++2b%> eller %<-std=gnu++2b%>"
 
 # ast = abstract syntax tree
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "oväntat AST av sorten %s"
@@ -54063,7 +54086,7 @@ msgstr "riktningsargumentet till %<__builtin_coro_promise%> måste vara en konst
 msgid "no suspend point info for %qD"
 msgstr "ingen suspenderingspunktsinformation för %qD"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr "%qE tillhandahålls av %qT men är inte användbart med funktionssignaturen %qD"
@@ -54083,23 +54106,23 @@ msgstr "vänteuttryck är inte tillåtna i hanterare"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr "vektorer med variabel längd stödjs inte ännu i korutiner"
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr "%qE tillhandahålls av %qT men %qE är inte markerad %<throw()%> eller %<noexcept%>"
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr "%qE är markerad %<throw()%> eller %<noexcept%> men ingen användbar %<get_return_object_on_allocation_failure%> tillhandahålls av %qT"
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr "%qE tillhandahålls av %qT men %<std::nothrow%> finns inte"
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr "det går inte att initiera ett returobjekt av typen %qT med ett r-värde av typen %<void%>"
@@ -54119,68 +54142,68 @@ msgstr "%qD befordrades till en omedelbar funktion eftersom dess kropp innehåll
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD befordrades till en omedelbar funktion"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr "tar adressen till en omedelbar funktion %qD"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "anrop av consteval-funktionen %qE är inte ett konstant uttryck"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "%<throw%> kommer alltid anropa %<terminate%>"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "i C++11 är standard för destruerare %<noexcept%>"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr "i C++11 kommer denna %<throw%> att anropa %<terminate%> eftersom standard för destruerare är %<noexcept%>"
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "ignorerar attributet %qE efter tidigare %qE"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, gcc-internal-format
 msgid "pack expansion of %qE attribute"
 msgstr "paketexpandering av attributet %qE"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr "använd vikningsuttryck i attributargumentet istället"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD är inte en typ"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr "%qD är inte en klasstyp"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qD har inte typen %<const char *%>"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "%qD har inte heltalstyp"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr "%<std::source_location::__impl%> innehåller inte endast icke-statiska datamedlemmar %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> och %<_M_column%>"
@@ -54221,7 +54244,7 @@ msgstr "konvertering till icke konstant referens av typ %q#T från ett r-värde
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "konvertering från %qH till %qI kastar kvalificerare"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "typkonvertering av %qT till %qT derefererar inte pekare"
@@ -54604,7 +54627,7 @@ msgstr "än tidigare deklaration av %qF"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "omdeklaration av %qD skiljer i %qs från tidigare deklaration"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "tidigare deklaration %qD"
@@ -54744,8 +54767,8 @@ msgstr "tidigare %<pragma omp declare reduction%>-deklaration"
 msgid "%q#D previously defined here"
 msgstr "%q#D definierades tidigare här"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "%q#D tidigare deklarerad här"
@@ -54820,52 +54843,37 @@ msgstr "standardargumentet angivet för parameter %d till %q#D"
 msgid "previous specification in %q#D here"
 msgstr "tidigare specifikation i %q#D här"
 
-#: cp/decl.cc:2285
-#, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr "deklarationen %qD står i konflikt med inbyggd"
-
-#: cp/decl.cc:2288
-#, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr "deklaration %qD står i konflikt med import"
-
-#: cp/decl.cc:2289
-#, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr "importdeklarerad %q#D här"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, gcc-internal-format
 msgid "conflicting exporting for declaration %qD"
 msgstr "motstridande exporterande för deklaration av %qD"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, gcc-internal-format
 msgid "previously declared here without exporting"
 msgstr "tidigare deklarerad här utan att exporteras"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr "tidigare definition av %qD här"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "tidigare deklaration av %qD här"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, gcc-internal-format
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "funktionen %qD är deklarerad %<[[noreturn]]%> men dess första deklaration var inte det"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "överflödig omdeklaration av %qD i samma definitionsområde"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr "borttagen definition av %qD är inte första deklarationen"
@@ -54878,44 +54886,44 @@ msgstr "borttagen definition av %qD är inte första deklarationen"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "explicit specialisering av %qD efter första användningen"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%qD: synlighetsattributet ignoreras eftersom det står i konflikt med tidigare deklaration"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "omdefinition av %q#D"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "%qD står i konflikt med använd funktion"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q#D inte deklarerad i klassen"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%q+D omdeklarerad inline med attributet %<gnu_inline%>"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%q+D omdeklarerad inline utan attributet %<gnu_inline%>"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr "jämförelseoperatorn %q+D standarddefinierades efter sin första deklaration"
@@ -54923,2501 +54931,2501 @@ msgstr "jämförelseoperatorn %q+D standarddefinierades efter sin första deklar
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "omdeklaration av vän %q#D kan inte ha standardmallargument"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "trådlokal deklaration av %q#D följer på icke trådlokal deklaration"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "icke trådlokal deklaration av %q#D följer på trådlokal deklaration"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "omdeklaration av %q#D"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "överflödig omdeklaration av statisk %<constexpr%>-datamedlem %qD"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr "den lokala etiketten %qE står i konflikt med en befintlig etikett"
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, gcc-internal-format
 msgid "previous label"
 msgstr "tidigare etikett"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "hopp till etikett %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "hopp till case-etikett"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr "  som ett möjligt mål för beräknad goto"
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  härifrån"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  går ut från OpenMP-strukturerat block"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "  passerar initiering av %q#D"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr "  går in i %<try%>-block"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr "  går in i %<catch%>-block"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  går in i OpenMP-strukturerat block"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr "  går in i synkroniserad eller atomär sats"
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, gcc-internal-format
 msgid "  enters statement expression"
 msgstr "  går in i satsuttryck"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr "  går in i %<constexpr if%>-sats"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr "  går in i %<consteval if%>-sats"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, gcc-internal-format
 msgid "  does not destroy %qD"
 msgstr "  förstör inte %qD"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr "  städar inte upp det hanterade undantaget"
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "  hoppar över initiering av %q#D"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, gcc-internal-format
 msgid "%qD used without template arguments"
 msgstr "%qD använd utan mallargument"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, gcc-internal-format
 msgid "%qD is a function, not a type"
 msgstr "%qD är en funktion, inte en typ"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T är inte en klass"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "ingen klassmall med namnet %q#T i %q#T"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "ingen typ med namnet %q#T i %q#T"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "uppslagning av %qT i %qT är tvetydig"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%> namnger %q#T, som inte är en klassmall"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%> namnger %q#D, som inte är en typ"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "mallparametrar stämmer inte med mallen %qD"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "%<-faligned-new=%d%> är inte en potens av två"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr "%<--param destructive-interference-size=%d%> är mindre än %d"
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr "%<--param destructive-interference-size=%d%> är mindre än %<--param l1-cache-line-size=%d%>"
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr "%<--param constructive-interference-size=%d%> är mindre än %d"
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr "%<--param constructive-interference-size=%d%> är större än %<--param l1-cache-line-size=%d%>"
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q#D ogiltig, en anonym union kan bara ha publika ickestatiska datamedlemmar"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr "denna flexibilitet bör undvikas och kommer tas bort"
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, gcc-internal-format
 msgid "anonymous struct with base classes"
 msgstr "anonym post med basklasser"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "medlem %q+#D med konstruerare inte tillåten i anonymt aggregat"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "medlem %q+#D med destruerare inte tillåten i anonymt aggregat"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "medlem %q+#D med kopieringstilldelningsoperator är inte tillåten i anonymt aggregat"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "attribut ignoreras i deklaration av %q#T"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "attribut för %q#T måste komma efter nyckelordet %qs"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "flera typer i en deklaration"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "omdeklaration av inbyggd C++-typ %qT"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "%<auto%> kan endast anges för variabler eller funktionsdeklarationer"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "typnamn saknas i typedef-deklaration"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO C++ förbjuder anonyma poster"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "%<inline%> kan endast anges för funktioner"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr "%<virtual%> kan endast anges för funktioner"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> kan endast anges inuti en klass"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "%<explicit%> kan endast anges för konstruerare"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "en lagringsklass kan bara anges för objekt och funktioner"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "%<const%> kan bara anges för objekt och funktioner"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "%<volatile%> kan bara anges för objekt och funktioner"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "%<__restrict%> kan bara anges för objekt och funktioner"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "%<__thread%> kan bara anges för objekt och funktioner"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "%<typedef%> ignorerades i denna deklaration"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "%qs kan inte användas till typdeklarationer"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "attribut ignoreras i explicit instansiering av %q#T"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "inget attribut kan användas på en explicit instansiering"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "ignorerar attribut använda på klasstypen %qT utanför dess definition"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr "ignorerar attribut använda på beroende typ %qT utan en associerad deklaration"
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD är initierad (använd %qs istället)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "deklarationen av %q#D har %<extern%> och är initierad"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "definitionen av %q#D är markerad %<dllimport%>"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q+#D är inte en statisk datamedlem i %q#T"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "icke-medlemsmalldeklaration av %qD"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "stämmer inte med medlemsmalldeklarationen här"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO C++ tillåter inte %<%T::%D%> att definieras som %<%T::%D%>"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "dubblerad initierare av %qD"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "deklaration av %q#D utanför en klass är inte en definition"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr "extern-deklaration %q#D med blockräckvidd får inte kopplas till en namngiven modul"
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%qD definierad %<thread_local%> i en %qs-funktion är endast tillgängligt med %<-std=c++2b%> eller %<-std=gnu++2b%>"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%qD definierad %<static%> i en %qs-funktion är endast tillgängligt med %<-std=c++2b%> eller %<-std=gnu++2b%>"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "variabeln %q#D har initierare men ofullständig typ"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "elementen i vektorn %q#D har ofullständig typ"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "aggregatet %q#D har ofullständig typ och kan inte definieras"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD är deklarerad som en referens men inte initierad"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "namn använt i en designerad initierare i GNU-stil för en vektor"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "namnet %qD använt i en designerad initierare i GNU-stil för en vektor"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "icketriviala designerade initierare stödjs inte"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "C99-beteckningen %qE är inte ett konstantuttryck av heltalstyp"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "initierare misslyckas med att bestämma storleken på %qD"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "vektorstorlek saknas i %qD"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "vektor med storlek noll %qD"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "lagringsstorlek på %qD är inte känd"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "lagringsstorlek på %qD är inte konstant"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "tyvärr: semantiken för inline-variabeln %q#D är felaktig (du kommer få flera exemplar)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "tyvärr: semantiken för inline-funktioners statiska data %q#D är felaktig (du kommer få flera exemplar)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr "du kan gå runt detta genom att ta bort initieraren"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, gcc-internal-format
 msgid "uninitialized %<const %D%>"
 msgstr "oinitierad %<const %D%>"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "oinitierad variabel %qD i %<constexpr%>-funktion"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "oinitierad variabel %qD i %<constexpr%>-kontext"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "%q#T har ingen användardefinierad standardkonstruerare"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr "konstrueraren är inte användarens egna eftersom den är uttryckligen standarddefinierad i klasskroppen"
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr "och den implicit definierade konstrueraren initierar inte %q#D"
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "ogiltig typ %qT som initierare för en vektor med typ %qT"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "initierare för %qT måste vara inom klamrar"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "%<[%E] =%> använt i en designerad initierare i GNU-stil för klassen %qT"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "begäran av medlem %qD är tvetydig"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT har ingen icke-statisk medlem med namnet %qD"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD har inte en direkt medlem i %qT"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "ogiltig initierare för %q#D"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr "C99-beteckningen %qE utanför aggregatinitierare"
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "för många initierare för %qT"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "klamrar runt skalär initierare för typen %qT"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, gcc-internal-format
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "för många klamrar runt skalär initierare för typen %qT"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "klamrar saknas runt initierare för %qT"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "strukturerad bindning har en ofullständig typ %qT"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "element i vektorn %q#T har ofullständig typ"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "sammansatta litteral med variabel storlek"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "%q#D har ofullständig typ"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "skalärt objekt %qD kräver ett element i initieraren"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "i C++98 måste %qD initieras med en konstruerare, inte med %<{...}%>"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "vektor %qD initierad från strängkonstant inom parentes %qE"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "initierare är ogiltig för statisk medlem med konstruerare"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "ej konstant initiering inom klassen av statisk medlem %qD"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "ej konstant initiering inom klassen är felaktig för icke inline statisk medlem %qD"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(en initiering utanför klassen krävs)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "referensen %qD initieras med sig själv"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr "kunde inte hitta en variantdeklaration"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr "%<declare variant%> på konstrueraren %qD"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr "%<declare variant%> på destrueraren %qD"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr "%<declare variant%> på standarddefinierad %qD"
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr "%<declare variant%> på raderad %qD"
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr "%<declare variant%> på virtuell %qD"
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "tilldelning (inte initiering) i deklaration"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++17 tillåter inte specificeraren %<register%> av lagringsklass"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr "specificeraren %<register%> av lagringsklass angiven"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "deklarationen av %q#D har ingen initierare"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "initieraren för %<decltype(auto) %D%> har funktionstyp; glömde du %<()%>?"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, gcc-internal-format
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "härledd typ %qT för %qD är ofullständig"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr "variabelkoncept har ingen initierare"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "skuggar tidigare typdeklaration av %q#D"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "%<constinit%> kan bara tillämpas på en variabel med statisk eller trådlagringsvaraktighet"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "funktionen %q#D är initierad som en variabel"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "det går inte dekomponera klasstypen %qT för att den har en anonym struct-medlem"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr "kan inte dekomponera klasstypen %qT för att den har en anonym unionsmedlem"
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "det går inte att dekomponera en oåtkomlig medlem %qD av %qT"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr "kan inte dekomponera klasstypen %qT: både den och dess basklass %qT har ickestatiska datamedlemmar"
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr "kan inte dekomponera klasstypen %qT: dess basklasser %qT och %qT har ickestatiska datamedlemmar"
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "strukturerad bindning refererar till ofullständig typ %qT"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "det går inte att dekomponera en vektor %qT med variabel längd"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] "%u namn angivet för strukturerad bindning"
 msgstr[1] "%u namn angivna för strukturerad bindning"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] "endast %u namn angivet för strukturerad bindning"
 msgstr[1] "endast %u namn angivna för strukturerad bindning"
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] "medan %qT dekomponeras till %wu element"
 msgstr[1] "medan %qT dekomponeras till %wu element"
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr "det går inte att dekomponera en vektor %qT med variabel längd"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "%<std::tuple_size<%T>::value%> är inte ett konstantuttryck av heltalstyp"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr "medan %qT dekomponeras till %E element"
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr "%<std::tuple_element<%u, %T>::type%> är %<void%>"
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr "i initieringen av variabel %qD i strukturerad bindning"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "det går inte att dekomponera unionstypen %qT"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "det går inte att dekomponera typen %qT som inte är en klass eller vektor"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr "det går inte att dekomponera lambdahöljestypen %qT"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "strukturerad bindning refererar till ofullständig klasstyp %qT"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "det går inte att dekomponera klasstypen %qT utan icke-statiska datamedlemmar"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr "ickelokal variabel %qD deklarerad %<__thread%> behöver dynamisk initiering"
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr "den icke-lokala variabeln %qD deklarerad %<__thread%> har en icke-trivial destruerare"
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr "C++11 %<thread_local%> tillåter dynamisk initialisering och destruktion"
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "initierare misslyckas med att bestämma storleken på %qT"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "vektorstorlek saknas i %qT"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "vektor med storlek noll %qT"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "destruerare för främmande class %qT kan inte vara en medlem"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "konstruerare för främmande klass %qT kan inte vara en medlem"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD deklarerad som en %<virtual%>-variabel"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "%<const%>- och %<volatile%>-funktionsspecificerare på %qD är ogiltiga i variabeldeklaration"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD deklarerad som en %<virtual%>-parameter"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD deklarerad som en %<inline%>-parameter"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "%<const%>- och %<volatile%>-funktionsspecificerare på %qD är ogiltiga i parameterdeklaration"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD deklarerad som en %<virtual%>-typ"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD deklarerad som en %<inline%>-typ"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "%<const%>- och %<volatile%>-funktionsspecificerare på %qD är ogiltiga i typdeklaration"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD deklarerat som ett %<virtual%>-fält"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD deklarerat som ett %<inline%>-fält"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "%<const%>- och %<volatile%>-funktionsspecificerare på %qD är ogiltiga i fältdeklaration"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D deklarerad som en vän"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D deklarerad med en undantagsspecifikationer"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "definitionen av %qD är inte i en namnrymd som innesluter %qT"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "statisk medlemsfunktion %q#D deklarerad med typkvalificerare"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "konceptet %q#D deklarerad med funktionsparametrar"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr "konceptet %q#D deklarerat med en härledd returtyp"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "koncept %q#D med icke-%<bool%>-returtyp %qT"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "konceptet %qD har ingen definition"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, gcc-internal-format
 msgid "a function concept cannot be constrained"
 msgstr "ett funktionskoncept kan inte begränsas"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, gcc-internal-format
 msgid "constraints on a non-templated function"
 msgstr "begränsning av en funktion som inte är en mall"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, gcc-internal-format
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "begränsad vändeklaration som inte är en mall måste vara en definition"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr "en vänfunktionsmall med begränsningar som beror på yttre mallparametrar måste vara en definition"
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "definierar explicit specialisering %qD i vändeklaration"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "ogiltig användning av mall-id %qD i deklaration av primär mall"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "standardargument är inte tillåtna i deklaration av vänmallspecialisering %qD"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "%<inline%> är inte tillåtet i deklaration av vänmallspecialisering %qD"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "vändeklarationen av %qD anger standardargument och är inte en definition"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "det går inte att deklarera %<::main%> som en mall"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "det går inte att deklarera %<::main%> som inline"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "det går inte att deklarera %<::main%> som %qs"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "det går inte att deklarera %<::main%> som static"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "icke-medlemsfunktion %qD kan inte ha cv-kvalificerare"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "statisk medlemsfunktion %qD kan inte ha cv-kvalificerare"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "explicit objektmedlemsfunktion %qD kan inte ha cv-kvalificerare"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "icke-medlemsfunktion %qD kan inte ha ref-kvalificerare"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "statisk medlemsfunktion %qD kan inte ha ref-kvalificerare"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "explicit objektmedlemsfunktion %qD kan inte ha ref-kvalificerare"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, gcc-internal-format
 msgid "explicit object parameter declared here"
 msgstr "explicit objektparameter deklarerad här"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "härledningsguiden %qD måste deklareras med i samma räckvidd som %qT"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "härledningsguiden %qD måste ha samma åtkomst som %qT"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr "härledningsguiden %qD får inte ha en funktionskropp"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr "litteral operator med C-länkning"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "%qD har en ogiltig argumentlista"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr "heltalssuffixet %qs skuggas av implementationen"
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr "flyttalssuffixet %qs skuggas av implementationen"
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr "litterala operatorsuffix som inte föregås av %<_%> är reserverade för framtida standardisering"
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%qD måste vara en icke-medlems-funktion"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> måste returnera %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "omdefinition av implicit deklarerad %qD"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "definition av explicit standarddefinierad %q+D"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "%q#D explicit standarddefinierad här"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "ingen medlemsfunktion %q#D deklarerad i klassen %qT"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "det går inte att deklarera %<::main%> som en global variabel"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "en icke-mallvariabel variabel kan inte vara %<concept%>"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr "koncept måste definieras med namnrymdsräckvidd"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr "koncept måste ha typen %<bool%>"
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, gcc-internal-format
 msgid "a variable concept cannot be constrained"
 msgstr "ett variabelkoncept kan inte begränsas"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "initiering i klassen av statisk datamedlem %q#D med ofullständig typ"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "%<constexpr%> behövs för initiering i klassen av statisk datamedlem med icke heltalstyp %q#D"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "initiering i klassen av statisk datamedlem %q#D med icke-litteral typ"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "ogiltig initiering i klassen av statisk datamedlem med icke heltalstyp %qT"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ förbjuder initiering inom klassen av icke-konstant statisk medlem %qD"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ förbjuder initiering av medlemskonstant %qD av icke heltalstyp %qT"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "storlek på vektorn %qD av typen %qT är inte en heltalstyp"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "storlek på vektorn av typen %qT är inte en heltalstyp"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "storlek på vektorn %qD är inte ett konstantuttryck av heltalstyp"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "storlek på vektorn är inte ett konstantuttryck av heltalstyp"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C++ förbjuder vektor %qD med storlek noll"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ förbjuder vektor med storlek noll"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ förbjuder vektor %qD med variabel längd"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++ förbjuder vektor med variabel längd"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "vektor %qD med variabel längd används"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "vektor med variabel längd används"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "spill i vektordimension"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%qD är deklarerad som en vektor av mallens platshållartyp %qT"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, gcc-internal-format
 msgid "creating array of template placeholder type %qT"
 msgstr "skapar en vektor av mallens platshållartyp %qT"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "deklaration av %qD som en vektor av void"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr "skapar vektor av void"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "deklaration av %qD som en vektor av funktioner"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr "skapar vektor av funktioner"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "deklaration av %qD som en vektor av referenser"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr "skapar vektor av referenser"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "deklaration av %qD som en vektor av funktionsmedlemmar"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr "skapar vektor av funktionsmedlemmar"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "deklaration av %qD som flerdimensionell vektor måste ha gränser för alla dimensioner utom den första"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "flerdimensionell vektor måste ha gränser för alla dimensioner utom den första"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, gcc-internal-format
 msgid "variable-length array of %<auto%>"
 msgstr "vektor med variabel längd av %<auto%>"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "en returtypsspecifikation för konstruerare är ogiltig"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "kvalificerare är inte tillåtna vid konstruerardeklaration"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "specifikation av returtyp för destruerare är ogiltigt"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "kvalificerare är inte tillåtna vid destruerardeklaration"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "returtyp angiven för %<operator %T%>"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "kvalificerare är inte tillåtna på deklaration av %<operator %T%>"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr "returtypen angiven för härledningsguiden"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "kvalificerare är inte tillåtna på deklaration av härledningsguide"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "mallmallparameter %qT i deklaration av härledningsguide"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "%<decl-specifier%> i deklaration av härledningsguide"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "namnlös variabel eller fält deklarerad void"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "variabel eller fält deklarerad void"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "specificeraren %<inline%> är ogiltig för variabeln %qD deklarerad med blockräckvidd"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "inline-variabler är endast tillgängliga med %<-std=c++17%> eller %<-std=gnu++17%>"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr "%qT som en typ snarare en enkel %<decltype(auto)%>"
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, gcc-internal-format
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "%<decltype(auto)%> får inte vara cv-kvalificerad"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "ogiltig användning av kvalificerat namn %<::%D%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "ogiltig användning av kvalificerat namn %<%T::%D%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "ogiltig användning av kvalificerat namn %<%D::%D%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, gcc-internal-format
 msgid "%q#T is not a class or namespace"
 msgstr "%q#T är inte en klass eller namnrymd"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, gcc-internal-format
 msgid "declaration of %qE as non-function"
 msgstr "deklaration av %qE som en icke-funktion"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, gcc-internal-format
 msgid "declaration of %qE as non-member"
 msgstr "deklaration av %qE som icke-medlem"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "deklarerar-id saknas, använder reserverat ord %qD"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "funktionsdefinition deklarerar inte parametrar"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "deklaration av %qD som en icke-funktion"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "deklaration av %qD som %<typedef%>"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "deklaration av %qD som en parameter"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr "både %qs och %qs angivna"
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%qs kan inte förekomma i en typedef-deklaration"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr "man kan använda högst en av specificerarna %<constinit%> och %<constexpr%>"
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "två eller fler datatyper i deklaration av %qs"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C++ stödjer inte bara %<complex%> i meningen %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ förbjuder deklaration av %qs utan typ"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "%<__int%d%> stödjs inte på denna målarkitektur"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ stödjer inte %<__int%d%> för %qs"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> och %<unsigned%> givna tillsammans"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> och %<short%> angivna tillsammans"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr "%qs specificerad med %qT"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr "%qs specificerad med typedef-namn %qD"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "%qs specificerad med %<decltype%>"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr "%qs specificerad med %<typeof%>"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "complex ogiltig för %qs"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr "mallargumentlistan saknas efter %qE; för härledning måste mallplatshållare följas av ett enkelt deklarerar-id"
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "medlem %qD kan inte deklareras både %<virtual%> och %<static%>"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "medlem %qD kan deklareras både %<virtual%> och %<constexpr%> endast i %<-std=c++20%> eller %<-std=gnu++20%>"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "typedef-deklaration ogiltig i parameterdeklaration"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "lagringsklass angiven för mallparameter %qs"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "lagringsklass angiven för parameter %qs"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr "en parameter kan inte deklareras %qs"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%> utanför klassdeklaration"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "deklaration av strukturerad bindning får inte vara %qs"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "strukturerade bindningsdeklarationer kan vara %qs endast i %<-std=c++20%> eller %<-std=gnu++20%>"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "%<volatile%>-kvalificerad strukturerad bindning bör undvikas"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr "deklaration av strukturerad bindning får inte vara C++98 %<auto%>"
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "deklaration av strukturerad bindning får inte ha typen %qT"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr "typen måste vara en cv-kvalificerad %<auto%> eller en referens till en cv-kvalificerad %<auto%>"
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr "deklaration av strukturerad bindning får inte ha begränsat %<auto%>-typ %qT"
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "flera lagringsklasser i deklaration av %qs"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "lagringsklass angiven för %qs"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "nästad funktion %qs är deklarerad %<extern%>"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "toppnivådeklaration av %qs anger %<auto%>"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "funktionsdefinitionsområde %qs implicit auto och deklarerat %<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "ogiltig specificerare av lagringsklass i vänfunktionsdeklarationer"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, gcc-internal-format
 msgid "attribute ignored"
 msgstr "attributet ignorerat"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr "ett attribut som gäller en viss typspecificerare ignoreras"
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "onödiga parenteser i deklaration av %qs"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, gcc-internal-format
 msgid "remove parentheses"
 msgstr "ta bort parenteser"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "explicita objektmedlemsfunktioner är endast tillgängliga med %<-std=c++23%> eller %<-std=gnu++23%>"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr "en funktionstyp kan inte ha en explicit objektparameter"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr "en pekare på en funktionstyp kan inte ha en explicit objektparameter"
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "en pekare på en medlemsfunktionstyp kan inte ha en explicit objektparameter"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr "typen på en pekare till en explicit objektmedlemsfunktion är en vanlig pekare på en funktionstyp"
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr "type på en explicit objektmedlemsfunktion är en normal funktionstyp"
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr "endast den första parametern till en medlemsfunktion kan deklareras som en explicit objektparameter"
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr "giltig explicit objektparameter deklarerad här"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr "requires-klausul på returtypen"
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr "funktionen %qs använder typspecificeraren %<auto%> utan avslutande returtyp"
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "härledd returtyp är endast tillgänglig med %<-std=c++14%> eller %<-std=gnu++14%>"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr "en virtuell funktion kan inte ha härledd returtyp"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr "funktionen %qs med avslutande returtyp har %qT som sin typ istället för bara %<auto%>"
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr "funktionen %qs med avslutande returtyp har %<decltype(auto)%> som sin typ istället för bara %<auto%>"
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "ogiltig användning av %<decltype(auto)%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr "härledd klasstyp %qD i funktionens returtyp"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr "härledningsguiden för %qT måste ha en avslutande returtyp"
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr "den avslutande returtypen %qT hos deduktionsguiden är inte en specialisering av %qT"
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "avslutande returtyp är endast tillgänglig med %<-std=c++11%> eller %<-std=gnu++11%>"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr "funktionen %qs med avslutande returtyp är inte deklarerad med typspecificeraren %<auto%>"
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr "en konverteringsfunktion kan inte ha en avslutande returtyp"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr "%<volatile%>-kvalificerad returtyp bör undvikas"
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs är deklarerad som en funktion som returnerar en funktion"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs är deklarerad som en funktion som returnerar en vektor"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "%<constinit%> på en funktions returtyp är inte tillåtet"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "destruerare kan inte vara en statisk medlemsfunktion"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "konstruerare kan inte vara en statisk medlemsfunktion"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "destruerare får inte vara cv-kvalificerade"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "konstruerare får inte vara cv-kvalificerade"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr "destruerare får inte vara ref-kvalificerade"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr "konstruerare får inte vara ref-kvalificerade"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "konstruerare kan inte deklareras %<virtual%>"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "virtuella funktioner kan inte vara vänner"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "vändeklaration är inte i klassdefinition"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "det går inte att definiera vänfunktion %qs i en lokal klassdefinition"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr "vänfunktionsdefinitionen %qs får inte ha ett namn kvalificerat med %<::%>"
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr "vänfunktionsdefinitionen %qs får inte ha ett namn kvalificerat med %<%D::%>"
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "en icke-medlemsfunktion kan inte ha en explicit objektparameter"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "en explicit objektmedlemsfunktion får inte vara %<virtual%>"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr "en explicit objektmedlemsfunktion kan inte vara %<static%>"
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD kan inte vara en explicit objektmedlemsfunktion"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "destruerare får inte ha parametrar"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "det går inte att deklarera pekare till %q#T"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "det går inte att deklarera referens till %q#T"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "det går inte att deklarera pekare medlem av %q#T"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "det går inte att deklarera en referens till en kvalificerad funktionstyp %qT"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "det går inte att deklarera en pekare till en kvalificerad funktionstyp %qT"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr "det går inte att deklarera en referens till %q#T, som inte är ett typedef- eller ett malltypargument"
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "mall-id %qD använd som en deklarerare"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "medlemsfunktioner är implicit vänner till sin klass"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "extra kvalifikation %<%T::%> på medlem %qs"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "det går inte att definiera medlemsfunktion %<%T::%s%> inuti %qT"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "det går inte att deklarera medlemsfunktionen %<%T::%s%> inuti %qT"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "det går inte att deklarera medlem %<%T::%s%> inuti %qT"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "icke-parameter %qs kan inte vara ett parameterpaket"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "datamedlem får inte ha variabel typ %qT"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "parameter får inte ha variabel typ %qT"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "%<explicit%> utanför klassdeklaration"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr "%<explicit%> i vändeklaration"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "endast deklarationer av konstruerare och konverteringsoperatorer kan vara %<explicit%>"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "icke-medlem %qs kan inte deklareras %<mutable%>"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "icke-objektmedlem %qs kan inte deklareras %<mutable%>"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "funktionen %qs kan inte deklareras %<mutable%>"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "%<static%> %qs kan inte deklareras %<mutable%>"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "%<const%> %qs kan inte deklareras %<mutable%>"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "referensen %qs kan inte deklareras %<mutable%>"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr "typedef kan inte vara en funktionsdefinition"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr "typedef får inte vara en medlemsfunktionsdefinition"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<auto%> är inte tillåtet i en aliasdeklaration"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "typedef deklarerad %<auto%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr "requires-klausul på typedef"
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "typedef-namn får inte vara en nästad-namnspecificerare"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ISO C++ förbjuder nästad typ %qD med samma namn som en omgivande klass"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "%<inline%> angivet för vänklassdeklaration"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "mallparametrar kan inte vara vänner"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "vändeklaration kräver klassnyckel, d.v.s. %<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "vändeklaration kräver klassnyckel, d.v.s. %<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "försöker göra klassen %qT en vän med global räckvidd"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "ogiltiga kvalificerare på typ som inte är medlemsfunktion"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr "requires-klausul på type-id"
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "abstrakt deklarerare %qT använd som deklaration"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "requires-klausul vid deklaration av icke-funktionstypen %qT"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "det går inte att använda %<::%> i parameterdeklaration"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "det går inte att deklarera en parameter med %<decltype(auto)%>"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr "saknad mallargumentlista efter %qE; platshållare för mall är inte tillåtet i en parameter"
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr "eller använd %<auto%> för en förkortad funktionsmall"
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "en %<auto%>-parameter är tillåten i detta sammanhang"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "parametern deklarerad %<auto%>"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "ogiltig användning av mallnamnet %qE utan en argumentlista"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "ej statisk datamedlem deklarerad med platshållaren %qT"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C++ förbjuder den flexibla vektormedlemmen %qs"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C++ förbjuder flexibla vektormedlemmar"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "ogiltig användning av %<::%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "deklaration av funktionen %qD i ogiltig kontext"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "funktionen %qD deklarerad %<virtual%> inuti en union"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD kan inte deklareras %<virtual%>, eftersom den alltid är statisk"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "kvalificerat namn förväntades i vändeklaration för destruerare %qD"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "deklaration av %qD som medlem av %qT"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr "en destruerare kan inte vara %qs"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "kvalificerat namn förväntades i vändeklaration för konstruerare %qD"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr "en konstruerare kan inte vara %<concept%>"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "ett koncept kan inte vara en medlemsfunktion"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, gcc-internal-format
 msgid "%qD cannot be %qs"
 msgstr "%qD kan inte vara %qs"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr "specialisering av variabelmall %qD deklarerad som en funktion"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, gcc-internal-format
 msgid "variable template declared here"
 msgstr "variabelmallen är deklarerad här"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "fältet %qD har den ofullständiga typen %qT"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "namnet %qT har ofullständig typ"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE är varken en funktion eller medlemsfunktion, kan inte deklareras som vän"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "ett namnlöst fält är varken en funktion eller medlemsfunktion, kan inte deklareras som vän"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr "ett attribut som tillhör en vändeklaration som inte är en definition ignoreras"
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr "statisk datamedlem %qE deklarerad %qs"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "statiska %<constexpr%>-datamedlemmen %qD måste ha en initierare"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr "ickestatisk datamedlem %qE deklarerad %qs"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "lagringsklassen %<auto%> är ogiltig för funktionen %qs"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "lagringsklassen %<register%> är ogiltig för funktionen %qs"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "lagringsklassen %<__thread%> är ogiltig för funktionen %qs"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "lagringsklassen %<thread_local%> är ogiltig för funktionen %qs"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "specificeraren %<constinit%> är ogiltig för funktionen %qs"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "virt-specificerare i %qs är inte tillåtet utanför en klassdefinition"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "specificerare %<static%> är ogiltigt för funktion %qs deklarerad utanför global räckvidd"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "specificerare %<inline%> är ogiltig för funktionen %qs deklarerad utanför global räckvidd"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "virtuell icke klassfunktion %qs"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "%qs definierad utan att vara i klassräckvidd"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "%qs deklarerad utan att vara i klassräckvidd"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "det går inte deklarera medlemsfunktionen %qD att ha statisk länkklass"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "kan inte deklarera en statisk funktion i en annan funktion"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "%<static%> får inte användas vid definition (till skillnad mot deklaration) av statisk datamedlem"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "statisk medlem %qD deklarerad %<register%>"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "det går inte att deklarera medlem %q#D att ha extern länkklass"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "deklarationen av %<constexpr%>-variabeln %qD är inte en definition"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "en variabel kan inte deklareras %<consteval%>"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs initierad och deklarerad %<extern%>"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs har både %<extern%> och initierare"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "standardargument %qE använder %qD"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "standardargument %qE använder lokal variabel %qD"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "felaktig användning av cv-kvalificerad typ %qT i en parameterdeklaration"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "felaktig användning av typen %<void%> i en parameterdeklaration"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "%<volatile%>-kvalificerad parameter bör undvikas"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "parameter %qD ogiltigt deklarerad metodtyp"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "parameter %qD inkluderar pekare till vektor %qT med okänd gräns"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "parameter %qD inkluderar referens till vektor %qT med okänd gräns"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "ogiltig konstruerare, du menade förmodligen %<%T (const %T&)%>"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD är kanske inte deklarerad i en namnrymd"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD får inte deklareras som statisk"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, gcc-internal-format
 msgid "%qD must be a non-static member function"
 msgstr "%qD måste vara en icke-statisk medlemsfunktion"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "%qD måste vara en medlemsfunktion"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "%qD får bara vara en statisk medlemsfunktion med %<-std=c++23%> eller %<-std=gnu++23%>"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD måste vara antingen en medlemsfunktion som inte är statisk eller funktion som inte är medlem"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD måste ha ett argument med klass- eller uppräkningstyp"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ förhindrar överlagring av %<operator ?:%>"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD får inte ha variabelt antal argument"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr "%qD måste ha antingen noll eller ett argument"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr "%qD måste ha antingen ett eller två argument"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "postfix %qD måste ha %<int%> som sitt argument"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "postfix %qD måste ha %<int%> som sitt andra argument"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, gcc-internal-format
 msgid "%qD must have no arguments"
 msgstr "%qD får inte ha några argument"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr "%qD måste ha exakt ett argument"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr "%qD måste ha exakt två argument"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD kan inte ha standardargument"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "konvertering av %qT till %<void%> kommer aldrig använda en typkonverteringsoperator"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "konvertering av %qT till en referens till samma typ kommer aldrig använda en typkonverteringsoperator"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "konvertering av %qT till samma typ kommer aldrig använda en typkonverteringsoperator"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "konvertering av %qT till en referens till basklassen %qT kommer aldrig använda en typkonverteringsoperator"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "konvertering av %qT till basklassen %qT kommer aldrig använda en typkonverteringsoperator"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "användardefinierad %qD beräknar alltid båda argumenten"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "prefix %qD skall returnera %qT"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "postfix %qD skall returnera %qT"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD skall returnera som värde"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "malltypparametern %qT används efter %qs"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "användning av aliasmallspecialisering %qT efter %qs"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "typedef-namnet %qD används efter %qs"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "%qD har en tidigare deklaration här"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "%qT refererad till som %qs"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "%qT har en tidigare deklaration här"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "%qT refererad till som enum"
@@ -57429,115 +57437,100 @@ msgstr "%qT refererad till som enum"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "mallargument krävs för %<%s %T%>"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "referens till %qD är tvetydig"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, gcc-internal-format
 msgid "class template %qD redeclared as non-template"
 msgstr "klassmallen %qD omdeklarerad som en icke-mall"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD har samma namn som klassen den är deklarerad i"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT är inte en mall"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr "kanske du vill explicit lägga till %<%T::%>"
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "enum %q#D används utan tidigare deklaration"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "omdeklaration av %qT som en icke-mall"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, gcc-internal-format
-msgid "cannot declare %qD in a different module"
-msgstr "det går inte att deklarera %qD i en annan modul"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "tidigare deklarerad här"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "härledd unionen %qT ogiltig"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr "%qT definierad med flera direkta baser"
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr "%qT definierad med en direkt virtuell bas"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "bastyp %qT är ingen post- eller klasstyp"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "rekursiv typ %qT odefinierad"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "upprepat bastyp %qT ogiltig"
 
-#: cp/decl.cc:16984
-#, gcc-internal-format
-msgid "cannot declare %qD in different module"
-msgstr "det går inte att deklarera %qD i en annan modul"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr "uppräkningstyp med/utan räckviddsbegränsning stämmer inte överens för enum %q#T"
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr "tidigare definition här"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr "underliggande typ stämmer inte överens i enum %q#T"
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr "olika underliggande typ i enum %q#T"
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr "underliggande typ %qT till %qT måste vara en heltalstyp"
@@ -57546,82 +57539,82 @@ msgstr "underliggande typ %qT till %qT måste vara en heltalstyp"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "ingen heltalstyp kan representera alla uppräkningsvärdena i %qT"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "uppräkningsvärde för %qD är inte en heltalstyp eller uppräkningstyp utan räckviddsbegränsning"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "uppräkningsvärde för %qD är inte en heltalskonstant"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "ökat uppräkningsvärde är för stort för %<unsigned long%>"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "ökat uppräkningsvärde är för stort för %<long%>"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "överspill i uppräkningsvärden vid %qD"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "uppräkningsvärdet %qE är utanför intervallet för den underliggande typen %qT"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "fler definitioner av %q#T"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "returtypen %q#T är ofullständig"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%> skall returnera en referens till %<*this%>"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "inga retursatser i funktion som returnerar %qT"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "endast enkel returtyp %<auto%> kan härledas till %<void%>"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, gcc-internal-format
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "ingen retursats i %<constexpr%>-funktion som returnerar icke-void"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD är redan definierad i klassen %qT"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, gcc-internal-format
 msgid "using %qs"
 msgstr "använder %qs"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr "användning av %qD före härledning av %<auto%>"
@@ -57676,7 +57669,7 @@ msgstr "det går inte att radera en funktion.  Endast pekare till objekt är gil
 msgid "deleting %qT is undefined"
 msgstr "radera %qT är odefinierat"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "malldeklaration av %q#D"
@@ -57686,7 +57679,7 @@ msgstr "malldeklaration av %q#D"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "mallparameterlistan som ges stämmer inte mallparametrarna till %qD"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "destrueraren %qD deklarerad som medlemsmall"
@@ -57870,64 +57863,64 @@ msgstr "en förstörande %<operator delete%> måste vara en vanlig avallokerings
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> tar typen %qT som första parameter"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr "%qT har ett fält %q#D vars typ inte har någon länkklass"
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr "%qT har ett fält %qD vars typ beror på typen %qT som inte har någon länkklass"
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%qT har ett fält %q#D vars typ inte har intern länkklass"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr "%qT har ett fält %q#D vars typ använder den anonyma namnrymden"
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qT är deklarerad med större synlighet än typen för dess fält %qD"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr "%qT har en bas %qT som inte har någon länkklass"
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr "%qT har en bas %qT vilken beror på typen %qT vilken inte har någon länkklass"
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr "%qT har en bas %qT vilken har intern länkklass"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr "%qT har en bas %qT vilken använder den anonyma namnrymden"
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT är deklarerad med större synlighet än sin bas %qT"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%q#D, deklarerad med en namnlös typ, används men är aldrig definierad"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr "%q#D, deklarerad med en namnlös typ, används men är inte definierad"
@@ -57936,104 +57929,104 @@ msgstr "%q#D, deklarerad med en namnlös typ, används men är inte definierad"
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "namnlös typ utan länkklass används för att deklarera variabeln %q#D med länkklass"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "namnlös typ utan länkklass används för att deklarera funktionen %q#D med länkklass"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q#D refererar inte till den okvalificerade typen, så den används int för länkklass"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q#D, deklarerad med en lokal typ %qT, används men är aldrig definierad"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%q#D, deklarerad med en lokal typ %qT, används men är inte definierad här"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr "typen %qT utan länkklass använd för att deklarera variabeln %q#D med länkklass"
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "typen %qT utan någon länkklass använd för att deklarera funktionen %q#D med länkklass"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "mangling av %q#D som %qE står i konflikt med en tidigare mangling"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr "tidigare mangling %q#D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr "en senare %<-fabi-version=%> (eller =0) undviker detta fel med en ändring av manglingen"
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr "programmet borde även definiera %qD"
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr "inline-funktion %qD använd men aldrig definierad"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "standardargumentet saknas för parameter %P till %q#D"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr "… följande parameter %P som har ett standardargument"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr "implicit deklarerad %qD bör undvikas"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr "för att %qT har användarlevererad %qD"
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "konverterar lambda som använder %<...%> till funktionspekare"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "användning av borttagen funktion %qD"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "användning av funktionen %qD med ej uppfyllda begränsningar"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr "användning av det inbyggda parameterpaketet %qD utanför en mall"
@@ -58138,7 +58131,7 @@ msgstr "referens till %<%T::%D%> är tvetydig"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qD är inte en medlem av %qT; menade du %qs?"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD har inte en medlem av %qT"
@@ -58148,7 +58141,7 @@ msgstr "%qD har inte en medlem av %qT"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qD är inte en medlem av %qD; menade du %qs?"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD är inte en medlem av %qD"
@@ -58173,47 +58166,47 @@ msgstr "undantagshantering avslagen, använd %<-fexceptions%> för att aktivera"
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "kastar NULL, som har heltals-, inte pekartyp"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  i kastat uttryck"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "det går inte att deklarera en parameter till %<catch%> att vara av rvalue-referenstyp %qT"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "det går inte att kasta ett uttryck av typen %qT eftersom typer av variabel storlek är inblandade"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "det går inte att fånga typen %qT eftersom typer av variabel storlek är inblandade"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "undantag av typ %qT kommer att fångas av en tidigare hanterare"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, gcc-internal-format
 msgid "for type %qT"
 msgstr "för typen %qT"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "%<...%>-hanterare måste vara den sista hanteraren i sitt try-block"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr "noexcept-uttrycket beräknas till %<false%> på grund av ett anrop till %qD"
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr "men %qD kastar inte, kanske den skulle deklareras %<noexcept%>"
@@ -58480,12 +58473,12 @@ msgstr "typ %qT är inte en direkt eller virtuell bas till %qT"
 msgid "type %qT is not a direct base of %qT"
 msgstr "typ %qT är inte en direkt bas till %qT"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "vektorer måste initieras med en initierare inom klamrar"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT är inte en klasstyp"
@@ -58500,12 +58493,12 @@ msgstr "ofullständig typ %qT har inte medlem %qD"
 msgid "invalid pointer to bit-field %qD"
 msgstr "ogiltigt pekare till bitfält %qD"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "ogiltig användning av icke-statisk medlemsfunktion %qD"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "ogiltig användning av icke-statisk datamedlem %qD"
@@ -58700,52 +58693,52 @@ msgstr "radering av objekt av den abstrakta klasstypen %qT som har en ej virtuel
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr "radering av objekt av den polymorfa klasstypen %qT som har en ej virtuell destruerare kommer medföra odefinierat beteende"
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "typ till vektor-delete är varken pekar- eller vektortyp"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr "vektor- och körtidsgränser kan inte fångas av kopiering, endast via referens"
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr "fångst av den variabelt modifierade typen %qT som inte är en N3639-vektor av körtidsgräns"
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr "eftersom vektorelementtypen %qT har variabel storlek"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "det går inte att fånga %qE via referens"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "fångst av kopia av ofullständig typ %qT"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr "försök att fånga %qD i instansiering av en generisk lambda"
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr "implicit fångst av %qE via %<[=]%> bör undvikas i C++20"
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr "lägg till explicit fångst av %<this%> eller %<*this%>"
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "%<this%> fångades inte för denna lambdafunktion"
@@ -59120,223 +59113,268 @@ msgstr "oväntat inkapslingsformat eller -typ"
 msgid "encapsulation is malformed"
 msgstr "inkapslingen är felgjord"
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, gcc-internal-format
 msgid "conflicting global module declaration %#qD"
 msgstr "motstridande global moduldeklaration %#qD"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, gcc-internal-format
 msgid "existing declaration %#qD"
 msgstr "befintlig deklaration %#qD"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr "definitionen av %qD matchar inte"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, gcc-internal-format
 msgid "existing definition %qD"
 msgstr "befintlig definition %qD"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, gcc-internal-format
 msgid "... this enumerator %qD"
 msgstr "… denna uppräkningstyp %qD"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "uppräkningstypen %qD stämmer inte med …"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr "ytterligare uppräknare som börjar med %qD"
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr "uppräkningsintervallen skiljer"
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr "%q#D refererar entiteten %q#D med intern länkning"
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr "rekursiv lat laddning"
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr "det går inte att importera en modul i sin egen räckvidd"
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, gcc-internal-format
 msgid "module %qs declared here"
 msgstr "modulen %qs är deklarerad här"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr "indirekt import %qs är inte laddad redan"
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr "import %qs har CRC som inte stämmer"
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr "kan inte representera ytterligare importerade källplatser"
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr "exporterar inte %<#define %E%> eftersom det är ett nyckelord"
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr "makrodefinitionen av %qE är trasig"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr "inkonsistent importerad makrodefinition %qE"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr "%<#undef %E%>"
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr "%<#define %s%>"
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr "kompilerad modulfil är %qs"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, gcc-internal-format, gfc-internal-format
 msgid "compiled module is %sversion %s"
 msgstr "kompilerad modul är %sversion %s"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, gcc-internal-format, gfc-internal-format
 msgid "compiler is %sversion %s%s%s"
 msgstr "kompilatorn är %sversion %s%s%s"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, gcc-internal-format
 msgid "module %qs found"
 msgstr "modulen %qs finns"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr "huvudmodul förväntades, modul %qs fanns"
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr "modul %qs förväntades, huvudmodul fanns"
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr "modul %qs har CRC som inte stämmer"
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr "mål & värd är %qs:%qs, %qs:%qs förväntades"
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr "språkdialekten skiljer %qs, %qs förväntades"
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr "modulen innehåller OpenMP, använd %<-fopenmp%> för att aktivera"
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr "fixade träd som inte stämde"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, gcc-internal-format
 msgid "interface partition is not exported"
 msgstr "gränssnittspartitionen exporteras inte"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr "misslyckades att läsa det kompilerade modulklustret %u: %s"
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr "misslyckades att läsa en kompilerad modul: %s"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr "överväg att använda %<-fno-module-lazy%>, att öka värdet på %<-param-lazy-modules=%u%> eller att öka gränsen på beskrivare per process"
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr "importer måste byggas före de importeras"
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr "återvänder till grinden för ett mekaniskt problem"
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr "deklarationen %qD står i konflikt med inbyggd"
+
+#: cp/module.cc:19122
+#, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "omdeklaration av %qD i modulen %qs står i konflikt med import"
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr "omdeklaration av %qD i den globala modulen står i konflikt med import"
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr "import deklarerad ansluten till modulen %qs"
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr "import deklarerad i den globala modulen"
+
+#: cp/module.cc:19140
+#, gcc-internal-format
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "motstridig deklaration av %qD i modulen %qs"
+
+#: cp/module.cc:19143
+#, gcc-internal-format
+msgid "conflicting declaration of %qD in global module"
+msgstr "motstridig deklaration av %qD i den globala modulen"
+
+#: cp/module.cc:19148
+#, gcc-internal-format
+msgid "previously declared in module %qs"
+msgstr "tidigare deklarerad i modulen %qs"
+
+#: cp/module.cc:19152
+#, gcc-internal-format
+msgid "previously declared in global module"
+msgstr "tidigare deklarerad i den globala modulen"
+
+#: cp/module.cc:19404
 #, gcc-internal-format
 msgid "reading CMI %qs"
 msgstr "läser CMI %qs"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr "misslyckades att ladda bindningen %<%E%s%E%>"
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr "misslyckades att ladda bindningen %<%E%s%E@%s%>"
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr "under laddning av bindningen %<%E%s%E%>"
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr "under laddning av bindningen %<%E%s%E@%s%>"
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr "misslyckades att ladda väntande för %<%E%s%E%>"
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr "under laddning av väntande för %<%E%s%E%>"
@@ -59348,390 +59386,390 @@ msgstr "under laddning av väntande för %<%E%s%E%>"
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr "import av den namngivna modulen %qs inuti språklänkningsblock"
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, gcc-internal-format
 msgid "module already declared"
 msgstr "modulen är redan deklarerad"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, gcc-internal-format
 msgid "module already imported"
 msgstr "modulen är redan importerad"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, gcc-internal-format
 msgid "module %qs imported here"
 msgstr "modulen %qs importerades här"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr "okänt kompilerat modulgränssnitt: %s"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr "det går inte att avgöra %<#include%>-översättning av %s: %s"
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr "inkluderingen %qs översatt till import"
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr "inkluderingen %qs bearbetad textuellt"
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr "C++-moduler är inkompatibla med förkompilerade huvuden"
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, gcc-internal-format
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "C++-moduler är inkompatibla med traditionell preprocessning"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr "makrofelsökningsutdata kan vara ofullständig med moduler"
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr "modulberoenden kräver preprocessning"
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr "du behöver använda flaggan %<-%s%>"
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, gcc-internal-format
 msgid "invalid header name %qs"
 msgstr "felaktigt huvudnamn %qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, gcc-internal-format
 msgid "invalid module name %qs"
 msgstr "felaktig modulnamn %qs"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr "%<-fmodule-only%> använd för annat än gränssnitt"
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, gcc-internal-format
 msgid "writing CMI %qs"
 msgstr "skriver CMI %qs"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, gcc-internal-format
 msgid "not writing module %qs due to errors"
 msgstr "skriver inte modulen %qs på grund av fel"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr "misslyckades att skriva en kompilerad modul: %s"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr "okänd huvudsort %qs"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "namnoberoende deklarationer är endast tillgängliga med %<-std=c++2c%> eller %<-std=gnu++2c%>"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "omdeklaration av %q#D med andra mallparametrar"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D står i konflikt med tidigare deklaration"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D döljer konstruerare för %q#D"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "motstridande deklaration av C-länkning av %q#D"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "på grund av olika undantagsspecifikationer"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, gcc-internal-format
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "lambdaparametern %qD är deklarerad tidigare som en fångst"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "deklaration av %q#D skuggar en parameter"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "deklarationen av %qD skuggar en medlem av %qT"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "vändeklaration %qD i lokal klass utan en tidigare lokal deklaration"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %<%s(%E)%> %p %d"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, gcc-internal-format
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr "exporterar %q#D som inte har extern länkning"
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr "%q#D är deklarerad här utan någon länkning"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr "%q#D är deklarerad här med intern länkning"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr "%q#D är deklarerad här med modullänkning"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, gcc-internal-format
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T%s%D%> namnger en destruerare"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "using-deklaration för icke-medlem vid klassräckvidd"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%<using%> med uppräkningsräckvidd %q#T är endast tillgängligt med %<-std=c++20%> eller %<-std=gnu++20%>"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qT är inte en klass, namnrymd eller uppräkning"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "icke-medlems using-deklaration namnger konstrueraren för %qT"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr "using-deklaration för medlem vid icke-klass-räckvidd"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, gcc-internal-format
 msgid "%qT is not a direct base of %qT"
 msgstr "%qT är inte en direkt bas till %qT"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr "menade du %<using enum %T::%D%>?"
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "%qD har inte deklarerats i %qD"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr "en using-deklaration får inte namnge namnrymden %qD"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> namnger konstruerare i %qT"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "deklaration av %qD inte i namnrymd som omger %qD"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "explicit-kvalifikation i deklaration av %qD"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD borde ha deklarerats inuti %qD"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "%qD har inte deklarerats inom %qD"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr "endast här som %<friend%>"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "attributet %qD kräver ett ensamt NTBS-argument"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr "attributet %qD är meningslöst eftersom medlemmar av den anonyma namnrymden får lokala symboler"
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr "ignorerar attributet %qD på en anonym namnrymd"
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "ignorerar attributet %qD på en namnrymd som inte är inline"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "attributdirektivet %qD ignorerat"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr "maxgräns på %d namnrymder sökta %qE"
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] "föreslaget alternativ:"
 msgstr[1] "föreslagna alternativ:"
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr "  %qE"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr "%<std::%s%> är definierad i huvudet %qs; detta går förmodligen att lösa genom att lägga till %<#include %s%>"
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "%<std::%s%> är bara tillgänglig från %s och framåt"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr "makrot %qs har inte definierats ännu"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, gcc-internal-format
 msgid "it was later defined here"
 msgstr "det definierades senare här"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr "definitionen av %<std::initializer_list%> matchar inte %<#include <initializer_list>%>, är inte en mall"
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, gcc-internal-format
 msgid "%<strong%> using directive no longer supported"
 msgstr "ett %<strong%> using-direktiv stödjs inte längre"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr "du kan använda en inline-namnrymd istället"
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, gcc-internal-format
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%<omp::%E%> är inte tillåtet att anges i detta sammanhang"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr "det går inte att nästa mer än %d namnrymder"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "%<namespace %E%> är tvetydig"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "namnrymdsalias %qD inte tillåtet här, antar %qD"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr "inline-namnrymder måste anges vid den ursprungliga definitionen"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, gcc-internal-format
 msgid "%qD defined here"
 msgstr "%qD definierades här"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "%s-namnrymd %qD står i konflikt med nåbar definition"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr "nåbar %s-definition här"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX går in i %<pop_everything ()%>"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr "XXX lämnar %<pop_everything ()%>"
@@ -59756,7 +59794,7 @@ msgstr "identifieraren %qE är ett nyckelord i C++20"
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr "%<LEXER_DEBUGGING_ENABLED_P%> är inte satt till true"
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma omp declare %s%> som inte omedelbart följs av en funktionsdeklaration eller -definition"
@@ -60002,7 +60040,7 @@ msgstr "C++20 %<constinit%> är endast tillgängligt med %<-std=c++20%> eller %<
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<concept%> är endast tillgängligt med %<-std=c++20%> eller %<-fconcepts%>"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<requires%> är endast tillgängligt med %<-std=c++20%> eller %<-fconcepts%>"
@@ -60182,7 +60220,7 @@ msgstr "satsuttryck är inte tillåtna utanför funktioner eller i mallargumentl
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "vikningsuttryck är endast tillgängliga med %<-std=c++17%> eller %<-std=gnu++17%>"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "primäruttryck förväntades"
@@ -60238,7 +60276,7 @@ msgid "template-id not allowed for destructor in C++20"
 msgstr "mall-id är inte tillåtet för destruerare i C++20"
 
 # %qs blir den fixa strängen "< >"
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr "ta bort %qs"
@@ -60258,7 +60296,7 @@ msgstr "typedef-namnet %qD använt som destruerardeklarerare"
 msgid "expected unqualified-id"
 msgstr "okvalificerat id förväntades"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD är inte en mall"
@@ -60308,7 +60346,7 @@ msgstr "typer får inte definieras i ett %<typeid%>-uttryck"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "fel antal argument till %<__builtin_addressof%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "fel antal argument till %<__builtin_launder%>"
@@ -60343,7 +60381,7 @@ msgstr "typer får inte definieras inuti anrop av %<__builtin_classify_type%>"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr "kan inte använda multidimensionellt index i OpenMP-vektorsektionen"
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "ogiltig användning av %qD"
@@ -60368,7 +60406,7 @@ msgstr "ISO C++ tillåter inte %<alignof%> med annat än en typ"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "typer får inte definieras i %<noexcept%>-uttryck"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr "typer får inte definieras i en %qs-uttryck"
@@ -60518,8 +60556,8 @@ msgstr "tom initierare för lambdas init-fångst"
 msgid "capture of non-variable %qE"
 msgstr "fångst av en icke-variabel %qE"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%q#D är deklarerad här"
@@ -60559,7 +60597,7 @@ msgstr "standardargumentet angivet för lambdaparameter"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "en parameterdeklaration före lambdadeklarationsspecificerare är endast valfritt med %<-std=c++2b%> eller %<-std=gnu++2b%>"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr "ett lambda med fångster kan inte ha en explicit objektparameter av en orelaterad typ"
@@ -60684,7 +60722,7 @@ msgstr "%<if consteval%> kräver en sammansatt sats"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "init-satsen i valsatser är endast tillgängliga med %<-std=c++17%> eller %<-std=gnu++17%>"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "selektionssats förväntades"
@@ -60746,7 +60784,7 @@ msgstr "intervallbaserat %<for%>-uttryck av typen %qT har ofullständig typ"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr "inkonsistenta start-/sluttyper i intervallbaserad %<for%>-sats: %qT och %qT"
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "iterationssats förväntades"
@@ -60772,7 +60810,7 @@ msgstr "%<goto%> i %<constexpr%>-funktioner är endast tillgängligt med %<-std=
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ förbjuder beräknade goto"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "hoppsats förväntades"
@@ -61053,12 +61091,12 @@ msgstr "endast konstruerare tar medlemsinitierare"
 msgid "cannot expand initializer for member %qD"
 msgstr "det går inte att expandera initierare för medlem %qD"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "minnesinitierare för %qD följer en konstruerardelegering"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr "konstruerardelegering följer mem-initierare för %qD"
@@ -61696,7 +61734,7 @@ msgstr "mallargument saknas efter %qE"
 msgid "%qT not permitted in template argument"
 msgstr "%qT är inte tillåtet i mallargument"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, gcc-internal-format
 msgid "invalid use of %qT"
@@ -61875,12 +61913,12 @@ msgstr "föregående definition av %q#T"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr "oexpanderat parameterpack i en lokal klass i lambda"
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr "klassnyckel förväntades"
@@ -62082,37 +62120,37 @@ msgstr "attribut som använder prefix är endast tillgängligt med %<-std=c++17%
 msgid "expression must be enclosed in parentheses"
 msgstr "uttrycket måste vara inneslutet i parenteser"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr "ytterligare %<requires%> saknas för att inleda ett requires-uttryck"
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr "testar om ett koncept-id är ett giltigt uttryck; lägg till %<requires%> för att kontrollera uppfyllnad"
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, gcc-internal-format
 msgid "result type is not a plain type-constraint"
 msgstr "resultattypen är inte en enkel typbegränsning"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr "returtypskravet är inte en typbegränsning"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr "specialisering av medlem %<%T::%E%> kräver %<template<>%>-syntax"
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "ogiltig omdeklaration av %<%T::%E%>"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "för få mallparameterlistor"
@@ -62121,438 +62159,438 @@ msgstr "för få mallparameterlistor"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "för många mallparameterlistor"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr "mall-id är inte tillåtet för konstruerare i C++20"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "namngivna returvärden stödjs inte längre"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr "ISO C++ antog inte mallar för stränglitteralsoperatorer som tar argumentpaket av tecken"
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr "den litterala operatormallen %qD har ogiltig parameterlista; ett mallargument som inte är en typ pack %<<char...>%> eller en ensam icke-typparameter av klasstyp förväntades"
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr "den litterala operatormallen %qD har ogiltig parameterlista; en mallparameter som inte är en typ pack %<<char...>%> förväntades"
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr "mallintroduktioner är inte en del av C++20 koncept; använd %qs för att aktivera"
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr "det finns inget matchande koncept för mallintroduktionen"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "ogiltig deklaration av medlemsmall i lokal klass"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "mall med C-länkning"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "ogiltig explicit specifikation"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "malldeklaration av %<typedef%>"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr "en klassmallsdeklaration får inte deklarera något annat"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "explicit mallspecialisering kan inte ha en lagringsklass"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%<>>%> skulle vara %<> >%> inuti en nästad mallargumentlista"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "vilsekommet %<>>%>, använd %<>%> för att avsluta en mallargumentlista"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "%qs skall vara %qs för att avsluta en mallargumentlista"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr "argument till %<sizeof...%> måste omges av parenteser"
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "ogiltig användning av %qD i länkklasspecifikation"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr "dubblerade %qD-specificerare"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr "%qD-specificerare står i konflikt med %qs"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> före %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%qD-specificerare står i konflikt med %<typedef%>"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ 1998 stödjer inte %<long long%>"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "både %<__thread%> och %<thread_local%> angivna"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "dubblerad %qD"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "dubblerad %qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "%<new%> förväntades"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "%<delete%> förväntades"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "%<return%> förväntades"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "%<extern%> förväntades"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "%<static_assert%> förväntades"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "%<decltype%> förväntades"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "%<operator%> förväntades"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "%<class%> förväntades"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "%<template%> förväntades"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "%<namespace%> förväntades"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "%<using%> förväntades"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "%<asm%> förväntades"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "%<try%> förväntades"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "%<catch%> förväntades"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "%<throw%> förväntades"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr "%<auto%> förväntades"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "%<__label__%> förväntades"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "%<@try%> förväntades"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "%<@synchronized%> förväntades"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "%<@throw%> förväntades"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "%<__transaction_atomic%> förväntades"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "%<__transaction_relaxed%> förväntades"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr "%<co_yield%> förväntades"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "%<::%> förväntades"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "%<...%> förväntades"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "%<*%> förväntades"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "%<~%> förväntades"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "%<:%> eller %<::%> förväntades"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "%<class%>, %<typename%> eller %<template%> förväntades"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr "överflödig enum-nyckel %<enum%s%> i referens till %q#T"
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "%qs-tagg använd vid namngivning av %q#T"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "%q#T deklarerades tidigare här"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, gcc-internal-format
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "överflödig klassnyckel %qs i referens till %q#T"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qT är deklarerad med en klassnyckel som inte stämmer %qs"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr "ta bort klassnyckeln eller ersätt den med %qs"
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "ersätt klassnyckeln med %qs"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr "%qT är definierad som %qs här"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr "%qT är först deklarerad som %qs här"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD omdeklarerad med annan åtkomst"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "i C++98 är %<template%> (för att lösa upp tvetydighet) är endast tillåtet inuti mallar"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "filen slutar i standardargument"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "felplacerad Objective-C++-konstruktion %<@%D%>"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr "objective-c++-meddelandemottagare förväntades"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr "objective-c++-meddelandeargument förväntades"
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "%<@encode%> måste ange en typ som ett argument"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "ogiltigt Objective-C++-väljarnamn"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr "metoddeklaration i objective-c++ förväntades"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "metodattribut måste anges på slutet"
 
 # %qs blir "{" eller "}"
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr "vilsekommet %qs mellan Objective-C++ metoder"
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "ogiltig typ för iterationsvariabel"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "identifierare förväntades efter %<@protocol%>"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr "attribut får inte anges före Objective-C++-nyckelordet %<@%D%>"
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "prefixattribut ignoreras före %<@%D%>"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, gcc-internal-format
 msgid "invalid type for property"
 msgstr "ogiltig typ på egenskap"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr "okänt egenskapsattribut %qE"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, gcc-internal-format
 msgid "expected integer expression list"
 msgstr "heltalsuttryckslista förväntades"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "%<wait%>-uttryck måste vara heltal"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "%<scalar%>, %<aggregate%>, %<all%> förväntades"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "ogiltig reduktionsidentifierare"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr "typer får inte definieras i iteratortyp"
@@ -62561,12 +62599,12 @@ msgstr "typer får inte definieras i iteratortyp"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, gcc-internal-format
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "%<#pragma omp allocate%> stödjs inte ännu"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr "initiering i parenteser är inte tillåtet i en OpenMP-%<for%>-slinga"
@@ -62576,133 +62614,133 @@ msgstr "initiering i parenteser är inte tillåtet i en OpenMP-%<for%>-slinga"
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr "en %<ordered%>-klausul med parameter på en intervallbaserad %<for%>-slinga"
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "iterationsvariabel %qD skall inte vara reduction"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp declare %s%> följt av %<#pragma omp declare %s%>"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr "OpenMP-direktiv andra än %<declare simd%> eller %<declare variant%> hör till en deklaration"
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "ogiltig initierarklausul"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "id-uttryck förväntades (argument)"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr "en av initieraranropets argument skall vara %<omp_priv%> eller %<&omp_priv%>"
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr "typer får inte definieras i en declare reduction-typlista"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr "en fördeklarerad aritmetisk typ %qT i %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr "funktions- eller vektortyp %qT i %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr "referenstyp %qT i %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr "%<const%>-, %<volatile%>- eller %<__restrict%>-kvalificerad typ %qT i %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr "%<#pragma acc routine%> namnger en mängd överlagrade"
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD refererar inte till en funktion med namnrymdsräckvidd"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr "%<atomic_cancel%>"
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr "%<__transaction_relaxed%> utan stöd för transaktionsminne aktiverat"
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr "%<__transaction_atomic%> utan stöd för transaktionsminne aktiverat"
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr "yttre %<__transaction_cancel%> som inte är inom en yttre %<__transaction_atomic%>"
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr "  eller en %<transaction_may_cancel_outer%>-funktion"
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "felformat %<#pragma GCC pch_preprocess%>"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp requires%> kan endast användas med fil- eller namnrymdsräckvidd"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp assumes%> kan endast användas med fil- eller namnrymdsräckvidd"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "%<#pragma GCC %s%> måste vara inuti en funktion"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr "flerkällskompileringar är inte implementerade för C++"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr "en platshållartyp är inte tillåtet i denna kontext"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr "implicita mallar får inte vara %<virtual%>"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr "%<extern \"C\"%>-länkning startade här"
@@ -62732,7 +62770,7 @@ msgstr "inneslutande klassmallar är inte explicit specialiserade"
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "specialisering av %qD i förekomma i namnrymdsräckvidd"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "specialisering av %qD i en annan namnrymd"
@@ -62747,170 +62785,170 @@ msgstr "  från definitionen av %q#D"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "explicit instansiering av %qD i namnrymden %qD (som inte omsluter namnrymden %qD)"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "namn på klass skuggar mallmallparameter %qD"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "specialisering av aliasmall %qD"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "explicit specialisering av icke-mall %qT"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "specialisering av %qT efter instansiering"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, gcc-internal-format
 msgid "from definition of %q#D"
 msgstr "från definitionen av %q#D"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "specialisering %qT efter instansiering %qT"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "mallspecialisering av %qD är inte tillåten av ISO C++"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "specialisering av %qD efter instansiering"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, gcc-internal-format
 msgid "%s %#qD"
 msgstr "%s %#qD"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD är inte en funktionsmall"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "%qD är inte en variabelmall"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "mall-id %qD för %q+D stämmer inte med någon malldeklaration"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr "såg %d %<template<>%>, behöver %d för specialisering av medlemsfunktionsmall"
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "tvetydig mallspecialisering %qD för %q+D"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "variabelmallar är endast tillgängliga med %<-std=c++14%> eller %<-std=gnu++14%>"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr "fel antal mallhuvuden för %qD (skulle vara %d)"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr "medlemmar av en explicit specialiserad klass definieras utan ett mallhuvud"
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "explicit specialisering av %qD utanför dess namnrymd måste använda en nästat-namn-specificerare"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "explicit instansiering av %qD utanför dess namnrymd måste använda en nästat-namn-specificerare"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "explicit specialisering %q#D kan sakna attribut"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "primära mallattribut %s saknas"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "primärt mallattribut %s saknas"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, gcc-internal-format
 msgid "template-id %qE in declaration of primary template"
 msgstr "mall-id %qE i deklaration av primär mall"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "mallparameterlista använd i explicit instansiering"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "definition given för explicit instansiering"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "för många mallparameterlistor i deklarationen av %qD"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "för få mallparameterlistor i deklarationen av %qD"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "explicit specialisering av %qD måste inledas av %<template <>%>"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr "explicit specialisering  deklarerad %<concept%>"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "partiell specialisering som inte är en typ av %qE är inte tillåten"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "partiell specialisering som inte är en klass eller variabel av %qE är inte tillåten"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "standardargument angivet i explicit specialisering"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD är inte en mallfunktion"
@@ -62923,154 +62961,154 @@ msgstr "%qD är inte en mallfunktion"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "specialisering av implicit deklarerad specialmedlemsfunktion"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "ingen medlemsfunktion %qD är deklarerad i %qT"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "vändeklarationen %qD är inte synlig för en explicit specialisering"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, gcc-internal-format
 msgid "friend declaration here"
 msgstr "vändeklarationen här"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr "explicit specialisering av funktionskonceptet %qD"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, gcc-internal-format
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "argument till %<__integer_pack%> måste vara mellan 0 och %d"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr "basinitierarexpansionen %qT innehåller inga parameterpaket"
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "expansionsmönster %qT innehåller inga parameterpaket"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "expansionsmönster %qE innehåller inga parameterpaket"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr "parameterpaket expanderas inte med %<...%>:"
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr "        %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "deklaration av mallparametern %q+D skuggar en mallparameter"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "deklaration av %q+#D skuggar en mallparameter"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr "mallparametern %qD deklarerad här"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "specialisering av variabelkonceptet %q#D"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "mallparameter är inte härledbara i partiell specialisering:"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "partiell specialisering %q+D specialiserar inte något mallargument; för att definiera den primära mallen, ta bort mallargumentlistan"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr "partiell specialisering %q+D specialiserar inte något mallargument och är inte mer begränsad än den primära mallen; för att definiera den primära mallen, ta bort mallargumentlistan"
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr "huvudmall här"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr "partiell specialisering är inte mer specialiserad än huvudmallen eftersom den ersätter flera parametrar med en paketexpansion"
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, gcc-internal-format
 msgid "too many arguments for partial specialization %qT"
 msgstr "för många argument till en partiell specialisering %qT"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr "partiell specialisering %qD är inte mer specialiserad än"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, gcc-internal-format
 msgid "primary template %qD"
 msgstr "huvudmallen %qD"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr "parameterpaketargument %qE måste vara vid slutet av mallens argumentlista"
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr "parameterpaketargument %qT måste vara vid slutet av mallens argumentlista"
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "typ %qT för mallargument %qE beror på en mallparameter"
 msgstr[1] "typ %qT för mallargument %qE beror på mallparametrar"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "deklaration av %qD gör tidigare mallinstansiering av %qD tvetydig"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "partiell specialisering %qD efter instansiering av %qD"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "inget standardargument för %qD"
@@ -63079,47 +63117,47 @@ msgstr "inget standardargument för %qD"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "parameterpaket %q+D måste vara vid slutet av mallens parameterlista"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "standardmallargument får inte användas i vänomdeklaration av funktionsmall"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "standardmallargument får inte användas i vändeklarerade mallar"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "standarmallargument får inte användas i funktionsmallar utan %<-std=c++11%> eller %<-std=gnu++11%>"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr "standardmallargument får inte användas i partiella specialiseringar"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "standardargumentet för mallparameter för klass om omsluter %qD"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, gcc-internal-format
 msgid "template %qD declared"
 msgstr "mallen %qD deklarerad"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "mallklass utan ett namn"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr "medlemsmallen %qD kan inte ha virt-specificerare"
@@ -63129,506 +63167,506 @@ msgstr "medlemsmallen %qD kan inte ha virt-specificerare"
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "ogiltig malldeklaration av %qD"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "malldefinition av icke-mall %q#D"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "%d nivåer av mallparametrar förväntades till %q#D, %d fanns"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "fick %d mallparametrar till %q#D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "fick %d mallparametrar till %q#T"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  men %d behövs"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "mallargument till %qD stämmer inte med originalmallen %qD"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "använd %<template<>%> för en explicit specialisering"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "omdeklaration av %qD med andra begränsningar"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT är inte en malltyp"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "mallspecificerare inte angivna i deklarationen av %qD"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] "omdeklarerad med %d mallparameter"
 msgstr[1] "omdeklarerad med %d mallparametrar"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "tidigare deklaration av %qD använde %d mallparameter"
 msgstr[1] "tidigare deklaration av %qD använde %d mallparametrar"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "mallparameter %q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "omdeklarerad här som %q#D"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, gcc-internal-format
 msgid "redeclared here"
 msgstr "omdeklarerad här"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "deklaration av mallparametern %q+#D med andra begränsningar"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "ursprunglig deklaration fanns här"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "omdeklaration av %q#D med andra begränsningar"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qE är inte ett giltigt mallargument för typen %qT"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "det måste vara adressen till en funktion med extern lagringsklass"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr "det måste vara namnet på en funktion med extern lagringsklass"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE är inte ett giltigt mallargument för typ %qT eftersom %qD inte har någon länkklass"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qE är inte ett giltigt mallargument för typen %qT eftersom %qD inte har extern länkklass"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "det måste vara en pekare-till-medlem på formen %<&X::Y%>"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr "för att den är en medlem av %qT"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "  kunde inte härleda mallparametrar %qD"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr "  typerna %qT och %qT har inkompatibla cv-kvalificerare"
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr "  typerna %qT och %qT stämmer inte överens"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "  mallparameter %qD är inte ett parameterpaket, men argument %qD är det"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "  mallargument %qE stämmer inte med pekare till medlem-konstanten %qE"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "  %qE är inte ekvivalent med %qE"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr "  inkonsistent härledning av parameterpaket med %qT och %qT"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr "  härledda typer i konflikt för parametern %qT (T%qT och %qT)"
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr "  härledda värden i konflikt för icke-typ-parametern %qE (%qE och %qE)"
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "  vektortypen %qT med variabel storlek är inte ett giltigt mallargument"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr "  medlemsfunktionstypen %qT är inte ett giltigt mallargument"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "  kan inte konvertera %qE (typen %qT) till typ %qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "  %qT är en tvetydig basklass till %qT"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "  %qT är inte härledd från %qT"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr "  mallparametrarna till ett mallmallargument är inkonsistenta med andra härledda mallargument"
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "  det går inte att härleda en mall för %qT från typen %qT som inte är en mall"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "  mallargument %qE stämmer inte med %qE"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE är inte ett giltigt mallargument för typen %qT eftersom %qE inte är en variabel eller funktion"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE är inte ett giltigt mallargument av typ %qT i C++98 eftersom %qD inte har extern länkklass"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE är inte ett giltigt mallargument för typen %qT eftersom %qD inte har någon länkklass"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr "adressen till %qD är inte ett giltigt mallargument"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "adressen till underobjektet %qT till %qD är inte ett giltigt mallargument"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "adressen till %qD är inte ett giltigt mallargument eftersom den inte har statisk lagringsvaraktighet"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qD är inte ett giltigt mallargument för att %qD är en variabel, inte adressen till en variabel"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qE är inte ett giltigt mallargument till %qT för det är inte adressen till en variabel"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE är inte ett giltigt mallargument för typ %qT eftersom strängkonstanter aldrig kan användas i detta sammanhang"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "i mallargument för typen %qT"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "mallargumentet %qE för typen %qT är inte ett kompileringstidskonstant"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE är inte ett giltigt mallargument för typ %qT eftersom det står i konflikt med cv-kvalificeringar"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE är inte ett giltigt mallargument för typ %qT eftersom inte är ett l-värde"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%q#D är inte ett giltigt mallargument till typen %qT eftersom en referensvariabel inte har en konstant adress"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE är inte ett giltigt mallargument för typen %qT eftersom det är en pekare"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "försök att använda %qE istället"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE är inte ett giltigt mallargument för typen %qT eftersom det är av typen %qT"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "ignorerar attribut på mallargumentet %qT"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "ignorerar attribut i mallargumentet %qE"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "inskjutet klassnamn %qD använt som mallmallargument"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "ogiltig användning av destrueraren %qE som en typ"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "för att referera till en typmedlem av en mallparameter, använd %<typename %E%>"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "typ/värde stämmer inte vid argument %d i mallparameterlistan till %qD"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  förväntade en konstant av typen %qT, fick %qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "  tvetydigt mallargument till en mallparameter som inte är en typ hanteras som en funktionstyp"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  förväntade en klassmall, fick %qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  förväntade en typ, fick %qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  förväntade en typ, fick %qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  förväntade en klassmall, fick %qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  förväntade en mall av typen %qD, fick %qT"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "begränsningar stämmer inte vid argument %d i mallparameterlistan till %qD"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr "  %qD förväntades men fick %qD"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "kunde inte konvertera mallargument %qE från %qT till %qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "mallargument %d är ogiltigt"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "fel antal mallargument (%d, skulle vara %d)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "fel antal mallargument (%d, skulle vara åtminstone %d)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, gcc-internal-format
 msgid "provided for %qD"
 msgstr "angivna till %qD"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr "pack-expansionsargument för icke-pack-parametern %qD till aliasmall %qD"
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "pack-expansionsargument för icke-pack-parametern %qD till konceptet %qD"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr "så varje instansiering med ett icke-tomt parameterpaket vore felformulerad"
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%q#D är inte en funktionsmall"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "icke-malltyp %qT använd som en mall"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "för malldeklaration %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, gcc-internal-format
 msgid "template constraint failure for %qD"
 msgstr "mallbegränsningsfel för %qD"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "användning av felaktig variabelmall %qE"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "mallinstansieringsdjupet överskrider maxvärdet på %d (använd %<-ftemplate-depth=%> för att öka maxvärdet)"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr "värdesargument måste vara ett konstant heltalsuttryck"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr "värdesargumentet måste vara ickenegativt"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr "egenskaper måste vara ett konstant heltalsuttryck eller en strängkonstant"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "flexibel vektormedlem %qD i union"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr "fold över tom expansion över %O"
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, gcc-internal-format
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE är inte hela mönstret av paketexpansionen"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr "argumentpaketlängder stämmer inte överens vid expansion av %qT"
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr "argumentpaketlängder stämmer inte överens vid expansion av %qE"
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "  vid instansiering av standardargument för anrop av %qD"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "skapar pekare till medlemsfunktion i typ %qT som inte är en klass"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr "argumentpaketlängder stämmer inte överens (%d mot %d)"
@@ -63646,301 +63684,301 @@ msgstr "argumentpaketlängder stämmer inte överens (%d mot %d)"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "variabeln %qD har funktionstyp"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "ogiltig parametertyp %qT"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "i deklaration %q+D"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "funktion som returnerar en vektor"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "funktion som returnerar en funktion"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "formar referens till void"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "formar pekare till en referenstyp %qT"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "formar referens till en referenstyp %qT"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "formerar en pekare till en kvalificerad funktionstyp %qT"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "formerar en referens till en kvalificerad funktionstyp %qT"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "skapar pekare till medlem av typ %qT som inte är en klass"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "skapar pekare till medlemsreferenstyp %qT"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "skapar pekare till medlem av typ void"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "skapar vektor av %qT"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr "%qD instansieras för ett tomt paket"
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT är inte en klass-, post- eller unionstyp"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT slås upp till %qT som inte är en uppräkningstyp"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT löses upp till %qT, som inte är en klasstyp"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "användning av %qs i mall"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "kvalificerande typ %qT matchar inte destruerarnamnet ~%qT"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "namnet %qE i den beroende tolkas som något annat än en typ, men instansiering ger en typ"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "säg %<typename %E%> om en typ avses"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "initierare för %q#D expanderar till en tom uttryckslista"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "ogiltig användning av paketexpansionsuttryck"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr "använd %<...%> för att expandera argumentpaket"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr "tom initierare i lambdas init-fångst"
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr "%qD deklarerades inte i detta definitionsområde, och inga deklarationer hittades av en argumentberoende uppslagning vid instansieringspunkten"
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr "deklarationer i beroende bas %qT hittas inte av en okvalificerad uppslagning"
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr "använd %<this->%D%> istället"
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "använd %<%T::%D%> istället"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%qD är deklarerad här, senare i översättningsenheten"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "fel antal argument till %<__builtin_convertvector%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, gcc-internal-format
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "fel antal argument till attributet %<assume%>"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT är inte en klass eller namnrymd"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD är inte en klass eller namnrymd"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "användning av ogiltigt fält %qD"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "%qT är/använder en namnlös typ"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "mallargumentet för %qD använder lokal typ %qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT är en variabel typ"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "heltalsuttryck %qE är inte konstant"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  försöker instansiera %qD"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "tvetydig mallinstansiering av %q#T"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "tvetydig mallinstansiering av %q#D"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 msgid "%s %#qS"
 msgstr "%s %#qS"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "explicit instansiering av icke-mall %q#D"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "explicit instansiering av variabelkonceptet %q#D"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, gcc-internal-format
 msgid "explicit instantiation of function concept %q#D"
 msgstr "explicit instansiering av funktionskonceptet %q#D"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qD är inte en statisk datamedlem i en klassmall"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "det finns ingen matchande mall för %qD"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "typ %qT för explicit instansiering %qD stämmer inte med deklarerad typ %qT"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "explicit instansiering av %q#D"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "dubblerad explicit instansiering av %q#D"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++ 1998 förbjuder användning av %<extern%> vid explicita instansieringar"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "lagringsklass %qD tillämpad på mallinstansiering"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "explicit instansieringar av mallen %q#D som inte är en klass"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "explicit instansieringar av icke-malltyp %qT"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "explicit instansiering av %q#T före definitionen av mallen"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ förbjuder användning av %qE vid explicita instansieringar"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "dubblerad explicit instansiering av %q#T"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr "explicit specifikation av %qD beror på sig själv"
@@ -63952,163 +63990,163 @@ msgstr "explicit specifikation av %qD beror på sig själv"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "explicit instansiering av %qD men ingen definition tillgänglig"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "mallinstansieringsdjupet överskrider maxvärdet på %d vid instansiering av %q+D, möjligen från generering av virtuell tabell (använd %<-ftemplate-depth=%> för att öka maxvärdet)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "mallparameter av härledd klasstyp som inte är en typ är endast tillgängligt med %<-std=c++20%> eller %<-std=gnu++20%>"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%qT är inte en giltig typ för en mallparameter som inte är en typ eftersom det inte är en struktur"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "mallparameter av klasstyp som inte är en typ är endast tillgängligt med %<-std=c++20%> eller %<-std=gnu++20%>"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "ogiltig mallparameter som inte är en typ"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T är inte en giltig typ för en mallparameter som inte är en typ"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "nyckelordet %<template%> är inte tillåtet i deklarerar-id"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, gcc-internal-format
 msgid "a concept cannot be constrained"
 msgstr "ett koncept kan inte begränsas"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr "konceptet %qE är inte i namnrymdsräckvidd"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr "konceptet %qE har multipla mallparameterlistor"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr "härledning från klammeromsluten initierarlista kräver %<#include <initializer_list>%>"
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr "icke härledbar mall %qT använd utan mallargument"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "aliasmallhärledning är endast tillgängligt med %<-std=c++20%> eller %<-std=gnu++20%>"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, gcc-internal-format
 msgid "use %qD directly instead"
 msgstr "använd %qD direkt istället"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr "kan inte härleda mallargument för kopieinitiering av %qT, eftersom den inte har några icke-explicita härledningsguider eller användardeklarerade konstruerare"
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "kan inte härleda mallargument till %qT, eftersom den inte några användbara härledningsguider"
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "härledning av klassmallargument misslyckades:"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, gcc-internal-format
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "explicita härledningsguider övervägs inte vid kopieinitiering"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr "klassmallargumentshärledningen för %qT misslyckades: explicit härledningsguide vald i kopieringslistinitiering"
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "explicit härledningsguide deklarerad här"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "%qT är kanske inte avsett att stödja härledning av klassmallargument"
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr "lägg till en härledningsguide för att undertrycka denna varning"
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr "direkt listinitiering av %<auto%> tar precis ett element"
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr "för härledning till %<std::initializer_list%>, använd kopielistinitiering (d.v.s. lägg till %<=%> före %<{%>)"
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "kan inte härleda lambdareturtyp från %qE"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "kan inte härleda %qT från %qE"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr "platshållarbegränsningar är inte uppfyllt"
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "härledd initierare uppfyller inte sina platshållarbegränsningar"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "härledd returtyp uppfyller inte sina platshållarbegränsningar"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "härledd uttryckstyp uppfyller inte sina platshållarbegränsningar"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "felaktig användning av %qT i mallargument"
@@ -64314,630 +64352,630 @@ msgstr "typen på %<asm%>-operanden %qE kunde inte avgöras"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "%<__label__%>-deklarationer får bara förekomma på funktionsnivå"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "ogiltig användning av %qD i en statisk medlemsfunktion"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "ogiltig användning av %qD i ett konsturearar-%<pre%>-kontrakt"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "ogiltig användning av %qD i ett destruerar-%<post%>-kontrakt"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr "%qE mallargument saknas"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr "ett satsuttryck är otillräckligt sammanhang för upplösning av överlagring"
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, gcc-internal-format
 msgid "cannot call a concept as a function"
 msgstr "det går inte att anropa ett koncept som en funktion"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "argument till destruerare är inte tillåtet"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, gcc-internal-format
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "%<this%> är inte tillgängligt i explicita objektmedlemsfunktioner"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr "använd en explicit objektparameter %qs istället"
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr "namnge den explicita objektdparametern"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "%<this%> är inte tillgängligt i en statisk medlemsfunktion"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, gcc-internal-format
 msgid "invalid use of %<this%> before it is valid"
 msgstr "ogiltig användning av %<this%> före det är giltigt"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, gcc-internal-format
 msgid "invalid use of %<this%> after it is valid"
 msgstr "ogiltig användning av %<this%> efter att det är giltigt"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "ogiltig användning av %<this%> i icke-medlemsfunktion"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "ogiltig användning av %<this%> på toppnivå"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "ogiltigt kvalificerande räckvidd i pseudodestruerarnamn"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "kvalificerad typ %qT matchar inte destruerarnamnet ~%qT"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE har inte typen %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "sammansatt litteral för ej objekttyp %qT"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "%<auto{x}%> kan inte begränsas"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<auto{x}%> är endast tillgängligt med %<-std=c++2b%> eller %<-std=gnu++2b%>"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "malltypparametrar måste använda nyckelordet %<class%> eller %<typename%>"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "ogiltig användning av typ %qT som standardvärde för en mallmallparameter"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "ogiltigt standardargument för en mallmallparameter"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "definition av %q#T inuti mallparameterlista"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "ogiltig definition av kvalificerad typ %qT"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "ogiltig basklasspecifikation"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr "kan inte fånga medlemmen %qD i anonym union"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "%qD är inte fångad"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr "lambdat har ingen standardfångst"
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr "lambda i lokal klass %q+T kan inte fånga variabler från det omgivande sammanhanget"
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr "användning av lokal variabel med automatisk lagringsklass från en kringliggande funktion"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "användning av parameter från den kringliggande funktionen"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr "användning av parameter utanför funktionskroppen"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, gcc-internal-format
 msgid "missing template arguments"
 msgstr "mallargument saknas"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "mallparameter %qD av typ %qT är inte tillåten i ett konstant heltalsuttryck eftersom den inte är av heltals- eller uppräkningstyp"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "användning av klassmall %qT som uttryck"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "begäran av medlem %qD är tvetydig i gitter av multipelt arv"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD får inte finnas i ett konstantuttryck"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "typen på %qE är okänd"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qT är inte ett uppräkningstyp"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "indexet till %<__type_pack_element%> är inte en heltalskonstant"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr "indexet till %<__type_pack_element%> är negativt"
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "indexet till %<__type_pack_element%> är utanför intervallet"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "parameterpaketets %<__bases%> är endast giltiga i malldeklarationer"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "det går inte att applicera %<offsetof%> på destrueraren %<~%T%>"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "det går inte att använda %<offsetof%> på medlemsfunktion %qD"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "det går inte att använda %<offsetof%> på en medlemsfunktion"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "det går inte att använda %<offsetof%> på en uppräknare %qD"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr "%<offsetof%> inom icke-standardlayouttypen %qT är villkorligt stött"
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "pekar-till-medlems-avbildningen %qE stödjs ej"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "användardefinierad reduktionsuppslagning är tvetydig"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr "%qE i %<reduction%>-klausul är en vektor med storlek noll"
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE har const-typ för %<reduction%>"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr "användardefinierad reduktion med konstruerarinitierare för basklassen %qT"
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr "en annan modifierare än %<val%> ingiven i en %<linear%>-klausul på %<simd%>- eller %<for%>-konstruktioner när OpenMP 5.2-modifierare används"
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr "linjär klausul med modifieraren %qs tillämpad på en variabel som inte är en referens med typen %qT"
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr "linjär klausul tillämpad på en variabel som inte är heltal och inte pekare med typen %qT"
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr "ett linjärt steguttryck måste vara ett heltal"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr "%<this%> tillåtet i OpenMP endast i %<declare simd%>-klausuler"
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD är inte en variabel i klausul %qs"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "%qD är inte en variabel i klausul %<firstprivate%>"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qD är inte en variabel i klausul %<lastprivate%>"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr "%<gang%>-statiskt uttryck måste vara heltal"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr "%<gang%>-statiskt värde måste vara positivt"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr "%<gang%>-numeriskt uttryck måste vara ett heltal"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr "%<vector%>-längduttryck måste vara ett heltal"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr "%<worker%>-numeriskt uttryck måste vara ett heltal"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "%<gang%>-numeriskt värde måste vara positivt"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr "%<vector%>-längdvärdet måste vara positivt"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr "%<worker%>-numeriskt värde måste vara positivt"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "uttryck för styckesstorlek för schemaläggning måste vara heltal"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr "%qs-längduttryck måste vara ett heltal"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "%qs längduttryck måste vara ett positivt konstant heltalsuttryck"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "%<async%>-uttryck måste vara heltal"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr "%<thread_limit%>-uttryck måste vara heltal"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr "%<device%>-id måste vara ett heltal"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "%<dist_schedule%> styckesstorleksuttryck måste vara heltal"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD är inte en variabel i %<aligned%>-klausul"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr "%qE i %<aligned%>-klausul är varken en pekare eller en vektor eller en referens till pekare eller vektor"
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qD förekommer mer än en gång i %<aligned%>-klausuler"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "%<aligned%>-klausuls justeringsuttryck måste vara heltal"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD är inte en variabel i %<nontemporal%>-klausul"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD förekommer mer än en gång i %<nontemporal%>-klausuler"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%<this%> är inte en tillåtet i en %<allocate%>-klausul"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD är inte en variabel i %<allocate%>-klausul"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD förekommer mer än en gång i %<allocate%>-klausuler"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "%qD är inte ett l-värdeuttryck eller vektorsektion i en %qs-klausul"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr "mallen %qE i-klausulen %qs"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr "överlagrad funktion med namnet %qE i klausulen %qs"
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "%<grainsize%>-uttryck måste vara ett heltal"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr "%<priority%>-uttryck måste vara ett heltal"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr "%<hint%>-uttryck måste vara heltal"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "%<hint%>-uttryck måste vara ett konstant heltalsuttryck"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr "%<filter%>-uttryck måste vara heltal"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "variabeln %qs är varken en pekare eller en referens till en pekare"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr "%qs-variabeln är varken en pekare, eller en vektor eller en referens till pekare eller vektor"
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr "%<tile%>-argumentet behöver en heltalstyp"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr "%<const%>-kvalificerad %qE utan en %<mutable%>-medlem kan endast förekomma i klausuler %<shared%> eller %<firstprivate%>"
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr "%<threadprivate%> %qD är inte fil-, namnrymds- eller blockräckviddsvariabel"
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "%<threadprivate%> %qE-direktiv inte i %qT-definition"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr "skillnaden mellan %qE och %qD har inte heltalstyp"
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "%<#pragma omp simd%> använt med klassiterationsvariabeln %qE"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic update%> använder två olika uttryck för minne"
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr "meddelandet i %<static_assert%> måste vara en strängliteral eller ett objekt med medlemmarna %<size%> och %<data%>"
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr "meddelandet %<size()%> till %<static_assert%> måste vara implicit konverterbart till %<std::size_t%>"
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr "meddelandet %<data()%> till %<static_assert%> måste vara implicit konverterbart till %<const char*%>"
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "meddelandet %<size()%> till %<static_assert%> måste vara ett konstant uttryck"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr "meddelandet %<size()%> till %<static_assert%> %qE är för stort"
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "meddelandet %<data()[%d]%> till %<static_assert%> måste vara ett konstant uttryck"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "meddelandet %<data()%> till %<static_assert%> måste vara ett kärnkonstant uttryck"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, gcc-internal-format
 msgid "static assertion failed: %.*s"
 msgstr "statisk försäkran misslyckades: %.*s"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "icke-konstant villkor i statisk deklaration"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr "argument till %<decltype%> måste vara ett uttryck"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "%<decltype%> kan inte lösa upp adressen till en överlagrad funktion"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr "%<__builtin_is_pointer_interconvertible_with_class%> behöver ett ensamt argument"
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr "argumentet till %<__builtin_is_pointer_interconvertible_with_class%> är inte en pekare till en medlem"
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr "%<__builtin_is_corresponding_member%> är inte väldefinierat för anonyma unioner"
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "%<__builtin_is_corresponding_member%> behöver två argument"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr "argumentet till %<__builtin_is_corresponding_member%> är inte en pekare till en medlem"
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "%qD är inte en klass- eller aliasmall"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "operanden till vikningsuttrycket har inget oexpanderat parameterpaket"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "båda argumenten i en binär vikning har oexpanderade parameterpaket"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr "inga oexpanderade parameterpack i binär fold"
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr "icke-pekar-argument till %<__builtin_launder%>"
@@ -64945,1158 +64983,1158 @@ msgstr "icke-pekar-argument till %<__builtin_launder%>"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr "%<__builtin_bit_cast%>-måltyp %qT är en vektortyp"
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr "%<__builtin_bit_cast%>-måltyp %qT är inte trivialt kopierbar"
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr "%<__builtin_bit_cast%>-källtyp %qT är inte trivialt kopierbar"
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr "%<__builtin_bit_cast%>-källstorlek %qE är inte lika med måltypstorleken %qE"
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "%qV-kvalificerare kan inte tillämpas på %qT"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr "satsuttryck i ett konstant uttryck"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr "%<-fabi-version=13%> (GCC 8.2) fixar anropskonventionen för %qT, som ändrades av misstag i 8.1"
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr "%<-fabi-version=12%> (GCC 8.1) ändrar av misstag anropskonventionen för %qT"
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, gcc-internal-format
 msgid " declared here"
 msgstr " deklarerad här"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr "anropskonventionen för %qT ändras i %<-fabi-version=13%> (GCC 8.2)"
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr " för att alla dess kopierings- och flyttkonstruerare är borttagna"
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr "basklassen %qT är inte publik"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, gcc-internal-format
 msgid "%qD is not public"
 msgstr "%qD är inte publik"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, gcc-internal-format
 msgid "%qD is mutable"
 msgstr "%qD är muterbar"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr "%qD är en icke-strukturell typ"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "attributet %qE kan bara användas på funktioner eller parametrar"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, gcc-internal-format
 msgid "%qE attribute argument must be a string constant"
 msgstr "argument till attribut %qE måste vara en strängkonstant"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "attributet %qE kan bara användas på funktioner eller på klass- eller uppräkningstyper"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "attributet %qE kan bara användas på icke-statiska datamedlemmar"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, gcc-internal-format
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "attributet %qE kan inte tillämpas på ett bitfält"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr "attributet %qE tar inga argument"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "ISO C++-attributet %qE är inte tillämpligt på funktioner; hanteras som %<[[gnu::%E]]%>"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, gcc-internal-format
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "begärd %<init_priority%> är inte en heltalskonstant"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "det går bara att använda attributet %qE på definitioner av objekt- eller klasstyp med filräckvidd"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "begärd %<init_priority%> %i är utanför sitt intervall [0, %i]"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "begärd %<init_priority%> %i är reserverad för internt bruk"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "omdeklaration av %qD lägger till abi-taggen %qE"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "attributet %qE behöver argument"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "argumenten till attributet %qE måste vara smala strängkonstanter"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "argumenten till attributet %qE måste innehålla giltiga identifierare"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%c%> är inte ett giltigt första tecken för en identifierare"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%c%> är inte ett giltig bokstav i en identifierare"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "attributet %qE använt på typen %qT som inte är en klass eller uppräkningstyp"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "attributet %qE använt på %qT efter dess definition"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "ignorerar attributet %qE använt på mallinstansieringen %qT"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "ignorerar attributet %qE använt på mallspecialiseringen %qT"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "attributet %qE tillämpat på %qD som inte är en funktion eller variabel"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "attributet %qE tillämpat på extern \"C\"-deklaration %qD"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "argument till attribut %qE måste vara ett uttryck som beräknas till sant eller falskt"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "noll som en nollpekarkonstant"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "%<lang_*%>-kontroll: misslyckades i %s, vid %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "jämförelse mellan olika pekartyper %qT och %qT saknar en typkonvertering"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "konvertering mellan olika pekartyper %qT och %qT saknar en typkonvertering"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "villkorsuttryck mellan olika pekartyper %qT och %qT saknar en typkonvertering"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ förbjuder jämförelser mellan pekare av typ %<void *%> och pekare till funktioner"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ förbjuder konvertering mellan pekare av typ %<void *%> och pekare till funktioner"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ förbjuder villkorliga uttryck mellan pekare av typ %<void *%> och pekare till funktioner"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "jämförelse mellan olika pekare-på-medlem-typer %qT och %qT saknar en typkonvertering"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "konvertering mellan olika pekare-på-medlem-typer %qT och %qT saknar en typkonvertering"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "villkorsuttryck mellan olika pekare-på-medlem-typer %qT och %qT saknar en typkonvertering"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "kanoniska typer skiljer för identiska typer %qT och %qT"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "samma kanoniska typnod för olika typer %qT och %qT"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "ogiltig användning av %qs på en medlemsfunktion"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "ogiltig användning av %<sizeof%> på ett bitfält"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++ förbjuder användning av %<sizeof%> på ett uttryck med funktionstyp"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "ogiltig användning av %<__alignof%> på ett bitfält"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++ förbjuder användning av %<__alignof%> på ett uttryck med funktionstyp"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "argumentet till %<alignas%> har typen %qT som inte är en heltalstyp"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "ogiltig användning av icke-statisk medlemsfunktion av typen %qT"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "ISO C++ förbjuder konvertering av en strängkonstant till %qT"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "konvertering från strängkonstant till %qT bör undvikas"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "begäran av medlem %qD i %qE, som är av pekartypen %qT (kanske du hade tänkt använda %<->%> ?)"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "begäran av medlem %qD i %qE, som är av icke-klasstyp %qT"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr "ogiltig användning av icke-statisk datamedlem %qE"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "ogiltig åtkomst av icke-statisk datamedlem %qD i virtuell bas till NULL-objekt"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "objekttyp %qT stämmer inte med destruerarnamnet ~%qT"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "typen som destrueras är %qT, men destrueraren refererar till %qT"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr "fältet %q#D kan kommas åt via %q#D"
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "%q#T har ingen medlem med namnet %qE"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "%q#T har ingen medlem med namnet %qE, menade du %q#D? (åtkomligt via %q#D)"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "%q#T har ingen medlem med namnet %qE, menade du %q#D? (inte åtkomlig från detta sammanhang)"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%q#T har ingen medlem med namnet %qE, menade du %qE?"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> är inte en medlem av %qT"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT är inte en basklass till %qT"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD är inte en medlemsmallfunktion"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT är inte en pekare-på-objekt-typ"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "ogiltig användning av vektorindexering på pekare till medlem"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "ogiltig användning av unärt %<*%> på pekare till medlem"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "ogiltig användning av implicit konvertering av pekare till medlem"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr "vänstra operanden till %<->*%> måste vara en pekare på en klass, men är en pekare på en medlem av typen %qT"
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "index saknas i vektorreferens"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "indexering av vektor deklarerad %<register%>"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "indexerat värde är varken en vektor eller pekare"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "objekt saknas i användning av %qE"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ förbjuder anrop av %<::main%> inifrån program"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "man måste använda %<.*%> eller %<->*%> för att anropa en pekare-till-medlems-funktion i %<%E (...)%>, t.ex. %<(... ->* %E) (...)%>"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE kan inte användas som en funktion"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "%qD kan inte användas som en funktion"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "uttryck kan inte användas som en funktion"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "för många argument till konstrueraren %q#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "för få argument till konstrueraren %q#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "för många argument till medlemsfunktionen %q#D"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "för få argument till medlemsfunktionen %q#D"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "för många argument till funktionen %q#D"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "för få argument till funktionen %q#D"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "för många argument till metoden %q#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "för få argument till metoden %q#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "för många argument till funktion"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "för få argument till funktion"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "parameter %P till %qD har ofullständig typ %qT"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "parametern %P har ofullständig typ %qT"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr "adressen %qE kommer aldrig vara NULL"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "adressen till %qD kommer aldrig vara NULL"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "kompilatorn kan anta att adressen till %qE aldrig kommer att vara NULL"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr "jämför resultatet av pekaraddition %qE och NULL"
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "kompilatorn kan anta att adressen till %qD aldrig kommer att vara NULL"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "bitvis operation mellan olika uppräkningstyper %qT och %qT"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "bitvis konvertering mellan olika uppräkningstyper %qT och %qT bör undvikas"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "aritmetik mellan olika uppräkningstyper %qT och %qT"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "aritmetik mellan olika uppräkningstyper %qT och %qT bör undvikas"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "jämförelse av uppräkningstypen %qT med flyttalstypen %qT"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "jämförelse av flyttalstypen %qT med uppräkningstypen %qT"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr "jämförelse av uppräkningstypen %qT med flyttalstypen %qT är föråldrad"
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr "jämförelse av flyttalstypen %qT med uppräkningstypen %qT bör undvikas"
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr "aritmetik mellan uppräkningstypen %qT och flyttalstypen %qT"
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "aritmetik mellan flyttalstypen %qT och uppräkningstypen %qT"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr "aritmetik mellan uppräkningstypen %qT och flyttalstypen %qT är föråldrad"
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr "aritmetik mellan flyttalstypen %qT och uppräkningstypen %qT är föråldrad"
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "antar typkonvertering till %qT från överlagrad funktion"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "NULL använd i aritmetik"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ förbjuder jämförelse mellan pekare och heltal"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "operandtyper är %qT och %qT"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr "trevägsjämförelse av vektorer"
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "ordningsjämförelse av pekare med heltalet noll (%qT och %qT)"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, gcc-internal-format
 msgid "unordered comparison on non-floating-point argument"
 msgstr "oordnad jämförelse av argument som inte är flyttal"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "implicit konvertering från %qH till %qI för att matcha den andra operanden i binärt uttryck"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "ogiltiga operander av typ %qT och %qT till binär %qO"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ förbjuder användning av pekare av typ %<void *%> i subtraktion"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ förbjuder användning av pekare till en funktion i subtraktion"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ förbjuder användning av pekare till en metod i subtraktion"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "ogiltig användning av en pekare till en ofullständig typ i pekararitmetik"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr "tar adressen till konstrueraren %qD"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr "tar adressen till destrueraren %qD"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "ogiltig användning av %qE för att skapa en pekare-till-medlem-funktion"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  ett kvalificerat id krävs"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "parenteser runt %qE kan inte användas för att skapa en pekare-till-medlem-funktion"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ förbjuder att ta adressen till en okvalificerad eller parentetiserad icke-statisk medlemsfunktion för att skapa en pekare till en medlemsfunktion.  Säg %<&%T::%D%>"
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO C++ förbjuder att ta adressen till en okvalificerad eller parentetiserad icke-statisk medlemsfunktion för att skapa en pekare till en explicit objektmedlemsfunktion"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ förbjuder att ta adressen till en bunden medlemsfunktion för att skapa en pekare till medlemsfunktion.  Säg %<&%T::%D%>"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ förbjuder att ta adressen till en bunden medlemsfunktion för att skapa en pekare på en explicit objektmedlemsfunktion"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "en pekare på en explicit objektmedlemsfunktion kan bara skapas med %<&%T::%D%>"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, gcc-internal-format
 msgid "taking address of rvalue"
 msgstr "tar adress till ett r-värde"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ förbjuder att ta adressen till funktionen %<::main%>"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "kan inte skapa pekare till referensmedlem %qD"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "försök att ta adressen till bitfält"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "%<~%> på ett uttryck av typen %<bool%>"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr "tänkte du använda logiskt icke (%<!%>)?"
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ förbjuder ökning av enum"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ förbjuder minskning av enum"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "det går inte att öka en pekare på en ofullständig typ %qT"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "det går inte att minska en pekare på en ofullständig typ %qT"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ förbjuder ökning av pekare på typ %qT"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ förbjuder minskning av pekare på typ %qT"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr "%qs-uttryck av en %<volatile%>-kvalificerad typ bör undvikas"
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr "användning av en operand av typen %qT i %<operator--%> är förbjudet"
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr "användning av en operand av typen %qT i %<operator++%> är förbjudet i C++17"
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr "användning av en operand av typen %qT i %<operator++%> bör undvikas"
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "kan inte ta adressen till %<this%>, som är ett rvalue-uttryck"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "adress till explicit registervariabel %qD begärd"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "adress begärd till %qD, som är deklarerad %<register%>"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "listinitierare för en typ som inte är en klass får inte vara inom parenteser"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "uttryckslista behandlas som sammansatt uttryck i initierare"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "uttryckslista behandlas som sammansatt uttryck i medlemsinitierare"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "uttryckslista behandlas som sammansatt uttryck i funktionstypkonvertering"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "uttryckslistan %s behandlas som sammansatt uttryck"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr "ingen kontext för att lösa upp typen på %qE"
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "konvertering från typ %qT till typ %qT slänger bort kvalificerare"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "%<static_cast%> från typ %qT till typ %qT slänger bort kvalificerare"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "%<reinterpret_cast%> från typ %qT till typ %qT slänger bort kvalificerare"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "oanvändbar konvertering till typen %q#T"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, gcc-internal-format
 msgid "type qualifiers ignored on cast result type"
 msgstr "typkvalificerare ignoreras för typkonverterings resultattyp"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, gcc-internal-format
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "ogiltig %<static_cast%> från typ %qT till typ %qT"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "returtypen %qT är ofullständig"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 msgid "converting from %qH to %qI"
 msgstr "konvertering från %qH till %qI"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, gcc-internal-format
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "ogiltig typkonvertering av ett pr-värdeuttryck av typ %qT till typ %qT"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 msgid "cast from %qH to %qI loses precision"
 msgstr "konvertering från %qH till %qI förlorar precision"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr "konvertering mellan inkompatibla funktionstyper från %qH till %qI"
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "typkonvertering mellan inkompatibla pekare till medlemstyper från %qH till %qI"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "typkonvertering från %qH till %qI ökar kravet på justering för måltypen"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "typkonvertering mellan pekare-till-funktion och pekare-till-objekt stödjs villkorligt"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "ogiltig konvertering från typ %qT till typ %qT"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "ogiltig användning av %<const_cast%> med typ %qT, som inte är en pekare, referens, eller pekare-till-datamedlem-typ"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "ogiltig användning av %<const_cast%> med typ %qT, som är en pekare eller referens till en funktionstyp"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, gcc-internal-format
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "ogiltig %<const_cast%> av ett rvärde av typ %qT till typ %qT"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, gcc-internal-format
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "ogiltig %<const_cast%> från typ %qT till typ %qT"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ förbjuder typkonvertering till en vektortyp %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "ogiltig konvertering till funktionstyp %qT"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, gcc-internal-format
 msgid "moving %qE of type %qT to itself"
 msgstr "flyttar %qE av typen %qT till sig själv"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr "ta bort anrop av %<std::move%>"
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  i beräkningen av %<%Q(%#T, %#T)%>"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr "tilldelning till en vektor från en initierarlista"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "inkompatibla typer i tilldelning av %qT till %qT"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "vektor använd som initierare"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "ogiltig vektortilldelning"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   i konvertering av pekare till medlemsfunktion"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "konvertering av pekare till medlem via virtuell bas %qT"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   i konvertering av pekare till medlem"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "ogiltig konvertering till typ %qT från typ %qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "det går inte att konvertera %qH till %qI i standardargument"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "det går inte att konvertera %qH till %qI när argument skickas"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "det går inte att konvertera %qH till %qI i initiering"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 msgid "cannot convert %qH to %qI in return"
 msgstr "det går inte att konvertera %qH till %qI i retur"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "det går inte att konvertera %qH till %qI i tilldelning"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "parameter %qP till %qD kan vara en kandidat för ett formatattribut"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr "parameter kan vara en kandidat för ett formatattribut"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "målet för konvertering kan vara en kandidat för ett formatattribut"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "målet för initialisering kan vara en kandidat för ett formatattribut"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "vänsterhandssida av tilldelning kan vara en kandidat för ett formatattribut"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "när argument %P till %qD skickades"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "returnerar referens till en temporär"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, gcc-internal-format
 msgid "returning pointer to temporary"
 msgstr "returnerar pekare på en temporär"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr "att returnera en temporär %<initializer_list%> utökar inte livslängden på den underliggande vektorn"
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr "referens till lokal variabel %qD returnerad"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr "att returnera en lokal %<initializer_list%>-variabel %qD utökar inte livslängden på den underliggande vektorn"
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr "adressen till etiketten %qD returnerad"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr "adress till lokal variabel %qD returnerad"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr "att flytta ett temporärobjekt förhindrar att kopiering undviks"
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr "att flytta ett lokalt objekt i en retursats förhindrar att kopiering undviks"
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr "redundant förflyttning i retursats"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr "redundant förflyttning i initiering"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "returnerar ett värde från en destruerare"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "det går inte att returnerar från en hanterare i ett funktions-try-block eller en konstruerare"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "returnerar ett värde från en konstruerare"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "return-sats utan värde i funktion som returnerar %qT"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, gcc-internal-format
 msgid "returning initializer list"
 msgstr "returnerar en initierarlista"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "inkonsistenta typer %qT och %qT härledda för lambda-returtypen"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "inkonsistent härledning för auto-returtyp: %qT och sedan %qT"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr "return-sats med ett värde i funktion som returnerar %qT"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%> får inte returnera NULL om den inte är deklarerad %<throw()%> (eller %<-fcheck-new%> är aktivt)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr "utelämnar inte kopiering vid retur från %qD"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr "utelämnar inte kopiering vid retur i %qD"
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, gcc-internal-format
 msgid "using rvalue as lvalue"
 msgstr "använder r-värde som l-värde"
@@ -66317,155 +66355,155 @@ msgstr "överlagrad funktion utan typinformation från sammanhanget"
 msgid "insufficient contextual information to determine type"
 msgstr "otillräcklig sammanhangsinformation för att avgöra typen"
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "konstruerarsyntax använd, men ingen konstruerare är deklarerad för typ %qT"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "%<constinit%>-variabeln %qD har inte en konstant initierare"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "avsmalnande konvertering av %qE från %qH till %qI är felaktig i C++11"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "avsmalnande konvertering av %qE från %qH till %qI"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr " uttrycket har ett konstant värde men är inte ett C++ konstant uttryck"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, gcc-internal-format
 msgid "initializer-string for %qT is too long"
 msgstr "initierarsträng för %qT är för lång"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr "att initiera en basklass av typ %qT resulterar i objektskivning"
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, gcc-internal-format
 msgid "remove %<{ }%> around initializer"
 msgstr "ta bort %<{ }%> runt initierare"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "det går inte att initiera aggregat med typ %qT med en sammansatt litteral"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "initierare saknas för medlem %qD"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "medlem %qD är oinitierad referens"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "medlem %qD med oinitierade referensfält"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "ordningen på designeraren för fält %qD stämmer inte med deklarationsordningen i %qT"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "inget fält %qD finns i unionen som initieras"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "indexvärde istället för fältnamn i unioninitierare"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "cirkulär pekardelegering detekterad"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "basoperanden till %<->%> har icke-pekartyp %qT"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "resultatet av %<operator->()%> ger annat än pekare"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "basoperanden till %<->%> är inte en pekare"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE kan inte användas som en medlemspekare eftersom den är av typen %qT"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "det går inte att applicera medlemspekare %qE på %qE, som är av typ %qT som inte är en klass"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "pekare-på-medlemstyp %qT är inkompatibel med objekttyp %qT"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "pekare-till-medlemsfunktionstyp %qT kräver ett r-värde"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "pekare-till-medlemsfunktiontyp %qT kräver ett l-värde"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "pekare-till-medlemsfunktiontyp %qT kräver ett l-värde före C++20"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "funktionell konvertering till vektortypen %qT"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "%<auto(x)%> kan inte begränsas"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<auto(x)%> är endast tillgängligt med %<-std=c++2b%> eller %<-std=gnu++2b%>"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "ogiltig värdeinitiering av referenstyper"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "anrop till funktion %qD som kastar ofullständig typ %q#T"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "anrop till funktion som kastar ofullständig typ %q#T"
@@ -67443,7 +67481,7 @@ msgstr "BOZ-litteralkonstanten vid %L kan inte vara ett aktuellt argument till %
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "Argument till %qs vid %L och %L kan inte båda vara litterala BOZ-konstanter"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr "Felaktig användning av en BOZ-litteralkonstant vid %L"
@@ -68766,7 +68804,7 @@ msgstr "Felaktig INTENT-specifikation vid %C"
 msgid "deferred type parameter at %C"
 msgstr "fördröjd typparameter vid %C"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr "Skalärt INTEGER-uttryck förväntades vid %L"
@@ -68981,7 +69019,7 @@ msgstr "Komponenten %qs med CLASS vid %C måste vara allokerbar eller en pekare"
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "Vektorkomponent i post vid %C måste ha fördröjd form"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr "Komponenten %qs vid %C är redan deklarerad vid %L"
@@ -69782,7 +69820,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "Formell argumentlista förväntades i funktionsdefinitionen vid %C"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr "Attribut BIND(C) vid %L kan endast användas för variabler och common-block"
@@ -70589,12 +70627,12 @@ msgstr "identical_array_ref(): inkonsistenta dimensioner"
 msgid "are_identical_variables: Bad type"
 msgstr "are_identical_variables: Felaktig typ"
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr "Aktuellt INTENT(%s)-argument vid %L kan störa det aktuella argumentet vid %L."
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr "gfc_check_dependency: en EXPR_VARIABLE förväntades"
@@ -70842,273 +70880,273 @@ msgstr "Parameter %qs vid %L har inte deklarerats eller är en variabel, som int
 msgid "check_init_expr(): Unknown expression type"
 msgstr "check_init_expr(): Okänd uttryckstyp"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "Specifikationsfunktionen %qs vid %L kan inte vara en satsfunktion"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "Specifikationsfunktionen %qs vid %L kan inte vara en intern funktion"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr "Specifikationsfunktionen %qs vid %L måste vara PURE"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "Specifikationsfunktionen %qs vid %L får inte vara RECURSIVE"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "Attrappvariabeln %qs är inte tillåten i uttrycket vid %L"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "Attrappargumentet %qs vid %L får inte vara OPTIONAL"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "Attrappargumentet %qs vid %L får inte vara INTENT(OUT)"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "Variabeln %qs kan inte förekomma i uttrycket vid %L"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr "check_restricted(): Okänd uttryckstyp"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "Uttryck vid %L måste vara av INTEGER-typ, hittade %s"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "Funktionen %qs vid %L måste vara PURE"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "Uttryck vid %L måste vara skalärt"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr "optype_msgid-spill: %d"
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "Inkompatibla ordningar i %s (%d och %d) vid %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "Olika form för %s vid %L på dimension %d (%d och %d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr "Tilldelning till en LEN- eller KIND-part_ref vid %L tillåts inte"
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "%qs vid %L är inte ett VALUE"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr "Otillåten tilldelning till extern procedur vid %L"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "Inkompatibla ordningar %d och %d i tilldelning vid %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "Variabeltypen är OKÄND i tilldelning vid %L"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "NULL finns på högersidan i tilldelning vid %L"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "POINTER-värd funktion förekommer på högersidan av tilldelning vid %L"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr "litteral BOZ-konstant nära %L kan inte tilldelas till en %qs-variabel"
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr "Tilldelningen till en KIND- eller LEN-komponent i en parametriserad typ vid %L tillåts inte"
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "Inkompatibla typer i DATA-sats vid %L, försökte med konvertering av %s till %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "Pekartilldelningsmålet är inte en POINTER vid %L"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "%qs i pekartilldelningen vid %L kan inte vara ett l-värde eftersom det är en procedur"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "Begränsningsspecifikation för %qs förväntades vid %L"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Begränsningsspecifikation för %qs i pekartilldelning vid %L"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr "Steg får inte finnas vid %L"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr "Ordningsommappning kräver en lista av specifikationer %<undre-gräns : övre-gräns%> vid %L"
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr "En specifikation som lista av %<undre-gräns :%> eller lista av %<undre-gräns : övre-gräns%> förväntades vid %L"
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "Pekarobjektet vid %L kan inte ha ett co-index"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "Ogiltig procedurpekartilldelning vid %L"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "Funktionsresultatet %qs är ogiltigt i proc-mål i procedurpekartilldelning vid %L"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "Abstrakt gränssnitt %qs är ogiltigt i procedurpekartilldelning vid %L"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "Satsfunktion %qs är ogiltigt i procedurpekartilldelning vid %L"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Intern procedur %qs är ogiltigt i procedurpekartilldelning vid %L"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "Inbyggd %qs vid %L är ogiltigt i procedurpekartilldelning"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Den ej inbyggda elementära proceduren %qs är ogiltig i procedurpekartilldelning vid %L"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr "Det stämmer inte i procedurpekartilldelningen vid %L: anropskonventionen stämmer inte"
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "Gränssnitten stämmer inte överens i procedurpekartilldelning vid %L: %qs är inte en subrutin"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "Explicit gränssnitt krävs för komponenten %qs vid %L: %s"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "Explicit gränssnitt krävs för %qs vid %L: %s"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "Gränssnitten stämmer inte överens i procedurpekartilldelning vid %L: %s"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr "Procedurpekarmålet %qs vid %L måste vara antingen en inbyggd, värd, värd- eller användningsassocierad, refererad eller ha attributet EXTERNAL"
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "Pekartilldelningsmålet får inte vara en konstant vid %L"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr "Datapekarobjekt vid %L måste vara obegränsat polymorft, eller av en typ med attributet BIND eller SEQUENCE, för att vara kompatibel med ett obegränsat polymorft mål"
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "Olika typer i pekartilldelning vid %L, försökte med tilldelning av %s till %s"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "Olika sorters typparametrar i pekartilldelning vid %L"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "Olika ordning i pekartilldelning vid %L"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr "Målet för översättning av ordningen är mindre än storleken på pekaren (%ld < %ld) vid %L"
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr "Målet för översättning av målet måste ha ordning 1 eller vara enkelt sammanhängande vid %L"
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr "Målet för översättning av ordning är inte av ordning 1 vid %L"
@@ -71116,192 +71154,192 @@ msgstr "Målet för översättning av ordning är inte av ordning 1 vid %L"
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr "Datamålet vid %L får inte ha co-index"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "Måluttryck i pekartilldelning vid %L måste leverera ett pekarresultat"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr "Nollstor vektor detekterad vid %L där en entitet med attributet TARGET förväntades"
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "Målet för pekartilldelningen i initieraruttrycket har inte attributet TARGET vid %L"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "Varje index till målspecifikationen vid %L måste vara ett konstant uttryck"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr "Delsträngens start- och slutpunkter i målspecifikationen vid %L måste vara konstanta uttryck"
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "Pekartilldelningsmål är vare sig TARGET eller POINTER vid %L"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "Felaktigt mål i pekartilldelning i PURE-procedur vid %L"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "Pekartilldelning med vektorindexering på högersidan vid %L"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "Pekartilldelningsmålet har attributet PROTECTED vid %L"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr "Tilldelning till sammanhängande pekare från icke sammanhängande mål vid %L"
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr "Pekare vid %L i pekartilldelning kan överleva pekarmålet"
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "Pekarinitieringsmål vid %L får inte vara ALLOCATABLE"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "Målet för pekarinitieringen vid %L måste ha attributet TARGET"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "Pekarinitieringsmål vid %L måste ha attributet SAVE"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr "Procedurpekarinitieringsmål vid %L får inte vara en procedurpekare"
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Intern procedur %qs är ogiltigt i procedurpekarinitiering vid %L"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Attrapproceduren %qs är ogiltig i procedurpekarinitiering vid %L"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr "generate_isocbinding_initializer(): felaktig iso_c_binding-typ, %<c_ptr%> eller %<c_funptr%> förväntades"
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "Fortran 2008: Pekarfunktioner i variabeldefinitionssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr "Icke variabelt uttryck i variabeldefinitionssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr "Namngiven konstant %qs i variabeldefinitionssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "%qs i variabeldefinitionssammanhang (%s) vid %L är inte en variabel"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr "Icke-POINTER i pekarassociationssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr "Typen är oåtkomlig i variabeldefinitionssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr "LOCK_TYPE i variabeldefinitionssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr "LOCK_EVENT i variabeldefinitionssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "%qs-parameterfråga för %qs i variabeldefinitionssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr "Attrappargument %qs med INTENT(IN) i pekarassociationssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr "Attrappargument %qs med INTENT(IN) i variabeldefinitionssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "Variabeln %qs är PROTECTED och kan inte förekomma i ett pekarassociationssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "Variabeln %qs är PROTECTED och kan inte förekomma i ett variabeldefinitionssammanhang (%s) vid %L"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "Variabeln %qs kan inte förekomma i ett variabeldefinitionssammanhang (%s) vid %L i en PURE-procedur"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr "%qs vid %L som är associerad med vektorindexerat mål kan inte användas i ett variabeldefinitionssammanhang (%s)"
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr "%qs vid %L som är associerad med uttryck kan inte användas i ett variabeldefinitionssammanhang (%s)"
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr "%qs vid %L som är associerad med ett pekarfunktionsmål används i ett variabeldefinitionssammanhang (%s)"
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "Associationsnamn %qs kan inte förekomma i ett variabeldefinitionssammanhang (%s) vid %L eftersom dess mål vid %L inte heller kan"
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr "Element med samma värde vid %L och %L i vektorindex i ett variabeldefinitionssammanhang (%s)"
@@ -71322,8 +71360,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr "Otillåtet id i copy_walk_reduction_arg"
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "Skapar vektortemporär vid %L"
@@ -71403,7 +71441,7 @@ msgstr "Variabeln %qs vid %L satt till odefinierad inuti slingan som börjar vid
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "Variabeln %qs vid %L ej definierbar inuti slingan som börjar vid %L är argument INTENT(INOUT) till funktionen %qs"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr "Kod för omallokering av den allokerbara vektorn vid %L kommer läggas till"
@@ -71538,12 +71576,12 @@ msgstr "Första argumentet till definierad tilldelning vid %L måste vara INTENT
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "Andra argumentet av definierad tilldelning vid %L måste vara INTENT(IN)"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "Första argumentet till operatorgränssnitt vid %L måste vara INTENT(IN)"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "Andra argumentet till operatorgränssnitt vid %L måste vara INTENT(IN)"
@@ -72413,7 +72451,7 @@ msgstr "Konvertering från %s till %s vid %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr "Kan inte konvertera %s till %s vid %L"
@@ -72964,7 +73002,7 @@ msgstr "NAMELIST %qs i READ-sats vid %L innehåller symbolen %qs som inte får s
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr "NAMELIST-objekt %qs i namnlistan %qs vid %L är polymorf och behöver en definierad input/output-procedur"
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr "NAMELIST-objektet %qs i namnlistan %qs vid %L med ALLOCATABLE- eller POINTER-komponenter"
@@ -73130,6 +73168,11 @@ msgstr "identifierarspill: %d"
 msgid "check_charlen_present(): length not set"
 msgstr "check_charlen_present(): längden inte satt"
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr "ATTGÖRA: obegränsad polymorf MOLD i inbyggd TRANSFER vid %L"
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -73531,7 +73574,7 @@ msgstr "STOP-koden vid %L måste vara standard tecken-KIND=%d"
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "STOP-kod vid %L måste vara standard heltal KIND=%d"
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr "QUIET-specificerare vid %L måste vara en skalär LOGICAL"
@@ -74054,82 +74097,82 @@ msgstr "parsningsfel i SELECT TYPE-sats vid %C"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr "Väljare i SELECT TYPE vid %C är inte en namngiven variabel, använd associationsnamn =>"
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr "SELECT RANK-sats vid %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr "Selektorn SELECT RANK vid %C måste vara en variabel med antagen ordning"
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "parsningsfel i SELECT RANK-sats vid %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "Oväntad CASE-sats vid %C"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "Syntaxfel i CASE-specifikation vid %C"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "Oväntad TYPE IS-sats vid %C"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr "Typspecifikationen skall inte specificera en sekvens härledd typ eller en typ med attributet BIND i SELECT TYPE vid %C [F2003:C815]"
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr "Alla LEN-typparametrar i satsen TYPE IS vid %C måste vara ASSUMED"
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "Syntaxfel i TYPE IS-specifikation vid %C"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "Syntaxfel i CLASS IS-specifikation vid %C"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected RANK statement at %C"
 msgstr "Oväntad RANK-sats vid %C"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "SELECT RANK CASE-uttrycket vid %C måste vara en skalär heltalskonstant"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr "Värdet på SELECT RANK CASE-uttrycket vid %C får inte vara mindre än noll eller större än %d"
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr "Syntaxfel i RANK-specifikation vid %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "ELSEWHERE-sats vid %C inte innesluten i WHERE-block"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr "Etiketten %qs vid %C stämmer inte med WHERE-etikett %qs"
@@ -75546,8 +75589,8 @@ msgstr "ORDERED-klausulparameter är mindre än COLLAPSE vid %L"
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr "en ORDER-klausul får inte användas tillsammans med ORDERED vid %L"
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "IF-klausul vid %L kräver ett skalärt LOGICAL-uttryck"
@@ -77911,12 +77954,12 @@ msgstr "Den inbyggda %qs deklarerad INTRINSIC vid %L är inte tillgänglig i den
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "Icke RECURSIVE procedur %qs från modulen %qs anropar kanske sig själv rekursivt i proceduren %qs. Deklarera den RECURSIVE eller använd %<-frecursive%>"
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "Icke RECURSIVE procedur %qs vid %L anropar kanske sig själv rekursivt.  Deklarera den RECURSIVE eller använd %<-frecursive%>"
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "Etikett %d som refereras vid %L är aldrig definierad"
@@ -78036,7 +78079,7 @@ msgstr "Saknad explicit deklaration med attributet EXTERNAL för symbolen %qs vi
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "Funktionen %qs vid %L har ingen IMPLICIT-typ; menade du %qs?"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr "Funktionen %qs vid %L har ingen IMPLICIT-typ"
@@ -78435,278 +78478,283 @@ msgstr "Variabeln %s med antagen typ vid %L skall inte ha en subobjektreferens"
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "Variabeln %s med antagen ordning vid %L skall inte ha en subobjektreferens"
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "Den skalära variabeln %qs har en vektorreferens vid %L"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr "Variabel %qs, använd i ett specifikationsuttryck, refereras vid %L före ENTRY-satsen i vilken den är en parameter"
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr "Variabel %qs används vid %L före ENTRY-satsen i vilken den är en parameter"
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr "Polymorft subobjekt till co-indexerat objekt vid %L"
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr "Co-indexerat objekt med polymorf allokerbar delkomponent vid %L"
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr "Att använda variabeln %qs vid %L bör undvikas"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid array reference at %L"
+msgstr "Felaktig vektorreferens vid %L"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr "%qs vid %L är värdassocierad vid %L in i en innesluten procedur med en intern procedur med samma namn"
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr "Fel i typbundet anrop vid %L"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "Skickat objekt vid %L måste vara skalär"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr "Basobjekt för procedurpekarkomponentanrop vid %L är av ABSTRACT typ %qs"
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr "Basobjekt för typbundet proceduranrop vid %L är av ABSTRACT typ %qs"
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "Basobjekt för typbundet NOPASS-proceduranrop vid %L måste vara skalärt"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr "Hittade ingen matchande specifik bindning för anropet till GENERIC %qs vid %L"
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "%qs vid %L skulle vara en SUBROUTINE"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr "%qs vid %L skulle vara en FUNCTION"
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "gfc_resolve_expr(): Felaktig uttryckstyp"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s vid %L måste vara en skalär"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "%s vid %L måste vara ett heltal"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s vid %L måste vara INTEGER"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "Steguttryck i DO-slinga vid %L får inte vara noll"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr "DO-slinga vid %L kommer köras noll gånger"
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr "DO-slingan vid %L är odefinierad eftersom den spiller över"
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr "DO-slingan vid %L är odefinierad eftersom den spiller under"
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "FORALL-indexnamn vid %L måste vara en skalär INTEGER"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "FORALL-slututtryck vid %L måste vara en skalär INTEGER"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "FORALL-slututtryck vid %L måste vara en skalär INTEGER"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "FORALL-steguttryck vid %L måste vara en skalär %s"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "FORALL-steguttryck vid %L får inte vara noll"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "FORALL-index %qs får inte förekomma i triplettspecifikation vid %L"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "Allokeringsobjekt vid %L måste vara ALLOCATABLE eller en POINTER"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr "Co-indexerat allokerbart objekt vid %L"
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr "Källuttryck vid %L måste vara skalärt eller ha samma ordning som allokeringsobjektet vid %L"
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr "Källuttryck vid %L och allokeringsobjekt vid %L måste ha samma form"
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr "Typen på entiteten vid %L är typinkompatibel med källuttrycket vid %L"
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr "Allokeringsobjektet vid %L och källuttrycket vid %L skall ha samma sorts typparameter"
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr "Källuttrycket vid %L skall varken vara av typen LOCK_TYPE eller ha en LOCK_TYPE-komponent om det allokerbara objektet vid %L är en co-vektor"
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr "Källuttrycket vid %L skall varken vara av typen EVENT_TYPE eller ha en EVENT_TYPE-komponent om det allokerbara objektet vid %L är en co-vektor"
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr "Allokering %s av ABSTRACT bastyp vid %L behöver en typspecifikation eller source-uttryck"
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr "Allokerar %s vid %L med typspecifikation kräver samma teckenlängdsparameter som i deklarationen"
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "Vektorspecifikation krävs i ALLOCATE-sats vid %L"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "Vektorspecifikation eller vektorvärt SOURCE=-uttryck krävs i ALLOCATE-sats vid %L"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "Co-vektorspecifikation krävs i ALLOCATE-sats vid %L"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "Felaktig co-vektorspecifikation i ALLOCATE-sats vid %L"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr "Övre cobound är mindre än den lägre cobound vid %L"
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr "Övre cobound är mindre än lägre cobound av 1 vid %L"
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "Felaktig vektorspecifikation i ALLOCATE-sats vid %L"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "%qs får inte förekomma i vektorspecifikationen vid %L i samma ALLOCATE-sats där den själv allokeras"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "%<*%> förväntades i co-indexspecifikation i ALLOCATE-sats vid %L"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "Statvariabel vid %L måste vara en INTEGER-variabel"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "Statvariabel vid %L skall inte %s:as i samma %s-sats"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr "ERRMSG vid %L är oanvändbart utan en STAT-tagg"
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "ERRMSG-variabeln vid %L måste vara en skalär standard-CHARACTER-variabel"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr "Errmsg-variabel vid %L skall inte %s:as i samma %s-sats"
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr "Allokeringsobjekt vid %L förekommer också vid %L"
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr "Allokeringsobjekt vid %L är underobjekt till objekt vid %L"
@@ -78715,284 +78763,284 @@ msgstr "Allokeringsobjekt vid %L är underobjekt till objekt vid %L"
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "CASE-etikett vid %L överlappar med CASE-etikett vid %L"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "uttryck i CASE-sats vid %L måste vara av typ %s"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "Uttryck i CASE-sats vid %L måste ha sort %d"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "Uttryck i CASE-sats vid %L måste vara skalärt"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "Valuttryck i beräknad-GOTO-sats vid %L måste vara ett skalärt heltalsuttryck"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "Argument till SELECT-sats vid %L kan inte vara %s"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "Argumentet till SELECT-satsen vid %L måste vara ett skalärt uttryck"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "Uttryck i CASE-sats vid %L ligger inte i intervallet %s"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "DEFAULT CASE vid %L får inte följas av ett andra DEFAULT CASE vid %L"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "Logiskt intervall CASE-sats vid %L är inte tillåtet"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "Konstant logiskt värde i CASE-sats upprepas vid %L"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "Intervallspecifikationen vid %L kan aldrig matchas"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "Logiskt SELECT CASE-block vid %L har mer än två fall"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "Den associerande entiteten %qs vid %L är en procedurpekare"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "Den härledda typen %qs får inte användas som en variabel vid %L"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "Den associerande entiteten %qs vid %L är ett procedurnamn"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr "Det associerande selector-uttrycket vid %L ger en procedur"
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr "Selektorn vid %L får inte vara NULL()"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr "Selektorn vid %L har ingen typ"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr "Associationsnamn %qs vid %L används som en vektor"
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr "CLASS-väljare vid %L behöver en temporär som inte är implementerad ännu"
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "Selektorer skall vara polymorfiska i SELECT TYPE-sats vid %L"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr "Selektorn vid %L får inte vara co-indexerad"
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "TYPE IS vid %L överlappar med TYPE IS vid %L"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr "Härledd typ %qs vid %L måste vara utökningsbar"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "Härledd typ %qs vid %L måste vara en utökning av %qs"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "Oväntad inbyggd typ %qs vid %L"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr "Typspecifikationen vid %L skall ange att varje längdtypparameter är antagen"
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr "Dubbelt CLASS IS-block i SELECT TYPE-sats vid %L"
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr "RANK DEFAULT vid %L upprepas vid %L"
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr "RANK (*) vid %L upprepas vid %L"
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr "RANK (%i) vid %L upprepas vid %L"
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr "RANK (*) vid %L får inte användas med en pekare eller allokerbar selector vid %L"
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Ogiltigt sammanhang för inbyggd NULL () vid %L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "DTIO %s-procedur vid %L måste vara rekursiv"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr "Dataöverföringselementet vid %L kan inte vara polymorft om det inte behandlas av en definierad input/output-procedur"
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "Dataöverföringselementet vid %L kan inte ha POINTER-komponenter om det inte behandlas av en definierad input/output-procedur"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "Dataöverföringselement vid %L får inte ha procedurpekarkomponenter"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "Dataöverföringselementet vid %L kan inte ha ALLOCATABLE-komponenter om det inte behandlas av en definierad input/output-procedur"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "Dataöverföringselement vid %L får inte ha PRIVATE-komponenter"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "Dataöverföringselementet vid %L kan inte ha PRIVATE-komponenter om det inte behandlas av en definierad input/output-procedur"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "Dataöverföringselement vid %L får inte vara en full referens till en vektor med antagen storlek"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "Låsvariabel vid %L måste vara en skalär av typen LOCK_TYPE"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "Händelsevariabeln vid %L måste vara en skalär av typen EVENT_TYPE"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "Händelsevariabelargumentet vid %L måste vara en co-vektor eller co-indexerat"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "Händelsevariabelargumentet vid %L måste vara en co-vektor men inte co-indexerat"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "STAT=-argumentet vid %L måste vara en skalär INTEGER-variabel"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "ERRMSG=-variabeln vid %L måste vara en skalär CHARACTER-variabel"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "ACQUIRED_LOCK=-argumentet vid %L måste vara en skalär LOGICAL-variabel"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "UNTIL_COUNT=-argumentet vid %L måste vara ett skalärt INTEGER-uttryck"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "Bildmängdsargument vid %L måste vara ett skalärt eller INTEGER-uttryck av ordning 1"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "Bildmängdsargument vid %L måste vara mellan 1 och num_images()"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "Sats vid %L är inte en giltig grenmålssats för grensatsen vid %L"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr "Gren vid %L kan orsaka en oändlig slinga"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr "GOTO-sats vid %L lämnar CRITICAL-konstruktion för etikett vid %L"
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr "GOTO-sats vid %L lämnar DO CONCURRENT-konstruktion för etikett vid %L"
@@ -79000,212 +79048,212 @@ msgstr "GOTO-sats vid %L lämnar DO CONCURRENT-konstruktion för etikett vid %L"
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "Etiketten vid %L är inte i samma block som GOTO-satsen vid %L"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "WHERE-mask vid %L har inkonsistent form"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "WHERE-tilldelningsmål vid %L har inkonsistent form"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr "Ej ELEMENTAL användardefinierad tilldelning i WHERE vid %L"
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "Ej stödd sats inuti WHERE vid %L"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "Tilldelning till en FORALL-indexvariabel vid %L"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "FORALL med index %qs används inte på vänster sida av en tilldelning vid %L och kan därför orsaka multipla tilldelningar till detta objekt"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr "FORALL-konstruktion vid %L"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "FORALL-indexnamn vid %L måste vara en skalär variabel av heltalstyp"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "En yttre FORALL-konstruktion har redan ett index med detta namn %L"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "WHERE/ELSEWHERE-klausul vid %L kräver en LOGICAL-vektor"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr "gfc_resolve_blocks(): Felaktig blocktyp"
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "Variabeln i den ordinära tilldelningen vid %L är en procedurpekarkomponent"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "CHARACTER-uttryck kommer att huggas av i tilldelning (%wd/%wd) vid %L"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "Co-indexerat uttryck vid %L är tilldelat till en härledd typvariabel med en POINTER-komponent i en PURE-procedur"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr "I ett rent underprogram skall inte ett INTENT(IN) attrappargument användas som uttrycket vid %L av en inbyggd tilldelningssats i vilken variabeln är av an härledd typ om den härledda typen har en pekarkomponent på någon nivå av komponentvalet."
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "Tilldelning till en co-indexerad variabel vid %L i en PURE-procedur"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr "Tilldelning till en polymorf co-vektor vid %L är inte tillåtet"
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "Tilldelning till en allokerbar polymorf variabel vid %L"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr "Tilldelning till en allokerbar polymorf variabel vid %L kräver %<-frealloc-lhs%>"
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr "Ej allokerbar variabel får inte vara polymorf i inbyggd tilldelning vid %L - kontrollera att det finns en matchande specifik subrutin för operatorn %<=%>"
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr "Co-indexerad variabel får inte ha en allokerbar yttersta komponent i tilldelningen vid %L"
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr "ATT GÖRA: typbegränsad definierad tilldelning vid %L inte gjord för att multipla delvektorreferenser skulle uppträda i intermediära uttryck."
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr "Procedurpekartilldelning vid %L"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "Funktionsresultatet på vänstersidan av tilldelningen vid %L måste ha attributet pointer."
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "TEAM-argumentet till %qs vid %L måste vara ett skalärt uttryck av typen TEAM_TYPE"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "TEAM NUMBER-argumentet till FORM TEAM vid %L måste vara en skalär INTEGER"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "ASSIGNED GOTO-sats vid %L kräver en skalär INTEGER-variabel"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "Variabeln %qs har inte tilldelats någon måletikett vid %L"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "Alternativ RETURN-sats vid %L kräver en SCALAR-INTEGER-returspecificerare"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "Inbyggd tilldelning förväntades i OMP WORKSHARE vid %L"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "ASSIGN-sats vid %L kräver en skalär standard-INTEGER-variabel"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr "Ogiltig NULL vid %L"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "Aritmetisk IF-sats vid %L kräver ett skalärt REAL- eller INTEGER-uttryck"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr "gfc_resolve_code(): Inget uttryck i DO WHILE"
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "Avslutsvillkor i DO WHILE-slinga vid %L måste vara ett skalärt LOGICAL-uttryck"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "FORALL-maskklausul vid %L kräver ett skalärt LOGICAL-uttryck"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_resolve_code(): Felaktig satskod"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "Att använda parametern %qs deklarerad vid %L bör undvikas"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "Variabeln %qs med bindningsetiketten %qs vid %L använder samma globala identifierare som en entitet vid %L"
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr "Variabeln %qs från modulen %qs med bindningsetikett %qs vid %L använder samma globala identifierare som entiteten vid %L från modulen %qs"
@@ -79213,999 +79261,999 @@ msgstr "Variabeln %qs från modulen %qs med bindningsetikett %qs vid %L använde
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "Proceduren %qs med bindningsetiketten %qs vid %L använder samma globala identifierare som entiteten vid %L"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "Stränglängden vid %L är för stor"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "Den allokerbara vektorn %qs vid %L måste ha en fördröjd form eller antagen ordning"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "Skalärt objekt %qs vid %L får inte vara ALLOCATABLE"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "Vektorpekaren %qs vid %L måste ha en fördröjd form eller antagen ordning"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "Vektor %qs vid %L kan inte ha en fördröjd form"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr "Typen %qs på CLASS-variabeln %qs vid %L är inte utvidgningsbar"
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr "CLASS-variabel %qs vid %L måste vara en attrapp, allokerbar eller pekare"
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr "Typen %qs kan inte vara värdassocierad vid %L för att den blockeras av ett inkompatibelt objekt med samma namn deklarerat vid %L"
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr "Implicerad SAVE för modulvariabeln %qs vid %L, behövs på grund av standardinitieringar"
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "Enheten %qs vid %L har en fördröjd typparameter och kräver antingen attributet POINTER eller ALLOCATABLE"
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "Modul- eller huvudprogramvektorn %qs vid %L måste ha konstant form"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "Entitet med antagen teckenlängd vid %L måste vara ett attrappargument eller en PARAMETER"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr "%qs vid %L måste ha konstant teckenlängd i detta sammanhang"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "COMMON-variabeln %qs vid %L måste ha konstant teckenlängd"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "Allokerbar %qs vid %L kan inte ha en initierare"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr "Extern %qs vid %L kan inte ha en initierare"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "Attrapp-%qs vid %L kan inte ha en initierare"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "Inbyggd %qs vid %L kan inte ha en initierare"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "Funktionsresultat %qs vid %L kan inte ha en initierare"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "Automatisk vektor %qs vid %L kan inte ha en initierare"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr "%s vid %L"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "Teckenvärd satsfunktion %qs vid %L måste ha konstant längd"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "%qs är av en PRIVATE-typ och kan inte vara ett attrappargument till %qs, som är PUBLIC vid %L"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr "Proceduren %qs i PUBLIC-gränssnittet %qs vid %L tar attrappargument för %qs som är PRIVATE"
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "Funktion %qs vid %L kan inte ha en initierare"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr "Externt objekt %qs vid %L kan inte ha en initierare"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "ELEMENTAL-funktion %qs vid %L måste ha ett skalärt resultat"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "Satsfunktionen %qs vid %L får inte ha attributet pointer eller allocatable"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "CHARACTER(*)-funktion %qs vid %L kan inte ha vektorvärde"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "CHARACTER(*)-funktion %qs vid %L kan inte ha pekarvärde"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "CHARACTER(*)-funktion %qs vid %L kan inte vara pure"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "CHARACTER(*)-funktion %qs vid %L kan inte vara rekursiv"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "CHARACTER(*)-funktionen %qs vid %L"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "Procedurpekaren %qs vid %L skall inte vara elementär"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "Attrapprocedur %qs vid %L skall inte vara elementär"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr "Funktionens resultatvariabel %qs vid %L för den elementära funktionen %qs skall inte ha ett attribut ALLOCATABLE eller POINTER"
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "PROCEDURE-attribut i konflikt med SAVE-attribut i %qs vid %L"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "PROCEDURE-attribut i konflikt med INTENT-attribut i %qs vid %L"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "PROCEDURE-attribut i konflikt med RESULT-attribut i %qs vid %L"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "EXTERNAL-attribut i konflikt med FUNCTION-attribut i %qs vid %L"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr "Procedurpekarresultat %qs vid %L saknar pekarattributet"
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "ELEMENTAL-attribut stämmer inte mellan MODULE PROCEDURE vid %L och dess gränssnitt i %s"
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "PURE-attribut stämmer inte mellan MODULE PROCEDURE vid %L och dess gränssnitt i %s"
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "RECURSIVE-attribut stämmer inte mellan MODULE PROCEDURE vid %L och dess gränssnitt i %s"
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr "%s mellan MODULE PROCEDURE-deklarationen i MODULE %qs och deklarationen vid %L i (SUB)MODULE %qs"
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr "Gränssnittet för %qs vid %L måste vara explicit"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "FINAL-procedur %qs vid %L är inte en SUBROUTINE"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "FINAL-procedur vid %L måste ha precis ett argument"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "Argument till FINAL-procedur vid %L måste ha typen %qs"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr "FINAL-procedur vid %L med argument med antagen ordning måste vara den enda avslutaren med samma sort/typ (F2018: C790)"
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "Argument till FINAL-procedur vid %L får inte vara en POINTER"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "Argument till FINAL-procedur vid %L får inte vara ALLOCATABLE"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "Argument till FINAL-procedur vid %L får inte vara OPTIONAL"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "Argument till FINAL-procedur vid %L får inte vara INTENT(OUT)"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "Ickeskalär FINAL-procedur vid %L skulle ha argument med antagen form"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "FINAL-procedur %qs deklarerad vid %L har samma ordning (%d) som %qs"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr "Endast vektor-FINAL-procedurer deklarerade för den härledda typen %qs definierade vid %L, föreslår även en skalär om inte en avslutare med antagen ordning har deklarerats"
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr "%qs och %qs kan inte blandad FUNCTION/SUBROUTINE för GENERIC %qs vid %L"
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr "%qs och %qs för GENERIC %qs vid %L är tvetydiga"
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr "Odefinierad specifik bindning %qs som mål för GENERIC %qs vid %L"
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr "GENERIC %qs vid %L måste ha som mål en specifik bindning, %qs är också GENERIC"
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr "GENERIC %qs vid %L kan inte åsidosätta en specifik bindning med samma namn"
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "Typbindningsoperator vid %L kan inte vara NOPASS"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "%qs måste vara en modulprocedur eller en extern procedur med ett explicit gränssnitt vid %L"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Proceduren %qs med PASS(%s) vid %L har inget argument %qs"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "Procedur %qs med PASS vid %L måste ha åtminstone ett argument"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "Ickepolymorfa attrappargument för pass-objekt till %qs vid %L"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "Argument %qs till %qs med PASS(%s) vid %L måste ha den härledda typen %qs"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "Argument %qs till %qs med PASS(%s) vid %L måste ha den parametriskt härledda typen %qs"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr "Alla parametrar av typen LEN i det skickade attrappargumentet %qs till %qs vid %L måste vara ASSUMED"
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "Skickat objekt-attrappargument till %qs vid %L måste vara skalärt"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "Skickat objekt-attrappargument till %qs vid %L får inte vara ALLOCATABLE"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "Skickat objekt-attrappargument till %qs vid %L får inte vara POINTER"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "Procedur %qs vid %L har samma namn som en komponent i %qs"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "Proceduren %qs vid %L har samma namn som den ärvd komponent i %qs"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr "Härledd typ %qs deklarerad vid %L måste vara ABSTRACT för att %qs är DEFERRED och inte åsidosatt"
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "Co-vektorkomponent %qs vid %L måste vara allokerbar med fördröjd form"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "Komponenten %qs vid %L av TYPE(C_PTR) eller TYPE(C_FUNPTR) får inte vara en co-vektor"
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr "Komponenten %qs vid %L med co-vektorkomponent skall skalär som inte är en pekare eller allokerbar"
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr "Component %qs vid %L har attributet CONTIGUOUS men är inte en vektorpekare"
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "Komponenten %qs med typen BIND(C) vid %L måste ha längden ett"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Procedurpekarkomponent %qs med PASS(%s) vid %L har inget argument %qs"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "Procedurpekarkomponent %qs med PASS vid %L måste ha åtminstone ett argument"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "Argument %qs till %qs med PASS(%s) vid %L måste ha den härledda typen %qs"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "Argument %qs till %qs med PASS(%s) vid %L måste vara skalärt"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "Argumentet %qs till %qs med PASS(%s) vid %L får inte ha attributet POINTER"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "Argumentet %qs till %qs med PASS(%s) vid %L får inte vara ALLOCATABLE"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "Komponent %qs i %qs vid %L har samma namn som en ärvd typbunden procedur"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "Teckenlängd på komponent %qs behöver vara ett konstant specifikationsuttryck vid %L"
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "Teckenlängdsuttrycket för komponenten %qs vid %L måste vara av typen INTEGER, hittade %s"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr "Teckenkomponent %qs av %qs vid %L med fördröjd längd måste vara en POINTER eller ALLOCATABLE"
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "komponenten %qs är en PRIVATE-typ och kan inte vara en komponent i %qs, som är PUBLIC vid %L"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr "Polymorf komponent %s vid %L i SEQUENCE- eller BIND(C)-typ %s"
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "Komponent %s av SEQUENCE-typ deklarerad vid %L har inte attributet SEQUENCE"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "Initierare som står i konflikt i unionen vid %L och %L"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr "Eftersom utvidgningen av %qs vid %L har en co-vektorkomponent, skall föräldratypen %qs också ha en"
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "Ej utvidgningsbar härledd typ %qs vid %L får inte vara ABSTRACT"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr "Den parametriserade typen %qs har inte någon komponent som motsvarar parametern %qs vid %L"
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr "Det generiska namnet %qs på funktionen %qs vid %L är samma namn som den härledda typen vid %L"
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "Härledd typ %qs vid %L har inte deklarerats"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "Vektor %qs med antagen storlek i namnlistan %qs vid %L är inte tillåtet"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr "NAMELIST-vektorobjektet %qs med antagen form i namnlistan %qs vid %L"
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr "NAMELIST-vektorobjektet %qs med icke-konstant form in namnlistan %qs vid %L"
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr "NAMELIST-vektorobjektet %qs med icke-konstant längd i namnlistan %qs vid %L"
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "NAMELIST-objekt %qs deklarerades PRIVATE och kan inte vara medlem av PUBLIC-namnlista %qs vid %L"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr "NAMELIST-objekt %qs har användningsassociativa PRIVATE-komponenter och kan inte vara medlem av namnlistan %qs vid %L"
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "NAMELIST-objekt %qs har PRIVATE-komponenter och kan inte vara medlem av PUBLIC-namnlista %qs vid %L"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "PROCEDURE-attribut i konflikt med NAMELIST-attribut i %qs vid %L"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "Parametervektor %qs vid %L kan inte ha automatisk eller fördröjd form"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "Implicit typad PARAMETER %qs vid %L matchar inte en senare IMPLICIT-typ"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "Inkompatibel härledd typ i PARAMETER vid %L"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "CLASS-variabeln %qs vid %L får inte ha attributet PARAMETER"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "Enheten %qs vid %L har en fördröjd LEN-parameter %qs och kräver antingen attributet POINTER eller ALLOCATABLE"
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr "AUTOMATIC-objektet %qs vid %L får inte ha attributet SAVE eller vara en variabel deklarerad i huvudprogrammet, en modul eller en submodul(F08/C513)"
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr "Objektet %qs vid %L med ASSUMED typparametrar måste vara en attrapp eller en SELECT TYPE-selektor(F08/4.2)"
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr "Ledsen, allocatable/pointer-komponenter i co-vektor av polymorf (CLASS)-typ vid %L stödjs inte"
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr "%<omp_all_memory%>, deklarerat vid %L, får endast användas i OpenMP-klausulen DEPEND"
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "Attributet PROTECTED står i konflikt med attributet EXTERNAL vid %L"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "Attributet PROCEDURE står i konflikt med attributet PROTECTED vid %L"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr "%qs vid %L har attributet CONTIGUOUS, men är inte en vektorpekare eller en vektor med antagen form eller antagen ordning"
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr "Felaktig specifikation för vektor med antagen storlek vid %L"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "Vektor med antagen storlek vid %L måste vara ett attrappargument"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "Vektor med antagen form vid %L måste vara ett attrappargument"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "Vektor med antagen ordning vid %L måste vara ett attrappargument"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr "Vektor med antagen ordning vid %L kan inte ha attributet VALUE eller CODIMENSION"
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "Symbol vid %L är inte en DUMMY-variabel"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr "%qs vid %L kan inte ha attributet VALUE eftersom det inte är ett attrappargument"
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "Teckenvärd attrappvariabel %qs vid %L med attributet VALUE måste ha konstant längd"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr "C-interoperativ teckenattrappvariabel %qs vid %L med attributet VALUE måste ha längd ett"
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "Den härledda typen %qs vid %L har typen %qs, som inte har definierats"
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr "Variabeln %s vid %L med attributet NO_ARG_CHECK skall vara ett attrappargument"
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr "Variabeln %s vid %L med attributet NO_ARG_CHECK skall ha typen TYPE(*) eller en numerisk inbyggd typ"
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Variabeln %s vid %L med attributet NO_ARG_CHECK får inte ha attributet ALLOCATABLE, CODIMENSION, POINTER eller VALUE"
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "Variabeln %s vid %L med attributet NO_ARG_CHECK får inte ha attributet INTENT(OUT)"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr "Variabeln %s vid %L med attributet NO_ARG_CHECK skall antingen vara en skalär eller en vektor med förmodad storlek"
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "Den antagna typen på variabeln %s vid %L är bara tillåten för attrappvariabler"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Variabeln ”%s” med antagen typ vid %L får inte ha attributet ALLOCATABLE, CODIMENSION, POINTER eller VALUE"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "Variabeln ”%s” med antagen typ vid %L får inte ha attributet INTENT(OUT)"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr "Variabeln %s med antagen typ vid %L får inte vara en vektor med explicit form"
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr "Variabel %qs vid %L kan inte vara BIND(C) eftersom den varken är ett COMMON-block eller deklarerad med räckvidd modulnivå"
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "BIND(C)-variabeln %qs vid %L måste ha längden ett"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "PUBLIC %s %qs vid %L har PRIVATE härledd typ %qs"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr "Variabeln %s vid %L av typen LOCK_TYPE eller med en delkomponent av typen LOCK_TYPE måste vara en co-vektor"
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr "Variabeln %s vid %L av typen EVENT_TYPE eller med en delkomponent av typen EVENT_TYPE måste vara en co-vektor"
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "INTENT(OUT)-attrappargumentet %qs vid %L har ASSUMED SIZE och kan därför inte ha en standardinitierare"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "Attrappargumentet %qs vid %L av LOCK_TYPE får inte vara INTENT(OUT)"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "Attrappargumentet %qs vid %L av EVENT_TYPE får inte vara INTENT(OUT)"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "Funktionsresultat %qs vid %L skall inte vara en co-vektor eller ha en co-vektorkomponent"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "Variabeln %qs vid %L av TYPE(C_PTR) eller TYPE(C_FUNPTR) får inte vara en co-vektor"
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr "Variabeln %qs vid %L med co-vektorkomponent skall vara en skalär som inte är en pekare eller allokerbar och inte en co-vektor"
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr "Variabeln %qs vid %L är en co-vektor och är inte ALLOCATABLE, SAVE eller ett attrappargument"
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "Co-vektorvariabeln %qs vid %L skall inte ha co-dimensioner med fördröjd form"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "Allokerbar co-vektorvariabel %qs vid %L måste ha en fördröjd form"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr "Variabeln %qs vid %L är INTENT(OUT) och kan alltså inte vara en allokerbara co-vektor eller har co-vektorkomponenter"
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "Co-attrappvariabeln %qs vid %L är inte tillåten i BIND(C)-proceduren %qs"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "LOGICAL-attrappargumentet %qs vid %L med icke-C_Bool-sort i BIND(C)-proceduren %qs"
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "LOGICAL-resultatvariabeln %qs vid %L med icke-C_Bool-sort i BIND(C)-proceduren %qs"
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "Namnlistan %qs får inte vara ett argument till en subrutin eller funktion vid %L"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr "Trådprivat vid %L är inte SAVE:ad"
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr "!$OMP DECLARE TARGET-variabeln %qs vid %L är inte SAVE:ad"
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr "Definierbar entitet förväntades nära %L"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "BLOCK DATA-element %qs vid %L måste vara i COMMON"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "DATA-vektor %qs vid %L måste anges i en tidigare deklaration"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "DATA-elementet %qs vid %L kan inte ha ett co-index"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr "DATA-element %qs vid %L är en pekare och måste då vara en fullständig vektor"
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr "DATA-objektet nära %L har pekarattributet och det motsvarande DATA-värdet är inte ett giltigt initialt-data-mål"
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "DATA-elementet %qs vid %L får inte ha attributet ALLOCATABLE"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "Ickekonstant vektorsektion vid %L i DATA-sats"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "DATA-sats vid %L har fler variabler än värden"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "Ickekonstant teckenlängd vid %L i DATA-sats"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr "början av implicerad do-slinga vid %L kan inte förenklas till ett konstant värde"
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr "slutet av implicerad do-slinga vid %L kan inte förenklas till ett konstant värde"
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr "steget i implicerad do-slinga vid %L kan inte förenklas till ett konstant värde"
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "steget i implicerad do-slinga vid %L skall inte vara noll"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "DATA-sats vid %L har fler värden än variabler"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "Etiketten %d vid %L är definierad men inte använd"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "Etiketten %d vid %L är definierad men kan inte användas"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "Härledd typvariabel %qs vid %L måste ha attributet SEQUENCE för att vara ett EQUIVALENCE-objekt"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "Härledd typvariabel %qs vid %L kan inte ha ALLOCATABLE-komponenter för att vara ett EQUIVALENCE-objekt"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "Härledd typvariabel %qs vid %L med standardinitiering kan inte vara i EQUIVALENCE med en variabel i COMMON"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "Härledd typvariabel %qs vid %L med pekarkomponent(er) kan inte vara ett EQUIVALENCE-objekt"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "Syntaxfel i EQUIVALENCE-sats vid %L"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr "Antingen alla eller inget av objekten i EQUIVALENCE-mängden vid %L kan ha attributet PROTECTED"
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "COMMON-blockmedlem %qs vid %L kan inte vara ett EQUIVALENCE-objekt i den rena proceduren %qs"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Namngiven konstant %qs vid %L kan inte vara ett EQUIVALENCE-objekt"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "Vektor %qs vid %L med icke-konstanta gränser kan inte vara ett EQUIVALENCE-objekt"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Postkomponent %qs vid %L kan inte vara ett EQUIVALENCE-objekt"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "Delsträng vid %L har längden noll"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "Självreferens i uttrycket för teckenlängd för %qs vid %L"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "PUBLIC-funktionen %qs vid %L har PRIVATE typ %qs"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "ENTRY %qs vid %L har ingen IMPLICIT-typ"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "Användaroperatorprocedur %qs vid %L måste vara en FUNCTION"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "Användaroperatorprocedur %qs vid %L får inte ha antagen teckenlängd"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "Användaroperatorprocedur %qs vid %L måste ha åtminstone ett argument"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "Första argumentet till operatorgränssnitt vid %L får inte vara frivilligt"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "Andra argumentet till operatorgränssnitt vid %L får inte vara valfritt"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "Operatorgränssnitt vid %L måste ha, högst, två argument"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr "Innesluten procedur %qs vid %L i en PURE-procedur måste också vara PURE"
@@ -80749,127 +80797,127 @@ msgstr "Implicit deklarerad variabel %qs vid %L får inte vara C-interoperativ m
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "Funktionsresultat %qs vid %L har ingen IMPLICIT-typ"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "%s-attribut i konflikt med %s-attribut vid %L"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "%s-attribut i konflikt med %s-attribut i %qs vid %L"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "%s-attribut är inte tillåtet i programenheten BLOCK DATA vid %L"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "Namnlistegruppnamnet vid %L kan inte ha attributet SAVE"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "den interna proceduren %qs vid %L står i konflikt med DUMMY-argument"
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "Procedurpekare vid %C"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "%s-attribut applicerat på %s %s vid %L"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "BIND(C) applicerat på %s %s vid %L"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "%s-attribut i konflikt med %s-attribut vid %L"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "%s-attribut i konflikt med %s-attribut i %qs vid %L"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "Det går inte att ändra attribut på USE-associerad symbol vid %L"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "Det går inte att ändra attribut på USE-associerad symbol %s vid %L"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "Dubblerat %s-attribut angivna vid %L"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr "ALLOCATABLE angiven utanför INTERFACE-kropp vid %L"
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "Dubblerat AUTOMATIC-attribut angivet vid %L"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "CODIMENSION angiven för %qs utanför dess INTERFACE-kropp vid %L"
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "DIMENSION angiven för %qs utanför dess INTERFACE-kropp vid %L"
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "Cray-utpekad vid %L förekommer i flera pointer()-satser"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "Dubblerat PROTECTED-attribut angivet vid %L"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "SAVE-attribut vid %L kan inte anges i en PURE-procedur"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "Dubblerat SAVE-attribut angivet vid %L"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "Dubblerat VALUE-attribut angivet vid %L"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "Dubblerat VOLATILE-attribut angivet vid %L"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "Attributet VOLATILE vid %L kan inte anges i en PURE-procedur"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "Dubblerat ASYNCHRONOUS-attribut angivet vid %L"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "%s-attribut på %qs i konflikt med %s-attribut vid %L"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
@@ -80878,204 +80926,204 @@ msgstr ""
 "%s-proceduren vid %L är redan deklarerad som en %s-procedur. \n"
 "F2008: En tilldelning av funktionspekare är tvetydig om det är dn första exekverbara satsen efter specifikationsblocket.  Lägg någon annan sorts exekverbar sats före den. FIXAMIG"
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "Proceduren ”%s” vid %L är redan deklarerad som %s-procedur"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "INTENT (%s) står i konflikt med INTENT(%s) vid %L"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "ACCESS-specifikation vid %L var redan angiven"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "Dubblerat BIND-attribut angivna vid %L"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr "BIND(C) vid %L"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "Dubblerat EXTENDS-attribut angivet vid %L"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr "EXTENDS vid %L"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "Symbolen %qs vid %L har redan ett explicit gränssnitt"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr "%qs vid %L har attribut angivna utanför dess INTERFACE-kropp"
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr "Symbolen %qs vid %L står i konflikt med symbolen från modulen %qs, användningsassocierad vid %L"
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "Symbolen %qs vid %L har redan grundtypen %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "Procedur %qs vid %L får inte ha grundtypen %s"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "Symbolen %qs vid %L kan inte ha en typ"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "Komponenten %qs vid %C finns redan i föräldratypen vid %L"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "Symbolen %qs vid %C är tvetydig"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "Härledd typ %qs vid %C används före den är definierad"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "Komponent %qs vid %C är en PRIVATE-komponent i %qs"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "%qs vid %C är inte en medlem av posten %qs; menade du %qs?"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "%qs vid %C är inte en medlem av posten %qs"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "Dubblerad satsetikett %d vid %L och %L"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "Etikett %d vid %C är redan refererad som ett grenmål"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "Etiketten %d vid %C är redan refererad som en formatetikett"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr "DO avslutningssats som inte är END DO eller CONTINUE med etikett %d vid %C"
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "Etikett %d vid %C användes tidigare som en FORMAT-etikett"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "Etikett %d vid %C användes tidigare som ett grenmål"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr "Delad DO-avslutningsetikett %d vid %C"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr "Etiketterad DO-sats vid %L"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "Namnet %qs vid %C är en tvetydig referens till %qs från modulen %qs"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "Namnet %qs vid %C är en tvetydig referens till %qs från den aktuella programenheten"
 
 # Vad är "host associated"?
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "Symbolen %qs vid %C har redan blivit host-associerad"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr "verify_bind_c_derived_type(): Den angivna symbolen är oväntat NULL"
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "Härledd typ %qs deklarerad vid %L måste ha attributet BIND för att vara ett C-interoperativ"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr "Härledd typ %qs med attributet BIND(C) vid %L är tom, och kan vara otillgängliga av C-följeslagarprocessorn"
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Komponent %qs vid %L får inte ha attributet POINTER eftersom det är en medlem av den BIND(C)-härledda typen %qs vid %L"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "Procedurpekarkomponenten %qs vid %L kan inte vara en medlem av den BIND(C)-härledda typen %qs vid %L"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Komponent %qs vid %L får inte ha attributet ALLOCATABLE eftersom det är en medlem av den BIND(C)-härledda typen %qs vid %L"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr "Komponent %qs i härledd typ %qs vid %L får inte vara C-interoperativ, trots att den härledda typen %qs är BIND(C)"
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "Komponent %qs i härledd typ %qs vid %L får inte vara C-interoperativ"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "Härledd typ %qs vid %L kan inte ha attributet SEQUENCE för att den är BIND(C)"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr "Symbolen %qs används före den har fått sin typ vid %L"
@@ -81105,24 +81153,24 @@ msgstr "Överlappande olika initierare i EQUIVALENCE vid %L"
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "Överlappande olika initierare i EQUIVALENCE vid %C"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr "Postkonstrueraren vid %C har avslutats. Denna funktion togs bart av f08/0011. Använd -std=f2018 eller -std=gnu för att eliminera avslutningen."
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr "Antalet element i vektorkonstrueraren vid %L kräver en ökning av den tillåtna övre gränsen %d.  Se flaggan %<-fmax-array-constructor%>"
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "Skapar vektortemporär vid %L för argument %qs"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "felaktig uttryckstyp under genomlöpning (%d)"
@@ -81308,37 +81356,37 @@ msgstr "Returvärdet %qs för funktionen %qs deklarerad vid %L är inte satt"
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr "Ledsen, !$ACC DECLARE vid %L är inte tillåtet i BLOCK-konstruktion"
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr "Kan inte beräkna längden på teckenvektorn vid %L."
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr "Kod för omallokering av den allokerbara variabeln vid %L kommer läggas till"
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr "Ledsen, co-indexerad åtkomst till ett obegränsat polymorft objekt vid %L stödjs inte ännu"
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr "Ledsen, co-indexerad åtkomst till en obegränsat polymorf komponent vid %L stödjs inte"
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "Okänd inbyggd op"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Okänd argumentlistefunktion vid %L"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr "Om ommappning av gränser anges vid %L skall pekarmålet inte vara NULL"
@@ -81349,17 +81397,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "Inbyggd funktion %qs (%d) känns inte igen"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "%<dim%>-argumentet till inbyggd %s vid %L är inte ett giltigt dimensionsindex"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr "Ledsen, händelsekomponenten hos härledd typ vid %L stödjs inte ännu"
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr "Händelsevariabeln vid %L får inte vara co-indexerad"
@@ -81499,7 +81547,7 @@ msgstr "Ledsen, låskomponenten hos härledd typ vid %L stödjs inte ännu"
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr "Tyvärr, endast stöd för heltalssort %d implementerad för bildmängden vid %L"
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr "gfc_trans_select(): Felaktig typ för Bad type for case-uttryck."
@@ -81865,6 +81913,11 @@ msgstr "variabeln %qD omdeklarerad som en funktion"
 msgid "function %qD redeclared as variable"
 msgstr "funktionen %qD omdeklarerad som en variabel"
 
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "tidigare deklarerad här"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -83102,7 +83155,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr "%<-fobjc-sjlj-exceptions%> ignoreras för %<-fgnu-runtime%>"
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr "typen %qT som inte är objective-c kan inte fångas"
@@ -83112,7 +83165,7 @@ msgstr "typen %qT som inte är objective-c kan inte fångas"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr "%<-fobjc-sjlj-exceptions%> är det enda undantagssystem som stödjs för %<-fnext-runtime%> med %<-fobjc-abi-version%>-argument mindre än 2"
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr "%<-fobjc-sjlj-exceptions%> ignoreras för %<-fnext-runtime%> när %<-fobjc-abi-version%> är större än 1"
diff --git a/gcc/po/tr.po b/gcc/po/tr.po
index c5677215f9d..e953deaa8ed 100644
--- a/gcc/po/tr.po
+++ b/gcc/po/tr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 5.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2015-09-11 20:22+0300\n"
 "Last-Translator: Nilgün Belma Bugüner <nilgun@fide.org>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -456,7 +456,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "hem -C hem de -o belirtilemez"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared ve mdll uyumsuz"
 
@@ -21456,18 +21456,18 @@ msgstr "tanımlanamayan komut:"
 msgid "insn does not satisfy its constraints:"
 msgstr "komut kendi kısıtlarını gözönüne almıyor:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "`%s''in farklı ayarları ile oluşturulup kullanılmış"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 #, fuzzy
 #| msgid "created and used with different settings of -fpic"
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "-fpic'in farklı ayarları ile oluşturulup kullanıldı"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 #, fuzzy
 #| msgid "created and used with different settings of -fpie"
 msgid "created and used with different settings of %<-fpie%>"
@@ -21803,7 +21803,7 @@ msgstr "strfmon biçiminde uzunluk değiştirici"
 msgid "<command-line>"
 msgstr "<komut-satırı>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 #| msgid "invalid operand for code '%c'"
 msgid "unsupported operand for code '%c'"
@@ -21824,9 +21824,9 @@ msgstr "terim, kod `%c' için geçersiz"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 #| msgid "invalid insn:"
 msgid "invalid vector constant"
@@ -21849,7 +21849,7 @@ msgstr "terim, kod `%c' için geçersiz"
 msgid "incompatible register operand for '%%%c'"
 msgstr "terim, kod `%c' için geçersiz"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "terim eksik"
@@ -21884,93 +21884,93 @@ msgstr "adres geçersiz"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "iki terimli %s için terimler geçersiz"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr ""
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "%%J değeri geçersiz"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "%%r değeri geçersiz"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "%%R değeri geçersiz"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "%%N değeri geçersiz"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "%%P değeri geçersiz"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "%%h değeri geçersiz"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "%%L değeri geçersiz"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "%%m değeri geçersiz"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "%%M değeri geçersiz"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "%%U değeri geçersiz"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "%%s değeri geçersiz"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "%%C değeri geçersiz"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "%%E değeri geçersiz"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "bilinmeyen yerdeğişim unspec"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "%%xn kodu geçersiz"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, fuzzy, c-format
 #| msgid "invalid address"
 msgid "invalid operand address"
@@ -22073,37 +22073,37 @@ msgstr "terim olarak UNSPEC geçersiz"
 msgid "unrecognized supposed constant"
 msgstr "tanınmayan tahmini sabit"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, fuzzy, c-format
 #| msgid "invalid %%f operand"
 msgid "invalid shift operand"
 msgstr "geçersiz %%f terimi"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "isnatlı Thumb komutu"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "koşullu dizilimde isnatlı komut"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, fuzzy, c-format
 #| msgid "invalid operand for code '%c'"
 msgid "Unsupported operand for code '%c'"
 msgstr "terim, kod `%c' için geçersiz"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -22111,134 +22111,134 @@ msgstr "terim, kod `%c' için geçersiz"
 msgid "invalid operand for code '%c'"
 msgstr "terim, kod `%c' için geçersiz"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, fuzzy, c-format
 #| msgid "instruction never exectued"
 msgid "instruction never executed"
 msgstr "komut hiç çalıştırılmadı"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr ""
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "%<__fpreg%> türünden dönüşüm geçersiz"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "%qT'ye %qT'den dönüşüm geçersiz"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr ""
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 #, fuzzy
 #| msgid "output operand %d must use %<&%> constraint"
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "çıktı terimi %d %<&%> kısıtını kullanmalı"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 #, fuzzy
 #| msgid "bad address, not (reg+disp):"
 msgid "bad address, not an I/O address:"
 msgstr "hatalı adres, (reg+disp) değil:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 #, fuzzy
 #| msgid "address offset not a constant"
 msgid "bad address, not a constant:"
 msgstr "adres mesafesi bir sabit değil"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "hatalı adres, (reg+disp) değil:"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "hatalı adres, post_inc veya pre_dec değil:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "derleyici iç hatası.  Hatalı adres:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr ""
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "Derleyici iç hatası.  Bilinmeyen kip:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "geçersiz komut:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "yanlış komut:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "bilinmeyen taşıma komutu:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "hatalı kaydırma komutu:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "derleyici iç hatası.  Yanlış kaydırma:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 #, fuzzy
 #| msgid "unsupported combination: %s"
 msgid "unsupported fixed-point conversion"
 msgstr "desteklenmeyen birleşim: %s"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 #, fuzzy
 #| msgid "Perform variable tracking"
 msgid "variable"
 msgstr "Değişken izleme uygulanır"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 #, fuzzy
 #| msgid "redefinition of parameter %q+D"
 msgid "function parameter"
 msgstr "%q+D parametresinin yeniden tanımlanması"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 #, fuzzy
 #| msgid "%q+#D previously defined here"
 msgid "structure field"
 msgstr "%q+#D evvelce burada tanımlanmış"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 #, fuzzy
 #| msgid "creating array of %qT"
 msgid "return type of function"
 msgstr "%qT dizisi oluşturulması"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 #, fuzzy
 #| msgid "PRINT_OPERAND null pointer"
 msgid "pointer"
@@ -22279,7 +22279,7 @@ msgstr "beklenmeyen terim"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -22616,55 +22616,55 @@ msgstr "terim ne bir sabit ne de bir koşul kodu, geçersiz terim kodu 'c'"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "terim ne bir sabit ne de bir koşul kodu, geçersiz terim kodu 'c'"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "terim kodu `%c' geçersiz"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "kısıtlar terim için geçersiz"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 #| msgid "invalid conditional operand"
 msgid "invalid vector immediate"
 msgstr "koşullu terim geçersiz"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "bilinmeyen komut kipi"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "%<__fpreg%> türünden dönüşüm geçersiz"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "%<__fpreg%> türünden dönüşüm geçersiz"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "%<__fpreg%> türüne dönüşüm geçersiz"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "%qT'ye %qT'den dönüşüm geçersiz"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -22696,7 +22696,7 @@ msgstr "%<__fpreg%> üzerinde geçersiz işlem"
 msgid "invalid %%P operand"
 msgstr "%%P terimi geçersiz"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "%%p değeri geçersiz"
@@ -22727,30 +22727,30 @@ msgstr ""
 msgid "invalid addressing mode"
 msgstr "adres geçersiz"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, fuzzy, c-format
 #| msgid "'%s' is not a valid class name"
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "'%s' geçerli bir sınıf ismi değil"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, fuzzy, c-format
 #| msgid "invalid use of %qD"
 msgid "invalid use of '%%%c'"
@@ -22783,7 +22783,7 @@ msgid "post-increment address is not a register"
 msgstr "sonradan arttırımlı adres bir yazmaç değil"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "hatalı adres"
 
@@ -22957,7 +22957,7 @@ msgstr "desteklenmeyen birleşim: %s"
 msgid "unsupported memory expression:"
 msgstr "desteklenmeyen birleşim: %s"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 #| msgid "invalid %%P operand"
 msgid "invalid vector operand"
@@ -23018,278 +23018,278 @@ msgstr "--resource, -o gerektirir"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "Kıymetsiz baytın başta olduğu kod üretilir"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 #, fuzzy
 #| msgid "bad test"
 msgid "bad move"
 msgstr "hatalı test"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%A value"
 msgstr "%%H değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "%%D değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%e value"
 msgstr "%%H değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "%%f değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "%%F değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "%%G değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "%%j kodu geçersiz"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "%%J kodu geçersiz"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "%%k değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "%%K değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "%%O değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "%%q değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%t value"
 msgstr "%%H değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "%%T değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "%%u değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "%%v değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%V value"
 msgstr "%%H değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "%%x değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%z value"
 msgstr "%%H değeri geçersiz"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, fuzzy, c-format
 #| msgid "invalid punctuation %qc in constraint"
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "kısıt içindeki `%qc' işareti geçersiz"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "AltiVec argümanı prototipsiz işleve aktarıldı"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 #, fuzzy
 #| msgid "Do not generate a single exit point for each function"
 msgid "Could not generate addis value for fusion"
 msgstr "Her işlev için tek çıkış noktası üretilmez"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 #, fuzzy
 #| msgid "unable to generate reloads for:"
 msgid "Unable to generate load/store offset for fusion"
 msgstr "aşağıdakiler için yeniden yüklemeler üretilemiyor:"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "%<__fpreg%> türünden dönüşüm geçersiz"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "%<__fpreg%> türüne dönüşüm geçersiz"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "%<__fpreg%> türünden dönüşüm geçersiz"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "%<__fpreg%> türüne dönüşüm geçersiz"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr ""
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "adres çözümlenemez"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "'b' değiştirici için terim geçersiz"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid reference for 'J' output modifier"
 msgstr "'b' değiştirici için terim geçersiz"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, fuzzy, c-format
 #| msgid "invalid operand for 'O' modifier"
 msgid "invalid address for 'O' output modifier"
 msgstr "'O' değiştiricisi için terim geçersiz"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid address for 'R' output modifier"
 msgstr "'b' değiştirici için terim geçersiz"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, fuzzy, c-format
 #| msgid "invalid operand for 'b' modifier"
 msgid "invalid address for 'S' output modifier"
 msgstr "'b' değiştirici için terim geçersiz"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, fuzzy, c-format
 #| msgid "invalid operand for 'o' modifier"
 msgid "invalid constant for output modifier '%c'"
 msgstr "'o' değiştiricisi için terim geçersiz"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, fuzzy, c-format
 #| msgid "invalid operand output code"
 msgid "invalid constant - try using an output modifier"
 msgstr "geçersiz terim çıktı kodu"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, fuzzy, c-format
 #| msgid "invalid operand for 'o' modifier"
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "'o' değiştiricisi için terim geçersiz"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, fuzzy, c-format
 #| msgid "invalid expression as operand"
 msgid "invalid expression - try using an output modifier"
 msgstr "terim olarak ifade geçersiz"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, fuzzy, c-format
 #| msgid "invalid operand for 'o' modifier"
 msgid "invalid expression for output modifier '%c'"
 msgstr "'o' değiştiricisi için terim geçersiz"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "vector argument passed to unprototyped function"
 msgstr "AltiVec argümanı prototipsiz işleve aktarıldı"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 #, fuzzy
 #| msgid "pointer targets in return differ in signedness"
 msgid "types differ in signedness"
 msgstr "dönüş değerinde gösterici hedefleri farklı signed'lıkta"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 #, fuzzy
 #| msgid "target format does not support infinity"
 msgid "binary operator does not support vector bool operand"
 msgstr "hedef biçim sonsuzu desteklemiyor"
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -23494,12 +23494,12 @@ msgstr "<anonim>"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "%<;%> umuluyordu"
@@ -23512,7 +23512,7 @@ msgstr "%<;%> umuluyordu"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -23521,7 +23521,7 @@ msgstr "%<;%> umuluyordu"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<)%>"
@@ -23530,7 +23530,7 @@ msgstr "%<{%> umuluyordu"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<]%>"
@@ -23544,31 +23544,31 @@ msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<(%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<[%>"
 msgstr "%<{%> umuluyordu"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "%<{%> umuluyordu"
@@ -23578,18 +23578,18 @@ msgstr "%<{%> umuluyordu"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<:%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<while%>"
@@ -23599,8 +23599,8 @@ msgstr "%<{%> umuluyordu"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<,%>"
@@ -23613,19 +23613,19 @@ msgid "expected %<.%>"
 msgstr "%<{%> umuluyordu"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@end%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<>%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<,%> or %<)%>"
@@ -23634,35 +23634,35 @@ msgstr "%<,%> veya %<;%> umuluyordu"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "%<=%> umuluyordu"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<}%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<else%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<}%>"
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "%<,%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -23672,7 +23672,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "<anonim>"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<<%>"
@@ -23691,13 +23691,13 @@ msgstr "sınıf ismi umuluyordu"
 msgid "candidate:"
 msgstr "1. aday:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 #| msgid "Enable use of DB instruction"
 msgid "  after user-defined conversion:"
 msgstr "DB komutunun kullanımı etkin olur"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 #, fuzzy
 #| msgid "candidate 1:"
 msgid "candidate is:"
@@ -23705,11 +23705,11 @@ msgid_plural "candidates are:"
 msgstr[0] "1. aday:"
 msgstr[1] "1. aday:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "1. aday:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "2. aday:"
 
@@ -24002,7 +24002,7 @@ msgstr ""
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr ""
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "adaylar:"
 
@@ -24060,50 +24060,50 @@ msgstr ""
 msgid "source type is not polymorphic"
 msgstr ""
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "tek terimli eksiye yanlış türde argüman"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "tek terimli artıya yanlış türde argüman"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "bit-tümler için yanlış türde argüman"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "abs'a yanlış türde argüman"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "mantıksal çarpım için yanlış türde argüman"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 #, fuzzy
 #| msgid "wrong type argument to unary plus"
 msgid "in argument to unary !"
 msgstr "tek terimli artıya yanlış türde argüman"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr ""
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr ""
 
@@ -24186,7 +24186,7 @@ msgstr ""
 msgid "Deleted feature:"
 msgstr ""
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 #, fuzzy
 #| msgid "Array assignment"
 msgid "array assignment"
@@ -24387,11 +24387,11 @@ msgstr "blok IF"
 msgid "implied END DO"
 msgstr "örtük END DO"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "atama"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "gösterici ataması"
 
@@ -24592,59 +24592,59 @@ msgstr "%%L'deki '%s' kullanıcı işlecinin terimi %s"
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "%%L'deki '%s' kullanıcı işlecinin terimleri %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr ""
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 #, fuzzy
 #| msgid "Perform variable tracking"
 msgid "iterator variable"
 msgstr "Değişken izleme uygulanır"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 #, fuzzy
 #| msgid "Step expression in DO loop at %L cannot be zero"
 msgid "Start expression in DO loop"
 msgstr "%L'de Do döngüsündeki adım ifadesi sıfır olamaz"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 #, fuzzy
 #| msgid "invalid expression as operand"
 msgid "End expression in DO loop"
 msgstr "terim olarak ifade geçersiz"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 #, fuzzy
 #| msgid "Step expression in DO loop at %L cannot be zero"
 msgid "Step expression in DO loop"
 msgstr "%L'de Do döngüsündeki adım ifadesi sıfır olamaz"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 #, fuzzy
 #| msgid "DEALLOCATE "
 msgid "DEALLOCATE object"
 msgstr "YERAÇ "
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 #, fuzzy
 #| msgid "ALLOCATE "
 msgid "ALLOCATE object"
 msgstr "AYIR "
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr ""
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr ""
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr ""
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr ""
 
@@ -24653,11 +24653,11 @@ msgstr ""
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr ""
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -24672,12 +24672,12 @@ msgstr ""
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr ""
 
@@ -24686,84 +24686,84 @@ msgstr ""
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, fuzzy, c-format
 #| msgid "different shape for arguments '%s' and '%s' at %L for intrinsic 'dot_product'"
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "'%s' ve '%s' argümanları 'dot_product' yerleşiği için (%L'de) farklı biçimde"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, fuzzy, c-format
 #| msgid "different shape for arguments '%s' and '%s' at %L for intrinsic 'dot_product'"
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "'%s' ve '%s' argümanları 'dot_product' yerleşiği için (%L'de) farklı biçimde"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, fuzzy, c-format
 #| msgid "Argument of SQRT at %L has a negative value"
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "%L'de SQRT'nin argümanı negatif değer içeriyor"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -24789,15 +24789,15 @@ msgstr "Atanmış yafta bir hedef yaftası değil"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr ""
 
@@ -24884,7 +24884,7 @@ msgid "expected boolean type"
 msgstr "İfade türü umuluyordu"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, fuzzy, gcc-internal-format
 #| msgid "Expected integer"
 msgid "expected integer"
@@ -24966,7 +24966,7 @@ msgstr "argüman yok"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments for format"
 msgid "too many arguments"
@@ -25710,7 +25710,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "static TPF-OS'da desteklenmiyor"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "%s deyiminde sözdizimi hatası (%C'de)"
@@ -26207,8 +26207,8 @@ msgstr "%s özniteliği ile %s özniteliği %L'de çelişiyor"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+#D here"
 msgid "previous declaration here"
@@ -26228,7 +26228,7 @@ msgstr "%qs öznitelik yönergesi yoksayıldı"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "%qs öznitelik yönergesi yoksayıldı"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qs attribute"
 msgid "wrong number of arguments specified for %qE attribute"
@@ -26240,7 +26240,7 @@ msgstr "%qs özniteliği için belirtilen argüman sayısı yanlış"
 msgid "expected %i or more, found %i"
 msgstr "Beklenmeyen modül sonu"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %i, found %i"
@@ -26311,12 +26311,12 @@ msgstr "tür öznitelikleri sadece tür tanımlarında uygulanabilir"
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -26325,7 +26325,7 @@ msgstr "tür öznitelikleri sadece tür tanımlarında uygulanabilir"
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -26347,8 +26347,8 @@ msgstr "%qE özniteliği yoksayıldı"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+D"
 msgid "previous declaration of %qD"
@@ -26466,7 +26466,7 @@ msgstr "sınıf %s için dosya bulunamıyor"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "göreli konum sabit dizgenin sınırlarının dışında"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%qE declared here"
@@ -26583,7 +26583,7 @@ msgstr "\"%s\" için argüman eksik"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to %<__builtin_frame_address%>"
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
@@ -26607,46 +26607,46 @@ msgstr "%<__builtin_longjmp%>'in ikinci argümanı 1 olmalı"
 msgid "target format does not support infinity"
 msgstr "hedef biçim sonsuzu desteklemiyor"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 #| msgid "%<va_start%> used in function with fixed args"
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "%<va_start%> işlev içinde sabit sayıda argümanla kullanılmış"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %<va_start%>"
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "%<va_start%> işlevine çok az argüman verilmiş"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "%<__builtin_next_arg%> argümansız çağrılmış"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %<va_start%>"
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "%<va_start%> işlevine çok az argüman verilmiş"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "%<va_start%>'in ikinci parametresi isimli son argüman değil"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr ""
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfirst argument of %D must be a pointer, second integer constant"
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "%H%D için ilk argüman bir gösterici, ikinci argüman sabit olmalıdır"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 #| msgid "%Hlast argument of %D is not integer constant between 0 and 3"
 msgid "last argument of %qD is not integer constant between 0 and 3"
@@ -27775,12 +27775,12 @@ msgstr ""
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F işlevi tanımlanmadan kullanılmış"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%<static%> olarak bildirilen `%q+F hiç tanımlanmamış"
@@ -28388,7 +28388,7 @@ msgstr "dizi bölge ağacıyla eşleşmiyor"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "dizi bölge ağacıyla eşleşmiyor"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, fuzzy, gcc-internal-format
 #| msgid "can't open input file: %s"
 msgid "%qs failed"
@@ -28420,19 +28420,19 @@ msgstr "Kod Boehm GC için üretilir"
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+D redeclared with attribute noinline"
 msgid "call to %qs declared with attribute error: %s"
 msgstr "%q+D işlevinin yeniden bildirimi inline öznitelikli değil"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+D redeclared with attribute noinline"
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "%q+D işlevinin yeniden bildirimi inline öznitelikli değil"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr ""
@@ -28472,7 +28472,7 @@ msgstr "büyük tamsayı örtük olarak unsigned türe indirgendi"
 msgid "comparison is always %d due to width of bit-field"
 msgstr "karşılaştırma bit alanının genişliğinden dolayı daima %d"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr ""
@@ -28659,7 +28659,7 @@ msgstr "süreç zamanlarını almada başarısızlık"
 msgid "%s signal terminated program %s"
 msgstr "Diğer yazmaç isimleri kullanılır"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option \"%s\""
 msgid "unrecognized command-line option %qs"
@@ -28953,7 +28953,7 @@ msgstr "multilib spec '%s' geçersiz"
 msgid "multilib exclusions %qs is invalid"
 msgstr "multilib dışlaması olarak '%s' geçersiz"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, fuzzy, gcc-internal-format
 #| msgid "multilib select '%s' is invalid"
 msgid "multilib select %qs %qs is invalid"
@@ -29292,24 +29292,24 @@ msgstr ""
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member not at end of struct"
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "%Jesnek dizi yapının son üyesi değil"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%s not supported for variable length aggregates"
 msgstr "bu hedefte yığıt sınırları desteklenmiyor"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%s not supported on this target"
@@ -29354,16 +29354,16 @@ msgid "function returns address of local variable"
 msgstr "işlev yerel değişkenin adresi ile dönüyor"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, fuzzy, gcc-internal-format
@@ -29376,370 +29376,370 @@ msgstr "burada bildirilmiş %q+D"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "referenced argument declared here"
 msgstr "deyim umuluyordu"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 #| msgid "Too many arguments to %s at %L"
 msgid "directive argument %qE"
 msgstr "%s için argümanlar %L'de çok fazla"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, fuzzy, gcc-internal-format
 #| msgid "selector must be an integer constant in the range 0..%wi"
 msgid "directive argument in the range [%E, %E]"
 msgstr "seçici 0..%wi aralığında bir tamsayı sabit olmalı"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 #| msgid "PRINT_OPERAND null pointer"
 msgid "null destination pointer"
 msgstr "PRINT_OPERAND boş gösterici"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 #| msgid "%s in format string at %C"
 msgid "null format string"
@@ -30512,12 +30512,12 @@ msgstr "gösterici kipi olarak %qs geçersiz"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%qD declared here"
@@ -31330,7 +31330,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<::%>"
 msgid "invalid use of attribute %<fallthrough%>"
@@ -31700,17 +31700,17 @@ msgstr "%L'deki gösterici atamasında parametreler farklı çeşit türlerinde"
 msgid "mismatching definition"
 msgstr "tanım eksik"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr ""
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -32831,83 +32831,83 @@ msgstr "%s yazılırken hata: %m"
 msgid "error closing optimization records %qs"
 msgstr "Çapraz atlama eniyilemesi uygulanır"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 #| msgid "command line option %qs is not supported by this configuration"
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "komut satırı seçeneği %qs bu yapılandırmada desteklenmiyor"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, fuzzy, gcc-internal-format
 #| msgid "missing argument to \"%s\""
 msgid "missing argument to %qs"
 msgstr "\"%s\" için argüman eksik"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 #| msgid "argument to \"%s\" should be a non-negative integer"
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "\"%s\" için argüman sıfır ya da pozitif bir tamsayı olmalı"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, fuzzy, gcc-internal-format
 #| msgid "argument to \"%s\" should be a non-negative integer"
 msgid "argument to %qs should be a non-negative integer"
 msgstr "\"%s\" için argüman sıfır ya da pozitif bir tamsayı olmalı"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 #| msgid "-malign-loops=%d is not between 0 and %d"
 msgid "argument to %qs is not between %d and %d"
 msgstr "-malıgn-loops=%d, 0 ile %d arasında değil"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option \"%s\""
 msgid "invalid argument in option %qs"
 msgstr "komut satırı seçeneği \"%s\" tanınmıyor"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, fuzzy, gcc-internal-format
 #| msgid "-mips16 and -mdsp cannot be used together"
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "-mips16 ve -mdsp birlikte kullanılamaz"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option \"%s\""
 msgid "unrecognized argument in option %qs"
 msgstr "komut satırı seçeneği \"%s\" tanınmıyor"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "%qs özniteliğinin argümanı geçersiz"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %qs are: %s"
 msgstr "%qs özniteliğinin argümanı geçersiz"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "switch %qs artık desteklenmiyor"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs attribute larger than %d"
 msgid "argument to %qs is bigger than %d"
 msgstr "%qs özniteliğine argüman %d den büyük"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr ""
@@ -32989,8 +32989,8 @@ msgstr "\"%s\" için argüman sıfır ya da pozitif bir tamsayı olmalı"
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "%qs is incompatible with %qs"
@@ -33769,7 +33769,7 @@ msgstr "genel yazmaç değişkeni bir işlev tanımını izliyor"
 msgid "register of %qD used for multiple global register variables"
 msgstr "yazmaç iki genel yazmaç değişkeni için kullanılmış"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, fuzzy, gcc-internal-format
 #| msgid "  conflict with %q+D"
 msgid "conflicts with %qD"
@@ -34245,47 +34245,47 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "__builtin_saveregs bu hedef tarafından desteklenmiyor"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "bu hedefte yığıt sınırları desteklenmiyor"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, fuzzy, gcc-internal-format
 #| msgid "global destructors not supported on this target"
 msgid "nested functions not supported on this target"
 msgstr "bu hedefte global yıkıcılar desteklenmiyor"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, fuzzy, gcc-internal-format
 #| msgid "-ffunction-sections not supported for this target"
 msgid "nested function trampolines not supported on this target"
 msgstr "bu hedefte -ffunction-sections desteklenmiyor"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "bu hedefte global yapıcılar desteklenmiyor"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "bu hedefte global yıkıcılar desteklenmiyor"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is not supported on this platform"
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "bu platformda %qE özniteliği desteklenmiyor"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is not supported on this platform"
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "bu platformda %qE özniteliği desteklenmiyor"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma extern_prefix not supported on this target"
 msgid "%<#pragma GCC target%> is not supported for this machine"
@@ -35541,89 +35541,89 @@ msgstr "BB %i son deyiminin bölgesi yanlış belirlenmiş"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "düşen ayrıtta yanlış komut"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it receives a non-local goto"
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "%q+F işlevi yerel olmayan goto içerdiğinden satıriçine alınamaz"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses variable sized variables"
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "%q+F işlevi değişken boyutlu değişkenler kullandığından satıriçine alınamaz"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "%q+F işlevi alloca kullandığından satıriçine alınamaz (always_inline özniteliği ile zorlanabilir)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "%q+F işlevi setjmp kullandığından asla satıriçine alınamaz"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "%q+F işlevi değişkin argüman listesi kullandığından asla satıriçine alınamaz"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "%q+F işlevi setjmp-longjmp olağandışılık eylemcisi kullandığından asla satıriçine alınamaz"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "%q+F işlevi yerel olmayan goto içerdiğinden asla satıriçine alınamaz"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "%q+F işlevi __builtin_return veya __builtin_apply_args kullandığından satıriçine alınamaz"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "%q+F işlevi bir hesaplanmış goto içerdiğinden satıriçine alınamaz"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "%q+F işlevi değişkin argüman listesi kullandığından asla satıriçine alınamaz"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "%q+F işlevi -fno-inline kullanılarak engellendiğinden satır içine alınamaz"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "%q+F işlevinin öznitelikleri satıriçine alınma ile çeliştiğinden işlev asla satıriçine alınamaz"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 #| msgid "inlining failed in call to %q+F: %s"
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "%q+F çağrısında satıriçine alma başarısız: %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "buradan çağrıldı"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
 msgid "called from this function"
 msgstr "işlev olmayan %qD ye çağrı"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "%q+F çağrısında satıriçine alma başarısız: %s"
@@ -35681,29 +35681,29 @@ msgstr "%qE özniteliği için vektör türü geçersiz"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "%qE özniteliği için vektör türü geçersiz"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "in a call to non-static member function %qD"
 msgstr "static olmayan üye işlev %qD kullanımı geçersiz"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to builtin function"
 msgid "in a call to built-in function %qD"
 msgstr "yerleşik işleve aktarılan argüman geçersiz"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %q+D declared as non-function"
 msgid "in a call to function %qD declared %qs"
@@ -35920,7 +35920,7 @@ msgstr "ilklendirici yok"
 msgid "%qs may be used uninitialized"
 msgstr "%H%qD bu işlevde ilklendirilmeden kullanılmış olmalı"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%qD was declared here"
@@ -36161,7 +36161,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -36176,132 +36176,132 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "işlev dizileri anlamlı değil"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "işlevin dönüş türü işlev olamaz"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "ağaç denetimi: %1$s, %4$s dosyasının %5$d. satırında %3$s işlevinde %2$s var"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "ağaç denetimi: %1$s umulmuyordu, %4$s dosyasının %5$d. satırında %3$s işlevinde %2$s var"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, fuzzy, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "ağaç denetimi: %1$qs sınıfı umuluyordu, %5$s dosyasının %6$d. satırında %4$s işlevinde %2$qs (%3$s) var"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, fuzzy, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "ağaç denetimi: %1$qs sınıfı umuluyordu, %5$s dosyasının %6$d. satırında %4$s işlevinde %2$qs (%3$s) var"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "ağaç denetimi: %1$s umulmuyordu, %4$s dosyasının %5$d. satırında %3$s işlevinde %2$s var"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, fuzzy, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "ağaç denetimi: %1$qs yapısını içeren ağaç umuluyordu, %4$s dosyasının %5$d. satırında %3$s işlevinde %2$qs var"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "ağaç denetimi: %4$s dosyasının %5$d. satırında %3$s işlevinde %2$d öğelik ağaç vektörünün %1$d. öğesine erişildi"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "ağaç denetimi: %4$s dosyasının %5$d. satırında %3$s işlevinde %2$d öğelik ağaç vektörünün %1$d. öğesine erişildi"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "ağaç denetimi: %5$s dosyasının %6$d. satırında %4$s işlevinde %3$d terimli %2$s düğümünün %1$d. terimine erişildi"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "ağaç denetimi: %5$s dosyasının %6$d. satırında %4$s işlevinde %3$d terimli %2$s düğümünün %1$d. terimine erişildi"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qD is deprecated: %s"
 msgstr "%qs önerilmiyor"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qD is deprecated"
 msgstr "%qs önerilmiyor"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qE is deprecated: %s"
 msgstr "%qs önerilmiyor"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "%qE is deprecated"
 msgstr "%qs önerilmiyor"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type is deprecated"
 msgid "type is deprecated: %s"
 msgstr "tür önerilmiyor"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "tür önerilmiyor"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is unavailable: %s"
 msgstr "%qD bir şablon değil"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is unavailable"
 msgstr "%qD bir şablon değil"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qE is unavailable: %s"
 msgstr "%qD bir şablon değil"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qE is unavailable"
 msgstr "%qD bir şablon değil"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "can't open input file: %s"
 msgid "type is unavailable: %s"
 msgstr "girdi dosyası açılamıyor: %s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "type is unavailable"
@@ -36327,269 +36327,269 @@ msgstr "%qD bir şablon değil"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, fuzzy, gcc-internal-format
 #| msgid "%s:stamp mismatch with graph file\n"
 msgid "first mismatch is field"
 msgstr "%s: zaman damgası çizge dosyası ile çelişiyor\n"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "type is not compatible with its variant"
 msgstr "-march=%s seçilen ABI ile uyumsuz"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qT is not a template type"
 msgid "type %s is not an opaque type"
 msgstr "%qT bir şablon türü değil"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "type %s is not with opaque mode"
 msgstr "%qT türü bir doğrudan %qT tabanı değil"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 #| msgid "environment variable DJGPP not defined"
 msgid "main variant is not defined"
 msgstr "ortam değişkeni DJGPP atanmamış"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs has non-integer type"
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "%qs dizisinin boyutu tamsayı tür değil"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has an incomplete type"
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "%qD bir tamamlanmamış tür içeriyor"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -36827,7 +36827,7 @@ msgstr "%Jtakma ad tanımlamaları bu yapılandırmada desteklenmiyor"
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "görünürlük özniteliği bu yapılandırmada desteklenmiyor; yoksayıldı"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -37060,7 +37060,7 @@ msgstr "%qE özniteliği sınıf türleri dışında yoksayılır"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "%qE özniteliği sınıf türleri dışında yoksayılır"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "%qE özniteliği sadece genel nesnelerde etkilidir"
@@ -37265,7 +37265,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "%qs özniteliği sadece değişkenlere uygulanır"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for local variables"
@@ -37628,7 +37628,7 @@ msgstr "assert: %s %s ile uyumlu atanıyor"
 msgid "%qE argument is not a function"
 msgstr "cleanup argümanı bir işlev değil"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a constant"
 msgid "deprecated message is not a string"
@@ -38184,7 +38184,7 @@ msgstr "new bir işlev türe uygulanamaz"
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "new bir işlev türe uygulanamaz"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "bir void türe %qs uygulanması geçersiz"
@@ -38323,17 +38323,17 @@ msgstr ""
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "öntanımlı argüman %2$q#D bildiriminin %1$d. parametresi için"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "%qE işlevi için çok az argüman belirtildi"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -38473,126 +38473,126 @@ msgstr "bit-alanı yapısının %qD üyesinin adresi alınmaya çalışılıyor"
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is too large"
 msgid "size of array is too large"
 msgstr "%qs dizisinin boyutu çok büyük"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, fuzzy, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "%2$qE işlevinin %1$d. argümanı için tür uyumsuz"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "%2$qE işlevinin %1$d. argümanının aktarımı sırasında bir tür dönüşümü olmaksızın tamsayıdan gösterici yapılıyor"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 #| msgid "argument 1 must be a 5-bit signed literal"
 msgid "both arguments must be compatible"
 msgstr "1. argüman 5 bitlik bir işaretli sabit olmalı"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %qE"
 msgid "incorrect number of arguments to function %qE"
 msgstr "%qE işlevi için çok az argüman belirtildi"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs must be a 2-bit unsigned literal"
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "%qs argümanı 2 bitlik işaretsiz bir sabit olmalı"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfirst argument of %D must be a pointer, second integer constant"
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "%H%D için ilk argüman bir gösterici, ikinci argüman sabit olmalıdır"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfirst argument of %D must be a pointer, second integer constant"
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "%H%D için ilk argüman bir gösterici, ikinci argüman sabit olmalıdır"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfirst argument of %D must be a pointer, second integer constant"
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "%H%D için ilk argüman bir gösterici, ikinci argüman sabit olmalıdır"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "%2$qE işlevinin %1$d. argümanına uyumsuz gösterici türünde aktarım"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfirst argument of %D must be a pointer, second integer constant"
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "%H%D için ilk argüman bir gösterici, ikinci argüman sabit olmalıdır"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "%2$qE işlevinin %1$d. argümanına uyumsuz gösterici türünde aktarım"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, fuzzy, gcc-internal-format
 #| msgid "Type/rank mismatch in argument '%s' at %L"
 msgid "size mismatch in argument %d of %qE"
 msgstr "Argüman '%s' için tür/sira uyumsuzluğu (%L'de)"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfirst argument of %D must be a pointer, second integer constant"
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "%H%D için ilk argüman bir gösterici, ikinci argüman sabit olmalıdır"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "%2$qE işlevinin %1$d. argümanına aktarım gösterici hedef türündeki niteleyicileri iptal ediyor"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 #| msgid "%Hfirst argument of %D must be a pointer, second integer constant"
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "%H%D için ilk argüman bir gösterici, ikinci argüman sabit olmalıdır"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "%2$qE işlevinin %1$d. argümanına aktarım gösterici hedef türündeki niteleyicileri iptal ediyor"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, fuzzy, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "%2$qE işlevinin %1$d. argümanı için tür uyumsuz"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument of %qs"
 msgid "invalid memory model argument %d of %qE"
 msgstr "%qs için tür argümanı geçersiz"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, fuzzy, gcc-internal-format
 #| msgid "Substring end index at %L is out of bounds"
 msgid "index value is out of bound"
 msgstr "%L'deki altdizge son indisi sınırların dışında"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from %qT to %qT is ambiguous"
 msgid "conversion of scalar %qT to vector %qT involves truncation"
@@ -38600,59 +38600,59 @@ msgstr "%qT türünden %qT türüne dönüşüm belirsiz"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %q+D declared as non-function"
 msgid "built-in function %qE must be directly called"
 msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "size of array %qE is not a constant expression"
 msgstr "%qD dizisinin boyutu bir tümleyen sabit ifadesi değil"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "size of array is not a constant expression"
 msgstr "dizi boyutu bir tümleyen sabit ifadesi değil"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is negative"
 msgid "size %qE of array %qE is negative"
 msgstr "%qs dizisinin boyutu negatif"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array is negative"
 msgstr "dizi boyutu negatif"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is negative"
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "%qs dizisinin boyutu negatif"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -39321,7 +39321,7 @@ msgstr "tamsayı sabit %qs türü için oldukça büyük"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "tamsayı sabit %qs türü için oldukça büyük"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<_BitInt(%d)%> is not supported on this target"
@@ -39408,7 +39408,7 @@ msgstr ""
 msgid "traditional C rejects string constant concatenation"
 msgstr "geleneksel C dizge sabitlerin birleştirilmesine izin vermez"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -39465,7 +39465,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr ""
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute %qE"
 msgid "invalid type for iteration variable %qE"
@@ -39483,18 +39483,18 @@ msgstr "%qE özniteliği için vektör türü geçersiz"
 msgid "%qE is not initialized"
 msgstr "ilklendirici yok"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr ""
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, fuzzy, gcc-internal-format
 #| msgid "invalid conditional operand"
 msgid "invalid controlling predicate"
 msgstr "koşullu terim geçersiz"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, fuzzy, gcc-internal-format
 #| msgid "assignment suppression"
 msgid "missing increment expression"
@@ -39505,7 +39505,7 @@ msgstr "atama engelleme"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, fuzzy, gcc-internal-format
 #| msgid "invalid truth-value expression"
 msgid "invalid increment expression"
@@ -39598,7 +39598,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -39609,7 +39609,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qD bir işlev şablonu değil"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field %qs has invalid type"
 msgid "bit-field %qE in %qs clause"
@@ -40270,7 +40270,7 @@ msgid "wrong type argument to %s"
 msgstr "abs'a yanlış türde argüman"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -41297,35 +41297,35 @@ msgstr "%q#T ile %q#T arasında karşılaştırma"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -41559,120 +41559,120 @@ msgstr "-mregparm=%d, 0 ile %d arasında değil"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 #| msgid "switch -mcpu=%s conflicts with -march= switch"
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "-mcpu=%s ile -march= seçenekleri çelişiyor"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 #| msgid "switch -mcpu=%s conflicts with -march= switch"
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "-mcpu=%s ile -march= seçenekleri çelişiyor"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, fuzzy, gcc-internal-format
 #| msgid "type of %qE is unknown"
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%qE türü bilinmiyor"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -42115,13 +42115,13 @@ msgstr "%q.*s biçiminin %<%T%s%> türünde olması umuluyor, ama %d. argüman %
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "%q.*s biçiminin %<%T%s%> türünde olması umuluyor, ama %d. argüman %qT türünde"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma%> is not allowed here"
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma%> burada kullanılamaz"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 #| msgid "malformed #pragma GCC pch_preprocess, ignored"
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
@@ -42725,7 +42725,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -42808,12 +42808,12 @@ msgid "unknown tuning option (%s)"
 msgstr "bilinmeyen '%s' spec işlevi"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -42824,7 +42824,7 @@ msgid "specify a system register with a small string length"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid output file"
 msgid "%qs is not a valid offset in %qs"
@@ -43020,9 +43020,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, fuzzy, gcc-internal-format
 #| msgid "alias argument not a string"
 msgid "attribute %<target%> argument not a string"
@@ -43080,19 +43080,19 @@ msgid "virtual function multiversioning not supported"
 msgstr "yığıt sınırlama ifadesi desteklenmiyor"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_eh_return not supported on this target"
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "__builtin_eh_return bu hedefte desteklenmiyor"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -43105,8 +43105,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported simdlen %wd"
@@ -43118,7 +43118,7 @@ msgstr "desteklenmeyen birleşim: %s"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "$ tarzı biçimde kullanılmamış argümanlar"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, fuzzy, gcc-internal-format
 #| msgid "unused arguments in $-style format"
 msgid "unsupported return type %qT for simd"
@@ -43130,7 +43130,7 @@ msgstr "$ tarzı biçimde kullanılmamış argümanlar"
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "$ tarzı biçimde kullanılmamış argümanlar"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 #| msgid "unused arguments in $-style format"
 msgid "unsupported argument type %qT for simd"
@@ -43232,8 +43232,8 @@ msgstr "%2$s için L%1$d arabellek gecikmesi bilinmiyor"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "-mmemory-latency için değer %qs hatalı"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "hatalı yerleşik fcode"
@@ -43365,18 +43365,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "%qs özniteliğinin argümanı \"ilink1\" ya da \"ilink2\" değildir"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -43504,7 +43504,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "%qs özniteliğinin argümanı bir dizge sabiti değil"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qE attribute allows only an integer constant argument"
@@ -43528,25 +43528,25 @@ msgstr "%qs özniteliği sadece işlev türlerine uygulanır"
 msgid "argument of %qE attribute ignored"
 msgstr "%qE özniteliği yoksayıldı"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to variables"
 msgid "%qE attribute only applies to variables"
 msgstr "%qs özniteliği sadece değişkenlere uygulanır"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr ""
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, fuzzy, gcc-internal-format
 #| msgid "unknown machine mode %qs"
 msgid "unknown %<asm%> flag output %qs"
 msgstr "%qs makine kipi bilinmiyor"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument"
 msgid "invalid type for %<asm%> flag output"
@@ -43806,7 +43806,7 @@ msgstr "hedef işlemci THUMB komutlarını desteklemiyor"
 msgid "target CPU does not support unaligned accesses"
 msgstr "hedef işlemci beraber çalışmayı desteklemiyor"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "This architecture does not support branch protection instructions"
@@ -43863,7 +43863,7 @@ msgstr "veri yapısı boyut sınırı sadece %s ye ayarlanabilir"
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "assert: %s %s ile uyumlu atanıyor"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 #| msgid "code model %s not supported in PIC mode"
 msgid "FDPIC mode is not supported in Thumb-1 mode"
@@ -43978,7 +43978,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -44024,44 +44024,44 @@ msgstr "%qE özniteliği sadece genel nesnelerde etkilidir"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "%qs özniteliği sadece işlev türlerine uygulanır"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "yığıttaki parametrenin gerçek konumu hesaplanamıyor"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected end of module"
 msgid "Unexpected thumb1 far jump"
 msgstr "Beklenmeyen modül sonu"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "yüksek yazmaçları çekmeye elverişli düşük yazmaç yok"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "sistem kesmesi Servis İşlemleri Thumb kipinde kodlanamaz"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "invalid fpu for target attribute or pragma %qs"
@@ -44070,24 +44070,24 @@ msgstr "%qs özniteliğinin argümanı geçersiz"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute %qE"
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "%qE özniteliği için vektör türü geçersiz"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown target attribute or pragma %qs"
 msgstr "bilinmeyen yazmaç ismi: %s"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "%2$s bit kipinde %1$qs kod modeli desteklenmiyor"
@@ -44148,177 +44148,177 @@ msgstr ""
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "%qs ile belirtilmiş sınıf ismi yok"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fpic%> is not supported"
 msgstr "-pipe desteklenmiyor"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fPIC%> is not supported"
 msgstr "-pipe desteklenmiyor"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fpie%> is not supported"
 msgstr "-pipe desteklenmiyor"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 #| msgid "-pipe not supported"
 msgid "%<-fPIE%> is not supported"
 msgstr "-pipe desteklenmiyor"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 #| msgid "-G and -static are mutually exclusive"
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "-G ve -static birlikte kullanılamaz"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot have default arguments"
 msgid "%qs function cannot have arguments"
 msgstr "%qD öntanımlı argümanlara sahip olamaz"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, fuzzy, gcc-internal-format
 #| msgid "Function does not return a value"
 msgid "%qs function cannot return a value"
 msgstr "işlev bir değer ile donmuyor"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, fuzzy, gcc-internal-format
 #| msgid "%qs appears to be a misspelled signal handler"
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs imlası bozuk bir sinyal eylemcisi gibi görünüyor"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Number of registers used to pass integer arguments"
 msgid "fixed register %s used to pass parameter to function"
 msgstr "Tamsayı argümanları aktarmada kullanılan yazmaçların sayısı"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, fuzzy, gcc-internal-format
 #| msgid "weak declaration of %q+D not supported"
 msgid "writing to address space %qs not supported"
 msgstr "%q+D zayıf bildirimi desteklenmiyor"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variadic functions"
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "%qE özniteliği sadece değişkin işlevlere uygulanır"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is not supported on this platform"
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "bu platformda %qE özniteliği desteklenmiyor"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute does not apply to types"
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "%qs özniteliği veri türlerine uygulanmaz"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to variables"
 msgid "%qE attribute on non-volatile variable"
 msgstr "%qs özniteliği sadece değişkenlere uygulanır"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "bu hedefte -fdata-sections desteklenmiyor"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, fuzzy, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "%2$s bit kipinde %1$qs kod modeli desteklenmiyor"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr ""
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr ""
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D with attribute noinline follows inline declaration "
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "%qD satıriçi öznitelikli olmayan bildirimi satıriçi bildirimi izliyor"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "%q+D bildirimi bir parametreyi gölgeliyor"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 #| msgid "only uninitialized variables can be placed in the .noinit section"
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr ".noinit alanına sadece ilklendirilmiş değişkenler yerleştirilebilir"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, fuzzy, gcc-internal-format
 #| msgid "only initialized variables can be placed into program memory area"
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "program bellek alanına sadece ilklendirilmiş değişkenler yerleştirilebilir"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, fuzzy, gcc-internal-format
 #| msgid "only initialized variables can be placed into program memory area"
 msgid "uninitialized variable %q+D put into program memory area"
@@ -44328,48 +44328,48 @@ msgstr "program bellek alanına sadece ilklendirilmiş değişkenler yerleştiri
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable '%s' at %L cannot have an initializer"
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "Ayrılabilir '%s'  %L'de bir ilklendiriciye sahip olamaz"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, fuzzy, gcc-internal-format
 #| msgid "%qs incompatible attribute ignored"
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%qs uyumsuz özniteliği yoksayıldı"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, fuzzy, gcc-internal-format
 #| msgid "MCU %qs supported for assembler only"
 msgid "architecture %qs supported for assembler only"
 msgstr "MCU `%qs' sadece sembolik çevirici için desteklenir"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, fuzzy, gcc-internal-format
 #| msgid "Conversion from %s to %s at %L"
 msgid "conversion from address space %qs to address space %qs"
 msgstr "%s den %s e dönüşüm (%L'de)"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected end of module in string constant"
 msgid "%s expects a compile time integer constant"
 msgstr "Dizge sabitinde umulmadık modül sonu"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%qs özniteliği bir tamsayı sabit argüman gerektirir"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -44525,7 +44525,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr ""
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, fuzzy, gcc-internal-format
@@ -45230,8 +45230,8 @@ msgstr "1. argüman 5 bitlik bir işaretli sabit olmalı"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "code model %s not supported in PIC mode"
 msgid "code model %s does not support PIC mode"
@@ -45307,277 +45307,277 @@ msgstr "%qs ile belirtilmiş sınıf ismi yok"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, fuzzy, gcc-internal-format
 #| msgid "64-bit ABI not supported in ESA/390 mode"
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "ESA/390 kipinde 64 bitlik ABI desteklenmiyor."
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, fuzzy, gcc-internal-format
 #| msgid "This switch is deprecated; use -Wextra instead"
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "Önerilmiyor; yerine -Wextra kullanın"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr ""
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 #| msgid "-f%s not supported: ignored"
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-f%s  desteklenmiyor: yoksayıldı"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "bu hedefte -fdata-sections desteklenmiyor"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "bu hedefte yığıt sınırları desteklenmiyor"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr ""
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, fuzzy, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "%2$s bit kipinde %1$qs kod modeli desteklenmiyor"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 #| msgid "static is not supported on TPF-OS"
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "static TPF-OS'da desteklenmiyor"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "%2$s bit kipinde %1$qs kod modeli desteklenmiyor"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, fuzzy, gcc-internal-format
 #| msgid "code model %s not supported in PIC mode"
 msgid "code model %qs not supported in x32 mode"
 msgstr "PIC kipinde %s kod modeli desteklenmiyor"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 #| msgid "-m%s not supported in this configuration"
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "-m%s bu yapılandırmada desteklenmiyor"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "%i bitlik kip bunun içinde derlenmiş değil:"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "Seçtiginiz işlemci  x86-64 komutlarını desteklemiyor."
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "-march= seçeneğinin değeri (%s) hatalı"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "-march= seçeneğinin değeri (%s) hatalı"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "%qs özniteliğinin argümanı geçersiz"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "%qs özniteliğinin argümanı geçersiz"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "%qs özniteliğinin argümanı geçersiz"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -mtune= switch"
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "-mtune= seçeneğinin değeri (%s) hatalı"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -mtune= switch"
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "-mtune= seçeneğinin değeri (%s) hatalı"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "%qs özniteliğinin argümanı geçersiz"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "%qs özniteliğinin argümanı geçersiz"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "%qs özniteliğinin argümanı geçersiz"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 #| msgid "-mgp32 used with a 64-bit ABI"
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "-mgp32 bir 64-bit ABI ile kullanılmış"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr ""
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm=%d is not between 0 and %d"
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "-mregparm=%d, 0 ile %d arasında değil"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "-march=%s seçilen ABI ile uyumsuz"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, fuzzy, gcc-internal-format
 #| msgid "typedef declaration invalid in parameter declaration"
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "typedef bildirimi parametre bildiriminde geçersiz"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -45585,323 +45585,323 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 #| msgid "-fprefetch-loop-arrays not supported for this target"
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "bu hedefte -fprefetch-loop-arrays desteklenmiyor"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d, %d ile 12 arasında değil"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mpreferred-stack-boundary=%d, %d ile 12 arasında değil"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "-march=%s seçilen ABI ile uyumsuz"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "modüller arası eniyilemeler henüz C++ için gerçeklenmedi"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, fuzzy, gcc-internal-format
 #| msgid "-msseregparm used without SSE enabled"
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "-msseregparm SSE etkin değilken kullanılmış"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, fuzzy, gcc-internal-format
 #| msgid "-msseregparm used without SSE enabled"
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "-msseregparm SSE etkin değilken kullanılmış"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "SSE komut kümesi iptal edildi, 387 aritmetiği kullanılıyor"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "387 komut kümesi iptal edildi, SSE aritmetiği kullanılıyor"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, fuzzy, gcc-internal-format
 #| msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "birbirlerini etkilemeyenler tabloları doğruluk için ya bir çerçeve göstericisi ya da -maccumulate-outgoing-args gerektirir"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, fuzzy, gcc-internal-format
 #| msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "birbirlerini etkilemeyenler tabloları doğruluk için ya bir çerçeve göstericisi ya da -maccumulate-outgoing-args gerektirir"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, fuzzy, gcc-internal-format
 #| msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr "birbirlerini etkilemeyenler tabloları doğruluk için ya bir çerçeve göstericisi ya da -maccumulate-outgoing-args gerektirir"
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, fuzzy, gcc-internal-format
 #| msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness"
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr "birbirlerini etkilemeyenler tabloları doğruluk için ya bir çerçeve göstericisi ya da -maccumulate-outgoing-args gerektirir"
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "-march=%s seçilen ABI ile uyumsuz"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 #| msgid "unknown -m%s= option specified: '%s'"
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "bilinmeyen -m%s= seçeneği belirtilmiş: '%s'"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "-march=%s seçilen ABI ile uyumsuz"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and cdecl attributes are not compatible"
 msgid "interrupt and naked attributes are not compatible"
 msgstr "stdcall ve cdecl öznitelikleri uyumsuz"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 #| msgid "fastcall and stdcall attributes are not compatible"
 msgid "%qs and %qs attributes are not compatible"
 msgstr "fastcall ve stdcall öznitelikleri uyumsuz"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s ile -mcall-%s uyumsuz."
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s ile -mcall-%s uyumsuz."
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, fuzzy, gcc-internal-format
 #| msgid "standard conversions are not allowed in this context"
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "standart uzlaşımlara bu bağlam içinde izin verilmez"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, fuzzy, gcc-internal-format
 #| msgid "Use a stack protection method for every function"
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "Her işlev için bir yığıt koruma yöntemi kullanılır"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "fastcall ve regparm öznitelikleri uyumlu değil"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, fuzzy, gcc-internal-format
 #| msgid "fastcall and stdcall attributes are not compatible"
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "fastcall ve stdcall öznitelikleri uyumsuz"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qE attribute requires an integer constant argument"
 msgstr "%qs özniteliği bir tamsayı sabit argüman gerektirir"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs attribute larger than %d"
 msgid "argument to %qE attribute larger than %d"
 msgstr "%qs özniteliğine argüman %d den büyük"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "fastcall ve cdecl öznitelikleri uyumsuz"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "fastcall ve stdcall öznitelikleri uyumsuz"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, fuzzy, gcc-internal-format
 #| msgid "fastcall and stdcall attributes are not compatible"
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "fastcall ve stdcall öznitelikleri uyumsuz"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "stdcall ve cdecl öznitelikleri uyumsuz"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "fastcall ve stdcall öznitelikleri uyumsuz"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and fastcall attributes are not compatible"
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "fastcall ve stdcall öznitelikleri uyumsuz"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and fastcall attributes are not compatible"
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "fastcall ve stdcall öznitelikleri uyumsuz"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on non-class types"
 msgid "%qE attribute is used for non-class method"
 msgstr "%qE özniteliği sınıf türleri dışında yoksayılır"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, fuzzy, gcc-internal-format
 #| msgid "%qs incompatible attribute ignored"
 msgid "%qE incompatible attribute ignored"
 msgstr "%qs uyumsuz özniteliği yoksayıldı"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to variables"
 msgid "%qE attribute only available for 32-bit"
 msgstr "%qs özniteliği sadece değişkenlere uygulanır"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "%qs özniteliğinin argümanı bir dizge sabiti değil"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qE attribute requires a string constant argument"
 msgstr "%qs özniteliği bir tamsayı sabit argüman gerektirir"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "%qs özniteliğinin argümanı bir dizge sabiti değil"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 #| msgid "'-%c' option must have argument"
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "'-%c' seçeneğinde argüman eksik"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "interrupt service routine must return %<void%>"
@@ -46114,48 +46114,48 @@ msgstr "ek yazmaç için desteklenmeyen terim boyutu"
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "terim, kod `%c' için geçersiz"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, fuzzy, gcc-internal-format
 #| msgid "no low registers available for popping high registers"
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "yüksek yazmaçları çekmeye elverişli düşük yazmaç yok"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr ""
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, fuzzy, gcc-internal-format
 #| msgid "no class name specified with %qs"
 msgid "unknown architecture specific memory model"
 msgstr "%qs ile belirtilmiş sınıf ismi yok"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr ""
@@ -46178,8 +46178,8 @@ msgstr "dllimport'lu sınıfın %q+D durağan veri üyesinin tanımı"
 msgid "malformed %<#pragma builtin%>"
 msgstr "#pragma builtin bozuk"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "invalid argument of %qE attribute"
@@ -46243,13 +46243,13 @@ msgstr "PRINT_OPERAND: '%c' noktalaması bilinmiyor"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "PRINT_OPERAND boş gösterici"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "argument %qd is not a constant"
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "%qd argümanı bir sabit değil"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "failed to reclaim unneeded function"
 msgid "failed to expand built-in function"
@@ -46385,19 +46385,19 @@ msgstr "assert: %s %s ile uyumlu atanıyor"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%s burada asm içinde kullanılamaz"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "%Jbölüm özniteliği yerel değişkenler için belirtilmiş olamaz"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "%Jbölüm özniteliği yerel değişkenler için belirtilmiş olamaz"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 #| msgid "Duplicate %s attribute at %L"
 msgid "multiple %qE attribute"
@@ -46515,12 +46515,12 @@ msgstr "çok sayıda işlev türü öznitelik belirtilmiş"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr ""
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "yığıt sınırlama ifadesi desteklenmiyor"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<-fexcess-precision=16%> is not supported on this target"
@@ -46564,7 +46564,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr ""
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qE attribute requires a string argument"
@@ -46610,140 +46610,140 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "%qs özniteliğinin argümanı bir dizge sabiti değil"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "tutarsız %qs çağrıları elde edilemez"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr ""
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr ""
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, fuzzy, gcc-internal-format
 #| msgid "function_profiler support for MMIX"
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "MMIX için function_profiler desteği"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "%qs does not support MIPS16 code"
 msgstr "%s %s desteği vermiyor"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr ""
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr ""
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, fuzzy, gcc-internal-format
 #| msgid "Generate SH1 code"
 msgid "MSA MIPS16 code"
 msgstr "SH1 kodu üretilir"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "desteklenmeyen birleşim: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, fuzzy, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "bir %2$s işlemci belirten diğer mimarı seçenekleri ile -%1$s çelişiyor"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, fuzzy, gcc-internal-format
 #| msgid "-march=%s is not compatible with the selected ABI"
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "-march=%s seçilen ABI ile uyumsuz"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, fuzzy, gcc-internal-format
 #| msgid "-mgp64 used with a 32-bit processor"
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "-mgp64 bir 32-bit işlemci ile kullanılmış"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, fuzzy, gcc-internal-format
 #| msgid "-mgp32 used with a 64-bit ABI"
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "-mgp32 bir 64-bit ABI ile kullanılmış"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, fuzzy, gcc-internal-format
 #| msgid "-mgp64 used with a 32-bit ABI"
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "-mgp64 bir 32-bit ABI ile kullanılmış"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, fuzzy, gcc-internal-format
 #| msgid "z/Architecture mode not supported on %s"
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "z/Architecture kipi %s üzerinde desteklenmiyor"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr ""
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr ""
@@ -46753,132 +46753,132 @@ msgstr ""
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "assert: %s %s ile uyumlu atanıyor"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "hedef işlemci THUMB komutlarını desteklemiyor"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "hedef işlemci THUMB komutlarını desteklemiyor"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr ""
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs%s %s"
 msgstr "desteklenmeyen birleşim: %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs %s"
 msgstr "desteklenmeyen birleşim: %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, fuzzy, gcc-internal-format
 #| msgid "Generate position-independent code if possible (large mode)"
 msgid "cannot generate position-independent code for %qs"
 msgstr "Mümkünse, konumdan bağımsız kod üretilir (büyük kip)"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, fuzzy, gcc-internal-format
 #| msgid "Generate position-independent code if possible (large mode)"
 msgid "position-independent code requires %qs"
 msgstr "Mümkünse, konumdan bağımsız kod üretilir (büyük kip)"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr ""
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, fuzzy, gcc-internal-format
 #| msgid "z/Architecture mode not supported on %s"
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "z/Architecture kipi %s üzerinde desteklenmiyor"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, fuzzy, gcc-internal-format
 #| msgid "z/Architecture mode not supported on %s"
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "z/Architecture kipi %s üzerinde desteklenmiyor"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, fuzzy, gcc-internal-format
 #| msgid "-mips3d requires -mpaired-single"
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "-mips3d seçeneği -mpaired-single gerektirir"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, fuzzy, gcc-internal-format
 #| msgid "-frepo must be used with -c"
 msgid "%qs must be used with %qs"
 msgstr "-frepo, -c ile kullanilmalı"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "hedef işlemci THUMB komutlarını desteklemiyor"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr ""
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "hedef işlemci THUMB komutlarını desteklemiyor"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, fuzzy, gcc-internal-format
 #| msgid "Use the bit-field instructions"
 msgid "%qs requires branch-likely instructions"
 msgstr "Bit alanı komutları kullanılır"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "hedef işlemci THUMB komutlarını desteklemiyor"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "mips16 işlev ayrımlama"
@@ -47831,60 +47831,60 @@ msgstr "%<#pragma%> burada kullanılamaz"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "'#pragma options' sonunda karışıklık"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is not supported on this platform"
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "bu platformda %qE özniteliği desteklenmiyor"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "malformed %<target()%> attribute"
 msgstr "%qs özniteliğinin argümanı geçersiz"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 #| msgid "alias argument not a string"
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "alias argümanı bir dizge değil"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<#pragma pack%> - ignored"
 msgid "malformed %<target(\"%s\")%> attribute"
@@ -47954,186 +47954,210 @@ msgstr "%qT türü %qT türüne dönüştürülemiyor"
 msgid "capture by copy of RVV type %qT"
 msgstr "%s içi boş %qT türüne bir gösterici olamaz"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+#| msgid "built-in function %q+D declared as non-function"
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+#| msgid "built-in function %q+D declared as non-function"
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+#| msgid "built-in function %q+D declared as non-function"
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+#| msgid "built-in function %q+D declared as non-function"
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %q+D declared as non-function"
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%D(%A)%>"
 msgid "no matching function call to %qE with empty arguments"
 msgstr "%<%D(%A)%> çağrısı ile eşleşen bir işlev yok"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 #| msgid "Unknown value %qs of -mmacosx-version-min"
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "-mmacosx-version-min için %qs değeri bilinmiyor"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr ""
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "AltiVec argümanı prototipsiz işleve aktarıldı"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 #| msgid "Use the Cray Pointer extension"
 msgid "%s %qT requires the V ISA extension"
 msgstr "Cray Göstericisi eklentisi kullanılır"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %q+D declared as non-function"
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "%qs özniteliğinin argümanı bir dizge sabiti değil"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on non-class types"
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qE özniteliği sınıf türleri dışında yoksayılır"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qs requires an integer constant"
 msgstr "%qs özniteliği bir tamsayı sabit argüman gerektirir"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support interworking"
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "hedef işlemci beraber çalışmayı desteklemiyor"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 msgid "code model %qs with %qs"
 msgstr "%2$s bit kipinde %1$qs kod modeli desteklenmiyor"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d, %d ile 12 arasında değil"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid class name"
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs geçerli bir sınıf ismi değil"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid output file"
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs geçerli bir çıktı dosyası değil"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot have default arguments"
 msgid "%qs function cannot have different interrupt type"
 msgstr "%qD öntanımlı argümanlara sahip olamaz"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -48410,33 +48434,33 @@ msgstr "%q+D ya iki argüman alır ya da hiç almaz"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "%q+D ya iki argüman alır ya da hiç almaz"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "%2$qE işlevinin %1$d. argümanına aktarım gösterici hedef türündeki niteleyicileri iptal ediyor"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter combination for AltiVec intrinsic"
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "AltiVec yerleşiği için parametre birleşimi geçersiz"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "%qs is not supported in this compiler configuration"
@@ -48480,32 +48504,24 @@ msgstr "%qT ve %qT türündeki terimler iki terimli `%qO' için geçersiz"
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "GCC vektörü başvurusu tarafından aktarıldı: bir uyumluluk garanti etmeksizin standartdışı ABI eklentisi"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, fuzzy, gcc-internal-format
-#| msgid "Use EABI"
-msgid "%qs requires the ELFv2 ABI"
-msgstr "EABI kullanılır"
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "yığıt çerçevesi çok büyük"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "too few arguments to function %qE"
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "%qE işlevi için çok az argüman belirtildi"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qs uses register r29"
 msgstr "%<__thread%> %<register%> ile kullanılmış"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr ""
@@ -48644,118 +48660,128 @@ msgstr "Çağrı taşırmalı hedef yazmacı gerekir"
 msgid "unknown option for %<%s=%s%>"
 msgstr "bilinmeyen -m%s= seçeneği belirtilmiş: '%s'"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, fuzzy, gcc-internal-format
 #| msgid "Deprecated.  This switch has no effect"
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "Önerilmiyor. Bu seçenek etkisizdir."
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "bu ABI için 64 bitlik profilleme kodu yok"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "bir sağ taraf ifadesi olan %<this%>'in adresi alınamaz"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "AltiVec türlerde %<long double%> kullanımı geçersiz"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "AltiVec türlerde mantıksal türlerin kullanımı geçersiz"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "AltiVec türlerde %<complex%> kullanımı geçersiz"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 #| msgid "use of boolean types in AltiVec types is invalid"
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "AltiVec türlerde mantıksal türlerin kullanımı geçersiz"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<long%> in AltiVec types is invalid for 64-bit code"
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "AltiVec türlerde %<long%> kullanımı 64 bitlik kod için geçersiz"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "AltiVec türlerde %<long%> kullanımı önerilmiyor; %<int%> kullanın"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<long long%> in AltiVec types is invalid"
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "AltiVec türlerde %<long long%> kullanımı geçersiz"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<double%> in AltiVec types is invalid"
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "AltiVec türlerde %<double%> kullanımı geçersiz"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<::%>"
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "%<::%> kullanımı geçersiz"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma%> is not allowed here"
 msgid "%s%qs%s is not allowed"
 msgstr "%<#pragma%> burada kullanılamaz"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, fuzzy, gcc-internal-format
 #| msgid "spec '%s' is invalid"
 msgid "%s%qs%s is invalid"
 msgstr "spec '%s' geçersiz"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "Virtual function multiversioning not supported"
 msgstr "yığıt sınırlama ifadesi desteklenmiyor"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %q+D declared as non-function"
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %q+D declared as non-function"
 msgid "type %<__vector_pair%> requires the %qs option"
@@ -48804,7 +48830,7 @@ msgstr ""
 msgid "builtin %qs can only be used on vector types"
 msgstr "%qs sadece işlevler için belirtilebilir"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, fuzzy, gcc-internal-format
 #| msgid "invalid option argument %qs"
 msgid "constant value required for builtin %qF argument %d"
@@ -48880,247 +48906,247 @@ msgstr "%qs önerilmiyor"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "sabit argüman %qs için aralık dışında"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "%d. şablon argümanı geçersiz"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "sabit argüman %qs için aralık dışında"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "sabit argüman %qs için aralık dışında"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot resolve address of overloaded function"
 msgid "unresolved overloaded builtin"
 msgstr "%s aşırı yüklü işlevin adresini çözümleyemiyor"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, fuzzy, gcc-internal-format
 #| msgid "bad builtin fcode"
 msgid "bad builtin icode"
 msgstr "hatalı yerleşik fcode"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to builtin function"
 msgid "invalid argument %d for builtin %qF"
 msgstr "yerleşik işleve aktarılan argüman geçersiz"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "%qs özniteliğinin argümanı bir dizge sabiti değil"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "Yerel değişkenlerin toplam boyutu mimarinin izin verdigi sınırı aşıyor"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 #| msgid "frame size of %qs is "
 msgid "frame size of %qs is %wd bytes"
 msgstr "%qs çerçevi boyutu "
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs özdevimli yığıt tahsisi kullanıyor"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 #| msgid "nested function %qs declared %<extern%>"
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "iç işlev %qs %<extern%> olarak bildirilmiş"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "ESA/390 kipinde 64 bitlik ABI desteklenmiyor."
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Restrict the use of hardware floating-point instructions to 32-bit operations"
 msgid "hardware vector support not available on %s"
 msgstr "Donanım kayan nokta komutlarının kullanımını 32 bitlik işlemlerle sınırlar"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Restrict the use of hardware floating-point instructions to 32-bit operations"
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "Donanım kayan nokta komutlarının kullanımını 32 bitlik işlemlerle sınırlar"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "Restrict the use of hardware floating-point instructions to 32-bit operations"
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "Donanım kayan nokta komutlarının kullanımını 32 bitlik işlemlerle sınırlar"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, fuzzy, gcc-internal-format
 #| msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "-mbackchain -mpacked-stack -mhard-float bir arada desteklenmiyor"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "yığıt boyutunun yığıt koruma değerinden büyük olması gerekir"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "yığıt boyutu 64k'dan büyük olmamalıdır"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, fuzzy, gcc-internal-format
 #| msgid "-mstack-guard implies use of -mstack-size"
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "-mstack-guard, -mstack-size uyguluyor"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is not supported on this platform"
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "bu platformda %qE özniteliği desteklenmiyor"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 #| msgid "argument to \"%s\" should be a non-negative integer"
 msgid "arguments to %qs should be non-negative integers"
 msgstr "\"%s\" için argüman sıfır ya da pozitif bir tamsayı olmalı"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs attribute larger than %d"
 msgid "argument to %qs is too large (max. %d)"
 msgstr "%qs özniteliğine argüman %d den büyük"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 #| msgid "alias argument not a string"
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "alias argümanı bir dizge değil"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_saveregs not supported by this target"
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "__builtin_saveregs bu hedef tarafından desteklenmiyor"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 #| msgid "invalid punctuation %qc in constraint"
 msgid "invalid cc output constraint: %qs"
 msgstr "kısıt içindeki `%qc' işareti geçersiz"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "multiple function type attributes specified"
 msgid "multiple cc output constraints not supported"
 msgstr "çok sayıda işlev türü öznitelik belirtilmiş"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, fuzzy, gcc-internal-format
 #| msgid "asm-specifier for variable %qs conflicts with asm clobber list"
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "%qs değişkeni için asm belirteci, asm taşırma listesi ile çelişiyor"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument"
 msgid "invalid type for cc output constraint"
@@ -49602,8 +49628,8 @@ msgstr "%qE özniteliği yoksayıldı"
 msgid "attribute %qs applies to array types only"
 msgstr "%qs özniteliği sadece değişkenlere uygulanır"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "void değer yoksayılması gerekirken yoksayılmadı"
@@ -49682,7 +49708,7 @@ msgstr "%q+D dizisinin türü örtük ilklendirme ile uyumsuz olarak tamamlanmı
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "%qD zaten bu bağlamda bildirilmiş"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, fuzzy, gcc-internal-format
 #| msgid "%J  original definition appeared here"
 msgid "originally defined here"
@@ -49934,7 +49960,7 @@ msgstr "%qD bildirimi bir önceki değişken olmayan bildirimi gölgeliyor"
 msgid "declaration of %qD shadows a parameter"
 msgstr "%q+D bildirimi bir parametreyi gölgeliyor"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "%qD bildirimi bir global bildirimi gölgeliyor"
@@ -49944,7 +49970,7 @@ msgstr "%qD bildirimi bir global bildirimi gölgeliyor"
 msgid "declaration of %qD shadows a previous local"
 msgstr "%qD bildirimi önceki yereli gölgeliyor"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, fuzzy, gcc-internal-format
 #| msgid "%Jshadowed declaration is here"
 msgid "shadowed declaration is here"
@@ -50018,7 +50044,7 @@ msgstr "%H%qE bildirilmemiş (bu işlevde ilk kullanımı)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "%H(Bildirilmemiş her betimleyici görüldüğü her işlev"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "%qE yaftası işlev dışına başvuruyor"
@@ -50055,7 +50081,7 @@ msgstr "deyim ifadesine jump"
 msgid "duplicate label declaration %qE"
 msgstr "%qE yaftası bildirimi yinelenmiş"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "yinelenmiş %qD yaftası"
@@ -50095,7 +50121,7 @@ msgstr "deyim ifadesine jump"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%H%qEyanlış etiket çeşidi olarak tanımlı"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on types"
 msgid "%qE attribute applied to %qD with void return type"
@@ -50252,12 +50278,12 @@ msgstr "ISO C90 %<[*]%> dizi bildirimlerini desteklemez"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr ""
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%s%> not allowed to be specified in this context"
@@ -50268,7 +50294,7 @@ msgstr "bu kapsamda %<this%> kullanılamaz"
 msgid "%q+D is usually a function"
 msgstr "%q+D çoğu kez bir işlevdir"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, fuzzy, gcc-internal-format
 #| msgid "no previous declaration for %q+D"
 msgid "no previous declaration for %qD"
@@ -50351,7 +50377,7 @@ msgstr "oynak alanlı nesne yazmaça konulamaz"
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "ilklendirilmemiş sabit %qD"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -50556,7 +50582,7 @@ msgstr "%qs parametresi için saklama sınıfı belirtilmiş"
 msgid "storage class specified for unnamed parameter"
 msgstr "%qs parametresi için saklama sınıfı belirtilmiş"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "veri türü ismi için saklama sınıfı belirtildi"
@@ -50629,7 +50655,7 @@ msgstr "işlev dizisi olarak %qs bildirimi"
 msgid "declaration of type name as array of functions"
 msgstr "işlev dizisi olarak %qs bildirimi"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "esnek dizi üyeli yapı kullanımı geçersiz"
@@ -50753,7 +50779,7 @@ msgstr "%qs dizi ile dönen işlev olarak bildirilmiş"
 msgid "function definition has qualified void return type"
 msgstr "işlev tanımı nitelikli void dönüş türü içeriyor"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "tür niteleyicileri işlev dönüş türünde yok sayıldı"
@@ -50898,7 +50924,7 @@ msgstr "ISO C 'const' ya da 'volatile' işlev türlerini yasaklar"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "veri üyesi değişken olarak değiştirilmiş %qT türünde olamayabilir"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "void bildirimli değişken ya da alan %qE"
@@ -51017,7 +51043,7 @@ msgstr "değişkene göre değişen türde betimleyici etki alanına jump"
 msgid "object with variably modified type must have no linkage"
 msgstr ""
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "işlev bildirimi bir prototip değil"
@@ -51112,18 +51138,18 @@ msgstr "%<union %E%> iç içe yeniden tanımlanmış"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "%<struct %E%> iç içe yeniden tanımlanmış"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr ""
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 #| msgid "unknown field %qE specified in initializer"
 msgid "%qT defined in underspecified object initializer"
 msgstr "ilklendiricide bilinmeyen %qE alanı belirtilmiş"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "bildirim hiçbir şey bildirmiyor"
@@ -51155,387 +51181,387 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "union hiç isimli üye içermiyor"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "union hiç üye içermiyor"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "yapı hiç isimli üye içermiyor"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "yapı hiç üye içermiyor"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member in union"
 msgid "flexible array member in union"
 msgstr "%Junion içinde esnek dizi üye"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member not at end of struct"
 msgid "flexible array member not at end of struct"
 msgstr "%Jesnek dizi yapının son üyesi değil"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member in union"
 msgid "flexible array member in a struct with no named members"
 msgstr "%Junion içinde esnek dizi üye"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member not at end of struct"
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "%Jesnek dizi yapının son üyesi değil"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qs is too large"
 msgid "type %qT is too large"
 msgstr "%qs dizisinin boyutu çok büyük"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr ""
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "birleşik yapı şeffaf olamaz"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 #| msgid "jump into scope of identifier with variably modified type"
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "değişkene göre değişen türde betimleyici etki alanına jump"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "%<struct %E%> yeniden tanımlanmış"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "%<enum %E%> iç içe yeniden tanımlanmış"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "%<enum %E%> yeniden bildirilmiş"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, fuzzy, gcc-internal-format
 #| msgid "specified mode too small for enumeral values"
 msgid "specified mode too small for enumerated values"
 msgstr "belirtilen kip sırali sayısal değerler için çok küçük"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "sembolik sabit grubunun değerleri en büyük tamsayı aralığını aşıyor."
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "sembolik sabit grubunun değerleri en büyük tamsayı aralığını aşıyor."
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of %<enum %E%>"
 msgid "conflicting redefinition of enum %qT"
 msgstr "%<enum %E%> iç içe yeniden tanımlanmış"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "%qE için sembolik sabit değeri bir tamsayı sabit değil"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant"
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "%qE için sembolik sabit değeri bir tamsayı sabit değil"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "sembolik sabit listesi değerlerinde taşma"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumerator value outside the range of underlying type"
 msgstr "sembolik sabit grubunun değerleri en büyük tamsayı aralığını aşıyor."
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "enumerator value outside the range of %qs"
 msgstr "ISO C sembolik sabit grubunun değerlerini %<int%> kapsamında sınırlar"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C sembolik sabit grubunun değerlerini %<int%> kapsamında sınırlar"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D given attribute noinline"
 msgid "inline function %qD given attribute %qs"
 msgstr "satıriçi %q+D işlevine satıriçi olmayan öznitelik verilmiş"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "dönüş türü, bir içi boş tür"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "dönen tür %<int%> türüne öntanımlıdir"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, fuzzy, gcc-internal-format
 #| msgid "field %qs declared as a function"
 msgid "%q+D defined as variadic function without prototype"
 msgstr "%qs alanı bir işlev olarak bildirilmiş"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, fuzzy, gcc-internal-format
 #| msgid "no previous prototype for %q+D"
 msgid "no previous prototype for %qD"
 msgstr "%q+D için önceki prototip yok"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D was used with no prototype before its definition"
 msgid "%qD was used with no prototype before its definition"
 msgstr "%q+D tanımlanmadan önce prototipsiz kullanılmış"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D was used with no declaration before its definition"
 msgid "%qD was used with no declaration before its definition"
 msgstr "%q+D tanımından önce bildirimsiz kullanılmış"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, fuzzy, gcc-internal-format
 #| msgid "return type of %q+D is not %<int%>"
 msgid "return type of %qD is not %<int%>"
 msgstr "%q+D için dönüş türü %<int%> değil"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr ""
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is normally a non-static function"
 msgid "%qD is normally a non-static function"
 msgstr "%q+D normalde bir static olmayan işlevdir"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, fuzzy, gcc-internal-format
 #| msgid "%Jold-style parameter declarations in prototyped function definition"
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "%Jprototipli işlev tanımında eski tarz parametre bildirimi"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, fuzzy, gcc-internal-format
 #| msgid "%Jtraditional C rejects ISO C style function definitions"
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "%Jgeleneksel C, ISO C tarzı işlev tanımlarına izin vermez"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr ""
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, fuzzy, gcc-internal-format
 #| msgid "%Jold-style function definition"
 msgid "old-style function definition"
 msgstr "%Jeski tarz işlev tanımı"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, fuzzy, gcc-internal-format
 #| msgid "%Jparameter name missing from parameter list"
 msgid "parameter name missing from parameter list"
 msgstr "%Jparametre ismi parametre listesinde yok"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a non-parameter"
 msgid "%qD declared as a non-parameter"
 msgstr "%q+D bir parametre olarak bildirilmemiş"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, fuzzy, gcc-internal-format
 #| msgid "multiple parameters named %q+D"
 msgid "multiple parameters named %qD"
 msgstr "%q+D isimli çok sayıda parametre"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D declared with void type"
 msgid "parameter %qD declared with void type"
 msgstr "%q+D parametresi void olarak bildirilmiş"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, fuzzy, gcc-internal-format
 #| msgid "type of %q+D defaults to %<int%>"
 msgid "type of %qD defaults to %<int%>"
 msgstr "%q+D için tür öntanımlı olarak %<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D has incomplete type"
 msgid "parameter %qD has incomplete type"
 msgstr "%q+D parametresi tamamlanmamış türde"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, fuzzy, gcc-internal-format
 #| msgid "declaration for parameter %q+D but no such parameter"
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "%q+D parametresi için bildirim var ama böyle bir parametre yok"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "argüman sayısı yerleşik prototiple uyumsuz"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "argüman sayısı prototiple uyumsuz"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, fuzzy, gcc-internal-format
 #| msgid "%Hprototype declaration"
 msgid "prototype declaration"
 msgstr "%Hprototip bildirimi"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "yükseltgenmiş argüman %qD yerleşik prototiple uyumsuz"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "yükseltgenmiş argüman %qD prototiple uyumsuz"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "%qD argümanı yerleşik prototiple eslesmiyor"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "%qD argümanı prototiple uyumsuz"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "void olmayan dönüşlü işlevde `return' deyimi yok"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD is initialized"
 msgid "parameter %qD set but not used"
 msgstr "%qD parametresi ilklendirilmiş"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, fuzzy, gcc-internal-format
 #| msgid "%<for%> loop initial declaration used outside C99 mode"
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "%<for%> döngüsünün ilk bildirimi C99 kipinin dışında kullanılmış"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, fuzzy, gcc-internal-format
 #| msgid "(if you use -fpermissive G++ will accept your code)"
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "(-fpermissive kullanırsanız G++ kodunuzu kabul edecek)"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 %<[*]%> dizi bildirimlerini desteklemez"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of static variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "%<for%> döngüsünün ilk bildiriminde statik değişken %q+D bildirimi"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "%<for%> döngüsünün ilk bildiriminde %<extern%> değişken %q+D bildirimi"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> %<for%> döngüsünün ilk bildiriminde bildirilmiş"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> %<for%> döngüsünün ilk bildiriminde bildirilmiş"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> %<for%> döngüsünün ilk bildiriminde bildirilmiş"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of non-variable %q+D in %<for%> loop initial declaration"
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "%<for%> döngüsünün ilk bildiriminde değişken olmayan %q+D bildirimi"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr ""
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration specifiers"
 msgid "duplicate %qE declaration specifier"
 msgstr "bildirim belirteçleri umuluyordu"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "bildirim belirteçlerinde çok sayıda saklama sınıfı"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%qs used with %<auto%>"
@@ -51543,277 +51569,277 @@ msgstr "%<__thread%> %<auto%> ile kullanılmış"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%<__thread%> %<register%> ile kullanılmış"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "bildirim belirteçleri içinde iki veya daha fazla veri türü"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> GCC için çok uzun"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 %<long long%>'u desteklemez"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 karmaşık türleri desteklemez"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support saturating types"
 msgstr "ISO C karmaşık tamsayı türleri desteklemez"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "%qE yinelenmiş"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C karmaşık tamsayı türleri desteklemez"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<__int%d%> is not supported on this target"
 msgstr "bu hedefte yığıt sınırları desteklenmiyor"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support complex types"
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 karmaşık türleri desteklemez"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C karmaşık tamsayı türleri desteklemez"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 #| msgid "stack limits not supported on this target"
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "bu hedefte yığıt sınırları desteklenmiyor"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<long long%>"
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C90 %<long long%>'u desteklemez"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "fixed-point types not supported for this target"
 msgstr "bu hedefte -fdata-sections desteklenmiyor"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C karmaşık tamsayı türleri desteklemez"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "dizi boyutu bir tümleyen sabit ifadesi değil"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant"
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "%qE için sembolik sabit değeri bir tamsayı sabit değil"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE bir typedef veya yerleşik veri türü olarak başarısız"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE bildirimin başlangıcında değil"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%qE used with %<auto%>"
 msgstr "%<__thread%> %<auto%> ile kullanılmış"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<register%>"
 msgstr "%<__thread%> %<register%> ile kullanılmış"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qE used with %<typedef%>"
 msgstr "%<__thread%> %<typedef%> ile kullanılmış"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<constexpr%>"
 msgstr "%<__thread%> %<register%> ile kullanılmış"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "ISO C99 does not support %qE"
 msgstr "%s %s desteği vermiyor"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<long long%>"
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 %<long long%>'u desteklemez"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<extern%> öncesinde %<__thread%>"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<static%>  öncesinde %<__thread%>"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%<__thread%> %<auto%> ile kullanılmış"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<extern%>"
 msgstr "%<__thread%> %<register%> ile kullanılmış"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%qE used with %qs"
 msgstr "%<__thread%> %qE ile kullanılmış"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr ""
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%qs used with %qE"
 msgstr "%<__thread%> %qE ile kullanılmış"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%<constexpr%> used with %qE"
 msgstr "%<__thread%> %qE ile kullanılmış"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, fuzzy, gcc-internal-format
 #| msgid "%<@try%> without %<@catch%> or %<@finally%>"
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<@catch%> veya %<@finally%> olmaksızın %<@try%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C salt %<complex%>i %<double complex%> anlamında desteklemez"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support complex integer types"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C karmaşık tamsayı türleri desteklemez"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C karmaşık tamsayı türleri desteklemez"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 #| msgid "Fixed line length must be at least seven."
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "Sabit satır uzunluğu en az yedi olmalıdır"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<long long%>"
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++ %<long long%> desteklemez"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, fuzzy, gcc-internal-format
 #| msgid "left shift count is negative"
 msgid "left shift of negative value"
 msgstr "sola kaydırma sayısı negatif"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "sola kaydırma sayısı negatif"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "sağa kaydırma sayısı negatif"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "sola kaydırma sayısı tür genişliğinden büyük ya da eşit"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "sağa kaydırma sayısı tür genişliğinden büyük ya da eşit"
@@ -51846,7 +51872,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr "%J  diğer tür burada"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected end of module"
 msgid "expected end of line"
@@ -51858,8 +51884,8 @@ msgstr "Beklenmeyen modül sonu"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C boş kaynak dosyalarına izin vermez"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -51902,9 +51928,9 @@ msgstr "bilinmeyen yazmaç ismi: %s"
 msgid "unknown type name %qE"
 msgstr "bilinmeyen yazmaç ismi: %s"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "bildirim belirteçleri umuluyordu"
@@ -51938,7 +51964,7 @@ msgstr ""
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "betimleyici veya %<(%> umuluyordu"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored for %qE"
 msgid "prefix attributes are ignored for methods"
@@ -51962,7 +51988,7 @@ msgstr "Öznitelik bit ismi umuluyordu"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "bölüm özniteliğine %q+D için izin verilmez"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 #| msgid "section attribute not allowed for %q+D"
 msgid "%<assume%> attribute not followed by %<;%>"
@@ -52064,7 +52090,7 @@ msgstr "bütünleyen ifade %qE bir sabit değil"
 msgid "static assertion failed: %E"
 msgstr "CRIS-port olumlaması başarısız: "
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, fuzzy, gcc-internal-format
 #| msgid "CRIS-port assertion failed: "
 msgid "static assertion failed"
@@ -52143,10 +52169,10 @@ msgstr "%d. şablon argümanı geçersiz"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "betimleyici umuluyordu"
@@ -52305,7 +52331,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -52315,8 +52341,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -52502,12 +52528,12 @@ msgstr "ISO C ?: üç terimlisinin orta teriminin atlanmasına izin vermez"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "first %<sizeof%> operand was declared here"
@@ -52676,7 +52702,7 @@ msgstr "ISO C90 %<[*]%> dizi bildirimlerini desteklemez"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "ifade umuluyordu"
@@ -53026,12 +53052,12 @@ msgstr "bildirim belirteçleri umuluyordu"
 msgid "no type or storage class may be specified here,"
 msgstr "%qs için saklatım sınıfı belirtilmiş"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr ""
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing property attribute"
@@ -53043,61 +53069,61 @@ msgstr "Code özniteliği eksik"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "Hatalı işleç"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr ""
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 #| msgid "misplaced %<@%D%> Objective-C++ construct"
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "yanlış yere konmuş %<@%D%> Nesnel-C++ oluşumu"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration or statement"
 msgid "expected %qE selector name"
 msgstr "bildirim veya deyim umuluyordu"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr ""
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "bu kapsamda %<this%> kullanılamaz"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC memregs must precede any function decls"
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "#pragma GCC memregs bir işlev bildirimi ile öncelenmeli"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr ""
@@ -53108,13 +53134,13 @@ msgstr ""
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "#pragma GCC memregs bir işlev bildirimi ile öncelenmeli"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, fuzzy, gcc-internal-format
 #| msgid "%s statement expected at %L"
 msgid "for, while or do statement expected"
 msgstr "%s deyimi %L'de umuluyordu"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, fuzzy, gcc-internal-format
 #| msgid "malformed #pragma GCC pch_preprocess, ignored"
 msgid "%<#pragma GCC pch_preprocess%> must be first"
@@ -53122,13 +53148,13 @@ msgstr "#pragma GCC pch_preprocess bozuk, yoksayıldı"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %qs clauses"
@@ -53146,73 +53172,73 @@ msgstr "%L'deki ifade değişmez olmalı"
 msgid "expected %<)%> or %<,%>"
 msgstr "%<,%> veya %<;%> umuluyordu"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is not a variable"
 msgstr "%qD bir şablon değil"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is not a pointer variable"
 msgstr "%qD bir şablon değil"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "collapse argument needs positive constant integer expression"
 msgstr "işaretli ve işaretsiz tamsayı ifadeler arasında karşılaştırma"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<none%> or %<present%>"
 msgstr "%<,%> veya %<;%> umuluyordu"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "%<=%>, %<,%>, %<;%>, %<asm%> veya %<__attribute__%> umuluyordu"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "expected constant logical expression"
 msgstr "ifade umuluyordu"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<data%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<if%> clauses"
 msgstr "girdi dosyası sayısı çok fazla"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<if%> clauses without modifier"
 msgstr "girdi dosyası sayısı çok fazla"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -53237,25 +53263,25 @@ msgstr ""
 msgid "%<num_tasks%> value must be positive"
 msgstr "%s etiketi (%L'de) %s türünde olmalı"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC memregs must precede any function decls"
 msgid "%<grainsize%> value must be positive"
 msgstr "#pragma GCC memregs bir işlev bildirimi ile öncelenmeli"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, fuzzy, gcc-internal-format
 #| msgid "%s at %L must be a scalar"
 msgid "%<priority%> value must be non-negative"
 msgstr "%s' (%L'de) bir değişmez olmalıdır"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "ifade umuluyordu"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr ""
@@ -53266,105 +53292,105 @@ msgstr ""
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr ""
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr ""
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, fuzzy, gcc-internal-format
 #| msgid "Expression at %L must be scalar"
 msgid "%qs expression must be integral"
 msgstr "%L'deki ifade değişmez olmalı"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, fuzzy, gcc-internal-format
 #| msgid "%s tag at %L must be of type %s"
 msgid "%qs value must be positive"
 msgstr "%s etiketi (%L'de) %s türünde olmalı"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments for format"
 msgid "too many %<static%> arguments"
 msgstr "biçim için argüman sayısı çok fazla"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, fuzzy, gcc-internal-format
 #| msgid "Expected attribute bit name"
 msgid "unexpected argument"
 msgstr "Öznitelik bit ismi umuluyordu"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute argument not an integer constant"
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "%qs öznitelik argümanı bir tamsayı sabit değil"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<self%> clauses"
 msgstr "girdi dosyası sayısı çok fazla"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "%<,%> veya %<;%> umuluyordu"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<concurrent%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "ordered argument needs positive constant integer expression"
 msgstr "işaretli ve işaretsiz tamsayı ifadeler arasında karşılaştırma"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr ""
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr ""
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 #| msgid "%s tag at %L must be of type %s"
 msgid "chunk size value must be positive"
 msgstr "%s etiketi (%L'de) %s türünde olmalı"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_double operand"
 msgid "invalid schedule kind"
@@ -53375,22 +53401,22 @@ msgstr "const_double terim geçersiz"
 msgid "%<num_teams%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr ""
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<allocator%> or %<align%>"
@@ -53402,24 +53428,24 @@ msgstr "%<,%> veya %<;%> umuluyordu"
 msgid "duplicate %qs modifier"
 msgstr "%qs yinelenmiş"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "işaretli ve işaretsiz tamsayı ifadeler arasında karşılaştırma"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate cv-qualifier"
 msgid "multiple linear modifiers"
 msgstr "cv-niteleyici yinelenmiş"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate cv-qualifier"
 msgid "multiple %<step%> modifiers"
@@ -53440,70 +53466,70 @@ msgstr ""
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "assert: %s %s ile uyumlu atanıyor"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 #| msgid "invalid %%d operand"
 msgid "invalid depend kind"
 msgstr "geçersiz %%d terimi"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mask"
 msgid "invalid doacross kind"
 msgstr "mask geçersiz"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<always%> modifiers"
 msgstr "girdi dosyası sayısı çok fazla"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<close%> modifiers"
 msgstr "girdi dosyası sayısı çok fazla"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %<present%> modifiers"
 msgstr "girdi dosyası sayısı çok fazla"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mask"
 msgid "invalid map kind"
 msgstr "mask geçersiz"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "%<,%> veya %<;%> umuluyordu"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr ""
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_double operand"
 msgid "invalid dist_schedule kind"
@@ -53521,97 +53547,97 @@ msgstr "geçersiz döngü komutu"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected an OpenACC clause"
 msgstr "sınıf ismi umuluyordu"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid output file"
 msgid "%qs is not valid for %qs"
 msgstr "%qs geçerli bir çıktı dosyası değil"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a nested class of %qT"
 msgid "%qs must be the first clause of %qs"
 msgstr "%qT %qT'nin alt sınıfı değil"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected an OpenMP clause"
 msgstr "sınıf ismi umuluyordu"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD shadows a global declaration"
 msgid "array section in %<#pragma acc declare%>"
 msgstr "%qD bildirimi bir global bildirimi gölgeliyor"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr ""
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is a variably modified type"
 msgid "invalid OpenACC clause at file scope"
 msgstr "%qT değişkene göre değişen türde"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %<extern%> variable %q+D in %<for%> loop initial declaration"
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "%<for%> döngüsünün ilk bildiriminde %<extern%> değişken %q+D bildirimi"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "statik üye işlevde üye %q+D kullanımı geçersiz"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "dizge sabiti umuluyordu"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr ""
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -53628,7 +53654,7 @@ msgstr "%qD bildirilmemişti"
 msgid "expected function name"
 msgstr "umulmadık düğüm"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member template function"
 msgid "%qD does not refer to a function"
@@ -53640,25 +53666,25 @@ msgstr "%qD bir üye şablon işlevi değil"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "bir işlev tanımıda özniteliklere izin verilmez"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, fuzzy, gcc-internal-format
 #| msgid "attributes are not allowed on a function-definition"
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "bir işlev tanımıda özniteliklere izin verilmez"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC memregs must precede any function decls"
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "#pragma GCC memregs bir işlev bildirimi ile öncelenmeli"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC memregs must precede any function decls"
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "#pragma GCC memregs bir işlev bildirimi ile öncelenmeli"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr ""
@@ -53685,7 +53711,7 @@ msgstr ""
 msgid "modified here"
 msgstr "%q+#D evvelce burada tanımlanmış"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
@@ -53726,122 +53752,122 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many atomic clauses"
 msgstr "girdi dosyası sayısı çok fazla"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many memory order clauses"
 msgstr "girdi dosyası sayısı çok fazla"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, fuzzy, gcc-internal-format
 #| msgid "assert: %s is assign compatible with %s"
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "assert: %s %s ile uyumlu atanıyor"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must not have variable number of arguments"
 msgid "%qs clause requires %qs clause"
 msgstr "%qD değişken sayıda argümana sahip olmamalı"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected junk after function declaration at %C"
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "%C'deki işlev bildiriminden sonra umulmayan döküntü"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<#pragma align%>"
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "%<#pragma align%> bozuk"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "unexpected %<else%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<#pragma align%>"
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "%<#pragma align%> bozuk"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<#pragma align%>"
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "%<#pragma align%> bozuk"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operation on %<__fpreg%>"
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "%<__fpreg%> üzerinde geçersiz işlem"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr ""
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 #| msgid "integral expression %qE is not constant"
 msgid "%<depobj%> expression is not lvalue expression"
@@ -53853,30 +53879,30 @@ msgstr "bütünleyen ifade %qE bir sabit değil"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "bütünleyen ifade %qE bir sabit değil"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "%<=%>, %<,%>, %<;%>, %<asm%> veya %<__attribute__%> umuluyordu"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "%<=%>, %<,%>, %<;%>, %<asm%> veya %<__attribute__%> umuluyordu"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -53887,180 +53913,180 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr "Beklenmeyen modül sonu"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr ""
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<}%>"
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "%<,%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<}%>"
 msgid "expected %<#pragma omp scan%>"
 msgstr "%<,%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr ""
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration or statement"
 msgid "expected iteration declaration or initialization"
 msgstr "bildirim veya deyim umuluyordu"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 #| msgid "not enough type information"
 msgid "not enough nested loops"
 msgstr "tür bilgisi yetersiz"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, fuzzy, gcc-internal-format
 #| msgid "%s statement expected at %L"
 msgid "for statement expected"
 msgstr "%s deyimi %L'de umuluyordu"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable %qs is declared private"
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "gerçeklenim değişkeni %qs private olarak bildirilmiş"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<for%> after %qs"
 msgstr "%<,%> veya %<;%> umuluyordu"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<point%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "%<#pragma align%> %D bildiriminden önce görünmeli, yoksayılıyor"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma align%> %D bildiriminden önce görünmeli, yoksayılıyor"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration or statement"
 msgid "expected trait selector name"
 msgstr "bildirim veya deyim umuluyordu"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, fuzzy, gcc-internal-format
 #| msgid "unknown machine mode %qs"
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "%qs makine kipi bilinmiyor"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr ""
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 #| msgid "%<friend%> can only be specified inside a class"
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<friend%> sadece bir sınıf içinde belirtilebilir"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "%<score%> argument must be constant integer expression"
 msgstr "işaretli ve işaretsiz tamsayı ifadeler arasında karşılaştırma"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 #| msgid "%s at %L must be a scalar"
 msgid "%<score%> argument must be non-negative"
 msgstr "%s' (%L'de) bir değişmez olmalıdır"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected identifier or string literal"
 msgstr "dizge sabiti umuluyordu"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "property must be constant integer expression"
 msgstr "işaretli ve işaretsiz tamsayı ifadeler arasında karşılaştırma"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -54068,314 +54094,314 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 #| msgid "code model %<large%> not supported yet"
 msgid "%<requires%> selector is not supported yet"
 msgstr "%<large%> kod modeli henüz desteklenmiyor"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration or statement"
 msgid "expected context selector set name"
 msgstr "bildirim veya deyim umuluyordu"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<match%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is not a function,"
 msgid "variant %qD is not a function"
 msgstr "%q+D bir işlev değil,"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D has incomplete type"
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "%q+D parametresi tamamlanmamış türde"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "%<#pragma align%> %D bildiriminden önce görünmeli, yoksayılıyor"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma align%> %D bildiriminden önce görünmeli, yoksayılıyor"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<target%>"
 msgstr "%<{%> umuluyordu"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "%<,%> veya %<;%> umuluyordu"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr ""
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute conflicts with %s attribute at %L"
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "%s özniteliği ile %s özniteliği %L'de çelişiyor"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "%<,%> veya %<;%> umuluyordu"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr ""
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD shadows a global declaration"
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "%qD bildirimi bir global bildirimi gölgeliyor"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr ""
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, fuzzy, gcc-internal-format
 #| msgid "expected identifier or %<(%>"
 msgid "expected function-name %<(%>"
 msgstr "betimleyici veya %<(%> umuluyordu"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "%<=%>, %<,%>, %<;%>, %<asm%> veya %<__attribute__%> umuluyordu"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<restrict%>"
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "%<restrict%> kullanımı geçersiz"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %qs or %qs"
 msgstr "%<,%> veya %<;%> umuluyordu"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr ""
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr ""
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 #| msgid "Expected name"
 msgid "expected directive name"
 msgstr "Umulmadık isim"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 #| msgid "unknown demangling style '%s'"
 msgid "unknown assumption clause %qs"
 msgstr "cendereleme tarzı %s bilinmiyor"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected assumption clause"
 msgstr "sınıf ismi umuluyordu"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%<static%> olarak bildirilen `%q+F hiç tanımlanmamış"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable %qs is declared private"
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "gerçeklenim değişkeni %qs private olarak bildirilmiş"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, fuzzy, gcc-internal-format
 #| msgid "%Jparameter %u has incomplete type"
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%J%u. parametre tamamlanmamış türde"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr ""
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr ""
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr ""
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr ""
@@ -54524,7 +54550,7 @@ msgstr "%<void *%> gösterici ilişkilendirmesi"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "indisli değer ne dizi ne de bir gösterici"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "dizi indisi bir tamsayı değil"
@@ -54555,7 +54581,7 @@ msgstr "%qD başvuru olarak bildirilmiş ama ilklendirilmemiş"
 msgid "enum constant defined here"
 msgstr ""
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -54676,19 +54702,19 @@ msgstr "%qT türünden %qT türüne örtük dönüşüme C++'da izin verilmez"
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "%qE işlevi için çok az argüman belirtildi"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, fuzzy, gcc-internal-format
 #| msgid "weak declaration of %q+D after first use results in unspecified behavior"
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "%q+D zayıf bildirimi ilk kullanımdan sonra belirsiz davranışla sonuçlanıyor"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between pointer and integer"
 msgid "comparison between pointer and zero character constant"
 msgstr "gösterici ile tamsayı arasında karşılaştırma"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, fuzzy, gcc-internal-format
 #| msgid "casting %qT to %qT does not dereference pointer"
 msgid "did you mean to dereference the pointer?"
@@ -54715,7 +54741,7 @@ msgstr "çıkartmada işlev göstericisi kullanılmış"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "bir içi boş tür göstericisi üzerinde aritmetik"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic on pointer to an incomplete type"
 msgid "arithmetic on pointer to an empty aggregate"
@@ -55039,7 +55065,7 @@ msgstr "göstericiden farklı tamsayı türlere dönüşüm"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "%qT türündeki işlev çağrısından eşleşmeyen %qT türüne dönüşüm"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "farklı boyuttaki tamsayı türden göstericiye dönüşüm"
@@ -55234,7 +55260,7 @@ msgstr "atamada sol taraf bir biçim özniteliği adayı olabilir"
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "ilklendirmede sol taraf bir biçim özniteliği adayı olabilir"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "dönüş türü bir biçim özniteliği adayı olabilir"
@@ -55452,12 +55478,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "esnek dizi üyesi ilklendirmesi"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -55467,7 +55493,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr "dizge sabitten ilgisiz türde ilklendirilmiş dizi"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "sol değersiz dizi kullanımı geçersiz"
@@ -55499,7 +55525,7 @@ msgstr "ilklendirici öğe bir sabit değil"
 msgid "initializer element is not computable at load time"
 msgstr "ilkledirici öğe yükleme sırasında hesaplanabilir değil"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "opak vektör türleri ilklendirilemez"
@@ -55514,7 +55540,7 @@ msgstr "ilklendiricinin sonunda fazladan parantezli grup"
 msgid "braces around scalar initializer"
 msgstr "skalar ilklendiriciyi kuşatan parantezler"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "iç içe bağlam içinde esnek dizi üyesi ilklendirmesi"
@@ -55608,7 +55634,7 @@ msgstr "struct ilklendiricide gereğinden fazla öğe"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "esnek dizi üyesinin statik olmayan ilklendirmesi"
@@ -55648,7 +55674,7 @@ msgstr "ISO C %<goto *expr;%> kullanımına izin vermez"
 msgid "computed goto must be pointer type"
 msgstr "%2$qE işlevinin %1$d. argümanına uyumsuz gösterici türünde aktarım"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "%<noreturn%> olarak bildirilmiş işlev %<return%> deyimi içeriyor"
@@ -55706,7 +55732,7 @@ msgstr "%<default%> etiketi bir switch deyimi içinde değil"
 msgid "break statement not within loop or switch"
 msgstr "break deyimi switch ya da döngü içinde değil"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -55753,29 +55779,29 @@ msgstr ""
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr ""
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types"
 msgid "comparing vectors with different element types"
 msgstr "?: için terimler farklı türde"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr ""
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %q#T and %q#T"
 msgid "comparison between types %qT and %qT"
 msgstr "%q#T ile %q#T türleri arasında karşılaştırma"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, fuzzy, gcc-internal-format
 #| msgid "comparing floating point with == or != is unsafe"
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
@@ -55852,31 +55878,31 @@ msgstr "doğrudan değer gereken yerde union türünde değer kullanılmış"
 msgid "used vector type where scalar is required"
 msgstr "doğrudan değer gereken yerde yapı türünde değer kullanılmış"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<;%>"
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "%<,%> veya %<;%> umuluyordu"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must not have variable number of arguments"
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD değişken sayıda argümana sahip olmamalı"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' is not a valid class name"
 msgid "%qE is not a variable in %qs clause"
@@ -55889,92 +55915,92 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "girdi dosyası sayısı çok fazla"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must not have variable number of arguments"
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD değişken sayıda argümana sahip olmamalı"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "low bound %qE of array section does not have integral type"
 msgstr "array new içindeki boyut bütünleyici türde olmalı"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "length %qE of array section does not have integral type"
 msgstr "array new içindeki boyut bütünleyici türde olmalı"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' at %C is already defined at %L"
 msgid "expected single pointer in %qs clause"
 msgstr "işlev `%s' (%C'deki) zaten %L'de tanımlı"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, fuzzy, gcc-internal-format
 #| msgid "Copy array sections into a contiguous block on procedure entry"
 msgid "zero length array section in %qs clause"
 msgstr "Dizi bölümlerini yordam girdisinde sürekli bir blokun içine kopyalar"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, fuzzy, gcc-internal-format
 #| msgid "Copy array sections into a contiguous block on procedure entry"
 msgid "array section is not contiguous in %qs clause"
 msgstr "Dizi bölümlerini yordam girdisinde sürekli bir blokun içine kopyalar"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have class type"
 msgid "%qE does not have pointer or array type"
 msgstr "%qE sınıf türüne sahip değil"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 #| msgid "throwing NULL, which has integral, not pointer type"
 msgid "iterator %qD has neither integral nor pointer type"
@@ -55986,19 +56012,19 @@ msgstr "tumleyen, gösterici olmayan NULL yakalanıyor"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "ISO C nitelikli işlev türlerini yasaklar"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D has incomplete type"
 msgid "iterator %qD has const qualified type"
 msgstr "%q+D parametresi tamamlanmamış türde"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field %q+#D with non-integral type"
 msgid "iterator step with non-integral type"
 msgstr "bit-alanı %q+#D tümleyen türde değil"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -56008,35 +56034,35 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 #| msgid "invalid operand for 'o' modifier"
 msgid "end expression refers to outer iterator %qD"
 msgstr "'o' değiştiricisi için terim geçersiz"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, fuzzy, gcc-internal-format
 #| msgid "expresion reference type error at %L"
 msgid "step expression refers to outer iterator %qD"
 msgstr "%L'de ifade başvuru türü hatası"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 #| msgid "Expected integer"
 msgid "expected pointer in %qs clause"
 msgstr "Tamsayı umuluyordu"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr ""
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr ""
@@ -56070,7 +56096,7 @@ msgstr "'%s' tahmini boyutlu dizisine '%s' isim listesinde izin verilmiyor (%C'd
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr ""
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, fuzzy, gcc-internal-format
 #| msgid "reference to %qD is ambiguous"
 msgid "user defined reduction not found for %qE"
@@ -56081,17 +56107,17 @@ msgstr "%qD ile ilişkilendirme belirsiz"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr ""
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -56106,25 +56132,25 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr "vektör silme işlemi için tür ne gösterici ne de dizi"
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not an accessible base of %qT"
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qT erişilebilir bir %qT tabanı değil"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr ""
@@ -56136,34 +56162,34 @@ msgstr ""
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr ""
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable %qs is declared private"
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "gerçeklenim değişkeni %qs private olarak bildirilmiş"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable %qs is declared private"
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "gerçeklenim değişkeni %qs private olarak bildirilmiş"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' is not a valid class name"
 msgid "%qE is not a variable in %<aligned%> clause"
@@ -56186,7 +56212,7 @@ msgstr "%qD değişken sayıda argümana sahip olmamalı"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' is not a valid class name"
 msgid "%qE is not a variable in %<nontemporal%> clause"
@@ -56197,7 +56223,7 @@ msgstr "'%s' geçerli bir sınıf ismi değil"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' is not a valid class name"
 msgid "%qE is not a variable in %<allocate%> clause"
@@ -56209,81 +56235,81 @@ msgstr "'%s' geçerli bir sınıf ismi değil"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "'%s' geçerli bir sınıf ismi değil"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' is not a valid class name"
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "'%s' geçerli bir sınıf ismi değil"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported map expression %qE"
 msgstr "desteklenmeyen birleşim: %s"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, fuzzy, gcc-internal-format
 #| msgid "%qD does not declare a template type"
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD bir şablon türü bildirmiyor"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not an accessible base of %qT"
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qT erişilebilir bir %qT tabanı değil"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr ""
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD bir işlev şablonu değil"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr ""
@@ -56300,23 +56326,23 @@ msgstr "%<->%> için taban terim bir gösterici değil"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "vektör silme işlemi için tür ne gösterici ne de dizi"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr ""
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "too many %qs clauses on a task construct"
 msgstr "girdi dosyası sayısı çok fazla"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr ""
@@ -56326,38 +56352,38 @@ msgstr ""
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -56666,14 +56692,14 @@ msgstr "  %qT türünden %qT türüne dönüşüm için seçiliyor,"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  %qT türünden %qT türüne dönüşüm için seçiliyor,"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -57017,622 +57043,622 @@ msgstr "bir tür dönüşümü olmaksızın %s (belirgin gösterici türleri %qT
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "koşullu ifade içinde enum ve enum olmayan türler"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, fuzzy, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "sonek %2$qs için  %<%1$D(int)%> bildirimi yok, yerine önek işleci deneniyor"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, fuzzy, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "sonek %2$qs için  %<%1$D(int)%> bildirimi yok, yerine önek işleci deneniyor"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 #| msgid "return type of %q+D is not %<int%>"
 msgid "return type of %qD is not %qs"
 msgstr "%q+D için dönüş türü %<int%> değil"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "%q#T ile %q#T arasında karşılaştırma"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to %<(%T) (%A)%>"
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "%<(%T) (%A)%> çağrısı için eşleşme yok"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 #| msgid "call of %<(%T) (%A)%> is ambiguous"
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "%<(%T) (%A)%> çağrısı belirsiz"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr ""
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 #| msgid "implicit declaration of function %qE"
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "%qE işlevinin örtük bildirimi"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr ""
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, fuzzy, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "%2$qT için uygun bir %<%1$s işleci%> yok"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is private within this context"
 msgstr "bu bağlamda"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "declared private here"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is protected within this context"
 msgstr "bu bağlamda"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "declared protected here"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D is inaccessible"
 msgid "%q#D is inaccessible within this context"
 msgstr "%q+#D erişilebilir değil"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, fuzzy, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "%2$qD işlevinin gösterici olmayan %1$P argümanına NULL aktarılması"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "  declared here"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "NULL'dan gösterici olmayan %qT türüne dönüşüm"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, fuzzy, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "%4$qD işlevinin %3$qP. argümanı için %1$qT türü %2$qT türüne dönüştürülemez"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, fuzzy, gcc-internal-format
 #| msgid "converting NULL to non-pointer type"
 msgid "converting %<false%> to pointer type %qT"
 msgstr "NULL'dan gösterici olmayan türe dönüşüm"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, fuzzy, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  %2$qD işlevinin %1$P argümanının ilklendirilmesi"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, fuzzy, gcc-internal-format
 #| msgid "missing braces around initializer for %qT"
 msgid "too many braces around initializer for %qT"
 msgstr "%qT için ilklendiriciyi çevreleyen parantezler yok"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 #, fuzzy
 #| msgid "converting to %qT from %qT"
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "%qT türüne %qT türünden dönüşüm"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 #| msgid "ISO C++ does not allow designated initializers"
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C++ tasarlanmış ilkendiricilere izin vermez"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "%qT türünden %qT türüne dönüşüm geçersiz"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid conversion from %qH to %qI"
 msgstr "%qT türünden %qT türüne dönüşüm geçersiz"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr ""
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 #| msgid "invalid initialization of reference of type %qT from expression of type %qT"
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "%qT türündeki başvurunun %qT türündeki ifadeden ilklendirilmesi geçersiz"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "%qT türündeki sabit olmayan başvurunun geçici %qT türünden ilklendirilmesi geçersiz"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "%qT türündeki sabit olmayan başvurunun geçici %qT türünden ilklendirilmesi geçersiz"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 #| msgid "invalid initialization of reference of type %qT from expression of type %qT"
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "%qT türündeki başvurunun %qT türündeki ifadeden ilklendirilmesi geçersiz"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr ""
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 #, fuzzy
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "%2$q#D işlevinin %<this%> parametresi olarak %1$qT aktarımı niteleyicileri iptal ediyor"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 #| msgid "cannot bind bitfield %qE to %qT"
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "%qE bitalanı %qT türüne bağlanamaz"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "%qE paketli alanı %qT türüne bağlanamaz"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "sağ taraf değeri %qE, %qT türüne bağlanamaz"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 #, fuzzy
 #| msgid "request for implicit conversion from %qT to %qT not permitted in C++"
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "%qT türünden %qT türüne örtük dönüşüme C++'da izin verilmez"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, fuzzy, gcc-internal-format
 #| msgid "cannot pass objects of non-POD type %q#T through %<...%>; call will abort at runtime"
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "POD olmayan %q#T türünün nesneleri %<...%> üzerinden aktarılamaz; çalışma anında çağrı çıkış yaptıracak"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "%q#T türüne başvuru bildirilemez"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, fuzzy, gcc-internal-format
 #| msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "POD olmayan %q#T türünün nesneleri %<...%> üzerinden alınamaz; çalışma anında çağrı çıkış yaptıracak"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of default argument for %q#D"
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "%q#D için öntanımlı argümanın yeniden tanımı"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, fuzzy, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "%2$qD işlevinin %1$d. parametresi için öntanımlı argüman henüz çözümlenmedi"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "işlev çağrısı argümanı bir biçim özniteliği için aday olabilir"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr ""
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, fuzzy, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "%2$q#D işlevinin %<this%> parametresi olarak %1$qT aktarımı niteleyicileri iptal ediyor"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  %qD çağrısında"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT erişilebilir bir %qT tabanı değil"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to %s %q+#D"
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "%s %q+#D için argümanlar çok fazla"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "sınıf olmayan %qT türünde üye göstericisi oluşturulması"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use assignment or value-initialization instead"
 msgstr "bildirim içinde atama (ilklendirme değil)"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use assignment instead"
 msgstr "yerine #include kullanın"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type %qT"
 msgid "; use value-initialization instead"
 msgstr "%qT işlev türüne dönüşüm geçersiz"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "sınıf olmayan %qT türünde üye göstericisi oluşturulması"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "bildirim içinde atama (ilklendirme değil)"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use copy-assignment instead"
 msgstr "yerine #include kullanın"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, fuzzy, gcc-internal-format
 #| msgid "Extension: re-initialization of '%s' at %L"
 msgid "; use copy-initialization instead"
 msgstr "Ek:`%s' için (%L'de) yeniden ilklendirme"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, fuzzy, gcc-internal-format
 #| msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr "POD olmayan %q#T türünün nesneleri %<...%> üzerinden alınamaz; çalışma anında çağrı çıkış yaptıracak"
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, fuzzy, gcc-internal-format
 #| msgid "cannot receive objects of non-POD type %q#T through %<...%>; call will abort at runtime"
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr "POD olmayan %q#T türünün nesneleri %<...%> üzerinden alınamaz; çalışma anında çağrı çıkış yaptıracak"
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%#qT declared here"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr ""
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructor delegates to itself"
 msgstr "kurucular virtual olarak bildirilemez"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI"
 msgstr "%qT %qT'ye %s içinde dönüştürülemez"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "%<%T::%s(%A)%#V%> çağrısı ile eşleşen işlev yok"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "%<%T::%s(%A)%#V%> çağrısı ile eşleşen işlev yok"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "işlev olmayan %qD ye çağrı"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr ""
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%D(%A)%>"
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "%<%D(%A)%> çağrısı ile eşleşen bir işlev yok"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "aşırı yüklü %<%s(%A)%> çağrısı belirsiz"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no non-static data member named %qD"
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "%qT %qD isminde statik olmayan bir üyeye sahip değil"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no non-static data member named %qD"
 msgid "pure virtual %q#D called from constructor"
 msgstr "%qT %qD isminde statik olmayan bir üyeye sahip değil"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no non-static data member named %qD"
 msgid "pure virtual %q#D called from destructor"
 msgstr "%qT %qD isminde statik olmayan bir üyeye sahip değil"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "üye işlev %qD nesne olmaksızın çağrılamaz"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "%qT aktarımı %qT türünü %qT türü üzerinden seçiyor"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "İlkinin en kotü dönüşümü ikincisinden daha iyi olsa bile ISO C++ bunlar belirsizdir der:"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "try making the operator a %<const%> member function"
 msgstr "%qD static olmayan bir üye işlev olmalıdır"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "%qD %qD üzerinden,"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 #| msgid "  for conversion from %qT to %qT"
 msgid "  for conversion from %qH to %qI"
 msgstr "  %qT türünden %qT türüne dönüşüm için seçiliyor,"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  çünkü argüman için dönüşüm süreci daha iyi"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, fuzzy, gcc-internal-format
 #| msgid "default argument specified in explicit specialization"
 msgid "default argument mismatch in overload resolution"
 msgstr "doğrudan özelleştirmede öntanımlı argüman belirtilmiş"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, fuzzy, gcc-internal-format
 #| msgid "candidate is: %+#D"
 msgid " candidate 1: %q#F"
 msgstr "aday: %+#D"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, fuzzy, gcc-internal-format
 #| msgid "candidate is: %+#D"
 msgid " candidate 2: %q#F"
 msgstr "aday: %+#D"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "İlkinin en kotü dönüşümü ikincisinden daha iyi olsa bile ISO C++ bunlar belirsizdir der:"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from a temporary of type %qT"
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "%qT türündeki sabit olmayan başvurunun geçici %qT türünden ilklendirilmesi geçersiz"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 #| msgid "invalid initialization of reference of type %qT from expression of type %qT"
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "%qT türündeki başvurunun %qT türündeki ifadeden ilklendirilmesi geçersiz"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "possibly dangling reference to a temporary"
 msgstr "geçiciye başvuru dönüyor"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr ""
@@ -57686,7 +57712,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q+#D,"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous declaration %q#D"
@@ -58154,7 +58180,7 @@ msgstr "%Jbaşka bir boş yapı içinde esnek dizi"
 msgid "next member %q#D declared here"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "%q#T sınıfın yeniden tanımı"
@@ -58296,7 +58322,7 @@ msgstr "işlev %q+#D için soyut dönüş değeri türü geçersiz"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
@@ -58341,7 +58367,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%q+D normalde bir static olmayan işlevdir"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -58361,7 +58387,7 @@ msgstr "dosya etki alanı boş bildiriminde %<register%>"
 msgid "%q+E is not a constant expression"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
@@ -58384,7 +58410,7 @@ msgstr ""
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
@@ -58437,7 +58463,7 @@ msgstr "%qT bir belirsiz %qT tabanıdır"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
@@ -58585,20 +58611,20 @@ msgstr "dizi indisi bir tamsayı değil"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr ""
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "accessing uninitialized array element"
 msgstr "uye %qD için ilklendirici eksik"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
 msgid "dereferencing a null pointer in %qE"
 msgstr "%<void *%> gösterici ilişkilendirmesi"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -58607,532 +58633,532 @@ msgstr "%<void *%> gösterici ilişkilendirmesi"
 msgid "%qE is not a constant expression"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot appear in a constant-expression"
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "%qD bir sabit ifadesinde bulunamaz"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "accessing uninitialized member %qD"
 msgstr "uye %qD için ilklendirici eksik"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "%qD şablon parametresi %qT türündeyse butunleyen ya da sırali türde olmadığından bir butunleyen sabit ifadesinde kullanılmaz"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr ""
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 #| msgid "global destructors not supported on this target"
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "bu hedefte global yıkıcılar desteklenmiyor"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "uye %qD için ilklendirici eksik"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr ""
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "Sabit ifadesinde tür hatalı"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "allocated here"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "%qD dizisinin boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "%qD dizisinin boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, fuzzy, gcc-internal-format
 #| msgid "no field %qD found in union being initialized"
 msgid "%qD used in its own initializer"
 msgstr "ilklendirilen union içinde %qD diye bir alan yok"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D is not a function,"
 msgid "%q#D is not const"
 msgstr "%q+D bir işlev değil,"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D is private"
 msgid "%q#D is volatile"
 msgstr "%q+#D private'dir"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot appear in a constant-expression"
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD bir sabit ifadesinde bulunamaz"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, fuzzy, gcc-internal-format
 #| msgid "%qD was not declared in this scope"
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD bu etki alanında bildirilmemiş"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, fuzzy, gcc-internal-format
 #| msgid "expression in new-declarator must have integral or enumeration type"
 msgid "%qD does not have integral or enumeration type"
 msgstr "new bildirimli ifade bütünleyici ya da numaralama türünde olmalı"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "%qD dizisinin boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "%qD dizisinin boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "dizi boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "%qD dizisinin boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr ""
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "%qT %qT'ye %s içinde dönüştürülemez"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "statement is not a constant expression"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr "%d lik azami şablon örneklenim derinliği %qD örnekleniminde aşılıyor (azami değeri arttırmak için -ftemplate-depth-NN kullanın)"
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not constant"
 msgid "inline assembly is not a constant expression"
 msgstr "ilklendirici öğe bir sabit değil"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
 msgid "use of %qD"
 msgstr "%qD kullanımı geçersiz"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr "%d lik azami şablon örneklenim derinliği %qD örnekleniminde aşılıyor (azami değeri arttırmak için -ftemplate-depth-NN kullanın)"
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 #| msgid "enumeral and non-enumeral type in conditional expression"
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "koşullu ifade içinde enum ve enum olmayan türler"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not constant"
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "ilklendirici öğe bir sabit değil"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "Sabit ifadesinde tür hatalı"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "%qD şablon parametresi %qT türündeyse butunleyen ya da sırali türde olmadığından bir butunleyen sabit ifadesinde kullanılmaz"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously declared here"
 msgid "pointed-to object declared here"
 msgstr "%q+#D evvelce burada bildirilmiş"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "%qD şablon parametresi %qT türündeyse butunleyen ya da sırali türde olmadığından bir butunleyen sabit ifadesinde kullanılmaz"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "%qD dizisinin boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 #| msgid "integral expression %qE is not constant"
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "bütünleyen ifade %qE bir sabit değil"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 #| msgid "integral expression %qE is not constant"
 msgid "expression %qE is not a constant expression"
 msgstr "bütünleyen ifade %qE bir sabit değil"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%<goto%> is not a constant expression"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "contract predicate is false in constant expression"
 msgstr "dizi boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "unexpected template-id %qE"
 msgstr "deyim umuluyordu"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, fuzzy, gcc-internal-format
 #| msgid "function not inlinable"
 msgid "function concept must be called"
 msgstr "işlev satıriçine alınabilir değil"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 #| msgid "integral expression %qE is not constant"
 msgid "address of a call to %qs is not a constant expression"
 msgstr "bütünleyen ifade %qE bir sabit değil"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "unexpected expression %qE of kind %s"
 msgstr "ifade umuluyordu"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr ""
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr ""
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr ""
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot resolve address of overloaded function"
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "%s aşırı yüklü işlevin adresini çözümleyemiyor"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "%qT türündeki bir sağ taraf değerinin %qT türüne dönüşümü geçersiz"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "%qD dizisinin boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr ""
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "use of %<this%> in a constant expression"
 msgstr "Sabit ifadesinde tür hatalı"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "Sabit ifadesinde tür hatalı"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 #| msgid "integral expression %qE is not constant"
 msgid "new-expression is not a constant expression before C++20"
 msgstr "bütünleyen ifade %qE bir sabit değil"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "sanal işlevler kardeş işlev olamaz"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr ""
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "Sabit ifadesinde tür hatalı"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, fuzzy, gcc-internal-format
 #| msgid "%H%qE undeclared here (not in a function)"
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "%H%qE burada bildirilmemiş (bir işlev içinde değil)"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "%<static%> olarak bildirilen `%q+F hiç tanımlanmamış"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "division by zero is not a constant expression"
 msgstr "dizi boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%<delete[]%> is not a constant expression"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "Sabit ifadesinde tür hatalı"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, fuzzy, gcc-internal-format
 #| msgid "nonconstant array index in initializer"
 msgid "non-constant array initialization"
 msgstr "ilklendiricide sabit olmayan dizi indisi"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected end of file in '%s'"
 msgid "unexpected AST of kind %s"
@@ -59939,7 +59965,7 @@ msgstr "%<__builtin_prefetch%> için 3. argüman bir sabit olmalı"
 msgid "no suspend point info for %qD"
 msgstr "%q+D için önceki prototip yok"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -59961,23 +59987,23 @@ msgstr "case değeri olarak göstericiler kullanılamaz"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr ""
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
@@ -59999,79 +60025,79 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD bir şablon işlevi değildir"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of an immediate function %qD"
 msgstr "gecicinin adresi alıniyor"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "Sabit ifadesinde tür hatalı"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD, will always evaluate as %<true%>"
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "%qD adresi, daima %<true%> olarak değerlendirilecek"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, fuzzy, gcc-internal-format
 #| msgid "Constructor can't be %s"
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "Kurucu %s olmayabilir"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 #| msgid "applying attributes to template parameters is not implemented"
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "özniteliklerin şablon parametrelerine uygulanması gerçeklenmedi"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qs attribute"
 msgid "pack expansion of %qE attribute"
 msgstr "%qs özniteliğinin argümanı geçersiz"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 #| msgid "parse error in template argument list"
 msgid "use fold expression in the attribute argument instead"
 msgstr "şablon argüman listesinde çözümleme hatası"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is not a type"
 msgstr "%qD bir şablon değil"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have class type"
 msgid "%qD is not a class type"
 msgstr "%qE sınıf türüne sahip değil"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have class type"
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qE sınıf türüne sahip değil"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 #| msgid "expression in new-declarator must have integral or enumeration type"
 msgid "%qD does not have integral type"
 msgstr "new bildirimli ifade bütünleyici ya da numaralama türünde olmalı"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -60124,7 +60150,7 @@ msgstr "%qT türündeki sabit olmayan başvurunun geçici %qT türünden ilklend
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "%qT türünden %qT türüne dönüşüm niteleyicileri iptal ediyor"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "%qT türünden %qT türüne dönüşüm gösterici başvurusunu kaldırmaz"
@@ -60549,7 +60575,7 @@ msgstr "önceki %q+F bildirimindeki farklı olağandışılıkları yakalıyor"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "bir şablon olmayan olarak yeniden %qT bildirimi"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous declaration %qD"
@@ -60714,8 +60740,8 @@ msgstr "önceden işlev olmayan bildirim %q+#D"
 msgid "%q#D previously defined here"
 msgstr "%q+#D evvelce burada tanımlanmış"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously declared here"
 msgid "%q#D previously declared here"
@@ -60799,60 +60825,42 @@ msgstr "öntanımlı argüman %2$q#D bildiriminin %1$d. parametresi için"
 msgid "previous specification in %q#D here"
 msgstr "%q+#D bildirimindeki önceki belirtimden sonra verilmiş"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-#| msgid "conflicts with built-in declaration %q#D"
-msgid "declaration %qD conflicts with builtin"
-msgstr "%q#D yerleşik bildirimiyle çelişiyor"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-#| msgid "conflicts with built-in declaration %q#D"
-msgid "declaration %qD conflicts with import"
-msgstr "%q#D yerleşik bildirimiyle çelişiyor"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-#| msgid "%q+D declared here"
-msgid "import declared %q#D here"
-msgstr "burada bildirilmiş %q+D"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting exporting for declaration %qD"
 msgstr "%q#D bildirimi çelişkili"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously declared here"
 msgid "previously declared here without exporting"
 msgstr "%q+#D evvelce burada bildirilmiş"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %q+D was here"
 msgid "previous definition of %qD here"
 msgstr "%q+D'nin önceki tanımı buradaydı"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+D was here"
 msgid "previous declaration of %qD here"
 msgstr "%qD'nin önceki bildirimi buradaydı"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 #| msgid "function declared %<noreturn%> has a %<return%> statement"
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "%<noreturn%> olarak bildirilmiş işlev %<return%> deyimi içeriyor"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "%qD bildiriminin aynı bağlamda bununla yeniden bildirimi anlamsız:"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %q+D"
 msgid "deleted definition of %qD is not first declaration"
@@ -60866,50 +60874,50 @@ msgstr "%q+D için yeniden tanımlama"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "ilk kullanımdan sonra %D'nin açıkça özelleştirilmesi"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D: visibility attribute ignored because it"
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%q+D: görünürlük özniteliği yoksayıldı çünkü"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %q#T"
 msgid "redefinition of %q#D"
 msgstr "%q#T sınıfın yeniden tanımı"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D conflicts with previous using declaration %q#D"
 msgid "%qD conflicts with used function"
 msgstr "%q#D önceki using bildirimi %q#D ile çelişiyor"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, fuzzy, gcc-internal-format
 #| msgid "%qD not declared"
 msgid "%q#D not declared in class"
 msgstr "%qD bildirilmemiş"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared inline after its definition"
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%q+D tanımlandıktan sonra satıriçi bildirilmiş"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared inline after its definition"
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%q+D tanımlandıktan sonra satıriçi bildirilmiş"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -60917,821 +60925,821 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot have default arguments"
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "%qD öntanımlı argümanlara sahip olamaz"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, fuzzy, gcc-internal-format
 #| msgid "thread-local declaration of %q+D follows non-thread-local declaration"
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "%q+D'nin yerel-evreli bildirimi yerel-olmayan-evreli bildirimi izliyor"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, fuzzy, gcc-internal-format
 #| msgid "non-thread-local declaration of %q+D follows thread-local declaration"
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "%q+D'nin yerel-olmayan-evreli bildirimi yerel-evreli bildirimi izliyor"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D"
 msgid "redeclaration of %q#D"
 msgstr "%q#D yeniden bildirimi"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 #| msgid "redundant redeclaration of %qD in same scope"
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "%qD bildiriminin aynı bağlamda bununla yeniden bildirimi anlamsız:"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous label"
 msgstr "önceden %q+D bildirimi"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "%qD yaftasına jump"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "case yaftasına jump"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  buradan"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr ""
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 #| msgid "  crosses initialization of %q+#D"
 msgid "  crosses initialization of %q#D"
 msgstr "  %q+#D ilklendirmesini kesiyor"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, fuzzy, gcc-internal-format
 #| msgid "  enters try block"
 msgid "  enters %<try%> block"
 msgstr "  try blokuna giriliyor"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "  enters catch block"
 msgid "  enters %<catch%> block"
 msgstr "  catch blokuna giriyor"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, fuzzy, gcc-internal-format
 #| msgid "  enters try block"
 msgid "  enters OpenMP structured block"
 msgstr "  try blokuna giriliyor"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 #| msgid "jump into statement expression"
 msgid "  enters statement expression"
 msgstr "deyim ifadesine jump"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr ""
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not support %s"
 msgid "  does not destroy %qD"
 msgstr "%s %s desteği vermiyor"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr ""
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 #| msgid "  skips initialization of %q+#D"
 msgid "  skips initialization of %q#D"
 msgstr "  %q+#D ilklendirmesi atlanıyor"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "%qD used without template arguments"
 msgstr "%qD şablon parametreleri olmaksızın kullanılmış"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "%qD bir işlev şablonu değil"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a template"
 msgid "%q#T is not a class"
 msgstr "%q#T bir şablon değil"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, fuzzy, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "%2$q#T içinde %1$q#T isminde sınıf şablonu yok"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, fuzzy, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "%2$q#T içinde %1$q#T isminde tür yok"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from %qT to %qT is ambiguous"
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "%qT türünden %qT türüne dönüşüm belirsiz"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, fuzzy, gcc-internal-format
 #| msgid "%qT resolves to %qT, which is is not a class type"
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%qT bir sınıf türü olmayan %qT türüne çözümleniyor"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a type"
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<%T::%D%> bir tür değil"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters do not match template"
 msgid "template parameters do not match template %qD"
 msgstr "şablon parametreleri bu şablonla uyuşmuyor:"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 #| msgid "trampolines not supported"
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "trampolines desteklenmiyor"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D invalid; an anonymous union can only have non-static data members"
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q+#D geçersiz; bir anonim union sadece statik olmayan veri üyeleri içerebilir"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous struct not inside named type"
 msgid "anonymous struct with base classes"
 msgstr "anonim yapı isimli türün içinde değil"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "anonim kümeleme içinde kuruculu üye %q+#D kullanılamaz"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "anonim kümeleme içinde yıkıcılı üye %q+#D kullanılamaz"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "anonim kümeleme içinde kopya atama isleçli üye %q+#D kullanılamaz"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q+#T"
 msgid "attribute ignored in declaration of %q#T"
 msgstr "%q+#T bildiriminde öznitelik yoksayıldı"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, fuzzy, gcc-internal-format
 #| msgid "attribute for %q+#T must follow the %qs keyword"
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "%q+#T için öznitelik %qs anahtar sözcüğünü izlemeli"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "bir bildirimde birden fazla tür"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "C++ yerleşik türü %qT için yeniden bildirim"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "%qs sadece işlevler için belirtilebilir"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "typedef bildiriminde tür ismi eksik"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO C++ anonim yapıları (struct) yasaklar"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<inline%> can only be specified for functions"
 msgstr "%qs sadece işlevler için belirtilebilir"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<virtual%> can only be specified for functions"
 msgstr "%qs sadece işlevler için belirtilebilir"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> sadece bir sınıf içinde belirtilebilir"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "%<explicit%> sadece kurucular için belirtilebilir"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "bir saklama sınıfı sadece işlevler ve nesneler için belirtilebilir"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "niteliyiciler sadece işlevler ve nesneler için belirtilebilir"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "niteliyiciler sadece işlevler ve nesneler için belirtilebilir"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "niteliyiciler sadece işlevler ve nesneler için belirtilebilir"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, fuzzy, gcc-internal-format
 #| msgid "a storage class can only be specified for objects and functions"
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "bir saklama sınıfı sadece işlevler ve nesneler için belirtilebilir"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, fuzzy, gcc-internal-format
 #| msgid "typedef declaration invalid in parameter declaration"
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "typedef bildirimi parametre bildiriminde geçersiz"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 #| msgid "%<register%> in file-scope empty declaration"
 msgid "%qs cannot be used for type declarations"
 msgstr "dosya etki alanı boş bildiriminde %<register%>"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q+#T"
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "%q+#T bildiriminde öznitelik yoksayıldı"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "%qE özniteliği sadece sınıf tanımlarına uygulanabilir"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "%qE özniteliği sadece sınıf tanımlarına uygulanabilir"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr ""
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 #| msgid "typedef %qD is initialized (use __typeof__ instead)"
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD ilklendirilmiş (yerine  __typeof__  kullanın)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "%q#D hem %<extern%> olarak bildirilmiş hem de ilklendirilmiş"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+D definition is marked dllimport"
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "%q+D işlevinin tanımı dllimport imli"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D is not a non-static data member of %qT"
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q#D %qT'nin bir static olmayan üyesi değildir"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "non-member-template declaration of %qD"
 msgstr "%q#D şablon bildirimi"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 #| msgid "invalid member template declaration %qD"
 msgid "does not match member template declaration here"
 msgstr "geçersiz üye sablonu bildirimi %qD"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO C++ %<%T::%D%>nin %<%T::%D%> olarak tanımlanmasına izin vermez"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "%qD ilklendirmesi yinelenmiş"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "sınıf dışında %q#D bildirimi bir tanım değildir"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "%q#D değişkeni ilklendirilmiş ama içi boş türde"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "%q#D dizisinin elemanları içi boş türde"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "küme %q#D içi boş türde olup tanımlı olamaz"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD başvuru olarak bildirilmiş ama ilklendirilmemiş"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, fuzzy, gcc-internal-format
 #| msgid "name %qD used in a GNU-style designated initializer for an array"
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "%qD ismi bir dizi için GNU tarzında tasarlanmış bir ilklendiricide kullanılmış"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "%qD ismi bir dizi için GNU tarzında tasarlanmış bir ilklendiricide kullanılmış"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "alelade olmayan ilklendiriciler desteklenmiyor"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "%qD dizisinin boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "ilklendirici %qD bildiriminin boyutunu saptayamıyor"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "%qD bildiriminde dizi boyutu eksik"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "sıfır boyutlu dizi %qD"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, fuzzy, gcc-internal-format
 #| msgid "storage size of %q+D isn%'t known"
 msgid "storage size of %qD isn%'t known"
 msgstr "%q+D nin saklama uzunluğu bilinmiyor"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, fuzzy, gcc-internal-format
 #| msgid "storage size of %q+D isn%'t constant"
 msgid "storage size of %qD isn%'t constant"
 msgstr "%q+D nin saklama genişligi sabit değil"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, fuzzy, gcc-internal-format
 #| msgid "sorry: semantics of inline function static data %q+#D are wrong (you'll wind up with multiple copies)"
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "özür: satıriçi işlev static verisi %q+#D'nin kodlaması yanlış (sizi çoklu kopyalara sürükleyecek)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, fuzzy, gcc-internal-format
 #| msgid "sorry: semantics of inline function static data %q+#D are wrong (you'll wind up with multiple copies)"
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "özür: satıriçi işlev static verisi %q+#D'nin kodlaması yanlış (sizi çoklu kopyalara sürükleyecek)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, fuzzy, gcc-internal-format
 #| msgid "%J  you can work around this by removing the initializer"
 msgid "you can work around this by removing the initializer"
 msgstr "%J  ilklendiriciyi kaldırarak bunun olurunu bulabilirsiniz"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized const %qD"
 msgid "uninitialized %<const %D%>"
 msgstr "ilklendirilmemiş sabit %qD"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, fuzzy, gcc-internal-format
 #| msgid "register variable %qD used in nested function"
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "yazmaç değişkeni %qD iç işlevde kullanılmış"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, fuzzy, gcc-internal-format
 #| msgid "register variable %qD used in nested function"
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "yazmaç değişkeni %qD iç işlevde kullanılmış"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, fuzzy, gcc-internal-format
 #| msgid "type %qs has a user-defined constructor"
 msgid "%q#T has no user-provided default constructor"
 msgstr "%qs türü bir kullanıcı tanımlı yapıcıya sahip"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr ""
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, fuzzy, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "%2$qT türündeki bir vektör için ilklendirici olarak %1$qT türü geçersiz"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "%qT için ilklendirici {} içinde olmalı"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, fuzzy, gcc-internal-format
 #| msgid "name %qD used in a GNU-style designated initializer for an array"
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "%qD ismi bir dizi için GNU tarzında tasarlanmış bir ilklendiricide kullanılmış"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "üye %qD için istek belirsiz"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT %qD isminde statik olmayan bir üyeye sahip değil"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD %qT'nin bir üyesi değil"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer for %q#D"
 msgstr "geçersiz ilklendirici"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr ""
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "%qT için ilklendirici sayısı çok fazla"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "%qT için skalar ilklendiriciyi kuşatan parantezler"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer for type %qT"
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "%qT için skalar ilklendiriciyi kuşatan parantezler"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "%qT için ilklendiriciyi çevreleyen parantezler yok"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 #| msgid "field %qD has incomplete type"
 msgid "structured binding has incomplete type %qT"
 msgstr "%qD alanı içi boş türde"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, fuzzy, gcc-internal-format
 #| msgid "elements of array %q#D have incomplete type"
 msgid "elements of array %q#T have incomplete type"
 msgstr "%q#D dizisinin elemanları içi boş türde"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 forbids compound literals"
 msgid "variable-sized compound literal"
 msgstr "ISO C90 bileşik sabitlere izin vermez"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has incomplete type"
 msgid "%q#D has incomplete type"
 msgstr "%qD içi boş türde"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, fuzzy, gcc-internal-format
 #| msgid "excess elements in union initializer"
 msgid "scalar object %qD requires one element in initializer"
 msgstr "union ilklendiricide gereğinden fazla öğe"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be initialized by constructor, not by %<{...}%>"
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "%qD bir kurucu ile ilklendirilmeli, %<{...}%> ile değil"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, fuzzy, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "parantezli dizge sabiti %2$qE ile ilklendirilmiş %1$qD dizgesi"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "kuruculu statik üye için ilklendirici geçersiz"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "ISO C++ sabit olmayan statik %qD üyesinin sınıf içi ilklendirmesine izin vermez"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "ISO C++ sabit olmayan statik %qD üyesinin sınıf içi ilklendirmesine izin vermez"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(bir sınıf dışı ilklendirme gerekli)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD is initialized"
 msgid "reference %qD is initialized with itself"
 msgstr "%qD parametresi ilklendirilmiş"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> in empty declaration"
 msgid "could not find variant declaration"
 msgstr "boş bildirimde %<inline%>"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to %s %q+#D"
 msgid "%<declare variant%> on constructor %qD"
 msgstr "%s %q+#D için argümanlar çok az"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "%<declare variant%> on destructor %qD"
 msgstr "enumerator %q+D yeniden bildirilmiş"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "bildirim içinde atama (ilklendirme değil)"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not allow designated initializers"
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++ tasarlanmış ilkendiricilere izin vermez"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for %qs"
 msgid "%<register%> storage class specifier used"
 msgstr "%qs için saklatım sınıfı belirtilmiş"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D has %<extern%> and is initialized"
 msgid "declaration of %q#D has no initializer"
 msgstr "%q#D hem %<extern%> olarak bildirilmiş hem de ilklendirilmiş"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "static olmayan üye işlev %qD kullanımı geçersiz"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "dönüş türü %q#T bir içi boş türdür"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "variable concept has no initializer"
 msgstr "değişken uzunluklu nesne ilklendirilemeyebilir"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "önceki %q#D tür bildirimini gölgeliyor"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "%qs sadece işlevler için belirtilebilir"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "%q#D işlevi bir değişken gibi ilklendirilmiş"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, fuzzy, gcc-internal-format
 #| msgid "  cannot use obsolete binding at %q+D because it has a destructor"
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "  %q+D'deki atıl baglantı bir yıkıcıya sahip olduğundan kullanılamaz"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is an inaccessible base of %qT"
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "%qT, bir erişilemeyen %qT tabanıdır"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing pointer to incomplete type"
 msgid "structured binding refers to incomplete type %qT"
 msgstr "içi boş ture gösterici ilişkilendirme"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 forbids variable-size array %qs"
 msgid "cannot decompose variable length array %qT"
 msgstr "ISO C90 değişken boyutlu %qs dizisini yasaklar"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "storage class specified for structure field %qs"
 msgid "%u name provided for structured binding"
@@ -61739,1939 +61747,1939 @@ msgid_plural "%u names provided for structured binding"
 msgstr[0] "%qs yapı alan için saklama sınıfı belirtilmiş"
 msgstr[1] "%qs yapı alan için saklama sınıfı belirtilmiş"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to %q#T"
 msgid "cannot decompose variable length vector %qT"
 msgstr "%q#T türüne gösterici bildirilemez"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "dizi boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type %qT"
 msgid "in initialization of structured binding variable %qD"
 msgstr "%qT işlev türüne dönüşüm geçersiz"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare bit-field %qD with function type"
 msgid "cannot decompose union type %qT"
 msgstr "bit alanı %qD işlev türü ile bildirilemez"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "sınıf olmayan %qT türünde üye göstericisi oluşturulması"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "cannot decompose address"
 msgid "cannot decompose lambda closure type %qT"
 msgstr "adres çözümlenemez"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "return type is an incomplete type"
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "dönüş türü, bir içi boş tür"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static data member %qD"
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "static olmayan veri üyesi %qD kullanımı geçersiz"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr ""
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, fuzzy, gcc-internal-format
 #| msgid "initializer fails to determine size of %qD"
 msgid "initializer fails to determine size of %qT"
 msgstr "ilklendirici %qD bildiriminin boyutunu saptayamıyor"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 #| msgid "array size missing in %qD"
 msgid "array size missing in %qT"
 msgstr "%qD bildiriminde dizi boyutu eksik"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 #| msgid "zero-size array %qD"
 msgid "zero-size array %qT"
 msgstr "sıfır boyutlu dizi %qD"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "yabancı sınıf %qT için yıkıcı, bir üye olamaz"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "yabancı sınıf %qT için kurucu, bir üye olamaz"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD bir %<virtual%> %s olarak bildirilmiş"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "%2$s bildirimindeki %<const%> ve %<volatile%> işlev belirtecleri %1$qD için geçersiz"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD bir %<virtual%> %s olarak bildirilmiş"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as an %<inline%> %s"
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD nesnesi bir %<inline%> %s olarak bildirilmiş"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "%2$s bildirimindeki %<const%> ve %<volatile%> işlev belirtecleri %1$qD için geçersiz"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD bir %<virtual%> %s olarak bildirilmiş"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as an %<inline%> %s"
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD nesnesi bir %<inline%> %s olarak bildirilmiş"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "%2$s bildirimindeki %<const%> ve %<volatile%> işlev belirtecleri %1$qD için geçersiz"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a %<virtual%> %s"
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD bir %<virtual%> %s olarak bildirilmiş"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as an %<inline%> %s"
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD nesnesi bir %<inline%> %s olarak bildirilmiş"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "%2$s bildirimindeki %<const%> ve %<volatile%> işlev belirtecleri %1$qD için geçersiz"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D bir kardeş olarak bildirilmiş"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D bir olağandışılık belirtimi ile bildirilmiş"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "%qD tanımı %qT bağlamını kapsayan isim alanınında değil"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "statik üye işlev %q#D tür niteleyicilerle bildirilmiş"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a non-parameter"
 msgid "concept %q#D declared with function parameters"
 msgstr "%q+D bir parametre olarak bildirilmemiş"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D declared with void type"
 msgid "concept %q#D declared with a deduced return type"
 msgstr "%q+D parametresi void olarak bildirilmiş"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, fuzzy, gcc-internal-format
 #| msgid "Java method %qD has non-Java return type %qT"
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "Java yöntemi %qD Java olmayan %qT dönüş türünü içeriyor"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 #| msgid "%Jold-style function definition"
 msgid "concept %qD has no definition"
 msgstr "%Jeski tarz işlev tanımı"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 #| msgid "union cannot be made transparent"
 msgid "a function concept cannot be constrained"
 msgstr "birleşik yapı şeffaf olamaz"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template function"
 msgid "constraints on a non-templated function"
 msgstr "%qD bir şablon işlevi değildir"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "kardeş bildirimi sınıf bildiriminde değil"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "%qD doğrudan özelleştirmesinin kardeş bildirimde tanımı"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "birincil şablon bildiriminde %qD şablon kimliğinin kullanımı geçersiz"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "öntanımlı argümanlara kardeş şablon özelleştirmesi %qD bildiriminde izin verilmez"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "kardeş şablon özelleştirmesi %qD bildiriminde %<inline%> kullanılamaz"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D outside of class is not definition"
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "sınıf dışında %q#D bildirimi bir tanım değildir"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "%<::main%> bir şablon olarak bildirilemez"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "%<::main%> inline olarak bildirilemez"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be static"
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "%<::main%> static olarak bildirilemez"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "%<::main%> static olarak bildirilemez"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "%süye işlev %qD cv niteleyicisini içeremez"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "%süye işlev %qD cv niteleyicisini içeremez"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "%süye işlev %qD cv niteleyicisini içeremez"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "%süye işlev %qD cv niteleyicisini içeremez"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "%süye işlev %qD cv niteleyicisini içeremez"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "%süye işlev %qD cv niteleyicisini içeremez"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 #| msgid "variable or field declared void"
 msgid "explicit object parameter declared here"
 msgstr "void bildirimli değişken ya da alan"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr ""
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr ""
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "deduction guide %qD must not have a function body"
 msgstr "işlev olmayan olarak %qD bildirimi"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, fuzzy, gcc-internal-format
 #| msgid "template with C linkage"
 msgid "literal operator with C linkage"
 msgstr "C ilintilemeli şablon"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, fuzzy, gcc-internal-format
 #| msgid "invalid option argument %qs"
 msgid "%qD has invalid argument list"
 msgstr "seçenek argümanı %qs geçersiz"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a non-member function"
 msgstr "%qD static olmayan bir üye işlev olmalıdır"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> %<int%> döndürmeli"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "dolaylı bildirimli %qD tanımı"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, fuzzy, gcc-internal-format
 #| msgid "definition of implicitly-declared %qD"
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "dolaylı bildirimli %qD tanımı"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously defined here"
 msgid "%q#D explicitly defaulted here"
 msgstr "%q+#D evvelce burada tanımlanmış"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, fuzzy, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "sınıf %2$qT içinde bildirilmiş %1$q#D diye bir üye işlev yok"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be a template"
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "%<::main%> bir şablon olarak bildirilemez"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable %qs is declared private"
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "gerçeklenim değişkeni %qs private olarak bildirilmiş"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 #| msgid "strong using only meaningful at namespace scope"
 msgid "concept must be defined at namespace scope"
 msgstr "kesin kullanım sadece isimalanı kapsamında anlamlıdır"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 #| msgid "Loop variable at %C cannot be a sub-component"
 msgid "a variable concept cannot be constrained"
 msgstr "%C'deki döngü değişkeni bir alt bileşen olamaz"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "tümleyen olmayan %qT türündeki statik veri üyesinin sınıf içi ilklendirmesi geçersiz"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "tümleyen olmayan %qT türündeki statik veri üyesinin sınıf içi ilklendirmesi geçersiz"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, fuzzy, gcc-internal-format
 #| msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "tümleyen olmayan %qT türündeki statik veri üyesinin sınıf içi ilklendirmesi geçersiz"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "tümleyen olmayan %qT türündeki statik veri üyesinin sınıf içi ilklendirmesi geçersiz"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ sabit olmayan statik %qD üyesinin sınıf içi ilklendirmesine izin vermez"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ tümlemeyen %2$qT türündeki %1$qD üye sabitinin ilklendirilmesine izin vermez"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "%qD dizisinin boyutu tümlemeyen %qT türünde"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "dizi boyutu tümlemeyen %qT türünde"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "%qD dizisinin boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "dizi boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C++ da sıfır boyutlu %qD dizisi yasaktır"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++'da sıfır boyutlu dizi yasaktır"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids variable-size array %qD"
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ değişken boyutlu %qD dizisine izin vermez"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids variable-size array"
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++  değişken boyutlu diziye izin vermez"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr ""
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr ""
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "dizi boyutunda taşma"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a friend"
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%q+D bir kardeş olarak bildirilmiş"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member reference type %qT"
 msgid "creating array of template placeholder type %qT"
 msgstr "%qT üye referans türünde gösterici oluşturulması"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of voids"
 msgid "declaration of %qD as array of void"
 msgstr "void dizisi olarak %qs bildirimi"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of %qT"
 msgid "creating array of void"
 msgstr "%qT dizisi oluşturulması"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "declaration of %qD as array of functions"
 msgstr "işlev dizisi olarak %qs bildirimi"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of %qT"
 msgid "creating array of functions"
 msgstr "%qT dizisi oluşturulması"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "declaration of %qD as array of references"
 msgstr "işlev dizisi olarak %qs bildirimi"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, fuzzy, gcc-internal-format
 #| msgid "creating array of %qT"
 msgid "creating array of references"
 msgstr "%qT dizisi oluşturulması"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "declaration of %qD as array of function members"
 msgstr "işlev dizisi olarak %qs bildirimi"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qs as array of functions"
 msgid "creating array of function members"
 msgstr "işlev dizisi olarak %qs bildirimi"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "çok boyutlu dizi olarak %qD bildiriminde ilki dışında tüm boyutlar sınırlanmış olmalıdır"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "çok boyutlu dizi bildiriminde ilki dışında tüm boyutlar sınırlanmış olmalıdır"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 #| msgid "Warn when a variable is unused"
 msgid "variable-length array of %<auto%>"
 msgstr "Bir değişken kullanılmamışsa uyarır"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "kurucu için dönüş türü belirtimi geçersiz"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "%<operator %T%> bildiriminde niteleyicilere izin verilmez"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "yıkıcı için dönüş türü belirtimi geçersiz"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "%<operator %T%> bildiriminde niteleyicilere izin verilmez"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "%<operator %T%> için dönüş türü belirtilmiş"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "%<operator %T%> bildiriminde niteleyicilere izin verilmez"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 #| msgid "return type specification for destructor invalid"
 msgid "return type specified for deduction guide"
 msgstr "yıkıcı için dönüş türü belirtimi geçersiz"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "%<operator %T%> bildiriminde niteleyicilere izin verilmez"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 #| msgid "too many template parameter lists in declaration of %qD"
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "%qD bildiriminde çok fazla şablon parametresi listeleniyor"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "%q#D bildirimi çelişkili"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "void bildirimli adsız değişken ya da alan"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "void bildirimli değişken ya da alan"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "genel kapsam dışında bildirilen %qs işlevi için %<inline%> belirteci geçersiz"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "yıkıcılar cv-nitelemeli olmayabilir"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<::%>"
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "%<::%> kullanımı geçersiz"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of undefined type %<%s %E%>"
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "tanımsız tür %<%s %E%> kullanımı geçersiz"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of undefined type %<%s %E%>"
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "tanımsız tür %<%s %E%> kullanımı geçersiz"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%q#T is not a class or namespace"
 msgstr "%qT bir sınıf ya da isim alanı değil"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "declaration of %qE as non-function"
 msgstr "işlev olmayan olarak %qD bildirimi"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-member"
 msgid "declaration of %qE as non-member"
 msgstr "üye olmayan olarak %qD bildirimi"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "bildirimci kimliği eksik; yedek sözcük %qD kullanılıyor"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, fuzzy, gcc-internal-format
 #| msgid "function definition declared %<register%>"
 msgid "function definition does not declare parameters"
 msgstr "%<register%> bildirimli işlev tanımı"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "işlev olmayan olarak %qD bildirimi"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "%2$s olarak %1$qD bildirimi"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of %qD as parameter"
 msgstr "%q+D bildirimi bir parametreyi gölgeliyor"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr ""
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 #| msgid "a template-id may not appear in a using-declaration"
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "using bildiriminde bir şablon kimliği bulunamaz"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "%qs bildiriminde iki veya daha fazla veri türü"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C salt %<complex%>i %<double complex%> anlamında desteklemez"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ türsüz %qs bildirimine izin verilmez"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 #| msgid "__builtin_saveregs not supported by this target"
 msgid "%<__int%d%> is not supported by this target"
 msgstr "__builtin_saveregs bu hedef tarafından desteklenmiyor"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<long long%>"
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ %<long long%> desteklemez"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 #| msgid "signed and unsigned given together for %qs"
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%qs için signed ve unsigned birlikte verilmiş"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 #| msgid "long and short specified together for %qs"
 msgid "%<long%> and %<short%> specified together"
 msgstr "%qs için long ve short birlikte belirtilmiş"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%qs specified with %qT"
 msgstr "%<__thread%> %qE ile kullanılmış"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for parameter %qs"
 msgid "%qs specified with typedef-name %qD"
 msgstr "%qs parametresi için saklama sınıfı belirtilmiş"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qs specified with %<decltype%>"
 msgstr "%<__thread%> %<typedef%> ile kullanılmış"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qs specified with %<typeof%>"
 msgstr "%<__thread%> %<typedef%> ile kullanılmış"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "%qs için complex geçersiz"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "üye %qD, hem virtual hem de static olarak bildirilemez"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "üye %qD, hem virtual hem de static olarak bildirilemez"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "typedef bildirimi parametre bildiriminde geçersiz"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for parameter %qs"
 msgid "storage class specified for template parameter %qs"
 msgstr "%qs parametresi için saklama sınıfı belirtilmiş"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "%qs parametresi için saklama sınıfı belirtilmiş"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 #| msgid "non-member %qs cannot be declared %<mutable%>"
 msgid "a parameter cannot be declared %qs"
 msgstr "üye olmayan %qs, %<mutable%> olarak bildirilemez"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, fuzzy, gcc-internal-format
 #| msgid "virtual outside class declaration"
 msgid "%<virtual%> outside class declaration"
 msgstr "sanal dış sınıf bildirimi"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q+#T"
 msgid "structured binding declaration cannot be %qs"
 msgstr "%q+#T bildiriminde öznitelik yoksayıldı"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 #| msgid "attribute ignored in declaration of %q+#T"
 msgid "structured binding declaration cannot have type %qT"
 msgstr "%q+#T bildiriminde öznitelik yoksayıldı"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr ""
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "%qs bildiriminde çok sayıda saklama sınıfı"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "%qs için saklatım sınıfı belirtilmiş"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "iç işlev %qs %<extern%> olarak bildirilmiş"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "%qs için tepe-seviye bildirim %<auto%> belirtiyor"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "%qs işlevinin etki alanı dolaylı olarak auto ve %<__thread%> bildirimli"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "saklatım sınıfı belirteçleri kardeş işlev bildirimlerinde geçersiz"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored"
 msgid "attribute ignored"
 msgstr "%qE özniteliği yoksayıldı"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 #| msgid "multiple storage classes in declaration of %qs"
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "%qs bildiriminde çok sayıda saklama sınıfı"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, fuzzy, gcc-internal-format
 #| msgid "Expected left parenthesis"
 msgid "remove parentheses"
 msgstr "Umulmadık sol parantez"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 #| msgid "Function result '%s' at %L cannot have an initializer"
 msgid "a function type cannot have an explicit object parameter"
 msgstr "işlev sonucu '%s'  %L'de bir ilklendiriciye sahip olamaz"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' at %L is not allowed as an actual argument"
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "'%s' beyan işlevine bir fiili argüman olarak izin verilmez (%L'de)"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr ""
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, fuzzy, gcc-internal-format
 #| msgid "variable or field declared void"
 msgid "valid explicit object parameter declared here"
 msgstr "void bildirimli değişken ya da alan"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on types"
 msgid "requires-clause on return type"
 msgstr "%qE özniteliği veri türlerinde yoksayılır"
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual function cannot have deduced return type"
 msgstr "sanal işlevler kardeş işlev olamaz"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<::%>"
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "%<::%> kullanımı geçersiz"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "deduced class type %qD in function return type"
 msgstr "tür niteleyicileri işlev dönüş türünde yok sayıldı"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr ""
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "a conversion function cannot have a trailing return type"
 msgstr "sanal işlevler kardeş işlev olamaz"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs işlevle dönen işlev olarak bildirilmiş"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs dizi ile dönen işlev olarak bildirilmiş"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, fuzzy, gcc-internal-format
 #| msgid "Logical range in CASE statement at %L is not allowed"
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "%L'deki CASE deyiminde mantıksal aralığa izin verilmez"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "yıkıcı bir statik üye işlev olamaz"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "kurucu bir statik üye işlev olamaz"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "yıkıcılar cv-nitelemeli olmayabilir"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "kurucular cv-nitelemeli olmayabilir"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "destructors may not be ref-qualified"
 msgstr "yıkıcılar cv-nitelemeli olmayabilir"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "constructors may not be ref-qualified"
 msgstr "yıkıcılar cv-nitelemeli olmayabilir"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "kurucular virtual olarak bildirilemez"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "sanal işlevler kardeş işlev olamaz"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "kardeş bildirimi sınıf bildiriminde değil"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 #| msgid "can't define friend function %qs in a local class definition"
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "yerel sınıf tanımı içinde kardeş işlev %qs tanımlanamaz"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "%süye işlev %qD cv niteleyicisini içeremez"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "%süye işlev %qD cv niteleyicisini içeremez"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD static olmayan bir üye işlev olmalıdır"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "yıkıcılar parametre almayabilir"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "%q#T türüne gösterici bildirilemez"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "%q#T türüne başvuru bildirilemez"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "%q#T üyeye gösterici bildirilemez"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "%q#T türüne başvuru bildirilemez"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare bit-field %qD with function type"
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "bit alanı %qD işlev türü ile bildirilemez"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr ""
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "şablon kimliği %qD bir bildirici olarak kullanılmış"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "üye işlevler sınıflarının örtük kardeşleridir"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, fuzzy, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "üye %2$qs üzerinde fazladan niteleme %<%1$T::%>"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 #| msgid "cannot define member function %<%T::%s%> within %<%T%>"
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "üye işlev %<%T::%s%> %<%T%> içinde tanımlanamaz"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare member function %<%T::%s%> within %<%T%>"
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "uye işlev %<%T::%s%> %<%T%> içinde bildirilemez"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "üye %<%T::%s%> %qT içinde bildirilemez"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, fuzzy, gcc-internal-format
 #| msgid "data member %qD cannot be a member template"
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "veri üyesi %qD bir üye şablon olamaz"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "veri üyesi değişken olarak değiştirilmiş %qT türünde olamayabilir"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "parametre değişken olarak değiştirilmiş %qT türünde olamayabilir"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 #| msgid "virtual outside class declaration"
 msgid "%<explicit%> outside class declaration"
 msgstr "sanal dış sınıf bildirimi"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> in empty declaration"
 msgid "%<explicit%> in friend declaration"
 msgstr "boş bildirimde %<inline%>"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, fuzzy, gcc-internal-format
 #| msgid "only declarations of constructors can be %<explicit%>"
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "sadece kurucuların bildirimleri %<explicit%> olabilir"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "üye olmayan %qs, %<mutable%> olarak bildirilemez"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "nesne olmayan üye %qs %<mutable%> olarak bildirilemez"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "işlev %qs %<mutable%> olarak bildirilemez"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "static %qs cannot be declared %<mutable%>"
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "static %qs %<mutable%> olarak bildirilemez"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "const %qs cannot be declared %<mutable%>"
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "sabit %qs %<mutable%> olarak bildirilemez"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, fuzzy, gcc-internal-format
 #| msgid "function %qs cannot be declared %<mutable%>"
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "işlev %qs %<mutable%> olarak bildirilemez"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "typedef may not be a function definition"
 msgstr "new türleri bir dönüş türünde tanımlanamayabilir"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "typedef may not be a member function definition"
 msgstr "new türleri bir dönüş türünde tanımlanamayabilir"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> in empty declaration"
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "boş bildirimde %<inline%>"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, fuzzy, gcc-internal-format
 #| msgid "typedef %q+D declared %<inline%>"
 msgid "typedef declared %<auto%>"
 msgstr "%<inline%> bildirimli typedef %q+D"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, fuzzy, gcc-internal-format
 #| msgid "%Jtypedef name may not be a nested-name-specifier"
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "%Jtypedef ismi bir iç içe isimli belirteç olmayabilir"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ISO C++ kapsayan sınıf ile aynı isimde yuvalanmış %qD türüne izin vermez"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "kardeş sınıf bildirimi için %<inline%> belirtilmiş"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "şablon parametreleri kardeş olamazlar"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "friend bildirimi sınıf anahtarı gerektirir, %<friend class %T::%D%> gibi"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "friend bildirimi %<friend %#T%> gibi bir sınıf anahtarı gerektirir"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "sınıf %qT genel bağlamın kardeşi yapılmaya çalışılıyor"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "üye olmayan işlev türünde niteleyiciler geçersiz"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "mutlak bildirimci %qT bildirim olarak kullanılmış"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type %qT"
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "%qT işlev türüne dönüşüm geçersiz"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "parametre bildiriminde %<::%> kullanılamaz"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter %q+D to be of abstract type %qT"
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "parametre %q+D soyut %qT türünde bildirilemez"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "bu kapsamda %<this%> kullanılamaz"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %q+D declared %<inline%>"
 msgid "parameter declared %<auto%>"
 msgstr "%<inline%> bildirimli %q+D parametresi"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "bir argüman listesi olmaksızın %qE şablon isminin kullanımı geçersiz"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 #| msgid "static member %qD declared %<register%>"
 msgid "non-static data member declared with placeholder %qT"
 msgstr "statik üye %qD %<register%> olarak bildirilmiş"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids zero-size array %qD"
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C++ da sıfır boyutlu %qD dizisi yasaktır"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C90 esnek dizi üyelerini desteklemez"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "%<::%> kullanımı geçersiz"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of C function %q#D conflicts with"
 msgid "declaration of function %qD in invalid context"
 msgstr "C işlevi %q#D bildirimi"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared virtual inside a union"
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "işlev %qD bir union içinde virtual olarak bildirilmiş"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot be declared virtual, since it is always static"
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD daima static olduğundan sanal olarak bildirilemez"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "yıkıcı %qD için kardeş bildiriminde nitelikli isim umuluyordu"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "%2$qT üyesi olarak %1$qD bildirimi"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 #| msgid "Constructor can't be %s"
 msgid "a destructor cannot be %qs"
 msgstr "Kurucu %s olmayabilir"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, fuzzy, gcc-internal-format
 #| msgid "expected qualified name in friend declaration for destructor %qD"
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "yıkıcı %qD için kardeş bildiriminde nitelikli isim umuluyordu"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, fuzzy, gcc-internal-format
 #| msgid "Constructor can't be %s"
 msgid "a constructor cannot be %<concept%>"
 msgstr "Kurucu %s olmayabilir"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "a concept cannot be a member function"
 msgstr "kurucu bir statik üye işlev olamaz"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 #| msgid "cannot open %s"
 msgid "%qD cannot be %qs"
 msgstr "%s açılamıyor"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of implicitly-declared special member function"
 msgid "specialization of variable template %qD declared as function"
 msgstr "örtük bildirimli özel üye işlev özelleştirmesi"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 #| msgid "variable or field declared void"
 msgid "variable template declared here"
 msgstr "void bildirimli değişken ya da alan"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 #| msgid "field %qD has incomplete type"
 msgid "field %qD has incomplete type %qT"
 msgstr "%qD alanı içi boş türde"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "%qT ismi içi boş türde"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE ne işlev ne de üye işlev; friend olarak bildirilemez"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is neither function nor member function; cannot be declared friend"
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "%qE ne işlev ne de üye işlev; friend olarak bildirilemez"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 #| msgid "static member %qD declared %<register%>"
 msgid "static data member %qE declared %qs"
 msgstr "statik üye %qD %<register%> olarak bildirilmiş"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L cannot have an initializer"
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "Yerleşik '%s' %L'de bir ilklendiriciye sahip olamaz"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 #| msgid "static member %qD declared %<register%>"
 msgid "non-static data member %qE declared %qs"
 msgstr "statik üye %qD %<register%> olarak bildirilmiş"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "saklama sınıfı %<auto%> %qs işlevi için geçersiz"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "saklama sınıfı %<register%> %qs işlevi için geçersiz"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "saklama sınıfı %<__thread%> %qs işlevi için geçersiz"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 #| msgid "storage class %<__thread%> invalid for function %qs"
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "saklama sınıfı %<__thread%> %qs işlevi için geçersiz"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "%qs sadece işlevler için belirtilebilir"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, fuzzy, gcc-internal-format
 #| msgid "an asm-specification is not allowed on a function-definition"
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "bir işlev tanımında bir asm belirtimine izin verilmez"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, fuzzy, gcc-internal-format
 #| msgid "%<static%> specified invalid for function %qs declared out of global scope"
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "genel kapsam dışında bildirilen %qs işlevi için %<static%> belirteci geçersiz"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "genel kapsam dışında bildirilen %qs işlevi için %<inline%> belirteci geçersiz"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "sınıf olmayan sanal işlev %qs"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on non-class types"
 msgid "%qs defined in a non-class scope"
 msgstr "%qE özniteliği sınıf türleri dışında yoksayılır"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 #| msgid "%qD was not declared in this scope"
 msgid "%qs declared in a non-class scope"
 msgstr "%qD bu etki alanında bildirilmemiş"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "üye işlev %qD static ilintilemeli olarak bildirilemez"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "statik işlev başka bir işlevin içinde bildirilemez"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "bir statik veri üyesi tanımlarken (bildirime zit olarak) %<static%> kullanılamayabilir"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "statik üye %qD %<register%> olarak bildirilmiş"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "üye %q#D harici ilintilemeli olarak doğrudan bildirilemez"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D outside of class is not definition"
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "sınıf dışında %q#D bildirimi bir tanım değildir"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 #| msgid "non-member %qs cannot be declared %<mutable%>"
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "üye olmayan %qs, %<mutable%> olarak bildirilemez"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs ilklendirilmiş ve %<extern%> bildirilmiş"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs hem %<extern%> olarak bildirilmiş hem de ilklendrilmiş"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 #| msgid "default argument %qE uses local variable %qD"
 msgid "default argument %qE uses %qD"
 msgstr "öntanımlı argüman %qE %qD yerel değişkenini kullanıyor"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "öntanımlı argüman %qE %qD yerel değişkenini kullanıyor"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<virtual%> in template declaration of %q#D"
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "%<virtual%> kullanımı %q#D şablon bildiriminde geçersiz"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<virtual%> in template declaration of %q#D"
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "%<virtual%> kullanımı %q#D şablon bildiriminde geçersiz"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter type %qT"
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "geçersiz parametre türü %qT"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "parametre %qD geçersiz olarak yöntem türünde bildirilmiş"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "parametre %1$qD bilinmeyen sınırlı %3$qT dizisine %2$s içeriyor"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "parametre %1$qD bilinmeyen sınırlı %3$qT dizisine %2$s içeriyor"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "kurucu geçersiz; muhtemelen %<%T (const %T&)%> anlamında kullandınız"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD bir isim alanı içinde bildirilemeyebilir"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD static olarak bildirilemeyebilir"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a non-static member function"
 msgstr "%qD static olmayan bir üye işlev olmalıdır"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a member function"
 msgstr "%qD static olmayan bir üye işlev olmalıdır"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr ""
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD ya bir statik olmayan üye işlev ya da üye olmayan işlev olmalıdır"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD ya bir sınıf argümanına sahip olmalı ya da enum türünde olmalı"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ prohibits overloading operator ?:"
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ ?: üç terimlisinin aşırı yüklenmesini yasaklar"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD değişken sayıda argümana sahip olmamalı"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either zero or one argument"
 msgid "%qD must have either zero or one argument"
 msgstr "%qD ya hiç argüman almamalı ya da bir argüman almalı"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either one or two arguments"
 msgid "%qD must have either one or two arguments"
 msgstr "%qD ya bir ya da iki argüman almalı"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its argument"
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "sonek %qD argüman olarak %<int%> almalı"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its second argument"
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "sonek %qD ikinci argümanı olarak %<int%> almalı"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have no arguments"
 msgstr "%qD sadece ve sadece iki argüman almalı"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly one argument"
 msgid "%qD must have exactly one argument"
 msgstr "%qD sadece ve sadece bir argüman almalı"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have exactly two arguments"
 msgstr "%qD sadece ve sadece iki argüman almalı"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD öntanımlı argümanlara sahip olamaz"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "%s%s'ya dönüşüm asla bir tür dönüşüm işleci kullanmayacak"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "%s%s'ya dönüşüm asla bir tür dönüşüm işleci kullanmayacak"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "%s%s'ya dönüşüm asla bir tür dönüşüm işleci kullanmayacak"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "%s%s'ya dönüşüm asla bir tür dönüşüm işleci kullanmayacak"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to %s%s will never use a type conversion operator"
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "%s%s'ya dönüşüm asla bir tür dönüşüm işleci kullanmayacak"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "kullanıcı tanımlı %qD daima her iki argümanıyla birlikte değerlendirilir"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "önek %qD %qT döndürmeli"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "sonek %qD %qT döndürmeli"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD değeriyle döndürülmeli"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, fuzzy, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "%2$qs sonrası şablon türü %1$qT parametresi kullanımı"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, fuzzy, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "%2$q+D için şablon özelleştirmesi %1$qD belirsiz"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, fuzzy, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "%2$qs sonrası typedef-ismi %1$qD kullanımı"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D has a previous declaration here"
 msgid "%qD has a previous declaration here"
 msgstr "%q+D için burada önceki bir bildirim var"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "%qT türüne %qs olarak başvuruluyor"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 #| msgid "%q+T has a previous declaration here"
 msgid "%qT has a previous declaration here"
 msgstr "%q+T için burada önceki bir bildirim var"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "%qT türüne enum olarak başvuruluyor"
@@ -63683,122 +63691,104 @@ msgstr "%qT türüne enum olarak başvuruluyor"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "%<%s %T%> için şablon argüman gerekli"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "%qD ile ilişkilendirme belirsiz"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 #| msgid "non-template %qD used as template"
 msgid "class template %qD redeclared as non-template"
 msgstr "şablon olarak şablon olmayan %qD kullanılmış"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD bildirildiği sınıf ile aynı isimde"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT bir şablon değil"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "önceden bildirim olmaksızın enum %q#D kullanımı"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "bir şablon olmayan olarak yeniden %qT bildirimi"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD to be a bit-field type"
-msgid "cannot declare %qD in a different module"
-msgstr "%qD bir bit alanı türü olarak bildirilemez"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, fuzzy, gcc-internal-format
-#| msgid "%q+#D previously declared here"
-msgid "previously declared here"
-msgstr "%q+#D evvelce burada bildirilmiş"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "türetilmiş union %qT geçersiz"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is already defined in the class %qT"
 msgid "%qT defined with multiple direct bases"
 msgstr "%qD zaten sınıf %qT içinde tanımlı"
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct or virtual base of %qT"
 msgid "%qT defined with direct virtual base"
 msgstr "%qT türü bir doğrudan ya da dolaylı %qT tabanı değil"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "taban tür %qT bir yapı veya sınıf türü olarak hatalı"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "ardışık tür %qT tanımsız"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "yinelenmiş taban türü %qT geçersiz"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare reference to %q#T"
-msgid "cannot declare %qD in different module"
-msgstr "%q#T türüne başvuru bildirilemez"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, fuzzy, gcc-internal-format
 #| msgid "%Jprevious definition here"
 msgid "previous definition here"
 msgstr "%Jönceden burada tanımlı"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr "%2$qE işlevinin %1$d. argümanına uyumsuz gösterici türünde aktarım"
@@ -63807,91 +63797,91 @@ msgstr "%2$qE işlevinin %1$d. argümanına uyumsuz gösterici türünde aktarı
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "%qT için simgesel sabit değerlerinin tamamını hiçbir tümleyen tür temsil edemez"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant"
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "%qE için sembolik sabit değeri bir tamsayı sabit değil"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant"
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "%qE için sembolik sabit değeri bir tamsayı sabit değil"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "ISO C sembolik sabit grubunun değerlerini %<int%> kapsamında sınırlar"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "ISO C sembolik sabit grubunun değerlerini %<int%> kapsamında sınırlar"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "%qD'de simgesel sabit değerlerinde taşma"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant"
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "%qE için sembolik sabit değeri bir tamsayı sabit değil"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "çok sayıda %q#T tanımı"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "dönüş türü %q#T bir içi boş türdür"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%>, %<*this%> için bir başvuru döndürmeli"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statements in function returning %qT"
 msgstr "void olmayan dönüşlü işlevde `return' deyimi yok"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, fuzzy, gcc-internal-format
 #| msgid "function return types not compatible due to %<volatile%>"
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "işlevin dönüş türü %<volatile%> den dolayı uyumsuz"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "void olmayan dönüşlü işlevde `return' deyimi yok"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD zaten %qT sınıfında tanımlı"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 #| msgid "%J%s %<%c%s%>"
 msgid "using %qs"
 msgstr "%J%s %<%c%s%>"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr ""
@@ -63947,7 +63937,7 @@ msgstr "bir işlev silinemez. Sadece nesnelerin göstericileri %<delete%>'e konu
 msgid "deleting %qT is undefined"
 msgstr "%qT silinmesi tanımsız"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "%q#D şablon bildirimi"
@@ -63958,7 +63948,7 @@ msgstr "%q#D şablon bildirimi"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "şablon parametreleri bu şablonla uyuşmuyor:"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "yıkıcı %qD üye şablon olarak bildirilmiş"
@@ -64158,65 +64148,65 @@ msgstr ""
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> ilk parametreyi %qT türünde alır"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr ""
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr ""
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%<static%> olarak bildirilen `%q+F hiç tanımlanmamış"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%q#D, declared using an unnamed type, is used but not defined"
@@ -64226,115 +64216,115 @@ msgstr "%<static%> olarak bildirilen `%q+F hiç tanımlanmamış"
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "%2$qL ilintili önceki %1$q+#D bildirimi"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "%2$qL ilintili önceki %1$q+#D bildirimi"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q+#D niteliksiz türe başvurmuyor, dolasıyla ilintileme için kullanılmaz"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%<static%> olarak bildirilen `%q+F hiç tanımlanmamış"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 #| msgid "%q+F declared %<static%> but never defined"
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%<static%> olarak bildirilen `%q+F hiç tanımlanmamış"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, fuzzy, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "%2$qL ilintili önceki %1$q+#D bildirimi"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D conflicts with previous using declaration %q#D"
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "%q#D önceki using bildirimi %q#D ile çelişiyor"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous mangling %q#D"
 msgstr "önceden %q+D bildirimi"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D used but never defined"
 msgid "inline function %qD used but never defined"
 msgstr "satıriçi işlev %q+D tanımlanmadan kullanılmış"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "%2$q+#D'nin %1$P. parametresi için öntanımlı argüman eksik"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot have default arguments"
 msgid "...following parameter %P which has a default argument"
 msgstr "%qD öntanımlı argümanlara sahip olamaz"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "implicitly-declared %qD is deprecated"
 msgstr "%qs önerilmiyor"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, fuzzy, gcc-internal-format
 #| msgid "converting NULL to non-pointer type"
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "NULL'dan gösterici olmayan türe dönüşüm"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "use of deleted function %qD"
 msgstr "static olmayan üye işlev %qD kullanımı geçersiz"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of C function %q#D conflicts with"
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "C işlevi %q#D bildirimi"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr ""
@@ -64441,7 +64431,7 @@ msgstr "%<%T::%D%> ile ilişkilendirme belirsiz"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qD %qT'nin bir üyesi değil"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD %qT'nin bir üyesi değil"
@@ -64452,7 +64442,7 @@ msgstr "%qD %qT'nin bir üyesi değil"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qD, %qD nin bir üyesi değil"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD, %qD nin bir üyesi değil"
@@ -64479,53 +64469,53 @@ msgstr "olağandışılık yakalaması iptal edildi, etkinleştirmek için -fexc
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "tumleyen, gösterici olmayan NULL yakalanıyor"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  yakalanmış ifade içinde"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter %q+D to be of abstract type %qT"
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "parametre %q+D soyut %qT türünde bildirilemez"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create type information for type %qT because its size is variable"
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "boyutu değişken olduğundan tür %qT için tür bilgisi oluşturulamaz"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, fuzzy, gcc-internal-format
 #| msgid "cannot create type information for type %qT because its size is variable"
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "boyutu değişken olduğundan tür %qT için tür bilgisi oluşturulamaz"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, fuzzy, gcc-internal-format
 #| msgid "%Hexception of type %qT will be caught"
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "%H%qT türündeki olağandışılık yakalanmış olacak"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, fuzzy, gcc-internal-format
 #| msgid "as %qD"
 msgid "for type %qT"
 msgstr "%qD olarak"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<...%> handler must be the last handler for its try block"
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "%H%<...%> eylemcisi kendi try blokundaki son eylemci olmalıdır"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -64814,12 +64804,12 @@ msgstr "%qT türü bir doğrudan ya da dolaylı %qT tabanı değil"
 msgid "type %qT is not a direct base of %qT"
 msgstr "%qT türü bir doğrudan %qT tabanı değil"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr ""
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have class type"
 msgid "%qT is not a class type"
@@ -64835,12 +64825,12 @@ msgstr "içi boş tür %qT üye %qD'yi içermiyor"
 msgid "invalid pointer to bit-field %qD"
 msgstr "%qD bit alanına gösterici geçersiz"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "static olmayan üye işlev %qD kullanımı geçersiz"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "static olmayan veri üyesi %qD kullanımı geçersiz"
@@ -65048,55 +65038,55 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "vektör silme işlemi için tür ne gösterici ne de dizi"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, fuzzy, gcc-internal-format
 #| msgid "compound literal has variable size"
 msgid "because the array element type %qT has variable size"
 msgstr "bileşik sabit değişken boyuta sahip"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "cannot capture %qE by reference"
 msgstr "%q#T türüne başvuru bildirilemez"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type %qT"
 msgid "capture by copy of incomplete type %qT"
 msgstr "%s içi boş %qT türüne bir gösterici olamaz"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> was not captured for this lambda function"
@@ -65503,240 +65493,292 @@ msgstr "İfade türü umuluyordu"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting global module declaration %#qD"
 msgstr "%q#D bildirimi çelişkili"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration %q+D"
 msgid "existing declaration %#qD"
 msgstr "%q+D bildiriminde"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 #| msgid "extern declaration of %q#D doesn't match"
 msgid "definition of %qD does not match"
 msgstr "%q#D extern bildirim uyumsuz"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing definition"
 msgid "existing definition %qD"
 msgstr "tanım eksik"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "... this enumerator %qD"
 msgstr "enumerator %q+D yeniden bildirilmiş"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 #| msgid "extern declaration of %q#D doesn't match"
 msgid "enumerator %qD does not match ..."
 msgstr "%q#D extern bildirim uyumsuz"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "module %qs declared here"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q+#D"
 msgid "macro definitions of %qE corrupted"
 msgstr "  %q+#D tanımından"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 #| msgid "Inconsistent ranks for operator at %L and %L"
 msgid "inconsistent imported macro definition %qE"
 msgstr "%L ve %L'de işliçler için sıralar uyumsuz"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 #| msgid "%s: can't delete file '%s': %s\n"
 msgid "compiled module file is %qs"
 msgstr "%s: `%s' silinemiyor: %s\n"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiled module is %sversion %s"
 msgstr "collect2 %s sürümü\n"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2 %s sürümü\n"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 #| msgid "field %qs not found"
 msgid "module %qs found"
 msgstr "alan %qs yok"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr ""
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 #| msgid "multiple function type attributes specified"
 msgid "fixed tree mismatch"
 msgstr "çok sayıda işlev türü öznitelik belirtilmiş"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "interface partition is not exported"
 msgstr "yığıt sınırlama ifadesi desteklenmiyor"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr ""
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to get process times"
 msgid "failed to read compiled module: %s"
 msgstr "süreç zamanlarını almada başarısızlık"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+#| msgid "conflicts with built-in declaration %q#D"
+msgid "declaration %qD conflicts with builtin"
+msgstr "%q#D yerleşik bildirimiyle çelişiyor"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+#| msgid "asm declaration ignored due to conflict with previous rename"
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "asm bildirimi önceki isim değişikliği ile çeliştiğinden yoksayıldı"
+
+#: cp/module.cc:19125
+#, fuzzy, gcc-internal-format
+#| msgid "using declaration %q+D conflicts with a previous using declaration"
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr "%q+D bildirimi kullanımı önceki bildirimlerden biri ile çelişiyor"
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration %q#D"
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "%q#D bildirimi çelişkili"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+#| msgid "conflicts with new declaration with %qL linkage"
+msgid "conflicting declaration of %qD in global module"
+msgstr "%qL ilintili yeni bildirim ile çelişiyor"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "%q+#D previously declared here"
+msgid "previously declared in module %qs"
+msgstr "%q+#D evvelce burada bildirilmiş"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "%q+#D previously declared here"
+msgid "previously declared in global module"
+msgstr "%q+#D evvelce burada bildirilmiş"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 #| msgid "Creating '%s'\n"
 msgid "reading CMI %qs"
 msgstr "'%s' oluşturuluyor\n"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr ""
@@ -65748,435 +65790,435 @@ msgstr ""
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "module already declared"
 msgstr "'%s' bileşeni (%C'deki) zaten %L'de bildirilmiş"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "module already imported"
 msgstr "'%s' bileşeni (%C'deki) zaten %L'de bildirilmiş"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, fuzzy, gcc-internal-format
 #| msgid "label %q+D defined but not used"
 msgid "module %qs imported here"
 msgstr "%q+D yaftası tanımlı ama kullanılmamış"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr ""
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 #| msgid "Enable traditional preprocessing"
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "Geleneksel önişlem etkin olur"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr ""
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter %qs"
 msgid "invalid header name %qs"
 msgstr "geçersiz parametre %qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 #| msgid "invalid pointer mode %qs"
 msgid "invalid module name %qs"
 msgstr "gösterici kipi olarak %qs geçersiz"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 #| msgid "error writing %qs"
 msgid "writing CMI %qs"
 msgstr "%qs yazılırken hata"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 #| msgid "Error writing modules file: %s"
 msgid "not writing module %qs due to errors"
 msgstr "Modul dosyasına yazarken hata: %s"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to get process times"
 msgid "failed to write compiled module: %s"
 msgstr "süreç zamanlarını almada başarısızlık"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown header kind %qs"
 msgstr "bilinmeyen yazmaç ismi: %s"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr ""
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "%qD şablon parametreleri olmaksızın kullanılmış"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D conflicts with previous using declaration %q#D"
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D önceki using bildirimi %q#D ile çelişiyor"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D hides constructor for %q#T"
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D %q#T kurucusunu gizliyor"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "%q#D bildirimi çelişkili"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, fuzzy, gcc-internal-format
 #| msgid "Generate code to check exception specifications"
 msgid "due to different exception specifications"
 msgstr "Olağan dışılık belirtimlerini sınayacak kod üretilir"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD invalidly declared method type"
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "parametre %qD geçersiz olarak yöntem türünde bildirilmiş"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "%q#D bildirimi bir parametreyi gölgeliyor"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "%2$qT üyesi olarak %1$qD bildirimi"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 #| msgid "using declaration %q+D conflicts with a previous using declaration"
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "%q+D bildirimi kullanımı önceki bildirimlerden biri ile çelişiyor"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s(%E) %p %d\n"
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %s(%E) %p %d\n"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s %p %d\n"
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d\n"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%q#D declared here with no linkage"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 #| msgid "%qD redeclared with different access"
 msgid "%q#D declared here with internal linkage"
 msgstr "%qD farklı erişimle tekrar bildirilmiş"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%q#D declared here with module linkage"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> names destructor"
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T::%D%> yıkıcı isimlendiriyor"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "sınıf bağlamında üye olmayan için using bildirimi"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qT bir sınıf ya da isim alanı değil"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "%q#D şablon bildirimi"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration for non-member at class scope"
 msgid "using-declaration for member at non-class scope"
 msgstr "sınıf bağlamında üye olmayan için using bildirimi"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "%qT is not a direct base of %qT"
 msgstr "%qT türü bir doğrudan %qT tabanı değil"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 #| msgid "%qD not declared"
 msgid "%qD has not been declared in %qD"
 msgstr "%qD bildirilmemiş"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "using-declaration may not name namespace %qD"
 msgstr "%q#D bildirimi çelişkili"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> %qT içinde kurucu isimlendiriyor"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "%qD bildirimi %qD'yi kuşatan isim alanında değil"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "%qD bildiriminde doğrudan niteleme"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD %qD içinde bildirilmeliydi"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 #| msgid "%qD not declared"
 msgid "%qD has not been declared within %qD"
 msgstr "%qD bildirilmemiş"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a friend"
 msgid "only here as a %<friend%>"
 msgstr "%q+D bir kardeş olarak bildirilmiş"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute requires an integer constant argument"
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "%qs özniteliği bir tamsayı sabit argüman gerektirir"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr ""
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "%qD öznitelik yönergesi yoksayıldı"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] ""
 msgstr[1] ""
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, fuzzy, gcc-internal-format
 #| msgid "  %q+#D"
 msgid "  %qE"
 msgstr "  %q+#D"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "statik üye işlevlerde %<this%> kullanılmaz"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D cannot be declared"
 msgid "the macro %qs had not yet been defined"
 msgstr "%q+#D bildirilemez"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously defined here"
 msgid "it was later defined here"
 msgstr "%q+#D evvelce burada tanımlanmış"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr ""
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 #| msgid "switch %qs is no longer supported"
 msgid "%<strong%> using directive no longer supported"
 msgstr "switch %qs artık desteklenmiyor"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "bu kapsamda %<this%> kullanılamaz"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qD may not be declared within a namespace"
 msgid "cannot nest more than %d namespaces"
 msgstr "%qD bir isim alanı içinde bildirilemeyebilir"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L is ambiguous"
 msgid "%<namespace %E%> is ambiguous"
 msgstr "'%s' simgesi (%L'de) belirsiz"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "burada isim alanı rumuzu %qD kullanılamaz, %qD varsayılıyor"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attribute cannot be specified for local variables"
 msgid "inline namespace must be specified at initial definition"
 msgstr "%Jbölüm özniteliği yerel değişkenler için belirtilmiş olamaz"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 #| msgid "label %q+D defined but not used"
 msgid "%qD defined here"
 msgstr "%q+D yaftası tanımlı ama kullanılmamış"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D conflicts with previous using declaration %q#D"
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "%q#D önceki using bildirimi %q#D ile çelişiyor"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%Jprevious definition here"
 msgid "reachable %s definition here"
 msgstr "%Jönceden burada tanımlı"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, fuzzy, gcc-internal-format
 #| msgid "XXX entering pop_everything ()\n"
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX, pop_everything () işlevine giriyor\n"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "XXX leaving pop_everything ()\n"
 msgid "XXX leaving %<pop_everything ()%>"
@@ -66203,7 +66245,7 @@ msgstr ""
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
@@ -66482,7 +66524,7 @@ msgstr ""
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr ""
@@ -66681,7 +66723,7 @@ msgstr "deyim ifadelerine sadece işlevlerin içinde izin verilir"
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "expected primary-expression"
@@ -66742,7 +66784,7 @@ msgstr ""
 msgid "template-id not allowed for destructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -66763,7 +66805,7 @@ msgstr "typedef ismi %qD yıkıcı bildiricisi olarak kullanılmış"
 msgid "expected unqualified-id"
 msgstr "belirteç niteleyici listesi umuluyordu"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD bir şablon değil"
@@ -66821,7 +66863,7 @@ msgstr "new türleri bir dönüş türünde tanımlanamayabilir"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "%qs özniteliği için belirtilen argüman sayısı yanlış"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 #| msgid "wrong type argument to bit-complement"
 msgid "wrong number of arguments to %<__builtin_launder%>"
@@ -66860,7 +66902,7 @@ msgstr "new türleri bir dönüş türünde tanımlanamayabilir"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "%qD kullanımı geçersiz"
@@ -66888,7 +66930,7 @@ msgstr "ISO C++ tasarlanmış ilkendiricilere izin vermez"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "new türleri bir dönüş türünde tanımlanamayabilir"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "types may not be defined in %qs expressions"
@@ -67050,8 +67092,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr "salt-okunur değişken %qD için eksiltme"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%q#D declared here"
@@ -67092,7 +67134,7 @@ msgstr "öntanımlı argüman %2$q#D bildiriminin %1$d. parametresi için"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -67226,7 +67268,7 @@ msgstr "asm deyiminde geçersiz sol taraf"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr ""
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration or statement"
 msgid "expected selection-statement"
@@ -67295,7 +67337,7 @@ msgstr "ifade deyimi boş tür içeriyor"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr ""
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration or statement"
 msgid "expected iteration-statement"
@@ -67322,7 +67364,7 @@ msgstr ""
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ hesaplanmış goto'lara izin vermez"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "expected jump-statement"
@@ -67630,13 +67672,13 @@ msgstr "temel ilklendiricileri sadece kurucular alır"
 msgid "cannot expand initializer for member %qD"
 msgstr "uye %qD için ilklendirici eksik"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, fuzzy, gcc-internal-format
 #| msgid "static declaration of %q+D follows non-static declaration"
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "%q+D statik bildirimi statik olmayan bildirimi izliyor"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr ""
@@ -68350,7 +68392,7 @@ msgstr "%q#D için öntanımlı argüman %qT türünde"
 msgid "%qT not permitted in template argument"
 msgstr "new türleri bir dönüş türünde tanımlanamayabilir"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
@@ -68554,12 +68596,12 @@ msgstr "%q+#T türünde önceden tanım"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "expected class-key"
@@ -68783,40 +68825,40 @@ msgstr ""
 msgid "expression must be enclosed in parentheses"
 msgstr "%L'deki ifade değişmez olmalı"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 #| msgid "requested position is not an integer constant"
 msgid "result type is not a plain type-constraint"
 msgstr "istenen konum bir tamsayı sabit değil"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a constant"
 msgid "return-type-requirement is not a type-constraint"
 msgstr "istenen hizalama bir sabit değil"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, fuzzy, gcc-internal-format
 #| msgid "invalid redeclaration of %q+D"
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "yeniden %q+D bildirimi geçersiz"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "şablon parametresi listesi çok az"
@@ -68825,496 +68867,496 @@ msgstr "şablon parametresi listesi çok az"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "şablon parametresi listesi çok fazla"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "isimli dönüş değerleri artık desteklenmiyor"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, fuzzy, gcc-internal-format
 #| msgid "no matching template for %qD found"
 msgid "no matching concept for template-introduction"
 msgstr "%qD için eşleşen bir şablon yok"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, fuzzy, gcc-internal-format
 #| msgid "invalid declaration of member template %q#D in local class"
 msgid "invalid declaration of member template in local class"
 msgstr "yerel sınıf içinde %q#D üye şablonu bildirimi geçersiz"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "C ilintilemeli şablon"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, fuzzy, gcc-internal-format
 #| msgid "invalid base-class specification"
 msgid "invalid explicit specialization"
 msgstr "taban sınıf belirtimi geçersiz"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %qs"
 msgid "template declaration of %<typedef%>"
 msgstr "%qs şablon bildirimi"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, fuzzy, gcc-internal-format
 #| msgid "declaration does not declare anything"
 msgid "a class template declaration must not declare anything else"
 msgstr "bildirim hiçbir şey bildirmiyor"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization in non-namespace scope %qD"
 msgid "explicit template specialization cannot have a storage class"
 msgstr "isim alanı olmayan %qD kapsamında doğrudan özelleştirme"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, fuzzy, gcc-internal-format
 #| msgid "%H%<>>%> should be %<> >%> within a nested template argument list"
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%H%<>>%> alt şablon argüman listesinde %<> >%> olmalıydı"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "sahte  %<>>%>, bir şablon argüman listesini sonlandırmak için %<>%> kullanın"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 #| msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "sahte  %<>>%>, bir şablon argüman listesini sonlandırmak için %<>%> kullanın"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, fuzzy, gcc-internal-format
 #| msgid "invalid base-class specification"
 msgid "invalid use of %qD in linkage specification"
 msgstr "taban sınıf belirtimi geçersiz"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate cv-qualifier"
 msgid "duplicate %qD specifier"
 msgstr "cv-niteleyici yinelenmiş"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 #| msgid "  conflict with %q+D"
 msgid "%qD specifier conflicts with %qs"
 msgstr "  %q+D ile çelişiyor"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> before %<extern%>"
 msgid "%<__thread%> before %qD"
 msgstr "%<extern%> öncesinde %<__thread%>"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%<__thread%> %<typedef%> ile kullanılmış"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<long long%>"
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ %<long long%> desteklemez"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, fuzzy, gcc-internal-format
 #| msgid "both %<short%> and %<char%> in declaration specifiers"
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "bildirim belirteçlerinde hem %<short%> hem de %<char%>"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate %qE"
 msgid "duplicate %qD"
 msgstr "%qE yinelenmiş"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "%qs yinelenmiş"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<new%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<delete%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<return%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<extern%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "expected %<static_assert%>"
 msgstr "deyim umuluyordu"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<decltype%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<operator%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<class%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<template%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<namespace%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<using%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<asm%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<try%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<catch%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<throw%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<auto%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<__label__%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@try%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@synchronized%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<@throw%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr ""
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<co_yield%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<::%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<...%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<*%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<{%>"
 msgid "expected %<~%>"
 msgstr "%<{%> umuluyordu"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<:%> or %<...%>"
 msgid "expected %<:%> or %<::%>"
 msgstr "%<:%> veya %<...%> umuluyordu"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "%qs yaftası %q#T isimlemesinde kullanılmış"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously declared here"
 msgid "%q#T was previously declared here"
 msgstr "%q+#D evvelce burada bildirilmiş"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "%q#T türüne başvuru bildirilemez"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr ""
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 #| msgid "expected class name"
 msgid "replace the class-key with %qs"
 msgstr "sınıf ismi umuluyordu"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 #| msgid "label %q+D defined but not used"
 msgid "%qT defined as %qs here"
 msgstr "%q+D yaftası tanımlı ama kullanılmamış"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "%qT first declared as %qs here"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD farklı erişimle tekrar bildirilmiş"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, fuzzy, gcc-internal-format
 #| msgid "%<template%> (as a disambiguator) is only allowed within templates"
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "%<template%> (bir belirsizlik giderici olarak) sadece şablonlarda kullanılabilir"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "öntanımlı argüman içinde dosya sonu"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "yanlış yere konmuş %<@%D%> Nesnel-C++ oluşumu"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr ""
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "%<@encode%> bir argüman olarak bir tür belirtmeli"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "Nesnel-C++ seçici ismi geçersiz"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration specifiers"
 msgid "objective-c++ method declaration is expected"
 msgstr "bildirim belirteçleri umuluyordu"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, fuzzy, gcc-internal-format
 #| msgid "%Jsection attribute cannot be specified for local variables"
 msgid "method attributes must be specified at the end"
 msgstr "%Jbölüm özniteliği yerel değişkenler için belirtilmiş olamaz"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, fuzzy, gcc-internal-format
 #| msgid "illegal reference type specified for instance variable %qs"
 msgid "invalid type for instance variable"
 msgstr "gerçekleme değişkeni %qs için ilişkilendirme türü kuraldışı"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "%<@protocol%> sonrasında betimleyici umuluyordu"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored for %qE"
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "%qE özniteliği %qE için yoksayıldı"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument"
 msgid "invalid type for property"
 msgstr "tür argümanı geçersiz"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, fuzzy, gcc-internal-format
 #| msgid "unknown register name: %s"
 msgid "unknown property attribute %qE"
 msgstr "bilinmeyen yazmaç ismi: %s"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "expected integer expression list"
 msgstr "ifade umuluyordu"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, fuzzy, gcc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "%<wait%> expression must be integral"
 msgstr "%C'deki STAT ifadesi bir değişken olmalıdır"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%>, %<;%> or %<}%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "%<,%>, %<;%> veya %<}%> umuluyordu"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid reduction-identifier"
 msgstr "geçersiz ilklendirici"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "types may not be defined in iterator type"
@@ -69324,13 +69366,13 @@ msgstr "new türleri bir dönüş türünde tanımlanamayabilir"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma vtable no longer supported"
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "#pragma vtable artık desteklenmiyor"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
@@ -69340,143 +69382,143 @@ msgstr ""
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr ""
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, fuzzy, gcc-internal-format
 #| msgid "register variable %qD used in nested function"
 msgid "iteration variable %qD should not be reduction"
 msgstr "yazmaç değişkeni %qD iç işlevde kullanılmış"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma align%> %D bildiriminden önce görünmeli, yoksayılıyor"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer clause"
 msgstr "geçersiz ilklendirici"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "expected id-expression (arguments)"
 msgstr "ifade umuluyordu"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "types may not be defined in declare reduction type list"
 msgstr "new türleri bir dönüş türünde tanımlanamayabilir"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member template function"
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD bir üye şablon işlevi değil"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr ""
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr ""
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 #| msgid "malformed #pragma GCC pch_preprocess, ignored"
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "#pragma GCC pch_preprocess bozuk, yoksayıldı"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr ""
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr ""
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC memregs must precede any function decls"
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "#pragma GCC memregs bir işlev bildirimi ile öncelenmeli"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "multi-source compilation not implemented for C++"
 msgstr "modüller arası eniyilemeler henüz C++ için gerçeklenmedi"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 #| msgid "standard conversions are not allowed in this context"
 msgid "placeholder type not allowed in this context"
 msgstr "standart uzlaşımlara bu bağlam içinde izin verilmez"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr ""
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -69507,7 +69549,7 @@ msgstr "sınıf sablonlarının kapsanması doğrudan özelleştirilmez"
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "farklı isim alanında %qD özelleştirmesi"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "farklı isim alanında %qD özelleştirmesi"
@@ -69523,29 +69565,29 @@ msgstr "  %q+#D tanımından"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "%3$qD isim alanını kapsamayan %2$qD isim alanında doğrudan %1$qD bildirimi"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, fuzzy, gcc-internal-format
 #| msgid "invalid default argument for a template template parameter"
 msgid "name of class shadows template template parameter %qD"
 msgstr "bir şablonun şablon parametresi için öntanımlı argüman geçersiz"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template %q#D"
 msgid "specialization of alias template %qD"
 msgstr "%q#D şablon bildirimi"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "şablon olmayan %qT için doğrudan özelleştirme"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "örneklenim sonrası %qT özelleştirmesi"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q+#D"
 msgid "from definition of %q#D"
@@ -69553,155 +69595,155 @@ msgstr "  %q+#D tanımından"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, fuzzy, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "örneklenim %2$qT sonrası %1$qT özelleştirmesi"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "işlev şablonu kısmi özelleştirmesi %qD bildiricisine izin verilmez"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "örneklenim sonrası %qD özelleştirmesi"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 #| msgid "%s %+#D"
 msgid "%s %#qD"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD bir işlev şablonu değil"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is not a variable template"
 msgstr "%qD bir şablon değil"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "şablon kimliği %qD %q+D için hiçbir şablon bildirimi ile eşleşmiyor"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "%2$q+D için şablon özelleştirmesi %1$qD belirsiz"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr ""
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d)"
 msgid "too many template headers for %qD (should be %d)"
 msgstr "yanlış sayıda şablon argümanı (%d yerine %d olmalıydı)"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "ilk kullanımdan sonra %D'nin açıkça özelleştirilmesi"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "%3$qD isim alanını kapsamayan %2$qD isim alanında doğrudan %1$qD bildirimi"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "ilk kullanımdan sonra %D'nin açıkça özelleştirilmesi"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing primary template attributes %s"
 msgstr "Code özniteliği eksik"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing primary template attribute %s"
 msgstr "Code özniteliği eksik"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 #| msgid "template-id %qD in declaration of primary template"
 msgid "template-id %qE in declaration of primary template"
 msgstr "birincil şablon bildiriminde şablon kimliği %qD"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "şablon parametre listesi doğrudan örneklenimde kullanılmış"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "tanım doğrudan örneklenim için sağlanmış"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "%qD bildiriminde çok fazla şablon parametresi listeleniyor"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "%qD bildiriminde çok az şablon parametresi listeleniyor"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "%qD doğrudan özelleştirmesi %<template <>%> tarafından vurgulanmalı"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization declared %<concept%>"
 msgstr "şablon olmayan %qT için doğrudan özelleştirme"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "işlev şablonu kısmi özelleştirmesi %qD bildiricisine izin verilmez"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "işlev şablonu kısmi özelleştirmesi %qD bildiricisine izin verilmez"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "doğrudan özelleştirmede öntanımlı argüman belirtilmiş"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD bir şablon işlevi değildir"
@@ -69714,172 +69756,172 @@ msgstr "%qD bir şablon işlevi değildir"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "örtük bildirimli özel üye işlev özelleştirmesi"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, fuzzy, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "%2$qT türünde bildirimli %1$qD isminde üye işlev yok"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration %q#D declares a non-template function"
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "friend bildirimi %q#D bir şablon olmayan işlev bildiriyor"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+#D here"
 msgid "friend declaration here"
 msgstr "buradaki önceki %q+#D bildirimi ile çelişiyor"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization of function concept %qD"
 msgstr "şablon olmayan %qT için doğrudan özelleştirme"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ACOS at %L must be between -1 and 1"
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "%L'deki ACOS argümanı -1 .. 1 arasında olmalı"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, fuzzy, gcc-internal-format
 #| msgid "data member %qD cannot be a member template"
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "veri üyesi %qD bir üye şablon olamaz"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, fuzzy, gcc-internal-format
 #| msgid "data member %qD cannot be a member template"
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "veri üyesi %qD bir üye şablon olamaz"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr ""
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "        %qD"
 msgid "        %s"
 msgstr "        %qD"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "%q+D bildirimi bir parametreyi gölgeliyor"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "%q+D bildirimi bir parametreyi gölgeliyor"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "template parameter %qD declared here"
 msgstr "şablon parametre türü %qT %<friend%> bildirimli"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of template %q#D"
 msgid "specialization of variable concept %q#D"
 msgstr "%q#D şablon bildirimi"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "template parameters not deducible in partial specialization:"
 msgstr "kismi özelleştirmede kullanılmayan şablon parametreleri:"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "kısmi özelleştirme %qT hiç bir şablon argümanını özelleştirmiyor"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr ""
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qE"
 msgid "too many arguments for partial specialization %qT"
 msgstr "%qE işlevi için çok fazla argüman belirtildi"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %qD is not more specialized than"
 msgstr "kısmi özelleştirme %qT hiç bir şablon argümanını özelleştirmiyor"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate label %qD"
 msgid "primary template %qD"
 msgstr "yinelenmiş %qD yaftası"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, fuzzy, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "%2$qE şablon argümanının %1$qT türü şablon parametre(ler)ine bağımlı oluyor"
 msgstr[1] "%2$qE şablon argümanının %1$qT türü şablon parametre(ler)ine bağımlı oluyor"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "%q#T için sınıf şablonu örneklenimi belirsiz"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %qD after instantiation"
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "örneklenim sonrası %qD özelleştirmesi"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "%qD için öntanımlı argüman yok"
@@ -69888,54 +69930,54 @@ msgstr "%qD için öntanımlı argüman yok"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "%qD şablon parametreleri olmaksızın kullanılmış"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, fuzzy, gcc-internal-format
 #| msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "öntanımlı argümanlara kardeş şablon özelleştirmesi %qD bildiriminde izin verilmez"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 #| msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "öntanımlı argümanlara kardeş şablon özelleştirmesi %qD bildiriminde izin verilmez"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "öntanımlı argümanlara kardeş şablon özelleştirmesi %qD bildiriminde izin verilmez"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "default template arguments may not be used in partial specializations"
 msgstr "kismi özelleştirmede kullanılmayan şablon parametreleri:"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for parameter of type %qT has type %qT"
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "%qT türündeki parametre için öntanımlı argüman %qT türünde"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD declared void"
 msgid "template %qD declared"
 msgstr "parametre %qD void olarak bildirilmiş"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "bir isim olmaksızın şablon sınıfı"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, fuzzy, gcc-internal-format
 #| msgid "%smember function %qD cannot have cv-qualifier"
 msgid "member template %qD may not have virt-specifiers"
@@ -69946,65 +69988,65 @@ msgstr "%süye işlev %qD cv niteleyicisini içeremez"
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "%qD şablon bildirimi geçersiz"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "şablon olmayan %q#D için şablon tanımı"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "%d seviye umulurken %q#D için şablon parametresi seviyesi olarak %d seviye alındı"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "%d şablon parametresi %q#D için alındı"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "%d şablon parametresi %q#T için alındı"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  ama %d gerekiyordu"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters do not match template"
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "şablon parametreleri bu şablonla uyuşmuyor:"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, fuzzy, gcc-internal-format
 #| msgid "enclosing class templates are not explicitly specialized"
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "sınıf sablonlarının kapsanması doğrudan özelleştirilmez"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of %qT as a non-template"
 msgid "redeclaration of %qD with different constraints"
 msgstr "bir şablon olmayan olarak yeniden %qT bildirimi"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT bir şablon türü değil"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "%qD bildiriminde şablon belirteçleri belirtilmemiş"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "redeclared with %d template parameter"
@@ -70012,7 +70054,7 @@ msgid_plural "redeclared with %d template parameters"
 msgstr[0] "%qD şablon parametreleri olmaksızın kullanılmış"
 msgstr[1] "%qD şablon parametreleri olmaksızın kullanılmış"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+#D here"
 msgid "previous declaration %qD used %d template parameter"
@@ -70020,489 +70062,489 @@ msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "buradaki önceki %q+#D bildirimi ile çelişiyor"
 msgstr[1] "buradaki önceki %q+#D bildirimi ile çelişiyor"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "şablon parametresi %q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "burada %q#D olarak yeniden bildirilmiş"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid "redeclared here"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of typedef %q+D"
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "typedef %q+D için yeniden tanımlama"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 #| msgid "%J  original definition appeared here"
 msgid "original declaration appeared here"
 msgstr "%J  ozgun tanımı burada görüldü"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of %qT as a non-template"
 msgid "redeclaration of %q#D with different constraints"
 msgstr "bir şablon olmayan olarak yeniden %qT bildirimi"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü o bir göstericidir"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü %qD nesnesi için harici ilintileme yok"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü %qD nesnesi için harici ilintileme yok"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "(bir üye göstericisi sadece %<&%E%> ile şekillendirilebilir)"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "because it is a member of %qT"
 msgstr "%qD %qT'nin bir üyesi değil"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 #| msgid "got %d template parameters for %q#D"
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "%d şablon parametresi %q#D için alındı"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr ""
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %q#T and %q#T"
 msgid "  mismatched types %qT and %qT"
 msgstr "%q#T ile %q#T türleri arasında karşılaştırma"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr ""
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %qE involves template parameter(s)"
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "şablon argümanı %qE şablon parametre(ler)ini içine alıyor"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a base of %qT"
 msgid "  %qE is not equivalent to %qE"
 msgstr "%qT %qT tabanında değil"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, fuzzy, gcc-internal-format
 #| msgid "Inconsistent ranks for operator at %L and %L"
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr "%L ve %L'de işliçler için sıralar uyumsuz"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr ""
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr ""
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "kısmi özelleştirme %qT hiç bir şablon argümanını özelleştirmiyor"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' at %L is not allowed as an actual argument"
 msgid "  member function type %qT is not a valid template argument"
 msgstr "'%s' beyan işlevine bir fiili argüman olarak izin verilmez (%L'de)"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert type %qT to type %qT"
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "%qT türü %qT türüne dönüştürülemiyor"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is an ambiguous base of %qT"
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "%qT bir belirsiz %qT tabanıdır"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not derived from type %qT"
 msgid "  %qT is not derived from %qT"
 msgstr "%qT türü %qT türünden türetilmemiş"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type %qT"
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "%s içi boş %qT türüne bir gösterici olamaz"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "argument of type %qT does not match %qT"
 msgid "  template argument %qE does not match %qE"
 msgstr "%qT türündeki argüman %qT ile eşleşmiyor"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil cunku o bir sol taraf terimi değil"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü %qD nesnesi için harici ilintileme yok"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü %qD nesnesi için harici ilintileme yok"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "the address of %qD is not a valid template argument"
 msgstr "kısmi özelleştirme %qT hiç bir şablon argümanını özelleştirmiyor"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "kısmi özelleştirme %qT hiç bir şablon argümanını özelleştirmiyor"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü %qD nesnesi için harici ilintileme yok"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil cunku o bir sol taraf terimi değil"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil cunku o bir sol taraf terimi değil"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü bu bağlamda dizge sabitler kullanılamaz"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for %q#D has type %qT"
 msgid "in template argument for type %qT"
 msgstr "%q#D için öntanımlı argüman %qT türünde"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %qE involves template parameter(s)"
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "şablon argümanı %qE şablon parametre(ler)ini içine alıyor"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "cv nitelemesinde çeliştiğinden dolayı %qE %qT türü için geçerli bir şablon argümanı değildir"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is not a lvalue"
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil cunku o bir sol taraf terimi değil"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because it is not a constant pointer"
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü o bir sabit göstericisi değildir"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü o bir göstericidir"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "yerine %qE kullanmayı deneyin"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü %qT türündedir"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, fuzzy, gcc-internal-format
 #| msgid "applying attributes to template parameters is not implemented"
 msgid "ignoring attributes on template argument %qT"
 msgstr "özniteliklerin şablon parametrelerine uygulanması gerçeklenmedi"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 #| msgid "applying attributes to template parameters is not implemented"
 msgid "ignoring attributes in template argument %qE"
 msgstr "özniteliklerin şablon parametrelerine uygulanması gerçeklenmedi"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr ""
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of constructor as a template"
 msgid "invalid use of destructor %qE as a type"
 msgstr "kurucunun şablon olarak kullanımı geçersiz"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "bir şablon parametresinin bir tür üyesine basvurmak için %<typename %E%> kullanın"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, fuzzy, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "%2$qD için şablon parametre listesindeki %1$d. argümanda tür/değer uyumsuzluğu"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  %qT türünde bir sabit umulurken %qT alındı"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for parameter of type %qT has type %qT"
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "%qT türündeki parametre için öntanımlı argüman %qT türünde"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  bir sınıf sablonu umulurken %qE alındı"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  bir tür umulurken %qE alındı"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  bir tür umulurken %qT alındı"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  bir sınıf sablonu umulurken %qT alındı"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a template of type %qD, got %qD"
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  %qD türünde bir şablon umulurken %qD alındı"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "%2$qD için şablon parametre listesindeki %1$d. argümanda tür/değer uyumsuzluğu"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a type, got %qE"
 msgid "  expected %qD but got %qD"
 msgstr "  bir tür umulurken %qE alındı"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 #| msgid "could not convert template argument %qE to %qT"
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "şablon argümanı %qE %qT'ye dönüştürülemedi"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "%d. şablon argümanı geçersiz"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "yanlış sayıda şablon argümanı (%d yerine %d olmalıydı)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d)"
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "yanlış sayıda şablon argümanı (%d yerine %d olmalıydı)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, fuzzy, gcc-internal-format
 #| msgid "provided for %q+D"
 msgid "provided for %qD"
 msgstr "%q+D için sağlanmış"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, fuzzy, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "öntanımlı argüman %2$q#D bildiriminin %1$d. parametresi için"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%q#D is not a function template"
 msgstr "%qD bir işlev şablonu değil"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "şablon olarak şablon olmayan tür %qT kullanılmış"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "%q+D şablon bildirimi için"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "template constraint failure for %qD"
 msgstr "%q#T için sınıf şablonu örneklenimi belirsiz"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "use of invalid variable template %qE"
 msgstr "%qD bir şablon değil"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating %qD"
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "%d lik azami şablon örneklenim derinliği %qD örnekleniminde aşılıyor (azami değeri arttırmak için -ftemplate-depth-NN kullanın)"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between signed and unsigned integer expressions"
 msgid "score argument must be constant integer expression"
 msgstr "işaretli ve işaretsiz tamsayı ifadeler arasında karşılaştırma"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 #| msgid "%s at %L must be a scalar"
 msgid "score argument must be non-negative"
 msgstr "%s' (%L'de) bir değişmez olmalıdır"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, fuzzy, gcc-internal-format
 #| msgid "selector must be an integer constant in the range 0..%wi"
 msgid "property must be constant integer expression or string literal"
 msgstr "seçici 0..%wi aralığında bir tamsayı sabit olmalı"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 #| msgid "%Jflexible array member in union"
 msgid "flexible array member %qD in union"
 msgstr "%Junion içinde esnek dizi üye"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not at beginning of declaration"
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE bildirimin başlangıcında değil"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr ""
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr ""
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of default argument for %q#D"
 msgid "  when instantiating default argument for call to %qD"
 msgstr "%q#D için öntanımlı argümanın yeniden tanımı"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "sınıf olmayan %qT türünde üye işlev göstericisi oluşturulması"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "invalid type argument"
 msgid "mismatched argument pack lengths (%d vs %d)"
@@ -70521,325 +70563,325 @@ msgstr "tür argümanı geçersiz"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, fuzzy, gcc-internal-format
 #| msgid "variable %qD has initializer but incomplete type"
 msgid "variable %qD has function type"
 msgstr "%qD değişkeni ilklendiricili ama içi boş türde"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "geçersiz parametre türü %qT"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "%q+D bildiriminde"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "bir dizi döndüren işlev"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "bir işlev döndüren işlev"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "void'e referans oluşturuluyor"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, fuzzy, gcc-internal-format
 #| msgid "forming %s to reference type %qT"
 msgid "forming pointer to reference type %qT"
 msgstr "%s %qT referans türünde şekilleniyor"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, fuzzy, gcc-internal-format
 #| msgid "forming %s to reference type %qT"
 msgid "forming reference to reference type %qT"
 msgstr "%s %qT referans türünde şekilleniyor"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "%2$qT işlev türüne ekli %1$qV niteleyicileri yoksayılıyor"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "%2$qT işlev türüne ekli %1$qV niteleyicileri yoksayılıyor"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "sınıf olmayan %qT türünde üye göstericisi oluşturulması"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "%qT üye referans türünde gösterici oluşturulması"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "void türünde üyeye gösterici oluşturulması"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "%qT dizisi oluşturulması"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT ne bir class, ne struct, ne de union türünde"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT bir enum türü olmayan %qT türüne çözümleniyor"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 #| msgid "%qT resolves to %qT, which is is not a class type"
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT bir sınıf türü olmayan %qT türüne çözümleniyor"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "şablonda %qs kullanımı"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, fuzzy, gcc-internal-format
 #| msgid "qualified type %qT does not match destructor name ~%qT"
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "yetkin tür %qT, yıkıcı ismi ~%qT ile eslesmiyor"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "%qE bağımlı ismi bir tür olarak çözümlenmedi ama örneklenim onun bir tür olmasını istiyor"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "eğer bu bir tür anlamındaysa %<typename %E%> deyin"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not constant"
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "ilklendirici öğe bir sabit değil"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of void expression"
 msgid "invalid use of pack expansion expression"
 msgstr "void ifade kullanımı geçersiz"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, fuzzy, gcc-internal-format
 #| msgid "%<...%> as arguments.)"
 msgid "use %<...%> to expand argument pack"
 msgstr "%<...%> kabul edeceği varsayılacak.)"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr ""
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr ""
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a type"
 msgid "use %<%T::%D%> instead"
 msgstr "%<%T::%D%> bir tür değil"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared inline after its definition"
 msgid "%qD declared here, later in the translation unit"
 msgstr "%q+D tanımlandıktan sonra satıriçi bildirilmiş"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 #| msgid "first argument to %<__builtin_choose_expr%> not a constant"
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "%<__builtin_choose_expr%> için ilk argüman bir sabit değil"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qs attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "%qs özniteliği için belirtilen argüman sayısı yanlış"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT bir sınıf ya da isim alanı değil"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD ne bir sınıf ne de isim alanı"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "geçersiz alan %qD kullanımı"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is/uses anonymous type"
 msgid "%qT is/uses unnamed type"
 msgstr "%qT anonim türdür/tür kullanır"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for %q#D has type %qT"
 msgid "template argument for %qD uses local type %qT"
 msgstr "%q#D için öntanımlı argüman %qT türünde"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT değişkene göre değişen türde"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "bütünleyen ifade %qE bir sabit değil"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  %qD örneklenmeye çalışılıyor"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "ambiguous template instantiation for %q#T"
 msgstr "%q#T için sınıf şablonu örneklenimi belirsiz"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "ambiguous template instantiation for %q#D"
 msgstr "%q#T için sınıf şablonu örneklenimi belirsiz"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 #| msgid "%s %+#D"
 msgid "%s %#qS"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "şablon olmayan %q#D'nin doğrudan örneklenimi"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "şablon olmayan %q#D'nin doğrudan örneklenimi"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of function concept %q#D"
 msgstr "şablon olmayan %q#D'nin doğrudan örneklenimi"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D is not a non-static data member of %qT"
 msgid "%qD is not a static data member of a class template"
 msgstr "%q#D %qT'nin bir static olmayan üyesi değildir"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "%qD için eşleşen bir şablon yok"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template type %qT"
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "şablon olmayan tür %qT'nin doğrudan örneklenimi"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "%q#D'nin doğrudan örneklenimi"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "yinelenmiş doğrudan %q#D örneklenimi"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids the use of %<extern%> on explicit instantiations"
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++ doğrudan örneklenimlerde %<extern%> kullanımına izin vermez"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "saklama sınıfı %qD şablon örneklenimine uygulanmış"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of non-class template %qD"
 msgstr "şablon olmayan %q#D'nin doğrudan örneklenimi"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "şablon olmayan tür %qT'nin doğrudan örneklenimi"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "şablon tanımından önce %q#T'nin doğrudan örneklenimi"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ doğrudan örneklenimlerde %qE kullanımına izin vermez"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "yinelenmiş doğrudan %q#T örneklenimi"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "exception specification of %qD depends on itself"
@@ -70852,182 +70894,182 @@ msgstr "ilk kullanımdan sonra %D'nin açıkça özelleştirilmesi"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "bir tanımlama olmadan %qD'nin doğrudan örneklenimi"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth-NN to increase the maximum)"
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "%d lik azami şablon örneklenim derinliği %q+D örnekleniminde aşılıyor (azami değeri arttırmak için -ftemplate-depth-NN kullanın)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a valid type for a template constant parameter"
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%q#T bir şablon sabiti parametresi için geçerli bir tür değildir"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, fuzzy, gcc-internal-format
 #| msgid "invalid catch parameter"
 msgid "invalid template non-type parameter"
 msgstr "yakalama parametresi geçersiz"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T is not a valid type for a template constant parameter"
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T bir şablon sabiti parametresi için geçerli bir tür değildir"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, fuzzy, gcc-internal-format
 #| msgid "keyword %<typename%> not allowed outside of templates"
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "şablonlar dışında %<typename%> kullanımına izin verilmez"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 #| msgid "union cannot be made transparent"
 msgid "a concept cannot be constrained"
 msgstr "birleşik yapı şeffaf olamaz"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a namespace"
 msgid "concept %qE not in namespace scope"
 msgstr "%qT bir isim alanı değil"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 #| msgid "definition of %q#T inside template parameter list"
 msgid "concept %qE has multiple template parameter lists"
 msgstr "şablon parametre listesi içinde %q#T tanımı"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr ""
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "non-deducible template %qT used without template arguments"
 msgstr "%qD şablon parametreleri olmaksızın kullanılmış"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "use %qD directly instead"
 msgstr "yerine #include kullanın"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage"
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "%qE %qT türü için geçerli bir şablon argümanı değil çünkü %qD nesnesi için harici ilintileme yok"
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %d is invalid"
 msgid "class template argument deduction failed:"
 msgstr "%d. şablon argümanı geçersiz"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 #| msgid "function not considered for inlining"
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "işlev satıriçine alınma sırasında görmezden gelinir"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously declared here"
 msgid "explicit deduction guide declared here"
 msgstr "%q+#D evvelce burada bildirilmiş"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr ""
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 #| msgid "invalid covariant return type for %q+#D"
 msgid "unable to deduce lambda return type from %qE"
 msgstr "%q+#D için ortak değişen dönüş türü geçersiz"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, fuzzy, gcc-internal-format
 #| msgid "unable to emulate %qs"
 msgid "unable to deduce %qT from %qE"
 msgstr "%qs öykünümü mümkün değil"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "komut kendi kısıtlarını gözönüne almıyor:"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "komut kendi kısıtlarını gözönüne almıyor:"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "komut kendi kısıtlarını gözönüne almıyor:"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<virtual%> in template declaration of %q#D"
 msgid "invalid use of %qT in template argument"
@@ -71255,692 +71297,692 @@ msgstr "asm terimi %qE'nin türü saptanamadı"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "Objective-C bildirimleri sadece genel etki alanında görünebilir"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in static member function"
 msgstr "statik üye işlevde üye %q+D kullanımı geçersiz"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "statik üye işlevde üye %q+D kullanımı geçersiz"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "statik üye işlevde üye %q+D kullanımı geçersiz"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument"
 msgid "%qE missing template arguments"
 msgstr "tür argümanı geçersiz"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "cannot call a concept as a function"
 msgstr "%qE bir işlev olarak kullanilamaz"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "yıkıcıların argümanı olmaz"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "statik üye işlevlerde %<this%> kullanılmaz"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr ""
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, fuzzy, gcc-internal-format
 #| msgid "invalid catch parameter"
 msgid "name the explicit object parameter"
 msgstr "yakalama parametresi geçersiz"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "statik üye işlevlerde %<this%> kullanılmaz"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> before it is valid"
 msgstr "tepe seviyede %<this%> kullanımı geçersiz"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> after it is valid"
 msgstr "tepe seviyede %<this%> kullanımı geçersiz"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "üye olmayan işlevde %<this%> kullanımı geçersiz"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "tepe seviyede %<this%> kullanımı geçersiz"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "sözde yıkıcı isminde niteleyen etki alanı geçersiz"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "yetkin tür %qT, yıkıcı ismi ~%qT ile eslesmiyor"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE %qT türünde değil"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, fuzzy, gcc-internal-format
 #| msgid "compound literal has variable size"
 msgid "compound literal of non-object type %qT"
 msgstr "bileşik sabit değişken boyuta sahip"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, fuzzy, gcc-internal-format
 #| msgid "union cannot be made transparent"
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "birleşik yapı şeffaf olamaz"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "şablon türü parametrelerde %<class%> ya da %<typename%> sözcüğü kullanılmalı"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "bir şablonun şablon parametresinin öntanımlı değeri olarak %qT türünün kullanımı geçersiz"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "bir şablonun şablon parametresi için öntanımlı argüman geçersiz"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "şablon parametre listesi içinde %q#T tanımı"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "nitelikli tür %qT tanımı geçersiz"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "taban sınıf belirtimi geçersiz"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, fuzzy, gcc-internal-format
 #| msgid "protected member %q+#D in anonymous union"
 msgid "cannot capture member %qD of anonymous union"
 msgstr "anonim union içinde protected üye %q+#D"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is not captured"
 msgstr "%qD bir şablon değil"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<auto%> variable from containing function"
 msgid "use of local variable with automatic storage from containing function"
 msgstr "iceren işlevden %<auto%> kullanımı"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "iceren işlevden parametre kullanımı"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 #| msgid "use of parameter from containing function"
 msgid "use of parameter outside function body"
 msgstr "iceren işlevden parametre kullanımı"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type argument"
 msgid "missing template arguments"
 msgstr "tür argümanı geçersiz"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "%qD şablon parametresi %qT türündeyse butunleyen ya da sırali türde olmadığından bir butunleyen sabit ifadesinde kullanılmaz"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "sınıf sablonu %qT'nin ifade olarak kullanımı"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "uye %qD için istek çoklu miras kafesi içinde belirsiz"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD bir sabit ifadesinde bulunamaz"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "%qE türü bilinmiyor"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a template type"
 msgid "%qT is not an enumeration type"
 msgstr "%qT bir şablon türü değil"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a constant"
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "istenen hizalama bir sabit değil"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 #| msgid "operand number out of range"
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "terim numarası aralık dışında"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specifiers invalid in parameter declarations"
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "saklatım sınıfı belirteçleri parametre bildiriminde geçersiz"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr ""
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "static olmayan üye işlev %qD kullanımı geçersiz"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "static olmayan üye işlev %qD kullanımı geçersiz"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "static olmayan üye işlev %qD kullanımı geçersiz"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 #| msgid "trampolines not supported"
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "trampolines desteklenmiyor"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 #| msgid "reference to %qD is ambiguous"
 msgid "user defined reduction lookup is ambiguous"
 msgstr "%qD ile ilişkilendirme belirsiz"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr "vektör silme işlemi için tür ne gösterici ne de dizi"
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<restrict%>"
 msgid "%qE has const type for %<reduction%>"
 msgstr "%<restrict%> kullanımı geçersiz"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not an accessible base of %qT"
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qT erişilebilir bir %qT tabanı değil"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable %qs is declared private"
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "gerçeklenim değişkeni %qs private olarak bildirilmiş"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable %qs is declared private"
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "gerçeklenim değişkeni %qs private olarak bildirilmiş"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, fuzzy, gcc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "%<gang%> static expression must be integral"
 msgstr "%C'deki STAT ifadesi bir değişken olmalıdır"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 #| msgid "%s tag at %L must be of type %s"
 msgid "%<gang%> static value must be positive"
 msgstr "%s etiketi (%L'de) %s türünde olmalı"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, fuzzy, gcc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "%<gang%> num expression must be integral"
 msgstr "%C'deki STAT ifadesi bir değişken olmalıdır"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, fuzzy, gcc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "%<vector%> length expression must be integral"
 msgstr "%C'deki STAT ifadesi bir değişken olmalıdır"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, fuzzy, gcc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "%<worker%> num expression must be integral"
 msgstr "%C'deki STAT ifadesi bir değişken olmalıdır"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, fuzzy, gcc-internal-format
 #| msgid "%s tag at %L must be of type %s"
 msgid "%<gang%> num value must be positive"
 msgstr "%s etiketi (%L'de) %s türünde olmalı"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 #| msgid "stack size must be an exact power of 2"
 msgid "%<vector%> length value must be positive"
 msgstr "yığıt boyutu ikinin üstel katlarında olmalı"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr ""
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "%s ifade listesi bilesik ifade olarak ele alıniyor"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must not have variable number of arguments"
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD değişken sayıda argümana sahip olmamalı"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must not have variable number of arguments"
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD değişken sayıda argümana sahip olmamalı"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD bir işlev şablonu değil"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' is not a valid class name"
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "'%s' geçerli bir sınıf ismi değil"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must not have variable number of arguments"
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD değişken sayıda argümana sahip olmamalı"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must not have variable number of arguments"
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD değişken sayıda argümana sahip olmamalı"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must not have variable number of arguments"
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "%qD değişken sayıda argümana sahip olmamalı"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 #| msgid "too many input files"
 msgid "template %qE in clause %qs"
 msgstr "girdi dosyası sayısı çok fazla"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, fuzzy, gcc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "%<grainsize%> expression must be integral"
 msgstr "%C'deki STAT ifadesi bir değişken olmalıdır"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, fuzzy, gcc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "%<priority%> expression must be integral"
 msgstr "%C'deki STAT ifadesi bir değişken olmalıdır"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "%<hint%> expression must be integral"
 msgstr "%C'deki STAT ifadesi bir değişken olmalıdır"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "%s ifade listesi bilesik ifade olarak ele alıniyor"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "%<filter%> expression must be integral"
 msgstr "%C'deki STAT ifadesi bir değişken olmalıdır"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic on pointer to an incomplete type"
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "bir içi boş tür göstericisi üzerinde aritmetik"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 #| msgid "%<tree%> is not defined as a pointer type"
 msgid "%<tile%> argument needs integral type"
 msgstr "%<tree%> bir gösterici türü olarak tanımlı değil"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr ""
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr ""
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr ""
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot appear in a constant-expression"
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "%s bir sabit ifadesinde görünemez"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr ""
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 #| msgid "CRIS-port assertion failed: "
 msgid "static assertion failed: %.*s"
 msgstr "CRIS-port olumlaması başarısız: "
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, fuzzy, gcc-internal-format
 #| msgid "non-static declaration of %q+D follows static declaration"
 msgid "non-constant condition for static assertion"
 msgstr "%q+D statik olmayan bildirim statik bildirimi izliyor"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "argument to %<decltype%> must be an expression"
 msgstr "%L'deki SELECT deyiminin argümanı bir sabit ifadesi olmalı"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot resolve address of overloaded function"
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "%s aşırı yüklü işlevin adresini çözümleyemiyor"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "%<__builtin_next_arg%> argümansız çağrılmış"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a template"
 msgid "%qD is not a class or alias template"
 msgstr "%qE bir şablon değil"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
 #| msgid "left-hand operand of comma expression has no effect"
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "virgüllü ifadenin sol terimi etkisiz"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %qE involves template parameter(s)"
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "şablon argümanı %qE şablon parametre(ler)ini içine alıyor"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %<__builtin_return_address%>"
 msgid "non-pointer argument to %<__builtin_launder%>"
@@ -71949,1309 +71991,1309 @@ msgstr "%<__builtin_return_address%>'e aktarılan argüman desteklenmiyor"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "%qV niteleyicileri %qT'ye uygulanamaz"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 #| msgid "Bad type in constant expression"
 msgid "statement-expression in a constant expression"
 msgstr "Sabit ifadesinde tür hatalı"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared here"
 msgid " declared here"
 msgstr "burada bildirilmiş %q+D"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "base class %q#T has a non-virtual destructor"
 msgid "base class %qT is not public"
 msgstr "taban sınıf %q#T bir sanal olmayan yıkıcıya sahip"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is not public"
 msgstr "%qD bir şablon değil"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template"
 msgid "%qD is mutable"
 msgstr "%qD bir şablon değil"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has an incomplete type"
 msgid "%qD has a non-structural type"
 msgstr "%qD bir tamamlanmamış tür içeriyor"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to function types"
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "%qs özniteliği sadece işlev türlerine uygulanır"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute argument not a string constant"
 msgid "%qE attribute argument must be a string constant"
 msgstr "%qs öznitelik argümanı bir dizge sabit değil"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "%qE özniteliği sadece sınıf tanımlarına uygulanabilir"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "%qE özniteliği sadece sınıf tanımlarına uygulanabilir"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "%qE özniteliği sadece sınıf tanımlarına uygulanabilir"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires prototypes with named arguments"
 msgid "%qE attribute takes no arguments"
 msgstr "%qE özniteliği isimli argümanları olan prototipler gerektirir"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute only applies to functions"
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "%qs özniteliği sadece işlevlere uygulanır"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is not an integer constant"
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "istenen init_priority bir tamsayı sabit değil"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "%qE özniteliği sadece sınıf türünde nesnelerin dosya bağlamı tanımlarında kullanılabilir"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is out of range"
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "istenen init_priority aralık dışında"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is reserved for internal use"
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "istenen init_priority iç kullanim için ayrilmiştir"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "%2$s olarak %1$qD bildirimi"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires prototypes with named arguments"
 msgid "the %qE attribute requires arguments"
 msgstr "%qE özniteliği isimli argümanları olan prototipler gerektirir"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "%qs özniteliğinin argümanı bir dizge sabiti değil"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qs attribute is not a string constant"
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "%qs özniteliğinin argümanı bir dizge sabiti değil"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a valid declarator"
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%T::%D%> geçerli bir bildirici değil"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a valid declarator"
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%T::%D%> geçerli bir bildirici değil"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute ignored on non-class types"
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "%qE özniteliği sınıf türleri dışında yoksayılır"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "%qE özniteliği sadece sınıf tanımlarına uygulanabilir"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 #| msgid "storage class %qD applied to template instantiation"
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "saklama sınıfı %qD şablon örneklenimine uygulanmış"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, fuzzy, gcc-internal-format
 #| msgid "storage class %qD applied to template instantiation"
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "saklama sınıfı %qD şablon örneklenimine uygulanmış"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qE attribute applies only to functions"
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "%J%qE özniteliği sadece işlevlere uygulanır"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 #| msgid "%J%qE attribute applies only to functions"
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "%J%qE özniteliği sadece işlevlere uygulanır"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 #| msgid "%qs attribute argument not an integer constant"
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "%qs öznitelik argümanı bir tamsayı sabit değil"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, fuzzy, gcc-internal-format
 #| msgid "array bound is not an integer constant"
 msgid "zero as null pointer constant"
 msgstr "dizi sınırı bir tamsayı sabit değil"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "lang_* denetimi: %2$s dosyasının %3$d. satırındaki %1$s içinde başarısız"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "bir tür dönüşümü olmaksızın %s (belirgin gösterici türleri %qT ve %qT arasında)"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "bir tür dönüşümü olmaksızın %s (belirgin gösterici türleri %qT ve %qT arasında)"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "bir tür dönüşümü olmaksızın %s (belirgin gösterici türleri %qT ve %qT arasında)"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++'da bir işlev göstericisi ile %<void *%> türünde göstericiler arasında %s yasaktir"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++'da bir işlev göstericisi ile %<void *%> türünde göstericiler arasında %s yasaktir"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %s between pointer of type %<void *%> and pointer-to-function"
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++'da bir işlev göstericisi ile %<void *%> türünde göstericiler arasında %s yasaktir"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "bir tür dönüşümü olmaksızın %s (belirgin üye göstericisi türleri %qT ve %qT arasında)"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "bir tür dönüşümü olmaksızın %s (belirgin üye göstericisi türleri %qT ve %qT arasında)"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "bir tür dönüşümü olmaksızın %s (belirgin üye göstericisi türleri %qT ve %qT arasında)"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types"
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "?: için terimler farklı türde"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types"
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "?: için terimler farklı türde"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "bir üye işleve %qs uygulanması geçersiz"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, fuzzy, gcc-internal-format
 #| msgid "invalid application of %qs to a bit-field"
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "bir bit alanına %qs uygulanması geçersiz"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids applying %qs to an expression of function type"
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++ işlev türünde bir ifadeye %qs uygulanmasına izin vermez"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, fuzzy, gcc-internal-format
 #| msgid "invalid application of %qs to a bit-field"
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "bir bit alanına %qs uygulanması geçersiz"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids applying %qs to an expression of function type"
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++ işlev türünde bir ifadeye %qs uygulanmasına izin vermez"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 #| msgid "size of array has non-integral type %qT"
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "dizi boyutu tümlemeyen %qT türünde"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "invalid use of non-static member function of type %qT"
 msgstr "static olmayan üye işlev %qD kullanımı geçersiz"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids casting to an array type %qT"
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "ISO C++ %qT dizi türüne dönüşüme izin vermez"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, fuzzy, gcc-internal-format
 #| msgid "deprecated conversion from string constant to %qT'"
 msgid "deprecated conversion from string constant to %qT"
 msgstr "dizge sabitten %qT'ye dönüşüm artik önerilmiyor"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "sınıf olmayan %3$qT türündeki %2$qE içindeki %1$qD üyesi için istek"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "sınıf olmayan %3$qT türündeki %2$qE içindeki %1$qD üyesi için istek"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of nonstatic data member %qE"
 msgid "invalid use of non-static data member %qE"
 msgstr "static olmayan veri üyesi %qE kullanımı geçersiz"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 #| msgid "invalid access to non-static data member %qD of NULL object"
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "NULL nesnenin static olmayan veri üyesi  %qD'ye erişim geçersiz"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, fuzzy, gcc-internal-format
 #| msgid "qualified type %qT does not match destructor name ~%qT"
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "yetkin tür %qT, yıkıcı ismi ~%qT ile eslesmiyor"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "iptal edilen tür %qT iken yıkıcı %qT ile ilişkili"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE"
 msgstr "%qT türü %qE isimli üye içermiyor"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr ""
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr ""
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%qT türü %qE isimli üye içermiyor"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%>, %qT'nin bir üyesi değil"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT %qT tabanında değil"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD bir üye şablon işlevi değil"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT bir nesne göstericisi türü değil"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qs on pointer to member"
 msgid "invalid use of array indexing on pointer to member"
 msgstr "uye göstericisinde %qs kullanımı geçersiz"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qs on pointer to member"
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "uye göstericisinde %qs kullanımı geçersiz"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qs on pointer to member"
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "uye göstericisinde %qs kullanımı geçersiz"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "dizi başvurusunda altindis yok"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "%<register%> olarak bildirilmiş dizi indislemesi"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "indisli değer ne dizi ne de bir gösterici"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "%qE kullanimında nesne eksik"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ program içinden %<::main%> çağrısına izin vermez"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, fuzzy, gcc-internal-format
 #| msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>"
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "%<%E (...)%> içinde üye gösterici işlevi çağrısı için %<.*%> veya %<->*%> kullanılmalı"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE bir işlev olarak kullanilamaz"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "%qD cannot be used as a function"
 msgstr "%qE bir işlev olarak kullanilamaz"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "expression cannot be used as a function"
 msgstr "%qE bir işlev olarak kullanilamaz"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to %s %q+#D"
 msgid "too many arguments to constructor %q#D"
 msgstr "%s %q+#D için argümanlar çok fazla"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to %s %q+#D"
 msgid "too few arguments to constructor %q#D"
 msgstr "%s %q+#D için argümanlar çok az"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qs"
 msgid "too many arguments to member function %q#D"
 msgstr "%qs işlevi için argümanlar çok fazla"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %qs"
 msgid "too few arguments to member function %q#D"
 msgstr "%qs işlevi için argümanlar çok az"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qs"
 msgid "too many arguments to function %q#D"
 msgstr "%qs işlevi için argümanlar çok fazla"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to function %qs"
 msgid "too few arguments to function %q#D"
 msgstr "%qs işlevi için argümanlar çok az"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to %s %q+#D"
 msgid "too many arguments to method %q#D"
 msgstr "%s %q+#D için argümanlar çok fazla"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to %s %q+#D"
 msgid "too few arguments to method %q#D"
 msgstr "%s %q+#D için argümanlar çok az"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "işlev için çok fazla argüman belirtildi"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "işlev için çok az argüman belirtildi"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "%P parametresi %qD içinde tamamlanmamış %qT türünde"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "parametre %P tamamlanmamış %qT türünde"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD, will always evaluate as %<true%>"
 msgid "the address %qE will never be NULL"
 msgstr "%qD adresi, daima %<true%> olarak değerlendirilecek"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD, will always evaluate as %<true%>"
 msgid "the address of %qD will never be NULL"
 msgstr "%qD adresi, daima %<true%> olarak değerlendirilecek"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD, will always evaluate as %<true%>"
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "%qD adresi, daima %<true%> olarak değerlendirilecek"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD, will always evaluate as %<true%>"
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "%qD adresi, daima %<true%> olarak değerlendirilecek"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types"
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "?: için terimler farklı türde"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "bir tür dönüşümü olmaksızın %s (belirgin gösterici türleri %qT ve %qT arasında)"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between types %q#T and %q#T"
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "%q#T ile %q#T türleri arasında karşılaştırma"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "%s between distinct pointer types %qT and %qT lacks a cast"
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "bir tür dönüşümü olmaksızın %s (belirgin gösterici türleri %qT ve %qT arasında)"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "Do not use hardware floating point"
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "Donanım kayan nokta aritmetiği kullanılmaz"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 #| msgid "cast from function call of type %qT to non-matching type %qT"
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "%qT türündeki işlev çağrısından eşleşmeyen %qT türüne dönüşüm"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible types in assignment of %qT to %qT"
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "%qT'nin %qT'ye atanmasında türler uyumsuz"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "aşırı yüklü işlevden %qT türüne dönüşüm yapildigi varsayılıyor"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "aritmetik içinde NULL kullanımı"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ da gösterici ile tamsayı arasında karşılaştırmaya izin verilmez"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, fuzzy, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "%2$q#T içinde %1$q#T isminde tür yok"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with integer zero"
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "tamsayı sıfır ile sıralı gösterici karşılaştırması"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 #| msgid "unordered comparison on non-floating point argument"
 msgid "unordered comparison on non-floating-point argument"
 msgstr "gerçel sayı olmayan argümanlar arasında düzenlenmemiş karşılaştırma"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 #, fuzzy
 #| msgid "request for implicit conversion from %qT to %qT not permitted in C++"
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "%qT türünden %qT türüne örtük dönüşüme C++'da izin verilmez"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "%qT ve %qT türündeki terimler iki terimli `%qO' için geçersiz"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ bir çıkarma içinde %<void *%> türde gösterici kullanımına izin vermez"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ bir çıkartma işlemi içindeki bir işlev göstericisi kullanımına izin vermez"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ bir çıkartma işlemi içinde bir yöntem göstericisi kullanımına izin vermez"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "gösterici aritmetiginde tamamlanmamış ture gösterici kullanımı geçersiz"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of constructor %qD"
 msgstr "gecicinin adresi alıniyor"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of destructor %qD"
 msgstr "gecicinin adresi alıniyor"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "%qE kullanımı üye işleve gösterici biçiminde geçersiz"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  bir nitelemeli kimlik gerekli"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, fuzzy, gcc-internal-format
 #| msgid "parenthesis around %qE cannot be used to form a pointer-to-member-function"
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "parantez icene alınmis %qE üye işleve gösterici biçiminde kullanilamaz"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ üye işleve bir gösterici şekillendirecek bir niteliksiz ya da parantezli statik olmayan üye işlevin adresinin alınmasına izin vermez.  %<&%T::%D%> denebilir."
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO C++ üye işleve bir gösterici şekillendirecek bir niteliksiz ya da parantezli statik olmayan üye işlevin adresinin alınmasına izin vermez.  %<&%T::%D%> denebilir."
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ üye işleve bir gösterici şekillendirecek bir sınır üye işlevin adresinin alınmasına izin vermez.  %<&%T::%D%> denebilir"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ üye işleve bir gösterici şekillendirecek bir sınır üye işlevin adresinin alınmasına izin vermez.  %<&%T::%D%> denebilir"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "(bir üye göstericisi sadece %<&%E%> ile şekillendirilebilir)"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of rvalue"
 msgstr "gecicinin adresi alıniyor"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ %<::main%> işlevinin adresinin alınmasına izin vermez"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "referans üye %qD için gösterici oluşturulamaz"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take address of bit-field %qD"
 msgid "attempt to take address of bit-field"
 msgstr "%qD bit-alanının adresi alınamaz"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "gecicinin adresi alıniyor"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing an enum"
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ bir enum'um %s-lenmesine izin vermez"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing an enum"
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ bir enum'um %s-lenmesine izin vermez"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type %qT"
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "%s içi boş %qT türüne bir gösterici olamaz"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, fuzzy, gcc-internal-format
 #| msgid "cannot %s a pointer to incomplete type %qT"
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "%s içi boş %qT türüne bir gösterici olamaz"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing a pointer of type %qT"
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ bir göstericinin %s işlemine %qT türündeyse izin vermez"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids %sing a pointer of type %qT"
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ bir göstericinin %s işlemine %qT türündeyse izin vermez"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "bir sağ taraf ifadesi olan %<this%>'in adresi alınamaz"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "%qD doğrudan yazmaç değişkeninin adresi istendi"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr " %qD için adres istegi (%<register%> olarak bildirilmiş olan)"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, fuzzy, gcc-internal-format
 #| msgid "initializer for %qT must be brace-enclosed"
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "%qT için ilklendirici {} içinde olmalı"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "expression list treated as compound expression in initializer"
 msgstr "%s ifade listesi bilesik ifade olarak ele alıniyor"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "%s ifade listesi bilesik ifade olarak ele alıniyor"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, fuzzy, gcc-internal-format
 #| msgid "%s expression list treated as compound expression"
 msgid "expression list treated as compound expression in functional cast"
 msgstr "%s ifade listesi bilesik ifade olarak ele alıniyor"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "%s ifade listesi bilesik ifade olarak ele alıniyor"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, fuzzy, gcc-internal-format
 #| msgid "conversion from %qT to %qT discards qualifiers"
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "%qT türünden %qT türüne dönüşüm niteleyicileri iptal ediyor"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "%qT türünden %qT türüne static_cast geçersiz"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "%qT türünden %qT türüne static_cast geçersiz"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 #| msgid "%qT uses local type %qT"
 msgid "useless cast to type %q#T"
 msgstr "%qT yerel tür %qT kullanıyor"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "type qualifiers ignored on cast result type"
 msgstr "tür niteleyicileri işlev dönüş türünde yok sayıldı"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "%qT türünden %qT türüne static_cast geçersiz"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "class type %qT is incomplete"
 msgstr "dönüş türü %q#T bir içi boş türdür"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 #| msgid "converting from %qT to %qT"
 msgid "converting from %qH to %qI"
 msgstr "%qT'den %qT'ye dönüşüm"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "%qT türündeki bir sağ taraf değerinin %qT türüne dönüşümü geçersiz"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 #, fuzzy
 #| msgid "cast from %qT to %qT loses precision"
 msgid "cast from %qH to %qI loses precision"
 msgstr "%qT'den %qT'ye tür dönüşümü hassasiyet kaybi oluşturuyor"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 #, fuzzy
 #| msgid "%s between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "bir tür dönüşümü olmaksızın %s (belirgin üye göstericisi türleri %qT ve %qT arasında)"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 #| msgid "cast from %qT to %qT increases required alignment of target type"
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "%qT türünden %qT türüne dönüşüm hedef türün hizalama gereksinimini arttiriyor"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "ISO C++ işlev ve nesne göstericileri arasında dönüşüme izin vermez"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "%qT türünden %qT türüne const_cast geçersiz"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "ne bir gösterici türü ne de bir veri üyesine gösterici türü olan %qT ile const_cast kullanımı geçersiz"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "bir gösterici ya da bir işlev türüne referans olan %qT türü ile const_cast kullanımı geçersiz"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast of an rvalue of type %qT to type %qT"
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "%qT türündeki bir sağ taraf değerinden %qT türüne const_cast geçersiz"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast from type %qT to type %qT"
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "%qT türünden %qT türüne const_cast geçersiz"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ %qT dizi türüne dönüşüme izin vermez"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "%qT işlev türüne dönüşüm geçersiz"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qE from type %qT to type %qT"
 msgid "moving %qE of type %qT to itself"
 msgstr "%qE ifadesi %qT türünden %qT türüne dönüştürülemez"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  %<%Q(%#T, %#T)%> nin gelisiminde"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, fuzzy, gcc-internal-format
 #| msgid "nonconstant array index in initializer"
 msgid "assigning to an array from an initializer list"
 msgstr "ilklendiricide sabit olmayan dizi indisi"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "%qT'nin %qT'ye atanmasında türler uyumsuz"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, fuzzy, gcc-internal-format
 #| msgid "bad array initializer"
 msgid "array used as initializer"
 msgstr "dizi ilklendirici hatalı"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, fuzzy, gcc-internal-format
 #| msgid "invalid lvalue in assignment"
 msgid "invalid array assignment"
 msgstr "atamanın sol tarafı geçersiz"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   üye işleve gösterici dönüşümünde"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "sanal taban %qT üzerinden üye göstericisine dönüşüm"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   üyeye gösterici dönüşümünde"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "%qT'ye %qT'den dönüşüm geçersiz"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "%4$qD işlevinin %3$qP. argümanı için %1$qT türü %2$qT türüne dönüştürülemez"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "%qT %qT'ye %s içinde dönüştürülemez"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "%qT %qT'ye %s içinde dönüştürülemez"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in return"
 msgstr "%qT %qT'ye %s içinde dönüştürülemez"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "%qT %qT'ye %s içinde dönüştürülemez"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, fuzzy, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "%2$qE işlevinin %1$d. argümanı bir biçim özniteliği adayı olabilir"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, fuzzy, gcc-internal-format
 #| msgid "return type might be a candidate for a format attribute"
 msgid "parameter might be a candidate for a format attribute"
 msgstr "dönüş türü bir biçim özniteliği adayı olabilir"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, fuzzy, gcc-internal-format
 #| msgid "argument of function call might be a candidate for a format attribute"
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "işlev çağrısı argümanı bir biçim özniteliği için aday olabilir"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, fuzzy, gcc-internal-format
 #| msgid "argument of function call might be a candidate for a format attribute"
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "işlev çağrısı argümanı bir biçim özniteliği için aday olabilir"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, fuzzy, gcc-internal-format
 #| msgid "assignment left-hand side might be a candidate for a format attribute"
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "atamada sol taraf bir biçim özniteliği adayı olabilir"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "%2$q+D işlevinin %1$P. argümanına aktarımda"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "geçiciye başvuru dönüyor"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "geçiciye başvuru dönüyor"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, fuzzy, gcc-internal-format
 #| msgid "reference to local variable %q+D returned"
 msgid "reference to local variable %qD returned"
 msgstr "yerel değişken %q+D'ye referans donduruldu"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of label %qD returned"
 msgstr "yerel değişken %q+D adresi donduruldu"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of local variable %qD returned"
 msgstr "yerel değişken %q+D adresi donduruldu"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 #| msgid "invalid lvalue in asm statement"
 msgid "redundant move in return statement"
 msgstr "asm deyiminde geçersiz sol taraf"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qT to %qT in %s"
 msgid "redundant move in initialization"
 msgstr "%qT %qT'ye %s içinde dönüştürülemez"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "bir yıkıcıdan değer donuyor"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "bir kurucunun bir işlev deneme blokunun bir tutamagından dondurulemez"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "kurucudan bir değer dondurulemez"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "%qT donduren işlevde değer içermeyen return"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer"
 msgid "returning initializer list"
 msgstr "ilklendirici yok"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "new türleri bir dönüş türünde tanımlanamayabilir"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, fuzzy, gcc-internal-format
 #| msgid "Inconsistent ranks for operator at %L and %L"
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "%L ve %L'de işliçler için sıralar uyumsuz"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 #| msgid "return-statement with no value, in function returning %qT"
 msgid "return-statement with a value, in function returning %qT"
 msgstr "%qT donduren işlevde değer içermeyen return"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, fuzzy, gcc-internal-format
 #| msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%>', %<throw()%> olarak bildirilmedikce (ya da -fcheck-new etkinken) NULL donmemeli"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 #| msgid "invalid covariant return type for %q+#D"
 msgid "not eliding copy on return from %qD"
 msgstr "%q+#D için ortak değişen dönüş türü geçersiz"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 #| msgid "invalid %%s value"
 msgid "using rvalue as lvalue"
@@ -73502,172 +73544,172 @@ msgstr ""
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "kurucu sözdizimi kullanılmış ama %qT türü için kurucu bildirilmemiş"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 #| msgid "interface %qE does not have valid constant string layout"
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "%qE arayüzü geçerli sabit dizge yerleşimi içermiyor"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 #| msgid "conversion of %qE from %qT to %qT is ambiguous"
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "%qE ifadesinin %qT türünden %qT türüne dönüşümü belirsiz"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 #| msgid "conversion of %qE from %qT to %qT is ambiguous"
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "%qE ifadesinin %qT türünden %qT türüne dönüşümü belirsiz"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr "dizi boyutu bir tümleyen sabit ifadesi değil"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 #| msgid "initializer-string for array of chars is too long"
 msgid "initializer-string for %qT is too long"
 msgstr "karakter dizisi için dizge ilklendirici çok uzun"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "remove %<{ }%> around initializer"
 msgstr "skalar ilklendiriciyi kuşatan parantezler"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "bir bileşik sabitli %qT türündeki küme ilklendirilemez"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "uye %qD için ilklendirici eksik"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "uye %qD ilklendirilmemiş referanstir"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD is uninitialized reference"
 msgid "member %qD with uninitialized reference fields"
 msgstr "uye %qD ilklendirilmemiş referanstir"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 #| msgid "template-id %qD for %q+D does not match any template declaration"
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "şablon kimliği %qD %q+D için hiçbir şablon bildirimi ile eşleşmiyor"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "ilklendirilen union içinde %qD diye bir alan yok"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "birlesik yapı ilklendiricideki alan isminin yerine index değeri"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "döngüsel gösterici görevlendirmesi saptandi"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "%<->%> için taban terim gösterici olmayan %qT türünde"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr " %<operator->()%> gösterici olmayan sonuc veriyor"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "%<->%> için taban terim bir gösterici değil"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE bir üye göstericisi olarak kullanilamaz, cunku %qT türünde"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply member pointer %qE to %qE, which is of non-aggregate type %qT"
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "uye göstericisi %qE %qE'ye kümeleme türü olmayan %qT türünde uygulanamaz"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "%qT üye türünde gösterici nesne türü %qT ile uyumsuz"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "aritmetikte üye işlev göstericisi kullanılmış"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "aritmetikte üye işlev göstericisi kullanılmış"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "aritmetikte üye işlev göstericisi kullanılmış"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast to function type %qT"
 msgid "functional cast to array type %qT"
 msgstr "%qT işlev türüne dönüşüm geçersiz"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, fuzzy, gcc-internal-format
 #| msgid "union cannot be made transparent"
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "birleşik yapı şeffaf olamaz"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr ""
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, fuzzy, gcc-internal-format
 #| msgid "%Jdefault-initialization of %q#D, which has reference type"
 msgid "invalid value-initialization of reference type"
 msgstr "%Jreferans ture sahip %q#D'nin default ilklendirmesi"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "%qD işlevine çağrı (ici boş tür `%q#T' yakalanırken)"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "ici boş tür `%q#T' yakalanırken işleve çağrı"
@@ -74738,7 +74780,7 @@ msgstr ""
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "`%s' argümanı `%s' yerleşiği için  %L'de bir sabit olmalı"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad kind for logical constant at %C"
 msgid "Invalid use of BOZ literal constant at %L"
@@ -76228,7 +76270,7 @@ msgstr "%C'deki INTENT belirtimi hatalı"
 msgid "deferred type parameter at %C"
 msgstr "%2$qs sonrası şablon türü %1$qT parametresi kullanımı"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -76467,7 +76509,7 @@ msgstr "'%s' dizi göstericisi %L'de ertelenmiş bir biçimde olmalı"
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "Yapının dizi bileşeni %C'de dolaysız ya da ertelenmiş durumda olmalı"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "Component %qs at %C already declared at %L"
@@ -77356,7 +77398,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "%C'deki işlev tanımında biçimsel argüman listesi umuluyordu"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr ""
@@ -78246,12 +78288,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr ""
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -78528,307 +78570,307 @@ msgstr "Bir sabit ifadesine indirgenmeyen '%s' parametresi %L'de ya bildirilmemi
 msgid "check_init_expr(): Unknown expression type"
 msgstr "İfade türü umuluyordu"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be a statement function"
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "Belirtim işlevi '%s' (%L'de) bir deyim işlevi olamaz"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be an internal function"
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "Belirtim işlevi '%s' (%L'de) dahili bir işlev olamaz"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L must be PURE"
 msgid "Specification function %qs at %L must be PURE"
 msgstr "Belirtim işlevi '%s' (%L'de) PURE olmalı"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be RECURSIVE"
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "Belirtim işlevi '%s' (%L'de) RECURSIVE olamaz"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "Değişken '%s' (%L'de) ifade içinde görünemez"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be OPTIONAL"
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "Sözde argüman '%s' (%L'de) OPTIONAL olamaz"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "Sözde argüman '%s' (%L'de) INTENT(OUT) olamaz"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "Değişken '%s' (%L'de) ifade içinde görünemez"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression type"
 msgid "check_restricted(): Unknown expression type"
 msgstr "İfade türü umuluyordu"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expression at %L must be of INTEGER type"
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "%L'deki ifade INTEGER türünde olmalı"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L must be PURE"
 msgid "Function %qs at %L must be PURE"
 msgstr "Belirtim işlevi '%s' (%L'de) PURE olmalı"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "%L'deki ifade değişmez olmalı"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Incompatible ranks in %s at %L"
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "%s (%L'de) içindeki sıra uyumsuz"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "different shape for %s at %L on dimension %d (%d/%d)"
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "%s için %L'de %d. boyutta biçim farklı (%d/%d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L is not a VALUE"
 msgid "%qs at %L is not a VALUE"
 msgstr "'%s' %L'de bir VALUE değil"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Illegal stride of zero at %L"
 msgid "Illegal assignment to external procedure at %L"
 msgstr "%L'de sıfır adım uzunluğu kuraldışı"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "%d ve %d sıraları uyumsuz (%L'deki atamada)"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "%L'deki atamada değişken UNKNOWN türünde"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "NULL %L'deki atamanın sağ tarafında görünüyor"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "POINTER valued function appears on right-hand side of assignment at %L"
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "POINTER değerli işlev %L'deki atamanın sağ tarafında görünüyor"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Incompatible types in assignment at %L, %s to %s"
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "%L'deki atamada uyumsuz türler, %s den %s'e"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "%L'deki gösterici atamasının hedefi bir POINTER değil"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "'%s' (%L'deki gösterici atamasındaki) bir yordam olduğundan bir sol taraf değeri olamaz"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, fuzzy, gcc-internal-format
 #| msgid "Duplicate %s specification at %C"
 msgid "Expected bounds specification for %qs at %L"
 msgstr "%s belirtimi %C'de yinelenmiş"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, fuzzy, gcc-internal-format
 #| msgid "Different types in pointer assignment at %L"
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "%L'deki gösterici atamasında farklı türler"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "stack size must not be greater than 64k"
 msgid "Stride must not be present at %L"
 msgstr "yığıt boyutu 64k'dan büyük olmamalıdır"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "External object '%s' at %L may not have an initializer"
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "Harici nesne '%s'  %L'de bir ilklendiriciye sahip olamayabilir"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Different types in pointer assignment at %L"
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "%L'deki gösterici atamasında farklı türler"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, fuzzy, gcc-internal-format
 #| msgid "Different kind type parameters in pointer assignment at %L"
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "%L'deki gösterici atamasında parametreler farklı çeşit türlerinde"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, fuzzy, gcc-internal-format
 #| msgid "Different kind type parameters in pointer assignment at %L"
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "%L'deki gösterici atamasında parametreler farklı çeşit türlerinde"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' requires argument list at %C"
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "'%s' deyim işlevi %C'de argüman listesi gerektiriyor"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "'%s' iç yordamına %L'de bir fiili argüman olarak izin verilmez."
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L is not included in the selected standard"
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "%L'deki yerleşik '%s' seçilmiş standartta bulunmuyor"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr ""
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, fuzzy, gcc-internal-format
 #| msgid "Different character lengths in pointer assignment at %L"
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "%L'deki gösterici atamasında farklı karakter uzunlukları"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate interface declaration for class %qs"
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "%qs sınıfı için birden fazla arabirim bildirimi"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate interface declaration for class %qs"
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "%qs sınıfı için birden fazla arabirim bildirimi"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Different character lengths in pointer assignment at %L"
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "%L'deki gösterici atamasında farklı karakter uzunlukları"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "%L'deki gösterici atamasının hedefi bir POINTER değil"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Different types in pointer assignment at %L"
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "%L'deki gösterici atamasında farklı türler"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "%L'deki gösterici atamasında parametreler farklı çeşit türlerinde"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "%L'deki gösterici atamasında farklı sıralamalar"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Rank remapping target is not rank 1 at %L"
@@ -78837,205 +78879,205 @@ msgstr "%L'deki gösterici atamasının hedefi bir POINTER değil"
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Data target at %L shall not have a coindex"
 msgstr "%L'deki veri aktarım elemanının POINTER bileşenleri olamaz"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "%L'de hesaplanmış GOTO deyimindeki seçim ifadesi bir değişmez tamsayı ifadesi olmalıdır"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Component at %C must have the POINTER attribute"
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "%C'deki bileşen POINTER özniteliğinde olmalı"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "%L'deki SELECT deyiminin argümanı bir sabit ifadesi olmalı"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "%L'deki gösterici atamasının hedefi ne TARGET ne de POINTER"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "%L'deki PURE yordamdaki gösterici atamasında hedef berbat"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "%L'de sağ tarafta vektör indisli gösterici ataması"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "%L'deki gösterici atamasının hedefi bir POINTER değil"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr ""
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer initialization at %C requires '=>', not '='"
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "%C'deki gösterici ilklendirmesi bir '=>' gerektirir, '=' değil"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Component at %C must have the POINTER attribute"
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "%C'deki bileşen POINTER özniteliğinde olmalı"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Object '%s' at %L must have the SAVE attribute %s"
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "Nesne '%s' (%L'de), %s SAVE özniteliğine sahip olmalı"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "'%s' iç yordamına %L'de bir fiili argüman olarak izin verilmez."
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "'%s' iç yordamına %L'de bir fiili argüman olarak izin verilmez."
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr ""
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "Değişken '%s' (%L'de) ifade içinde görünemez"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "Değişken '%s' (%L'de) ifade içinde görünemez"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "Değişken '%s' (%L'de) ifade içinde görünemez"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr ""
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr ""
@@ -79058,8 +79100,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "creating array of %qT"
 msgid "Creating array temporary at %L"
@@ -79150,7 +79192,7 @@ msgstr "'%s' değişkeni (%C'deki), %L'de başlayan döngünün içinde yeniden
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "'%s' değişkeni (%C'deki), %L'de başlayan döngünün içinde yeniden tanımlanamaz"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -79298,12 +79340,12 @@ msgstr "%L'de tanımlanmış atamanın ilk argümanı INTENT(IN) veya INTENT(INO
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "%L'de tanımlanmış atamanın ikinci argümanı INTENT(IN) olmalıdır"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "%L'deki işleç arayüzünün ilk argümanı INTENT(IN) olmalıdır"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "%L'deki işleç arayüzünün ikinci argümanı INTENT(IN) olmalıdır"
@@ -80264,7 +80306,7 @@ msgstr "%s den %s e dönüşüm (%L'de)"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Can't convert %s to %s at %L"
 msgid "Cannot convert %s to %s at %L"
@@ -80896,7 +80938,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr ""
@@ -81076,6 +81118,11 @@ msgstr "Tamsayı üstten taşması"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
@@ -81529,7 +81576,7 @@ msgstr ""
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "%C'deki Cray göstericisi bir tamsayı olmalı."
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument dim at %L must be scalar"
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
@@ -82104,91 +82151,91 @@ msgstr "%C'deki SAVE deyiminde sözdizimi hatası"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Empty IMPLICIT statement at %C"
 msgid "SELECT RANK statement at %C"
 msgstr "%C'deki IMPLICIT deyimi boş"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in SAVE statement at %C"
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "%C'deki SAVE deyiminde sözdizimi hatası"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "%C'de umulmadık CASE deyimi"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in CASE specification at %C"
 msgstr "%C'deki CASE belirtiminde sözdizimi hatası"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "%C'de beklenmeyen END deyimi"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "%C'deki CASE belirtiminde sözdizimi hatası"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "%C'deki CASE belirtiminde sözdizimi hatası"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected RANK statement at %C"
 msgstr "%C'de beklenmeyen END deyimi"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL stride expression at %L must be a scalar %s"
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "%L'deki FORALL adım ifadesi bir değişmez %s olmalıdır"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE-specification at %C"
 msgid "Syntax error in RANK specification at %C"
 msgstr "%C'deki CASE belirtiminde sözdizimi hatası"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "%C'deki ELSEWHERE deyimi WHERE bloku içinde değil"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, fuzzy, gcc-internal-format
 #| msgid "Label '%s' at %C doesn't match WHERE label '%s'"
 msgid "Label %qs at %C doesn't match WHERE label %qs"
@@ -83741,8 +83788,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "%L'deki IF deyimi bir sabit LOGICAL ifadesi gerektirir"
@@ -86314,12 +86361,12 @@ msgstr ""
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "Yafta %d (%L'de başvurulu) hiç tanımlanmamış"
@@ -86454,7 +86501,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "'%s' işlevi (%L'de) hiç IMPLICIT tür içermiyor"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L has no IMPLICIT type"
 msgid "Function %qs at %L has no IMPLICIT type"
@@ -86892,295 +86939,301 @@ msgstr ""
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr ""
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 #| msgid "Bad array reference at %L"
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "%L'de hatalı dizi başvurusu"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 #| msgid "instance variable %qs is declared private"
 msgid "Using variable %qs at %L is deprecated"
 msgstr "gerçeklenim değişkeni %qs private olarak bildirilmiş"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Bad array reference at %L"
+msgid "Invalid array reference at %L"
+msgstr "%L'de hatalı dizi başvurusu"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Extension: Old-style initialization at %C"
 msgid "Error in typebound call at %L"
 msgstr "Genişletme: %C'de eski tarz ilklendirme"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s tag at %L must be scalar"
 msgid "Passed-object at %L must be scalar"
 msgstr "%s' etiketi (%L'de) bir değişmez olmalı"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L must be scalar"
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "Öğesel yordamın '%s' argümanı değişmez olmalı (%L'de)"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, fuzzy, gcc-internal-format
 #| msgid "%s at %L must be INTEGER"
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "%s' (%L'de) bir INTEGER olmalıdır"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression type"
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "İfade türü umuluyordu"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s' (%L'de) bir değişmez olmalıdır"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s at %L must be a scalar"
 msgid "%s at %L must be integer"
 msgstr "%s' (%L'de) bir değişmez olmalıdır"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s' (%L'de) bir INTEGER olmalıdır"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "%L'de Do döngüsündeki adım ifadesi sıfır olamaz"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "%L'de FORALL indis ismi bir değişmez INTEGER olmalıdır"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "%L'de FORALL başlatma ifadesi bir değişmez INTEGER olmalıdır"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "%L'de FORALL son ifadesi bir değişmez INTEGER olmalıdır"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "%L'deki FORALL adım ifadesi bir değişmez %s olmalıdır"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "%L'deki FORALL adım ifadesi sıfır olamaz"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "Değişken '%s' (%L'de) ifade içinde görünemez"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expression in ALLOCATE statement at %L must be ALLOCATABLE or a POINTER"
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "%L'de ALLOCATE deyimindeki ifade ya bir POINTER ya da ALLOCATABLE olmalı"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "%L'deki ALLOCATE deyimde dizi belirtimi gerekli "
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array specification required in ALLOCATE statement at %L"
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "%L'deki ALLOCATE deyimde dizi belirtimi gerekli "
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array specification required in ALLOCATE statement at %L"
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "%L'deki ALLOCATE deyimde dizi belirtimi gerekli "
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad array specification in ALLOCATE statement at %L"
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "%L'deki ALLOCATE deyimde dizi belirtimi hatalı"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "%L'deki ALLOCATE deyimde dizi belirtimi hatalı"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr ""
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 #| msgid "Bad array specification in ALLOCATE statement at %L"
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "%L'deki ALLOCATE deyimde dizi belirtimi hatalı"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "%L'deki ASSIGN deyimi bir sabit öntanımlı INTEGER değişken gerektirir"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "%L'deki yafta %L'deki GOTO deyimiyle aynı blokta değil"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "%L'deki ASSIGN deyimi bir sabit öntanımlı INTEGER değişken gerektirir"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -87189,301 +87242,301 @@ msgstr ""
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "%L'deki CASE etiketi ile %L'deki CASE etiketi birbirinin üzerine taşıyor"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "%L'de CASE deyimindeki ifade %s türünde olmalı"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expression in CASE statement at %L must be kind %d"
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "%L'de CASE deyimindeki ifade %d. çeşit olmalı"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "%L'de CASE deyimindeki ifade bir değişmez olmalı"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "%L'de hesaplanmış GOTO deyimindeki seçim ifadesi bir değişmez tamsayı ifadesi olmalıdır"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "%L'deki SELECT deyiminin argümanı %s olamaz"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "%L'deki SELECT deyiminin argümanı bir sabit ifadesi olmalı"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expression in CASE statement at %L must be of type %s"
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "%L'de CASE deyimindeki ifade %s türünde olmalı"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "%L'deki DEFAULT CASE deyiminden sonra %L'de ikinci bir DEFAULT CASE olamaz"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "%L'deki CASE deyiminde mantıksal aralığa izin verilmez"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Logical range in CASE statement at %L is not allowed"
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "%L'deki CASE deyiminde mantıksal aralığa izin verilmez"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "%L'deki aralık belirtimi asla eşleşmeyebilir"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "%L'deki mantıksal SELECT CASE blokunun ikiden fazla case'i var"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L is not included in the selected standard"
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "%L'deki yerleşik '%s' seçilmiş standartta bulunmuyor"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 #| msgid "The name '%s' cannot be used as a defined operator at %C"
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "'%s' ismi (%C'de) tanımlı bir işleç olarak kullanılamaz"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L is not included in the selected standard"
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "%L'deki yerleşik '%s' seçilmiş standartta bulunmuyor"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Iterator step at %L cannot be zero"
 msgid "Selector at %L cannot be NULL()"
 msgstr "%L'deki yineleyici adımı sıfır olamaz"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Function '%s' at %L has no IMPLICIT type"
 msgid "Selector at %L has no type"
 msgstr "'%s' işlevi (%L'de) hiç IMPLICIT tür içermiyor"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr ""
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in EQUIVALENCE statement at %L"
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "%L'deki EQUIVALENCE deyiminde söz dizimi hatası"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "CASE label at %L overlaps with CASE label at %L"
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "%L'deki CASE etiketi ile %L'deki CASE etiketi birbirinin üzerine taşıyor"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %C is being used before it is defined"
 msgid "Derived type %qs at %L must be extensible"
 msgstr "Türetilmiş '%s' türü (%C'deki) tanımından önce kullanılıyor"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type name '%s' at %C already has a basic type of %s"
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "Türetilmiş tür ismi '%s' %C'de zaten temel  %s türünde"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected %s statement at %C"
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "Umulmadık %s deyimi (%C'de)"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr ""
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid kind for %s at %L"
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "%s için %L'deki çeşit geçersiz"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array index at %L must be scalar"
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "%L'de dizi indisi değişmez olmalıdır"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "%L'deki veri aktarım elemanının POINTER bileşenleri olamaz"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "%L'deki veri aktarım elemanının POINTER bileşenleri olamaz"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have PRIVATE components"
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "%L'deki veri aktarım elemanının PRIVATE bileşenleri olamaz"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "%L'deki veri aktarım elemanının PRIVATE bileşenleri olamaz"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "%L'deki veri aktarım elemanının POINTER bileşenleri olamaz"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "%L'deki veri aktarım elemanı tahmini boyutlu bir diziye bir tam başvuru olamaz"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "%L'de FORALL indis ismi bir değişmez INTEGER olmalıdır"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "%L'de FORALL indis ismi bir değişmez INTEGER olmalıdır"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Actual argument for '%s' must be a pointer at %L"
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "`%s' için fiili argüman bir gösterici olmalı (%L'de)"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Actual argument for '%s' must be a pointer at %L"
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "`%s' için fiili argüman bir gösterici olmalı (%L'de)"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "%L'deki ASSIGN deyimi bir sabit öntanımlı INTEGER değişken gerektirir"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "%L'deki ASSIGN deyimi bir sabit öntanımlı INTEGER değişken gerektirir"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument dim at %L must be scalar"
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "%L'de boyut argümanı değişmez olmalı"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "%L'deki SELECT deyiminin argümanı bir sabit ifadesi olmalı"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "%L'deki SELECT deyiminin argümanı bir sabit ifadesi olmalı"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Argument of ACOS at %L must be between -1 and 1"
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "%L'deki ACOS argümanı -1 .. 1 arasında olmalı"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "%L'deki deyim %L'deki dallanma deyimi için geçerli bir dallanma hedef deyimi değildir"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Branch at %L causes an infinite loop"
 msgid "Branch at %L may result in an infinite loop"
@@ -87491,12 +87544,12 @@ msgstr "%L'deki dallanma bir sonsuz döngüye sebep oluyor"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr ""
@@ -87504,225 +87557,225 @@ msgstr ""
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "%L'deki yafta %L'deki GOTO deyimiyle aynı blokta değil"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "%L'deki WHERE maskesi uyumsuz biçimde"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "%L'deki WHERE atama hedefi uyumsuz biçimde"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "%L'deki WHERE içinde desteklenmeyen deyim"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "%L'de bir FORALL indis değişkenine atama"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, fuzzy, gcc-internal-format
 #| msgid "The FORALL with index '%s' cause more than one assignment to this object at %L"
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "'%s' indisli FORALL %L'de bu nesneye birden fazla atamaya sebep oluyor"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Constructor can't be %s"
 msgid "FORALL construct at %L"
 msgstr "Kurucu %s olmayabilir"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "%L'de FORALL indis ismi bir değişmez INTEGER olmalıdır"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "Bir dış FORALL oluşumu zaten bu isimde bir indise sahip (%L'de)"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "%L'deki WHERE/ELSEWHERE deyimi bir değişmez LOGICAL dizisi gerektirir"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have POINTER components"
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "%L'deki veri aktarım elemanının POINTER bileşenleri olamaz"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Right side of assignment at %L is a derived type containing a POINTER in a PURE procedure"
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "%L'deki atamanın sağ tarafı bir PURE yordamda bir POINTER içeren türetilmiş bir türdür"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assignment to a FORALL index variable at %L"
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "%L'de bir FORALL indis değişkenine atama"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assignment to a FORALL index variable at %L"
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "%L'de bir FORALL indis değişkenine atama"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Different types in pointer assignment at %L"
 msgid "Pointer procedure assignment at %L"
 msgstr "%L'deki gösterici atamasında farklı türler"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "%L'de hesaplanmış GOTO deyimindeki seçim ifadesi bir değişmez tamsayı ifadesi olmalıdır"
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "%L'deki SELECT deyiminin argümanı bir sabit ifadesi olmalı"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "%L'deki ASSIGN deyimi bir sabit öntanımlı INTEGER değişken gerektirir"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "%L'deki ASSIGNED GOTO deyimi bir INTEGER değişken gerektirir"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' has not been assigned a target label at %L"
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "'%s' değişkenine %L'de bir hedef etiketi atanmış olmamalıydı"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Alternate RETURN statement at %L requires an INTEGER return specifier"
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "Diğer RETURN deyimi %L'de bir INTEGER dönüş belirteci gerektirir"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected initialization expression in CASE at %C"
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "%C'deki CASE'de ilklendime ifadesi umuluyordu"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "%L'deki ASSIGN deyimi bir sabit öntanımlı INTEGER değişken gerektirir"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid kind for %s at %L"
 msgid "Invalid NULL at %L"
 msgstr "%s için %L'deki çeşit geçersiz"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Arithmetic IF statement at %L requires a numeric expression"
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "%L'deki aritmetik IF deyimi bir sayısal ifade gerektirir"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "%L'deki DO WHILE döngüsünün çıkış koşulu bir sabit LOGICAL ifadesi olmalıdır"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL mask clause at %L requires a LOGICAL expression"
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "%L'deki FORALL maske deyimi bir LOGICAL ifadesi gerektirir"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_trans_code(): Hatalı deyim kodu"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD declared void"
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "parametre %qD void olarak bildirilmiş"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, fuzzy, gcc-internal-format
 #| msgid "Named COMMON block '%s' at %L shall be of the same size"
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
@@ -87730,7 +87783,7 @@ msgstr "İsimli COMMON blok '%s' %L'de aynı boyutta olmalı"
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, fuzzy, gcc-internal-format
 #| msgid "Named COMMON block '%s' at %L shall be of the same size"
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
@@ -87739,63 +87792,63 @@ msgstr "İsimli COMMON blok '%s' %L'de aynı boyutta olmalı"
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, fuzzy, gcc-internal-format
 #| msgid "Named COMMON block '%s' at %L shall be of the same size"
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "İsimli COMMON blok '%s' %L'de aynı boyutta olmalı"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "size of array %qs is too large"
 msgid "String length at %L is too large"
 msgstr "%qs dizisinin boyutu çok büyük"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable array '%s' at %L must have a deferred shape"
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "Ayrılabilir '%s' dizisi %L'de ertelenmiş bir biçimde olmalı"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, fuzzy, gcc-internal-format
 #| msgid "Scalar object '%s' at %L may not be ALLOCATABLE"
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "'%s' sabit nesnesi %L'de ALLOCATABLE olmayabilir"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, fuzzy, gcc-internal-format
 #| msgid "Array pointer '%s' at %L must have a deferred shape"
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "'%s' dizi göstericisi %L'de ertelenmiş bir biçimde olmalı"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L cannot have a deferred shape"
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "'%s' dizisi %L'de ertelenmiş bir biçimde olamaz"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr ""
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, fuzzy, gcc-internal-format
 #| msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
@@ -87803,1035 +87856,1035 @@ msgstr "Olası önyüz hatası: gösterici veya tahsis edilebilir öznitelik olm
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, fuzzy, gcc-internal-format
 #| msgid "The module or main program array '%s' at %L must have constant shape"
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "Modül veya ana program dizisi '%s' %L'de sabit biçimde olmalı"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "%L'deki tahmini karakter uzunluklu öğe ya bir sözde argüman ya da bir PARAMETER olmalı"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must have constant character length in this context"
 msgid "%qs at %L must have constant character length in this context"
 msgstr "'%s' %L'de bu bağlam için sabit karakter uzunluklu olmalı"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must have constant character length in this context"
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "'%s' %L'de bu bağlam için sabit karakter uzunluklu olmalı"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable '%s' at %L cannot have an initializer"
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "Ayrılabilir '%s'  %L'de bir ilklendiriciye sahip olamaz"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, fuzzy, gcc-internal-format
 #| msgid "External '%s' at %L cannot have an initializer"
 msgid "External %qs at %L cannot have an initializer"
 msgstr "Harici '%s'  %L'de bir ilklendiriciye sahip olamaz"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy '%s' at %L cannot have an initializer"
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "Sözde '%s'  %L'de bir ilklendiriciye sahip olamaz"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L cannot have an initializer"
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "Yerleşik '%s' %L'de bir ilklendiriciye sahip olamaz"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, fuzzy, gcc-internal-format
 #| msgid "Function result '%s' at %L cannot have an initializer"
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "işlev sonucu '%s'  %L'de bir ilklendiriciye sahip olamaz"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, fuzzy, gcc-internal-format
 #| msgid "Automatic array '%s' at %L cannot have an initializer"
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "Özdevinimli dizi '%s'  %L'de bir ilklendiriciye sahip olamaz"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "in %s, at %s:%d"
 msgid "%s at %L"
 msgstr "%s işlevinde (%s dosyasının %d. satırı)"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, fuzzy, gcc-internal-format
 #| msgid "Character-valued statement function '%s' at %L must have constant length"
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "Karakter değerli deyim işlevi '%s'  %L'de sabit uzunlukta olmalı"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L"
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "'%s' bir PRIVATE türündedir ve '%s' (%L'de PUBLIC tanımlı) için bir sözde argüman olamaz"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 #| msgid "Function result '%s' at %L cannot have an initializer"
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "işlev sonucu '%s'  %L'de bir ilklendiriciye sahip olamaz"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, fuzzy, gcc-internal-format
 #| msgid "External object '%s' at %L may not have an initializer"
 msgid "External object %qs at %L may not have an initializer"
 msgstr "Harici nesne '%s'  %L'de bir ilklendiriciye sahip olamayabilir"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, fuzzy, gcc-internal-format
 #| msgid "%s at %L must be a scalar"
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "%s' (%L'de) bir değişmez olmalıdır"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, fuzzy, gcc-internal-format
 #| msgid "Statement function '%s' at %L is not allowed as an actual argument"
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "'%s' beyan işlevine bir fiili argüman olarak izin verilmez (%L'de)"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "CHARACTER(*) işlevi '%s'  %L'de dizi değerli olamaz"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "CHARACTER(*) işlevi '%s'  %L'de gösterici değerli olamaz"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "CHARACTER(*) işlevi '%s'  %L'de katıksız olamaz"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be recursive"
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "CHARACTER(*) işlevi '%s'  %L'de iç içe olamaz"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "CHARACTER(*) işlevi '%s'  %L'de katıksız olamaz"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy procedure '%s' of PURE procedure at %L must also be PURE"
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "PURE yordamının '%s' sözde yordamı da ayrıca PURE olmalı"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, fuzzy, gcc-internal-format
 #| msgid "Loop variable at %C cannot have the POINTER attribute"
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr "%C'deki döngü değişkeni POINTER özniteliğinde olamaz"
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "PROCEDURE özniteliği '%s' içinde NAMELIST özniteliği ile çelişiyor (%L'de)"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "PROCEDURE özniteliği '%s' içinde NAMELIST özniteliği ile çelişiyor (%L'de)"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "PROCEDURE özniteliği '%s' içinde NAMELIST özniteliği ile çelişiyor (%L'de)"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "%s özniteliği ile %s özniteliği '%s' içinde %L'de çelişiyor"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 #| msgid "Iterator step at %L cannot be zero"
 msgid "Interface of %qs at %L must be explicit"
 msgstr "%L'deki yineleyici adımı sıfır olamaz"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "Kullanıcı işleci yordamı '%s' (%L'de) için en azından bir argüman bulunmalı"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ICHAR at %L must be of length one"
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "%L'de ICHAR'ın argümanı bir uzunlukta olmalı"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "`%s' argümanı `%s' yerleşiği için  (%L'de) bir POINTER olmalı"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "`%s' argümanı `%s' yerleşiği için  (%L'de) ALLOCATABLE olmalı"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must not be OPTIONAL"
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "`%s' argümanı `%s' yerleşiği için  (%L'de) OPTIONAL olmamalı"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "%L'deki işleç arayüzünün ilk argümanı INTENT(IN) olmalıdır"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "Kullanıcı işleci yordamı '%s' (%L'de) için en azından bir argüman bulunmalı"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr ""
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Iterator step at %L cannot be zero"
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "%L'deki yineleyici adımı sıfır olamaz"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure '%s' called with an implicit interface at %L"
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "Yordam '%s' bir örtük arayüz ile çağrılmış (%L'de)"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "Kullanıcı işleci yordamı '%s' (%L'de) için en azından bir argüman bulunmalı"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "`%s' argümanı `%s' yerleşiği için  (%L'de) türetilmemiş bir türde olmalı"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "`%s' argümanı `%s' yerleşiği için  (%L'de) türetilmemiş bir türde olmalı"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a scalar"
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "`%s' argümanı `%s' yerleşiği için  %L'de bir değişmez olmalı"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "`%s' argümanı `%s' yerleşiği için  (%L'de) ALLOCATABLE olmalı"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a POINTER"
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "`%s' argümanı `%s' yerleşiği için  (%L'de) bir POINTER olmalı"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr ""
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, fuzzy, gcc-internal-format
 #| msgid "Array pointer '%s' at %L must have a deferred shape"
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "'%s' dizi göstericisi %L'de ertelenmiş bir biçimde olmalı"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ICHAR at %L must be of length one"
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "%L'de ICHAR'ın argümanı bir uzunlukta olmalı"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, fuzzy, gcc-internal-format
 #| msgid "User operator procedure '%s' at %L must have at least one argument"
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "Kullanıcı işleci yordamı '%s' (%L'de) için en azından bir argüman bulunmalı"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be a non-derived type"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "`%s' argümanı `%s' yerleşiği için  (%L'de) türetilmemiş bir türde olmalı"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, fuzzy, gcc-internal-format
 #| msgid "Argument dim at %L must be scalar"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "%L'de boyut argümanı değişmez olmalı"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "Öğesel yordamın '%s' argümanı POINTER özniteliğine sahip olamaz (%L'de)"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' argument of '%s' intrinsic at %L must be ALLOCATABLE"
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "`%s' argümanı `%s' yerleşiği için  (%L'de) ALLOCATABLE olmalı"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' of '%s' at %L must have constant array bounds."
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "'%s' ('%s'in bileşeni) %L'de sabit dizi sınırlarına sahip olmalı"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, fuzzy, gcc-internal-format
 #| msgid "Character length of component '%s' needs to be a constant specification expression at %L."
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "Bileşen karakter uzunluğu '%s'in %L'de bir sabit belirtim ifadesi olması gerekir"
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, fuzzy, gcc-internal-format
 #| msgid "Expression at %L must be of INTEGER type"
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "%L'deki ifade INTEGER türünde olmalı"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, fuzzy, gcc-internal-format
 #| msgid "The component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L"
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "Bileşen '%s' bir PRIVATE türdür ve '%s' (%L'de PUBLIC tanımlı) bileşeni olamaz"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Component %s of SEQUENCE type declared at %C does not have the SEQUENCE attribute"
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "SEQUENCE türünün %s bileşeni SEQUENCE özniteliğine sahip değil (%C'de)"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected an initialization expression at %C"
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "%C'de bir ilklendirme ifadesi umuluyordu"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr ""
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' of '%s' at %L must have constant array bounds."
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr "'%s' ('%s'in bileşeni) %L'de sabit dizi sınırlarına sahip olmalı"
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %C is being used before it is defined"
 msgid "Derived type %qs at %L has not been declared"
 msgstr "Türetilmiş '%s' türü (%C'deki) tanımından önce kullanılıyor"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, fuzzy, gcc-internal-format
 #| msgid "Assumed size array '%s' in namelist '%s'at %C is not allowed."
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "'%s' tahmini boyutlu dizisine '%s' isim listesinde izin verilmiyor (%C'de)."
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, fuzzy, gcc-internal-format
 #| msgid "PRIVATE symbol '%s' cannot be member of PUBLIC namelist at %L"
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "'%s' PRIVATE simgesi %L'de PUBLIC isim listesi üyesi olamaz"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, fuzzy, gcc-internal-format
 #| msgid "PRIVATE symbol '%s' cannot be member of PUBLIC namelist at %L"
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "'%s' PRIVATE simgesi %L'de PUBLIC isim listesi üyesi olamaz"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, fuzzy, gcc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "PROCEDURE özniteliği '%s' içinde NAMELIST özniteliği ile çelişiyor (%L'de)"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "Parameter array '%s' at %L cannot be automatic or assumed shape"
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "Parametre dizisi '%s' %L'de özdevinimli veya tahmini biçimli olamaz"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, fuzzy, gcc-internal-format
 #| msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type"
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "Örtük olarak  PARAMETER türlü '%s' %L'de sonraki bir IMPLICIT türle eşleşmiyor"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "%L'de PARAMETER içindeki türetilmiş tür uyumsuz"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, fuzzy, gcc-internal-format
 #| msgid "Loop variable at %C cannot have the POINTER attribute"
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "%C'deki döngü değişkeni POINTER özniteliğinde olamaz"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, fuzzy, gcc-internal-format
 #| msgid "Possible frontend bug: Deferred array size without pointer or allocatable attribute."
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "Olası önyüz hatası: gösterici veya tahsis edilebilir öznitelik olmaksızın ertelenmiş dizi boyutu"
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "PROCEDURE özniteliği '%s' içinde NAMELIST özniteliği ile çelişiyor (%L'de)"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L"
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "PROCEDURE özniteliği '%s' içinde NAMELIST özniteliği ile çelişiyor (%L'de)"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr ""
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad specification for assumed size array at %C"
 msgid "Bad specification for assumed size array at %L"
 msgstr "%C'deki tahmini boyutlu dizi için belirtim hatalı"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "%L'deki tahmini boyutlu dizi bir sözde argüman olmalı"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assumed shape array at %L must be a dummy argument"
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "Tahmini boyutlu dizi bir sözde argüman olmalı"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assumed shape array at %L must be a dummy argument"
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "Tahmini boyutlu dizi bir sözde argüman olmalı"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "%L'deki simge bir DUMMY değişken değil"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, fuzzy, gcc-internal-format
 #| msgid "Character-valued statement function '%s' at %L must have constant length"
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "Karakter değerli deyim işlevi '%s'  %L'de sabit uzunlukta olmalı"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "Türetilmiş %qs türü %L'de tanımlanmamış olan %qs türündedir."
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Loop variable at %C cannot have the POINTER attribute"
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "%C'deki döngü değişkeni POINTER özniteliğinde olamaz"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr ""
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Loop variable at %C cannot have the POINTER attribute"
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "%C'deki döngü değişkeni POINTER özniteliğinde olamaz"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Loop variable at %C cannot have the POINTER attribute"
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "%C'deki döngü değişkeni POINTER özniteliğinde olamaz"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr ""
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must have constant character length in this context"
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "'%s' %L'de bu bağlam için sabit karakter uzunluklu olmalı"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, fuzzy, gcc-internal-format
 #| msgid "PUBLIC function '%s' at %L cannot be of PRIVATE type '%s'"
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "PUBLIC işlev '%s' %L'de PRIVATE '%s' türünde olamaz"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "INTENT(OUT) sözde argüman %qs %L'de ASSUMED SIZE olduğundan bir öntanımlı ilklerdiriciye sahip olamaz"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "Sözde argüman '%s' (%L'de) INTENT(OUT) olamaz"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "Sözde argüman '%s' (%L'de) INTENT(OUT) olamaz"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, fuzzy, gcc-internal-format
 #| msgid "Function result '%s' at %L cannot have an initializer"
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "işlev sonucu '%s'  %L'de bir ilklendiriciye sahip olamaz"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L cannot have a deferred shape"
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "'%s' dizisi %L'de ertelenmiş bir biçimde olamaz"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable array '%s' at %L must have a deferred shape"
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "Ayrılabilir '%s' dizisi %L'de ertelenmiş bir biçimde olmalı"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr ""
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy procedure at %L not allowed in ELEMENTAL procedure"
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "%L'deki sözde yordama ELEMENTAL yordamında izin verilmez"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 #| msgid "Namelist %s cannot be renamed by USE association to %s."
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "İsim listesinin ismi %s USE ilişkisiyle %s yapılamaz"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expecting %s statement at %C"
 msgid "Expecting definable entity near %L"
 msgstr "%s deyimi umuluyordu (%C'de)"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "BLOCK DATA öğesi %qs %L'de COMMON içinde olmalıdır"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr ""
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy '%s' at %L cannot have an initializer"
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "Sözde '%s'  %L'de bir ilklendiriciye sahip olamaz"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 #| msgid "Argument '%s' of elemental procedure at %L cannot have the POINTER attribute"
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "Öğesel yordamın '%s' argümanı POINTER özniteliğine sahip olamaz (%L'de)"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "DATA deyiminde %L'de sabit olmayan dizi bölümü"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "%L'deki DATA deyiminde değerden çok değişken var"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Nonconstant array section at %L in DATA statement"
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "DATA deyiminde %L'de sabit olmayan dizi bölümü"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Step expression in DO loop at %L cannot be zero"
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "%L'de Do döngüsündeki adım ifadesi sıfır olamaz"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "%L'deki DATA deyiminde değişkenden çok değer var"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "%d yaftası %L'de tanımlanmış ama kullanılmamış"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "%d yaftası %L'de tanımlanmış ama kullanılamıyor"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "Türetilmiş tür değişkeni %qs %L'de bir EQUIVALENCE nesnesi olarak SEQUENCE özniteliğine sahip olmalı"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "Türetilmiş tür değişkeni '%s' %L'de gösterici bileşen(ler)le bir EQUIVALENCE nesnesi olamaz"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L with default initializer cannot be an EQUIVALENCE object"
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "Türetilmiş tür değişkeni '%s' %L'de öntanımlı ilklendiriciyle bir EQUIVALENCE nesnesi olamaz"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "Türetilmiş tür değişkeni %qs %L'de gösterici bileşen(ler)le bir EQUIVALENCE nesnesi olamaz"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "%L'deki EQUIVALENCE deyiminde söz dizimi hatası"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, fuzzy, gcc-internal-format
 #| msgid "Common block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "Ortak blok üyesi %qs %L'de, %qs pure yordamındaki bir EQUIVALENCE nesnesi olamaz"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "%qs isimli sabiti %L'de bir EQUIVALENCE nesnesi olamaz"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "Sınırları sabit olmayan %qs dizisi %L'de bir EQUIVALENCE nesnesi olamaz"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Yapı bileşeni %qs %L'de bir EQUIVALENCE nesnesi olamaz"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "%L'deki altdizge sıfır uzunlukta"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, fuzzy, gcc-internal-format
 #| msgid "Syntax error in character length specification at %C"
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "%C'deki karakter uzunluğu belirtiminde sözdizimi hatası"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "ENTRY %qs %L'de hiç IMPLICIT tür içermiyor"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "Yerleşik işleç arayüzü %qs %L'de bir FUNCTION olmalı"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "Kullanıcı işleci yordamı %qs %L'de tahmini karakter uzunluğunda olamaz"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "Kullanıcı işleci yordamı %qs %L'de için en azından bir argüman bulunmalı"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "%L'deki işleç arayüzünün ilk argümanı isteğe bağlı olamaz"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "%L'deki işleç arayüzünün ikinci argümanı isteğe bağlı olamaz"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "%L'deki işleç arayüzünün en fazla iki argümanı olmalı"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr ""
@@ -89416,361 +89469,361 @@ msgstr ""
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "'%s' işlevi (%L'de) hiç IMPLICIT tür içermiyor"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "%s özniteliği ile %s özniteliği %L'de çelişiyor"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, fuzzy, gcc-internal-format
+#| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "%s özniteliği ile %s özniteliği '%s' içinde %L'de çelişiyor"
+
+#: fortran/symbol.cc:508
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "'%s' özniteliğine %C'de BLOCK DATA program biriminde izin verilmez"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Loop variable at %C cannot have the POINTER attribute"
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "%C'deki döngü değişkeni POINTER özniteliğinde olamaz"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure '%s' is not allowed as an actual argument at %L"
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "'%s' iç yordamına %L'de bir fiili argüman olarak izin verilmez."
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "procedure name = %s"
 msgid "Procedure pointer at %C"
 msgstr "yordam ismi = %s"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s attribute conflicts with %s attribute at %L"
 msgid "%s attribute applied to %s %s at %L"
 msgstr "%s özniteliği ile %s özniteliği %L'de çelişiyor"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "%s özniteliği ile %s özniteliği %L'de çelişiyor"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, fuzzy, gcc-internal-format
-#| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "%s özniteliği ile %s özniteliği '%s' içinde %L'de çelişiyor"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "%L'de USE ile ilişkili simgenin öznitelikleri değiştirilemez"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "USE ile ilişkili %s simgesinin öznitelikleri %L'de değiştirilemez"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "%L'de yinelenen SAVE özniteliği belirtilmiş"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Cray Pointee at %L appears in multiple pointer() statements."
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "%L'deki Cray Göstericisi çok sayıda pointer() deyiminde görünüyor"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "%L'de yinelenen SAVE özniteliği belirtilmiş"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "%L'deki SAVE özniteliği bir PURE yordamında belirtilemez"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "%L'de yinelenen SAVE özniteliği belirtilmiş"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "%L'de yinelenen SAVE özniteliği belirtilmiş"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "%L'de yinelenen SAVE özniteliği belirtilmiş"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "%L'deki SAVE özniteliği bir PURE yordamında belirtilemez"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "%L'de yinelenen SAVE özniteliği belirtilmiş"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute conflicts with %s attribute at %L"
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "%s özniteliği ile %s özniteliği %L'de çelişiyor"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "%s yordamı %L'de zaten %s yordamı olarak bildirilmiş"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "INTENT (%s) ile INTENT(%s) %L'de çelişiyor"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "ACCESS belirtimi %L'de zaten belirtilmiş"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate %s attribute specified at %L"
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "%L'de yinelenen %s özniteliği belirtilmiş"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate SAVE attribute specified at %L"
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "%L'de yinelenen SAVE özniteliği belirtilmiş"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "%qs simgesi %L'de zaten bir aleni arayüze sahip"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr ""
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L already has basic type of %s"
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "'%s' simgesi %L'de zaten temel %s türünde"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L already has basic type of %s"
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "'%s' simgesi %L'de zaten temel %s türünde"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "%qs simgesi (%L'de) bir türe sahip olamaz"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "'%s' bileşeni (%C'deki) zaten %L'de bildirilmiş"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "%qs simgesi %C'de belirsiz"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type '%s' at %C is being used before it is defined"
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "Türetilmiş '%s' türü (%C'deki) tanımından önce kullanılıyor"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C is a PRIVATE component of '%s'"
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "'%s' bileşeni (%C'deki) '%s'nin bir PRIVATE bileşenidir"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %C is not a member of the '%s' structure"
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "'%s' (%C'deki) '%s' yapısının bir üyesi değil"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %C is not a member of the '%s' structure"
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "'%s' (%C'deki) '%s' yapısının bir üyesi değil"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr " %d yaftası %L ve %L'de yinelenmiş"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "%d yaftası (%C'deki) zaten dallanma hedefi olarak başvurulu"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "%d yaftası (%C'deki) zaten bir biçim yaftası olarak başvurulu"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "%d yaftası (%C'deki) evvelce bir biçim yaftası olarak kullanılmış"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "%d yaftası (%C'deki) evvelce dallanma hedefi olarak kullanılmış"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected terminating name at %C"
 msgid "Shared DO termination label %d at %C"
 msgstr "%C'de sonlandıran isim umuluyordu"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Empty IMPLICIT statement at %C"
 msgid "Labeled DO statement at %L"
 msgstr "%C'deki IMPLICIT deyimi boş"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, fuzzy, gcc-internal-format
 #| msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'"
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "'%s' ismi (%C'deki) '%s'e '%s' modülünden belirsiz bir başvurudur"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "%qs ismi (%C'deki) şu an ki program biriminden %qs'e belirsiz bir başvurudur"
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "%qs simgesi (%C'deki) zaten konakla ilişkiliymiş"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "Türetilmiş tür değişkeni '%s' %L'de bir EQUIVALENCE nesnesi olarak SEQUENCE özniteliğine sahip olmalı"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Türetilmiş tür değişkeni '%s' %L'de bir EQUIVALENCE nesnesi olarak SEQUENCE özniteliğine sahip olmalı"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' requires an argument list at %C"
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "'%s' işlevi %C'de bir argüman listesi gerektiriyor"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Türetilmiş tür değişkeni '%s' %L'de bir EQUIVALENCE nesnesi olarak SEQUENCE özniteliğine sahip olmalı"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, fuzzy, gcc-internal-format
 #| msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "Türetilmiş tür değişkeni '%s' %L'de bir EQUIVALENCE nesnesi olarak SEQUENCE özniteliğine sahip olmalı"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr ""
@@ -89802,24 +89855,24 @@ msgstr ""
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "%C'deki G/C listesinde virgül umuluyordu"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr ""
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "yürüyüş sırasında ifade türü hatalı (%d)"
@@ -90034,38 +90087,38 @@ msgstr "FPU yazmaçlarındaki işlevlerin değerleri döner"
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr ""
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "Bilinmeyen yerleşik terim"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Missing argument list in function '%s' at %C"
 msgid "Unknown argument list function at %L"
 msgstr "'%s' işlevinde argüman listesi eksik (%C'de)"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -90076,18 +90129,18 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "Yerleşik işlev %qs (%d) tanınmiyor"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, fuzzy, gcc-internal-format
 #| msgid "'dim' argument of '%s' intrinsic at %L is not a valid dimension index"
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "`dim' argümanı `%s' yerleşiği için  (%L'de) geçerli bir boyut indisi değil"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Complex argument of LOG at %L cannot be zero"
 msgid "The event variable at %L shall not be coindexed"
@@ -90244,7 +90297,7 @@ msgstr ""
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
 msgid "gfc_trans_select(): Bad type for case expr."
@@ -90662,6 +90715,12 @@ msgstr "%qs alanı bir işlev olarak bildirilmiş"
 msgid "function %qD redeclared as variable"
 msgstr "işlev %q+D 'inline' olarak yeniden bildirilmiş"
 
+#: lto/lto-symtab.cc:865
+#, fuzzy, gcc-internal-format
+#| msgid "%q+#D previously declared here"
+msgid "previously declared here"
+msgstr "%q+#D evvelce burada bildirilmiş"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -91998,7 +92057,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr ""
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, fuzzy, gcc-internal-format
 #| msgid "non-object member %qs cannot be declared %<mutable%>"
 msgid "non-objective-c type %qT cannot be caught"
@@ -92009,7 +92068,7 @@ msgstr "nesne olmayan üye %qs %<mutable%> olarak bildirilemez"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr ""
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr ""
@@ -93800,21 +93859,11 @@ msgstr ""
 #~ msgid "argument 1 of __builtin_spe_predicate must be a constant"
 #~ msgstr "__builtin_spe_predicate'in 1. argümanı bir sabit olmalı"
 
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#~| msgid "built-in function %q+D declared as non-function"
-#~ msgid "Builtin function %s requires the -mhtm option"
-#~ msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
-
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #~| msgid "built-in function %q+D declared as non-function"
 #~ msgid "Builtin function %s requires the -maltivec option"
 #~ msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
 
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#~| msgid "built-in function %q+D declared as non-function"
-#~ msgid "Builtin function %s requires the -mpaired option"
-#~ msgstr "yerleşik işlev `%q+D işlev olarak bildirilmemiş"
-
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #~| msgid "built-in function %q+D declared as non-function"
 #~ msgid "Builtin function %s requires the -mspe option"
diff --git a/gcc/po/uk.po b/gcc/po/uk.po
index b89cbfb1cb1..5c63b7eb8fa 100644
--- a/gcc/po/uk.po
+++ b/gcc/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 13.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2023-07-28 15:23+0300\n"
 "Last-Translator: Volodymyr Lisivka <vlisivka@gmail.com>\n"
 "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
@@ -385,7 +385,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "не вказуйте одночасно -march=... та -mcpu=..."
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared та mdll несумісні"
 
@@ -19289,16 +19289,16 @@ msgstr "нерозпізнаваний insn:"
 msgid "insn does not satisfy its constraints:"
 msgstr "insn не задовольняє свої обмеження:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "створено і використовується з різними налаштуваннями «%s»"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "створено і використано з різними налаштуваннями %<-fpic%>"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 msgid "created and used with different settings of %<-fpie%>"
 msgstr "створено і використано з різними налаштуваннями %<-fpie%>"
 
@@ -19619,7 +19619,7 @@ msgstr "модифікатор довжини у форматі strfmon"
 msgid "<command-line>"
 msgstr "<командний рядок>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "непідтримуваний операнд для коду '%c'"
@@ -19638,9 +19638,9 @@ msgstr "недійсний операнд для '%%%c'"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, c-format
 msgid "invalid vector constant"
 msgstr "недійсна векторна константа"
@@ -19661,7 +19661,7 @@ msgstr "несумісний операнд з регістром для '%%%c'"
 msgid "incompatible register operand for '%%%c'"
 msgstr "несумісний операнд з регістром для '%%%c'"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "відсутній операнд"
@@ -19690,93 +19690,93 @@ msgstr "неприпустимий режим адреси"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "не можна комбінувати вектори GNU та SVE в бінарній операції"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "'%%&' використовується без будь-яких локальних динамічних посилань TLS"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "неприпустиме значення %%J"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "неприпустиме значення %%r"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "неприпустиме значення %%R"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "неприпустиме значення %%N"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "недійсне значення %%P"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "недійсне значення %%h"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "недійсне значення %%L"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "недійсне значення %%m"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "недійсне значення %%M"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "недійсне значення %%U"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "недійсне значення %%s"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "недійсне значення %%C"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "недійсне значення %%E"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "невідома перерозташування unspec"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "недійсний код %%xn"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, c-format
 msgid "invalid operand address"
 msgstr "недійсна адреса операнда"
@@ -19872,35 +19872,35 @@ msgstr "недійсний UNSPEC як операнд: %d"
 msgid "unrecognized supposed constant"
 msgstr "нерозпізнана припущена константа"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "недійсний операнд зсуву"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "умовна інструкція Thumb"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "умовна інструкція в умовній послідовності"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "Непідтримуваний операнд для коду '%c'"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -19908,113 +19908,113 @@ msgstr "Непідтримуваний операнд для коду '%c'"
 msgid "invalid operand for code '%c'"
 msgstr "недійсний операнд для коду '%c'"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "інструкція ніколи не виконується"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "застарілий код формату Maverick '%c'"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "недійсне перетворення з типу %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "недійсне перетворення до типу %<bfloat16_t%>"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr "операція не дозволена для типу %<bfloat16_t%>"
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "операнд адреси потребує обмеження для регістра X, Y або Z"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "операнди для %T/%t повинні бути reg + const_int:"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr "погана адреса, не адреса введення/виведення:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr "погана адреса, не константа:"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "погана адреса, не (reg+disp):"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "неправильна адреса, не post_inc або pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "внутрішня помилка компілятора. Погана адреса:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "Непідтримуваний код '%c' для фіксованої точки:"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "внутрішня помилка компілятора. Невідомий режим:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "неправильна інструкція:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "неправильна інструкція:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "невідома інструкція переміщення:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "неправильна інструкція зсуву:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "внутрішня помилка компілятора. Неправильний зсув:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr "непідтримуване перетворення з фіксованою точкою"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr "змінна"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 msgid "function parameter"
 msgstr "параметр функції"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr "поле структури"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 msgid "return type of function"
 msgstr "тип повернення функції"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr "вказівник"
 
@@ -20050,7 +20050,7 @@ msgstr "непідтримуваний операнд"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20369,56 +20369,56 @@ msgstr "операнд не є цілочисельним, недійсний к
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "операнд не є конкретним цілочисельним, недійсний код операнду 'R'"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "недійсний код операнду '%c'"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "недійсні обмеження для операнду"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, c-format
 msgid "invalid vector immediate"
 msgstr "недійсне векторне негайне значення"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "невідомий режим інструкції"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from type %<bfloat16_t%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "недійсне перетворення з типу %<bfloat16_t%>"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from type %<bfloat16_t%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "недійсне перетворення з типу %<bfloat16_t%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to type %<bfloat16_t%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "недійсне перетворення до типу %<bfloat16_t%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 #| msgid "invalid conversion to type %<bfloat16_t%>"
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "недійсне перетворення до типу %<bfloat16_t%>"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 #, fuzzy
 #| msgid "operation not permitted on type %<bfloat16_t%>"
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr "операція не дозволена для типу %<bfloat16_t%>"
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 #, fuzzy
 #| msgid "operation not permitted on type %<bfloat16_t%>"
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
@@ -20451,7 +20451,7 @@ msgstr "недійсна операція на %<__fpreg%>"
 msgid "invalid %%P operand"
 msgstr "недійсний операнд %%P"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "недійсне значення %%p"
@@ -20478,29 +20478,29 @@ msgstr "не можна використовувати неглобальну в
 msgid "invalid addressing mode"
 msgstr "неприпустимий режим адресації"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "«%%%c» не є дійсним префіксом операнда"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "неприпустиме використання '%%%c'"
@@ -20532,7 +20532,7 @@ msgid "post-increment address is not a register"
 msgstr "адреса з постінкрементом не є регістром"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "неправильна адреса"
 
@@ -20690,7 +20690,7 @@ msgstr "непідтримувана адреса константи:"
 msgid "unsupported memory expression:"
 msgstr "непідтримуваний вираз памʼяті:"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, c-format
 msgid "invalid vector operand"
 msgstr "недійсний операнд вектора"
@@ -20738,242 +20738,242 @@ msgstr "%<-mquad-memory-atomic%> потребує 64-бітний режим"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "%<-mquad-memory%> недоступний в режимі little endian"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr "неправильний хід"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr "Неправильний 128-бітний хід"
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, c-format
 msgid "invalid %%A value"
 msgstr "неправильне значення %%A"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "неправильне значення %%D"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "неправильне значення %%e"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "неправильне значення %%f"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "неправильне значення %%F"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "неправильне значення %%G"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "неправильний код %%j"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "неправильний код %%J"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "неправильне значення %%k"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "неправильне значення %%K"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "недійсне значення %%O"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "недійсне значення %%q"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, c-format
 msgid "invalid %%t value"
 msgstr "недійсне значення %%t"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "недійсне значення %%T"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "недійсне значення %%u"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "недійсне значення %%v"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, c-format
 msgid "invalid %%V value"
 msgstr "недійсне значення %%V"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "недійсне значення %%x"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, c-format
 msgid "invalid %%z value"
 msgstr "недійсне значення %%z"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "недійсне значення %%y, спробуйте використати обмеження 'Z'"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "Неприпустиме змішування типів з плаваючою комою IEEE 128 біт та IBM 128 біт"
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "Аргумент AltiVec, переданий у функцію без прототипу"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 msgid "Could not generate addis value for fusion"
 msgstr "Не вдалося згенерувати значення addis для злиття"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 msgid "Unable to generate load/store offset for fusion"
 msgstr "Не вдалося згенерувати зсув завантаження/збереження для злиття"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr "Погане злиття GPR"
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "недійсне перетворення з типу %<__vector_quad%>"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "недійсне перетворення на тип %<__vector_quad%>"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "недійсне перетворення з типу %<__vector_pair%>"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "недійсне перетворення на тип %<__vector_pair%>"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr "символічні посилання на памʼять підтримуються лише на z10 або пізніше"
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "не вдається розкласти адресу"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "недійсний оператор порівняння для модифікатора виводу «E»"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "недійсне посилання для модифікатора виводу «J»"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "неправильна адреса для модифікатора виводу 'O'"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "неправильна адреса для модифікатора виводу 'R'"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "очікується посилання на памʼять для модифікатора виводу 'S'"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "неправильна адреса для модифікатора виводу 'S'"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "очікується регістр або вираз памʼяті для модифікатора виводу 'N'"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "очікується регістр або вираз памʼяті для модифікатора виводу 'M'"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "неправильна константа для модифікатора виводу '%c'"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "неправильна константа - спробуйте використати модифікатор виводу"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "неправильний вектор констант для модифікатора виводу '%c'"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "неприпустимий вираз - спробуйте використати модифікатор виводу"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "неприпустимий вираз для модифікатора виводу '%c'"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 msgid "vector argument passed to unprototyped function"
 msgstr "векторний аргумент переданий до функції без прототипу"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr "типи відрізняються за знаком"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr "бінарний оператор не підтримує два векторних операнди типу bool"
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr "бінарний оператор не підтримує векторний операнд типу bool"
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr "бінарний оператор не підтримує змішування векторного операнду типу bool з векторним операндом типу з плаваючою точкою"
 
@@ -21165,12 +21165,12 @@ msgstr "({анонімний})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "очікувався %<;%>"
@@ -21183,7 +21183,7 @@ msgstr "очікувався %<;%>"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21192,7 +21192,7 @@ msgstr "очікувався %<;%>"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "очікувався %<)%>"
@@ -21200,7 +21200,7 @@ msgstr "очікувався %<)%>"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "очікувався %<]%>"
@@ -21211,29 +21211,29 @@ msgstr "очікувався %<;%>, %<,%> або %<)%>"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "очікувався %<(%>"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "очікувався %<[%>"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "очікувався %<{%>"
@@ -21243,17 +21243,17 @@ msgstr "очікувався %<{%>"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "очікувався %<:%>"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "очікувався %<while%>"
@@ -21262,8 +21262,8 @@ msgstr "очікувався %<while%>"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "очікувався %<,%>"
@@ -21273,17 +21273,17 @@ msgid "expected %<.%>"
 msgstr "очікувався %<.%>"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "очікувався %<@end%>"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "очікувався %<>%>"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "очікувався %<,%> або %<)%>"
@@ -21291,32 +21291,32 @@ msgstr "очікувався %<,%> або %<)%>"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "очікувалось %<=%>"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "очікувалось %<}%>"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, gcc-internal-format
 msgid "expected %<else%>"
 msgstr "очікувалось %<else%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "очікувалось %<#pragma omp section%> або %<}%>"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr "<повідомлення невідоме на етапі компіляції>"
 
@@ -21324,7 +21324,7 @@ msgstr "<повідомлення невідоме на етапі компіл
 msgid "(anonymous)"
 msgstr "(анонімний)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "очікувалось %<<%>"
@@ -21339,22 +21339,22 @@ msgstr "очікувалася мітка"
 msgid "candidate:"
 msgstr "кандидат:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 msgid "  after user-defined conversion:"
 msgstr "  після користувацького перетворення:"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "кандидат є:"
 msgstr[1] "кандидати є:"
 msgstr[2] "кандидати є:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "кандидат 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "кандидат 2:"
 
@@ -21588,7 +21588,7 @@ msgstr "%r%s:%d:%d:%R   у розширенні %<constexpr%> %qs"
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr "%r%s:%d:%R   у розширенні %<constexpr%> %qs"
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "кандидати:"
 
@@ -21632,48 +21632,48 @@ msgstr "перетворення відкидає константність"
 msgid "source type is not polymorphic"
 msgstr "тип джерела не є поліморфним"
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "неправильний тип аргументу для унарного мінуса"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "неправильний тип аргументу для унарного плюса"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "неправильний тип аргументу для бітового доповнення"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "неправильний тип аргументу для abs"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "неправильний тип аргументу для конʼюгації"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 msgid "in argument to unary !"
 msgstr "в аргументі для унарного !"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr "немає оператора преінкремента для цього типу"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr "немає оператора постінкремента для цього типу"
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr "немає оператора предекремента для цього типу"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr "немає оператора постдекремента для цього типу"
 
@@ -21761,7 +21761,7 @@ msgstr "Застаріла функція:"
 msgid "Deleted feature:"
 msgstr "Видалена функція:"
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr "присвоєння масиву"
 
@@ -21954,11 +21954,11 @@ msgstr "блок IF"
 msgid "implied END DO"
 msgstr "неявний END DO"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "присвоєння"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "присвоєння вказівника"
 
@@ -22118,47 +22118,47 @@ msgstr "Операнд користувацького оператора %%<%s%%
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "Операнди користувацького оператора %%<%s%%> на %%L є %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr "Змінна циклу"
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr "змінна ітератора"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr "Початковий вираз у циклі DO"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr "Кінцевий вираз у циклі DO"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr "Вираз кроку у циклі DO"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr "ЗВІЛЬНИТИ обʼєкт"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr "ВИДІЛИТИ обʼєкт"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr "змінна STAT"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr "змінна ERRMSG"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr "елемент у READ"
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr "змінна ACQUIRED_LOCK"
 
@@ -22167,11 +22167,11 @@ msgstr "змінна ACQUIRED_LOCK"
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "Різні довжини CHARACTER (%ld/%ld) у конструкторі масиву"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr "Переповнення цілочисельного типу при обчисленні обсягу памʼяті для виділення"
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr "Значення параметра PDT LEN '%s' не збігається з тим, що в декларації-пустуні"
@@ -22186,12 +22186,12 @@ msgstr "Фактична довжина рядка не відповідає о
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "Фактична довжина рядка коротша за визначену для фіктивного аргументу '%s' (%ld/%ld)"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr "Ціль перенумерування рангу занадто мала (%ld < %ld)"
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr "Присвоєння скаляру невиділеному масиву"
 
@@ -22200,81 +22200,81 @@ msgstr "Присвоєння скаляру невиділеному масив
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr "Нерівні довжини символів (%ld/%ld) в %s"
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr "Аргумент POS (%ld) поза діапазоном 0:%ld в вбудованій функції BTEST"
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "Аргумент POS (%ld) поза діапазоном 0:%ld в вбудованій функції %s"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr "Аргумент POS (%ld) поза діапазоном 0:%ld в вбудованій функції IBITS"
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr "Аргумент LEN (%ld) поза діапазоном 0:%ld в вбудованій функції IBITS"
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) в інтринсичній функції IBITS"
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "Аргумент SHIFT (%ld) поза межами діапазону 0:%ld в інтринсичній функції %s"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr "Аргумент SHIFT (%ld) поза межами діапазону -%ld:%ld в інтринсичній функції ISHFT"
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr "Аргумент SIZE (%ld) поза межами діапазону 1:%ld в інтринсичній функції ISHFTC"
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr "Аргумент SHIFT (%ld) поза межами діапазону -%ld:%ld в інтринсичній функції ISHFTC"
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "Аргумент NCOPIES інтринсичної функції REPEAT є відʼємним (його значення %ld)"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "Аргумент NCOPIES інтринсичної функції REPEAT є занадто великим"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "Аргумент FROMPOS (%ld) поза межами діапазону 0:%d в інтринсичній функції MVBITS"
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "Аргумент LEN (%ld) поза межами діапазону 0:%d в інтринсичній функції MVBITS"
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "Аргумент TOPOS (%ld) поза межами діапазону 0:%d в інтринсичній функції MVBITS"
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) в інтринсичній функції MVBITS"
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) в інтринсичній функції MVBITS"
@@ -22296,15 +22296,15 @@ msgstr "Призначена мітка не є цільовою міткою"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr "Недійсний номер зображення %d в SYNC IMAGES"
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr "Цикл виконується нескінченно"
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr "Змінено змінну циклу"
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr "Значення кроку DO дорівнює нулю"
 
@@ -22382,7 +22382,7 @@ msgid "expected boolean type"
 msgstr "очікувався булевий тип"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr "очікувалася цілочисельна величина"
@@ -22445,7 +22445,7 @@ msgstr "недостатньо аргументів"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "забагато аргументів"
@@ -23081,7 +23081,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "%<-mrelax%> підтримується лише для RTP PIC"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "Синтаксична помилка в операторі %s на %C"
@@ -23523,8 +23523,8 @@ msgstr "атрибут %qE ігнорується, оскільки він ко
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, gcc-internal-format
 msgid "previous declaration here"
 msgstr "попереднє оголошення тут"
@@ -23541,7 +23541,7 @@ msgstr "директива атрибуту %qE ігнорується"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "директива атрибуту в області %<%E::%E%> ігнорується"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "вказано неправильну кількість аргументів для атрибуту %qE"
@@ -23551,7 +23551,7 @@ msgstr "вказано неправильну кількість аргумен
 msgid "expected %i or more, found %i"
 msgstr "очікувалося %i або більше, знайдено %i"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, gcc-internal-format, gfc-internal-format
 msgid "expected %i, found %i"
 msgstr "очікувалося %i, знайдено %i"
@@ -23618,12 +23618,12 @@ msgstr "атрибути типу ігноруються після вже ви
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -23632,7 +23632,7 @@ msgstr "атрибути типу ігноруються після вже ви
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -23654,8 +23654,8 @@ msgstr "атрибут %qE ігнорується"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr "відсутній атрибут %<target%> для багатоверсійного %qD"
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "попереднє оголошення %qD"
@@ -23766,7 +23766,7 @@ msgstr "не вдалося прочитати профіль функції з
 msgid "offset %qwi outside bounds of constant string"
 msgstr "зміщення %qwi знаходиться поза межами константного рядка"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, gcc-internal-format
 msgid "%qE declared here"
 msgstr "%qE оголошено тут"
@@ -23871,7 +23871,7 @@ msgstr "неприпустимий аргумент 0 для %qs"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, gcc-internal-format
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
 msgstr "неприпустиме використання %<__builtin_va_arg_pack ()%>"
@@ -23893,42 +23893,42 @@ msgstr "другий аргумент %<__builtin_longjmp%> повинен бу
 msgid "target format does not support infinity"
 msgstr "цільовий формат не підтримує нескінченність"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, gcc-internal-format
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "%<va_start%> використовується в функції з фіксованими аргументами"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "неправильна кількість аргументів для функції %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "%<__builtin_next_arg%> викликано без аргумента"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "неправильна кількість аргументів для функції %<__builtin_next_arg%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "другий параметр %<va_start%> не є останнім іменованим аргументом"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr "невизначена поведінка, коли другий параметр %<va_start%> оголошений зі зберіганням %<register%>"
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "перший аргумент %qD повинен бути вказівником, другий - цілою константою"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr "останній аргумент %qD не є цілою константою від 0 до 3"
@@ -24974,12 +24974,12 @@ msgstr "атрибут %<weakref%> ігнорується, оскільки зм
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F використовується, але ніколи не було визначено"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F оголошено як %<static%>, але ніколи не було визначено"
@@ -25529,7 +25529,7 @@ msgstr "%<region_array%> не відповідає %<region_tree%>"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "%<lp_array%> не відповідає %<region_tree%>"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, gcc-internal-format
 msgid "%qs failed"
 msgstr "%qs не вдалося"
@@ -25559,17 +25559,17 @@ msgstr "зворотний порядок зберігання для режим
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr "запис %wu-бітних даних за межами обʼєкта-отримувача, дані обрізані до %wu-бітних"
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr "виклик %qs, оголошений з атрибутом помилки: %s"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "виклик %qs, оголошений з атрибутом попередження: %s"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr "припускається, що при спрощенні %<X - Y %s 0%> до %<X %s Y%> не відбувається переповнення зі знаком"
@@ -25604,7 +25604,7 @@ msgstr "велика константа з фіксованою комою не
 msgid "comparison is always %d due to width of bit-field"
 msgstr "порівняння завжди %d через ширину біт-поля"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr "припускаючи, що знакове переповнення не відбувається при спрощенні тесту діапазону"
@@ -25775,7 +25775,7 @@ msgstr "не вдалося отримати часи процесу: %m"
 msgid "%s signal terminated program %s"
 msgstr "сигнал %s завершив програму %s"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "невпізнана опція командного рядка %qs"
@@ -26037,7 +26037,7 @@ msgstr "специфікація multilib %qs недійсна"
 msgid "multilib exclusions %qs is invalid"
 msgstr "виключення multilib %qs недійсні"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "вибір multilib %qs %qs недійсний"
@@ -26336,22 +26336,22 @@ msgstr "вказана межа %qD %E перевищує розмір приз
 msgid "%qD specified bound %E equals source length"
 msgstr "%qD вказана межа %E дорівнює довжині джерела"
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "гнучкий елемент масиву %qD не має чітко визначених бітів заповнення для %qs"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr "обробка бітових полів PDP11 не підтримується в %qs"
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr "%s не підтримується для агрегатів зі змінною довжиною"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr "%s не підтримується на цій цілі"
@@ -26392,16 +26392,16 @@ msgid "function returns address of local variable"
 msgstr "функція повертає адресу локальної змінної"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -26413,27 +26413,27 @@ msgstr "оголошено тут"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr "аргумент %<nonnull%> %qD порівнюється з NULL"
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr "вихід %qE може бути обрізаний до останнього символу формату"
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr "вихід %qE обрізаний до останнього символу формату"
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr "%qE може записати завершальний нуль поза межами призначення"
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr "%qE записує завершальний нуль поза межами призначення"
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
@@ -26441,7 +26441,7 @@ msgstr[0] "директива %<%.*s%> записує %wu байт в облас
 msgstr[1] "директива %<%.*s%> записує %wu байтів в область розміром %wu"
 msgstr[2] "директива %<%.*s%> записує %wu байтів в область розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
@@ -26449,7 +26449,7 @@ msgstr[0] "Вивід директиви %<%.*s%> може бути обріза
 msgstr[1] "Вивід директиви %<%.*s%> може бути обрізаний при записі %wu байтів в область розміром %wu"
 msgstr[2] "Вивід директиви %<%.*s%> може бути обрізаний при записі %wu байтів в область розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
@@ -26457,67 +26457,67 @@ msgstr[0] "Вивід директиви %<%.*s%> обрізаний при за
 msgstr[1] "Вивід директиви %<%.*s%> обрізаний при записі %wu байтів у регіон розміром %wu"
 msgstr[2] "Вивід директиви %<%.*s%> обрізаний при записі %wu байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr "вивід директиви %<%.*s%> може бути обрізаний при записі до %wu байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr "вивід директиви %<%.*s%> було обрізано при записі до %wu байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr "директива %<%.*s%> записує до %wu байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "вивід директиви %<%.*s%> може бути обрізаний при записі, ймовірно, %wu або більше байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr "вивід директиви %<%.*s%> обрізаний при записі, ймовірно, %wu або більше байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr "директива %<%.*s%> записує, ймовірно, %wu або більше байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "Вивід директиви %<%.*s%> може бути обрізаний при записі від %wu до %wu байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr "Вивід директиви %<%.*s%> може бути обрізаний при записі від %wu до %wu байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr "Директива %<%.*s%> записує від %wu до %wu байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr "Вивід директиви %<%.*s%> може бути обрізаний при записі %wu або більше байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr "Вивід директиви %<%.*s%> може бути обрізаний при записі %wu або більше байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr "Директива %<%.*s%> записує %wu або більше байтів у регіон розміром %wu"
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
@@ -26525,7 +26525,7 @@ msgstr[0] "Директива %<%.*s%> записує %wu байт у регіо
 msgstr[1] "Директива %<%.*s%> записує %wu байти у регіон розміром між %wu і %wu"
 msgstr[2] "Директива %<%.*s%> записує %wu байтів у регіон розміром між %wu і %wu"
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
@@ -26533,7 +26533,7 @@ msgstr[0] "%<%.*s%> директива може обрізати вивід, з
 msgstr[1] "%<%.*s%> директива може обрізати вивід, записуючи %wu байти у регіон розміром від %wu до %wu"
 msgstr[2] "%<%.*s%> директива може обрізати вивід, записуючи %wu байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
@@ -26541,122 +26541,122 @@ msgstr[0] "Вивід директиви %<%.*s%> було обрізано, з
 msgstr[1] "Вивід директиви %<%.*s%> було обрізано, записуючи %wu байти у регіон розміром від %wu до %wu"
 msgstr[2] "Вивід директиви %<%.*s%> було обрізано, записуючи %wu байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "Вивід директиви %<%.*s%> може бути обрізаний, записуючи до %wu байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "Вивід директиви %<%.*s%> було обрізано, записуючи до %wu байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr "Директива %<%.*s%> записує до %wu байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "Вивід директиви %<%.*s%> може бути обрізаний, записуючи, ймовірно, %wu або більше байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "Вивід директиви %<%.*s%> обрізаний при записі, ймовірно, %wu або більше байтів у регіон розміром між %wu і %wu"
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr "Директива %<%.*s%> ймовірно записує %wu або більше байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "Вивід директиви %<%.*s%> може бути обрізаний при записі від %wu до %wu байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "Вивід директиви %<%.*s%> обрізаний при записі від %wu до %wu байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr "Директива %<%.*s%> записує від %wu до %wu байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "Вивід директиви %<%.*s%> може бути обрізаний при записі %wu або більше байтів у регіон розміром від %wu до %wu"
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "Виведення директиви %<%.*s%> обрізано при записі %wu або більше байтів в область розміром між %wu та %wu"
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr "Директива %<%.*s%> записує %wu або більше байтів в область розміром між %wu та %wu"
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr "Аргумент директиви %<%.*s%> є нульовим"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr "Виведення директиви %<%.*s%> розміром %wu байт перевищує мінімально необхідний розмір 4095"
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr "Виведення директиви %<%.*s%> розміром між %wu та %wu байтами перевищує мінімально необхідний розмір 4095"
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr "Виведення директиви %<%.*s%> розміром між %wu та %wu байтами може перевищувати мінімально необхідний розмір 4095"
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr "Виведення директиви %<%.*s%> розміром %wu байт перевищує %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr "Виведення директиви %<%.*s%> розміром між %wu та %wu байтами перевищує %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "Виведення директиви %<%.*s%> розміром %wu байтів призводить до перевищення результату %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr "Виведення директиви %<%.*s%> розміром між %wu та %wu байтами призводить до перевищення результату над %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr "Виведення директиви %<%.*s%> розміром від %wu до %wu байт може призвести до перевищення максимального значення %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr "Аргумент директиви %<%.*s%> не є нуль-термінованою рядком"
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr "звернений аргумент оголошений тут"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
@@ -26664,22 +26664,22 @@ msgstr[0] "припускаючи, що виведення директиви %w
 msgstr[1] "припускаючи, що виведення директиви %wu байти"
 msgstr[2] "припускаючи, що виведення директиви %wu байтів"
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "аргумент директиви %qE"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr "аргумент директиви в діапазоні [%E, %E]"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr "використовується діапазон [%E, %E] для аргументу директиви"
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
@@ -26687,22 +26687,22 @@ msgstr[0] "%qE виводить %wu байт в призначення розм
 msgstr[1] "%qE виводить %wu байтів в призначення розміром %wu"
 msgstr[2] "%qE виводить %wu байтів в призначення розміром %wu"
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr "%qE виводить від %wu до %wu байтів в призначення розміром %wu"
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr "%qE виводить %wu або більше байтів (припускаючи %wu) в призначення розміром %wu"
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr "%qE виводить %wu або більше байтів в призначення розміром %wu"
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
@@ -26710,80 +26710,80 @@ msgstr[0] "%qE вивід %wu байт"
 msgstr[1] "%qE вивід %wu байти"
 msgstr[2] "%qE вивід %wu байтів"
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr "%qE вивід від %wu до %wu байтів"
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr "%qE вивід %wu або більше байтів (припускаючи %wu)"
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr "%qE вивід %wu або більше байтів"
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr "Ширина директиви %<%.*s%> виходить за межі допустимого діапазону"
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr "Точність директиви %<%.*s%> виходить за межі діапазону"
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr "Аргументи %qE %Z та можливо %Z перекривають обʼєкт призначення %qE"
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] "Аргумент %qE %Z перекриває обʼєкт призначення %qE"
 msgstr[1] "Аргументи %qE %Z перекривають обʼєкт призначення %qE"
 msgstr[2] "Аргументи %qE %Z перекривають обʼєкт призначення %qE"
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] "Аргумент %qE %Z може перекривати обʼєкт призначення %qE"
 msgstr[1] "Аргументи %qE %Z можуть перекривати обʼєкт призначення %qE"
 msgstr[2] "Аргументи %qE %Z можуть перекривати обʼєкт призначення %qE"
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr "Обʼєкт призначення, на який посилається аргумент 1 з кваліфікатором %<restrict%>, був оголошений тут"
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr "Вказана межа %wu перевищує максимальний розмір обʼєкта %wu"
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr "Вказана межа %wu перевищує %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr "Вказаний діапазон меж [%wu, %wu] перевищує %<INT_MAX%>"
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, gcc-internal-format
 msgid "null destination pointer"
 msgstr "Вказівник призначення є нульовим"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr "Вказана межа %wu перевищує розмір %wu обʼєкта призначення"
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, gcc-internal-format
 msgid "null format string"
 msgstr "нульовий рядок формату"
@@ -27522,12 +27522,12 @@ msgstr "використання висячого вказівника до %qD"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD оголошено тут"
@@ -28303,7 +28303,7 @@ msgstr "токен %u має %<x-location == %u%>"
 msgid "token %u has %<y-location == %u%>"
 msgstr "токен %u має %<y-location == %u%>"
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "недійсне використання атрибуту %<fallthrough%>"
@@ -28653,17 +28653,17 @@ msgstr "імʼя %qs визначено з іншим значенням в ін
 msgid "mismatching definition"
 msgstr "неспівпадаюче визначення"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr "недійсний fnsummary в потоці LTO"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr "відсутня підсумкова інлайн-інформація ipa во вхідному файлі"
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr "відсутня підсумкова інформація IPA modref во вхідному файлі"
@@ -29734,72 +29734,72 @@ msgstr "помилка запису оптимізаційних записів
 msgid "error closing optimization records %qs"
 msgstr "помилка закриття файлу оптимізаційних записів %qs"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, gcc-internal-format
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "опція командного рядка %qs не підтримується цією конфігурацією"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "відсутній аргумент для %qs"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "аргумент для %qs повинен бути не відʼємним цілочисельним, за бажанням, за яким слідує одиниця розміру"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "аргумент для %qs повинен бути не відʼємним цілочисельним"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "аргумент для %qs не знаходиться між %d і %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, gcc-internal-format
 msgid "invalid argument in option %qs"
 msgstr "недійсний аргумент в опції %qs"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr "%qs вказано кілька разів в одній опції"
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "%qs взаємовиключний з %qs і не може бути вказаний разом"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "невпізнаний аргумент в опції %qs"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "допустимі аргументи для %qs: %s; ви мали на увазі %qs?"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "допустимі аргументи для %qs: %s"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "перемикач %qs більше не підтримується"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, gcc-internal-format
 msgid "argument to %qs is bigger than %d"
 msgstr "аргумент для %qs більший за %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr "неправильний %<COLLECT_GCC_OPTIONS%>"
@@ -29873,8 +29873,8 @@ msgstr "аргумент для %<-O%> повинен бути невідʼєм
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "%qs несумісний з %qs"
@@ -30588,7 +30588,7 @@ msgstr "глобальна змінна-регістр слідує за виз
 msgid "register of %qD used for multiple global register variables"
 msgstr "регістр %qD використовується для кількох глобальних змінних-регістрів"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "конфліктує з %qD"
@@ -31038,44 +31038,44 @@ msgstr "Розділ псевдоніма %q+D повинен відповіда
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "%<__builtin_saveregs%> не підтримується цільовою платформою"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "аргумент %qs не підтримується для %qs на цільовій платформі"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "вкладені функції не підтримуються на цій платформі"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "трампліни вкладених функцій не підтримуються на цій платформі"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "глобальні конструктори не підтримуються на цій платформі"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "глобальні деструктори не підтримуються на цій платформі"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "атрибут цільової платформи не підтримується на цій машині"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "атрибут цільової платформи не підтримується на цій машині"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr "%<#pragma GCC target%> не підтримується для цієї машини"
@@ -32197,82 +32197,82 @@ msgstr "Базовий блок %i має неправильне ребро"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "Базовий блок %i має неправильне ребро fallthru"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "функцію %q+F неможливо скопіювати, оскільки вона отримує нелокальний перехід"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "функцію %q+F неможливо скопіювати, оскільки вона зберігає адресу локальної мітки в статичній змінній"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "функцію %q+F неможливо вбудувати, оскільки вона використовує alloca (перевизначте, використовуючи атрибут always_inline)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "функцію %q+F неможливо вбудувати, оскільки вона використовує setjmp"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "функцію %q+F неможливо вбудувати, оскільки вона використовує змінні списки аргументів"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "функцію %q+F неможливо вбудувати, оскільки вона використовує обробку винятків setjmp-longjmp"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "функцію %q+F неможливо вбудувати, оскільки вона використовує нелокальний перехід goto"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "функцію %q+F неможливо вбудувати, оскільки вона використовує %<__builtin_return%> або %<__builtin_apply_args%>"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "функцію %q+F неможливо вбудувати, оскільки вона містить обчислюваний перехід goto"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "функцію %q+F неможливо вбудувати, оскільки вона має аргумент зі змінною довжиною масиву"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "функцію %q+F неможливо вбудувати, оскільки вона пригнічена за допомогою %<-fno-inline%>"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "функцію %q+F неможливо вбудувати, оскільки вона використовує атрибути, що конфліктують з вбудовуванням"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "не вдалося вбудувати виклик %q+F з %<always_inline%>: %s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "виклик звідси"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, gcc-internal-format
 msgid "called from this function"
 msgstr "виклик з цієї функції"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "не вдалося вбудувати виклик %q+F: %s"
@@ -32327,27 +32327,27 @@ msgstr "неприпустимий атрибут специфікації fn «
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "неприпустимий атрибут специфікації fn «%s» аргумент %i"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr "вказівник %qs є нульовим"
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, gcc-internal-format
 msgid "in a call to non-static member function %qD"
 msgstr "при виклику нестатичного член-функції %qD"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr "аргумент %u є нульовим, тоді як очікується ненульовий"
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "при виклику вбудованої функції %qD"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "у виклику функції %qD, оголошеної як %qs"
@@ -32558,7 +32558,7 @@ msgstr "%qs використовується неініціалізованим"
 msgid "%qs may be used uninitialized"
 msgstr "%qs може бути використаний неініціалізованим"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD було оголошено тут"
@@ -32788,7 +32788,7 @@ msgstr "векторна умова буде розширена поштовха
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr "операція перемішування вектора буде розширена поштовхами"
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr "векторизація не відбулася для циклу simd"
@@ -32803,122 +32803,122 @@ msgstr "неконстантний елемент у константному К
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr "елемент з побічними ефектами у КОНСТРУКТОРІ без побічних ефектів"
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "масиви функцій не мають сенсу"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "тип повернення функції не може бути функцією"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "перевірка дерева: %s, є %s у %s, на %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "перевірка дерева: очікується ні одного з %s, є %s у %s, на %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "перевірка дерева: очікується клас %qs, є %qs (%s) у %s, на %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "перевірка дерева: не очікував класу %qs, є %qs (%s) у %s, на %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "перевірка дерева: очікував %<omp_clause %s%>, є %qs у %s, на %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "перевірка дерева: очікував дерево, що містить структуру %qs, є %qs у %s, на %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "перевірка дерева: доступ до елементу %d з %<tree_int_cst%> з %d елементів в %s, на %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "перевірка дерева: доступ до елементу %d з %<tree_vec%> з %d елементів в %s, на %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "перевірка дерева: доступ до операнда %d з %s з %d операндів в %s, на %s:%d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "перевірка дерева: доступ до операнда %d з %<omp_clause %s%> з %d операндів у %s, на %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qD застарілий: %s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qD застарілий"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE застарілий: %s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%qE застарілий"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "тип застарілий: %s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "тип застарілий"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, gcc-internal-format
 msgid "%qD is unavailable: %s"
 msgstr "%qD недоступний: %s"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, gcc-internal-format
 msgid "%qD is unavailable"
 msgstr "%qD недоступний"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, gcc-internal-format
 msgid "%qE is unavailable: %s"
 msgstr "%qE недоступний: %s"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, gcc-internal-format
 msgid "%qE is unavailable"
 msgstr "%qE недоступний"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr "тип недоступний: %s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, gcc-internal-format
 msgid "type is unavailable"
 msgstr "тип недоступний"
@@ -32943,262 +32943,262 @@ msgstr "тип недоступний"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr "варіант типу відрізняється на %s"
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr "варіант типу має різний %<TYPE_SIZE_UNIT%>"
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr "%<TYPE_SIZE_UNIT%> варіанту типу"
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr "%<TYPE_SIZE_UNIT%> типу"
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr "варіант типу з %<TYPE_ALIAS_SET_KNOWN_P%>"
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr "варіант типу має відмінне %<TYPE_VFIELD%>"
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr "варіант типу має відмінне %<TYPE_BINFO%>"
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr "%<TYPE_BINFO%> варіанту типу"
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr "%<TYPE_BINFO%> типу"
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr "варіант типу має різні %<TYPE_FIELDS%>"
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr "перша невідповідність - поле"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr "і поле"
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr "варіант типу має різний %<TREE_TYPE%>"
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr "%<TREE_TYPE%> варіант типу"
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr "%<TREE_TYPE%> типу"
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "тип несумісний з його варіантом"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not an opaque type"
 msgstr "тип %s не є непрозорим типом"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, gcc-internal-format, gfc-internal-format
 msgid "type %s is not with opaque mode"
 msgstr "тип %s не має непрозорого режиму"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr "тип %s відрізняється за %<TYPE_MODE%>"
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr "тип %s відрізняється за %<TYPE_SIZE%>"
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr "тип %s відрізняється за %<TYPE_ALIGN%>"
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr "тип %s відрізняється за %<TYPE_USER_ALIGN%>"
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, gcc-internal-format
 msgid "main variant is not defined"
 msgstr "головний варіант не визначений"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr "%<TYPE_MAIN_VARIANT%> має різний %<TYPE_MAIN_VARIANT%>"
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr "%<TYPE_CANONICAL%> має різний %<TYPE_CANONICAL%>"
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr "%<TYPE_CANONICAL%> несумісний"
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr "%<TYPE_MODE%> %<TYPE_CANONICAL%> несумісний"
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr "%<TYPE_CANONICAL%> головного варіанту не є головним варіантом"
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr "%<TYPE_VFIELD%> не є %<FIELD_DECL%> або %<TREE_LIST%>"
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr "%<TYPE_NEXT_PTR_TO%> не є %<POINTER_TYPE%>"
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr "%<TYPE_NEXT_REF_TO%> не є %<REFERENCE_TYPE%>"
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr "%<TYPE_BINFO%> не є %<TREE_BINFO%>"
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr "тип %<TYPE_BINFO%> не є %<TYPE_MAIN_VARIANT%>"
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr "тип %<TYPE_METHOD_BASETYPE%> не є записом або обʼєднанням"
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr "тип %<TYPE_OFFSET_BASETYPE%> не є записом або обʼєднанням"
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr "розмір масиву %<TYPE_ARRAY_MAX_SIZE%> не є %<INTEGER_CST%>"
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr "значення %<TYPE_MAX_VALUE_RAW%> не є NULL"
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr "поле %<TYPE_LANG_SLOT_1 (binfo)%> не є NULL"
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr "значення перелічування не є %<CONST_DECL%> або %<INTEGER_CST%>"
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr "тип значення перелічування не є %<INTEGER_TYPE%> і не може бути перетворений на перелічування"
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr "імʼя значення перелічування не є %<IDENTIFIER_NODE%>"
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "масив %<TYPE_DOMAIN%> не є цілочисельним типом"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "%<TYPE_FIELDS%> визначено в неповному типі"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr "неправильне дерево в списку %<TYPE_FIELDS%>"
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr "%<TYPE_CACHED_VALUES_P%> дорівнює %i, тоді як %<TYPE_CACHED_VALUES%> дорівнює %p"
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr "%<TYPE_CACHED_VALUES%> не є %<TREE_VEC%>"
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr "неправильний запис %<TYPE_CACHED_VALUES%>"
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr "%<TREE_PURPOSE%> не є NULL у списку %<TYPE_ARG_TYPES%>"
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr "неправильний запис у списку %<TYPE_ARG_TYPES%>"
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr "поле %<TYPE_VALUES_RAW%> не є NULL"
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr "%<TYPE_CACHED_VALUES_P%> встановлено, хоча цього не повинно бути"
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr "%<TYPE_METHOD_BASETYPE%> не є основним варіантом"
@@ -33414,7 +33414,7 @@ msgstr "визначення псевдонімів не підтримують
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "атрибут видимості не підтримується в цій конфігурації; ігнорується"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr "%+qD без атрибуту %<retain%> та %qD з атрибутом %<retain%> розміщені в розділі з такою самою назвою"
@@ -33624,7 +33624,7 @@ msgstr "Атрибут %qE ігнорується, оскільки %qD не є
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "Атрибут %qE проігноровано, оскільки %qD не є локальною змінною"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "Атрибут %qE має вплив лише на публічні обʼєкти"
@@ -33806,7 +33806,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "Ігнорується атрибут %qE, який не встановлено для змінної"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "Атрибут %qE не може бути вказаний для локальних змінних"
@@ -34121,7 +34121,7 @@ msgstr "%qD несумісний з %qD"
 msgid "%qE argument is not a function"
 msgstr "Аргумент %qE не є функцією"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "Застаріле повідомлення не є рядком"
@@ -34627,7 +34627,7 @@ msgstr "ISO C++ не дозволяє застосовувати %<alignof%> д
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "ISO C не дозволяє застосовувати %<_Alignof%> до типу функції"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "недійсне застосування %qs до типу void"
@@ -34758,17 +34758,17 @@ msgstr "атрибут %<fallthrough%> вказано кілька разів"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "атрибут %<fallthrough%> вказано з параметром"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "замало аргументів для функції %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -34897,166 +34897,166 @@ msgstr "спроба отримати адресу члена структури
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr "індекс %E вказує на зміщення, більше розміру %qT"
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "розмір масиву занадто великий"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "тип операнда %qT несумісний з аргументом %d функції %qE"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "очікується аргумент типу вказівник або цілочисельне для аргументу 1"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr "обидва аргументи повинні бути сумісними"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "неправильна кількість аргументів для функції %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "аргумент 1 функції %qE повинен бути вказівником на тип, що не є void"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "аргумент 1 функції %qE повинен бути вказівником на повний тип"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "аргумент 1 функції %qE повинен бути вказівником на тип зі сталим розміром"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "аргумент 1 функції %qE повинен бути вказівником на обʼєкт з розміром, відмінним від нуля"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "аргумент %d з %qE повинен бути типом вказівника"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "аргумент %d з %qE повинен бути вказівником на тип зі сталою розмірністю"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "аргумент %d з %qE не повинен бути вказівником на функцію"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "невідповідність розміру в аргументі %d з %qE"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "аргумент %d з %qE не повинен бути вказівником на тип %<const%>"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "аргумент %d з %qE відкидає кваліфікатор %<const%>"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "аргумент %d з %qE не повинен бути вказівником на тип %<volatile%>"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "аргумент %d з %qE відкидає кваліфікатор %<volatile%>"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "аргумент %d з %qE для моделі памʼяті не є цілочисельним"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "неприпустимий аргумент моделі памʼяті %d з %qE"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr "ця ціль не визначає барʼєр спекуляції; ваша програма все ще буде виконуватись правильно, але неправильна спекуляція може не бути обмежена"
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "значення індексу виходить за межі"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "перетворення скаляра %qT на вектор %qT включає відсікання"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "вбудовану функцію %qE потрібно викликати безпосередньо"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, gcc-internal-format
 msgid "size of array %qE is not a constant expression"
 msgstr "розмір масиву %qE не є сталим виразом"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, gcc-internal-format
 msgid "size of array is not a constant expression"
 msgstr "розмір масиву не є сталим виразом"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, gcc-internal-format
 msgid "size %qE of array %qE is negative"
 msgstr "розмір %qE масиву %qE є відʼємним"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, gcc-internal-format
 msgid "size %qE of array is negative"
 msgstr "розмір %qE масиву є відʼємним"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr "розмір %qE масиву %qE перевищує максимальний розмір обʼєкта %qE"
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr "розмір %qE масиву перевищує максимальний розмір обʼєкта %qE"
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "розмір масиву %qE перевищує максимальний розмір обʼєкта %qE"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr "розмір масиву перевищує максимальний розмір обʼєкта %qE"
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr "змінна середовища %qs повинна розгортатися в невідʼємне цілочисельне, менше або рівне %wd"
@@ -35681,7 +35681,7 @@ msgstr "цілочисельна константа занадто велика
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "цілочисельна константа занадто велика для типу %<unsigned long%>"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int%d%> is not supported on this target"
 msgid "%<_BitInt(%d)%> is not supported on this target"
@@ -35763,7 +35763,7 @@ msgstr "непідтримуване нестандартне зʼєднання
 msgid "traditional C rejects string constant concatenation"
 msgstr "традиційне C відкидає зʼєднання констант рядків"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr "%<#pragma omp critical%> з %<hint%> замиканням потребує імені, за винятком випадку, коли використовується %<omp_sync_hint_none%>"
@@ -35818,7 +35818,7 @@ msgstr "тип залежності %<depobj%> вказаний в замика
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr "Модифікатор %<iterator%> не може бути вказаний на конструкції %<depobj%>"
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "Недійсний тип для змінної ітерації %qE"
@@ -35833,17 +35833,17 @@ msgstr "Змінна ітерації %qE має тип %<_Atomic%>"
 msgid "%qE is not initialized"
 msgstr "%qE не ініціалізовано"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "Відсутній контрольний предикат"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "Недійсний контрольний предикат"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "Відсутній вираз інкремента"
@@ -35853,7 +35853,7 @@ msgstr "Відсутній вираз інкремента"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr "Інкремент не є константою 1 або -1 для умови %<!=%>"
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "Недійсний вираз інкремента"
@@ -35940,7 +35940,7 @@ msgstr "недійсний модифікатор зведення %<task%> на
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr "%<inscan%> %<reduction%> замикання на конструкції, відмінній від %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr "%qD вказано в замиканні %<allocate%>, але не в явному замиканні приватизації"
@@ -35950,7 +35950,7 @@ msgstr "%qD вказано в замиканні %<allocate%>, але не в я
 msgid "%qD is not a function argument"
 msgstr "%qD не є аргументом функції"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr "бітове поле %qE в замиканні %qs"
@@ -36544,7 +36544,7 @@ msgid "wrong type argument to %s"
 msgstr "неправильний тип аргументу для %s"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -37475,36 +37475,38 @@ msgid "comparison between two arrays"
 msgstr "порівняння між двома масивами"
 
 #: c-family/c-warn.cc:3832
-#, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+#, fuzzy, gcc-internal-format
+#| msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr "використовуйте унарний оператор %<+%>, який перетворює операнди в вказівники, або %<&%D[0] %s &%D[0]%>, щоб порівняти адреси"
 
-#: c-family/c-warn.cc:3836
-#, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+#: c-family/c-warn.cc:3839
+#, fuzzy, gcc-internal-format
+#| msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr "використовуйте %<&%D[0] %s &%D[0]%>, щоб порівняти адреси"
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr "результат виразу %<%wu ^ %wu%> дорівнює %wu; ви мали на увазі %<1 << %wu%> (%wu)?"
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr "результат виразу %<%wu ^ %wu%> дорівнює %wu; ви мали на увазі %<1LL << %wu%>?"
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr "результат виразу %<%wu ^ %wu%> дорівнює %wu; ви мали на увазі піднесення до степеня?"
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr "результат виразу %<%wu ^ %wu%> дорівнює %wu; ви мали на увазі %<1e%wu%>?"
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr "ви можете прибрати це попередження, використовуючи шістнадцяткову константу (%wx замість %wd)"
@@ -37714,127 +37716,127 @@ msgstr "Аргумент %<-misr-secure=%d%> не знаходиться у ді
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr "для опції %<-mcache-block-size=X%> допустимі значення X: 4, 8, 16, 32, 64, 128, 256 або 512"
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr "%<-march=%s%>: після %<%dp%> очікується число"
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr "%<-march=%s%>: для %<%s%dp%dp?%> не підтримується номер версії з більш ніж 2 рівнями"
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr "%<-march=%s%>: рядок ISA повинен починатися з rv32 або rv64"
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr "%<-march=%s%>: rv%de не є дійсним базовим ISA"
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr "версія %<g%> буде пропущена, будь ласка, вкажіть версію для окремого розширення"
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr "%<-march=%s%>: перший піднабір ISA повинен бути %<e%>, %<i%> або %<g%>"
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr "%<-march=%s%>: після %<%dp%> очікується число"
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr "%<-march=%s%>: конфлікт z*inx з розширеннями з плаваючою комою"
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mcpu=%s%> conflicts with %<-march=%s%>"
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "%<-mcpu=%s%> конфліктує з %<-march=%s%>"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mcpu=%s%> conflicts with %<-march=%s%>"
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "%<-mcpu=%s%> конфліктує з %<-march=%s%>"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr "%<-march=%s%>: конфлікт z*inx з розширеннями з плаваючою комою"
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr "%<-march=%s%>: імʼя %s повинно бути більше, ніж 1 літера"
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "%<-march=%s%>: %s повинно бути розділено знаком %<_%>"
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr "%<-march=%s%>: імʼя %s повинно бути більше, ніж 1 літера"
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%<-mcpu=%s%>: невідомий процесор"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr "Не вдалося знайти задовільний набір multilib для %<-march=%s%>/%<-mabi=%s%>"
@@ -38238,12 +38240,12 @@ msgstr "очікується 64-бітна адреса, але аргумент
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "очікується 64-бітна адреса, але аргумент 2 має %d біт"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC aarch64%> вимагає рядковий параметр"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr "невідома опція %qs для %<#pragma GCC aarch64%>"
@@ -38830,7 +38832,7 @@ msgstr "передача параметра для аргументу типу %
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr "передача параметра для аргументу типу %qT змінена в GCC 9.1"
@@ -38907,12 +38909,12 @@ msgid "unknown tuning option (%s)"
 msgstr "невідомий параметр настроювання (%s)"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr "несумісні параметри %<-mstack-protector-guard=global%> та %<-mstack-protector-guard-offset=%s%>"
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr "обидва параметри %<-mstack-protector-guard-offset%> та %<-mstack-protector-guard-reg%> повинні використовуватися з %<-mstack-protector-guard=sysreg%>"
@@ -38923,7 +38925,7 @@ msgid "specify a system register with a small string length"
 msgstr "вказати системний регістр з короткою довжиною рядка"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "%qs не є дійсним зсувом в %qs"
@@ -39108,9 +39110,9 @@ msgstr "директива або атрибут %<target(\"%s\")%> не доз
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "директива або атрибут %<target(\"%s=%s\")%> недійсний"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "аргумент атрибуту %<target%> не є рядком"
@@ -39167,18 +39169,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "мультіверсіонування віртуальних функцій не підтримується"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "мультиверсіонування потребує %<ifunc%>, який не підтримується на цій цілі"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr "передача параметра для аргументу типу %qT з %<[[no_unique_address]]%> членами змінилася %{у GCC 10.1%}"
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr "передача параметра для аргументу типу %qT при увімкненні C++17 змінилася, щоб відповідати C++14 %{у GCC 10.1%}"
 
@@ -39191,8 +39193,8 @@ msgstr "передача параметра для аргументу типу %
 msgid "lane %wd out of range %wd - %wd"
 msgstr "доріжка %wd поза межами %wd - %wd"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, gcc-internal-format
 msgid "unsupported simdlen %wd"
 msgstr "непідтримувана simdlen %wd"
@@ -39203,7 +39205,7 @@ msgstr "непідтримувана simdlen %wd"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "GCC наразі не підтримує тип повернення %qT для функцій %<simd%>"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr "непідтримуваний тип повернення %qT для simd"
@@ -39214,7 +39216,7 @@ msgstr "непідтримуваний тип повернення %qT для si
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "GCC наразі не підтримує тип аргументу %qT для функцій %<simd%>"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "непідтримуваний тип аргументу %qT для simd"
@@ -39307,8 +39309,8 @@ msgstr "затримка кешу L%d невідома для %s"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "неправильне значення %qs для перемикача %<-mmemory-latency%>"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "неправильний вбудований fcode"
@@ -39428,18 +39430,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "аргумент атрибуту %qE не є «ilink» або «firq»"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -39553,7 +39555,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "відсутній аргумент атрибуту %qE"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "атрибут %qE дозволяє лише цілочисловий константний аргумент"
@@ -39573,23 +39575,23 @@ msgstr "атрибут %qE застосовується лише до типів
 msgid "argument of %qE attribute ignored"
 msgstr "аргумент атрибута %qE проігноровано"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "атрибут %qE застосовується лише до змінних"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr "альтернативи не дозволені в виводі прапорця %<asm%>"
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr "невідомий вивід прапорця %<asm%> %qs"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr "недійсний тип для виводу прапорця %<asm%>"
@@ -39839,7 +39841,7 @@ msgstr "цільовий процесор не підтримує THUMB інст
 msgid "target CPU does not support unaligned accesses"
 msgstr "цільовий процесор не підтримує незбалансований доступ"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, gcc-internal-format
 msgid "This architecture does not support branch protection instructions"
 msgstr "Ця архітектура не підтримує інструкції захисту гілок"
@@ -39889,7 +39891,7 @@ msgstr "межа розміру структури може бути встан
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "RTP PIC несумісний з %<-msingle-pic-base%>"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr "Режим FDPIC не підтримується в режимі Thumb-1"
@@ -39995,7 +39997,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr "аргумент типу %qT не допускається з %<-mgeneral-regs-only%>"
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr "передача параметрів для аргументу типу %qT змінилася в GCC 7.1"
@@ -40035,42 +40037,42 @@ msgstr "Атрибут %qE не має впливу на функції зі с
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "Атрибут %qE застосовується тільки до базового типу вказівника на функцію"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr "доступ до локального сховища потоку в даний час не підтримується з опцією %<-mpure-code%> або %<-mslow-flash-data%>"
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr "%s %wd поза діапазоном %wd - %wd"
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "не вдалося обчислити реальне розташування параметра у стеку"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr "Неочікуваний далекий перехід thumb1"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "немає доступних нижніх регістрів для викидання високих регістрів"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "Процедури обслуговування переривань не можуть бути закодовані в режимі Thumb-1"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr "%<-fstack-check=specific%> для Thumb-1"
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr "недійсний fpu для атрибуту або pragma %qs"
@@ -40078,22 +40080,22 @@ msgstr "недійсний fpu для атрибуту або pragma %qs"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr "автоматичний вибір fpu в даний момент тут не дозволяється"
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "недійсна архітектура для атрибуту або pragma %qs"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr "невідомий атрибут або pragma %qs"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "прапорці %<asm%> не підтримуються в режимі thumb1"
@@ -40147,162 +40149,162 @@ msgstr "підтримувані архітектури ядра:%s"
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "невідома архітектура ядра %qs, вказана з %qs"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, gcc-internal-format
 msgid "%<-fpic%> is not supported"
 msgstr "%<-fpic%> не підтримується"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
 msgstr "%<-fPIC%> не підтримується"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, gcc-internal-format
 msgid "%<-fpie%> is not supported"
 msgstr "%<-fpie%> не підтримується"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr "%<-fPIE%> не підтримується"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "атрибути функції %qs та %qs взаємовиключні"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "функція %qs не може мати аргументів"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "функція %qs не може повертати значення"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs, схоже, є неправильно написаним обробником %qs, відсутній префікс %<__vector%>"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr "%qs є зарезервованим ідентифікатором в AVR-LibC. Розгляньте %<#include <avr/interrupt.h>%> перед використанням макросу %qs"
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr "%qs є зарезервованим ідентифікатором в AVR-LibC. Розгляньте %<#include <avr/interrupt.h>%> перед використанням макросу %qs"
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr "%<builtin_return_address%> містить лише 2 байти адреси"
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr "зміщення вказівника від символу може бути неправильним"
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr "доступ до памʼяті даних за адресою памʼяті програми"
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr "доступ до памʼяті програми за адресою памʼяті даних"
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr "фіксований регістр %s використовується для передачі параметра у функцію"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "запис у простір адрес %qs не підтримується"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "атрибут %qE застосовується тільки до змінних у статичному сховищі"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "атрибут %qE підтримується тільки для зменшених ядер Tiny"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute address out of range"
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "адреса атрибуту %qE поза межами діапазону"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr "як %s, так і атрибут %qE надають адресу"
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "Атрибут %qE на неволатильній змінній"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "Адресні простори не підтримуються на зменшених пристроях Tiny"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "Адресний простір %qs не підтримується на пристроях з розміром флеш-памʼяті до %d KiB"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr "Вказівник, що спрямовується на адресний простір %qs, повинен бути const в %qT"
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr "Вказівник, що спрямовується на адресний простір %qs, повинен бути const в %s %q+D"
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables in static storage"
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "атрибут %qE застосовується тільки до змінних у статичному сховищі"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr "Змінна %q+D повинна бути константою, щоб бути поміщеною в розділ тільки для читання за допомогою %qs"
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, fuzzy, gcc-internal-format
 #| msgid "static IO declaration for %q+D needs an address"
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "Статичне оголошення IO для %q+D потребує адресу"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "В розділ %<.noinit%> можна помістити лише неініціалізовані змінні"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "Змінна %q+D з динамічною ініціалізацією поміщена в область памʼяті програми"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "Неініціалізована змінна %q+D поміщена в область памʼяті програми"
@@ -40311,43 +40313,43 @@ msgstr "Неініціалізована змінна %q+D поміщена в 
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable %qs at %L cannot have an initializer"
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "Змінна з можливістю виділення %qs у %L не може мати ініціалізатора"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%q+D має несумісні атрибути %qs і %qs"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "Архітектура %qs підтримується лише асемблером"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "Перетворення з адресного простору %qs в адресний простір %qs"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "%s очікує цілочисельну константу на етапі компіляції"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%s очікує довгу цілочисельну константу на етапі компіляції як перший аргумент"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr "заокруглення до %d бітів не має ефекту для значення з фіксованою точкою з %d дробовими бітами"
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr "результат округлення завжди буде 0"
@@ -40483,7 +40485,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "непрямий виклик у функції, який не підтримується eBPF"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -41115,8 +41117,8 @@ msgstr "аргумент вбудованої функції %<xabort%> пови
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr "версії функцій не можуть бути позначені як %<gnu_inline%>, потрібно створювати тіла"
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "модель коду %s не підтримує режим PIC"
@@ -41182,257 +41184,257 @@ msgstr "Занадто багато діапазонів розмірів вка
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr "Невідомий параметр для опції %<-mtune-ctrl%>: %s"
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "Intel МКП psABI не підтримується в режимі %s"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%<-mtune=x86-64%> застаріло; використовуйте %<-mtune=k8%> або %<-mtune=generic%> замість цього, як це відповідає"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%<target(\"tune=x86-64\")%> застаріло; використовуйте %<target(\"tune=k8\")%> або %<target(\"tune=generic\")%> замість цього, як це відповідає"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "%<-mstringop-strategy=rep_8byte%> не підтримується для 32-бітного коду"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 #| msgid "%<-muintr%> not supported for 32-bit code"
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "%<-muintr%> не підтримується для 32-бітного коду"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "Опція %<-mlam=%>: [u48|u57] не підтримується для 32-бітного коду"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "%<-muintr%> не підтримується для 32-бітного коду"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "Опція %<-mlam=%>: [u48|u57] не підтримується для 32-бітного коду"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "Режим адреси %qs не підтримується в режимі %s біт"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "%<-mabi=ms%> не підтримується з X32 ABI"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "%<-mabi=%s%> не підтримується з %<-fsanitize=address%>"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "%<-mabi=%s%> не підтримується з %<-fsanitize=kernel-address%>"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "%<-mabi=%s%> не підтримується з %<-fsanitize=thread%>"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "Модель коду %qs не підтримується в режимі %s біт"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "Модель коду %qs не підтримується в режимі x32"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "%<-masm=intel%> не підтримується в цій конфігурації"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "Режим %i біт не скомпільований"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "Процесор %<generic%> може використовуватись тільки для перемикача %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "Процесор %<generic%> може використовуватись тільки для атрибуту %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "Процесор %<intel%> може використовуватись тільки для перемикача %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "процесор %<intel%> може використовуватися лише для атрибуту %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "Вибраний вами процесор не підтримує набір інструкцій x86-64"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, gcc-internal-format
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "неправильне значення %qs для перемикача %<-march=%>"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "неправильне значення %qs для атрибуту %<target(\"arch=\")%>"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "допустимі аргументи для перемикача %<-march=%> це: %s; ви мали на увазі %qs?"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr "допустимі аргументи для атрибуту %<target(\"arch=\")%> це: %s; ви мали на увазі %qs?"
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "допустимі аргументи для перемикача %<-march=%> це: %s"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "допустимі аргументи для атрибуту %<target(\"arch=\")%> це: %s"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "неправильне значення %qs для перемикача %<-mtune=%>"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "неправильне значення %qs для атрибуту %<target(\"tune=\")%>"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "дійсні аргументи для перемикача %<-mtune=%> це: %s; ви мали на увазі %qs?"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr "дійсні аргументи для атрибуту %<target(\"tune=\")%> це: %s; ви мали на увазі %qs?"
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "дійсні аргументи для перемикача %<-mtune=%> це: %s"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "дійсні аргументи для атрибуту %<target(\"tune=\")%> це: %s"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "%<-mregparm%> ігнорується в 64-бітному режимі"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "%<-mregparm%> ігнорується для Intel МКП psABI"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, gcc-internal-format
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "%<-mregparm=%d%> не знаходиться між 0 і %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "%<-m96bit-long-double%> несумісний з цією ціллю"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "%<-mrtd%> ігнорується в 64-бітному режимі"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "%<target(\"rtd\")%> ігнорується в 64-бітному режимі"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -41440,290 +41442,290 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "%<-mpreferred-stack-boundary%> не підтримується для цієї цілі"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "%<-mpreferred-stack-boundary=%d%> не знаходиться між %d і %d"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "%<-mincoming-stack-boundary=%d%> не знаходиться між %d і 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "%<-mnop-mcount%> несумісний з цією ціллю"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "%<-mnop-mcount%> не реалізований для %<-fPIC%>"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "%<-msseregparm%> використовується без увімкненого SSE"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "%<target(\"sseregparm\")%> використовується без увімкненого SSE"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "Набір інструкцій SSE вимкнено, використовується арифметика 387"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "Набір інструкцій 387 вимкнено, використовується арифметика SSE"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "Перевірка стеку потребує %<-maccumulate-outgoing-args%> для правильності"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "Перевірка стеку потребує %<target(\"accumulate-outgoing-args\")%> для правильності"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr "Фіксований регістр ebp потребує %<-maccumulate-outgoing-args%>"
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr "фіксований регістр ebp вимагає %<target(\"accumulate-outgoing-args\")%>"
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr "%<-mfentry%> не підтримується для 32-біт в поєднанні з %<-fpic%>"
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "%<-mno-fentry%> несумісний з SEH"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr "%<-mcall-ms2sysv-xlogues%> наразі не підтримується з SEH"
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "невідома опція для %<-mrecip=%s%>"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs не є дійсним числом в %<-mstack-protector-guard-offset=%>"
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr "%qs не є дійсним зсувом в %<-mstack-protector-guard-offset=%>"
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr "%qs не є дійсним базовим регістром в %<-mstack-protector-guard-reg=%>"
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "%<-fcf-protection%> несумісний з цільовою платформою"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, gcc-internal-format
 msgid "interrupt and naked attributes are not compatible"
 msgstr "атрибути interrupt та naked несумісні"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr "Атрибути %qs та %qs несумісні"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr "тільки формат відлагодження DWARF підтримується для обробки переривань"
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, gcc-internal-format
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "%<-mindirect-branch=%s%> та %<-mcmodel=large%> несумісні"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr "%<-mindirect-branch%> та %<-fcf-protection%> несумісні"
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, gcc-internal-format
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "%<-mfunction-return=%s%> та %<-mcmodel=large%> несумісні"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr "%<-mfunction-return%> та %<-fcf-protection%> несумісні"
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr "інструкції %s не дозволені в обробнику винятків"
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "інструкції %s не дозволені в обробнику переривань"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "інструкції %s не дозволені в функції з атрибутом %<no_caller_saved_registers%>"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "атрибути fastcall і regparm несумісні"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "атрибути regparam і thiscall несумісні"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "атрибут %qE вимагає цілочисловий константний аргумент"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "аргумент для атрибуту %qE більший за %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "атрибути fastcall і cdecl несумісні"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "атрибути fastcall і stdcall несумісні"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "атрибути fastcall і thiscall несумісні"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "атрибути stdcall і cdecl несумісні"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "Атрибути stdcall та fastcall несумісні"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "Атрибути stdcall та thiscall несумісні"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "Атрибути cdecl та thiscall несумісні"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "Атрибут %qE використовується для методу, що не належить до класу"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "Несумісний атрибут %qE ігнорується"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "Атрибут %qE доступний лише для 32-бітних систем"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "Аргумент атрибуту %qE не є нулем або одиницею"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "Атрибут %qE вимагає аргументом рядкову константу"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "аргумент атрибуту %qE не є (keep|thunk|thunk-inline|thunk-extern)"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr "переривання службового режиму повинно мати вказівник як перший аргумент"
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "переривання службового режиму повинно мати %qs як другий аргумент"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr "переривання службового режиму може мати лише аргумент вказівника та необовʼязковий аргумент цілого числа"
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr "процедура обробки переривання повинна повертати %<void%>"
@@ -41916,48 +41918,48 @@ msgstr "непідтримуваний розмір операнда для ро
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "неціле значення операнда використовується з кодом операнда %<z%>"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr "зміни ABI передачі параметрів порожнього класу %qT в %<-fabi-version=12%> (GCC 8)"
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr "вирівнювання полів %<_Atomic %T%> змінилося в %{GCC 11.1%}"
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, fuzzy, gcc-internal-format
 #| msgid "no low registers available for popping high registers"
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "немає доступних нижніх регістрів для викидання високих регістрів"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "профілювання %<-mcmodel=large%> з PIC не підтримується"
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, fuzzy, gcc-internal-format
 #| msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC V13, be careful of implicit conversion between %<__bf16%> and %<short%>; a explicit bitcast may be needed here"
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr "%<__bfloat16%> переозначено з typedef %<short%> на real %<__bf16%> після версії GCC V13, будьте обережні з неявним перетворенням між %<__bf16%> та %<short%>; можливо, тут потрібне явне побітове приведення"
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr "невідома архітектура конкретної моделі памʼяті"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr "%<HLE_ACQUIRE%> не використовується з %<ACQUIRE%> або більш сильною моделлю памʼяті"
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr "%<HLE_RELEASE%> не використовується з %<RELEASE%> або більш сильною моделлю памʼяті"
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr "%<-fexcess-precision=16%> несумісний з %<-mfpmath=387%>"
@@ -41977,8 +41979,8 @@ msgstr "визначення статичного елемента даних %q
 msgid "malformed %<#pragma builtin%>"
 msgstr "неправильно сформований %<#pragma builtin%>"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "недійсний аргумент атрибуту %qE"
@@ -42033,12 +42035,12 @@ msgstr "%<PRINT_OPERAND%>: Невідомий розділовий знак %<%c
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "%<PRINT_OPERAND%> нульовий вказівник"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "аргумент %d вбудованої функції повинен бути константою в діапазоні від %d до %d"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "не вдалося розгорнути вбудовану функцію"
@@ -42168,17 +42170,17 @@ msgstr "модель коду %qs несумісна з %s"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%qs не може бути використаний для компіляції спільної бібліотеки"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "атрибут %qE не може бути вказаний для змінних, локальних для потоку"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "атрибут %qE не може бути вказаний для регістрових змінних"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, gcc-internal-format
 msgid "multiple %qE attribute"
 msgstr "множинний атрибут %qE"
@@ -42279,12 +42281,12 @@ msgstr "не дозволяються кілька атрибутів перер
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "%<interrupt_thread%> доступний лише на fido"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "вираз обмеження стеку не підтримується"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not supported on this target"
 msgstr "%<-fexcess-precision=16%> не підтримується на цій цілі"
@@ -42325,7 +42327,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr "%<-mxl-multiply-high%> потребує %<-mno-xl-soft-mul%>"
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "Атрибут %qE вимагає рядковий аргумент"
@@ -42366,133 +42368,133 @@ msgstr "вектор переривання для атрибуту %qE не є
 msgid "argument to %qE attribute is not intstack"
 msgstr "аргумент для атрибуту %qE не є intstack"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr "ABI для передачі значення, що містить поля нульової ширини перед суміжним 64-бітним полем з плаваючою комою, було змінено в GCC %{12.1%}"
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr "ABI для повернення значення, що містить поля бітів нульової ширини, але в іншому випадку агрегат з лише одним або двома полями з плаваючою комою, було змінено в GCC %{12.1%}"
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr "ABI для повернення значення з C++17 порожніми базами, але в іншому випадку агрегатом з одним або двома полями з плаваючою комою було змінено в GCC %{12.1%}"
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "не можу обробити неузгоджені виклики до %qs"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr "атрибут %<interrupt%> вимагає процесор MIPS32r2 або вище"
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr "обробники переривань не можуть бути функціями MIPS16"
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr "%<-fstack-check=specific%> не реалізовано для MIPS16"
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "вбудована функція %qE не підтримується для MIPS16"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs не підтримує код MIPS16"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr "MIPS16 PIC для ABIs, відмінних від o32 та o64"
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "код MIPS16 %<-mxgot%>"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr "код MIPS16 з %<hard-float%> для ABIs, відмінних від o32 та o64"
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr "код MSA MIPS16"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> потребує %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "непідтримувана комбінація: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "%<-%s%> конфліктує з іншими параметрами архітектури, які вказують процесор %s"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%<-march=%s%> несумісний з обраною ABI"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "%<-mgp64%> використовується з 32-бітним процесором"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "%<-mgp32%> використовується з 64-бітним ABI"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "%<-mgp64%> використовується з 32-бітним ABI"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "архітектура %qs не підтримує %<-mfp32%>"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "%<-mgp32%> і %<-mfp64%> можуть бути поєднані лише якщо цільова платформа підтримує інструкції mfhc1 та mthc1"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%> і %<-mfp64%> можуть бути поєднані лише при використанні ABI o32"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "%<-mfpxx%> може використовуватися лише з ABI o32"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "%<-march=%s%> вимагає %<-mfp32%>"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr "%<-mfpxx%> вимагає %<-mlra%>"
@@ -42502,117 +42504,117 @@ msgstr "%<-mfpxx%> вимагає %<-mlra%>"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "поєднання %qs та %qs несумісне з %qs"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "архітектура %qs не підтримує інструкції з ймовірним гілком"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "архітектура %qs не підтримує інструкції madd або msub"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "архітектура %qs не підтримує непарні регістри одинарної точності"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr "непідтримувана комбінація: %qs%s %s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr "непідтримувана комбінація: %qs %s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "не вдається згенерувати позиційно-незалежний код для %qs"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "позиційно-незалежний код вимагає %qs"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> потребує %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr "не можна використовувати доступ до малих даних для %qs"
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "архітектура %qs не підтримує %<-m%s=legacy%>"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "архітектура %qs не підтримує %<-m%s=2008%>"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "%<-mips3d%> потребує %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs повинно використовуватися з %qs"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr "%<-mmsa%> повинно використовуватися з %<-mfp64%> і %<-mhard-float%>"
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "архітектура %qs не підтримує інструкції з подвійною точністю"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "%qs потребує ціль, яка надає інструкцію %qs"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "архітектура %qs не підтримує інструкції DSP"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr "%<-mloongson-mmi%> повинно використовуватися з %<-mhard-float%>"
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr "%<-mloongson-ext2%> повинно використовуватися з %<-mloongson-ext%>"
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "%qs вимагає інструкцій гілки з високою ймовірністю"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "архітектура %qs не підтримує інструкцію synci"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "профілювання функцій mips16"
@@ -43482,61 +43484,61 @@ msgstr "%<#pragma riscv intrinsic%> вимагає рядковий параме
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "невідома опція %qs для %<#pragma riscv intrinsic%>"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "атрибут цільової платформи не підтримується на цій машині"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<target()%> pragma or attribute"
 msgid "malformed %<target()%> attribute"
 msgstr "некоректна директива або атрибут %<target()%>"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 #| msgid "pragma or attribute %<target(\"%s\")%> does not accept an argument"
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "директива або атрибут %<target(\"%s\")%> не приймає аргумент"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, fuzzy, gcc-internal-format
 #| msgid "unknown attribute %qs"
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "невідомий атрибут %qs"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<target(\"%s\")%> pragma or attribute"
 msgid "malformed %<target(\"%s\")%> attribute"
@@ -43598,188 +43600,212 @@ msgstr "не вдається кинути або перехопити тип RV
 msgid "capture by copy of RVV type %qT"
 msgstr "захоплення копією типу RVV %qT"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+#| msgid "this definition requires the MVE ISA extension"
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "ця визначення потребує розширення MVE ISA"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+#| msgid "this definition requires the MVE ISA extension"
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "ця визначення потребує розширення MVE ISA"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+#| msgid "this definition requires the MVE ISA extension"
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "ця визначення потребує розширення MVE ISA"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+#| msgid "this definition requires the MVE ISA extension"
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "ця визначення потребує розширення MVE ISA"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 #| msgid "this definition requires the MVE ISA extension"
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "ця визначення потребує розширення MVE ISA"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%s(%A)%>"
 msgid "no matching function call to %qE with empty arguments"
 msgstr "немає відповідної функції для виклику %<%s(%A)%>"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "невідомий процесор %qs для %<-mtune%>"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr "ця операція вимагає розширення RVV ISA"
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr "ви можете увімкнути RVV, використовуючи параметр командного рядка %<-march%>, або за допомогою атрибуту або прагми %<target%>"
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "ABI для структури зі згладженими полями нульової довжини змінився в GCC 10"
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "SVE type %qT cannot be passed to an unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "Тип SVE %qT не може бути переданий у функцію без прототипу"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 #| msgid "%qE requires the SVE ISA extension"
 msgid "%s %qT requires the V ISA extension"
 msgstr "%qE вимагає розширення SVE ISA"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, fuzzy, gcc-internal-format
 #| msgid "%qE requires the SVE ISA extension"
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr "%qE вимагає розширення SVE ISA"
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, fuzzy, gcc-internal-format
 #| msgid "%qE requires the SVE ISA extension"
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr "%qE вимагає розширення SVE ISA"
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, fuzzy, gcc-internal-format
 #| msgid "%qE requires the SVE ISA extension"
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr "%qE вимагає розширення SVE ISA"
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, fuzzy, gcc-internal-format
 #| msgid "%qE requires the SVE ISA extension"
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr "%qE вимагає розширення SVE ISA"
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, fuzzy, gcc-internal-format
 #| msgid "%qs requires the %qs option and either the %qs or %qs option"
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr "%qs потребує опцію %qs, а також опцію %qs або %qs"
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, fuzzy, gcc-internal-format
 #| msgid "calls to functions of type %qT require the SVE ISA extension"
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "виклики функцій типу %qT вимагають розширення SVE ISA"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "аргумент атрибуту %qE не є %<\"user\"%>, %<\"supervisor\"%> або %<\"machine\"%>"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 #| msgid "%qs applied to non-SVE type %qT"
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qs застосовується до не-SVE типу %qT"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "%qs requires an integer constant expression"
 msgid "%qs requires an integer constant"
 msgstr "%qs вимагає цілочисловий константний вираз"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr "%<-mdiv%> вимагає %<-march%>, щоб підкоритися розширенню %<M%>"
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support ARM mode"
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "цільовий процесор не підтримує режим ARM"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs with %<-f%s%>"
 msgid "code model %qs with %qs"
 msgstr "модель коду %qs з %<-f%s%>"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr "запитана ABI вимагає %<-march%>, щоб підкоритися розширенню %qc"
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr "rv32e вимагає ABI ilp32e"
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, fuzzy, gcc-internal-format
 #| msgid "rv32e requires ilp32e ABI"
 msgid "rv64e requires lp64e ABI"
 msgstr "rv32e вимагає ABI ilp32e"
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, fuzzy, gcc-internal-format
 #| msgid "z*inx requires ABI ilp32, ilp32e or lp64"
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr "z*inx вимагає ABI ilp32, ilp32e або lp64"
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr "ABI вимагає %<-march=rv%d%>"
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "%<-mpreferred-stack-boundary=%d%> повинно бути між %d і %d"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr "Атрибут RISC-V ELF %<-mriscv-attribute%> вимагає GNU as 2.32 [%<-mriscv-attribute%>]"
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs не є дійсним базовим регістром в %qs"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs не є дійсним числом в %qs"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr "Функція %qs не може мати різний тип переривання"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr "не вдається виділити регістр vl для %qs на цій цілі"
@@ -44029,32 +44055,32 @@ msgstr "вбудована функція %qs приймає лише 2 аргу
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "вбудована функція %qs приймає лише 3 аргументи"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "%<vec_lvsl%> застаріла для маленького порядку байтів; використовуйте присвоєння для незвʼязаних завантажень та зберігань"
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr "%<vec_lvsr%> застаріла для little endian; використовуйте присвоєння для незвичайних завантажень і зберігань"
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "передача аргументу %d з %qE видаляє кваліфікатор %qs з типу цілі вказівника"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "недійсна комбінація параметрів для вбудованої функції AltiVec %qs"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr "перевантажена вбудована функція %qs реалізована вбудованою функцією %qs"
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, gcc-internal-format
 msgid "%qs is not supported in this compiler configuration"
 msgstr "%qs не підтримується в цій конфігурації компілятора"
@@ -44094,29 +44120,22 @@ msgstr "недійсне використання операнда MMA типу
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "GCC-вектор, переданий за посиланням: нестандартне розширення ABI без гарантії сумісності"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, gcc-internal-format
-msgid "%qs requires the ELFv2 ABI"
-msgstr "%qs потребує ELFv2 ABI"
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "рамка стеку занадто велика"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "непідтримувана кількість nops перед входом у функцію (%u)"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr "%qs використовує регістр r29"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr "Рамка стеку, більша за 2G, не підтримується для %<-fsplit-stack%>"
@@ -44241,107 +44260,118 @@ msgstr "%qs потребує дійсного базового регістру"
 msgid "unknown option for %<%s=%s%>"
 msgstr "невідома опція для %<%s=%s%>"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, fuzzy, gcc-internal-format
+#| msgid "%qs requires the ELFv2 ABI"
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr "%qs потребує ELFv2 ABI"
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "%qs застарілий і не рекомендується в будь-яких обставинах"
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr "%qs є непрозорим типом, і ви не можете встановити його на інші значення"
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "немає профілювання 64-бітного коду для цієї ABI"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "ви не можете отримати адресу вкладеної функції, якщо ви використовуєте опцію %qs"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "використання %<long double%> в типах AltiVec є недійсним"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "використання булевих типів у типах AltiVec є недійсним"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "використання %<complex%> у типах AltiVec є недійсним"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, gcc-internal-format
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "використання десяткових типів з плаваючою комою у типах AltiVec є недійсним"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "використання %<long%> у типах AltiVec є недійсним для 64-бітного коду без %qs"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "використання %<long%> у типах AltiVec застаріло; використовуйте %<int%>"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "використання %<long long%> у типах AltiVec є недійсним без %qs"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "використання %<double%> у типах AltiVec є недійсним без %qs"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "недійсний процесор %qs для %s%qs%s"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "%s%qs%s заборонено"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr "%s%qs%s є недійсним"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr "%<-mno-%s%> вимикає %<-m%s%>"
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr "атрибут %<target_clones%> потребує GLIBC (2.23 або новіше), яка експортує біти можливостей апаратного забезпечення"
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "Мультиверсіювання віртуальних функцій не підтримується"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr "результат інструкції xxspltidp не визначений для піднормальних значень введення"
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "тип %<__vector_quad%> вимагає опцію %qs"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr "тип %<__vector_pair%> вимагає опцію %qs"
@@ -44386,7 +44416,7 @@ msgstr "Інструкції RX FPU не підтримують NaN та нес
 msgid "builtin %qs can only be used on vector types"
 msgstr "вбудована функція %qs може бути використана лише для векторних типів"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr "потрібне константне значення для вбудованого аргументу %qF %d"
@@ -44456,228 +44486,228 @@ msgstr "варіант %qs застарілий"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "константний аргумент %d для вбудованої функції %qF виходить за межі діапазону цільового типу"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "константний аргумент %d для вбудованої функції %qF недійсний (%s)"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "константний аргумент %d для вбудованої функції %qF виходить за межі діапазону (0-%wu)"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, gcc-internal-format
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "константний аргумент %d для вбудованої функції %qF виходить за межі діапазону (%wd-%wd)"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr "вбудована функція %qF не підтримується без %<-mhtm%> (за замовчуванням з %<-march=zEC12%> і вище)"
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr "вбудована функція %qF вимагає %<-mvx%> (за замовчуванням з %<-march=z13%> і вище)"
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr "Вбудована функція %qF вимагає z14 або вище"
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr "Вбудована функція %qF вимагає z15 або вище"
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr "нерозрішена перевантажена вбудована функція"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "неправильний вбудований icode"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "недійсний аргумент %d для вбудованої функції %qF"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr "запитана атрибут %qE не є комами розділеними парами невідʼємних цілих констант або занадто велика (макс. %d)"
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "аргумент для атрибуту %qE не є (keep|thunk|thunk-extern)"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "загальний розмір локальних змінних перевищує обмеження архітектури"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr "розмір фрейму функції %qs становить %wd байт, що перевищує обмеження стеку, надане користувачем, у %d байтів; додається безумовна пастка"
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr "розмір фрейму функції %qs становить %wd байт, що більше, ніж половина розміру стеку; динамічна перевірка не буде надійною; для цієї функції не випускається перевірка"
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "розмір фрейму %qs становить %wd байтів"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs використовує динамічне виділення стеку"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr "передача параметрів для аргументу типу %qT зі зміненими членами полів бітів нульової ширини в GCC 12"
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, gcc-internal-format
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "вкладені функції не можуть бути профілювані з %<-mfentry%> на s390"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "64-бітний ABI не підтримується в режимі ESA/390"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr "thunk-inline підтримується тільки з %<-mindirect-branch-jump%>"
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr "підтримка апаратного вектора недоступна на %s"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr "підтримка апаратного вектора недоступна з %<-msoft-float%>"
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "апаратні інструкції з десятковою плаваючою комою недоступні на %s"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, gcc-internal-format
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "апаратні інструкції з десятковою плаваючою комою недоступні в режимі ESA/390"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr "%<-mhard-dfp%> не може використовуватися разом з %<-msoft-float%>"
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, gcc-internal-format
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> не підтримуються в поєднанні"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "розмір стеку повинен бути більшим за значення захисту стеку"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "розмір стеку не повинен перевищувати 64к"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "%<-mstack-guard%> передбачає використання %<-mstack-size%>"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-prologue-check%> вимагає цілочисельне в діапазоні від 0 до 4095"
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-prologue-target%> вимагає цілочисельне в діапазоні від 0 до 4095"
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-epilogue-check%> вимагає цілочисельне в діапазоні від 0 до 4095"
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr "%<-mtpf-trace-hook-epilogue-target%> вимагає цілочисельне в діапазоні від 0 до 4095"
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "%<-mfentry%> підтримується лише для 64-бітних процесорів"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "аргументи для %qs повинні бути невідʼємними цілими числами"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "аргумент для %qs занадто великий (макс. %d)"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr "%<-mno-pic-data-is-text-relative%> не може бути використаний без %<-fpic%>/%<-fPIC%>"
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "аргумент %qs атрибуту %<target%> невідомий"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "значення %qs не підтримується атрибутом %<target%>"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 #| msgid "invalid constraints"
 msgid "invalid cc output constraint: %qs"
 msgstr "недійсні обмеження"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "double constants not supported"
 msgid "multiple cc output constraints not supported"
 msgstr "подвійні константи не підтримуються"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, fuzzy, gcc-internal-format
 #| msgid "%<asm%> specifier for variable %qE conflicts with %<asm%> clobber list"
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "специфікатор %<asm%> для змінної %qE конфліктує зі списком %<asm%> clobber"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for make function"
 msgid "invalid type for cc output constraint"
@@ -45100,8 +45130,8 @@ msgstr "атрибут %qE не має ефекту"
 msgid "attribute %qs applies to array types only"
 msgstr "атрибут %qs застосовується тільки до типів масивів"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "значення void не ігнорується так, як повинно бути"
@@ -45176,7 +45206,7 @@ msgstr "Тип масиву %q+D завершено несумісно з нея
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "Недостатньо визначена декларація %qE, яка вже оголошена в цій області видимості"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr "початково визначено тут"
@@ -45409,7 +45439,7 @@ msgstr "Декларація %q+D затіняє попередню незмін
 msgid "declaration of %qD shadows a parameter"
 msgstr "Декларація %qD затіняє параметр"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "Декларація %qD затіняє глобальну декларацію"
@@ -45419,7 +45449,7 @@ msgstr "Декларація %qD затіняє глобальну деклар
 msgid "declaration of %qD shadows a previous local"
 msgstr "Декларація %qD затіняє попередній локальний ідентифікатор"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "Затінене оголошення знаходиться тут"
@@ -45484,7 +45514,7 @@ msgstr "%qE неоголошений (перше використання в ц
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "кожен не оголошений ідентифікатор повідомляється лише один раз для кожної функції, в якій він зʼявляється"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "мітка %qE використовується поза будь-якою функцією"
@@ -45519,7 +45549,7 @@ msgstr "перехід до виразу заяви"
 msgid "duplicate label declaration %qE"
 msgstr "повторна декларація мітки %qE"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "повторна мітка %qD"
@@ -45555,7 +45585,7 @@ msgstr "перехід у switch до виразу заяви"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE визначено як неправильний тип тегу"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr "атрибут %qE застосовується до %qD з типом повернення void"
@@ -45697,12 +45727,12 @@ msgstr "ISO C90 не підтримує декларатори масиву %<[*
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%> дозволено тільки в області прототипу функції"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 #| msgid "%<omp::%E%> not allowed to be specified in this context"
 msgid "%<omp::%s%> not allowed to be specified in this context"
@@ -45713,7 +45743,7 @@ msgstr "%<omp::%E%> не може бути вказано в цьому конт
 msgid "%q+D is usually a function"
 msgstr "%q+D зазвичай є функцією"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "немає попередньої декларації для %qD"
@@ -45789,7 +45819,7 @@ msgstr "не можна помістити обʼєкт з волатильни
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "незініціалізований %<const %D%> недійсний у C++"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr "%q+D у директиві «declare target» не має відображального типу"
@@ -45974,7 +46004,7 @@ msgstr "вказано клас зберігання для параметра %
 msgid "storage class specified for unnamed parameter"
 msgstr "вказано клас зберігання для безіменного параметра"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "вказано клас зберігання для typename"
@@ -46037,7 +46067,7 @@ msgstr "оголошення %qE як масиву з функціями"
 msgid "declaration of type name as array of functions"
 msgstr "оголошення типу як масиву з функцій"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "недійсне використання структури з гнучким елементом масиву"
@@ -46143,7 +46173,7 @@ msgstr "імʼя типу оголошено як функцію, що пове
 msgid "function definition has qualified void return type"
 msgstr "визначення функції має кваліфікований тип повернення void"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "кваліфікатори типу ігноруються для типу повернення функції"
@@ -46270,7 +46300,7 @@ msgstr "ISO C забороняє типи функцій const або volatile"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "елемент структури або обʼєднання не може мати змінюваний тип"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "змінна або поле %qE оголошено як void"
@@ -46376,7 +46406,7 @@ msgstr "не-нестована функція з типом, який може
 msgid "object with variably modified type must have no linkage"
 msgstr "обʼєкт з типом, який може змінюватися, не може мати звʼязку"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "оголошення функції не є прототипом"
@@ -46466,17 +46496,17 @@ msgstr "вкладене перевизначення %<union %E%>"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "вкладене перевизначення %<struct %E%>"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr "визначення типу в виразі %qs недійсне в C++"
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, gcc-internal-format
 msgid "%qT defined in underspecified object initializer"
 msgstr "%qT визначено в недостатньому ініціалізаторі обʼєкта"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "оголошення нічого не оголошує"
@@ -46506,609 +46536,609 @@ msgstr "порожня структура має розмір 0 в C, розмі
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr "порожнє обʼєднання має розмір 0 в C, розмір 1 в C++"
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "обʼєднання не має іменованих членів"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "обʼєднання не має членів"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "структура не має іменованих членів"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "структура не має членів"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "гнучкий масив як член обʼєднання"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "гнучкий масив не є останнім членом структури"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "гнучкий масив як член структури без іменованих членів"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member not at end of struct"
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "гнучкий масив не є останнім членом структури"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "тип %qT занадто великий"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr "типове перетворення змінює порядок зберігання скалярних значень"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "обʼєднання не може бути зроблене прозорим"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of typedef %q+D with variably modified type"
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "перевизначення typedef %q+D зі зміненим типом"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "перевизначення %<struct %E%>"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "вкладене перевизначення %<enum %E%>"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "перевизначення %<enum %E%>"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr "%<enum%> оголошено з, але визначено без фіксованого базового типу"
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr "вказаний режим занадто малий для перелічованих значень"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "значення перелічування перевищують діапазон найбільшого цілого числа"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, gcc-internal-format
 msgid "enumeration values exceed range of %qs"
 msgstr "значення перелічування перевищують діапазон %qs"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of %<enum %E%>"
 msgid "conflicting redefinition of enum %qT"
 msgstr "вкладене перевизначення %<enum %E%>"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "значення перелічування для %qE не є цілочисельною константою"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "значення перелічування для %qE не є цілочисельним константним виразом"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "переповнення в значеннях перелічування"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr "значення перелічування знаходиться поза діапазоном базового типу"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr "значення перелічування поза діапазоном %qs"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%> before C2X"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C обмежує значення перелічування діапазоном %<int%> до C2X"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr "вбудованій функції %qD надано атрибут %qs"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "тип повернення є неповним типом"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "тип повернення за замовчуванням - %<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr "%q+D визначено як варіативну функцію без прототипу"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "немає попереднього прототипу для %qD"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "%qD використовувався без прототипу перед його визначенням"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "%qD було використано без попередньої декларації перед його визначенням"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "тип повернення %qD не є %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr "тип повернення %qD з кваліфікатором %<_Atomic%>"
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%qD зазвичай є нестатичною функцією"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "старомодні оголошення параметрів у прототипі функції"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "традиційне C відкидає визначення функцій у стилі ISO C"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support omitting parameter names in function definitions before C2X"
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "ISO C не підтримує пропуск імен параметрів у визначеннях функцій до C2X"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr "визначення функції у старому стилі"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "відсутнє імʼя параметра у списку параметрів"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD оголошено як непараметр"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "декілька параметрів з іменем %qD"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "параметр %qD оголошено з типом void"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "тип %qD за замовчуванням - %<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "параметр %qD має неповний тип"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "оголошення для параметра %qD, але такого параметра немає"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "кількість аргументів не відповідає вбудованому прототипу"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "кількість аргументів не відповідає прототипу"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "оголошення прототипу"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "піднятий аргумент %qD не відповідає вбудованому прототипу"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "переданий аргумент %qD не відповідає прототипу"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "аргумент %qD не відповідає вбудованому прототипу"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "аргумент %qD не відповідає прототипу"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "в функції, що повертає не void, відсутня інструкція return"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "параметр %qD встановлено, але не використовується"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "початкові оголошення циклу %<for%> дозволені лише в режимі C99 або C11"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "використовуйте опцію %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> або %<-std=gnu11%> для компіляції вашого коду"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, gcc-internal-format
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 не підтримує початкові оголошення циклу %<for%>"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "оголошення статичної змінної %qD в початковому оголошенні циклу %<for%>"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "оголошення %<extern%> змінної %qD в початковому оголошенні циклу %<for%>"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> оголошено в початковому оголошенні циклу %<for%>"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> оголошено в початковій декларації циклу %<for%>"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> оголошено в початковій декларації циклу %<for%>"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "оголошення незмінної %qD в початковій декларації циклу %<for%>"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr "несумісні кваліфікатори простору адрес %qs та %qs"
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "подвійний специфікатор оголошення %qE"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "декілька класів зберігання в специфікаторах оголошення"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr "%qs використовується з %<auto%>"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%<auto%> використовується з %<constexpr%>"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "два або більше типи даних в специфікаторах оголошення"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> занадто довгий для GCC"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 не підтримує %<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 не підтримує складні типи"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO C не підтримує насичені типи"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "подвійне %qE"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C не підтримує типи %<__int%d%>"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "%<__int%d%> не підтримується на цій платформі"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 не підтримує булеві типи"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support the %<_Float%d%s%> type"
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C не підтримує тип %<_Float%d%s%>"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "%<_Float%d%s%> не підтримується для цільової платформи"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support decimal floating-point before C2X"
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C не підтримує десяткові дробові числа до C2X"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "фіксовані точкові типи не підтримуються для цільової платформи"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C не підтримує типи з фіксованою комою"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 #| msgid "case label is not an integer constant expression"
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "мітка case не є цілочисельним константним виразом"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant expression"
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "значення перелічування для %qE не є цілочисельним константним виразом"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr "Пошук %qD в C++ поверне поле, а не тип"
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE не є typedef або вбудованим типом"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE не знаходиться на початку оголошення"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "%qE використовується з %<auto%>"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "%qE використовується з %<register%>"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "%qE використовується з %<typedef%>"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr "%qE використовується з %<constexpr%>"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "ISO C99 не підтримує %qE"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 не підтримує %qE"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> перед %<extern%>"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> перед %<static%>"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%<typedef%> використовується з %<auto%>"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr "%qE використовується з %<extern%>"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr "%qE використовується з %qs"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr "подвійне використання %<_Thread_local%> або %<__thread%>"
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%qs використовується з %qE"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr "%<constexpr%> використовується з %qE"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<_Sat%> використовується без %<_Fract%> або %<_Accum%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C не підтримує просте значення %<complex%>, що означає %<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support %<auto%> type deduction before C2X"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C не підтримує виведення типу %<auto%> до C2X"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr "%<__auto_type%>, за яким слідують атрибути %<[[]]%>"
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C не підтримує комплексні цілі типи"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 #| msgid "Fixed line length must be at least seven"
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "Фіксована довжина рядка повинна бути щонайменше сім"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++ не підтримує %<__int%d%> для %qs"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr "%<#pragma omp declare reduction%> комбінатор посилається на змінну %qD, яка не є %<omp_out%> або %<omp_in%>"
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr "%<#pragma omp declare reduction%> ініціалізатор посилається на змінну %qD, яка не є %<omp_priv%> або %<omp_orig%>"
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr "зсув вліво відʼємного значення"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "лічильник зсуву вліво є відʼємним"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "лічильник зсуву вправо є відʼємним"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "лічильник зсуву вліво >= ширини типу"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "лічильник зсуву вправо >= ширини типу"
@@ -47138,7 +47168,7 @@ msgstr "маркер конфлікту контролю версій у фай
 msgid "to match this %qs"
 msgstr "щоб відповідати цьому %qs"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr "очікуваний кінець рядка"
@@ -47148,8 +47178,8 @@ msgstr "очікуваний кінець рядка"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C забороняє порожній переклад"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr "%qs без відповідного %qs"
@@ -47189,9 +47219,9 @@ msgstr "невідоме імʼя типу %qE; мали на увазі %qs?"
 msgid "unknown type name %qE"
 msgstr "невідоме імʼя типу: %qE"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "очікувані специфікатори декларації"
@@ -47221,7 +47251,7 @@ msgstr "атрибут %<fallthrough%> на верхньому рівні"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "очікується %<;%>, ідентифікатор або %<(%>"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "префіксні атрибути ігноруються для методів"
@@ -47241,7 +47271,7 @@ msgstr "неочікуваний атрибут"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "атрибут %<fallthrough%> не слідує за %<;%>"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr "атрибут %<assume%> не слідує за %<;%>"
@@ -47332,7 +47362,7 @@ msgstr "вираз в статичному твердженні не є стал
 msgid "static assertion failed: %E"
 msgstr "статична перевірка не вдалася: %E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, gcc-internal-format
 msgid "static assertion failed"
 msgstr "статична перевірка не вдалася"
@@ -47404,10 +47434,10 @@ msgstr "порожнє перелічування недійсне"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "очікуваний ідентифікатор"
@@ -47564,7 +47594,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr "умову %<nogroup%> не слід використовувати разом з умовою %<reduction%>"
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr "змішування директив OpenMP з атрибутами та синтаксисом pragma в одному операторі"
@@ -47575,8 +47605,8 @@ msgstr "змішування директив OpenMP з атрибутами т
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr "атрибут %<omp::%E%> вимагає аргумент"
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, fuzzy, gcc-internal-format
 #| msgid "unknown OpenMP directive name in %qs clause argument"
 msgid "unknown OpenMP directive name in %qs attribute argument"
@@ -47751,12 +47781,12 @@ msgstr "ISO C забороняє опускати середній термін
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr "ділення %<sizeof (%T) / sizeof (%T)%> не обчислює кількість елементів масиву"
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr "перший операнд %<sizeof%> був оголошений тут"
@@ -47903,7 +47933,7 @@ msgstr "ISO C90 не підтримує попередньо визначени
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "очікується вираз"
@@ -48230,12 +48260,12 @@ msgstr "очікується оголошення методу objective-c"
 msgid "no type or storage class may be specified here,"
 msgstr "тут не може бути вказано тип або клас зберігання,"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, gcc-internal-format
 msgid "empty property attribute list"
 msgstr "порожній список атрибутів властивості"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, gcc-internal-format
 msgid "missing property attribute"
 msgstr "відсутній атрибут властивості"
@@ -48245,57 +48275,57 @@ msgstr "відсутній атрибут властивості"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "невідомий атрибут властивості %<%s%s%>"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "невідомий атрибут властивості"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "очікується %<=%> після Objective-C %qE"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr "очікується назва селектора %qE"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr "назви методів-сеттерів повинні закінчуватися на %<:%>"
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr "%<#pragma GCC unroll%> вимагає виразу присвоєння, який обчислюється до невідʼємної цілочисельнної константи менше %u"
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma %s%> може використовуватися тільки в складних операторах"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<#pragma acc routine%> повинно бути на рівні файлу"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp scan%> може використовуватися тільки в цикловій конструкції з замиканням %<inscan%> %<reduction%>"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<#pragma omp section%> може використовуватись тільки в конструкції %<#pragma omp sections%>"
@@ -48305,25 +48335,25 @@ msgstr "%<#pragma omp section%> може використовуватись ті
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma %s%> може використовуватись тільки на рівні файлу"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "очікується оператор for, while або do"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%> повинно бути першим"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "забагато замиканнь %qs"
@@ -48338,64 +48368,64 @@ msgstr "вираз повинен бути цілочисельним"
 msgid "expected %<)%> or %<,%>"
 msgstr "очікується %<)%> або %<,%>"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD не є змінною"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD не є змінною-вказівником"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr "аргумент «collapse» потребує позитивний сталий цілочисельний вираз"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr "очікується %<none%> або %<present%>"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "очікувався %<none%>, %<shared%>, %<private%> або %<firstprivate%>"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 #| msgid "expected goto expression"
 msgid "expected constant logical expression"
 msgstr "очікуваний вираз «goto»"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "очікувався %<data%>, %<update%>, %<enter%> або %<exit%>"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "очікувався %<data%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr "занадто багато %<if%> замиканнь з модифікатором %qs"
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "занадто багато %<if%> замиканнь"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr "занадто багато %<if%> замиканнь без модифікатора"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr "якщо будь-яке %<if%> замикання має модифікатор, то всі %<if%> замикання повинні використовувати модифікатор"
@@ -48418,22 +48448,22 @@ msgstr "значення %<num_threads%> повинно бути позитив
 msgid "%<num_tasks%> value must be positive"
 msgstr "значення %<num_tasks%> повинно бути позитивним"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "Значення %<grainsize%> повинно бути позитивним"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "Значення %<priority%> повинно бути не відʼємним"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "очікується константний цілочисельний вираз з дійсним значенням sync-hint"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr "очікується %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> або %<default%>"
@@ -48444,95 +48474,95 @@ msgstr "очікується %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstpri
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "очікується %<scalar%>, %<aggregate%> або %<pointer%>"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "занадто багато замиканнь %<defaultmap%> з категорією %qs"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "занадто багато замиканнь %<defaultmap%> з невизначеною категорією"
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "вираз %qs повинен бути цілочисельним"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "значення %qs повинно бути позитивним"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "забагато аргументів %<static%>"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, gcc-internal-format
 msgid "unexpected argument"
 msgstr "неочікуваний аргумент"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "аргумент %<tile%> повинен бути додатньою цілочисельною константою"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses"
 msgid "too many %<self%> clauses"
 msgstr "занадто багато %<if%> замиканнь"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, gcc-internal-format
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "очікується %<reproducible%> або %<unconstrained%>"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr "очікується %<concurrent%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "очікується %<teams%>, %<parallel%> або %<thread%>"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr "аргумент %<ordered%> повинен бути позитивним цілим виразом"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "очікується %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> або ідентифікатор"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "вказано обидва модифікатори %<monotonic%> і %<nonmonotonic%>"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "розклад %<runtime%> не приймає параметр %<chunk_size%>"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "розклад %<auto%> не приймає параметр %<chunk_size%>"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "значення розміру частини повинно бути позитивним"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "недійсний тип розкладу"
@@ -48542,22 +48572,22 @@ msgstr "недійсний тип розкладу"
 msgid "%<num_teams%> value must be positive"
 msgstr "значення %<num_teams%> повинно бути позитивним"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr "нижня межа %qE для %<num_teams%> більша за верхню межу %qE"
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "значення %<thread_limit%> повинно бути позитивним"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr "вираз вирівнювання для замикання %<aligned%> повинен бути позитивним сталим цілочисельним виразом"
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr "очікується %<allocator%> або %<align%>"
@@ -48567,22 +48597,22 @@ msgstr "очікується %<allocator%> або %<align%>"
 msgid "duplicate %qs modifier"
 msgstr "подвійний модифікатор %qs"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr "вираз алокатора в замиканні %<allocate%> має тип %qT, а не %<omp_allocator_handle_t%>"
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "аргумент модифікатора %<align%> в замиканні %<allocate%> має бути позитивним константним цілочисельним виразом, яке є степенем двійки"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr "декілька модифікаторів linear"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, gcc-internal-format
 msgid "multiple %<step%> modifiers"
 msgstr "декілька модифікаторів %<step%>"
@@ -48602,64 +48632,64 @@ msgstr "вираз в замиканні %<safelen%> має бути позит
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr "вираз в замиканні %<simdlen%> має бути позитивним константним цілочисельним"
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "Модифікатор %<iterator%> несумісний з %qs"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "Недійсний тип залежності"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, gcc-internal-format
 msgid "invalid doacross kind"
 msgstr "Недійсний тип doacross"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr "Забагато модифікаторів %<always%>"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr "Забагато модифікаторів %<close%>"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<close%> modifiers"
 msgid "too many %<present%> modifiers"
 msgstr "Забагато модифікаторів %<close%>"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp target%> with modifier other than %<always%> or %<close%> on %<map%> clause"
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr "%<#pragma omp target%> з модифікатором, відмінним від %<always%> або %<close%>, на замиканні %<map%>"
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, gcc-internal-format
 msgid "invalid map kind"
 msgstr "Недійсний тип відображення"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr "Модифікатор пристрою %<ancestor%> не передує директиві %<requires%> з замиканням %<reverse_offload%>"
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "очікувався %<ancestor%> або %<device_num%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr "вираз у замиканні %<device%> повинен обчислюватися як %<1%>"
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "недійсний тип розподілу розкладу"
@@ -48674,90 +48704,90 @@ msgstr "недійсний тип привʼязки процесу"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "очікується %<host%>, %<nohost%> або %<any%>"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr "тип обробника події в замиканні %<detach%> - %qT, а не %<omp_event_handle_t%>"
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 #| msgid "expected assumption clause"
 msgid "expected an OpenACC clause"
 msgstr "очікується замикання припущення"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs недійсний для %qs"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr "замикання в режимі %<simd%> повинні бути розділені комою %<,%>"
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%qs повинен бути першою замиканням %qs"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 #| msgid "expected assumption clause"
 msgid "expected an OpenMP clause"
 msgstr "очікується замикання припущення"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr "не вказано жодних дійсних замикань в %<#pragma acc declare%>"
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "секція масиву в %<#pragma acc declare%>"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr "%qD повинна бути глобальною змінною в %<#pragma acc declare link%>"
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "недійсне замикання OpenACC у межах файлу"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "недійсне використання %<extern%> змінної %qD в %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "недійсне використання %<global%> змінної %qD в %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr "%qD повинна бути змінною, оголошеною в тому ж області, що й %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr "змінна %qD використовується більше одного разу з %<#pragma acc declare%>"
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "мало бути %<data%> після %<#pragma acc %s%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr "%<#pragma acc %s data%> не має замикання переміщення даних"
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -48772,7 +48802,7 @@ msgstr "%qE не було оголошено"
 msgid "expected function name"
 msgstr "мало бути вказано назву функції"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "%qD не посилається на функцію"
@@ -48782,22 +48812,22 @@ msgstr "%qD не посилається на функцію"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma acc routine%> не негайно слідує за декларацією або визначенням функції"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma acc routine%> не негайно слідує за однією декларацією або визначенням функції"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "%<#pragma acc routine%> має бути застосовано до використання"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<#pragma acc routine%> має бути застосовано до визначення"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr "%<#pragma acc update%> повинен містити принаймні одну замикання %<device%> або %<host%> або %<self%>"
@@ -48825,7 +48855,7 @@ msgstr ""
 msgid "modified here"
 msgstr "визначено тут"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr "аргумент замикання %<align%> повинен бути позитивним сталим виразом цілого числа, яке є степенем двійки"
@@ -48870,112 +48900,112 @@ msgstr "замикання %<allocate%> повинна вказувати ало
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr "%<#pragma omp allocate%> ще не підтримується"
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "очікується замикання %<read%>, %<write%>, %<update%> або %<capture%>"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "очікується %<seq_cst%>, %<acquire%> або %<relaxed%>"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr "очікується замикання %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> або %<hint%>"
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, gcc-internal-format
 msgid "too many atomic clauses"
 msgstr "занадто багато атомних замикання"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr "занадто багато замиканнь порядку памʼяті"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "замикання %qs несумісне з замиканнями %<read%> або %<write%>"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, gcc-internal-format
 msgid "%qs clause requires %qs clause"
 msgstr "замикання %qs потребує замикання %qs"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp atomic write%> несумісний з замиканням %<acquire%>"
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp atomic read%> несумісний з замиканням %<release%>"
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr "%<#pragma omp atomic read%> несумісний з замиканням %<release%>"
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr "%<#pragma omp atomic write%> несумісний з замиканням %<acquire%>"
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "очікується порівняння %<==%> в умові %<if%>"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr "очікується порівняння %<==%>, %<<%> або %<>%> в умові %<if%>"
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "неправильна форма %<#pragma omp atomic compare%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, gcc-internal-format
 msgid "unexpected %<else%>"
 msgstr "неочікуваний %<else%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "неправильна форма %<pragma omp atomic compare%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "неправильна форма %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "неправильний оператор для %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr "замикання %<weak%> вимагає атомарного порівняння на рівність"
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic capture%> використовує два різних вирази для памʼяті"
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "Вираз %<depobj%> не є виразом lvalue"
@@ -48986,27 +49016,27 @@ msgstr "Вираз %<depobj%> не є виразом lvalue"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "Вираз %<depobj%> не є виразом lvalue"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, gcc-internal-format
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "очікується %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> або %<inoutset%>"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "очікується замикання %<depend%>, %<destroy%> або %<update%>"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "очікується %<seq_cst%>, %<acq_rel%>, %<release%> або %<acquire%>"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr "список %<flush%> вказано разом з замиканням порядку памʼяті"
@@ -49016,170 +49046,170 @@ msgstr "список %<flush%> вказано разом з замиканням
 msgid "expected %<(%> or end of line"
 msgstr "очікується %<(%> або кінець рядка"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr "%<[[omp::directive(%s)]]%> повинен бути єдиним вказаним атрибутом в операторі"
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp ordered%> з %qs замиканням може використовуватися лише в складних операторах"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "очікується замикання %<inclusive%> або %<exclusive%>"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr "очікується %<#pragma omp scan%>"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp ordered%> з %qs замиканням може використовуватися лише в складних операторах"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "очікувалася оголошення або ініціалізація ітерації"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 #| msgid "not enough perfectly nested loops"
 msgid "not enough nested loops"
 msgstr "недостатньо добре вкладених циклів"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr "параметр замикання %<ordered%> менше, ніж %<collapse%>"
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "очікувалася конструкція for"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "змінна ітерації %qD не повинна бути firstprivate"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp ordered%> з %qs замиканням може використовуватися лише в складних операторах"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "очікувався %<for%> після %qs"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "очікувався %<point%>"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target data%> з типом відображення, відмінним від %<to%>, %<from%>, %<tofrom%> або %<alloc%> на замиканні %<map%>"
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr "%<#pragma omp target data%> повинен містити принаймні одну замикання %<map%>, %<use_device_ptr%> або %<use_device_addr%>"
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr "%<#pragma omp target update%> повинен містити принаймні одну замикання %<from%> або %<to%>"
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target enter data%> з типом відображення, відмінним від %<to%>, %<tofrom%> або %<alloc%> на замиканні %<map%>"
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target enter data%> повинен містити принаймні одну замикання %<map%>"
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr "%<#pragma omp target exit data%> з типом відображення, відмінним від %<from%>, %<tofrom%>, %<release%> або %<delete%> на замиканні %<map%>"
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp target exit data%> повинен містити принаймні одну замикання %<map%>"
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp target%> з типом відображення, відмінним від %<to%>, %<from%>, %<tofrom%> або %<alloc%> на замиканні %<map%>"
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp declare %s%> повинен бути відстежений декларацією або визначенням функції або іншим %<#pragma omp declare %s%>"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma omp declare %s%> повинен бути відстежений декларацією або визначенням функції"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, gcc-internal-format
 msgid "expected trait selector name"
 msgstr "очікуване імʼя селектора ознаки"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, fuzzy, gcc-internal-format
 #| msgid "selector %qs not allowed for context selector set %qs"
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "селектор %qs не дозволений для набору селекторів контексту %qs"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr "селектор %qs не приймає жодних властивостей"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 #| msgid "%<friend%> can only be specified inside a class"
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<friend%> може бути вказано лише всередині класу"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 #| msgid "score argument must be constant integer expression"
 msgid "%<score%> argument must be constant integer expression"
 msgstr "аргумент score повинен бути цілим сталим виразом"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 #| msgid "score argument must be non-negative"
 msgid "%<score%> argument must be non-negative"
 msgstr "аргумент score повинен бути не відʼємним"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, gcc-internal-format
 msgid "expected identifier or string literal"
 msgstr "очікується ідентифікатор або літерал рядка"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr "властивість повинна бути цілим сталим виразом"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr "властивості для селектора %<simd%> не можуть бути вказані в %<metadirective%>"
@@ -49187,295 +49217,295 @@ msgstr "властивості для селектора %<simd%> не можу
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 #| msgid "%<-fpie%> is not supported"
 msgid "%<requires%> selector is not supported yet"
 msgstr "%<-fpie%> не підтримується"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 #| msgid "expected trait selector name"
 msgid "expected context selector set name"
 msgstr "очікуване імʼя селектора ознаки"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, gcc-internal-format
 msgid "expected %<match%>"
 msgstr "очікується %<match%>"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr "варіант %qD не є функцією"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, gcc-internal-format
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "варіант %qD та база %qD мають несумісні типи"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr "варіант %qD є вбудованим"
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "%<#pragma omp declare %s%> не негайно слідує за оголошенням або визначенням функції"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma omp declare %s%> не негайно слідує за одним оголошенням або визначенням функції"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr "%qD вказано як у замиканні declare target %<link%>, так і в замиканні %qs"
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr "%qD вказано як у замиканні declare target %<link%>, так і в замиканні %<to%> або %<enter%>"
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, fuzzy, gcc-internal-format
 #| msgid "directive with only %<device_type%> clause"
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr "директива з замиканням %<device_type%>"
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, fuzzy, gcc-internal-format
 #| msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr "умову %<detach%> не слід використовувати разом з умовою %<mergeable%>"
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "очікується %<target%>"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "очікується %<declare target%> або %<assumes%>"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr "%<#pragma omp end declare target%> без відповідного %<#pragma omp declare target%> або %<#pragma omp begin declare target%>"
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr "%qs в синтаксисі атрибуту завершується %qs в синтаксисі прагми"
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "%qs в синтаксисі прагми завершується %qs в синтаксисі атрибуту"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "очікується %<declare%> або %<assumes%>"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr "%<#pragma omp declare reduction%> не на рівні файлу або блоку"
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr "попередньо оголошений арифметичний тип у %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr "тип функції або масиву у %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "тип з кваліфікатором %<_Atomic%> у %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr "тип з кваліфікаторами const, volatile або restrict у %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr "повторне оголошення %qs %<#pragma omp declare reduction%> для типу %qT"
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "попереднє %<#pragma omp declare reduction%>"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "очікується %<omp_priv%> або імʼя функції"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "очікується імʼя функції %<(%>"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr "один з аргументів виклику ініціалізатора повинен бути %<&omp_priv%>"
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "очікується %<simd%>, %<reduction%>, %<target%> або %<variant%>"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "очікується %<seq_cst%>, %<acq_rel%>, %<release%> або %<acquire%>"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr "очікувалася замикання %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> або %<atomic_default_mem_order%>"
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr "%qs використовується лексично після першої конструкції цілі або API віддаленого виконання"
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr "більше однієї замикання %<atomic_default_mem_order%> в одній компіляційній одиниці"
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr "замикання %<atomic_default_mem_order%> використовується лексично після першої конструкції %<atomic%> без замикання порядку памʼяті"
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr "%<pragma omp requires%> вимагає принаймні одну замикання"
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "тип %qT нульового розміру в замиканні %<reduction%>"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "тип зі змінним розміром %qT в замиканні %<reduction%>"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "очікується замикання %<at%>, %<severity%> або %<message%>"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, gcc-internal-format
 msgid "expected %qs or %qs"
 msgstr "очікується %qs або %qs"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp error%> з замиканням %<at(execution)%> може використовуватись тільки в складних операторах"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr "зустрівся %<pragma omp error%>: %s"
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr "зустрівся %<pragma omp error%>"
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr "очікується принаймні одне замикання припущення"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, gcc-internal-format
 msgid "expected directive name"
 msgstr "очікується назва директиви"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr "невідома назва директиви OpenMP в аргументі замикання %qs"
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr "директива %<%s%s%s%s%s%> згадується як у замиканні %<absent%>, так і у замиканні %<contains%>"
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr "директива %<%s%s%s%s%s%> згадується кілька разів у замиканнях %qs"
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "невідомий замикання припущення %qs"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, gcc-internal-format
 msgid "expected assumption clause"
 msgstr "очікується замикання припущення"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE оголошено як %<threadprivate%> після першого використання"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "автоматична змінна %qE не може бути %<threadprivate%>"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%<threadprivate%> %qE має неповний тип"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr "%<__transaction_cancel%> без підтримки транзакційної памʼяті"
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr "%<__transaction_cancel%> всередині %<__transaction_relaxed%>"
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "зовнішній %<__transaction_cancel%> не знаходиться всередині зовнішнього %<__transaction_atomic%> або функції %<transaction_may_cancel_outer%>"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr "%<__transaction_cancel%> не в межах %<__transaction_atomic%>"
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, gcc-internal-format
 msgid "no closing brace"
 msgstr "відсутня закриваюча фігурна дужка"
@@ -49618,7 +49648,7 @@ msgstr "розіменування вказівника %<void *%>"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "індексоване значення не є ані масивом, ані вказівником, ані вектором"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "індекс масиву не є цілочисельним"
@@ -49648,7 +49678,7 @@ msgstr "недостатньо визначений %qD, на який поси
 msgid "enum constant defined here"
 msgstr "константа перелічування визначена тут"
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr "%<sizeof%> на параметрі функції масиву %qE поверне розмір %qT"
@@ -49761,17 +49791,17 @@ msgstr "неявне перетворення з %qT на %qT при перед
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "недостатньо аргументів для вбудованої функції %qE, очікується %u"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "порівняння з літералом рядка призводить до невизначеного поведінки"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, gcc-internal-format
 msgid "comparison between pointer and zero character constant"
 msgstr "порівняння між вказівником і нульовою символьною константою"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, gcc-internal-format
 msgid "did you mean to dereference the pointer?"
 msgstr "ви мали на увазі розіменування вказівника?"
@@ -49796,7 +49826,7 @@ msgstr "вказівник на функцію використовується
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "арифметика з вказівником на неповний тип"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr "арифметика з вказівником на порожню структуру"
@@ -50093,7 +50123,7 @@ msgstr "приведення з вказівника до цілого числ
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "приведення з виклику функції типу %qT до несумісного типу %qT"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "приведення до вказівника з цілого числа іншого розміру"
@@ -50265,7 +50295,7 @@ msgstr "ліва частина присвоєння може бути канд
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "ліва частина ініціалізації може бути кандидатом на атрибут формату"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "тип повернення може бути кандидатом на атрибут формату"
@@ -50466,12 +50496,12 @@ msgstr "Ініціалізатор %<constexpr%> для дійсного тип
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr "Ініціалізатор %<constexpr%> для двійкового типу з плаваючою комою має десятковий тип"
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "ініціалізація гнучкого члена масиву"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr "не вдається ініціалізувати масив з %qT з літералу рядка з типом масиву %qT"
@@ -50481,7 +50511,7 @@ msgstr "не вдається ініціалізувати масив з %qT з
 msgid "array of inappropriate type initialized from string constant"
 msgstr "масив неприпустимого типу ініціалізовано зі стрічкової константи"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "неприпустиме використання масиву, який не є lvalue"
@@ -50512,7 +50542,7 @@ msgstr "елемент ініціалізатора не є константни
 msgid "initializer element is not computable at load time"
 msgstr "елемент ініціалізатора не обчислюється під час завантаження"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "неможливо ініціалізувати непрозорі векторні типи"
@@ -50527,7 +50557,7 @@ msgstr "додаткова група фігурних дужок в кінці
 msgid "braces around scalar initializer"
 msgstr "фігурні дужки навколо скалярного ініціалізатора"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "ініціалізація гнучкого елемента масиву вкладеного контексту"
@@ -50618,7 +50648,7 @@ msgstr "зайві елементи в ініціалізаторі структ
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr "позиційна ініціалізація поля в %<struct%>, оголошеного з атрибутом %<designated_init%>"
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "нестатична ініціалізація гнучкого елемента масиву"
@@ -50658,7 +50688,7 @@ msgstr "ISO C забороняє %<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "обчислене перехід має бути типу вказівник"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "функція, оголошена з %<noreturn%>, має оператор %<return%>"
@@ -50713,7 +50743,7 @@ msgstr "мітка %<default%> не знаходиться у блоку switch"
 msgid "break statement not within loop or switch"
 msgstr "оператор break не знаходиться у циклі або блоку switch"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -50759,27 +50789,27 @@ msgstr "порівняння завжди буде оцінюватися як %
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "порівняння завжди буде оцінюватися як %<true%> для адреси %qE ніколи не буде NULL"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr "порівняння векторів з різними типами елементів"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr "порівняння векторів з різною кількістю елементів"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "порівняння між типами %qT та %qT"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr "не вдалося знайти цілочисельний тип такої ж розмірності, як %qT"
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr "порівнювати числа з рухомою комою за допомогою %<==%> або %<!=%> небезпечно"
@@ -50851,29 +50881,29 @@ msgstr "використано значення типу «union», де пот
 msgid "used vector type where scalar is required"
 msgstr "використано значення типу «vector», де потрібний скаляр"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancel%> повинен вказувати один з замиканнь %<parallel%>, %<for%>, %<sections%> або %<taskgroup%>"
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "очікується модифікатор замикання %<cancel%> %<if%>"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp cancellation point%> повинен вказувати один з замиканнь %<parallel%>, %<for%>, %<sections%> або %<taskgroup%>"
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD не є змінною в замиканні %qs"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qE не є змінною в замиканні %qs"
@@ -50884,85 +50914,85 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "%<_Atomic%> %qD в замиканні %qs"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD є змінною, приватною для потоку, в замиканні %qs"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr "нижня межа %qE секції масиву не має цілочисельного типу"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "довжина %qE секції масиву не має цілочисельного типу"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr "очікується один вказівник у замиканні %qs"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "секція масиву з нульовою довжиною у замиканні %qs"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr "для масиву з невідомою межею типу необхідно вказати вираз довжини"
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr "відʼємна нижня межа в секції масиву у замиканні %qs"
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr "відʼємна довжина в секції масиву у замиканні %qs"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr "нижня межа %qE вище розміру секції масиву у замиканні %qs"
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr "довжина %qE більше розміру секції масиву в замиканні %qs"
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr "верхня межа %qE вище розміру розділу масиву в %qs замиканні"
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr "для параметра функції масиву необхідно вказати вираз довжини"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr "для типу вказівника необхідно вказати вираз довжини"
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr "розділ масиву не є послідовним в %qs замиканні"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qE не має типу вказівника або масиву"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr "ітератор %qD не має ні цілочисельного, ні вказівного типу"
@@ -50972,17 +51002,17 @@ msgstr "ітератор %qD не має ні цілочисельного, ні
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "ітератор %qD має тип з %<_Atomic%> кваліфікацією"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr "ітератор %qD має тип з const кваліфікацією"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr "крок ітератора з не-цілочисельним типом"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr "ітератор %qD має крок 0"
@@ -50992,32 +51022,32 @@ msgstr "ітератор %qD має крок 0"
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr "тип ітератора %qD посилається на зовнішній ітератор %qD"
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr "вираз початку посилається на зовнішній ітератор %qD"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr "вираз кінця посилається на зовнішній ітератор %qD"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr "вираз кроку посилається на зовнішній ітератор %qD"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr "очікується вказівник в %qs замиканні"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr "%<inscan%> та не-%<inscan%> %<reduction%> замикання на одній конструкції"
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr "%<inscan%> Замикання %<reduction%> зі зрізом масиву"
@@ -51047,7 +51077,7 @@ msgstr "Тип %qT змінного розміру в замиканні %qs"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE має недійсний тип для %<reduction(%s)%>"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr "не знайдено користувацьку визначену редукцію для %qE"
@@ -51057,17 +51087,17 @@ msgstr "не знайдено користувацьку визначену ре
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "Тип елемента змінної довжини в замиканні %<reduction%> масиву"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr "Замикання %<nowait%> не можна використовувати разом з %<copyprivate%>"
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE має бути %<threadprivate%> для %<copyin%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr "модифікатор не повинен бути вказаний в %<linear%> замиканні на конструкціях %<simd%> або %<for%>, коли не використовується модифікатор OpenMP 5.2"
@@ -51082,23 +51112,23 @@ msgstr "Замикання «linear» застосовано до змінної
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr "%<_Atomic%> %qD у замиканні %<linear%>"
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr "крок замикання %<linear%> %qE не є ані константою, ані параметром"
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE не є змінною в замиканні %qs"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD зʼявляється більше одного разу в замиканнях для обміну даними"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr "%qD зʼявляється більше одного разу в редукційних замиканнях"
@@ -51110,32 +51140,32 @@ msgstr "%qE зʼявляється більше одного разу в зам
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "%qD зʼявляється більше одного разу в замиканнях даних"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr "%qD зʼявляється як в замиканнях даних, так і в замиканнях відображення"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE не є змінною в замиканні %<firstprivate%>"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE не є змінною в замиканні %<lastprivate%>"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qE не є змінною в замиканні %<aligned%>"
@@ -51155,7 +51185,7 @@ msgstr "%<_Atomic%> %qD в замиканні %<aligned%>"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE зʼявляється більше одного разу в замиканнях %<aligned%>"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr "%qE не є змінною в замиканні %<nontemporal%>"
@@ -51165,7 +51195,7 @@ msgstr "%qE не є змінною в замиканні %<nontemporal%>"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE зʼявляється більше одного разу в замиканнях %<nontemporal%>"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr "%qE не є змінною в замиканні %<allocate%>"
@@ -51175,77 +51205,77 @@ msgstr "%qE не є змінною в замиканні %<allocate%>"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE зʼявляється більше одного разу в замиканнях %<allocate%>"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr "Замикання %<depend%> з типом залежності %<depobj%> на секції масиву"
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr "%<omp_all_memory%> використовується з типом залежності %<depend%>, відмінним від %<out%> або %<inout%>"
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qE не є виразом lvalue або секцією масиву в замиканні %qs"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr "%qE не має типу %<omp_depend_t%> в замиканні %<depend%> з типом залежності %<depobj%>"
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr "%qE не повинен мати тип %<omp_depend_t%> у замиканні %<depend%> залежності з типом залежності, відмінним від %<depobj%>"
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr "секція масиву не має відображального типу в замиканні %qs"
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported memory expression:"
 msgid "unsupported map expression %qE"
 msgstr "непідтримуваний вираз памʼяті:"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD зʼявляється більше одного разу в замиканнях руху"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD зʼявляється більше одного разу в замиканнях відображення"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD не має відображального типу в замиканні %qs"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE не є змінною або імʼям функції в замиканні %qs"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE зʼявляється більше одного разу в одній і тій же директиві %<declare target%>"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD не є аргументом в замиканні %<uniform%>"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "%qE не є аргументом в замиканні %<uniform%>"
@@ -51260,22 +51290,22 @@ msgstr "змінна %qs не є вказівником"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "змінна %qs не є або вказівником, або масивом"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr "замикання %<order%> не повинен використовуватися разом з %<ordered%>"
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr "занадто багато замиканнь %qs у конструкції задачі"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr "замикання %<inbranch%> несумісний з замиканням %<notinbranch%>"
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE є передбаченим %qs для %qs"
@@ -51285,38 +51315,38 @@ msgstr "%qE є передбаченим %qs для %qs"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr "кваліфікована %qE з %<const%> може зʼявлятися тільки у замиканнях %<shared%> або %<firstprivate%>"
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr "значення замикання %<simdlen%> більше, ніж значення замикання %<safelen%>"
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr "модифікатор розкладу %<nonmonotonic%> вказаний разом з замиканням %<ordered%>"
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr "замикання %qs вказаний разом з замиканням %<inscan%> %<reduction%>"
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr "крок умови %<linear%> є параметром %qD, який не вказаний умовою %<uniform%>"
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr "умову %<nogroup%> не слід використовувати разом з умовою %<reduction%>"
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr "умову %<detach%> не слід використовувати разом з умовою %<mergeable%>"
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr "обробник події %<detach%> не повинен бути в замиканні, що спільно використовує дані"
@@ -51584,7 +51614,7 @@ msgstr "  немає відомого перетворення з %qH на %qI"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  немає відомого перетворення для аргументу %d з %qH на %qI"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
@@ -51592,7 +51622,7 @@ msgstr[0] "  кандидат очікує принаймні %d аргумен
 msgstr[1] "  кандидат очікує принаймні %d аргументи, надано %d"
 msgstr[2] "  кандидат очікує принаймні %d аргументів, надано %d"
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -51905,557 +51935,557 @@ msgstr "умовний вираз між типом з плаваючою точ
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "перелічування та неперелічування типи в умовному виразі"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "не оголошено %<%D(int)%> для постфіксного оператора %qs, спробую використати префіксний оператор замість цього"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "не оголошено %<%D(int)%> для постфіксного оператора %qs"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr "у C++20 це порівняння викликає поточну функцію рекурсивно з оберненими аргументами"
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr "тип повернення %qD не є %qs"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr "використовується як переписаний кандидат для порівняння %qT і %qT"
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "порівняння між %q#T і %q#T"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, gcc-internal-format
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "немає відповідності для виклику %<%T::operator[] (%A)%>"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, gcc-internal-format
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "виклик %<%T::operator[] (%A)%> є неоднозначним"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr "очищення винятків для цього розміщення нового вибирає нерозміщене %<operator delete%>"
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "%qD - це звичайна (нерозміщена) функція звільнення в C++14 (або з %<-fsized-deallocation%>)"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "%qD - це звичайна (нерозміщена) функція звільнення"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr "немає відповідної функції звільнення для %qD"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr "знищення delete %qD не може бути використано для звільнення виділеної памʼяті, якщо ініціалізація викидається, оскільки обʼєкт ще не побудований"
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "немає задовільного %<operator %s%> для %qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr "%q#D є приватним у цьому контексті"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, gcc-internal-format
 msgid "declared private here"
 msgstr "оголошено приватним тут"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr "%q#D є захищеним у цьому контексті"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, gcc-internal-format
 msgid "declared protected here"
 msgstr "оголошено захищеним тут"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr "%q#D недоступний у цьому контексті"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "передача NULL невказівниковому аргументу %P у %qD"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, gcc-internal-format
 msgid "  declared here"
 msgstr "  оголошено тут"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "перетворення на невказівниковий тип %qT з NULL"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "перетворення %<false%> на вказівниковий тип для аргументу %P у %qD"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "перетворення %<false%> на вказівниковий тип %qT"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  ініціалізація аргументу %P %qD"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "конвертація в масиви невідомого розміру доступна лише з %<-std=c++20%> або %<-std=gnu++20%>"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "занадто багато фігурних дужок навколо ініціалізатора для %qT"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "конвертація в %qH з %qI вимагає прямої ініціалізації"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 #| msgid "converting to %qH from %qI with greater conversion rank"
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "конвертація в %qH з %qI з більшим рангом конвертації"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 #, fuzzy
 #| msgid "converting to %qH from %qI with unordered conversion ranks"
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr "перетворення на %qH з %qI з неупорядкованими рангами конверсії"
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "недійсне користувацьке перетворення з %qH на %qI"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 msgid "invalid conversion from %qH to %qI"
 msgstr "недійсне перетворення з %qH на %qI"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr "перетворення в %qT зі списку ініціалізаторів використовуватиме явний конструктор %qD"
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr "у C++11 і вище, конструктор за замовчуванням може бути явним"
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "не можна привʼязати rvalue-посилання типу %qH до lvalue типу %qI"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "не можна привʼязати неконстантне lvalue-посилання типу %qH до значення типу %qI"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "не можна привʼязати неконстантне lvalue-посилання типу %qH до rvalue типу %qI"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "не можна привʼязати lvalue-посилання типу %qH до rvalue типу %qI"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr "не можна привʼязати посилання типу %qH до %qI через різні межі масиву"
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "привʼязка посилання типу %qH до %qI відкидає кваліфікатори"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, gcc-internal-format
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "не можна привʼязати біт-поле %qE до %qT"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "не можна привʼязати упаковане поле %qE до %qT"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "не можна привʼязати rvalue %qE до %qT"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "неявне перетворення з %qH на %qI при передачі аргументу до функції"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr "обмежене перелічування %qT передається через %<...%> як %qT до %<-fabi-version=6%>, %qT після"
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "передача обʼєктів типу %q#T, які не можуть бути просто скопійовані, через %<...%> підтримується умовно"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "не можна отримати посилання типу %qT через %<...%>"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "отримання обʼєктів типу %q#T, які не можуть бути просто скопійовані, через %<...%> є умовно підтримуваним"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "рекурсивна оцінка стандартного аргументу для %q#D"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "виклик %qD використовує стандартний аргумент для параметра %P, який ще не визначений"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "аргумент виклику функції може бути кандидатом на атрибут формату"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr "використання функції з багатьма версіями без стандартного значення"
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "передача %qT як аргументу %<this%> відкидає кваліфікатори"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  в виклику %qD"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT не є доступною базою для %qT"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "передача аргументів до багатокрапки іспадкованого конструктора %qD"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr "присвоєння з тимчасового %<initializer_list%> не продовжує термін існування базового масиву"
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr "%qD запис до обʼєкту типу %#qT без тривіального копіювання"
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "%qD запис до обʼєкту незвичайного типу %#qT%s"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr "%qD запис до обʼєкту типу %#qT з елементом %qs %qD"
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr "%qD запис до обʼєкту типу %#qT, що містить вказівник на елемент даних%s"
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr "; використовуйте присвоєння або ініціалізацію значенням замість цього"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, gcc-internal-format
 msgid "; use assignment instead"
 msgstr "; використовуйте присвоєння замість цього"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr "; використовуйте ініціалізацію значенням замість цього"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr "%qD очищення обʼєкта типу %#qT без тривіального копіювання-присвоєння%s"
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "%qD очищення обʼєкта незвичайного типу %#qT%s"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr "%qD очищення обʼєкта типу %#qT, що містить вказівник на член%s"
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "; використовуйте присвоєння копії або ініціалізацію копією замість цього"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, gcc-internal-format
 msgid "; use copy-assignment instead"
 msgstr "; використовуйте присвоєння копії замість цього"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr "; використовуйте ініціалізацію копією замість цього"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr "%qD запис до обʼєкту типу %#qT без тривіального копіювання%s"
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr "%qD запис до обʼєкту незвичайно копіюваного типу %#qT%s"
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr "%qD запис до обʼєкту з видаленим конструктором копіювання"
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr "%qD копіювання обʼєкту незвичайного типу %#qT з масиву з %#qT"
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr "%qD копіювання обʼєкту типу %#qT з елементом %qs %qD з масиву з %#qT; використовуйте замість цього присвоєння або копіювальну ініціалізацію"
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr "%qD запис до обʼєкту ненезначного типу %#qT залишає %wu байтів без змін"
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr "%qD запис до обʼєкту ненезначного типу %#qT залишає %wu байт без змін"
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr "%qD переміщення обʼєкту ненезначного типу %#qT, який не може бути скопійований; використовуйте %<new%> і %<delete%> замість цього"
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr "%qD переміщення обʼєкту типу %#qT з видаленим конструктором копіювання; використовуйте %<new%> і %<delete%> замість цього"
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr "%qD переміщення обʼєкту типу %#qT з видаленим деструктором"
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr "%qD переміщення обʼєкту ненезначного типу %#qT та розміру %E в область розміру %E"
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, gcc-internal-format
 msgid "%#qT declared here"
 msgstr "%#qT оголошено тут"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "аргумент %u у виклику функції %qE має вказівник на тип, який не можна просто скопіювати (%qT)"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr "конструктор делегує на себе"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 msgid "cannot convert %qH to %qI"
 msgstr "не можу перетворити %qH в %qI"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "немає відповідної функції для виклику %<%T::operator %T(%A)%#V%>"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "немає відповідної функції для виклику %<%T::%s%E(%A)%#V%>"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "виклик не-функції %qD"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "не можливо прямо викликати конструктор %<%T::%D%> безпосередньо"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr "для приведення типу у стилі функції, видаліть зайве %<::%D%>"
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "немає відповідної функції для виклику %<%s(%A)%>"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "виклик перевантаженої функції %<%s(%A)%> є неоднозначним"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "чистий віртуальний %q#D викликано з нестатичного ініціалізатора члена даних"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr "чистий віртуальний %q#D викликано з конструктора"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr "чистий віртуальний %q#D викликано з деструктора"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "не можна викликати метод члена %qD без обʼєкта"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "передача %qT обирає %qT замість %qT"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "C++20 стверджує, що це неоднозначно, навіть якщо другий є зворотнім:"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, gcc-internal-format
 msgid "try making the operator a %<const%> member function"
 msgstr "спробуйте зробити оператор функцією-членом зі специфікатором %<const%>"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "обирається %qD замість %qD"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 msgid "  for conversion from %qH to %qI"
 msgstr "  для перетворення з %qH до %qI"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  тому що послідовність перетворення для аргументу краща"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "несумісність аргументу за замовчуванням при вирішенні перевантаження"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr " кандидат 1: %q#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr " кандидат 2: %q#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ISO C++ каже, що це неоднозначно, навіть якщо найгірше перетворення для першого краще, ніж найгірше перетворення для другого:"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr "тимчасове звʼязування з %qD існує лише до виходу з конструктора"
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "неприпустима ініціалізація неконстантного посилання типу %qH з rvalue типу %qI"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "неправильна ініціалізація посилання типу %qH з виразу типу %qI"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, gcc-internal-format
 msgid "possibly dangling reference to a temporary"
 msgstr "можливо, посилання на тимчасовий обʼєкт"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr "тимчасовий обʼєкт був знищений в кінці повного виразу %qE"
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr ""
@@ -52501,7 +52531,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q#D не може бути перевантажено з %q#D"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "попереднє оголошення %q#D"
@@ -52922,7 +52952,7 @@ msgstr "гнучкий елемент масиву %qD в іншому поро
 msgid "next member %q#D declared here"
 msgstr "наступний елемент %q#D оголошений тут"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "перевизначення %q#T"
@@ -53055,7 +53085,7 @@ msgstr "недійсний тип для параметра %d функції %<
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr "лямбда-функції є неявно %<constexpr%> лише у C++17 та пізніших версіях"
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%<constexpr%> деструктори доступні лише з %<-std=c++20%> або %<-std=gnu++20%>"
@@ -53096,7 +53126,7 @@ msgstr "тіло функції %<constexpr%> %qD не є оператором 
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%qD не може бути використана як функція з атрибутом %<constexpr%>, оскільки:"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -53114,7 +53144,7 @@ msgstr "виклик %<constexpr%> виходить за межі функції
 msgid "%q+E is not a constant expression"
 msgstr "%q+E не є константним виразом"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -53135,7 +53165,7 @@ msgstr "%qE обчислюється як false"
 msgid "failed %<assume%> attribute assumption"
 msgstr "помилка припущення атрибуту %<assume%>"
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, gcc-internal-format
 msgid "call to internal function %qE"
@@ -53182,7 +53212,7 @@ msgstr "%qT є неоднозначним базовим класом динам
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr "динамічний тип %qT операнда не має однозначного публічного базового класу %qT"
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -53312,18 +53342,18 @@ msgstr "індекс масиву %qE знаходиться поза межам
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "ненульовий індекс масиву %qE використовується з масивом типу %qT з невідомими межами"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "доступ до неініціалізованого елемента масиву"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr "розіменування нульового вказівника в %qE"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -53331,480 +53361,480 @@ msgstr "розіменування нульового вказівника в %q
 msgid "%qE is not a constant expression"
 msgstr "%qE не є константним виразом"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "змінний %qD не може бути використаний в константному виразі"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "доступ до неініціалізованого члена %qD"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr "доступ до члена %qD замість ініціалізованого члена %qD в константному виразі"
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "%qs не є константним виразом, оскільки %qT є типом обʼєднання"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "%qs не є константним виразом, оскільки %qT містить тип обʼєднання"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "%qs не є константним виразом, оскільки %qT є типом вказівника"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "%qs не є константним виразом, оскільки %qT містить тип вказівника"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "%qs не є константним виразом, оскільки %qT є типом посилання"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "%qs не є константним виразом, оскільки %qT містить тип посилання"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "%qs не є константним виразом, оскільки %qT є типом вказівника на член"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "%qs не є константним виразом, оскільки %qT містить тип вказівника на член"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "%qs не є константним виразом, оскільки %qT є волатильним"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "%qs не є сталим виразом, оскільки %qT містить волатильний підобʼєкт"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "%qs не може бути обчислено як константне на цільовій платформі"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr "%qs не може бути обчислено як константне, оскільки тип занадто великий"
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr "%qs не може бути обчислено як константне, оскільки аргумент не може бути закодований"
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "%qs отримує доступ до неініціалізованого байта за зміщенням %d"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr "%qs не може бути обчислено як константне, оскільки аргумент не може бути інтерпретований"
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "доступ до значення %qE через gl-значення %qT в сталому виразі"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "використання виділеного сховища після звільнення в константному виразі"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, gcc-internal-format
 msgid "allocated here"
 msgstr "виділено тут"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, fuzzy, gcc-internal-format
 #| msgid "Access terminates outside of its parent"
 msgid "accessing %qE outside its lifetime"
 msgstr "Доступ закінчується за межами батьківського обʼєкту"
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "вміст неініціалізованого сховища не може бути використаний в сталому виразі"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "значення %qD не може бути використано в константному виразі"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "%qD використовується у своєму власному ініціалізаторі"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%q#D не є константою"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%q#D є волатильним"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD не було ініціалізовано константним виразом"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD не було оголошено як %<constexpr%>"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "%qD не має цілочисельного або перелічувального типу"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 #| msgid "use of allocated storage after deallocation in a constant expression"
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "використання виділеного сховища після звільнення в константному виразі"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 #| msgid "modification of %qE is not a constant expression"
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "зміна %qE не є константним виразом"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 #| msgid "%<reinterpret_cast%> is not a constant expression"
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "%<reinterpret_cast%> не є константним виразом"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 #| msgid "modification of %qE is not a constant expression"
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "зміна %qE не є константним виразом"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, fuzzy, gcc-internal-format
 #| msgid "change of the active member of a union from %qD to %qD during initialization"
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "зміна активного члена обʼєднання з %qD на %qD під час ініціалізації"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "зміна активного члена обʼєднання з %qD на %qD під час ініціалізації"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "вираз не є константним"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr "кількість ітерацій циклу %<constexpr%> перевищує обмеження в %d (використовуйте %<-fconstexpr-loop-limit=%>, щоб збільшити обмеження)"
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr "вбудована асемблерна вставка не є константним виразом"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr "у функції %<constexpr%> в C++20 дозволена лише невирахована вбудована асемблерна вставка"
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, gcc-internal-format
 msgid "use of %qD"
 msgstr "використання %qD"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr "його значення може змінюватися між версіями компілятора або з різними прапорцями %<-mtune%> або %<-mcpu%>"
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr "якщо це використання є частиною публічного ABI, замініть його на використання константної змінної, яку ви визначаєте"
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr "значення за замовчуванням для поточної настройки процесора - %d байтів"
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr "ви можете стабілізувати це значення за допомогою %<--param hardware_destructive_interference_size=%d%>, або вимкнути це попередження за допомогою %<-Wno-interference-size%>"
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "значення %qE типу %qT не є константним виразом"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr "кількість операцій оцінки %<constexpr%> перевищує обмеження %wd (використовуйте %<-fconstexpr-ops-limit=%>, щоб збільшити обмеження)"
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr "керування проходить через визначення %qD з тривалістю зберігання потоку"
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr "керування проходить через визначення %qD зі статичною тривалістю зберігання"
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "тимчасовий обʼєкт нелітерального типу %qT в константному виразі"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "%<reinterpret_cast%> не є константним виразом"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "перетворення з типу вказівника %qT до арифметичного типу %qT в константному виразі"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "%qE не є константним виразом, оскільки він посилається на змінні підобʼєкти %qT"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 #| msgid "pointer member %q+D declared here"
 msgid "pointed-to object declared here"
 msgstr "член-вказівник %q+D оголошений тут"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "%qs не є константним виразом, оскільки %qT є типом вказівника на член"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 #| msgid "modifying a const object %qE is not allowed in a constant expression"
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "зміна константного обʼєкту %qE не дозволена в константному виразі"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "%qE не є константним виразом, коли клас %qT ще не завершений"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "%<reinterpret_cast<%T>(%E)%> не є константним виразом"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "Вираз %qE не є константним виразом"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "%<goto%> не є константним виразом"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "Умова контракту є хибною в константному виразі"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr "неочікуваний ідентифікатор шаблону %qE"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, gcc-internal-format
 msgid "function concept must be called"
 msgstr "функційне поняття повинно бути викликане"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr "адреса виклику %qs не є константним виразом"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "неочікуваний вираз %qE типу %s"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr "%qE не є константним виразом, оскільки він посилається на змінні підобʼєкти %qT"
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr "%qE не є константним виразом, оскільки він посилається на неповністю ініціалізовану змінну"
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "%qE не є константним виразом, оскільки він посилається на результат %<operator new%>"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr "%qE не є константним виразом, оскільки виділене сховище не було звільнено"
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr "негайна оцінка повертає адресу негайної функції %qD"
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, fuzzy, gcc-internal-format
 #| msgid "immediate evaluation returns address of immediate function %qD"
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "негайна оцінка повертає адресу негайної функції %qD"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "перетворення lvalue в rvalue від volatile lvalue %qE з типом %qT"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "захоплення лямбди %qE не є константним виразом"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr "тому що воно використовується як glvalue"
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "%<reinterpret_cast%> з цілого числа в вказівник"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr "адреса обʼєкта %qE з потоковим локальним або автоматичним сховищем не є константним виразом"
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "використання %<this%> в константному виразі"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "вираз лямбди не є константним виразом до C++17"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr "вираз new не є константним виразом до C++20"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, gcc-internal-format
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "віртуальні функції не можуть бути %<constexpr%> до C++20"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "%<typeid%> не є константним виразом, оскільки %qE має поліморфний тип"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "приведення до нецілочисельного типу %qT в константному виразі"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "%qD визначено %<thread_local%> в контексті %<constexpr%>"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "%qD визначено %<static%> в контексті %<constexpr%>"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "ділення на нуль не є константним виразом"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "%<delete[]%> не є константним виразом"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "жодна гілка %<if%> не є константним виразом"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "не константна ініціалізація масиву"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "визначення мітки в функції %<constexpr%> доступне лише з %<-std=c++2b%> або %<-std=gnu++2b%>"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "неочікуваний AST типу %s"
@@ -54523,7 +54553,7 @@ msgstr "аргумент direction для %<__builtin_coro_promise%> має бу
 msgid "no suspend point info for %qD"
 msgstr "немає інформації про точку призупинення для %qD"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr "%qE надається %qT, але не може бути використаний зі сигнатурою функції %qD"
@@ -54543,23 +54573,23 @@ msgstr "вирази await не допускаються в обробниках
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr "масиви змінної довжини ще не підтримуються в корутин"
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr "%qE надається %qT, але %qE не позначений %<throw()%> або %<noexcept%>"
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr "%qE позначений %<throw()%> або %<noexcept%>, але %qT не надає жодного використовуваного %<get_return_object_on_allocation_failure%>"
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr "%qE надається %qT, але %<std::nothrow%> не знайдено"
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr "не можливо ініціалізувати обʼєкт повернення типу %qT з rvalue типу %<void%>"
@@ -54580,69 +54610,69 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD не є шаблонною функцією"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr "береться адреса негайної функції %qD"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 #| msgid "address of a call to %qs is not a constant expression"
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "адреса виклику %qs не є константним виразом"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "%<throw%> завжди викликає %<terminate%>"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "у C++11 деструктори за замовчуванням є %<noexcept%>"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr "у C++11 цей %<throw%> викличе %<terminate%>, оскільки деструктори за замовчуванням є %<noexcept%>"
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "ігнорується атрибут %qE після попереднього %qE"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, gcc-internal-format
 msgid "pack expansion of %qE attribute"
 msgstr "розширення пакунку атрибуту %qE"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr "використовуйте складний вираз в аргументі атрибуту замість цього"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD не є типом"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr "%qD не є типом класу"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qD не має типу %<const char *%>"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "%qD не має цілочисельного типу"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr "%<std::source_location::__impl%> містить не тільки нестатичні елементи даних %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> і %<_M_column%>"
@@ -54683,7 +54713,7 @@ msgstr "перетворення на неконстантне посиланн
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "конвертація з %qH до %qI відкидає кваліфікатори"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "приведення типу %qT до %qT не розіменовує вказівник"
@@ -55066,7 +55096,7 @@ msgstr "з попереднього оголошення %qF"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "повторне оголошення %qD відрізняється в %qs від попереднього оголошення"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "попереднє оголошення %qD"
@@ -55206,8 +55236,8 @@ msgstr "попереднє оголошення %<pragma omp declare reduction%>
 msgid "%q#D previously defined here"
 msgstr "%q#D раніше визначено тут"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "%q#D раніше оголошено тут"
@@ -55289,54 +55319,39 @@ msgstr "задано типовий аргумент для параметра %
 msgid "previous specification in %q#D here"
 msgstr "попередня специфікація в %q#D тут"
 
-#: cp/decl.cc:2285
-#, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr "декларація %qD конфліктує з вбудованою функцією"
-
-#: cp/decl.cc:2288
-#, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr "декларація %qD конфліктує з імпортом"
-
-#: cp/decl.cc:2289
-#, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr "імпорт оголошено %q#D тут"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting exporting declaration %qD"
 msgid "conflicting exporting for declaration %qD"
 msgstr "конфліктна експортна декларація %qD"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 #| msgid "previously declared here"
 msgid "previously declared here without exporting"
 msgstr "раніше оголошено тут"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr "попереднє визначення %qD тут"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "попередня декларація %qD тут"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, gcc-internal-format
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "функція %qD оголошена %<[[noreturn]]%>, але її перша декларація не була"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "зайве повторне оголошення %qD в одній області видимості"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr "видалене визначення %qD не є першою декларацією"
@@ -55349,44 +55364,44 @@ msgstr "видалене визначення %qD не є першою декл
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "явна спеціалізація %qD після першого використання"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%qD: атрибут видимості ігнорується, оскільки він конфліктує з попереднім оголошенням"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "перевизначення %q#D"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "%qD конфліктує з використовуваною функцією"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q#D не оголошено в класі"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%q+D повторно оголошено в рядку з атрибутом %<gnu_inline%>"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%q+D повторно оголошено в рядку без атрибуту %<gnu_inline%>"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr "оператор порівняння %q+D встановлено за замовчуванням після його першого оголошення"
@@ -55394,744 +55409,744 @@ msgstr "оператор порівняння %q+D встановлено за 
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "перевизначення друга %q#D не може мати аргументів шаблону за замовчуванням"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "локальна для потоку декларація %q#D слідує за нелокальною декларацією"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "нелокальна декларація %q#D слідує за локальною для потоку декларацією"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "повторна декларація %q#D"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "зайве перевизначення статичного члена даних %<constexpr%> %qD"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr "локальна мітка %qE конфліктує з існуючою міткою"
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, gcc-internal-format
 msgid "previous label"
 msgstr "попередня мітка"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "перехід до мітки %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "перехід до мітки case"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  звідси"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  виходить зі структурованого блоку OpenMP"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "  перетинає ініціалізацію %q#D"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr "  входить в блок %<try%>"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr "  входить в блок %<catch%>"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  входить в структурований блок OpenMP"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr "  входить в синхронізовану або атомарну інструкцію"
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, gcc-internal-format
 msgid "  enters statement expression"
 msgstr "  входить у вираз інструкції"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr "  входить у інструкцію %<constexpr if%>"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr "  входить у інструкцію %<consteval if%>"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C99 does not support %qE"
 msgid "  does not destroy %qD"
 msgstr "ISO C99 не підтримує %qE"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, fuzzy, gcc-internal-format
 #| msgid "%s does not take any feature options"
 msgid "  does not clean up handled exception"
 msgstr "%s не приймає жодних опцій функцій"
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "  пропускає ініціалізацію %q#D"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, gcc-internal-format
 msgid "%qD used without template arguments"
 msgstr "%qD використовується без аргументів шаблону"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, gcc-internal-format
 msgid "%qD is a function, not a type"
 msgstr "%qD - це функція, а не тип"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T не є класом"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "немає класового шаблону з назвою %q#T в %q#T"
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "немає типу з назвою %q#T в %q#T"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "пошук %qT в %qT є неоднозначним"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%> називає %q#T, який не є класовим шаблоном"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%> називає %q#D, який не є типом"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "параметри шаблону не відповідають шаблону %qD"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "%<-faligned-new=%d%> не є степенем двійки"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr "%<--param destructive-interference-size=%d%> менше ніж %d"
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr "%<--param destructive-interference-size=%d%> менше ніж %<--param l1-cache-line-size=%d%>"
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr "%<--param constructive-interference-size=%d%> менше ніж %d"
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr "%<--param constructive-interference-size=%d%> більше ніж %<--param l1-cache-line-size=%d%>"
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q#D недійсний; анонімний обʼєднання може мати тільки публічні нестатичні члени даних"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr "ця гнучкість застаріла і буде видалена"
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, gcc-internal-format
 msgid "anonymous struct with base classes"
 msgstr "анонімна структура з базовими класами"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "член %q+#D з конструктором не допускається в анонімному агрегаті"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "член %q+#D з деструктором не допускається в анонімному агрегаті"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "член %q+#D з оператором присвоєння копіювання не допускається в анонімному агрегаті"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "атрибут ігнорується в оголошенні %q#T"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "атрибут для %q#T повинен слідувати за ключовим словом %qs"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "декілька типів в одному оголошенні"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "повторне оголошення вбудованого типу C++ %qT"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "%<auto%> може бути вказано тільки для змінних або оголошень функцій"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "відсутнє імʼя типу в оголошенні typedef"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO C++ забороняє анонімні структури"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "%<inline%> може бути вказано тільки для функцій"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr "%<virtual%> може бути вказано лише для функцій"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> може бути вказано лише всередині класу"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "%<explicit%> може бути вказано лише для конструкторів"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "клас сховища може бути вказано лише для обʼєктів та функцій"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "%<const%> може бути вказано лише для обʼєктів та функцій"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "%<volatile%> може бути вказано лише для обʼєктів та функцій"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "%<__restrict%> може бути вказано лише для обʼєктів та функцій"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "%<__thread%> може бути вказано лише для обʼєктів та функцій"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "%<typedef%> було проігноровано в цьому оголошенні"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "%qs не може бути використано для оголошень типів"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "атрибут проігноровано в явному інстанціюванні %q#T"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "неможливо застосувати атрибут до явного інстанціювання"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "ігноруються атрибути, застосовані до класового типу %qT поза визначенням"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr "ігноруються атрибути, застосовані до залежного типу %qT без повʼязаного оголошення"
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD ініціалізовано (використовуйте %qs замість)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "оголошення %q#D має %<extern%> та ініціалізовано"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "визначення %q#D має маркування %<dllimport%>"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q+#D не є статичним членом даних %q#T"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "декларація неметодного шаблону %qD"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "не відповідає декларації методного шаблону тут"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO C++ не дозволяє визначати %<%T::%D%> як %<%T::%D%>"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "подвійна ініціалізація %qD"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "декларація %q#D поза класом не є визначенням"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, fuzzy, gcc-internal-format
 #| msgid "block-scope extern declaration %q#D not permitted in module purview"
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr "екстерна декларація %q#D з областю видимості блоку не дозволена в модульному контексті"
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%qD, визначений як %<thread_local%> у функції %qs, доступний лише з опцією %<-std=c++2b%> або %<-std=gnu++2b%>"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%qD може бути визначено %<static%> тільки в функції %qs, доступній лише з %<-std=c++2b%> або %<-std=gnu++2b%>"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "змінна %q#D має ініціалізатор, але неповний тип"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "елементи масиву %q#D мають неповний тип"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "агрегат %q#D має неповний тип і не може бути визначений"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD оголошено як посилання, але не ініціалізовано"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "імʼя, використане в GNU-стилі призначеного ініціалізатора для масиву"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "імʼя %qD використане в GNU-стилі призначеного ініціалізатора для масиву"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "не підтримуються складні призначені ініціалізатори"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "індикатор C99 %qE не є цілочисельним константним виразом"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "ініціалізатор не вдалося визначити розмір %qD"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "відсутній розмір масиву в %qD"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "масив нульового розміру %qD"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "розмір сховища %qD невідомий"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "розмір сховища %qD не є сталим"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "вибачте: семантика вбудованої змінної %q#D неправильна (ви отримаєте кілька копій)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "вибачте: семантика статичних даних вбудованої функції %q#D неправильна (ви отримаєте кілька копій)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr "Ви можете обійти це, видаливши ініціалізатор"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, gcc-internal-format
 msgid "uninitialized %<const %D%>"
 msgstr "неініціалізована %<const %D%>"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "неініціалізована змінна %qD у функції %<constexpr%>"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "неініціалізована змінна %qD у контексті %<constexpr%>"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "%q#T не має конструктора за замовчуванням, наданого користувачем"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr "конструктор не наданий користувачем, оскільки він явно заданий за замовчуванням у тілі класу"
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr "і неявно визначений конструктор не ініціалізує %q#D"
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "недійсний тип %qT як ініціалізатор для вектора типу %qT"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "ініціалізатор для %qT повинен бути включений у фігурні дужки"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "%<[%E] =%> використовується в ініціалізаторі з вказівкою у стилі GNU для класу %qT"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "запит на член %qD є неоднозначним"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT не має нестатичного члена даних з іменем %qD"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD не є прямим членом %qT"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "недійсний ініціалізатор для %q#D"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr "C99-означення %qE поза агрегатним ініціалізатором"
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "занадто багато ініціалізаторів для %qT"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "фігурні дужки навколо скалярного ініціалізатора для типу %qT"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, gcc-internal-format
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "занадто багато фігурних дужок навколо скалярного ініціалізатора для типу %qT"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "відсутні фігурні дужки навколо ініціалізатора для %qT"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "структуроване привʼязування має неповний тип %qT"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "елементи масиву %q#T мають неповний тип"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "складний літерал змінної розмірності"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "%q#D має неповний тип"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "скалярний обʼєкт %qD вимагає одного елемента в ініціалізаторі"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "у C++98 %qD повинен бути ініціалізований конструктором, а не %<{...}%>"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "масив %qD ініціалізований укладеною у дужки літеральною рядковою константою %qE"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "ініціалізатор недійсний для статичного члена з конструктором"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "недопустима неконстантна ініціалізація в класі для статичного члена %qD"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "недопустима неконстантна ініціалізація в класі для неінлайнового статичного члена %qD"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(потрібна ініціалізація поза класом)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "посилання %qD ініціалізовано самим собою"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr "не вдалося знайти оголошення варіанту"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr "%<declare variant%> на конструкторі %qD"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr "%<declare variant%> на деструкторі %qD"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr "%<declare variant%> на за замовчуванням %qD"
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr "%<declare variant%> на видаленому %qD"
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr "%<declare variant%> на віртуальному %qD"
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "присвоєння (не ініціалізація) в оголошенні"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++17 не дозволяє специфікатору класу зберігання %<register%>"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr "використано специфікатор класу зберігання %<register%>"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "оголошення %q#D не має ініціалізатора"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "ініціалізатор для %<decltype(auto) %D%> має тип функції; ви забули %<()%>?"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, gcc-internal-format
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "визначений тип %qT для %qD є неповним"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr "концепція змінної не має ініціалізатора"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "затінення попереднього оголошення типу %q#D"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "Атрибут %<constinit%> може бути застосований лише до змінної зі статичною або потоковою тривалістю зберігання"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "функція %q#D ініціалізується як змінна"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "не можна розкласти клас типу %qT, оскільки він має анонімний структурний член"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr "не можна розкласти клас типу %qT, оскільки він має анонімний член обʼєднання"
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "не можна розкласти недоступний член %qD класу %qT"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr "не можна розкласти клас типу %qT: як він сам, так і його базовий клас %qT мають нестатичні елементи даних"
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr "не вдається розкласти клас типу %qT: його базові класи %qT та %qT мають нестатичні члени даних"
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "структуроване привʼязування посилається на неповний тип %qT"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "не можу розкласти масив змінної довжини %qT"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
@@ -56139,7 +56154,7 @@ msgstr[0] "надано %u імʼя для структурованого при
 msgstr[1] "надано %u імен для структурованого привʼязування"
 msgstr[2] "надано %u імен для структурованого привʼязування"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
@@ -56147,7 +56162,7 @@ msgstr[0] "тільки %u імʼя надано для структурован
 msgstr[1] "тільки %u імен надано для структурованого привʼязування"
 msgstr[2] "тільки %u імен надано для структурованого привʼязування"
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
@@ -56155,1760 +56170,1760 @@ msgstr[0] "під час розкладання %qT на %wu елемент"
 msgstr[1] "під час розкладання %qT на %wu елементи"
 msgstr[2] "під час розкладання %qT на %wu елементів"
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr "не можу розкласти вектор змінної довжини %qT"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "%<std::tuple_size<%T>::value%> не є сталим цілочисельним виразом"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr "під час розкладання %qT на %E елементів"
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr "%<std::tuple_element<%u, %T>::type%> є %<void%>"
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr "при ініціалізації змінної структурованого звʼязування %qD"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "не можу розкласти обʼєднаний тип %qT"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "не можу розкласти тип, який не є масивом або класом %qT"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr "не можу розкласти тип замикання лямбди %qT"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "структуроване звʼязування посилається на неповний класовий тип %qT"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "не можливо розкласти класовий тип %qT без нестатичних членів даних"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr "нелокальна змінна %qD, оголошена %<__thread%>, потребує динамічної ініціалізації"
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr "нелокальна змінна %qD, оголошена %<__thread%>, має незвичайний деструктор"
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr "C++11 %<thread_local%> дозволяє динамічну ініціалізацію та знищення"
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "ініціалізатор не визначає розмір %qT"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "відсутній розмір масиву в %qT"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "масив нульового розміру %qT"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "деструктор для класу-іноземця %qT не може бути членом"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "конструктор для класу-іноземця %qT не може бути членом"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD оголошено як %<virtual%> змінна"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "Специфікатори функції %<const%> та %<volatile%> на %qD недійсні в оголошенні змінної"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD оголошено як %<virtual%> параметр"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD оголошено як %<inline%> параметр"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "Специфікатори функції %<const%> та %<volatile%> на %qD недійсні в оголошенні параметра"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD оголошено як %<virtual%> тип"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD оголошено як %<inline%> тип"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "Специфікатори функції %<const%> та %<volatile%> на %qD недійсні в оголошенні типу"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD оголошено як %<virtual%> поле"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD оголошено як %<inline%> поле"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "Специфікатори функції %<const%> та %<volatile%> на %qD недійсні в оголошенні поля"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D оголошено як «friend»"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D оголошено зі специфікацією винятку"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "визначення %qD не знаходиться в просторі імен, що оточує %qT"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "статична функція-член %q#D оголошена з кваліфікаторами типу"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "концепція %q#D оголошена з параметрами функції"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr "концепція %q#D оголошена з виведеним типом повернення"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "концепція %q#D з не-%<bool%> типом повернення %qT"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "концепція %qD не має визначення"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, gcc-internal-format
 msgid "a function concept cannot be constrained"
 msgstr "функційна концепція не може бути обмежена"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, gcc-internal-format
 msgid "constraints on a non-templated function"
 msgstr "обмеження на функцію без шаблону"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "Оголошення друзів не визначено в описі класу"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "визначення явної спеціалізації %qD в декларації друга"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "неприпустиме використання ідентифікатора шаблона %qD в декларації основного шаблону"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "значення за замовчуванням не дозволені в декларації спеціалізації дружнього шаблону %qD"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "%<inline%> не дозволено в оголошенні спеціалізації дружнього шаблону %qD"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "оголошення-друга %qD вказує на аргументи за замовчуванням і не є визначенням"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "не можна оголосити %<::main%> як шаблон"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "не можна оголосити %<::main%> як inline"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "не можна оголосити %<::main%> як %qs"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "не можна оголосити %<::main%> як static"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "функція, не є членом %qD, не може мати cv-кваліфікатор"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "статична функція-член %qD не може мати cv-кваліфікатор"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "статична функція-член %qD не може мати cv-кваліфікатор"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "функція, не є методом класу %qD, не може мати кваліфікатор посилання"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "статичний метод класу %qD не може мати кваліфікатор посилання"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have ref-qualifier"
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "статичний метод класу %qD не може мати кваліфікатор посилання"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD declared here"
 msgid "explicit object parameter declared here"
 msgstr "параметр шаблона %qD оголошений тут"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "посібник з виведення %qD повинен бути оголошений в тому ж області видимості, що й %qT"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "посібник з виведення %qD повинен мати такий самий доступ, як %qT"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr "посібник з виведення %qD не повинен мати тіла функції"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr "літеральний оператор зі звʼязком C"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "%qD має недійсний список аргументів"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr "суфікс цілого числа %qs затінений реалізацією"
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr "суфікс числа з плаваючою комою %qs затінений реалізацією"
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr "суфікси операторів літералів, які не передують %<_%>, зарезервовані для майбутньої стандартизації"
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%qD повинна бути функцією, що не є членом"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> повинна повертати %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "визначення неявно оголошеної %qD"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "визначення явно за замовчуванням %qD"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "%q#D явно задано тут"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "не оголошено жодної член-функції %q#D в класі %qT "
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "не можна оголосити %<::main%> глобальною змінною"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "нетемплейтна змінна не може бути %<concept%>"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr "концепцію слід визначати на рівні простору імен"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr "концепція повинна мати тип %<bool%>"
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, gcc-internal-format
 msgid "a variable concept cannot be constrained"
 msgstr "змінна концепція не може бути обмежена"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "ініціалізація в класі статичного елемента даних %q#D неповного типу"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "потрібно %<constexpr%> для ініціалізації в класі статичного елемента даних %q#D не-цілочисельного типу"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "ініціалізація в класі статичного елемента даних %q#D не літерального типу"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "недійсна ініціалізація в класі статичного члена даних не-цілочисельного типу %qT"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ забороняє ініціалізацію в класі неконстантного статичного члена %qD"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ забороняє ініціалізацію константного члена %qD не-цілочисельного типу %qT"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "розмір масиву %qD має нецілочисельний тип %qT"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "розмір масиву має нецілочисельний тип %qT"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "розмір масиву %qD не є цілочисельним сталим виразом"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "розмір масиву не є цілочисельним сталим виразом"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C++ забороняє масив нульового розміру %qD"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ забороняє масив нульового розміру"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ забороняє масив змінної довжини %qD"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++ забороняє масив змінної довжини"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "використовується масив змінної довжини %qD"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "використовується масив змінної довжини"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "переповнення в розмірі масиву"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%qD оголошено як масив типу заповнювача шаблону %qT"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, gcc-internal-format
 msgid "creating array of template placeholder type %qT"
 msgstr "створення масиву типу заповнювача шаблону %qT"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "оголошення %qD як масиву типу void"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr "створення масиву типу void"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "оголошення %qD як масиву функцій"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr "створення масиву функцій"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "оголошення %qD як масиву посилань"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr "створення масиву посилань"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "оголошення %qD як масиву елементів-функцій"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr "створення масиву з функційними елементами"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "оголошення %qD як багатовимірного масиву повинно мати межі для всіх вимірів, крім першого"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "багатовимірний масив повинен мати межі для всіх вимірів, крім першого"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, gcc-internal-format
 msgid "variable-length array of %<auto%>"
 msgstr "масив змінної довжини з %<auto%>"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "недійсна специфікація типу повернення для конструктора"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "кваліфікатори не дозволені в оголошенні конструктора"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "недійсна специфікація типу повернення для деструктора"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "кваліфікатори не дозволені в оголошенні деструктора"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "вказано тип повернення для оператора %<operator %T%>"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "кваліфікатори не дозволені при оголошенні %<operator %T%>"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, gcc-internal-format
 msgid "return type specified for deduction guide"
 msgstr "тип повернення вказаний для довідника виведення"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "кваліфікатори не дозволені в оголошенні довідника виведення"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "параметр шаблону шаблону %qT в оголошенні довідника виведення"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "%<decl-specifier%> в оголошенні довідника виведення"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "неіменована змінна або поле оголошені як void"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "змінна або поле оголошені як void"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "специфікатор %<inline%> недійсний для змінної %qD, оголошеної в області блоку"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "змінні «inline» доступні лише з %<-std=c++17%> або %<-std=gnu++17%>"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr "%qT як тип, а не просто %<decltype(auto)%>"
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, gcc-internal-format
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "%<decltype(auto)%> не може мати кваліфікаторів cv"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "неправильне використання кваліфікованого імені %<::%D%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "неправильне використання кваліфікованого імені %<%T::%D%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "неправильне використання кваліфікованого імені %<%D::%D%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, gcc-internal-format
 msgid "%q#T is not a class or namespace"
 msgstr "%q#T не є класом або простором імен"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, gcc-internal-format
 msgid "declaration of %qE as non-function"
 msgstr "оголошення %qE як не-функції"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, gcc-internal-format
 msgid "declaration of %qE as non-member"
 msgstr "оголошення %qE як не-члена"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "відсутній ідентифікатор декларатора; використовується зарезервоване слово %qD"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "визначення функції не оголошує параметри"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "оголошення %qD як не-функції"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "оголошення %qD як %<typedef%>"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "оголошення %qD як параметра"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr "вказано як %qs, так і %qs"
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%qs не може зʼявлятися в оголошенні typedef"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr "можна використовувати не більше одного зі специфікаторів %<constinit%> та %<constexpr%>"
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "два або більше типи даних в оголошенні %qs"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C++ не підтримує просте значення %<complex%>, що означає %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ забороняє декларацію %qs без типу"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "%<__int%d%> не підтримується цільовою платформою"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ не підтримує %<__int%d%> для %qs"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> і %<unsigned%> вказані разом"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> і %<short%> вказані разом"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr "%qs вказано з %qT"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr "%qs вказано з іменем typedef %qD"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "%qs вказано з %<decltype%>"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr "%qs вказано з %<typeof%>"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "комплексне число недійсне для %qs"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr "відсутній список аргументів шаблону після %qE; для виведення, заповнювач шаблону повинен слідувати за простим ідентифікатором декларатора"
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "елемент %qD не може бути одночасно оголошений як %<virtual%> та %<static%>"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "елемент %qD може бути оголошений як %<virtual%> та %<constexpr%> лише в %<-std=c++20%> або %<-std=gnu++20%>"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "оголошення typedef недійсне в оголошенні параметра"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "вказано специфікатор зберігання для параметра шаблону %qs"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "вказано специфікатор зберігання для параметра %qs"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr "параметр не може бути оголошений як %qs"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%> поза оголошенням класу"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "оголошення структурованого звʼязування не може бути %qs"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "декларація структурованого звʼязування може бути тільки %qs у %<-std=c++20%> або %<-std=gnu++20%>"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "структуроване звʼязування з %<volatile%> є застарілим"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr "оголошення структурованого звʼязування не може бути C++98 %<auto%>"
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "оголошення структурованого звʼязування не може мати тип %qT"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr "тип повинен бути cv-кваліфікованим %<auto%> або посиланням на cv-кваліфікований %<auto%>"
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr "оголошення структурованого звʼязування не може мати обмежений %<auto%> тип %qT"
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "оголошення %qs має кілька класів зберігання"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "вказано клас зберігання для %qs"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "вкладена функція %qs оголошена %<extern%>"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "оголошення верхнього рівня для %qs вказує %<auto%>"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "функція %qs в області видимості функції неявно має тип auto і оголошена %<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "специфікатори класу зберігання недійсні в оголошеннях дружніх функцій"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, gcc-internal-format
 msgid "attribute ignored"
 msgstr "атрибут ігнорується"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr "атрибут, що належить до типового специфікатора, ігнорується"
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, gcc-internal-format
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "зайві дужки в оголошенні %qs"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, gcc-internal-format
 msgid "remove parentheses"
 msgstr "видалити дужки"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, fuzzy, gcc-internal-format
 #| msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "виведення псевдоніма шаблону доступне лише з %<-std=c++20%> або %<-std=gnu++20%>"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 #| msgid "Function %qs at %L cannot have an initializer"
 msgid "a function type cannot have an explicit object parameter"
 msgstr "Функція %qs на %L не може мати ініціалізатора"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, fuzzy, gcc-internal-format
 #| msgid "a conversion function cannot have a trailing return type"
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr "Функція перетворення не може мати приєднаний тип повернення"
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 #| msgid "  member function type %qT is not a valid template argument"
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "  тип функції-члена %qT не є допустимим аргументом шаблона"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, fuzzy, gcc-internal-format
 #| msgid "typedef may not be a member function definition"
 msgid "the type of an explicit object member function is a regular function type"
 msgstr "typedef не може бути визначенням методу класу"
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD declared here"
 msgid "valid explicit object parameter declared here"
 msgstr "параметр шаблона %qD оголошений тут"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr "замикання requires в типі повернення"
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr "функція %qs використовує специфікатор типу %<auto%> без наступного типу повернення"
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "Визначений тип повернення доступний лише з %<-std=c++14%> або %<-std=gnu++14%>"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr "Віртуальна функція не може мати визначений тип повернення"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr "Функція %qs з типом повернення в кінці має тип %qT, а не простий %<auto%>"
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr "Функція %qs з типом повернення в кінці має тип %<decltype(auto)%>, а не простий %<auto%>"
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "Неправильне використання %<decltype(auto)%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr "Виявлений тип класу %qD в типі повернення функції"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr "Посібник з виведення для %qT повинен мати тип повернення в кінці"
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr "Тип повернення в кінці %qT посібника з виведення не є спеціалізацією %qT"
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "Тип повернення в кінці доступний лише з %<-std=c++11%> або %<-std=gnu++11%>"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr "Функція %qs з приєднаним типом повернення не оголошена зі специфікатором типу %<auto%>"
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr "Функція перетворення не може мати приєднаний тип повернення"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr "Тип повернення з кваліфікатором %<volatile%> є застарілим"
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs оголошено як функцію, що повертає функцію"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs оголошено як функцію, що повертає масив"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "%<constinit%> на типі повернення функції не дозволено"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "Деструктор не може бути статичною функцією-членом"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "Конструктор не може бути статичною функцією-членом"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "Деструктори не можуть мати кваліфікаторів cv"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "Конструктори не можуть мати кваліфікаторів cv"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr "Деструктори не можуть мати кваліфікаторів ref"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr "Конструктори не можуть мати кваліфікаторів ref"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "конструктори не можуть бути оголошені як %<virtual%>"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "віртуальні функції не можуть бути друзями"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "Оголошення друзів не визначено в описі класу"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "Не можна визначити дружню функцію %qs в описі локального класу"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr "визначення friend-функції %qs не може мати імені, яке кваліфіковане з %<::%>"
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr "визначення friend-функції %qs не може мати імені, яке кваліфіковане з %<%D::%>"
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 #| msgid "non-member function %qD cannot have cv-qualifier"
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "функція, не є членом %qD, не може мати cv-кваліфікатор"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 #| msgid "implicit templates may not be %<virtual%>"
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "імпліцитні шаблони не можуть бути %<virtual%>"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a member function"
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD повинна бути функцією-членом"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "деструктори не можуть мати параметрів"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "не можна оголосити вказівник на %q#T"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "не можна оголосити посилання на %q#T"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "не можна оголосити вказівник на елемент %q#T"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "не можна оголосити посилання на кваліфікований тип функції %qT"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "не можна оголосити вказівник на кваліфікований тип функції %qT"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr "не можна оголосити посилання на %q#T, який не є псевдонімом або аргументом типу шаблону"
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "ідентифікатор шаблону %qD використовується як декларатор"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "члени-функції є неявними друзями свого класу"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "додаткова кваліфікація %<%T::%> на члені %qs"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "не можна визначити метод %<%T::%s%> всередині %qT"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "не можна оголосити метод %<%T::%s%> всередині %qT"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "не можна оголосити член %<%T::%s%> всередині %qT"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "непараметр %qs не може бути пакетом параметрів"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "член даних не може мати змінно-модифікований тип %qT"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "параметр не може мати змінно-модифікований тип %qT"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "%<explicit%> поза оголошенням класу"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr "%<explicit%> в оголошенні friend"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "тільки оголошення конструкторів та операторів перетворення можуть бути %<explicit%>"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "неможливо оголосити неметод %qs як %<mutable%>"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "неможливо оголосити неметод %qs як %<mutable%>"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "функцію %qs не можна оголосити як %<mutable%>"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "%qs не може бути оголошено як %<mutable%>, оскільки воно %<static%>"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "%qs не може бути оголошено як %<mutable%>, оскільки воно %<const%>"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "посилання %qs не може бути оголошено як %<mutable%>"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr "typedef не може бути визначенням функції"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr "typedef не може бути визначенням методу класу"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<auto%> не дозволено в оголошенні псевдоніма"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "typedef оголошено як %<auto%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr "замикання «requires» на typedef"
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "Імʼя typedef не може бути вкладеним іменем-специфікатором"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ISO C++ забороняє вкладений тип %qD з таким самим імʼям, як усамітнюючий клас"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "%<inline%> вказано для декларації класу friend"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "Параметри шаблону не можуть бути друзями"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "Декларація friend вимагає ключ класу, тобто %<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "декларація друга потребує ключ-класу, тобто %<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "Спроба зробити клас %qT другом глобального обсягу"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "недійсні кваліфікатори на типі функції, яка не є членом"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr "замикання requires на тип-ідентифікаторі"
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "абстрактний декларатор %qT використовується як декларація"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "замикання requires в декларації типу, що не є функцією %qT"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "не можна використовувати %<::%> в декларації параметра"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "не можна оголосити параметр з %<decltype(auto)%>"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr "відсутній список аргументів шаблона після %qE; шаблонний заповнювач не допускається в параметрі"
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr "або використовуйте %<auto%> для скороченого шаблону функції"
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "%<auto%> параметр не допускається в цьому контексті"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "параметр оголошено як %<auto%>"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "недійсне використання імені шаблону %qE без списку аргументів"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "член даних, оголошений як нестатичний з заповнювачем %qT"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C++ забороняє гнучкий елемент масиву %qs"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, gcc-internal-format
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C++ забороняє гнучкі елементи масиву"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "недійсне використання %<::%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "оголошення функції %qD в недійсному контексті"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "функцію %qD оголошено як %<virtual%> всередині обʼєднання"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD не може бути оголошено як %<virtual%>, оскільки воно завжди статичне"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "очікувався кваліфікований ідентифікатор у декларації friend для деструктора %qD"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "оголошення %qD як члена %qT"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr "деструктор не може бути %qs"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "очікувався кваліфікований ідентифікатор у декларації friend для конструктора %qD"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr "конструктор не може бути %<concept%>"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "концепція не може бути методом класу"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, gcc-internal-format
 msgid "%qD cannot be %qs"
 msgstr "%qD не може бути %qs"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr "спеціалізація шаблону змінної %qD оголошена як функція"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, gcc-internal-format
 msgid "variable template declared here"
 msgstr "шаблон змінної оголошено тут"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "поле %qD має неповний тип %qT"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "імʼя %qT має неповний тип"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE не є функцією або методом класу; не може бути оголошений другом"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "безіменне поле не є функцією або методом класу; не може бути оголошений другом"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr "атрибут, що належить до декларації друга, яка не є визначенням, ігнорується"
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr "статичний член даних %qE оголошений як %qs"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "статичний член даних %<constexpr%> %qD повинен мати ініціалізатор"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr "нестатичний елемент даних %qE оголошений як %qs"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "клас зберігання %<auto%> недійсний для функції %qs"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "клас зберігання %<register%> недійсний для функції %qs"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "клас зберігання %<__thread%> недійсний для функції %qs"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "клас зберігання %<thread_local%> недійсний для функції %qs"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 #| msgid "alignment specified for function %qE"
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "вказано вирівнювання для функції %qE"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "специфікатори virt в %qs не дозволені поза визначенням класу"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "специфікатор %<static%> недійсний для функції %qs, оголошеної поза глобальним контекстом"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "специфікатор %<inline%> недійсний для функції %qs, оголошеної поза глобальним контекстом"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "віртуальна функція, що не належить до класу %qs"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "%qs визначено в області, що не належить до класу"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "%qs оголошено в області, що не належить до класу"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "не можна оголосити метод члена %qD зі статичним звʼязуванням"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "не можна оголосити статичну функцію всередині іншої функції"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "%<static%> не може бути використано при визначенні (на відміну від оголошення) статичного елемента даних"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "статичний член %qD оголошено зі специфікатором %<register%>"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "не можна явно оголосити члена %q#D зовнішнім звʼязком"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "оголошення змінної %qD з %<constexpr%> не є визначенням"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "змінну не можна оголосити як %<consteval%>"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs ініціалізовано та оголошено як %<extern%>"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs має як %<extern%>, так і ініціалізатор"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "аргумент за замовчуванням %qE використовує %qD"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "аргумент за замовчуванням %qE використовує локальну змінну %qD"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "неприпустиме використання типу %qT з кваліфікатором cv в оголошенні параметра"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "неприпустиме використання типу %<void%> в оголошенні параметра"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "параметр з кваліфікатором %<volatile%> застарілий"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "параметр %qD неправильно оголошений як тип методу"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "параметр %qD містить вказівник на масив невідомого розміру %qT"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "параметр %qD містить посилання на масив невідомого розміру %qT"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "неправильний конструктор; ви, ймовірно, мали на увазі %<%T (const %T&)%>"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD не може бути оголошений в межах простору імен"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD не може бути оголошений як статичний"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, gcc-internal-format
 msgid "%qD must be a non-static member function"
 msgstr "%qD повинна бути нестатичною функцією-членом"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "%qD повинна бути функцією-членом"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "%qD може бути статичною функцією-членом лише з %<-std=c++23%> або %<-std=gnu++23%>"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD повинна бути або нестатичною функцією-членом, або функцією, що не є членом"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD повинна мати аргумент класу або перелічуваного типу"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ забороняє перевантаження %<operator ?:%>"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD не повинна мати змінну кількість аргументів"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, gcc-internal-format
 msgid "%qD must have either zero or one argument"
 msgstr "%qD повинна мати нуль або один аргумент"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, gcc-internal-format
 msgid "%qD must have either one or two arguments"
 msgstr "%qD повинна мати один або два аргументи"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "постфіксний %qD повинен мати %<int%> як свій аргумент"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, gcc-internal-format
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "постфіксний %qD повинен мати %<int%> як свій другий аргумент"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, gcc-internal-format
 msgid "%qD must have no arguments"
 msgstr "%qD не повинна мати аргументів"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, gcc-internal-format
 msgid "%qD must have exactly one argument"
 msgstr "%qD повинна мати рівно один аргумент"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, gcc-internal-format
 msgid "%qD must have exactly two arguments"
 msgstr "%qD повинна мати рівно два аргументи"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD не може мати аргументів за замовчуванням"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "перетворення %qT в %<void%> ніколи не використовуватиме оператор перетворення типу"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "перетворення %qT в посилання на той самий тип ніколи не використовуватиме оператор перетворення типу"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "перетворення %qT на той самий тип ніколи не використовуватиме оператор перетворення типу"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "перетворення %qT на посилання на базовий клас %qT ніколи не використовуватиме оператор перетворення типу"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "перетворення %qT на базовий клас %qT ніколи не використовуватиме оператор перетворення типу"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "користувацький %qD завжди оцінює обидва аргументи"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "префіксний %qD повинен повертати %qT"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "постфіксний %qD повинен повертати %qT"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD повинен повертати за значенням"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "використання параметра типу шаблону %qT після %qs"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "використання спеціалізації псевдоніма шаблону %qT після %qs"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "використання імені typedef %qD після %qs"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "%qD має попередню декларацію тут"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "%qT згадується як %qs"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "%qT має попереднє оголошення тут"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "%qT згадується як перелічування"
@@ -57920,116 +57935,100 @@ msgstr "%qT згадується як перелічування"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "потрібен аргумент шаблону для %<%s %T%>"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "посилання на %qD є неоднозначним"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, gcc-internal-format
 msgid "class template %qD redeclared as non-template"
 msgstr "шаблон класу %qD перевизначено як не-шаблон"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD має те саме імʼя, що і клас, в якому воно оголошено"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT не є шаблоном"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr "можливо, ви хочете явно додати %<%T::%>"
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "використання перелічування %q#D без попередньої декларації"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "повторне оголошення %qT як не-шаблону"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, gcc-internal-format
-msgid "cannot declare %qD in a different module"
-msgstr "не можна оголосити %qD в іншому модулі"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "раніше оголошено тут"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "похідне обʼєднання %qT недійсне"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr "%qT визначено з кількома прямими базами"
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr "%qT визначено з прямим віртуальним базовим класом"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "базовий тип %qT не є структурою або класом"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "рекурсивний тип %qT не визначений"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "подвійний базовий тип %qT недійсний"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD in a different module"
-msgid "cannot declare %qD in different module"
-msgstr "не можна оголосити %qD в іншому модулі"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr "невідповідність між з областю видимості та без області видимості в перелічуванні %q#T"
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr "попереднє визначення тут"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr "невідповідність підставного типу в перелічуванні %q#T"
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr "різний підставний тип в перелічуванні %q#T"
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr "тип основи %qT для %qT повинен бути цілочисельним типом"
@@ -58038,82 +58037,82 @@ msgstr "тип основи %qT для %qT повинен бути цілочи
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "жоден цілочисельний тип не може представити всі значення перелічування для %qT"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "значення перелічування для %qD повинно мати цілочисельний або необмежений тип перелічування"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "значення перелічування для %qD не є цілочисельною константою"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "значення збільшеного перелічування занадто велике для %<unsigned long%>"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "значення збільшеного перелічування занадто велике для %<long%>"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "переповнення значень перелічування на %qD"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "значення перелічування %qE знаходиться поза діапазоном базового типу %qT"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "множинне визначення %q#T"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "тип повернення %q#T неповний"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%> повинен повертати посилання на %<*this%>"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "в функції, що повертає %qT, відсутні оператори повернення"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "тільки простий тип повернення %<auto%> може бути виведений як %<void%>"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, gcc-internal-format
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "в %<constexpr%> функції, яка повертає не-void, відсутній оператор return"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD вже визначено в класі %qT"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, gcc-internal-format
 msgid "using %qs"
 msgstr "використання %qs"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr "використання %qD до виведення типу %<auto%>"
@@ -58168,7 +58167,7 @@ msgstr "неможливо видалити функцію. Лише вказі
 msgid "deleting %qT is undefined"
 msgstr "видалення %qT не визначено"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "шаблонне оголошення %q#D"
@@ -58178,7 +58177,7 @@ msgstr "шаблонне оголошення %q#D"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "надані списки параметрів шаблону не відповідають параметрам шаблону %qD"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "деструктор %qD оголошено як шаблон члена"
@@ -58362,65 +58361,65 @@ msgstr "знищувальний %<operator delete%> повинен бути з
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> приймає тип %qT як перший параметр"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr "%qT має поле %q#D, тип якого не має звʼязку"
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr "%qT має поле %qD, тип якого залежить від типу %qT, який не має звʼязку"
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%qT має поле %q#D, тип якого має внутрішнє звʼязування"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr "%qT має поле %q#D, тип якого використовує анонімний простір імен"
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qT оголошено з більшою видимістю, ніж тип його поля %qD"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr "%qT має базу %qT, яка не має звʼязку"
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr "%qT має базу %qT, яка залежить від типу %qT, який не має звʼязку"
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr "%qT має базу %qT, яка має внутрішнє звʼязування"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr "%qT має базу %qT, яка використовує анонімний простір імен"
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT оголошено з більшою видимістю, ніж його база %qT"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D, declared using unnamed type, is used but never defined"
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%q#D, оголошений за допомогою безіменного типу, використовується, але ніколи не визначений"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D, declared using unnamed type, is used but never defined"
 msgid "%q#D, declared using an unnamed type, is used but not defined"
@@ -58430,105 +58429,105 @@ msgstr "%q#D, оголошений за допомогою безіменног
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "безіменний тип без звʼязку використовується для оголошення змінної %q#D зі звʼязком"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "безіменний тип без звʼязку використовується для оголошення функції %q#D зі звʼязком"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q#D не посилається на некваліфікований тип, тому він не використовується для звʼязку"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q#D, оголошений за допомогою локального типу %qT, використовується, але ніколи не визначений"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D, declared using local type %qT, is used but never defined"
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%q#D, оголошений за допомогою локального типу %qT, використовується, але ніколи не визначений"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr "тип %qT без звʼязку використовується для оголошення змінної %q#D зі звʼязком"
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "тип %qT без звʼязку використовується для оголошення функції %q#D зі звʼязком"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "декорування %q#D як %qE конфліктує з попереднім декоруванням"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr "попереднє декорування %q#D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr "пізніший %<-fabi-version=%> (або =0) уникне цю помилку при допомозі зміни декорування"
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr "програма також повинна визначати %qD"
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr "використовується вбудована функція %qD, але ніколи не визначена"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "відсутній аргумент за замовчуванням для параметра %P функції %q#D"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr "...після параметра %P, який має аргумент за замовчуванням"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr "неявно оголошений %qD застарілий"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr "тому що %qT має користувацький %qD"
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "перетворення лямбда-функції, яка використовує %<...%>, в вказівник на функцію"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "використання видаленої функції %qD"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "використання функції %qD з незадовільними обмеженнями"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr "використання вбудованого пакету параметрів %qD поза шаблоном"
@@ -58633,7 +58632,7 @@ msgstr "посилання на %<%T::%D%> є неоднозначним"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qD не є членом %qT; ви мали на увазі %qs?"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD не є членом %qT"
@@ -58643,7 +58642,7 @@ msgstr "%qD не є членом %qT"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qD не є членом %qD; ви мали на увазі %qs?"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD не є членом %qD"
@@ -58668,47 +58667,47 @@ msgstr "обробка винятків вимкнена, використову
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "кидається NULL, який має цілочисельний, а не вказівний тип"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  у викинутому виразі"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "не можна оголосити параметр %<catch%> з типом rvalue reference %qT"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "не можна кинути вираз типу %qT, оскільки він містить типи змінної розмірності"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "не можна перехопити тип %qT, оскільки він містить типи змінної розмірності"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "виняток типу %qT буде перехоплений раніше визначеним обробником"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, gcc-internal-format
 msgid "for type %qT"
 msgstr "для типу %qT"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "обробник %<...%> повинен бути останнім обробником для свого блоку try"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr "вираз noexcept обчислюється як %<false%> через виклик %qD"
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr "але %qD не викидає виняток; можливо, його слід оголосити як %<noexcept%>"
@@ -58975,12 +58974,12 @@ msgstr "тип %qT не є прямим або віртуальним базов
 msgid "type %qT is not a direct base of %qT"
 msgstr "тип %qT не є прямим базовим класом для %qT"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "масив повинен бути ініціалізований за допомогою ініціалізатора, заключеного у фігурні дужки"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT не є типом класу"
@@ -58995,12 +58994,12 @@ msgstr "неповний тип %qT не має члена %qD"
 msgid "invalid pointer to bit-field %qD"
 msgstr "недійсний вказівник на біт-поле %qD"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "недійсне використання нестатичного член-функції %qD"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "недійсне використання нестатичного члена даних %qD"
@@ -59195,52 +59194,52 @@ msgstr "видалення обʼєкта абстрактного класу т
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr "видалення обʼєкта поліморфного класу типу %qT, який має невіртуальний деструктор, може призвести до невизначеного поведінки"
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "тип, переданий для векторного видалення, не є або вказівником, або масивом"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr "масив з обмеженням часу виконання не може бути захоплений копіюванням, тільки посиланням"
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr "захоплення змінюваного типу %qT, який не є масивом N3639 з обмеженням часу виконання"
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr "тому що тип елемента масиву %qT має змінний розмір"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "не можу захопити %qE по посиланню"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "захоплення копією неповного типу %qT"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr "спроба захопити %qD при інстанціюванні загального лямбда-виразу"
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr "неявне захоплення %qE через %<[=]%> застаріло в C++20"
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr "додайте явне захоплення %<this%> або %<*this%>"
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "%<this%> не було захоплено для цієї лямбда-функції"
@@ -59611,223 +59610,276 @@ msgstr "неочікуваний формат або тип інкапсуляц
 msgid "encapsulation is malformed"
 msgstr "інкапсуляція має неправильний формат"
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, gcc-internal-format
 msgid "conflicting global module declaration %#qD"
 msgstr "конфліктуюча глобальна декларація модуля %#qD"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, gcc-internal-format
 msgid "existing declaration %#qD"
 msgstr "існуюча декларація %#qD"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr "визначення %qD не відповідає"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, gcc-internal-format
 msgid "existing definition %qD"
 msgstr "існуюче визначення %qD"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, gcc-internal-format
 msgid "... this enumerator %qD"
 msgstr "... цей перелічувач %qD"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "перелічувач %qD не відповідає ..."
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr "додаткові перелічувачі, що починаються з %qD"
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr "діапазон перелічення відрізняється"
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr "%q#D посилається на сутність з внутрішньою звʼязком %q#D"
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr "рекурсивне ліниве завантаження"
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr "не можна імпортувати модуль у його власну сферу"
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, gcc-internal-format
 msgid "module %qs declared here"
 msgstr "модуль %qs оголошено тут"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr "непрямий імпорт %qs ще не завантажено"
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr "імпорт %qs має невідповідність контрольної суми CRC"
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr "неможливо представити додаткові імпортовані джерела"
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr "не експортується %<#define %E%>, оскільки це ключове слово"
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, gcc-internal-format
 msgid "macro definitions of %qE corrupted"
 msgstr "визначення макросу %qE пошкоджено"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr "неспівпадаюче визначення імпортованого макросу %qE"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr "%<#undef %E%>"
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr "%<#define %s%>"
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr "файл скомпільованого модуля - %qs"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, gcc-internal-format, gfc-internal-format
 msgid "compiled module is %sversion %s"
 msgstr "скомпільований модуль - %sверсія %s"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, gcc-internal-format, gfc-internal-format
 msgid "compiler is %sversion %s%s%s"
 msgstr "компілятор - %sверсія %s%s%s"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, gcc-internal-format
 msgid "module %qs found"
 msgstr "знайдено модуль %qs"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr "очікувався заголовок модуля, знайдено модуль %qs"
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr "очікувався модуль %qs, знайдено заголовок модуля"
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr "неспівпадання контрольної суми модуля %qs"
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr "ціль та хост - %qs:%qs, очікувалося %qs:%qs"
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr "Діалект мови відрізняється %qs, очікувався %qs"
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr "Модуль містить OpenMP, використовуйте %<-fopenmp%>, щоб увімкнути його"
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr "несумісність виправленого дерева"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, gcc-internal-format
 msgid "interface partition is not exported"
 msgstr "інтерфейсна частина не експортується"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr "не вдалося прочитати скомпільований модульний кластер %u: %s"
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr "не вдалося прочитати скомпільований модуль: %s"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr "розгляньте використання %<-fno-module-lazy%>, збільшення значення %<-param-lazy-modules=%u%> або збільшення обмеження файлових дескрипторів на процес"
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr "імпорти мають бути побудовані перед імпортом"
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr "повернення до гейту через технічну проблему"
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr "декларація %qD конфліктує з вбудованою функцією"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+#| msgid "declaration %qD conflicts with import"
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "декларація %qD конфліктує з імпортом"
+
+#: cp/module.cc:19125
+#, fuzzy, gcc-internal-format
+#| msgid "declaration %qD conflicts with import"
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr "декларація %qD конфліктує з імпортом"
+
+#: cp/module.cc:19130
+#, fuzzy, gcc-internal-format
+#| msgid "import declared %q#D here"
+msgid "import declared attached to module %qs"
+msgstr "імпорт оголошено %q#D тут"
+
+#: cp/module.cc:19134
+#, fuzzy, gcc-internal-format
+#| msgid "import-declaration must be at global scope"
+msgid "import declared in global module"
+msgstr "Декларація імпорту повинна бути в глобальному контексті"
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration of template %q#D"
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "конфліктна декларація шаблону %q#D"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration of %q#D with %qL linkage"
+msgid "conflicting declaration of %qD in global module"
+msgstr "конфліктуюче оголошення %q#D з %qL звʼязком"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared as %s"
+msgid "previously declared in module %qs"
+msgstr "раніше оголошено як %s"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared as %s"
+msgid "previously declared in global module"
+msgstr "раніше оголошено як %s"
+
+#: cp/module.cc:19404
 #, gcc-internal-format
 msgid "reading CMI %qs"
 msgstr "читання CMI %qs"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr "не вдалося завантажити звʼязування %<%E%s%E%>"
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr "не вдалося завантажити звʼязування %<%E%s%E@%s%>"
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr "під час завантаження звʼязування %<%E%s%E%>"
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr "під час завантаження звʼязування %<%E%s%E@%s%>"
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr "не вдалося завантажити очікувані одиниці для %<%E%s%E%>"
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr "під час завантаження очікуваних одиниць для %<%E%s%E%>"
@@ -59839,302 +59891,302 @@ msgstr "під час завантаження очікуваних одиниц
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr "імпорт іменованого модуля %qs всередині блоку мовного звʼязку"
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, gcc-internal-format
 msgid "module already declared"
 msgstr "модуль вже оголошено"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, gcc-internal-format
 msgid "module already imported"
 msgstr "модуль вже імпортовано"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, gcc-internal-format
 msgid "module %qs imported here"
 msgstr "модуль %qs імпортовано тут"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr "невідомий скомпільований інтерфейс модуля (CMI): %s"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr "не вдалося визначити переклад %<#include%> для %s: %s"
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr "включення %qs перекладено як імпорт"
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr "включення %qs оброблено текстово"
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr "Модулі C++ несумісні з попередньо скомпільованими заголовками"
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, gcc-internal-format
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "Модулі C++ несумісні з традиційною попередньою обробкою"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr "відлагоджувальний вивід макросів може бути неповним з модулями"
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr "залежності модулів вимагають попередньої обробки"
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr "ви повинні використовувати опцію %<-%s%>"
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, gcc-internal-format
 msgid "invalid header name %qs"
 msgstr "неприпустиме імʼя заголовка %qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, gcc-internal-format
 msgid "invalid module name %qs"
 msgstr "неприпустиме імʼя модуля %qs"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr "%<-fmodule-only%> використовується для неінтерфейсу"
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, gcc-internal-format
 msgid "writing CMI %qs"
 msgstr "запис CMI %qs"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, gcc-internal-format
 msgid "not writing module %qs due to errors"
 msgstr "не вдається записати модуль %qs через помилки"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr "не вдалося записати скомпільований модуль: %s"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr "невідомий тип заголовка %qs"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, fuzzy, gcc-internal-format
 #| msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "виведення псевдоніма шаблону доступне лише з %<-std=c++20%> або %<-std=gnu++20%>"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "перевизначення %q#D з різними параметрами шаблону"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D конфліктує з попереднім оголошенням"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, gcc-internal-format
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D приховує конструктор для %q#D"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, gcc-internal-format
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "конфліктна декларація звʼязку мови C %q#D"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "через різні специфікації винятків"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, gcc-internal-format
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "параметр лямбда-виразу %qD вже був оголошений як захоплення"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "оголошення %q#D затіняє параметр"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "оголошення %qD затіняє член %qT"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "дружня декларація %qD в локальному класі без попередньої локальної декларації"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %<%s(%E)%> %p %d"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, gcc-internal-format
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D does not have external linkage"
 msgid "exporting %q#D that does not have external linkage"
 msgstr "%q#D не має зовнішнього звʼязку"
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D declared here"
 msgid "%q#D declared here with no linkage"
 msgstr "%q#D оголошений тут"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D does not have external linkage"
 msgid "%q#D declared here with internal linkage"
 msgstr "%q#D не має зовнішнього звʼязку"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D declared here"
 msgid "%q#D declared here with module linkage"
 msgstr "%q#D оголошений тут"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, gcc-internal-format
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T%s%D%> називає деструктор"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "оголошення «using» для не-члена на рівні області класу"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "%<using%> з областю перелічення %q#T доступний лише з %<-std=c++20%> або %<-std=gnu++20%>"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qT не є класом, простором імен або переліченням"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "оголошення «using» для не-члена називає конструктор %qT"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr "оголошення «using» для члена на рівні поза класом"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, gcc-internal-format
 msgid "%qT is not a direct base of %qT"
 msgstr "%qT не є прямим базовим класом %qT"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr "ви мали на увазі %<using enum %T::%D%>?"
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "%qD не було оголошено в %qD"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr "оголошення «using» не може називати простір імен %qD"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> називає конструктор в %qT"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "оголошення %qD не знаходиться в просторі імен, що оточує %qD"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "явна кваліфікація в оголошенні %qD"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD повинно бути оголошено всередині %qD"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "%qD не було оголошено всередині %qD"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, gcc-internal-format
 msgid "only here as a %<friend%>"
 msgstr "тільки тут як %<friend%>"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "атрибут %qD вимагає одного аргументу NTBS"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr "атрибут %qD не має сенсу, оскільки елементи анонімного простору імен отримують локальні символи"
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr "ігнорується атрибут %qD на анонімному просторі імен"
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "ігнорування атрибуту %qD на неінлайновому просторі імен"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "ігнорування директиви атрибуту %qD"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr "максимальний ліміт %d просторів імен, що шукаються для %qE"
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
@@ -60142,94 +60194,94 @@ msgstr[0] "запропонована альтернатива:"
 msgstr[1] "запропоновані альтернативи:"
 msgstr[2] "запропоновані альтернативи:"
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr "  %qE"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, fuzzy, gcc-internal-format
 #| msgid "%<std::%s%> is defined in header %qs; did you forget to %<#include %s%>?"
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr "%<std::%s%> визначено в заголовку %qs; ви забули %<#include %s%>?"
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "%<std::%s%> доступний лише з %s"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr "макро %qs ще не було визначено"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, gcc-internal-format
 msgid "it was later defined here"
 msgstr "воно було пізніше визначено тут"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr "оголошення %<std::initializer_list%> не відповідає %<#include <initializer_list>%>, не є шаблоном"
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, gcc-internal-format
 msgid "%<strong%> using directive no longer supported"
 msgstr "%<strong%> директива using більше не підтримується"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr "замість цього ви можете використовувати вбудований простір імен"
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, gcc-internal-format
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%<omp::%E%> не може бути вказано в цьому контексті"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr "не можна вкладати більше %d просторів імен"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "%<namespace %E%> є неоднозначним"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "псевдонім простору імен %qD не дозволений тут, припускаємо %qD"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr "вбудований простір імен повинен бути вказаний при початковому визначенні"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, gcc-internal-format
 msgid "%qD defined here"
 msgstr "%qD визначено тут"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "простір імен %s %qD конфліктує з досяжним визначенням"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr "досяжне визначення %s тут"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, gcc-internal-format
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX входження в %<pop_everything ()%>"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, gcc-internal-format
 msgid "XXX leaving %<pop_everything ()%>"
 msgstr "XXX залишає %<pop_everything ()%>"
@@ -60254,7 +60306,7 @@ msgstr "ідентифікатор %qE є ключовим словом в C++20
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr "%<LEXER_DEBUGGING_ENABLED_P%> не встановлено на true"
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma omp declare %s%> не негайно слідує за оголошенням або визначенням функції"
@@ -60500,7 +60552,7 @@ msgstr "C++20 %<constinit%> доступний лише з %<-std=c++20%> або
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<concept%> доступно лише з %<-std=c++20%> або %<-fconcepts%>"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<requires%> доступно лише з %<-std=c++20%> або %<-fconcepts%>"
@@ -60680,7 +60732,7 @@ msgstr "вирази-оператори не дозволяються поза 
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "вирази складання доступні лише з %<-std=c++17%> або %<-std=gnu++17%>"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "очікується первинний вираз"
@@ -60736,7 +60788,7 @@ msgstr "%<~auto%> доступний лише з %<-std=c++14%> або %<-std=gn
 msgid "template-id not allowed for destructor in C++20"
 msgstr "template-id не дозволено для деструктора"
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, fuzzy, gcc-internal-format
 #| msgid "remove parentheses"
 msgid "remove the %qs"
@@ -60757,7 +60809,7 @@ msgstr "імʼя typedef %qD використовується як деклар
 msgid "expected unqualified-id"
 msgstr "очікувано некваліфікований ідентифікатор"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD не є шаблоном"
@@ -60807,7 +60859,7 @@ msgstr "типи не можуть бути визначені у виразі %
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "неправильна кількість аргументів для %<__builtin_addressof%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "неправильна кількість аргументів для %<__builtin_launder%>"
@@ -60843,7 +60895,7 @@ msgstr "Типи не можуть бути визначені всередин
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "неправильне використання %qD"
@@ -60868,7 +60920,7 @@ msgstr "ISO C++ не дозволяє %<alignof%> з не-типом"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "Типи не можуть бути визначені в виразах %<noexcept%>"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr "Типи не можуть бути визначені в виразах %qs"
@@ -61018,8 +61070,8 @@ msgstr "порожній ініціалізатор для захоплення
 msgid "capture of non-variable %qE"
 msgstr "захоплення незмінної %qE"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%q#D оголошений тут"
@@ -61059,7 +61111,7 @@ msgstr "вказано значення за замовчуванням для 
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "Оголошення параметра перед специфікаторами оголошення лямбди є необовʼязковим лише з %<-std=c++2b%> або %<-std=gnu++2b%>"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -61186,7 +61238,7 @@ msgstr "%<if consteval%> вимагає складений оператор"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "ініціалізуюча-інструкція в операторах вибору доступна лише з %<-std=c++17%> або %<-std=gnu++17%>"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "очікується оператор вибору"
@@ -61248,7 +61300,7 @@ msgstr "вираз %<for%> на основі діапазону з типом %q
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr "несумісні типи початку/кінця в операторі %<for%> на основі діапазону: %qT і %qT"
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "очікується оператор ітерації"
@@ -61274,7 +61326,7 @@ msgstr "%<goto%> у функції %<constexpr%> доступний лише з
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ забороняє обчислювані переходи"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "очікується оператор переходу"
@@ -61558,12 +61610,12 @@ msgstr "лише конструктори приймають ініціаліз
 msgid "cannot expand initializer for member %qD"
 msgstr "не вдається розгорнути ініціалізатор для члена %qD"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "ініціалізатор mem для %qD слідує за делегуванням конструктора"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr "делегування конструктора слідує за ініціалізатором mem для %qD"
@@ -62204,7 +62256,7 @@ msgstr "відсутні аргументи шаблону після %qE"
 msgid "%qT not permitted in template argument"
 msgstr "%qT не допускається в аргументі шаблону"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, gcc-internal-format
 msgid "invalid use of %qT"
@@ -62386,12 +62438,12 @@ msgstr "попереднє визначення %q#T"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr "нерозгорнутий пакет параметрів у локальному класі в лямбді"
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr "очікується ключ-клас"
@@ -62594,37 +62646,37 @@ msgstr "атрибут, що використовує префікс, досту
 msgid "expression must be enclosed in parentheses"
 msgstr "вираз повинен бути укладений у дужки"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr "відсутнє додаткове %<requires%>, щоб почати вимогу-вираз"
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr "перевірка, чи є ідентифікатор концепції дійсним виразом; додайте %<requires%>, щоб перевірити задоволеність"
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, gcc-internal-format
 msgid "result type is not a plain type-constraint"
 msgstr "тип результату не є простою обмеженням типу"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr "%<return-type-requirement%> не є обмеженням типу"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr "спеціалізація члена %<%T::%E%> вимагає синтаксису %<template<>%>"
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "недійсна декларація %<%T::%E%>"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "занадто мало списків параметрів шаблону"
@@ -62633,439 +62685,439 @@ msgstr "занадто мало списків параметрів шаблон
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "занадто багато списків параметрів шаблону"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, fuzzy, gcc-internal-format
 #| msgid "template-id not allowed for destructor"
 msgid "template-id not allowed for constructor in C++20"
 msgstr "template-id не дозволено для деструктора"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "іменовані значення повернення більше не підтримуються"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr "ISO C++ не прийняв операторні шаблони літералів рядків, які приймають набір аргументів з символів"
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr "шаблон оператора літералу %qD має неприпустимий список параметрів; очікувався набір не-типових параметрів шаблону %<<char...>%> або один не-типовий параметр класового типу"
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr "шаблон оператора літералу %qD має неприпустимий список параметрів; очікувався шаблон для набору не-типових аргументів %<<char...>%>"
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr "введення шаблонів не є частиною концепцій C++20; використовуйте %qs для активації"
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr "немає відповідної концепції для введення шаблону"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "недійсна декларація шаблону члена в локальному класі"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "шаблон з C-звʼязком"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "недійсна явна спеціалізація"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "декларація шаблону %<typedef%>"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr "декларація шаблону класу не повинна декларувати щось інше"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "явна спеціалізація шаблону не може мати клас зберігання"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%<>>%> повинно бути %<> >%> в межах вкладеного списку аргументів шаблону"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "неправильне використання %<>>%>, використовуйте %<>%>, щоб закінчити список аргументів шаблону"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, gcc-internal-format
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "%qs повинно бути %qs для завершення списку аргументів шаблону"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr "аргумент %<sizeof...%> повинен бути оточений дужками"
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "неправильне використання %qD в специфікації звʼязку"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr "повторний вказівник %qD"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr "вказівник %qD конфліктує з %qs"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> перед %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "вказівник %qD конфліктує з %<typedef%>"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ 1998 не підтримує %<long long%>"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "вказано як %<__thread%>, так і %<thread_local%>"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "подвійне %qD"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "подвійне %qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "очікується %<new%>"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "очікується %<delete%>"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "очікується %<return%>"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "очікується %<extern%>"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "очікується %<static_assert%>"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "очікується %<decltype%>"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "очікується %<operator%>"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "очікується %<class%>"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "очікується %<template%>"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "очікується %<namespace%>"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "очікувався %<using%>"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "очікувався %<asm%>"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "очікувався %<try%>"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "очікувався %<catch%>"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "очікувався %<throw%>"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr "очікувався %<auto%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "очікувався %<__label__%>"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "очікувався %<@try%>"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "очікувався %<@synchronized%>"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "очікувався %<@throw%>"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "очікувався %<__transaction_atomic%>"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "очікувався %<__transaction_relaxed%>"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr "очікувався %<co_yield%>"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "очікувався %<::%>"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "очікувався %<...%>"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "очікувався %<*%>"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "очікувався %<~%>"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "очікувався %<:%> або %<::%>"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "очікувався %<class%>, %<typename%> або %<template%>"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr "зайвий ключ переліку %<enum%s%> у посиланні на %q#T"
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "тег %qs використовується при наданні імені %q#T"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "%q#T було раніше оголошено тут"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, gcc-internal-format
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "зайвий ключ класу %qs у посиланні на %q#T"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qT оголошено з несумісним ключем класу %qs"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr "видаліть ключ класу або замініть його на %qs"
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "замініть ключ класу на %qs"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr "%qT визначено як %qs тут"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr "%qT вперше оголошено як %qs тут"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD повторно оголошено з різним доступом"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "у C++98 %<template%> (як розрізнювач) дозволено лише в межах шаблонів"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "файл закінчується на типовий аргумент"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "неправильно розташований конструкт Objective-C++ %<@%D%>"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr "очікується отримувач повідомлення objective-c++"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr "очікується аргумент(и) повідомлення objective-c++"
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "%<@encode%> повинен вказувати тип як аргумент"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "недійсне імʼя селектора Objective-C++"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr "очікується оголошення методу objective-c++"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "атрибути методу повинні бути вказані в кінці"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr "зайвий %qs між методами Objective-C++"
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "недійсний тип для змінної екземпляра"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "очікується ідентифікатор після %<@protocol%>"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr "атрибути не можуть бути вказані перед ключовим словом Objective-C++ %<@%D%>"
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "Префіксні атрибути ігноруються перед %<@%D%>"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, gcc-internal-format
 msgid "invalid type for property"
 msgstr "Недійсний тип для властивості"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr "Невідомий атрибут властивості %qE"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, gcc-internal-format
 msgid "expected integer expression list"
 msgstr "Очікувалась список цілочисельних виразів"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "Вираз %<wait%> повинен бути цілочисельним"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<scalar%>, %<aggregate%> or %<pointer%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "очікується %<scalar%>, %<aggregate%> або %<pointer%>"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "Недійсний ідентифікатор зведення"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr "Типи не можуть бути визначені в типі ітератора"
@@ -63074,12 +63126,12 @@ msgstr "Типи не можуть бути визначені в типі іт
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, gcc-internal-format
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "%<#pragma omp allocate%> ще не підтримується"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr "У круглих дужках ініціалізація не дозволена в циклі OpenMP %<for%>"
@@ -63089,134 +63141,134 @@ msgstr "У круглих дужках ініціалізація не дозв
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr "Замикання %<ordered%> з параметром в циклі %<for%> з діапазоном"
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "ітераційна змінна %qD не повинна бути зведенням"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp declare %s%> за яким слідує %<#pragma omp declare %s%>"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr "Директива OpenMP, відмінна від %<declare simd%> або %<declare variant%>, належить до оголошення"
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "недійсне замикання ініціалізатора"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "очікується id-вираз (аргументи)"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr "одним з аргументів виклику ініціалізатора повинен бути %<omp_priv%> або %<&omp_priv%>"
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr "типи не можуть бути визначені в списку типів для зведення"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr "попередньо визначений арифметичний тип %qT в %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr "тип функції або масиву %qT в %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr "тип посилання %qT в %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr "тип %qT з кваліфікаторами %<const%>, %<volatile%> або %<__restrict%> в %<#pragma omp declare reduction%>"
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr "%<#pragma acc routine%> називає набір перевантажень"
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD не посилається на функцію в області простору імен"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr "%<atomic_cancel%>"
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr "%<__transaction_relaxed%> без підтримки транзакційної памʼяті"
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr "%<__transaction_atomic%> без включеної підтримки транзакційної памʼяті"
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr "зовнішній %<__transaction_cancel%> не знаходиться всередині зовнішнього %<__transaction_atomic%>"
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr "  або функція %<transaction_may_cancel_outer%>"
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "неправильно сформований %<#pragma GCC pch_preprocess%>"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp requires%> може використовуватися тільки на рівні файлу або простору імен"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp assumes%> може використовуватися тільки на рівні файлу або простору імен"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma GCC ivdep%> must be inside a function"
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "%<#pragma GCC ivdep%> повинен бути всередині функції"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, gcc-internal-format
 msgid "multi-source compilation not implemented for C++"
 msgstr "багатоджерельна компіляція не реалізована для C++"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, gcc-internal-format
 msgid "placeholder type not allowed in this context"
 msgstr "тип-заповнювач не дозволений в цьому контексті"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr "імпліцитні шаблони не можуть бути %<virtual%>"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr "звʼязування %<extern \"C\"%> почалося тут"
@@ -63246,7 +63298,7 @@ msgstr "обрамлюючі шаблони класу не є явно спец
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "спеціалізація %qD повинна зʼявитися в області простору імен"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "спеціалізація %qD в різних просторах імен"
@@ -63261,170 +63313,170 @@ msgstr "  з визначення %q#D"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "явне інстанціювання %qD в просторі імен %qD (який не містить простір імен %qD)"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "назва класу затіняє параметр шаблону шаблону %qD"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "спеціалізація псевдоніму шаблону %qD"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "явна спеціалізація непатрону %qT"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "спеціалізація %qT після інстанціювання"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, gcc-internal-format
 msgid "from definition of %q#D"
 msgstr "з визначення %q#D"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "спеціалізація %qT після інстанціювання %qT"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "спеціалізація шаблону %qD не дозволена за стандартом ISO C++"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "спеціалізація %qD після інстанціювання"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, gcc-internal-format
 msgid "%s %#qD"
 msgstr "%s %#qD"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD не є шаблоном функції"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "%qD не є шаблоном змінної"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "template-id %qD для %q+D не відповідає жодній декларації шаблону"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr "знайдено %d %<template<>%>, потрібно %d для спеціалізації шаблону функції-члена"
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "неоднозначна спеціалізація шаблону %qD для %q+D"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "змінні шаблони доступні лише з %<-std=c++14%> або %<-std=gnu++14%>"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr "занадто багато заголовків шаблону для %qD (повинно бути %d)"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr "елементи явно спеціалізованого класу визначені без заголовка шаблону"
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "явна спеціалізація %qD поза його простором імен повинна використовувати вкладений імʼя"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "явне інстанціювання %qD поза його простором імен повинно використовувати вкладений імʼя"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "явна спеціалізація %q#D може мати відсутні атрибути"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "відсутні атрибути основного шаблону %s"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "відсутній атрибут основного шаблону %s"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, gcc-internal-format
 msgid "template-id %qE in declaration of primary template"
 msgstr "ідентифікатор шаблону %qE в оголошенні основного шаблону"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "список параметрів шаблону, використаний у явному інстанціюванні"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "надано визначення для явного інстанціювання"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "занадто багато списків параметрів шаблону в оголошенні %qD"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "занадто мало списків параметрів шаблону в оголошенні %qD"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "явна спеціалізація %qD повинна бути введена за допомогою %<template <>%>"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr "явна спеціалізація оголошена %<concept%>"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "часткова спеціалізація без типу %qE не дозволена"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "часткова спеціалізація %qE не дозволена для не-класів та не-змінних"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "задано значення за замовчуванням у явній спеціалізації"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD не є шаблонною функцією"
@@ -63437,137 +63489,137 @@ msgstr "%qD не є шаблонною функцією"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "спеціалізація неявно оголошеної спеціальної членової функції"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "членова функція %qD не оголошена в %qT"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "декларація friend %qD не видима для явної спеціалізації"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, gcc-internal-format
 msgid "friend declaration here"
 msgstr "декларація friend тут"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr "явна спеціалізація концепції функції %qD"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, gcc-internal-format
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "аргумент для %<__integer_pack%> повинен бути між 0 і %d"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr "розширення базового ініціалізатора %qT не містить параметрних пакетів"
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "шаблон розширення %qT не містить параметричних пакетів"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "шаблон розширення %qE не містить параметричних пакетів"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr "параметричні пакети не розгорнуті з %<...%>:"
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr "        %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "оголошення параметра шаблона %q+D затіняє параметр шаблона"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "оголошення %q+#D затіняє параметр шаблона"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr "параметр шаблона %qD оголошений тут"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "спеціалізація концепції змінної %q#D"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "параметри шаблону не можуть бути виведені в частковій спеціалізації:"
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "часткова спеціалізація %q+D не спеціалізує жодних аргументів шаблону; для визначення основного шаблону, видаліть список аргументів шаблону"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr "часткова спеціалізація %q+D не спеціалізує жодних аргументів шаблону і не є більш обмеженою, ніж основний шаблон; для визначення основного шаблону, видаліть список аргументів шаблону"
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr "основний шаблон тут"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr "часткова спеціалізація не є більш спеціалізованою, ніж основний шаблон, оскільки вона замінює кілька параметрів розширенням пакета"
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, gcc-internal-format
 msgid "too many arguments for partial specialization %qT"
 msgstr "занадто багато аргументів для часткової спеціалізації %qT"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr "часткова спеціалізація %qD не є більш спеціалізованою, ніж"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, gcc-internal-format
 msgid "primary template %qD"
 msgstr "основний шаблон %qD"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr "аргумент пакету параметрів %qE повинен бути в кінці списку аргументів шаблону"
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr "аргумент пакету параметрів %qT повинен бути в кінці списку аргументів шаблону"
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
@@ -63575,17 +63627,17 @@ msgstr[0] "тип %qT аргументу шаблону %qE залежить в
 msgstr[1] "тип %qT аргументу шаблону %qE залежить від параметрів шаблону"
 msgstr[2] "тип %qT аргументу шаблону %qE залежить від параметрів шаблону"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "декларація %qD ускладнює попередню інстанціацію шаблону для %qD"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "часткова спеціалізація %qD після інстанціації %qD"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "немає стандартного аргументу для %qD"
@@ -63594,47 +63646,47 @@ msgstr "немає стандартного аргументу для %qD"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "пакет параметрів %q+D повинен бути в кінці списку параметрів шаблону"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "стандартні аргументи шаблону не можуть бути використані в повторній декларації дружньої функції шаблону"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "стандартні аргументи шаблону не можуть бути використані в деклараціях дружніх шаблонів"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "стандартні аргументи шаблону не можуть бути використані в функціональних шаблонах без %<-std=c++11%> або %<-std=gnu++11%>"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr "Стандартні аргументи шаблону не можуть використовуватися в часткових спеціалізаціях"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "Стандартний аргумент для параметра шаблону для класу, що оточує %qD"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, gcc-internal-format
 msgid "template %qD declared"
 msgstr "шаблон %qD оголошено"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "шаблон класу без назви"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr "член шаблону %qD не може мати віртуальних специфікаторів"
@@ -63644,62 +63696,62 @@ msgstr "член шаблону %qD не може мати віртуальни
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "недійсне оголошення шаблону %qD"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "визначення шаблону для нешаблону %q#D"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "очікувалося %d рівнів параметрів шаблону для %q#D, отримано %d"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "отримано %d параметрів шаблону для %q#D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "отримано %d параметрів шаблону для %q#T"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  але потрібно %d"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "аргументи шаблону для %qD не відповідають оригінальному шаблону %qD"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "використовуйте %<template<>%> для явної спеціалізації"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "повторна декларація %qD з різними обмеженнями"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT не є типом шаблону"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "специфікатори шаблону не вказані в оголошенні %qD"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
@@ -63707,7 +63759,7 @@ msgstr[0] "повторно оголошено з %d параметром шаб
 msgstr[1] "повторно оголошено з %d параметрами шаблону"
 msgstr[2] "повторно оголошено з %d параметрами шаблону"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
@@ -63715,437 +63767,437 @@ msgstr[0] "попереднє оголошення %qD використовув
 msgstr[1] "попереднє оголошення %qD використовувало %d параметри шаблону"
 msgstr[2] "попереднє оголошення %qD використовувало %d параметрів шаблону"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "параметр шаблону %q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "перевизначено тут як %q#D"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, gcc-internal-format
 msgid "redeclared here"
 msgstr "перевизначено тут"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "оголошення параметра шаблону %q+#D з різними обмеженнями"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "оригінальне оголошення зʼявилося тут"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "перевизначення %q#D з різними обмеженнями"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qE не є дійсним аргументом шаблону для типу %qT"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "це повинна бути адреса функції з зовнішнім звʼязком"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr "це повинно бути імʼя функції з зовнішнім звʼязком"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE не є дійсним аргументом шаблону для типу %qT, оскільки %qD не має звʼязку"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qE не є дійсним аргументом шаблону для типу %qT, оскільки %qD не має зовнішнього звʼязку"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "він повинен бути вказівником на член у вигляді %<&X::Y%>"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, gcc-internal-format
 msgid "because it is a member of %qT"
 msgstr "тому що він є членом %qT"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "  не вдалося вивести параметр шаблону %qD"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr "  типи %qT і %qT мають несумісні cv-якірники"
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr "  несумісні типи %qT і %qT"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "  параметр шаблону %qD не є пакетом параметрів, але аргумент %qD є"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "  аргумент шаблону %qE не відповідає сталому вказівнику на члена %qE"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "  %qE не еквівалентний %qE"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr "  непослідовна виведення пакету параметрів з %qT і %qT"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr "  виведені конфліктуючі типи для параметра %qT (%qT та %qT)"
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr "  виведені конфліктуючі значення для параметра не-типу %qE (%qE та %qE)"
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "  тип масиву змінної розмірності %qT не є допустимим аргументом шаблона"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr "  тип функції-члена %qT не є допустимим аргументом шаблона"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "  не вдається перетворити %qE (тип %qT) в тип %qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "  %qT є неоднозначним базовим класом для %qT"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "  %qT не походить від %qT"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr "  параметри шаблона шаблонного аргумента несумісні з іншими виведеними шаблонними аргументами"
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "  не можу вивести шаблон для %qT з нешаблонного типу %qT"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "  аргумент шаблона %qE не відповідає %qE"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE не є дійсним аргументом шаблона типу %qT, оскільки %qE не є змінною або функцією"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE не є дійсним аргументом шаблона типу %qT в C++98, оскільки %qD не має зовнішнього звʼязку"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE не є дійсним аргументом шаблону типу %qT, оскільки %qD не має звʼязку"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr "адреса %qD не є дійсним аргументом шаблону"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "адреса підобʼєкта %qT обʼєкта %qD не є дійсним аргументом шаблону"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "адреса %qD не є дійсним аргументом шаблону, оскільки вона не має статичної тривалості зберігання"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qD не є дійсним аргументом шаблону, оскільки %qD є змінною, а не адресою змінної"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qE не є дійсним аргументом шаблону для %qT, оскільки це не є адреса змінної"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE не є дійсним аргументом шаблону для типу %qT, оскільки рядкові літерали ніколи не можуть бути використані в цьому контексті"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "у аргументі шаблону для типу %qT"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "аргумент шаблону %qE для типу %qT не є константою часу компіляції"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE не є дійсним аргументом шаблону для типу %qT через конфлікти в cv-кваліфікації"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE не є дійсним аргументом шаблону для типу %qT, оскільки він не є l-значенням"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%q#D не є допустимим аргументом шаблону для типу %qT, оскільки змінна посилання не має сталої адреси"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE не є дійсним аргументом шаблону для типу %qT, оскільки це вказівник"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "спробуйте використовувати %qE замість цього"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE не є дійсним аргументом шаблону для типу %qT, оскільки він має тип %qT"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "ігнорування атрибутів на аргументі шаблону %qT"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "ігнорування атрибутів в аргументі шаблону %qE"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "використання введеного імені класу %qD як аргументу шаблону"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "недійсне використання деструктора %qE як типу"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "щоб посилатися на член типу параметра шаблону, використовуйте %<typename %E%>"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "неспівпадіння типу/значення в аргументі %d у списку параметрів шаблону для %qD"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  очікувався константний тип %qT, отримано %qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "  неоднозначний аргумент шаблону для неперемінного параметра шаблону розглядається як функційний тип"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  очікувався класовий шаблон, отримано %qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  очікувався тип, отримано %qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  очікувався тип, отримано %qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  очікувався класовий шаблон, отримано %qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  очікувався шаблон типу %qD, отримано %qT"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "несумісні обмеження для аргументу %d у списку параметрів шаблону для %qD"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr "  очікувався %qD, отримано %qD"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "не вдалося конвертувати аргумент шаблона %qE з %qT в %qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "аргумент шаблону %d недійсний"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "неправильна кількість аргументів шаблону (%d, повинно бути %d)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "неправильна кількість аргументів шаблону (%d, повинно бути щонайменше %d)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, gcc-internal-format
 msgid "provided for %qD"
 msgstr "надано для %qD"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr "аргумент розширення пакету для непакетного параметра %qD псевдоніма шаблону %qD"
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "аргумент розширення пакету для непакетного параметра %qD концепції %qD"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr "таким чином будь-яка інстанціація з непорожньою пакетом параметрів буде некоректною"
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%q#D не є шаблоном функції"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "тип %qT, який не є шаблоном, використовується як шаблон"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "для оголошення шаблону %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, gcc-internal-format
 msgid "template constraint failure for %qD"
 msgstr "помилка обмеження шаблону для %qD"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "використання недійсного шаблону змінної %qE"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "глибина інстанціювання шаблону перевищує максимум %d (використовуйте %<-ftemplate-depth=%>, щоб збільшити максимум)"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr "аргумент score повинен бути цілим сталим виразом"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr "аргумент score повинен бути не відʼємним"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr "властивість повинна бути цілим сталим виразом або літералом рядка"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "гнучкий елемент масиву %qD в обʼєднанні"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr "згортка порожньої розгортки над %O"
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, gcc-internal-format
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE не є повністю шаблоном розгортки пакету"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr "невідповідні довжини пакету аргументів при розгортанні %qT"
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr "невідповідні довжини пакету аргументів при розгортанні %qE"
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "  при створенні значення за замовчуванням для виклику %qD"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "створення вказівника на функцію-член некласового типу %qT"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr "невідповідні довжини наборів аргументів (%d проти %d)"
@@ -64163,301 +64215,301 @@ msgstr "невідповідні довжини наборів аргумент
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "змінна %qD має тип функції"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "недійсний тип параметра %qT"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "у оголошенні %q+D"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "функція, що повертає масив"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "функція, що повертає функцію"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "створення посилання на тип «void»"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "створення вказівника на тип посилання %qT"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "створення посилання на тип посилання %qT"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "створення вказівника на кваліфікований тип функції %qT"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "формування посилання на кваліфікований тип функції %qT"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "створення вказівника на член типу, що не є класом %qT"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "створення вказівника на тип посилання на член %qT"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "створення вказівника на член типу void"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "створення масиву з %qT"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr "%qD інстанціюється для порожнього пакету"
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT не є класом, структурою або обʼєднанням"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT розрішується як %qT, який не є перелічуванням"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT розрішується як %qT, але це не класовий тип"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "використання %qs у шаблоні"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "тип, що кваліфікує %qT, не відповідає імені деструктора ~%qT"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "залежне імʼя %qE розбирається як не-тип, але інстанціювання повертає тип"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "використовуйте %<typename %E%>, якщо мається на увазі тип"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "ініціалізатор для %q#D розширюється до порожнього списку виразів"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "неправильне використання виразу розгортання пакету"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr "використовуйте %<...%>, щоб розгорнути пакет аргументів"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr "порожня ініціалізатор в захопленні ініціалізатора лямбди"
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr "%qD не було оголошено в цій області видимості, і жодних оголошень не було знайдено за допомогою пошуку залежного від аргументу в точці інстанціювання"
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr "оголошення в залежній базі %qT не знайдені за допомогою некваліфікованого пошуку"
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr "використовуйте замість цього %<this->%D%>"
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "використовуйте замість цього %<%T::%D%>"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%qD оголошено тут, пізніше в одиниці перекладу"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "неправильна кількість аргументів для %<__builtin_convertvector%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, gcc-internal-format
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "неправильна кількість аргументів для атрибуту %<assume%>"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT не є класом або простором імен"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD не є класом або простором імен"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "використання недійсного поля %qD"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "%qT є/використовує безіменний тип"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "аргумент шаблону для %qD використовує локальний тип %qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT є типом зміненої модифікації"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "цілочисельний вираз %qE не є константою"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  спроба інстанціювати %qD"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "неоднозначна інстанціація шаблону для %q#T"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "неоднозначна інстанціація шаблону для %q#D"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 msgid "%s %#qS"
 msgstr "%s %#qS"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "явна інстанціація нешаблону %q#D"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "явна інстанціація концепції змінної %q#D"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, gcc-internal-format
 msgid "explicit instantiation of function concept %q#D"
 msgstr "явна інстанціація концепції функції %q#D"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qD не є статичним елементом даних класу-шаблону"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "не знайдено відповідного шаблону для %qD"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "тип %qT для явної інстанціації %qD не відповідає оголошеному типу %qT"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "явна інстанціація %q#D"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "подвійна явна інстанціація %q#D"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++ 1998 забороняє використання %<extern%> при явних інстанціаціях"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "клас зберігання %qD застосований до інстанціації шаблону"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "явна інстанціація не-класового шаблону %qD"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "явна інстанціація не-шаблонного типу %qT"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "явна інстанціація %q#T перед визначенням шаблону"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ забороняє використання %qE при явних інстанціаціях"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "подвійна явна інстанціація %q#T"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, gcc-internal-format
 msgid "exception specification of %qD depends on itself"
 msgstr "специфікація винятку %qD залежить від себе"
@@ -64469,163 +64521,163 @@ msgstr "специфікація винятку %qD залежить від се
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "явна інстанціація %qD, але відсутня визначення"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "глибина інстанціювання шаблону перевищує максимум %d при інстанціюванні %q+D, можливо, з генерації віртуальної таблиці (використовуйте %<-ftemplate-depth=%>, щоб збільшити максимум)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "нетипізовані параметри шаблону з виведеним типом класу доступні лише з %<-std=c++20%> або %<-std=gnu++20%>"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%qT не є дійсним типом для нетипізованого параметра шаблону, оскільки він не є структурним"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "не-типізовані параметри шаблону класу доступні лише з %<-std=c++20%> або %<-std=gnu++20%>"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "недійсний не-типізований параметр шаблону"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T не є дійсним типом для нетипізованого параметра шаблону"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "слово %<template%> не дозволено в declarator-id"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, gcc-internal-format
 msgid "a concept cannot be constrained"
 msgstr "концепцію не можна обмежити"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr "концепція %qE не знаходиться в області простору імен"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr "концепція %qE має кілька списків параметрів шаблону"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr "виведення зі списку ініціалізаторів, заключених у фігурні дужки, потребує %<#include <initializer_list>%>"
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, gcc-internal-format
 msgid "non-deducible template %qT used without template arguments"
 msgstr "недедуктивний шаблон %qT використовується без аргументів шаблону"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "виведення псевдоніма шаблону доступне лише з %<-std=c++20%> або %<-std=gnu++20%>"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, gcc-internal-format
 msgid "use %qD directly instead"
 msgstr "використовуйте безпосередньо %qD замість цього"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr "не вдається вивести аргументи шаблону для копіювальної ініціалізації %qT, оскільки він не має неявних вказівок виведення або користувацьких конструкторів"
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "не вдається вивести аргументи шаблону %qT, оскільки він не має придатних посібників для виведення"
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "не вдалося вивести аргументи шаблону класу:"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, gcc-internal-format
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "експліцитні посібники для виведення не враховуються при копіювальній ініціалізації"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr "не вдалося вивести аргументи шаблону класу для %qT: вибрано експліцитний посібник для виведення при копіювальній ініціалізації списком"
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "експліцитний посібник для виведення оголошено тут"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "%qT, можливо, не планує підтримувати виведення аргументів для шаблону класу"
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr "додайте посібник з виведенням, щоб прибрати це попередження"
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr "пряма ініціалізація списком %<auto%> потребує рівно один елемент"
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr "для виведення до %<std::initializer_list%> використовуйте копіювальну ініціалізацію списком (тобто додайте %<=%> перед %<{%>)"
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "не вдається вивести тип повернення лямбда-функції з %qE"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "не вдається вивести %qT з %qE"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr "обмеження для заповнювача не виконуються"
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "виведений ініціалізатор не відповідає обмеженням для заповнювача"
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "виведений тип повернення не відповідає обмеженням для заповнювача"
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "виведений тип виразу не відповідає обмеженням для заповнювача"
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "неприпустиме використання %qT в аргументі шаблона"
@@ -64835,640 +64887,640 @@ msgstr "не вдалося визначити тип операнда %<asm%> %
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "декларації %<__label__%> дозволені лише в областях функцій"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "неприпустиме використання члена %qD у статичній функції-члені"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "неприпустиме використання члена %qD у конструкторі контракту %<pre%>"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "неприпустиме використання члена %qD у деструкторі контракту %<post%>"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr "%qE відсутні аргументи шаблону"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr "вираз-оператор є недостатнім контекстом для вирішення перевантаження"
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, gcc-internal-format
 msgid "cannot call a concept as a function"
 msgstr "неможливо викликати концепцію як функцію"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "аргументи до деструктора не допускаються"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "%<this%> недоступний для статичних методів-членів"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, fuzzy, gcc-internal-format
 #| msgid "use the apostrophe directive %qs instead"
 msgid "use explicit object parameter %qs instead"
 msgstr "використовуйте директиву апострофа %qs замість цього"
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, fuzzy, gcc-internal-format
 #| msgid "invalid template non-type parameter"
 msgid "name the explicit object parameter"
 msgstr "недійсний не-типізований параметр шаблону"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "%<this%> недоступний для статичних методів-членів"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, gcc-internal-format
 msgid "invalid use of %<this%> before it is valid"
 msgstr "неправильне використання %<this%> до його дійсності"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, gcc-internal-format
 msgid "invalid use of %<this%> after it is valid"
 msgstr "неправильне використання %<this%> після його дійсності"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "неправильне використання %<this%> у функції, яка не є членом"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "неправильне використання %<this%> на верхньому рівні"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "неприпустимий обсяг кваліфікації в псевдо-імені деструктора"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "обмежений тип %qT не відповідає імені деструктора ~%qT"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE не є типом %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "складений літерал непредметного типу %qT"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "%<auto{x}%> не може бути обмеженим"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<auto{x}%> доступний лише з %<-std=c++2b%> або %<-std=gnu++2b%>"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "типові параметри шаблону повинні використовувати ключове слово %<class%> або %<typename%>"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "неприпустиме використання типу %qT як значення за замовчуванням для параметра-шаблону шаблону"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "неприпустимий значення за замовчуванням для параметра-шаблону шаблону"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "визначення %q#T всередині списку параметрів шаблону"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "неприпустиме визначення кваліфікованого типу %qT"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "неприпустима специфікація базового класу"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr "не можна захопити член %qD анонімного обʼєднання"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "%qD не захоплено"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr "лямбда не має захоплення за замовчуванням"
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr "Лямбда-функція в локальному класі %q+T не може захоплювати змінні з оточуючого контексту"
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr "Використання локальної змінної з автоматичним сховищем з вмістної функції"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "Використання параметра з вмістної функції"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr "Використання параметра поза тілом функції"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, gcc-internal-format
 msgid "missing template arguments"
 msgstr "Відсутні аргументи шаблону"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "Параметр шаблону %qD типу %qT не допускається в цілочисельному сталому виразі, оскільки він не є цілочисельним або перелічувальним типом"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "Використання класового шаблону %qT як виразу"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "Запит на елемент %qD є неоднозначним у гратці множинного успадкування"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD не може зʼявлятися у константному виразі"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "тип %qE невідомий"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qT не є перелічувальним типом"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not an integer constant"
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "запитане вирівнювання не є цілочисельною константою"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 #| msgid "Reference statement index out of range"
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "індекс заяви про посилання поза діапазоном"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "Пакет параметрів %<__bases%> дійсний лише в оголошенні шаблону"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "не можна застосовувати %<offsetof%> до деструктора %<~%T%>"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "не можна застосовувати %<offsetof%> до функції-члена %qD"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "не можна застосовувати %<offsetof%> до функції-члена"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "не можна застосовувати %<offsetof%> до перелічування %qD"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr "%<offsetof%> в межах типу %qT, який не відповідає стандартному розташуванню, підтримується умовно"
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 #| msgid "constructor priorities are not supported"
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "Пріоритети конструкторів не підтримуються"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "Пошук зменшення, визначеного користувачем, є неоднозначним"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr "%qE в замиканні %<reduction%> є масивом нульового розміру"
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE має тип const для %<reduction%>"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr "Користувацьке визначення зменшення з ініціалізатором конструктора для базового класу %qT"
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr "у замиканні %<linear%> на конструкціях %<simd%> або %<for%> вказано модифікатор, відмінний від %<val%>, при використанні модифікаторів OpenMP 5.2"
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr "замикання %qs модифікатора linear застосована до змінної, яка не є посиланням, з типом %qT"
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr "Замикання 'linear' застосовано до змінної типу %qT, яка не є цілочисельним або вказівником"
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr "Вираз кроку 'linear' повинен бути цілочисельним"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr "%<this%> дозволено в OpenMP тільки в замиканнях %<declare simd%>"
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD не є змінною в замиканні %qs"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "%qD не є змінною в замиканні %<firstprivate%>"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qD не є змінною в замиканні %<lastprivate%>"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr "Вираз статичного %<gang%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr "Значення статичного %<gang%> повинно бути позитивним"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr "Вираз номера %<gang%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr "Вираз довжини %<vector%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr "Вираз номера %<worker%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "Значення %<gang%> повинно бути позитивним"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr "Значення довжини %<vector%> повинно бути позитивним"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr "Значення номера %<worker%> повинно бути позитивним"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "Вираз розміру частини розкладу повинен бути цілочисельним"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr "Вираз довжини %qs повинен бути цілочисельним"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "Вираз довжини %qs повинен бути позитивним сталим цілим виразом"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "Вираз %<async%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr "Вираз %<thread_limit%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr "Ідентифікатор %<device%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "Вираз розміру частини %<dist_schedule%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD не є змінною в замиканні %<aligned%>"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr "%qE в замиканні %<aligned%> не є вказівником, масивом або посиланням на вказівник або масив"
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qD зустрічається більше одного разу в замиканнях %<aligned%>"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "вираз вирівнювання в замиканні %<aligned%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD не є змінною в замиканні %<nontemporal%>"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD зустрічається більше одного разу в замиканнях %<nontemporal%>"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%<this%> не дозволено в замиканні %<allocate%>"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD не є змінною в замиканні %<allocate%>"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD зустрічається більше одного разу в замиканнях %<allocate%>"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "%qD не є виразом lvalue або секцією масиву в замиканні %qs"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr "шаблон %qE в замиканні %qs"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr "перевантажене імʼя функції %qE в замиканні %qs"
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "вираз %<grainsize%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr "вираз %<priority%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr "вираз %<hint%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "вираз %<hint%> повинен бути сталим цілочисельним виразом"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr "dираз %<filter%> повинен бути цілочисельним"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "Змінна %qs не є вказівником або посиланням на вказівник"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr "Змінна %qs не є вказівником, масивом або посиланням на вказівник або масив"
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr "Аргумент для %<tile%> повинен мати цілочисельний тип"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr "Кваліфікований %qE з %<const%>, без члена %<mutable%>, може зʼявлятися тільки в замиканнях %<shared%> або %<firstprivate%>"
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr "%<threadprivate%> %qD не є змінною з областю видимості файлу, простору імен або блоку"
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "Директива %<threadprivate%> %qE не визначена в %qT"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr "різниця між %qE та %qD не має цілочисельного типу"
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "%<#pragma omp simd%> використовується з ітераційною змінною класу %qE"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic update%> використовує два різних вирази для памʼяті"
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 #| msgid "%<hint%> expression must be constant integer expression"
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "вираз %<hint%> повинен бути сталим цілочисельним виразом"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, fuzzy, gcc-internal-format
 #| msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "%<reinterpret_cast<%T>(%E)%> не є константним виразом"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, fuzzy, gcc-internal-format
 #| msgid "argument %d of %qE must be an integer constant expression"
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "аргумент %d функції %qE повинен бути цілочисельним константним виразом"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 #| msgid "static assertion failed: %s"
 msgid "static assertion failed: %.*s"
 msgstr "статичне твердження не вдалося: %s"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "неконстантна умова для статичного твердження"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr "аргумент для %<decltype%> повинен бути виразом"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "%<decltype%> не може вирішити адресу перевантаженої функції"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr "%<__builtin_is_pointer_interconvertible_with_class%> потребує один аргумент"
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr "Аргумент %<__builtin_is_pointer_interconvertible_with_class%> не є вказівником на член"
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr "%<__builtin_is_corresponding_member%> не чітко визначений для анонімних обʼєднань"
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "%<__builtin_is_corresponding_member%> потребує два аргументи"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr "Аргумент %<__builtin_is_corresponding_member%> не є вказівником на член"
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "%qD не є класом або псевдонімом шаблону"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "Операнд складеного виразу не має нерозгорнутих пакетів параметрів"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "обидва аргументи в бінарному складеному мають нерозгорнуті пакети параметрів"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr "немає нерозгорнутих пакетів параметрів у бінарному складанні"
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr "аргумент, який не є вказівником, до %<__builtin_launder%>"
@@ -65476,1170 +65528,1170 @@ msgstr "аргумент, який не є вказівником, до %<__buil
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr "тип призначення %qT %<__builtin_bit_cast%> є типом масиву"
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr "тип призначення %qT %<__builtin_bit_cast%> не є простим для копіювання"
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr "тип джерела %qT %<__builtin_bit_cast%> не є простим для копіювання"
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr "розмір джерела %qE %<__builtin_bit_cast%> не дорівнює розміру типу призначення %qE"
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "кваліфікатори %qV не можуть бути застосовані до %qT"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr "вираз-оператор в константному виразі"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr "%<-fabi-version=13%> (GCC 8.2) виправляє конвенцію виклику для %qT, яка була помилково змінена в 8.1"
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr "%<-fabi-version=12%> (GCC 8.1) випадково змінює конвенцію виклику для %qT"
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, gcc-internal-format
 msgid " declared here"
 msgstr " оголошено тут"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr "конвенція виклику для %qT змінюється в %<-fabi-version=13%> (GCC 8.2)"
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr " оскільки всі його конструктори копіювання та переміщення видалені"
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr "базовий клас %qT не є публічним"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, gcc-internal-format
 msgid "%qD is not public"
 msgstr "%qD не є публічним"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, gcc-internal-format
 msgid "%qD is mutable"
 msgstr "%qD є змінним"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr "%qD має неструктурний тип"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "Атрибут %qE можна застосовувати тільки до функцій або параметрів"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, gcc-internal-format
 msgid "%qE attribute argument must be a string constant"
 msgstr "Аргумент атрибуту %qE повинен бути рядковою константою"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "Атрибут %qE можна застосовувати тільки до функцій або до класів або перелічувань"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, gcc-internal-format
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "Атрибут %qE можна застосовувати тільки до нестатичних членів даних"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, gcc-internal-format
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "Атрибут %qE не може бути застосований до поля бітів"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr "Атрибут %qE не приймає аргументів"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "Атрибут ISO C++ %qE не застосовується до функцій; розглядається як %<[[gnu::%E]]%>"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, gcc-internal-format
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "запитаний %<init_priority%> не є цілочисельним"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "можна використовувати атрибут %qE тільки на визначеннях обʼєктів класу на рівні файлу"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "запитаний %<init_priority%> %i знаходиться поза межами діапазону [0, %i]"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "запитаний %<init_priority%> %i зарезервований для внутрішнього використання"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "повторне оголошення %qD додає мітку abi %qE"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "атрибут %qE вимагає аргументів"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "аргументи атрибуту %qE повинні бути вузькими літералами рядка"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "аргументи для атрибуту %qE повинні містити дійсні ідентифікатори"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%c%> не є допустимим першим символом для ідентифікатора"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%c%> не є допустимим символом в ідентифікаторі"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "атрибут %qE застосовується до типу %qT, який не є класом або перелічуванням"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "атрибут %qE застосовується до %qT після його визначення"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "ігнорується атрибут %qE, застосований до інстанціювання шаблону %qT"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "ігнорується атрибут %qE, застосований до спеціалізації шаблону %qT"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "атрибут %qE застосовується до %qD, який не є функцією або змінною"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "атрибут %qE застосовується до зовнішньої «C»-декларації %qD"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute argument must be a string constant"
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "Аргумент атрибуту %qE повинен бути рядковою константою"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "нуль як константа нульового вказівника"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, gcc-internal-format
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "%<lang_*%> перевірка: не вдалося в %s, на %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "порівняння між різними типами вказівників %qT та %qT потребує приведення типу"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "конвертація між різними типами вказівників %qT та %qT потребує приведення типу"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "умовний вираз між різними типами вказівників %qT та %qT потребує приведення типу"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ забороняє порівняння між вказівником типу %<void *%> та вказівником на функцію"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ забороняє перетворення між вказівником типу %<void *%> та вказівником на функцію"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ забороняє умовний вираз між вказівником типу %<void *%> та вказівником на функцію"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "порівняння між різними типами вказівників на члена %qT та %qT не має приведення типу"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "перетворення між різними типами вказівників на члена %qT та %qT не має приведення типу"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "умовний вираз між різними типами вказівників на члена %qT та %qT не має приведення типу"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "канонічні типи відрізняються для однакових типів %qT та %qT"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "один і той самий вузол канонічного типу для різних типів %qT та %qT"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "недійсне застосування %qs до функції-члена"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "недійсне застосування %<sizeof%> до бітового поля"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++ забороняє застосування %<sizeof%> до виразу типу функції"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "недійсне застосування %<__alignof%> до бітового поля"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++ забороняє застосування %<__alignof%> до виразу типу функції"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, gcc-internal-format
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "аргумент %<alignas%> має нецілочисельний тип %qT"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr "неприпустиме використання нестатичного методу члена типу %qT"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "ISO C++ забороняє конвертувати рядкову константу в %qT"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "застаріла конвертація з рядкової константи в %qT"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "запит на елемент %qD в %qE, який має тип вказівника %qT (можливо, ви мали на увазі використання %<->%> ?)"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "запит на елемент %qD в %qE, який має тип не-класу %qT"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qE"
 msgstr "недійсне використання нестатичного члена даних %qE"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "недійсний доступ до нестатичного члена даних %qD в віртуальній базі нульового обʼєкта"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "тип обʼєкта %qT не відповідає імені деструктора ~%qT"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "тип, який знищується, це %qT, але деструктор посилається на %qT"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr "поле %q#D можна отримати через %q#D"
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "%q#T не має члена з іменем %qE"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "%q#T не має члена з іменем %qE; мали на увазі %q#D? (доступно через %q#D)"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "%q#T не має члена з іменем %qE; мали на увазі %q#D? (не доступно з цього контексту)"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%q#T не має члена з іменем %qE; мали на увазі %qE?"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> не є членом %qT"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT не є базою для %qT"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD не є шаблонною функцією-членом"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT не є типом вказівника на обʼєкт"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "неприпустиме використання індексування масиву на вказівнику на член"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "неприпустиме використання унарного %<*%> на вказівнику на член"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "неприпустиме використання неявного перетворення на вказівнику на член"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr "лівий операнд %<->*%> повинен бути вказівником на клас, але є вказівником на член типу %qT"
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "відсутній індекс в посиланні на масив"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "індексація масиву, оголошеного як %<register%>"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "індексоване значення не є або масивом, або вказівником"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "використання %qE без обʼєкта"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ забороняє викликати %<::main%> з програми"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "необхідно використовувати %<.*%> або %<->*%> для виклику функції-члена, що вказує на вказівник, в %<%E (...)%>, наприклад, %<(... ->* %E) (...)%>"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE не може бути використано як функцію"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "%qD не може бути використано як функцію"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "вираз не може бути використаний як функція"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "забагато аргументів для конструктора %q#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "замало аргументів для конструктора %q#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "занадто багато аргументів для функції-члена %q#D"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "занадто мало аргументів для функції-члена %q#D"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "занадто багато аргументів для функції %q#D"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "занадто мало аргументів для функції %q#D"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "занадто багато аргументів для методу %q#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "занадто мало аргументів для методу %q#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "занадто багато аргументів для функції"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "занадто мало аргументів для функції"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "параметр %P функції %qD має неповний тип %qT"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "параметр %P має неповний тип %qT"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr "адреса %qE ніколи не буде NULL"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "адреса обʼєкту %qD ніколи не буде NULL"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "компілятор може припустити, що адреса %qE ніколи не буде NULL"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr "порівняння результату додавання вказівника %qE та NULL"
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "компілятор може припустити, що адреса %qD ніколи не буде NULL"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 #| msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "операція побітового І або АБО між різними типами перелічування %qT та %qT застаріла"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "операція побітового І або АБО між різними типами перелічування %qT та %qT застаріла"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "арифметична операція між різними типами перелічування %qT та %qT застаріла"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "арифметична операція між різними типами перелічування %qT та %qT застаріла"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "Порівняння перелічувального типу %qT з типом з плаваючою комою %qT є застарілим"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 #| msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "Порівняння типу з плаваючою комою %qT з перелічувальним типом %qT є застарілим"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr "Порівняння перелічувального типу %qT з типом з плаваючою комою %qT є застарілим"
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr "Порівняння типу з плаваючою комою %qT з перелічувальним типом %qT є застарілим"
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr "Арифметика між перелічувальним типом %qT та типом з плаваючою комою %qT є застарілою"
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "Арифметика між типом з плаваючою комою %qT та перелічувальним типом %qT є застарілою"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr "Арифметика між перелічувальним типом %qT та типом з плаваючою комою %qT є застарілою"
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr "Арифметика між типом з плаваючою комою %qT та перелічувальним типом %qT є застарілою"
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "Припускається приведення до типу %qT з перевантаженої функції"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "NULL використовується в арифметиці"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ забороняє порівняння між вказівником та цілочисельним"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "Типи операндів: %qT та %qT"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr "Тристороннє порівняння векторів"
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "упорядковане порівняння вказівника з нулем (%qT та %qT)"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, gcc-internal-format
 msgid "unordered comparison on non-floating-point argument"
 msgstr "неупорядковане порівняння з нечисловим аргументом"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "неявне перетворення з %qH на %qI для відповідності іншому операнду бінарного виразу"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "недійсні операнди типів %qT і %qT для бінарного %qO"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ забороняє використання відʼємного відʼємного типу %<void *%>"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ забороняє використання відʼємного відʼємного типу для функції"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ забороняє використання відʼємного відʼємного типу для методу"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "недійсне використання вказівника на неповний тип в арифметиці вказівників"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr "береться адреса конструктора %qD"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr "береться адреса деструктора %qD"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "недійсне використання %qE для створення вказівника на член-функцію"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  потрібно вказати кваліфікований ідентифікатор"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "Дужки навколо %qE не можуть бути використані для створення вказівника на член-функцію"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ забороняє взяти адресу некваліфікованої або укладеної нестатичної член-функції для створення вказівника на член-функцію. Скажіть %<&%T::%D%>"
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO C++ забороняє взяти адресу некваліфікованої або укладеної нестатичної член-функції для створення вказівника на член-функцію. Скажіть %<&%T::%D%>"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ забороняє взяти адресу привʼязаної член-функції для створення вказівника на член-функцію. Скажіть %<&%T::%D%>"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ забороняє взяти адресу привʼязаної член-функції для створення вказівника на член-функцію. Скажіть %<&%T::%D%>"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "(вказівник на член може бути створений лише з %<&%E%>)"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, gcc-internal-format
 msgid "taking address of rvalue"
 msgstr "береться адреса rvalue"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ забороняє взяти адресу функції %<::main%>"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "не можна створити вказівник на посилання на член %qD"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "спроба взяти адресу бітового поля"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "%<~%> на виразі типу %<bool%>"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr "чи мали ви на увазі використання логічного заперечення (%<!%>)?"
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ забороняє збільшувати перелічування"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ забороняє зменшувати перелічування"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "не можна збільшити вказівник на неповний тип %qT"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "не можна зменшити вказівник на неповний тип %qT"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ забороняє збільшення вказівника типу %qT"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ забороняє зменшення вказівника типу %qT"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr "Вираз %qs з кваліфікатором %<volatile%> є застарілим"
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr "Використання операнда типу %qT в %<operator--%> заборонено"
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr "Використання операнда типу %qT в %<operator++%> заборонено в C++17"
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr "використання операнда типу %qT в %<operator++%> є застарілим"
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "не можна взяти адресу %<this%>, який є виразом rvalue"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "запитано адресу явної регістрової змінної %qD"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "запитано адресу для %qD, яка оголошена як %<register%>"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "ініціалізатор списку для типу, що не є класом, не повинен бути у дужках"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "список виразів розглядається як складений вираз в ініціалізаторі"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "список виразів розглядається як складений вираз в mem-ініціалізаторі"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "список виразів розглядається як складений вираз в функціональному приведенні типу"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "список виразів %s розглядається як складений вираз"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr "немає контексту для визначення типу %qE"
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "приведення типу %qT до типу %qT видаляє кваліфікатори"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "%<static_cast%> з типу %qT до типу %qT видаляє кваліфікатори"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "%<reinterpret_cast%> з типу %qT до типу %qT видаляє кваліфікатори"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "непотрібне приведення до типу %q#T"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, gcc-internal-format
 msgid "type qualifiers ignored on cast result type"
 msgstr "кваліфікатори типу ігноруються на типі результату приведення"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, gcc-internal-format
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "неприпустиме %<static_cast%> з типу %qT до типу %qT"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "тип класу %qT є неповним"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 msgid "converting from %qH to %qI"
 msgstr "перетворення з %qH на %qI"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, gcc-internal-format
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "недійсне приведення типу виразу prvalue типу %qT до типу %qT"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 msgid "cast from %qH to %qI loses precision"
 msgstr "приведення з %qH до %qI втрачає точність"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr "приведення між несумісними типами функцій з %qH до %qI"
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "приведення між несумісними типами вказівників на члени від %qH до %qI"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "приведення від %qH до %qI збільшує необхідне вирівнювання цільового типу"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "приведення між вказівником на функцію та вказівником на обʼєкт підтримується умовно"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "недійсне приведення з типу %qT до типу %qT"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "недійсне використання %<const_cast%> з типом %qT, який не є вказівником, посиланням або вказівником на член даних"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "недійсне використання %<const_cast%> з типом %qT, який є вказівником або посиланням на тип функції"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, gcc-internal-format
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "недійсне %<const_cast%> rvalue типу %qT до типу %qT"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, gcc-internal-format
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "недійсне %<const_cast%> з типу %qT до типу %qT"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ забороняє приведення до типу масиву %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "недійсне приведення до типу функції %qT"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, gcc-internal-format
 msgid "moving %qE of type %qT to itself"
 msgstr "переміщення %qE типу %qT в самого себе"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr "видаліть виклик %<std::move%>"
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  при оцінці %<%Q(%#T, %#T)%>"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr "присвоєння масиву зі списку ініціалізаторів"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "несумісні типи при присвоєнні %qT до %qT"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "масив використовується як ініціалізатор"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "недійсне присвоєння масиву"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "   при перетворенні на вказівник на функцію-член"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "перетворення на вказівник на член через віртуальну базу %qT"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "   при перетворенні на вказівник на член"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "недійсне перетворення на тип %qT з типу %qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "не можна перетворити %qH на %qI в аргументі за замовчуванням"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "не можна перетворити %qH на %qI при передачі аргументу"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "не можна перетворити %qH на %qI при ініціалізації"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 msgid "cannot convert %qH to %qI in return"
 msgstr "не можна перетворити %qH на %qI при поверненні"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "не можна перетворити %qH на %qI в присвоєнні"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "параметр %qP з %qD може бути кандидатом на атрибут формату"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr "параметр може бути кандидатом на атрибут формату"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "ціль конвертації може бути кандидатом на атрибут формату"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "ціль ініціалізації може бути кандидатом на атрибут формату"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "ліва сторона присвоєння може бути кандидатом на атрибут формату"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "при передачі аргументу %P з %qD"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "повернення посилання на тимчасовий обʼєкт"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "повернення посилання на тимчасовий обʼєкт"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr "повернення тимчасового %<initializer_list%> не продовжує термін дії базового масиву"
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr "повернуто посилання на локальну змінну %qD"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr "повернення локальної змінної %<initializer_list%> %qD не продовжує термін існування базового масиву"
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr "повернуто адресу мітки %qD"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr "повернуто адресу локальної змінної %qD"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr "переміщення тимчасового обʼєкта запобігає оптимізації копіювання"
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr "переміщення локального обʼєкта в операторі повернення запобігає оптимізації копіювання"
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr "зайве переміщення в операторі повернення"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr "зайве переміщення в ініціалізації"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "повернення значення з деструктора"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "не можна повернути з обробника блоку function-try-блоку конструктора"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "повернення значення з конструктора"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "return-оператор без значення, у функції, що повертає %qT"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, gcc-internal-format
 msgid "returning initializer list"
 msgstr "повернення списку ініціалізаторів"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "несумісні типи %qT та %qT виведені для типу повернення лямбди"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "неспівпадаюче виведення для типу автоматичного повернення: %qT і потім %qT"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, gcc-internal-format
 msgid "return-statement with a value, in function returning %qT"
 msgstr "return-оператор зі значенням, у функції, що повертає %qT"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%> не повинен повертати NULL, якщо він не оголошений %<throw()%> (або %<-fcheck-new%> активований)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 #| msgid "invalid covariant return type for %q#D"
 msgid "not eliding copy on return from %qD"
 msgstr "недійсний коваріантний тип повернення для %q#D"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, gcc-internal-format
 msgid "using rvalue as lvalue"
 msgstr "використання rvalue як lvalue"
@@ -66860,155 +66912,155 @@ msgstr "перевантажена функція без контекстуал
 msgid "insufficient contextual information to determine type"
 msgstr "недостатня контекстуальна інформація для визначення типу"
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "використано синтаксис конструктора, але для типу %qT не оголошено конструктор"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "змінна %qD з %<constinit%> не має константного ініціалізатора"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "звужувальне перетворення %qE з %qH на %qI неприпустиме в C++11"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "звужувальне перетворення %qE з %qH на %qI"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr " вираз має стале значення, але не є сталим виразом у C++"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, gcc-internal-format
 msgid "initializer-string for %qT is too long"
 msgstr "рядок ініціалізатора для %qT занадто довгий"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr "ініціалізація базового класу типу %qT призводить до обрізання обʼєкта"
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, gcc-internal-format
 msgid "remove %<{ }%> around initializer"
 msgstr "видаліть %<{ }%> навколо ініціалізатора"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "не вдається ініціалізувати агрегат типу %qT зі складним літералом"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "відсутній ініціалізатор для члена %qD"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "член %qD є неініціалізованим посиланням"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "член %qD з неініціалізованими полями посилання"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "порядок вказівника для поля %qD не відповідає порядку оголошення в %qT"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "не знайдено поле %qD в ініціалізованому обʼєднанні"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "значення індексу замість назви поля в ініціалізаторі обʼєднання"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "виявлено циклічну делегацію вказівника"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "базовий операнд %<->%> має тип, що не є вказівником %qT"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "результат %<operator->()%> дає результат, що не є вказівником"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "базовий операнд %<->%> не є вказівником"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE не може бути використаний як вказівник на член, оскільки він має тип %qT"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "не можна застосувати вказівник на член %qE до %qE, який має тип, що не є класом %qT"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "тип вказівника на член %qT несумісний з типом обʼєкту %qT"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "тип вказівника на функцію-член %qT вимагає r-значення"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "тип вказівника на функцію-член %qT вимагає l-значення"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "тип вказівника на функцію-член %qT вимагає l-значення до C++20"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "функціональне приведення до типу масиву %qT"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "%<auto(x)%> не може бути обмеженим"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<auto(x)%> доступний лише з %<-std=c++2b%> або %<-std=gnu++2b%>"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "неправильна ініціалізація значення типу посилання"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "виклик функції %qD, яка генерує неповний тип %q#T"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "виклик функції, яка генерує неповний тип %q#T"
@@ -67996,7 +68048,7 @@ msgstr "Літеральна константа BOZ на %L не може бут
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "Аргументи %qs на %L і %L не можуть обидва бути літеральними константами BOZ"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr "Недійсне використання літеральної константи BOZ на %L"
@@ -69333,7 +69385,7 @@ msgstr "Неправильна специфікація INTENT в %C"
 msgid "deferred type parameter at %C"
 msgstr "відкладений тип параметра в %C"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr "Очікується скалярний INTEGER вираз в %L"
@@ -69548,7 +69600,7 @@ msgstr "Компонент %qs з CLASS у %C повинен бути алоко
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "Масивний компонент структури у %C повинен мати явну або відкладену форму"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr "Компонент %qs у %C вже оголошений у %L"
@@ -70350,7 +70402,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "Очікувався формальний список аргументів у визначенні функції на %C"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr "Атрибут BIND(C) на %L може використовуватися лише для змінних або спільних блоків"
@@ -71157,12 +71209,12 @@ msgstr "identical_array_ref(): невідповідні розміри"
 msgid "are_identical_variables: Bad type"
 msgstr "are_identical_variables: Неправильний тип"
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr "Фактичний аргумент INTENT(%s) на %L може впливати на фактичний аргумент на %L."
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr "gfc_check_dependency: очікується EXPR_VARIABLE"
@@ -71410,273 +71462,273 @@ msgstr "Параметр %qs у %L не був оголошений або є з
 msgid "check_init_expr(): Unknown expression type"
 msgstr "check_init_expr(): Невідомий тип виразу"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "Специфікаційна функція %qs у %L не може бути функцією-оператором"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "Специфікаційна функція %qs на %L не може бути внутрішньою функцією"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr "Специфікаційна функція %qs на %L повинна бути PURE"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "Специфікаційна функція %qs на %L не може бути RECURSIVE"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "Фіктивний аргумент %qs не допускається в виразі на %L"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "Фіктивний аргумент %qs на %L не може бути OPTIONAL"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "Фіктивний аргумент %qs на %L не може бути INTENT(OUT)"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "Змінна %qs не може зʼявлятися в виразі на %L"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr "check_restricted(): Невідомий тип виразу"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "Вираз на %L повинен бути типу INTEGER, знайдено %s"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "Функція %qs на %L повинна бути PURE"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "Вираз на %L повинен бути скалярним"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr "Переповнення optype_msgid: %d"
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "Несумісні ранги в %s (%d і %d) на %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "Різна форма для %s на %L по розмірності %d (%d і %d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr "Присвоєння LEN або KIND part_ref на %L не дозволяється"
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "%qs на %L не є VALUE"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr "Недопустиме присвоєння зовнішній процедурі на %L"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "Несумісні ранги %d і %d в присвоєнні на %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "Тип змінної невідомий в присвоєнні на %L"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "NULL зʼявляється на правій стороні при присвоєнні на %L"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "Функція з POINTER-значенням зʼявляється на правій стороні при присвоєнні на %L"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr "Літеральна константа BOZ поблизу %L не може бути присвоєна змінній %qs"
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr "Присвоєння компоненту KIND або LEN параметризованого типу на %L не дозволено"
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "Несумісні типи в операторі DATA на %L; спроба перетворення %s на %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "Ціль присвоєння вказівника не є POINTER на %L"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "%qs в присвоєнні вказівника на %L не може бути l-значенням, оскільки це процедура"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "Очікується вказівка меж для %qs у %L"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Вказівка меж для %qs у присвоєнні вказівника на %L"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr "Крок не повинен бути вказаний на %L"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr "Переіндексація рангу вимагає списку специфікацій %<lower-bound : upper-bound%> на %L"
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr "Очікується список специфікацій %<lower-bound :%> або список специфікацій %<lower-bound : upper-bound%> на %L"
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "Обʼєкт-вказівник на %L не повинен мати спільного індексу"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "Недійсне призначення вказівника процедури на %L"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "Результат функції %qs є недійсним як ціль процедури у присвоєнні вказівника на процедуру у %L"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "Абстрактний інтерфейс %qs недійсний при присвоєнні вказівника на процедуру в %L"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "Функція-оператор %qs недійсна при присвоєнні вказівника на процедуру в %L"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Внутрішня процедура %qs недійсна при присвоєнні вказівника на процедуру в %L"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "Вбудована функція %qs в %L недійсна при присвоєнні вказівника на процедуру"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Невбудована елементарна процедура %qs недійсна при присвоєнні вказівника на процедуру в %L"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr "Неспівпадіння при присвоєнні вказівника на процедуру в %L: неспівпадіння у конвенції виклику"
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "Несумісність інтерфейсу при присвоєнні вказівника на процедуру в %L: %qs не є підпрограмою"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "Для компонента %qs на %L потрібний явний інтерфейс: %s"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "Для %qs на %L потрібний явний інтерфейс: %s"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "Несумісність інтерфейсу при присвоєнні вказівника на процедуру на %L: %s"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr "Ціль вказівника на процедуру %qs на %L повинна бути або вбудованою, або повʼязаною з хостом або use, або посилатися на неї, або мати атрибут EXTERNAL"
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "Ціль присвоєння вказівника не може бути константою на %L"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr "Обʼєкт-вказівник даних на %L повинен бути необмежено поліморфним або мати атрибут BIND або SEQUENCE, щоб бути сумісним з необмежено поліморфною ціллю"
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "Різні типи в призначенні вказівника на %L; спроба призначити %s до %s"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "Різні параметри типу виду в призначенні вказівника на %L"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "Різні ранги в призначенні вказівника на %L"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr "Ціль ремапінгу рангу менша за розмір вказівника (%ld < %ld) на %L"
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr "Ціль рангового перенаправлення повинна мати ранг 1 або бути просто послідовною на %L"
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr "Ціль перенаправлення рангу не має рангу 1 на %L"
@@ -71684,193 +71736,193 @@ msgstr "Ціль перенаправлення рангу не має ранг
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr "Ціль даних на %L не повинна мати співіндексу"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "Вираз цілі в призначенні вказівника на %L повинен повертати результат вказівника"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr "Виявлено масив нульового розміру на %L, де очікується сутність з атрибутом TARGET"
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "Ціль призначення вказівника в виразі ініціалізації не має атрибуту TARGET на %L"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "Кожний індекс підпису специфікації цілі на %L повинен бути константним виразом"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr "Початкова і кінцева точки підстрічки специфікації цілі на %L повинні бути константними виразами"
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "Ціль призначення вказівника не є TARGET або POINTER на %L"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "Недійсна ціль в призначенні вказівника в чистій процедурі на %L"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "Призначення вказівника з векторним підписом на rhs на %L"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "Ціль призначення вказівника має атрибут PROTECTED на %L"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr "Призначення послідовного вказівника з непослідовної цілі на %L"
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr "Вказівник на %L в призначенні вказівника може пережити ціль вказівника"
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "Ціль ініціалізації вказівника на %L не повинна бути ALLOCATABLE"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "Ціль ініціалізації вказівника на %L повинна мати атрибут TARGET"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "Ціль ініціалізації вказівника на %L повинна мати атрибут SAVE"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr "Ціль ініціалізації вказівника на процедуру на %L не може бути вказівником на процедуру"
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Внутрішня процедура %qs недійсна в ініціалізації вказівника на процедуру на %L"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Функція-заглушка %qs недійсна в ініціалізації вказівника на процедуру на %L"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr "generate_isocbinding_initializer(): неправильний тип iso_c_binding, очікувався %<c_ptr%> або %<c_funptr%>"
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "Fortran 2008: Функції-вказівники в контексті визначення змінної (%s) на %L"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr "Не змінний вираз у контексті визначення змінної (%s) на %L"
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr "Іменована константа %qs у контексті визначення змінної (%s) на %L"
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "%qs у контексті визначення змінної (%s) на %L не є змінною"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr "Не POINTER у контексті асоціації вказівника (%s) на %L"
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr "Тип недоступний у контексті визначення змінної (%s) на %L"
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr "LOCK_TYPE у контексті визначення змінної (%s) на %L"
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr "LOCK_EVENT у контексті визначення змінної (%s) на %L"
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "Запит параметра %qs для %qs у контексті визначення змінної (%s) на %L"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr "Фіктивний аргумент %qs з INTENT(IN) в контексті асоціації вказівника (%s) на %L"
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr "Фіктивний аргумент %qs з INTENT(IN) в контексті визначення змінної (%s) на %L"
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "Змінна %qs є PROTECTED і не може зʼявлятися в контексті асоціації вказівника (%s) на %L"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "Змінна %qs є PROTECTED і не може зʼявлятися в контексті визначення змінної (%s) на %L"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "Змінна %qs не може зʼявлятися в контексті визначення змінної (%s) на %L у чистій процедурі"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr "%qs на %L, повʼязаний з вектор-індексованою ціллю, не може бути використаний в контексті визначення змінної (%s)"
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr "%qs на %L, повʼязаний з виразом, не може бути використаний в контексті визначення змінної (%s)"
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr "%qs на %L, повʼязаний з виразом, не може бути використаний в контексті визначення змінної (%s)"
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "Імʼя асоціації %qs не може зʼявлятися в контексті визначення змінної (%s) на %L, оскільки його ціль на %L також не може"
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr "Елементи з однаковим значенням на %L і %L в підписі вектора в контексті визначення змінної (%s)"
@@ -71891,8 +71943,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr "Недопустимий ідентифікатор в copy_walk_reduction_arg"
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "Створення тимчасового масиву на %L"
@@ -71972,7 +72024,7 @@ msgstr "Змінна %qs на %L встановлена на невизначе
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "Змінну %qs на %L неможливо визначити всередині циклу, що починається з %L, як аргумент INTENT(INOUT) для функції %qs"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr "Код для перерозподілу виділеного масиву на %L буде доданий"
@@ -72107,12 +72159,12 @@ msgstr "Перший аргумент визначеного присвоєнн
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "Другий аргумент визначеного присвоєння на %L повинен бути INTENT(IN)"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "Перший аргумент інтерфейсу оператора на %L повинен бути INTENT(IN)"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "Другий аргумент інтерфейсу оператора на %L повинен бути INTENT(IN)"
@@ -72983,7 +73035,7 @@ msgstr "Конвертація з %s в %s у %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot convert %s to %s at %L"
 msgstr "Неможливо конвертувати %s в %s у %L"
@@ -73534,7 +73586,7 @@ msgstr "NAMELIST %qs в операторі READ на %L містить симв
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr "Обʼєкт NAMELIST %qs в списку імен %qs на %L є поліморфним і вимагає визначеної процедури введення/виведення"
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr "Обʼєкт NAMELIST %qs в списку імен %qs на %L має компоненти ALLOCATABLE або POINTER"
@@ -73700,6 +73752,11 @@ msgstr "переповнення ідентифікатора: %d"
 msgid "check_charlen_present(): length not set"
 msgstr "помилка: check_charlen_present(): довжина не встановлена"
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -74101,7 +74158,7 @@ msgstr "Код STOP на %L повинен бути символьним тип
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "Код STOP на %L повинен бути цілочисельним типом KIND=%d за замовчуванням"
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr "Специфікатор QUIET на %L повинен бути скалярним типом LOGICAL"
@@ -74625,82 +74682,82 @@ msgstr "Помилка синтаксису в операторі SELECT TYPE в
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr "Селектор в операторі SELECT TYPE в %C не є іменованою змінною; використовуйте associate-name=>"
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr "Оператор SELECT RANK в %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr "Селектор в операторі SELECT RANK в %C повинен бути змінною з припущеним рангом"
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "Помилка синтаксису в операторі SELECT RANK в %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "Неочікуваний оператор CASE в %C"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "Синтаксична помилка в специфікації CASE в %C"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "Неочікувана інструкція TYPE IS на %C"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr "Тип-специфікація не повинна вказувати послідовний похідний тип або тип з атрибутом BIND в SELECT TYPE на %C [F2003:C815]"
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr "Усі параметри типу LEN в інструкції TYPE IS на %C повинні бути ПРИПУЩЕНІ"
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "Синтаксична помилка в специфікації TYPE IS на %C"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "Синтаксична помилка в специфікації CLASS IS на %C"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected RANK statement at %C"
 msgstr "Неочікувана інструкція RANK на %C"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "Вираз SELECT RANK CASE на %C повинен бути скалярною цілою константою"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr "Значення виразу SELECT RANK CASE на %C не може бути менше нуля або більше %d"
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr "Синтаксична помилка в специфікації RANK на %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "Інструкція ELSEWHERE на %C не вкладена в блок WHERE"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr "Мітка %qs на %C не відповідає мітці WHERE %qs"
@@ -76140,8 +76197,8 @@ msgstr "Параметр замикання ORDERED менший за COLLAPSE 
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr "Замикання ORDER не можна використовувати разом з ORDERED на рядку %L"
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "Замикання IF на рядку %L вимагає скалярний логічний вираз"
@@ -78525,12 +78582,12 @@ msgstr "Вбудована функція %qs, оголошена як INTRINSIC
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "Можливо, нерекурсивна процедура %qs у %L викликається рекурсивно сама себе. Оголосіть її як RECURSIVE або використовуйте %<-frecursive%>"
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "Можливо, нерекурсивна процедура %qs у %L викликається рекурсивно сама себе. Оголосіть її як RECURSIVE або використовуйте %<-frecursive%>"
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "Мітка %d, на яку є посилання у %L, ніколи не визначена"
@@ -78650,7 +78707,7 @@ msgstr "Відсутня явна декларація з атрибутом EXT
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "Функція %qs в %L не має ІМПЛІЦИТНОГО типу; ви мали на увазі %qs?"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr "Функція %qs в %L не має ІМПЛІЦИТНОГО типу"
@@ -79049,279 +79106,285 @@ msgstr "Припущена змінна типу %s на %L не повинна
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "Припущена змінна рангу %s на %L не повинна мати посилання на підобʼєкт"
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 #| msgid "Bad array reference at %L"
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "Погана посилання на масив на %L"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr "Змінна %qs, яка використовується в специфікаційному виразі, має посилання на %L до заяви ENTRY, в якій вона є параметром"
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr "Змінна %qs використовується на %L до заяви ENTRY, в якій вона є параметром"
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr "Поліморфний підобʼєкт коіндексованого обʼєкта на %L"
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr "Коіндексований обʼєкт з поліморфною видільною підкомпонентою на %L"
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr "Використання змінної %qs у %L є застарілим"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Bad array reference at %L"
+msgid "Invalid array reference at %L"
+msgstr "Погана посилання на масив на %L"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr "%qs у %L повʼязано з хостом у %L в межах вкладеної процедури з внутрішньою процедурою з таким самим імʼям"
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr "Помилка у типованому виклику у %L"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "Переданий обʼєкт у %L повинен бути скалярним"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr "Базовий обʼєкт для виклику компоненти вказівника на процедуру у %L має абстрактний тип %qs"
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr "Базовий обʼєкт для типованого виклику процедури у %L має абстрактний тип %qs"
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "Базовий обʼєкт для типованого виклику NOPASS-процедури у %L повинен бути скалярним"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr "Не знайдено відповідного специфічного звʼязування для виклику GENERIC %qs на %L"
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "%qs на %L повинно бути ПІДПРОГРАМОЮ"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr "%qs на %L повинно бути ФУНКЦІЄЮ"
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "gfc_resolve_expr(): Поганий тип виразу"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s на %L повинно бути скаляром"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "%s на %L повинно бути цілочисельним"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s на %L повинно бути INTEGER"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "Вираз кроку в DO-циклі на %L не може бути нулем"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr "DO-цикл на %L буде виконано нуль разів"
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr "DO-цикл на %L не визначений, оскільки переповнюється"
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr "DO-цикл на %L не визначений, оскільки підповнюється"
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "Індекс FORALL з іменем на %L повинен бути скалярним ЦІЛИМ"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "Початковий вираз FORALL на %L повинен бути скалярним ЦІЛИМ"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "Кінцевий вираз FORALL на %L повинен бути скалярним ЦІЛИМ"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "Вираз кроку FORALL на %L повинен бути скалярним %s"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "Вираз кроку FORALL на %L не може бути нулем"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "Індекс FORALL %qs не може зʼявлятися в специфікації триплета на %L"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "Обʼєкт розподілу на %L повинен бути ALLOCATABLE або POINTER"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr "Коіндексований обʼєкт розподілу на %L"
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr "Вихідний вираз на %L повинен бути скалярним або мати такий же ранг, як обʼєкт розподілу на %L"
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr "Вираз-джерело на %L та обʼєкт-виділення на %L повинні мати однакову форму"
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr "Тип сутності на %L несумісний з виразом-джерелом на %L"
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr "Обʼєкт-виділення на %L та вираз-джерело на %L повинні мати однаковий типовий параметр"
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr "Вираз-джерело на %L не може бути типу LOCK_TYPE або мати компонент LOCK_TYPE, якщо обʼєкт-виділення на %L є комасивом"
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr "Вираз-джерело на %L не може бути типу EVENT_TYPE або мати компонент EVENT_TYPE, якщо обʼєкт-виділення на %L є комасивом"
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr "Виділення %s з базовим типом ABSTRACT на %L вимагає типової специфікації або виразу джерела"
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr "Виділення %s на %L з типовою специфікацією вимагає такого самого параметра довжини символів, як у декларації"
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "У ALLOCATE-операторі на %L потрібна специфікація масиву"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "У ALLOCATE-операторі на %L потрібна специфікація масиву або виразу SOURCE= з масивним значенням"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "У операторі ALLOCATE на %L потрібна специфікація ко-масиву"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "Неправильна специфікація ко-масиву в операторі ALLOCATE на %L"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr "Верхня межа менша за нижню межу на %L"
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr "Верхня межа менша за нижню межу 1 на %L"
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "Неправильна специфікація масиву в операторі ALLOCATE на %L"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "%qs не повинно зʼявлятися в специфікації масиву на %L в тому ж операторі ALLOCATE, де воно само алоціюється"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "Очікується %<*%> в специфікації коіндексу в операторі ALLOCATE на %L"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "Stat-змінна на %L повинна бути скалярною цілочисельною змінною"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "Stat-змінна на %L не повинна бути %s в тому ж операторі %s"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr "Повідомлення про помилку на %L без тегу STAT нічого не значить"
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "Змінна ERRMSG на %L повинна бути скалярною змінною типу CHARACTER за замовчуванням"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr "Змінна ERRMSG на %L не повинна бути %s в тій самій %s інструкції"
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr "Обʼєкт, що виділяється, на %L також зʼявляється на %L"
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr "Обʼєкт, що виділяється, на %L є підобʼєктом обʼєкта на %L"
@@ -79330,284 +79393,284 @@ msgstr "Обʼєкт, що виділяється, на %L є підобʼєкт
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "Мітка CASE на %L перекривається з міткою CASE на %L"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "Вираз в операторі CASE на %L повинен бути типу %s"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "Вираз в операторі CASE на %L повинен бути виду %d"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "Вираз в операторі CASE на %L повинен бути скалярним"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "Вираз вибору в обчисленому операторі GOTO на %L повинен бути скалярним цілим виразом"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "Аргумент оператора SELECT на %L не може бути %s"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "Аргумент оператора SELECT на %L повинен бути скалярним виразом"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "Вираз у CASE-операторі на %L не знаходиться у діапазоні %s"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "Оператор DEFAULT CASE на %L не може слідувати за другим оператором DEFAULT CASE на %L"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "Логічний діапазон у CASE-операторі на %L не дозволяється"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "Константне логічне значення в операторі CASE повторюється на %L"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "Специфікація діапазону на %L ніколи не може збігатися"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "Логічний блок SELECT CASE на %L має більше двох випадків"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "Асоціююча сутність %qs на %L є вказівником на процедуру"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "Похідний тип %qs не може бути використаний як змінна на %L"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "Асоціююча сутність %qs на %L є імʼям процедури"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr "Асоціюючий вираз-селектор на %L повертає процедуру"
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr "Селектор на %L не може бути NULL()"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr "Селектор на %L не має типу"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr "Асоційоване імʼя %qs на %L використовується як масив"
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr "Селектор CLASS на %L потребує тимчасовий обʼєкт, який ще не реалізований"
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "Селектор повинен бути поліморфним в операторі SELECT TYPE на %L"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr "Селектор на %L не повинен бути коіндексованим"
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "TYPE IS на %L перекривається з TYPE IS на %L"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr "Похідний тип %qs на %L повинен бути розширюваним"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "Похідний тип %qs на %L повинен бути розширенням %qs"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "Неочікуваний вбудований тип %qs на %L"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr "Тип-специфікація в %L повинна вказувати, що кожен параметр типу довжини припускається"
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr "Подвійний блок CLASS IS у операторі SELECT TYPE на %L"
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr "RANK DEFAULT на %L повторюється на %L"
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr "RANK (*) на %L повторюється на %L"
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr "RANK (%i) на %L повторюється на %L"
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr "RANK (*) на %L не може використовуватися з вказівником або виділеною селектором на %L"
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Недійсний контекст для вбудованої функції NULL () на %L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "Процедура DTIO %s на %L повинна бути рекурсивною"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr "Елемент передачі даних на %L не може бути поліморфним, якщо його не обробляє визначена процедура введення/виведення"
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "Елемент передачі даних на %L не може мати компоненти POINTER, якщо він не обробляється визначеною процедурою введення/виведення"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "Елемент передачі даних на %L не може мати компоненти вказівника на процедуру"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "Елемент передачі даних на %L не може мати компоненти ALLOCATABLE, якщо він не обробляється визначеною процедурою введення/виведення"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "Елемент передачі даних на %L не може мати приватні компоненти"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "Елемент передачі даних на %L не може мати приватні компоненти, якщо він не обробляється визначеною процедурою введення/виведення"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "Елемент передачі даних на %L не може бути повною посиланням на масив з припущеним розміром"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "Змінна блокування на %L повинна бути скаляром типу LOCK_TYPE"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "Змінна події на %L повинна бути скаляром типу EVENT_TYPE"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "Аргумент змінної події на %L повинен бути комасивом або коіндексований"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "Аргумент змінної події на %L повинен бути комасивом, але не коіндексований"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "Аргумент STAT= на %L повинен бути скалярною цілочисельною змінною"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "Аргумент ERRMSG= на %L повинен бути скалярною символьною змінною"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "Аргумент ACQUIRED_LOCK= на %L повинен бути скалярною логічною змінною"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "Аргумент UNTIL_COUNT= на %L повинен бути скалярним цілочисельним виразом"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "Аргумент Imageset на %L повинен бути скалярним або ранг-1 цілочисельним виразом"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "Аргумент Imageset на %L повинен бути між 1 і num_images()"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "Заява на %L не є дійсною цільовою заявою гілки для заяви гілки на %L"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr "Гілка на %L може призвести до безкінечного циклу"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr "Заява GOTO на %L залишає конструкцію CRITICAL для мітки на %L"
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr "Заява GOTO на %L залишає конструкцію DO CONCURRENT для мітки на %L"
@@ -79615,214 +79678,214 @@ msgstr "Заява GOTO на %L залишає конструкцію DO CONCURR
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "Мітка на %L не знаходиться в тому ж блоку, що й заява GOTO на %L"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "Маска WHERE на %L має неузгоджену форму"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "Ціль присвоєння WHERE на %L має неузгоджену форму"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr "Не-елементарне користувацьке призначення в WHERE на %L"
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "Непідтримувана заява всередині WHERE на %L"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "Присвоєння змінній індексу FORALL на %L"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "FORALL з індексом %qs не використовується зліва від призначення на %L, тому може призвести до множинного призначення цього обʼєкта"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr "Конструкція FORALL на %L"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "Індекс FORALL з іменем на %L повинен бути скалярною змінною типу цілочисельне"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "Зовнішня конструкція FORALL вже має індекс з таким імʼям на %L"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "Замикання WHERE/ELSEWHERE на %L вимагає логічний масив"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr "gfc_resolve_blocks(): Неправильний тип блоку"
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Data transfer element at %L cannot have procedure pointer components"
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "Елемент передачі даних на %L не може мати компоненти вказівника на процедуру"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER expression will be truncated in assignment (%ld/%ld) at %L"
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "Вираз CHARACTER буде обрізаний при присвоєнні (%ld/%ld) на %L"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "Коіндексований вираз на %L присвоюється змінній похідного типу з POINTER компонентою в PURE процедурі"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr "У чистій підпрограмі INTENT(IN) фіктивний аргумент не повинен використовуватися як вираз на %L в інтегрованій інструкції присвоєння, в якій змінна є похідним типом, якщо похідний тип має POINTER компоненту на будь-якому рівні вибору компоненти."
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "Присвоєння коіндексованій змінній на %L у чистій процедурі"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr "Присвоєння поліморфному спільному масиву на %L не дозволяється"
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "Присвоєння змінній з можливістю виділення памʼяті поліморфного типу на %L"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr "Присвоєння змінній з можливістю виділення памʼяті поліморфного типу на %L потребує %<-frealloc-lhs%>"
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr "Невиділену змінну не повинно бути поліморфною в інтегрованому призначенні на %L - перевірте, що існує відповідна конкретна підпрограма для оператора %<=%>"
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr "Коіндексована змінна не повинна мати виділеної памʼяті остаточної компоненти в призначенні на %L"
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr "TODO: типове обмежене призначення(я) на %L не виконано, оскільки в проміжних виразах виникають посилання на масив з кількома частинами."
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr "Призначення вказівника на процедуру на %L"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "Результат функції на лівій стороні призначення на %L повинен мати атрибут вказівника."
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "Аргумент TEAM для %qs на %L повинен бути скалярним виразом типу TEAM_TYPE"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "Аргумент TEAM NUMBER для FORM TEAM на %L повинен бути скалярним INTEGER"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "Оператор ASSIGNED GOTO на %L вимагає скалярну цілочисельну змінну"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "Змінній %qs не було призначено цільової мітки на %L"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "Альтернативна RETURN-інструкція на %L потребує специфікатора повернення SCALAR-INTEGER"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "Очікувалося вбудоване призначення в OMP WORKSHARE на %L"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "Інструкція ASSIGN на %L потребує скалярну змінну INTEGER за замовчуванням"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr "Недійсний NULL на %L"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "Арифметична IF-інструкція на %L потребує скалярний вираз REAL або INTEGER"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr "gfc_resolve_code(): Немає виразу на DO WHILE"
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "Умова виходу з циклу DO WHILE на %L повинна бути скалярним логічним виразом"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "Замикання FORALL маски на %L вимагає скалярний логічний вираз"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_resolve_code(): Поганий код оператора"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "Використання параметра %qs, оголошеного на %L, є застарілим"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "Змінна %qs з міткою привʼязки %qs на %L використовує той самий глобальний ідентифікатор, що й сутність на %L"
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr "Змінна %qs з модуля %qs з міткою звʼязування %qs на %L використовує той самий глобальний ідентифікатор, що й сутність на %L з модуля %qs"
@@ -79830,1003 +79893,1003 @@ msgstr "Змінна %qs з модуля %qs з міткою звʼязуван
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "Процедура %qs з міткою звʼязування %qs на %L використовує той самий глобальний ідентифікатор, що й сутність на %L"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "Довжина рядка на %L занадто велика"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "Масив, що може бути виділений %qs на %L, повинен мати відкладену форму або припущений ранг"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "Скалярний обʼєкт %qs на %L не може бути виділеним"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "Вказівник на масив %qs на %L повинен мати відкладену форму або припущений ранг"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "Масив %qs на %L не може мати відкладену форму"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr "Тип %qs змінної CLASS %qs на %L не є розширюваним"
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr "Змінна CLASS %qs на %L повинна бути фіктивною, виділеною або вказівником"
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr "Тип %qs не може бути повʼязаним з хостом на %L, оскільки його блокує несумісний обʼєкт з таким самим імʼям, оголошений на %L"
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr "Неявне збереження для змінної модуля %qs на %L, необхідне через типову ініціалізацію"
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "Сутність %qs на %L має відкладений параметр типу і вимагає атрибут POINTER або ALLOCATABLE"
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "Масив модуля або головної програми %qs на %L повинен мати сталу форму"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "Сутність з припущеною довжиною символів на %L повинна бути фіктивним аргументом або ПАРАМЕТРОМ"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr "%qs на %L повинен мати сталу довжину символів в цьому контексті"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "Змінна COMMON %qs на %L повинна мати сталу довжину символів"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "Змінна з можливістю виділення %qs у %L не може мати ініціалізатора"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr "Зовнішня змінна %qs у %L не може мати ініціалізатора"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "Фіктивна змінна %qs у %L не може мати ініціалізатора"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "Вбудована змінна %qs у %L не може мати ініціалізатора"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "Результат функції %qs у %L не може мати ініціалізатора"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "Автоматичний масив %qs у %L не може мати ініціалізатора"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr "%s у %L"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "Функція заяви зі значенням символу %qs у %L повинна мати сталу довжину"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "%qs має приватний тип і не може бути фіктивним аргументом %qs, який є публічним у %L"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr "Процедура %qs в публічному інтерфейсі %qs на %L приймає фіктивні аргументи %qs, які є ПРИВАТНИМИ"
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "Функція %qs на %L не може мати ініціалізатора"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr "Зовнішній обʼєкт %qs на %L не може мати ініціалізатора"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "ELEMENTAL-функція %qs на %L повинна мати скалярний результат"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "Функція-оператор %qs на %L не може мати атрибуту вказівника або атрибуту виділення памʼяті"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "Функція CHARACTER(*) %qs на %L не може бути масивом"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "Функція CHARACTER(*) %qs на %L не може бути вказівником"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "Функція CHARACTER(*) %qs на %L не може бути чистою"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "Функція CHARACTER(*) %qs у рядку %L не може бути рекурсивною"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "Функція CHARACTER(*) %qs у рядку %L"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "Вказівник на процедуру %qs у рядку %L не може бути елементарним"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "Фіктивна процедура %qs у рядку %L не може бути елементарною"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr "Змінна результату функції %qs у рядку %L елементарної функції %qs не може мати атрибут ALLOCATABLE або POINTER"
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "Атрибут PROCEDURE конфліктує з атрибутом SAVE у %qs у рядку %L"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "Атрибут PROCEDURE конфліктує з атрибутом INTENT у %qs у рядку %L"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "Атрибут PROCEDURE конфліктує з атрибутом RESULT в %qs на %L"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "Атрибут EXTERNAL конфліктує з атрибутом FUNCTION в %qs на %L"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr "Результат вказівника процедури %qs на %L не має атрибуту вказівника"
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Несумісність атрибуту ELEMENTAL між MODULE PROCEDURE на %L та його інтерфейсом в %s"
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Несумісність атрибуту PURE між MODULE PROCEDURE на %L та його інтерфейсом в %s"
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr "Несумісність атрибуту RECURSIVE між MODULE PROCEDURE на %L та його інтерфейсом в %s"
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr "%s між оголошенням MODULE PROCEDURE в MODULE %qs та оголошенням на %L в (SUB)MODULE %qs"
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr "Інтерфейс %qs на %L повинен бути явним"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "FINAL процедура %qs на %L не є SUBROUTINE"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "FINAL процедура на %L повинна мати рівно один аргумент"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "Аргумент FINAL процедури на %L повинен бути типу %qs"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr "FINAL процедура на %L з аргументом з припущеним рангом повинна бути єдиним фіналізатором з такою самою категорією/типом (F2018: C790)"
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "Аргумент FINAL процедури на %L не може бути POINTER"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "Аргумент FINAL процедури на %L не може бути ALLOCATABLE"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "Аргумент FINAL процедури на %L не може бути OPTIONAL"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "Аргумент FINAL процедури на %L не може бути INTENT(OUT)"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "Нескалярна FINAL процедура на %L повинна мати аргумент з припущеною формою"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "FINAL процедура %qs, оголошена на %L, має такий же ранг (%d), як %qs"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr "Тільки масивні FINAL процедури оголошені для похідного типу %qs, визначеного на %L, рекомендується також скалярна, якщо не було оголошено фіналізатор з припущеним рангом"
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr "%qs та %qs не можуть бути змішані FUNCTION/SUBROUTINE для GENERIC %qs на %L"
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr "%qs та %qs для GENERIC %qs на %L є неоднозначними"
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr "Невизначена конкретна привʼязка %qs як ціль GENERIC %qs на %L"
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr "GENERIC %qs на %L повинен мати конкретну привʼязку, %qs також є GENERIC"
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr "GENERIC %qs на %L не може перезаписати конкретну привʼязку з таким самим імʼям"
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "Оператор, повʼязаний з типом, на %L не може бути NOPASS"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "%qs повинен бути процедурою модуля або зовнішньою процедурою з явним інтерфейсом на %L"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Процедура %qs з PASS(%s) на %L не має аргументу %qs"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "Процедура %qs з PASS на %L повинна мати принаймні один аргумент"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "Неполіморфний фіктивний аргумент переданого обʼєкту %qs на %L"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "Аргумент %qs функції %qs з PASS(%s) на %L повинен бути похідним типом %qs"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 #| msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "Аргумент %qs функції %qs з PASS(%s) на %L повинен бути похідним типом %qs"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, fuzzy, gcc-internal-format
 #| msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr "Усі параметри типу LEN в інструкції TYPE IS на %C повинні бути ПРИПУЩЕНІ"
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "Фіктивний аргумент переданого обʼєкту %qs на %L повинен бути скалярним"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "Фіктивний аргумент переданого обʼєкту %qs на %L не може бути ALLOCATABLE"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "Фіктивний аргумент переданого обʼєкту %qs на %L не може бути POINTER"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "Процедура %qs на %L має ту саму назву, що й компонент %qs"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "Процедура %qs на %L має ту саму назву, що й успадкований компонент %qs"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr "Похідний тип %qs, оголошений на %L, повинен бути АБСТРАКТНИМ, оскільки %qs є ВІДКЛАДЕНИМ і не перевизначений"
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "Компонент комасиву %qs на %L повинен бути виділенням з відкладеною формою"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "Компонент %qs на %L з типом TYPE(C_PTR) або TYPE(C_FUNPTR) не може бути комасивом"
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr "Компонент %qs у %L з компонентом комасиву повинен бути невказівниковим, невиділяемим скаляром"
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr "Компонент %qs в %L має атрибут CONTIGUOUS, але не є вказівником на масив"
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, gcc-internal-format
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "Компонент %qs типу BIND(C) в %L повинен мати довжину одиницю"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "Компонент вказівника на процедуру %qs з PASS(%s) в %L не має аргументу %qs"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "Компонент вказівника на процедуру %qs з PASS в %L повинен мати принаймні один аргумент"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "Аргумент %qs в %qs з PASS(%s) в %L повинен бути похідним типом %qs"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "Аргумент %qs в %qs з PASS(%s) в %L повинен бути скалярним"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "Аргумент %qs в %qs з PASS(%s) в %L не може мати атрибут POINTER"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "Аргумент %qs функції %qs з PASS(%s) на %L не може бути ALLOCATABLE"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "Компонент %qs функції %qs на %L має таке саме імʼя, як успадкована звʼязана з процедурою типу"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "Довжина символів компонента %qs має бути константним виразом специфікації на %L"
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "Вираз довжини символів компонента %qs на %L повинен бути типу INTEGER, знайдено %s"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr "Символьний компонент %qs функції %qs на %L з відкладеною довжиною повинен бути POINTER або ALLOCATABLE"
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "компонент %qs є типом PRIVATE і не може бути компонентом %qs, який є PUBLIC на %L"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr "Поліморфний компонент %s на %L у типі SEQUENCE або BIND(C) %s"
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "Компонент %s типу SEQUENCE, оголошений на %L, не має атрибуту SEQUENCE"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "Конфліктуючі ініціалізатори в обʼєднанні на %L та %L"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr "Оскільки розширюючий тип %qs на %L має компонент coarray, батьківський тип %qs також повинен мати один"
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "Не розширюваний похідний тип %qs на %L не повинен бути АБСТРАКТНИМ"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr "Параметризований тип %qs не має компонента, що відповідає параметру %qs на %L"
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr "Загальне імʼя %qs функції %qs на %L збігається з імʼям похідного типу на %L"
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "Похідний тип %qs на %L не був оголошений"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "Масив з припущеним розміром %qs у списку імен %qs на %L не дозволяється"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr "Обʼєкт масиву NAMELIST %qs з припущеною формою у списку імен %qs в %L"
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr "Обʼєкт масиву NAMELIST %qs з незмінною формою у списку імен %qs в %L"
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr "Обʼєкт NAMELIST %qs з незмінною довжиною символу у списку імен %qs в %L"
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "Обʼєкт NAMELIST %qs був оголошений як PRIVATE і не може бути членом PUBLIC списку імен %qs в %L"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr "Обʼєкт NAMELIST %qs має використовувані PRIVATE компоненти і не може бути членом списку імен %qs в %L"
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "Обʼєкт NAMELIST %qs має PRIVATE компоненти і не може бути членом PUBLIC списку імен %qs в %L"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "Атрибут PROCEDURE конфліктує з атрибутом NAMELIST у %qs в %L"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "Масив параметрів %qs в %L не може бути автоматичним або мати відкладену форму"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "Неявно визначений ПАРАМЕТР %qs у %L не відповідає пізнішому неявному типу"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "Несумісний похідний тип в ПАРАМЕТРІ у %L"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "Змінна CLASS %qs у %L не може мати атрибут PARAMETER"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, fuzzy, gcc-internal-format
 #| msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "Сутність %qs на %L має відкладений параметр типу і вимагає атрибут POINTER або ALLOCATABLE"
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr "АВТОМАТИЧНИЙ обʼєкт %qs на %L не повинен мати атрибуту SAVE або бути змінною, оголошеною в головній програмі, модулі або підмодулі (F08/C513)"
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr "Обʼєкт %qs на %L з передбаченими параметрами типу повинен бути фіктивним або вибірником типу SELECT (F08/4.2)"
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr "На жаль, компоненти, які можна виділяти або вказувати, в поліморфних (CLASS) типах комасивів на %L не підтримуються"
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr "%<omp_all_memory%>, оголошений на %L, може використовуватися лише в замиканні OpenMP DEPEND"
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "Атрибут PROTECTED конфліктує з атрибутом EXTERNAL на %L"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "Атрибут PROCEDURE конфліктує з атрибутом PROTECTED на %L"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr "%qs на %L має атрибут CONTIGUOUS, але не є вказівником на масив або масивом з таємною формою або таємним рангом"
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr "Неправильна специфікація для масиву з припущеним розміром на %L"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "Масив з припущеним розміром на %L повинен бути фіктивним аргументом"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "Масив з припущеною формою на %L повинен бути фіктивним аргументом"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "Масив з припущеним рангом на %L повинен бути фіктивним аргументом"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr "Масив з припущеним рангом на %L не може мати атрибутів VALUE або CODIMENSION"
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "Символ на %L не є фіктивною змінною"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr "%qs на %L не може мати атрибут VALUE, оскільки це не є фіктивним аргументом"
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "Фіктивна змінна символьного типу %qs на %L з атрибутом VALUE повинна мати сталу довжину"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr "Символьна фіктивна змінна %qs на %L з атрибутом VALUE, сумісна з C, повинна мати довжину одиницю"
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "Похідний тип %qs на %L має тип %qs, який не був визначений"
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr "Змінна %s на %L з атрибутом NO_ARG_CHECK повинна бути фіктивним аргументом"
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr "Змінна %s на %L з атрибутом NO_ARG_CHECK повинна бути типу TYPE(*) або числового вбудованого типу"
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Змінна %s на %L з атрибутом NO_ARG_CHECK не може мати атрибутів ALLOCATABLE, CODIMENSION, POINTER або VALUE"
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "Змінна %s на %L з атрибутом NO_ARG_CHECK не може мати атрибут INTENT(OUT)"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr "Змінна %s на %L з атрибутом NO_ARG_CHECK повинна бути або скаляром, або масивом з передбачуваною розмірністю"
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "Припущений тип змінної %s на %L дозволений лише для фіктивних змінних"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "Змінна %s припущеного типу на %L не може мати атрибути ALLOCATABLE, CODIMENSION, POINTER або VALUE"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "Припущена змінна %s на %L не може мати атрибут INTENT(OUT)"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr "Припущена змінна %s на %L не може бути масивом з явною формою"
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr "Змінна %qs на %L не може бути BIND(C), оскільки вона не є загальним блоком або не оголошена на рівні модуля"
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "Змінна BIND(C) %qs на %L повинна мати довжину одиницю"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "ПУБЛІЧНА %s %qs на %L з приватним похідним типом %qs"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr "Змінна %s на %L типу LOCK_TYPE або з підкомпонентом типу LOCK_TYPE повинна бути комасивом"
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr "Змінна %s на %L типу EVENT_TYPE або з підкомпонентою типу EVENT_TYPE повинна бути комасивом"
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "Фіктивний аргумент INTENT(OUT) %qs на %L має ASSUMED SIZE і, отже, не може мати значення за замовчуванням"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "Фіктивний аргумент %qs на %L типу LOCK_TYPE не може бути INTENT(OUT)"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "Фіктивний аргумент %qs на %L типу EVENT_TYPE не може бути INTENT(OUT)"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "Результат функції %qs на %L не може бути комасивом або мати комасивну компоненту"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "Змінна %qs на %L типу TYPE(C_PTR) або TYPE(C_FUNPTR) не може бути комасивом"
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr "Змінна %qs на %L з компонентом комасиву має бути невказівником, неалокаційним скаляром, який не є комасивом"
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr "Змінна %qs на %L є комасивом і не є ВИДІЛЕНОЮ, ЗБЕРЕЖЕНОЮ або фіктивним аргументом"
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "Комасивна змінна %qs на %L не повинна мати ко-розмірності з відкладеною формою"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "Змінна %qs на %L з можливістю виділення памʼяті має мати відкладену форму"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr "Змінна %qs на %L має INTENT(OUT) і, отже, не може бути виділеним комасивом або мати компоненти комасиву"
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "Фіктивна змінна комасиву %qs на %L не дозволена в процедурі BIND(C) %qs"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "ЛОГІЧНИЙ фіктивний аргумент %qs в %L з не-C_Bool видом в процедурі BIND(C) %qs"
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "ЛОГІЧНА змінна результату %qs в %L з не-C_Bool видом в процедурі BIND(C) %qs"
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "Список імен %qs не може бути аргументом підпрограми або функції в %L"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr "Threadprivate в %L не зберігається"
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr "Змінна !$OMP DECLARE TARGET %qs на %L не зберігається"
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr "Очікується визначений обʼєкт поблизу %L"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "Елемент BLOCK DATA %qs на %L повинен бути в COMMON"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "Масив DATA %qs на %L повинен бути вказаний в попередньому оголошенні"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "Елемент DATA %qs на %L не може мати спільного індексу"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr "Елемент DATA %qs на %L є вказівником і, отже, повинен бути повним масивом"
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr "Обʼєкт DATA поблизу %L має атрибут вказівника, а відповідне значення DATA не є дійсною початковою ціллю даних"
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "Елемент DATA %qs на %L не може мати атрибут ALLOCATABLE"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "Неконстантний розділ масиву у %L в інструкції DATA"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "Інструкція DATA у %L має більше змінних, ніж значень"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Nonconstant array section at %L in DATA statement"
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "Неконстантний розділ масиву у %L в інструкції DATA"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr "початок неявного циклу DO у %L не може бути спрощений до константного значення"
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr "кінець неявного циклу DO на %L не може бути спрощений до константного значення"
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr "крок неявного циклу DO на %L не може бути спрощений до сталого значення"
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "крок неявного циклу DO на %L не може бути нулем"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "інструкція DATA на %L має більше значень, ніж змінних"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "Мітка %d на %L визначена, але не використовується"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "Мітка %d на %L визначена, але не може бути використана"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "Змінна похідного типу %qs на %L повинна мати атрибут SEQUENCE, щоб бути обʼєктом EQUIVALENCE"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "Змінна похідного типу %qs на %L не може мати компоненти ALLOCATABLE, щоб бути обʼєктом EQUIVALENCE"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "Змінна похідного типу %qs на %L зі стандартною ініціалізацією не може бути в EQUIVALENCE змінною в COMMON"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "Змінна похідного типу %qs на %L з компонентами-вказівниками не може бути обʼєктом EQUIVALENCE"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "Помилка синтаксису в операторі EQUIVALENCE на %L"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr "Або всі, або жоден з обʼєктів в наборі EQUIVALENCE на %L повинні мати атрибут PROTECTED"
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "Елемент блоку COMMON %qs у %L не може бути обʼєктом EQUIVALENCE у чистій процедурі %qs"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Іменована константа %qs на %L не може бути обʼєктом EQUIVALENCE"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "Масив %qs на %L з неконстантними межами не може бути обʼєктом EQUIVALENCE"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "Компонент структури %qs на %L не може бути обʼєктом EQUIVALENCE"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "Підрядок на %L має нульову довжину"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "Самовідсилання в виразі довжини символу для %qs на %L"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "ПУБЛІЧНА функція %qs на %L з ПРИВАТНИМ типом %qs"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "ENTRY %qs на %L не має ІМПЛІЦИТНОГО типу"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "Процедура користувацького оператора %qs на %L повинна бути ФУНКЦІЄЮ"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "Процедура користувацького оператора %qs на %L не може мати припущену довжину символу"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "Процедура користувача оператора %qs на %L повинна мати принаймні один аргумент"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "Перший аргумент інтерфейсу оператора на %L не може бути необовʼязковим"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "Другий аргумент інтерфейсу оператора на %L не може бути необовʼязковим"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "Інтерфейс оператора на %L повинен мати, як максимум, два аргументи"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr "Вкладена процедура %qs на %L PURE-процедури також повинна бути PURE"
@@ -81371,127 +81434,127 @@ msgstr "Неявно оголошена змінна %qs на %L може не 
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "Результат функції %qs на %L не має неявного типу"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "Атрибут %s конфліктує з атрибутом %s у %L"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "Атрибут %s конфліктує з атрибутом %s в %qs на %L"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "Атрибут %s не дозволений в програмній одиниці BLOCK DATA на %L"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "Імʼя групи списку імен на %L не може мати атрибут SAVE"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "внутрішня процедура %qs на %L конфліктує з фіктивним аргументом"
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "Вказівник на процедуру у %C"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "Атрибут %s застосовується до %s %s на %L"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "BIND(C) застосовується до %s %s у %L"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "Атрибут %s конфліктує з атрибутом %s у %L"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "Атрибут %s конфліктує з атрибутом %s в %qs на %L"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "Не можна змінювати атрибути символу, повʼязаного з USE, у %L"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "Не можна змінювати атрибути символу, повʼязаного з USE, %s у %L"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "Повторно вказано атрибут %s у %L"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr "ALLOCATABLE вказано поза тілом INTERFACE на %L"
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "Повторно вказано атрибут AUTOMATIC на %L"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "CODIMENSION вказано для %qs поза тілом його INTERFACE на %L"
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "DIMENSION вказано для %qs поза тілом його ІНТЕРФЕЙСу на %L"
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "Cray Pointee на %L зʼявляється в кількох вказівках pointer()"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "Повторно вказано атрибут PROTECTED на %L"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "Атрибут SAVE на %L не може бути вказаний в чистій процедурі"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "Повторно вказано атрибут SAVE на %L"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "Повторно вказано атрибут VALUE у %L"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "Повторно вказано атрибут VOLATILE у %L"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "Атрибут VOLATILE на %L не може бути вказаний в чистій процедурі"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "Повторно вказано атрибут ASYNCHRONOUS у %L"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "Атрибут %s у %qs конфліктує з атрибутом %s у %L"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
@@ -81500,203 +81563,203 @@ msgstr ""
 "Процедура %s у %L вже оголошена як процедура %s. \n"
 "F2008: Присвоєння функції-вказівника є неоднозначним, якщо воно є першим виконуваним оператором після блоку специфікації. Будь ласка, додайте будь-який інший виконуваний оператор перед ним. FIXME"
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "Процедура %s в %L вже оголошена як процедура %s"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "INTENT(%s) конфліктує з INTENT(%s) в %L"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "Специфікація ACCESS в %L вже була вказана"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "Повторно вказано атрибут BIND в %L"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr "BIND(C) в %L"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "Повторно вказано атрибут EXTENDS в %L"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr "EXTENDS в %L"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "Символ %qs в %L вже має явний інтерфейс"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr "%qs в %L має атрибути, вказані поза його тілом INTERFACE"
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr "Символ %qs в %L конфліктує з символом з модуля %qs, використовується в %L"
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "Символ %qs в %L вже має основний тип %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "Процедура %qs в %L не може мати основний тип %s"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "Символ %qs в %L не може мати типу"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "Компонент %qs в %C вже є в батьківському типі в %L"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "Символ %qs в %C є неоднозначним"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "Похідний тип %qs в %C використовується до його визначення"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "Компонент %qs в %C є ПРИВАТНИМ компонентом %qs"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "%qs в %C не є членом структури %qs; ви мали на увазі %qs?"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "%qs в %C не є членом структури %qs"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "Подвійна мітка вказівки %d на %L і %L"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "Мітка %d на %C вже використовується як ціль гілки"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "Мітка %d на %C вже використовується як мітка формату"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr "Заява про завершення DO, яка не є END DO або CONTINUE з міткою %d на %C"
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "Мітка %d на %C раніше використовувалася як мітка формату"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "Мітка %d на %C раніше використовувалася як ціль гілки"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr "Спільна мітка завершення DO %d на %C"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr "Позначена інструкція DO в %L"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "Імʼя %qs у %C є неоднозначним посиланням на %qs з модуля %qs"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "Імʼя %qs в %C є неоднозначним посиланням на %qs з поточної одиниці програми"
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "Символ %qs в %C вже має асоціацію з хостом"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr "verify_bind_c_derived_type(): Даний символ неочікувано має значення NULL"
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "Похідний тип %qs, оголошений у %L, повинен мати атрибут BIND, щоб бути сумісним з C"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr "Похідний тип %qs з атрибутом BIND(C) у %L є порожнім і може бути недоступним для супутнього процесора C"
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Компонент %qs у %L не може мати атрибут POINTER, оскільки він є членом похідного типу BIND(C) %qs у %L"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "Компонент вказівника на процедуру %qs на %L не може бути членом похідного типу BIND(C) %qs на %L"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "Компонент %qs на %L не може мати атрибут ALLOCATABLE, оскільки він є членом похідного типу BIND(C) %qs на %L"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr "Компонент %qs в похідному типі %qs на %L може бути несумісним з C, навіть якщо похідний тип %qs є BIND(C)"
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "Компонент %qs в похідному типі %qs на %L може бути несумісним з C"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "Похідний тип %qs на %L не може мати атрибут SEQUENCE, оскільки він є BIND(C)"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr "Символ %qs використовується до того, як він введений на %L"
@@ -81726,24 +81789,24 @@ msgstr "Перекриваються нерівні ініціалізатори
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "Перекриваються нерівні ініціалізатори в EQUIVALENCE на %C"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr "Конструктор структури на %C був завершений. Ця функція була видалена за допомогою f08/0011. Використовуйте -std=f2018 або -std=gnu, щоб усунути завершення."
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr "Кількість елементів у конструкторі масиву на %L вимагає збільшення дозволеного верхнього обмеження %d. Див. опцію %<-fmax-array-constructor%>"
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "Створення тимчасового масиву на %L для аргументу %qs"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "поганий тип виразу під час обходу (%d)"
@@ -81932,37 +81995,37 @@ msgstr "Значення повернення %qs функції %qs, оголо
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr "Вибачте, !$ACC DECLARE на %L не дозволено в конструкції BLOCK"
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr "Не вдалося обчислити довжину масиву char на %L."
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr "Код для перерозподілу змінної, яку можна виділити, на %L буде доданий"
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr "Вибачте, доступ до необмеженого поліморфного обʼєкта з індексацією на %L не підтримується"
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr "Вибачте, коіндексний доступ до необмеженого поліморфного компонента на %L не підтримується"
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "Невідомий вбудований оператор"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "Невідома функція списку аргументів на %L"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr "Якщо переналаштування меж вказано на %L, ціль вказівника не повинна бути NULL"
@@ -81973,17 +82036,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "Вбудовану функцію %qs (%d) не впізнано"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "Аргумент %<dim%> вбудованої функції %s на %L не є дійсним індексом розміру"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr "Вибачте, компонент події похідного типу на %L ще не підтримується"
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr "Змінна події на %L не повинна бути співіндексованою"
@@ -82124,7 +82187,7 @@ msgstr "Вибачте, компонент блокування похідног
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr "Вибачте, підтримка лише для цілого типу %d реалізована для набору зображень на %L"
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr "gfc_trans_select(): Неправильний тип для виразу case."
@@ -82490,6 +82553,11 @@ msgstr "змінна %qD перевизначена як функція"
 msgid "function %qD redeclared as variable"
 msgstr "функція %qD перевизначена як змінна"
 
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "раніше оголошено тут"
+
 #: lto/lto.cc:174
 #, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -83729,7 +83797,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr "%<-fobjc-sjlj-exceptions%> ігнорується для %<-fgnu-runtime%>"
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr "тип %qT, який не є Objective-C, не може бути перехоплений"
@@ -83739,7 +83807,7 @@ msgstr "тип %qT, який не є Objective-C, не може бути пер
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr "%<-fobjc-sjlj-exceptions%> є єдиним підтримуваним системою винятків для %<-fnext-runtime%> з аргументом %<-fobjc-abi-version%>, меншим за 2"
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr "%<-fobjc-sjlj-exceptions%> ігнорується для %<-fnext-runtime%>, коли %<-fobjc-abi-version%> більше 1"
@@ -84072,6 +84140,10 @@ msgstr ""
 #~ msgid "  enters scope of %q#D which has non-trivial destructor"
 #~ msgstr "  входить у область видимості %q#D, яка має незвичайний деструктор"
 
+#, gcc-internal-format
+#~ msgid "cannot declare %qD in a different module"
+#~ msgstr "не можна оголосити %qD в іншому модулі"
+
 #, gcc-internal-format
 #~ msgid "cannot define %qD in different module"
 #~ msgstr "не можна визначити %qD в іншому модулі"
diff --git a/gcc/po/vi.po b/gcc/po/vi.po
index 927073d1694..fdce5bf08ad 100644
--- a/gcc/po/vi.po
+++ b/gcc/po/vi.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 7.1-b20170101\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2017-01-08 08:33+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -408,7 +408,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "không dùng đồng thời hai tùy chọn -march=… và -mcpu=…"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared và mdll không tương thích với nhau"
 
@@ -19699,18 +19699,18 @@ msgstr "không nhận ra lệnh:"
 msgid "insn does not satisfy its constraints:"
 msgstr "lệnh không thỏa những ràng buộc của nó:"
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "được tạo và sử dụng với cài đặt khác nhau của “%s”"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 #, fuzzy
 #| msgid "created and used with different settings of -fpic"
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "được tạo và sử dụng với cài đặt khác nhau của -fpic"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 #, fuzzy
 #| msgid "created and used with different settings of -fpie"
 msgid "created and used with different settings of %<-fpie%>"
@@ -20033,7 +20033,7 @@ msgstr "đồ sửa đổi chiều dài theo định dạng strfmon"
 msgid "<command-line>"
 msgstr "<dòng lệnh>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 #| msgid "Unsupported operand for code '%c'"
 msgid "unsupported operand for code '%c'"
@@ -20053,9 +20053,9 @@ msgstr "toán hạng không hợp lệ đối với “%%%c”"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 #| msgid "invalid constant"
 msgid "invalid vector constant"
@@ -20078,7 +20078,7 @@ msgstr "toán hạng không hợp lệ đối với “%%%c”"
 msgid "incompatible register operand for '%%%c'"
 msgstr "toán hạn dấu chấm động / thanh ghi véctơ không tương thích cho “%%%c”"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "toán hạng còn thiếu"
@@ -20110,93 +20110,93 @@ msgstr "sai đặt chế độ đặt địa chỉ"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "toán hạng không hợp lệ trong phép toán nhị phân"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "“%%&” bị sử dụng mà không có tham chiếu TLS năng động cục bộ"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "giá trị %%J sai"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "giá trị %%r sai"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "giá trị %%R sai"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "giá trị %%N sai"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "giá trị %%P sai"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "giá trị %%h sai"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "giá trị %%L sai"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "giá trị %%m sai"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "giá trị %%M sai"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "giá trị %%U sai"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "giá trị %%s sai"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "giá trị %%C sai"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "giá trị %%E sai"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "không rõ bỏ ghi rõ bố trí lại"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "mã %%xn sai"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, c-format
 msgid "invalid operand address"
 msgstr "địa chỉ toán hạng không hợp lệ"
@@ -20293,35 +20293,35 @@ msgstr "UNSPEC không hợp lệ như là toán hạng: %d"
 msgid "unrecognized supposed constant"
 msgstr "không nhận ra điều nên là hằng số"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "sai đặt toán hạng dời"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "lệnh Thumb căn cứ vào"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "gặp lệnh căn cứ vào trong dãy có điều kiện"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "Không hỗ trợ toán hạng cho mã “%c”"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -20329,125 +20329,125 @@ msgstr "Không hỗ trợ toán hạng cho mã “%c”"
 msgid "invalid operand for code '%c'"
 msgstr "sai đặt toán hạng cho mã “%c”"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "lệnh chưa bao giờ thực hiện"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "định dạng mã Maverick đã cũ “%c”"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "sai chuyển đổi từ %<__fpreg%>"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "sai chuyển đổi sang %<__fpreg%>"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "toán hạng địa chỉ yêu cầu ràng buộc cho thanh ghi X, Y, hay Z"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "các toán hạng cho %T/%t phải là reg + const_int:"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 msgid "bad address, not an I/O address:"
 msgstr "Địa chỉ sai, không phải địa chỉ V/R:"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 msgid "bad address, not a constant:"
 msgstr "địa chỉ sai, không phải là một hằng số:"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "địa chỉ sai, không phải (reg+disp):"
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "địa chỉ sai, không phải post_inc hoặc pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "lỗi biên dịch nội bộ. Địa chỉ sai:"
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "Không hỗ trợ mã “%c” cho dấu chấm cố định:"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "lỗi biên dịch nội bộ. Không hiểu chế độ:"
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "lệnh sai:"
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "lệnh không đúng:"
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "không rõ lệnh di chuyển:"
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "lệnh dời sai:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "lỗi biên dịch nội bộ. Dịch không đúng:"
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 msgid "unsupported fixed-point conversion"
 msgstr "không hỗ trợ chuyển đổi dấu chấm cố định"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 #, fuzzy
 #| msgid "Loop variable"
 msgid "variable"
 msgstr "Biến vòng lặp"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 #, fuzzy
 #| msgid "redefinition of parameter %q+D"
 msgid "function parameter"
 msgstr "định nghĩa lại của đối số %q+D"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 #, fuzzy
 #| msgid "struct defined here"
 msgid "structure field"
 msgstr "struct được định nghĩa ở đây"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 #, fuzzy
 #| msgid "creating array of functions"
 msgid "return type of function"
 msgstr "tạo mảng hàm"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 #, fuzzy
 #| msgid "null pointer"
 msgid "pointer"
@@ -20487,7 +20487,7 @@ msgstr "gặp toán hạng bất thường"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -20817,53 +20817,53 @@ msgstr "toán hạng không phải là một mã điều kiện, mã toán hạn
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "toán hạng không phải là một mã điều kiện, mã toán hạng sai “Y”"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "mã toán hạng sai “%c”"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "sai đặt ràng buộc cho toán hạng"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 #| msgid "invalid zero extract"
 msgid "invalid vector immediate"
 msgstr "trích số không không hợp lệ"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "không rõ chế độ lệnh"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "sai chuyển đổi từ %<__fpreg%>"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "sai chuyển đổi từ %<__fpreg%>"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "sai chuyển đổi sang %<__fpreg%>"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -20894,7 +20894,7 @@ msgstr "thao tác sai %<__fpreg%>"
 msgid "invalid %%P operand"
 msgstr "gặp toán hạng %%P sai"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "gặp giá trị %%p sai"
@@ -20921,29 +20921,29 @@ msgstr "không cho phép sử dụng địa chỉ tuyệt đối tương đối
 msgid "invalid addressing mode"
 msgstr "sai đặt chế độ đặt địa chỉ"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "“%%%c” không phải là một tiền tố toán hạng đúng"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "sai sử dụng “%%%c”"
@@ -20975,7 +20975,7 @@ msgid "post-increment address is not a register"
 msgstr "địa chỉ hậu gia không phải là một thanh ghi"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "địa chỉ sai"
 
@@ -21143,7 +21143,7 @@ msgstr "Hóa hợp không được hỗ trợ: %s"
 msgid "unsupported memory expression:"
 msgstr "không hỗ trợ chuyển đổi dấu chấm cố định"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 #| msgid "invalid %%r operand"
 msgid "invalid vector operand"
@@ -21206,258 +21206,258 @@ msgstr "-mquad-memory-atomic cần chế độ 64-bit"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "-mquad-memory không sẵn sàng trên chế độ little endian"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr "sai di chuyển"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr "Di chuyển 128-bit sai"
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%A value"
 msgstr "giá trị %%J sai"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "giá trị %%D sai"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "giá trị %%e sai"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "giá trị %%f sai"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "giá trị %%F sai"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "giá trị %%G sai"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "mã %%j sai"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "mã %%J sai"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "giá trị %%k sai"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "giá trị %%K sai"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "giá trị %%O sai"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "giá trị %%q sai"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%t value"
 msgstr "giá trị %%J sai"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "giá trị %%T sai"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "giá trị %%u sai"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "giá trị %%v sai"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%V value"
 msgstr "giá trị %%J sai"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "giá trị %%x sai"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%z value"
 msgstr "giá trị %%J sai"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "giá trị %%y sai, hãy thử sử dụng ràng buộc “Z”"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 #, fuzzy
 #| msgid "Enable using IEEE 128-bit floating point instructions."
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "Bật sử dụng câu lệnh dấu số thực chấm động 128-bit IEEE."
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "đối số AltiVec bị gửi cho hàm không nguyên mẫu"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 msgid "Could not generate addis value for fusion"
 msgstr "Không thể tạo addis cho sát nhập"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 msgid "Unable to generate load/store offset for fusion"
 msgstr "Không thể tạo ra việc tải/lưu offset cho hợp nhất"
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr "Hợp nhất GPR sai"
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "sai chuyển đổi từ %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "sai chuyển đổi sang %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "sai chuyển đổi từ %<__fpreg%>"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "sai chuyển đổi sang %<__fpreg%>"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr ""
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "không thể giải mã địa chỉ"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr ""
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "hằng không hợp lệ cho bổ nghĩa kết xuất “%c”"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "hằng không hợp lệ - hãy thử dùng bổ nghĩa kết xuất"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "véc-tơ hằng không hợp lệ cho bổ nghĩa kết xuất “%c”"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "biểu thức không hợp lệ - hãy thử dùng bổ nghĩa kết xuất"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "biểu thức không hợp lệ cho bộ sửa đầu ra “%c”"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 #| msgid "Vector argument passed to unprototyped function"
 msgid "vector argument passed to unprototyped function"
 msgstr "Đối số véc-tơ bị gửi cho hàm không nguyên mẫu"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 msgid "types differ in signedness"
 msgstr ""
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr ""
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -21653,12 +21653,12 @@ msgstr "({nặc danh})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "cần %<;%>"
@@ -21671,7 +21671,7 @@ msgstr "cần %<;%>"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -21680,7 +21680,7 @@ msgstr "cần %<;%>"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "cần %<)%>"
@@ -21688,7 +21688,7 @@ msgstr "cần %<)%>"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "cần %<]%>"
@@ -21699,29 +21699,29 @@ msgstr "cần %<;%>, %<,%> hoặc %<)%>"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "cần %<(%>"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "cần %<[%>"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "cần %<{%>"
@@ -21731,17 +21731,17 @@ msgstr "cần %<{%>"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "cần %<:%>"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "cần %<while%>"
@@ -21750,8 +21750,8 @@ msgstr "cần %<while%>"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "cần %<,%>"
@@ -21761,17 +21761,17 @@ msgid "expected %<.%>"
 msgstr "cần %<.%>"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "cần %<@end%>"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "cần %<>%>"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "cần %<,%> hoặc %<)%>"
@@ -21779,33 +21779,33 @@ msgstr "cần %<,%> hoặc %<)%>"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "cần %<=%>"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "cần %<}%>"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "expected %<else%>"
 msgstr "cần %<delete%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "cần %<#pragma omp section%> hoặc %<}%>"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -21813,7 +21813,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "(nặc danh)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "cần %<<%>"
@@ -21830,22 +21830,22 @@ msgstr "cần kênh"
 msgid "candidate:"
 msgstr "ứng cử 1:"
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 #| msgid "Enable user-defined instructions."
 msgid "  after user-defined conversion:"
 msgstr "Bật câu lệnh được người dùng xác định."
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "ứng cử là:"
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "ứng cử 1:"
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "ứng cử 2:"
 
@@ -22103,7 +22103,7 @@ msgstr "%r%s:%d:%d:%R   trong khai triển constexpr của %qs"
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr "%r%s:%d:%R   trong khai triển constexpr của %qs"
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "các ứng cử là:"
 
@@ -22147,48 +22147,48 @@ msgstr "việc chuyển đổi cũng bỏ trình trạng bất biến"
 msgid "source type is not polymorphic"
 msgstr "nguồn không có loại nhiều dạng"
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "đối số có loại sai đối với dấu trừ nguyên phân"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "đối số có loại sai đối với dấu cộng nguyên phân"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "đối số có loại sai đối với phần bù bit"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "đối số có loại sai đối với bộ tuyệt đối"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "đối số có loại sai đối với phần chia"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 msgid "in argument to unary !"
 msgstr "trong đối số tới bộ nguyên phân !"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr "không có toán tử tiền gia cho loại"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr "không có toán tử hậu gia cho loại"
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr "không có toán tử giảm gia cho loại"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr "không có toán tử hậu giảm cho loại"
 
@@ -22270,7 +22270,7 @@ msgstr "Đặc tính cũ:"
 msgid "Deleted feature:"
 msgstr "Đặc tính đã bị xóa bỏ:"
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr "sự gán mảng"
 
@@ -22469,11 +22469,11 @@ msgstr "IF (nếu) loại khối"
 msgid "implied END DO"
 msgstr "ngụ ý END DO (kết thúc làm)"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "sự gán"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "sự gán hàm trỏ"
 
@@ -22635,47 +22635,47 @@ msgstr "Toán hạng của toán tử người dùng %%<%s%%> tại %%L là %s"
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "Các toán hạng của toán tử người dùng %%<%s%%> tại %%L là %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr "Biến vòng lặp"
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 msgid "iterator variable"
 msgstr "biến iterator"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr "Biểu thức bắt đầu trong vòng lặp DO (làm)"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr "Biểu thức kết thúc trong vòng lặp DO (làm)"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr "Biểu thức bước trong vòng lặp DO (làm)"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 msgid "DEALLOCATE object"
 msgstr "đối tượng DEALLOCATE"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 msgid "ALLOCATE object"
 msgstr "đối tượng ALLOCATE"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 msgid "STAT variable"
 msgstr "biến STAT"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 msgid "ERRMSG variable"
 msgstr "Biến ERRMSG"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 msgid "item in READ"
 msgstr "mục tin trong READ"
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 msgid "ACQUIRED_LOCK variable"
 msgstr "biến ACQUIRED_LOCK"
 
@@ -22684,11 +22684,11 @@ msgstr "biến ACQUIRED_LOCK"
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "Bộ dựng mảng chứa các chiều dài KÝ_TỰ khác nhau (%ld/%ld)"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr ""
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -22703,12 +22703,12 @@ msgstr "Chiều dài chuỗi thật không tương ứng với điều khai báo
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "Chiều dài chuỗi thật vẫn nhỏ hơn điều khai báo cho đối số giả “%s” (%ld/%ld)"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr ""
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr "Gán vô hướng cho mảng chưa cấp phát"
 
@@ -22717,83 +22717,83 @@ msgstr "Gán vô hướng cho mảng chưa cấp phát"
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "đối số “a%d” và “a%d” cho “%s” thực chất"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "đối số “a%d” và “a%d” cho “%s” thực chất"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "Tham số NCOPIES của REPEAT (lặp lại) hạn chế là âm (giá trị của nó là %ld)"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "Điều thực chất REPEAT (lặp lại) có đối số NCOPIES (số các bản sao) quá lớn"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -22815,15 +22815,15 @@ msgstr "Nhãn đã gán không phải là một nhãn đích"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr "Số ảnh không hợp lệ %d trong SYNC IMAGES"
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr "Biến vòng lặp bị sửa đổi"
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr "Giá trị bước DO (làm) là số không"
 
@@ -22902,7 +22902,7 @@ msgid "expected boolean type"
 msgstr "cần kiểu boolean"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr "Mong đợi một số nguyên"
@@ -22967,7 +22967,7 @@ msgstr "không đủ đối số"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "quá nhiều đối số"
@@ -23629,7 +23629,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "-mrelax chỉ hỗ trợ cho RTP PIC"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr ""
@@ -24093,8 +24093,8 @@ msgstr "thuộc tính %s của %qs xung đột với thuộc tính %s tại %L"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, gcc-internal-format
 msgid "previous declaration here"
 msgstr "khai báo trước ở đây"
@@ -24111,7 +24111,7 @@ msgstr ""
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr ""
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr ""
@@ -24122,7 +24122,7 @@ msgstr ""
 msgid "expected %i or more, found %i"
 msgstr "cần %<(%> hoặc xuống dòng"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expected %<,%>"
 msgid "expected %i, found %i"
@@ -24190,12 +24190,12 @@ msgstr ""
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -24204,7 +24204,7 @@ msgstr ""
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -24226,8 +24226,8 @@ msgstr "thuộc tính %qE bị lờ đi"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "khai báo trước đây của %qD"
@@ -24340,7 +24340,7 @@ msgstr "không thể đọc hồ sơ hàm từ %s."
 msgid "offset %qwi outside bounds of constant string"
 msgstr ""
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared here"
 msgid "%qE declared here"
@@ -24453,7 +24453,7 @@ msgstr "thiếu đối số đối cho %qs"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to %<__builtin_frame_address%>"
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
@@ -24477,42 +24477,42 @@ msgstr "%<__builtin_longjmp%> đối số thứ hai phải là 1"
 msgid "target format does not support infinity"
 msgstr "định dạng đích không hỗ trợ vô cực"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, gcc-internal-format
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr ""
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "sai số lượng đối số cho hàm %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "%<__builtin_next_arg%> được gọi mà không có đối số"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "sai số lượng đối số cho hàm %<__builtin_next_arg%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "đối số thứ hai của %<va_start%> không là đối số có tên cuối"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr ""
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "đối số %d của %qE phải là một địa chỉ"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 #| msgid "argument %qd is not a constant"
 msgid "last argument of %qD is not integer constant between 0 and 3"
@@ -25584,12 +25584,12 @@ msgstr ""
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F được dùng mà chưa từng được định nghĩa"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr ""
@@ -26169,7 +26169,7 @@ msgstr ""
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr ""
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, fuzzy, gcc-internal-format
 #| msgid "open %s failed: %s"
 msgid "%qs failed"
@@ -26200,17 +26200,17 @@ msgstr ""
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr "hàm %qD được khai báo lại là không chung dòng (inline) thuộc "
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "hàm %qD được khai báo lại là không chung dòng (inline) thuộc "
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr ""
@@ -26247,7 +26247,7 @@ msgstr ""
 msgid "comparison is always %d due to width of bit-field"
 msgstr ""
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr ""
@@ -26425,7 +26425,7 @@ msgstr "gặp lỗi khi lấy thời gian tiến trình: %m"
 msgid "%s signal terminated program %s"
 msgstr "Sử dụng tên thanh ghi xen kẽ."
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized command line option %qs"
 msgid "unrecognized command-line option %qs"
@@ -26706,7 +26706,7 @@ msgstr "đặc tả đa thư viện %qs không hợp lệ"
 msgid "multilib exclusions %qs is invalid"
 msgstr "sự loại từ đa thư viện %qs không hợp lệ"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "sự lựa chọn đa thư viện %qs %qs không hợp lệ"
@@ -27029,23 +27029,23 @@ msgstr ""
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr ""
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ISO C++ does not support variable-length array types"
 msgid "%s not supported for variable length aggregates"
 msgstr "ISO C++ không hỗ trợ các kiểu mảng có độ dài không cố định"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SPE not supported in this target"
 msgid "%s not supported on this target"
@@ -27087,16 +27087,16 @@ msgid "function returns address of local variable"
 msgstr "hàm trả về địa chỉ của biến cục bộ"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -27108,356 +27108,356 @@ msgstr "được khai báo ở đây"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, fuzzy, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr "Đối số âm N tại %L"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, fuzzy, gcc-internal-format
 #| msgid "  declared here"
 msgid "referenced argument declared here"
 msgstr "  đã được khai báo ở đây"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "Đối số âm N tại %L"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 msgid "null destination pointer"
 msgstr "con trỏ rỗng"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 msgid "null format string"
 msgstr "%s trong chuỗi định dạng tại %L"
@@ -28210,12 +28210,12 @@ msgstr "chế độ con trỏ %qs không hợp lệ"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD được khai báo ở đây"
@@ -28989,7 +28989,7 @@ msgstr "thẻ bài %u có x-location == %u"
 msgid "token %u has %<y-location == %u%>"
 msgstr "thẻ bài %u có y-location == %u"
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "dùng %<auto%> không hợp lệ"
@@ -29332,17 +29332,17 @@ msgstr "%+D đã khai báo weakref sau khi được dùng"
 msgid "mismatching definition"
 msgstr "thiếu định nghĩa"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr ""
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr ""
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr ""
@@ -30450,76 +30450,76 @@ msgstr "lỗi ghi vào %s: %m"
 msgid "error closing optimization records %qs"
 msgstr "(gần chỗ khởi tạo cho %qs)"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "%s không được hỗ trợ bởi cấu hình này"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "thiếu đối số đối cho %qs"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr ""
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr ""
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 #| msgid "-malign-functions=%d is not between 0 and %d"
 msgid "argument to %qs is not between %d and %d"
 msgstr "-malign-functions=%d không nằm giữa 0 và %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to %qD"
 msgid "invalid argument in option %qs"
 msgstr "đối số không hợp lệ cho %qD"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr ""
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "không nhận ra đối số tới tùy chọn %qs"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "đối số hợp lệ cho cho %qs là: %s"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "đối số hợp lệ cho cho %qs là: %s"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "switch %qs không còn tiếp tục được hỗ trợ nữa"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qs is too large (max. %d)"
 msgid "argument to %qs is bigger than %d"
 msgstr "đối số cho %qs quá lớn (tối đa là %d)"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, fuzzy, gcc-internal-format
 #| msgid "malformed COLLECT_GCC_OPTIONS"
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
@@ -30599,8 +30599,8 @@ msgstr ""
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "%qs không tương thích với %qs"
@@ -31369,7 +31369,7 @@ msgstr ""
 msgid "register of %qD used for multiple global register variables"
 msgstr ""
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "xung đột với %qD"
@@ -31830,45 +31830,45 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "%<__int%d%> không được hỗ trợ cho đích này"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int%d%> is not supported on this target"
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "%<__int%d%> không được hỗ trợ cho đích này"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr ""
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr ""
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr ""
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr ""
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int%d%> is not supported on this target"
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "%<__int%d%> không được hỗ trợ cho đích này"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int%d%> is not supported on this target"
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "%<__int%d%> không được hỗ trợ cho đích này"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 #| msgid "-fdata-sections not supported for this target"
 msgid "%<#pragma GCC target%> is not supported for this machine"
@@ -33045,82 +33045,82 @@ msgstr "BB %i có cạnh sai"
 msgid "BB %i has incorrect fallthru edge"
 msgstr ""
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr ""
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr ""
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr ""
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr ""
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr ""
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr ""
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr ""
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr ""
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr ""
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr ""
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr ""
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr ""
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr ""
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "được gọi từ đây"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, gcc-internal-format
 msgid "called from this function"
 msgstr "được gọi từ hàm này"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr ""
@@ -33177,28 +33177,28 @@ msgstr "thuộc tính(đích(\"%s\")) là không hiểu"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "dùng %<auto%> không hợp lệ"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 #| msgid "In static member function %qs"
 msgid "in a call to non-static member function %qD"
 msgstr "Trong hàm bộ phận tĩnh %qs"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "không thể tắt hàm dựng sẵn %qs"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "hàm chung dòng %q+D được khai báo yếu"
@@ -33403,7 +33403,7 @@ msgstr "%qE chưa được khởi tạo"
 msgid "%qs may be used uninitialized"
 msgstr "mảng được dùng như là bộ khởi tạo"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD đã được khai báo ở đây"
@@ -33638,7 +33638,7 @@ msgstr ""
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr ""
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -33653,131 +33653,131 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr ""
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "kiểu trả về hàm không thể là hàm"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "kiểm tra cây: %s, có %s trong %s, tại %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "tree check: cần không gì của %s, có %s trong %s, tại %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "tree check: cần lớp %qs, có %qs (%s) trong %s, tại %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "tree check: cần omp_clause %s, có %s trong %s, tại %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "tree check: cần không gì của %s, có %s trong %s, tại %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "tree check: cần không gì của %s, có %s trong %s, tại %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr ""
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "tree check: cần omp_clause %s, có %s trong %s, tại %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qD đã lạc hậu: %s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qD đã lạc hậu"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE đã lạc hậu: %s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%qE đã lạc hậu"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "kiểu đã lạc hậu: %s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "kiểu đã lạc hậu"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable: %s"
 msgstr "%qD không phải là một biến"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable"
 msgstr "%qD không phải là một biến"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable: %s"
 msgstr "%qD không phải là một biến"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable"
 msgstr "%qD không phải là một biến"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "open %s failed: %s"
 msgid "type is unavailable: %s"
 msgstr "mở %s gặp lỗi: %s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "type is unavailable"
@@ -33803,266 +33803,266 @@ msgstr "%qD không phải là một biến"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, gcc-internal-format
 msgid "first mismatch is field"
 msgstr ""
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "type is not compatible with its variant"
 msgstr "-mnop-mcount không tương thích với đích này"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qT is not a template type"
 msgid "type %s is not an opaque type"
 msgstr "%qT không phải là một kiểu mẫu"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "type %s is not with opaque mode"
 msgstr "kiểu %qT không là cơ sở trực tiếp của %qT"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 #| msgid "environment variable %qs not defined"
 msgid "main variant is not defined"
 msgstr "chưa định nghĩa biến môi trường%qs"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr ""
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr ""
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -34287,7 +34287,7 @@ msgstr ""
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr ""
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -34508,7 +34508,7 @@ msgstr "Thuộc tính %qE chỉ được áp dụng cho các biến"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "Thuộc tính %qE chỉ được áp dụng cho các biến"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr ""
@@ -34700,7 +34700,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "Thuộc tính %qE trên biến không hay thay đổi"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr ""
@@ -35041,7 +35041,7 @@ msgstr "%qD không tương thích với %qD"
 msgid "%qE argument is not a function"
 msgstr ""
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr ""
@@ -35572,7 +35572,7 @@ msgstr "ISO C++ không cho phép %<alignof%> áp dụng cho kiểu hàm"
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr ""
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr ""
@@ -35703,17 +35703,17 @@ msgstr ""
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr ""
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "quá ít đối số cho hàm %qE"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -35838,172 +35838,172 @@ msgstr ""
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr ""
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "kích cỡ mảng là quá lớn"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, gcc-internal-format
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, gcc-internal-format
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr ""
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 #| msgid "argument must be channel"
 msgid "both arguments must be compatible"
 msgstr "đối số phải là kênh"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr ""
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "đối số %d của %qE phải là một địa chỉ"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr ""
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr ""
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr ""
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "đối số %d của %qE phải là một địa chỉ"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "đối số %d của %qE phải là bội số của %d"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "đối số %d của %qE phải là một địa chỉ"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr ""
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "đối số %d của %qE phải là một địa chỉ"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr ""
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr ""
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "giá trị chỉ mục nằm ngoài phạm vi cho phép"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr ""
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr ""
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "size of array %qE is not a constant expression"
 msgstr "kích cỡ mảng không phải là biểu thức hằng số nguyên"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "size of array is not a constant expression"
 msgstr "kích cỡ mảng không phải là biểu thức hằng số nguyên"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qE is negative"
 msgid "size %qE of array %qE is negative"
 msgstr "kích cỡ mảng %qE bị âm"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array is negative"
 msgstr "kích cỡ mảng bị âm"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qE is negative"
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "kích cỡ mảng %qE bị âm"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -36643,7 +36643,7 @@ msgstr ""
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr ""
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int%d%> is not supported on this target"
 msgid "%<_BitInt(%d)%> is not supported on this target"
@@ -36726,7 +36726,7 @@ msgstr ""
 msgid "traditional C rejects string constant concatenation"
 msgstr ""
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -36782,7 +36782,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr ""
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr ""
@@ -36797,17 +36797,17 @@ msgstr "biến iterator"
 msgid "%qE is not initialized"
 msgstr "%qE chưa được khởi tạo"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr ""
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr ""
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "thiếu biểu thức gia số"
@@ -36817,7 +36817,7 @@ msgstr "thiếu biểu thức gia số"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "biểu thức gia không hợp lệ"
@@ -36903,7 +36903,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -36914,7 +36914,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qD không phải là đối số hàm"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr ""
@@ -37538,7 +37538,7 @@ msgid "wrong type argument to %s"
 msgstr "sai kiểu đối số cho %s"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -38488,35 +38488,35 @@ msgstr "so sánh giữa %qT và %qT"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -38750,120 +38750,120 @@ msgstr "-mregparm=%d không nằm giữa 0 và %d"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "-mcpu=%s xung đột với -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "-mcpu=%s xung đột với -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, fuzzy, gcc-internal-format
 #| msgid "%<%s%> is unknown"
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%<%s%> là không hiểu"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -39300,13 +39300,13 @@ msgstr "cần %qT nhưng đối số là kiểu %qT"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "cần %qT nhưng đối số là kiểu %qT"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma GCC optimize%> is not a string or number"
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC optimize%> không phải là một chuỗi hay số"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr ""
@@ -39897,7 +39897,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -39977,12 +39977,12 @@ msgid "unknown tuning option (%s)"
 msgstr "không hiểu tùy chọn chỉnh (%s)"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -39993,7 +39993,7 @@ msgid "specify a system register with a small string length"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "%qs is not a valid offset in %qs"
@@ -40188,9 +40188,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "thuộc tính(đích(\"%s\")) là không hiểu"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "thuộc tính %<target%> không là một chuỗi"
@@ -40247,19 +40247,19 @@ msgid "virtual function multiversioning not supported"
 msgstr "dwarf phiên bản %d không được hỗ trợ"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 #| msgid "the call requires ifunc, which is not supported by this target"
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "__builtin_thread_pointer không được hỗ trợ trên đích này"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -40272,8 +40272,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported simdlen %d"
 msgid "unsupported simdlen %wd"
@@ -40285,7 +40285,7 @@ msgstr "simdlen không được hỗ trợ %d"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "ISO C không hỗ trợ kiểu saturating"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %qD"
 msgid "unsupported return type %qT for simd"
@@ -40296,7 +40296,7 @@ msgstr "đối số không được hỗ trợ cho %D"
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %qD"
 msgid "unsupported argument type %qT for simd"
@@ -40394,8 +40394,8 @@ msgstr ""
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "giá trị sai %qs cho -mmemory-latency"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "fcode dựng sẵn sai"
@@ -40524,18 +40524,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "đối số của thuộc tính %qE không hợp lệ"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -40653,7 +40653,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "đối số của thuộc tính %qE không hợp lệ"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr ""
@@ -40676,24 +40676,24 @@ msgstr "Thuộc tính %qE chỉ được áp dụng cho SH2A"
 msgid "argument of %qE attribute ignored"
 msgstr "thuộc tính %qE bị lờ đi"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "Thuộc tính %qE chỉ được áp dụng cho các biến"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr ""
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, fuzzy, gcc-internal-format
 #| msgid "unknown linker output %qs"
 msgid "unknown %<asm%> flag output %qs"
 msgstr "không hiểu xuất bộ liên kết %qs"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of asm flag output"
 msgid "invalid type for %<asm%> flag output"
@@ -40950,7 +40950,7 @@ msgstr "CPU đích không hỗ trợ chỉ lệnh THUMB"
 msgid "target CPU does not support unaligned accesses"
 msgstr "CPU đích không hỗ trợ truy cập chưa cân chỉnh"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support THUMB instructions"
 msgid "This architecture does not support branch protection instructions"
@@ -41005,7 +41005,7 @@ msgstr ""
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "RTP PIC không tương thích với -msingle-pic-base"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in x32 mode"
 msgid "FDPIC mode is not supported in Thumb-1 mode"
@@ -41120,7 +41120,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -41160,43 +41160,43 @@ msgstr "thuộc tính %qE chỉ áp dụng cho các hàm"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "thuộc tính %qE chỉ áp dụng cho các hàm"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr "%s %wd nằm ngoài vùng %wd - %wd"
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr ""
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr ""
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr ""
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr ""
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, fuzzy, gcc-internal-format
 #| msgid "-fstack-check=specific for Thumb-1"
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr "-fstack-check=specific cho Thumb-1"
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 #| msgid "invalid fpu for attribute(target(\"%s\"))"
 msgid "invalid fpu for target attribute or pragma %qs"
@@ -41205,23 +41205,23 @@ msgstr "thuộc tính(đích(\"%s\")) là không hiểu"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr ""
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 #| msgid "unknown property attribute"
 msgid "unknown target attribute or pragma %qs"
 msgstr "không hiểu thuộc tính tính chất"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "%<__int%d%> không được hỗ trợ cho đích này"
@@ -41275,164 +41275,164 @@ msgstr ""
 msgid "unknown core architecture %qs specified with %qs"
 msgstr ""
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 #| msgid "-fpic is not supported"
 msgid "%<-fpic%> is not supported"
 msgstr "-fpic không được hỗ trợ"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 #| msgid "-fPIC is not supported"
 msgid "%<-fPIC%> is not supported"
 msgstr "-fPIC không được hỗ trợ"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 #| msgid "-fpie is not supported"
 msgid "%<-fpie%> is not supported"
 msgstr "-fpie không được hỗ trợ"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 #| msgid "-fPIE is not supported"
 msgid "%<-fPIE%> is not supported"
 msgstr "-fPIE không được hỗ trợ"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 #| msgid "-fwpa and -fltrans are mutually exclusive"
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "-fwpa và -fltrans loại trừ lẫn nhau"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "%qs hàm không có đối số"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "%qs hàm không trả về giá trị nào"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr ""
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr ""
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr ""
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr ""
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr ""
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr ""
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr ""
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "Thuộc tính %qE chỉ được áp dụng cho các biến"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "thuộc tính %qE chỉ áp dụng cho các hàm"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute address out of range"
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "Thuộc tính %qE nằm ngoài vùng địa chỉ"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "Thuộc tính %qE trên biến không hay thay đổi"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr ""
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr ""
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr ""
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr ""
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "Thuộc tính %qE chỉ được áp dụng cho các biến"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr ""
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr ""
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, gcc-internal-format
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr ""
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr ""
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr ""
@@ -41441,43 +41441,43 @@ msgstr ""
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 #| msgid "variable %D of type %<cb%> must be uninitialized"
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "biến %D của kiểu %<cb%> phải không được khởi tạo"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, fuzzy, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%qs không tương thích với %s %s"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr ""
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr ""
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr ""
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr ""
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -41630,7 +41630,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "__builtin_thread_pointer không được hỗ trợ trên đích này"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -42298,8 +42298,8 @@ msgstr "đối số cuối phải là giá trị trực tiếp 8-bít"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "mô hình mã %s không hỗ trợ chế độ PIC"
@@ -42368,270 +42368,270 @@ msgstr "không chỉ định tên lớp với %qs"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, gcc-internal-format
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, fuzzy, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%stune=x86-64%s đã lỗi thời, dùng %stune=k8%s hay %stune=generic%s để thay thế là thích hợp"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%stune=x86-64%s đã lỗi thời, dùng %stune=k8%s hay %stune=generic%s để thay thế là thích hợp"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte không hỗ trợ mã 32-bit"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 #| msgid "-msx is not supported in coff"
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-msx không hỗ trợ trong coff"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte không hỗ trợ mã 32-bit"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte không hỗ trợ mã 32-bit"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, fuzzy, gcc-internal-format
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte không hỗ trợ mã 32-bit"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 #| msgid "%<-Wabi=1%> is not supported, using =2"
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "%<-Wabi=1%> không được hỗ trợ, dùng =2"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, fuzzy, gcc-internal-format
 #| msgid "cannot specify -static with -fsanitize=address"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "không thể chỉ định -static với -fsanitize=địa_chỉ"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, fuzzy, gcc-internal-format
 #| msgid "-fsanitize=address is incompatible with -fsanitize=kernel-address"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "-fsanitize=address xung khắc với -fsanitize=kernel-address"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "-fsanitize=address xung khắc với -fsanitize=kernel-address"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr ""
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "mô hình mã %qs không được hỗ trợ trong chế độ x32"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 #| msgid "-masm=intel not supported in this configuration"
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "-masm=intel không được hỗ trợ trong cấu hình này"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "chế độ %i-bit chưa được biên dịch bên trong"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr ""
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "CPU bạn chọn không hỗ trợ chỉ lệnh x86-64"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<-march=%> switch"
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "sai giá trị (%qs) cho tùy chọn %<-march=%>"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%qs) for %<-march=%> switch"
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "sai giá trị (%qs) cho tùy chọn %<-march=%>"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "đối số hợp lệ cho cho %qs là: %s"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr "đối số hợp lệ cho cho %qs là: %s"
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "đối số hợp lệ cho cho %qs là: %s"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "đối số hợp lệ cho cho %qs là: %s"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "sai giá trị (%s) cho chuyển -mtune"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "sai giá trị (%s) cho chuyển -mtune"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "đối số hợp lệ cho cho %qs là: %s"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr "đối số hợp lệ cho cho %qs là: %s"
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "đối số hợp lệ cho cho %qs là: %s"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "đối số hợp lệ cho cho %qs là: %s"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm is ignored in 64-bit mode"
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "-mregparm bị bỏ qua trên chế độ 64-bit"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm is ignored for Intel MCU psABI"
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "-mregparm bị bỏ qua trên chế độ 64-bit"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm=%d is not between 0 and %d"
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "-mregparm=%d không nằm giữa 0 và %d"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "-mnop-mcount không tương thích với đích này"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "%<-mrtd%> bị bỏ qua trong chế độ 64bit"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mrtd%> is ignored in 64bit mode"
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "%<-mrtd%> bị bỏ qua trong chế độ 64bit"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -42639,304 +42639,304 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary is not supported for this target"
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "-mpreferred-stack-boundary không được hỗ trợ trên đích này"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and %d"
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d không nằm giữa %d và %d"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 #| msgid "-mincoming-stack-boundary=%d is not between %d and 12"
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mincoming-stack-boundary=%d không ở giữa %d và 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "-mnop-mcount không tương thích với đích này"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not implemented for -fPIC"
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "-mnop-mcount không được thực hiện cho -fPIC"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "%<-msseregparm%> được dùng mà không bật SSE"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, fuzzy, gcc-internal-format
 #| msgid "%<-msseregparm%> used without SSE enabled"
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "%<-msseregparm%> được dùng mà không bật SSE"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "Chỉ lệnh SSE đặt là tắt, sử dụng số học 387"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr ""
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr ""
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, fuzzy, gcc-internal-format
 #| msgid "-mfentry isn%'t supported for 32-bit in combination with -fpic"
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr "-mfentry không hỗ trợ cho 32-bit trong tổ hợp cùng với -fpic"
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 #| msgid "-mno-fentry isn%'t compatible with SEH"
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "-mno-fentry không tương thích với SEH"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 #| msgid "unknown option for -mrecip=%s"
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "không hiểu tùy chọn cho -mrecip=%s"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "-mnop-mcount không tương thích với đích này"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
 #| msgid "cdecl and thiscall attributes are not compatible"
 msgid "interrupt and naked attributes are not compatible"
 msgstr "các thuộc tính cdecl và thiscall không tương thích với nhau"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and thiscall attributes are not compatible"
 msgid "%qs and %qs attributes are not compatible"
 msgstr "các thuộc tính stdcall và thiscal không tương thích với nhau"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s và -mcall-%s là không tương thích"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s và -mcall-%s là không tương thích"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "thuộc tính regparam và thiscall không tương thích với nhau"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr ""
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "các thuộc tính fastcall và thiscall không tương thích với nhau"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "các thuộc tính stdcall và thiscal không tương thích với nhau"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "các thuộc tính cdecl và thiscall không tương thích với nhau"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr ""
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr ""
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "Thuộc tính %qE chỉ dùng được trên hệ thống 32-bit"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr ""
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr ""
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr ""
@@ -43130,47 +43130,47 @@ msgstr ""
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "sử dụng loại toán hạng không hợp lệ với mã toán hạng “Z”"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, gcc-internal-format
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr ""
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, gcc-internal-format
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr ""
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, fuzzy, gcc-internal-format
 #| msgid "unknown pointer size model %qs"
 msgid "unknown architecture specific memory model"
 msgstr "không hiểu mô hình kích thước con trỏ %qs"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr ""
@@ -43191,8 +43191,8 @@ msgstr ""
 msgid "malformed %<#pragma builtin%>"
 msgstr "%<#pragma align%> sai định dạng"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "đối số của thuộc tính %qE không hợp lệ"
@@ -43251,12 +43251,12 @@ msgstr "PRINT_OPERAND: không hiểu dấu chấm “%c”"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "PRINT_OPERAND con trỏ null"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "đối số %d của %qE phải nằm trong vùng %d…%d"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "failed to expand built-in function"
 msgstr "Chấp nhận các hàm dựng sẵn."
@@ -43387,19 +43387,19 @@ msgstr "%qD không tương thích với %qD"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%s không thể được dùng trong asm ở đây"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables"
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "Thuộc tính %qE chỉ được áp dụng cho các biến"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables"
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "Thuộc tính %qE chỉ được áp dụng cho các biến"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 #| msgid "Duplicate %s attribute at %L"
 msgid "multiple %qE attribute"
@@ -43512,12 +43512,12 @@ msgstr ""
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr ""
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr ""
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int%d%> is not supported on this target"
 msgid "%<-fexcess-precision=16%> is not supported on this target"
@@ -43565,7 +43565,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr "-mxl-multiply-high cần -mno-xl-soft-mul"
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "Thuộc tính %qE cần tham số là chuỗi"
@@ -43605,136 +43605,136 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr ""
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr ""
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr "thuộc tính %<interrupt%> cần bộ xử lý MIPS32r2 hay mới hơn"
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr ""
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, fuzzy, gcc-internal-format
 #| msgid "-fstack-check=specific for Thumb-1"
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr "-fstack-check=specific cho Thumb-1"
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs không hỗ trợ mã MIPS16"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr "MIPS16 PIC cho ABIs khác hơn o32 và o64"
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, fuzzy, gcc-internal-format
 #| msgid "MIPS16 -mxgot code"
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "MIPS16 -mxgot mã"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, fuzzy, gcc-internal-format
 #| msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr "MIPS16 PIC cho ABIs khác hơn o32 và o64"
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, fuzzy, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr "Tạo ra mã MIPS16."
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> cần %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "Hóa hợp không được hỗ trợ: %s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr ""
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%<-march=%s%> không tương thích với ABI đã chọn"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "%<-mgp64%> được dùng với bộ xử lý 32-bit"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "%<-mgp32%> dùng với 64-bit ABI"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "%<-mgp64%> được dùng với 32-bit ABI"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "đích này không hỗ trợ %qs"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%> và %<-mfp64%> chỉ có thể được tổ hợp cùng nhau khi sử dụng o32 ABI"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr ""
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr ""
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr ""
@@ -43744,117 +43744,117 @@ msgstr ""
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr ""
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, gcc-internal-format
 msgid "unsupported combination: %qs%s %s"
 msgstr ""
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, gcc-internal-format
 msgid "unsupported combination: %qs %s"
 msgstr ""
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> cần %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr ""
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr ""
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr ""
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "%<-mips3d%> cần %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs phải được sử dụng cùng với %qs"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr ""
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr ""
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr ""
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr ""
@@ -44772,60 +44772,60 @@ msgstr "%<#pragma GCC optimize%> không phải là một chuỗi hay số"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "có rác ở cuối %<#pragma reset_options%>"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qE attribute"
 msgid "malformed %<target()%> attribute"
 msgstr "đối số của thuộc tính %qE không hợp lệ"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 #| msgid "%<no-custom-%s%> does not accept arguments"
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "%<no-custom-%s%> không chấp nhận đối số"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, fuzzy, gcc-internal-format
 #| msgid "invalid fpu for attribute(target(\"%s\"))"
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "thuộc tính(đích(\"%s\")) là không hiểu"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<#pragma %s%>, ignored"
 msgid "malformed %<target(\"%s\")%> attribute"
@@ -44891,184 +44891,204 @@ msgstr "không thể chuyển đổi kiểu %qT thành %qT"
 msgid "capture by copy of RVV type %qT"
 msgstr ""
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "-mtoc-fusion cần -mpower8-fusion"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "-mtoc-fusion cần -mpower8-fusion"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "-mtoc-fusion cần -mpower8-fusion"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "-mtoc-fusion cần -mpower8-fusion"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "-mtoc-fusion cần -mpower8-fusion"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
 msgstr ""
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 #| msgid "unknown value %qs for -mtune"
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "không hiểu giá trị %qs dành cho -mtune"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr ""
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "Vector argument passed to unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "Đối số véc-tơ bị gửi cho hàm không nguyên mẫu"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 #| msgid "Use the SPE ABI extensions."
 msgid "%s %qT requires the V ISA extension"
 msgstr "Dùng lệnh mở rộng SPE ABI."
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not of type %qT"
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qE không là kiểu %qT"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "vectorlength must be an integer constant"
 msgid "%qs requires an integer constant"
 msgstr "chiều dài véc-tơ phải là một hằng nguyên"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support ARM mode"
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "CPU đích không hỗ trợ chế độ ARM"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs with -f%s"
 msgid "code model %qs with %qs"
 msgstr "mô hình mã %qs với -f%s"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, fuzzy, gcc-internal-format
 #| msgid "%E requires %<-fgnu-tm%>"
 msgid "ABI requires %<-march=rv%d%>"
 msgstr "%E cần %<-fgnu-tm%>"
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and %d"
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d không nằm giữa %d và %d"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not a valid class name"
 msgid "%qs is not a valid base register in %qs"
 msgstr "“%qs” không phải là một tên lớp đúng"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs không hợp lệ cho %qs"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 #| msgid "%qs function cannot have arguments"
 msgid "%qs function cannot have different interrupt type"
 msgstr "%qs hàm không có đối số"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -45344,32 +45364,32 @@ msgstr "%s chỉ chấp nhận một tham số"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "%s chỉ chấp nhận một tham số"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, gcc-internal-format
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "%qs is not supported in this compiler configuration"
@@ -45410,31 +45430,23 @@ msgstr ""
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr ""
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, fuzzy, gcc-internal-format
-#| msgid "Use the ELFv2 ABI."
-msgid "%qs requires the ELFv2 ABI"
-msgstr "Sử dụng ELFv2 ABI."
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "khung stack quá lớn"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr ""
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<register%>"
 msgid "%qs uses register r29"
 msgstr "%qE được dùng với %<register%>"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr ""
@@ -45573,113 +45585,123 @@ msgstr "“%qs” không phải là một tên lớp đúng"
 msgid "unknown option for %<%s=%s%>"
 msgstr "không hiểu tùy chọn cho -mrecip=%s"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated and has no effect"
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "%qs đã lỗi thời và không có tác động gì"
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 #| msgid "Use decimal floating point instructions."
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "Sử dụng câu lệnh dấu chấm động thập phân bằng phần cứng."
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, fuzzy, gcc-internal-format
 #| msgid "%<long long%> invalid for %qs"
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "%<long long%> không hợp lệ với %qs"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cpu \"%s\" for %s\"%s\"%s"
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "sai cpu \"%s\" cho %s\"%s\"%s"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 #| msgid "%s\"%s\"%s is not allowed"
 msgid "%s%qs%s is not allowed"
 msgstr "%s\"%s\"%s là không được phép"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, fuzzy, gcc-internal-format
 #| msgid "%s\"%s\"%s is invalid"
 msgid "%s%qs%s is invalid"
 msgstr "%s\"%s\"%s không hợp lệ"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr ""
@@ -45727,7 +45749,7 @@ msgstr ""
 msgid "builtin %qs can only be used on vector types"
 msgstr "%<inline%> chỉ có thể được chỉ định cho hàm"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr ""
@@ -45800,237 +45822,237 @@ msgstr "%qs đã lạc hậu"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr ""
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "đối số hằng nằm ngoài phạm vi cho %qs"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "đối số hằng nằm ngoài phạm vi cho %qs"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "đối số hằng nằm ngoài phạm vi cho %qs"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr ""
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 #| msgid "<unresolved overloaded function type>"
 msgid "unresolved overloaded builtin"
 msgstr "<chưa giải quyết loại hàm quá tải>"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "icode dựng sẵn sai"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to %qD"
 msgid "invalid argument %d for builtin %qF"
 msgstr "đối số không hợp lệ cho %qD"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr ""
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr ""
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr ""
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr ""
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr ""
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr ""
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, gcc-internal-format
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr ""
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr ""
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr ""
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Use decimal floating point instructions."
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "Sử dụng câu lệnh dấu chấm động thập phân bằng phần cứng."
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "Use decimal floating point instructions."
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "Sử dụng câu lệnh dấu chấm động thập phân bằng phần cứng."
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, fuzzy, gcc-internal-format
 #| msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "-mbackchain -mpacked-stack -mhard-float không được hỗ trợ trong tổ hợp"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr ""
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr ""
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, gcc-internal-format
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr ""
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mrtd%> is ignored in 64bit mode"
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "%<-mrtd%> bị bỏ qua trong chế độ 64bit"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr ""
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "đối số cho %qs quá lớn (tối đa là %d)"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 #| msgid "attribute %<target%> argument not a string"
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "thuộc tính %<target%> không là một chuỗi"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 #| msgid "%<__int%d%> is not supported by this target"
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "%<__int%d%> không được hỗ trợ cho đích này"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 #| msgid "invalid constant"
 msgid "invalid cc output constraint: %qs"
 msgstr "hằng không hợp lệ"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, gcc-internal-format
 msgid "multiple cc output constraints not supported"
 msgstr ""
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr ""
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for property"
 msgid "invalid type for cc output constraint"
@@ -46487,8 +46509,8 @@ msgstr ""
 msgid "attribute %qs applies to array types only"
 msgstr ""
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr ""
@@ -46564,7 +46586,7 @@ msgstr ""
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr ""
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr "định nghĩa lần đầu ở đây"
@@ -46806,7 +46828,7 @@ msgstr ""
 msgid "declaration of %qD shadows a parameter"
 msgstr "khai báo của %qD như là đối số"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr ""
@@ -46816,7 +46838,7 @@ msgstr ""
 msgid "declaration of %qD shadows a previous local"
 msgstr ""
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr ""
@@ -46882,7 +46904,7 @@ msgstr ""
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr ""
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr ""
@@ -46917,7 +46939,7 @@ msgstr ""
 msgid "duplicate label declaration %qE"
 msgstr ""
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "trùng nhãn %qD"
@@ -46952,7 +46974,7 @@ msgstr ""
 msgid "%qE defined as wrong kind of tag"
 msgstr ""
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr "Thuộc tính %qE cần kiểu trả về là void"
@@ -47099,12 +47121,12 @@ msgstr ""
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr ""
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%s%> not allowed to be specified in this context"
@@ -47115,7 +47137,7 @@ msgstr "%<this%> có lẽ không nên được dùng trong ngữ cảnh này"
 msgid "%q+D is usually a function"
 msgstr "%q+D thường là một hàm"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "chưa có khai báo trước đây cho %qD"
@@ -47193,7 +47215,7 @@ msgstr ""
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "bộ khởi tạo cho %q#D không hợp lệ"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -47379,7 +47401,7 @@ msgstr ""
 msgid "storage class specified for unnamed parameter"
 msgstr ""
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr ""
@@ -47442,7 +47464,7 @@ msgstr "sự khai báo của %qE như là mảng của các hàm"
 msgid "declaration of type name as array of functions"
 msgstr ""
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr ""
@@ -47548,7 +47570,7 @@ msgstr ""
 msgid "function definition has qualified void return type"
 msgstr "định nghĩa hàm có kiểu trả về là void"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr ""
@@ -47675,7 +47697,7 @@ msgstr ""
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr ""
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr ""
@@ -47781,7 +47803,7 @@ msgstr ""
 msgid "object with variably modified type must have no linkage"
 msgstr ""
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr ""
@@ -47871,18 +47893,18 @@ msgstr "định nghĩa lại bị lồng của %<union %E%>"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "định nghĩa lại bị lồng của %<struct %E%>"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr ""
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used in its own initializer"
 msgid "%qT defined in underspecified object initializer"
 msgstr "%qD được dùng trong bộ khởi tạo của chính nó"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr ""
@@ -47912,355 +47934,355 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "union không có thành viên nào"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "union không có thành viên nào"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "cấu có không thành viên đã đặt tên"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "struct không có thành viên nào"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr ""
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr ""
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "cấu có không thành viên đã đặt tên"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 #| msgid "initialization of flexible array member in a nested context"
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "bộ phận mảng dẻo bị khởi tạo trong một ngữ cảnh lồng nhau"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "kiểu %qT quá lớn"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized scalar storage order value %qs"
 msgid "type punning toggles scalar storage order"
 msgstr "không nhận ra giá trị thứ tự kho vô hướng %qs"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr ""
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of typedef %q+D with variably modified type"
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "định nghĩa lại của typedef %q+D với kiểu sửa biến đổi"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "định nghĩa lại của %<struct %E%>"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr ""
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "khai báo lại của %<enum %E%>"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, gcc-internal-format
 msgid "specified mode too small for enumerated values"
 msgstr ""
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr ""
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, gcc-internal-format
 msgid "enumeration values exceed range of %qs"
 msgstr ""
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "in the definition of %q#T"
 msgid "conflicting redefinition of enum %qT"
 msgstr "trong định nghĩa của %q#T"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr ""
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr ""
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "tràn giá trị liệt kê"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "enumerator value outside the range of %qs"
 msgstr "đối số hằng nằm ngoài phạm vi cho %qs"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, gcc-internal-format
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr ""
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D declared weak"
 msgid "inline function %qD given attribute %qs"
 msgstr "hàm chung dòng %q+D được khai báo yếu"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "kiểu trả về là một kiểu không hoàn toàn"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "trả về kiểu mặc định cho %<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr ""
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "chưa có khai báo nguyên mẫu trước đây cho %qD"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr ""
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr ""
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr ""
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr ""
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%qD thường không phải là hàm non-static"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr ""
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr ""
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr ""
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr "định nghĩa hàm theo cách cũ"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr ""
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD đã được định nghĩa là không có tham số"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr ""
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "đối số %qD được khai báo với kiểu void"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "kiểu của %qD mặc định đến %<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "đối số %qD có kiểu chưa đầy đủ"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr ""
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr ""
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "số lượng đối số không giống với nó khi khai báo mẫu hàm"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "khai báo mẫu trước"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr ""
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr ""
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr ""
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "%<return%> (trả lại) không có giá trị, trong hàm trả lại non-void (không rỗng)"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "đối số %qD đặt nhưng chưa được dùng"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr ""
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr ""
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<long long%>"
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 không hỗ trợ %<long long%>"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> được khai báo trong khai báo khởi tạo vòng lặp %<for%>"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> được khai báo trong khai báo khởi tạo vòng lặp %<for%>"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> được khai báo trong khai báo khởi tạo vòng lặp %<for%>"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr ""
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr ""
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qE declaration specifier"
 msgstr "cần các định danh khai báo"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr ""
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<auto%>"
 msgid "%qs used with %<auto%>"
@@ -48268,259 +48290,259 @@ msgstr "%qE được dùng với %<auto%>"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<register%>"
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%qE được dùng với %<register%>"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr ""
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> là quá dài đối với GCC"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 không hỗ trợ %<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 không hỗ trợ kiểu complex"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO C không hỗ trợ kiểu saturating"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "lặp lại %qE"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C không hỗ trợ kiểu %<__int%d%>"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "%<__int%d%> không được hỗ trợ cho đích này"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 không hỗ trợ kiểu lô-gíc"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C không hỗ trợ kiểu %<__int%d%>"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "%<__int%d%> không được hỗ trợ cho đích này"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support decimal floating point"
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C không hỗ trợ kiểu dấu chấm động hệ thập phân"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "kiểu dấu chấm cố định không được hỗ trợ trên đích này"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C không hỗ trợ kiểu dấu chấm cố định"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "lệnh không phải biểu thức hằng"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "kích cỡ mảng không phải là biểu thức hằng số nguyên"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr ""
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr ""
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE không ở đầu của khai báo"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "%qE được dùng với %<auto%>"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "%qE được dùng với %<register%>"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "%qE được dùng với %<typedef%>"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<register%>"
 msgid "%qE used with %<constexpr%>"
 msgstr "%qE được dùng với %<register%>"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "ISO C99 không hỗ trợ %qE"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 không hỗ trợ %qE"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> trước %<extern%>"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> trước %<static%>"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<auto%>"
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%qE được dùng với %<auto%>"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<register%>"
 msgid "%qE used with %<extern%>"
 msgstr "%qE được dùng với %<register%>"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 #| msgid "%qs used with %qE"
 msgid "%qE used with %qs"
 msgstr "%qs được dùng với %qE"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr "trùng %<_Thread_local%> hay %<__thread%>"
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%qs được dùng với %qE"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%<constexpr%> used with %qE"
 msgstr "%<__thread%> được dùng với %qE"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<_Sat%> được dùng mà không có %<_Fract%> or %<_Accum%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr ""
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support %<__int%d%> types"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C không hỗ trợ kiểu %<__int%d%>"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr ""
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 #| msgid "last argument must be an immediate"
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "đối số cuối phải là giá trị trực tiếp"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++ không hỗ trợ %<__int%d%> cho %qs"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, gcc-internal-format
 msgid "left shift of negative value"
 msgstr "dịch trái của một giá trị âm"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "số lượng dịch trái là số âm"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "số lượng dịch trái là số âm"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "số lượng dịch trái  >= độ rộng của kiểu"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "số lượng dịch phải  >= độ rộng của kiểu"
@@ -48551,7 +48573,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr "không khớp cho"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr "cần kết thúc dòng"
@@ -48561,8 +48583,8 @@ msgstr "cần kết thúc dòng"
 msgid "ISO C forbids an empty translation unit"
 msgstr ""
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -48603,9 +48625,9 @@ msgstr "không hiểu kiểu tên %qE; ý bạn là %qs?"
 msgid "unknown type name %qE"
 msgstr "không hiểu tên kiểu %qE"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "cần các định danh khai báo"
@@ -48638,7 +48660,7 @@ msgstr ""
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "cần %<;%>, định danh hoặc %<(%>"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr ""
@@ -48658,7 +48680,7 @@ msgstr "cần thuộc tính"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr ""
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, gcc-internal-format
 msgid "%<assume%> attribute not followed by %<;%>"
 msgstr ""
@@ -48753,7 +48775,7 @@ msgstr ""
 msgid "static assertion failed: %E"
 msgstr ""
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, gcc-internal-format
 msgid "static assertion failed"
 msgstr "thẩm tra tĩnh gặp lỗi"
@@ -48827,10 +48849,10 @@ msgstr ""
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "cần định danh"
@@ -48988,7 +49010,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -48998,8 +49020,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -49176,12 +49198,12 @@ msgstr ""
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, fuzzy, gcc-internal-format
 #| msgid "type of field declared here"
 msgid "first %<sizeof%> operand was declared here"
@@ -49338,7 +49360,7 @@ msgstr "ISO C90 không hỗ trợ từ hạn định %<_Atomic%>"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "cần biểu thức"
@@ -49669,13 +49691,13 @@ msgstr ""
 msgid "no type or storage class may be specified here,"
 msgstr ""
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, fuzzy, gcc-internal-format
 #| msgid "unknown property attribute"
 msgid "empty property attribute list"
 msgstr "không hiểu thuộc tính tính chất"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing property attribute"
@@ -49687,61 +49709,61 @@ msgstr "Thiếu thuộc tính Code (mã)"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "không hiểu thuộc tính tính chất"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "không hiểu thuộc tính tính chất"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<for%> after %qs"
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "cần %<for%> sau %qs"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected %qE selector name"
 msgstr "cần selection-statement"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr ""
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma omp flush%> chỉ có thể sử dụng trong các biểu thức phức hợp"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<#pragma acc routine%> phải được áp dụng trước %s"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp section%> chỉ có thể sử dụng trong cấu trúc %<#pragma omp sections%>"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<#pragma omp section%> chỉ có thể sử dụng trong cấu trúc %<#pragma omp sections%>"
@@ -49751,25 +49773,25 @@ msgstr "%<#pragma omp section%> chỉ có thể sử dụng trong cấu trúc %<
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma acc routine%> phải được áp dụng trước %s"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "cần câu lệnh for, while hoặc do"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%> phải là đầu tiên"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "quá nhiều mệnh đề %qs"
@@ -49785,66 +49807,66 @@ msgstr "chỉ số phải là số nguyên"
 msgid "expected %<)%> or %<,%>"
 msgstr "cần %<,%> hoặc %<)%>"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD không phải là một biến"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD không phải là một biến trỏ"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<none%> or %<present%>"
 msgstr "cần %<none%> hoặc %<shared%>"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "cần %<=%>, %<,%>, %<;%>, %<asm%> hay %<__attribute__%>"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 #| msgid "expected goto expression"
 msgid "expected constant logical expression"
 msgstr "cần điều lệnh goto"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr ""
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "cần %<data%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "quá nhiều mệnh đề %<if%>"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr ""
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -49867,23 +49889,23 @@ msgstr "%<num_threads%> giá trị phải dương"
 msgid "%<num_tasks%> value must be positive"
 msgstr "%<num_tasks%> giá trị phải dương"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "%<grainsize%> giá trị phải dương"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "%<priority%> giá trị phải dương"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "cần biểu thức nguyên"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> or %<max%>"
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
@@ -49895,100 +49917,100 @@ msgstr "cần %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%>
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "cần %<class%>, %<typename%>, hoặc %<template%>"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses"
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "quá nhiều mệnh đề %<if%>"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr ""
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "biểu thức %qs phải là số nguyên"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "%qs giá trị phải dương"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "quá nhiều đối số %<static%>"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, gcc-internal-format
 msgid "unexpected argument"
 msgstr "gặp tham số thừa"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 #| msgid "ordered argument needs positive constant integer expression"
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "cần biểu thức nguyên"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<if%> clauses"
 msgid "too many %<self%> clauses"
 msgstr "quá nhiều mệnh đề %<if%>"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "cần %<none%> hoặc %<shared%>"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%>"
 msgid "expected %<concurrent%>"
 msgstr "cần %<none%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "cần %<class%>, %<typename%>, hoặc %<template%>"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr "cần biểu thức nguyên"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "cần %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> hoặc định danh"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr ""
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr ""
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "%qs giá trị phải dương"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "kiểu lịch biểu không hợp lệ"
@@ -49998,22 +50020,22 @@ msgstr "kiểu lịch biểu không hợp lệ"
 msgid "%<num_teams%> value must be positive"
 msgstr "%<num_teams%> giá trị phải dương"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "%<thread_limit%> giá trị phải dương"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %<allocator%> or %<align%>"
@@ -50025,24 +50047,24 @@ msgstr "cần %<,%> hoặc %<)%>"
 msgid "duplicate %qs modifier"
 msgstr "trùng %qs"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 #| msgid "ordered argument needs positive constant integer expression"
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "cần biểu thức nguyên"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 #| msgid "multiple ref-qualifiers"
 msgid "multiple linear modifiers"
 msgstr "đa ref-qualifiers"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, fuzzy, gcc-internal-format
 #| msgid "multiple ref-qualifiers"
 msgid "multiple %<step%> modifiers"
@@ -50063,68 +50085,68 @@ msgstr ""
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr ""
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is incompatible with %qs"
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "%qs không tương thích với %qs"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "kiểu phụ thuộc không hợp lệ"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 #| msgid "invalid map kind"
 msgid "invalid doacross kind"
 msgstr "kiểu ánh xạ không hợp lệ"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<static%> arguments"
 msgid "too many %<always%> modifiers"
 msgstr "quá nhiều đối số %<static%>"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<static%> arguments"
 msgid "too many %<close%> modifiers"
 msgstr "quá nhiều đối số %<static%>"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many %<static%> arguments"
 msgid "too many %<present%> modifiers"
 msgstr "quá nhiều đối số %<static%>"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, gcc-internal-format
 msgid "invalid map kind"
 msgstr "kiểu ánh xạ không hợp lệ"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%> or %<typename%>"
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "cần %<class%>, hoặc %<typename%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr ""
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "kiểu dist_schedule không hợp lệ"
@@ -50140,89 +50162,89 @@ msgstr "kiểu proc_bind không hợp lệ"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "cần %<;%>, %<,%> hoặc %<)%>"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr "cần kết thúc của capture-list"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs không hợp lệ cho %qs"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%qs phải là mệnh đề đầu tiên của %qs"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected an OpenMP clause"
 msgstr "cần mệnh đề %<#pragma omp%>"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr ""
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr ""
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "cần %<class%>, hoặc %<typename%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr "%<#pragma omp cancel%> chỉ có thể sử dụng trong các biểu thức phức hợp"
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -50237,7 +50259,7 @@ msgstr "%qE chưa được khai báo"
 msgid "expected function name"
 msgstr "cần tên hàm"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a function"
 msgstr "%qD không phải là hàm thành viên mẫu"
@@ -50247,24 +50269,24 @@ msgstr "%qD không phải là hàm thành viên mẫu"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma acc routine%> must be applied before %s"
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "%<#pragma acc routine%> phải được áp dụng trước %s"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma acc routine%> must be applied before %s"
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<#pragma acc routine%> phải được áp dụng trước %s"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr "%<#pragma acc update%> phải chứa ít nhất là một mệnh đề %<device%> hay %<host%> hay %<self%>"
@@ -50291,7 +50313,7 @@ msgstr ""
 msgid "modified here"
 msgstr "union được định nghĩa ở đây"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 #| msgid "ordered argument needs positive constant integer expression"
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
@@ -50332,120 +50354,120 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "cần %<class%>, %<typename%>, hoặc %<template%>"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "cần %<class%>, %<typename%>, hoặc %<template%>"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many atomic clauses"
 msgstr "quá nhiều mệnh đề %qs"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many memory order clauses"
 msgstr "quá nhiều mệnh đề %qs"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is incompatible with %s %s"
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "%qs không tương thích với %s %s"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in %qs clause"
 msgid "%qs clause requires %qs clause"
 msgstr "%qD không phải một biến trong mệnh đề %qs"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%> after union definition"
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "cần %<;%> sau định nghĩa kiểu hỗn hợp"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 #| msgid "invalid form of %<#pragma omp atomic%>"
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "sai dạng thức của %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "unexpected %<else%>"
 msgstr "cần %<delete%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 #| msgid "invalid form of %<#pragma omp atomic%>"
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "sai dạng thức của %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "sai dạng thức của %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "thao tác không hợp lệ cho %<#pragma omp atomic%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr "%<#pragma omp atomic capture%> sử dụng hai biểu thức khác nhau cho bộ nhớ"
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "biểu thức %qE không phải là biểu thức hằng"
@@ -50455,30 +50477,30 @@ msgstr "biểu thức %qE không phải là biểu thức hằng"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "biểu thức %qE không phải là biểu thức hằng"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "cần %<=%>, %<,%>, %<;%>, %<asm%> hay %<__attribute__%>"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "cần %<;%>, %<,%> hoặc %<)%>"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "cần %<=%>, %<,%>, %<;%>, %<asm%> hay %<__attribute__%>"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -50488,178 +50510,178 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr "cần %<(%> hoặc xuống dòng"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp cancel%> may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp cancel%> chỉ có thể sử dụng trong các biểu thức phức hợp"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<}%> before %<else%>"
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "cần %<}%> trước %<else%>"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected %<#pragma omp scan%>"
 msgstr "cần mệnh đề %<#pragma omp%>"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp cancel%> may only be used in compound statements"
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp cancel%> chỉ có thể sử dụng trong các biểu thức phức hợp"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "cần khai báo nhắc lại hay sự khởi tạo"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 #| msgid "not enough arguments"
 msgid "not enough nested loops"
 msgstr "không đủ đối số"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "cần câu lệnh for"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr ""
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp ordered%> with %<depend> clause may only be used in compound statements"
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp taskwait%> chỉ có thể sử dụng trong các biểu thức phức hợp"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "cần %<for%> sau %qs"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "cần %<point%>"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr "%<#pragma acc update%> phải chứa ít nhất là một mệnh đề %<device%> hay %<host%> hay %<self%>"
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr ""
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma align%> must appear before the declaration of %D, ignoring"
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma align%> phải xuất hiện trước khai báo của %D, đang lờ đi"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected trait selector name"
 msgstr "cần selection-statement"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr ""
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, fuzzy, gcc-internal-format
 #| msgid "%<no-custom-%s%> does not accept arguments"
 msgid "selector %qs does not accept any properties"
 msgstr "%<no-custom-%s%> không chấp nhận đối số"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 #| msgid "%<friend%> can only be specified inside a class"
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<friend%> chỉ có thể được chỉ định trong một lớp"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 #| msgid "ordered argument needs positive constant integer expression"
 msgid "%<score%> argument must be constant integer expression"
 msgstr "cần biểu thức nguyên"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 #| msgid "%<priority%> value must be non-negative"
 msgid "%<score%> argument must be non-negative"
 msgstr "%<priority%> giá trị phải dương"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected identifier or string literal"
 msgstr "cần chuỗi văn chương"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 #| msgid "ordered argument needs positive constant integer expression"
 msgid "property must be constant integer expression"
 msgstr "cần biểu thức nguyên"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr ""
@@ -50667,310 +50689,310 @@ msgstr ""
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 #| msgid "Clause not supported yet"
 msgid "%<requires%> selector is not supported yet"
 msgstr "Mệnh đề vẫn chưa được hỗ trợ"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected context selector set name"
 msgstr "cần selection-statement"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<catch%>"
 msgid "expected %<match%>"
 msgstr "cần %<catch%>"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %L is not a function"
 msgid "variant %qD is not a function"
 msgstr "“%qs” tại %L không phải là một hàm"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD has incomplete type"
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "đối số %qD có kiểu chưa đầy đủ"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "cần %<target%>"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%> or %<typename%>"
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "cần %<class%>, hoặc %<typename%>"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr ""
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute with %s attribute at %L"
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "thuộc tính %s với thuộc tính %s tại %L"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%> or %<typename%>"
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "cần %<class%>, hoặc %<typename%>"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr ""
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, fuzzy, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "%<#pragma omp declare reduction%> trước"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "%<#pragma omp declare reduction%> trước"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "cần %<omp_priv%> hoặc tên-hàm"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "cần tên-hàm %<(%>"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "cần %<=%>, %<,%>, %<;%>, %<asm%> hay %<__attribute__%>"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "cần %<=%>, %<,%>, %<;%>, %<asm%> hay %<__attribute__%>"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, fuzzy, gcc-internal-format
 #| msgid "%<_Atomic%> %qE in %<reduction%> clause"
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "%<_Atomic%> %qE trong mệnh đề %<reduction%>"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 #| msgid "%<_Atomic%> %qE in %<reduction%> clause"
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "%<_Atomic%> %qE trong mệnh đề %<reduction%>"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "cần %<;%>, %<,%> hoặc %<)%>"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %qs or %qs"
 msgstr "cần %<,%> hoặc %<)%>"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp ordered%> with %<depend%> clause may only be used in compound statements"
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp ordered%> với mệnh đề %<depend%> chỉ có thể sử dụng trong các biểu thức phức hợp"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected at least one assumption clause"
 msgstr "cần mệnh đề %<#pragma omp%>"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 #| msgid "expected function name"
 msgid "expected directive name"
 msgstr "cần tên hàm"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 #| msgid "unknown excess precision style %qs"
 msgid "unknown assumption clause %qs"
 msgstr "không hiểu kiểu chính xác bị vượt quá %qs"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 #| msgid "expected function name"
 msgid "expected assumption clause"
 msgstr "cần tên hàm"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr ""
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr ""
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr ""
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr ""
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr "%<__transaction_cancel%> nằm trong một %<__transaction_relaxed%>"
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, fuzzy, gcc-internal-format
 #| msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "vòng ngoài hơn %<__transaction_cancel%> không nằm trong vòng ngoài hơn %<__transaction_atomic%>"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr "%<__transaction_cancel%> không nằm trong %<__transaction_atomic%>"
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, fuzzy, gcc-internal-format
 msgid "no closing brace"
 msgstr "tác vụ bao quanh"
@@ -51111,7 +51133,7 @@ msgstr ""
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr ""
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "chỉ số mảng không phải là số nguyên"
@@ -51142,7 +51164,7 @@ msgstr "%qD được khai báo như là một tham chiếu nhưng lại chưa đ
 msgid "enum constant defined here"
 msgstr ""
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -51257,18 +51279,18 @@ msgstr ""
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "quá ít đối số cho hàm %qE"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr ""
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 #| msgid "Warn about use of multi-character character constants."
 msgid "comparison between pointer and zero character constant"
 msgstr "Cảnh báo về sử dụng hằng số ký tự đa ký tự."
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, fuzzy, gcc-internal-format
 #| msgid "did you mean to use logical not?"
 msgid "did you mean to dereference the pointer?"
@@ -51294,7 +51316,7 @@ msgstr "con trỏ đến hàm được dùng trong phép trừ"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr ""
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr ""
@@ -51590,7 +51612,7 @@ msgstr ""
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr ""
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr ""
@@ -51769,7 +51791,7 @@ msgstr ""
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr ""
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr ""
@@ -51976,12 +51998,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "đã khởi tạo một bộ phận mảng dẻo"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -51991,7 +52013,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr "mảng loại không thích hợp bị khởi tạo từ hằng số chuỗi"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "sai sử dụng mảng không phải lvalue"
@@ -52022,7 +52044,7 @@ msgstr "yếu tố khởi tạo không phải là một biểu tượng hằng s
 msgid "initializer element is not computable at load time"
 msgstr "yếu tố khởi tạo không tính được vào lúc nạp"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr ""
@@ -52037,7 +52059,7 @@ msgstr "gặp nhóm ngoặc móc thừa tại kết thúc của bộ khởi tạ
 msgid "braces around scalar initializer"
 msgstr "ngoặc chung quanh bộ khởi tạo vô hướng"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "bộ phận mảng dẻo bị khởi tạo trong một ngữ cảnh lồng nhau"
@@ -52128,7 +52150,7 @@ msgstr "gặp yếu tố thừa trong bộ khởi tạo cấu trúc"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "một bộ phận mảng dẻo bị khởi tạo một cách không phải tĩnh"
@@ -52169,7 +52191,7 @@ msgstr "ISO C cấm %<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "không thể chuyển đổi thành kiểu con trỏ"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "hàm đã khai báo %<noreturn%> có một câu lệnh %<return%>"
@@ -52224,7 +52246,7 @@ msgstr ""
 msgid "break statement not within loop or switch"
 msgstr ""
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -52272,27 +52294,27 @@ msgstr "trình biên dịch sẽ coi rằng địa chỉ của %qD sẽ không b
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "trình biên dịch sẽ coi rằng địa chỉ của %qD sẽ không bao giờ là NULL"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr ""
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr ""
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr ""
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, gcc-internal-format
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
 msgstr ""
@@ -52364,30 +52386,30 @@ msgstr ""
 msgid "used vector type where scalar is required"
 msgstr ""
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma acc update%> phải chứa ít nhất là một mệnh đề %<device%> hay %<host%> hay %<self%>"
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma simd%> clause"
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "cần mệnh đề %<#pragma simd%>"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD không phải một biến trong mệnh đề %qs"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qE không phải một biến trong mệnh đề %qs"
@@ -52398,87 +52420,87 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "%<_Atomic%> %qD trong mệnh đề %qs"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD không phải một biến trong mệnh đề %qs"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr ""
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr ""
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected end of file in %qs"
 msgid "expected single pointer in %qs clause"
 msgstr "Gặp kết thúc tập tin bất thường tại %qs"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, fuzzy, gcc-internal-format
 #| msgid "%<vector%> length expression must be integral"
 msgid "for array function parameter length expression must be specified"
 msgstr "chiều dài %<vector%> phải là số nguyên"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qE không có con trỏ hay kiểu mảng"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, gcc-internal-format
 msgid "iterator %qD has neither integral nor pointer type"
 msgstr ""
@@ -52489,18 +52511,18 @@ msgstr ""
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "%<_Atomic%> áp dụng cho kiểu hạn định"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD has incomplete type"
 msgid "iterator %qD has const qualified type"
 msgstr "đối số %qD có kiểu chưa đầy đủ"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr ""
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -52510,35 +52532,35 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 #| msgid "invalid expression for output modifier '%c'"
 msgid "end expression refers to outer iterator %qD"
 msgstr "biểu thức không hợp lệ cho bộ sửa đầu ra “%c”"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, fuzzy, gcc-internal-format
 #| msgid "linear step expression must be integral"
 msgid "step expression refers to outer iterator %qD"
 msgstr "biểu thức bước thẳng phải là số nguyên"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 #| msgid "expected pointer"
 msgid "expected pointer in %qs clause"
 msgstr "cần con trỏ"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr ""
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, fuzzy, gcc-internal-format
 #| msgid "%qD in %<reduction%> clause is a zero size array"
 msgid "%<inscan%> %<reduction%> clause with array section"
@@ -52571,7 +52593,7 @@ msgstr "mảng có độ dài biến đổi %qD được dùng"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE có kiểu không hợp lệ cho %<reduction(%s)%>"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr ""
@@ -52581,17 +52603,17 @@ msgstr ""
 msgid "variable length element type in array %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE phải là %<threadprivate%> với %<copyin%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -52606,23 +52628,23 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr ""
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr ""
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr ""
@@ -52634,32 +52656,32 @@ msgstr ""
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr ""
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qE không phải một biến trong mệnh đề %<aligned%>"
@@ -52679,7 +52701,7 @@ msgstr "%qD không phải một biến trong mệnh đề  %<aligned%>"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<depend%> clause"
 msgid "%qE is not a variable in %<nontemporal%> clause"
@@ -52691,7 +52713,7 @@ msgstr "%qE không phải một biến trong mệnh đề %<depend%>"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE không phải một đối số trong mệnh đề %<uniform%>"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<aligned%> clause"
 msgid "%qE is not a variable in %<allocate%> clause"
@@ -52703,78 +52725,78 @@ msgstr "%qE không phải một biến trong mệnh đề %<aligned%>"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE không phải một biến trong mệnh đề %<aligned%>"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %qs clause"
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qE không phải một biến trong mệnh đề %qs"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr ""
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %qD"
 msgid "unsupported map expression %qE"
 msgstr "đối số không được hỗ trợ cho %D"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr ""
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD không phải một biến trong mệnh đề %qs"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE không phải một biến cũng không phải tên hàm trong mệnh đề %qs"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr ""
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD không phải một đối số trong mệnh đề %<uniform%>"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "%qE không phải một đối số trong mệnh đề %<uniform%>"
@@ -52790,23 +52812,23 @@ msgstr "nguồn không phải là một hàm trỏ"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr ""
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, gcc-internal-format
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr ""
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %qs clauses on a task construct"
 msgstr "quá nhiều mệnh đề %qs"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr ""
@@ -52816,38 +52838,38 @@ msgstr ""
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -53143,13 +53165,13 @@ msgstr "  cho chuyển đổi từ %qT thành %qT"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  không hiểu chuyển đổi cho đối số %d từ %qT thành %qT"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] "  ứng cử cần ít nhất %d đối số, nhưng cung cấp %d"
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -53475,581 +53497,581 @@ msgstr ""
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "kiểu không khớp trong biểu thức điều kiện"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr ""
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr ""
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "return type of %qD is not %qs"
 msgstr "kiểu trả về %q#T là một kiểu không hoàn toàn"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "so sánh giữa %q#T và %q#T"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to %<(%T) (%A)%>"
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "cú gọi không khớp tới %<(%T) (%A)%>"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 #| msgid "call of %<(%T) (%A)%> is ambiguous"
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "cú gọi của %<(%T) (%A)%> chưa rõ ràng"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is a usual (non-placement) deallocation function"
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "%qD thường không phải là hàm non-static"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "%qD thường không phải là hàm non-static"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr ""
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr ""
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, gcc-internal-format
 msgid "%q#D is private within this context"
 msgstr ""
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, gcc-internal-format
 msgid "declared private here"
 msgstr "đã được khai báo ở đây"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, gcc-internal-format
 msgid "%q#D is protected within this context"
 msgstr ""
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, gcc-internal-format
 msgid "declared protected here"
 msgstr "được khai báo bảo vệ ở đây"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, gcc-internal-format
 msgid "%q#D is inaccessible within this context"
 msgstr "%q#D là không thể truy cập trong ngữ cảnh này"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, gcc-internal-format
 msgid "  declared here"
 msgstr "  đã được khai báo ở đây"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr ""
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr ""
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr ""
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  đang khởi tạo đối số %P của %qD"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, fuzzy, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "inline namespaces chỉ sẵn sàng với -std=c++11 hay -std=gnu++11"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr ""
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr ""
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 #| msgid "ISO C++ does not allow %<alignof%> with a non-type"
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C++ không cho phép %<alignof%> với một non-type"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "chuyển đổi từ %qT thành %qT không hợp lệ"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid conversion from %qH to %qI"
 msgstr "chuyển đổi từ %qT thành %qT không hợp lệ"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr ""
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr ""
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 #| msgid "cannot convert type %qT to type %qT"
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "không thể chuyển đổi kiểu %qT thành %qT"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr ""
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr ""
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 #| msgid "cannot convert type %qT to type %qT"
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "không thể chuyển đổi kiểu %qT thành %qT"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr ""
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr ""
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 #| msgid "cannot bind %qT lvalue to %qT"
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "không thể buộc %qT lvalue thành %qT"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr ""
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr ""
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr ""
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr ""
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr ""
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr ""
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr ""
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr ""
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr ""
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr ""
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  trong gọi đến %qD"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr ""
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr ""
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, gcc-internal-format
 msgid "; use assignment or value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use assignment instead"
 msgstr "sử dụng #include để thay thế"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, gcc-internal-format
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use copy-assignment instead"
 msgstr "sử dụng #include để thay thế"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, fuzzy, gcc-internal-format
 #| msgid "re-initialization of %qs at %L"
 msgid "; use copy-initialization instead"
 msgstr "khởi tạo lại của %qs tại %L"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr ""
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 #| msgid "%qT declared here"
 msgid "%#qT declared here"
 msgstr "%qT được khai báo ở đây"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, fuzzy, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "Cảnh báo khi xóa một con trỏ tới kiểu không hoàn toàn."
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr ""
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 #| msgid "cannot convert %qT to %qT"
 msgid "cannot convert %qH to %qI"
 msgstr "không thể chuyển đổi %qT thành %qT"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr ""
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to %<(%T) (%A)%>"
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "cú gọi không khớp tới %<(%T) (%A)%>"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr ""
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "không thể gọi cấu tử %<%T::%D%> một cách trực tiếp"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr ""
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr ""
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "gọi hàm quá tải %<%s(%A)%> chưa rõ ràng"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr ""
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "returning a value from a constructor"
 msgid "pure virtual %q#D called from constructor"
 msgstr "trả về một giá trị từ cấu tử"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, fuzzy, gcc-internal-format
 #| msgid "returning a value from a destructor"
 msgid "pure virtual %q#D called from destructor"
 msgstr "trả về một giá trị từ hủy tử"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr ""
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr ""
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, gcc-internal-format
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr ""
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 #| msgid "Warn when converting the type of pointers to member functions."
 msgid "try making the operator a %<const%> member function"
 msgstr "Cảnh báo khi chuyển đổi loại hàm trỏ sang hàm thành viên."
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "đóng %qD thông qua %qD"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 #| msgid "  for conversion from %qT to %qT"
 msgid "  for conversion from %qH to %qI"
 msgstr "  cho chuyển đổi từ %qT thành %qT"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr ""
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr ""
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr " ứng cử 1: %q#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr " ứng cử 2: %q#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr ""
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr ""
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr ""
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr ""
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "possibly dangling reference to a temporary"
 msgstr "trả về tham chiếu đến tạm thời (temporary)"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr ""
@@ -54098,7 +54120,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q+#D không thể được quá tải"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "khai báo trước đây %q#D"
@@ -54533,7 +54555,7 @@ msgstr ""
 msgid "next member %q#D declared here"
 msgstr "thành viên kế %q#D đã khai báo ở đây"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "định nghĩa lại của %q#T"
@@ -54668,7 +54690,7 @@ msgstr ""
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "C++11 %<constexpr%> chỉ sẵn sàng với -std=c++11 hay -std=gnu++11"
@@ -54711,7 +54733,7 @@ msgstr ""
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%qD không phải là đối số hàm"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -54730,7 +54752,7 @@ msgstr "%<constexpr%> không thể dùng cho khai báo kiểu"
 msgid "%q+E is not a constant expression"
 msgstr "%q+E không phải biểu thức hằng"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 msgid "dereferencing a null pointer"
@@ -54752,7 +54774,7 @@ msgstr ""
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 msgid "call to internal function %qE"
@@ -54802,7 +54824,7 @@ msgstr "  %qT là lớp cơ sở chưa rõ ràng của %qT"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -54934,18 +54956,18 @@ msgstr ""
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr ""
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr ""
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, gcc-internal-format
 msgid "dereferencing a null pointer in %qE"
 msgstr ""
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -54953,488 +54975,488 @@ msgstr ""
 msgid "%qE is not a constant expression"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr ""
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr ""
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr ""
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 #| msgid "%s cannot be used in asm here"
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "%s không thể được dùng trong asm ở đây"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr ""
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr ""
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 #| msgid "lambda-expression in a constant expression"
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "Gặp biểu thức lambda trong biểu thức bất biến"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "allocated here"
 msgstr "được khai báo ở đây"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 #| msgid "array index in initializer is not an integer constant expression"
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "bộ khởi tạo chứa một chỉ mục mảng không phải là một biểu tượng hằng số nguyên"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "%qD được dùng trong bộ khởi tạo của chính nó"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%q#D không là const"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%q#D là volatile"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD không được khởi tạo với một biểu thức hằng"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD chưa được khai báo %<constexpr%>"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr ""
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "bổ từ %qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "bổ từ %qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "lệnh không phải biểu thức hằng"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "bổ từ %qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, fuzzy, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "biểu thức %qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr ""
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "lệnh không phải biểu thức hằng"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not a constant expression"
 msgid "inline assembly is not a constant expression"
 msgstr "yếu tố khởi tạo không phải là một biểu tượng hằng số"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
 msgid "use of %qD"
 msgstr "dùng %qD không hợp lệ"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr ""
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "lệnh không phải biểu thức hằng"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 #| msgid "routine %qD declared here"
 msgid "pointed-to object declared here"
 msgstr "%qD được khai báo ở đây"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr ""
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 #| msgid "%qD called in a constant expression"
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "%qD được gọi trong một biểu thức hằng"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "%<delete[]%> không phải biểu thức hằng"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "biểu thức %qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "%<delete[]%> không phải biểu thức hằng"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "lệnh không phải biểu thức hằng"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 #| msgid "expected template-id"
 msgid "unexpected template-id %qE"
 msgstr "cần template-id"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, gcc-internal-format
 msgid "function concept must be called"
 msgstr ""
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 msgid "address of a call to %qs is not a constant expression"
 msgstr "biểu thức %qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr ""
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr ""
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr ""
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr ""
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr ""
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, gcc-internal-format
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr ""
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "bổ từ %qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "%<delete[]%> không phải biểu thức hằng"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 #| msgid "lambda-expression in a constant expression"
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "Gặp biểu thức lambda trong biểu thức bất biến"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr "biểu thức %qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "hủy tử không thể là %<constexpr%>"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, fuzzy, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "%<delete[]%> không phải biểu thức hằng"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr ""
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr ""
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "bổ từ %qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "%<delete[]%> không phải biểu thức hằng"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "bổ từ %qE không phải là biểu thức hằng"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr ""
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, fuzzy, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++11 %<constexpr%> chỉ sẵn sàng với -std=c++11 hay -std=gnu++11"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "cần AST thuộc kiểu %s"
@@ -56229,7 +56251,7 @@ msgstr "đối số 1 của __builtin_paired_predicate phải là một hằng"
 msgid "no suspend point info for %qD"
 msgstr "chưa có khai báo nguyên mẫu trước đây cho %qD"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -56251,23 +56273,23 @@ msgstr "biểu thức như là toán hạng không hợp lệ"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr "mảng có độ dài biến đổi được dùng"
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr ""
@@ -56288,74 +56310,74 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD không phải là một hàm mẫu"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor %qE"
 msgid "taking address of an immediate function %qD"
 msgstr "lấy địa chỉ của hủy tử %qE"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "bổ từ %qE không phải là biểu thức hằng"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<concept%>"
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "hủy tử không thể là %<concept%>"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "dùng %<auto%> không hợp lệ trong đối số mẫu"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qE attribute"
 msgid "pack expansion of %qE attribute"
 msgstr "đối số của thuộc tính %qE không hợp lệ"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, gcc-internal-format
 msgid "use fold expression in the attribute argument instead"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD không phải là một kiểu"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class type"
 msgid "%qD is not a class type"
 msgstr "%qT không phải là kiểu lớp"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have pointer or array type"
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qE không có con trỏ hay kiểu mảng"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 #| msgid "%qE does not have pointer or array type"
 msgid "%qD does not have integral type"
 msgstr "%qE không có con trỏ hay kiểu mảng"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -56404,7 +56426,7 @@ msgstr ""
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "chuyển đổi từ %qT sang %qT là chưa rõ ràng"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr ""
@@ -56795,7 +56817,7 @@ msgstr "từ khai báo trước đây %q+F"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "sự khai báo lại %q+D khác trong %<constexpr%>"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "khai báo trước đây %q#D"
@@ -56945,8 +56967,8 @@ msgstr ""
 msgid "%q#D previously defined here"
 msgstr "%q#D trước được định nghĩa ở đây"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "%q#D trước định nghĩa ở đây"
@@ -57025,58 +57047,40 @@ msgstr ""
 msgid "previous specification in %q#D here"
 msgstr "sau đặc tả trước đây trong %q#D"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-#| msgid "section type conflict with %D"
-msgid "declaration %qD conflicts with builtin"
-msgstr "kiểu phần xung đột với %D"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-#| msgid "section type conflict with %D"
-msgid "declaration %qD conflicts with import"
-msgstr "kiểu phần xung đột với %D"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-#| msgid "  declared here"
-msgid "import declared %q#D here"
-msgstr "  đã được khai báo ở đây"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q+#D"
 msgid "conflicting exporting for declaration %qD"
 msgstr "khai báo xung đột %q+#D"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 #| msgid "previously declared here"
 msgid "previously declared here without exporting"
 msgstr "đã khai báo trước ở đây"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 msgid "previous definition of %qD here"
 msgstr "định nghĩa trước đây của %q+D là đây"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD here"
 msgstr "khai báo trước đây của %q+D ở đây"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared %<virtual%> inside a union"
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "hàm %qD được khai báo %<virtual%> trong một union"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr ""
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr ""
@@ -57089,44 +57093,44 @@ msgstr ""
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr ""
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr ""
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "định nghĩa lại của %q#D"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr ""
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q#D chưa được khai báo trong lớp"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr ""
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -57134,2576 +57138,2576 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr ""
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr ""
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr ""
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "khai báo lại của %q#D"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "tái khai báo không hợp lệ cho %q+D"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration"
 msgid "previous label"
 msgstr "khai báo trước"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "nhảy tới nhãn %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "nhảy tới nhãn lệnh case"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  từ đây"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  thoát khỏi khối được cấu trúc OpenMP"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "  sự khởi tạo chéo của %q+#D"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, fuzzy, gcc-internal-format
 #| msgid "  enters try block"
 msgid "  enters %<try%> block"
 msgstr "  vào khối try"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "  enters catch block"
 msgid "  enters %<catch%> block"
 msgstr "  vào khối catch"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  vào khối được cấu trúc OpenMP"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "  enters statement expression"
 msgstr "%qE không phải là biểu thức hằng"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, fuzzy, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr "cần biểu thức"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, fuzzy, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr "cần biểu thức"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C99 does not support %qE"
 msgid "  does not destroy %qD"
 msgstr "ISO C99 không hỗ trợ %qE"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr ""
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "  bỏ qua sự khởi tạo của %q#D"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 #| msgid "non-class template %qT used without template arguments"
 msgid "%qD used without template arguments"
 msgstr "mẫu không phải lớp %qT được dùng mà không có đỗi số mẫu"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "%qD không phải là một mẫu hàm"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T không phải là một lớp"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr ""
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "không có kiểu có tên %q#T trong %q#T"
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr ""
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr ""
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> names the constructor, not the type"
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<%T::%D%> tên cấu tử, không phải kiểu"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr ""
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "-falign-labels=%d không được hỗ trợ"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, gcc-internal-format
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr ""
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, gcc-internal-format
 msgid "anonymous struct with base classes"
 msgstr ""
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr ""
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr ""
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr ""
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr ""
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr ""
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr ""
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr ""
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr ""
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, gcc-internal-format
 msgid "%<inline%> can only be specified for functions"
 msgstr "%<inline%> chỉ có thể được chỉ định cho hàm"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, gcc-internal-format
 msgid "%<virtual%> can only be specified for functions"
 msgstr "%<virtual%> chỉ có thể được chỉ định cho hàm"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> chỉ có thể được chỉ định trong một lớp"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "%<explicit%> chỉ có thể được chỉ định cho cấu tử"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr ""
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, gcc-internal-format
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "%<const%> chỉ có thể được chỉ định cho lớp và hàm"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, gcc-internal-format
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "%<volatile%> chỉ có thể được chỉ định cho đối tượng và hàm"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, gcc-internal-format
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "%<__restrict%> chỉ có thể được chỉ định cho đối tượng và hàm"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, gcc-internal-format
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "%<__thread%> chỉ có thể được chỉ định cho đối tượng và hàm"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "%<typedef%> bị bỏ qua trong khai báo này"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 #| msgid "%<constexpr%> cannot be used for type declarations"
 msgid "%qs cannot be used for type declarations"
 msgstr "%<constexpr%> không thể dùng cho khai báo kiểu"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr ""
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr ""
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr ""
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr ""
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is initialized with itself"
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "%qD được khởi tạo bằng chính nó"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr ""
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr ""
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q+#D không phải là thành viên tĩnh của %q#T"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr ""
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr ""
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO C++ không cho phép %<%T::%D%> được định nghĩa như là %<%T::%D%>"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "khởi tạo lặp lại cho %qD"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr ""
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, fuzzy, gcc-internal-format
 #| msgid "C++11 %<thread_local%> only available with -std=c++11 or -std=gnu++11"
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++11 %<thread_local%> chỉ sẵn sàng với -std=c++11 hay -std=gnu++11"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<auto%> in parameter declaration only available with -std=c++14 or -std=gnu++14"
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "việc dùng %<auto%> trong khai báo tham số chỉ sẵn sàng với -std=c++11 hay -std=gnu++11"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr ""
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr ""
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr ""
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD được khai báo như là một tham chiếu nhưng lại chưa được khởi tạo"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr ""
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr ""
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr ""
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "thiếu kích thước mảng trong %qD"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "mảng có kích thước bằng không %qD"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr ""
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr ""
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr ""
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr ""
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate %<const%>"
 msgid "uninitialized %<const %D%>"
 msgstr "lặp lại %<const%>"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr ""
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr ""
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr ""
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr ""
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr ""
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr ""
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr ""
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr ""
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr ""
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr ""
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD không phải là thành viên của %qT"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "bộ khởi tạo cho %q#D không hợp lệ"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr ""
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "quá nhiều bộ khởi tạo cho %qT"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr ""
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "ngoặc chung quanh bộ khởi tạo vô hướng"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr ""
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 #| msgid "return type is an incomplete type"
 msgid "structured binding has incomplete type %qT"
 msgstr "kiểu trả về là một kiểu không hoàn toàn"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr ""
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr ""
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "đối số %q#D có kiểu chưa đầy đủ"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr ""
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr ""
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr ""
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr ""
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr ""
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "một bộ phận mảng dẻo bị khởi tạo một cách không phải tĩnh"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr ""
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "tham chiếu %qD được khởi tạo bằng chính nó"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not in a declaration"
 msgid "could not find variant declaration"
 msgstr "%<[*]%> không trong khai báo"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 #| msgid "too few arguments to constructor %q#D"
 msgid "%<declare variant%> on constructor %qD"
 msgstr "quá ít đối số cho hủy tử %q#D"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr ""
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr ""
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, fuzzy, gcc-internal-format
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++ không cho phép %<alignof%> với một non-type"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, gcc-internal-format
 msgid "%<register%> storage class specifier used"
 msgstr ""
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "khai báo của %q#D chưa có bộ khởi tạo"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr ""
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "kiểu trả về %q#T là một kiểu không hoàn toàn"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, gcc-internal-format
 msgid "variable concept has no initializer"
 msgstr ""
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr ""
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "Thuộc tính %qE chỉ được áp dụng cho các biến"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr ""
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr ""
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "không thể chuyển đổi %qT thành %qT"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 #| msgid "source is a pointer to incomplete type"
 msgid "structured binding refers to incomplete type %qT"
 msgstr "nguồn là một hàm trỏ tới loại không hoàn toàn"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "ISO C90 cấm mảng có kích thước biến đổi %qE"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "initializer provided for function"
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] "bộ khởi tạo được cung cấp cho hàm"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length vector %qT"
 msgstr "ISO C90 cấm mảng có kích thước biến đổi %qE"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "kích cỡ mảng không phải là biểu thức hằng số nguyên"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, fuzzy, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr "(gần chỗ khởi tạo cho %qs)"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "không thể chuyển đổi kiểu %qT thành %qT"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "không thể giải mã địa chỉ"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose lambda closure type %qT"
 msgstr "không thể chuyển đổi kiểu %qT thành %qT"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "source is of incomplete class type"
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "nguồn có loại lớp không hoàn toàn"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr ""
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr ""
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr ""
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "thiếu kích thước mảng trong %qT"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "mảng có kích thước không %qT"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr ""
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD được khai báo là một biến %<virtual%>"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr ""
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD được khai báo như là đối số %<virtual%>"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD được khai báo là một đối số %<inline%>"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD được khai báo như là kiểu %<virtual%>"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD được khai báo là một kiểu %<inline%>"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr ""
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD được khai báo như là trường %<virtual%>"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD được khai báo là một trường %<inline%>"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr ""
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D được khai báo là friend"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr ""
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr ""
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr ""
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr ""
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr ""
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, gcc-internal-format
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr ""
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr ""
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 #| msgid "function return type cannot be function"
 msgid "a function concept cannot be constrained"
 msgstr "kiểu trả về hàm không thể là hàm"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template function"
 msgid "constraints on a non-templated function"
 msgstr "%qD không phải là một hàm mẫu"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, gcc-internal-format
 msgid "constrained non-template friend declaration must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr ""
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr ""
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr ""
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, gcc-internal-format
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr ""
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr ""
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr ""
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to %q#T"
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "không thể khai báo con trỏ đến %q#T"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr ""
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr ""
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 #| msgid "next member %q#D declared here"
 msgid "explicit object parameter declared here"
 msgstr "thành viên kế %q#D đã khai báo ở đây"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr ""
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr ""
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, gcc-internal-format
 msgid "deduction guide %qD must not have a function body"
 msgstr ""
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr ""
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr ""
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr ""
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr ""
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%qD phải là một hàm không-thành-viên"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> phải trả về %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr ""
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr ""
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "%q#D đã là mặc định rõ ràng ở đây"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr ""
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr ""
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr ""
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr ""
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 #| msgid "Loop variable at %C cannot be a coarray"
 msgid "a variable concept cannot be constrained"
 msgstr "Biến vòng lặp tại %C không thể là một coarray"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr ""
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr ""
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr ""
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr ""
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr ""
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr ""
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "kích cỡ mảng không phải là biểu thức hằng số nguyên"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C++ cấm mảng có kích thước bằng không %qD"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ cấm mảng có kích thước bằng không"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ cấm biến có kích thước biến đổi %qD"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++ cấm biến có kích thước biến đổi"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "mảng có độ dài biến đổi %qD được dùng"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "mảng có độ dài biến đổi được dùng"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "tràn kích thước mảng"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as array of %qT"
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%qD được khai báo là mảng của %qT"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 #| msgid "Creating array temporary at %L"
 msgid "creating array of template placeholder type %qT"
 msgstr "Đang tạo mảng tạm tại %L"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "sự khai báo của %qD như là mảng void"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr "tạo mảng void"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "sự khai báo của %qD như là mảng của các hàm"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr "tạo mảng hàm"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "sự khai báo của %qD như là mảng của các tham chiếu"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr "tạo mảng tham chiếu"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "sự khai báo của %qD như là mảng của các thành viên hàm"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr "tạo mảng của thành viên hàm"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr ""
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 #| msgid "variable length array is used"
 msgid "variable-length array of %<auto%>"
 msgstr "mảng có độ dài biến đổi được dùng"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr ""
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, gcc-internal-format
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr ""
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr ""
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, gcc-internal-format
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr ""
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr ""
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr ""
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 #| msgid "no processor type specified for linking"
 msgid "return type specified for deduction guide"
 msgstr "chưa ghi rõ loại bộ xử lý cần liên kết"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, gcc-internal-format
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr ""
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr ""
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "biến hay trường được khai báo là void"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "%<inline%> được chỉ định cho khai báo lớp bạn"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, fuzzy, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "inline namespaces chỉ sẵn sàng với -std=c++11 hay -std=gnu++11"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 #| msgid "@catch parameter can not be protocol-qualified"
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "đối số @catch không thể là từ hạn định giao thức"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "cách dùng không đúng tên từ hạn định %<::%D%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "cách dùng không đúng tên từ hạn định %<%T::%D%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "cách dùng không đúng tên từ hạn định %<%D::%D%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%q#T is not a class or namespace"
 msgstr "%qT không phải là một lớp hay namespace"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "declaration of %qE as non-function"
 msgstr "sự khai báo của %qD như là non-function"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-member"
 msgid "declaration of %qE as non-member"
 msgstr "sự khai báo của %qD như là non-member"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr ""
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "định nghĩa hàm không khai báo đối số"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "sự khai báo của %qD như là non-function"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "sự khai báo của %qD như là %<typedef%>"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "khai báo của %qD như là đối số"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr ""
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 #| msgid "%qs cannot appear in a constant-expression"
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%qs không thể xuất hiện trong biểu thức hằng"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr ""
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr ""
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr ""
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "%<__int%d%> không được hỗ trợ cho đích này"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ không hỗ trợ %<__int%d%> cho %qs"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 #| msgid "%<signed%> and %<unsigned%> specified together for %qs"
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> và %<unsigned%> được chỉ định cùng với nhau cho %qs"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 #| msgid "%<long%> and %<short%> specified together for %qs"
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> và %<short%> được chỉ định cùng nhau với %qs"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 #| msgid "%qs used with %qE"
 msgid "%qs specified with %qT"
 msgstr "%qs được dùng với %qE"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<typedef%>"
 msgid "%qs specified with typedef-name %qD"
 msgstr "%qE được dùng với %<typedef%>"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<typedef%>"
 msgid "%qs specified with %<decltype%>"
 msgstr "%qE được dùng với %<typedef%>"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<typedef%>"
 msgid "%qs specified with %<typeof%>"
 msgstr "%qE được dùng với %<typedef%>"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "số ảo không hợp lệ cho %qs"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, gcc-internal-format
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr ""
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, gcc-internal-format
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr ""
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr ""
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters cannot be friends"
 msgid "a parameter cannot be declared %qs"
 msgstr "các đối số tạm không thể là bạn"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%> ngoài khai báo lớp"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "định nghĩa hàm được khai báo là %qs"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr ""
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr "định nghĩa hàm được khai báo là %<auto%>"
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "định nghĩa hàm được khai báo là %qs"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr ""
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr ""
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr ""
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr ""
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr ""
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr ""
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, gcc-internal-format
 msgid "attribute ignored"
 msgstr "thuộc tính bị bỏ qua"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "cho khai báo hàm mẫu %q+D"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, fuzzy, gcc-internal-format
 #| msgid "Expected left parenthesis"
 msgid "remove parentheses"
 msgstr "Mong đợi một dấu ngoặc đơn mở"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, fuzzy, gcc-internal-format
 #| msgid "nested namespace definitions only available with -std=c++1z or -std=gnu++1z"
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "định nghĩa namespaces lồng nhau chỉ sẵn sàng với -std=c++1z hay -std=gnu++1z"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 #| msgid "Function %qs at %L cannot have an initializer"
 msgid "a function type cannot have an explicit object parameter"
 msgstr "Hàm %qs tại %L không thể có bộ khởi tạo"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 #| msgid "  member function type %qT is not a valid template argument"
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "  kiểu hàm thành viên %qT không phải là một đối số mẫu hợp lệ"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr ""
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, gcc-internal-format
 msgid "valid explicit object parameter declared here"
 msgstr ""
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr ""
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, fuzzy, gcc-internal-format
 #| msgid "deduced return type only available with -std=c++14 or -std=gnu++14"
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "kiểu trả về deduced chỉ sẵn sàng với -std=c++14 hay -std=gnu++14"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr ""
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<auto%>"
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "dùng %<auto%> không hợp lệ"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 msgid "deduced class type %qD in function return type"
 msgstr "kiểu lớp %qT chưa hoàn thiện"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, fuzzy, gcc-internal-format
 #| msgid "deduced return type only available with -std=c++14 or -std=gnu++14"
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "kiểu trả về deduced chỉ sẵn sàng với -std=c++14 hay -std=gnu++14"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr ""
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr ""
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr ""
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr ""
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr ""
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "cấu tử không thể là hàm thành viên tĩnh"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr ""
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr ""
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not have parameters"
 msgid "constructors may not be ref-qualified"
 msgstr "hủy tử không được có đối số"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, gcc-internal-format
 msgid "constructors cannot be declared %<virtual%>"
 msgstr ""
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr ""
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr ""
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr ""
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 #| msgid "implicit templates may not be %<virtual%>"
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "các mẫu ngầm không nên là %<virtual%>"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, fuzzy, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr "định nghĩa hàm được khai báo là %<auto%>"
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a non-member function"
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD phải là một hàm không-thành-viên"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "hủy tử không được có đối số"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "không thể khai báo con trỏ đến %q#T"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "không thể khai báo tham chiếu đến %q#T"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "không thể khai báo con trỏ cho thành viên %q#T"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr ""
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr ""
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr ""
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "template-id %qD được dùng như bộ khai báo"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr ""
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr ""
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, gcc-internal-format
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "không thể khai báo tham chiếu đến %q#T"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr ""
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr ""
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr ""
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "%<explicit%> ngoài khai báo lớp"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr ""
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr ""
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "định nghĩa hàm được khai báo là %<auto%>"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "định nghĩa hàm được khai báo là %<auto%>"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr ""
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 #| msgid "old-style function definition"
 msgid "typedef may not be a function definition"
 msgstr "định nghĩa hàm theo cách cũ"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 #| msgid "a concept cannot be a member function"
 msgid "typedef may not be a member function definition"
 msgstr "cấu tử không thể là hàm thành viên tĩnh"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not in a declaration"
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<[*]%> không trong khai báo"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "typedef được khai báo %<auto%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr ""
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr ""
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "%<inline%> được chỉ định cho khai báo lớp bạn"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "các đối số tạm không thể là bạn"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr ""
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr ""
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr ""
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr ""
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr ""
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr ""
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "không thể dùng %<::%> trong khai báo đối số"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "không thể khai báo tham chiếu đến %q#T"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr ""
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr ""
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "thành viên dữ liệu không-tĩnh được khai báo giữ chỗ %qT"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids zero-size array %qD"
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C++ cấm mảng có kích thước bằng không %qD"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C90 không hỗ trợ thành viên mảng linh động"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "dùng %<::%> không hợp lệ"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr ""
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, gcc-internal-format
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "hàm %qD được khai báo %<virtual%> trong một union"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr ""
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr ""
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "sự khai báo của %qD như là thành viên của %qT"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "a destructor cannot be %qs"
 msgstr "hủy tử không thể là %<constexpr%>"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr ""
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr "cấu tử không thể là %<concept%>"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "cấu tử không thể là hàm thành viên tĩnh"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 #| msgid "cannot open %s"
 msgid "%qD cannot be %qs"
 msgstr "không thể mở %s"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr ""
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, gcc-internal-format
 msgid "variable template declared here"
 msgstr ""
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr ""
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr ""
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr ""
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, gcc-internal-format
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr ""
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 #| msgid "static data member %qD in unnamed class"
 msgid "static data member %qE declared %qs"
 msgstr "thành viên dữ liệu tĩnh %qD trong lớp không tên"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 #| msgid "  non-static data member %qD has non-literal type"
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "  thành viên dữ liệu không-tĩnh %qD có kiểu không-văn-chương"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member declared with placeholder %qT"
 msgid "non-static data member %qE declared %qs"
 msgstr "thành viên dữ liệu không-tĩnh được khai báo giữ chỗ %qT"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr ""
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> can only be specified for functions"
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "%<inline%> chỉ có thể được chỉ định cho hàm"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr ""
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, gcc-internal-format
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr ""
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr ""
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr ""
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr ""
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr ""
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr ""
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "%<static%> không sử dụng khi định nghĩa (như ngược với khai báo) một thành viên dữ liệu tĩnh"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr ""
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr ""
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "chưa định nghĩa biến môi trường%qs"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 #| msgid "%qD was not declared %<constexpr%>"
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "%qD chưa được khai báo %<constexpr%>"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr ""
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr ""
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr ""
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr ""
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr ""
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "không thể dùng %<::%> trong khai báo đối số"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr ""
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr ""
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr ""
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr ""
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr ""
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD không được khai báo như là tĩnh"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a non-member function"
 msgid "%qD must be a non-static member function"
 msgstr "%qD phải là một hàm không-thành-viên"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a non-member function"
 msgid "%qD must be a member function"
 msgstr "%qD phải là một hàm không-thành-viên"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, fuzzy, gcc-internal-format
 #| msgid "nested namespace definitions only available with -std=c++1z or -std=gnu++1z"
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "định nghĩa namespaces lồng nhau chỉ sẵn sàng với -std=c++1z hay -std=gnu++1z"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr ""
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr ""
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, gcc-internal-format
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr ""
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr ""
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly one argument"
 msgid "%qD must have either zero or one argument"
 msgstr "%qD cần chính các là một đối số"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have either one or two arguments"
 msgstr "%qD cần chính các là hai đối số"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its argument"
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "postfix %qD phải nhận %<int%> như là đối số của nó"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its second argument"
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "postfix %qD phải nhận %<int%> như là đối số thứ hai của nó"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have no arguments"
 msgstr "%qD cần chính các là hai đối số"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly one argument"
 msgid "%qD must have exactly one argument"
 msgstr "%qD cần chính các là một đối số"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have exactly two arguments"
 msgstr "%qD cần chính các là hai đối số"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD không thể có đối số mặc định"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr ""
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr ""
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "tiền tố %qD cần trả về %qT"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "hậu tố %qD cần trả về %qT"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD cần trả về bằng giá trị"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr ""
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr ""
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr ""
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr ""
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "%qT được coi là %qs"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 msgid "%qT has a previous declaration here"
 msgstr "%q+T có một khai báo trước ở đây"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "%qT được coi là enum"
@@ -59715,118 +59719,101 @@ msgstr "%qT được coi là enum"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr ""
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr ""
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 #| msgid "template-id %qD in declaration of primary template"
 msgid "class template %qD redeclared as non-template"
 msgstr "template-id %qD trong khai báo của mẫu nguyên gốc"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr ""
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT không phải một mẫu"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr ""
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr ""
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare reference to %q#T"
-msgid "cannot declare %qD in a different module"
-msgstr "không thể khai báo tham chiếu đến %q#T"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "đã khai báo trước ở đây"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr ""
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr "%qT được định nghĩa với cơ sở đa trực tiếp"
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, gcc-internal-format
 msgid "%qT defined with direct virtual base"
 msgstr "%qT được định nghĩa cơ sở trực tiếp ảo"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr ""
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr ""
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr ""
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare reference to %q#T"
-msgid "cannot declare %qD in different module"
-msgstr "không thể khai báo tham chiếu đến %q#T"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr "định nghĩa trước ở đây"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr ""
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr "đối số %d của %qE phải là một địa chỉ"
@@ -59835,85 +59822,85 @@ msgstr "đối số %d của %qE phải là một địa chỉ"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr ""
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr ""
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr ""
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr ""
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 #| msgid "increment of enumeration value is invalid in C++"
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "phép gia tăng giá trị kiểu liệt kê là không hợp lệ trong C++"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr ""
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr ""
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "nhiều định nghĩa cho %q#T"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "kiểu trả về %q#T là một kiểu không hoàn toàn"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%> cần trả về một tham chiếu đến %<*this%>"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr ""
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr ""
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "%<return%> (trả lại) không có giá trị, trong hàm trả lại non-void (không rỗng)"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD đã sẵn định nghĩa trong %qT"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 #| msgid "using %<%c%s%>"
 msgid "using %qs"
 msgstr "đang dùng %<%c%s%>"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr ""
@@ -59968,7 +59955,7 @@ msgstr ""
 msgid "deleting %qT is undefined"
 msgstr ""
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "cho khai báo hàm mẫu %q+D"
@@ -59978,7 +59965,7 @@ msgstr "cho khai báo hàm mẫu %q+D"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr ""
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr ""
@@ -60167,64 +60154,64 @@ msgstr ""
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> nhận kiểu %qT như là đối số thứ nhất"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr ""
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr ""
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr ""
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr ""
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr ""
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "hàm chung dòng %qD được dùng nhưng chưa bao giờ được định nghĩa"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr "hàm chung dòng %qD được dùng nhưng chưa bao giờ được định nghĩa"
@@ -60233,109 +60220,109 @@ msgstr "hàm chung dòng %qD được dùng nhưng chưa bao giờ được đ
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr ""
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr ""
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "hàm chung dòng %qD được dùng nhưng chưa bao giờ được định nghĩa"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr ""
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D conflicts with a previous declaration"
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "%q#D xung đột với khai báo trước"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q#D"
 msgid "previous mangling %q#D"
 msgstr "khai báo trước đây %q#D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr ""
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, gcc-internal-format
 msgid "inline function %qD used but never defined"
 msgstr "hàm chung dòng %qD được dùng nhưng chưa bao giờ được định nghĩa"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, gcc-internal-format
 msgid "default argument missing for parameter %P of %q#D"
 msgstr ""
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr ""
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 #| msgid "class %qE is deprecated"
 msgid "implicitly-declared %qD is deprecated"
 msgstr "lớp %qE đã lạc hậu"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, fuzzy, gcc-internal-format
 #| msgid "converting far pointer to near pointer"
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "không thể chuyển đổi thành kiểu con trỏ"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "dùng hàm bị xóa %qD"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "lệnh không thỏa những ràng buộc của nó:"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr ""
@@ -60457,7 +60444,7 @@ msgstr ""
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qT không có thành viên nào mang tên %qE; ý bạn là %qE?"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD không phải là thành viên của %qT"
@@ -60468,7 +60455,7 @@ msgstr "%qD không phải là thành viên của %qT"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qT không có thành viên nào mang tên %qE; ý bạn là %qE?"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD không phải là thành viên của %qD"
@@ -60494,49 +60481,49 @@ msgstr ""
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr ""
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  nằm trong biểu thức thrown"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr ""
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr ""
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, fuzzy, gcc-internal-format
 #| msgid "exception of type %<%T%> will be caught"
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "ngoại lệ kiểu %<%T%> sẽ được bắt"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, fuzzy, gcc-internal-format
 #| msgid " (operand type is %qT)"
 msgid "for type %qT"
 msgstr " (kiểu toán hạng là %qT)"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr ""
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr ""
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr ""
@@ -60806,12 +60793,12 @@ msgstr ""
 msgid "type %qT is not a direct base of %qT"
 msgstr "kiểu %qT không là cơ sở trực tiếp của %qT"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr ""
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT không phải là kiểu lớp"
@@ -60826,12 +60813,12 @@ msgstr ""
 msgid "invalid pointer to bit-field %qD"
 msgstr "con trỏ cho trường bít %qD không hợp lệ"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr ""
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr ""
@@ -61029,52 +61016,52 @@ msgstr ""
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr ""
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr ""
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr ""
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr ""
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr ""
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr ""
@@ -61464,236 +61451,286 @@ msgstr "cần template-id cho kiểu"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q+#D"
 msgid "conflicting global module declaration %#qD"
 msgstr "khai báo xung đột %q+#D"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration %q+D"
 msgid "existing declaration %#qD"
 msgstr "trong khai báo %q+D"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %q+D"
 msgid "definition of %qD does not match"
 msgstr "định nghĩa lại của %q+D"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing definition"
 msgid "existing definition %qD"
 msgstr "thiếu định nghĩa"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, gcc-internal-format
 msgid "... this enumerator %qD"
 msgstr ""
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "quá nhiều đối số cho cho phương thức %qE"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 #| msgid "routine %qD declared here"
 msgid "module %qs declared here"
 msgstr "%qD được khai báo ở đây"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q#D"
 msgid "macro definitions of %qE corrupted"
 msgstr "  từ định nghĩa của %q#D"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr ""
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr ""
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiled module is %sversion %s"
 msgstr "collect2 phiên bản %s\n"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2 phiên bản %s\n"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 #| msgid "no %qs getter found"
 msgid "module %qs found"
 msgstr "không tìm thấy getter %qs"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr ""
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 #| msgid "function attribute mismatch"
 msgid "fixed tree mismatch"
 msgstr "thuộc tính hàm không khớp"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 #| msgid "dwarf version %d is not supported"
 msgid "interface partition is not exported"
 msgstr "dwarf phiên bản %d không được hỗ trợ"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to rename %s to state file %s [%s]"
 msgid "failed to read compiled module cluster %u: %s"
 msgstr "gặp lỗi khi đổi tên %s thành tập tin thống kê %s [%s]"
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr "không tìm thấy lớp “%s”"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+#| msgid "section type conflict with %D"
+msgid "declaration %qD conflicts with builtin"
+msgstr "kiểu phần xung đột với %D"
+
+#: cp/module.cc:19122
+#, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration %q+#D"
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "khai báo xung đột %q+#D"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+#| msgid "conflicting declaration %q+#D"
+msgid "conflicting declaration of %qD in global module"
+msgstr "khai báo xung đột %q+#D"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared here"
+msgid "previously declared in module %qs"
+msgstr "đã khai báo trước ở đây"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared here"
+msgid "previously declared in global module"
+msgstr "đã khai báo trước ở đây"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 #| msgid "Creating '%s'\n"
 msgid "reading CMI %qs"
 msgstr "Đang tạo “%s”\n"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr ""
@@ -61705,423 +61742,423 @@ msgstr ""
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol %qs already declared"
 msgid "module already declared"
 msgstr "Ký hiệu %qs đã sẵn được khai báo"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, fuzzy, gcc-internal-format
 #| msgid "module procedure"
 msgid "module already imported"
 msgstr "thủ tục mô-đun"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, fuzzy, gcc-internal-format
 #| msgid "module procedure"
 msgid "module %qs imported here"
 msgstr "thủ tục mô-đun"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr ""
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 #| msgid "Enable traditional preprocessing."
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "Bật tiền xử lý theo kiểu cổ điển."
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr ""
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param name %qs"
 msgid "invalid header name %qs"
 msgstr "sai tên cho tùy chọn --param %qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param name %qs"
 msgid "invalid module name %qs"
 msgstr "sai tên cho tùy chọn --param %qs"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 #| msgid "error writing %qs"
 msgid "writing CMI %qs"
 msgstr "lỗi ghi %qs"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 #| msgid "Error writing modules file: %s"
 msgid "not writing module %qs due to errors"
 msgstr "Gặp lỗi khi ghi tập tin môt-đun: %s"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr "không tìm thấy lớp “%s”"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 #| msgid "unknown IRA region %qs"
 msgid "unknown header kind %qs"
 msgstr "không hiểu vùng IRA %qs"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, fuzzy, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "fold-expressions chỉ sẵn sàng với -std=c++1z hay -std=gnu++1z"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "khai báo của %qD như là đối số"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D xung đột với khai báo trước"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 #| msgid "%d constructor found\n"
 #| msgid_plural "%d constructors found\n"
 msgid "%q#D hides constructor for %q#D"
 msgstr "Tìm thấy %d bộ cấu trúc\n"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q+#D"
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "khai báo xung đột %q+#D"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr ""
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D previously declared here"
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "%q#D trước định nghĩa ở đây"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr ""
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "sự khai báo của các bóng %qD như là thành viên của %qT"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "sự khai báo lại %q+D khác trong %<constexpr%>"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s(%E) %p %d\n"
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %s(%E) %p %d\n"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s %p %d\n"
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d\n"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr ""
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D declared here"
 msgid "%q#D declared here with no linkage"
 msgstr "%q#D được khai báo ở đây"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared here, later in the translation unit"
 msgid "%q#D declared here with internal linkage"
 msgstr "%+D đã khai báo weakref sau khi được dùng"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D declared here"
 msgid "%q#D declared here with module linkage"
 msgstr "%q#D được khai báo ở đây"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> names destructor"
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T::%D%> tên hủy tử"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr ""
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, fuzzy, gcc-internal-format
 #| msgid "inline namespaces only available with -std=c++11 or -std=gnu++11"
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "inline namespaces chỉ sẵn sàng với -std=c++11 hay -std=gnu++11"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 #| msgid "%<::%E%> is not a class, namespace, or enumeration"
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%<::%E%> không phải là một lớp, namespace, hay enumeration"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr ""
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, gcc-internal-format
 msgid "using-declaration for member at non-class scope"
 msgstr ""
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "%qT is not a direct base of %qT"
 msgstr "kiểu %qT không là cơ sở trực tiếp của %qT"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not declared in %qD"
 msgid "%qD has not been declared in %qD"
 msgstr "%qD chưa được khai báo trong %qD"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of namespace %qD here"
 msgid "using-declaration may not name namespace %qD"
 msgstr "khai báo trước đây của không gian tên %qD ở đây"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> các tên cấu tử trong %qT"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not declared in %qD"
 msgid "%qD has not been declared within %qD"
 msgstr "%qD chưa được khai báo trong %qD"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a friend"
 msgid "only here as a %<friend%>"
 msgstr "%q+D được khai báo là friend"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr ""
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr ""
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr ""
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr ""
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr ""
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] "các khả năng được gợi ý:"
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr "  %qE"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "%qD không phải một biến trong mệnh đề %qs"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 #| msgid "%qD has already been defined"
 msgid "the macro %qs had not yet been defined"
 msgstr "%qD đã định nghĩa rồi"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 #| msgid "struct defined here"
 msgid "it was later defined here"
 msgstr "struct được định nghĩa ở đây"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr ""
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 #| msgid "%<-fabi-version=1%> is no longer supported"
 msgid "%<strong%> using directive no longer supported"
 msgstr "%<-fabi-version=1%> không còn tiếp tục được hỗ trợ nữa"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%<this%> có lẽ không nên được dùng trong ngữ cảnh này"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, gcc-internal-format, gfc-internal-format
 msgid "cannot nest more than %d namespaces"
 msgstr ""
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %L is ambiguous"
 msgid "%<namespace %E%> is ambiguous"
 msgstr "%qs tại %L phải là số nguyên"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr ""
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 #| msgid "label %qD defined here"
 msgid "%qD defined here"
 msgstr "nhãn %qD được định nghĩa ở đây"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr ""
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "previous definition here"
 msgid "reachable %s definition here"
 msgstr "định nghĩa trước ở đây"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, fuzzy, gcc-internal-format
 #| msgid "XXX entering pop_everything ()\n"
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX vào pop_everything ()\n"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "XXX leaving pop_everything ()\n"
 msgid "XXX leaving %<pop_everything ()%>"
@@ -62147,7 +62184,7 @@ msgstr ""
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr ""
@@ -62399,7 +62436,7 @@ msgstr "C++11 %<constexpr%> chỉ sẵn sàng với -std=c++11 hay -std=gnu++11"
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "%<concept%> chỉ sẵn sàng với -fconcepts"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, fuzzy, gcc-internal-format
 #| msgid "%<requires%> only available with -fconcepts"
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
@@ -62582,7 +62619,7 @@ msgstr ""
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "fold-expressions chỉ sẵn sàng với -std=c++1z hay -std=gnu++1z"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "cần biểu thức cơ bản"
@@ -62639,7 +62676,7 @@ msgstr "%<~auto%> chỉ sẵn sàng trên -std=c++14 hay -std=gnu++14"
 msgid "template-id not allowed for destructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -62659,7 +62696,7 @@ msgstr ""
 msgid "expected unqualified-id"
 msgstr "cần unqualified-id"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD không phải một mẫu"
@@ -62710,7 +62747,7 @@ msgstr ""
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "sai số tham số cho %<__builtin_addressof%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "đối số sai số lượng cho %<__builtin_launder%>"
@@ -62748,7 +62785,7 @@ msgstr "các kiểu có lẽ không nên được định nghĩa trong áp kiể
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "dùng %qD không hợp lệ"
@@ -62773,7 +62810,7 @@ msgstr "ISO C++ không cho phép %<alignof%> với một non-type"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr ""
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in casts"
 msgid "types may not be defined in %qs expressions"
@@ -62936,8 +62973,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr "trùng biến minh dụ %q+D"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%q#D được khai báo ở đây"
@@ -62979,7 +63016,7 @@ msgstr ""
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "fold-expressions chỉ sẵn sàng với -std=c++1z hay -std=gnu++1z"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -63108,7 +63145,7 @@ msgstr "%<#pragma omp cancel%> chỉ có thể sử dụng trong các biểu th
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "định nghĩa namespaces lồng nhau chỉ sẵn sàng với -std=c++1z hay -std=gnu++1z"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "cần selection-statement"
@@ -63174,7 +63211,7 @@ msgstr ""
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr ""
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "cần iteration-statement"
@@ -63201,7 +63238,7 @@ msgstr "C++11 %<constexpr%> chỉ sẵn sàng với -std=c++11 hay -std=gnu++11"
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ cấm tính toán gotos"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "cần jump-statement"
@@ -63501,12 +63538,12 @@ msgstr ""
 msgid "cannot expand initializer for member %qD"
 msgstr "thiếu bộ khởi tạo cho thành viên %qD"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr ""
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr ""
@@ -64171,7 +64208,7 @@ msgstr "thiếu đối số mẫu sau %qT"
 msgid "%qT not permitted in template argument"
 msgstr "các kiểu không nên được định nghĩa trong đối số mẫu"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, gcc-internal-format
 msgid "invalid use of %qT"
@@ -64354,12 +64391,12 @@ msgstr "khai báo trước đây của %q+#T"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, gcc-internal-format
 msgid "expected class-key"
 msgstr "cần class-key"
@@ -64570,39 +64607,39 @@ msgstr "mẫu biến chỉ sẵn sàng với -std=c++14 hay -std=gnu++14"
 msgid "expression must be enclosed in parentheses"
 msgstr "chỉ số phải là số nguyên"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 #| msgid "argument %qd is not a constant"
 msgid "result type is not a plain type-constraint"
 msgstr "đối số %qd không phải hằng số"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not constant"
 msgid "return-type-requirement is not a type-constraint"
 msgstr "yếu tố khởi tạo không phải hằng số"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr ""
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "khai báo không hợp lệ của %<%T::%E%>"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr ""
@@ -64611,450 +64648,450 @@ msgstr ""
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr ""
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
 msgstr ""
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr ""
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr ""
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr ""
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, gcc-internal-format
 msgid "no matching concept for template-introduction"
 msgstr ""
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr ""
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr ""
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "đặc tả rõ ràng không hợp lệ"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr ""
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, gcc-internal-format
 msgid "a class template declaration must not declare anything else"
 msgstr ""
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr ""
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr ""
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr ""
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in template arguments"
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "các kiểu không nên được định nghĩa trong đối số mẫu"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr "đối số cho %<sizeof…%> phải được bao quanh bởi dấu ngoặc đơn"
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr ""
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate virt-specifier"
 msgid "duplicate %qD specifier"
 msgstr "trùng virt-specifier"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 #| msgid "section type conflict with %D"
 msgid "%qD specifier conflicts with %qs"
 msgstr "kiểu phần xung đột với %D"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%> trước %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, fuzzy, gcc-internal-format
 #| msgid "%qE used with %<typedef%>"
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%qE được dùng với %<typedef%>"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr ""
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "đã chỉ ra cả hai %<__thread%> và %<thread_local%>"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "trùng %qD"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "trùng %qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "cần %<new%>"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "cần %<delete%>"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "cần %<return%>"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "cần %<extern%>"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "cần %<static_assert%>"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "cần %<decltype%>"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "cần %<operator%>"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "cần %<class%>"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "cần %<template%>"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "cần %<namespace%>"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "cần %<using%>"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "cần %<asm%>"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "cần %<try%>"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "cần %<catch%>"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "cần %<throw%>"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<data%>"
 msgid "expected %<auto%>"
 msgstr "cần %<data%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "cần %<__label__%>"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "cần %<@try%>"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "cần %<@synchronized%>"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "cần %<@throw%>"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "cần %<__transaction_atomic%>"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "cần %<__transaction_relaxed%>"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<@end%>"
 msgid "expected %<co_yield%>"
 msgstr "cần %<@end%>"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "cần %<::%>"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "cần %<…%>"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "cần %<*%>"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "cần %<~%>"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "cần %<:%> hoặc %<::%>"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "cần %<class%>, %<typename%>, hoặc %<template%>"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr ""
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "%q#T trước đã khai báo ở đây"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "không thể khai báo tham chiếu đến %q#T"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr ""
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 #| msgid "expected class-key"
 msgid "replace the class-key with %qs"
 msgstr "cần class-key"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 #| msgid "label %qD defined here"
 msgid "%qT defined as %qs here"
 msgstr "nhãn %qD được định nghĩa ở đây"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 #| msgid "%qT declared here"
 msgid "%qT first declared as %qs here"
 msgstr "%qT được khai báo ở đây"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr ""
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr ""
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr ""
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr ""
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr ""
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr ""
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr ""
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr ""
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr ""
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr ""
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr ""
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "kiểu không hợp lệ cho biến instance (minh dụ)"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr ""
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr ""
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr ""
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, gcc-internal-format
 msgid "invalid type for property"
 msgstr "kiểu không hợp lệ cho thuộc tính"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, fuzzy, gcc-internal-format
 #| msgid "unknown property attribute"
 msgid "unknown property attribute %qE"
 msgstr "không hiểu thuộc tính tính chất"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected integer expression list"
 msgstr "cần biểu thức nguyên"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "biểu thức %<wait%> phải là số nguyên"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "cần %<class%>, %<typename%>, hoặc %<template%>"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "bộ khởi tạo sai"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in casts"
 msgid "types may not be defined in iterator type"
@@ -65064,13 +65101,13 @@ msgstr "các kiểu có lẽ không nên được định nghĩa trong áp kiể
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma vtable no longer supported"
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "#pragma vtable không còn được hỗ trợ nữa"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr ""
@@ -65080,140 +65117,140 @@ msgstr ""
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr ""
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr ""
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma omp section%> chỉ có thể sử dụng trong cấu trúc %<#pragma omp sections%>"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "mệnh đề khởi tạo không hợp lệ"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "cần id-expression (các đối số)"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr ""
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, fuzzy, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr "%<#pragma omp declare reduction%> trước"
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD không phải là hàm thành viên mẫu"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr ""
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr "vòng ngoài hơn %<__transaction_cancel%> không nằm trong vòng ngoài hơn %<__transaction_atomic%>"
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr "  hoặc một hàm %<transaction_may_cancel_outer%>"
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "%<#pragma GCC pch_preprocess%> phải là đầu tiên"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp barrier%> chỉ có thể sử dụng trong các biểu thức phức hợp"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp flush%> chỉ có thể sử dụng trong các biểu thức phức hợp"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma grainsize%> must be inside a function"
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "%<#pragma grainsize%> phải ở bên trong một hàm"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not implemented for -fPIC"
 msgid "multi-source compilation not implemented for C++"
 msgstr "-mnop-mcount không được thực hiện cho -fPIC"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "placeholder type not allowed in this context"
 msgstr "%<this%> có lẽ không nên được dùng trong ngữ cảnh này"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr "các mẫu ngầm không nên là %<virtual%>"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -65243,7 +65280,7 @@ msgstr ""
 msgid "specialization of %qD must appear at namespace scope"
 msgstr ""
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr ""
@@ -65258,27 +65295,27 @@ msgstr "  từ định nghĩa của %q#D"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr ""
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr ""
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr ""
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr ""
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q#D"
 msgid "from definition of %q#D"
@@ -65286,149 +65323,149 @@ msgstr "  từ định nghĩa của %q#D"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr ""
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr ""
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr ""
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 #| msgid "%s %#D"
 msgid "%s %#qD"
 msgstr "%s %#D"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD không phải là một mẫu hàm"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "%qD không phải là một biến"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "template-id %qD cho %q+D không khớp bất kỳ khai báo mẫu nào"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr ""
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr ""
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, fuzzy, gcc-internal-format
 #| msgid "variable templates only available with -std=c++14 or -std=gnu++14"
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "mẫu biến chỉ sẵn sàng với -std=c++14 hay -std=gnu++14"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d)"
 msgid "too many template headers for %qD (should be %d)"
 msgstr "sai số lượng đối số hàm mẫu (%d, phải là %d)"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, gcc-internal-format
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr ""
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, gcc-internal-format
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr ""
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, gcc-internal-format
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr ""
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "missing template arguments after %qT"
 msgid "missing primary template attributes %s"
 msgstr "thiếu đối số mẫu sau %qT"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "missing template arguments after %qT"
 msgid "missing primary template attribute %s"
 msgstr "thiếu đối số mẫu sau %qT"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 #| msgid "template-id %qD in declaration of primary template"
 msgid "template-id %qE in declaration of primary template"
 msgstr "template-id %qD trong khai báo của mẫu nguyên gốc"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr ""
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr ""
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr ""
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr ""
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization declared %<concept%>"
 msgstr ""
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr ""
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr ""
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD không phải là một hàm mẫu"
@@ -65441,156 +65478,156 @@ msgstr "%qD không phải là một hàm mẫu"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr ""
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr ""
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr ""
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 msgid "friend declaration here"
 msgstr "khai báo trước ở đây"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, gcc-internal-format
 msgid "explicit specialization of function concept %qD"
 msgstr ""
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 #| msgid "both arguments to %<__builtin___clear_cache%> must be pointers"
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "cả hai đối số cho %<__builtin___clear_cache%> phải là các con trỏ"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr ""
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr ""
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "          %s"
 msgid "        %s"
 msgstr "          %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, gcc-internal-format
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr ""
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, gcc-internal-format
 msgid "declaration of %q+#D shadows template parameter"
 msgstr ""
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, gcc-internal-format
 msgid "template parameter %qD declared here"
 msgstr ""
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr ""
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr ""
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, gcc-internal-format
 msgid "primary template here"
 msgstr "mẫu nguyên gốc ở đây"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qE"
 msgid "too many arguments for partial specialization %qT"
 msgstr "quá nhiều đối số cho hàm %qE"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr ""
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 msgid "primary template %qD"
 msgstr "mẫu nguyên gốc ở đây"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] ""
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr ""
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr ""
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr ""
@@ -65599,47 +65636,47 @@ msgstr ""
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr ""
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr ""
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "các kiểu có lẽ không nên được định nghĩa trong áp kiểu"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "mẫu lambda chỉ sẵn sàng với -std=c++14 hay -std=gnu++14"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr ""
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr ""
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, gcc-internal-format
 msgid "template %qD declared"
 msgstr ""
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr ""
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr ""
@@ -65649,519 +65686,519 @@ msgstr ""
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "phần khai báo mẫu của %qD không hợp lệ"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr ""
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr ""
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "nhận được %d đối số mẫu cho %q#D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "nhận được %d đối số mẫu cho %q#T"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  nhưng cần %d"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr ""
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, fuzzy, gcc-internal-format
 #| msgid "invalid explicit specialization"
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "đặc tả rõ ràng không hợp lệ"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of typedef %q+D with different type"
 msgid "redeclaration of %qD with different constraints"
 msgstr "định nghĩa lại của typedef %q+D với kiểu khác"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT không phải là một kiểu mẫu"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr ""
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] ""
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] ""
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "đối số mẫu %q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "khai báo lại ở đây như là %q#D"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "redeclared here"
 msgstr "được khai báo ở đây"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of typedef %q+D with different type"
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "định nghĩa lại của typedef %q+D với kiểu khác"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr ""
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of typedef %q+D with different type"
 msgid "redeclaration of %q#D with different constraints"
 msgstr "định nghĩa lại của typedef %q+D với kiểu khác"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr ""
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr ""
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr ""
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr ""
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr ""
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "because it is a member of %qT"
 msgstr "%qD không phải là thành viên của %qT"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 #| msgid "got %d template parameters for %q#D"
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "nhận được %d đối số mẫu cho %q#D"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr ""
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr "  kiểu không khớp %qT và %qT"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr ""
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr ""
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "  %qE không tương đương với %qE"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr ""
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr ""
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr ""
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr ""
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr "  kiểu hàm thành viên %qT không phải là một đối số mẫu hợp lệ"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "  không thể chuyển đổi %qE (kiểu %qT) thành kiểu %qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "  %qT là lớp cơ sở chưa rõ ràng của %qT"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "  %qT không được dẫn xuất từ %qT"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr ""
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "không thể giải mã địa chỉ"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "quá nhiều đối số cho cho phương thức %qE"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr ""
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr ""
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr ""
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 #| msgid "  member function type %qT is not a valid template argument"
 msgid "the address of %qD is not a valid template argument"
 msgstr "  kiểu hàm thành viên %qT không phải là một đối số mẫu hợp lệ"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, fuzzy, gcc-internal-format
 #| msgid "  member function type %qT is not a valid template argument"
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "  kiểu hàm thành viên %qT không phải là một đối số mẫu hợp lệ"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr ""
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr ""
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr ""
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr ""
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 #| msgid "missing template arguments after %qT"
 msgid "in template argument for type %qT"
 msgstr "thiếu đối số mẫu sau %qT"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "quá nhiều đối số cho cho phương thức %qE"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr ""
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr ""
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr ""
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr ""
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "dùng %qE để thay thế"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr ""
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr ""
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "dùng %<auto%> không hợp lệ trong đối số mẫu"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr ""
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr ""
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr ""
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr ""
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  cần hằng của kiểu %qT, nhưng lại nhận được %qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr ""
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  cần mẫu lớp, nhưng lại nhận được %qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  cần kiểu, nhưng lại nhận %qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  cần một kiểu, nhưng lại nhận được %qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  cần mẫu lớp, nhưng lại nhận được %qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  cần mẫu kiểu %qD, nhưng lại nhận được %qT"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, gcc-internal-format
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr ""
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, gcc-internal-format
 msgid "  expected %qD but got %qD"
 msgstr "  cần %qD nhưng lại nhận %qD"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "không thể chuyển đổi %qE từ %qT thành %qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr ""
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "sai số lượng đối số hàm mẫu (%d, phải là %d)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "sai số lượng đối số mẫu (%d, cần ít nhất phải là %d)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, gcc-internal-format
 msgid "provided for %qD"
 msgstr "được cung cấp cho %qD"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr ""
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr ""
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%q#D không phải là hàm mẫu"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr ""
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "cho khai báo hàm mẫu %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 #| msgid "template constraint failure"
 msgid "template constraint failure for %qD"
 msgstr "ràng buộc mẫu gặp lỗi nghiêm trọng"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "%qD không phải là một biến"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 #| msgid "ordered argument needs positive constant integer expression"
 msgid "score argument must be constant integer expression"
 msgstr "cần biểu thức nguyên"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %L must be nonnegative"
 msgid "score argument must be non-negative"
 msgstr "%s tại %L phải là số nguyên"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr ""
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "cấu có không thành viên đã đặt tên"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not at beginning of declaration"
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE không ở đầu của khai báo"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr ""
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr ""
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of default argument for %q#D"
 msgid "  when instantiating default argument for call to %qD"
 msgstr "định nghĩa lại của đối số mặc định của %q#D"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr ""
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "mismatched arguments"
 msgid "mismatched argument pack lengths (%d vs %d)"
@@ -66180,309 +66217,309 @@ msgstr "các đối số không tương ứng với nhau"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "biến %qD có kiểu hàm"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "kiểu đối số không hợp lệ %qT"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "trong khai báo %q+D"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "hàm trả về một mảng"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "hàm trả về hàm"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr ""
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr ""
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr ""
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr ""
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr ""
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr ""
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr ""
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "đang tạo con trỏ đến thành viên của kiểu void"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "đang tạo mảng của %qT"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT không phải có kiểu lớp, cấu trúc hay union"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr ""
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class type"
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT không phải là kiểu lớp"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "dùng %qs trong mẫu"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr ""
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr ""
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not a constant expression"
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "yếu tố khởi tạo không phải là một biểu tượng hằng số"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr ""
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr ""
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr ""
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr ""
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr ""
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr "dùng %<this->%D%> thay thế"
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "dùng %<%T::%D%> thay thế"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%+D đã khai báo weakref sau khi được dùng"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments to %<__builtin_choose_expr%>"
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "sai số lượng đối số cho %<__builtin_choose_expr%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments to %<__builtin_complex%>"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "đối số sai số lượng cho %<__builtin_complex%>"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT không phải là một lớp hay namespace"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD không phải là một lớp hay namespace"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "đang dùng trường không hợp lệ %qD"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, gcc-internal-format
 msgid "%qT is/uses unnamed type"
 msgstr "%qT là/dùng kiểu nặc danh"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr ""
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr ""
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "biểu thức nguyên %qE không là hằng"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr ""
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr ""
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr ""
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 #| msgid "%s %#S"
 msgid "%s %#qS"
 msgstr "%s %#D"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr ""
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate instance variable %q+D"
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "trùng biến minh dụ %q+D"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 #| msgid "implicit declaration of function %qE"
 msgid "explicit instantiation of function concept %q#D"
 msgstr "khai báo ngầm của hàm %qE"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qD không phải là một thành viên dữ liệu tĩnh của một mẫu lớp"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr ""
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr ""
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr ""
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr ""
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr ""
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr ""
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr ""
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr ""
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr ""
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr ""
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr ""
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 #| msgid "previous specification in %q#D here"
 msgid "exception specification of %qD depends on itself"
@@ -66495,168 +66532,168 @@ msgstr "sau đặc tả trước đây trong %q#D"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr ""
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr ""
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, fuzzy, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "mẫu lambda chỉ sẵn sàng với -std=c++14 hay -std=gnu++14"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr ""
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, fuzzy, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "mẫu lambda chỉ sẵn sàng với -std=c++14 hay -std=gnu++14"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr ""
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr ""
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, gcc-internal-format
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr ""
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 #| msgid "a concept cannot be a member function"
 msgid "a concept cannot be constrained"
 msgstr "cấu tử không thể là hàm thành viên tĩnh"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a namespace or unscoped enum"
 msgid "concept %qE not in namespace scope"
 msgstr "%qT không phải là một namespace hay enum không hoạt vi"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, gcc-internal-format
 msgid "concept %qE has multiple template parameter lists"
 msgstr ""
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr ""
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 #| msgid "non-class template %qT used without template arguments"
 msgid "non-deducible template %qT used without template arguments"
 msgstr "mẫu không phải lớp %qT được dùng mà không có đỗi số mẫu"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, fuzzy, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "mẫu lambda chỉ sẵn sàng với -std=c++14 hay -std=gnu++14"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "use %qD directly instead"
 msgstr "sử dụng #include để thay thế"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr ""
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "gặp yếu tố thừa trong bộ khởi tạo hợp"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 #| msgid "function not considered for inlining"
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "hàm không phải được tính để chèn vào trực tiếp"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, fuzzy, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr "gặp yếu tố thừa trong bộ khởi tạo hợp"
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "hàm chung dòng %q+D được khai báo yếu"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr ""
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr ""
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr ""
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, gcc-internal-format
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr ""
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, gcc-internal-format
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr ""
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, gcc-internal-format
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr ""
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<auto%> in template argument"
 msgid "invalid use of %qT in template argument"
@@ -66871,660 +66908,660 @@ msgstr ""
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr ""
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr ""
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of constructor as a template"
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "dùng cấu tử như là một mẫu là không hợp lệ"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of constructor as a template"
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "dùng cấu tử như là một mẫu là không hợp lệ"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "missing template arguments after %qT"
 msgid "%qE missing template arguments"
 msgstr "thiếu đối số mẫu sau %qT"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "cannot call a concept as a function"
 msgstr "%qE không thể dùng như một hàm"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr ""
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, gcc-internal-format
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr ""
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr ""
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr ""
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr ""
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<...%> with non-slice"
 msgid "invalid use of %<this%> before it is valid"
 msgstr "dùng %<…%> mà không có non-slice là không hợp lệ"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<...%> with non-slice"
 msgid "invalid use of %<this%> after it is valid"
 msgstr "dùng %<…%> mà không có non-slice là không hợp lệ"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr ""
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr ""
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr ""
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE không là kiểu %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr ""
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "hủy tử không thể là %<constexpr%>"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, fuzzy, gcc-internal-format
 #| msgid "%<~auto%> only available with -std=c++14 or -std=gnu++14"
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<~auto%> chỉ sẵn sàng trên -std=c++14 hay -std=gnu++14"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr ""
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr ""
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr ""
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr ""
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "định nghĩa không hợp lệ của kiểu hạn định %qT"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "đặc tả lớp-cơ-sở không hợp lệ"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr "không thể chụp thành viên %qD trong hỗn hợp nặc danh"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "%qD không bị bắt"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr ""
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 #| msgid "use of deleted function %qD"
 msgid "use of parameter outside function body"
 msgstr "dùng hàm bị xóa %qD"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 #| msgid "missing template arguments after %qT"
 msgid "missing template arguments"
 msgstr "thiếu đối số mẫu sau %qT"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr ""
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr ""
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr ""
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr ""
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "không hiểu kiểu của %qE"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qT không phải một kiểu enumeration"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "kích cỡ mảng không phải là biểu thức hằng số nguyên"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr ""
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr ""
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr ""
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr ""
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 #| msgid "a concept cannot be a member function"
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "cấu tử không thể là hàm thành viên tĩnh"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr ""
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 #| msgid "constructor priorities are not supported"
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "các quyền ưu tiên cấu tử là không được hỗ trợ"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr ""
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr ""
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr ""
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr "biểu thức bước thẳng phải là số nguyên"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD không phải một biến trong mệnh đề %qs"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr ""
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qD không phải một biến trong mệnh đề %<lastprivate%>"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr "biểu thức tĩnh %<gang%> phải nguyên"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 #| msgid "%<gang%> static value must bepositive"
 msgid "%<gang%> static value must be positive"
 msgstr "giá trị tĩnh %<gang%> phải dương"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr "biểu thức số %<gang%> phải nguyên"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr "chiều dài %<vector%> phải là số nguyên"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr "biểu thức số %<worker%> phải là số nguyên"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "%<gang%> giá trị phải dương"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 #| msgid "%<vector%> length value must bepositive"
 msgid "%<vector%> length value must be positive"
 msgstr "chiều dài %<vector%> giá trị phải dương"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, fuzzy, gcc-internal-format
 #| msgid "%<worker%> num value must bepositive"
 msgid "%<worker%> num value must be positive"
 msgstr "%<worker%> giá trị phải dương"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr ""
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "%<async%> biểu thức phải nguyên"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr "%<thread_limit%> biểu thức phải nguyên"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr "chỉ số %<device%> phải là số nguyên"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD không phải một biến trong mệnh đề  %<aligned%>"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr ""
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in %<depend%> clause"
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD không phải một biến trong mệnh đề %<depend%>"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not an argument in %<uniform%> clause"
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD không phải một đối số trong mệnh đề %<uniform%>"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in %<aligned%> clause"
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%qE không phải một biến trong mệnh đề %<aligned%>"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in %<aligned%> clause"
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD không phải một biến trong mệnh đề  %<aligned%>"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in %<aligned%> clause"
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD không phải một biến trong mệnh đề  %<aligned%>"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable in %qs clause"
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "%qD không phải một biến trong mệnh đề %qs"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "chỉ số %<device%> phải là số nguyên"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr "chỉ số %<device%> phải là số nguyên"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 #| msgid "%<wait%> expression must be integral"
 msgid "%<hint%> expression must be integral"
 msgstr "biểu thức %<wait%> phải là số nguyên"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 #| msgid "%<wait%> expression must be integral"
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "biểu thức %<wait%> phải là số nguyên"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 #| msgid "%<wait%> expression must be integral"
 msgid "%<filter%> expression must be integral"
 msgstr "biểu thức %<wait%> phải là số nguyên"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 #| msgid "target is not pointer or reference to complete type"
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "đích không phải là hàm trỏ hoặc tham chiếu đến loại hoàn toàn"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 #| msgid "%<tile%> value must be integral"
 msgid "%<tile%> argument needs integral type"
 msgstr "giá trị %<tile%> phải là số nguyên"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr ""
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr ""
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr ""
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr ""
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr ""
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "lệnh không phải biểu thức hằng"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "%<delete[]%> không phải biểu thức hằng"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "%<delete[]%> không phải biểu thức hằng"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 #| msgid "static assertion failed: %s"
 msgid "static assertion failed: %.*s"
 msgstr "thẩm tra tĩnh gặp lỗi: %s"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr ""
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr "%<delete[]%> không phải biểu thức hằng"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 #| msgid "<unresolved overloaded function type>"
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "<chưa giải quyết loại hàm quá tải>"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "%<__builtin_next_arg%> được gọi mà không có đối số"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a class template"
 msgid "%qD is not a class or alias template"
 msgstr "%qE không phải một lớp mẫu"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr ""
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, gcc-internal-format
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr ""
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr "đối số không được hỗ trợ cho %<__builtin_return_address%>"
@@ -67532,1214 +67569,1214 @@ msgstr "đối số không được hỗ trợ cho %<__builtin_return_address%>"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr ""
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 #| msgid "lambda-expression in a constant expression"
 msgid "statement-expression in a constant expression"
 msgstr "Gặp biểu thức lambda trong biểu thức bất biến"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 #| msgid "  declared here"
 msgid " declared here"
 msgstr "  đã được khai báo ở đây"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "  base class %qT of %q+T is non-literal"
 msgid "base class %qT is not public"
 msgstr "  lớp cơ sở %qT của %q+T là non-literal"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not captured"
 msgid "%qD is not public"
 msgstr "%qD không bị bắt"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is mutable"
 msgstr "%qD không phải là một biến"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a type"
 msgid "%qD has a non-structural type"
 msgstr "%qD không phải là một kiểu"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "thuộc tính %qE chỉ áp dụng cho các hàm"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 #| msgid "section attribute argument not a string constant"
 msgid "%qE attribute argument must be a string constant"
 msgstr "đối số thuộc tính phần không phải là một hằng chuỗi"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "thuộc tính %qE chỉ áp dụng cho các hàm"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "thuộc tính %qE chỉ áp dụng cho các hàm"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 #| msgid "%<typeof%> applied to a bit-field"
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "%<typeof%> được áp dụng cho một bit-field"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 #| msgid "the %qE attribute requires arguments"
 msgid "%qE attribute takes no arguments"
 msgstr "thuộc tính %qE cần tham số"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute doesn't apply to functions"
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "Thuộc tính %qE không được áp dụng cho các hàm"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 #| msgid "array index in initializer is not an integer constant expression"
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "bộ khởi tạo chứa một chỉ mục mảng không phải là một biểu tượng hằng số nguyên"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr ""
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr ""
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, gcc-internal-format
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr ""
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as member of %qT"
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "sự khai báo của %qD như là thành viên của %qT"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "thuộc tính %qE cần tham số"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr ""
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr ""
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr ""
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr ""
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr ""
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr ""
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr ""
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr ""
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr ""
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr ""
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 #| msgid "Warn if a comparison always evaluates to true or false."
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "Cảnh báo khi so sánh luôn ước lượng là đúng hoặc là sai."
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr ""
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "lang_* check: failed in %s, at %s:%d"
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "lang_* check: gặp lỗi trong %s, tại %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr ""
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr ""
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "các toán hạng ?: có kiểu khác %qT và %qT"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "các toán hạng ?: có kiểu khác %qT và %qT"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr ""
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr ""
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr ""
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr ""
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr ""
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 #| msgid "argument 2 has invalid type"
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "đối số 2 có kiểu không hợp lệ"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, gcc-internal-format
 msgid "invalid use of non-static member function of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "ISO C++ cấm chuyển đổi hằng chuỗi thành %qT"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "việc chuyển đổi từ chuỗi thành %qT đã lỗi thời"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr ""
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of constructor as a template"
 msgid "invalid use of non-static data member %qE"
 msgstr "dùng cấu tử như là một mẫu là không hợp lệ"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr ""
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr ""
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr ""
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "%q#T không có thành viên nào mang tên %qE"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T has no member named %qE; did you mean %qE?"
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "%q#T không có thành viên nào mang tên %qE; ý bạn là %qE?"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, fuzzy, gcc-internal-format
 #| msgid "%q#T has no member named %qE; did you mean %qE?"
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "%q#T không có thành viên nào mang tên %qE; ý bạn là %qE?"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%q#T không có thành viên nào mang tên %qE; ý bạn là %qE?"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> không phải là thành viên của %qT"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT không là cơ sở của %qT"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD không phải là hàm thành viên mẫu"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT không phải kiểu con trỏ đến đối tượng"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr ""
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr ""
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr ""
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr ""
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr ""
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr ""
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr ""
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ cấm gọi %<::main%> từ bên trong chương trình"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr ""
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE không thể dùng như một hàm"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "%qD không thể được dùng như một hàm"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "biểu thức không thể được dùng như một hàm"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "quá nhiều đối số cho cấu tử %q#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "quá ít đối số cho hủy tử %q#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "quá nhiều đối số cho hàm thành viên %q#D"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "quá ít đối số cho hàm thành viên %q#D"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "quá nhiều đối số cho hàm %q#D"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "quá ít đối số cho hàm %q#D"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "quá nhiều đối số cho phương thức %q#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "quá ít đối số cho phương thức %q#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "quá nhiều đối số cho hàm"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "quá ít đối số cho hàm"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the address %qE will never be NULL"
 msgstr "địa chỉ của %qD sẽ không bao giờ là NULL"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "địa chỉ của %qD sẽ không bao giờ là NULL"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 #| msgid "the compiler can assume that the address of %qD will never be NULL"
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "trình biên dịch sẽ coi rằng địa chỉ của %qD sẽ không bao giờ là NULL"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "trình biên dịch sẽ coi rằng địa chỉ của %qD sẽ không bao giờ là NULL"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "các toán hạng ?: có kiểu khác %qT và %qT"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 #| msgid "operands to ?: have different types %qT and %qT"
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "các toán hạng ?: có kiểu khác %qT và %qT"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert type %qT to type %qT"
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "không thể chuyển đổi kiểu %qT thành %qT"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr ""
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "NULL được dùng trong số học"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr ""
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "các kiểu toán hạng là %qT và %qT"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, gcc-internal-format
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr ""
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 #| msgid "Unrecognized option to floating-point init value: %qs"
 msgid "unordered comparison on non-floating-point argument"
 msgstr "Không nhận ra tùy chọn để khởi tạo giá trị dấu chấm động: %qs"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr ""
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr ""
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr ""
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr ""
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of constructor %qE"
 msgid "taking address of constructor %qD"
 msgstr "lấy địa chỉ của cấu tử %qE"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor %qE"
 msgid "taking address of destructor %qD"
 msgstr "lấy địa chỉ của hủy tử %qE"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr ""
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  cần qualified-id"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr ""
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr ""
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr ""
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr ""
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of rvalue"
 msgstr "đang lấy địa chỉ của mẫu"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr ""
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr ""
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "attempt to take address of bit-field"
 msgstr "không thể lấy địa chỉ của %qs"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, fuzzy, gcc-internal-format
 #| msgid "%<~%> on a boolean expression"
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "%<~%> trên một biểu thức lôgíc"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr ""
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr ""
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr ""
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr ""
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr ""
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr ""
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr ""
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr ""
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr ""
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr ""
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr ""
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr ""
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr ""
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 #| msgid "useless cast to type %qT"
 msgid "useless cast to type %q#T"
 msgstr "trừ phi ép thành kiểu %qT"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 #| msgid "%E qualifier ignored on asm"
 msgid "type qualifiers ignored on cast result type"
 msgstr "từ hạn định %E bị bỏ qua trên asm"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "chuyển đổi từ %qT thành %qT không hợp lệ"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "kiểu lớp %qT chưa hoàn thiện"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 #| msgid "converting from %qT to %qT"
 msgid "converting from %qH to %qI"
 msgstr "đang chuyển đổi từ %qT thành %qT"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "chuyển đổi từ %qT thành %qT không hợp lệ"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 #, fuzzy
 #| msgid "cast from %qT to %qT loses precision"
 msgid "cast from %qH to %qI loses precision"
 msgstr "áp đổi kiểu tử %qT thành %qT làm mất độ chính xác"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 #| msgid "cast from %qT to %qT increases required alignment of target type"
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "áp đổi kiểu tử %qT thành %qT yêu cầu tăng cân chỉnh của kiểu đích"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr ""
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr ""
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr ""
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, gcc-internal-format
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr ""
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert type %qT to type %qT"
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "không thể chuyển đổi kiểu %qT thành %qT"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "chuyển đổi từ %qT thành %qT không hợp lệ"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ cấm việc áp đổi kiểu của mảng %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr ""
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, gcc-internal-format
 msgid "moving %qE of type %qT to itself"
 msgstr ""
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  trong định giá %<%Q(%#T, %#T)%>"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr "gán giá trị cho mảng từ một danh sách bộ khởi tạo"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "phép gán %qT cho %qT không tương thích kiểu"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "mảng được dùng như là bộ khởi tạo"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "gán mảng không hợp lệ"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr ""
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr ""
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr ""
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr ""
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 #| msgid "%qD cannot have default arguments"
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "%qD không thể có đối số mặc định"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 #| msgid "cannot convert %qT to %qT"
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "không thể chuyển đổi %qT thành %qT"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 #| msgid "cannot convert %qT to %qT"
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "không thể chuyển đổi %qT thành %qT"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 #| msgid "cannot convert %qT to %qT"
 msgid "cannot convert %qH to %qI in return"
 msgstr "không thể chuyển đổi %qT thành %qT"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 #| msgid "cannot convert %qT to %qT"
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "không thể chuyển đổi %qT thành %qT"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr ""
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, gcc-internal-format
 msgid "in passing argument %P of %qD"
 msgstr "trong đối số chuyển qua %P của %qD"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "trả về tham chiếu đến tạm thời (temporary)"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "trả về tham chiếu đến tạm thời (temporary)"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, gcc-internal-format
 msgid "reference to local variable %qD returned"
 msgstr "tham chiếu đến biến cục bộ %qD được trả về"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr "địa chỉ của nhãn %qD được trả về"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, gcc-internal-format
 msgid "address of local variable %qD returned"
 msgstr "địa chỉ của biến cục bộ %q+D được trả về"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 #| msgid "too many values in return statement"
 msgid "redundant move in return statement"
 msgstr "quá nhiều giá trị trong lệnh trả về"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 #| msgid "<During initialization>\n"
 msgid "redundant move in initialization"
 msgstr "<Khi khởi tạo>\n"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "trả về một giá trị từ hủy tử"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr ""
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "trả về một giá trị từ cấu tử"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr ""
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, gcc-internal-format
 msgid "returning initializer list"
 msgstr "trả về danh sách bộ khởi tạo"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr ""
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr ""
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 #| msgid "return-statement with a value, in function returning 'void'"
 msgid "return-statement with a value, in function returning %qT"
 msgstr "biểu thức trả về với một giá trị, trong hàm trả lại “void”"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, gcc-internal-format
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr ""
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr ""
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 #| msgid "using temporary as lvalue"
 msgid "using rvalue as lvalue"
@@ -68965,162 +69002,162 @@ msgstr ""
 msgid "insufficient contextual information to determine type"
 msgstr ""
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 #| msgid "Function %qs at %L cannot have an initializer"
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "Hàm %qs tại %L không thể có bộ khởi tạo"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr ""
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "chuyển đổi từ %qT thành %qT không hợp lệ"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr ""
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 #| msgid "initializer for %q#D is invalid"
 msgid "initializer-string for %qT is too long"
 msgstr "bộ khởi tạo cho %q#D không hợp lệ"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "remove %<{ }%> around initializer"
 msgstr "ngoặc chung quanh bộ khởi tạo vô hướng"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr ""
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "thiếu bộ khởi tạo cho thành viên %qD"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr ""
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr ""
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr ""
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr ""
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr ""
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr ""
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr ""
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "toán hạng cơ sở của %<->%> không phải là một con trỏ"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr ""
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr ""
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr ""
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr ""
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "hủy tử không thể là %<constexpr%>"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, fuzzy, gcc-internal-format
 #| msgid "%<~auto%> only available with -std=c++14 or -std=gnu++14"
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "%<~auto%> chỉ sẵn sàng trên -std=c++14 hay -std=gnu++14"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr ""
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr ""
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr ""
@@ -70147,7 +70184,7 @@ msgstr "Danh sách tên “%s” không thể là đối số tại %L"
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "đối số %qs của %qs intrinsict tại %L phải là hằng"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr ""
@@ -71490,7 +71527,7 @@ msgstr ""
 msgid "deferred type parameter at %C"
 msgstr ""
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -71708,7 +71745,7 @@ msgstr "Đối số %qs của %qs với PASS(%s) tại %L phải là vô hướn
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr ""
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, gcc-internal-format
 msgid "Component %qs at %C already declared at %L"
 msgstr "Thành phần “%qs” tại %C đã sẵn được khai báo tại %L"
@@ -72525,7 +72562,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr ""
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr ""
@@ -73341,12 +73378,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr ""
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -73600,276 +73637,276 @@ msgstr ""
 msgid "check_init_expr(): Unknown expression type"
 msgstr ""
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr ""
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr ""
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr ""
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, fuzzy, gcc-internal-format
 #| msgid "Function %qs at %L must be PURE"
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "Hàm %qs tại %L phải là PURE"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr ""
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr ""
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr ""
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "Biến %qs không thể xuất hiện trong biểu thức tại %L"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr "check_restricted(): không hiểu kiểu biểu thức"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "Hàm %qs tại %L phải là PURE"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "Biểu thức tại %L phải thuộc kiểu scalar"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "Vùng không tương thích nhau trong %s (%d và %d) tại %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr ""
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr ""
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, gcc-internal-format, gfc-internal-format
 msgid "Illegal assignment to external procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr ""
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr ""
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr ""
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr ""
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr ""
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr ""
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, fuzzy, gcc-internal-format
 #| msgid "Expected a procedure for argument %qs at %L"
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "Cần một thủ tục cho đối số %qs tại %L"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr ""
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "an assignment cannot appear in a constant-expression"
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "phép gán không thể được xuất hiện trong biểu thức hằng"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr ""
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr ""
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr ""
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr ""
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr ""
@@ -73877,197 +73914,197 @@ msgstr ""
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr ""
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr ""
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr ""
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "bổ từ %qE không phải là biểu thức hằng"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr ""
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr ""
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr ""
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr ""
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr ""
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr ""
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr ""
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 #| msgid "Internal procedure %qs is used as actual argument at %L"
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Thủ tục nội tại %qs được dùng làm đối số thật tại %L"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 #| msgid "Error in pointer initialization at %C"
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "Lỗi trong khởi tạo con trỏ tại %C"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr ""
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr ""
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "Variable %qs cannot appear in the expression at %L"
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "Biến %qs không thể xuất hiện trong biểu thức tại %L"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, fuzzy, gcc-internal-format
 #| msgid "Variable %qs cannot appear in the expression at %L"
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "Biến %qs không thể xuất hiện trong biểu thức tại %L"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 #| msgid "Variable %qs cannot appear in the expression at %L"
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "Biến %qs không thể xuất hiện trong biểu thức tại %L"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr ""
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr ""
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr ""
@@ -74088,8 +74125,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "Đang tạo mảng tạm tại %L"
@@ -74172,7 +74209,7 @@ msgstr ""
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr ""
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -74312,12 +74349,12 @@ msgstr ""
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr ""
@@ -75201,7 +75238,7 @@ msgstr "Chuyển đổi từ %s sang %s tại %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Can't convert %s to %s at %L"
 msgid "Cannot convert %s to %s at %L"
@@ -75781,7 +75818,7 @@ msgstr ""
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr ""
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr ""
@@ -75952,6 +75989,11 @@ msgstr "Tràn số nguyên"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -76362,7 +76404,7 @@ msgstr ""
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr ""
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%s at %L must be a scalar"
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
@@ -76902,85 +76944,85 @@ msgstr ""
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr ""
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ENTRY statement at %C"
 msgid "SELECT RANK statement at %C"
 msgstr "câu lệnh ENTRY tại %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "Gặp lỗi cú pháp trong biểu thức tại %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "Không cần câu lệnh CASE tại %C"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr ""
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr ""
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected RANK statement at %C"
 msgstr "Không cần câu lệnh END tại %C"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr ""
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in expression at %C"
 msgid "Syntax error in RANK specification at %C"
 msgstr "Gặp lỗi cú pháp trong biểu thức tại %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr ""
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr ""
@@ -78461,8 +78503,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr ""
@@ -80861,12 +80903,12 @@ msgstr ""
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr ""
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr ""
@@ -80987,7 +81029,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "%qE không phải tên một kiểu"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr ""
@@ -81392,282 +81434,288 @@ msgstr ""
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr ""
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_variable_attr(): Bad array reference"
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "gfc_variable_attr(): Tham chiếu mảng sai"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr ""
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr ""
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is deprecated"
 msgid "Using variable %qs at %L is deprecated"
 msgstr "%qs đã lạc hậu"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Invalid character in name at %C"
+msgid "Invalid array reference at %L"
+msgstr "Tên có chứa ký tự không hợp lệ tại %C"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Error in type-spec at %L"
 msgid "Error in typebound call at %L"
 msgstr "Sai trong type-spec tại %L"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr ""
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "%qs tại %L phải là THỦ TỤC CON"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr "%qs tại %L phải là HÀM"
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "gfc_resolve_expr(): sai kiểu biểu thức"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s tại %L phải là một scalar"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "%s tại %L phải là số nguyên"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s tại %L phải là SỐ-NGUYÊN"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr ""
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr ""
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr ""
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr ""
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr ""
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr ""
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr ""
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr ""
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr ""
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr ""
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 #| msgid "Expected %<,%> or end of statement at %C"
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "cần %<,%> hoặc kết thúc câu lệnh tại %C"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr ""
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr ""
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr ""
@@ -81676,285 +81724,285 @@ msgstr ""
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr ""
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr ""
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr ""
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr ""
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr ""
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr ""
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr ""
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr ""
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr ""
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "Danh sách tên “%s” không thể là đối số tại %L"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr ""
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr ""
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "parameter %u has void type"
 msgid "Selector at %L has no type"
 msgstr "tham số %u có kiểu void"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr ""
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr ""
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr ""
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "Gặp kiểu hạn chế không cần %qs tại %L"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr ""
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "Ngữ cảnh sai cho hạn chế NULL() tại %L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "Tham số %qs của thủ tục cơ bản tại %L phải là vô hướng"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr ""
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr ""
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr ""
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr ""
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr ""
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr ""
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr ""
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr ""
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr ""
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr ""
@@ -81962,216 +82010,216 @@ msgstr ""
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr ""
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr ""
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "BLOCK construct at %C"
 msgid "FORALL construct at %L"
 msgstr "cấu trúc BLOCK tại %C"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr ""
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr ""
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr ""
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr "gfc_resolve_blocks(): Kiểu khối sai"
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr ""
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr ""
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr ""
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr ""
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr ""
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr ""
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of %s at %L must be of length one"
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "Đối số của %s tại %L phải là của một độ dài"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qs argument of %qs intrinsic at %L must be a scalar"
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "đối số %qs của %qs intrinsict tại %L phải là tuyến tính"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr ""
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, gcc-internal-format, gfc-internal-format
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr ""
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr ""
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid NULL at %L"
 msgstr "NULL không hợp lệ %L"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr ""
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr "gfc_resolve_code(): Không có biểu thức trên DO WHILE"
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr ""
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_resolve_code(): Mã câu lệnh sai"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 #| msgid "Unused parameter %qs declared at %L"
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "Đối số chưa dùng %qs được khai báo tại %L"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr ""
@@ -82179,1006 +82227,1006 @@ msgstr ""
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "Chiều dài chuỗi tại %L là quá lớn"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr ""
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr ""
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr ""
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr ""
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr ""
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, gcc-internal-format
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr ""
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr ""
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr ""
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr ""
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
 msgstr "%s tại %L"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr ""
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "Hàm %qs tại %L không thể có bộ khởi tạo"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr ""
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr ""
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr ""
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr ""
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr ""
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr ""
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr ""
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr ""
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 #| msgid "Interface %qs at %L may not be a statement function"
 msgid "Interface of %qs at %L must be explicit"
 msgstr "Giao diện %qs tại %L không thể là hàm khai báo"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr ""
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr ""
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "Đối số của thủ tục FINAL tại %L phải là kiểu %qs"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr ""
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr ""
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr ""
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr ""
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr ""
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr ""
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr ""
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr ""
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "Đối số %qs của %qs với PASS(%s) tại %L phải là kiểu dẫn xuất %qs"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 #| msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "Đối số %qs của %qs với PASS(%s) tại %L phải là kiểu dẫn xuất %qs"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr ""
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr ""
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr ""
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr ""
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of %s at %L must be of length one"
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "Đối số của %s tại %L phải là của một độ dài"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr ""
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "Đối số %qs của %qs với PASS(%s) tại %L phải là dẫn xuất kiểu %qs"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "Đối số %qs của %qs với PASS(%s) tại %L phải là vô hướng"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr ""
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr ""
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr ""
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr ""
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr ""
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr ""
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr ""
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has not been declared"
 msgid "Derived type %qs at %L has not been declared"
 msgstr "%qE chưa được khai báo"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr ""
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr ""
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr ""
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr ""
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr ""
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr ""
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr ""
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr ""
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr ""
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr ""
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of %s at %L must be of length one"
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "Đối số của %s tại %L phải là của một độ dài"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr ""
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr ""
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr ""
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr ""
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr ""
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr ""
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 #| msgid "Namelist '%s' can not be an argument at %L"
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "Danh sách tên “%s” không thể là đối số tại %L"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expecting %s statement at %L"
 msgid "Expecting definable entity near %L"
 msgstr "Cần câu lệnh %s tại %L"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr ""
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr ""
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr ""
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr ""
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr ""
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr ""
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr ""
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr ""
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "Nhãn %d tại %L đã định nghĩa nhưng chưa được dùng"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr ""
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr ""
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr ""
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr ""
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr ""
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr ""
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "Chuỗi con tại %L có độ dài là không"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, gcc-internal-format
 msgid "Self reference in character length expression for %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr ""
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr ""
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr ""
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr ""
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr ""
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr ""
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr ""
@@ -83732,332 +83780,332 @@ msgstr ""
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr ""
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr ""
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "thuộc tính %s xung đột với thuộc tính %s trong %sq tại %L"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr ""
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr ""
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr ""
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr ""
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "thuộc tính %s được áp dụng cho %s %s tại %L"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "BIND(C) được áp dụng với %s %s tại %L"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr ""
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "thuộc tính %s xung đột với thuộc tính %s trong %sq tại %L"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr ""
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr ""
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "Trùng thuộc tính %s tại %L"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr ""
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, gcc-internal-format, gfc-internal-format
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "thuộc tính %s của %qs xung đột với thuộc tính %s tại %L"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr ""
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr ""
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr "BIND(C) tại %L"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr ""
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr "EXTENDS tại %L"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr ""
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr ""
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr ""
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr ""
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr ""
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "Thành phần “%qs” tại %C đã sẵn trong kiểu cha mẹ %L"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr ""
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr ""
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr ""
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, fuzzy, gcc-internal-format
 #| msgid "%qs at %C is not a member of the %qs structure"
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "%qs tại %C không phải là thành viên của cấu trúc %qs"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "%qs tại %C không phải là thành viên của cấu trúc %qs"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr ""
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr ""
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr ""
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr ""
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Labeled DO statement at %L"
 msgstr "Không cần câu lệnh END tại %C"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr ""
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr ""
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr ""
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr ""
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr ""
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr ""
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr ""
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr ""
@@ -84087,24 +84135,24 @@ msgstr ""
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr ""
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr ""
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr ""
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr ""
@@ -84291,37 +84339,37 @@ msgstr "Trả lại giá trị %sq của hàm %qs khai báo tại %L chưa đặ
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr "ISO C90 cấm mảng có kích thước biến đổi %qE"
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "Không hiểu intrinsic op"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr ""
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -84332,17 +84380,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr ""
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "The event variable at %L shall not be coindexed "
 msgid "The event variable at %L shall not be coindexed"
@@ -84491,7 +84539,7 @@ msgstr ""
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr ""
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr "gfc_trans_select(): Kiểu cho biểu thức case sai."
@@ -84873,6 +84921,11 @@ msgstr "biến %qD được định nghĩa lại là một hàm"
 msgid "function %qD redeclared as variable"
 msgstr "hàm %qD được định nghĩa lại thành một biến"
 
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "đã khai báo trước ở đây"
+
 #: lto/lto.cc:174
 #, fuzzy, gcc-internal-format
 #| msgid "lto_obj_file_open() failed"
@@ -86155,7 +86208,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr "%<-fobjc-sjlj-exceptions%> bị bỏ qua đối với %<-fgnu-runtime%>"
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr ""
@@ -86166,7 +86219,7 @@ msgstr ""
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr "%<-fobjc-sjlj-exceptions%> bị lờ đi cho %<-fnext-runtime%> khi %<-fobjc-abi-version%> >= 2"
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, fuzzy, gcc-internal-format
 #| msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> >= 2"
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
@@ -87248,10 +87301,6 @@ msgstr ""
 #~ msgid "argument 2 must be 0 or 1"
 #~ msgstr "đối số 2 phải là 0 hay 1"
 
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#~ msgid "Builtin function %s requires the -mcpu=power9 and -m64 options"
-#~ msgstr "-mtoc-fusion cần -mpower8-fusion"
-
 #, gcc-internal-format
 #~ msgid "AltiVec and SPE instructions cannot coexist"
 #~ msgstr "Các chỉ lệnh AltiVec và SPE không thể cùng tồn tại"
diff --git a/gcc/po/zh_CN.po b/gcc/po/zh_CN.po
index 7415bee6315..133c36a8ec4 100644
--- a/gcc/po/zh_CN.po
+++ b/gcc/po/zh_CN.po
@@ -32,10 +32,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gcc 14.1-b20240218\n"
+"Project-Id-Version: gcc 14.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
-"PO-Revision-Date: 2024-02-24 14:20-0500\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
+"PO-Revision-Date: 2024-08-02 12:22-0400\n"
 "Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
@@ -44,7 +44,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 3.4.2\n"
+"X-Generator: Poedit 3.4.4\n"
 
 #: cif-code.def:39
 msgid "function not considered for inlining"
@@ -418,7 +418,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "请勿同时指定 -march=... 和 -mcpu=..."
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared 和 mdll 互不兼容"
 
@@ -1281,10 +1281,9 @@ msgid "Conform to the ISO Fortran 2018 standard."
 msgstr "遵循 ISO Fortran 2008 标准。"
 
 #: fortran/lang.opt:896
-#, fuzzy, no-c-format
-#| msgid "Conform to the ISO Fortran 2003 standard."
+#, no-c-format
 msgid "Conform to the ISO Fortran 2023 standard."
-msgstr "遵循 ISO Fortran 2003 标准。"
+msgstr "遵循 ISO Fortran 2023 标准。"
 
 #: fortran/lang.opt:900
 #, no-c-format
@@ -1573,10 +1572,9 @@ msgid "Enable most warning messages."
 msgstr "启用大部分警告信息。"
 
 #: c-family/c.opt:336
-#, fuzzy, no-c-format
-#| msgid "Warn about misuses of pragmas"
+#, no-c-format
 msgid "Warn on any use of alloca."
-msgstr "对错误使用的 pragma 加以警告"
+msgstr "对任何使用 alloca 的情况给出警告。"
 
 #: c-family/c.opt:340
 #, no-c-format
@@ -1650,14 +1648,14 @@ msgid "Warn about boolean expression compared with an integer value different fr
 msgstr ""
 
 #: c-family/c.opt:426
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Warn about certain operations on boolean expressions."
-msgstr "对被截断的字符表达式给出警告"
+msgstr "对在布尔表达式上的特定操作给出警告。"
 
 #: c-family/c.opt:430
 #, no-c-format
 msgid "Warn when a built-in function is declared with the wrong signature."
-msgstr "当内奸函数使用了错误的签名被声明时给出警告。"
+msgstr "当内建函数使用了错误的签名被声明时给出警告。"
 
 #: c-family/c.opt:434
 #, no-c-format
@@ -1665,16 +1663,14 @@ msgid "Warn when a built-in preprocessor macro is undefined or redefined."
 msgstr "当内建预处理宏未定义或重定义时给出警告。"
 
 #: c-family/c.opt:438
-#, fuzzy, no-c-format
-#| msgid "Warn about features not present in ISO C11, but present in ISO C2X."
+#, no-c-format
 msgid "Warn about features not present in ISO C11, but present in ISO C23."
-msgstr "对 ISO C11 中不存在但 ISO C2X 中存在的特性给出警告。"
+msgstr "对 ISO C11 中不存在但 ISO C23 中存在的特性给出警告。"
 
 #: c-family/c.opt:442
-#, fuzzy, no-c-format
-#| msgid "Deprecated in favor of -std=c11."
+#, no-c-format
 msgid "Deprecated in favor of -Wc11-c23-compat."
-msgstr "已弃用，请改用 -std=c11。"
+msgstr "已弃用，请改用 -Wc11-c23-compat。"
 
 #: c-family/c.opt:446
 #, no-c-format
@@ -1929,10 +1925,9 @@ msgid "Warn if type qualifiers on pointers are discarded."
 msgstr "当改变成员函数指针的类型时给出警告"
 
 #: c-family/c.opt:663
-#, fuzzy, no-c-format
-#| msgid "Warn about compile-time integer division by zero"
+#, no-c-format
 msgid "Warn about compile-time integer division by zero."
-msgstr "对编译时发现的零除给出警告"
+msgstr "对编译时发现的零除给出警告。"
 
 #: c-family/c.opt:667
 #, no-c-format
@@ -1957,10 +1952,9 @@ msgid "Warn about duplicated conditions in an if-else-if chain."
 msgstr ""
 
 #: c-family/c.opt:683
-#, fuzzy, no-c-format
-#| msgid "Warn about violations of Effective C++ style rules"
+#, no-c-format
 msgid "Warn about violations of Effective C++ style rules."
-msgstr "对不遵循《Effetive C++》的风格给出警告"
+msgstr "对不遵循《Effetive C++》的风格给出警告。"
 
 #: c-family/c.opt:687
 #, no-c-format
@@ -1980,22 +1974,19 @@ msgid "Warn about stray tokens after #else and #endif."
 msgstr "当 #elif 和 #endif 后面跟有其他标识符时给出警告"
 
 #: c-family/c.opt:699
-#, fuzzy, no-c-format
-#| msgid "Warn about comparison of different enum types"
+#, no-c-format
 msgid "Warn about comparison of different enum types."
-msgstr "对不同枚举类型之间的比较给出警告"
+msgstr "对不同枚举类型之间的比较给出警告。"
 
 #: c-family/c.opt:703
-#, fuzzy, no-c-format
-#| msgid "Warn about most implicit conversions"
+#, no-c-format
 msgid "Warn about implicit conversion of enum types."
-msgstr "对大多数隐式类型转换给出警告"
+msgstr "对枚举类型的隐式转换给出警告。"
 
 #: c-family/c.opt:707
-#, fuzzy, no-c-format
-#| msgid "Warn about subscripts whose type is \"char\""
+#, no-c-format
 msgid "Warn about enum/integer type mismatches."
-msgstr "当下标类型为“char”时给出警告"
+msgstr "对枚举/整型的类型不匹配给出警告。"
 
 #: c-family/c.opt:715
 #, no-c-format
@@ -3910,7 +3901,7 @@ msgstr "已弃用，请改用 -std=gnu11。"
 #: c-family/c.opt:2602 c-family/c.opt:2606
 #, no-c-format
 msgid "Conform to the ISO 2017 C standard (published in 2018) with GNU extensions."
-msgstr "遵循 ISO 2017 C 标准（发布于2018年），也支持 GNU 扩展"
+msgstr "遵循 ISO 2017 C 标准（发布于2018年），也支持 GNU 扩展。"
 
 #: c-family/c.opt:2610
 #, fuzzy, no-c-format
@@ -4088,7 +4079,7 @@ msgstr ""
 #: d/lang.opt:256
 #, no-c-format
 msgid "Compile in debug code."
-msgstr "生成大端序模式的代码"
+msgstr "编译为调试代码。"
 
 #: d/lang.opt:260
 #, no-c-format
@@ -8473,7 +8464,7 @@ msgstr "支持 AMX-TILE 内建函数及代码生成。"
 #: config/i386/i386.opt:1206
 #, no-c-format
 msgid "Support AMX-INT8 built-in functions and code generation."
-msgstr "支持 AMX-INT8 内建函数及代码生成"
+msgstr "支持 AMX-INT8 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1210
 #, no-c-format
@@ -8712,9 +8703,9 @@ msgid "Use ldcw/ldcd coherent cache-control hint."
 msgstr ""
 
 #: config/pa/pa.opt:58
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Disable FP regs.  Equivalent to -msoft-float."
-msgstr "打开本地回应"
+msgstr "禁用浮点寄存器。等效于 -msoft-float。"
 
 #: config/pa/pa.opt:62
 #, fuzzy, no-c-format
@@ -8902,9 +8893,9 @@ msgid "Enable relaxing in the assembler."
 msgstr "启用链接器松弛"
 
 #: config/v850/v850.opt:139
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Prohibit PC relative jumps."
-msgstr "禁止相对 PC 的函数调用"
+msgstr "禁止相对 PC 的跳转。"
 
 #: config/v850/v850.opt:143
 #, fuzzy, no-c-format
@@ -8917,9 +8908,9 @@ msgid "Allow the use of hardware floating point instructions for V850E2V3 and up
 msgstr "允许使用硬件浮点 ABI 和指令"
 
 #: config/v850/v850.opt:151
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Enable support for the RH850 ABI.  This is the default."
-msgstr "启用使用 RX FPU 指令。这是默认值。"
+msgstr "启用对 RH850 ABI 的支持。这是默认值。"
 
 #: config/v850/v850.opt:155
 #, no-c-format
@@ -9330,10 +9321,9 @@ msgid "Maintain backchain pointer."
 msgstr "维护链回上层栈帧的指针"
 
 #: config/s390/s390.opt:133
-#, fuzzy, no-c-format
-#| msgid "Additional debug prints"
+#, no-c-format
 msgid "Additional debug prints."
-msgstr "附加的调试输出"
+msgstr "额外的调试输出。"
 
 #: config/s390/s390.opt:137
 #, fuzzy, no-c-format
@@ -9405,7 +9395,7 @@ msgstr "在函数前言中生成额外代码以捕获堆栈大小越限"
 #: config/s390/s390.opt:199
 #, no-c-format
 msgid "Switches off the -mstack-size= option."
-msgstr ""
+msgstr "关闭 -mstack-size= 选项。"
 
 #: config/s390/s390.opt:207
 #, fuzzy, no-c-format
@@ -9532,22 +9522,19 @@ msgid "Selects the type of RL78 core being targeted (g10/g13/g14).  The default
 msgstr ""
 
 #: config/rl78/rl78.opt:77
-#, fuzzy, no-c-format
-#| msgid "Alias for --help=target"
+#, no-c-format
 msgid "Alias for -mcpu=g10."
-msgstr "--help=target 的别名"
+msgstr "-mcpu=g10 的别名。"
 
 #: config/rl78/rl78.opt:81
-#, fuzzy, no-c-format
-#| msgid "Alias for --help=target"
+#, no-c-format
 msgid "Alias for -mcpu=g13."
-msgstr "--help=target 的别名"
+msgstr "-mcpu=g13 的别名。"
 
 #: config/rl78/rl78.opt:85 config/rl78/rl78.opt:89
-#, fuzzy, no-c-format
-#| msgid "Alias for --help=target"
+#, no-c-format
 msgid "Alias for -mcpu=g14."
-msgstr "--help=target 的别名"
+msgstr "-mcpu=g14 的别名。"
 
 #: config/rl78/rl78.opt:93
 #, no-c-format
@@ -9808,10 +9795,9 @@ msgid "Enable unaligned word and halfword accesses to packed data."
 msgstr "启用 unaligned 字词和 halfword 访问到包装的数据。"
 
 #: config/arm/arm.opt:309
-#, fuzzy, no-c-format
-#| msgid "This switch is deprecated; use -Wextra instead"
+#, no-c-format
 msgid "This option is deprecated and has no effect."
-msgstr "已弃用此开关；请改用 -Wextra"
+msgstr "该选项已被弃用，且无任何效果。"
 
 #: config/arm/arm.opt:313
 #, no-c-format
@@ -9857,15 +9843,14 @@ msgstr ""
 
 #: config/sparc/sparc.opt:30 config/sparc/sparc.opt:34
 #: config/visium/visium.opt:37
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Use hardware FP."
 msgstr "使用硬件浮点单元。"
 
 #: config/sparc/sparc.opt:38 config/visium/visium.opt:41
-#, fuzzy, no-c-format
-#| msgid "Do not use hardware FP"
+#, no-c-format
 msgid "Do not use hardware FP."
-msgstr "不使用硬件浮点单元"
+msgstr "不使用硬件浮点单元。"
 
 #: config/sparc/sparc.opt:42
 #, fuzzy, no-c-format
@@ -10757,10 +10742,9 @@ msgid "Emit .gnu_attribute tags."
 msgstr ""
 
 #: config/alpha/alpha.opt:27
-#, fuzzy, no-c-format
-#| msgid "Use fp registers"
+#, no-c-format
 msgid "Use fp registers."
-msgstr "使用浮点寄存器"
+msgstr "使用浮点寄存器。"
 
 #: config/alpha/alpha.opt:35
 #, fuzzy, no-c-format
@@ -10781,16 +10765,14 @@ msgid "Do not emit complex integer constants to read-only memory."
 msgstr "不将复整常数存至只读内存"
 
 #: config/alpha/alpha.opt:50
-#, fuzzy, no-c-format
-#| msgid "Use VAX fp"
+#, no-c-format
 msgid "Use VAX fp."
-msgstr "使用 VAX 浮点单元"
+msgstr "使用 VAX 浮点单元。"
 
 #: config/alpha/alpha.opt:54
-#, fuzzy, no-c-format
-#| msgid "Do not use VAX fp"
+#, no-c-format
 msgid "Do not use VAX fp."
-msgstr "不使用 VAX 浮点单元"
+msgstr "不使用 VAX 浮点单元。"
 
 #: config/alpha/alpha.opt:58
 #, fuzzy, no-c-format
@@ -10913,20 +10895,19 @@ msgid "Enable sign extend instructions."
 msgstr "启用符号扩展指令"
 
 #: config/lm32/lm32.opt:40
-#, fuzzy, no-c-format
-#| msgid "Enable user-defined instructions"
+#, no-c-format
 msgid "Enable user-defined instructions."
-msgstr "启用用户自定义指令"
+msgstr "启用用户自定义指令。"
 
 #: config/loongarch/loongarch.opt:41
 #, no-c-format
 msgid "Basic ISAs of LoongArch:"
-msgstr ""
+msgstr "LoongArch 的基本 ISA："
 
 #: config/loongarch/loongarch.opt:49
 #, no-c-format
 msgid "FPU types of LoongArch:"
-msgstr "LoongArch 的 FPU 类型。"
+msgstr "LoongArch 的 FPU 类型："
 
 #: config/loongarch/loongarch.opt:62
 #, fuzzy, no-c-format
@@ -11263,14 +11244,14 @@ msgid "Valid options for GP-relative addressing (for -mgpopt):"
 msgstr ""
 
 #: config/nios2/nios2.opt:86
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Equivalent to -mgpopt=local."
-msgstr "打开本地回应"
+msgstr "等效于 -mgpopt=local。"
 
 #: config/nios2/nios2.opt:90
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Equivalent to -mgpopt=none."
-msgstr "NONE (无)"
+msgstr "等效于 -mgpopt=none。"
 
 #: config/nios2/nios2.opt:94 config/c6x/c6x.opt:30 config/mips/mips.opt:134
 #, no-c-format
@@ -20771,18 +20752,18 @@ msgstr "无法识别的指令："
 msgid "insn does not satisfy its constraints:"
 msgstr "指令不满足其约束："
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "创建和使用时使用了不同的‘%s’设定"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 #, fuzzy
 #| msgid "created and used with different settings of -fpic"
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "创建和使用时使用了不同的 -fpic 设定"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 #, fuzzy
 #| msgid "created and used with different settings of -fpie"
 msgid "created and used with different settings of %<-fpie%>"
@@ -21105,7 +21086,7 @@ msgstr "strfmon 格式的长度修饰符"
 msgid "<command-line>"
 msgstr "<命令行>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "代码‘%c’的操作数无效"
@@ -21124,9 +21105,9 @@ msgstr "无效的操作数代码‘%c’"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 msgid "invalid vector constant"
 msgstr "%<#pragma pack%>中有无效常量 - 已忽略"
@@ -21146,7 +21127,7 @@ msgstr "无效的操作数代码‘%c’"
 msgid "incompatible register operand for '%%%c'"
 msgstr "无效的操作数代码‘%c’"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "缺少操作数"
@@ -21178,93 +21159,93 @@ msgstr "无效寻址模式"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "二元操作中中操作数无效"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "使用‘%%&’ 时没有指定任何动态 TLS 引用"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "无效 %%J 值"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "无效 %%r 值"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "无效 %%R 值"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "无效 %%N 值"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "无效 %%P 值"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "无效 %%h 值"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "无效 %%L 值"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "无效 %%m 值"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "无效 %%M 值"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "无效 %%U 值"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "无效 %%s 值"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "无效 %%C 值"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "无效 %%E 值"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "未指定未知的重定位方式"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "无效的 %%xn 代码"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, fuzzy, c-format
 msgid "invalid operand address"
 msgstr "fr30_print_operand：未处理的指针"
@@ -21361,35 +21342,35 @@ msgstr "无效的 UNSPEC 用作操作数"
 msgid "unrecognized supposed constant"
 msgstr "预期的常量无法识别"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, c-format
 msgid "invalid shift operand"
 msgstr "无效的移位操作数"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "预测到的 Thumb 指令"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "在条件序列中预测到的指令"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, fuzzy, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "代码‘%c’的操作数无效"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -21397,130 +21378,130 @@ msgstr "代码‘%c’的操作数无效"
 msgid "invalid operand for code '%c'"
 msgstr "代码‘%c’的操作数无效"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, c-format
 msgid "instruction never executed"
 msgstr "指令从不被执行"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, fuzzy, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "不受支持的算符用于编码‘%c’"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "从%<__fpreg%>的转换无效"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "到类型%qT的转换无效，从类型%qT"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "地址操作数需要 X、Y 或 Z 寄存器约束"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 #, fuzzy
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "输出操作数 %d 必须使用%<&%>约束"
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 #, fuzzy
 msgid "bad address, not an I/O address:"
 msgstr ""
 "\n"
 "错误：不当的地址在 From: 标头内。\n"
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 #, fuzzy
 msgid "bad address, not a constant:"
 msgstr "地址偏移量不是一个常量"
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "地址错误，不是(reg+disp)："
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "错误的地址，不是 post_inc 或 pre_dec："
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "编译器内部错误。错误的地址："
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, fuzzy, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr "C++ 不支持定点类型"
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "编译器内部错误。未知的模式："
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "无效指令："
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "错误指令："
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "无效的 move 指令："
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 #, fuzzy
 msgid "bad shift insn:"
 msgstr "错误的 shift 指令:"
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "编译器内部错误。不正确的移位量："
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 #, fuzzy
 msgid "unsupported fixed-point conversion"
 msgstr "整点转换中类型无效"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr "变量"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 #, fuzzy
 #| msgid "redefinition of parameter %q+D"
 msgid "function parameter"
 msgstr "形参%q+D重定义"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 #, fuzzy
 #| msgid "struct defined here"
 msgid "structure field"
 msgstr "结构在此定义"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 #, fuzzy
 #| msgid "creating array of functions"
 msgid "return type of function"
 msgstr "创建函数的数组"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr "指针"
 
@@ -21558,7 +21539,7 @@ msgstr "非预期的操作数"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -21884,55 +21865,55 @@ msgstr "操作数不是一个条件码，无效的操作数代码‘Y’"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "操作数不是一个条件码，无效的操作数代码‘Y’"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "无效的操作数代码‘%c’"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "操作数的约束无效"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 #| msgid "invalid controlling predicate"
 msgid "invalid vector immediate"
 msgstr "无效的控制谓词"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "未知的指令模式"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "从%<__fpreg%>的转换无效"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "从%<__fpreg%>的转换无效"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "到类型%qT的转换无效，从类型%qT"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 #| msgid "invalid conversion to type %qT from type %qT"
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "到类型%qT的转换无效，从类型%qT"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -21963,7 +21944,7 @@ msgstr "对%<__fpreg%>的操作无效"
 msgid "invalid %%P operand"
 msgstr "无效的 %%P 操作数"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "无效的 %%p 值"
@@ -21990,29 +21971,29 @@ msgstr "不能使用非 GP 相对的绝对地址"
 msgid "invalid addressing mode"
 msgstr "无效寻址模式"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "‘%%%c’不是一个有效的操作数前缀"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, c-format
 msgid "invalid use of '%%%c'"
 msgstr "对‘%%%c’的使用无效"
@@ -22044,7 +22025,7 @@ msgid "post-increment address is not a register"
 msgstr "后自增地址不是一个寄存器"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "错误地址"
 
@@ -22207,7 +22188,7 @@ msgstr "不支持的组合：%s"
 msgid "unsupported memory expression:"
 msgstr "整点转换中类型无效"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 msgid "invalid vector operand"
 msgstr "%%R 的操作数无效"
@@ -22268,260 +22249,260 @@ msgstr "-mquad-memory 需要 64 位模式"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "生成小端在前的代码"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 msgid "bad move"
 msgstr "错误的移动"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%A value"
 msgstr "无效 %%J 值"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "无效的 %%D 值"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, c-format
 msgid "invalid %%e value"
 msgstr "无效 %%e 值"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "无效 %%f 值"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "无效 %%F 值"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "无效 %%G 值"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "无效 %%j 代码"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "无效 %%J 代码"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "无效 %%k 值"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "无效 %%K 值"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "无效 %%O 值"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "无效 %%q 值"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, c-format
 msgid "invalid %%t value"
 msgstr "无效 %%t 值"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "无效 %%T 值"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "无效 %%u 值"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "无效 %%v 值"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, c-format
 msgid "invalid %%V value"
 msgstr "无效 %%V 值"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "无效 %%x 值"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, c-format
 msgid "invalid %%z value"
 msgstr "无效 %%z 值"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "无效 %%y 值，请试用“Z”约束"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 #, fuzzy
 #| msgid "Use decimal floating point instructions"
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "使用十进制浮点指令"
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "传递 AltiVec 参数给无原型的函数"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 #, fuzzy
 msgid "Could not generate addis value for fusion"
 msgstr "不为每个函数生成单一的退出点"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 #, fuzzy
 msgid "Unable to generate load/store offset for fusion"
 msgstr "无法生成重新载入，为："
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "从%<__fpreg%>的转换无效"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "向%<__fpreg%>的转换无效"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "从%<__fpreg%>的转换无效"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "向%<__fpreg%>的转换无效"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, fuzzy, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr "符号内存参考是只有支持的于 z10 或稍后"
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "无法分解地址"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, fuzzy, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "‘b’修饰符的操作数无效"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, fuzzy, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "‘b’修饰符的操作数无效"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, fuzzy, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "‘o’修饰符的操作数无效"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, fuzzy, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "‘b’修饰符的操作数无效"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, fuzzy, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "内存参考预期的用于‘S’输出修饰键"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, fuzzy, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "%s：无效的输出格式"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, fuzzy, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "暂存器或内存运算式预期的用于‘N’输出修饰键"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, fuzzy, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "暂存器或内存运算式预期的用于‘公尺’输出修饰键"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, fuzzy, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "CHARACTER 常量的种别 %d 无效，在%C处"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, fuzzy, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "无效的操作数输出代码"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, fuzzy, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "CHARACTER 常量的种别 %d 无效，在%C处"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, fuzzy, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "无效的最小左值表达式"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, fuzzy, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "C++ 不允许在%qs表达式中定义类型"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "vector argument passed to unprototyped function"
 msgstr "传递 AltiVec 参数给无原型的函数"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 #, fuzzy
 #| msgid "pointer targets in return differ in signedness"
 msgid "types differ in signedness"
 msgstr "返回指针时目标与指针符号不一致"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 #, fuzzy
 msgid "binary operator does not support vector bool operand"
 msgstr "目标格式不支持无限大浮点数"
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -22703,7 +22684,7 @@ msgstr "或称"
 
 #: c/c-objc-common.cc:360
 msgid "({anonymous})"
-msgstr "({匿名})"
+msgstr ""
 
 #. If we have
 #. declaration-specifiers declarator decl-specs
@@ -22721,12 +22702,12 @@ msgstr "({匿名})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "需要%<;%>"
@@ -22739,7 +22720,7 @@ msgstr "需要%<;%>"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -22748,7 +22729,7 @@ msgstr "需要%<;%>"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "需要%<)%>"
@@ -22756,7 +22737,7 @@ msgstr "需要%<)%>"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "需要%<]%>"
@@ -22767,29 +22748,29 @@ msgstr "需要 %<;%>、%<,%> 或 %<)%>"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "需要%<(%>"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "需要%<[%>"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "需要%<{%>"
@@ -22799,17 +22780,17 @@ msgstr "需要%<{%>"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "需要 %<:%>"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "需要 %<while%>"
@@ -22818,8 +22799,8 @@ msgstr "需要 %<while%>"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "需要 %<,%>"
@@ -22829,17 +22810,17 @@ msgid "expected %<.%>"
 msgstr "需要%<.%>"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "需要 %<@end%>"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "需要 %<>%>"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "需要 %<,%> 或 %<)%>"
@@ -22847,33 +22828,33 @@ msgstr "需要 %<,%> 或 %<)%>"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "需要%<=%>"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "需要 %<}%>"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "expected %<else%>"
 msgstr "需要%<delete%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "需要%<#pragma omp section%>或%<}%>"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -22881,7 +22862,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "(匿名)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "需要%<<%>"
@@ -22897,22 +22878,22 @@ msgstr "需要通道"
 msgid "candidate:"
 msgstr "备选："
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 #| msgid "Enable user-defined instructions"
 msgid "  after user-defined conversion:"
 msgstr "启用用户自定义指令"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "备选是："
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "备选 1："
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "备选 2："
 
@@ -22977,7 +22958,7 @@ msgstr "<返回值> "
 
 #: cp/error.cc:1350
 msgid "{anonymous}"
-msgstr "{匿名}"
+msgstr ""
 
 #: cp/error.cc:1352
 #, fuzzy
@@ -23177,7 +23158,7 @@ msgstr "%s:%d:%d：在%qs的广义常表达式扩展中"
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr "%s:%d：在%qs的广义常表达式扩展中"
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "备选为："
 
@@ -23221,48 +23202,48 @@ msgstr "转换丢失了常量属性"
 msgid "source type is not polymorphic"
 msgstr "源类型不是多态的"
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "单目减的操作数类型错误"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "单目加的操作数类型错误"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "按位取反的参数类型错误"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "不能对该类型的参数求绝对值"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "不能对该类型的参数求共轭"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 msgid "in argument to unary !"
 msgstr "单目 ! 的参数中"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 msgid "no pre-increment operator for type"
 msgstr "类型没有前自增运算符"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 msgid "no post-increment operator for type"
 msgstr "类型没有后自增运算符"
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 msgid "no pre-decrement operator for type"
 msgstr "类型没有前自减运算符"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 msgid "no post-decrement operator for type"
 msgstr "类型没有后自减运算符"
 
@@ -23348,7 +23329,7 @@ msgstr "对声明中的过时用法给出警告"
 msgid "Deleted feature:"
 msgstr "删除的特性："
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 msgid "array assignment"
 msgstr "数组赋值"
 
@@ -23547,11 +23528,11 @@ msgstr "块 IF"
 msgid "implied END DO"
 msgstr "暗示的 END DO"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "赋值"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "指针赋值"
 
@@ -23735,53 +23716,53 @@ msgstr "用户运算符‘%s’(位于 %%L)的操作数为 %s"
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "用户运算符‘%s’(位于 %%L)的操作数为 %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 msgid "Loop variable"
 msgstr "循环变量"
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 #, fuzzy
 msgid "iterator variable"
 msgstr "变量"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 msgid "Start expression in DO loop"
 msgstr "DO 循环中的开始表达式"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 msgid "End expression in DO loop"
 msgstr "DO 循环中结束表达式"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 msgid "Step expression in DO loop"
 msgstr "DO 循环中的步进表达式"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 #, fuzzy
 msgid "DEALLOCATE object"
 msgstr "试图 DEALLOCATE 未分配的‘%s’"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 #, fuzzy
 msgid "ALLOCATE object"
 msgstr "%L处的源表达式和%L处的分配对象必须有相同的外形"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 #, fuzzy
 msgid "STAT variable"
 msgstr "%1$L处的统计变量不能在同一个 %3$s 语句中被 %2$s"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 #, fuzzy
 msgid "ERRMSG variable"
 msgstr "%1$L处的错误信息变量不能在同一 %3$s 语句中被 %2$s"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 #, fuzzy
 msgid "item in READ"
 msgstr "读取概要："
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 #, fuzzy
 msgid "ACQUIRED_LOCK variable"
 msgstr "无法锁定新归档文件"
@@ -23791,12 +23772,12 @@ msgstr "无法锁定新归档文件"
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "数组构造函数中 CHARACTER 长度不同(%ld/%ld)"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 #, fuzzy
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr "试图分配负数大小的内存。可能有整数溢出"
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -23811,12 +23792,12 @@ msgstr "字符串的实际长度不匹配其虚参声明‘%s’(%ld/%ld)"
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "字符串的实际长度短于其虚参声明‘%s’(%ld/%ld)"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, fuzzy, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr "目标的分级重新映射太小 (%ld<%ld)"
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr ""
 
@@ -23825,83 +23806,83 @@ msgstr ""
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr "%3$s 中字符长度不相等 (%1$ld/%2$ld)"
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "‘a%d’和‘a%d’用作内建函数‘%s’的参数"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, fuzzy, c-format
 #| msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "‘a%d’和‘a%d’用作内建函数‘%s’的参数"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, fuzzy, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "内建函数 REPEAT 的 NCOPIES 参数为负(其值是 %lld)"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "内建函数 REPEAT 的 NCOPIES 参数太大"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -23923,15 +23904,15 @@ msgstr "赋值标号不是目标标号"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr "无效的影像号码 %d 在中同步影像"
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr "循环无限次迭代"
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 msgid "Loop variable has been modified"
 msgstr "循环变量已被修改"
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 msgid "DO step value is zero"
 msgstr "DO 步进值为零"
 
@@ -24014,7 +23995,7 @@ msgid "expected boolean type"
 msgstr "需要布尔类型"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, gcc-internal-format
 msgid "expected integer"
 msgstr "需要整数"
@@ -24083,7 +24064,7 @@ msgstr "实参太少"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, gcc-internal-format
 msgid "too many arguments"
 msgstr "实参太多"
@@ -24779,7 +24760,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "-mrelax 只在 RTP PIC 上受支持"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "%s 语句在%C处语法错误"
@@ -25231,8 +25212,8 @@ msgstr "%qE属性与 %s 属性冲突"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 msgid "previous declaration here"
 msgstr "%q+T先前在此处有过声明"
@@ -25249,7 +25230,7 @@ msgstr "%qE属性指定被忽略"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "%qE属性指定被忽略"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "为%qE属性给定的实参数目错误"
@@ -25260,7 +25241,7 @@ msgstr "为%qE属性给定的实参数目错误"
 msgid "expected %i or more, found %i"
 msgstr "需要%<(%>或行尾"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "expected %<(%> or end of line"
 msgid "expected %i, found %i"
@@ -25328,12 +25309,12 @@ msgstr "类型属性在定义后被忽略"
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -25342,7 +25323,7 @@ msgstr "类型属性在定义后被忽略"
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -25365,8 +25346,8 @@ msgstr "%qE属性被忽略"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr "%qE不兼容的属性已被忽略"
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, fuzzy, gcc-internal-format
 msgid "previous declaration of %qD"
 msgstr "%qD先前没有声明"
@@ -25476,7 +25457,7 @@ msgstr "无法从 “%s” 中读取 LTO decls"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "偏移量越过字符串常量界"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared here"
 msgid "%qE declared here"
@@ -25587,7 +25568,7 @@ msgstr "%qs缺少参数"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 #| msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>"
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
@@ -25611,45 +25592,45 @@ msgstr "%<__builtin_longjmp%>的第二个实参必须是 1"
 msgid "target format does not support infinity"
 msgstr "目标格式不支持无限大浮点数"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 #| msgid "%<va_start%> used in function with fixed args"
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "在定参数的函数中使用了%<va_start%>"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "给函数%<va_start%>的参数数目不对"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "调用%<__builtin_next_arg%>时没有给定实参"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "给函数%<__builtin_next_arg%>的参数数目不对"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "%<va_start%>的第二个参数不是最后一个有名参数"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, fuzzy, gcc-internal-format
 #| msgid "undefined behaviour when second parameter of %<va_start%> is declared with %<register%> storage"
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr "当%<va_start%>的第二个参数有%<register%>存储时行为未经定义"
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 #| msgid "%Kfirst argument of %D must be a pointer, second integer constant"
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "%K%D 的第一个实参必须是一个指针，第二个必须是整常量"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 #| msgid "%Klast argument of %D is not integer constant between 0 and 3"
 msgid "last argument of %qD is not integer constant between 0 and 3"
@@ -26716,12 +26697,12 @@ msgstr "%qE属性被忽略，因为%qT已被定义"
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F使用过但从未定义"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F声明为%<static%>却从未定义过"
@@ -27046,13 +27027,12 @@ msgstr "对 %%d、%%x 或 %%X 的使用无效"
 #: coverage.cc:283
 #, gcc-internal-format
 msgid "%qs has overflowed"
-msgstr "%qs溢出"
+msgstr "%qs 已溢出"
 
 #: coverage.cc:284
-#, fuzzy, gcc-internal-format
-#| msgid "%s:corrupted\n"
+#, gcc-internal-format
 msgid "%qs is corrupted"
-msgstr "%s：已损坏\n"
+msgstr "%qs 已损坏"
 
 #: coverage.cc:311
 #, gcc-internal-format
@@ -27151,10 +27131,9 @@ msgid "closed intervals"
 msgstr "括入并行"
 
 #: diagnostic.cc:2659
-#, fuzzy, gcc-internal-format
-#| msgid "debug: "
+#, gcc-internal-format
 msgid "debug path"
-msgstr "调试："
+msgstr "调试路径"
 
 #: dominance.cc:1180
 #, gcc-internal-format, gfc-internal-format
@@ -27293,7 +27272,7 @@ msgstr "region_array 不匹配 region_tree"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "lp_array 不匹配 region_tree"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, fuzzy, gcc-internal-format
 #| msgid "open %s failed: %s"
 msgid "%qs failed"
@@ -27325,19 +27304,19 @@ msgstr "生成用户模式的代码"
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 #| msgid "%Kcall to %qs declared with attribute error: %s"
 msgid "call to %qs declared with attribute error: %s"
 msgstr "%K调用%qs，声明有错误属性：%s"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 #| msgid "%Kcall to %qs declared with attribute warning: %s"
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "%K调用%qs，声明有警告属性：%s"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, fuzzy, gcc-internal-format
 #| msgid "assuming signed overflow does not occur when simplifying %<abs (X)%> to %<X%> or %<-X%>"
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
@@ -27374,7 +27353,7 @@ msgstr "大定点常量隐式截断为定点类型"
 msgid "comparison is always %d due to width of bit-field"
 msgstr "由于位段宽度所限，比较结果永远为 %d"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr "简化范围检查时假定有符号数从不溢出"
@@ -27554,7 +27533,7 @@ msgstr "无法获取进程时间"
 msgid "%s signal terminated program %s"
 msgstr "使用另一套寄存器名"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "此配置不支持命令行选项%qs"
@@ -27823,7 +27802,7 @@ msgstr "%C处类型指定无效"
 msgid "multilib exclusions %qs is invalid"
 msgstr "属性%qs的参数无效"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, fuzzy, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "属性%qs的参数无效"
@@ -28142,23 +28121,23 @@ msgstr ""
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member not at end of struct"
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "可变数组成员没有出现在结构的末尾"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr "堆栈限制在此目标机上不受支持"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SPE not supported in this target"
 msgid "%s not supported on this target"
@@ -28202,16 +28181,16 @@ msgid "function returns address of local variable"
 msgstr "函数返回局部变量的地址"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, gcc-internal-format
@@ -28223,358 +28202,358 @@ msgstr "在此声明"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, fuzzy, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr "%L处内建 REPEAT 的 NCOPIES 实参是负的"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "referenced argument declared here"
 msgstr "模板形参类型%qT声明为%<friend%>"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "%L处内建 REPEAT 的 NCOPIES 实参是负的"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, fuzzy, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr "停用回合 %s 用于函数在中范围的 [%u，%u]"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 #, fuzzy
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] "属性%qE的参数无效"
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 #| msgid "null pointer"
 msgid "null destination pointer"
 msgstr "空指针"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 #| msgid "%s in format string at %L"
 msgid "null format string"
@@ -29352,12 +29331,12 @@ msgstr "无效的指针模式%qs"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD在此声明"
@@ -30146,7 +30125,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<auto%>"
 msgid "invalid use of attribute %<fallthrough%>"
@@ -30486,18 +30465,18 @@ msgstr "%qE未声明(不在函数内)"
 msgid "mismatching definition"
 msgstr "定义缺失"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, fuzzy, gcc-internal-format
 #| msgid "invalid function in gimple call"
 msgid "invalid fnsummary in LTO stream"
 msgstr "gimple 调用中有非法函数"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, fuzzy, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr "ipa 内联概要缺少在中输入文件"
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, fuzzy, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr "ipa 内联概要缺少在中输入文件"
@@ -31611,75 +31590,75 @@ msgstr "写入 %s 时出错：%m"
 msgid "error closing optimization records %qs"
 msgstr "进行跨跳转优化"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 #| msgid "command line option %qs is not supported by this configuration"
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "此配置不支持命令行选项%qs"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "%qs缺少参数"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "“%s”的实参应该是一个非负整数"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "“%s”的实参应该是一个非负整数"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 #| msgid "-malign-functions=%d is not between 0 and %d"
 msgid "argument to %qs is not between %d and %d"
 msgstr "-malign-functions=%d 不在 0 和 %d 之间"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 msgid "invalid argument in option %qs"
 msgstr "%<...%>作为实参。)"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, fuzzy, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "-mcorea 和 -mcoreb 不能一起使用"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, fuzzy, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "memusage：无法识别的选项“$1”"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "%qs对%qs而言无效"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "%qs对%qs而言无效"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "开关%qs不再被支持"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 #| msgid "argument to %qE attribute larger than %d"
 msgid "argument to %qs is bigger than %d"
 msgstr "%qE属性的实参大于 %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, fuzzy, gcc-internal-format
 #| msgid "malformed COLLECT_GCC_OPTIONS"
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
@@ -31757,8 +31736,8 @@ msgstr "“%s”的实参应该是一个非负整数"
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, fuzzy, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "%qs必须与%qs一起使用"
@@ -32530,7 +32509,7 @@ msgstr "全局寄存器变量出现在函数定义后"
 msgid "register of %qD used for multiple global register variables"
 msgstr "嵌套函数中使用了全局寄存器变量%qD"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, fuzzy, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "%qD与已用的函数冲突"
@@ -32992,44 +32971,44 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "__builtin_saveregs 不为此目标所支持"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "堆栈限制在此目标机上不受支持"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "嵌套函数在此目标机上不受支持"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "嵌套函数蹦床在此目标机上不受支持"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "全局构造函数在此目标机上不受支持"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "全局析构函数在此目标机上不受支持"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "target 属性在此目标机上不受支持"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute is not supported on this machine"
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "target 属性在此目标机上不受支持"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC target is not supported for this machine"
 msgid "%<#pragma GCC target%> is not supported for this machine"
@@ -34200,85 +34179,85 @@ msgstr "基本块 %i 有不正确的边"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "基本块 %i 有不正确的下落边"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "函数%q+F无法被复制，因为它接受了非局部的 goto"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "函数%q+F无法被复制，因为它在一个静态变量中保存了局部标号的地址"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "函数%q+F无法被内联，因为它使用了 alloca (使用 always_inline 属性强制内联)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "函数%q+F无法被内联，因为它使用了 setjmp"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "函数%q+F无法被内联，因为它使用了变长实参表"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "函数%q+F无法被内联，因为它使用了 setjmp-longjmp 异常处理"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "函数%q+F无法被内联，因为使用了非局部的 goto"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "函数%q+F无法被内联，因为使用了 __builtin_return 或 __builtin_apply_args"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "函数%q+F无法被内联，因为包含一个计算转移"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "函数%q+F无法被内联，因为它使用了变长实参表"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "函数%q+F无法被内联，因为使用了 -fno-inline"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "函数%q+F无法被内联，因为它使用了与内联冲突的属性"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "调用%q+F时内联失败：%s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "从此处调用"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 msgid "called from this function"
 msgstr "内部函数"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "调用%q+F时内联失败：%s"
@@ -34336,28 +34315,28 @@ msgstr "属性%qs的元素类型无效"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "错误地使用了%<auto%>"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "in a call to non-static member function %qD"
 msgstr "对非静态成员函数%qD的使用无效"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "内建函数实参无效"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "内联函数%q+D声明过但从未定义"
@@ -34561,7 +34540,7 @@ msgstr "%qE未经初始化"
 msgid "%qs may be used uninitialized"
 msgstr "此函数中的%qD在使用前可能未初始化"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD在此声明"
@@ -34799,7 +34778,7 @@ msgstr "矢量作业将被展开 piecewise"
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr "矢量随机播放作业将被展开 piecewise"
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -34814,130 +34793,130 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "函数数组是没有意义的"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "函数不能返回函数"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "树检查：%s，得到 %s 在 %s，于 %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "树检查：不需要 %s，得到 %s 在 %s，于 %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "树检查：需要类%qs，得到%qs(%s) 在 %s，于 %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "树检查：不需要类%qs，得到%qs(%s) 在 %s，于 %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d"
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "树检查：需要 omp_clause %s，得到 %s 在 %s，于 %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "树检查：需要包含%qs结构的树，得到%qs在 %s，于 %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "树检查：访问了 %3$s 中有 %2$d 个 elt  的 tree_vec 的 elt %1$d，于 %4$s:%5$d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "树检查：访问了 %3$s 中有 %2$d 个 elt  的 tree_vec 的 elt %1$d，于 %4$s:%5$d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "树检查：在 %4$s 中访问有 %3$d 个操作数的 %2$s 的第 %1$d 个操作数，于 %5$s:%6$d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 #| msgid "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at %s:%d"
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "树检查：在 %4$s 中访问有 %3$d 个操作数的 omp_clause %2$s 的第 %1$d 个操作数，于 %5$s:%6$d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, fuzzy, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "已弃用%qE：%s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, fuzzy, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "已弃用%qE"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "已弃用%qE：%s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "已弃用%qE"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "已弃用类型：%s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "已弃用此类型"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable: %s"
 msgstr "%qD不是一个变量"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is unavailable"
 msgstr "%qD不是一个变量"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable: %s"
 msgstr "%qD不是一个变量"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qE is unavailable"
 msgstr "%qD不是一个变量"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "open %s failed: %s"
 msgid "type is unavailable: %s"
 msgstr "打开 %s 失败：%s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "type is unavailable"
@@ -34963,269 +34942,269 @@ msgstr "%qD不是一个变量"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, fuzzy, gcc-internal-format
 #| msgid "%s:stamp mismatch with notes file\n"
 msgid "first mismatch is field"
 msgstr "%s:时间戳与说明文件不匹配\n"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "type is not compatible with its variant"
 msgstr "-mnop-mcount 与此目标不兼容"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "type %s is not an opaque type"
 msgstr "%qE不是一个常量表达式"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "type %s is not with opaque mode"
 msgstr "%qE不是一个常量表达式"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 #| msgid "environment variable %qs not defined"
 msgid "main variant is not defined"
 msgstr "环境变量%qs未定义"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qE has non-integer type"
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "数组%qE的大小的类型不是整数"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 #| msgid "field %qE has incomplete type"
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "字段%qE的类型不完全"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -35453,7 +35432,7 @@ msgstr "别名定义在此配置下不受支持"
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "可见性属性在此配置下不受支持；已忽略"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -35678,7 +35657,7 @@ msgstr "%qE属性被忽略，因为%qT已被定义"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "%qE属性被忽略，因为%qT已被定义"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "%qE属性只能应用到公共对象上"
@@ -35871,7 +35850,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "%qE属性只能用于函数"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "不能为局部变量指定%qE属性"
@@ -36212,7 +36191,7 @@ msgstr "选择%qD而不是%qD"
 msgid "%qE argument is not a function"
 msgstr "属性%qE的参数无效"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "过时消息不是一个字符串"
@@ -36750,7 +36729,7 @@ msgstr "ISO C++ 不允许对非类型使用%<alignof%>"
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "ISO C++ 不允许对非类型使用%<alignof%>"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "%qs不能用于 void 类型"
@@ -36884,17 +36863,17 @@ msgstr "只能为类定义应用%qE属性"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "为 lambda 形参指定了默认参数"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "提供给函数%qE的实参太少"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -37019,175 +36998,175 @@ msgstr "试图取位段结构成员%qD的地址"
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr "索引 %E 指定了一个大于%qT大小的偏移量"
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, gcc-internal-format
 msgid "size of array is too large"
 msgstr "数组太大"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible type for argument %d of %qE"
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "%2$qE的第 %1$d 个实参类型不兼容"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE makes pointer from integer without a cast"
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "传递%2$qE的第 %1$d 个参数时将整数赋给指针，未作类型转换"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 #| msgid "left argument must be a slice"
 msgid "both arguments must be compatible"
 msgstr "左实参必须是一个切片"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "提供给函数%qE的实参太多"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "%2$qE的实参 %1$d 必须是地址"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "%K%D 的第一个实参必须是一个指针，第二个必须是整常量"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "%K%D 的第一个实参必须是一个指针，第二个必须是整常量"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "%K%D 的第一个实参必须是一个指针，第二个必须是整常量"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "%2$qE的实参 %1$d 必须是地址"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "%K%D 的第一个实参必须是一个指针，第二个必须是整常量"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "%2$qE的实参 %1$d 必须是地址"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "%2$qE的第 %1$d 个参数必须是在 %3$d 和 %4$d 之间"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "%K%D 的第一个实参必须是一个指针，第二个必须是整常量"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "传递%2$qE的第 %1$d 个实参时丢弃了指针目标类型的限定"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "%K%D 的第一个实参必须是一个指针，第二个必须是整常量"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "传递%2$qE的第 %1$d 个实参时丢弃了指针目标类型的限定"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, fuzzy, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "%2$qE的第 %1$d 个实参类型不兼容"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, fuzzy, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "%2$qE的第 %1$d 个实参类型不兼容"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "索引值越界"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, fuzzy, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "从%qT到%qT的转换有歧义"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %qD takes one argument only"
 msgid "built-in function %qE must be directly called"
 msgstr "内建函数%qD只需要一个实参"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "size of array %qE is not a constant expression"
 msgstr "数组%qD的大小不是一个整数常表达式"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "size of array is not a constant expression"
 msgstr "数组大小不是一个整数常表达式"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qE is negative"
 msgid "size %qE of array %qE is negative"
 msgstr "数组%qE的大小为负"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array is negative"
 msgstr "数组大小为负数"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qE is negative"
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "数组%qE的大小为负"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -37846,7 +37825,7 @@ msgstr "对%<unsigned long%>类型而言整数常量太大"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "对%<unsigned long%>类型而言整数常量太大"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "嵌套函数在此目标机上不受支持"
@@ -37929,7 +37908,7 @@ msgstr "不受支持的非标准字面字符串毗连"
 msgid "traditional C rejects string constant concatenation"
 msgstr "传统 C 不接受字符串常量毗连"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -37986,7 +37965,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr "%<void%>作为仅有的参数时不能被限定"
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "迭代变量%qE类型无效"
@@ -38002,17 +37981,17 @@ msgstr "迭代变量%qE类型无效"
 msgid "%qE is not initialized"
 msgstr "%qE未经初始化"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "缺少控制谓词"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "无效的控制谓词"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, gcc-internal-format
 msgid "missing increment expression"
 msgstr "缺少自增语句"
@@ -38022,7 +38001,7 @@ msgstr "缺少自增语句"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "无效的自增语句"
@@ -38115,7 +38094,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -38125,7 +38104,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "  初始化%2$qD的实参 %1$P"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, fuzzy, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr "字段%qE的类型不完全"
@@ -38763,7 +38742,7 @@ msgid "wrong type argument to %s"
 msgstr "不能对该类型的参数求绝对值"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -39728,35 +39707,35 @@ msgstr "在%qT和%qT间比较"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -39980,122 +39959,122 @@ msgstr "-mregparm=%d 不在 0 和 %d 之间"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr "%<-march=%s%>与所选 ABI 不兼容"
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr "%<-march=%s%>与所选 ABI 不兼容"
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr "不使用位段指令"
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "-mcpu=%s 与 -march=%s 冲突"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 #| msgid "-mcpu=%s conflicts with -march=%s"
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "-mcpu=%s 与 -march=%s 冲突"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr "%<-march=%s%>与所选 ABI 不兼容"
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "%<-march=%s%>与所选 ABI 不兼容"
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, fuzzy, gcc-internal-format
 #| msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr "%<-march=%s%>与所选 ABI 不兼容"
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, fuzzy, gcc-internal-format
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%s%s：未知的主机。\n"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -40528,13 +40507,13 @@ msgstr "需要类型%qT，但实参的类型为%qT"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "需要类型%qT，但实参的类型为%qT"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma GCC optimize%> is not a string or number"
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<#pragma GCC optimize%>不是字符串或数字"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 #| msgid "unknown #pragma GCC coprocessor %E"
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
@@ -41156,7 +41135,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -41234,12 +41213,12 @@ msgid "unknown tuning option (%s)"
 msgstr "spec 函数名格式错误"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -41250,7 +41229,7 @@ msgid "specify a system register with a small string length"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "%qs is not a valid offset in %qs"
@@ -41435,9 +41414,9 @@ msgstr "目标系统不支持调试输出"
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "attribute(target(\"%s\"))未知"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "%qE属性需要一个字符串常量作为实参"
@@ -41490,18 +41469,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "联合成员函数%qD被声明为虚函数"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "嵌套函数在此目标机上不受支持"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -41514,8 +41493,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr "操作数号超出范围"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 msgid "unsupported simdlen %wd"
 msgstr "不支持的真理哈希类型 %d。\n"
@@ -41525,7 +41504,7 @@ msgstr "不支持的真理哈希类型 %d。\n"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "%<operator new%>必须返回%qT"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, fuzzy, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr "%<operator new%>必须返回%qT"
@@ -41535,7 +41514,7 @@ msgstr "%<operator new%>必须返回%qT"
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "需要类型%qT，但实参的类型为%qT"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "需要类型%qT，但实参的类型为%qT"
@@ -41637,8 +41616,8 @@ msgstr "L%d 缓存延迟未知，对 %s 来说"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "-mmemory-latency 开关的值%qs错误"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "错误的内建 fcode"
@@ -41764,18 +41743,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "%qE属性的实参不是“ilink1”或“ilink2”"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -41895,7 +41874,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "%qE属性的实参不是“ilink1”或“ilink2”"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "%qE属性需要一个整常量作为实参"
@@ -41917,24 +41896,24 @@ msgstr "%qE属性只能用于函数类型"
 msgid "argument of %qE attribute ignored"
 msgstr "%qE属性的实参不是“ilink1”或“ilink2”"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "属性%qE只能用于变量"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, fuzzy, gcc-internal-format
 #| msgid "By-value argument at %L is not allowed in this context"
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr "%L处上下文中不允许使用按值传递的实参"
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, fuzzy, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr "未知的 TLS 模型%qs"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr "向函数类型%qT的转换无效"
@@ -42187,7 +42166,7 @@ msgstr "目标 CPU 不支持 THUMB 指令"
 msgid "target CPU does not support unaligned accesses"
 msgstr "目标 CPU 不支持未对齐的访问"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 #| msgid "the %qs architecture does not support branch-likely instructions"
 msgid "This architecture does not support branch protection instructions"
@@ -42243,7 +42222,7 @@ msgstr "结构大小边界只能被设定为 %s"
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "RTP PIC 与 -msingle-pic-base 不兼容"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr "代码模式%qs在 %s 位模式下不受支持"
@@ -42360,7 +42339,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -42405,43 +42384,43 @@ msgstr "%qE属性只能用于函数"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "%qE属性只能用于函数类型"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, fuzzy, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr "操作数号超出范围"
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "无法计算出栈中参数的真实地址"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, fuzzy, gcc-internal-format
 msgid "Unexpected thumb1 far jump"
 msgstr "非预期的模块结束"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "高寄存器弹栈时没有可用的低寄存器"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "Thumb 模式中不能编码中断服务进程"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 #| msgid "invalid element type for attribute %qs"
 msgid "invalid fpu for target attribute or pragma %qs"
@@ -42450,24 +42429,24 @@ msgstr "属性%qs的元素类型无效"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, fuzzy, gcc-internal-format
 #| msgid "invalid vector type for attribute %qE"
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "属性%qE的向量类型无效"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 #| msgid "target attribute or pragma changes SPE ABI"
 msgid "unknown target attribute or pragma %qs"
 msgstr "目标属性或 pragma 改变了 SPE ABI"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "%<asm%> flags not supported in thumb1 mode"
@@ -42522,164 +42501,164 @@ msgstr "%s：支持的体系结构："
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "不能为%q+D指定对齐"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 #| msgid "-fpic is not supported"
 msgid "%<-fpic%> is not supported"
 msgstr "不支持 -fpic"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 #| msgid "-fPIC is not supported"
 msgid "%<-fPIC%> is not supported"
 msgstr "不支持 -fPIC"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 msgid "%<-fpie%> is not supported"
 msgstr "不支持"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr "不支持"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "-flto and -fwhopr 互斥"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "%qD不能有默认参数"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "不正确的函数返回值"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, fuzzy, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs似乎是一个拼写错的信号处理者"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, fuzzy, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr "‘builtin_return_address’只包含两字节地址"
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, fuzzy, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr "相对符号的指针偏移量可能不正确。"
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr "用程序内存地址访问数据内存"
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, fuzzy, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr "用程序内存地址访问数据内存"
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr "用以传递整数参数的寄存器个数"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, fuzzy, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "不兼容的地址空间限定符%qs和%qs"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables and functions"
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "%qE属性只能为变量或函数所使用"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is not supported for R8C target"
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "%qE属性在 R8C 目标机上不受支持"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "已弃用。此开关不起作用。"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "%qE属性在不是类的类型上被忽略"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, fuzzy, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "嵌套函数蹦床在此目标机上不受支持"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, fuzzy, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "代码模式%qs在 %s 位模式下不受支持"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, fuzzy, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr "条件表达式中使用了指向不相交地址空间的指针"
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, fuzzy, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr "条件表达式中使用了指向不相交地址空间的指针"
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables and functions"
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "%qE属性只能为变量或函数所使用"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr "变量 %q+D 必须是常数以便是置放进入只读区段依靠 %qs"
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, fuzzy, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "%q+D的声明隐藏了一个形参"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 #| msgid "only uninitialized variables can be placed in the .noinit section"
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "只有未初始化的变量才能放在 .noinit 节中"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "只有初始化的变量才能放入程序内存区"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "只有初始化的变量才能放入程序内存区"
@@ -42688,43 +42667,43 @@ msgstr "只有初始化的变量才能放入程序内存区"
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "可分配的‘%s’在%L处不能有初始值设定"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, fuzzy, gcc-internal-format
 #| msgid "%qE incompatible attribute ignored"
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%qE不兼容的属性已被忽略"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, fuzzy, gcc-internal-format
 msgid "architecture %qs supported for assembler only"
 msgstr "MCU%qs只支持汇编器"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, fuzzy, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "不兼容的地址空间限定符%qs和%qs"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "字符串常量中出现非预期的模块结束"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%qs需要一个常量实参"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, fuzzy, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr "对两个互斥的相等比较取%<and%>的结果永远是 0"
@@ -42874,7 +42853,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "嵌套函数在此目标机上不受支持"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, gcc-internal-format
@@ -43532,8 +43511,8 @@ msgstr "倒数第二个实参必须是一个 8 位立即数"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "代码模式 %s 在 PIC 模式下不受支持"
@@ -43601,278 +43580,278 @@ msgstr "%qs没有指定类名"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr "%L处参数列表函数未知"
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, fuzzy, gcc-internal-format
 #| msgid "64-bit ABI not supported in ESA/390 mode"
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "64-bit ABI 在 ESA/390 模式下不受支持"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, fuzzy, gcc-internal-format
 #| msgid "%stune=x86-64%s is deprecated; use %stune=k8%s or %stune=generic%s instead as appropriate"
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "已弃用%stune=x86-64%s；请视情况改用%stune=k8%s或%stune=generic%s"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, fuzzy, gcc-internal-format
 #| msgid "%stune=x86-64%s is deprecated; use %stune=k8%s or %stune=generic%s instead as appropriate"
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "已弃用%stune=x86-64%s；请视情况改用%stune=k8%s或%stune=generic%s"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte 不支持用于 32 位代码"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte 不支持用于 32 位代码"
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte 不支持用于 32 位代码"
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte 不支持用于 32 位代码"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, fuzzy, gcc-internal-format
 #| msgid "-mstringop-strategy=rep_8byte not supported for 32-bit code"
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8byte 不支持用于 32 位代码"
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, fuzzy, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "代码模式%qs在 %s 位模式下不受支持"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 #| msgid "%<-Wabi=1%> is not supported, using =2"
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "%<-Wabi=1%> 不受支持，将使用 =2"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, fuzzy, gcc-internal-format
 #| msgid "-fsanitize=address is incompatible with -fsanitize=kernel-address"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "-fsanitize=address 与 -fsanitize=kernel-address 不兼容"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, fuzzy, gcc-internal-format
 #| msgid "-fsanitize=address is incompatible with -fsanitize=kernel-address"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "-fsanitize=address 与 -fsanitize=kernel-address 不兼容"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, fuzzy, gcc-internal-format
 #| msgid "cannot specify -static with -fsanitize=thread"
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "不能同时指定 -static 及 -fsanitize=thread"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "代码模式%qs在 %s 位模式下不受支持"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "代码模式%qs在 %s 位模式下不受支持"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 #| msgid "-masm=intel not supported in this configuration"
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "-masm=intel 在此配置下不受支持"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "未编译入对 %i 位模式的支持"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, fuzzy, gcc-internal-format
 #| msgid "generic CPU can be used only for %stune=%s %s"
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "generic 只能用在%stune%s %s中"
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, fuzzy, gcc-internal-format
 #| msgid "generic CPU can be used only for %stune=%s %s"
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "generic 只能用在%stune%s %s中"
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, fuzzy, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "generic 只能用在%stune%s %s中"
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, fuzzy, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "generic 只能用在%stune%s %s中"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "您选择的 CPU 不支持 x86-64 指令集"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "-march= 的值(%s)不正确"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for %sarch=%s %s"
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "%2$sarch=%3$s %4$s所带参数(%1$s)不正确"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "%qs对%qs而言无效"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "%qs对%qs而言无效"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "%qs对%qs而言无效"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 #| msgid "bad value %qs for -mtune switch"
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "-mtune 开关的值%qs错误"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for %stune=%s %s"
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "%2$stune=%3$s%4$s所带参数(%1$s)不正确"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "%qs对%qs而言无效"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "%qs对%qs而言无效"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "%qs对%qs而言无效"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "64-bit ABI 在 ESA/390 模式下不受支持"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "64-bit ABI 在 ESA/390 模式下不受支持"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm=%d is not between 0 and %d"
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "-mregparm=%d 不在 0 和 %d 之间"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "-mnop-mcount 与此目标不兼容"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, fuzzy, gcc-internal-format
 #| msgid "%srtd%s is ignored in 64bit mode"
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "%srtd%s 在 64 位模式下被忽略"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, fuzzy, gcc-internal-format
 #| msgid "%srtd%s is ignored in 64bit mode"
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "%srtd%s 在 64 位模式下被忽略"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -43880,309 +43859,309 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "堆栈限制在此目标机上不受支持"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and %d"
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d 的值不在 %d 和 %d 之间"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 #| msgid "-mincoming-stack-boundary=%d is not between %d and 12"
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mincoming-stack-boundary=%d 不在 %d 和 12 之间"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "-mnop-mcount 与此目标不兼容"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "模块间优化未为 C++ 实现"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, fuzzy, gcc-internal-format
 #| msgid "%ssseregparm%s used without SSE enabled"
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "使用了 %ssseregparm%s 却没有启用 SEE"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, fuzzy, gcc-internal-format
 #| msgid "%ssseregparm%s used without SSE enabled"
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "使用了 %ssseregparm%s 却没有启用 SEE"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "SSE 指令集已禁用，使用 387 指令"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "387 指令集已禁用，使用 SSE 指令"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, fuzzy, gcc-internal-format
 #| msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "堆栈探针目前需要框架指针或 %saccumulate-outgoing-args%s 来保证正确性"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, fuzzy, gcc-internal-format
 #| msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "堆栈探针目前需要框架指针或 %saccumulate-outgoing-args%s 来保证正确性"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, fuzzy, gcc-internal-format
 #| msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr "堆栈探针目前需要框架指针或 %saccumulate-outgoing-args%s 来保证正确性"
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, fuzzy, gcc-internal-format
 #| msgid "stack probing requires %saccumulate-outgoing-args%s for correctness"
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr "堆栈探针目前需要框架指针或 %saccumulate-outgoing-args%s 来保证正确性"
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, fuzzy, gcc-internal-format
 #| msgid "-mfentry isn%'t supported for 32-bit in combination with -fpic"
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr "-mfentry 在 32 位下不能和 -fpic 同时使用"
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 #| msgid "-mno-fentry isn%'t compatible with SEH"
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "-mno-fentry 与 SEH 不兼容"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "未知的选项：%s %s %s"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 #| msgid "-mnop-mcount is not compatible with this target"
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "-mnop-mcount 与此目标不兼容"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and cdecl attributes are not compatible"
 msgid "interrupt and naked attributes are not compatible"
 msgstr "stdcall 和 cdecl 属性互不兼容"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 #| msgid "ms_abi and sysv_abi attributes are not compatible"
 msgid "%qs and %qs attributes are not compatible"
 msgstr "ms_abi 和 sysv_abi 属性互不兼容"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s 与 -mcall-%s 互不兼容"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s 与 -mcall-%s 互不兼容"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, fuzzy, gcc-internal-format
 #| msgid "2 byte cop instructions are not allowed in 64-bit VLIW mode"
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "2 字节 cop 指针不允许被用在 VLIW 模式中"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, fuzzy, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr "为每个函数使用堆栈保护机制"
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "fastcall 和 regparm 属性互不兼容"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, fuzzy, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "fastcall 和 thiscall 属性互不兼容"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "%qE属性需要一个整常量作为实参"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "%qE属性的实参大于 %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "fastcall 和 cdecl 属性互不兼容"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "fastcall 和 stdcall 属性互不兼容"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "fastcall 和 thiscall 属性互不兼容"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "stdcall 和 cdecl 属性互不兼容"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "stdcall 和 fastcall 属性互不兼容"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "stdcall 和 thiscall 属性互不兼容"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "cdecl 和 thiscall 属性互不兼容"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "%qE属性在不是类的类型上被忽略"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "%qE不兼容的属性已被忽略"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "%qE属性只能在 32 位下使用"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "%qE属性的实参不是一个字符串常量"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "%qE属性需要一个字符串常量作为实参"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qE attribute is not \"ilink1\" or \"ilink2\""
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "%qE属性的实参不是“ilink1”或“ilink2”"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, gcc-internal-format
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt function must have no arguments"
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "中断函数不能有参数"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 #| msgid "interrupt Service Routines cannot be coded in Thumb mode"
 msgid "interrupt service routine must return %<void%>"
@@ -44389,48 +44368,48 @@ msgstr "扩展的寄存器不支持的操作数大小"
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "非整数操作数使用了操作数代码‘%c’"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr ""
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, fuzzy, gcc-internal-format
 #| msgid "no low registers available for popping high registers"
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "高寄存器弹栈时没有可用的低寄存器"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "32 位系统不支持 -mcmodel="
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr "未知的架构特定的内存模型"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, fuzzy, gcc-internal-format
 #| msgid "-fdirectives-only is incompatible with -traditional"
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
@@ -44452,8 +44431,8 @@ msgstr "%q#D是一个静态数据成员；它只能在定义时被初始化"
 msgid "malformed %<#pragma builtin%>"
 msgstr "#pragma builtin 格式错误"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "属性%qE的参数无效"
@@ -44513,12 +44492,12 @@ msgstr "PRINT_OPERAND：未知的标点‘%c’"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "PRINT_OPERAND 空指针"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "实参必须是常数"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "failed to reclaim unneeded function"
 msgid "failed to expand built-in function"
@@ -44652,19 +44631,19 @@ msgstr "选择%qD而不是%qD"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%<constexpr%>不能被用作类型声明"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "不能为局部变量指定%qE属性"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute cannot be specified for local variables"
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "不能为局部变量指定%qE属性"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 #| msgid "Duplicate %s attribute at %L"
 msgid "multiple %qE attribute"
@@ -44775,12 +44754,12 @@ msgstr "不允许多个中断属性"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "interrupt_thread 只在 fido 中可用"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "不支持堆栈限制表达式"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 #| msgid "-fstack-protector not supported for this target"
 msgid "%<-fexcess-precision=16%> is not supported on this target"
@@ -44825,7 +44804,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr "-mxl-multiply-high 需要 -mno-xl-soft-mul"
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute requires a string constant argument"
 msgid "%qE attribute requires a string argument"
@@ -44867,136 +44846,136 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "%qE属性的实参不是一个字符串常量"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "无法处理对%qs不一致的调用"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, fuzzy, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr "%<interrupt%>属性需要 MIPS32r2 处理器"
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr "中断处理程序不能是 MIPS16 函数"
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "MIPS16 不支持内建函数%qE"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs不支持 MIPS16 代码"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr "MIPS16 PIC 代码的 ABI 不是 o32 或 o64"
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, fuzzy, gcc-internal-format
 #| msgid "MIPS16 -mxgot code"
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "MIPS16 -mxgot 代码"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, fuzzy, gcc-internal-format
 #| msgid "hard-float MIPS16 code for ABIs other than o32 and o64"
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr "硬件浮点 MIPS16 代码的 ABI 不是 o32 或 o64"
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, fuzzy, gcc-internal-format
 #| msgid "Generate MIPS16 code"
 msgid "MSA MIPS16 code"
 msgstr "生成 MIPS16 代码"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%>需要%<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "不支持的组合：%s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "%<-%s%>与指定了 %s 处理器的其他架构选项冲突"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%<-march=%s%>与所选 ABI 不兼容"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "%<-mgp64%>与 32 位处理器一起使用"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "%<-mgp32%>与 64 位 ABI 一起使用"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "%<-mgp64%>与 32 位 ABI 一起使用"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "%qs 架构不支持 %<-mfp32%>"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "%<-mgp32%>和%<-mfp64%>只有当目标机支持 mfhc1 和 mthc1 指令时才能一起使用"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%>和%<-mfp64%>只有当使用 o32 ABI 时才能一起使用"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, fuzzy, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "%<-mgp32%>和%<-mfp64%>只有当使用 o32 ABI 时才能一起使用"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "%<-march=%s%>与所选 ABI 不兼容"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr "%<-mfpxx%> 需要 %<-mlra%>"
@@ -45006,119 +44985,119 @@ msgstr "%<-mfpxx%> 需要 %<-mlra%>"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, fuzzy, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "不兼容的地址空间限定符%qs和%qs"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "%qs架构不支持 Branch-Likely 指令"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "%qs 架构不支持 madd 或 msub 指令"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "%qs架构不支持配对单精度指令"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs%s %s"
 msgstr "不支持的组合：%s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs %s"
 msgstr "不支持的组合：%s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, fuzzy, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "尽可能生成与位置无关的代码(大模式)"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, fuzzy, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "尽可能生成与位置无关的代码(大模式)"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%>需要%<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr "不能为%qs使用小数据访问"
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "%qs 架构不支持 %<-m%s=legacy%>"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "%qs 架构不支持 %<-m%s=2008%>"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "%<-mips3d%>需要%<-mpaired-single%>"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs必须与%qs一起使用"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, gcc-internal-format
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "%qs架构不支持配对单精度指令"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "%qs需要一个能提供%qs指令的目标机"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "%qs 架构不支持 DSP 诸指令"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, gcc-internal-format
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr ""
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "%qs需要 Branch-Likely 指令"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "%qs架构不支持 synci 指令"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "mips16 函数取样"
@@ -46021,57 +46000,57 @@ msgstr "%<#pragma GCC optimize%>不是字符串或数字"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "未知‘# pragma externmodel’式样‘%s’(_M)"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, fuzzy, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr "%qE在数据子句中多次出现"
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, fuzzy, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr "%qE在数据子句中多次出现"
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "%qE在数据子句中多次出现"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target()%> attribute"
 msgstr "异常的 URL"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "%s 只接受 2 个参数"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, fuzzy, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "不能设置只读属性"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
 msgstr "异常的 URL"
@@ -46140,181 +46119,201 @@ msgstr "无法为有抽象类型%qT的对象分配内存"
 msgid "capture by copy of RVV type %qT"
 msgstr "向 void 的类型转换不会访问具有不完全类型%qT的对象"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "内建函数%q+D未被声明为函数"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "内建函数%q+D未被声明为函数"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "内建函数%q+D未被声明为函数"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "内建函数%q+D未被声明为函数"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "内建函数%q+D未被声明为函数"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
 msgstr "对%<%D(%A)%>的调用没有匹配的函数"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 #| msgid "unknown value %qs for -mtune"
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "-mtune 参数的值 %qs 未知"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr "不使用位段指令"
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, fuzzy, gcc-internal-format
 #| msgid "the ABI of passing structure with complex float member has changed in GCC 4.4"
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "在 GCC 4.4 中传递带有复数浮点成员结构的 ABI 有了改变"
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "传递 AltiVec 参数给无原型的函数"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr "目标属性或 pragma 改变了 SPE ABI"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr "目标属性或 pragma 改变了 SPE ABI"
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr "目标属性或 pragma 改变了 SPE ABI"
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr "目标属性或 pragma 改变了 SPE ABI"
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr "目标属性或 pragma 改变了 SPE ABI"
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr "内建函数%q+D未被声明为函数"
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, fuzzy, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "内建函数%q+D未被声明为函数"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "%qE属性的实参不是一个字符串常量"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qE属性在不是类的类型上被忽略"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 #| msgid "case label is not an integer constant expression"
 msgid "%qs requires an integer constant"
 msgstr "case 标号不是一个整数常量表达式"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "target CPU does not support ARM mode"
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "目标 CPU 不支持 ARM 模式"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 msgid "code model %qs with %qs"
 msgstr "代码模式%qs在 %s 位模式下不受支持"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr "rv32e 需要 ilp32e ABI"
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, fuzzy, gcc-internal-format
 #| msgid "rv32e requires ilp32e ABI"
 msgid "rv64e requires lp64e ABI"
 msgstr "rv32e 需要 ilp32e ABI"
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, fuzzy, gcc-internal-format
 #| msgid "%<-mfpxx%> requires %<-mlra%>"
 msgid "ABI requires %<-march=rv%d%>"
 msgstr "%<-mfpxx%> 需要 %<-mlra%>"
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 #| msgid "-mpreferred-stack-boundary=%d is not between %d and %d"
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d 的值不在 %d 和 %d 之间"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs没有指定类名"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 #| msgid "%qs is not valid for %qs"
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs对%qs而言无效"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr "%qD不能有默认参数"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, fuzzy, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr "堆栈限制在此目标机上不受支持"
@@ -46584,33 +46583,33 @@ msgstr "%s 只接受 1 个参数"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "%s 只接受 1 个参数"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "传递%2$qE的第 %1$d 个实参时丢弃了指针目标类型的限定"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter combination for AltiVec intrinsic"
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "对 AltiVec 内建函数来说无效的参数组合"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, fuzzy, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr "内建函数%q+D未被声明为函数"
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "%qs is not supported in this compiler configuration"
@@ -46655,30 +46654,22 @@ msgstr "操作数类型%qT和%qT对双目%qO而言无效"
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "GCC 传递向量引用：非标准的 ABI 扩展，不保证兼容性"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, fuzzy, gcc-internal-format
-#| msgid "Use the ELFv2 ABI."
-msgid "%qs requires the ELFv2 ABI"
-msgstr "使用 ELFv2 ABI。"
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "栈帧太大"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "提供给函数%qE的实参太多"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 msgid "%qs uses register r29"
 msgstr "ISO C90 不允许可变数组成员"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma GCC target is not supported for this machine"
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
@@ -46813,111 +46804,122 @@ msgstr "调用篡改寄存器用作全局寄存器变量"
 msgid "unknown option for %<%s=%s%>"
 msgstr "未知的选项：%s %s %s"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, fuzzy, gcc-internal-format
+#| msgid "Use the ELFv2 ABI."
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr "使用 ELFv2 ABI。"
+
+#: config/rs6000/rs6000.cc:4855
 #, fuzzy, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr "已弃用。此开关不起作用。"
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "此 ABI 不支持取样 64 位代码"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, fuzzy, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "您无法需地址的嵌套的函数如果您使用 -mno-pointers-to-nested-functions 选项。"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "在 AltiVec 类型中使用%<long double%>无效"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "在 AltiVec 类型中使用布尔类型无效"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "在 AltiVec 类型中使用%<complex%>无效"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 #| msgid "use of decimal floating point types in AltiVec types is invalid"
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "在 AltiVec 类型中使用十进制浮点类型无效"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without -mvsx"
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "不使用 -mvsx 时，在 AltiVec 类型中使用%<long%>对 64 位代码无效"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "已弃用在 AltiVec 类型中使用%<long%>；请改用%<int%>"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<long long%> in AltiVec types is invalid without -mvsx"
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "不使用 -mvsx 时，在 AltiVec 类型中使用%<long long%>无效"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, fuzzy, gcc-internal-format
 #| msgid "use of %<double%> in AltiVec types is invalid without -mvsx"
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "不使用 -mvsx 时，在 AltiVec 类型中使用%<double%>无效"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "%s：无效的目的：%s\n"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "%s：不允许空权字符串"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr "%s%qs%s 无效"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, fuzzy, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr "%<-march=%s%>与所选 ABI 不兼容"
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, fuzzy, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "联合成员函数%qD被声明为虚函数"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, fuzzy, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "内建函数%q+D未被声明为函数"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, fuzzy, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr "内建函数%q+D未被声明为函数"
@@ -46963,7 +46965,7 @@ msgstr "RX FPU  指令不支持 NaN 和无限"
 msgid "builtin %qs can only be used on vector types"
 msgstr "只能为函数指定%qs"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, fuzzy, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr "%<__builtin_frame_address%>的实参无效"
@@ -47035,242 +47037,242 @@ msgstr "已弃用%qE"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "常量实参超过%qs的范围"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "常量实参超过%qs的范围"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "常量实参超过%qs的范围"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "常量实参超过%qs的范围"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, fuzzy, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr "内建函数%q+D未被声明为函数"
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, fuzzy, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr "内建函数%q+D未被声明为函数"
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 #| msgid "<unresolved overloaded function type>"
 msgid "unresolved overloaded builtin"
 msgstr "<未解决的重载函数类型>"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, fuzzy, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "错误的内建 fcode"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument to built-in function"
 msgid "invalid argument %d for builtin %qF"
 msgstr "内建函数实参无效"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, fuzzy, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr "%qE属性的实参不是一个字符串常量"
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 #| msgid "argument of %qE attribute is not a string constant"
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "%qE属性的实参不是一个字符串常量"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "局部变量大小总和超过架构极限"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, fuzzy, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr "影格大小的函数 %qs 是 %wd 字节超出用户提供的堆叠限制的 %d 字节。 unconditional 陷阱被已加入。"
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, fuzzy, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr "影格大小的函数 %qs 是 %wd 字节该项是超过半堆叠大小。动态检查会无法是 reliable。没有检查发出用于这个函数。"
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "栈帧大小不是 8 字节的倍数：%wd"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs使用动态栈分配"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr ""
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 #| msgid "nested function %qs declared %<extern%>"
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "嵌套函数%qs被声明为%<extern%>"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "64-bit ABI 在 ESA/390 模式下不受支持"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "hardware decimal floating point instructions not available on %s"
 msgid "hardware vector support not available on %s"
 msgstr "硬件十进制浮点指令在 %s 上不可用"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, fuzzy, gcc-internal-format
 #| msgid "hardware decimal floating point instructions not available on %s"
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr "硬件十进制浮点指令在 %s 上不可用"
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "hardware decimal floating point instructions not available on %s"
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "硬件十进制浮点指令在 %s 上不可用"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "hardware decimal floating point instructions not available in ESA/390 mode"
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "硬件十进制浮点指令在 ESA/390 模式下不可用"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float"
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr "-mhard-dfp can%'t be used in conjunction with -msoft-float"
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, fuzzy, gcc-internal-format
 #| msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "-mbackchain -mpacked-stack -mhard-float 一起使用不受支持"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "栈大小必须大于栈防护值"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "栈大小不能大于 64K"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, fuzzy, gcc-internal-format
 #| msgid "-mstack-guard implies use of -mstack-size"
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "-mstack-guard 意味着使用 -mstack-size"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute is supported only for SH2A"
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "%qE属性只为 SH2A 所支持"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "“%s”的实参应该是一个非负整数"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "%qE属性的实参大于 %d"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "%qE属性需要一个字符串常量作为实参"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "嵌套函数在此目标机上不受支持"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 msgid "invalid cc output constraint: %qs"
 msgstr "%<#pragma pack%>中有无效常量 - 已忽略"
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "-mhard-float not supported"
 msgid "multiple cc output constraints not supported"
 msgstr "不支持 -mhard-float"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, fuzzy, gcc-internal-format
 #| msgid "asm-specifier for variable %qE conflicts with asm clobber list"
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "变量%qE的 asm 指定与 asm 篡改列表冲突"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr "向函数类型%qT的转换无效"
@@ -47727,8 +47729,8 @@ msgstr "语句不起作用"
 msgid "attribute %qs applies to array types only"
 msgstr "%qs属性只能为数组类型使用"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "void 值未如预期地被忽略"
@@ -47805,7 +47807,7 @@ msgstr "数组%q+D类型与隐式初始化不兼容"
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "%qD已在此作用域中声明过"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, gcc-internal-format
 msgid "originally defined here"
 msgstr "原先在这里定义"
@@ -48049,7 +48051,7 @@ msgstr "%q+D的声明隐藏了先前的一个非变量声明"
 msgid "declaration of %qD shadows a parameter"
 msgstr "%q+D的声明隐藏了一个形参"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "%qD的声明隐藏了一个全局声明"
@@ -48059,7 +48061,7 @@ msgstr "%qD的声明隐藏了一个全局声明"
 msgid "declaration of %qD shadows a previous local"
 msgstr "%qD的声明隐藏了先前的一个局部变量"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "被隐藏的声明在这里"
@@ -48127,7 +48129,7 @@ msgstr "%qE未声明(在此函数内第一次使用)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "每个未声明的标识符在其出现的函数内只报告一次"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "标号%qE在所有函数外被引用"
@@ -48162,7 +48164,7 @@ msgstr "跳转至语句表达式中"
 msgid "duplicate label declaration %qE"
 msgstr "重复的标号定义%qE"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "重复的标号%qD"
@@ -48198,7 +48200,7 @@ msgstr "开关跳转至语句表达式中"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE定义为类型错误的标记"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr "%qE属性在类型上被忽略"
@@ -48347,12 +48349,12 @@ msgstr "ISO C90 不支持%<[*]%>数组声明"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%>不能用于函数原型以外"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%s%> not allowed to be specified in this context"
@@ -48363,7 +48365,7 @@ msgstr "%<this%>不能用在此上下文中"
 msgid "%q+D is usually a function"
 msgstr "%q+D通常是一个函数"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "%qD先前没有声明"
@@ -48443,7 +48445,7 @@ msgstr "不能将带有 volatile 字段的对象放入寄存器"
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "未初始化的常量%qD在C++中是无效的"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -48633,7 +48635,7 @@ msgstr "为形参%qE指定了存储类"
 msgid "storage class specified for unnamed parameter"
 msgstr "为无名形参指定了存储类"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "为类型名指定了存储类"
@@ -48696,7 +48698,7 @@ msgstr "%qE声明为函数的数组"
 msgid "declaration of type name as array of functions"
 msgstr "类型名声明为函数的数组"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "对包含可变数组成员的结构的无效使用"
@@ -48806,7 +48808,7 @@ msgstr "类型名声明为返回一个数组的函数"
 msgid "function definition has qualified void return type"
 msgstr "函数定义有限定的 void 返回类型"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "忽略函数返回类型的类型限定"
@@ -48933,7 +48935,7 @@ msgstr "ISO C 不允许使用 const 或 volatile 限定函数类型"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "结构或联合成员不能具有可变类型"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "变量或字段%qE声明为 void"
@@ -49041,7 +49043,7 @@ msgstr "非嵌套函数有动态可变类型"
 msgid "object with variably modified type must have no linkage"
 msgstr "可变类型对象不能有外部链接"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "函数声明不是一个原型"
@@ -49131,18 +49133,18 @@ msgstr "嵌套的%<union %E%>重定义"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "嵌套的%<struct %E%>重定义"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr "C++ 不允许在%qs表达式中定义类型"
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 #| msgid "unknown field %qE specified in initializer"
 msgid "%qT defined in underspecified object initializer"
 msgstr "初始值设定项里有未知的字段%qE"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "没有声明任何东西"
@@ -49172,614 +49174,614 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "联合包含无名成员"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "联合体没有成员"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "结构不包含任何有名成员"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "结构体没有成员"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "联合和可变数组成员"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "可变数组成员没有出现在结构的末尾"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member in union"
 msgid "flexible array member in a struct with no named members"
 msgstr "联合和可变数组成员"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member not at end of struct"
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "可变数组成员没有出现在结构的末尾"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "类型 %qT 过大"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, fuzzy, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr "无效的 --param 值%qs"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "联合不能成为透明的"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "typedef%q+D重定义时具有不同类型"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "%<struct %E%>重定义"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "嵌套的%<enum %E%>重定义"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "%<enum %E%>重声明"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, fuzzy, gcc-internal-format
 #| msgid "specified mode too small for enumeral values"
 msgid "specified mode too small for enumerated values"
 msgstr "指定的模式对枚举值来说太小"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "枚举值超过了最大整数类型可表示的范围"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "枚举值超过了最大整数类型可表示的范围"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of %<enum %E%>"
 msgid "conflicting redefinition of enum %qT"
 msgstr "嵌套的%<enum %E%>重定义"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "%qE的枚举值不是一个整数常量"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "%qE的枚举值不是一个整数常量"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "枚举值溢出"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr "枚举值 %E 对其类型%<%T%>而言太大了"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr "枚举值 %E 对其类型%<%T%>而言太大了"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C 将枚举值限制在%<int%>范围内"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %qD given attribute noinline"
 msgid "inline function %qD given attribute %qs"
 msgstr "内联函数%qD给定了非内联属性"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "返回不完全的类型"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "返回类型默认为%<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, fuzzy, gcc-internal-format
 msgid "%q+D defined as variadic function without prototype"
 msgstr "嵌套函数%q+D声明过但从未定义"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "%qD先前没有原型"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "使用%qD时先前既没有原型也没有定义"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "使用%qD时先前既没有声明也没有定义"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "%qD的返回类型不是%<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, fuzzy, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr "调用了有限定 void 返回类型的函数"
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%qD通常不是一个静态函数"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "原型函数定义中使用了旧式参数声明"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "传统 C 不接受 ISO C 风格的函数定义"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C99 does not support %<_Static_assert%>"
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "ISO C90 不支持%<_Static_assert%>"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
 msgid "old-style function definition"
 msgstr "旧式的函数定义"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "形参列表中缺少形参名"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD没有声明为一个参数"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "多个名为%qD的形参"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "形参%qD被声明为有 void 类型"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "%qD的类型默认为%<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "形参%qD类型不完全"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "声明的形参%qD不存在"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "实参个数与内建原型不符"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "实参数目与原型不符"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, gcc-internal-format
 msgid "prototype declaration"
 msgstr "原型声明"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "提升后的实参%qD与内建原型不符"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "提升后的实参%qD与原型不符"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "实参%qD与内建原型不符"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "实参%qD与原型不符"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "在有返回值的函数中未发现 return 语句"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "形参%qD被设定但未被使用"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, fuzzy, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "只允许在 C99 模式下使用%<for%>循环初始化声明"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, fuzzy, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "使用 -std=c99 或 -std=gnu99 来编译您的代码"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 不支持%<[*]%>数组声明"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "在%<for%>循环初始声明中声明了静态变量%qD"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "在%<for%>循环初始声明中声明了%<extern%>变量%qD"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%>声明于%<for%>循环初始声明中"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%>声明于%<for%>循环初始声明中"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%>声明于%<for%>循环初始声明中"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "在%<for%>循环初始声明中声明了非变量%qD"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr "不兼容的地址空间限定符%qs和%qs"
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration specifiers"
 msgid "duplicate %qE declaration specifier"
 msgstr "需要指定声明"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "声明指定了多个存储类"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 msgid "%qs used with %<auto%>"
 msgstr "%qE不能用作函数"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "无效的协寄存器%qE"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "声明指定了两个以上的数据类型"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%>对 GCC 来说太长了"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 不支持%<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 不支持复数类型"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO C 不支持饱和类型"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "重复的%qE"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C 不支持 %<__int%d%> 类型"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "嵌套函数在此目标机上不受支持"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, gcc-internal-format
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 不支持布尔类型"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support %<__int%d%> types"
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C 不支持 %<__int%d%> 类型"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "嵌套函数在此目标机上不受支持"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support decimal floating point"
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C 不支持十进制浮点数"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "定点类型在此目标机上不受支持"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C 不支持定点类型"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 #| msgid "case label is not an integer constant expression"
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "case 标号不是一个整数常量表达式"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qE is not an integer constant expression"
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "%qE的枚举值不是一个整数常量"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr "%qD的 C++ 查询会返回一个字段而非类型"
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE不是一个 typedef 类型，也不是一个内建类型"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE没有出现在声明的开头"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<auto%>"
 msgstr "%qE不能用作函数"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<register%>"
 msgstr "无效的协寄存器%qE"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<typedef%>"
 msgstr "%qE不是一个 typedef 类型，也不是一个内建类型"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<constexpr%>"
 msgstr "无效的协寄存器%qE"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "ISO C99 不支持 %qE"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 不支持 %qE"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%>出现在%<extern%>之前"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%>出现在%<static%>之前"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%qE不能用作函数"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %<extern%>"
 msgstr "无效的协寄存器%qE"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr "%qE可被预先确定为%qs，为%qs"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, fuzzy, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr "线程局部的 COMMON 数据没有实现"
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, fuzzy, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%qE可被预先确定为%qs，为%qs"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> used with %qE"
 msgstr "%qE可被预先确定为%qs，为%qs"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<_Sat%>使用时缺少%<_Fract%>或%<_Accum%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C 不支持单独用%<complex%>表示%<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C90 不支持%<[*]%>数组声明"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C 不支持复整数"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "固定格式的行长至少为七。"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++ 对 %2$qs 不支持 %<__int%1$d%>"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, fuzzy, gcc-internal-format
 #| msgid "left shift count is negative"
 msgid "left shift of negative value"
 msgstr "左移次数为负"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "左移次数为负"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "右移次数为负"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "左移次数大于或等于类型宽度"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "右移次数大于或等于类型宽度"
@@ -49811,7 +49813,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr "没有匹配"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
 msgid "expected end of line"
 msgstr "需要行尾"
@@ -49821,8 +49823,8 @@ msgstr "需要行尾"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C 不允许翻译单元为空"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -49864,9 +49866,9 @@ msgstr "%qT没有名为%qE的成员"
 msgid "unknown type name %qE"
 msgstr "未知的类型名%qE"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "需要指定声明"
@@ -49899,7 +49901,7 @@ msgstr "%q+D不能有 section 属性"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "需要标识符或%<(%>"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, fuzzy, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "属性在未初始化类型上被忽略"
@@ -49920,7 +49922,7 @@ msgstr "非预期的属性"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "%q+D不能有 section 属性"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 #| msgid "section attribute not allowed for %q+D"
 msgid "%<assume%> attribute not followed by %<;%>"
@@ -50013,7 +50015,7 @@ msgstr "静态断言中出现非常量条件"
 msgid "static assertion failed: %E"
 msgstr "静态断言错误：%E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, fuzzy, gcc-internal-format
 #| msgid "static assertion failed: %E"
 msgid "static assertion failed"
@@ -50089,10 +50091,10 @@ msgstr "模板第 %d 个参数无效"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "需要标识符"
@@ -50250,7 +50252,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -50260,8 +50262,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr "%qE属性需要带有名实参的原型"
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, fuzzy, gcc-internal-format
 #| msgid "unrecognized address"
 msgid "unknown OpenMP directive name in %qs attribute argument"
@@ -50439,12 +50441,12 @@ msgstr "ISO C 不允许省略 ?: 表达式中的第二项"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, fuzzy, gcc-internal-format
 #| msgid "%qD was declared here"
 msgid "first %<sizeof%> operand was declared here"
@@ -50600,7 +50602,7 @@ msgstr "ISO C90 不支持 %<__func__%> 预定义标识符"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "需要表达式"
@@ -50933,12 +50935,12 @@ msgstr "%C处数组声明需要另外一维"
 msgid "no type or storage class may be specified here,"
 msgstr "为%qs指定了存储类"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, fuzzy, gcc-internal-format
 msgid "empty property attribute list"
 msgstr "不能设置只读属性"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing property attribute"
@@ -50949,61 +50951,61 @@ msgstr "缺少 Code 属性"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "不能设置只读属性"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, fuzzy, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "不能设置只读属性"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "位置错误的%<@%D%>Objective-C++ 构造"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected %qE selector name"
 msgstr "需要选择语句"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, fuzzy, gcc-internal-format
 #| msgid "setter name must terminate with %<:%>"
 msgid "setter method names must terminate with %<:%>"
 msgstr "setter 的名字必须以%<:%>结尾"
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp flush%> may only be used in compound statements"
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<#pragma omp flush%>只能用在复合语句中"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "Objective-C 声明只能出现在全局作用域中"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<#pragma omp section%>只能用在%<#pragma omp sections%>结构中"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<#pragma omp section%>只能用在%<#pragma omp sections%>结构中"
@@ -51014,25 +51016,25 @@ msgstr "%<#pragma omp section%>只能用在%<#pragma omp sections%>结构中"
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<#pragma omp barrier%>只能用在复合语句中"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, fuzzy, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "需要语句"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<#pragma GCC pch_preprocess%>必须是第一个"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "太多的%qs子句"
@@ -51048,70 +51050,70 @@ msgstr "调度块大小表达式必须为整型"
 msgid "expected %<)%> or %<,%>"
 msgstr "需要 %<,%> 或 %<)%>"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD不是一个变量"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD不是一个变量"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr "折叠参数需要正整常量表达式"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<none%> or %<present%>"
 msgstr "需要%<none%>或%<shared%>"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "需要%<class%>、%<typename%>或%<template%>"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 #| msgid "expected expression"
 msgid "expected constant logical expression"
 msgstr "需要表达式"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "需要 %<;%>、%<,%> 或 %<)%>"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<catch%>"
 msgid "expected %<data%>"
 msgstr "需要%<catch%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<if%> clauses"
 msgstr "太多的%qs子句"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<if%> clauses without modifier"
 msgstr "太多的%qs子句"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -51134,23 +51136,23 @@ msgstr "%<num_threads%>值必须为正"
 msgid "%<num_tasks%> value must be positive"
 msgstr "%<num_threads%>值必须为正"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, fuzzy, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "%<num_threads%>值必须为正"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, fuzzy, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "%<num_threads%>值必须为正"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "需要整数表达式"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, fuzzy, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr "启用最小/最大值指令"
@@ -51161,102 +51163,102 @@ msgstr "启用最小/最大值指令"
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "需要%<class%>、%<typename%>或%<template%>"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr "太多的%qs子句"
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "太多的%qs子句"
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, fuzzy, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "调度块大小表达式必须为整型"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, fuzzy, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "%<num_threads%>值必须为正"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "太多 %<static%> 参数"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, gcc-internal-format
 msgid "unexpected argument"
 msgstr "非预期的参数"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute argument not an integer constant"
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "%qE属性需要一个整常量作为实参"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<self%> clauses"
 msgstr "太多的%qs子句"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "需要%<none%>或%<shared%>"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<new%>"
 msgid "expected %<concurrent%>"
 msgstr "需要%<new%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "需要%<class%>、%<typename%>或%<template%>"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, fuzzy, gcc-internal-format
 #| msgid "collapse argument needs positive constant integer expression"
 msgid "ordered argument needs positive constant integer expression"
 msgstr "折叠参数需要正整常量表达式"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, fuzzy, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "需要标识符或%<(%>"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, gcc-internal-format
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr ""
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "调度%<runtime%>不接受一个%<chunk_size%>参数"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "调度%<auto%>不接受一个%<chunk_size%>参数"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "%<num_threads%>值必须为正"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "无效的调度类型"
@@ -51266,22 +51268,22 @@ msgstr "无效的调度类型"
 msgid "%<num_teams%> value must be positive"
 msgstr "%<num_threads%>值必须为正"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, fuzzy, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "%<num_threads%>值必须为正"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, fuzzy, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr "%H折叠变量需要正整常数表达式"
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %<allocator%> or %<align%>"
@@ -51293,22 +51295,22 @@ msgstr "需要 %<,%> 或 %<)%>"
 msgid "duplicate %qs modifier"
 msgstr "重复的%qs"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "%H折叠变量需要正整常数表达式"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 msgid "multiple linear modifiers"
 msgstr "%q+D的类型限定冲突"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "multiple %<step%> modifiers"
@@ -51329,66 +51331,66 @@ msgstr "%H折叠变量需要正整常数表达式"
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr "%H折叠变量需要正整常数表达式"
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "%qs必须与%qs一起使用"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "无效的调度类型"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 msgid "invalid doacross kind"
 msgstr "无效的实型种别 %d，在%C处"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<always%> modifiers"
 msgstr "太多的%qs子句"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<close%> modifiers"
 msgstr "太多的%qs子句"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %<present%> modifiers"
 msgstr "太多的%qs子句"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, fuzzy, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, fuzzy, gcc-internal-format
 msgid "invalid map kind"
 msgstr "无效的实型种别 %d，在%C处"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "需要%<none%>或%<shared%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, fuzzy, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr "调度块大小表达式必须为整型"
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "无效的调度类型"
@@ -51404,92 +51406,92 @@ msgstr "无效的调度类型"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "需要 %<;%>、%<,%> 或 %<)%>"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 #| msgid "expected pointer"
 msgid "expected an OpenACC clause"
 msgstr "需要指针"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs对%qs而言无效"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, fuzzy, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%qE在子句%qs中不是一个变量"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 #| msgid "expected pointer"
 msgid "expected an OpenMP clause"
 msgstr "需要指针"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, fuzzy, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "%qD的声明隐藏了一个全局声明"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr "指定链接时使用%qD无效"
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, fuzzy, gcc-internal-format
 #| msgid "variably modified field at file scope"
 msgid "invalid OpenACC clause at file scope"
 msgstr "文件域中的动态可变字段"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "在%<for%>循环初始声明中声明了%<extern%>变量%qD"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "指定链接时使用%qD无效"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr "指定链接时使用%qD无效"
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "%<#pragma message%>后需要一个字符串"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -51505,7 +51507,7 @@ msgstr "%qE未声明"
 msgid "expected function name"
 msgstr "需要函数"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member template function"
 msgid "%qD does not refer to a function"
@@ -51516,22 +51518,22 @@ msgstr "%qD不是一个成员模板函数"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma align%>必须出现在 %D 的声明之前，忽略"
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma align%>必须出现在 %D 的声明之前，忽略"
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr "#pragma GCC optimize 不允许用在函数中"
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "#pragma GCC optimize 不允许用在函数中"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
@@ -51559,7 +51561,7 @@ msgstr ""
 msgid "modified here"
 msgstr "联合在此定义"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr "%H折叠变量需要正整常数表达式"
@@ -51602,117 +51604,117 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr "#pragma vtable 不再受支持"
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "需要 %<;%>、%<,%> 或 %<)%>"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "需要%<class%>、%<typename%>或%<template%>"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, fuzzy, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr "需要标识符或%<(%>"
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many atomic clauses"
 msgstr "太多的%qs子句"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many memory order clauses"
 msgstr "太多的%qs子句"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, fuzzy, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, fuzzy, gcc-internal-format
 #| msgid "%qT referred to as %qs"
 msgid "%qs clause requires %qs clause"
 msgstr "%qT作为%qs被引用"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%> after union definition"
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "联合定义后需要%<;%>"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "%<#pragma omp atomic%>运算符无效"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<delete%>"
 msgid "unexpected %<else%>"
 msgstr "需要%<delete%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "%<#pragma omp atomic%>运算符无效"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "%<#pragma omp atomic%>运算符无效"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "%<#pragma omp atomic%>运算符无效"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr "%<# pragma omp 基元的 capture%>使用两不同的变量用于内存"
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "整型表达式%qE不是常量"
@@ -51722,30 +51724,30 @@ msgstr "整型表达式%qE不是常量"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "整型表达式%qE不是常量"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "需要 %<;%>、%<,%> 或 %<)%>"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "需要 %<;%>、%<,%> 或 %<)%>"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "需要%<class%>、%<typename%>或%<template%>"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -51755,171 +51757,171 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr "需要%<(%>或行尾"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<#pragma omp flush%>只能用在复合语句中"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "需要%<none%>或%<shared%>"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<#pragma omp%> clause"
 msgid "expected %<#pragma omp scan%>"
 msgstr "需要%<#pragma omp%>子句"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<#pragma omp flush%>只能用在复合语句中"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "需要迭代声明或初始化"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 #| msgid "not enough perfectly nested loops"
 msgid "not enough nested loops"
 msgstr "不够完美的嵌套循环"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, gcc-internal-format
 msgid "for statement expected"
 msgstr "需要 for 语句"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "迭代变量%qD不应当是 firstprivate"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, fuzzy, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "{ 预期于运算式中 ? 之后"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, fuzzy, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "需要%<;%>"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "%<#pragma align%>必须出现在 %D 的声明之前，忽略"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<#pragma align%>必须出现在 %D 的声明之前，忽略"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected trait selector name"
 msgstr "需要选择语句"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, fuzzy, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "%3$L处哑过程‘%1$s’不能出现在基本过程‘%2$s’中"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, fuzzy, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr "%s 只接受 2 个参数"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 #| msgid "%<friend%> can only be specified inside a class"
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<friend%>只能在类中指定"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 #| msgid "collapse argument needs positive constant integer expression"
 msgid "%<score%> argument must be constant integer expression"
 msgstr "折叠参数需要正整常量表达式"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr "%qs必须与%qs一起使用"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected identifier or string literal"
 msgstr "需要字面字符串"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "property must be constant integer expression"
 msgstr "需要整数表达式"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, fuzzy, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr "内容 %qs 已经指定的在中 %<@synthesize%>"
@@ -51927,301 +51929,301 @@ msgstr "内容 %qs 已经指定的在中 %<@synthesize%>"
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
 msgstr "尚未支持代码模式 %<large%>"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 #| msgid "expected selection-statement"
 msgid "expected context selector set name"
 msgstr "需要选择语句"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<catch%>"
 msgid "expected %<match%>"
 msgstr "需要%<catch%>"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr "在函数%qs中"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 #| msgid "-f%s and -msdata=%s are incompatible"
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "-f%s 和 -msdata=%s 互不兼容"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "%<#pragma align%>必须出现在 %D 的声明之前，忽略"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "%<#pragma align%>必须出现在 %D 的声明之前，忽略"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, fuzzy, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr "%qD在数据子句中多次出现"
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, fuzzy, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr "使用了变长数组"
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, fuzzy, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "需要%<;%>"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<none%> or %<shared%>"
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "需要%<none%>或%<shared%>"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr "%<#pragma GCC pop_options%>缺少相应的%<#pragma GCC push_options%>"
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, fuzzy, gcc-internal-format
 #| msgid "%s attribute with %s attribute at %L"
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "%s 属性与 %s 属性共存在 %L"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "需要%<class%>、%<typename%>或%<template%>"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr "Objective-C 声明只能出现在全局作用域中"
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, fuzzy, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr "上一个声明"
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, fuzzy, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "上一个声明"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, fuzzy, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "需要%<(%>或行尾"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, fuzzy, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "需要函数"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "需要%<#pragma omp section%>或%<}%>"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "需要%<class%>、%<typename%>或%<template%>"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, fuzzy, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, fuzzy, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr "使用了变长数组"
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "使用了变长数组"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<;%>, %<,%> or %<)%>"
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "需要 %<;%>、%<,%> 或 %<)%>"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<,%> or %<)%>"
 msgid "expected %qs or %qs"
 msgstr "需要 %<,%> 或 %<)%>"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<#pragma omp barrier%>只能用在复合语句中"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, fuzzy, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr "%L处过程指针赋值中接口不匹配：%s"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 #| msgid "expected function"
 msgid "expected directive name"
 msgstr "需要函数"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "不能设置只读属性"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 #| msgid "expected pointer"
 msgid "expected assumption clause"
 msgstr "需要指针"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE在其首次使用后被声明为%<threadprivate%>"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "自动变量%qE不能是%<threadprivate%>"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%<threadprivate%>%qE的类型不完全"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr "%<__transaction_cancel%>而无需 transactional 内存支持已启用"
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr "%<__transaction_cancel%>在之内 %<__transaction_relaxed%>"
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, fuzzy, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "%<transaction_may_cancel_outer%> 函数调用无法在之内外异动作业或 %<transaction_may_cancel_outer%>"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr "%<__transaction_cancel%>无法在之内 %<__transaction_atomic%>"
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, fuzzy, gcc-internal-format
 msgid "no closing brace"
 msgstr "括入并行"
@@ -52370,7 +52372,7 @@ msgstr "提领%<void *%>指针"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "下标运算的左操作数既非数组也非指针"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "数组下标不是一个整数"
@@ -52401,7 +52403,7 @@ msgstr "%qD声明为引用却未被初始化"
 msgid "enum constant defined here"
 msgstr "枚举常量在此定义"
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -52516,18 +52518,18 @@ msgstr "C++ 中不允许从%qT到%qT的隐式转换"
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "提供给函数%qE的实参太少"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "与字面字符串比较的结构是不可预测的"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between pointer and integer"
 msgid "comparison between pointer and zero character constant"
 msgstr "比较指针和整数"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, fuzzy, gcc-internal-format
 #| msgid "casting %qT to %qT does not dereference pointer"
 msgid "did you mean to dereference the pointer?"
@@ -52553,7 +52555,7 @@ msgstr "函数指针不能相减"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "在指向不完全类型的指针上执行算术运算"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, fuzzy, gcc-internal-format
 msgid "arithmetic on pointer to an empty aggregate"
 msgstr "在指向不完全类型的指针上执行算术运算"
@@ -52865,7 +52867,7 @@ msgstr "将一个指针转换为大小不同的整数"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "从类型为%qT的函数调用转换到不匹配的类型%qT"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "将一个整数转换为大小不同的指针"
@@ -53052,7 +53054,7 @@ msgstr "赋值的左手边可能是 format 属性的备选时"
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "初始化的左手边可能是 format 属性的备选时"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "返回类型可能是 format 属性的备选"
@@ -53269,12 +53271,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "对可变数组成员的初始化"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -53284,7 +53286,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr "用字符串常量初始化的数组类型不合适"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "对非左值数组的使用无效"
@@ -53315,7 +53317,7 @@ msgstr "初始值设定中元素不是常量表达式"
 msgid "initializer element is not computable at load time"
 msgstr "初始值设定中的元素在载入时无法被计算出"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "不透明的向量类型不能被初始化"
@@ -53330,7 +53332,7 @@ msgstr "初始值设定项末尾有多余的花括号组"
 msgid "braces around scalar initializer"
 msgstr "标量初始化带花括号"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "在嵌套的上下文中初始化可变数组成员"
@@ -53421,7 +53423,7 @@ msgstr "结构初始值设定项中有多余元素"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "对可变数组成员非静态地初始化"
@@ -53461,7 +53463,7 @@ msgstr "ISO C++ 不允许%<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "%2$qE的实参 %1$d 必须是地址"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "被声明为%<noreturn%>的函数却有%<return%>语句"
@@ -53516,7 +53518,7 @@ msgstr "%<default%>标号未出现在 switch 语句内"
 msgid "break statement not within loop or switch"
 msgstr "break 语句不在循环或开关语句内"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -53562,27 +53564,27 @@ msgstr "比较将一律评估作为 %<false%> 用于地址的 %qD 将永不是
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "比较将一律评估作为 %<true%> 用于地址的 %qD 将永不是空值"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, fuzzy, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr "对不同枚举类型之间的比较给出警告"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, fuzzy, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr "形参数量不同"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "在类型%qT和%qT间比较"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, fuzzy, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr "找不到类%qE的接口"
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, fuzzy, gcc-internal-format
 #| msgid "comparing floating point with == or != is unsafe"
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
@@ -53655,29 +53657,29 @@ msgstr "需要标量时使用了联合类型"
 msgid "used vector type where scalar is required"
 msgstr "需要标量时使用了联合类型"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "{ 预期于运算式中 ? 之后"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD在子句%qs中不是一个变量"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qE在子句%qs中不是一个变量"
@@ -53688,85 +53690,85 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "字段%qE的类型不完全"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, fuzzy, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD在子句%qs中不是一个变量"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, fuzzy, gcc-internal-format
 msgid "low bound %qE of array section does not have integral type"
 msgstr "数组 new 的大小必须有整数类型"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, fuzzy, gcc-internal-format
 msgid "length %qE of array section does not have integral type"
 msgstr "数组 new 的大小必须有整数类型"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr "%L处过程指针赋值中接口不匹配：%s"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, fuzzy, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "使用了变长数组"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, fuzzy, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr "使用了变长数组"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, fuzzy, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr "for 循环増量表达式不起作用"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, fuzzy, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr "for 循环増量表达式不起作用"
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, fuzzy, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr "在过程入口处将数组段复制到一个连续的块中"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, fuzzy, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qE不是一个类"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 #| msgid "throwing NULL, which has integral, not pointer type"
 msgid "iterator %qD has neither integral nor pointer type"
@@ -53777,19 +53779,19 @@ msgstr "抛出 NULL，它的类型是整数而不是指针"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr "%<#pragma omp atomic%>表达式类型无效"
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD has incomplete type"
 msgid "iterator %qD has const qualified type"
 msgstr "形参%qD类型不完全"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 #| msgid "bit-field %qD with non-integral type"
 msgid "iterator step with non-integral type"
 msgstr "位段%qD非整型"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -53799,36 +53801,36 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for iteration variable %qE"
 msgid "begin expression refers to outer iterator %qD"
 msgstr "迭代变量%qE类型无效"
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for iteration variable %qE"
 msgid "end expression refers to outer iterator %qD"
 msgstr "迭代变量%qE类型无效"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for iteration variable %qE"
 msgid "step expression refers to outer iterator %qD"
 msgstr "迭代变量%qE类型无效"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 #| msgid "expected pointer"
 msgid "expected pointer in %qs clause"
 msgstr "需要指针"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, fuzzy, gcc-internal-format
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr "尚未支持代码模式 %<large%>"
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, fuzzy, gcc-internal-format
 msgid "%<inscan%> %<reduction%> clause with array section"
 msgstr "尚未支持代码模式 %<large%>"
@@ -53858,7 +53860,7 @@ msgstr "字段%qE的类型不完全"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE的类型对%<reduction(%s)%>无效"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr "用户定义的%qD总是计算所有两个参数"
@@ -53868,17 +53870,17 @@ msgstr "用户定义的%qD总是计算所有两个参数"
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "使用了变长数组"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE必须是%<threadprivate%>方可%<copyin%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -53893,24 +53895,24 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, fuzzy, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr "向量 delete 的实参类型既非指针也非数组"
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE在子句%qs中不是一个变量"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "%qD appears more than once in data clauses"
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD在数据子句中多次出现"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr "%qD在数据子句中多次出现"
@@ -53922,32 +53924,32 @@ msgstr "%qE在数据子句中多次出现"
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "%qD在数据子句中多次出现"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, fuzzy, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr "%qD在数据子句中多次出现"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE在子句%<firstprivate%>中不是一个变量"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE在子句%<lastprivate%>中不是一个变量"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qE在子句%<firstprivate%>中不是一个变量"
@@ -53967,7 +53969,7 @@ msgstr "%qD在%<lastprivate%>子句中不是一个变量"
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE在数据子句中多次出现"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr "%qE在子句%<lastprivate%>中不是一个变量"
@@ -53977,7 +53979,7 @@ msgstr "%qE在子句%<lastprivate%>中不是一个变量"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE在数据子句中多次出现"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr "%qE在子句%<firstprivate%>中不是一个变量"
@@ -53987,77 +53989,77 @@ msgstr "%qE在子句%<firstprivate%>中不是一个变量"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE在数据子句中多次出现"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "%qE在子句%<lastprivate%>中不是一个变量"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, fuzzy, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr "在 %L 处的推迟数组“%1$s”在初始化表达式中不被允许"
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 msgid "unsupported map expression %qE"
 msgstr "整点转换中类型无效"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD在数据子句中多次出现"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD在数据子句中多次出现"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD在子句%qs中不是一个变量"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a variable in clause %qs"
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE在子句%qs中不是一个变量"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, fuzzy, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE在数据子句中多次出现"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, fuzzy, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD在%<lastprivate%>子句中不是一个变量"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, fuzzy, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "%qE在子句%<lastprivate%>中不是一个变量"
@@ -54073,24 +54075,24 @@ msgstr "源不是一个指针"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "向量 delete 的实参类型既非指针也非数组"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, fuzzy, gcc-internal-format
 #| msgid "-frepo must be used with -c"
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr "-frepo 必须与 -c 一起使用"
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "too many %qs clauses on a task construct"
 msgstr "太多的%qs子句"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE可被预先确定为%qs，为%qs"
@@ -54100,38 +54102,38 @@ msgstr "%qE可被预先确定为%qs，为%qs"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, fuzzy, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr "使用了变长数组"
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, gcc-internal-format
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -54431,13 +54433,13 @@ msgstr "以从%qT转换为%qT"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "以从%qT转换为%qT"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] " 备选需要 %d 实参，但提供了 %d 个"
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -54771,605 +54773,605 @@ msgstr "不同的指针类型%qT和%qT组成的条件表达式中需要一个类
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "枚举和非枚举类型一起出现在条件表达式中"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "%<%D(int)%>没有出现在后缀%qs中，尝试使用前缀运算符"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "没有为后缀%2$qs声明%<%1$D(int)%>"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 #| msgid "return type of %qD is not %<int%>"
 msgid "return type of %qD is not %qs"
 msgstr "%qD的返回类型不是%<int%>"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "在%q#T和%q#T间比较"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to %<(%T) (%A)%>"
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "对%<(%T) (%A)%>的调用没有匹配"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 #| msgid "call of %<(%T) (%A)%> is ambiguous"
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "对%<(%T) (%A)%>的调用有歧义"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, fuzzy, gcc-internal-format
 #| msgid "non-placement deallocation function %q+D"
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "非预定位的释放函数%q+D"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 #| msgid "non-placement deallocation function %q+D"
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "非预定位的释放函数%q+D"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr "%qD没有相应的释放函数"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "没有合适的%<operator %s%>给%qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is private within this context"
 msgstr "在此上下文中"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "declared private here"
 msgstr "在此声明"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is protected within this context"
 msgstr "在此上下文中"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "declared protected here"
 msgstr "在此声明"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D is inaccessible"
 msgid "%q#D is inaccessible within this context"
 msgstr "%q+#D无法访问"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "将 NULL 作为非指针实参 %P 传递给%qD"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "  declared here"
 msgstr "在此声明"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "将 NULL 转换到非指针类型%qT"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "将%<false%>转换为指向%2$qD的实参 %1$P 的指针类型"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, fuzzy, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "将%<false%>转换为指向%2$qD的实参 %1$P 的指针类型"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  初始化%2$qD的实参 %1$P"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, fuzzy, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "显式转换运算符只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "%qT的初始值设定周围花括号太多"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 #, fuzzy
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "不能在初始化时将%qT转换为%qT"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 #| msgid "conversion to void will never use a type conversion operator"
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "向 void 的转换永远不会用到类型转换运算符"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 #, fuzzy
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr "不能在初始化时将%qT转换为%qT"
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "到类型%qT的转换无效，从类型%qT"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid conversion from %qH to %qI"
 msgstr "从类型%qT到类型%qT的转换无效"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr "从初始化列表转换为%qT将使用显式构造函数%qD"
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, gcc-internal-format
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr ""
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 #| msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "将类型为%2$qT的右值转换为%1$qT的 volatile 引用"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "用类型为%2$qT的右值初始化类型为%1$qT的非常量引用无效"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "用类型为%2$qT的右值初始化类型为%1$qT的非常量引用无效"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 #| msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "将类型为%2$qT的右值转换为%1$qT的 volatile 引用"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 #, fuzzy
 #| msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr "将类型为%2$qT的右值转换为%1$qT的 volatile 引用"
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 #, fuzzy
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "将%qT作为%q#D的%<this%>实参时丢弃了类型限定"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 #| msgid "cannot bind bitfield %qE to %qT"
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "无法将位段%qE绑定到%qT"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "不能将紧实的字段%qE绑定到%qT"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "无法将右值%qE绑定到%qT"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 #, fuzzy
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "C++ 中不允许从%qT到%qT的隐式转换"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, fuzzy, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "不能通过%<...%>传递有不能平凡复制的类型%q#T"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, fuzzy, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "不能声明指向限定函数类型%qT的引用"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, fuzzy, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "不能通过%<...%>接受不能平凡复制的类型%q#T；"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "递归计算%q#D的默认参数"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, fuzzy, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "%2$qD的第 %1$d 个形参的默认实参尚未被解析到"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "函数的实参可能是 format 属性的备选"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, fuzzy, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr "已弃用为非函数指定默认参数"
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, fuzzy, gcc-internal-format
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "从%qT到%qT的转换丢失了限定信息"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "在调用%qD时"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT是%qT的一个不可访问的基类"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, fuzzy, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "给予函数 %s 的参数太多，于 %L"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to void will not access object of non-trivially-copyable type %qT"
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "向 void 的转换不会访问具有不能平凡复制类型%qT的对象"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use assignment or value-initialization instead"
 msgstr "赋值(不是初始化)出现在声明中"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use assignment instead"
 msgstr "改用 #include"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, fuzzy, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr "在返回%qT的函数中，返回语句不带返回值"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "生成非类类型%qT的成员指针"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "赋值(不是初始化)出现在声明中"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use copy-assignment instead"
 msgstr "改用 #include"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, fuzzy, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr "(在%qs的初始化附近)"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to void will not access object of non-trivially-copyable type %qT"
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr "向 void 的转换不会访问具有不能平凡复制类型%qT的对象"
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, fuzzy, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr "不能通过%<...%>接受不能平凡复制的类型%q#T；"
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 msgid "%#qT declared here"
 msgstr "在此声明"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, fuzzy, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "%K%D 的第一个实参必须是一个指针，第二个必须是整常量"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, fuzzy, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr "inlined_to pointer 指向自身"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 #| msgid "cannot convert %qT to %qT"
 msgid "cannot convert %qH to %qI"
 msgstr "不能将%qT转换为%qT"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "对%<%T::%s(%A)%#V%>的调用没有匹配的函数"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "对%<%T::%s(%A)%#V%>的调用没有匹配的函数"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "调用非函数的%qD"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "不能直接调用构造函数%<%T::%D%>"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, fuzzy, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr "对于函数类型的类型转换，移除冗余的%<::%D%>"
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "对%<%D(%A)%>的调用没有匹配的函数"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "对重载的%<%s(%A)%>的调用有歧义"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "对非静态数据成员%q+D的无效使用"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from constructor"
 msgstr "对非静态数据成员%q+D的无效使用"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, fuzzy, gcc-internal-format
 msgid "pure virtual %q#D called from destructor"
 msgstr "对非静态数据成员%q+D的无效使用"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "没有对象无法调用成员函数%qD"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "传递%qT时选择%qT而不是%qT"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "ISO C++ 认为有歧义，尽管第一个备选的最差类型转换要好于第二个备选的最差类型转换"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 #| msgid "destructor cannot be static member function"
 msgid "try making the operator a %<const%> member function"
 msgstr "析构函数不能是静态成员函数"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "选择%qD而不是%qD"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 #| msgid "  for conversion from %qT to %qT"
 msgid "  for conversion from %qH to %qI"
 msgstr "以从%qT转换为%qT"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "因为前者的实参类型转换序列更好"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "重载解决时默认参数不匹配"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, fuzzy, gcc-internal-format
 #| msgid " candidate 1: %q+#F"
 msgid " candidate 1: %q#F"
 msgstr "备选 1: %q+#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, fuzzy, gcc-internal-format
 #| msgid " candidate 2: %q+#F"
 msgid " candidate 2: %q#F"
 msgstr "备选 2: %q+#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ISO C++ 认为有歧义，尽管第一个备选的最差类型转换要好于第二个备选的最差类型转换："
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, fuzzy, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr "暂时的约束到 %qD 只有持续直到建构子离开"
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 #, fuzzy
 #| msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "用类型为%2$qT的右值初始化类型为%1$qT的非常量引用无效"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 #| msgid "invalid initialization of reference of type %qT from expression of type %qT"
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "将类型为%qT的引用初始化为类型为%qT的表达式无效"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "possibly dangling reference to a temporary"
 msgstr "返回临时变量的引用"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
 msgstr ""
@@ -55417,7 +55419,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q+#D无法被重载"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "先前的声明%q+D"
@@ -55863,7 +55865,7 @@ msgstr "可变数组是结构中的唯一成员"
 msgid "next member %q#D declared here"
 msgstr "%q+D已在此声明过"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "%q#T重定义"
@@ -56000,7 +56002,7 @@ msgstr "函数%q+#D的抽象返回类型无效"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
@@ -56042,7 +56044,7 @@ msgstr "返回语句转换无效"
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%qD不是一个广义常函数"
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -56060,7 +56062,7 @@ msgstr "调用这些函数时给出警告"
 msgid "%q+E is not a constant expression"
 msgstr "%q+E不是一个常量表达式"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
@@ -56084,7 +56086,7 @@ msgstr "用户定义的%qD总是计算所有两个参数"
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 msgid "call to internal function %qE"
@@ -56134,7 +56136,7 @@ msgstr "%qT是%qT的有歧义的基类"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -56266,19 +56268,19 @@ msgstr "枚举值 %E 对其类型%<%T%>而言太大了"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "枚举值 %E 对其类型%<%T%>而言太大了"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized array element"
 msgstr "成员%qD是未初始化的引用"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
 msgid "dereferencing a null pointer in %qE"
 msgstr "提领%<void *%>指针"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -56286,485 +56288,485 @@ msgstr "提领%<void *%>指针"
 msgid "%qE is not a constant expression"
 msgstr "%qE不是一个常量表达式"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "%qD不能出现在常量表达式中"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 msgid "accessing uninitialized member %qD"
 msgstr "成员%qD是未初始化的引用"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, fuzzy, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr "初始值设定中数组索引不是整型常量表达式"
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "%qT 无法类型的完成常数运算式因为它有可变的 sub-objects"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 #| msgid "nested functions not supported on this target"
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "嵌套函数在此目标机上不受支持"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr ""
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, fuzzy, gcc-internal-format
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "成员%qD是未初始化的引用"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr ""
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, fuzzy, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "%qE的枚举值不是一个整数常量"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 #| msgid "lambda-expression in a constant expression"
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "常量表达式中的 Lambda 表达式"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "allocated here"
 msgstr "在此声明"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "%qD的枚举值不是一个整数常量"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, fuzzy, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "%qD的枚举值不是一个整数常量"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "%qD用在其自身的初始值设定中"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%q#D不是 const"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%q#D是 volatile"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, fuzzy, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD不能出现在常量表达式中"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, fuzzy, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD在其类外被声明为%<constexpr%>"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "new 声明中的表达式必须具有整数或枚举类型"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 #| msgid "lambda-expression in a constant expression"
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "常量表达式中的 Lambda 表达式"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "整型表达式%qE不是常量"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "跳转至语句表达式中"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "整型表达式%qE不是常量"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, fuzzy, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "扩展：从 %s 到 %s，位于 %L"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, fuzzy, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "扩展：从 %s 到 %s，位于 %L"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "跳转至语句表达式中"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr "在实例化%2$qD时模板实例化深度超过最大值 %1$d(使用 use -ftemplate-depth= 来增大最大值)"
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not a constant expression"
 msgid "inline assembly is not a constant expression"
 msgstr "初始值设定中元素不是常量表达式"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
 msgid "use of %qD"
 msgstr "错误地使用了%qD"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "%qE不是一个常量表达式"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr "在实例化%2$qD时模板实例化深度超过最大值 %1$d(使用 use -ftemplate-depth= 来增大最大值)"
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, fuzzy, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr "截取的变量 %qD 与 non-automatic 贮藏体持续时间"
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "枚举和非枚举类型一起出现在条件表达式中"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "跳转至语句表达式中"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, fuzzy, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "表达式%qE具有抽象类类型%qT，不能用于 throw 表达式中"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "%qT 无法类型的完成常数运算式因为它有可变的 sub-objects"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 msgid "pointed-to object declared here"
 msgstr "%q+D已在此声明过"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "整型表达式%qE不是常量"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "跳转至语句表达式中"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "整型表达式%qE不是常量"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a constant expression"
 msgid "%<goto%> is not a constant expression"
 msgstr "%qE不是一个常量表达式"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "跳转至语句表达式中"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 #| msgid "expected template-id"
 msgid "unexpected template-id %qE"
 msgstr "需要模板 ID"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, fuzzy, gcc-internal-format
 #| msgid "built-in function %qD takes one argument only"
 msgid "function concept must be called"
 msgstr "内建函数%qD只需要一个实参"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "address of a call to %qs is not a constant expression"
 msgstr "数组%qD的大小不是一个整数常表达式"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, fuzzy, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "KIND 参数 %s 在%L处必须是初始化表达式"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr "%qT 无法类型的完成常数运算式因为它有可变的 sub-objects"
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr "%qT 无法类型的完成常数运算式因为它有可变的 sub-objects"
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "%qT 无法类型的完成常数运算式因为它有可变的 sub-objects"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr "%qT 无法类型的完成常数运算式因为它有可变的 sub-objects"
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor %qE"
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "取析构函数%qE的地址"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "从具有类型%qT的右值表达式到类型%qT中的转换无效"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "整型表达式%qE不是常量"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "赋值时将整数赋给指针，未作类型转换"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, fuzzy, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr "address-of 对象 %qE 与线程本地或自动贮藏体并非常数运算式"
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "整型表达式%qE不是常量"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 #| msgid "lambda-expression in a constant expression"
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "常量表达式中的 Lambda 表达式"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 #| msgid "lambda-expression in a constant expression"
 msgid "new-expression is not a constant expression before C++20"
 msgstr "常量表达式中的 Lambda 表达式"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "虚函数不能是友元"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, fuzzy, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "常量表达式中类型错误"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "函数%qs的存储类%<__thread%>无效"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "非静态数据成员%qE被声明为%<constexpr%>"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "%L处被零除"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "跳转至语句表达式中"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "整型表达式%qE不是常量"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, fuzzy, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "%L处非常量初始化表达式"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, fuzzy, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "%2$L处 %1$s 种别无效"
@@ -57540,7 +57542,7 @@ msgstr "%<__builtin_prefetch%>的第三个实参必须是一个常量"
 msgid "no suspend point info for %qD"
 msgstr "%qD先前没有原型"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -57563,23 +57565,23 @@ msgstr "指针不能用作 case 常量"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr "使用了变长数组"
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
@@ -57601,75 +57603,75 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD不是一个模板函数"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor %qE"
 msgid "taking address of an immediate function %qD"
 msgstr "取析构函数%qE的地址"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "数组%qD的大小不是一个整数常表达式"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will always evaluate as %<true%>"
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "%qD的地址总是等价为%<true%>"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "析构函数不能是%<constexpr%>"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "忽略在其定义之后为%qT应用的属性"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 #| msgid "invalid argument of %qE attribute"
 msgid "pack expansion of %qE attribute"
 msgstr "属性%qE的参数无效"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 #| msgid "parse error in template argument list"
 msgid "use fold expression in the attribute argument instead"
 msgstr "模板实参表语法错误"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD不是一个类型"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class type"
 msgid "%qD is not a class type"
 msgstr "%qT不是一个类"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qE不是一个类"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "new 声明中的表达式必须具有整数或枚举类型"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -57718,7 +57720,7 @@ msgstr "将类型为%2$qT的右值转换为非常量引用类型%1$q#T"
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "从%qT到%qT的转换丢失了限定信息"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "从%qT转换到%qT并未提领指针"
@@ -58119,7 +58121,7 @@ msgstr "从先前的声明%q+F"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "对%qD的重声明在%<constexpr%>方面"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD"
 msgstr "先前的声明%q+D"
@@ -58267,8 +58269,8 @@ msgstr "先前对于%q+#D的非函数声明"
 msgid "%q#D previously defined here"
 msgstr "%q+#D已在此定义过"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 msgid "%q#D previously declared here"
 msgstr "%q+#D已在此定义过"
@@ -58346,58 +58348,42 @@ msgstr "为%2$q#D的第 %1$d 个形参指定了默认实参"
 msgid "previous specification in %q#D here"
 msgstr "%q+D的上一个定义在此"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with builtin"
-msgstr "%q+D的节与早先的声明冲突"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-msgid "declaration %qD conflicts with import"
-msgstr "%q+D的节与早先的声明冲突"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-#| msgid "declared here"
-msgid "import declared %q#D here"
-msgstr "在此声明"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting exporting for declaration %qD"
 msgstr "相互冲突的声明%q#D"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 #| msgid "previously declared here"
 msgid "previously declared here without exporting"
 msgstr "以前在此声明过"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %q+D was here"
 msgid "previous definition of %qD here"
 msgstr "%q+D的上一个定义在此"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+D was here"
 msgid "previous declaration of %qD here"
 msgstr "%q+D的上一个声明在此"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared virtual inside a union"
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "联合成员函数%qD被声明为虚函数"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "同一作用域中%qD冗余的重声明"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 #| msgid "deleted definition of %qD"
 msgid "deleted definition of %qD is not first declaration"
@@ -58411,44 +58397,44 @@ msgstr "删除了%qD的定义"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "在初次使用后显式特例化%qD"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "%q+D的数据区域与先前的声明冲突"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "%q#D 重定义"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "%qD与已用的函数冲突"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q#D未在类中声明"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%q+D重声明内联并有%<gnu_inline%>属性"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%q+D重声明为内联而没有%<gnu_inline%>属性"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -58456,2618 +58442,2618 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "友元%q#D的重声明不能有默认模板参数"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "%q#D的线程局部声明出现在其非线程局部声明之后"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "%q#D的非线程局部声明出现在其线程局部声明之后"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "%q#D重声明"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 #| msgid "redundant redeclaration of %qD in same scope"
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "同一作用域中%qD冗余的重声明"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration"
 msgid "previous label"
 msgstr "上一个声明"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "跳转至标号%qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "跳转至 case 标号"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  从这里"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  退出了 OpenMP 结构块"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, gcc-internal-format
 msgid "  crosses initialization of %q#D"
 msgstr "  跳过了%q+#D的初始化"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, gcc-internal-format
 msgid "  enters %<try%> block"
 msgstr "  进入了 try 块"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, gcc-internal-format
 msgid "  enters %<catch%> block"
 msgstr "  进入了 catch 块"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  进入了 OpenMP 结构块"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr "  进入了同步化或原子化语句"
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 #| msgid "jump into statement expression"
 msgid "  enters statement expression"
 msgstr "跳转至语句表达式中"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
 msgid "  enters %<constexpr if%> statement"
 msgstr "  需要语句"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, gcc-internal-format
 msgid "  enters %<consteval if%> statement"
 msgstr "  需要语句"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C99 does not support %qE"
 msgid "  does not destroy %qD"
 msgstr "ISO C99 不支持 %qE"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, fuzzy, gcc-internal-format
 msgid "  does not clean up handled exception"
 msgstr "new 声明中的表达式必须具有整数或枚举类型"
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, gcc-internal-format
 msgid "  skips initialization of %q#D"
 msgstr "  跳过了%q+#D的初始化"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "%qD used without template arguments"
 msgstr "%qD使用时未带模板参数"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "%qD不是一个函数模板"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T不是一个类"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "没有名为%q#T的类模板，在%q#T中 "
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, fuzzy, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "没有名为%q#T的类模板，在%q#T中 "
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "在%2$qT中查询%1$qT有歧义"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%>指定了%q#T，但后者不是一个类模板"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 #| msgid "%<typename %T::%D%> names %q#T, which is not a type"
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%>指定了%q#T，但后者不是一个类型"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 msgid "template parameters do not match template %qD"
 msgstr "给%qD的模板实参不匹配原先的模板%qD"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 #| msgid "-falign-labels=%d is not supported"
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "不支持 -falign-labels=%d"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D invalid; an anonymous union can only have non-static data members"
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q+#D无效；匿名联合只能有非静态的数据成员"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr ""
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous struct not inside named type"
 msgid "anonymous struct with base classes"
 msgstr "匿名结构不在有名类型内"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "有构造函数的成员%q+#D不允许在匿名聚合中出现"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "有构构函数的成员%q+#D不允许在匿名聚合中出现"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "有拷贝赋值运算符的成员%q+#D不能用在联合中"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "%q+T先前在此处有过声明"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, fuzzy, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "%q+#T的属性必须跟在%qs关键字后面"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "一个声明指定了多个类型"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "对 C++ 内建类型%qT的重声明"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "只能为函数指定%qs"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "typedef 声明中缺少类型名"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO C++ 不允许匿名结构"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<inline%> can only be specified for functions"
 msgstr "只能为函数指定%qs"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<virtual%> can only be specified for functions"
 msgstr "只能为函数指定%qs"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%>只能在类中指定"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "只能为构造函数指定%<explicit%>"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "只能为对象和函数指定存储类"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "只能为对象和函数指定类型限定"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "只能为对象和函数指定类型限定"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "只能为对象和函数指定类型限定"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, fuzzy, gcc-internal-format
 #| msgid "a storage class can only be specified for objects and functions"
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "只能为对象和函数指定存储类"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "此声明中的%<typedef%>被忽略"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 #| msgid "%<constexpr%> cannot be used for type declarations"
 msgid "%qs cannot be used for type declarations"
 msgstr "%<constexpr%>不能被用作类型声明"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "对%q#T重复的显式实例化"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, fuzzy, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "只能为类定义应用%qE属性"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "忽略在定义之外为类类型%qT应用的属性"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr "忽略在关联定义之外为依赖类类型%qT应用的属性"
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 #| msgid "typedef %qD is initialized (use decltype instead)"
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef%qD被初始化(改用 decltype)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "%q#D声明有%<extern%>并被初始化"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "%q#D的定义被标记为 %<dllimport%>"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q#D不是%qT的非静态数据成员"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 msgid "non-member-template declaration of %qD"
 msgstr "无效的成员模板声明%qD"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 msgid "does not match member template declaration here"
 msgstr "无效的成员模板声明%qD"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO C++ 不允许将%<%T::%D%>定义为%<%T::%D%>"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "ISO C++ 不允许成员%qD的初始化"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "出现在类外的%q#D的声明不是定义"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "变量%q#D有初始值设定，但是类型不完全"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "数组%q#D的元素类型不完全"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "聚合%q#D类型不完全，无法被定义"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD声明为引用却未被初始化"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "名字被用在 GNU 风格的数组指定元素初始值设定中"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "名字%qD用在 GNU 风格的数组指定元素初始值设定中"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "不平凡的代理初始值设定不受支持"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "整型表达式%qE不是常量"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "初始值设定无法决定%qD的大小"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "%qD缺少数组大小"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "大小为 0 的数组%qD"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "%qD的存储大小未知"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "%qD的存储大小不是常量"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, fuzzy, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "对不起：内联函数中静态数据%q+#D的语义是错的(您会得到此变量的多份复制)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, fuzzy, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "对不起：内联函数中静态数据%q+#D的语义是错的(您会得到此变量的多份复制)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, fuzzy, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr " 变通的作法是删除初始值设定"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized const %qD"
 msgid "uninitialized %<const %D%>"
 msgstr "未初始化的常量%qD"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "对广义常变量%qD的声明不同时是定义"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "对广义常变量%qD的声明不同时是定义"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "%q#T没有用户提供的默认构造函数"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, fuzzy, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr "建构子未被 user-provided 因为它是明确的缺席在中类别本体"
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, fuzzy, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr "和 implicitly-defined 建构子不初始化 %q+#D"
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "无效类型%qT被用作类型为%qT的向量的初始值设定"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "%qT的初始值设定必须在花括号内"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, fuzzy, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "名字%qD用在 GNU 风格的数组指定元素初始值设定中"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "对成员%qD的请求有歧义"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT没有名为%qD的非静态数据成员"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD不是%qT的成员"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "初始值设定无法决定%q+D的大小"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, fuzzy, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr "C99 指示项 %qE 外侧汇总初始设置式"
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "%qT的初始值设定项太多"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "类型%qT的标量初始化带花括号"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer for type %qT"
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "类型%qT的标量初始化带花括号"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "%qT的初始值设定周围缺少花括号"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "指向不完全类型%qT的指针不能自减"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "数组%q#T的元素类型不完全"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "变长复合字面量"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "%q+D类型不完全"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "标量对象%qD在初始值设定中需要一个元素"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "在 C++98 中%qD必须由构造函数而不是%<{...}%>初始化"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "数组%qD被有括号的字面字符串%qE所初始化"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "构造函数中对静态成员的初始化无效"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, fuzzy, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "类中对具有非整数类型%qT的静态数据成员的初始化无效"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "类中对具有非整数类型%qT的静态数据成员的初始化无效"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(需要一个类外的初始化)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "%qD声明为引用却未被初始化"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not in a declaration"
 msgid "could not find variant declaration"
 msgstr "%<[*]%>不在声明中"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr "给 %qE 的实递参数太少"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor %qE"
 msgid "%<declare variant%> on destructor %qD"
 msgstr "取析构函数%qE的地址"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "赋值(不是初始化)出现在声明中"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not allow designated initializers"
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++ 不允许指定元素初始值设定"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for %qs"
 msgid "%<register%> storage class specifier used"
 msgstr "为%qs指定了存储类"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "%q#D声明有缺少初始值设定"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, fuzzy, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "对成员的使用无效(您是否遗忘了%<&%>？)"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "返回值类型%q#T不完全"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "variable concept has no initializer"
 msgstr "可变大小的对象不能被初始化"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "隐藏了早先的类型声明%q#D"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute only applies to variables and functions"
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "%qE属性只能为变量或函数所使用"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "函数%q#D像变量一样被初始化"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, fuzzy, gcc-internal-format
 #| msgid "  cannot use obsolete binding at %q+D because it has a destructor"
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "不能在%q+D使用过时的绑定，因为它有析构函数"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is an inaccessible base of %qT"
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "%qT是%qT不可访问的基类"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "指向不完全类型%qT的指针不能自减"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 forbids variable length array %qE"
 msgid "cannot decompose variable length array %qT"
 msgstr "ISO C90 不允许变长数组%qE"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qs specified for structure field"
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] "为结构字段指定了%qs"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to %q#T"
 msgid "cannot decompose variable length vector %qT"
 msgstr "无法声明指向%q#T的指针"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "数组大小不是一个整数常表达式"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, fuzzy, gcc-internal-format
 #| msgid "invalid type for iteration variable %qE"
 msgid "in initialization of structured binding variable %qD"
 msgstr "迭代变量%qE类型无效"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to qualified function type %qT"
 msgid "cannot decompose union type %qT"
 msgstr "不能声明指向限定函数类型%qT的指针"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "生成非类类型%qT的成员指针"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "cannot decompose address"
 msgid "cannot decompose lambda closure type %qT"
 msgstr "无法分解地址"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 #| msgid "source is of incomplete class type"
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "源有不完全的类类型"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to static data member %qD"
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "不能对静态数据成员%qD取%<offsetof%>"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, fuzzy, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr "  %q+T 有 non-trivial 解构式"
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, fuzzy, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "初始值设定无法决定%qD的大小"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "%qD缺少数组大小"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "大小为 0 的数组%qD"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "其他类%qT的析构函数不能用作成员"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "其他类%qT的构造函数不能用作成员"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD声明为%<virtual%>变量"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "为%qD指定的%<const%>和%<volatile%>在 %s 声明中无效"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD声明为%<virtual%>参数"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD声明为%<inline%>参数"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "为%qD指定的%<const%>和%<volatile%>在 %s 声明中无效"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD声明为%<virtual%>类型"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD声明为%<inline%>类型"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "为%qD指定的%<const%>和%<volatile%>在 %s 声明中无效"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD声明为%<virtual%>字段"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD声明为%<inline%>字段"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "为%qD指定的%<const%>和%<volatile%>在 %s 声明中无效"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D声明为友元"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D声明时带有异常规范"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "%qD的定义不在包含%qT的命名空间中"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "静态成员函数%q#D的声明带有类型限定符"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared as a non-parameter"
 msgid "concept %q#D declared with function parameters"
 msgstr "%qD没有声明为一个参数"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD declared with void type"
 msgid "concept %q#D declared with a deduced return type"
 msgstr "形参%qD被声明为有 void 类型"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, fuzzy, gcc-internal-format
 #| msgid "Java method %qD has non-Java return type %qT"
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "Java 方法%qD返回非 Java 类型%qT"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "-fmit-class-file 的别名"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 msgid "a function concept cannot be constrained"
 msgstr "不能内联%<main%>函数"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template function"
 msgid "constraints on a non-templated function"
 msgstr "%qD不是一个模板函数"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "友元声明不在类定义内"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "在友元声明中定义显式特例化%qD"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "在基本模板的声明中对模板标识符%qD的使用无效"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "友元模板特例化%qD中不允许出现默认参数"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "%<inline%>不允许用于友元模板特例化%qD的声明"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D outside of class is not definition"
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "出现在类外的%q#D的声明不是定义"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "不能将%<::main%>声明为一个模板"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "不能将%<::main%>声明为 inline"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be static"
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "不能将%<::main%>声明为 static"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "不能将%<::main%>声明为 static"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "非成员函数%qD不能拥有 cv 限定符"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "成员函数%qD不能拥有 cv 限定符"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 #| msgid "static member function %qD cannot have cv-qualifier"
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "成员函数%qD不能拥有 cv 限定符"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "非成员函数%qD不能拥有 cv 限定符"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "成员函数%qD不能拥有 cv 限定符"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "成员函数%qD不能拥有 cv 限定符"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "explicit object parameter declared here"
 msgstr "模板形参类型%qT声明为%<friend%>"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %qD must appear at namespace scope"
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "%qD的特例化必须出现在命名空间内"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %qD must appear at namespace scope"
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "%qD的特例化必须出现在命名空间内"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "deduction guide %qD must not have a function body"
 msgstr "%qD没有声明为一个函数"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, fuzzy, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr "特例化模板有 C 链接"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "%qD 带有无效参数列表"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, fuzzy, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr "整数字尾 %<%s%>带阴影由实现"
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, fuzzy, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr "浮点数字尾 %<%s%>带阴影由实现"
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, fuzzy, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr "实字运算符后缀无法前继的由 %<_%>被保留的用于未来标准化"
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%qD必须是一个非静态的成员函数"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%>必须返回%<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "隐式声明的%qD的定义"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, fuzzy, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "默认化声明%q+D"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "默认化声明%q+D"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "成员函数%q#D未在类%qT中声明"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be a template"
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "不能将%<::main%>声明为一个模板"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 #| msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "自动变量%qE不能是%<threadprivate%>"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 #| msgid "specialization of %qD must appear at namespace scope"
 msgid "concept must be defined at namespace scope"
 msgstr "%qD的特例化必须出现在命名空间内"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "a variable concept cannot be constrained"
 msgstr "可变大小的对象不能被初始化"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, fuzzy, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "类中对具有非整数类型%qT的静态数据成员的初始化无效"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "类中对具有非整数类型%qT的静态数据成员的初始化无效"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, fuzzy, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "类中对具有非整数类型%qT的静态数据成员的初始化无效"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "类中对具有非整数类型%qT的静态数据成员的初始化无效"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ 不允许在类内初始化非常量静态成员%qD"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ 不允许初始化成员常量%qD，因为它有非整数的类型%qT"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "数组%qD的大小具有非整数类型%qT"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "数组%qT的大小的类型不是整数"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "数组%qD的大小不是一个整数常表达式"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "数组大小不是一个整数常表达式"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C 不允许大小为 0 的数组%qD"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ 不允许大小为 0 的数组"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++ 不允许变长数组%qD"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++ 不允许变长数组"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "使用了变长数组%qD"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, gcc-internal-format
 msgid "variable length array is used"
 msgstr "使用了变长数组"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "数组维数溢出"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "成员函数%qD未在%qT中声明"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member reference type %qT"
 msgid "creating array of template placeholder type %qT"
 msgstr "生成引用类型%qT的成员指针"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "%qD声明为 void 的数组"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, gcc-internal-format
 msgid "creating array of void"
 msgstr "创建 void 数组"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "%qD声明为函数的数组"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, gcc-internal-format
 msgid "creating array of functions"
 msgstr "创建函数的数组"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "%qD声明为引用的数组"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, gcc-internal-format
 msgid "creating array of references"
 msgstr "创建引用的数组"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "%qD声明为函数成员的数组"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, gcc-internal-format
 msgid "creating array of function members"
 msgstr "创建函数成员的组织"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "多维数组%qD的声明必须至少指定除第一维以外所有维的大小"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "声明多维数组必须至少指定除第一维以外所有维的大小"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 #| msgid "variable length array is used"
 msgid "variable-length array of %<auto%>"
 msgstr "使用了变长数组"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "为构造函数指定返回值无效"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "%<operator %T%>的声明中不能使用限定符"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "指定析构函数的返回类型无效"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "%<operator %T%>的声明中不能使用限定符"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "为%<operator %T%>指定了返回值"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "%<operator %T%>的声明中不能使用限定符"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 #| msgid "return type specification for destructor invalid"
 msgid "return type specified for deduction guide"
 msgstr "指定析构函数的返回类型无效"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "%<operator %T%>的声明中不能使用限定符"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 #| msgid "too many template parameter lists in declaration of %qD"
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "%qD声明时模板参数表太多"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting specifiers in declaration of %qs"
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "%qs的声明中有相互冲突的限定符"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "无名变量或字段声明为 void"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "变量或字段声明为 void"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "在全局作用域外为函数%qs指定%<inline%>无效"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, fuzzy, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "析构函数不能被 cv 限定"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "对限定名%<::%D%>的使用无效"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "对限定名%<%T::%D%>的使用无效"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "对限定名%<%D::%D%>的使用无效"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%q#T is not a class or namespace"
 msgstr "%qT既不是类也不是命名空间"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "declaration of %qE as non-function"
 msgstr "%qD没有声明为一个函数"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-member"
 msgid "declaration of %qE as non-member"
 msgstr "%qD未声明为成员"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "缺少声明标识符：使用了保留字%qD"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "函数定义未声明形参"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "%qD没有声明为一个函数"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "形参声明中出现的 typedef 声明无效"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "声明的形参%qD不存在"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, gcc-internal-format
 msgid "both %qs and %qs specified"
 msgstr ""
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 #| msgid "%<constexpr%> cannot appear in a typedef declaration"
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%<constexpr%>不能被用于 typedef 声明"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "%qs的声明指定了两个以上的数据类型"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, gcc-internal-format
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C++ 不支持单独以 %<complex%> 表示 %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ 不允许声明无类型的%qs"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "嵌套函数在此目标机上不受支持"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++ 对 %2$qs 不支持 %<__int%1$d%>"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 #| msgid "%<signed%> and %<unsigned%> specified together for %qs"
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "为%qs同时给定了%<signed%>和%<unsigned%>"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 #| msgid "%<long%> and %<short%> specified together for %qs"
 msgid "%<long%> and %<short%> specified together"
 msgstr "为%qs同时给定了%<long%>和%<short%>"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %qT"
 msgstr "%qE可被预先确定为%qs，为%qs"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with typedef-name %qD"
 msgstr "%qE不是一个 typedef 类型，也不是一个内建类型"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "%qE不是一个 typedef 类型，也不是一个内建类型"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %<typeof%>"
 msgstr "%qE不是一个 typedef 类型，也不是一个内建类型"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "对%qs而言无效的复数"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "成员%qD不能既被声明为虚函数，又被声明为静态函数"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "成员%qD不能既被声明为虚函数，又被声明为静态函数"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "形参声明中出现的 typedef 声明无效"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "为模板参数%qs指定了存储类"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "为形参%qs指定了存储类"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 #| msgid "a parameter cannot be declared %<constexpr%>"
 msgid "a parameter cannot be declared %qs"
 msgstr "形参不能被声明为%<constexpr%>"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%>用在类声明以外"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "%q+T先前在此处有过声明"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, fuzzy, gcc-internal-format
 #| msgid "invalid function declaration"
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "无效的函数声明"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "%q+T先前在此处有过声明"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr "%q+T先前在此处有过声明"
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "%qs的声明指定了多个存储类"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "为%qs指定了存储类"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "嵌套函数%qs被声明为%<extern%>"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "在文件层将%qs声明为%<auto%>"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "函数作用域的%qs隐式为 auto，却被声明为%<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "为友元函数声明指定了无效的存储类"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored"
 msgstr "忽略%qs属性"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, fuzzy, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr "类型在非前向声明的详尽类型限定符中被忽略"
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 #| msgid "multiple storage classes in declaration of %qs"
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "%qs的声明指定了多个存储类"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, fuzzy, gcc-internal-format
 #| msgid "Expected left parenthesis"
 msgid "remove parentheses"
 msgstr "需要左圆括号"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr "函数‘%s’在%L处不能有初始值设定"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, fuzzy, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr "虚函数不能是友元"
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "%qE不是类型%qT的有效模板实参，因为它的类型是%qT"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in conditions"
 msgid "the type of an explicit object member function is a regular function type"
 msgstr "类型不能定义在条件表达式中"
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "valid explicit object parameter declared here"
 msgstr "模板形参类型%qT声明为%<friend%>"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr "%qE属性在类型上被忽略"
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, fuzzy, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr "%qs函数使用了%<auto%>类型限定却没有迟返回类型"
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, fuzzy, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "带作用域的枚举只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 msgid "virtual function cannot have deduced return type"
 msgstr "虚函数不能是友元"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, fuzzy, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr "%qs函数使用迟返回类型%qT作为它的类型，而不是%<auto%>"
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, fuzzy, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr "%qs函数使用迟返回类型%qT作为它的类型，而不是%<auto%>"
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<auto%>"
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "错误地使用了%<auto%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "deduced class type %qD in function return type"
 msgstr "忽略函数返回类型的类型限定"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, fuzzy, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr "虚函数不能是友元"
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, fuzzy, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, fuzzy, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr "%qs函数使用了迟返回类型却未用%<auto%>类型限定声明"
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, fuzzy, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr "虚函数不能是友元"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr "调用了有限定 void 返回类型的函数"
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs声明为返回一个函数的函数"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs声明为返回一个数组的函数"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "%L处 CASE 语句中的逻辑范围是不被允许的"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "析构函数不能是静态成员函数"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, fuzzy, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "析构函数不能是静态成员函数"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "析构函数不能被 cv 限定"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, fuzzy, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "析构函数不能被 cv 限定"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, fuzzy, gcc-internal-format
 msgid "destructors may not be ref-qualified"
 msgstr "析构函数不能被 cv 限定"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 msgid "constructors may not be ref-qualified"
 msgstr "析构函数不能被 cv 限定"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "构造函数不能被声明为虚函数"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "虚函数不能是友元"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "友元声明不在类定义内"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "局部类定义中不能定义友元函数%qs"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 #| msgid "non-member function %qD cannot have cv-qualifier"
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "非成员函数%qD不能拥有 cv 限定符"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "模板不能是%<virtual%>的"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 #| msgid "In static member function %qs"
 msgid "%qD cannot be an explicit object member function"
 msgstr "在静态成员函数%qs中"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "析构函数不能有参数"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "无法声明指向%q#T的指针"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "无法声明对%q#T的引用"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "无法声明指向%q#T成员的指针"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "不能声明指向限定函数类型%qT的引用"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "不能声明指向限定函数类型%qT的指针"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr "无法声明对%q#T的引用，因为它不是 typedef 或者模板类型实参"
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "模板标识符%qD用作声明"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "成员函数隐式地成为所属类的友元"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "有多余的限定%<%T::%>在成员%qs上"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 #| msgid "cannot define member function %<%T::%s%> within %<%T%>"
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "无法定义成员函数%<%T::%s%>，在%<%T%>中"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "无法声明成员%<%T::%s%>，在%qT中"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "无法声明成员%<%T::%s%>，在%qT中"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "非形参%qs不能是一个参数包"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "数据成员不能具有可变类型%qT"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "参数不能具有可变类型%qT"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "%<virtual%>用在类声明以外"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> in friend declaration"
 msgstr "%<inline%>用于空声明中"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, fuzzy, gcc-internal-format
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "只有构造函数才能被声明为%<explicit%>"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "非成员%qs不能被声明为%<mutable%>"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "非对象成员%qs不能被声明为%<mutable%>"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "函数%qs不能被声明为%<mutable%>"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "static %qs cannot be declared %<mutable%>"
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "静态%qs不能被声明为%<mutable%>"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "const %qs cannot be declared %<mutable%>"
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "常量%qs不能被声明为%<mutable%>"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, fuzzy, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "常量%qs不能被声明为%<mutable%>"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in conditions"
 msgid "typedef may not be a function definition"
 msgstr "类型不能定义在条件表达式中"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in conditions"
 msgid "typedef may not be a member function definition"
 msgstr "类型不能定义在条件表达式中"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 #| msgid "%<[*]%> not in a declaration"
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<[*]%>不在声明中"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, fuzzy, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "typedef%q+D声明为%<inline%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "typedef 名不能是嵌套名指定"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ISO C++ 不允许嵌类的类型%qD与其所属的类重名"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "友元函数声明中出现了%<inline%>"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "模板参数不能是友元"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "友元声明需要 class，即%<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "友元声明需要 class，即%<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "试图让%qT成为全局域的友元"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "非成员函数类型上的限定符无效"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "抽象声明%qT被用作声明"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "在返回%qT的函数中，返回语句不带返回值"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "不能在参数声明中使用%<::%>"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "不能将形参%q+D声明为具有抽象类型%qT"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr "%qD不是一个函数模板"
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "形参声明为%<auto%>"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "形参声明为%<auto%>"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "使用模板名%qE时不带实参表无效"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "非静态数据成员%qE被声明为%<constexpr%>"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids zero-size array %qD"
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C 不允许大小为 0 的数组%qD"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C90 不允许可变数组成员"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "错误地使用了%<::%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "%qD模板声明无效"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared virtual inside a union"
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "联合成员函数%qD被声明为虚函数"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot be declared virtual, since it is always static"
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD不能声明为虚函数，因为它总是静态的"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "在析构函数%qD中的友元声明需要限定名"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "%qD声明为%qT的一个成员"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "a destructor cannot be %qs"
 msgstr "析构函数不能是%<constexpr%>"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "在构造函数%qD中的友元声明需要限定名"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, fuzzy, gcc-internal-format
 #| msgid "a destructor cannot be %<constexpr%>"
 msgid "a constructor cannot be %<concept%>"
 msgstr "析构函数不能是%<constexpr%>"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be a member function"
 msgstr "析构函数不能是静态成员函数"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 #| msgid "cannot open %s"
 msgid "%qD cannot be %qs"
 msgstr "不能打开 %s"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr "模板声明%q#D"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 msgid "variable template declared here"
 msgstr "%q+D已在此声明过"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 msgid "field %qD has incomplete type %qT"
 msgstr "%qD类型不完全"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "名字%qT类型不完全"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE既不是函数也不是成员函数；不能声明为友元"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is neither function nor member function; cannot be declared friend"
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "%qE既不是函数也不是成员函数；不能声明为友元"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, fuzzy, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr "类型在非前向声明的详尽类型限定符中被忽略"
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member %qE declared %<constexpr%>"
 msgid "static data member %qE declared %qs"
 msgstr "非静态数据成员%qE被声明为%<constexpr%>"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "非静态数据成员%qD具有 Java 类类型"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 #| msgid "non-static data member %qE declared %<constexpr%>"
 msgid "non-static data member %qE declared %qs"
 msgstr "非静态数据成员%qE被声明为%<constexpr%>"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "函数%qs的存储类%<auto%>无效"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "函数%qs的存储类%<register%>无效"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "函数%qs的存储类%<__thread%>无效"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "函数%qs的存储类%<__thread%>无效"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "不能为%q+D指定对齐"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, fuzzy, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "函数定义中不允许出现 asm 指定"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, fuzzy, gcc-internal-format
 #| msgid "%<static%> specified invalid for function %qs declared out of global scope"
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "在全局作用域外为函数%qs指定%<static%>无效"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "在全局作用域外为函数%qs指定%<inline%>无效"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "虚函数%qs不是类成员"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "%qs定义在在非类作用域中"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "%qs定义在在非类作用域中"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "不能将成员函数%qD声明为有静态链接"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "不能在另一个函数中声明一个静态函数"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "与声明不同，定义静态数据成员时不能使用%<static%>"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "静态成员%qD声明为%<register%>"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "不能显式地将成员%q#D声明为有外部链接"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of constexpr variable %qD is not a definition"
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "对广义常变量%qD的声明不同时是定义"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 #| msgid "a parameter cannot be declared %<constexpr%>"
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "形参不能被声明为%<constexpr%>"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs已初始化，却又被声明为%<extern%>"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs既有%<extern%>又有初始值设定"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "默认实参%qE使用了局部变量%qD"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "默认实参%qE使用了局部变量%qD"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "ISO C 不允许前向参数声明"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "对模板类型参数%qT的使用无效"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "不能将形参%q+D声明为具有抽象类型%qT"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "形参%qD被无效地被声明为具有方法类型"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "形参%qD包含了指向具有未知边界数组%qT的指针"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "形参%qD包含了指向具有未知边界数组%qT的引用"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "无效的构造函数：您要的可能是%<%T (const %T&)%>"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD不能在命名空间声明"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD不能被声明为静态的"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a non-static member function"
 msgstr "%qD必须是一个非静态的成员函数"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "%qD必须是一个非静态的成员函数"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, fuzzy, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD必须是一个非静态成员函数或非成员函数"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD的实参必须有类或枚举类型"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ prohibits overloading operator ?:"
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ 不允许重载 ?: 运算符"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD不能带可变数量的实参"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either zero or one argument"
 msgid "%qD must have either zero or one argument"
 msgstr "%qD必须带 0 或 1 个实参"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either one or two arguments"
 msgid "%qD must have either one or two arguments"
 msgstr "%qD必须带 1 或 2 个实参"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its argument"
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "后缀%qD必须使用%<int%>作为它的参数"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its second argument"
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "后缀%qD必须使用%<int%>作为它的第二个参数"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have no arguments"
 msgstr "%qD带且仅带 2 个实参"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly one argument"
 msgid "%qD must have exactly one argument"
 msgstr "%qD带且仅带 1 个实参"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have exactly two arguments"
 msgstr "%qD带且仅带 2 个实参"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD不能有默认参数"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to void will never use a type conversion operator"
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "向 void 的转换永远不会用到类型转换运算符"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to a reference to the same type will never use a type conversion operator"
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "向具有相同类型的引用的转换永远不会用到类型转换运算符"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to the same type will never use a type conversion operator"
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "向相同类型的转换永远不会用到类型转换运算符"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to a reference to a base class will never use a type conversion operator"
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "向指向基类的引用的转换永远不会用到类型转换运算符"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, fuzzy, gcc-internal-format
 #| msgid "conversion to a base class will never use a type conversion operator"
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "向基类的转换永远不会用到类型转换运算符"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "用户定义的%qD总是计算所有两个参数"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "前缀%qD应当返回%qT"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "后缀%qD应当返回%qT"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD应当返回值而非引用"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "使用模板类型形参%qT，在%qs后"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, fuzzy, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "使用模板类型形参%qT，在%qs后"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "使用 typedef 名%qD，在%qs后"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, fuzzy, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "%q+T先前在此处有过声明"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "%qT作为%qs被引用"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 #| msgid "%q+T has a previous declaration here"
 msgid "%qT has a previous declaration here"
 msgstr "%q+T先前在此处有过声明"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "%qT作为枚举被引用"
@@ -61079,119 +61065,102 @@ msgstr "%qT作为枚举被引用"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "%<%s %T%>需要模板参数"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "对%qD的引用有歧义"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 #| msgid "function template %qD redeclared as a class template"
 msgid "class template %qD redeclared as non-template"
 msgstr "函数模板%qD重声明为类模板"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD与其声明所在的类重名"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT不是一个模板"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "使用枚举%q#D前没有给出声明"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "%qT重声明为非模板"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD to be a bit-field type"
-msgid "cannot declare %qD in a different module"
-msgstr "不能将%qD声明为位段类型"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, gcc-internal-format
-msgid "previously declared here"
-msgstr "以前在此声明过"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "派生联合%qT无效"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, fuzzy, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr "此函数中的%qD在使用前未初始化"
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct or virtual base of %qT"
 msgid "%qT defined with direct virtual base"
 msgstr "类型%qT不是%qT的直接或虚基类"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "基类型%qT不是结构或类"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "递归的类型%qT未定义"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "重复的基类型%qT无效"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD to be a bit-field type"
-msgid "cannot declare %qD in different module"
-msgstr "不能将%qD声明为位段类型"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, fuzzy, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr "范围/unscoped 不匹配在中 enum %q#T"
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, gcc-internal-format
 msgid "previous definition here"
 msgstr "先前的定义在这里"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, fuzzy, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr "条件表达式中类型不匹配"
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, fuzzy, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr "不同的下层的输入 enum %q#T"
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 #| msgid "underlying type %<%T%> of %<%T%> must be an integral type"
 msgid "underlying type %qT of %qT must be an integral type"
@@ -61201,84 +61170,84 @@ msgstr "%<%2$T%>的内在类型%<%1$T%>必须是整型"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "没有一个整数类型可以表示%qT的所有枚举值"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 #| msgid "enumerator value for %qD is not an integer constant"
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "%qD的枚举值不是一个整数常量"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "%qD的枚举值不是一个整数常量"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, fuzzy, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "对%<unsigned long%>类型而言整数常量太大"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "对%<unsigned long%>类型而言整数常量太大"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "%qD处枚举值溢出"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "枚举值 %E 对其类型%<%T%>而言太大了"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "%q#T多次定义"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "返回值类型%q#T不完全"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%>应当返回一个对%<*this%>的引用"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "在返回%qT的函数中，返回语句不带返回值"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, fuzzy, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "由于%<volatile%>，函数返回类型不兼容"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "在有返回值的函数中未发现 return 语句"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD已在类%qT中定义过"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 msgid "using %qs"
 msgstr "括入并行"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, fuzzy, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr "%qD的类型默认为%<int%>"
@@ -61333,7 +61302,7 @@ msgstr "不能 delete 一个函数。只有指向对象的指针才是%<delete%>
 msgid "deleting %qT is undefined"
 msgstr "删除%qT未定义"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "%q#D声明为模板"
@@ -61343,7 +61312,7 @@ msgstr "%q#D声明为模板"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "提供的模板参数列表与 %qD 的模板不符"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "析构函数%qD被声明为一个成员模板"
@@ -61537,72 +61506,72 @@ msgstr "析构函数不能是静态成员函数"
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%>的第一个形参类型为%qT"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr "%qT有一个字段%qD使用匿名命名空间"
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr "%qT有一个字段%qD使用匿名命名空间"
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%qT有一个字段%qD使用匿名命名空间"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a field %qD whose type uses the anonymous namespace"
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr "%qT有一个字段%qD使用匿名命名空间"
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qT被声明为比其字段%qD的类型有更高的可见性"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which has no linkage"
 msgstr "%qT有一个基类%qT使用匿名命名空间"
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr "%qT有一个基类%qT使用匿名命名空间"
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which has internal linkage"
 msgstr "%qT有一个基类%qT使用匿名命名空间"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has a base %qT whose type uses the anonymous namespace"
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr "%qT有一个基类%qT使用匿名命名空间"
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT被声明为比其基类%qT有更高的可见性"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%q+#D声明为具有匿名类型，在使用前未被定义"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr "%q+#D声明为具有匿名类型，在使用前未被定义"
@@ -61611,118 +61580,117 @@ msgstr "%q+#D声明为具有匿名类型，在使用前未被定义"
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "匿名类型不具任何链结用来声明变量 %q#D 与链结"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "匿名类型不具任何链结用来声明函数 %q#D 与链结"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, fuzzy, gcc-internal-format
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q+#D未指明非限定类型，所以它不被用作外部链接"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q+#D声明为具有局部类型%qT，在使用前未被定义"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%q+#D声明为具有局部类型%qT，在使用前未被定义"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, fuzzy, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr "constexpr 变量%2$qD的类型%1$qT不是字面常量"
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, fuzzy, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "%q+#D的早先声明有%qL链接"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "%q+D的节与早先的声明冲突"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr "先前的声明%q+D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, fuzzy, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr "-fabi-version=4 (or =0) 可以改变向量修饰来避免这个错误"
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D used but never defined"
 msgid "inline function %qD used but never defined"
 msgstr "使用了内联函数%q+D但从未定义过"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 #| msgid "default argument missing for parameter %P of %q+#D"
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "%2$q+#D的第 %1$P 个形参缺少默认实参"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, fuzzy, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr "模板参数包不能有默认参数"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 #| msgid "class %qE is deprecated"
 msgid "implicitly-declared %qD is deprecated"
 msgstr "已弃用类%qE"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, fuzzy, gcc-internal-format
 #| msgid "converting lambda which uses %<...%> to function pointer"
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "将使用了%<...%>的 Lambda 转换为函数指针"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "使用了被删除的函数%qD"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %qD differs in %<constexpr%>"
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "对%qD的重声明在%<constexpr%>方面"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, gcc-internal-format
 msgid "use of built-in parameter pack %qD outside of a template"
 msgstr ""
 
 #: cp/error.cc:4115
-#, fuzzy, gcc-internal-format
-#| msgid "no arguments"
+#, gcc-internal-format
 msgid "(no argument)"
-msgstr "没有参数"
+msgstr "（没有参数）"
 
 #: cp/error.cc:4207
 #, gcc-internal-format
@@ -61750,9 +61718,9 @@ msgid "lambda expressions only available with %<-std=c++11%> or %<-std=gnu++11%>
 msgstr "Lambda 表达式只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
 #: cp/error.cc:4574
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "C++11 auto only available with %<-std=c++11%> or %<-std=gnu++11%>"
-msgstr "C++0x auto 只在 -std=c++0x 或 -std=gnu++0x 下可用"
+msgstr "C++11 auto 只在 %<-std=c++11%> 或 %<-std=gnu++11%> 下可用"
 
 #: cp/error.cc:4579
 #, fuzzy, gcc-internal-format
@@ -61820,7 +61788,7 @@ msgstr "对%<%T::%D%>的引用有歧义"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qT没有名为%qE的成员"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD不是%qT的成员"
@@ -61831,7 +61799,7 @@ msgstr "%qD不是%qT的成员"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qT没有名为%qE的成员"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD不是%qD的成员"
@@ -61858,49 +61826,49 @@ msgstr "异常处理已被禁用，使用 -fexceptions 启用"
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "抛出 NULL，它的类型是整数而不是指针"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  在抛出的表达式中"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "不能将形参%q+D声明为具有抽象类型%qT"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, fuzzy, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "无法为类型%qT创建类型信息，因为它的大小是可变的"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, fuzzy, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "无法为类型%qT创建类型信息，因为它的大小是可变的"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, fuzzy, gcc-internal-format
 #| msgid "exception of type %qT will be caught"
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "类型为%qT的异常将会"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, fuzzy, gcc-internal-format
 #| msgid "for %qD"
 msgid "for type %qT"
 msgstr "为 %qD"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "%<...%>处理者必须是其 try 块中的最后一个处理者"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, fuzzy, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr "noexcept-expression 评估到 %<false%> 因为调用到 %qD"
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, fuzzy, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr "但是 %q+D 不丢掷；也许它应该被声明 %<noexcept%>"
@@ -62028,10 +61996,9 @@ msgid "default member initializer for %qD required before the end of its enclosi
 msgstr ""
 
 #: cp/init.cc:664
-#, fuzzy, gcc-internal-format
-#| msgid "union defined here"
+#, gcc-internal-format
 msgid "defined here"
-msgstr "联合在此定义"
+msgstr "在此定义"
 
 #: cp/init.cc:732
 #, fuzzy, gcc-internal-format
@@ -62172,12 +62139,12 @@ msgstr "类型%qT不是%qT的直接或虚基类"
 msgid "type %qT is not a direct base of %qT"
 msgstr "类型%qT不是%qT的直接基类"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "数组必须为一个由花括号包围的初始值设定所初始化"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT不是一个类"
@@ -62192,12 +62159,12 @@ msgstr "不完全类型%qT没有成员%qD"
 msgid "invalid pointer to bit-field %qD"
 msgstr "指向位段%qD指针无效"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "对非静态成员函数%qD的使用无效"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "对非静态数据成员%qD的无效使用"
@@ -62400,52 +62367,52 @@ msgstr "删除对象的抽象类别类型 %qT 该项有 non-virtual 解构式将
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr "删除对象的 polymorphic 类别类型 %qT 该项有 non-virtual 解构式也许造成未定义的行为"
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "向量 delete 的实参类型既非指针也非数组"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, fuzzy, gcc-internal-format
 msgid "because the array element type %qT has variable size"
 msgstr "复合字面量有可变的大小"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "无法通过引用捕获%qE"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "向 void 的类型转换不会访问具有不完全类型%qT的对象"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "lambda 函数中无法捕获%<this%>"
@@ -62831,237 +62798,286 @@ msgstr "需要模板 ID"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting global module declaration %#qD"
 msgstr "相互冲突的声明%q#D"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration %q+D"
 msgid "existing declaration %#qD"
 msgstr "在声明%q+D中"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr "%q#D的外部声明不匹配"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing definition"
 msgid "existing definition %qD"
 msgstr "定义缺失"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "... this enumerator %qD"
 msgstr "枚举%q+D重声明"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "%q#D的外部声明不匹配"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 #| msgid "%qD declared here"
 msgid "module %qs declared here"
 msgstr "%qD在此声明"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %q+D was here"
 msgid "macro definitions of %qE corrupted"
 msgstr "%q+D的上一个定义在此"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr "对%qT不一致的演绎：先是%qT然后是%qT"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr "%s：无法找到模块文件 %s\n"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Display the compiler's version"
 msgid "compiled module is %sversion %s"
 msgstr "显示编译器版本"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2 版本 %s\n"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 #| msgid "no %qs getter found"
 msgid "module %qs found"
 msgstr "找不到 %qs 的取值器"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, fuzzy, gcc-internal-format
 #| msgid "exception handling disabled, use -fexceptions to enable"
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr "异常处理已被禁用，使用 -fexceptions 启用"
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 #| msgid "function attribute mismatch"
 msgid "fixed tree mismatch"
 msgstr "函数属性不匹配"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "interface partition is not exported"
 msgstr "不支持堆栈限制表达式"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr ""
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to find class '%s'"
 msgid "failed to read compiled module: %s"
 msgstr "找不到类‘%s’"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr "%q+D的节与早先的声明冲突"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "%q+D的节与早先的声明冲突"
+
+#: cp/module.cc:19125
+#, fuzzy, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr "%q+D的节与早先的声明冲突"
+
+#: cp/module.cc:19130
+#, fuzzy, gcc-internal-format
+#| msgid "declared here"
+msgid "import declared attached to module %qs"
+msgstr "在此声明"
+
+#: cp/module.cc:19134
+#, fuzzy, gcc-internal-format
+#| msgid "using-declaration for non-member at class scope"
+msgid "import declared in global module"
+msgstr "在类作用域使用非成员的 using 声明"
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "相互冲突的声明%q#D"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+msgid "conflicting declaration of %qD in global module"
+msgstr "%q+D声明为没有外部链接的，之前却有外部声明"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared here"
+msgid "previously declared in module %qs"
+msgstr "以前在此声明过"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+#| msgid "previously declared here"
+msgid "previously declared in global module"
+msgstr "以前在此声明过"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 #| msgid "Creating '%s'\n"
 msgid "reading CMI %qs"
 msgstr "正在创建 '%s'\n"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, fuzzy, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr "未知的选项：%s %s %s"
@@ -63073,420 +63089,420 @@ msgstr "未知的选项：%s %s %s"
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 msgid "module already declared"
 msgstr "`%.*s' 已被定义为对照符号"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, fuzzy, gcc-internal-format
 #| msgid "module procedure"
 msgid "module already imported"
 msgstr "模块过程"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, fuzzy, gcc-internal-format
 #| msgid "module procedure"
 msgid "module %qs imported here"
 msgstr "模块过程"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr "PRINT_OPERAND：未知的标点‘%c’"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 #| msgid "Enable traditional preprocessing."
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "启用传统预处理。"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr ""
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param value %qs"
 msgid "invalid header name %qs"
 msgstr "无效的 --param 值%qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param value %qs"
 msgid "invalid module name %qs"
 msgstr "无效的 --param 值%qs"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 #| msgid "error writing %qs"
 msgid "writing CMI %qs"
 msgstr "写入%qs时错误"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 #| msgid "Error writing modules file: %s"
 msgid "not writing module %qs due to errors"
 msgstr "写入模块文件时出错：%s"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "failed to find class '%s'"
 msgid "failed to write compiled module: %s"
 msgstr "找不到类‘%s’"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr "spec 函数名格式错误"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, fuzzy, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "%q+D的声明隐藏了一个形参"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q+D的节与早先的声明冲突"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D hides constructor for %q#T"
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D隐藏了%q#T的构造函数"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "相互冲突的声明%q#D"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "因为异常规范不一致"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD invalidly declared method type"
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "形参%qD被无效地被声明为具有方法类型"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "%q#D的声明隐藏了一个形参"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "%qD声明为%qT的一个成员"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration %qD in local class without prior declaration"
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "本地类中的友元声明%qD没有先前声明"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s(%E) %p %d\n"
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %s(%E) %p %d\n"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s %p %d\n"
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d\n"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, fuzzy, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr "new 声明中的表达式必须具有整数或枚举类型"
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr "%q+D已在此声明过"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr "new 声明中的表达式必须具有整数或枚举类型"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr "%q+D已在此声明过"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> names destructor"
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T::%D%>指定了析构函数"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "在类作用域使用非成员的 using 声明"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, fuzzy, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a class, namespace, or enumeration"
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qE不是一个类、命名空间或枚举"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, fuzzy, gcc-internal-format
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "无效的成员模板声明%qD"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration for non-member at class scope"
 msgid "using-declaration for member at non-class scope"
 msgstr "在类作用域使用非成员的 using 声明"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "%qT is not a direct base of %qT"
 msgstr "类型%qT不是%qT的直接基类"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has not been declared"
 msgid "%qD has not been declared in %qD"
 msgstr "%qE未声明"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 msgid "using-declaration may not name namespace %qD"
 msgstr "不允许在 using 声明中使用命名空间%qD"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%>在%qT内指定了构造函数"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "%qD的声明不在包含%qD的命名空间中"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "%qD的声明中有显式的限定"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD应当先在%qD内声明"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has not been declared"
 msgid "%qD has not been declared within %qD"
 msgstr "%qE未声明"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a friend"
 msgid "only here as a %<friend%>"
 msgstr "%q+D声明为友元"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "%qD属性需要一个 NTBS 作为实参"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr "%qD属性无意义，因为匿名命名空间的成员拥有局部符号"
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr "%qs(有%qT)的实参类型无效"
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "%qs(有%qT)的实参类型无效"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "指定%qD属性被忽略"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, fuzzy, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr "最大值限制的 %d 命名空间搜索的用于 %qE"
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] "建议的替代："
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, gcc-internal-format
 msgid "  %qE"
 msgstr "  %qE"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "静态成员函数中不能使用%<this%>"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr "聚合%q#D类型不完全，无法被定义"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 #| msgid "struct defined here"
 msgid "it was later defined here"
 msgstr "结构在此定义"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr "从花括号中的初始化列表演绎需要 #include <initializer_list>"
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 #| msgid "switch %qs is no longer supported"
 msgid "%<strong%> using directive no longer supported"
 msgstr "开关%qs不再被支持"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%<this%>不能用在此上下文中"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qD may not be declared within a namespace"
 msgid "cannot nest more than %d namespaces"
 msgstr "%qD不能在命名空间声明"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "‘%s’(位于 %L)有歧义"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "这里不允许命名空间别名%qD，假定为%qD"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, fuzzy, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr "方法属性必须被指定的于结束只有"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 #| msgid "label %qD defined here"
 msgid "%qD defined here"
 msgstr "标号%qD在此定义"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 #| msgid "%qD conflicts with used function"
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "%qD与已用的函数冲突"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "previous definition here"
 msgid "reachable %s definition here"
 msgstr "先前的定义在这里"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, fuzzy, gcc-internal-format
 #| msgid "XXX entering pop_everything ()\n"
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX 进入 pop_everything ()\n"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "XXX leaving pop_everything ()\n"
 msgid "XXX leaving %<pop_everything ()%>"
@@ -63512,7 +63528,7 @@ msgstr "标识符%qE与 C++ 关键字冲突"
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr "%<#pragma align%>必须出现在 %D 的声明之前，忽略"
@@ -63761,7 +63777,7 @@ msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, fuzzy, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "带作用域的枚举只在 -std=c++0x 或 -std=gnu++0x 下可用"
@@ -63946,7 +63962,7 @@ msgstr "语句表达式只能用于函数或模板实参列表内"
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "Lambda 表达式只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "需要元表达式"
@@ -64003,7 +64019,7 @@ msgstr "C++0x auto 只在 -std=c++0x 或 -std=gnu++0x 下可用"
 msgid "template-id not allowed for destructor in C++20"
 msgstr "关键字%<typename%>不能在模板以外使用"
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, fuzzy, gcc-internal-format
 #| msgid "Expected left parenthesis"
 msgid "remove the %qs"
@@ -64024,7 +64040,7 @@ msgstr "typedef 名%qD用于析构函数声明"
 msgid "expected unqualified-id"
 msgstr "需要模板 ID"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD不是一个模板"
@@ -64074,7 +64090,7 @@ msgstr "类型不能定义在%<typeid%>表达式中"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "给函数%<__builtin_next_arg%>的参数数目不对"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "给函数%<__builtin_next_arg%>的参数数目不对"
@@ -64110,7 +64126,7 @@ msgstr "类型不能定义在条件表达式中"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "错误地使用了%qD"
@@ -64135,7 +64151,7 @@ msgstr "ISO C++ 不允许对非类型使用%<alignof%>"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "类型不能定义在%<decltype%>中"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr "不能在返回类型中定义新类型"
@@ -64290,8 +64306,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr "%qD不是一个变量"
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%q+D已在此声明过"
@@ -64332,7 +64348,7 @@ msgstr "为 lambda 形参指定了默认参数"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -64461,7 +64477,7 @@ msgstr "asm 语句中需要左值"
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "需要选择语句"
@@ -64525,7 +64541,7 @@ msgstr "表达式语句类型不完全"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr "对%qT不一致的演绎：先是%qT然后是%qT"
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "需要循环语句"
@@ -64551,7 +64567,7 @@ msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ 不允许计算转移"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "需要跳转语句"
@@ -64845,12 +64861,12 @@ msgstr "只有构造函数才能有基类初始值设定"
 msgid "cannot expand initializer for member %qD"
 msgstr "无法从成员%<%D%>中扩展初始值"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, fuzzy, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "对%qD的静态声明出现在非静态声明之后"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, fuzzy, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr "建构子 delegation 追随 mem-initializer 用于 %qD"
@@ -65516,7 +65532,7 @@ msgstr "%qE不是类型%qT的有效模板实参，因为%qE不是一个变量"
 msgid "%qT not permitted in template argument"
 msgstr "参数不匹配"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, gcc-internal-format
 msgid "invalid use of %qT"
@@ -65702,12 +65718,12 @@ msgstr "%q+#T的前一个定义"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, fuzzy, gcc-internal-format
 msgid "expected class-key"
 msgstr "需要%<class%>"
@@ -65921,38 +65937,38 @@ msgstr "C++0x auto 只在 -std=c++0x 或 -std=gnu++0x 下可用"
 msgid "expression must be enclosed in parentheses"
 msgstr "调度块大小表达式必须为整型"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 #| msgid "requested position is not an integer constant"
 msgid "result type is not a plain type-constraint"
 msgstr "要求的位置不是一个整数常量"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr "要求的位置不是一个整数常量"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr "特例化成员%<%T::%E%>需要%<template<>%>语法"
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "%<%T::%E%>声明无效"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "模板参数表太少"
@@ -65961,448 +65977,448 @@ msgstr "模板参数表太少"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "模板参数表太多"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, fuzzy, gcc-internal-format
 #| msgid "keyword %<typename%> not allowed outside of templates"
 msgid "template-id not allowed for constructor in C++20"
 msgstr "关键字%<typename%>不能在模板以外使用"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "有名返回值不再被支持"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, fuzzy, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr "实字运算符模板 %qD 有无效的参数清单。 预期 non-type 模板参数包装 <char...>"
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, fuzzy, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr "实字运算符模板 %qD 有无效的参数清单。 预期 non-type 模板参数包装 <char...>"
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, fuzzy, gcc-internal-format
 #| msgid "no matching template for %qD found"
 msgid "no matching concept for template-introduction"
 msgstr "没有找到与%qD匹配的模板"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "局部类中对成员模板的声明无效"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "模板有 C 链接"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, fuzzy, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "显式特例化前必须有%<template <>%>"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "%<typedef%>的模板声明"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, fuzzy, gcc-internal-format
 #| msgid "declaration does not declare anything"
 msgid "a class template declaration must not declare anything else"
 msgstr "没有声明任何东西"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "显式特例化不能有存储类型"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "在嵌套模板实参列表中应当使用%<> >%>而非%<>>%>"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "可疑的%<>>%>，使用%<>%>来结束模板实参列表"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 #| msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "可疑的%<>>%>，使用%<>%>来结束模板实参列表"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "指定链接时使用%qD无效"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr "%C处重复访问限定符"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr "%+D 导致一个节类型冲突"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%>出现在%qD之前"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, fuzzy, gcc-internal-format
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%qE不是一个 typedef 类型，也不是一个内建类型"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++ 1998 不支持%<long long%>"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, fuzzy, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "线程局部的 COMMON 数据没有实现"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "重复的标号%qD"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "重复的%qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "需要%<new%>"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "需要%<delete%>"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "需要%<return%>"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "需要%<extern%>"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "需要%<static_assert%>"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "需要%<decltype%>"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "需要%<operator%>"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "需要%<class%>"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "需要%<template%>"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "需要%<namespace%>"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "需要%<using%>"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "需要%<asm%>"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "需要%<try%>"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "需要%<catch%>"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "需要%<throw%>"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<catch%>"
 msgid "expected %<auto%>"
 msgstr "需要%<catch%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "需要%<__label__%>"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "需要%<@try%>"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "需要%<@synchronized%>"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "需要%<@throw%>"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, fuzzy, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "对 rpmtxn 数据库异动作业进行除错"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, fuzzy, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "于 %s 等待异动作业锁定\n"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<@end%>"
 msgid "expected %<co_yield%>"
 msgstr "需要 %<@end%>"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "需要%<::%>"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "需要%<...%>"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "需要%<*%>"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "需要%<~%>"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "需要%<:%>或%<::%>"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "需要%<class%>、%<typename%>或%<template%>"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "使用了%qs标记，在命名%q#T时"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, fuzzy, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "以前在此声明过"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "无法声明对%q#T的引用"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, fuzzy, gcc-internal-format
 #| msgid "%qT declared with greater visibility than its base %qT"
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qT被声明为比其基类%qT有更高的可见性"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "需要%<class%>"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 #| msgid "label %qD defined here"
 msgid "%qT defined as %qs here"
 msgstr "标号%qD在此定义"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr "在此声明"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD重声明时有不同的可访问性"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, fuzzy, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "用作消歧义的%<template%>只能用于模板内"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "文件在默认参数处结束"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "位置错误的%<@%D%>Objective-C++ 构造"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr "需要指定声明"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr "objective-c++ 消息参数被预期"
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "%<@encode%>必须指定一个类型作为实参"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "无效的 Objective-C++ 选择子名"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr "%C处数组声明需要另外一维"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, fuzzy, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "不能为局部变量指定节属性"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, fuzzy, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr "零星的 %qs 介于 Objective-C++ 方法"
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, fuzzy, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "不一致的实例变量指定"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "%<@protocol%>需要标识符"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, fuzzy, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr "属性可能无法被指定的之前 %<@%D%>Objective-C++ 关键字"
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, fuzzy, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "%qE属性为%qE所忽略"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, fuzzy, gcc-internal-format
 msgid "invalid type for property"
 msgstr "不能设置只读属性"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, fuzzy, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr "不能设置只读属性"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 #| msgid "expected integer expression"
 msgid "expected integer expression list"
 msgstr "需要整数表达式"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, fuzzy, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "需要%<class%>、%<typename%>或%<template%>"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, gcc-internal-format
 msgid "invalid reduction-identifier"
 msgstr "无效还原标识符"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 #| msgid "types may not be defined in parameter types"
 msgid "types may not be defined in iterator type"
@@ -66412,13 +66428,13 @@ msgstr "类型不能定义在参数类型中"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma vtable no longer supported"
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "#pragma vtable 不再受支持"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr "括起的初始化不允许使用在 OpenMP %<for%>循环中"
@@ -66429,138 +66445,138 @@ msgstr "括起的初始化不允许使用在 OpenMP %<for%>循环中"
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr "%<void%>作为仅有的参数时不能被限定"
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "迭代变量%qD不应当是 reduction"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<#pragma GCC pop_options%>缺少相应的%<#pragma GCC push_options%>"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer clause"
 msgstr "无效的初始值设定"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "? 预期于运算式中"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in declare reduction type list"
 msgstr "不能在返回类型中定义新类型"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, fuzzy, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr "上一个声明"
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
 msgstr "#pragma GCC optimize 不允许用在函数中"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr "%<__transaction_relaxed%>而无需 transactional 内存支持已启用"
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr "%<__transaction_atomic%>而无需 transactional 内存支持已启用"
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, fuzzy, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr "外 %<__transaction_cancel%>无法在之内外 %<__transaction_atomic%>"
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, fuzzy, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr "  或 %<transaction_may_cancel_outer%> 函数"
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 #| msgid "malformed #pragma GCC coprocessor"
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "#pragma GCC coprocessor 格式错误"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp barrier%>只能用在复合语句中"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, fuzzy, gcc-internal-format
 #| msgid "%<#pragma omp barrier%> may only be used in compound statements"
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp barrier%>只能用在复合语句中"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "#pragma GCC memregs 必须出现在所有函数声明之前"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "multi-source compilation not implemented for C++"
 msgstr "模块间优化未为 C++ 实现"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 #| msgid "standard conversions are not allowed in this context"
 msgid "placeholder type not allowed in this context"
 msgstr "此上下文中不允许标准转换"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, fuzzy, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr "模板不能是%<virtual%>的"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -66590,7 +66606,7 @@ msgstr "所包含的类模板并未被显式特例化"
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "%qD的特例化必须出现在命名空间内"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "在不同命名空间内对%qD的特例化"
@@ -66606,27 +66622,27 @@ msgstr "  从%q+#D的定义"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "%qD的显式实例化出现在命名空间%qD中，而后者并不包含命名空间%qD"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "类名隐藏了模板的模板形参%qD"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "有歧义的模板特例化%qD(为%q+D)"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "显式特例化非模板%qT"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "%qT的实例化在特例化之后"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q+#D"
 msgid "from definition of %q#D"
@@ -66634,148 +66650,148 @@ msgstr "  从%q+#D的定义"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "%qT的实例化在%qT的特例化之后"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, fuzzy, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "友元模板特例化%qD中不允许出现默认参数"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "%qD的特例化在实例化之后"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 msgid "%s %#qD"
 msgstr "%s%#D"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD不是一个函数模板"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "%qD不是一个模板"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "%2$q+D的模板标识符%1$qD不匹配任何模板声明"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr "发现 %d 个%<template<>%>，需要 %d 来特例化一个成员函数模板"
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "有歧义的模板特例化%qD(为%q+D)"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, fuzzy, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, fuzzy, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr "模板参数数目不对(不应是 %d 个而应是 %d 个)"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "在初次使用后显式特例化%qD"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "%qD的显式实例化出现在命名空间%qD中，而后者并不包含命名空间%qD"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "在初次使用后显式特例化%qD"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "以前在此声明过"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "以前在此声明过"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 #| msgid "template-id %qD in declaration of primary template"
 msgid "template-id %qE in declaration of primary template"
 msgstr "模板标识符%qD出现在基本模板的声明中"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "显式初始化中出现了模板参数列表"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "为显式实例化提供的定义"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "%qD声明时模板参数表太多"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "%qD声明时模板参数表太少"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "%qD的显式特例化必须由%<template <>%>引入"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization declared %<concept%>"
 msgstr "显式特例化非模板%qT"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "函数模板部分特例化%qD是不允许的"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, fuzzy, gcc-internal-format
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "函数模板部分特例化%qD是不允许的"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "显式特例化时指定了默认参数"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD不是一个模板函数"
@@ -66788,163 +66804,163 @@ msgstr "%qD不是一个模板函数"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "特例化了隐式声明的特殊成员函数"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "成员函数%qD未在%qT中声明"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "友元%q#D的重声明不能有默认模板参数"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 msgid "friend declaration here"
 msgstr "%q+T先前在此处有过声明"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization of function concept %qD"
 msgstr "显式特例化非模板%qT"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ACOS at %L must be between -1 and 1"
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "%L处 ACOS 的参数必须在 -1 和 1 之间"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, fuzzy, gcc-internal-format
 #| msgid "base initializer expansion %<%T%> contains no parameter packs"
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr "基类初始值设定展开%<%T%>不包括参数包"
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, fuzzy, gcc-internal-format
 #| msgid "expansion pattern %<%T%> contains no argument packs"
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "展开样式%<%T%>不包括参数包"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, fuzzy, gcc-internal-format
 #| msgid "expansion pattern %<%E%> contains no argument packs"
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "展开样式%<%E%>不包括参数包"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr "参数包未能在%<...%>中被展开："
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "       %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "          %s"
 msgid "        %s"
 msgstr "          %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "%q+D的声明隐藏了一个形参"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "%q+D的声明隐藏了一个形参"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "template parameter %qD declared here"
 msgstr "模板形参类型%qT声明为%<friend%>"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "有歧义的模板特例化%qD(为%q+D)"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 msgid "template parameters not deducible in partial specialization:"
 msgstr "部分特例化中未用到模板参数："
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, fuzzy, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "部分特例化%qT并未特例化任何模板参数"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, fuzzy, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr "部分特例化%qT并未特例化任何模板参数"
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, fuzzy, gcc-internal-format
 msgid "primary template here"
 msgstr "以前在此声明过"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qE"
 msgid "too many arguments for partial specialization %qT"
 msgstr "提供给函数%qE的实参太多"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, fuzzy, gcc-internal-format
 msgid "partial specialization %qD is not more specialized than"
 msgstr "部分特例化%qT并未特例化任何模板参数"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 msgid "primary template %qD"
 msgstr "以前在此声明过"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr "参数包实参%qE必须出现在模板实参表末尾"
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr "参数包实参%qT必须出现在模板实参表末尾"
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "模板实参%2$qE的类型%1$qT取决于模板参数"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "有歧义的模板特例化%qD(为%q+D)"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "%qD的特例化在实例化之后"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "%qD没有默认参数"
@@ -66953,49 +66969,49 @@ msgstr "%qD没有默认参数"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "参数包实参%qE必须出现在模板实参表末尾"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "默认参数不能用在函数模板友元重声明中"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 #| msgid "default template arguments may not be used in function template friend declarations"
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "默认参数不能用在函数模板友元重声明中"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "只有指定了 -std=c++0x 或 -std=gnu++0x 时才能在函数模板中使用默认参数"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr "默认参数不能用在部分特例化中"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "包含%qD的类的模板参数有默认参数"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD declared void"
 msgid "template %qD declared"
 msgstr "形参%qD被声明为 void"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "模板类没有名字"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, fuzzy, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr "非成员函数%qD不能拥有 cv 限定符"
@@ -67005,70 +67021,70 @@ msgstr "非成员函数%qD不能拥有 cv 限定符"
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "%qD模板声明无效"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "对非模板%q#D的模板定义"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "需要 %d 级的%q#D模板参数，却给出了 %d 级"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "得到 %d 个模板参数，为%q#D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "%2$q#T得到了 %1$d 个模板参数"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "但实际需要 %d 个"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "给%qD的模板实参不匹配原先的模板%qD"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, fuzzy, gcc-internal-format
 #| msgid "use template<> for an explicit specialization"
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "使用 template<> 来显式特例化"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %qD differs in %<constexpr%>"
 msgid "redeclaration of %qD with different constraints"
 msgstr "对%qD的重声明在%<constexpr%>方面"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT不是一个模板类型"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "%qD的声明中没有 template 限定"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] "重声明为具有 %d 个模板参数"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D used %d template parameter"
 #| msgid_plural "previous declaration %q+D used %d template parameters"
@@ -67076,456 +67092,456 @@ msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "先前的声明%q+D使用了 %d 个模板参数"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "模板形参%q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "在这里又被声明为%q#D"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid "redeclared here"
 msgstr "在此声明"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %qD differs in %<constexpr%>"
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "对%qD的重声明在%<constexpr%>方面"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 #| msgid "original definition appeared here"
 msgid "original declaration appeared here"
 msgstr "原始定义在此"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration %qD differs in %<constexpr%>"
 msgid "redeclaration of %q#D with different constraints"
 msgstr "对%qD的重声明在%<constexpr%>方面"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qE不是类型%qT的有效模板参数"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "它必须是一个具有外部链接函数的地址"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, fuzzy, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr "它必须是一个具有外部链接函数的地址"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE不是类型%qT的有效模板实参，因为对象%qD没有外部链接"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qE不是类型%qT的有效模板实参，因为函数%qD没有外部链接"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, fuzzy, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "它必须是格式为‘&X::Y’的成员指针"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "because it is a member of %qT"
 msgstr "%qD不是%qT的成员"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "%qD声明时模板参数表太多"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, fuzzy, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr "  类型 %qT 和 %qT 有不兼容的 cv-qualifiers"
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, fuzzy, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr "在类型%qT和%qT间比较"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, fuzzy, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "模板参数包%qD不能有默认参数"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "给%qD的模板实参不匹配原先的模板%qD"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, fuzzy, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "%qE属性为%qE所忽略"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, fuzzy, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr "对%qT不一致的演绎：先是%qT然后是%qT"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, fuzzy, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr "Lambda 返回类型演绎得到不一致的类型%qT和%qT"
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, fuzzy, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr "  deduced 冲突值用于 non-type 参数 %qE (%qE 和 %qE)"
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, fuzzy, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "%qE不是类型%qT的有效模板实参，因为%qE不是一个变量"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, fuzzy, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr "%qE不是类型%qT的有效模板实参，因为它的类型是%qT"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, fuzzy, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "无法将%qE从类型%qT转换到类型%qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "%qT是%qT的有歧义的基类"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, fuzzy, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "派生联合%qT无效"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, fuzzy, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr "  模板参数的模板模板参数是不一致与其他 deduced 模板参数"
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "指向不完全类型%qT的指针不能自减"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "给%qD的模板实参不匹配原先的模板%qD"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qE is not a variable"
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE不是类型%qT的有效模板实参，因为%qE不是一个变量"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE不是类型%qT的有效模板实参，因为函数%qD没有外部链接"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE不是类型%qT的有效模板实参，因为对象%qD没有外部链接"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr "%qE不是类型%qT的有效模板实参，因为%qE不是一个变量"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, fuzzy, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "%qE不是类型%qT的有效模板实参，因为%qE不是一个变量"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage"
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "%qE不是类型%qT的有效模板实参，因为函数%qD没有外部链接"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qD不是一个有效模板实参，因为%qD是一个变量，而非变量的地址"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qE不是类型%qT的有效模板实参，因为%qE不是一个变量"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE不是类型%qT的有效模板实参，因为字面字符串不能用在此上下文中"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "%qE不是类型%qT的有效模板实参，因为%qE不是一个变量"
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "%qE不是类型%qT的有效模板实参，因为%qE不是一个变量"
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE不是类型%qT的有效模板实参，因为 cv 限定冲突"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE不是类型%qT的有效模板实参，因为它不是一个左值"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%q#D不是类型%qT的有效模板参数，因为一个引用变量没有常量地址"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE不是类型%qT的有效模板实参，因为它是一个指针"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "尝试使用%qE代替"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE不是类型%qT的有效模板实参，因为它的类型是%qT"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "忽略在其定义之后为%qT应用的属性"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "忽略在其定义之后为%qT应用的属性"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "注入的类名%qD被用作模板的模板参数"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "将析构函数%qD用作类型无效"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "需要使用某个模板参数的类型成员时，请使用%<typename %E%>"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "实参 %d 的类型/值不匹配，在%qD的模板参数列表中"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "需要一个%qT类型的常量，却给出了%qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, fuzzy, gcc-internal-format
 #| msgid "default argument for template parameter for class enclosing %qD"
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "包含%qD的类的模板参数有默认参数"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "需要一个类模板，却给出了%qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "需要一个类型，却给出了%qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "需要一个类型，却给出了%qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "需要一个类模板，却给出了%qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "需要有%qD类型的模板，却得到了%qT"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 #| msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "实参 %d 的类型/值不匹配，在%qD的模板参数列表中"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a type, got %qE"
 msgid "  expected %qD but got %qD"
 msgstr "需要一个类型，却给出了%qE"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 #| msgid "could not convert template argument %qE to %qT"
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "不能将模板参数从%qE转换到%qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "模板第 %d 个参数无效"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "模板参数数目不对(不应是 %d 个而应是 %d 个)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "模板参数数目不对(不应是 %d 个而应是 %d 个)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, fuzzy, gcc-internal-format
 #| msgid "provided for %q+D"
 msgid "provided for %qD"
 msgstr "提供给%q+D"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, fuzzy, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr "包含%qD的类的模板参数有默认参数"
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, fuzzy, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "包含%qD的类的模板参数有默认参数"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%q#D声明为模板"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "非模板类型%qT用作模板"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "对于模板声明%q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 #| msgid "internal consistency failure"
 msgid "template constraint failure for %qD"
 msgstr "内部一致性错误"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 msgid "use of invalid variable template %qE"
 msgstr "%qD不是一个模板"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, fuzzy, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "在实例化%2$qD时模板实例化深度超过最大值 %1$d(使用 use -ftemplate-depth= 来增大最大值)"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 #| msgid "collapse argument needs positive constant integer expression"
 msgid "score argument must be constant integer expression"
 msgstr "折叠参数需要正整常量表达式"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr "%qs必须与%qs一起使用"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, fuzzy, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr "%H折叠变量需要正整常数表达式"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 #| msgid "flexible array member in union"
 msgid "flexible array member %qD in union"
 msgstr "联合和可变数组成员"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not at beginning of declaration"
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE没有出现在声明的开头"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched argument pack lengths while expanding %<%T%>"
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr "展开%<%T%>时参数包长度不匹配"
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched argument pack lengths while expanding %<%E%>"
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr "展开%<%E%>时参数包长度不匹配"
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "重定义%q#D的默认参数"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "生成非类类型%qT的成员函数指针"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "mismatched argument pack lengths while expanding %<%T%>"
 msgid "mismatched argument pack lengths (%d vs %d)"
@@ -67544,307 +67560,307 @@ msgstr "展开%<%T%>时参数包长度不匹配"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "变量%qD有函数类型"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "无效的参数类型%qT"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "在声明%q+D中"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "函数返回了一个数组"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "函数返回了一个函数"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "形成对 void 的引用"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "生成指向引用类型%qT的指针"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "生成指向引用类型%qT的引用"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "不能声明指向限定函数类型%qT的指针"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "不能声明指向限定函数类型%qT的引用"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "生成非类类型%qT的成员指针"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "生成引用类型%qT的成员指针"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "创建指向 void 类型的成员指针"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "生成%qT的数组"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT不是类、结构或联合类型"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT被解析到非枚举类型%qT"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 #| msgid "%qT resolves to %qT, which is is not a class type"
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT被解析到非类类型%qT"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "在模板中使用%qs"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "限定类型%qT不匹配析构函数名 ~%qT"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "依赖名%qE被解析为非类型，但实例化却产生了一个类型"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "如果您想指定类型，请使用%<typename %E%>"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 #| msgid "initializer element is not a constant expression"
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "初始值设定中元素不是常量表达式"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "对集展开表达式的无效使用"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr "使用%<...%>来展开实参集"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr ""
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, fuzzy, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr "%qD 未被声明在中这个范围，而找不到任何声明是由 argument-dependent 查找于点的实体化"
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, fuzzy, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr "声明在中附属基底 %qT 找不到由资格不符的查找"
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, fuzzy, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr "使用%<%T::%D%>而不是%<%T::%D%>来以限定名指定构造函数"
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, fuzzy, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "使用%<%T::%D%>而不是%<%T::%D%>来以限定名指定构造函数"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%qE未声明(不在函数内)"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "给函数%<__builtin_next_arg%>的参数数目不对"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 #| msgid "wrong number of arguments specified for %qE attribute"
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "为%qE属性给定的实参数目错误"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT既不是类也不是命名空间"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD既不是类也不是命名空间"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "使用无效字段%qD"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is/uses anonymous type"
 msgid "%qT is/uses unnamed type"
 msgstr "%qT是/使用了匿名类型"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "%qD的模板实参使用了局部类型%qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT是一个可变类型"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "整型表达式%qE不是常量"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  试图实例化%qD"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#T"
 msgstr "%q#T的显式实例化出现在模板定义之前"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 msgid "ambiguous template instantiation for %q#D"
 msgstr "有歧义的模板特例化%qD(为%q+D)"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 msgid "%s %#qS"
 msgstr "张贴被搁置的文章 [%%s]？(%s/%s/%s/%s/%s)："
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "对非模板%q#D的显式实例化"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "有歧义的模板特例化%qD(为%q+D)"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit instantiation of function concept %q#D"
 msgstr "显式特例化非模板%qT"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qD不是类模板的非静态数据成员"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "没有找到与%qD匹配的模板"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "类型%qT用于显式实例化%qD时不匹配声明的类型%qT"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "对%q#D的显式实例化"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "对%q#D重复的显式实例化"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++ 1998 不允许在显式实例化时使用%<extern%>"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "为模板实例化化应用了存储类型%qD"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "显式实例化非模板类型%qT"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "显式实例化非模板类型%qT"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "%q#T的显式实例化出现在模板定义之前"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ 不允许在显式实例化时使用%qE"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "对%q#T重复的显式实例化"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "exception specification of %qD depends on itself"
@@ -67857,174 +67873,174 @@ msgstr "在初次使用后显式特例化%qD"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "显式实例化%qD时没有可用的定义"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, fuzzy, gcc-internal-format
 #| msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth= to increase the maximum)"
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "在实例化%2$q+D时模板实例化深度超过了最大值 %1$d，可能是由于生成虚函数表所致(使用 -ftemplate-depth= 来增大最大值)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, fuzzy, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%q#T不是一个有效的模板常量参数类型"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, fuzzy, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, fuzzy, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "对模板类型参数%qT的使用无效"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T不是一个有效的模板常量参数类型"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, fuzzy, gcc-internal-format
 #| msgid "keyword %<typename%> not allowed outside of templates"
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "关键字%<typename%>不能在模板以外使用"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 msgid "a concept cannot be constrained"
 msgstr "析构函数不能是静态成员函数"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 msgid "concept %qE not in namespace scope"
 msgstr "%qT作为枚举被引用"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 #| msgid "definition of %q#T inside template parameter list"
 msgid "concept %qE has multiple template parameter lists"
 msgstr "在模板参数列表中定义了%q#T"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, fuzzy, gcc-internal-format
 #| msgid "deducing from brace-enclosed initializer list requires #include <initializer_list>"
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr "从花括号中的初始化列表演绎需要 #include <initializer_list>"
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 #| msgid "non-template %qD used as template"
 msgid "non-deducible template %qT used without template arguments"
 msgstr "非模板%qD用作模板"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, fuzzy, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "use %qD directly instead"
 msgstr "改用 #include"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, fuzzy, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "%qE不是类型%qT的有效模板实参，因为对象%qD没有外部链接"
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "模板第 %d 个参数无效"
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 #| msgid "function not considered for inlining"
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "不考虑内联函数"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 #| msgid "indirect function %q+D cannot be declared weakref"
 msgid "explicit deduction guide declared here"
 msgstr "内联函数%q+D不能声明为有弱链接"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, fuzzy, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "模板第 %d 个参数无效"
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "无法从%2$qE推导出%1$qT"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "无法从%2$qE推导出%1$qT"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "指令不满足其约束："
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "指令不满足其约束："
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "指令不满足其约束："
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "模板第 %d 个参数无效"
@@ -68250,644 +68266,644 @@ msgstr "无法确定 asm 操作数%qE的类型"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "__label__ 声明只能出现在函数作用域中"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in static member function"
 msgstr "对非静态成员函数%qD的使用无效"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "对非静态成员函数%qD的使用无效"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "对非静态成员函数%qD的使用无效"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched arguments"
 msgid "%qE missing template arguments"
 msgstr "参数不匹配"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "cannot call a concept as a function"
 msgstr "%qE不能用作函数"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "析构函数不能有参数"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "静态成员函数中不能使用%<this%>"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
 msgstr ""
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, fuzzy, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr "对模板类型参数%qT的使用无效"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "静态成员函数中不能使用%<this%>"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> before it is valid"
 msgstr "在文件作用域使用%<this%>无效"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> after it is valid"
 msgstr "在文件作用域使用%<this%>无效"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "在非成员函数中使用%<this%>无效"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "在文件作用域使用%<this%>无效"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "伪析构函数名的限定作用域无效"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "限定的类型%qT不匹配析构函数名 ~%qT"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE的类型不是%qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "非对象类型%qT的复合字面常量"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, fuzzy, gcc-internal-format
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "不能内联%<main%>函数"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, fuzzy, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++0x auto 只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "模板形参必须使用%<class%>或%<typename%>关键字"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "将类型%qT用作模板的模板参数的默认值无效"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "模板的模板形参的默认实参无效"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "在模板参数列表中定义了%q#T"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "对限定类型%qT的定义无效"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "无效的基类"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, fuzzy, gcc-internal-format
 msgid "cannot capture member %qD of anonymous union"
 msgstr "匿名联合中出现保护成员%q+#D"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "%qD未被捕获"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, fuzzy, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr "为 lambda 形参指定了默认参数"
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, fuzzy, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr "在包含函数中使用%<auto%>变量"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, fuzzy, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "已弃用为非函数指定默认参数"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr "已弃用为非函数指定默认参数"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 #| msgid "mismatched arguments"
 msgid "missing template arguments"
 msgstr "参数不匹配"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "模板参数%qD(类型为%qT)不允许出现在整数表达式中，因为它的类型不是整数或枚举"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "将类模板%qT用作表达式"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "在多继承网格中对%qD的访问有歧义"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD不能出现在常量表达式中"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "%qE的类型未知"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qD不是一个枚举名"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "要求的位置不是一个整数常量"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "类型索引编号 %d 超出范围\n"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "为形参声明指定了无效的存储类"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "不能为析构函数%<~%T%>使用%<offsetof%>"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "不能为成员函数%qD应用%<offsetof%>"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to member function %qD"
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "不能为成员函数%qD应用%<offsetof%>"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, fuzzy, gcc-internal-format
 #| msgid "cannot apply %<offsetof%> to member function %qD"
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "不能为成员函数%qD应用%<offsetof%>"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, fuzzy, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr "不能通过%<...%>接受不能平凡复制的类型%q#T；"
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 #| msgid "constructor priorities are not supported"
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "不支持构造函数优先级"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 msgid "user defined reduction lookup is ambiguous"
 msgstr "对%qD的引用有歧义"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, fuzzy, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr "向量 delete 的实参类型既非指针也非数组"
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, fuzzy, gcc-internal-format
 #| msgid "%qE has invalid type for %<reduction%>"
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE的类型对%<reduction%>无效"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, fuzzy, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD在子句%qs中不是一个变量"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "%qD在%<firstprivate%>子句中不是一个变量"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qD在%<lastprivate%>子句中不是一个变量"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr "%<num_threads%>值必须为正"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, fuzzy, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, fuzzy, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "%<num_threads%>值必须为正"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr "%<num_threads%>值必须为正"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, fuzzy, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr "%<num_threads%>值必须为正"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "调度块大小表达式必须为整型"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "%H折叠变量需要正整常数表达式"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, fuzzy, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, fuzzy, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, fuzzy, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr "调度块大小表达式必须为整型"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, fuzzy, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "调度块大小表达式必须为整型"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD在%<lastprivate%>子句中不是一个变量"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qD在数据子句中多次出现"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, fuzzy, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "调度块大小表达式必须为整型"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD在子句%qs中不是一个变量"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD在数据子句中多次出现"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%qE在子句%<firstprivate%>中不是一个变量"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD在%<lastprivate%>子句中不是一个变量"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD在数据子句中多次出现"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, fuzzy, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "%qD在子句%qs中不是一个变量"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 #| msgid "too many %qs clauses"
 msgid "template %qE in clause %qs"
 msgstr "太多的%qs子句"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, fuzzy, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, fuzzy, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "%H折叠变量需要正整常数表达式"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr "num_threads 表达式必须是整型的"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "向量 delete 的实参类型既非指针也非数组"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, fuzzy, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr "向量 delete 的实参类型既非指针也非数组"
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 msgid "%<tile%> argument needs integral type"
 msgstr "调度块大小表达式必须为整型"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr "%<threadprivate%>%qD不是一个文件、命名空间或块作用域变量"
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "%<threadprivate%>%qE指示不在%qT定义中"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr "%qE和%qD之间的差不具有整数类型"
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "%<# pragma omp 基元的 update%>使用两不同的变量用于内存"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr "%<# pragma omp 基元的 update%>使用两不同的变量用于内存"
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "%H折叠变量需要正整常数表达式"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "跳转至语句表达式中"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "%K%D 的第一个实参必须是一个指针，第二个必须是整常量"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 msgid "static assertion failed: %.*s"
 msgstr "静态断言错误：%E"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "静态断言中出现非常量条件"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 #| msgid "argument to decltype must be an expression"
 msgid "argument to %<decltype%> must be an expression"
 msgstr "decltype 的实参必须是一个表达式"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "%s 无法解析重载的函数地址"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "调用%<__builtin_next_arg%>时没有给定实参"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "需要一个类模板，却给出了%qE"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "逗号表达式的左操作数不起作用"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %qE involves template parameter(s)"
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "模板实参%qE混杂了模板形参"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 msgid "non-pointer argument to %<__builtin_launder%>"
 msgstr "给函数%<__builtin_next_arg%>的参数数目不对"
@@ -68895,1234 +68911,1234 @@ msgstr "给函数%<__builtin_next_arg%>的参数数目不对"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "%qV限定符不能应用到%qT上"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 #| msgid "lambda-expression in a constant expression"
 msgid "statement-expression in a constant expression"
 msgstr "常量表达式中的 Lambda 表达式"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 #| msgid "declared here"
 msgid " declared here"
 msgstr "在此声明"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "base class %qT is not public"
 msgstr "%3$L处 CLASS 变量‘%2$s’的类型‘%1$s’不能被扩展"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not captured"
 msgid "%qD is not public"
 msgstr "%qD未被捕获"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a variable"
 msgid "%qD is mutable"
 msgstr "%qD不是一个变量"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a type"
 msgid "%qD has a non-structural type"
 msgstr "%qD不是一个类型"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "只能为类定义应用%qE属性"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute argument not a string constant"
 msgid "%qE attribute argument must be a string constant"
 msgstr "%qE属性需要一个字符串常量作为实参"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "只能为类定义应用%qE属性"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "只能为类定义应用%qE属性"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "只能为类定义应用%qE属性"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr "%qE属性需要带有名实参的原型"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "不能向类型添加属性%qE"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is not an integer constant"
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "请求的 init_priority 不是一个整数常数"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "只能将%qE属性用于某个类的对象的文件作用域定义"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is out of range"
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "请求的 init_priority 越界"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is reserved for internal use"
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "请求的 init_priority 保留为内部使用"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "%qD声明为%qT的一个成员"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "%qE属性需要带有名实参的原型"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "%qE属性的实参不是一个字符串常量"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "%qE属性的实参不是一个字符串常量"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, fuzzy, gcc-internal-format
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%T::%D%>不是一个有效的声明"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "请输入有效字符"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "%qE属性在不是类的类型上被忽略"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "忽略在其定义之后为%qT应用的属性"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "忽略在其定义之后为%qT应用的属性"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "忽略在其定义之后为%qT应用的属性"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "%qE属性只能用于函数"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "%qE属性只能用于函数"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute argument not a string constant"
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "%qE属性需要一个字符串常量作为实参"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, fuzzy, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "PRINT_OPERAND 空指针"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "lang_* check: failed in %s, at %s:%d"
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "lang_* check：在 %s 中失败，于 %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "在不同的指针类型%qT和%qT之间的比较需要一个类型转换"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "在不同的指针类型%qT和%qT之间的转换要一个类型转换"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "不同的指针类型%qT和%qT组成的条件表达式中需要一个类型转换"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ 不允许在%<void *%>和函数指针间比较"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ 不允许在%<void *%>和函数指针间转换"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++ 不允许%<void *%>和函数指针组成的条件表达式"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "在不同的成员指针类型%qT和%qT之间的比较需要一个类型转换"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "在不同的成员指针类型%qT和%qT之间的转换需要一个类型转换"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "不同的成员指针类型%qT和%qT组成的条件表达式中需要一个类型转换"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 #| msgid "canonical types differ for identical types %T and %T"
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "相同类型 %T 和 %T 的正规类型不同"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, fuzzy, gcc-internal-format
 #| msgid "same canonical type node for different types %T and %T"
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "不同类型 %T 和 %T 有相同的正规类型节点"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "%qs用于成员函数无效"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "对位段使用%<sizeof%>无效"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++ 不允许将%<sizeof%>应用到函数类型的表达式上"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "对位段使用%<__alignof%>无效"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++ 不允许将%<__alignof%>应用到函数类型的表达式上"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 #| msgid "size of array has non-integral type %qT"
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "数组%qT的大小的类型不是整数"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "invalid use of non-static member function of type %qT"
 msgstr "对非静态成员函数%qD的使用无效"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "已弃用从字符串常量到%qT的转换"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "已弃用从字符串常量到%qT的转换"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "对成员%qD的请求出现在%qE中，而后者具有非类类型%qT"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "对成员%qD的请求出现在%qE中，而后者具有非类类型%qT"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of nonstatic data member %qE"
 msgid "invalid use of non-static data member %qE"
 msgstr "对非静态数据成员%qE的使用无效"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "对 NULL 对象非静态数据成员%qD的访问无效"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "对象类型%qT的析构函数名~%qT不匹配"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "被析构的类型是%qT，但析构函数却使用了%qT"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE"
 msgstr "%qT没有名为%qE的成员"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr "%qT没有名为%qE的成员"
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr "%qT没有名为%qE的成员"
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%qT没有名为%qE的成员"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%>不是%qT的成员"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT不是%qT的基类"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD不是一个成员模板函数"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT不是一个指向对象的类型"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "对成员指针数组索引的使用无效"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "对成员指针使用一元%<*%>非法"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "隐式转换成员指针用法无效"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "数组引用缺少下标"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "按下标访问声明为%<register%>的数组"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "下标运算的左操作数既非数组也非指针"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "使用%qE时缺少对象"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ 不允许在程序里调用%<::main%>"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "必须用%<.*%>or%<->*%>调用%<%E (...)%>中的成员函数指针，例如%<(... ->* %E) (...)%>"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE不能用作函数"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "%qE不能用作函数"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "%qE不能用作函数"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "给予函数 %s 的参数太多，于 %L"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "给 %qE 的实递参数太少"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "提供给函数%qE的实参太多"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "提供给函数%qE的实参太少"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "给予函数的实参太多"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "给予函数的实参太少"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "给予函数 %s 的参数太多，于 %L"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "给 %qE 的实递参数太少"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "给予函数的实参太多"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "给予函数的实参太少"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "%2$qD的第 %1$P 个形参的类型%3$qT不完全"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "形参 %P 的类型%qT不完全"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 #| msgid "the address of %qD will never be NULL"
 msgid "the address %qE will never be NULL"
 msgstr "%qD的地址永远不会为 NULL"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "%qD的地址永远不会为 NULL"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "比较将一律评估作为 %<true%> 用于地址的 %qD 将永不是空值"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, fuzzy, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "比较将一律评估作为 %<true%> 用于地址的 %qD 将永不是空值"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 #| msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "在不同的指针类型%qT和%qT之间的转换要一个类型转换"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 #| msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "在不同的指针类型%qT和%qT之间的转换要一个类型转换"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "在不同的指针类型%qT和%qT之间的比较需要一个类型转换"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "在不同的指针类型%qT和%qT之间的比较需要一个类型转换"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 #| msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "不同的指针类型%qT和%qT组成的条件表达式中需要一个类型转换"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "表达式%qE具有抽象类类型%qT，不能用于 throw 表达式中"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, fuzzy, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr "表达式%qE具有抽象类类型%qT，不能用于 throw 表达式中"
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, fuzzy, gcc-internal-format
 #| msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr "不同的指针类型%qT和%qT组成的条件表达式中需要一个类型转换"
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 #| msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "不同的指针类型%qT和%qT组成的条件表达式中需要一个类型转换"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "假定从重载函数转换到类型%qT"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "算术表达式中使用了 NULL"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ 不允许比较指针和整数的值"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, fuzzy, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "在类型%qT和%qT间比较"
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with integer zero"
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "指针与整数 0 比较大小"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 #| msgid "unordered comparison on non-floating point argument"
 msgid "unordered comparison on non-floating-point argument"
 msgstr "非浮点实参间的无效比较"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 #, fuzzy
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "C++ 中不允许从%qT到%qT的隐式转换"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "操作数类型%qT和%qT对双目%qO而言无效"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ 不允许在减法中使用类型为%<void *%>的指针"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ 不允许在减法中使用函数指针"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ 不允许在减法中使用指向方法的指针"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "在指针算术中使用指向不完全类型的指针无效"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of constructor %qE"
 msgid "taking address of constructor %qD"
 msgstr "取构造函数%qE的地址"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of destructor %qE"
 msgid "taking address of destructor %qD"
 msgstr "取析构函数%qE的地址"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "用%qE形成成员函数指针的用法无效"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "需要一个限定的标识符"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "%qE两边的括号不能用来构造一个成员函数指针"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ 不允许通过提取一个未限定的或带括号的非静态成员函数的地址来形成一个成员函数指针。请使用%<&%T::%D%>"
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO C++ 不允许通过提取一个未限定的或带括号的非静态成员函数的地址来形成一个成员函数指针。请使用%<&%T::%D%>"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ 不允许通过取已绑定的成员函数的地址来构造成员函数指针。请改用%<&%T::%D%>"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ 不允许通过取已绑定的成员函数的地址来构造成员函数指针。请改用%<&%T::%D%>"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "(成员指针只能用%<&%E%>构成)"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of rvalue"
 msgstr "取临时变量的地址"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ 不允许取函数%<::main%>的地址"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "不能创建指向引用成员%qD的指针"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take address of bit-field %qD"
 msgid "attempt to take address of bit-field"
 msgstr "无法取得位段%qD的地址"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of expression of type %<void%>"
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "取一个类型为%<void%>的表达式的地址"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++ 不允许枚举自增"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++ 不允许枚举自减"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "指向不完全类型%qT的指针不能自增"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "指向不完全类型%qT的指针不能自减"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++ 不允许对类型为%qT的指针自增"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++ 不允许对类型为%qT的指针自减"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "无法取右值表达式%<this%>的地址"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "要求显式寄存器变量%qD的地址。"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "请求声明为%<register%>的%qD的地址"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, fuzzy, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "%qT的初始值设定必须在花括号内"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "%s 表达式列表被看作复合表达式"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "%s 表达式列表被看作复合表达式"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "%s 表达式列表被看作复合表达式"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "%s 表达式列表被看作复合表达式"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr "缺少用以解析%qE类型的上下文"
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "从类型%qT到类型%qT的类型转换丢失了限定符"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 #| msgid "static_cast from type %qT to type %qT casts away qualifiers"
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "从类型%qT到类型%qT的 static_cast 丢失了限定符"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 #| msgid "reinterpret_cast from type %qT to type %qT casts away qualifiers"
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "从类型%qT到类型%qT的 reinterpret_cast 丢失了限定符"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "向函数类型%qT的转换无效"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "type qualifiers ignored on cast result type"
 msgstr "忽略函数返回类型的类型限定"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "从类型%qT到类型%qT中的 static_cast 无效"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 msgid "class type %qT is incomplete"
 msgstr "源有不完全的类类型"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 #| msgid "converting from %qT to %qT"
 msgid "converting from %qH to %qI"
 msgstr "从%qT转换到%qT"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "从具有类型%qT的右值表达式到类型%qT中的转换无效"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 #, fuzzy
 #| msgid "cast from %qT to %qT loses precision"
 msgid "cast from %qH to %qI loses precision"
 msgstr "从%qT到%qT的转换损失精度"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 #, fuzzy
 #| msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "在不同的成员指针类型%qT和%qT之间的比较需要一个类型转换"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 #| msgid "cast from %qT to %qT increases required alignment of target type"
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "从%qT到%qT的转换增大了目标类型的对齐需求"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, fuzzy, gcc-internal-format
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "ISO C++ 不允许在函数指针和对象指针间进行转换"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "从类型%qT到类型%qT的转换无效"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "在类型%qT上使用 const_cast 无效，因为它既不是指针，也不是引用，也不是数据成员指针"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "在类型%qT上使用 const_cast 无效，因为它是一个指针函数类型的指针或引用"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast of an rvalue of type %qT to type %qT"
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "从类型%qT到类型%qT中的 const_cast 无效"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast from type %qT to type %qT"
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "从类型%qT到类型%qT中的 const_cast 无效"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ 不允许转换为数组类型%qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "向函数类型%qT的转换无效"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qE from type %qT to type %qT"
 msgid "moving %qE of type %qT to itself"
 msgstr "无法将%qE从类型%qT转换到类型%qT"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "在求%<%Q(%#T, %#T)%>值时"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, fuzzy, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr "初始值设定中数组索引不是常数"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "将%qT赋值给%qT时类型不兼容"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, gcc-internal-format
 msgid "array used as initializer"
 msgstr "数组被用作初始值设定"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "无效的数组赋值"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "在成员函数指针转换中"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "成员指针转换经由虚基类%qT"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "在成员指针转换中"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "到类型%qT的转换无效，从类型%qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in default argument"
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "不能在参数默认时将%qT转换为%qT"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in argument passing"
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "不能在传参时将%qT转换为%qT"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in initialization"
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "不能在初始化时将%qT转换为%qT"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in return"
 msgid "cannot convert %qH to %qI in return"
 msgstr "不能在返回时将%qT转换为%qT"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 #| msgid "cannot convert %qT to %qT in assignment"
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "不能在赋值时将%qT转换为%qT"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, fuzzy, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "%2$qE的第 %1$d 个实参可能是 format 属性的备选"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, fuzzy, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr "返回类型可能是 format 属性的备选"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, fuzzy, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "函数的实参可能是 format 属性的备选"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, fuzzy, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "初始化的左手边可能是 format 属性的备选时"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, fuzzy, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "赋值的左手边可能是 format 属性的备选时"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 #| msgid "in passing argument %P of %q+D"
 msgid "in passing argument %P of %qD"
 msgstr "在传递%2$q+D的第 %1$P 个实参时"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "返回临时变量的引用"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "返回临时变量的引用"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, fuzzy, gcc-internal-format
 #| msgid "reference to local variable %q+D returned"
 msgid "reference to local variable %qD returned"
 msgstr "返回了对局部变量的%q+D的引用"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, fuzzy, gcc-internal-format
 msgid "address of label %qD returned"
 msgstr "返回了局部变量的%q+D的地址"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of local variable %qD returned"
 msgstr "返回了局部变量的%q+D的地址"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 #| msgid "too many values in return statement"
 msgid "redundant move in return statement"
 msgstr "返回语句中值太多"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 #| msgid "too many values in return statement"
 msgid "redundant move in initialization"
 msgstr "返回语句中值太多"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "析构函数返回值"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "不能从构造函数的异常处理中返回"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "构造函数返回值"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "在返回%qT的函数中，返回语句不带返回值"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 msgid "returning initializer list"
 msgstr "<花括号内的初始值列表>"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "Lambda 返回类型演绎得到不一致的类型%qT和%qT"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, fuzzy, gcc-internal-format
 #| msgid "inconsistent deduction for %qT: %qT and then %qT"
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "对%qT不一致的演绎：先是%qT然后是%qT"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 #| msgid "return-statement with no value, in function returning %qT"
 msgid "return-statement with a value, in function returning %qT"
 msgstr "在返回%qT的函数中，返回语句不带返回值"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, fuzzy, gcc-internal-format
 #| msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%>不能返回 NULL，除非它被声明为%<throw()%>(或 -fcheck-new 起作用)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 msgid "not eliding copy on return from %qD"
 msgstr "%q+#D的协变返回类型无效"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 msgid "using rvalue as lvalue"
 msgstr "右值的引用用作左值"
@@ -70347,161 +70363,161 @@ msgstr "被重载的函数缺少上下文信息"
 msgid "insufficient contextual information to determine type"
 msgstr "上下文信息不足以确定类型"
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "使用了构造函数的语法，但没有为类型%qT声明构造函数"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "非静态数据成员%qD具有 Java 类类型"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "在 {} 内将%qE从%qT转换为较窄的类型%qT"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 #| msgid "narrowing conversion of %qE from %qT to %qT inside { }"
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "在 {} 内将%qE从%qT转换为较窄的类型%qT"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, fuzzy, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr "位段%qs的宽度不是一个整数常量表达式"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 #| msgid "initializer-string for array of chars is too long"
 msgid "initializer-string for %qT is too long"
 msgstr "用以初始化字符数组的字符串太长"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "remove %<{ }%> around initializer"
 msgstr "标量初始化带花括号"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "无法用复合字面常量初始化类型为%qT的聚集"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "成员%qD缺少初始值设定"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "成员%qD是未初始化的引用"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 msgid "member %qD with uninitialized reference fields"
 msgstr "成员%qD是未初始化的引用"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 #| msgid "type of %qD does not match original declaration"
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "类型%qD不匹配原先的声明"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "在初始化的联合中找不到字段%qD"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "在联合初始值设定中出现了索引值而不是字段名"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "检测到循环指针代理"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "%<->%>的基操作数具有非指针类型%qT"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "%<operator->()%>的结果给出了非指针的结果"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "%<->%>的左操作数不是一个指针"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE不能用作成员指针，因为它的类型为%qT"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "无法将成员指针%qE应用到%qE上，因为后者的类型%qT不是一个类"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "成员指针类型%qT与对象类型%qT不兼容"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "生成非类类型%qT的成员函数指针"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "生成非类类型%qT的成员函数指针"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "生成非类类型%qT的成员函数指针"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "从类型%qT到类型%qT的转换无效"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, fuzzy, gcc-internal-format
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "不能内联%<main%>函数"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, fuzzy, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++0x auto 只在 -std=c++0x 或 -std=gnu++0x 下可用"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, fuzzy, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "引用类型的非法值初始化"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "调用的函数%qD会抛出不完全的类型%q#T"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "调用的函数会抛出不完全的类型%q#T"
@@ -71534,7 +71550,7 @@ msgstr "名字列表 %s 不能为对 %s 的 USE 关联来更名"
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "‘我’于 %L 和‘J’于 %L 无法两者是 BOZ 实字常数"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr "%2$C处 DATA 语句初始值设定 %1$s 无效"
@@ -72882,7 +72898,7 @@ msgstr "%C处错误的 INTENT 规格"
 msgid "deferred type parameter at %C"
 msgstr "%C处重复的 DEFERRED 语句"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -73107,7 +73123,7 @@ msgstr "%2$L处具有 CLASS 的组件‘%1$s’必须是可分配的或指针"
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "%C处结构的数组组件必须有显式或延迟的外形"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "Component %qs at %C already declared at %L"
@@ -73926,7 +73942,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "函数定义在%C处需要形参列表"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr "%L处的 BIND(C) 属性只能用于变量或公共块"
@@ -74750,12 +74766,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr "试图合并相同的常量和常变量"
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr "INTENT(%s) %L处的实参可能干涉%L处的实参。"
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -75005,276 +75021,276 @@ msgstr "参数’%s在%L处尚未声明或者是一个不能被归约为常量
 msgid "check_init_expr(): Unknown expression type"
 msgstr "需要表达式类型"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "%2$L处规格函数‘%1$s’不能是一个语句函数"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "%2$L处规格函数‘%1$s’不能是一个内部函数"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L must be PURE"
 msgstr "%2$L 处初始化表达式中的函数 ‘%1$qs’ 必须是一个内建函数"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, fuzzy, gcc-internal-format
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "%2$L处规格函数‘%1$s’不能是 RECURSIVE"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "虚参‘%s’不能出现在%L处的表达式中"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "%L处运算符接口的第一个参数不能是可选的"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "%2$L处的‘%1$s’虚参不能是 INTENT(OUT)"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "变量‘%s’不能出现在%L处的表达式中"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, fuzzy, gcc-internal-format
 msgid "check_restricted(): Unknown expression type"
 msgstr "需要表达式类型"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "%L处的表达式必须具有 INTEGER 类型而不是 %s"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "%L处内建运算符接口必须是一个 FUNCTION"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "%L处的表达式必须具有标量类型"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "%4$L%1$s 中秩(%2$d 和 %3$d)不兼容"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "%2$L处 %1$s 在第 %3$d 维上外形不同(%4$d 和 %5$d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr "不能在%2$C处的 PURE 过程中读取变量‘%1$s’"
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "%2$L 处的 %1$qs 不是一个 VALUE"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Illegal stride of zero at %L"
 msgid "Illegal assignment to external procedure at %L"
 msgstr "%L 零间隔非法"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "赋值中有不兼容的秩 %d 和 %d，位于 %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "%L处赋值中的变量类型是 UNKNOWN"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "%L处赋值右手边出现 NULL"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "%L处赋值右手边出现值为 POINTER 的函数"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr "%L处指针赋值时参数种别类型不同"
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "%L处 DATA 语句中类型不兼容；试图从 %s 转换到 %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "%L处指针赋值的目标不是一个 POINTER"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, fuzzy, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "%2$L处指针赋值中的‘%1$s’不能是一个左值，因为它是一个过程"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, fuzzy, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "%2$L处‘%1$s’需要边界规格"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, fuzzy, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Fortran 2003：%2$L处指针赋值语句中‘%1$s’的边界规格"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr "%L 零间隔非法"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "外部对象‘%s’在%L处不能有初始值设定"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "%L处过程指针赋值非法"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "语句函数‘%s’在%L处的过程指针赋值中是非法的"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, fuzzy, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "抽象接口‘%s’在%L处的过程指针赋值中是非法的"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, fuzzy, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "语句函数‘%s’在%L处的过程指针赋值中是非法的"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, fuzzy, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "内部过程‘%s’在%L处的过程指针赋值中是非法的"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, fuzzy, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "%L处过程指针赋值非法"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, fuzzy, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "内部过程‘%s’在%L处的过程指针赋值中是非法的"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr "%L处过程指针赋值不匹配：调用约定不匹配"
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, fuzzy, gcc-internal-format
 #| msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "%L处过程指针赋值中接口不匹配：%s"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, fuzzy, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "%C处需要 NOPASS 或显式接口"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, fuzzy, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "%C处需要 NOPASS 或显式接口"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "%L处过程指针赋值中接口不匹配：%s"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Pointer assignment target is not a POINTER at %L"
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "%L处指针赋值的目标不是一个 POINTER"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "%L处指针赋值时类型不同；试图将 %s 赋值给 %s"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "%L处指针赋值时参数种别类型不同"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "%L处指针赋值时秩不同"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr "分级重新映射目标是小于大小的指标 (%ld<%ld) 于 %L"
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr "分级重新映射目标必须是分级 1 或仅需 contiguous 于 %L"
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr "Fortran 2008：%L处格式中的‘G0’"
@@ -75282,192 +75298,192 @@ msgstr "Fortran 2008：%L处格式中的‘G0’"
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr "%L处数据传输元素不能有 POINTER 组件"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "%L处计算转移 GOTO 语句的选择表达式必须是一个标量整数表达式"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "%L 处指针赋值目标对象有 PROTECTED 属性"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "必须为%L处的 ASYNCHRONOUS= 指定一个初始化表达式"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "%L处指针赋值的目标既不是 TARGET 也不是 POINTER"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "%L处 PURE 过程中指针赋值目标错误"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "%L处指针赋值的右手边带有向量下标"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "%L处指针赋值目标对象有 PROTECTED 属性"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr "%L处指针赋值的目标既不是 TARGET 也不是 POINTER"
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "%L处的分配对象必须是 ALLOCATABLE 或 POINTER"
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "%L 处指针赋值目标对象有 PROTECTED 属性"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "%2$L 处的对象“%1$s”对于成分的默认初始化必须有 SAVE 属性，"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr "%L处 PURE 过程中指针赋值目标错误"
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "内部过程‘%s’在%L处的过程指针赋值中是非法的"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "内部过程‘%s’在%L处的过程指针赋值中是非法的"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "Fortran 2003：%L处初始化表达式中非整数指数"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr "Non-variable 运算式在中变量定义语境 (%s) 于 %L"
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, fuzzy, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr "变量‘%s’在%L处上下文中必须是常量"
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, fuzzy, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "%L处的属性不允许出现在 TYPE 定义中"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr "Non-POINTER 在中指标关联语境 (%s) 于 %L"
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr "变量‘%s’在%L处上下文中必须是常量"
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr "变量‘%s’在%L处上下文中必须是常量"
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr "变量‘%s’在%L处上下文中必须是常量"
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "变量‘%s’在%L处上下文中必须是常量"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr "虚参‘%s’不能出现在%L处的表达式中"
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr "虚参‘%s’不能出现在%L处的表达式中"
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "变量‘%s’不能出现在%L处的表达式中"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "变量‘%s’不能出现在%L处的表达式中"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "变量‘%s’不能出现在%L处的表达式中"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr "变量‘%s’在%L处上下文中必须是常量"
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr "变量‘%s’不能出现在%L处的表达式中"
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr "变量‘%s’不能出现在%L处的表达式中"
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, fuzzy, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "Associate-name‘%s’无法出现在中变量定义语境 (%s) 于 %L 因为它的目标于 %L 无法，还是"
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr "‘%s’于 %L 关联的到运算式无法已用于变量定义语境 (%s)"
@@ -75490,8 +75506,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "在%L处建立临时数组"
@@ -75573,7 +75589,7 @@ msgstr "变量‘%s’(位于 %C)不能在从 %L 开始的循环的内部重定
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "变量‘%s’(位于 %C)不能在从 %L 开始的循环的内部重定义"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -75709,12 +75725,12 @@ msgstr "%L处定义赋值的第一个参数必须是 INTENT(OUT) 或 INTENT(INOU
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "%L处定义赋值的第二个参数必须是 INTENT(IN)"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "%L处运算符接口的第一个参数必须是 INTENT(IN)"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "%L处运算符接口的第二个参数必须是 INTENT(IN)"
@@ -76593,7 +76609,7 @@ msgstr "从 %s 转换到 %s，位于 %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Can't convert %s to %s at %L"
 msgid "Cannot convert %s to %s at %L"
@@ -77175,7 +77191,7 @@ msgstr "名称表列‘%s’在中读取叙述于 %L 含有符号‘%s’该项
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr "%3$L处 NAMELIST 数组对象‘%1$s’在名字列表‘%2$s’不能有 POINTER 组件"
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr "%3$L处 NAMELIST 数组对象‘%1$s’在名字列表‘%2$s’必须有 ALLOCATABLE 组件"
@@ -77349,6 +77365,11 @@ msgstr "整数溢出"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, fuzzy, gcc-internal-format
 msgid "gfc_op2string(): Bad code"
@@ -77759,7 +77780,7 @@ msgstr "停止编码于 %L 必须是缺省字符 KIND=%d"
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "%C处 Cray 指针必须是一个整数"
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression"
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
@@ -78296,85 +78317,85 @@ msgstr "%C处 PROTECTED 语句语法错误"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr "%C处 SELECT TYPE 中的选择子不是一个有名变量；请使用 associate-name=>"
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr "%C处的语句标号为零"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, gcc-internal-format, gfc-internal-format
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr ""
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "%C处 PROTECTED 语句语法错误"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "%C处非预期的 CASE 语句"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "%C处 CASE 规格语法错误"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "%C处非预期的 TYPE IS 语句"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "%C处 TYPE IS 规格语法错误"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "%C处 CLASS IS 规格语法错误"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected RANK statement at %C"
 msgstr "%C处非预期的 END 语句"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL stride expression at %L must be a scalar %s"
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "%L处 FORALL 间隔表达式必须是一个标量 %s"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Syntax error in CASE specification at %C"
 msgid "Syntax error in RANK specification at %C"
 msgstr "%C处 CASE 规格语法错误"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "%C处的 ELSEWHERE 语句不在 WHERE 块中"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, fuzzy, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr "%2$C处的标号‘%1$s’不匹配 WHERE 标号‘%3$s’"
@@ -79829,8 +79850,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr ""
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "%L处的 IF 分句需要一个标量 LOGICAL 表达式"
@@ -82241,12 +82262,12 @@ msgstr "在%2$L处由内建函数‘%1$s’声明的 INTRINSIC 在当前的标
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "%2$L处非 RECURSIVE 过程‘%1$s’可能递归地调用它自己。请将它声明为 RECURSIVE 或使用 -frecursive"
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, fuzzy, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "%2$L处非 RECURSIVE 过程‘%1$s’可能递归地调用它自己。请将它声明为 RECURSIVE 或使用 -frecursive"
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "标号 %d(引用自 %L)从未被定义"
@@ -82366,7 +82387,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "%2$L处的函数‘%1$s’没有隐式类型"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L has no IMPLICIT type"
 msgstr "%2$L处的函数‘%1$s’没有隐式类型"
@@ -82770,280 +82791,286 @@ msgstr "数组‘%s’在%L处不能有延迟的外形"
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "数组‘%s’在%L处不能有延迟的外形"
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_variable_attr(): Bad array reference"
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "gfc_variable_attr()︰不当的数组引用"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr "用在一个规格说明表达式中的变量‘%s’在%L处的引用出现在该变量是其参数的 ENTRY 语句之前"
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr "变量‘%s’在%L处的使用出现在该变量是其参数的 ENTRY 语句之前"
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr "%2$L处非多态的传递对象哑元实参‘%1$s’"
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr "Coindexed 对象与 polymorphic allocatable subcomponent 于 %L"
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr "已弃用%qE"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Bad array reference at %L"
+msgid "Invalid array reference at %L"
+msgstr "%L处数组引用错误"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr "%C处类型指定无效"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "%L处传递的对象必须是标量"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, fuzzy, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr "%L处类型限定过程调用的基类型是 ABSTRACT 类型‘%s’"
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, fuzzy, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr "%L处 NOPASS 类型限定过程调用的基对象必须是标量"
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "%L处 NOPASS 类型限定过程调用的基对象必须是标量"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, fuzzy, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr "%2$L处对 GENERIC‘%1$s’的调用没有找到匹配特别的限定"
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "%L处的运算符接口必须是一个 SUBROUTINE"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr "在函数%qs中"
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, fuzzy, gcc-internal-format
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "需要表达式类型"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s (%L处)必须是一个标量"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "%s (%L处)必须是 INTEGER"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s (%L处)必须是 INTEGER"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "%L处的 DO 循环中的步进表达式不能为零"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr "%L处的 DO 循环中的步进表达式不能为零"
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "%L处 FORALL 索引名必须是一个标量整数"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "%L处 FORALL 起始表达式必须是一个标量整数"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "%L处 FORALL 结束表达式必须是一个标量整数"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "%L处 FORALL 间隔表达式必须是一个标量 %s"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "%L处 FORALL 间隔表达式不能是零"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, fuzzy, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "FORALL 索引‘%s’不能出现在%L处的三元组规格说明中"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "%L处的分配对象必须是 ALLOCATABLE 或 POINTER"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr "%L处的分配对象必须是 ALLOCATABLE 或 POINTER"
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr "%L处的源表达式必须是标量或者与%L处的分配对象有相同的秩"
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr "%L处的源表达式和%L处的分配对象必须有相同的外形"
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr "%L处实体的类型与%L处的源表达式类型不兼容"
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr "%L处的分配对象和%L处的源表达式应该有相同的种别类型参数"
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr "source-expr 于 %L 应该 neither 是的类型 LOCK_TYPE nor 有 LOCK_TYPE 成分如果 allocate-object 于 %L 是 coarray"
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr "source-expr 于 %L 应该 neither 是的类型 LOCK_TYPE nor 有 LOCK_TYPE 成分如果 allocate-object 于 %L 是 coarray"
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr "%2$L处分配具有 ABSTRACT 基类型的 %1$s 需要一个类型指定或 SOURCE="
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr "配置 %s 于 %L 与 type-spec 需求相同 character-length 参数作为在中声明"
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "%L处的 ALLOCATE 语句中需要数组规格说明"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Array specification required in ALLOCATE statement at %L"
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "%L处的 ALLOCATE 语句中需要数组规格说明"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "%L处的 ALLOCATE 语句中需要数组规格说明"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "%L处的 ALLOCATE 语句中有错误的数组规格"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "%L处的 ALLOCATE 语句中有错误的数组规格"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, fuzzy, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "‘%s’不能出现在%L处其自身被分配的 ALLOCATE 语句的数组规格说明中"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "%L处的 ALLOCATE 语句中需要数组规格说明"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "%L处 stat 变量必须是一个标量 INTEGER 变量"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "%1$L处的统计变量不能在同一个 %3$s 语句中被 %2$s"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr "%L处的 ERRMSG 没有 STAT 标记所以不起作用"
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "%L处错误信息变量必须是一个标量 CHARACTER 变量"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr "%1$L处的错误信息变量不能在同一 %3$s 语句中被 %2$s"
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr "%L处分配的对象也出现在%L处"
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr "%L处的分配对象必须是 ALLOCATABLE 或 POINTER"
@@ -83052,285 +83079,285 @@ msgstr "%L处的分配对象必须是 ALLOCATABLE 或 POINTER"
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "%L处的 CASE 标号与%L处的 CASE 标号重叠"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "%L处 CASE 语句中的表达式必须具有 %s 类型"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "%L 处 CASE 语句中的表达式种别必须为 %d"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "%L处 CASE 语句中的表达式必须为标量"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "%L处计算转移 GOTO 语句的选择表达式必须是一个标量整数表达式"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "%L处 SELECT 语句的实参不能是 %s"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "%L处 SELECT 语句中的实参必须为标量"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "%L处 CASE 语句中的表达式必须具有 %s 类型"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "%L处的 DEFAULT CASE 为%L处的第二个 DEFAULT CASE 所跟随"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "%L处 CASE 语句中的逻辑范围是不被允许的"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "%L 处 CASE 语句中的常量逻辑值被重复了"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "%L处范围规格无法匹配"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "%L处逻辑 SELECT CASE 块有多于两个的情况"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, fuzzy, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "%L处过程指针赋值非法"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "名字‘%s’在%C处不能用作已定义的运算符"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, fuzzy, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "%2$L 处的名字“%1$s”已经在 %4$L 处被用作 %3$s"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr "选择子必须是立即数"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr "选择子必须是立即数"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, fuzzy, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr "%2$L 处的名字“%1$s”已经在 %4$L 处被用作 %3$s"
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "%C处 SELECT TYPE 语句中的选择子应该是多态的"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr "选择子必须是立即数"
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "CASE label at %L overlaps with CASE label at %L"
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "%L处的 CASE 标号与%L处的 CASE 标号重叠"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr "%2$L处派生类型‘%1$s’必须是可扩展的"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "%2$L处派生类型‘%1$s’必须是‘%3$s’的一个扩展"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, fuzzy, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "对子进程名‘%s’非预期的使用，在%C处"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr "数组‘%s’在%L处不能有延迟的外形"
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr "%L处 SELECT TYPE 语句中有双重的 CLASS IS 块"
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "%%L处 NULL() 指针上下文无效"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "%L处的表达式必须具有标量类型"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr "数据转移组件于 %L 无法 polymorphic 除非它被处理由定义的输入/输出进程"
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "%L处数据传输元素不能有 POINTER 组件"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "%L处数据传输元素不能有 PRIVATE 组件"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "%L处数据传输元素不能有 ALLOCATABLE 组件"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "%L处数据传输元素不能有 PRIVATE 组件"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "%L处数据传输元素不能有 POINTER 组件"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "%L处数据传输元素不能是对一个假定大小数组的全引用"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "%L处 !$OMP ATOMIC 语句必须设定一个内建类型的标量值"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "%L处 !$OMP ATOMIC 语句必须设定一个内建类型的标量值"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "‘%s’的实参在%L处必须是一个指针"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "‘%s’的实参在%L处必须是一个指针"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "%L处 stat 变量必须是一个标量 INTEGER 变量"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "%L处错误信息变量必须是一个标量 CHARACTER 变量"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "%L处 stat 变量必须是一个标量 INTEGER 变量"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "%L处 SELECT 语句中的实参必须为标量"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "%L处 SELECT 语句中的实参必须为标量"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "%L处 ACOS 的参数必须在 -1 和 1 之间"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "%L处的语句对%L处的分支语句而言不是一个有效的分支目标语句"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr "%L处的分支可能导致无穷循环"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr "前往叙述于 %L 树叶重要建构用于标贴于 %L"
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr "%s 语句在%C处离开 OpenMP 结构块"
@@ -83338,220 +83365,220 @@ msgstr "%s 语句在%C处离开 OpenMP 结构块"
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "%L处的标号与%L处 GOTO 语句不在相同的块中"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "%L处的 WHERE 掩码外形不一致"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "%L处 WHERE 赋值目标外形不一致"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr "%L处 WHERE 中用户定义的非 ELEMENTAL 用户赋值"
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "%L处在 WHERE 内不支持的语句"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "%L处向 FORALL 索引变量赋值"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, fuzzy, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "%2$L处带索引‘%1$s’的 FORALL 没有被用在赋值的左侧，所以可能导致对这个对象的多个赋值"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr "位置错误的%<@%D%>Objective-C++ 构造"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "%L处 FORALL 索引名必须是一个标量整数"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "%L处外部 FORALL 构造已经有一个同名的索引"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "%L处的 WHERE/ELSEWHERE 子句需要一个 LOGICAL 数组"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "%L处数据传输元素不能有 PRIVATE 组件"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L"
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "CHARACTER 表达式在%3$L处赋值时将被截断(%1$d/%2$d)"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "%L处一个非纯变量在 PURE 过程中被赋值给带有 POINTER 组件派生类型变量(12.6)"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "%L处 PURE 过程中指针赋值目标错误"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "%L处赋值中的变量类型是 UNKNOWN"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, fuzzy, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr "%L处向 FORALL 索引变量赋值"
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, fuzzy, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr "变量必须不是 polymorphic 在中 intrinsic 指派于 %L - 检查该有匹配特定的副常式用于‘=’运算符"
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr "%L处赋值中的变量类型不能是多态的"
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid procedure pointer assignment at %L"
 msgid "Pointer procedure assignment at %L"
 msgstr "%L处过程指针赋值非法"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "%L处计算转移 GOTO 语句的选择表达式必须是一个标量整数表达式"
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "%L处 SELECT 语句中的实参必须为标量"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "%L处 stat 变量必须是一个标量 INTEGER 变量"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable"
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "ASSIGNED GOTO 语句在%L处需要一个 INTEGER 变量"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "变量‘%s’在 %L 尚未指派目标标号"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "%L处的替代 RETURN 语句需要一个 SCALAR-INTEGER 返回限定符"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected initialization expression in CASE at %C"
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "%C处 CASE 中需要初始化表达式"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "%L处的 ASSIGN 语句需要一个默认标量 INTEGER 变量"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid kind for %s at %L"
 msgid "Invalid NULL at %L"
 msgstr "%2$L处 %1$s 种别无效"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Arithmetic IF statement at %L requires a numeric expression"
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "%L处的算术 IF 语句要求一个数字表达式"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "%L处 DO WHILE 循环的退出条件必须是一个标量 LOGICAL 表达式"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "%L处的 IF 分句需要一个标量 LOGICAL 表达式"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, fuzzy, gcc-internal-format
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_trans_code()：错误的语句代码"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "%2$L处声明了未使用的参数‘%1$s’"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "%2$L处的绑定标号‘%1$s’与 %4$L 处的全局实体‘%3$s’冲突"
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr "%2$L处的绑定标号‘%1$s’与 %4$L 处的全局实体‘%3$s’冲突"
@@ -83559,1012 +83586,1012 @@ msgstr "%2$L处的绑定标号‘%1$s’与 %4$L 处的全局实体‘%3$s’冲
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "%2$L处的绑定标号‘%1$s’与 %4$L 处的全局实体‘%3$s’冲突"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "%L处字符串太长"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, fuzzy, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "可分配的数组‘%s’在%L处必须有延迟的外形"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, fuzzy, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "%2$L处标量对象‘%1$s’不能为 ALLOCATABLE"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, fuzzy, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "数组指针‘%s’在%L处必须有延迟的外形"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, fuzzy, gcc-internal-format
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "数组‘%s’在%L处不能有延迟的外形"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, fuzzy, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr "%3$L处 CLASS 变量‘%2$s’的类型‘%1$s’不能被扩展"
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, fuzzy, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr "%2$L处的 CLASS 变量‘%1$s’必须是哑元、可分配的或者指针"
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, fuzzy, gcc-internal-format
 #| msgid "The type '%s' cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr "‘%s’在%L处不能是主机相关的，因为它被在%L处声明的一个不兼容的同名对象所阻碍"
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, fuzzy, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr "Fortran 2008：%2$L处模块变量‘%1$s’隐含使用了 SAVE，因为默认初始化有此需求"
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, fuzzy, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "语句函数‘%s’在%L处不允许用作实参"
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, fuzzy, gcc-internal-format
 #| msgid "The module or main program array '%s' at %L must have constant shape"
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "%2$L处的模块或主程序数组‘%1$s’必须有常量外形"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "%L处假定字符长度的实体必须是个虚参或是个 PARAMETER"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %L must have constant character length in this context"
 msgid "%qs at %L must have constant character length in this context"
 msgstr "变量‘%s’在%L处上下文中字符长度必须为常量"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, fuzzy, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "变量‘%s’在%L处上下文中字符长度必须为常量"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, fuzzy, gcc-internal-format
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "可分配的‘%s’在%L处不能有初始值设定"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, fuzzy, gcc-internal-format
 msgid "External %qs at %L cannot have an initializer"
 msgstr "外部‘%s’在%L处不能有初始值设定"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "哑元‘%s’在%L处不能有初始值设定"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, fuzzy, gcc-internal-format
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "内建函数‘%s’在%L处不能有初始值设定"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "函数结果‘%s’在%L处不能有初始值设定"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, fuzzy, gcc-internal-format
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "自动数组‘%s’在%L处不能有初始值设定"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "in %s, at %s:%d"
 msgid "%s at %L"
 msgstr "在 %s 中，于 %s:%d"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, fuzzy, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "%2$L处有字符值的语句函数‘%1$s’必须有常量长度"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, fuzzy, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "Fortran 2003：%3$L处‘%1$s’是 PRIVATE 类型因而不能是 PUBLIC 类型‘%2$s’的虚参"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr "Fortran 2003: %3$L处 PUBLIC 接口‘%2$s’中的过程‘%1$s’有 PRIVATE 的虚参‘%4$s’"
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "函数‘%s’在%L处不能有初始值设定"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, fuzzy, gcc-internal-format
 msgid "External object %qs at %L may not have an initializer"
 msgstr "外部对象‘%s’在%L处不能有初始值设定"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, fuzzy, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "%2$L处 ELEMENTAL 函数‘%1$s’必须有一个标量返回值"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, fuzzy, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "语句函数‘%s’在%L处不允许用作实参"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "CHARACTER(*) 函数‘%s’在%L处不能为数组值"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "指定CHARACTER(*) 函数‘%s’在%L处不能为指针值"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "CHARACTER(*) 函数‘%s’在%L处不能为纯函数"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "CHARACTER(*) 函数‘%s’在%L处不能是递归的"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "在函数%qs中"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "%2$L处的具有 PASS 的过程指针组件‘%1$s’必须至少有一个实参"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, fuzzy, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "哑过程‘%s’在%C处不能有泛型接口"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, fuzzy, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr "%2$L处变量‘%1$s’不能既有 ALLOCATABLE 又有 BIND(C) 属性"
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "%L处 PURE 过程不能指定 SAVE 属性"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "PROCEDURE 属性与%2$L处‘%1$s’中的 INTENT 属性冲突"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "PROCEDURE 属性与在%2$L处‘%1$s’中的 RESULT 属性冲突"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, fuzzy, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "EXTERNAL 属性与在%2$L处‘%1$s’中的 FUNCTION 属性冲突"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr "%2$L处过程指针结果‘%1$s’缺少指针属性"
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr "%L处的运算符接口必须是一个 SUBROUTINE"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, fuzzy, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "%L处 FINAL 过程的参数必须不是 OPTIONAL"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "%L处的 FINAL 过程有且只有一个参数"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, fuzzy, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "%L处 FINAL 过程的参数必须不是 OPTIONAL"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "%L处 FINAL 过程的参数必须不是 POINTER"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "%L处 FINAL 过程的参数必须不是 ALLOCATABLE"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "%L处 FINAL 过程的参数必须不是 OPTIONAL"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "%L处 FINAL 过程的参数必须不是 INTENT(OUT)"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "%L处的非标量 FINAL 过程应当有假定外形的参数"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, fuzzy, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "%2$L处声明的 FINAL 过程‘%1$s’有与‘%4$s’相同的秩(%3$d)"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, fuzzy, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr "仅为定义在%2$L处的派生类型‘%1$s’声明了数组 FINAL 过程，建议也定义一个标量过程"
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, fuzzy, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr "%4$L处‘%1$s’和‘%2$s’对 GENERIC‘%3$s’不能是混合的 FUNCTION/SUBROUTINE"
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, fuzzy, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr "引用%qs有歧义：出现在接口%qs和接口%qs中"
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, fuzzy, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr "未定义的指定绑定‘%1$s’用作%3$L处的 GENERIC‘%2$s’的目标"
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, fuzzy, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr "%2$L处 GENERIC‘%1$s’必须定位一个特定的绑定，‘%3$s’也是 GENERIC"
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, fuzzy, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr "%2$L处 GENERIC‘%1$s’无法覆盖同名的特定绑定"
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Type-bound operator at %L can't be NOPASS"
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "%L处类型限定的操作数不能是 NOPASS"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, fuzzy, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "%2$L处的‘%1$s’必须是一个模块过程或带有显式接口的外部过程"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "%3$L处有 PASS(%2$s)的过程‘%1$s’没有参数‘%4$s’"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "%2$L处有 PASS 的过程‘%1$s’必须至少带一个参数"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, fuzzy, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "%2$L处非多态的传递对象虚参‘%1$s’"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr " %4$L处的具有 PASS(%3$s) 的‘%2$s’的参数‘%1$s’必须具有派生类型‘%5$s’"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr " %4$L处的具有 PASS(%3$s) 的‘%2$s’的参数‘%1$s’必须具有派生类型‘%5$s’"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "%2$L处‘%1$s’的传递对象虚参必须是标量"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "%2$L处‘%1$s’的传递对象虚参不能是 ALLOCATABLE"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "%2$L处‘%1$s’的传递对象虚参不能是 POINTER"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "%2$L处过程‘%1$s’和‘%3$s’的组件重名"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "%2$L处过程‘%1$s’和‘%3$s’的继承组件重名"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, fuzzy, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr "%2$L处声明的派生类型‘%1$s’必须是 ABSTRACT，因为‘%3$s’是 DEFERRED 且没有被覆盖"
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, fuzzy, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "数组指针‘%s’在%L处必须有延迟的外形"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "成分‘%s’于 %L 的类型 (C_PTR) 或类型 (C_FUNPTR) 不应该是 coarray"
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr "成分‘%s’于 %L 与 coarray 成分应该是 nonpointer，nonallocatable 纯量"
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr "%2$L 处的“%1$s”不能有 VALUE 属性，因为它不是个虚参"
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ICHAR at %L must be of length one"
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "%L处 ICHAR 的参数长度必须为 1"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "%3$L处带有 PASS(%2$s)的过程指针组件‘%1$s’没有参数‘%4$s’"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "%2$L处的具有 PASS 的过程指针组件‘%1$s’必须至少有一个实参"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "%4$L处具有 PASS(%3$s) 的‘%2$s’的参数‘%1$s’必须有派生类型‘%5$s’"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "%4$L 处的具有 PASS(%3$s) 的‘%2$s’的参数‘%1$s’必须是标量"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "%4$L处带 PASS(%3$s) 的‘%2$s’的参数‘%1$s’不能有 POINTER 属性"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "%4$L处带 PASS(%3$s) 的‘%2$s’的参数‘%1$s’不能是 ALLOCATABLE"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, fuzzy, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "%3$L处‘%2$s’的组件‘%1$s’与一个继承的类型限定过程同名"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, fuzzy, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "%2$L处组件‘%1$s’的字符长度必须是一个常量规格表达式"
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, fuzzy, gcc-internal-format
 #| msgid "Expression at %L must be of INTEGER type, found %s"
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "%L处的表达式必须具有 INTEGER 类型而不是 %s"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, fuzzy, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr "字符成分‘%s’的‘%s’于 %L 与已推迟长度必须是指标或 ALLOCATABLE"
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, fuzzy, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "Fortran 2003：%3$L处组合‘%1$s’是一个 PRIVATE 类型，因此不能是 PUBLIC‘%2$s’的组合"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr "Polymorphic 成分 %s 于 %L 在中串行或绑定©类型 %s"
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "%2$L处声明的有 SEQUENCE 类型的组件 %1$s 没有 SEQUENCE 属性"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "non-constant initialization expression at %L"
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "%L处非常量初始化表达式"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, fuzzy, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr "作为延伸类型‘%s’于 %L 有 coarray 成分，亲代类型‘%s’应该也有一个"
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, fuzzy, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "%2$L处不能扩展的派生类型‘%1$s’不能是 ABSTRACT"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, fuzzy, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr "%3$L处‘%2$s’的组件‘%1$s’与一个继承的类型限定过程同名"
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "%2$L处派生类型‘%1$s’必须是可扩展的"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, fuzzy, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "不允许 %3$L 处 %2$s 名字列表中假定大小的数组“%1$s”"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr "%3$L处 NAMELIST 数组对象‘%1$s’在名字列表‘%2$s’不能有假定外形"
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr "%3$L处 NAMELIST 数组对象‘%1$s’在名字列表‘%2$s’必须有常外形"
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr "%3$L处 NAMELIST 数组对象‘%1$s’在名字列表‘%2$s’必须有常外形"
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "%3$L处 NAMELIST 对象‘%1$s’声明为 PRIVATE 因此不能是 PUBLIC 名字列表‘%2$s’的成员"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr "%3$L处 NAMELIST 对象‘%1$s’有使用相关的 PRIVATE 组件因此不能是 NAMELIST‘%2$s’的成员"
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "%3$L处 NAMELIST 对象‘%1$s’有 PRIVATE 组件因此不能是 PUBLIC 名字列表‘%2$s’的成员"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "PROCEDURE 属性与%2$L处‘%1$s’中的 NAMELIST 属性冲突"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, fuzzy, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "%2$L处的参数数组‘%1$s’不能是自动的或有延迟的外形"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, fuzzy, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "%2$L处隐式类型的 PARAMETER‘%1$s’与随后的 IMPLICIT 类型不匹配"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "%L处 PARAMETER 中派生类型不兼容"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, fuzzy, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "%2$L处变量‘%1$s’不能既有 POINTER 又有 BIND(C) 属性"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, fuzzy, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "语句函数‘%s’在%L处不允许用作实参"
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "%s 属性与 %s 属性在%L处冲突"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "%s 属性与 %s 属性在%L处冲突"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr "%2$L 处的“%1$s”不能有 VALUE 属性，因为它不是个虚参"
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Bad specification for assumed size array at %C"
 msgid "Bad specification for assumed size array at %L"
 msgstr "%C处假定大小数组的规格说明错误"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "%L处假定大小的数组必须是一个虚参"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "%L处假定外形的数组必须是一个虚参"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "%L处假定大小的数组必须是一个虚参"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "%L处的符号不是一个 DUMMY 变量"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr "%2$L 处的“%1$s”不能有 VALUE 属性，因为它不是个虚参"
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, fuzzy, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "%2$L处带 VALUE 属性的字符哑元‘%1$s’必须具有常数长度"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, fuzzy, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr "%2$L处带 VALUE 属性与 C 可互操作的字符哑元‘%1$s’长度必须为 1"
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, fuzzy, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "%2$L处派生类型‘%1$s’的类型‘%3$s’尚未定义"
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "%2$L处变量‘%1$s’不能既有 ALLOCATABLE 又有 BIND(C) 属性"
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "%2$L处变量‘%1$s’不能既有 POINTER 又有 BIND(C) 属性"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "%2$L处假定外形数组‘%1$s’不能用在初始化表达式中"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "%2$L处变量‘%1$s’不能既有 ALLOCATABLE 又有 BIND(C) 属性"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "%2$L处变量‘%1$s’不能既有 POINTER 又有 BIND(C) 属性"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr "%C处的循环变量不能是一个子组件"
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr "%2$L处变量‘%1$s’不能是 BIND(C) 因为它既不是一个 COMMON 块也不是于模块级作用域声明的"
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, fuzzy, gcc-internal-format
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "变量‘%s’在%L处上下文中字符长度必须为常量"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, fuzzy, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "Fortran 2003：%3$L处 PUBLIC %1$s‘%2$s’具有 PRIVATE 派生类型‘%4$s’"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr "变量 %s 于 %L 的类型 LOCK_TYPE 或与 subcomponent 的类型 LOCK_TYPE 必须是 coarray"
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr "变量 %s 于 %L 的类型 LOCK_TYPE 或与 subcomponent 的类型 LOCK_TYPE 必须是 coarray"
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, fuzzy, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "%2$L处INTENT(OUT) 虚参‘%1$s’是 ASSUMED SIZE，所以不能有一个默认初始值设定"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "%2$L处的‘%1$s’虚参不能是 INTENT(OUT)"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "%2$L处的‘%1$s’虚参不能是 INTENT(OUT)"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "函数结果‘%s’在%L处不能有初始值设定"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "变量‘%s’于 %L 的类型 (C_PTR) 或类型 (C_FUNPTR) 不应该是 coarray"
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr "变量‘%s’于 %L 与 coarray 成分应该是 nonpointer，nonallocatable 纯量"
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr "变量‘%s’于 %L 是 coarray 和不是 ALLOCATABLE，保存 nor 虚参数"
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, fuzzy, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "数组‘%s’在%L处不能有延迟的外形"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, fuzzy, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "%C处可分配的组件必须有延迟的外形"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr "函数结果‘%s’在%L处不能有初始值设定"
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, fuzzy, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "%L处的哑过程不允许出现在 ELEMENTAL 过程中"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, fuzzy, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "%L处的哑过程不允许出现在 ELEMENTAL 过程中"
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, fuzzy, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "%L处的哑过程不允许出现在 ELEMENTAL 过程中"
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 #| msgid "Namelist %s cannot be renamed by USE association to %s"
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "名字列表 %s 不能为对 %s 的 USE 关联来更名"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr "%L处的线程私有变量未被保存"
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expecting list of named entities at %C"
 msgid "Expecting definable entity near %L"
 msgstr "%C处需要有名实体列表"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, fuzzy, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "%2$L处 BLOCK DATA 元素‘%1$s’必须在 COMMON 中"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, fuzzy, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "%2$L处 BLOCK DATA 元素‘%1$s’必在前一个声明中指定"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "%L处数据传输元素不能有 PRIVATE 组件"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr "%2$L处的 DATA 元素‘%1$s’是一个指针所以必须是一个完全的数组"
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "在 %2$L 处基本过程的参数“%1$s”不能有 POINTER 属性"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "%L处 DATA 语句中有非常量数组段"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "%L处的 DATA 语名中变量比值多"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Nonconstant array section at %L in DATA statement"
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "%L处 DATA 语句中有非常量数组段"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr "开始的 implied-do 循环于 %L 无法被简化到常数"
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr "结束的 implied-do 循环于 %L 无法被简化到常数"
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr "步骤的 implied-do 循环于 %L 无法被简化到常数"
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "步骤的 implied-do 循环于 %L 无法被简化到常数"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "%L处的 DATA 语句中值比变量多"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "标号 %d 于 %L 经定义但未被使用"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "标号 %d 于 %L 经定义但无法被使用"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "%2$L处的派生类型变量‘%1$s’必须有 SEQUENCE 属性方能成为 EQUIVALENCE 对象"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "%2$L处的派生类型变量‘%1$s’必须没有 ALLOCATABLE 组件方能成为一个 EQUIVALENCE 对象"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "%2$L处的默认初始化的派生类型变量‘%1$s’不能成为 EQUIVALENCE 对象，因为它在 COMMON 中有变量"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "%2$L处的带指针组件的派生类型变量‘%1$s’不能成为一个 EQUIVALENCE 对象"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "%L处 EQUIVALENCE 语句语法错误"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr "%L处 EQUIVALENCE 集中的对象必须都带有或者都不带有 PROTECTED 属性"
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, fuzzy, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "%2$L处的公共块成员‘%1$s’不能在纯过程‘%3$s’中成为一个 EQUIVALENCE 对象"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, fuzzy, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "%2$L处的有名常量‘%1$s’不能是一个 EQUIVALENCE 对象"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, fuzzy, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "%2$L处有非常量界限的数组‘%1$s’不能是一个 EQUIVALENCE 对象"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, fuzzy, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "%2$L处结构组件‘%1$s’不能是一个 EQUIVALENCE 对象"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "%L 的子字符串长度为零"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, fuzzy, gcc-internal-format
 #| msgid "Syntax error in character length specification at %C"
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "%C处字符长度规格语法错误"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, fuzzy, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "Fortran 2003：%2$L处 PRIVATE 类型‘%3$s’的 PUBLIC 函数‘%1$s’"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, fuzzy, gcc-internal-format
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "%2$L处的 ENTRY‘%1$s’没有隐式类型"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "%2$L处的用户运算符‘%1$s’必须是一个 FUNCTION"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "%2$L处用户运算符过程‘%1$s’不能有假定字符长度"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "%2$L处的用户运算符‘%1$s’必须至少有一个实参"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "%L处运算符接口的第一个参数不能是可选的"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "%L处运算符接口的第二个参数不能是可选的"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "%L处的运算符接口必须有至多两个实参"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, fuzzy, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr "%2$L处 PURE 过程中包含的过程‘%1$s’必须也是 PURE"
@@ -85118,336 +85145,336 @@ msgstr "%2$L处隐式声明的变量‘%1$s’不能与 C 互操作，但它是%
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "%2$L处的函数返回值‘%1$s’处没有隐式类型"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "%s 属性与 %s 属性在%L处冲突"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, fuzzy, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "%s 属性与 %s 属性在%L处冲突"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "%s 属性在%L处不允许出现在 BLOCAK DATA 程序单元中"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "%2$L 处的对象“%1$s”对于成分的默认初始化必须有 SAVE 属性，"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, fuzzy, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "内部过程‘%s’在%L处不允许用作实参"
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "Fortran 2003：%C处的过程指针"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "%1$s 属性应用于%4$L处的 %2$s %3$s"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "BIND(C) 应用于%3$L处的 %1$s %2$s"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "%s 属性与 %s 属性在%L处冲突"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, fuzzy, gcc-internal-format
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "%s 属性与 %s 属性在%L处冲突"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "不能改变%L处 USE 关联的符号的属性"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "不能改变%2$L处 USE 关联的符号‘%1$s’的属性"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "重复的 %s 属性在%L处被指定"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr "%L 处 ALLOCATABLE 指定在 INTERFACE 体之外"
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Duplicate VOLATILE attribute specified at %L"
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "%L处指定了重复的 VOLATILE 属性"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, fuzzy, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "为“%s”规定的 DIMENSION 在 %L 处它的 INTERFACE 主体外面"
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, fuzzy, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "%2$L处为‘%1$s’的 DIMENSION 指定在其 INTERFACE 体之外"
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "%L处 Cray 指针指向的对象出现在多个 pointer() 语句中"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "%L处指定了重复的 PROTECTED 属性"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "%L处 PURE 过程不能指定 SAVE 属性"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "%L 指定了重复的 SAVE 属性"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "%L处指定了重复的 VALUE 属性"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "%L处指定了重复的 VOLATILE 属性"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "%L处 PURE 过程不能指定 SAVE 属性"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "%L处指定了重复的 ASYNCHRONOUS 属性"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "%s 属性与 %s 属性在%L处冲突"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "%2$L处的 %1$s 过程已经被声明为 %3$s 过程"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "INTENT (%s) 与 INTENT(%s) 在 %L 冲突"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "%L处的 ACCESS 规格已经被指定"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "%L处指定了重复的 BIND 属性"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr "%L处指定了重复的 BIND 属性"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "%L处指定了重复的 EXTENDS 属性"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr "Fortran 2003：%L处的 EXTENDS"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "符号‘%s’在%L处已经有了显式接口"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr "%2$L处的‘%1$s’有在其 INTERFACE 体外指定的属性"
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr "符号‘%s’于 %L 冲突与符号从模块‘%s’，use-associated 于 %L"
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "符号‘%s’在%L处已经有了基本类型 %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "%2$L处过程‘%1$s’不能有基本类型 %3$s"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "%2$L处的符号‘%1$s’不能有类型"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already in the parent type at %L"
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "%2$C处的组件‘%1$s’已在%3$L处的父类中"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "%C处 TYPE 定义中的歧义符号"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "%2$C处的派生类型‘%1$s’在定义前使用"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "组件‘%s’在%C处是‘%s’的 PRIVATE 组件"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, fuzzy, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "为结构字段%2$qE指定了%1$qs"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "为结构字段%2$qE指定了%1$qs"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "重复的语句标号 %d 出现在 %L 和%L处"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "%2$C处的标号 %1$d 已作为分支目标引用"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "%2$C处的标号 %1$d 已作为格式标号引用"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "%2$C处的标号 %1$d 先前用作 FORMAT 标号"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "%2$C处的标号 %1$d 先前用作分支目标"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr "%C处需要结束名"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr "%C处的语句标号为零"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, fuzzy, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "%2$C处的名字‘%1$s’是从模块‘%4$s’对‘%3$s’有歧义的引用"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, fuzzy, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "%2$C处的名字‘%1$s’是从当前程序单元对‘%3$s’有歧义的引用"
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "%2$C处符号‘%1$s’已经与主机相关联"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "%2$L处声明的派生类型‘%1$s’必须使用 BIND 属性方可与 C 互操作"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr "衍生类型‘%s’与绑定©属性于 %L 是空的，而也许会是不可访问由 C companion 处理器"
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type '%s' at %L"
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "%2$L处的组件‘%1$s’不能有 POINTER 属性，因为它是%4$L处派生类型 BIND(C)‘%3$s’的成员"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, fuzzy, gcc-internal-format
 #| msgid "Procedure pointer component '%s' at %L cannot be a member of the BIND(C) derived type '%s' at %L"
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "%2$L 处的过程指针组件‘%1$s’不能是%4$L处 BIND(C) 派生类型‘%3$s’的成员"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type '%s' at %L"
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "%2$L处的组件‘%1$s’不能有 ALLOCATABLE 属性，因为它是%4$L处派生类型 BIND(C)‘%3$s’的成员"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, fuzzy, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr "%3$L处的派生类型‘%2$s’的组件‘%1$s’不能与 C 互操作，即使派生类型‘%4$s’是 BIND(C)"
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, fuzzy, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "%3$L处派生类型‘%2$s’中的组件‘%1$s’不能与 C 互操作"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "%2$L处派生类型‘%1$s’不能有 SEQUENCE 属性，因为它是 BIND(C)"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr "%2$L处符号‘%1$s’在指定类型之前被使用"
@@ -85478,24 +85505,24 @@ msgstr "%L 处  EQUIVALENCE 中不等的初始值设定重叠"
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "%L 处  EQUIVALENCE 中不等的初始值设定重叠"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, fuzzy, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr "%L处数组构造函数中的元素数超过容许的上限 %d。请参见 -fmax-array-constructor 选项"
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, fuzzy, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "在%L处建立临时数组"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "走过错误的表达式类型(%d)"
@@ -85683,37 +85710,37 @@ msgstr "%3$L处声明的的函数‘%2$s’的返回值‘%1$s’没有设置"
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr ""
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr "不能在%2$C处的 PURE 过程中读取变量‘%1$s’"
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr "不能在%2$C处的 PURE 过程中读取变量‘%1$s’"
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "未知的内建操作"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "%L处参数列表函数未知"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -85724,17 +85751,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "内部函数 %s(%d) 无法识别"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, fuzzy, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "%2$L处‘%1$s’内建函数的‘dim’实参不是一个有效的维数索引"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr "%L处指针赋值时参数种别类型不同"
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr "外部对象‘%s’在%L处不能有初始值设定"
@@ -85880,7 +85907,7 @@ msgstr "%L处指针赋值时参数种别类型不同"
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr "抱歉，只有支持用于整数 kind %d 实现的用于 image-set 于 %L"
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, fuzzy, gcc-internal-format
 msgid "gfc_trans_select(): Bad type for case expr."
 msgstr "gfc_trans_code()：错误的语句代码"
@@ -86260,6 +86287,11 @@ msgstr "变量%qD重声明为函数"
 msgid "function %qD redeclared as variable"
 msgstr "函数%qD重声明为变量"
 
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr "以前在此声明过"
+
 #: lto/lto.cc:174
 #, fuzzy, gcc-internal-format
 #| msgid "lto_obj_file_open() failed"
@@ -87536,7 +87568,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr "%<-fobjc-sjlj-exceptions%>为%<-fgnu-runtime%>所忽略"
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, fuzzy, gcc-internal-format
 #| msgid "non-objective-c type '%T' cannot be caught"
 msgid "non-objective-c type %qT cannot be caught"
@@ -87547,7 +87579,7 @@ msgstr "非 Objective-C 类型‘%T’不能被捕获"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr "%<-fobjc-sjlj-exceptions%> 是只有支持的异常系统用于 %<-fnext-runtime%> 与 %<-fobjc-abi-version%><2"
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, fuzzy, gcc-internal-format
 #| msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> >= 2"
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
@@ -87640,6 +87672,16 @@ msgstr ""
 #~ msgid "invalid key type for %<-mbranch-protection=%>"
 #~ msgstr "内建函数实参无效"
 
+#, fuzzy, gcc-internal-format
+#~| msgid "cannot declare %qD to be a bit-field type"
+#~ msgid "cannot declare %qD in a different module"
+#~ msgstr "不能将%qD声明为位段类型"
+
+#, fuzzy, gcc-internal-format
+#~| msgid "cannot declare %qD to be a bit-field type"
+#~ msgid "cannot declare %qD in different module"
+#~ msgstr "不能将%qD声明为位段类型"
+
 #, fuzzy, gcc-internal-format
 #~ msgid "The object %qs at %L has a deferred LEN parameter %qs and is neither allocatable nor a pointer"
 #~ msgstr "语句函数‘%s’在%L处不允许用作实参"
@@ -90974,10 +91016,6 @@ msgstr ""
 #~ msgid "Builtin function %s requires the -maltivec option"
 #~ msgstr "内建函数%q+D未被声明为函数"
 
-#, fuzzy
-#~ msgid "Builtin function %s requires the -mpaired option"
-#~ msgstr "内建函数%q+D未被声明为函数"
-
 #, fuzzy
 #~ msgid "Builtin function %s requires the -mhard-dfp and -mpower8-vector options"
 #~ msgstr "内建函数%q+D未被声明为函数"
diff --git a/gcc/po/zh_TW.po b/gcc/po/zh_TW.po
index cf1decb9c38..a77ffc2af07 100644
--- a/gcc/po/zh_TW.po
+++ b/gcc/po/zh_TW.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gcc 10.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
-"POT-Creation-Date: 2024-05-02 19:44+0000\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
 "PO-Revision-Date: 2020-11-19 00:56+0800\n"
 "Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@lists.linux.org.tw>\n"
@@ -445,7 +445,7 @@ msgid "do not specify both -march=... and -mcpu=..."
 msgstr "不指定兩者 -march=...和 -mcpu=…"
 
 #: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
-#: config/i386/mingw-w64.h:123 config/i386/mingw32.h:167
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
 msgid "shared and mdll are not compatible"
 msgstr "shared 和 mdll 互不相容"
 
@@ -20389,18 +20389,18 @@ msgstr "無法辨識的指令："
 msgid "insn does not satisfy its constraints:"
 msgstr "指令不滿足其約束："
 
-#: targhooks.cc:2374
+#: targhooks.cc:2382
 #, c-format
 msgid "created and used with differing settings of '%s'"
 msgstr "建立和使用時使用了不同的「%s」設定"
 
-#: targhooks.cc:2389
+#: targhooks.cc:2397
 #, fuzzy
 #| msgid "created and used with different settings of -fpic"
 msgid "created and used with different settings of %<-fpic%>"
 msgstr "建立和使用時使用了不同的 -fpic 設定"
 
-#: targhooks.cc:2391
+#: targhooks.cc:2399
 #, fuzzy
 #| msgid "created and used with different settings of -fpie"
 msgid "created and used with different settings of %<-fpie%>"
@@ -20723,7 +20723,7 @@ msgstr "strfmon 格式的長度修飾符"
 msgid "<command-line>"
 msgstr "<命令列>"
 
-#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6148
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
 #, fuzzy, c-format
 msgid "unsupported operand for code '%c'"
 msgstr "「%c」代碼不支援的運算元"
@@ -20742,9 +20742,9 @@ msgstr "「%%%c」的運算元無效"
 
 #: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
 #: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
-#: config/riscv/riscv.cc:6158 config/riscv/riscv.cc:6166
-#: config/riscv/riscv.cc:6173 config/riscv/riscv.cc:6177
-#: config/riscv/riscv.cc:6219 config/riscv/riscv.cc:6237
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
 #, fuzzy, c-format
 msgid "invalid vector constant"
 msgstr "無效指令："
@@ -20765,7 +20765,7 @@ msgstr "「%%%c」的寄存器運算元不相容"
 msgid "incompatible register operand for '%%%c'"
 msgstr "「%%%c」的寄存器運算元不相容"
 
-#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24867
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
 #, c-format
 msgid "missing operand"
 msgstr "缺少運算元"
@@ -20795,93 +20795,93 @@ msgstr "無效的定址模式"
 msgid "cannot combine GNU and SVE vectors in a binary operation"
 msgstr "無效的運算元在中二進運算"
 
-#: config/alpha/alpha.cc:5082 config/i386/i386.cc:14193
-#: config/rs6000/rs6000.cc:14616 config/sparc/sparc.cc:9384
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
 #, fuzzy, c-format
 msgid "'%%&' used without any local dynamic TLS references"
 msgstr "『%%&』使用的而無需任何本地動態 TLS 參考"
 
-#: config/alpha/alpha.cc:5140 config/bfin/bfin.cc:1428
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
 #, c-format
 msgid "invalid %%J value"
 msgstr "無效 %%J 值"
 
-#: config/alpha/alpha.cc:5170 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
 #, c-format
 msgid "invalid %%r value"
 msgstr "無效 %%r 值"
 
-#: config/alpha/alpha.cc:5180 config/ia64/ia64.cc:5542
-#: config/rs6000/rs6000.cc:14311 config/xtensa/xtensa.cc:3066
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
 #, c-format
 msgid "invalid %%R value"
 msgstr "無效 %%R 值"
 
-#: config/alpha/alpha.cc:5186 config/rs6000/rs6000.cc:14231
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
 #: config/xtensa/xtensa.cc:3039
 #, c-format
 msgid "invalid %%N value"
 msgstr "無效 %%N 值"
 
-#: config/alpha/alpha.cc:5194 config/rs6000/rs6000.cc:14259
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
 #, c-format
 msgid "invalid %%P value"
 msgstr "無效 %%P 值"
 
-#: config/alpha/alpha.cc:5202
+#: config/alpha/alpha.cc:5214
 #, c-format
 msgid "invalid %%h value"
 msgstr "無效 %%h 值"
 
-#: config/alpha/alpha.cc:5210 config/xtensa/xtensa.cc:3059
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
 #, c-format
 msgid "invalid %%L value"
 msgstr "無效 %%L 值"
 
-#: config/alpha/alpha.cc:5229
+#: config/alpha/alpha.cc:5241
 #, c-format
 msgid "invalid %%m value"
 msgstr "無效 %%m 值"
 
-#: config/alpha/alpha.cc:5235
+#: config/alpha/alpha.cc:5247
 #, c-format
 msgid "invalid %%M value"
 msgstr "無效 %%M 值"
 
-#: config/alpha/alpha.cc:5272
+#: config/alpha/alpha.cc:5284
 #, c-format
 msgid "invalid %%U value"
 msgstr "無效 %%U 值"
 
-#: config/alpha/alpha.cc:5280 config/rs6000/rs6000.cc:14319
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
 #, c-format
 msgid "invalid %%s value"
 msgstr "無效 %%s 值"
 
-#: config/alpha/alpha.cc:5291
+#: config/alpha/alpha.cc:5303
 #, c-format
 msgid "invalid %%C value"
 msgstr "無效 %%C 值"
 
-#: config/alpha/alpha.cc:5328 config/rs6000/rs6000.cc:14095
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
 #, c-format
 msgid "invalid %%E value"
 msgstr "無效 %%E 值"
 
-#: config/alpha/alpha.cc:5353 config/alpha/alpha.cc:5403
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
 #, c-format
 msgid "unknown relocation unspec"
 msgstr "不明的不可預期重定位"
 
-#: config/alpha/alpha.cc:5362 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
 #: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
 #: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
-#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14621
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
 #, c-format
 msgid "invalid %%xn code"
 msgstr "無效的 %%xn 程式碼"
 
-#: config/alpha/alpha.cc:5468
+#: config/alpha/alpha.cc:5480
 #, fuzzy, c-format
 msgid "invalid operand address"
 msgstr "無效的 %%d 運算元"
@@ -20983,35 +20983,35 @@ msgstr "無效的 UNSPEC 做為運算元"
 msgid "unrecognized supposed constant"
 msgstr "預期的常數無法識別"
 
-#: config/arm/arm.cc:21110 config/arm/arm.cc:21135 config/arm/arm.cc:21145
-#: config/arm/arm.cc:21154 config/arm/arm.cc:21163
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
 #, fuzzy, c-format
 msgid "invalid shift operand"
 msgstr "無效的 Shift 運算元"
 
-#: config/arm/arm.cc:24117 config/arm/arm.cc:24135
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
 #, c-format
 msgid "predicated Thumb instruction"
 msgstr "預測到的 Thumb 指令"
 
-#: config/arm/arm.cc:24123
+#: config/arm/arm.cc:24132
 #, c-format
 msgid "predicated instruction in conditional sequence"
 msgstr "在條件序列中預測到的指令"
 
-#: config/arm/arm.cc:24244 config/arm/arm.cc:24257 config/arm/arm.cc:24282
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
 #: config/nios2/nios2.cc:3085
 #, fuzzy, c-format
 msgid "Unsupported operand for code '%c'"
 msgstr "不受支援的運算元用於編碼『%c』"
 
-#: config/arm/arm.cc:24359 config/arm/arm.cc:24381 config/arm/arm.cc:24391
-#: config/arm/arm.cc:24401 config/arm/arm.cc:24411 config/arm/arm.cc:24450
-#: config/arm/arm.cc:24468 config/arm/arm.cc:24486 config/arm/arm.cc:24513
-#: config/arm/arm.cc:24528 config/arm/arm.cc:24555 config/arm/arm.cc:24562
-#: config/arm/arm.cc:24580 config/arm/arm.cc:24587 config/arm/arm.cc:24595
-#: config/arm/arm.cc:24616 config/arm/arm.cc:24623 config/arm/arm.cc:24814
-#: config/arm/arm.cc:24821 config/arm/arm.cc:24848 config/arm/arm.cc:24855
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
 #: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
 #: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
 #: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
@@ -21019,119 +21019,119 @@ msgstr "不受支援的運算元用於編碼『%c』"
 msgid "invalid operand for code '%c'"
 msgstr "程式碼「%c」的運算元無效"
 
-#: config/arm/arm.cc:24463
+#: config/arm/arm.cc:24472
 #, fuzzy, c-format
 msgid "instruction never executed"
 msgstr "指令永不執行"
 
 #. Former Maverick support, removed after GCC-4.7.
-#: config/arm/arm.cc:24504
+#: config/arm/arm.cc:24513
 #, fuzzy, c-format
 msgid "obsolete Maverick format code '%c'"
 msgstr "不受支援的運算元用於編碼『%c』"
 
-#: config/arm/arm.cc:34475
+#: config/arm/arm.cc:34536
 #, fuzzy
 msgid "invalid conversion from type %<bfloat16_t%>"
 msgstr "從 %<bfloat16_t%> 類型轉換無效"
 
-#: config/arm/arm.cc:34477
+#: config/arm/arm.cc:34538
 #, fuzzy
 msgid "invalid conversion to type %<bfloat16_t%>"
 msgstr "轉換至 %<bfloat16_t%> 類型無效"
 
-#: config/arm/arm.cc:34492 config/arm/arm.cc:34508
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
 msgid "operation not permitted on type %<bfloat16_t%>"
 msgstr ""
 
-#: config/avr/avr.cc:3610
+#: config/avr/avr.cc:3616
 #, fuzzy, c-format
 msgid "address operand requires constraint for X, Y, or Z register"
 msgstr "位址運算元需求條件約束用於 X,- Y, 或 Z 暫存器"
 
-#: config/avr/avr.cc:3793
+#: config/avr/avr.cc:3799
 #, fuzzy
 msgid "operands to %T/%t must be reg + const_int:"
 msgstr "運算元到 %T/%t 必須是 reg+constint(_I)："
 
-#: config/avr/avr.cc:3843 config/avr/avr.cc:3910
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
 #, fuzzy
 msgid "bad address, not an I/O address:"
 msgstr "不當的位址，不是 I/O 位址："
 
-#: config/avr/avr.cc:3852
+#: config/avr/avr.cc:3858
 #, fuzzy
 msgid "bad address, not a constant:"
 msgstr "不當的位址，不是常數："
 
-#: config/avr/avr.cc:3870 config/avr/avr.cc:3877
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
 msgid "bad address, not (reg+disp):"
 msgstr "位址錯誤，不是(reg+disp)："
 
-#: config/avr/avr.cc:3884
+#: config/avr/avr.cc:3890
 msgid "bad address, not post_inc or pre_dec:"
 msgstr "錯誤的位址，不是 post_inc 或 pre_dec:"
 
-#: config/avr/avr.cc:3896
+#: config/avr/avr.cc:3902
 msgid "internal compiler error.  Bad address:"
 msgstr "編譯器內部錯誤。錯誤的位址："
 
-#: config/avr/avr.cc:3929
+#: config/avr/avr.cc:3935
 #, c-format
 msgid "Unsupported code '%c' for fixed-point:"
 msgstr ""
 
-#: config/avr/avr.cc:3948
+#: config/avr/avr.cc:3954
 msgid "internal compiler error.  Unknown mode:"
 msgstr "編譯器內部錯誤。不明的模式："
 
-#: config/avr/avr.cc:4815 config/avr/avr.cc:5758 config/avr/avr.cc:6205
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
 msgid "invalid insn:"
 msgstr "無效指令："
 
-#: config/avr/avr.cc:4869 config/avr/avr.cc:4980 config/avr/avr.cc:5038
-#: config/avr/avr.cc:5090 config/avr/avr.cc:5109 config/avr/avr.cc:5301
-#: config/avr/avr.cc:5609 config/avr/avr.cc:5894 config/avr/avr.cc:6098
-#: config/avr/avr.cc:6262 config/avr/avr.cc:6355 config/avr/avr.cc:6553
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
 msgid "incorrect insn:"
 msgstr "錯誤指令："
 
-#: config/avr/avr.cc:5125 config/avr/avr.cc:5400 config/avr/avr.cc:5680
-#: config/avr/avr.cc:5966 config/avr/avr.cc:6144 config/avr/avr.cc:6411
-#: config/avr/avr.cc:6611
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
 msgid "unknown move insn:"
 msgstr "無效的 move 指令："
 
-#: config/avr/avr.cc:7378
+#: config/avr/avr.cc:7407
 msgid "bad shift insn:"
 msgstr "錯誤的 shift 指令："
 
-#: config/avr/avr.cc:7486 config/avr/avr.cc:7969 config/avr/avr.cc:8386
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
 msgid "internal compiler error.  Incorrect shift:"
 msgstr "編譯器內部錯誤。不正確的移位量："
 
-#: config/avr/avr.cc:10210
+#: config/avr/avr.cc:10239
 #, fuzzy
 msgid "unsupported fixed-point conversion"
 msgstr "無效的類型在中定點轉換"
 
-#: config/avr/avr.cc:11585
+#: config/avr/avr.cc:11614
 msgid "variable"
 msgstr "變數"
 
-#: config/avr/avr.cc:11590
+#: config/avr/avr.cc:11619
 msgid "function parameter"
 msgstr "函式參數"
 
-#: config/avr/avr.cc:11595
+#: config/avr/avr.cc:11624
 msgid "structure field"
 msgstr "結構體欄位"
 
-#: config/avr/avr.cc:11601
+#: config/avr/avr.cc:11630
 msgid "return type of function"
 msgstr "函式的回傳類型"
 
-#: config/avr/avr.cc:11606
+#: config/avr/avr.cc:11635
 msgid "pointer"
 msgstr "指針"
 
@@ -21168,7 +21168,7 @@ msgstr "非預期的運算元"
 #: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
 #: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
 #: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
-#: cp/typeck.cc:7752 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
 #: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
 #: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
 #: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
@@ -21491,50 +21491,50 @@ msgstr "運算元並非條件編碼，無效的運算元編碼『Y』"
 msgid "operand is not a specific integer, invalid operand code 'R'"
 msgstr "運算元並非條件編碼，無效的運算元編碼『Y』"
 
-#: config/i386/i386.cc:14279
+#: config/i386/i386.cc:14268
 #, c-format
 msgid "invalid operand code '%c'"
 msgstr "無效的運算元程式碼「%c」"
 
-#: config/i386/i386.cc:14341 config/i386/i386.cc:14730
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
 #, c-format
 msgid "invalid constraints for operand"
 msgstr "運算元的約束無效"
 
-#: config/i386/i386.cc:14442
+#: config/i386/i386.cc:14431
 #, fuzzy, c-format
 msgid "invalid vector immediate"
 msgstr "無效的控制述詞"
 
-#: config/i386/i386.cc:17562
+#: config/i386/i386.cc:17551
 msgid "unknown insn mode"
 msgstr "不明的指令模式"
 
-#: config/i386/i386.cc:23599
+#: config/i386/i386.cc:23777
 #, fuzzy
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
 msgstr "從 %<bfloat16_t%> 類型轉換無效"
 
-#: config/i386/i386.cc:23602
+#: config/i386/i386.cc:23780
 #, fuzzy
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
 msgstr "從 %<bfloat16_t%> 類型轉換無效"
 
-#: config/i386/i386.cc:23605
+#: config/i386/i386.cc:23783
 #, fuzzy
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
 msgstr "轉換至 %<bfloat16_t%> 類型無效"
 
-#: config/i386/i386.cc:23608
+#: config/i386/i386.cc:23786
 #, fuzzy
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
 msgstr "轉換至 %<bfloat16_t%> 類型無效"
 
-#: config/i386/i386.cc:23646 config/i386/i386.cc:23671
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
 msgstr ""
 
-#: config/i386/i386.cc:23649 config/i386/i386.cc:23675
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
 msgstr ""
 
@@ -21565,7 +21565,7 @@ msgstr "對 %<__fpreg%> 的作業無效"
 msgid "invalid %%P operand"
 msgstr "無效的 %%P 運算元"
 
-#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14249
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
 #, c-format
 msgid "invalid %%p value"
 msgstr "無效的 %%p 值"
@@ -21595,29 +21595,29 @@ msgstr "無法使用非 gp 相對的絕對位址"
 msgid "invalid addressing mode"
 msgstr "無效的定址模式"
 
-#: config/loongarch/loongarch.cc:5880 config/loongarch/loongarch.cc:5902
-#: config/loongarch/loongarch.cc:6303 config/mips/mips.cc:9239
-#: config/mips/mips.cc:9266 config/mips/mips.cc:9449
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
 #, fuzzy, c-format
 msgid "'%%%c' is not a valid operand prefix"
 msgstr "『%%%c』並非有效運算元前綴"
 
-#: config/loongarch/loongarch.cc:6140 config/loongarch/loongarch.cc:6160
-#: config/loongarch/loongarch.cc:6206 config/loongarch/loongarch.cc:6213
-#: config/loongarch/loongarch.cc:6260 config/loongarch/loongarch.cc:6263
-#: config/loongarch/loongarch.cc:6275 config/loongarch/loongarch.cc:6282
-#: config/loongarch/loongarch.cc:6292 config/loongarch/loongarch.cc:6295
-#: config/loongarch/loongarch.cc:6316 config/loongarch/loongarch.cc:6323
-#: config/loongarch/loongarch.cc:6350 config/loongarch/loongarch.cc:6361
-#: config/loongarch/loongarch.cc:6376 config/loongarch/loongarch.cc:6385
-#: config/mips/mips.cc:9338 config/mips/mips.cc:9345 config/mips/mips.cc:9352
-#: config/mips/mips.cc:9359 config/mips/mips.cc:9372 config/mips/mips.cc:9379
-#: config/mips/mips.cc:9389 config/mips/mips.cc:9392 config/mips/mips.cc:9404
-#: config/mips/mips.cc:9407 config/mips/mips.cc:9467 config/mips/mips.cc:9474
-#: config/mips/mips.cc:9495 config/mips/mips.cc:9510 config/mips/mips.cc:9529
-#: config/mips/mips.cc:9538 config/riscv/riscv.cc:5962
-#: config/riscv/riscv.cc:6337 config/riscv/riscv.cc:6343
-#: config/riscv/riscv.cc:6359 config/riscv/riscv.cc:6370
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
 #, fuzzy, c-format
 msgid "invalid use of '%%%c'"
 msgstr "無效的使用的『%%%c』"
@@ -21649,7 +21649,7 @@ msgid "post-increment address is not a register"
 msgstr "後自增位址不是一個暫存器"
 
 #: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
-#: config/rs6000/rs6000.cc:20974
+#: config/rs6000/rs6000.cc:20989
 msgid "bad address"
 msgstr "錯誤位址"
 
@@ -21812,7 +21812,7 @@ msgstr "不支援的組合：%s"
 msgid "unsupported memory expression:"
 msgstr "無效的類型在中定點轉換"
 
-#: config/riscv/riscv.cc:6139
+#: config/riscv/riscv.cc:6151
 #, fuzzy, c-format
 msgid "invalid vector operand"
 msgstr "無效的 %%r 運算元"
@@ -21864,263 +21864,263 @@ msgstr "%<-mquad-memory-atomic%> 需要 64 位元模式"
 msgid "%<-mquad-memory%> is not available in little endian mode"
 msgstr "%<-mquad-memory%> 無法在低位位元組在前模式中使用"
 
-#: config/rs6000/rs6000.cc:11339
+#: config/rs6000/rs6000.cc:11354
 #, fuzzy
 msgid "bad move"
 msgstr "不當的移動"
 
-#: config/rs6000/rs6000.cc:13879
+#: config/rs6000/rs6000.cc:13894
 msgid "Bad 128-bit move"
 msgstr "錯誤 128 位元移動"
 
-#: config/rs6000/rs6000.cc:14059
+#: config/rs6000/rs6000.cc:14074
 #, fuzzy, c-format
 #| msgid "invalid %%J value"
 msgid "invalid %%A value"
 msgstr "無效 %%J 值"
 
-#: config/rs6000/rs6000.cc:14068 config/xtensa/xtensa.cc:3015
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
 #, c-format
 msgid "invalid %%D value"
 msgstr "無效的 %%D 值"
 
-#: config/rs6000/rs6000.cc:14083
+#: config/rs6000/rs6000.cc:14098
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%e value"
 msgstr "無效 %%H 值"
 
-#: config/rs6000/rs6000.cc:14104
+#: config/rs6000/rs6000.cc:14119
 #, c-format
 msgid "invalid %%f value"
 msgstr "無效 %%f 值"
 
-#: config/rs6000/rs6000.cc:14113
+#: config/rs6000/rs6000.cc:14128
 #, c-format
 msgid "invalid %%F value"
 msgstr "無效 %%F 值"
 
-#: config/rs6000/rs6000.cc:14122
+#: config/rs6000/rs6000.cc:14137
 #, c-format
 msgid "invalid %%G value"
 msgstr "無效 %%G 值"
 
-#: config/rs6000/rs6000.cc:14157
+#: config/rs6000/rs6000.cc:14172
 #, c-format
 msgid "invalid %%j code"
 msgstr "無效 %%j 程式碼"
 
-#: config/rs6000/rs6000.cc:14167
+#: config/rs6000/rs6000.cc:14182
 #, c-format
 msgid "invalid %%J code"
 msgstr "無效 %%J 程式碼"
 
-#: config/rs6000/rs6000.cc:14177
+#: config/rs6000/rs6000.cc:14192
 #, c-format
 msgid "invalid %%k value"
 msgstr "無效 %%k 值"
 
-#: config/rs6000/rs6000.cc:14192 config/xtensa/xtensa.cc:3052
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
 #, c-format
 msgid "invalid %%K value"
 msgstr "無效 %%K 值"
 
-#: config/rs6000/rs6000.cc:14239
+#: config/rs6000/rs6000.cc:14254
 #, c-format
 msgid "invalid %%O value"
 msgstr "無效 %%O 值"
 
-#: config/rs6000/rs6000.cc:14286
+#: config/rs6000/rs6000.cc:14301
 #, c-format
 msgid "invalid %%q value"
 msgstr "無效 %%q 值"
 
-#: config/rs6000/rs6000.cc:14328
+#: config/rs6000/rs6000.cc:14343
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%t value"
 msgstr "無效 %%H 值"
 
-#: config/rs6000/rs6000.cc:14345
+#: config/rs6000/rs6000.cc:14360
 #, c-format
 msgid "invalid %%T value"
 msgstr "無效 %%T 值"
 
-#: config/rs6000/rs6000.cc:14357
+#: config/rs6000/rs6000.cc:14372
 #, c-format
 msgid "invalid %%u value"
 msgstr "無效 %%u 值"
 
-#: config/rs6000/rs6000.cc:14371 config/xtensa/xtensa.cc:3027
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
 #, c-format
 msgid "invalid %%v value"
 msgstr "無效 %%v 值"
 
-#: config/rs6000/rs6000.cc:14421
+#: config/rs6000/rs6000.cc:14436
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%V value"
 msgstr "無效 %%H 值"
 
-#: config/rs6000/rs6000.cc:14437 config/xtensa/xtensa.cc:3073
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
 #, c-format
 msgid "invalid %%x value"
 msgstr "無效的 %%x 值"
 
-#: config/rs6000/rs6000.cc:14494
+#: config/rs6000/rs6000.cc:14509
 #, fuzzy, c-format
 #| msgid "invalid %%H value"
 msgid "invalid %%z value"
 msgstr "無效 %%H 值"
 
-#: config/rs6000/rs6000.cc:14563
+#: config/rs6000/rs6000.cc:14578
 #, fuzzy, c-format
 msgid "invalid %%y value, try using the 'Z' constraint"
 msgstr "無效的 %%y 值，嘗試使用『Z』條件約束"
 
-#: config/rs6000/rs6000.cc:15505
+#: config/rs6000/rs6000.cc:15520
 #, fuzzy
 msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
 msgstr "啟用 32-bit multiply 指令"
 
-#: config/rs6000/rs6000.cc:24375
+#: config/rs6000/rs6000.cc:24390
 msgid "AltiVec argument passed to unprototyped function"
 msgstr "傳遞 AltiVec 引數給無原型的函式"
 
-#: config/rs6000/rs6000.cc:27990
+#: config/rs6000/rs6000.cc:28005
 #, fuzzy
 #| msgid "Do not generate a single exit point for each function"
 msgid "Could not generate addis value for fusion"
 msgstr "不為每個函式產生單一的離開點"
 
-#: config/rs6000/rs6000.cc:28059
+#: config/rs6000/rs6000.cc:28074
 #, fuzzy
 #| msgid "unable to generate reloads for:"
 msgid "Unable to generate load/store offset for fusion"
 msgstr "無法產生重新載入，為："
 
-#: config/rs6000/rs6000.cc:28135
+#: config/rs6000/rs6000.cc:28150
 msgid "Bad GPR fusion"
 msgstr "錯誤 GPR 融合"
 
-#: config/rs6000/rs6000.cc:28737
+#: config/rs6000/rs6000.cc:28752
 #, fuzzy
 msgid "invalid conversion from type %<__vector_quad%>"
 msgstr "從 %<bfloat16_t%> 類型轉換無效"
 
-#: config/rs6000/rs6000.cc:28739
+#: config/rs6000/rs6000.cc:28754
 #, fuzzy
 msgid "invalid conversion to type %<__vector_quad%>"
 msgstr "轉換至 %<bfloat16_t%> 類型無效"
 
-#: config/rs6000/rs6000.cc:28741
+#: config/rs6000/rs6000.cc:28756
 #, fuzzy
 #| msgid "invalid conversion from %<__fpreg%>"
 msgid "invalid conversion from type %<__vector_pair%>"
 msgstr "從 %<__fpreg%> 的轉換無效"
 
-#: config/rs6000/rs6000.cc:28743
+#: config/rs6000/rs6000.cc:28758
 #, fuzzy
 #| msgid "invalid conversion to %<__fpreg%>"
 msgid "invalid conversion to type %<__vector_pair%>"
 msgstr "向 %<__fpreg%> 的轉換無效"
 
-#: config/s390/s390.cc:8415
+#: config/s390/s390.cc:8416
 #, fuzzy, c-format
 msgid "symbolic memory references are only supported on z10 or later"
 msgstr "符號記憶體參考是只有支援的於 z10 或稍後"
 
-#: config/s390/s390.cc:8426
+#: config/s390/s390.cc:8427
 #, c-format
 msgid "cannot decompose address"
 msgstr "無法分解位址"
 
-#: config/s390/s390.cc:8508
+#: config/s390/s390.cc:8509
 #, fuzzy, c-format
 msgid "invalid comparison operator for 'E' output modifier"
 msgstr "無效的比較運算子用於『E』輸出修飾鍵"
 
-#: config/s390/s390.cc:8531
+#: config/s390/s390.cc:8532
 #, fuzzy, c-format
 msgid "invalid reference for 'J' output modifier"
 msgstr "無效的參考用於『J』輸出修飾鍵"
 
-#: config/s390/s390.cc:8549
+#: config/s390/s390.cc:8550
 #, fuzzy, c-format
 msgid "invalid address for 'O' output modifier"
 msgstr "無效的位址用於『O』輸出修飾鍵"
 
-#: config/s390/s390.cc:8571
+#: config/s390/s390.cc:8572
 #, fuzzy, c-format
 msgid "invalid address for 'R' output modifier"
 msgstr "無效的位址用於『R』輸出修飾鍵"
 
-#: config/s390/s390.cc:8589
+#: config/s390/s390.cc:8590
 #, fuzzy, c-format
 msgid "memory reference expected for 'S' output modifier"
 msgstr "記憶體參考預期的用於『S』輸出修飾鍵"
 
-#: config/s390/s390.cc:8599
+#: config/s390/s390.cc:8600
 #, fuzzy, c-format
 msgid "invalid address for 'S' output modifier"
 msgstr "無效的位址用於『S』輸出修飾鍵"
 
-#: config/s390/s390.cc:8620
+#: config/s390/s390.cc:8621
 #, fuzzy, c-format
 msgid "register or memory expression expected for 'N' output modifier"
 msgstr "暫存器或記憶體運算式預期的用於『N』輸出修飾鍵"
 
-#: config/s390/s390.cc:8631
+#: config/s390/s390.cc:8632
 #, fuzzy, c-format
 msgid "register or memory expression expected for 'M' output modifier"
 msgstr "暫存器或記憶體運算式預期的用於『公尺』輸出修飾鍵"
 
-#: config/s390/s390.cc:8740 config/s390/s390.cc:8761
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
 #, fuzzy, c-format
 msgid "invalid constant for output modifier '%c'"
 msgstr "無效的常數用於輸出修飾鍵『%c』"
 
-#: config/s390/s390.cc:8758
+#: config/s390/s390.cc:8759
 #, fuzzy, c-format
 msgid "invalid constant - try using an output modifier"
 msgstr "無效的常數 - 嘗試使用輸出修飾鍵"
 
-#: config/s390/s390.cc:8795
+#: config/s390/s390.cc:8796
 #, fuzzy, c-format
 msgid "invalid constant vector for output modifier '%c'"
 msgstr "無效的常數用於輸出修飾鍵『%c』"
 
-#: config/s390/s390.cc:8802
+#: config/s390/s390.cc:8803
 #, fuzzy, c-format
 msgid "invalid expression - try using an output modifier"
 msgstr "無效的運算式 - 嘗試使用輸出修飾鍵"
 
-#: config/s390/s390.cc:8805
+#: config/s390/s390.cc:8806
 #, fuzzy, c-format
 msgid "invalid expression for output modifier '%c'"
 msgstr "無效的運算式用於輸出修飾鍵『%c』"
 
-#: config/s390/s390.cc:12664
+#: config/s390/s390.cc:12665
 #, fuzzy
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "vector argument passed to unprototyped function"
 msgstr "傳遞 AltiVec 引數給無原型的函式"
 
-#: config/s390/s390.cc:17110
+#: config/s390/s390.cc:17111
 #, fuzzy
 #| msgid "pointer targets in return differ in signedness"
 msgid "types differ in signedness"
 msgstr "回傳指標時目的與指標有/無號不一致"
 
-#: config/s390/s390.cc:17120
+#: config/s390/s390.cc:17121
 msgid "binary operator does not support two vector bool operands"
 msgstr ""
 
-#: config/s390/s390.cc:17123
+#: config/s390/s390.cc:17124
 msgid "binary operator does not support vector bool operand"
 msgstr ""
 
-#: config/s390/s390.cc:17131
+#: config/s390/s390.cc:17132
 msgid "binary operator does not support mixing vector bool with floating point vector operands"
 msgstr ""
 
@@ -22323,12 +22323,12 @@ msgstr "({匿名})"
 #: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
 #: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
 #: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
-#: c/c-parser.cc:22363 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
 #: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
 #: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
 #: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
 #: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
-#: cp/parser.cc:33810 cp/parser.cc:34449
+#: cp/parser.cc:33812 cp/parser.cc:34451
 #, gcc-internal-format
 msgid "expected %<;%>"
 msgstr "需要 %<;%>"
@@ -22341,7 +22341,7 @@ msgstr "需要 %<;%>"
 #: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
 #: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
 #: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
-#: c/c-parser.cc:22327 c/c-parser.cc:25651 c/c-parser.cc:25733
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
 #: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
 #: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
 #: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
@@ -22350,7 +22350,7 @@ msgstr "需要 %<;%>"
 #: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
 #: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
 #: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
-#: cp/parser.cc:34497
+#: cp/parser.cc:34499
 #, fuzzy, gcc-internal-format
 msgid "expected %<)%>"
 msgstr "預期 %<)%>"
@@ -22358,7 +22358,7 @@ msgstr "預期 %<)%>"
 #: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
 #: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
 #: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
-#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34461
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
 #, fuzzy, gcc-internal-format
 msgid "expected %<]%>"
 msgstr "預期 %<]%>"
@@ -22370,29 +22370,29 @@ msgstr "預期 %<;%>，%<,%>或 %<)%>"
 
 #. Look for the two `(' tokens.
 #: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
-#: c/c-parser.cc:17005 c/c-parser.cc:24795 c/c-parser.cc:25459
-#: c/c-parser.cc:25676 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
 #: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
 #: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
 #: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
 #: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
 #: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
-#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34452
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
 #, fuzzy, gcc-internal-format
 msgid "expected %<(%>"
 msgstr "預期 %<(%>"
 
-#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34464
-#: cp/parser.cc:38333 go/gofrontend/embed.cc:440
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
 #, fuzzy, gcc-internal-format
 msgid "expected %<[%>"
 msgstr "預期 %<[%>"
 
 #: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
-#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23107
-#: c/c-parser.cc:26919 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
 #: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
-#: cp/parser.cc:34458 go/gofrontend/embed.cc:371
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
 #, gcc-internal-format
 msgid "expected %<{%>"
 msgstr "需要 %<{%>"
@@ -22402,17 +22402,17 @@ msgstr "需要 %<{%>"
 #: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
 #: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
 #: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
-#: c/c-parser.cc:18731 c/c-parser.cc:24662 c/c-parser.cc:25516
-#: c/c-parser.cc:25575 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
 #: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
-#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34491
-#: cp/parser.cc:36194 cp/parser.cc:39264 cp/parser.cc:40157
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
 #: go/gofrontend/embed.cc:404
 #, fuzzy, gcc-internal-format
 msgid "expected %<:%>"
 msgstr "預期 %<:%>"
 
-#: c/c-parser.cc:8199 cp/parser.cc:34378
+#: c/c-parser.cc:8199 cp/parser.cc:34380
 #, fuzzy, gcc-internal-format
 msgid "expected %<while%>"
 msgstr "預期 %<while%>"
@@ -22421,8 +22421,8 @@ msgstr "預期 %<while%>"
 #: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
 #: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
 #: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
-#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33808
-#: cp/parser.cc:34467
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
 #, fuzzy, gcc-internal-format
 msgid "expected %<,%>"
 msgstr "預期 %<,%>"
@@ -22433,17 +22433,17 @@ msgid "expected %<.%>"
 msgstr "預期 %<.%>"
 
 #: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
-#: cp/parser.cc:36768 cp/parser.cc:36789
+#: cp/parser.cc:36770 cp/parser.cc:36791
 #, fuzzy, gcc-internal-format
 msgid "expected %<@end%>"
 msgstr "預期 %<@end%>"
 
-#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34476
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
 #, fuzzy, gcc-internal-format
 msgid "expected %<>%>"
 msgstr "預期 %<>%>"
 
-#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34500
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
 #, fuzzy, gcc-internal-format
 msgid "expected %<,%> or %<)%>"
 msgstr "預期 %<,%>或 %<)%>"
@@ -22451,32 +22451,32 @@ msgstr "預期 %<,%>或 %<)%>"
 #. All following cases are statements with LHS.
 #: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
 #: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
-#: c/c-parser.cc:24843 c/c-parser.cc:25717 c/gimple-parser.cc:745
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
 #: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
-#: cp/parser.cc:34479 cp/parser.cc:43147 cp/parser.cc:43320
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
 #, gcc-internal-format
 msgid "expected %<=%>"
 msgstr "需要 %<=%>"
 
 #: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
 #: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
-#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34455
-#: cp/parser.cc:36978
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
 #, fuzzy, gcc-internal-format
 msgid "expected %<}%>"
 msgstr "預期 %<}%>"
 
-#: c/c-parser.cc:21421 cp/parser.cc:43245
+#: c/c-parser.cc:21421 cp/parser.cc:43247
 #, fuzzy, gcc-internal-format
 msgid "expected %<else%>"
 msgstr "預期 %<delete%>"
 
-#: c/c-parser.cc:23154 c/c-parser.cc:23143 cp/parser.cc:45944
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
 #, fuzzy, gcc-internal-format
 msgid "expected %<#pragma omp section%> or %<}%>"
 msgstr "預期 %<# pragma omp section%>或 %<}%>"
 
-#: c/c-parser.cc:26283 cp/parser.cc:49921
+#: c/c-parser.cc:26281 cp/parser.cc:49919
 msgid "<message unknown at compile time>"
 msgstr ""
 
@@ -22485,7 +22485,7 @@ msgstr ""
 msgid "(anonymous)"
 msgstr "(匿名)"
 
-#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34473
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
 #, fuzzy, gcc-internal-format
 msgid "expected %<<%>"
 msgstr "預期 %<<%>"
@@ -22502,22 +22502,22 @@ msgstr "預期的頻道"
 msgid "candidate:"
 msgstr "備選 1："
 
-#: cp/call.cc:8332
+#: cp/call.cc:8333
 #, fuzzy
 msgid "  after user-defined conversion:"
 msgstr "啟用使用者定義的指令"
 
-#: cp/call.cc:8498 cp/pt.cc:2043 cp/pt.cc:26344
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 #, fuzzy
 msgid "candidate is:"
 msgid_plural "candidates are:"
 msgstr[0] "candidate 是："
 
-#: cp/call.cc:13020 cp/call.cc:13446
+#: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
 msgstr "備選 1："
 
-#: cp/call.cc:13022 cp/call.cc:13447
+#: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
 msgstr "備選 2："
 
@@ -22797,7 +22797,7 @@ msgstr "%s:%d:%d：  在中 constexpr 擴展的 %qs"
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr "%s:%d：  在中 constexpr 擴展的 %qs"
 
-#: cp/pt.cc:2041 cp/semantics.cc:6310
+#: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
 msgstr "備選為："
 
@@ -22851,52 +22851,52 @@ msgstr "轉換演員陣容暫離 constness"
 msgid "source type is not polymorphic"
 msgstr "來源型態不是 polymorphic"
 
-#: cp/typeck.cc:7443 c/c-typeck.cc:4685
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
 #, gcc-internal-format
 msgid "wrong type argument to unary minus"
 msgstr "單位元減的運算元類型錯誤"
 
-#: cp/typeck.cc:7444 c/c-typeck.cc:4671
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
 #, gcc-internal-format
 msgid "wrong type argument to unary plus"
 msgstr "單位元加的運算元類型錯誤"
 
-#: cp/typeck.cc:7471 c/c-typeck.cc:4730
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
 #, gcc-internal-format
 msgid "wrong type argument to bit-complement"
 msgstr "按位取反的引數類型錯誤"
 
-#: cp/typeck.cc:7488 c/c-typeck.cc:4738
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
 #, gcc-internal-format
 msgid "wrong type argument to abs"
 msgstr "不能對該類型的引數求絕對值"
 
-#: cp/typeck.cc:7500 c/c-typeck.cc:4760
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
 #, gcc-internal-format
 msgid "wrong type argument to conjugation"
 msgstr "不能對該類型的引數求共軛"
 
-#: cp/typeck.cc:7524
+#: cp/typeck.cc:7520
 #, fuzzy
 msgid "in argument to unary !"
 msgstr "在中引數到一元！"
 
-#: cp/typeck.cc:7573
+#: cp/typeck.cc:7569
 #, fuzzy
 msgid "no pre-increment operator for type"
 msgstr "沒有 pre-increment 運算子用於型態"
 
-#: cp/typeck.cc:7575
+#: cp/typeck.cc:7571
 #, fuzzy
 msgid "no post-increment operator for type"
 msgstr "沒有 post-increment 運算子用於型態"
 
-#: cp/typeck.cc:7577
+#: cp/typeck.cc:7573
 #, fuzzy
 msgid "no pre-decrement operator for type"
 msgstr "沒有 pre-decrement 運算子用於型態"
 
-#: cp/typeck.cc:7579
+#: cp/typeck.cc:7575
 #, fuzzy
 msgid "no post-decrement operator for type"
 msgstr "沒有 post-decrement 運算子用於型態"
@@ -22983,7 +22983,7 @@ msgstr "Obsolescent 特徵：計算的前往於 %C"
 msgid "Deleted feature:"
 msgstr "預期的運算子"
 
-#: fortran/expr.cc:3809
+#: fortran/expr.cc:3814
 #, fuzzy
 msgid "array assignment"
 msgstr "陣列指派"
@@ -23192,11 +23192,11 @@ msgstr "區塊 IF"
 msgid "implied END DO"
 msgstr "暗示的 END DO"
 
-#: fortran/parse.cc:2432 fortran/resolve.cc:12765
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
 msgid "assignment"
 msgstr "賦值"
 
-#: fortran/parse.cc:2435 fortran/resolve.cc:12831 fortran/resolve.cc:12834
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
 msgid "pointer assignment"
 msgstr "指標賦值"
 
@@ -23382,57 +23382,57 @@ msgstr "使用者運算子「%s」(位於 %%L)的運算元為 %s"
 msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
 msgstr "使用者運算子「%s」(位於 %%L)的運算元為 %s/%s"
 
-#: fortran/resolve.cc:7659
+#: fortran/resolve.cc:7668
 #, fuzzy
 msgid "Loop variable"
 msgstr "迴圈變數"
 
-#: fortran/resolve.cc:7663
+#: fortran/resolve.cc:7672
 #, fuzzy
 msgid "iterator variable"
 msgstr "迭代器變數"
 
-#: fortran/resolve.cc:7667
+#: fortran/resolve.cc:7676
 #, fuzzy
 msgid "Start expression in DO loop"
 msgstr "開始運算式在中做迴圈"
 
-#: fortran/resolve.cc:7671
+#: fortran/resolve.cc:7680
 #, fuzzy
 msgid "End expression in DO loop"
 msgstr "結束運算式在中做迴圈"
 
-#: fortran/resolve.cc:7675
+#: fortran/resolve.cc:7684
 #, fuzzy
 msgid "Step expression in DO loop"
 msgstr "步驟運算式在中做迴圈"
 
-#: fortran/resolve.cc:7962 fortran/resolve.cc:7965
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
 #, fuzzy
 msgid "DEALLOCATE object"
 msgstr "取消配置物件"
 
-#: fortran/resolve.cc:8353 fortran/resolve.cc:8356
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
 #, fuzzy
 msgid "ALLOCATE object"
 msgstr "配置物件"
 
-#: fortran/resolve.cc:8593 fortran/resolve.cc:10670 fortran/resolve.cc:10791
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
 #, fuzzy
 msgid "STAT variable"
 msgstr "STAT 變數"
 
-#: fortran/resolve.cc:8644 fortran/resolve.cc:10682 fortran/resolve.cc:10803
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
 #, fuzzy
 msgid "ERRMSG variable"
 msgstr "ERRMSG 變數"
 
-#: fortran/resolve.cc:10472
+#: fortran/resolve.cc:10481
 #, fuzzy
 msgid "item in READ"
 msgstr "項目在中讀取"
 
-#: fortran/resolve.cc:10694
+#: fortran/resolve.cc:10703
 #, fuzzy
 msgid "ACQUIRED_LOCK variable"
 msgstr "ACQUIRED_LOCK 變數"
@@ -23442,12 +23442,12 @@ msgstr "ACQUIRED_LOCK 變數"
 msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
 msgstr "不同的字元長度 (%ld/%ld) 在中陣列建構子"
 
-#: fortran/trans-array.cc:6401
+#: fortran/trans-array.cc:6413
 #, fuzzy
 msgid "Integer overflow when calculating the amount of memory to allocate"
 msgstr "整數溢位時計算數目的記憶體到配置"
 
-#: fortran/trans-array.cc:10501
+#: fortran/trans-array.cc:10525
 #, c-format
 msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
 msgstr ""
@@ -23462,12 +23462,12 @@ msgstr "實際的字串長度不匹配宣告的一個用於虛引數『%s』(%ld
 msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
 msgstr "實際的字串長度是短於宣告的一個用於虛引數『%s』(%ld/%ld)"
 
-#: fortran/trans-expr.cc:10754
+#: fortran/trans-expr.cc:10759
 #, fuzzy, c-format
 msgid "Target of rank remapping is too small (%ld < %ld)"
 msgstr "目標的分級重新映射太小 (%ld<%ld)"
 
-#: fortran/trans-expr.cc:12351
+#: fortran/trans-expr.cc:12385
 msgid "Assignment of scalar to unallocated array"
 msgstr ""
 
@@ -23476,82 +23476,82 @@ msgstr ""
 msgid "Unequal character lengths (%ld/%ld) in %s"
 msgstr "Unequal 字元長度 (%ld/%ld) 在中 %s"
 
-#: fortran/trans-intrinsic.cc:6518
+#: fortran/trans-intrinsic.cc:6521
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6613
+#: fortran/trans-intrinsic.cc:6616
 #, fuzzy, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "引數『a%d』和『a%d』用於 intrinsic『%s』"
 
-#: fortran/trans-intrinsic.cc:6661
+#: fortran/trans-intrinsic.cc:6664
 #, c-format
 msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6671
+#: fortran/trans-intrinsic.cc:6674
 #, c-format
 msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6678
+#: fortran/trans-intrinsic.cc:6681
 #, c-format
 msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6760
+#: fortran/trans-intrinsic.cc:6763
 #, fuzzy, c-format
 msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
 msgstr "引數『a%d』和『a%d』用於 intrinsic『%s』"
 
-#: fortran/trans-intrinsic.cc:6828
+#: fortran/trans-intrinsic.cc:6831
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6908
+#: fortran/trans-intrinsic.cc:6911
 #, c-format
 msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:6916 fortran/trans-intrinsic.cc:6961
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
 #, c-format
 msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:9312
+#: fortran/trans-intrinsic.cc:9359
 #, fuzzy, c-format
 msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
 msgstr "引數 NCOPIES 的重複 intrinsic 是負 (它的值是 %ld)"
 
-#: fortran/trans-intrinsic.cc:9344
+#: fortran/trans-intrinsic.cc:9391
 #, fuzzy
 msgid "Argument NCOPIES of REPEAT intrinsic is too large"
 msgstr "引數 NCOPIES 的重複 intrinsic 太大"
 
-#: fortran/trans-intrinsic.cc:12509
+#: fortran/trans-intrinsic.cc:12556
 #, fuzzy, c-format
 msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "引數『a%d』和『a%d』用於 intrinsic『%s』"
 
-#: fortran/trans-intrinsic.cc:12521
+#: fortran/trans-intrinsic.cc:12568
 #, fuzzy, c-format
 msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "引數『a%d』和『a%d』用於 intrinsic『%s』"
 
-#: fortran/trans-intrinsic.cc:12533
+#: fortran/trans-intrinsic.cc:12580
 #, fuzzy, c-format
 msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
 msgstr "引數『a%d』和『a%d』用於 intrinsic『%s』"
 
-#: fortran/trans-intrinsic.cc:12545
+#: fortran/trans-intrinsic.cc:12592
 #, c-format
 msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
 
-#: fortran/trans-intrinsic.cc:12553
+#: fortran/trans-intrinsic.cc:12600
 #, c-format
 msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
 msgstr ""
@@ -23575,16 +23575,16 @@ msgstr "賦值標籤不是目的標籤"
 msgid "Invalid image number %d in SYNC IMAGES"
 msgstr "無效的影像號碼 %d 在中同步影像"
 
-#: fortran/trans-stmt.cc:2517
+#: fortran/trans-stmt.cc:2527
 msgid "Loop iterates infinitely"
 msgstr ""
 
-#: fortran/trans-stmt.cc:2537 fortran/trans-stmt.cc:2793
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
 #, fuzzy
 msgid "Loop variable has been modified"
 msgstr "迴圈變數已被已修改"
 
-#: fortran/trans-stmt.cc:2646
+#: fortran/trans-stmt.cc:2656
 #, fuzzy
 msgid "DO step value is zero"
 msgstr "做步驟值是零"
@@ -23671,7 +23671,7 @@ msgid "expected boolean type"
 msgstr "預期的布林值型態"
 
 #: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
-#: cp/parser.cc:40917 cp/parser.cc:40924
+#: cp/parser.cc:40919 cp/parser.cc:40926
 #, fuzzy, gcc-internal-format
 #| msgid "Expected integer"
 msgid "expected integer"
@@ -23745,7 +23745,7 @@ msgstr "不足引數"
 #: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
 #: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
 #: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
-#: cp/pt.cc:9370
+#: cp/pt.cc:9381
 #, fuzzy, gcc-internal-format
 msgid "too many arguments"
 msgstr "太多引數"
@@ -24456,7 +24456,7 @@ msgid "%<-mrelax%> is only supported for RTP PIC"
 msgstr "-mrelax 是只有支援的用於 RTP PIC"
 
 #. A general purpose syntax error.
-#: fortran/gfortran.h:3412 fortran/io.cc:3727 fortran/io.cc:4413
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in %s statement at %C"
 msgstr "%s 敘述在 %C 處語法錯誤"
@@ -24910,8 +24910,8 @@ msgstr "%qE 屬性衝突與屬性 %s"
 
 #: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
 #: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
-#: c-family/c-attribs.cc:5147 cp/decl.cc:16434 cp/decl.cc:16484
-#: cp/friend.cc:318 cp/tree.cc:5259
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
 #, fuzzy, gcc-internal-format
 msgid "previous declaration here"
 msgstr "與此處早先的宣告 %q+#D 衝突"
@@ -24928,7 +24928,7 @@ msgstr "%qE 屬性指令忽略"
 msgid "%<%E::%E%> scoped attribute directive ignored"
 msgstr "%qE 屬性指令忽略"
 
-#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3667
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments specified for %qE attribute"
 msgstr "錯誤的引數數量指定的用於 %qE 屬性"
@@ -24938,7 +24938,7 @@ msgstr "錯誤的引數數量指定的用於 %qE 屬性"
 msgid "expected %i or more, found %i"
 msgstr "預期 %<(%>或列尾"
 
-#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3669
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "expected %i, found %i"
 msgstr "預期 %<(%>或列尾"
@@ -25005,12 +25005,12 @@ msgstr "型態屬性忽略的之後型態已經定義"
 #: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
 #: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
 #: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
-#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11226
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
 #: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
-#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3756
-#: config/i386/i386-options.cc:3914 config/i386/i386-options.cc:4146
-#: config/i386/i386-options.cc:4176 config/ia64/ia64.cc:795
-#: config/loongarch/loongarch.cc:7999 config/rs6000/rs6000.cc:20738
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
 #: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
 #: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
 #: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
@@ -25019,7 +25019,7 @@ msgstr "型態屬性忽略的之後型態已經定義"
 #: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
 #: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
 #: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
-#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5013 cp/tree.cc:5424
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
 #: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
 #: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
 #: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
@@ -25041,8 +25041,8 @@ msgstr "%qE 屬性被忽略"
 msgid "missing %<target%> attribute for multi-versioned %qD"
 msgstr ""
 
-#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2351 cp/decl.cc:2399
-#: cp/decl.cc:2415 cp/decl.cc:3095 cp/decl.cc:3533
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+D"
 msgid "previous declaration of %qD"
@@ -25152,7 +25152,7 @@ msgstr "無法讀取 LTO decls 從 %s"
 msgid "offset %qwi outside bounds of constant string"
 msgstr "偏移量超過字串常數界"
 
-#: builtins.cc:707 cp/name-lookup.cc:6773
+#: builtins.cc:707 cp/name-lookup.cc:6830
 #, fuzzy, gcc-internal-format
 msgid "%qE declared here"
 msgstr "%qD 宣告的在此"
@@ -25262,7 +25262,7 @@ msgstr "缺少引數到 %qs"
 
 #. All valid uses of __builtin_va_arg_pack () are removed during
 #. inlining.
-#: builtins.cc:8018 expr.cc:12318
+#: builtins.cc:8018 expr.cc:12326
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<__builtin_va_arg_pack ()%>"
 msgstr "%Kinvalid 使用的 %<__builtin_va_arg_pack()%>"
@@ -25284,43 +25284,43 @@ msgstr "%<__builtin_longjmp%> 的第二個引數必須是 1"
 msgid "target format does not support infinity"
 msgstr "目的格式不支援無限大浮點數"
 
-#: builtins.cc:11227
+#: builtins.cc:11247
 #, fuzzy, gcc-internal-format
 #| msgid "%<va_start%> used in function with fixed args"
 msgid "%<va_start%> used in function with fixed arguments"
 msgstr "在定參數的函式中使用了 %<va_start%>"
 
-#: builtins.cc:11235
+#: builtins.cc:11255
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to function %<va_start%>"
 msgstr "錯誤的引數數量到函式 %<va_start%>"
 
-#: builtins.cc:11250
+#: builtins.cc:11270
 #, gcc-internal-format
 msgid "%<__builtin_next_arg%> called without an argument"
 msgstr "呼叫 %<__builtin_next_arg%> 時沒有給定引數"
 
-#: builtins.cc:11255
+#: builtins.cc:11275
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to function %<__builtin_next_arg%>"
 msgstr "錯誤的引數數量到函式 %<__builtin_next_arg%>"
 
-#: builtins.cc:11288
+#: builtins.cc:11308
 #, gcc-internal-format
 msgid "second parameter of %<va_start%> not last named argument"
 msgstr "%<va_start%> 的第二個參數不是最後一個具名參數"
 
-#: builtins.cc:11301
+#: builtins.cc:11321
 #, fuzzy, gcc-internal-format
 msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
 msgstr "未定義的行為時秒參數的 %<va_start%> 被宣告與 %<register%>貯藏體"
 
-#: builtins.cc:11330
+#: builtins.cc:11350
 #, fuzzy, gcc-internal-format
 msgid "first argument of %qD must be a pointer, second integer constant"
 msgstr "%Kfirst 引數的 %D 必須是指標，秒整數常數"
 
-#: builtins.cc:11343
+#: builtins.cc:11363
 #, fuzzy, gcc-internal-format
 msgid "last argument of %qD is not integer constant between 0 and 3"
 msgstr "%Klast 引數的 %D 不是整數常數介於 0 和 3"
@@ -26390,12 +26390,12 @@ msgstr "%<weakref%> 屬性忽略的因為變數被初始化的"
 
 #. include_self=
 #. TODO: Add OPT_Wundefined-inline.
-#: cgraphunit.cc:1098 c/c-decl.cc:13338
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
 #, gcc-internal-format
 msgid "%q+F used but never defined"
 msgstr "%q+F 使用過但從未定義"
 
-#: cgraphunit.cc:1100 c/c-decl.cc:13348
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
 #, gcc-internal-format
 msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F 宣告為 %<static%> 卻從未定義過"
@@ -26960,7 +26960,7 @@ msgstr "region_array 不匹配 region_tree"
 msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "lp_array 不匹配 region_tree"
 
-#: except.cc:3541 tree.cc:14395 value-prof.cc:529
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
 #, fuzzy, gcc-internal-format
 msgid "%qs failed"
 msgstr "開啟 %s 失敗：%s"
@@ -26990,17 +26990,17 @@ msgstr ""
 msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
 msgstr ""
 
-#: expr.cc:12330
+#: expr.cc:12338
 #, fuzzy, gcc-internal-format
 msgid "call to %qs declared with attribute error: %s"
 msgstr "%Kcall 到 %qs 宣告的與屬性錯誤：%s"
 
-#: expr.cc:12344
+#: expr.cc:12352
 #, fuzzy, gcc-internal-format
 msgid "call to %qs declared with attribute warning: %s"
 msgstr "%Kcall 到 %qs 宣告的與屬性警告：%s"
 
-#: expr.cc:13391
+#: expr.cc:13399
 #, fuzzy, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
 msgstr "假設帶正負號溢位不發生時簡化 %<abs (X)%> 到 %<X%>或 %<-X%>"
@@ -27035,7 +27035,7 @@ msgstr "大定點常數隱含地截短至定點型態"
 msgid "comparison is always %d due to width of bit-field"
 msgstr "由於位元段寬度所限，比較結果永遠為 %d"
 
-#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3969
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
 #, fuzzy, gcc-internal-format
 msgid "assuming signed overflow does not occur when simplifying range test"
 msgstr "假設帶正負號溢位不發生時簡化範圍測試"
@@ -27210,7 +27210,7 @@ msgstr "提取處理次時失敗：%m"
 msgid "%s signal terminated program %s"
 msgstr "使用另一套暫存器名"
 
-#: gcc.cc:3956 opts-common.cc:1597 opts-common.cc:1629
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
 #, fuzzy, gcc-internal-format
 msgid "unrecognized command-line option %qs"
 msgstr "無法辨識的命令列選項 %qs"
@@ -27477,7 +27477,7 @@ msgstr "multilib spec %qs 無效"
 msgid "multilib exclusions %qs is invalid"
 msgstr "multilib 互斥 %qs 無效"
 
-#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2242
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
 #, fuzzy, gcc-internal-format
 msgid "multilib select %qs %qs is invalid"
 msgstr "multilib 選取 %qs 無效"
@@ -27782,22 +27782,22 @@ msgstr "大小的陣列 %qE 是負"
 msgid "%qD specified bound %E equals source length"
 msgstr ""
 
-#: gimple-fold.cc:4550 gimple-fold.cc:4777
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD does not have well defined padding bits for %qs"
 msgstr "flexible 陣列成員無法於結束的結構"
 
-#: gimple-fold.cc:4726 cp/constexpr.cc:4901
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
 #, gcc-internal-format
 msgid "PDP11 bit-field handling unsupported in %qs"
 msgstr ""
 
-#: gimple-fold.cc:5007
+#: gimple-fold.cc:5009
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported for variable length aggregates"
 msgstr "ISO C 不支援飽和類型"
 
-#: gimple-fold.cc:5013
+#: gimple-fold.cc:5015
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s not supported on this target"
 msgstr "巢狀的函式不支援於這個目標"
@@ -27839,16 +27839,16 @@ msgid "function returns address of local variable"
 msgstr "函式回傳局部變數的位址"
 
 #: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
-#: gimple-ssa-warn-access.cc:3713 tree.cc:12442 tree.cc:12479 tree.cc:12520
-#: tree.cc:12553 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
 #: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
 #: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
-#: cp/call.cc:8203 cp/call.cc:10398 cp/class.cc:9399 cp/constexpr.cc:889
-#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5996
-#: cp/constexpr.cc:6367 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9104
-#: cp/decl2.cc:5889 cp/decl2.cc:5944 cp/method.cc:1234 cp/parser.cc:22475
-#: cp/pt.cc:9178 cp/semantics.cc:2378 cp/semantics.cc:3782 cp/semantics.cc:4900
-#: cp/typeck.cc:2143 cp/typeck.cc:2363 cp/typeck.cc:4509 cp/typeck.cc:10694
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
 #: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
 #: rust/backend/rust-tree.cc:3813
 #, fuzzy, gcc-internal-format
@@ -27860,355 +27860,355 @@ msgstr "宣告的在此"
 msgid "%<nonnull%> argument %qD compared to NULL"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2836 gimple-ssa-sprintf.cc:2956
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
 #, gcc-internal-format
 msgid "%qE output may be truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
 #, gcc-internal-format
 msgid "%qE output truncated before the last format character"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2841 gimple-ssa-sprintf.cc:2961
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
 #, gcc-internal-format
 msgid "%qE may write a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
 #, gcc-internal-format
 msgid "%qE writing a terminating nul past the end of the destination"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2853
+#: gimple-ssa-sprintf.cc:2855
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2860
+#: gimple-ssa-sprintf.cc:2862
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2867
+#: gimple-ssa-sprintf.cc:2869
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2878
+#: gimple-ssa-sprintf.cc:2880
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2881
+#: gimple-ssa-sprintf.cc:2883
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2883
+#: gimple-ssa-sprintf.cc:2885
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2895
+#: gimple-ssa-sprintf.cc:2897
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2898
+#: gimple-ssa-sprintf.cc:2900
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2901
+#: gimple-ssa-sprintf.cc:2903
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2910
+#: gimple-ssa-sprintf.cc:2912
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2913
+#: gimple-ssa-sprintf.cc:2915
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2916
+#: gimple-ssa-sprintf.cc:2918
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2925
+#: gimple-ssa-sprintf.cc:2927
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2928
+#: gimple-ssa-sprintf.cc:2930
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2930
+#: gimple-ssa-sprintf.cc:2932
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:2972
+#: gimple-ssa-sprintf.cc:2974
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2979
+#: gimple-ssa-sprintf.cc:2981
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2987
+#: gimple-ssa-sprintf.cc:2989
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
 msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:2999
+#: gimple-ssa-sprintf.cc:3001
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3002
+#: gimple-ssa-sprintf.cc:3004
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3005
+#: gimple-ssa-sprintf.cc:3007
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3018
+#: gimple-ssa-sprintf.cc:3020
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3021
+#: gimple-ssa-sprintf.cc:3023
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3024
+#: gimple-ssa-sprintf.cc:3026
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3034
+#: gimple-ssa-sprintf.cc:3036
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3037
+#: gimple-ssa-sprintf.cc:3039
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3040
+#: gimple-ssa-sprintf.cc:3042
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3049
+#: gimple-ssa-sprintf.cc:3051
 #, gcc-internal-format
 msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3052
+#: gimple-ssa-sprintf.cc:3054
 #, gcc-internal-format
 msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3055
+#: gimple-ssa-sprintf.cc:3057
 #, gcc-internal-format
 msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3177
+#: gimple-ssa-sprintf.cc:3179
 #, fuzzy, gcc-internal-format
 msgid "%<%.*s%> directive argument is null"
 msgstr "延伸：負引數 N 於 %L"
 
-#: gimple-ssa-sprintf.cc:3255
+#: gimple-ssa-sprintf.cc:3257
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3261
+#: gimple-ssa-sprintf.cc:3263
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3268
+#: gimple-ssa-sprintf.cc:3270
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3298
+#: gimple-ssa-sprintf.cc:3300
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3304
+#: gimple-ssa-sprintf.cc:3306
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3315
+#: gimple-ssa-sprintf.cc:3317
 #, gcc-internal-format
 msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3321
+#: gimple-ssa-sprintf.cc:3323
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3332
+#: gimple-ssa-sprintf.cc:3334
 #, gcc-internal-format
 msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3342
+#: gimple-ssa-sprintf.cc:3344
 #, gcc-internal-format
 msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3348 gimple-ssa-warn-access.cc:234
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
 #, fuzzy, gcc-internal-format
 msgid "referenced argument declared here"
 msgstr "參考 %qs 無法宣告 %<mutable%>"
 
-#: gimple-ssa-sprintf.cc:3355
+#: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
 msgid "assuming directive output of %wu byte"
 msgid_plural "assuming directive output of %wu bytes"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3362
+#: gimple-ssa-sprintf.cc:3364
 #, fuzzy, gcc-internal-format
 msgid "directive argument %qE"
 msgstr "延伸：負引數 N 於 %L"
 
-#: gimple-ssa-sprintf.cc:3364
+#: gimple-ssa-sprintf.cc:3366
 #, fuzzy, gcc-internal-format
 msgid "directive argument in the range [%E, %E]"
 msgstr "停用回合 %s 用於函式在中範圍的 [%u，%u]"
 
-#: gimple-ssa-sprintf.cc:3368
+#: gimple-ssa-sprintf.cc:3370
 #, gcc-internal-format
 msgid "using the range [%E, %E] for directive argument"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3388
+#: gimple-ssa-sprintf.cc:3390
 #, gcc-internal-format
 msgid "%qE output %wu byte into a destination of size %wu"
 msgid_plural "%qE output %wu bytes into a destination of size %wu"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3393
+#: gimple-ssa-sprintf.cc:3395
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3398
+#: gimple-ssa-sprintf.cc:3400
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3403
+#: gimple-ssa-sprintf.cc:3405
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes into a destination of size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3414
+#: gimple-ssa-sprintf.cc:3416
 #, gcc-internal-format
 msgid "%qE output %wu byte"
 msgid_plural "%qE output %wu bytes"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:3418
+#: gimple-ssa-sprintf.cc:3420
 #, gcc-internal-format
 msgid "%qE output between %wu and %wu bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3422
+#: gimple-ssa-sprintf.cc:3424
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes (assuming %wu)"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3426
+#: gimple-ssa-sprintf.cc:3428
 #, gcc-internal-format
 msgid "%qE output %wu or more bytes"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3810
+#: gimple-ssa-sprintf.cc:3812
 #, gcc-internal-format
 msgid "%<%.*s%> directive width out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3844
+#: gimple-ssa-sprintf.cc:3846
 #, gcc-internal-format
 msgid "%<%.*s%> directive precision out of range"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3977
+#: gimple-ssa-sprintf.cc:3979
 msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:3989
+#: gimple-ssa-sprintf.cc:3991
 msgid "%qE argument %Z overlaps destination object %qE"
 msgid_plural "%qE arguments %Z overlap destination object %qE"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:4000
+#: gimple-ssa-sprintf.cc:4002
 msgid "%qE argument %Z may overlap destination object %qE"
 msgid_plural "%qE arguments %Z may overlap destination object %qE"
 msgstr[0] ""
 
-#: gimple-ssa-sprintf.cc:4020
+#: gimple-ssa-sprintf.cc:4022
 #, gcc-internal-format
 msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4607
+#: gimple-ssa-sprintf.cc:4609
 #, gcc-internal-format
 msgid "specified bound %wu exceeds maximum object size %wu"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4618
+#: gimple-ssa-sprintf.cc:4620
 #, gcc-internal-format
 msgid "specified bound %wu exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4644
+#: gimple-ssa-sprintf.cc:4646
 #, gcc-internal-format
 msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4688
+#: gimple-ssa-sprintf.cc:4690
 #, fuzzy, gcc-internal-format
 msgid "null destination pointer"
 msgstr "空指標"
 
-#: gimple-ssa-sprintf.cc:4705
+#: gimple-ssa-sprintf.cc:4707
 #, gcc-internal-format
 msgid "specified bound %wu exceeds the size %wu of the destination object"
 msgstr ""
 
-#: gimple-ssa-sprintf.cc:4717
+#: gimple-ssa-sprintf.cc:4719
 #, fuzzy, gcc-internal-format
 msgid "null format string"
 msgstr "%s 在中格式字串於 %L"
@@ -28953,12 +28953,12 @@ msgstr "無效的指標模式 %qs"
 #: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
 #: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
 #: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
-#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8578
-#: cp/call.cc:8589 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
-#: cp/decl.cc:4631 cp/decl.cc:12893 cp/decl.cc:13481 cp/decl.cc:13490
-#: cp/decl.cc:14491 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
 #: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
-#: cp/parser.cc:25045 cp/typeck.cc:5002
+#: cp/parser.cc:25045 cp/typeck.cc:4998
 #, fuzzy, gcc-internal-format
 msgid "%qD declared here"
 msgstr "%qD 宣告的在此"
@@ -29734,7 +29734,7 @@ msgstr ""
 msgid "token %u has %<y-location == %u%>"
 msgstr ""
 
-#: internal-fn.cc:841
+#: internal-fn.cc:843
 #, fuzzy, gcc-internal-format
 msgid "invalid use of attribute %<fallthrough%>"
 msgstr "無效的使用的 %<auto%>"
@@ -30079,17 +30079,17 @@ msgstr "%q+D 宣告的在此，稍後在中轉譯單位"
 msgid "mismatching definition"
 msgstr "定義缺失"
 
-#: ipa-fnsummary.cc:4656
+#: ipa-fnsummary.cc:4658
 #, fuzzy, gcc-internal-format
 msgid "invalid fnsummary in LTO stream"
 msgstr "無效的函式在中 gimple 呼叫"
 
-#: ipa-fnsummary.cc:4757
+#: ipa-fnsummary.cc:4759
 #, fuzzy, gcc-internal-format
 msgid "ipa inline summary is missing in input file"
 msgstr "ipa 內聯概要缺少在中輸入檔案"
 
-#: ipa-modref.cc:4017
+#: ipa-modref.cc:4022
 #, fuzzy, gcc-internal-format
 msgid "IPA modref summary is missing in input file"
 msgstr "ipa 內聯概要缺少在中輸入檔案"
@@ -31180,73 +31180,73 @@ msgstr "寫入 %s 時發生錯誤：%m"
 msgid "error closing optimization records %qs"
 msgstr "進行跨跳轉最佳化"
 
-#: opts-common.cc:1432
+#: opts-common.cc:1447
 #, fuzzy, gcc-internal-format
 #| msgid "command line option %qs is not supported by this configuration"
 msgid "command-line option %qs is not supported by this configuration"
 msgstr "此配置不支援命令列選項 %qs"
 
-#: opts-common.cc:1442 opts.cc:2576
+#: opts-common.cc:1457 opts.cc:2576
 #, fuzzy, gcc-internal-format
 msgid "missing argument to %qs"
 msgstr "缺少引數到 %qs"
 
-#: opts-common.cc:1449
+#: opts-common.cc:1464
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
 msgstr "引數到 %qs 應該是 non-negative 整數"
 
-#: opts-common.cc:1453
+#: opts-common.cc:1468
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs should be a non-negative integer"
 msgstr "引數到 %qs 應該是 non-negative 整數"
 
-#: opts-common.cc:1460
+#: opts-common.cc:1475
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is not between %d and %d"
 msgstr "-malign-functions=%d 未被介於 0 和 %d"
 
-#: opts-common.cc:1524
+#: opts-common.cc:1539
 #, fuzzy, gcc-internal-format
 msgid "invalid argument in option %qs"
 msgstr "有效引數到 %qs 是：%s"
 
-#: opts-common.cc:1526
+#: opts-common.cc:1541
 #, gcc-internal-format
 msgid "%qs specified multiple times in the same option"
 msgstr ""
 
-#: opts-common.cc:1529
+#: opts-common.cc:1544
 #, fuzzy, gcc-internal-format
 msgid "%qs is mutually exclusive with %qs and cannot be specified together"
 msgstr "-mcorea 和 -mcoreb can%'t 一起使用"
 
-#: opts-common.cc:1551
+#: opts-common.cc:1566
 #, fuzzy, gcc-internal-format
 msgid "unrecognized argument in option %qs"
 msgstr "無法辨識的引數在中選項 %qs"
 
-#: opts-common.cc:1562 config/i386/i386-options.cc:1703
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s; did you mean %qs?"
 msgstr "有效引數到 %qs 是：%s"
 
-#: opts-common.cc:1565 config/i386/i386-options.cc:1706
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %qs are: %s"
 msgstr "有效引數到 %qs 是：%s"
 
-#: opts-common.cc:1608 c-family/c-opts.cc:471
+#: opts-common.cc:1623 c-family/c-opts.cc:471
 #, gcc-internal-format
 msgid "switch %qs is no longer supported"
 msgstr "開關 %qs 不再被支援"
 
-#: opts-common.cc:1668
+#: opts-common.cc:1683
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is bigger than %d"
 msgstr "引數到 %qE 屬性大於 %d"
 
-#: opts-common.cc:2015
+#: opts-common.cc:2030
 #, fuzzy, gcc-internal-format
 msgid "malformed %<COLLECT_GCC_OPTIONS%>"
 msgstr "異常的 COLLECT_GCC_OPTIONS"
@@ -31321,8 +31321,8 @@ msgstr "引數到 %qs 應該是 non-negative 整數"
 
 #: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
 #: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
-#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20411
-#: config/mips/mips.cc:20413 config/mips/mips.cc:20426
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
 #, fuzzy, gcc-internal-format
 msgid "%qs is incompatible with %qs"
 msgstr "%qs 是不相容的與 %qs"
@@ -32058,7 +32058,7 @@ msgstr "全域暫存器變數出現在函式定義後"
 msgid "register of %qD used for multiple global register variables"
 msgstr "暫存器的 %qD 用於多重全域暫存器變數"
 
-#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5579
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
 #, fuzzy, gcc-internal-format
 msgid "conflicts with %qD"
 msgstr "衝突與 %qD"
@@ -32517,42 +32517,42 @@ msgstr ""
 msgid "%<__builtin_saveregs%> not supported by this target"
 msgstr "__builtin_saveregs 不為此目的所支援"
 
-#: targhooks.cc:1215
+#: targhooks.cc:1223
 #, fuzzy, gcc-internal-format
 msgid "argument %qs is not supported for %qs on this target"
 msgstr "巢狀的函式不支援於這個目標"
 
-#: targhooks.cc:1257
+#: targhooks.cc:1265
 #, fuzzy, gcc-internal-format
 msgid "nested functions not supported on this target"
 msgstr "巢狀的函式不支援於這個目標"
 
-#: targhooks.cc:1270
+#: targhooks.cc:1278
 #, fuzzy, gcc-internal-format
 msgid "nested function trampolines not supported on this target"
 msgstr "巢狀的函式 trampolines 不支援於這個目標"
 
-#: targhooks.cc:1433
+#: targhooks.cc:1441
 #, gcc-internal-format
 msgid "global constructors not supported on this target"
 msgstr "全域建構式在此目標平臺上不受支援"
 
-#: targhooks.cc:1442
+#: targhooks.cc:1450
 #, gcc-internal-format
 msgid "global destructors not supported on this target"
 msgstr "全域解構函式在此目標平臺上不受支援"
 
-#: targhooks.cc:1802
+#: targhooks.cc:1810
 #, fuzzy, gcc-internal-format
 msgid "%<target%> attribute is not supported on this machine"
 msgstr "目標屬性未被支援於這個機器"
 
-#: targhooks.cc:1814
+#: targhooks.cc:1822
 #, fuzzy, gcc-internal-format
 msgid "%<target_version%> attribute is not supported on this machine"
 msgstr "目標屬性未被支援於這個機器"
 
-#: targhooks.cc:1828
+#: targhooks.cc:1836
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC target%> is not supported for this machine"
 msgstr "# pragma GCC 目標未被支援用於這個機器"
@@ -33700,86 +33700,86 @@ msgstr "BB %i 有不正確邊緣"
 msgid "BB %i has incorrect fallthru edge"
 msgstr "BB %i 有不正確 fallthru 邊緣"
 
-#: tree-inline.cc:3925
+#: tree-inline.cc:3939
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be copied because it receives a non-local goto"
 msgstr "函式 %q+F 可以永不被複製因為它接收 non-local 前往"
 
-#: tree-inline.cc:3932
+#: tree-inline.cc:3946
 #, fuzzy, gcc-internal-format
 msgid "function %q+F can never be copied because it saves address of local label in a static variable"
 msgstr "函式 %q+F 可以永不被複製因為它儲存位址的本地標貼在中靜態變數"
 
-#: tree-inline.cc:3972
+#: tree-inline.cc:3986
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
 msgstr "函式 %q+F 無法被內聯，因為它使用了 alloca (使用 always_inline 屬性強制內聯)"
 
-#: tree-inline.cc:3986
+#: tree-inline.cc:4000
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp"
 msgstr "函式 %q+F 無法被內聯，因為它使用了 setjmp"
 
-#: tree-inline.cc:4000
+#: tree-inline.cc:4014
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgstr "函式 %q+F 無法被內聯，因為它使用了變長引數表"
 
-#: tree-inline.cc:4012
+#: tree-inline.cc:4026
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
 msgstr "函式 %q+F 無法被內聯，因為它使用了 setjmp-longjmp 異常處理"
 
-#: tree-inline.cc:4020
+#: tree-inline.cc:4034
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses non-local goto"
 msgstr "函式 %q+F 無法被內聯，因為使用了非區域性的 goto"
 
-#: tree-inline.cc:4032
+#: tree-inline.cc:4046
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses __builtin_return or __builtin_apply_args"
 msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
 msgstr "函式 %q+F 無法被內聯，因為使用了 __builtin_return 或 __builtin_apply_args"
 
-#: tree-inline.cc:4052
+#: tree-inline.cc:4066
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it contains a computed goto"
 msgstr "函式 %q+F 無法被內聯，因為包含一個執行時 goto"
 
-#: tree-inline.cc:4098
+#: tree-inline.cc:4112
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it uses variable argument lists"
 msgid "function %q+F can never be inlined because it has a VLA argument"
 msgstr "函式 %q+F 無法被內聯，因為它使用了變長引數表"
 
-#: tree-inline.cc:4165
+#: tree-inline.cc:4179
 #, fuzzy, gcc-internal-format
 #| msgid "function %q+F can never be inlined because it is suppressed using -fno-inline"
 msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
 msgstr "函式 %q+F 無法被內聯，因為使用了 -fno-inline"
 
-#: tree-inline.cc:4173
+#: tree-inline.cc:4187
 #, gcc-internal-format
 msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
 msgstr "函式 %q+F 無法被內聯，因為它使用了與內聯衝突的屬性"
 
-#: tree-inline.cc:4854
+#: tree-inline.cc:4868
 #, fuzzy, gcc-internal-format
 msgid "inlining failed in call to %<always_inline%> %q+F: %s"
 msgstr "內聯失敗的在中呼叫到 alwaysinline %q+F(_I)：%s"
 
-#: tree-inline.cc:4857 tree-inline.cc:4878
+#: tree-inline.cc:4871 tree-inline.cc:4892
 #, gcc-internal-format
 msgid "called from here"
 msgstr "從此處呼叫"
 
-#: tree-inline.cc:4860 tree-inline.cc:4881
+#: tree-inline.cc:4874 tree-inline.cc:4895
 #, fuzzy, gcc-internal-format
 #| msgid "from this location"
 msgid "called from this function"
 msgstr "從這個地方"
 
-#: tree-inline.cc:4874
+#: tree-inline.cc:4888
 #, gcc-internal-format
 msgid "inlining failed in call to %q+F: %s"
 msgstr "呼叫 %q+F 時內聯失敗：%s"
@@ -33835,28 +33835,28 @@ msgstr "無效的元件類型用於屬性 %qs"
 msgid "invalid fn spec attribute \"%s\" arg %i"
 msgstr "無效的使用的 %<auto%>"
 
-#: tree-ssa-ccp.cc:4681 c-family/c-common.cc:5912
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
 #, gcc-internal-format
 msgid "%qs pointer is null"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4684 c-family/c-common.cc:5915
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "in a call to non-static member function %qD"
 msgstr "對非靜態成員函式 %qD 的使用無效"
 
-#: tree-ssa-ccp.cc:4690 c-family/c-common.cc:5921
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
 #, gcc-internal-format, gfc-internal-format
 msgid "argument %u null where non-null expected"
 msgstr ""
 
-#: tree-ssa-ccp.cc:4696
+#: tree-ssa-ccp.cc:4700
 #, fuzzy, gcc-internal-format
 msgid "in a call to built-in function %qD"
 msgstr "無效的引數到內建函式"
 
-#: tree-ssa-ccp.cc:4700 c-family/c-common.cc:5925
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
 #, fuzzy, gcc-internal-format
 msgid "in a call to function %qD declared %qs"
 msgstr "內聯函式 %q+D 宣告的 weak"
@@ -34056,7 +34056,7 @@ msgstr "%qE 未被初始化的"
 msgid "%qs may be used uninitialized"
 msgstr "%qD 也許會被使用 uninitialized 在中這個函式"
 
-#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8019
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
 #, fuzzy, gcc-internal-format
 msgid "%qD was declared here"
 msgstr "%qD 被宣告在此"
@@ -34286,7 +34286,7 @@ msgstr "向量作業將被展開 piecewise"
 msgid "vector shuffling operation will be expanded piecewise"
 msgstr "向量隨機播放作業將被展開 piecewise"
 
-#: tree-vect-loop.cc:5065
+#: tree-vect-loop.cc:5069
 #, gcc-internal-format
 msgid "vectorization did not happen for a simd loop"
 msgstr ""
@@ -34301,122 +34301,122 @@ msgstr ""
 msgid "side-effects element in no-side-effects CONSTRUCTOR"
 msgstr ""
 
-#: tree.cc:7341 m2/gm2-gcc/m2type.cc:215
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
 #, gcc-internal-format
 msgid "arrays of functions are not meaningful"
 msgstr "函式陣列是沒有意義的"
 
-#: tree.cc:7496
+#: tree.cc:7513
 #, gcc-internal-format
 msgid "function return type cannot be function"
 msgstr "函式不能回傳函式"
 
-#: tree.cc:8956 tree.cc:9041 tree.cc:9104
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: %s, have %s in %s, at %s:%d"
 msgstr "樹檢查：%s，得到 %s 在 %s，於 %s:%d"
 
-#: tree.cc:8993
+#: tree.cc:9032
 #, gcc-internal-format, gfc-internal-format
 msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
 msgstr "樹檢查：不需要 %s，得到 %s 在 %s，於 %s:%d"
 
-#: tree.cc:9006
+#: tree.cc:9045
 #, gcc-internal-format
 msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "樹檢查：需要類別 %qs，得到 %qs(%s) 在 %s，於 %s:%d"
 
-#: tree.cc:9055
+#: tree.cc:9094
 #, fuzzy, gcc-internal-format
 msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
 msgstr "樹檢查：並未預期類別 %qs，有 %qs (%s) 在中 %s，於 %s:%d"
 
-#: tree.cc:9068
+#: tree.cc:9107
 #, fuzzy, gcc-internal-format
 msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
 msgstr "樹檢查：預期的 ompclause %s(_C)，有 %s 在中 %s，於 %s:%d"
 
-#: tree.cc:9130
+#: tree.cc:9169
 #, fuzzy, gcc-internal-format
 msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
 msgstr "樹檢查：預期的樹該含有 %qs 結構，有 %qs 在中 %s，於 %s:%d"
 
-#: tree.cc:9144
+#: tree.cc:9183
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
 msgstr "樹檢查：存取的 elt %d 的 treevec 與 %d elts 在中 %s(_V)，於 %s:%d"
 
-#: tree.cc:9157
+#: tree.cc:9196
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
 msgstr "樹檢查：存取的 elt %d 的 treevec 與 %d elts 在中 %s(_V)，於 %s:%d"
 
-#: tree.cc:9170
+#: tree.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
 msgstr "樹檢查：存取的運算元 %d 的 %s 與 %d 運算元在中 %s，於 %s:%d"
 
-#: tree.cc:9183
+#: tree.cc:9222
 #, fuzzy, gcc-internal-format
 msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
 msgstr "樹檢查：存取的運算元 %d 的 ompclause %s 與 %d 運算元在中 %s(_C)，於 %s:%d"
 
-#: tree.cc:12437
+#: tree.cc:12476
 #, fuzzy, gcc-internal-format
 msgid "%qD is deprecated: %s"
 msgstr "%qE 被不宜用：%s"
 
-#: tree.cc:12440
+#: tree.cc:12479
 #, fuzzy, gcc-internal-format
 msgid "%qD is deprecated"
 msgstr "%qE 被不宜用"
 
-#: tree.cc:12463
+#: tree.cc:12502
 #, fuzzy, gcc-internal-format
 msgid "%qE is deprecated: %s"
 msgstr "%qE 被不宜用：%s"
 
-#: tree.cc:12466
+#: tree.cc:12505
 #, fuzzy, gcc-internal-format
 msgid "%qE is deprecated"
 msgstr "%qE 被不宜用"
 
-#: tree.cc:12472
+#: tree.cc:12511
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type is deprecated: %s"
 msgstr "型態被不宜用：%s"
 
-#: tree.cc:12475
+#: tree.cc:12514
 #, gcc-internal-format
 msgid "type is deprecated"
 msgstr "類型已過時"
 
-#: tree.cc:12517
+#: tree.cc:12556
 #, fuzzy, gcc-internal-format
 msgid "%qD is unavailable: %s"
 msgstr "%qD 並非變數"
 
-#: tree.cc:12519
+#: tree.cc:12558
 #, fuzzy, gcc-internal-format
 msgid "%qD is unavailable"
 msgstr "%qD 並非變數"
 
-#: tree.cc:12540
+#: tree.cc:12579
 #, fuzzy, gcc-internal-format
 msgid "%qE is unavailable: %s"
 msgstr "%qD 並非變數"
 
-#: tree.cc:12542
+#: tree.cc:12581
 #, fuzzy, gcc-internal-format
 msgid "%qE is unavailable"
 msgstr "%qD 並非變數"
 
-#: tree.cc:12547
+#: tree.cc:12586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "type is unavailable: %s"
 msgstr "開啟 %s 失敗：%s"
 
-#: tree.cc:12549
+#: tree.cc:12588
 #, fuzzy, gcc-internal-format
 msgid "type is unavailable"
 msgstr "%qD 並非變數"
@@ -34441,264 +34441,264 @@ msgstr "%qD 並非變數"
 #. - vector types may differ by TYPE_VECTOR_OPAQUE
 #.
 #. Convenience macro for matching individual fields.
-#: tree.cc:13477
+#: tree.cc:13516
 #, gcc-internal-format, gfc-internal-format
 msgid "type variant differs by %s"
 msgstr ""
 
-#: tree.cc:13522
+#: tree.cc:13561
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13524
+#: tree.cc:13563
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13526
+#: tree.cc:13565
 #, gcc-internal-format
 msgid "type%'s %<TYPE_SIZE_UNIT%>"
 msgstr ""
 
-#: tree.cc:13551
+#: tree.cc:13590
 #, gcc-internal-format
 msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
 msgstr ""
 
-#: tree.cc:13564
+#: tree.cc:13603
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_VFIELD%>"
 msgstr ""
 
-#: tree.cc:13601
+#: tree.cc:13640
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13603
+#: tree.cc:13642
 #, gcc-internal-format
 msgid "type variant%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13605
+#: tree.cc:13644
 #, gcc-internal-format
 msgid "type%'s %<TYPE_BINFO%>"
 msgstr ""
 
-#: tree.cc:13644
+#: tree.cc:13683
 #, gcc-internal-format
 msgid "type variant has different %<TYPE_FIELDS%>"
 msgstr ""
 
-#: tree.cc:13646
+#: tree.cc:13685
 #, fuzzy, gcc-internal-format
 msgid "first mismatch is field"
 msgstr "%s：時間戳記與圖檔案不匹配\n"
 
-#: tree.cc:13648
+#: tree.cc:13687
 #, gcc-internal-format
 msgid "and field"
 msgstr ""
 
-#: tree.cc:13665
+#: tree.cc:13704
 #, gcc-internal-format
 msgid "type variant has different %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13667 tree.cc:13678
+#: tree.cc:13706 tree.cc:13717
 #, gcc-internal-format
 msgid "type variant%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13669 tree.cc:13680
+#: tree.cc:13708 tree.cc:13719
 #, gcc-internal-format
 msgid "type%'s %<TREE_TYPE%>"
 msgstr ""
 
-#: tree.cc:13676
+#: tree.cc:13715
 #, fuzzy, gcc-internal-format
 msgid "type is not compatible with its variant"
 msgstr "%qD 不是相容與 %qD"
 
-#: tree.cc:14001
+#: tree.cc:14040
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qT is not a template type"
 msgid "type %s is not an opaque type"
 msgstr "%qT 不是一個範本類型"
 
-#: tree.cc:14007
+#: tree.cc:14046
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "type %s is not with opaque mode"
 msgstr "類型 %qT 不是 %qT 的直接基礎類別"
 
-#: tree.cc:14013
+#: tree.cc:14052
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_MODE%>"
 msgstr ""
 
-#: tree.cc:14021
+#: tree.cc:14060
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_SIZE%>"
 msgstr ""
 
-#: tree.cc:14027
+#: tree.cc:14066
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14033
+#: tree.cc:14072
 #, gcc-internal-format
 msgid "type %s differs by %<TYPE_USER_ALIGN%>"
 msgstr ""
 
-#: tree.cc:14063
+#: tree.cc:14102
 #, fuzzy, gcc-internal-format
 msgid "main variant is not defined"
 msgstr "環境變數 %qs 無法定義"
 
-#: tree.cc:14068
+#: tree.cc:14107
 #, gcc-internal-format
 msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14079
+#: tree.cc:14118
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
 msgstr ""
 
-#: tree.cc:14098
+#: tree.cc:14137
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14106
+#: tree.cc:14145
 #, gcc-internal-format
 msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
 msgstr ""
 
-#: tree.cc:14112
+#: tree.cc:14151
 #, gcc-internal-format
 msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
 msgstr ""
 
-#: tree.cc:14128
+#: tree.cc:14167
 #, gcc-internal-format
 msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
 msgstr ""
 
-#: tree.cc:14138
+#: tree.cc:14177
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
 msgstr ""
 
-#: tree.cc:14148
+#: tree.cc:14187
 #, gcc-internal-format
 msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
 msgstr ""
 
-#: tree.cc:14169
+#: tree.cc:14208
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
 msgstr ""
 
-#: tree.cc:14175
+#: tree.cc:14214
 #, gcc-internal-format
 msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
 msgstr ""
 
-#: tree.cc:14186
+#: tree.cc:14225
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14197
+#: tree.cc:14236
 #, gcc-internal-format
 msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
 msgstr ""
 
-#: tree.cc:14215
+#: tree.cc:14254
 #, gcc-internal-format
 msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14222
+#: tree.cc:14261
 #, gcc-internal-format
 msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
 msgstr ""
 
-#: tree.cc:14229
+#: tree.cc:14268
 #, gcc-internal-format
 msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14245
+#: tree.cc:14284
 #, gcc-internal-format
 msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
 msgstr ""
 
-#: tree.cc:14254
+#: tree.cc:14293
 #, gcc-internal-format
 msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
 msgstr ""
 
-#: tree.cc:14262
+#: tree.cc:14301
 #, gcc-internal-format
 msgid "enum value name is not %<IDENTIFIER_NODE%>"
 msgstr ""
 
-#: tree.cc:14272
+#: tree.cc:14311
 #, fuzzy, gcc-internal-format
 msgid "array %<TYPE_DOMAIN%> is not integer type"
 msgstr "大小的陣列 %qE 有 non-integer 型態"
 
-#: tree.cc:14281
+#: tree.cc:14320
 #, fuzzy, gcc-internal-format
 msgid "%<TYPE_FIELDS%> defined in incomplete type"
 msgstr "欄位 %qE 有不完整型態"
 
-#: tree.cc:14303
+#: tree.cc:14342
 #, gcc-internal-format
 msgid "wrong tree in %<TYPE_FIELDS%> list"
 msgstr ""
 
-#: tree.cc:14319
+#: tree.cc:14358
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
 msgstr ""
 
-#: tree.cc:14326
+#: tree.cc:14365
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
 msgstr ""
 
-#: tree.cc:14339
+#: tree.cc:14378
 #, gcc-internal-format
 msgid "wrong %<TYPE_CACHED_VALUES%> entry"
 msgstr ""
 
-#: tree.cc:14352
+#: tree.cc:14391
 #, gcc-internal-format
 msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14358
+#: tree.cc:14397
 #, gcc-internal-format
 msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
 msgstr ""
 
-#: tree.cc:14365
+#: tree.cc:14404
 #, gcc-internal-format
 msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
 msgstr ""
 
-#: tree.cc:14378
+#: tree.cc:14417
 #, gcc-internal-format
 msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
 msgstr ""
 
-#: tree.cc:14388
+#: tree.cc:14427
 #, gcc-internal-format
 msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
@@ -34925,7 +34925,7 @@ msgstr "別名定義不支援在中這個組態"
 msgid "visibility attribute not supported in this configuration; ignored"
 msgstr "可見性屬性在此配置下不受支援；已忽略"
 
-#: varasm.cc:8015
+#: varasm.cc:8017
 #, gcc-internal-format
 msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
 msgstr ""
@@ -35142,7 +35142,7 @@ msgstr "%qE 屬性忽略的因為 %qT 已經定義"
 msgid "%qE attribute ignored because %qD is not a local variable"
 msgstr "%qE 屬性忽略的因為 %qT 已經定義"
 
-#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4170
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
 #, gcc-internal-format
 msgid "%qE attribute have effect only on public objects"
 msgstr "%qE 屬性只能套用到公共物件上"
@@ -35330,7 +35330,7 @@ msgid "ignoring %qE attribute not set on a variable"
 msgstr "%qE 屬性沒有任何效果於單位本地函式"
 
 #: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
-#: config/loongarch/loongarch.cc:7956
+#: config/loongarch/loongarch.cc:7963
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for local variables"
 msgstr "%qE 屬性無法指定的用於區域變數"
@@ -35658,7 +35658,7 @@ msgstr "%qD 不是相容與 %qD"
 msgid "%qE argument is not a function"
 msgstr "cleanup 引數不是一個函式"
 
-#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6411
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
 #, fuzzy, gcc-internal-format
 msgid "deprecated message is not a string"
 msgstr "不宜用訊息並非字串"
@@ -36181,7 +36181,7 @@ msgstr "ISO C++不允許 %<alignof%> 套用到函數型式"
 msgid "ISO C does not permit %<_Alignof%> applied to a function type"
 msgstr "ISO C 不允許 %<Alignof%(_A)>套用到函數型式"
 
-#: c-family/c-common.cc:3965 cp/typeck.cc:2057
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
 #, gcc-internal-format
 msgid "invalid application of %qs to a void type"
 msgstr "%qs 不能用於 void 類型"
@@ -36313,17 +36313,17 @@ msgstr "只能為類別定義套用 %qE 屬性"
 msgid "%<fallthrough%> attribute specified with a parameter"
 msgstr "預設引數指定的用於 lambda 參數"
 
-#: c-family/c-common.cc:6307 c-family/c-common.cc:7229
-#: c-family/c-common.cc:7276 c-family/c-common.cc:7355
-#: c-family/c-common.cc:7438 c-family/c-common.cc:8081
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
 #: config/aarch64/aarch64-sve-builtins.cc:3026
 #: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
 #, gcc-internal-format
 msgid "too few arguments to function %qE"
 msgstr "提供給函式 %qE 的引數太少"
 
-#: c-family/c-common.cc:6312 c-family/c-common.cc:7282
-#: c-family/c-common.cc:7464 c-family/c-common.cc:8083
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
 #: config/aarch64/aarch64-sve-builtins.cc:3028
 #: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
 #, gcc-internal-format
@@ -36448,171 +36448,171 @@ msgstr "試圖取位元段結構成員 %qD 的位址"
 msgid "index %E denotes an offset greater than size of %qT"
 msgstr "索引 %E 指出偏移大於大小的 %qT"
 
-#: c-family/c-common.cc:7145
+#: c-family/c-common.cc:7150
 #, fuzzy, gcc-internal-format
 msgid "size of array is too large"
 msgstr "大小的陣列太大"
 
-#: c-family/c-common.cc:7259 c-family/c-common.cc:7397
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
 #, fuzzy, gcc-internal-format
 #| msgid "incompatible type for argument %d of %qE"
 msgid "operand type %qT is incompatible with argument %d of %qE"
 msgstr "引數 %d(屬於 %qE)類型不相容"
 
-#: c-family/c-common.cc:7293
+#: c-family/c-common.cc:7298
 #, fuzzy, gcc-internal-format
 #| msgid "passing argument %d of %qE makes pointer from integer without a cast"
 msgid "expecting argument of type pointer or of type integer for argument 1"
 msgstr "傳遞參數 %d (屬於 %qE)時將整數賦給指標，未作類型轉換"
 
-#: c-family/c-common.cc:7309
+#: c-family/c-common.cc:7314
 #, fuzzy, gcc-internal-format
 msgid "both arguments must be compatible"
 msgstr "左引數必須是切片"
 
-#: c-family/c-common.cc:7539
+#: c-family/c-common.cc:7544
 #, fuzzy, gcc-internal-format
 msgid "incorrect number of arguments to function %qE"
 msgstr "不正確引數數量到函式 %qE"
 
-#: c-family/c-common.cc:7553
+#: c-family/c-common.cc:7558
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a non-void pointer type"
 msgstr "引數 1 的 %qE 必須是 non-void 指標類型"
 
-#: c-family/c-common.cc:7560
+#: c-family/c-common.cc:7565
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a complete type"
 msgstr "引數 1 的 %qE 必須是指標到常數大小型態"
 
-#: c-family/c-common.cc:7569
+#: c-family/c-common.cc:7574
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a constant size type"
 msgstr "引數 1 的 %qE 必須是指標到常數大小型態"
 
-#: c-family/c-common.cc:7580
+#: c-family/c-common.cc:7585
 #, fuzzy, gcc-internal-format
 msgid "argument 1 of %qE must be a pointer to a nonzero size object"
 msgstr "引數 1 的 %qE 必須是指標到非零值大小物件"
 
-#: c-family/c-common.cc:7601
+#: c-family/c-common.cc:7606
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer type"
 msgstr "引數 %d 的 %qE 必須是指標類型"
 
-#: c-family/c-common.cc:7609
+#: c-family/c-common.cc:7614
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must be a pointer to a constant size type"
 msgstr "引數 1 的 %qE 必須是指標到常數大小型態"
 
-#: c-family/c-common.cc:7615
+#: c-family/c-common.cc:7620
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a function"
 msgstr "引數 %d 的 %qE 必須是指標類型"
 
-#: c-family/c-common.cc:7623
+#: c-family/c-common.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "size mismatch in argument %d of %qE"
 msgstr "大小不匹配在中引數 %d 的 %qE"
 
-#: c-family/c-common.cc:7636
+#: c-family/c-common.cc:7641
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<const%> type"
 msgstr "引數 1 的 %qE 必須是指標到常數大小型態"
 
-#: c-family/c-common.cc:7641
+#: c-family/c-common.cc:7646
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<const%> qualifier"
 msgstr "傳遞引數 %d 的 %qE 捨棄 %qv 限定元從指標目標類型"
 
-#: c-family/c-common.cc:7650
+#: c-family/c-common.cc:7655
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
 msgstr "引數 1 的 %qE 必須是指標到常數大小型態"
 
-#: c-family/c-common.cc:7655
+#: c-family/c-common.cc:7660
 #, fuzzy, gcc-internal-format
 msgid "argument %d of %qE discards %<volatile%> qualifier"
 msgstr "傳遞引數 %d 的 %qE 捨棄 %qv 限定元從指標目標類型"
 
-#: c-family/c-common.cc:7668
+#: c-family/c-common.cc:7673
 #, fuzzy, gcc-internal-format
 msgid "non-integer memory model argument %d of %qE"
 msgstr "non-integer 記憶體式樣引數 %d 的 %qE"
 
-#: c-family/c-common.cc:7681
+#: c-family/c-common.cc:7686
 #, fuzzy, gcc-internal-format
 msgid "invalid memory model argument %d of %qE"
 msgstr "無效的記憶體式樣引數 %d 的 %qE"
 
-#: c-family/c-common.cc:8315
+#: c-family/c-common.cc:8320
 #, gcc-internal-format
 msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
 msgstr ""
 
-#: c-family/c-common.cc:8969
+#: c-family/c-common.cc:8975
 #, fuzzy, gcc-internal-format
 msgid "index value is out of bound"
 msgstr "索引值是超出約束"
 
-#: c-family/c-common.cc:9011 c-family/c-common.cc:9060
-#: c-family/c-common.cc:9076
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
 #, fuzzy, gcc-internal-format
 msgid "conversion of scalar %qT to vector %qT involves truncation"
 msgstr "轉換的純量到向量牽連出截斷"
 
 #. Reject arguments that are built-in functions with
 #. no library fallback.
-#: c-family/c-common.cc:9164 d/intrinsics.cc:1459
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
 #: rust/backend/rust-tree.cc:3497
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE must be directly called"
 msgstr "內建函式 %qD 需一個引數只有"
 
-#: c-family/c-common.cc:9184
+#: c-family/c-common.cc:9194
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "size of array %qE is not a constant expression"
 msgstr "陣列 %qD 的大小不是一個整數常運算式"
 
-#: c-family/c-common.cc:9187
+#: c-family/c-common.cc:9197
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "size of array is not a constant expression"
 msgstr "陣列大小不是一個整數常運算式"
 
-#: c-family/c-common.cc:9191
+#: c-family/c-common.cc:9201
 #, fuzzy, gcc-internal-format
 msgid "size %qE of array %qE is negative"
 msgstr "大小的陣列 %qE 是負"
 
-#: c-family/c-common.cc:9194
+#: c-family/c-common.cc:9204
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is negative"
 msgid "size %qE of array is negative"
 msgstr "陣列大小為負數"
 
-#: c-family/c-common.cc:9199
+#: c-family/c-common.cc:9209
 #, gcc-internal-format
 msgid "size %qE of array %qE exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9202
+#: c-family/c-common.cc:9212
 #, gcc-internal-format
 msgid "size %qE of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9207
+#: c-family/c-common.cc:9217
 #, fuzzy, gcc-internal-format
 msgid "size of array %qE exceeds maximum object size %qE"
 msgstr "大小的陣列 %qE 是負"
 
-#: c-family/c-common.cc:9210
+#: c-family/c-common.cc:9220
 #, gcc-internal-format
 msgid "size of array exceeds maximum object size %qE"
 msgstr ""
 
-#: c-family/c-common.cc:9281
+#: c-family/c-common.cc:9291
 #, gcc-internal-format
 msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
 msgstr ""
@@ -37265,7 +37265,7 @@ msgstr "整數常數太大用於 %<unsigned long%> 型態"
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
 msgstr "整數常數太大用於 %<unsigned long%> 型態"
 
-#: c-family/c-lex.cc:1045 c/c-decl.cc:12698
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
 msgstr "%<__int128%>未被支援用於這個目標"
@@ -37345,7 +37345,7 @@ msgstr "不受支援的 non-standard 串接的字串實字"
 msgid "traditional C rejects string constant concatenation"
 msgstr "傳統 C 不接受字串常數粘貼"
 
-#: c-family/c-omp.cc:131 cp/pt.cc:19155
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
 #, gcc-internal-format
 msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
 msgstr ""
@@ -37400,7 +37400,7 @@ msgstr ""
 msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
 msgstr ""
 
-#: c-family/c-omp.cc:969 cp/semantics.cc:10925
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
 #, fuzzy, gcc-internal-format
 msgid "invalid type for iteration variable %qE"
 msgstr "無效的型態用於迭代變數 %qE"
@@ -37415,17 +37415,17 @@ msgstr "無效的型態用於迭代變數 %qE"
 msgid "%qE is not initialized"
 msgstr "%qE 未被初始化的"
 
-#: c-family/c-omp.cc:1011 cp/semantics.cc:10817
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
 #, fuzzy, gcc-internal-format
 msgid "missing controlling predicate"
 msgstr "缺少控制述詞"
 
-#: c-family/c-omp.cc:1117 cp/semantics.cc:10413
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
 #, fuzzy, gcc-internal-format
 msgid "invalid controlling predicate"
 msgstr "無效的控制述詞"
 
-#: c-family/c-omp.cc:1124 cp/semantics.cc:10823
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
 #, fuzzy, gcc-internal-format
 msgid "missing increment expression"
 msgstr "缺少遞增運算式"
@@ -37435,7 +37435,7 @@ msgstr "缺少遞增運算式"
 msgid "increment is not constant 1 or -1 for %<!=%> condition"
 msgstr ""
 
-#: c-family/c-omp.cc:1255 cp/semantics.cc:10530
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
 #, fuzzy, gcc-internal-format
 msgid "invalid increment expression"
 msgstr "無效的遞增運算式"
@@ -37523,7 +37523,7 @@ msgstr ""
 msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
 msgstr ""
 
-#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9517
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
 #, gcc-internal-format
 msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
 msgstr ""
@@ -37534,7 +37534,7 @@ msgstr ""
 msgid "%qD is not a function argument"
 msgstr "%qD 不是一個函式範本"
 
-#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8256
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, gcc-internal-format
 msgid "bit-field %qE in %qs clause"
 msgstr ""
@@ -38155,7 +38155,7 @@ msgid "wrong type argument to %s"
 msgstr "錯誤的型態引數到 %s"
 
 #: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
-#: cp/constexpr.cc:7370 m2/gm2-gcc/m2expr.cc:964
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
 #: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
 #, gcc-internal-format
 msgid "overflow in constant expression"
@@ -39101,35 +39101,35 @@ msgstr "比較介於 %qT 和 %qT"
 
 #: c-family/c-warn.cc:3832
 #, gcc-internal-format
-msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3836
+#: c-family/c-warn.cc:3839
 #, gcc-internal-format
-msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
 msgstr ""
 
-#: c-family/c-warn.cc:3896
+#: c-family/c-warn.cc:3901
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
 msgstr ""
 
-#: c-family/c-warn.cc:3906
+#: c-family/c-warn.cc:3911
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3913
+#: c-family/c-warn.cc:3918
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
 msgstr ""
 
-#: c-family/c-warn.cc:3924
+#: c-family/c-warn.cc:3929
 #, gcc-internal-format
 msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
 msgstr ""
 
-#: c-family/c-warn.cc:3941
+#: c-family/c-warn.cc:3946
 #, gcc-internal-format
 msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
 msgstr ""
@@ -39353,118 +39353,118 @@ msgstr "-mregparm=%d 不在 0 和 %d 之間"
 msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:765
+#: common/config/riscv/riscv-common.cc:674
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:774
+#: common/config/riscv/riscv-common.cc:683
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:782
+#: common/config/riscv/riscv-common.cc:691
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:790
+#: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:798
+#: common/config/riscv/riscv-common.cc:707
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1045
+#: common/config/riscv/riscv-common.cc:955
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: expect number after %<%dp%>"
 msgstr "%<-mips3d%> 需求 %<-mpaired-single%>"
 
-#: common/config/riscv/riscv-common.cc:1051
+#: common/config/riscv/riscv-common.cc:961
 #, gcc-internal-format
 msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1109
+#: common/config/riscv/riscv-common.cc:1019
 #, gcc-internal-format
 msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1133
+#: common/config/riscv/riscv-common.cc:1043
 #, gcc-internal-format
 msgid "%<-march=%s%>: rv%de is not a valid base ISA"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1145
+#: common/config/riscv/riscv-common.cc:1055
 #, gcc-internal-format
 msgid "version of %<g%> will be omitted, please specify version for individual extension"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1164
+#: common/config/riscv/riscv-common.cc:1074
 #, gcc-internal-format
 msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1187
+#: common/config/riscv/riscv-common.cc:1097
 #, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1318
+#: common/config/riscv/riscv-common.cc:1228
 #, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1323
+#: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
 msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1329
+#: common/config/riscv/riscv-common.cc:1239
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
 msgstr "不使用 SPE ABI 延伸"
 
-#: common/config/riscv/riscv-common.cc:1334
+#: common/config/riscv/riscv-common.cc:1244
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
 msgstr "-mcpu=%s 衝突與 -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1336
+#: common/config/riscv/riscv-common.cc:1246
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
 msgstr "-mcpu=%s 衝突與 -march=%s"
 
-#: common/config/riscv/riscv-common.cc:1345
+#: common/config/riscv/riscv-common.cc:1255
 #, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
 msgstr ""
 
-#: common/config/riscv/riscv-common.cc:1442
+#: common/config/riscv/riscv-common.cc:1352
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: name of %s must be more than 1 letter"
 msgstr "%<-march=%s%>不是相容與已選 ABI"
 
-#: common/config/riscv/riscv-common.cc:1454
+#: common/config/riscv/riscv-common.cc:1364
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "%<-march=%s%>不是相容與已選 ABI"
 
-#: common/config/riscv/riscv-common.cc:1516
+#: common/config/riscv/riscv-common.cc:1426
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
 msgstr "%<-march=%s%>不是相容與已選 ABI"
 
-#: common/config/riscv/riscv-common.cc:1871
+#: common/config/riscv/riscv-common.cc:1759
 #, fuzzy, gcc-internal-format
 #| msgid "type of %qE is unknown"
 msgid "%<-mcpu=%s%>: unknown CPU"
 msgstr "%qE 的類型不明"
 
-#: common/config/riscv/riscv-common.cc:1950
+#: common/config/riscv/riscv-common.cc:1838
 #, gcc-internal-format
 msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
 msgstr ""
@@ -39874,12 +39874,12 @@ msgstr "預期 %qT 但是引數是的型態 %qT"
 msgid "expected 64-bit address but argument 2 is %d-bit"
 msgstr "預期 %qT 但是引數是的型態 %qT"
 
-#: config/aarch64/aarch64-c.cc:341
+#: config/aarch64/aarch64-c.cc:347
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC aarch64%> requires a string parameter"
 msgstr "%<# pragma GCC optimize%>並非字串或數字"
 
-#: config/aarch64/aarch64-c.cc:357
+#: config/aarch64/aarch64-c.cc:363
 #, fuzzy, gcc-internal-format
 msgid "unknown %<#pragma GCC aarch64%> option %qs"
 msgstr "不明 # pragma GCC 輔助處理器 %E"
@@ -40490,7 +40490,7 @@ msgstr ""
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
-#: config/arm/arm.cc:7372 config/arm/arm.cc:29487
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 9.1"
 msgstr ""
@@ -40569,12 +40569,12 @@ msgid "unknown tuning option (%s)"
 msgstr "不明 spec 函式 %qs"
 
 #: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
-#: config/riscv/riscv.cc:9411
+#: config/riscv/riscv.cc:9369
 #, gcc-internal-format
 msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
 msgstr ""
 
-#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9420
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
 #, gcc-internal-format
 msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
 msgstr ""
@@ -40586,7 +40586,7 @@ msgid "specify a system register with a small string length"
 msgstr "指定指派暫存器的順序"
 
 #: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
-#: config/riscv/riscv.cc:9449 config/rs6000/rs6000.cc:4497
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid offset in %qs"
 msgstr "%qs 無效用於 %qs"
@@ -40768,9 +40768,9 @@ msgstr ""
 msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
 msgstr "屬性 (目標 (「%s」)) 為未知"
 
-#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33744
-#: config/riscv/riscv-target-attr.cc:325 config/rs6000/rs6000.cc:24684
-#: config/s390/s390.cc:16421
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument not a string"
 msgstr "屬性 %qE 引數不是字串"
@@ -40822,18 +40822,18 @@ msgid "virtual function multiversioning not supported"
 msgstr "不支援堆疊限制運算式"
 
 #: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
-#: config/rs6000/rs6000.cc:25374
+#: config/rs6000/rs6000.cc:25389
 #, fuzzy, gcc-internal-format
 msgid "multiversioning needs %<ifunc%> which is not supported on this target"
 msgstr "ifunc 未被支援在中這個組態"
 
 #: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
-#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12778
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
 msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
 msgstr ""
 
 #: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
-#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12773
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
 msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
 msgstr ""
 
@@ -40846,8 +40846,8 @@ msgstr ""
 msgid "lane %wd out of range %wd - %wd"
 msgstr "運算元號超出範圍"
 
-#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25115
-#: config/i386/i386.cc:25246
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported simdlen %wd"
@@ -40858,7 +40858,7 @@ msgstr "不支援的組合：%s"
 msgid "GCC does not currently support return type %qT for simd"
 msgstr "不受支援的引數類型到內建函式"
 
-#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25137
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
 msgid "unsupported return type %qT for simd"
 msgstr ""
@@ -40868,7 +40868,7 @@ msgstr ""
 msgid "GCC does not currently support argument type %qT for simd"
 msgstr "不受支援的引數類型到內建函式"
 
-#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25168
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, fuzzy, gcc-internal-format
 msgid "unsupported argument type %qT for simd"
 msgstr "不受支援的引數類型到內建函式"
@@ -40966,8 +40966,8 @@ msgstr "L%d 快取延遲不明，對 %s 來說"
 msgid "bad value %qs for %<-mmemory-latency%>"
 msgstr "-mmemory-latency 開關的值 %qs 錯誤"
 
-#: config/alpha/alpha.cc:6659 config/alpha/alpha.cc:6662 config/arc/arc.cc:6981
-#: config/arc/arc.cc:7255 config/s390/s390.cc:959
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
 #, gcc-internal-format
 msgid "bad builtin fcode"
 msgstr "錯誤的內建 fcode"
@@ -41092,18 +41092,18 @@ msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
 msgstr "%qs 屬性的引數不是「ilink1」或「ilink2」"
 
 #: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
-#: config/arm/arm.cc:7680 config/avr/avr.cc:11244 config/avr/avr.cc:11258
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
 #: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
 #: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
 #: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
-#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3711
-#: config/i386/i386-options.cc:3888 config/i386/i386-options.cc:3944
-#: config/i386/i386-options.cc:3995 config/i386/i386-options.cc:4032
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
 #: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
-#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5772
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
 #: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
-#: config/rs6000/rs6000.cc:20635 config/rx/rx.cc:2728 config/rx/rx.cc:2754
-#: config/s390/s390.cc:1174 config/s390/s390.cc:1261 config/sh/sh.cc:8429
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
 #: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
 #: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
 #: config/v850/v850.cc:2010 config/visium/visium.cc:724
@@ -41222,7 +41222,7 @@ msgid "argument of %qE attribute is missing"
 msgstr "引數的 %qE 屬性並非字串常數"
 
 #: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
-#: config/avr/avr.cc:11318
+#: config/avr/avr.cc:11347
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute allows only an integer constant argument"
 msgstr "%qE 屬性允許只有整數常數引數"
@@ -41243,23 +41243,23 @@ msgstr "%qE 屬性只有套用到函數型式"
 msgid "argument of %qE attribute ignored"
 msgstr "%qE 屬性被忽略"
 
-#: config/arc/arc.cc:11012 config/avr/avr.cc:11305 config/bfin/bfin.cc:4818
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
 #: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only applies to variables"
 msgstr "%qE 屬性只有套用到變數"
 
-#: config/arm/aarch-common.cc:553 config/i386/i386.cc:23866
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
 #, fuzzy, gcc-internal-format
 msgid "alternatives not allowed in %<asm%> flag output"
 msgstr "By-value 引數於 %L 未被允許在中這個語境"
 
-#: config/arm/aarch-common.cc:614 config/i386/i386.cc:23930
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
 #, fuzzy, gcc-internal-format
 msgid "unknown %<asm%> flag output %qs"
 msgstr "不明 IRA 演算法 %qs"
 
-#: config/arm/aarch-common.cc:624 config/i386/i386.cc:23959
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
 #, fuzzy, gcc-internal-format
 msgid "invalid type for %<asm%> flag output"
 msgstr "無效的型態用於製作函式"
@@ -41510,7 +41510,7 @@ msgstr "目的 CPU 不支援 THUMB 指令"
 msgid "target CPU does not support unaligned accesses"
 msgstr "目標 CPU 不支援 unaligned 存取"
 
-#: config/arm/arm.cc:3247 config/arm/arm.cc:33417
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
 #, fuzzy, gcc-internal-format
 msgid "This architecture does not support branch protection instructions"
 msgstr "%qs 架構不支援 branch-likely 指令"
@@ -41563,7 +41563,7 @@ msgstr "結構大小邊界只能是設定為 8 或 32"
 msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
 msgstr "RTP PIC 是不相容的與 -msingle-pic-base"
 
-#: config/arm/arm.cc:3725 config/arm/arm.cc:33758
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
 #, fuzzy, gcc-internal-format
 msgid "FDPIC mode is not supported in Thumb-1 mode"
 msgstr "編碼式樣 %qs 不支援在中 x32 模式"
@@ -41675,7 +41675,7 @@ msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
 msgstr ""
 
 #: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
-#: config/arm/arm.cc:29480
+#: config/arm/arm.cc:29541
 #, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 7.1"
 msgstr ""
@@ -41716,43 +41716,43 @@ msgstr "%qE 屬性沒有任何效果於單位本地函式"
 msgid "%qE attribute only applies to base type of a function pointer"
 msgstr "%qE 屬性只有套用到函數型式"
 
-#: config/arm/arm.cc:9737
+#: config/arm/arm.cc:9739
 #, gcc-internal-format
 msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
 msgstr ""
 
-#: config/arm/arm.cc:13588 config/arm/arm.cc:13590
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
 #, gcc-internal-format
 msgid "%s %wd out of range %wd - %wd"
 msgstr ""
 
-#: config/arm/arm.cc:26067
+#: config/arm/arm.cc:26076
 #, fuzzy, gcc-internal-format
 msgid "unable to compute real location of stacked parameter"
 msgstr "無法計算真實位置的重疊參數"
 
-#: config/arm/arm.cc:26730
+#: config/arm/arm.cc:26739
 #, fuzzy, gcc-internal-format
 #| msgid "Unexpected end of module"
 msgid "Unexpected thumb1 far jump"
 msgstr "非預期的模組結束"
 
-#: config/arm/arm.cc:26989
+#: config/arm/arm.cc:26998
 #, gcc-internal-format
 msgid "no low registers available for popping high registers"
 msgstr "高暫存器彈堆疊時沒有可用的低暫存器"
 
-#: config/arm/arm.cc:27242
+#: config/arm/arm.cc:27251
 #, fuzzy, gcc-internal-format
 msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
 msgstr "插斷服務常式無法編碼的在中姆指模式"
 
-#: config/arm/arm.cc:27488
+#: config/arm/arm.cc:27549
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> for Thumb-1"
 msgstr ""
 
-#: config/arm/arm.cc:33773
+#: config/arm/arm.cc:33834
 #, fuzzy, gcc-internal-format
 msgid "invalid fpu for target attribute or pragma %qs"
 msgstr "無效的向量型態用於屬性 %qs"
@@ -41760,22 +41760,22 @@ msgstr "無效的向量型態用於屬性 %qs"
 #. This doesn't really make sense until we support
 #. general dynamic selection of the architecture and all
 #. sub-features.
-#: config/arm/arm.cc:33781
+#: config/arm/arm.cc:33842
 #, gcc-internal-format
 msgid "auto fpu selection not currently permitted here"
 msgstr ""
 
-#: config/arm/arm.cc:33794
+#: config/arm/arm.cc:33855
 #, fuzzy, gcc-internal-format
 msgid "invalid architecture for target attribute or pragma %qs"
 msgstr "無效的向量型態用於屬性 %qs"
 
-#: config/arm/arm.cc:33808
+#: config/arm/arm.cc:33869
 #, fuzzy, gcc-internal-format
 msgid "unknown target attribute or pragma %qs"
 msgstr "目標屬性或 pragma 變更 SPE ABI"
 
-#: config/arm/arm.cc:34771
+#: config/arm/arm.cc:34832
 #, fuzzy, gcc-internal-format
 msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "程式碼模式 %qs 在 %s 位模式下不受支援"
@@ -41830,161 +41830,161 @@ msgstr ""
 msgid "unknown core architecture %qs specified with %qs"
 msgstr "%qs 沒有指定類別名"
 
-#: config/avr/avr.cc:1144 config/pru/pru.cc:601 config/visium/visium.cc:422
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
 #, fuzzy, gcc-internal-format
 msgid "%<-fpic%> is not supported"
 msgstr "-fpic 未被支援"
 
-#: config/avr/avr.cc:1146 config/pru/pru.cc:603 config/visium/visium.cc:424
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
 #, fuzzy, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
 msgstr "-fPIC 未被支援"
 
-#: config/avr/avr.cc:1148 config/pru/pru.cc:605
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
 #, fuzzy, gcc-internal-format
 msgid "%<-fpie%> is not supported"
 msgstr "-fpic 未被支援"
 
-#: config/avr/avr.cc:1150 config/pru/pru.cc:607
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
 #, fuzzy, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
 msgstr "-fPIC 未被支援"
 
-#: config/avr/avr.cc:1446 config/avr/avr.cc:1451 config/riscv/riscv.cc:9772
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
 msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "函式屬性 %qs，%qs 和 %qs 彼此互斥"
 
-#: config/avr/avr.cc:1472 config/riscv/riscv.cc:9784
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have arguments"
 msgstr "%qs 函式無法有引數"
 
-#: config/avr/avr.cc:1475 config/riscv/riscv.cc:9781
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot return a value"
 msgstr "%qs 函式無法回傳值"
 
-#: config/avr/avr.cc:1489
+#: config/avr/avr.cc:1495
 #, fuzzy, gcc-internal-format
 msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
 msgstr "%qs 似乎是 misspelled %s 處理常式"
 
-#: config/avr/avr.cc:1500
+#: config/avr/avr.cc:1506
 #, gcc-internal-format
 msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1507
+#: config/avr/avr.cc:1513
 #, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
 msgstr ""
 
-#: config/avr/avr.cc:1728
+#: config/avr/avr.cc:1734
 #, fuzzy, gcc-internal-format
 msgid "%<builtin_return_address%> contains only 2 bytes of address"
 msgstr "『builtin_return_address』含有只有 2 位元組的位址"
 
-#: config/avr/avr.cc:3716
+#: config/avr/avr.cc:3722
 #, fuzzy, gcc-internal-format
 msgid "pointer offset from symbol maybe incorrect"
 msgstr "指標偏移從符號也許不正確"
 
-#: config/avr/avr.cc:3855
+#: config/avr/avr.cc:3861
 #, fuzzy, gcc-internal-format
 msgid "accessing data memory with program memory address"
 msgstr "存取資料記憶體與程式記憶體位址"
 
-#: config/avr/avr.cc:3916
+#: config/avr/avr.cc:3922
 #, fuzzy, gcc-internal-format
 msgid "accessing program memory with data memory address"
 msgstr "存取程式記憶體與資料記憶體位址"
 
-#: config/avr/avr.cc:4258
+#: config/avr/avr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "fixed register %s used to pass parameter to function"
 msgstr "固定的暫存器 %s 用來回合參數到函式"
 
-#: config/avr/avr.cc:4518
+#: config/avr/avr.cc:4524
 #, fuzzy, gcc-internal-format
 msgid "writing to address space %qs not supported"
 msgstr "寫入位址空間 %qs 不支援"
 
-#: config/avr/avr.cc:11277
+#: config/avr/avr.cc:11306
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only applies to variables in static storage"
 msgstr "%qE 屬性只有套用到變數和函式"
 
-#: config/avr/avr.cc:11284
+#: config/avr/avr.cc:11313
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "%qE 屬性未被支援用於 R8C 目標"
 
-#: config/avr/avr.cc:11326
+#: config/avr/avr.cc:11355
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
 msgstr "%qE 屬性沒有任何效果"
 
-#: config/avr/avr.cc:11340
+#: config/avr/avr.cc:11369
 #, gcc-internal-format
 msgid "both %s and %qE attribute provide address"
 msgstr ""
 
-#: config/avr/avr.cc:11350
+#: config/avr/avr.cc:11379
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute on non-volatile variable"
 msgstr "%qE 屬性只有套用到變數"
 
-#: config/avr/avr.cc:11426
+#: config/avr/avr.cc:11455
 #, fuzzy, gcc-internal-format
 msgid "address spaces are not supported for reduced Tiny devices"
 msgstr "程式碼模式 %qs 在 %s 位模式下不受支援"
 
-#: config/avr/avr.cc:11433
+#: config/avr/avr.cc:11462
 #, fuzzy, gcc-internal-format
 msgid "address space %qs not supported for devices with flash size up to %d KiB"
 msgstr "程式碼模式 %qs 在 %s 位模式下不受支援"
 
-#: config/avr/avr.cc:11613
+#: config/avr/avr.cc:11642
 #, fuzzy, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %qT"
 msgstr "指標目標位址空間 %qs 必須是常數在中 %qT"
 
-#: config/avr/avr.cc:11616
+#: config/avr/avr.cc:11645
 #, fuzzy, gcc-internal-format
 msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr "指標目標位址空間 %qs 必須是常數在中 %s %q+D"
 
-#: config/avr/avr.cc:11637
+#: config/avr/avr.cc:11666
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object %qD may not be initialized"
 msgid "variable %q+D with attribute %qs must be located in static storage"
 msgstr "可變大小的物件 %qD 不能被初始化"
 
-#: config/avr/avr.cc:11688
+#: config/avr/avr.cc:11717
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
 msgstr "變數 %q+D 必須是常數以便是置放進入唯讀區段依靠 %qs"
 
-#: config/avr/avr.cc:11849
+#: config/avr/avr.cc:11878
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "static attribute %qs declaration for %q+D needs an address"
 msgstr "%q+D 的宣告隱藏了一個參數"
 
-#: config/avr/avr.cc:11938
+#: config/avr/avr.cc:11967
 #, fuzzy, gcc-internal-format
 #| msgid "only uninitialized variables can be placed in the .noinit section"
 msgid "only uninitialized variables can be placed in the %<.noinit%> section"
 msgstr "只有未初始化的變數才能放在 .noinit 區段中"
 
 #. This might happen with C++ if stuff needs constructing.
-#: config/avr/avr.cc:12015
+#: config/avr/avr.cc:12044
 #, fuzzy, gcc-internal-format
 msgid "variable %q+D with dynamic initialization put into program memory area"
 msgstr "uninitialized 變數 %q+D 置放進入程式記憶儲存區"
 
-#: config/avr/avr.cc:12026
+#: config/avr/avr.cc:12055
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %q+D put into program memory area"
 msgstr "uninitialized 變數 %q+D 置放進入程式記憶儲存區"
@@ -41993,44 +41993,44 @@ msgstr "uninitialized 變數 %q+D 置放進入程式記憶儲存區"
 #. hence deny initializers now.  The values of symbols with an
 #. address attribute are determined by the attribute, not by
 #. some initializer.
-#: config/avr/avr.cc:12091
+#: config/avr/avr.cc:12120
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object %qD may not be initialized"
 msgid "variable %q+D with attribute %qs must not have an initializer"
 msgstr "可變大小的物件 %qD 不能被初始化"
 
-#: config/avr/avr.cc:12144
+#: config/avr/avr.cc:12173
 #, fuzzy, gcc-internal-format
 msgid "%q+D has incompatible attributes %qs and %qs"
 msgstr "%qE 不相容的屬性忽略"
 
-#: config/avr/avr.cc:12207
+#: config/avr/avr.cc:12236
 #, fuzzy, gcc-internal-format
 #| msgid "MCU %qs supported for assembler only"
 msgid "architecture %qs supported for assembler only"
 msgstr "MCU %qs 只支援組譯器"
 
-#: config/avr/avr.cc:14767
+#: config/avr/avr.cc:14796
 #, fuzzy, gcc-internal-format
 msgid "conversion from address space %qs to address space %qs"
 msgstr "從 %s 轉換到 %s，位於 %L"
 
-#: config/avr/avr.cc:15848 config/avr/avr.cc:15861
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time integer constant"
 msgstr "%s 預期編譯時期整數常數"
 
-#: config/avr/avr.cc:15875
+#: config/avr/avr.cc:15904
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s expects a compile time long integer constant as first argument"
 msgstr "%s 預期編譯時期長整數常數做為先引數"
 
-#: config/avr/avr.cc:15903
+#: config/avr/avr.cc:15932
 #, gcc-internal-format, gfc-internal-format
 msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
 msgstr ""
 
-#: config/avr/avr.cc:15912
+#: config/avr/avr.cc:15941
 #, gcc-internal-format
 msgid "rounding result will always be 0"
 msgstr ""
@@ -42172,7 +42172,7 @@ msgid "indirect call in function, which are not supported by eBPF"
 msgstr "%<__int128%>未被支援由這個目標"
 
 #: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
-#: config/mips/mips.cc:17394 config/nios2/nios2.cc:3602
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
 #: config/riscv/riscv-builtins.cc:344
 #: config/riscv/riscv-vector-builtins.cc:4226
 #, fuzzy, gcc-internal-format
@@ -42817,8 +42817,8 @@ msgstr "下一個到最後一筆引數必須是 8-bit 即時"
 msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
 msgstr ""
 
-#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2251
-#: config/i386/i386-options.cc:2260
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "code model %s does not support PIC mode"
 msgstr "編碼式樣 %s 不支援 PIC 模式"
@@ -42886,261 +42886,261 @@ msgstr "%qs 沒有指定類別名"
 msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
 msgstr ""
 
-#: config/i386/i386-options.cc:2047
+#: config/i386/i386-options.cc:2069
 #, fuzzy, gcc-internal-format
 #| msgid "64-bit ABI not supported in ESA/390 mode"
 msgid "Intel MCU psABI isn%'t supported in %s mode"
 msgstr "64-bit ABI 在 ESA/390 模式下不受支援"
 
-#: config/i386/i386-options.cc:2101
+#: config/i386/i386-options.cc:2123
 #, fuzzy, gcc-internal-format
 msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
 msgstr "%stune =x86-64%s 被不宜用；使用 %stune=k8%s 或 %stune=generic%s 做為替代做為適當"
 
-#: config/i386/i386-options.cc:2103
+#: config/i386/i386-options.cc:2125
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
 msgstr "%stune =x86-64%s 被不宜用；使用 %stune=k8%s 或 %stune=generic%s 做為替代做為適當"
 
-#: config/i386/i386-options.cc:2109
+#: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2110
+#: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2115
+#: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2116
+#: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
 #. rep; movq isn't available in 32-bit code.
-#: config/i386/i386-options.cc:2143
+#: config/i386/i386-options.cc:2165
 #, fuzzy, gcc-internal-format
 msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8 位元組不支援用於 32-bit 編碼"
 
-#: config/i386/i386-options.cc:2148
+#: config/i386/i386-options.cc:2170
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "%<-mapxf%> is not supported for 32-bit code"
 msgstr "32 位元系統不支援 -mcmodel="
 
-#: config/i386/i386-options.cc:2150
+#: config/i386/i386-options.cc:2172
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
 msgstr "32 位元系統不支援 -mcmodel="
 
-#: config/i386/i386-options.cc:2153
+#: config/i386/i386-options.cc:2175
 #, fuzzy, gcc-internal-format
 msgid "%<-muintr%> not supported for 32-bit code"
 msgstr "-mstringop-strategy=rep_8 位元組不支援用於 32-bit 編碼"
 
-#: config/i386/i386-options.cc:2156
+#: config/i386/i386-options.cc:2178
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
 msgstr "32 位元系統不支援 -mcmodel="
 
-#: config/i386/i386-options.cc:2171
+#: config/i386/i386-options.cc:2193
 #, fuzzy, gcc-internal-format
 msgid "address mode %qs not supported in the %s bit mode"
 msgstr "程式碼模式 %qs 在 %s 位模式下不受支援"
 
-#: config/i386/i386-options.cc:2182
+#: config/i386/i386-options.cc:2204
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=ms%> not supported with X32 ABI"
 msgstr "-f%s 不受支援：已忽略"
 
-#: config/i386/i386-options.cc:2188
+#: config/i386/i386-options.cc:2210
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
 msgstr "transactional 記憶體未被支援與 non-call 異常"
 
-#: config/i386/i386-options.cc:2191
+#: config/i386/i386-options.cc:2213
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
 msgstr "transactional 記憶體未被支援與 non-call 異常"
 
-#: config/i386/i386-options.cc:2195
+#: config/i386/i386-options.cc:2217
 #, fuzzy, gcc-internal-format
 msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
 msgstr "-fdirectives-only 是不相容的與 -traditional"
 
-#: config/i386/i386-options.cc:2201
+#: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2221 config/i386/i386-options.cc:2230
-#: config/i386/i386-options.cc:2242 config/i386/i386-options.cc:2253
-#: config/i386/i386-options.cc:2264
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
 #, gcc-internal-format
 msgid "code model %qs not supported in the %s bit mode"
 msgstr "程式碼模式 %qs 在 %s 位模式下不受支援"
 
-#: config/i386/i386-options.cc:2233 config/i386/i386-options.cc:2245
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
 #, fuzzy, gcc-internal-format
 msgid "code model %qs not supported in x32 mode"
 msgstr "編碼式樣 %qs 不支援在中 x32 模式"
 
-#: config/i386/i386-options.cc:2288
+#: config/i386/i386-options.cc:2310
 #, fuzzy, gcc-internal-format
 msgid "%<-masm=intel%> not supported in this configuration"
 msgstr "-masm=intel 不支援在中這個組態"
 
-#: config/i386/i386-options.cc:2293
+#: config/i386/i386-options.cc:2315
 #, gcc-internal-format, gfc-internal-format
 msgid "%i-bit mode not compiled in"
 msgstr "未編譯入對 %i 位模式的支援"
 
-#: config/i386/i386-options.cc:2305
+#: config/i386/i386-options.cc:2327
 #, fuzzy, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
 msgstr "通用 CPU 可以被使用只有用於 %stune=%s %s"
 
-#: config/i386/i386-options.cc:2307
+#: config/i386/i386-options.cc:2329
 #, fuzzy, gcc-internal-format
 msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "通用 CPU 可以被使用只有用於 %stune=%s %s"
 
-#: config/i386/i386-options.cc:2314
+#: config/i386/i386-options.cc:2336
 #, fuzzy, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
 msgstr "通用 CPU 可以被使用只有用於 %stune=%s %s"
 
-#: config/i386/i386-options.cc:2316
+#: config/i386/i386-options.cc:2338
 #, fuzzy, gcc-internal-format
 msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
 msgstr "通用 CPU 可以被使用只有用於 %stune=%s %s"
 
-#: config/i386/i386-options.cc:2324 config/i386/i386-options.cc:2477
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
 #, gcc-internal-format
 msgid "CPU you selected does not support x86-64 instruction set"
 msgstr "您選擇的 CPU 不支援 x86-64 指令集"
 
-#: config/i386/i386-options.cc:2332
+#: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2333
+#: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2338
+#: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2339
+#: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
 msgstr ""
 
-#: config/i386/i386-options.cc:2416
+#: config/i386/i386-options.cc:2438
 #, fuzzy, gcc-internal-format
 #| msgid "bad value (%s) for -march= switch"
 msgid "bad value %qs for %<-march=%> switch"
 msgstr "-march= 所帶參數(%s)不正確"
 
-#: config/i386/i386-options.cc:2417
+#: config/i386/i386-options.cc:2439
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<target(\"arch=\")%> attribute"
 msgstr "不當的值 (%s) 用於 %sarch=%s %s"
 
-#: config/i386/i386-options.cc:2439
+#: config/i386/i386-options.cc:2461
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
 msgstr "有效引數到 %qs 是：%s"
 
-#: config/i386/i386-options.cc:2441
+#: config/i386/i386-options.cc:2463
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2446
+#: config/i386/i386-options.cc:2468
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-march=%> switch are: %s"
 msgstr "有效引數到 %qs 是：%s"
 
-#: config/i386/i386-options.cc:2447
+#: config/i386/i386-options.cc:2469
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
 msgstr "有效引數到 %qs 是：%s"
 
-#: config/i386/i386-options.cc:2496
+#: config/i386/i386-options.cc:2518
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<-mtune=%> switch"
 msgstr "不當的值 %qs 用於 -mtune 切換"
 
-#: config/i386/i386-options.cc:2497
+#: config/i386/i386-options.cc:2519
 #, fuzzy, gcc-internal-format
 msgid "bad value %qs for %<target(\"tune=\")%> attribute"
 msgstr "不當的值 (%s) 用於 %stune=%s %s"
 
-#: config/i386/i386-options.cc:2518
+#: config/i386/i386-options.cc:2540
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
 msgstr "有效引數到 %qs 是：%s"
 
-#: config/i386/i386-options.cc:2520
+#: config/i386/i386-options.cc:2542
 #, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
 msgstr ""
 
-#: config/i386/i386-options.cc:2525
+#: config/i386/i386-options.cc:2547
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<-mtune=%> switch are: %s"
 msgstr "有效引數到 %qs 是：%s"
 
-#: config/i386/i386-options.cc:2526
+#: config/i386/i386-options.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
 msgstr "有效引數到 %qs 是：%s"
 
-#: config/i386/i386-options.cc:2554
+#: config/i386/i386-options.cc:2578
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm%> is ignored in 64-bit mode"
 msgstr "-mregparm 被忽略在中 64-bit 模式"
 
-#: config/i386/i386-options.cc:2556
+#: config/i386/i386-options.cc:2580
 #, fuzzy, gcc-internal-format
 msgid "%<-mregparm%> is ignored for Intel MCU psABI"
 msgstr "-mregparm 被忽略在中 64-bit 模式"
 
-#: config/i386/i386-options.cc:2559
+#: config/i386/i386-options.cc:2583
 #, fuzzy, gcc-internal-format
 #| msgid "-mregparm=%d is not between 0 and %d"
 msgid "%<-mregparm=%d%> is not between 0 and %d"
 msgstr "-mregparm=%d 不在 0 和 %d 之間"
 
-#: config/i386/i386-options.cc:2582
+#: config/i386/i386-options.cc:2609
 #, fuzzy, gcc-internal-format
 msgid "%<-m96bit-long-double%> is not compatible with this target"
 msgstr "%<-march=%s%>不是相容與已選 ABI"
 
-#: config/i386/i386-options.cc:2587
+#: config/i386/i386-options.cc:2614
 #, fuzzy, gcc-internal-format
 msgid "%<-mrtd%> is ignored in 64bit mode"
 msgstr "%srtd%s 被忽略在中 64 位元模式"
 
-#: config/i386/i386-options.cc:2588
+#: config/i386/i386-options.cc:2615
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
 msgstr "%srtd%s 被忽略在中 64 位元模式"
 
-#: config/i386/i386-options.cc:2681
+#: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
 msgstr ""
@@ -43148,295 +43148,295 @@ msgstr ""
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
 #. Disable EVEX512 bit for this.
-#: config/i386/i386-options.cc:2695
+#: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2702 config/i386/i386-options.cc:2708
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
 msgstr ""
 
-#: config/i386/i386-options.cc:2716
+#: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
 msgstr ""
 
-#: config/i386/i386-options.cc:2726
+#: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:2781
+#: config/i386/i386-options.cc:2802
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
 msgstr "-mpreferred-stack-boundary 未被支援用於這個目標"
 
-#: config/i386/i386-options.cc:2784
+#: config/i386/i386-options.cc:2805
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d 未被介於 %d 和 %d"
 
-#: config/i386/i386-options.cc:2807
+#: config/i386/i386-options.cc:2828
 #, fuzzy, gcc-internal-format
 msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
 msgstr "-mincoming-stack-boundary=%d 未被介於 %d 和 12"
 
-#: config/i386/i386-options.cc:2820
+#: config/i386/i386-options.cc:2841
 #, fuzzy, gcc-internal-format
 msgid "%<-mnop-mcount%> is not compatible with this target"
 msgstr "%<-march=%s%>不是相容與已選 ABI"
 
-#: config/i386/i386-options.cc:2823
+#: config/i386/i386-options.cc:2844
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
 msgstr "模組間最佳化淍未為 C++ 實作"
 
-#: config/i386/i386-options.cc:2829
+#: config/i386/i386-options.cc:2850
 #, fuzzy, gcc-internal-format
 msgid "%<-msseregparm%> used without SSE enabled"
 msgstr "%ssseregparm%s 使用的而無需 SSE 已啟用"
 
-#: config/i386/i386-options.cc:2830
+#: config/i386/i386-options.cc:2851
 #, fuzzy, gcc-internal-format
 msgid "%<target(\"sseregparm\")%> used without SSE enabled"
 msgstr "%ssseregparm%s 使用的而無需 SSE 已啟用"
 
-#: config/i386/i386-options.cc:2840
+#: config/i386/i386-options.cc:2861
 #, gcc-internal-format
 msgid "SSE instruction set disabled, using 387 arithmetics"
 msgstr "SSE 指令集已停用，使用 387 指令"
 
-#: config/i386/i386-options.cc:2847
+#: config/i386/i386-options.cc:2868
 #, gcc-internal-format
 msgid "387 instruction set disabled, using SSE arithmetics"
 msgstr "387 指令集已停用，使用 SSE 指令"
 
-#: config/i386/i386-options.cc:2897
+#: config/i386/i386-options.cc:2918
 #, fuzzy, gcc-internal-format
 msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
 msgstr "堆疊試探需求 %saccumulate-outgoing-args%s 用於 correctness"
 
-#: config/i386/i386-options.cc:2899
+#: config/i386/i386-options.cc:2920
 #, fuzzy, gcc-internal-format
 msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
 msgstr "堆疊試探需求 %saccumulate-outgoing-args%s 用於 correctness"
 
-#: config/i386/i386-options.cc:2913
+#: config/i386/i386-options.cc:2934
 #, fuzzy, gcc-internal-format
 msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
 msgstr "堆疊試探需求 %saccumulate-outgoing-args%s 用於 correctness"
 
-#: config/i386/i386-options.cc:2915
+#: config/i386/i386-options.cc:2936
 #, fuzzy, gcc-internal-format
 msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
 msgstr "堆疊試探需求 %saccumulate-outgoing-args%s 用於 correctness"
 
-#: config/i386/i386-options.cc:2975
+#: config/i386/i386-options.cc:2996
 #, fuzzy, gcc-internal-format
 msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
 msgstr "-mfentry isn%'t 支援的用於 32-bit 在中組合與 -fpic"
 
-#: config/i386/i386-options.cc:2978
+#: config/i386/i386-options.cc:2999
 #, fuzzy, gcc-internal-format
 msgid "%<-mno-fentry%> isn%'t compatible with SEH"
 msgstr "-mno-fentry isn%'t 相容與 SEH"
 
-#: config/i386/i386-options.cc:2982
+#: config/i386/i386-options.cc:3003
 #, gcc-internal-format
 msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
 msgstr ""
 
-#: config/i386/i386-options.cc:3104 config/loongarch/loongarch-opts.cc:898
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
 #, fuzzy, gcc-internal-format
 msgid "unknown option for %<-mrecip=%s%>"
 msgstr "不明選項用於 -mrecip=%s"
 
-#: config/i386/i386-options.cc:3163
+#: config/i386/i386-options.cc:3184
 #, gcc-internal-format
 msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3168
+#: config/i386/i386-options.cc:3189
 #, gcc-internal-format
 msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3196
+#: config/i386/i386-options.cc:3217
 #, gcc-internal-format
 msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
 msgstr ""
 
-#: config/i386/i386-options.cc:3250
+#: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
 msgstr ""
 
-#: config/i386/i386-options.cc:3259
+#: config/i386/i386-options.cc:3280
 #, fuzzy, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
 msgstr "%<-march=%s%>不是相容與已選 ABI"
 
-#: config/i386/i386-options.cc:3426
+#: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
 #| msgid "stdcall and cdecl attributes are not compatible"
 msgid "interrupt and naked attributes are not compatible"
 msgstr "stdcall 和 cdecl 屬性互不相容"
 
-#: config/i386/i386-options.cc:3430 config/i386/i386-options.cc:3462
-#: config/i386/i386-options.cc:4006 config/i386/i386-options.cc:4016
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
 #, fuzzy, gcc-internal-format
 msgid "%qs and %qs attributes are not compatible"
 msgstr "ms_abi 和 sysv_abi 屬性不是相容"
 
-#: config/i386/i386-options.cc:3447
+#: config/i386/i386-options.cc:3468
 #, gcc-internal-format
 msgid "only DWARF debug format is supported for interrupt service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3508
+#: config/i386/i386-options.cc:3529
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s 與 -mcall-%s 互不相容"
 
-#: config/i386/i386-options.cc:3518
+#: config/i386/i386-options.cc:3539
 #, gcc-internal-format
 msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3553
+#: config/i386/i386-options.cc:3574
 #, fuzzy, gcc-internal-format
 #| msgid "-msdata=%s and -mcall-%s are incompatible"
 msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
 msgstr "-msdata=%s 與 -mcall-%s 互不相容"
 
-#: config/i386/i386-options.cc:3563
+#: config/i386/i386-options.cc:3584
 #, gcc-internal-format
 msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
 msgstr ""
 
-#: config/i386/i386-options.cc:3671
+#: config/i386/i386-options.cc:3692
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an exception service routine"
 msgstr ""
 
-#: config/i386/i386-options.cc:3673
+#: config/i386/i386-options.cc:3694
 #, fuzzy, gcc-internal-format
 msgid "%s instructions aren%'t allowed in an interrupt service routine"
 msgstr "2 位元組 cop 指令未被允許在中 64-bit VLIW 模式"
 
-#: config/i386/i386-options.cc:3677
+#: config/i386/i386-options.cc:3698
 #, gcc-internal-format
 msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
 msgstr ""
 
-#: config/i386/i386-options.cc:3724 config/i386/i386-options.cc:3775
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
 #, gcc-internal-format
 msgid "fastcall and regparm attributes are not compatible"
 msgstr "fastcall 和 regparm 屬性互不相容"
 
-#: config/i386/i386-options.cc:3729
+#: config/i386/i386-options.cc:3750
 #, fuzzy, gcc-internal-format
 msgid "regparam and thiscall attributes are not compatible"
 msgstr "regparam 和 thiscall 屬性不是相容"
 
-#: config/i386/i386-options.cc:3736 config/i386/i386-options.cc:3964
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute requires an integer constant argument"
 msgstr "%qE 屬性需求整數常數引數"
 
-#: config/i386/i386-options.cc:3742
+#: config/i386/i386-options.cc:3763
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute larger than %d"
 msgstr "引數到 %qE 屬性大於 %d"
 
-#: config/i386/i386-options.cc:3767 config/i386/i386-options.cc:3810
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
 #, gcc-internal-format
 msgid "fastcall and cdecl attributes are not compatible"
 msgstr "fastcall 和 cdecl 屬性互不相容"
 
-#: config/i386/i386-options.cc:3771
+#: config/i386/i386-options.cc:3792
 #, gcc-internal-format
 msgid "fastcall and stdcall attributes are not compatible"
 msgstr "fastcall 和 stdcall 屬性互不相容"
 
-#: config/i386/i386-options.cc:3779 config/i386/i386-options.cc:3828
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
 #, fuzzy, gcc-internal-format
 msgid "fastcall and thiscall attributes are not compatible"
 msgstr "fastcall 和 thiscall 屬性不是相容"
 
-#: config/i386/i386-options.cc:3789 config/i386/i386-options.cc:3806
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
 #, gcc-internal-format
 msgid "stdcall and cdecl attributes are not compatible"
 msgstr "stdcall 和 cdecl 屬性互不相容"
 
-#: config/i386/i386-options.cc:3793
+#: config/i386/i386-options.cc:3814
 #, gcc-internal-format
 msgid "stdcall and fastcall attributes are not compatible"
 msgstr "stdcall 和 fastcall 屬性互不相容"
 
-#: config/i386/i386-options.cc:3797 config/i386/i386-options.cc:3824
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
 #, fuzzy, gcc-internal-format
 msgid "stdcall and thiscall attributes are not compatible"
 msgstr "stdcall 和 thiscall 屬性不是相容"
 
-#: config/i386/i386-options.cc:3814 config/i386/i386-options.cc:3832
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
 #, fuzzy, gcc-internal-format
 msgid "cdecl and thiscall attributes are not compatible"
 msgstr "cdecl 和 thiscall 屬性不是相容"
 
-#: config/i386/i386-options.cc:3820
+#: config/i386/i386-options.cc:3841
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute is used for non-class method"
 msgstr "%qE 屬性被用於無 class-method"
 
-#: config/i386/i386-options.cc:3924 config/rs6000/rs6000.cc:20747
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
 #, fuzzy, gcc-internal-format
 msgid "%qE incompatible attribute ignored"
 msgstr "%qE 不相容的屬性忽略"
 
-#: config/i386/i386-options.cc:3951
+#: config/i386/i386-options.cc:3972
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute only available for 32-bit"
 msgstr "%qE 屬性只有可見於 32-bit"
 
-#: config/i386/i386-options.cc:3972
+#: config/i386/i386-options.cc:3993
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is neither zero, nor one"
 msgstr "引數到 %qE 屬性是 neither 零，nor 一個"
 
-#: config/i386/i386-options.cc:4043 config/i386/i386-options.cc:4065
-#: config/ia64/ia64.cc:822 config/s390/s390.cc:1271
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute requires a string constant argument"
 msgstr "%qE 屬性需要字串常數引數"
 
-#: config/i386/i386-options.cc:4053 config/i386/i386-options.cc:4075
-#: config/s390/s390.cc:1300
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
 msgstr "引數的 %qE 屬性並非字串常數"
 
-#: config/i386/i386-options.cc:4107
+#: config/i386/i386-options.cc:4128
 #, fuzzy, gcc-internal-format
 #| msgid "dereferenced pointers should have a name or a type tag"
 msgid "interrupt service routine should have a pointer as the first argument"
 msgstr "提領的指標應具有一個名稱或類型標記"
 
-#: config/i386/i386-options.cc:4114
+#: config/i386/i386-options.cc:4135
 #, fuzzy, gcc-internal-format
 msgid "interrupt service routine should have %qs as the second argument"
 msgstr "插斷函式必須沒有任何引數"
 
-#: config/i386/i386-options.cc:4125
+#: config/i386/i386-options.cc:4146
 #, gcc-internal-format
 msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
 msgstr ""
 
-#: config/i386/i386-options.cc:4128
+#: config/i386/i386-options.cc:4149
 #, fuzzy, gcc-internal-format
 msgid "interrupt service routine must return %<void%>"
 msgstr "插斷服務常式無法編碼的在中姆指模式"
@@ -43634,49 +43634,49 @@ msgstr "擴充的暫存器不支援的運算元大小"
 msgid "non-integer operand used with operand code %<z%>"
 msgstr "non-integer 運算元使用的與運算元編碼『%c』"
 
-#: config/i386/i386.cc:17996
+#: config/i386/i386.cc:17985
 #, gcc-internal-format
 msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
 msgstr ""
 
-#: config/i386/i386.cc:22734
+#: config/i386/i386.cc:22766
 #, fuzzy
 msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr "mangling 的 %<va_list%> 已變更在中 GCC 4.4"
 
-#: config/i386/i386.cc:22815
+#: config/i386/i386.cc:22847
 #, fuzzy, gcc-internal-format
 #| msgid "no low registers available for popping high registers"
 msgid "no register available for profiling %<-mcmodel=large%s%>"
 msgstr "高暫存器彈堆疊時沒有可用的低暫存器"
 
-#: config/i386/i386.cc:22911
+#: config/i386/i386.cc:22943
 #, fuzzy, gcc-internal-format
 #| msgid "-mcmodel= is not supported on 32 bit systems"
 msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "32 位元系統不支援 -mcmodel="
 
-#: config/i386/i386.cc:23624
+#: config/i386/i386.cc:23802
 #, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
 msgstr ""
 
-#: config/i386/i386.cc:25074
+#: config/i386/i386.cc:25252
 #, fuzzy, gcc-internal-format
 msgid "unknown architecture specific memory model"
 msgstr "不明 TLS 式樣 %qs"
 
-#: config/i386/i386.cc:25081
+#: config/i386/i386.cc:25259
 #, gcc-internal-format
 msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25088
+#: config/i386/i386.cc:25266
 #, gcc-internal-format
 msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
 msgstr ""
 
-#: config/i386/i386.cc:25775
+#: config/i386/i386.cc:25953
 #, fuzzy, gcc-internal-format
 msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
 msgstr "-fdirectives-only 是不相容的與 -traditional"
@@ -43697,8 +43697,8 @@ msgstr "定義的靜態資料成員 %q+D 的 dllimport%'d 類別"
 msgid "malformed %<#pragma builtin%>"
 msgstr "#pragma builtin 格式錯誤"
 
-#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7974
-#: config/loongarch/loongarch.cc:7984
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
 #, fuzzy, gcc-internal-format
 msgid "invalid argument of %qE attribute"
 msgstr "無效的引數的 %qE 屬性"
@@ -43757,12 +43757,12 @@ msgstr "PRINT_OPERAND：不明的標點「%c」"
 msgid "%<PRINT_OPERAND%> null pointer"
 msgstr "PRINT_OPERAND 空指標"
 
-#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17388
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "argument %d to the built-in must be a constant in range %d to %d"
 msgstr "引數 %d 的 %qE 必須是在中範圍 %d...%d"
 
-#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17508
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
 #, fuzzy, gcc-internal-format
 #| msgid "failed to reclaim unneeded function"
 msgid "failed to expand built-in function"
@@ -43891,17 +43891,17 @@ msgstr "%qD 不是相容與 %qD"
 msgid "%qs cannot be used for compiling a shared library"
 msgstr "%<constexpr%> 無法用於類型宣告"
 
-#: config/loongarch/loongarch.cc:7946
+#: config/loongarch/loongarch.cc:7953
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for thread-local variables"
 msgstr "%qE 屬性無法指定的用於區域變數"
 
-#: config/loongarch/loongarch.cc:7964
+#: config/loongarch/loongarch.cc:7971
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute cannot be specified for register variables"
 msgstr "%qE 屬性無法指定的用於區域變數"
 
-#: config/loongarch/loongarch.cc:7992
+#: config/loongarch/loongarch.cc:7999
 #, fuzzy, gcc-internal-format
 #| msgid "Duplicate %s attribute at %L"
 msgid "multiple %qE attribute"
@@ -44007,12 +44007,12 @@ msgstr "多重插斷屬性不允許"
 msgid "%<interrupt_thread%> is available only on fido"
 msgstr "interruptthread 是可用只有於 fido(_T)"
 
-#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1749
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
 #, gcc-internal-format
 msgid "stack limit expression is not supported"
 msgstr "不支援堆疊限制運算式"
 
-#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17177
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
 #, fuzzy, gcc-internal-format
 #| msgid "-fstack-protector not supported for this target"
 msgid "%<-fexcess-precision=16%> is not supported on this target"
@@ -44054,7 +44054,7 @@ msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
 msgstr "-mxl-multiply-high 需求 -mno-xl-soft-mul"
 
 #: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
-#: config/riscv/riscv.cc:5800
+#: config/riscv/riscv.cc:5812
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute requires a string argument"
 msgstr "%qE 屬性需要字串常數引數"
@@ -44094,132 +44094,132 @@ msgstr ""
 msgid "argument to %qE attribute is not intstack"
 msgstr "引數的 %qE 屬性並非字串常數"
 
-#: config/mips/mips.cc:6223
+#: config/mips/mips.cc:6232
 msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6668
+#: config/mips/mips.cc:6677
 msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:6692
+#: config/mips/mips.cc:6701
 msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
 msgstr ""
 
-#: config/mips/mips.cc:8039
+#: config/mips/mips.cc:8048
 #, gcc-internal-format
 msgid "cannot handle inconsistent calls to %qs"
 msgstr "無法處理對 %qs 不一致的呼叫"
 
-#: config/mips/mips.cc:11295
+#: config/mips/mips.cc:11304
 #, fuzzy, gcc-internal-format
 msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
 msgstr "%<interrupt%> 屬性需要 MIPS32r2 處理器"
 
-#: config/mips/mips.cc:11297
+#: config/mips/mips.cc:11306
 #, fuzzy, gcc-internal-format
 msgid "interrupt handlers cannot be MIPS16 functions"
 msgstr "中斷處理程式無法 MIPS16 函式"
 
-#: config/mips/mips.cc:12301
+#: config/mips/mips.cc:12310
 #, gcc-internal-format
 msgid "%<-fstack-check=specific%> not implemented for MIPS16"
 msgstr ""
 
-#: config/mips/mips.cc:17640
+#: config/mips/mips.cc:17649
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE not supported for MIPS16"
 msgstr "內建函式 %qE 不支援用於 MIPS16"
 
-#: config/mips/mips.cc:18248
+#: config/mips/mips.cc:18257
 #, fuzzy, gcc-internal-format
 msgid "%qs does not support MIPS16 code"
 msgstr "%qs 不支援 MIPS16 編碼"
 
-#: config/mips/mips.cc:20061
+#: config/mips/mips.cc:20070
 #, fuzzy, gcc-internal-format
 msgid "MIPS16 PIC for ABIs other than o32 and o64"
 msgstr "MIPS16 PIC 用於 ABIs 不同於 o32 和 o64"
 
-#: config/mips/mips.cc:20064
+#: config/mips/mips.cc:20073
 #, fuzzy, gcc-internal-format
 msgid "MIPS16 %<-mxgot%> code"
 msgstr "MIPS16 -mxgot 編碼"
 
-#: config/mips/mips.cc:20067
+#: config/mips/mips.cc:20076
 #, fuzzy, gcc-internal-format
 msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
 msgstr "hard-float MIPS16 編碼用於 ABIs 不同於 o32 和 o64"
 
-#: config/mips/mips.cc:20070
+#: config/mips/mips.cc:20079
 #, fuzzy, gcc-internal-format
 msgid "MSA MIPS16 code"
 msgstr "產生 MIPS16 編碼"
 
-#: config/mips/mips.cc:20073
+#: config/mips/mips.cc:20082
 #, fuzzy, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> 需要 %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20264 config/mips/mips.cc:20269
-#: config/mips/mips.cc:20359 config/mips/mips.cc:20361
-#: config/mips/mips.cc:20391 config/mips/mips.cc:20401
-#: config/mips/mips.cc:20507 config/mips/mips.cc:20531
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
 #, gcc-internal-format, gfc-internal-format
 msgid "unsupported combination: %s"
 msgstr "不支援的組合：%s"
 
-#: config/mips/mips.cc:20304
+#: config/mips/mips.cc:20313
 #, fuzzy, gcc-internal-format
 msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
 msgstr "%<-%s%> 衝突與其他架構選項，該項指定 %s 處理器"
 
-#: config/mips/mips.cc:20314
+#: config/mips/mips.cc:20323
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%> is not compatible with the selected ABI"
 msgstr "%<-march=%s%>不是相容與已選 ABI"
 
-#: config/mips/mips.cc:20329
+#: config/mips/mips.cc:20338
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit processor"
 msgstr "%<-mgp64%> 使用的與 32-bit 處理器"
 
-#: config/mips/mips.cc:20331
+#: config/mips/mips.cc:20340
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp32%> used with a 64-bit ABI"
 msgstr "%<-mgp32%> 使用的與 64-bit ABI"
 
-#: config/mips/mips.cc:20333
+#: config/mips/mips.cc:20342
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp64%> used with a 32-bit ABI"
 msgstr "%<-mgp64%> 使用的與 32-bit ABI"
 
-#: config/mips/mips.cc:20356
+#: config/mips/mips.cc:20365
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-mfp32%>"
 msgstr "%qs 架構不支援同步指令"
 
-#: config/mips/mips.cc:20365
+#: config/mips/mips.cc:20374
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
 msgstr "%<-mgp32%> 和 %<-mfp64%> 只能被合併如果目標支援 mfhc1 和 mthc1 指令"
 
-#: config/mips/mips.cc:20368
+#: config/mips/mips.cc:20377
 #, fuzzy, gcc-internal-format
 msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
 msgstr "%<-mgp32%> 和 %<-mfp64%> 只能被合併時使用 o32 ABI"
 
-#: config/mips/mips.cc:20389
+#: config/mips/mips.cc:20398
 #, fuzzy, gcc-internal-format
 msgid "%<-mfpxx%> can only be used with the o32 ABI"
 msgstr "%<-mgp32%> 和 %<-mfp64%> 只能被合併時使用 o32 ABI"
 
-#: config/mips/mips.cc:20393
+#: config/mips/mips.cc:20402
 #, fuzzy, gcc-internal-format
 msgid "%<-march=%s%> requires %<-mfp32%>"
 msgstr "%<-mips3d%> 需求 %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20395
+#: config/mips/mips.cc:20404
 #, fuzzy, gcc-internal-format
 msgid "%<-mfpxx%> requires %<-mlra%>"
 msgstr "%<-mips3d%> 需求 %<-mpaired-single%>"
@@ -44229,121 +44229,121 @@ msgstr "%<-mips3d%> 需求 %<-mpaired-single%>"
 #. effort to support the combination of 32-bit GOT entries
 #. and 64-bit pointers, so we treat the abicalls case as
 #. an error.
-#: config/mips/mips.cc:20420
+#: config/mips/mips.cc:20429
 #, fuzzy, gcc-internal-format
 msgid "the combination of %qs and %qs is incompatible with %qs"
 msgstr "組合的 %qs 和 %qs 是不相容的與 %qs"
 
-#: config/mips/mips.cc:20473
+#: config/mips/mips.cc:20482
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support branch-likely instructions"
 msgstr "%qs 架構不支援 branch-likely 指令"
 
-#: config/mips/mips.cc:20488
+#: config/mips/mips.cc:20497
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support madd or msub instructions"
 msgstr "%qs 架構不支援同步指令"
 
-#: config/mips/mips.cc:20502
+#: config/mips/mips.cc:20511
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support odd single-precision registers"
 msgstr "%qs 架構不支援 paired-single 指令"
 
-#: config/mips/mips.cc:20515
+#: config/mips/mips.cc:20524
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs%s %s"
 msgstr "不支援的組合：%s"
 
-#: config/mips/mips.cc:20524
+#: config/mips/mips.cc:20533
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported combination: %s"
 msgid "unsupported combination: %qs %s"
 msgstr "不支援的組合：%s"
 
-#: config/mips/mips.cc:20539
+#: config/mips/mips.cc:20548
 #, fuzzy, gcc-internal-format
 msgid "cannot generate position-independent code for %qs"
 msgstr "盡可能產生與位置無關的程式碼(大模式)"
 
-#: config/mips/mips.cc:20542
+#: config/mips/mips.cc:20551
 #, fuzzy, gcc-internal-format
 msgid "position-independent code requires %qs"
 msgstr "停用 position-independent 編碼 (PIC) 用於使用在中作業系統內核編碼"
 
-#: config/mips/mips.cc:20575
+#: config/mips/mips.cc:20584
 #, fuzzy, gcc-internal-format
 msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
 msgstr "%<-mno-gpopt%> 需要 %<-mexplicit-relocs%>"
 
-#: config/mips/mips.cc:20583 config/mips/mips.cc:20586
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
 #, fuzzy, gcc-internal-format
 msgid "cannot use small-data accesses for %qs"
 msgstr "無法使用 small-data 存取用於 %qs"
 
-#: config/mips/mips.cc:20603
+#: config/mips/mips.cc:20612
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=legacy%>"
 msgstr "%qs 架構不支援 paired-single 指令"
 
-#: config/mips/mips.cc:20610
+#: config/mips/mips.cc:20619
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support %<-m%s=2008%>"
 msgstr "%qs 架構不支援同步指令"
 
-#: config/mips/mips.cc:20628
+#: config/mips/mips.cc:20637
 #, fuzzy, gcc-internal-format
 msgid "%<-mips3d%> requires %<-mpaired-single%>"
 msgstr "%<-mips3d%> 需求 %<-mpaired-single%>"
 
-#: config/mips/mips.cc:20638
+#: config/mips/mips.cc:20647
 #, fuzzy, gcc-internal-format
 msgid "%qs must be used with %qs"
 msgstr "%qs 必須被使用與 %qs"
 
-#: config/mips/mips.cc:20648
+#: config/mips/mips.cc:20657
 #, fuzzy, gcc-internal-format
 #| msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
 msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
 msgstr "-mips3d/-mpaired-single 必須與 -mfp64 -mhard-float 一起使用"
 
-#: config/mips/mips.cc:20655
+#: config/mips/mips.cc:20664
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support paired-single instructions"
 msgstr "%qs 架構不支援 paired-single 指令"
 
-#: config/mips/mips.cc:20664
+#: config/mips/mips.cc:20673
 #, fuzzy, gcc-internal-format
 msgid "%qs requires a target that provides the %qs instruction"
 msgstr "%qs 需要目標該提供 %qs 指令"
 
-#: config/mips/mips.cc:20675
+#: config/mips/mips.cc:20684
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support DSP instructions"
 msgstr "%qs 架構不支援同步指令"
 
-#: config/mips/mips.cc:20685
+#: config/mips/mips.cc:20694
 #, fuzzy, gcc-internal-format
 #| msgid "-mips3d/-mpaired-single must be used with -mfp64 -mhard-float"
 msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
 msgstr "-mips3d/-mpaired-single 必須與 -mfp64 -mhard-float 一起使用"
 
-#: config/mips/mips.cc:20695
+#: config/mips/mips.cc:20704
 #, gcc-internal-format
 msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
 msgstr ""
 
-#: config/mips/mips.cc:20790
+#: config/mips/mips.cc:20799
 #, fuzzy, gcc-internal-format
 msgid "%qs requires branch-likely instructions"
 msgstr "%qs 需求 branch-likely 指令"
 
-#: config/mips/mips.cc:20794
+#: config/mips/mips.cc:20803
 #, fuzzy, gcc-internal-format
 msgid "the %qs architecture does not support the synci instruction"
 msgstr "%qs 架構不支援同步指令"
 
-#: config/mips/mips.cc:21630
+#: config/mips/mips.cc:21639
 #, gcc-internal-format
 msgid "mips16 function profiling"
 msgstr "mips16 函式取樣"
@@ -45248,58 +45248,58 @@ msgstr "%<# pragma GCC optimize%>並非字串或數字"
 msgid "unknown %<#pragma riscv intrinsic%> option %qs"
 msgstr "不明 # pragma GCC 輔助處理器 %E"
 
-#: config/riscv/riscv-target-attr.cc:124
+#: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:136
+#: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:162
+#: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:173
+#: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:180
+#: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:201
+#: config/riscv/riscv-target-attr.cc:198
 #, fuzzy, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
 msgstr "目標屬性未被支援於這個機器"
 
-#: config/riscv/riscv-target-attr.cc:207
+#: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
 msgstr ""
 
-#: config/riscv/riscv-target-attr.cc:246
+#: config/riscv/riscv-target-attr.cc:253
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<#pragma init%>"
 msgid "malformed %<target()%> attribute"
 msgstr "%<#pragma init%> 格式錯誤"
 
-#: config/riscv/riscv-target-attr.cc:260
+#: config/riscv/riscv-target-attr.cc:267
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
 msgstr "%qE 屬性需要字串常數引數"
 
-#: config/riscv/riscv-target-attr.cc:277
+#: config/riscv/riscv-target-attr.cc:285
 #, fuzzy, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
 msgstr "預期的繫結屬性於 %C"
 
-#: config/riscv/riscv-target-attr.cc:359
+#: config/riscv/riscv-target-attr.cc:368
 #, fuzzy, gcc-internal-format
 #| msgid "malformed %<#pragma init%>"
 msgid "malformed %<target(\"%s\")%> attribute"
@@ -45365,175 +45365,195 @@ msgstr "無法為有抽象類型 %qT 的物件指派記憶體"
 msgid "capture by copy of RVV type %qT"
 msgstr "無效的使用的不完整型態 %q#T"
 
-#: config/riscv/riscv-vector-builtins.cc:4646
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr "內建函式 %s 需求 -maltivec 選項"
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr "內建函式 %s 需求 -maltivec 選項"
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr "內建函式 %s 需求 -maltivec 選項"
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, fuzzy, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr "內建函式 %s 需求 -maltivec 選項"
+
+#: config/riscv/riscv-vector-builtins.cc:4694
 #, fuzzy, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "內建函式 %s 需求 -mvsx 選項"
 
-#: config/riscv/riscv-vector-builtins.cc:4696
+#: config/riscv/riscv-vector-builtins.cc:4747
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%D(%A)%>"
 msgid "no matching function call to %qE with empty arguments"
 msgstr "對 %<%D(%A)%> 的呼叫沒有匹配的函式"
 
-#: config/riscv/riscv.cc:714
+#: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
 msgid "unknown cpu %qs for %<-mtune%>"
 msgstr "不當的值 %qs 用於 -mtune 切換"
 
-#: config/riscv/riscv.cc:2537
+#: config/riscv/riscv.cc:2548
 #, fuzzy, gcc-internal-format
 msgid "this operation requires the RVV ISA extension"
 msgstr "不使用 SPE ABI 延伸"
 
-#: config/riscv/riscv.cc:2538
+#: config/riscv/riscv.cc:2549
 #, gcc-internal-format
 msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
 msgstr ""
 
-#: config/riscv/riscv.cc:4969 config/riscv/riscv.cc:5011
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
 #, fuzzy, gcc-internal-format
 msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "ABI 的傳遞結構與複雜浮點數成員已變更在中 GCC 4.4"
 
-#: config/riscv/riscv.cc:5358
+#: config/riscv/riscv.cc:5370
 #, fuzzy, gcc-internal-format
 #| msgid "AltiVec argument passed to unprototyped function"
 msgid "RVV type %qT cannot be passed to an unprototyped function"
 msgstr "傳遞 AltiVec 引數給無原型的函式"
 
-#: config/riscv/riscv.cc:5611
+#: config/riscv/riscv.cc:5623
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
 msgstr "使用 SPE ABI 延伸"
 
-#: config/riscv/riscv.cc:5623
+#: config/riscv/riscv.cc:5635
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
 msgstr "使用 SPE ABI 延伸"
 
-#: config/riscv/riscv.cc:5634
+#: config/riscv/riscv.cc:5646
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
 msgstr "使用 SPE ABI 延伸"
 
-#: config/riscv/riscv.cc:5643
+#: config/riscv/riscv.cc:5655
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
 msgstr "使用 SPE ABI 延伸"
 
-#: config/riscv/riscv.cc:5652
+#: config/riscv/riscv.cc:5664
 #, fuzzy, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
 msgstr "使用 SPE ABI 延伸"
 
-#: config/riscv/riscv.cc:5662
+#: config/riscv/riscv.cc:5674
 #, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
 msgstr ""
 
-#: config/riscv/riscv.cc:5717
+#: config/riscv/riscv.cc:5729
 #, fuzzy, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
 msgstr "內建函式 %s 需求 -mvsx 選項"
 
-#: config/riscv/riscv.cc:5811
+#: config/riscv/riscv.cc:5823
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
 msgstr "引數到 %qE 屬性是 neither 零，nor 一個"
 
-#: config/riscv/riscv.cc:5834
+#: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
 msgstr ""
 
-#: config/riscv/riscv.cc:5843
+#: config/riscv/riscv.cc:5855
 #, fuzzy, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
 msgstr "%qE 屬性在不是類別的類型上被忽略"
 
-#: config/riscv/riscv.cc:5851
+#: config/riscv/riscv.cc:5863
 #, fuzzy, gcc-internal-format
 msgid "%qs requires an integer constant"
 msgstr "%qE 屬性需求整數常數引數"
 
-#: config/riscv/riscv.cc:5861
+#: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
 msgstr ""
 
-#: config/riscv/riscv.cc:9255
+#: config/riscv/riscv.cc:9213
 #, gcc-internal-format
 msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9297
+#: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9303
+#: config/riscv/riscv.cc:9261
 #, fuzzy, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
 msgstr "目標 CPU 不支援手臂模式"
 
-#: config/riscv/riscv.cc:9329 config/riscv/riscv.cc:9332
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
 #, fuzzy, gcc-internal-format
 #| msgid "code model %qs not supported in the %s bit mode"
 msgid "code model %qs with %qs"
 msgstr "程式碼模式 %qs 在 %s 位模式下不受支援"
 
-#: config/riscv/riscv.cc:9361
+#: config/riscv/riscv.cc:9319
 #, gcc-internal-format
 msgid "requested ABI requires %<-march%> to subsume the %qc extension"
 msgstr ""
 
-#: config/riscv/riscv.cc:9368
+#: config/riscv/riscv.cc:9326
 #, gcc-internal-format
 msgid "rv32e requires ilp32e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9370
+#: config/riscv/riscv.cc:9328
 #, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
 msgstr ""
 
-#: config/riscv/riscv.cc:9377
+#: config/riscv/riscv.cc:9335
 #, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
 msgstr ""
 
-#: config/riscv/riscv.cc:9381
+#: config/riscv/riscv.cc:9339
 #, gcc-internal-format
 msgid "ABI requires %<-march=rv%d%>"
 msgstr ""
 
-#: config/riscv/riscv.cc:9391
+#: config/riscv/riscv.cc:9349
 #, fuzzy, gcc-internal-format
 msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
 msgstr "-mpreferred-stack-boundary=%d 未被介於 %d 和 %d"
 
-#: config/riscv/riscv.cc:9404
+#: config/riscv/riscv.cc:9362
 #, gcc-internal-format
 msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
 msgstr ""
 
-#: config/riscv/riscv.cc:9431 config/rs6000/rs6000.cc:4509
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid base register in %qs"
 msgstr "%qs 並非有效類別名稱"
 
-#: config/riscv/riscv.cc:9445 config/rs6000/rs6000.cc:4492
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
 msgstr "%qs 無效用於 %qs"
 
-#: config/riscv/riscv.cc:9843
+#: config/riscv/riscv.cc:9801
 #, fuzzy, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
 msgstr "%qs 函式無法有引數"
 
-#: config/riscv/riscv.cc:10369
+#: config/riscv/riscv.cc:10327
 #, gcc-internal-format
 msgid "cannot allocate vl register for %qs on this target"
 msgstr ""
@@ -45798,33 +45818,33 @@ msgstr "%s 只有接受 2 引數"
 msgid "builtin %qs only accepts 3 arguments"
 msgstr "%s 只有接受 2 引數"
 
-#: config/rs6000/rs6000-c.cc:1734
+#: config/rs6000/rs6000-c.cc:1737
 #, gcc-internal-format
 msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1738
+#: config/rs6000/rs6000-c.cc:1741
 #, gcc-internal-format
 msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:1824
+#: config/rs6000/rs6000-c.cc:1827
 #, fuzzy, gcc-internal-format
 msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
 msgstr "傳遞引數 %d 的 %qE 捨棄 %qv 限定元從指標目標類型"
 
-#: config/rs6000/rs6000-c.cc:1880 config/rs6000/rs6000-c.cc:2063
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter combination for AltiVec intrinsic"
 msgid "invalid parameter combination for AltiVec intrinsic %qs"
 msgstr "對 AltiVec 內建函式來說無效的參陣列合"
 
-#: config/rs6000/rs6000-c.cc:2052
+#: config/rs6000/rs6000-c.cc:2056
 #, gcc-internal-format
 msgid "overloaded builtin %qs is implemented by builtin %qs"
 msgstr ""
 
-#: config/rs6000/rs6000-c.cc:2056
+#: config/rs6000/rs6000-c.cc:2060
 #, fuzzy, gcc-internal-format
 #| msgid "%s is not supported by this configuration"
 msgid "%qs is not supported in this compiler configuration"
@@ -45869,31 +45889,23 @@ msgstr "運算元類型 %qT 和 %qT 對二進位 %qO 而言無效"
 msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
 msgstr "GCC 傳遞向量參照：非標準的 ABI 擴充，不保證相容性"
 
-#. We can't check this in rs6000_option_override_internal since
-#. DEFAULT_ABI isn't established yet.
-#: config/rs6000/rs6000-logue.cc:728
-#, fuzzy, gcc-internal-format
-#| msgid "Use EABI"
-msgid "%qs requires the ELFv2 ABI"
-msgstr "使用 EABI"
-
-#: config/rs6000/rs6000-logue.cc:1712
+#: config/rs6000/rs6000-logue.cc:1705
 #, gcc-internal-format
 msgid "stack frame too large"
 msgstr "堆疊框架太大"
 
-#: config/rs6000/rs6000-logue.cc:4029
+#: config/rs6000/rs6000-logue.cc:4021
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unsupported number of nops before function entry (%u)"
 msgstr "不正確引數數量到函式 %qE"
 
-#: config/rs6000/rs6000-logue.cc:5577
+#: config/rs6000/rs6000-logue.cc:5565
 #, fuzzy, gcc-internal-format
 #| msgid "Use registers r2 and r5"
 msgid "%qs uses register r29"
 msgstr "使用暫存器 r2 和 r5"
 
-#: config/rs6000/rs6000-logue.cc:5585
+#: config/rs6000/rs6000-logue.cc:5573
 #, gcc-internal-format
 msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
 msgstr ""
@@ -46023,107 +46035,117 @@ msgstr "需要 call-clobbered 目標暫存器"
 msgid "unknown option for %<%s=%s%>"
 msgstr "不明選項用於 -mrecip=%s"
 
-#: config/rs6000/rs6000.cc:4843
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
 msgid "%qs is deprecated and not recommended in any circumstances"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:11169
+#: config/rs6000/rs6000.cc:11184
 #, gcc-internal-format
 msgid "%qs is an opaque type, and you cannot set it to other values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:18014
+#: config/rs6000/rs6000.cc:18029
 #, gcc-internal-format
 msgid "no profiling of 64-bit code for this ABI"
 msgstr "此 ABI 不支援取樣 64 位元程式碼"
 
-#: config/rs6000/rs6000.cc:20410
+#: config/rs6000/rs6000.cc:20425
 #, fuzzy, gcc-internal-format
 msgid "you cannot take the address of a nested function if you use the %qs option"
 msgstr "您無法需位址的巢狀的函式如果您使用 -mno-pointers-to-nested-functions 選項。"
 
-#: config/rs6000/rs6000.cc:20492
+#: config/rs6000/rs6000.cc:20507
 #, gcc-internal-format
 msgid "use of %<long double%> in AltiVec types is invalid"
 msgstr "在 AltiVec 類型中使用 %<long double%> 無效"
 
-#: config/rs6000/rs6000.cc:20494
+#: config/rs6000/rs6000.cc:20509
 #, gcc-internal-format
 msgid "use of boolean types in AltiVec types is invalid"
 msgstr "在 AltiVec 類型中使用布林類型無效"
 
-#: config/rs6000/rs6000.cc:20496
+#: config/rs6000/rs6000.cc:20511
 #, gcc-internal-format
 msgid "use of %<complex%> in AltiVec types is invalid"
 msgstr "在 AltiVec 類型中使用 %<complex%> 無效"
 
-#: config/rs6000/rs6000.cc:20498
+#: config/rs6000/rs6000.cc:20513
 #, fuzzy, gcc-internal-format
 msgid "use of decimal floating-point types in AltiVec types is invalid"
 msgstr "使用的十進位浮點數類型在中 AltiVec 類型無效"
 
-#: config/rs6000/rs6000.cc:20504
+#: config/rs6000/rs6000.cc:20519
 #, fuzzy, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
 msgstr "使用的 %<long%> 在中 AltiVec 類型無效用於 64-bit 編碼而無需 -mvsx"
 
-#: config/rs6000/rs6000.cc:20507
+#: config/rs6000/rs6000.cc:20522
 #, gcc-internal-format
 msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
 msgstr "在 AltiVec 類型中使用 %<long%> 已過時；請改用 %<int%>"
 
-#: config/rs6000/rs6000.cc:20512
+#: config/rs6000/rs6000.cc:20527
 #, fuzzy, gcc-internal-format
 msgid "use of %<long long%> in AltiVec types is invalid without %qs"
 msgstr "使用的 %<long long%> 在中 AltiVec 類型無效而無需 -mvsx"
 
-#: config/rs6000/rs6000.cc:20515
+#: config/rs6000/rs6000.cc:20530
 #, fuzzy, gcc-internal-format
 msgid "use of %<double%> in AltiVec types is invalid without %qs"
 msgstr "使用的 %<double%> 在中 AltiVec 類型無效而無需 -mvsx"
 
-#: config/rs6000/rs6000.cc:24656
+#: config/rs6000/rs6000.cc:24671
 #, fuzzy, gcc-internal-format
 msgid "invalid cpu %qs for %s%qs%s"
 msgstr "無效的 cpu「%s」用於 %s「%s」%s"
 
-#: config/rs6000/rs6000.cc:24659
+#: config/rs6000/rs6000.cc:24674
 #, fuzzy, gcc-internal-format
 msgid "%s%qs%s is not allowed"
 msgstr "%s「%s」%s 未被允許"
 
-#: config/rs6000/rs6000.cc:24661
+#: config/rs6000/rs6000.cc:24676
 #, fuzzy, gcc-internal-format
 msgid "%s%qs%s is invalid"
 msgstr "%s「%s」%s 無效"
 
-#: config/rs6000/rs6000.cc:25182
+#: config/rs6000/rs6000.cc:25197
 #, gcc-internal-format
 msgid "%<-mno-%s%> turns off %<-m%s%>"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25341
+#: config/rs6000/rs6000.cc:25356
 #, gcc-internal-format
 msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:25630
+#: config/rs6000/rs6000.cc:25645
 #, fuzzy, gcc-internal-format
 msgid "Virtual function multiversioning not supported"
 msgstr "不支援堆疊限制運算式"
 
-#: config/rs6000/rs6000.cc:28768
+#: config/rs6000/rs6000.cc:28783
 #, gcc-internal-format
 msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
 msgstr ""
 
-#: config/rs6000/rs6000.cc:29246
+#: config/rs6000/rs6000.cc:29261
 #, fuzzy, gcc-internal-format
 msgid "type %<__vector_quad%> requires the %qs option"
 msgstr "內建函式 %s 需求 -mvsx 選項"
 
-#: config/rs6000/rs6000.cc:29251
+#: config/rs6000/rs6000.cc:29266
 #, fuzzy, gcc-internal-format
 msgid "type %<__vector_pair%> requires the %qs option"
 msgstr "內建函式 %s 需求 -mvsx 選項"
@@ -46169,7 +46191,7 @@ msgstr "RX FPU 指令不支援 NaNs 和 infinities"
 msgid "builtin %qs can only be used on vector types"
 msgstr "只能為函式指定 %qs"
 
-#: config/s390/s390-c.cc:720 config/s390/s390.cc:999
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
 #, gcc-internal-format
 msgid "constant value required for builtin %qF argument %d"
 msgstr ""
@@ -46241,232 +46263,232 @@ msgstr "%qE 被不宜用"
 msgid "constant argument %d for builtin %qF is out of range for target type"
 msgstr "常數引數超過 %qs 的範圍"
 
-#: config/s390/s390.cc:848
+#: config/s390/s390.cc:849
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is invalid (%s)"
 msgstr "常數引數超過 %qs 的範圍"
 
-#: config/s390/s390.cc:852
+#: config/s390/s390.cc:853
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
 msgstr "常數引數超過 %qs 的範圍"
 
-#: config/s390/s390.cc:868
+#: config/s390/s390.cc:869
 #, fuzzy, gcc-internal-format
 #| msgid "constant argument out of range for %qs"
 msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
 msgstr "常數引數超過 %qs 的範圍"
 
-#: config/s390/s390.cc:917
+#: config/s390/s390.cc:918
 #, gcc-internal-format
 msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:923
+#: config/s390/s390.cc:924
 #, gcc-internal-format
 msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
 msgstr ""
 
-#: config/s390/s390.cc:930
+#: config/s390/s390.cc:931
 #, fuzzy, gcc-internal-format
 msgid "Builtin %qF requires z14 or higher"
 msgstr "%qE 被 predetermined %qs 用於 %qs"
 
-#: config/s390/s390.cc:936
+#: config/s390/s390.cc:937
 #, fuzzy, gcc-internal-format
 msgid "Builtin %qF requires z15 or higher"
 msgstr "%qE 被 predetermined %qs 用於 %qs"
 
-#: config/s390/s390.cc:955
+#: config/s390/s390.cc:956
 #, fuzzy, gcc-internal-format
 msgid "unresolved overloaded builtin"
 msgstr "<unresolved overloaded function type>"
 
-#: config/s390/s390.cc:962
+#: config/s390/s390.cc:963
 #, fuzzy, gcc-internal-format
 msgid "bad builtin icode"
 msgstr "不當的內建 icode"
 
-#: config/s390/s390.cc:1096
+#: config/s390/s390.cc:1097
 #, fuzzy, gcc-internal-format
 msgid "invalid argument %d for builtin %qF"
 msgstr "無效的引數到內建函式"
 
-#: config/s390/s390.cc:1197
+#: config/s390/s390.cc:1198
 #, gcc-internal-format
 msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
 msgstr ""
 
-#: config/s390/s390.cc:1287
+#: config/s390/s390.cc:1288
 #, fuzzy, gcc-internal-format
 msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
 msgstr "引數到 %qE 屬性是 neither 零，nor 一個"
 
-#: config/s390/s390.cc:10593
+#: config/s390/s390.cc:10594
 #, gcc-internal-format
 msgid "total size of local variables exceeds architecture limit"
 msgstr "局部變數大小總和超過架構極值。"
 
-#: config/s390/s390.cc:12000
+#: config/s390/s390.cc:12001
 #, fuzzy, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
 msgstr "影格大小的函式 %qs 是 %wd 位元組超出使用者提供的堆疊限制的 %d 位元組。 unconditional 陷阱被已加入。"
 
-#: config/s390/s390.cc:12016
+#: config/s390/s390.cc:12017
 #, fuzzy, gcc-internal-format
 msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
 msgstr "影格大小的函式 %qs 是 %wd 位元組該項是超過半堆疊大小。動態檢查會無法是 reliable。沒有檢查發出用於這個函式。"
 
-#: config/s390/s390.cc:12044
+#: config/s390/s390.cc:12045
 #, fuzzy, gcc-internal-format
 msgid "frame size of %qs is %wd bytes"
 msgstr "影格大小的 %qs 是 %wd 位元組"
 
-#: config/s390/s390.cc:12048
+#: config/s390/s390.cc:12049
 #, gcc-internal-format
 msgid "%qs uses dynamic stack allocation"
 msgstr "%qs 使用動態堆疊指派"
 
-#: config/s390/s390.cc:12795
+#: config/s390/s390.cc:12796
 #, fuzzy, gcc-internal-format
 msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
 msgstr "ABI 的傳遞結構與複雜浮點數成員已變更在中 GCC 4.4"
 
-#: config/s390/s390.cc:13754
+#: config/s390/s390.cc:13755
 #, fuzzy, gcc-internal-format
 #| msgid "nested function %qs declared %<extern%>"
 msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
 msgstr "巢狀函式 %qs 被宣告為 %<extern%>"
 
-#: config/s390/s390.cc:16056
+#: config/s390/s390.cc:16057
 #, gcc-internal-format
 msgid "64-bit ABI not supported in ESA/390 mode"
 msgstr "64-bit ABI 在 ESA/390 模式下不受支援"
 
-#: config/s390/s390.cc:16063
+#: config/s390/s390.cc:16064
 #, gcc-internal-format
 msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
 msgstr ""
 
-#: config/s390/s390.cc:16098
+#: config/s390/s390.cc:16099
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "hardware vector support not available on %s"
 msgstr "硬體十進位浮點數指令無法使用於 %s"
 
-#: config/s390/s390.cc:16101
+#: config/s390/s390.cc:16102
 #, gcc-internal-format
 msgid "hardware vector support not available with %<-msoft-float%>"
 msgstr ""
 
-#: config/s390/s390.cc:16130
+#: config/s390/s390.cc:16131
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "hardware decimal floating-point instructions not available on %s"
 msgstr "硬體十進位浮點數指令無法使用於 %s"
 
-#: config/s390/s390.cc:16134
+#: config/s390/s390.cc:16135
 #, fuzzy, gcc-internal-format
 msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
 msgstr "硬體十進位浮點數指令無法使用在中 ESA/390 模式"
 
-#: config/s390/s390.cc:16146
+#: config/s390/s390.cc:16147
 #, fuzzy, gcc-internal-format
 msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
 msgstr "-mhard-dfp can%'t 被已用於接合與 -msoft-float"
 
-#: config/s390/s390.cc:16155
+#: config/s390/s390.cc:16156
 #, fuzzy, gcc-internal-format
 #| msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination"
 msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
 msgstr "-mbackchain -mpacked-stack -mhard-float 一起使用不受支援"
 
-#: config/s390/s390.cc:16161
+#: config/s390/s390.cc:16162
 #, gcc-internal-format
 msgid "stack size must be greater than the stack guard value"
 msgstr "堆疊大小必須大於堆疊防護值"
 
-#: config/s390/s390.cc:16163
+#: config/s390/s390.cc:16164
 #, gcc-internal-format
 msgid "stack size must not be greater than 64k"
 msgstr "堆疊大小不能大於 64K"
 
-#: config/s390/s390.cc:16166
+#: config/s390/s390.cc:16167
 #, fuzzy, gcc-internal-format
 #| msgid "-mstack-guard implies use of -mstack-size"
 msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
 msgstr "-mstack-guard 意味著使用 -mstack-size"
 
-#: config/s390/s390.cc:16179
+#: config/s390/s390.cc:16180
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16182
+#: config/s390/s390.cc:16183
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16185
+#: config/s390/s390.cc:16186
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16188
+#: config/s390/s390.cc:16189
 #, gcc-internal-format
 msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
 msgstr ""
 
-#: config/s390/s390.cc:16252
+#: config/s390/s390.cc:16253
 #, fuzzy, gcc-internal-format
 msgid "%<-mfentry%> is supported only for 64-bit CPUs"
 msgstr "%qE 屬性被支援只有用於 SH2A"
 
 #. argument is not a plain number
-#: config/s390/s390.cc:16288
+#: config/s390/s390.cc:16289
 #, fuzzy, gcc-internal-format
 msgid "arguments to %qs should be non-negative integers"
 msgstr "引數到 %qs 應該是 non-negative 整數"
 
-#: config/s390/s390.cc:16295
+#: config/s390/s390.cc:16296
 #, fuzzy, gcc-internal-format
 msgid "argument to %qs is too large (max. %d)"
 msgstr "引數到 %qE 屬性大於 %d"
 
-#: config/s390/s390.cc:16326
+#: config/s390/s390.cc:16327
 #, gcc-internal-format
 msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
 msgstr ""
 
-#: config/s390/s390.cc:16487 config/s390/s390.cc:16537
-#: config/s390/s390.cc:16554
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
 #, fuzzy, gcc-internal-format
 msgid "attribute %<target%> argument %qs is unknown"
 msgstr "屬性 (目標 (「%s」)) 為未知"
 
 #. Value is not allowed for the target attribute.
-#: config/s390/s390.cc:16493
+#: config/s390/s390.cc:16494
 #, fuzzy, gcc-internal-format
 msgid "value %qs is not supported by attribute %<target%>"
 msgstr "%<__int128%>未被支援由這個目標"
 
-#: config/s390/s390.cc:17552
+#: config/s390/s390.cc:17553
 #, fuzzy, gcc-internal-format
 msgid "invalid cc output constraint: %qs"
 msgstr "無效指令："
 
-#: config/s390/s390.cc:17557
+#: config/s390/s390.cc:17558
 #, fuzzy, gcc-internal-format
 #| msgid "-mhard-float not supported"
 msgid "multiple cc output constraints not supported"
 msgstr "不支援 -mhard-float"
 
-#: config/s390/s390.cc:17562
+#: config/s390/s390.cc:17563
 #, fuzzy, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
 msgstr "asm-specifier 用於變數 %qE 衝突與 asm clobber 清單"
 
-#: config/s390/s390.cc:17568
+#: config/s390/s390.cc:17569
 #, fuzzy, gcc-internal-format
 msgid "invalid type for cc output constraint"
 msgstr "無效的型態用於製作函式"
@@ -46920,8 +46942,8 @@ msgstr "%qE 屬性沒有任何效果"
 msgid "attribute %qs applies to array types only"
 msgstr "屬性 %qs 套用到陣列類型只有"
 
-#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2498
-#: cp/typeck.cc:9512 cp/typeck.cc:10300 d/d-convert.cc:262
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
 #, gcc-internal-format
 msgid "void value not ignored as it ought to be"
 msgstr "void 值未如預期地被忽略"
@@ -46998,7 +47020,7 @@ msgstr "陣列 %q+D 類型與隱含初始化不相容"
 msgid "underspecified declaration of %qE, which is already declared in this scope"
 msgstr "%qD 已在此作用欄位中宣告過"
 
-#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9946
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
 #, fuzzy, gcc-internal-format
 msgid "originally defined here"
 msgstr "原本地定義的在此"
@@ -47241,7 +47263,7 @@ msgstr "%q+D 的宣告隱藏了先前的一個非變數宣告"
 msgid "declaration of %qD shadows a parameter"
 msgstr "%q+D 的宣告隱藏了一個參數"
 
-#: c/c-decl.cc:3266 cp/name-lookup.cc:3547
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
 #, gcc-internal-format
 msgid "declaration of %qD shadows a global declaration"
 msgstr "%qD 的宣告隱藏了一個全域宣告"
@@ -47251,7 +47273,7 @@ msgstr "%qD 的宣告隱藏了一個全域宣告"
 msgid "declaration of %qD shadows a previous local"
 msgstr "%qD 的宣告隱藏了先前的一個局部變數"
 
-#: c/c-decl.cc:3298 cp/name-lookup.cc:3264
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
 #, fuzzy, gcc-internal-format
 msgid "shadowed declaration is here"
 msgstr "帶陰影宣告是在此"
@@ -47319,7 +47341,7 @@ msgstr "%qE undeclared (先使用在中這個函式)"
 msgid "each undeclared identifier is reported only once for each function it appears in"
 msgstr "每個 undeclared 識別碼被報告只一次用於每個函式看來在中"
 
-#: c/c-decl.cc:4053 cp/decl.cc:3579
+#: c/c-decl.cc:4053 cp/decl.cc:3588
 #, gcc-internal-format
 msgid "label %qE referenced outside of any function"
 msgstr "標籤 %qE 在所有函式外被參照"
@@ -47354,7 +47376,7 @@ msgstr "跳轉至敘述運算式中"
 msgid "duplicate label declaration %qE"
 msgstr "重複的標籤定義 %qE"
 
-#: c/c-decl.cc:4276 cp/decl.cc:4080
+#: c/c-decl.cc:4276 cp/decl.cc:4089
 #, gcc-internal-format
 msgid "duplicate label %qD"
 msgstr "重複的標籤 %qD"
@@ -47389,7 +47411,7 @@ msgstr "切換跳躍進入敘述運算式"
 msgid "%qE defined as wrong kind of tag"
 msgstr "%qE 定義為錯誤的 kind 的標籤"
 
-#: c/c-decl.cc:4669 cp/tree.cc:5036
+#: c/c-decl.cc:4669 cp/tree.cc:5039
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qD with void return type"
 msgstr "忽略屬性套用到 %qT 之後定義"
@@ -47538,12 +47560,12 @@ msgstr "ISO C90 不支援 %<[*]%> 陣列宣告"
 #. C99 6.7.5.2p4
 #. A function definition isn't function prototype scope C99 6.2.1p4.
 #. C99 6.7.5.2p4
-#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10791
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
 #, fuzzy, gcc-internal-format
 msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%>不允許在中不同於函式原型範圍"
 
-#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8804
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%s%> not allowed to be specified in this context"
@@ -47554,7 +47576,7 @@ msgstr "%<this%> 不能用在此上下文中"
 msgid "%q+D is usually a function"
 msgstr "%q+D 一般是一個函式"
 
-#: c/c-decl.cc:5562 c/c-decl.cc:10622 cp/decl.cc:17941
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
 #, fuzzy, gcc-internal-format
 msgid "no previous declaration for %qD"
 msgstr "沒有前一個宣告用於 %qD"
@@ -47633,7 +47655,7 @@ msgstr "不能將帶有 volatile 欄位的物件放入暫存器"
 msgid "uninitialized %<const %D%> is invalid in C++"
 msgstr "uninitialized 常數 %qD 無效在中 C++"
 
-#: c/c-decl.cc:6110 cp/decl.cc:9043
+#: c/c-decl.cc:6110 cp/decl.cc:9052
 #, gcc-internal-format
 msgid "%q+D in declare target directive does not have mappable type"
 msgstr ""
@@ -47822,7 +47844,7 @@ msgstr "貯藏類別指定的用於參數 %qE"
 msgid "storage class specified for unnamed parameter"
 msgstr "貯藏類別指定的用於未命名參數"
 
-#: c/c-decl.cc:7068 cp/decl.cc:13134
+#: c/c-decl.cc:7068 cp/decl.cc:13150
 #, gcc-internal-format
 msgid "storage class specified for typename"
 msgstr "為類型名指定了存儲類別"
@@ -47885,7 +47907,7 @@ msgstr "宣告的 %qE 做為陣列的函式"
 msgid "declaration of type name as array of functions"
 msgstr "宣告的型態名稱做為陣列的函式"
 
-#: c/c-decl.cc:7237 c/c-decl.cc:9542
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
 #, gcc-internal-format
 msgid "invalid use of structure with flexible array member"
 msgstr "對包含彈性陣列成員的結構的無效使用"
@@ -47994,7 +48016,7 @@ msgstr "型態名稱宣告的做為函式回傳陣列"
 msgid "function definition has qualified void return type"
 msgstr "函式定義有限定的 void 回傳類型"
 
-#: c/c-decl.cc:7647 cp/decl.cc:13543
+#: c/c-decl.cc:7647 cp/decl.cc:13559
 #, gcc-internal-format
 msgid "type qualifiers ignored on function return type"
 msgstr "忽略函式回傳類型的類型限定"
@@ -48124,7 +48146,7 @@ msgstr "ISO C 不允許使用 const 或 volatile 限定函式類型"
 msgid "a member of a structure or union cannot have a variably modified type"
 msgstr "成員的結構或聯合無法有 variably 已修改型態"
 
-#: c/c-decl.cc:7944 cp/decl.cc:12014
+#: c/c-decl.cc:7944 cp/decl.cc:12030
 #, gcc-internal-format
 msgid "variable or field %qE declared void"
 msgstr "變數或欄位 %qE 宣告為 void"
@@ -48232,7 +48254,7 @@ msgstr "non-nested 函式與 variably 已修改型態"
 msgid "object with variably modified type must have no linkage"
 msgstr "物件與 variably 已修改型態必須沒有任何鏈結"
 
-#: c/c-decl.cc:8419 c/c-decl.cc:10596
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
 #, gcc-internal-format
 msgid "function declaration isn%'t a prototype"
 msgstr "函式宣告不是一個原型"
@@ -48322,18 +48344,18 @@ msgstr "巢狀的 %<union %E%> 重定義"
 msgid "nested redefinition of %<struct %E%>"
 msgstr "巢狀的 %<struct %E%> 重定義"
 
-#: c/c-decl.cc:8935 c/c-decl.cc:9974
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
 #, fuzzy, gcc-internal-format
 msgid "defining type in %qs expression is invalid in C++"
 msgstr "定義輸入 %qs 運算式無效在中 C++"
 
-#: c/c-decl.cc:8941 c/c-decl.cc:9980
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
 #, fuzzy, gcc-internal-format
 #| msgid "unknown field %qE specified in initializer"
 msgid "%qT defined in underspecified object initializer"
 msgstr "初始值設定項裡有不明的欄位 %qE"
 
-#: c/c-decl.cc:9005 cp/decl.cc:5661
+#: c/c-decl.cc:9005 cp/decl.cc:5670
 #, gcc-internal-format
 msgid "declaration does not declare anything"
 msgstr "沒有宣告任何東西"
@@ -48363,355 +48385,355 @@ msgstr ""
 msgid "empty union has size 0 in C, size 1 in C++"
 msgstr ""
 
-#: c/c-decl.cc:9434
+#: c/c-decl.cc:9469
 #, gcc-internal-format
 msgid "union has no named members"
 msgstr "聯合包含無名成員"
 
-#: c/c-decl.cc:9436
+#: c/c-decl.cc:9471
 #, gcc-internal-format
 msgid "union has no members"
 msgstr "聯合體沒有成員"
 
-#: c/c-decl.cc:9441
+#: c/c-decl.cc:9476
 #, gcc-internal-format
 msgid "struct has no named members"
 msgstr "結構不包含任何具名成員"
 
-#: c/c-decl.cc:9443
+#: c/c-decl.cc:9478
 #, gcc-internal-format
 msgid "struct has no members"
 msgstr "結構體沒有成員"
 
-#: c/c-decl.cc:9521 cp/decl.cc:14576
+#: c/c-decl.cc:9556 cp/decl.cc:14592
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in union"
 msgstr "flexible 陣列成員在中聯合"
 
-#: c/c-decl.cc:9527
+#: c/c-decl.cc:9562
 #, fuzzy, gcc-internal-format
 msgid "flexible array member not at end of struct"
 msgstr "flexible 陣列成員無法於結束的結構"
 
-#: c/c-decl.cc:9533
+#: c/c-decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "flexible array member in a struct with no named members"
 msgstr "flexible 陣列成員在中聯合"
 
-#: c/c-decl.cc:9564
+#: c/c-decl.cc:9599
 #, fuzzy, gcc-internal-format
 msgid "structure containing a flexible array member is not at the end of another structure"
 msgstr "flexible 陣列成員無法於結束的結構"
 
-#: c/c-decl.cc:9587
+#: c/c-decl.cc:9622
 #, fuzzy, gcc-internal-format
 msgid "type %qT is too large"
 msgstr "值傳遞在中 %qs 太大"
 
-#: c/c-decl.cc:9651
+#: c/c-decl.cc:9686
 #, fuzzy, gcc-internal-format
 msgid "type punning toggles scalar storage order"
 msgstr "無法辨識的暫存器名稱 %qs"
 
-#: c/c-decl.cc:9718
+#: c/c-decl.cc:9753
 #, gcc-internal-format
 msgid "union cannot be made transparent"
 msgstr "聯合不能成為透明的"
 
-#: c/c-decl.cc:9731
+#: c/c-decl.cc:9766
 #, fuzzy, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
 msgstr "重複定義的 typedef %q+D 與 variably 已修改型態"
 
-#: c/c-decl.cc:9734
+#: c/c-decl.cc:9769
 #, fuzzy, gcc-internal-format
 #| msgid "redefinition of %<struct %E%>"
 msgid "redefinition of struct or union %qT"
 msgstr "%<struct %E%> 重定義"
 
-#: c/c-decl.cc:9899
+#: c/c-decl.cc:9938
 #, gcc-internal-format
 msgid "nested redefinition of %<enum %E%>"
 msgstr "巢狀的 %<enum %E%> 重定義"
 
-#: c/c-decl.cc:9944
+#: c/c-decl.cc:9983
 #, gcc-internal-format
 msgid "redeclaration of %<enum %E%>"
 msgstr "%<enum %E%> 重宣告"
 
-#: c/c-decl.cc:9956
+#: c/c-decl.cc:9995
 #, gcc-internal-format
 msgid "%<enum%> declared with but defined without fixed underlying type"
 msgstr ""
 
-#: c/c-decl.cc:10043 cp/decl.cc:17215 m2/gm2-gcc/m2type.cc:2073
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
 #, fuzzy, gcc-internal-format
 #| msgid "specified mode too small for enumeral values"
 msgid "specified mode too small for enumerated values"
 msgstr "指定的模式對列舉值來說太小"
 
-#: c/c-decl.cc:10062
+#: c/c-decl.cc:10101
 #, gcc-internal-format
 msgid "enumeration values exceed range of largest integer"
 msgstr "列舉值超過了最大整數類型可表示的範圍"
 
-#: c/c-decl.cc:10071
+#: c/c-decl.cc:10110
 #, fuzzy, gcc-internal-format
 #| msgid "enumeration values exceed range of largest integer"
 msgid "enumeration values exceed range of %qs"
 msgstr "列舉值超過了最大整數類型可表示的範圍"
 
-#: c/c-decl.cc:10180
+#: c/c-decl.cc:10219
 #, fuzzy, gcc-internal-format
 #| msgid "nested redefinition of %<enum %E%>"
 msgid "conflicting redefinition of enum %qT"
 msgstr "巢狀的 %<enum %E%> 重定義"
 
-#: c/c-decl.cc:10212 c/c-decl.cc:10228
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant"
 msgstr "%qE 的列舉值不是一個整數常數"
 
-#: c/c-decl.cc:10223
+#: c/c-decl.cc:10262
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qE is not an integer constant expression"
 msgstr "列舉值值用於 %qE 不是整數常數運算式"
 
-#: c/c-decl.cc:10247
+#: c/c-decl.cc:10286
 #, gcc-internal-format
 msgid "overflow in enumeration values"
 msgstr "列舉值溢出"
 
-#: c/c-decl.cc:10254
+#: c/c-decl.cc:10293
 #, fuzzy, gcc-internal-format
 msgid "enumerator value outside the range of underlying type"
 msgstr "列舉值值 %E 太大用於下層的型態 %<%T%>"
 
-#: c/c-decl.cc:10282
+#: c/c-decl.cc:10321
 #, fuzzy, gcc-internal-format
 msgid "enumerator value outside the range of %qs"
 msgstr "列舉值值 %E 太大用於下層的型態 %<%T%>"
 
-#: c/c-decl.cc:10288
+#: c/c-decl.cc:10327
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C restricts enumerator values to range of %<int%>"
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
 msgstr "ISO C 將列舉值限制在 %<int%> 範圍內"
 
-#: c/c-decl.cc:10489 cp/decl.cc:5981 cp/decl.cc:17800
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, fuzzy, gcc-internal-format
 msgid "inline function %qD given attribute %qs"
 msgstr "內聯函式 %qD 給定的屬性 noinline"
 
-#: c/c-decl.cc:10507
+#: c/c-decl.cc:10546
 #, gcc-internal-format
 msgid "return type is an incomplete type"
 msgstr "回傳不完全的類型"
 
-#: c/c-decl.cc:10519
+#: c/c-decl.cc:10558
 #, gcc-internal-format
 msgid "return type defaults to %<int%>"
 msgstr "回傳類型預設為 %<int%>"
 
-#: c/c-decl.cc:10547
+#: c/c-decl.cc:10586
 #, fuzzy, gcc-internal-format
 #| msgid "Warn about global functions without prototypes"
 msgid "%q+D defined as variadic function without prototype"
 msgstr "全域函式沒有原型時給出警告"
 
-#: c/c-decl.cc:10605
+#: c/c-decl.cc:10644
 #, fuzzy, gcc-internal-format
 msgid "no previous prototype for %qD"
 msgstr "沒有前一個原型用於 %qD"
 
-#: c/c-decl.cc:10614
+#: c/c-decl.cc:10653
 #, fuzzy, gcc-internal-format
 msgid "%qD was used with no prototype before its definition"
 msgstr "%qD 被使用不具任何原型之前它的定義"
 
-#: c/c-decl.cc:10632
+#: c/c-decl.cc:10671
 #, fuzzy, gcc-internal-format
 msgid "%qD was used with no declaration before its definition"
 msgstr "%qD 被使用不具任何宣告之前它的定義"
 
-#: c/c-decl.cc:10651
+#: c/c-decl.cc:10690
 #, fuzzy, gcc-internal-format
 msgid "return type of %qD is not %<int%>"
 msgstr "傳回類型的 %qD 不是 %<int%>"
 
-#: c/c-decl.cc:10653
+#: c/c-decl.cc:10692
 #, gcc-internal-format
 msgid "%<_Atomic%>-qualified return type of %qD"
 msgstr ""
 
-#: c/c-decl.cc:10660
+#: c/c-decl.cc:10699
 #, fuzzy, gcc-internal-format
 msgid "%qD is normally a non-static function"
 msgstr "%qD 是正常非靜態函式"
 
-#: c/c-decl.cc:10711
+#: c/c-decl.cc:10750
 #, fuzzy, gcc-internal-format
 msgid "old-style parameter declarations in prototyped function definition"
 msgstr "舊式參數宣告在中原型的函式定義"
 
-#: c/c-decl.cc:10726
+#: c/c-decl.cc:10765
 #, fuzzy, gcc-internal-format
 msgid "traditional C rejects ISO C style function definitions"
 msgstr "傳統 C 拒絕 ISO C 樣式函式定義"
 
-#: c/c-decl.cc:10743
+#: c/c-decl.cc:10782
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
 msgstr "ISO C 不支援十進位浮點數"
 
-#: c/c-decl.cc:10783 c/c-decl.cc:10787
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, fuzzy, gcc-internal-format
 msgid "old-style function definition"
 msgstr "舊式函式定義"
 
-#: c/c-decl.cc:10800
+#: c/c-decl.cc:10839
 #, fuzzy, gcc-internal-format
 msgid "parameter name missing from parameter list"
 msgstr "參數名稱缺少的從參數清單"
 
-#: c/c-decl.cc:10816
+#: c/c-decl.cc:10855
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a non-parameter"
 msgstr "%qD 宣告的做為 non-parameter"
 
-#: c/c-decl.cc:10824
+#: c/c-decl.cc:10863
 #, fuzzy, gcc-internal-format
 msgid "multiple parameters named %qD"
 msgstr "多重參數具名的 %qD"
 
-#: c/c-decl.cc:10833
+#: c/c-decl.cc:10872
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD declared with void type"
 msgstr "參數 %qD 宣告的與虛值型態"
 
-#: c/c-decl.cc:10862 c/c-decl.cc:10867
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
 #, fuzzy, gcc-internal-format
 msgid "type of %qD defaults to %<int%>"
 msgstr "型態的 %qD 預設值到 %<int%>"
 
-#: c/c-decl.cc:10887
+#: c/c-decl.cc:10926
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD has incomplete type"
 msgstr "參數 %qD 有不完整型態"
 
-#: c/c-decl.cc:10894
+#: c/c-decl.cc:10933
 #, fuzzy, gcc-internal-format
 msgid "declaration for parameter %qD but no such parameter"
 msgstr "宣告用於參數 %qD 但是沒有此類參數"
 
-#: c/c-decl.cc:10947
+#: c/c-decl.cc:10986
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match built-in prototype"
 msgstr "引數個數與內建原型不符"
 
-#: c/c-decl.cc:10958
+#: c/c-decl.cc:10997
 #, gcc-internal-format
 msgid "number of arguments doesn%'t match prototype"
 msgstr "引數數目與原型不符"
 
-#: c/c-decl.cc:10961 c/c-decl.cc:11008 c/c-decl.cc:11022
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
 #, fuzzy, gcc-internal-format
 msgid "prototype declaration"
 msgstr "原型宣告"
 
-#: c/c-decl.cc:11000
+#: c/c-decl.cc:11039
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match built-in prototype"
 msgstr "提升後的引數 %qD 與內建原型不符"
 
-#: c/c-decl.cc:11005
+#: c/c-decl.cc:11044
 #, gcc-internal-format
 msgid "promoted argument %qD doesn%'t match prototype"
 msgstr "提升後的引數 %qD 與原型不符"
 
-#: c/c-decl.cc:11015
+#: c/c-decl.cc:11054
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match built-in prototype"
 msgstr "引數 %qD 與內建原型不符"
 
-#: c/c-decl.cc:11020
+#: c/c-decl.cc:11059
 #, gcc-internal-format
 msgid "argument %qD doesn%'t match prototype"
 msgstr "引數 %qD 與原型不符"
 
-#: c/c-decl.cc:11278 cp/decl.cc:18737
+#: c/c-decl.cc:11317 cp/decl.cc:18743
 #, gcc-internal-format
 msgid "no return statement in function returning non-void"
 msgstr "在有回傳值的函式中未發現 return 敘述"
 
-#: c/c-decl.cc:11297 cp/decl.cc:18808
+#: c/c-decl.cc:11336 cp/decl.cc:18814
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD set but not used"
 msgstr "參數 %qD 設定並不是使用"
 
-#: c/c-decl.cc:11394
+#: c/c-decl.cc:11433
 #, fuzzy, gcc-internal-format
 msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
 msgstr "%<for%> 迴圈初始宣告是只有允許的在中 C99 模式"
 
-#: c/c-decl.cc:11399
+#: c/c-decl.cc:11438
 #, fuzzy, gcc-internal-format
 msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
 msgstr "使用選項 -std=c99 或 -std=gnu99 到編譯您的編碼"
 
-#: c/c-decl.cc:11406
+#: c/c-decl.cc:11445
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C90 does not support %<for%> loop initial declarations"
 msgstr "ISO C90 不支援 %<[*]%> 陣列宣告"
 
-#: c/c-decl.cc:11440
+#: c/c-decl.cc:11479
 #, fuzzy, gcc-internal-format
 msgid "declaration of static variable %qD in %<for%> loop initial declaration"
 msgstr "宣告的靜態變數 %qD 在中 %<for%> 迴圈初始宣告"
 
-#: c/c-decl.cc:11444
+#: c/c-decl.cc:11483
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
 msgstr "宣告的 %<extern%> 變數 %qD 在中 %<for%>迴圈初始宣告"
 
-#: c/c-decl.cc:11451
+#: c/c-decl.cc:11490
 #, gcc-internal-format
 msgid "%<struct %E%> declared in %<for%> loop initial declaration"
 msgstr "%<struct %E%> 宣告於 %<for%> 循環初始宣告中"
 
-#: c/c-decl.cc:11456
+#: c/c-decl.cc:11495
 #, gcc-internal-format
 msgid "%<union %E%> declared in %<for%> loop initial declaration"
 msgstr "%<union %E%> 宣告於 %<for%> 循環初始宣告中"
 
-#: c/c-decl.cc:11462
+#: c/c-decl.cc:11501
 #, gcc-internal-format
 msgid "%<enum %E%> declared in %<for%> loop initial declaration"
 msgstr "%<enum %E%> 宣告於 %<for%> 循環初始宣告中"
 
-#: c/c-decl.cc:11466
+#: c/c-decl.cc:11505
 #, fuzzy, gcc-internal-format
 msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
 msgstr "宣告的 non-variable %qD 在中 %<for%> 迴圈初始宣告"
 
-#: c/c-decl.cc:11753
+#: c/c-decl.cc:11792
 #, fuzzy, gcc-internal-format
 msgid "incompatible address space qualifiers %qs and %qs"
 msgstr "不相容的位址空間限定元 %qs 和 %qs"
 
-#: c/c-decl.cc:11812 c/c-decl.cc:11819
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
 #, fuzzy, gcc-internal-format
 #| msgid "expected declaration specifiers"
 msgid "duplicate %qE declaration specifier"
 msgstr "需要指定宣告"
 
-#: c/c-decl.cc:11847 c/c-decl.cc:12925
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
 #, gcc-internal-format
 msgid "multiple storage classes in declaration specifiers"
 msgstr "宣告指定了多個存儲類別"
 
-#: c/c-decl.cc:11849
+#: c/c-decl.cc:11888
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%qs used with %<auto%>"
@@ -48719,261 +48741,261 @@ msgstr "%<__thread%> 與 %<auto%> 一起使用"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:11854
+#: c/c-decl.cc:11893
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%<auto%> used with %<constexpr%>"
 msgstr "%<__thread%> 與 %<register%> 一起使用"
 
-#: c/c-decl.cc:11867 c/c-decl.cc:12267 c/c-decl.cc:12720
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
 #, gcc-internal-format
 msgid "two or more data types in declaration specifiers"
 msgstr "宣告指定了兩個以上的資料類型"
 
-#: c/c-decl.cc:11879 cp/parser.cc:34266
+#: c/c-decl.cc:11918 cp/parser.cc:34268
 #, gcc-internal-format
 msgid "%<long long long%> is too long for GCC"
 msgstr "%<long long long%> 對 GCC 來說太長了"
 
-#: c/c-decl.cc:11892
+#: c/c-decl.cc:11931
 #, gcc-internal-format
 msgid "ISO C90 does not support %<long long%>"
 msgstr "ISO C90 不支援 %<long long%>"
 
-#: c/c-decl.cc:12129 c/c-parser.cc:11619
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
 #, gcc-internal-format
 msgid "ISO C90 does not support complex types"
 msgstr "ISO C90 不支援複數類型"
 
-#: c/c-decl.cc:12179
+#: c/c-decl.cc:12218
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support saturating types"
 msgstr "ISO C 不支援飽和類型"
 
-#: c/c-decl.cc:12254 c/c-decl.cc:12860 c/c-decl.cc:12919
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
 #, gcc-internal-format
 msgid "duplicate %qE"
 msgstr "重複的 %qE"
 
-#: c/c-decl.cc:12314
+#: c/c-decl.cc:12353
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<__int%d%> types"
 msgstr "ISO C 不支援 %<__int128%>型態"
 
-#: c/c-decl.cc:12336
+#: c/c-decl.cc:12375
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported on this target"
 msgstr "%<__int128%>未被支援用於這個目標"
 
-#: c/c-decl.cc:12379
+#: c/c-decl.cc:12418
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support complex types"
 msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 不支援複數類型"
 
-#: c/c-decl.cc:12498
+#: c/c-decl.cc:12537
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
 msgstr "ISO C 不支援 %<__int128%>型態"
 
-#: c/c-decl.cc:12549 cp/parser.cc:20288
+#: c/c-decl.cc:12588 cp/parser.cc:20288
 #, fuzzy, gcc-internal-format
 msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "%<__int128%>未被支援用於這個目標"
 
-#: c/c-decl.cc:12620
+#: c/c-decl.cc:12659
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support decimal floating-point before C23"
 msgstr "ISO C 不支援十進位浮點數"
 
-#: c/c-decl.cc:12644 c/c-decl.cc:13021 c/c-parser.cc:10626
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, fuzzy, gcc-internal-format
 msgid "fixed-point types not supported for this target"
 msgstr "定點類型不支援用於這個目標"
 
-#: c/c-decl.cc:12646
+#: c/c-decl.cc:12685
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support fixed-point types"
 msgstr "ISO C 不支援定點類型"
 
-#: c/c-decl.cc:12675
+#: c/c-decl.cc:12714
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt%> argument is not an integer constant expression"
 msgstr "大小寫標貼不是整數常數運算式"
 
-#: c/c-decl.cc:12681
+#: c/c-decl.cc:12720
 #, fuzzy, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
 msgstr "列舉值值用於 %qE 不是整數常數運算式"
 
-#: c/c-decl.cc:12688
+#: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
 msgstr ""
 
-#: c/c-decl.cc:12736
+#: c/c-decl.cc:12775
 #, fuzzy, gcc-internal-format
 msgid "C++ lookup of %qD would return a field, not a type"
 msgstr "C++查找的 %qD 會回傳欄位，不是型態"
 
-#: c/c-decl.cc:12749
+#: c/c-decl.cc:12788
 #, gcc-internal-format
 msgid "%qE fails to be a typedef or built in type"
 msgstr "%qE 不是一個 typedef 類型，也不是一個內建類型"
 
-#: c/c-decl.cc:12804
+#: c/c-decl.cc:12843
 #, gcc-internal-format
 msgid "%qE is not at beginning of declaration"
 msgstr "%qE 沒有出現在宣告的開頭"
 
 #. auto may only be used with another storage class specifier,
 #. such as constexpr, if the type is inferred.
-#: c/c-decl.cc:12825 c/c-decl.cc:12902
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%qE used with %<auto%>"
 msgstr "%<__thread%> 與 %<auto%> 一起使用"
 
-#: c/c-decl.cc:12827
+#: c/c-decl.cc:12866
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<register%>"
 msgstr "%<__thread%> 與 %<register%> 一起使用"
 
-#: c/c-decl.cc:12829 c/c-decl.cc:12898
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qE used with %<typedef%>"
 msgstr "%<__thread%> 與 %<typedef%> 一起使用"
 
-#: c/c-decl.cc:12831 c/c-decl.cc:12868
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<constexpr%>"
 msgstr "%<__thread%> 與 %<register%> 一起使用"
 
-#: c/c-decl.cc:12845 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
 #, fuzzy, gcc-internal-format
 msgid "ISO C99 does not support %qE"
 msgstr "ISO C99 不支援 %qE"
 
-#: c/c-decl.cc:12848 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
 #, fuzzy, gcc-internal-format
 msgid "ISO C90 does not support %qE"
 msgstr "ISO C90 不支援 %qE"
 
-#: c/c-decl.cc:12874
+#: c/c-decl.cc:12913
 #, gcc-internal-format
 msgid "%<__thread%> before %<extern%>"
 msgstr "%<__thread%> 出現在 %<extern%> 之前"
 
-#: c/c-decl.cc:12883
+#: c/c-decl.cc:12922
 #, gcc-internal-format
 msgid "%<__thread%> before %<static%>"
 msgstr "%<__thread%> 出現在 %<static%> 之前"
 
-#: c/c-decl.cc:12889
+#: c/c-decl.cc:12928
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<auto%>"
 msgid "%<typedef%> used with %<auto%>"
 msgstr "%<__thread%> 與 %<auto%> 一起使用"
 
-#: c/c-decl.cc:12896
+#: c/c-decl.cc:12935
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<register%>"
 msgid "%qE used with %<extern%>"
 msgstr "%<__thread%> 與 %<register%> 一起使用"
 
-#: c/c-decl.cc:12904
+#: c/c-decl.cc:12943
 #, fuzzy, gcc-internal-format
 msgid "%qE used with %qs"
 msgstr "%qs 必須被使用與 %qs"
 
-#: c/c-decl.cc:12917
+#: c/c-decl.cc:12956
 #, gcc-internal-format
 msgid "duplicate %<_Thread_local%> or %<__thread%>"
 msgstr ""
 
-#: c/c-decl.cc:12933
+#: c/c-decl.cc:12972
 #, fuzzy, gcc-internal-format
 msgid "%qs used with %qE"
 msgstr "%qs 必須被使用與 %qs"
 
-#: c/c-decl.cc:12941
+#: c/c-decl.cc:12980
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %qE"
 msgid "%<constexpr%> used with %qE"
 msgstr "%<__thread%> 與 %qE 一起使用"
 
-#: c/c-decl.cc:13018
+#: c/c-decl.cc:13057
 #, fuzzy, gcc-internal-format
 msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
 msgstr "%<_Sat%>被使用而無需 %<_Fract%>或 %<_Accum%>"
 
-#: c/c-decl.cc:13033
+#: c/c-decl.cc:13072
 #, gcc-internal-format
 msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C 不支援單獨用 %<complex%> 表示 %<double complex%>"
 
-#: c/c-decl.cc:13044
+#: c/c-decl.cc:13083
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support %<[*]%> array declarators"
 msgid "ISO C does not support %<auto%> type deduction before C23"
 msgstr "ISO C90 不支援 %<[*]%> 陣列宣告"
 
-#: c/c-decl.cc:13073
+#: c/c-decl.cc:13112
 #, gcc-internal-format
 msgid "%<__auto_type%> followed by %<[[]]%> attributes"
 msgstr ""
 
-#: c/c-decl.cc:13099 c/c-decl.cc:13115 c/c-decl.cc:13141
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
 #, gcc-internal-format
 msgid "ISO C does not support complex integer types"
 msgstr "ISO C 不支援複整數"
 
-#: c/c-decl.cc:13284
+#: c/c-decl.cc:13323
 #, fuzzy, gcc-internal-format
 #| msgid "Fixed line length must be at least seven."
 msgid "%<signed _BitInt%> argument must be at least 2"
 msgstr "固定格式的列長至少為七。"
 
-#: c/c-decl.cc:13293
+#: c/c-decl.cc:13332
 #, fuzzy, gcc-internal-format
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
 msgstr "ISO C++不支援 %<__int128%>用於 %qs"
 
-#: c/c-decl.cc:13592 cp/semantics.cc:6389
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
 msgstr ""
 
-#: c/c-decl.cc:13596 cp/semantics.cc:6393
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
 #, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
 msgstr ""
 
-#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5736
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
 #, fuzzy, gcc-internal-format
 #| msgid "left shift count is negative"
 msgid "left shift of negative value"
 msgstr "左移次數為負"
 
-#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5744
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
 #, gcc-internal-format
 msgid "left shift count is negative"
 msgstr "左移次數為負"
 
-#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5683
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
 #, gcc-internal-format
 msgid "right shift count is negative"
 msgstr "右移次數為負"
 
-#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5752
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
 #, gcc-internal-format
 msgid "left shift count >= width of type"
 msgstr "左移次數大於或等於類型寬度"
 
-#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5694
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
 #, gcc-internal-format
 msgid "right shift count >= width of type"
 msgstr "右移次數大於或等於類型寬度"
@@ -49005,7 +49027,7 @@ msgstr ""
 msgid "to match this %qs"
 msgstr "沒有匹配用於 %qs 在中 %<%s %E%>"
 
-#: c/c-parser.cc:1409 cp/parser.cc:34503
+#: c/c-parser.cc:1409 cp/parser.cc:34505
 #, fuzzy, gcc-internal-format
 msgid "expected end of line"
 msgstr "預期的列尾"
@@ -49015,8 +49037,8 @@ msgstr "預期的列尾"
 msgid "ISO C forbids an empty translation unit"
 msgstr "ISO C 禁止清空轉譯單位"
 
-#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25405 cp/parser.cc:49093
-#: cp/semantics.cc:3633 cp/semantics.cc:3642
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
 #, gcc-internal-format
 msgid "%qs without corresponding %qs"
 msgstr ""
@@ -49057,9 +49079,9 @@ msgstr "不明型態名稱 %qE"
 msgid "unknown type name %qE"
 msgstr "不明型態名稱 %qE"
 
-#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23035
-#: c/c-parser.cc:23634 c/c-parser.cc:24220 cp/parser.cc:46431
-#: cp/parser.cc:51179
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
 #, gcc-internal-format
 msgid "expected declaration specifiers"
 msgstr "需要指定宣告"
@@ -49092,7 +49114,7 @@ msgstr "%q+D 不能有 section 屬性"
 msgid "expected %<;%>, identifier or %<(%>"
 msgstr "預期 %<;%>，識別碼或 %<(%>"
 
-#: c/c-parser.cc:2439 cp/parser.cc:36757 cp/parser.cc:36829
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
 #, fuzzy, gcc-internal-format
 msgid "prefix attributes are ignored for methods"
 msgstr "前綴屬性被忽略用於方法"
@@ -49113,7 +49135,7 @@ msgstr "未預期的屬性"
 msgid "%<fallthrough%> attribute not followed by %<;%>"
 msgstr "%q+D 不能有 section 屬性"
 
-#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3647
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
 #, fuzzy, gcc-internal-format
 #| msgid "section attribute not allowed for %q+D"
 msgid "%<assume%> attribute not followed by %<;%>"
@@ -49209,7 +49231,7 @@ msgstr "運算式在中靜態假設不是常數"
 msgid "static assertion failed: %E"
 msgstr "靜態假設失敗：%E"
 
-#: c/c-parser.cc:3164 cp/semantics.cc:11751
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
 #, fuzzy, gcc-internal-format
 msgid "static assertion failed"
 msgstr "靜態假設失敗：%E"
@@ -49284,10 +49306,10 @@ msgstr "範本參數 %d 無效"
 #: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
 #: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
 #: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
-#: c/c-parser.cc:21828 c/c-parser.cc:24698 c/c-parser.cc:24887
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
 #: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
-#: cp/parser.cc:34506 cp/parser.cc:37734 cp/parser.cc:40861 cp/parser.cc:41053
-#: cp/parser.cc:48026 cp/parser.cc:50445
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
 #, gcc-internal-format
 msgid "expected identifier"
 msgstr "需要識別碼"
@@ -49442,7 +49464,7 @@ msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause
 msgstr ""
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
-#: cp/parser.cc:48622
+#: cp/parser.cc:48620
 #, gcc-internal-format
 msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
 msgstr ""
@@ -49452,8 +49474,8 @@ msgstr ""
 msgid "OpenMP %<omp::decl%> attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25088 cp/parser.cc:12272
-#: cp/parser.cc:48602 cp/parser.cc:48742
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
 msgstr ""
@@ -49630,12 +49652,12 @@ msgstr "ISO C 不允許省略 ?: 運算式中的第二項"
 
 #. Location of the binary operator.
 #. Quiet warning.
-#: c/c-parser.cc:9399 cp/typeck.cc:5515
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
 #, gcc-internal-format
 msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
 msgstr ""
 
-#: c/c-parser.cc:9405 cp/typeck.cc:5520
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
 #, fuzzy, gcc-internal-format
 msgid "first %<sizeof%> operand was declared here"
 msgstr "型態的欄位宣告的在此"
@@ -49792,7 +49814,7 @@ msgstr "ISO C 不支援 %<__int128%>型態"
 
 #: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
 #: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
-#: cp/parser.cc:43085
+#: cp/parser.cc:43087
 #, gcc-internal-format
 msgid "expected expression"
 msgstr "需要運算式"
@@ -50119,12 +50141,12 @@ msgstr "objective-c 方法宣告被預期"
 msgid "no type or storage class may be specified here,"
 msgstr "沒有型態或貯藏類別也許會被指定的在此，"
 
-#: c/c-parser.cc:14137 cp/parser.cc:37591
+#: c/c-parser.cc:14137 cp/parser.cc:37593
 #, fuzzy, gcc-internal-format
 msgid "empty property attribute list"
 msgstr "不明內容屬性"
 
-#: c/c-parser.cc:14151 cp/parser.cc:37604
+#: c/c-parser.cc:14151 cp/parser.cc:37606
 #, fuzzy, gcc-internal-format
 #| msgid "missing Code attribute"
 msgid "missing property attribute"
@@ -50135,57 +50157,57 @@ msgstr "缺少 Code 屬性"
 msgid "unknown property attribute %<%s%s%>"
 msgstr "不明內容屬性"
 
-#: c/c-parser.cc:14193 cp/parser.cc:37641
+#: c/c-parser.cc:14193 cp/parser.cc:37643
 #, fuzzy, gcc-internal-format
 msgid "unknown property attribute"
 msgstr "不明內容屬性"
 
-#: c/c-parser.cc:14202 cp/parser.cc:37650
+#: c/c-parser.cc:14202 cp/parser.cc:37652
 #, fuzzy, gcc-internal-format
 msgid "expected %<=%> after Objective-C %qE"
 msgstr "重複 %<@%>之前 Objective-C 字串"
 
-#: c/c-parser.cc:14213 cp/parser.cc:37664
+#: c/c-parser.cc:14213 cp/parser.cc:37666
 #, fuzzy, gcc-internal-format
 msgid "expected %qE selector name"
 msgstr "預期 selection-statement"
 
-#: c/c-parser.cc:14229 cp/parser.cc:37683
+#: c/c-parser.cc:14229 cp/parser.cc:37685
 #, fuzzy, gcc-internal-format
 msgid "setter method names must terminate with %<:%>"
 msgstr "setter 名稱必須終止與 %<:%>"
 
-#: c/c-parser.cc:14453 cp/semantics.cc:13238
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
 #, gcc-internal-format
 msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
 msgstr ""
 
-#: c/c-parser.cc:14489 cp/parser.cc:50800
+#: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
 msgstr ""
 
-#: c/c-parser.cc:14509 c/c-parser.cc:23631 c/c-parser.cc:23940
-#: c/c-parser.cc:24003 c/c-parser.cc:24113 cp/parser.cc:46428
-#: cp/parser.cc:46776 cp/parser.cc:46891 cp/parser.cc:46990 cp/parser.cc:50821
-#: cp/parser.cc:50837 cp/parser.cc:50853 cp/parser.cc:50870 cp/parser.cc:50887
-#: cp/parser.cc:50904 cp/parser.cc:50931 cp/parser.cc:50945 cp/parser.cc:50970
-#: cp/parser.cc:50984
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma %s%> may only be used in compound statements"
 msgstr "%<# pragma omp flush%>也許會只有被已用於複合陳述"
 
-#: c/c-parser.cc:14532 cp/parser.cc:50959
+#: c/c-parser.cc:14532 cp/parser.cc:50957
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be at file scope"
 msgstr "%<# pragma GCC pchpreprocess%(_P)>必須是先"
 
-#: c/c-parser.cc:14622 cp/parser.cc:51083
+#: c/c-parser.cc:14622 cp/parser.cc:51081
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
 msgstr "%<# pragma omp section%>也許會只有被已用於 %<# pragma omp sections%>建構"
 
-#: c/c-parser.cc:14629 cp/parser.cc:51089
+#: c/c-parser.cc:14629 cp/parser.cc:51087
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
 msgstr "%<# pragma omp section%>也許會只有被已用於 %<# pragma omp sections%>建構"
@@ -50195,25 +50217,25 @@ msgstr "%<# pragma omp section%>也許會只有被已用於 %<# pragma omp secti
 msgid "%<#pragma %s%> may only be used at file scope"
 msgstr "%<# pragma GCC pchpreprocess%(_P)>必須是先"
 
-#: c/c-parser.cc:14724 cp/parser.cc:51166
+#: c/c-parser.cc:14724 cp/parser.cc:51164
 #, fuzzy, gcc-internal-format
 msgid "for, while or do statement expected"
 msgstr "用於敘述預期"
 
-#: c/c-parser.cc:14737 cp/parser.cc:50811
+#: c/c-parser.cc:14737 cp/parser.cc:50809
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC pch_preprocess%> must be first"
 msgstr "%<# pragma GCC pchpreprocess%(_P)>必須是先"
 
 #: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
 #: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
-#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25954
-#: c/c-parser.cc:25962 c/c-parser.cc:26232 c/c-parser.cc:26242
-#: c/c-parser.cc:26336 c/c-parser.cc:26343 c/c-parser.cc:26350
-#: cp/parser.cc:38114 cp/parser.cc:41693 cp/parser.cc:42611 cp/parser.cc:42648
-#: cp/parser.cc:42837 cp/parser.cc:42900 cp/parser.cc:42907 cp/parser.cc:42914
-#: cp/parser.cc:48245 cp/parser.cc:48252 cp/parser.cc:48259 cp/parser.cc:49706
-#: cp/parser.cc:49714 cp/parser.cc:49866 cp/parser.cc:49876
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
 #, fuzzy, gcc-internal-format
 msgid "too many %qs clauses"
 msgstr "太多 %qs 子句"
@@ -50228,63 +50250,63 @@ msgstr "numthreads 運算式必須是積分(_T)"
 msgid "expected %<)%> or %<,%>"
 msgstr "預期 %<,%>或 %<)%>"
 
-#: c/c-parser.cc:15746 c/c-parser.cc:26638
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable"
 msgstr "%qD 並非變數"
 
-#: c/c-parser.cc:15750 cp/semantics.cc:8614
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a pointer variable"
 msgstr "%qD 並非變數"
 
-#: c/c-parser.cc:15792 cp/parser.cc:38995
+#: c/c-parser.cc:15792 cp/parser.cc:38997
 #, fuzzy, gcc-internal-format
 msgid "collapse argument needs positive constant integer expression"
 msgstr "崩潰引數需要正面的常數整數運算式"
 
-#: c/c-parser.cc:15887 cp/parser.cc:39073
+#: c/c-parser.cc:15887 cp/parser.cc:39075
 #, fuzzy, gcc-internal-format
 msgid "expected %<none%> or %<present%>"
 msgstr "預期 %<none%> 或 %<shared%>"
 
-#: c/c-parser.cc:15889 cp/parser.cc:39075
+#: c/c-parser.cc:15889 cp/parser.cc:39077
 #, fuzzy, gcc-internal-format
 msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "預期 %<# pragma omp section%>或 %<}%>"
 
-#: c/c-parser.cc:15974 cp/parser.cc:39145
+#: c/c-parser.cc:15974 cp/parser.cc:39147
 #, fuzzy, gcc-internal-format
 msgid "expected constant logical expression"
 msgstr "預期的整數運算式"
 
-#: c/c-parser.cc:16051 cp/parser.cc:39227
+#: c/c-parser.cc:16051 cp/parser.cc:39229
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
 msgstr "預期 %<;%>，%<,%>或 %<)%>"
 
-#: c/c-parser.cc:16071 c/c-parser.cc:23996 c/c-parser.cc:24106
-#: cp/parser.cc:39245 cp/parser.cc:46768 cp/parser.cc:46883
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%>"
 msgstr "預期 %<catch%>"
 
-#: c/c-parser.cc:16124 cp/parser.cc:39300
+#: c/c-parser.cc:16124 cp/parser.cc:39302
 #, gcc-internal-format
 msgid "too many %<if%> clauses with %qs modifier"
 msgstr ""
 
-#: c/c-parser.cc:16131 cp/parser.cc:39307
+#: c/c-parser.cc:16131 cp/parser.cc:39309
 #, fuzzy, gcc-internal-format
 msgid "too many %<if%> clauses"
 msgstr "太多 %qs 子句"
 
-#: c/c-parser.cc:16133 cp/parser.cc:39309
+#: c/c-parser.cc:16133 cp/parser.cc:39311
 #, fuzzy, gcc-internal-format
 msgid "too many %<if%> clauses without modifier"
 msgstr "太多 %qs 子句"
 
-#: c/c-parser.cc:16139 cp/parser.cc:39315
+#: c/c-parser.cc:16139 cp/parser.cc:39317
 #, gcc-internal-format
 msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
 msgstr ""
@@ -50307,22 +50329,22 @@ msgstr "%<num_threads%> 值必須是正值"
 msgid "%<num_tasks%> value must be positive"
 msgstr "%<num_threads%> 值必須是正值"
 
-#: c/c-parser.cc:16378 cp/semantics.cc:8828
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
 #, fuzzy, gcc-internal-format
 msgid "%<grainsize%> value must be positive"
 msgstr "%<num_threads%> 值必須是正值"
 
-#: c/c-parser.cc:16427 cp/semantics.cc:8858
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
 #, fuzzy, gcc-internal-format
 msgid "%<priority%> value must be non-negative"
 msgstr "『%s』於 %L 必須是 nonnegative"
 
-#: c/c-parser.cc:16461 cp/parser.cc:39541
+#: c/c-parser.cc:16461 cp/parser.cc:39543
 #, fuzzy, gcc-internal-format
 msgid "expected constant integer expression with valid sync-hint value"
 msgstr "預期的整數運算式"
 
-#: c/c-parser.cc:16533 cp/parser.cc:39611
+#: c/c-parser.cc:16533 cp/parser.cc:39613
 #, fuzzy, gcc-internal-format
 msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
 msgstr "預期 %<+%>，%<*%>，%<-%>，%<&%>，%<^%>，%<|%>，%<&&%>，%<||%>，%<min%>或 %<max%>expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> or %<max%>預期 %<+%>，%<*%>，%<-%>，%<&%>，%<^%>，%<|%>，%<&&%>，%<||%>，%<min%>或 %<max%>"
@@ -50332,95 +50354,95 @@ msgstr "預期 %<+%>，%<*%>，%<-%>，%<&%>，%<^%>，%<|%>，%<&&%>，%<||%>
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
 msgstr "預期 %<class%>，%<typename%>，或 %<template%>"
 
-#: c/c-parser.cc:16678 cp/parser.cc:39763
+#: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with %qs category"
 msgstr ""
 
-#: c/c-parser.cc:16681 cp/parser.cc:39766
+#: c/c-parser.cc:16681 cp/parser.cc:39768
 #, gcc-internal-format
 msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr ""
 
-#: c/c-parser.cc:16765 cp/semantics.cc:7685 cp/semantics.cc:7740
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
 #, fuzzy, gcc-internal-format
 msgid "%qs expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7719
-#: cp/semantics.cc:7754
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
 #, fuzzy, gcc-internal-format
 msgid "%qs value must be positive"
 msgstr "%<num_threads%> 值必須是正值"
 
-#: c/c-parser.cc:16839 cp/parser.cc:38767
+#: c/c-parser.cc:16839 cp/parser.cc:38769
 #, fuzzy, gcc-internal-format
 msgid "too many %<static%> arguments"
 msgstr "太多引數"
 
-#: c/c-parser.cc:16873 cp/parser.cc:38800
+#: c/c-parser.cc:16873 cp/parser.cc:38802
 #, fuzzy, gcc-internal-format
 msgid "unexpected argument"
 msgstr "未預期的屬性"
 
-#: c/c-parser.cc:17040 cp/semantics.cc:9045
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
 #, fuzzy, gcc-internal-format
 msgid "%<tile%> argument needs positive integral constant"
 msgstr "%qE 屬性引數不是整數常數"
 
-#: c/c-parser.cc:17108 cp/parser.cc:41874
+#: c/c-parser.cc:17108 cp/parser.cc:41876
 #, fuzzy, gcc-internal-format
 msgid "too many %<self%> clauses"
 msgstr "太多 %qs 子句"
 
-#: c/c-parser.cc:17150 cp/parser.cc:39816
+#: c/c-parser.cc:17150 cp/parser.cc:39818
 #, fuzzy, gcc-internal-format
 msgid "expected %<reproducible%> or %<unconstrained%>"
 msgstr "預期 %<none%> 或 %<shared%>"
 
-#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39825
-#: cp/parser.cc:39835
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
 #, fuzzy, gcc-internal-format
 msgid "expected %<concurrent%>"
 msgstr "預期 %<using%>"
 
-#: c/c-parser.cc:17201 cp/parser.cc:39875
+#: c/c-parser.cc:17201 cp/parser.cc:39877
 #, fuzzy, gcc-internal-format
 msgid "expected %<teams%>, %<parallel%> or %<thread%>"
 msgstr "預期 %<class%>，%<typename%>，或 %<template%>"
 
-#: c/c-parser.cc:17254 cp/parser.cc:39943
+#: c/c-parser.cc:17254 cp/parser.cc:39945
 #, fuzzy, gcc-internal-format
 msgid "ordered argument needs positive constant integer expression"
 msgstr "崩潰引數需要正面的常數整數運算式"
 
-#: c/c-parser.cc:17379 c/c-parser.cc:25505 cp/parser.cc:49347
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
 #, fuzzy, gcc-internal-format
 msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
 msgstr "預期 %<+%>，%<*%>，%<-%>，%<&%>，%<^%>，%<|%>，%<&&%>，%<||%>，%<min%>或 %<max%>expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> or %<max%>預期 %<+%>，%<*%>，%<-%>，%<&%>，%<^%>，%<|%>，%<&&%>，%<||%>，%<min%>或 %<max%>"
 
-#: c/c-parser.cc:17501 cp/parser.cc:40201
+#: c/c-parser.cc:17501 cp/parser.cc:40203
 #, fuzzy, gcc-internal-format
 #| msgid "both %<long%> and %<void%> in declaration specifiers"
 msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
 msgstr "宣告中同時使用了 %<long%> 和 %<void%>"
 
-#: c/c-parser.cc:17555 cp/parser.cc:40217
+#: c/c-parser.cc:17555 cp/parser.cc:40219
 #, fuzzy, gcc-internal-format
 msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
 msgstr "排程 %<runtime%> 不需 %<chunksize%(_S)>參數"
 
-#: c/c-parser.cc:17559 cp/parser.cc:40220
+#: c/c-parser.cc:17559 cp/parser.cc:40222
 #, fuzzy, gcc-internal-format
 msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
 msgstr "排程 %<auto%> 不需 %<chunksize%(_S)>參數"
 
-#: c/c-parser.cc:17572 cp/semantics.cc:7801
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
 #, fuzzy, gcc-internal-format
 msgid "chunk size value must be positive"
 msgstr "%<num_threads%> 值必須是正值"
 
-#: c/c-parser.cc:17595 cp/parser.cc:40240
+#: c/c-parser.cc:17595 cp/parser.cc:40242
 #, fuzzy, gcc-internal-format
 msgid "invalid schedule kind"
 msgstr "無效的排程 kind"
@@ -50430,22 +50452,22 @@ msgstr "無效的排程 kind"
 msgid "%<num_teams%> value must be positive"
 msgstr "%<num_threads%> 值必須是正值"
 
-#: c/c-parser.cc:17753 cp/semantics.cc:7768
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
 #, gcc-internal-format
 msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
 msgstr ""
 
-#: c/c-parser.cc:17802 cp/semantics.cc:7897
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
 #, fuzzy, gcc-internal-format
 msgid "%<thread_limit%> value must be positive"
 msgstr "%<num_threads%> 值必須是正值"
 
-#: c/c-parser.cc:17847 cp/semantics.cc:8025
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
 #, fuzzy, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
 msgstr "崩潰引數需要正面的常數整數運算式"
 
-#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42603
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
 #, fuzzy, gcc-internal-format
 msgid "expected %<allocator%> or %<align%>"
 msgstr "預期 %<,%>或 %<)%>"
@@ -50456,23 +50478,23 @@ msgstr "預期 %<,%>或 %<)%>"
 msgid "duplicate %qs modifier"
 msgstr "重複的 %qs"
 
-#: c/c-parser.cc:18014 cp/semantics.cc:8160
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
 #, gcc-internal-format
 msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:18025 cp/semantics.cc:8115 cp/semantics.cc:8131
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
 #, fuzzy, gcc-internal-format
 msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
 msgstr "崩潰引數需要正面的常數整數運算式"
 
-#: c/c-parser.cc:18144 cp/parser.cc:40687
+#: c/c-parser.cc:18144 cp/parser.cc:40689
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate cv-qualifier"
 msgid "multiple linear modifiers"
 msgstr "重複的 cv 限定"
 
-#: c/c-parser.cc:18156 cp/parser.cc:40700
+#: c/c-parser.cc:18156 cp/parser.cc:40702
 #, fuzzy, gcc-internal-format
 #| msgid "duplicate cv-qualifier"
 msgid "multiple %<step%> modifiers"
@@ -50493,64 +50515,64 @@ msgstr "崩潰引數需要正面的常數整數運算式"
 msgid "%<simdlen%> clause expression must be positive constant integer expression"
 msgstr "崩潰引數需要正面的常數整數運算式"
 
-#: c/c-parser.cc:18643 cp/parser.cc:41247
+#: c/c-parser.cc:18643 cp/parser.cc:41249
 #, fuzzy, gcc-internal-format
 msgid "%<iterator%> modifier incompatible with %qs"
 msgstr "%qs 是不相容的與 %qs"
 
-#: c/c-parser.cc:18691 cp/parser.cc:41302 cp/parser.cc:41754 cp/parser.cc:41804
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
 #, fuzzy, gcc-internal-format
 msgid "invalid depend kind"
 msgstr "無效的排程 kind"
 
-#: c/c-parser.cc:18752 cp/parser.cc:41332
+#: c/c-parser.cc:18752 cp/parser.cc:41334
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mask"
 msgid "invalid doacross kind"
 msgstr "無效遮罩"
 
-#: c/c-parser.cc:18821 cp/parser.cc:41475
+#: c/c-parser.cc:18821 cp/parser.cc:41477
 #, fuzzy, gcc-internal-format
 msgid "too many %<always%> modifiers"
 msgstr "太多 %qs 子句"
 
-#: c/c-parser.cc:18831 cp/parser.cc:41488
+#: c/c-parser.cc:18831 cp/parser.cc:41490
 #, fuzzy, gcc-internal-format
 msgid "too many %<close%> modifiers"
 msgstr "太多 %qs 子句"
 
-#: c/c-parser.cc:18841 cp/parser.cc:41501
+#: c/c-parser.cc:18841 cp/parser.cc:41503
 #, fuzzy, gcc-internal-format
 msgid "too many %<present%> modifiers"
 msgstr "太多 %qs 子句"
 
-#: c/c-parser.cc:18849 cp/parser.cc:41512
+#: c/c-parser.cc:18849 cp/parser.cc:41514
 #, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
 msgstr ""
 
-#: c/c-parser.cc:18887 cp/parser.cc:41552
+#: c/c-parser.cc:18887 cp/parser.cc:41554
 #, fuzzy, gcc-internal-format
 #| msgid "invalid mask"
 msgid "invalid map kind"
 msgstr "無效遮罩"
 
-#: c/c-parser.cc:18939 cp/parser.cc:41616
+#: c/c-parser.cc:18939 cp/parser.cc:41618
 #, gcc-internal-format
 msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
 msgstr ""
 
-#: c/c-parser.cc:18951 cp/parser.cc:41627
+#: c/c-parser.cc:18951 cp/parser.cc:41629
 #, fuzzy, gcc-internal-format
 msgid "expected %<ancestor%> or %<device_num%>"
 msgstr "預期 %<none%> 或 %<shared%>"
 
-#: c/c-parser.cc:18974 cp/semantics.cc:7922
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
 #, fuzzy, gcc-internal-format
 msgid "the %<device%> clause expression must evaluate to %<1%>"
 msgstr "排程資料塊大小運算式必須是積分"
 
-#: c/c-parser.cc:19007 cp/parser.cc:41698
+#: c/c-parser.cc:19007 cp/parser.cc:41700
 #, fuzzy, gcc-internal-format
 msgid "invalid dist_schedule kind"
 msgstr "無效的排程 kind"
@@ -50565,90 +50587,90 @@ msgstr "無效的排程 kind"
 msgid "expected %<host%>, %<nohost%> or %<any%>"
 msgstr "預期 %<;%>，%<,%>或 %<)%>"
 
-#: c/c-parser.cc:19228 cp/semantics.cc:8341
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
 #, gcc-internal-format
 msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
 msgstr ""
 
-#: c/c-parser.cc:19440 cp/parser.cc:42090
+#: c/c-parser.cc:19440 cp/parser.cc:42092
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenACC clause"
 msgstr "預期的指標"
 
-#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42101
-#: cp/parser.cc:42509
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
 #, fuzzy, gcc-internal-format
 msgid "%qs is not valid for %qs"
 msgstr "%qs 無效用於 %qs"
 
-#: c/c-parser.cc:19496 cp/parser.cc:42149
+#: c/c-parser.cc:19496 cp/parser.cc:42151
 #, gcc-internal-format
 msgid "clauses in %<simd%> trait should be separated by %<,%>"
 msgstr ""
 
-#: c/c-parser.cc:19649 cp/parser.cc:42342
+#: c/c-parser.cc:19649 cp/parser.cc:42344
 #, fuzzy, gcc-internal-format
 msgid "%qs must be the first clause of %qs"
 msgstr "%qs 必須被使用與 %qs"
 
-#: c/c-parser.cc:19805 cp/parser.cc:42498
+#: c/c-parser.cc:19805 cp/parser.cc:42500
 #, fuzzy, gcc-internal-format
 msgid "expected an OpenMP clause"
 msgstr "預期的指標"
 
-#: c/c-parser.cc:19964 cp/parser.cc:47351
+#: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
 msgid "no valid clauses specified in %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:19974 cp/parser.cc:47361
+#: c/c-parser.cc:19974 cp/parser.cc:47359
 #, fuzzy, gcc-internal-format
 msgid "array section in %<#pragma acc declare%>"
 msgstr "陣列區段在中『%s』呼叫於 %L"
 
-#: c/c-parser.cc:19994 cp/parser.cc:47381
+#: c/c-parser.cc:19994 cp/parser.cc:47379
 #, gcc-internal-format
 msgid "%qD must be a global variable in %<#pragma acc declare link%>"
 msgstr ""
 
-#: c/c-parser.cc:20005 cp/parser.cc:47392
+#: c/c-parser.cc:20005 cp/parser.cc:47390
 #, fuzzy, gcc-internal-format
 msgid "invalid OpenACC clause at file scope"
 msgstr "無效的輸入宣告"
 
-#: c/c-parser.cc:20012 cp/parser.cc:47399
+#: c/c-parser.cc:20012 cp/parser.cc:47397
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
 msgstr "宣告的 %<extern%> 變數 %qD 在中 %<for%>迴圈初始宣告"
 
-#: c/c-parser.cc:20020 cp/parser.cc:47407
+#: c/c-parser.cc:20020 cp/parser.cc:47405
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<--%> on bool variable %qD"
 msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
 msgstr "對於 bool 變數 %qD 使用 %<--%> 無效"
 
-#: c/c-parser.cc:20031 cp/parser.cc:47429
+#: c/c-parser.cc:20031 cp/parser.cc:47427
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<--%> on bool variable %qD"
 msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
 msgstr "對於 bool 變數 %qD 使用 %<--%> 無效"
 
-#: c/c-parser.cc:20041 cp/parser.cc:47452
+#: c/c-parser.cc:20041 cp/parser.cc:47450
 #, gcc-internal-format
 msgid "variable %qD used more than once with %<#pragma acc declare%>"
 msgstr ""
 
-#: c/c-parser.cc:20134 cp/parser.cc:47536
+#: c/c-parser.cc:20134 cp/parser.cc:47534
 #, fuzzy, gcc-internal-format
 msgid "expected %<data%> after %<#pragma acc %s%>"
 msgstr "預期的字串之後 %<# pragma message%>"
 
-#: c/c-parser.cc:20150 cp/parser.cc:47553
+#: c/c-parser.cc:20150 cp/parser.cc:47551
 #, gcc-internal-format
 msgid "%<#pragma acc %s data%> has no data movement clause"
 msgstr ""
 
-#: c/c-parser.cc:20182 cp/parser.cc:47311
+#: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
 msgstr ""
@@ -50663,7 +50685,7 @@ msgstr "%qE 未被宣告"
 msgid "expected function name"
 msgstr "預期的函式"
 
-#: c/c-parser.cc:20433 cp/parser.cc:50133
+#: c/c-parser.cc:20433 cp/parser.cc:50131
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member template function"
 msgid "%qD does not refer to a function"
@@ -50674,22 +50696,22 @@ msgstr "%qD 不是一個成員範本函式"
 msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20496 cp/parser.cc:50184 cp/parser.cc:50231
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
 msgstr ""
 
-#: c/c-parser.cc:20527 cp/parser.cc:50259
+#: c/c-parser.cc:20527 cp/parser.cc:50257
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before use"
 msgstr ""
 
-#: c/c-parser.cc:20528 cp/parser.cc:50261
+#: c/c-parser.cc:20528 cp/parser.cc:50259
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma acc routine%> must be applied before definition"
 msgstr "%<# pragma align%>必須出現之前宣告的 %D, 忽略"
 
-#: c/c-parser.cc:20573 cp/parser.cc:47769
+#: c/c-parser.cc:20573 cp/parser.cc:47767
 #, gcc-internal-format
 msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
 msgstr ""
@@ -50715,7 +50737,7 @@ msgstr ""
 msgid "modified here"
 msgstr "聯合定義的在此"
 
-#: c/c-parser.cc:20724 cp/parser.cc:42623 cp/parser.cc:42638
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, fuzzy, gcc-internal-format
 msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
 msgstr "崩潰引數需要正面的常數整數運算式"
@@ -50755,111 +50777,111 @@ msgstr ""
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
 msgstr ""
 
-#: c/c-parser.cc:20949 cp/parser.cc:42803
+#: c/c-parser.cc:20949 cp/parser.cc:42805
 #, fuzzy, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
 msgstr "預期 %<;%>，%<,%>或 %<)%>"
 
-#: c/c-parser.cc:20988 cp/parser.cc:42842
+#: c/c-parser.cc:20988 cp/parser.cc:42844
 #, fuzzy, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
 msgstr "預期 %<class%>，%<typename%>，或 %<template%>"
 
-#: c/c-parser.cc:21012 cp/parser.cc:42871
+#: c/c-parser.cc:21012 cp/parser.cc:42873
 #, fuzzy, gcc-internal-format
 msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
 msgstr "預期 %<+%>，%<*%>，%<-%>，%<&%>，%<^%>，%<|%>，%<&&%>，%<||%>，%<min%>或 %<max%>expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%>, %<min%> or %<max%>預期 %<+%>，%<*%>，%<-%>，%<&%>，%<^%>，%<|%>，%<&&%>，%<||%>，%<min%>或 %<max%>"
 
-#: c/c-parser.cc:21027 cp/parser.cc:42886
+#: c/c-parser.cc:21027 cp/parser.cc:42888
 #, fuzzy, gcc-internal-format
 msgid "too many atomic clauses"
 msgstr "太多 %qs 子句"
 
-#: c/c-parser.cc:21034 cp/parser.cc:42893
+#: c/c-parser.cc:21034 cp/parser.cc:42895
 #, fuzzy, gcc-internal-format
 msgid "too many memory order clauses"
 msgstr "太多 %qs 子句"
 
-#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42931
-#: cp/parser.cc:42938
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
 #, fuzzy, gcc-internal-format
 msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
 msgstr "%qE 有無效的型態用於 %<reduction%>"
 
-#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42944
-#: cp/parser.cc:42949
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
 #, fuzzy, gcc-internal-format
 #| msgid "%qT referred to as %qs"
 msgid "%qs clause requires %qs clause"
 msgstr "%qT 做為 %qs 被參照"
 
-#: c/c-parser.cc:21113 cp/parser.cc:42972
+#: c/c-parser.cc:21113 cp/parser.cc:42974
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21124 cp/parser.cc:42983
+#: c/c-parser.cc:21124 cp/parser.cc:42985
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
 msgstr ""
 
-#: c/c-parser.cc:21156 cp/parser.cc:43015
+#: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21166 cp/parser.cc:43025
+#: c/c-parser.cc:21166 cp/parser.cc:43027
 #, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
 msgstr ""
 
-#: c/c-parser.cc:21289 cp/parser.cc:43125
+#: c/c-parser.cc:21289 cp/parser.cc:43127
 #, fuzzy, gcc-internal-format
 msgid "expected %<==%> comparison in %<if%> condition"
 msgstr "預期 %<;%>之後聯合定義"
 
-#: c/c-parser.cc:21296 cp/parser.cc:43132
+#: c/c-parser.cc:21296 cp/parser.cc:43134
 #, gcc-internal-format
 msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
 msgstr ""
 
-#: c/c-parser.cc:21369 cp/parser.cc:43197 cp/parser.cc:43480 cp/parser.cc:43574
-#: cp/parser.cc:43592
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic compare%>"
 msgstr "無效的表單的 %<# pragma omp atomic%>"
 
-#: c/c-parser.cc:21380 cp/parser.cc:43208
+#: c/c-parser.cc:21380 cp/parser.cc:43210
 #, fuzzy, gcc-internal-format
 msgid "unexpected %<else%>"
 msgstr "預期 %<delete%>"
 
-#: c/c-parser.cc:21440 cp/parser.cc:43647
+#: c/c-parser.cc:21440 cp/parser.cc:43649
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<pragma omp atomic compare%>"
 msgstr "無效的表單的 %<# pragma omp atomic%>"
 
-#: c/c-parser.cc:21711 cp/parser.cc:43501 cp/parser.cc:43527
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
 #, fuzzy, gcc-internal-format
 msgid "invalid form of %<#pragma omp atomic%>"
 msgstr "無效的表單的 %<# pragma omp atomic%>"
 
-#: c/c-parser.cc:21715 cp/parser.cc:43567 cp/parser.cc:43601
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
 #, fuzzy, gcc-internal-format
 msgid "invalid operator for %<#pragma omp atomic%>"
 msgstr "無效的運算子用於 %<# pragma omp atomic%>"
 
-#: c/c-parser.cc:21766 cp/parser.cc:43636
+#: c/c-parser.cc:21766 cp/parser.cc:43638
 #, gcc-internal-format
 msgid "%<weak%> clause requires atomic equality comparison"
 msgstr ""
 
-#: c/c-parser.cc:21772 cp/semantics.cc:11233 cp/semantics.cc:11243
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
 msgstr "%<# pragma omp 基元的 capture%>使用兩不同的變數用於記憶體"
 
-#: c/c-parser.cc:21875 cp/semantics.cc:11320
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
 #, fuzzy, gcc-internal-format
 msgid "%<depobj%> expression is not lvalue expression"
 msgstr "運算式 %qE 並非 constant-expression"
@@ -50869,28 +50891,28 @@ msgstr "運算式 %qE 並非 constant-expression"
 msgid "%<destroy%> expression is not lvalue expression"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: c/c-parser.cc:21924 cp/parser.cc:43789
+#: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
 msgstr ""
 
-#: c/c-parser.cc:21955 cp/parser.cc:43825
+#: c/c-parser.cc:21955 cp/parser.cc:43827
 #, fuzzy, gcc-internal-format
 #| msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
 msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
 msgstr "需要 %<:%>，%<,%>，%<;%>，%<}%> 或 %<__attribute__%>"
 
-#: c/c-parser.cc:21967 cp/parser.cc:43841
+#: c/c-parser.cc:21967 cp/parser.cc:43843
 #, fuzzy, gcc-internal-format
 msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
 msgstr "預期 %<;%>，%<,%>或 %<)%>"
 
-#: c/c-parser.cc:22008 cp/parser.cc:43879
+#: c/c-parser.cc:22008 cp/parser.cc:43881
 #, fuzzy, gcc-internal-format
 msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
 msgstr "預期 %<class%>，%<typename%>，或 %<template%>"
 
-#: c/c-parser.cc:22016 cp/parser.cc:43887
+#: c/c-parser.cc:22016 cp/parser.cc:43889
 #, gcc-internal-format
 msgid "%<flush%> list specified together with memory order clause"
 msgstr ""
@@ -50900,165 +50922,165 @@ msgstr ""
 msgid "expected %<(%> or end of line"
 msgstr "預期 %<(%>或列尾"
 
-#: c/c-parser.cc:22092 cp/parser.cc:44593
+#: c/c-parser.cc:22092 cp/parser.cc:44595
 #, gcc-internal-format
 msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
 msgstr ""
 
-#: c/c-parser.cc:22159 cp/parser.cc:44662
+#: c/c-parser.cc:22159 cp/parser.cc:44664
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
 msgstr "%<# pragma omp taskwait%>也許會只有被已用於複合陳述"
 
-#: c/c-parser.cc:22193 cp/parser.cc:44695
+#: c/c-parser.cc:22193 cp/parser.cc:44697
 #, fuzzy, gcc-internal-format
 msgid "expected %<inclusive%> or %<exclusive%> clause"
 msgstr "預期 %<none%> 或 %<shared%>"
 
-#: c/c-parser.cc:22198 cp/parser.cc:44701
+#: c/c-parser.cc:22198 cp/parser.cc:44703
 #, fuzzy, gcc-internal-format
 msgid "expected %<#pragma omp scan%>"
 msgstr "預期 %<# pragma omp%>子句"
 
-#: c/c-parser.cc:22207 cp/parser.cc:44710
+#: c/c-parser.cc:22207 cp/parser.cc:44712
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
 msgstr "%<# pragma omp taskwait%>也許會只有被已用於複合陳述"
 
-#: c/c-parser.cc:22325 cp/semantics.cc:10807 cp/semantics.cc:10892
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, fuzzy, gcc-internal-format
 msgid "expected iteration declaration or initialization"
 msgstr "預期的迭代宣告或初始化"
 
-#: c/c-parser.cc:22413 c/c-parser.cc:22428 cp/parser.cc:45057
-#: cp/parser.cc:45072
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
 #, fuzzy, gcc-internal-format
 msgid "not enough nested loops"
 msgstr "不足 perfectly 巢狀的迴圈"
 
-#: c/c-parser.cc:22528 cp/parser.cc:45344
+#: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
 msgid "%<ordered%> clause parameter is less than %<collapse%>"
 msgstr ""
 
-#: c/c-parser.cc:22539 cp/parser.cc:45355
+#: c/c-parser.cc:22537 cp/parser.cc:45353
 #, fuzzy, gcc-internal-format
 msgid "for statement expected"
 msgstr "用於敘述預期"
 
-#: c/c-parser.cc:22651 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18143
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
 #, fuzzy, gcc-internal-format
 msgid "iteration variable %qD should not be firstprivate"
 msgstr "迭代變數 %qD 不應為 firstprivate"
 
-#: c/c-parser.cc:23059 cp/parser.cc:45866
+#: c/c-parser.cc:23057 cp/parser.cc:45864
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
 msgstr "%<# pragma omp barrier%>也許會只有被已用於複合陳述"
 
-#: c/c-parser.cc:23275 cp/parser.cc:46072
+#: c/c-parser.cc:23273 cp/parser.cc:46070
 #, fuzzy, gcc-internal-format
 msgid "expected %<for%> after %qs"
 msgstr "預期 %<operator%>"
 
-#: c/c-parser.cc:23622 cp/parser.cc:46419
+#: c/c-parser.cc:23620 cp/parser.cc:46417
 #, fuzzy, gcc-internal-format
 msgid "expected %<point%>"
 msgstr "預期 %<using%>"
 
-#: c/c-parser.cc:23889 cp/parser.cc:46706
+#: c/c-parser.cc:23887 cp/parser.cc:46704
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23905 cp/parser.cc:46722
+#: c/c-parser.cc:23903 cp/parser.cc:46720
 #, gcc-internal-format
 msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
 msgstr ""
 
-#: c/c-parser.cc:23953 cp/parser.cc:47003
+#: c/c-parser.cc:23951 cp/parser.cc:47001
 #, gcc-internal-format
 msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:24055 cp/parser.cc:46829
+#: c/c-parser.cc:24053 cp/parser.cc:46827
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24067 cp/parser.cc:46841
+#: c/c-parser.cc:24065 cp/parser.cc:46839
 #, gcc-internal-format
 msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24166 cp/parser.cc:46946
+#: c/c-parser.cc:24164 cp/parser.cc:46944
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24179 cp/parser.cc:46959
+#: c/c-parser.cc:24177 cp/parser.cc:46957
 #, gcc-internal-format
 msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24424 cp/semantics.cc:10315
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
 #, gcc-internal-format
 msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
 msgstr ""
 
-#: c/c-parser.cc:24481
+#: c/c-parser.cc:24479
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
 msgstr "%<# pragma align%>必須出現之前宣告的 %D, 忽略"
 
-#: c/c-parser.cc:24532 c/c-parser.cc:24570
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
 msgstr "%<# pragma align%>必須出現之前宣告的 %D, 忽略"
 
-#: c/c-parser.cc:24603 cp/parser.cc:47913
+#: c/c-parser.cc:24601 cp/parser.cc:47911
 #, fuzzy, gcc-internal-format
 msgid "expected trait selector name"
 msgstr "預期 selection-statement"
 
-#: c/c-parser.cc:24615 cp/parser.cc:47927
+#: c/c-parser.cc:24613 cp/parser.cc:47925
 #, fuzzy, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
 msgstr "不明運算子 %qs 在中 %%:version-compare"
 
-#: c/c-parser.cc:24643 cp/parser.cc:47956
+#: c/c-parser.cc:24641 cp/parser.cc:47954
 #, fuzzy, gcc-internal-format
 msgid "selector %qs does not accept any properties"
 msgstr "%s 只有接受 2 引數"
 
-#: c/c-parser.cc:24665 cp/parser.cc:47988
+#: c/c-parser.cc:24663 cp/parser.cc:47986
 #, fuzzy, gcc-internal-format
 #| msgid "%<friend%> can only be specified inside a class"
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
 msgstr "%<friend%> 只能在類別中指定"
 
-#: c/c-parser.cc:24674 cp/parser.cc:47998
+#: c/c-parser.cc:24672 cp/parser.cc:47996
 #, fuzzy, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
 msgstr "崩潰引數需要正面的常數整數運算式"
 
-#: c/c-parser.cc:24677 cp/parser.cc:48001
+#: c/c-parser.cc:24675 cp/parser.cc:47999
 #, fuzzy, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
 msgstr "『%s』於 %L 必須是 nonnegative"
 
-#: c/c-parser.cc:24718 cp/parser.cc:48047
+#: c/c-parser.cc:24716 cp/parser.cc:48045
 #, fuzzy, gcc-internal-format
 #| msgid "expected string literal"
 msgid "expected identifier or string literal"
 msgstr "需要字面字串"
 
-#: c/c-parser.cc:24743 cp/parser.cc:48072 cp/pt.cc:12036
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
 #, fuzzy, gcc-internal-format
 msgid "property must be constant integer expression"
 msgstr "預期的整數運算式"
 
-#: c/c-parser.cc:24757 cp/parser.cc:48086
+#: c/c-parser.cc:24755 cp/parser.cc:48084
 #, fuzzy, gcc-internal-format
 msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
 msgstr "內容 %qs 已經指定的在中 %<@synthesize%>"
@@ -51066,292 +51088,292 @@ msgstr "內容 %qs 已經指定的在中 %<@synthesize%>"
 #. FIXME: The "requires" selector was added in OpenMP 5.1.
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
-#: c/c-parser.cc:24778 cp/parser.cc:48102 fortran/openmp.cc:5921
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
 #, fuzzy, gcc-internal-format
 #| msgid "code model %<large%> not supported yet"
 msgid "%<requires%> selector is not supported yet"
 msgstr "尚未支援程式碼模式 %<large%>"
 
-#: c/c-parser.cc:24837 cp/parser.cc:48165
+#: c/c-parser.cc:24835 cp/parser.cc:48163
 #, fuzzy, gcc-internal-format
 msgid "expected context selector set name"
 msgstr "預期 selection-statement"
 
-#: c/c-parser.cc:24914 cp/parser.cc:48480
+#: c/c-parser.cc:24912 cp/parser.cc:48478
 #, fuzzy, gcc-internal-format
 msgid "expected %<match%>"
 msgstr "預期 %<catch%>"
 
-#: c/c-parser.cc:24934
+#: c/c-parser.cc:24932
 #, fuzzy, gcc-internal-format
 msgid "variant %qD is not a function"
 msgstr "『%s』於 %L 並非函式"
 
-#: c/c-parser.cc:24941 cp/decl.cc:8314
+#: c/c-parser.cc:24939 cp/decl.cc:8323
 #, fuzzy, gcc-internal-format
 #| msgid "-f%s and -msdata=%s are incompatible"
 msgid "variant %qD and base %qD have incompatible types"
 msgstr "-f%s 和 -msdata=%s 互不相容"
 
-#: c/c-parser.cc:24953 cp/decl.cc:8323
+#: c/c-parser.cc:24951 cp/decl.cc:8332
 #, gcc-internal-format
 msgid "variant %qD is a built-in"
 msgstr ""
 
-#: c/c-parser.cc:24999
+#: c/c-parser.cc:24997
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
 msgstr "%<# pragma align%>必須出現之前宣告的 %D, 忽略"
 
-#: c/c-parser.cc:25007 cp/parser.cc:48525
+#: c/c-parser.cc:25005 cp/parser.cc:48523
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
 msgstr "%<# pragma align%>必須出現之前宣告的 %D, 忽略"
 
-#: c/c-parser.cc:25208 cp/parser.cc:48815
+#: c/c-parser.cc:25206 cp/parser.cc:48813
 #, fuzzy, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %qs clauses"
 msgstr "%qD 出現一次以上在中資料子句"
 
-#: c/c-parser.cc:25212 cp/parser.cc:48819
+#: c/c-parser.cc:25210 cp/parser.cc:48817
 #, fuzzy, gcc-internal-format
 msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
 msgstr "%qE 有無效的型態用於 %<reduction%>"
 
-#: c/c-parser.cc:25272 cp/parser.cc:48949
+#: c/c-parser.cc:25270 cp/parser.cc:48947
 #, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:25275 cp/parser.cc:48952
+#: c/c-parser.cc:25273 cp/parser.cc:48950
 #, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25324 c/c-parser.cc:25366 cp/parser.cc:49007
-#: cp/parser.cc:49054
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
 #, fuzzy, gcc-internal-format
 msgid "expected %<target%>"
 msgstr "預期 %<try%>"
 
-#: c/c-parser.cc:25338 cp/parser.cc:49020
+#: c/c-parser.cc:25336 cp/parser.cc:49018
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare target%> or %<assumes%>"
 msgstr "預期 %<class%>，%<typename%>，或 %<template%>"
 
-#: c/c-parser.cc:25373 cp/parser.cc:49061
+#: c/c-parser.cc:25371 cp/parser.cc:49059
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
 msgstr "%<# pragma GCC pop_options%>而無需相應 %<# pragma GCC push_options%>"
 
-#: c/c-parser.cc:25384 c/c-parser.cc:25415 cp/parser.cc:49072
-#: cp/parser.cc:49103
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
 #, gcc-internal-format
 msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
 msgstr ""
 
-#: c/c-parser.cc:25391 c/c-parser.cc:25420 cp/parser.cc:49079
-#: cp/parser.cc:49108
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
 #, fuzzy, gcc-internal-format
 msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
 msgstr "%s 屬性與 %s 屬性在 %L 處衝突"
 
-#: c/c-parser.cc:25428 cp/parser.cc:49116
+#: c/c-parser.cc:25426 cp/parser.cc:49114
 #, fuzzy, gcc-internal-format
 msgid "expected %<declare%> or %<assumes%>"
 msgstr "預期 %<class%>，%<typename%>，或 %<template%>"
 
-#: c/c-parser.cc:25455
+#: c/c-parser.cc:25453
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare reduction%> not at file or block scope"
 msgstr "模板宣告無法出現於區塊範圍"
 
-#: c/c-parser.cc:25532
+#: c/c-parser.cc:25530
 #, gcc-internal-format
 msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25536
+#: c/c-parser.cc:25534
 #, gcc-internal-format
 msgid "function or array type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25539
+#: c/c-parser.cc:25537
 #, gcc-internal-format
 msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25542
+#: c/c-parser.cc:25540
 #, gcc-internal-format
 msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: c/c-parser.cc:25550
+#: c/c-parser.cc:25548
 #, gcc-internal-format
 msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
 msgstr ""
 
-#: c/c-parser.cc:25559
+#: c/c-parser.cc:25557
 #, fuzzy, gcc-internal-format
 msgid "previous %<#pragma omp declare reduction%>"
 msgstr "前一個宣告"
 
-#: c/c-parser.cc:25680
+#: c/c-parser.cc:25678
 #, fuzzy, gcc-internal-format
 msgid "expected %<omp_priv%> or function-name"
 msgstr "預期 %<(%>或列尾"
 
-#: c/c-parser.cc:25691
+#: c/c-parser.cc:25689
 #, fuzzy, gcc-internal-format
 msgid "expected function-name %<(%>"
 msgstr "預期的函式"
 
-#: c/c-parser.cc:25710
+#: c/c-parser.cc:25708
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<&omp_priv%>"
 msgstr ""
 
-#: c/c-parser.cc:25841 cp/parser.cc:49589
+#: c/c-parser.cc:25839 cp/parser.cc:49587
 #, fuzzy, gcc-internal-format
 msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "預期 %<# pragma omp section%>或 %<}%>"
 
-#: c/c-parser.cc:25910 cp/parser.cc:49656
+#: c/c-parser.cc:25908 cp/parser.cc:49654
 #, fuzzy, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
 msgstr "預期 %<class%>，%<typename%>，或 %<template%>"
 
-#: c/c-parser.cc:25939 cp/parser.cc:49691
+#: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
 msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
 msgstr ""
 
-#: c/c-parser.cc:25957 cp/parser.cc:49709
+#: c/c-parser.cc:25955 cp/parser.cc:49707
 #, gcc-internal-format
 msgid "%qs clause used lexically after first target construct or offloading API"
 msgstr ""
 
-#: c/c-parser.cc:25969 cp/parser.cc:49721
+#: c/c-parser.cc:25967 cp/parser.cc:49719
 #, gcc-internal-format
 msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
 msgstr ""
 
-#: c/c-parser.cc:25978 cp/parser.cc:49730
+#: c/c-parser.cc:25976 cp/parser.cc:49728
 #, gcc-internal-format
 msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
 msgstr ""
 
-#: c/c-parser.cc:25992 cp/parser.cc:49744
+#: c/c-parser.cc:25990 cp/parser.cc:49742
 #, gcc-internal-format
 msgid "%<pragma omp requires%> requires at least one clause"
 msgstr ""
 
-#: c/c-parser.cc:26011
+#: c/c-parser.cc:26009
 #, gcc-internal-format
 msgid "zero sized type %qT in %<reduction%> clause"
 msgstr ""
 
-#: c/c-parser.cc:26017
+#: c/c-parser.cc:26015
 #, fuzzy, gcc-internal-format
 msgid "variable sized type %qT in %<reduction%> clause"
 msgstr "%qE 有無效的型態用於 %<reduction%>"
 
-#: c/c-parser.cc:26174 cp/parser.cc:49801
+#: c/c-parser.cc:26172 cp/parser.cc:49799
 #, fuzzy, gcc-internal-format
 msgid "expected %<at%>, %<severity%> or %<message%> clause"
 msgstr "預期 %<;%>，%<,%>或 %<)%>"
 
-#: c/c-parser.cc:26207 cp/parser.cc:49836
+#: c/c-parser.cc:26205 cp/parser.cc:49834
 #, fuzzy, gcc-internal-format
 msgid "expected %qs or %qs"
 msgstr "預期 %<,%>或 %<)%>"
 
-#: c/c-parser.cc:26264 cp/parser.cc:49898
+#: c/c-parser.cc:26262 cp/parser.cc:49896
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
 msgstr "%<# pragma omp barrier%>也許會只有被已用於複合陳述"
 
-#: c/c-parser.cc:26287 cp/parser.cc:49925
+#: c/c-parser.cc:26285 cp/parser.cc:49923
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered: %s"
 msgstr ""
 
-#: c/c-parser.cc:26290 cp/parser.cc:49928
+#: c/c-parser.cc:26288 cp/parser.cc:49926
 #, gcc-internal-format
 msgid "%<pragma omp error%> encountered"
 msgstr ""
 
-#: c/c-parser.cc:26317 cp/parser.cc:48226
+#: c/c-parser.cc:26315 cp/parser.cc:48224
 #, fuzzy, gcc-internal-format
 msgid "expected at least one assumption clause"
 msgstr "Cray 指標『%s』在中 %s 子句於 %L"
 
-#: c/c-parser.cc:26403 cp/parser.cc:48312
+#: c/c-parser.cc:26401 cp/parser.cc:48310
 #, fuzzy, gcc-internal-format
 msgid "expected directive name"
 msgstr "預期的函式"
 
-#: c/c-parser.cc:26416 cp/parser.cc:48325
+#: c/c-parser.cc:26414 cp/parser.cc:48323
 #, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs clause argument"
 msgstr ""
 
-#: c/c-parser.cc:26423 cp/parser.cc:48332
+#: c/c-parser.cc:26421 cp/parser.cc:48330
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
 msgstr ""
 
-#: c/c-parser.cc:26434 cp/parser.cc:48343
+#: c/c-parser.cc:26432 cp/parser.cc:48341
 #, gcc-internal-format
 msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
 msgstr ""
 
-#: c/c-parser.cc:26457 cp/parser.cc:48370
+#: c/c-parser.cc:26455 cp/parser.cc:48368
 #, fuzzy, gcc-internal-format
 msgid "unknown assumption clause %qs"
 msgstr "不明 spec 函式 %qs"
 
-#: c/c-parser.cc:26470 cp/parser.cc:48380
+#: c/c-parser.cc:26468 cp/parser.cc:48378
 #, fuzzy, gcc-internal-format
 msgid "expected assumption clause"
 msgstr "預期的指標"
 
-#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
 #, fuzzy, gcc-internal-format
 msgid "%qE declared %<threadprivate%> after first use"
 msgstr "%qE 宣告 %<threadprivate%> 之後先使用"
 
-#: c/c-parser.cc:26642 cp/semantics.cc:9683
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
 #, fuzzy, gcc-internal-format
 msgid "automatic variable %qE cannot be %<threadprivate%>"
 msgstr "自動變數 %qE 無法 %<threadprivate%>"
 
-#: c/c-parser.cc:26646 cp/semantics.cc:9685
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
 #, fuzzy, gcc-internal-format
 msgid "%<threadprivate%> %qE has incomplete type"
 msgstr "%<threadprivate%> %qE 有不完整型態"
 
-#: c/c-parser.cc:26826 cp/parser.cc:50667
+#: c/c-parser.cc:26824 cp/parser.cc:50665
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_cancel%> without transactional memory support enabled"
 msgstr "%<__transaction_cancel%>而無需 transactional 記憶體支援已啟用"
 
-#: c/c-parser.cc:26832 cp/parser.cc:50673
+#: c/c-parser.cc:26830 cp/parser.cc:50671
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
 msgstr "%<__transaction_cancel%>在之內 %<__transaction_relaxed%>"
 
-#: c/c-parser.cc:26841
+#: c/c-parser.cc:26839
 #, fuzzy, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
 msgstr "%<transaction_may_cancel_outer%> 函式呼叫無法在之內外異動作業或 %<transaction_may_cancel_outer%>"
 
-#: c/c-parser.cc:26849 cp/parser.cc:50691
+#: c/c-parser.cc:26847 cp/parser.cc:50689
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
 msgstr "%<__transaction_cancel%>無法在之內 %<__transaction_atomic%>"
 
-#: c/c-parser.cc:26942
+#: c/c-parser.cc:26940
 #, fuzzy, gcc-internal-format
 msgid "no closing brace"
 msgstr "封閉平行"
@@ -51496,7 +51518,7 @@ msgstr "提領 %<void *%> 指標"
 msgid "subscripted value is neither array nor pointer nor vector"
 msgstr "註標的值是 neither 陣列 nor 指標 nor 向量"
 
-#: c/c-typeck.cc:2810 cp/typeck.cc:4005 cp/typeck.cc:4099
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
 #, gcc-internal-format
 msgid "array subscript is not an integer"
 msgstr "陣列下標不是一個整數"
@@ -51527,7 +51549,7 @@ msgstr "%qD 宣告為參照卻未被初始化"
 msgid "enum constant defined here"
 msgstr "enum 常數定義的在此"
 
-#: c/c-typeck.cc:3156 cp/typeck.cc:2141
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
 #, gcc-internal-format
 msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
 msgstr ""
@@ -51642,18 +51664,18 @@ msgstr "隱含轉換從 %qT 到 %qT 時傳遞引數到函式"
 msgid "too few arguments to built-in function %qE expecting %u"
 msgstr "提供給函式 %qE 的引數太少"
 
-#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5782 cp/typeck.cc:6065
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
 #, fuzzy, gcc-internal-format
 msgid "comparison with string literal results in unspecified behavior"
 msgstr "比較與字串實字結果於未規定行為"
 
-#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5814 cp/typeck.cc:5838
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
 #, fuzzy, gcc-internal-format
 #| msgid "comparison between pointer and integer"
 msgid "comparison between pointer and zero character constant"
 msgstr "比較指標和整數"
 
-#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5817 cp/typeck.cc:5841
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
 #, fuzzy, gcc-internal-format
 #| msgid "casting %qT to %qT does not dereference pointer"
 msgid "did you mean to dereference the pointer?"
@@ -51679,7 +51701,7 @@ msgstr "函式指標不能相減"
 msgid "arithmetic on pointer to an incomplete type"
 msgstr "在參照不完全類型的指標上執行算術運算"
 
-#: c/c-typeck.cc:4264 cp/typeck.cc:6860
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
 #, fuzzy, gcc-internal-format
 #| msgid "arithmetic on pointer to an incomplete type"
 msgid "arithmetic on pointer to an empty aggregate"
@@ -51985,7 +52007,7 @@ msgstr "當將一個指標轉換為大小不同的整數時給出警告"
 msgid "cast from function call of type %qT to non-matching type %qT"
 msgstr "從類型為 %qT 的函式呼叫轉換到不匹配的類型 %qT"
 
-#: c/c-typeck.cc:6336 cp/typeck.cc:9296
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
 #, gcc-internal-format
 msgid "cast to pointer from integer of different size"
 msgstr "當將一個指標轉換為大小不同的整數時給出警告"
@@ -52167,7 +52189,7 @@ msgstr "賦值的左手邊可能是 format 屬性的備選時"
 msgid "initialization left-hand side might be a candidate for a format attribute"
 msgstr "初始化的左手邊可能是 format 屬性的備選時"
 
-#: c/c-typeck.cc:7635 cp/typeck.cc:10459
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
 #, gcc-internal-format
 msgid "return type might be a candidate for a format attribute"
 msgstr "回傳類型可能是 format 屬性的備選"
@@ -52382,12 +52404,12 @@ msgstr ""
 msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
 msgstr ""
 
-#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1218
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
 #, gcc-internal-format
 msgid "initialization of a flexible array member"
 msgstr "對彈性陣列成員的初始化"
 
-#: c/c-typeck.cc:8562 cp/typeck2.cc:1235
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
 #, gcc-internal-format
 msgid "cannot initialize array of %qT from a string literal with type array of %qT"
 msgstr ""
@@ -52397,7 +52419,7 @@ msgstr ""
 msgid "array of inappropriate type initialized from string constant"
 msgstr "用字串常數初始化的陣列類型不合適"
 
-#: c/c-typeck.cc:8689 cp/typeck.cc:2534
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
 #, gcc-internal-format
 msgid "invalid use of non-lvalue array"
 msgstr "對非左值陣列的無效使用"
@@ -52428,7 +52450,7 @@ msgstr "初始設定式元件並非常數運算式"
 msgid "initializer element is not computable at load time"
 msgstr "初始值設定中的元素在載入時無法被計算出"
 
-#: c/c-typeck.cc:9107 cp/decl.cc:7691
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
 #, gcc-internal-format
 msgid "opaque vector types cannot be initialized"
 msgstr "不透明的向量類型不能被初始化"
@@ -52443,7 +52465,7 @@ msgstr "初始值設定項末尾有多餘的大括號組"
 msgid "braces around scalar initializer"
 msgstr "標量初始化帶大括號"
 
-#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1245 cp/typeck2.cc:1580
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
 #, gcc-internal-format
 msgid "initialization of flexible array member in a nested context"
 msgstr "在巢狀的上下文中初始化彈性陣列成員"
@@ -52534,7 +52556,7 @@ msgstr "結構初始值設定項中有多餘元素"
 msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
 msgstr ""
 
-#: c/c-typeck.cc:10940 cp/typeck2.cc:1222
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
 #, gcc-internal-format
 msgid "non-static initialization of a flexible array member"
 msgstr "對彈性陣列成員非靜態地初始化"
@@ -52574,7 +52596,7 @@ msgstr "ISO C++ 不允許 %<goto *expr;%>"
 msgid "computed goto must be pointer type"
 msgstr "引數 %d 的 %qE 必須是指標類型"
 
-#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11060
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
 #, gcc-internal-format
 msgid "function declared %<noreturn%> has a %<return%> statement"
 msgstr "被宣告為 %<noreturn%> 的函式卻有 %<return%> 敘述"
@@ -52630,7 +52652,7 @@ msgstr "%<default%> 標籤未出現在 switch 敘述內"
 msgid "break statement not within loop or switch"
 msgstr "break 敘述不在循環或開關敘述內"
 
-#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4052 cp/parser.cc:14829
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
 #: cp/parser.cc:14850
 #, fuzzy, gcc-internal-format
 msgid "invalid exit from OpenMP structured block"
@@ -52676,27 +52698,27 @@ msgstr "比較將一律評估做為 %<false%> 用於位址的 %qD 將永不是
 msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
 msgstr "比較將一律評估做為 %<true%> 用於位址的 %qD 將永不是空值"
 
-#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6087
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
 #, fuzzy, gcc-internal-format
 msgid "comparing vectors with different element types"
 msgstr "比較向量與不同的元件類型"
 
-#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6100
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
 #, fuzzy, gcc-internal-format
 msgid "comparing vectors with different number of elements"
 msgstr "比較向量與不同的元件號碼的"
 
-#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6118
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
 #, fuzzy, gcc-internal-format
 msgid "comparison between types %qT and %qT"
 msgstr "比較介於類型 %qT 和 %qT"
 
-#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6135
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
 #, fuzzy, gcc-internal-format
 msgid "could not find an integer type of the same size as %qT"
 msgstr "找不到介面用於類別 %qE"
 
-#: c/c-typeck.cc:12929 cp/typeck.cc:5771
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
 #, fuzzy, gcc-internal-format
 #| msgid "comparing floating point with == or != is unsafe"
 msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
@@ -52769,29 +52791,29 @@ msgstr "需要標量時使用了聯合類型"
 msgid "used vector type where scalar is required"
 msgstr "使用的向量型態位置純量被必要項"
 
-#: c/c-typeck.cc:13773 cp/semantics.cc:11393
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
 #, gcc-internal-format
 msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11404
-#: cp/semantics.cc:11414
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
 #, fuzzy, gcc-internal-format
 msgid "expected %<cancel%> %<if%> clause modifier"
 msgstr "預期 %<;%>之後類別定義"
 
-#: c/c-typeck.cc:13829 cp/semantics.cc:11449
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
 #, gcc-internal-format
 msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:13897 cp/semantics.cc:5554 cp/semantics.cc:8562
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
 msgstr "%qD 並非變數在中子句 %qs"
 
-#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5558
-#: cp/semantics.cc:8566
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %qs clause"
 msgstr "%qE 並非變數在中子句 %qs"
@@ -52802,87 +52824,87 @@ msgid "%<_Atomic%> %qD in %qs clause"
 msgstr "太多 %qs 子句"
 
 #: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
-#: cp/semantics.cc:5567 cp/semantics.cc:8573 cp/semantics.cc:8761
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
 #, fuzzy, gcc-internal-format
 msgid "%qD is threadprivate variable in %qs clause"
 msgstr "%qD 並非變數在中子句 %qs"
 
-#: c/c-typeck.cc:13956 cp/semantics.cc:5601
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "low bound %qE of array section does not have integral type"
 msgstr "陣列 new 的大小必須有整數類型"
 
-#: c/c-typeck.cc:13963 cp/semantics.cc:5608
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
 #, fuzzy, gcc-internal-format
 #| msgid "size in array new must have integral type"
 msgid "length %qE of array section does not have integral type"
 msgstr "陣列 new 的大小必須有整數類型"
 
-#: c/c-typeck.cc:13986 cp/semantics.cc:5641
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
 #, fuzzy, gcc-internal-format
 msgid "expected single pointer in %qs clause"
 msgstr "Cray 指標『%s』在中 %s 子句於 %L"
 
 #: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
-#: cp/semantics.cc:5659 cp/semantics.cc:5726
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
 #, fuzzy, gcc-internal-format
 msgid "zero length array section in %qs clause"
 msgstr "陣列區段在中『%s』呼叫於 %L"
 
-#: c/c-typeck.cc:14023 cp/semantics.cc:5678
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
 #, gcc-internal-format
 msgid "for unknown bound array type length expression must be specified"
 msgstr ""
 
-#: c/c-typeck.cc:14031 cp/semantics.cc:5686
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
 #, gcc-internal-format
 msgid "negative low bound in array section in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5695
-#: cp/semantics.cc:5819
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
 #, fuzzy, gcc-internal-format
 msgid "negative length in array section in %qs clause"
 msgstr "變數長度陣列被使用"
 
-#: c/c-typeck.cc:14057 cp/semantics.cc:5712
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
 #, gcc-internal-format
 msgid "low bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14100 cp/semantics.cc:5755
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
 #, gcc-internal-format
 msgid "length %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14115 cp/semantics.cc:5770
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
 #, gcc-internal-format
 msgid "high bound %qE above array section size in %qs clause"
 msgstr ""
 
-#: c/c-typeck.cc:14152 cp/semantics.cc:5807
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
 #, fuzzy, gcc-internal-format
 msgid "for array function parameter length expression must be specified"
 msgstr "用於遞增運算式沒有任何效果"
 
-#: c/c-typeck.cc:14156 cp/semantics.cc:5811
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
 #, fuzzy, gcc-internal-format
 msgid "for pointer type length expression must be specified"
 msgstr "用於遞增運算式沒有任何效果"
 
-#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5838
-#: cp/semantics.cc:5974
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
 #, fuzzy, gcc-internal-format
 msgid "array section is not contiguous in %qs clause"
 msgstr "複製陣列區段進入 contiguous 區塊於程序條目"
 
-#: c/c-typeck.cc:14194 cp/semantics.cc:5848
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
 #, fuzzy, gcc-internal-format
 msgid "%qE does not have pointer or array type"
 msgstr "%qD 沒有積分或列舉類型型態"
 
-#: c/c-typeck.cc:14570 cp/semantics.cc:6910
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
 #, fuzzy, gcc-internal-format
 #| msgid "throwing NULL, which has integral, not pointer type"
 msgid "iterator %qD has neither integral nor pointer type"
@@ -52893,17 +52915,17 @@ msgstr "拋出 NULL，它的類型是整數而不是指標"
 msgid "iterator %qD has %<_Atomic%> qualified type"
 msgstr ""
 
-#: c/c-typeck.cc:14583 cp/semantics.cc:6917
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
 #, fuzzy, gcc-internal-format
 msgid "iterator %qD has const qualified type"
 msgstr "參數 %qD 有不完整型態"
 
-#: c/c-typeck.cc:14596 cp/semantics.cc:6933
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
 #, fuzzy, gcc-internal-format
 msgid "iterator step with non-integral type"
 msgstr "bit-field %qD 與 non-integral 型態"
 
-#: c/c-typeck.cc:14616 cp/semantics.cc:6969
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
 #, gcc-internal-format
 msgid "iterator %qD has zero step"
 msgstr ""
@@ -52913,33 +52935,33 @@ msgstr ""
 msgid "type of iterator %qD refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14650 cp/semantics.cc:7003
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
 #, gcc-internal-format
 msgid "begin expression refers to outer iterator %qD"
 msgstr ""
 
-#: c/c-typeck.cc:14656 cp/semantics.cc:7009
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
 #, fuzzy, gcc-internal-format
 msgid "end expression refers to outer iterator %qD"
 msgstr "無效的運算式用於輸出修飾鍵『%c』"
 
-#: c/c-typeck.cc:14662 cp/semantics.cc:7015
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
 #, fuzzy, gcc-internal-format
 msgid "step expression refers to outer iterator %qD"
 msgstr "%L 處運算式參照類型錯誤"
 
-#: c/c-typeck.cc:14699 cp/semantics.cc:7063
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
 #, fuzzy, gcc-internal-format
 msgid "expected pointer in %qs clause"
 msgstr "預期的指標"
 
-#: c/c-typeck.cc:14794 cp/semantics.cc:7152
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
 #, fuzzy, gcc-internal-format
 #| msgid "code model %<large%> not supported yet"
 msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
 msgstr "尚未支援程式碼模式 %<large%>"
 
-#: c/c-typeck.cc:14816 cp/semantics.cc:7172
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
 #, fuzzy, gcc-internal-format
 #| msgid "code model %<large%> not supported yet"
 msgid "%<inscan%> %<reduction%> clause with array section"
@@ -52970,7 +52992,7 @@ msgstr "變數長度陣列 %qE 被使用"
 msgid "%qE has invalid type for %<reduction(%s)%>"
 msgstr "%qE 有無效的型態用於 %<reduction(%s)%>"
 
-#: c/c-typeck.cc:14945 cp/semantics.cc:6802
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
 #, gcc-internal-format
 msgid "user defined reduction not found for %qE"
 msgstr ""
@@ -52980,17 +53002,17 @@ msgstr ""
 msgid "variable length element type in array %<reduction%> clause"
 msgstr "變數長度陣列被使用"
 
-#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9298
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
 #, gcc-internal-format
 msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
 msgstr ""
 
-#: c/c-typeck.cc:15063 cp/semantics.cc:9366
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
 #, fuzzy, gcc-internal-format
 msgid "%qE must be %<threadprivate%> for %<copyin%>"
 msgstr "%qE 必須是 %<threadprivate%> 用於 %<copyin%>"
 
-#: c/c-typeck.cc:15078 cp/semantics.cc:7215
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
 #, gcc-internal-format
 msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
 msgstr ""
@@ -53005,23 +53027,23 @@ msgstr ""
 msgid "%<_Atomic%> %qD in %<linear%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:15114 cp/semantics.cc:7299
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
 #, gcc-internal-format
 msgid "%<linear%> clause step %qE is neither constant nor a parameter"
 msgstr ""
 
 #: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
-#: cp/semantics.cc:7386 cp/semantics.cc:8755 cp/semantics.cc:9106
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in clause %qs"
 msgstr "%qE 並非變數在中子句 %qs"
 
-#: c/c-typeck.cc:15161 cp/semantics.cc:7404
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in data-sharing clauses"
 msgstr "%qD 出現一次以上在中資料子句"
 
-#: c/c-typeck.cc:15172 cp/semantics.cc:7415
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in reduction clauses"
 msgstr "%qD 出現一次以上在中資料子句"
@@ -53033,32 +53055,32 @@ msgstr "%qE 出現一次以上在中資料子句"
 
 #: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
 #: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
-#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7429
-#: cp/semantics.cc:7439 cp/semantics.cc:7532 cp/semantics.cc:7540
-#: cp/semantics.cc:7587 cp/semantics.cc:8444 cp/semantics.cc:8633
-#: cp/semantics.cc:8641 cp/semantics.cc:8661 cp/semantics.cc:8670
-#: cp/semantics.cc:8678
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in data clauses"
 msgstr "%qD 出現一次以上在中資料子句"
 
 #: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
-#: cp/semantics.cc:7442 cp/semantics.cc:7546 cp/semantics.cc:8681
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
 #, fuzzy, gcc-internal-format
 msgid "%qD appears both in data and map clauses"
 msgstr "%qD 出現一次以上在中資料子句"
 
-#: c/c-typeck.cc:15244 cp/semantics.cc:7519
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in clause %<firstprivate%>"
 msgstr "%qE 並非變數在中子句 %<firstprivate%>"
 
-#: c/c-typeck.cc:15284 cp/semantics.cc:7579
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in clause %<lastprivate%>"
 msgstr "%qE 並非變數在中子句 %<lastprivate%>"
 
-#: c/c-typeck.cc:15303 cp/semantics.cc:7977
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<aligned%> clause"
 msgstr "%qE 並非變數在中子句 %qs"
@@ -53079,7 +53101,7 @@ msgstr ""
 msgid "%qE appears more than once in %<aligned%> clauses"
 msgstr "%qE 出現一次以上在中資料子句"
 
-#: c/c-typeck.cc:15337 cp/semantics.cc:8048
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<nontemporal%> clause"
 msgstr "%qE 並非變數在中子句 %qs"
@@ -53089,7 +53111,7 @@ msgstr "%qE 並非變數在中子句 %qs"
 msgid "%qE appears more than once in %<nontemporal%> clauses"
 msgstr "%qE 出現一次以上在中資料子句"
 
-#: c/c-typeck.cc:15356 cp/semantics.cc:8087
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a variable in %<allocate%> clause"
 msgstr "%qE 並非變數在中子句 %qs"
@@ -53099,76 +53121,76 @@ msgstr "%qE 並非變數在中子句 %qs"
 msgid "%qE appears more than once in %<allocate%> clauses"
 msgstr "%qE 出現一次以上在中資料子句"
 
-#: c/c-typeck.cc:15432 cp/semantics.cc:8213
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
 #, gcc-internal-format
 msgid "%<depend%> clause with %<depobj%> dependence type on array section"
 msgstr ""
 
-#: c/c-typeck.cc:15447 cp/semantics.cc:8228
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
 #, gcc-internal-format
 msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
 msgstr ""
 
-#: c/c-typeck.cc:15455 cp/semantics.cc:8246
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
 #, fuzzy, gcc-internal-format
 msgid "%qE is not lvalue expression nor array section in %qs clause"
 msgstr "變數長度陣列被使用"
 
-#: c/c-typeck.cc:15476 cp/semantics.cc:8268
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
 #, gcc-internal-format
 msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
 msgstr ""
 
-#: c/c-typeck.cc:15486 cp/semantics.cc:8280
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
 #, gcc-internal-format
 msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
 msgstr ""
 
-#: c/c-typeck.cc:15547 cp/semantics.cc:8379
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
 #, fuzzy, gcc-internal-format
 msgid "array section does not have mappable type in %qs clause"
 msgstr "陣列區段無法允許的在中『%s』呼叫於 %L"
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
-#: cp/semantics.cc:8399 cp/semantics.cc:8478 cp/semantics.cc:8514
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
 #, fuzzy, gcc-internal-format
 msgid "unsupported map expression %qE"
 msgstr "無效的類型在中定點轉換"
 
-#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8440
-#: cp/semantics.cc:8658
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in motion clauses"
 msgstr "%qD 出現一次以上在中資料子句"
 
-#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8448
-#: cp/semantics.cc:8664
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in map clauses"
 msgstr "%qD 出現一次以上在中資料子句"
 
-#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8601
-#: cp/semantics.cc:8768
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
 msgstr "%qD 並非變數在中子句 %qs"
 
-#: c/c-typeck.cc:15859 cp/semantics.cc:8750
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, fuzzy, gcc-internal-format
 msgid "%qE is neither a variable nor a function name in clause %qs"
 msgstr "%qE 並非變數在中子句 %qs"
 
-#: c/c-typeck.cc:15885 cp/semantics.cc:8780
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
 #, fuzzy, gcc-internal-format
 msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE 出現一次以上在中資料子句"
 
-#: c/c-typeck.cc:15899 cp/semantics.cc:8796
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
 #, fuzzy, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
 msgstr "%qD 並非變數在中子句 %qs"
 
-#: c/c-typeck.cc:15902 cp/semantics.cc:8799
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, fuzzy, gcc-internal-format
 msgid "%qE is not an argument in %<uniform%> clause"
 msgstr "%qE 並非變數在中子句 %qs"
@@ -53184,23 +53206,23 @@ msgstr "來源並非指標"
 msgid "%qs variable is neither a pointer nor an array"
 msgstr "向量 delete 的引數類型既非指標也非陣列"
 
-#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9260
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
 #, fuzzy, gcc-internal-format
 #| msgid "-frepo must be used with -c"
 msgid "%<order%> clause must not be used together with %<ordered%>"
 msgstr "-frepo 必須與 -c 一起使用"
 
-#: c/c-typeck.cc:15996 cp/semantics.cc:8320
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
 #, fuzzy, gcc-internal-format
 msgid "too many %qs clauses on a task construct"
 msgstr "太多 %qs 子句"
 
-#: c/c-typeck.cc:16093 cp/semantics.cc:9074
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
 #, gcc-internal-format
 msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
 msgstr ""
 
-#: c/c-typeck.cc:16160 cp/semantics.cc:9437
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
 #, fuzzy, gcc-internal-format
 msgid "%qE is predetermined %qs for %qs"
 msgstr "%qE 被 predetermined %qs 用於 %qs"
@@ -53210,39 +53232,39 @@ msgstr "%qE 被 predetermined %qs 用於 %qs"
 msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: c/c-typeck.cc:16201 cp/semantics.cc:9212
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
 #, gcc-internal-format
 msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
 msgstr ""
 
-#: c/c-typeck.cc:16213 cp/semantics.cc:9225
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
 #, gcc-internal-format
 msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9234
-#: cp/semantics.cc:9252
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
 #, fuzzy, gcc-internal-format
 msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
 msgstr "%qE 有無效的型態用於 %<reduction%>"
 
-#: c/c-typeck.cc:16280 cp/semantics.cc:9192
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
 #, gcc-internal-format
 msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16331 cp/semantics.cc:9242
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
 #, gcc-internal-format
 msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
 msgstr ""
 
-#: c/c-typeck.cc:16341 cp/semantics.cc:9271
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
 #, fuzzy, gcc-internal-format
 #| msgid "-frepo must be used with -c"
 msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
 msgstr "-frepo 必須與 -c 一起使用"
 
-#: c/c-typeck.cc:16359 cp/semantics.cc:9462
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
 #, gcc-internal-format
 msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
 msgstr ""
@@ -53534,13 +53556,13 @@ msgstr "  當從 %qT 轉換為 %qT 時"
 msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  沒有已知轉換用於引數 %d 從 %qT 到 %qT"
 
-#: cp/call.cc:3927 cp/pt.cc:7112
+#: cp/call.cc:3927 cp/pt.cc:7123
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
 msgstr[0] "  candidate 預期 %d 引數，%d 提供"
 
-#: cp/call.cc:3932 cp/pt.cc:7117
+#: cp/call.cc:3932 cp/pt.cc:7128
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
@@ -53859,594 +53881,594 @@ msgstr "條件運算式介於明確的指標類型 %qT 和 %qT lacks 演員陣
 msgid "enumerated and non-enumerated type in conditional expression"
 msgstr "列舉和非列舉類型一起出現在條件運算式中"
 
-#: cp/call.cc:7207
+#: cp/call.cc:7208
 #, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
 msgstr "%<%D(int)%> 沒有出現在字尾 %qs 中，嘗試使用字首運算子"
 
-#: cp/call.cc:7209
+#: cp/call.cc:7210
 #, fuzzy, gcc-internal-format
 msgid "no %<%D(int)%> declared for postfix %qs"
 msgstr "沒有 %<%D(整數)%>宣告的用於後綴 %qs"
 
-#: cp/call.cc:7289
+#: cp/call.cc:7290
 #, gcc-internal-format
 msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
 msgstr ""
 
-#: cp/call.cc:7342
+#: cp/call.cc:7343
 #, fuzzy, gcc-internal-format
 msgid "return type of %qD is not %qs"
 msgstr "傳回類型的 %qD 不是 %<int%>"
 
-#: cp/call.cc:7344
+#: cp/call.cc:7345
 #, gcc-internal-format
 msgid "used as rewritten candidate for comparison of %qT and %qT"
 msgstr ""
 
-#: cp/call.cc:7427
+#: cp/call.cc:7428
 #, gcc-internal-format
 msgid "comparison between %q#T and %q#T"
 msgstr "在 %q#T 和 %q#T 間比較"
 
-#: cp/call.cc:7614
+#: cp/call.cc:7615
 #, fuzzy, gcc-internal-format
 #| msgid "no match for call to %<(%T) (%A)%>"
 msgid "no match for call to %<%T::operator[] (%A)%>"
 msgstr "對 %<(%T) (%A)%> 的呼叫沒有匹配"
 
-#: cp/call.cc:7628
+#: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
 #| msgid "call of %<(%T) (%A)%> is ambiguous"
 msgid "call of %<%T::operator[] (%A)%> is ambiguous"
 msgstr "對 %<(%T) (%A)%> 的呼叫有歧義"
 
-#: cp/call.cc:7906
+#: cp/call.cc:7907
 #, gcc-internal-format
 msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
 msgstr ""
 
-#: cp/call.cc:7909
+#: cp/call.cc:7910
 #, fuzzy, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
 msgstr "non-placement deallocation 函式 %q+D"
 
-#: cp/call.cc:7946
+#: cp/call.cc:7947
 #, fuzzy, gcc-internal-format
 msgid "%qD is a usual (non-placement) deallocation function"
 msgstr "non-placement deallocation 函式 %q+D"
 
-#: cp/call.cc:8140
+#: cp/call.cc:8141
 #, fuzzy, gcc-internal-format
 msgid "no corresponding deallocation function for %qD"
 msgstr "沒有相應 deallocation 函式用於 %qD"
 
-#: cp/call.cc:8143
+#: cp/call.cc:8144
 #, gcc-internal-format
 msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
 msgstr ""
 
-#: cp/call.cc:8152
+#: cp/call.cc:8153
 #, gcc-internal-format
 msgid "no suitable %<operator %s%> for %qT"
 msgstr "沒有合適的 %<operator %s%> 給 %qT"
 
-#: cp/call.cc:8188
+#: cp/call.cc:8189
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is private within this context"
 msgstr "在此上下文中"
 
-#: cp/call.cc:8189 cp/decl.cc:9113
+#: cp/call.cc:8190 cp/decl.cc:9122
 #, fuzzy, gcc-internal-format
 msgid "declared private here"
 msgstr "宣告的在此"
 
-#: cp/call.cc:8194
+#: cp/call.cc:8195
 #, fuzzy, gcc-internal-format
 #| msgid "within this context"
 msgid "%q#D is protected within this context"
 msgstr "在此上下文中"
 
-#: cp/call.cc:8195 cp/decl.cc:9114
+#: cp/call.cc:8196 cp/decl.cc:9123
 #, fuzzy, gcc-internal-format
 msgid "declared protected here"
 msgstr "宣告的在此"
 
-#: cp/call.cc:8202
+#: cp/call.cc:8203
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D is inaccessible"
 msgid "%q#D is inaccessible within this context"
 msgstr "%q+#D 無法存取"
 
-#: cp/call.cc:8283
+#: cp/call.cc:8284
 #, gcc-internal-format
 msgid "passing NULL to non-pointer argument %P of %qD"
 msgstr "將 NULL 做為非指標引數 %P 傳遞給 %qD"
 
-#: cp/call.cc:8286 cp/call.cc:8305 cp/decl.cc:10850 cp/decl.cc:10858
-#: cp/typeck.cc:4606
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
 #, fuzzy, gcc-internal-format
 msgid "  declared here"
 msgstr "宣告的在此"
 
-#: cp/call.cc:8290
+#: cp/call.cc:8291
 #, gcc-internal-format
 msgid "converting to non-pointer type %qT from NULL"
 msgstr "將 NULL 轉換到非指標類型 %qT"
 
-#: cp/call.cc:8302
+#: cp/call.cc:8303
 #, fuzzy, gcc-internal-format
 msgid "converting %<false%> to pointer type for argument %P of %qD"
 msgstr "轉換 %<false%> 到指標類型用於引數 %P 的 %qD"
 
-#: cp/call.cc:8309
+#: cp/call.cc:8310
 #, fuzzy, gcc-internal-format
 msgid "converting %<false%> to pointer type %qT"
 msgstr "轉換 %<false%> 到指標類型 %qT"
 
-#: cp/call.cc:8376
+#: cp/call.cc:8377
 #, gcc-internal-format
 msgid "  initializing argument %P of %qD"
 msgstr "  初始化引數 %P，屬於 %qD"
 
-#: cp/call.cc:8397
+#: cp/call.cc:8398
 #, fuzzy, gcc-internal-format
 msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "variadic 模板只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/call.cc:8447
+#: cp/call.cc:8448
 #, fuzzy, gcc-internal-format
 msgid "too many braces around initializer for %qT"
 msgstr "太多大括號周圍初始設定式用於 %qT"
 
-#: cp/call.cc:8458
+#: cp/call.cc:8459
 #, fuzzy
 msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "無法轉換 %qT 到 %qT 在中初始化"
 
-#: cp/call.cc:8470
+#: cp/call.cc:8471
 #, fuzzy
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
 msgstr "ISO C++不允許 %<alignof%> 與 non-type"
 
-#: cp/call.cc:8478
+#: cp/call.cc:8479
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
 msgstr ""
 
-#: cp/call.cc:8494
+#: cp/call.cc:8495
 #, fuzzy
 msgid "invalid user-defined conversion from %qH to %qI"
 msgstr "無效的使用者定義的轉換從 %qT 到 %qT"
 
-#: cp/call.cc:8527 cp/cvt.cc:227
+#: cp/call.cc:8528 cp/cvt.cc:227
 #, fuzzy
 #| msgid "invalid conversion from %qT to %qT"
 msgid "invalid conversion from %qH to %qI"
 msgstr "從類型 %qT 到類型 %qT 的轉換無效"
 
-#: cp/call.cc:8574 cp/call.cc:8587
+#: cp/call.cc:8575 cp/call.cc:8588
 #, fuzzy, gcc-internal-format
 msgid "converting to %qT from initializer list would use explicit constructor %qD"
 msgstr "轉換到 %qT 從初始設定式清單會使用明確的建構子 %qD"
 
-#: cp/call.cc:8580
+#: cp/call.cc:8581
 #, fuzzy, gcc-internal-format
 #| msgid "only declarations of constructors can be %<explicit%>"
 msgid "in C++11 and above a default constructor can be explicit"
 msgstr "只有建構式才能被宣告為 %<explicit%>"
 
-#: cp/call.cc:8860
+#: cp/call.cc:8861
 #, fuzzy
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
 msgstr "轉換到易變的參考類型 %q#T 從 rvalue 的型態 %qT"
 
-#: cp/call.cc:8869
+#: cp/call.cc:8870
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
 msgstr "無效的初始化的 non-const 參考的型態 %qT 從 rvalue 的型態 %qT"
 
-#: cp/call.cc:8874
+#: cp/call.cc:8875
 #, fuzzy
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "無效的初始化的 non-const 參考的型態 %qT 從 rvalue 的型態 %qT"
 
 #. extype is volatile
-#: cp/call.cc:8877
+#: cp/call.cc:8878
 #, fuzzy
 msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
 msgstr "轉換到易變的參考類型 %q#T 從 rvalue 的型態 %qT"
 
-#: cp/call.cc:8890
+#: cp/call.cc:8891
 #, fuzzy
 msgid "cannot bind reference of type %qH to %qI due to different array bounds"
 msgstr "轉換到易變的參考類型 %q#T 從 rvalue 的型態 %qT"
 
-#: cp/call.cc:8893
+#: cp/call.cc:8894
 #, fuzzy
 #| msgid "conversion from %qT to %qT discards qualifiers"
 msgid "binding reference of type %qH to %qI discards qualifiers"
 msgstr "從 %qT 到 %qT 的轉換丟失了限定資訊"
 
-#: cp/call.cc:8932
+#: cp/call.cc:8933
 #, fuzzy, gcc-internal-format
 #| msgid "cannot bind bitfield %qE to %qT"
 msgid "cannot bind bit-field %qE to %qT"
 msgstr "無法將位元段 %qE 繫結到 %qT"
 
-#: cp/call.cc:8935 cp/call.cc:8953
+#: cp/call.cc:8936 cp/call.cc:8954
 #, gcc-internal-format
 msgid "cannot bind packed field %qE to %qT"
 msgstr "不能將緊實的欄位 %qE 繫結到 %qT"
 
-#: cp/call.cc:8938
+#: cp/call.cc:8939
 #, gcc-internal-format
 msgid "cannot bind rvalue %qE to %qT"
 msgstr "無法將右值 %qE 繫結到 %qT"
 
-#: cp/call.cc:9139
+#: cp/call.cc:9140
 #, fuzzy
 msgid "implicit conversion from %qH to %qI when passing argument to function"
 msgstr "隱含轉換從 %qT 到 %qT 時傳遞引數到函式"
 
-#: cp/call.cc:9168 cp/cvt.cc:2011
+#: cp/call.cc:9169 cp/cvt.cc:2011
 #, gcc-internal-format
 msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
 msgstr ""
 
-#: cp/call.cc:9212
+#: cp/call.cc:9213
 #, fuzzy, gcc-internal-format
 msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
 msgstr "無法回合物件的 non-trivially-copyable 型態 %q#T 透過 %<...%>"
 
-#: cp/call.cc:9248
+#: cp/call.cc:9249
 #, fuzzy, gcc-internal-format
 msgid "cannot receive reference type %qT through %<...%>"
 msgstr "無法接收物件的 non-trivially-copyable 型態 %q#T 透過 %<...%>；"
 
-#: cp/call.cc:9258
+#: cp/call.cc:9259
 #, fuzzy, gcc-internal-format
 msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
 msgstr "無法接收物件的 non-trivially-copyable 型態 %q#T 透過 %<...%>；"
 
-#: cp/call.cc:9326
+#: cp/call.cc:9327
 #, fuzzy, gcc-internal-format
 msgid "recursive evaluation of default argument for %q#D"
 msgstr "遞迴求值的預設引數用於 %q#D"
 
-#: cp/call.cc:9335
+#: cp/call.cc:9336
 #, fuzzy, gcc-internal-format
 msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
 msgstr "呼叫到 %qD 使用預設引數用於參數 %P, 該項不是未定義"
 
-#: cp/call.cc:9435
+#: cp/call.cc:9436
 #, gcc-internal-format
 msgid "argument of function call might be a candidate for a format attribute"
 msgstr "函式的引數可能是 format 屬性的備選"
 
-#: cp/call.cc:9515
+#: cp/call.cc:9516
 #, fuzzy, gcc-internal-format
 msgid "use of multiversioned function without a default"
 msgstr "缺席函式 %q+D 與預設引數"
 
-#: cp/call.cc:10020
+#: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
 msgstr ""
 
-#: cp/call.cc:10143
+#: cp/call.cc:10144
 #, fuzzy, gcc-internal-format
 #| msgid "passing %qT as %<this%> argument of %q#D discards qualifiers"
 msgid "passing %qT as %<this%> argument discards qualifiers"
 msgstr "將 %qT 做為 %q#D 的 %<this%> 引數時丟棄了類型限定"
 
-#: cp/call.cc:10146 cp/call.cc:12992
+#: cp/call.cc:10147 cp/call.cc:12993
 #, gcc-internal-format
 msgid "  in call to %qD"
 msgstr "  在呼叫 %qD 時"
 
-#: cp/call.cc:10171
+#: cp/call.cc:10172
 #, gcc-internal-format
 msgid "%qT is not an accessible base of %qT"
 msgstr "%qT 是 %qT 的一個不可存取的基礎類別"
 
-#: cp/call.cc:10396
+#: cp/call.cc:10397
 #, fuzzy, gcc-internal-format
 msgid "passing arguments to ellipsis of inherited constructor %qD"
 msgstr "太多引數到建構子 %q#D"
 
-#: cp/call.cc:10533
+#: cp/call.cc:10534
 #, gcc-internal-format
 msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/call.cc:10900
+#: cp/call.cc:10901
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
 msgstr ""
 
-#: cp/call.cc:10903
+#: cp/call.cc:10904
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot be thread-local because it has non-POD type %qT"
 msgid "%qD writing to an object of non-trivial type %#qT%s"
 msgstr "%qD 無法 thread-local 因為它有 non-trivial 型態 %qT"
 
-#: cp/call.cc:10908
+#: cp/call.cc:10909
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with %qs member %qD"
 msgstr ""
 
-#: cp/call.cc:10913
+#: cp/call.cc:10914
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
 msgstr ""
 
-#: cp/call.cc:10928
+#: cp/call.cc:10929
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use assignment or value-initialization instead"
 msgstr "賦值(不是初始化)出現在宣告中"
 
-#: cp/call.cc:10930
+#: cp/call.cc:10931
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use assignment instead"
 msgstr "改用 #include"
 
-#: cp/call.cc:10932
+#: cp/call.cc:10933
 #, fuzzy, gcc-internal-format
 msgid "; use value-initialization instead"
 msgstr "value-initialization 的函數型式 %qT"
 
-#: cp/call.cc:10935
+#: cp/call.cc:10936
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10938
+#: cp/call.cc:10939
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot be thread-local because it has non-POD type %qT"
 msgid "%qD clearing an object of non-trivial type %#qT%s"
 msgstr "%qD 無法 thread-local 因為它有 non-trivial 型態 %qT"
 
-#: cp/call.cc:10940
+#: cp/call.cc:10941
 #, gcc-internal-format
 msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
 msgstr ""
 
-#: cp/call.cc:10961
+#: cp/call.cc:10962
 #, fuzzy, gcc-internal-format
 #| msgid "assignment (not initialization) in declaration"
 msgid "; use copy-assignment or copy-initialization instead"
 msgstr "賦值(不是初始化)出現在宣告中"
 
-#: cp/call.cc:10963
+#: cp/call.cc:10964
 #, fuzzy, gcc-internal-format
 #| msgid "use #include instead"
 msgid "; use copy-assignment instead"
 msgstr "改用 #include"
 
-#: cp/call.cc:10965
+#: cp/call.cc:10966
 #, fuzzy, gcc-internal-format
 msgid "; use copy-initialization instead"
 msgstr "擴充：%C 處舊式的初始化"
 
-#: cp/call.cc:10968
+#: cp/call.cc:10969
 #, gcc-internal-format
 msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
-#: cp/call.cc:10971
+#: cp/call.cc:10972
 #, fuzzy, gcc-internal-format
 msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
 msgstr "轉換到虛值將無法存取物件的 non-trivially-copyable 型態 %qT"
 
-#: cp/call.cc:10974
+#: cp/call.cc:10975
 #, gcc-internal-format
 msgid "%qD writing to an object with a deleted copy constructor"
 msgstr ""
 
-#: cp/call.cc:10985
+#: cp/call.cc:10986
 #, gcc-internal-format
 msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
 msgstr ""
 
-#: cp/call.cc:10997
+#: cp/call.cc:10998
 #, gcc-internal-format
 msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
 msgstr ""
 
-#: cp/call.cc:11016
+#: cp/call.cc:11017
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
 msgstr ""
 
-#: cp/call.cc:11019
+#: cp/call.cc:11020
 #, gcc-internal-format
 msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
 msgstr ""
 
-#: cp/call.cc:11029
+#: cp/call.cc:11030
 #, fuzzy, gcc-internal-format
 msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
 msgstr "無法回合物件的 non-trivially-copyable 型態 %q#T 透過 %<...%>"
 
-#: cp/call.cc:11032
+#: cp/call.cc:11033
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
 msgstr ""
 
-#: cp/call.cc:11035
+#: cp/call.cc:11036
 #, gcc-internal-format
 msgid "%qD moving an object of type %#qT with deleted destructor"
 msgstr ""
 
-#: cp/call.cc:11044
+#: cp/call.cc:11045
 #, gcc-internal-format
 msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
 msgstr ""
 
-#: cp/call.cc:11066
+#: cp/call.cc:11067
 #, fuzzy, gcc-internal-format
 msgid "%#qT declared here"
 msgstr "%qD 宣告的在此"
 
-#: cp/call.cc:11120
+#: cp/call.cc:11121
 #, fuzzy, gcc-internal-format
 msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
 msgstr "non-integer 引數 3 在中呼叫到函式 %qE"
 
-#: cp/call.cc:11187
+#: cp/call.cc:11188
 #, fuzzy, gcc-internal-format
 msgid "constructor delegates to itself"
 msgstr "常數參考它自己"
 
-#: cp/call.cc:11462 cp/typeck.cc:10390
+#: cp/call.cc:11463 cp/typeck.cc:10386
 #, fuzzy
 msgid "cannot convert %qH to %qI"
 msgstr "無法轉換 %qT 到 %qT"
 
-#: cp/call.cc:11484
+#: cp/call.cc:11485
 #, fuzzy, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
 msgstr "沒有匹配函式用於呼叫到 %<%T::運算子 %T(%A)%#V%>"
 
-#: cp/call.cc:11516
+#: cp/call.cc:11517
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
 msgstr "對 %<%T::%s(%A)%#V%> 的呼叫沒有匹配的函式"
 
-#: cp/call.cc:11564
+#: cp/call.cc:11565
 #, gcc-internal-format
 msgid "call to non-function %qD"
 msgstr "呼叫非函式的 %qD"
 
-#: cp/call.cc:11602 cp/pt.cc:17172 cp/typeck.cc:3483
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
 #, fuzzy, gcc-internal-format
 msgid "cannot call constructor %<%T::%D%> directly"
 msgstr "無法呼叫建構子 %<%T::%D%>直接"
 
-#: cp/call.cc:11604
+#: cp/call.cc:11605
 #, fuzzy, gcc-internal-format
 msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr "  用於 function-style 演員陣容，移除冗餘 %<::%D%>"
 
-#: cp/call.cc:11786
+#: cp/call.cc:11787
 #, fuzzy, gcc-internal-format
 #| msgid "no matching function for call to %<%D(%A)%>"
 msgid "no matching function for call to %<%s(%A)%>"
 msgstr "對 %<%D(%A)%> 的呼叫沒有匹配的函式"
 
-#: cp/call.cc:11789
+#: cp/call.cc:11790
 #, gcc-internal-format
 msgid "call of overloaded %<%s(%A)%> is ambiguous"
 msgstr "對多載的 %<%s(%A)%> 的呼叫有歧義"
 
-#: cp/call.cc:11812
+#: cp/call.cc:11813
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no non-static data member named %qD"
 msgid "pure virtual %q#D called from non-static data member initializer"
 msgstr "%qT 沒具名為 %qD 的非靜態資料成員"
 
-#: cp/call.cc:11817
+#: cp/call.cc:11818
 #, fuzzy, gcc-internal-format
 #| msgid "returning a value from a constructor"
 msgid "pure virtual %q#D called from constructor"
 msgstr "建構式回傳值"
 
-#: cp/call.cc:11818
+#: cp/call.cc:11819
 #, fuzzy, gcc-internal-format
 #| msgid "returning a value from a destructor"
 msgid "pure virtual %q#D called from destructor"
 msgstr "解構函式回傳值"
 
-#: cp/call.cc:11841
+#: cp/call.cc:11842
 #, gcc-internal-format
 msgid "cannot call member function %qD without object"
 msgstr "沒有物件無法呼叫成員函式 %qD"
 
-#: cp/call.cc:12990
+#: cp/call.cc:12991
 #, gcc-internal-format
 msgid "passing %qT chooses %qT over %qT"
 msgstr "傳遞 %qT 時選擇 %qT 而不是 %qT"
 
-#: cp/call.cc:13016
+#: cp/call.cc:13017
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgid "C++20 says that these are ambiguous, even though the second is reversed:"
 msgstr "ISO C++ 認為有歧義，盡管第一個備選的最差類型轉換要好於第二個備選的最差類型轉換"
 
-#: cp/call.cc:13039
+#: cp/call.cc:13040
 #, fuzzy, gcc-internal-format
 #| msgid "destructor cannot be static member function"
 msgid "try making the operator a %<const%> member function"
 msgstr "解構函式不能是靜態成員函式"
 
-#: cp/call.cc:13102
+#: cp/call.cc:13103
 #, gcc-internal-format
 msgid "choosing %qD over %qD"
 msgstr "選擇 %qD 而不是 %qD"
 
-#: cp/call.cc:13103
+#: cp/call.cc:13104
 #, fuzzy
 #| msgid "  for conversion from %qT to %qT"
 msgid "  for conversion from %qH to %qI"
 msgstr "  當從 %qT 轉換為 %qT 時"
 
-#: cp/call.cc:13106
+#: cp/call.cc:13107
 #, gcc-internal-format
 msgid "  because conversion sequence for the argument is better"
 msgstr "  因為前者的引數類型轉換序列更好"
 
-#: cp/call.cc:13390
+#: cp/call.cc:13391
 #, fuzzy, gcc-internal-format
 msgid "default argument mismatch in overload resolution"
 msgstr "預設引數不匹配在中過載解析度"
 
-#: cp/call.cc:13394
+#: cp/call.cc:13395
 #, fuzzy, gcc-internal-format
 msgid " candidate 1: %q#F"
 msgstr " candidate 1:%q+#F"
 
-#: cp/call.cc:13396
+#: cp/call.cc:13397
 #, fuzzy, gcc-internal-format
 msgid " candidate 2: %q#F"
 msgstr " candidate 2:%q+#F"
 
-#: cp/call.cc:13442
+#: cp/call.cc:13443
 #, gcc-internal-format
 msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
 msgstr "ISO C++ 認為有歧義，盡管第一個備選的最差類型轉換要好於第二個備選的最差類型轉換"
 
-#: cp/call.cc:13850
+#: cp/call.cc:13855
 #, fuzzy, gcc-internal-format
 msgid "a temporary bound to %qD only persists until the constructor exits"
 msgstr "暫時的約束到 %qD 只有持續直到建構子離開"
 
-#: cp/call.cc:14003
+#: cp/call.cc:14008
 #, fuzzy
 msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
 msgstr "無效的初始化的 non-const 參考的型態 %qT 從 rvalue 的型態 %qT"
 
-#: cp/call.cc:14007
+#: cp/call.cc:14012
 #, fuzzy
 #| msgid "invalid initialization of reference of type %qT from expression of type %qT"
 msgid "invalid initialization of reference of type %qH from expression of type %qI"
 msgstr "將類型為 %qT 的參照初始化為類型為 %qT 的運算式無效"
 
-#: cp/call.cc:14325
+#: cp/call.cc:14330
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "possibly dangling reference to a temporary"
 msgstr "回傳臨時變數的參照"
 
-#: cp/call.cc:14326
+#: cp/call.cc:14331
 #, gcc-internal-format
 msgid "the temporary was destroyed at the end of the full expression %qE"
 msgstr ""
 
-#: cp/call.cc:14594
+#: cp/call.cc:14599
 #, fuzzy, gcc-internal-format
 #| msgid "%s: definition of function '%s' not converted\n"
 msgid "explicit conversion function was not considered"
@@ -54498,7 +54520,7 @@ msgid "%q#D cannot be overloaded with %q#D"
 msgstr "%q+#D 無法被多載"
 
 #: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
-#: cp/decl.cc:1988 cp/name-lookup.cc:2895 cp/name-lookup.cc:3213
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %q#D"
 msgstr "前一個宣告 %q+#D"
@@ -54950,7 +54972,7 @@ msgstr "flexible 陣列成員在中否則清空結構"
 msgid "next member %q#D declared here"
 msgstr "  %q+#D 已在此宣告過"
 
-#: cp/class.cc:7785 cp/decl.cc:17643 cp/parser.cc:27638
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
 #, gcc-internal-format
 msgid "redefinition of %q#T"
 msgstr "%q#T 重定義"
@@ -55086,7 +55108,7 @@ msgstr "無效的型態用於參數 %d 的 constexpr 函式 %q+#D"
 msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
 msgstr ""
 
-#: cp/constexpr.cc:270 cp/decl.cc:14678
+#: cp/constexpr.cc:270 cp/decl.cc:14694
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "C++11 %<constexpr%> 只有可用與 -std=c++11 或 -std=gnu++11"
@@ -55127,7 +55149,7 @@ msgstr "內文的 constexpr 函式 %qD 不是 return-statement"
 msgid "%qD is not usable as a %<constexpr%> function because:"
 msgstr "%q+D 不是可用做為 constexpr 函式因為："
 
-#: cp/constexpr.cc:1315 cp/constexpr.cc:6363
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
 msgstr ""
@@ -55145,7 +55167,7 @@ msgstr "%<constexpr%> 無法用於類型宣告"
 msgid "%q+E is not a constant expression"
 msgstr "%q+E並非常數運算式"
 
-#: cp/constexpr.cc:1898 cp/constexpr.cc:5929 cp/constexpr.cc:8238
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
 #: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
@@ -55168,7 +55190,7 @@ msgstr "使用者定義的 %qD 總是計算所有兩個參數"
 msgid "failed %<assume%> attribute assumption"
 msgstr ""
 
-#: cp/constexpr.cc:2203 cp/constexpr.cc:9688
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
 #: rust/backend/rust-constexpr.cc:5758
 #, fuzzy, gcc-internal-format
 #| msgid "call to non-function %qD"
@@ -55217,7 +55239,7 @@ msgstr "  %qT 是模稜兩可的基礎類別的 %qT"
 msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
 msgstr ""
 
-#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9724
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
 #: rust/backend/rust-constexpr.cc:5789
 #, fuzzy, gcc-internal-format
 msgid "call to non-%<constexpr%> function %qD"
@@ -55351,20 +55373,20 @@ msgstr "陣列下標超出陣列邊界"
 msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
 msgstr "陣列下標超出陣列邊界"
 
-#: cp/constexpr.cc:4514 rust/backend/rust-constexpr.cc:1667
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "accessing uninitialized array element"
 msgstr "成員 %qD 缺少初始值設定"
 
-#: cp/constexpr.cc:4576 rust/backend/rust-constexpr.cc:1724
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
 #, fuzzy, gcc-internal-format
 #| msgid "dereferencing %<void *%> pointer"
 msgid "dereferencing a null pointer in %qE"
 msgstr "提領 %<void *%> 指標"
 
-#: cp/constexpr.cc:4595 cp/constexpr.cc:4711 cp/constexpr.cc:4723
-#: cp/constexpr.cc:7422 cp/constexpr.cc:7552 cp/constexpr.cc:9638
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
 #: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
 #: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
 #: rust/backend/rust-constexpr.cc:5712
@@ -55372,477 +55394,477 @@ msgstr "提領 %<void *%> 指標"
 msgid "%qE is not a constant expression"
 msgstr "%qE 並非常數運算式"
 
-#: cp/constexpr.cc:4603 rust/backend/rust-constexpr.cc:1744
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
 #, fuzzy, gcc-internal-format
 msgid "mutable %qD is not usable in a constant expression"
 msgstr "可變的 %qD 不是可用在中常數運算式"
 
-#: cp/constexpr.cc:4635 cp/constexpr.cc:4671 cp/constexpr.cc:6527
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
 #: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "accessing uninitialized member %qD"
 msgstr "成員 %qD 缺少初始值設定"
 
-#: cp/constexpr.cc:4637 cp/constexpr.cc:4650 cp/constexpr.cc:6522
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
 #: rust/backend/rust-constexpr.cc:1776
 #, fuzzy, gcc-internal-format
 msgid "accessing %qD member instead of initialized %qD member in constant expression"
 msgstr "存取 %qD 成員以代替初始化的 %qD 成員在中常數運算式"
 
-#: cp/constexpr.cc:4789
+#: cp/constexpr.cc:4790
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:4792
+#: cp/constexpr.cc:4793
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:4803
+#: cp/constexpr.cc:4804
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:4806
+#: cp/constexpr.cc:4807
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:4817
+#: cp/constexpr.cc:4818
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:4820
+#: cp/constexpr.cc:4821
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:4831
+#: cp/constexpr.cc:4832
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:4835
+#: cp/constexpr.cc:4836
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:4846
+#: cp/constexpr.cc:4847
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:4849
+#: cp/constexpr.cc:4850
 #, fuzzy, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
 msgstr "%qT 無法型態的完成常數運算式因為它有可變的 sub-objects"
 
-#: cp/constexpr.cc:5004
+#: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be constant evaluated on the target"
 msgstr "巢狀的函式不支援於這個目標"
 
-#: cp/constexpr.cc:5013 cp/constexpr.cc:5023
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
 #, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the type is too large"
 msgstr ""
 
-#: cp/constexpr.cc:5043
+#: cp/constexpr.cc:5044
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
 msgstr "%qT 無法型態的完成常數運算式因為它有可變的 sub-objects"
 
-#: cp/constexpr.cc:5089
+#: cp/constexpr.cc:5090
 #, fuzzy, gcc-internal-format
 #| msgid "missing initializer for member %qD"
 msgid "%qs accessing uninitialized byte at offset %d"
 msgstr "成員 %qD 缺少初始值設定"
 
-#: cp/constexpr.cc:5101
+#: cp/constexpr.cc:5102
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
 msgstr "%qT 無法型態的完成常數運算式因為它有可變的 sub-objects"
 
-#: cp/constexpr.cc:5949 rust/backend/rust-constexpr.cc:895
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
 #, fuzzy, gcc-internal-format
 msgid "accessing value of %qE through a %qT glvalue in a constant expression"
 msgstr "存取值的 %qE 透過 %qT glvalue 在中常數運算式"
 
 #. Provide a more accurate message for deleted variables.
-#: cp/constexpr.cc:5989 cp/constexpr.cc:6022
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
 #, fuzzy, gcc-internal-format
 msgid "use of allocated storage after deallocation in a constant expression"
 msgstr "使用的值的物件被建構在中常數運算式"
 
-#: cp/constexpr.cc:5991 cp/constexpr.cc:6017 cp/constexpr.cc:6024
-#: cp/constexpr.cc:6358
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
 #, fuzzy, gcc-internal-format
 msgid "allocated here"
 msgstr "宣告的在此"
 
-#: cp/constexpr.cc:5995
+#: cp/constexpr.cc:5996
 #, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
 msgstr ""
 
-#: cp/constexpr.cc:6015
+#: cp/constexpr.cc:6016
 #, fuzzy, gcc-internal-format
 msgid "the content of uninitialized storage is not usable in a constant expression"
 msgstr "值的 %qD 不是可用在中常數運算式"
 
-#: cp/constexpr.cc:6027 rust/backend/rust-constexpr.cc:4041
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
 #, fuzzy, gcc-internal-format
 msgid "the value of %qD is not usable in a constant expression"
 msgstr "值的 %qD 不是可用在中常數運算式"
 
-#: cp/constexpr.cc:6035
+#: cp/constexpr.cc:6036
 #, fuzzy, gcc-internal-format
 msgid "%qD used in its own initializer"
 msgstr "%qD 已用於它的本身初始設定式"
 
-#: cp/constexpr.cc:6040
+#: cp/constexpr.cc:6041
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not const"
 msgstr "%q#D 不是常數"
 
-#: cp/constexpr.cc:6043
+#: cp/constexpr.cc:6044
 #, fuzzy, gcc-internal-format
 msgid "%q#D is volatile"
 msgstr "%q#D 是易變的"
 
-#: cp/constexpr.cc:6048 cp/constexpr.cc:6055
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
 #, fuzzy, gcc-internal-format
 msgid "%qD was not initialized with a constant expression"
 msgstr "%qD 未被初始化的與常數運算式"
 
-#: cp/constexpr.cc:6061
+#: cp/constexpr.cc:6062
 #, fuzzy, gcc-internal-format
 msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD 未被宣告 %<constexpr%>"
 
-#: cp/constexpr.cc:6064
+#: cp/constexpr.cc:6065
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
 msgstr "%qD 沒有積分或列舉類型型態"
 
-#: cp/constexpr.cc:6356
+#: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
 msgstr "使用的值的物件被建構在中常數運算式"
 
-#: cp/constexpr.cc:6365
+#: cp/constexpr.cc:6366
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
 msgstr "%qE 並非常數運算式"
 
-#: cp/constexpr.cc:6372
+#: cp/constexpr.cc:6373
 #, fuzzy, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
 msgstr "差異的兩指標運算式並非常數運算式"
 
-#: cp/constexpr.cc:6375
+#: cp/constexpr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
 msgstr "%qE 並非常數運算式"
 
-#: cp/constexpr.cc:6502
+#: cp/constexpr.cc:6503
 #, fuzzy, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
 msgstr "無法轉換 %qT 到 %qT 在中初始化"
 
-#: cp/constexpr.cc:6531
+#: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
 msgstr ""
 
-#: cp/constexpr.cc:6538
+#: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
 msgstr ""
 
-#: cp/constexpr.cc:6550 rust/backend/rust-constexpr.cc:2822
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, fuzzy, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD during initialization"
 msgstr "無法轉換 %qT 到 %qT 在中初始化"
 
-#: cp/constexpr.cc:6998 cp/constexpr.cc:8587 cp/constexpr.cc:8599
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
 #: rust/backend/rust-constexpr.cc:4668
 #, fuzzy, gcc-internal-format
 msgid "statement is not a constant expression"
 msgstr "初始設定式元件並非常數運算式"
 
-#: cp/constexpr.cc:7094 rust/backend/rust-constexpr.cc:4933
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
 msgstr "constexpr 求值深度超出最大值的 %d (使用 -fconstexpr-depth=到增加最大值)"
 
-#: cp/constexpr.cc:7201 rust/backend/rust-constexpr.cc:999
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
 #, fuzzy, gcc-internal-format
 msgid "inline assembly is not a constant expression"
 msgstr "初始設定式元件並非常數運算式"
 
-#: cp/constexpr.cc:7203 rust/backend/rust-constexpr.cc:1000
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
 #, gcc-internal-format
 msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
 msgstr ""
 
-#: cp/constexpr.cc:7221
+#: cp/constexpr.cc:7222
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %qD"
 msgid "use of %qD"
 msgstr "錯誤地使用了 %qD"
 
-#: cp/constexpr.cc:7225
+#: cp/constexpr.cc:7226
 #, gcc-internal-format
 msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
 msgstr ""
 
-#: cp/constexpr.cc:7227
+#: cp/constexpr.cc:7228
 #, gcc-internal-format
 msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
 msgstr ""
 
-#: cp/constexpr.cc:7229
+#: cp/constexpr.cc:7230
 #, gcc-internal-format, gfc-internal-format
 msgid "the default value for the current CPU tuning is %d bytes"
 msgstr ""
 
-#: cp/constexpr.cc:7231
+#: cp/constexpr.cc:7232
 #, gcc-internal-format
 msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
 msgstr ""
 
-#: cp/constexpr.cc:7384
+#: cp/constexpr.cc:7385
 #, fuzzy, gcc-internal-format
 msgid "value %qE of type %qT is not a constant expression"
 msgstr "%qE 並非常數運算式"
 
-#: cp/constexpr.cc:7397
+#: cp/constexpr.cc:7398
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
 msgstr "constexpr 求值深度超出最大值的 %d (使用 -fconstexpr-depth=到增加最大值)"
 
-#: cp/constexpr.cc:7582
+#: cp/constexpr.cc:7583
 #, gcc-internal-format
 msgid "control passes through definition of %qD with thread storage duration"
 msgstr ""
 
-#: cp/constexpr.cc:7585
+#: cp/constexpr.cc:7586
 #, fuzzy, gcc-internal-format
 msgid "control passes through definition of %qD with static storage duration"
 msgstr "擷取的變數 %qD 與 non-automatic 貯藏體持續時間"
 
-#: cp/constexpr.cc:7650 cp/constexpr.cc:10332
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
 #: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
 #, fuzzy, gcc-internal-format
 msgid "temporary of non-literal type %qT in a constant expression"
 msgstr "暫時的的 non-literal 型態 %qT 在中常數運算式"
 
-#: cp/constexpr.cc:8099 cp/constexpr.cc:9839
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> is not a constant expression"
 msgstr "初始設定式元件並非常數運算式"
 
-#: cp/constexpr.cc:8127 rust/backend/rust-constexpr.cc:2461
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
 #, fuzzy, gcc-internal-format
 msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
 msgstr "轉換從指標類型 %qT 到算術型式 %qT 在中 constant-expression"
 
-#: cp/constexpr.cc:8177
+#: cp/constexpr.cc:8181
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
 msgstr "%qT 無法型態的完成常數運算式因為它有可變的 sub-objects"
 
-#: cp/constexpr.cc:8184
+#: cp/constexpr.cc:8188
 #, fuzzy, gcc-internal-format
 #| msgid "  %q+#D declared here"
 msgid "pointed-to object declared here"
 msgstr "  %q+#D 已在此宣告過"
 
-#: cp/constexpr.cc:8189
+#: cp/constexpr.cc:8193
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
 msgstr "範本參數 %qD(類型為 %qT)不允許出現在整數運算式中，因為它的類型不是整數或列舉"
 
-#: cp/constexpr.cc:8201
+#: cp/constexpr.cc:8205
 #, fuzzy, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
 msgstr "%qE 並非常數運算式"
 
-#: cp/constexpr.cc:8215
+#: cp/constexpr.cc:8219
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression when the class %qT is still incomplete"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:8249 rust/backend/rust-constexpr.cc:2506
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: cp/constexpr.cc:8387 cp/constexpr.cc:10150 cp/constexpr.cc:10555
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
 #: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
 #, fuzzy, gcc-internal-format
 msgid "expression %qE is not a constant expression"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: cp/constexpr.cc:8432 cp/constexpr.cc:10596
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
 #, fuzzy, gcc-internal-format
 msgid "%<goto%> is not a constant expression"
 msgstr "%qE 並非常數運算式"
 
-#: cp/constexpr.cc:8490
+#: cp/constexpr.cc:8494
 #, fuzzy, gcc-internal-format
 msgid "contract predicate is false in constant expression"
 msgstr "初始設定式元件並非常數運算式"
 
-#: cp/constexpr.cc:8506
+#: cp/constexpr.cc:8510
 #, fuzzy, gcc-internal-format
 msgid "unexpected template-id %qE"
 msgstr "預期 template-id"
 
-#: cp/constexpr.cc:8512 cp/constraint.cc:178 cp/constraint.cc:755
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
 #, fuzzy, gcc-internal-format
 msgid "function concept must be called"
 msgstr "內建函式 %qD 需一個引數只有"
 
-#: cp/constexpr.cc:8537
+#: cp/constexpr.cc:8541
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "address of a call to %qs is not a constant expression"
 msgstr "陣列 %qD 的大小不是一個整數常運算式"
 
-#: cp/constexpr.cc:8602
+#: cp/constexpr.cc:8606
 #, fuzzy, gcc-internal-format
 msgid "unexpected expression %qE of kind %s"
 msgstr "未預期的運算式 %qE 的 kind %s"
 
-#: cp/constexpr.cc:8878 rust/backend/rust-constexpr.cc:5158
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
 msgstr "%qT 無法型態的完成常數運算式因為它有可變的 sub-objects"
 
-#: cp/constexpr.cc:8886 rust/backend/rust-constexpr.cc:5167
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
 #, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
 msgstr ""
 
-#: cp/constexpr.cc:8902 rust/backend/rust-constexpr.cc:5183
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
 msgstr "%qT 無法型態的完成常數運算式因為它有可變的 sub-objects"
 
-#: cp/constexpr.cc:8913 rust/backend/rust-constexpr.cc:5195
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a constant expression because allocated storage has not been deallocated"
 msgstr "%qT 無法型態的完成常數運算式因為它有可變的 sub-objects"
 
-#: cp/constexpr.cc:8933 rust/backend/rust-constexpr.cc:5213
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
 #, gcc-internal-format
 msgid "immediate evaluation returns address of immediate function %qD"
 msgstr ""
 
-#: cp/constexpr.cc:8937
+#: cp/constexpr.cc:8941
 #, fuzzy, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
 msgstr "需位址的解構式 %qE"
 
-#: cp/constexpr.cc:9575 rust/backend/rust-constexpr.cc:5667
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
 msgstr "從具有類型 %qT 的右值運算式到類型 %qT 中的轉換無效"
 
-#: cp/constexpr.cc:9804
+#: cp/constexpr.cc:9808
 #, fuzzy, gcc-internal-format
 msgid "lambda capture of %qE is not a constant expression"
 msgstr "%qE 並非常數運算式"
 
-#: cp/constexpr.cc:9807
+#: cp/constexpr.cc:9811
 #, gcc-internal-format
 msgid "because it is used as a glvalue"
 msgstr ""
 
-#: cp/constexpr.cc:9863 rust/backend/rust-constexpr.cc:5893
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> from integer to pointer"
 msgstr "reinterpretcast 從型態 %qT 輸入 %qT 演員陣容暫離限定元(_C)"
 
-#: cp/constexpr.cc:9897 rust/backend/rust-constexpr.cc:5921
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
 #, fuzzy, gcc-internal-format
 msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
 msgstr "address-of 物件 %qE 與執行緒本地或自動貯藏體並非常數運算式"
 
-#: cp/constexpr.cc:9936
+#: cp/constexpr.cc:9940
 #, fuzzy, gcc-internal-format
 msgid "use of %<this%> in a constant expression"
 msgstr "%qE 並非常數運算式"
 
-#: cp/constexpr.cc:10085
+#: cp/constexpr.cc:10089
 #, fuzzy, gcc-internal-format
 msgid "lambda-expression is not a constant expression before C++17"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: cp/constexpr.cc:10097
+#: cp/constexpr.cc:10101
 #, fuzzy, gcc-internal-format
 msgid "new-expression is not a constant expression before C++20"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: cp/constexpr.cc:10164
+#: cp/constexpr.cc:10168
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual functions cannot be %<constexpr%> before C++20"
 msgstr "虛函式不能是夥伴"
 
-#: cp/constexpr.cc:10180
+#: cp/constexpr.cc:10184
 #, fuzzy, gcc-internal-format
 msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
 msgstr "typeid-expression 並非常數運算式因為 %qE 是的 polymorphic 型態"
 
-#: cp/constexpr.cc:10243
+#: cp/constexpr.cc:10247
 #, fuzzy, gcc-internal-format
 msgid "cast to non-integral type %qT in a constant expression"
 msgstr "暫時的的 non-literal 型態 %qT 在中常數運算式"
 
-#: cp/constexpr.cc:10296
+#: cp/constexpr.cc:10300
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %<constexpr%> context"
 msgstr "%qD 宣告 %<constexpr%> 外側它的類別"
 
-#: cp/constexpr.cc:10304
+#: cp/constexpr.cc:10308
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<static%> in %<constexpr%> context"
 msgstr "%qD 宣告 %<constexpr%> 外側它的類別"
 
-#: cp/constexpr.cc:10382 rust/backend/rust-constexpr.cc:6251
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
 #, fuzzy, gcc-internal-format
 msgid "division by zero is not a constant expression"
 msgstr "除法由零並非 constant-expression"
 
-#: cp/constexpr.cc:10483 rust/backend/rust-constexpr.cc:6349
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
 #, fuzzy, gcc-internal-format
 msgid "%<delete[]%> is not a constant expression"
 msgstr "%qE 並非常數運算式"
 
-#: cp/constexpr.cc:10552
+#: cp/constexpr.cc:10556
 #, fuzzy, gcc-internal-format
 msgid "neither branch of %<if%> is a constant expression"
 msgstr "%qE 並非常數運算式"
 
-#: cp/constexpr.cc:10565
+#: cp/constexpr.cc:10569
 #, fuzzy, gcc-internal-format
 msgid "non-constant array initialization"
 msgstr "non-constant 陣列初始化"
 
-#: cp/constexpr.cc:10613 rust/backend/rust-constexpr.cc:6427
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
 #, fuzzy, gcc-internal-format
 msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++11 %<constexpr%> 只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/constexpr.cc:10644 rust/backend/rust-constexpr.cc:6438
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unexpected AST of kind %s"
 msgstr "未預期的 AST 的 kind %s"
@@ -56600,7 +56622,7 @@ msgstr "%<__builtin_prefetch%> 的第三個引數必須是一個常數"
 msgid "no suspend point info for %qD"
 msgstr "沒有前一個原型用於 %qD"
 
-#: cp/coroutines.cc:2102 cp/coroutines.cc:4657
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
 #, gcc-internal-format
 msgid "%qE is provided by %qT but is not usable with the function signature %qD"
 msgstr ""
@@ -56622,23 +56644,23 @@ msgstr "指標不能做為 case 常數"
 msgid "variable length arrays are not yet supported in coroutines"
 msgstr ""
 
-#: cp/coroutines.cc:4662
+#: cp/coroutines.cc:4657
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
 msgstr ""
 
-#: cp/coroutines.cc:4665
+#: cp/coroutines.cc:4660
 #, gcc-internal-format
 msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
 msgstr ""
 
-#: cp/coroutines.cc:4694
+#: cp/coroutines.cc:4689
 #, gcc-internal-format
 msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
 msgstr ""
 
 #. We can't initialize a non-class return value from void.
-#: cp/coroutines.cc:5076
+#: cp/coroutines.cc:5064
 #, fuzzy, gcc-internal-format
 msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
 msgstr "無效的初始化的 non-const 參考的型態 %qT 從 rvalue 的型態 %qT"
@@ -56659,69 +56681,69 @@ msgstr ""
 msgid "%qD was promoted to an immediate function"
 msgstr "%qD 不是一個範本函式"
 
-#: cp/cp-gimplify.cc:1164
+#: cp/cp-gimplify.cc:1174
 #, fuzzy, gcc-internal-format
 msgid "taking address of an immediate function %qD"
 msgstr "需位址的解構式 %qE"
 
-#: cp/cp-gimplify.cc:1263
+#: cp/cp-gimplify.cc:1273
 #, fuzzy, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
 msgstr "%qE 並非常數運算式"
 
-#: cp/cp-gimplify.cc:2002
+#: cp/cp-gimplify.cc:2012
 #, fuzzy, gcc-internal-format
 msgid "%<throw%> will always call %<terminate%>"
 msgstr "位址的 %qD 將一律評估做為 %<true%>"
 
-#: cp/cp-gimplify.cc:2005
+#: cp/cp-gimplify.cc:2015
 #, fuzzy, gcc-internal-format
 msgid "in C++11 destructors default to %<noexcept%>"
 msgstr "解構式無法 %<constexpr%>"
 
-#: cp/cp-gimplify.cc:2017
+#: cp/cp-gimplify.cc:2027
 #, gcc-internal-format
 msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
 msgstr ""
 
-#: cp/cp-gimplify.cc:3614
+#: cp/cp-gimplify.cc:3624
 #, fuzzy, gcc-internal-format
 msgid "ignoring attribute %qE after earlier %qE"
 msgstr "忽略屬性於模板引數 %qT"
 
-#: cp/cp-gimplify.cc:3656
+#: cp/cp-gimplify.cc:3666
 #, fuzzy, gcc-internal-format
 msgid "pack expansion of %qE attribute"
 msgstr "無效的引數的 %qE 屬性"
 
-#: cp/cp-gimplify.cc:3659
+#: cp/cp-gimplify.cc:3669
 #, fuzzy, gcc-internal-format
 #| msgid "parse error in template argument list"
 msgid "use fold expression in the attribute argument instead"
 msgstr "範本引數表語法錯誤"
 
-#: cp/cp-gimplify.cc:3698 cp/cp-gimplify.cc:3710 cp/decl.cc:4456
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
 #: cp/method.cc:984
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a type"
 msgstr "%qD 並非型態"
 
-#: cp/cp-gimplify.cc:3716
+#: cp/cp-gimplify.cc:3726
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class type"
 msgstr "%qT 並非類別型態"
 
-#: cp/cp-gimplify.cc:3733
+#: cp/cp-gimplify.cc:3743
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
 msgstr "%qD 沒有積分或列舉類型型態"
 
-#: cp/cp-gimplify.cc:3743
+#: cp/cp-gimplify.cc:3753
 #, fuzzy, gcc-internal-format
 msgid "%qD does not have integral type"
 msgstr "%qD 沒有積分或列舉類型型態"
 
-#: cp/cp-gimplify.cc:3755
+#: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
 msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
 msgstr ""
@@ -56769,7 +56791,7 @@ msgstr "轉換到 non-const 參考類型 %q#T 從 rvalue 的型態 %qT"
 msgid "conversion from %qH to %qI discards qualifiers"
 msgstr "從 %qT 到 %qT 的轉換丟失了限定資訊"
 
-#: cp/cvt.cc:498 cp/typeck.cc:8827
+#: cp/cvt.cc:498 cp/typeck.cc:8823
 #, gcc-internal-format
 msgid "casting %qT to %qT does not dereference pointer"
 msgstr "從 %qT 轉換到 %qT 並未提領指標"
@@ -57161,7 +57183,7 @@ msgstr "從先前的宣告 %q+F"
 msgid "redeclaration %qD differs in %qs from previous declaration"
 msgstr "重新宣告 %qD 不同在中 %<constexpr%>"
 
-#: cp/decl.cc:1446 cp/decl.cc:16620
+#: cp/decl.cc:1446 cp/decl.cc:16636
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration %q+D"
 msgid "previous declaration %qD"
@@ -57318,8 +57340,8 @@ msgstr "先前對於 %q+#D 的非函式宣告"
 msgid "%q#D previously defined here"
 msgstr "%q+#D 已在此定義過"
 
-#: cp/decl.cc:2089 cp/name-lookup.cc:3366 cp/name-lookup.cc:3404
-#: cp/name-lookup.cc:3430
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D previously declared here"
 msgid "%q#D previously declared here"
@@ -57402,58 +57424,41 @@ msgstr "為參數 %d (屬於 %q#D)指定了預設引數"
 msgid "previous specification in %q#D here"
 msgstr "但先前在 %q+#D 中已有指定"
 
-#: cp/decl.cc:2285
-#, fuzzy, gcc-internal-format
-#| msgid "conflicts with built-in declaration %q#D"
-msgid "declaration %qD conflicts with builtin"
-msgstr "與內建宣告 %q#D 衝突"
-
-#: cp/decl.cc:2288
-#, fuzzy, gcc-internal-format
-#| msgid "declaration of namespace %qD conflicts with"
-msgid "declaration %qD conflicts with import"
-msgstr "命名空間 %qD 的宣告存在衝突，與"
-
-#: cp/decl.cc:2289
-#, fuzzy, gcc-internal-format
-msgid "import declared %q#D here"
-msgstr "%qD 宣告的在此"
-
-#: cp/decl.cc:2306 cp/decl.cc:16643
+#: cp/decl.cc:2300 cp/decl.cc:16654
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting exporting for declaration %qD"
 msgstr "相互衝突的宣告 %q#D"
 
-#: cp/decl.cc:2308 cp/decl.cc:16645
+#: cp/decl.cc:2302 cp/decl.cc:16656
 #, fuzzy, gcc-internal-format
 msgid "previously declared here without exporting"
 msgstr "在之前宣告的在此"
 
-#: cp/decl.cc:2335
+#: cp/decl.cc:2330
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %q+D was here"
 msgid "previous definition of %qD here"
 msgstr "%q+D 的上一個定義在此"
 
-#: cp/decl.cc:2336
+#: cp/decl.cc:2331
 #, fuzzy, gcc-internal-format
 #| msgid "previous declaration of %q+D was here"
 msgid "previous declaration of %qD here"
 msgstr "%q+D 的上一個宣告在此"
 
-#: cp/decl.cc:2349
+#: cp/decl.cc:2344
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared virtual inside a union"
 msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
 msgstr "聯合成員函式 %qD 被宣告為虛函式"
 
-#: cp/decl.cc:2396
+#: cp/decl.cc:2391
 #, gcc-internal-format
 msgid "redundant redeclaration of %qD in same scope"
 msgstr "同一作用欄位中 %qD 冗餘的重宣告"
 
-#: cp/decl.cc:2412
+#: cp/decl.cc:2407
 #, fuzzy, gcc-internal-format
 msgid "deleted definition of %qD is not first declaration"
 msgstr "刪除的定義的 %qD"
@@ -57466,44 +57471,44 @@ msgstr "刪除的定義的 %qD"
 #. that specialization that would cause an implicit
 #. instantiation to take place, in every translation unit in
 #. which such a use occurs.
-#: cp/decl.cc:2910
+#: cp/decl.cc:2905
 #, gcc-internal-format
 msgid "explicit specialization of %qD after first use"
 msgstr "在初次使用後明確特例化 %qD"
 
-#: cp/decl.cc:3092
+#: cp/decl.cc:3087
 #, fuzzy, gcc-internal-format
 msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
 msgstr "『setter』屬性的內容 %qD 衝突與前一個宣告"
 
 #. Reject two definitions.
-#: cp/decl.cc:3356 cp/decl.cc:3385 cp/decl.cc:3423 cp/decl.cc:3440
-#: cp/decl.cc:3539
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
 #, fuzzy, gcc-internal-format
 msgid "redefinition of %q#D"
 msgstr "重複定義的 %q#D"
 
-#: cp/decl.cc:3372
+#: cp/decl.cc:3381
 #, fuzzy, gcc-internal-format
 msgid "%qD conflicts with used function"
 msgstr "%qD 衝突與使用的函式"
 
-#: cp/decl.cc:3382
+#: cp/decl.cc:3391
 #, fuzzy, gcc-internal-format
 msgid "%q#D not declared in class"
 msgstr "%q#D 無法宣告的在中類別"
 
-#: cp/decl.cc:3396 cp/decl.cc:3450
+#: cp/decl.cc:3405 cp/decl.cc:3459
 #, fuzzy, gcc-internal-format
 msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
 msgstr "%q+D redeclared 內聯與 %<gnu_inline%> 屬性"
 
-#: cp/decl.cc:3399 cp/decl.cc:3453
+#: cp/decl.cc:3408 cp/decl.cc:3462
 #, fuzzy, gcc-internal-format
 msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
 msgstr "%q+D redeclared 內聯而無需 %<gnu_inline%> 屬性"
 
-#: cp/decl.cc:3409
+#: cp/decl.cc:3418
 #, gcc-internal-format
 msgid "comparison operator %q+D defaulted after its first declaration"
 msgstr ""
@@ -57511,2605 +57516,2605 @@ msgstr ""
 #. is_primary=
 #. is_partial=
 #. is_friend_decl=
-#: cp/decl.cc:3470
+#: cp/decl.cc:3479
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of friend %q#D may not have default template arguments"
 msgstr "重新宣告的朋友 %q#D 可能無法有預設模板引數"
 
-#: cp/decl.cc:3485
+#: cp/decl.cc:3494
 #, fuzzy, gcc-internal-format
 msgid "thread-local declaration of %q#D follows non-thread-local declaration"
 msgstr "thread-local 宣告的 %q#D 追隨 non-thread-local 宣告"
 
-#: cp/decl.cc:3488
+#: cp/decl.cc:3497
 #, fuzzy, gcc-internal-format
 msgid "non-thread-local declaration of %q#D follows thread-local declaration"
 msgstr "non-thread-local 宣告的 %q#D 追隨 thread-local 宣告"
 
-#: cp/decl.cc:3503 cp/decl.cc:3547 cp/name-lookup.cc:2890
-#: cp/name-lookup.cc:3398 cp/name-lookup.cc:3401 cp/name-lookup.cc:3424
-#: cp/name-lookup.cc:3427
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D"
 msgstr "重新宣告的 %q#D"
 
-#: cp/decl.cc:3530
+#: cp/decl.cc:3539
 #, fuzzy, gcc-internal-format
 #| msgid "redundant redeclaration of %qD in same scope"
 msgid "redundant redeclaration of %<constexpr%> static data member %qD"
 msgstr "同一作用欄位中 %qD 冗餘的重宣告"
 
-#: cp/decl.cc:3598
+#: cp/decl.cc:3607
 #, gcc-internal-format
 msgid "local label %qE conflicts with existing label"
 msgstr ""
 
-#: cp/decl.cc:3599
+#: cp/decl.cc:3608
 #, fuzzy, gcc-internal-format
 msgid "previous label"
 msgstr "前一個宣告"
 
-#: cp/decl.cc:3689
+#: cp/decl.cc:3698
 #, gcc-internal-format
 msgid "jump to label %qD"
 msgstr "跳轉至標籤 %qD"
 
-#: cp/decl.cc:3690
+#: cp/decl.cc:3699
 #, gcc-internal-format
 msgid "jump to case label"
 msgstr "跳轉至 case 標籤"
 
-#: cp/decl.cc:3694
+#: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
 msgstr ""
 
-#: cp/decl.cc:3696
+#: cp/decl.cc:3705
 #, gcc-internal-format
 msgid "  from here"
 msgstr "  從這裡"
 
-#: cp/decl.cc:3724 cp/decl.cc:3962
+#: cp/decl.cc:3733 cp/decl.cc:3971
 #, fuzzy, gcc-internal-format
 msgid "  exits OpenMP structured block"
 msgstr "  離開 OpenMP 結構化訊息塊"
 
-#: cp/decl.cc:3749
+#: cp/decl.cc:3758
 #, fuzzy, gcc-internal-format
 #| msgid "  crosses initialization of %q+#D"
 msgid "  crosses initialization of %q#D"
 msgstr "  略過 %q+#D 的初始化"
 
-#: cp/decl.cc:3761 cp/decl.cc:3928
+#: cp/decl.cc:3770 cp/decl.cc:3937
 #, fuzzy, gcc-internal-format
 #| msgid "  enters try block"
 msgid "  enters %<try%> block"
 msgstr "  進入 try 區塊"
 
-#: cp/decl.cc:3767 cp/decl.cc:3917 cp/decl.cc:3930
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
 #, fuzzy, gcc-internal-format
 #| msgid "  enters catch block"
 msgid "  enters %<catch%> block"
 msgstr "  進入 catch 區塊"
 
-#: cp/decl.cc:3773 cp/decl.cc:3944
+#: cp/decl.cc:3782 cp/decl.cc:3953
 #, fuzzy, gcc-internal-format
 msgid "  enters OpenMP structured block"
 msgstr "  輸入 OpenMP 結構化訊息塊"
 
-#: cp/decl.cc:3779 cp/decl.cc:3932
+#: cp/decl.cc:3788 cp/decl.cc:3941
 #, gcc-internal-format
 msgid "  enters synchronized or atomic statement"
 msgstr ""
 
-#: cp/decl.cc:3785 cp/decl.cc:3938
+#: cp/decl.cc:3794 cp/decl.cc:3947
 #, fuzzy, gcc-internal-format
 #| msgid "jump into statement expression"
 msgid "  enters statement expression"
 msgstr "跳轉至敘述運算式中"
 
-#: cp/decl.cc:3792 cp/decl.cc:3934
+#: cp/decl.cc:3801 cp/decl.cc:3943
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "  enters %<constexpr if%> statement"
 msgstr "需要敘述"
 
-#: cp/decl.cc:3798 cp/decl.cc:3936
+#: cp/decl.cc:3807 cp/decl.cc:3945
 #, fuzzy, gcc-internal-format
 #| msgid "expected statement"
 msgid "  enters %<consteval if%> statement"
 msgstr "需要敘述"
 
-#: cp/decl.cc:3829 cp/decl.cc:4003
+#: cp/decl.cc:3838 cp/decl.cc:4012
 #, fuzzy, gcc-internal-format
 msgid "  does not destroy %qD"
 msgstr "ISO C99 不支援 %qE"
 
-#: cp/decl.cc:3831 cp/decl.cc:3986
+#: cp/decl.cc:3840 cp/decl.cc:3995
 #, fuzzy, gcc-internal-format
 #| msgid "%qD does not declare a template type"
 msgid "  does not clean up handled exception"
 msgstr "%qD 沒有宣告一個範本類型"
 
-#: cp/decl.cc:3922
+#: cp/decl.cc:3931
 #, fuzzy, gcc-internal-format
 #| msgid "  skips initialization of %q+#D"
 msgid "  skips initialization of %q#D"
 msgstr "  略過 %q+#D 的初始化"
 
-#: cp/decl.cc:4463 cp/parser.cc:7205
+#: cp/decl.cc:4472 cp/parser.cc:7205
 #, fuzzy, gcc-internal-format
 #| msgid "%qD used without template parameters"
 msgid "%qD used without template arguments"
 msgstr "%qD 使用時未帶範本參數"
 
-#: cp/decl.cc:4469
+#: cp/decl.cc:4478
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a function template"
 msgid "%qD is a function, not a type"
 msgstr "%qD 不是一個函式範本"
 
-#: cp/decl.cc:4480
+#: cp/decl.cc:4489
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a class"
 msgstr "%q#T 並非類別"
 
-#: cp/decl.cc:4519 cp/decl.cc:4620
+#: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
 msgstr "沒具名為 %q#T 的類別範本，在%q#T 中 "
 
-#: cp/decl.cc:4520
+#: cp/decl.cc:4529
 #, gcc-internal-format
 msgid "no type named %q#T in %q#T"
 msgstr "沒具名為 %q#T 的類型，在%q#T 中 "
 
-#: cp/decl.cc:4533
+#: cp/decl.cc:4542
 #, fuzzy, gcc-internal-format
 msgid "lookup of %qT in %qT is ambiguous"
 msgstr "查找的 %qT 在中 %qT 是模稜兩可的"
 
-#: cp/decl.cc:4542
+#: cp/decl.cc:4551
 #, fuzzy, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#T, which is not a class template"
 msgstr "%<typename %T::%D%> 名稱 %q#T, 該項並非類別模板"
 
-#: cp/decl.cc:4555
+#: cp/decl.cc:4564
 #, fuzzy, gcc-internal-format
 msgid "%<typename %T::%D%> names %q#D, which is not a type"
 msgstr "%<typename %T::%D%> 名稱 %q#T, 該項並非型態"
 
-#: cp/decl.cc:4629
+#: cp/decl.cc:4638
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters do not match template"
 msgid "template parameters do not match template %qD"
 msgstr "範本參數與範本不符"
 
-#: cp/decl.cc:4986
+#: cp/decl.cc:4995
 #, fuzzy, gcc-internal-format
 #| msgid "requested alignment is not a power of 2"
 msgid "%<-faligned-new=%d%> is not a power of two"
 msgstr "要求的對齊邊界不是 2 的某次方"
 
-#: cp/decl.cc:5160
+#: cp/decl.cc:5169
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5164
+#: cp/decl.cc:5173
 #, gcc-internal-format
 msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5177
+#: cp/decl.cc:5186
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is less than %d"
 msgstr ""
 
-#: cp/decl.cc:5182
+#: cp/decl.cc:5191
 #, gcc-internal-format
 msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
 msgstr ""
 
-#: cp/decl.cc:5509
+#: cp/decl.cc:5518
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D invalid; an anonymous union can only have non-static data members"
 msgid "%q#D invalid; an anonymous union may only have public non-static data members"
 msgstr "%q+#D 無效；匿名聯合只能有非靜態的資料成員"
 
-#: cp/decl.cc:5519 cp/parser.cc:23596
+#: cp/decl.cc:5528 cp/parser.cc:23596
 #, fuzzy, gcc-internal-format
 msgid "this flexibility is deprecated and will be removed"
 msgstr "%<mwords-little-endian%> 被不宜用而將被  移除的在中未來釋出"
 
-#: cp/decl.cc:5548
+#: cp/decl.cc:5557
 #, fuzzy, gcc-internal-format
 #| msgid "anonymous struct not inside named type"
 msgid "anonymous struct with base classes"
 msgstr "匿名結構不在具名類型內"
 
-#: cp/decl.cc:5560
+#: cp/decl.cc:5569
 #, gcc-internal-format
 msgid "member %q+#D with constructor not allowed in anonymous aggregate"
 msgstr "有建構式的成員 %q+#D 不允許在匿名聚合中出現"
 
-#: cp/decl.cc:5563
+#: cp/decl.cc:5572
 #, gcc-internal-format
 msgid "member %q+#D with destructor not allowed in anonymous aggregate"
 msgstr "有構構函式的成員 %q+#D 不允許在匿名聚合中出現"
 
-#: cp/decl.cc:5566
+#: cp/decl.cc:5575
 #, gcc-internal-format
 msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
 msgstr "有複製賦值運算子的成員 %q+#D 不能用在聯合中"
 
-#: cp/decl.cc:5585
+#: cp/decl.cc:5594
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in declaration of %q#T"
 msgstr "屬性忽略的在中宣告的 %q#T"
 
-#: cp/decl.cc:5588
+#: cp/decl.cc:5597
 #, fuzzy, gcc-internal-format
 msgid "attribute for %q#T must follow the %qs keyword"
 msgstr "屬性用於 %q#T 必須追隨 %qs 關鍵字"
 
-#: cp/decl.cc:5630
+#: cp/decl.cc:5639
 #, gcc-internal-format
 msgid "multiple types in one declaration"
 msgstr "一個宣告指定了多個類型"
 
-#: cp/decl.cc:5635
+#: cp/decl.cc:5644
 #, gcc-internal-format
 msgid "redeclaration of C++ built-in type %qT"
 msgstr "對 C++ 內建類型 %qT 的重宣告"
 
-#: cp/decl.cc:5652
+#: cp/decl.cc:5661
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> can only be specified for variables or function declarations"
 msgstr "%<auto%> 只能被指定的用於變數或函式宣告"
 
-#: cp/decl.cc:5685
+#: cp/decl.cc:5694
 #, gcc-internal-format
 msgid "missing type-name in typedef-declaration"
 msgstr "typedef 宣告中缺少類型名"
 
-#: cp/decl.cc:5693
+#: cp/decl.cc:5702
 #, gcc-internal-format
 msgid "ISO C++ prohibits anonymous structs"
 msgstr "ISO C++ 不允許匿名結構"
 
-#: cp/decl.cc:5700
+#: cp/decl.cc:5709
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<inline%> can only be specified for functions"
 msgstr "只能為函式指定 %qs"
 
-#: cp/decl.cc:5703
+#: cp/decl.cc:5712
 #, fuzzy, gcc-internal-format
 #| msgid "%qs can only be specified for functions"
 msgid "%<virtual%> can only be specified for functions"
 msgstr "只能為函式指定 %qs"
 
-#: cp/decl.cc:5708
+#: cp/decl.cc:5717
 #, gcc-internal-format
 msgid "%<friend%> can only be specified inside a class"
 msgstr "%<friend%> 只能在類別中指定"
 
-#: cp/decl.cc:5711
+#: cp/decl.cc:5720
 #, gcc-internal-format
 msgid "%<explicit%> can only be specified for constructors"
 msgstr "只能為建構式指定 %<explicit%>"
 
-#: cp/decl.cc:5714
+#: cp/decl.cc:5723
 #, gcc-internal-format
 msgid "a storage class can only be specified for objects and functions"
 msgstr "只能為物件和函式指定存儲類別"
 
-#: cp/decl.cc:5718
+#: cp/decl.cc:5727
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<const%> can only be specified for objects and functions"
 msgstr "只能為物件和函式指定類型限定"
 
-#: cp/decl.cc:5722
+#: cp/decl.cc:5731
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<volatile%> can only be specified for objects and functions"
 msgstr "只能為物件和函式指定類型限定"
 
-#: cp/decl.cc:5726
+#: cp/decl.cc:5735
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers can only be specified for objects and functions"
 msgid "%<__restrict%> can only be specified for objects and functions"
 msgstr "只能為物件和函式指定類型限定"
 
-#: cp/decl.cc:5730
+#: cp/decl.cc:5739
 #, fuzzy, gcc-internal-format
 #| msgid "a storage class can only be specified for objects and functions"
 msgid "%<__thread%> can only be specified for objects and functions"
 msgstr "只能為物件和函式指定存儲類別"
 
-#: cp/decl.cc:5734
+#: cp/decl.cc:5743
 #, fuzzy, gcc-internal-format
 msgid "%<typedef%> was ignored in this declaration"
 msgstr "%<typedef%> 被忽略在中這個宣告"
 
-#: cp/decl.cc:5737 cp/decl.cc:5740 cp/decl.cc:5743
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot be used for type declarations"
 msgstr "%<constexpr%> 無法用於類型宣告"
 
-#: cp/decl.cc:5765
+#: cp/decl.cc:5774
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored in explicit instantiation %q#T"
 msgstr "屬性忽略的於模板具現化"
 
-#: cp/decl.cc:5768
+#: cp/decl.cc:5777
 #, fuzzy, gcc-internal-format
 msgid "no attribute can be applied to an explicit instantiation"
 msgstr "只能為類別定義套用 %qE 屬性"
 
-#: cp/decl.cc:5847
+#: cp/decl.cc:5856
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes applied to class type %qT outside of definition"
 msgstr "忽略屬性套用到類別型態 %qT 外側的定義"
 
 #. A template type parameter or other dependent type.
-#: cp/decl.cc:5851
+#: cp/decl.cc:5860
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
 msgstr "忽略屬性套用到附屬型態 %qT 而無需關聯的宣告"
 
-#: cp/decl.cc:5917 cp/decl2.cc:1064
+#: cp/decl.cc:5926 cp/decl2.cc:1064
 #, fuzzy, gcc-internal-format
 msgid "typedef %qD is initialized (use %qs instead)"
 msgstr "typedef %qD 被初始化的 (使用 decltype 做為替代)"
 
-#: cp/decl.cc:5930
+#: cp/decl.cc:5939
 #, gcc-internal-format
 msgid "declaration of %q#D has %<extern%> and is initialized"
 msgstr "%q#D 宣告有 %<extern%> 並被初始化"
 
-#: cp/decl.cc:5968
+#: cp/decl.cc:5977
 #, fuzzy, gcc-internal-format
 msgid "definition of %q#D is marked %<dllimport%>"
 msgstr "定義的 %q#D 被標記 %<dllimport%>"
 
-#: cp/decl.cc:5992
+#: cp/decl.cc:6001
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D is not a non-static data member of %qT"
 msgid "%q+#D is not a static data member of %q#T"
 msgstr "%q#D 不是 %qT 的非靜態資料成員"
 
-#: cp/decl.cc:6000
+#: cp/decl.cc:6009
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "non-member-template declaration of %qD"
 msgstr "%q#D 宣告為範本"
 
-#: cp/decl.cc:6001
+#: cp/decl.cc:6010
 #, fuzzy, gcc-internal-format
 #| msgid "invalid member template declaration %qD"
 msgid "does not match member template declaration here"
 msgstr "無效的成員範本宣告 %qD"
 
-#: cp/decl.cc:6013
+#: cp/decl.cc:6022
 #, gcc-internal-format
 msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
 msgstr "ISO C++ 不允許將 %<%T::%D%> 定義為 %<%T::%D%>"
 
-#: cp/decl.cc:6025
+#: cp/decl.cc:6034
 #, gcc-internal-format
 msgid "duplicate initialization of %qD"
 msgstr "ISO C++ 不允許成員 %qD 的初始化"
 
-#: cp/decl.cc:6075 cp/decl.cc:6079
+#: cp/decl.cc:6084 cp/decl.cc:6088
 #, gcc-internal-format
 msgid "declaration of %q#D outside of class is not definition"
 msgstr "出現在類別外的 %q#D 的宣告不是定義"
 
-#: cp/decl.cc:6097
+#: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
 msgstr ""
 
-#: cp/decl.cc:6133
+#: cp/decl.cc:6142
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++11 %<constexpr%> 只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/decl.cc:6139
+#: cp/decl.cc:6148
 #, fuzzy, gcc-internal-format
 msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++11 %<constexpr%> 只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/decl.cc:6205
+#: cp/decl.cc:6214
 #, gcc-internal-format
 msgid "variable %q#D has initializer but incomplete type"
 msgstr "變數 %q#D 有初始值設定，但是類型不完全"
 
-#: cp/decl.cc:6214 cp/decl.cc:7548
+#: cp/decl.cc:6223 cp/decl.cc:7557
 #, gcc-internal-format
 msgid "elements of array %q#D have incomplete type"
 msgstr "陣列 %q#D 的元素類型不完全"
 
-#: cp/decl.cc:6225
+#: cp/decl.cc:6234
 #, gcc-internal-format
 msgid "aggregate %q#D has incomplete type and cannot be defined"
 msgstr "聚合 %q#D 類型不完全，無法被定義"
 
-#: cp/decl.cc:6295
+#: cp/decl.cc:6304
 #, gcc-internal-format
 msgid "%qD declared as reference but not initialized"
 msgstr "%qD 宣告為參照卻未被初始化"
 
-#: cp/decl.cc:6378
+#: cp/decl.cc:6387
 #, fuzzy, gcc-internal-format
 msgid "name used in a GNU-style designated initializer for an array"
 msgstr "名稱已用於 GNU-style 指定的初始設定式用於陣列"
 
-#: cp/decl.cc:6384
+#: cp/decl.cc:6393
 #, gcc-internal-format
 msgid "name %qD used in a GNU-style designated initializer for an array"
 msgstr "名稱 %qD 用在 GNU 風格的陣列指定元素初始值設定中"
 
-#: cp/decl.cc:6403
+#: cp/decl.cc:6412
 #, gcc-internal-format
 msgid "non-trivial designated initializers not supported"
 msgstr "不平凡的代理初始值設定不受支援"
 
-#: cp/decl.cc:6407
+#: cp/decl.cc:6416
 #, fuzzy, gcc-internal-format
 #| msgid "size of array %qD is not an integral constant-expression"
 msgid "C99 designator %qE is not an integral constant-expression"
 msgstr "陣列 %qD 的大小不是一個整數常運算式"
 
-#: cp/decl.cc:6468
+#: cp/decl.cc:6477
 #, gcc-internal-format
 msgid "initializer fails to determine size of %qD"
 msgstr "初始值設定無法決定 %qD 的大小"
 
-#: cp/decl.cc:6475
+#: cp/decl.cc:6484
 #, gcc-internal-format
 msgid "array size missing in %qD"
 msgstr "%qD 缺少陣列大小"
 
-#: cp/decl.cc:6487
+#: cp/decl.cc:6496
 #, gcc-internal-format
 msgid "zero-size array %qD"
 msgstr "大小為 0 的陣列 %qD"
 
-#: cp/decl.cc:6527
+#: cp/decl.cc:6536
 #, fuzzy, gcc-internal-format
 msgid "storage size of %qD isn%'t known"
 msgstr "貯藏大小的 %qD isn%'t 已知"
 
-#: cp/decl.cc:6552
+#: cp/decl.cc:6561
 #, fuzzy, gcc-internal-format
 msgid "storage size of %qD isn%'t constant"
 msgstr "貯藏大小的 %qD isn%'t 常數"
 
-#: cp/decl.cc:6636
+#: cp/decl.cc:6645
 #, fuzzy, gcc-internal-format
 msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "抱歉：語意的內聯函式靜態資料 %q+#D 是錯誤的 (you%'ll 旋緊向上與多重份數)"
 
-#: cp/decl.cc:6640
+#: cp/decl.cc:6649
 #, fuzzy, gcc-internal-format
 msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
 msgstr "抱歉：語意的內聯函式靜態資料 %q+#D 是錯誤的 (you%'ll 旋緊向上與多重份數)"
 
-#: cp/decl.cc:6646
+#: cp/decl.cc:6655
 #, fuzzy, gcc-internal-format
 msgid "you can work around this by removing the initializer"
 msgstr "  您可以解決方法這個由移除初始設定式"
 
-#: cp/decl.cc:6688 rust/backend/rust-tree.cc:3278
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
 #, fuzzy, gcc-internal-format
 #| msgid "uninitialized const %qD"
 msgid "uninitialized %<const %D%>"
 msgstr "未初始化的常數 %qD"
 
-#: cp/decl.cc:6695 rust/backend/rust-tree.cc:3285
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> function"
 msgstr "uninitialized 成員 %qD 在中 %<constexpr%> 建構子"
 
-#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3294
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
 #, fuzzy, gcc-internal-format
 msgid "uninitialized variable %qD in %<constexpr%> context"
 msgstr "uninitialized 成員 %qD 在中 %<constexpr%> 建構子"
 
-#: cp/decl.cc:6712
+#: cp/decl.cc:6721
 #, fuzzy, gcc-internal-format
 msgid "%q#T has no user-provided default constructor"
 msgstr "%q#T 沒有任何 user-provided 預設建構函式"
 
-#: cp/decl.cc:6716
+#: cp/decl.cc:6725
 #, fuzzy, gcc-internal-format
 msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
 msgstr "建構子未被 user-provided 因為它是明確的缺席在中類別本體"
 
-#: cp/decl.cc:6719
+#: cp/decl.cc:6728
 #, fuzzy, gcc-internal-format
 msgid "and the implicitly-defined constructor does not initialize %q#D"
 msgstr "和 implicitly-defined 建構子不初始化 %q+#D"
 
-#: cp/decl.cc:6912
+#: cp/decl.cc:6921
 #, gcc-internal-format
 msgid "invalid type %qT as initializer for a vector of type %qT"
 msgstr "無效類型 %qT 做為類型為 %qT 的向量的初始化設定"
 
-#: cp/decl.cc:6984
+#: cp/decl.cc:6993
 #, gcc-internal-format
 msgid "initializer for %qT must be brace-enclosed"
 msgstr "%qT 的初始化設定必須在大括號內"
 
-#: cp/decl.cc:7028
+#: cp/decl.cc:7037
 #, fuzzy, gcc-internal-format
 msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
 msgstr "%<[%E]=%>已用於 GNU-style 指定的初始設定式用於類別 %qT"
 
-#: cp/decl.cc:7044 cp/init.cc:3407 cp/search.cc:1230
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous"
 msgstr "對成員 %qD 的請求有歧義"
 
-#: cp/decl.cc:7049
+#: cp/decl.cc:7058
 #, gcc-internal-format
 msgid "%qT has no non-static data member named %qD"
 msgstr "%qT 沒具名為 %qD 的非靜態資料成員"
 
-#: cp/decl.cc:7074
+#: cp/decl.cc:7083
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "%qD is not a direct member of %qT"
 msgstr "%qD 不是 %qT 的成員"
 
-#: cp/decl.cc:7129
+#: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
 msgid "invalid initializer for %q#D"
 msgstr "無效的初始設定式用於陣列成員 %q#D"
 
-#: cp/decl.cc:7179
+#: cp/decl.cc:7188
 #, fuzzy, gcc-internal-format
 msgid "C99 designator %qE outside aggregate initializer"
 msgstr "C99 指示項 %qE 外側彙總初始設定式"
 
-#: cp/decl.cc:7218 cp/decl.cc:7506 cp/typeck2.cc:1593 cp/typeck2.cc:1923
-#: cp/typeck2.cc:1971 cp/typeck2.cc:2018
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
 #, gcc-internal-format
 msgid "too many initializers for %qT"
 msgstr "%qT 的初始值設定項太多"
 
-#: cp/decl.cc:7260
+#: cp/decl.cc:7269
 #, gcc-internal-format
 msgid "braces around scalar initializer for type %qT"
 msgstr "類型 %qT 的標量初始化帶大括號"
 
-#: cp/decl.cc:7270
+#: cp/decl.cc:7279
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer for type %qT"
 msgid "too many braces around scalar initializer for type %qT"
 msgstr "類型 %qT 的標量初始化帶大括號"
 
-#: cp/decl.cc:7403
+#: cp/decl.cc:7412
 #, gcc-internal-format
 msgid "missing braces around initializer for %qT"
 msgstr "%qT 的初始值設定周圍缺少大括號"
 
-#: cp/decl.cc:7536
+#: cp/decl.cc:7545
 #, fuzzy, gcc-internal-format
 msgid "structured binding has incomplete type %qT"
 msgstr "來源是指標到不完整型態"
 
-#: cp/decl.cc:7550
+#: cp/decl.cc:7559
 #, fuzzy, gcc-internal-format
 msgid "elements of array %q#T have incomplete type"
 msgstr "元件的陣列 %q#T 有不完整型態"
 
-#: cp/decl.cc:7563
+#: cp/decl.cc:7572
 #, fuzzy, gcc-internal-format
 msgid "variable-sized compound literal"
 msgstr "variable-sized 複合實字"
 
-#: cp/decl.cc:7619
+#: cp/decl.cc:7628
 #, fuzzy, gcc-internal-format
 msgid "%q#D has incomplete type"
 msgstr "%q#D 有不完整型態"
 
-#: cp/decl.cc:7640
+#: cp/decl.cc:7649
 #, fuzzy, gcc-internal-format
 msgid "scalar object %qD requires one element in initializer"
 msgstr "純量物件 %qD 需求一個元件在中初始設定式"
 
-#: cp/decl.cc:7685
+#: cp/decl.cc:7694
 #, fuzzy, gcc-internal-format
 msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
 msgstr "在中 C++98 %qD 必須被初始化的由建構子，無法由 %<{...}%>"
 
-#: cp/decl.cc:7828
+#: cp/decl.cc:7837
 #, gcc-internal-format
 msgid "array %qD initialized by parenthesized string literal %qE"
 msgstr "陣列 %qD 被有括號的字面字串 %qE 所初始化"
 
-#: cp/decl.cc:7867
+#: cp/decl.cc:7876
 #, gcc-internal-format
 msgid "initializer invalid for static member with constructor"
 msgstr "建構式中對靜態成員的初始化無效"
 
-#: cp/decl.cc:7869
+#: cp/decl.cc:7878
 #, fuzzy, gcc-internal-format
 msgid "non-constant in-class initialization invalid for static member %qD"
 msgstr "non-constant in-class 初始化無效的用於靜態成員 %qD"
 
-#: cp/decl.cc:7872
+#: cp/decl.cc:7881
 #, fuzzy, gcc-internal-format
 msgid "non-constant in-class initialization invalid for non-inline static member %qD"
 msgstr "non-constant in-class 初始化無效的用於靜態成員 %qD"
 
-#: cp/decl.cc:7877
+#: cp/decl.cc:7886
 #, gcc-internal-format
 msgid "(an out of class initialization is required)"
 msgstr "(需要一個類別外的初始化)"
 
-#: cp/decl.cc:8079
+#: cp/decl.cc:8088
 #, fuzzy, gcc-internal-format
 msgid "reference %qD is initialized with itself"
 msgstr "%qD 被初始化的以其本身"
 
-#: cp/decl.cc:8338
+#: cp/decl.cc:8347
 #, fuzzy, gcc-internal-format
 msgid "could not find variant declaration"
 msgstr "%<[*]%>無法在中宣告"
 
-#: cp/decl.cc:8362
+#: cp/decl.cc:8371
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on constructor %qD"
 msgstr "太少引數到建構子 %q#D"
 
-#: cp/decl.cc:8367
+#: cp/decl.cc:8376
 #, fuzzy, gcc-internal-format
 msgid "%<declare variant%> on destructor %qD"
 msgstr "需位址的解構式 %qE"
 
-#: cp/decl.cc:8372
+#: cp/decl.cc:8381
 #, gcc-internal-format
 msgid "%<declare variant%> on defaulted %qD"
 msgstr ""
 
-#: cp/decl.cc:8377
+#: cp/decl.cc:8386
 #, gcc-internal-format
 msgid "%<declare variant%> on deleted %qD"
 msgstr ""
 
-#: cp/decl.cc:8382
+#: cp/decl.cc:8391
 #, gcc-internal-format
 msgid "%<declare variant%> on virtual %qD"
 msgstr ""
 
-#: cp/decl.cc:8436
+#: cp/decl.cc:8445
 #, gcc-internal-format
 msgid "assignment (not initialization) in declaration"
 msgstr "賦值(不是初始化)出現在宣告中"
 
-#: cp/decl.cc:8457 cp/decl.cc:15234
+#: cp/decl.cc:8466 cp/decl.cc:15250
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ does not allow designated initializers"
 msgid "ISO C++17 does not allow %<register%> storage class specifier"
 msgstr "ISO C++ 不允許指定元素初始值設定"
 
-#: cp/decl.cc:8461 cp/decl.cc:15238
+#: cp/decl.cc:8470 cp/decl.cc:15254
 #, fuzzy, gcc-internal-format
 #| msgid "storage class specified for %qs"
 msgid "%<register%> storage class specifier used"
 msgstr "為 %qs 指定了存儲類別"
 
-#: cp/decl.cc:8506 cp/decl.cc:15201
+#: cp/decl.cc:8515 cp/decl.cc:15217
 #, fuzzy, gcc-internal-format
 msgid "declaration of %q#D has no initializer"
 msgstr "宣告的 %q#D 沒有任何初始設定式"
 
-#: cp/decl.cc:8542
+#: cp/decl.cc:8551
 #, fuzzy, gcc-internal-format
 msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
 msgstr "無效的使用的成員函式 (did 您忘記%<()%>?)"
 
-#: cp/decl.cc:8553
+#: cp/decl.cc:8562
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "deduced type %qT for %qD is incomplete"
 msgstr "回傳值類型 %q#T 為不完全"
 
-#: cp/decl.cc:8691
+#: cp/decl.cc:8700
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "variable concept has no initializer"
 msgstr "可變大小的物件不能被初始化"
 
-#: cp/decl.cc:8750
+#: cp/decl.cc:8759
 #, gcc-internal-format
 msgid "shadowing previous type declaration of %q#D"
 msgstr "隱藏了早先的類型宣告 %q#D"
 
-#: cp/decl.cc:8793
+#: cp/decl.cc:8802
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
 msgstr "%qE 屬性只有套用到變數和函式"
 
-#: cp/decl.cc:8988
+#: cp/decl.cc:8997
 #, gcc-internal-format
 msgid "function %q#D is initialized like a variable"
 msgstr "函式 %q#D 像變數一樣被初始化"
 
-#: cp/decl.cc:9099
+#: cp/decl.cc:9108
 #, fuzzy, gcc-internal-format
 #| msgid "  cannot use obsolete binding at %q+D because it has a destructor"
 msgid "cannot decompose class type %qT because it has an anonymous struct member"
 msgstr "  不能在 %q+D 使用過時的繫結，因為它有解構函式"
 
-#: cp/decl.cc:9102
+#: cp/decl.cc:9111
 #, gcc-internal-format
 msgid "cannot decompose class type %qT because it has an anonymous union member"
 msgstr ""
 
-#: cp/decl.cc:9109
+#: cp/decl.cc:9118
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is an inaccessible base of %qT"
 msgid "cannot decompose inaccessible member %qD of %qT"
 msgstr "%qT 是 %qT 不可存取的基礎類別"
 
-#: cp/decl.cc:9135
+#: cp/decl.cc:9144
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9144
+#: cp/decl.cc:9153
 #, gcc-internal-format
 msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
 msgstr ""
 
-#: cp/decl.cc:9381
+#: cp/decl.cc:9390
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete type %qT"
 msgstr "來源是指標到不完整型態"
 
-#: cp/decl.cc:9397
+#: cp/decl.cc:9406
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose variable length array %qT"
 msgstr "ISO C90 禁止變數長度陣列 %qE"
 
-#: cp/decl.cc:9406 cp/decl.cc:9485
+#: cp/decl.cc:9415 cp/decl.cc:9494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%u name provided for structured binding"
 msgid_plural "%u names provided for structured binding"
 msgstr[0] "%qs 指定的用於結構欄位"
 
-#: cp/decl.cc:9410
+#: cp/decl.cc:9419
 #, gcc-internal-format, gfc-internal-format
 msgid "only %u name provided for structured binding"
 msgid_plural "only %u names provided for structured binding"
 msgstr[0] ""
 
-#: cp/decl.cc:9413
+#: cp/decl.cc:9422
 #, gcc-internal-format
 msgid "while %qT decomposes into %wu element"
 msgid_plural "while %qT decomposes into %wu elements"
 msgstr[0] ""
 
-#: cp/decl.cc:9454
+#: cp/decl.cc:9463
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare pointer to %q#T"
 msgid "cannot decompose variable length vector %qT"
 msgstr "無法宣告參照 %q#T 的指標"
 
-#: cp/decl.cc:9478
+#: cp/decl.cc:9487
 #, fuzzy, gcc-internal-format
 #| msgid "size of array is not an integral constant-expression"
 msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
 msgstr "陣列大小不是一個整數常運算式"
 
-#: cp/decl.cc:9487
+#: cp/decl.cc:9496
 #, gcc-internal-format
 msgid "while %qT decomposes into %E elements"
 msgstr ""
 
-#: cp/decl.cc:9508
+#: cp/decl.cc:9517
 #, gcc-internal-format
 msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
 msgstr ""
 
-#: cp/decl.cc:9514
+#: cp/decl.cc:9523
 #, fuzzy, gcc-internal-format
 msgid "in initialization of structured binding variable %qD"
 msgstr "value-initialization 的函數型式 %qT"
 
-#: cp/decl.cc:9543
+#: cp/decl.cc:9552
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose union type %qT"
 msgstr "無法宣告指標到經資格修飾函數型式 %qT"
 
-#: cp/decl.cc:9548
+#: cp/decl.cc:9557
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member of non-class type %qT"
 msgid "cannot decompose non-array non-class type %qT"
 msgstr "產生非類別類型 %qT 的成員指標"
 
-#: cp/decl.cc:9553
+#: cp/decl.cc:9562
 #, fuzzy, gcc-internal-format
 #| msgid "cannot decompose address"
 msgid "cannot decompose lambda closure type %qT"
 msgstr "無法分解位址"
 
-#: cp/decl.cc:9559
+#: cp/decl.cc:9568
 #, fuzzy, gcc-internal-format
 msgid "structured binding refers to incomplete class type %qT"
 msgstr "來源是的不完整類別型態"
 
-#: cp/decl.cc:9568
+#: cp/decl.cc:9577
 #, fuzzy, gcc-internal-format
 msgid "cannot decompose class type %qT without non-static data members"
 msgstr "無法套用 %<offsetof%> 到靜態資料成員 %qD"
 
-#: cp/decl.cc:10046
+#: cp/decl.cc:10062
 #, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
 msgstr ""
 
-#: cp/decl.cc:10049
+#: cp/decl.cc:10065
 #, fuzzy, gcc-internal-format
 msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
 msgstr "  %q+T 有 non-trivial 解構式"
 
-#: cp/decl.cc:10054
+#: cp/decl.cc:10070
 #, gcc-internal-format
 msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
 msgstr ""
 
-#: cp/decl.cc:10273
+#: cp/decl.cc:10289
 #, fuzzy, gcc-internal-format
 msgid "initializer fails to determine size of %qT"
 msgstr "初始設定式失敗到決定大小的 %qT"
 
-#: cp/decl.cc:10277
+#: cp/decl.cc:10293
 #, fuzzy, gcc-internal-format
 msgid "array size missing in %qT"
 msgstr "陣列大小缺少的在中 %qT"
 
-#: cp/decl.cc:10280
+#: cp/decl.cc:10296
 #, fuzzy, gcc-internal-format
 msgid "zero-size array %qT"
 msgstr "zero-size 陣列 %qT"
 
-#: cp/decl.cc:10296
+#: cp/decl.cc:10312
 #, gcc-internal-format
 msgid "destructor for alien class %qT cannot be a member"
 msgstr "其它類別 %qT 的解構函式不能做為成員"
 
-#: cp/decl.cc:10298
+#: cp/decl.cc:10314
 #, gcc-internal-format
 msgid "constructor for alien class %qT cannot be a member"
 msgstr "其它類別 %qT 的建構式不能做為成員"
 
-#: cp/decl.cc:10324
+#: cp/decl.cc:10340
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> variable"
 msgstr "%qD 宣告的做為 %<virtual%> 變數"
 
-#: cp/decl.cc:10326
+#: cp/decl.cc:10342
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
 msgstr "%<const%> 和 %<volatile%>函式說明符於 %qD 無效的在中變數宣告"
 
-#: cp/decl.cc:10332
+#: cp/decl.cc:10348
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> parameter"
 msgstr "%qD 宣告的做為 %<virtual%> 參數"
 
-#: cp/decl.cc:10335
+#: cp/decl.cc:10351
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> parameter"
 msgstr "%qD 宣告的做為 %<inline%> 參數"
 
-#: cp/decl.cc:10337
+#: cp/decl.cc:10353
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
 msgstr "%<const%> 和 %<volatile%>函式說明符於 %qD 無效的在中參數宣告"
 
-#: cp/decl.cc:10343
+#: cp/decl.cc:10359
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> type"
 msgstr "%qD 宣告的做為 %<virtual%> 型態"
 
-#: cp/decl.cc:10346
+#: cp/decl.cc:10362
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> type"
 msgstr "%qD 宣告的做為 %<inline%> 型態"
 
-#: cp/decl.cc:10348
+#: cp/decl.cc:10364
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
 msgstr "%<const%> 和 %<volatile%>函式說明符於 %qD 無效的在中類型宣告"
 
-#: cp/decl.cc:10354
+#: cp/decl.cc:10370
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as a %<virtual%> field"
 msgstr "%qD 宣告的做為 %<virtual%> 欄位"
 
-#: cp/decl.cc:10357
+#: cp/decl.cc:10373
 #, fuzzy, gcc-internal-format
 msgid "%qD declared as an %<inline%> field"
 msgstr "%qD 宣告的做為 %<inline%> 欄位"
 
-#: cp/decl.cc:10359
+#: cp/decl.cc:10375
 #, fuzzy, gcc-internal-format
 msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
 msgstr "%<const%> 和 %<volatile%>函式說明符於 %qD 無效的在中欄位宣告"
 
-#: cp/decl.cc:10366
+#: cp/decl.cc:10382
 #, gcc-internal-format
 msgid "%q+D declared as a friend"
 msgstr "%q+D 宣告為夥伴"
 
-#: cp/decl.cc:10373
+#: cp/decl.cc:10389
 #, gcc-internal-format
 msgid "%q+D declared with an exception specification"
 msgstr "%q+D 宣告時有異常指定"
 
-#: cp/decl.cc:10405
+#: cp/decl.cc:10421
 #, gcc-internal-format
 msgid "definition of %qD is not in namespace enclosing %qT"
 msgstr "%qD 的定義不在包含 %qT 的命名空間中"
 
-#: cp/decl.cc:10445
+#: cp/decl.cc:10461
 #, gcc-internal-format
 msgid "static member function %q#D declared with type qualifiers"
 msgstr "靜態成員函式 %q#D 的宣告帶有類型限定符"
 
-#: cp/decl.cc:10456
+#: cp/decl.cc:10472
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with function parameters"
 msgstr "%qD 宣告的做為 non-parameter"
 
-#: cp/decl.cc:10463
+#: cp/decl.cc:10479
 #, fuzzy, gcc-internal-format
 msgid "concept %q#D declared with a deduced return type"
 msgstr "使舊的宣告 %q+#D 出現歧義"
 
-#: cp/decl.cc:10466
+#: cp/decl.cc:10482
 #, fuzzy, gcc-internal-format
 #| msgid "Java method %qD has non-Java return type %qT"
 msgid "concept %q#D with non-%<bool%> return type %qT"
 msgstr "Java 方法 %qD 回傳非 Java 類型 %qT"
 
-#: cp/decl.cc:10542
+#: cp/decl.cc:10558
 #, fuzzy, gcc-internal-format
 msgid "concept %qD has no definition"
 msgstr "預期 %<;%>之後聯合定義"
 
-#: cp/decl.cc:10571
+#: cp/decl.cc:10587
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "a function concept cannot be constrained"
 msgstr "虛函式不能是夥伴"
 
-#: cp/decl.cc:10586
+#: cp/decl.cc:10602
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a template function"
 msgid "constraints on a non-templated function"
 msgstr "%qD 不是一個範本函式"
 
-#: cp/decl.cc:10588
+#: cp/decl.cc:10604
 #, fuzzy, gcc-internal-format
 #| msgid "friend declaration not in class definition"
 msgid "constrained non-template friend declaration must be a definition"
 msgstr "夥伴宣告不在類別定義內"
 
-#: cp/decl.cc:10595
+#: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
 msgstr ""
 
-#: cp/decl.cc:10644
+#: cp/decl.cc:10660
 #, gcc-internal-format
 msgid "defining explicit specialization %qD in friend declaration"
 msgstr "在夥伴宣告中定義明確特例化 %qD"
 
-#: cp/decl.cc:10655
+#: cp/decl.cc:10671
 #, gcc-internal-format
 msgid "invalid use of template-id %qD in declaration of primary template"
 msgstr "在基本範本的宣告中對範本識別碼 %qD 的使用無效"
 
-#: cp/decl.cc:10673
+#: cp/decl.cc:10689
 #, gcc-internal-format
 msgid "default arguments are not allowed in declaration of friend template specialization %qD"
 msgstr "夥伴範本特例化 %qD 中不允許出現預設參數"
 
-#: cp/decl.cc:10682
+#: cp/decl.cc:10698
 #, gcc-internal-format
 msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
 msgstr "%<inline%> 不允許用於夥伴範本特例化 %qD 的宣告"
 
-#: cp/decl.cc:10699
+#: cp/decl.cc:10715
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q#D outside of class is not definition"
 msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
 msgstr "出現在類別外的 %q#D 的宣告不是定義"
 
-#: cp/decl.cc:10741
+#: cp/decl.cc:10757
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be a template"
 msgstr "不能將 %<::main%> 宣告為一個範本"
 
-#: cp/decl.cc:10744
+#: cp/decl.cc:10760
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be inline"
 msgstr "不能將 %<::main%> 宣告為 inline"
 
-#: cp/decl.cc:10747 cp/decl.cc:10750
+#: cp/decl.cc:10763 cp/decl.cc:10766
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be static"
 msgid "cannot declare %<::main%> to be %qs"
 msgstr "不能將 %<::main%> 宣告為 static"
 
-#: cp/decl.cc:10752
+#: cp/decl.cc:10768
 #, gcc-internal-format
 msgid "cannot declare %<::main%> to be static"
 msgstr "不能將 %<::main%> 宣告為 static"
 
-#: cp/decl.cc:10819
+#: cp/decl.cc:10835
 #, fuzzy, gcc-internal-format
 msgid "non-member function %qD cannot have cv-qualifier"
 msgstr "non-member 函式 %qD 無法有 cv-qualifier"
 
-#: cp/decl.cc:10821
+#: cp/decl.cc:10837
 #, fuzzy, gcc-internal-format
 msgid "static member function %qD cannot have cv-qualifier"
 msgstr "靜態成員函式 %qD 無法有 cv-qualifier"
 
-#: cp/decl.cc:10822
+#: cp/decl.cc:10838
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
 msgstr "靜態成員函式 %qD 無法有 cv-qualifier"
 
-#: cp/decl.cc:10827
+#: cp/decl.cc:10843
 #, fuzzy, gcc-internal-format
 msgid "non-member function %qD cannot have ref-qualifier"
 msgstr "non-member 函式 %qD 無法有 cv-qualifier"
 
-#: cp/decl.cc:10829
+#: cp/decl.cc:10845
 #, fuzzy, gcc-internal-format
 msgid "static member function %qD cannot have ref-qualifier"
 msgstr "靜態成員函式 %qD 無法有 cv-qualifier"
 
-#: cp/decl.cc:10830
+#: cp/decl.cc:10846
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
 msgstr "靜態成員函式 %qD 無法有 cv-qualifier"
 
-#: cp/decl.cc:10836 cp/decl.cc:13719 cp/decl.cc:13729 cp/parser.cc:11972
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "explicit object parameter declared here"
 msgstr "範本參數類型 %qT 宣告為 %<friend%>"
 
-#: cp/decl.cc:10848
+#: cp/decl.cc:10864
 #, fuzzy, gcc-internal-format
 msgid "deduction guide %qD must be declared in the same scope as %qT"
 msgstr "特殊化的 %qD 必須出現於命名空間範圍"
 
-#: cp/decl.cc:10856
+#: cp/decl.cc:10872
 #, fuzzy, gcc-internal-format
 msgid "deduction guide %qD must have the same access as %qT"
 msgstr "特殊化的 %qD 必須出現於命名空間範圍"
 
-#: cp/decl.cc:10862
+#: cp/decl.cc:10878
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "deduction guide %qD must not have a function body"
 msgstr "%qD 沒有宣告為一個函式"
 
-#: cp/decl.cc:10875
+#: cp/decl.cc:10891
 #, fuzzy, gcc-internal-format
 msgid "literal operator with C linkage"
 msgstr "實字運算子與 C 鏈結"
 
-#: cp/decl.cc:10885
+#: cp/decl.cc:10901
 #, fuzzy, gcc-internal-format
 msgid "%qD has invalid argument list"
 msgstr "%qD 有無效的引數清單"
 
-#: cp/decl.cc:10893
+#: cp/decl.cc:10909
 #, fuzzy, gcc-internal-format
 msgid "integer suffix %qs shadowed by implementation"
 msgstr "整數字尾 %<%s%>帶陰影由實作"
 
-#: cp/decl.cc:10899
+#: cp/decl.cc:10915
 #, fuzzy, gcc-internal-format
 msgid "floating-point suffix %qs shadowed by implementation"
 msgstr "浮點數字尾 %<%s%>帶陰影由實作"
 
-#: cp/decl.cc:10906
+#: cp/decl.cc:10922
 #, fuzzy, gcc-internal-format
 msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
 msgstr "實字運算子字尾無法前繼的由 %<_%>被保留的用於未來標準化"
 
-#: cp/decl.cc:10911
+#: cp/decl.cc:10927
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a non-member function"
 msgstr "%qD 必須是 non-member 函式"
 
-#: cp/decl.cc:10997
+#: cp/decl.cc:11013
 #, gcc-internal-format
 msgid "%<::main%> must return %<int%>"
 msgstr "%<::main%> 必須回傳 %<int%>"
 
-#: cp/decl.cc:11037
+#: cp/decl.cc:11053
 #, gcc-internal-format
 msgid "definition of implicitly-declared %qD"
 msgstr "隱含宣告的 %qD 的定義"
 
-#: cp/decl.cc:11042
+#: cp/decl.cc:11058
 #, fuzzy, gcc-internal-format
 msgid "definition of explicitly-defaulted %q+D"
 msgstr "定義的 explicitly-defaulted %q+D"
 
-#: cp/decl.cc:11044
+#: cp/decl.cc:11060
 #, fuzzy, gcc-internal-format
 msgid "%q#D explicitly defaulted here"
 msgstr "%q+#D 明確的缺席在此"
 
-#: cp/decl.cc:11061
+#: cp/decl.cc:11077
 #, gcc-internal-format
 msgid "no %q#D member function declared in class %qT"
 msgstr "成員函式 %q#D 未在類別 %qT 中宣告"
 
-#: cp/decl.cc:11255
+#: cp/decl.cc:11271
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare %<::main%> to be a template"
 msgid "cannot declare %<::main%> to be a global variable"
 msgstr "不能將 %<::main%> 宣告為一個範本"
 
-#: cp/decl.cc:11264
+#: cp/decl.cc:11280
 #, fuzzy, gcc-internal-format
 msgid "a non-template variable cannot be %<concept%>"
 msgstr "自動變數 %qE 無法 %<threadprivate%>"
 
-#: cp/decl.cc:11270
+#: cp/decl.cc:11286
 #, fuzzy, gcc-internal-format
 msgid "concept must be defined at namespace scope"
 msgstr "特殊化的 %qD 必須出現於命名空間範圍"
 
-#: cp/decl.cc:11277
+#: cp/decl.cc:11293
 #, gcc-internal-format
 msgid "concept must have type %<bool%>"
 msgstr ""
 
-#: cp/decl.cc:11280
+#: cp/decl.cc:11296
 #, fuzzy, gcc-internal-format
 #| msgid "variable-sized object may not be initialized"
 msgid "a variable concept cannot be constrained"
 msgstr "可變大小的物件不能被初始化"
 
-#: cp/decl.cc:11402
+#: cp/decl.cc:11418
 #, fuzzy, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of incomplete type"
 msgstr "in-class 初始化的靜態資料成員 %q#D 的不完整型態"
 
-#: cp/decl.cc:11406
+#: cp/decl.cc:11422
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
 msgstr "%<constexpr%> 所需自 in-class 初始化的靜態資料成員 %q#D 的 non-integral 型態"
 
-#: cp/decl.cc:11410
+#: cp/decl.cc:11426
 #, fuzzy, gcc-internal-format
 msgid "in-class initialization of static data member %q#D of non-literal type"
 msgstr "in-class 初始化的靜態資料成員 %q#D 的 non-literal 型態"
 
-#: cp/decl.cc:11421
+#: cp/decl.cc:11437
 #, gcc-internal-format
 msgid "invalid in-class initialization of static data member of non-integral type %qT"
 msgstr "類別中對具有非整數類型 %qT 的靜態資料成員的初始化無效"
 
-#: cp/decl.cc:11426
+#: cp/decl.cc:11442
 #, gcc-internal-format
 msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
 msgstr "ISO C++ 不允許在類別內初始化非常數靜態成員 %qD"
 
-#: cp/decl.cc:11431
+#: cp/decl.cc:11447
 #, gcc-internal-format
 msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
 msgstr "ISO C++ 不允許初始化成員常數 %qD，因為它有非整數的類型 %qT"
 
-#: cp/decl.cc:11542
+#: cp/decl.cc:11558
 #, gcc-internal-format
 msgid "size of array %qD has non-integral type %qT"
 msgstr "陣列 %qD 的大小具有非整數類型 %qT"
 
-#: cp/decl.cc:11545
+#: cp/decl.cc:11561
 #, gcc-internal-format
 msgid "size of array has non-integral type %qT"
 msgstr "陣列 %qT 的大小的類型不是整數"
 
-#: cp/decl.cc:11576 cp/decl.cc:11648
+#: cp/decl.cc:11592 cp/decl.cc:11664
 #, gcc-internal-format
 msgid "size of array %qD is not an integral constant-expression"
 msgstr "陣列 %qD 的大小不是一個整數常運算式"
 
-#: cp/decl.cc:11580 cp/decl.cc:11651
+#: cp/decl.cc:11596 cp/decl.cc:11667
 #, gcc-internal-format
 msgid "size of array is not an integral constant-expression"
 msgstr "陣列大小不是一個整數常運算式"
 
-#: cp/decl.cc:11631
+#: cp/decl.cc:11647
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array %qD"
 msgstr "ISO C 不允許大小為 0 的陣列 %qD"
 
-#: cp/decl.cc:11634
+#: cp/decl.cc:11650
 #, gcc-internal-format
 msgid "ISO C++ forbids zero-size array"
 msgstr "ISO C++ 不允許大小為 0 的陣列"
 
-#: cp/decl.cc:11658
+#: cp/decl.cc:11674
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids variable length array %qD"
 msgstr "ISO C++禁止變數長度陣列 %qD"
 
-#: cp/decl.cc:11661
+#: cp/decl.cc:11677
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids variable length array"
 msgstr "ISO C++禁止變數長度陣列"
 
-#: cp/decl.cc:11667
+#: cp/decl.cc:11683
 #, fuzzy, gcc-internal-format
 msgid "variable length array %qD is used"
 msgstr "變數長度陣列 %qD 被使用"
 
-#: cp/decl.cc:11670
+#: cp/decl.cc:11686
 #, fuzzy, gcc-internal-format
 msgid "variable length array is used"
 msgstr "變數長度陣列被使用"
 
-#: cp/decl.cc:11722
+#: cp/decl.cc:11738
 #, gcc-internal-format
 msgid "overflow in array dimension"
 msgstr "陣列維數溢出"
 
-#: cp/decl.cc:11782
+#: cp/decl.cc:11798
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a friend"
 msgid "%qD declared as array of template placeholder type %qT"
 msgstr "%q+D 宣告為夥伴"
 
-#: cp/decl.cc:11785
+#: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
 #| msgid "creating pointer to member reference type %qT"
 msgid "creating array of template placeholder type %qT"
 msgstr "產生參照類型 %qT 的成員指標"
 
-#: cp/decl.cc:11795
+#: cp/decl.cc:11811
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of void"
 msgstr "宣告的 %qD 做為陣列的虛值"
 
-#: cp/decl.cc:11797
+#: cp/decl.cc:11813
 #, fuzzy, gcc-internal-format
 msgid "creating array of void"
 msgstr "建立陣列的虛值"
 
-#: cp/decl.cc:11802
+#: cp/decl.cc:11818
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of functions"
 msgstr "宣告的 %qD 做為陣列的函式"
 
-#: cp/decl.cc:11804
+#: cp/decl.cc:11820
 #, fuzzy, gcc-internal-format
 msgid "creating array of functions"
 msgstr "建立陣列的函式"
 
-#: cp/decl.cc:11809
+#: cp/decl.cc:11825
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of references"
 msgstr "宣告的 %qD 做為陣列的參考"
 
-#: cp/decl.cc:11811
+#: cp/decl.cc:11827
 #, fuzzy, gcc-internal-format
 msgid "creating array of references"
 msgstr "建立陣列的參考"
 
-#: cp/decl.cc:11816
+#: cp/decl.cc:11832
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as array of function members"
 msgstr "宣告的 %qD 做為陣列的函式成員"
 
-#: cp/decl.cc:11819
+#: cp/decl.cc:11835
 #, fuzzy, gcc-internal-format
 msgid "creating array of function members"
 msgstr "建立陣列的函式成員"
 
-#: cp/decl.cc:11837
+#: cp/decl.cc:11853
 #, gcc-internal-format
 msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
 msgstr "多維陣列 %qD 的宣告必須至少指定除第一維以外所有維的大小"
 
-#: cp/decl.cc:11841
+#: cp/decl.cc:11857
 #, gcc-internal-format
 msgid "multidimensional array must have bounds for all dimensions except the first"
 msgstr "宣告多維陣列必須至少指定除第一維以外所有維的大小"
 
-#: cp/decl.cc:11855
+#: cp/decl.cc:11871
 #, fuzzy, gcc-internal-format
 msgid "variable-length array of %<auto%>"
 msgstr "變數長度陣列被使用"
 
-#: cp/decl.cc:11931
+#: cp/decl.cc:11947
 #, gcc-internal-format
 msgid "return type specification for constructor invalid"
 msgstr "為建構式指定回傳值無效"
 
-#: cp/decl.cc:11934
+#: cp/decl.cc:11950
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on constructor declaration"
 msgstr "%<operator %T%> 的宣告中不能使用限定符"
 
-#: cp/decl.cc:11945
+#: cp/decl.cc:11961
 #, gcc-internal-format
 msgid "return type specification for destructor invalid"
 msgstr "指定解構函式的回傳類型無效"
 
-#: cp/decl.cc:11948
+#: cp/decl.cc:11964
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on destructor declaration"
 msgstr "%<operator %T%> 的宣告中不能使用限定符"
 
-#: cp/decl.cc:11961
+#: cp/decl.cc:11977
 #, gcc-internal-format
 msgid "return type specified for %<operator %T%>"
 msgstr "為 %<operator %T%> 指定了回傳值"
 
-#: cp/decl.cc:11964
+#: cp/decl.cc:11980
 #, gcc-internal-format
 msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgstr "%<operator %T%> 的宣告中不能使用限定符"
 
-#: cp/decl.cc:11973
+#: cp/decl.cc:11989
 #, fuzzy, gcc-internal-format
 #| msgid "return type specification for destructor invalid"
 msgid "return type specified for deduction guide"
 msgstr "指定解構函式的回傳類型無效"
 
-#: cp/decl.cc:11976
+#: cp/decl.cc:11992
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "qualifiers are not allowed on declaration of deduction guide"
 msgstr "%<operator %T%> 的宣告中不能使用限定符"
 
-#: cp/decl.cc:11980
+#: cp/decl.cc:11996
 #, fuzzy, gcc-internal-format
 #| msgid "too many template parameter lists in declaration of %qD"
 msgid "template template parameter %qT in declaration of deduction guide"
 msgstr "%qD 宣告時範本參數表太多"
 
-#: cp/decl.cc:11989
+#: cp/decl.cc:12005
 #, fuzzy, gcc-internal-format
 msgid "%<decl-specifier%> in declaration of deduction guide"
 msgstr "衝突說明符在中宣告的 %qs"
 
-#: cp/decl.cc:12010
+#: cp/decl.cc:12026
 #, gcc-internal-format
 msgid "unnamed variable or field declared void"
 msgstr "無名變數或欄位宣告為 void"
 
-#: cp/decl.cc:12018
+#: cp/decl.cc:12034
 #, gcc-internal-format
 msgid "variable or field declared void"
 msgstr "變數或欄位宣告為 void"
 
-#: cp/decl.cc:12033
+#: cp/decl.cc:12049
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
 msgstr "在全域作用欄位外為函式 %qs 指定 %<inline%> 無效"
 
-#: cp/decl.cc:12038
+#: cp/decl.cc:12054
 #, fuzzy, gcc-internal-format
 msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "內聯命名空間只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/decl.cc:12094
+#: cp/decl.cc:12110
 #, gcc-internal-format
 msgid "%qT as type rather than plain %<decltype(auto)%>"
 msgstr ""
 
-#: cp/decl.cc:12100
+#: cp/decl.cc:12116
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "%<decltype(auto)%> cannot be cv-qualified"
 msgstr "解構函式不能被 cv 限定"
 
-#: cp/decl.cc:12316
+#: cp/decl.cc:12332
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<::%D%>"
 msgstr "無效的使用的限定名稱 %<::%D%>"
 
-#: cp/decl.cc:12319 cp/decl.cc:12341
+#: cp/decl.cc:12335 cp/decl.cc:12357
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%T::%D%>"
 msgstr "無效的使用的限定名稱 %<%T::%D%>"
 
-#: cp/decl.cc:12322
+#: cp/decl.cc:12338
 #, fuzzy, gcc-internal-format
 msgid "invalid use of qualified-name %<%D::%D%>"
 msgstr "無效的使用的限定名稱 %<%D::%D%>"
 
-#: cp/decl.cc:12332
+#: cp/decl.cc:12348
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a class or namespace"
 msgid "%q#T is not a class or namespace"
 msgstr "%qT 既不是類別也不是命名空間"
 
-#: cp/decl.cc:12356
+#: cp/decl.cc:12372
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-function"
 msgid "declaration of %qE as non-function"
 msgstr "%qD 沒有宣告為一個函式"
 
-#: cp/decl.cc:12363
+#: cp/decl.cc:12379
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as non-member"
 msgid "declaration of %qE as non-member"
 msgstr "%qD 未宣告為成員"
 
-#: cp/decl.cc:12391
+#: cp/decl.cc:12407
 #, gcc-internal-format
 msgid "declarator-id missing; using reserved word %qD"
 msgstr "缺少宣告識別碼：使用了保留字 %qD"
 
-#: cp/decl.cc:12442
+#: cp/decl.cc:12458
 #, fuzzy, gcc-internal-format
 msgid "function definition does not declare parameters"
 msgstr "函式定義不宣告參數"
 
-#: cp/decl.cc:12450 cp/decl.cc:12459 cp/decl.cc:14444
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
 #, gcc-internal-format
 msgid "declaration of %qD as non-function"
 msgstr "%qD 沒有宣告為一個函式"
 
-#: cp/decl.cc:12467
+#: cp/decl.cc:12483
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as %<typedef%>"
 msgstr "宣告的 %qD 做為 %<typedef%>"
 
-#: cp/decl.cc:12472
+#: cp/decl.cc:12488
 #, fuzzy, gcc-internal-format
 msgid "declaration of %qD as parameter"
 msgstr "宣告的 %qD 做為參數"
 
-#: cp/decl.cc:12507
+#: cp/decl.cc:12523
 #, fuzzy, gcc-internal-format
 #| msgid "no classes specified"
 msgid "both %qs and %qs specified"
 msgstr "未指定類別"
 
-#: cp/decl.cc:12514 cp/decl.cc:12521 cp/decl.cc:12528 cp/decl.cc:12535
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
 #, fuzzy, gcc-internal-format
 msgid "%qs cannot appear in a typedef declaration"
 msgstr "%<constexpr%> 無法出現在中 typedef 宣告"
 
-#: cp/decl.cc:12546
+#: cp/decl.cc:12562
 #, gcc-internal-format
 msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
 msgstr ""
 
-#: cp/decl.cc:12556
+#: cp/decl.cc:12572
 #, gcc-internal-format
 msgid "two or more data types in declaration of %qs"
 msgstr "%qs 的宣告指定了兩個以上的資料類型"
 
-#: cp/decl.cc:12610
+#: cp/decl.cc:12626
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C 不支援單獨用 %<complex%> 表示 %<double complex%>"
 
-#: cp/decl.cc:12659 cp/decl.cc:12663 cp/decl.cc:12666
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
 #, gcc-internal-format
 msgid "ISO C++ forbids declaration of %qs with no type"
 msgstr "ISO C++ 不允許宣告無類型的 %qs"
 
-#: cp/decl.cc:12683
+#: cp/decl.cc:12699
 #, fuzzy, gcc-internal-format
 msgid "%<__int%d%> is not supported by this target"
 msgstr "%<__int128%>未被支援由這個目標"
 
-#: cp/decl.cc:12691
+#: cp/decl.cc:12707
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ does not support %<__int%d%> for %qs"
 msgstr "ISO C++不支援 %<__int128%>用於 %qs"
 
-#: cp/decl.cc:12745
+#: cp/decl.cc:12761
 #, fuzzy, gcc-internal-format
 msgid "%<signed%> and %<unsigned%> specified together"
 msgstr "%<signed%> 和 %<unsigned%>指定的一起用於 %qs"
 
-#: cp/decl.cc:12751
+#: cp/decl.cc:12767
 #, fuzzy, gcc-internal-format
 msgid "%<long%> and %<short%> specified together"
 msgstr "%<long%> 和 %<short%>指定的一起用於 %qs"
 
-#: cp/decl.cc:12759
+#: cp/decl.cc:12775
 #, fuzzy, gcc-internal-format
 #| msgid "no class name specified with %qs"
 msgid "%qs specified with %qT"
 msgstr "%qs 沒有指定類別名"
 
-#: cp/decl.cc:12766
+#: cp/decl.cc:12782
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qs specified with typedef-name %qD"
 msgstr "%<__thread%> 與 %<typedef%> 一起使用"
 
-#: cp/decl.cc:12775
+#: cp/decl.cc:12791
 #, fuzzy, gcc-internal-format
 msgid "%qs specified with %<decltype%>"
 msgstr "預期 %<decltype%>"
 
-#: cp/decl.cc:12777
+#: cp/decl.cc:12793
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qs specified with %<typeof%>"
 msgstr "%<__thread%> 與 %<typedef%> 一起使用"
 
-#: cp/decl.cc:12846
+#: cp/decl.cc:12862
 #, gcc-internal-format
 msgid "complex invalid for %qs"
 msgstr "對 %qs 而言無效的複數"
 
-#: cp/decl.cc:12890
+#: cp/decl.cc:12906
 #, gcc-internal-format
 msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
 msgstr ""
 
-#: cp/decl.cc:12916
+#: cp/decl.cc:12932
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
 msgstr "成員 %qD 不能既被宣告為虛函式，又被宣告為靜態函式"
 
-#: cp/decl.cc:12925
+#: cp/decl.cc:12941
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD cannot be declared both virtual and static"
 msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "成員 %qD 不能既被宣告為虛函式，又被宣告為靜態函式"
 
-#: cp/decl.cc:12938
+#: cp/decl.cc:12954
 #, gcc-internal-format
 msgid "typedef declaration invalid in parameter declaration"
 msgstr "參數宣告中出現的 typedef 宣告無效"
 
-#: cp/decl.cc:12945
+#: cp/decl.cc:12961
 #, fuzzy, gcc-internal-format
 msgid "storage class specified for template parameter %qs"
 msgstr "貯藏類別指定的用於模板參數 %qs"
 
-#: cp/decl.cc:12955 cp/decl.cc:13132
+#: cp/decl.cc:12971 cp/decl.cc:13148
 #, gcc-internal-format
 msgid "storage class specified for parameter %qs"
 msgstr "為參數 %qs 指定了存儲類別"
 
-#: cp/decl.cc:12963 cp/decl.cc:12972 cp/decl.cc:12978 cp/decl.cc:12984
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
 #, fuzzy, gcc-internal-format
 msgid "a parameter cannot be declared %qs"
 msgstr "參數無法宣告 %<constexpr%>"
 
-#: cp/decl.cc:12994
+#: cp/decl.cc:13010
 #, fuzzy, gcc-internal-format
 msgid "%<virtual%> outside class declaration"
 msgstr "%<virtual%> 外側類別宣告"
 
-#: cp/decl.cc:13004 cp/decl.cc:13007 cp/decl.cc:13009 cp/decl.cc:13012
-#: cp/decl.cc:13022 cp/decl.cc:13032 cp/decl.cc:13042 cp/decl.cc:13046
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot be %qs"
 msgstr "屬性忽略的在中宣告的 %q#T"
 
-#: cp/decl.cc:13016 cp/decl.cc:13038
+#: cp/decl.cc:13032 cp/decl.cc:13054
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "無限制的聯合只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/decl.cc:13026
+#: cp/decl.cc:13042
 #, fuzzy, gcc-internal-format
 msgid "%<volatile%>-qualified structured binding is deprecated"
 msgstr "無效的輸入宣告"
 
-#: cp/decl.cc:13050
+#: cp/decl.cc:13066
 #, gcc-internal-format
 msgid "structured binding declaration cannot be C++98 %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13062
+#: cp/decl.cc:13078
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have type %qT"
 msgstr "屬性忽略的在中宣告的 %q#T"
 
-#: cp/decl.cc:13065
+#: cp/decl.cc:13081
 #, gcc-internal-format
 msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
 msgstr ""
 
-#: cp/decl.cc:13073
+#: cp/decl.cc:13089
 #, fuzzy, gcc-internal-format
 msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
 msgstr "屬性忽略的在中宣告的 %q#T"
 
-#: cp/decl.cc:13104
+#: cp/decl.cc:13120
 #, gcc-internal-format
 msgid "multiple storage classes in declaration of %qs"
 msgstr "%qs 的宣告指定了多個存儲類別"
 
-#: cp/decl.cc:13130
+#: cp/decl.cc:13146
 #, gcc-internal-format
 msgid "storage class specified for %qs"
 msgstr "為 %qs 指定了存儲類別"
 
-#: cp/decl.cc:13144
+#: cp/decl.cc:13160
 #, gcc-internal-format
 msgid "nested function %qs declared %<extern%>"
 msgstr "巢狀函式 %qs 被宣告為 %<extern%>"
 
-#: cp/decl.cc:13149
+#: cp/decl.cc:13165
 #, gcc-internal-format
 msgid "top-level declaration of %qs specifies %<auto%>"
 msgstr "在頂層將 %qs 宣告為 %<auto%>"
 
-#: cp/decl.cc:13157
+#: cp/decl.cc:13173
 #, gcc-internal-format
 msgid "function-scope %qs implicitly auto and declared %<__thread%>"
 msgstr "函式作用欄位的 %qs 隱含為 auto，卻被宣告為 %<__thread%>"
 
-#: cp/decl.cc:13171
+#: cp/decl.cc:13187
 #, gcc-internal-format
 msgid "storage class specifiers invalid in friend function declarations"
 msgstr "為夥伴函式宣告指定了無效的存儲類別"
 
-#: cp/decl.cc:13204 cp/decl.cc:14834 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
 #: cp/parser.cc:28063
 #, fuzzy, gcc-internal-format
 msgid "attribute ignored"
 msgstr "%qE 屬性被忽略"
 
-#: cp/decl.cc:13205
+#: cp/decl.cc:13221
 #, gcc-internal-format
 msgid "an attribute that appertains to a type-specifier is ignored"
 msgstr ""
 
-#: cp/decl.cc:13275
+#: cp/decl.cc:13291
 #, fuzzy, gcc-internal-format
 #| msgid "multiple storage classes in declaration of %qs"
 msgid "unnecessary parentheses in declaration of %qs"
 msgstr "%qs 的宣告指定了多個存儲類別"
 
-#: cp/decl.cc:13281
+#: cp/decl.cc:13297
 #, fuzzy, gcc-internal-format
 #| msgid "Expected left parenthesis"
 msgid "remove parentheses"
 msgstr "需要左圓括號"
 
-#: cp/decl.cc:13349
+#: cp/decl.cc:13365
 #, fuzzy, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "variadic 模板只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/decl.cc:13363
+#: cp/decl.cc:13379
 #, fuzzy, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
 msgstr "函式『%s』於 %L 無法有初始設定式"
 
-#: cp/decl.cc:13369
+#: cp/decl.cc:13385
 #, fuzzy, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
 msgstr "%qs 函式無法有引數"
 
-#: cp/decl.cc:13373
+#: cp/decl.cc:13389
 #, fuzzy, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
 msgstr "  成員函數型式 %qT 並非有效模板引數"
 
-#: cp/decl.cc:13381
+#: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
 msgstr ""
 
-#: cp/decl.cc:13385
+#: cp/decl.cc:13401
 #, fuzzy, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
 msgstr "類型可能無法被定義在中條件"
 
-#: cp/decl.cc:13406
+#: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
 msgstr ""
 
-#: cp/decl.cc:13411
+#: cp/decl.cc:13427
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "valid explicit object parameter declared here"
 msgstr "範本參數類型 %qT 宣告為 %<friend%>"
 
-#: cp/decl.cc:13415
+#: cp/decl.cc:13431
 #, gcc-internal-format
 msgid "requires-clause on return type"
 msgstr ""
 
-#: cp/decl.cc:13435
+#: cp/decl.cc:13451
 #, fuzzy, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
 msgstr "%qs 函式使用 %<auto%> 型態說明符而無需尾隨傳回類型"
 
-#: cp/decl.cc:13439
+#: cp/decl.cc:13455
 #, fuzzy, gcc-internal-format
 msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "尾隨傳回類型只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/decl.cc:13444
+#: cp/decl.cc:13460
 #, fuzzy, gcc-internal-format
 #| msgid "virtual functions cannot be friends"
 msgid "virtual function cannot have deduced return type"
 msgstr "虛函式不能是夥伴"
 
-#: cp/decl.cc:13451
+#: cp/decl.cc:13467
 #, fuzzy, gcc-internal-format
 msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
 msgstr "%qs 函式與尾隨傳回類型有 %qT 做為它的型態而非普通 %<auto%>"
 
-#: cp/decl.cc:13460
+#: cp/decl.cc:13476
 #, fuzzy, gcc-internal-format
 msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
 msgstr "%qs 函式與尾隨傳回類型有 %qT 做為它的型態而非普通 %<auto%>"
 
-#: cp/decl.cc:13465
+#: cp/decl.cc:13481
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %<decltype(auto)%>"
 msgstr "無效的使用的 %<auto%>"
 
-#: cp/decl.cc:13477
+#: cp/decl.cc:13493
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "deduced class type %qD in function return type"
 msgstr "忽略函式回傳類型的類型限定"
 
-#: cp/decl.cc:13486
+#: cp/decl.cc:13502
 #, gcc-internal-format
 msgid "deduction guide for %qT must have trailing return type"
 msgstr ""
 
-#: cp/decl.cc:13499
+#: cp/decl.cc:13515
 #, gcc-internal-format
 msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
 msgstr ""
 
-#: cp/decl.cc:13513
+#: cp/decl.cc:13529
 #, fuzzy, gcc-internal-format
 msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "尾隨傳回類型只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/decl.cc:13516
+#: cp/decl.cc:13532
 #, fuzzy, gcc-internal-format
 msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
 msgstr "%qs 函式與尾隨傳回類型無法宣告的與 %<auto%> 型態說明符"
 
-#: cp/decl.cc:13523
+#: cp/decl.cc:13539
 #, fuzzy, gcc-internal-format
 msgid "a conversion function cannot have a trailing return type"
 msgstr "%qs 函式無法有引數"
 
-#: cp/decl.cc:13549
+#: cp/decl.cc:13565
 #, gcc-internal-format
 msgid "%<volatile%>-qualified return type is deprecated"
 msgstr ""
 
-#: cp/decl.cc:13561
+#: cp/decl.cc:13577
 #, gcc-internal-format
 msgid "%qs declared as function returning a function"
 msgstr "%qs 宣告為回傳一個函式的函式"
 
-#: cp/decl.cc:13567
+#: cp/decl.cc:13583
 #, gcc-internal-format
 msgid "%qs declared as function returning an array"
 msgstr "%qs 宣告為回傳一個陣列的函式"
 
-#: cp/decl.cc:13574
+#: cp/decl.cc:13590
 #, fuzzy, gcc-internal-format
 #| msgid "%<noreturn%> function returns non-void value"
 msgid "%<constinit%> on function return type is not allowed"
 msgstr "%<noreturn%> 函式回傳了一個非 void 的回傳值"
 
-#: cp/decl.cc:13607
+#: cp/decl.cc:13623
 #, gcc-internal-format
 msgid "destructor cannot be static member function"
 msgstr "解構函式不能是靜態成員函式"
 
-#: cp/decl.cc:13609
+#: cp/decl.cc:13625
 #, gcc-internal-format
 msgid "constructor cannot be static member function"
 msgstr "建構式不能是靜態成員函式"
 
-#: cp/decl.cc:13614
+#: cp/decl.cc:13630
 #, gcc-internal-format
 msgid "destructors may not be cv-qualified"
 msgstr "解構函式不能被 cv 限定"
 
-#: cp/decl.cc:13615
+#: cp/decl.cc:13631
 #, gcc-internal-format
 msgid "constructors may not be cv-qualified"
 msgstr "建構式不能帶 cv 限定"
 
-#: cp/decl.cc:13623
+#: cp/decl.cc:13639
 #, fuzzy, gcc-internal-format
 #| msgid "destructors may not be cv-qualified"
 msgid "destructors may not be ref-qualified"
 msgstr "解構函式不能被 cv 限定"
 
-#: cp/decl.cc:13624
+#: cp/decl.cc:13640
 #, fuzzy, gcc-internal-format
 #| msgid "constructors may not be cv-qualified"
 msgid "constructors may not be ref-qualified"
 msgstr "建構式不能帶 cv 限定"
 
-#: cp/decl.cc:13642
+#: cp/decl.cc:13658
 #, fuzzy, gcc-internal-format
 #| msgid "constructors cannot be declared virtual"
 msgid "constructors cannot be declared %<virtual%>"
 msgstr "建構式不能被宣告為虛函式"
 
-#: cp/decl.cc:13659
+#: cp/decl.cc:13675
 #, gcc-internal-format
 msgid "virtual functions cannot be friends"
 msgstr "虛函式不能是夥伴"
 
-#: cp/decl.cc:13664
+#: cp/decl.cc:13680
 #, gcc-internal-format
 msgid "friend declaration not in class definition"
 msgstr "夥伴宣告不在類別定義內"
 
-#: cp/decl.cc:13668
+#: cp/decl.cc:13684
 #, fuzzy, gcc-internal-format
 msgid "cannot define friend function %qs in a local class definition"
 msgstr "can%'t 定義朋友函式 %qs 在中區域類別定義"
 
-#: cp/decl.cc:13678
+#: cp/decl.cc:13694
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<::%>"
 msgstr ""
 
-#: cp/decl.cc:13682
+#: cp/decl.cc:13698
 #, gcc-internal-format
 msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
 msgstr ""
 
-#: cp/decl.cc:13708
+#: cp/decl.cc:13724
 #, fuzzy, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
 msgstr "non-member 函式 %qD 無法有 cv-qualifier"
 
-#: cp/decl.cc:13716
+#: cp/decl.cc:13732
 #, fuzzy, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
 msgstr "模板可能無法是 %<virtual%>"
 
-#: cp/decl.cc:13726
+#: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
-#: cp/decl.cc:13735
+#: cp/decl.cc:13751
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD cannot be an explicit object member function"
 msgstr "%qD 必須是一個非靜態的成員函式"
 
-#: cp/decl.cc:13758
+#: cp/decl.cc:13774
 #, gcc-internal-format
 msgid "destructors may not have parameters"
 msgstr "解構函式不能有參數"
 
-#: cp/decl.cc:13816
+#: cp/decl.cc:13832
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T"
 msgstr "無法宣告參照 %q#T 的指標"
 
-#: cp/decl.cc:13829 cp/decl.cc:13836
+#: cp/decl.cc:13845 cp/decl.cc:13852
 #, gcc-internal-format
 msgid "cannot declare reference to %q#T"
 msgstr "無法宣告對 %q#T 的參照"
 
-#: cp/decl.cc:13838
+#: cp/decl.cc:13854
 #, gcc-internal-format
 msgid "cannot declare pointer to %q#T member"
 msgstr "無法宣告參照 %q#T 成員的指標"
 
-#: cp/decl.cc:13867
+#: cp/decl.cc:13883
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to qualified function type %qT"
 msgstr "無法宣告參考到經資格修飾函數型式 %qT"
 
-#: cp/decl.cc:13868
+#: cp/decl.cc:13884
 #, fuzzy, gcc-internal-format
 msgid "cannot declare pointer to qualified function type %qT"
 msgstr "無法宣告指標到經資格修飾函數型式 %qT"
 
-#: cp/decl.cc:13941
+#: cp/decl.cc:13957
 #, fuzzy, gcc-internal-format
 msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
 msgstr "無法宣告參考到 %q#T, 該項並非 typedef 或模板型態引數"
 
-#: cp/decl.cc:14021
+#: cp/decl.cc:14037
 #, gcc-internal-format
 msgid "template-id %qD used as a declarator"
 msgstr "範本識別碼 %qD 做為宣告"
 
-#: cp/decl.cc:14047
+#: cp/decl.cc:14063
 #, gcc-internal-format
 msgid "member functions are implicitly friends of their class"
 msgstr "成員函式隱含地成為所屬類別的夥伴"
 
-#: cp/decl.cc:14052
+#: cp/decl.cc:14068
 #, gcc-internal-format
 msgid "extra qualification %<%T::%> on member %qs"
 msgstr "有多餘的限定 %<%T::%> 於成員 %qs 上"
 
-#: cp/decl.cc:14082
+#: cp/decl.cc:14098
 #, fuzzy, gcc-internal-format
 #| msgid "cannot define member function %<%T::%s%> within %<%T%>"
 msgid "cannot define member function %<%T::%s%> within %qT"
 msgstr "無法定義成員函式 %<%T::%s%> 於 %<%T%> 之內"
 
-#: cp/decl.cc:14084
+#: cp/decl.cc:14100
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare member function %<%T::%s%> within %<%T%>"
 msgid "cannot declare member function %<%T::%s%> within %qT"
 msgstr "無法宣告成員函式 %<%T::%s%> 於 %<%T%> 之內"
 
-#: cp/decl.cc:14092
+#: cp/decl.cc:14108
 #, gcc-internal-format
 msgid "cannot declare member %<%T::%s%> within %qT"
 msgstr "無法宣告成員 %<%T::%s%> 於 %qT 之內"
 
-#: cp/decl.cc:14132
+#: cp/decl.cc:14148
 #, fuzzy, gcc-internal-format
 msgid "non-parameter %qs cannot be a parameter pack"
 msgstr "non-parameter %qs 無法參數包裝"
 
-#: cp/decl.cc:14141
+#: cp/decl.cc:14157
 #, gcc-internal-format
 msgid "data member may not have variably modified type %qT"
 msgstr "資料成員不能具有可變類型 %qT"
 
-#: cp/decl.cc:14144
+#: cp/decl.cc:14160
 #, gcc-internal-format
 msgid "parameter may not have variably modified type %qT"
 msgstr "參數不能具有可變類型 %qT"
 
-#: cp/decl.cc:14155
+#: cp/decl.cc:14171
 #, fuzzy, gcc-internal-format
 msgid "%<explicit%> outside class declaration"
 msgstr "%<virtual%> 外側類別宣告"
 
-#: cp/decl.cc:14158
+#: cp/decl.cc:14174
 #, fuzzy, gcc-internal-format
 #| msgid "%<inline%> in empty declaration"
 msgid "%<explicit%> in friend declaration"
 msgstr "%<inline%> 用於空宣告中"
 
-#: cp/decl.cc:14161
+#: cp/decl.cc:14177
 #, fuzzy, gcc-internal-format
 #| msgid "only declarations of constructors can be %<explicit%>"
 msgid "only declarations of constructors and conversion operators can be %<explicit%>"
 msgstr "只有建構式才能被宣告為 %<explicit%>"
 
-#: cp/decl.cc:14171
+#: cp/decl.cc:14187
 #, gcc-internal-format
 msgid "non-member %qs cannot be declared %<mutable%>"
 msgstr "非成員 %qs 不能被宣告為 %<mutable%>"
 
-#: cp/decl.cc:14178
+#: cp/decl.cc:14194
 #, gcc-internal-format
 msgid "non-object member %qs cannot be declared %<mutable%>"
 msgstr "非物件成員 %qs 不能被宣告為 %<mutable%>"
 
-#: cp/decl.cc:14184
+#: cp/decl.cc:14200
 #, gcc-internal-format
 msgid "function %qs cannot be declared %<mutable%>"
 msgstr "函式 %qs 不能被宣告為 %<mutable%>"
 
-#: cp/decl.cc:14190
+#: cp/decl.cc:14206
 #, fuzzy, gcc-internal-format
 #| msgid "static %qs cannot be declared %<mutable%>"
 msgid "%<static%> %qs cannot be declared %<mutable%>"
 msgstr "靜態 %qs 不能被宣告為 %<mutable%>"
 
-#: cp/decl.cc:14196
+#: cp/decl.cc:14212
 #, fuzzy, gcc-internal-format
 #| msgid "const %qs cannot be declared %<mutable%>"
 msgid "%<const%> %qs cannot be declared %<mutable%>"
 msgstr "常數 %qs 不能被宣告為 %<mutable%>"
 
-#: cp/decl.cc:14202
+#: cp/decl.cc:14218
 #, fuzzy, gcc-internal-format
 msgid "reference %qs cannot be declared %<mutable%>"
 msgstr "參考 %qs 無法宣告 %<mutable%>"
 
-#: cp/decl.cc:14218
+#: cp/decl.cc:14234
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a function definition"
 msgstr "類型可能無法被定義在中條件"
 
-#: cp/decl.cc:14221
+#: cp/decl.cc:14237
 #, fuzzy, gcc-internal-format
 msgid "typedef may not be a member function definition"
 msgstr "類型可能無法被定義在中條件"
 
-#: cp/decl.cc:14247
+#: cp/decl.cc:14263
 #, fuzzy, gcc-internal-format
 msgid "%<auto%> not allowed in alias declaration"
 msgstr "%<[*]%>無法在中宣告"
 
-#: cp/decl.cc:14250
+#: cp/decl.cc:14266
 #, fuzzy, gcc-internal-format
 msgid "typedef declared %<auto%>"
 msgstr "typedef 宣告 %<auto%>"
 
-#: cp/decl.cc:14255
+#: cp/decl.cc:14271
 #, gcc-internal-format
 msgid "requires-clause on typedef"
 msgstr ""
 
-#: cp/decl.cc:14259
+#: cp/decl.cc:14275
 #, fuzzy, gcc-internal-format
 msgid "typedef name may not be a nested-name-specifier"
 msgstr "typedef 名稱可能無法是 nested-name-specifier"
 
-#: cp/decl.cc:14285
+#: cp/decl.cc:14301
 #, gcc-internal-format
 msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
 msgstr "ISO C++ 不允許嵌類別的類型 %qD 與其所屬的類別同名"
 
-#: cp/decl.cc:14374
+#: cp/decl.cc:14390
 #, gcc-internal-format
 msgid "%<inline%> specified for friend class declaration"
 msgstr "夥伴函式宣告中出現了 %<inline%>"
 
-#: cp/decl.cc:14382
+#: cp/decl.cc:14398
 #, gcc-internal-format
 msgid "template parameters cannot be friends"
 msgstr "範本參數不能是夥伴"
 
-#: cp/decl.cc:14384
+#: cp/decl.cc:14400
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
 msgstr "夥伴宣告需要 class，即 %<friend class %T::%D%>"
 
-#: cp/decl.cc:14388
+#: cp/decl.cc:14404
 #, gcc-internal-format
 msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
 msgstr "夥伴宣告需要 class，即 %<friend %#T%>"
 
-#: cp/decl.cc:14401
+#: cp/decl.cc:14417
 #, gcc-internal-format
 msgid "trying to make class %qT a friend of global scope"
 msgstr "試圖讓 %qT 成為全域欄位的夥伴"
 
-#: cp/decl.cc:14421
+#: cp/decl.cc:14437
 #, gcc-internal-format
 msgid "invalid qualifiers on non-member function type"
 msgstr "非成員函式類型上的限定符無效"
 
-#: cp/decl.cc:14425
+#: cp/decl.cc:14441
 #, gcc-internal-format
 msgid "requires-clause on type-id"
 msgstr ""
 
-#: cp/decl.cc:14435
+#: cp/decl.cc:14451
 #, gcc-internal-format
 msgid "abstract declarator %qT used as declaration"
 msgstr "抽象宣告 %qT 做為宣告"
 
-#: cp/decl.cc:14450
+#: cp/decl.cc:14466
 #, fuzzy, gcc-internal-format
 msgid "requires-clause on declaration of non-function type %qT"
 msgstr "value-initialization 的函數型式 %qT"
 
-#: cp/decl.cc:14469
+#: cp/decl.cc:14485
 #, gcc-internal-format
 msgid "cannot use %<::%> in parameter declaration"
 msgstr "不能在參數宣告中使用 %<::%>"
 
-#: cp/decl.cc:14479 cp/parser.cc:20813
+#: cp/decl.cc:14495 cp/parser.cc:20813
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare parameter %q+D to be of abstract type %qT"
 msgid "cannot declare a parameter with %<decltype(auto)%>"
 msgstr "不能將參數 %q+D 宣告為具有抽象類型 %qT"
 
-#: cp/decl.cc:14486
+#: cp/decl.cc:14502
 #, gcc-internal-format
 msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
 msgstr ""
 
-#: cp/decl.cc:14489
+#: cp/decl.cc:14505
 #, gcc-internal-format
 msgid "or use %<auto%> for an abbreviated function template"
 msgstr ""
 
-#: cp/decl.cc:14495 cp/parser.cc:25355
+#: cp/decl.cc:14511 cp/parser.cc:25355
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<auto%> parameter not permitted in this context"
 msgstr "%<this%> 不能用在此上下文中"
 
-#: cp/decl.cc:14505
+#: cp/decl.cc:14521
 #, fuzzy, gcc-internal-format
 msgid "parameter declared %<auto%>"
 msgstr "參數宣告 %<auto%>"
 
-#: cp/decl.cc:14559 cp/parser.cc:3687
+#: cp/decl.cc:14575 cp/parser.cc:3687
 #, gcc-internal-format
 msgid "invalid use of template-name %qE without an argument list"
 msgstr "使用範本名 %qE 時不帶引數表無效"
 
-#: cp/decl.cc:14563
+#: cp/decl.cc:14579
 #, fuzzy, gcc-internal-format
 msgid "non-static data member declared with placeholder %qT"
 msgstr "非靜態資料成員宣告 %<auto%>"
 
-#: cp/decl.cc:14584
+#: cp/decl.cc:14600
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids zero-size array %qD"
 msgid "ISO C++ forbids flexible array member %qs"
 msgstr "ISO C 不允許大小為 0 的陣列 %qD"
 
-#: cp/decl.cc:14587
+#: cp/decl.cc:14603
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C90 does not support flexible array members"
 msgid "ISO C++ forbids flexible array members"
 msgstr "ISO C90 不允許彈性陣列成員"
 
 #. Something like struct S { int N::j; };
-#: cp/decl.cc:14603
+#: cp/decl.cc:14619
 #, gcc-internal-format
 msgid "invalid use of %<::%>"
 msgstr "錯誤地使用了 %<::%>"
 
-#: cp/decl.cc:14624
+#: cp/decl.cc:14640
 #, fuzzy, gcc-internal-format
 msgid "declaration of function %qD in invalid context"
 msgstr "宣告的函式 %qD 在中無效的語境"
 
-#: cp/decl.cc:14634
+#: cp/decl.cc:14650
 #, fuzzy, gcc-internal-format
 #| msgid "function %qD declared virtual inside a union"
 msgid "function %qD declared %<virtual%> inside a union"
 msgstr "聯合成員函式 %qD 被宣告為虛函式"
 
-#: cp/decl.cc:14644
+#: cp/decl.cc:14660
 #, fuzzy, gcc-internal-format
 #| msgid "%qD cannot be declared virtual, since it is always static"
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
 msgstr "%qD 不能宣告為虛函式，因為它總是靜態的"
 
-#: cp/decl.cc:14658
+#: cp/decl.cc:14674
 #, gcc-internal-format
 msgid "expected qualified name in friend declaration for destructor %qD"
 msgstr "在解構函式 %qD 中的夥伴宣告需要限定名"
 
-#: cp/decl.cc:14665
+#: cp/decl.cc:14681
 #, gcc-internal-format
 msgid "declaration of %qD as member of %qT"
 msgstr "%qD 宣告為 %qT 的一個成員"
 
-#: cp/decl.cc:14672 cp/decl.cc:14685
+#: cp/decl.cc:14688 cp/decl.cc:14701
 #, fuzzy, gcc-internal-format
 msgid "a destructor cannot be %qs"
 msgstr "解構式無法 %<constexpr%>"
 
-#: cp/decl.cc:14691
+#: cp/decl.cc:14707
 #, fuzzy, gcc-internal-format
 msgid "expected qualified name in friend declaration for constructor %qD"
 msgstr "預期的限定名稱在中朋友宣告用於建構子 %qD"
 
-#: cp/decl.cc:14700
+#: cp/decl.cc:14716
 #, fuzzy, gcc-internal-format
 msgid "a constructor cannot be %<concept%>"
 msgstr "解構式無法 %<constexpr%>"
 
-#: cp/decl.cc:14706
+#: cp/decl.cc:14722
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "a concept cannot be a member function"
 msgstr "建構式不能是靜態成員函式"
 
-#: cp/decl.cc:14714 cp/decl.cc:15069
+#: cp/decl.cc:14730 cp/decl.cc:15085
 #, fuzzy, gcc-internal-format
 #| msgid "cannot open %s"
 msgid "%qD cannot be %qs"
 msgstr "無法開啟 %s"
 
-#: cp/decl.cc:14723
+#: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable template %qD declared as function"
 msgstr "局部特化的別名模板 %qD"
 
-#: cp/decl.cc:14726
+#: cp/decl.cc:14742
 #, fuzzy, gcc-internal-format
 msgid "variable template declared here"
 msgstr "原來的型態宣告的在此"
 
-#: cp/decl.cc:14789
+#: cp/decl.cc:14805
 #, fuzzy, gcc-internal-format
 #| msgid "field %qD has incomplete type"
 msgid "field %qD has incomplete type %qT"
 msgstr "欄位 %qD 類型不完全"
 
-#: cp/decl.cc:14794
+#: cp/decl.cc:14810
 #, gcc-internal-format
 msgid "name %qT has incomplete type"
 msgstr "名稱 %qT 類型不完全"
 
-#: cp/decl.cc:14814
+#: cp/decl.cc:14830
 #, gcc-internal-format
 msgid "%qE is neither function nor member function; cannot be declared friend"
 msgstr "%qE 既不是函式也不是成員函式；不能宣告為夥伴"
 
-#: cp/decl.cc:14817
+#: cp/decl.cc:14833
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is neither function nor member function; cannot be declared friend"
 msgid "unnamed field is neither function nor member function; cannot be declared friend"
 msgstr "%qE 既不是函式也不是成員函式；不能宣告為夥伴"
 
-#: cp/decl.cc:14835 cp/parser.cc:21380 cp/parser.cc:28064
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
 #, gcc-internal-format
 msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
 msgstr ""
 
-#: cp/decl.cc:14885 cp/decl.cc:14896
+#: cp/decl.cc:14901 cp/decl.cc:14912
 #, fuzzy, gcc-internal-format
 msgid "static data member %qE declared %qs"
 msgstr "非靜態資料成員 %qE 宣告 %<constexpr%>"
 
-#: cp/decl.cc:14890
+#: cp/decl.cc:14906
 #, fuzzy, gcc-internal-format
 msgid "%<constexpr%> static data member %qD must have an initializer"
 msgstr "constexpr 靜態資料成員 %qD 必須有初始設定式"
 
-#: cp/decl.cc:14933 cp/decl.cc:14941 cp/decl.cc:14948 cp/decl.cc:14955
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
 #, fuzzy, gcc-internal-format
 msgid "non-static data member %qE declared %qs"
 msgstr "非靜態資料成員 %qE 宣告 %<constexpr%>"
 
-#: cp/decl.cc:15007
+#: cp/decl.cc:15023
 #, gcc-internal-format
 msgid "storage class %<auto%> invalid for function %qs"
 msgstr "函式 %qs 的存儲類別 %<auto%> 無效"
 
-#: cp/decl.cc:15010
+#: cp/decl.cc:15026
 #, gcc-internal-format
 msgid "storage class %<register%> invalid for function %qs"
 msgstr "函式 %qs 的存儲類別 %<register%> 無效"
 
-#: cp/decl.cc:15016
+#: cp/decl.cc:15032
 #, gcc-internal-format
 msgid "storage class %<__thread%> invalid for function %qs"
 msgstr "函式 %qs 的存儲類別 %<__thread%> 無效"
 
-#: cp/decl.cc:15020
+#: cp/decl.cc:15036
 #, fuzzy, gcc-internal-format
 msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "函式 %qs 的存儲類別 %<__thread%> 無效"
 
-#: cp/decl.cc:15025
+#: cp/decl.cc:15041
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
 msgstr "對齊指定的用於函式 %qE"
 
-#: cp/decl.cc:15028
+#: cp/decl.cc:15044
 #, fuzzy, gcc-internal-format
 msgid "virt-specifiers in %qs not allowed outside a class definition"
 msgstr "virt-specifiers 在中 %qs 不允許外側類別定義"
 
-#: cp/decl.cc:15040
+#: cp/decl.cc:15056
 #, fuzzy, gcc-internal-format
 #| msgid "%<static%> specified invalid for function %qs declared out of global scope"
 msgid "%<static%> specifier invalid for function %qs declared out of global scope"
 msgstr "在全域作用欄位外為函式 %qs 指定 %<static%> 無效"
 
-#: cp/decl.cc:15044
+#: cp/decl.cc:15060
 #, gcc-internal-format
 msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
 msgstr "在全域作用欄位外為函式 %qs 指定 %<inline%> 無效"
 
-#: cp/decl.cc:15052
+#: cp/decl.cc:15068
 #, gcc-internal-format
 msgid "virtual non-class function %qs"
 msgstr "虛函式 %qs 不是類別成員"
 
-#: cp/decl.cc:15059
+#: cp/decl.cc:15075
 #, fuzzy, gcc-internal-format
 msgid "%qs defined in a non-class scope"
 msgstr "%qs 定義的在中 non-class 範圍"
 
-#: cp/decl.cc:15060
+#: cp/decl.cc:15076
 #, fuzzy, gcc-internal-format
 msgid "%qs declared in a non-class scope"
 msgstr "%qs 宣告的在中 non-class 範圍"
 
-#: cp/decl.cc:15103
+#: cp/decl.cc:15119
 #, gcc-internal-format
 msgid "cannot declare member function %qD to have static linkage"
 msgstr "不能將成員函式 %qD 宣告為有靜態連結"
 
-#: cp/decl.cc:15112
+#: cp/decl.cc:15128
 #, gcc-internal-format
 msgid "cannot declare static function inside another function"
 msgstr "不能在另一個函式中宣告一個靜態函式"
 
-#: cp/decl.cc:15153
+#: cp/decl.cc:15169
 #, gcc-internal-format
 msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
 msgstr "與宣告不同，定義靜態資料成員時不能使用 %<static%>"
 
-#: cp/decl.cc:15160
+#: cp/decl.cc:15176
 #, gcc-internal-format
 msgid "static member %qD declared %<register%>"
 msgstr "靜態成員 %qD 宣告為 %<register%>"
 
-#: cp/decl.cc:15166
+#: cp/decl.cc:15182
 #, gcc-internal-format
 msgid "cannot explicitly declare member %q#D to have extern linkage"
 msgstr "不能明確地將成員 %q#D 宣告為有外部連結"
 
-#: cp/decl.cc:15174
+#: cp/decl.cc:15190
 #, fuzzy, gcc-internal-format
 msgid "declaration of %<constexpr%> variable %qD is not a definition"
 msgstr "宣告的 constexpr 變數 %qD 並非定義"
 
-#: cp/decl.cc:15181
+#: cp/decl.cc:15197
 #, fuzzy, gcc-internal-format
 msgid "a variable cannot be declared %<consteval%>"
 msgstr "參數無法宣告 %<constexpr%>"
 
-#: cp/decl.cc:15213
+#: cp/decl.cc:15229
 #, gcc-internal-format
 msgid "%qs initialized and declared %<extern%>"
 msgstr "%qs 已初始化，卻又被宣告為 %<extern%>"
 
-#: cp/decl.cc:15218
+#: cp/decl.cc:15234
 #, gcc-internal-format
 msgid "%qs has both %<extern%> and initializer"
 msgstr "%qs 既有 %<extern%> 又有初始值設定"
 
-#: cp/decl.cc:15420
+#: cp/decl.cc:15436
 #, fuzzy, gcc-internal-format
 msgid "default argument %qE uses %qD"
 msgstr "預設引數 %qE 使用 %qD"
 
-#: cp/decl.cc:15423
+#: cp/decl.cc:15439
 #, gcc-internal-format
 msgid "default argument %qE uses local variable %qD"
 msgstr "預設引數 %qE 使用了局部變數 %qD"
 
-#: cp/decl.cc:15550
+#: cp/decl.cc:15566
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<virtual%> in template declaration of %q#D"
 msgid "invalid use of cv-qualified type %qT in parameter declaration"
 msgstr "在 %q#D 的範本宣告中使用 %<virtual%> 無效"
 
-#: cp/decl.cc:15554
+#: cp/decl.cc:15570
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<virtual%> in template declaration of %q#D"
 msgid "invalid use of type %<void%> in parameter declaration"
 msgstr "在 %q#D 的範本宣告中使用 %<virtual%> 無效"
 
-#: cp/decl.cc:15583
+#: cp/decl.cc:15599
 #, fuzzy, gcc-internal-format
 #| msgid "invalid parameter type %qT"
 msgid "%<volatile%>-qualified parameter is deprecated"
 msgstr "無效的參數類型 %qT"
 
-#: cp/decl.cc:15591
+#: cp/decl.cc:15607
 #, gcc-internal-format
 msgid "parameter %qD invalidly declared method type"
 msgstr "參數 %qD 被無效地被宣告為具有方法類型"
 
-#: cp/decl.cc:15616
+#: cp/decl.cc:15632
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD includes pointer to array of unknown bound %qT"
 msgstr "參數 %qD 包含指標到陣列的不明約束 %qT"
 
-#: cp/decl.cc:15618
+#: cp/decl.cc:15634
 #, fuzzy, gcc-internal-format
 msgid "parameter %qD includes reference to array of unknown bound %qT"
 msgstr "參數 %qD 包含參考到陣列的不明約束 %qT"
 
-#: cp/decl.cc:15901
+#: cp/decl.cc:15917
 #, gcc-internal-format
 msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
 msgstr "無效的建構式：您要的可能是 %<%T (const %T&)%>"
 
-#: cp/decl.cc:15980
+#: cp/decl.cc:15996
 #, gcc-internal-format
 msgid "%qD may not be declared within a namespace"
 msgstr "%qD 不能在命名空間宣告"
 
-#: cp/decl.cc:15987
+#: cp/decl.cc:16003
 #, gcc-internal-format
 msgid "%qD may not be declared as static"
 msgstr "%qD 不能被宣告為靜態的"
 
-#: cp/decl.cc:16015
+#: cp/decl.cc:16031
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must be a nonstatic member function"
 msgid "%qD must be a non-static member function"
 msgstr "%qD 必須是一個非靜態的成員函式"
 
-#: cp/decl.cc:16023
+#: cp/decl.cc:16039
 #, fuzzy, gcc-internal-format
 msgid "%qD must be a member function"
 msgstr "%qD 必須是 non-member 函式"
 
-#: cp/decl.cc:16031
+#: cp/decl.cc:16047
 #, fuzzy, gcc-internal-format
 msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
 msgstr "variadic 模板只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/decl.cc:16041
+#: cp/decl.cc:16057
 #, gcc-internal-format
 msgid "%qD must be either a non-static member function or a non-member function"
 msgstr "%qD 必須是一個非靜態成員函式或非成員函式"
 
-#: cp/decl.cc:16051
+#: cp/decl.cc:16067
 #, gcc-internal-format
 msgid "%qD must have an argument of class or enumerated type"
 msgstr "%qD 的引數必須有類別或列舉類型"
 
 #. 13.4.0.3
-#: cp/decl.cc:16082
+#: cp/decl.cc:16098
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ prohibits overloading operator ?:"
 msgid "ISO C++ prohibits overloading %<operator ?:%>"
 msgstr "ISO C++ 不允許多載 ?: 運算子"
 
-#: cp/decl.cc:16092
+#: cp/decl.cc:16108
 #, fuzzy, gcc-internal-format
 msgid "%qD must not have variable number of arguments"
 msgstr "%qD 必須不有可變個數引數數量"
 
-#: cp/decl.cc:16118
+#: cp/decl.cc:16134
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either zero or one argument"
 msgid "%qD must have either zero or one argument"
 msgstr "%qD 必須帶 0 或 1 個引數"
 
-#: cp/decl.cc:16119
+#: cp/decl.cc:16135
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take either one or two arguments"
 msgid "%qD must have either one or two arguments"
 msgstr "%qD 必須帶 1 或 2 個引數"
 
-#: cp/decl.cc:16131
+#: cp/decl.cc:16147
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its argument"
 msgid "postfix %qD must have %<int%> as its argument"
 msgstr "字尾 %qD 必須使用 %<int%> 做為它的參數"
 
-#: cp/decl.cc:16132
+#: cp/decl.cc:16148
 #, fuzzy, gcc-internal-format
 #| msgid "postfix %qD must take %<int%> as its second argument"
 msgid "postfix %qD must have %<int%> as its second argument"
 msgstr "字尾 %qD 必須使用 %<int%> 做為它的第二個參數"
 
-#: cp/decl.cc:16143
+#: cp/decl.cc:16159
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have no arguments"
 msgstr "%qD 帶且僅帶 2 個引數"
 
-#: cp/decl.cc:16144 cp/decl.cc:16154
+#: cp/decl.cc:16160 cp/decl.cc:16170
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly one argument"
 msgid "%qD must have exactly one argument"
 msgstr "%qD 帶且僅帶 1 個引數"
 
-#: cp/decl.cc:16155
+#: cp/decl.cc:16171
 #, fuzzy, gcc-internal-format
 #| msgid "%qD must take exactly two arguments"
 msgid "%qD must have exactly two arguments"
 msgstr "%qD 帶且僅帶 2 個引數"
 
-#: cp/decl.cc:16170
+#: cp/decl.cc:16186
 #, gcc-internal-format
 msgid "%qD cannot have default arguments"
 msgstr "%qD 不能有預設參數"
 
-#: cp/decl.cc:16194
+#: cp/decl.cc:16210
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to %<void%> will never use a type conversion operator"
 msgstr "轉換到虛值將永不使用類型轉換運算子"
 
-#: cp/decl.cc:16201
+#: cp/decl.cc:16217
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to a reference to the same type will never use a type conversion operator"
 msgstr "轉換到參考到相同型態將永不使用類型轉換運算子"
 
-#: cp/decl.cc:16203
+#: cp/decl.cc:16219
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to the same type will never use a type conversion operator"
 msgstr "轉換到相同型態將永不使用類型轉換運算子"
 
-#: cp/decl.cc:16212
+#: cp/decl.cc:16228
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
 msgstr "轉換到參考到基礎類別將永不使用類型轉換運算子"
 
-#: cp/decl.cc:16214
+#: cp/decl.cc:16230
 #, fuzzy, gcc-internal-format
 msgid "converting %qT to a base class %qT will never use a type conversion operator"
 msgstr "轉換到基礎類別將永不使用類型轉換運算子"
 
-#: cp/decl.cc:16230
+#: cp/decl.cc:16246
 #, gcc-internal-format
 msgid "user-defined %qD always evaluates both arguments"
 msgstr "使用者定義的 %qD 總是計算所有兩個參數"
 
-#: cp/decl.cc:16249
+#: cp/decl.cc:16265
 #, gcc-internal-format
 msgid "prefix %qD should return %qT"
 msgstr "字首 %qD 應當回傳 %qT"
 
-#: cp/decl.cc:16256
+#: cp/decl.cc:16272
 #, gcc-internal-format
 msgid "postfix %qD should return %qT"
 msgstr "字尾 %qD 應當回傳 %qT"
 
-#: cp/decl.cc:16268
+#: cp/decl.cc:16284
 #, gcc-internal-format
 msgid "%qD should return by value"
 msgstr "%qD 應當回傳值而非參照"
 
-#: cp/decl.cc:16323
+#: cp/decl.cc:16339
 #, gcc-internal-format
 msgid "using template type parameter %qT after %qs"
 msgstr "使用範本類型參數 %qT，在 %qs 後"
 
-#: cp/decl.cc:16346
+#: cp/decl.cc:16362
 #, fuzzy, gcc-internal-format
 msgid "using alias template specialization %qT after %qs"
 msgstr "使用別名模板特殊化 %qT 之後 %qs"
 
-#: cp/decl.cc:16349
+#: cp/decl.cc:16365
 #, gcc-internal-format
 msgid "using typedef-name %qD after %qs"
 msgstr "使用 typedef 名 %qD，在 %qs 後"
 
-#: cp/decl.cc:16351
+#: cp/decl.cc:16367
 #, fuzzy, gcc-internal-format
 msgid "%qD has a previous declaration here"
 msgstr "%qD 有前一個宣告在此"
 
-#: cp/decl.cc:16359
+#: cp/decl.cc:16375
 #, gcc-internal-format
 msgid "%qT referred to as %qs"
 msgstr "%qT 做為 %qs 被參照"
 
-#: cp/decl.cc:16360 cp/decl.cc:16367
+#: cp/decl.cc:16376 cp/decl.cc:16383
 #, fuzzy, gcc-internal-format
 #| msgid "%q+T has a previous declaration here"
 msgid "%qT has a previous declaration here"
 msgstr "%q+T 先前在此處有過宣告"
 
-#: cp/decl.cc:16366
+#: cp/decl.cc:16382
 #, gcc-internal-format
 msgid "%qT referred to as enum"
 msgstr "%qT 做為列舉被參照"
@@ -60121,117 +60126,101 @@ msgstr "%qT 做為列舉被參照"
 #. void f(class C);		// No template header here
 #.
 #. then the required template argument is missing.
-#: cp/decl.cc:16381
+#: cp/decl.cc:16397
 #, gcc-internal-format
 msgid "template argument required for %<%s %T%>"
 msgstr "%<%s %T%> 需要範本參數"
 
-#: cp/decl.cc:16424 cp/name-lookup.cc:6074 cp/name-lookup.cc:6206
-#: cp/parser.cc:7215 cp/parser.cc:32114
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
 #, gcc-internal-format
 msgid "reference to %qD is ambiguous"
 msgstr "對 %qD 的參照有歧義"
 
-#: cp/decl.cc:16433
+#: cp/decl.cc:16449
 #, fuzzy, gcc-internal-format
 msgid "class template %qD redeclared as non-template"
 msgstr "函式模板 %qD redeclared 做為類別模板"
 
-#: cp/decl.cc:16455 cp/name-lookup.cc:5764
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
 #, gcc-internal-format
 msgid "%qD has the same name as the class in which it is declared"
 msgstr "%qD 與其宣告所在的類別同名"
 
-#: cp/decl.cc:16483 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
-#: cp/pt.cc:9992
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
 #, gcc-internal-format
 msgid "%qT is not a template"
 msgstr "%qT 不是一個範本"
 
-#: cp/decl.cc:16488
+#: cp/decl.cc:16504
 #, gcc-internal-format
 msgid "perhaps you want to explicitly add %<%T::%>"
 msgstr ""
 
-#: cp/decl.cc:16593
+#: cp/decl.cc:16609
 #, gcc-internal-format
 msgid "use of enum %q#D without previous declaration"
 msgstr "使用列舉 %q#D 前沒有給出宣告"
 
-#: cp/decl.cc:16619
+#: cp/decl.cc:16635
 #, gcc-internal-format
 msgid "redeclaration of %qT as a non-template"
 msgstr "%qT 重宣告為非範本"
 
-#: cp/decl.cc:16631 cp/semantics.cc:3781
-#, fuzzy, gcc-internal-format
-#| msgid "cannot declare %qD to be a bit-field type"
-msgid "cannot declare %qD in a different module"
-msgstr "不能將 %qD 宣告為位元段類型"
-
-#: cp/decl.cc:16632 cp/decl.cc:16985 lto/lto-symtab.cc:865
-#, fuzzy, gcc-internal-format
-msgid "previously declared here"
-msgstr "在之前宣告的在此"
-
-#: cp/decl.cc:16759
+#: cp/decl.cc:16770
 #, gcc-internal-format
 msgid "derived union %qT invalid"
 msgstr "衍生聯合 %qT 無效"
 
-#: cp/decl.cc:16766
+#: cp/decl.cc:16777
 #, gcc-internal-format
 msgid "%qT defined with multiple direct bases"
 msgstr ""
 
-#: cp/decl.cc:16777
+#: cp/decl.cc:16788
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct or virtual base of %qT"
 msgid "%qT defined with direct virtual base"
 msgstr "類型 %qT 不是 %qT 的直接或虛基礎類別"
 
-#: cp/decl.cc:16802
+#: cp/decl.cc:16813
 #, gcc-internal-format
 msgid "base type %qT fails to be a struct or class type"
 msgstr "基礎類別型 %qT 不是結構或類別"
 
-#: cp/decl.cc:16832
+#: cp/decl.cc:16843
 #, gcc-internal-format
 msgid "recursive type %qT undefined"
 msgstr "遞迴的類型 %qT 未定義"
 
-#: cp/decl.cc:16834
+#: cp/decl.cc:16845
 #, gcc-internal-format
 msgid "duplicate base type %qT invalid"
 msgstr "重複的基礎類別型 %qT 無效"
 
-#: cp/decl.cc:16984
-#, fuzzy, gcc-internal-format
-msgid "cannot declare %qD in different module"
-msgstr "無法擷取 %qE 由參考"
-
-#: cp/decl.cc:16997
+#: cp/decl.cc:17003
 #, fuzzy, gcc-internal-format
 msgid "scoped/unscoped mismatch in enum %q#T"
 msgstr "範圍/unscoped 不匹配在中 enum %q#T"
 
-#: cp/decl.cc:17000 cp/decl.cc:17009 cp/decl.cc:17020 cp/decl.cc:17612
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
 #: cp/parser.cc:21734
 #, fuzzy, gcc-internal-format
 msgid "previous definition here"
 msgstr "前一個定義在此"
 
-#: cp/decl.cc:17006
+#: cp/decl.cc:17012
 #, fuzzy, gcc-internal-format
 msgid "underlying type mismatch in enum %q#T"
 msgstr "下層的型態不匹配在中 enum %q#T"
 
-#: cp/decl.cc:17017
+#: cp/decl.cc:17023
 #, fuzzy, gcc-internal-format
 msgid "different underlying type in enum %q#T"
 msgstr "不同的下層的輸入 enum %q#T"
 
-#: cp/decl.cc:17090
+#: cp/decl.cc:17096
 #, fuzzy, gcc-internal-format
 msgid "underlying type %qT of %qT must be an integral type"
 msgstr "下層的型態 %<%T%>的 %<%T%>必須是整數類資料類型"
@@ -60240,83 +60229,83 @@ msgstr "下層的型態 %<%T%>的 %<%T%>必須是整數類資料類型"
 #.
 #. IF no integral type can represent all the enumerator values, the
 #. enumeration is ill-formed.
-#: cp/decl.cc:17239
+#: cp/decl.cc:17245
 #, gcc-internal-format
 msgid "no integral type can represent all of the enumerator values for %qT"
 msgstr "沒有一個整數類型可以表示 %qT 的所有列舉值"
 
-#: cp/decl.cc:17420
+#: cp/decl.cc:17426
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD must have integral or unscoped enumeration type"
 msgstr "列舉值值用於 %qD 不是整數常數"
 
-#: cp/decl.cc:17430
+#: cp/decl.cc:17436
 #, fuzzy, gcc-internal-format
 msgid "enumerator value for %qD is not an integer constant"
 msgstr "列舉值值用於 %qD 不是整數常數"
 
-#: cp/decl.cc:17479
+#: cp/decl.cc:17485
 #, fuzzy, gcc-internal-format
 msgid "incremented enumerator value is too large for %<unsigned long%>"
 msgstr "遞增的列舉值值太大用於 %<unsigned long%>"
 
-#: cp/decl.cc:17480
+#: cp/decl.cc:17486
 #, fuzzy, gcc-internal-format
 msgid "incremented enumerator value is too large for %<long%>"
 msgstr "遞增的列舉值值太大用於 %<unsigned long%>"
 
-#: cp/decl.cc:17491
+#: cp/decl.cc:17497
 #, gcc-internal-format
 msgid "overflow in enumeration values at %qD"
 msgstr "%qD 處列舉值溢出"
 
-#: cp/decl.cc:17511
+#: cp/decl.cc:17517
 #, fuzzy, gcc-internal-format
 msgid "enumerator value %qE is outside the range of underlying type %qT"
 msgstr "列舉值值 %E 太大用於下層的型態 %<%T%>"
 
-#: cp/decl.cc:17610 cp/parser.cc:21732
+#: cp/decl.cc:17616 cp/parser.cc:21732
 #, gcc-internal-format
 msgid "multiple definition of %q#T"
 msgstr "%q#T 多次定義"
 
-#: cp/decl.cc:17684
+#: cp/decl.cc:17690
 #, gcc-internal-format
 msgid "return type %q#T is incomplete"
 msgstr "回傳值類型 %q#T 為不完全"
 
-#: cp/decl.cc:17842 cp/typeck.cc:11242
+#: cp/decl.cc:17848 cp/typeck.cc:11238
 #, gcc-internal-format
 msgid "%<operator=%> should return a reference to %<*this%>"
 msgstr "%<operator=%> 應當回傳一個對 %<*this%> 的參照"
 
-#: cp/decl.cc:18672
+#: cp/decl.cc:18678
 #, fuzzy, gcc-internal-format
 msgid "no return statements in function returning %qT"
 msgstr "在有回傳值的函式中未發現 return 敘述"
 
-#: cp/decl.cc:18674 cp/typeck.cc:11122
+#: cp/decl.cc:18680 cp/typeck.cc:11118
 #, fuzzy, gcc-internal-format
 msgid "only plain %<auto%> return type can be deduced to %<void%>"
 msgstr "由於 %<volatile%>，函式回傳類型不相容"
 
-#: cp/decl.cc:18734
+#: cp/decl.cc:18740
 #, fuzzy, gcc-internal-format
 #| msgid "no return statement in function returning non-void"
 msgid "no return statement in %<constexpr%> function returning non-void"
 msgstr "在有回傳值的函式中未發現 return 敘述"
 
-#: cp/decl.cc:18914
+#: cp/decl.cc:18920
 #, gcc-internal-format
 msgid "%qD is already defined in class %qT"
 msgstr "%qD 已在類別 %qT 中定義過"
 
-#: cp/decl.cc:19304
+#: cp/decl.cc:19310
 #, fuzzy, gcc-internal-format
 msgid "using %qs"
 msgstr "封閉任務"
 
-#: cp/decl.cc:19316
+#: cp/decl.cc:19322
 #, fuzzy, gcc-internal-format
 msgid "use of %qD before deduction of %<auto%>"
 msgstr "型態的 %qD 預設值到 %<int%>"
@@ -60371,7 +60360,7 @@ msgstr "不能 delete 一個函式。只有參照物件的指標才是 %<delete%
 msgid "deleting %qT is undefined"
 msgstr "刪除 %qT 未定義"
 
-#: cp/decl2.cc:768 cp/pt.cc:5961
+#: cp/decl2.cc:768 cp/pt.cc:5962
 #, gcc-internal-format
 msgid "template declaration of %q#D"
 msgstr "%q#D 宣告為範本"
@@ -60381,7 +60370,7 @@ msgstr "%q#D 宣告為範本"
 msgid "template parameter lists provided don%'t match the template parameters of %qD"
 msgstr "模板參數清單提供 don%'t 匹配模板參數的 %qD"
 
-#: cp/decl2.cc:823 cp/pt.cc:5929
+#: cp/decl2.cc:823 cp/pt.cc:5930
 #, gcc-internal-format
 msgid "destructor %qD declared as member template"
 msgstr "解構函式 %qD 被宣告為一個成員範本"
@@ -60574,64 +60563,64 @@ msgstr "解構函式不能是靜態成員函式"
 msgid "%<operator delete%> takes type %qT as first parameter"
 msgstr "%<operator delete%> 的第一個參數類型為 %qT"
 
-#: cp/decl2.cc:3159
+#: cp/decl2.cc:3160
 #, fuzzy, gcc-internal-format
 msgid "%qT has a field %q#D whose type has no linkage"
 msgstr "%qT 有欄位 %qD 其型態使用匿名命名空間"
 
-#: cp/decl2.cc:3163
+#: cp/decl2.cc:3164
 #, fuzzy, gcc-internal-format
 msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
 msgstr "%qT 有欄位 %qD 其型態使用匿名命名空間"
 
-#: cp/decl2.cc:3169
+#: cp/decl2.cc:3170
 #, fuzzy, gcc-internal-format
 msgid "%qT has a field %q#D whose type has internal linkage"
 msgstr "%qT 有欄位 %qD 其型態使用匿名命名空間"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3173
+#: cp/decl2.cc:3174
 #, fuzzy, gcc-internal-format
 msgid "%qT has a field %q#D whose type uses the anonymous namespace"
 msgstr "%qT 有欄位 %qD 其型態使用匿名命名空間"
 
-#: cp/decl2.cc:3181
+#: cp/decl2.cc:3182
 #, fuzzy, gcc-internal-format
 msgid "%qT declared with greater visibility than the type of its field %qD"
 msgstr "%qT 宣告的與更大可視性比型態的它的欄位 %qD"
 
-#: cp/decl2.cc:3200
+#: cp/decl2.cc:3201
 #, fuzzy, gcc-internal-format
 msgid "%qT has a base %qT which has no linkage"
 msgstr "%qT 有基底 %qT 其型態使用匿名命名空間"
 
-#: cp/decl2.cc:3204
+#: cp/decl2.cc:3205
 #, fuzzy, gcc-internal-format
 msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
 msgstr "%qT 有基底 %qT 其型態使用匿名命名空間"
 
-#: cp/decl2.cc:3210
+#: cp/decl2.cc:3211
 #, fuzzy, gcc-internal-format
 msgid "%qT has a base %qT which has internal linkage"
 msgstr "%qT 有基底 %qT 其型態使用匿名命名空間"
 
 #. In C++98 this can only happen with unnamed namespaces.
-#: cp/decl2.cc:3214
+#: cp/decl2.cc:3215
 #, fuzzy, gcc-internal-format
 msgid "%qT has a base %qT which uses the anonymous namespace"
 msgstr "%qT 有基底 %qT 其型態使用匿名命名空間"
 
-#: cp/decl2.cc:3221
+#: cp/decl2.cc:3222
 #, fuzzy, gcc-internal-format
 msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT 宣告的與更大可視性比它的基底 %qT"
 
-#: cp/decl2.cc:4713
+#: cp/decl2.cc:4714
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
 msgstr "%q+#D, 宣告的使用匿名型態，被使用但是永不定義"
 
-#: cp/decl2.cc:4717
+#: cp/decl2.cc:4718
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
 msgstr "%q+#D, 宣告的使用匿名型態，被使用但是永不定義"
@@ -60640,107 +60629,107 @@ msgstr "%q+#D, 宣告的使用匿名型態，被使用但是永不定義"
 #. no linkage can only be used to declare extern "C"
 #. entities.  Since it's not always an error in the
 #. ISO C++ 90 Standard, we only issue a warning.
-#: cp/decl2.cc:4727
+#: cp/decl2.cc:4728
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
 msgstr "匿名型態不具任何鏈結用來宣告變數 %q#D 與鏈結"
 
-#: cp/decl2.cc:4731
+#: cp/decl2.cc:4732
 #, fuzzy, gcc-internal-format
 msgid "unnamed type with no linkage used to declare function %q#D with linkage"
 msgstr "匿名型態不具任何鏈結用來宣告函式 %q#D 與鏈結"
 
-#: cp/decl2.cc:4735
+#: cp/decl2.cc:4736
 #, fuzzy, gcc-internal-format
 #| msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage"
 msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
 msgstr "%q+#D 未指明非限定類型，所以它不做為外部連結"
 
-#: cp/decl2.cc:4753
+#: cp/decl2.cc:4754
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q+#D, 宣告的使用本地型態 %qT，被使用但是永不定義"
 
-#: cp/decl2.cc:4757
+#: cp/decl2.cc:4758
 #, fuzzy, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
 msgstr "%q+#D, 宣告的使用本地型態 %qT，被使用但是永不定義"
 
-#: cp/decl2.cc:4765
+#: cp/decl2.cc:4766
 #, fuzzy, gcc-internal-format
 msgid "type %qT with no linkage used to declare variable %q#D with linkage"
 msgstr "型態 %qT 不具任何鏈結用來宣告變數 %q#D 與鏈結"
 
-#: cp/decl2.cc:4768
+#: cp/decl2.cc:4769
 #, fuzzy, gcc-internal-format
 msgid "type %qT with no linkage used to declare function %q#D with linkage"
 msgstr "型態 %qT 不具任何鏈結用來宣告函式 %q#D 與鏈結"
 
-#: cp/decl2.cc:4965
+#: cp/decl2.cc:4966
 #, fuzzy, gcc-internal-format
 msgid "mangling of %q#D as %qE conflicts with a previous mangle"
 msgstr "%q#D 衝突與前一個宣告"
 
-#: cp/decl2.cc:4968
+#: cp/decl2.cc:4969
 #, fuzzy, gcc-internal-format
 msgid "previous mangling %q#D"
 msgstr "前一個宣告 %q+#D"
 
-#: cp/decl2.cc:4970
+#: cp/decl2.cc:4971
 #, fuzzy, gcc-internal-format
 msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
 msgstr "-fabi-version=6 (或=0) 避免這個錯誤與變更在中 mangling"
 
-#: cp/decl2.cc:5042 cp/decl2.cc:5045
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
 #, gcc-internal-format
 msgid "the program should also define %qD"
 msgstr ""
 
-#: cp/decl2.cc:5384
+#: cp/decl2.cc:5385
 #, fuzzy, gcc-internal-format
 #| msgid "inline function %q+D used but never defined"
 msgid "inline function %qD used but never defined"
 msgstr "使用了內聯函式 %q+D 但從未定義過"
 
-#: cp/decl2.cc:5610
+#: cp/decl2.cc:5611
 #, fuzzy, gcc-internal-format
 #| msgid "default argument missing for parameter %P of %q+#D"
 msgid "default argument missing for parameter %P of %q#D"
 msgstr "參數 %P (屬於 %q+#D)缺少預設引數"
 
-#: cp/decl2.cc:5615
+#: cp/decl2.cc:5616
 #, fuzzy, gcc-internal-format
 msgid "...following parameter %P which has a default argument"
 msgstr "參數包裝無法有預設引數"
 
-#: cp/decl2.cc:5739
+#: cp/decl2.cc:5740
 #, fuzzy, gcc-internal-format
 msgid "implicitly-declared %qD is deprecated"
 msgstr "類別 %qE 被不宜用"
 
-#: cp/decl2.cc:5743
+#: cp/decl2.cc:5744
 #, gcc-internal-format
 msgid "because %qT has user-provided %qD"
 msgstr ""
 
 #. We mark a lambda conversion op as deleted if we can't
 #. generate it properly; see maybe_add_lambda_conv_op.
-#: cp/decl2.cc:5884
+#: cp/decl2.cc:5885
 #, fuzzy, gcc-internal-format
 msgid "converting lambda that uses %<...%> to function pointer"
 msgstr "轉換 lambda 該項使用 %<...%>到函式指標"
 
-#: cp/decl2.cc:5887
+#: cp/decl2.cc:5888
 #, fuzzy, gcc-internal-format
 msgid "use of deleted function %qD"
 msgstr "使用的刪除的函式 %qD"
 
-#: cp/decl2.cc:5941
+#: cp/decl2.cc:5942
 #, fuzzy, gcc-internal-format
 msgid "use of function %qD with unsatisfied constraints"
 msgstr "重新宣告 %qD 不同在中 %<constexpr%>"
 
-#: cp/decl2.cc:5971
+#: cp/decl2.cc:5974
 #, fuzzy, gcc-internal-format
 #| msgid "using %<typename%> outside of template"
 msgid "use of built-in parameter pack %qD outside of a template"
@@ -60848,7 +60837,7 @@ msgstr "對 %<%T::%D%> 的參照有歧義"
 msgid "%qD is not a member of %qT; did you mean %qs?"
 msgstr "%qD 不是類型 %qT 的成員"
 
-#: cp/error.cc:4697 cp/typeck.cc:2875
+#: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
 msgid "%qD is not a member of %qT"
 msgstr "%qD 不是 %qT 的成員"
@@ -60859,7 +60848,7 @@ msgstr "%qD 不是 %qT 的成員"
 msgid "%qD is not a member of %qD; did you mean %qs?"
 msgstr "%qD 不是類型 %qT 的成員"
 
-#: cp/error.cc:4723 cp/typeck.cc:3467
+#: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
 msgid "%qD is not a member of %qD"
 msgstr "%qD 不是 %qD 的成員"
@@ -60885,47 +60874,47 @@ msgstr "異常處理已停用，使用 -fexceptions 以啟用"
 msgid "throwing NULL, which has integral, not pointer type"
 msgstr "拋出 NULL，它的類型是整數而不是指標"
 
-#: cp/except.cc:735
+#: cp/except.cc:731
 #, gcc-internal-format
 msgid "  in thrown expression"
 msgstr "  在拋出的運算式中"
 
-#: cp/except.cc:882
+#: cp/except.cc:878
 #, fuzzy, gcc-internal-format
 msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
 msgstr "不能將參數 %q+D 宣告為具有抽象類型 %qT"
 
-#: cp/except.cc:892
+#: cp/except.cc:888
 #, fuzzy, gcc-internal-format
 msgid "cannot throw expression of type %qT because it involves types of variable size"
 msgstr "無法建立類型資訊用於型態 %qT 因為它牽連出類型的變數大小"
 
-#: cp/except.cc:895
+#: cp/except.cc:891
 #, fuzzy, gcc-internal-format
 msgid "cannot catch type %qT because it involves types of variable size"
 msgstr "無法建立類型資訊用於型態 %qT 因為它牽連出類型的變數大小"
 
-#: cp/except.cc:996
+#: cp/except.cc:992
 #, fuzzy, gcc-internal-format
 msgid "exception of type %qT will be caught by earlier handler"
 msgstr "異常的型態 %qT 將是擷取到"
 
-#: cp/except.cc:998
+#: cp/except.cc:994
 #, fuzzy, gcc-internal-format
 msgid "for type %qT"
 msgstr "錯誤的型態引數到 %s"
 
-#: cp/except.cc:1027
+#: cp/except.cc:1023
 #, fuzzy, gcc-internal-format
 msgid "%<...%> handler must be the last handler for its try block"
 msgstr "%<...%>處理常式必須是最後一筆處理常式用於它的嘗試區塊"
 
-#: cp/except.cc:1123
+#: cp/except.cc:1119
 #, fuzzy, gcc-internal-format
 msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
 msgstr "noexcept-expression 評估到 %<false%> 因為呼叫到 %qD"
 
-#: cp/except.cc:1126
+#: cp/except.cc:1122
 #, fuzzy, gcc-internal-format
 msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
 msgstr "但是 %q+D 不丟擲；也許它應該被宣告 %<noexcept%>"
@@ -61196,12 +61185,12 @@ msgstr "類型 %qT 不是 %qT 的直接或虛基礎類別"
 msgid "type %qT is not a direct base of %qT"
 msgstr "類型 %qT 不是 %qT 的直接基礎類別"
 
-#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1378
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
 #, fuzzy, gcc-internal-format
 msgid "array must be initialized with a brace-enclosed initializer"
 msgstr "陣列必須被初始化的與 brace-enclosed 初始設定式"
 
-#: cp/init.cc:2366 cp/semantics.cc:4058 rust/backend/rust-tree.cc:4168
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class type"
 msgstr "%qT 並非類別型態"
@@ -61216,12 +61205,12 @@ msgstr "不完全類型 %qT 沒有成員 %qD"
 msgid "invalid pointer to bit-field %qD"
 msgstr "參照位元段 %qD 指標無效"
 
-#: cp/init.cc:2524 cp/typeck.cc:2361 rust/backend/rust-tree.cc:3811
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
 #, gcc-internal-format
 msgid "invalid use of non-static member function %qD"
 msgstr "對非靜態成員函式 %qD 的使用無效"
 
-#: cp/init.cc:2531 cp/semantics.cc:2377
+#: cp/init.cc:2531 cp/semantics.cc:2379
 #, gcc-internal-format
 msgid "invalid use of non-static data member %qD"
 msgstr "對非靜態資料成員 %qD 的無效使用"
@@ -61422,53 +61411,53 @@ msgstr "刪除物件的抽象類別型態 %qT 該項有 non-virtual 解構式將
 msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
 msgstr "刪除物件的 polymorphic 類別型態 %qT 該項有 non-virtual 解構式也許造成未定義的行為"
 
-#: cp/init.cc:5510
+#: cp/init.cc:5517
 #, gcc-internal-format
 msgid "type to vector delete is neither pointer or array type"
 msgstr "向量 delete 的引數類型既非指標也非陣列"
 
-#: cp/lambda.cc:549
+#: cp/lambda.cc:550
 #, gcc-internal-format
 msgid "array of runtime bound cannot be captured by copy, only by reference"
 msgstr ""
 
-#: cp/lambda.cc:564
+#: cp/lambda.cc:565
 #, gcc-internal-format
 msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
 msgstr ""
 
-#: cp/lambda.cc:568
+#: cp/lambda.cc:569
 #, fuzzy, gcc-internal-format
 #| msgid "compound literal has variable size"
 msgid "because the array element type %qT has variable size"
 msgstr "複合字面值有可變的大小"
 
-#: cp/lambda.cc:592
+#: cp/lambda.cc:593
 #, fuzzy, gcc-internal-format
 msgid "cannot capture %qE by reference"
 msgstr "無法擷取 %qE 由參考"
 
-#: cp/lambda.cc:602
+#: cp/lambda.cc:603
 #, fuzzy, gcc-internal-format
 msgid "capture by copy of incomplete type %qT"
 msgstr "無效的使用的不完整型態 %q#T"
 
-#: cp/lambda.cc:674
+#: cp/lambda.cc:675
 #, gcc-internal-format
 msgid "trying to capture %qD in instantiation of generic lambda"
 msgstr ""
 
-#: cp/lambda.cc:750
+#: cp/lambda.cc:751
 #, gcc-internal-format
 msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
 msgstr ""
 
-#: cp/lambda.cc:752
+#: cp/lambda.cc:753
 #, gcc-internal-format
 msgid "add explicit %<this%> or %<*this%> capture"
 msgstr ""
 
-#: cp/lambda.cc:873
+#: cp/lambda.cc:874
 #, fuzzy, gcc-internal-format
 msgid "%<this%> was not captured for this lambda function"
 msgstr "%<this%> 未被擷取用於這個 lambda 函式"
@@ -61849,232 +61838,281 @@ msgstr "預期 template-id 用於型態"
 msgid "encapsulation is malformed"
 msgstr ""
 
-#: cp/module.cc:11577
+#: cp/module.cc:11604
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting global module declaration %#qD"
 msgstr "相互衝突的宣告 %q#D"
 
-#: cp/module.cc:11579
+#: cp/module.cc:11606
 #, fuzzy, gcc-internal-format
 #| msgid "in declaration %q+D"
 msgid "existing declaration %#qD"
 msgstr "在宣告 %q+D 中"
 
-#: cp/module.cc:12626
+#: cp/module.cc:12655
 #, fuzzy, gcc-internal-format
 msgid "definition of %qD does not match"
 msgstr "extern 宣告的 %q#D doesn%'t 匹配"
 
-#: cp/module.cc:12628
+#: cp/module.cc:12657
 #, fuzzy, gcc-internal-format
 #| msgid "missing definition"
 msgid "existing definition %qD"
 msgstr "定義缺失"
 
-#: cp/module.cc:12640
+#: cp/module.cc:12669
 #, fuzzy, gcc-internal-format
 #| msgid "redeclaration of enumerator %q+D"
 msgid "... this enumerator %qD"
 msgstr "列舉 %q+D 重宣告"
 
-#: cp/module.cc:12642
+#: cp/module.cc:12671
 #, fuzzy, gcc-internal-format
 msgid "enumerator %qD does not match ..."
 msgstr "extern 宣告的 %q#D doesn%'t 匹配"
 
-#: cp/module.cc:12648
+#: cp/module.cc:12677
 #, gcc-internal-format
 msgid "additional enumerators beginning with %qD"
 msgstr ""
 
-#: cp/module.cc:12652
+#: cp/module.cc:12681
 #, gcc-internal-format
 msgid "enumeration range differs"
 msgstr ""
 
-#: cp/module.cc:13747
+#: cp/module.cc:13782
 #, gcc-internal-format
 msgid "%q#D references internal linkage entity %q#D"
 msgstr ""
 
-#: cp/module.cc:14330
+#: cp/module.cc:14365
 #, gcc-internal-format
 msgid "recursive lazy load"
 msgstr ""
 
 #. Cannot import the current module.
-#: cp/module.cc:14349
+#: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
 msgstr ""
 
-#: cp/module.cc:14350 cp/module.cc:19589
+#: cp/module.cc:14385 cp/module.cc:19710
 #, fuzzy, gcc-internal-format
 msgid "module %qs declared here"
 msgstr "%qD 宣告的在此"
 
-#: cp/module.cc:14694
+#: cp/module.cc:14729
 #, gcc-internal-format
 msgid "indirect import %qs is not already loaded"
 msgstr ""
 
-#: cp/module.cc:14700
+#: cp/module.cc:14735
 #, gcc-internal-format
 msgid "import %qs has CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:16528
+#: cp/module.cc:16563
 #, gcc-internal-format
 msgid "unable to represent further imported source locations"
 msgstr ""
 
-#: cp/module.cc:17403
+#: cp/module.cc:17438
 #, gcc-internal-format
 msgid "not exporting %<#define %E%> as it is a keyword"
 msgstr ""
 
-#: cp/module.cc:17643
+#: cp/module.cc:17678
 #, fuzzy, gcc-internal-format
 #| msgid "previous definition of %q+D was here"
 msgid "macro definitions of %qE corrupted"
 msgstr "%q+D 的上一個定義在此"
 
-#: cp/module.cc:17667 cp/module.cc:17670
+#: cp/module.cc:17702 cp/module.cc:17705
 #, fuzzy, gcc-internal-format
 msgid "inconsistent imported macro definition %qE"
 msgstr "  不一致參數包裝推導與 %qT 和 %qT"
 
-#: cp/module.cc:17676
+#: cp/module.cc:17711
 #, gcc-internal-format
 msgid "%<#undef %E%>"
 msgstr ""
 
-#: cp/module.cc:17678
+#: cp/module.cc:17713
 #, gcc-internal-format
 msgid "%<#define %s%>"
 msgstr ""
 
-#: cp/module.cc:17911
+#: cp/module.cc:17946
 #, fuzzy, gcc-internal-format
 msgid "compiled module file is %qs"
 msgstr "無法刪除模組檔案『%s』：%s"
 
-#: cp/module.cc:17948 cp/module.cc:17953
+#: cp/module.cc:17983 cp/module.cc:17988
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiled module is %sversion %s"
 msgstr "collect2 版本 %s\n"
 
-#: cp/module.cc:17959
+#: cp/module.cc:17994
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "collect2 version %s\n"
 msgid "compiler is %sversion %s%s%s"
 msgstr "collect2 版本 %s\n"
 
-#: cp/module.cc:17989
+#: cp/module.cc:18024
 #, fuzzy, gcc-internal-format
 msgid "module %qs found"
 msgstr "找不到任何 %qs getter"
 
-#: cp/module.cc:17991
+#: cp/module.cc:18026
 #, gcc-internal-format
 msgid "header module expected, module %qs found"
 msgstr ""
 
-#: cp/module.cc:17992
+#: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
 msgstr ""
 
-#: cp/module.cc:18007
+#: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
 msgstr ""
 
-#: cp/module.cc:18021
+#: cp/module.cc:18056
 #, gcc-internal-format
 msgid "target & host is %qs:%qs, expected %qs:%qs"
 msgstr ""
 
-#: cp/module.cc:18033
+#: cp/module.cc:18068
 #, gcc-internal-format
 msgid "language dialect differs %qs, expected %qs"
 msgstr ""
 
-#: cp/module.cc:18049
+#: cp/module.cc:18084
 #, fuzzy, gcc-internal-format
 msgid "module contains OpenMP, use %<-fopenmp%> to enable"
 msgstr "異常處理已停用，使用 -fexceptions 以啟用"
 
-#: cp/module.cc:18066
+#: cp/module.cc:18101
 #, fuzzy, gcc-internal-format
 msgid "fixed tree mismatch"
 msgstr "最佳化等級屬性不匹配"
 
-#: cp/module.cc:18157
+#: cp/module.cc:18192
 #, fuzzy, gcc-internal-format
 #| msgid "stack limit expression is not supported"
 msgid "interface partition is not exported"
 msgstr "不支援堆疊限制運算式"
 
-#: cp/module.cc:18714
+#: cp/module.cc:18749
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
 msgstr "重新命名 %s 到狀態檔案 %s 時失敗 [%s]"
 
-#: cp/module.cc:18752
+#: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module: %s"
 msgstr "開啟 %s 時失敗"
 
-#: cp/module.cc:18762
+#: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
 msgstr ""
 
-#: cp/module.cc:18767
+#: cp/module.cc:18802
 #, gcc-internal-format
 msgid "imports must be built before being imported"
 msgstr ""
 
-#: cp/module.cc:18770
+#: cp/module.cc:18805
 #, gcc-internal-format
 msgid "returning to the gate for a mechanical issue"
 msgstr ""
 
-#: cp/module.cc:19283
+#: cp/module.cc:19117
+#, fuzzy, gcc-internal-format
+#| msgid "conflicts with built-in declaration %q#D"
+msgid "declaration %qD conflicts with builtin"
+msgstr "與內建宣告 %q#D 衝突"
+
+#: cp/module.cc:19122
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of namespace %qD conflicts with"
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr "命名空間 %qD 的宣告存在衝突，與"
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, fuzzy, gcc-internal-format
+#| msgid "declaration of template %q#D"
+msgid "conflicting declaration of %qD in module %qs"
+msgstr "範本宣告 %q#D"
+
+#: cp/module.cc:19143
+#, fuzzy, gcc-internal-format
+#| msgid "conflicts with new declaration with %qL linkage"
+msgid "conflicting declaration of %qD in global module"
+msgstr "與帶有 %qL 連結的新宣告衝突"
+
+#: cp/module.cc:19148
+#, fuzzy, gcc-internal-format
+msgid "previously declared in module %qs"
+msgstr "在之前宣告的在此"
+
+#: cp/module.cc:19152
+#, fuzzy, gcc-internal-format
+msgid "previously declared in global module"
+msgstr "在之前宣告的在此"
+
+#: cp/module.cc:19404
 #, fuzzy, gcc-internal-format
 #| msgid "creating %s"
 msgid "reading CMI %qs"
 msgstr "建立 %s"
 
-#: cp/module.cc:19434
+#: cp/module.cc:19555
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19435
+#: cp/module.cc:19556
 #, gcc-internal-format
 msgid "failed to load binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19442
+#: cp/module.cc:19563
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19443
+#: cp/module.cc:19564
 #, gcc-internal-format
 msgid "during load of binding %<%E%s%E@%s%>"
 msgstr ""
 
-#: cp/module.cc:19505
+#: cp/module.cc:19626
 #, gcc-internal-format
 msgid "failed to load pendings for %<%E%s%E%>"
 msgstr ""
 
-#: cp/module.cc:19509
+#: cp/module.cc:19630
 #, fuzzy, gcc-internal-format
 msgid "during load of pendings for %<%E%s%E%>"
 msgstr "不明選項用於 -mrecip=%s"
@@ -62086,412 +62124,412 @@ msgstr "不明選項用於 -mrecip=%s"
 #. module, so we don't want to confuse things by having to think
 #. about whether 'extern "C++" { import foo; }' puts foo's
 #. contents into the global module all of a sudden.
-#: cp/module.cc:19554
+#: cp/module.cc:19675
 #, gcc-internal-format
 msgid "import of named module %qs inside language-linkage block"
 msgstr ""
 
-#: cp/module.cc:19584
+#: cp/module.cc:19705
 #, fuzzy, gcc-internal-format
 msgid "module already declared"
 msgstr "符號『%s』已經宣告"
 
-#: cp/module.cc:19585
+#: cp/module.cc:19706
 #, fuzzy, gcc-internal-format
 msgid "module already imported"
 msgstr "符號『%s』已經宣告"
 
-#: cp/module.cc:19590
+#: cp/module.cc:19711
 #, fuzzy, gcc-internal-format
 msgid "module %qs imported here"
 msgstr "%qD 宣告的在此"
 
-#: cp/module.cc:19797
+#: cp/module.cc:19918
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "unknown Compiled Module Interface: %s"
 msgstr "不明標點符號『%c』"
 
-#: cp/module.cc:19840
+#: cp/module.cc:19961
 #, gcc-internal-format
 msgid "cannot determine %<#include%> translation of %s: %s"
 msgstr ""
 
-#: cp/module.cc:19858
+#: cp/module.cc:19979
 #, gcc-internal-format
 msgid "include %qs translated to import"
 msgstr ""
 
-#: cp/module.cc:19859
+#: cp/module.cc:19980
 #, gcc-internal-format
 msgid "include %qs processed textually"
 msgstr ""
 
-#: cp/module.cc:20218
+#: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
 msgstr ""
 
-#: cp/module.cc:20222
+#: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
 #| msgid "Enable traditional preprocessing"
 msgid "C++ modules are incompatible with traditional preprocessing"
 msgstr "啟用傳統預先處理"
 
-#: cp/module.cc:20232
+#: cp/module.cc:20353
 #, gcc-internal-format
 msgid "macro debug output may be incomplete with modules"
 msgstr ""
 
-#: cp/module.cc:20233
+#: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
 msgstr ""
 
-#: cp/module.cc:20235
+#: cp/module.cc:20356
 #, fuzzy, gcc-internal-format
 msgid "you should use the %<-%s%> option"
 msgstr "內建函式 %s 需求 -mvsx 選項"
 
-#: cp/module.cc:20270 cp/module.cc:20299
+#: cp/module.cc:20391 cp/module.cc:20420
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param value %qs"
 msgid "invalid header name %qs"
 msgstr "無效的 --param 值 %qs"
 
-#: cp/module.cc:20309
+#: cp/module.cc:20430
 #, fuzzy, gcc-internal-format
 #| msgid "invalid --param value %qs"
 msgid "invalid module name %qs"
 msgstr "無效的 --param 值 %qs"
 
-#: cp/module.cc:20507
+#: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
 msgstr ""
 
-#: cp/module.cc:20547
+#: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
 #| msgid "error writing %qs"
 msgid "writing CMI %qs"
 msgstr "寫入 %qs 時錯誤"
 
-#: cp/module.cc:20554
+#: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
 #| msgid "Error writing modules file: %s"
 msgid "not writing module %qs due to errors"
 msgstr "寫入模組檔案時發生錯誤：%s"
 
-#: cp/module.cc:20619
+#: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to write compiled module: %s"
 msgstr "寫入狀態結尾時失敗 [%s]"
 
-#: cp/module.cc:20716
+#: cp/module.cc:20839
 #, fuzzy, gcc-internal-format
 msgid "unknown header kind %qs"
 msgstr "不明 spec 函式 %qs"
 
-#: cp/name-lookup.cc:2856 cp/name-lookup.cc:3932 cp/name-lookup.cc:4029
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
 #, fuzzy, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
 msgstr "variadic 模板只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/name-lookup.cc:2887
+#: cp/name-lookup.cc:2891
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "redeclaration of %q#D with different template parameters"
 msgstr "%q+D 的宣告隱藏了一個參數"
 
-#: cp/name-lookup.cc:2893
+#: cp/name-lookup.cc:2897
 #, fuzzy, gcc-internal-format
 msgid "%q#D conflicts with a previous declaration"
 msgstr "%q#D 衝突與前一個宣告"
 
-#: cp/name-lookup.cc:3060
+#: cp/name-lookup.cc:3064
 #, fuzzy, gcc-internal-format
 #| msgid "%q#D hides constructor for %q#T"
 msgid "%q#D hides constructor for %q#D"
 msgstr "%q#D 隱藏了 %q#T 的建構式"
 
-#: cp/name-lookup.cc:3211
+#: cp/name-lookup.cc:3215
 #, fuzzy, gcc-internal-format
 #| msgid "conflicting declaration %q#D"
 msgid "conflicting C language linkage declaration %q#D"
 msgstr "相互衝突的宣告 %q#D"
 
-#: cp/name-lookup.cc:3216
+#: cp/name-lookup.cc:3220
 #, fuzzy, gcc-internal-format
 msgid "due to different exception specifications"
 msgstr "由於不同的異常規格"
 
-#: cp/name-lookup.cc:3326
+#: cp/name-lookup.cc:3330
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD invalidly declared method type"
 msgid "lambda parameter %qD previously declared as a capture"
 msgstr "參數 %qD 被無效地被宣告為具有方法類型"
 
-#: cp/name-lookup.cc:3359 cp/name-lookup.cc:3363
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
 #, gcc-internal-format
 msgid "declaration of %q#D shadows a parameter"
 msgstr "%q#D 的宣告隱藏了一個參數"
 
-#: cp/name-lookup.cc:3522
+#: cp/name-lookup.cc:3526
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD as member of %qT"
 msgid "declaration of %qD shadows a member of %qT"
 msgstr "%qD 宣告為 %qT 的一個成員"
 
-#: cp/name-lookup.cc:4014
+#: cp/name-lookup.cc:4018
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "朋友宣告 %qD 在中區域類別而無需事前宣告"
 
-#: cp/name-lookup.cc:4512
+#: cp/name-lookup.cc:4569
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s(%E) %p %d\n"
 msgid "%s %<%s(%E)%> %p %d"
 msgstr "%s %s(%E) %p %d\n"
 
-#: cp/name-lookup.cc:4515
+#: cp/name-lookup.cc:4572
 #, fuzzy, gcc-internal-format
 #| msgid "%s %s %p %d\n"
 msgid "%s %s %p %d"
 msgstr "%s %s %p %d\n"
 
-#: cp/name-lookup.cc:5101
+#: cp/name-lookup.cc:5158
 #, fuzzy, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
 msgstr "%qD 沒有積分或列舉類型型態"
 
-#: cp/name-lookup.cc:5106
+#: cp/name-lookup.cc:5163
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with no linkage"
 msgstr "%q+#D 宣告的在此"
 
-#: cp/name-lookup.cc:5109
+#: cp/name-lookup.cc:5166
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
 msgstr "%q+D 宣告的在此，稍後在中轉譯單位"
 
-#: cp/name-lookup.cc:5112
+#: cp/name-lookup.cc:5169
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here with module linkage"
 msgstr "%q+#D 宣告的在此"
 
-#: cp/name-lookup.cc:5911
+#: cp/name-lookup.cc:5968
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> names destructor"
 msgid "%<%T%s%D%> names destructor"
 msgstr "%<%T::%D%> 指定了解構函式"
 
-#: cp/name-lookup.cc:5927
+#: cp/name-lookup.cc:5984
 #, gcc-internal-format
 msgid "using-declaration for non-member at class scope"
 msgstr "在類別作用欄位使用非成員的 using 宣告"
 
-#: cp/name-lookup.cc:5935
+#: cp/name-lookup.cc:5992
 #, fuzzy, gcc-internal-format
 msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "C++11 %<constexpr%> 只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/name-lookup.cc:5951 cp/pt.cc:18490
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a class, namespace, or enumeration"
 msgstr "%qE 並非類別、命名空間，或列舉類型"
 
-#: cp/name-lookup.cc:5961
+#: cp/name-lookup.cc:6018
 #, fuzzy, gcc-internal-format
 #| msgid "template declaration of %q#D"
 msgid "non-member using-declaration names constructor of %qT"
 msgstr "%q#D 宣告為範本"
 
-#: cp/name-lookup.cc:5972 cp/name-lookup.cc:6045
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
 #, fuzzy, gcc-internal-format
 #| msgid "using-declaration for non-member at class scope"
 msgid "using-declaration for member at non-class scope"
 msgstr "在類別作用欄位使用非成員的 using 宣告"
 
-#: cp/name-lookup.cc:5995
+#: cp/name-lookup.cc:6052
 #, fuzzy, gcc-internal-format
 #| msgid "type %qT is not a direct base of %qT"
 msgid "%qT is not a direct base of %qT"
 msgstr "類型 %qT 不是 %qT 的直接基礎類別"
 
-#: cp/name-lookup.cc:6055
+#: cp/name-lookup.cc:6112
 #, gcc-internal-format
 msgid "did you mean %<using enum %T::%D%>?"
 msgstr ""
 
-#: cp/name-lookup.cc:6067
+#: cp/name-lookup.cc:6124
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared in %qD"
 msgstr "%qD 未被宣告在中 %qD"
 
-#: cp/name-lookup.cc:6081
+#: cp/name-lookup.cc:6138
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %qD not in a namespace surrounding %qD"
 msgid "using-declaration may not name namespace %qD"
 msgstr "%qD 的宣告不在包含 %qD 的命名空間中"
 
-#: cp/name-lookup.cc:6092
+#: cp/name-lookup.cc:6149
 #, gcc-internal-format
 msgid "%<%T::%D%> names constructor in %qT"
 msgstr "%<%T::%D%> 在 %qT 內指定了建構式"
 
-#: cp/name-lookup.cc:6185
+#: cp/name-lookup.cc:6242
 #, gcc-internal-format
 msgid "declaration of %qD not in a namespace surrounding %qD"
 msgstr "%qD 的宣告不在包含 %qD 的命名空間中"
 
-#: cp/name-lookup.cc:6226
+#: cp/name-lookup.cc:6283
 #, gcc-internal-format
 msgid "explicit qualification in declaration of %qD"
 msgstr "%qD 的宣告中有明確的限定"
 
-#: cp/name-lookup.cc:6236
+#: cp/name-lookup.cc:6293
 #, gcc-internal-format
 msgid "%qD should have been declared inside %qD"
 msgstr "%qD 應當已在 %qD 內部宣告過"
 
-#: cp/name-lookup.cc:6305
+#: cp/name-lookup.cc:6362
 #, fuzzy, gcc-internal-format
 msgid "%qD has not been declared within %qD"
 msgstr "%qD 未被宣告在中 %qD"
 
-#: cp/name-lookup.cc:6307
+#: cp/name-lookup.cc:6364
 #, fuzzy, gcc-internal-format
 #| msgid "%q+D declared as a friend"
 msgid "only here as a %<friend%>"
 msgstr "%q+D 宣告為夥伴"
 
-#: cp/name-lookup.cc:6361
+#: cp/name-lookup.cc:6418
 #, fuzzy, gcc-internal-format
 msgid "%qD attribute requires a single NTBS argument"
 msgstr "%qD 屬性需要單一 NTBS 引數"
 
-#: cp/name-lookup.cc:6368
+#: cp/name-lookup.cc:6425
 #, fuzzy, gcc-internal-format
 msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
 msgstr "%qD 屬性是無意義的自從成員的匿名命名空間提取本機符號"
 
-#: cp/name-lookup.cc:6378 cp/name-lookup.cc:6405
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qD attribute on anonymous namespace"
 msgstr "忽略屬性於模板引數 %qT"
 
-#: cp/name-lookup.cc:6384
+#: cp/name-lookup.cc:6441
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qD attribute on non-inline namespace"
 msgstr "忽略屬性於模板引數 %qT"
 
-#: cp/name-lookup.cc:6421 cp/name-lookup.cc:8815
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
 #, gcc-internal-format
 msgid "%qD attribute directive ignored"
 msgstr "指定 %qD 屬性被忽略"
 
-#: cp/name-lookup.cc:6747
+#: cp/name-lookup.cc:6804
 #, fuzzy, gcc-internal-format
 msgid "maximum limit of %d namespaces searched for %qE"
 msgstr "最大值限制的 %d 命名空間搜尋的用於 %qE"
 
-#: cp/name-lookup.cc:6799
+#: cp/name-lookup.cc:6856
 #, fuzzy, gcc-internal-format
 msgid "suggested alternative:"
 msgid_plural "suggested alternatives:"
 msgstr[0] "建議的替代方案："
 
-#: cp/name-lookup.cc:6805
+#: cp/name-lookup.cc:6862
 #, fuzzy, gcc-internal-format
 msgid "  %qE"
 msgstr "  %qE"
 
-#: cp/name-lookup.cc:7119
+#: cp/name-lookup.cc:7176
 #, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
 msgstr ""
 
-#: cp/name-lookup.cc:7125
+#: cp/name-lookup.cc:7182
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<std::%s%> is only available from %s onwards"
 msgstr "靜態成員函式中不能使用 %<this%>"
 
-#: cp/name-lookup.cc:7561
+#: cp/name-lookup.cc:7618
 #, fuzzy, gcc-internal-format
 msgid "the macro %qs had not yet been defined"
 msgstr "weak %q+D 無法定義 %qE"
 
-#: cp/name-lookup.cc:7564
+#: cp/name-lookup.cc:7621
 #, fuzzy, gcc-internal-format
 msgid "it was later defined here"
 msgstr "結構定義的在此"
 
-#: cp/name-lookup.cc:8359
+#: cp/name-lookup.cc:8416
 #, gcc-internal-format
 msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
 msgstr ""
 
-#: cp/name-lookup.cc:8787
+#: cp/name-lookup.cc:8844
 #, fuzzy, gcc-internal-format
 #| msgid "switch %qs is no longer supported"
 msgid "%<strong%> using directive no longer supported"
 msgstr "開關 %qs 不再被支援"
 
-#: cp/name-lookup.cc:8790
+#: cp/name-lookup.cc:8847
 #, gcc-internal-format
 msgid "you can use an inline namespace instead"
 msgstr ""
 
-#: cp/name-lookup.cc:8809
+#: cp/name-lookup.cc:8866
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> may not be used in this context"
 msgid "%<omp::%E%> not allowed to be specified in this context"
 msgstr "%<this%> 不能用在此上下文中"
 
 #. We only allow depth 255.
-#: cp/name-lookup.cc:8901
+#: cp/name-lookup.cc:8958
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "%qD may not be declared within a namespace"
 msgid "cannot nest more than %d namespaces"
 msgstr "%qD 不能在命名空間宣告"
 
-#: cp/name-lookup.cc:8998
+#: cp/name-lookup.cc:9055
 #, fuzzy, gcc-internal-format
 msgid "%<namespace %E%> is ambiguous"
 msgstr "『%s』於 %L 是模稜兩可的"
 
-#: cp/name-lookup.cc:9014
+#: cp/name-lookup.cc:9071
 #, gcc-internal-format
 msgid "namespace alias %qD not allowed here, assuming %qD"
 msgstr "這裡不允許命名空間別名 %qD，假定為 %qD"
 
-#: cp/name-lookup.cc:9101
+#: cp/name-lookup.cc:9158
 #, fuzzy, gcc-internal-format
 msgid "inline namespace must be specified at initial definition"
 msgstr "方法屬性必須被指定的於結束只有"
 
-#: cp/name-lookup.cc:9102
+#: cp/name-lookup.cc:9159
 #, fuzzy, gcc-internal-format
 msgid "%qD defined here"
 msgstr "標貼 %qD 定義的在此"
 
-#: cp/name-lookup.cc:9150
+#: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
 msgid "%s namespace %qD conflicts with reachable definition"
 msgstr "%qD 衝突與使用的函式"
 
-#: cp/name-lookup.cc:9152
+#: cp/name-lookup.cc:9209
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "reachable %s definition here"
 msgstr "前一個定義在此"
 
-#: cp/name-lookup.cc:9195
+#: cp/name-lookup.cc:9252
 #, fuzzy, gcc-internal-format
 #| msgid "XXX entering pop_everything ()\n"
 msgid "XXX entering %<pop_everything ()%>"
 msgstr "XXX 進入 pop_everything ()\n"
 
-#: cp/name-lookup.cc:9204
+#: cp/name-lookup.cc:9261
 #, fuzzy, gcc-internal-format
 #| msgid "XXX leaving pop_everything ()\n"
 msgid "XXX leaving %<pop_everything ()%>"
@@ -62517,7 +62555,7 @@ msgstr "識別碼 %qE 是關鍵字在中 C++11"
 msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
 msgstr ""
 
-#: cp/parser.cc:1607 cp/parser.cc:47881
+#: cp/parser.cc:1607 cp/parser.cc:47879
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
 msgstr "%<# pragma align%>必須出現之前宣告的 %D, 忽略"
@@ -62765,7 +62803,7 @@ msgstr "C++11 %<constexpr%> 只有可用與 -std=c++11 或 -std=gnu++11"
 msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "C++11 %<constexpr%> 只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/parser.cc:3754 cp/parser.cc:31351
+#: cp/parser.cc:3754 cp/parser.cc:31353
 #, fuzzy, gcc-internal-format
 msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
 msgstr "使用者定義的實字只有可用與 -std=c++11 或 -std=gnu++11"
@@ -62949,7 +62987,7 @@ msgstr "statement-expressions 未被允許外側函式 nor 在中 template-argum
 msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "lambda 運算式只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4405
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
 #, fuzzy, gcc-internal-format
 msgid "expected primary-expression"
 msgstr "預期 primary-expression"
@@ -63007,7 +63045,7 @@ msgstr "C++0x 自動只有可用與 -std=c++11 或 -std=gnu++11"
 msgid "template-id not allowed for destructor in C++20"
 msgstr "%<operator %T%> 的宣告中不能使用限定符"
 
-#: cp/parser.cc:6735 cp/parser.cc:32584
+#: cp/parser.cc:6735 cp/parser.cc:32586
 #, gcc-internal-format
 msgid "remove the %qs"
 msgstr ""
@@ -63027,7 +63065,7 @@ msgstr "typedef 名 %qD 用於解構函式宣告"
 msgid "expected unqualified-id"
 msgstr "預期 unqualified-id"
 
-#: cp/parser.cc:6921 cp/typeck.cc:3165 cp/typeck.cc:3168 cp/typeck.cc:3185
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
 #, gcc-internal-format
 msgid "%qD is not a template"
 msgstr "%qD 不是一個範本"
@@ -63079,7 +63117,7 @@ msgstr "類型可能無法被定義在中 %<typeid%> 運算式"
 msgid "wrong number of arguments to %<__builtin_addressof%>"
 msgstr "錯誤的引數數量到 %<__builtin_shuffle%>"
 
-#: cp/parser.cc:7734 cp/pt.cc:20997
+#: cp/parser.cc:7734 cp/pt.cc:21039
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_launder%>"
 msgstr "錯誤的引數數量到 %<__builtin_complex%>"
@@ -63114,7 +63152,7 @@ msgstr "類型可能無法被定義在中條件"
 msgid "cannot use multidimensional subscript in OpenMP array section"
 msgstr ""
 
-#: cp/parser.cc:8687 cp/typeck.cc:3053
+#: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
 msgid "invalid use of %qD"
 msgstr "錯誤地使用了 %qD"
@@ -63139,7 +63177,7 @@ msgstr "ISO C++不允許 %<alignof%> 與 non-type"
 msgid "types may not be defined in %<noexcept%> expressions"
 msgstr "類型可能無法被定義在中 %<noexcept%> 運算式"
 
-#: cp/parser.cc:9444 cp/parser.cc:33997
+#: cp/parser.cc:9444 cp/parser.cc:33999
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in %qs expressions"
 msgstr "類型可能無法被定義在中 new-expression"
@@ -63291,8 +63329,8 @@ msgstr ""
 msgid "capture of non-variable %qE"
 msgstr "擷取的 non-variable %qD "
 
-#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4247
-#: cp/semantics.cc:4262
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
 #, fuzzy, gcc-internal-format
 msgid "%q#D declared here"
 msgstr "%q+#D 宣告的在此"
@@ -63332,7 +63370,7 @@ msgstr "預設引數指定的用於 lambda 參數"
 msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "無限制的聯合只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/parser.cc:11932 cp/pt.cc:14742
+#: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
 msgstr ""
@@ -63460,7 +63498,7 @@ msgstr ""
 msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
 msgstr "委派建構子只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/parser.cc:13819 cp/parser.cc:34509
+#: cp/parser.cc:13819 cp/parser.cc:34511
 #, fuzzy, gcc-internal-format
 msgid "expected selection-statement"
 msgstr "預期 selection-statement"
@@ -63524,7 +63562,7 @@ msgstr "range-based %<for%> 運算式的型態 %qT 有不完整型態"
 msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
 msgstr "不一致開始/結束類型在中 range-based %<for%> 敘述：%qT 和 %qT"
 
-#: cp/parser.cc:14700 cp/parser.cc:34512
+#: cp/parser.cc:14700 cp/parser.cc:34514
 #, fuzzy, gcc-internal-format
 msgid "expected iteration-statement"
 msgstr "預期 iteration-statement"
@@ -63550,7 +63588,7 @@ msgstr "C++11 %<constexpr%> 只有可用與 -std=c++11 或 -std=gnu++11"
 msgid "ISO C++ forbids computed gotos"
 msgstr "ISO C++ 不允許執行時可知的 goto 目的"
 
-#: cp/parser.cc:14915 cp/parser.cc:34515
+#: cp/parser.cc:14915 cp/parser.cc:34517
 #, fuzzy, gcc-internal-format
 msgid "expected jump-statement"
 msgstr "預期 jump-statement"
@@ -63838,12 +63876,12 @@ msgstr "只有建構子需成員初始設定式"
 msgid "cannot expand initializer for member %qD"
 msgstr "無法展開初始設定式用於成員 %<%D%>"
 
-#: cp/parser.cc:17514 cp/pt.cc:27654
+#: cp/parser.cc:17514 cp/pt.cc:27696
 #, fuzzy, gcc-internal-format
 msgid "mem-initializer for %qD follows constructor delegation"
 msgstr "mem-initializer 用於 %qD 追隨建構子 delegation"
 
-#: cp/parser.cc:17526 cp/pt.cc:27666
+#: cp/parser.cc:17526 cp/pt.cc:27708
 #, fuzzy, gcc-internal-format
 msgid "constructor delegation follows mem-initializer for %qD"
 msgstr "建構子 delegation 追隨 mem-initializer 用於 %qD"
@@ -64495,7 +64533,7 @@ msgstr "在中模板引數用於型態 %qT "
 msgid "%qT not permitted in template argument"
 msgstr "不匹配的引數"
 
-#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2473
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
 #: rust/backend/rust-tree.cc:3909
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT"
@@ -64679,12 +64717,12 @@ msgstr "%q+#T 的上一個定義"
 #. In a lambda this should work, but doesn't currently.
 #. We're in a lambda, but it isn't the innermost class.
 #. This should work, but currently doesn't.
-#: cp/parser.cc:27654 cp/pt.cc:4327
+#: cp/parser.cc:27654 cp/pt.cc:4328
 #, gcc-internal-format
 msgid "unexpanded parameter pack in local class in lambda"
 msgstr ""
 
-#: cp/parser.cc:27760 cp/parser.cc:34518
+#: cp/parser.cc:27760 cp/parser.cc:34520
 #, fuzzy, gcc-internal-format
 msgid "expected class-key"
 msgstr "預期 class-key"
@@ -64889,38 +64927,38 @@ msgstr "C++0x 自動只有可用與 -std=c++11 或 -std=gnu++11"
 msgid "expression must be enclosed in parentheses"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/parser.cc:31368
+#: cp/parser.cc:31370
 #, gcc-internal-format
 msgid "missing additional %<requires%> to start a requires-expression"
 msgstr ""
 
-#: cp/parser.cc:31611
+#: cp/parser.cc:31613
 #, gcc-internal-format
 msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
 msgstr ""
 
-#: cp/parser.cc:31749
+#: cp/parser.cc:31751
 #, fuzzy, gcc-internal-format
 #| msgid "requested position is not an integer constant"
 msgid "result type is not a plain type-constraint"
 msgstr "要求的位置不是一個整數常數"
 
-#: cp/parser.cc:31757
+#: cp/parser.cc:31759
 #, fuzzy, gcc-internal-format
 msgid "return-type-requirement is not a type-constraint"
 msgstr "要求的對齊不是整數常數"
 
-#: cp/parser.cc:32275
+#: cp/parser.cc:32277
 #, fuzzy, gcc-internal-format
 msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
 msgstr "專用化成員 %<%T::%E%>需求 %<模板<>%>語法specializing member %<%T::%E%> requires %<template<>%> syntax專用化成員 %<%T::%E%>需求 %<模板<>%>語法"
 
-#: cp/parser.cc:32280
+#: cp/parser.cc:32282
 #, fuzzy, gcc-internal-format
 msgid "invalid declaration of %<%T::%E%>"
 msgstr "無效的宣告的 %<%T::%E%>"
 
-#: cp/parser.cc:32284
+#: cp/parser.cc:32286
 #, gcc-internal-format
 msgid "too few template-parameter-lists"
 msgstr "範本參數表太少"
@@ -64929,444 +64967,444 @@ msgstr "範本參數表太少"
 #. something like:
 #.
 #. template <class T> template <class U> void S::f();
-#: cp/parser.cc:32291
+#: cp/parser.cc:32293
 #, gcc-internal-format
 msgid "too many template-parameter-lists"
 msgstr "範本參數表太多"
 
-#: cp/parser.cc:32583
+#: cp/parser.cc:32585
 #, fuzzy, gcc-internal-format
 #| msgid "qualifiers are not allowed on declaration of %<operator %T%>"
 msgid "template-id not allowed for constructor in C++20"
 msgstr "%<operator %T%> 的宣告中不能使用限定符"
 
-#: cp/parser.cc:32694
+#: cp/parser.cc:32696
 #, gcc-internal-format
 msgid "named return values are no longer supported"
 msgstr "具名回傳值不再被支援"
 
-#: cp/parser.cc:32867
+#: cp/parser.cc:32869
 #, gcc-internal-format
 msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
 msgstr ""
 
-#: cp/parser.cc:32876
+#: cp/parser.cc:32878
 #, fuzzy, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
 msgstr "實字運算子模板 %qD 有無效的參數清單。 預期 non-type 模板引數包裝 <char...>"
 
-#: cp/parser.cc:32882
+#: cp/parser.cc:32884
 #, fuzzy, gcc-internal-format
 msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
 msgstr "實字運算子模板 %qD 有無效的參數清單。 預期 non-type 模板引數包裝 <char...>"
 
-#: cp/parser.cc:32989
+#: cp/parser.cc:32991
 #, gcc-internal-format
 msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
 msgstr ""
 
-#: cp/parser.cc:32999
+#: cp/parser.cc:33001
 #, fuzzy, gcc-internal-format
 #| msgid "no matching template for %qD found"
 msgid "no matching concept for template-introduction"
 msgstr "沒有找到與 %qD 匹配的範本"
 
-#: cp/parser.cc:33022
+#: cp/parser.cc:33024
 #, fuzzy, gcc-internal-format
 msgid "invalid declaration of member template in local class"
 msgstr "無效的宣告的成員模板在中區域類別"
 
-#: cp/parser.cc:33031
+#: cp/parser.cc:33033
 #, gcc-internal-format
 msgid "template with C linkage"
 msgstr "C 連結的範本"
 
-#: cp/parser.cc:33051
+#: cp/parser.cc:33053
 #, fuzzy, gcc-internal-format
 msgid "invalid explicit specialization"
 msgstr "無效的明確的特殊化"
 
-#: cp/parser.cc:33163
+#: cp/parser.cc:33165
 #, fuzzy, gcc-internal-format
 msgid "template declaration of %<typedef%>"
 msgstr "模板宣告的 %<typedef%>"
 
-#: cp/parser.cc:33214
+#: cp/parser.cc:33216
 #, fuzzy, gcc-internal-format
 #| msgid "declaration does not declare anything"
 msgid "a class template declaration must not declare anything else"
 msgstr "沒有宣告任何東西"
 
-#: cp/parser.cc:33266
+#: cp/parser.cc:33268
 #, fuzzy, gcc-internal-format
 msgid "explicit template specialization cannot have a storage class"
 msgstr "明確的模板特殊化無法有貯藏類別"
 
-#: cp/parser.cc:33583
+#: cp/parser.cc:33585
 #, fuzzy, gcc-internal-format
 msgid "%<>>%> should be %<> >%> within a nested template argument list"
 msgstr "%<>>%>應該是 %<>>%>在之內巢狀的模板引數清單"
 
-#: cp/parser.cc:33596
+#: cp/parser.cc:33598
 #, gcc-internal-format
 msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgstr "可疑的 %<>>%>，使用 %<>%> 來結束範本引數清單"
 
-#: cp/parser.cc:33627
+#: cp/parser.cc:33629
 #, fuzzy, gcc-internal-format
 #| msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
 msgid "%qs should be %qs to terminate a template argument list"
 msgstr "可疑的 %<>>%>，使用 %<>%> 來結束範本引數清單"
 
-#: cp/parser.cc:33944
+#: cp/parser.cc:33946
 #, gcc-internal-format
 msgid "%<sizeof...%> argument must be surrounded by parentheses"
 msgstr ""
 
-#: cp/parser.cc:34121
+#: cp/parser.cc:34123
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qD in linkage specification"
 msgstr "無效的使用的 %qD 在中連繫規格"
 
-#: cp/parser.cc:34132
+#: cp/parser.cc:34134
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD specifier"
 msgstr "重製 virt-specifier"
 
-#: cp/parser.cc:34135
+#: cp/parser.cc:34137
 #, fuzzy, gcc-internal-format
 msgid "%qD specifier conflicts with %qs"
 msgstr "%+D 造成區段型態衝突與 %D"
 
-#: cp/parser.cc:34147
+#: cp/parser.cc:34149
 #, fuzzy, gcc-internal-format
 msgid "%<__thread%> before %qD"
 msgstr "%<__thread%>之前 %qD"
 
-#: cp/parser.cc:34163
+#: cp/parser.cc:34165
 #, fuzzy, gcc-internal-format
 #| msgid "%<__thread%> used with %<typedef%>"
 msgid "%qD specifier conflicts with %<typedef%>"
 msgstr "%<__thread%> 與 %<typedef%> 一起使用"
 
-#: cp/parser.cc:34272
+#: cp/parser.cc:34274
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ 1998 does not support %<long long%>"
 msgstr "ISO C++1998 不支援 %<long long%>"
 
-#: cp/parser.cc:34283
+#: cp/parser.cc:34285
 #, fuzzy, gcc-internal-format
 msgid "both %<__thread%> and %<thread_local%> specified"
 msgstr "宣告中同時使用了 %<short%> 和 %<char%>"
 
-#: cp/parser.cc:34288
+#: cp/parser.cc:34290
 #, fuzzy, gcc-internal-format
 msgid "duplicate %qD"
 msgstr "重複的 %qE"
 
-#: cp/parser.cc:34317
+#: cp/parser.cc:34319
 #, gcc-internal-format
 msgid "duplicate %qs"
 msgstr "重複的 %qs"
 
-#: cp/parser.cc:34369
+#: cp/parser.cc:34371
 #, fuzzy, gcc-internal-format
 msgid "expected %<new%>"
 msgstr "預期 %<new%>"
 
-#: cp/parser.cc:34372
+#: cp/parser.cc:34374
 #, fuzzy, gcc-internal-format
 msgid "expected %<delete%>"
 msgstr "預期 %<delete%>"
 
-#: cp/parser.cc:34375
+#: cp/parser.cc:34377
 #, fuzzy, gcc-internal-format
 msgid "expected %<return%>"
 msgstr "預期 %<return%>"
 
-#: cp/parser.cc:34381
+#: cp/parser.cc:34383
 #, fuzzy, gcc-internal-format
 msgid "expected %<extern%>"
 msgstr "預期 %<extern%>"
 
-#: cp/parser.cc:34384
+#: cp/parser.cc:34386
 #, fuzzy, gcc-internal-format
 msgid "expected %<static_assert%>"
 msgstr "預期 %<static_assert%>"
 
-#: cp/parser.cc:34387
+#: cp/parser.cc:34389
 #, fuzzy, gcc-internal-format
 msgid "expected %<decltype%>"
 msgstr "預期 %<decltype%>"
 
-#: cp/parser.cc:34390
+#: cp/parser.cc:34392
 #, fuzzy, gcc-internal-format
 msgid "expected %<operator%>"
 msgstr "預期 %<operator%>"
 
-#: cp/parser.cc:34393
+#: cp/parser.cc:34395
 #, fuzzy, gcc-internal-format
 msgid "expected %<class%>"
 msgstr "預期 %<class%>"
 
-#: cp/parser.cc:34396
+#: cp/parser.cc:34398
 #, fuzzy, gcc-internal-format
 msgid "expected %<template%>"
 msgstr "預期 %<template%>"
 
-#: cp/parser.cc:34399
+#: cp/parser.cc:34401
 #, fuzzy, gcc-internal-format
 msgid "expected %<namespace%>"
 msgstr "預期 %<namespace%>"
 
-#: cp/parser.cc:34402
+#: cp/parser.cc:34404
 #, fuzzy, gcc-internal-format
 msgid "expected %<using%>"
 msgstr "預期 %<using%>"
 
-#: cp/parser.cc:34405
+#: cp/parser.cc:34407
 #, fuzzy, gcc-internal-format
 msgid "expected %<asm%>"
 msgstr "預期 %<asm%>"
 
-#: cp/parser.cc:34408
+#: cp/parser.cc:34410
 #, fuzzy, gcc-internal-format
 msgid "expected %<try%>"
 msgstr "預期 %<try%>"
 
-#: cp/parser.cc:34411
+#: cp/parser.cc:34413
 #, fuzzy, gcc-internal-format
 msgid "expected %<catch%>"
 msgstr "預期 %<catch%>"
 
-#: cp/parser.cc:34414
+#: cp/parser.cc:34416
 #, fuzzy, gcc-internal-format
 msgid "expected %<throw%>"
 msgstr "預期 %<throw%>"
 
-#: cp/parser.cc:34417
+#: cp/parser.cc:34419
 #, fuzzy, gcc-internal-format
 msgid "expected %<auto%>"
 msgstr "預期 %<catch%>"
 
-#: cp/parser.cc:34420
+#: cp/parser.cc:34422
 #, fuzzy, gcc-internal-format
 msgid "expected %<__label__%>"
 msgstr "預期 %<__label__%>"
 
-#: cp/parser.cc:34423
+#: cp/parser.cc:34425
 #, fuzzy, gcc-internal-format
 msgid "expected %<@try%>"
 msgstr "預期 %<@try%>"
 
-#: cp/parser.cc:34426
+#: cp/parser.cc:34428
 #, fuzzy, gcc-internal-format
 msgid "expected %<@synchronized%>"
 msgstr "預期 %<@synchronized%>"
 
-#: cp/parser.cc:34429
+#: cp/parser.cc:34431
 #, fuzzy, gcc-internal-format
 msgid "expected %<@throw%>"
 msgstr "預期 %<@throw%>"
 
-#: cp/parser.cc:34432
+#: cp/parser.cc:34434
 #, fuzzy, gcc-internal-format
 msgid "expected %<__transaction_atomic%>"
 msgstr "預期 %<__transaction_atomic%>"
 
-#: cp/parser.cc:34435
+#: cp/parser.cc:34437
 #, fuzzy, gcc-internal-format
 msgid "expected %<__transaction_relaxed%>"
 msgstr "預期 %<__transaction_relaxed%>"
 
-#: cp/parser.cc:34438
+#: cp/parser.cc:34440
 #, fuzzy, gcc-internal-format
 msgid "expected %<co_yield%>"
 msgstr "預期 %<@end%>"
 
-#: cp/parser.cc:34470
+#: cp/parser.cc:34472
 #, fuzzy, gcc-internal-format
 msgid "expected %<::%>"
 msgstr "預期 %<::%>"
 
-#: cp/parser.cc:34482
+#: cp/parser.cc:34484
 #, fuzzy, gcc-internal-format
 msgid "expected %<...%>"
 msgstr "預期 %<...%>"
 
-#: cp/parser.cc:34485
+#: cp/parser.cc:34487
 #, fuzzy, gcc-internal-format
 msgid "expected %<*%>"
 msgstr "預期 %<*%>"
 
-#: cp/parser.cc:34488
+#: cp/parser.cc:34490
 #, fuzzy, gcc-internal-format
 msgid "expected %<~%>"
 msgstr "預期 %<~%>"
 
-#: cp/parser.cc:34494
+#: cp/parser.cc:34496
 #, fuzzy, gcc-internal-format
 msgid "expected %<:%> or %<::%>"
 msgstr "預期 %<:%>或 %<::%>"
 
-#: cp/parser.cc:34521
+#: cp/parser.cc:34523
 #, fuzzy, gcc-internal-format
 msgid "expected %<class%>, %<typename%>, or %<template%>"
 msgstr "預期 %<class%>，%<typename%>，或 %<template%>"
 
-#: cp/parser.cc:34856
+#: cp/parser.cc:34858
 #, gcc-internal-format
 msgid "redundant enum-key %<enum%s%> in reference to %q#T"
 msgstr ""
 
-#: cp/parser.cc:35007
+#: cp/parser.cc:35009
 #, gcc-internal-format
 msgid "%qs tag used in naming %q#T"
 msgstr "使用了 %qs 標記，在命名 %q#T 時"
 
-#: cp/parser.cc:35012
+#: cp/parser.cc:35014
 #, fuzzy, gcc-internal-format
 msgid "%q#T was previously declared here"
 msgstr "%q#T 是在之前宣告的在此"
 
-#: cp/parser.cc:35133
+#: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
 #| msgid "cannot declare reference to %q#T"
 msgid "redundant class-key %qs in reference to %q#T"
 msgstr "無法宣告對 %q#T 的參照"
 
-#: cp/parser.cc:35291 cp/parser.cc:35325
+#: cp/parser.cc:35293 cp/parser.cc:35327
 #, fuzzy, gcc-internal-format
 msgid "%qT declared with a mismatched class-key %qs"
 msgstr "%qT 宣告的與更大可視性比它的基底 %qT"
 
-#: cp/parser.cc:35298 cp/parser.cc:35331
+#: cp/parser.cc:35300 cp/parser.cc:35333
 #, gcc-internal-format
 msgid "remove the class-key or replace it with %qs"
 msgstr ""
 
-#: cp/parser.cc:35299 cp/parser.cc:35332
+#: cp/parser.cc:35301 cp/parser.cc:35334
 #, fuzzy, gcc-internal-format
 msgid "replace the class-key with %qs"
 msgstr "預期 class-key"
 
-#: cp/parser.cc:35306
+#: cp/parser.cc:35308
 #, fuzzy, gcc-internal-format
 msgid "%qT defined as %qs here"
 msgstr "標貼 %qD 定義的在此"
 
-#: cp/parser.cc:35307
+#: cp/parser.cc:35309
 #, fuzzy, gcc-internal-format
 msgid "%qT first declared as %qs here"
 msgstr "%qD 宣告的在此"
 
-#: cp/parser.cc:35390
+#: cp/parser.cc:35392
 #, gcc-internal-format
 msgid "%qD redeclared with different access"
 msgstr "%qD 重宣告時有不同的可存取性"
 
-#: cp/parser.cc:35411
+#: cp/parser.cc:35413
 #, fuzzy, gcc-internal-format
 msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
 msgstr "做為消歧義的 %<template%> 只能用於範本內"
 
-#: cp/parser.cc:35661
+#: cp/parser.cc:35663
 #, gcc-internal-format
 msgid "file ends in default argument"
 msgstr "檔案在預設參數處結束"
 
-#: cp/parser.cc:35902 cp/parser.cc:37210 cp/parser.cc:37399
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
 #, gcc-internal-format
 msgid "misplaced %<@%D%> Objective-C++ construct"
 msgstr "位置錯誤的 %<@%D%> Objective-C++ 建構"
 
-#: cp/parser.cc:35973
+#: cp/parser.cc:35975
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ message receiver expected"
 msgstr "objective-c++ 訊息引數被預期"
 
-#: cp/parser.cc:36043
+#: cp/parser.cc:36045
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ message argument(s) are expected"
 msgstr "objective-c++ 訊息引數被預期"
 
-#: cp/parser.cc:36074
+#: cp/parser.cc:36076
 #, gcc-internal-format
 msgid "%<@encode%> must specify a type as an argument"
 msgstr "%<@encode%> 必須指定一個類型做為引數"
 
-#: cp/parser.cc:36478
+#: cp/parser.cc:36480
 #, gcc-internal-format
 msgid "invalid Objective-C++ selector name"
 msgstr "無效的 Objective-C++ 選擇子名"
 
-#: cp/parser.cc:36553 cp/parser.cc:36571
+#: cp/parser.cc:36555 cp/parser.cc:36573
 #, fuzzy, gcc-internal-format
 msgid "objective-c++ method declaration is expected"
 msgstr "objective-c++ 方法宣告被預期"
 
-#: cp/parser.cc:36565 cp/parser.cc:36631
+#: cp/parser.cc:36567 cp/parser.cc:36633
 #, fuzzy, gcc-internal-format
 msgid "method attributes must be specified at the end"
 msgstr "方法屬性必須被指定的於結束"
 
-#: cp/parser.cc:36674
+#: cp/parser.cc:36676
 #, fuzzy, gcc-internal-format
 msgid "stray %qs between Objective-C++ methods"
 msgstr "零星的 %qs 介於 Objective-C++ 方法"
 
-#: cp/parser.cc:36871 cp/parser.cc:36878 cp/parser.cc:36885
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
 #, fuzzy, gcc-internal-format
 msgid "invalid type for instance variable"
 msgstr "無效的型態舉例來說變數"
 
-#: cp/parser.cc:37002
+#: cp/parser.cc:37004
 #, gcc-internal-format
 msgid "identifier expected after %<@protocol%>"
 msgstr "%<@protocol%> 需要識別碼"
 
-#: cp/parser.cc:37175
+#: cp/parser.cc:37177
 #, fuzzy, gcc-internal-format
 msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
 msgstr "屬性可能無法被指定的之前 %<@%D%>Objective-C++ 關鍵字"
 
-#: cp/parser.cc:37182
+#: cp/parser.cc:37184
 #, fuzzy, gcc-internal-format
 msgid "prefix attributes are ignored before %<@%D%>"
 msgstr "前綴屬性被忽略之前 %<@%D%>"
 
-#: cp/parser.cc:37462 cp/parser.cc:37469 cp/parser.cc:37476
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
 #, fuzzy, gcc-internal-format
 msgid "invalid type for property"
 msgstr "無效的型態用於內容"
 
-#: cp/parser.cc:37638
+#: cp/parser.cc:37640
 #, fuzzy, gcc-internal-format
 msgid "unknown property attribute %qE"
 msgstr "不明內容屬性"
 
-#: cp/parser.cc:38910
+#: cp/parser.cc:38912
 #, fuzzy, gcc-internal-format
 msgid "expected integer expression list"
 msgstr "預期的整數運算式"
 
-#: cp/parser.cc:38927
+#: cp/parser.cc:38929
 #, fuzzy, gcc-internal-format
 msgid "%<wait%> expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/parser.cc:39683
+#: cp/parser.cc:39685
 #, fuzzy, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
 msgstr "預期 %<class%>，%<typename%>，或 %<template%>"
 
-#: cp/parser.cc:40074
+#: cp/parser.cc:40076
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid reduction-identifier"
 msgstr "無效的初始值設定"
 
-#: cp/parser.cc:41043
+#: cp/parser.cc:41045
 #, fuzzy, gcc-internal-format
 msgid "types may not be defined in iterator type"
 msgstr "類型可能無法被定義在中參數類型"
@@ -65375,13 +65413,13 @@ msgstr "類型可能無法被定義在中參數類型"
 #. check above and add one in semantics.cc (to properly handle templates).
 #. Base this on the allocator/align modifiers check for the 'allocate' clause
 #. in semantics.cc's finish_omp_clauses.
-#: cp/parser.cc:42671
+#: cp/parser.cc:42673
 #, fuzzy, gcc-internal-format
 #| msgid "#pragma vtable no longer supported"
 msgid "%<#pragma omp allocate%> not yet supported"
 msgstr "#pragma vtable 不再受支援"
 
-#: cp/parser.cc:44122
+#: cp/parser.cc:44124
 #, fuzzy, gcc-internal-format
 msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
 msgstr "parenthesized 初始化未被允許在中 OpenMP %<for%> 迴圈"
@@ -65391,138 +65429,138 @@ msgstr "parenthesized 初始化未被允許在中 OpenMP %<for%> 迴圈"
 msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
 msgstr ""
 
-#: cp/parser.cc:44944 cp/pt.cc:18150
+#: cp/parser.cc:44944 cp/pt.cc:18191
 #, fuzzy, gcc-internal-format
 msgid "iteration variable %qD should not be reduction"
 msgstr "迭代變數 %qD 不應為消除"
 
-#: cp/parser.cc:47843
+#: cp/parser.cc:47841
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
 msgstr "%<# pragma GCC pop_options%>而無需相應 %<# pragma GCC push_options%>"
 
-#: cp/parser.cc:48613
+#: cp/parser.cc:48611
 #, gcc-internal-format
 msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
 msgstr ""
 
-#: cp/parser.cc:49220
+#: cp/parser.cc:49218
 #, fuzzy, gcc-internal-format
 #| msgid "invalid initializer"
 msgid "invalid initializer clause"
 msgstr "無效的初始值設定"
 
-#: cp/parser.cc:49251
+#: cp/parser.cc:49249
 #, fuzzy, gcc-internal-format
 msgid "expected id-expression (arguments)"
 msgstr "預期 id-expression"
 
-#: cp/parser.cc:49263
+#: cp/parser.cc:49261
 #, gcc-internal-format
 msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
 msgstr ""
 
-#: cp/parser.cc:49366
+#: cp/parser.cc:49364
 #, fuzzy, gcc-internal-format
 #| msgid "new types may not be defined in a return type"
 msgid "types may not be defined in declare reduction type list"
 msgstr "不能在回傳類型中定義新類型"
 
-#: cp/parser.cc:49386 cp/semantics.cc:6446
+#: cp/parser.cc:49384 cp/semantics.cc:6444
 #, gcc-internal-format
 msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49390 cp/semantics.cc:6454
+#: cp/parser.cc:49388 cp/semantics.cc:6452
 #, gcc-internal-format
 msgid "function or array type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49393 cp/pt.cc:14635 cp/semantics.cc:6460
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
 #, gcc-internal-format
 msgid "reference type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:49396 cp/semantics.cc:6466
+#: cp/parser.cc:49394 cp/semantics.cc:6464
 #, gcc-internal-format
 msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
 msgstr ""
 
-#: cp/parser.cc:50116
+#: cp/parser.cc:50114
 #, gcc-internal-format
 msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
-#: cp/parser.cc:50126
+#: cp/parser.cc:50124
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member template function"
 msgid "%qD does not refer to a namespace scope function"
 msgstr "%qD 不是一個成員範本函式"
 
 #. cancel-and-throw is unimplemented.
-#: cp/parser.cc:50487
+#: cp/parser.cc:50485
 #, gcc-internal-format
 msgid "%<atomic_cancel%>"
 msgstr ""
 
-#: cp/parser.cc:50534 cp/semantics.cc:11478
+#: cp/parser.cc:50532 cp/semantics.cc:11476
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_relaxed%> without transactional memory support enabled"
 msgstr "%<__transaction_relaxed%>而無需 transactional 記憶體支援已啟用"
 
-#: cp/parser.cc:50536 cp/semantics.cc:11480
+#: cp/parser.cc:50534 cp/semantics.cc:11478
 #, fuzzy, gcc-internal-format
 msgid "%<__transaction_atomic%> without transactional memory support enabled"
 msgstr "%<__transaction_atomic%>而無需 transactional 記憶體支援已啟用"
 
-#: cp/parser.cc:50682
+#: cp/parser.cc:50680
 #, fuzzy, gcc-internal-format
 msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
 msgstr "外 %<__transaction_cancel%>無法在之內外 %<__transaction_atomic%>"
 
-#: cp/parser.cc:50685
+#: cp/parser.cc:50683
 #, fuzzy, gcc-internal-format
 msgid "  or a %<transaction_may_cancel_outer%> function"
 msgstr "  或 %<transaction_may_cancel_outer%> 函式"
 
-#: cp/parser.cc:50732
+#: cp/parser.cc:50730
 #, fuzzy, gcc-internal-format
 msgid "malformed %<#pragma GCC pch_preprocess%>"
 msgstr "異常的 # pragma GCC 輔助處理器"
 
-#: cp/parser.cc:51032
+#: cp/parser.cc:51030
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
 msgstr "%<# pragma omp taskyield%>也許會只有被已用於複合陳述"
 
-#: cp/parser.cc:51043
+#: cp/parser.cc:51041
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<# pragma omp taskyield%>也許會只有被已用於複合陳述"
 
-#: cp/parser.cc:51120
+#: cp/parser.cc:51118
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
 msgstr "# pragma GCC 最佳化未被允許內部函式"
 
-#: cp/parser.cc:51262
+#: cp/parser.cc:51260
 #, fuzzy, gcc-internal-format
 #| msgid "inter-module optimizations not implemented for C++"
 msgid "multi-source compilation not implemented for C++"
 msgstr "模組間最佳化淍未為 C++ 實作"
 
-#: cp/parser.cc:51299
+#: cp/parser.cc:51297
 #, fuzzy, gcc-internal-format
 #| msgid "standard conversions are not allowed in this context"
 msgid "placeholder type not allowed in this context"
 msgstr "此上下文中不允許標準轉換"
 
-#: cp/parser.cc:51508
+#: cp/parser.cc:51506
 #, fuzzy, gcc-internal-format
 msgid "implicit templates may not be %<virtual%>"
 msgstr "模板可能無法是 %<virtual%>"
 
-#: cp/parser.cc:51564
+#: cp/parser.cc:51562
 #, gcc-internal-format
 msgid "%<extern \"C\"%> linkage started here"
 msgstr ""
@@ -65552,7 +65590,7 @@ msgstr "所包含的類別範本並未被明確特例化"
 msgid "specialization of %qD must appear at namespace scope"
 msgstr "特殊化的 %qD 必須出現於命名空間範圍"
 
-#: cp/pt.cc:889 cp/pt.cc:1129
+#: cp/pt.cc:889 cp/pt.cc:1130
 #, gcc-internal-format
 msgid "specialization of %qD in different namespace"
 msgstr "在不同命名空間內對 %qD 的特例化"
@@ -65568,27 +65606,27 @@ msgstr "  從 %q+#D 的定義"
 msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgstr "%qD 的明確實體化出現在命名空間 %qD 中，而後者並不包含命名空間 %qD"
 
-#: cp/pt.cc:1041
+#: cp/pt.cc:1042
 #, fuzzy, gcc-internal-format
 msgid "name of class shadows template template parameter %qD"
 msgstr "名稱的類別陰影模板模板參數 %qD"
 
-#: cp/pt.cc:1053
+#: cp/pt.cc:1054
 #, fuzzy, gcc-internal-format
 msgid "specialization of alias template %qD"
 msgstr "局部特化的別名模板 %qD"
 
-#: cp/pt.cc:1056 cp/pt.cc:1195
+#: cp/pt.cc:1057 cp/pt.cc:1196
 #, gcc-internal-format
 msgid "explicit specialization of non-template %qT"
 msgstr "明確特例化非範本 %qT"
 
-#: cp/pt.cc:1088
+#: cp/pt.cc:1089
 #, gcc-internal-format
 msgid "specialization of %qT after instantiation"
 msgstr "%qT 的實體化在特例化之後"
 
-#: cp/pt.cc:1132
+#: cp/pt.cc:1133
 #, fuzzy, gcc-internal-format
 #| msgid "  from definition of %q+#D"
 msgid "from definition of %q#D"
@@ -65596,150 +65634,150 @@ msgstr "  從 %q+#D 的定義"
 
 #. But if we've had an implicit instantiation, that's a
 #. problem ([temp.expl.spec]/6).
-#: cp/pt.cc:1173
+#: cp/pt.cc:1174
 #, gcc-internal-format
 msgid "specialization %qT after instantiation %qT"
 msgstr "%qT 的實體化在 %qT 的特例化之後"
 
-#: cp/pt.cc:1191
+#: cp/pt.cc:1192
 #, fuzzy, gcc-internal-format
 msgid "template specialization of %qD not allowed by ISO C++"
 msgstr "模板特殊化的 %qD 不允許由 ISO C++"
 
-#: cp/pt.cc:1568
+#: cp/pt.cc:1569
 #, gcc-internal-format
 msgid "specialization of %qD after instantiation"
 msgstr "%qD 的特例化在實體化之後"
 
-#: cp/pt.cc:2046 cp/semantics.cc:6316
+#: cp/pt.cc:2047 cp/semantics.cc:6314
 #, fuzzy, gcc-internal-format
 msgid "%s %#qD"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:2182
+#: cp/pt.cc:2183
 #, gcc-internal-format
 msgid "%qD is not a function template"
 msgstr "%qD 不是一個函式範本"
 
-#: cp/pt.cc:2187
+#: cp/pt.cc:2188
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable template"
 msgstr "%qD 並非變數"
 
-#: cp/pt.cc:2470
+#: cp/pt.cc:2471
 #, gcc-internal-format
 msgid "template-id %qD for %q+D does not match any template declaration"
 msgstr "範本識別碼 %qD(屬於 %q+D)不匹配任何範本宣告"
 
-#: cp/pt.cc:2474
+#: cp/pt.cc:2475
 #, fuzzy, gcc-internal-format
 msgid "saw %d %<template<>%>, need %d for specializing a member function template"
 msgstr "發現 %d %<template<>%>，需要 %d 用於專用化成員函式模板"
 
-#: cp/pt.cc:2484
+#: cp/pt.cc:2485
 #, gcc-internal-format
 msgid "ambiguous template specialization %qD for %q+D"
 msgstr "有歧義的範本特例化 %qD (為 %q+D)"
 
-#: cp/pt.cc:2688
+#: cp/pt.cc:2689
 #, fuzzy, gcc-internal-format
 msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "variadic 模板只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/pt.cc:2698
+#: cp/pt.cc:2699
 #, fuzzy, gcc-internal-format
 msgid "too many template headers for %qD (should be %d)"
 msgstr "範本參數數目不正確(不應是 %d 個而應是 %d 個)"
 
-#: cp/pt.cc:2704
+#: cp/pt.cc:2705
 #, gcc-internal-format
 msgid "members of an explicitly specialized class are defined without a template header"
 msgstr ""
 
-#: cp/pt.cc:2728
+#: cp/pt.cc:2729
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
 msgstr "在初次使用後明確特例化 %qD"
 
 #. This was allowed in C++98, so only pedwarn.
-#: cp/pt.cc:2733
+#: cp/pt.cc:2734
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
 msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
 msgstr "%qD 的明確實體化出現在命名空間 %qD 中，而後者並不包含命名空間 %qD"
 
-#: cp/pt.cc:2769
+#: cp/pt.cc:2770
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "explicit specialization %q#D may be missing attributes"
 msgstr "在初次使用後明確特例化 %qD"
 
-#: cp/pt.cc:2773
+#: cp/pt.cc:2774
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attributes %s"
 msgstr "在之前宣告的在此"
 
-#: cp/pt.cc:2774
+#: cp/pt.cc:2775
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "missing primary template attribute %s"
 msgstr "在之前宣告的在此"
 
-#: cp/pt.cc:2866 cp/pt.cc:2926
+#: cp/pt.cc:2867 cp/pt.cc:2927
 #, fuzzy, gcc-internal-format
 #| msgid "template-id %qD in declaration of primary template"
 msgid "template-id %qE in declaration of primary template"
 msgstr "範本識別碼 %qD 出現在基本範本的宣告中"
 
-#: cp/pt.cc:2879
+#: cp/pt.cc:2880
 #, gcc-internal-format
 msgid "template parameter list used in explicit instantiation"
 msgstr "明確初始化中出現了範本參數清單"
 
-#: cp/pt.cc:2885
+#: cp/pt.cc:2886
 #, gcc-internal-format
 msgid "definition provided for explicit instantiation"
 msgstr "為明確實體化提供的定義"
 
-#: cp/pt.cc:2893
+#: cp/pt.cc:2894
 #, gcc-internal-format
 msgid "too many template parameter lists in declaration of %qD"
 msgstr "%qD 宣告時範本參數表太多"
 
-#: cp/pt.cc:2896
+#: cp/pt.cc:2897
 #, gcc-internal-format
 msgid "too few template parameter lists in declaration of %qD"
 msgstr "%qD 宣告時範本參數表太少"
 
-#: cp/pt.cc:2898
+#: cp/pt.cc:2899
 #, gcc-internal-format
 msgid "explicit specialization of %qD must be introduced by %<template <>%>"
 msgstr "%qD 的明確特例化必須由 %<template <>%> 引入"
 
-#: cp/pt.cc:2904
+#: cp/pt.cc:2905
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization declared %<concept%>"
 msgstr "明確特例化非範本 %qT"
 
-#: cp/pt.cc:2937
+#: cp/pt.cc:2938
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "non-type partial specialization %qE is not allowed"
 msgstr "函式範本部分特例化 %qD 是不允許的"
 
-#: cp/pt.cc:2941
+#: cp/pt.cc:2942
 #, fuzzy, gcc-internal-format
 #| msgid "function template partial specialization %qD is not allowed"
 msgid "non-class, non-variable partial specialization %qE is not allowed"
 msgstr "函式範本部分特例化 %qD 是不允許的"
 
-#: cp/pt.cc:2973
+#: cp/pt.cc:2974
 #, gcc-internal-format
 msgid "default argument specified in explicit specialization"
 msgstr "明確特例化時指定了預設參數"
 
-#: cp/pt.cc:3016
+#: cp/pt.cc:3017
 #, gcc-internal-format
 msgid "%qD is not a template function"
 msgstr "%qD 不是一個範本函式"
@@ -65752,163 +65790,163 @@ msgstr "%qD 不是一個範本函式"
 #. program is ill-formed.
 #.
 #. Similar language is found in [temp.explicit].
-#: cp/pt.cc:3078
+#: cp/pt.cc:3079
 #, gcc-internal-format
 msgid "specialization of implicitly-declared special member function"
 msgstr "特例化了隱含宣告的特殊成員函式"
 
-#: cp/pt.cc:3094
+#: cp/pt.cc:3095
 #, gcc-internal-format
 msgid "no member function %qD declared in %qT"
 msgstr "成員函式 %qD 未在 %qT 中宣告"
 
-#: cp/pt.cc:3125
+#: cp/pt.cc:3126
 #, fuzzy, gcc-internal-format
 msgid "friend declaration %qD is not visible to explicit specialization"
 msgstr "朋友宣告 %qD 在中區域類別而無需事前宣告"
 
-#: cp/pt.cc:3128
+#: cp/pt.cc:3129
 #, fuzzy, gcc-internal-format
 msgid "friend declaration here"
 msgstr "與此處早先的宣告 %q+#D 衝突"
 
-#: cp/pt.cc:3239
+#: cp/pt.cc:3240
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of non-template %qT"
 msgid "explicit specialization of function concept %qD"
 msgstr "明確特例化非範本 %qT"
 
-#: cp/pt.cc:3817
+#: cp/pt.cc:3818
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ACOS at %L must be between -1 and 1"
 msgid "argument to %<__integer_pack%> must be between 0 and %d"
 msgstr "%L 處 ACOS 的參數必須在 -1 和 1 之間"
 
-#: cp/pt.cc:4190
+#: cp/pt.cc:4191
 #, fuzzy, gcc-internal-format
 msgid "base initializer expansion %qT contains no parameter packs"
 msgstr "基底初始設定式擴展 %<%T%>不含任何參數包裝"
 
-#: cp/pt.cc:4258
+#: cp/pt.cc:4259
 #, fuzzy, gcc-internal-format
 msgid "expansion pattern %qT contains no parameter packs"
 msgstr "擴展胚騰 %<%T%>不含任何引數包裝"
 
-#: cp/pt.cc:4260
+#: cp/pt.cc:4261
 #, fuzzy, gcc-internal-format
 msgid "expansion pattern %qE contains no parameter packs"
 msgstr "擴展胚騰 %<%E%>不含任何引數包裝"
 
-#: cp/pt.cc:4344
+#: cp/pt.cc:4345
 #, fuzzy, gcc-internal-format
 msgid "parameter packs not expanded with %<...%>:"
 msgstr "參數包裝無法展開的與 %<...%>："
 
-#: cp/pt.cc:4361 cp/pt.cc:5242
+#: cp/pt.cc:4362 cp/pt.cc:5243
 #, gcc-internal-format
 msgid "        %qD"
 msgstr "        %qD"
 
-#: cp/pt.cc:4363
+#: cp/pt.cc:4364
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "        %s"
 msgstr "          %s"
 
-#: cp/pt.cc:4489
+#: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of template parameter %q+D shadows template parameter"
 msgstr "%q+D 的宣告隱藏了一個參數"
 
-#: cp/pt.cc:4492
+#: cp/pt.cc:4493
 #, fuzzy, gcc-internal-format
 #| msgid "declaration of %q+D shadows a parameter"
 msgid "declaration of %q+#D shadows template parameter"
 msgstr "%q+D 的宣告隱藏了一個參數"
 
-#: cp/pt.cc:4494
+#: cp/pt.cc:4495
 #, fuzzy, gcc-internal-format
 #| msgid "template parameter type %qT declared %<friend%>"
 msgid "template parameter %qD declared here"
 msgstr "範本參數類型 %qT 宣告為 %<friend%>"
 
-#: cp/pt.cc:5178
+#: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
 msgid "specialization of variable concept %q#D"
 msgstr "局部特化的別名模板 %qD"
 
-#: cp/pt.cc:5237
+#: cp/pt.cc:5238
 #, fuzzy, gcc-internal-format
 #| msgid "template parameters not used in partial specialization:"
 msgid "template parameters not deducible in partial specialization:"
 msgstr "部分特例化中未用到範本參數："
 
-#: cp/pt.cc:5260
+#: cp/pt.cc:5261
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
 msgstr "部分特例化 %qT 並未特例化任何範本參數"
 
-#: cp/pt.cc:5264
+#: cp/pt.cc:5265
 #, gcc-internal-format
 msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
 msgstr ""
 
-#: cp/pt.cc:5268 cp/pt.cc:5279 cp/pt.cc:5287
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
 #, fuzzy, gcc-internal-format
 msgid "primary template here"
 msgstr "在之前宣告的在此"
 
-#: cp/pt.cc:5276
+#: cp/pt.cc:5277
 #, gcc-internal-format
 msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
 msgstr ""
 
-#: cp/pt.cc:5286
+#: cp/pt.cc:5287
 #, fuzzy, gcc-internal-format
 #| msgid "too many arguments to function %qE"
 msgid "too many arguments for partial specialization %qT"
 msgstr "提供給函式 %qE 的引數太多"
 
-#: cp/pt.cc:5301
+#: cp/pt.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "partial specialization %qT does not specialize any template arguments"
 msgid "partial specialization %qD is not more specialized than"
 msgstr "部分特例化 %qT 並未特例化任何範本參數"
 
-#: cp/pt.cc:5303
+#: cp/pt.cc:5304
 #, fuzzy, gcc-internal-format
 msgid "primary template %qD"
 msgstr "在之前宣告的在此"
 
-#: cp/pt.cc:5345
+#: cp/pt.cc:5346
 #, fuzzy, gcc-internal-format
 msgid "parameter pack argument %qE must be at the end of the template argument list"
 msgstr "參數包裝引數 %qE 必須是於結束的模板引數清單"
 
-#: cp/pt.cc:5348
+#: cp/pt.cc:5349
 #, fuzzy, gcc-internal-format
 msgid "parameter pack argument %qT must be at the end of the template argument list"
 msgstr "參數包裝引數 %qT 必須是於結束的模板引數清單"
 
-#: cp/pt.cc:5410
+#: cp/pt.cc:5411
 #, fuzzy, gcc-internal-format
 msgid "type %qT of template argument %qE depends on a template parameter"
 msgid_plural "type %qT of template argument %qE depends on template parameters"
 msgstr[0] "型態 %qT 的模板引數 %qE 依存於模板參數"
 
-#: cp/pt.cc:5478
+#: cp/pt.cc:5479
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
 msgstr "%q#T 的類別範本實體化有歧義"
 
-#: cp/pt.cc:5482
+#: cp/pt.cc:5483
 #, fuzzy, gcc-internal-format
 msgid "partial specialization of %qD after instantiation of %qD"
 msgstr "局部特化的 %qT 之後實體化的 %qT"
 
-#: cp/pt.cc:5665
+#: cp/pt.cc:5666
 #, gcc-internal-format
 msgid "no default argument for %qD"
 msgstr "%qD 沒有預設參數"
@@ -65917,48 +65955,48 @@ msgstr "%qD 沒有預設參數"
 #. (DR 2032), or alias template can only have one
 #. parameter pack, at the end of the template
 #. parameter list.
-#: cp/pt.cc:5688
+#: cp/pt.cc:5689
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %q+D must be at the end of the template parameter list"
 msgstr "參數包裝 %qE 必須是於結束的模板參數清單"
 
-#: cp/pt.cc:5724
+#: cp/pt.cc:5725
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in function template friend re-declaration"
 msgstr "預設模板引數可能無法被已用於函式模板朋友重新宣告"
 
-#: cp/pt.cc:5727
+#: cp/pt.cc:5728
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in template friend declarations"
 msgstr "預設模板引數可能無法被已用於函式模板朋友宣告"
 
-#: cp/pt.cc:5730
+#: cp/pt.cc:5731
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
 msgstr "預設模板引數可能無法被已用於函式模板而無需 -std=c++11 或 -std=gnu++11"
 
-#: cp/pt.cc:5733
+#: cp/pt.cc:5734
 #, fuzzy, gcc-internal-format
 msgid "default template arguments may not be used in partial specializations"
 msgstr "預設模板引數可能無法被已用於局部特化"
 
-#: cp/pt.cc:5736 cp/pt.cc:5794
+#: cp/pt.cc:5737 cp/pt.cc:5795
 #, fuzzy, gcc-internal-format
 msgid "default argument for template parameter for class enclosing %qD"
 msgstr "預設引數用於模板參數用於類別封閉 %qD"
 
-#: cp/pt.cc:5905
+#: cp/pt.cc:5906
 #, fuzzy, gcc-internal-format
 #| msgid "parameter %qD declared void"
 msgid "template %qD declared"
 msgstr "參數 %qD 被宣告為 void"
 
-#: cp/pt.cc:5913
+#: cp/pt.cc:5914
 #, gcc-internal-format
 msgid "template class without a name"
 msgstr "範本類別沒具名字"
 
-#: cp/pt.cc:5921
+#: cp/pt.cc:5922
 #, fuzzy, gcc-internal-format
 msgid "member template %qD may not have virt-specifiers"
 msgstr "non-member 函式 %qD 無法有 cv-qualifier"
@@ -65968,514 +66006,514 @@ msgstr "non-member 函式 %qD 無法有 cv-qualifier"
 #. An allocation function can be a function
 #. template. ... Template allocation functions shall
 #. have two or more parameters.
-#: cp/pt.cc:5944
+#: cp/pt.cc:5945
 #, gcc-internal-format
 msgid "invalid template declaration of %qD"
 msgstr "%qD 範本宣告無效"
 
-#: cp/pt.cc:6096
+#: cp/pt.cc:6097
 #, gcc-internal-format
 msgid "template definition of non-template %q#D"
 msgstr "對非範本 %q#D 的範本定義"
 
-#: cp/pt.cc:6135
+#: cp/pt.cc:6136
 #, gcc-internal-format
 msgid "expected %d levels of template parms for %q#D, got %d"
 msgstr "需要 %d 級的 %q#D 範本參數，卻給出了 %d 級"
 
-#: cp/pt.cc:6149
+#: cp/pt.cc:6150
 #, gcc-internal-format
 msgid "got %d template parameters for %q#D"
 msgstr "得到 %d 個範本參數，為 %q#D"
 
-#: cp/pt.cc:6152
+#: cp/pt.cc:6153
 #, gcc-internal-format
 msgid "got %d template parameters for %q#T"
 msgstr "得到 %d 個範本參數，為 %q#T"
 
-#: cp/pt.cc:6154
+#: cp/pt.cc:6155
 #, gcc-internal-format, gfc-internal-format
 msgid "  but %d required"
 msgstr "  但實際需要 %d 個"
 
-#: cp/pt.cc:6175
+#: cp/pt.cc:6176
 #, fuzzy, gcc-internal-format
 msgid "template arguments to %qD do not match original template %qD"
 msgstr "模板引數到 %qD 不匹配原來的模板 %qD"
 
-#: cp/pt.cc:6178
+#: cp/pt.cc:6179
 #, fuzzy, gcc-internal-format
 msgid "use %<template<>%> for an explicit specialization"
 msgstr "使用模板<>用於明確的特殊化"
 
-#: cp/pt.cc:6200
+#: cp/pt.cc:6201
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD with different constraints"
 msgstr "重新宣告 %qD 不同在中 %<constexpr%>"
 
-#: cp/pt.cc:6345
+#: cp/pt.cc:6346
 #, gcc-internal-format
 msgid "%qT is not a template type"
 msgstr "%qT 不是一個範本類型"
 
-#: cp/pt.cc:6358
+#: cp/pt.cc:6359
 #, gcc-internal-format
 msgid "template specifiers not specified in declaration of %qD"
 msgstr "%qD 的宣告中沒有 template 限定"
 
-#: cp/pt.cc:6369
+#: cp/pt.cc:6370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "redeclared with %d template parameter"
 msgid_plural "redeclared with %d template parameters"
 msgstr[0] "redeclared 與 %d 模板參數"
 
-#: cp/pt.cc:6373
+#: cp/pt.cc:6374
 #, fuzzy, gcc-internal-format
 msgid "previous declaration %qD used %d template parameter"
 msgid_plural "previous declaration %qD used %d template parameters"
 msgstr[0] "前一個宣告 %q+D 使用 %d 模板參數"
 
-#: cp/pt.cc:6407
+#: cp/pt.cc:6408
 #, gcc-internal-format
 msgid "template parameter %q+#D"
 msgstr "範本參數 %q+#D"
 
-#: cp/pt.cc:6409
+#: cp/pt.cc:6410
 #, gcc-internal-format
 msgid "redeclared here as %q#D"
 msgstr "在這裡又被宣告為 %q#D"
 
-#: cp/pt.cc:6411
+#: cp/pt.cc:6412
 #, fuzzy, gcc-internal-format
 msgid "redeclared here"
 msgstr "宣告的在此"
 
-#: cp/pt.cc:6422
+#: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
 msgid "declaration of template parameter %q+#D with different constraints"
 msgstr "重新宣告 %qD 不同在中 %<constexpr%>"
 
-#: cp/pt.cc:6425 cp/pt.cc:6453
+#: cp/pt.cc:6426 cp/pt.cc:6454
 #, fuzzy, gcc-internal-format
 msgid "original declaration appeared here"
 msgstr "原來的定義出現的在此"
 
-#: cp/pt.cc:6450
+#: cp/pt.cc:6451
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %q#D with different constraints"
 msgstr "重新宣告 %qD 不同在中 %<constexpr%>"
 
-#: cp/pt.cc:6861 cp/pt.cc:6931
+#: cp/pt.cc:6872 cp/pt.cc:6942
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT"
 msgstr "%qE 並非有效模板引數用於型態 %qT"
 
-#: cp/pt.cc:6864
+#: cp/pt.cc:6875
 #, fuzzy, gcc-internal-format
 msgid "it must be the address of a function with external linkage"
 msgstr "它必須是位址的函式與外部連結"
 
-#: cp/pt.cc:6867
+#: cp/pt.cc:6878
 #, fuzzy, gcc-internal-format
 msgid "it must be the name of a function with external linkage"
 msgstr "它必須是位址的函式與外部連結"
 
-#: cp/pt.cc:6881
+#: cp/pt.cc:6892
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
 msgstr "%qE 並非有效模板引數用於型態 %qT 因為 %qD 沒有任何鏈結"
 
-#: cp/pt.cc:6885
+#: cp/pt.cc:6896
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
 msgstr "%qE 並非有效模板引數用於型態 %qT 因為 %qD 沒有外部連結"
 
-#: cp/pt.cc:6934
+#: cp/pt.cc:6945
 #, fuzzy, gcc-internal-format
 msgid "it must be a pointer-to-member of the form %<&X::Y%>"
 msgstr "它必須是成員指標的形式 %<&X::Y%>"
 
-#: cp/pt.cc:6936
+#: cp/pt.cc:6947
 #, fuzzy, gcc-internal-format
 #| msgid "%qD is not a member of %qT"
 msgid "because it is a member of %qT"
 msgstr "%qD 不是 %qT 的成員"
 
-#: cp/pt.cc:7005
+#: cp/pt.cc:7016
 #, fuzzy, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
 msgstr "  無法 deduce 模板參數 %qD"
 
-#: cp/pt.cc:7014
+#: cp/pt.cc:7025
 #, fuzzy, gcc-internal-format
 msgid "  types %qT and %qT have incompatible cv-qualifiers"
 msgstr "  類型 %qT 和 %qT 有不相容的 cv-qualifiers"
 
-#: cp/pt.cc:7023
+#: cp/pt.cc:7034
 #, fuzzy, gcc-internal-format
 msgid "  mismatched types %qT and %qT"
 msgstr "  不匹配的類型 %qT 和 %qT"
 
-#: cp/pt.cc:7032
+#: cp/pt.cc:7043
 #, fuzzy, gcc-internal-format
 msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
 msgstr "  模板參數 %qD 並非參數包裝，但是引數 %qD 是"
 
-#: cp/pt.cc:7043
+#: cp/pt.cc:7054
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "  模板引數 %qE 不匹配成員指標常數 %qE"
 
-#: cp/pt.cc:7053
+#: cp/pt.cc:7064
 #, fuzzy, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
 msgstr "  %qE 不是 equivalent 到 %qE"
 
-#: cp/pt.cc:7062
+#: cp/pt.cc:7073
 #, fuzzy, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
 msgstr "  不一致參數包裝推導與 %qT 和 %qT"
 
-#: cp/pt.cc:7074
+#: cp/pt.cc:7085
 #, fuzzy, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
 msgstr "  deduced 衝突類型用於參數 %qT (%qT 和 %qT)"
 
-#: cp/pt.cc:7078
+#: cp/pt.cc:7089
 #, fuzzy, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
 msgstr "  deduced 衝突值用於 non-type 參數 %qE (%qE 和 %qE)"
 
-#: cp/pt.cc:7089
+#: cp/pt.cc:7100
 #, fuzzy, gcc-internal-format
 msgid "  variable-sized array type %qT is not a valid template argument"
 msgstr "  variable-sized 陣列類型 %qT 並非有效模板引數"
 
-#: cp/pt.cc:7100
+#: cp/pt.cc:7111
 #, fuzzy, gcc-internal-format
 msgid "  member function type %qT is not a valid template argument"
 msgstr "  成員函數型式 %qT 並非有效模板引數"
 
-#: cp/pt.cc:7143
+#: cp/pt.cc:7154
 #, fuzzy, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "  無法轉換 %qE (型態 %qT) 輸入 %qT"
 
-#: cp/pt.cc:7156
+#: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
 msgstr "  %qT 是模稜兩可的基礎類別的 %qT"
 
-#: cp/pt.cc:7160
+#: cp/pt.cc:7171
 #, fuzzy, gcc-internal-format
 msgid "  %qT is not derived from %qT"
 msgstr "  %qT 未被衍生自 %qT"
 
-#: cp/pt.cc:7171
+#: cp/pt.cc:7182
 #, fuzzy, gcc-internal-format
 msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
 msgstr "  模板參數的模板模板引數是不一致與其他 deduced 模板引數"
 
-#: cp/pt.cc:7181
+#: cp/pt.cc:7192
 #, fuzzy, gcc-internal-format
 msgid "  cannot deduce a template for %qT from non-template type %qT"
 msgstr "  無法 deduce 模板用於 %qT 從 non-template 型態 %qT"
 
-#: cp/pt.cc:7191
+#: cp/pt.cc:7202
 #, fuzzy, gcc-internal-format
 msgid "  template argument %qE does not match %qE"
 msgstr "  模板引數 %qE 不匹配 %qD"
 
-#: cp/pt.cc:7242
+#: cp/pt.cc:7253
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
 msgstr "%qE 並非有效模板引數的型態 %qT 因為 %qE 並非變數"
 
-#: cp/pt.cc:7251
+#: cp/pt.cc:7262
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
 msgstr "%qE 並非有效模板引數的型態 %qT 因為 %qD 沒有外部連結"
 
-#: cp/pt.cc:7261
+#: cp/pt.cc:7272
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
 msgstr "%qE 並非有效模板引數的型態 %qT 因為 %qD 沒有任何鏈結"
 
-#: cp/pt.cc:7278
+#: cp/pt.cc:7289
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD is not a valid template argument"
 msgstr "  variable-sized 陣列類型 %qT 並非有效模板引數"
 
-#: cp/pt.cc:7288
+#: cp/pt.cc:7299
 #, fuzzy, gcc-internal-format
 msgid "the address of the %qT subobject of %qD is not a valid template argument"
 msgstr "  variable-sized 陣列類型 %qT 並非有效模板引數"
 
-#: cp/pt.cc:7295
+#: cp/pt.cc:7306
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
 msgstr "%qE 並非有效模板引數的型態 %qT 因為 %qD 沒有外部連結"
 
-#: cp/pt.cc:7313
+#: cp/pt.cc:7324
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
 msgstr "%qD 並非有效模板引數因為 %qD 是變數，不是位址的變數"
 
-#: cp/pt.cc:7321
+#: cp/pt.cc:7332
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
 msgstr "%qD 並非有效模板引數因為 %qD 是變數，不是位址的變數"
 
-#: cp/pt.cc:7443
+#: cp/pt.cc:7454
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
 msgstr "%qE 不是類型 %qT 的有效範本引數，因為字面字串不能用在此上下文中"
 
-#: cp/pt.cc:7608
+#: cp/pt.cc:7619
 #, fuzzy, gcc-internal-format
 msgid "in template argument for type %qT"
 msgstr "在中模板引數用於型態 %qT "
 
-#: cp/pt.cc:7622
+#: cp/pt.cc:7633
 #, fuzzy, gcc-internal-format
 msgid "template argument %qE for type %qT not a compile-time constant"
 msgstr "在中模板引數用於型態 %qT "
 
-#: cp/pt.cc:7708
+#: cp/pt.cc:7719
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
 msgstr "%qE 不是類型 %qT 的有效範本引數，因為 cv 限定衝突"
 
-#: cp/pt.cc:7716
+#: cp/pt.cc:7727
 #, fuzzy, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
 msgstr "%qE 並非有效模板引數用於型態 %qT 因為它不是 lvalue"
 
-#: cp/pt.cc:7734
+#: cp/pt.cc:7745
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
 msgstr "%q#D 並非有效模板引數用於型態 %qT 因為參考變數沒有常數位址"
 
-#: cp/pt.cc:7793
+#: cp/pt.cc:7804
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is a pointer"
 msgstr "%qE 不是類型 %qT 的有效範本引數，因為它是一個指標"
 
-#: cp/pt.cc:7795
+#: cp/pt.cc:7806
 #, gcc-internal-format
 msgid "try using %qE instead"
 msgstr "嘗試使用 %qE 代替"
 
-#: cp/pt.cc:7849
+#: cp/pt.cc:7860
 #, gcc-internal-format
 msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
 msgstr "%qE 不是類型 %qT 的有效範本引數，因為它的類型是 %qT"
 
-#: cp/pt.cc:8441
+#: cp/pt.cc:8452
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes on template argument %qT"
 msgstr "忽略屬性於模板引數 %qT"
 
-#: cp/pt.cc:8457
+#: cp/pt.cc:8468
 #, fuzzy, gcc-internal-format
 msgid "ignoring attributes in template argument %qE"
 msgstr "忽略屬性於模板引數 %qT"
 
-#: cp/pt.cc:8601
+#: cp/pt.cc:8612
 #, fuzzy, gcc-internal-format
 msgid "injected-class-name %qD used as template template argument"
 msgstr "injected-class-name %qD 使用的做為模板模板引數"
 
-#: cp/pt.cc:8630
+#: cp/pt.cc:8641
 #, fuzzy, gcc-internal-format
 msgid "invalid use of destructor %qE as a type"
 msgstr "無效的使用的解構式 %qE 做為型態"
 
-#: cp/pt.cc:8635
+#: cp/pt.cc:8646
 #, gcc-internal-format
 msgid "to refer to a type member of a template parameter, use %<typename %E%>"
 msgstr "需要使用某個範本參數的類型成員時，請使用 %<typename %E%>"
 
-#: cp/pt.cc:8651 cp/pt.cc:8685 cp/pt.cc:8735
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
 #, gcc-internal-format
 msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgstr "引數 %d 的類型/值不匹配，在 %qD 的範本參數清單中"
 
-#: cp/pt.cc:8659
+#: cp/pt.cc:8670
 #, gcc-internal-format
 msgid "  expected a constant of type %qT, got %qT"
 msgstr "  需要一個 %qT 類型的常數，卻給出了 %qT"
 
-#: cp/pt.cc:8667
+#: cp/pt.cc:8678
 #, fuzzy, gcc-internal-format
 msgid "  ambiguous template argument for non-type template parameter is treated as function type"
 msgstr "預設引數用於模板參數用於類別封閉 %qD"
 
-#: cp/pt.cc:8673
+#: cp/pt.cc:8684
 #, gcc-internal-format
 msgid "  expected a class template, got %qE"
 msgstr "  需要一個類別範本，卻給出了 %qE"
 
-#: cp/pt.cc:8676
+#: cp/pt.cc:8687
 #, gcc-internal-format
 msgid "  expected a type, got %qE"
 msgstr "  需要一個類型，卻給出了 %qE"
 
-#: cp/pt.cc:8690
+#: cp/pt.cc:8701
 #, gcc-internal-format
 msgid "  expected a type, got %qT"
 msgstr "  需要一個類型，卻給出了 %qT"
 
-#: cp/pt.cc:8693
+#: cp/pt.cc:8704
 #, gcc-internal-format
 msgid "  expected a class template, got %qT"
 msgstr "  需要一個類別範本，卻給出了 %qT"
 
-#: cp/pt.cc:8739
+#: cp/pt.cc:8750
 #, fuzzy, gcc-internal-format
 msgid "  expected a template of type %qD, got %qT"
 msgstr "  預期的模板的型態 %qD，得到 %qT"
 
-#: cp/pt.cc:8753
+#: cp/pt.cc:8764
 #, fuzzy, gcc-internal-format
 #| msgid "type/value mismatch at argument %d in template parameter list for %qD"
 msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "引數 %d 的類型/值不匹配，在 %qD 的範本參數清單中"
 
-#: cp/pt.cc:8756
+#: cp/pt.cc:8767
 #, fuzzy, gcc-internal-format
 #| msgid "  expected a type, got %qE"
 msgid "  expected %qD but got %qD"
 msgstr "  需要一個類型，卻給出了 %qE"
 
-#: cp/pt.cc:8844
+#: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
 #| msgid "could not convert template argument %qE to %qT"
 msgid "could not convert template argument %qE from %qT to %qT"
 msgstr "不能將範本參數從 %qE 轉換到 %qT"
 
-#: cp/pt.cc:8982 cp/pt.cc:9308
+#: cp/pt.cc:8993 cp/pt.cc:9319
 #, gcc-internal-format, gfc-internal-format
 msgid "template argument %d is invalid"
 msgstr "範本參數 %d 無效"
 
-#: cp/pt.cc:8997 cp/pt.cc:9142
+#: cp/pt.cc:9008 cp/pt.cc:9153
 #, gcc-internal-format, gfc-internal-format
 msgid "wrong number of template arguments (%d, should be %d)"
 msgstr "範本參數數目不正確(不應是 %d 個而應是 %d 個)"
 
-#: cp/pt.cc:9138
+#: cp/pt.cc:9149
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "wrong number of template arguments (%d, should be %d)"
 msgid "wrong number of template arguments (%d, should be at least %d)"
 msgstr "範本參數數目不正確(不應是 %d 個而應是 %d 個)"
 
-#: cp/pt.cc:9147
+#: cp/pt.cc:9158
 #, fuzzy, gcc-internal-format
 #| msgid "provided for %q+D"
 msgid "provided for %qD"
 msgstr "提供給 %q+D"
 
-#: cp/pt.cc:9172
+#: cp/pt.cc:9183
 #, fuzzy, gcc-internal-format
 msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
 msgstr "預設引數用於模板參數用於類別封閉 %qD"
 
-#: cp/pt.cc:9176
+#: cp/pt.cc:9187
 #, fuzzy, gcc-internal-format
 #| msgid "default argument given for parameter %d of %q#D"
 msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
 msgstr "為參數 %d (屬於 %q#D)指定了預設引數"
 
-#: cp/pt.cc:9274
+#: cp/pt.cc:9285
 #, gcc-internal-format
 msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
 msgstr ""
 
-#: cp/pt.cc:9841
+#: cp/pt.cc:9852
 #, fuzzy, gcc-internal-format
 msgid "%q#D is not a function template"
 msgstr "%q#D 並非函式模板"
 
-#: cp/pt.cc:10004
+#: cp/pt.cc:10015
 #, gcc-internal-format
 msgid "non-template type %qT used as a template"
 msgstr "非範本類型 %qT 做為範本"
 
-#: cp/pt.cc:10006
+#: cp/pt.cc:10017
 #, gcc-internal-format
 msgid "for template declaration %q+D"
 msgstr "對於範本宣告 %q+D"
 
-#: cp/pt.cc:10175 cp/pt.cc:22257
+#: cp/pt.cc:10186 cp/pt.cc:22299
 #, fuzzy, gcc-internal-format
 #| msgid "internal consistency failure"
 msgid "template constraint failure for %qD"
 msgstr "內部一致性錯誤"
 
-#: cp/pt.cc:10528
+#: cp/pt.cc:10539
 #, fuzzy, gcc-internal-format
 #| msgid "use of %qs in template"
 msgid "use of invalid variable template %qE"
 msgstr "在範本中使用 %qs"
 
-#: cp/pt.cc:11252
+#: cp/pt.cc:11263
 #, fuzzy, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "模板具現化深度超出最大值的 %d (使用 -ftemplate-depth=到增加最大值) 替代 %qS"
 
-#: cp/pt.cc:11996
+#: cp/pt.cc:12037
 #, fuzzy, gcc-internal-format
 msgid "score argument must be constant integer expression"
 msgstr "崩潰引數需要正面的常數整數運算式"
 
-#: cp/pt.cc:12005
+#: cp/pt.cc:12046
 #, fuzzy, gcc-internal-format
 msgid "score argument must be non-negative"
 msgstr "『%s』於 %L 必須是 nonnegative"
 
-#: cp/pt.cc:12032
+#: cp/pt.cc:12073
 #, fuzzy, gcc-internal-format
 msgid "property must be constant integer expression or string literal"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: cp/pt.cc:12581
+#: cp/pt.cc:12622
 #, fuzzy, gcc-internal-format
 msgid "flexible array member %qD in union"
 msgstr "flexible 陣列成員在中聯合"
 
-#: cp/pt.cc:13071
+#: cp/pt.cc:13112
 #, gcc-internal-format
 msgid "fold of empty expansion over %O"
 msgstr ""
 
-#: cp/pt.cc:13531
+#: cp/pt.cc:13572
 #, fuzzy, gcc-internal-format
 #| msgid "%qE is not at beginning of declaration"
 msgid "%qE is not the entire pattern of the pack expansion"
 msgstr "%qE 沒有出現在宣告的開頭"
 
-#: cp/pt.cc:13619
+#: cp/pt.cc:13660
 #, fuzzy, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qT"
 msgstr "不匹配的引數包裝長度當展開 %<%T%>"
 
-#: cp/pt.cc:13622
+#: cp/pt.cc:13663
 #, fuzzy, gcc-internal-format
 msgid "mismatched argument pack lengths while expanding %qE"
 msgstr "不匹配的引數包裝長度當展開 %<%E%>"
 
-#: cp/pt.cc:14310
+#: cp/pt.cc:14351
 #, fuzzy, gcc-internal-format
 msgid "  when instantiating default argument for call to %qD"
 msgstr "重定義 %q#D 的預設參數"
 
-#: cp/pt.cc:14406
+#: cp/pt.cc:14447
 #, gcc-internal-format
 msgid "creating pointer to member function of non-class type %qT"
 msgstr "產生非類別類型 %qT 的成員函式指標"
 
-#: cp/pt.cc:15398
+#: cp/pt.cc:15439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "mismatched argument pack lengths (%d vs %d)"
 msgstr "不匹配的引數包裝長度當展開 %<%T%>"
@@ -66493,308 +66531,308 @@ msgstr "不匹配的引數包裝長度當展開 %<%T%>"
 #.
 #. is an attempt to declare a variable with function
 #. type.
-#: cp/pt.cc:15587
+#: cp/pt.cc:15628
 #, fuzzy, gcc-internal-format
 msgid "variable %qD has function type"
 msgstr "變數 %qD 有函數型式"
 
-#: cp/pt.cc:15788
+#: cp/pt.cc:15829
 #, gcc-internal-format
 msgid "invalid parameter type %qT"
 msgstr "無效的參數類型 %qT"
 
-#: cp/pt.cc:15790
+#: cp/pt.cc:15831
 #, gcc-internal-format
 msgid "in declaration %q+D"
 msgstr "在宣告 %q+D 中"
 
-#: cp/pt.cc:15917
+#: cp/pt.cc:15958
 #, gcc-internal-format
 msgid "function returning an array"
 msgstr "函式回傳了一個陣列"
 
-#: cp/pt.cc:15919
+#: cp/pt.cc:15960
 #, gcc-internal-format
 msgid "function returning a function"
 msgstr "函式回傳了一個函式"
 
-#: cp/pt.cc:16625
+#: cp/pt.cc:16666
 #, gcc-internal-format
 msgid "forming reference to void"
 msgstr "形成對 void 的參照"
 
-#: cp/pt.cc:16627
+#: cp/pt.cc:16668
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to reference type %qT"
 msgstr "表單指標到參考類型 %qT"
 
-#: cp/pt.cc:16629
+#: cp/pt.cc:16670
 #, fuzzy, gcc-internal-format
 msgid "forming reference to reference type %qT"
 msgstr "表單參考到參考類型 %qT"
 
-#: cp/pt.cc:16642
+#: cp/pt.cc:16683
 #, fuzzy, gcc-internal-format
 msgid "forming pointer to qualified function type %qT"
 msgstr "無法宣告指標到經資格修飾函數型式 %qT"
 
-#: cp/pt.cc:16645
+#: cp/pt.cc:16686
 #, fuzzy, gcc-internal-format
 msgid "forming reference to qualified function type %qT"
 msgstr "無法宣告參考到經資格修飾函數型式 %qT"
 
-#: cp/pt.cc:16693
+#: cp/pt.cc:16734
 #, gcc-internal-format
 msgid "creating pointer to member of non-class type %qT"
 msgstr "產生非類別類型 %qT 的成員指標"
 
-#: cp/pt.cc:16699
+#: cp/pt.cc:16740
 #, gcc-internal-format
 msgid "creating pointer to member reference type %qT"
 msgstr "產生參照類型 %qT 的成員指標"
 
-#: cp/pt.cc:16705
+#: cp/pt.cc:16746
 #, gcc-internal-format
 msgid "creating pointer to member of type void"
 msgstr "建立參照 void 類型的成員指標"
 
-#: cp/pt.cc:16771
+#: cp/pt.cc:16812
 #, gcc-internal-format
 msgid "creating array of %qT"
 msgstr "產生 %qT 的陣列"
 
-#: cp/pt.cc:16808
+#: cp/pt.cc:16849
 #, gcc-internal-format
 msgid "%qD is instantiated for an empty pack"
 msgstr ""
 
-#: cp/pt.cc:16829
+#: cp/pt.cc:16870
 #, gcc-internal-format
 msgid "%qT is not a class, struct, or union type"
 msgstr "%qT 不是類別、結構或聯合類型"
 
-#: cp/pt.cc:16869
+#: cp/pt.cc:16910
 #, gcc-internal-format
 msgid "%qT resolves to %qT, which is not an enumeration type"
 msgstr "%qT 被解析到非列舉類型 %qT"
 
-#: cp/pt.cc:16877
+#: cp/pt.cc:16918
 #, fuzzy, gcc-internal-format
 #| msgid "%qT resolves to %qT, which is is not a class type"
 msgid "%qT resolves to %qT, which is not a class type"
 msgstr "%qT 被解析到非類別類型 %qT"
 
-#: cp/pt.cc:16995
+#: cp/pt.cc:17036
 #, gcc-internal-format
 msgid "use of %qs in template"
 msgstr "在範本中使用 %qs"
 
-#: cp/pt.cc:17314
+#: cp/pt.cc:17355
 #, fuzzy, gcc-internal-format
 msgid "qualifying type %qT does not match destructor name ~%qT"
 msgstr "限定型態 %qT 不匹配解構式名稱 ~%qT"
 
-#: cp/pt.cc:17329
+#: cp/pt.cc:17370
 #, gcc-internal-format
 msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
 msgstr "依賴名 %qE 被解析為非類型，但實體化卻產生了一個類型"
 
-#: cp/pt.cc:17331
+#: cp/pt.cc:17372
 #, gcc-internal-format
 msgid "say %<typename %E%> if a type is meant"
 msgstr "如果您想指定類型，請使用 %<typename %E%>"
 
-#: cp/pt.cc:17424
+#: cp/pt.cc:17465
 #, fuzzy, gcc-internal-format
 msgid "initializer for %q#D expands to an empty list of expressions"
 msgstr "初始設定式元件並非常數運算式"
 
-#: cp/pt.cc:19448 cp/pt.cc:21638
+#: cp/pt.cc:19489 cp/pt.cc:21680
 #, fuzzy, gcc-internal-format
 msgid "invalid use of pack expansion expression"
 msgstr "無效的使用的包裝擴展運算式"
 
-#: cp/pt.cc:19452 cp/pt.cc:21642
+#: cp/pt.cc:19493 cp/pt.cc:21684
 #, fuzzy, gcc-internal-format
 msgid "use %<...%> to expand argument pack"
 msgstr "使用 %<...%>到展開引數包裝"
 
-#: cp/pt.cc:19599
+#: cp/pt.cc:19640
 #, fuzzy, gcc-internal-format
 msgid "empty initializer in lambda init-capture"
 msgstr "ISO C++不允許初始設定式在中 lambda 運算式擷取清單"
 
-#: cp/pt.cc:20912
+#: cp/pt.cc:20954
 #, fuzzy, gcc-internal-format
 msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
 msgstr "%qD 未被宣告在中這個範圍，而找不到任何宣告是由 argument-dependent 查找於點的實體化"
 
-#: cp/pt.cc:20947
+#: cp/pt.cc:20989
 #, fuzzy, gcc-internal-format
 msgid "declarations in dependent base %qT are not found by unqualified lookup"
 msgstr "宣告在中附屬基底 %qT 找不到由資格不符的查找"
 
-#: cp/pt.cc:20952
+#: cp/pt.cc:20994
 #, fuzzy, gcc-internal-format
 msgid "use %<this->%D%> instead"
 msgstr "使用 %<this->%D%>做為替代"
 
-#: cp/pt.cc:20955
+#: cp/pt.cc:20997
 #, fuzzy, gcc-internal-format
 msgid "use %<%T::%D%> instead"
 msgstr "使用 %<%T::%D%>做為替代"
 
-#: cp/pt.cc:20960
+#: cp/pt.cc:21002
 #, fuzzy, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
 msgstr "%q+D 宣告的在此，稍後在中轉譯單位"
 
-#: cp/pt.cc:21011
+#: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<__builtin_convertvector%>"
 msgstr "錯誤的引數數量到 %<__builtin_choose_expr%>"
 
-#: cp/pt.cc:21038
+#: cp/pt.cc:21080
 #, fuzzy, gcc-internal-format
 msgid "wrong number of arguments to %<assume%> attribute"
 msgstr "錯誤的引數數量指定的用於 %qE 屬性"
 
-#: cp/pt.cc:21249
+#: cp/pt.cc:21291
 #, gcc-internal-format
 msgid "%qT is not a class or namespace"
 msgstr "%qT 既不是類別也不是命名空間"
 
-#: cp/pt.cc:21252
+#: cp/pt.cc:21294
 #, gcc-internal-format
 msgid "%qD is not a class or namespace"
 msgstr "%qD 既不是類別也不是命名空間"
 
-#: cp/pt.cc:21570
+#: cp/pt.cc:21612
 #, gcc-internal-format
 msgid "using invalid field %qD"
 msgstr "使用無效欄位 %qD"
 
-#: cp/pt.cc:21903
+#: cp/pt.cc:21945
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is/uses anonymous type"
 msgid "%qT is/uses unnamed type"
 msgstr "%qT 是/使用了匿名類型"
 
-#: cp/pt.cc:21905
+#: cp/pt.cc:21947
 #, fuzzy, gcc-internal-format
 msgid "template argument for %qD uses local type %qT"
 msgstr "模板引數用於 %qD 使用本地型態 %qT"
 
-#: cp/pt.cc:21915
+#: cp/pt.cc:21957
 #, gcc-internal-format
 msgid "%qT is a variably modified type"
 msgstr "%qT 是一個可變類型"
 
-#: cp/pt.cc:21930
+#: cp/pt.cc:21972
 #, gcc-internal-format
 msgid "integral expression %qE is not constant"
 msgstr "整型運算式 %qE 不是常數"
 
-#: cp/pt.cc:21948
+#: cp/pt.cc:21990
 #, gcc-internal-format
 msgid "  trying to instantiate %qD"
 msgstr "  試圖實體化 %qD"
 
-#: cp/pt.cc:26341
+#: cp/pt.cc:26383
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "ambiguous template instantiation for %q#T"
 msgstr "%q#T 的類別範本實體化有歧義"
 
-#: cp/pt.cc:26343
+#: cp/pt.cc:26385
 #, fuzzy, gcc-internal-format
 #| msgid "ambiguous class template instantiation for %q#T"
 msgid "ambiguous template instantiation for %q#D"
 msgstr "%q#T 的類別範本實體化有歧義"
 
-#: cp/pt.cc:26349
+#: cp/pt.cc:26391
 #, fuzzy
 msgid "%s %#qS"
 msgstr "%s %+#D"
 
-#: cp/pt.cc:26376 cp/pt.cc:26471
+#: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
 msgid "explicit instantiation of non-template %q#D"
 msgstr "對非範本 %q#D 的明確實體化"
 
-#: cp/pt.cc:26382
+#: cp/pt.cc:26424
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of variable concept %q#D"
 msgstr "對非範本 %q#D 的明確實體化"
 
-#: cp/pt.cc:26384
+#: cp/pt.cc:26426
 #, fuzzy, gcc-internal-format
 #| msgid "explicit instantiation of non-template %q#D"
 msgid "explicit instantiation of function concept %q#D"
 msgstr "對非範本 %q#D 的明確實體化"
 
-#: cp/pt.cc:26403
+#: cp/pt.cc:26445
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a static data member of a class template"
 msgstr "%qD 並非靜態資料成員的類別模板"
 
-#: cp/pt.cc:26409 cp/pt.cc:26466
+#: cp/pt.cc:26451 cp/pt.cc:26508
 #, gcc-internal-format
 msgid "no matching template for %qD found"
 msgstr "沒有找到與 %qD 匹配的範本"
 
-#: cp/pt.cc:26414
+#: cp/pt.cc:26456
 #, fuzzy, gcc-internal-format
 msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
 msgstr "型態 %qT 用於明確的實體化 %qD 不匹配宣告的型態 %qT"
 
-#: cp/pt.cc:26422
+#: cp/pt.cc:26464
 #, gcc-internal-format
 msgid "explicit instantiation of %q#D"
 msgstr "對 %q#D 的明確實體化"
 
-#: cp/pt.cc:26458
+#: cp/pt.cc:26500
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#D"
 msgstr "對 %q#D 重複的明確實體化"
 
-#: cp/pt.cc:26481 cp/pt.cc:26548
+#: cp/pt.cc:26523 cp/pt.cc:26590
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
 msgstr "ISO C++1998 禁止使用的 %<extern%> 於明確的實體化"
 
-#: cp/pt.cc:26486 cp/pt.cc:26563
+#: cp/pt.cc:26528 cp/pt.cc:26605
 #, gcc-internal-format
 msgid "storage class %qD applied to template instantiation"
 msgstr "為範本實體化化套用了存儲類型 %qD"
 
-#: cp/pt.cc:26520
+#: cp/pt.cc:26562
 #, fuzzy, gcc-internal-format
 msgid "explicit instantiation of non-class template %qD"
 msgstr "明確的實體化的 non-class 模板 %qD"
 
-#: cp/pt.cc:26523
+#: cp/pt.cc:26565
 #, gcc-internal-format
 msgid "explicit instantiation of non-template type %qT"
 msgstr "明確實體化非範本類型 %qT"
 
-#: cp/pt.cc:26532
+#: cp/pt.cc:26574
 #, gcc-internal-format
 msgid "explicit instantiation of %q#T before definition of template"
 msgstr "%q#T 的明確實體化出現在範本定義之前"
 
-#: cp/pt.cc:26553
+#: cp/pt.cc:26595
 #, gcc-internal-format
 msgid "ISO C++ forbids the use of %qE on explicit instantiations"
 msgstr "ISO C++ 不允許在明確實體化時使用 %qE"
 
-#: cp/pt.cc:26593
+#: cp/pt.cc:26635
 #, gcc-internal-format
 msgid "duplicate explicit instantiation of %q#T"
 msgstr "對 %q#T 重複的明確實體化"
 
-#: cp/pt.cc:26909
+#: cp/pt.cc:26951
 #, fuzzy, gcc-internal-format
 #| msgid "explicit specialization of %qD after first use"
 msgid "exception specification of %qD depends on itself"
@@ -66807,173 +66845,173 @@ msgstr "在初次使用後明確特例化 %qD"
 #. member function or static data member of a class template
 #. shall be present in every translation unit in which it is
 #. explicitly instantiated.
-#: cp/pt.cc:27382
+#: cp/pt.cc:27424
 #, gcc-internal-format
 msgid "explicit instantiation of %qD but no definition available"
 msgstr "明確實體化 %qD 時沒有可用的定義"
 
-#: cp/pt.cc:27427
+#: cp/pt.cc:27469
 #, fuzzy, gcc-internal-format
 msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
 msgstr "模板具現化深度超出最大值的 %d 舉例說明 %q+D, 可能會從虛擬表格產生 (使用 -ftemplate-depth=到增加最大值)"
 
-#: cp/pt.cc:27801
+#: cp/pt.cc:27843
 #, fuzzy, gcc-internal-format
 msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "尾隨傳回類型只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/pt.cc:27831
+#: cp/pt.cc:27873
 #, fuzzy, gcc-internal-format
 msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
 msgstr "%q#T 並非有效型態用於模板 non-type 參數"
 
-#: cp/pt.cc:27840
+#: cp/pt.cc:27882
 #, fuzzy, gcc-internal-format
 msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "尾隨傳回類型只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/pt.cc:27848
+#: cp/pt.cc:27890
 #, fuzzy, gcc-internal-format
 msgid "invalid template non-type parameter"
 msgstr "無效的模板 non-type 參數"
 
-#: cp/pt.cc:27850
+#: cp/pt.cc:27892
 #, fuzzy, gcc-internal-format
 msgid "%q#T is not a valid type for a template non-type parameter"
 msgstr "%q#T 並非有效型態用於模板 non-type 參數"
 
-#: cp/pt.cc:29294
+#: cp/pt.cc:29336
 #, fuzzy, gcc-internal-format
 #| msgid "keyword %<typename%> not allowed outside of templates"
 msgid "keyword %<template%> not allowed in declarator-id"
 msgstr "關鍵字 %<typename%> 不能在範本以外使用"
 
-#: cp/pt.cc:29485
+#: cp/pt.cc:29527
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "a concept cannot be constrained"
 msgstr "建構式不能是靜態成員函式"
 
-#: cp/pt.cc:29494
+#: cp/pt.cc:29536
 #, fuzzy, gcc-internal-format
 #| msgid "%qT is not a namespace"
 msgid "concept %qE not in namespace scope"
 msgstr "%qT 不是一個命名空間"
 
-#: cp/pt.cc:29500
+#: cp/pt.cc:29542
 #, fuzzy, gcc-internal-format
 #| msgid "definition of %q#T inside template parameter list"
 msgid "concept %qE has multiple template parameter lists"
 msgstr "在範本參數清單中定義了 %q#T"
 
-#: cp/pt.cc:29531
+#: cp/pt.cc:29573
 #, fuzzy, gcc-internal-format
 msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
 msgstr "deducing 從 brace-enclosed 初始設定式清單需求 # 包含 <initializer_list>"
 
-#: cp/pt.cc:30809
+#: cp/pt.cc:30867
 #, fuzzy, gcc-internal-format
 #| msgid "non-template %qD used as template"
 msgid "non-deducible template %qT used without template arguments"
 msgstr "非範本 %qD 做為範本"
 
-#: cp/pt.cc:30821
+#: cp/pt.cc:30879
 #, fuzzy, gcc-internal-format
 msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
 msgstr "variadic 模板只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/pt.cc:30827
+#: cp/pt.cc:30885
 #, fuzzy, gcc-internal-format
 #| msgid "try using %qE instead"
 msgid "use %qD directly instead"
 msgstr "嘗試使用 %qE 代替"
 
-#: cp/pt.cc:30955
+#: cp/pt.cc:31013
 #, gcc-internal-format
 msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
 msgstr ""
 
-#: cp/pt.cc:30962
+#: cp/pt.cc:31020
 #, fuzzy, gcc-internal-format
 msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
 msgstr "%qE 並非有效模板引數的型態 %qT 因為 %qD 沒有任何鏈結"
 
-#: cp/pt.cc:30974
+#: cp/pt.cc:31032
 #, fuzzy, gcc-internal-format
 msgid "class template argument deduction failed:"
 msgstr "  模板引數推導/替代失敗："
 
-#: cp/pt.cc:30977
+#: cp/pt.cc:31035
 #, fuzzy, gcc-internal-format
 #| msgid "function not considered for inlining"
 msgid "explicit deduction guides not considered for copy-initialization"
 msgstr "不考慮內聯函式"
 
 #. TODO: Pass down location from cp_finish_decl.
-#: cp/pt.cc:30991
+#: cp/pt.cc:31049
 #, gcc-internal-format
 msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
 msgstr ""
 
-#: cp/pt.cc:30995
+#: cp/pt.cc:31053
 #, fuzzy, gcc-internal-format
 msgid "explicit deduction guide declared here"
 msgstr "間接函式 %q+D 無法宣告的 weakref"
 
-#: cp/pt.cc:31009
+#: cp/pt.cc:31067
 #, fuzzy, gcc-internal-format
 msgid "%qT may not intend to support class template argument deduction"
 msgstr "  模板引數推導/替代失敗："
 
-#: cp/pt.cc:31011
+#: cp/pt.cc:31069
 #, gcc-internal-format
 msgid "add a deduction guide to suppress this warning"
 msgstr ""
 
-#: cp/pt.cc:31133
+#: cp/pt.cc:31191
 #, gcc-internal-format
 msgid "direct-list-initialization of %<auto%> requires exactly one element"
 msgstr ""
 
-#: cp/pt.cc:31136
+#: cp/pt.cc:31194
 #, gcc-internal-format
 msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
 msgstr ""
 
-#: cp/pt.cc:31203
+#: cp/pt.cc:31261
 #, fuzzy, gcc-internal-format
 msgid "unable to deduce lambda return type from %qE"
 msgstr "無法 deduce %qT 從 %qE"
 
-#: cp/pt.cc:31206
+#: cp/pt.cc:31264
 #, fuzzy, gcc-internal-format
 msgid "unable to deduce %qT from %qE"
 msgstr "無法 deduce %qT 從 %qE"
 
-#: cp/pt.cc:31281
+#: cp/pt.cc:31339
 #, gcc-internal-format
 msgid "placeholder constraints not satisfied"
 msgstr ""
 
-#: cp/pt.cc:31285
+#: cp/pt.cc:31343
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced initializer does not satisfy placeholder constraints"
 msgstr "指令不滿足其約束："
 
-#: cp/pt.cc:31289
+#: cp/pt.cc:31347
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced return type does not satisfy placeholder constraints"
 msgstr "指令不滿足其約束："
 
-#: cp/pt.cc:31293
+#: cp/pt.cc:31351
 #, fuzzy, gcc-internal-format
 #| msgid "insn does not satisfy its constraints:"
 msgid "deduced expression type does not satisfy placeholder constraints"
 msgstr "指令不滿足其約束："
 
-#: cp/pt.cc:31448
+#: cp/pt.cc:31506
 #, fuzzy, gcc-internal-format
 msgid "invalid use of %qT in template argument"
 msgstr "無效的 non-type 模板引數"
@@ -67192,645 +67230,645 @@ msgstr "無法確定 asm 運算元 %qE 的類型"
 msgid "%<__label__%> declarations are only allowed in function scopes"
 msgstr "__label__ 宣告是只有允許的在中函式範圍"
 
-#: cp/semantics.cc:2367
+#: cp/semantics.cc:2369
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in static member function"
 msgstr "在靜態成員函式中使用成員 %q+D 無效"
 
-#: cp/semantics.cc:2371
+#: cp/semantics.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in constructor %<pre%> contract"
 msgstr "在靜態成員函式中使用成員 %q+D 無效"
 
-#: cp/semantics.cc:2375
+#: cp/semantics.cc:2377
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of member %q+D in static member function"
 msgid "invalid use of member %qD in destructor %<post%> contract"
 msgstr "在靜態成員函式中使用成員 %q+D 無效"
 
-#: cp/semantics.cc:2638
+#: cp/semantics.cc:2640
 #, fuzzy, gcc-internal-format
 msgid "%qE missing template arguments"
 msgstr "不匹配的引數"
 
-#: cp/semantics.cc:2698
+#: cp/semantics.cc:2700
 #, gcc-internal-format
 msgid "a statement expression is an insufficient context for overload resolution"
 msgstr ""
 
-#: cp/semantics.cc:3057
+#: cp/semantics.cc:3059
 #, fuzzy, gcc-internal-format
 #| msgid "%qE cannot be used as a function"
 msgid "cannot call a concept as a function"
 msgstr "%qE 不能做為函式"
 
-#: cp/semantics.cc:3140
+#: cp/semantics.cc:3142
 #, gcc-internal-format
 msgid "arguments to destructor are not allowed"
 msgstr "解構函式不能有參數"
 
-#: cp/semantics.cc:3244
+#: cp/semantics.cc:3246
 #, fuzzy, gcc-internal-format
 #| msgid "%<this%> is unavailable for static member functions"
 msgid "%<this%> is unavailable for explicit object member functions"
 msgstr "靜態成員函式中不能使用 %<this%>"
 
-#: cp/semantics.cc:3256
+#: cp/semantics.cc:3258
 #, fuzzy, gcc-internal-format
 #| msgid "used %d template parameter(s) instead of %d"
 msgid "use explicit object parameter %qs instead"
 msgstr "使用了 %d 個範本參數，而不是 %d 個"
 
-#: cp/semantics.cc:3260
+#: cp/semantics.cc:3262
 #, fuzzy, gcc-internal-format
 msgid "name the explicit object parameter"
 msgstr "無效的模板 non-type 參數"
 
-#: cp/semantics.cc:3265
+#: cp/semantics.cc:3267
 #, gcc-internal-format
 msgid "%<this%> is unavailable for static member functions"
 msgstr "靜態成員函式中不能使用 %<this%>"
 
-#: cp/semantics.cc:3267
+#: cp/semantics.cc:3269
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> before it is valid"
 msgstr "在頂層使用 %<this%> 無效"
 
-#: cp/semantics.cc:3269
+#: cp/semantics.cc:3271
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of %<this%> at top level"
 msgid "invalid use of %<this%> after it is valid"
 msgstr "在頂層使用 %<this%> 無效"
 
-#: cp/semantics.cc:3271
+#: cp/semantics.cc:3273
 #, gcc-internal-format
 msgid "invalid use of %<this%> in non-member function"
 msgstr "在非成員函式中使用 %<this%> 無效"
 
-#: cp/semantics.cc:3273
+#: cp/semantics.cc:3275
 #, gcc-internal-format
 msgid "invalid use of %<this%> at top level"
 msgstr "在頂層使用 %<this%> 無效"
 
-#: cp/semantics.cc:3295
+#: cp/semantics.cc:3297
 #, gcc-internal-format
 msgid "invalid qualifying scope in pseudo-destructor name"
 msgstr "偽解構函式名的限定作用欄位無效"
 
-#: cp/semantics.cc:3303 cp/typeck.cc:3085
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
 #, gcc-internal-format
 msgid "qualified type %qT does not match destructor name ~%qT"
 msgstr "限定的類型 %qT 不匹配解構函式名 ~%qT"
 
-#: cp/semantics.cc:3325
+#: cp/semantics.cc:3327
 #, gcc-internal-format
 msgid "%qE is not of type %qT"
 msgstr "%qE 的類型不是 %qT"
 
-#: cp/semantics.cc:3439
+#: cp/semantics.cc:3441
 #, fuzzy, gcc-internal-format
 msgid "compound literal of non-object type %qT"
 msgstr "複合實字的 non-object 型態 %qT"
 
-#: cp/semantics.cc:3459
+#: cp/semantics.cc:3461
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "%<auto{x}%> cannot be constrained"
 msgstr "建構式不能是靜態成員函式"
 
-#: cp/semantics.cc:3464
+#: cp/semantics.cc:3466
 #, fuzzy, gcc-internal-format
 msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++0x 自動只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/semantics.cc:3656
+#: cp/semantics.cc:3658
 #, gcc-internal-format
 msgid "template type parameters must use the keyword %<class%> or %<typename%>"
 msgstr "範本參數必須使用 %<class%> 或 %<typename%> 關鍵字"
 
-#: cp/semantics.cc:3709
+#: cp/semantics.cc:3711
 #, gcc-internal-format
 msgid "invalid use of type %qT as a default value for a template template-parameter"
 msgstr "將類型 %qT 做為範本的範本參數的預設值無效"
 
-#: cp/semantics.cc:3713
+#: cp/semantics.cc:3715
 #, gcc-internal-format
 msgid "invalid default argument for a template template parameter"
 msgstr "範本的範本參數的預設引數無效"
 
-#: cp/semantics.cc:3730
+#: cp/semantics.cc:3732
 #, gcc-internal-format
 msgid "definition of %q#T inside template parameter list"
 msgstr "在範本參數清單中定義了 %q#T"
 
-#: cp/semantics.cc:3761
+#: cp/semantics.cc:3763
 #, gcc-internal-format
 msgid "invalid definition of qualified type %qT"
 msgstr "對限定類型 %qT 的定義無效"
 
-#: cp/semantics.cc:4053
+#: cp/semantics.cc:4051
 #, gcc-internal-format
 msgid "invalid base-class specification"
 msgstr "無效的基礎類別"
 
-#: cp/semantics.cc:4221
+#: cp/semantics.cc:4219
 #, fuzzy, gcc-internal-format
 #| msgid "protected member %q+#D in anonymous union"
 msgid "cannot capture member %qD of anonymous union"
 msgstr "匿名聯合中出現保護成員 %q+#D"
 
-#: cp/semantics.cc:4238
+#: cp/semantics.cc:4236
 #, fuzzy, gcc-internal-format
 msgid "%qD is not captured"
 msgstr "%qD 未被擷取"
 
-#: cp/semantics.cc:4242
+#: cp/semantics.cc:4240
 #, gcc-internal-format
 msgid "the lambda has no capture-default"
 msgstr ""
 
-#: cp/semantics.cc:4244
+#: cp/semantics.cc:4242
 #, gcc-internal-format
 msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
 msgstr ""
 
-#: cp/semantics.cc:4259
+#: cp/semantics.cc:4257
 #, fuzzy, gcc-internal-format
 msgid "use of local variable with automatic storage from containing function"
 msgstr "在包含函式中使用 %<auto%> 變數"
 
-#: cp/semantics.cc:4261
+#: cp/semantics.cc:4259
 #, gcc-internal-format
 msgid "use of parameter from containing function"
 msgstr "在包含函式中使用參數"
 
-#: cp/semantics.cc:4389
+#: cp/semantics.cc:4387
 #, fuzzy, gcc-internal-format
 msgid "use of parameter outside function body"
 msgstr "使用的參數 %qD 外側函式內文"
 
-#: cp/semantics.cc:4399
+#: cp/semantics.cc:4397
 #, fuzzy, gcc-internal-format
 msgid "missing template arguments"
 msgstr "不匹配的引數"
 
-#: cp/semantics.cc:4435
+#: cp/semantics.cc:4433
 #, gcc-internal-format
 msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
 msgstr "範本參數 %qD(類型為 %qT)不允許出現在整數運算式中，因為它的類型不是整數或列舉"
 
-#: cp/semantics.cc:4486
+#: cp/semantics.cc:4484
 #, gcc-internal-format
 msgid "use of class template %qT as expression"
 msgstr "將類別範本 %qT 做為運算式"
 
 #. Ambiguous reference to base members.
-#: cp/semantics.cc:4493
+#: cp/semantics.cc:4491
 #, gcc-internal-format
 msgid "request for member %qD is ambiguous in multiple inheritance lattice"
 msgstr "在多繼承網格中對 %qD 的存取有歧義"
 
-#: cp/semantics.cc:4521
+#: cp/semantics.cc:4519
 #, gcc-internal-format
 msgid "%qD cannot appear in a constant-expression"
 msgstr "%qD 不能出現在常數運算式中"
 
-#: cp/semantics.cc:4674
+#: cp/semantics.cc:4672
 #, gcc-internal-format
 msgid "type of %qE is unknown"
 msgstr "%qE 的類型不明"
 
-#: cp/semantics.cc:4692 rust/backend/rust-tree.cc:5511
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
 #, fuzzy, gcc-internal-format
 msgid "%qT is not an enumeration type"
 msgstr "%qT 不是列舉類型型態"
 
-#: cp/semantics.cc:4719
+#: cp/semantics.cc:4717
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
 msgstr "要求的對齊不是整數常數"
 
-#: cp/semantics.cc:4725
+#: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
 msgstr ""
 
-#: cp/semantics.cc:4731
+#: cp/semantics.cc:4729
 #, fuzzy, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
 msgstr "常數引數超過 %qs 的範圍"
 
 #. Parameter packs can only be used in templates
-#: cp/semantics.cc:4854
+#: cp/semantics.cc:4852
 #, fuzzy, gcc-internal-format
 msgid "parameter pack %<__bases%> only valid in template declaration"
 msgstr "參數包裝 __bases 只有有效在中模板宣告"
 
-#: cp/semantics.cc:4886
+#: cp/semantics.cc:4884
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
 msgstr "無法套用 %<offsetof%> 到解構式 %<~%T%>"
 
-#: cp/semantics.cc:4899
+#: cp/semantics.cc:4897
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function %qD"
 msgstr "無法套用 %<offsetof%> 到成員函式 %qD"
 
-#: cp/semantics.cc:4903
+#: cp/semantics.cc:4901
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to member function"
 msgstr "無法套用 %<offsetof%> 到成員函式 %qD"
 
-#: cp/semantics.cc:4908
+#: cp/semantics.cc:4906
 #, fuzzy, gcc-internal-format
 msgid "cannot apply %<offsetof%> to an enumerator %qD"
 msgstr "無法套用 %<offsetof%> 到成員函式 %qD"
 
-#: cp/semantics.cc:4919
+#: cp/semantics.cc:4917
 #, gcc-internal-format
 msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
 msgstr ""
 
-#: cp/semantics.cc:6119
+#: cp/semantics.cc:6117
 #, fuzzy, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
 msgstr "建構子優先等級未被支援"
 
-#: cp/semantics.cc:6313
+#: cp/semantics.cc:6311
 #, fuzzy, gcc-internal-format
 #| msgid "reference to %qD is ambiguous"
 msgid "user defined reduction lookup is ambiguous"
 msgstr "對 %qD 的參照有歧義"
 
-#: cp/semantics.cc:6586
+#: cp/semantics.cc:6584
 #, gcc-internal-format
 msgid "%qE in %<reduction%> clause is a zero size array"
 msgstr ""
 
-#: cp/semantics.cc:6632
+#: cp/semantics.cc:6630
 #, fuzzy, gcc-internal-format
 msgid "%qE has const type for %<reduction%>"
 msgstr "%qE 有無效的型態用於 %<reduction%>"
 
-#: cp/semantics.cc:6751
+#: cp/semantics.cc:6749
 #, gcc-internal-format
 msgid "user defined reduction with constructor initializer for base class %qT"
 msgstr ""
 
-#: cp/semantics.cc:7223
+#: cp/semantics.cc:7221
 #, gcc-internal-format
 msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
 msgstr ""
 
-#: cp/semantics.cc:7238
+#: cp/semantics.cc:7236
 #, gcc-internal-format
 msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7253
+#: cp/semantics.cc:7251
 #, gcc-internal-format
 msgid "linear clause applied to non-integral non-pointer variable with %qT type"
 msgstr ""
 
-#: cp/semantics.cc:7277
+#: cp/semantics.cc:7275
 #, fuzzy, gcc-internal-format
 msgid "linear step expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:7370 cp/semantics.cc:7502 cp/semantics.cc:7562
-#: cp/semantics.cc:7963 cp/semantics.cc:9089
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
 #, gcc-internal-format
 msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:7382 cp/semantics.cc:9102
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %qs"
 msgstr "%qD 並非變數在中子句 %qs"
 
-#: cp/semantics.cc:7515
+#: cp/semantics.cc:7513
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %<firstprivate%>"
 msgstr "%qD 並非變數在中子句 %<firstprivate%>"
 
-#: cp/semantics.cc:7575
+#: cp/semantics.cc:7573
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in clause %<lastprivate%>"
 msgstr "%qD 並非變數在中子句 %<lastprivate%>"
 
-#: cp/semantics.cc:7626
+#: cp/semantics.cc:7624
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> static expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:7640
+#: cp/semantics.cc:7638
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> static value must be positive"
 msgstr "%<num_threads%> 值必須是正值"
 
-#: cp/semantics.cc:7674
+#: cp/semantics.cc:7672
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> num expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:7677
+#: cp/semantics.cc:7675
 #, fuzzy, gcc-internal-format
 msgid "%<vector%> length expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:7681
+#: cp/semantics.cc:7679
 #, fuzzy, gcc-internal-format
 msgid "%<worker%> num expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:7703
+#: cp/semantics.cc:7701
 #, fuzzy, gcc-internal-format
 msgid "%<gang%> num value must be positive"
 msgstr "%<num_threads%> 值必須是正值"
 
-#: cp/semantics.cc:7707
+#: cp/semantics.cc:7705
 #, fuzzy, gcc-internal-format
 msgid "%<vector%> length value must be positive"
 msgstr "%<num_threads%> 值必須是正值"
 
-#: cp/semantics.cc:7712
+#: cp/semantics.cc:7710
 #, fuzzy, gcc-internal-format
 msgid "%<worker%> num value must be positive"
 msgstr "%<num_threads%> 值必須是正值"
 
-#: cp/semantics.cc:7788
+#: cp/semantics.cc:7786
 #, fuzzy, gcc-internal-format
 msgid "schedule chunk size expression must be integral"
 msgstr "排程資料塊大小運算式必須是積分"
 
-#: cp/semantics.cc:7821
+#: cp/semantics.cc:7819
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:7835
+#: cp/semantics.cc:7833
 #, fuzzy, gcc-internal-format
 msgid "%qs length expression must be positive constant integer expression"
 msgstr "崩潰引數需要正面的常數整數運算式"
 
-#: cp/semantics.cc:7855
+#: cp/semantics.cc:7853
 #, fuzzy, gcc-internal-format
 msgid "%<async%> expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:7884
+#: cp/semantics.cc:7882
 #, fuzzy, gcc-internal-format
 msgid "%<thread_limit%> expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:7914
+#: cp/semantics.cc:7912
 #, fuzzy, gcc-internal-format
 msgid "%<device%> id must be integral"
 msgstr "切片結束必須是整數"
 
-#: cp/semantics.cc:7945
+#: cp/semantics.cc:7943
 #, fuzzy, gcc-internal-format
 msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "排程資料塊大小運算式必須是積分"
 
-#: cp/semantics.cc:7974
+#: cp/semantics.cc:7972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
 msgstr "%qD 並非變數在中子句 %qs"
 
-#: cp/semantics.cc:7989
+#: cp/semantics.cc:7987
 #, gcc-internal-format
 msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:7996
+#: cp/semantics.cc:7994
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<aligned%> clauses"
 msgstr "%qD 出現一次以上在中資料子句"
 
-#: cp/semantics.cc:8011
+#: cp/semantics.cc:8009
 #, fuzzy, gcc-internal-format
 msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "排程資料塊大小運算式必須是積分"
 
-#: cp/semantics.cc:8044
+#: cp/semantics.cc:8042
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
 msgstr "%qD 並非變數在中子句 %qs"
 
-#: cp/semantics.cc:8055
+#: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<nontemporal%> clauses"
 msgstr "%qD 出現一次以上在中資料子句"
 
-#: cp/semantics.cc:8072
+#: cp/semantics.cc:8070
 #, fuzzy, gcc-internal-format
 msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%qE 並非變數在中子句 %qs"
 
-#: cp/semantics.cc:8084
+#: cp/semantics.cc:8082
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
 msgstr "%qD 並非變數在中子句 %qs"
 
-#: cp/semantics.cc:8093
+#: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
 msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD 出現一次以上在中資料子句"
 
-#: cp/semantics.cc:8241
+#: cp/semantics.cc:8239
 #, fuzzy, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
 msgstr "變數長度陣列被使用"
 
-#: cp/semantics.cc:8743
+#: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
 msgid "template %qE in clause %qs"
 msgstr "太多 %qs 子句"
 
-#: cp/semantics.cc:8746
+#: cp/semantics.cc:8744
 #, gcc-internal-format
 msgid "overloaded function name %qE in clause %qs"
 msgstr ""
 
-#: cp/semantics.cc:8815
+#: cp/semantics.cc:8813
 #, fuzzy, gcc-internal-format
 msgid "%<grainsize%> expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:8845
+#: cp/semantics.cc:8843
 #, fuzzy, gcc-internal-format
 msgid "%<priority%> expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:8875
+#: cp/semantics.cc:8873
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:8888
+#: cp/semantics.cc:8886
 #, fuzzy, gcc-internal-format
 msgid "%<hint%> expression must be constant integer expression"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: cp/semantics.cc:8905
+#: cp/semantics.cc:8903
 #, fuzzy, gcc-internal-format
 msgid "%<filter%> expression must be integral"
 msgstr "numthreads 運算式必須是積分(_T)"
 
-#: cp/semantics.cc:8936
+#: cp/semantics.cc:8934
 #, fuzzy, gcc-internal-format
 #| msgid "type to vector delete is neither pointer or array type"
 msgid "%qs variable is neither a pointer nor reference to pointer"
 msgstr "向量 delete 的引數類型既非指標也非陣列"
 
-#: cp/semantics.cc:8946
+#: cp/semantics.cc:8944
 #, gcc-internal-format
 msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
 msgstr ""
 
-#: cp/semantics.cc:9030
+#: cp/semantics.cc:9028
 #, fuzzy, gcc-internal-format
 #| msgid "%<tree%> is not defined as a pointer type"
 msgid "%<tile%> argument needs integral type"
 msgstr "%<tree%> 未被定義為一個指標類型"
 
-#: cp/semantics.cc:9447
+#: cp/semantics.cc:9445
 #, gcc-internal-format
 msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
 msgstr ""
 
-#: cp/semantics.cc:9674
+#: cp/semantics.cc:9672
 #, fuzzy, gcc-internal-format
 msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
 msgstr "%<threadprivate%> %qD 不是檔案，命名空間或區塊範圍變數"
 
-#: cp/semantics.cc:9688
+#: cp/semantics.cc:9686
 #, fuzzy, gcc-internal-format
 msgid "%<threadprivate%> %qE directive not in %qT definition"
 msgstr "%<threadprivate%> %qE 指令無法在中 %qT 定義"
 
-#: cp/semantics.cc:10425
+#: cp/semantics.cc:10423
 #, fuzzy, gcc-internal-format
 msgid "difference between %qE and %qD does not have integer type"
 msgstr "差異介於 %qE 和 %qD 沒有整數類型"
 
-#: cp/semantics.cc:10910
+#: cp/semantics.cc:10908
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp simd%> used with class iteration variable %qE"
 msgstr "%<# pragma omp 基元的 update%>使用兩不同的變數用於記憶體"
 
-#: cp/semantics.cc:11230 cp/semantics.cc:11240
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
 #, fuzzy, gcc-internal-format
 msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
 msgstr "%<# pragma omp 基元的 update%>使用兩不同的變數用於記憶體"
 
-#: cp/semantics.cc:11582
+#: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
 msgstr ""
 
-#: cp/semantics.cc:11598
+#: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
 msgstr ""
 
-#: cp/semantics.cc:11607
+#: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
 msgstr ""
 
-#: cp/semantics.cc:11665
+#: cp/semantics.cc:11663
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: cp/semantics.cc:11673
+#: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
 msgstr ""
 
-#: cp/semantics.cc:11700
+#: cp/semantics.cc:11698
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: cp/semantics.cc:11727
+#: cp/semantics.cc:11725
 #, fuzzy, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: cp/semantics.cc:11753
+#: cp/semantics.cc:11751
 #, fuzzy, gcc-internal-format
 msgid "static assertion failed: %.*s"
 msgstr "靜態假設失敗：%s"
 
-#: cp/semantics.cc:11761
+#: cp/semantics.cc:11759
 #, fuzzy, gcc-internal-format
 msgid "non-constant condition for static assertion"
 msgstr "non-constant 條件用於靜態假設"
 
-#: cp/semantics.cc:11790
+#: cp/semantics.cc:11788
 #, fuzzy, gcc-internal-format
 msgid "argument to %<decltype%> must be an expression"
 msgstr "引數到 decltype 必須是運算式"
 
-#: cp/semantics.cc:11836
+#: cp/semantics.cc:11834
 #, fuzzy, gcc-internal-format
 msgid "%<decltype%> cannot resolve address of overloaded function"
 msgstr "decltype 無法解析位址的多載化函式"
 
-#: cp/semantics.cc:12148 rust/backend/rust-tree.cc:5225
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
 msgstr ""
 
-#: cp/semantics.cc:12157 rust/backend/rust-tree.cc:5234
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
 #, gcc-internal-format
 msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12328 rust/backend/rust-tree.cc:5838
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
 msgstr ""
 
-#: cp/semantics.cc:12352 rust/backend/rust-tree.cc:5882
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
 #, fuzzy, gcc-internal-format
 #| msgid "%<__builtin_next_arg%> called without an argument"
 msgid "%<__builtin_is_corresponding_member%> needs two arguments"
 msgstr "呼叫 %<__builtin_next_arg%> 時沒有給定引數"
 
-#: cp/semantics.cc:12363 rust/backend/rust-tree.cc:5892
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
 #, gcc-internal-format
 msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
-#: cp/semantics.cc:12847
+#: cp/semantics.cc:12837
 #, fuzzy, gcc-internal-format
 msgid "%qD is not a class or alias template"
 msgstr "%qE 不是一個範本"
 
-#: cp/semantics.cc:13036
+#: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
 msgid "operand of fold expression has no unexpanded parameter packs"
 msgstr "第三運算元的條件運算式沒有任何效果"
 
-#: cp/semantics.cc:13096
+#: cp/semantics.cc:13086
 #, fuzzy, gcc-internal-format
 #| msgid "template argument %qE involves template parameter(s)"
 msgid "both arguments in binary fold have unexpanded parameter packs"
 msgstr "範本引數 %qE 混雜了範本參數"
 
-#: cp/semantics.cc:13098
+#: cp/semantics.cc:13088
 #, gcc-internal-format
 msgid "no unexpanded parameter packs in binary fold"
 msgstr ""
 
-#: cp/semantics.cc:13116
+#: cp/semantics.cc:13106
 #, fuzzy, gcc-internal-format
 #| msgid "unsupported argument to %<__builtin_return_address%>"
 msgid "non-pointer argument to %<__builtin_launder%>"
@@ -67839,1213 +67877,1213 @@ msgstr "%<__builtin_return_address%> 的引數不受支援"
 #. std::bit_cast for destination ARRAY_TYPE is not possible,
 #. as functions may not return an array, so don't bother trying
 #. to support this (and then deal with VLAs etc.).
-#: cp/semantics.cc:13165
+#: cp/semantics.cc:13155
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
 msgstr ""
 
-#: cp/semantics.cc:13171
+#: cp/semantics.cc:13161
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13198
+#: cp/semantics.cc:13188
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
 msgstr ""
 
-#: cp/semantics.cc:13206
+#: cp/semantics.cc:13196
 #, gcc-internal-format
 msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
 msgstr ""
 
-#: cp/tree.cc:1486 rust/backend/rust-tree.cc:2609
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
 #, gcc-internal-format
 msgid "%qV qualifiers cannot be applied to %qT"
 msgstr "%qV 限定符不能套用到 %qT 上"
 
-#: cp/tree.cc:2004
+#: cp/tree.cc:2007
 #, fuzzy, gcc-internal-format
 msgid "statement-expression in a constant expression"
 msgstr "運算式 %qE 並非 constant-expression"
 
-#: cp/tree.cc:4524
+#: cp/tree.cc:4527
 #, gcc-internal-format
 msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
 msgstr ""
 
-#: cp/tree.cc:4528
+#: cp/tree.cc:4531
 #, gcc-internal-format
 msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
 msgstr ""
 
-#: cp/tree.cc:4532
+#: cp/tree.cc:4535
 #, fuzzy, gcc-internal-format
 msgid " declared here"
 msgstr "宣告的在此"
 
-#: cp/tree.cc:4537
+#: cp/tree.cc:4540
 #, gcc-internal-format
 msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
 msgstr ""
 
-#: cp/tree.cc:4539
+#: cp/tree.cc:4542
 #, gcc-internal-format
 msgid " because all of its copy and move constructors are deleted"
 msgstr ""
 
-#: cp/tree.cc:4966
+#: cp/tree.cc:4969
 #, fuzzy, gcc-internal-format
 #| msgid "base class %qT has cv qualifiers"
 msgid "base class %qT is not public"
 msgstr "基礎類別 %qT 有 cv 限定"
 
-#: cp/tree.cc:4969
+#: cp/tree.cc:4972
 #, fuzzy, gcc-internal-format
 msgid "%qD is not public"
 msgstr "%qD 未被擷取"
 
-#: cp/tree.cc:4976
+#: cp/tree.cc:4979
 #, fuzzy, gcc-internal-format
 msgid "%qD is mutable"
 msgstr "%qD 並非變數"
 
-#: cp/tree.cc:4984
+#: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
 msgid "%qD has a non-structural type"
 msgstr "%qD 並非型態"
 
-#: cp/tree.cc:5007
+#: cp/tree.cc:5010
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or parameters"
 msgstr "只能為類別定義套用 %qE 屬性"
 
-#: cp/tree.cc:5028
+#: cp/tree.cc:5031
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute argument must be a string constant"
 msgstr "%qE 屬性引數不是字串常數"
 
-#: cp/tree.cc:5043
+#: cp/tree.cc:5046
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to functions or to class or enumeration types"
 msgstr "只能為類別定義套用 %qE 屬性"
 
-#: cp/tree.cc:5063 cp/tree.cc:5068
+#: cp/tree.cc:5066 cp/tree.cc:5071
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute can only be applied to non-static data members"
 msgstr "只能為類別定義套用 %qE 屬性"
 
-#: cp/tree.cc:5074
+#: cp/tree.cc:5077
 #, fuzzy, gcc-internal-format
 #| msgid "%qE attribute can only be applied to class definitions"
 msgid "%qE attribute cannot be applied to a bit-field"
 msgstr "只能為類別定義套用 %qE 屬性"
 
-#: cp/tree.cc:5094
+#: cp/tree.cc:5097
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute takes no arguments"
 msgstr "%qE 屬性沒有任何效果"
 
-#: cp/tree.cc:5098
+#: cp/tree.cc:5101
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
 msgstr "%qE 屬性不套用輸入"
 
-#: cp/tree.cc:5182
+#: cp/tree.cc:5185
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is not an integer constant"
 msgid "requested %<init_priority%> is not an integer constant"
 msgstr "請求的 init_priority 不是一個整數常數"
 
-#: cp/tree.cc:5204
+#: cp/tree.cc:5207
 #, gcc-internal-format
 msgid "can only use %qE attribute on file-scope definitions of objects of class type"
 msgstr "只能將 %qE 屬性用於某個類別的物件的檔案作用欄位定義"
 
-#: cp/tree.cc:5212
+#: cp/tree.cc:5215
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is out of range"
 msgid "requested %<init_priority%> %i is out of range [0, %i]"
 msgstr "請求的 init_priority 越界"
 
-#: cp/tree.cc:5223
+#: cp/tree.cc:5226
 #, fuzzy, gcc-internal-format
 #| msgid "requested init_priority is reserved for internal use"
 msgid "requested %<init_priority%> %i is reserved for internal use"
 msgstr "請求的 init_priority 保留為內部使用"
 
-#: cp/tree.cc:5253
+#: cp/tree.cc:5256
 #, fuzzy, gcc-internal-format
 msgid "redeclaration of %qD adds abi tag %qE"
 msgstr "%qD 宣告為 %qT 的一個成員"
 
-#: cp/tree.cc:5273
+#: cp/tree.cc:5276
 #, fuzzy, gcc-internal-format
 msgid "the %qE attribute requires arguments"
 msgstr "%qD 屬性需要單一 NTBS 引數"
 
-#: cp/tree.cc:5284
+#: cp/tree.cc:5287
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must be narrow string literals"
 msgstr "引數的 %qE 屬性並非字串常數"
 
-#: cp/tree.cc:5297 cp/tree.cc:5310
+#: cp/tree.cc:5300 cp/tree.cc:5313
 #, fuzzy, gcc-internal-format
 msgid "arguments to the %qE attribute must contain valid identifiers"
 msgstr "引數的 %qE 屬性並非字串常數"
 
-#: cp/tree.cc:5299
+#: cp/tree.cc:5302
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a valid declarator"
 msgid "%<%c%> is not a valid first character for an identifier"
 msgstr "%<%T::%D%> 不是一個有效的宣告"
 
-#: cp/tree.cc:5312
+#: cp/tree.cc:5315
 #, fuzzy, gcc-internal-format
 #| msgid "%<%T::%D%> is not a valid declarator"
 msgid "%<%c%> is not a valid character in an identifier"
 msgstr "%<%T::%D%> 不是一個有效的宣告"
 
-#: cp/tree.cc:5336
+#: cp/tree.cc:5339
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-class, non-enum type %qT"
 msgstr "%qE 屬性在不是類別的類型上被忽略"
 
-#: cp/tree.cc:5342
+#: cp/tree.cc:5345
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to %qT after its definition"
 msgstr "忽略屬性套用到 %qT 之後定義"
 
-#: cp/tree.cc:5349
+#: cp/tree.cc:5352
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template instantiation %qT"
 msgstr "忽略屬性套用到 %qT 之後定義"
 
-#: cp/tree.cc:5356
+#: cp/tree.cc:5359
 #, fuzzy, gcc-internal-format
 msgid "ignoring %qE attribute applied to template specialization %qT"
 msgstr "忽略屬性套用到 %qT 之後定義"
 
-#: cp/tree.cc:5378
+#: cp/tree.cc:5381
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to non-function, non-variable %qD"
 msgstr "%qE 屬性套用只有到函式"
 
-#: cp/tree.cc:5384
+#: cp/tree.cc:5387
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "%qE 屬性套用只有到函式"
 
-#: cp/tree.cc:5417
+#: cp/tree.cc:5420
 #, fuzzy, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
 msgstr "%qE 屬性引數不是字串常數"
 
-#: cp/tree.cc:6283
+#: cp/tree.cc:6290
 #, fuzzy, gcc-internal-format
 msgid "zero as null pointer constant"
 msgstr "零做為空指標常數"
 
-#: cp/tree.cc:6324 rust/backend/rust-tree.cc:3189
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
 #, fuzzy, gcc-internal-format
 #| msgid "lang_* check: failed in %s, at %s:%d"
 msgid "%<lang_*%> check: failed in %s, at %s:%d"
 msgstr "lang_* check：在 %s 中失敗，於 %s:%d"
 
-#: cp/typeck.cc:625
+#: cp/typeck.cc:628
 #, fuzzy, gcc-internal-format
 msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
 msgstr "比較介於明確的指標類型 %qT 和 %qT lacks 演員陣容"
 
-#: cp/typeck.cc:631
+#: cp/typeck.cc:634
 #, fuzzy, gcc-internal-format
 msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
 msgstr "轉換介於明確的指標類型 %qT 和 %qT lacks 演員陣容"
 
-#: cp/typeck.cc:637
+#: cp/typeck.cc:640
 #, fuzzy, gcc-internal-format
 msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
 msgstr "條件運算式介於明確的指標類型 %qT 和 %qT lacks 演員陣容"
 
-#: cp/typeck.cc:785
+#: cp/typeck.cc:788
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++禁止比較介於指標的型態 %<void *%> 和 pointer-to-function"
 
-#: cp/typeck.cc:790
+#: cp/typeck.cc:793
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++禁止轉換介於指標的型態 %<void *%> 和 pointer-to-function"
 
-#: cp/typeck.cc:795
+#: cp/typeck.cc:798
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
 msgstr "ISO C++禁止條件運算式介於指標的型態 %<void *%> 和 pointer-to-function"
 
-#: cp/typeck.cc:874
+#: cp/typeck.cc:877
 #, fuzzy, gcc-internal-format
 msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "比較介於明確的成員指標類型 %qT 和 %qT lacks 演員陣容"
 
-#: cp/typeck.cc:879
+#: cp/typeck.cc:882
 #, fuzzy, gcc-internal-format
 msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "轉換介於明確的成員指標類型 %qT 和 %qT lacks 演員陣容"
 
-#: cp/typeck.cc:884
+#: cp/typeck.cc:887
 #, fuzzy, gcc-internal-format
 msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
 msgstr "條件運算式介於明確的成員指標類型 %qT 和 %qT lacks 演員陣容"
 
-#: cp/typeck.cc:1710
+#: cp/typeck.cc:1713
 #, fuzzy, gcc-internal-format
 msgid "canonical types differ for identical types %qT and %qT"
 msgstr "權威的類型不同用於相等的類型 %T 和 %T"
 
-#: cp/typeck.cc:1717
+#: cp/typeck.cc:1720
 #, fuzzy, gcc-internal-format
 msgid "same canonical type node for different types %qT and %qT"
 msgstr "相同權威的型態節點用於不同的類型 %T 和 %T"
 
-#: cp/typeck.cc:2047
+#: cp/typeck.cc:2050
 #, gcc-internal-format
 msgid "invalid application of %qs to a member function"
 msgstr "%qs 用於成員函式無效"
 
-#: cp/typeck.cc:2152
+#: cp/typeck.cc:2148
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %<sizeof%> to a bit-field"
 msgstr "無效的應用程式的 %<sizeof%> 到 bit-field"
 
-#: cp/typeck.cc:2160
+#: cp/typeck.cc:2156
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
 msgstr "ISO C++禁止套用 %<sizeof%> 到運算式的函數型式"
 
-#: cp/typeck.cc:2225
+#: cp/typeck.cc:2221
 #, fuzzy, gcc-internal-format
 msgid "invalid application of %<__alignof%> to a bit-field"
 msgstr "無效的應用程式的 %<__alignof%>到 bit-field"
 
-#: cp/typeck.cc:2236
+#: cp/typeck.cc:2232
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
 msgstr "ISO C++禁止套用 %<__alignof%>到運算式的函數型式"
 
-#: cp/typeck.cc:2320
+#: cp/typeck.cc:2316
 #, fuzzy, gcc-internal-format
 #| msgid "size of array has non-integral type %qT"
 msgid "%<alignas%> argument has non-integral type %qT"
 msgstr "陣列 %qT 的大小的類型不是整數"
 
-#: cp/typeck.cc:2366 rust/backend/rust-tree.cc:3817
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of non-static member function %qD"
 msgid "invalid use of non-static member function of type %qT"
 msgstr "對非靜態成員函式 %qD 的使用無效"
 
-#: cp/typeck.cc:2716
+#: cp/typeck.cc:2712
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids converting a string constant to %qT"
 msgstr "不宜用轉換從字串常數到 %qT"
 
-#: cp/typeck.cc:2720
+#: cp/typeck.cc:2716
 #, fuzzy, gcc-internal-format
 msgid "deprecated conversion from string constant to %qT"
 msgstr "不宜用轉換從字串常數到 %qT"
 
-#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
 #, fuzzy, gcc-internal-format
 msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
 msgstr "要求用於成員 %qD 在中 %qE，該項是的指標類型 %qT (也許您 meant 以使用 %<->%> ?)"
 
-#: cp/typeck.cc:2839 cp/typeck.cc:3403
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
 #, gcc-internal-format
 msgid "request for member %qD in %qE, which is of non-class type %qT"
 msgstr "對成員 %qD 的請求出現在 %qE 中，而後者具有非類別類型 %qT"
 
-#: cp/typeck.cc:2873
+#: cp/typeck.cc:2869
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of nonstatic data member %qE"
 msgid "invalid use of non-static data member %qE"
 msgstr "對非靜態資料成員 %qE 的使用無效"
 
-#: cp/typeck.cc:2950
+#: cp/typeck.cc:2946
 #, fuzzy, gcc-internal-format
 msgid "invalid access to non-static data member %qD in virtual base of NULL object"
 msgstr "無效的存取到非靜態資料成員 %qD  的空值物件"
 
-#: cp/typeck.cc:3100
+#: cp/typeck.cc:3096
 #, fuzzy, gcc-internal-format
 msgid "object type %qT does not match destructor name ~%qT"
 msgstr "物件類型 %qT 不匹配解構式名稱 ~%qT"
 
-#: cp/typeck.cc:3109
+#: cp/typeck.cc:3105
 #, gcc-internal-format
 msgid "the type being destroyed is %qT, but the destructor refers to %qT"
 msgstr "被解構的類型是 %qT，但解構函式卻使用了 %qT"
 
-#: cp/typeck.cc:3251
+#: cp/typeck.cc:3247
 #, gcc-internal-format
 msgid "field %q#D can be accessed via %q#D"
 msgstr ""
 
 #. No hint.
-#: cp/typeck.cc:3270
+#: cp/typeck.cc:3266
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE"
 msgstr "%qT 沒具名為 %qE 的成員"
 
-#: cp/typeck.cc:3293
+#: cp/typeck.cc:3289
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
 msgstr ""
 
-#: cp/typeck.cc:3304
+#: cp/typeck.cc:3300
 #, gcc-internal-format
 msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
 msgstr ""
 
-#: cp/typeck.cc:3319
+#: cp/typeck.cc:3315
 #, fuzzy, gcc-internal-format
 #| msgid "%qT has no member named %qE"
 msgid "%q#T has no member named %qE; did you mean %qE?"
 msgstr "%qT 沒具名為 %qE 的成員"
 
-#: cp/typeck.cc:3433 cp/typeck.cc:3459
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
 #, gcc-internal-format
 msgid "%<%D::%D%> is not a member of %qT"
 msgstr "%<%D::%D%> 不是 %qT 的成員"
 
-#: cp/typeck.cc:3513
+#: cp/typeck.cc:3509
 #, gcc-internal-format
 msgid "%qT is not a base of %qT"
 msgstr "%qT 不是 %qT 的基礎類別"
 
-#: cp/typeck.cc:3576
+#: cp/typeck.cc:3572
 #, gcc-internal-format
 msgid "%qD is not a member template function"
 msgstr "%qD 不是一個成員範本函式"
 
-#: cp/typeck.cc:3841
+#: cp/typeck.cc:3837
 #, gcc-internal-format
 msgid "%qT is not a pointer-to-object type"
 msgstr "%qT 不是一個參照物件的類型"
 
-#: cp/typeck.cc:3873
+#: cp/typeck.cc:3869
 #, fuzzy, gcc-internal-format
 msgid "invalid use of array indexing on pointer to member"
 msgstr "無效的使用的陣列索引於成員指標"
 
-#: cp/typeck.cc:3876
+#: cp/typeck.cc:3872
 #, fuzzy, gcc-internal-format
 msgid "invalid use of unary %<*%> on pointer to member"
 msgstr "無效的使用的一元 %<*%>於成員指標"
 
-#: cp/typeck.cc:3879
+#: cp/typeck.cc:3875
 #, fuzzy, gcc-internal-format
 msgid "invalid use of implicit conversion on pointer to member"
 msgstr "無效的使用的隱含轉換於成員指標"
 
-#: cp/typeck.cc:3883
+#: cp/typeck.cc:3879
 #, gcc-internal-format
 msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
 msgstr ""
 
-#: cp/typeck.cc:3949
+#: cp/typeck.cc:3945
 #, gcc-internal-format
 msgid "subscript missing in array reference"
 msgstr "陣列參照缺少下標"
 
-#: cp/typeck.cc:4054
+#: cp/typeck.cc:4050
 #, gcc-internal-format
 msgid "subscripting array declared %<register%>"
 msgstr "按下標存取宣告為 %<register%> 的陣列"
 
-#: cp/typeck.cc:4093
+#: cp/typeck.cc:4089
 #, gcc-internal-format
 msgid "subscripted value is neither array nor pointer"
 msgstr "下標運算的左運算元既非陣列也非指標"
 
-#: cp/typeck.cc:4165
+#: cp/typeck.cc:4161
 #, gcc-internal-format
 msgid "object missing in use of %qE"
 msgstr "使用 %qE 時缺少物件"
 
-#: cp/typeck.cc:4390
+#: cp/typeck.cc:4386
 #, gcc-internal-format
 msgid "ISO C++ forbids calling %<::main%> from within program"
 msgstr "ISO C++ 不允許在程式裡呼叫 %<::main%>"
 
-#: cp/typeck.cc:4411
+#: cp/typeck.cc:4407
 #, fuzzy, gcc-internal-format
 msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
 msgstr "必須使用 %<.*%>或 %<->*%> 到呼叫成員指標函式在中 %<%E (...)%>，例如： %<(...->* %E) (...)%>"
 
-#: cp/typeck.cc:4428
+#: cp/typeck.cc:4424
 #, gcc-internal-format
 msgid "%qE cannot be used as a function"
 msgstr "%qE 不能做為函式"
 
-#: cp/typeck.cc:4431
+#: cp/typeck.cc:4427
 #, fuzzy, gcc-internal-format
 msgid "%qD cannot be used as a function"
 msgstr "%qE 不能做為函式"
 
-#: cp/typeck.cc:4434
+#: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
 msgid "expression cannot be used as a function"
 msgstr "%qE 不能做為函式"
 
-#: cp/typeck.cc:4492
+#: cp/typeck.cc:4488
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to constructor %q#D"
 msgstr "太多引數到建構子 %q#D"
 
-#: cp/typeck.cc:4493
+#: cp/typeck.cc:4489
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to constructor %q#D"
 msgstr "太少引數到建構子 %q#D"
 
-#: cp/typeck.cc:4498
+#: cp/typeck.cc:4494
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to member function %q#D"
 msgstr "太多引數到成員函式 %q#D"
 
-#: cp/typeck.cc:4499
+#: cp/typeck.cc:4495
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to member function %q#D"
 msgstr "太少引數到成員函式 %q#D"
 
-#: cp/typeck.cc:4505
+#: cp/typeck.cc:4501
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to function %q#D"
 msgstr "太多引數到函式 %q#D"
 
-#: cp/typeck.cc:4506
+#: cp/typeck.cc:4502
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to function %q#D"
 msgstr "太少引數到函式 %q#D"
 
-#: cp/typeck.cc:4516
+#: cp/typeck.cc:4512
 #, fuzzy, gcc-internal-format
 msgid "too many arguments to method %q#D"
 msgstr "太多引數到方法 %q#D"
 
-#: cp/typeck.cc:4517
+#: cp/typeck.cc:4513
 #, fuzzy, gcc-internal-format
 msgid "too few arguments to method %q#D"
 msgstr "太少引數到方法 %q#D"
 
-#: cp/typeck.cc:4520
+#: cp/typeck.cc:4516
 #, gcc-internal-format
 msgid "too many arguments to function"
 msgstr "給予函式的引數太多"
 
-#: cp/typeck.cc:4521
+#: cp/typeck.cc:4517
 #, gcc-internal-format
 msgid "too few arguments to function"
 msgstr "給予函式的引數太少"
 
-#: cp/typeck.cc:4603
+#: cp/typeck.cc:4599
 #, gcc-internal-format
 msgid "parameter %P of %qD has incomplete type %qT"
 msgstr "參數 %P (屬於 %qD)的類型 %qT 不完全"
 
-#: cp/typeck.cc:4609
+#: cp/typeck.cc:4605
 #, gcc-internal-format
 msgid "parameter %P has incomplete type %qT"
 msgstr "參數 %P 的類型 %qT 不完全"
 
-#: cp/typeck.cc:4918
+#: cp/typeck.cc:4914
 #, fuzzy, gcc-internal-format
 msgid "the address %qE will never be NULL"
 msgstr "位址的 %qD 將永不是空值"
 
-#: cp/typeck.cc:4964
+#: cp/typeck.cc:4960
 #, fuzzy, gcc-internal-format
 msgid "the address of %qD will never be NULL"
 msgstr "位址的 %qD 將永不是空值"
 
-#: cp/typeck.cc:4979
+#: cp/typeck.cc:4975
 #, fuzzy, gcc-internal-format
 msgid "the compiler can assume that the address of %qE will never be NULL"
 msgstr "比較將一律評估做為 %<true%> 用於位址的 %qD 將永不是空值"
 
-#: cp/typeck.cc:4982
+#: cp/typeck.cc:4978
 #, gcc-internal-format
 msgid "comparing the result of pointer addition %qE and NULL"
 msgstr ""
 
-#: cp/typeck.cc:4997
+#: cp/typeck.cc:4993
 #, fuzzy, gcc-internal-format
 msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "比較將一律評估做為 %<true%> 用於位址的 %qD 將永不是空值"
 
-#: cp/typeck.cc:5056
+#: cp/typeck.cc:5052
 #, fuzzy, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT"
 msgstr "運算元到 ?:有不同的類型 %qT 和 %qT"
 
-#: cp/typeck.cc:5059
+#: cp/typeck.cc:5055
 #, fuzzy, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
 msgstr "轉換介於明確的指標類型 %qT 和 %qT lacks 演員陣容"
 
-#: cp/typeck.cc:5065
+#: cp/typeck.cc:5061
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT"
 msgstr "相同權威的型態節點用於不同的類型 %T 和 %T"
 
-#: cp/typeck.cc:5068
+#: cp/typeck.cc:5064
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "比較介於明確的指標類型 %qT 和 %qT lacks 演員陣容"
 
-#: cp/typeck.cc:5105
+#: cp/typeck.cc:5101
 #, fuzzy, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
 msgstr "複雜引數必須有浮點型態"
 
-#: cp/typeck.cc:5108
+#: cp/typeck.cc:5104
 #, fuzzy, gcc-internal-format
 #| msgid "cast from function call of type %qT to non-matching type %qT"
 msgid "comparison of floating-point type %qT with enumeration type %qT"
 msgstr "從類型為 %qT 的函式呼叫轉換到不匹配的類型 %qT"
 
-#: cp/typeck.cc:5111
+#: cp/typeck.cc:5107
 #, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5115
+#: cp/typeck.cc:5111
 #, fuzzy, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
 msgstr "轉換從指標類型 %qT 到算術型式 %qT 在中 constant-expression"
 
-#: cp/typeck.cc:5124
+#: cp/typeck.cc:5120
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
 msgstr ""
 
-#: cp/typeck.cc:5127
+#: cp/typeck.cc:5123
 #, fuzzy, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
 msgstr "不相容的類型時指派輸入 %qT 從型態 %qT"
 
-#: cp/typeck.cc:5130
+#: cp/typeck.cc:5126
 #, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5134
+#: cp/typeck.cc:5130
 #, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:5269 cp/typeck.cc:5281
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
 #, gcc-internal-format
 msgid "assuming cast to type %qT from overloaded function"
 msgstr "假定從多載函式轉換到類型 %qT"
 
-#: cp/typeck.cc:5395
+#: cp/typeck.cc:5391
 #, gcc-internal-format
 msgid "NULL used in arithmetic"
 msgstr "算術運算式中使用了 NULL"
 
-#: cp/typeck.cc:5857 cp/typeck.cc:5866 cp/typeck.cc:6167 cp/typeck.cc:6176
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
 #, gcc-internal-format
 msgid "ISO C++ forbids comparison between pointer and integer"
 msgstr "ISO C++ 不允許比較指標和整數的值"
 
-#: cp/typeck.cc:6089 cp/typeck.cc:6102
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
 #, fuzzy, gcc-internal-format
 msgid "operand types are %qT and %qT"
 msgstr "沒具名為 %q#T 的類型，在%q#T 中 "
 
-#: cp/typeck.cc:6125
+#: cp/typeck.cc:6121
 #, gcc-internal-format
 msgid "three-way comparison of vectors"
 msgstr ""
 
-#: cp/typeck.cc:6159
+#: cp/typeck.cc:6155
 #, fuzzy, gcc-internal-format
 #| msgid "ordered comparison of pointer with integer zero"
 msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
 msgstr "指標與整數 0 比較大小"
 
-#: cp/typeck.cc:6206
+#: cp/typeck.cc:6202
 #, fuzzy, gcc-internal-format
 #| msgid "unordered comparison on non-floating point argument"
 msgid "unordered comparison on non-floating-point argument"
 msgstr "非浮點引數間的無效比較"
 
-#: cp/typeck.cc:6272
+#: cp/typeck.cc:6268
 #, fuzzy
 msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
 msgstr "隱含轉換從 %qT 到 %qT 到匹配其他運算元的二進位運算式"
 
-#: cp/typeck.cc:6381
+#: cp/typeck.cc:6377
 #, gcc-internal-format
 msgid "invalid operands of types %qT and %qT to binary %qO"
 msgstr "運算元類型 %qT 和 %qT 對二進位 %qO 而言無效"
 
-#: cp/typeck.cc:6782
+#: cp/typeck.cc:6778
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
 msgstr "ISO C++ 不允許在減法中使用類型為 %<void *%> 的指標"
 
-#: cp/typeck.cc:6790
+#: cp/typeck.cc:6786
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a function in subtraction"
 msgstr "ISO C++ 不允許在減法中使用函式指標"
 
-#: cp/typeck.cc:6798
+#: cp/typeck.cc:6794
 #, gcc-internal-format
 msgid "ISO C++ forbids using pointer to a method in subtraction"
 msgstr "ISO C++ 不允許在減法中使用參照方法的指標"
 
-#: cp/typeck.cc:6851
+#: cp/typeck.cc:6847
 #, gcc-internal-format
 msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
 msgstr "在指標算術中使用參照不完全類型的指標無效"
 
-#: cp/typeck.cc:6928
+#: cp/typeck.cc:6924
 #, fuzzy, gcc-internal-format
 msgid "taking address of constructor %qD"
 msgstr "需位址的建構子 %qE"
 
-#: cp/typeck.cc:6929
+#: cp/typeck.cc:6925
 #, fuzzy, gcc-internal-format
 msgid "taking address of destructor %qD"
 msgstr "需位址的解構式 %qE"
 
-#: cp/typeck.cc:6945
+#: cp/typeck.cc:6941
 #, gcc-internal-format
 msgid "invalid use of %qE to form a pointer-to-member-function"
 msgstr "用 %qE 形成成員函式指標的用法無效。"
 
-#: cp/typeck.cc:6948
+#: cp/typeck.cc:6944
 #, gcc-internal-format
 msgid "  a qualified-id is required"
 msgstr "  需要一個限定的識別碼"
 
-#: cp/typeck.cc:6955
+#: cp/typeck.cc:6951
 #, fuzzy, gcc-internal-format
 msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
 msgstr "parentheses 周圍 %qE 無法用來表單成員函式指標"
 
-#: cp/typeck.cc:7150
+#: cp/typeck.cc:7146
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ 不允許透過提取一個未限定的或帶括號的非靜態成員函式的位址來形成一個成員函式指標。請使用 %<&%T::%D%>"
 
-#: cp/typeck.cc:7156
+#: cp/typeck.cc:7152
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
 msgstr "ISO C++ 不允許透過提取一個未限定的或帶括號的非靜態成員函式的位址來形成一個成員函式指標。請使用 %<&%T::%D%>"
 
-#: cp/typeck.cc:7162
+#: cp/typeck.cc:7158
 #, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgstr "ISO C++ 不允許透過取已繫結的成員函式的位址來建構成員函式指標。請改用 %<&%T::%D%>"
 
-#: cp/typeck.cc:7168
+#: cp/typeck.cc:7164
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
 msgstr "ISO C++ 不允許透過取已繫結的成員函式的位址來建構成員函式指標。請改用 %<&%T::%D%>"
 
-#: cp/typeck.cc:7173
+#: cp/typeck.cc:7169
 #, fuzzy, gcc-internal-format
 #| msgid "(a pointer to member can only be formed with %<&%E%>)"
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
 msgstr "(成員指標只能用 %<&%E%> 構成)"
 
 #. Make this a permerror because we used to accept it.
-#: cp/typeck.cc:7206
+#: cp/typeck.cc:7202
 #, fuzzy, gcc-internal-format
 #| msgid "taking address of temporary"
 msgid "taking address of rvalue"
 msgstr "取臨時變數的位址"
 
-#: cp/typeck.cc:7223
+#: cp/typeck.cc:7219
 #, gcc-internal-format
 msgid "ISO C++ forbids taking address of function %<::main%>"
 msgstr "ISO C++ 不允許取函式 %<::main%> 的位址"
 
-#: cp/typeck.cc:7281
+#: cp/typeck.cc:7277
 #, gcc-internal-format
 msgid "cannot create pointer to reference member %qD"
 msgstr "不能建立參照參照成員 %qD 的指標"
 
-#: cp/typeck.cc:7316 cp/typeck.cc:7892 rust/backend/rust-tree.cc:4714
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
 #, fuzzy, gcc-internal-format
 #| msgid "cannot take address of bit-field %qD"
 msgid "attempt to take address of bit-field"
 msgstr "無法取得位元段 %qD 的位址"
 
-#: cp/typeck.cc:7478
+#: cp/typeck.cc:7474
 #, fuzzy, gcc-internal-format
 msgid "%<~%> on an expression of type %<bool%>"
 msgstr "需位址的運算式的型態 %<void%>"
 
-#: cp/typeck.cc:7479
+#: cp/typeck.cc:7475
 #, gcc-internal-format
 msgid "did you mean to use logical not (%<!%>)?"
 msgstr ""
 
-#: cp/typeck.cc:7611
+#: cp/typeck.cc:7607
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids incrementing an enum"
 msgstr "ISO C++禁止遞增 enum"
 
-#: cp/typeck.cc:7612
+#: cp/typeck.cc:7608
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids decrementing an enum"
 msgstr "ISO C++禁止遞減 enum"
 
-#: cp/typeck.cc:7628
+#: cp/typeck.cc:7624
 #, fuzzy, gcc-internal-format
 msgid "cannot increment a pointer to incomplete type %qT"
 msgstr "無法遞增指標到不完整型態 %qT"
 
-#: cp/typeck.cc:7630
+#: cp/typeck.cc:7626
 #, fuzzy, gcc-internal-format
 msgid "cannot decrement a pointer to incomplete type %qT"
 msgstr "無法遞減指標到不完整型態 %qT"
 
-#: cp/typeck.cc:7642
+#: cp/typeck.cc:7638
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids incrementing a pointer of type %qT"
 msgstr "ISO C++禁止遞增指標的型態 %qT"
 
-#: cp/typeck.cc:7644
+#: cp/typeck.cc:7640
 #, fuzzy, gcc-internal-format
 msgid "ISO C++ forbids decrementing a pointer of type %qT"
 msgstr "ISO C++禁止遞減指標的型態 %qT"
 
-#: cp/typeck.cc:7684
+#: cp/typeck.cc:7680
 #, gcc-internal-format
 msgid "%qs expression of %<volatile%>-qualified type is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7697
+#: cp/typeck.cc:7693
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator--%> is forbidden"
 msgstr ""
 
-#: cp/typeck.cc:7707
+#: cp/typeck.cc:7703
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
 msgstr ""
 
-#: cp/typeck.cc:7715
+#: cp/typeck.cc:7711
 #, gcc-internal-format
 msgid "use of an operand of type %qT in %<operator++%> is deprecated"
 msgstr ""
 
-#: cp/typeck.cc:7904 rust/backend/rust-tree.cc:4726
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
 #, gcc-internal-format
 msgid "cannot take the address of %<this%>, which is an rvalue expression"
 msgstr "無法取右值運算式 %<this%> 的位址"
 
-#: cp/typeck.cc:7926 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
 msgstr "要求明確暫存器變數 %qD 的位址。"
 
-#: cp/typeck.cc:7931 rust/backend/rust-tree.cc:4752
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
 msgid "address requested for %qD, which is declared %<register%>"
 msgstr "請求宣告為 %<register%> 的 %qD 的位址"
 
-#: cp/typeck.cc:8002
+#: cp/typeck.cc:7998
 #, fuzzy, gcc-internal-format
 msgid "list-initializer for non-class type must not be parenthesized"
 msgstr "list-initializer 用於 non-class 型態必須不被 parenthesized"
 
-#: cp/typeck.cc:8014
+#: cp/typeck.cc:8010
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in initializer"
 msgstr "運算式清單視為複合式表示式在中初始設定式"
 
-#: cp/typeck.cc:8018
+#: cp/typeck.cc:8014
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in mem-initializer"
 msgstr "運算式清單視為複合式表示式在中 mem-initializer"
 
-#: cp/typeck.cc:8022
+#: cp/typeck.cc:8018
 #, fuzzy, gcc-internal-format
 msgid "expression list treated as compound expression in functional cast"
 msgstr "運算式清單視為複合式表示式在中 functional 演員陣容"
 
-#: cp/typeck.cc:8060
+#: cp/typeck.cc:8056
 #, gcc-internal-format, gfc-internal-format
 msgid "%s expression list treated as compound expression"
 msgstr "%s 運算式清單被看作複合運算式"
 
-#: cp/typeck.cc:8161
+#: cp/typeck.cc:8157
 #, fuzzy, gcc-internal-format
 msgid "no context to resolve type of %qE"
 msgstr "沒有語境到解析型態的 %qE"
 
-#: cp/typeck.cc:8198
+#: cp/typeck.cc:8194
 #, fuzzy, gcc-internal-format
 msgid "cast from type %qT to type %qT casts away qualifiers"
 msgstr "演員陣容從型態 %qT 輸入 %qT 演員陣容暫離限定元"
 
-#: cp/typeck.cc:8204
+#: cp/typeck.cc:8200
 #, fuzzy, gcc-internal-format
 msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "staticcast 從型態 %qT 輸入 %qT 演員陣容暫離限定元(_C)"
 
-#: cp/typeck.cc:8211
+#: cp/typeck.cc:8207
 #, fuzzy, gcc-internal-format
 msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
 msgstr "reinterpretcast 從型態 %qT 輸入 %qT 演員陣容暫離限定元(_C)"
 
-#: cp/typeck.cc:8237
+#: cp/typeck.cc:8233
 #, fuzzy, gcc-internal-format
 msgid "useless cast to type %q#T"
 msgstr "%qT 使用了局部類型 %qT"
 
-#: cp/typeck.cc:8251
+#: cp/typeck.cc:8247
 #, fuzzy, gcc-internal-format
 #| msgid "type qualifiers ignored on function return type"
 msgid "type qualifiers ignored on cast result type"
 msgstr "忽略函式回傳類型的類型限定"
 
-#: cp/typeck.cc:8699
+#: cp/typeck.cc:8695
 #, fuzzy, gcc-internal-format
 #| msgid "invalid static_cast from type %qT to type %qT"
 msgid "invalid %<static_cast%> from type %qT to type %qT"
 msgstr "從類型 %qT 到類型 %qT 中的 static_cast 無效"
 
-#: cp/typeck.cc:8705 cp/typeck.cc:8711 cp/typeck.cc:10422
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
 #, fuzzy, gcc-internal-format
 #| msgid "return type %q#T is incomplete"
 msgid "class type %qT is incomplete"
 msgstr "回傳值類型 %q#T 為不完全"
 
-#: cp/typeck.cc:8739
+#: cp/typeck.cc:8735
 #, fuzzy
 #| msgid "converting from %qT to %qT"
 msgid "converting from %qH to %qI"
 msgstr "從 %qT 轉換到 %qT"
 
-#: cp/typeck.cc:8814
+#: cp/typeck.cc:8810
 #, fuzzy, gcc-internal-format
 #| msgid "invalid cast of an rvalue expression of type %qT to type %qT"
 msgid "invalid cast of a prvalue expression of type %qT to type %qT"
 msgstr "從具有類型 %qT 的右值運算式到類型 %qT 中的轉換無效"
 
-#: cp/typeck.cc:8884
+#: cp/typeck.cc:8880
 #, fuzzy
 #| msgid "cast from %qT to %qT loses precision"
 msgid "cast from %qH to %qI loses precision"
 msgstr "從 %qT 到 %qT 的轉換損失精度"
 
-#: cp/typeck.cc:8909
+#: cp/typeck.cc:8905
 msgid "cast between incompatible function types from %qH to %qI"
 msgstr ""
 
-#: cp/typeck.cc:8920
+#: cp/typeck.cc:8916
 #, fuzzy
 msgid "cast between incompatible pointer to member types from %qH to %qI"
 msgstr "比較介於明確的成員指標類型 %qT 和 %qT lacks 演員陣容"
 
-#: cp/typeck.cc:8941 cp/typeck.cc:9131
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
 #, fuzzy
 #| msgid "cast from %qT to %qT increases required alignment of target type"
 msgid "cast from %qH to %qI increases required alignment of target type"
 msgstr "從 %qT 到 %qT 的轉換增大了目的類型的對齊需求"
 
-#: cp/typeck.cc:8958
+#: cp/typeck.cc:8954
 #, fuzzy, gcc-internal-format
 #| msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
 msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
 msgstr "ISO C++ 不允許在函式指標和物件指標間進行轉換"
 
-#: cp/typeck.cc:8972
+#: cp/typeck.cc:8968
 #, gcc-internal-format
 msgid "invalid cast from type %qT to type %qT"
 msgstr "從類型 %qT 到類型 %qT 的轉換無效"
 
-#: cp/typeck.cc:9045
+#: cp/typeck.cc:9041
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
 msgstr "在類型 %qT 上使用 const_cast 無效，因為它既不是指標，也不是參照，也不是資料成員指標"
 
-#: cp/typeck.cc:9054
+#: cp/typeck.cc:9050
 #, fuzzy, gcc-internal-format
 #| msgid "invalid use of const_cast with type %qT, which is a pointer or reference to a function type"
 msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
 msgstr "在類型 %qT 上使用 const_cast 無效，因為它是一個指標函式類型的指標或參照"
 
-#: cp/typeck.cc:9096
+#: cp/typeck.cc:9092
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast of an rvalue of type %qT to type %qT"
 msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
 msgstr "從類型 %qT 到類型 %qT 中的 const_cast 無效"
 
-#: cp/typeck.cc:9166
+#: cp/typeck.cc:9162
 #, fuzzy, gcc-internal-format
 #| msgid "invalid const_cast from type %qT to type %qT"
 msgid "invalid %<const_cast%> from type %qT to type %qT"
 msgstr "從類型 %qT 到類型 %qT 中的 const_cast 無效"
 
-#: cp/typeck.cc:9267 cp/typeck.cc:9276
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
 #, gcc-internal-format
 msgid "ISO C++ forbids casting to an array type %qT"
 msgstr "ISO C++ 不允許轉換為陣列類型 %qT"
 
-#: cp/typeck.cc:9285
+#: cp/typeck.cc:9281
 #, gcc-internal-format
 msgid "invalid cast to function type %qT"
 msgstr "向函式類型 %qT 的轉換無效"
 
-#: cp/typeck.cc:9398
+#: cp/typeck.cc:9394
 #, fuzzy, gcc-internal-format
 #| msgid "cannot convert %qE from type %qT to type %qT"
 msgid "moving %qE of type %qT to itself"
 msgstr "無法將 %qE 從類型 %qT 轉換到類型 %qT"
 
-#: cp/typeck.cc:9399 cp/typeck.cc:10951 cp/typeck.cc:10967 cp/typeck.cc:10992
-#: cp/typeck.cc:11029
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
 #, gcc-internal-format
 msgid "remove %<std::move%> call"
 msgstr ""
 
-#: cp/typeck.cc:9659
+#: cp/typeck.cc:9655
 #, gcc-internal-format
 msgid "  in evaluation of %<%Q(%#T, %#T)%>"
 msgstr "  在求 %<%Q(%#T, %#T)%> 值時"
 
-#: cp/typeck.cc:9719
+#: cp/typeck.cc:9715
 #, fuzzy, gcc-internal-format
 msgid "assigning to an array from an initializer list"
 msgstr "指派到陣列從初始設定式清單"
 
-#: cp/typeck.cc:9746
+#: cp/typeck.cc:9742
 #, gcc-internal-format
 msgid "incompatible types in assignment of %qT to %qT"
 msgstr "將 %qT 賦值給 %qT 時類型不相容"
 
-#: cp/typeck.cc:9762
+#: cp/typeck.cc:9758
 #, fuzzy, gcc-internal-format
 msgid "array used as initializer"
 msgstr "陣列使用的做為初始設定式"
 
-#: cp/typeck.cc:9764
+#: cp/typeck.cc:9760
 #, fuzzy, gcc-internal-format
 msgid "invalid array assignment"
 msgstr "無效的陣列指派"
 
-#: cp/typeck.cc:9900
+#: cp/typeck.cc:9896
 #, gcc-internal-format
 msgid "   in pointer to member function conversion"
 msgstr "  在成員函式指標轉換中"
 
-#: cp/typeck.cc:9914
+#: cp/typeck.cc:9910
 #, gcc-internal-format
 msgid "pointer to member conversion via virtual base %qT"
 msgstr "成員指標轉換經由虛基礎類別 %qT"
 
-#: cp/typeck.cc:9961 cp/typeck.cc:9980
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
 #, gcc-internal-format
 msgid "   in pointer to member conversion"
 msgstr "  在成員指標轉換中"
 
-#: cp/typeck.cc:10061
+#: cp/typeck.cc:10057
 #, gcc-internal-format
 msgid "invalid conversion to type %qT from type %qT"
 msgstr "到類型 %qT 的轉換無效，從類型 %qT"
 
-#: cp/typeck.cc:10381
+#: cp/typeck.cc:10377
 #, fuzzy
 msgid "cannot convert %qH to %qI in default argument"
 msgstr "無法轉換 %qT 到 %qT 在中預設引數"
 
-#: cp/typeck.cc:10386
+#: cp/typeck.cc:10382
 #, fuzzy
 msgid "cannot convert %qH to %qI in argument passing"
 msgstr "無法轉換 %qT 到 %qT 在中引數傳遞"
 
-#: cp/typeck.cc:10395
+#: cp/typeck.cc:10391
 #, fuzzy
 msgid "cannot convert %qH to %qI in initialization"
 msgstr "無法轉換 %qT 到 %qT 在中初始化"
 
-#: cp/typeck.cc:10399
+#: cp/typeck.cc:10395
 #, fuzzy
 msgid "cannot convert %qH to %qI in return"
 msgstr "無法轉換 %qT 到 %qT 在中回傳"
 
-#: cp/typeck.cc:10404
+#: cp/typeck.cc:10400
 #, fuzzy
 msgid "cannot convert %qH to %qI in assignment"
 msgstr "無法轉換 %qT 到 %qT 在中指派"
 
-#: cp/typeck.cc:10440
+#: cp/typeck.cc:10436
 #, fuzzy, gcc-internal-format
 msgid "parameter %qP of %qD might be a candidate for a format attribute"
 msgstr "參數 %qP 的 %qD 也許是 candidate 用於格式屬性"
 
-#: cp/typeck.cc:10444
+#: cp/typeck.cc:10440
 #, fuzzy, gcc-internal-format
 msgid "parameter might be a candidate for a format attribute"
 msgstr "參數也許是 candidate 用於格式屬性"
 
-#: cp/typeck.cc:10449
+#: cp/typeck.cc:10445
 #, fuzzy, gcc-internal-format
 msgid "target of conversion might be a candidate for a format attribute"
 msgstr "目標的轉換也許是 candidate 用於格式屬性"
 
-#: cp/typeck.cc:10454
+#: cp/typeck.cc:10450
 #, fuzzy, gcc-internal-format
 msgid "target of initialization might be a candidate for a format attribute"
 msgstr "目標的初始化也許是 candidate 用於格式屬性"
 
-#: cp/typeck.cc:10464
+#: cp/typeck.cc:10460
 #, fuzzy, gcc-internal-format
 msgid "left-hand side of assignment might be a candidate for a format attribute"
 msgstr "left-hand 側邊的指派也許是 candidate 用於格式屬性"
 
-#: cp/typeck.cc:10550
+#: cp/typeck.cc:10546
 #, fuzzy, gcc-internal-format
 #| msgid "in passing argument %P of %q+D"
 msgid "in passing argument %P of %qD"
 msgstr "在傳遞引數 %P (屬於 %q+D)"
 
-#: cp/typeck.cc:10634
+#: cp/typeck.cc:10630
 #, gcc-internal-format
 msgid "returning reference to temporary"
 msgstr "回傳臨時變數的參照"
 
-#: cp/typeck.cc:10637
+#: cp/typeck.cc:10633
 #, fuzzy, gcc-internal-format
 #| msgid "returning reference to temporary"
 msgid "returning pointer to temporary"
 msgstr "回傳臨時變數的參照"
 
-#: cp/typeck.cc:10640
+#: cp/typeck.cc:10636
 #, gcc-internal-format
 msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10676
+#: cp/typeck.cc:10672
 #, fuzzy, gcc-internal-format
 #| msgid "reference to local variable %q+D returned"
 msgid "reference to local variable %qD returned"
 msgstr "回傳了對局部變數的 %q+D 的參照"
 
-#: cp/typeck.cc:10680
+#: cp/typeck.cc:10676
 #, gcc-internal-format
 msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
 msgstr ""
 
-#: cp/typeck.cc:10686
+#: cp/typeck.cc:10682
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of label %qD returned"
 msgstr "回傳了局部變數的 %q+D 的位址"
 
-#: cp/typeck.cc:10690
+#: cp/typeck.cc:10686
 #, fuzzy, gcc-internal-format
 #| msgid "address of local variable %q+D returned"
 msgid "address of local variable %qD returned"
 msgstr "回傳了局部變數的 %q+D 的位址"
 
-#: cp/typeck.cc:10950
+#: cp/typeck.cc:10946
 #, gcc-internal-format
 msgid "moving a temporary object prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10965
+#: cp/typeck.cc:10961
 #, gcc-internal-format
 msgid "moving a local object in a return statement prevents copy elision"
 msgstr ""
 
-#: cp/typeck.cc:10991 cp/typeck.cc:11026
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
 #, fuzzy, gcc-internal-format
 msgid "redundant move in return statement"
 msgstr "太多值在中回傳敘述"
 
-#: cp/typeck.cc:11028
+#: cp/typeck.cc:11024
 #, fuzzy, gcc-internal-format
 msgid "redundant move in initialization"
 msgstr "太多值在中回傳敘述"
 
-#: cp/typeck.cc:11066
+#: cp/typeck.cc:11062
 #, gcc-internal-format
 msgid "returning a value from a destructor"
 msgstr "解構函式回傳值"
 
 #. If a return statement appears in a handler of the
 #. function-try-block of a constructor, the program is ill-formed.
-#: cp/typeck.cc:11078
+#: cp/typeck.cc:11074
 #, gcc-internal-format
 msgid "cannot return from a handler of a function-try-block of a constructor"
 msgstr "不能從建構式的異常處理中回傳"
 
 #. You can't return a value from a constructor.
-#: cp/typeck.cc:11081
+#: cp/typeck.cc:11077
 #, gcc-internal-format
 msgid "returning a value from a constructor"
 msgstr "建構式回傳值"
 
 #. Give a helpful error message.
-#: cp/typeck.cc:11120 cp/typeck.cc:11166
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
 #, gcc-internal-format
 msgid "return-statement with no value, in function returning %qT"
 msgstr "在回傳 %qT 的函式中，回傳敘述不帶回傳值"
 
-#: cp/typeck.cc:11128
+#: cp/typeck.cc:11124
 #, fuzzy, gcc-internal-format
 msgid "returning initializer list"
 msgstr "<brace-enclosed initializer list>"
 
-#: cp/typeck.cc:11147
+#: cp/typeck.cc:11143
 #, fuzzy, gcc-internal-format
 msgid "inconsistent types %qT and %qT deduced for lambda return type"
 msgstr "不一致類型 %qT 和 %qT deduced 用於 lambda 傳回類型"
 
-#: cp/typeck.cc:11150
+#: cp/typeck.cc:11146
 #, fuzzy, gcc-internal-format
 msgid "inconsistent deduction for auto return type: %qT and then %qT"
 msgstr "不一致推導用於 %qT：%qT 然後 %qT"
 
-#: cp/typeck.cc:11185
+#: cp/typeck.cc:11181
 #, fuzzy, gcc-internal-format
 #| msgid "return-statement with no value, in function returning %qT"
 msgid "return-statement with a value, in function returning %qT"
 msgstr "在回傳 %qT 的函式中，回傳敘述不帶回傳值"
 
-#: cp/typeck.cc:11214
+#: cp/typeck.cc:11210
 #, fuzzy, gcc-internal-format
 #| msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or -fcheck-new is in effect)"
 msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
 msgstr "%<operator new%> 不能回傳 NULL，除非它被宣告為 %<throw()%> (或 -fcheck-new 起作用)"
 
-#: cp/typeck.cc:11303
+#: cp/typeck.cc:11299
 #, fuzzy, gcc-internal-format
 #| msgid "invalid covariant return type for %q+#D"
 msgid "not eliding copy on return from %qD"
 msgstr "%q+#D 的協變回傳類型無效"
 
-#: cp/typeck.cc:11315
+#: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
 msgstr ""
 
-#: cp/typeck.cc:11902
+#: cp/typeck.cc:11898
 #, fuzzy, gcc-internal-format
 msgid "using rvalue as lvalue"
 msgstr "使用暫時的做為 lvalue"
@@ -69274,164 +69312,164 @@ msgstr "多載化函式不具任何語境的類型資訊"
 msgid "insufficient contextual information to determine type"
 msgstr "不足的語境的資訊到決定型態"
 
-#: cp/typeck2.cc:832
+#: cp/typeck2.cc:838
 #, gcc-internal-format
 msgid "constructor syntax used, but no constructor declared for type %qT"
 msgstr "使用了建構式的語法，但沒有為類型 %qT 宣告建構式"
 
-#: cp/typeck2.cc:883 cp/typeck2.cc:900
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
 #, fuzzy, gcc-internal-format
 msgid "%<constinit%> variable %qD does not have a constant initializer"
 msgstr "constexpr 靜態資料成員 %qD 必須有初始設定式"
 
-#: cp/typeck2.cc:1088
+#: cp/typeck2.cc:1094
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
 msgstr "narrowing 轉換的 %qE 從 %qT 到 %qT 內部 {} 被不當形式的在中 C++11"
 
-#: cp/typeck2.cc:1100 cp/typeck2.cc:1112
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
 #, fuzzy
 msgid "narrowing conversion of %qE from %qH to %qI"
 msgstr "narrowing 轉換的 %qE 從 %qT 到 %qT 內部 {}"
 
-#: cp/typeck2.cc:1103
+#: cp/typeck2.cc:1109
 #, fuzzy, gcc-internal-format
 msgid " the expression has a constant value but is not a C++ constant-expression"
 msgstr "運算式在中靜態假設不是整數常數運算式"
 
-#: cp/typeck2.cc:1275
+#: cp/typeck2.cc:1281
 #, fuzzy, gcc-internal-format
 #| msgid "initializer-string for array of chars is too long"
 msgid "initializer-string for %qT is too long"
 msgstr "用以初始化字元陣列的字串太長"
 
-#: cp/typeck2.cc:1338
+#: cp/typeck2.cc:1344
 #, gcc-internal-format
 msgid "initializing a base class of type %qT results in object slicing"
 msgstr ""
 
-#: cp/typeck2.cc:1340
+#: cp/typeck2.cc:1346
 #, fuzzy, gcc-internal-format
 #| msgid "braces around scalar initializer"
 msgid "remove %<{ }%> around initializer"
 msgstr "標量初始化帶大括號"
 
-#: cp/typeck2.cc:1360
+#: cp/typeck2.cc:1366
 #, gcc-internal-format
 msgid "cannot initialize aggregate of type %qT with a compound literal"
 msgstr "不可使用複合原文初始化類型為 %qT 的聚集"
 
-#: cp/typeck2.cc:1820 cp/typeck2.cc:1851
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
 #, gcc-internal-format
 msgid "missing initializer for member %qD"
 msgstr "成員 %qD 缺少初始值設定"
 
-#: cp/typeck2.cc:1827
+#: cp/typeck2.cc:1833
 #, gcc-internal-format
 msgid "member %qD is uninitialized reference"
 msgstr "成員 %qD 是未初始化的參照"
 
-#: cp/typeck2.cc:1834
+#: cp/typeck2.cc:1840
 #, fuzzy, gcc-internal-format
 #| msgid "member %qD is uninitialized reference"
 msgid "member %qD with uninitialized reference fields"
 msgstr "成員 %qD 是未初始化的參照"
 
-#: cp/typeck2.cc:1920
+#: cp/typeck2.cc:1926
 #, fuzzy, gcc-internal-format
 msgid "designator order for field %qD does not match declaration order in %qT"
 msgstr "型態的 %qD 不匹配原來的宣告"
 
-#: cp/typeck2.cc:1993
+#: cp/typeck2.cc:1999
 #, gcc-internal-format
 msgid "no field %qD found in union being initialized"
 msgstr "在初始化的聯合中找不到欄位 %qD"
 
-#: cp/typeck2.cc:2004
+#: cp/typeck2.cc:2010
 #, gcc-internal-format
 msgid "index value instead of field name in union initializer"
 msgstr "在聯合初始值設定中出現了索引值而不是欄位名"
 
-#: cp/typeck2.cc:2219
+#: cp/typeck2.cc:2225
 #, gcc-internal-format
 msgid "circular pointer delegation detected"
 msgstr "偵測到循環指標代理"
 
-#: cp/typeck2.cc:2233
+#: cp/typeck2.cc:2239
 #, gcc-internal-format
 msgid "base operand of %<->%> has non-pointer type %qT"
 msgstr "%<->%> 的基運算元具有非指標類型 %qT"
 
-#: cp/typeck2.cc:2263
+#: cp/typeck2.cc:2269
 #, gcc-internal-format
 msgid "result of %<operator->()%> yields non-pointer result"
 msgstr "%<operator->()%> 的結果給出了非指標的結果"
 
-#: cp/typeck2.cc:2265
+#: cp/typeck2.cc:2271
 #, gcc-internal-format
 msgid "base operand of %<->%> is not a pointer"
 msgstr "%<->%> 的左運算元不是一個指標"
 
-#: cp/typeck2.cc:2292
+#: cp/typeck2.cc:2298
 #, gcc-internal-format
 msgid "%qE cannot be used as a member pointer, since it is of type %qT"
 msgstr "%qE 不能做為成員指標，因為它的類型為 %qT"
 
-#: cp/typeck2.cc:2301
+#: cp/typeck2.cc:2307
 #, fuzzy, gcc-internal-format
 msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
 msgstr "無法套用成員指標 %qE 到 %qE，該項是的 non-class 型態 %qT"
 
-#: cp/typeck2.cc:2323
+#: cp/typeck2.cc:2329
 #, gcc-internal-format
 msgid "pointer to member type %qT incompatible with object type %qT"
 msgstr "成員指標類型 %qT 與物件類型 %qT 不相容"
 
-#: cp/typeck2.cc:2385
+#: cp/typeck2.cc:2391
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an rvalue"
 msgstr "在算術運算式中使用了成員指標"
 
-#: cp/typeck2.cc:2396
+#: cp/typeck2.cc:2402
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an lvalue"
 msgstr "在算術運算式中使用了成員指標"
 
-#: cp/typeck2.cc:2404
+#: cp/typeck2.cc:2410
 #, fuzzy, gcc-internal-format
 #| msgid "pointer to member function used in arithmetic"
 msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
 msgstr "在算術運算式中使用了成員指標"
 
-#: cp/typeck2.cc:2445
+#: cp/typeck2.cc:2451
 #, fuzzy, gcc-internal-format
 msgid "functional cast to array type %qT"
 msgstr "functional 演員陣容到陣列類型 %qT"
 
-#: cp/typeck2.cc:2462
+#: cp/typeck2.cc:2468
 #, fuzzy, gcc-internal-format
 #| msgid "constructor cannot be static member function"
 msgid "%<auto(x)%> cannot be constrained"
 msgstr "建構式不能是靜態成員函式"
 
-#: cp/typeck2.cc:2467
+#: cp/typeck2.cc:2473
 #, fuzzy, gcc-internal-format
 msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
 msgstr "C++0x 自動只有可用與 -std=c++11 或 -std=gnu++11"
 
-#: cp/typeck2.cc:2492
+#: cp/typeck2.cc:2498
 #, fuzzy, gcc-internal-format
 msgid "invalid value-initialization of reference type"
 msgstr "無效的 value-initialization 的參考類型"
 
-#: cp/typeck2.cc:2733
+#: cp/typeck2.cc:2739
 #, gcc-internal-format
 msgid "call to function %qD which throws incomplete type %q#T"
 msgstr "呼叫的函式 %qD 會拋出不完全的類型 %q#T"
 
-#: cp/typeck2.cc:2736
+#: cp/typeck2.cc:2742
 #, gcc-internal-format
 msgid "call to function which throws incomplete type %q#T"
 msgstr "呼叫的函式會拋出不完全的類型 %q#T"
@@ -70456,7 +70494,7 @@ msgstr "non-parameter %qs 無法參數包裝"
 msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
 msgstr "『我』於 %L 和『J』於 %L 無法兩者是 BOZ 實字常數"
 
-#: fortran/check.cc:123 fortran/resolve.cc:11536
+#: fortran/check.cc:123 fortran/resolve.cc:11545
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid use of BOZ literal constant at %L"
 msgstr "無效的 exponent-letter『q』在中 real-literal-constant 於 %C"
@@ -71839,7 +71877,7 @@ msgstr "%C 處錯誤地指定 INTENT"
 msgid "deferred type parameter at %C"
 msgstr "Fortran 2003:已推遲型態參數於 %C"
 
-#: fortran/decl.cc:1162 fortran/resolve.cc:13326
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
 #, gcc-internal-format, gfc-internal-format
 msgid "Scalar INTEGER expression expected at %L"
 msgstr ""
@@ -72061,7 +72099,7 @@ msgstr "成分『%s』與類別於 %L 必須是 allocatable 或指標"
 msgid "Array component of structure at %C must have explicit or deferred shape"
 msgstr "陣列成分的結構於 %C 必須有明確的或已推遲形狀"
 
-#: fortran/decl.cc:2358 fortran/symbol.cc:2283
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C already declared at %L"
 msgid "Component %qs at %C already declared at %L"
@@ -72879,7 +72917,7 @@ msgid "Expected formal argument list in function definition at %C"
 msgstr "預期的形式引數清單在中函式定義於 %C"
 
 #: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
-#: fortran/symbol.cc:1923
+#: fortran/symbol.cc:1916
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
 msgstr "繫結©屬性於 %L 只能使用用於變數或共同區塊"
@@ -73710,12 +73748,12 @@ msgstr ""
 msgid "are_identical_variables: Bad type"
 msgstr ""
 
-#: fortran/dependency.cc:989
+#: fortran/dependency.cc:1021
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
 msgstr "含義 (%s) 實際引數於 %L 也許 interfere 與實際引數於 %L。"
 
-#: fortran/dependency.cc:1293
+#: fortran/dependency.cc:1325
 #, gcc-internal-format
 msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
 msgstr ""
@@ -73970,282 +74008,282 @@ msgstr "參數『%s』於 %L 未被宣告的或是變數，該項不縮小到常
 msgid "check_init_expr(): Unknown expression type"
 msgstr "需要運算式類型"
 
-#: fortran/expr.cc:3324
+#: fortran/expr.cc:3329
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be a statement function"
 msgid "Specification function %qs at %L cannot be a statement function"
 msgstr "指定函式「%s」(位於 %L)不能是一個敘述函式"
 
-#: fortran/expr.cc:3331
+#: fortran/expr.cc:3336
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be an internal function"
 msgid "Specification function %qs at %L cannot be an internal function"
 msgstr "指定函式「%s」(位於 %L)不能是一個內部函式"
 
-#: fortran/expr.cc:3338
+#: fortran/expr.cc:3343
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L must be PURE"
 msgid "Specification function %qs at %L must be PURE"
 msgstr "指定函式「%s」(位於 %L)必須為 PURE"
 
-#: fortran/expr.cc:3346
+#: fortran/expr.cc:3351
 #, fuzzy, gcc-internal-format
 #| msgid "Specification function '%s' at %L cannot be RECURSIVE"
 msgid "Specification function %qs at %L cannot be RECURSIVE"
 msgstr "指定函式「%s」(位於 %L)不能是 RECURSIVE"
 
-#: fortran/expr.cc:3493
+#: fortran/expr.cc:3498
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs not allowed in expression at %L"
 msgstr "虛引數『%s』不允許在中運算式於 %L"
 
-#: fortran/expr.cc:3501
+#: fortran/expr.cc:3506
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be OPTIONAL"
 msgid "Dummy argument %qs at %L cannot be OPTIONAL"
 msgstr "啞元「%s」(位於 %L)不能是 OPTIONAL"
 
-#: fortran/expr.cc:3508
+#: fortran/expr.cc:3513
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy argument '%s' at %L cannot be INTENT(OUT)"
 msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
 msgstr "「%s」啞元引數在 %L 處不能是 INTENT(OUT)"
 
-#: fortran/expr.cc:3530
+#: fortran/expr.cc:3535
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' cannot appear in the expression at %L"
 msgid "Variable %qs cannot appear in the expression at %L"
 msgstr "變數「%s」不能出現在 %L 處的運算式中"
 
-#: fortran/expr.cc:3561
+#: fortran/expr.cc:3566
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression type"
 msgid "check_restricted(): Unknown expression type"
 msgstr "需要運算式類型"
 
-#: fortran/expr.cc:3581
+#: fortran/expr.cc:3586
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be of INTEGER type, found %s"
 msgstr "運算式於 %L 必須是的整數類型，找到 %s"
 
-#: fortran/expr.cc:3593
+#: fortran/expr.cc:3598
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L must be PURE"
 msgstr "函式『%s』於 %L 必須是 PURE"
 
-#: fortran/expr.cc:3602
+#: fortran/expr.cc:3607
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression at %L must be scalar"
 msgstr "%L 處的運算式必須具有標量類型"
 
 #. Reject truncation.
-#: fortran/expr.cc:3634
+#: fortran/expr.cc:3639
 #, gcc-internal-format, gfc-internal-format
 msgid "optype_msgid overflow: %d"
 msgstr ""
 
-#: fortran/expr.cc:3638
+#: fortran/expr.cc:3643
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks in %s (%d and %d) at %L"
 msgstr "不相容的分級在中 %s (%d 和 %d) 於 %L"
 
-#: fortran/expr.cc:3652
+#: fortran/expr.cc:3657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Different shape for %s at %L on dimension %d (%d and %d)"
 msgstr "不同的形狀用於 %s 於 %L 於尺寸 %d (%d 和 %d)"
 
-#: fortran/expr.cc:3700
+#: fortran/expr.cc:3705
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3756
+#: fortran/expr.cc:3761
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L is not a VALUE"
 msgstr "『%s』於 %L 並非值"
 
-#: fortran/expr.cc:3767
+#: fortran/expr.cc:3772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Illegal stride of zero at %L"
 msgid "Illegal assignment to external procedure at %L"
 msgstr "%L 零間隔無效"
 
-#: fortran/expr.cc:3775
+#: fortran/expr.cc:3780
 #, gcc-internal-format, gfc-internal-format
 msgid "Incompatible ranks %d and %d in assignment at %L"
 msgstr "賦值中有不相容的秩 %d 和 %d，位於 %L"
 
-#: fortran/expr.cc:3782
+#: fortran/expr.cc:3787
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable type is UNKNOWN in assignment at %L"
 msgstr "%L 處賦值中的變數類型是 UNKNOWN"
 
-#: fortran/expr.cc:3794
+#: fortran/expr.cc:3799
 #, gcc-internal-format, gfc-internal-format
 msgid "NULL appears on right-hand side in assignment at %L"
 msgstr "%L 處賦值右手邊出現 NULL"
 
-#: fortran/expr.cc:3804
+#: fortran/expr.cc:3809
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "POINTER-valued function appears on right-hand side of assignment at %L"
 msgstr "%L 處賦值右手邊出現值為 POINTER 的函式"
 
-#: fortran/expr.cc:3847
+#: fortran/expr.cc:3852
 #, gcc-internal-format
 msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
 msgstr ""
 
-#: fortran/expr.cc:3854
+#: fortran/expr.cc:3859
 #, gcc-internal-format, gfc-internal-format
 msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
 msgstr ""
 
-#: fortran/expr.cc:3884
+#: fortran/expr.cc:3889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
 msgstr "不相容的類型在中資料敘述於 %L; 試圖的轉換的 %s 到 %s"
 
-#: fortran/expr.cc:3928
+#: fortran/expr.cc:3933
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is not a POINTER at %L"
 msgstr "指標指派目標並非指標於 %L"
 
-#: fortran/expr.cc:3936
+#: fortran/expr.cc:3941
 #, fuzzy, gcc-internal-format
 msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
 msgstr "『%s』在中指標指派於 %L 無法 l-value 自從它是程序"
 
-#: fortran/expr.cc:3960
+#: fortran/expr.cc:3965
 #, fuzzy, gcc-internal-format
 msgid "Expected bounds specification for %qs at %L"
 msgstr "預期的邊界規格用於『%s』於 %L"
 
-#: fortran/expr.cc:3965
+#: fortran/expr.cc:3970
 #, fuzzy, gcc-internal-format
 msgid "Bounds specification for %qs in pointer assignment at %L"
 msgstr "Fortran 2003:邊界規格用於『%s』在中指標指派於 %L"
 
-#: fortran/expr.cc:3994
+#: fortran/expr.cc:3999
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Stride must not be present at %L"
 msgstr "Stride 必須不都到位於 %L"
 
-#: fortran/expr.cc:4000 fortran/expr.cc:4020
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
 #, gcc-internal-format
 msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4008 fortran/expr.cc:4027
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
 #, gcc-internal-format
 msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
 msgstr ""
 
-#: fortran/expr.cc:4054
+#: fortran/expr.cc:4059
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer object at %L shall not have a coindex"
 msgstr "指標物件於 %L 不應該有 coindex"
 
-#: fortran/expr.cc:4075
+#: fortran/expr.cc:4080
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid procedure pointer assignment at %L"
 msgstr "無效的程序指標指派於 %L"
 
-#: fortran/expr.cc:4100
+#: fortran/expr.cc:4105
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
 msgstr "敘述函式『%s』無效在中程序指標指派於 %L"
 
-#: fortran/expr.cc:4109
+#: fortran/expr.cc:4114
 #, fuzzy, gcc-internal-format
 msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
 msgstr "摘要介面『%s』無效在中程序指標指派於 %L"
 
-#: fortran/expr.cc:4119
+#: fortran/expr.cc:4124
 #, fuzzy, gcc-internal-format
 msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
 msgstr "敘述函式『%s』無效在中程序指標指派於 %L"
 
-#: fortran/expr.cc:4125
+#: fortran/expr.cc:4130
 #, fuzzy, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "內部程序『%s』無效在中程序指標指派於 %L"
 
-#: fortran/expr.cc:4132
+#: fortran/expr.cc:4137
 #, fuzzy, gcc-internal-format
 msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
 msgstr "內部程序『%s』無效在中程序指標指派於 %L"
 
-#: fortran/expr.cc:4140
+#: fortran/expr.cc:4145
 #, fuzzy, gcc-internal-format
 msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
 msgstr "Nonintrinsic elemental 程序『%s』無效在中程序指標 assigment 於 %L"
 
-#: fortran/expr.cc:4163
+#: fortran/expr.cc:4168
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
 msgstr "不匹配在中程序指標指派於 %L:不匹配在中呼叫慣例"
 
-#: fortran/expr.cc:4216
+#: fortran/expr.cc:4221
 #, fuzzy, gcc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
 msgstr "介面不匹配在中程序指標指派於 %L:%s"
 
-#: fortran/expr.cc:4226 fortran/expr.cc:4241
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
 #, fuzzy, gcc-internal-format
 msgid "Explicit interface required for component %qs at %L: %s"
 msgstr "關鍵字引數需求明確的介面用於程序指標成分『%s』於 %L"
 
-#: fortran/expr.cc:4232 fortran/expr.cc:4247 fortran/resolve.cc:2742
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
 #, fuzzy, gcc-internal-format
 msgid "Explicit interface required for %qs at %L: %s"
 msgstr "NOPASS 或明確的介面必要項於 %C"
 
-#: fortran/expr.cc:4259
+#: fortran/expr.cc:4264
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Interface mismatch in procedure pointer assignment at %L: %s"
 msgstr "介面不匹配在中程序指標指派於 %L:%s"
 
-#: fortran/expr.cc:4268
+#: fortran/expr.cc:4273
 #, gcc-internal-format
 msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
 msgstr ""
 
-#: fortran/expr.cc:4281
+#: fortran/expr.cc:4286
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target cannot be a constant at %L"
 msgstr "指標指派目標並非指標於 %L"
 
-#: fortran/expr.cc:4295
+#: fortran/expr.cc:4300
 #, gcc-internal-format, gfc-internal-format
 msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
 msgstr ""
 
-#: fortran/expr.cc:4300
+#: fortran/expr.cc:4305
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
 msgstr "不同的類型在中指標指派於 %L; 試圖的指派的 %s 到 %s"
 
-#: fortran/expr.cc:4308
+#: fortran/expr.cc:4313
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Different kind type parameters in pointer assignment at %L"
 msgstr "不同的 kind 型態參數在中指標指派於 %L"
 
-#: fortran/expr.cc:4315
+#: fortran/expr.cc:4320
 #, gcc-internal-format, gfc-internal-format
 msgid "Different ranks in pointer assignment at %L"
 msgstr "%L 處指標賦值時秩不同"
 
-#: fortran/expr.cc:4334
+#: fortran/expr.cc:4339
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
 msgstr "分級重新映射目標是小於大小的指標 (%ld<%ld) 於 %L"
 
-#: fortran/expr.cc:4347
+#: fortran/expr.cc:4352
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
 msgstr "分級重新映射目標必須是分級 1 或僅需 contiguous 於 %L"
 
-#: fortran/expr.cc:4351
+#: fortran/expr.cc:4356
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Rank remapping target is not rank 1 at %L"
 msgstr "Fortran 2008:分級重新映射目標不是分級 1 於 %L"
@@ -74253,192 +74291,192 @@ msgstr "Fortran 2008:分級重新映射目標不是分級 1 於 %L"
 #. The test above might need to be extend when F08, Note 5.4 has to be
 #. interpreted in the way that target and pointer with the same coindex
 #. are allowed.
-#: fortran/expr.cc:4376 fortran/expr.cc:4502
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data target at %L shall not have a coindex"
 msgstr "資料目標於 %L 不應該有 coindex"
 
-#: fortran/expr.cc:4379
+#: fortran/expr.cc:4384
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Target expression in pointer assignment at %L must deliver a pointer result"
 msgstr "目標運算式在中指標指派於 %L 必須投遞指標結果"
 
-#: fortran/expr.cc:4393
+#: fortran/expr.cc:4398
 #, gcc-internal-format, gfc-internal-format
 msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
 msgstr ""
 
-#: fortran/expr.cc:4399 fortran/expr.cc:4414
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
 msgstr "指標初始化目標於 %C 必須有目標屬性"
 
-#: fortran/expr.cc:4430
+#: fortran/expr.cc:4435
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Every subscript of target specification at %L must be a constant expression"
 msgstr "非同步=說明符於 %L 必須是初始化運算式"
 
-#: fortran/expr.cc:4441
+#: fortran/expr.cc:4446
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring starting and ending points of target specification at %L must be constant expressions"
 msgstr ""
 
-#: fortran/expr.cc:4457
+#: fortran/expr.cc:4462
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
 msgstr "指標指派目標是 neither 目標 nor 指標於 %L"
 
-#: fortran/expr.cc:4472
+#: fortran/expr.cc:4477
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad target in pointer assignment in PURE procedure at %L"
 msgstr "不當的目標在中指標指派在中 PURE 程序於 %L"
 
-#: fortran/expr.cc:4481
+#: fortran/expr.cc:4486
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment with vector subscript on rhs at %L"
 msgstr "指標指派與向量註標於 rhs 於 %L"
 
-#: fortran/expr.cc:4489
+#: fortran/expr.cc:4494
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer assignment target has PROTECTED attribute at %L"
 msgstr "指標指派目標有保護的屬性於 %L"
 
-#: fortran/expr.cc:4517 fortran/expr.cc:4522
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to contiguous pointer from non-contiguous target at %L"
 msgstr ""
 
-#: fortran/expr.cc:4562
+#: fortran/expr.cc:4567
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer at %L in pointer assignment might outlive the pointer target"
 msgstr "目標運算式在中指標指派於 %L 必須投遞指標結果"
 
-#: fortran/expr.cc:4638 fortran/resolve.cc:1565
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must not be ALLOCATABLE"
 msgstr "指標初始化目標於 %L 必須不是 ALLOCATABLE "
 
-#: fortran/expr.cc:4644
+#: fortran/expr.cc:4649
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the TARGET attribute"
 msgstr "指標初始化目標於 %C 必須有目標屬性"
 
-#: fortran/expr.cc:4659 fortran/resolve.cc:1571
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer initialization target at %L must have the SAVE attribute"
 msgstr "指標初始化目標於 %L 必須有儲存屬性"
 
-#: fortran/expr.cc:4671
+#: fortran/expr.cc:4676
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
 msgstr "程序指標初始化目標於 %L 可能無法是程序指標"
 
-#: fortran/expr.cc:4677
+#: fortran/expr.cc:4682
 #, fuzzy, gcc-internal-format
 msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "內部程序『%s』無效在中程序指標指派於 %L"
 
-#: fortran/expr.cc:4684
+#: fortran/expr.cc:4689
 #, fuzzy, gcc-internal-format
 msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
 msgstr "內部程序『%s』無效在中程序指標指派於 %L"
 
-#: fortran/expr.cc:5152
+#: fortran/expr.cc:5157
 #, gcc-internal-format
 msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
 msgstr ""
 
-#: fortran/expr.cc:6267
+#: fortran/expr.cc:6272
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
 msgstr "Fortran 2008:指標函式在中變數定義語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6275
+#: fortran/expr.cc:6280
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-variable expression in variable definition context (%s) at %L"
 msgstr "Non-variable 運算式在中變數定義語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6283
+#: fortran/expr.cc:6288
 #, fuzzy, gcc-internal-format
 msgid "Named constant %qs in variable definition context (%s) at %L"
 msgstr "具名的常數『%s』在中變數定義語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6294
+#: fortran/expr.cc:6299
 #, fuzzy, gcc-internal-format
 msgid "%qs in variable definition context (%s) at %L is not a variable"
 msgstr "『%s』在中變數定義語境 (%s) 於 %L 並非變數"
 
-#: fortran/expr.cc:6305
+#: fortran/expr.cc:6310
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-POINTER in pointer association context (%s) at %L"
 msgstr "Non-POINTER 在中指標關聯語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6314
+#: fortran/expr.cc:6319
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Type inaccessible in variable definition context (%s) at %L"
 msgstr "具名的常數『%s』在中變數定義語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6327
+#: fortran/expr.cc:6332
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "LOCK_TYPE in variable definition context (%s) at %L"
 msgstr "LOCK_TYPE 在中變數定義語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6340
+#: fortran/expr.cc:6345
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "LOCK_EVENT in variable definition context (%s) at %L"
 msgstr "LOCK_TYPE 在中變數定義語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6371
+#: fortran/expr.cc:6376
 #, fuzzy, gcc-internal-format
 msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
 msgstr "具名的常數『%s』在中變數定義語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6388
+#: fortran/expr.cc:6393
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
 msgstr "虛引數『%s』與含義 (在中) 在中指標關聯語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6398
+#: fortran/expr.cc:6403
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
 msgstr "虛引數『%s』與含義 (在中) 在中變數定義語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6411
+#: fortran/expr.cc:6416
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
 msgstr "變數『%s』是保護的和無法出現在中指標關聯語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6419
+#: fortran/expr.cc:6424
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
 msgstr "變數『%s』是保護的和無法出現在中變數定義語境 (%s) 於 %L"
 
-#: fortran/expr.cc:6434
+#: fortran/expr.cc:6439
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
 msgstr "變數『%s』無法出現在中變數定義語境 (%s) 於 %L 在中 PURE 程序"
 
-#: fortran/expr.cc:6494 fortran/expr.cc:6515
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
 msgstr "『%s』於 %L 關聯的到 vector-indexed 目標無法已用於變數定義語境 (%s)"
 
-#: fortran/expr.cc:6499
+#: fortran/expr.cc:6504
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
 msgstr "『%s』於 %L 關聯的到運算式無法已用於變數定義語境 (%s)"
 
-#: fortran/expr.cc:6508
+#: fortran/expr.cc:6513
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
 msgstr "『%s』於 %L 關聯的到運算式無法已用於變數定義語境 (%s)"
 
-#: fortran/expr.cc:6527
+#: fortran/expr.cc:6532
 #, fuzzy, gcc-internal-format
 msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
 msgstr "Associate-name『%s』無法出現在中變數定義語境 (%s) 於 %L 因為它的目標於 %L 無法，還是"
 
-#: fortran/expr.cc:6569
+#: fortran/expr.cc:6574
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
 msgstr "『%s』於 %L 關聯的到運算式無法已用於變數定義語境 (%s)"
@@ -74459,8 +74497,8 @@ msgid "Illegal id in copy_walk_reduction_arg"
 msgstr ""
 
 #: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
-#: fortran/trans-array.cc:7194 fortran/trans-array.cc:8856
-#: fortran/trans-intrinsic.cc:8475
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Creating array temporary at %L"
 msgstr "建立陣列暫時的於 %L"
@@ -74541,7 +74579,7 @@ msgstr "變數『%s』於 %C 無法重新定義的內部迴圈起始部分於 %L
 msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
 msgstr "變數『%s』於 %C 無法重新定義的內部迴圈起始部分於 %L"
 
-#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1932
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable array at %L will be added"
 msgstr ""
@@ -74680,12 +74718,12 @@ msgstr "第一個引數的定義的指派於 %L 必須是含義 (出) 或含義
 msgid "Second argument of defined assignment at %L must be INTENT(IN)"
 msgstr "%L 處定義賦值的第二個參數必須是 INTENT(IN)"
 
-#: fortran/interface.cc:1035 fortran/resolve.cc:18228
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
 #, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L must be INTENT(IN)"
 msgstr "%L 處運算子介面的第一個參數必須是 INTENT(IN)"
 
-#: fortran/interface.cc:1042 fortran/resolve.cc:18246
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
 #, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L must be INTENT(IN)"
 msgstr "%L 處運算子介面的第二個參數必須是 INTENT(IN)"
@@ -75576,7 +75614,7 @@ msgstr "從 %s 轉換到 %s，位於 %L"
 #. Use of -fdec-char-conversions allows assignment of character data
 #. to non-character variables.  This not permitted for nonconstant
 #. strings.
-#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11511
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Can't convert %s to %s at %L"
 msgid "Cannot convert %s to %s at %L"
@@ -76137,7 +76175,7 @@ msgstr "名稱表列『%s』在中讀取敘述於 %L 含有符號『%s』該項
 msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
 msgstr "名稱表列物件『%s』在中名稱表列『%s』於 %L 是 polymorphic 和需要定義的輸入/輸出程序"
 
-#: fortran/io.cc:3422 fortran/resolve.cc:16056
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
 msgstr "Fortran 2003:名稱表列物件『%s』在中名稱表列『%s』於 %L 與 ALLOCATABLE 或指標成分"
@@ -76311,6 +76349,11 @@ msgstr "整數溢出"
 msgid "check_charlen_present(): length not set"
 msgstr ""
 
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
 #: fortran/match.cc:118
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
@@ -76722,7 +76765,7 @@ msgstr "停止編碼於 %L 必須是預設字元 KIND=%d"
 msgid "STOP code at %L must be default integer KIND=%d"
 msgstr "停止編碼於 %L 必須是預設整數 KIND=%d"
 
-#: fortran/match.cc:3210 fortran/resolve.cc:12650
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "QUIET specifier at %L must be a scalar LOGICAL"
 msgstr "非同步=說明符於 %L 必須是初始化運算式"
@@ -77252,85 +77295,85 @@ msgstr "語法時發生錯誤保護的敘述於 %C"
 msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
 msgstr "選擇器在中選取型態於 %C 並非具名的變數；使用 associate-name=>"
 
-#: fortran/match.cc:6874
+#: fortran/match.cc:6895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "SELECT RANK statement at %C"
 msgstr "Fortran 2008:鎖定敘述於 %C"
 
-#: fortran/match.cc:6915 fortran/match.cc:6969
+#: fortran/match.cc:6936 fortran/match.cc:6990
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "The SELECT RANK selector at %C must be an assumed rank variable"
 msgstr "%C 處的 STAT 運算式必須是一個變數"
 
-#: fortran/match.cc:6979
+#: fortran/match.cc:7000
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "parse error in SELECT RANK statement at %C"
 msgstr "語法時發生錯誤保護的敘述於 %C"
 
-#: fortran/match.cc:7015
+#: fortran/match.cc:7036
 #, gcc-internal-format, gfc-internal-format
 msgid "Unexpected CASE statement at %C"
 msgstr "%C 處非預期的 CASE 敘述"
 
-#: fortran/match.cc:7067
+#: fortran/match.cc:7088
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CASE specification at %C"
 msgstr "語法時發生錯誤大小寫規格於 %C"
 
-#: fortran/match.cc:7085
+#: fortran/match.cc:7106
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Unexpected TYPE IS statement at %C"
 msgstr "未預期的型態是敘述於 %C"
 
-#: fortran/match.cc:7117
+#: fortran/match.cc:7138
 #, gcc-internal-format, gfc-internal-format
 msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
 msgstr ""
 
-#: fortran/match.cc:7128
+#: fortran/match.cc:7149
 #, gcc-internal-format, gfc-internal-format
 msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
 msgstr ""
 
-#: fortran/match.cc:7139
+#: fortran/match.cc:7160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in TYPE IS specification at %C"
 msgstr "語法時發生錯誤型態是規格於 %C"
 
-#: fortran/match.cc:7215
+#: fortran/match.cc:7236
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in CLASS IS specification at %C"
 msgstr "語法時發生錯誤類別是規格於 %C"
 
-#: fortran/match.cc:7235
+#: fortran/match.cc:7256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Unexpected END statement at %C"
 msgid "Unexpected RANK statement at %C"
 msgstr "%C 處非預期的 END 敘述"
 
-#: fortran/match.cc:7281
+#: fortran/match.cc:7302
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "STAT expression at %C must be a variable"
 msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
 msgstr "%C 處的 STAT 運算式必須是一個變數"
 
-#: fortran/match.cc:7290
+#: fortran/match.cc:7311
 #, gcc-internal-format, gfc-internal-format
 msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
 msgstr ""
 
-#: fortran/match.cc:7317
+#: fortran/match.cc:7338
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in RANK specification at %C"
 msgstr "語法時發生錯誤大小寫規格於 %C"
 
-#: fortran/match.cc:7439
+#: fortran/match.cc:7460
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
 msgstr "其他情況下敘述於 %C 無法夾於位置區塊"
 
-#: fortran/match.cc:7477
+#: fortran/match.cc:7498
 #, fuzzy, gcc-internal-format
 msgid "Label %qs at %C doesn't match WHERE label %qs"
 msgstr "標貼『%s』於 %C 不匹配位置標貼『%s』"
@@ -78787,8 +78830,8 @@ msgstr ""
 msgid "ORDER clause must not be used together ORDERED at %L"
 msgstr "-frepo 必須與 -c 一起使用"
 
-#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11309
-#: fortran/resolve.cc:12878
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "IF clause at %L requires a scalar LOGICAL expression"
 msgstr "如果子句於 %L 需要純量邏輯的運算式"
@@ -81184,12 +81227,12 @@ msgstr "intrinsic『%s』宣告的 INTRINSIC 於 %L 不是可用在中目前的
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "非遞迴程序『%s』於 %L 是可能會呼叫它自己遞迴。 宣告它遞迴或使用 -frecursive"
 
-#: fortran/resolve.cc:1976 fortran/resolve.cc:6843
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, fuzzy, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
 msgstr "非遞迴程序『%s』於 %L 是可能會呼叫它自己遞迴。 宣告它遞迴或使用 -frecursive"
 
-#: fortran/resolve.cc:2035 fortran/resolve.cc:10823 fortran/resolve.cc:12805
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d referenced at %L is never defined"
 msgstr "標籤 %d(參照自 %L)從未被定義"
@@ -81314,7 +81357,7 @@ msgstr ""
 msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
 msgstr "函式「%s」在 %L 處沒有 IMPLICIT 類型"
 
-#: fortran/resolve.cc:3092 fortran/resolve.cc:18158
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
 #, fuzzy, gcc-internal-format
 #| msgid "Function '%s' at %L has no IMPLICIT type"
 msgid "Function %qs at %L has no IMPLICIT type"
@@ -81720,279 +81763,285 @@ msgstr "Coarray 變數『%s』於 %L 不應該有 codimensions 與已推遲形
 msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "Coarray 變數『%s』於 %L 不應該有 codimensions 與已推遲形狀"
 
-#: fortran/resolve.cc:5932
+#: fortran/resolve.cc:5935
 #, fuzzy, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
 msgstr "建立陣列的參考"
 
-#: fortran/resolve.cc:6077
+#: fortran/resolve.cc:6080
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
 msgstr "變數『%s』，已用於規格運算式，被引用於 %L 之前條目敘述在中該項它是參數"
 
-#: fortran/resolve.cc:6082
+#: fortran/resolve.cc:6085
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
 msgstr "變數『%s』被使用於 %L 之前條目敘述在中該項它是參數"
 
-#: fortran/resolve.cc:6152
+#: fortran/resolve.cc:6155
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic subobject of coindexed object at %L"
 msgstr "Polymorphic 子物件的 coindexed 物件於 %L"
 
-#: fortran/resolve.cc:6165
+#: fortran/resolve.cc:6168
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
 msgstr "Coindexed 物件與 polymorphic allocatable subcomponent 於 %L"
 
-#: fortran/resolve.cc:6181
+#: fortran/resolve.cc:6184
 #, fuzzy, gcc-internal-format
 msgid "Using variable %qs at %L is deprecated"
 msgstr "%qE 被不宜用"
 
-#: fortran/resolve.cc:6424
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, fuzzy, gcc-internal-format, gfc-internal-format
+#| msgid "Bad array reference at %L"
+msgid "Invalid array reference at %L"
+msgstr "%L 處陣列參照錯誤"
+
+#: fortran/resolve.cc:6433
 #, gcc-internal-format
 msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
 msgstr ""
 
-#: fortran/resolve.cc:6602 fortran/resolve.cc:6754
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Error in typebound call at %L"
 msgstr "在中 type-spec 於 %L 時發生錯誤"
 
-#: fortran/resolve.cc:6718
+#: fortran/resolve.cc:6727
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Passed-object at %L must be scalar"
 msgstr "Passed-object 於 %L 必須是純量"
 
-#: fortran/resolve.cc:6725
+#: fortran/resolve.cc:6734
 #, fuzzy, gcc-internal-format
 msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
 msgstr "基底物件用於 procedure-pointer 成分呼叫於 %L 是的摘要型態『%s』"
 
-#: fortran/resolve.cc:6764
+#: fortran/resolve.cc:6773
 #, fuzzy, gcc-internal-format
 msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
 msgstr "基底物件用於 type-bound 程序呼叫於 %L 是的摘要型態『%s』"
 
-#: fortran/resolve.cc:6773
+#: fortran/resolve.cc:6782
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
 msgstr "基底物件用於 NOPASS type-bound 程序呼叫於 %L 必須是純量"
 
 #. Nothing matching found!
-#: fortran/resolve.cc:6968
+#: fortran/resolve.cc:6977
 #, fuzzy, gcc-internal-format
 msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
 msgstr "找到沒有匹配特定的繫結用於呼叫到通用『%s』於 %L"
 
-#: fortran/resolve.cc:7002
+#: fortran/resolve.cc:7011
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L should be a SUBROUTINE"
 msgstr "『%s』於 %L 應該是副常式"
 
-#: fortran/resolve.cc:7054
+#: fortran/resolve.cc:7063
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L should be a FUNCTION"
 msgstr "『%s』於 %L 應該是函式"
 
-#: fortran/resolve.cc:7589
+#: fortran/resolve.cc:7598
 #, fuzzy, gcc-internal-format
 #| msgid "Expected expression type"
 msgid "gfc_resolve_expr(): Bad expression type"
 msgstr "需要運算式類型"
 
-#: fortran/resolve.cc:7622
+#: fortran/resolve.cc:7631
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be a scalar"
 msgstr "%s (%L 處)必須是一個標量"
 
-#: fortran/resolve.cc:7632
+#: fortran/resolve.cc:7641
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be integer"
 msgstr "『%s』於 %L 必須是 nonnegative"
 
-#: fortran/resolve.cc:7636 fortran/resolve.cc:7643
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
 #, gcc-internal-format, gfc-internal-format
 msgid "%s at %L must be INTEGER"
 msgstr "%s (%L 處)必須是 INTEGER"
 
-#: fortran/resolve.cc:7698
+#: fortran/resolve.cc:7707
 #, gcc-internal-format, gfc-internal-format
 msgid "Step expression in DO loop at %L cannot be zero"
 msgstr "步進敘述於 %L 處的 DO 迴圈中不可為零"
 
-#: fortran/resolve.cc:7721
+#: fortran/resolve.cc:7730
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L will be executed zero times"
 msgstr "做迴圈於 %L 將被執行零次"
 
-#: fortran/resolve.cc:7738
+#: fortran/resolve.cc:7747
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it overflows"
 msgstr ""
 
-#: fortran/resolve.cc:7744
+#: fortran/resolve.cc:7753
 #, gcc-internal-format, gfc-internal-format
 msgid "DO loop at %L is undefined as it underflows"
 msgstr ""
 
-#: fortran/resolve.cc:7805
+#: fortran/resolve.cc:7814
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgstr "%L 處 FORALL 索引名稱必須是 INTEGER 標量"
 
-#: fortran/resolve.cc:7810
+#: fortran/resolve.cc:7819
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL start expression at %L must be a scalar INTEGER"
 msgstr "%L 處的 FORALL 啟始敘述必須是 INTEGER 標量"
 
-#: fortran/resolve.cc:7817
+#: fortran/resolve.cc:7826
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL end expression at %L must be a scalar INTEGER"
 msgstr "%L 處的 FORALL 結束敘述必須是 INTEGER 標量"
 
-#: fortran/resolve.cc:7825
+#: fortran/resolve.cc:7834
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L must be a scalar %s"
 msgstr "%L 處的 FORALL 步幅敘述必須是 %s 標量"
 
-#: fortran/resolve.cc:7830
+#: fortran/resolve.cc:7839
 #, gcc-internal-format, gfc-internal-format
 msgid "FORALL stride expression at %L cannot be zero"
 msgstr "%L 處的 FORALL 步幅敘述不能為零"
 
-#: fortran/resolve.cc:7843
+#: fortran/resolve.cc:7852
 #, fuzzy, gcc-internal-format
 msgid "FORALL index %qs may not appear in triplet specification at %L"
 msgstr "FORALL 索引『%s』可能無法出現在中 triplet 規格於 %L"
 
-#: fortran/resolve.cc:7948 fortran/resolve.cc:8246
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
 msgstr "Allocate-object 於 %L 必須是 ALLOCATABLE 或指標"
 
-#: fortran/resolve.cc:7956 fortran/resolve.cc:8209
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed allocatable object at %L"
 msgstr "Coindexed allocatable 物件於 %L"
 
-#: fortran/resolve.cc:8066
+#: fortran/resolve.cc:8075
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
 msgstr "Source-expr 於 %L 必須是純量或有同級做為 allocate-object 於 %L"
 
-#: fortran/resolve.cc:8097
+#: fortran/resolve.cc:8106
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Source-expr at %L and allocate-object at %L must have the same shape"
 msgstr "Source-expr 於 %L 和 allocate-object 於 %L 必須有相同形狀"
 
-#: fortran/resolve.cc:8257
+#: fortran/resolve.cc:8266
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Type of entity at %L is type incompatible with source-expr at %L"
 msgstr "型態的實體於 %L 是型態不相容的與 source-expr 於 %L"
 
-#: fortran/resolve.cc:8269
+#: fortran/resolve.cc:8278
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
 msgstr "allocate-object 於 %L 和 source-expr 於 %L 應該有相同 kind 型態參數"
 
-#: fortran/resolve.cc:8283
+#: fortran/resolve.cc:8292
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
 msgstr "source-expr 於 %L 應該 neither 是的型態 LOCK_TYPE nor 有 LOCK_TYPE 成分如果 allocate-object 於 %L 是 coarray"
 
-#: fortran/resolve.cc:8308
+#: fortran/resolve.cc:8317
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
 msgstr "source-expr 於 %L 應該 neither 是的型態 LOCK_TYPE nor 有 LOCK_TYPE 成分如果 allocate-object 於 %L 是 coarray"
 
-#: fortran/resolve.cc:8321
+#: fortran/resolve.cc:8330
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
 msgstr "配置 %s 的摘要基底類型於 %L 需要 type-spec 或 source-expr"
 
-#: fortran/resolve.cc:8339
+#: fortran/resolve.cc:8348
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
 msgstr "配置 %s 於 %L 與 type-spec 需求相同 character-length 參數做為在中宣告"
 
-#: fortran/resolve.cc:8423 fortran/resolve.cc:8438
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Array specification required in ALLOCATE statement at %L"
 msgstr "陣列規格必要項在中配置敘述於 %L"
 
-#: fortran/resolve.cc:8430
+#: fortran/resolve.cc:8439
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
 msgstr "陣列規格必要項在中配置敘述於 %L"
 
-#: fortran/resolve.cc:8455
+#: fortran/resolve.cc:8464
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coarray specification required in ALLOCATE statement at %L"
 msgstr "Coarray 規格必要項在中配置敘述於 %L"
 
-#: fortran/resolve.cc:8465 fortran/resolve.cc:8567
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad coarray specification in ALLOCATE statement at %L"
 msgstr "不當的 coarray 規格在中配置敘述於 %L"
 
-#: fortran/resolve.cc:8471
+#: fortran/resolve.cc:8480
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8483
+#: fortran/resolve.cc:8492
 #, gcc-internal-format, gfc-internal-format
 msgid "Upper cobound is less than lower cobound of 1 at %L"
 msgstr ""
 
-#: fortran/resolve.cc:8494 fortran/resolve.cc:8522
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad array specification in ALLOCATE statement at %L"
 msgstr "不當的陣列規格在中配置敘述於 %L"
 
-#: fortran/resolve.cc:8541
+#: fortran/resolve.cc:8550
 #, fuzzy, gcc-internal-format
 msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
 msgstr "『%s』必須不出現在中陣列規格於 %L 在中相同配置敘述位置它是它自己配置"
 
-#: fortran/resolve.cc:8556
+#: fortran/resolve.cc:8565
 #, fuzzy, gcc-internal-format
 msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
 msgstr "預期『*』在中 coindex 規格在中配置敘述於 %L"
 
-#: fortran/resolve.cc:8598
+#: fortran/resolve.cc:8607
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L must be a scalar INTEGER variable"
 msgstr "Stat-variable 於 %L 必須是純量整數變數"
 
-#: fortran/resolve.cc:8627
+#: fortran/resolve.cc:8636
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Stat-variable at %L shall not be %sd within the same %s statement"
 msgstr "Stat-variable 於 %L 不應該是 %sd 在之內相同 %s 敘述"
 
-#: fortran/resolve.cc:8640
+#: fortran/resolve.cc:8649
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG at %L is useless without a STAT tag"
 msgstr "ERRMSG 於 %L 是無用的而無需 STAT 標籤"
 
-#: fortran/resolve.cc:8654
+#: fortran/resolve.cc:8663
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
 msgstr "ERRMSG=引數於 %L 必須是純量字元變數"
 
-#: fortran/resolve.cc:8683
+#: fortran/resolve.cc:8692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
 msgstr "Errmsg-variable 於 %L 不應該是 %sd 在之內相同 %s 敘述"
 
-#: fortran/resolve.cc:8715
+#: fortran/resolve.cc:8724
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L also appears at %L"
 msgstr "Allocate-object 於 %L 也出現於 %L"
 
-#: fortran/resolve.cc:8721 fortran/resolve.cc:8727
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Allocate-object at %L is subobject of object at %L"
 msgstr "Allocate-object 於 %L 是子物件的物件於 %L"
@@ -82001,285 +82050,285 @@ msgstr "Allocate-object 於 %L 是子物件的物件於 %L"
 #. element in the list.  Either way, we must
 #. issue an error and get the next case from P.
 #. FIXME: Sort P and Q by line number.
-#: fortran/resolve.cc:8955
+#: fortran/resolve.cc:8964
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "CASE label at %L overlaps with CASE label at %L"
 msgstr "大小寫標貼於 %L 重疊與大小寫標貼於 %L"
 
-#: fortran/resolve.cc:9006
+#: fortran/resolve.cc:9015
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of type %s"
 msgstr "%L 處 CASE 敘述中的運算式必須具有 %s 類型"
 
-#: fortran/resolve.cc:9017
+#: fortran/resolve.cc:9026
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be of kind %d"
 msgstr "運算式在中條件敘述於 %L 必須是的 kind %d"
 
-#: fortran/resolve.cc:9030
+#: fortran/resolve.cc:9039
 #, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L must be scalar"
 msgstr "%L 處 CASE 敘述中的運算式必須為標量"
 
-#: fortran/resolve.cc:9076
+#: fortran/resolve.cc:9085
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
 msgstr "選擇運算式在中計算的前往敘述於 %L 必須是純量整數運算式"
 
-#: fortran/resolve.cc:9095
+#: fortran/resolve.cc:9104
 #, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L cannot be %s"
 msgstr "%L 處 SELECT 敘述的引數不能是 %s"
 
-#: fortran/resolve.cc:9105
+#: fortran/resolve.cc:9114
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of SELECT statement at %L must be a scalar expression"
 msgstr "%L 處 SELECT 敘述的引數不能是 %s"
 
-#: fortran/resolve.cc:9123 fortran/resolve.cc:9131
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expression in CASE statement at %L is not in the range of %s"
 msgstr "運算式在中條件敘述於 %L 不是在中範圍的 %s"
 
-#: fortran/resolve.cc:9193 fortran/resolve.cc:9957
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
 msgstr "預設大小寫於 %L 無法在之後秒預設大小寫於 %L"
 
-#: fortran/resolve.cc:9219
+#: fortran/resolve.cc:9228
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Logical range in CASE statement at %L is not allowed"
 msgstr "邏輯的範圍在中條件敘述於 %L 未被允許"
 
-#: fortran/resolve.cc:9232
+#: fortran/resolve.cc:9241
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Constant logical value in CASE statement is repeated at %L"
 msgstr "常數邏輯的值在中條件敘述被重複於 %L"
 
-#: fortran/resolve.cc:9247
+#: fortran/resolve.cc:9256
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Range specification at %L can never be matched"
 msgstr "範圍規格於 %L 可以永不被匹配"
 
-#: fortran/resolve.cc:9350
+#: fortran/resolve.cc:9359
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Logical SELECT CASE block at %L has more that two cases"
 msgstr "邏輯的選取大小寫區塊於 %L 有更多該兩大小寫"
 
-#: fortran/resolve.cc:9412
+#: fortran/resolve.cc:9421
 #, fuzzy, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure pointer"
 msgstr "內部程序『%s』無效在中程序指標指派於 %L"
 
-#: fortran/resolve.cc:9421
+#: fortran/resolve.cc:9430
 #, fuzzy, gcc-internal-format
 #| msgid "The name '%s' cannot be used as a defined operator at %C"
 msgid "Derived type %qs cannot be used as a variable at %L"
 msgstr "名稱「%s」在 %C 處不能做為已定義的運算子"
 
-#: fortran/resolve.cc:9438
+#: fortran/resolve.cc:9447
 #, fuzzy, gcc-internal-format
 msgid "Associating entity %qs at %L is a procedure name"
 msgstr "Associate-name『%s』於 %L 被做為陣列"
 
-#: fortran/resolve.cc:9454
+#: fortran/resolve.cc:9463
 #, gcc-internal-format, gfc-internal-format
 msgid "Associating selector-expression at %L yields a procedure"
 msgstr ""
 
-#: fortran/resolve.cc:9508
+#: fortran/resolve.cc:9517
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L cannot be NULL()"
 msgstr "關聯目標於 %C 必須不被 coindexed"
 
-#: fortran/resolve.cc:9513
+#: fortran/resolve.cc:9522
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L has no type"
 msgstr "關聯目標於 %C 必須不被 coindexed"
 
-#: fortran/resolve.cc:9571
+#: fortran/resolve.cc:9580
 #, fuzzy, gcc-internal-format
 msgid "Associate-name %qs at %L is used as array"
 msgstr "Associate-name『%s』於 %L 被做為陣列"
 
-#: fortran/resolve.cc:9582
+#: fortran/resolve.cc:9591
 #, gcc-internal-format, gfc-internal-format
 msgid "CLASS selector at %L needs a temporary which is not yet implemented"
 msgstr ""
 
-#: fortran/resolve.cc:9821
+#: fortran/resolve.cc:9830
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
 msgstr "選擇器應該是 polymorphic 在中選取型態敘述於 %L"
 
-#: fortran/resolve.cc:9865 fortran/resolve.cc:9877
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Selector at %L must not be coindexed"
 msgstr "關聯目標於 %C 必須不被 coindexed"
 
-#: fortran/resolve.cc:9906
+#: fortran/resolve.cc:9915
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "TYPE IS at %L overlaps with TYPE IS at %L"
 msgstr "大小寫標貼於 %L 重疊與大小寫標貼於 %L"
 
-#: fortran/resolve.cc:9919
+#: fortran/resolve.cc:9928
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L must be extensible"
 msgstr "衍生類型『%s』於 %L 必須是 extensible"
 
-#: fortran/resolve.cc:9932
+#: fortran/resolve.cc:9941
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L must be an extension of %qs"
 msgstr "衍生類型『%s』於 %L 必須是延伸的『%s』"
 
-#: fortran/resolve.cc:9935
+#: fortran/resolve.cc:9944
 #, fuzzy, gcc-internal-format
 msgid "Unexpected intrinsic type %qs at %L"
 msgstr "未預期的空值() intrinsic 於 %L 到虛設『%s』"
 
-#: fortran/resolve.cc:9945
+#: fortran/resolve.cc:9954
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The type-spec at %L shall specify that each length type parameter is assumed"
 msgstr "Type-spec 於 %L 無法包含已推遲型態參數"
 
-#: fortran/resolve.cc:10192
+#: fortran/resolve.cc:10201
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Double CLASS IS block in SELECT TYPE statement at %L"
 msgstr "雙倍類別是區塊在中選取型態敘述於 %L"
 
-#: fortran/resolve.cc:10325
+#: fortran/resolve.cc:10334
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK DEFAULT at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10334
+#: fortran/resolve.cc:10343
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10337
+#: fortran/resolve.cc:10346
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (%i) at %L is repeated at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10347
+#: fortran/resolve.cc:10356
 #, gcc-internal-format, gfc-internal-format
 msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
 msgstr ""
 
-#: fortran/resolve.cc:10456
+#: fortran/resolve.cc:10465
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Invalid context for NULL () intrinsic at %L"
 msgstr "無效的語境用於空值() 指標於 %%L"
 
-#: fortran/resolve.cc:10510
+#: fortran/resolve.cc:10519
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DTIO %s procedure at %L must be recursive"
 msgstr "停止編碼於 %L 必須是純量"
 
-#: fortran/resolve.cc:10520
+#: fortran/resolve.cc:10529
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
 msgstr "資料轉移元件於 %L 無法 polymorphic 除非它被處理由定義的輸入/輸出程序"
 
-#: fortran/resolve.cc:10533
+#: fortran/resolve.cc:10542
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
 msgstr "資料轉移元件於 %L 無法有指標成分除非它被處理由定義的輸入/輸出程序"
 
-#: fortran/resolve.cc:10542
+#: fortran/resolve.cc:10551
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have procedure pointer components"
 msgstr "資料轉移元件於 %L 無法有程序指標成分"
 
-#: fortran/resolve.cc:10549
+#: fortran/resolve.cc:10558
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
 msgstr "資料轉移元件於 %L 無法有 ALLOCATABLE 成分除非它被處理由定義的輸入/輸出程序"
 
-#: fortran/resolve.cc:10560
+#: fortran/resolve.cc:10569
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components"
 msgstr "資料轉移元件於 %L 無法有私人的成分"
 
-#: fortran/resolve.cc:10566
+#: fortran/resolve.cc:10575
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
 msgstr "資料轉移元件於 %L 無法有指標成分除非它被處理由定義的輸入/輸出程序"
 
-#: fortran/resolve.cc:10584
+#: fortran/resolve.cc:10593
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
 msgstr "資料轉移元件於 %L 無法全部參考到 assumed-size 陣列"
 
-#: fortran/resolve.cc:10641
+#: fortran/resolve.cc:10650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
 msgstr "鎖定變數於 %L 必須是純量的型態 LOCK_TYPE"
 
-#: fortran/resolve.cc:10651
+#: fortran/resolve.cc:10660
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
 msgstr "鎖定變數於 %L 必須是純量的型態 LOCK_TYPE"
 
-#: fortran/resolve.cc:10655
+#: fortran/resolve.cc:10664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray or coindexed"
 msgstr "實際引數到『%s』於 %L 必須是 coarray"
 
-#: fortran/resolve.cc:10658
+#: fortran/resolve.cc:10667
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Event variable argument at %L must be a coarray but not coindexed"
 msgstr "實際引數到『%s』於 %L 必須是 coarray"
 
-#: fortran/resolve.cc:10665 fortran/resolve.cc:10787
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "STAT= argument at %L must be a scalar INTEGER variable"
 msgstr "STAT=引數於 %L 必須是純量整數變數"
 
-#: fortran/resolve.cc:10677 fortran/resolve.cc:10799
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
 msgstr "ERRMSG=引數於 %L 必須是純量字元變數"
 
-#: fortran/resolve.cc:10689
+#: fortran/resolve.cc:10698
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
 msgstr "ACQUIRED_LOCK=引數於 %L 必須是純量邏輯的變數"
 
-#: fortran/resolve.cc:10702
+#: fortran/resolve.cc:10711
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
 msgstr "Imageset 引數於 %L 必須是純量或 rank-1 整數運算式"
 
-#: fortran/resolve.cc:10763
+#: fortran/resolve.cc:10772
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
 msgstr "Imageset 引數於 %L 必須是純量或 rank-1 整數運算式"
 
-#: fortran/resolve.cc:10767 fortran/resolve.cc:10777
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Imageset argument at %L must between 1 and num_images()"
 msgstr "Imageset 引數於 %L 必須介於 1 和 numimages()(_I)"
 
-#: fortran/resolve.cc:10830
+#: fortran/resolve.cc:10839
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
 msgstr "敘述於 %L 並非有效分支目標敘述用於分支敘述於 %L"
 
-#: fortran/resolve.cc:10840
+#: fortran/resolve.cc:10849
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Branch at %L may result in an infinite loop"
 msgstr "分支於 %L 也許會導致無窮迴圈"
 
 #. Note: A label at END CRITICAL does not leave the CRITICAL
 #. construct as END CRITICAL is still part of it.
-#: fortran/resolve.cc:10857 fortran/resolve.cc:10880
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
 msgstr "前往敘述於 %L 樹葉重要建構用於標貼於 %L"
 
-#: fortran/resolve.cc:10861 fortran/resolve.cc:10886
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
 msgstr "前往敘述於 %L 樹葉做共時建構用於標貼於 %L"
@@ -82287,218 +82336,218 @@ msgstr "前往敘述於 %L 樹葉做共時建構用於標貼於 %L"
 #. The label is not in an enclosing block, so illegal.  This was
 #. allowed in Fortran 66, so we allow it as extension.  No
 #. further checks are necessary in this case.
-#: fortran/resolve.cc:10901
+#: fortran/resolve.cc:10910
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label at %L is not in the same block as the GOTO statement at %L"
 msgstr "標貼於 %L 不是在中相同區塊做為前往敘述於 %L"
 
-#: fortran/resolve.cc:10973
+#: fortran/resolve.cc:10982
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "WHERE mask at %L has inconsistent shape"
 msgstr "位置遮罩於 %L 有不一致形狀"
 
-#: fortran/resolve.cc:10989
+#: fortran/resolve.cc:10998
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "WHERE assignment target at %L has inconsistent shape"
 msgstr "位置指派目標於 %L 有不一致形狀"
 
-#: fortran/resolve.cc:11002 fortran/resolve.cc:11094
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
 msgstr "Non-ELEMENTAL 使用者定義的指派在中位置於 %L"
 
-#: fortran/resolve.cc:11012 fortran/resolve.cc:11104
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
 #, gcc-internal-format, gfc-internal-format
 msgid "Unsupported statement inside WHERE at %L"
 msgstr "%L 處在 WHERE 內不支援的敘述"
 
-#: fortran/resolve.cc:11043
+#: fortran/resolve.cc:11052
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to a FORALL index variable at %L"
 msgstr "%L 處向 FORALL 索引變數賦值"
 
-#: fortran/resolve.cc:11052
+#: fortran/resolve.cc:11061
 #, fuzzy, gcc-internal-format
 msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
 msgstr "FORALL 與索引『%s』未被使用左側的側邊的指派於 %L 和因而也許造成多重指派到這個物件"
 
-#: fortran/resolve.cc:11209
+#: fortran/resolve.cc:11218
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL construct at %L"
 msgstr "Fortran 2008:區塊建構於 %C"
 
-#: fortran/resolve.cc:11230
+#: fortran/resolve.cc:11239
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "FORALL index-name at %L must be a scalar INTEGER"
 msgid "FORALL index-name at %L must be a scalar variable of type integer"
 msgstr "%L 處 FORALL 索引名稱必須是 INTEGER 標量"
 
-#: fortran/resolve.cc:11240
+#: fortran/resolve.cc:11249
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "An outer FORALL construct already has an index with this name %L"
 msgstr "外 FORALL 建構已經有索引與這個名稱 %L"
 
-#: fortran/resolve.cc:11317
+#: fortran/resolve.cc:11326
 #, gcc-internal-format, gfc-internal-format
 msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
 msgstr "%L 處的 WHERE/ELSEWHERE 子句需要一個 LOGICAL 陣列"
 
-#: fortran/resolve.cc:11435
+#: fortran/resolve.cc:11444
 #, gcc-internal-format
 msgid "gfc_resolve_blocks(): Bad block type"
 msgstr ""
 
-#: fortran/resolve.cc:11498
+#: fortran/resolve.cc:11507
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
 msgstr "資料轉移元件於 %L 無法有程序指標成分"
 
-#: fortran/resolve.cc:11559
+#: fortran/resolve.cc:11568
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
 msgstr "字元運算式將被截斷在中指派 (%d/%d) 於 %L"
 
-#: fortran/resolve.cc:11591
+#: fortran/resolve.cc:11600
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
 msgstr "Coindexed 運算式於 %L 被指派到衍生類型變數與指標成分在中 PURE 程序"
 
 #. F2008, C1283 (4).
-#: fortran/resolve.cc:11597
+#: fortran/resolve.cc:11606
 #, gcc-internal-format, gfc-internal-format
 msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
 msgstr ""
 
-#: fortran/resolve.cc:11609
+#: fortran/resolve.cc:11618
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assignment to coindexed variable at %L in a PURE procedure"
 msgstr "指派到 coindexed 變數於 %L 在中 PURE 程序"
 
-#: fortran/resolve.cc:11641
+#: fortran/resolve.cc:11650
 #, gcc-internal-format, gfc-internal-format
 msgid "Assignment to polymorphic coarray at %L is not permitted"
 msgstr ""
 
-#: fortran/resolve.cc:11645
+#: fortran/resolve.cc:11654
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Assignment to a FORALL index variable at %L"
 msgid "Assignment to an allocatable polymorphic variable at %L"
 msgstr "%L 處向 FORALL 索引變數賦值"
 
-#: fortran/resolve.cc:11650
+#: fortran/resolve.cc:11659
 #, gcc-internal-format
 msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
 msgstr ""
 
-#: fortran/resolve.cc:11657
+#: fortran/resolve.cc:11666
 #, fuzzy, gcc-internal-format
 msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
 msgstr "變數必須不是 polymorphic 在中 intrinsic 指派於 %L - 檢查該有匹配特定的副常式用於『=』運算子"
 
-#: fortran/resolve.cc:11668
+#: fortran/resolve.cc:11677
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
 msgstr "Coindexed 變數必須不是有 allocatable ultimate 成分在中指派於 %L"
 
-#: fortran/resolve.cc:12091
+#: fortran/resolve.cc:12100
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
 msgstr ""
 
 #. Even if standard does not support this feature, continue to build
 #. the two statements to avoid upsetting frontend_passes.c.
-#: fortran/resolve.cc:12395
+#: fortran/resolve.cc:12404
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Pointer procedure assignment at %L"
 msgstr "無效的程序指標指派於 %L"
 
-#: fortran/resolve.cc:12407
+#: fortran/resolve.cc:12416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
 msgstr "目標運算式在中指標指派於 %L 必須投遞指標結果"
 
-#: fortran/resolve.cc:12492
+#: fortran/resolve.cc:12501
 #, fuzzy, gcc-internal-format
 msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
 msgstr "%L 處 SELECT 敘述的引數不能是 %s"
 
-#: fortran/resolve.cc:12683
+#: fortran/resolve.cc:12692
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
 msgstr "STAT=引數於 %L 必須是純量整數變數"
 
-#: fortran/resolve.cc:12719
+#: fortran/resolve.cc:12728
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
 msgstr "指派的前往敘述於 %L 需求整數變數"
 
-#: fortran/resolve.cc:12723
+#: fortran/resolve.cc:12732
 #, fuzzy, gcc-internal-format
 #| msgid "Variable '%s' has not been assigned a target label at %L"
 msgid "Variable %qs has not been assigned a target label at %L"
 msgstr "變數「%s」在 %L 尚未指派到目標標籤"
 
-#: fortran/resolve.cc:12734
+#: fortran/resolve.cc:12743
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
 msgstr "交替回傳敘述於 %L 需要 SCALAR-INTEGER 回傳說明符"
 
-#: fortran/resolve.cc:12772
+#: fortran/resolve.cc:12781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Expected initialization expression in CASE at %C"
 msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
 msgstr "%C 處 CASE 中需要初始化運算式"
 
-#: fortran/resolve.cc:12814
+#: fortran/resolve.cc:12823
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
 msgstr "指派敘述於 %L 需要純量預設整數變數"
 
-#: fortran/resolve.cc:12861
+#: fortran/resolve.cc:12870
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "Invalid kind for %s at %L"
 msgid "Invalid NULL at %L"
 msgstr "%s 種別無效，於 %L 處"
 
-#: fortran/resolve.cc:12865
+#: fortran/resolve.cc:12874
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
 msgstr "算術如果敘述於 %L 需要數值運算式"
 
-#: fortran/resolve.cc:12926
+#: fortran/resolve.cc:12935
 #, gcc-internal-format
 msgid "gfc_resolve_code(): No expression on DO WHILE"
 msgstr ""
 
-#: fortran/resolve.cc:12931
+#: fortran/resolve.cc:12940
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
 msgstr "離開條件的做當迴圈於 %L 必須是純量邏輯的運算式"
 
-#: fortran/resolve.cc:13015
+#: fortran/resolve.cc:13024
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
 msgstr "FORALL 遮罩子句於 %L 需要純量邏輯的運算式"
 
-#: fortran/resolve.cc:13119
+#: fortran/resolve.cc:13128
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
 msgid "gfc_resolve_code(): Bad statement code"
 msgstr "gfc_trans_code()：錯誤的敘述程式碼"
 
-#: fortran/resolve.cc:13140
+#: fortran/resolve.cc:13149
 #, fuzzy, gcc-internal-format
 msgid "Using parameter %qs declared at %L is deprecated"
 msgstr "未使用的參數『%s』宣告的於 %L"
 
-#: fortran/resolve.cc:13234
+#: fortran/resolve.cc:13243
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "繫結標貼『%s』於 %L collides 與全域實體『%s』於 %L"
 
 #. This can only happen if the variable is defined in a module - if it
 #. isn't the same module, reject it.
-#: fortran/resolve.cc:13248
+#: fortran/resolve.cc:13257
 #, gcc-internal-format
 msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
 msgstr ""
@@ -82506,1016 +82555,1016 @@ msgstr ""
 #. Print an error if the procedure is defined multiple times; we have to
 #. exclude references to the same procedure via module association or
 #. multiple checks for the same procedure.
-#: fortran/resolve.cc:13267
+#: fortran/resolve.cc:13276
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
 msgstr "繫結標貼『%s』於 %L collides 與全域實體『%s』於 %L"
 
-#: fortran/resolve.cc:13353
+#: fortran/resolve.cc:13362
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "String length at %L is too large"
 msgstr "字串長度於 %L 太大"
 
-#: fortran/resolve.cc:13591
+#: fortran/resolve.cc:13600
 #, fuzzy, gcc-internal-format
 msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
 msgstr "可指派的陣列「%s」在 %L 處必須有延遲的外形"
 
-#: fortran/resolve.cc:13595
+#: fortran/resolve.cc:13604
 #, fuzzy, gcc-internal-format
 msgid "Scalar object %qs at %L may not be ALLOCATABLE"
 msgstr "純量物件『%s』於 %L 可能無法是 ALLOCATABLE"
 
-#: fortran/resolve.cc:13603
+#: fortran/resolve.cc:13612
 #, fuzzy, gcc-internal-format
 msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
 msgstr "陣列指標「%s」在 %L 處必須有延遲的外形"
 
-#: fortran/resolve.cc:13614
+#: fortran/resolve.cc:13623
 #, fuzzy, gcc-internal-format
 #| msgid "Array '%s' at %L cannot have a deferred shape"
 msgid "Array %qs at %L cannot have a deferred shape"
 msgstr "陣列「%s」在 %L 處不能有延遲的外形"
 
-#: fortran/resolve.cc:13632
+#: fortran/resolve.cc:13641
 #, fuzzy, gcc-internal-format
 msgid "Type %qs of CLASS variable %qs at %L is not extensible"
 msgstr "型態『%s』的類別變數『%s』於 %L 不是 extensible"
 
-#: fortran/resolve.cc:13644
+#: fortran/resolve.cc:13653
 #, fuzzy, gcc-internal-format
 msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
 msgstr "類別變數『%s』於 %L 必須是虛設，allocatable 或指標"
 
-#: fortran/resolve.cc:13677
+#: fortran/resolve.cc:13686
 #, fuzzy, gcc-internal-format
 msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
 msgstr "型態『%s』無法主機關聯的於 %L 因為它被阻斷由不相容的物件的同名宣告的於 %L"
 
-#: fortran/resolve.cc:13699
+#: fortran/resolve.cc:13708
 #, fuzzy, gcc-internal-format
 msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
 msgstr "Fortran 2008:意味著的儲存用於模組變數『%s』於 %L, 所需的由於預設初始化"
 
-#: fortran/resolve.cc:13732
+#: fortran/resolve.cc:13741
 #, fuzzy, gcc-internal-format
 msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "實體『%s』於 %L 有已推遲型態參數和需求還是指標或 allocatable 屬性"
 
 #. F08:C541. The shape of an array defined in a main program or module
 #. * needs to be constant.
-#: fortran/resolve.cc:13768
+#: fortran/resolve.cc:13777
 #, fuzzy, gcc-internal-format
 #| msgid "The module or main program array '%s' at %L must have constant shape"
 msgid "The module or main program array %qs at %L must have constant shape"
 msgstr "模組或主程式陣列「%s」在 %L 處必須有常態的外形"
 
-#: fortran/resolve.cc:13793
+#: fortran/resolve.cc:13802
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
 msgstr "實體與假設的字元長度於 %L 必須是虛引數或參數"
 
-#: fortran/resolve.cc:13814
+#: fortran/resolve.cc:13823
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L must have constant character length in this context"
 msgstr "『%s』於 %L 必須有常數字元長度在中這個語境"
 
-#: fortran/resolve.cc:13821
+#: fortran/resolve.cc:13830
 #, fuzzy, gcc-internal-format
 msgid "COMMON variable %qs at %L must have constant character length"
 msgstr "共同變數『%s』於 %L 必須有常數字元長度"
 
-#: fortran/resolve.cc:13869
+#: fortran/resolve.cc:13878
 #, fuzzy, gcc-internal-format
 #| msgid "Allocatable '%s' at %L cannot have an initializer"
 msgid "Allocatable %qs at %L cannot have an initializer"
 msgstr "可指派的「%s」在 %L 處不能有初始值設定"
 
-#: fortran/resolve.cc:13872
+#: fortran/resolve.cc:13881
 #, fuzzy, gcc-internal-format
 #| msgid "External '%s' at %L cannot have an initializer"
 msgid "External %qs at %L cannot have an initializer"
 msgstr "外部「%s」在 %L 處不能有初始值設定"
 
-#: fortran/resolve.cc:13875
+#: fortran/resolve.cc:13884
 #, fuzzy, gcc-internal-format
 #| msgid "Dummy '%s' at %L cannot have an initializer"
 msgid "Dummy %qs at %L cannot have an initializer"
 msgstr "啞元「%s」在 %L 處不能有初始值設定"
 
-#: fortran/resolve.cc:13878
+#: fortran/resolve.cc:13887
 #, fuzzy, gcc-internal-format
 #| msgid "Intrinsic '%s' at %L cannot have an initializer"
 msgid "Intrinsic %qs at %L cannot have an initializer"
 msgstr "內建函式「%s」在 %L 處不能有初始值設定"
 
-#: fortran/resolve.cc:13881
+#: fortran/resolve.cc:13890
 #, fuzzy, gcc-internal-format
 #| msgid "Function result '%s' at %L cannot have an initializer"
 msgid "Function result %qs at %L cannot have an initializer"
 msgstr "函式結果「%s」在 %L 處不能有初始值設定"
 
-#: fortran/resolve.cc:13884
+#: fortran/resolve.cc:13893
 #, fuzzy, gcc-internal-format
 #| msgid "Automatic array '%s' at %L cannot have an initializer"
 msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "自動陣列「%s」在 %L 處不能有初始值設定"
 
-#: fortran/resolve.cc:13926
+#: fortran/resolve.cc:13935
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "in %s, at %s:%d"
 msgid "%s at %L"
 msgstr "在 %s 中，於 %s:%d"
 
-#: fortran/resolve.cc:13958
+#: fortran/resolve.cc:13967
 #, fuzzy, gcc-internal-format
 msgid "Character-valued statement function %qs at %L must have constant length"
 msgstr "Character-valued 敘述函式『%s』於 %L 必須有常數長度"
 
-#: fortran/resolve.cc:13981
+#: fortran/resolve.cc:13990
 #, fuzzy, gcc-internal-format
 msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
 msgstr "Fortran 2003:『%s』是的私人的型態和無法虛引數的『%s』，該項是公用的於 %L"
 
-#: fortran/resolve.cc:14003
+#: fortran/resolve.cc:14012
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
 msgstr "Fortran 2003:程序『%s』在中公用的介面『%s』於 %L 需虛引數的『%s』該項是私人的"
 
-#: fortran/resolve.cc:14021
+#: fortran/resolve.cc:14030
 #, fuzzy, gcc-internal-format
 msgid "Function %qs at %L cannot have an initializer"
 msgstr "函式『%s』於 %L 無法有初始設定式"
 
-#: fortran/resolve.cc:14033
+#: fortran/resolve.cc:14042
 #, fuzzy, gcc-internal-format
 #| msgid "External object '%s' at %L may not have an initializer"
 msgid "External object %qs at %L may not have an initializer"
 msgstr "外部物件「%s」在 %L 處不能有初始值設定"
 
-#: fortran/resolve.cc:14043
+#: fortran/resolve.cc:14052
 #, fuzzy, gcc-internal-format
 msgid "ELEMENTAL function %qs at %L must have a scalar result"
 msgstr "ELEMENTAL 函式『%s』於 %L 必須有純量結果"
 
-#: fortran/resolve.cc:14053
+#: fortran/resolve.cc:14062
 #, fuzzy, gcc-internal-format
 msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
 msgstr "敘述函式『%s』於 %L 可能無法有指標或 allocatable 屬性"
 
-#: fortran/resolve.cc:14072
+#: fortran/resolve.cc:14081
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be array-valued"
 msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
 msgstr "CHARACTER(*) 函式「%s」(位於 %L)不能以陣列賦值"
 
-#: fortran/resolve.cc:14076
+#: fortran/resolve.cc:14085
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued"
 msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
 msgstr "CHARACTER(*) 函式「%s」(位於 %L)不能以指標賦值"
 
-#: fortran/resolve.cc:14080
+#: fortran/resolve.cc:14089
 #, fuzzy, gcc-internal-format
 #| msgid "CHARACTER(*) function '%s' at %L cannot be pure"
 msgid "CHARACTER(*) function %qs at %L cannot be pure"
 msgstr "CHARACTER(*) 函式「%s」(位於 %L)不能是純量"
 
-#: fortran/resolve.cc:14084
+#: fortran/resolve.cc:14093
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L cannot be recursive"
 msgstr "字元 (*) 函式『%s』於 %L 無法遞迴"
 
-#: fortran/resolve.cc:14097
+#: fortran/resolve.cc:14106
 #, fuzzy, gcc-internal-format
 msgid "CHARACTER(*) function %qs at %L"
 msgstr "CHARACTER(*) 函式「%s」(位於 %L)不能是純量"
 
-#: fortran/resolve.cc:14108
+#: fortran/resolve.cc:14117
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer %qs at %L shall not be elemental"
 msgstr "程序『%s』在中 %s 於 %L 沒有任何明確的介面"
 
-#: fortran/resolve.cc:14114
+#: fortran/resolve.cc:14123
 #, fuzzy, gcc-internal-format
 msgid "Dummy procedure %qs at %L shall not be elemental"
 msgstr "虛設程序『%s』於 %C 無法有通用介面"
 
-#: fortran/resolve.cc:14134
+#: fortran/resolve.cc:14143
 #, fuzzy, gcc-internal-format
 msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
 msgstr "變數『%s』於 %L 無法同時有 ALLOCATABLE 和繫結©屬性"
 
-#: fortran/resolve.cc:14191
+#: fortran/resolve.cc:14200
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
 msgstr "程序屬性衝突與儲存屬性在中『%s』於 %L"
 
-#: fortran/resolve.cc:14197
+#: fortran/resolve.cc:14206
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
 msgstr "程序屬性衝突與含義屬性在中『%s』於 %L"
 
-#: fortran/resolve.cc:14203
+#: fortran/resolve.cc:14212
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
 msgstr "程序屬性衝突與結果屬性在中『%s』於 %L"
 
-#: fortran/resolve.cc:14211
+#: fortran/resolve.cc:14220
 #, fuzzy, gcc-internal-format
 msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
 msgstr "外部屬性衝突與函式屬性在中『%s』於 %L"
 
-#: fortran/resolve.cc:14217
+#: fortran/resolve.cc:14226
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
 msgstr "程序指標結果『%s』於 %L 缺少指標屬性"
 
-#: fortran/resolve.cc:14260
+#: fortran/resolve.cc:14269
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14268
+#: fortran/resolve.cc:14277
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14276
+#: fortran/resolve.cc:14285
 #, gcc-internal-format, gfc-internal-format
 msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
 msgstr ""
 
-#: fortran/resolve.cc:14285
+#: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
 msgstr ""
 
-#: fortran/resolve.cc:14309
+#: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
 msgid "Interface of %qs at %L must be explicit"
 msgstr "介面『%s』的程序『%s』於 %L 必須是明確的"
 
-#: fortran/resolve.cc:14379
+#: fortran/resolve.cc:14388
 #, fuzzy, gcc-internal-format
 msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
 msgstr "最後的程序『%s』於 %L 並非副常式"
 
-#: fortran/resolve.cc:14388
+#: fortran/resolve.cc:14397
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L must have exactly one argument"
 msgstr "最後的程序於 %L 必須有精確的一個引數"
 
-#: fortran/resolve.cc:14396 fortran/resolve.cc:14413
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
 #, fuzzy, gcc-internal-format
 msgid "Argument of FINAL procedure at %L must be of type %qs"
 msgstr "引數的最後的程序於 %L 必須是的型態『%s』"
 
-#: fortran/resolve.cc:14404
+#: fortran/resolve.cc:14413
 #, gcc-internal-format, gfc-internal-format
 msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
 msgstr ""
 
-#: fortran/resolve.cc:14421
+#: fortran/resolve.cc:14430
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be a POINTER"
 msgstr "引數的最後的程序於 %L 必須不是指標"
 
-#: fortran/resolve.cc:14427
+#: fortran/resolve.cc:14436
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
 msgstr "引數的最後的程序於 %L 必須不是 ALLOCATABLE"
 
-#: fortran/resolve.cc:14433
+#: fortran/resolve.cc:14442
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
 msgstr "引數的最後的程序於 %L 必須不是可選的"
 
-#: fortran/resolve.cc:14441
+#: fortran/resolve.cc:14450
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
 msgstr "引數的最後的程序於 %L 必須不是含義 (出)"
 
-#: fortran/resolve.cc:14450
+#: fortran/resolve.cc:14459
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
 msgstr "Non-scalar 最後的程序於 %L 應該已假設形狀引數"
 
-#: fortran/resolve.cc:14472
+#: fortran/resolve.cc:14481
 #, fuzzy, gcc-internal-format
 msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
 msgstr "最後的程序『%s』宣告的於 %L 有同級 (%d) 做為『%s』"
 
-#: fortran/resolve.cc:14509
+#: fortran/resolve.cc:14518
 #, fuzzy, gcc-internal-format
 msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
 msgstr "只有陣列最後的程序宣告的用於衍生類型『%s』定義的於 %L, 建議也純量一個"
 
-#: fortran/resolve.cc:14550
+#: fortran/resolve.cc:14559
 #, fuzzy, gcc-internal-format
 msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
 msgstr "『%s』和『%s』無法混合的函式/副常式用於通用『%s』於 %L"
 
-#: fortran/resolve.cc:14586
+#: fortran/resolve.cc:14595
 #, fuzzy, gcc-internal-format
 msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
 msgstr "『%s』和『%s』用於通用『%s』於 %L 是模稜兩可的"
 
-#: fortran/resolve.cc:14645
+#: fortran/resolve.cc:14654
 #, fuzzy, gcc-internal-format
 msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
 msgstr "未定義的特定的繫結『%s』做為目標的通用『%s』於 %L"
 
-#: fortran/resolve.cc:14657
+#: fortran/resolve.cc:14666
 #, fuzzy, gcc-internal-format
 msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
 msgstr "通用『%s』於 %L 必須目標特定的繫結，『%s』是通用，太"
 
-#: fortran/resolve.cc:14685
+#: fortran/resolve.cc:14694
 #, fuzzy, gcc-internal-format
 msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
 msgstr "通用『%s』於 %L 無法覆寫特定的繫結與同名"
 
-#: fortran/resolve.cc:14741
+#: fortran/resolve.cc:14750
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Type-bound operator at %L cannot be NOPASS"
 msgstr "Type-bound 運算子於 %L 無法 NOPASS"
 
-#: fortran/resolve.cc:14953
+#: fortran/resolve.cc:14962
 #, fuzzy, gcc-internal-format
 msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
 msgstr "『%s』必須是模組程序或外部程序與明確的介面於 %L"
 
-#: fortran/resolve.cc:14996
+#: fortran/resolve.cc:15005
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
 msgstr "程序『%s』與回合 (%s) 於 %L 沒有任何引數『%s』"
 
-#: fortran/resolve.cc:15010
+#: fortran/resolve.cc:15019
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs with PASS at %L must have at least one argument"
 msgstr "程序『%s』與回合於 %L 必須至少有一個引數"
 
-#: fortran/resolve.cc:15024 fortran/resolve.cc:15566
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
 #, fuzzy, gcc-internal-format
 msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
 msgstr "Non-polymorphic passed-object 虛引數的『%s』於 %L"
 
-#: fortran/resolve.cc:15033
+#: fortran/resolve.cc:15042
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "引數『%s』的『%s』與回合 (%s) 於 %L 必須是的衍生類型『%s』"
 
-#: fortran/resolve.cc:15043
+#: fortran/resolve.cc:15052
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
 msgstr "引數『%s』的『%s』與回合 (%s) 於 %L 必須是的衍生類型『%s』"
 
-#: fortran/resolve.cc:15085
+#: fortran/resolve.cc:15094
 #, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
 msgstr ""
 
-#: fortran/resolve.cc:15095
+#: fortran/resolve.cc:15104
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must be scalar"
 msgstr "Passed-object 虛引數的『%s』於 %L 必須是純量"
 
-#: fortran/resolve.cc:15101
+#: fortran/resolve.cc:15110
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
 msgstr "Passed-object 虛引數的『%s』於 %L 必須不是 ALLOCATABLE"
 
-#: fortran/resolve.cc:15107
+#: fortran/resolve.cc:15116
 #, fuzzy, gcc-internal-format
 msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
 msgstr "Passed-object 虛引數的『%s』於 %L 必須不是指標"
 
-#: fortran/resolve.cc:15136
+#: fortran/resolve.cc:15145
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as a component of %qs"
 msgstr "程序『%s』於 %L 有同名做為成分的『%s』"
 
-#: fortran/resolve.cc:15146
+#: fortran/resolve.cc:15155
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
 msgstr "程序『%s』於 %L 有同名做為繼承的成分的『%s』"
 
-#: fortran/resolve.cc:15241
+#: fortran/resolve.cc:15250
 #, fuzzy, gcc-internal-format
 msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
 msgstr "衍生類型『%s』宣告的於 %L 必須是摘要因為『%s』是已推遲和無法 overridden"
 
-#: fortran/resolve.cc:15346
+#: fortran/resolve.cc:15355
 #, fuzzy, gcc-internal-format
 msgid "Coarray component %qs at %L must be allocatable with deferred shape"
 msgstr "Coarray 成分『%s』於 %L 必須是 allocatable 與已推遲形狀"
 
-#: fortran/resolve.cc:15355
+#: fortran/resolve.cc:15364
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "成分『%s』於 %L 的型態 (C_PTR) 或型態 (C_FUNPTR) 不應該是 coarray"
 
-#: fortran/resolve.cc:15365
+#: fortran/resolve.cc:15374
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
 msgstr "成分『%s』於 %L 與 coarray 成分應該是 nonpointer，nonallocatable 純量"
 
-#: fortran/resolve.cc:15390
+#: fortran/resolve.cc:15399
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
 msgstr "成分『%s』於 %L 有 CONTIGUOUS 屬性但是不是陣列指標"
 
-#: fortran/resolve.cc:15401
+#: fortran/resolve.cc:15410
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of ICHAR at %L must be of length one"
 msgid "Component %qs of BIND(C) type at %L must have length one"
 msgstr "%L 處 ICHAR 的參數長度必須為 1"
 
-#: fortran/resolve.cc:15499
+#: fortran/resolve.cc:15508
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
 msgstr "程序指標成分『%s』與回合 (%s) 於 %L 沒有任何引數『%s』"
 
-#: fortran/resolve.cc:15513
+#: fortran/resolve.cc:15522
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
 msgstr "程序指標成分『%s』與回合於 %L 必須至少有一個引數"
 
-#: fortran/resolve.cc:15529
+#: fortran/resolve.cc:15538
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
 msgstr "引數『%s』的『%s』與回合 (%s) 於 %L 必須是的衍生類型『%s』"
 
-#: fortran/resolve.cc:15539
+#: fortran/resolve.cc:15548
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
 msgstr "引數『%s』的『%s』與回合 (%s) 於 %L 必須是純量"
 
-#: fortran/resolve.cc:15548
+#: fortran/resolve.cc:15557
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
 msgstr "引數『%s』的『%s』與回合 (%s) 於 %L 可能無法有指標屬性"
 
-#: fortran/resolve.cc:15557
+#: fortran/resolve.cc:15566
 #, fuzzy, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
 msgstr "引數『%s』的『%s』與回合 (%s) 於 %L 可能無法是 ALLOCATABLE"
 
-#: fortran/resolve.cc:15599
+#: fortran/resolve.cc:15608
 #, fuzzy, gcc-internal-format
 msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
 msgstr "成分『%s』的『%s』於 %L 有同名做為繼承 type-bound 程序"
 
-#: fortran/resolve.cc:15612
+#: fortran/resolve.cc:15621
 #, fuzzy, gcc-internal-format
 msgid "Character length of component %qs needs to be a constant specification expression at %L"
 msgstr "字元長度的成分『%s』需要是常數規格運算式於 %L"
 
-#: fortran/resolve.cc:15623
+#: fortran/resolve.cc:15632
 #, fuzzy, gcc-internal-format
 msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
 msgstr "運算式於 %L 必須是的整數類型，找到 %s"
 
-#: fortran/resolve.cc:15636
+#: fortran/resolve.cc:15645
 #, fuzzy, gcc-internal-format
 msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
 msgstr "字元成分『%s』的『%s』於 %L 與已推遲長度必須是指標或 ALLOCATABLE"
 
-#: fortran/resolve.cc:15669
+#: fortran/resolve.cc:15678
 #, fuzzy, gcc-internal-format
 msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
 msgstr "Fortran 2003:成分『%s』是私人的型態和無法成分的『%s』，該項是公用的於 %L"
 
-#: fortran/resolve.cc:15677
+#: fortran/resolve.cc:15686
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
 msgstr "Polymorphic 成分 %s 於 %L 在中序列或繫結©型態 %s"
 
-#: fortran/resolve.cc:15686
+#: fortran/resolve.cc:15695
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
 msgstr "成分 %s 的序列型態宣告的於 %L 沒有序列屬性"
 
-#: fortran/resolve.cc:15772
+#: fortran/resolve.cc:15781
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Conflicting initializers in union at %L and %L"
 msgstr "衝突在中屬性的函式引數於 %C"
 
-#: fortran/resolve.cc:15817
+#: fortran/resolve.cc:15826
 #, fuzzy, gcc-internal-format
 msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
 msgstr "做為延伸型態『%s』於 %L 有 coarray 成分，親代型態『%s』應該也有一個"
 
-#: fortran/resolve.cc:15830
+#: fortran/resolve.cc:15839
 #, fuzzy, gcc-internal-format
 msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
 msgstr "Non-extensible 衍生類型『%s』於 %L 必須不是摘要"
 
-#: fortran/resolve.cc:15894
+#: fortran/resolve.cc:15903
 #, gcc-internal-format
 msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
 msgstr ""
 
-#: fortran/resolve.cc:15927
+#: fortran/resolve.cc:15936
 #, fuzzy, gcc-internal-format
 msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
 msgstr "Fortran 2003:通用名稱『%s』的函式『%s』於 %L 相同名稱做為衍生類型於 %L"
 
-#: fortran/resolve.cc:15941
+#: fortran/resolve.cc:15950
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L has not been declared"
 msgstr "衍生類型『%s』於 %L 必須是 extensible"
 
-#: fortran/resolve.cc:16009
+#: fortran/resolve.cc:16018
 #, fuzzy, gcc-internal-format
 msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
 msgstr "假設的大小陣列『%s』在中名稱表列『%s』於 %L 未被允許"
 
-#: fortran/resolve.cc:16015
+#: fortran/resolve.cc:16024
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
 msgstr "Fortran 2003:名稱表列陣列物件『%s』與假設的形狀在中名稱表列『%s』於 %L"
 
-#: fortran/resolve.cc:16021
+#: fortran/resolve.cc:16030
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
 msgstr "Fortran 2003:名稱表列陣列物件『%s』與 nonconstant 形狀在中名稱表列『%s』於 %L"
 
-#: fortran/resolve.cc:16029
+#: fortran/resolve.cc:16038
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
 msgstr "Fortran 2003:名稱表列物件『%s』與 nonconstant 字元長度在中名稱表列『%s』於 %L"
 
-#: fortran/resolve.cc:16046
+#: fortran/resolve.cc:16055
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
 msgstr "名稱表列物件『%s』被宣告私人的和無法成員的公用的名稱表列『%s』於 %L"
 
-#: fortran/resolve.cc:16068
+#: fortran/resolve.cc:16077
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
 msgstr "名稱表列物件『%s』已 use-associated 私人的成分和無法成員的名稱表列『%s』於 %L"
 
-#: fortran/resolve.cc:16079
+#: fortran/resolve.cc:16088
 #, fuzzy, gcc-internal-format
 msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
 msgstr "名稱表列物件『%s』有私人的成分和無法成員的公用的名稱表列『%s』於 %L"
 
-#: fortran/resolve.cc:16106
+#: fortran/resolve.cc:16115
 #, fuzzy, gcc-internal-format
 msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
 msgstr "程序屬性衝突與名稱表列屬性在中『%s』於 %L"
 
-#: fortran/resolve.cc:16125
+#: fortran/resolve.cc:16134
 #, fuzzy, gcc-internal-format
 msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
 msgstr "參數陣列『%s』於 %L 無法自動或的已推遲形狀"
 
-#: fortran/resolve.cc:16141
+#: fortran/resolve.cc:16150
 #, fuzzy, gcc-internal-format
 msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
 msgstr "隱含地型態的參數『%s』於 %L 不匹配稍後隱含的型態"
 
-#: fortran/resolve.cc:16152
+#: fortran/resolve.cc:16161
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Incompatible derived type in PARAMETER at %L"
 msgstr "不相容的衍生類型在中參數於 %L"
 
-#: fortran/resolve.cc:16160
+#: fortran/resolve.cc:16169
 #, fuzzy, gcc-internal-format
 msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "共同區塊『%s』於 %L 無法有外部屬性"
 
-#: fortran/resolve.cc:16212
+#: fortran/resolve.cc:16221
 #, fuzzy, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
 msgstr "實體『%s』於 %L 有已推遲型態參數和需求還是指標或 allocatable 屬性"
 
-#: fortran/resolve.cc:16224
+#: fortran/resolve.cc:16233
 #, gcc-internal-format
 msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
 msgstr ""
 
-#: fortran/resolve.cc:16231
+#: fortran/resolve.cc:16240
 #, gcc-internal-format
 msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
 msgstr ""
 
-#: fortran/resolve.cc:16290
+#: fortran/resolve.cc:16299
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
 msgstr ""
 
-#: fortran/resolve.cc:16303
+#: fortran/resolve.cc:16312
 #, gcc-internal-format
 msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
 msgstr ""
 
-#: fortran/resolve.cc:16361
+#: fortran/resolve.cc:16370
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
 msgstr "保護的屬性衝突與外部屬性於 %L"
 
-#: fortran/resolve.cc:16364
+#: fortran/resolve.cc:16373
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
 msgstr "程序屬性衝突與保護的屬性於 %L"
 
-#: fortran/resolve.cc:16461
+#: fortran/resolve.cc:16470
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
 msgstr "『%s』於 %L 有 CONTIGUOUS 屬性但是不是陣列指標或 assumed-shape 陣列"
 
-#: fortran/resolve.cc:16482
+#: fortran/resolve.cc:16491
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Bad specification for assumed size array at %L"
 msgstr "不當的規格用於假設的大小陣列於 %C"
 
-#: fortran/resolve.cc:16496
+#: fortran/resolve.cc:16505
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed size array at %L must be a dummy argument"
 msgstr "假定大小的陣列在 %L 處必須是啞引數"
 
-#: fortran/resolve.cc:16499
+#: fortran/resolve.cc:16508
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed shape array at %L must be a dummy argument"
 msgstr "假定外形的陣列在 %L 處必須是啞引數"
 
-#: fortran/resolve.cc:16509
+#: fortran/resolve.cc:16518
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L must be a dummy argument"
 msgstr "假定外形的陣列在 %L 處必須是啞引數"
 
-#: fortran/resolve.cc:16516
+#: fortran/resolve.cc:16525
 #, gcc-internal-format, gfc-internal-format
 msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
 msgstr ""
 
-#: fortran/resolve.cc:16529
+#: fortran/resolve.cc:16538
 #, gcc-internal-format, gfc-internal-format
 msgid "Symbol at %L is not a DUMMY variable"
 msgstr "%L 處的符號不是一個 DUMMY 變數"
 
-#: fortran/resolve.cc:16535
+#: fortran/resolve.cc:16544
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
 msgstr "『%s』於 %L 無法有值屬性因為它並非虛引數"
 
-#: fortran/resolve.cc:16545
+#: fortran/resolve.cc:16554
 #, fuzzy, gcc-internal-format
 msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
 msgstr "字元虛設變數『%s』於 %L 與值屬性必須有常數長度"
 
-#: fortran/resolve.cc:16554
+#: fortran/resolve.cc:16563
 #, fuzzy, gcc-internal-format
 msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
 msgstr "C 可交流的字元虛設變數『%s』於 %L 與值屬性必須有長度一個"
 
-#: fortran/resolve.cc:16567 fortran/resolve.cc:16744
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
 #, fuzzy, gcc-internal-format
 msgid "The derived type %qs at %L is of type %qs, which has not been defined"
 msgstr "衍生類型『%s』於 %L 是的型態『%s』，該項未被定義"
 
-#: fortran/resolve.cc:16581
+#: fortran/resolve.cc:16590
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
 msgstr ""
 
-#: fortran/resolve.cc:16590
+#: fortran/resolve.cc:16599
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
 msgstr ""
 
-#: fortran/resolve.cc:16599
+#: fortran/resolve.cc:16608
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "變數『%s』於 %L 無法同時有 ALLOCATABLE 和繫結©屬性"
 
-#: fortran/resolve.cc:16607
+#: fortran/resolve.cc:16616
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
 msgstr "變數『%s』於 %L 無法同時有指標和繫結©屬性"
 
-#: fortran/resolve.cc:16614
+#: fortran/resolve.cc:16623
 #, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
 msgstr ""
 
-#: fortran/resolve.cc:16634
+#: fortran/resolve.cc:16643
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
 msgstr "假設的形狀陣列『%s』於 %L 未被允許在中初始化運算式"
 
-#: fortran/resolve.cc:16641
+#: fortran/resolve.cc:16650
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
 msgstr "變數『%s』於 %L 無法同時有 ALLOCATABLE 和繫結©屬性"
 
-#: fortran/resolve.cc:16648
+#: fortran/resolve.cc:16657
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
 msgstr "變數『%s』於 %L 無法同時有指標和繫結©屬性"
 
-#: fortran/resolve.cc:16655
+#: fortran/resolve.cc:16664
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
 msgstr "迴圈變數於 %C 無法 coarray"
 
-#: fortran/resolve.cc:16681
+#: fortran/resolve.cc:16690
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
 msgstr "變數『%s』於 %L 無法繫結©因為它是 neither 共同區塊 nor 宣告的於模組等級範圍"
 
-#: fortran/resolve.cc:16691
+#: fortran/resolve.cc:16700
 #, fuzzy, gcc-internal-format
 #| msgid "Argument of %s at %L must be of length one"
 msgid "BIND(C) Variable %qs at %L must have length one"
 msgstr "%s 的參數(位於 %L)長度必須為 1"
 
-#: fortran/resolve.cc:16770
+#: fortran/resolve.cc:16779
 #, fuzzy, gcc-internal-format
 msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
 msgstr "Fortran 2003:公用的 %s『%s』於 %L 的私人的衍生類型『%s』"
 
-#: fortran/resolve.cc:16785
+#: fortran/resolve.cc:16794
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
 msgstr "變數 %s 於 %L 的型態 LOCK_TYPE 或與 subcomponent 的型態 LOCK_TYPE 必須是 coarray"
 
-#: fortran/resolve.cc:16798
+#: fortran/resolve.cc:16807
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
 msgstr "變數 %s 於 %L 的型態 LOCK_TYPE 或與 subcomponent 的型態 LOCK_TYPE 必須是 coarray"
 
-#: fortran/resolve.cc:16816
+#: fortran/resolve.cc:16825
 #, fuzzy, gcc-internal-format
 msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
 msgstr "含義 (出) 虛引數『%s』於 %L 是假設的大小和因而無法有預設初始設定式"
 
-#: fortran/resolve.cc:16828
+#: fortran/resolve.cc:16837
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
 msgstr "虛引數『%s』於 %L 的 LOCK_TYPE 不應該是含義 (出)"
 
-#: fortran/resolve.cc:16837
+#: fortran/resolve.cc:16846
 #, fuzzy, gcc-internal-format
 msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
 msgstr "虛引數『%s』於 %L 的 LOCK_TYPE 不應該是含義 (出)"
 
-#: fortran/resolve.cc:16850
+#: fortran/resolve.cc:16859
 #, fuzzy, gcc-internal-format
 msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
 msgstr "函數計算結果『%s』於 %L 不應該是 coarray 或有 coarray 成分"
 
-#: fortran/resolve.cc:16859
+#: fortran/resolve.cc:16868
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
 msgstr "變數『%s』於 %L 的型態 (C_PTR) 或型態 (C_FUNPTR) 不應該是 coarray"
 
-#: fortran/resolve.cc:16872
+#: fortran/resolve.cc:16881
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
 msgstr "變數『%s』於 %L 與 coarray 成分應該是 nonpointer，nonallocatable 純量"
 
-#: fortran/resolve.cc:16888
+#: fortran/resolve.cc:16897
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
 msgstr "變數『%s』於 %L 是 coarray 和不是 ALLOCATABLE，儲存 nor 虛引數"
 
-#: fortran/resolve.cc:16896
+#: fortran/resolve.cc:16905
 #, fuzzy, gcc-internal-format
 msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
 msgstr "Coarray 變數『%s』於 %L 不應該有 codimensions 與已推遲形狀"
 
-#: fortran/resolve.cc:16903
+#: fortran/resolve.cc:16912
 #, fuzzy, gcc-internal-format
 msgid "Allocatable coarray variable %qs at %L must have deferred shape"
 msgstr "Allocatable coarray 變數『%s』於 %L 必須已已推遲形狀"
 
-#: fortran/resolve.cc:16916
+#: fortran/resolve.cc:16925
 #, fuzzy, gcc-internal-format
 msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
 msgstr "變數『%s』於 %L 是含義 (出) 和可以因而無法是 allocatable coarray 或有 coarray 成分"
 
-#: fortran/resolve.cc:16925
+#: fortran/resolve.cc:16934
 #, fuzzy, gcc-internal-format
 msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
 msgstr "Coarray 虛設變數『%s』於 %L 不允許在中繫結©程序『%s』"
 
-#: fortran/resolve.cc:16941
+#: fortran/resolve.cc:16950
 #, fuzzy, gcc-internal-format
 msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "Coarray 虛設變數『%s』於 %L 不允許在中繫結©程序『%s』"
 
-#: fortran/resolve.cc:16947
+#: fortran/resolve.cc:16956
 #, fuzzy, gcc-internal-format
 msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
 msgstr "Coarray 虛設變數『%s』於 %L 不允許在中繫結©程序『%s』"
 
-#: fortran/resolve.cc:16972
+#: fortran/resolve.cc:16981
 #, fuzzy, gcc-internal-format
 msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
 msgstr "名稱表列 %s 無法重新命名的由使用關聯到 %s"
 
-#: fortran/resolve.cc:17032
+#: fortran/resolve.cc:17041
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate at %L isn't SAVEd"
 msgstr "Threadprivate 於 %L 不是儲存"
 
-#: fortran/resolve.cc:17044
+#: fortran/resolve.cc:17053
 #, gcc-internal-format
 msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
 msgstr ""
 
-#: fortran/resolve.cc:17151
+#: fortran/resolve.cc:17160
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Expecting definable entity near %L"
 msgstr "預期具名的實體清單的於 %C"
 
-#: fortran/resolve.cc:17159
+#: fortran/resolve.cc:17168
 #, fuzzy, gcc-internal-format
 msgid "BLOCK DATA element %qs at %L must be in COMMON"
 msgstr "區塊資料元素『%s』於 %L 必須是在中共同"
 
-#: fortran/resolve.cc:17166
+#: fortran/resolve.cc:17175
 #, fuzzy, gcc-internal-format
 msgid "DATA array %qs at %L must be specified in a previous declaration"
 msgstr "資料陣列『%s』於 %L 必須被指定的在中前一個宣告"
 
-#: fortran/resolve.cc:17173
+#: fortran/resolve.cc:17182
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L cannot have a coindex"
 msgstr "資料元素『%s』於 %L 無法有 coindex"
 
-#: fortran/resolve.cc:17189
+#: fortran/resolve.cc:17198
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L is a pointer and so must be a full array"
 msgstr "資料元素『%s』於 %L 是指標和因而必須是全部陣列"
 
-#: fortran/resolve.cc:17196
+#: fortran/resolve.cc:17205
 #, gcc-internal-format, gfc-internal-format
 msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
 msgstr ""
 
-#: fortran/resolve.cc:17205
+#: fortran/resolve.cc:17214
 #, fuzzy, gcc-internal-format
 msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
 msgstr "引數『%s』的 elemental 程序於 %L 無法有 ALLOCATABLE 屬性"
 
-#: fortran/resolve.cc:17267
+#: fortran/resolve.cc:17276
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Nonconstant array section at %L in DATA statement"
 msgstr "Nonconstant 陣列區段於 %L 在中資料敘述"
 
-#: fortran/resolve.cc:17280
+#: fortran/resolve.cc:17289
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more variables than values"
 msgstr "資料敘述於 %L 有更多變數比值"
 
-#: fortran/resolve.cc:17356
+#: fortran/resolve.cc:17365
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
 msgstr "Nonconstant 陣列區段於 %L 在中資料敘述"
 
-#: fortran/resolve.cc:17384
+#: fortran/resolve.cc:17393
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "start of implied-do loop at %L could not be simplified to a constant value"
 msgstr "開始的 implied-do 迴圈於 %L 無法被簡化到常數"
 
-#: fortran/resolve.cc:17392
+#: fortran/resolve.cc:17401
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "end of implied-do loop at %L could not be simplified to a constant value"
 msgstr "結束的 implied-do 迴圈於 %L 無法被簡化到常數"
 
-#: fortran/resolve.cc:17400
+#: fortran/resolve.cc:17409
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L could not be simplified to a constant value"
 msgstr "步驟的 implied-do 迴圈於 %L 無法被簡化到常數"
 
-#: fortran/resolve.cc:17407
+#: fortran/resolve.cc:17416
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "step of implied-do loop at %L shall not be zero"
 msgstr "步驟的 implied-do 迴圈於 %L 無法被簡化到常數"
 
-#: fortran/resolve.cc:17532
+#: fortran/resolve.cc:17541
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "DATA statement at %L has more values than variables"
 msgstr "資料敘述於 %L 有更多值比變數"
 
-#: fortran/resolve.cc:17698
+#: fortran/resolve.cc:17707
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but not used"
 msgstr "標籤 %d 於 %L 經定義但未被使用"
 
-#: fortran/resolve.cc:17704
+#: fortran/resolve.cc:17713
 #, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %L defined but cannot be used"
 msgstr "標籤 %d 於 %L 經定義但無法被使用"
 
-#: fortran/resolve.cc:17788
+#: fortran/resolve.cc:17797
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
 msgstr "衍生類型變數『%s』於 %L 必須有序列屬性為等價物件"
 
-#: fortran/resolve.cc:17797
+#: fortran/resolve.cc:17806
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
 msgstr "衍生類型變數『%s』於 %L 無法有 ALLOCATABLE 成分為等價物件"
 
-#: fortran/resolve.cc:17805
+#: fortran/resolve.cc:17814
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
 msgstr "衍生類型變數『%s』於 %L 與預設初始化無法在中等價與變數在中共同"
 
-#: fortran/resolve.cc:17821
+#: fortran/resolve.cc:17830
 #, fuzzy, gcc-internal-format
 msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
 msgstr "衍生類型變數『%s』於 %L 與指標成分無法等價物件"
 
-#: fortran/resolve.cc:17924
+#: fortran/resolve.cc:17933
 #, gcc-internal-format, gfc-internal-format
 msgid "Syntax error in EQUIVALENCE statement at %L"
 msgstr "%L 處 EQUIVALENCE 敘述語法錯誤"
 
-#: fortran/resolve.cc:17939
+#: fortran/resolve.cc:17948
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
 msgstr "還是所有或沒有任何物件在中等價設定於 %L 應該有保護的屬性"
 
-#: fortran/resolve.cc:17964
+#: fortran/resolve.cc:17973
 #, fuzzy, gcc-internal-format
 msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
 msgstr "共同區塊成員『%s』於 %L 無法等價物件在中 pure 程序『%s』"
 
-#: fortran/resolve.cc:17973
+#: fortran/resolve.cc:17982
 #, fuzzy, gcc-internal-format
 msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
 msgstr "具名的常數『%s』於 %L 無法等價物件"
 
-#: fortran/resolve.cc:18048
+#: fortran/resolve.cc:18057
 #, fuzzy, gcc-internal-format
 msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
 msgstr "陣列『%s』於 %L 與 non-constant 邊界無法等價物件"
 
-#: fortran/resolve.cc:18059
+#: fortran/resolve.cc:18068
 #, fuzzy, gcc-internal-format
 msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
 msgstr "結構成分『%s』於 %L 無法等價物件"
 
-#: fortran/resolve.cc:18070
+#: fortran/resolve.cc:18079
 #, gcc-internal-format, gfc-internal-format
 msgid "Substring at %L has length zero"
 msgstr "%L 的子字串長度為零"
 
-#: fortran/resolve.cc:18101
+#: fortran/resolve.cc:18110
 #, fuzzy, gcc-internal-format
 #| msgid "Syntax error in character length specification at %C"
 msgid "Self reference in character length expression for %qs at %L"
 msgstr "%C 處指定字元長度時語法錯誤"
 
-#: fortran/resolve.cc:18168
+#: fortran/resolve.cc:18177
 #, fuzzy, gcc-internal-format
 msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
 msgstr "Fortran 2003:公用的函式『%s』於 %L 的私人的型態『%s』"
 
-#: fortran/resolve.cc:18181
+#: fortran/resolve.cc:18190
 #, fuzzy, gcc-internal-format
 #| msgid "ENTRY '%s' at %L has no IMPLICIT type"
 msgid "ENTRY %qs at %L has no IMPLICIT type"
 msgstr "ENTRY「%s」在 %L 處沒有 IMPLICIT 類型"
 
-#: fortran/resolve.cc:18203
+#: fortran/resolve.cc:18212
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L must be a FUNCTION"
 msgstr "使用者運算子程序『%s』於 %L 必須是函式"
 
-#: fortran/resolve.cc:18213
+#: fortran/resolve.cc:18222
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L cannot be assumed character length"
 msgstr "使用者運算子程序『%s』於 %L 無法假設的字元長度"
 
-#: fortran/resolve.cc:18221
+#: fortran/resolve.cc:18230
 #, fuzzy, gcc-internal-format
 msgid "User operator procedure %qs at %L must have at least one argument"
 msgstr "使用者運算子程序『%s』於 %L 必須至少有一個引數"
 
-#: fortran/resolve.cc:18235
+#: fortran/resolve.cc:18244
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "First argument of operator interface at %L cannot be optional"
 msgstr "第一個引數的運算子介面於 %L 無法可選的"
 
-#: fortran/resolve.cc:18253
+#: fortran/resolve.cc:18262
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Second argument of operator interface at %L cannot be optional"
 msgstr "秒引數的運算子介面於 %L 無法可選的"
 
-#: fortran/resolve.cc:18260
+#: fortran/resolve.cc:18269
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Operator interface at %L must have, at most, two arguments"
 msgstr "運算子介面於 %L 必須有，最多，兩引數"
 
-#: fortran/resolve.cc:18342
+#: fortran/resolve.cc:18351
 #, fuzzy, gcc-internal-format
 msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
 msgstr "包含的程序『%s』於 %L 的 PURE 程序必須也是 PURE"
@@ -84080,339 +84129,339 @@ msgstr "隱含地宣告的變數『%s』於 %L 可能無法是 C 可交流的但
 msgid "Function result %qs at %L has no IMPLICIT type"
 msgstr "函數計算結果『%s』於 %L 沒有任何隱含的型態"
 
-#: fortran/symbol.cc:501
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr "%s 屬性與 %s 屬性在 %L 處衝突"
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, fuzzy, gcc-internal-format
+#| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr "%s 屬性與 %s 屬性衝突，在「%s」中，位於 %L"
+
+#: fortran/symbol.cc:508
 #, gcc-internal-format, gfc-internal-format
 msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
 msgstr "%s 屬性在 %L 處不允許出現在 BLOCAK DATA 程式單元中"
 
-#: fortran/symbol.cc:526
+#: fortran/symbol.cc:533
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Namelist group name at %L cannot have the SAVE attribute"
 msgstr "名稱表列群組名稱於 %L 無法有儲存屬性"
 
-#: fortran/symbol.cc:545
+#: fortran/symbol.cc:552
 #, fuzzy, gcc-internal-format
 msgid "internal procedure %qs at %L conflicts with DUMMY argument"
 msgstr "Fortran 2008:內部程序『%s』被做為實際引數於 %L"
 
-#: fortran/symbol.cc:578
+#: fortran/symbol.cc:585
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Procedure pointer at %C"
 msgstr "Fortran 2003:程序指標於 %C"
 
-#: fortran/symbol.cc:790
+#: fortran/symbol.cc:797
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s attribute applied to %s %s at %L"
 msgstr "%s 屬性套用到 %s %s 於 %L"
 
-#: fortran/symbol.cc:797
+#: fortran/symbol.cc:804
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) applied to %s %s at %L"
 msgstr "繫結©套用到 %s %s 於 %L"
 
-#: fortran/symbol.cc:918 fortran/symbol.cc:929 fortran/symbol.cc:1809
-#, gcc-internal-format, gfc-internal-format
-msgid "%s attribute conflicts with %s attribute at %L"
-msgstr "%s 屬性與 %s 屬性在 %L 處衝突"
-
-#: fortran/symbol.cc:921 fortran/symbol.cc:935
-#, fuzzy, gcc-internal-format
-#| msgid "%s attribute conflicts with %s attribute in '%s' at %L"
-msgid "%s attribute conflicts with %s attribute in %qs at %L"
-msgstr "%s 屬性與 %s 屬性衝突，在「%s」中，位於 %L"
-
-#: fortran/symbol.cc:979
+#: fortran/symbol.cc:972
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol at %L"
 msgstr "無法變更屬性的 USE-associated 符號於 %L"
 
-#: fortran/symbol.cc:982
+#: fortran/symbol.cc:975
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cannot change attributes of USE-associated symbol %s at %L"
 msgstr "無法變更屬性的 USE-associated 符號 %s 於 %L"
 
-#: fortran/symbol.cc:998
+#: fortran/symbol.cc:991
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s attribute specified at %L"
 msgstr "重複的 %s 屬性在 %L 處被指定"
 
-#: fortran/symbol.cc:1040
+#: fortran/symbol.cc:1033
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
 msgstr "ALLOCATABLE 指定的外側的介面內文於 %L"
 
-#: fortran/symbol.cc:1057
+#: fortran/symbol.cc:1050
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate AUTOMATIC attribute specified at %L"
 msgstr "重製易變的屬性指定的於 %L"
 
-#: fortran/symbol.cc:1081
+#: fortran/symbol.cc:1074
 #, fuzzy, gcc-internal-format
 msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "CODIMENSION 指定的用於『%s』外側它的介面內文於 %L"
 
-#: fortran/symbol.cc:1107
+#: fortran/symbol.cc:1100
 #, fuzzy, gcc-internal-format
 msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
 msgstr "尺寸指定的用於『%s』外側它的介面內文於 %L"
 
-#: fortran/symbol.cc:1270
+#: fortran/symbol.cc:1263
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Cray Pointee at %L appears in multiple pointer() statements"
 msgstr "Cray 點於 %L 出現在中多重指標() 敘述"
 
-#: fortran/symbol.cc:1289
+#: fortran/symbol.cc:1282
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate PROTECTED attribute specified at %L"
 msgstr "重製保護的屬性指定的於 %L"
 
-#: fortran/symbol.cc:1322
+#: fortran/symbol.cc:1315
 #, gcc-internal-format, gfc-internal-format
 msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgstr "%L 處 PURE 程序不能指定 SAVE 屬性"
 
-#: fortran/symbol.cc:1334
+#: fortran/symbol.cc:1327
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate SAVE attribute specified at %L"
 msgstr "%L 指定了重複的 SAVE 屬性"
 
-#: fortran/symbol.cc:1354
+#: fortran/symbol.cc:1347
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VALUE attribute specified at %L"
 msgstr "重製值屬性指定的於 %L"
 
-#: fortran/symbol.cc:1373
+#: fortran/symbol.cc:1366
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate VOLATILE attribute specified at %L"
 msgstr "重製易變的屬性指定的於 %L"
 
-#: fortran/symbol.cc:1385
+#: fortran/symbol.cc:1378
 #, fuzzy, gcc-internal-format, gfc-internal-format
 #| msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
 msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
 msgstr "%L 處 PURE 程序不能指定 SAVE 屬性"
 
-#: fortran/symbol.cc:1406
+#: fortran/symbol.cc:1399
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
 msgstr "重製非同步屬性指定的於 %L"
 
-#: fortran/symbol.cc:1805
+#: fortran/symbol.cc:1798
 #, fuzzy, gcc-internal-format
 msgid "%s attribute of %qs conflicts with %s attribute at %L"
 msgstr "%s 屬性的『%s』衝突與 %s 屬性於 %L"
 
-#: fortran/symbol.cc:1842
+#: fortran/symbol.cc:1835
 #, gcc-internal-format, gfc-internal-format
 msgid ""
 "%s procedure at %L is already declared as %s procedure. \n"
 "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
 msgstr ""
 
-#: fortran/symbol.cc:1850
+#: fortran/symbol.cc:1843
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "%s procedure at %L is already declared as %s procedure"
 msgstr "%s 程序於 %L 已經宣告的做為 %s 程序"
 
-#: fortran/symbol.cc:1885
+#: fortran/symbol.cc:1878
 #, gcc-internal-format, gfc-internal-format
 msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
 msgstr "INTENT (%s) 與 INTENT(%s) 在 %L 衝突"
 
-#: fortran/symbol.cc:1909
+#: fortran/symbol.cc:1902
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "ACCESS specification at %L was already specified"
 msgstr "存取規格於 %L 已經指定的"
 
-#: fortran/symbol.cc:1926
+#: fortran/symbol.cc:1919
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate BIND attribute specified at %L"
 msgstr "重製繫結屬性指定的於 %L"
 
-#: fortran/symbol.cc:1933
+#: fortran/symbol.cc:1926
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "BIND(C) at %L"
 msgstr "Fortran 2003:繫結©於 %L"
 
-#: fortran/symbol.cc:1949
+#: fortran/symbol.cc:1942
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Duplicate EXTENDS attribute specified at %L"
 msgstr "重製延伸屬性指定的於 %L"
 
-#: fortran/symbol.cc:1953
+#: fortran/symbol.cc:1946
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "EXTENDS at %L"
 msgstr "Fortran 2003:延伸於 %L"
 
-#: fortran/symbol.cc:1979
+#: fortran/symbol.cc:1972
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L already has an explicit interface"
 msgid "Symbol %qs at %L already has an explicit interface"
 msgstr "符號「%s」在 %L 處已經有了明確介面"
 
-#: fortran/symbol.cc:1986
+#: fortran/symbol.cc:1979
 #, fuzzy, gcc-internal-format
 msgid "%qs at %L has attributes specified outside its INTERFACE body"
 msgstr "『%s』於 %L 有屬性指定的外側它的介面內文"
 
-#: fortran/symbol.cc:2024
+#: fortran/symbol.cc:2017
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
 msgstr "符號『%s』於 %L 衝突與符號從模組『%s』，use-associated 於 %L"
 
-#: fortran/symbol.cc:2028 fortran/symbol.cc:2031
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L already has basic type of %s"
 msgid "Symbol %qs at %L already has basic type of %s"
 msgstr "符號「%s」在 %L 處已經有了基本類型 %s"
 
-#: fortran/symbol.cc:2038
+#: fortran/symbol.cc:2031
 #, fuzzy, gcc-internal-format
 msgid "Procedure %qs at %L may not have basic type of %s"
 msgstr "程序『%s』於 %L 可能無法有基本型式的 %s"
 
-#: fortran/symbol.cc:2050
+#: fortran/symbol.cc:2043
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %L cannot have a type"
 msgid "Symbol %qs at %L cannot have a type"
 msgstr "符號「%s」於 %L 處不能有類型"
 
-#: fortran/symbol.cc:2295
+#: fortran/symbol.cc:2288
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %C already in the parent type at %L"
 msgstr "成分『%s』於 %C 已經在中親代型態於 %L"
 
-#: fortran/symbol.cc:2380
+#: fortran/symbol.cc:2373
 #, fuzzy, gcc-internal-format
 #| msgid "Symbol '%s' at %C is ambiguous"
 msgid "Symbol %qs at %C is ambiguous"
 msgstr "符號「%s」在 %C 處有歧義"
 
-#: fortran/symbol.cc:2412
+#: fortran/symbol.cc:2405
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %C is being used before it is defined"
 msgstr "衍生類型『%s』於 %C 正在被使用之前它被定義"
 
-#: fortran/symbol.cc:2622
+#: fortran/symbol.cc:2615
 #, fuzzy, gcc-internal-format
 #| msgid "Component '%s' at %C is a PRIVATE component of '%s'"
 msgid "Component %qs at %C is a PRIVATE component of %qs"
 msgstr "元件「%s」在 %C 處是「%s」的 PRIVATE 元件"
 
-#: fortran/symbol.cc:2643
+#: fortran/symbol.cc:2636
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %C is not a member of the '%s' structure"
 msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
 msgstr "「%s」在 %C 處不是「%s」結構的成員"
 
-#: fortran/symbol.cc:2647
+#: fortran/symbol.cc:2640
 #, fuzzy, gcc-internal-format
 #| msgid "'%s' at %C is not a member of the '%s' structure"
 msgid "%qs at %C is not a member of the %qs structure"
 msgstr "「%s」在 %C 處不是「%s」結構的成員"
 
-#: fortran/symbol.cc:2811
+#: fortran/symbol.cc:2804
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate statement label %d at %L and %L"
 msgstr "重複的敘述標籤 %d 出現在 %L 和 %L 處"
 
-#: fortran/symbol.cc:2822
+#: fortran/symbol.cc:2815
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as branch target"
 msgstr "標貼 %d 於 %C 已經引用做為分支目標"
 
-#: fortran/symbol.cc:2832
+#: fortran/symbol.cc:2825
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C already referenced as a format label"
 msgstr "標貼 %d 於 %C 已經引用做為格式標貼"
 
-#: fortran/symbol.cc:2839
+#: fortran/symbol.cc:2832
 #, gcc-internal-format, gfc-internal-format
 msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
 msgstr ""
 
-#: fortran/symbol.cc:2880
+#: fortran/symbol.cc:2873
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as a FORMAT label"
 msgstr "標貼 %d 於 %C 在之前使用的做為格式標貼"
 
-#: fortran/symbol.cc:2889
+#: fortran/symbol.cc:2882
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Label %d at %C previously used as branch target"
 msgstr "標貼 %d 於 %C 在之前使用的做為分支目標"
 
-#: fortran/symbol.cc:2896
+#: fortran/symbol.cc:2889
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Shared DO termination label %d at %C"
 msgstr "%C 處需要結束名"
 
-#: fortran/symbol.cc:2900
+#: fortran/symbol.cc:2893
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Labeled DO statement at %L"
 msgstr "Fortran 2008:鎖定敘述於 %C"
 
-#: fortran/symbol.cc:3241
+#: fortran/symbol.cc:3284
 #, fuzzy, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
 msgstr "名稱『%s』於 %C 是模稜兩可的參考到『%s』從模組『%s』"
 
-#: fortran/symbol.cc:3244
+#: fortran/symbol.cc:3287
 #, fuzzy, gcc-internal-format
 msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
 msgstr "名稱『%s』於 %C 是模稜兩可的參考到『%s』從目前的程式單元"
 
 #. Symbol is from another namespace.
-#: fortran/symbol.cc:3489
+#: fortran/symbol.cc:3532
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs at %C has already been host associated"
 msgstr "符號『%s』於 %C 已主機關聯的"
 
-#: fortran/symbol.cc:4543
+#: fortran/symbol.cc:4586
 #, gcc-internal-format
 msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
 msgstr ""
 
-#: fortran/symbol.cc:4556
+#: fortran/symbol.cc:4599
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
 msgstr "衍生類型『%s』宣告的於 %L 必須有繫結屬性為 C 可交流的"
 
-#: fortran/symbol.cc:4574
+#: fortran/symbol.cc:4617
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
 msgstr "衍生類型『%s』與繫結©屬性於 %L 是空的，而也許會是不可存取由 C companion 處理器"
 
-#: fortran/symbol.cc:4595
+#: fortran/symbol.cc:4638
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "成分『%s』於 %L 無法有指標屬性因為它是成員的繫結©衍生類型『%s』於 %L"
 
-#: fortran/symbol.cc:4605
+#: fortran/symbol.cc:4648
 #, fuzzy, gcc-internal-format
 msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
 msgstr "程序指標成分『%s』於 %L 無法成員的繫結©衍生類型『%s』於 %L"
 
-#: fortran/symbol.cc:4616
+#: fortran/symbol.cc:4659
 #, fuzzy, gcc-internal-format
 msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
 msgstr "成分『%s』於 %L 無法有 ALLOCATABLE 屬性因為它是成員的繫結©衍生類型『%s』於 %L"
 
-#: fortran/symbol.cc:4655
+#: fortran/symbol.cc:4698
 #, fuzzy, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
 msgstr "成分『%s』在中衍生類型『%s』於 %L 可能無法是 C 可交流的，甚至雖然衍生類型『%s』是繫結©"
 
-#: fortran/symbol.cc:4665
+#: fortran/symbol.cc:4708
 #, fuzzy, gcc-internal-format
 msgid "Component %qs in derived type %qs at %L may not be C interoperable"
 msgstr "成分『%s』在中衍生類型『%s』於 %L 可能無法是 C 可交流的"
 
-#: fortran/symbol.cc:4677
+#: fortran/symbol.cc:4720
 #, fuzzy, gcc-internal-format
 msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
 msgstr "衍生類型『%s』於 %L 無法有序列屬性因為它是繫結©"
 
-#: fortran/symbol.cc:5181 fortran/symbol.cc:5186
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
 #, fuzzy, gcc-internal-format
 msgid "Symbol %qs is used before it is typed at %L"
 msgstr "符號『%s』被使用之前它被型態於 %L"
@@ -84442,24 +84491,24 @@ msgstr "重疊 unequal 初始設定式在中等價於 %L"
 msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
 msgstr "重疊 unequal 初始設定式在中等價於 %L"
 
-#: fortran/trans-array.cc:2338 fortran/trans-expr.cc:9854
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
 #, gcc-internal-format, gfc-internal-format
 msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
 msgstr ""
 
 #. Problems occur when we get something like
 #. integer :: a(lots) = (/(i, i=1, lots)/)
-#: fortran/trans-array.cc:6608
+#: fortran/trans-array.cc:6620
 #, fuzzy, gcc-internal-format
 msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
 msgstr "元件號碼的在中陣列建構子於 %L 需求增加的允許 %d 上限。  參看 -fmax-array-constructor 選項"
 
-#: fortran/trans-array.cc:8852
+#: fortran/trans-array.cc:8876
 #, fuzzy, gcc-internal-format
 msgid "Creating array temporary at %L for argument %qs"
 msgstr "建立陣列暫時的於 %L 用於引數『%s』"
 
-#: fortran/trans-array.cc:12215
+#: fortran/trans-array.cc:12255
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "bad expression type during walk (%d)"
 msgstr "不當的運算式型態在的期間遍歷 (%d)"
@@ -84647,37 +84696,37 @@ msgstr "傳回值『%s』的函式『%s』宣告的於 %L 無法設定"
 msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
 msgstr ""
 
-#: fortran/trans-expr.cc:1132
+#: fortran/trans-expr.cc:1134
 #, gcc-internal-format, gfc-internal-format
 msgid "Cannot compute the length of the char array at %L."
 msgstr ""
 
-#: fortran/trans-expr.cc:1936
+#: fortran/trans-expr.cc:1942
 #, gcc-internal-format, gfc-internal-format
 msgid "Code for reallocating the allocatable variable at %L will be added"
 msgstr ""
 
-#: fortran/trans-expr.cc:2272
+#: fortran/trans-expr.cc:2278
 #, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
 msgstr ""
 
-#: fortran/trans-expr.cc:2281
+#: fortran/trans-expr.cc:2287
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
 msgstr "無限制的多型於 %C 尚未支援"
 
-#: fortran/trans-expr.cc:3980
+#: fortran/trans-expr.cc:3986
 #, gcc-internal-format
 msgid "Unknown intrinsic op"
 msgstr "不明的內建作業"
 
-#: fortran/trans-expr.cc:5499
+#: fortran/trans-expr.cc:5505
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Unknown argument list function at %L"
 msgstr "不明引數清單函式於 %L"
 
-#: fortran/trans-expr.cc:10432
+#: fortran/trans-expr.cc:10437
 #, gcc-internal-format, gfc-internal-format
 msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
 msgstr ""
@@ -84689,17 +84738,17 @@ msgid "Intrinsic function %qs (%d) not recognized"
 msgstr "內部函式 %s(%d) 無法識別"
 
 #: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
-#: fortran/trans-intrinsic.cc:3199
+#: fortran/trans-intrinsic.cc:3201
 #, fuzzy, gcc-internal-format
 msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
 msgstr "『dim』引數的 %s intrinsic 於 %L 並非有效尺寸索引"
 
-#: fortran/trans-intrinsic.cc:12336 fortran/trans-stmt.cc:1104
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "Sorry, the event component of derived type at %L is not yet supported"
 msgstr "Deferred-length 字元成分『%s』於 %L 不是未支援"
 
-#: fortran/trans-intrinsic.cc:12343
+#: fortran/trans-intrinsic.cc:12390
 #, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "The event variable at %L shall not be coindexed"
 msgstr "指標物件於 %C 不應該被 coindexed"
@@ -84844,7 +84893,7 @@ msgstr "Deferred-length 字元成分『%s』於 %L 不是未支援"
 msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
 msgstr "抱歉，只有支援用於整數 kind %d 實作的用於 image-set 於 %L"
 
-#: fortran/trans-stmt.cc:3700
+#: fortran/trans-stmt.cc:3710
 #, fuzzy, gcc-internal-format
 #| msgid "gfc_trans_code(): Bad statement code"
 msgid "gfc_trans_select(): Bad type for case expr."
@@ -85220,6 +85269,11 @@ msgstr "變數 %qD redeclared 做為函式"
 msgid "function %qD redeclared as variable"
 msgstr "函式 %qD redeclared 做為變數"
 
+#: lto/lto-symtab.cc:865
+#, fuzzy, gcc-internal-format
+msgid "previously declared here"
+msgstr "在之前宣告的在此"
+
 #: lto/lto.cc:174
 #, fuzzy, gcc-internal-format
 msgid "%<lto_obj_file_open()%> failed"
@@ -86484,7 +86538,7 @@ msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
 msgstr "%<-fobjc-sjlj-exceptions%> 被忽略用於 %<-fgnu-runtime%>"
 
 #: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
-#: objc/objc-next-runtime-abi-02.cc:3839
+#: objc/objc-next-runtime-abi-02.cc:3840
 #, fuzzy, gcc-internal-format
 msgid "non-objective-c type %qT cannot be caught"
 msgstr "non-objective-c 型態『%T』無法擷取到"
@@ -86494,7 +86548,7 @@ msgstr "non-objective-c 型態『%T』無法擷取到"
 msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
 msgstr "%<-fobjc-sjlj-exceptions%> 是只有支援的異常系統用於 %<-fnext-runtime%> 與 %<-fobjc-abi-version%><2"
 
-#: objc/objc-next-runtime-abi-02.cc:245
+#: objc/objc-next-runtime-abi-02.cc:246
 #, fuzzy, gcc-internal-format
 msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
 msgstr "%<-fobjc-sjlj-exceptions%> 被忽略用於 %<-fnext-runtime%> 時 %<-fobjc-abi-version%>>=2"
@@ -89947,10 +90001,6 @@ msgstr ""
 #~ msgid "argument 1 of __builtin_spe_predicate must be a constant"
 #~ msgstr "__builtin_spe_predicate 的第一個引數必須是常數"
 
-#, fuzzy
-#~ msgid "Builtin function %s requires the -maltivec option"
-#~ msgstr "內建函式 %s 需求 -maltivec 選項"
-
 #, fuzzy
 #~ msgid "internal error: builtin function %s had no type"
 #~ msgstr "內部錯誤：內建函式 %s 沒有任何型態"

commit 99eb84fd363b7980eac16ace5e975da65a1185e8
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Aug 3 00:22:11 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d828c55306f..6262ca6d8d4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,32 @@
+2024-08-02  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	PR tree-optimization/116156
+	* tree-ssa-forwprop.cc (pass_forwprop::execute): Don't add
+	uses if the statement was a debug statement.
+
+2024-08-02  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-07-30  liuhongt  <hongtao.liu@intel.com>
+
+	PR target/116043
+	* config/i386/constraints.md (Bk): Refine to
+	define_special_memory_constraint.
+
+2024-08-02  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* config/i386/prfchiintrin.h
+	(_m_prefetchit0): Add macro for non-optimized option.
+	(_m_prefetchit1): Ditto.
+
+2024-08-02  Yang Yujie  <yangyujie@loongson.cn>
+
+	Backported from master:
+	2024-08-02  Yang Yujie  <yangyujie@loongson.cn>
+
+	* config/loongarch/genopts/gen-evolution.awk: Do not use
+	"length()" to compute the size of an array.
+
 2024-08-01  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index ba6415cbd75..613753ee8b5 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240802
+20240803
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 4d37b09efd6..e819f9e63e8 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,63 @@
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-29  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/88313
+	* parser.cc (cp_parser_lambda_declarator_opt): Pass
+	lambda_p=true to cp_parser_parameter_declaration_clause.
+	(cp_parser_direct_declarator): Pass lambda_p=false to
+	to cp_parser_parameter_declaration_clause.
+	(cp_parser_parameter_declaration_clause): Add bool lambda_p
+	parameter.  Consider lambda_p instead of current_class_type
+	when setting parser->auto_is_implicit_function_template_parm_p.
+	Don't consider processing_template_parmlist.
+	(cp_parser_requirement_parameter_list): Pass lambda_p=false
+	to cp_parser_parameter_declaration_clause.
+
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-25  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/115897
+	* tree.cc (strip_typedefs): Move up the typedef recursion case.
+	Never strip a dependent alias template-id that has dependent
+	attributes.
+
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-23  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/115656
+	* constraint.cc (weakly_subsumes): Pass in_decl=tmpl to
+	get_normalized_constraints_from_info.  Rename to ...
+	(ttp_subsumes): ... this.
+	* cp-tree.h (weakly_subsumes): Rename to ...
+	(ttp_subsumes): ... this.
+	* pt.cc (is_compatible_template_arg): Adjust after renaming.
+
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-23  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/115296
+	* pt.cc (alias_ctad_tweaks): Use complain=tf_none instead of
+	tf_warning_or_error.
+
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-18  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/112288
+	* pt.cc (tsubst_friend_function): When adjusting existing
+	specializations after defining a previously declared template
+	friend, consider the most general template and correct
+	DECL_TI_ARGS adjustment.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 4ea5f663618..87c7b71a967 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,9 @@
+2024-08-02  Joseph Myers  <josmyers@redhat.com>
+
+	* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
+	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
+	zh_TW.po: Update.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 794d365f469..e83dbd1caf0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,63 @@
+2024-08-02  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	PR tree-optimization/116156
+	* c-c++-common/torture/pr116156-1.c: New test.
+
+2024-08-02  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-07-30  liuhongt  <hongtao.liu@intel.com>
+
+	* gcc.target/i386/pr116043.c: New test.
+
+2024-08-02  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* gcc.target/i386/prefetchi-1b.c: New test.
+
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-29  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/88313
+	* g++.dg/cpp2a/lambda-targ6.C: New test.
+
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-25  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/115897
+	* g++.dg/cpp0x/alias-decl-78.C: New test.
+	* g++.dg/cpp0x/alias-decl-79.C: New test.
+	* g++.dg/cpp0x/alias-decl-pr92206-1a.C: New test.
+
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-23  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/115656
+	* g++.dg/cpp2a/concepts-ttp7.C: New test.
+
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-23  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/115296
+	* g++.dg/cpp2a/class-deduction-alias23.C: New test.
+
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-18  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/112288
+	* g++.dg/template/friend80.C: New test.
+	* g++.dg/template/friend81.C: New test.
+	* g++.dg/template/friend81a.C: New test.
+
 2024-08-01  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 5687e8fc11a..e09d38cc31c 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,18 @@
+2024-08-02  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-07-25  Patrick Palka  <ppalka@redhat.com>
+
+	PR libstdc++/116038
+	* include/std/functional (_Bind_front::operator()): Use __like_t
+	instead of std::forward when forwarding __self.
+	(_Bind_back::operator()): Likewise.
+	* include/std/ranges (_Partial::operator()): Likewise.
+	(_Pipe::operator()): Likewise.
+	* testsuite/20_util/function_objects/bind_back/116038.cc: New test.
+	* testsuite/20_util/function_objects/bind_front/116038.cc: New test.
+	* testsuite/std/ranges/adaptors/116038.cc: New test.
+
 2024-08-01  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit c3866651a2a4623ebca544391051d3f69f141110
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Jun 20 13:28:08 2024 +0100

    libstdc++: Fix __cpp_lib_chrono for old std::string ABI
    
    The <chrono> header is incomplete for the old std::string ABI, because
    std::chrono::tzdb is only defined for the new ABI. The feature test
    macro advertising full C++20 support should not be defined for the old
    ABI.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/version.def (chrono): Add cxx11abi = yes.
            * include/bits/version.h: Regenerate.
            * testsuite/std/time/syn_c++20.cc: Adjust expected value for
            the feature test macro.
    
    (cherry picked from commit f906b107634bfac29676e7fcf364d0ca7ceed666)

diff --git a/libstdc++-v3/include/bits/version.def b/libstdc++-v3/include/bits/version.def
index e5f4c4c13c0..72e38d4d712 100644
--- a/libstdc++-v3/include/bits/version.def
+++ b/libstdc++-v3/include/bits/version.def
@@ -574,6 +574,7 @@ ftms = {
     v = 201907;
     cxxmin = 20;
     hosted = yes;
+    cxx11abi = yes; // std::chrono::tzdb requires cxx11 std::string
   };
   values = {
     v = 201611;
diff --git a/libstdc++-v3/include/bits/version.h b/libstdc++-v3/include/bits/version.h
index ad418d46664..f6b265d8ffb 100644
--- a/libstdc++-v3/include/bits/version.h
+++ b/libstdc++-v3/include/bits/version.h
@@ -639,7 +639,7 @@
 #undef __glibcxx_want_boyer_moore_searcher
 
 #if !defined(__cpp_lib_chrono)
-# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
+# if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
 #  define __glibcxx_chrono 201907L
 #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
 #   define __cpp_lib_chrono 201907L
diff --git a/libstdc++-v3/testsuite/std/time/syn_c++20.cc b/libstdc++-v3/testsuite/std/time/syn_c++20.cc
index f0b86199e9d..4a527262e9d 100644
--- a/libstdc++-v3/testsuite/std/time/syn_c++20.cc
+++ b/libstdc++-v3/testsuite/std/time/syn_c++20.cc
@@ -20,9 +20,16 @@
 
 #include <chrono>
 
+// std::chrono::tzdb is not defined for the old std::string ABI.
+#if _GLIBCXX_USE_CXX_ABI
+# define EXPECTED_VALUE 201907L
+#else
+# define EXPECTED_VALUE 201611L
+#endif
+
 #ifndef __cpp_lib_chrono
 # error "Feature test macro for chrono is missing in <chrono>"
-#elif __cpp_lib_chrono < 201907L
+#elif __cpp_lib_chrono < EXPECTED_VALUE
 # error "Feature test macro for chrono has wrong value in <chrono>"
 #endif
 
@@ -94,7 +101,7 @@ namespace __gnu_test
   using std::chrono::make12;
   using std::chrono::make24;
 
-#if _GLIBCXX_USE_CXX11_ABI
+#if __cpp_lib_chrono >= 201803L
   using std::chrono::tzdb;
   using std::chrono::tzdb_list;
   using std::chrono::get_tzdb;

commit 80a64e6c577ffe58e32ec9a1dd39ffb5fb467e4a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Aug 4 00:20:46 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 613753ee8b5..444c7cbae43 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240803
+20240804
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index e09d38cc31c..f05ec03c85e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,13 @@
+2024-08-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/version.def (chrono): Add cxx11abi = yes.
+	* include/bits/version.h: Regenerate.
+	* testsuite/std/time/syn_c++20.cc: Adjust expected value for
+	the feature test macro.
+
 2024-08-02  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:

commit 5103ee74691b14fc26b14dc057e98cb3d30fac33
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Aug 5 00:20:59 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 444c7cbae43..25c46364131 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240804
+20240805

commit eccf707e5ceb7e405ffe4edfbcae2f769b8386cf
Author: Christoph Müllner <christoph.muellner@vrull.eu>
Date:   Wed Jul 24 14:10:01 2024 +0200

    RISC-V: xtheadmemidx: Fix mode test for pre/post-modify addressing
    
    auto_inc_dec (-O3) performs optimizations like the following
    if RVV and XTheadMemIdx is enabled.
    
    (insn 23 20 27 3 (set (mem:V4QI (reg:DI 136 [ ivtmp.13 ]) [0 MEM <vector(4) char> [(char *)_39]+0 S4 A32])
            (reg:V4QI 168)) "gcc/testsuite/gcc.target/riscv/pr116033.c":12:27 3183 {*movv4qi}
         (nil))
    (insn 40 39 41 3 (set (reg:DI 136 [ ivtmp.13 ])
            (plus:DI (reg:DI 136 [ ivtmp.13 ])
                (const_int 20 [0x14]))) 5 {adddi3}
         (nil))
    ====>
    (insn 23 20 27 3 (set (mem:V4QI (post_modify:DI (reg:DI 136 [ ivtmp.13 ])
                    (plus:DI (reg:DI 136 [ ivtmp.13 ])
                        (const_int 20 [0x14]))) [0 MEM <vector(4) char> [(char *)_39]+0 S4 A32])
            (reg:V4QI 168)) "gcc/testsuite/gcc.target/riscv/pr116033.c":12:27 3183 {*movv4qi}
         (expr_list:REG_INC (reg:DI 136 [ ivtmp.13 ])
            (nil)))
    
    The reason why the pass believes that this is legal is,
    that the mode test in th_memidx_classify_address_modify()
    requires INTEGRAL_MODE_P (mode), which includes vector modes.
    
    Let's restrict the mode test such, that only MODE_INT is allowed.
    
            PR target/116033
    
    gcc/ChangeLog:
    
            * config/riscv/thead.cc (th_memidx_classify_address_modify):
            Fix mode test.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/riscv/pr116033.c: New test.
    
    (cherry picked from commit a86c0cb9379e7b86625908a0250cf698276e9e02)
    Reported-by: Patrick O'Neill <patrick@rivosinc.com>
    Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>

diff --git a/gcc/config/riscv/thead.cc b/gcc/config/riscv/thead.cc
index 951b6088859..6f5edeb7e0a 100644
--- a/gcc/config/riscv/thead.cc
+++ b/gcc/config/riscv/thead.cc
@@ -453,10 +453,8 @@ th_memidx_classify_address_modify (struct riscv_address_info *info, rtx x,
   if (!TARGET_XTHEADMEMIDX)
     return false;
 
-  if (!TARGET_64BIT && mode == DImode)
-    return false;
-
-  if (!(INTEGRAL_MODE_P (mode) && GET_MODE_SIZE (mode).to_constant () <= 8))
+  if (GET_MODE_CLASS (mode) != MODE_INT
+      || GET_MODE_SIZE (mode).to_constant () > UNITS_PER_WORD)
     return false;
 
   if (GET_CODE (x) != POST_MODIFY
diff --git a/gcc/testsuite/gcc.target/riscv/pr116033.c b/gcc/testsuite/gcc.target/riscv/pr116033.c
new file mode 100644
index 00000000000..881922da026
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr116033.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" "-Os" "-Oz" } } */
+/* { dg-options "-march=rv64gv_xtheadmemidx" { target { rv64 } } } */
+/* { dg-options "-march=rv32gv_xtheadmemidx" { target { rv32 } } } */
+
+char arr_3[20][20];
+void init()
+{
+  for (int i_0 = 0; i_0 < 20; ++i_0)
+    for (int i_1 = 0; i_0 < 20; ++i_0)
+      for (int i_1 = 0; i_1 < 20; ++i_0)
+        for (int i_1 = 0; i_1 < 20; ++i_1)
+          arr_3[i_0][i_1] = i_1;
+}
+
+/* { dg-final { scan-assembler-not "vse8.v\t\[a-x0-9\]+,\\(\[a-x0-9\]+\\),\[0-9\]+,\[0-9\]+" } } */

commit daced7625e606228e64284f2a1d0b1dec1a83965
Author: Joseph Myers <josmyers@redhat.com>
Date:   Mon Aug 5 16:34:13 2024 +0000

    Update gcc fr.po
    
            * fr.po: Update.

diff --git a/gcc/po/fr.po b/gcc/po/fr.po
index c14d5719b71..149d4c098cc 100644
--- a/gcc/po/fr.po
+++ b/gcc/po/fr.po
@@ -97,10 +97,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gcc 14.1.0\n"
+"Project-Id-Version: gcc 14.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
 "POT-Creation-Date: 2024-07-25 16:23+0000\n"
-"PO-Revision-Date: 2024-05-09 14:43+0200\n"
+"PO-Revision-Date: 2024-08-03 07:39+0200\n"
 "Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
@@ -37329,16 +37329,14 @@ msgid "comparison between two arrays"
 msgstr "comparaison entre deux tableaux"
 
 #: c-family/c-warn.cc:3832
-#, fuzzy, gcc-internal-format
-#| msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+#, gcc-internal-format
 msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
-msgstr "utiliser le %<+%> unaire qui dégrade les opérandes vers des pointeurs ou %<&%D[0] %s &%D[0]%> pour comparer les adresses"
+msgstr "utiliser le %<+%> unaire qui dégrade les opérandes vers des pointeurs ou %<&%s%E%s[0] %s &%s%E%s[0]%> pour comparer les adresses"
 
 #: c-family/c-warn.cc:3839
-#, fuzzy, gcc-internal-format
-#| msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+#, gcc-internal-format
 msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
-msgstr "utilisez %<&%D[0] %s &%D[0]%> pour comparer les adresses"
+msgstr "utilisez %<&%s%E%s[0] %s &%s%E%s[0]%> pour comparer les adresses"
 
 #: c-family/c-warn.cc:3901
 #, gcc-internal-format
@@ -43357,28 +43355,24 @@ msgid "capture by copy of RVV type %qT"
 msgstr "capture par copie du type RVV %qT"
 
 #: config/riscv/riscv-vector-builtins.cc:4645
-#, fuzzy, gcc-internal-format
-#| msgid "built-in function %qE requires the %qs ISA extension"
+#, gcc-internal-format
 msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
-msgstr "la fonction interne %qE requiert l'extension ISA %qs"
+msgstr "la fonction interne %qE requiert l'extension ISA zvfhmin ou zvfh"
 
 #: config/riscv/riscv-vector-builtins.cc:4655
-#, fuzzy, gcc-internal-format
-#| msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
+#, gcc-internal-format
 msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
-msgstr "%s %qT requiert l'extension ISA zve32f, zve64f, zve64d ou v"
+msgstr "la fonction interne %qE requiert l'extension ISA zve32f, zve64f, zve64d ou v"
 
 #: config/riscv/riscv-vector-builtins.cc:4665
-#, fuzzy, gcc-internal-format
-#| msgid "built-in function %qE requires the %qs ISA extension"
+#, gcc-internal-format
 msgid "built-in function %qE requires the zve64d or v ISA extension"
-msgstr "la fonction interne %qE requiert l'extension ISA %qs"
+msgstr "la fonction interne %qE requiert l'extension ISA zve64d ou v"
 
 #: config/riscv/riscv-vector-builtins.cc:4674
-#, fuzzy, gcc-internal-format
-#| msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
+#, gcc-internal-format
 msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
-msgstr "%s %qT requiert l'extension ISA zve64x, zve64f, zve64d ou v"
+msgstr "la fonction interne %qE requiert l'extension ISA zve64x, zve64f, zve64d ou v"
 
 #: config/riscv/riscv-vector-builtins.cc:4694
 #, gcc-internal-format
@@ -44004,13 +43998,12 @@ msgstr "option inconnue pour %<%s=%s%>"
 #: config/rs6000/rs6000.cc:4833
 #, gcc-internal-format
 msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
-msgstr ""
+msgstr "%<-mrop-protect%> requiert %<-mcpu=power8%> ou ultérieur"
 
 #: config/rs6000/rs6000.cc:4837
-#, fuzzy, gcc-internal-format
-#| msgid "%qs requires the ELFv2 ABI"
+#, gcc-internal-format
 msgid "%<-mrop-protect%> requires the ELFv2 ABI"
-msgstr "%qs exige l'ABI ELFv2"
+msgstr "%<-mrop-protect%> exige l'ABI ELFv2"
 
 #: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
@@ -59409,54 +59402,46 @@ msgid "declaration %qD conflicts with builtin"
 msgstr "la déclaration %qD est en conflit avec la fonction interne"
 
 #: cp/module.cc:19122
-#, fuzzy, gcc-internal-format
-#| msgid "declaration %qD conflicts with import"
+#, gcc-internal-format
 msgid "redeclaring %qD in module %qs conflicts with import"
-msgstr "la déclaration %qD est en conflit avec l'import"
+msgstr "la redéclaration %qD dans le module %qs est en conflit avec l'import"
 
 #: cp/module.cc:19125
-#, fuzzy, gcc-internal-format
-#| msgid "declaration %qD conflicts with import"
+#, gcc-internal-format
 msgid "redeclaring %qD in global module conflicts with import"
-msgstr "la déclaration %qD est en conflit avec l'import"
+msgstr "la redéclaration %qD dans le module global est en conflit avec l'import"
 
 #: cp/module.cc:19130
-#, fuzzy, gcc-internal-format
-#| msgid "import declared %q#D here"
+#, gcc-internal-format
 msgid "import declared attached to module %qs"
-msgstr "l'import a déclaré %q#D ici"
+msgstr "l'import est déclaré comme étant attaché au module %qs"
 
 #: cp/module.cc:19134
-#, fuzzy, gcc-internal-format
-#| msgid "import-declaration must be at global scope"
+#, gcc-internal-format
 msgid "import declared in global module"
-msgstr "la déclaration d'import doit être dans la portée globale"
+msgstr "l'import est déclaré dans le module global"
 
 #: cp/module.cc:19140
-#, fuzzy, gcc-internal-format
-#| msgid "conflicting declaration of template %q#D"
+#, gcc-internal-format
 msgid "conflicting declaration of %qD in module %qs"
-msgstr "déclaration conflictuelle du patron %q#D"
+msgstr "déclaration conflictuelle de %qD dans le module %qs"
 
 #: cp/module.cc:19143
-#, fuzzy, gcc-internal-format
-#| msgid "conflicting declaration of %q#D with %qL linkage"
+#, gcc-internal-format
 msgid "conflicting declaration of %qD in global module"
-msgstr "déclaration conflictuelle de %q#D avec la classe de liaison %qL"
+msgstr "déclaration conflictuelle de %qD dans le module global"
 
 # la phrase fait référence à une variable ou une fonction (cf les deux messages ci-dessus) d'où le féminin
 #: cp/module.cc:19148
-#, fuzzy, gcc-internal-format
-#| msgid "previously declared as %s"
+#, gcc-internal-format
 msgid "previously declared in module %qs"
-msgstr "précédemment déclarée comme %s"
+msgstr "précédemment déclarée dans le module %qs"
 
 # la phrase fait référence à une variable ou une fonction (cf les deux messages ci-dessus) d'où le féminin
 #: cp/module.cc:19152
-#, fuzzy, gcc-internal-format
-#| msgid "previously declared as %s"
+#, gcc-internal-format
 msgid "previously declared in global module"
-msgstr "précédemment déclarée comme %s"
+msgstr "précédemment déclaré dans le module global"
 
 # le %qs est un nom de région non traduit tel que « parallel », « task », « teams ».
 #: cp/module.cc:19404
@@ -73289,7 +73274,7 @@ msgstr "check_charlen_present(): longueur non définie"
 #: fortran/iresolve.cc:3029
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
-msgstr ""
+msgstr "TODO: MOLD polymorphique illimité dans l'intrinsèque TRANSFER à %L"
 
 #: fortran/match.cc:118
 #, gcc-internal-format
@@ -78642,10 +78627,9 @@ msgid "Using variable %qs at %L is deprecated"
 msgstr "L'utilisation de la variable %qs à %L est obsolète"
 
 #: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Bad array reference at %L"
+#, gcc-internal-format, gfc-internal-format
 msgid "Invalid array reference at %L"
-msgstr "Mauvaise référence à un tableau à %L"
+msgstr "Référence invalide à un tableau à %L"
 
 #: fortran/resolve.cc:6433
 #, gcc-internal-format

commit 9906a9863d65386ee4045333eb26a2569783abb5
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Thu Jul 18 08:51:35 2024 +0100

    Fortran: Suppress bogus used uninitialized warnings [PR108889].
    
    2024-07-18  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/108889
            * gfortran.h: Add bit field 'allocated_in_scope' to gfc_symbol.
            * trans-array.cc (gfc_array_allocate): Set 'allocated_in_scope'
            after allocation if not a component reference.
            (gfc_alloc_allocatable_for_assignment): If 'allocated_in_scope'
            not set, not a component ref and not allocated, set the array
            bounds and offset to give zero length in all dimensions. Then
            set allocated_in_scope.
    
    gcc/testsuite/
            PR fortran/108889
            * gfortran.dg/pr108889.f90: New test.
    
    (cherry picked from commit c3aa339ea50f050caf7ed2e497f5499ec2d7b9cc)

diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
index de3d9e25911..fbdf00590bc 100644
--- a/gcc/fortran/gfortran.h
+++ b/gcc/fortran/gfortran.h
@@ -1946,6 +1946,10 @@ typedef struct gfc_symbol
   /* Set if this should be passed by value, but is not a VALUE argument
      according to the Fortran standard.  */
   unsigned pass_as_value:1;
+  /* Set if an allocatable array variable has been allocated in the current
+     scope. Used in the suppression of uninitialized warnings in reallocation
+     on assignment.  */
+  unsigned allocated_in_scope:1;
 
   /* Reference counter, used for memory management.
 
diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index 761f0a42507..d5d9c730826 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -6561,6 +6561,8 @@ gfc_array_allocate (gfc_se * se, gfc_expr * expr, tree status, tree errmsg,
   else
       gfc_add_expr_to_block (&se->pre, set_descriptor);
 
+  expr->symtree->n.sym->allocated_in_scope = 1;
+
   return true;
 }
 
@@ -10932,6 +10934,8 @@ gfc_alloc_allocatable_for_assignment (gfc_loopinfo *loop,
   stmtblock_t realloc_block;
   stmtblock_t alloc_block;
   stmtblock_t fblock;
+  stmtblock_t loop_pre_block;
+  gfc_ref *ref;
   gfc_ss *rss;
   gfc_ss *lss;
   gfc_array_info *linfo;
@@ -11132,6 +11136,45 @@ gfc_alloc_allocatable_for_assignment (gfc_loopinfo *loop,
 			 array1, build_int_cst (TREE_TYPE (array1), 0));
   cond_null= gfc_evaluate_now (cond_null, &fblock);
 
+  /* If the data is null, set the descriptor bounds and offset. This suppresses
+     the maybe used uninitialized warning and forces the use of malloc because
+     the size is zero in all dimensions. Note that this block is only executed
+     if the lhs is unallocated and is only applied once in any namespace.
+     Component references are not subject to the warnings.  */
+  for (ref = expr1->ref; ref; ref = ref->next)
+    if (ref->type == REF_COMPONENT)
+      break;
+
+  if (!expr1->symtree->n.sym->allocated_in_scope && !ref)
+    {
+      gfc_start_block (&loop_pre_block);
+      for (n = 0; n < expr1->rank; n++)
+	{
+	  gfc_conv_descriptor_lbound_set (&loop_pre_block, desc,
+					  gfc_rank_cst[n],
+					  gfc_index_one_node);
+	  gfc_conv_descriptor_ubound_set (&loop_pre_block, desc,
+					  gfc_rank_cst[n],
+					  gfc_index_zero_node);
+	  gfc_conv_descriptor_stride_set (&loop_pre_block, desc,
+					  gfc_rank_cst[n],
+					  gfc_index_zero_node);
+	}
+
+      tmp = gfc_conv_descriptor_offset (desc);
+      gfc_add_modify (&loop_pre_block, tmp, gfc_index_zero_node);
+
+      tmp = fold_build2_loc (input_location, EQ_EXPR,
+			     logical_type_node, array1,
+			     build_int_cst (TREE_TYPE (array1), 0));
+      tmp = build3_v (COND_EXPR, tmp,
+		      gfc_finish_block (&loop_pre_block),
+		      build_empty_stmt (input_location));
+      gfc_prepend_expr_to_block (&loop->pre, tmp);
+
+      expr1->symtree->n.sym->allocated_in_scope = 1;
+    }
+
   tmp = build3_v (COND_EXPR, cond_null,
 		  build1_v (GOTO_EXPR, jump_label1),
 		  build_empty_stmt (input_location));
diff --git a/gcc/testsuite/gfortran.dg/pr108889.f90 b/gcc/testsuite/gfortran.dg/pr108889.f90
new file mode 100644
index 00000000000..7fd4e3882a4
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr108889.f90
@@ -0,0 +1,43 @@
+! { dg-do compile }
+! { dg-options "-Wall -fdump-tree-original" }
+!
+! Contributed by Tobias Burnus  <burnus@gcc.gnu.org>
+!
+program main
+  implicit none
+
+  type :: struct
+    real, allocatable :: var(:)
+  end type struct
+
+  type(struct) :: single
+  real, allocatable :: ref1(:), ref2(:), ref3(:), ref4(:)
+
+  ref2 = [1,2,3,4,5]    ! Warnings here
+
+  single%var = ref2     ! No warnings for components
+  ref1 = single%var     ! Warnings here
+  ref1 = [1,2,3,4,5]    ! Should not add to tree dump count
+
+  allocate (ref3(5))
+  ref3 = single%var     ! No warnings following allocation
+
+  call set_ref4
+
+  call test (ref1)
+  call test (ref2)
+  call test (ref3)
+  call test (ref4)
+
+contains
+  subroutine test (arg)
+    real, allocatable :: arg(:)
+    if (size(arg) /= size(single%var)) stop 1
+    if (lbound(arg, 1) /= 1) stop 2
+    if (any (arg /= single%var)) stop 3
+  end
+  subroutine set_ref4
+    ref4 = single%var   ! Warnings in contained scope
+  end
+end
+! { df-final { scan-tree-dump-times "ubound = 0" 3 "original" } }
\ No newline at end of file

commit 2405d29086d5045821b1a7260b589fbae1e6f05a
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Fri Jul 19 16:58:33 2024 +0100

    libgomp: Remove bogus warnings from privatized-ref-2.f90.
    
    2024-07-19  Paul Thomas  <pault@gcc.gnu.org>
    
    libgomp/ChangeLog
    
            * testsuite/libgomp.oacc-fortran/privatized-ref-2.f90: Cut
            dg-note about 'a' and remove bogus warnings about its array
            descriptor components being used uninitialized.
    
    (cherry picked from commit 8d6994f33a98a168151a57a3d21395b19196cd9d)

diff --git a/libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-2.f90 b/libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-2.f90
index 498ef70b63a..8cf79a10e8d 100644
--- a/libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-2.f90
+++ b/libgomp/testsuite/libgomp.oacc-fortran/privatized-ref-2.f90
@@ -29,16 +29,10 @@ program main
   implicit none (type, external)
   integer :: j
   integer, allocatable :: A(:)
-  ! { dg-note {'a' declared here} {} { target *-*-* } .-1 }
   character(len=:), allocatable :: my_str
   character(len=15), allocatable :: my_str15
 
   A = [(3*j, j=1, 10)]
-  ! { dg-bogus {'a\.offset' is used uninitialized} {PR77504 etc.} { xfail *-*-* } .-1 }
-  ! { dg-bogus {'a\.dim\[0\]\.lbound' is used uninitialized} {PR77504 etc.} { xfail *-*-* } .-2 }
-  ! { dg-bogus {'a\.dim\[0\]\.ubound' is used uninitialized} {PR77504 etc.} { xfail *-*-* } .-3 }
-  ! { dg-bogus {'a\.dim\[0\]\.lbound' may be used uninitialized} {PR77504 etc.} { xfail { ! __OPTIMIZE__ } } .-4 }
-  ! { dg-bogus {'a\.dim\[0\]\.ubound' may be used uninitialized} {PR77504 etc.} { xfail { ! __OPTIMIZE__ } } .-5 }
   call foo (A, size(A))
   call bar (A)
   my_str = "1234567890"

commit de738988ff62b76e433f2fce570fcd8ab4b16c07
Author: Ian Lance Taylor <iant@golang.org>
Date:   Mon Aug 5 16:07:12 2024 -0700

    compiler: panic arguments are empty interface type
    
    After CL 536643 passing NULL as the expected type permitted an untyped
    constant expression to remain untyped. Change to passing the empty
    interface type.
    
    The panic and print/println functions are the only builtin functions
    that turn an untyped constant expression into a regular function call,
    and we already handled print/println specially.
    
    The test case is https://go.dev/cl/603096.
    
    Fixes golang/go#68734
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/603215

diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index 238d5a56ca2..2b0e40fc6f8 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -11137,6 +11137,12 @@ Builtin_call_expression::do_determine_type(Gogo* gogo,
       is_print = false;
       break;
 
+    case BUILTIN_PANIC:
+      arg_type =
+	Type::make_empty_interface_type(Linemap::predeclared_location());
+      is_print = false;
+      break;
+
     case BUILTIN_PRINT:
     case BUILTIN_PRINTLN:
       // Do not force a large integer constant to "int".

commit c5ef3b94e448e447d1e227ab1a22467f06071a55
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Aug 6 00:22:27 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6262ca6d8d4..d043a7896f9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-05  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	Backported from master:
+	2024-07-25  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	PR target/116033
+	* config/riscv/thead.cc (th_memidx_classify_address_modify):
+	Fix mode test.
+
 2024-08-02  Andrew Pinski  <quic_apinski@quicinc.com>
 
 	PR tree-optimization/116156
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 25c46364131..f2c439e6ce5 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240805
+20240806
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 1f0887f1a99..04d5d211b70 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,17 @@
+2024-08-05  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-07-18  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/108889
+	* gfortran.h: Add bit field 'allocated_in_scope' to gfc_symbol.
+	* trans-array.cc (gfc_array_allocate): Set 'allocated_in_scope'
+	after allocation if not a component reference.
+	(gfc_alloc_allocatable_for_assignment): If 'allocated_in_scope'
+	not set, not a component ref and not allocated, set the array
+	bounds and offset to give zero length in all dimensions. Then
+	set allocated_in_scope.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 87c7b71a967..1be188ad53c 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2024-08-05  Joseph Myers  <josmyers@redhat.com>
+
+	* fr.po: Update.
+
 2024-08-02  Joseph Myers  <josmyers@redhat.com>
 
 	* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e83dbd1caf0..0c272ccfa71 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,19 @@
+2024-08-05  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-07-18  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/108889
+	* gfortran.dg/pr108889.f90: New test.
+
+2024-08-05  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	Backported from master:
+	2024-07-25  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	PR target/116033
+	* gcc.target/riscv/pr116033.c: New test.
+
 2024-08-02  Andrew Pinski  <quic_apinski@quicinc.com>
 
 	PR tree-optimization/116156
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 43f5ce0f674..1c4e2385c0f 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-05  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-07-19  Paul Thomas  <pault@gcc.gnu.org>
+
+	* testsuite/libgomp.oacc-fortran/privatized-ref-2.f90: Cut
+	dg-note about 'a' and remove bogus warnings about its array
+	descriptor components being used uninitialized.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit ba45573c8072f06f67af22a2ca60da5f5c12beae
Author: Andrew Pinski <quic_apinski@quicinc.com>
Date:   Sat Aug 3 09:30:57 2024 -0700

    sh: Don't call make_insn_raw in sh_recog_treg_set_expr [PR116189]
    
    This was an interesting compare debug failure to debug. The first symptom
    was in gcse which would produce different order of creating psedu-registers. This
    was caused by a different order of a hashtable walk, due to the hash table having different
    number of entries. Which in turn was due to the number of max insn being different between
    the 2 runs. The place max insn uid comes from was in sh_recog_treg_set_expr which is called
    via rtx_costs and fwprop would cause rtx_costs in some cases for debug insn related stuff.
    
    Build and tested for sh4-linux-gnu.
    
            PR target/116189
    
    gcc/ChangeLog:
    
            * config/sh/sh.cc (sh_recog_treg_set_expr): Don't call make_insn_raw,
            make the insn with a fake uid.
    
    gcc/testsuite/ChangeLog:
    
            * c-c++-common/torture/pr116189-1.c: New test.
    
    Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
    (cherry picked from commit 0355c943b9e954e8f59068971d934f1b91ecb729)

diff --git a/gcc/config/sh/sh.cc b/gcc/config/sh/sh.cc
index ef3c2e6791d..d6a6e5bd88d 100644
--- a/gcc/config/sh/sh.cc
+++ b/gcc/config/sh/sh.cc
@@ -12279,7 +12279,17 @@ sh_recog_treg_set_expr (rtx op, machine_mode mode)
      have to capture its current state and restore it afterwards.  */
   recog_data_d prev_recog_data = recog_data;
 
-  rtx_insn* i = make_insn_raw (gen_rtx_SET (get_t_reg_rtx (), op));
+  /* Note we can't use insn_raw here since that increases the uid
+     and could cause debug compare differences; this insn never leaves
+     this function so create a dummy one. */
+  rtx_insn* i = as_a <rtx_insn *> (rtx_alloc (INSN));
+
+  INSN_UID (i) = 1;
+  PATTERN (i) = gen_rtx_SET (get_t_reg_rtx (), op);
+  INSN_CODE (i) = -1;
+  REG_NOTES (i) = NULL;
+  INSN_LOCATION (i) = curr_insn_location ();
+  BLOCK_FOR_INSN (i) = NULL;
   SET_PREV_INSN (i) = NULL;
   SET_NEXT_INSN (i) = NULL;
 
diff --git a/gcc/testsuite/c-c++-common/torture/pr116189-1.c b/gcc/testsuite/c-c++-common/torture/pr116189-1.c
new file mode 100644
index 00000000000..055c563f43e
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/torture/pr116189-1.c
@@ -0,0 +1,30 @@
+/* { dg-additional-options "-fcompare-debug" } */
+
+/* PR target/116189 */
+
+/* In the sh backend, we used to create insn in the path of rtx_costs.
+   This means sometimes the max uid for insns would be different between
+   debugging and non debugging which then would cause gcse's hashtable
+   to have different number of slots which would cause a different walk
+   for that hash table.  */
+
+extern void ff(void);
+extern short nn[8][4];
+typedef unsigned short move_table[4];
+extern signed long long ira_overall_cost;
+extern signed long long ira_load_cost;
+extern move_table *x_ira_register_move_cost[1];
+struct move { struct move *next; };
+unsigned short t;
+void emit_move_list(struct move * list, int freq, unsigned char mode, int regno) {
+  int cost;
+  for (; list != 0; list = list->next)
+  {
+    ff();
+    unsigned short aclass = t;
+    cost = (nn)[mode][aclass] ;
+    ira_load_cost = cost;
+    cost = x_ira_register_move_cost[mode][aclass][aclass] * freq ;
+    ira_overall_cost = cost;
+  }
+}

commit cad2693096cd2395409aada5c26b56e3aeb6e849
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Aug 1 20:23:15 2024 +0200

    fortran: Fix up pasto in gfc_get_array_descr_info
    
    A static analyzer found a pasto in gfc_get_array_descr_info.
    The code does
          t = base_decl;
          if (!integer_zerop (dtype_off))
            t = fold_build_pointer_plus (t, dtype_off);
          dtype = TYPE_MAIN_VARIANT (get_dtype_type_node ());
          field = gfc_advance_chain (TYPE_FIELDS (dtype), GFC_DTYPE_RANK);
          rank_off = byte_position (field);
          if (!integer_zerop (dtype_off))
            t = fold_build_pointer_plus (t, rank_off);
    i.e. uses the same !integer_zerop check between both, while it should
    be checking rank_off in the latter case.
    This actually doesn't change anything on the generated code, because
    both the dtype_off and rank_off aren't zero,
    typedef struct dtype_type
    {
      size_t elem_len;
      int version;
      signed char rank;
      signed char type;
      signed short attribute;
    }
    dtype_type;
    struct {
      type *base_addr;
      size_t offset;
      dtype_type dtype;
      index_type span;
      descriptor_dimension dim[];
    };
    dtype_off is 16 on 64-bit arches and 8 on 32-bit ones and rank_off is
    12 on 64-bit arches and 8 on 32-bit arches, so this patch is just to
    pacify those static analyzers or be prepared if the ABI changes in the
    future.  Because in the current ABI both of those are actually non-zero,
    doing
    if (!integer_zerop (something)) t = fold_build_pointer_plus (t, something);
    actually isn't an optimization, it will consume more compile time.  If
    the ABI changes and we forget to readd it, nothing bad happens,
    fold_build_pointer_plus handles 0 addends fine, just takes some compile
    time to handle that.
    I've kept this if (!integer_zerop (data_off)) guard earlier because
    data_off is 0 in the current ABI, so it is an optimization there.
    
    2024-08-01  Jakub Jelinek  <jakub@redhat.com>
    
            * trans-types.cc (gfc_get_array_descr_info): Don't test if
            !integer_zerop (dtype_off), use fold_build_pointer_plus
            unconditionally.
    
    (cherry picked from commit 90fe402a89910d4fbe0efc15cf05cf6c0306586a)

diff --git a/gcc/fortran/trans-types.cc b/gcc/fortran/trans-types.cc
index 8466c595e06..61523c7d162 100644
--- a/gcc/fortran/trans-types.cc
+++ b/gcc/fortran/trans-types.cc
@@ -3527,14 +3527,11 @@ gfc_get_array_descr_info (const_tree type, struct array_descr_info *info)
     {
       rank = 1;
       info->ndimensions = 1;
-      t = base_decl;
-      if (!integer_zerop (dtype_off))
-	t = fold_build_pointer_plus (t, dtype_off);
+      t = fold_build_pointer_plus (base_decl, dtype_off);
       dtype = TYPE_MAIN_VARIANT (get_dtype_type_node ());
       field = gfc_advance_chain (TYPE_FIELDS (dtype), GFC_DTYPE_RANK);
       rank_off = byte_position (field);
-      if (!integer_zerop (dtype_off))
-	t = fold_build_pointer_plus (t, rank_off);
+      t = fold_build_pointer_plus (t, rank_off);
 
       t = build1 (NOP_EXPR, build_pointer_type (TREE_TYPE (field)), t);
       t = build1 (INDIRECT_REF, TREE_TYPE (field), t);

commit 3fe5720430a9ba61ed7562aac4d758cc77d49a28
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Aug 3 20:37:54 2024 +0200

    libquadmath: Fix up libquadmath/math/sqrtq.c compilation in some powerpc* configurations [PR116007]
    
    My PR114623 change started using soft-fp.h and quad.h for the sqrtq implementation.
    Unfortunately, that seems to fail building in some powerpc* configurations, where
    TFmode isn't available.
    quad.h has:
     #ifndef TFtype
     typedef float TFtype __attribute__ ((mode (TF)));
     #endif
    and uses TFtype.  quad.h has:
     /* Define the complex type corresponding to __float128
        ("_Complex __float128" is not allowed) */
     #if (!defined(_ARCH_PPC)) || defined(__LONG_DOUBLE_IEEE128__)
     typedef _Complex float __attribute__((mode(TC))) __complex128;
     #else
     typedef _Complex float __attribute__((mode(KC))) __complex128;
     #endif
    with the conditional and KCmode use added during porting of libquadmath
    to powerpc*, so I've just defined TFtype for powerpc when __LONG_DOUBLE_IEEE128__
    isn't defined; I could define it to float __attribute__ ((mode (KF))) but it
    seemed easier to just define it to __float128 which should do the same thing.
    
    2024-08-03  Jakub Jelinek  <jakub@redhat.com>
    
            PR target/116007
            * math/sqrtq.c (TFtype): For PowerPC without __LONG_DOUBLE_IEEE128__
            define to __float128 before including soft-fp.h and quad.h.
    
    (cherry picked from commit 3ac02e67503ccffa3dfeeffc0a60fce6bdaca43b)

diff --git a/libquadmath/math/sqrtq.c b/libquadmath/math/sqrtq.c
index 8ca2828d42c..a58998a0667 100644
--- a/libquadmath/math/sqrtq.c
+++ b/libquadmath/math/sqrtq.c
@@ -9,6 +9,9 @@
     && defined(FE_TOWARDZERO) \
     && defined(FE_INEXACT)
 #define USE_SOFT_FP 1
+#if defined(_ARCH_PPC) && !defined(__LONG_DOUBLE_IEEE128__)
+#define TFtype __float128
+#endif
 #include "../../libgcc/soft-fp/soft-fp.h"
 #include "../../libgcc/soft-fp/quad.h"
 #endif

commit f2b5ca6be855cede3f0d35d2a1aff08d3c342ac2
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Aug 6 11:09:33 2024 +0200

    wide-int: Fix up mul_internal overflow checking [PR116224]
    
    The following testcase is miscompiled, because wi::mul for (_BitInt(65))-15
    times (_BitInt(65))-15 computes the right value (_BitInt(65))225, but
    sets *overflow to wi::OVF_UNKNOWN as that it overflowed when it didn't.
    
    Even signed operands are unpacked as unsigned but because they are
    implicitly sign-extended from the represented value (the operands
    obviously have len==1), we get
    0xfffffff1, 0xffffffff, 0x1, 0x0
    in both u and v (0x1 because that is exactly 65 bits).
    We then multiply these.  Next step is because both the high and
    overflow handling expects the high half to start at a limb boundary
    the bits of the result starting with bit 65 are shifted up by 63 such
    that the bits relevant for high/need_overflow start at the half of the
    4th half wide int limb.
    Because both operands are negative that part is then adjusted.
    
    The reason mul_internal says there is overflow is because of the unspecified
    garbage in the most significant bits of the result which the adjusting
    doesn't clean up.  65 bit multiplication needs 65 bits of result and 65 bits
    of the high part, can't produce more, so the following patch fixes it by
    checking for the overflow only in those first 65 bits of the high part, not
    anything beyond that.  If it was a highpart multiply, we'd have ignored that
    as well (canonicalized).
    
    2024-08-06  Jakub Jelinek  <jakub@redhat.com>
    
            PR tree-optimization/116224
            * wide-int.cc (wi::mul_internal): If prec isn't multiple of
            HOST_BITS_PER_WIDE_INT, for need_overflow checking only look at
            the least significant prec bits starting with r[half_blocks_needed].
    
            * gcc.dg/torture/bitint-72.c: New test.
    
    (cherry picked from commit 69093fd8aa682a1b906e80b3c5f10956e692b7c4)

diff --git a/gcc/testsuite/gcc.dg/torture/bitint-72.c b/gcc/testsuite/gcc.dg/torture/bitint-72.c
new file mode 100644
index 00000000000..101018b00ee
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/bitint-72.c
@@ -0,0 +1,28 @@
+/* PR tree-optimization/116224 */
+/* { dg-do run { target bitint } } */
+/* { dg-options "-std=c23" } */
+/* { dg-skip-if "" { ! run_expensive_tests }  { "*" } { "-O0" "-O2" } } */
+/* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
+
+#if __BITINT_MAXWIDTH__ >= 65
+#define N 65
+#else
+#define N 63
+#endif
+
+signed char g;
+
+int
+foo (signed char c, int i, _BitInt(N) b)
+{
+  __builtin_memmove (&g, &b, 1);
+  return b / i / c;
+}
+
+int
+main ()
+{
+  int x = foo (-15, -15, 900);
+  if (x != 4)
+    __builtin_abort ();
+}
diff --git a/gcc/wide-int.cc b/gcc/wide-int.cc
index 9c6eba807aa..5bd16a59564 100644
--- a/gcc/wide-int.cc
+++ b/gcc/wide-int.cc
@@ -1574,7 +1574,24 @@ wi::mul_internal (HOST_WIDE_INT *val, const HOST_WIDE_INT *op1val,
 	  top &= mask;
 	}
 
-      for (i = half_blocks_needed; i < half_blocks_needed * 2; i++)
+      unsigned int end = half_blocks_needed * 2;
+      shift = prec % HOST_BITS_PER_WIDE_INT;
+      if (shift)
+	{
+	  /* For overflow checking only look at the first prec bits
+	     starting with r[half_blocks_needed].  */
+	  if (shift <= HOST_BITS_PER_HALF_WIDE_INT)
+	    --end;
+	  shift %= HOST_BITS_PER_HALF_WIDE_INT;
+	  if (shift)
+	    {
+	      if (top)
+		r[end - 1] |= ((~(unsigned HOST_HALF_WIDE_INT) 0) << shift);
+	      else
+		r[end - 1] &= (((unsigned HOST_HALF_WIDE_INT) 1) << shift) - 1;
+	    }
+	}
+      for (i = half_blocks_needed; i < end; i++)
 	if (((HOST_WIDE_INT)(r[i] & mask)) != top)
 	  /* FIXME: Signed overflow type is not implemented yet.  */
 	  *overflow = (sgn == UNSIGNED) ? wi::OVF_OVERFLOW : wi::OVF_UNKNOWN;

commit ba26c471cf6ee760e53836fd4e9bc00250b8b882
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Tue Aug 6 13:40:26 2024 -0400

    hppa: Fix (plus (plus (mult (a) (mem_shadd_constant)) (b)) (c)) optimization
    
    The constant C must be an integral multiple of the shift value in
    the above optimization.  Non integral values can occur evaluating
    IMAGPART_EXPR when the shadd constant is 8 and we have SFmode.
    
    2024-08-06  John David Anglin  <danglin@gcc.gnu.org>
    
    gcc/ChangeLog:
    
            PR target/113384
            * config/pa/pa.cc (hppa_legitimize_address): Add check to
            ensure constant is an integral multiple of shift the value.

diff --git a/gcc/config/pa/pa.cc b/gcc/config/pa/pa.cc
index a7af6b8c121..b24434628fa 100644
--- a/gcc/config/pa/pa.cc
+++ b/gcc/config/pa/pa.cc
@@ -1407,6 +1407,7 @@ hppa_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED,
       /* If the index adds a large constant, try to scale the
 	 constant so that it can be loaded with only one insn.  */
       if (GET_CODE (XEXP (idx, 1)) == CONST_INT
+	  && INTVAL (XEXP (idx, 1)) % (1 << shift_val) == 0
 	  && VAL_14_BITS_P (INTVAL (XEXP (idx, 1))
 			    / INTVAL (XEXP (XEXP (idx, 0), 1)))
 	  && INTVAL (XEXP (idx, 1)) % INTVAL (XEXP (XEXP (idx, 0), 1)) == 0)

commit 987fc8174026cb3452b63d026cef686f4177526b
Author: Jason Merrill <jason@redhat.com>
Date:   Wed Jul 24 16:20:33 2024 -0400

    c++: parse error with -std=c++14 -fconcepts [PR116071]
    
    cp_parser_simple_type_specifier tries a variety of different things that
    might qualify as a user-defined type: an actual type-name, a constrained
    auto, a CTAD placeholder.  In a context where a type-specifier is optional,
    this is all tentative.  With -std=c++14 -fconcepts, we try type-name and
    constrained auto in sub-tentative parses, and when we run out of things to
    try we haven't found anything but also haven't failed the outer tentative
    parse, so parse_definitely succeeds, discarding the nested-name-specifier.
    
    Fixed by failing if we didn't find anything.
    
    I said in r14-3203 that we should disable this combination of flags if
    further problems arise, but this seems like a more general problem that only
    happened to occur with just this combination of flags.  So it lives on.
    
            PR c++/116071
    
    gcc/cp/ChangeLog:
    
            * parser.cc (cp_parser_simple_type_specifier): Call
            cp_parser_simulate_error if nothing worked.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/parse/pr116071.C: New test.
    
    (cherry picked from commit 8c71830b51e6fd10087ce3f6791de80eb1f10b96)

diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index 00cf128522a..adb10228782 100644
--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -20625,9 +20625,13 @@ cp_parser_simple_type_specifier (cp_parser* parser,
 	}
 
       /* If it didn't work out, we don't have a TYPE.  */
-      if ((flags & CP_PARSER_FLAGS_OPTIONAL)
-	  && !cp_parser_parse_definitely (parser))
-	type = NULL_TREE;
+      if (flags & CP_PARSER_FLAGS_OPTIONAL)
+	{
+	  if (!type)
+	    cp_parser_simulate_error (parser);
+	  if (!cp_parser_parse_definitely (parser))
+	    type = NULL_TREE;
+	}
 
       /* Keep track of all name-lookups performed in class scopes.  */
       if (type
diff --git a/gcc/testsuite/g++.dg/parse/pr116071.C b/gcc/testsuite/g++.dg/parse/pr116071.C
new file mode 100644
index 00000000000..7590782d5ee
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/pr116071.C
@@ -0,0 +1,18 @@
+// PR c++/116071
+// { dg-options "-std=c++14 -fconcepts" }
+
+template<class T> struct S { ~S(); };
+template<class T> S<T>::~S() { }
+
+template<typename MemPtr>
+struct result_of;
+
+template<typename Res, typename Class>
+struct result_of<Res Class::*>
+{
+  using type = void;
+};
+
+struct thread {
+  void join() { };
+};

commit b1102f7c478136bfe18ceaf7db9572a8a757a3d2
Author: Jason Merrill <jason@redhat.com>
Date:   Mon Aug 5 11:21:05 2024 -0400

    c++: alias and non-type template parm [PR116223]
    
    My r14-8291 for PR112632 introduced IMPLICIT_CONV_EXPR_FORCED to express
    conversions to the type of an alias template parameter.  In this example,
    that broke deduction of X in the call to foo, so let's teach deduction to
    look through it.
    
            PR c++/116223
            PR c++/112632
    
    gcc/cp/ChangeLog:
    
            * pt.cc (deducible_expression): Also look through
            IMPLICIT_CONV_EXPR_FORCED.
            (unify): Likewise.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp1z/nontype-auto25.C: New test.
    
    (cherry picked from commit 4add6cd341a779e980e41ed6fb49175fca37496e)

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index ea4a6c9bf53..96a4f45909d 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -23073,6 +23073,8 @@ deducible_expression (tree expr)
   /* Strip implicit conversions and implicit INDIRECT_REFs.  */
   while (CONVERT_EXPR_P (expr)
 	 || TREE_CODE (expr) == VIEW_CONVERT_EXPR
+	 || (TREE_CODE (expr) == IMPLICIT_CONV_EXPR
+	     && IMPLICIT_CONV_EXPR_FORCED (expr))
 	 || REFERENCE_REF_P (expr))
     expr = TREE_OPERAND (expr, 0);
   return (TREE_CODE (expr) == TEMPLATE_PARM_INDEX);
@@ -24602,7 +24604,9 @@ unify (tree tparms, tree targs, tree parm, tree arg, int strict,
      signedness is the only information lost, and I think that will be
      okay.  VIEW_CONVERT_EXPR can appear with class NTTP, thanks to
      finish_id_expression_1, and are also OK.  */
-  while (CONVERT_EXPR_P (parm) || TREE_CODE (parm) == VIEW_CONVERT_EXPR)
+  while (CONVERT_EXPR_P (parm) || TREE_CODE (parm) == VIEW_CONVERT_EXPR
+	 || (TREE_CODE (parm) == IMPLICIT_CONV_EXPR
+	     && IMPLICIT_CONV_EXPR_FORCED (parm)))
     parm = TREE_OPERAND (parm, 0);
 
   if (arg == error_mark_node)
diff --git a/gcc/testsuite/g++.dg/cpp1z/nontype-auto25.C b/gcc/testsuite/g++.dg/cpp1z/nontype-auto25.C
new file mode 100644
index 00000000000..36b38b48ec2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/nontype-auto25.C
@@ -0,0 +1,18 @@
+// PR c++/116223
+// { dg-do compile { target c++17 } }
+
+template <int T> struct A { int value = T; };
+
+template <unsigned char X> using B = A<X>;
+
+template <auto X>
+void foo(B<X>& mat) noexcept
+{
+  //    std::cout << mat.value << "\n";
+}
+
+int main()
+{
+    A<2> mat;
+    foo(mat);
+}

commit 49e8eeeb38da9e22d4d4ccec8dac610f337d8917
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Aug 7 00:21:46 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d043a7896f9..2e5fb05c010 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,28 @@
+2024-08-06  John David Anglin  <danglin@gcc.gnu.org>
+
+	PR target/113384
+	* config/pa/pa.cc (hppa_legitimize_address): Add check to
+	ensure constant is an integral multiple of shift the value.
+
+2024-08-06  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-08-06  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/116224
+	* wide-int.cc (wi::mul_internal): If prec isn't multiple of
+	HOST_BITS_PER_WIDE_INT, for need_overflow checking only look at
+	the least significant prec bits starting with r[half_blocks_needed].
+
+2024-08-06  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	Backported from master:
+	2024-08-06  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	PR target/116189
+	* config/sh/sh.cc (sh_recog_treg_set_expr): Don't call make_insn_raw,
+	make the insn with a fake uid.
+
 2024-08-05  Christoph Müllner  <christoph.muellner@vrull.eu>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f2c439e6ce5..0795b809c24 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240806
+20240807
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e819f9e63e8..46781e0fac0 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,23 @@
+2024-08-06  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-08-06  Jason Merrill  <jason@redhat.com>
+
+	PR c++/116223
+	PR c++/112632
+	* pt.cc (deducible_expression): Also look through
+	IMPLICIT_CONV_EXPR_FORCED.
+	(unify): Likewise.
+
+2024-08-06  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-07-24  Jason Merrill  <jason@redhat.com>
+
+	PR c++/116071
+	* parser.cc (cp_parser_simple_type_specifier): Call
+	cp_parser_simulate_error if nothing worked.
+
 2024-08-02  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 04d5d211b70..a16a51a786e 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-06  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-08-01  Jakub Jelinek  <jakub@redhat.com>
+
+	* trans-types.cc (gfc_get_array_descr_info): Don't test if
+	!integer_zerop (dtype_off), use fold_build_pointer_plus
+	unconditionally.
+
 2024-08-05  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0c272ccfa71..e4fa87404ca 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,36 @@
+2024-08-06  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-08-06  Jason Merrill  <jason@redhat.com>
+
+	PR c++/116223
+	PR c++/112632
+	* g++.dg/cpp1z/nontype-auto25.C: New test.
+
+2024-08-06  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-07-24  Jason Merrill  <jason@redhat.com>
+
+	PR c++/116071
+	* g++.dg/parse/pr116071.C: New test.
+
+2024-08-06  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-08-06  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/116224
+	* gcc.dg/torture/bitint-72.c: New test.
+
+2024-08-06  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	Backported from master:
+	2024-08-06  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	PR target/116189
+	* c-c++-common/torture/pr116189-1.c: New test.
+
 2024-08-05  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/libquadmath/ChangeLog b/libquadmath/ChangeLog
index 726f84535c7..b15f9987436 100644
--- a/libquadmath/ChangeLog
+++ b/libquadmath/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-06  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-08-03  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/116007
+	* math/sqrtq.c (TFtype): For PowerPC without __LONG_DOUBLE_IEEE128__
+	define to __float128 before including soft-fp.h and quad.h.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit a9255df9c8e58226c7e98b526e5f3605372a997e
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Aug 8 00:23:29 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 0795b809c24..e2d907af701 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240807
+20240808

commit 9ca1d7a36abecee7da387ceb1c07d77eaad15927
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Thu Aug 8 18:31:16 2024 +0200

    AVR: target/116295 - Fix unrecognizable insn with __flash read.
    
    Some loads from non-generic address-spaces are performed by
    libgcc calls, and they don't have a POST_INC form.  Don't consider
    such insns when running -mfuse-add.
    
            PR target/116295
    gcc/
            * config/avr/avr.cc (Mem_Insn::Mem_Insn): Don't consider MEMs
            that are avr_mem_memx_p or avr_load_libgcc_p.
    
    gcc/testsuite/
            * gcc.target/avr/torture/pr116295.c: New test.
    
    (cherry picked from commit c4d3dba253b49fb0e8e32109783f76453bc53653)

diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index b41592ff1a3..71929b28160 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -2052,6 +2052,10 @@ avr_pass_fuse_add::Mem_Insn::Mem_Insn (rtx_insn *insn)
   else
     return;
 
+  if (avr_mem_memx_p (mem)
+      || avr_load_libgcc_p (mem))
+    return;
+
   addr = XEXP (mem, 0);
   addr_code = GET_CODE (addr);
 
diff --git a/gcc/testsuite/gcc.target/avr/torture/pr116295.c b/gcc/testsuite/gcc.target/avr/torture/pr116295.c
new file mode 100644
index 00000000000..0b3d380ff14
--- /dev/null
+++ b/gcc/testsuite/gcc.target/avr/torture/pr116295.c
@@ -0,0 +1,22 @@
+/* { dg-do link } */
+/* { dg-additional-options "-std=gnu99" } */
+
+#ifdef __FLASH
+
+long val;
+
+__attribute__((used))
+const __flash long*
+load4_flash (const __flash long *p)
+{
+    val += *p++;
+    val += *p++;
+    return p;
+}
+
+#endif
+
+int main (void)
+{
+	return 0;
+}

commit 897cd794d341a3bdd3195e90ebeea054ac80bf65
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Aug 9 00:22:36 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2e5fb05c010..8237fd50bba 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/116295
+	* config/avr/avr.cc (Mem_Insn::Mem_Insn): Don't consider MEMs
+	that are avr_mem_memx_p or avr_load_libgcc_p.
+
 2024-08-06  John David Anglin  <danglin@gcc.gnu.org>
 
 	PR target/113384
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e2d907af701..17534e79088 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240808
+20240809
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e4fa87404ca..c27638d041e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/116295
+	* gcc.target/avr/torture/pr116295.c: New test.
+
 2024-08-06  Jason Merrill  <jason@redhat.com>
 
 	Backported from master:

commit b0dd13efca673355dd2a0c5646452c2f23f86029
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Aug 9 14:32:51 2024 +0200

    i386: Fix up __builtin_ia32_b{extr{,i}_u{32,64},zhi_{s,d}i} folding [PR116287]
    
    The GENERIC folding of these builtins have cases where it folds to a
    constant regardless of the value of the first operand.  If so, we need
    to use omit_one_operand to avoid throwing away side-effects in the first
    operand if any.  The cases which verify the first argument is INTEGER_CST
    don't need that, INTEGER_CST doesn't have side-effects.
    
    2024-08-09  Jakub Jelinek  <jakub@redhat.com>
    
            PR target/116287
            * config/i386/i386.cc (ix86_fold_builtin) <case IX86_BUILTIN_BEXTR32>:
            When folding into zero without checking whether first argument is
            constant, use omit_one_operand.
            (ix86_fold_builtin) <case IX86_BUILTIN_BZHI32>: Likewise.
    
            * gcc.target/i386/bmi-pr116287.c: New test.
            * gcc.target/i386/bmi2-pr116287.c: New test.
            * gcc.target/i386/tbm-pr116287.c: New test.
    
    (cherry picked from commit 6e7088dbe3bf87108a89558ffb7df36df3469206)

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 35a28243389..6f89891d3cb 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -18671,9 +18671,11 @@ ix86_fold_builtin (tree fndecl, int n_args,
 	      unsigned int prec = TYPE_PRECISION (TREE_TYPE (args[0]));
 	      unsigned int start = tree_to_uhwi (args[1]);
 	      unsigned int len = (start & 0xff00) >> 8;
+	      tree lhs_type = TREE_TYPE (TREE_TYPE (fndecl));
 	      start &= 0xff;
 	      if (start >= prec || len == 0)
-		res = 0;
+		return omit_one_operand (lhs_type, build_zero_cst (lhs_type),
+					 args[0]);
 	      else if (!tree_fits_uhwi_p (args[0]))
 		break;
 	      else
@@ -18682,7 +18684,7 @@ ix86_fold_builtin (tree fndecl, int n_args,
 		len = prec;
 	      if (len < HOST_BITS_PER_WIDE_INT)
 		res &= (HOST_WIDE_INT_1U << len) - 1;
-	      return build_int_cstu (TREE_TYPE (TREE_TYPE (fndecl)), res);
+	      return build_int_cstu (lhs_type, res);
 	    }
 	  break;
 
@@ -18692,15 +18694,17 @@ ix86_fold_builtin (tree fndecl, int n_args,
 	  if (tree_fits_uhwi_p (args[1]))
 	    {
 	      unsigned int idx = tree_to_uhwi (args[1]) & 0xff;
+	      tree lhs_type = TREE_TYPE (TREE_TYPE (fndecl));
 	      if (idx >= TYPE_PRECISION (TREE_TYPE (args[0])))
 		return args[0];
 	      if (idx == 0)
-		return build_int_cst (TREE_TYPE (TREE_TYPE (fndecl)), 0);
+		return omit_one_operand (lhs_type, build_zero_cst (lhs_type),
+					 args[0]);
 	      if (!tree_fits_uhwi_p (args[0]))
 		break;
 	      unsigned HOST_WIDE_INT res = tree_to_uhwi (args[0]);
 	      res &= ~(HOST_WIDE_INT_M1U << idx);
-	      return build_int_cstu (TREE_TYPE (TREE_TYPE (fndecl)), res);
+	      return build_int_cstu (lhs_type, res);
 	    }
 	  break;
 
diff --git a/gcc/testsuite/gcc.target/i386/bmi-pr116287.c b/gcc/testsuite/gcc.target/i386/bmi-pr116287.c
new file mode 100644
index 00000000000..2212cb458d2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/bmi-pr116287.c
@@ -0,0 +1,28 @@
+/* PR target/116287 */
+/* { dg-do run { target bmi } } */
+/* { dg-options "-O2 -mbmi" } */
+
+#include <x86intrin.h>
+
+#include "bmi-check.h"
+
+static void
+bmi_test ()
+{
+  unsigned int a = 0;
+  if (__builtin_ia32_bextr_u32 (a++, 0) != 0)
+    abort ();
+  if (__builtin_ia32_bextr_u32 (a++, 0x120) != 0)
+    abort ();
+  if (a != 2)
+    abort ();
+#ifdef __x86_64__
+  unsigned long long b = 0;
+  if (__builtin_ia32_bextr_u64 (b++, 0) != 0)
+    abort ();
+  if (__builtin_ia32_bextr_u64 (b++, 0x140) != 0)
+    abort ();
+  if (b != 2)
+    abort ();
+#endif
+}
diff --git a/gcc/testsuite/gcc.target/i386/bmi2-pr116287.c b/gcc/testsuite/gcc.target/i386/bmi2-pr116287.c
new file mode 100644
index 00000000000..51c939c39f6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/bmi2-pr116287.c
@@ -0,0 +1,24 @@
+/* PR target/116287 */
+/* { dg-do run { target bmi2 } } */
+/* { dg-options "-O2 -mbmi2" } */
+
+#include <x86intrin.h>
+
+#include "bmi2-check.h"
+
+static void
+bmi2_test ()
+{
+  unsigned int a = 0;
+  if (__builtin_ia32_bzhi_si (a++, 0) != 0)
+    abort ();
+  if (a != 1)
+    abort ();
+#ifdef __x86_64__
+  unsigned long long b = 0;
+  if (__builtin_ia32_bzhi_di (b++, 0) != 0)
+    abort ();
+  if (b != 1)
+    abort ();
+#endif
+}
diff --git a/gcc/testsuite/gcc.target/i386/tbm-pr116287.c b/gcc/testsuite/gcc.target/i386/tbm-pr116287.c
new file mode 100644
index 00000000000..a229d8bb416
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/tbm-pr116287.c
@@ -0,0 +1,29 @@
+/* PR target/116287 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -mtbm -fdump-tree-optimized" } */
+/* { dg-final { scan-tree-dump-not "link_error \\\(\\\);" "optimized" } } */
+
+#include <x86intrin.h>
+
+extern void link_error (void);
+
+void
+tbm_test ()
+{
+  unsigned int a = 0;
+  if (__builtin_ia32_bextri_u32 (a++, 0) != 0)
+    link_error ();
+  if (__builtin_ia32_bextri_u32 (a++, 0x120) != 0)
+    link_error ();
+  if (a != 2)
+    link_error ();
+#ifdef __x86_64__
+  unsigned long long b = 0;
+  if (__builtin_ia32_bextr_u64 (b++, 0) != 0)
+    link_error ();
+  if (__builtin_ia32_bextr_u64 (b++, 0x140) != 0)
+    link_error ();
+  if (b != 2)
+    link_error ();
+#endif
+}

commit 6f1e687d23e1474ca7b65389475beb3a24dd4aed
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Aug 10 00:22:40 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8237fd50bba..dbe6692b511 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2024-08-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-08-09  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/116287
+	* config/i386/i386.cc (ix86_fold_builtin) <case IX86_BUILTIN_BEXTR32>:
+	When folding into zero without checking whether first argument is
+	constant, use omit_one_operand.
+	(ix86_fold_builtin) <case IX86_BUILTIN_BZHI32>: Likewise.
+
 2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 17534e79088..5d474ddc6cc 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240809
+20240810
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c27638d041e..f19069a762d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2024-08-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-08-09  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/116287
+	* gcc.target/i386/bmi-pr116287.c: New test.
+	* gcc.target/i386/bmi2-pr116287.c: New test.
+	* gcc.target/i386/tbm-pr116287.c: New test.
+
 2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
 
 	Backported from master:

commit 534ffe70e92c8dd47d03174220d2afd017fde12c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Aug 11 00:22:27 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 5d474ddc6cc..c3de54be1f1 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240810
+20240811

commit 6bfd78c595452556b678c66b2b71785dcb16b07a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Aug 12 00:22:44 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c3de54be1f1..2454f4b3e28 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240811
+20240812

commit f688431db9acefff850d2004ad5c35ef38c47449
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Aug 13 00:22:33 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 2454f4b3e28..e2b84f6ebd8 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240812
+20240813

commit 7d9bb37174f9526639d5acaa87868a752ba7d956
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Aug 13 17:22:38 2024 -0400

    Add -mcpu=power11 support.
    
    This patch adds the power11 option to the -mcpu= and -mtune= switches.
    
    This patch treats the power11 like a power10 in terms of costs and reassociation
    width.
    
    This patch issues a ".machine power11" to the assembly file if you use
    -mcpu=power11.
    
    This patch defines _ARCH_PWR11 if the user uses -mcpu=power11.
    
    This patch allows GCC to be configured with the --with-cpu=power11 and
    --with-tune=power11 options.
    
    This patch passes -mpwr11 to the assembler if the user uses -mcpu=power11.
    
    This patch adds support for using "power11" in the __builtin_cpu_is built-in
    function.
    
    Backported from master: 2024-07-22
    
    2024-08-13  Michael Meissner  <meissner@linux.ibm.com>
    
    gcc/
    
            * config.gcc (powerpc*-*-*): Add support for power11.
            * config/rs6000/aix71.h (ASM_CPU_SPEC): Add support for -mcpu=power11.
            * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
            * config/rs6000/aix73.h (ASM_CPU_SPEC): Likewise.
            * config/rs6000/driver-rs6000.cc (asm_names): Likewise.
            * config/rs6000/ppc-auxv.h (PPC_PLATFORM_POWER11): New define.
            * config/rs6000/rs6000-builtin.cc (cpu_is_info): Add power11.
            * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
            _ARCH_PWR11 if -mcpu=power11.
            * config/rs6000/rs6000-cpus.def (POWER11_MASKS_SERVER): New define.
            (POWERPC_MASKS): Add power11.
            (power11 cpu): Add power11 definition.
            * config/rs6000/rs6000-opts.h (PROCESSOR_POWER11): Add power11 processor.
            * config/rs6000/rs6000-string.cc (expand_compare_loop): Likewise.
            * config/rs6000/rs6000-tables.opt: Regenerate.
            * config/rs6000/rs6000.cc (rs6000_option_override_internal): Add power11
            support.
            (rs6000_machine_from_flags): Likewise.
            (rs6000_reassociation_width): Likewise.
            (rs6000_adjust_cost): Likewise.
            (rs6000_issue_rate): Likewise.
            (rs6000_sched_reorder): Likewise.
            (rs6000_sched_reorder2): Likewise.
            (rs6000_register_move_cost): Likewise.
            (rs6000_opt_masks): Likewise.
            * config/rs6000/rs6000.h (ASM_CPU_SPEC): Likewise.
            * config/rs6000/rs6000.md (cpu attribute): Add power11.
            * config/rs6000/rs6000.opt (-mpower11): Add internal power11 flag.
            * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=power11.
            * config/rs6000/power10.md (all reservations): Add power11 support.
    
    gcc/testsuite/
    
            * gcc.target/powerpc/power11-1.c: New test.
            * gcc.target/powerpc/power11-2.c: Likewise.
            * gcc.target/powerpc/power11-3.c: Likewise.

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 95c91ee02be..a3566f5c77d 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -534,7 +534,7 @@ powerpc*-*-*)
 	extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
 	extra_headers="${extra_headers} amo.h"
 	case x$with_cpu in
-	    xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower10|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
+	    xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower1[01]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
 		cpu_is_64bit=yes
 		;;
 	esac
@@ -5601,7 +5601,7 @@ case "${target}" in
 				eval "with_$which=405"
 				;;
 			"" | common | native \
-			| power[3456789] | power10 | power5+ | power6x \
+			| power[3456789] | power1[01] | power5+ | power6x \
 			| powerpc | powerpc64 | powerpc64le \
 			| rs64 \
 			| 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
diff --git a/gcc/config/rs6000/aix71.h b/gcc/config/rs6000/aix71.h
index 24bc301e37d..41037b3852d 100644
--- a/gcc/config/rs6000/aix71.h
+++ b/gcc/config/rs6000/aix71.h
@@ -79,6 +79,7 @@ do {									\
 #undef ASM_CPU_SPEC
 #define ASM_CPU_SPEC \
 "%{mcpu=native: %(asm_cpu_native); \
+  mcpu=power11: -mpwr11; \
   mcpu=power10: -mpwr10; \
   mcpu=power9: -mpwr9; \
   mcpu=power8: -mpwr8; \
diff --git a/gcc/config/rs6000/aix72.h b/gcc/config/rs6000/aix72.h
index c43974f577a..fe59f8319b4 100644
--- a/gcc/config/rs6000/aix72.h
+++ b/gcc/config/rs6000/aix72.h
@@ -79,6 +79,7 @@ do {									\
 #undef ASM_CPU_SPEC
 #define ASM_CPU_SPEC \
 "%{mcpu=native: %(asm_cpu_native); \
+  mcpu=power11: -mpwr11; \
   mcpu=power10: -mpwr10; \
   mcpu=power9: -mpwr9; \
   mcpu=power8: -mpwr8; \
diff --git a/gcc/config/rs6000/aix73.h b/gcc/config/rs6000/aix73.h
index b1572bde81f..1318b0b3662 100644
--- a/gcc/config/rs6000/aix73.h
+++ b/gcc/config/rs6000/aix73.h
@@ -79,6 +79,7 @@ do {									\
 #undef ASM_CPU_SPEC
 #define ASM_CPU_SPEC \
 "%{mcpu=native: %(asm_cpu_native); \
+  mcpu=power11: -mpwr11; \
   mcpu=power10: -mpwr10; \
   mcpu=power9: -mpwr9; \
   mcpu=power8: -mpwr8; \
diff --git a/gcc/config/rs6000/driver-rs6000.cc b/gcc/config/rs6000/driver-rs6000.cc
index 3ebbaa42622..f4900724b98 100644
--- a/gcc/config/rs6000/driver-rs6000.cc
+++ b/gcc/config/rs6000/driver-rs6000.cc
@@ -451,6 +451,7 @@ static const struct asm_name asm_names[] = {
   { "power8",	"-mpwr8" },
   { "power9",	"-mpwr9" },
   { "power10",	"-mpwr10" },
+  { "power11",	"-mpwr11" },
   { "powerpc",	"-mppc" },
   { "rs64",	"-mppc" },
   { "603",	"-m603" },
@@ -479,6 +480,7 @@ static const struct asm_name asm_names[] = {
   { "power8",	"-mpower8" },
   { "power9",	"-mpower9" },
   { "power10",	"-mpower10" },
+  { "power11",	"-mpower11" },
   { "a2",	"-ma2" },
   { "powerpc",	"-mppc" },
   { "powerpc64", "-mppc64" },
diff --git a/gcc/config/rs6000/power10.md b/gcc/config/rs6000/power10.md
index fcc2199ab29..2310c460345 100644
--- a/gcc/config/rs6000/power10.md
+++ b/gcc/config/rs6000/power10.md
@@ -1,4 +1,4 @@
-;; Scheduling description for the IBM POWER10 processor.
+;; Scheduling description for the IBM Power10 and Power11 processors.
 ;; Copyright (C) 2020-2024 Free Software Foundation, Inc.
 ;;
 ;; Contributed by Pat Haugen (pthaugen@us.ibm.com).
@@ -97,12 +97,12 @@
        (eq_attr "update" "no")
        (eq_attr "size" "!128")
        (eq_attr "prefixed" "no")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,LU_power10")
 
 (define_insn_reservation "power10-fused-load" 4
   (and (eq_attr "type" "fused_load_cmpi,fused_addis_load,fused_load_load")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,LU_power10")
 
 (define_insn_reservation "power10-prefixed-load" 4
@@ -110,13 +110,13 @@
        (eq_attr "update" "no")
        (eq_attr "size" "!128")
        (eq_attr "prefixed" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,LU_power10")
 
 (define_insn_reservation "power10-load-update" 4
   (and (eq_attr "type" "load")
        (eq_attr "update" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,LU_power10+SXU_power10")
 
 (define_insn_reservation "power10-fpload-double" 4
@@ -124,7 +124,7 @@
        (eq_attr "update" "no")
        (eq_attr "size" "64")
        (eq_attr "prefixed" "no")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,LU_power10")
 
 (define_insn_reservation "power10-prefixed-fpload-double" 4
@@ -132,14 +132,14 @@
        (eq_attr "update" "no")
        (eq_attr "size" "64")
        (eq_attr "prefixed" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,LU_power10")
 
 (define_insn_reservation "power10-fpload-update-double" 4
   (and (eq_attr "type" "fpload")
        (eq_attr "update" "yes")
        (eq_attr "size" "64")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,LU_power10+SXU_power10")
 
 ; SFmode loads are cracked and have additional 3 cycles over DFmode
@@ -148,27 +148,27 @@
   (and (eq_attr "type" "fpload")
        (eq_attr "update" "no")
        (eq_attr "size" "32")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,LU_power10")
 
 (define_insn_reservation "power10-fpload-update-single" 7
   (and (eq_attr "type" "fpload")
        (eq_attr "update" "yes")
        (eq_attr "size" "32")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,LU_power10+SXU_power10")
 
 (define_insn_reservation "power10-vecload" 4
   (and (eq_attr "type" "vecload")
        (eq_attr "size" "!256")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,LU_power10")
 
 ; lxvp
 (define_insn_reservation "power10-vecload-pair" 4
   (and (eq_attr "type" "vecload")
        (eq_attr "size" "256")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,LU_power10+SXU_power10")
 
 ; Store Unit
@@ -178,12 +178,12 @@
        (eq_attr "prefixed" "no")
        (eq_attr "size" "!128")
        (eq_attr "size" "!256")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,STU_power10")
 
 (define_insn_reservation "power10-fused-store" 0
   (and (eq_attr "type" "fused_store_store")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,STU_power10")
 
 (define_insn_reservation "power10-prefixed-store" 0
@@ -191,52 +191,52 @@
        (eq_attr "prefixed" "yes")
        (eq_attr "size" "!128")
        (eq_attr "size" "!256")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,STU_power10")
 
 ; Update forms have 2 cycle latency for updated addr reg
 (define_insn_reservation "power10-store-update" 2
   (and (eq_attr "type" "store,fpstore")
        (eq_attr "update" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,STU_power10")
 
 ; stxvp
 (define_insn_reservation "power10-vecstore-pair" 0
   (and (eq_attr "type" "vecstore")
        (eq_attr "size" "256")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,stu0_power10+stu1_power10")
 
 (define_insn_reservation "power10-larx" 4
   (and (eq_attr "type" "load_l")
        (eq_attr "size" "!128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,LU_power10")
 
 ; All load quad forms
 (define_insn_reservation "power10-lq" 4
   (and (eq_attr "type" "load,load_l")
        (eq_attr "size" "128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,LU_power10+SXU_power10")
 
 (define_insn_reservation "power10-stcx" 0
   (and (eq_attr "type" "store_c")
        (eq_attr "size" "!128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,STU_power10")
 
 ; All store quad forms
 (define_insn_reservation "power10-stq" 0
   (and (eq_attr "type" "store,store_c")
        (eq_attr "size" "128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,stu0_power10+stu1_power10")
 
 (define_insn_reservation "power10-sync" 1
   (and (eq_attr "type" "sync,isync")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,STU_power10")
 
 
@@ -248,7 +248,7 @@
 (define_insn_reservation "power10-alu" 2
   (and (eq_attr "type" "add,exts,integer,logical,isel")
        (eq_attr "prefixed" "no")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 ; 4 cycle CR latency
 (define_bypass 4 "power10-alu"
@@ -256,28 +256,28 @@
 
 (define_insn_reservation "power10-fused_alu" 2
   (and (eq_attr "type" "fused_arith_logical,fused_cmp_isel,fused_carry")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_power10")
 
 ; paddi
 (define_insn_reservation "power10-paddi" 2
   (and (eq_attr "type" "add")
        (eq_attr "prefixed" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_power10")
 
 ; Rotate/shift (non-record form)
 (define_insn_reservation "power10-rot" 2
   (and (eq_attr "type" "insert,shift")
        (eq_attr "dot" "no")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 ; Record form rotate/shift
 (define_insn_reservation "power10-rot-compare" 3
   (and (eq_attr "type" "insert,shift")
        (eq_attr "dot" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 ; 5 cycle CR latency
 (define_bypass 5 "power10-rot-compare"
@@ -285,7 +285,7 @@
 
 (define_insn_reservation "power10-alu2" 3
   (and (eq_attr "type" "cntlz,popcnt,trap")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 ; 5 cycle CR latency
 (define_bypass 5 "power10-alu2"
@@ -293,24 +293,24 @@
 
 (define_insn_reservation "power10-cmp" 2
   (and (eq_attr "type" "cmp")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 ; Treat 'two' and 'three' types as 2 or 3 way cracked
 (define_insn_reservation "power10-two" 4
   (and (eq_attr "type" "two")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_power10")
 
 (define_insn_reservation "power10-three" 6
   (and (eq_attr "type" "three")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_all_power10,EXU_power10")
 
 (define_insn_reservation "power10-mul" 5
   (and (eq_attr "type" "mul")
        (eq_attr "dot" "no")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 ; 4 cycle MUL->MUL latency
 (define_bypass 4 "power10-mul"
@@ -319,7 +319,7 @@
 (define_insn_reservation "power10-mul-compare" 5
   (and (eq_attr "type" "mul")
        (eq_attr "dot" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_power10")
 ; 4 cycle MUL->MUL latency
 (define_bypass 4 "power10-mul-compare"
@@ -331,13 +331,13 @@
 (define_insn_reservation "power10-div" 12
   (and (eq_attr "type" "div")
        (eq_attr "dot" "no")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-div-compare" 12
   (and (eq_attr "type" "div")
        (eq_attr "dot" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_power10")
 ; 14 cycle CR latency
 (define_bypass 14 "power10-div-compare"
@@ -345,34 +345,34 @@
 
 (define_insn_reservation "power10-crlogical" 2
   (and (eq_attr "type" "cr_logical")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-mfcrf" 2
   (and (eq_attr "type" "mfcrf")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-mfcr" 3
   (and (eq_attr "type" "mfcr")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_power10")
 
 ; Should differentiate between 1 cr field and > 1 since target of > 1 cr
 ; is cracked
 (define_insn_reservation "power10-mtcr" 3
   (and (eq_attr "type" "mtcr")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-mtjmpr" 3
   (and (eq_attr "type" "mtjmpr")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-mfjmpr" 2
   (and (eq_attr "type" "mfjmpr")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 
@@ -380,126 +380,126 @@
 
 (define_insn_reservation "power10-fpsimple" 3
   (and (eq_attr "type" "fpsimple")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-fp" 5
   (and (eq_attr "type" "fp,dmul")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-fpcompare" 3
   (and (eq_attr "type" "fpcompare")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-sdiv" 22
   (and (eq_attr "type" "sdiv")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-ddiv" 27
   (and (eq_attr "type" "ddiv")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-sqrt" 26
   (and (eq_attr "type" "ssqrt")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-dsqrt" 36
   (and (eq_attr "type" "dsqrt")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-vec-2cyc" 2
   (and (eq_attr "type" "vecmove,veclogical,vecexts,veccmpfx")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-fused-vec" 2
   (and (eq_attr "type" "fused_vector")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_power10")
 
 (define_insn_reservation "power10-veccmp" 3
   (and (eq_attr "type" "veccmp")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-vecsimple" 2
   (and (eq_attr "type" "vecsimple")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-vecnormal" 5
   (and (eq_attr "type" "vecfloat,vecdouble")
        (eq_attr "size" "!128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-qp" 12
   (and (eq_attr "type" "vecfloat,vecdouble")
        (eq_attr "size" "128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-vecperm" 3
   (and (eq_attr "type" "vecperm")
        (eq_attr "prefixed" "no")
        (eq_attr "dot" "no")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-vecperm-compare" 3
   (and (eq_attr "type" "vecperm")
        (eq_attr "dot" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_power10")
 
 (define_insn_reservation "power10-prefixed-vecperm" 3
   (and (eq_attr "type" "vecperm")
        (eq_attr "prefixed" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_power10")
 
 (define_insn_reservation "power10-veccomplex" 6
   (and (eq_attr "type" "veccomplex")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-vecfdiv" 24
   (and (eq_attr "type" "vecfdiv")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-vecdiv" 27
   (and (eq_attr "type" "vecdiv")
        (eq_attr "size" "!128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-qpdiv" 56
   (and (eq_attr "type" "vecdiv")
        (eq_attr "size" "128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-qpmul" 24
   (and (eq_attr "type" "qmul")
        (eq_attr "size" "128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-mtvsr" 2
   (and (eq_attr "type" "mtvsr")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-mfvsr" 2
   (and (eq_attr "type" "mfvsr")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 
@@ -507,26 +507,26 @@
 ; Branch is 2 cycles, grouped with STU for issue
 (define_insn_reservation "power10-branch" 2
   (and (eq_attr "type" "jmpreg,branch")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,STU_power10")
 
 (define_insn_reservation "power10-fused-branch" 3
   (and (eq_attr "type" "fused_mtbc")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,STU_power10")
 
 
 ; Crypto
 (define_insn_reservation "power10-crypto" 4
   (and (eq_attr "type" "crypto")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 
 ; HTM
 (define_insn_reservation "power10-htm" 2
   (and (eq_attr "type" "htmsimple,htm")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 
@@ -535,26 +535,26 @@
 (define_insn_reservation "power10-dfp" 12
   (and (eq_attr "type" "dfp")
        (eq_attr "size" "!128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_power10")
 
 (define_insn_reservation "power10-dfpq" 12
   (and (eq_attr "type" "dfp")
        (eq_attr "size" "128")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_power10")
 
 ; MMA
 (define_insn_reservation "power10-mma" 9
   (and (eq_attr "type" "mma")
        (eq_attr "prefixed" "no")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_any_power10,EXU_super_power10")
 
 (define_insn_reservation "power10-prefixed-mma" 9
   (and (eq_attr "type" "mma")
        (eq_attr "prefixed" "yes")
-       (eq_attr "cpu" "power10"))
+       (eq_attr "cpu" "power10,power11"))
   "DU_even_power10,EXU_super_power10")
 ; 4 cycle MMA->MMA latency
 (define_bypass 4 "power10-mma,power10-prefixed-mma"
diff --git a/gcc/config/rs6000/ppc-auxv.h b/gcc/config/rs6000/ppc-auxv.h
index 364bba427d1..ed269e3b72b 100644
--- a/gcc/config/rs6000/ppc-auxv.h
+++ b/gcc/config/rs6000/ppc-auxv.h
@@ -47,9 +47,8 @@
 #define PPC_PLATFORM_PPC476            12
 #define PPC_PLATFORM_POWER8            13
 #define PPC_PLATFORM_POWER9            14
-
-/* This is not yet official.  */
 #define PPC_PLATFORM_POWER10           15
+#define PPC_PLATFORM_POWER11           16
 
 /* AT_HWCAP bits.  These must match the values defined in the Linux kernel.  */
 #define PPC_FEATURE_32              0x80000000
diff --git a/gcc/config/rs6000/rs6000-builtin.cc b/gcc/config/rs6000/rs6000-builtin.cc
index e96d5157e4d..d8b18b2b8ce 100644
--- a/gcc/config/rs6000/rs6000-builtin.cc
+++ b/gcc/config/rs6000/rs6000-builtin.cc
@@ -2493,6 +2493,7 @@ static const struct
   const char *cpu;
   unsigned int cpuid;
 } cpu_is_info[] = {
+  { "power11",	   PPC_PLATFORM_POWER11 },
   { "power10",	   PPC_PLATFORM_POWER10 },
   { "power9",	   PPC_PLATFORM_POWER9 },
   { "power8",	   PPC_PLATFORM_POWER8 },
diff --git a/gcc/config/rs6000/rs6000-c.cc b/gcc/config/rs6000/rs6000-c.cc
index 6229c503bd0..68519e1397f 100644
--- a/gcc/config/rs6000/rs6000-c.cc
+++ b/gcc/config/rs6000/rs6000-c.cc
@@ -435,6 +435,8 @@ rs6000_target_modify_macros (bool define_p, HOST_WIDE_INT flags)
     rs6000_define_or_undefine_macro (define_p, "_ARCH_PWR9");
   if ((flags & OPTION_MASK_POWER10) != 0)
     rs6000_define_or_undefine_macro (define_p, "_ARCH_PWR10");
+  if ((flags & OPTION_MASK_POWER11) != 0)
+    rs6000_define_or_undefine_macro (define_p, "_ARCH_PWR11");
   if ((flags & OPTION_MASK_SOFT_FLOAT) != 0)
     rs6000_define_or_undefine_macro (define_p, "_SOFT_FLOAT");
   if ((flags & OPTION_MASK_RECIP_PRECISION) != 0)
diff --git a/gcc/config/rs6000/rs6000-cpus.def b/gcc/config/rs6000/rs6000-cpus.def
index 6ee678e69c3..84fac8bdac1 100644
--- a/gcc/config/rs6000/rs6000-cpus.def
+++ b/gcc/config/rs6000/rs6000-cpus.def
@@ -86,6 +86,9 @@
 				 | OPTION_MASK_POWER10			\
 				 | OTHER_POWER10_MASKS)
 
+#define POWER11_MASKS_SERVER (ISA_3_1_MASKS_SERVER			\
+			      | OPTION_MASK_POWER11)
+
 /* Flags that need to be turned off if -mno-vsx.  */
 #define OTHER_VSX_VECTOR_MASKS	(OPTION_MASK_EFFICIENT_UNALIGNED_VSX	\
 				 | OPTION_MASK_FLOAT128_KEYWORD		\
@@ -123,6 +126,7 @@
 				 | OPTION_MASK_FLOAT128_KEYWORD		\
 				 | OPTION_MASK_FPRND			\
 				 | OPTION_MASK_POWER10			\
+				 | OPTION_MASK_POWER11			\
 				 | OPTION_MASK_P10_FUSION		\
 				 | OPTION_MASK_HTM			\
 				 | OPTION_MASK_ISEL			\
@@ -250,6 +254,7 @@ RS6000_CPU ("power8", PROCESSOR_POWER8, MASK_POWERPC64 | ISA_2_7_MASKS_SERVER
 RS6000_CPU ("power9", PROCESSOR_POWER9, MASK_POWERPC64 | ISA_3_0_MASKS_SERVER
 	    | OPTION_MASK_HTM)
 RS6000_CPU ("power10", PROCESSOR_POWER10, MASK_POWERPC64 | ISA_3_1_MASKS_SERVER)
+RS6000_CPU ("power11", PROCESSOR_POWER11, MASK_POWERPC64 | POWER11_MASKS_SERVER)
 RS6000_CPU ("powerpc", PROCESSOR_POWERPC, 0)
 RS6000_CPU ("powerpc64", PROCESSOR_POWERPC64, OPTION_MASK_PPC_GFXOPT
 	    | MASK_POWERPC64)
diff --git a/gcc/config/rs6000/rs6000-opts.h b/gcc/config/rs6000/rs6000-opts.h
index 33fd0efc936..88e357835a5 100644
--- a/gcc/config/rs6000/rs6000-opts.h
+++ b/gcc/config/rs6000/rs6000-opts.h
@@ -62,6 +62,7 @@ enum processor_type
    PROCESSOR_POWER8,
    PROCESSOR_POWER9,
    PROCESSOR_POWER10,
+   PROCESSOR_POWER11,
 
    PROCESSOR_RS64A,
    PROCESSOR_MPCCORE,
diff --git a/gcc/config/rs6000/rs6000-string.cc b/gcc/config/rs6000/rs6000-string.cc
index 917f5572a6d..9c8a81172e3 100644
--- a/gcc/config/rs6000/rs6000-string.cc
+++ b/gcc/config/rs6000/rs6000-string.cc
@@ -964,6 +964,7 @@ expand_compare_loop (rtx operands[])
       break;
     case PROCESSOR_POWER9:
     case PROCESSOR_POWER10:
+    case PROCESSOR_POWER11:
       if (bytes_is_const)
 	max_bytes = 191;
       else
diff --git a/gcc/config/rs6000/rs6000-tables.opt b/gcc/config/rs6000/rs6000-tables.opt
index 65f46709716..a5649fef1ec 100644
--- a/gcc/config/rs6000/rs6000-tables.opt
+++ b/gcc/config/rs6000/rs6000-tables.opt
@@ -186,14 +186,17 @@ EnumValue
 Enum(rs6000_cpu_opt_value) String(power10) Value(52)
 
 EnumValue
-Enum(rs6000_cpu_opt_value) String(powerpc) Value(53)
+Enum(rs6000_cpu_opt_value) String(power11) Value(53)
 
 EnumValue
-Enum(rs6000_cpu_opt_value) String(powerpc64) Value(54)
+Enum(rs6000_cpu_opt_value) String(powerpc) Value(54)
 
 EnumValue
-Enum(rs6000_cpu_opt_value) String(powerpc64le) Value(55)
+Enum(rs6000_cpu_opt_value) String(powerpc64) Value(55)
 
 EnumValue
-Enum(rs6000_cpu_opt_value) String(rs64) Value(56)
+Enum(rs6000_cpu_opt_value) String(powerpc64le) Value(56)
+
+EnumValue
+Enum(rs6000_cpu_opt_value) String(rs64) Value(57)
 
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index 2e686acac6a..5fd31bf8242 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -1067,7 +1067,7 @@ struct processor_costs power9_cost = {
   COSTS_N_INSNS (3),	/* SF->DF convert */
 };
 
-/* Instruction costs on POWER10 processors.  */
+/* Instruction costs on Power10/Power11 processors.  */
 static const
 struct processor_costs power10_cost = {
   COSTS_N_INSNS (2),	/* mulsi */
@@ -4370,7 +4370,8 @@ rs6000_option_override_internal (bool global_init_p)
      generating power10 instructions.  */
   if (!(rs6000_isa_flags_explicit & OPTION_MASK_P10_FUSION))
     {
-      if (rs6000_tune == PROCESSOR_POWER10)
+      if (rs6000_tune == PROCESSOR_POWER10
+	  || rs6000_tune == PROCESSOR_POWER11)
 	rs6000_isa_flags |= OPTION_MASK_P10_FUSION;
       else
 	rs6000_isa_flags &= ~OPTION_MASK_P10_FUSION;
@@ -4399,6 +4400,7 @@ rs6000_option_override_internal (bool global_init_p)
 			&& rs6000_tune != PROCESSOR_POWER8
 			&& rs6000_tune != PROCESSOR_POWER9
 			&& rs6000_tune != PROCESSOR_POWER10
+			&& rs6000_tune != PROCESSOR_POWER11
 			&& rs6000_tune != PROCESSOR_PPCA2
 			&& rs6000_tune != PROCESSOR_CELL
 			&& rs6000_tune != PROCESSOR_PPC476);
@@ -4413,6 +4415,7 @@ rs6000_option_override_internal (bool global_init_p)
 				 || rs6000_tune == PROCESSOR_POWER8
 				 || rs6000_tune == PROCESSOR_POWER9
 				 || rs6000_tune == PROCESSOR_POWER10
+				 || rs6000_tune == PROCESSOR_POWER11
 				 || rs6000_tune == PROCESSOR_PPCE500MC
 				 || rs6000_tune == PROCESSOR_PPCE500MC64
 				 || rs6000_tune == PROCESSOR_PPCE5500
@@ -4712,6 +4715,7 @@ rs6000_option_override_internal (bool global_init_p)
 	break;
 
       case PROCESSOR_POWER10:
+      case PROCESSOR_POWER11:
 	rs6000_cost = &power10_cost;
 	break;
 
@@ -5884,6 +5888,8 @@ rs6000_machine_from_flags (void)
   flags &= ~(OPTION_MASK_PPC_GFXOPT | OPTION_MASK_PPC_GPOPT | OPTION_MASK_ISEL
 	     | OPTION_MASK_ALTIVEC);
 
+  if ((flags & (POWER11_MASKS_SERVER & ~ISA_3_1_MASKS_SERVER)) != 0)
+    return "power11";
   if ((flags & (ISA_3_1_MASKS_SERVER & ~ISA_3_0_MASKS_SERVER)) != 0)
     return "power10";
   if ((flags & (ISA_3_0_MASKS_SERVER & ~ISA_2_7_MASKS_SERVER)) != 0)
@@ -10132,6 +10138,7 @@ rs6000_reassociation_width (unsigned int opc ATTRIBUTE_UNUSED,
     case PROCESSOR_POWER8:
     case PROCESSOR_POWER9:
     case PROCESSOR_POWER10:
+    case PROCESSOR_POWER11:
       if (DECIMAL_FLOAT_MODE_P (mode))
 	return 1;
       if (VECTOR_MODE_P (mode))
@@ -18213,7 +18220,8 @@ rs6000_adjust_cost (rtx_insn *insn, int dep_type, rtx_insn *dep_insn, int cost,
 
 	/* Separate a load from a narrower, dependent store.  */
 	if ((rs6000_sched_groups || rs6000_tune == PROCESSOR_POWER9
-	     || rs6000_tune == PROCESSOR_POWER10)
+	     || rs6000_tune == PROCESSOR_POWER10
+	     || rs6000_tune == PROCESSOR_POWER11)
 	    && GET_CODE (PATTERN (insn)) == SET
 	    && GET_CODE (PATTERN (dep_insn)) == SET
 	    && MEM_P (XEXP (PATTERN (insn), 1))
@@ -18252,6 +18260,7 @@ rs6000_adjust_cost (rtx_insn *insn, int dep_type, rtx_insn *dep_insn, int cost,
 		 || rs6000_tune == PROCESSOR_POWER8
 		 || rs6000_tune == PROCESSOR_POWER9
 		 || rs6000_tune == PROCESSOR_POWER10
+		 || rs6000_tune == PROCESSOR_POWER11
                  || rs6000_tune == PROCESSOR_CELL)
                 && recog_memoized (dep_insn)
                 && (INSN_CODE (dep_insn) >= 0))
@@ -18826,6 +18835,7 @@ rs6000_issue_rate (void)
   case PROCESSOR_POWER9:
     return 6;
   case PROCESSOR_POWER10:
+  case PROCESSOR_POWER11:
     return 8;
   default:
     return 1;
@@ -19541,8 +19551,10 @@ rs6000_sched_reorder (FILE *dump ATTRIBUTE_UNUSED, int sched_verbose,
   if (rs6000_tune == PROCESSOR_POWER6)
     load_store_pendulum = 0;
 
-  /* Do Power10 dependent reordering.  */
-  if (rs6000_tune == PROCESSOR_POWER10 && last_scheduled_insn)
+  /* Do Power10/Power11 dependent reordering.  */
+  if (last_scheduled_insn
+      && (rs6000_tune == PROCESSOR_POWER10
+	  || rs6000_tune == PROCESSOR_POWER11))
     power10_sched_reorder (ready, n_ready - 1);
 
   return rs6000_issue_rate ();
@@ -19566,8 +19578,10 @@ rs6000_sched_reorder2 (FILE *dump, int sched_verbose, rtx_insn **ready,
       && recog_memoized (last_scheduled_insn) >= 0)
     return power9_sched_reorder2 (ready, *pn_ready - 1);
 
-  /* Do Power10 dependent reordering.  */
-  if (rs6000_tune == PROCESSOR_POWER10 && last_scheduled_insn)
+  /* Do Power10/Power11 dependent reordering.  */
+  if (last_scheduled_insn
+      && (rs6000_tune == PROCESSOR_POWER10
+	  || rs6000_tune == PROCESSOR_POWER11))
     return power10_sched_reorder (ready, *pn_ready - 1);
 
   return cached_can_issue_more;
@@ -22784,7 +22798,8 @@ rs6000_register_move_cost (machine_mode mode,
 		 allocation a move within the same class might turn
 		 out to be a nop.  */
 	      if (rs6000_tune == PROCESSOR_POWER9
-		  || rs6000_tune == PROCESSOR_POWER10)
+		  || rs6000_tune == PROCESSOR_POWER10
+		  || rs6000_tune == PROCESSOR_POWER11)
 		ret = 3 * hard_regno_nregs (FIRST_GPR_REGNO, mode);
 	      else
 		ret = 4 * hard_regno_nregs (FIRST_GPR_REGNO, mode);
@@ -24443,6 +24458,7 @@ static struct rs6000_opt_mask const rs6000_opt_masks[] =
   { "float128-hardware",	OPTION_MASK_FLOAT128_HW,	false, true  },
   { "fprnd",			OPTION_MASK_FPRND,		false, true  },
   { "power10",			OPTION_MASK_POWER10,		false, true  },
+  { "power11",			OPTION_MASK_POWER11,		false, false },
   { "hard-dfp",			OPTION_MASK_DFP,		false, true  },
   { "htm",			OPTION_MASK_HTM,		false, true  },
   { "isel",			OPTION_MASK_ISEL,		false, true  },
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 2cde2e329b0..197922fbb84 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -106,6 +106,7 @@
    you make changes here, make them also there.  */
 #define ASM_CPU_SPEC \
 "%{mcpu=native: %(asm_cpu_native); \
+  mcpu=power11: -mpower11; \
   mcpu=power10: -mpower10; \
   mcpu=power9: -mpower9; \
   mcpu=power8|mcpu=powerpc64le: -mpower8; \
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 39c75af5c87..74b87f926d7 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -350,7 +350,7 @@
    ppc750,ppc7400,ppc7450,
    ppc403,ppc405,ppc440,ppc476,
    ppc8540,ppc8548,ppce300c2,ppce300c3,ppce500mc,ppce500mc64,ppce5500,ppce6500,
-   power4,power5,power6,power7,power8,power9,power10,
+   power4,power5,power6,power7,power8,power9,power10,power11,
    rs64a,mpccore,cell,ppca2,titan"
   (const (symbol_ref "(enum attr_cpu) rs6000_tune")))
 
diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
index e8ca70340df..94323bd1db2 100644
--- a/gcc/config/rs6000/rs6000.opt
+++ b/gcc/config/rs6000/rs6000.opt
@@ -585,6 +585,12 @@ Target Undocumented Var(rs6000_speculate_indirect_jumps) Init(1) Save
 mpower10
 Target Undocumented Mask(POWER10) Var(rs6000_isa_flags) WarnRemoved
 
+;; Users should not use -mpower11, but we need to use a bit to identify when
+;; the user changes the default cpu via  #pragma GCC target("cpu=power11")
+;; and then resets it later.
+mpower11
+Target Undocumented Mask(POWER11) Var(rs6000_isa_flags) WarnRemoved
+
 mprefixed
 Target Mask(PREFIXED) Var(rs6000_isa_flags)
 Generate (do not generate) prefixed memory instructions.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f82f7d2817b..80476bcf37a 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -31321,7 +31321,7 @@ Supported values for @var{cpu_type} are @samp{401}, @samp{403},
 @samp{e6500}, @samp{ec603e}, @samp{G3}, @samp{G4}, @samp{G5},
 @samp{titan}, @samp{power3}, @samp{power4}, @samp{power5}, @samp{power5+},
 @samp{power6}, @samp{power6x}, @samp{power7}, @samp{power8},
-@samp{power9}, @samp{power10}, @samp{powerpc}, @samp{powerpc64},
+@samp{power9}, @samp{power10}, @samp{power11}, @samp{powerpc}, @samp{powerpc64},
 @samp{powerpc64le}, @samp{rs64}, and @samp{native}.
 
 @option{-mcpu=powerpc}, @option{-mcpu=powerpc64}, and
diff --git a/gcc/testsuite/gcc.target/powerpc/power11-1.c b/gcc/testsuite/gcc.target/powerpc/power11-1.c
new file mode 100644
index 00000000000..029a59639b1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/power11-1.c
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-options "-mdejagnu-cpu=power11 -O2" } */
+
+/* Basic check to see if the compiler supports -mcpu=power11 and if it defines
+   _ARCH_PWR11.  */
+
+#ifndef _ARCH_PWR11
+#error "-mcpu=power11 is not supported"
+#endif
+
+void foo (void)
+{
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/power11-2.c b/gcc/testsuite/gcc.target/powerpc/power11-2.c
new file mode 100644
index 00000000000..e3438e35015
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/power11-2.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+/* Check if we can set the power11 target via a target attribute.  */
+
+__attribute__((__target__("cpu=power9")))
+void foo_p9 (void)
+{
+}
+
+__attribute__((__target__("cpu=power10")))
+void foo_p10 (void)
+{
+}
+
+__attribute__((__target__("cpu=power11")))
+void foo_p11 (void)
+{
+}
diff --git a/gcc/testsuite/gcc.target/powerpc/power11-3.c b/gcc/testsuite/gcc.target/powerpc/power11-3.c
new file mode 100644
index 00000000000..fa1aedd0429
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/power11-3.c
@@ -0,0 +1,9 @@
+/* { dg-do compile }  */
+/* { dg-options "-mdejagnu-cpu=power8 -O2" }  */
+
+/* Check if we can set the power11 target via a target_clones attribute.  */
+
+__attribute__((__target_clones__("cpu=power11,cpu=power9,default")))
+void foo (void)
+{
+}

commit 5a63e19fd405acaada2792492353d9979f9e24a8
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Aug 14 00:22:22 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dbe6692b511..0670abecce5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,36 @@
+2024-08-13  Michael Meissner  <meissner@linux.ibm.com>
+
+	* config.gcc (powerpc*-*-*): Add support for power11.
+	* config/rs6000/aix71.h (ASM_CPU_SPEC): Add support for -mcpu=power11.
+	* config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
+	* config/rs6000/aix73.h (ASM_CPU_SPEC): Likewise.
+	* config/rs6000/driver-rs6000.cc (asm_names): Likewise.
+	* config/rs6000/ppc-auxv.h (PPC_PLATFORM_POWER11): New define.
+	* config/rs6000/rs6000-builtin.cc (cpu_is_info): Add power11.
+	* config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
+	_ARCH_PWR11 if -mcpu=power11.
+	* config/rs6000/rs6000-cpus.def (POWER11_MASKS_SERVER): New define.
+	(POWERPC_MASKS): Add power11.
+	(power11 cpu): Add power11 definition.
+	* config/rs6000/rs6000-opts.h (PROCESSOR_POWER11): Add power11 processor.
+	* config/rs6000/rs6000-string.cc (expand_compare_loop): Likewise.
+	* config/rs6000/rs6000-tables.opt: Regenerate.
+	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Add power11
+	support.
+	(rs6000_machine_from_flags): Likewise.
+	(rs6000_reassociation_width): Likewise.
+	(rs6000_adjust_cost): Likewise.
+	(rs6000_issue_rate): Likewise.
+	(rs6000_sched_reorder): Likewise.
+	(rs6000_sched_reorder2): Likewise.
+	(rs6000_register_move_cost): Likewise.
+	(rs6000_opt_masks): Likewise.
+	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Likewise.
+	* config/rs6000/rs6000.md (cpu attribute): Add power11.
+	* config/rs6000/rs6000.opt (-mpower11): Add internal power11 flag.
+	* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=power11.
+	* config/rs6000/power10.md (all reservations): Add power11 support.
+
 2024-08-09  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e2b84f6ebd8..94834f4f423 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240813
+20240814
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f19069a762d..040710439e7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2024-08-13  Michael Meissner  <meissner@linux.ibm.com>
+
+	* gcc.target/powerpc/power11-1.c: New test.
+	* gcc.target/powerpc/power11-2.c: Likewise.
+	* gcc.target/powerpc/power11-3.c: Likewise.
+
 2024-08-09  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:

commit e903ada5e8881acec734eb3f89c3644bbd8da7e9
Author: Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
Date:   Wed Aug 14 20:12:35 2024 +0200

    s390: Fix high-level builtins vec_gfmsum{,_accum}_128
    
    Starting with r14-9449-g9f2b16ce1efef0 builtins were streamlined with
    those in LLVM.  In particular s390_vgfm{,a}g have been changed from
    UV16QI to UINT128 in order to match those in LLVM.  However, these
    low-level builtins are directly used by the high-level builtins
    vec_gfmsum{,_accum}_128 which expect UV16QI instead.  Therefore,
    introduce new low-level builtins s390_vgfm{,a}g_128 and make use of
    them, respectively.
    
    gcc/ChangeLog:
    
            * config/s390/s390-builtin-types.def (BT_FN_UV16QI_UV2DI_UV2DI):
            New.
            (BT_FN_UV16QI_UV2DI_UV2DI_UV16QI): New.
            * config/s390/s390-builtins.def (s390_vgfmg_128): New.
            (s390_vgfmag_128): New.
            * config/s390/vecintrin.h (vec_gfmsum_128): Use s390_vgfmg_128.
            (vec_gfmsum_accum_128): Use s390_vgfmag_128.
    
    (cherry picked from commit e8a7142a697c5d2673adea33ba23af82a89c9559)

diff --git a/gcc/config/s390/s390-builtin-types.def b/gcc/config/s390/s390-builtin-types.def
index d70eaade8ea..e6f5631ed7a 100644
--- a/gcc/config/s390/s390-builtin-types.def
+++ b/gcc/config/s390/s390-builtin-types.def
@@ -221,6 +221,7 @@ DEF_FN_TYPE_2 (BT_FN_UV16QI_UCHAR_UCHAR, BT_UV16QI, BT_UCHAR, BT_UCHAR)
 DEF_FN_TYPE_2 (BT_FN_UV16QI_UV16QI_INTPTR, BT_UV16QI, BT_UV16QI, BT_INTPTR)
 DEF_FN_TYPE_2 (BT_FN_UV16QI_UV16QI_UCHAR, BT_UV16QI, BT_UV16QI, BT_UCHAR)
 DEF_FN_TYPE_2 (BT_FN_UV16QI_UV16QI_UV16QI, BT_UV16QI, BT_UV16QI, BT_UV16QI)
+DEF_FN_TYPE_2 (BT_FN_UV16QI_UV2DI_UV2DI, BT_UV16QI, BT_UV2DI, BT_UV2DI)
 DEF_FN_TYPE_2 (BT_FN_UV16QI_UV8HI_UV8HI, BT_UV16QI, BT_UV8HI, BT_UV8HI)
 DEF_FN_TYPE_2 (BT_FN_UV2DI_UCHAR_UCHAR, BT_UV2DI, BT_UCHAR, BT_UCHAR)
 DEF_FN_TYPE_2 (BT_FN_UV2DI_ULONGLONG_INT, BT_UV2DI, BT_ULONGLONG, BT_INT)
@@ -299,6 +300,7 @@ DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UCHAR_INT, BT_UV16QI, BT_UV16QI, BT_UCHAR, BT
 DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UV16QI_INT, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INT)
 DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UV16QI_INTPTR, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_INTPTR)
 DEF_FN_TYPE_3 (BT_FN_UV16QI_UV16QI_UV16QI_UV16QI, BT_UV16QI, BT_UV16QI, BT_UV16QI, BT_UV16QI)
+DEF_FN_TYPE_3 (BT_FN_UV16QI_UV2DI_UV2DI_UV16QI, BT_UV16QI, BT_UV2DI, BT_UV2DI, BT_UV16QI)
 DEF_FN_TYPE_3 (BT_FN_UV16QI_UV8HI_UV8HI_INTPTR, BT_UV16QI, BT_UV8HI, BT_UV8HI, BT_INTPTR)
 DEF_FN_TYPE_3 (BT_FN_UV2DI_UV2DI_ULONGLONG_INT, BT_UV2DI, BT_UV2DI, BT_ULONGLONG, BT_INT)
 DEF_FN_TYPE_3 (BT_FN_UV2DI_UV2DI_UV2DI_INT, BT_UV2DI, BT_UV2DI, BT_UV2DI, BT_INT)
diff --git a/gcc/config/s390/s390-builtins.def b/gcc/config/s390/s390-builtins.def
index 3a63213e571..7f6190fa810 100644
--- a/gcc/config/s390/s390-builtins.def
+++ b/gcc/config/s390/s390-builtins.def
@@ -1666,6 +1666,7 @@ B_DEF      (s390_vgfmb,                 vec_gfmsumv16qi,    0,
 B_DEF      (s390_vgfmh,                 vec_gfmsumv8hi,     0,                  B_VX,               0,                  BT_FN_UV4SI_UV8HI_UV8HI)
 B_DEF      (s390_vgfmf,                 vec_gfmsumv4si,     0,                  B_VX,               0,                  BT_FN_UV2DI_UV4SI_UV4SI)
 B_DEF      (s390_vgfmg,                 vec_gfmsum_128,     0,                  B_VX,               0,                  BT_FN_UINT128_UV2DI_UV2DI)
+B_DEF      (s390_vgfmg_128,             vec_gfmsum_128,     0,                  B_VX,               0,                  BT_FN_UV16QI_UV2DI_UV2DI)
 
 OB_DEF     (s390_vec_gfmsum_accum,      s390_vec_gfmsum_accum_u8,s390_vec_gfmsum_accum_u32,B_VX,    BT_FN_OV4SI_OV4SI_OV4SI_OV4SI)
 OB_DEF_VAR (s390_vec_gfmsum_accum_u8,   s390_vgfmab,        0,                  0,                  BT_OV_UV8HI_UV16QI_UV16QI_UV8HI)
@@ -1676,6 +1677,7 @@ B_DEF      (s390_vgfmab,                vec_gfmsum_accumv16qi,0,
 B_DEF      (s390_vgfmah,                vec_gfmsum_accumv8hi,0,                 B_VX,               0,                  BT_FN_UV4SI_UV8HI_UV8HI_UV4SI)
 B_DEF      (s390_vgfmaf,                vec_gfmsum_accumv4si,0,                 B_VX,               0,                  BT_FN_UV2DI_UV4SI_UV4SI_UV2DI)
 B_DEF      (s390_vgfmag,                vec_gfmsum_accum_128,0,                 B_VX,               0,                  BT_FN_UINT128_UV2DI_UV2DI_UINT128)
+B_DEF      (s390_vgfmag_128,            vec_gfmsum_accum_128,0,                 B_VX,               0,                  BT_FN_UV16QI_UV2DI_UV2DI_UV16QI)
 
 OB_DEF     (s390_vec_abs,               s390_vec_abs_s8,    s390_vec_abs_dbl,   B_VX,               BT_FN_OV4SI_OV4SI)
 OB_DEF_VAR (s390_vec_abs_s8,            s390_vlpb,          0,                  0,                  BT_OV_V16QI_V16QI)
diff --git a/gcc/config/s390/vecintrin.h b/gcc/config/s390/vecintrin.h
index 9abbd761067..daeed91ef97 100644
--- a/gcc/config/s390/vecintrin.h
+++ b/gcc/config/s390/vecintrin.h
@@ -98,8 +98,8 @@ __lcbb(const void *ptr, int bndry)
 #define vec_splat_u64 __builtin_s390_vec_splat_u64
 #define vec_splat_s64 __builtin_s390_vec_splat_s64
 #define vec_checksum __builtin_s390_vcksm
-#define vec_gfmsum_128 __builtin_s390_vgfmg
-#define vec_gfmsum_accum_128 __builtin_s390_vgfmag
+#define vec_gfmsum_128 __builtin_s390_vgfmg_128
+#define vec_gfmsum_accum_128 __builtin_s390_vgfmag_128
 #define vec_ceil(X)   __builtin_s390_vfi((X), 4, 6)
 #define vec_roundp(X) __builtin_s390_vfi((X), 4, 6)
 #define vec_floor(X)  __builtin_s390_vfi((X), 4, 7)

commit 726898510b02ffd8262539afd01d6b3600200596
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Aug 15 00:26:05 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0670abecce5..449384cd6e0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,16 @@
+2024-08-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	Backported from master:
+	2024-08-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	* config/s390/s390-builtin-types.def (BT_FN_UV16QI_UV2DI_UV2DI):
+	New.
+	(BT_FN_UV16QI_UV2DI_UV2DI_UV16QI): New.
+	* config/s390/s390-builtins.def (s390_vgfmg_128): New.
+	(s390_vgfmag_128): New.
+	* config/s390/vecintrin.h (vec_gfmsum_128): Use s390_vgfmg_128.
+	(vec_gfmsum_accum_128): Use s390_vgfmag_128.
+
 2024-08-13  Michael Meissner  <meissner@linux.ibm.com>
 
 	* config.gcc (powerpc*-*-*): Add support for power11.
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 94834f4f423..2ea444e25fe 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240814
+20240815

commit 8c98f0601f7f0d8051eda47370939198f4e01fc4
Author: Pan Li <pan2.li@intel.com>
Date:   Thu May 9 10:56:46 2024 +0800

    RISC-V: Make full-vec-move1.c test robust for optimization
    
    During investigate the support of early break autovec, we notice
    the test full-vec-move1.c will be optimized to 'return 0;' in main
    function body.  Because somehow the value of V type is compiler
    time constant,  and then the second loop will be considered as
    assert (true).
    
    Thus,  the ccp4 pass will eliminate these stmt and just return 0.
    
    typedef int16_t V __attribute__((vector_size (128)));
    
    int main ()
    {
      V v;
      for (int i = 0; i < sizeof (v) / sizeof (v[0]); i++)
        (v)[i] = i;
    
      V res = v;
      for (int i = 0; i < sizeof (v) / sizeof (v[0]); i++)
        assert (res[i] == i); // will be optimized to assert (true)
    }
    
    This patch would like to introduce a extern function to use the res[i]
    that get rid of the ccp4 optimization.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c:
            Introduce extern func use to get rid of ccp4 optimization.
    
    Signed-off-by: Pan Li <pan2.li@intel.com>
    (cherry picked from commit b1520d2260c5e0cfcd7a4354fab70f66e2912ff2)

diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c
index d73bad4af6f..fae2ae91572 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c
@@ -2,11 +2,12 @@
 /* { dg-additional-options "-std=c99 -O3 -march=rv64gcv_zvl128b -mabi=lp64d -fno-vect-cost-model -mrvv-vector-bits=zvl" } */
 
 #include <stdint-gcc.h>
-#include <assert.h>
 
 /* This would cause us to emit a vl1r.v for VNx4HImode even when
    the hardware vector size vl > 64.  */
 
+extern int16_t test_element (int16_t);
+
 typedef int16_t V __attribute__((vector_size (128)));
 
 int main ()
@@ -14,9 +15,10 @@ int main ()
   V v;
   for (int i = 0; i < sizeof (v) / sizeof (v[0]); i++)
     (v)[i] = i;
+
   V res = v;
   for (int i = 0; i < sizeof (v) / sizeof (v[0]); i++)
-    assert (res[i] == i);
+    test_element (res[i]);
 }
 
 /* { dg-final { scan-assembler-not {vl[1248]r.v} } }  */

commit d9bd361d893d3b62797f2962bca1b8d56521f3c3
Author: Craig Blackmore <craig.blackmore@embecosm.com>
Date:   Sat Jun 22 22:07:06 2024 -0600

    [PATCH] RISC-V: Fix unresolved mcpu-[67].c tests
    
    These tests check the sched2 dump, so skip them for optimization levels
    that do not enable sched2.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/riscv/mcpu-6.c: Skip for -O0, -O1, -Og.
            * gcc.target/riscv/mcpu-7.c: Likewise.
    
    (cherry picked from commit 77f3b3419d476e90a2b82dff2204466aba3b9c2c)

diff --git a/gcc/testsuite/gcc.target/riscv/mcpu-6.c b/gcc/testsuite/gcc.target/riscv/mcpu-6.c
index 96faa01653e..0126011939f 100644
--- a/gcc/testsuite/gcc.target/riscv/mcpu-6.c
+++ b/gcc/testsuite/gcc.target/riscv/mcpu-6.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */
 /* Verify -mtune has higher priority than -mcpu for pipeline model .  */
 /* { dg-options "-mcpu=sifive-u74 -mtune=rocket -fdump-rtl-sched2-details -march=rv32i -mabi=ilp32" } */
 /* { dg-final { scan-rtl-dump "simple_return\[ \]+:alu" "sched2" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/mcpu-7.c b/gcc/testsuite/gcc.target/riscv/mcpu-7.c
index 6832323e529..656436343bd 100644
--- a/gcc/testsuite/gcc.target/riscv/mcpu-7.c
+++ b/gcc/testsuite/gcc.target/riscv/mcpu-7.c
@@ -1,4 +1,5 @@
 /* { dg-do compile } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" } } */
 /* Verify -mtune has higher priority than -mcpu for pipeline model .  */
 /* { dg-options "-mcpu=sifive-s21 -mtune=sifive-u74 -fdump-rtl-sched2-details -march=rv32i -mabi=ilp32" } */
 /* { dg-final { scan-rtl-dump "simple_return\[ \]+:sifive_7_B" "sched2" } } */

commit 63c51e09d160a44fdce1199e8efe9d293f773a2c
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Aug 15 10:20:18 2024 -0400

    c++/coroutines: fix passing *this to promise type, again [PR116327]
    
    In r15-2210 we got rid of the unnecessary cast to lvalue reference when
    passing *this to the promise type ctor, and as a drive-by change we also
    simplified the code to use cp_build_fold_indirect_ref.
    
    But it turns out cp_build_fold_indirect_ref does too much here, namely
    it has a shortcut for returning current_class_ref if the operand is
    current_class_ptr.  The problem with that shortcut is current_class_ref
    might have gotten clobbered earlier if it appeared in the function body,
    since rewrite_param_uses walks and rewrites in-place all local variable
    uses to their corresponding frame copy.
    
    So later cp_build_fold_indirect_ref for *this will instead return the
    clobbered current_class_ref i.e. *frame_ptr->this, which doesn't make
    sense here since we're in the ramp function and not the actor function
    where frame_ptr is in scope.
    
    This patch fixes this by using the build_fold_indirect_ref instead of
    cp_build_fold_indirect_ref.
    
            PR c++/116327
            PR c++/104981
            PR c++/115550
    
    gcc/cp/ChangeLog:
    
            * coroutines.cc (morph_fn_to_coro): Use build_fold_indirect_ref
            instead of cp_build_fold_indirect_ref.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/coroutines/pr104981-preview-this.C: Improve coverage by
            adding a non-static data member use within the coroutine member
            function.
            * g++.dg/coroutines/pr116327-preview-this.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 303bed670af962c01b77a4f0c51de97f70e8167e)

diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc
index 71e64960c5a..f5cfc80ca39 100644
--- a/gcc/cp/coroutines.cc
+++ b/gcc/cp/coroutines.cc
@@ -4618,7 +4618,9 @@ morph_fn_to_coro (tree orig, tree *resumer, tree *destroyer)
 	  if (parm_i->this_ptr || parm_i->lambda_cobj)
 	    {
 	      /* We pass a reference to *this to the allocator lookup.  */
-	      tree this_ref = cp_build_fold_indirect_ref (arg);
+	      /* It's unsafe to use the cp_ version here since current_class_ref
+		 might've gotten clobbered earlier during rewrite_param_uses.  */
+	      tree this_ref = build_fold_indirect_ref (arg);
 	      vec_safe_push (args, this_ref);
 	    }
 	  else
@@ -4838,7 +4840,9 @@ morph_fn_to_coro (tree orig, tree *resumer, tree *destroyer)
 	  if (parm.this_ptr || parm.lambda_cobj)
 	    {
 	      /* We pass a reference to *this to the param preview.  */
-	      tree this_ref = cp_build_fold_indirect_ref (arg);
+	      /* It's unsafe to use the cp_ version here since current_class_ref
+		 might've gotten clobbered earlier during rewrite_param_uses.  */
+	      tree this_ref = build_fold_indirect_ref (arg);
 	      vec_safe_push (promise_args, this_ref);
 	    }
 	  else if (parm.rv_ref)
diff --git a/gcc/testsuite/g++.dg/coroutines/pr104981-preview-this.C b/gcc/testsuite/g++.dg/coroutines/pr104981-preview-this.C
index 81eb963db4a..9f1e3970ce3 100644
--- a/gcc/testsuite/g++.dg/coroutines/pr104981-preview-this.C
+++ b/gcc/testsuite/g++.dg/coroutines/pr104981-preview-this.C
@@ -23,8 +23,10 @@ struct PromiseType {
 };
 
 struct Derived : Base {
+  int m = 41;
   Result f() {
-   co_return 42;
+   ++m;
+   co_return m;
   }
 };
 
diff --git a/gcc/testsuite/g++.dg/coroutines/pr116327-preview-this.C b/gcc/testsuite/g++.dg/coroutines/pr116327-preview-this.C
new file mode 100644
index 00000000000..27b69a41392
--- /dev/null
+++ b/gcc/testsuite/g++.dg/coroutines/pr116327-preview-this.C
@@ -0,0 +1,22 @@
+// PR c++/116327 - ICE in coroutine with parameter preview on lambda with captures
+
+#include <coroutine>
+
+struct coroutine{
+  struct promise_type{
+    promise_type(const auto &...){}
+    std::suspend_never initial_suspend(){ return {}; }
+    std::suspend_always final_suspend()noexcept{ return {}; }
+    void unhandled_exception(){}
+    coroutine get_return_object(){ return {}; }
+    void return_value(int)noexcept{}
+  };
+};
+
+int main(){
+  auto f = [a=0](auto) -> coroutine {
+    co_return 2;
+  };
+  f(0);
+  return 0;
+}

commit ccca8dfba8afdbc2da2c00e273fbe4f16eee4521
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Aug 16 00:22:18 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 2ea444e25fe..c11f769cc2c 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240815
+20240816
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 46781e0fac0..3dd34cf4e81 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,14 @@
+2024-08-15  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-08-15  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116327
+	PR c++/104981
+	PR c++/115550
+	* coroutines.cc (morph_fn_to_coro): Use build_fold_indirect_ref
+	instead of cp_build_fold_indirect_ref.
+
 2024-08-06  Jason Merrill  <jason@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 040710439e7..de25ede2895 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,32 @@
+2024-08-15  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-08-15  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116327
+	PR c++/104981
+	PR c++/115550
+	* g++.dg/coroutines/pr104981-preview-this.C: Improve coverage by
+	adding a non-static data member use within the coroutine member
+	function.
+	* g++.dg/coroutines/pr116327-preview-this.C: New test.
+
+2024-08-15  Craig Blackmore  <craig.blackmore@embecosm.com>
+
+	Backported from master:
+	2024-06-23  Craig Blackmore  <craig.blackmore@embecosm.com>
+
+	* gcc.target/riscv/mcpu-6.c: Skip for -O0, -O1, -Og.
+	* gcc.target/riscv/mcpu-7.c: Likewise.
+
+2024-08-15  Pan Li  <pan2.li@intel.com>
+
+	Backported from master:
+	2024-05-09  Pan Li  <pan2.li@intel.com>
+
+	* gcc.target/riscv/rvv/autovec/vls-vlmax/full-vec-move1.c:
+	Introduce extern func use to get rid of ccp4 optimization.
+
 2024-08-13  Michael Meissner  <meissner@linux.ibm.com>
 
 	* gcc.target/powerpc/power11-1.c: New test.

commit 4e7735a8d87559bbddfe3a985786996e22241f8d
Author: liuhongt <hongtao.liu@intel.com>
Date:   Mon Aug 12 14:35:31 2024 +0800

    Move ix86_align_loops into a separate pass and insert the pass after pass_endbr_and_patchable_area.
    
    gcc/ChangeLog:
    
            PR target/116174
            * config/i386/i386.cc (ix86_align_loops): Move this to ..
            * config/i386/i386-features.cc (ix86_align_loops): .. here.
            (class pass_align_tight_loops): New class.
            (make_pass_align_tight_loops): New function.
            * config/i386/i386-passes.def: Insert pass_align_tight_loops
            after pass_insert_endbr_and_patchable_area.
            * config/i386/i386-protos.h (make_pass_align_tight_loops): New
            declare.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr116174.c: New test.
    
    (cherry picked from commit c3c83d22d212a35cb1bfb8727477819463f0dcd8)

diff --git a/gcc/config/i386/i386-features.cc b/gcc/config/i386/i386-features.cc
index e3e004d5526..7de19d42363 100644
--- a/gcc/config/i386/i386-features.cc
+++ b/gcc/config/i386/i386-features.cc
@@ -3253,6 +3253,197 @@ make_pass_remove_partial_avx_dependency (gcc::context *ctxt)
   return new pass_remove_partial_avx_dependency (ctxt);
 }
 
+/* When a hot loop can be fit into one cacheline,
+   force align the loop without considering the max skip.  */
+static void
+ix86_align_loops ()
+{
+  basic_block bb;
+
+  /* Don't do this when we don't know cache line size.  */
+  if (ix86_cost->prefetch_block == 0)
+    return;
+
+  loop_optimizer_init (AVOID_CFG_MODIFICATIONS);
+  profile_count count_threshold = cfun->cfg->count_max / param_align_threshold;
+  FOR_EACH_BB_FN (bb, cfun)
+    {
+      rtx_insn *label = BB_HEAD (bb);
+      bool has_fallthru = 0;
+      edge e;
+      edge_iterator ei;
+
+      if (!LABEL_P (label))
+	continue;
+
+      profile_count fallthru_count = profile_count::zero ();
+      profile_count branch_count = profile_count::zero ();
+
+      FOR_EACH_EDGE (e, ei, bb->preds)
+	{
+	  if (e->flags & EDGE_FALLTHRU)
+	    has_fallthru = 1, fallthru_count += e->count ();
+	  else
+	    branch_count += e->count ();
+	}
+
+      if (!fallthru_count.initialized_p () || !branch_count.initialized_p ())
+	continue;
+
+      if (bb->loop_father
+	  && bb->loop_father->latch != EXIT_BLOCK_PTR_FOR_FN (cfun)
+	  && (has_fallthru
+	      ? (!(single_succ_p (bb)
+		   && single_succ (bb) == EXIT_BLOCK_PTR_FOR_FN (cfun))
+		 && optimize_bb_for_speed_p (bb)
+		 && branch_count + fallthru_count > count_threshold
+		 && (branch_count > fallthru_count * param_align_loop_iterations))
+	      /* In case there'no fallthru for the loop.
+		 Nops inserted won't be executed.  */
+	      : (branch_count > count_threshold
+		 || (bb->count > bb->prev_bb->count * 10
+		     && (bb->prev_bb->count
+			 <= ENTRY_BLOCK_PTR_FOR_FN (cfun)->count / 2)))))
+	{
+	  rtx_insn* insn, *end_insn;
+	  HOST_WIDE_INT size = 0;
+	  bool padding_p = true;
+	  basic_block tbb = bb;
+	  unsigned cond_branch_num = 0;
+	  bool detect_tight_loop_p = false;
+
+	  for (unsigned int i = 0; i != bb->loop_father->num_nodes;
+	       i++, tbb = tbb->next_bb)
+	    {
+	      /* Only handle continuous cfg layout. */
+	      if (bb->loop_father != tbb->loop_father)
+		{
+		  padding_p = false;
+		  break;
+		}
+
+	      FOR_BB_INSNS (tbb, insn)
+		{
+		  if (!NONDEBUG_INSN_P (insn))
+		    continue;
+		  size += ix86_min_insn_size (insn);
+
+		  /* We don't know size of inline asm.
+		     Don't align loop for call.  */
+		  if (asm_noperands (PATTERN (insn)) >= 0
+		      || CALL_P (insn))
+		    {
+		      size = -1;
+		      break;
+		    }
+		}
+
+	      if (size == -1 || size > ix86_cost->prefetch_block)
+		{
+		  padding_p = false;
+		  break;
+		}
+
+	      FOR_EACH_EDGE (e, ei, tbb->succs)
+		{
+		  /* It could be part of the loop.  */
+		  if (e->dest == bb)
+		    {
+		      detect_tight_loop_p = true;
+		      break;
+		    }
+		}
+
+	      if (detect_tight_loop_p)
+		break;
+
+	      end_insn = BB_END (tbb);
+	      if (JUMP_P (end_insn))
+		{
+		  /* For decoded icache:
+		     1. Up to two branches are allowed per Way.
+		     2. A non-conditional branch is the last micro-op in a Way.
+		  */
+		  if (onlyjump_p (end_insn)
+		      && (any_uncondjump_p (end_insn)
+			  || single_succ_p (tbb)))
+		    {
+		      padding_p = false;
+		      break;
+		    }
+		  else if (++cond_branch_num >= 2)
+		    {
+		      padding_p = false;
+		      break;
+		    }
+		}
+
+	    }
+
+	  if (padding_p && detect_tight_loop_p)
+	    {
+	      emit_insn_before (gen_max_skip_align (GEN_INT (ceil_log2 (size)),
+						    GEN_INT (0)), label);
+	      /* End of function.  */
+	      if (!tbb || tbb == EXIT_BLOCK_PTR_FOR_FN (cfun))
+		break;
+	      /* Skip bb which already fits into one cacheline.  */
+	      bb = tbb;
+	    }
+	}
+    }
+
+  loop_optimizer_finalize ();
+  free_dominance_info (CDI_DOMINATORS);
+}
+
+namespace {
+
+const pass_data pass_data_align_tight_loops =
+{
+  RTL_PASS, /* type */
+  "align_tight_loops", /* name */
+  OPTGROUP_NONE, /* optinfo_flags */
+  TV_MACH_DEP, /* tv_id */
+  0, /* properties_required */
+  0, /* properties_provided */
+  0, /* properties_destroyed */
+  0, /* todo_flags_start */
+  0, /* todo_flags_finish */
+};
+
+class pass_align_tight_loops : public rtl_opt_pass
+{
+public:
+  pass_align_tight_loops (gcc::context *ctxt)
+    : rtl_opt_pass (pass_data_align_tight_loops, ctxt)
+  {}
+
+  /* opt_pass methods: */
+  bool gate (function *) final override
+    {
+      return optimize && optimize_function_for_speed_p (cfun);
+    }
+
+  unsigned int execute (function *) final override
+    {
+      timevar_push (TV_MACH_DEP);
+#ifdef ASM_OUTPUT_MAX_SKIP_ALIGN
+      ix86_align_loops ();
+#endif
+      timevar_pop (TV_MACH_DEP);
+      return 0;
+    }
+}; // class pass_align_tight_loops
+
+} // anon namespace
+
+rtl_opt_pass *
+make_pass_align_tight_loops (gcc::context *ctxt)
+{
+  return new pass_align_tight_loops (ctxt);
+}
+
 /* This compares the priority of target features in function DECL1
    and DECL2.  It returns positive value if DECL1 is higher priority,
    negative value if DECL2 is higher priority and 0 if they are the
diff --git a/gcc/config/i386/i386-passes.def b/gcc/config/i386/i386-passes.def
index 7d96766f7b9..e500f15c997 100644
--- a/gcc/config/i386/i386-passes.def
+++ b/gcc/config/i386/i386-passes.def
@@ -31,5 +31,8 @@ along with GCC; see the file COPYING3.  If not see
   INSERT_PASS_BEFORE (pass_cse2, 1, pass_stv, true /* timode_p */);
 
   INSERT_PASS_BEFORE (pass_shorten_branches, 1, pass_insert_endbr_and_patchable_area);
+  /* pass_align_tight_loops must be after pass_insert_endbr_and_patchable_area.
+     PR116174.  */
+  INSERT_PASS_BEFORE (pass_shorten_branches, 1, pass_align_tight_loops);
 
   INSERT_PASS_AFTER (pass_combine, 1, pass_remove_partial_avx_dependency);
diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h
index 46214a63974..36c7b1aed42 100644
--- a/gcc/config/i386/i386-protos.h
+++ b/gcc/config/i386/i386-protos.h
@@ -419,6 +419,7 @@ extern rtl_opt_pass *make_pass_insert_endbr_and_patchable_area
   (gcc::context *);
 extern rtl_opt_pass *make_pass_remove_partial_avx_dependency
   (gcc::context *);
+extern rtl_opt_pass *make_pass_align_tight_loops (gcc::context *);
 
 extern bool ix86_has_no_direct_extern_access;
 
diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 6f89891d3cb..288c69467d6 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -23444,150 +23444,6 @@ ix86_split_stlf_stall_load ()
     }
 }
 
-/* When a hot loop can be fit into one cacheline,
-   force align the loop without considering the max skip.  */
-static void
-ix86_align_loops ()
-{
-  basic_block bb;
-
-  /* Don't do this when we don't know cache line size.  */
-  if (ix86_cost->prefetch_block == 0)
-    return;
-
-  loop_optimizer_init (AVOID_CFG_MODIFICATIONS);
-  profile_count count_threshold = cfun->cfg->count_max / param_align_threshold;
-  FOR_EACH_BB_FN (bb, cfun)
-    {
-      rtx_insn *label = BB_HEAD (bb);
-      bool has_fallthru = 0;
-      edge e;
-      edge_iterator ei;
-
-      if (!LABEL_P (label))
-	continue;
-
-      profile_count fallthru_count = profile_count::zero ();
-      profile_count branch_count = profile_count::zero ();
-
-      FOR_EACH_EDGE (e, ei, bb->preds)
-	{
-	  if (e->flags & EDGE_FALLTHRU)
-	    has_fallthru = 1, fallthru_count += e->count ();
-	  else
-	    branch_count += e->count ();
-	}
-
-      if (!fallthru_count.initialized_p () || !branch_count.initialized_p ())
-	continue;
-
-      if (bb->loop_father
-	  && bb->loop_father->latch != EXIT_BLOCK_PTR_FOR_FN (cfun)
-	  && (has_fallthru
-	      ? (!(single_succ_p (bb)
-		   && single_succ (bb) == EXIT_BLOCK_PTR_FOR_FN (cfun))
-		 && optimize_bb_for_speed_p (bb)
-		 && branch_count + fallthru_count > count_threshold
-		 && (branch_count > fallthru_count * param_align_loop_iterations))
-	      /* In case there'no fallthru for the loop.
-		 Nops inserted won't be executed.  */
-	      : (branch_count > count_threshold
-		 || (bb->count > bb->prev_bb->count * 10
-		     && (bb->prev_bb->count
-			 <= ENTRY_BLOCK_PTR_FOR_FN (cfun)->count / 2)))))
-	{
-	  rtx_insn* insn, *end_insn;
-	  HOST_WIDE_INT size = 0;
-	  bool padding_p = true;
-	  basic_block tbb = bb;
-	  unsigned cond_branch_num = 0;
-	  bool detect_tight_loop_p = false;
-
-	  for (unsigned int i = 0; i != bb->loop_father->num_nodes;
-	       i++, tbb = tbb->next_bb)
-	    {
-	      /* Only handle continuous cfg layout. */
-	      if (bb->loop_father != tbb->loop_father)
-		{
-		  padding_p = false;
-		  break;
-		}
-
-	      FOR_BB_INSNS (tbb, insn)
-		{
-		  if (!NONDEBUG_INSN_P (insn))
-		    continue;
-		  size += ix86_min_insn_size (insn);
-
-		  /* We don't know size of inline asm.
-		     Don't align loop for call.  */
-		  if (asm_noperands (PATTERN (insn)) >= 0
-		      || CALL_P (insn))
-		    {
-		      size = -1;
-		      break;
-		    }
-		}
-
-	      if (size == -1 || size > ix86_cost->prefetch_block)
-		{
-		  padding_p = false;
-		  break;
-		}
-
-	      FOR_EACH_EDGE (e, ei, tbb->succs)
-		{
-		  /* It could be part of the loop.  */
-		  if (e->dest == bb)
-		    {
-		      detect_tight_loop_p = true;
-		      break;
-		    }
-		}
-
-	      if (detect_tight_loop_p)
-		break;
-
-	      end_insn = BB_END (tbb);
-	      if (JUMP_P (end_insn))
-		{
-		  /* For decoded icache:
-		     1. Up to two branches are allowed per Way.
-		     2. A non-conditional branch is the last micro-op in a Way.
-		  */
-		  if (onlyjump_p (end_insn)
-		      && (any_uncondjump_p (end_insn)
-			  || single_succ_p (tbb)))
-		    {
-		      padding_p = false;
-		      break;
-		    }
-		  else if (++cond_branch_num >= 2)
-		    {
-		      padding_p = false;
-		      break;
-		    }
-		}
-
-	    }
-
-	  if (padding_p && detect_tight_loop_p)
-	    {
-	      emit_insn_before (gen_max_skip_align (GEN_INT (ceil_log2 (size)),
-						    GEN_INT (0)), label);
-	      /* End of function.  */
-	      if (!tbb || tbb == EXIT_BLOCK_PTR_FOR_FN (cfun))
-		break;
-	      /* Skip bb which already fits into one cacheline.  */
-	      bb = tbb;
-	    }
-	}
-    }
-
-  loop_optimizer_finalize ();
-  free_dominance_info (CDI_DOMINATORS);
-}
-
 /* Implement machine specific optimizations.  We implement padding of returns
    for K8 CPUs and pass to avoid 4 jumps in the single 16 byte window.  */
 static void
@@ -23611,8 +23467,6 @@ ix86_reorg (void)
 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN
       if (TARGET_FOUR_JUMP_LIMIT)
 	ix86_avoid_jump_mispredicts ();
-
-      ix86_align_loops ();
 #endif
     }
 }
diff --git a/gcc/testsuite/gcc.target/i386/pr116174.c b/gcc/testsuite/gcc.target/i386/pr116174.c
new file mode 100644
index 00000000000..8877d0b51af
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr116174.c
@@ -0,0 +1,12 @@
+/* { dg-do compile { target *-*-linux* } } */
+/* { dg-options "-O2 -fcf-protection=branch" } */
+
+char *
+foo (char *dest, const char *src)
+{
+  while ((*dest++ = *src++) != '\0')
+    /* nothing */;
+  return --dest;
+}
+
+/* { dg-final { scan-assembler "\t\.cfi_startproc\n\tendbr(32|64)\n" } } */

commit 32b21292adb6ad6b5e1d60d923a773e4d0daca7b
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Fri Aug 16 07:53:01 2024 +0100

    aarch64: Fix invalid nested subregs [PR115464]
    
    The testcase extracts one arm_neon.h vector from a pair (one subreg)
    and then reinterprets the result as an SVE vector (another subreg).
    Each subreg makes sense individually, but we can't fold them together
    into a single subreg: it's 32 bytes -> 16 bytes -> 16*N bytes,
    but the interpretation of 32 bytes -> 16*N bytes depends on
    whether N==1 or N>1.
    
    Since the second subreg makes sense individually, simplify_subreg
    should bail out rather than ICE on it.  simplify_gen_subreg will
    then do the same (because it already checks validate_subreg).
    This leaves simplify_gen_subreg returning null, requiring the
    caller to take appropriate action.
    
    I think this is relatively likely to occur elsewhere, so the patch
    adds a helper for forcing a subreg, allowing a temporary pseudo to
    be created where necessary.
    
    I'll follow up by using force_subreg in more places.  This patch
    is intended to be a minimal backportable fix for the PR.
    
    gcc/
            PR target/115464
            * simplify-rtx.cc (simplify_context::simplify_subreg): Don't try
            to fold two subregs together if their relationship isn't known
            at compile time.
            * explow.h (force_subreg): Declare.
            * explow.cc (force_subreg): New function.
            * config/aarch64/aarch64-sve-builtins-base.cc
            (svset_neonq_impl::expand): Use it instead of simplify_gen_subreg.
    
    gcc/testsuite/
            PR target/115464
            * gcc.target/aarch64/sve/acle/general/pr115464.c: New test.
    
    (cherry picked from commit 0970ff46ba6330fc80e8736fc05b2eaeeae0b6a0)

diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
index 0d2edf3f19e..c9182594bc1 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
@@ -1174,7 +1174,7 @@ public:
        Advanced SIMD argument as an SVE vector.  */
     if (!BYTES_BIG_ENDIAN
 	&& is_undef (CALL_EXPR_ARG (e.call_expr, 0)))
-      return simplify_gen_subreg (mode, e.args[1], GET_MODE (e.args[1]), 0);
+      return force_subreg (mode, e.args[1], GET_MODE (e.args[1]), 0);
 
     rtx_vector_builder builder (VNx16BImode, 16, 2);
     for (unsigned int i = 0; i < 16; i++)
diff --git a/gcc/explow.cc b/gcc/explow.cc
index 8e5f6b8e680..f6843398c4b 100644
--- a/gcc/explow.cc
+++ b/gcc/explow.cc
@@ -745,6 +745,21 @@ force_reg (machine_mode mode, rtx x)
   return temp;
 }
 
+/* Like simplify_gen_subreg, but force OP into a new register if the
+   subreg cannot be formed directly.  */
+
+rtx
+force_subreg (machine_mode outermode, rtx op,
+	      machine_mode innermode, poly_uint64 byte)
+{
+  rtx x = simplify_gen_subreg (outermode, op, innermode, byte);
+  if (x)
+    return x;
+
+  op = copy_to_mode_reg (innermode, op);
+  return simplify_gen_subreg (outermode, op, innermode, byte);
+}
+
 /* If X is a memory ref, copy its contents to a new temp reg and return
    that reg.  Otherwise, return X.  */
 
diff --git a/gcc/explow.h b/gcc/explow.h
index 16aa02cfb68..cbd1fcb7eb3 100644
--- a/gcc/explow.h
+++ b/gcc/explow.h
@@ -42,6 +42,8 @@ extern rtx copy_to_suggested_reg (rtx, rtx, machine_mode);
    Args are mode (in case value is a constant) and the value.  */
 extern rtx force_reg (machine_mode, rtx);
 
+extern rtx force_subreg (machine_mode, rtx, machine_mode, poly_uint64);
+
 /* Return given rtx, copied into a new temp reg if it was in memory.  */
 extern rtx force_not_mem (rtx);
 
diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc
index dceaa13333c..729d408aa55 100644
--- a/gcc/simplify-rtx.cc
+++ b/gcc/simplify-rtx.cc
@@ -7612,6 +7612,11 @@ simplify_context::simplify_subreg (machine_mode outermode, rtx op,
       poly_uint64 innermostsize = GET_MODE_SIZE (innermostmode);
       rtx newx;
 
+      /* Make sure that the relationship between the two subregs is
+	 known at compile time.  */
+      if (!ordered_p (outersize, innermostsize))
+	return NULL_RTX;
+
       if (outermode == innermostmode
 	  && known_eq (byte, 0U)
 	  && known_eq (SUBREG_BYTE (op), 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c
new file mode 100644
index 00000000000..d728d1325ed
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464.c
@@ -0,0 +1,13 @@
+/* { dg-options "-O2" } */
+
+#include <arm_neon.h>
+#include <arm_sve.h>
+#include <arm_neon_sve_bridge.h>
+
+svuint16_t
+convolve4_4_x (uint16x8x2_t permute_tbl)
+{
+    return svset_neonq_u16 (svundef_u16 (), permute_tbl.val[1]);
+}
+
+/* { dg-final { scan-assembler {\tmov\tz0\.d, z1\.d\n} } } */

commit 86dacfb06b90371458d58872f461d358a0834305
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Fri Aug 16 07:53:02 2024 +0100

    aarch64: Add another use of force_subreg [PR115464]
    
    This patch includes the testcase from r15-1399 plus a miminal
    fix for it, without the other proactive uses of force_subreg.
    We can backport other force_subreg calls later if they're shown
    to be needed.
    
    gcc/
            PR target/115464
            * config/aarch64/aarch64-sve-builtins-base.cc
            (svset_neonq_impl::expand): Use force_subreg instead of
            lowpart_subreg.
    
    gcc/testsuite/
            PR target/115464
            * gcc.target/aarch64/sve/acle/general/pr115464_2.c: New test.

diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
index c9182594bc1..241a249503f 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
@@ -1185,7 +1185,9 @@ public:
     if (BYTES_BIG_ENDIAN)
       return e.use_exact_insn (code_for_aarch64_sve_set_neonq (mode));
     insn_code icode = code_for_vcond_mask (mode, mode);
-    e.args[1] = lowpart_subreg (mode, e.args[1], GET_MODE (e.args[1]));
+    e.args[1] = force_subreg (mode, e.args[1], GET_MODE (e.args[1]),
+			      subreg_lowpart_offset (mode,
+						     GET_MODE (e.args[1])));
     e.add_output_operand (icode);
     e.add_input_operand (icode, e.args[1]);
     e.add_input_operand (icode, e.args[0]);
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c
new file mode 100644
index 00000000000..f561c34f732
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr115464_2.c
@@ -0,0 +1,11 @@
+/* { dg-options "-O2" } */
+
+#include <arm_neon.h>
+#include <arm_sve.h>
+#include <arm_neon_sve_bridge.h>
+
+svuint16_t
+convolve4_4_x (uint16x8x2_t permute_tbl, svuint16_t a)
+{
+    return svset_neonq_u16 (a, permute_tbl.val[1]);
+}

commit 45a771d22e3090c42a4934a49da9924165e080af
Author: Lingling Kong <lingling.kong@intel.com>
Date:   Fri Aug 16 15:52:27 2024 +0800

    i386: Fix some vex insns that prohibit egpr
    
    Although these vex insn have evex counterpart, but when it
    uses the displayed vex prefix should not support APX EGPR.
    Like TARGET_AVXVNNI, TARGET_IFMA and TARGET_AVXNECONVERT.
    TARGET_AVXVNNIINT8 and TARGET_AVXVNNITINT16 also are vex
    insn should not support egpr.
    
    gcc/ChangeLog:
    
            * config/i386/sse.md (vpmadd52<vpmadd52type><mode>):
            Prohibit egpr for vex version.
            (vpdpbusd_<mode>): Ditto.
            (vpdpbusds_<mode>): Ditto.
            (vpdpwssd_<mode>): Ditto.
            (vpdpwssds_<mode>): Ditto.
            (*vcvtneps2bf16_v4sf): Ditto.
            (*vcvtneps2bf16_v8sf): Ditto.
            (vpdp<vpdotprodtype>_<mode>): Ditto.
            (vbcstnebf162ps_<mode>): Ditto.
            (vbcstnesh2ps_<mode>): Ditto.
            (vcvtnee<bf16_ph>2ps_<mode>): Ditto.
            (vcvtneo<bf16_ph>2ps_<mode>): Ditto.
            (vpdp<vpdpwprodtype>_<mode>): Ditto.

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 073aae293d4..1b6f7c1d6c5 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -29364,7 +29364,7 @@
 	(unspec:VI8_AVX2
 	  [(match_operand:VI8_AVX2 1 "register_operand" "0,0")
 	   (match_operand:VI8_AVX2 2 "register_operand" "x,v")
-	   (match_operand:VI8_AVX2 3 "nonimmediate_operand" "xm,vm")]
+	   (match_operand:VI8_AVX2 3 "nonimmediate_operand" "xjm,vm")]
 	  VPMADD52))]
   "TARGET_AVXIFMA || (TARGET_AVX512IFMA && TARGET_AVX512VL)"
   "@
@@ -29372,6 +29372,7 @@
   vpmadd52<vpmadd52type>\t{%3, %2, %0|%0, %2, %3}"
   [(set_attr "isa" "avxifma,avx512ifmavl")
    (set_attr "type" "ssemuladd")
+   (set_attr "addr" "gpr16,*")
    (set_attr "prefix" "vex,evex")
    (set_attr "mode" "<sseinsnmode>")])
 
@@ -29989,13 +29990,14 @@
 	(unspec:VI4_AVX2
 	  [(match_operand:VI4_AVX2 1 "register_operand" "0,0")
 	   (match_operand:VI4_AVX2 2 "register_operand" "x,v")
-	   (match_operand:VI4_AVX2 3 "nonimmediate_operand" "xm,vm")]
+	   (match_operand:VI4_AVX2 3 "nonimmediate_operand" "xjm,vm")]
 	  UNSPEC_VPDPBUSD))]
   "TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)"
   "@
   %{vex%} vpdpbusd\t{%3, %2, %0|%0, %2, %3}
   vpdpbusd\t{%3, %2, %0|%0, %2, %3}"
   [(set_attr ("prefix") ("vex,evex"))
+   (set_attr "addr" "gpr16,*")
    (set_attr ("isa") ("avxvnni,avx512vnnivl"))])
 
 (define_insn "vpdpbusd_<mode>_mask"
@@ -30057,13 +30059,14 @@
 	(unspec:VI4_AVX2
 	  [(match_operand:VI4_AVX2 1 "register_operand" "0,0")
 	   (match_operand:VI4_AVX2 2 "register_operand" "x,v")
-	   (match_operand:VI4_AVX2 3 "nonimmediate_operand" "xm,vm")]
+	   (match_operand:VI4_AVX2 3 "nonimmediate_operand" "xjm,vm")]
 	  UNSPEC_VPDPBUSDS))]
   "TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)"
   "@
    %{vex%} vpdpbusds\t{%3, %2, %0|%0, %2, %3}
    vpdpbusds\t{%3, %2, %0|%0, %2, %3}"
   [(set_attr ("prefix") ("vex,evex"))
+   (set_attr "addr" "gpr16,*")
    (set_attr ("isa") ("avxvnni,avx512vnnivl"))])
 
 (define_insn "vpdpbusds_<mode>_mask"
@@ -30125,13 +30128,14 @@
 	(unspec:VI4_AVX2
 	  [(match_operand:VI4_AVX2 1 "register_operand" "0,0")
 	   (match_operand:VI4_AVX2 2 "register_operand" "x,v")
-	   (match_operand:VI4_AVX2 3 "nonimmediate_operand" "xm,vm")]
+	   (match_operand:VI4_AVX2 3 "nonimmediate_operand" "xjm,vm")]
 	  UNSPEC_VPDPWSSD))]
   "TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)"
   "@
   %{vex%} vpdpwssd\t{%3, %2, %0|%0, %2, %3}
   vpdpwssd\t{%3, %2, %0|%0, %2, %3}"
   [(set_attr ("prefix") ("vex,evex"))
+   (set_attr "addr" "gpr16,*")
    (set_attr ("isa") ("avxvnni,avx512vnnivl"))])
 
 (define_insn "vpdpwssd_<mode>_mask"
@@ -30193,13 +30197,14 @@
 	(unspec:VI4_AVX2
 	  [(match_operand:VI4_AVX2 1 "register_operand" "0,0")
 	   (match_operand:VI4_AVX2 2 "register_operand" "x,v")
-	   (match_operand:VI4_AVX2 3 "nonimmediate_operand" "xm,vm")]
+	   (match_operand:VI4_AVX2 3 "nonimmediate_operand" "xjm,vm")]
 	  UNSPEC_VPDPWSSDS))]
   "TARGET_AVXVNNI || (TARGET_AVX512VNNI && TARGET_AVX512VL)"
   "@
   %{vex%} vpdpwssds\t{%3, %2, %0|%0, %2, %3}
   vpdpwssds\t{%3, %2, %0|%0, %2, %3}"
   [(set_attr ("prefix") ("vex,evex"))
+   (set_attr "addr" "gpr16,*")
    (set_attr ("isa") ("avxvnni,avx512vnnivl"))])
 
 (define_insn "vpdpwssds_<mode>_mask"
@@ -30417,13 +30422,14 @@
   [(set (match_operand:V8BF 0 "register_operand" "=x,v")
 	(vec_concat:V8BF
 	  (float_truncate:V4BF
-	    (match_operand:V4SF 1 "nonimmediate_operand" "xm,vm"))
+	    (match_operand:V4SF 1 "nonimmediate_operand" "xjm,vm"))
 	  (match_operand:V4BF 2 "const0_operand")))]
   "TARGET_AVXNECONVERT || (TARGET_AVX512BF16 && TARGET_AVX512VL)"
   "@
   %{vex%} vcvtneps2bf16{x}\t{%1, %0|%0, %1}
   vcvtneps2bf16{x}\t{%1, %0|%0, %1}"
   [(set_attr "isa" "avxneconvert,avx512bf16vl")
+   (set_attr "addr" "gpr16,*")
    (set_attr "prefix" "vex,evex")])
 
 (define_expand "avx512f_cvtneps2bf16_v4sf_maskz"
@@ -30481,12 +30487,13 @@
 (define_insn "vcvtneps2bf16_v8sf"
   [(set (match_operand:V8BF 0 "register_operand" "=x,v")
 	(float_truncate:V8BF
-	  (match_operand:V8SF 1 "nonimmediate_operand" "xm,vm")))]
+	  (match_operand:V8SF 1 "nonimmediate_operand" "xjm,vm")))]
   "TARGET_AVXNECONVERT || (TARGET_AVX512BF16 && TARGET_AVX512VL)"
   "@
   %{vex%} vcvtneps2bf16{y}\t{%1, %0|%0, %1}
   vcvtneps2bf16{y}\t{%1, %0|%0, %1}"
   [(set_attr "isa" "avxneconvert,avx512bf16vl")
+   (set_attr "addr" "gpr16,*")
    (set_attr "prefix" "vex,evex")])
 
 
@@ -30942,30 +30949,33 @@
 	(unspec:VI4_AVX
 	  [(match_operand:VI4_AVX 1 "register_operand" "0")
 	   (match_operand:VI4_AVX 2 "register_operand" "x")
-	   (match_operand:VI4_AVX 3 "nonimmediate_operand" "xm")]
+	   (match_operand:VI4_AVX 3 "nonimmediate_operand" "xjm")]
 	  VPDOTPROD))]
   "TARGET_AVXVNNIINT8"
   "vpdp<vpdotprodtype>\t{%3, %2, %0|%0, %2, %3}"
-   [(set_attr "prefix" "vex")])
+   [(set_attr "prefix" "vex")
+    (set_attr "addr" "gpr16")])
 
 (define_insn "vbcstnebf162ps_<mode>"
   [(set (match_operand:VF1_128_256 0 "register_operand" "=x")
 	(vec_duplicate:VF1_128_256
 	  (float_extend:SF
-	    (match_operand:BF 1 "memory_operand" "m"))))]
+	    (match_operand:BF 1 "memory_operand" "jm"))))]
   "TARGET_AVXNECONVERT"
   "vbcstnebf162ps\t{%1, %0|%0, %1}"
   [(set_attr "prefix" "vex")
+   (set_attr "addr" "gpr16")
    (set_attr "mode" "<sseinsnmode>")])
 
 (define_insn "vbcstnesh2ps_<mode>"
   [(set (match_operand:VF1_128_256 0 "register_operand" "=x")
 	(vec_duplicate:VF1_128_256
 	  (float_extend:SF
-	    (match_operand:HF 1 "memory_operand" "m"))))]
+	    (match_operand:HF 1 "memory_operand" "jm"))))]
   "TARGET_AVXNECONVERT"
   "vbcstnesh2ps\t{%1, %0|%0, %1}"
   [(set_attr "prefix" "vex")
+   (set_attr "addr" "gpr16")
    (set_attr "mode" "<sseinsnmode>")])
 
 (define_mode_attr bf16_ph
@@ -30976,19 +30986,20 @@
   [(set (match_operand:V4SF 0 "register_operand" "=x")
 	(float_extend:V4SF
 	  (vec_select:<ssehalfvecmode>
-	    (match_operand:VHFBF_128 1 "memory_operand" "m")
+	    (match_operand:VHFBF_128 1 "memory_operand" "jm")
 	    (parallel [(const_int 0) (const_int 2)
 		       (const_int 4) (const_int 6)]))))]
   "TARGET_AVXNECONVERT"
   "vcvtnee<bf16_ph>2ps\t{%1, %0|%0, %1}"
   [(set_attr "prefix" "vex")
+   (set_attr "addr" "gpr16")
    (set_attr "mode" "<sseinsnmode>")])
 
 (define_insn "vcvtnee<bf16_ph>2ps_<mode>"
   [(set (match_operand:V8SF 0 "register_operand" "=x")
 	(float_extend:V8SF
 	  (vec_select:<ssehalfvecmode>
-	    (match_operand:VHFBF_256 1 "memory_operand" "m")
+	    (match_operand:VHFBF_256 1 "memory_operand" "jm")
 	    (parallel [(const_int 0) (const_int 2)
 		       (const_int 4) (const_int 6)
 		       (const_int 8) (const_int 10)
@@ -30996,25 +31007,27 @@
   "TARGET_AVXNECONVERT"
   "vcvtnee<bf16_ph>2ps\t{%1, %0|%0, %1}"
   [(set_attr "prefix" "vex")
+   (set_attr "addr" "gpr16")
    (set_attr "mode" "<sseinsnmode>")])
 
 (define_insn "vcvtneo<bf16_ph>2ps_<mode>"
   [(set (match_operand:V4SF 0 "register_operand" "=x")
 	(float_extend:V4SF
 	  (vec_select:<ssehalfvecmode>
-	    (match_operand:VHFBF_128 1 "memory_operand" "m")
+	    (match_operand:VHFBF_128 1 "memory_operand" "jm")
 	    (parallel [(const_int 1) (const_int 3)
 		       (const_int 5) (const_int 7)]))))]
   "TARGET_AVXNECONVERT"
   "vcvtneo<bf16_ph>2ps\t{%1, %0|%0, %1}"
   [(set_attr "prefix" "vex")
+   (set_attr "addr" "gpr16")
    (set_attr "mode" "<sseinsnmode>")])
 
 (define_insn "vcvtneo<bf16_ph>2ps_<mode>"
   [(set (match_operand:V8SF 0 "register_operand" "=x")
 	(float_extend:V8SF
 	  (vec_select:<ssehalfvecmode>
-	    (match_operand:VHFBF_256 1 "memory_operand" "m")
+	    (match_operand:VHFBF_256 1 "memory_operand" "jm")
 	    (parallel [(const_int 1) (const_int 3)
 		       (const_int 5) (const_int 7)
 		       (const_int 9) (const_int 11)
@@ -31022,6 +31035,7 @@
   "TARGET_AVXNECONVERT"
   "vcvtneo<bf16_ph>2ps\t{%1, %0|%0, %1}"
   [(set_attr "prefix" "vex")
+   (set_attr "addr" "gpr16")
    (set_attr "mode" "<sseinsnmode>")])
 
 (define_int_iterator VPDPWPROD
@@ -31078,8 +31092,9 @@
 	(unspec:VI4_AVX
 	  [(match_operand:VI4_AVX 1 "register_operand" "0")
 	   (match_operand:VI4_AVX 2 "register_operand" "x")
-	   (match_operand:VI4_AVX 3 "nonimmediate_operand" "xm")]
+	   (match_operand:VI4_AVX 3 "nonimmediate_operand" "xjm")]
 	  VPDPWPROD))]
   "TARGET_AVXVNNIINT16"
   "vpdp<vpdpwprodtype>\t{%3, %2, %0|%0, %2, %3}"
-   [(set_attr "prefix" "vex")])
+   [(set_attr "prefix" "vex")
+    (set_attr "addr" "gpr16")])

commit 345d1452dca18cbf3a66e0a22089843d2076abd1
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Fri Aug 16 12:03:57 2024 +0200

    testsuite: Add -fwrapv to signbit-5.c
    
    On Cortex-M55 with MVE, the test case fails due to -INT_MAX being
    undefined. Adding -fwrapv solves the issues.
    
    Regtested on x86_64-pc-linux-gnu and arm-none-eabi for
    Cortex-M0/M3/M4/M7/M33/M55/M85/A7.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/signbit-5.c: Add -fwrapv and remove x86 exception.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    Co-authored-by: Yvan ROUX <yvan.roux@foss.st.com>
    (cherry picked from commit 5a3387938d4d95717cac29eecd0ba53e0ef9094d)

diff --git a/gcc/testsuite/gcc.dg/signbit-5.c b/gcc/testsuite/gcc.dg/signbit-5.c
index 1e1b237a0e0..2bca640f930 100644
--- a/gcc/testsuite/gcc.dg/signbit-5.c
+++ b/gcc/testsuite/gcc.dg/signbit-5.c
@@ -1,8 +1,7 @@
 /* { dg-do run } */
-/* { dg-options "-O3" } */
+/* { dg-options "-O3 -fwrapv" } */
 
 /* This test does not work when the truth type does not match vector type.  */
-/* { dg-additional-options "-mno-avx512f" { target { i?86-*-* x86_64-*-* } } } */
 /* { dg-additional-options "-march=armv8-a" { target aarch64_sve } } */
 /* { dg-xfail-run-if "truth type does not match vector type" { amdgcn-*-* } } */
 /* { dg-xfail-run-if "truth type does not match vector type" { riscv_v } } */

commit 5c1f687288ec89d9884186df8998c850b43a6a2d
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Fri Aug 16 16:10:01 2024 +0200

    testsuite: Add -fno-short-enums to pr97315-1.C
    
    The test case assumes that sizeof(tree_code) >= 2. On some targets, like
    Cortex-M on arm-none-eabi, -fshort-enums is enabled by default and in
    that case, sizeof(tree_code) will be 1 and the following warning is
    emitted:
    
    .../pr97315-1.C:8:13: warning: width of 'tree_base::code' exceeds its type
    
    Avoid the warning by forcing -fno-short-enums.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/opt/pr97315-1.C: Add -fno-short-enums.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 10bf0357750972e20dc702997f2930eab1c1be17)

diff --git a/gcc/testsuite/g++.dg/opt/pr97315-1.C b/gcc/testsuite/g++.dg/opt/pr97315-1.C
index 5a618d8e1e8..3e439c5f179 100644
--- a/gcc/testsuite/g++.dg/opt/pr97315-1.C
+++ b/gcc/testsuite/g++.dg/opt/pr97315-1.C
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O3 -fno-exceptions" } */
+/* { dg-options "-O3 -fno-exceptions -fno-short-enums" } */
 
 typedef struct tree_node *tree;
 enum tree_code { RECORD_TYPE, QUAL_UNION_TYPE };

commit edf95a491077243c32c40120c808879e1b473822
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Fri Aug 16 14:43:41 2024 +0200

    testsuite: Verify -fshort-enums and -fno-short-enums in pr33738.C
    
    For some targets, like Cortex-M on arm-none-eabi, the -fshort-enums is
    enabled by default. For these targets, the test case fails as
    sizeof(Alpha) < sizeof(int).
    To make the test case behave identical for targets that does enable
    -fshort-enums and those that does not, add -fno-short-enums in the test
    case and verify that the warning is not emitted. Then also create a copy
    and run the test with -fshort-enums and verify that the warning is
    emitted.
    
    Regtested on x86_64-pc-linux-gnu and arm-none-eabi.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/warn/pr33738.C: Added -fno-short-enums.
            * g++.dg/warn/pr33738-2.C: Duplicate g++.dg/warn/pr33738.C with
            -fshort-enums and removed xfail.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 479dab62b828f93d6be48241178dbf654bdd33e7)

diff --git a/gcc/testsuite/g++.dg/warn/pr33738-2.C b/gcc/testsuite/g++.dg/warn/pr33738-2.C
new file mode 100644
index 00000000000..84bbdaeecc7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/pr33738-2.C
@@ -0,0 +1,27 @@
+// { dg-do run }
+// { dg-options "-O2 -Wtype-limits -fstrict-enums -fshort-enums" }
+extern void link_error (void);
+
+enum Alpha {
+ ZERO = 0, ONE, TWO, THREE
+};
+
+Alpha a2;
+
+int m1 = -1;
+int GetM1() {
+ return m1;
+}
+
+int main() {
+ a2 = static_cast<Alpha>(GetM1());
+ if (a2 == -1) {	// { dg-warning "always false due" } */
+    link_error ();
+ }
+ a2 = static_cast<Alpha>(GetM1());
+ if (-1 == a2) {	// { dg-warning "always false due" } */
+    link_error ();
+ }
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.dg/warn/pr33738.C b/gcc/testsuite/g++.dg/warn/pr33738.C
index 73e98d5e083..d899f91c018 100644
--- a/gcc/testsuite/g++.dg/warn/pr33738.C
+++ b/gcc/testsuite/g++.dg/warn/pr33738.C
@@ -1,5 +1,6 @@
 // { dg-do run }
-// { dg-options "-O2 -Wtype-limits -fstrict-enums" }
+// { dg-prune-output "use of enum values across objects may fail" }
+// { dg-options "-O2 -Wtype-limits -fstrict-enums -fno-short-enums" }
 extern void link_error (void);
 
 enum Alpha {

commit 507b4e147588c0fafe952b7226dd764ebeebb103
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Fri Aug 16 18:13:34 2024 +0200

    AVR: target/85624 - Use HImode for clrmemqi alignment.
    
    gcc/
            PR target/85624
            * config/avr/avr.md (*clrmemqi*): Use HImode for alignment operand.
    
    gcc/testsuite/
            * gcc.target/avr/torture/pr85624.c: New test.

diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index dabf4c0fc5a..55de11079c3 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -1374,7 +1374,7 @@
   [(set (mem:BLK (match_operand:HI 0 "register_operand" "e"))
         (const_int 0))
    (use (match_operand:QI 1 "register_operand" "r"))
-   (use (match_operand:QI 2 "const_int_operand" "n"))
+   (use (match_operand:HI 2 "const_int_operand" "n"))
    (clobber (match_scratch:HI 3 "=0"))
    (clobber (match_scratch:QI 4 "=&1"))]
   ""
@@ -1392,7 +1392,7 @@
   [(set (mem:BLK (match_operand:HI 0 "register_operand" "e"))
         (const_int 0))
    (use (match_operand:QI 1 "register_operand" "r"))
-   (use (match_operand:QI 2 "const_int_operand" "n"))
+   (use (match_operand:HI 2 "const_int_operand" "n"))
    (clobber (match_scratch:HI 3 "=0"))
    (clobber (match_scratch:QI 4 "=&1"))
    (clobber (reg:CC REG_CC))]
diff --git a/gcc/testsuite/gcc.target/avr/torture/pr85624.c b/gcc/testsuite/gcc.target/avr/torture/pr85624.c
new file mode 100644
index 00000000000..b183d4558df
--- /dev/null
+++ b/gcc/testsuite/gcc.target/avr/torture/pr85624.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+
+int foo (void)
+{
+  volatile int arr[3] __attribute__((aligned(128))) = { 0 };
+  return arr[2];
+}

commit 02960011cb42468aa9bfa636ecbcd93ae33640b5
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Aug 17 00:21:45 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 449384cd6e0..966546e94fe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,61 @@
+2024-08-16  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/85624
+	* config/avr/avr.md (*clrmemqi*): Use HImode for alignment operand.
+
+2024-08-16  Lingling Kong  <lingling.kong@intel.com>
+
+	* config/i386/sse.md (vpmadd52<vpmadd52type><mode>):
+	Prohibit egpr for vex version.
+	(vpdpbusd_<mode>): Ditto.
+	(vpdpbusds_<mode>): Ditto.
+	(vpdpwssd_<mode>): Ditto.
+	(vpdpwssds_<mode>): Ditto.
+	(*vcvtneps2bf16_v4sf): Ditto.
+	(*vcvtneps2bf16_v8sf): Ditto.
+	(vpdp<vpdotprodtype>_<mode>): Ditto.
+	(vbcstnebf162ps_<mode>): Ditto.
+	(vbcstnesh2ps_<mode>): Ditto.
+	(vcvtnee<bf16_ph>2ps_<mode>): Ditto.
+	(vcvtneo<bf16_ph>2ps_<mode>): Ditto.
+	(vpdp<vpdpwprodtype>_<mode>): Ditto.
+
+2024-08-16  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/115464
+	* config/aarch64/aarch64-sve-builtins-base.cc
+	(svset_neonq_impl::expand): Use force_subreg instead of
+	lowpart_subreg.
+
+2024-08-16  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-06-13  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/115464
+	* simplify-rtx.cc (simplify_context::simplify_subreg): Don't try
+	to fold two subregs together if their relationship isn't known
+	at compile time.
+	* explow.h (force_subreg): Declare.
+	* explow.cc (force_subreg): New function.
+	* config/aarch64/aarch64-sve-builtins-base.cc
+	(svset_neonq_impl::expand): Use it instead of simplify_gen_subreg.
+
+2024-08-16  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-08-14  liuhongt  <hongtao.liu@intel.com>
+
+	PR target/116174
+	* config/i386/i386.cc (ix86_align_loops): Move this to ..
+	* config/i386/i386-features.cc (ix86_align_loops): .. here.
+	(class pass_align_tight_loops): New class.
+	(make_pass_align_tight_loops): New function.
+	* config/i386/i386-passes.def: Insert pass_align_tight_loops
+	after pass_insert_endbr_and_patchable_area.
+	* config/i386/i386-protos.h (make_pass_align_tight_loops): New
+	declare.
+
 2024-08-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c11f769cc2c..720f32939ba 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240816
+20240817
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index de25ede2895..2ed68f979f0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,51 @@
+2024-08-16  Georg-Johann Lay  <avr@gjlay.de>
+
+	* gcc.target/avr/torture/pr85624.c: New test.
+
+2024-08-16  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-08-16  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* g++.dg/warn/pr33738.C: Added -fno-short-enums.
+	* g++.dg/warn/pr33738-2.C: Duplicate g++.dg/warn/pr33738.C with
+	-fshort-enums and removed xfail.
+
+2024-08-16  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-08-16  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* g++.dg/opt/pr97315-1.C: Add -fno-short-enums.
+
+2024-08-16  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-08-16  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+		    Yvan ROUX  <yvan.roux@foss.st.com>
+
+	* gcc.dg/signbit-5.c: Add -fwrapv and remove x86 exception.
+
+2024-08-16  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/115464
+	* gcc.target/aarch64/sve/acle/general/pr115464_2.c: New test.
+
+2024-08-16  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-06-13  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/115464
+	* gcc.target/aarch64/sve/acle/general/pr115464.c: New test.
+
+2024-08-16  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-08-14  liuhongt  <hongtao.liu@intel.com>
+
+	* gcc.target/i386/pr116174.c: New test.
+
 2024-08-15  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:

commit f3d9c120a1959c5b094001516c1e5cb4ba6f4080
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Sat Aug 17 12:49:42 2024 +0200

    AVR: target/116390 - Fix an avrtiny asm out template.
    
            PR target/116390
    gcc/
            * config/avr/avr.cc (avr_out_movsi_mr_r_reg_disp_tiny): Fix
            output templates for the reg_base == reg_src and
            reg_src == reg_base - 2 cases.
    gcc/testsuite/
            * gcc.target/avr/torture/pr116390.c: New test.
    
    (cherry picked from commit 4065d163151b07b274241377e71dad028576db88)

diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index 71929b28160..3c1a0bf707f 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -5501,33 +5501,33 @@ avr_out_movsi_mr_r_reg_disp_tiny (rtx op[], int *l)
   rtx src = op[1];
   rtx base = XEXP (dest, 0);
   int reg_base = REGNO (XEXP (base, 0));
-  int reg_src =true_regnum (src);
+  int reg_src = true_regnum (src);
 
   if (reg_base == reg_src)
     {
       *l = 11;
-      return ("mov __tmp_reg__,%A2"        CR_TAB
-	      "mov __zero_reg__,%B2"       CR_TAB
+      return ("mov __tmp_reg__,%A1"        CR_TAB
+	      "mov __zero_reg__,%B1"       CR_TAB
 	      TINY_ADIW (%I0, %J0, %o0)    CR_TAB
 	      "st %b0+,__tmp_reg__"        CR_TAB
 	      "st %b0+,__zero_reg__"       CR_TAB
-	      "st %b0+,%C2"                CR_TAB
-	      "st %b0,%D2"                 CR_TAB
+	      "st %b0+,%C1"                CR_TAB
+	      "st %b0,%D1"                 CR_TAB
 	      "clr __zero_reg__"           CR_TAB
 	      TINY_SBIW (%I0, %J0, %o0+3));
     }
   else if (reg_src == reg_base - 2)
     {
-      *l = 11;
-      return ("mov __tmp_reg__,%C2"         CR_TAB
-	      "mov __zero_reg__,%D2"        CR_TAB
-	      TINY_ADIW (%I0, %J0, %o0)     CR_TAB
-	      "st %b0+,%A0"                 CR_TAB
-	      "st %b0+,%B0"                 CR_TAB
-	      "st %b0+,__tmp_reg__"         CR_TAB
-	      "st %b0,__zero_reg__"         CR_TAB
-	      "clr __zero_reg__"            CR_TAB
-	      TINY_SBIW (%I0, %J0, %o0+3));
+      // This awkward case can occur when ext-dce turns zero-extend:SI(HI)
+      // into a paradoxical subreg, which register allocation may turn into
+      // something like *(R28:HI + 7) = R26:SI.  There is actually no need
+      // to store the upper 2 bytes of R26:SI as they are unused rubbish.
+      // See PR116390.
+      *l = 6;
+      return (TINY_ADIW (%I0, %J0, %o0)     CR_TAB
+	      "st %b0+,%A1"                 CR_TAB
+	      "st %b0,%B1"                  CR_TAB
+	      TINY_SBIW (%I0, %J0, %o0+1));
     }
   *l = 8;
   return (TINY_ADIW (%I0, %J0, %o0)     CR_TAB
diff --git a/gcc/testsuite/gcc.target/avr/torture/pr116390.c b/gcc/testsuite/gcc.target/avr/torture/pr116390.c
new file mode 100644
index 00000000000..70c1ad62936
--- /dev/null
+++ b/gcc/testsuite/gcc.target/avr/torture/pr116390.c
@@ -0,0 +1,71 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-std=c99" } */
+
+typedef struct
+{
+    int i;
+} MyStruct;
+
+void f_ic (int, char);
+void f_pi (char const *, int);
+void f_iic (int, int, char);
+
+const MyStruct *f_rms (void);
+
+char *f_rcp (void);
+int f_ri (void);
+
+void badFoo (void)
+{
+    const MyStruct* ps = f_rms ();
+    const char* pc = f_rcp ();
+
+    unsigned n1 = f_rcp () - pc;
+
+    if (n1)
+    {
+        long n2 = n1 - ps->i;
+        if (n2 > 0)
+        {
+            if (f_ri ())
+                n2 = n1;
+
+            if (f_ri ())
+            {
+                f_iic (1, 2 * n2, ' ');
+            }
+            else
+                f_pi (pc, n2);
+        }
+        if (ps->i > 0)
+        {
+            if (n2 >= 0)
+                f_pi (pc + n2, ps->i);
+            else
+            {
+                f_ic (n2, ' ');
+            }
+        }
+
+        const int which = f_ri ();
+        switch (which)
+        {
+        case 1:
+            if (f_ri ())
+                f_rcp ()[1] = ' ';
+            break;
+
+        case 2:
+            f_pi (f_rcp (), 1);
+            break;
+
+        case 3:
+            if (f_ri () && n1 < 0)
+                f_ic (n1, ' ');
+            else
+                f_rcp ()[1] = ' ';
+            break;
+
+        }
+    }
+}

commit f4ce0980daac25eadfdbe7f4169ae02284430fa5
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Aug 18 00:21:22 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 966546e94fe..7ad5949db06 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2024-08-17  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-08-17  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/116390
+	* config/avr/avr.cc (avr_out_movsi_mr_r_reg_disp_tiny): Fix
+	output templates for the reg_base == reg_src and
+	reg_src == reg_base - 2 cases.
+
 2024-08-16  Georg-Johann Lay  <avr@gjlay.de>
 
 	PR target/85624
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 720f32939ba..5e34934c797 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240817
+20240818
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2ed68f979f0..0ddafb8ae54 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-08-17  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-08-17  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/116390
+	* gcc.target/avr/torture/pr116390.c: New test.
+
 2024-08-16  Georg-Johann Lay  <avr@gjlay.de>
 
 	* gcc.target/avr/torture/pr85624.c: New test.

commit 919c42bf4487a8f0cc584a3ca53784c381f19dfa
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Sun Aug 18 15:00:55 2024 +0200

    AVR: target/116407 - Fix linker error "relocation truncated to fit".
    
    Some text peepholes output extra instructions prior to a branch
    instruction and that increase the jump offset of backward branches.
    
            PR target/116407
    gcc/
            * config/avr/avr-protos.h (avr_jump_mode): Add an int argument.
            * config/avr/avr.cc (avr_jump_mode): Add an int argument to increase
            the computed jump offset of backwards branches.
            * config/avr/avr.md (*dec-and-branchhi!=-1, *dec-and-branchsi!=-1):
            Increase the jump offset used by avr_jump_mode() as needed.
    gcc/testsuite/
            * gcc.target/avr/torture/pr116407-2.c: New test.
            * gcc.target/avr/torture/pr116407-4.c: New test.
    
    (cherry picked from commit dfb2e8caa85d1059a0ab8ed4f19568c04c9f13a4)

diff --git a/gcc/config/avr/avr-protos.h b/gcc/config/avr/avr-protos.h
index dc23cfbf461..d918e2fce31 100644
--- a/gcc/config/avr/avr-protos.h
+++ b/gcc/config/avr/avr-protos.h
@@ -112,7 +112,7 @@ extern const char* avr_out_reload_inpsi (rtx*, rtx, int*);
 extern const char* avr_out_lpm (rtx_insn *, rtx*, int*);
 extern void avr_notice_update_cc (rtx body, rtx_insn *insn);
 extern int reg_unused_after (rtx_insn *insn, rtx reg);
-extern int avr_jump_mode (rtx x, rtx_insn *insn);
+extern int avr_jump_mode (rtx x, rtx_insn *insn, int = 0);
 extern int test_hard_reg_class (enum reg_class rclass, rtx x);
 extern int jump_over_one_insn_p (rtx_insn *insn, rtx dest);
 
diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index 3c1a0bf707f..c6f29fd48f9 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -3989,19 +3989,22 @@ avr_use_by_pieces_infrastructure_p (unsigned HOST_WIDE_INT size,
 /* Choose mode for jump insn:
    1 - relative jump in range -63 <= x <= 62 ;
    2 - relative jump in range -2046 <= x <= 2045 ;
-   3 - absolute jump (only for ATmega[16]03).  */
+   3 - absolute jump (only when we have JMP / CALL).
+
+   When jumping backwards, assume the jump offset is EXTRA words
+   bigger than inferred from insn addresses.  */
 
 int
-avr_jump_mode (rtx x, rtx_insn *insn)
+avr_jump_mode (rtx x, rtx_insn *insn, int extra)
 {
   int dest_addr = INSN_ADDRESSES (INSN_UID (GET_CODE (x) == LABEL_REF
 					    ? XEXP (x, 0) : x));
   int cur_addr = INSN_ADDRESSES (INSN_UID (insn));
   int jump_distance = cur_addr - dest_addr;
 
-  if (IN_RANGE (jump_distance, -63, 62))
+  if (IN_RANGE (jump_distance, -63, 62 - extra))
     return 1;
-  else if (IN_RANGE (jump_distance, -2046, 2045))
+  else if (IN_RANGE (jump_distance, -2046, 2045 - extra))
     return 2;
   else if (AVR_HAVE_JMP_CALL)
     return 3;
diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index 55de11079c3..9aaefcfcd64 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -7771,7 +7771,7 @@
                        "sbc %C0,__zero_reg__" CR_TAB
                        "sbc %D0,__zero_reg__", operands);
 
-    int jump_mode = avr_jump_mode (operands[2], insn);
+    int jump_mode = avr_jump_mode (operands[2], insn, 3 - avr_adiw_reg_p (operands[0]));
     const char *op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
     operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
 
@@ -7808,7 +7808,7 @@
       output_asm_insn ("subi %A0,1" CR_TAB
                        "sbc %B0,__zero_reg__", operands);
 
-    int jump_mode = avr_jump_mode (operands[2], insn);
+    int jump_mode = avr_jump_mode (operands[2], insn, 1 - avr_adiw_reg_p (operands[0]));
     const char *op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
     operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
 
@@ -7847,7 +7847,7 @@
       output_asm_insn ("subi %A0,1" CR_TAB
                        "sbc %B0,__zero_reg__", operands);
 
-    int jump_mode = avr_jump_mode (operands[2], insn);
+    int jump_mode = avr_jump_mode (operands[2], insn, 1 - avr_adiw_reg_p (operands[0]));
     const char *op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
     operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
 
@@ -7884,7 +7884,7 @@
                      "sub %A0,%3" CR_TAB
                      "sbc %B0,__zero_reg__", operands);
 
-    int jump_mode = avr_jump_mode (operands[2], insn);
+    int jump_mode = avr_jump_mode (operands[2], insn, 1 - avr_adiw_reg_p (operands[0]));
     const char *op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
     operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
 
diff --git a/gcc/testsuite/gcc.target/avr/torture/pr116407-2.c b/gcc/testsuite/gcc.target/avr/torture/pr116407-2.c
new file mode 100644
index 00000000000..f580d129b5b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/avr/torture/pr116407-2.c
@@ -0,0 +1,34 @@
+/* { dg-do link } */
+
+typedef __UINT16_TYPE__ u16;
+typedef __INT16_TYPE__  T;
+
+#ifdef __OPTIMIZE__
+
+static __inline__ __attribute__((always_inline))
+void delay (T x, u16 nops)
+{
+    do
+        __builtin_avr_nops (nops);
+    while (--x != -1);
+}
+
+#ifdef __AVR_HAVE_JMP_CALL__
+
+void delay_2043 (T x) { delay (x, 2043); }
+void delay_2044 (T x) { delay (x, 2044); }
+void delay_2045 (T x) { delay (x, 2045); }
+void delay_2046 (T x) { delay (x, 2046); }
+
+#endif /* have JUMP, CALL */
+
+void delay_61 (T x) { delay (x, 61); }
+void delay_62 (T x) { delay (x, 62); }
+void delay_63 (T x) { delay (x, 63); }
+
+#endif /* optimize */
+
+int main (void)
+{
+    return 0;
+}
diff --git a/gcc/testsuite/gcc.target/avr/torture/pr116407-4.c b/gcc/testsuite/gcc.target/avr/torture/pr116407-4.c
new file mode 100644
index 00000000000..4347d85e552
--- /dev/null
+++ b/gcc/testsuite/gcc.target/avr/torture/pr116407-4.c
@@ -0,0 +1,34 @@
+/* { dg-do link } */
+
+typedef __UINT16_TYPE__ u16;
+typedef __INT32_TYPE__  T;
+
+#ifdef __OPTIMIZE__
+
+static __inline__ __attribute__((always_inline))
+void delay (T x, u16 nops)
+{
+    do
+        __builtin_avr_nops (nops);
+    while (--x != -1);
+}
+
+#ifdef __AVR_HAVE_JMP_CALL__
+
+void delay_2043 (T x) { delay (x, 2043); }
+void delay_2044 (T x) { delay (x, 2044); }
+void delay_2045 (T x) { delay (x, 2045); }
+void delay_2046 (T x) { delay (x, 2046); }
+
+#endif /* have JUMP, CALL */
+
+void delay_61 (T x) { delay (x, 61); }
+void delay_62 (T x) { delay (x, 62); }
+void delay_63 (T x) { delay (x, 63); }
+
+#endif /* optimize */
+
+int main (void)
+{
+    return 0;
+}

commit c7257486630c419f0d140d558eaa20d183439811
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Sun Aug 18 17:07:15 2024 +0200

    AVR: ad target/116407 - Fix linker error "relocation truncated to fit".
    
            PR target/116407
    gcc/
            * config/avr/avr.md (*dec-and-branchhi!=-1.l.clobber):
            Increase the additional jump offset to 2 words.
    
    (cherry picked from commit 22acd3c4d18dbd4d4d39d7770145fe3ec36073f6)

diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index 9aaefcfcd64..b7273fa19f6 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -7884,7 +7884,7 @@
                      "sub %A0,%3" CR_TAB
                      "sbc %B0,__zero_reg__", operands);
 
-    int jump_mode = avr_jump_mode (operands[2], insn, 1 - avr_adiw_reg_p (operands[0]));
+    int jump_mode = avr_jump_mode (operands[2], insn, 2);
     const char *op = ((EQ == <CODE>) ^ (jump_mode == 1)) ? "brcc" : "brcs";
     operands[1] = gen_rtx_CONST_STRING (VOIDmode, op);
 

commit 1fad6adae966ffae20a7afba14ec80e07c2d5c22
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Aug 19 00:21:54 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7ad5949db06..ea9c99fbc74 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,24 @@
+2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/116407
+	* config/avr/avr.md (*dec-and-branchhi!=-1.l.clobber):
+	Increase the additional jump offset to 2 words.
+
+2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/116407
+	* config/avr/avr-protos.h (avr_jump_mode): Add an int argument.
+	* config/avr/avr.cc (avr_jump_mode): Add an int argument to increase
+	the computed jump offset of backwards branches.
+	* config/avr/avr.md (*dec-and-branchhi!=-1, *dec-and-branchsi!=-1):
+	Increase the jump offset used by avr_jump_mode() as needed.
+
 2024-08-17  Georg-Johann Lay  <avr@gjlay.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 5e34934c797..6197155f323 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240818
+20240819
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0ddafb8ae54..f716cd65c05 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/116407
+	* gcc.target/avr/torture/pr116407-2.c: New test.
+	* gcc.target/avr/torture/pr116407-4.c: New test.
+
 2024-08-17  Georg-Johann Lay  <avr@gjlay.de>
 
 	Backported from master:

commit af97b5eb023756c4a00c8c3327395f3d069d7e26
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Mon Aug 19 10:44:44 2024 +0200

    testsuite: Prune warning about size of enums
    
    This fixes reported regression at
    https://linaro.atlassian.net/browse/GNU-1315.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/warn/pr33738-2.C: dg-prune arm linker messages about
            size of enums.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 6d8b9b772e0b3969e6b3fcf0363d6afcce2e65c9)

diff --git a/gcc/testsuite/g++.dg/warn/pr33738-2.C b/gcc/testsuite/g++.dg/warn/pr33738-2.C
index 84bbdaeecc7..1ab121893ee 100644
--- a/gcc/testsuite/g++.dg/warn/pr33738-2.C
+++ b/gcc/testsuite/g++.dg/warn/pr33738-2.C
@@ -1,4 +1,5 @@
 // { dg-do run }
+// { dg-prune-output "use of enum values across objects may fail" }
 // { dg-options "-O2 -Wtype-limits -fstrict-enums -fshort-enums" }
 extern void link_error (void);
 

commit 52da8588fd06198edcda81d7acf83ec92ccb63ef
Author: Marek Polacek <polacek@redhat.com>
Date:   Thu Aug 15 11:53:10 2024 -0400

    c++: fix ICE in convert_nontype_argument [PR116384]
    
    Here we ICE since r14-8291 in C++11/C++14 modes.  Fortunately
    this is an easy one.
    
    The important bit of r14-8291 is this:
    
    @@ -20056,9 +20071,12 @@ tsubst_expr (tree t, tree args, tsubst_flags_t complain, tree in_decl)
            RETURN (retval);
          }
        if (IMPLICIT_CONV_EXPR_NONTYPE_ARG (t))
    -     /* We'll pass this to convert_nontype_argument again, we don't need
    -        to actually perform any conversion here.  */
    -     RETURN (expr);
    +     {
    +       tree r = convert_nontype_argument (type, expr, complain);
    +       if (r == NULL_TREE)
    +         r = error_mark_node;
    +       RETURN (r);
    +     }
    
    which obviously means that instead of returning right away we go
    to convert_nontype_argument.  When type is error_mark_node and we're
    in C++17, in convert_nontype_argument we go down this path:
    
          else if (INTEGRAL_OR_ENUMERATION_TYPE_P (type)
                   || cxx_dialect >= cxx17)
            {
              expr = build_converted_constant_expr (type, expr, complain);
              if (expr == error_mark_node)
                return (complain & tf_error) ? NULL_TREE : error_mark_node;
              // ...
            }
    
    but pre-C++17, we take a different route and end up crashing on
    gcc_unreachable.
    
    It would of course also work to check for error_mark_node early in
    build_converted_constant_expr.
    
            PR c++/116384
    
    gcc/cp/ChangeLog:
    
            * pt.cc (tsubst_expr) <case IMPLICIT_CONV_EXPR>: Bail if tsubst
            returns error_mark_node.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/vt-116384.C: New test.
    
    (cherry picked from commit 8191f15022b0ea44fcb549449b0458d07ae02e0a)

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 96a4f45909d..8e6a7d1a64a 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -20220,6 +20220,8 @@ tsubst_expr (tree t, tree args, tsubst_flags_t complain, tree in_decl)
     case IMPLICIT_CONV_EXPR:
       {
 	tree type = tsubst (TREE_TYPE (t), args, complain, in_decl);
+	if (type == error_mark_node)
+	  RETURN (error_mark_node);
 	tree expr = RECUR (TREE_OPERAND (t, 0));
 	if (dependent_type_p (type) || type_dependent_expression_p (expr))
 	  {
diff --git a/gcc/testsuite/g++.dg/cpp0x/vt-116384.C b/gcc/testsuite/g++.dg/cpp0x/vt-116384.C
new file mode 100644
index 00000000000..54d7f0774c5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/vt-116384.C
@@ -0,0 +1,26 @@
+// PR c++/116384
+// { dg-do compile { target c++11 } }
+
+namespace a {
+template <bool, typename> struct c;
+template <typename> struct d;
+}
+namespace e {
+namespace g {
+template <typename> using h = void;
+template <typename, template <typename> class, typename...> struct detector {};
+template <template <typename> class i, typename... args>
+struct detector<h<i<args...>>, i, args...>;
+}
+template <template <typename> class i, typename... args>
+using j = g::detector<void, i, args...>;
+template <bool b, typename k = void> using l = typename a::c<b, k>::m;
+template <typename> struct conjunction;
+namespace g {
+template <typename k> using n = l<conjunction<a::d<k>>::p>;
+}
+template <typename k, g::n<k> = true> class o;
+}
+struct r;
+template <typename k> using q = e::o<k>;
+void s() { e::j<q, r> f; }

commit 76ac16766a7e9432723de4e338192ef823518b8a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Aug 20 00:23:37 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 6197155f323..0ed256ba1fe 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240819
+20240820
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 3dd34cf4e81..ebb02354925 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-19  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-08-19  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116384
+	* pt.cc (tsubst_expr) <case IMPLICIT_CONV_EXPR>: Bail if tsubst
+	returns error_mark_node.
+
 2024-08-15  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f716cd65c05..81206ced115 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,19 @@
+2024-08-19  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-08-19  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116384
+	* g++.dg/cpp0x/vt-116384.C: New test.
+
+2024-08-19  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-08-19  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* g++.dg/warn/pr33738-2.C: dg-prune arm linker messages about
+	size of enums.
+
 2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
 
 	Backported from master:

commit 25812d8b789748911e800a972e5a3a030e3ac905
Author: Alexandre Oliva <oliva@adacore.com>
Date:   Wed Jun 26 02:08:18 2024 -0300

    [testsuite] [arm] [vect] adjust mve-vshr test [PR113281]
    
    The test was too optimistic, alas.  We used to vectorize shifts by
    clamping the shift counts below the bit width of the types (e.g. at 15
    for 16-bit vector elements), but (uint16_t)32768 >> (uint16_t)16 is
    well defined (because of promotion to 32-bit int) and must yield 0,
    not 1 (as before the fix).
    
    Unfortunately, in the gimple model of vector units, such large shift
    counts wouldn't be well-defined, so we won't vectorize such shifts any
    more, unless we can tell they're in range or undefined.
    
    So the test that expected the vectorization we no longer performed
    needs to be adjusted.  Instead of nobbling the test, Richard Earnshaw
    suggested annotating the test with the expected ranges so as to enable
    the optimization, and Christophe Lyon suggested a further
    simplification.
    
    Co-Authored-By: Richard Earnshaw <Richard.Earnshaw@arm.com>
    
    for  gcc/testsuite/ChangeLog
    
            PR tree-optimization/113281
            * gcc.target/arm/simd/mve-vshr.c: Add expected ranges.
    
    (cherry picked from commit 54d2339c9f87f702e02e571a5460e11c19e1c02f)

diff --git a/gcc/testsuite/gcc.target/arm/simd/mve-vshr.c b/gcc/testsuite/gcc.target/arm/simd/mve-vshr.c
index 8c7adef9ed8..03078de49c6 100644
--- a/gcc/testsuite/gcc.target/arm/simd/mve-vshr.c
+++ b/gcc/testsuite/gcc.target/arm/simd/mve-vshr.c
@@ -9,6 +9,8 @@
   void test_ ## NAME ##_ ## SIGN ## BITS ## x ## NB (TYPE##BITS##_t * __restrict__ dest, TYPE##BITS##_t *a, TYPE##BITS##_t *b) { \
     int i;								\
     for (i=0; i<NB; i++) {						\
+      if ((unsigned)b[i] >= (unsigned)(BITS))				\
+	__builtin_unreachable();					\
       dest[i] = a[i] OP b[i];						\
     }									\
 }

commit 5146af5ede1ffc1af1dfcc98dd706ee9baf2c146
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Aug 21 00:24:10 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 0ed256ba1fe..2927c941b57 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240820
+20240821
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 81206ced115..4726faaceba 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-20  Alexandre Oliva  <oliva@adacore.com>
+
+	Backported from master:
+	2024-06-26  Alexandre Oliva  <oliva@adacore.com>
+		    Richard Earnshaw  <Richard.Earnshaw@arm.com>
+
+	PR tree-optimization/113281
+	* gcc.target/arm/simd/mve-vshr.c: Add expected ranges.
+
 2024-08-19  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:

commit ffd458d815d3fc8fe1ebacb9c7b9bc6917aa25e1
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Aug 22 00:22:57 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 2927c941b57..7e53ea86edc 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240821
+20240822

commit 27dc1533b6dfc49f3912c524db51d6c372a5ac3d
Author: liuhongt <hongtao.liu@intel.com>
Date:   Thu Aug 15 12:54:07 2024 +0800

    Align ix86_{move_max,store_max} with vectorizer.
    
    When none of mprefer-vector-width, avx256_optimal/avx128_optimal,
    avx256_store_by_pieces/avx512_store_by_pieces is specified, GCC will
    set ix86_{move_max,store_max} as max available vector length except
    for AVX part.
    
                  if (TARGET_AVX512F_P (opts->x_ix86_isa_flags)
                      && TARGET_EVEX512_P (opts->x_ix86_isa_flags2))
                    opts->x_ix86_move_max = PVW_AVX512;
                  else
                    opts->x_ix86_move_max = PVW_AVX128;
    
    So for -mavx2, vectorizer will choose 256-bit for vectorization, but
    128-bit is used for struct copy, there could be a potential STLF issue
    due to this "misalign".
    
    The patch fixes that.
    
    gcc/ChangeLog:
    
            * config/i386/i386-options.cc (ix86_option_override_internal):
            set ix86_{move_max,store_max} to PVW_AVX256 when TARGET_AVX
            instead of PVW_AVX128.
    
    gcc/testsuite/ChangeLog:
            * gcc.target/i386/pieces-memcpy-10.c: Add -mprefer-vector-width=128.
            * gcc.target/i386/pieces-memcpy-6.c: Ditto.
            * gcc.target/i386/pieces-memset-38.c: Ditto.
            * gcc.target/i386/pieces-memset-40.c: Ditto.
            * gcc.target/i386/pieces-memset-41.c: Ditto.
            * gcc.target/i386/pieces-memset-42.c: Ditto.
            * gcc.target/i386/pieces-memset-43.c: Ditto.
            * gcc.target/i386/pieces-strcpy-2.c: Ditto.
            * gcc.target/i386/pieces-memcpy-22.c: New test.
            * gcc.target/i386/pieces-memset-51.c: New test.
            * gcc.target/i386/pieces-strcpy-3.c: New test.
    
    (cherry picked from commit 6ea25c041964bf63014fcf7bb68fb1f5a0a4e123)

diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index 6c212a8edeb..f6c450cc871 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -3062,6 +3062,9 @@ ix86_option_override_internal (bool main_args_p,
 	      if (TARGET_AVX512F_P (opts->x_ix86_isa_flags)
 		  && TARGET_EVEX512_P (opts->x_ix86_isa_flags2))
 		opts->x_ix86_move_max = PVW_AVX512;
+	      /* Align with vectorizer to avoid potential STLF issue.  */
+	      else if (TARGET_AVX_P (opts->x_ix86_isa_flags))
+		opts->x_ix86_move_max = PVW_AVX256;
 	      else
 		opts->x_ix86_move_max = PVW_AVX128;
 	    }
@@ -3086,6 +3089,9 @@ ix86_option_override_internal (bool main_args_p,
 	      if (TARGET_AVX512F_P (opts->x_ix86_isa_flags)
 		  && TARGET_EVEX512_P (opts->x_ix86_isa_flags2))
 		opts->x_ix86_store_max = PVW_AVX512;
+	      /* Align with vectorizer to avoid potential STLF issue.  */
+	      else if (TARGET_AVX_P (opts->x_ix86_isa_flags))
+		opts->x_ix86_store_max = PVW_AVX256;
 	      else
 		opts->x_ix86_store_max = PVW_AVX128;
 	    }
diff --git a/gcc/testsuite/gcc.target/i386/pieces-memcpy-10.c b/gcc/testsuite/gcc.target/i386/pieces-memcpy-10.c
index 5faee21f9b9..53ad0b3be44 100644
--- a/gcc/testsuite/gcc.target/i386/pieces-memcpy-10.c
+++ b/gcc/testsuite/gcc.target/i386/pieces-memcpy-10.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mno-avx2 -mavx -mtune=sandybridge" } */
+/* { dg-options "-O2 -mno-avx2 -mavx -mprefer-vector-width=128 -mtune=sandybridge" } */
 
 extern char *dst, *src;
 
diff --git a/gcc/testsuite/gcc.target/i386/pieces-memcpy-22.c b/gcc/testsuite/gcc.target/i386/pieces-memcpy-22.c
new file mode 100644
index 00000000000..605b3623ffc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pieces-memcpy-22.c
@@ -0,0 +1,12 @@
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-O2 -mno-avx2 -mavx -mtune=generic" } */
+
+extern char *dst, *src;
+
+void
+foo (void)
+{
+  __builtin_memcpy (dst, src, 33);
+}
+
+/* { dg-final { scan-assembler-times "vmovdqu\[ \\t\]+\[^\n\]*%ymm" 2 } } */
diff --git a/gcc/testsuite/gcc.target/i386/pieces-memcpy-6.c b/gcc/testsuite/gcc.target/i386/pieces-memcpy-6.c
index 5f99cc98c47..cfd2a86cf33 100644
--- a/gcc/testsuite/gcc.target/i386/pieces-memcpy-6.c
+++ b/gcc/testsuite/gcc.target/i386/pieces-memcpy-6.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target { ! ia32 } } } */
-/* { dg-options "-O2 -mno-avx2 -mavx -mtune=sandybridge" } */
+/* { dg-options "-O2 -mno-avx2 -mavx -mprefer-vector-width=128 -mtune=sandybridge" } */
 
 extern char *dst, *src;
 
diff --git a/gcc/testsuite/gcc.target/i386/pieces-memset-38.c b/gcc/testsuite/gcc.target/i386/pieces-memset-38.c
index ed4a24a54fd..ddd194debd5 100644
--- a/gcc/testsuite/gcc.target/i386/pieces-memset-38.c
+++ b/gcc/testsuite/gcc.target/i386/pieces-memset-38.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mno-avx512f -mavx2 -mtune=sandybridge" } */
+/* { dg-options "-O2 -mno-avx512f -mavx2 -mprefer-vector-width=128 -mtune=sandybridge" } */
 
 extern char *dst;
 
diff --git a/gcc/testsuite/gcc.target/i386/pieces-memset-40.c b/gcc/testsuite/gcc.target/i386/pieces-memset-40.c
index 86358c99a83..5878876550c 100644
--- a/gcc/testsuite/gcc.target/i386/pieces-memset-40.c
+++ b/gcc/testsuite/gcc.target/i386/pieces-memset-40.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mno-avx512f -mavx2 -mtune=sandybridge" } */
+/* { dg-options "-O2 -mno-avx512f -mavx2 -mprefer-vector-width=128 -mtune=sandybridge" } */
 /* Cope with --enable-frame-pointer, Solaris/x86 -mstackrealign default.  */
 /* { dg-additional-options "-fomit-frame-pointer -mno-stackrealign" } */
 
diff --git a/gcc/testsuite/gcc.target/i386/pieces-memset-41.c b/gcc/testsuite/gcc.target/i386/pieces-memset-41.c
index d7a27f52983..27a6c8ad139 100644
--- a/gcc/testsuite/gcc.target/i386/pieces-memset-41.c
+++ b/gcc/testsuite/gcc.target/i386/pieces-memset-41.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mno-avx2 -mavx -mtune=sandybridge -mno-stackrealign" } */
+/* { dg-options "-O2 -mno-avx2 -mavx -mprefer-vector-width=128 -mtune=sandybridge -mno-stackrealign" } */
 /* Cope with --enable-frame-pointer.  */
 /* { dg-additional-options "-fomit-frame-pointer" } */
 
diff --git a/gcc/testsuite/gcc.target/i386/pieces-memset-42.c b/gcc/testsuite/gcc.target/i386/pieces-memset-42.c
index df0c122aae7..103da699ae5 100644
--- a/gcc/testsuite/gcc.target/i386/pieces-memset-42.c
+++ b/gcc/testsuite/gcc.target/i386/pieces-memset-42.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mno-avx2 -mavx -mtune=sandybridge" } */
+/* { dg-options "-O2 -mno-avx2 -mavx -mprefer-vector-width=128 -mtune=sandybridge" } */
 
 extern char *dst;
 
diff --git a/gcc/testsuite/gcc.target/i386/pieces-memset-43.c b/gcc/testsuite/gcc.target/i386/pieces-memset-43.c
index 2f2179c2df9..f1494e17610 100644
--- a/gcc/testsuite/gcc.target/i386/pieces-memset-43.c
+++ b/gcc/testsuite/gcc.target/i386/pieces-memset-43.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mno-avx2 -mavx -mtune=sandybridge" } */
+/* { dg-options "-O2 -mno-avx2 -mavx -mprefer-vector-width=128 -mtune=sandybridge" } */
 
 extern char *dst;
 
diff --git a/gcc/testsuite/gcc.target/i386/pieces-memset-51.c b/gcc/testsuite/gcc.target/i386/pieces-memset-51.c
new file mode 100644
index 00000000000..192ec0d1647
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pieces-memset-51.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mno-avx2 -mavx -mtune=generic" } */
+
+extern char *dst;
+
+void
+foo (int x)
+{
+  __builtin_memset (dst, x, 64);
+}
+
+/* { dg-final { scan-assembler-times "vmovdqu\[ \\t\]+\[^\n\]*%ymm" 2 } } */
diff --git a/gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c b/gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c
index 90446edb4f3..9bb94b7419b 100644
--- a/gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c
+++ b/gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target { ! ia32 } } } */
-/* { dg-options "-O2 -mno-avx2 -mavx -mtune=sandybridge" } */
+/* { dg-options "-O2 -mno-avx2 -mavx -mprefer-vector-width=128 -mtune=sandybridge" } */
 
 extern char *strcpy (char *, const char *);
 
diff --git a/gcc/testsuite/gcc.target/i386/pieces-strcpy-3.c b/gcc/testsuite/gcc.target/i386/pieces-strcpy-3.c
new file mode 100644
index 00000000000..df7571b547f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pieces-strcpy-3.c
@@ -0,0 +1,15 @@
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-O2 -mno-avx2 -mavx -mtune=generic" } */
+
+extern char *strcpy (char *, const char *);
+
+void
+foo (char *s)
+{
+  strcpy (s,
+	  "1234567890abcdef123456abcdef5678123456abcdef567abcdef678"
+	  "1234567");
+}
+
+/* { dg-final { scan-assembler-times "vmovdqa\[ \\t\]+\[^\n\]*%ymm" 2 } } */
+/* { dg-final { scan-assembler-times "vmovdqu\[ \\t\]+\[^\n\]*%ymm" 2 } } */

commit 8de3153a65ea402e110fd3ba6d89da72c5e29219
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Aug 23 00:21:22 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ea9c99fbc74..6749e3e5f9a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-22  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-08-22  liuhongt  <hongtao.liu@intel.com>
+
+	* config/i386/i386-options.cc (ix86_option_override_internal):
+	set ix86_{move_max,store_max} to PVW_AVX256 when TARGET_AVX
+	instead of PVW_AVX128.
+
 2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7e53ea86edc..cd765ecede6 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240822
+20240823
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4726faaceba..a2ffda55dc8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,20 @@
+2024-08-22  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-08-22  liuhongt  <hongtao.liu@intel.com>
+
+	* gcc.target/i386/pieces-memcpy-10.c: Add -mprefer-vector-width=128.
+	* gcc.target/i386/pieces-memcpy-6.c: Ditto.
+	* gcc.target/i386/pieces-memset-38.c: Ditto.
+	* gcc.target/i386/pieces-memset-40.c: Ditto.
+	* gcc.target/i386/pieces-memset-41.c: Ditto.
+	* gcc.target/i386/pieces-memset-42.c: Ditto.
+	* gcc.target/i386/pieces-memset-43.c: Ditto.
+	* gcc.target/i386/pieces-strcpy-2.c: Ditto.
+	* gcc.target/i386/pieces-memcpy-22.c: New test.
+	* gcc.target/i386/pieces-memset-51.c: New test.
+	* gcc.target/i386/pieces-strcpy-3.c: New test.
+
 2024-08-20  Alexandre Oliva  <oliva@adacore.com>
 
 	Backported from master:

commit 5b75e1c15f97b4a41ad0cf0876f07b5169e05940
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Aug 24 00:22:38 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index cd765ecede6..8df515083dd 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240823
+20240824

commit b414466d1c08d77aa2be3f99d9c11206499df674
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Aug 25 00:23:36 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 8df515083dd..928d43e6afd 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240824
+20240825

commit ef9c53b6e65893c258ec16186260be2a26edd9e3
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Aug 26 00:23:14 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 928d43e6afd..0f44912c686 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240825
+20240826

commit 75892d97979f397a66730b97e8279941169e0316
Author: YunQiang Su <syq@gcc.gnu.org>
Date:   Fri Aug 23 23:46:16 2024 +0800

    MIPS: Include missing mips16.S in libgcc/lib1funcs.S
    
    mips16.S was missing since
    commit 29b74545531f6afbee9fc38c267524326dbfbedf
    Date:   Thu Jun 1 10:14:24 2023 +0800
    
        MIPS: Add speculation_barrier support
    
    Without mips16.S included, some symbols will miss for mips16, and
    so some software will fail to build.
    
    libgcc/ChangeLog:
    
            * config/mips/lib1funcs.S: Includes mips16.S.
    
    (cherry picked from commit 9522fc8bb7812f2ad50eb038e0938bfd958e730f)

diff --git a/libgcc/config/mips/lib1funcs.S b/libgcc/config/mips/lib1funcs.S
index fa8114b37d9..324a84e7846 100644
--- a/libgcc/config/mips/lib1funcs.S
+++ b/libgcc/config/mips/lib1funcs.S
@@ -19,7 +19,7 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-//#include "mips16.S"
+#include "mips16.S"
 
 #ifdef L_speculation_barrier
 

commit 90b123253dd28e03cbec03e8c71cafc366a3f602
Author: Joseph Myers <josmyers@redhat.com>
Date:   Tue Aug 27 21:21:58 2024 +0000

    Update gcc zh_CN.po
    
            * zh_CN.po: Update.

diff --git a/gcc/po/zh_CN.po b/gcc/po/zh_CN.po
index 133c36a8ec4..b80a0281e24 100644
--- a/gcc/po/zh_CN.po
+++ b/gcc/po/zh_CN.po
@@ -6,6 +6,7 @@
 # Mingye Wang (Arthur2e5) <arthur200126@gmail.com>, 2015, 2016.
 # Boyuan Yang <073plan@gmail.com>, 2019, 2023, 2024.
 # Zixing Zhou <zixingzhou@foxmail.com>, 2023.
+# Zhanhaoxiang Zhang <zzhx2006@outlook.com>, 2024.
 #
 # Fellow translatiors:
 # Many of the fuzzy strings are caused by an addition of a period (".")
@@ -35,8 +36,8 @@ msgstr ""
 "Project-Id-Version: gcc 14.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
 "POT-Creation-Date: 2024-07-25 16:23+0000\n"
-"PO-Revision-Date: 2024-08-02 12:22-0400\n"
-"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
+"PO-Revision-Date: 2024-08-27 16:17+0800\n"
+"Last-Translator: Zhanhaoxiang Zhang <zzhx2006@outlook.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
@@ -44,7 +45,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 3.4.4\n"
+"X-Generator: Poedit 3.4.2\n"
 
 #: cif-code.def:39
 msgid "function not considered for inlining"
@@ -8005,46 +8006,39 @@ msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512
 msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512VBMI 内建函数及代码生成。"
 
 #: config/i386/i386.opt:778
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124FMAPS built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512IFMA 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX5124FMAPS 内建函数及代码生成。"
 
 #: config/i386/i386.opt:782
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124VNNIW built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512VBMI 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX5124VNNIW 内建函数及代码生成。"
 
 #: config/i386/i386.opt:786
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512DQ 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512VPOPCNTDQ 内建函数及代码生成。"
 
 #: config/i386/i386.opt:790
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VBMI2 built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512VBMI 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512VBMI2 内建函数及代码生成。"
 
 #: config/i386/i386.opt:794
-#, fuzzy, no-c-format
-#| msgid "Support BMI built-in functions and code generation."
+#, no-c-format
 msgid "Support AVX512VNNI built-in functions and code generation."
-msgstr "支持 BMI 内建函数及代码生成"
+msgstr "支持 AVX512VNNI 内建函数及代码生成。"
 
 #: config/i386/i386.opt:798
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512BITALG built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512IFMA 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512BITALG 内建函数及代码生成。"
 
 #: config/i386/i386.opt:802
-#, fuzzy, no-c-format
-#| msgid "Support BMI built-in functions and code generation."
+#, no-c-format
 msgid "Support AVX512VP2INTERSECT built-in functions and code generation."
-msgstr "支持 BMI 内建函数及代码生成"
+msgstr "支持 AVX512VP2INTERSECT 内建函数及代码生成。"
 
 #: config/i386/i386.opt:806
 #, no-c-format
@@ -8082,58 +8076,49 @@ msgid "Support code generation of popcnt instruction."
 msgstr "支持生成 popcnt 指令。"
 
 #: config/i386/i386.opt:834
-#, fuzzy, no-c-format
-#| msgid "Support PKU built-in functions and code generation."
+#, no-c-format
 msgid "Support PCONFIG built-in functions and code generation."
-msgstr "支持 PKU 内建函数及代码生成。"
+msgstr "支持 PCONFIG 内建函数及代码生成。"
 
 #: config/i386/i386.opt:838
-#, fuzzy, no-c-format
-#| msgid "Support BMI built-in functions and code generation."
+#, no-c-format
 msgid "Support WBNOINVD built-in functions and code generation."
-msgstr "支持 BMI 内建函数及代码生成"
+msgstr "支持 WBNOINVD 内建函数及代码生成。"
 
 #: config/i386/i386.opt:842
-#, fuzzy, no-c-format
-#| msgid "Support RTM built-in functions and code generation."
+#, no-c-format
 msgid "Support PTWRITE built-in functions and code generation."
-msgstr "支持 RTM 内建函数及代码生成。"
+msgstr "支持 PTWRITE 内建函数及代码生成。"
 
 #: config/i386/i386.opt:846
-#, fuzzy, no-c-format
-#| msgid "Support BMI built-in functions and code generation."
+#, no-c-format
 msgid "Support UINTR built-in functions and code generation."
-msgstr "支持 BMI 内建函数及代码生成"
+msgstr "支持 UINTR 内建函数及代码生成。"
 
 #: config/i386/i386.opt:850
-#, fuzzy, no-c-format
-#| msgid "Support XOP built-in functions and code generation."
+#, no-c-format
 msgid "Support SGX built-in functions and code generation."
-msgstr "支持 XOP 内建函数及代码生成。"
+msgstr "支持 SGX 内建函数及代码生成。"
 
 #: config/i386/i386.opt:854
-#, fuzzy, no-c-format
-#| msgid "Support RDRND built-in functions and code generation."
+#, no-c-format
 msgid "Support RDPID built-in functions and code generation."
-msgstr "支持 RDRND 内建函数及代码生成。"
+msgstr "支持 RDPID 内建函数及代码生成。"
 
 #: config/i386/i386.opt:858
-#, fuzzy, no-c-format
-#| msgid "Support BMI built-in functions and code generation."
+#, no-c-format
 msgid "Support GFNI built-in functions and code generation."
-msgstr "支持 BMI 内建函数及代码生成"
+msgstr "支持 GFNI 内建函数及代码生成。"
 
 #: config/i386/i386.opt:862
-#, fuzzy, no-c-format
-#| msgid "Support AES built-in functions and code generation."
+#, no-c-format
 msgid "Support VAES built-in functions and code generation."
-msgstr "支持 AES 内建函数及代码生成。"
+msgstr "支持 VAES 内建函数及代码生成。"
 
 #: config/i386/i386.opt:866
-#, fuzzy, no-c-format
-#| msgid "Support PCLMUL built-in functions and code generation."
+#, no-c-format
 msgid "Support VPCLMULQDQ built-in functions and code generation."
-msgstr "支持 PCLMUL 内建函数及代码生成。"
+msgstr "支持 VPCLMULQDQ 内建函数及代码生成。"
 
 #: config/i386/i386.opt:870
 #, no-c-format
@@ -8392,28 +8377,24 @@ msgid "Force indirect call and jump via register."
 msgstr ""
 
 #: config/i386/i386.opt:1128
-#, fuzzy, no-c-format
-#| msgid "Support BMI built-in functions and code generation."
+#, no-c-format
 msgid "Support MOVDIRI built-in functions and code generation."
-msgstr "支持 BMI 内建函数及代码生成"
+msgstr "支持 MOVDIRI 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1132
-#, fuzzy, no-c-format
-#| msgid "Support BMI built-in functions and code generation."
+#, no-c-format
 msgid "Support MOVDIR64B built-in functions and code generation."
-msgstr "支持 BMI 内建函数及代码生成"
+msgstr "支持 MOVDIR64B 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1136
-#, fuzzy, no-c-format
-#| msgid "Support LWP built-in functions and code generation."
+#, no-c-format
 msgid "Support WAITPKG built-in functions and code generation."
-msgstr "支持 LWP 内建函数及代码生成。"
+msgstr "支持 WAITPKG 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1140
-#, fuzzy, no-c-format
-#| msgid "Support CLZERO built-in functions and code generation."
+#, no-c-format
 msgid "Support CLDEMOTE built-in functions and code generation."
-msgstr "支持 CLZERO 内建函数及代码。"
+msgstr "支持 CLDEMOTE 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1144
 #, fuzzy, no-c-format
@@ -8436,10 +8417,9 @@ msgid "Known choices for mitigation against straight line speculation with -mhar
 msgstr ""
 
 #: config/i386/i386.opt:1185
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512BF16 built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512VBMI 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512BF16 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1190
 #, no-c-format
@@ -8487,10 +8467,9 @@ msgid "Support WIDEKL built-in functions and code generation."
 msgstr "支持 WIDEKL 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1226
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVXVNNI built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVX512F 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVXVNNI 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1231
 #, no-c-format
@@ -8498,16 +8477,14 @@ msgid "Emit GNU_PROPERTY_X86_ISA_1_NEEDED GNU property."
 msgstr ""
 
 #: config/i386/i386.opt:1235
-#, fuzzy, no-c-format
-#| msgid "Support MWAITX and MONITORX built-in functions and code generation."
+#, no-c-format
 msgid "Support MWAIT and MONITOR built-in functions and code generation."
-msgstr "支持 MWAITX 和 MONITORX 内建函数及代码生成。"
+msgstr "支持 MWAIT 和 MONITOR 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1239
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512-FP16 built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512IFMA 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512F 和 AVX512-FP16 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1243
 #, fuzzy, no-c-format
@@ -8520,46 +8497,39 @@ msgid "Instructions number above which STFL stall penalty can be compensated."
 msgstr ""
 
 #: config/i386/i386.opt:1251
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVXIFMA built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVX512F 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVXIFMA 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1256
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVXVNNIINT8 built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVX512F 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVXVNNIINT8 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1261
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVXNECONVERT build-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVX512F 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVXNECONVERT 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1266
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and CMPCCXADD build-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVX512F 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 CMPCCXADD 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1271
-#, fuzzy, no-c-format
-#| msgid "Support F16C built-in functions and code generation."
+#, no-c-format
 msgid "Support AMX-FP16 built-in functions and code generation."
-msgstr "支持 F16C 内建函数及代码生成。"
+msgstr "支持 AMX-FP16 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1275
-#, fuzzy, no-c-format
-#| msgid "Support PREFETCHWT1 built-in functions and code generation."
+#, no-c-format
 msgid "Support PREFETCHI built-in functions and code generation."
-msgstr "支持 PREFETCHWT1 内建函数及代码生成。"
+msgstr "支持 PREFETCHI 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1279
-#, fuzzy, no-c-format
-#| msgid "Support BMI built-in functions and code generation."
+#, no-c-format
 msgid "Support RAOINT built-in functions and code generation."
-msgstr "支持 BMI 内建函数及代码生成"
+msgstr "支持 RAOINT 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1283
 #, no-c-format
@@ -8572,34 +8542,29 @@ msgid "-mlam=[none|u48|u57] Instrument meta data position in user data pointers.
 msgstr ""
 
 #: config/i386/i386.opt:1303
-#, fuzzy, no-c-format
-#| msgid "Support AES built-in functions and code generation."
+#, no-c-format
 msgid "Support AMX-COMPLEX built-in functions and code generation."
-msgstr "支持 AES 内建函数及代码生成。"
+msgstr "支持 AMX-COMPLEX 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1307
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVXVNNIINT16 built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVX512F 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVXVNNIINT16 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1312
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and SM3 built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX 和 FMA 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX 和 SM3 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1317
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and SHA512 built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX 和 AVX2 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX 和 SHA512 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1322
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and SM4 built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX 和 FMA 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX 和 SM4 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1327
 #, fuzzy, no-c-format
@@ -8622,28 +8587,24 @@ msgid "Enable GPR32 in inline asm when APX_F enabled."
 msgstr ""
 
 #: config/i386/i386.opt:1368
-#, fuzzy, no-c-format
-#| msgid "Support BMI2 built-in functions and code generation."
+#, no-c-format
 msgid "Support 512 bit vector built-in functions and code generation."
-msgstr "支持 BMI2 内建函数及代码生成。"
+msgstr "支持512位矢量内建函数及代码生成。"
 
 #: config/i386/i386.opt:1372
-#, fuzzy, no-c-format
-#| msgid "Support AES built-in functions and code generation."
+#, no-c-format
 msgid "Support USER_MSR built-in functions and code generation."
-msgstr "支持 AES 内建函数及代码生成。"
+msgstr "支持 USER_MSR 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1376 config/i386/i386.opt:1386
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVX10.1 built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVX512F 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVX10.1 内建函数及代码生成。"
 
 #: config/i386/i386.opt:1381
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVX10.1-512 built-in functions and code generation."
-msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVX512F 内建函数及代码生成。"
+msgstr "支持 MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2 和 AVX10.1-512 内建函数及代码生成。"
 
 #: config/pa/pa64-hpux.opt:23
 #, no-c-format
@@ -25405,10 +25366,9 @@ msgid_plural "%qD specifies more restrictive attributes than its target %qD: %s"
 msgstr[0] ""
 
 #: attribs.cc:2333 attribs.cc:2353
-#, fuzzy, gcc-internal-format
-#| msgid "%qD was declared here"
+#, gcc-internal-format
 msgid "%qD target declared here"
-msgstr "%qD在此声明"
+msgstr "%qD目标在此声明"
 
 #: attribs.cc:2347
 #, gcc-internal-format
@@ -25458,10 +25418,9 @@ msgid "offset %qwi outside bounds of constant string"
 msgstr "偏移量越过字符串常量界"
 
 #: builtins.cc:707 cp/name-lookup.cc:6830
-#, fuzzy, gcc-internal-format
-#| msgid "%qD declared here"
+#, gcc-internal-format
 msgid "%qE declared here"
-msgstr "%qD在此声明"
+msgstr "%qE在此声明"
 
 #: builtins.cc:1298
 #, gcc-internal-format
@@ -28429,10 +28388,9 @@ msgid "%<%.*s%> directive argument is not a nul-terminated string"
 msgstr ""
 
 #: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
-#, fuzzy, gcc-internal-format
-#| msgid "template parameter type %qT declared %<friend%>"
+#, gcc-internal-format
 msgid "referenced argument declared here"
-msgstr "模板形参类型%qT声明为%<friend%>"
+msgstr "引用的参数在此声明"
 
 #: gimple-ssa-sprintf.cc:3357
 #, gcc-internal-format
@@ -28644,10 +28602,9 @@ msgid "%qD argument %i declared attribute %<nonstring%>"
 msgstr "%qD在其类外被声明为%<constexpr%>"
 
 #: gimple-ssa-warn-access.cc:671
-#, fuzzy, gcc-internal-format
-#| msgid "%qD declared here"
+#, gcc-internal-format
 msgid "argument %qD declared here"
-msgstr "%qD在此声明"
+msgstr "参数%qD在此声明"
 
 #: gimple-ssa-warn-access.cc:730
 #, fuzzy, gcc-internal-format
@@ -29582,10 +29539,9 @@ msgid "%qD pointer overflow between offset %s and size %s accessing array %qD wi
 msgstr ""
 
 #: gimple-ssa-warn-restrict.cc:1785 c-family/c-warn.cc:3804
-#, fuzzy, gcc-internal-format
-#| msgid "%qD declared here"
+#, gcc-internal-format
 msgid "array %qD declared here"
-msgstr "%qD在此声明"
+msgstr "数组%qD在此声明"
 
 #: gimple-ssa-warn-restrict.cc:1790 gimple-ssa-warn-restrict.cc:1796
 #, gcc-internal-format
@@ -29642,10 +29598,9 @@ msgid "%qD offset %s from the object at %qE is out of the bounds of %qT"
 msgstr "枚举值 %E 对其类型%<%T%>而言太大了"
 
 #: gimple-ssa-warn-restrict.cc:1866 gimple-ssa-warn-restrict.cc:1887
-#, fuzzy, gcc-internal-format
-#| msgid "%qD declared here"
+#, gcc-internal-format
 msgid "subobject %qD declared here"
-msgstr "%qD在此声明"
+msgstr "子对象%qD在此声明"
 
 #: gimple-ssa-warn-restrict.cc:1876
 #, fuzzy, gcc-internal-format
@@ -34517,10 +34472,9 @@ msgid "in this expression"
 msgstr "  在抛出的表达式中"
 
 #: tree-ssa-uninit.cc:306
-#, fuzzy, gcc-internal-format
-#| msgid "%qE is not initialized"
+#, gcc-internal-format
 msgid "%qD is used uninitialized"
-msgstr "%qE未经初始化"
+msgstr "%qD未经初始化被使用"
 
 #: tree-ssa-uninit.cc:308
 #, fuzzy, gcc-internal-format
@@ -34529,10 +34483,9 @@ msgid "%qD may be used uninitialized"
 msgstr "此函数中的%qD在使用前可能未初始化"
 
 #: tree-ssa-uninit.cc:315
-#, fuzzy, gcc-internal-format
-#| msgid "%qE is not initialized"
+#, gcc-internal-format
 msgid "%qs is used uninitialized"
-msgstr "%qE未经初始化"
+msgstr "%qs未经初始化被使用"
 
 #: tree-ssa-uninit.cc:318
 #, fuzzy, gcc-internal-format
@@ -34546,10 +34499,9 @@ msgid "%qD was declared here"
 msgstr "%qD在此声明"
 
 #: tree-ssa-uninit.cc:339
-#, fuzzy, gcc-internal-format
-#| msgid "%qD was declared here"
+#, gcc-internal-format
 msgid "%qs was declared here"
-msgstr "%qD在此声明"
+msgstr "%qs在此声明"
 
 #: tree-ssa-uninit.cc:450 tree-ssa-uninit.cc:760
 #, fuzzy, gcc-internal-format
@@ -34563,10 +34515,9 @@ msgid "accessing argument %u of a function declared with attribute %<%s%>"
 msgstr "忽略声明有 warn_unused_result 属性的函数的返回值"
 
 #: tree-ssa-uninit.cc:747
-#, fuzzy, gcc-internal-format
-#| msgid "%qE is not initialized"
+#, gcc-internal-format
 msgid "%qE is used uninitialized"
-msgstr "%qE未经初始化"
+msgstr "%qE未经初始化被使用"
 
 #: tree-ssa-uninit.cc:882
 #, fuzzy, gcc-internal-format
@@ -39075,9 +39026,9 @@ msgid "conversion from %qT to %qT may change value"
 msgstr "%qT转换自%qT时可能改变值"
 
 #: c-family/c-warn.cc:1459 c-family/c-warn.cc:1477 c-family/c-warn.cc:1494
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "overflow in conversion from %qT to %qT changes value from %qE to %qE"
-msgstr "C++ 中不允许从%qT到%qT的隐式转换"
+msgstr "在从%qT转换为%qT时发生溢出，值从%qE变为%qE"
 
 #: c-family/c-warn.cc:1464 c-family/c-warn.cc:1482 c-family/c-warn.cc:1499
 #, fuzzy, gcc-internal-format
@@ -39317,7 +39268,7 @@ msgstr "数组索引参数类型无效(有%qT)"
 #: c-family/c-warn.cc:1960
 #, gcc-internal-format
 msgid "invalid type argument of unary %<*%> (have %qT)"
-msgstr "一元 %<*%>参数类型无效(有%qT) "
+msgstr "一元 %<*%>参数类型无效(有%qT)"
 
 #: c-family/c-warn.cc:1965
 #, gcc-internal-format
@@ -54885,8 +54836,7 @@ msgstr "将 NULL 作为非指针实参 %P 传递给%qD"
 
 #: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
 #: cp/typeck.cc:4602
-#, fuzzy, gcc-internal-format
-#| msgid "declared here"
+#, gcc-internal-format
 msgid "  declared here"
 msgstr "在此声明"
 
@@ -55212,9 +55162,9 @@ msgid "%qD moving an object of non-trivial type %#qT and size %E into a region o
 msgstr ""
 
 #: cp/call.cc:11067
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%#qT declared here"
-msgstr "在此声明"
+msgstr "%#qT在此声明"
 
 #: cp/call.cc:11121
 #, fuzzy, gcc-internal-format
@@ -55463,9 +55413,9 @@ msgstr ""
 
 #: cp/class.cc:1694 cp/class.cc:1701 cp/class.cc:1708 cp/class.cc:1720
 #: cp/cvt.cc:1118 rust/backend/rust-tree.cc:643
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qT declared here"
-msgstr "在此声明"
+msgstr "%qT在此声明"
 
 #: cp/class.cc:1699
 #, gcc-internal-format
@@ -55674,9 +55624,9 @@ msgid "  but does not declare %<operator=(const %T&)%>"
 msgstr "但没有重载%<operator=(const %T&)%>"
 
 #: cp/class.cc:4228
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "pointer member %q+D declared here"
-msgstr "%q+D已在此声明过"
+msgstr "指针成员%q+D已在此声明过"
 
 #: cp/class.cc:4316
 #, gcc-internal-format
@@ -55826,9 +55776,9 @@ msgid "invalid use of %q#T with a flexible array member in %q#T"
 msgstr "对包含可变数组成员的结构的无效使用"
 
 #: cp/class.cc:7603
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "array member %q#D declared here"
-msgstr "%q+D已在此声明过"
+msgstr "数组成员%q#D已在此声明过"
 
 #: cp/class.cc:7631
 #, fuzzy, gcc-internal-format
@@ -56116,10 +56066,9 @@ msgid "dynamic type %qT of its operand does not have a base class of type %qT"
 msgstr "类型%qT不是类型%qT的基类"
 
 #: cp/constexpr.cc:2566
-#, fuzzy, gcc-internal-format
-#| msgid "variable %D of type %<io%> must be uninitialized"
+#, gcc-internal-format
 msgid "virtual table pointer is used uninitialized"
-msgstr "类型为%<io%>的变量 %D 不能被初始化"
+msgstr "虚拟表指针未初始化被使用"
 
 #: cp/constexpr.cc:2598 cp/constexpr.cc:2631
 #, gcc-internal-format
@@ -57432,10 +57381,9 @@ msgid "the coroutine promise type %qT declares both %<return_value%> and %<retur
 msgstr ""
 
 #: cp/coroutines.cc:515
-#, fuzzy, gcc-internal-format
-#| msgid "%qD was declared here"
+#, gcc-internal-format
 msgid "%<return_void%> declared here"
-msgstr "%qD在此声明"
+msgstr "%<return_void%>在此声明"
 
 #: cp/coroutines.cc:648 cp/coroutines.cc:726 cp/coroutines.cc:4283
 #, fuzzy, gcc-internal-format
@@ -58076,10 +58024,9 @@ msgid "unused structured binding declaration"
 msgstr "无效的函数声明"
 
 #: cp/decl.cc:718
-#, fuzzy, gcc-internal-format
-#| msgid "unused variable %q+D"
+#, gcc-internal-format
 msgid "unused variable %qD"
-msgstr "未使用的变量%q+D"
+msgstr "未使用的变量%qD"
 
 #: cp/decl.cc:728
 #, gcc-internal-format
@@ -58271,9 +58218,9 @@ msgstr "%q+#D已在此定义过"
 
 #: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
 #: cp/name-lookup.cc:3434
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%q#D previously declared here"
-msgstr "%q+#D已在此定义过"
+msgstr "%q#D已在此定义过"
 
 #: cp/decl.cc:2097
 #, fuzzy, gcc-internal-format
@@ -58583,7 +58530,7 @@ msgstr "%q#T不是一个类"
 #: cp/decl.cc:4528 cp/decl.cc:4629
 #, gcc-internal-format
 msgid "no class template named %q#T in %q#T"
-msgstr "没有名为%q#T的类模板，在%q#T中 "
+msgstr "没有名为%q#T的类模板，在%q#T中"
 
 #: cp/decl.cc:4529
 #, fuzzy, gcc-internal-format
@@ -62021,10 +61968,9 @@ msgid "reference %qD is not yet bound to a value when used here"
 msgstr ""
 
 #: cp/init.cc:912
-#, fuzzy, gcc-internal-format
-#| msgid "member %qD is uninitialized reference"
+#, gcc-internal-format
 msgid "member %qD is used uninitialized"
-msgstr "成员%qD是未初始化的引用"
+msgstr "成员%qD未经初始化被使用"
 
 #: cp/init.cc:991
 #, gcc-internal-format
@@ -62859,10 +62805,9 @@ msgid "cannot import module in its own purview"
 msgstr ""
 
 #: cp/module.cc:14385 cp/module.cc:19710
-#, fuzzy, gcc-internal-format
-#| msgid "%qD declared here"
+#, gcc-internal-format
 msgid "module %qs declared here"
-msgstr "%qD在此声明"
+msgstr "模组%qs在此声明"
 
 #: cp/module.cc:14729
 #, gcc-internal-format
@@ -64308,9 +64253,9 @@ msgstr "%qD不是一个变量"
 
 #: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
 #: cp/semantics.cc:4260
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%q#D declared here"
-msgstr "%q+D已在此声明过"
+msgstr "%q#D在此声明"
 
 #: cp/parser.cc:11694
 #, fuzzy, gcc-internal-format
@@ -66274,9 +66219,9 @@ msgid "%qs tag used in naming %q#T"
 msgstr "使用了%qs标记，在命名%q#T时"
 
 #: cp/parser.cc:35014
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%q#T was previously declared here"
-msgstr "以前在此声明过"
+msgstr "%q#T之前在此声明过"
 
 #: cp/parser.cc:35135
 #, fuzzy, gcc-internal-format
@@ -66883,10 +66828,9 @@ msgid "declaration of %q+#D shadows template parameter"
 msgstr "%q+D的声明隐藏了一个形参"
 
 #: cp/pt.cc:4495
-#, fuzzy, gcc-internal-format
-#| msgid "template parameter type %qT declared %<friend%>"
+#, gcc-internal-format
 msgid "template parameter %qD declared here"
-msgstr "模板形参类型%qT声明为%<friend%>"
+msgstr "模板参数%qD在此声明"
 
 #: cp/pt.cc:5179
 #, fuzzy, gcc-internal-format
@@ -67103,10 +67047,9 @@ msgid "redeclared here as %q#D"
 msgstr "在这里又被声明为%q#D"
 
 #: cp/pt.cc:6412
-#, fuzzy, gcc-internal-format
-#| msgid "declared here"
+#, gcc-internal-format
 msgid "redeclared here"
-msgstr "在此声明"
+msgstr "在这里又被声明"
 
 #: cp/pt.cc:6423
 #, fuzzy, gcc-internal-format
@@ -68203,10 +68146,9 @@ msgid "explicit object member function overrides virtual function"
 msgstr "内建函数%q+D未被声明为函数"
 
 #: cp/search.cc:2295
-#, fuzzy, gcc-internal-format
-#| msgid "indirect function %q+D cannot be declared weakref"
+#, gcc-internal-format
 msgid "virtual function declared here"
-msgstr "内联函数%q+D不能声明为有弱链接"
+msgstr "虚函数在此声明"
 
 #: cp/semantics.cc:1114
 #, gcc-internal-format
@@ -68953,8 +68895,7 @@ msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling conventio
 msgstr ""
 
 #: cp/tree.cc:4535
-#, fuzzy, gcc-internal-format
-#| msgid "declared here"
+#, gcc-internal-format
 msgid " declared here"
 msgstr "在此声明"
 
@@ -69744,7 +69685,7 @@ msgstr "无法取右值表达式%<this%>的地址"
 #: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
 #, gcc-internal-format
 msgid "address of explicit register variable %qD requested"
-msgstr "要求显式寄存器变量%qD的地址。"
+msgstr "要求显式寄存器变量%qD的地址"
 
 #: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
 #, gcc-internal-format
@@ -79506,7 +79447,7 @@ msgstr "在%C处需要“,”"
 #: fortran/openmp.cc:6145
 #, gcc-internal-format, gfc-internal-format
 msgid "Threadprivate variable at %C is an element of a COMMON block"
-msgstr " %C 处线程局部变量是个 COMMON 块的元素"
+msgstr "%C 处线程局部变量是个 COMMON 块的元素"
 
 #: fortran/openmp.cc:6182
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -81007,7 +80948,7 @@ msgstr "%C处 SEQUENCE 语句必须先于 CONTAINS"
 #: fortran/parse.cc:3426
 #, gcc-internal-format, gfc-internal-format
 msgid "Already inside a CONTAINS block at %C"
-msgstr "%C处已在一个 CONTAINS 块内部 "
+msgstr "%C处已在一个 CONTAINS 块内部"
 
 #: fortran/parse.cc:3545
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -86268,9 +86209,9 @@ msgid "size of %qD differ from the size of original declaration"
 msgstr "类型%qD不匹配原先的声明"
 
 #: lto/lto-symtab.cc:757
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD was previously declared here"
-msgstr "以前在此声明过"
+msgstr "%qD以前在此声明过"
 
 #: lto/lto-symtab.cc:760
 #, gcc-internal-format
@@ -86856,7 +86797,7 @@ msgstr "已弃用类 %qE"
 #: objc/objc-act.cc:1842
 #, gcc-internal-format
 msgid "could not find setter/getter for %qE in class %qE"
-msgstr "类 %2$qE 中找不到 %1$qE 的存取器。"
+msgstr "类 %2$qE 中找不到 %1$qE 的存取器"
 
 #: objc/objc-act.cc:1892
 #, fuzzy, gcc-internal-format

commit 87aea23f9d96608ab48eb6bb000d81e5f0c18f1e
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Aug 28 00:24:02 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 0f44912c686..00e43a06f4d 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240826
+20240828
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 1be188ad53c..8ba0a78ce36 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2024-08-27  Joseph Myers  <josmyers@redhat.com>
+
+	* zh_CN.po: Update.
+
 2024-08-05  Joseph Myers  <josmyers@redhat.com>
 
 	* fr.po: Update.
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index fa9e1079920..e7c752c7e7a 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,10 @@
+2024-08-27  YunQiang Su  <syq@gcc.gnu.org>
+
+	Backported from master:
+	2024-08-27  YunQiang Su  <syq@gcc.gnu.org>
+
+	* config/mips/lib1funcs.S: Includes mips16.S.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit 377c3e9a8b73b47a1211d43fee162179ee1f87e7
Author: Xi Ruoyao <xry111@xry111.site>
Date:   Mon May 6 11:33:43 2024 +0800

    i386: testsuite: Add -no-pie for pr113689-1.c [PR70150]
    
    For a --enable-default-pie build, using -fno-pic (for compiler) but
    not -no-pie (for linker) triggers some linker warnings counted as
    excess errors:
    
        /usr/bin/ld: /tmp/cc8MgxiR.o: warning: relocation in read-only
        section `.text.startup'
        /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
    
    gcc/testsuite/ChangeLog:
    
            PR testsuite/70150
            * gcc.target/i386/pr113689-1.c (dg-options): Add -no-pie.
    
    (cherry picked from commit 331f7d8a393af99afccdb2729d4ab45797fd7a86)

diff --git a/gcc/testsuite/gcc.target/i386/pr113689-1.c b/gcc/testsuite/gcc.target/i386/pr113689-1.c
index 9b8474ed933..0424db2dfdc 100644
--- a/gcc/testsuite/gcc.target/i386/pr113689-1.c
+++ b/gcc/testsuite/gcc.target/i386/pr113689-1.c
@@ -1,5 +1,5 @@
 /* { dg-do run { target { lp64 && fpic } } } */
-/* { dg-options "-O2 -fno-pic -fprofile -mcmodel=large" } */
+/* { dg-options "-O2 -fno-pic -no-pie -fprofile -mcmodel=large" } */
 /* { dg-skip-if "PR90698" { *-*-darwin* } } */
 /* { dg-skip-if "PR113909" { *-*-solaris2* } } */
 

commit f5b3dae221e6e41ebd806f504d83012173737dab
Author: Xi Ruoyao <xry111@xry111.site>
Date:   Mon May 6 11:39:14 2024 +0800

    i386: testsuite: Adapt fentryname3.c for r14-811 change [PR70150]
    
    After r14-811 "call *nop@GOTPCREL(%rip)" is only generated with
    -mno-direct-extern-access even if --enable-default-pie.  So the r13-1614
    change to this file is not valid anymore.
    
    gcc/testsuite/ChangeLog:
    
            PR testsuite/70150
            * gcc.target/i386/fentryname3.c (dg-final): Revert r13-1614
            change.
    
    (cherry picked from commit 8035619b7313d9503852e1c7c8c06cfddca4d648)

diff --git a/gcc/testsuite/gcc.target/i386/fentryname3.c b/gcc/testsuite/gcc.target/i386/fentryname3.c
index c14a4ebb0cf..bd7c997c178 100644
--- a/gcc/testsuite/gcc.target/i386/fentryname3.c
+++ b/gcc/testsuite/gcc.target/i386/fentryname3.c
@@ -3,8 +3,7 @@
 /* { dg-require-profiling "-pg" } */
 /* { dg-options "-pg -mfentry"  } */
 /* { dg-final { scan-assembler "section.*__entry_loc" } } */
-/* { dg-final { scan-assembler "0x0f, 0x1f, 0x44, 0x00, 0x00" { target nonpic } } } */
-/* { dg-final { scan-assembler "call\t\\*nop@GOTPCREL" { target { ! nonpic } } } } */
+/* { dg-final { scan-assembler "0x0f, 0x1f, 0x44, 0x00, 0x00" } } */
 /* { dg-final { scan-assembler-not "__fentry__" } } */
 
 __attribute__((fentry_name("nop"), fentry_section("__entry_loc")))

commit 4d6c0c0a0b8bbaecc186eb77928594825f5aba48
Author: Joseph Myers <josmyers@redhat.com>
Date:   Wed Aug 28 16:32:11 2024 +0000

    Add gcc ka.po
    
            * ka.po: New file.

diff --git a/gcc/po/ka.po b/gcc/po/ka.po
new file mode 100644
index 00000000000..bcb6e56c568
--- /dev/null
+++ b/gcc/po/ka.po
@@ -0,0 +1,83090 @@
+# Georgian translation for gcc.
+# Copyright (C) 2024 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2024.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcc-14.2.0\n"
+"Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
+"POT-Creation-Date: 2024-07-25 16:23+0000\n"
+"PO-Revision-Date: 2024-08-28 06:11+0200\n"
+"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
+"Language-Team: Georgian <(nothing)>\n"
+"Language: ka\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 3.3.2\n"
+
+#: cif-code.def:39
+msgid "function not considered for inlining"
+msgstr ""
+
+#: cif-code.def:43
+msgid "caller is not optimized"
+msgstr ""
+
+#: cif-code.def:47
+msgid "function body not available"
+msgstr ""
+
+#: cif-code.def:51
+msgid "redefined extern inline functions are not considered for inlining"
+msgstr ""
+
+#: cif-code.def:56
+msgid "function not inlinable"
+msgstr ""
+
+#: cif-code.def:60
+msgid "function body can be overwritten at link time"
+msgstr ""
+
+#: cif-code.def:64
+msgid "function not inline candidate"
+msgstr ""
+
+#: cif-code.def:68
+msgid "--param large-function-growth limit reached"
+msgstr ""
+
+#: cif-code.def:70
+msgid "--param large-stack-frame-growth limit reached"
+msgstr ""
+
+#: cif-code.def:72
+msgid "--param max-inline-insns-single limit reached"
+msgstr ""
+
+#: cif-code.def:74
+msgid "--param max-inline-insns-auto limit reached"
+msgstr ""
+
+#: cif-code.def:76
+msgid "--param inline-unit-growth limit reached"
+msgstr ""
+
+#: cif-code.def:80
+msgid "recursive inlining"
+msgstr ""
+
+#: cif-code.def:84
+msgid "call is unlikely and code size would grow"
+msgstr ""
+
+#: cif-code.def:88
+msgid "call is considered never executed and code size would grow"
+msgstr ""
+
+#: cif-code.def:92
+msgid "function not declared inline and code size would grow"
+msgstr ""
+
+#: cif-code.def:96
+msgid "mismatched declarations during linktime optimization"
+msgstr ""
+
+#: cif-code.def:100
+msgid "variadic thunk call"
+msgstr ""
+
+#: cif-code.def:104
+msgid "originally indirect function call not considered for inlining"
+msgstr ""
+
+#: cif-code.def:108
+msgid "indirect function call with a yet undetermined callee"
+msgstr ""
+
+#: cif-code.def:112
+msgid "exception handling personality mismatch"
+msgstr ""
+
+#: cif-code.def:117
+msgid "non-call exception handling mismatch"
+msgstr ""
+
+#: cif-code.def:121
+msgid "target specific option mismatch"
+msgstr ""
+
+#: cif-code.def:125
+msgid "optimization level attribute mismatch"
+msgstr ""
+
+#: cif-code.def:129
+msgid "callee refers to comdat-local symbols"
+msgstr ""
+
+#: cif-code.def:134
+msgid "sanitizer function attribute mismatch"
+msgstr ""
+
+#: cif-code.def:139
+msgid "function has external linkage when the user requests only inlining static for live patching"
+msgstr ""
+
+#: cif-code.def:144
+msgid "unreachable"
+msgstr ""
+
+#. The remainder are real diagnostic types.
+#: diagnostic.def:33
+msgid "fatal error: "
+msgstr "ფატალური შეცდომა: "
+
+#. This is like DK_ICE, but backtrace is not printed.  Used in the driver
+#. when reporting fatal signal in the compiler.
+#: diagnostic.def:34 diagnostic.def:55
+msgid "internal compiler error: "
+msgstr "შიდა კომპლატორის შეცდომა: "
+
+#. This one is just for counting DK_WARNING promoted to DK_ERROR
+#. due to -Werror and -Werror=warning.
+#: diagnostic.def:35 diagnostic.def:52
+msgid "error: "
+msgstr ""
+
+#: diagnostic.def:36
+msgid "sorry, unimplemented: "
+msgstr "განხორციელებული არაა: "
+
+#: diagnostic.def:37
+msgid "warning: "
+msgstr "გაფრთხილება: "
+
+#: diagnostic.def:38
+msgid "anachronism: "
+msgstr "ანაქრონიზმი: "
+
+#: diagnostic.def:39
+msgid "note: "
+msgstr ""
+
+#: diagnostic.def:40
+msgid "debug: "
+msgstr "გამართვა: "
+
+#. For use when using the diagnostic_show_locus machinery to show
+#. a range of events within a path.
+#: diagnostic.def:44
+msgid "path: "
+msgstr ""
+
+#. These two would be re-classified as DK_WARNING or DK_ERROR, so the
+#. prefix does not matter.
+#: diagnostic.def:48
+msgid "pedwarn: "
+msgstr ""
+
+#: diagnostic.def:49
+msgid "permerror: "
+msgstr ""
+
+#: config/i386/djgpp.h:143
+#, c-format
+msgid "-f%s ignored (not supported for DJGPP)\n"
+msgstr ""
+
+#. The remainder are real diagnostic types.
+#: fortran/gfc-diagnostic.def:33
+msgid "Fatal Error"
+msgstr "ფატალური შეცდომა"
+
+#. This is like DK_ICE, but backtrace is not printed.  Used in the driver
+#. when reporting fatal signal in the compiler.
+#: fortran/gfc-diagnostic.def:34 fortran/gfc-diagnostic.def:50
+msgid "internal compiler error"
+msgstr "შიდა კომპლატორის შეცდომა"
+
+#: fortran/gfc-diagnostic.def:35
+msgid "Error"
+msgstr ""
+
+#: fortran/gfc-diagnostic.def:36
+msgid "sorry, unimplemented"
+msgstr "განხორციელებული არაა"
+
+#: fortran/gfc-diagnostic.def:37
+msgid "Warning"
+msgstr "გაფრთხილება"
+
+#: fortran/gfc-diagnostic.def:38
+msgid "anachronism"
+msgstr "ანაქრონიზმი"
+
+#: fortran/gfc-diagnostic.def:39
+msgid "note"
+msgstr "შენიშვნა"
+
+#: fortran/gfc-diagnostic.def:40
+msgid "debug"
+msgstr "გამართვა"
+
+#. These two would be re-classified as DK_WARNING or DK_ERROR, so the
+#. prefix does not matter.
+#: fortran/gfc-diagnostic.def:43
+msgid "pedwarn"
+msgstr ""
+
+#: fortran/gfc-diagnostic.def:44
+msgid "permerror"
+msgstr ""
+
+#. This one is just for counting DK_WARNING promoted to DK_ERROR
+#. due to -Werror and -Werror=warning.
+#: fortran/gfc-diagnostic.def:47
+msgid "error"
+msgstr ""
+
+#: gcc.cc:852 gcc.cc:909
+msgid "-gz is not supported in this configuration"
+msgstr ""
+
+#: gcc.cc:858
+msgid "-gz=zstd is not supported in this configuration"
+msgstr ""
+
+#: gcc.cc:1092
+msgid "-fuse-linker-plugin is not supported in this configuration"
+msgstr ""
+
+#: gcc.cc:1108
+msgid "cannot specify -static with -fsanitize=address"
+msgstr ""
+
+#: gcc.cc:1110
+msgid "cannot specify -static with -fsanitize=hwaddress"
+msgstr ""
+
+#: gcc.cc:1112
+msgid "cannot specify -static with -fsanitize=thread"
+msgstr ""
+
+#: gcc.cc:1134
+msgid "-fvtable-verify=std is not supported in this configuration"
+msgstr ""
+
+#: gcc.cc:1136
+msgid "-fvtable-verify=preinit is not supported in this configuration"
+msgstr ""
+
+#: gcc.cc:1279 ada/gcc-interface/lang-specs.h:37
+msgid "-pg and -fomit-frame-pointer are incompatible"
+msgstr ""
+
+#: gcc.cc:1454
+msgid "GNU C no longer supports -traditional without -E"
+msgstr ""
+
+#: gcc.cc:1463
+msgid "-E or -x required when input is from standard input"
+msgstr ""
+
+#: config/darwin.h:150
+msgid "conflicting code generation switches"
+msgstr ""
+
+#: config/darwin.h:155
+msgid "-bundle_loader not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:157
+msgid "-client_name not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:166
+msgid "-keep_private_externs not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:168
+msgid "-private_bundle not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:176
+msgid "-compatibility_version only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:178
+msgid "-current_version only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:180
+msgid "-install_name only allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:191
+msgid "-bundle not allowed with -shared"
+msgstr ""
+
+#: config/darwin.h:192
+msgid "-bundle not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:208
+msgid "-force_flat_namespace not allowed with -dynamiclib"
+msgstr ""
+
+#: config/darwin.h:213 config/darwin.h:659
+msgid "gsplit-dwarf is not supported on this platform"
+msgstr ""
+
+#: config/darwin.h:282
+msgid "rdynamic is not supported"
+msgstr ""
+
+#: config/dragonfly.h:76 config/i386/freebsd.h:82 config/i386/freebsd64.h:35
+#: config/ia64/freebsd.h:26 config/rs6000/sysv4.h:750 config/sparc/freebsd.h:45
+msgid "consider using '-pg' instead of '-p' with gprof(1)"
+msgstr ""
+
+#: config/lynx.h:69
+msgid "cannot use mthreads and mlegacy-threads together"
+msgstr ""
+
+#: config/lynx.h:94
+msgid "cannot use mshared and static together"
+msgstr ""
+
+#: config/sol2.h:349 config/sol2.h:354
+msgid "does not support multilib"
+msgstr ""
+
+#: config/sol2.h:448
+msgid "-pie is not supported in this configuration"
+msgstr ""
+
+#: config/vxworks.h:219
+msgid "-Xbind-now and -Xbind-lazy are incompatible"
+msgstr ""
+
+#: config/aarch64/aarch64-freebsd.h:37 config/arm/freebsd.h:49
+#: config/riscv/freebsd.h:44
+msgid "consider using `-pg' instead of `-p' with gprof (1)"
+msgstr ""
+
+#: config/arc/arc.h:68 config/mips/mips.h:1505
+msgid "may not use both -EB and -EL"
+msgstr ""
+
+#: config/avr/specs.h:70 config/pru/pru.h:58
+msgid "shared is not supported"
+msgstr "ზიარი მხარდაჭერილი არაა"
+
+#: config/bfin/elf.h:55
+msgid "no processor type specified for linking"
+msgstr ""
+
+#: config/cris/cris.h:168
+msgid "do not specify both -march=... and -mcpu=..."
+msgstr ""
+
+#: config/i386/cygwin-w64.h:64 config/i386/cygwin.h:129
+#: config/i386/mingw-w64.h:125 config/i386/mingw32.h:169
+msgid "shared and mdll are not compatible"
+msgstr ""
+
+#: config/i386/darwin.h:93
+msgid "Darwin is not an mx32 platform"
+msgstr ""
+
+#: config/i386/darwin.h:94
+msgid "Darwin does not support -mfentry or associated options"
+msgstr ""
+
+#: config/i386/sol2.h:59
+msgid "-mx32 is not supported on Solaris"
+msgstr ""
+
+#: config/mcore/mcore.h:53
+msgid "the m210 does not have little endian support"
+msgstr ""
+
+#: config/mips/r3900.h:37
+msgid "-mhard-float not supported"
+msgstr "-mhard-float მხარდაჭერილი არაა"
+
+#: config/mips/r3900.h:39
+msgid "-msingle-float and -msoft-float cannot both be specified"
+msgstr ""
+
+#: config/moxie/moxiebox.h:43
+msgid "this target is little-endian"
+msgstr ""
+
+#: config/msp430/msp430.h:90
+msgid "-mcode-region requires the large memory model (-mlarge)"
+msgstr ""
+
+#: config/msp430/msp430.h:92
+msgid "-mdata-region requires the large memory model (-mlarge)"
+msgstr ""
+
+#: config/nios2/elf.h:44
+msgid "You need a C startup file for -msys-crt0="
+msgstr ""
+
+#: config/pa/pa-hpux11.h:134 config/pa/pa-hpux11.h:137 config/pa/pa64-hpux.h:29
+#: config/pa/pa64-hpux.h:32 config/pa/pa64-hpux.h:41 config/pa/pa64-hpux.h:44
+msgid "warning: consider linking with '-static' as system libraries with"
+msgstr ""
+
+#: config/pa/pa-hpux11.h:135 config/pa/pa-hpux11.h:138 config/pa/pa64-hpux.h:30
+#: config/pa/pa64-hpux.h:33 config/pa/pa64-hpux.h:42 config/pa/pa64-hpux.h:45
+msgid "  profiling support are only provided in archive format"
+msgstr ""
+
+#: config/rs6000/darwin.h:126
+msgid " conflicting code gen style switches are used"
+msgstr ""
+
+#: config/rs6000/freebsd64.h:114
+msgid "consider using `-pg' instead of `-p' with gprof(1)"
+msgstr ""
+
+#: config/rs6000/rs6000.h:168
+msgid "Missing -mcpu option in ASM_CPU_SPEC?"
+msgstr ""
+
+#: config/rx/linux.h:53 config/rx/rx.h:82
+msgid "rx200 cpu does not have FPU hardware"
+msgstr ""
+
+#: config/rx/rx.h:80
+msgid "-mas100-syntax is incompatible with -gdwarf"
+msgstr ""
+
+#: config/rx/rx.h:81
+msgid "rx100 cpu does not have FPU hardware"
+msgstr ""
+
+#: config/s390/tpf.h:119
+msgid "static is not supported on TPF-OS"
+msgstr ""
+
+#: config/sh/sh.h:299 config/sh/sh.h:302
+msgid "SH2a does not support little-endian"
+msgstr ""
+
+#: config/sparc/linux64.h:142
+msgid "-fsanitize=address is not supported in this configuration"
+msgstr ""
+
+#: config/sparc/linux64.h:156 config/sparc/linux64.h:162
+#: config/sparc/netbsd-elf.h:103 config/sparc/netbsd-elf.h:112
+#: config/sparc/sol2.h:237 config/sparc/sol2.h:243
+msgid "may not use both -m32 and -m64"
+msgstr ""
+
+#: config/vax/netbsd-elf.h:51
+msgid "the -shared option is not currently supported for VAX ELF"
+msgstr ""
+
+#: config/vax/vax.h:46 config/vax/vax.h:47
+msgid "profiling not supported with -mg"
+msgstr ""
+
+#: ada/gcc-interface/lang-specs.h:38
+msgid "-c or -S required for Ada"
+msgstr ""
+
+#: ada/gcc-interface/lang-specs.h:56
+msgid "-c required for gnat2why"
+msgstr ""
+
+#: ada/gcc-interface/lang-specs.h:67
+msgid "-c required for gnat2scil"
+msgstr ""
+
+#: fortran/lang-specs.h:63 fortran/lang-specs.h:81
+msgid "gfortran does not support -E without -cpp"
+msgstr ""
+
+#: objc/lang-specs.h:30 objc/lang-specs.h:41
+msgid "GNU Objective C no longer supports traditional compilation"
+msgstr ""
+
+#: objc/lang-specs.h:55
+msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead"
+msgstr ""
+
+#: objcp/lang-specs.h:58
+msgid "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead"
+msgstr ""
+
+#: fortran/lang.opt:146
+#, no-c-format
+msgid "-J<directory>\tPut MODULE files in 'directory'."
+msgstr ""
+
+#: fortran/lang.opt:198
+#, no-c-format
+msgid "Warn about possible aliasing of dummy arguments."
+msgstr ""
+
+#: fortran/lang.opt:202
+#, no-c-format
+msgid "Warn about alignment of COMMON blocks."
+msgstr ""
+
+#: fortran/lang.opt:206
+#, no-c-format
+msgid "Warn about missing ampersand in continued character constants."
+msgstr ""
+
+#: fortran/lang.opt:210
+#, no-c-format
+msgid "Warn about creation of array temporaries."
+msgstr ""
+
+#: fortran/lang.opt:214 fortran/lang.opt:539 c-family/c.opt:1598
+#: config/alpha/alpha.opt:31 common.opt:685 common.opt:831 common.opt:1079
+#: common.opt:1083 common.opt:1087 common.opt:1091 common.opt:1819
+#: common.opt:1922 common.opt:2099 common.opt:2103 common.opt:2382
+#: common.opt:2604 common.opt:3371
+#, no-c-format
+msgid "Does nothing. Preserved for backward compatibility."
+msgstr ""
+
+#: fortran/lang.opt:218
+#, no-c-format
+msgid "Warn if the type of a variable might be not interoperable with C."
+msgstr ""
+
+#: fortran/lang.opt:226
+#, no-c-format
+msgid "Warn about truncated character expressions."
+msgstr ""
+
+#: fortran/lang.opt:230
+#, no-c-format
+msgid "Warn about equality comparisons involving REAL or COMPLEX expressions."
+msgstr ""
+
+#: fortran/lang.opt:238
+#, no-c-format
+msgid "Warn about most implicit conversions."
+msgstr ""
+
+#: fortran/lang.opt:242
+#, no-c-format
+msgid "Warn about possibly incorrect subscripts in do loops."
+msgstr ""
+
+#: fortran/lang.opt:250
+#, no-c-format
+msgid "Warn if loops have been interchanged."
+msgstr ""
+
+#: fortran/lang.opt:254
+#, no-c-format
+msgid "Warn about function call elimination."
+msgstr ""
+
+#: fortran/lang.opt:258
+#, no-c-format
+msgid "Warn about calls with implicit interface."
+msgstr ""
+
+#: fortran/lang.opt:262
+#, no-c-format
+msgid "Warn about called procedures not explicitly declared."
+msgstr ""
+
+#: fortran/lang.opt:266
+#, no-c-format
+msgid "Warn about constant integer divisions with truncated results."
+msgstr ""
+
+#: fortran/lang.opt:270
+#, no-c-format
+msgid "Warn about truncated source lines."
+msgstr ""
+
+#: fortran/lang.opt:274
+#, no-c-format
+msgid "Warn on intrinsics not part of the selected standard."
+msgstr ""
+
+#: fortran/lang.opt:286
+#, no-c-format
+msgid "Warn about USE statements that have no ONLY qualifier."
+msgstr ""
+
+#: fortran/lang.opt:302
+#, no-c-format
+msgid "Warn that -fno-automatic may break recursion."
+msgstr ""
+
+#: fortran/lang.opt:310
+#, no-c-format
+msgid "Warn about real-literal-constants with 'q' exponent-letter."
+msgstr ""
+
+#: fortran/lang.opt:314
+#, no-c-format
+msgid "Warn when a left-hand-side array variable is reallocated."
+msgstr ""
+
+#: fortran/lang.opt:318
+#, no-c-format
+msgid "Warn when a left-hand-side variable is reallocated."
+msgstr ""
+
+#: fortran/lang.opt:322
+#, no-c-format
+msgid "Warn if the pointer in a pointer assignment might outlive its target."
+msgstr ""
+
+#: fortran/lang.opt:330
+#, no-c-format
+msgid "Warn about \"suspicious\" constructs."
+msgstr ""
+
+#: fortran/lang.opt:334
+#, no-c-format
+msgid "Permit nonconforming uses of the tab character."
+msgstr ""
+
+#: fortran/lang.opt:338
+#, no-c-format
+msgid "Warn about an invalid DO loop."
+msgstr ""
+
+#: fortran/lang.opt:342
+#, no-c-format
+msgid "Warn about underflow of numerical constant expressions."
+msgstr ""
+
+#: fortran/lang.opt:350
+#, no-c-format
+msgid "Warn if a user-procedure has the same name as an intrinsic."
+msgstr ""
+
+#: fortran/lang.opt:358
+#, no-c-format
+msgid "Warn about unused dummy arguments."
+msgstr ""
+
+#: fortran/lang.opt:362
+#, no-c-format
+msgid "Warn about zero-trip DO loops."
+msgstr ""
+
+#: fortran/lang.opt:366
+#, no-c-format
+msgid "Enable preprocessing."
+msgstr ""
+
+#: fortran/lang.opt:374
+#, no-c-format
+msgid "Disable preprocessing."
+msgstr ""
+
+#: fortran/lang.opt:382
+#, no-c-format
+msgid "Accept argument mismatches in procedure calls."
+msgstr ""
+
+#: fortran/lang.opt:386
+#, no-c-format
+msgid "Eliminate multiple function invocations also for impure functions."
+msgstr ""
+
+#: fortran/lang.opt:390
+#, no-c-format
+msgid "Enable alignment of COMMON blocks."
+msgstr ""
+
+#: fortran/lang.opt:394
+#, no-c-format
+msgid "All intrinsics procedures are available regardless of selected standard."
+msgstr ""
+
+#: fortran/lang.opt:398
+#, no-c-format
+msgid "Allow a BOZ literal constant to appear in an invalid context and with X instead of Z."
+msgstr ""
+
+#: fortran/lang.opt:406
+#, no-c-format
+msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements."
+msgstr ""
+
+#: fortran/lang.opt:410
+#, no-c-format
+msgid "Specify that backslash in string introduces an escape character."
+msgstr ""
+
+#: fortran/lang.opt:414
+#, no-c-format
+msgid "Produce a backtrace when a runtime error is encountered."
+msgstr ""
+
+#: fortran/lang.opt:418
+#, no-c-format
+msgid "-fblas-matmul-limit=<n>\tSize of the smallest matrix for which matmul will use BLAS."
+msgstr ""
+
+#: fortran/lang.opt:425
+#, no-c-format
+msgid "Produce a warning at runtime if a array temporary has been created for a procedure argument."
+msgstr ""
+
+#: fortran/lang.opt:429
+#, no-c-format
+msgid "-fconvert=<big-endian|little-endian|native|swap|r16_ieee|r16_ibm>\tThe endianness used for unformatted files."
+msgstr ""
+
+#: fortran/lang.opt:454
+#, no-c-format
+msgid "Use the Cray Pointer extension."
+msgstr ""
+
+#: fortran/lang.opt:458
+#, no-c-format
+msgid "Generate C prototypes from BIND(C) declarations."
+msgstr ""
+
+#: fortran/lang.opt:462
+#, no-c-format
+msgid "Generate C prototypes from non-BIND(C) external procedure definitions."
+msgstr ""
+
+#: fortran/lang.opt:466
+#, no-c-format
+msgid "Ignore 'D' in column one in fixed form."
+msgstr ""
+
+#: fortran/lang.opt:470
+#, no-c-format
+msgid "Treat lines with 'D' in column one as comments."
+msgstr ""
+
+#: fortran/lang.opt:474
+#, no-c-format
+msgid "Issue debug information for compiler-generated auxiliary variables."
+msgstr ""
+
+#: fortran/lang.opt:478
+#, no-c-format
+msgid "Enable all DEC language extensions."
+msgstr ""
+
+#: fortran/lang.opt:482
+#, no-c-format
+msgid "Enable the use of blank format items in format strings."
+msgstr ""
+
+#: fortran/lang.opt:486
+#, no-c-format
+msgid "Enable the use of character literals in assignments and data statements for non-character variables."
+msgstr ""
+
+#: fortran/lang.opt:491
+#, no-c-format
+msgid "Enable legacy parsing of INCLUDE as statement."
+msgstr ""
+
+#: fortran/lang.opt:495
+#, no-c-format
+msgid "Enable default widths for i, f and g format specifiers."
+msgstr ""
+
+#: fortran/lang.opt:499
+#, no-c-format
+msgid "Enable kind-specific variants of integer intrinsic functions."
+msgstr ""
+
+#: fortran/lang.opt:503
+#, no-c-format
+msgid "Enable legacy math intrinsics for compatibility."
+msgstr ""
+
+#: fortran/lang.opt:507
+#, no-c-format
+msgid "Enable support for DEC STRUCTURE/RECORD."
+msgstr ""
+
+#: fortran/lang.opt:511
+#, no-c-format
+msgid "Enable DEC-style STATIC and AUTOMATIC attributes."
+msgstr ""
+
+#: fortran/lang.opt:515
+#, no-c-format
+msgid "Set the default double precision kind to an 8 byte wide type."
+msgstr ""
+
+#: fortran/lang.opt:519
+#, no-c-format
+msgid "Set the default integer kind to an 8 byte wide type."
+msgstr ""
+
+#: fortran/lang.opt:523
+#, no-c-format
+msgid "Set the default real kind to an 8 byte wide type."
+msgstr ""
+
+#: fortran/lang.opt:527
+#, no-c-format
+msgid "Set the default real kind to an 10 byte wide type."
+msgstr ""
+
+#: fortran/lang.opt:531
+#, no-c-format
+msgid "Set the default real kind to an 16 byte wide type."
+msgstr ""
+
+#: fortran/lang.opt:535
+#, no-c-format
+msgid "Allow dollar signs in entity names."
+msgstr ""
+
+#: fortran/lang.opt:543
+#, no-c-format
+msgid "Display the code tree after parsing."
+msgstr ""
+
+#: fortran/lang.opt:547
+#, no-c-format
+msgid "Display the code tree after front end optimization."
+msgstr ""
+
+#: fortran/lang.opt:551
+#, no-c-format
+msgid "Display the global symbol table after parsing."
+msgstr ""
+
+#: fortran/lang.opt:555
+#, no-c-format
+msgid "Display the code tree after parsing; deprecated option."
+msgstr ""
+
+#: fortran/lang.opt:559
+#, no-c-format
+msgid "Specify that an external BLAS library should be used for matmul calls on large-size arrays."
+msgstr ""
+
+#: fortran/lang.opt:563
+#, no-c-format
+msgid "Use f2c calling convention."
+msgstr ""
+
+#: fortran/lang.opt:567
+#, no-c-format
+msgid "Assume that the source file is fixed form."
+msgstr ""
+
+#: fortran/lang.opt:571
+#, no-c-format
+msgid "Force creation of temporary to test infrequently-executed forall code."
+msgstr ""
+
+#: fortran/lang.opt:575
+#, no-c-format
+msgid "Interpret any INTEGER(4) as an INTEGER(8)."
+msgstr ""
+
+#: fortran/lang.opt:579 fortran/lang.opt:583
+#, no-c-format
+msgid "Specify where to find the compiled intrinsic modules."
+msgstr ""
+
+#: fortran/lang.opt:587
+#, no-c-format
+msgid "Allow arbitrary character line width in fixed mode."
+msgstr ""
+
+#: fortran/lang.opt:591
+#, no-c-format
+msgid "-ffixed-line-length-<n>\tUse n as character line width in fixed mode."
+msgstr ""
+
+#: fortran/lang.opt:595
+#, no-c-format
+msgid "Pad shorter fixed form lines to line width with spaces."
+msgstr ""
+
+#: fortran/lang.opt:599
+#, no-c-format
+msgid "-ffpe-trap=[...]\tStop on following floating point exceptions."
+msgstr ""
+
+#: fortran/lang.opt:603
+#, no-c-format
+msgid "-ffpe-summary=[...]\tPrint summary of floating point exceptions."
+msgstr ""
+
+#: fortran/lang.opt:607
+#, no-c-format
+msgid "Assume that the source file is free form."
+msgstr ""
+
+#: fortran/lang.opt:611
+#, no-c-format
+msgid "Allow arbitrary character line width in free mode."
+msgstr ""
+
+#: fortran/lang.opt:615
+#, no-c-format
+msgid "-ffree-line-length-<n>\tUse n as character line width in free mode."
+msgstr ""
+
+#: fortran/lang.opt:619
+#, no-c-format
+msgid "Try to interchange loops if profitable."
+msgstr ""
+
+#: fortran/lang.opt:623
+#, no-c-format
+msgid "Enable front end optimization."
+msgstr ""
+
+#: fortran/lang.opt:627
+#, no-c-format
+msgid "Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements."
+msgstr ""
+
+#: fortran/lang.opt:631
+#, no-c-format
+msgid "-finit-character=<n>\tInitialize local character variables to ASCII value n."
+msgstr ""
+
+#: fortran/lang.opt:635
+#, no-c-format
+msgid "Initialize components of derived type variables according to other init flags."
+msgstr ""
+
+#: fortran/lang.opt:639
+#, no-c-format
+msgid "-finit-integer=<n>\tInitialize local integer variables to n."
+msgstr ""
+
+#: fortran/lang.opt:643
+#, no-c-format
+msgid "Initialize local variables to zero (from g77)."
+msgstr ""
+
+#: fortran/lang.opt:647
+#, no-c-format
+msgid "-finit-logical=<true|false>\tInitialize local logical variables."
+msgstr ""
+
+#: fortran/lang.opt:651
+#, no-c-format
+msgid "-finit-real=<zero|snan|nan|inf|-inf>\tInitialize local real variables."
+msgstr ""
+
+#: fortran/lang.opt:673
+#, no-c-format
+msgid "-finline-arg-packing\tPerform argument packing inline."
+msgstr ""
+
+#: fortran/lang.opt:677
+#, no-c-format
+msgid "-finline-matmul-limit=<n>\tSpecify the size of the largest matrix for which matmul will be inlined."
+msgstr ""
+
+#: fortran/lang.opt:681
+#, no-c-format
+msgid "-fmax-array-constructor=<n>\tMaximum number of objects in an array constructor."
+msgstr ""
+
+#: fortran/lang.opt:685
+#, no-c-format
+msgid "-fmax-identifier-length=<n>\tMaximum identifier length."
+msgstr ""
+
+#: fortran/lang.opt:689
+#, no-c-format
+msgid "-fmax-subrecord-length=<n>\tMaximum length for subrecords."
+msgstr ""
+
+#: fortran/lang.opt:693
+#, no-c-format
+msgid "-fmax-stack-var-size=<n>\tSize in bytes of the largest array that will be put on the stack."
+msgstr ""
+
+#: fortran/lang.opt:697
+#, no-c-format
+msgid "Put all local arrays on stack."
+msgstr ""
+
+#: fortran/lang.opt:701
+#, no-c-format
+msgid "Set default accessibility of module entities to PRIVATE."
+msgstr ""
+
+#: fortran/lang.opt:721
+#, no-c-format
+msgid "Handle OpenMP allocators for allocatables and pointers."
+msgstr ""
+
+#: fortran/lang.opt:725
+#, no-c-format
+msgid "Try to lay out derived types as compactly as possible."
+msgstr ""
+
+#: fortran/lang.opt:733
+#, no-c-format
+msgid "Protect parentheses in expressions."
+msgstr ""
+
+#: fortran/lang.opt:737
+#, no-c-format
+msgid "Path to header file that should be pre-included before each compilation unit."
+msgstr ""
+
+#: fortran/lang.opt:741
+#, no-c-format
+msgid "Enable range checking during compilation."
+msgstr ""
+
+#: fortran/lang.opt:745
+#, no-c-format
+msgid "Interpret any REAL(4) as a REAL(8)."
+msgstr ""
+
+#: fortran/lang.opt:749
+#, no-c-format
+msgid "Interpret any REAL(4) as a REAL(10)."
+msgstr ""
+
+#: fortran/lang.opt:753
+#, no-c-format
+msgid "Interpret any REAL(4) as a REAL(16)."
+msgstr ""
+
+#: fortran/lang.opt:757
+#, no-c-format
+msgid "Interpret any REAL(8) as a REAL(4)."
+msgstr ""
+
+#: fortran/lang.opt:761
+#, no-c-format
+msgid "Interpret any REAL(8) as a REAL(10)."
+msgstr ""
+
+#: fortran/lang.opt:765
+#, no-c-format
+msgid "Interpret any REAL(8) as a REAL(16)."
+msgstr ""
+
+#: fortran/lang.opt:769
+#, no-c-format
+msgid "Reallocate the LHS in assignments."
+msgstr ""
+
+#: fortran/lang.opt:773
+#, no-c-format
+msgid "Use a 4-byte record marker for unformatted files."
+msgstr ""
+
+#: fortran/lang.opt:777
+#, no-c-format
+msgid "Use an 8-byte record marker for unformatted files."
+msgstr ""
+
+#: fortran/lang.opt:781
+#, no-c-format
+msgid "Allocate local variables on the stack to allow indirect recursion."
+msgstr ""
+
+#: fortran/lang.opt:785
+#, no-c-format
+msgid "Copy array sections into a contiguous block on procedure entry."
+msgstr ""
+
+#: fortran/lang.opt:789
+#, no-c-format
+msgid "-fcoarray=<none|single|lib>\tSpecify which coarray parallelization should be used."
+msgstr ""
+
+#: fortran/lang.opt:805
+#, no-c-format
+msgid "-fcheck=[...]\tSpecify which runtime checks are to be performed."
+msgstr ""
+
+#: fortran/lang.opt:809
+#, no-c-format
+msgid "Append a second underscore if the name already contains an underscore."
+msgstr ""
+
+#: fortran/lang.opt:817
+#, no-c-format
+msgid "Apply negative sign to zero values."
+msgstr ""
+
+#: fortran/lang.opt:824
+#, no-c-format
+msgid "Disallow tail call optimization when a calling routine may have omitted character lengths."
+msgstr ""
+
+#: fortran/lang.opt:828
+#, no-c-format
+msgid "Append underscores to externally visible names."
+msgstr ""
+
+#: fortran/lang.opt:832 c-family/c.opt:1733 c-family/c.opt:1810
+#: c-family/c.opt:1818 c-family/c.opt:2149 config/xtensa/xtensa.opt:42
+#: config/pa/pa.opt:46 config/pa/pa.opt:78 config/arc/arc.opt:140
+#: config/arc/arc.opt:296 config/arc/arc.opt:304 config/arc/arc.opt:308
+#: config/arc/arc.opt:312 config/arc/arc.opt:317 config/arc/arc.opt:326
+#: common.opt:643 common.opt:1177 common.opt:1181 common.opt:1185
+#: common.opt:1280 common.opt:1609 common.opt:1691 common.opt:2051
+#: common.opt:2194 common.opt:2237 common.opt:2682 common.opt:2718
+#: common.opt:2811 common.opt:2815 common.opt:2924 common.opt:3059
+#: common.opt:3067 common.opt:3075 common.opt:3083 common.opt:3184
+#: common.opt:3244 common.opt:3332 common.opt:3496 common.opt:3500
+#: common.opt:3504 common.opt:3508 common.opt:3578 common.opt:3582
+#: common.opt:3613 common.opt:3617
+#, no-c-format
+msgid "Does nothing.  Preserved for backward compatibility."
+msgstr ""
+
+#: fortran/lang.opt:872
+#, no-c-format
+msgid "Statically link the GNU Fortran helper library (libgfortran)."
+msgstr ""
+
+#: fortran/lang.opt:876
+#, no-c-format
+msgid "Statically link the GCC Quad-Precision Math Library (libquadmath)."
+msgstr ""
+
+#: fortran/lang.opt:880
+#, no-c-format
+msgid "Conform to the ISO Fortran 2003 standard."
+msgstr ""
+
+#: fortran/lang.opt:884
+#, no-c-format
+msgid "Conform to the ISO Fortran 2008 standard."
+msgstr ""
+
+#: fortran/lang.opt:888
+#, no-c-format
+msgid "Conform to the ISO Fortran 2008 standard including TS 29113."
+msgstr ""
+
+#: fortran/lang.opt:892
+#, no-c-format
+msgid "Conform to the ISO Fortran 2018 standard."
+msgstr ""
+
+#: fortran/lang.opt:896
+#, no-c-format
+msgid "Conform to the ISO Fortran 2023 standard."
+msgstr ""
+
+#: fortran/lang.opt:900
+#, no-c-format
+msgid "Conform to the ISO Fortran 95 standard."
+msgstr ""
+
+#: fortran/lang.opt:904
+#, no-c-format
+msgid "Conform to nothing in particular."
+msgstr ""
+
+#: fortran/lang.opt:908
+#, no-c-format
+msgid "Accept extensions to support legacy code."
+msgstr ""
+
+#: rust/lang.opt:47 rust/lang.opt:51 c-family/c.opt:1469 c-family/c.opt:1473
+#, no-c-format
+msgid "Warn when a const variable is unused."
+msgstr ""
+
+#: rust/lang.opt:55 c-family/c.opt:1485
+#, no-c-format
+msgid "Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value."
+msgstr ""
+
+#: rust/lang.opt:59 c-family/c.opt:854 common.opt:654
+#, no-c-format
+msgid "Warn for infinitely recursive calls."
+msgstr ""
+
+#: rust/lang.opt:63
+#, no-c-format
+msgid "-frust-crate=<name>             Set the crate name for the compilation"
+msgstr ""
+
+#: rust/lang.opt:67
+#, no-c-format
+msgid "-frust-extern=              Specify where an external library is located"
+msgstr ""
+
+#: rust/lang.opt:71
+#, no-c-format
+msgid "Dump various Rust front end internals."
+msgstr ""
+
+#: rust/lang.opt:75
+#, no-c-format
+msgid "-frust-dump-<type>              Dump Rust frontend internal information."
+msgstr ""
+
+#: rust/lang.opt:79
+#, no-c-format
+msgid "Enable experimental compilation of Rust files at your own risk"
+msgstr ""
+
+#: rust/lang.opt:83
+#, no-c-format
+msgid "-frust-max-recursion-depth=<integer>"
+msgstr ""
+
+#: rust/lang.opt:87
+#, no-c-format
+msgid "-frust-crate-type=[bin|lib|rlib|dylib|cdylib|staticlib|proc-macro]     Crate type to emit"
+msgstr ""
+
+#: rust/lang.opt:115
+#, no-c-format
+msgid "-frust-mangling=[legacy|v0]     Version to use for name mangling"
+msgstr ""
+
+#: rust/lang.opt:128
+#, no-c-format
+msgid "-frust-cfg=<name>             Set a config expansion option"
+msgstr ""
+
+#: rust/lang.opt:132
+#, no-c-format
+msgid "-frust-edition=[2015|2018|2021]             Edition to use when compiling rust code"
+msgstr ""
+
+#: rust/lang.opt:148
+#, no-c-format
+msgid "Enable embedding metadata directly into object files"
+msgstr ""
+
+#: rust/lang.opt:152
+#, no-c-format
+msgid "-frust-metadata-output=<path.rox>  Path to output crate metadata"
+msgstr ""
+
+#: rust/lang.opt:160
+#, no-c-format
+msgid "-frust-compile-until=[ast|attributecheck|expansion|astvalidation|featuregating|nameresolution|lowering|typecheck|privacy|unsafety|const|borrowcheck|compilation|end]             The pipeline will run up until this stage when compiling Rust code"
+msgstr ""
+
+#: rust/lang.opt:209
+#, no-c-format
+msgid "Use the temporary and experimental name resolution pipeline instead of the stable one"
+msgstr ""
+
+#: rust/lang.opt:213
+#, no-c-format
+msgid "Use the WIP borrow checker."
+msgstr ""
+
+#: c-family/c.opt:182
+#, no-c-format
+msgid "-A<question>=<answer>\tAssert the <answer> to <question>.  Putting '-' before <question> disables the <answer> to <question>."
+msgstr ""
+
+#: c-family/c.opt:186
+#, no-c-format
+msgid "Do not discard comments."
+msgstr ""
+
+#: c-family/c.opt:190
+#, no-c-format
+msgid "Do not discard comments in macro expansions."
+msgstr ""
+
+#: c-family/c.opt:194
+#, no-c-format
+msgid "-D<macro>[=<val>]\tDefine a <macro> with <val> as its value.  If just <macro> is given, <val> is taken to be 1."
+msgstr ""
+
+#: c-family/c.opt:201
+#, no-c-format
+msgid "-F <dir>\tAdd <dir> to the end of the main framework include path."
+msgstr ""
+
+#: c-family/c.opt:205
+#, no-c-format
+msgid "Enable parsing GIMPLE."
+msgstr ""
+
+#: c-family/c.opt:209
+#, no-c-format
+msgid "Print the name of header files as they are used."
+msgstr ""
+
+#: c-family/c.opt:213
+#, no-c-format
+msgid "-I <dir>\tAdd <dir> to the end of the main include path."
+msgstr ""
+
+#: c-family/c.opt:217
+#, no-c-format
+msgid "Generate make dependencies."
+msgstr ""
+
+#: c-family/c.opt:221
+#, no-c-format
+msgid "Generate make dependencies and compile."
+msgstr ""
+
+#: c-family/c.opt:225
+#, no-c-format
+msgid "-MF <file>\tWrite dependency output to the given file."
+msgstr ""
+
+#: c-family/c.opt:229
+#, no-c-format
+msgid "Treat missing header files as generated files."
+msgstr ""
+
+#: c-family/c.opt:233
+#, no-c-format
+msgid "Like -M but ignore system header files."
+msgstr ""
+
+#: c-family/c.opt:237
+#, no-c-format
+msgid "Like -MD but ignore system header files."
+msgstr ""
+
+#: c-family/c.opt:241
+#, no-c-format
+msgid "Generate C++ Module dependency information."
+msgstr ""
+
+#: c-family/c.opt:249
+#, no-c-format
+msgid "Generate phony targets for all headers."
+msgstr ""
+
+#: c-family/c.opt:253
+#, no-c-format
+msgid "-MQ <target>\tAdd a target that may require quoting."
+msgstr ""
+
+#: c-family/c.opt:257
+#, no-c-format
+msgid "-MT <target>\tAdd a target that does not require quoting."
+msgstr ""
+
+#: c-family/c.opt:261
+#, no-c-format
+msgid "Structured format for output dependency information.  Supported (\"p1689r5\")."
+msgstr ""
+
+#: c-family/c.opt:265
+#, no-c-format
+msgid "File for output dependency information."
+msgstr ""
+
+#: c-family/c.opt:269
+#, no-c-format
+msgid "-fdeps-target=obj.o Output file for the compile step."
+msgstr ""
+
+#: c-family/c.opt:273
+#, no-c-format
+msgid "Do not generate #line directives."
+msgstr ""
+
+#: c-family/c.opt:277
+#, no-c-format
+msgid "-U<macro>\tUndefine <macro>."
+msgstr ""
+
+#: c-family/c.opt:281
+#, no-c-format
+msgid "Warn if the NSObject attribute is applied to a non-typedef."
+msgstr ""
+
+#: c-family/c.opt:285
+#, no-c-format
+msgid "Warn about things that will change when compiling with an ABI-compliant compiler."
+msgstr ""
+
+#: c-family/c.opt:289
+#, no-c-format
+msgid "Warn about things that change between the current -fabi-version and the specified version."
+msgstr ""
+
+#: c-family/c.opt:293
+#, no-c-format
+msgid "Warn if a subobject has an abi_tag attribute that the complete object type does not have."
+msgstr ""
+
+#: c-family/c.opt:300
+#, no-c-format
+msgid "Warn on suspicious calls of standard functions computing absolute values."
+msgstr ""
+
+#: c-family/c.opt:304
+#, no-c-format
+msgid "Warn about suspicious uses of memory addresses."
+msgstr ""
+
+#: c-family/c.opt:308
+#, no-c-format
+msgid "Warn when the address of packed member of struct or union is taken."
+msgstr ""
+
+#: c-family/c.opt:324
+#, no-c-format
+msgid "Warn about 'new' of type with extended alignment without -faligned-new."
+msgstr ""
+
+#: c-family/c.opt:328
+#, no-c-format
+msgid "-Waligned-new=[none|global|all]\tWarn even if 'new' uses a class member allocation function."
+msgstr ""
+
+#: c-family/c.opt:332 ada/gcc-interface/lang.opt:57
+#, no-c-format
+msgid "Enable most warning messages."
+msgstr ""
+
+#: c-family/c.opt:336
+#, no-c-format
+msgid "Warn on any use of alloca."
+msgstr ""
+
+#: c-family/c.opt:340
+#, no-c-format
+msgid "Warn when allocating insufficient storage for the target type of the assigned pointer."
+msgstr ""
+
+#: c-family/c.opt:344
+#, no-c-format
+msgid "-Walloc-size-larger-than=<bytes>\tWarn for calls to allocation functions that attempt to allocate objects larger than the specified number of bytes."
+msgstr ""
+
+#: c-family/c.opt:349
+#, no-c-format
+msgid "Disable Walloc-size-larger-than= warning.  Equivalent to Walloc-size-larger-than=<SIZE_MAX> or larger."
+msgstr ""
+
+#: c-family/c.opt:353
+#, no-c-format
+msgid "Warn for calls to allocation functions that specify zero bytes."
+msgstr ""
+
+#: c-family/c.opt:357
+#, no-c-format
+msgid "-Walloca-larger-than=<number>\tWarn on unbounded uses of alloca, and on bounded uses of alloca whose bound can be larger than <number> bytes."
+msgstr ""
+
+#: c-family/c.opt:363
+#, no-c-format
+msgid "Disable Walloca-larger-than= warning.  Equivalent to Walloca-larger-than=<SIZE_MAX> or larger."
+msgstr ""
+
+#: c-family/c.opt:367
+#, no-c-format
+msgid "Warn if conversion of the result of arithmetic might change the value even though converting the operands cannot."
+msgstr ""
+
+#: c-family/c.opt:375
+#, no-c-format
+msgid "Warn about comparisons between two operands of array type."
+msgstr ""
+
+#: c-family/c.opt:379 c-family/c.opt:383
+#, no-c-format
+msgid "Warn about mismatched declarations of array parameters and unsafe accesses to them."
+msgstr ""
+
+#: c-family/c.opt:387
+#, no-c-format
+msgid "Warn whenever an Objective-C assignment is being intercepted by the garbage collector."
+msgstr ""
+
+#: c-family/c.opt:391
+#, no-c-format
+msgid "Warn about casting functions to incompatible types."
+msgstr ""
+
+#: c-family/c.opt:399
+#, no-c-format
+msgid "-Wbidi-chars=[none|unpaired|any|ucn] Warn about UTF-8 bidirectional control characters."
+msgstr ""
+
+#: c-family/c.opt:422
+#, no-c-format
+msgid "Warn about boolean expression compared with an integer value different from true/false."
+msgstr ""
+
+#: c-family/c.opt:426
+#, no-c-format
+msgid "Warn about certain operations on boolean expressions."
+msgstr ""
+
+#: c-family/c.opt:430
+#, no-c-format
+msgid "Warn when a built-in function is declared with the wrong signature."
+msgstr ""
+
+#: c-family/c.opt:434
+#, no-c-format
+msgid "Warn when a built-in preprocessor macro is undefined or redefined."
+msgstr ""
+
+#: c-family/c.opt:438
+#, no-c-format
+msgid "Warn about features not present in ISO C11, but present in ISO C23."
+msgstr ""
+
+#: c-family/c.opt:442
+#, no-c-format
+msgid "Deprecated in favor of -Wc11-c23-compat."
+msgstr ""
+
+#: c-family/c.opt:446
+#, no-c-format
+msgid "Warn about features not present in ISO C90, but present in ISO C99."
+msgstr ""
+
+#: c-family/c.opt:450
+#, no-c-format
+msgid "Warn about features not present in ISO C99, but present in ISO C11."
+msgstr ""
+
+#: c-family/c.opt:454
+#, no-c-format
+msgid "Warn about C constructs that are not in the common subset of C and C++."
+msgstr ""
+
+#: c-family/c.opt:461
+#, no-c-format
+msgid "Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011."
+msgstr ""
+
+#: c-family/c.opt:465
+#, no-c-format
+msgid "Warn about C++ constructs whose meaning differs between ISO C++ 2011 and ISO C++ 2014."
+msgstr ""
+
+#: c-family/c.opt:472
+#, no-c-format
+msgid "Warn about C++ constructs whose meaning differs between ISO C++ 2014 and ISO C++ 2017."
+msgstr ""
+
+#: c-family/c.opt:479
+#, no-c-format
+msgid "Warn about C++ constructs whose meaning differs between ISO C++ 2017 and ISO C++ 2020."
+msgstr ""
+
+#: c-family/c.opt:483
+#, no-c-format
+msgid "Warn about C++11 constructs in code compiled with an older standard."
+msgstr ""
+
+#: c-family/c.opt:487
+#, no-c-format
+msgid "Warn about C++14 constructs in code compiled with an older standard."
+msgstr ""
+
+#: c-family/c.opt:491
+#, no-c-format
+msgid "Warn about C++17 constructs in code compiled with an older standard."
+msgstr ""
+
+#: c-family/c.opt:495
+#, no-c-format
+msgid "Warn about C++20 constructs in code compiled with an older standard."
+msgstr ""
+
+#: c-family/c.opt:499
+#, no-c-format
+msgid "Warn about C++23 constructs in code compiled with an older standard."
+msgstr ""
+
+#: c-family/c.opt:503
+#, no-c-format
+msgid "Warn about C++26 constructs in code compiled with an older standard."
+msgstr ""
+
+#: c-family/c.opt:507
+#, no-c-format
+msgid "Warn about suspicious calls to calloc-like functions where sizeof expression is the earlier size argument and not the latter."
+msgstr ""
+
+#: c-family/c.opt:511
+#, no-c-format
+msgid "Warn about casts between incompatible function types."
+msgstr ""
+
+#: c-family/c.opt:515
+#, no-c-format
+msgid "Warn about casts which discard qualifiers."
+msgstr ""
+
+#: c-family/c.opt:519
+#, no-c-format
+msgid "Warn about a cast to reference type that does not use a related user-defined conversion function."
+msgstr ""
+
+#: c-family/c.opt:523 c-family/c.opt:527
+#, no-c-format
+msgid "Warn about catch handlers of non-reference type."
+msgstr ""
+
+#: c-family/c.opt:531
+#, no-c-format
+msgid "Complain about a name being declared as a class member after a previous use of the same name."
+msgstr ""
+
+#: c-family/c.opt:535
+#, no-c-format
+msgid "Warn about subscripts whose type is \"char\"."
+msgstr ""
+
+#: c-family/c.opt:539 c-family/c.opt:1630 c-family/c.opt:1634
+#: c-family/c.opt:1638 c-family/c.opt:1642 c-family/c.opt:1646
+#: c-family/c.opt:1650 c-family/c.opt:1654 c-family/c.opt:1661
+#: c-family/c.opt:1665 c-family/c.opt:1669 c-family/c.opt:1673
+#: c-family/c.opt:1677 c-family/c.opt:1681 c-family/c.opt:1685
+#: c-family/c.opt:1689 c-family/c.opt:1693 c-family/c.opt:1697
+#: c-family/c.opt:1701 c-family/c.opt:1705 c-family/c.opt:1709
+#: config/i386/i386.opt:1022
+#, no-c-format
+msgid "Removed in GCC 9.  This switch has no effect."
+msgstr ""
+
+#: c-family/c.opt:543
+#, no-c-format
+msgid "Warn when a conversion function will never be called due to the type it converts to."
+msgstr ""
+
+#: c-family/c.opt:547
+#, no-c-format
+msgid "Warn for unsafe raw memory writes to objects of class types."
+msgstr ""
+
+#: c-family/c.opt:551
+#, no-c-format
+msgid "Warn about variables that might be changed by \"longjmp\" or \"vfork\"."
+msgstr ""
+
+#: c-family/c.opt:555
+#, no-c-format
+msgid "Warn about uses of a comma operator within a subscripting expression."
+msgstr ""
+
+#: c-family/c.opt:559
+#, no-c-format
+msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line."
+msgstr ""
+
+#: c-family/c.opt:563
+#, no-c-format
+msgid "Synonym for -Wcomment."
+msgstr ""
+
+#: c-family/c.opt:567
+#, no-c-format
+msgid "Warn for conditionally-supported constructs."
+msgstr ""
+
+#: c-family/c.opt:571
+#, no-c-format
+msgid "Warn for implicit type conversions that may change a value."
+msgstr ""
+
+#: c-family/c.opt:575
+#, no-c-format
+msgid "Warn for converting NULL from/to a non-pointer type."
+msgstr ""
+
+#: c-family/c.opt:583
+#, no-c-format
+msgid "Warn when performing class template argument deduction on a type with no deduction guides."
+msgstr ""
+
+#: c-family/c.opt:588
+#, no-c-format
+msgid "Warn when all constructors and destructors are private."
+msgstr ""
+
+#: c-family/c.opt:592
+#, no-c-format
+msgid "Warn about dangling else."
+msgstr ""
+
+#: c-family/c.opt:596 c-family/c.opt:600
+#, no-c-format
+msgid "Warn for uses of pointers to auto variables whose lifetime has ended."
+msgstr ""
+
+#: c-family/c.opt:604
+#, no-c-format
+msgid "Warn when a reference is bound to a temporary whose lifetime has ended."
+msgstr ""
+
+#: c-family/c.opt:608
+#, no-c-format
+msgid "Warn about __TIME__, __DATE__ and __TIMESTAMP__ usage."
+msgstr ""
+
+#: c-family/c.opt:612
+#, no-c-format
+msgid "Warn when a declaration is found after a statement."
+msgstr ""
+
+#: c-family/c.opt:616
+#, no-c-format
+msgid "Warn for missing parameter types in function declarations."
+msgstr ""
+
+#: c-family/c.opt:620
+#, no-c-format
+msgid "Warn when deleting a pointer to incomplete type."
+msgstr ""
+
+#: c-family/c.opt:624
+#, no-c-format
+msgid "Warn about deleting polymorphic objects with non-virtual destructors."
+msgstr ""
+
+#: c-family/c.opt:632
+#, no-c-format
+msgid "Mark implicitly-declared copy operations as deprecated if the class has a user-provided copy operation."
+msgstr ""
+
+#: c-family/c.opt:637
+#, no-c-format
+msgid "Mark implicitly-declared copy operations as deprecated if the class has a user-provided copy operation or destructor."
+msgstr ""
+
+#: c-family/c.opt:642
+#, no-c-format
+msgid "Warn about deprecated arithmetic conversions on operands of enumeration types."
+msgstr ""
+
+#: c-family/c.opt:646
+#, no-c-format
+msgid "Warn about deprecated arithmetic conversions on operands where one is of enumeration type and the other is of a floating-point type."
+msgstr ""
+
+#: c-family/c.opt:651
+#, no-c-format
+msgid "Warn about positional initialization of structs requiring designated initializers."
+msgstr ""
+
+#: c-family/c.opt:655
+#, no-c-format
+msgid "Warn if qualifiers on arrays which are pointer targets are discarded."
+msgstr ""
+
+#: c-family/c.opt:659
+#, no-c-format
+msgid "Warn if type qualifiers on pointers are discarded."
+msgstr ""
+
+#: c-family/c.opt:663
+#, no-c-format
+msgid "Warn about compile-time integer division by zero."
+msgstr ""
+
+#: c-family/c.opt:667
+#, no-c-format
+msgid "Warn about implicit conversions from \"float\" to \"double\"."
+msgstr ""
+
+#: c-family/c.opt:671
+#, no-c-format
+msgid "Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier."
+msgstr ""
+
+#: c-family/c.opt:675
+#, no-c-format
+msgid "Warn about duplicated branches in if-else statements."
+msgstr ""
+
+#: c-family/c.opt:679
+#, no-c-format
+msgid "Warn about duplicated conditions in an if-else-if chain."
+msgstr ""
+
+#: c-family/c.opt:683
+#, no-c-format
+msgid "Warn about violations of Effective C++ style rules."
+msgstr ""
+
+#: c-family/c.opt:687
+#, no-c-format
+msgid "Warn if an additional enum-base is used in an elaborated-type-specifier."
+msgstr ""
+
+#: c-family/c.opt:691
+#, no-c-format
+msgid "Warn about an empty body in an if or else statement."
+msgstr ""
+
+#: c-family/c.opt:695
+#, no-c-format
+msgid "Warn about stray tokens after #else and #endif."
+msgstr ""
+
+#: c-family/c.opt:699
+#, no-c-format
+msgid "Warn about comparison of different enum types."
+msgstr ""
+
+#: c-family/c.opt:703
+#, no-c-format
+msgid "Warn about implicit conversion of enum types."
+msgstr ""
+
+#: c-family/c.opt:707
+#, no-c-format
+msgid "Warn about enum/integer type mismatches."
+msgstr ""
+
+#: c-family/c.opt:715
+#, no-c-format
+msgid "This switch is deprecated; use -Werror=implicit-function-declaration instead."
+msgstr ""
+
+#: c-family/c.opt:719
+#, no-c-format
+msgid "Warn when an exception handler is shadowed by another handler."
+msgstr ""
+
+#: c-family/c.opt:723
+#, no-c-format
+msgid "Warn if \"defined\" is used outside #if."
+msgstr ""
+
+#: c-family/c.opt:731
+#, no-c-format
+msgid "Warn about semicolon after in-class function definition."
+msgstr ""
+
+#: c-family/c.opt:735
+#, no-c-format
+msgid "Warn when a structure containing a C99 flexible array member as the last field is not at the end of another structure."
+msgstr ""
+
+#: c-family/c.opt:740
+#, no-c-format
+msgid "Warn for implicit type conversions that cause loss of floating point precision."
+msgstr ""
+
+#: c-family/c.opt:744
+#, no-c-format
+msgid "Warn if testing floating point numbers for equality."
+msgstr ""
+
+#: c-family/c.opt:748 c-family/c.opt:803
+#, no-c-format
+msgid "Warn about printf/scanf/strftime/strfmon format string anomalies."
+msgstr ""
+
+#: c-family/c.opt:752
+#, no-c-format
+msgid "Warn about format strings that contain NUL bytes."
+msgstr ""
+
+#: c-family/c.opt:756
+#, no-c-format
+msgid "Warn about GCC format strings with strings unsuitable for diagnostics."
+msgstr ""
+
+#: c-family/c.opt:760
+#, no-c-format
+msgid "Warn if passing too many arguments to a function for its format string."
+msgstr ""
+
+#: c-family/c.opt:764
+#, no-c-format
+msgid "Warn about format strings that are not literals."
+msgstr ""
+
+#: c-family/c.opt:768
+#, no-c-format
+msgid "Warn about function calls with format strings that write past the end of the destination region.  Same as -Wformat-overflow=1."
+msgstr ""
+
+#: c-family/c.opt:773
+#, no-c-format
+msgid "Warn about function calls with format strings that write past the end of the destination region."
+msgstr ""
+
+#: c-family/c.opt:778
+#, no-c-format
+msgid "Warn about possible security problems with format functions."
+msgstr ""
+
+#: c-family/c.opt:782
+#, no-c-format
+msgid "Warn about sign differences with format functions."
+msgstr ""
+
+#: c-family/c.opt:786
+#, no-c-format
+msgid "Warn about calls to snprintf and similar functions that truncate output. Same as -Wformat-truncation=1."
+msgstr ""
+
+#: c-family/c.opt:791
+#, no-c-format
+msgid "Warn about calls to snprintf and similar functions that truncate output."
+msgstr ""
+
+#: c-family/c.opt:795
+#, no-c-format
+msgid "Warn about strftime formats yielding 2-digit years."
+msgstr ""
+
+#: c-family/c.opt:799
+#, no-c-format
+msgid "Warn about zero-length formats."
+msgstr ""
+
+#: c-family/c.opt:807
+#, no-c-format
+msgid "Warn when __builtin_frame_address or __builtin_return_address is used unsafely."
+msgstr ""
+
+#: c-family/c.opt:811
+#, no-c-format
+msgid "Warn about the global module fragment not containing only preprocessing directives."
+msgstr ""
+
+#: c-family/c.opt:815
+#, no-c-format
+msgid "Warn when the field in a struct is not aligned."
+msgstr ""
+
+#: c-family/c.opt:819
+#, no-c-format
+msgid "Warn whenever type qualifiers are ignored."
+msgstr ""
+
+#: c-family/c.opt:823
+#, no-c-format
+msgid "Warn whenever attributes are ignored."
+msgstr ""
+
+#: c-family/c.opt:827
+#, no-c-format
+msgid "Warn about implicit declarations."
+msgstr ""
+
+#: c-family/c.opt:835
+#, no-c-format
+msgid "Warn about implicit function declarations."
+msgstr ""
+
+#: c-family/c.opt:839
+#, no-c-format
+msgid "Warn when a declaration does not specify a type."
+msgstr ""
+
+#: c-family/c.opt:846
+#, no-c-format
+msgid "Warn when a base is inaccessible in derived due to ambiguity."
+msgstr ""
+
+#: c-family/c.opt:850
+#, no-c-format
+msgid "Warn when there is a conversion between pointers that have incompatible types."
+msgstr ""
+
+#: c-family/c.opt:858
+#, no-c-format
+msgid "Warn about variables which are initialized to themselves."
+msgstr ""
+
+#: c-family/c.opt:862
+#, no-c-format
+msgid "Warn about uses of std::initializer_list that can result in dangling pointers."
+msgstr ""
+
+#: c-family/c.opt:866
+#, no-c-format
+msgid "Warn about nonsensical values of --param destructive-interference-size or constructive-interference-size."
+msgstr ""
+
+#: c-family/c.opt:871
+#, no-c-format
+msgid "Warn about C++11 inheriting constructors when the base has a variadic constructor."
+msgstr ""
+
+#: c-family/c.opt:875
+#, no-c-format
+msgid "Warn about incompatible integer to pointer and pointer to integer conversions."
+msgstr ""
+
+#: c-family/c.opt:879
+#, no-c-format
+msgid "Warn for suspicious integer expressions in boolean context."
+msgstr ""
+
+#: c-family/c.opt:883
+#, no-c-format
+msgid "Warn when there is a cast to a pointer from an integer of a different size."
+msgstr ""
+
+#: c-family/c.opt:887
+#, no-c-format
+msgid "Warn when a function never produces a constant expression."
+msgstr ""
+
+#: c-family/c.opt:891
+#, no-c-format
+msgid "Warn about invalid uses of the \"offsetof\" macro."
+msgstr ""
+
+#: c-family/c.opt:895
+#, no-c-format
+msgid "Warn about PCH files that are found but not used."
+msgstr ""
+
+#: c-family/c.opt:899
+#, no-c-format
+msgid "Warn about invalid UTF-8 characters."
+msgstr ""
+
+#: c-family/c.opt:903
+#, no-c-format
+msgid "Warn when a jump misses a variable initialization."
+msgstr ""
+
+#: c-family/c.opt:907
+#, no-c-format
+msgid "Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore."
+msgstr ""
+
+#: c-family/c.opt:911
+#, no-c-format
+msgid "Warn when logical not is used on the left hand side operand of a comparison."
+msgstr ""
+
+#: c-family/c.opt:915
+#, no-c-format
+msgid "Warn when a logical operator is suspiciously always evaluating to true or false."
+msgstr ""
+
+#: c-family/c.opt:919
+#, no-c-format
+msgid "Do not warn about using \"long long\" when -pedantic."
+msgstr ""
+
+#: c-family/c.opt:923
+#, no-c-format
+msgid "Warn about suspicious declarations of \"main\"."
+msgstr ""
+
+#: c-family/c.opt:935
+#, no-c-format
+msgid "Warn about suspicious calls to memset where the third argument contains the number of elements not multiplied by the element size."
+msgstr ""
+
+#: c-family/c.opt:939
+#, no-c-format
+msgid "Warn about suspicious calls to memset where the third argument is constant literal zero and the second is not."
+msgstr ""
+
+#: c-family/c.opt:943
+#, no-c-format
+msgid "Warn when the indentation of the code does not reflect the block structure."
+msgstr ""
+
+#: c-family/c.opt:947
+#, no-c-format
+msgid "Warn for deallocation calls with arguments returned from mismatched allocation functions."
+msgstr ""
+
+#: c-family/c.opt:952
+#, no-c-format
+msgid "Warn for mismatches between calls to operator new or delete and the corresponding call to the allocation or deallocation function."
+msgstr ""
+
+#: c-family/c.opt:957
+#, no-c-format
+msgid "Warn when a class is redeclared or referenced using a mismatched class-key."
+msgstr ""
+
+#: c-family/c.opt:961
+#, no-c-format
+msgid "Warn about declarations of entities that may be missing attributes that related entities have been declared with."
+msgstr ""
+
+#: c-family/c.opt:966
+#, no-c-format
+msgid "Warn about possibly missing braces around initializers."
+msgstr ""
+
+#: c-family/c.opt:970
+#, no-c-format
+msgid "Warn about global functions without previous declarations."
+msgstr ""
+
+#: c-family/c.opt:974
+#, no-c-format
+msgid "Warn about missing fields in struct initializers."
+msgstr ""
+
+#: c-family/c.opt:982
+#, no-c-format
+msgid "Warn about user-specified include directories that do not exist."
+msgstr ""
+
+#: c-family/c.opt:986
+#, no-c-format
+msgid "Warn about function parameters declared without a type specifier in K&R-style functions."
+msgstr ""
+
+#: c-family/c.opt:990
+#, no-c-format
+msgid "Warn about global functions without prototypes."
+msgstr ""
+
+#: c-family/c.opt:994
+#, no-c-format
+msgid "Warn about likely missing requires keyword."
+msgstr ""
+
+#: c-family/c.opt:998
+#, no-c-format
+msgid "Warn when the template keyword is missing after a member access token in a dependent member access expression if that member is a template."
+msgstr ""
+
+#: c-family/c.opt:1002
+#, no-c-format
+msgid "Warn about global variables without previous declarations."
+msgstr ""
+
+#: c-family/c.opt:1009
+#, no-c-format
+msgid "Warn about use of multi-character character constants."
+msgstr ""
+
+#: c-family/c.opt:1013
+#, no-c-format
+msgid "Warn on direct multiple inheritance."
+msgstr ""
+
+#: c-family/c.opt:1017
+#, no-c-format
+msgid "Warn about unsafe macros expanding to multiple statements used as a body of a clause such as if, else, while, switch, or for."
+msgstr ""
+
+#: c-family/c.opt:1021
+#, no-c-format
+msgid "Warn on namespace definition."
+msgstr ""
+
+#: c-family/c.opt:1025
+#, no-c-format
+msgid "Warn about narrowing conversions within { } that are ill-formed in C++11."
+msgstr ""
+
+#: c-family/c.opt:1029
+#, no-c-format
+msgid "Warn about \"extern\" declarations not at file scope."
+msgstr ""
+
+#: c-family/c.opt:1033
+#, no-c-format
+msgid "Warn when a noexcept expression evaluates to false even though the expression can't actually throw."
+msgstr ""
+
+#: c-family/c.opt:1037
+#, no-c-format
+msgid "Warn if C++17 noexcept function type will change the mangled name of a symbol."
+msgstr ""
+
+#: c-family/c.opt:1041
+#, no-c-format
+msgid "Warn when non-templatized friend functions are declared within a template."
+msgstr ""
+
+#: c-family/c.opt:1045
+#, no-c-format
+msgid "Warn about non-virtual destructors."
+msgstr ""
+
+#: c-family/c.opt:1049
+#, no-c-format
+msgid "Warn about NULL being passed to argument slots marked as requiring non-NULL."
+msgstr ""
+
+#: c-family/c.opt:1065
+#, no-c-format
+msgid "-Wnormalized=[none|id|nfc|nfkc]\tWarn about non-normalized Unicode strings."
+msgstr ""
+
+#: c-family/c.opt:1088
+#, no-c-format
+msgid "Warn if a class interface has no superclass.  Root classes may use an attribute to suppress this warning."
+msgstr ""
+
+#: c-family/c.opt:1093
+#, no-c-format
+msgid "Warn if a C-style cast is used in a program."
+msgstr ""
+
+#: c-family/c.opt:1097
+#, no-c-format
+msgid "Warn for obsolescent usage in a declaration."
+msgstr ""
+
+#: c-family/c.opt:1101
+#, no-c-format
+msgid "Warn if an old-style parameter definition is used."
+msgstr ""
+
+#: c-family/c.opt:1105
+#, no-c-format
+msgid "Warn about potentially suboptimal choices related to OpenACC parallelism."
+msgstr ""
+
+#: c-family/c.opt:1109
+#, no-c-format
+msgid "Warn about suspicious OpenMP code."
+msgstr ""
+
+#: c-family/c.opt:1113
+#, no-c-format
+msgid "Warn if a simd directive is overridden by the vectorizer cost model."
+msgstr ""
+
+#: c-family/c.opt:1117
+#, no-c-format
+msgid "Warn if a string is longer than the maximum portable length specified by the standard."
+msgstr ""
+
+#: c-family/c.opt:1121 c-family/c.opt:1125
+#, no-c-format
+msgid "Warn about overloaded virtual function names."
+msgstr ""
+
+#: c-family/c.opt:1129
+#, no-c-format
+msgid "Warn about overriding initializers without side effects."
+msgstr ""
+
+#: c-family/c.opt:1133
+#, no-c-format
+msgid "Warn about overriding initializers with side effects."
+msgstr ""
+
+#: c-family/c.opt:1137
+#, no-c-format
+msgid "Warn if the named return value optimization is not performed although it is allowed."
+msgstr ""
+
+#: c-family/c.opt:1141
+#, no-c-format
+msgid "Warn about packed bit-fields whose offset changed in GCC 4.4."
+msgstr ""
+
+#: c-family/c.opt:1145
+#, no-c-format
+msgid "Warn when fields in a struct with the packed attribute are misaligned."
+msgstr ""
+
+#: c-family/c.opt:1149
+#, no-c-format
+msgid "Warn about possibly missing parentheses."
+msgstr ""
+
+#: c-family/c.opt:1157
+#, no-c-format
+msgid "Warn about calling std::move on a local object in a return statement preventing copy elision."
+msgstr ""
+
+#: c-family/c.opt:1161 c-family/c.opt:1165
+#, no-c-format
+msgid "Warn for placement new expressions with undefined behavior."
+msgstr ""
+
+#: c-family/c.opt:1169
+#, no-c-format
+msgid "Warn when converting the type of pointers to member functions."
+msgstr ""
+
+#: c-family/c.opt:1173
+#, no-c-format
+msgid "Warn about function pointer arithmetic."
+msgstr ""
+
+#: c-family/c.opt:1177
+#, no-c-format
+msgid "Warn when a pointer differs in signedness in an assignment."
+msgstr ""
+
+#: c-family/c.opt:1181
+#, no-c-format
+msgid "Warn when a pointer is compared with a zero character constant."
+msgstr ""
+
+#: c-family/c.opt:1185
+#, no-c-format
+msgid "Warn when a pointer is cast to an integer of a different size."
+msgstr ""
+
+#: c-family/c.opt:1189
+#, no-c-format
+msgid "Warn about misuses of pragmas."
+msgstr ""
+
+#: c-family/c.opt:1193
+#, no-c-format
+msgid "Warn if constructor or destructors with priorities from 0 to 100 are used."
+msgstr ""
+
+#: c-family/c.opt:1197
+#, no-c-format
+msgid "Warn if a property for an Objective-C object has no assign semantics specified."
+msgstr ""
+
+#: c-family/c.opt:1201
+#, no-c-format
+msgid "Warn if inherited methods are unimplemented."
+msgstr ""
+
+#: c-family/c.opt:1205
+#, no-c-format
+msgid "Warn when a range-based for-loop is creating unnecessary copies."
+msgstr ""
+
+#: c-family/c.opt:1209
+#, no-c-format
+msgid "Warn about multiple declarations of the same object."
+msgstr ""
+
+#: c-family/c.opt:1213
+#, no-c-format
+msgid "Warn about redundant calls to std::move."
+msgstr ""
+
+#: c-family/c.opt:1217
+#, no-c-format
+msgid "Warn when a class or enumerated type is referenced using a redundant class-key."
+msgstr ""
+
+#: c-family/c.opt:1221
+#, no-c-format
+msgid "Warn about uses of register storage specifier."
+msgstr ""
+
+#: c-family/c.opt:1225
+#, no-c-format
+msgid "Warn when the compiler reorders code."
+msgstr ""
+
+#: c-family/c.opt:1229
+#, no-c-format
+msgid "Warn when an argument passed to a restrict-qualified parameter aliases with another argument."
+msgstr ""
+
+#: c-family/c.opt:1234
+#, no-c-format
+msgid "Warn whenever void-returning functions return a non-void expressions, or a return expression is missing in a function not returning void."
+msgstr ""
+
+#: c-family/c.opt:1238
+#, no-c-format
+msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)."
+msgstr ""
+
+#: c-family/c.opt:1242
+#, no-c-format
+msgid "Warn on suspicious constructs involving reverse scalar storage order."
+msgstr ""
+
+#: c-family/c.opt:1246
+#, no-c-format
+msgid "Warn if a selector has multiple methods."
+msgstr ""
+
+#: c-family/c.opt:1250
+#, no-c-format
+msgid "Warn when a value is moved to itself with std::move."
+msgstr ""
+
+#: c-family/c.opt:1254
+#, no-c-format
+msgid "Warn about possible violations of sequence point rules."
+msgstr ""
+
+#: c-family/c.opt:1258
+#, no-c-format
+msgid "Warn if a local declaration hides an instance variable."
+msgstr ""
+
+#: c-family/c.opt:1262 c-family/c.opt:1266
+#, no-c-format
+msgid "Warn if left shift of a signed value overflows."
+msgstr ""
+
+#: c-family/c.opt:1270
+#, no-c-format
+msgid "Warn if shift count is negative."
+msgstr ""
+
+#: c-family/c.opt:1274
+#, no-c-format
+msgid "Warn if shift count >= width of type."
+msgstr ""
+
+#: c-family/c.opt:1278
+#, no-c-format
+msgid "Warn if left shifting a negative value."
+msgstr ""
+
+#: c-family/c.opt:1282
+#, no-c-format
+msgid "Warn about signed-unsigned comparisons."
+msgstr ""
+
+#: c-family/c.opt:1290
+#, no-c-format
+msgid "Warn for implicit type conversions between signed and unsigned integers."
+msgstr ""
+
+#: c-family/c.opt:1294
+#, no-c-format
+msgid "Warn when overload promotes from unsigned to signed."
+msgstr ""
+
+#: c-family/c.opt:1298
+#, no-c-format
+msgid "Warn about missing sized deallocation functions."
+msgstr ""
+
+#: c-family/c.opt:1302
+#, no-c-format
+msgid "Warn about divisions of two sizeof operators when the first one is applied to an array and the divisor does not equal the size of the array element."
+msgstr ""
+
+#: c-family/c.opt:1307
+#, no-c-format
+msgid "Warn when sizeof is applied on a parameter declared as an array."
+msgstr ""
+
+#: c-family/c.opt:1311
+#, no-c-format
+msgid "Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers."
+msgstr ""
+
+#: c-family/c.opt:1315
+#, no-c-format
+msgid "Warn about suspicious length parameters to certain string functions if the argument uses sizeof."
+msgstr ""
+
+#: c-family/c.opt:1323
+#, no-c-format
+msgid "Warn about improper usages of flexible array members according to the level of -fstrict-flex-arrays."
+msgstr ""
+
+#: c-family/c.opt:1328
+#, no-c-format
+msgid "Warn about uncasted NULL used as sentinel."
+msgstr ""
+
+#: c-family/c.opt:1336
+#, no-c-format
+msgid "Warn about unprototyped function declarations."
+msgstr ""
+
+#: c-family/c.opt:1340
+#, no-c-format
+msgid "Warn if type signatures of candidate methods do not match exactly."
+msgstr ""
+
+#: c-family/c.opt:1344
+#, no-c-format
+msgid "Warn about calls to strcmp and strncmp used in equality expressions that are necessarily true or false due to the length of one and size of the other argument."
+msgstr ""
+
+#: c-family/c.opt:1350
+#, no-c-format
+msgid "Warn about buffer overflow in string manipulation functions like memcpy and strcpy."
+msgstr ""
+
+#: c-family/c.opt:1355
+#, no-c-format
+msgid "Under the control of Object Size type, warn about buffer overflow in string manipulation functions like memcpy and strcpy."
+msgstr ""
+
+#: c-family/c.opt:1360
+#, no-c-format
+msgid "Warn about reading past the end of a source array in string manipulation functions like memchr and memcpy."
+msgstr ""
+
+#: c-family/c.opt:1364
+#, no-c-format
+msgid "Warn about truncation in string manipulation functions like strncat and strncpy."
+msgstr ""
+
+#: c-family/c.opt:1368
+#, no-c-format
+msgid "Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage."
+msgstr ""
+
+#: c-family/c.opt:1372
+#, no-c-format
+msgid "Warn about functions which might be candidates for format attributes."
+msgstr ""
+
+#: c-family/c.opt:1376
+#, no-c-format
+msgid "Suggest that the override keyword be used when the declaration of a virtual function overrides another."
+msgstr ""
+
+#: c-family/c.opt:1381
+#, no-c-format
+msgid "Warn about enumerated switches, with no default, missing a case."
+msgstr ""
+
+#: c-family/c.opt:1385
+#, no-c-format
+msgid "Warn about enumerated switches missing a \"default:\" statement."
+msgstr ""
+
+#: c-family/c.opt:1389
+#, no-c-format
+msgid "Warn about all enumerated switches missing a specific case."
+msgstr ""
+
+#: c-family/c.opt:1393
+#, no-c-format
+msgid "Warn about switches with boolean controlling expression."
+msgstr ""
+
+#: c-family/c.opt:1397
+#, no-c-format
+msgid "Warn about switch values that are outside of the switch's type range."
+msgstr ""
+
+#: c-family/c.opt:1401
+#, no-c-format
+msgid "Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used."
+msgstr ""
+
+#: c-family/c.opt:1405
+#, no-c-format
+msgid "Deprecated.  This switch has no effect."
+msgstr ""
+
+#: c-family/c.opt:1413
+#, no-c-format
+msgid "Warn on primary template declaration."
+msgstr ""
+
+#: c-family/c.opt:1417
+#, no-c-format
+msgid "Warn if a comparison always evaluates to true or false."
+msgstr ""
+
+#: c-family/c.opt:1421
+#, no-c-format
+msgid "Warn about simple-template-id in a constructor or destructor."
+msgstr ""
+
+#: c-family/c.opt:1425
+#, no-c-format
+msgid "Warn if a throw expression will always result in a call to terminate()."
+msgstr ""
+
+#: c-family/c.opt:1429
+#, no-c-format
+msgid "Warn about features not present in traditional C."
+msgstr ""
+
+#: c-family/c.opt:1433
+#, no-c-format
+msgid "Warn of prototypes causing type conversions different from what would happen in the absence of prototype."
+msgstr ""
+
+#: c-family/c.opt:1437
+#, no-c-format
+msgid "Warn if trigraphs are encountered that might affect the meaning of the program."
+msgstr ""
+
+#: c-family/c.opt:1441
+#, no-c-format
+msgid "Warn about @selector()s without previously declared methods."
+msgstr ""
+
+#: c-family/c.opt:1445
+#, no-c-format
+msgid "Warn if an undefined macro is used in an #if directive."
+msgstr ""
+
+#: c-family/c.opt:1449
+#, no-c-format
+msgid "Warn about invalid forms of delimited or named escape sequences."
+msgstr ""
+
+#: c-family/c.opt:1457
+#, no-c-format
+msgid "Warn about unrecognized pragmas."
+msgstr ""
+
+#: c-family/c.opt:1461
+#, no-c-format
+msgid "Warn about unsuffixed float constants."
+msgstr ""
+
+#: c-family/c.opt:1477
+#, no-c-format
+msgid "Warn when typedefs locally defined in a function are not used."
+msgstr ""
+
+#: c-family/c.opt:1481
+#, no-c-format
+msgid "Warn about macros defined in the main file that are not used."
+msgstr ""
+
+#: c-family/c.opt:1501
+#, no-c-format
+msgid "Warn about useless casts."
+msgstr ""
+
+#: c-family/c.opt:1505
+#, no-c-format
+msgid "Warn about using variadic macros."
+msgstr ""
+
+#: c-family/c.opt:1509
+#, no-c-format
+msgid "Warn about questionable usage of the macros used to retrieve variable arguments."
+msgstr ""
+
+#: c-family/c.opt:1513
+#, no-c-format
+msgid "Warn about the most vexing parse syntactic ambiguity."
+msgstr ""
+
+#: c-family/c.opt:1517
+#, no-c-format
+msgid "Warn if a virtual base has a non-trivial move assignment operator."
+msgstr ""
+
+#: c-family/c.opt:1521
+#, no-c-format
+msgid "Warn if a variable length array is used."
+msgstr ""
+
+#: c-family/c.opt:1525
+#, no-c-format
+msgid "-Wvla-larger-than=<number>\tWarn on unbounded uses of variable-length arrays, and on bounded uses of variable-length arrays whose bound can be larger than <number> bytes."
+msgstr ""
+
+#: c-family/c.opt:1531
+#, no-c-format
+msgid "Disable Wvla-larger-than= warning.  Equivalent to Wvla-larger-than=<SIZE_MAX> or larger."
+msgstr ""
+
+#: c-family/c.opt:1535
+#, no-c-format
+msgid "Warn about mismatched declarations of VLA parameters."
+msgstr ""
+
+#: c-family/c.opt:1539
+#, no-c-format
+msgid "Warn about deprecated uses of volatile qualifier."
+msgstr ""
+
+#: c-family/c.opt:1543
+#, no-c-format
+msgid "Warn when a register variable is declared volatile."
+msgstr ""
+
+#: c-family/c.opt:1547
+#, no-c-format
+msgid "Warn on direct virtual inheritance."
+msgstr ""
+
+#: c-family/c.opt:1551
+#, no-c-format
+msgid "In C++, nonzero means warn about deprecated conversion from string literals to 'char *'.  In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard."
+msgstr ""
+
+#: c-family/c.opt:1555
+#, no-c-format
+msgid "Warn about xor operators where it appears the user meant exponentiation."
+msgstr ""
+
+#: c-family/c.opt:1559
+#, no-c-format
+msgid "Warn when a literal '0' is used as null pointer."
+msgstr ""
+
+#: c-family/c.opt:1563
+#, no-c-format
+msgid "Warn about accesses to interior zero-length array members."
+msgstr ""
+
+#: c-family/c.opt:1567
+#, no-c-format
+msgid "A synonym for -std=c89 (for C) or -std=c++98 (for C++)."
+msgstr ""
+
+#: c-family/c.opt:1575
+#, no-c-format
+msgid "The version of the C++ ABI used for -Wabi warnings and link compatibility aliases."
+msgstr ""
+
+#: c-family/c.opt:1579
+#, no-c-format
+msgid "Enforce class member access control semantics."
+msgstr ""
+
+#: c-family/c.opt:1583
+#, no-c-format
+msgid "-fada-spec-parent=unit\tDump Ada specs as child units of given parent."
+msgstr ""
+
+#: c-family/c.opt:1587
+#, no-c-format
+msgid "Support C++17 allocation of over-aligned types."
+msgstr ""
+
+#: c-family/c.opt:1591
+#, no-c-format
+msgid "-faligned-new=<N>\tUse C++17 over-aligned type allocation for alignments greater than N."
+msgstr ""
+
+#: c-family/c.opt:1602 c-family/c.opt:1919 c-family/c.opt:2321
+#: c-family/c.opt:2325 c-family/c.opt:2341
+#, no-c-format
+msgid "No longer supported."
+msgstr ""
+
+#: c-family/c.opt:1606
+#, no-c-format
+msgid "Recognize the \"asm\" keyword."
+msgstr ""
+
+#: c-family/c.opt:1614
+#, no-c-format
+msgid "Recognize built-in functions."
+msgstr ""
+
+#: c-family/c.opt:1621
+#, no-c-format
+msgid "Where shorter, use canonicalized paths to systems headers."
+msgstr ""
+
+#: c-family/c.opt:1625
+#, no-c-format
+msgid "Enable the char8_t fundamental type and use it as the type for UTF-8 string and character literals."
+msgstr ""
+
+#: c-family/c.opt:1713
+#, no-c-format
+msgid "Removed in GCC 8.  This switch has no effect."
+msgstr ""
+
+#: c-family/c.opt:1717
+#, no-c-format
+msgid "Enable support for C++ concepts."
+msgstr ""
+
+#: c-family/c.opt:1721
+#, no-c-format
+msgid "Enable certain features present in the Concepts TS."
+msgstr ""
+
+#: c-family/c.opt:1725
+#, no-c-format
+msgid "Specify maximum error replay depth during recursive diagnosis of a constraint satisfaction failure."
+msgstr ""
+
+#: c-family/c.opt:1729
+#, no-c-format
+msgid "Allow the arguments of the '?' operator to have different types."
+msgstr ""
+
+#: c-family/c.opt:1737
+#, no-c-format
+msgid "-fconst-string-class=<name>\tUse class <name> for constant strings."
+msgstr ""
+
+#: c-family/c.opt:1741
+#, no-c-format
+msgid "-fconstexpr-depth=<number>\tSpecify maximum constexpr recursion depth."
+msgstr ""
+
+#: c-family/c.opt:1745
+#, no-c-format
+msgid "-fconstexpr-cache-depth=<number>\tSpecify maximum constexpr recursion cache depth."
+msgstr ""
+
+#: c-family/c.opt:1749
+#, no-c-format
+msgid "Allow IEC559 floating point exceptions in constant expressions."
+msgstr ""
+
+#: c-family/c.opt:1753
+#, no-c-format
+msgid "-fconstexpr-loop-limit=<number>\tSpecify maximum constexpr loop iteration count."
+msgstr ""
+
+#: c-family/c.opt:1757
+#, no-c-format
+msgid "-fconstexpr-ops-limit=<number>\tSpecify maximum number of constexpr operations during a single constexpr evaluation."
+msgstr ""
+
+#: c-family/c.opt:1761
+#, no-c-format
+msgid "Enable certain features present in drafts of C++ Contracts."
+msgstr ""
+
+#: c-family/c.opt:1774
+#, no-c-format
+msgid "-fcontract-assumption-mode=[on|off]\tEnable or disable treating axiom level contracts as assumptions (default on)."
+msgstr ""
+
+#: c-family/c.opt:1778
+#, no-c-format
+msgid "-fcontract-build-level=[off|default|audit]\tSpecify max contract level to generate runtime checks for."
+msgstr ""
+
+#: c-family/c.opt:1782
+#, no-c-format
+msgid "-fcontract-strict-declarations=[on|off]\tEnable or disable warnings on generalized redeclaration of functions with contracts (default off)."
+msgstr ""
+
+#: c-family/c.opt:1786
+#, no-c-format
+msgid "-fcontract-mode=[on|off]\tEnable or disable all contract facilities (default on)."
+msgstr ""
+
+#: c-family/c.opt:1790
+#, no-c-format
+msgid "-fcontract-continuation-mode=[on|off]\tEnable or disable contract continuation mode (default off)."
+msgstr ""
+
+#: c-family/c.opt:1794
+#, no-c-format
+msgid "-fcontract-role=<name>:<semantics>\tSpecify the semantics for all levels in a role (default, review), or a custom contract role with given semantics (ex: opt:assume,assume,assume)."
+msgstr ""
+
+#: c-family/c.opt:1798
+#, no-c-format
+msgid "-fcontract-semantic=<level>:<semantic>\tSpecify the concrete semantics for level."
+msgstr ""
+
+#: c-family/c.opt:1802
+#, no-c-format
+msgid "Enable C++ coroutines (experimental)."
+msgstr ""
+
+#: c-family/c.opt:1806
+#, no-c-format
+msgid "Emit debug annotations during preprocessing."
+msgstr ""
+
+#: c-family/c.opt:1814
+#, no-c-format
+msgid "Factor complex constructors and destructors to favor space over speed."
+msgstr ""
+
+#: c-family/c.opt:1822
+#, no-c-format
+msgid "Print hierarchical comparisons when template types are mismatched."
+msgstr ""
+
+#: c-family/c.opt:1826
+#, no-c-format
+msgid "Note all candidates during overload resolution failure."
+msgstr ""
+
+#: c-family/c.opt:1830
+#, no-c-format
+msgid "Preprocess directives only."
+msgstr ""
+
+#: c-family/c.opt:1834
+#, no-c-format
+msgid "Permit '$' as an identifier character."
+msgstr ""
+
+#: c-family/c.opt:1838
+#, no-c-format
+msgid "-fmacro-prefix-map=<old>=<new>\tMap one directory name to another in __FILE__, __BASE_FILE__, and __builtin_FILE()."
+msgstr ""
+
+#: c-family/c.opt:1842
+#, no-c-format
+msgid "Write all declarations as Ada code transitively."
+msgstr ""
+
+#: c-family/c.opt:1846
+#, no-c-format
+msgid "Write all declarations as Ada code for the given file only."
+msgstr ""
+
+#: c-family/c.opt:1853
+#, no-c-format
+msgid "Do not elide common elements in template comparisons."
+msgstr ""
+
+#: c-family/c.opt:1857
+#, no-c-format
+msgid "Generate code to check exception specifications."
+msgstr ""
+
+#: c-family/c.opt:1864
+#, no-c-format
+msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>."
+msgstr ""
+
+#: c-family/c.opt:1868
+#, no-c-format
+msgid "Permit universal character names (\\u and \\U) in identifiers."
+msgstr ""
+
+#: c-family/c.opt:1872
+#, no-c-format
+msgid "-finput-charset=<cset>\tSpecify the default character set for source files."
+msgstr ""
+
+#: c-family/c.opt:1876
+#, no-c-format
+msgid "Support dynamic initialization of thread-local variables in a different translation unit."
+msgstr ""
+
+#: c-family/c.opt:1883
+#, no-c-format
+msgid "Fold calls to simple inline functions."
+msgstr ""
+
+#: c-family/c.opt:1890
+#, no-c-format
+msgid "Do not assume that standard C libraries and \"main\" exist."
+msgstr ""
+
+#: c-family/c.opt:1894
+#, no-c-format
+msgid "Recognize GNU-defined keywords."
+msgstr ""
+
+#: c-family/c.opt:1898
+#, no-c-format
+msgid "Generate code for GNU runtime environment."
+msgstr ""
+
+#: c-family/c.opt:1902
+#, no-c-format
+msgid "Use traditional GNU semantics for inline functions."
+msgstr ""
+
+#: c-family/c.opt:1915
+#, no-c-format
+msgid "Assume normal C execution environment."
+msgstr ""
+
+#: c-family/c.opt:1923
+#, no-c-format
+msgid "Implement P2564 for consteval propagation."
+msgstr ""
+
+#: c-family/c.opt:1927
+#, no-c-format
+msgid "Export functions even if they can be inlined."
+msgstr ""
+
+#: c-family/c.opt:1931
+#, no-c-format
+msgid "Make inline functions constexpr by default."
+msgstr ""
+
+#: c-family/c.opt:1935
+#, no-c-format
+msgid "Emit implicit instantiations of inline templates."
+msgstr ""
+
+#: c-family/c.opt:1939
+#, no-c-format
+msgid "Emit implicit instantiations of templates."
+msgstr ""
+
+#: c-family/c.opt:1943
+#, no-c-format
+msgid "Implement C++17 inheriting constructor semantics."
+msgstr ""
+
+#: c-family/c.opt:1950
+#, no-c-format
+msgid "Don't emit dllexported inline functions unless needed."
+msgstr ""
+
+#: c-family/c.opt:1957
+#, no-c-format
+msgid "Allow implicit conversions between vectors with differing numbers of subparts and/or differing element types."
+msgstr ""
+
+#: c-family/c.opt:1961
+#, no-c-format
+msgid "Enable C++ modules-ts (experimental)."
+msgstr ""
+
+#: c-family/c.opt:1969
+#, no-c-format
+msgid "Enable C++ header module (experimental)."
+msgstr ""
+
+#: c-family/c.opt:1976
+#, no-c-format
+msgid "Member functions defined within their class are inline in module purview."
+msgstr ""
+
+#: c-family/c.opt:1980
+#, no-c-format
+msgid "Only emit Compiled Module Interface."
+msgstr ""
+
+#: c-family/c.opt:1984
+#, no-c-format
+msgid "Mapper for module to CMI files."
+msgstr ""
+
+#: c-family/c.opt:1988
+#, no-c-format
+msgid "Enable lazy module importing."
+msgstr ""
+
+#: c-family/c.opt:1996
+#, no-c-format
+msgid "Warn about macros that have conflicting header units definitions."
+msgstr ""
+
+#: c-family/c.opt:2000
+#, no-c-format
+msgid "Warn if pointers of distinct types are compared without a cast."
+msgstr ""
+
+#: c-family/c.opt:2004
+#, no-c-format
+msgid "Note #include directives translated to import declarations."
+msgstr ""
+
+#: c-family/c.opt:2008
+#, no-c-format
+msgid "Note #include directives not translated to import declarations, and not known to be textual."
+msgstr ""
+
+#: c-family/c.opt:2012
+#, no-c-format
+msgid "Note a #include translation of a specific header."
+msgstr ""
+
+#: c-family/c.opt:2016
+#, no-c-format
+msgid "Note Compiled Module Interface pathnames."
+msgstr ""
+
+#: c-family/c.opt:2020
+#, no-c-format
+msgid "Note Compiled Module Interface pathname of a specific module or header-unit."
+msgstr ""
+
+#: c-family/c.opt:2024
+#, no-c-format
+msgid "fmax-include-depth=<number> Set the maximum depth of the nested #include."
+msgstr ""
+
+#: c-family/c.opt:2028
+#, no-c-format
+msgid "Don't warn about uses of Microsoft extensions."
+msgstr ""
+
+#: c-family/c.opt:2047
+#, no-c-format
+msgid "Implement resolution of DR 150 for matching of template template arguments."
+msgstr ""
+
+#: c-family/c.opt:2051
+#, no-c-format
+msgid "Generate code for NeXT (Apple macOS) runtime environment."
+msgstr ""
+
+#: c-family/c.opt:2055
+#, no-c-format
+msgid "Assume that receivers of Objective-C messages may be nil."
+msgstr ""
+
+#: c-family/c.opt:2059
+#, no-c-format
+msgid "Allow access to instance variables as if they were local declarations within instance method implementations."
+msgstr ""
+
+#: c-family/c.opt:2063
+#, no-c-format
+msgid "-fvisibility=[private|protected|public|package]\tSet the default symbol visibility."
+msgstr ""
+
+#: c-family/c.opt:2088
+#, no-c-format
+msgid "Treat a throw() exception specification as noexcept to improve code size."
+msgstr ""
+
+#: c-family/c.opt:2092
+#, no-c-format
+msgid "Specify which ABI to use for Objective-C family code and meta-data generation."
+msgstr ""
+
+#: c-family/c.opt:2098
+#, no-c-format
+msgid "Generate special Objective-C methods to initialize/destroy non-POD C++ ivars, if needed."
+msgstr ""
+
+#: c-family/c.opt:2102
+#, no-c-format
+msgid "Allow fast jumps to the message dispatcher."
+msgstr ""
+
+#: c-family/c.opt:2108
+#, no-c-format
+msgid "Enable Objective-C exception and synchronization syntax."
+msgstr ""
+
+#: c-family/c.opt:2112
+#, no-c-format
+msgid "Enable garbage collection (GC) in Objective-C/Objective-C++ programs."
+msgstr ""
+
+#: c-family/c.opt:2116
+#, no-c-format
+msgid "Enable inline checks for nil receivers with the NeXT runtime and ABI version 2."
+msgstr ""
+
+#: c-family/c.opt:2121
+#, no-c-format
+msgid "Enable Objective-C setjmp exception handling runtime."
+msgstr ""
+
+#: c-family/c.opt:2125
+#, no-c-format
+msgid "Conform to the Objective-C 1.0 language as implemented in GCC 4.0."
+msgstr ""
+
+#: c-family/c.opt:2129
+#, no-c-format
+msgid "Enable OpenACC."
+msgstr ""
+
+#: c-family/c.opt:2133
+#, no-c-format
+msgid "Specify default OpenACC compute dimensions."
+msgstr ""
+
+#: c-family/c.opt:2137
+#, no-c-format
+msgid "Enable OpenMP (implies -frecursive in Fortran)."
+msgstr ""
+
+#: c-family/c.opt:2141
+#, no-c-format
+msgid "Enable OpenMP's SIMD directives."
+msgstr ""
+
+#: c-family/c.opt:2145
+#, no-c-format
+msgid "Recognize C++ keywords like \"compl\" and \"xor\"."
+msgstr ""
+
+#: c-family/c.opt:2156
+#, no-c-format
+msgid "Look for and use PCH files even when preprocessing."
+msgstr ""
+
+#: c-family/c.opt:2160
+#, no-c-format
+msgid "Downgrade conformance errors to warnings."
+msgstr ""
+
+#: c-family/c.opt:2164
+#, no-c-format
+msgid "Enable Plan 9 language extensions."
+msgstr ""
+
+#: c-family/c.opt:2168
+#, no-c-format
+msgid "Treat the input file as already preprocessed."
+msgstr ""
+
+#: c-family/c.opt:2176
+#, no-c-format
+msgid "-ftrack-macro-expansion=<0|1|2>\tTrack locations of tokens coming from macro expansion and display them in error messages."
+msgstr ""
+
+#: c-family/c.opt:2180
+#, no-c-format
+msgid "Do not pretty-print template specializations as the template signature followed by the arguments."
+msgstr ""
+
+#: c-family/c.opt:2184
+#, no-c-format
+msgid "Treat known sprintf return values as constants."
+msgstr ""
+
+#: c-family/c.opt:2188
+#, no-c-format
+msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime."
+msgstr ""
+
+#: c-family/c.opt:2192
+#, no-c-format
+msgid "Removed in GCC 10.  This switch has no effect."
+msgstr ""
+
+#: c-family/c.opt:2196
+#, no-c-format
+msgid "Generate run time type descriptor information."
+msgstr ""
+
+#: c-family/c.opt:2200 ada/gcc-interface/lang.opt:81
+#, no-c-format
+msgid "Use the narrowest integer type possible for enumeration types."
+msgstr ""
+
+#: c-family/c.opt:2204
+#, no-c-format
+msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\"."
+msgstr ""
+
+#: c-family/c.opt:2208
+#, no-c-format
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed."
+msgstr ""
+
+#: c-family/c.opt:2212 ada/gcc-interface/lang.opt:85
+#, no-c-format
+msgid "Make \"char\" signed by default."
+msgstr ""
+
+#: c-family/c.opt:2216
+#, no-c-format
+msgid "Enable C++14 sized deallocation support."
+msgstr ""
+
+#: c-family/c.opt:2223
+#, no-c-format
+msgid "-fstrict-flex-arrays=<level>    Control when to treat the trailing array of a structure as a flexible array member for the purposes of accessing the elements of such an array. The default is treating all trailing arrays of structures as flexible array members."
+msgstr ""
+
+#: c-family/c.opt:2230
+#, no-c-format
+msgid "-fsso-struct=[big-endian|little-endian|native]\tSet the default scalar storage order."
+msgstr ""
+
+#: c-family/c.opt:2246
+#, no-c-format
+msgid "Display statistics accumulated during compilation."
+msgstr ""
+
+#: c-family/c.opt:2250
+#, no-c-format
+msgid "Assume that values of enumeration type are always within the minimum range of that type."
+msgstr ""
+
+#: c-family/c.opt:2257 c-family/c.opt:2262
+#, no-c-format
+msgid "Follow the C++17 evaluation order requirements for assignment expressions, shift, member function calls, etc."
+msgstr ""
+
+#: c-family/c.opt:2279
+#, no-c-format
+msgid "Set the maximum number of template instantiation notes for a single warning or error."
+msgstr ""
+
+#: c-family/c.opt:2286
+#, no-c-format
+msgid "-ftemplate-depth=<number>\tSpecify maximum template instantiation depth."
+msgstr ""
+
+#: c-family/c.opt:2293
+#, no-c-format
+msgid "-fno-threadsafe-statics\tDo not generate thread-safe code for initializing local statics."
+msgstr ""
+
+#: c-family/c.opt:2297
+#, no-c-format
+msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned."
+msgstr ""
+
+#: c-family/c.opt:2301 ada/gcc-interface/lang.opt:89
+#, no-c-format
+msgid "Make \"char\" unsigned by default."
+msgstr ""
+
+#: c-family/c.opt:2305
+#, no-c-format
+msgid "Use __cxa_atexit to register destructors."
+msgstr ""
+
+#: c-family/c.opt:2309
+#, no-c-format
+msgid "Use __cxa_get_exception_ptr in exception handling."
+msgstr ""
+
+#: c-family/c.opt:2313
+#, no-c-format
+msgid "Marks all inlined functions and methods as having hidden visibility."
+msgstr ""
+
+#: c-family/c.opt:2317
+#, no-c-format
+msgid "Changes visibility to match Microsoft Visual Studio by default."
+msgstr ""
+
+#: c-family/c.opt:2329
+#, no-c-format
+msgid "Emit common-like symbols as weak symbols."
+msgstr ""
+
+#: c-family/c.opt:2333
+#, no-c-format
+msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>."
+msgstr ""
+
+#: c-family/c.opt:2337
+#, no-c-format
+msgid "Generate a #line directive pointing at the current working directory."
+msgstr ""
+
+#: c-family/c.opt:2345
+#, no-c-format
+msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode."
+msgstr ""
+
+#: c-family/c.opt:2349
+#, no-c-format
+msgid "Dump declarations to a .decl file."
+msgstr ""
+
+#: c-family/c.opt:2353
+#, no-c-format
+msgid "-femit-struct-debug-baseonly\tAggressive reduced debug info for structs."
+msgstr ""
+
+#: c-family/c.opt:2357
+#, no-c-format
+msgid "-femit-struct-debug-reduced\tConservative reduced debug info for structs."
+msgstr ""
+
+#: c-family/c.opt:2361
+#, no-c-format
+msgid "-femit-struct-debug-detailed=<spec-list>\tDetailed reduced debug info for structs."
+msgstr ""
+
+#: c-family/c.opt:2365
+#, no-c-format
+msgid "Interpret imaginary, fixed-point, or other gnu number suffix as the corresponding number literal rather than a user-defined number literal."
+msgstr ""
+
+#: c-family/c.opt:2370
+#, no-c-format
+msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path."
+msgstr ""
+
+#: c-family/c.opt:2374
+#, no-c-format
+msgid "-imacros <file>\tAccept definition of macros in <file>."
+msgstr ""
+
+#: c-family/c.opt:2378
+#, no-c-format
+msgid "-imultilib <dir>\tSet <dir> to be the multilib include subdirectory."
+msgstr ""
+
+#: c-family/c.opt:2382
+#, no-c-format
+msgid "-include <file>\tInclude the contents of <file> before other files."
+msgstr ""
+
+#: c-family/c.opt:2386
+#, no-c-format
+msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options."
+msgstr ""
+
+#: c-family/c.opt:2390
+#, no-c-format
+msgid "-isysroot <dir>\tSet <dir> to be the system root directory."
+msgstr ""
+
+#: c-family/c.opt:2394
+#, no-c-format
+msgid "-isystem <dir>\tAdd <dir> to the start of the system include path."
+msgstr ""
+
+#: c-family/c.opt:2398
+#, no-c-format
+msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path."
+msgstr ""
+
+#: c-family/c.opt:2402
+#, no-c-format
+msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path."
+msgstr ""
+
+#: c-family/c.opt:2406
+#, no-c-format
+msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path."
+msgstr ""
+
+#: c-family/c.opt:2416
+#, no-c-format
+msgid "Do not search standard system include directories (those specified with -isystem will still be used)."
+msgstr ""
+
+#: c-family/c.opt:2420
+#, no-c-format
+msgid "Do not search standard system include directories for C++."
+msgstr ""
+
+#: c-family/c.opt:2432
+#, no-c-format
+msgid "Generate C header of platform-specific features."
+msgstr ""
+
+#: c-family/c.opt:2436
+#, no-c-format
+msgid "Remap file names when including files."
+msgstr ""
+
+#: c-family/c.opt:2440 c-family/c.opt:2444
+#, no-c-format
+msgid "Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum."
+msgstr ""
+
+#: c-family/c.opt:2448
+#, no-c-format
+msgid "Conform to the ISO 2011 C++ standard."
+msgstr ""
+
+#: c-family/c.opt:2452
+#, no-c-format
+msgid "Deprecated in favor of -std=c++11."
+msgstr ""
+
+#: c-family/c.opt:2456
+#, no-c-format
+msgid "Deprecated in favor of -std=c++14."
+msgstr ""
+
+#: c-family/c.opt:2460
+#, no-c-format
+msgid "Conform to the ISO 2014 C++ standard."
+msgstr ""
+
+#: c-family/c.opt:2464
+#, no-c-format
+msgid "Deprecated in favor of -std=c++17."
+msgstr ""
+
+#: c-family/c.opt:2468
+#, no-c-format
+msgid "Conform to the ISO 2017 C++ standard."
+msgstr ""
+
+#: c-family/c.opt:2472 c-family/c.opt:2476
+#, no-c-format
+msgid "Conform to the ISO 2020 C++ standard (experimental and incomplete support)."
+msgstr ""
+
+#: c-family/c.opt:2480 c-family/c.opt:2484
+#, no-c-format
+msgid "Conform to the ISO 2023 C++ draft standard (experimental and incomplete support)."
+msgstr ""
+
+#: c-family/c.opt:2488 c-family/c.opt:2492
+#, no-c-format
+msgid "Conform to the ISO 2026 C++ draft standard (experimental and incomplete support)."
+msgstr ""
+
+#: c-family/c.opt:2496 c-family/c.opt:2650
+#, no-c-format
+msgid "Conform to the ISO 2011 C standard."
+msgstr ""
+
+#: c-family/c.opt:2500
+#, no-c-format
+msgid "Deprecated in favor of -std=c11."
+msgstr ""
+
+#: c-family/c.opt:2504 c-family/c.opt:2508 c-family/c.opt:2654
+#: c-family/c.opt:2658
+#, no-c-format
+msgid "Conform to the ISO 2017 C standard (published in 2018)."
+msgstr ""
+
+#: c-family/c.opt:2512 c-family/c.opt:2662
+#, no-c-format
+msgid "Conform to the ISO 2023 C standard draft (expected to be published in 2024) (experimental and incomplete support)."
+msgstr ""
+
+#: c-family/c.opt:2516
+#, no-c-format
+msgid "Deprecated in favor of -std=c23."
+msgstr ""
+
+#: c-family/c.opt:2520 c-family/c.opt:2524 c-family/c.opt:2634
+#, no-c-format
+msgid "Conform to the ISO 1990 C standard."
+msgstr ""
+
+#: c-family/c.opt:2528 c-family/c.opt:2642
+#, no-c-format
+msgid "Conform to the ISO 1999 C standard."
+msgstr ""
+
+#: c-family/c.opt:2532
+#, no-c-format
+msgid "Deprecated in favor of -std=c99."
+msgstr ""
+
+#: c-family/c.opt:2536 c-family/c.opt:2541
+#, no-c-format
+msgid "Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum with GNU extensions."
+msgstr ""
+
+#: c-family/c.opt:2546
+#, no-c-format
+msgid "Conform to the ISO 2011 C++ standard with GNU extensions."
+msgstr ""
+
+#: c-family/c.opt:2550
+#, no-c-format
+msgid "Deprecated in favor of -std=gnu++11."
+msgstr ""
+
+#: c-family/c.opt:2554
+#, no-c-format
+msgid "Deprecated in favor of -std=gnu++14."
+msgstr ""
+
+#: c-family/c.opt:2558
+#, no-c-format
+msgid "Conform to the ISO 2014 C++ standard with GNU extensions."
+msgstr ""
+
+#: c-family/c.opt:2562
+#, no-c-format
+msgid "Deprecated in favor of -std=gnu++17."
+msgstr ""
+
+#: c-family/c.opt:2566
+#, no-c-format
+msgid "Conform to the ISO 2017 C++ standard with GNU extensions."
+msgstr ""
+
+#: c-family/c.opt:2570 c-family/c.opt:2574
+#, no-c-format
+msgid "Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support)."
+msgstr ""
+
+#: c-family/c.opt:2578 c-family/c.opt:2582
+#, no-c-format
+msgid "Conform to the ISO 2023 C++ draft standard with GNU extensions (experimental and incomplete support)."
+msgstr ""
+
+#: c-family/c.opt:2586 c-family/c.opt:2590
+#, no-c-format
+msgid "Conform to the ISO 2026 C++ draft standard with GNU extensions (experimental and incomplete support)."
+msgstr ""
+
+#: c-family/c.opt:2594
+#, no-c-format
+msgid "Conform to the ISO 2011 C standard with GNU extensions."
+msgstr ""
+
+#: c-family/c.opt:2598
+#, no-c-format
+msgid "Deprecated in favor of -std=gnu11."
+msgstr ""
+
+#: c-family/c.opt:2602 c-family/c.opt:2606
+#, no-c-format
+msgid "Conform to the ISO 2017 C standard (published in 2018) with GNU extensions."
+msgstr ""
+
+#: c-family/c.opt:2610
+#, no-c-format
+msgid "Conform to the ISO 2023 C standard draft (expected to be published in 2024) with GNU extensions (experimental and incomplete support)."
+msgstr ""
+
+#: c-family/c.opt:2614
+#, no-c-format
+msgid "Deprecated in favor of -std=gnu23."
+msgstr ""
+
+#: c-family/c.opt:2618 c-family/c.opt:2622
+#, no-c-format
+msgid "Conform to the ISO 1990 C standard with GNU extensions."
+msgstr ""
+
+#: c-family/c.opt:2626
+#, no-c-format
+msgid "Conform to the ISO 1999 C standard with GNU extensions."
+msgstr ""
+
+#: c-family/c.opt:2630
+#, no-c-format
+msgid "Deprecated in favor of -std=gnu99."
+msgstr ""
+
+#: c-family/c.opt:2638
+#, no-c-format
+msgid "Conform to the ISO 1990 C standard as amended in 1994."
+msgstr ""
+
+#: c-family/c.opt:2646
+#, no-c-format
+msgid "Deprecated in favor of -std=iso9899:1999."
+msgstr ""
+
+#: c-family/c.opt:2666
+#, no-c-format
+msgid "-stdlib=[libstdc++|libc++]\tThe standard library to be used for C++ headers and runtime."
+msgstr ""
+
+#: c-family/c.opt:2683
+#, no-c-format
+msgid "Enable traditional preprocessing."
+msgstr ""
+
+#: c-family/c.opt:2687
+#, no-c-format
+msgid "-trigraphs\tSupport ISO C trigraphs."
+msgstr ""
+
+#: c-family/c.opt:2691
+#, no-c-format
+msgid "Do not predefine system-specific and GCC-specific macros."
+msgstr ""
+
+#: ada/gcc-interface/lang.opt:61
+#, no-c-format
+msgid "Dump Source Coverage Obligations."
+msgstr ""
+
+#: ada/gcc-interface/lang.opt:65
+#, no-c-format
+msgid "Synonym of -gnatk8."
+msgstr ""
+
+#: ada/gcc-interface/lang.opt:73
+#, no-c-format
+msgid "Do not look for object files in standard path."
+msgstr ""
+
+#: ada/gcc-interface/lang.opt:77
+#, no-c-format
+msgid "Select the runtime."
+msgstr ""
+
+#: ada/gcc-interface/lang.opt:93
+#, no-c-format
+msgid "Catch typos."
+msgstr ""
+
+#: ada/gcc-interface/lang.opt:97
+#, no-c-format
+msgid "Set name of output ALI file (internal switch)."
+msgstr ""
+
+#: ada/gcc-interface/lang.opt:101
+#, no-c-format
+msgid "-gnat<options>\tSpecify options to GNAT."
+msgstr ""
+
+#: ada/gcc-interface/lang.opt:105
+#, no-c-format
+msgid "Ignored."
+msgstr "იგნორირებულია."
+
+#: d/lang.opt:51
+#, no-c-format
+msgid "-Hd <dir>\tWrite D interface files to directory <dir>."
+msgstr ""
+
+#: d/lang.opt:55
+#, no-c-format
+msgid "-Hf <file>\tWrite D interface to <file>."
+msgstr ""
+
+#: d/lang.opt:127
+#, no-c-format
+msgid "Warn about casts that will produce a null result."
+msgstr ""
+
+#: d/lang.opt:143
+#, no-c-format
+msgid "Warn when a special enum is declared with the wrong base type."
+msgstr ""
+
+#: d/lang.opt:151
+#, no-c-format
+msgid "Warn from speculative compiles such as __traits(compiles)."
+msgstr ""
+
+#: d/lang.opt:163
+#, no-c-format
+msgid "Generate JSON file."
+msgstr ""
+
+#: d/lang.opt:167
+#, no-c-format
+msgid "-Xf <file>\tWrite JSON output to the given <file>."
+msgstr ""
+
+#: d/lang.opt:171
+#, no-c-format
+msgid "Debug library to use instead of phobos."
+msgstr ""
+
+#: d/lang.opt:175
+#, no-c-format
+msgid "Default library to use instead of phobos."
+msgstr ""
+
+#: d/lang.opt:179
+#, no-c-format
+msgid "Do link the standard D startup files in the compilation."
+msgstr ""
+
+#: d/lang.opt:186
+#, no-c-format
+msgid "Generate code for all template instantiations."
+msgstr ""
+
+#: d/lang.opt:190
+#, no-c-format
+msgid "Generate code for assert contracts."
+msgstr ""
+
+#: d/lang.opt:198
+#, no-c-format
+msgid "-fbounds-check=[on|safeonly|off]\tTurn array bounds checks on, in @safe code only, or off."
+msgstr ""
+
+#: d/lang.opt:240
+#, no-c-format
+msgid "-fcheckaction=[throw,halt,context]\tBehavior on contract failure."
+msgstr ""
+
+#: d/lang.opt:256
+#, no-c-format
+msgid "Compile in debug code."
+msgstr ""
+
+#: d/lang.opt:260
+#, no-c-format
+msgid "-fdebug=<ident>\tCompile in debug code identified by <ident>."
+msgstr ""
+
+#: d/lang.opt:264
+#, no-c-format
+msgid "Generate documentation."
+msgstr ""
+
+#: d/lang.opt:268
+#, no-c-format
+msgid "-fdoc-dir=<dir>\tWrite documentation file to directory <dir>."
+msgstr ""
+
+#: d/lang.opt:272
+#, no-c-format
+msgid "-fdoc-file=<file>\tWrite documentation to <file>."
+msgstr ""
+
+#: d/lang.opt:276
+#, no-c-format
+msgid "-fdoc-inc=<file>\tInclude a Ddoc macro <file>."
+msgstr ""
+
+#: d/lang.opt:280
+#, no-c-format
+msgid "Assume that standard D runtime libraries and \"D main\" exist."
+msgstr ""
+
+#: d/lang.opt:284
+#, no-c-format
+msgid "Add comments for ignored declarations in the generated C++ header."
+msgstr ""
+
+#: d/lang.opt:288
+#, no-c-format
+msgid "-fdump-cxx-spec=<filename>\tWrite all declarations as C++ code to <filename>."
+msgstr ""
+
+#: d/lang.opt:292
+#, no-c-format
+msgid "Display the frontend AST after parsing and semantic passes."
+msgstr ""
+
+#: d/lang.opt:300
+#, no-c-format
+msgid "-fextern-std=<standard>\tSet C++ name mangling compatibility with <standard>."
+msgstr ""
+
+#: d/lang.opt:325
+#, no-c-format
+msgid "Ignore unsupported pragmas."
+msgstr ""
+
+#: d/lang.opt:329
+#, no-c-format
+msgid "Generate code for class invariant contracts."
+msgstr ""
+
+#: d/lang.opt:333
+#, no-c-format
+msgid "Generate a default D main() function when compiling."
+msgstr ""
+
+#: d/lang.opt:337
+#, no-c-format
+msgid "-fmodule-file=<package.module>=<filespec>\tuse <filespec> as source file for <package.module>."
+msgstr ""
+
+#: d/lang.opt:341
+#, no-c-format
+msgid "Generate ModuleInfo struct for output module."
+msgstr ""
+
+#: d/lang.opt:345
+#, no-c-format
+msgid "Process all modules specified on the command line, but only generate code for the module specified by the argument."
+msgstr ""
+
+#: d/lang.opt:349
+#, no-c-format
+msgid "Generate code for postcondition contracts."
+msgstr ""
+
+#: d/lang.opt:353
+#, no-c-format
+msgid "Generate code for precondition contracts."
+msgstr ""
+
+#: d/lang.opt:357
+#, no-c-format
+msgid "Turn on all upcoming D language features."
+msgstr ""
+
+#: d/lang.opt:361
+#, no-c-format
+msgid "Implement D bit-fields."
+msgstr ""
+
+#: d/lang.opt:365
+#, no-c-format
+msgid "Implement DIP1000: Scoped pointers."
+msgstr ""
+
+#: d/lang.opt:369
+#, no-c-format
+msgid "Implement DIP1008: Allow exceptions in @nogc code."
+msgstr ""
+
+#: d/lang.opt:373
+#, no-c-format
+msgid "Implement DIP1021: Mutable function arguments."
+msgstr ""
+
+#: d/lang.opt:377
+#, no-c-format
+msgid "Destruct fields of partially constructed objects."
+msgstr ""
+
+#: d/lang.opt:381
+#, no-c-format
+msgid "Use field-wise comparisons for struct equality."
+msgstr ""
+
+#: d/lang.opt:385
+#, no-c-format
+msgid "When a symbol is resolved, check `alias this' scope before going to upper scopes."
+msgstr ""
+
+#: d/lang.opt:389
+#, no-c-format
+msgid "Disallow unsound immutable conversions that were formerly incorrectly permitted."
+msgstr ""
+
+#: d/lang.opt:393
+#, no-c-format
+msgid "Implement 'in' parameters to mean scope const."
+msgstr ""
+
+#: d/lang.opt:397
+#, no-c-format
+msgid "Implement 'in' contracts of overridden methods to be a superset of parent contract."
+msgstr ""
+
+#: d/lang.opt:401
+#, no-c-format
+msgid "Disable access to shared memory objects."
+msgstr ""
+
+#: d/lang.opt:405
+#, no-c-format
+msgid "Enable rvalue arguments to ref parameters."
+msgstr ""
+
+#: d/lang.opt:409
+#, no-c-format
+msgid "Disable access to variables marked `@system' from @safe code."
+msgstr ""
+
+#: d/lang.opt:413
+#, no-c-format
+msgid "Compile release version."
+msgstr ""
+
+#: d/lang.opt:417
+#, no-c-format
+msgid "Turn off all revertable D language features."
+msgstr ""
+
+#: d/lang.opt:421
+#, no-c-format
+msgid "Revert DIP1000: Scoped pointers."
+msgstr ""
+
+#: d/lang.opt:425
+#, no-c-format
+msgid "Don't destruct fields of partially constructed objects."
+msgstr ""
+
+#: d/lang.opt:429
+#, no-c-format
+msgid "Don't use C-style integral promotion for unary '+', '-' and '~'."
+msgstr ""
+
+#: d/lang.opt:437
+#, no-c-format
+msgid "-fsave-mixins=<filename>\tExpand and save mixins to file specified by <filename>."
+msgstr ""
+
+#: d/lang.opt:441
+#, no-c-format
+msgid "Generate code for switches without a default case."
+msgstr ""
+
+#: d/lang.opt:445
+#, no-c-format
+msgid "List information on all D language transitions."
+msgstr ""
+
+#: d/lang.opt:449
+#, no-c-format
+msgid "List all non-mutable fields which occupy an object instance."
+msgstr ""
+
+#: d/lang.opt:453
+#, no-c-format
+msgid "List all usages of 'in' on parameter."
+msgstr ""
+
+#: d/lang.opt:457
+#, no-c-format
+msgid "List all hidden GC allocations."
+msgstr ""
+
+#: d/lang.opt:461
+#, no-c-format
+msgid "List statistics on template instantiations."
+msgstr ""
+
+#: d/lang.opt:465
+#, no-c-format
+msgid "List all variables going into thread local storage."
+msgstr ""
+
+#: d/lang.opt:469
+#, no-c-format
+msgid "Compile in unittest code."
+msgstr ""
+
+#: d/lang.opt:473
+#, no-c-format
+msgid "-fversion=<ident>\tCompile in version code identified by <ident>."
+msgstr ""
+
+#: d/lang.opt:477
+#, no-c-format
+msgid "Emit template instantiations as weak symbols."
+msgstr ""
+
+#: d/lang.opt:497
+#, no-c-format
+msgid "Do not link the standard D library in the compilation."
+msgstr ""
+
+#: d/lang.opt:505
+#, no-c-format
+msgid "Link the standard D library statically in the compilation."
+msgstr ""
+
+#: d/lang.opt:509
+#, no-c-format
+msgid "Link the standard D library dynamically in the compilation."
+msgstr ""
+
+#: m2/lang.opt:35
+#, no-c-format
+msgid "turns on case statement label compile time checking when using an expression of an enum type."
+msgstr ""
+
+#: m2/lang.opt:39
+#, no-c-format
+msgid "compiler checks to force definition module procedure parameter names with their implementation module counterpart"
+msgstr ""
+
+#: m2/lang.opt:43
+#, no-c-format
+msgid "compiler warns if a cast is being used on types of differing sizes"
+msgstr ""
+
+#: m2/lang.opt:47
+#, no-c-format
+msgid "inform user which parameters will be passed by reference"
+msgstr ""
+
+#: m2/lang.opt:51
+#, no-c-format
+msgid "extra compile time semantic checking, typically tries to catch poor programming style"
+msgstr ""
+
+#: m2/lang.opt:55
+#, no-c-format
+msgid "turns on compile time analysis in the first basic block of a procedure detecting access to uninitialized data."
+msgstr ""
+
+#: m2/lang.opt:59
+#, no-c-format
+msgid "turns on compile time analysis to detect access to uninitialized variables, the checking can be specified by: known,cond,all."
+msgstr ""
+
+#: m2/lang.opt:63
+#, no-c-format
+msgid "automatically initializes all pointers to NIL"
+msgstr ""
+
+#: m2/lang.opt:67
+#, no-c-format
+msgid "turns on runtime subrange, array index and indirection via NIL pointer checking"
+msgstr ""
+
+#: m2/lang.opt:71
+#, no-c-format
+msgid "turns on runtime checking to check whether a CASE statement requires an ELSE clause when one was not specified"
+msgstr ""
+
+#: m2/lang.opt:75
+#, no-c-format
+msgid "use cpp to preprocess the module"
+msgstr ""
+
+#: m2/lang.opt:79 m2/lang.opt:83
+#, no-c-format
+msgid "passed to the preprocessor if -fcpp is used (internal switch)"
+msgstr ""
+
+#: m2/lang.opt:87
+#, no-c-format
+msgid "call a real function, rather than the builtin equivalent"
+msgstr ""
+
+#: m2/lang.opt:91
+#, no-c-format
+msgid "turn on internal debugging of the compiler (internal switch)"
+msgstr ""
+
+#: m2/lang.opt:95
+#, no-c-format
+msgid "turn on tracing of procedure line numbers (internal switch)"
+msgstr ""
+
+#: m2/lang.opt:99
+#, no-c-format
+msgid "recognize the specified suffix as a definition module filename"
+msgstr ""
+
+#: m2/lang.opt:103
+#, no-c-format
+msgid "display all inbuilt system items"
+msgstr ""
+
+#: m2/lang.opt:107
+#, no-c-format
+msgid "allows opaque types to be implemented as any type (a GNU Modula-2 extension)"
+msgstr ""
+
+#: m2/lang.opt:111
+#, no-c-format
+msgid "turns on runtime checking to check whether a floating point number will exceed range"
+msgstr ""
+
+#: m2/lang.opt:115
+#, no-c-format
+msgid "create a topologically sorted module list from all dependent modules used in the application"
+msgstr ""
+
+#: m2/lang.opt:119 m2/lang.opt:211
+#, no-c-format
+msgid "turns on all range checking for numerical values"
+msgstr ""
+
+#: m2/lang.opt:123
+#, no-c-format
+msgid "use ISO dialect of Modula-2"
+msgstr ""
+
+#: m2/lang.opt:127
+#, no-c-format
+msgid "specify the library order, the libraries may be specified by a comma separated abbreviation: log,min,pim,iso or by directory names: m2log,m2min,m2pim,m2iso."
+msgstr ""
+
+#: m2/lang.opt:131
+#, no-c-format
+msgid "set all location values to a specific value (internal switch)"
+msgstr ""
+
+#: m2/lang.opt:135
+#, no-c-format
+msgid "turn on internal debug tracing for quad,token,line,all (internal switch)"
+msgstr ""
+
+#: m2/lang.opt:139
+#, no-c-format
+msgid "generate extra nops to improve debugging, producing an instruction for every code related keyword"
+msgstr ""
+
+#: m2/lang.opt:143
+#, no-c-format
+msgid "generate error messages which render keywords in lower case"
+msgstr ""
+
+#: m2/lang.opt:147
+#, no-c-format
+msgid "specify the module mangled prefix name for all modules in the following include paths"
+msgstr ""
+
+#: m2/lang.opt:155
+#, no-c-format
+msgid "insert plugin to identify runtime errors at compiletime"
+msgstr ""
+
+#: m2/lang.opt:159
+#, no-c-format
+msgid "specify the module mangled prefix name"
+msgstr ""
+
+#: m2/lang.opt:163
+#, no-c-format
+msgid "display statistics about the amount of source lines compiled and symbols used"
+msgstr ""
+
+#: m2/lang.opt:167
+#, no-c-format
+msgid "experimental flag to turn on the new strict type checker"
+msgstr ""
+
+#: m2/lang.opt:171
+#, no-c-format
+msgid "compile all implementation modules and program module at once"
+msgstr ""
+
+#: m2/lang.opt:175
+#, no-c-format
+msgid "recognize the specified suffix as implementation and module filenames"
+msgstr ""
+
+#: m2/lang.opt:179
+#, no-c-format
+msgid "turns on runtime checking to detect accessing data through a NIL value pointer"
+msgstr ""
+
+#: m2/lang.opt:183
+#, no-c-format
+msgid "use PIM [234] dialect of Modula-2"
+msgstr ""
+
+#: m2/lang.opt:187
+#, no-c-format
+msgid "use PIM 2 dialect of Modula-2"
+msgstr ""
+
+#: m2/lang.opt:191
+#, no-c-format
+msgid "use PIM 3 dialect of Modula-2"
+msgstr ""
+
+#: m2/lang.opt:195
+#, no-c-format
+msgid "use PIM 4 dialect of Modula-2"
+msgstr ""
+
+#: m2/lang.opt:199
+#, no-c-format
+msgid "force positive result from MOD and DIV result floor"
+msgstr ""
+
+#: m2/lang.opt:203
+#, no-c-format
+msgid "link against the pthread library (default on)"
+msgstr ""
+
+#: m2/lang.opt:207
+#, no-c-format
+msgid "internal compiler debugging information, dump the list of quadruples"
+msgstr ""
+
+#: m2/lang.opt:215
+#, no-c-format
+msgid "turns on runtime checking for functions which finish without executing a RETURN statement"
+msgstr ""
+
+#: m2/lang.opt:219
+#, no-c-format
+msgid "specify the list of runtime modules and their initialization order"
+msgstr ""
+
+#: m2/lang.opt:223
+#, no-c-format
+msgid "the modules initialization order is dynamically determined by M2RTS and application dependencies"
+msgstr ""
+
+#: m2/lang.opt:227
+#, no-c-format
+msgid "generate a C source scaffold for the current module being compiled"
+msgstr ""
+
+#: m2/lang.opt:231
+#, no-c-format
+msgid "generate a C++ source scaffold for the current module being compiled"
+msgstr ""
+
+#: m2/lang.opt:235
+#, no-c-format
+msgid "generate the main function"
+msgstr ""
+
+#: m2/lang.opt:239
+#, no-c-format
+msgid "generate static scaffold initialization and finalization for every module inside main"
+msgstr ""
+
+#: m2/lang.opt:243
+#, no-c-format
+msgid "generate a shared library from the module"
+msgstr ""
+
+#: m2/lang.opt:247
+#, no-c-format
+msgid "turns on all software runtime checking (an abbreviation for -fnil -frange -findex -fwholediv -fcase -freturn -fwholevalue -ffloatvalue)"
+msgstr ""
+
+#: m2/lang.opt:251
+#, no-c-format
+msgid "display the location of module source files as they are compiled"
+msgstr ""
+
+#: m2/lang.opt:255
+#, no-c-format
+msgid "create a swig interface file for the module"
+msgstr ""
+
+#: m2/lang.opt:259
+#, no-c-format
+msgid "optimize non var unbounded parameters by passing it by reference, providing it is not written to within the callee procedure."
+msgstr ""
+
+#: m2/lang.opt:263
+#, no-c-format
+msgid "orders the initialization/finalizations for scaffold-static or force linking of modules if scaffold-dynamic"
+msgstr ""
+
+#: m2/lang.opt:271
+#, no-c-format
+msgid "turns on all division and modulus by zero checking for ordinal values"
+msgstr ""
+
+#: m2/lang.opt:275
+#, no-c-format
+msgid "turns on runtime checking to check whether a whole number will exceed range"
+msgstr ""
+
+#: m2/lang.opt:279
+#, no-c-format
+msgid "Link the standard Modula-2 libraries statically in the compilation."
+msgstr ""
+
+#: m2/lang.opt:424 m2/lang.opt:428
+#, no-c-format
+msgid "save temporary preprocessed files"
+msgstr ""
+
+#: go/lang.opt:42
+#, no-c-format
+msgid "-fgo-c-header=<file>\tWrite Go struct definitions to file as C code."
+msgstr ""
+
+#: go/lang.opt:46
+#, no-c-format
+msgid "Add explicit checks for division by zero."
+msgstr ""
+
+#: go/lang.opt:50
+#, no-c-format
+msgid "Add explicit checks for division overflow in INT_MIN / -1."
+msgstr ""
+
+#: go/lang.opt:54
+#, no-c-format
+msgid "Apply special rules for compiling runtime package."
+msgstr ""
+
+#: go/lang.opt:58
+#, no-c-format
+msgid "-fgo-dump-<type>\tDump Go frontend internal information."
+msgstr ""
+
+#: go/lang.opt:62
+#, no-c-format
+msgid "-fgo-embedcfg=<file>\tList embedded files via go:embed."
+msgstr ""
+
+#: go/lang.opt:66
+#, no-c-format
+msgid "-fgo-importcfg=<file>\tProvide file that tells where to find imports."
+msgstr ""
+
+#: go/lang.opt:70
+#, no-c-format
+msgid "-fgo-optimize-<type>\tTurn on optimization passes in the frontend."
+msgstr ""
+
+#: go/lang.opt:74
+#, no-c-format
+msgid "-fgo-pkgpath=<string>\tSet Go package path."
+msgstr ""
+
+#: go/lang.opt:78
+#, no-c-format
+msgid "-fgo-prefix=<string>\tSet package-specific prefix for exported Go names."
+msgstr ""
+
+#: go/lang.opt:82
+#, no-c-format
+msgid "-fgo-relative-import-path=<path>\tTreat a relative import as relative to path."
+msgstr ""
+
+#: go/lang.opt:86
+#, no-c-format
+msgid "Functions which return values must end with return statements."
+msgstr ""
+
+#: go/lang.opt:90
+#, no-c-format
+msgid "Emit debugging information related to the escape analysis pass when run with -fgo-optimize-allocs."
+msgstr ""
+
+#: go/lang.opt:94
+#, no-c-format
+msgid "-fgo-debug-escape-hash=<string>\tHash value to debug escape analysis."
+msgstr ""
+
+#: go/lang.opt:98
+#, no-c-format
+msgid "Emit optimization diagnostics."
+msgstr ""
+
+#: analyzer/analyzer.opt:27
+#, no-c-format
+msgid "The maximum number of 'after supernode' exploded nodes within the analyzer per supernode, before terminating analysis."
+msgstr ""
+
+#: analyzer/analyzer.opt:31
+#, no-c-format
+msgid "The maximum number of exploded nodes per program point within the analyzer, before terminating analysis of that point."
+msgstr ""
+
+#: analyzer/analyzer.opt:35
+#, no-c-format
+msgid "The maximum number of constraints per state."
+msgstr ""
+
+#: analyzer/analyzer.opt:39
+#, no-c-format
+msgid "The maximum number of infeasible edges to reject before declaring a diagnostic as infeasible."
+msgstr ""
+
+#: analyzer/analyzer.opt:43
+#, no-c-format
+msgid "The maximum number of times a callsite can appear in a call stack within the analyzer, before terminating analysis of a call that would recurse deeper."
+msgstr ""
+
+#: analyzer/analyzer.opt:47
+#, no-c-format
+msgid "The maximum depth of a symbolic value, before approximating the value as unknown."
+msgstr ""
+
+#: analyzer/analyzer.opt:51
+#, no-c-format
+msgid "The minimum number of supernodes within a function for the analyzer to consider summarizing its effects at call sites."
+msgstr ""
+
+#: analyzer/analyzer.opt:55
+#, no-c-format
+msgid "The maximum depth of exploded nodes that should appear in a dot dump before switching to a less verbose format."
+msgstr ""
+
+#: analyzer/analyzer.opt:59
+#, no-c-format
+msgid "The number of bytes at which to ellipsize string literals in analyzer text art diagrams."
+msgstr ""
+
+#: analyzer/analyzer.opt:63
+#, no-c-format
+msgid "The number of literal bytes to show at the head of a string literal in text art when ellipsizing it."
+msgstr ""
+
+#: analyzer/analyzer.opt:67
+#, no-c-format
+msgid "The number of literal bytes to show at the tail of a string literal in text art when ellipsizing it."
+msgstr ""
+
+#: analyzer/analyzer.opt:71
+#, no-c-format
+msgid "The ideal width in characters of text art diagrams generated by the analyzer."
+msgstr ""
+
+#: analyzer/analyzer.opt:75
+#, no-c-format
+msgid "Warn about code paths in which a pointer to a buffer is assigned to an incompatible type."
+msgstr ""
+
+#: analyzer/analyzer.opt:79
+#, no-c-format
+msgid "Warn about code paths in which a pointer is checked for NULL after it has already been dereferenced."
+msgstr ""
+
+#: analyzer/analyzer.opt:83
+#, no-c-format
+msgid "Warn about code paths in which a stdio FILE can be closed more than once."
+msgstr ""
+
+#: analyzer/analyzer.opt:87
+#, no-c-format
+msgid "Warn about code paths in which a pointer can be freed more than once."
+msgstr ""
+
+#: analyzer/analyzer.opt:91
+#, no-c-format
+msgid "Warn about code paths in which sensitive data is written to a file."
+msgstr ""
+
+#: analyzer/analyzer.opt:95
+#, no-c-format
+msgid "Warn about code paths in which sensitive data is copied across a security boundary."
+msgstr ""
+
+#: analyzer/analyzer.opt:99
+#, no-c-format
+msgid "Warn about code paths in which read on a write-only file descriptor is attempted, or vice versa."
+msgstr ""
+
+#: analyzer/analyzer.opt:103
+#, no-c-format
+msgid "Warn about code paths in which a file descriptor can be closed more than once."
+msgstr ""
+
+#: analyzer/analyzer.opt:107
+#, no-c-format
+msgid "Warn about code paths in which a file descriptor is not closed."
+msgstr ""
+
+#: analyzer/analyzer.opt:111
+#, no-c-format
+msgid "Warn about code paths in which an operation is attempted in the wrong phase of a file descriptor's lifetime."
+msgstr ""
+
+#: analyzer/analyzer.opt:115
+#, no-c-format
+msgid "Warn about code paths in which an operation is attempted on the wrong type of file descriptor."
+msgstr ""
+
+#: analyzer/analyzer.opt:119
+#, no-c-format
+msgid "Warn about code paths in which a read or write is performed on a closed file descriptor."
+msgstr ""
+
+#: analyzer/analyzer.opt:123
+#, no-c-format
+msgid "Warn about code paths in which a file descriptor is used without being checked for validity."
+msgstr ""
+
+#: analyzer/analyzer.opt:127
+#, no-c-format
+msgid "Warn about code paths in which a stdio FILE is not closed."
+msgstr ""
+
+#: analyzer/analyzer.opt:131
+#, no-c-format
+msgid "Warn about code paths in which a non-heap pointer is freed."
+msgstr ""
+
+#: analyzer/analyzer.opt:135
+#, no-c-format
+msgid "Warn about code paths in which floating-point arithmetic is used in locations where precise computation is needed."
+msgstr ""
+
+#: analyzer/analyzer.opt:139
+#, no-c-format
+msgid "Warn about code paths which appear to lead to an infinite loop."
+msgstr ""
+
+#: analyzer/analyzer.opt:143
+#, no-c-format
+msgid "Warn about code paths which appear to lead to infinite recursion."
+msgstr ""
+
+#: analyzer/analyzer.opt:147
+#, no-c-format
+msgid "Warn about code paths in which a NULL function pointer is called."
+msgstr ""
+
+#: analyzer/analyzer.opt:151
+#, no-c-format
+msgid "Warn about code paths in which a heap-allocated pointer leaks."
+msgstr ""
+
+#: analyzer/analyzer.opt:155
+#, no-c-format
+msgid "Warn about code paths in which the wrong deallocation function is called."
+msgstr ""
+
+#: analyzer/analyzer.opt:159
+#, no-c-format
+msgid "Warn about code paths in which a write or read to a buffer is out-of-bounds."
+msgstr ""
+
+#: analyzer/analyzer.opt:163
+#, no-c-format
+msgid "Warn about code paths in which undefined behavior would occur due to overlapping buffers."
+msgstr ""
+
+#: analyzer/analyzer.opt:167
+#, no-c-format
+msgid "Warn about code paths in which a possibly-NULL value is passed to a must-not-be-NULL function argument."
+msgstr ""
+
+#: analyzer/analyzer.opt:171
+#, no-c-format
+msgid "Warn about code paths in which a possibly-NULL pointer is dereferenced."
+msgstr ""
+
+#: analyzer/analyzer.opt:175
+#, no-c-format
+msgid "Warn about code paths in which an async-signal-unsafe function is called from a signal handler."
+msgstr ""
+
+#: analyzer/analyzer.opt:179
+#, no-c-format
+msgid "Warn about code paths in which NULL is passed to a must-not-be-NULL function argument."
+msgstr ""
+
+#: analyzer/analyzer.opt:183
+#, no-c-format
+msgid "Warn about code paths in which a NULL pointer is dereferenced."
+msgstr ""
+
+#: analyzer/analyzer.opt:187
+#, no-c-format
+msgid "Warn about code paths in which an on-stack buffer is passed to putenv."
+msgstr ""
+
+#: analyzer/analyzer.opt:191
+#, no-c-format
+msgid "Warn about code paths in which a shift with negative count is attempted."
+msgstr ""
+
+#: analyzer/analyzer.opt:195
+#, no-c-format
+msgid "Warn about code paths in which a shift with count >= width of type is attempted."
+msgstr ""
+
+#: analyzer/analyzer.opt:199
+#, no-c-format
+msgid "Warn about code paths in which a longjmp rewinds to a jmp_buf saved in a stack frame that has returned."
+msgstr ""
+
+#: analyzer/analyzer.opt:203
+#, no-c-format
+msgid "Warn about code paths in which an unsanitized value is used as an allocation size."
+msgstr ""
+
+#: analyzer/analyzer.opt:207
+#, no-c-format
+msgid "Warn about code paths in which an unsanitized value is used as an array index."
+msgstr ""
+
+#: analyzer/analyzer.opt:211
+#, no-c-format
+msgid "Warn about code paths in which an 'assert()' is made involving an unsanitized value."
+msgstr ""
+
+#: analyzer/analyzer.opt:215
+#, no-c-format
+msgid "Warn about code paths in which an unsanitized value is used as a divisor."
+msgstr ""
+
+#: analyzer/analyzer.opt:219
+#, no-c-format
+msgid "Warn about code paths in which an unsanitized value is used as a pointer offset."
+msgstr ""
+
+#: analyzer/analyzer.opt:223
+#, no-c-format
+msgid "Warn about code paths in which an unsanitized value is used as a size."
+msgstr ""
+
+#: analyzer/analyzer.opt:227
+#, no-c-format
+msgid "Warn about code paths in which a call is made to strtok with undefined behavior."
+msgstr ""
+
+#: analyzer/analyzer.opt:231
+#, no-c-format
+msgid "Warn about code paths in which a freed value is used."
+msgstr ""
+
+#: analyzer/analyzer.opt:235
+#, no-c-format
+msgid "Warn about code paths in which a pointer to a stale stack frame is used."
+msgstr ""
+
+#: analyzer/analyzer.opt:239
+#, no-c-format
+msgid "Warn about code paths in which va_arg uses the wrong type."
+msgstr ""
+
+#: analyzer/analyzer.opt:243
+#, no-c-format
+msgid "Warn about code paths in which va_arg is used too many times on a va_list."
+msgstr ""
+
+#: analyzer/analyzer.opt:247
+#, no-c-format
+msgid "Warn about code paths in which va_start or va_copy is used without a corresponding va_end."
+msgstr ""
+
+#: analyzer/analyzer.opt:251
+#, no-c-format
+msgid "Warn about code paths in which a va_list is used after va_end."
+msgstr ""
+
+#: analyzer/analyzer.opt:255
+#, no-c-format
+msgid "Warn about code paths which attempt to write to a const object."
+msgstr ""
+
+#: analyzer/analyzer.opt:259
+#, no-c-format
+msgid "Warn about code paths which attempt to write to a string literal."
+msgstr ""
+
+#: analyzer/analyzer.opt:263
+#, no-c-format
+msgid "Warn about code paths in which an uninitialized value is used."
+msgstr ""
+
+#: analyzer/analyzer.opt:267
+#, no-c-format
+msgid "Warn if expressions are too complicated for the analyzer to fully track."
+msgstr ""
+
+#: analyzer/analyzer.opt:271
+#, no-c-format
+msgid "Warn if the code is too complicated for the analyzer to fully explore."
+msgstr ""
+
+#: analyzer/analyzer.opt:275
+#, no-c-format
+msgid "Restrict the analyzer to run just the named checker."
+msgstr ""
+
+#: analyzer/analyzer.opt:279
+#, no-c-format
+msgid "Add extra annotations to diagrams."
+msgstr ""
+
+#: analyzer/analyzer.opt:283
+#, no-c-format
+msgid "Avoid combining multiple statements into one exploded edge."
+msgstr ""
+
+#: analyzer/analyzer.opt:287
+#, no-c-format
+msgid "Verify that paths are feasible when emitting diagnostics."
+msgstr ""
+
+#: analyzer/analyzer.opt:291
+#, no-c-format
+msgid "Issue a note when diagnostics are deduplicated."
+msgstr ""
+
+#: analyzer/analyzer.opt:295
+#, no-c-format
+msgid "Purge unneeded state during analysis."
+msgstr ""
+
+#: analyzer/analyzer.opt:299
+#, no-c-format
+msgid "Merge similar-enough states during analysis."
+msgstr ""
+
+#: analyzer/analyzer.opt:303
+#, no-c-format
+msgid "Stop exploring an execution path after certain diagnostics."
+msgstr ""
+
+#: analyzer/analyzer.opt:307
+#, no-c-format
+msgid "Enable transitivity of constraints during analysis."
+msgstr ""
+
+#: analyzer/analyzer.opt:311
+#, no-c-format
+msgid "Show events within system headers in analyzer execution paths."
+msgstr ""
+
+#: analyzer/analyzer.opt:315
+#, no-c-format
+msgid "Approximate the effect of function calls to simplify analysis."
+msgstr ""
+
+#: analyzer/analyzer.opt:319
+#, no-c-format
+msgid "Try to reconstruct function calls and returns after inlining."
+msgstr ""
+
+#: analyzer/analyzer.opt:323
+#, no-c-format
+msgid "Emit more verbose descriptions of control flow in diagnostics."
+msgstr ""
+
+#: analyzer/analyzer.opt:327
+#, no-c-format
+msgid "Emit more verbose descriptions of state changes in diagnostics."
+msgstr ""
+
+#: analyzer/analyzer.opt:331
+#, no-c-format
+msgid "Control which events are displayed in diagnostic paths."
+msgstr ""
+
+#: analyzer/analyzer.opt:335
+#, no-c-format
+msgid "Dump various analyzer internals to SRCFILE.analyzer.txt."
+msgstr ""
+
+#: analyzer/analyzer.opt:339
+#, no-c-format
+msgid "Dump various analyzer internals to stderr."
+msgstr ""
+
+#: analyzer/analyzer.opt:343
+#, no-c-format
+msgid "Dump analyzer-specific call graph information to a SRCFILE.callgraph.dot file."
+msgstr ""
+
+#: analyzer/analyzer.opt:347
+#, no-c-format
+msgid "Dump the analyzer exploded graph to a SRCFILE.eg.dot file."
+msgstr ""
+
+#: analyzer/analyzer.opt:351
+#, no-c-format
+msgid "Emit diagnostics showing the location of nodes in the exploded graph."
+msgstr ""
+
+#: analyzer/analyzer.opt:355
+#, no-c-format
+msgid "Dump a textual representation of the exploded graph to SRCFILE.eg.txt."
+msgstr ""
+
+#: analyzer/analyzer.opt:359
+#, no-c-format
+msgid "Dump a textual representation of the exploded graph to SRCFILE.eg-ID.txt."
+msgstr ""
+
+#: analyzer/analyzer.opt:363
+#, no-c-format
+msgid "Dump a textual representation of each diagnostic's exploded path to SRCFILE.IDX.KIND.epath.txt."
+msgstr ""
+
+#: analyzer/analyzer.opt:367
+#, no-c-format
+msgid "Dump various analyzer internals to SRCFILE.*.fg.dot and SRCFILE.*.tg.dot."
+msgstr ""
+
+#: analyzer/analyzer.opt:371
+#, no-c-format
+msgid "Dump various analyzer internals to SRCFILE.*.infinite-loop.dot."
+msgstr ""
+
+#: analyzer/analyzer.opt:375
+#, no-c-format
+msgid "Dump analyzer-specific data to a SRCFILE.analyzer.json.gz file."
+msgstr ""
+
+#: analyzer/analyzer.opt:379
+#, no-c-format
+msgid "Dump state-purging information to a SRCFILE.state-purge.dot file."
+msgstr ""
+
+#: analyzer/analyzer.opt:383
+#, no-c-format
+msgid "Dump the analyzer supergraph to a SRCFILE.supergraph.dot file."
+msgstr ""
+
+#: analyzer/analyzer.opt:387
+#, no-c-format
+msgid "Emit custom warnings with internal details intended for analyzer developers."
+msgstr ""
+
+#: config/vms/vms.opt:27
+#, no-c-format
+msgid "Malloc data into P2 space."
+msgstr ""
+
+#: config/vms/vms.opt:31
+#, no-c-format
+msgid "Set name of main routine for the debugger."
+msgstr ""
+
+#: config/vms/vms.opt:35
+#, no-c-format
+msgid "Use VMS exit codes instead of posix ones."
+msgstr ""
+
+#: config/vms/vms.opt:39
+#, no-c-format
+msgid "-mpointer-size=[no,32,short,64,long]\tSet the default pointer size."
+msgstr ""
+
+#: config/mcore/mcore.opt:23
+#, no-c-format
+msgid "Generate code for the M*Core M210."
+msgstr ""
+
+#: config/mcore/mcore.opt:27
+#, no-c-format
+msgid "Generate code for the M*Core M340."
+msgstr ""
+
+#: config/mcore/mcore.opt:31
+#, no-c-format
+msgid "Force functions to be aligned to a 4 byte boundary."
+msgstr ""
+
+#: config/mcore/mcore.opt:35 config/moxie/moxie.opt:23 config/csky/csky.opt:44
+#, no-c-format
+msgid "Generate big-endian code."
+msgstr ""
+
+#: config/mcore/mcore.opt:39
+#, no-c-format
+msgid "Emit call graph information."
+msgstr ""
+
+#: config/mcore/mcore.opt:43
+#, no-c-format
+msgid "Use the divide instruction."
+msgstr ""
+
+#: config/mcore/mcore.opt:47
+#, no-c-format
+msgid "Inline constants if it can be done in 2 insns or less."
+msgstr ""
+
+#: config/mcore/mcore.opt:51 config/moxie/moxie.opt:27 config/csky/csky.opt:51
+#, no-c-format
+msgid "Generate little-endian code."
+msgstr ""
+
+#: config/mcore/mcore.opt:56 config/fr30/fr30.opt:27
+#, no-c-format
+msgid "Assume that run-time support has been provided, so omit -lsim from the linker command line."
+msgstr ""
+
+#: config/mcore/mcore.opt:60
+#, no-c-format
+msgid "Use arbitrary sized immediates in bit operations."
+msgstr ""
+
+#: config/mcore/mcore.opt:64
+#, no-c-format
+msgid "Prefer word accesses over byte accesses."
+msgstr ""
+
+#: config/mcore/mcore.opt:71
+#, no-c-format
+msgid "Set the maximum amount for a single stack increment operation."
+msgstr ""
+
+#: config/mcore/mcore.opt:75
+#, no-c-format
+msgid "Always treat bitfields as int-sized."
+msgstr ""
+
+#: config/linux-android.opt:23
+#, no-c-format
+msgid "Generate code for the Android platform."
+msgstr ""
+
+#: config/mmix/mmix.opt:24
+#, no-c-format
+msgid "For intrinsics library: pass all parameters in registers."
+msgstr ""
+
+#: config/mmix/mmix.opt:28
+#, no-c-format
+msgid "Use register stack for parameters and return value."
+msgstr ""
+
+#: config/mmix/mmix.opt:32
+#, no-c-format
+msgid "Use call-clobbered registers for parameters and return value."
+msgstr ""
+
+#: config/mmix/mmix.opt:37
+#, no-c-format
+msgid "Use epsilon-respecting floating point compare instructions."
+msgstr ""
+
+#: config/mmix/mmix.opt:41
+#, no-c-format
+msgid "Use zero-extending memory loads, not sign-extending ones."
+msgstr ""
+
+#: config/mmix/mmix.opt:45
+#, no-c-format
+msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)."
+msgstr ""
+
+#: config/mmix/mmix.opt:49
+#, no-c-format
+msgid "Prepend global symbols with \":\" (for use with PREFIX)."
+msgstr ""
+
+#: config/mmix/mmix.opt:53
+#, no-c-format
+msgid "Do not provide a default start-address 0x100 of the program."
+msgstr ""
+
+#: config/mmix/mmix.opt:57
+#, no-c-format
+msgid "Link to emit program in ELF format (rather than mmo)."
+msgstr ""
+
+#: config/mmix/mmix.opt:61
+#, no-c-format
+msgid "Use P-mnemonics for branches statically predicted as taken."
+msgstr ""
+
+#: config/mmix/mmix.opt:65
+#, no-c-format
+msgid "Don't use P-mnemonics for branches."
+msgstr ""
+
+#: config/mmix/mmix.opt:79
+#, no-c-format
+msgid "Use addresses that allocate global registers."
+msgstr ""
+
+#: config/mmix/mmix.opt:83
+#, no-c-format
+msgid "Do not use addresses that allocate global registers."
+msgstr ""
+
+#: config/mmix/mmix.opt:87
+#, no-c-format
+msgid "Generate a single exit point for each function."
+msgstr ""
+
+#: config/mmix/mmix.opt:91
+#, no-c-format
+msgid "Do not generate a single exit point for each function."
+msgstr ""
+
+#: config/mmix/mmix.opt:95
+#, no-c-format
+msgid "Set start-address of the program."
+msgstr ""
+
+#: config/mmix/mmix.opt:99
+#, no-c-format
+msgid "Set start-address of data."
+msgstr ""
+
+#: config/darwin.opt:34
+#, no-c-format
+msgid "Generate code for darwin loadable kernel extensions."
+msgstr ""
+
+#: config/darwin.opt:38 config/darwin.opt:46
+#, no-c-format
+msgid "Generate compile-time CFString objects."
+msgstr ""
+
+#: config/darwin.opt:42
+#, no-c-format
+msgid "-iframework <dir>\tAdd <dir> to the end of the system framework include path."
+msgstr ""
+
+#: config/darwin.opt:50
+#, no-c-format
+msgid "Warn if constant CFString objects contain non-portable characters."
+msgstr ""
+
+#: config/darwin.opt:55
+#, no-c-format
+msgid "Generate AT&T-style stubs for Mach-O."
+msgstr ""
+
+#: config/darwin.opt:59
+#, no-c-format
+msgid "Generate code suitable for executables (NOT shared libs)."
+msgstr ""
+
+#: config/darwin.opt:63
+#, no-c-format
+msgid "Generate code suitable for fast turn around debugging."
+msgstr ""
+
+#: config/darwin.opt:67
+#, no-c-format
+msgid "Generate code for the kernel or loadable kernel extensions."
+msgstr ""
+
+#: config/darwin.opt:75
+#, no-c-format
+msgid "The earliest macOS version on which this program will run."
+msgstr ""
+
+#: config/darwin.opt:80
+#, no-c-format
+msgid "Set sizeof(bool) to 1."
+msgstr ""
+
+#: config/darwin.opt:84
+#, no-c-format
+msgid "Force generation of external symbol indirection stubs."
+msgstr ""
+
+#: config/darwin.opt:92
+#, no-c-format
+msgid "-mtarget-linker <version>\tSpecify that ld64 <version> is the toolchain linker for the current invocation."
+msgstr ""
+
+#: config/darwin.opt:98
+#, no-c-format
+msgid "Load all members of archive libraries, rather than only those that satisfy undefined symbols."
+msgstr ""
+
+#: config/darwin.opt:102
+#, no-c-format
+msgid "-allowable_client <name>\tThe output dylib is private to the client <name>."
+msgstr ""
+
+#: config/darwin.opt:106
+#, no-c-format
+msgid "-arch <name>\tGenerate output for architecture <name>."
+msgstr ""
+
+#: config/darwin.opt:110
+#, no-c-format
+msgid "Mismatches between file architecture and one specified by \"-arch\" are errors instead of warnings."
+msgstr ""
+
+#: config/darwin.opt:114
+#, no-c-format
+msgid "The earliest macOS version on which this program will run (formatted for the assembler)."
+msgstr ""
+
+#: config/darwin.opt:118
+#, no-c-format
+msgid "Generate an output executable that binds symbols on load, rather than lazily."
+msgstr ""
+
+#: config/darwin.opt:122
+#, no-c-format
+msgid "Generate a Mach-O bundle (file type MH_BUNDLE)."
+msgstr ""
+
+#: config/darwin.opt:126
+#, no-c-format
+msgid "-bundle_loader <executable>\tTreat <executable> (that will be loading this bundle) as if it was one of the dynamic libraries the bundle is linked against for symbol resolution."
+msgstr ""
+
+#: config/darwin.opt:130
+#, no-c-format
+msgid "-client_name <name>\tEnable the executable being built to link against a private dylib (using allowable_client)."
+msgstr ""
+
+#: config/darwin.opt:134
+#, no-c-format
+msgid "-compatibility_version <number>\tSet the version for the client interface.  Client programs must record a value less than or equal to <number>, or the binding will fail at runtime."
+msgstr ""
+
+#: config/darwin.opt:138
+#, no-c-format
+msgid "-current_version <number>\tSet the current version for the library to <number>."
+msgstr ""
+
+#: config/darwin.opt:142
+#, no-c-format
+msgid "Remove code and data that is unreachable from any exported symbol (including the entry point)."
+msgstr ""
+
+#: config/darwin.opt:146
+#, no-c-format
+msgid "-dylib_file install_name:file_name\tThis allows linking of a dylib with \"install_name\" but to be found in a different install position \"file_name\""
+msgstr ""
+
+#: config/darwin.opt:150
+#, no-c-format
+msgid "Produce a Mach-O dylinker (file type MH_DYLINKER), only used for building dyld."
+msgstr ""
+
+#: config/darwin.opt:154
+#, no-c-format
+msgid "-dylinker_install_name <path>\tOnly used for building dyld."
+msgstr ""
+
+#: config/darwin.opt:158
+#, no-c-format
+msgid "The default (and opposite of -static), implied by user mode executables, shared libraries and bundles."
+msgstr ""
+
+#: config/darwin.opt:162
+#, no-c-format
+msgid "Produce a Mach-O shared library (file type MH_DYLIB), synonym for \"-shared\"."
+msgstr ""
+
+#: config/darwin.opt:166
+#, no-c-format
+msgid "-exported_symbols_list <filename>\tExport global symbols in <filename> in linked output file; any symbols not mentioned will be treated as \"hidden\"."
+msgstr ""
+
+#: config/darwin.opt:170
+#, no-c-format
+msgid "Supply a list of objects to be linked from a file, rather than the command line."
+msgstr ""
+
+#: config/darwin.opt:174 config/darwin.opt:194
+#, no-c-format
+msgid "Used for generating code for some older kernel revisions."
+msgstr ""
+
+#: config/darwin.opt:178
+#, no-c-format
+msgid "Ignore the normal two-level namespace; resolve symbols in command line order and do not record which library provided the resolved symbol."
+msgstr ""
+
+#: config/darwin.opt:182
+#, no-c-format
+msgid "For the assembler (and linker) permit any architecture sub-variant to be used without error."
+msgstr ""
+
+#: config/darwin.opt:186
+#, no-c-format
+msgid "Set the output object such that, on loading, dyld will ignore any two-level namespace information and resolve symbols in the discovery order for loaded libs."
+msgstr ""
+
+#: config/darwin.opt:190
+#, no-c-format
+msgid "-framework <name>\tThe linker should search for the framework <name> in the framework search path."
+msgstr ""
+
+#: config/darwin.opt:198
+#, no-c-format
+msgid "Abbreviation for \"-g -fno-eliminate-unused-debug-symbols\"."
+msgstr ""
+
+#: config/darwin.opt:202
+#, no-c-format
+msgid "Abbreviation for \"-g -feliminate-unused-debug-symbols\"."
+msgstr ""
+
+#: config/darwin.opt:206
+#, no-c-format
+msgid "Automatically adds space for longer path names in load commands (up to MAXPATHLEN)."
+msgstr ""
+
+#: config/darwin.opt:210
+#, no-c-format
+msgid "-image_base <address>\tSpecify <address> as the base address for a dylib or bundle."
+msgstr ""
+
+#: config/darwin.opt:214
+#, no-c-format
+msgid "-init <symbol_name>\tThe symbol <symbol_name> will be used as the first initializer for a dylib."
+msgstr ""
+
+#: config/darwin.opt:218
+#, no-c-format
+msgid "-install_name <name>\tSet the install name for a dylib."
+msgstr ""
+
+#: config/darwin.opt:222
+#, no-c-format
+msgid "Usually \"private extern\" (hidden) symbols are made local when linking, this command suppresses that such that they remain exported."
+msgstr ""
+
+#: config/darwin.opt:226
+#, no-c-format
+msgid "(Obsolete after 10.4) Multi modules are ignored at runtime since macOS 10.4."
+msgstr ""
+
+#: config/darwin.opt:230
+#, no-c-format
+msgid "(Obsolete after 10.4) -multiply_defined <treatment>\tProvided a mechanism for warning about symbols defined in multiple dylibs."
+msgstr ""
+
+#: config/darwin.opt:234
+#, no-c-format
+msgid "(Obsolete after 10.4) -multiply_defined_unused <treatment>\tProvided a mechanism for warning about symbols defined in the current executable also being defined in linked dylibs."
+msgstr ""
+
+#: config/darwin.opt:238
+#, no-c-format
+msgid "(Obsolete) Current linkers never dead-strip these items, so the option is not needed."
+msgstr ""
+
+#: config/darwin.opt:242
+#, no-c-format
+msgid "Do not add a default symbol exports to modules or dynamic libraries."
+msgstr ""
+
+#: config/darwin.opt:246
+#, no-c-format
+msgid "Do not add default run paths (for the compiler library directories) to executables, modules or dynamic libraries."
+msgstr ""
+
+#: config/darwin.opt:250
+#, no-c-format
+msgid "(Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an executable."
+msgstr ""
+
+#: config/darwin.opt:254
+#, no-c-format
+msgid "(Obsolete after 10.4)\tSet MH_NOMULTIDEFS in an umbrella framework."
+msgstr ""
+
+#: config/darwin.opt:258 config/darwin.opt:273 config/darwin.opt:277
+#, no-c-format
+msgid "(Obsolete) LD_PREBIND is no longer supported."
+msgstr ""
+
+#: config/darwin.opt:262
+#, no-c-format
+msgid "(Obsolete) This is the default."
+msgstr ""
+
+#: config/darwin.opt:269
+#, no-c-format
+msgid "-pagezero_size <size>\tAllows setting the page 0 size to 4kb when required."
+msgstr ""
+
+#: config/darwin.opt:281
+#, no-c-format
+msgid "Produces a Mach-O file suitable for embedded/ROM use."
+msgstr ""
+
+#: config/darwin.opt:285
+#, no-c-format
+msgid "(Obsolete) Allowed linking to proceed with \"-flat_namespace\" when a linked bundle contained a symbol also exported from the main executable."
+msgstr ""
+
+#: config/darwin.opt:292
+#, no-c-format
+msgid "Synonym for \"-export-dynamic\" for linker versions that support it."
+msgstr ""
+
+#: config/darwin.opt:296
+#, no-c-format
+msgid "-read_only_relocs <treatment>\tAllow relocations in read-only pages (not recommended)."
+msgstr ""
+
+#: config/darwin.opt:300
+#, no-c-format
+msgid "-sectalign <segname> <sectname> <value>\tSet section <sectname> in segment <segname> to have alignment <value> which must be an integral power of two expressed in hexadecimal form."
+msgstr ""
+
+#: config/darwin.opt:304
+#, no-c-format
+msgid "-sectcreate <segname> <sectname> <file>\tCreate section <sectname> in segment <segname> from the contents of <file>."
+msgstr ""
+
+#: config/darwin.opt:308
+#, no-c-format
+msgid "(Obsolete) -sectobjectsymbols <segname> <sectname>\tSetting a local symbol at the start of a section is no longer supported."
+msgstr ""
+
+#: config/darwin.opt:312
+#, no-c-format
+msgid "(Obsolete) -sectorder <segname> <sectname> <orderfile>\tReplaced by a more general option \"-order_file\"."
+msgstr ""
+
+#: config/darwin.opt:316
+#, no-c-format
+msgid "-seg_addr_table <file>\tSpecify the base addresses for dynamic libraries; <file> contains a line for each library."
+msgstr ""
+
+#: config/darwin.opt:321
+#, no-c-format
+msgid "(Obsolete, ld_classic only) -seg_addr_table_filename <path>."
+msgstr ""
+
+#: config/darwin.opt:325
+#, no-c-format
+msgid "Synonym for \"image_base\"."
+msgstr ""
+
+#: config/darwin.opt:329
+#, no-c-format
+msgid "-segaddr <name> <address>\tSet the base address of segment <name> to <address> which must be aligned to a page boundary (currently 4kb)."
+msgstr ""
+
+#: config/darwin.opt:334
+#, no-c-format
+msgid "(Obsolete, ld_classic only) -sectcreate <segname> <sectname> <file>\tAllowed creation of a section from a file."
+msgstr ""
+
+#: config/darwin.opt:338
+#, no-c-format
+msgid "(Obsolete) Object files with LINKEDIT sections are no longer supported."
+msgstr ""
+
+#: config/darwin.opt:342
+#, no-c-format
+msgid "-segprot <segname> <max_prot> <init_prot>\tThe virtual memory protections for segment <segname> have maximum and initial values <max_prot> and <init_prot> respectively.  The specified values may contain \"r\", \"w\", \"x\" or \"-\" the latter meaning \"no access\"."
+msgstr ""
+
+#: config/darwin.opt:346
+#, no-c-format
+msgid "-segs_read_only_addr <address>\tSpecify that <address> is the base address of the read-only segments of a dylib."
+msgstr ""
+
+#: config/darwin.opt:350
+#, no-c-format
+msgid "-segs_read_write_addr <address>\tSpecify that <address> is the base address address of the read-write segments of a dylib."
+msgstr ""
+
+#: config/darwin.opt:354
+#, no-c-format
+msgid "(Obsolete)\tThis is the default."
+msgstr ""
+
+#: config/darwin.opt:358
+#, no-c-format
+msgid "-sub_library <name>\tLibrary named <name> will be re-exported (only useful for dylibs)."
+msgstr ""
+
+#: config/darwin.opt:362
+#, no-c-format
+msgid "-sub_umbrella <name>\tFramework named <name> will be re-exported (only useful for dylibs)."
+msgstr ""
+
+#: config/darwin.opt:366
+#, no-c-format
+msgid "This is the default."
+msgstr ""
+
+#: config/darwin.opt:370
+#, no-c-format
+msgid "Add extra information to the executable that can speed up dynamic loading (provided that dependent libraries are unchanged)."
+msgstr ""
+
+#: config/darwin.opt:374
+#, no-c-format
+msgid "-umbrella <framework>\tThe specified framework will be re-exported."
+msgstr ""
+
+#: config/darwin.opt:378
+#, no-c-format
+msgid "-undefined <treatment>\tSpecify the handling for undefined symbols (default is error)."
+msgstr ""
+
+#: config/darwin.opt:382
+#, no-c-format
+msgid "-unexported_symbols_list <filename>\tDo not export the global symbols listed in <filename>."
+msgstr ""
+
+#: config/darwin.opt:386
+#, no-c-format
+msgid "-weak_reference_mismatches <treatment>\tSpecifies what to do if a symbol import conflicts between file (weak in one and not in another) the default is to treat the symbol as non-weak."
+msgstr ""
+
+#: config/darwin.opt:390
+#, no-c-format
+msgid "Logs which object files the linker loads."
+msgstr ""
+
+#: config/darwin.opt:394
+#, no-c-format
+msgid "Logs which symbol(s) caused an object to be loaded."
+msgstr ""
+
+#: config/darwin.opt:402
+#, no-c-format
+msgid "(Obsolete, ignored)\tOld support similar to \"-whyload\"."
+msgstr ""
+
+#: config/darwin.opt:406
+#, no-c-format
+msgid "(Obsolete and unhandled by ld64, ignored)\tld should produce an executable (only handled by ld_classic)."
+msgstr ""
+
+#: config/bfin/bfin.opt:40 config/msp430/msp430.opt:3 config/c6x/c6x.opt:38
+#, no-c-format
+msgid "Use simulator runtime."
+msgstr ""
+
+#: config/bfin/bfin.opt:44 config/arm/arm.opt:117
+#, no-c-format
+msgid "Specify the name of the target CPU."
+msgstr ""
+
+#: config/bfin/bfin.opt:48
+#, no-c-format
+msgid "Omit frame pointer for leaf functions."
+msgstr ""
+
+#: config/bfin/bfin.opt:52
+#, no-c-format
+msgid "Program is entirely located in low 64k of memory."
+msgstr ""
+
+#: config/bfin/bfin.opt:56
+#, no-c-format
+msgid "Work around a hardware anomaly by adding a number of NOPs before a CSYNC or SSYNC instruction."
+msgstr ""
+
+#: config/bfin/bfin.opt:61
+#, no-c-format
+msgid "Avoid speculative loads to work around a hardware anomaly."
+msgstr ""
+
+#: config/bfin/bfin.opt:65
+#, no-c-format
+msgid "Enabled ID based shared library."
+msgstr ""
+
+#: config/bfin/bfin.opt:69
+#, no-c-format
+msgid "Generate code that won't be linked against any other ID shared libraries, but may be used as a shared library."
+msgstr ""
+
+#: config/bfin/bfin.opt:74 config/m68k/m68k.opt:175
+#, no-c-format
+msgid "ID of shared library to build."
+msgstr ""
+
+#: config/bfin/bfin.opt:78 config/m68k/m68k.opt:171
+#, no-c-format
+msgid "Enable separate data segment."
+msgstr ""
+
+#: config/bfin/bfin.opt:82 config/c6x/c6x.opt:63
+#, no-c-format
+msgid "Avoid generating pc-relative calls; use indirection."
+msgstr ""
+
+#: config/bfin/bfin.opt:86
+#, no-c-format
+msgid "Link with the fast floating-point library."
+msgstr ""
+
+#: config/bfin/bfin.opt:90 config/arm/arm.opt:345 config/frv/frv.opt:130
+#, no-c-format
+msgid "Enable Function Descriptor PIC mode."
+msgstr ""
+
+#: config/bfin/bfin.opt:94 config/frv/frv.opt:162
+#, no-c-format
+msgid "Enable inlining of PLT in function calls."
+msgstr ""
+
+#: config/bfin/bfin.opt:98
+#, no-c-format
+msgid "Do stack checking using bounds in L1 scratch memory."
+msgstr ""
+
+#: config/bfin/bfin.opt:102
+#, no-c-format
+msgid "Enable multicore support."
+msgstr ""
+
+#: config/bfin/bfin.opt:106
+#, no-c-format
+msgid "Build for Core A."
+msgstr ""
+
+#: config/bfin/bfin.opt:110
+#, no-c-format
+msgid "Build for Core B."
+msgstr ""
+
+#: config/bfin/bfin.opt:114
+#, no-c-format
+msgid "Build for SDRAM."
+msgstr ""
+
+#: config/bfin/bfin.opt:118
+#, no-c-format
+msgid "Assume ICPLBs are enabled at runtime."
+msgstr ""
+
+#: config/m68k/m68k-tables.opt:25
+#, no-c-format
+msgid "Known M68K CPUs (for use with the -mcpu= option):"
+msgstr ""
+
+#: config/m68k/m68k-tables.opt:365
+#, no-c-format
+msgid "Known M68K microarchitectures (for use with the -mtune= option):"
+msgstr ""
+
+#: config/m68k/m68k-tables.opt:411
+#, no-c-format
+msgid "Known M68K ISAs (for use with the -march= option):"
+msgstr ""
+
+#: config/m68k/ieee.opt:24 config/i386/i386.opt:389
+#, no-c-format
+msgid "Use IEEE math for fp comparisons."
+msgstr ""
+
+#: config/m68k/m68k.opt:30
+#, no-c-format
+msgid "Generate code for a 520X."
+msgstr ""
+
+#: config/m68k/m68k.opt:34
+#, no-c-format
+msgid "Generate code for a 5206e."
+msgstr ""
+
+#: config/m68k/m68k.opt:38
+#, no-c-format
+msgid "Generate code for a 528x."
+msgstr ""
+
+#: config/m68k/m68k.opt:42
+#, no-c-format
+msgid "Generate code for a 5307."
+msgstr ""
+
+#: config/m68k/m68k.opt:46
+#, no-c-format
+msgid "Generate code for a 5407."
+msgstr ""
+
+#: config/m68k/m68k.opt:50 config/m68k/m68k.opt:111
+#, no-c-format
+msgid "Generate code for a 68000."
+msgstr ""
+
+#: config/m68k/m68k.opt:54
+#, no-c-format
+msgid "Generate code for a 68010."
+msgstr ""
+
+#: config/m68k/m68k.opt:58 config/m68k/m68k.opt:115
+#, no-c-format
+msgid "Generate code for a 68020."
+msgstr ""
+
+#: config/m68k/m68k.opt:62
+#, no-c-format
+msgid "Generate code for a 68040, without any new instructions."
+msgstr ""
+
+#: config/m68k/m68k.opt:66
+#, no-c-format
+msgid "Generate code for a 68060, without any new instructions."
+msgstr ""
+
+#: config/m68k/m68k.opt:70
+#, no-c-format
+msgid "Generate code for a 68030."
+msgstr ""
+
+#: config/m68k/m68k.opt:74
+#, no-c-format
+msgid "Generate code for a 68040."
+msgstr ""
+
+#: config/m68k/m68k.opt:78
+#, no-c-format
+msgid "Generate code for a 68060."
+msgstr ""
+
+#: config/m68k/m68k.opt:82
+#, no-c-format
+msgid "Generate code for a 68302."
+msgstr ""
+
+#: config/m68k/m68k.opt:86
+#, no-c-format
+msgid "Generate code for a 68332."
+msgstr ""
+
+#: config/m68k/m68k.opt:91
+#, no-c-format
+msgid "Generate code for a 68851."
+msgstr ""
+
+#: config/m68k/m68k.opt:95
+#, no-c-format
+msgid "Generate code that uses 68881 floating-point instructions."
+msgstr ""
+
+#: config/m68k/m68k.opt:99
+#, no-c-format
+msgid "Align variables on a 32-bit boundary."
+msgstr ""
+
+#: config/m68k/m68k.opt:103 config/arm/arm.opt:86 config/nios2/nios2.opt:570
+#: config/nds32/nds32.opt:171 config/c6x/c6x.opt:67
+#, no-c-format
+msgid "Specify the name of the target architecture."
+msgstr ""
+
+#: config/m68k/m68k.opt:107
+#, no-c-format
+msgid "Use the bit-field instructions."
+msgstr ""
+
+#: config/m68k/m68k.opt:119
+#, no-c-format
+msgid "Generate code for a ColdFire v4e."
+msgstr ""
+
+#: config/m68k/m68k.opt:123
+#, no-c-format
+msgid "Specify the target CPU."
+msgstr ""
+
+#: config/m68k/m68k.opt:127
+#, no-c-format
+msgid "Generate code for a cpu32."
+msgstr ""
+
+#: config/m68k/m68k.opt:131
+#, no-c-format
+msgid "Use hardware division instructions on ColdFire."
+msgstr ""
+
+#: config/m68k/m68k.opt:135
+#, no-c-format
+msgid "Generate code for a Fido A."
+msgstr ""
+
+#: config/m68k/m68k.opt:139
+#, no-c-format
+msgid "Generate code which uses hardware floating point instructions."
+msgstr ""
+
+#: config/m68k/m68k.opt:143
+#, no-c-format
+msgid "Enable ID based shared library."
+msgstr ""
+
+#: config/m68k/m68k.opt:147
+#, no-c-format
+msgid "Use 32-bit offsets in jump tables rather than 16-bit offsets."
+msgstr ""
+
+#: config/m68k/m68k.opt:151
+#, no-c-format
+msgid "Do not use the bit-field instructions."
+msgstr ""
+
+#: config/m68k/m68k.opt:155
+#, no-c-format
+msgid "Use normal calling convention."
+msgstr ""
+
+#: config/m68k/m68k.opt:159
+#, no-c-format
+msgid "Consider type 'int' to be 32 bits wide."
+msgstr ""
+
+#: config/m68k/m68k.opt:163
+#, no-c-format
+msgid "Generate pc-relative code."
+msgstr ""
+
+#: config/m68k/m68k.opt:167
+#, no-c-format
+msgid "Use different calling convention using 'rtd'."
+msgstr ""
+
+#: config/m68k/m68k.opt:179
+#, no-c-format
+msgid "Consider type 'int' to be 16 bits wide."
+msgstr ""
+
+#: config/m68k/m68k.opt:183
+#, no-c-format
+msgid "Generate code with library calls for floating point."
+msgstr ""
+
+#: config/m68k/m68k.opt:187 config/xtensa/xtensa.opt:73
+#, no-c-format
+msgid "Do not use unaligned memory references."
+msgstr ""
+
+#: config/m68k/m68k.opt:191
+#, no-c-format
+msgid "Tune for the specified target CPU or architecture."
+msgstr ""
+
+#: config/m68k/m68k.opt:195
+#, no-c-format
+msgid "Support more than 8192 GOT entries on ColdFire."
+msgstr ""
+
+#: config/m68k/m68k.opt:199
+#, no-c-format
+msgid "Support TLS segment larger than 64K."
+msgstr ""
+
+#: config/riscv/riscv.opt:26 config/aarch64/aarch64.opt:74
+#: config/arm/arm.opt:105 config/microblaze/microblaze.opt:60
+#, no-c-format
+msgid "Assume target CPU is configured as big endian."
+msgstr ""
+
+#: config/riscv/riscv.opt:30 config/aarch64/aarch64.opt:94
+#: config/arm/arm.opt:170 config/microblaze/microblaze.opt:64
+#, no-c-format
+msgid "Assume target CPU is configured as little endian."
+msgstr ""
+
+#: config/riscv/riscv.opt:34
+#, no-c-format
+msgid "-mbranch-cost=N\tSet the cost of branches to roughly N instructions."
+msgstr ""
+
+#: config/riscv/riscv.opt:38
+#, no-c-format
+msgid "When generating -fpic code, allow the use of PLTs. Ignored for fno-pic."
+msgstr ""
+
+#: config/riscv/riscv.opt:42
+#, no-c-format
+msgid "Specify integer and floating-point calling convention."
+msgstr ""
+
+#: config/riscv/riscv.opt:46 config/i386/i386.opt:444
+#, no-c-format
+msgid "Attempt to keep stack aligned to this power of 2."
+msgstr ""
+
+#: config/riscv/riscv.opt:50
+#, no-c-format
+msgid "Supported ABIs (for use with the -mabi= option):"
+msgstr ""
+
+#: config/riscv/riscv.opt:78
+#, no-c-format
+msgid "Use hardware floating-point divide and square root instructions."
+msgstr ""
+
+#: config/riscv/riscv.opt:82
+#, no-c-format
+msgid "Use hardware instructions for integer division."
+msgstr ""
+
+#: config/riscv/riscv.opt:86
+#, no-c-format
+msgid "-march=\tGenerate code for given RISC-V ISA (e.g. RV64IM).  ISA strings must be lower-case."
+msgstr ""
+
+#: config/riscv/riscv.opt:91
+#, no-c-format
+msgid "-march=help\tPrint supported -march extensions."
+msgstr ""
+
+#: config/riscv/riscv.opt:103 config/mips/mips.opt:430
+#, no-c-format
+msgid "-mtune=PROCESSOR\tOptimize the output for PROCESSOR."
+msgstr ""
+
+#: config/riscv/riscv.opt:107
+#, no-c-format
+msgid "-mcpu=PROCESSOR\tUse architecture of and optimize the output for PROCESSOR."
+msgstr ""
+
+#: config/riscv/riscv.opt:111
+#, no-c-format
+msgid "-msmall-data-limit=N\tPut global and static data smaller than <number> bytes into a special section (on some targets)."
+msgstr ""
+
+#: config/riscv/riscv.opt:115
+#, no-c-format
+msgid "Use smaller but slower prologue and epilogue code."
+msgstr ""
+
+#: config/riscv/riscv.opt:119
+#, no-c-format
+msgid "Convert BASE + LARGE_OFFSET addresses to NEW_BASE + SMALL_OFFSET to allow more memory accesses to be generated as compressed instructions.  Currently targets 32-bit integer load/stores."
+msgstr ""
+
+#: config/riscv/riscv.opt:125 config/aarch64/aarch64.opt:98
+#: config/loongarch/loongarch.opt:266
+#, no-c-format
+msgid "Specify the code model."
+msgstr ""
+
+#: config/riscv/riscv.opt:129 config/loongarch/loongarch.opt:206
+#, no-c-format
+msgid "Do not generate unaligned memory accesses."
+msgstr ""
+
+#: config/riscv/riscv.opt:133 config/i386/i386.opt:308
+#: config/rs6000/aix64.opt:36 config/rs6000/linux64.opt:32
+#, no-c-format
+msgid "Known code models (for use with the -mcmodel= option):"
+msgstr ""
+
+#: config/riscv/riscv.opt:146
+#, no-c-format
+msgid "Use %reloc() operators, rather than assembly macros, to load addresses."
+msgstr ""
+
+#: config/riscv/riscv.opt:150 config/loongarch/loongarch.opt:274
+#, no-c-format
+msgid "Take advantage of linker relaxations to reduce the number of instructions required to materialize symbol addresses."
+msgstr ""
+
+#: config/riscv/riscv.opt:155
+#, no-c-format
+msgid "Enable the CSR checking for the ISA-dependent CSR and the read-only CSR. The ISA-dependent CSR are only valid when the specific ISA is set.  The read-only CSR can not be written by the CSR instructions."
+msgstr ""
+
+#: config/riscv/riscv.opt:161 config/aarch64/aarch64.opt:141
+#: config/i386/i386.opt:420
+#, no-c-format
+msgid "Omit the frame pointer in leaf functions."
+msgstr ""
+
+#: config/riscv/riscv.opt:183
+#, no-c-format
+msgid "Emit RISC-V ELF attribute."
+msgstr ""
+
+#: config/riscv/riscv.opt:187 config/i386/i386.opt:261
+#, no-c-format
+msgid "Use the given data alignment."
+msgstr ""
+
+#: config/riscv/riscv.opt:191 config/i386/i386.opt:265
+#, no-c-format
+msgid "Known data alignment choices (for use with the -malign-data= option):"
+msgstr ""
+
+#: config/riscv/riscv.opt:201 config/aarch64/aarch64.opt:304
+#: config/i386/i386.opt:1038 config/arm/arm.opt:349
+#: config/rs6000/rs6000.opt:554
+#, no-c-format
+msgid "Use given stack-protector guard."
+msgstr ""
+
+#: config/riscv/riscv.opt:205 config/aarch64/aarch64.opt:308
+#: config/arm/arm.opt:353 config/rs6000/rs6000.opt:558
+#, no-c-format
+msgid "Valid arguments to -mstack-protector-guard=:"
+msgstr ""
+
+#: config/riscv/riscv.opt:215 config/i386/i386.opt:1052
+#: config/rs6000/rs6000.opt:568
+#, no-c-format
+msgid "Use the given base register for addressing the stack-protector guard."
+msgstr ""
+
+#: config/riscv/riscv.opt:222 config/i386/i386.opt:1059
+#: config/rs6000/rs6000.opt:575
+#, no-c-format
+msgid "Use the given offset for addressing the stack-protector guard."
+msgstr ""
+
+#: config/riscv/riscv.opt:494
+#, no-c-format
+msgid "Supported ISA specs (for use with the -misa-spec= option):"
+msgstr ""
+
+#: config/riscv/riscv.opt:507
+#, no-c-format
+msgid "Set the version of RISC-V ISA spec."
+msgstr ""
+
+#: config/riscv/riscv.opt:511
+#, no-c-format
+msgid "Enable conditional moves unconditionally."
+msgstr ""
+
+#: config/riscv/riscv.opt:515
+#, no-c-format
+msgid "Always inline subword atomic operations."
+msgstr ""
+
+#: config/riscv/riscv.opt:519
+#, no-c-format
+msgid "Inline strcmp calls if possible."
+msgstr ""
+
+#: config/riscv/riscv.opt:523
+#, no-c-format
+msgid "Inline strncmp calls if possible."
+msgstr ""
+
+#: config/riscv/riscv.opt:527
+#, no-c-format
+msgid "Inline strlen calls if possible."
+msgstr ""
+
+#: config/riscv/riscv.opt:531
+#, no-c-format
+msgid "Max number of bytes to compare as part of inlined strcmp/strncmp routines (default: 64)."
+msgstr ""
+
+#: config/riscv/riscv.opt:535
+#, no-c-format
+msgid "The RVV possible LMUL (-mrvv-max-lmul=):"
+msgstr ""
+
+#: config/riscv/riscv.opt:554
+#, no-c-format
+msgid "-mrvv-max-lmul=<string>\tSet the RVV LMUL of auto-vectorization."
+msgstr ""
+
+#: config/riscv/riscv.opt:561
+#, no-c-format
+msgid "Valid arguments to -param=vsetvl-strategy=:"
+msgstr ""
+
+#: config/riscv/riscv.opt:574
+#, no-c-format
+msgid "-param=vsetvl-strategy=<string>\tSet the optimization level of VSETVL insert pass."
+msgstr ""
+
+#: config/riscv/riscv.opt:578 config/i386/i386.opt:496
+#, no-c-format
+msgid "Valid arguments to -mstringop-strategy=:"
+msgstr ""
+
+#: config/riscv/riscv.opt:594
+#, no-c-format
+msgid "Specify stringop expansion strategy."
+msgstr ""
+
+#: config/riscv/riscv.opt:598
+#, no-c-format
+msgid "The possible RVV vector register lengths:"
+msgstr ""
+
+#: config/riscv/riscv.opt:608
+#, no-c-format
+msgid "-mrvv-vector-bits=<string>\tSet the kind of bits for an RVV vector register."
+msgstr ""
+
+#: config/riscv/riscv.opt:612 config/aarch64/aarch64.opt:49
+#: config/loongarch/loongarch.opt:283
+#, no-c-format
+msgid "The possible TLS dialects:"
+msgstr ""
+
+#: config/riscv/riscv.opt:622 config/aarch64/aarch64.opt:145
+#: config/loongarch/loongarch.opt:293
+#, no-c-format
+msgid "Specify TLS dialect."
+msgstr ""
+
+#: config/m32c/m32c.opt:23
+#, no-c-format
+msgid "-msim\tUse simulator runtime."
+msgstr ""
+
+#: config/m32c/m32c.opt:27
+#, no-c-format
+msgid "-mcpu=r8c\tCompile code for R8C variants."
+msgstr ""
+
+#: config/m32c/m32c.opt:31
+#, no-c-format
+msgid "-mcpu=m16c\tCompile code for M16C variants."
+msgstr ""
+
+#: config/m32c/m32c.opt:35
+#, no-c-format
+msgid "-mcpu=m32cm\tCompile code for M32CM variants."
+msgstr ""
+
+#: config/m32c/m32c.opt:39
+#, no-c-format
+msgid "-mcpu=m32c\tCompile code for M32C variants."
+msgstr ""
+
+#: config/m32c/m32c.opt:43
+#, no-c-format
+msgid "-memregs=\tNumber of memreg bytes (default: 16, range: 0..16)."
+msgstr ""
+
+#: config/msp430/msp430.opt:7
+#, no-c-format
+msgid "Use a lightweight configuration of printf and puts to reduce code size. For single-threaded applications, not requiring reentrant I/O only. Requires Newlib Nano IO."
+msgstr ""
+
+#: config/msp430/msp430.opt:11
+#, no-c-format
+msgid "Force assembly output to always use hex constants."
+msgstr ""
+
+#: config/msp430/msp430.opt:15
+#, no-c-format
+msgid "Specify the MCU to build for."
+msgstr ""
+
+#: config/msp430/msp430.opt:19
+#, no-c-format
+msgid "Warn if an MCU name is unrecognized or conflicts with other options (default: on)."
+msgstr ""
+
+#: config/msp430/msp430.opt:23
+#, no-c-format
+msgid "Warn if devices.csv is not found or there are problem parsing it (default: on)."
+msgstr ""
+
+#: config/msp430/msp430.opt:27
+#, no-c-format
+msgid "Specify the ISA to build for: msp430, msp430x, msp430xv2."
+msgstr ""
+
+#: config/msp430/msp430.opt:52
+#, no-c-format
+msgid "Select large model - 20-bit addresses/pointers."
+msgstr ""
+
+#: config/msp430/msp430.opt:56
+#, no-c-format
+msgid "Select small model - 16-bit addresses/pointers (default)."
+msgstr ""
+
+#: config/msp430/msp430.opt:60
+#, no-c-format
+msgid "Optimize opcode sizes at link time."
+msgstr ""
+
+#: config/msp430/msp430.opt:67 config/pru/pru.opt:26
+#, no-c-format
+msgid "Use a minimum runtime (no static initializers or ctors) for memory-constrained devices."
+msgstr ""
+
+#: config/msp430/msp430.opt:74
+#, no-c-format
+msgid "Specify the type of hardware multiply to support."
+msgstr ""
+
+#: config/msp430/msp430.opt:96
+#, no-c-format
+msgid "Specify whether functions should be placed into the lower or upper memory regions, or if they should be shuffled between the regions (either) for best fit (default: lower)."
+msgstr ""
+
+#: config/msp430/msp430.opt:100
+#, no-c-format
+msgid "Specify whether variables should be placed into the lower or upper memory regions, or if they should be shuffled between the regions (either) for best fit (default: lower)."
+msgstr ""
+
+#: config/msp430/msp430.opt:104
+#, no-c-format
+msgid "Add the .lower prefix to section names when compiling with -m{code,data}-region=lower (disabled by default)."
+msgstr ""
+
+#: config/msp430/msp430.opt:123
+#, no-c-format
+msgid "Passes on a request to the assembler to enable fixes for various silicon errata."
+msgstr ""
+
+#: config/msp430/msp430.opt:127
+#, no-c-format
+msgid "Passes on a request to the assembler to warn about various silicon errata."
+msgstr ""
+
+#: config/msp430/msp430.opt:131
+#, no-c-format
+msgid "The path to devices.csv.  The GCC driver can normally locate devices.csv itself and pass this option to the compiler, so the user shouldn't need to pass this."
+msgstr ""
+
+#: config/msp430/msp430.opt:136
+#, no-c-format
+msgid "For shift operations by a constant amount, which require an individual instruction to shift by one position, set the maximum number of inline shift instructions (maximum value 64) to emit instead of using the corresponding __mspabi helper function. The default value is 4."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:61 config/loongarch/loongarch.opt:244
+#, no-c-format
+msgid "The code model option names for -mcmodel:"
+msgstr ""
+
+#: config/aarch64/aarch64.opt:78 config/i386/i386.opt:1073
+#, no-c-format
+msgid "Generate code which uses only the general registers."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:82 config/i386/i386.opt:1165
+#, no-c-format
+msgid "Generate code to mitigate against straight line speculation."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:86
+#, no-c-format
+msgid "Workaround for ARM Cortex-A53 Erratum number 835769."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:90
+#, no-c-format
+msgid "Workaround for ARM Cortex-A53 Erratum number 843419."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:102
+#, no-c-format
+msgid "The register used to access the thread pointer:"
+msgstr ""
+
+#: config/aarch64/aarch64.opt:133
+#, no-c-format
+msgid "Specify the thread pointer register."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:137
+#, no-c-format
+msgid "Don't assume that unaligned accesses are handled by the system."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:149
+#, no-c-format
+msgid "Specifies bit size of immediate TLS offsets.  Valid values are 12, 24, 32, 48."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:168
+#, no-c-format
+msgid "Use features of architecture ARCH."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:172
+#, no-c-format
+msgid "Use features of and optimize for CPU."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:176
+#, no-c-format
+msgid "Optimize for CPU."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:180
+#, no-c-format
+msgid "Generate code that conforms to the specified ABI."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:184
+#, no-c-format
+msgid "-moverride=<string>\tPower users only! Override CPU optimization parameters."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:188
+#, no-c-format
+msgid "Known AArch64 ABIs (for use with the -mabi= option):"
+msgstr ""
+
+#: config/aarch64/aarch64.opt:198
+#, no-c-format
+msgid "PC relative literal loads."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:202 config/arm/arm.opt:337
+#, no-c-format
+msgid "Use branch-protection features."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:206
+#, no-c-format
+msgid "Select return address signing scope."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:210
+#, no-c-format
+msgid "Supported AArch64 return address signing scope (for use with -msign-return-address= option):"
+msgstr ""
+
+#: config/aarch64/aarch64.opt:223
+#, no-c-format
+msgid "Enable the reciprocal square root approximation.  Enabling this reduces precision of reciprocal square root results to about 16 bits for single precision and to 32 bits for double precision."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:229
+#, no-c-format
+msgid "Enable the square root approximation.  Enabling this reduces precision of square root results to about 16 bits for single precision and to 32 bits for double precision. If enabled, it implies -mlow-precision-recip-sqrt."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:236
+#, no-c-format
+msgid "Enable the division approximation.  Enabling this reduces precision of division results to about 16 bits for single precision and to 32 bits for double precision."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:254
+#, no-c-format
+msgid "Specify when to enable an early register allocation pass.  The possibilities are: all functions, functions that have access to strided multi-register instructions, and no functions."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:260
+#, no-c-format
+msgid "The possible SVE vector lengths:"
+msgstr ""
+
+#: config/aarch64/aarch64.opt:282
+#, no-c-format
+msgid "-msve-vector-bits=<number>\tSet the number of bits in an SVE vector register."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:286
+#, no-c-format
+msgid "Enables verbose cost model dumping in the debug dump files."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:290
+#, no-c-format
+msgid "Generate code to track when the CPU might be speculating incorrectly."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:294
+#, no-c-format
+msgid "Enable the copy of the AArch64 load/store pair fusion pass that runs before register allocation."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:299
+#, no-c-format
+msgid "Enable the copy of the AArch64 load/store pair fusion pass that runs after register allocation."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:318
+#, no-c-format
+msgid "Use the system register specified on the command line as the stack protector guard register. This option is for use with fstack-protector-strong and not for use in user-land code."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:324
+#, no-c-format
+msgid "Use an immediate to offset from the stack protector guard register, sp_el0. This option is for use with fstack-protector-strong and not for use in user-land code."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:333
+#, no-c-format
+msgid "Generate local calls to out-of-line atomic operations."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:337
+#, no-c-format
+msgid "When vectorizing, consider using multiple different approaches and use the cost model to choose the cheapest one."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:342
+#, no-c-format
+msgid "The number of Newton iterations for calculating the reciprocal for float type.  The precision of division is proportional to this param when division approximation is enabled.  The default value is 1."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:346
+#, no-c-format
+msgid "The number of Newton iterations for calculating the reciprocal for double type.  The precision of division is proportional to this param when division approximation is enabled.  The default value is 2."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:356
+#, no-c-format
+msgid "Constant memcpy size in bytes above which to start using MOPS sequence."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:360
+#, no-c-format
+msgid "Constant memmove size in bytes above which to start using MOPS sequence."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:364
+#, no-c-format
+msgid "Constant memset size in bytes from which to start using MOPS sequence."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:368
+#, no-c-format
+msgid "Limit how much the autovectorizer may unroll a loop."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:372
+#, no-c-format
+msgid "--param=aarch64-ldp-policy=[default|always|never|aligned] Fine-grained policy for load pairs."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:376
+#, no-c-format
+msgid "--param=aarch64-stp-policy=[default|always|never|aligned] Fine-grained policy for store pairs."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:395
+#, no-c-format
+msgid "Limit on number of alias checks performed when attempting to form an ldp/stp."
+msgstr ""
+
+#: config/aarch64/aarch64.opt:399
+#, no-c-format
+msgid "Param to control which writeback opportunities we try to handle in the load/store pair fusion pass.  A value of zero disables writeback handling.  One means we try to form pairs involving one or more existing individual writeback accesses where possible.  A value of two means we also try to opportunistically form writeback opportunities by folding in trailing destructive updates of the base register used by a pair."
+msgstr ""
+
+#: config/linux.opt:24
+#, no-c-format
+msgid "Use Bionic C library."
+msgstr ""
+
+#: config/linux.opt:28
+#, no-c-format
+msgid "Use GNU C library."
+msgstr ""
+
+#: config/linux.opt:32
+#, no-c-format
+msgid "Use uClibc C library."
+msgstr ""
+
+#: config/linux.opt:36
+#, no-c-format
+msgid "Use musl C library."
+msgstr ""
+
+#: config/ia64/ilp32.opt:3
+#, no-c-format
+msgid "Generate ILP32 code."
+msgstr ""
+
+#: config/ia64/ilp32.opt:7
+#, no-c-format
+msgid "Generate LP64 code."
+msgstr ""
+
+#: config/ia64/ia64.opt:28
+#, no-c-format
+msgid "Generate big endian code."
+msgstr ""
+
+#: config/ia64/ia64.opt:32
+#, no-c-format
+msgid "Generate little endian code."
+msgstr ""
+
+#: config/ia64/ia64.opt:36
+#, no-c-format
+msgid "Generate code for GNU as."
+msgstr ""
+
+#: config/ia64/ia64.opt:40
+#, no-c-format
+msgid "Generate code for GNU ld."
+msgstr ""
+
+#: config/ia64/ia64.opt:44
+#, no-c-format
+msgid "Emit stop bits before and after volatile extended asms."
+msgstr ""
+
+#: config/ia64/ia64.opt:48
+#, no-c-format
+msgid "Use in/loc/out register names."
+msgstr ""
+
+#: config/ia64/ia64.opt:55
+#, no-c-format
+msgid "Enable use of sdata/scommon/sbss."
+msgstr ""
+
+#: config/ia64/ia64.opt:59
+#, no-c-format
+msgid "Generate code without GP reg."
+msgstr ""
+
+#: config/ia64/ia64.opt:63
+#, no-c-format
+msgid "gp is constant (but save/restore gp on indirect calls)."
+msgstr ""
+
+#: config/ia64/ia64.opt:67
+#, no-c-format
+msgid "Generate self-relocatable code."
+msgstr ""
+
+#: config/ia64/ia64.opt:71
+#, no-c-format
+msgid "Generate inline floating point division, optimize for latency."
+msgstr ""
+
+#: config/ia64/ia64.opt:75
+#, no-c-format
+msgid "Generate inline floating point division, optimize for throughput."
+msgstr ""
+
+#: config/ia64/ia64.opt:82
+#, no-c-format
+msgid "Generate inline integer division, optimize for latency."
+msgstr ""
+
+#: config/ia64/ia64.opt:86
+#, no-c-format
+msgid "Generate inline integer division, optimize for throughput."
+msgstr ""
+
+#: config/ia64/ia64.opt:90
+#, no-c-format
+msgid "Do not inline integer division."
+msgstr ""
+
+#: config/ia64/ia64.opt:94
+#, no-c-format
+msgid "Generate inline square root, optimize for latency."
+msgstr ""
+
+#: config/ia64/ia64.opt:98
+#, no-c-format
+msgid "Generate inline square root, optimize for throughput."
+msgstr ""
+
+#: config/ia64/ia64.opt:102
+#, no-c-format
+msgid "Do not inline square root."
+msgstr ""
+
+#: config/ia64/ia64.opt:106
+#, no-c-format
+msgid "Enable DWARF line debug info via GNU as."
+msgstr ""
+
+#: config/ia64/ia64.opt:110
+#, no-c-format
+msgid "Enable earlier placing stop bits for better scheduling."
+msgstr ""
+
+#: config/ia64/ia64.opt:114 config/pa/pa.opt:70 config/sh/sh.opt:227
+#, no-c-format
+msgid "Specify range of registers to make fixed."
+msgstr ""
+
+#: config/ia64/ia64.opt:118 config/alpha/alpha.opt:130
+#, no-c-format
+msgid "Specify bit size of immediate TLS offsets."
+msgstr ""
+
+#: config/ia64/ia64.opt:122 config/i386/i386.opt:542 config/s390/s390.opt:203
+#: config/sparc/sparc.opt:146 config/visium/visium.opt:49
+#, no-c-format
+msgid "Schedule code for given CPU."
+msgstr ""
+
+#: config/ia64/ia64.opt:126
+#, no-c-format
+msgid "Known Itanium CPUs (for use with the -mtune= option):"
+msgstr ""
+
+#: config/ia64/ia64.opt:136
+#, no-c-format
+msgid "Use data speculation before reload."
+msgstr ""
+
+#: config/ia64/ia64.opt:140
+#, no-c-format
+msgid "Use data speculation after reload."
+msgstr ""
+
+#: config/ia64/ia64.opt:144
+#, no-c-format
+msgid "Use control speculation."
+msgstr ""
+
+#: config/ia64/ia64.opt:148
+#, no-c-format
+msgid "Use in block data speculation before reload."
+msgstr ""
+
+#: config/ia64/ia64.opt:152
+#, no-c-format
+msgid "Use in block data speculation after reload."
+msgstr ""
+
+#: config/ia64/ia64.opt:156
+#, no-c-format
+msgid "Use in block control speculation."
+msgstr ""
+
+#: config/ia64/ia64.opt:160
+#, no-c-format
+msgid "Use simple data speculation check."
+msgstr ""
+
+#: config/ia64/ia64.opt:164
+#, no-c-format
+msgid "Use simple data speculation check for control speculation."
+msgstr ""
+
+#: config/ia64/ia64.opt:174
+#, no-c-format
+msgid "Count speculative dependencies while calculating priority of instructions."
+msgstr ""
+
+#: config/ia64/ia64.opt:178
+#, no-c-format
+msgid "Place a stop bit after every cycle when scheduling."
+msgstr ""
+
+#: config/ia64/ia64.opt:182
+#, no-c-format
+msgid "Assume that floating-point stores and loads are not likely to cause conflict when placed into one instruction group."
+msgstr ""
+
+#: config/ia64/ia64.opt:186
+#, no-c-format
+msgid "Soft limit on number of memory insns per instruction group, giving lower priority to subsequent memory insns attempting to schedule in the same insn group. Frequently useful to prevent cache bank conflicts.  Default value is 1."
+msgstr ""
+
+#: config/ia64/ia64.opt:190
+#, no-c-format
+msgid "Disallow more than 'msched-max-memory-insns' in instruction group. Otherwise, limit is 'soft' (prefer non-memory operations when limit is reached)."
+msgstr ""
+
+#: config/ia64/ia64.opt:194
+#, no-c-format
+msgid "Don't generate checks for control speculation in selective scheduling."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:24
+#, no-c-format
+msgid "Don't use any of r32..r63."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:28
+#, no-c-format
+msgid "Preferentially allocate registers that allow short instruction generation."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:32
+#, no-c-format
+msgid "Set branch cost."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:36
+#, no-c-format
+msgid "Enable conditional move instruction usage."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:40
+#, no-c-format
+msgid "Set number of nops to emit before each insn pattern."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:52
+#, no-c-format
+msgid "Use software floating point comparisons."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:56
+#, no-c-format
+msgid "Enable split of 32 bit immediate loads into low / high part."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:60
+#, no-c-format
+msgid "Enable use of POST_INC / POST_DEC."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:64
+#, no-c-format
+msgid "Enable use of POST_MODIFY."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:68
+#, no-c-format
+msgid "Set number of bytes on the stack preallocated for use by the callee."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:72
+#, no-c-format
+msgid "Assume round to nearest is selected for purposes of scheduling."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:76
+#, no-c-format
+msgid "Generate call insns as indirect calls."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:80
+#, no-c-format
+msgid "Generate call insns as direct calls."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:84
+#, no-c-format
+msgid "Assume labels and symbols can be addressed using 16 bit absolute addresses."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:108
+#, no-c-format
+msgid "A floating point to integer truncation may be replaced with rounding to save mode switching."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:112
+#, no-c-format
+msgid "Vectorize for double-word operations."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:128
+#, no-c-format
+msgid "Split unaligned 8 byte vector moves before post-modify address generation."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:132
+#, no-c-format
+msgid "Use the floating point unit for integer add/subtract."
+msgstr ""
+
+#: config/epiphany/epiphany.opt:136
+#, no-c-format
+msgid "Set register to hold -1."
+msgstr ""
+
+#: config/ft32/ft32.opt:23
+#, no-c-format
+msgid "Target the software simulator."
+msgstr ""
+
+#: config/ft32/ft32.opt:27 config/s390/s390.opt:234 config/mips/mips.opt:418
+#: config/arc/arc.opt:405
+#, no-c-format
+msgid "Use LRA instead of reload."
+msgstr ""
+
+#: config/ft32/ft32.opt:31
+#, no-c-format
+msgid "Avoid use of the DIV and MOD instructions."
+msgstr ""
+
+#: config/ft32/ft32.opt:35
+#, no-c-format
+msgid "Target the FT32B architecture."
+msgstr ""
+
+#: config/ft32/ft32.opt:39
+#, no-c-format
+msgid "Enable FT32B code compression."
+msgstr ""
+
+#: config/ft32/ft32.opt:43
+#, no-c-format
+msgid "Avoid placing any readable data in program memory."
+msgstr ""
+
+#: config/h8300/h8300.opt:23
+#, no-c-format
+msgid "Generate H8S code."
+msgstr ""
+
+#: config/h8300/h8300.opt:27
+#, no-c-format
+msgid "Generate H8SX code."
+msgstr ""
+
+#: config/h8300/h8300.opt:31
+#, no-c-format
+msgid "Generate H8S/2600 code."
+msgstr ""
+
+#: config/h8300/h8300.opt:35
+#, no-c-format
+msgid "Make integers 32 bits wide."
+msgstr ""
+
+#: config/h8300/h8300.opt:42
+#, no-c-format
+msgid "Use registers for argument passing."
+msgstr ""
+
+#: config/h8300/h8300.opt:46
+#, no-c-format
+msgid "Consider access to byte sized memory slow."
+msgstr ""
+
+#: config/h8300/h8300.opt:50
+#, no-c-format
+msgid "Enable linker relaxing."
+msgstr ""
+
+#: config/h8300/h8300.opt:54
+#, no-c-format
+msgid "Generate H8/300H code."
+msgstr ""
+
+#: config/h8300/h8300.opt:58
+#, no-c-format
+msgid "Enable the normal mode."
+msgstr ""
+
+#: config/h8300/h8300.opt:62
+#, no-c-format
+msgid "Use H8/300 alignment rules."
+msgstr ""
+
+#: config/h8300/h8300.opt:66
+#, no-c-format
+msgid "Push extended registers on stack in monitor functions."
+msgstr ""
+
+#: config/h8300/h8300.opt:70
+#, no-c-format
+msgid "Do not push extended registers on stack in monitor functions."
+msgstr ""
+
+#: config/pru/pru.opt:31
+#, no-c-format
+msgid "-mmcu=MCU\tSelect the target System-On-Chip variant that embeds this PRU."
+msgstr ""
+
+#: config/pru/pru.opt:35
+#, no-c-format
+msgid "Make GCC pass the --no-relax command-line option to the linker instead of the --relax option."
+msgstr ""
+
+#: config/pru/pru.opt:40
+#, no-c-format
+msgid "Allow (or do not allow) gcc to use the LOOP instruction."
+msgstr ""
+
+#: config/pru/pru.opt:44
+#, no-c-format
+msgid "Select target ABI variant."
+msgstr ""
+
+#: config/pru/pru.opt:48
+#, no-c-format
+msgid "ABI variant code generation (for use with -mabi= option):"
+msgstr ""
+
+#: config/pdp11/pdp11.opt:23
+#, no-c-format
+msgid "Generate code for an 11/10."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:27
+#, no-c-format
+msgid "Generate code for an 11/40."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:31
+#, no-c-format
+msgid "Generate code for an 11/45."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:35
+#, no-c-format
+msgid "Return floating-point results in ac0 (fr0 in Unix assembler syntax)."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:39
+#, no-c-format
+msgid "Use the DEC assembler syntax."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:43
+#, no-c-format
+msgid "Use the GNU assembler syntax."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:47 config/rs6000/rs6000.opt:183
+#: config/frv/frv.opt:158
+#, no-c-format
+msgid "Use hardware floating point."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:51
+#, no-c-format
+msgid "Use 16 bit int."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:55
+#, no-c-format
+msgid "Use 32 bit int."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:59 config/rs6000/rs6000.opt:179
+#, no-c-format
+msgid "Do not use hardware floating point."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:63
+#, no-c-format
+msgid "Target has split I&D."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:67
+#, no-c-format
+msgid "Use UNIX assembler syntax."
+msgstr ""
+
+#: config/pdp11/pdp11.opt:71
+#, no-c-format
+msgid "Use LRA register allocator."
+msgstr ""
+
+#: config/xtensa/xtensa.opt:26
+#, no-c-format
+msgid "Use CONST16 instruction to load constants."
+msgstr ""
+
+#: config/xtensa/xtensa.opt:30
+#, no-c-format
+msgid "Disable position-independent code (PIC) for use in OS kernel code."
+msgstr ""
+
+#: config/xtensa/xtensa.opt:34
+#, no-c-format
+msgid "Use indirect CALLXn instructions for large programs."
+msgstr ""
+
+#: config/xtensa/xtensa.opt:38
+#, no-c-format
+msgid "Set extra memory access cost for L32R instruction, in clock-cycle units."
+msgstr ""
+
+#: config/xtensa/xtensa.opt:46
+#, no-c-format
+msgid "Automatically align branch targets to reduce branch penalties."
+msgstr ""
+
+#: config/xtensa/xtensa.opt:50
+#, no-c-format
+msgid "Intersperse literal pools with code in the text section."
+msgstr ""
+
+#: config/xtensa/xtensa.opt:54
+#, no-c-format
+msgid "Relax literals in assembler and place them automatically in the text section."
+msgstr ""
+
+#: config/xtensa/xtensa.opt:58
+#, no-c-format
+msgid "-mno-serialize-volatile\tDo not serialize volatile memory references with MEMW instructions."
+msgstr ""
+
+#: config/xtensa/xtensa.opt:65
+#, no-c-format
+msgid "Use call0 ABI."
+msgstr ""
+
+#: config/xtensa/xtensa.opt:69
+#, no-c-format
+msgid "Use windowed registers ABI."
+msgstr ""
+
+#: config/i386/cygming.opt:23
+#, no-c-format
+msgid "Create console application."
+msgstr ""
+
+#: config/i386/cygming.opt:27
+#, no-c-format
+msgid "Generate code for a DLL."
+msgstr ""
+
+#: config/i386/cygming.opt:31
+#, no-c-format
+msgid "Ignore dllimport for functions."
+msgstr ""
+
+#: config/i386/cygming.opt:35
+#, no-c-format
+msgid "Use Mingw-specific thread support."
+msgstr ""
+
+#: config/i386/cygming.opt:39
+#, no-c-format
+msgid "Set Windows defines."
+msgstr ""
+
+#: config/i386/cygming.opt:43
+#, no-c-format
+msgid "Create GUI application."
+msgstr ""
+
+#: config/i386/cygming.opt:47
+#, no-c-format
+msgid "Use the GNU extension to the PE format for aligned common data."
+msgstr ""
+
+#: config/i386/cygming.opt:51
+#, no-c-format
+msgid "Compile code that relies on Cygwin DLL wrappers to support C++ operator new/delete replacement."
+msgstr ""
+
+#: config/i386/cygming.opt:55
+#, no-c-format
+msgid "For nested functions on stack executable permission is set."
+msgstr ""
+
+#: config/i386/cygming.opt:62
+#, no-c-format
+msgid "Put relocated read-only data into .data section."
+msgstr ""
+
+#: config/i386/mingw.opt:23
+#, no-c-format
+msgid "Preprocess, compile or link with specified C RunTime DLL library."
+msgstr ""
+
+#: config/i386/mingw.opt:33
+#, no-c-format
+msgid "Warn about none ISO msvcrt scanf/printf width extensions."
+msgstr ""
+
+#: config/i386/mingw-w64.opt:23
+#, no-c-format
+msgid "Use unicode startup and define UNICODE macro."
+msgstr ""
+
+#: config/i386/i386.opt:213
+#, no-c-format
+msgid "sizeof(long double) is 16."
+msgstr ""
+
+#: config/i386/i386.opt:217 config/i386/i386.opt:385
+#, no-c-format
+msgid "Use hardware fp."
+msgstr ""
+
+#: config/i386/i386.opt:221
+#, no-c-format
+msgid "sizeof(long double) is 12."
+msgstr ""
+
+#: config/i386/i386.opt:225
+#, no-c-format
+msgid "Use 80-bit long double."
+msgstr ""
+
+#: config/i386/i386.opt:229 config/s390/s390.opt:163
+#: config/sparc/long-double-switch.opt:27 config/alpha/alpha.opt:102
+#, no-c-format
+msgid "Use 64-bit long double."
+msgstr ""
+
+#: config/i386/i386.opt:233 config/s390/s390.opt:159
+#: config/sparc/long-double-switch.opt:23 config/alpha/alpha.opt:98
+#, no-c-format
+msgid "Use 128-bit long double."
+msgstr ""
+
+#: config/i386/i386.opt:237 config/sh/sh.opt:179
+#, no-c-format
+msgid "Reserve space for outgoing arguments in the function prologue."
+msgstr ""
+
+#: config/i386/i386.opt:241
+#, no-c-format
+msgid "Align some doubles on dword boundary."
+msgstr ""
+
+#: config/i386/i386.opt:245
+#, no-c-format
+msgid "Function starts are aligned to this power of 2."
+msgstr ""
+
+#: config/i386/i386.opt:249
+#, no-c-format
+msgid "Jump targets are aligned to this power of 2."
+msgstr ""
+
+#: config/i386/i386.opt:253
+#, no-c-format
+msgid "Loop code aligned to this power of 2."
+msgstr ""
+
+#: config/i386/i386.opt:257
+#, no-c-format
+msgid "Align destination of the string operations."
+msgstr ""
+
+#: config/i386/i386.opt:278 config/s390/s390.opt:56
+#, no-c-format
+msgid "Generate code for given CPU."
+msgstr ""
+
+#: config/i386/i386.opt:282 config/bpf/bpf.opt:100
+#, no-c-format
+msgid "Use given assembler dialect."
+msgstr ""
+
+#: config/i386/i386.opt:286
+#, no-c-format
+msgid "Known assembler dialects (for use with the -masm= option):"
+msgstr ""
+
+#: config/i386/i386.opt:296
+#, no-c-format
+msgid "Branches are this expensive (arbitrary units)."
+msgstr ""
+
+#: config/i386/i386.opt:300
+#, no-c-format
+msgid "-mlarge-data-threshold=<number>\tData greater than given threshold will go into a large data section in x86-64 medium and large code models."
+msgstr ""
+
+#: config/i386/i386.opt:304
+#, no-c-format
+msgid "Use given x86-64 code model."
+msgstr ""
+
+#: config/i386/i386.opt:327
+#, no-c-format
+msgid "Use given address mode."
+msgstr ""
+
+#: config/i386/i386.opt:331
+#, no-c-format
+msgid "Known address mode (for use with the -maddress-mode= option):"
+msgstr ""
+
+#: config/i386/i386.opt:344
+#, no-c-format
+msgid "Generate sin, cos, sqrt for FPU."
+msgstr ""
+
+#: config/i386/i386.opt:348
+#, no-c-format
+msgid "Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack."
+msgstr ""
+
+#: config/i386/i386.opt:352
+#, no-c-format
+msgid "Return values of functions in FPU registers."
+msgstr ""
+
+#: config/i386/i386.opt:356
+#, no-c-format
+msgid "Generate floating point mathematics using given instruction set."
+msgstr ""
+
+#: config/i386/i386.opt:360
+#, no-c-format
+msgid "Valid arguments to -mfpmath=:"
+msgstr ""
+
+#: config/i386/i386.opt:393
+#, no-c-format
+msgid "Inline all known string operations."
+msgstr ""
+
+#: config/i386/i386.opt:397
+#, no-c-format
+msgid "Inline memset/memcpy string operations, but perform inline version only for small blocks."
+msgstr ""
+
+#: config/i386/i386.opt:404
+#, no-c-format
+msgid "Use native (MS) bitfield layout."
+msgstr ""
+
+#: config/i386/i386.opt:424
+#, no-c-format
+msgid "Relax cmpxchg loop for atomic_fetch_{or,xor,and,nand} by adding load and cmp before cmpxchg, execute pause and loop back to load and compare if load value is not expected."
+msgstr ""
+
+#: config/i386/i386.opt:428
+#, no-c-format
+msgid "Set 80387 floating-point precision to 32-bit."
+msgstr ""
+
+#: config/i386/i386.opt:432
+#, no-c-format
+msgid "Set 80387 floating-point precision to 64-bit."
+msgstr ""
+
+#: config/i386/i386.opt:436
+#, no-c-format
+msgid "Set 80387 floating-point precision to 80-bit."
+msgstr ""
+
+#: config/i386/i386.opt:440
+#, no-c-format
+msgid "Set the FTZ and DAZ Flags."
+msgstr ""
+
+#: config/i386/i386.opt:448
+#, no-c-format
+msgid "Assume incoming stack aligned to this power of 2."
+msgstr ""
+
+#: config/i386/i386.opt:452
+#, no-c-format
+msgid "Use push instructions to save outgoing arguments."
+msgstr ""
+
+#: config/i386/i386.opt:456
+#, no-c-format
+msgid "Use red-zone in the x86-64 code."
+msgstr ""
+
+#: config/i386/i386.opt:460
+#, no-c-format
+msgid "Number of registers used to pass integer arguments."
+msgstr ""
+
+#: config/i386/i386.opt:464
+#, no-c-format
+msgid "Alternate calling convention."
+msgstr ""
+
+#: config/i386/i386.opt:468 config/alpha/alpha.opt:23
+#, no-c-format
+msgid "Do not use hardware fp."
+msgstr ""
+
+#: config/i386/i386.opt:472
+#, no-c-format
+msgid "Use SSE register passing conventions for SF and DF mode."
+msgstr ""
+
+#: config/i386/i386.opt:476
+#, no-c-format
+msgid "Realign stack in prologue."
+msgstr ""
+
+#: config/i386/i386.opt:480
+#, no-c-format
+msgid "Enable stack probing."
+msgstr ""
+
+#: config/i386/i386.opt:484
+#, no-c-format
+msgid "Specify memcpy expansion strategy when expected size is known."
+msgstr ""
+
+#: config/i386/i386.opt:488
+#, no-c-format
+msgid "Specify memset expansion strategy when expected size is known."
+msgstr ""
+
+#: config/i386/i386.opt:492
+#, no-c-format
+msgid "Chose strategy to generate stringop using."
+msgstr ""
+
+#: config/i386/i386.opt:524
+#, no-c-format
+msgid "Use given thread-local storage dialect."
+msgstr ""
+
+#: config/i386/i386.opt:528
+#, no-c-format
+msgid "Known TLS dialects (for use with the -mtls-dialect= option):"
+msgstr ""
+
+#: config/i386/i386.opt:538
+#, no-c-format
+msgid "Use direct references against %gs when accessing tls data."
+msgstr ""
+
+#: config/i386/i386.opt:546
+#, no-c-format
+msgid "Fine grain control of tune features."
+msgstr ""
+
+#: config/i386/i386.opt:550
+#, no-c-format
+msgid "Clear all tune features."
+msgstr ""
+
+#: config/i386/i386.opt:557
+#, no-c-format
+msgid "Generate code that conforms to Intel MCU psABI."
+msgstr ""
+
+#: config/i386/i386.opt:561
+#, no-c-format
+msgid "Generate code that conforms to the given ABI."
+msgstr ""
+
+#: config/i386/i386.opt:565 config/nds32/nds32.opt:51
+#, no-c-format
+msgid "Known ABIs (for use with the -mabi= option):"
+msgstr ""
+
+#: config/i386/i386.opt:575
+#, no-c-format
+msgid "Use libgcc stubs to save and restore registers clobbered by 64-bit Microsoft to System V ABI calls."
+msgstr ""
+
+#: config/i386/i386.opt:579 config/rs6000/rs6000.opt:195
+#, no-c-format
+msgid "Vector library ABI to use."
+msgstr ""
+
+#: config/i386/i386.opt:583
+#, no-c-format
+msgid "Known vectorization library ABIs (for use with the -mveclibabi= option):"
+msgstr ""
+
+#: config/i386/i386.opt:593
+#, no-c-format
+msgid "Return 8-byte vectors in memory."
+msgstr ""
+
+#: config/i386/i386.opt:597
+#, no-c-format
+msgid "Generate reciprocals instead of divss and sqrtss."
+msgstr ""
+
+#: config/i386/i386.opt:601 config/loongarch/loongarch.opt:235
+#, no-c-format
+msgid "Control generation of reciprocal estimates."
+msgstr ""
+
+#: config/i386/i386.opt:605
+#, no-c-format
+msgid "Generate cld instruction in the function prologue."
+msgstr ""
+
+#: config/i386/i386.opt:609
+#, no-c-format
+msgid "Generate vzeroupper instruction before a transfer of control flow out of the function."
+msgstr ""
+
+#: config/i386/i386.opt:614
+#, no-c-format
+msgid "Disable Scalar to Vector optimization pass transforming 64-bit integer computations into a vector ones."
+msgstr ""
+
+#: config/i386/i386.opt:619
+#, no-c-format
+msgid "The maximum number of use and def visits when discovering a STV chain before the discovery is aborted."
+msgstr ""
+
+#: config/i386/i386.opt:623
+#, no-c-format
+msgid "Do dispatch scheduling if processor is bdver1, bdver2, bdver3, bdver4 or znver1 and Haifa scheduling is selected."
+msgstr ""
+
+#: config/i386/i386.opt:628
+#, no-c-format
+msgid "Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer."
+msgstr ""
+
+#: config/i386/i386.opt:632
+#, no-c-format
+msgid "Use given register vector width instructions instead of maximum register width in the auto-vectorizer."
+msgstr ""
+
+#: config/i386/i386.opt:636
+#, no-c-format
+msgid "Known preferred register vector length (to use with the -mprefer-vector-width= option):"
+msgstr ""
+
+#: config/i386/i386.opt:652
+#, no-c-format
+msgid "Enable floating-point status flags setting SSE vector operations on partial vectors."
+msgstr ""
+
+#: config/i386/i386.opt:656
+#, no-c-format
+msgid "Maximum number of bits that can be moved from memory to memory efficiently."
+msgstr ""
+
+#: config/i386/i386.opt:660
+#, no-c-format
+msgid "Maximum number of bits that can be stored to memory efficiently."
+msgstr ""
+
+#: config/i386/i386.opt:664
+#, no-c-format
+msgid "Optimize noreturn functions by not saving callee-saved registers used in the function."
+msgstr ""
+
+#: config/i386/i386.opt:670
+#, no-c-format
+msgid "Generate 32bit i386 code."
+msgstr ""
+
+#: config/i386/i386.opt:674
+#, no-c-format
+msgid "Generate 64bit x86-64 code."
+msgstr ""
+
+#: config/i386/i386.opt:678
+#, no-c-format
+msgid "Generate 32bit x86-64 code."
+msgstr ""
+
+#: config/i386/i386.opt:682
+#, no-c-format
+msgid "Generate 16bit i386 code."
+msgstr ""
+
+#: config/i386/i386.opt:686
+#, no-c-format
+msgid "Support MMX built-in functions."
+msgstr ""
+
+#: config/i386/i386.opt:690
+#, no-c-format
+msgid "Support 3DNow! built-in functions."
+msgstr ""
+
+#: config/i386/i386.opt:694
+#, no-c-format
+msgid "Support Athlon 3Dnow! built-in functions."
+msgstr ""
+
+#: config/i386/i386.opt:698
+#, no-c-format
+msgid "Support MMX and SSE built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:702
+#, no-c-format
+msgid "Support MMX, SSE and SSE2 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:706
+#, no-c-format
+msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:710
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:714
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:718 config/i386/i386.opt:722
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:726
+#, no-c-format
+msgid "Do not support SSE4.1 and SSE4.2 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:734
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:738
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:742
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:746
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512PF built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:750
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512ER built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:754
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512CD built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:758
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512DQ built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:762
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512BW built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:766
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VL built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:770
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512IFMA built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:774
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F and AVX512VBMI built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:778
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124FMAPS built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:782
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX5124VNNIW built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:786
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VPOPCNTDQ built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:790
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512VBMI2 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:794
+#, no-c-format
+msgid "Support AVX512VNNI built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:798
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512BITALG built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:802
+#, no-c-format
+msgid "Support AVX512VP2INTERSECT built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:806
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:810
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:814
+#, no-c-format
+msgid "Support FMA4 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:818
+#, no-c-format
+msgid "Support XOP built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:822
+#, no-c-format
+msgid "Support LWP built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:826
+#, no-c-format
+msgid "Support code generation of Advanced Bit Manipulation (ABM) instructions."
+msgstr ""
+
+#: config/i386/i386.opt:830
+#, no-c-format
+msgid "Support code generation of popcnt instruction."
+msgstr ""
+
+#: config/i386/i386.opt:834
+#, no-c-format
+msgid "Support PCONFIG built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:838
+#, no-c-format
+msgid "Support WBNOINVD built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:842
+#, no-c-format
+msgid "Support PTWRITE built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:846
+#, no-c-format
+msgid "Support UINTR built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:850
+#, no-c-format
+msgid "Support SGX built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:854
+#, no-c-format
+msgid "Support RDPID built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:858
+#, no-c-format
+msgid "Support GFNI built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:862
+#, no-c-format
+msgid "Support VAES built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:866
+#, no-c-format
+msgid "Support VPCLMULQDQ built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:870
+#, no-c-format
+msgid "Support BMI built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:874
+#, no-c-format
+msgid "Support BMI2 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:878
+#, no-c-format
+msgid "Support LZCNT built-in function and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:882
+#, no-c-format
+msgid "Support Hardware Lock Elision prefixes."
+msgstr ""
+
+#: config/i386/i386.opt:886
+#, no-c-format
+msgid "Support RDSEED instruction."
+msgstr ""
+
+#: config/i386/i386.opt:890
+#, no-c-format
+msgid "Support PREFETCHW instruction."
+msgstr ""
+
+#: config/i386/i386.opt:894
+#, no-c-format
+msgid "Support flag-preserving add-carry instructions."
+msgstr ""
+
+#: config/i386/i386.opt:898
+#, no-c-format
+msgid "Support CLFLUSHOPT instructions."
+msgstr ""
+
+#: config/i386/i386.opt:902
+#, no-c-format
+msgid "Support CLWB instruction."
+msgstr ""
+
+#: config/i386/i386.opt:909
+#, no-c-format
+msgid "Support FXSAVE and FXRSTOR instructions."
+msgstr ""
+
+#: config/i386/i386.opt:913
+#, no-c-format
+msgid "Support XSAVE and XRSTOR instructions."
+msgstr ""
+
+#: config/i386/i386.opt:917
+#, no-c-format
+msgid "Support XSAVEOPT instruction."
+msgstr ""
+
+#: config/i386/i386.opt:921
+#, no-c-format
+msgid "Support XSAVEC instructions."
+msgstr ""
+
+#: config/i386/i386.opt:925
+#, no-c-format
+msgid "Support XSAVES and XRSTORS instructions."
+msgstr ""
+
+#: config/i386/i386.opt:929
+#, no-c-format
+msgid "Support TBM built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:933
+#, no-c-format
+msgid "Support code generation of cmpxchg16b instruction."
+msgstr ""
+
+#: config/i386/i386.opt:937
+#, no-c-format
+msgid "Support code generation of sahf instruction in 64bit x86-64 code."
+msgstr ""
+
+#: config/i386/i386.opt:941
+#, no-c-format
+msgid "Support code generation of movbe instruction."
+msgstr ""
+
+#: config/i386/i386.opt:945
+#, no-c-format
+msgid "Support code generation of crc32 instruction."
+msgstr ""
+
+#: config/i386/i386.opt:949
+#, no-c-format
+msgid "Support AES built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:953
+#, no-c-format
+msgid "Support SHA1 and SHA256 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:957
+#, no-c-format
+msgid "Support PCLMUL built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:961
+#, no-c-format
+msgid "Encode SSE instructions with VEX prefix."
+msgstr ""
+
+#: config/i386/i386.opt:965
+#, no-c-format
+msgid "Support FSGSBASE built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:969
+#, no-c-format
+msgid "Support RDRND built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:973
+#, no-c-format
+msgid "Support F16C built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:977
+#, no-c-format
+msgid "Support PREFETCHWT1 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:981
+#, no-c-format
+msgid "Emit profiling counter call at function entry before prologue."
+msgstr ""
+
+#: config/i386/i386.opt:985
+#, no-c-format
+msgid "Generate __mcount_loc section with all mcount or __fentry__ calls."
+msgstr ""
+
+#: config/i386/i386.opt:989 config/s390/s390.opt:311
+#, no-c-format
+msgid "Generate mcount/__fentry__ calls as nops. To activate they need to be patched in."
+msgstr ""
+
+#: config/i386/i386.opt:994
+#, no-c-format
+msgid "Set name of __fentry__ symbol called at function entry."
+msgstr ""
+
+#: config/i386/i386.opt:998
+#, no-c-format
+msgid "Set name of section to record mrecord-mcount calls."
+msgstr ""
+
+#: config/i386/i386.opt:1002
+#, no-c-format
+msgid "Skip setting up RAX register when passing variable arguments."
+msgstr ""
+
+#: config/i386/i386.opt:1006
+#, no-c-format
+msgid "Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check."
+msgstr ""
+
+#: config/i386/i386.opt:1010
+#, no-c-format
+msgid "Split 32-byte AVX unaligned load."
+msgstr ""
+
+#: config/i386/i386.opt:1014
+#, no-c-format
+msgid "Split 32-byte AVX unaligned store."
+msgstr ""
+
+#: config/i386/i386.opt:1018
+#, no-c-format
+msgid "Support RTM built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1026
+#, no-c-format
+msgid "Support MWAITX and MONITORX built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1030
+#, no-c-format
+msgid "Support CLZERO built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1034
+#, no-c-format
+msgid "Support PKU built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1042
+#, no-c-format
+msgid "Known stack protector guard (for use with the -mstack-protector-guard= option):"
+msgstr ""
+
+#: config/i386/i386.opt:1066
+#, no-c-format
+msgid "Use the given symbol for addressing the stack-protector guard."
+msgstr ""
+
+#: config/i386/i386.opt:1077
+#, no-c-format
+msgid "Enable shadow stack built-in functions from Control-flow Enforcement Technology (CET)."
+msgstr ""
+
+#: config/i386/i386.opt:1082
+#, no-c-format
+msgid "Turn on CET instrumentation for switch statements that use a jump table and an indirect jump."
+msgstr ""
+
+#: config/i386/i386.opt:1087
+#, no-c-format
+msgid "Insert ENDBR instruction at function entry only via cf_check attribute for CET instrumentation."
+msgstr ""
+
+#: config/i386/i386.opt:1092
+#, no-c-format
+msgid "Make all function calls indirect."
+msgstr ""
+
+#: config/i386/i386.opt:1096
+#, no-c-format
+msgid "Convert indirect call and jump to call and return thunks."
+msgstr ""
+
+#: config/i386/i386.opt:1100
+#, no-c-format
+msgid "Convert function return to call and return thunk."
+msgstr ""
+
+#: config/i386/i386.opt:1104 config/s390/s390.opt:277
+#, no-c-format
+msgid "Known indirect branch choices (for use with the -mindirect-branch=/-mfunction-return= options):"
+msgstr ""
+
+#: config/i386/i386.opt:1120
+#, no-c-format
+msgid "Add CS prefix to call and jmp to indirect thunk with branch target in r8-r15 registers."
+msgstr ""
+
+#: config/i386/i386.opt:1124
+#, no-c-format
+msgid "Force indirect call and jump via register."
+msgstr ""
+
+#: config/i386/i386.opt:1128
+#, no-c-format
+msgid "Support MOVDIRI built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1132
+#, no-c-format
+msgid "Support MOVDIR64B built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1136
+#, no-c-format
+msgid "Support WAITPKG built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1140
+#, no-c-format
+msgid "Support CLDEMOTE built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1144
+#, no-c-format
+msgid "Instrument function exit in instrumented functions with __fentry__."
+msgstr ""
+
+#: config/i386/i386.opt:1148
+#, no-c-format
+msgid "Known choices for return instrumentation with -minstrument-return=:"
+msgstr ""
+
+#: config/i386/i386.opt:1161
+#, no-c-format
+msgid "Generate a __return_loc section pointing to all return instrumentation code."
+msgstr ""
+
+#: config/i386/i386.opt:1169
+#, no-c-format
+msgid "Known choices for mitigation against straight line speculation with -mharden-sls=:"
+msgstr ""
+
+#: config/i386/i386.opt:1185
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512BF16 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1190
+#, no-c-format
+msgid "Support ENQCMD built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1194
+#, no-c-format
+msgid "Support SERIALIZE built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1198
+#, no-c-format
+msgid "Support TSXLDTRK built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1202
+#, no-c-format
+msgid "Support AMX-TILE built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1206
+#, no-c-format
+msgid "Support AMX-INT8 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1210
+#, no-c-format
+msgid "Support AMX-BF16 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1214
+#, no-c-format
+msgid "Support HRESET built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1218
+#, no-c-format
+msgid "Support KL built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1222
+#, no-c-format
+msgid "Support WIDEKL built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1226
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVXVNNI built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1231
+#, no-c-format
+msgid "Emit GNU_PROPERTY_X86_ISA_1_NEEDED GNU property."
+msgstr ""
+
+#: config/i386/i386.opt:1235
+#, no-c-format
+msgid "Support MWAIT and MONITOR built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1239
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and AVX512-FP16 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1243
+#, no-c-format
+msgid "Do not use GOT to access external symbols."
+msgstr ""
+
+#: config/i386/i386.opt:1247
+#, no-c-format
+msgid "Instructions number above which STFL stall penalty can be compensated."
+msgstr ""
+
+#: config/i386/i386.opt:1251
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVXIFMA built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1256
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVXVNNIINT8 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1261
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVXNECONVERT build-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1266
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and CMPCCXADD build-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1271
+#, no-c-format
+msgid "Support AMX-FP16 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1275
+#, no-c-format
+msgid "Support PREFETCHI built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1279
+#, no-c-format
+msgid "Support RAOINT built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1283
+#, no-c-format
+msgid "Enable conservative small loop unrolling."
+msgstr ""
+
+#: config/i386/i386.opt:1287
+#, no-c-format
+msgid "-mlam=[none|u48|u57] Instrument meta data position in user data pointers."
+msgstr ""
+
+#: config/i386/i386.opt:1303
+#, no-c-format
+msgid "Support AMX-COMPLEX built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1307
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVXVNNIINT16 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1312
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and SM3 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1317
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and SHA512 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1322
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and SM4 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1327
+#, no-c-format
+msgid "Enable vectorization for gather instruction."
+msgstr ""
+
+#: config/i386/i386.opt:1331
+#, no-c-format
+msgid "Enable vectorization for scatter instruction."
+msgstr ""
+
+#: config/i386/i386.opt:1335
+#, no-c-format
+msgid "Support code generation for APX features, including EGPR, PUSH2POP2, NDD and PPX."
+msgstr ""
+
+#: config/i386/i386.opt:1364
+#, no-c-format
+msgid "Enable GPR32 in inline asm when APX_F enabled."
+msgstr ""
+
+#: config/i386/i386.opt:1368
+#, no-c-format
+msgid "Support 512 bit vector built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1372
+#, no-c-format
+msgid "Support USER_MSR built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1376 config/i386/i386.opt:1386
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVX10.1 built-in functions and code generation."
+msgstr ""
+
+#: config/i386/i386.opt:1381
+#, no-c-format
+msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVX10.1-512 built-in functions and code generation."
+msgstr ""
+
+#: config/pa/pa64-hpux.opt:23
+#, no-c-format
+msgid "Assume code will be linked by GNU ld."
+msgstr ""
+
+#: config/pa/pa64-hpux.opt:27
+#, no-c-format
+msgid "Assume code will be linked by HP ld."
+msgstr ""
+
+#: config/pa/pa-hpux1010.opt:23 config/pa/pa-hpux.opt:31
+#: config/pa/pa-hpux1131.opt:23 config/pa/pa-hpux1111.opt:23
+#, no-c-format
+msgid "Specify UNIX standard for predefines and linking."
+msgstr ""
+
+#: config/pa/pa-hpux.opt:27
+#, no-c-format
+msgid "Generate cpp defines for server IO."
+msgstr ""
+
+#: config/pa/pa-hpux.opt:35
+#, no-c-format
+msgid "Generate cpp defines for workstation IO."
+msgstr ""
+
+#: config/pa/pa.opt:30 config/pa/pa.opt:95 config/pa/pa.opt:107
+#, no-c-format
+msgid "Generate PA1.0 code."
+msgstr ""
+
+#: config/pa/pa.opt:34 config/pa/pa.opt:111 config/pa/pa.opt:156
+#, no-c-format
+msgid "Generate PA1.1 code."
+msgstr ""
+
+#: config/pa/pa.opt:38 config/pa/pa.opt:115
+#, no-c-format
+msgid "Generate PA2.0 code (requires binutils 2.10 or later)."
+msgstr ""
+
+#: config/pa/pa.opt:42
+#, no-c-format
+msgid "Generate libcalls for atomic loads and stores when sync libcalls are disabled."
+msgstr ""
+
+#: config/pa/pa.opt:50
+#, no-c-format
+msgid "Caller copies function arguments passed by hidden reference."
+msgstr ""
+
+#: config/pa/pa.opt:54
+#, no-c-format
+msgid "Use ldcw/ldcd coherent cache-control hint."
+msgstr ""
+
+#: config/pa/pa.opt:58
+#, no-c-format
+msgid "Disable FP regs.  Equivalent to -msoft-float."
+msgstr ""
+
+#: config/pa/pa.opt:62
+#, no-c-format
+msgid "Disable indexed addressing."
+msgstr ""
+
+#: config/pa/pa.opt:66
+#, no-c-format
+msgid "Generate fast indirect calls."
+msgstr ""
+
+#: config/pa/pa.opt:74
+#, no-c-format
+msgid "Assume code will be assembled by GAS."
+msgstr ""
+
+#: config/pa/pa.opt:83
+#, no-c-format
+msgid "Enable linker optimizations."
+msgstr ""
+
+#: config/pa/pa.opt:87
+#, no-c-format
+msgid "Always generate long calls."
+msgstr ""
+
+#: config/pa/pa.opt:91
+#, no-c-format
+msgid "Emit long load/store sequences."
+msgstr ""
+
+#: config/pa/pa.opt:99
+#, no-c-format
+msgid "Disable space regs."
+msgstr ""
+
+#: config/pa/pa.opt:103
+#, no-c-format
+msgid "Assume memory references are ordered and barriers are not needed."
+msgstr ""
+
+#: config/pa/pa.opt:119
+#, no-c-format
+msgid "Use portable calling conventions."
+msgstr ""
+
+#: config/pa/pa.opt:123
+#, no-c-format
+msgid "Specify CPU for scheduling purposes.  Valid arguments are 700, 7100, 7100LC, 7200, 7300, and 8000."
+msgstr ""
+
+#: config/pa/pa.opt:148 config/frv/frv.opt:215
+#, no-c-format
+msgid "Use software floating point."
+msgstr ""
+
+#: config/pa/pa.opt:152
+#, no-c-format
+msgid "Use software integer multiplication."
+msgstr ""
+
+#: config/pa/pa.opt:160
+#, no-c-format
+msgid "Do not disable space regs."
+msgstr ""
+
+#: config/v850/v850.opt:29
+#, no-c-format
+msgid "Use registers r2 and r5."
+msgstr ""
+
+#: config/v850/v850.opt:33
+#, no-c-format
+msgid "Use 4 byte entries in switch tables."
+msgstr ""
+
+#: config/v850/v850.opt:37
+#, no-c-format
+msgid "Enable backend debugging."
+msgstr ""
+
+#: config/v850/v850.opt:41
+#, no-c-format
+msgid "Do not use the callt instruction (default)."
+msgstr ""
+
+#: config/v850/v850.opt:45
+#, no-c-format
+msgid "Reuse r30 on a per function basis."
+msgstr ""
+
+#: config/v850/v850.opt:52
+#, no-c-format
+msgid "Prohibit PC relative function calls."
+msgstr ""
+
+#: config/v850/v850.opt:56
+#, no-c-format
+msgid "Use stubs for function prologues."
+msgstr ""
+
+#: config/v850/v850.opt:60
+#, no-c-format
+msgid "Set the max size of data eligible for the SDA area."
+msgstr ""
+
+#: config/v850/v850.opt:67
+#, no-c-format
+msgid "Enable the use of the short load instructions."
+msgstr ""
+
+#: config/v850/v850.opt:71
+#, no-c-format
+msgid "Same as: -mep -mprolog-function."
+msgstr ""
+
+#: config/v850/v850.opt:75
+#, no-c-format
+msgid "Set the max size of data eligible for the TDA area."
+msgstr ""
+
+#: config/v850/v850.opt:82
+#, no-c-format
+msgid "Do not enforce strict alignment."
+msgstr ""
+
+#: config/v850/v850.opt:86
+#, no-c-format
+msgid "Put jump tables for switch statements into the .data section rather than the .code section."
+msgstr ""
+
+#: config/v850/v850.opt:93
+#, no-c-format
+msgid "Compile for the v850 processor."
+msgstr ""
+
+#: config/v850/v850.opt:97
+#, no-c-format
+msgid "Compile for the v850e processor."
+msgstr ""
+
+#: config/v850/v850.opt:101
+#, no-c-format
+msgid "Compile for the v850e1 processor."
+msgstr ""
+
+#: config/v850/v850.opt:105
+#, no-c-format
+msgid "Compile for the v850es variant of the v850e1."
+msgstr ""
+
+#: config/v850/v850.opt:109
+#, no-c-format
+msgid "Compile for the v850e2 processor."
+msgstr ""
+
+#: config/v850/v850.opt:113
+#, no-c-format
+msgid "Compile for the v850e2v3 processor."
+msgstr ""
+
+#: config/v850/v850.opt:117
+#, no-c-format
+msgid "Compile for the v850e3v5 processor."
+msgstr ""
+
+#: config/v850/v850.opt:124
+#, no-c-format
+msgid "Enable v850e3v5 loop instructions."
+msgstr ""
+
+#: config/v850/v850.opt:128
+#, no-c-format
+msgid "Set the max size of data eligible for the ZDA area."
+msgstr ""
+
+#: config/v850/v850.opt:135
+#, no-c-format
+msgid "Enable relaxing in the assembler."
+msgstr ""
+
+#: config/v850/v850.opt:139
+#, no-c-format
+msgid "Prohibit PC relative jumps."
+msgstr ""
+
+#: config/v850/v850.opt:143
+#, no-c-format
+msgid "Inhibit the use of hardware floating point instructions."
+msgstr ""
+
+#: config/v850/v850.opt:147
+#, no-c-format
+msgid "Allow the use of hardware floating point instructions for V850E2V3 and up."
+msgstr ""
+
+#: config/v850/v850.opt:151
+#, no-c-format
+msgid "Enable support for the RH850 ABI.  This is the default."
+msgstr ""
+
+#: config/v850/v850.opt:155
+#, no-c-format
+msgid "Enable support for the old GCC ABI."
+msgstr ""
+
+#: config/v850/v850.opt:159
+#, no-c-format
+msgid "Support alignments of up to 64-bits."
+msgstr ""
+
+#: config/g.opt:27
+#, no-c-format
+msgid "-G<number>\tPut global and static data smaller than <number> bytes into a special section (on some targets)."
+msgstr ""
+
+#: config/lynx.opt:23
+#, no-c-format
+msgid "Support legacy multi-threading."
+msgstr ""
+
+#: config/lynx.opt:27
+#, no-c-format
+msgid "Use shared libraries."
+msgstr ""
+
+#: config/lynx.opt:31
+#, no-c-format
+msgid "Support multi-threading."
+msgstr ""
+
+#: config/nvptx/nvptx-gen.opt:24
+#, no-c-format
+msgid "Known PTX ISA target architectures (for use with the -misa= option):"
+msgstr ""
+
+#: config/nvptx/nvptx.opt:28
+#, no-c-format
+msgid "Ignored, but preserved for backward compatibility.  Only 64-bit ABI is supported."
+msgstr ""
+
+#: config/nvptx/nvptx.opt:33
+#, no-c-format
+msgid "Link in code for a __main kernel."
+msgstr ""
+
+#: config/nvptx/nvptx.opt:37
+#, no-c-format
+msgid "Optimize partition neutering."
+msgstr ""
+
+#: config/nvptx/nvptx.opt:41
+#, no-c-format
+msgid "Use custom stacks instead of local memory for automatic storage."
+msgstr ""
+
+#: config/nvptx/nvptx.opt:45
+#, no-c-format
+msgid "Specify size of .local memory used for stack when the exact amount is not known."
+msgstr ""
+
+#: config/nvptx/nvptx.opt:49
+#, no-c-format
+msgid "Generate code that can keep local state uniform across all lanes."
+msgstr ""
+
+#: config/nvptx/nvptx.opt:53
+#, no-c-format
+msgid "Generate code for OpenMP offloading: enables -msoft-stack and -muniform-simt."
+msgstr ""
+
+#: config/nvptx/nvptx.opt:57
+#, no-c-format
+msgid "Specify the PTX ISA target architecture to use."
+msgstr ""
+
+#: config/nvptx/nvptx.opt:61
+#, no-c-format
+msgid "Alias:"
+msgstr "მეტსახელი:"
+
+#: config/nvptx/nvptx.opt:122
+#, no-c-format
+msgid "Known PTX ISA versions (for use with the -mptx= option):"
+msgstr ""
+
+#: config/nvptx/nvptx.opt:141
+#, no-c-format
+msgid "Specify the PTX ISA version to use."
+msgstr ""
+
+#: config/nvptx/nvptx.opt:145
+#, no-c-format
+msgid "Initialize ptx registers."
+msgstr ""
+
+#: config/vxworks.opt:36
+#, no-c-format
+msgid "Assume the VxWorks RTP environment."
+msgstr ""
+
+#: config/vxworks.opt:43
+#, no-c-format
+msgid "Assume the VxWorks vThreads environment."
+msgstr ""
+
+#: config/avr/avr.opt:23
+#, no-c-format
+msgid "Optimization. Use subroutines for function prologues and epilogues."
+msgstr ""
+
+#: config/avr/avr.opt:27
+#, no-c-format
+msgid "-mmcu=<MCU>\tSelect the target MCU."
+msgstr ""
+
+#: config/avr/avr.opt:31
+#, no-c-format
+msgid "Optimization. Allow usage of __gcc_isr pseudo instructions in ISR prologues and epilogues."
+msgstr ""
+
+#: config/avr/avr.opt:35
+#, no-c-format
+msgid "This option is used internally. Set the number of 64 KiB flash segments."
+msgstr ""
+
+#: config/avr/avr.opt:39
+#, no-c-format
+msgid "This option is used internally. Indicate presence of a processor erratum.  Do not skip 32-bit instructions."
+msgstr ""
+
+#: config/avr/avr.opt:43
+#, no-c-format
+msgid "This option is used internally. Enable Read-Modify-Write (RMW) instructions support/use."
+msgstr ""
+
+#: config/avr/avr.opt:53
+#, no-c-format
+msgid "This option is used internally for multilib generation and selection.  Assume RJMP / RCALL can target all program memory."
+msgstr ""
+
+#: config/avr/avr.opt:57
+#, no-c-format
+msgid "Use an 8-bit 'int' type."
+msgstr ""
+
+#: config/avr/avr.opt:61
+#, no-c-format
+msgid "Change the stack pointer without disabling interrupts."
+msgstr ""
+
+#: config/avr/avr.opt:65
+#, no-c-format
+msgid "-mbranch-cost=<cost>\tOptimization. Set the branch costs for conditional branch instructions.  Reasonable values are small, non-negative integers.  The default branch cost is 0."
+msgstr ""
+
+#: config/avr/avr.opt:69
+#, no-c-format
+msgid "Optimization. Treat main as if it had attribute OS_task."
+msgstr ""
+
+#: config/avr/avr.opt:79
+#, no-c-format
+msgid "Change only the low 8 bits of the stack pointer."
+msgstr ""
+
+#: config/avr/avr.opt:83
+#, no-c-format
+msgid "Optimization. Relax branches."
+msgstr ""
+
+#: config/avr/avr.opt:87
+#, no-c-format
+msgid "Make the linker relaxation machine assume that a program counter wrap-around occurs."
+msgstr ""
+
+#: config/avr/avr.opt:91
+#, no-c-format
+msgid "Optimization. Accumulate outgoing function arguments and acquire/release the needed stack space for outgoing function arguments in function prologue/epilogue.  Without this option, outgoing arguments are pushed before calling a function and popped afterwards.  This option can lead to reduced code size for functions that call many functions that get their arguments on the stack like, for example printf."
+msgstr ""
+
+#: config/avr/avr.opt:95
+#, no-c-format
+msgid "Optimization. When accessing RAM, use X as imposed by the hardware, i.e. just use pre-decrement, post-increment and indirect addressing with the X register.  Without this option, the compiler may assume that there is an addressing mode X+const similar to Y+const and Z+const and emit instructions to emulate such an addressing mode for X."
+msgstr ""
+
+#: config/avr/avr.opt:99
+#, no-c-format
+msgid "This option is used internally. The device has the bitfield NVMCTRL_CTRLB.FLMAP."
+msgstr ""
+
+#: config/avr/avr.opt:103
+#, no-c-format
+msgid "The device has the .rodata section located in the RAM area."
+msgstr ""
+
+#: config/avr/avr.opt:108
+#, no-c-format
+msgid "This option is used internally for multilib generation and selection. The device has no SPH special function register."
+msgstr ""
+
+#: config/avr/avr.opt:112
+#, no-c-format
+msgid "Optimization. Split register additions from load/store instructions. Most useful on Reduced Tiny."
+msgstr ""
+
+#: config/avr/avr.opt:116
+#, no-c-format
+msgid "-mfuse-add=<0,2>\tOptimization. Split register additions from load/store instructions. Most useful on Reduced Tiny."
+msgstr ""
+
+#: config/avr/avr.opt:120
+#, no-c-format
+msgid "Warn if the address space of an address is changed."
+msgstr ""
+
+#: config/avr/avr.opt:124
+#, no-c-format
+msgid "Warn if the ISR is misspelled, i.e. without __vector prefix. Enabled by default."
+msgstr ""
+
+#: config/avr/avr.opt:128
+#, no-c-format
+msgid "Allow to use truncation instead of rounding towards zero for fractional fixed-point types."
+msgstr ""
+
+#: config/avr/avr.opt:132
+#, no-c-format
+msgid "Assume that all data in static storage can be accessed by LDS / STS instructions.  This option is only useful for reduced Tiny devices like ATtiny40."
+msgstr ""
+
+#: config/avr/avr.opt:136
+#, no-c-format
+msgid "-mdouble=<BITS>\tUse <BITS> bits wide double type."
+msgstr ""
+
+#: config/avr/avr.opt:140
+#, no-c-format
+msgid "-mlong-double=<BITS>\tUse <BITS> bits wide long double type."
+msgstr ""
+
+#: config/avr/avr.opt:144
+#, no-c-format
+msgid "Do not link against the device-specific library lib<MCU>.a."
+msgstr ""
+
+#: config/avr/avr.opt:148
+#, no-c-format
+msgid "Do not use the device-specific specs file device-specs/specs-<MCU>."
+msgstr ""
+
+#: config/avr/avr.opt:152
+#, no-c-format
+msgid "Available BITS selections:"
+msgstr ""
+
+#: config/m32r/m32r.opt:34
+#, no-c-format
+msgid "Compile for the m32rx."
+msgstr ""
+
+#: config/m32r/m32r.opt:38
+#, no-c-format
+msgid "Compile for the m32r2."
+msgstr ""
+
+#: config/m32r/m32r.opt:42
+#, no-c-format
+msgid "Compile for the m32r."
+msgstr ""
+
+#: config/m32r/m32r.opt:46
+#, no-c-format
+msgid "Align all loops to 32 byte boundary."
+msgstr ""
+
+#: config/m32r/m32r.opt:50
+#, no-c-format
+msgid "Prefer branches over conditional execution."
+msgstr ""
+
+#: config/m32r/m32r.opt:54
+#, no-c-format
+msgid "Give branches their default cost."
+msgstr ""
+
+#: config/m32r/m32r.opt:58
+#, no-c-format
+msgid "Display compile time statistics."
+msgstr ""
+
+#: config/m32r/m32r.opt:62
+#, no-c-format
+msgid "Specify cache flush function."
+msgstr ""
+
+#: config/m32r/m32r.opt:66
+#, no-c-format
+msgid "Specify cache flush trap number."
+msgstr ""
+
+#: config/m32r/m32r.opt:70
+#, no-c-format
+msgid "Only issue one instruction per cycle."
+msgstr ""
+
+#: config/m32r/m32r.opt:74
+#, no-c-format
+msgid "Allow two instructions to be issued per cycle."
+msgstr ""
+
+#: config/m32r/m32r.opt:78
+#, no-c-format
+msgid "Code size: small, medium or large."
+msgstr ""
+
+#: config/m32r/m32r.opt:94
+#, no-c-format
+msgid "Don't call any cache flush functions."
+msgstr ""
+
+#: config/m32r/m32r.opt:98
+#, no-c-format
+msgid "Don't call any cache flush trap."
+msgstr ""
+
+#: config/m32r/m32r.opt:105
+#, no-c-format
+msgid "Small data area: none, sdata, use."
+msgstr ""
+
+#: config/s390/tpf.opt:23
+#, no-c-format
+msgid "Enable TPF-OS tracing code."
+msgstr ""
+
+#: config/s390/tpf.opt:27
+#, no-c-format
+msgid "Set the trace check address for prologue tpf hook"
+msgstr ""
+
+#: config/s390/tpf.opt:31
+#, no-c-format
+msgid "Set the trace jump address for prologue tpf hook"
+msgstr ""
+
+#: config/s390/tpf.opt:35
+#, no-c-format
+msgid "Set the trace check address for epilogue tpf hook"
+msgstr ""
+
+#: config/s390/tpf.opt:39
+#, no-c-format
+msgid "Set the trace jump address for epilogue tpf hook"
+msgstr ""
+
+#: config/s390/tpf.opt:43
+#, no-c-format
+msgid "Set the prologue and epilogue hook addresses to TPF_TRACE_PROLOGUE_SKIP_TARGET and TPF_TRACE_EPILOGUE_SKIP_TARGET. Equivalent to using -mtpf-trace-hook-prologue-target=TPF_TRACE_PROLOGUE_SKIP_TARGET and -mtpf-trace-hook-epilogue-target=TPF_TRACE_EPILOGUE_SKIP_TARGET"
+msgstr ""
+
+#: config/s390/tpf.opt:47
+#, no-c-format
+msgid "Specify main object for TPF-OS."
+msgstr ""
+
+#: config/s390/s390.opt:48
+#, no-c-format
+msgid "31 bit ABI."
+msgstr ""
+
+#: config/s390/s390.opt:52
+#, no-c-format
+msgid "64 bit ABI."
+msgstr ""
+
+#: config/s390/s390.opt:129
+#, no-c-format
+msgid "Maintain backchain pointer."
+msgstr ""
+
+#: config/s390/s390.opt:133
+#, no-c-format
+msgid "Additional debug prints."
+msgstr ""
+
+#: config/s390/s390.opt:137
+#, no-c-format
+msgid "ESA/390 architecture."
+msgstr ""
+
+#: config/s390/s390.opt:141
+#, no-c-format
+msgid "Enable decimal floating point hardware support."
+msgstr ""
+
+#: config/s390/s390.opt:145
+#, no-c-format
+msgid "Enable hardware floating point."
+msgstr ""
+
+#: config/s390/s390.opt:149
+#, no-c-format
+msgid "Takes two non-negative integer numbers separated by a comma. Prepend the function label with the number of two-byte Nop instructions indicated by the first.  Append Nop instructions covering the number of halfwords indicated by the second after the label.  Nop instructions of the largest possible size are used (six, four or two bytes), beginning with the largest possible size.  Using 0 for both values disables hotpatching."
+msgstr ""
+
+#: config/s390/s390.opt:167
+#, no-c-format
+msgid "Use hardware transactional execution instructions."
+msgstr ""
+
+#: config/s390/s390.opt:171
+#, no-c-format
+msgid "Use hardware vector facility instructions and enable the vector ABI."
+msgstr ""
+
+#: config/s390/s390.opt:175
+#, no-c-format
+msgid "Use packed stack layout."
+msgstr ""
+
+#: config/s390/s390.opt:179
+#, no-c-format
+msgid "Use bras for executable < 64k."
+msgstr ""
+
+#: config/s390/s390.opt:183
+#, no-c-format
+msgid "Disable hardware floating point."
+msgstr ""
+
+#: config/s390/s390.opt:187
+#, no-c-format
+msgid "Set the max. number of bytes which has to be left to stack size before a trap instruction is triggered."
+msgstr ""
+
+#: config/s390/s390.opt:191
+#, no-c-format
+msgid "Switches off the -mstack-guard= option."
+msgstr ""
+
+#: config/s390/s390.opt:195
+#, no-c-format
+msgid "Emit extra code in the function prologue in order to trap if the stack size exceeds the given limit."
+msgstr ""
+
+#: config/s390/s390.opt:199
+#, no-c-format
+msgid "Switches off the -mstack-size= option."
+msgstr ""
+
+#: config/s390/s390.opt:207
+#, no-c-format
+msgid "Use the mvcle instruction for block moves."
+msgstr ""
+
+#: config/s390/s390.opt:211
+#, no-c-format
+msgid "Enable the z vector language extension providing the context-sensitive vector macro and enable the Altivec-style builtins in vecintrin.h."
+msgstr ""
+
+#: config/s390/s390.opt:216
+#, no-c-format
+msgid "Warn if a function uses alloca or creates an array with dynamic size."
+msgstr ""
+
+#: config/s390/s390.opt:220
+#, no-c-format
+msgid "Warn if a single function's framesize exceeds the given framesize."
+msgstr ""
+
+#: config/s390/s390.opt:224
+#, no-c-format
+msgid "z/Architecture."
+msgstr ""
+
+#: config/s390/s390.opt:228
+#, no-c-format
+msgid "Set the branch costs for conditional branch instructions.  Reasonable values are small, non-negative integers.  The default branch cost is 1."
+msgstr ""
+
+#: config/s390/s390.opt:238 config/arm/arm.opt:178
+#, no-c-format
+msgid "Assume data segments are relative to text segment."
+msgstr ""
+
+#: config/s390/s390.opt:243
+#, no-c-format
+msgid "Wrap all indirect branches into execute in order to disable branch prediction."
+msgstr ""
+
+#: config/s390/s390.opt:248
+#, no-c-format
+msgid "Wrap indirect table jumps and computed gotos into execute in order to disable branch prediction.  Using thunk or thunk-extern with this option requires the thunks to be considered signal handlers to order to generate correct CFI.  For environments where unwinding (e.g. for exceptions) is required please use thunk-inline instead."
+msgstr ""
+
+#: config/s390/s390.opt:256
+#, no-c-format
+msgid "Wrap all indirect calls into execute in order to disable branch prediction."
+msgstr ""
+
+#: config/s390/s390.opt:260
+#, no-c-format
+msgid "Wrap all indirect return branches into execute in order to disable branch prediction."
+msgstr ""
+
+#: config/s390/s390.opt:265
+#, no-c-format
+msgid "Wrap indirect return branches into execute in order to disable branch prediction. This affects only branches where the return address is going to be restored from memory."
+msgstr ""
+
+#: config/s390/s390.opt:271
+#, no-c-format
+msgid "Wrap indirect return branches into execute in order to disable branch prediction. This affects only branches where the return address doesn't need to be restored from memory."
+msgstr ""
+
+#: config/s390/s390.opt:293
+#, no-c-format
+msgid "Generate sections .s390_indirect_jump, .s390_indirect_call, .s390_return_reg, and .s390_return_mem to contain the indirect branch locations which have been patched as part of using one of the -mindirect-branch* or -mfunction-return* options.  The sections consist of an array of 32 bit elements. Each entry holds the offset from the entry to the patched location."
+msgstr ""
+
+#: config/s390/s390.opt:302
+#, no-c-format
+msgid "Emit profiling counter call at function entry before prologue. The compiled code will require a 64-bit CPU and glibc 2.29 or newer to run."
+msgstr ""
+
+#: config/s390/s390.opt:307
+#, no-c-format
+msgid "Generate __mcount_loc section with all _mcount and __fentry__ calls."
+msgstr ""
+
+#: config/s390/s390.opt:316
+#, no-c-format
+msgid "Emit fused multiply-add instructions for long doubles in vector registers (wfmaxb, wfmsxb, wfnmaxb, wfnmsxb).  Reassociation pass does not handle fused multiply-adds, therefore code generated by the middle-end is prone to having long fused multiply-add chains.  This is not pipeline-friendly, and the default behavior is to emit separate multiplication and addition instructions for long doubles in vector registers, because measurements show that this improves performance.  This option allows overriding it for testing purposes."
+msgstr ""
+
+#: config/s390/s390.opt:331
+#, no-c-format
+msgid "Store all argument registers on the stack."
+msgstr ""
+
+#: config/s390/s390.opt:335
+#, no-c-format
+msgid "Assume external symbols, whose natural alignment would be 1, to be potentially unaligned.  By default all symbols without explicit alignment are assumed to reside on a 2 byte boundary as mandated by the IBM Z ABI."
+msgstr ""
+
+#: config/rl78/rl78.opt:27 config/rx/elf.opt:26 config/csky/csky.opt:198
+#, no-c-format
+msgid "Use the simulator runtime."
+msgstr ""
+
+#: config/rl78/rl78.opt:31
+#, no-c-format
+msgid "Selects the type of hardware multiplication and division to use (none/g13/g14)."
+msgstr ""
+
+#: config/rl78/rl78.opt:50
+#, no-c-format
+msgid "Use all registers, reserving none for interrupt handlers."
+msgstr ""
+
+#: config/rl78/rl78.opt:54
+#, no-c-format
+msgid "Enable assembler and linker relaxation.  Enabled by default at -Os."
+msgstr ""
+
+#: config/rl78/rl78.opt:58
+#, no-c-format
+msgid "Selects the type of RL78 core being targeted (g10/g13/g14).  The default is the G14.  If set, also selects the hardware multiply support to be used."
+msgstr ""
+
+#: config/rl78/rl78.opt:77
+#, no-c-format
+msgid "Alias for -mcpu=g10."
+msgstr ""
+
+#: config/rl78/rl78.opt:81
+#, no-c-format
+msgid "Alias for -mcpu=g13."
+msgstr ""
+
+#: config/rl78/rl78.opt:85 config/rl78/rl78.opt:89
+#, no-c-format
+msgid "Alias for -mcpu=g14."
+msgstr ""
+
+#: config/rl78/rl78.opt:93
+#, no-c-format
+msgid "Assume ES is zero throughout program execution, use ES: for read-only data."
+msgstr ""
+
+#: config/rl78/rl78.opt:97
+#, no-c-format
+msgid "Stores the MDUC registers in interrupt handlers for G13 target."
+msgstr ""
+
+#: config/stormy16/stormy16.opt:24
+#, no-c-format
+msgid "Provide libraries for the simulator."
+msgstr ""
+
+#: config/arm/arm-tables.opt:25
+#, no-c-format
+msgid "Known ARM CPUs (for use with the -mcpu= and -mtune= options):"
+msgstr ""
+
+#: config/arm/arm-tables.opt:305
+#, no-c-format
+msgid "Known ARM architectures (for use with the -march= option):"
+msgstr ""
+
+#: config/arm/arm-tables.opt:411
+#, no-c-format
+msgid "Known ARM FPUs (for use with the -mfpu= option):"
+msgstr ""
+
+#: config/arm/arm.opt:35
+#, no-c-format
+msgid "TLS dialect to use:"
+msgstr ""
+
+#: config/arm/arm.opt:45
+#, no-c-format
+msgid "Specify an ABI."
+msgstr ""
+
+#: config/arm/arm.opt:49
+#, no-c-format
+msgid "Known ARM ABIs (for use with the -mabi= option):"
+msgstr ""
+
+#: config/arm/arm.opt:68
+#, no-c-format
+msgid "Generate a call to abort if a noreturn function returns."
+msgstr ""
+
+#: config/arm/arm.opt:75
+#, no-c-format
+msgid "Generate APCS conformant stack frames."
+msgstr ""
+
+#: config/arm/arm.opt:79
+#, no-c-format
+msgid "Generate re-entrant, PIC code."
+msgstr ""
+
+#: config/arm/arm.opt:101
+#, no-c-format
+msgid "Generate code in 32 bit ARM state."
+msgstr ""
+
+#: config/arm/arm.opt:109
+#, no-c-format
+msgid "Thumb: Assume non-static functions may be called from ARM code."
+msgstr ""
+
+#: config/arm/arm.opt:113
+#, no-c-format
+msgid "Thumb: Assume function pointers may go to non-Thumb aware code."
+msgstr ""
+
+#: config/arm/arm.opt:121 config/csky/csky.opt:73
+#, no-c-format
+msgid "Specify if floating point hardware should be used."
+msgstr ""
+
+#: config/arm/arm.opt:125
+#, no-c-format
+msgid "Specify that the compiler should target secure code as per ARMv8-M Security Extensions."
+msgstr ""
+
+#: config/arm/arm.opt:129 config/csky/csky.opt:77
+#, no-c-format
+msgid "Known floating-point ABIs (for use with the -mfloat-abi= option):"
+msgstr ""
+
+#: config/arm/arm.opt:142
+#, no-c-format
+msgid "Switch ARM/Thumb modes on alternating functions for compiler testing."
+msgstr ""
+
+#: config/arm/arm.opt:146
+#, no-c-format
+msgid "Specify the __fp16 floating-point format."
+msgstr ""
+
+#: config/arm/arm.opt:150
+#, no-c-format
+msgid "Known __fp16 formats (for use with the -mfp16-format= option):"
+msgstr ""
+
+#: config/arm/arm.opt:163
+#, no-c-format
+msgid "Specify the name of the target floating point hardware/format."
+msgstr ""
+
+#: config/arm/arm.opt:174
+#, no-c-format
+msgid "Generate call insns as indirect calls, if necessary."
+msgstr ""
+
+#: config/arm/arm.opt:182
+#, no-c-format
+msgid "Specify the register to be used for PIC addressing."
+msgstr ""
+
+#: config/arm/arm.opt:186
+#, no-c-format
+msgid "Store function names in object code."
+msgstr ""
+
+#: config/arm/arm.opt:190
+#, no-c-format
+msgid "Permit scheduling of a function's prologue sequence."
+msgstr ""
+
+#: config/arm/arm.opt:194 config/rs6000/rs6000.opt:235
+#, no-c-format
+msgid "Do not load the PIC register in function prologues."
+msgstr ""
+
+#: config/arm/arm.opt:201
+#, no-c-format
+msgid "Specify the minimum bit alignment of structures. (Deprecated)."
+msgstr ""
+
+#: config/arm/arm.opt:205
+#, no-c-format
+msgid "Generate code for Thumb state."
+msgstr ""
+
+#: config/arm/arm.opt:209
+#, no-c-format
+msgid "Support calls between Thumb and ARM instruction sets."
+msgstr ""
+
+#: config/arm/arm.opt:213
+#, no-c-format
+msgid "Specify thread local storage scheme."
+msgstr ""
+
+#: config/arm/arm.opt:217
+#, no-c-format
+msgid "Specify how to access the thread pointer."
+msgstr ""
+
+#: config/arm/arm.opt:221
+#, no-c-format
+msgid "Valid arguments to -mtp=:"
+msgstr ""
+
+#: config/arm/arm.opt:243
+#, no-c-format
+msgid "Thumb: Generate (non-leaf) stack frames even if not needed."
+msgstr ""
+
+#: config/arm/arm.opt:247
+#, no-c-format
+msgid "Thumb: Generate (leaf) stack frames even if not needed."
+msgstr ""
+
+#: config/arm/arm.opt:251 config/mn10300/mn10300.opt:42
+#, no-c-format
+msgid "Tune code for the given processor."
+msgstr ""
+
+#: config/arm/arm.opt:255
+#, no-c-format
+msgid "Print CPU tuning information as comment in assembler file.  This is an option used only for regression testing of the compiler and not intended for ordinary use in compiling code."
+msgstr ""
+
+#: config/arm/arm.opt:266
+#, no-c-format
+msgid "Use Neon quad-word (rather than double-word) registers for vectorization."
+msgstr ""
+
+#: config/arm/arm.opt:270
+#, no-c-format
+msgid "Use Neon double-word (rather than quad-word) registers for vectorization."
+msgstr ""
+
+#: config/arm/arm.opt:274
+#, no-c-format
+msgid "Enable more verbose RTX cost dumps during debug.  For GCC developers use only."
+msgstr ""
+
+#: config/arm/arm.opt:278
+#, no-c-format
+msgid "Only generate absolute relocations on word sized values."
+msgstr ""
+
+#: config/arm/arm.opt:282
+#, no-c-format
+msgid "Generate IT blocks appropriate for ARMv8."
+msgstr ""
+
+#: config/arm/arm.opt:286
+#, no-c-format
+msgid "Avoid overlapping destination and address registers on LDRD instructions that may trigger Cortex-M3 errata."
+msgstr ""
+
+#: config/arm/arm.opt:291
+#, no-c-format
+msgid "Mitigate issues with VLLDM on some M-profile devices (CVE-2021-35465)."
+msgstr ""
+
+#: config/arm/arm.opt:295
+#, no-c-format
+msgid "Mitigate issues with AES instructions on Cortex-A57 and Cortex-A72 (Arm erratum #1742098)."
+msgstr ""
+
+#: config/arm/arm.opt:300
+#, no-c-format
+msgid "Mitigate issues with AES instructions on Cortex-A57 and Cortex-A72 (Arm erratum #1655431)."
+msgstr ""
+
+#: config/arm/arm.opt:305 config/nds32/nds32.opt:461 config/arc/arc.opt:495
+#, no-c-format
+msgid "Enable unaligned word and halfword accesses to packed data."
+msgstr ""
+
+#: config/arm/arm.opt:309
+#, no-c-format
+msgid "This option is deprecated and has no effect."
+msgstr ""
+
+#: config/arm/arm.opt:313
+#, no-c-format
+msgid "Assume loading data from flash is slower than fetching instructions."
+msgstr ""
+
+#: config/arm/arm.opt:317
+#, no-c-format
+msgid "Assume unified syntax for inline assembly code."
+msgstr ""
+
+#: config/arm/arm.opt:321
+#, no-c-format
+msgid "Do not allow constant data to be placed in code sections."
+msgstr ""
+
+#: config/arm/arm.opt:325
+#, no-c-format
+msgid "When linking for big-endian targets, generate a BE8 format image."
+msgstr ""
+
+#: config/arm/arm.opt:329
+#, no-c-format
+msgid "When linking for big-endian targets, generate a legacy BE32 format image."
+msgstr ""
+
+#: config/arm/arm.opt:333 config/sh/sh.opt:195
+#, no-c-format
+msgid "Cost to assume for a branch insn."
+msgstr ""
+
+#: config/arm/arm.opt:341
+#, no-c-format
+msgid "Generate code which uses the core registers only (r0-r14)."
+msgstr ""
+
+#: config/arm/arm.opt:363
+#, no-c-format
+msgid "Use an immediate to offset from the TLS register. This option is for use with fstack-protector-guard=tls and not for use in user-land code."
+msgstr ""
+
+#: config/sparc/sparc.opt:30 config/sparc/sparc.opt:34
+#: config/visium/visium.opt:37
+#, no-c-format
+msgid "Use hardware FP."
+msgstr ""
+
+#: config/sparc/sparc.opt:38 config/visium/visium.opt:41
+#, no-c-format
+msgid "Do not use hardware FP."
+msgstr ""
+
+#: config/sparc/sparc.opt:42
+#, no-c-format
+msgid "Use flat register window model."
+msgstr ""
+
+#: config/sparc/sparc.opt:46
+#, no-c-format
+msgid "Assume possible double misalignment."
+msgstr ""
+
+#: config/sparc/sparc.opt:50
+#, no-c-format
+msgid "Use ABI reserved registers."
+msgstr ""
+
+#: config/sparc/sparc.opt:54
+#, no-c-format
+msgid "Use hardware quad FP instructions."
+msgstr ""
+
+#: config/sparc/sparc.opt:58
+#, no-c-format
+msgid "Do not use hardware quad fp instructions."
+msgstr ""
+
+#: config/sparc/sparc.opt:62 config/vax/vax.opt:47
+#, no-c-format
+msgid "Enable Local Register Allocation."
+msgstr ""
+
+#: config/sparc/sparc.opt:66
+#, no-c-format
+msgid "Compile for V8+ ABI."
+msgstr ""
+
+#: config/sparc/sparc.opt:70
+#, no-c-format
+msgid "Use UltraSPARC Visual Instruction Set version 1.0 extensions."
+msgstr ""
+
+#: config/sparc/sparc.opt:74
+#, no-c-format
+msgid "Use UltraSPARC Visual Instruction Set version 2.0 extensions."
+msgstr ""
+
+#: config/sparc/sparc.opt:78
+#, no-c-format
+msgid "Use UltraSPARC Visual Instruction Set version 3.0 extensions."
+msgstr ""
+
+#: config/sparc/sparc.opt:82
+#, no-c-format
+msgid "Use UltraSPARC Visual Instruction Set version 4.0 extensions."
+msgstr ""
+
+#: config/sparc/sparc.opt:86
+#, no-c-format
+msgid "Use additional VIS instructions introduced in OSA2017."
+msgstr ""
+
+#: config/sparc/sparc.opt:90
+#, no-c-format
+msgid "Use UltraSPARC Compare-and-Branch extensions."
+msgstr ""
+
+#: config/sparc/sparc.opt:94
+#, no-c-format
+msgid "Use UltraSPARC Fused Multiply-Add extensions."
+msgstr ""
+
+#: config/sparc/sparc.opt:98
+#, no-c-format
+msgid "Use Floating-point Multiply Single to Double (FsMULd) instruction."
+msgstr ""
+
+#: config/sparc/sparc.opt:102
+#, no-c-format
+msgid "Use UltraSPARC Population-Count instruction."
+msgstr ""
+
+#: config/sparc/sparc.opt:106
+#, no-c-format
+msgid "Use UltraSPARC Subtract-Extended-with-Carry instruction."
+msgstr ""
+
+#: config/sparc/sparc.opt:110
+#, no-c-format
+msgid "Pointers are 64-bit."
+msgstr ""
+
+#: config/sparc/sparc.opt:114
+#, no-c-format
+msgid "Pointers are 32-bit."
+msgstr ""
+
+#: config/sparc/sparc.opt:118
+#, no-c-format
+msgid "Use 64-bit ABI."
+msgstr ""
+
+#: config/sparc/sparc.opt:122
+#, no-c-format
+msgid "Use 32-bit ABI."
+msgstr ""
+
+#: config/sparc/sparc.opt:126
+#, no-c-format
+msgid "Use stack bias."
+msgstr ""
+
+#: config/sparc/sparc.opt:130
+#, no-c-format
+msgid "Use structs on stronger alignment for double-word copies."
+msgstr ""
+
+#: config/sparc/sparc.opt:134
+#, no-c-format
+msgid "Optimize tail call instructions in assembler and linker."
+msgstr ""
+
+#: config/sparc/sparc.opt:138
+#, no-c-format
+msgid "Do not generate code that can only run in supervisor mode (default)."
+msgstr ""
+
+#: config/sparc/sparc.opt:142
+#, no-c-format
+msgid "Use instructions of and schedule code for given CPU."
+msgstr ""
+
+#: config/sparc/sparc.opt:228
+#, no-c-format
+msgid "Use given SPARC-V9 code model."
+msgstr ""
+
+#: config/sparc/sparc.opt:250
+#, no-c-format
+msgid "Enable debug output."
+msgstr "გამართვის გამოტანის ჩართვა."
+
+#: config/sparc/sparc.opt:254
+#, no-c-format
+msgid "Enable strict 32-bit psABI struct return checking."
+msgstr ""
+
+#: config/sparc/sparc.opt:258
+#, no-c-format
+msgid "Enable workaround for single erratum of AT697F processor (corresponding to erratum #13 of AT697E processor)."
+msgstr ""
+
+#: config/sparc/sparc.opt:263
+#, no-c-format
+msgid "Enable workarounds for the errata of the UT699 processor."
+msgstr ""
+
+#: config/sparc/sparc.opt:267
+#, no-c-format
+msgid "Enable workarounds for the errata of the UT699E/UT700 processor."
+msgstr ""
+
+#: config/sparc/sparc.opt:271
+#, no-c-format
+msgid "Enable workarounds for the errata of the GR712RC processor."
+msgstr ""
+
+#: config/sparc/sparc.opt:308
+#, no-c-format
+msgid "Specify the memory model in effect for the program."
+msgstr ""
+
+#: config/rs6000/darwin.opt:38 config/rs6000/sysv4.opt:145
+#, no-c-format
+msgid "Generate 64-bit code."
+msgstr ""
+
+#: config/rs6000/darwin.opt:42 config/rs6000/sysv4.opt:149
+#, no-c-format
+msgid "Generate 32-bit code."
+msgstr ""
+
+#: config/rs6000/rs6000-tables.opt:24
+#, no-c-format
+msgid "Known CPUs (for use with the -mcpu= and -mtune= options):"
+msgstr ""
+
+#: config/rs6000/476.opt:24
+#, no-c-format
+msgid "Preserve the PowerPC 476's link stack by matching up a blr with the bcl/bl insns used for GOT accesses."
+msgstr ""
+
+#: config/rs6000/aix64.opt:24
+#, no-c-format
+msgid "Compile for 64-bit pointers."
+msgstr ""
+
+#: config/rs6000/aix64.opt:28
+#, no-c-format
+msgid "Compile for 32-bit pointers."
+msgstr ""
+
+#: config/rs6000/aix64.opt:32 config/rs6000/linux64.opt:28
+#, no-c-format
+msgid "Select code model."
+msgstr ""
+
+#: config/rs6000/aix64.opt:49
+#, no-c-format
+msgid "Support message passing with the Parallel Environment."
+msgstr ""
+
+#: config/rs6000/linux64.opt:24
+#, no-c-format
+msgid "Call mcount for profiling before a function prologue."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:117
+#, no-c-format
+msgid "Use PowerPC-64 instruction set."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:121
+#, no-c-format
+msgid "Use PowerPC General Purpose group optional instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:125
+#, no-c-format
+msgid "Use PowerPC Graphics group optional instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:129
+#, no-c-format
+msgid "Use PowerPC V2.01 single field mfcr instruction."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:133
+#, no-c-format
+msgid "Use PowerPC V2.02 popcntb instruction."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:137
+#, no-c-format
+msgid "Use PowerPC V2.02 floating point rounding instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:141
+#, no-c-format
+msgid "Use PowerPC V2.05 compare bytes instruction."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:152
+#, no-c-format
+msgid "Use AltiVec instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:156
+#, no-c-format
+msgid "Use decimal floating point instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:160
+#, no-c-format
+msgid "Use 4xx half-word multiply instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:164
+#, no-c-format
+msgid "Use 4xx string-search dlmzb instruction."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:168
+#, no-c-format
+msgid "Generate load/store multiple instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:187
+#, no-c-format
+msgid "Use PowerPC V2.06 popcntd instruction."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:191
+#, no-c-format
+msgid "Under -ffast-math, generate a FRIZ instruction for (double)(long long) conversions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:199
+#, no-c-format
+msgid "Use vector/scalar (VSX) instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:227
+#, no-c-format
+msgid "Do not generate load/store with update instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:231
+#, no-c-format
+msgid "Generate load/store with update instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:239
+#, no-c-format
+msgid "Avoid generation of indexed load/store instructions when possible."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:246
+#, no-c-format
+msgid "Schedule the start and end of the procedure."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:250
+#, no-c-format
+msgid "Return all structures in memory (AIX default)."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:254
+#, no-c-format
+msgid "Return small structures in registers (SVR4 default)."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:258
+#, no-c-format
+msgid "Conform more closely to IBM XLC semantics."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:262 config/rs6000/rs6000.opt:266
+#, no-c-format
+msgid "Generate software reciprocal divide and square root for better throughput."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:270
+#, no-c-format
+msgid "Assume that the reciprocal estimate instructions provide more accuracy."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:274
+#, no-c-format
+msgid "Do not place floating point constants in TOC."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:278
+#, no-c-format
+msgid "Place floating point constants in TOC."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:282
+#, no-c-format
+msgid "Do not place symbol+offset constants in TOC."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:286
+#, no-c-format
+msgid "Place symbol+offset constants in TOC."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:297
+#, no-c-format
+msgid "Use only one TOC entry per procedure."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:301
+#, no-c-format
+msgid "Put everything in the regular TOC."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:305
+#, no-c-format
+msgid "Generate VRSAVE instructions when generating AltiVec code."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:309
+#, no-c-format
+msgid "Deprecated option.  Use -mno-vrsave instead."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:313
+#, no-c-format
+msgid "Deprecated option.  Use -mvrsave instead."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:317
+#, no-c-format
+msgid "Max number of bytes to move inline."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:321
+#, no-c-format
+msgid "Generate unaligned VSX load/store for inline expansion of memcpy/memmove."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:325
+#, no-c-format
+msgid "Generate unaligned VSX vector pair load/store for inline expansion of memcpy/memmove."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:329
+#, no-c-format
+msgid "Max number of bytes to compare without loops."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:333
+#, no-c-format
+msgid "Max number of bytes to compare with loops."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:337
+#, no-c-format
+msgid "Max number of bytes to compare."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:341
+#, no-c-format
+msgid "Generate isel instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:345
+#, no-c-format
+msgid "-mdebug=\tEnable debug output."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:350
+#, no-c-format
+msgid "Use the AltiVec ABI extensions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:354
+#, no-c-format
+msgid "Do not use the AltiVec ABI extensions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:359
+#, no-c-format
+msgid "Use the AIX Vector Extended ABI."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:363
+#, no-c-format
+msgid "Do not use the AIX Vector Extended ABI."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:368
+#, no-c-format
+msgid "Use the ELFv1 ABI."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:372
+#, no-c-format
+msgid "Use the ELFv2 ABI."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:392
+#, no-c-format
+msgid "-mcpu=\tUse features of and schedule code for given CPU."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:396
+#, no-c-format
+msgid "-mtune=\tSchedule code for given CPU."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:400
+#, no-c-format
+msgid "-mtraceback=[full,part,no]\tSelect type of traceback table."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:416
+#, no-c-format
+msgid "Avoid all range limits on call instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:424
+#, no-c-format
+msgid "Warn about deprecated 'vector long ...' AltiVec type usage."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:428
+#, no-c-format
+msgid "Use -mlong-double-64 for 64-bit IEEE floating point format.  Use -mlong-double-128 for 128-bit floating point format (either IEEE or IBM)."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:437
+#, no-c-format
+msgid "Determine which dependences between insns are considered costly."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:441
+#, no-c-format
+msgid "Specify which post scheduling nop insertion scheme to apply."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:445
+#, no-c-format
+msgid "Specify alignment of structure fields default/natural."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:449
+#, no-c-format
+msgid "Valid arguments to -malign-:"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:459
+#, no-c-format
+msgid "Specify scheduling priority for dispatch slot restricted insns."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:463
+#, no-c-format
+msgid "Use r11 to hold the static link in calls to functions via pointers."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:467
+#, no-c-format
+msgid "Save the TOC in the prologue for indirect calls rather than inline."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:479
+#, no-c-format
+msgid "Fuse certain integer operations together for better performance on power8."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:483
+#, no-c-format
+msgid "Allow sign extension in fusion operations."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:487
+#, no-c-format
+msgid "Use vector and scalar instructions added in ISA 2.07."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:491
+#, no-c-format
+msgid "Fuse certain integer operations together for better performance on power10."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:495
+#, no-c-format
+msgid "Use ISA 2.07 Category:Vector.AES and Category:Vector.SHA2 instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:502
+#, no-c-format
+msgid "Use ISA 2.07 transactional memory (HTM) instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:506
+#, no-c-format
+msgid "Generate the quad word memory instructions (lq/stq)."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:510
+#, no-c-format
+msgid "Generate the quad word memory atomic instructions (lqarx/stqcx)."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:514
+#, no-c-format
+msgid "Generate aggregate parameter passing code with at most 64-bit alignment."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:518
+#, no-c-format
+msgid "Analyze and remove doubleword swaps from VSX computations."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:526
+#, no-c-format
+msgid "Use certain scalar instructions added in ISA 3.0."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:530
+#, no-c-format
+msgid "Use vector instructions added in ISA 3.0."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:534
+#, no-c-format
+msgid "Use the new min/max instructions defined in ISA 3.0."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:538
+#, no-c-format
+msgid "Generate the integer modulo instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:542
+#, no-c-format
+msgid "Enable IEEE 128-bit floating point via the __float128 keyword."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:546
+#, no-c-format
+msgid "Enable using IEEE 128-bit floating point instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:550
+#, no-c-format
+msgid "Enable default conversions between __float128 & long double."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:590
+#, no-c-format
+msgid "Generate (do not generate) prefixed memory instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:594
+#, no-c-format
+msgid "Generate (do not generate) pc-relative memory addressing."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:598
+#, no-c-format
+msgid "Generate (do not generate) pc-relative memory optimizations for externals."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:602
+#, no-c-format
+msgid "Generate (do not generate) MMA instructions."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:609
+#, no-c-format
+msgid "Enable instructions that guard against return-oriented programming attacks."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:613
+#, no-c-format
+msgid "Generate code that will run in privileged state."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:617
+#, no-c-format
+msgid "Generate (do not generate) code that uses the XXSPLTIW instruction."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:621
+#, no-c-format
+msgid "Generate (do not generate) code that uses the XXSPLTIDP instruction."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:625
+#, no-c-format
+msgid "Generate (do not generate) code that uses the LXVKQ instruction."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:631
+#, no-c-format
+msgid "Used to limit unroll factor which indicates how much the autovectorizer may unroll a loop.  The default value is 4."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:637
+#, no-c-format
+msgid "When costing for loop vectorization, we probably need to penalize the loop body cost if the existing cost model may not adequately reflect delays from unavailable vector resources.  We collect the cost for vectorized statements and non-vectorized statements separately, check the proportion of vec_cost to total cost of vec_cost and non vec_cost, and penalize only if the proportion exceeds the threshold specified by this parameter.  The default value is 85."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:646
+#, no-c-format
+msgid "Like parameter rs6000-density-pct-threshold, we also check the total sum of vec_cost and non vec_cost, and penalize only if the sum exceeds the threshold specified by this parameter.  The default value is 70."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:652
+#, no-c-format
+msgid "When both heuristics with rs6000-density-pct-threshold and rs6000-density-size-threshold are satisfied, we decide to penalize the loop body cost by the value which is specified by this parameter.  The default value is 10."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:659
+#, no-c-format
+msgid "When costing for loop vectorization, we probably need to penalize the loop body cost by accounting for excess strided or elementwise loads.  We collect the numbers for general statements and load statements according to the information for statements to be vectorized, check the proportion of load statements, and penalize only if the proportion exceeds the threshold specified by this parameter.  The default value is 45."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:668
+#, no-c-format
+msgid "Like parameter rs6000-density-load-pct-threshold, we also check if the total number of load statements exceeds the threshold specified by this parameter, and penalize only if it's satisfied.  The default value is 20."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:674 config/loongarch/loongarch.opt:302
+#, no-c-format
+msgid "Indicate how many non memory access vector instructions can be issued per cycle, it's used in unroll factor determination for autovectorizer.  The default value is 4."
+msgstr ""
+
+#: config/rs6000/rs6000.opt:680
+#, no-c-format
+msgid "When reduction factor computed for a loop exceeds the threshold specified by this parameter, prefer to unroll this loop.  The default value is 1."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:24
+#, no-c-format
+msgid "-mcall-ABI\tSelect ABI calling convention."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:28
+#, no-c-format
+msgid "-msdata=[none,data,sysv,eabi]\tSelect method for sdata handling."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:32
+#, no-c-format
+msgid "Allow readonly data in sdata."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:36
+#, no-c-format
+msgid "-mtls-size=[16,32]\tSpecify bit size of immediate TLS offsets."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:52
+#, no-c-format
+msgid "Align to the base type of the bit-field."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:56
+#, no-c-format
+msgid "Align to the base type of the bit-field. Don't assume that unaligned accesses are handled by the system."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:61 config/rs6000/sysv4.opt:65
+#, no-c-format
+msgid "Produce code relocatable at runtime."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:69 config/rs6000/sysv4.opt:73
+#, no-c-format
+msgid "Produce little endian code."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:77 config/rs6000/sysv4.opt:81
+#, no-c-format
+msgid "Produce big endian code."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:86 config/rs6000/sysv4.opt:90
+#: config/rs6000/sysv4.opt:99 config/rs6000/sysv4.opt:141
+#: config/rs6000/sysv4.opt:153
+#, no-c-format
+msgid "No description yet."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:94
+#, no-c-format
+msgid "Assume all variable arg functions are prototyped."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:103
+#, no-c-format
+msgid "Use EABI."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:107
+#, no-c-format
+msgid "Allow bit-fields to cross word boundaries."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:111
+#, no-c-format
+msgid "Use alternate register names."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:117
+#, no-c-format
+msgid "Use default method for sdata handling."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:121
+#, no-c-format
+msgid "Link with libsim.a, libc.a and sim-crt0.o."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:125
+#, no-c-format
+msgid "Link with libads.a, libc.a and crt0.o."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:129
+#, no-c-format
+msgid "Link with libyk.a, libc.a and crt0.o."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:133
+#, no-c-format
+msgid "Link with libmvme.a, libc.a and crt0.o."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:137
+#, no-c-format
+msgid "Set the PPC_EMB bit in the ELF flags header."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:157
+#, no-c-format
+msgid "Generate code to use a non-exec PLT and GOT."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:161
+#, no-c-format
+msgid "Generate code for old exec BSS PLT."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:165
+#, no-c-format
+msgid "Use inline plt sequences to implement long calls and -fno-plt."
+msgstr ""
+
+#: config/rs6000/sysv4.opt:169
+#, no-c-format
+msgid "Emit .gnu_attribute tags."
+msgstr ""
+
+#: config/alpha/alpha.opt:27
+#, no-c-format
+msgid "Use fp registers."
+msgstr ""
+
+#: config/alpha/alpha.opt:35
+#, no-c-format
+msgid "Request IEEE-conformant math library routines (OSF/1)."
+msgstr ""
+
+#: config/alpha/alpha.opt:39
+#, no-c-format
+msgid "Emit IEEE-conformant code, without inexact exceptions."
+msgstr ""
+
+#: config/alpha/alpha.opt:46
+#, no-c-format
+msgid "Do not emit complex integer constants to read-only memory."
+msgstr ""
+
+#: config/alpha/alpha.opt:50
+#, no-c-format
+msgid "Use VAX fp."
+msgstr ""
+
+#: config/alpha/alpha.opt:54
+#, no-c-format
+msgid "Do not use VAX fp."
+msgstr ""
+
+#: config/alpha/alpha.opt:58
+#, no-c-format
+msgid "Emit code for the byte/word ISA extension."
+msgstr ""
+
+#: config/alpha/alpha.opt:62
+#, no-c-format
+msgid "Emit code for the motion video ISA extension."
+msgstr ""
+
+#: config/alpha/alpha.opt:66
+#, no-c-format
+msgid "Emit code for the fp move and sqrt ISA extension."
+msgstr ""
+
+#: config/alpha/alpha.opt:70
+#, no-c-format
+msgid "Emit code for the counting ISA extension."
+msgstr ""
+
+#: config/alpha/alpha.opt:74
+#, no-c-format
+msgid "Emit code using explicit relocation directives."
+msgstr ""
+
+#: config/alpha/alpha.opt:78
+#, no-c-format
+msgid "Emit 16-bit relocations to the small data areas."
+msgstr ""
+
+#: config/alpha/alpha.opt:82
+#, no-c-format
+msgid "Emit 32-bit relocations to the small data areas."
+msgstr ""
+
+#: config/alpha/alpha.opt:86
+#, no-c-format
+msgid "Emit direct branches to local functions."
+msgstr ""
+
+#: config/alpha/alpha.opt:90
+#, no-c-format
+msgid "Emit indirect branches to local functions."
+msgstr ""
+
+#: config/alpha/alpha.opt:94
+#, no-c-format
+msgid "Emit rdval instead of rduniq for thread pointer."
+msgstr ""
+
+#: config/alpha/alpha.opt:106
+#, no-c-format
+msgid "Use features of and schedule given CPU."
+msgstr ""
+
+#: config/alpha/alpha.opt:110
+#, no-c-format
+msgid "Schedule given CPU."
+msgstr ""
+
+#: config/alpha/alpha.opt:114
+#, no-c-format
+msgid "Control the generated fp rounding mode."
+msgstr ""
+
+#: config/alpha/alpha.opt:118
+#, no-c-format
+msgid "Control the IEEE trap mode."
+msgstr ""
+
+#: config/alpha/alpha.opt:122
+#, no-c-format
+msgid "Control the precision given to fp exceptions."
+msgstr ""
+
+#: config/alpha/alpha.opt:126
+#, no-c-format
+msgid "Tune expected memory latency."
+msgstr ""
+
+#: config/lm32/lm32.opt:24
+#, no-c-format
+msgid "Enable multiply instructions."
+msgstr ""
+
+#: config/lm32/lm32.opt:28
+#, no-c-format
+msgid "Enable divide and modulus instructions."
+msgstr ""
+
+#: config/lm32/lm32.opt:32
+#, no-c-format
+msgid "Enable barrel shift instructions."
+msgstr ""
+
+#: config/lm32/lm32.opt:36
+#, no-c-format
+msgid "Enable sign extend instructions."
+msgstr ""
+
+#: config/lm32/lm32.opt:40
+#, no-c-format
+msgid "Enable user-defined instructions."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:41
+#, no-c-format
+msgid "Basic ISAs of LoongArch:"
+msgstr ""
+
+#: config/loongarch/loongarch.opt:49
+#, no-c-format
+msgid "FPU types of LoongArch:"
+msgstr ""
+
+#: config/loongarch/loongarch.opt:62
+#, no-c-format
+msgid "-mfpu=FPU\tGenerate code for the given FPU."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:69 config/mips/mips.opt:398
+#, no-c-format
+msgid "Prevent the use of all hardware floating-point instructions."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:73 config/mips/mips.opt:390
+#, no-c-format
+msgid "Restrict the use of hardware floating-point instructions to 32-bit operations."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:77 config/mips/mips.opt:116
+#, no-c-format
+msgid "Allow hardware floating-point instructions to cover both 32-bit and 64-bit operations."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:81
+#, no-c-format
+msgid "SIMD extension levels of LoongArch:"
+msgstr ""
+
+#: config/loongarch/loongarch.opt:94
+#, no-c-format
+msgid "-msimd=SIMD\tGenerate code for the given SIMD extension."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:98
+#, no-c-format
+msgid "Enable LoongArch SIMD Extension (LSX, 128-bit)."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:102
+#, no-c-format
+msgid "Enable LoongArch Advanced SIMD Extension (LASX, 256-bit)."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:107
+#, no-c-format
+msgid "LoongArch ARCH presets:"
+msgstr ""
+
+#: config/loongarch/loongarch.opt:132
+#, no-c-format
+msgid "-march=PROCESSOR\tGenerate code for the given PROCESSOR ISA."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:136
+#, no-c-format
+msgid "LoongArch TUNE presets:"
+msgstr ""
+
+#: config/loongarch/loongarch.opt:155
+#, no-c-format
+msgid "-mtune=PROCESSOR\tGenerate optimized code for PROCESSOR."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:164
+#, no-c-format
+msgid "Base ABI types for LoongArch:"
+msgstr ""
+
+#: config/loongarch/loongarch.opt:177
+#, no-c-format
+msgid "-mabi=BASEABI\tGenerate code that conforms to the given BASEABI."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:186 config/mips/mips.opt:71
+#, no-c-format
+msgid "-mbranch-cost=COST\tSet the cost of branches to roughly COST instructions."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:190 config/mips/mips.opt:83
+#, no-c-format
+msgid "Trap on integer divide by zero."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:194
+#, no-c-format
+msgid "Conditional moves for integral are enabled."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:198
+#, no-c-format
+msgid "Conditional moves for float are enabled."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:202
+#, no-c-format
+msgid "Prevent optimizing block moves, which is also the default behavior of -Os."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:210
+#, no-c-format
+msgid "-mmax-inline-memcpy-size=SIZE\tSet the max size of memcpy to inline, default is 1024."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:214 config/mips/mips.opt:150
+#, no-c-format
+msgid "The code model option names for -mexplicit-relocs:"
+msgstr ""
+
+#: config/loongarch/loongarch.opt:227 config/mips/mips.opt:163
+#, no-c-format
+msgid "Use %reloc() assembly operators."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:231 config/mips/mips.opt:167
+#, no-c-format
+msgid "Use %reloc() assembly operators (for backward compatibility)."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:239
+#, no-c-format
+msgid "Generate approximate reciprocal divide and square root for better throughput."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:270
+#, no-c-format
+msgid "Avoid using the GOT to access external symbols."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:279
+#, no-c-format
+msgid "Pass -mrelax or -mno-relax option to the assembler."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:297
+#, no-c-format
+msgid "Used to limit unroll factor which indicates how much the autovectorizer may unroll a loop.  The default value is 6."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:315
+#, no-c-format
+msgid "Support frecipe.{s/d} and frsqrte.{s/d} instructions."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:319
+#, no-c-format
+msgid "Support div.w[u] and mod.w[u] instructions with inputs not sign-extended."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:323
+#, no-c-format
+msgid "Support am{swap/add}[_db].{b/h} instructions."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:327
+#, no-c-format
+msgid "Support amcas[_db].{b/h/w/d} instructions."
+msgstr ""
+
+#: config/loongarch/loongarch.opt:331
+#, no-c-format
+msgid "Do not need load-load barriers (dbar 0x700)."
+msgstr ""
+
+#: config/or1k/elf.opt:28
+#, no-c-format
+msgid "Configure the newlib board specific runtime.  The default is or1ksim."
+msgstr ""
+
+#: config/or1k/elf.opt:32
+#, no-c-format
+msgid "This option is ignored; it is provided for compatibility purposes only.  This used to select linker and preprocessor options for use with newlib."
+msgstr ""
+
+#: config/or1k/or1k.opt:29
+#, no-c-format
+msgid "Enable generation of hardware divide (l.div, l.divu) instructions.  This is the default; use -msoft-div to override."
+msgstr ""
+
+#: config/or1k/or1k.opt:34
+#, no-c-format
+msgid "Enable generation of binaries which use functions from libgcc to perform divide operations.  The default is -mhard-div."
+msgstr ""
+
+#: config/or1k/or1k.opt:39
+#, no-c-format
+msgid "Enable generation of hardware multiply instructions (l.mul, l.muli) instructions. This is the default; use -msoft-mul to override."
+msgstr ""
+
+#: config/or1k/or1k.opt:44
+#, no-c-format
+msgid "Enable generation of binaries which use functions from libgcc to perform multiply operations. The default is -mhard-mul."
+msgstr ""
+
+#: config/or1k/or1k.opt:49
+#, no-c-format
+msgid "Enable generation of binaries which use functions from libgcc to perform floating point operations.  This is the default; use -mhard-float to override."
+msgstr ""
+
+#: config/or1k/or1k.opt:54
+#, no-c-format
+msgid "Enable generation of hardware floating point instructions. The default is -msoft-float."
+msgstr ""
+
+#: config/or1k/or1k.opt:59
+#, no-c-format
+msgid "When -mhard-float is selected, enables generation of double-precision floating point instructions.  By default functions from libgcc are used to perform double-precision floating point operations."
+msgstr ""
+
+#: config/or1k/or1k.opt:65
+#, no-c-format
+msgid "When -mhard-float is selected, enables generation of unordered floating point compare and set flag (lf.sfun*) instructions.  By default functions from libgcc are used to perform unordered floating point compare and set flag operations."
+msgstr ""
+
+#: config/or1k/or1k.opt:71
+#, no-c-format
+msgid "Specify the code model used for accessing memory addresses.  Specifying large enables generating binaries with large global offset tables.  By default the value is small."
+msgstr ""
+
+#: config/or1k/or1k.opt:77
+#, no-c-format
+msgid "Known code model types (for use with the -mcmodel= option):"
+msgstr ""
+
+#: config/or1k/or1k.opt:87
+#, no-c-format
+msgid "Enable generation of conditional move (l.cmov) instructions.  By default the equivalent will be generated using set and branch."
+msgstr ""
+
+#: config/or1k/or1k.opt:92
+#, no-c-format
+msgid "Enable generation of rotate right (l.ror) instructions.  By default functions from libgcc are used to perform rotate right operations."
+msgstr ""
+
+#: config/or1k/or1k.opt:97
+#, no-c-format
+msgid "Enable generation of rotate right with immediate (l.rori) instructions.  By default functions from libgcc are used to perform rotate right with immediate operations."
+msgstr ""
+
+#: config/or1k/or1k.opt:103
+#, no-c-format
+msgid "Enable generation of sign extension (l.ext*) instructions.  By default memory loads are used to perform sign extension."
+msgstr ""
+
+#: config/or1k/or1k.opt:108
+#, no-c-format
+msgid "Enable generation of compare and set flag with immediate (l.sf*i) instructions. By default extra instructions will be generated to store the immediate to a register first."
+msgstr ""
+
+#: config/or1k/or1k.opt:114
+#, no-c-format
+msgid "Enable generation of shift with immediate (l.srai, l.srli, l.slli) instructions. By default extra instructions will be generated to store the immediate to a register first."
+msgstr ""
+
+#: config/nios2/elf.opt:26
+#, no-c-format
+msgid "Link with a limited version of the C library."
+msgstr ""
+
+#: config/nios2/elf.opt:30
+#, no-c-format
+msgid "Name of system library to link against."
+msgstr ""
+
+#: config/nios2/elf.opt:34
+#, no-c-format
+msgid "Name of the startfile."
+msgstr ""
+
+#: config/nios2/elf.opt:38
+#, no-c-format
+msgid "Link with HAL BSP."
+msgstr ""
+
+#: config/nios2/nios2.opt:35
+#, no-c-format
+msgid "Enable DIV, DIVU."
+msgstr ""
+
+#: config/nios2/nios2.opt:39
+#, no-c-format
+msgid "Enable MUL instructions."
+msgstr ""
+
+#: config/nios2/nios2.opt:43
+#, no-c-format
+msgid "Enable MULX instructions, assume fast shifter."
+msgstr ""
+
+#: config/nios2/nios2.opt:47
+#, no-c-format
+msgid "Use table based fast divide (default at -O3)."
+msgstr ""
+
+#: config/nios2/nios2.opt:51
+#, no-c-format
+msgid "All memory accesses use I/O load/store instructions."
+msgstr ""
+
+#: config/nios2/nios2.opt:55
+#, no-c-format
+msgid "Volatile memory accesses use I/O load/store instructions."
+msgstr ""
+
+#: config/nios2/nios2.opt:59
+#, no-c-format
+msgid "Volatile memory accesses do not use I/O load/store instructions."
+msgstr ""
+
+#: config/nios2/nios2.opt:63
+#, no-c-format
+msgid "Enable/disable GP-relative addressing."
+msgstr ""
+
+#: config/nios2/nios2.opt:67
+#, no-c-format
+msgid "Valid options for GP-relative addressing (for -mgpopt):"
+msgstr ""
+
+#: config/nios2/nios2.opt:86
+#, no-c-format
+msgid "Equivalent to -mgpopt=local."
+msgstr ""
+
+#: config/nios2/nios2.opt:90
+#, no-c-format
+msgid "Equivalent to -mgpopt=none."
+msgstr ""
+
+#: config/nios2/nios2.opt:94 config/c6x/c6x.opt:30 config/mips/mips.opt:134
+#, no-c-format
+msgid "Use big-endian byte order."
+msgstr ""
+
+#: config/nios2/nios2.opt:98 config/c6x/c6x.opt:34 config/mips/mips.opt:138
+#, no-c-format
+msgid "Use little-endian byte order."
+msgstr ""
+
+#: config/nios2/nios2.opt:102
+#, no-c-format
+msgid "Floating point custom instruction configuration name."
+msgstr ""
+
+#: config/nios2/nios2.opt:106
+#, no-c-format
+msgid "Do not use the ftruncds custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:110
+#, no-c-format
+msgid "Integer id (N) of ftruncds custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:114
+#, no-c-format
+msgid "Do not use the fextsd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:118
+#, no-c-format
+msgid "Integer id (N) of fextsd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:122
+#, no-c-format
+msgid "Do not use the fixdu custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:126
+#, no-c-format
+msgid "Integer id (N) of fixdu custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:130
+#, no-c-format
+msgid "Do not use the fixdi custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:134
+#, no-c-format
+msgid "Integer id (N) of fixdi custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:138
+#, no-c-format
+msgid "Do not use the fixsu custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:142
+#, no-c-format
+msgid "Integer id (N) of fixsu custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:146
+#, no-c-format
+msgid "Do not use the fixsi custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:150
+#, no-c-format
+msgid "Integer id (N) of fixsi custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:154
+#, no-c-format
+msgid "Do not use the floatud custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:158
+#, no-c-format
+msgid "Integer id (N) of floatud custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:162
+#, no-c-format
+msgid "Do not use the floatid custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:166
+#, no-c-format
+msgid "Integer id (N) of floatid custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:170
+#, no-c-format
+msgid "Do not use the floatus custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:174
+#, no-c-format
+msgid "Integer id (N) of floatus custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:178
+#, no-c-format
+msgid "Do not use the floatis custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:182
+#, no-c-format
+msgid "Integer id (N) of floatis custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:186
+#, no-c-format
+msgid "Do not use the fcmpned custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:190
+#, no-c-format
+msgid "Integer id (N) of fcmpned custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:194
+#, no-c-format
+msgid "Do not use the fcmpeqd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:198
+#, no-c-format
+msgid "Integer id (N) of fcmpeqd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:202
+#, no-c-format
+msgid "Do not use the fcmpged custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:206
+#, no-c-format
+msgid "Integer id (N) of fcmpged custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:210
+#, no-c-format
+msgid "Do not use the fcmpgtd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:214
+#, no-c-format
+msgid "Integer id (N) of fcmpgtd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:218
+#, no-c-format
+msgid "Do not use the fcmpled custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:222
+#, no-c-format
+msgid "Integer id (N) of fcmpled custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:226
+#, no-c-format
+msgid "Do not use the fcmpltd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:230
+#, no-c-format
+msgid "Integer id (N) of fcmpltd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:234
+#, no-c-format
+msgid "Do not use the flogd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:238
+#, no-c-format
+msgid "Integer id (N) of flogd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:242
+#, no-c-format
+msgid "Do not use the fexpd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:246
+#, no-c-format
+msgid "Integer id (N) of fexpd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:250
+#, no-c-format
+msgid "Do not use the fatand custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:254
+#, no-c-format
+msgid "Integer id (N) of fatand custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:258
+#, no-c-format
+msgid "Do not use the ftand custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:262
+#, no-c-format
+msgid "Integer id (N) of ftand custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:266
+#, no-c-format
+msgid "Do not use the fsind custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:270
+#, no-c-format
+msgid "Integer id (N) of fsind custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:274
+#, no-c-format
+msgid "Do not use the fcosd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:278
+#, no-c-format
+msgid "Integer id (N) of fcosd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:282
+#, no-c-format
+msgid "Do not use the fsqrtd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:286
+#, no-c-format
+msgid "Integer id (N) of fsqrtd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:290
+#, no-c-format
+msgid "Do not use the fabsd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:294
+#, no-c-format
+msgid "Integer id (N) of fabsd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:298
+#, no-c-format
+msgid "Do not use the fnegd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:302
+#, no-c-format
+msgid "Integer id (N) of fnegd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:306
+#, no-c-format
+msgid "Do not use the fmaxd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:310
+#, no-c-format
+msgid "Integer id (N) of fmaxd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:314
+#, no-c-format
+msgid "Do not use the fmind custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:318
+#, no-c-format
+msgid "Integer id (N) of fmind custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:322
+#, no-c-format
+msgid "Do not use the fdivd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:326
+#, no-c-format
+msgid "Integer id (N) of fdivd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:330
+#, no-c-format
+msgid "Do not use the fmuld custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:334
+#, no-c-format
+msgid "Integer id (N) of fmuld custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:338
+#, no-c-format
+msgid "Do not use the fsubd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:342
+#, no-c-format
+msgid "Integer id (N) of fsubd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:346
+#, no-c-format
+msgid "Do not use the faddd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:350
+#, no-c-format
+msgid "Integer id (N) of faddd custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:354
+#, no-c-format
+msgid "Do not use the fcmpnes custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:358
+#, no-c-format
+msgid "Integer id (N) of fcmpnes custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:362
+#, no-c-format
+msgid "Do not use the fcmpeqs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:366
+#, no-c-format
+msgid "Integer id (N) of fcmpeqs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:370
+#, no-c-format
+msgid "Do not use the fcmpges custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:374
+#, no-c-format
+msgid "Integer id (N) of fcmpges custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:378
+#, no-c-format
+msgid "Do not use the fcmpgts custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:382
+#, no-c-format
+msgid "Integer id (N) of fcmpgts custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:386
+#, no-c-format
+msgid "Do not use the fcmples custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:390
+#, no-c-format
+msgid "Integer id (N) of fcmples custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:394
+#, no-c-format
+msgid "Do not use the fcmplts custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:398
+#, no-c-format
+msgid "Integer id (N) of fcmplts custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:402
+#, no-c-format
+msgid "Do not use the flogs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:406
+#, no-c-format
+msgid "Integer id (N) of flogs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:410
+#, no-c-format
+msgid "Do not use the fexps custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:414
+#, no-c-format
+msgid "Integer id (N) of fexps custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:418
+#, no-c-format
+msgid "Do not use the fatans custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:422
+#, no-c-format
+msgid "Integer id (N) of fatans custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:426
+#, no-c-format
+msgid "Do not use the ftans custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:430
+#, no-c-format
+msgid "Integer id (N) of ftans custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:434
+#, no-c-format
+msgid "Do not use the fsins custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:438
+#, no-c-format
+msgid "Integer id (N) of fsins custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:442
+#, no-c-format
+msgid "Do not use the fcoss custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:446
+#, no-c-format
+msgid "Integer id (N) of fcoss custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:450
+#, no-c-format
+msgid "Do not use the fsqrts custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:454
+#, no-c-format
+msgid "Integer id (N) of fsqrts custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:458
+#, no-c-format
+msgid "Do not use the fabss custom instr."
+msgstr ""
+
+#: config/nios2/nios2.opt:462
+#, no-c-format
+msgid "Integer id (N) of fabss custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:466
+#, no-c-format
+msgid "Do not use the fnegs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:470
+#, no-c-format
+msgid "Integer id (N) of fnegs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:474
+#, no-c-format
+msgid "Do not use the fmaxs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:478
+#, no-c-format
+msgid "Integer id (N) of fmaxs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:482
+#, no-c-format
+msgid "Do not use the fmins custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:486
+#, no-c-format
+msgid "Integer id (N) of fmins custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:490
+#, no-c-format
+msgid "Do not use the fdivs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:494
+#, no-c-format
+msgid "Integer id (N) of fdivs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:498
+#, no-c-format
+msgid "Do not use the fmuls custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:502
+#, no-c-format
+msgid "Integer id (N) of fmuls custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:506
+#, no-c-format
+msgid "Do not use the fsubs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:510
+#, no-c-format
+msgid "Integer id (N) of fsubs custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:514
+#, no-c-format
+msgid "Do not use the fadds custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:518
+#, no-c-format
+msgid "Integer id (N) of fadds custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:522
+#, no-c-format
+msgid "Do not use the frdy custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:526
+#, no-c-format
+msgid "Integer id (N) of frdy custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:530
+#, no-c-format
+msgid "Do not use the frdxhi custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:534
+#, no-c-format
+msgid "Integer id (N) of frdxhi custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:538
+#, no-c-format
+msgid "Do not use the frdxlo custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:542
+#, no-c-format
+msgid "Integer id (N) of frdxlo custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:546
+#, no-c-format
+msgid "Do not use the fwry custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:550
+#, no-c-format
+msgid "Integer id (N) of fwry custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:554
+#, no-c-format
+msgid "Do not use the fwrx custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:558
+#, no-c-format
+msgid "Integer id (N) of fwrx custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:562
+#, no-c-format
+msgid "Do not use the round custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:566
+#, no-c-format
+msgid "Integer id (N) of round custom instruction."
+msgstr ""
+
+#: config/nios2/nios2.opt:574
+#, no-c-format
+msgid "Valid Nios II ISA levels (for -march):"
+msgstr ""
+
+#: config/nios2/nios2.opt:584
+#, no-c-format
+msgid "Enable generation of R2 BMX instructions."
+msgstr ""
+
+#: config/nios2/nios2.opt:588
+#, no-c-format
+msgid "Enable generation of R2 CDX instructions."
+msgstr ""
+
+#: config/nios2/nios2.opt:592
+#, no-c-format
+msgid "Regular expression matching additional GP-addressible section names."
+msgstr ""
+
+#: config/nios2/nios2.opt:596
+#, no-c-format
+msgid "Regular expression matching section names for r0-relative addressing."
+msgstr ""
+
+#: config/rx/elf.opt:32
+#, no-c-format
+msgid "Generate assembler output that is compatible with the Renesas AS100 assembler.  This may restrict some of the compiler's capabilities.  The default is to generate GAS compatible syntax."
+msgstr ""
+
+#: config/rx/elf.opt:38 config/rx/rx.opt:99
+#, no-c-format
+msgid "Specifies the number of registers to reserve for interrupt handlers."
+msgstr ""
+
+#: config/rx/elf.opt:44 config/rx/rx.opt:105
+#, no-c-format
+msgid "Specifies whether interrupt functions should save and restore the accumulator register."
+msgstr ""
+
+#: config/rx/rx.opt:29
+#, no-c-format
+msgid "Store doubles in 64 bits."
+msgstr ""
+
+#: config/rx/rx.opt:33
+#, no-c-format
+msgid "Stores doubles in 32 bits.  This is the default."
+msgstr ""
+
+#: config/rx/rx.opt:37
+#, no-c-format
+msgid "Disable the use of RX FPU instructions."
+msgstr ""
+
+#: config/rx/rx.opt:44
+#, no-c-format
+msgid "Enable the use of RX FPU instructions.  This is the default."
+msgstr ""
+
+#: config/rx/rx.opt:50
+#, no-c-format
+msgid "Specify the target RX cpu type."
+msgstr ""
+
+#: config/rx/rx.opt:71
+#, no-c-format
+msgid "Data is stored in big-endian format."
+msgstr ""
+
+#: config/rx/rx.opt:75
+#, no-c-format
+msgid "Data is stored in little-endian format.  (Default)."
+msgstr ""
+
+#: config/rx/rx.opt:81
+#, no-c-format
+msgid "Maximum size of global and static variables which can be placed into the small data area."
+msgstr ""
+
+#: config/rx/rx.opt:87
+#, no-c-format
+msgid "Enable linker relaxation."
+msgstr ""
+
+#: config/rx/rx.opt:93
+#, no-c-format
+msgid "Maximum size in bytes of constant values allowed as operands."
+msgstr ""
+
+#: config/rx/rx.opt:111
+#, no-c-format
+msgid "Enables Position-Independent-Data (PID) mode."
+msgstr ""
+
+#: config/rx/rx.opt:117
+#, no-c-format
+msgid "Warn when multiple, different, fast interrupt handlers are in the compilation unit."
+msgstr ""
+
+#: config/rx/rx.opt:123
+#, no-c-format
+msgid "Enable the use of the old, broken, ABI where all stacked function arguments are aligned to 32-bits."
+msgstr ""
+
+#: config/rx/rx.opt:127
+#, no-c-format
+msgid "Enable the use the standard RX ABI where all stacked function arguments are naturally aligned.  This is the default."
+msgstr ""
+
+#: config/rx/rx.opt:133
+#, no-c-format
+msgid "Enable the use of the LRA register allocator."
+msgstr ""
+
+#: config/rx/rx.opt:139
+#, no-c-format
+msgid "Enables or disables the use of the SMOVF, SMOVB, SMOVU, SUNTIL, SWHILE and RMPA instructions.  Enabled by default."
+msgstr ""
+
+#: config/rx/rx.opt:145
+#, no-c-format
+msgid "Always use JSR, never BSR, for calls."
+msgstr ""
+
+#: config/visium/visium.opt:25
+#, no-c-format
+msgid "Link with libc.a and libdebug.a."
+msgstr ""
+
+#: config/visium/visium.opt:29
+#, no-c-format
+msgid "Link with libc.a and libsim.a."
+msgstr ""
+
+#: config/visium/visium.opt:33
+#, no-c-format
+msgid "Use hardware FP (default)."
+msgstr ""
+
+#: config/visium/visium.opt:45
+#, no-c-format
+msgid "Use features of and schedule code for given CPU."
+msgstr ""
+
+#: config/visium/visium.opt:65
+#, no-c-format
+msgid "Generate code for the supervisor mode (default)."
+msgstr ""
+
+#: config/visium/visium.opt:69
+#, no-c-format
+msgid "Generate code for the user mode."
+msgstr ""
+
+#: config/visium/visium.opt:73
+#, no-c-format
+msgid "Only retained for backward compatibility."
+msgstr ""
+
+#: config/sol2.opt:32
+#, no-c-format
+msgid "Clear hardware capabilities when linking."
+msgstr ""
+
+#: config/sol2.opt:36
+#, no-c-format
+msgid "Pass -z text to linker."
+msgstr ""
+
+#: config/moxie/moxie.opt:31
+#, no-c-format
+msgid "Enable MUL.X and UMUL.X instructions."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:40
+#, no-c-format
+msgid "Use software emulation for floating point (default)."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:44
+#, no-c-format
+msgid "Use hardware floating point instructions."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:48
+#, no-c-format
+msgid "Use table lookup optimization for small signed integer divisions."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:52
+#, no-c-format
+msgid "-mcpu=PROCESSOR\t\tUse features of and schedule code for given CPU."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:56
+#, no-c-format
+msgid "Don't optimize block moves, use memcpy."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:68
+#, no-c-format
+msgid "Use the soft multiply emulation (default)."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:72
+#, no-c-format
+msgid "Use reorder instructions (swap and byte reversed load/store) (default)."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:76
+#, no-c-format
+msgid "Use the software emulation for divides (default)."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:80
+#, no-c-format
+msgid "Use the hardware barrel shifter instead of emulation."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:84
+#, no-c-format
+msgid "Use pattern compare instructions."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:88
+#, no-c-format
+msgid "Check for stack overflow at runtime."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:92 config/iq2000/iq2000.opt:65
+#, no-c-format
+msgid "Use GP relative sdata/sbss sections."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:96
+#, no-c-format
+msgid "Clear the BSS to zero and place zero initialized in BSS."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:100
+#, no-c-format
+msgid "Use multiply high instructions for high part of 32x32 multiply."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:104
+#, no-c-format
+msgid "Use hardware floating point conversion instructions."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:108
+#, no-c-format
+msgid "Use hardware floating point square root instruction."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:112
+#, no-c-format
+msgid "Description for mxl-mode-executable."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:116
+#, no-c-format
+msgid "Description for mxl-mode-xmdstub."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:120
+#, no-c-format
+msgid "Description for mxl-mode-bootstrap."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:124
+#, no-c-format
+msgid "Description for mxl-mode-novectors."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:128
+#, no-c-format
+msgid "Use hardware prefetch instruction."
+msgstr ""
+
+#: config/microblaze/microblaze.opt:132
+#, no-c-format
+msgid "Data referenced by offset from start of text instead of GOT (with -fPIC/-fPIE)."
+msgstr ""
+
+#: config/vax/vax.opt:23 config/vax/vax.opt:27
+#, no-c-format
+msgid "Target DFLOAT double precision code."
+msgstr ""
+
+#: config/vax/vax.opt:31 config/vax/vax.opt:35
+#, no-c-format
+msgid "Generate GFLOAT double precision code."
+msgstr ""
+
+#: config/vax/vax.opt:39
+#, no-c-format
+msgid "Generate code for GNU assembler (gas)."
+msgstr ""
+
+#: config/vax/vax.opt:43
+#, no-c-format
+msgid "Generate code for UNIX assembler."
+msgstr ""
+
+#: config/vax/vax.opt:51
+#, no-c-format
+msgid "Use VAXC structure conventions."
+msgstr ""
+
+#: config/vax/vax.opt:55
+#, no-c-format
+msgid "Use new adddi3/subdi3 patterns."
+msgstr ""
+
+#: config/frv/frv.opt:30
+#, no-c-format
+msgid "Use 4 media accumulators."
+msgstr ""
+
+#: config/frv/frv.opt:34
+#, no-c-format
+msgid "Use 8 media accumulators."
+msgstr ""
+
+#: config/frv/frv.opt:38
+#, no-c-format
+msgid "Enable label alignment optimizations."
+msgstr ""
+
+#: config/frv/frv.opt:42
+#, no-c-format
+msgid "Dynamically allocate cc registers."
+msgstr ""
+
+#: config/frv/frv.opt:49
+#, no-c-format
+msgid "Set the cost of branches."
+msgstr ""
+
+#: config/frv/frv.opt:53
+#, no-c-format
+msgid "Enable conditional execution other than moves/scc."
+msgstr ""
+
+#: config/frv/frv.opt:57
+#, no-c-format
+msgid "Change the maximum length of conditionally-executed sequences."
+msgstr ""
+
+#: config/frv/frv.opt:61
+#, no-c-format
+msgid "Change the number of temporary registers that are available to conditionally-executed sequences."
+msgstr ""
+
+#: config/frv/frv.opt:65
+#, no-c-format
+msgid "Enable conditional moves."
+msgstr ""
+
+#: config/frv/frv.opt:69
+#, no-c-format
+msgid "Set the target CPU type."
+msgstr ""
+
+#: config/frv/frv.opt:73
+#, no-c-format
+msgid "Known FR-V CPUs (for use with the -mcpu= option):"
+msgstr ""
+
+#: config/frv/frv.opt:122
+#, no-c-format
+msgid "Use fp double instructions."
+msgstr ""
+
+#: config/frv/frv.opt:126
+#, no-c-format
+msgid "Change the ABI to allow double word insns."
+msgstr ""
+
+#: config/frv/frv.opt:134
+#, no-c-format
+msgid "Just use icc0/fcc0."
+msgstr ""
+
+#: config/frv/frv.opt:138
+#, no-c-format
+msgid "Only use 32 FPRs."
+msgstr ""
+
+#: config/frv/frv.opt:142
+#, no-c-format
+msgid "Use 64 FPRs."
+msgstr ""
+
+#: config/frv/frv.opt:146
+#, no-c-format
+msgid "Only use 32 GPRs."
+msgstr ""
+
+#: config/frv/frv.opt:150
+#, no-c-format
+msgid "Use 64 GPRs."
+msgstr ""
+
+#: config/frv/frv.opt:154
+#, no-c-format
+msgid "Enable use of GPREL for read-only data in FDPIC."
+msgstr ""
+
+#: config/frv/frv.opt:166
+#, no-c-format
+msgid "Enable PIC support for building libraries."
+msgstr ""
+
+#: config/frv/frv.opt:170
+#, no-c-format
+msgid "Follow the EABI linkage requirements."
+msgstr ""
+
+#: config/frv/frv.opt:174
+#, no-c-format
+msgid "Disallow direct calls to global functions."
+msgstr ""
+
+#: config/frv/frv.opt:178
+#, no-c-format
+msgid "Use media instructions."
+msgstr ""
+
+#: config/frv/frv.opt:182
+#, no-c-format
+msgid "Use multiply add/subtract instructions."
+msgstr ""
+
+#: config/frv/frv.opt:186
+#, no-c-format
+msgid "Enable optimizing &&/|| in conditional execution."
+msgstr ""
+
+#: config/frv/frv.opt:190
+#, no-c-format
+msgid "Enable nested conditional execution optimizations."
+msgstr ""
+
+#: config/frv/frv.opt:195
+#, no-c-format
+msgid "Do not mark ABI switches in e_flags."
+msgstr ""
+
+#: config/frv/frv.opt:199
+#, no-c-format
+msgid "Remove redundant membars."
+msgstr ""
+
+#: config/frv/frv.opt:203
+#, no-c-format
+msgid "Pack VLIW instructions."
+msgstr ""
+
+#: config/frv/frv.opt:207
+#, no-c-format
+msgid "Enable setting GPRs to the result of comparisons."
+msgstr ""
+
+#: config/frv/frv.opt:211
+#, no-c-format
+msgid "Change the amount of scheduler lookahead."
+msgstr ""
+
+#: config/frv/frv.opt:219
+#, no-c-format
+msgid "Assume a large TLS segment."
+msgstr ""
+
+#: config/frv/frv.opt:223
+#, no-c-format
+msgid "Do not assume a large TLS segment."
+msgstr ""
+
+#: config/frv/frv.opt:228
+#, no-c-format
+msgid "Cause gas to print tomcat statistics."
+msgstr ""
+
+#: config/frv/frv.opt:233
+#, no-c-format
+msgid "Link with the library-pic libraries."
+msgstr ""
+
+#: config/frv/frv.opt:237
+#, no-c-format
+msgid "Allow branches to be packed with other instructions."
+msgstr ""
+
+#: config/mn10300/mn10300.opt:30
+#, no-c-format
+msgid "Target the AM33 processor."
+msgstr ""
+
+#: config/mn10300/mn10300.opt:34
+#, no-c-format
+msgid "Target the AM33/2.0 processor."
+msgstr ""
+
+#: config/mn10300/mn10300.opt:38
+#, no-c-format
+msgid "Target the AM34 processor."
+msgstr ""
+
+#: config/mn10300/mn10300.opt:46
+#, no-c-format
+msgid "Work around hardware multiply bug."
+msgstr ""
+
+#: config/mn10300/mn10300.opt:55
+#, no-c-format
+msgid "Enable linker relaxations."
+msgstr ""
+
+#: config/mn10300/mn10300.opt:59
+#, no-c-format
+msgid "Return pointers in both a0 and d0."
+msgstr ""
+
+#: config/mn10300/mn10300.opt:63
+#, no-c-format
+msgid "Allow gcc to generate LIW instructions."
+msgstr ""
+
+#: config/mn10300/mn10300.opt:67
+#, no-c-format
+msgid "Allow gcc to generate the SETLB and Lcc instructions."
+msgstr ""
+
+#: config/nds32/nds32-elf.opt:3 config/nds32/nds32-linux.opt:3
+#, no-c-format
+msgid "Specify the address generation strategy for code model."
+msgstr ""
+
+#: config/nds32/nds32-elf.opt:7 config/nds32/nds32-linux.opt:7
+#, no-c-format
+msgid "Known cmodel types (for use with the -mcmodel= option):"
+msgstr ""
+
+#: config/nds32/nds32.opt:29 config/nds32/nds32.opt:89
+#, no-c-format
+msgid "Generate code in big-endian mode."
+msgstr ""
+
+#: config/nds32/nds32.opt:33 config/nds32/nds32.opt:93
+#, no-c-format
+msgid "Generate code in little-endian mode."
+msgstr ""
+
+#: config/nds32/nds32.opt:37
+#, no-c-format
+msgid "Force performing fp-as-gp optimization."
+msgstr ""
+
+#: config/nds32/nds32.opt:41
+#, no-c-format
+msgid "Forbid performing fp-as-gp optimization."
+msgstr ""
+
+#: config/nds32/nds32.opt:47
+#, no-c-format
+msgid "Specify which ABI type to generate code for: 2, 2fp+."
+msgstr ""
+
+#: config/nds32/nds32.opt:61
+#, no-c-format
+msgid "Specify use soft floating point ABI which mean alias to -mabi=2."
+msgstr ""
+
+#: config/nds32/nds32.opt:65
+#, no-c-format
+msgid "Specify use soft floating point ABI which mean alias to -mabi=2fp+."
+msgstr ""
+
+#: config/nds32/nds32.opt:71
+#, no-c-format
+msgid "Use reduced-set registers for register allocation."
+msgstr ""
+
+#: config/nds32/nds32.opt:75
+#, no-c-format
+msgid "Use full-set registers for register allocation."
+msgstr ""
+
+#: config/nds32/nds32.opt:81
+#, no-c-format
+msgid "Always align function entry, jump target and return address."
+msgstr ""
+
+#: config/nds32/nds32.opt:85
+#, no-c-format
+msgid "Align function entry to 4 byte."
+msgstr ""
+
+#: config/nds32/nds32.opt:97
+#, no-c-format
+msgid "Prevent $fp being allocated during register allocation so that compiler is able to force performing fp-as-gp optimization."
+msgstr ""
+
+#: config/nds32/nds32.opt:101
+#, no-c-format
+msgid "Forbid using $fp to access static and global variables.  This option strictly forbids fp-as-gp optimization regardless of '-mforce-fp-as-gp'."
+msgstr ""
+
+#: config/nds32/nds32.opt:105
+#, no-c-format
+msgid "Specify the address generation strategy for ICT call's code model."
+msgstr ""
+
+#: config/nds32/nds32.opt:109
+#, no-c-format
+msgid "Known cmodel types (for use with the -mict-model= option):"
+msgstr ""
+
+#: config/nds32/nds32.opt:119
+#, no-c-format
+msgid "Generate conditional move instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:123
+#, no-c-format
+msgid "Generate hardware abs instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:127
+#, no-c-format
+msgid "Generate performance extension instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:131
+#, no-c-format
+msgid "Generate performance extension version 2 instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:135
+#, no-c-format
+msgid "Generate string extension instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:139
+#, no-c-format
+msgid "Generate DSP extension instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:143
+#, no-c-format
+msgid "Generate v3 push25/pop25 instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:147
+#, no-c-format
+msgid "Generate 16-bit instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:151
+#, no-c-format
+msgid "Insert relax hint for linker to do relaxation."
+msgstr ""
+
+#: config/nds32/nds32.opt:155
+#, no-c-format
+msgid "Enable Virtual Hosting support."
+msgstr ""
+
+#: config/nds32/nds32.opt:159
+#, no-c-format
+msgid "Specify the size of each interrupt vector, which must be 4 or 16."
+msgstr ""
+
+#: config/nds32/nds32.opt:163
+#, no-c-format
+msgid "Specify the security level of c-isr for the whole file."
+msgstr ""
+
+#: config/nds32/nds32.opt:167
+#, no-c-format
+msgid "Specify the size of each cache block, which must be a power of 2 between 4 and 512."
+msgstr ""
+
+#: config/nds32/nds32.opt:175
+#, no-c-format
+msgid "Known arch types (for use with the -march= option):"
+msgstr ""
+
+#: config/nds32/nds32.opt:197
+#, no-c-format
+msgid "Specify the cpu for pipeline model."
+msgstr ""
+
+#: config/nds32/nds32.opt:201
+#, no-c-format
+msgid "Known cpu types (for use with the -mcpu= option):"
+msgstr ""
+
+#: config/nds32/nds32.opt:361
+#, no-c-format
+msgid "Specify a fpu configuration value from 0 to 7; 0-3 is as FPU spec says, and 4-7 is corresponding to 0-3."
+msgstr ""
+
+#: config/nds32/nds32.opt:365
+#, no-c-format
+msgid "Known floating-point number of registers (for use with the -mconfig-fpu= option):"
+msgstr ""
+
+#: config/nds32/nds32.opt:393
+#, no-c-format
+msgid "Specify configuration of instruction mul: fast1, fast2 or slow. The default is fast1."
+msgstr ""
+
+#: config/nds32/nds32.opt:412
+#, no-c-format
+msgid "Specify how many read/write ports for n9/n10 cores.  The value should be 3r2w or 2r1w."
+msgstr ""
+
+#: config/nds32/nds32.opt:425
+#, no-c-format
+msgid "Enable constructor/destructor feature."
+msgstr ""
+
+#: config/nds32/nds32.opt:429
+#, no-c-format
+msgid "Guide linker to relax instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:433
+#, no-c-format
+msgid "Generate floating-point multiply-accumulation instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:437
+#, no-c-format
+msgid "Generate single-precision floating-point instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:441
+#, no-c-format
+msgid "Generate double-precision floating-point instructions."
+msgstr ""
+
+#: config/nds32/nds32.opt:445
+#, no-c-format
+msgid "Force disable hardware loop, even use -mext-dsp."
+msgstr ""
+
+#: config/nds32/nds32.opt:449
+#, no-c-format
+msgid "Permit scheduling of a function's prologue and epilogue sequence."
+msgstr ""
+
+#: config/nds32/nds32.opt:453
+#, no-c-format
+msgid "Generate return instruction in naked function."
+msgstr ""
+
+#: config/nds32/nds32.opt:457
+#, no-c-format
+msgid "Always save $lp in the stack."
+msgstr ""
+
+#: config/nds32/nds32.opt:465
+#, no-c-format
+msgid "Allow use r15 for inline ASM."
+msgstr ""
+
+#: config/iq2000/iq2000.opt:31
+#, no-c-format
+msgid "Specify CPU for code generation purposes."
+msgstr ""
+
+#: config/iq2000/iq2000.opt:47
+#, no-c-format
+msgid "Specify CPU for scheduling purposes."
+msgstr ""
+
+#: config/iq2000/iq2000.opt:51
+#, no-c-format
+msgid "Known IQ2000 CPUs (for use with the -mcpu= option):"
+msgstr ""
+
+#: config/iq2000/iq2000.opt:61 config/mips/mips.opt:142
+#, no-c-format
+msgid "Use ROM instead of RAM."
+msgstr ""
+
+#: config/iq2000/iq2000.opt:70
+#, no-c-format
+msgid "No default crt0.o."
+msgstr ""
+
+#: config/iq2000/iq2000.opt:74 config/mips/mips.opt:446
+#, no-c-format
+msgid "Put uninitialized constants in ROM (needs -membedded-data)."
+msgstr ""
+
+#: config/csky/csky.opt:34
+#, no-c-format
+msgid "Specify the target architecture."
+msgstr ""
+
+#: config/csky/csky.opt:38
+#, no-c-format
+msgid "Specify the target processor."
+msgstr ""
+
+#: config/csky/csky.opt:90
+#, no-c-format
+msgid "Specify the target floating-point hardware/format."
+msgstr ""
+
+#: config/csky/csky.opt:94
+#, no-c-format
+msgid "Generate C-SKY FPU double float instructions (default for hard float)."
+msgstr ""
+
+#: config/csky/csky.opt:98
+#, no-c-format
+msgid "Generate frecipd/fsqrtd/fdivd instructions (default for hard float)."
+msgstr ""
+
+#: config/csky/csky.opt:106
+#, no-c-format
+msgid "Enable the extended LRW instruction (default for CK801)."
+msgstr ""
+
+#: config/csky/csky.opt:110
+#, no-c-format
+msgid "Enable interrupt stack instructions."
+msgstr ""
+
+#: config/csky/csky.opt:114
+#, no-c-format
+msgid "Enable multiprocessor instructions."
+msgstr ""
+
+#: config/csky/csky.opt:118
+#, no-c-format
+msgid "Enable coprocessor instructions."
+msgstr ""
+
+#: config/csky/csky.opt:122
+#, no-c-format
+msgid "Enable cache prefetch instructions."
+msgstr ""
+
+#: config/csky/csky.opt:126
+#, no-c-format
+msgid "Enable C-SKY SECURE instructions."
+msgstr ""
+
+#: config/csky/csky.opt:133
+#, no-c-format
+msgid "Enable C-SKY TRUST instructions."
+msgstr ""
+
+#: config/csky/csky.opt:137
+#, no-c-format
+msgid "Enable C-SKY DSP instructions."
+msgstr ""
+
+#: config/csky/csky.opt:141
+#, no-c-format
+msgid "Enable C-SKY Enhanced DSP instructions."
+msgstr ""
+
+#: config/csky/csky.opt:145
+#, no-c-format
+msgid "Enable C-SKY Vector DSP instructions."
+msgstr ""
+
+#: config/csky/csky.opt:151
+#, no-c-format
+msgid "Generate divide instructions."
+msgstr ""
+
+#: config/csky/csky.opt:155
+#, no-c-format
+msgid "Generate code for Smart Mode."
+msgstr ""
+
+#: config/csky/csky.opt:159
+#, no-c-format
+msgid "Enable use of R16-R31 (default)."
+msgstr ""
+
+#: config/csky/csky.opt:163
+#, no-c-format
+msgid "Generate code using global anchor symbol addresses."
+msgstr ""
+
+#: config/csky/csky.opt:167
+#, no-c-format
+msgid "Generate push/pop instructions (default)."
+msgstr ""
+
+#: config/csky/csky.opt:171
+#, no-c-format
+msgid "Generate stm/ldm instructions (default)."
+msgstr ""
+
+#: config/csky/csky.opt:178
+#, no-c-format
+msgid "Generate constant pools in the compiler instead of assembler."
+msgstr ""
+
+#: config/csky/csky.opt:182
+#, no-c-format
+msgid "Emit .stack_size directives."
+msgstr ""
+
+#: config/csky/csky.opt:186
+#, no-c-format
+msgid "Generate code for C-SKY compiler runtime instead of libgcc."
+msgstr ""
+
+#: config/csky/csky.opt:190
+#, no-c-format
+msgid "Set the branch costs to roughly the specified number of instructions."
+msgstr ""
+
+#: config/csky/csky.opt:194
+#, no-c-format
+msgid "Permit scheduling of function prologue and epilogue sequences."
+msgstr ""
+
+#: config/csky/csky_tables.opt:24
+#, no-c-format
+msgid "Known CSKY CPUs (for use with the -mcpu= options):"
+msgstr ""
+
+#: config/csky/csky_tables.opt:205
+#, no-c-format
+msgid "Known CSKY architectures (for use with the -march= option):"
+msgstr ""
+
+#: config/csky/csky_tables.opt:227
+#, no-c-format
+msgid "Known CSKY FPUs (for use with the -mfpu= option):"
+msgstr ""
+
+#: config/c6x/c6x-tables.opt:24
+#, no-c-format
+msgid "Known C6X ISAs (for use with the -march= option):"
+msgstr ""
+
+#: config/c6x/c6x.opt:42
+#, no-c-format
+msgid "Select method for sdata handling."
+msgstr ""
+
+#: config/c6x/c6x.opt:46
+#, no-c-format
+msgid "Valid arguments for the -msdata= option:"
+msgstr ""
+
+#: config/c6x/c6x.opt:59
+#, no-c-format
+msgid "Compile for the DSBT shared library ABI."
+msgstr ""
+
+#: config/cris/cris.opt:45
+#, no-c-format
+msgid "Work around bug in multiplication instruction."
+msgstr ""
+
+#: config/cris/cris.opt:51
+#, no-c-format
+msgid "Compile for ETRAX 4 (CRIS v3)."
+msgstr ""
+
+#: config/cris/cris.opt:56
+#, no-c-format
+msgid "Compile for ETRAX 100 (CRIS v8)."
+msgstr ""
+
+#: config/cris/cris.opt:64
+#, no-c-format
+msgid "Emit verbose debug information in assembly code."
+msgstr ""
+
+#: config/cris/cris.opt:71
+#, no-c-format
+msgid "Do not use condition codes from normal instructions."
+msgstr ""
+
+#: config/cris/cris.opt:80
+#, no-c-format
+msgid "Do not emit addressing modes with side-effect assignment."
+msgstr ""
+
+#: config/cris/cris.opt:89
+#, no-c-format
+msgid "Do not tune stack alignment."
+msgstr ""
+
+#: config/cris/cris.opt:98
+#, no-c-format
+msgid "Do not tune writable data alignment."
+msgstr ""
+
+#: config/cris/cris.opt:107
+#, no-c-format
+msgid "Do not tune code and read-only data alignment."
+msgstr ""
+
+#: config/cris/cris.opt:116
+#, no-c-format
+msgid "Align code and data to 32 bits."
+msgstr ""
+
+#: config/cris/cris.opt:133
+#, no-c-format
+msgid "Don't align items in code or data."
+msgstr ""
+
+#: config/cris/cris.opt:142
+#, no-c-format
+msgid "Do not emit function prologue or epilogue."
+msgstr ""
+
+#: config/cris/cris.opt:149
+#, no-c-format
+msgid "Use the most feature-enabling options allowed by other options."
+msgstr ""
+
+#: config/cris/cris.opt:158
+#, no-c-format
+msgid "Override -mbest-lib-options."
+msgstr ""
+
+#: config/cris/cris.opt:165
+#, no-c-format
+msgid "-march=ARCH\tGenerate code for the specified chip or CPU version."
+msgstr ""
+
+#: config/cris/cris.opt:169
+#, no-c-format
+msgid "-mtune=ARCH\tTune alignment for the specified chip or CPU version."
+msgstr ""
+
+#: config/cris/cris.opt:173
+#, no-c-format
+msgid "-mmax-stackframe=SIZE\tWarn when a stackframe is larger than the specified size."
+msgstr ""
+
+#: config/cris/cris.opt:180
+#, no-c-format
+msgid "Emit traps as \"break 8\", default for CRIS v3 and up.  If disabled, calls to abort() are used."
+msgstr ""
+
+#: config/cris/cris.opt:184
+#, no-c-format
+msgid "Emit checks causing \"break 8\" instructions to execute when applying atomic builtins on misaligned memory."
+msgstr ""
+
+#: config/cris/cris.opt:188
+#, no-c-format
+msgid "Handle atomic builtins that may be applied to unaligned data by calling library functions. Overrides -mtrap-unaligned-atomic."
+msgstr ""
+
+#: config/sh/superh.opt:6
+#, no-c-format
+msgid "Board name [and memory region]."
+msgstr ""
+
+#: config/sh/superh.opt:10
+#, no-c-format
+msgid "Runtime name."
+msgstr ""
+
+#: config/sh/sh.opt:42
+#, no-c-format
+msgid "Generate SH1 code."
+msgstr ""
+
+#: config/sh/sh.opt:46
+#, no-c-format
+msgid "Generate SH2 code."
+msgstr ""
+
+#: config/sh/sh.opt:50
+#, no-c-format
+msgid "Generate default double-precision SH2a-FPU code."
+msgstr ""
+
+#: config/sh/sh.opt:54
+#, no-c-format
+msgid "Generate SH2a FPU-less code."
+msgstr ""
+
+#: config/sh/sh.opt:58
+#, no-c-format
+msgid "Generate default single-precision SH2a-FPU code."
+msgstr ""
+
+#: config/sh/sh.opt:62
+#, no-c-format
+msgid "Generate only single-precision SH2a-FPU code."
+msgstr ""
+
+#: config/sh/sh.opt:66
+#, no-c-format
+msgid "Generate SH2e code."
+msgstr ""
+
+#: config/sh/sh.opt:70
+#, no-c-format
+msgid "Generate SH3 code."
+msgstr ""
+
+#: config/sh/sh.opt:74
+#, no-c-format
+msgid "Generate SH3e code."
+msgstr ""
+
+#: config/sh/sh.opt:78
+#, no-c-format
+msgid "Generate SH4 code."
+msgstr ""
+
+#: config/sh/sh.opt:82
+#, no-c-format
+msgid "Generate SH4-100 code."
+msgstr ""
+
+#: config/sh/sh.opt:86
+#, no-c-format
+msgid "Generate SH4-200 code."
+msgstr ""
+
+#: config/sh/sh.opt:92
+#, no-c-format
+msgid "Generate SH4-300 code."
+msgstr ""
+
+#: config/sh/sh.opt:96
+#, no-c-format
+msgid "Generate SH4 FPU-less code."
+msgstr ""
+
+#: config/sh/sh.opt:100
+#, no-c-format
+msgid "Generate SH4-100 FPU-less code."
+msgstr ""
+
+#: config/sh/sh.opt:104
+#, no-c-format
+msgid "Generate SH4-200 FPU-less code."
+msgstr ""
+
+#: config/sh/sh.opt:108
+#, no-c-format
+msgid "Generate SH4-300 FPU-less code."
+msgstr ""
+
+#: config/sh/sh.opt:112
+#, no-c-format
+msgid "Generate code for SH4 340 series (MMU/FPU-less)."
+msgstr ""
+
+#: config/sh/sh.opt:117
+#, no-c-format
+msgid "Generate code for SH4 400 series (MMU/FPU-less)."
+msgstr ""
+
+#: config/sh/sh.opt:122
+#, no-c-format
+msgid "Generate code for SH4 500 series (FPU-less)."
+msgstr ""
+
+#: config/sh/sh.opt:127
+#, no-c-format
+msgid "Generate default single-precision SH4 code."
+msgstr ""
+
+#: config/sh/sh.opt:131
+#, no-c-format
+msgid "Generate default single-precision SH4-100 code."
+msgstr ""
+
+#: config/sh/sh.opt:135
+#, no-c-format
+msgid "Generate default single-precision SH4-200 code."
+msgstr ""
+
+#: config/sh/sh.opt:139
+#, no-c-format
+msgid "Generate default single-precision SH4-300 code."
+msgstr ""
+
+#: config/sh/sh.opt:143
+#, no-c-format
+msgid "Generate only single-precision SH4 code."
+msgstr ""
+
+#: config/sh/sh.opt:147
+#, no-c-format
+msgid "Generate only single-precision SH4-100 code."
+msgstr ""
+
+#: config/sh/sh.opt:151
+#, no-c-format
+msgid "Generate only single-precision SH4-200 code."
+msgstr ""
+
+#: config/sh/sh.opt:155
+#, no-c-format
+msgid "Generate only single-precision SH4-300 code."
+msgstr ""
+
+#: config/sh/sh.opt:159
+#, no-c-format
+msgid "Generate SH4a code."
+msgstr ""
+
+#: config/sh/sh.opt:163
+#, no-c-format
+msgid "Generate SH4a FPU-less code."
+msgstr ""
+
+#: config/sh/sh.opt:167
+#, no-c-format
+msgid "Generate default single-precision SH4a code."
+msgstr ""
+
+#: config/sh/sh.opt:171
+#, no-c-format
+msgid "Generate only single-precision SH4a code."
+msgstr ""
+
+#: config/sh/sh.opt:175
+#, no-c-format
+msgid "Generate SH4al-dsp code."
+msgstr ""
+
+#: config/sh/sh.opt:183
+#, no-c-format
+msgid "Generate code in big endian mode."
+msgstr ""
+
+#: config/sh/sh.opt:187
+#, no-c-format
+msgid "Generate 32-bit offsets in switch tables."
+msgstr ""
+
+#: config/sh/sh.opt:191
+#, no-c-format
+msgid "Generate bit instructions."
+msgstr ""
+
+#: config/sh/sh.opt:199
+#, no-c-format
+msgid "Assume that zero displacement conditional branches are fast."
+msgstr ""
+
+#: config/sh/sh.opt:203
+#, no-c-format
+msgid "Force the usage of delay slots for conditional branches."
+msgstr ""
+
+#: config/sh/sh.opt:207
+#, no-c-format
+msgid "Align doubles at 64-bit boundaries."
+msgstr ""
+
+#: config/sh/sh.opt:211
+#, no-c-format
+msgid "Division strategy, one of: call-div1, call-fp, call-table."
+msgstr ""
+
+#: config/sh/sh.opt:215
+#, no-c-format
+msgid "Specify name for 32 bit signed division function."
+msgstr ""
+
+#: config/sh/sh.opt:219
+#, no-c-format
+msgid "Generate ELF FDPIC code."
+msgstr ""
+
+#: config/sh/sh.opt:223
+#, no-c-format
+msgid "Enable the use of 64-bit floating point registers in fmov instructions.  See -mdalign if 64-bit alignment is required."
+msgstr ""
+
+#: config/sh/sh.opt:231 config/sh/sh.opt:269
+#, no-c-format
+msgid "Follow Renesas (formerly Hitachi) / SuperH calling conventions."
+msgstr ""
+
+#: config/sh/sh.opt:235
+#, no-c-format
+msgid "Increase the IEEE compliance for floating-point comparisons."
+msgstr ""
+
+#: config/sh/sh.opt:239
+#, no-c-format
+msgid "Inline code to invalidate instruction cache entries after setting up nested function trampolines."
+msgstr ""
+
+#: config/sh/sh.opt:243 config/arc/arc.opt:242
+#, no-c-format
+msgid "Annotate assembler instructions with estimated addresses."
+msgstr ""
+
+#: config/sh/sh.opt:247
+#, no-c-format
+msgid "Generate code in little endian mode."
+msgstr ""
+
+#: config/sh/sh.opt:251
+#, no-c-format
+msgid "Mark MAC register as call-clobbered."
+msgstr ""
+
+#: config/sh/sh.opt:257
+#, no-c-format
+msgid "Make structs a multiple of 4 bytes (warning: ABI altered)."
+msgstr ""
+
+#: config/sh/sh.opt:261
+#, no-c-format
+msgid "Emit function-calls using global offset table when generating PIC."
+msgstr ""
+
+#: config/sh/sh.opt:265
+#, no-c-format
+msgid "Shorten address references during linking."
+msgstr ""
+
+#: config/sh/sh.opt:273
+#, no-c-format
+msgid "Specify the model for atomic operations."
+msgstr ""
+
+#: config/sh/sh.opt:277
+#, no-c-format
+msgid "Use tas.b instruction for __atomic_test_and_set."
+msgstr ""
+
+#: config/sh/sh.opt:281
+#, no-c-format
+msgid "Cost to assume for a multiply insn."
+msgstr ""
+
+#: config/sh/sh.opt:285
+#, no-c-format
+msgid "Don't generate privileged-mode only code; implies -mno-inline-ic_invalidate if the inline code would not work in user mode."
+msgstr ""
+
+#: config/sh/sh.opt:291
+#, no-c-format
+msgid "Pretend a branch-around-a-move is a conditional move."
+msgstr ""
+
+#: config/sh/sh.opt:295
+#, no-c-format
+msgid "Enable the use of the fsca instruction."
+msgstr ""
+
+#: config/sh/sh.opt:299
+#, no-c-format
+msgid "Enable the use of the fsrra instruction."
+msgstr ""
+
+#: config/sh/sh.opt:303
+#, no-c-format
+msgid "Use LRA instead of reload (transitional)."
+msgstr ""
+
+#: config/gcn/gcn.opt:26
+#, no-c-format
+msgid "GCN GPU type to use:"
+msgstr ""
+
+#: config/gcn/gcn.opt:60 config/gcn/gcn.opt:64
+#, no-c-format
+msgid "Specify the name of the target GPU."
+msgstr ""
+
+#: config/gcn/gcn.opt:68
+#, no-c-format
+msgid "Generate code for a 32-bit ABI."
+msgstr ""
+
+#: config/gcn/gcn.opt:72
+#, no-c-format
+msgid "Generate code for a 64-bit ABI."
+msgstr ""
+
+#: config/gcn/gcn.opt:76
+#, no-c-format
+msgid "Enable OpenMP GPU offloading."
+msgstr ""
+
+#: config/gcn/gcn.opt:87
+#, no-c-format
+msgid "Obsolete; use GCN_STACK_SIZE at runtime."
+msgstr ""
+
+#: config/gcn/gcn.opt:93
+#, no-c-format
+msgid "Amount of local data-share (LDS) memory to reserve for gang-private variables."
+msgstr ""
+
+#: config/gcn/gcn.opt:97
+#, no-c-format
+msgid "Warn about invalid OpenACC dimensions."
+msgstr ""
+
+#: config/gcn/gcn.opt:101
+#, no-c-format
+msgid "SRAM-ECC and XNACK modes:"
+msgstr ""
+
+#: config/gcn/gcn.opt:117
+#, no-c-format
+msgid "Compile for devices requiring XNACK enabled. Default \"any\" if USM is supported."
+msgstr ""
+
+#: config/gcn/gcn.opt:121
+#, no-c-format
+msgid "Compile for devices with the SRAM ECC feature enabled, or not. Default \"any\"."
+msgstr ""
+
+#: config/gcn/gcn.opt:125
+#, no-c-format
+msgid "--param=gcn-preferred-vectorization-factor=[default,32,64]\tPreferred vectorization factor."
+msgstr ""
+
+#: config/fr30/fr30.opt:23
+#, no-c-format
+msgid "Assume small address space."
+msgstr ""
+
+#: config/bpf/bpf.opt:28
+#, no-c-format
+msgid "Generate xBPF."
+msgstr ""
+
+#: config/bpf/bpf.opt:34
+#, no-c-format
+msgid "Generate big-endian eBPF."
+msgstr ""
+
+#: config/bpf/bpf.opt:38
+#, no-c-format
+msgid "Generate little-endian eBPF."
+msgstr ""
+
+#: config/bpf/bpf.opt:42
+#, no-c-format
+msgid "Set a hard limit for the size of each stack frame, in bytes."
+msgstr ""
+
+#: config/bpf/bpf.opt:46
+#, no-c-format
+msgid "Generate all necessary information for BPF Compile Once - Run Everywhere."
+msgstr ""
+
+#: config/bpf/bpf.opt:52
+#, no-c-format
+msgid "Enable extra conditional-branch instructions j(s)lt and j(s)le."
+msgstr ""
+
+#: config/bpf/bpf.opt:56
+#, no-c-format
+msgid "Enable 32-bit ALU instructions."
+msgstr ""
+
+#: config/bpf/bpf.opt:60
+#, no-c-format
+msgid "Enable 32-bit jump instructions."
+msgstr ""
+
+#: config/bpf/bpf.opt:64
+#, no-c-format
+msgid "Enable general atomic operations introduced in v3 ISA."
+msgstr ""
+
+#: config/bpf/bpf.opt:68
+#, no-c-format
+msgid "Enable byte swap instructions."
+msgstr ""
+
+#: config/bpf/bpf.opt:72
+#, no-c-format
+msgid "Enable signed division and modulus instructions."
+msgstr ""
+
+#: config/bpf/bpf.opt:76
+#, no-c-format
+msgid "Enable signed move and memory load instructions."
+msgstr ""
+
+#: config/bpf/bpf.opt:80
+#, no-c-format
+msgid "Select the eBPF ISA version to target in code generation."
+msgstr ""
+
+#: config/bpf/bpf.opt:84
+#, no-c-format
+msgid "Valid ISA versions (for use with the -mcpu= option)"
+msgstr ""
+
+#: config/bpf/bpf.opt:104
+#, no-c-format
+msgid "Known assembler dialects (for use with the -masm= option)"
+msgstr ""
+
+#: config/bpf/bpf.opt:114
+#, no-c-format
+msgid "-minline-memops-threshold=<number> Maximum size of memset/memmove/memcpy to inline, larger sizes will use a library call."
+msgstr ""
+
+#: config/mips/mips.opt:32
+#, no-c-format
+msgid "-mabi=ABI\tGenerate code that conforms to the given ABI."
+msgstr ""
+
+#: config/mips/mips.opt:36
+#, no-c-format
+msgid "Known MIPS ABIs (for use with the -mabi= option):"
+msgstr ""
+
+#: config/mips/mips.opt:55
+#, no-c-format
+msgid "Generate code that can be used in SVR4-style dynamic objects."
+msgstr ""
+
+#: config/mips/mips.opt:59
+#, no-c-format
+msgid "Use PMC-style 'mad' instructions."
+msgstr ""
+
+#: config/mips/mips.opt:63
+#, no-c-format
+msgid "Use integer madd/msub instructions."
+msgstr ""
+
+#: config/mips/mips.opt:67
+#, no-c-format
+msgid "-march=ISA\tGenerate code for the given ISA."
+msgstr ""
+
+#: config/mips/mips.opt:75
+#, no-c-format
+msgid "Use Branch Likely instructions, overriding the architecture default."
+msgstr ""
+
+#: config/mips/mips.opt:79
+#, no-c-format
+msgid "Switch on/off MIPS16 ASE on alternating functions for compiler testing."
+msgstr ""
+
+#: config/mips/mips.opt:87
+#, no-c-format
+msgid "-mcode-readable=SETTING\tSpecify when instructions are allowed to access code."
+msgstr ""
+
+#: config/mips/mips.opt:91
+#, no-c-format
+msgid "Valid arguments to -mcode-readable=:"
+msgstr ""
+
+#: config/mips/mips.opt:104
+#, no-c-format
+msgid "Use branch-and-break sequences to check for integer divide by zero."
+msgstr ""
+
+#: config/mips/mips.opt:108
+#, no-c-format
+msgid "Use trap instructions to check for integer divide by zero."
+msgstr ""
+
+#: config/mips/mips.opt:112
+#, no-c-format
+msgid "Allow the use of MDMX instructions."
+msgstr ""
+
+#: config/mips/mips.opt:120
+#, no-c-format
+msgid "Use MIPS-DSP instructions."
+msgstr ""
+
+#: config/mips/mips.opt:124
+#, no-c-format
+msgid "Use MIPS-DSP REV 2 instructions."
+msgstr ""
+
+#: config/mips/mips.opt:146
+#, no-c-format
+msgid "Use Enhanced Virtual Addressing instructions."
+msgstr ""
+
+#: config/mips/mips.opt:171
+#, no-c-format
+msgid "Don't use %reloc() assembly operators (for backward compatibility)."
+msgstr ""
+
+#: config/mips/mips.opt:175
+#, no-c-format
+msgid "Use -G for data that is not defined by the current object."
+msgstr ""
+
+#: config/mips/mips.opt:179
+#, no-c-format
+msgid "Work around certain 24K errata."
+msgstr ""
+
+#: config/mips/mips.opt:183
+#, no-c-format
+msgid "Work around certain R4000 errata."
+msgstr ""
+
+#: config/mips/mips.opt:187
+#, no-c-format
+msgid "Work around certain R4400 errata."
+msgstr ""
+
+#: config/mips/mips.opt:191
+#, no-c-format
+msgid "Work around the R5900 short loop erratum."
+msgstr ""
+
+#: config/mips/mips.opt:195
+#, no-c-format
+msgid "Work around certain RM7000 errata."
+msgstr ""
+
+#: config/mips/mips.opt:199
+#, no-c-format
+msgid "Work around certain R10000 errata."
+msgstr ""
+
+#: config/mips/mips.opt:203
+#, no-c-format
+msgid "Work around errata for early SB-1 revision 2 cores."
+msgstr ""
+
+#: config/mips/mips.opt:207
+#, no-c-format
+msgid "Work around certain VR4120 errata."
+msgstr ""
+
+#: config/mips/mips.opt:211
+#, no-c-format
+msgid "Work around VR4130 mflo/mfhi errata."
+msgstr ""
+
+#: config/mips/mips.opt:215
+#, no-c-format
+msgid "Work around an early 4300 hardware bug."
+msgstr ""
+
+#: config/mips/mips.opt:219
+#, no-c-format
+msgid "FP exceptions are enabled."
+msgstr ""
+
+#: config/mips/mips.opt:223
+#, no-c-format
+msgid "Use 32-bit floating-point registers."
+msgstr ""
+
+#: config/mips/mips.opt:227
+#, no-c-format
+msgid "Conform to the o32 FPXX ABI."
+msgstr ""
+
+#: config/mips/mips.opt:231
+#, no-c-format
+msgid "Use 64-bit floating-point registers."
+msgstr ""
+
+#: config/mips/mips.opt:235
+#, no-c-format
+msgid "-mflush-func=FUNC\tUse FUNC to flush the cache before calling stack trampolines."
+msgstr ""
+
+#: config/mips/mips.opt:239
+#, no-c-format
+msgid "-mabs=MODE\tSelect the IEEE 754 ABS/NEG instruction execution mode."
+msgstr ""
+
+#: config/mips/mips.opt:243
+#, no-c-format
+msgid "-mnan=ENCODING\tSelect the IEEE 754 NaN data encoding."
+msgstr ""
+
+#: config/mips/mips.opt:247
+#, no-c-format
+msgid "Known MIPS IEEE 754 settings (for use with the -mabs= and -mnan= options):"
+msgstr ""
+
+#: config/mips/mips.opt:257
+#, no-c-format
+msgid "Use 32-bit general registers."
+msgstr ""
+
+#: config/mips/mips.opt:261
+#, no-c-format
+msgid "Use 64-bit general registers."
+msgstr ""
+
+#: config/mips/mips.opt:265
+#, no-c-format
+msgid "Use GP-relative addressing to access small data."
+msgstr ""
+
+#: config/mips/mips.opt:269
+#, no-c-format
+msgid "When generating -mabicalls code, allow executables to use PLTs and copy relocations."
+msgstr ""
+
+#: config/mips/mips.opt:273
+#, no-c-format
+msgid "Allow the use of hardware floating-point ABI and instructions."
+msgstr ""
+
+#: config/mips/mips.opt:277
+#, no-c-format
+msgid "Generate code that is link-compatible with MIPS16 and microMIPS code."
+msgstr ""
+
+#: config/mips/mips.opt:281
+#, no-c-format
+msgid "An alias for minterlink-compressed provided for backward-compatibility."
+msgstr ""
+
+#: config/mips/mips.opt:285
+#, no-c-format
+msgid "-mipsN\tGenerate code for ISA level N."
+msgstr ""
+
+#: config/mips/mips.opt:289
+#, no-c-format
+msgid "Generate MIPS16 code."
+msgstr ""
+
+#: config/mips/mips.opt:293
+#, no-c-format
+msgid "Use MIPS-3D instructions."
+msgstr ""
+
+#: config/mips/mips.opt:297
+#, no-c-format
+msgid "Use ll, sc and sync instructions."
+msgstr ""
+
+#: config/mips/mips.opt:301
+#, no-c-format
+msgid "Use -G for object-local data."
+msgstr ""
+
+#: config/mips/mips.opt:305
+#, no-c-format
+msgid "Use indirect calls."
+msgstr ""
+
+#: config/mips/mips.opt:309
+#, no-c-format
+msgid "Use a 32-bit long type."
+msgstr ""
+
+#: config/mips/mips.opt:313
+#, no-c-format
+msgid "Use a 64-bit long type."
+msgstr ""
+
+#: config/mips/mips.opt:317
+#, no-c-format
+msgid "Pass the address of the ra save location to _mcount in $12."
+msgstr ""
+
+#: config/mips/mips.opt:321
+#, no-c-format
+msgid "Don't optimize block moves."
+msgstr ""
+
+#: config/mips/mips.opt:325
+#, no-c-format
+msgid "Use microMIPS instructions."
+msgstr ""
+
+#: config/mips/mips.opt:329
+#, no-c-format
+msgid "Use MIPS MSA Extension instructions."
+msgstr ""
+
+#: config/mips/mips.opt:333
+#, no-c-format
+msgid "Allow the use of MT instructions."
+msgstr ""
+
+#: config/mips/mips.opt:337
+#, no-c-format
+msgid "Prevent the use of all floating-point operations."
+msgstr ""
+
+#: config/mips/mips.opt:341
+#, no-c-format
+msgid "Use MCU instructions."
+msgstr ""
+
+#: config/mips/mips.opt:345
+#, no-c-format
+msgid "Do not use a cache-flushing function before calling stack trampolines."
+msgstr ""
+
+#: config/mips/mips.opt:349
+#, no-c-format
+msgid "Do not use MDMX instructions."
+msgstr ""
+
+#: config/mips/mips.opt:353
+#, no-c-format
+msgid "Generate normal-mode code."
+msgstr ""
+
+#: config/mips/mips.opt:357
+#, no-c-format
+msgid "Do not use MIPS-3D instructions."
+msgstr ""
+
+#: config/mips/mips.opt:361
+#, no-c-format
+msgid "Use paired-single floating-point instructions."
+msgstr ""
+
+#: config/mips/mips.opt:365
+#, no-c-format
+msgid "-mr10k-cache-barrier=SETTING\tSpecify when r10k cache barriers should be inserted."
+msgstr ""
+
+#: config/mips/mips.opt:369
+#, no-c-format
+msgid "Valid arguments to -mr10k-cache-barrier=:"
+msgstr ""
+
+#: config/mips/mips.opt:382
+#, no-c-format
+msgid "Try to allow the linker to turn PIC calls into direct calls."
+msgstr ""
+
+#: config/mips/mips.opt:386
+#, no-c-format
+msgid "When generating -mabicalls code, make the code suitable for use in shared libraries."
+msgstr ""
+
+#: config/mips/mips.opt:394
+#, no-c-format
+msgid "Use SmartMIPS instructions."
+msgstr ""
+
+#: config/mips/mips.opt:402
+#, no-c-format
+msgid "Optimize lui/addiu address loads."
+msgstr ""
+
+#: config/mips/mips.opt:406
+#, no-c-format
+msgid "Enable the MIPS16e V2 instructions."
+msgstr ""
+
+#: config/mips/mips.opt:410
+#, no-c-format
+msgid "Assume all symbols have 32-bit values."
+msgstr ""
+
+#: config/mips/mips.opt:414
+#, no-c-format
+msgid "Use synci instruction to invalidate i-cache."
+msgstr ""
+
+#: config/mips/mips.opt:422
+#, no-c-format
+msgid "Use lwxc1/swxc1/ldxc1/sdxc1 instructions where applicable."
+msgstr ""
+
+#: config/mips/mips.opt:426
+#, no-c-format
+msgid "Use 4-operand madd.s/madd.d and related instructions where applicable."
+msgstr ""
+
+#: config/mips/mips.opt:434
+#, no-c-format
+msgid "Don't generate code with unaligned load store, only valid for MIPS R6."
+msgstr ""
+
+#: config/mips/mips.opt:438
+#, no-c-format
+msgid "Generate code with unaligned load store for R6 (alias of -mno-strict-align)."
+msgstr ""
+
+#: config/mips/mips.opt:442
+#, no-c-format
+msgid "Don't generate code with unaligned load store for R6 (alias of -mstrict-align)."
+msgstr ""
+
+#: config/mips/mips.opt:450
+#, no-c-format
+msgid "Use Virtualization (VZ) instructions."
+msgstr ""
+
+#: config/mips/mips.opt:454
+#, no-c-format
+msgid "Use eXtended Physical Address (XPA) instructions."
+msgstr ""
+
+#: config/mips/mips.opt:458
+#, no-c-format
+msgid "Use Cyclic Redundancy Check (CRC) instructions."
+msgstr ""
+
+#: config/mips/mips.opt:462
+#, no-c-format
+msgid "Use Global INValidate (GINV) instructions."
+msgstr ""
+
+#: config/mips/mips.opt:466
+#, no-c-format
+msgid "Perform VR4130-specific alignment optimizations."
+msgstr ""
+
+#: config/mips/mips.opt:470
+#, no-c-format
+msgid "Lift restrictions on GOT size."
+msgstr ""
+
+#: config/mips/mips.opt:474
+#, no-c-format
+msgid "Enable use of odd-numbered single-precision registers."
+msgstr ""
+
+#: config/mips/mips.opt:478
+#, no-c-format
+msgid "Optimize frame header."
+msgstr ""
+
+#: config/mips/mips.opt:485
+#, no-c-format
+msgid "Enable load/store bonding."
+msgstr ""
+
+#: config/mips/mips.opt:489
+#, no-c-format
+msgid "Specify the compact branch usage policy."
+msgstr ""
+
+#: config/mips/mips.opt:493
+#, no-c-format
+msgid "Policies available for use with -mcompact-branches=:"
+msgstr ""
+
+#: config/mips/mips.opt:506
+#, no-c-format
+msgid "Use Loongson MultiMedia extensions Instructions (MMI) instructions."
+msgstr ""
+
+#: config/mips/mips.opt:510
+#, no-c-format
+msgid "Use Loongson EXTension (EXT) instructions."
+msgstr ""
+
+#: config/mips/mips.opt:514
+#, no-c-format
+msgid "Use Loongson EXTension R2 (EXT2) instructions."
+msgstr ""
+
+#: config/mips/mips-tables.opt:24
+#, no-c-format
+msgid "Known MIPS CPUs (for use with the -march= and -mtune= options):"
+msgstr ""
+
+#: config/mips/mips-tables.opt:28
+#, no-c-format
+msgid "Known MIPS ISA levels (for use with the -mips option):"
+msgstr ""
+
+#: config/arc/arc-tables.opt:25
+#, no-c-format
+msgid "Known ARC CPUs (for use with the -mcpu= option):"
+msgstr ""
+
+#: config/arc/arc.opt:26
+#, no-c-format
+msgid "Compile code for big endian mode."
+msgstr ""
+
+#: config/arc/arc.opt:30
+#, no-c-format
+msgid "Compile code for little endian mode.  This is the default."
+msgstr ""
+
+#: config/arc/arc.opt:34
+#, no-c-format
+msgid "Disable ARCompact specific pass to generate conditional execution instructions."
+msgstr ""
+
+#: config/arc/arc.opt:38
+#, no-c-format
+msgid "Generate ARCompact 32-bit code for ARC600 processor."
+msgstr ""
+
+#: config/arc/arc.opt:42
+#, no-c-format
+msgid "Same as -mA6."
+msgstr ""
+
+#: config/arc/arc.opt:46
+#, no-c-format
+msgid "Generate ARCompact 32-bit code for ARC601 processor."
+msgstr ""
+
+#: config/arc/arc.opt:50
+#, no-c-format
+msgid "Generate ARCompact 32-bit code for ARC700 processor."
+msgstr ""
+
+#: config/arc/arc.opt:54
+#, no-c-format
+msgid "Same as -mA7."
+msgstr ""
+
+#: config/arc/arc.opt:58
+#, no-c-format
+msgid "Force all calls to be made via a jli instruction."
+msgstr ""
+
+#: config/arc/arc.opt:62
+#, no-c-format
+msgid "-mmpy-option=MPY\tCompile ARCv2 code with a multiplier design option."
+msgstr ""
+
+#: config/arc/arc.opt:132
+#, no-c-format
+msgid "Enable DIV-REM instructions for ARCv2."
+msgstr ""
+
+#: config/arc/arc.opt:136
+#, no-c-format
+msgid "Enable code density instructions for ARCv2."
+msgstr ""
+
+#: config/arc/arc.opt:146
+#, no-c-format
+msgid "Use ordinarily cached memory accesses for volatile references."
+msgstr ""
+
+#: config/arc/arc.opt:150
+#, no-c-format
+msgid "Enable cache bypass for volatile references."
+msgstr ""
+
+#: config/arc/arc.opt:154
+#, no-c-format
+msgid "Generate instructions supported by barrel shifter."
+msgstr ""
+
+#: config/arc/arc.opt:158
+#, no-c-format
+msgid "Generate norm instruction."
+msgstr ""
+
+#: config/arc/arc.opt:162
+#, no-c-format
+msgid "Generate swap instruction."
+msgstr ""
+
+#: config/arc/arc.opt:166
+#, no-c-format
+msgid "Generate mul64 and mulu64 instructions."
+msgstr ""
+
+#: config/arc/arc.opt:170
+#, no-c-format
+msgid "Do not generate mpy instructions for ARC700."
+msgstr ""
+
+#: config/arc/arc.opt:174
+#, no-c-format
+msgid "Generate extended arithmetic instructions, only valid for ARC700."
+msgstr ""
+
+#: config/arc/arc.opt:178
+#, no-c-format
+msgid "Dummy flag. This is the default unless FPX switches are provided explicitly."
+msgstr ""
+
+#: config/arc/arc.opt:182
+#, no-c-format
+msgid "Generate call insns as register indirect calls."
+msgstr ""
+
+#: config/arc/arc.opt:186
+#, no-c-format
+msgid "Do no generate BRcc instructions in arc_reorg."
+msgstr ""
+
+#: config/arc/arc.opt:190
+#, no-c-format
+msgid "Generate sdata references.  This is the default, unless you compile for PIC."
+msgstr ""
+
+#: config/arc/arc.opt:194
+#, no-c-format
+msgid "Generate millicode thunks."
+msgstr ""
+
+#: config/arc/arc.opt:198 config/arc/arc.opt:202
+#, no-c-format
+msgid "FPX: Generate Single Precision FPX (compact) instructions."
+msgstr ""
+
+#: config/arc/arc.opt:206
+#, no-c-format
+msgid "FPX: Generate Single Precision FPX (fast) instructions."
+msgstr ""
+
+#: config/arc/arc.opt:210
+#, no-c-format
+msgid "FPX: Enable Argonaut ARC CPU Double Precision Floating Point extensions."
+msgstr ""
+
+#: config/arc/arc.opt:214 config/arc/arc.opt:218
+#, no-c-format
+msgid "FPX: Generate Double Precision FPX (compact) instructions."
+msgstr ""
+
+#: config/arc/arc.opt:222
+#, no-c-format
+msgid "FPX: Generate Double Precision FPX (fast) instructions."
+msgstr ""
+
+#: config/arc/arc.opt:226
+#, no-c-format
+msgid "Disable LR and SR instructions from using FPX extension aux registers."
+msgstr ""
+
+#: config/arc/arc.opt:230
+#, no-c-format
+msgid "Enable generation of ARC SIMD instructions via target-specific builtins."
+msgstr ""
+
+#: config/arc/arc.opt:234
+#, no-c-format
+msgid "-mcpu=CPU\tCompile code for ARC variant CPU."
+msgstr ""
+
+#: config/arc/arc.opt:238
+#, no-c-format
+msgid "Size optimization level: 0:none 1:opportunistic 2: regalloc 3:drop align, -Os."
+msgstr ""
+
+#: config/arc/arc.opt:246
+#, no-c-format
+msgid "Cost to assume for a multiply instruction, with 4 being equal to a normal insn."
+msgstr ""
+
+#: config/arc/arc.opt:250
+#, no-c-format
+msgid "-mtune=TUNE\tTune code for given ARC variant."
+msgstr ""
+
+#: config/arc/arc.opt:284
+#, no-c-format
+msgid "Enable the use of indexed loads."
+msgstr ""
+
+#: config/arc/arc.opt:288
+#, no-c-format
+msgid "Enable the use of pre/post modify with register displacement."
+msgstr ""
+
+#: config/arc/arc.opt:292
+#, no-c-format
+msgid "Generate 32x16 multiply and mac instructions."
+msgstr ""
+
+#: config/arc/arc.opt:300
+#, no-c-format
+msgid "Don't use less than 25 bit addressing range for calls."
+msgstr ""
+
+#: config/arc/arc.opt:322
+#, no-c-format
+msgid "Enable pre-reload use of cbranchsi pattern."
+msgstr ""
+
+#: config/arc/arc.opt:330
+#, no-c-format
+msgid "Use pc-relative switch case tables - this enables case table shortening."
+msgstr ""
+
+#: config/arc/arc.opt:334
+#, no-c-format
+msgid "Enable compact casesi pattern."
+msgstr ""
+
+#: config/arc/arc.opt:338
+#, no-c-format
+msgid "Enable 'q' instruction alternatives."
+msgstr ""
+
+#: config/arc/arc.opt:342
+#, no-c-format
+msgid "Expand adddi3 and subdi3 at rtl generation time into add.f / adc etc."
+msgstr ""
+
+#: config/arc/arc.opt:349
+#, no-c-format
+msgid "Enable variable polynomial CRC extension."
+msgstr ""
+
+#: config/arc/arc.opt:353
+#, no-c-format
+msgid "Enable DSP 3.1 Pack A extensions."
+msgstr ""
+
+#: config/arc/arc.opt:357
+#, no-c-format
+msgid "Enable dual viterbi butterfly extension."
+msgstr ""
+
+#: config/arc/arc.opt:367
+#, no-c-format
+msgid "Enable Dual and Single Operand Instructions for Telephony."
+msgstr ""
+
+#: config/arc/arc.opt:371
+#, no-c-format
+msgid "Enable XY Memory extension (DSP version 3)."
+msgstr ""
+
+#: config/arc/arc.opt:376
+#, no-c-format
+msgid "Enable Locked Load/Store Conditional extension."
+msgstr ""
+
+#: config/arc/arc.opt:380
+#, no-c-format
+msgid "Enable swap byte ordering extension instruction."
+msgstr ""
+
+#: config/arc/arc.opt:384
+#, no-c-format
+msgid "Enable 64-bit Time-Stamp Counter extension instruction."
+msgstr ""
+
+#: config/arc/arc.opt:388
+#, no-c-format
+msgid "Pass -EB option through to linker."
+msgstr ""
+
+#: config/arc/arc.opt:392
+#, no-c-format
+msgid "Pass -EL option through to linker."
+msgstr ""
+
+#: config/arc/arc.opt:396
+#, no-c-format
+msgid "Pass -marclinux option through to linker."
+msgstr ""
+
+#: config/arc/arc.opt:400
+#, no-c-format
+msgid "Pass -marclinux_prof option through to linker."
+msgstr ""
+
+#: config/arc/arc.opt:409
+#, no-c-format
+msgid "Don't indicate any priority with TARGET_REGISTER_PRIORITY."
+msgstr ""
+
+#: config/arc/arc.opt:413
+#, no-c-format
+msgid "Indicate priority for r0..r3 / r12..r15 with TARGET_REGISTER_PRIORITY."
+msgstr ""
+
+#: config/arc/arc.opt:417
+#, no-c-format
+msgid "Reduce priority for r0..r3 / r12..r15 with TARGET_REGISTER_PRIORITY."
+msgstr ""
+
+#: config/arc/arc.opt:429
+#, no-c-format
+msgid "Enable atomic instructions."
+msgstr ""
+
+#: config/arc/arc.opt:433
+#, no-c-format
+msgid "Enable double load/store instructions for ARC HS."
+msgstr ""
+
+#: config/arc/arc.opt:437
+#, no-c-format
+msgid "Specify the name of the target floating point configuration."
+msgstr ""
+
+#: config/arc/arc.opt:480
+#, no-c-format
+msgid "Specify thread pointer register number."
+msgstr ""
+
+#: config/arc/arc.opt:487
+#, no-c-format
+msgid "Enable use of NPS400 bit operations."
+msgstr ""
+
+#: config/arc/arc.opt:491
+#, no-c-format
+msgid "Enable use of NPS400 xld/xst extension."
+msgstr ""
+
+#: config/arc/arc.opt:499
+#, no-c-format
+msgid "Specifies the registers that the processor saves on an interrupt entry and exit."
+msgstr ""
+
+#: config/arc/arc.opt:503
+#, no-c-format
+msgid "Specifies the number of registers replicated in second register bank on entry to fast interrupt."
+msgstr ""
+
+#: config/arc/arc.opt:507
+#, no-c-format
+msgid "Sets LP_COUNT register width.  Possible values are 8, 16, 20, 24, 28, and 32."
+msgstr ""
+
+#: config/arc/arc.opt:532
+#, no-c-format
+msgid "Enable 16-entry register file."
+msgstr ""
+
+#: config/arc/arc.opt:536
+#, no-c-format
+msgid "Enable use of BI/BIH instructions when available."
+msgstr ""
+
+#: config/arc/arc.opt:540
+#, no-c-format
+msgid "Enable ENTER_S and LEAVE_S opcodes for ARCv2."
+msgstr ""
+
+#: config/vxworks-smp.opt:25
+#, no-c-format
+msgid "Select VxWorks SMP C runtimes for linking."
+msgstr ""
+
+#: lto/lang.opt:50
+#, no-c-format
+msgid "Set linker output type (used internally during LTO optimization)."
+msgstr ""
+
+#: lto/lang.opt:54
+#, no-c-format
+msgid "Run the link-time optimizer in local transformation (LTRANS) mode."
+msgstr ""
+
+#: lto/lang.opt:58
+#, no-c-format
+msgid "Specify a file to which a list of files output by LTRANS is written."
+msgstr ""
+
+#: lto/lang.opt:62
+#, no-c-format
+msgid "The resolution file."
+msgstr ""
+
+#: lto/lang.opt:66
+#, no-c-format
+msgid "Run the link-time optimizer in whole program analysis (WPA) mode."
+msgstr ""
+
+#: lto/lang.opt:70
+#, no-c-format
+msgid "Whole program analysis (WPA) mode with number of parallel jobs specified."
+msgstr ""
+
+#: lto/lang.opt:78
+#, no-c-format
+msgid "Call the dump function for variables and function in IL."
+msgstr ""
+
+#: lto/lang.opt:82
+#, no-c-format
+msgid "Dump the demangled output."
+msgstr ""
+
+#: lto/lang.opt:86
+#, no-c-format
+msgid "Dump only the defined symbols."
+msgstr ""
+
+#: lto/lang.opt:90
+#, no-c-format
+msgid "Print the initial values of the variables."
+msgstr ""
+
+#: lto/lang.opt:94
+#, no-c-format
+msgid "Sort the symbols alphabetically."
+msgstr ""
+
+#: lto/lang.opt:98
+#, no-c-format
+msgid "Sort the symbols according to size."
+msgstr ""
+
+#: lto/lang.opt:102
+#, no-c-format
+msgid "Display the symbols in reverse order."
+msgstr ""
+
+#: lto/lang.opt:109
+#, no-c-format
+msgid "Dump the details of LTO objects."
+msgstr ""
+
+#: lto/lang.opt:113
+#, no-c-format
+msgid "Dump the statistics of tree types."
+msgstr ""
+
+#: lto/lang.opt:117
+#, no-c-format
+msgid "Dump the statistics of trees."
+msgstr ""
+
+#: lto/lang.opt:121
+#, no-c-format
+msgid "Dump the statistics of gimple statements."
+msgstr ""
+
+#: lto/lang.opt:131
+#, no-c-format
+msgid "Dump the dump tool command line options."
+msgstr ""
+
+#: lto/lang.opt:135
+#, no-c-format
+msgid "Dump the symtab callgraph."
+msgstr ""
+
+#: common.opt:243
+#, no-c-format
+msgid "Provide bash completion for options starting with provided string."
+msgstr ""
+
+#: common.opt:295
+#, no-c-format
+msgid "Display this information."
+msgstr ""
+
+#: common.opt:299
+#, no-c-format
+msgid "--help=<class>\tDisplay descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params."
+msgstr ""
+
+#: common.opt:420
+#, no-c-format
+msgid "Display target specific command line options (including assembler and linker options)."
+msgstr ""
+
+#: common.opt:466
+#, no-c-format
+msgid "-O<number>\tSet optimization level to <number>."
+msgstr ""
+
+#: common.opt:470
+#, no-c-format
+msgid "Optimize for space rather than speed."
+msgstr ""
+
+#: common.opt:474
+#, no-c-format
+msgid "Optimize for speed disregarding exact standards compliance."
+msgstr ""
+
+#: common.opt:478
+#, no-c-format
+msgid "Optimize for debugging experience rather than speed or size."
+msgstr ""
+
+#: common.opt:482
+#, no-c-format
+msgid "Optimize for space aggressively rather than speed."
+msgstr ""
+
+#: common.opt:522
+#, no-c-format
+msgid "This switch is deprecated; use -Wextra instead."
+msgstr ""
+
+#: common.opt:535
+#, no-c-format
+msgid "Warn about returning structures, unions or arrays."
+msgstr ""
+
+#: common.opt:539
+#, no-c-format
+msgid "Warn if a loop with constant number of iterations triggers undefined behavior."
+msgstr ""
+
+#: common.opt:546
+#, no-c-format
+msgid "Warn if an array is accessed out of bounds."
+msgstr ""
+
+#: common.opt:550 common.opt:554
+#, no-c-format
+msgid "Warn for uses of pointers to deallocated storage."
+msgstr ""
+
+#: common.opt:558
+#, no-c-format
+msgid "Warn about inappropriate attribute usage."
+msgstr ""
+
+#: common.opt:562
+#, no-c-format
+msgid "Do not warn about specified attributes."
+msgstr ""
+
+#: common.opt:566 common.opt:570
+#, no-c-format
+msgid "Warn about type safety and similar errors and mismatches in declarations with alias attributes."
+msgstr ""
+
+#: common.opt:574
+#, no-c-format
+msgid "Warn when profiling instrumentation was requested, but could not be applied to a certain function."
+msgstr ""
+
+#: common.opt:579 common.opt:583
+#, no-c-format
+msgid "Warn about pointer casts which increase alignment."
+msgstr ""
+
+#: common.opt:587
+#, no-c-format
+msgid "Complain when a command-line option is valid, but not applicable to the current front end."
+msgstr ""
+
+#: common.opt:591
+#, no-c-format
+msgid "Warn when a #warning directive is encountered."
+msgstr ""
+
+#: common.opt:595
+#, no-c-format
+msgid "Warn about uses of __attribute__((warning)) declarations."
+msgstr ""
+
+#: common.opt:599
+#, no-c-format
+msgid "Warn if a deprecated compiler feature, class, method, or field is used."
+msgstr ""
+
+#: common.opt:603
+#, no-c-format
+msgid "Warn about uses of __attribute__((deprecated)) declarations."
+msgstr ""
+
+#: common.opt:607
+#, no-c-format
+msgid "Warn when an optimization pass is disabled."
+msgstr ""
+
+#: common.opt:611
+#, no-c-format
+msgid "Treat all warnings as errors."
+msgstr ""
+
+#: common.opt:615
+#, no-c-format
+msgid "Treat specified warning as error."
+msgstr ""
+
+#: common.opt:619
+#, no-c-format
+msgid "Print extra (possibly unwanted) warnings."
+msgstr ""
+
+#: common.opt:623
+#, no-c-format
+msgid "Exit on the first error occurred."
+msgstr ""
+
+#: common.opt:627
+#, no-c-format
+msgid "-Wframe-larger-than=<byte-size>\tWarn if a function's stack frame requires in excess of <byte-size>."
+msgstr ""
+
+#: common.opt:631
+#, no-c-format
+msgid "Disable -Wframe-larger-than= warning.  Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger."
+msgstr ""
+
+#: common.opt:635
+#, no-c-format
+msgid "Warn when attempting to free a non-heap object."
+msgstr ""
+
+#: common.opt:639
+#, no-c-format
+msgid "Warn when -fhardened did not enable an option from its set."
+msgstr ""
+
+#: common.opt:650
+#, no-c-format
+msgid "Warn when a switch case falls through."
+msgstr ""
+
+#: common.opt:658
+#, no-c-format
+msgid "Warn when an inlined function cannot be inlined."
+msgstr ""
+
+#: common.opt:662
+#, no-c-format
+msgid "Warn when an atomic memory model parameter is known to be outside the valid range."
+msgstr ""
+
+#: common.opt:669
+#, no-c-format
+msgid "-Wlarger-than=<byte-size>\tWarn if an object's size exceeds <byte-size>."
+msgstr ""
+
+#: common.opt:673
+#, no-c-format
+msgid "Disable -Wlarger-than= warning.  Equivalent to -Wlarger-than=<SIZE_MAX> or larger."
+msgstr ""
+
+#: common.opt:677
+#, no-c-format
+msgid "Warn if comparing pointer parameter with nonnull attribute with NULL."
+msgstr ""
+
+#: common.opt:681
+#, no-c-format
+msgid "Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior."
+msgstr ""
+
+#: common.opt:692
+#, no-c-format
+msgid "Warn about some C++ One Definition Rule violations during link time optimization."
+msgstr ""
+
+#: common.opt:696
+#, no-c-format
+msgid "Warn about overflow in arithmetic expressions."
+msgstr ""
+
+#: common.opt:700
+#, no-c-format
+msgid "During link time optimization warn about mismatched types of global declarations."
+msgstr ""
+
+#: common.opt:704
+#, no-c-format
+msgid "Warn when the packed attribute has no effect on struct layout."
+msgstr ""
+
+#: common.opt:708
+#, no-c-format
+msgid "Warn when padding is required to align structure members."
+msgstr ""
+
+#: common.opt:712
+#, no-c-format
+msgid "Issue warnings needed for strict compliance to the standard."
+msgstr ""
+
+#: common.opt:716
+#, no-c-format
+msgid "Warn about returning a pointer/reference to a local or temporary variable."
+msgstr ""
+
+#: common.opt:720
+#, no-c-format
+msgid "Warn when one variable shadows another.  Same as -Wshadow=global."
+msgstr ""
+
+#: common.opt:724
+#, no-c-format
+msgid "Warn when one variable shadows another (globally)."
+msgstr ""
+
+#: common.opt:728
+#, no-c-format
+msgid "Warn when one local variable shadows another local variable or parameter."
+msgstr ""
+
+#: common.opt:735
+#, no-c-format
+msgid "Warn when one local variable shadows another local variable or parameter of compatible type."
+msgstr ""
+
+#: common.opt:742
+#, no-c-format
+msgid "Warn when not issuing stack smashing protection for some reason."
+msgstr ""
+
+#: common.opt:746
+#, no-c-format
+msgid "-Wstack-usage=<byte-size>\tWarn if stack usage might exceed <byte-size>."
+msgstr ""
+
+#: common.opt:750
+#, no-c-format
+msgid "Disable Wstack-usage= warning.  Equivalent to Wstack-usage=<SIZE_MAX> or larger."
+msgstr ""
+
+#: common.opt:754 common.opt:758
+#, no-c-format
+msgid "Warn about code which might break strict aliasing rules."
+msgstr ""
+
+#: common.opt:762 common.opt:766
+#, no-c-format
+msgid "Warn about optimizations that assume that signed overflow is undefined."
+msgstr ""
+
+#: common.opt:770
+#, no-c-format
+msgid "Warn about functions which might be candidates for __attribute__((cold))."
+msgstr ""
+
+#: common.opt:774
+#, no-c-format
+msgid "Warn about functions which might be candidates for __attribute__((const))."
+msgstr ""
+
+#: common.opt:778
+#, no-c-format
+msgid "Warn about functions which might be candidates for __attribute__((pure))."
+msgstr ""
+
+#: common.opt:782
+#, no-c-format
+msgid "Warn about functions which might be candidates for __attribute__((noreturn))."
+msgstr ""
+
+#: common.opt:786
+#, no-c-format
+msgid "Warn about functions which might be candidates for __attribute__((malloc))."
+msgstr ""
+
+#: common.opt:790
+#, no-c-format
+msgid "Warn about functions which might be candidates for __attribute__((returns_nonnull))."
+msgstr ""
+
+#: common.opt:794
+#, no-c-format
+msgid "Warn about C++ polymorphic types where adding final keyword would improve code quality."
+msgstr ""
+
+#: common.opt:798
+#, no-c-format
+msgid "Warn about C++ virtual methods where adding final keyword would improve code quality."
+msgstr ""
+
+#: common.opt:802
+#, no-c-format
+msgid "Warn about statements between switch's controlling expression and the first case."
+msgstr ""
+
+#: common.opt:807
+#, no-c-format
+msgid "Do not suppress warnings from system headers."
+msgstr ""
+
+#: common.opt:811
+#, no-c-format
+msgid "Warn whenever a trampoline is generated."
+msgstr ""
+
+#: common.opt:815
+#, no-c-format
+msgid "Warn about cases where -ftrivial-auto-var-init cannot initialize an auto variable."
+msgstr ""
+
+#: common.opt:819
+#, no-c-format
+msgid "Warn if a comparison is always true or always false due to the limited range of the data type."
+msgstr ""
+
+#: common.opt:823
+#, no-c-format
+msgid "Warn about uninitialized automatic variables."
+msgstr ""
+
+#: common.opt:827
+#, no-c-format
+msgid "Warn about maybe uninitialized automatic variables."
+msgstr ""
+
+#: common.opt:835
+#, no-c-format
+msgid "Enable all -Wunused- warnings."
+msgstr ""
+
+#: common.opt:839
+#, no-c-format
+msgid "Warn when a function parameter is only set, otherwise unused."
+msgstr ""
+
+#: common.opt:843
+#, no-c-format
+msgid "Warn when a variable is only set, otherwise unused."
+msgstr ""
+
+#: common.opt:847
+#, no-c-format
+msgid "Warn when a function is unused."
+msgstr ""
+
+#: common.opt:851
+#, no-c-format
+msgid "Warn when a label is unused."
+msgstr ""
+
+#: common.opt:855
+#, no-c-format
+msgid "Warn when a function parameter is unused."
+msgstr ""
+
+#: common.opt:859
+#, no-c-format
+msgid "Warn when an expression value is unused."
+msgstr ""
+
+#: common.opt:863
+#, no-c-format
+msgid "Warn when a variable is unused."
+msgstr ""
+
+#: common.opt:867
+#, no-c-format
+msgid "Warn in case profiles in -fprofile-use do not match."
+msgstr ""
+
+#: common.opt:871
+#, no-c-format
+msgid "Warn in case a function ends earlier than it begins due to an invalid linenum macros."
+msgstr ""
+
+#: common.opt:875
+#, no-c-format
+msgid "Warn when a conditional has too many terms and condition coverage profiling gives up instrumenting the expression."
+msgstr ""
+
+#: common.opt:880
+#, no-c-format
+msgid "Warn in case profiles in -fprofile-use do not exist."
+msgstr ""
+
+#: common.opt:884
+#, no-c-format
+msgid "Warn when a vector operation is compiled outside the SIMD."
+msgstr ""
+
+#: common.opt:888
+#, no-c-format
+msgid "Warn about unsupported features in ThreadSanitizer."
+msgstr ""
+
+#: common.opt:904
+#, no-c-format
+msgid "-aux-info <file>\tEmit declaration information into <file>."
+msgstr ""
+
+#: common.opt:917
+#, no-c-format
+msgid "-d<letters>\tEnable dumps from specific passes of the compiler."
+msgstr ""
+
+#: common.opt:921
+#, no-c-format
+msgid "-dumpbase <file>\tSet the file basename to be used for dumps."
+msgstr ""
+
+#: common.opt:925
+#, no-c-format
+msgid "-dumpbase-ext .<ext>    Drop a trailing .<ext> from the dump basename to name auxiliary output files."
+msgstr ""
+
+#: common.opt:929
+#, no-c-format
+msgid "-dumpdir <dir>\tSet the directory name to be used for dumps."
+msgstr ""
+
+#: common.opt:1035
+#, no-c-format
+msgid "The version of the C++ ABI in use."
+msgstr ""
+
+#: common.opt:1039
+#, no-c-format
+msgid "Aggressively optimize loops using language constraints."
+msgstr ""
+
+#: common.opt:1043
+#, no-c-format
+msgid "Align the start of functions."
+msgstr ""
+
+#: common.opt:1050
+#, no-c-format
+msgid "Align labels which are only reached by jumping."
+msgstr ""
+
+#: common.opt:1057
+#, no-c-format
+msgid "Align all labels."
+msgstr ""
+
+#: common.opt:1064
+#, no-c-format
+msgid "Align the start of loops."
+msgstr ""
+
+#: common.opt:1071
+#, no-c-format
+msgid "Allow the compiler to introduce new data races on stores."
+msgstr ""
+
+#: common.opt:1075
+#, no-c-format
+msgid "Enable static analysis pass."
+msgstr ""
+
+#: common.opt:1095
+#, no-c-format
+msgid "Select what to sanitize."
+msgstr ""
+
+#: common.opt:1099
+#, no-c-format
+msgid "Select type of coverage sanitization."
+msgstr ""
+
+#: common.opt:1112
+#, no-c-format
+msgid "-fasan-shadow-offset=<number>\tUse custom shadow memory offset."
+msgstr ""
+
+#: common.opt:1116
+#, no-c-format
+msgid "-fsanitize-sections=<sec1,sec2,...>\tSanitize global variables in user-defined sections."
+msgstr ""
+
+#: common.opt:1121
+#, no-c-format
+msgid "After diagnosing undefined behavior attempt to continue execution."
+msgstr ""
+
+#: common.opt:1125
+#, no-c-format
+msgid "This switch is deprecated; use -fsanitize-recover= instead."
+msgstr ""
+
+#: common.opt:1129
+#, no-c-format
+msgid "Use traps instead of diagnostics of undefined behavior sanitizers."
+msgstr ""
+
+#: common.opt:1139
+#, no-c-format
+msgid "This switch is deprecated; use -fsanitize-trap= instead."
+msgstr ""
+
+#: common.opt:1143
+#, no-c-format
+msgid "Generate unwind tables that are exact at each instruction boundary."
+msgstr ""
+
+#: common.opt:1147
+#, no-c-format
+msgid "Generate auto-inc/dec instructions."
+msgstr ""
+
+#: common.opt:1151
+#, no-c-format
+msgid "Use sample profile information for call graph node weights. The default profile file is fbdata.afdo in 'pwd'."
+msgstr ""
+
+#: common.opt:1156
+#, no-c-format
+msgid "Use sample profile information for call graph node weights. The profile file is specified in the argument."
+msgstr ""
+
+#: common.opt:1165
+#, no-c-format
+msgid "Generate code to check bounds before indexing arrays."
+msgstr ""
+
+#: common.opt:1169
+#, no-c-format
+msgid "Replace add, compare, branch with branch on count register."
+msgstr ""
+
+#: common.opt:1173
+#, no-c-format
+msgid "Use profiling information for branch probabilities."
+msgstr ""
+
+#: common.opt:1189
+#, no-c-format
+msgid "Output callgraph information on a per-file basis."
+msgstr ""
+
+#: common.opt:1193
+#, no-c-format
+msgid "Output callgraph information on a per-file basis with decorations."
+msgstr ""
+
+#: common.opt:1197
+#, no-c-format
+msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions."
+msgstr ""
+
+#: common.opt:1201
+#, no-c-format
+msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls."
+msgstr ""
+
+#: common.opt:1208
+#, no-c-format
+msgid "Save registers around function calls."
+msgstr ""
+
+#: common.opt:1212
+#, no-c-format
+msgid "This switch is deprecated; do not use."
+msgstr ""
+
+#: common.opt:1216
+#, no-c-format
+msgid "Check the return value of new in C++."
+msgstr ""
+
+#: common.opt:1220 common.opt:1224
+#, no-c-format
+msgid "Perform internal consistency checkings."
+msgstr ""
+
+#: common.opt:1228
+#, no-c-format
+msgid "For -f*-prefix-map= options compare canonicalized pathnames rather than just strings."
+msgstr ""
+
+#: common.opt:1232
+#, no-c-format
+msgid "Enable code hoisting."
+msgstr ""
+
+#: common.opt:1236
+#, no-c-format
+msgid "Looks for opportunities to reduce stack adjustments and stack references."
+msgstr ""
+
+#: common.opt:1240
+#, no-c-format
+msgid "Put uninitialized globals in the common section."
+msgstr ""
+
+#: common.opt:1248
+#, no-c-format
+msgid "-fcompare-debug[=<opts>]\tCompile with and without e.g. -gtoggle, and compare the final-insns dump."
+msgstr ""
+
+#: common.opt:1252
+#, no-c-format
+msgid "Run only the second compilation of -fcompare-debug."
+msgstr ""
+
+#: common.opt:1256
+#, no-c-format
+msgid "Perform comparison elimination after register allocation has finished."
+msgstr ""
+
+#: common.opt:1260
+#, no-c-format
+msgid "Do not perform optimizations increasing noticeably stack usage."
+msgstr ""
+
+#: common.opt:1264
+#, no-c-format
+msgid "Perform a register copy-propagation optimization pass."
+msgstr ""
+
+#: common.opt:1268
+#, no-c-format
+msgid "Fold instructions calculating memory offsets to the memory access instruction if possible."
+msgstr ""
+
+#: common.opt:1272
+#, no-c-format
+msgid "Perform cross-jumping optimization."
+msgstr ""
+
+#: common.opt:1276
+#, no-c-format
+msgid "When running CSE, follow jumps to their targets."
+msgstr ""
+
+#: common.opt:1284
+#, no-c-format
+msgid "Omit range reduction step when performing complex division."
+msgstr ""
+
+#: common.opt:1288
+#, no-c-format
+msgid "Complex multiplication and division follow Fortran rules."
+msgstr ""
+
+#: common.opt:1292
+#, no-c-format
+msgid "Place data items into their own section."
+msgstr ""
+
+#: common.opt:1296
+#, no-c-format
+msgid "List all available debugging counters with their limits and counts."
+msgstr ""
+
+#: common.opt:1300
+#, no-c-format
+msgid "-fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...]\tSet the debug counter limit."
+msgstr ""
+
+#: common.opt:1304
+#, no-c-format
+msgid "-fdebug-prefix-map=<old>=<new>\tMap one directory name to another in debug information."
+msgstr ""
+
+#: common.opt:1308
+#, no-c-format
+msgid "-ffile-prefix-map=<old>=<new>\tMap one directory name to another in compilation result."
+msgstr ""
+
+#: common.opt:1312
+#, no-c-format
+msgid "Output .debug_types section when using DWARF v4 debuginfo."
+msgstr ""
+
+#: common.opt:1318
+#, no-c-format
+msgid "Defer popping functions args from stack until later."
+msgstr ""
+
+#: common.opt:1322
+#, no-c-format
+msgid "Attempt to fill delay slots of branch instructions."
+msgstr ""
+
+#: common.opt:1326
+#, no-c-format
+msgid "Delete dead instructions that may throw exceptions."
+msgstr ""
+
+#: common.opt:1330
+#, no-c-format
+msgid "Delete useless null pointer checks."
+msgstr ""
+
+#: common.opt:1334
+#, no-c-format
+msgid "Stream extra data to support more aggressive devirtualization in LTO local transformation mode."
+msgstr ""
+
+#: common.opt:1338
+#, no-c-format
+msgid "Perform speculative devirtualization."
+msgstr ""
+
+#: common.opt:1342
+#, no-c-format
+msgid "Try to convert virtual calls to direct ones."
+msgstr ""
+
+#: common.opt:1346
+#, no-c-format
+msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics."
+msgstr ""
+
+#: common.opt:1363
+#, no-c-format
+msgid "Show the source line with a caret indicating the column."
+msgstr ""
+
+#: common.opt:1367
+#, no-c-format
+msgid "Show labels annotating ranges of source code when showing source."
+msgstr ""
+
+#: common.opt:1371
+#, no-c-format
+msgid "Show line numbers in the left margin when showing source."
+msgstr ""
+
+#: common.opt:1379
+#, no-c-format
+msgid "-fdiagnostics-color=[never|always|auto]\tColorize diagnostics."
+msgstr ""
+
+#: common.opt:1399
+#, no-c-format
+msgid "Enable formatting of JSON output."
+msgstr ""
+
+#: common.opt:1403
+#, no-c-format
+msgid "-fdiagnostics-urls=[never|always|auto]\tEmbed URLs in diagnostics."
+msgstr ""
+
+#: common.opt:1423
+#, no-c-format
+msgid "-fdiagnostics-column-unit=[display|byte]\tSelect whether column numbers are output as display columns (default) or raw bytes."
+msgstr ""
+
+#: common.opt:1427
+#, no-c-format
+msgid "-fdiagnostics-column-origin=<number>\tSet the number of the first column.  The default is 1-based as per GNU style, but some utilities may expect 0-based, for example."
+msgstr ""
+
+#: common.opt:1431
+#, no-c-format
+msgid "-fdiagnostics-format=[text|sarif-stderr|sarif-file|json|json-stderr|json-file]\tSelect output format."
+msgstr ""
+
+#: common.opt:1435
+#, no-c-format
+msgid "-fdiagnostics-escape-format=[unicode|bytes]\tSelect how to escape non-printable-ASCII bytes in the source for diagnostics that suggest it."
+msgstr ""
+
+#: common.opt:1482
+#, no-c-format
+msgid "Print fix-it hints in machine-readable form."
+msgstr ""
+
+#: common.opt:1486
+#, no-c-format
+msgid "Print fix-it hints to stderr in unified diff format."
+msgstr ""
+
+#: common.opt:1490
+#, no-c-format
+msgid "Amend appropriate diagnostic messages with the command line option that controls them."
+msgstr ""
+
+#: common.opt:1494
+#, no-c-format
+msgid "Print CWE identifiers for diagnostic messages, where available."
+msgstr ""
+
+#: common.opt:1498
+#, no-c-format
+msgid "Print any rules associated with diagnostic messages."
+msgstr ""
+
+#: common.opt:1502
+#, no-c-format
+msgid "Specify how to print any control-flow path associated with a diagnostic."
+msgstr ""
+
+#: common.opt:1506
+#, no-c-format
+msgid "Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs."
+msgstr ""
+
+#: common.opt:1510
+#, no-c-format
+msgid "-ftabstop=<number>      Distance between tab stops for column reporting."
+msgstr ""
+
+#: common.opt:1526
+#, no-c-format
+msgid "Show stack depths of events in paths."
+msgstr ""
+
+#: common.opt:1530
+#, no-c-format
+msgid "-fdiagnostics-text-art-charset=[none|ascii|unicode|emoji]\tDetermine which characters to use in text arg diagrams."
+msgstr ""
+
+#: common.opt:1549
+#, no-c-format
+msgid "Set minimum width of left margin of source code when showing source."
+msgstr ""
+
+#: common.opt:1553
+#, no-c-format
+msgid "-fdisable-[tree|rtl|ipa]-<pass>=range1+range2\tDisable an optimization pass."
+msgstr ""
+
+#: common.opt:1557
+#, no-c-format
+msgid "-fenable-[tree|rtl|ipa]-<pass>=range1+range2\tEnable an optimization pass."
+msgstr ""
+
+#: common.opt:1561
+#, no-c-format
+msgid "-fdump-<type>\tDump various compiler internals to a file."
+msgstr ""
+
+#: common.opt:1568
+#, no-c-format
+msgid "-fdump-final-insns=filename\tDump to filename the insns at the end of translation."
+msgstr ""
+
+#: common.opt:1572
+#, no-c-format
+msgid "-fdump-go-spec=filename\tWrite all declarations to file as Go code."
+msgstr ""
+
+#: common.opt:1576
+#, no-c-format
+msgid "Suppress output of addresses in debugging dumps."
+msgstr ""
+
+#: common.opt:1580
+#, no-c-format
+msgid "Collect and dump debug information into temporary file if ICE in C/C++ compiler occurred."
+msgstr ""
+
+#: common.opt:1585
+#, no-c-format
+msgid "Dump detailed information on GCC's internal representation of source code locations."
+msgstr ""
+
+#: common.opt:1589
+#, no-c-format
+msgid "Dump optimization passes."
+msgstr ""
+
+#: common.opt:1593
+#, no-c-format
+msgid "Suppress output of instruction numbers, line number notes and addresses in debugging dumps."
+msgstr ""
+
+#: common.opt:1597
+#, no-c-format
+msgid "Suppress output of previous and next insn numbers in debugging dumps."
+msgstr ""
+
+#: common.opt:1601
+#, no-c-format
+msgid "Enable CFI tables via GAS assembler directives."
+msgstr ""
+
+#: common.opt:1605
+#, no-c-format
+msgid "Perform early inlining."
+msgstr ""
+
+#: common.opt:1613
+#, no-c-format
+msgid "Perform interprocedural reduction of aggregates."
+msgstr ""
+
+#: common.opt:1617
+#, no-c-format
+msgid "Perform unused symbol elimination in debug info."
+msgstr ""
+
+#: common.opt:1621
+#, no-c-format
+msgid "Perform unused type elimination in debug info."
+msgstr ""
+
+#: common.opt:1625
+#, no-c-format
+msgid "Do not suppress C++ class debug information."
+msgstr ""
+
+#: common.opt:1629
+#, no-c-format
+msgid "Enable exception handling."
+msgstr ""
+
+#: common.opt:1633
+#, no-c-format
+msgid "Perform a number of minor, expensive optimizations."
+msgstr ""
+
+#: common.opt:1637
+#, no-c-format
+msgid "-fexcess-precision=[fast|standard|16]\tSpecify handling of excess floating-point precision."
+msgstr ""
+
+#: common.opt:1655
+#, no-c-format
+msgid "-fpermitted-flt-eval-methods=[c11|ts-18661]\tSpecify which values of FLT_EVAL_METHOD are permitted."
+msgstr ""
+
+#: common.opt:1671
+#, no-c-format
+msgid "Output lto objects containing both the intermediate language and binary output."
+msgstr ""
+
+#: common.opt:1675
+#, no-c-format
+msgid "Assume no NaNs or infinities are generated."
+msgstr ""
+
+#: common.opt:1679
+#, no-c-format
+msgid "Assume that loops with an exit will terminate and not loop indefinitely."
+msgstr ""
+
+#: common.opt:1683
+#, no-c-format
+msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler."
+msgstr ""
+
+#: common.opt:1687
+#, no-c-format
+msgid "Don't allocate floats and doubles in extended-precision registers."
+msgstr ""
+
+#: common.opt:1695
+#, no-c-format
+msgid "Perform a forward propagation pass on RTL."
+msgstr ""
+
+#: common.opt:1699
+#, no-c-format
+msgid "-ffp-contract=[off|on|fast]\tPerform floating-point expression contraction."
+msgstr ""
+
+#: common.opt:1715
+#, no-c-format
+msgid "Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions."
+msgstr ""
+
+#: common.opt:1722
+#, no-c-format
+msgid "Allow function addresses to be held in registers."
+msgstr ""
+
+#: common.opt:1726
+#, no-c-format
+msgid "Place each function into its own section."
+msgstr ""
+
+#: common.opt:1730
+#, no-c-format
+msgid "Perform global common subexpression elimination."
+msgstr ""
+
+#: common.opt:1734
+#, no-c-format
+msgid "Perform enhanced load motion during global common subexpression elimination."
+msgstr ""
+
+#: common.opt:1738
+#, no-c-format
+msgid "Perform store motion after global common subexpression elimination."
+msgstr ""
+
+#: common.opt:1742
+#, no-c-format
+msgid "Perform redundant load after store elimination in global common subexpression elimination."
+msgstr ""
+
+#: common.opt:1747
+#, no-c-format
+msgid "Perform global common subexpression elimination after register allocation has finished."
+msgstr ""
+
+#: common.opt:1764
+#, no-c-format
+msgid "-fgnat-encodings=[all|gdb|minimal]\tSelect the balance between GNAT encodings and standard DWARF emitted in the debug information."
+msgstr ""
+
+#: common.opt:1769
+#, no-c-format
+msgid "Enable in and out of Graphite representation."
+msgstr ""
+
+#: common.opt:1773
+#, no-c-format
+msgid "Enable Graphite Identity transformation."
+msgstr ""
+
+#: common.opt:1777
+#, no-c-format
+msgid "Enable hoisting adjacent loads to encourage generating conditional move instructions."
+msgstr ""
+
+#: common.opt:1786
+#, no-c-format
+msgid "Improve GCC's ability to track column numbers in large source files, at the expense of slower compilation."
+msgstr ""
+
+#: common.opt:1791
+#, no-c-format
+msgid "Mark all loops as parallel."
+msgstr ""
+
+#: common.opt:1795 common.opt:1803 common.opt:3148
+#, no-c-format
+msgid "Enable loop nest transforms.  Same as -floop-nest-optimize."
+msgstr ""
+
+#: common.opt:1799
+#, no-c-format
+msgid "Enable loop interchange on trees."
+msgstr ""
+
+#: common.opt:1807
+#, no-c-format
+msgid "Perform unroll-and-jam on loops."
+msgstr ""
+
+#: common.opt:1811
+#, no-c-format
+msgid "Enable support for GNU transactional memory."
+msgstr ""
+
+#: common.opt:1815
+#, no-c-format
+msgid "Use STB_GNU_UNIQUE if supported by the assembler."
+msgstr ""
+
+#: common.opt:1823
+#, no-c-format
+msgid "Enable the loop nest optimizer."
+msgstr ""
+
+#: common.opt:1827
+#, no-c-format
+msgid "Force bitfield accesses to match their type width."
+msgstr ""
+
+#: common.opt:1831
+#, no-c-format
+msgid "Merge adjacent stores."
+msgstr ""
+
+#: common.opt:1835
+#, no-c-format
+msgid "Enable guessing of branch probabilities."
+msgstr ""
+
+#: common.opt:1839
+#, no-c-format
+msgid "Enable various security-relevant flags."
+msgstr ""
+
+#: common.opt:1843
+#, no-c-format
+msgid "Harden conditionals not used in branches, checking reversed conditions."
+msgstr ""
+
+#: common.opt:1847
+#, no-c-format
+msgid "Harden conditional branches by checking reversed conditions."
+msgstr ""
+
+#: common.opt:1851
+#, no-c-format
+msgid "Harden control flow by recording and checking execution paths."
+msgstr ""
+
+#: common.opt:1855
+#, no-c-format
+msgid "Disable CFR in leaf functions."
+msgstr ""
+
+#: common.opt:1859
+#, no-c-format
+msgid "Check CFR execution paths also before calls followed by returns of their results."
+msgstr ""
+
+#: common.opt:1863
+#, no-c-format
+msgid "Check CFR execution paths also when exiting a function through an exception."
+msgstr ""
+
+#: common.opt:1867
+#, no-c-format
+msgid "-fhardcfr-check-noreturn-calls=[always|no-xthrow|nothrow|never]\tCheck CFR execution paths also before calling noreturn functions."
+msgstr ""
+
+#: common.opt:1890
+#, no-c-format
+msgid "Process #ident directives."
+msgstr ""
+
+#: common.opt:1894
+#, no-c-format
+msgid "Perform conversion of conditional jumps to branchless equivalents."
+msgstr ""
+
+#: common.opt:1898
+#, no-c-format
+msgid "Perform conversion of conditional jumps to conditional execution."
+msgstr ""
+
+#: common.opt:1902
+#, no-c-format
+msgid "-fstack-reuse=[all|named_vars|none]\tSet stack reuse level for local variables."
+msgstr ""
+
+#: common.opt:1918
+#, no-c-format
+msgid "Convert conditional jumps in innermost loops to branchless equivalents."
+msgstr ""
+
+#: common.opt:1930
+#, no-c-format
+msgid "Do not generate .size directives."
+msgstr ""
+
+#: common.opt:1934
+#, no-c-format
+msgid "Perform indirect inlining."
+msgstr ""
+
+#: common.opt:1940
+#, no-c-format
+msgid "Enable inlining of function declared \"inline\", disabling disables all inlining."
+msgstr ""
+
+#: common.opt:1944
+#, no-c-format
+msgid "Integrate functions into their callers when code size is known not to grow."
+msgstr ""
+
+#: common.opt:1948
+#, no-c-format
+msgid "Integrate functions not declared \"inline\" into their callers when profitable."
+msgstr ""
+
+#: common.opt:1952
+#, no-c-format
+msgid "Integrate functions only required by their single caller."
+msgstr ""
+
+#: common.opt:1959
+#, no-c-format
+msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>."
+msgstr ""
+
+#: common.opt:1963
+#, no-c-format
+msgid "Inline __atomic operations when a lock free instruction sequence is available."
+msgstr ""
+
+#: common.opt:1973
+#, no-c-format
+msgid "-finline-stringops[=memcmp|memcpy|memmove|memset] Expand supported mem/str operations inline, even if against optimization."
+msgstr ""
+
+#: common.opt:2004
+#, no-c-format
+msgid "-fcf-protection=[full|branch|return|none|check]\tInstrument functions with checks to verify jump/call/return control-flow transfer instructions have valid targets."
+msgstr ""
+
+#: common.opt:2027
+#, no-c-format
+msgid "Instrument function entry and exit with profiling calls."
+msgstr ""
+
+#: common.opt:2031
+#, no-c-format
+msgid "Instrument function entry and exit with profiling calls invoked once."
+msgstr ""
+
+#: common.opt:2035
+#, no-c-format
+msgid "-finstrument-functions-exclude-function-list=name,...\tDo not instrument listed functions."
+msgstr ""
+
+#: common.opt:2039
+#, no-c-format
+msgid "-finstrument-functions-exclude-file-list=filename,...\tDo not instrument functions listed in files."
+msgstr ""
+
+#: common.opt:2043
+#, no-c-format
+msgid "Perform interprocedural constant propagation."
+msgstr ""
+
+#: common.opt:2047
+#, no-c-format
+msgid "Perform cloning to make Interprocedural constant propagation stronger."
+msgstr ""
+
+#: common.opt:2055
+#, no-c-format
+msgid "Perform interprocedural bitwise constant propagation."
+msgstr ""
+
+#: common.opt:2059
+#, no-c-format
+msgid "Perform interprocedural modref analysis."
+msgstr ""
+
+#: common.opt:2063
+#, no-c-format
+msgid "Perform interprocedural profile propagation."
+msgstr ""
+
+#: common.opt:2067
+#, no-c-format
+msgid "Perform interprocedural points-to analysis."
+msgstr ""
+
+#: common.opt:2071
+#, no-c-format
+msgid "Discover pure and const functions."
+msgstr ""
+
+#: common.opt:2075
+#, no-c-format
+msgid "Perform Identical Code Folding for functions and read-only variables."
+msgstr ""
+
+#: common.opt:2079
+#, no-c-format
+msgid "Perform Identical Code Folding for functions."
+msgstr ""
+
+#: common.opt:2083
+#, no-c-format
+msgid "Perform Identical Code Folding for variables."
+msgstr ""
+
+#: common.opt:2087
+#, no-c-format
+msgid "Discover read-only and non addressable static variables."
+msgstr ""
+
+#: common.opt:2091
+#, no-c-format
+msgid "Discover read-only, write-only and non-addressable static variables."
+msgstr ""
+
+#: common.opt:2095
+#, no-c-format
+msgid "Reduce stack alignment on call sites if possible."
+msgstr ""
+
+#: common.opt:2107
+#, no-c-format
+msgid "Perform IPA Value Range Propagation."
+msgstr ""
+
+#: common.opt:2111
+#, no-c-format
+msgid "-fira-algorithm=[CB|priority]\tSet the used IRA algorithm."
+msgstr ""
+
+#: common.opt:2115
+#, no-c-format
+msgid "Assume strict aliasing rules apply across (uninlined) function boundaries."
+msgstr ""
+
+#: common.opt:2128
+#, no-c-format
+msgid "-fira-region=[one|all|mixed]\tSet regions for IRA."
+msgstr ""
+
+#: common.opt:2144
+#, no-c-format
+msgid "Use IRA based register pressure calculation in RTL hoist optimizations."
+msgstr ""
+
+#: common.opt:2149
+#, no-c-format
+msgid "Use IRA based register pressure calculation in RTL loop optimizations."
+msgstr ""
+
+#: common.opt:2154
+#, no-c-format
+msgid "Share slots for saving different hard registers."
+msgstr ""
+
+#: common.opt:2158
+#, no-c-format
+msgid "Share stack slots for spilled pseudo-registers."
+msgstr ""
+
+#: common.opt:2162
+#, no-c-format
+msgid "-fira-verbose=<number>\tControl IRA's level of diagnostic messages."
+msgstr ""
+
+#: common.opt:2166
+#, no-c-format
+msgid "Optimize induction variables on trees."
+msgstr ""
+
+#: common.opt:2170
+#, no-c-format
+msgid "Use jump tables for sufficiently large switch statements."
+msgstr ""
+
+#: common.opt:2174
+#, no-c-format
+msgid "Use bit tests for sufficiently large switch statements."
+msgstr ""
+
+#: common.opt:2178
+#, no-c-format
+msgid "Generate code for functions even if they are fully inlined."
+msgstr ""
+
+#: common.opt:2182
+#, no-c-format
+msgid "Generate code for static functions even if they are never called."
+msgstr ""
+
+#: common.opt:2186
+#, no-c-format
+msgid "Emit static const variables even if they are not used."
+msgstr ""
+
+#: common.opt:2190
+#, no-c-format
+msgid "Give external symbols a leading underscore."
+msgstr ""
+
+#: common.opt:2198
+#, no-c-format
+msgid "Do CFG-sensitive rematerialization in LRA."
+msgstr ""
+
+#: common.opt:2202
+#, no-c-format
+msgid "Enable link-time optimization."
+msgstr ""
+
+#: common.opt:2206
+#, no-c-format
+msgid "Link-time optimization with number of parallel jobs or jobserver."
+msgstr ""
+
+#: common.opt:2228
+#, no-c-format
+msgid "Specify the algorithm to partition symbols and vars at linktime."
+msgstr ""
+
+#: common.opt:2233
+#, no-c-format
+msgid "Use zlib/zstd compression level <number> for IL."
+msgstr ""
+
+#: common.opt:2241
+#, no-c-format
+msgid "Report various link-time optimization statistics."
+msgstr ""
+
+#: common.opt:2245
+#, no-c-format
+msgid "Report various link-time optimization statistics for WPA only."
+msgstr ""
+
+#: common.opt:2249
+#, no-c-format
+msgid "Set errno after built-in math functions."
+msgstr ""
+
+#: common.opt:2253
+#, no-c-format
+msgid "-fmax-errors=<number>\tMaximum number of errors to report."
+msgstr ""
+
+#: common.opt:2257
+#, no-c-format
+msgid "Report on permanent memory allocation."
+msgstr ""
+
+#: common.opt:2261
+#, no-c-format
+msgid "Report on permanent memory allocation in WPA only."
+msgstr ""
+
+#: common.opt:2268
+#, no-c-format
+msgid "Attempt to merge identical constants and constant variables."
+msgstr ""
+
+#: common.opt:2272
+#, no-c-format
+msgid "Attempt to merge identical constants across compilation units."
+msgstr ""
+
+#: common.opt:2276
+#, no-c-format
+msgid "Attempt to merge identical debug strings across compilation units."
+msgstr ""
+
+#: common.opt:2280
+#, no-c-format
+msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line.  0 suppresses line-wrapping."
+msgstr ""
+
+#: common.opt:2284
+#, no-c-format
+msgid "Align the start of every function."
+msgstr ""
+
+#: common.opt:2288
+#, no-c-format
+msgid "Perform SMS based modulo scheduling before the first scheduling pass."
+msgstr ""
+
+#: common.opt:2292
+#, no-c-format
+msgid "Perform SMS based modulo scheduling with register moves allowed."
+msgstr ""
+
+#: common.opt:2296
+#, no-c-format
+msgid "Move loop invariant computations out of loops."
+msgstr ""
+
+#: common.opt:2300
+#, no-c-format
+msgid "Move stores out of loops."
+msgstr ""
+
+#: common.opt:2304
+#, no-c-format
+msgid "Building block for specs-based multilib-aware TFLAGS."
+msgstr ""
+
+#: common.opt:2308
+#, no-c-format
+msgid "Use the RTL dead code elimination pass."
+msgstr ""
+
+#: common.opt:2312
+#, no-c-format
+msgid "Use the RTL dead store elimination pass."
+msgstr ""
+
+#: common.opt:2316
+#, no-c-format
+msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling."
+msgstr ""
+
+#: common.opt:2320
+#, no-c-format
+msgid "Support synchronous non-call exceptions."
+msgstr ""
+
+#: common.opt:2327
+#, no-c-format
+msgid "-foffload-options=<targets>=<options>\tSpecify options for the offloading targets."
+msgstr ""
+
+#: common.opt:2331
+#, no-c-format
+msgid "-foffload-abi=[lp64|ilp32]\tSet the ABI to use in an offload compiler."
+msgstr ""
+
+#: common.opt:2344
+#, no-c-format
+msgid "When possible do not generate stack frames."
+msgstr ""
+
+#: common.opt:2351
+#, no-c-format
+msgid "Generate SIMD clones for functions with the OpenMP declare target directive."
+msgstr ""
+
+#: common.opt:2370
+#, no-c-format
+msgid "Enable all optimization info dumps on stderr."
+msgstr ""
+
+#: common.opt:2374
+#, no-c-format
+msgid "-fopt-info[-<type>=filename]\tDump compiler optimization details."
+msgstr ""
+
+#: common.opt:2378
+#, no-c-format
+msgid "Write a SRCFILE.opt-record.json file detailing what optimizations were performed."
+msgstr ""
+
+#: common.opt:2386
+#, no-c-format
+msgid "Optimize sibling and tail recursive calls."
+msgstr ""
+
+#: common.opt:2390
+#, no-c-format
+msgid "Perform partial inlining."
+msgstr ""
+
+#: common.opt:2394 common.opt:2398
+#, no-c-format
+msgid "Report on memory allocation before interprocedural optimization."
+msgstr ""
+
+#: common.opt:2402
+#, no-c-format
+msgid "Pack structure members together without holes."
+msgstr ""
+
+#: common.opt:2406
+#, no-c-format
+msgid "-fpack-struct=<number>\tSet initial maximum structure member alignment."
+msgstr ""
+
+#: common.opt:2410
+#, no-c-format
+msgid "Return small aggregates in memory, not registers."
+msgstr ""
+
+#: common.opt:2414
+#, no-c-format
+msgid "Perform loop peeling."
+msgstr ""
+
+#: common.opt:2418
+#, no-c-format
+msgid "Enable machine specific peephole optimizations."
+msgstr ""
+
+#: common.opt:2422
+#, no-c-format
+msgid "Enable an RTL peephole pass before sched2."
+msgstr ""
+
+#: common.opt:2426
+#, no-c-format
+msgid "Generate position-independent code if possible (large mode)."
+msgstr ""
+
+#: common.opt:2430
+#, no-c-format
+msgid "Generate position-independent code for executables if possible (large mode)."
+msgstr ""
+
+#: common.opt:2434
+#, no-c-format
+msgid "Generate position-independent code if possible (small mode)."
+msgstr ""
+
+#: common.opt:2438
+#, no-c-format
+msgid "Generate position-independent code for executables if possible (small mode)."
+msgstr ""
+
+#: common.opt:2442
+#, no-c-format
+msgid "Use PLT for PIC calls (-fno-plt: load the address from GOT at call site)."
+msgstr ""
+
+#: common.opt:2446
+#, no-c-format
+msgid "Specify a plugin to load."
+msgstr ""
+
+#: common.opt:2450
+#, no-c-format
+msgid "-fplugin-arg-<name>-<key>[=<value>]\tSpecify argument <key>=<value> for plugin <name>."
+msgstr ""
+
+#: common.opt:2454
+#, no-c-format
+msgid "Run predictive commoning optimization."
+msgstr ""
+
+#: common.opt:2458
+#, no-c-format
+msgid "Generate prefetch instructions, if available, for arrays in loops."
+msgstr ""
+
+#: common.opt:2462
+#, no-c-format
+msgid "Enable basic program profiling code."
+msgstr ""
+
+#: common.opt:2466
+#, no-c-format
+msgid "Generate absolute source path names for gcov."
+msgstr ""
+
+#: common.opt:2470
+#, no-c-format
+msgid "Insert arc-based program profiling code."
+msgstr ""
+
+#: common.opt:2474
+#, no-c-format
+msgid "Insert condition coverage profiling code."
+msgstr ""
+
+#: common.opt:2478
+#, no-c-format
+msgid "Set the top-level directory for storing the profile data. The default is 'pwd'."
+msgstr ""
+
+#: common.opt:2483
+#, no-c-format
+msgid "Select the name for storing the profile note file."
+msgstr ""
+
+#: common.opt:2487
+#, no-c-format
+msgid "Enable correction of flow inconsistent profile data input."
+msgstr ""
+
+#: common.opt:2491
+#, no-c-format
+msgid "-fprofile-update=[single|atomic|prefer-atomic]\tSet the profile update method."
+msgstr ""
+
+#: common.opt:2495
+#, no-c-format
+msgid "Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons)."
+msgstr ""
+
+#: common.opt:2499
+#, no-c-format
+msgid "Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons)."
+msgstr ""
+
+#: common.opt:2515
+#, no-c-format
+msgid "-fprofile-reproducible=[serial|parallel-runs|multithreaded]\tControl level of reproducibility of profile gathered by -fprofile-generate."
+msgstr ""
+
+#: common.opt:2531
+#, no-c-format
+msgid "Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=."
+msgstr ""
+
+#: common.opt:2535
+#, no-c-format
+msgid "-fprofile-prefix-map=<old>=<new>\tMap one directory name to another in GCOV coverage result."
+msgstr ""
+
+#: common.opt:2539
+#, no-c-format
+msgid "Enable common options for generating profile info for profile feedback directed optimizations."
+msgstr ""
+
+#: common.opt:2543
+#, no-c-format
+msgid "Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=."
+msgstr ""
+
+#: common.opt:2547
+#, no-c-format
+msgid "Register the profile information in the .gcov_info section instead of using a constructor/destructor."
+msgstr ""
+
+#: common.opt:2551
+#, no-c-format
+msgid "Register the profile information in the specified section instead of using a constructor/destructor."
+msgstr ""
+
+#: common.opt:2555
+#, no-c-format
+msgid "Do not assume that functions never executed during the train run are cold."
+msgstr ""
+
+#: common.opt:2559
+#, no-c-format
+msgid "Enable common options for performing profile feedback directed optimizations."
+msgstr ""
+
+#: common.opt:2563
+#, no-c-format
+msgid "Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=."
+msgstr ""
+
+#: common.opt:2567
+#, no-c-format
+msgid "Insert code to profile values of expressions."
+msgstr ""
+
+#: common.opt:2571
+#, no-c-format
+msgid "Report on consistency of profile."
+msgstr ""
+
+#: common.opt:2575
+#, no-c-format
+msgid "Enable function reordering that improves code placement."
+msgstr ""
+
+#: common.opt:2579
+#, no-c-format
+msgid "Insert NOP instructions at each function entry."
+msgstr ""
+
+#: common.opt:2586
+#, no-c-format
+msgid "-frandom-seed=<string>\tMake compile reproducible using <string>."
+msgstr ""
+
+#: common.opt:2596
+#, no-c-format
+msgid "Record gcc command line switches in the object file."
+msgstr ""
+
+#: common.opt:2600
+#, no-c-format
+msgid "Return small aggregates in registers."
+msgstr ""
+
+#: common.opt:2608
+#, no-c-format
+msgid "Tell DSE that the storage for a C++ object is dead when the constructor starts and when the destructor finishes."
+msgstr ""
+
+#: common.opt:2622
+#, no-c-format
+msgid "-flive-patching=[inline-only-static|inline-clone]\tControl IPA optimizations to provide a safe compilation for live-patching.  At the same time, provides multiple-level control on the enabled IPA optimizations."
+msgstr ""
+
+#: common.opt:2637
+#, no-c-format
+msgid "Tell DCE to remove unused C++ allocations."
+msgstr ""
+
+#: common.opt:2641
+#, no-c-format
+msgid "Relief of register pressure through live range shrinkage."
+msgstr ""
+
+#: common.opt:2645
+#, no-c-format
+msgid "Perform a register renaming optimization pass."
+msgstr ""
+
+#: common.opt:2649
+#, no-c-format
+msgid "Perform a target dependent instruction fusion optimization pass."
+msgstr ""
+
+#: common.opt:2653
+#, no-c-format
+msgid "Reorder basic blocks to improve code placement."
+msgstr ""
+
+#: common.opt:2657
+#, no-c-format
+msgid "-freorder-blocks-algorithm=[simple|stc]\tSet the used basic block reordering algorithm."
+msgstr ""
+
+#: common.opt:2670
+#, no-c-format
+msgid "Reorder basic blocks and partition into hot and cold sections."
+msgstr ""
+
+#: common.opt:2674
+#, no-c-format
+msgid "Reorder functions to improve code placement."
+msgstr ""
+
+#: common.opt:2678
+#, no-c-format
+msgid "Add a common subexpression elimination pass after loop optimizations."
+msgstr ""
+
+#: common.opt:2686
+#, no-c-format
+msgid "Disable optimizations that assume default FP rounding behavior."
+msgstr ""
+
+#: common.opt:2690
+#, no-c-format
+msgid "Enable scheduling across basic blocks."
+msgstr ""
+
+#: common.opt:2694
+#, no-c-format
+msgid "Enable register pressure sensitive insn scheduling."
+msgstr ""
+
+#: common.opt:2698
+#, no-c-format
+msgid "Allow speculative motion of non-loads."
+msgstr ""
+
+#: common.opt:2702
+#, no-c-format
+msgid "Allow speculative motion of some loads."
+msgstr ""
+
+#: common.opt:2706
+#, no-c-format
+msgid "Allow speculative motion of more loads."
+msgstr ""
+
+#: common.opt:2710
+#, no-c-format
+msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler."
+msgstr ""
+
+#: common.opt:2714
+#, no-c-format
+msgid "If scheduling post reload, do superblock scheduling."
+msgstr ""
+
+#: common.opt:2722
+#, no-c-format
+msgid "Reschedule instructions before register allocation."
+msgstr ""
+
+#: common.opt:2726
+#, no-c-format
+msgid "Reschedule instructions after register allocation."
+msgstr ""
+
+#: common.opt:2733
+#, no-c-format
+msgid "Schedule instructions using selective scheduling algorithm."
+msgstr ""
+
+#: common.opt:2737
+#, no-c-format
+msgid "Run selective scheduling after reload."
+msgstr ""
+
+#: common.opt:2741
+#, no-c-format
+msgid "Run self-tests, using the given path to locate test files."
+msgstr ""
+
+#: common.opt:2745
+#, no-c-format
+msgid "Perform software pipelining of inner loops during selective scheduling."
+msgstr ""
+
+#: common.opt:2749
+#, no-c-format
+msgid "Perform software pipelining of outer loops during selective scheduling."
+msgstr ""
+
+#: common.opt:2753
+#, no-c-format
+msgid "Reschedule pipelined regions without pipelining."
+msgstr ""
+
+#: common.opt:2757
+#, no-c-format
+msgid "Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker."
+msgstr ""
+
+#: common.opt:2763
+#, no-c-format
+msgid "Allow premature scheduling of queued insns."
+msgstr ""
+
+#: common.opt:2767
+#, no-c-format
+msgid "-fsched-stalled-insns=<number>\tSet number of queued insns that can be prematurely scheduled."
+msgstr ""
+
+#: common.opt:2775
+#, no-c-format
+msgid "Set dependence distance checking in premature scheduling of queued insns."
+msgstr ""
+
+#: common.opt:2779
+#, no-c-format
+msgid "-fsched-stalled-insns-dep=<number>\tSet dependence distance checking in premature scheduling of queued insns."
+msgstr ""
+
+#: common.opt:2783
+#, no-c-format
+msgid "Enable the group heuristic in the scheduler."
+msgstr ""
+
+#: common.opt:2787
+#, no-c-format
+msgid "Enable the critical path heuristic in the scheduler."
+msgstr ""
+
+#: common.opt:2791
+#, no-c-format
+msgid "Enable the speculative instruction heuristic in the scheduler."
+msgstr ""
+
+#: common.opt:2795
+#, no-c-format
+msgid "Enable the rank heuristic in the scheduler."
+msgstr ""
+
+#: common.opt:2799
+#, no-c-format
+msgid "Enable the last instruction heuristic in the scheduler."
+msgstr ""
+
+#: common.opt:2803
+#, no-c-format
+msgid "Enable the dependent count heuristic in the scheduler."
+msgstr ""
+
+#: common.opt:2807
+#, no-c-format
+msgid "Access data in the same section from shared anchor points."
+msgstr ""
+
+#: common.opt:2819
+#, no-c-format
+msgid "Turn on Redundant Extensions Elimination pass."
+msgstr ""
+
+#: common.opt:2823
+#, no-c-format
+msgid "Show column numbers in diagnostics, when available.  Default on."
+msgstr ""
+
+#: common.opt:2827
+#, no-c-format
+msgid "Emit function prologues only before parts of the function that need it, rather than at the top of the function."
+msgstr ""
+
+#: common.opt:2832
+#, no-c-format
+msgid "Shrink-wrap parts of the prologue and epilogue separately."
+msgstr ""
+
+#: common.opt:2836
+#, no-c-format
+msgid "Disable optimizations observable by IEEE signaling NaNs."
+msgstr ""
+
+#: common.opt:2840
+#, no-c-format
+msgid "Disable floating point optimizations that ignore the IEEE signedness of zero."
+msgstr ""
+
+#: common.opt:2844
+#, no-c-format
+msgid "Convert floating point constants to single precision constants."
+msgstr ""
+
+#: common.opt:2848
+#, no-c-format
+msgid "Split lifetimes of induction variables when loops are unrolled."
+msgstr ""
+
+#: common.opt:2852
+#, no-c-format
+msgid "Generate discontiguous stack frames."
+msgstr ""
+
+#: common.opt:2856
+#, no-c-format
+msgid "Split wide types into independent registers."
+msgstr ""
+
+#: common.opt:2860
+#, no-c-format
+msgid "Split wide types into independent registers earlier."
+msgstr ""
+
+#: common.opt:2864
+#, no-c-format
+msgid "Enable backward propagation of use properties at the SSA level."
+msgstr ""
+
+#: common.opt:2868
+#, no-c-format
+msgid "Optimize conditional patterns using SSA PHI nodes."
+msgstr ""
+
+#: common.opt:2872
+#, no-c-format
+msgid "Optimize amount of stdarg registers saved to stack at start of function."
+msgstr ""
+
+#: common.opt:2876
+#, no-c-format
+msgid "Apply variable expansion when loops are unrolled."
+msgstr ""
+
+#: common.opt:2880
+#, no-c-format
+msgid "-fstack-check=[no|generic|specific]\tInsert stack checking code into the program."
+msgstr ""
+
+#: common.opt:2884
+#, no-c-format
+msgid "Insert stack checking code into the program.  Same as -fstack-check=specific."
+msgstr ""
+
+#: common.opt:2888
+#, no-c-format
+msgid "Insert code to probe each page of stack space as it is allocated to protect from stack-clash style attacks."
+msgstr ""
+
+#: common.opt:2896
+#, no-c-format
+msgid "-fstack-limit-register=<register>\tTrap if the stack goes past <register>."
+msgstr ""
+
+#: common.opt:2900
+#, no-c-format
+msgid "-fstack-limit-symbol=<name>\tTrap if the stack goes past symbol <name>."
+msgstr ""
+
+#: common.opt:2904
+#, no-c-format
+msgid "Use propolice as a stack protection method."
+msgstr ""
+
+#: common.opt:2908
+#, no-c-format
+msgid "Use a stack protection method for every function."
+msgstr ""
+
+#: common.opt:2912
+#, no-c-format
+msgid "Use a smart stack protection method for certain functions."
+msgstr ""
+
+#: common.opt:2916
+#, no-c-format
+msgid "Use stack protection method only for functions with the stack_protect attribute."
+msgstr ""
+
+#: common.opt:2920
+#, no-c-format
+msgid "Output stack usage information on a per-function basis."
+msgstr ""
+
+#: common.opt:2932
+#, no-c-format
+msgid "Assume strict aliasing rules apply."
+msgstr ""
+
+#: common.opt:2936
+#, no-c-format
+msgid "Treat signed overflow as undefined.  Negated as -fwrapv -fwrapv-pointer."
+msgstr ""
+
+#: common.opt:2940
+#, no-c-format
+msgid "Disable stack scrub entirely, disregarding strub attributes."
+msgstr ""
+
+#: common.opt:2944
+#, no-c-format
+msgid "Enable stack scrub as per attributes, with strict call checking."
+msgstr ""
+
+#: common.opt:2953
+#, no-c-format
+msgid "Restore default strub mode: as per attributes, with relaxed checking."
+msgstr ""
+
+#: common.opt:2957
+#, no-c-format
+msgid "Enable stack scrubbing for all viable functions."
+msgstr ""
+
+#: common.opt:2961
+#, no-c-format
+msgid "Enable at-calls stack scrubbing for all viable functions."
+msgstr ""
+
+#: common.opt:2965
+#, no-c-format
+msgid "Enable internal stack scrubbing for all viable functions."
+msgstr ""
+
+#: common.opt:2969
+#, no-c-format
+msgid "Implement __atomic operations via libcalls to legacy __sync functions."
+msgstr ""
+
+#: common.opt:2973
+#, no-c-format
+msgid "Check for syntax errors, then stop."
+msgstr ""
+
+#: common.opt:2977
+#, no-c-format
+msgid "Create data files needed by \"gcov\"."
+msgstr ""
+
+#: common.opt:2981
+#, no-c-format
+msgid "Perform jump threading optimizations."
+msgstr ""
+
+#: common.opt:2985
+#, no-c-format
+msgid "Report the time taken by each compiler pass."
+msgstr ""
+
+#: common.opt:2989
+#, no-c-format
+msgid "Record times taken by sub-phases separately."
+msgstr ""
+
+#: common.opt:2993
+#, no-c-format
+msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model."
+msgstr ""
+
+#: common.opt:3012
+#, no-c-format
+msgid "Reorder top level functions, variables, and asms."
+msgstr ""
+
+#: common.opt:3016
+#, no-c-format
+msgid "Perform superblock formation via tail duplication."
+msgstr ""
+
+#: common.opt:3020
+#, no-c-format
+msgid "For targets that normally need trampolines for nested functions, always generate them instead of using descriptors."
+msgstr ""
+
+#: common.opt:3025
+#, no-c-format
+msgid "Whether trampolines are generated in executable memory rather than executable stack."
+msgstr ""
+
+#: common.opt:3043
+#, no-c-format
+msgid "Assume floating-point operations can trap."
+msgstr ""
+
+#: common.opt:3047
+#, no-c-format
+msgid "Trap for signed overflow in addition, subtraction and multiplication."
+msgstr ""
+
+#: common.opt:3051
+#, no-c-format
+msgid "Enable SSA-CCP optimization on trees."
+msgstr ""
+
+#: common.opt:3055
+#, no-c-format
+msgid "Enable SSA-BIT-CCP optimization on trees."
+msgstr ""
+
+#: common.opt:3063
+#, no-c-format
+msgid "Enable loop header copying on trees."
+msgstr ""
+
+#: common.opt:3071
+#, no-c-format
+msgid "Enable SSA coalescing of user variables."
+msgstr ""
+
+#: common.opt:3079
+#, no-c-format
+msgid "Enable copy propagation on trees."
+msgstr ""
+
+#: common.opt:3087
+#, no-c-format
+msgid "Transform condition stores into unconditional ones."
+msgstr ""
+
+#: common.opt:3091
+#, no-c-format
+msgid "Perform conversions of switch initializations."
+msgstr ""
+
+#: common.opt:3095
+#, no-c-format
+msgid "Enable SSA dead code elimination optimization on trees."
+msgstr ""
+
+#: common.opt:3099
+#, no-c-format
+msgid "Enable dominator optimizations."
+msgstr ""
+
+#: common.opt:3103
+#, no-c-format
+msgid "Enable tail merging on trees."
+msgstr ""
+
+#: common.opt:3107
+#, no-c-format
+msgid "Enable dead store elimination."
+msgstr ""
+
+#: common.opt:3111
+#, no-c-format
+msgid "Enable forward propagation on trees."
+msgstr ""
+
+#: common.opt:3115
+#, no-c-format
+msgid "Enable Full Redundancy Elimination (FRE) on trees."
+msgstr ""
+
+#: common.opt:3119
+#, no-c-format
+msgid "Enable string length optimizations on trees."
+msgstr ""
+
+#: common.opt:3123
+#, no-c-format
+msgid "Detect paths that trigger erroneous or undefined behavior due to dereferencing a null pointer.  Isolate those paths from the main control flow and turn the statement with erroneous or undefined behavior into a trap."
+msgstr ""
+
+#: common.opt:3129
+#, no-c-format
+msgid "Detect paths that trigger erroneous or undefined behavior due to a null value being used in a way forbidden by a returns_nonnull or nonnull attribute.  Isolate those paths from the main control flow and turn the statement with erroneous or undefined behavior into a trap."
+msgstr ""
+
+#: common.opt:3136
+#, no-c-format
+msgid "Enable loop distribution on trees."
+msgstr ""
+
+#: common.opt:3140
+#, no-c-format
+msgid "Enable loop distribution for patterns transformed into a library call."
+msgstr ""
+
+#: common.opt:3144
+#, no-c-format
+msgid "Enable loop invariant motion on trees."
+msgstr ""
+
+#: common.opt:3152
+#, no-c-format
+msgid "Create canonical induction variables in loops."
+msgstr ""
+
+#: common.opt:3156
+#, no-c-format
+msgid "Enable loop optimizations on tree level."
+msgstr ""
+
+#: common.opt:3160
+#, no-c-format
+msgid "-ftree-parallelize-loops=<number>\tEnable automatic parallelization of loops."
+msgstr ""
+
+#: common.opt:3164
+#, no-c-format
+msgid "Enable hoisting loads from conditional pointers."
+msgstr ""
+
+#: common.opt:3168
+#, no-c-format
+msgid "Enable SSA-PRE optimization on trees."
+msgstr ""
+
+#: common.opt:3172
+#, no-c-format
+msgid "In SSA-PRE optimization on trees, enable partial-partial redundancy elimination."
+msgstr ""
+
+#: common.opt:3176
+#, no-c-format
+msgid "Perform function-local points-to analysis on trees."
+msgstr ""
+
+#: common.opt:3180
+#, no-c-format
+msgid "Enable reassociation on tree level."
+msgstr ""
+
+#: common.opt:3188
+#, no-c-format
+msgid "Enable SSA code sinking on trees."
+msgstr ""
+
+#: common.opt:3192
+#, no-c-format
+msgid "Perform straight-line strength reduction."
+msgstr ""
+
+#: common.opt:3196
+#, no-c-format
+msgid "Perform scalar replacement of aggregates."
+msgstr ""
+
+#: common.opt:3200
+#, no-c-format
+msgid "Replace temporary expressions in the SSA->normal pass."
+msgstr ""
+
+#: common.opt:3204
+#, no-c-format
+msgid "Perform live range splitting during the SSA->normal pass."
+msgstr ""
+
+#: common.opt:3208
+#, no-c-format
+msgid "Perform Value Range Propagation on trees."
+msgstr ""
+
+#: common.opt:3212
+#, no-c-format
+msgid "Split paths leading to loop backedges."
+msgstr ""
+
+#: common.opt:3216
+#, no-c-format
+msgid "Assume common declarations may be overridden with ones with a larger trailing array."
+msgstr ""
+
+#: common.opt:3221
+#, no-c-format
+msgid "Compile whole compilation unit at a time."
+msgstr ""
+
+#: common.opt:3225
+#, no-c-format
+msgid "Trap on __builtin_unreachable instead of using it for optimization."
+msgstr ""
+
+#: common.opt:3229
+#, no-c-format
+msgid "Perform loop unrolling when iteration count is known."
+msgstr ""
+
+#: common.opt:3233
+#, no-c-format
+msgid "Perform loop unrolling for all loops."
+msgstr ""
+
+#: common.opt:3248
+#, no-c-format
+msgid "Allow optimization for floating-point arithmetic which may change the result of the operation due to rounding."
+msgstr ""
+
+#: common.opt:3253
+#, no-c-format
+msgid "Same as -fassociative-math for expressions which include division."
+msgstr ""
+
+#: common.opt:3261
+#, no-c-format
+msgid "Allow math optimizations that may violate IEEE or ISO standards."
+msgstr ""
+
+#: common.opt:3265
+#, no-c-format
+msgid "Perform loop unswitching."
+msgstr ""
+
+#: common.opt:3269
+#, no-c-format
+msgid "Perform loop splitting."
+msgstr ""
+
+#: common.opt:3273
+#, no-c-format
+msgid "Version loops based on whether indices have a stride of one."
+msgstr ""
+
+#: common.opt:3277
+#, no-c-format
+msgid "Just generate unwind tables for exception handling."
+msgstr ""
+
+#: common.opt:3281
+#, no-c-format
+msgid "Use the bfd linker instead of the default linker."
+msgstr ""
+
+#: common.opt:3285
+#, no-c-format
+msgid "Use the gold linker instead of the default linker."
+msgstr ""
+
+#: common.opt:3289
+#, no-c-format
+msgid "Use the lld LLVM linker instead of the default linker."
+msgstr ""
+
+#: common.opt:3293
+#, no-c-format
+msgid "Use the Modern linker (MOLD) linker instead of the default linker."
+msgstr ""
+
+#: common.opt:3303
+#, no-c-format
+msgid "Perform variable tracking."
+msgstr ""
+
+#: common.opt:3310
+#, no-c-format
+msgid "Perform variable tracking by annotating assignments."
+msgstr ""
+
+#: common.opt:3316
+#, no-c-format
+msgid "Toggle -fvar-tracking-assignments."
+msgstr ""
+
+#: common.opt:3323
+#, no-c-format
+msgid "Perform variable tracking and also tag variables that are uninitialized."
+msgstr ""
+
+#: common.opt:3328
+#, no-c-format
+msgid "Enable vectorization on trees."
+msgstr ""
+
+#: common.opt:3336
+#, no-c-format
+msgid "Enable loop vectorization on trees."
+msgstr ""
+
+#: common.opt:3340
+#, no-c-format
+msgid "Enable basic block vectorization (SLP) on trees."
+msgstr ""
+
+#: common.opt:3344
+#, no-c-format
+msgid "-fvect-cost-model=[unlimited|dynamic|cheap|very-cheap]\tSpecifies the cost model for vectorization."
+msgstr ""
+
+#: common.opt:3348
+#, no-c-format
+msgid "-fsimd-cost-model=[unlimited|dynamic|cheap|very-cheap]\tSpecifies the vectorization cost model for code marked with a simd directive."
+msgstr ""
+
+#: common.opt:3367
+#, no-c-format
+msgid "Enables the dynamic vectorizer cost model.  Preserved for backward compatibility."
+msgstr ""
+
+#: common.opt:3375
+#, no-c-format
+msgid "Enable copy propagation of scalar-evolution information."
+msgstr ""
+
+#: common.opt:3379
+#, no-c-format
+msgid "-ftrivial-auto-var-init=[uninitialized|pattern|zero]\tAdd initializations to automatic variables."
+msgstr ""
+
+#: common.opt:3401
+#, no-c-format
+msgid "Add extra commentary to assembler output."
+msgstr ""
+
+#: common.opt:3405
+#, no-c-format
+msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility."
+msgstr ""
+
+#: common.opt:3424
+#, no-c-format
+msgid "Validate vtable pointers before using them."
+msgstr ""
+
+#: common.opt:3440
+#, no-c-format
+msgid "Output vtable verification counters."
+msgstr ""
+
+#: common.opt:3444
+#, no-c-format
+msgid "Output vtable verification pointer sets information."
+msgstr ""
+
+#: common.opt:3448
+#, no-c-format
+msgid "Use expression value profiles in optimizations."
+msgstr ""
+
+#: common.opt:3452
+#, no-c-format
+msgid "Construct webs and split unrelated uses of single variable."
+msgstr ""
+
+#: common.opt:3456
+#, no-c-format
+msgid "Enable conditional dead code elimination for builtin calls."
+msgstr ""
+
+#: common.opt:3460
+#, no-c-format
+msgid "Perform whole program optimizations."
+msgstr ""
+
+#: common.opt:3464
+#, no-c-format
+msgid "Assume pointer overflow wraps around."
+msgstr ""
+
+#: common.opt:3468
+#, no-c-format
+msgid "Assume signed arithmetic overflow wraps around."
+msgstr ""
+
+#: common.opt:3472
+#, no-c-format
+msgid "Put zero initialized data in the bss section."
+msgstr ""
+
+#: common.opt:3476
+#, no-c-format
+msgid "Clear call-used registers upon function return."
+msgstr ""
+
+#: common.opt:3480
+#, no-c-format
+msgid "Generate debug information in default format."
+msgstr ""
+
+#: common.opt:3484
+#, no-c-format
+msgid "Assume assembler support for (DWARF2+) .loc directives."
+msgstr ""
+
+#: common.opt:3488
+#, no-c-format
+msgid "Assume assembler support for view in (DWARF2+) .loc directives."
+msgstr ""
+
+#: common.opt:3492
+#, no-c-format
+msgid "Generate debug information in CodeView format."
+msgstr ""
+
+#: common.opt:3512
+#, no-c-format
+msgid "Record DW_AT_decl_column and DW_AT_call_column in DWARF."
+msgstr ""
+
+#: common.opt:3518
+#, no-c-format
+msgid "Generate CTF debug information at default level."
+msgstr ""
+
+#: common.opt:3522
+#, no-c-format
+msgid "Generate BTF debug information at default level."
+msgstr ""
+
+#: common.opt:3526
+#, no-c-format
+msgid "Generate debug information in default version of DWARF format."
+msgstr ""
+
+#: common.opt:3530
+#, no-c-format
+msgid "Generate debug information in DWARF v2 (or later) format."
+msgstr ""
+
+#: common.opt:3534
+#, no-c-format
+msgid "Use 32-bit DWARF format when emitting DWARF debug information."
+msgstr ""
+
+#: common.opt:3538
+#, no-c-format
+msgid "Use 64-bit DWARF format when emitting DWARF debug information."
+msgstr ""
+
+#: common.opt:3542
+#, no-c-format
+msgid "Generate debug information in default extended format."
+msgstr ""
+
+#: common.opt:3546
+#, no-c-format
+msgid "Generate extended entry point information for inlined functions."
+msgstr ""
+
+#: common.opt:3550
+#, no-c-format
+msgid "Compute locview reset points based on insn length estimates."
+msgstr ""
+
+#: common.opt:3558
+#, no-c-format
+msgid "Don't generate DWARF pubnames and pubtypes sections."
+msgstr ""
+
+#: common.opt:3562
+#, no-c-format
+msgid "Generate DWARF pubnames and pubtypes sections."
+msgstr ""
+
+#: common.opt:3566
+#, no-c-format
+msgid "Generate DWARF pubnames and pubtypes sections with GNU extensions."
+msgstr ""
+
+#: common.opt:3570
+#, no-c-format
+msgid "Record gcc command line switches in DWARF DW_AT_producer."
+msgstr ""
+
+#: common.opt:3574
+#, no-c-format
+msgid "Generate debug information in separate .dwo files."
+msgstr ""
+
+#: common.opt:3586
+#, no-c-format
+msgid "Emit progressive recommended breakpoint locations."
+msgstr ""
+
+#: common.opt:3590
+#, no-c-format
+msgid "Don't emit DWARF additions beyond selected version."
+msgstr ""
+
+#: common.opt:3594
+#, no-c-format
+msgid "Add description attributes to some DWARF DIEs that have no name attribute."
+msgstr ""
+
+#: common.opt:3598
+#, no-c-format
+msgid "Toggle debug information generation."
+msgstr ""
+
+#: common.opt:3602
+#, no-c-format
+msgid "Augment variable location lists with progressive views."
+msgstr ""
+
+#: common.opt:3609
+#, no-c-format
+msgid "Generate debug information in VMS format."
+msgstr ""
+
+#: common.opt:3638
+#, no-c-format
+msgid "Generate compressed debug sections."
+msgstr ""
+
+#: common.opt:3642
+#, no-c-format
+msgid "-gz=<format>\tGenerate compressed debug sections in format <format>."
+msgstr ""
+
+#: common.opt:3649
+#, no-c-format
+msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory."
+msgstr ""
+
+#: common.opt:3653
+#, no-c-format
+msgid "-imultiarch <dir>\tSet <dir> to be the multiarch include subdirectory."
+msgstr ""
+
+#: common.opt:3681
+#, no-c-format
+msgid "-o <file>\tPlace output into <file>."
+msgstr ""
+
+#: common.opt:3685
+#, no-c-format
+msgid "Enable function profiling."
+msgstr ""
+
+#: common.opt:3695
+#, no-c-format
+msgid "Like -pedantic but issue them as errors."
+msgstr ""
+
+#: common.opt:3735
+#, no-c-format
+msgid "Do not display functions compiled or elapsed time."
+msgstr ""
+
+#: common.opt:3767
+#, no-c-format
+msgid "Enable verbose output."
+msgstr ""
+
+#: common.opt:3771
+#, no-c-format
+msgid "Display the compiler's version."
+msgstr ""
+
+#: common.opt:3775
+#, no-c-format
+msgid "Suppress warnings."
+msgstr ""
+
+#: common.opt:3785
+#, no-c-format
+msgid "Create a shared library."
+msgstr ""
+
+#: common.opt:3845
+#, no-c-format
+msgid "Don't create a dynamically linked position independent executable."
+msgstr ""
+
+#: common.opt:3849
+#, no-c-format
+msgid "Create a dynamically linked position independent executable."
+msgstr ""
+
+#: common.opt:3853
+#, no-c-format
+msgid "Create a static position independent executable."
+msgstr ""
+
+#: common.opt:3860
+#, no-c-format
+msgid "Use caller save register across calls if possible."
+msgstr ""
+
+#: params.opt:27
+#, no-c-format
+msgid "Loops iterating at least selected number of iterations will get loop alignment."
+msgstr ""
+
+#: params.opt:31
+#, no-c-format
+msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block get alignment."
+msgstr ""
+
+#: params.opt:35
+#, no-c-format
+msgid "Enable asan globals protection."
+msgstr ""
+
+#: params.opt:39
+#, no-c-format
+msgid "Enable asan allocas/VLAs protection."
+msgstr ""
+
+#: params.opt:43
+#, no-c-format
+msgid "Enable asan load operations protection."
+msgstr ""
+
+#: params.opt:47
+#, no-c-format
+msgid "Enable asan store operations protection."
+msgstr ""
+
+#: params.opt:51
+#, no-c-format
+msgid "Use callbacks instead of inline code if number of accesses in function becomes greater or equal to this number."
+msgstr ""
+
+#: params.opt:55
+#, no-c-format
+msgid "Prefix calls to memcpy, memset and memmove with __asan_ or __hwasan_ for -fsanitize=kernel-address or -fsanitize=kernel-hwaddress."
+msgstr ""
+
+#: params.opt:59
+#, no-c-format
+msgid "Enable asan builtin functions protection."
+msgstr ""
+
+#: params.opt:63
+#, no-c-format
+msgid "Enable asan stack protection."
+msgstr ""
+
+#: params.opt:67
+#, no-c-format
+msgid "Enable asan detection of use-after-return bugs."
+msgstr ""
+
+#: params.opt:71
+#, no-c-format
+msgid "Enable hwasan instrumentation of statically sized stack-allocated variables."
+msgstr ""
+
+#: params.opt:75
+#, no-c-format
+msgid "Use random base tag for each frame, as opposed to base always zero."
+msgstr ""
+
+#: params.opt:79
+#, no-c-format
+msgid "Enable hwasan instrumentation of allocas/VLAs."
+msgstr ""
+
+#: params.opt:83
+#, no-c-format
+msgid "Enable hwasan instrumentation of load operations."
+msgstr ""
+
+#: params.opt:87
+#, no-c-format
+msgid "Enable hwasan instrumentation of store operations."
+msgstr ""
+
+#: params.opt:91
+#, no-c-format
+msgid "Enable hwasan instrumentation of builtin functions."
+msgstr ""
+
+#: params.opt:95
+#, no-c-format
+msgid "Average number of iterations of a loop."
+msgstr ""
+
+#: params.opt:99
+#, no-c-format
+msgid "Maximum number of bits for which we avoid creating FMAs."
+msgstr ""
+
+#: params.opt:103
+#, no-c-format
+msgid "Set the estimated probability in percentage for builtin expect. The default value is 90% probability."
+msgstr ""
+
+#: params.opt:107
+#, no-c-format
+msgid "The maximum length of a constant string for a builtin string cmp call eligible for inlining. The default value is 3."
+msgstr ""
+
+#: params.opt:111
+#, no-c-format
+msgid "The smallest number of different values for which it is best to use a jump-table instead of a tree of conditional branches, if 0, use the default for the machine."
+msgstr ""
+
+#: params.opt:115
+#, no-c-format
+msgid "Probability that COMDAT function will be shared with different compilation unit."
+msgstr ""
+
+#: params.opt:119
+#, no-c-format
+msgid "Maximum number of namespaces to search for alternatives when name lookup fails."
+msgstr ""
+
+#: params.opt:123
+#, no-c-format
+msgid "Maximum number of queries into the alias oracle per store."
+msgstr ""
+
+#: params.opt:127
+#, no-c-format
+msgid "Maximum size (in bytes) of objects tracked bytewise by dead store elimination."
+msgstr ""
+
+#: params.opt:131
+#, no-c-format
+msgid "Maximal estimated growth of function body caused by early inlining of single call."
+msgstr ""
+
+#: params.opt:135
+#, no-c-format
+msgid "Scale factor to apply to the number of statements in a threading path crossing a loop backedge when comparing to max-jump-thread-duplication-stmts."
+msgstr ""
+
+#: params.opt:139
+#, no-c-format
+msgid "Whether the target fully pipelines FMA instructions.  If non-zero, reassociation considers the benefit of parallelizing FMA's multiplication part and addition part, assuming FMUL and FMA use the same units that can also do FADD."
+msgstr ""
+
+#: params.opt:146
+#, no-c-format
+msgid "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload."
+msgstr ""
+
+#: params.opt:150
+#, no-c-format
+msgid "The threshold ratio for performing partial redundancy elimination after reload."
+msgstr ""
+
+#: params.opt:154
+#, no-c-format
+msgid "Scaling factor in calculation of maximum distance an expression can be moved by GCSE optimizations."
+msgstr ""
+
+#: params.opt:158
+#, no-c-format
+msgid "Cost at which GCSE optimizations will not constraint the distance an expression can travel."
+msgstr ""
+
+#: params.opt:162
+#, no-c-format
+msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+msgstr ""
+
+#: params.opt:166
+#, no-c-format
+msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+msgstr ""
+
+#: params.opt:170
+#, no-c-format
+msgid "The number of executions of a basic block which is considered hot. The parameter is used only in GIMPLE FE."
+msgstr ""
+
+#: params.opt:174
+#, no-c-format
+msgid "Whether codegen errors should be ICEs when -fchecking."
+msgstr ""
+
+#: params.opt:178
+#, no-c-format
+msgid "Maximum number of arrays per SCoP."
+msgstr ""
+
+#: params.opt:182
+#, no-c-format
+msgid "Maximum number of parameters in a SCoP."
+msgstr ""
+
+#: params.opt:186
+#, no-c-format
+msgid "Maximum number of blocks for -fharden-control-flow-redundancy."
+msgstr ""
+
+#: params.opt:190
+#, no-c-format
+msgid "Maximum number of blocks for in-line -fharden-control-flow-redundancy."
+msgstr ""
+
+#: params.opt:194
+#, no-c-format
+msgid "The number of elements for which hash table verification is done for each searched element."
+msgstr ""
+
+#: params.opt:198
+#, no-c-format
+msgid "The denominator n of fraction 1/n of the maximal execution count of a basic block in the entire program that a basic block needs to at least have in order to be considered hot (used in non-LTO mode)."
+msgstr ""
+
+#: params.opt:202
+#, no-c-format
+msgid "The number of most executed permilles of the profiled execution of the entire program to which the execution count of a basic block must be part of in order to be considered hot (used in LTO mode)."
+msgstr ""
+
+#: params.opt:206
+#, no-c-format
+msgid "The denominator n of fraction 1/n of the execution frequency of the entry block of a function that a basic block of this function needs to at least have in order to be considered hot."
+msgstr ""
+
+#: params.opt:210
+#, no-c-format
+msgid "The scale (in percents) applied to inline-insns-single and auto limits when heuristics hints that inlining is very profitable."
+msgstr ""
+
+#: params.opt:214
+#, no-c-format
+msgid "The minimal estimated speedup allowing inliner to ignore inline-insns-single and inline-insns-auto."
+msgstr ""
+
+#: params.opt:218
+#, no-c-format
+msgid "How much can given compilation unit grow because of the inlining (in percent)."
+msgstr ""
+
+#: params.opt:222
+#, no-c-format
+msgid "The upper bound for sharing integer constants."
+msgstr ""
+
+#: params.opt:226
+#, no-c-format
+msgid "Threshold ipa-cp opportunity evaluation that is still considered beneficial to clone."
+msgstr ""
+
+#: params.opt:230
+#, no-c-format
+msgid "Compile-time bonus IPA-CP assigns to candidates which make loop bounds or strides known."
+msgstr ""
+
+#: params.opt:234
+#, no-c-format
+msgid "Maximum depth of recursive cloning for self-recursive function."
+msgstr ""
+
+#: params.opt:238
+#, no-c-format
+msgid "Recursive cloning only when the probability of call being executed exceeds the parameter."
+msgstr ""
+
+#: params.opt:242
+#, no-c-format
+msgid "When propagating IPA-CP effect estimates, multiply frequencies of recursive edges that bring back an unchanged value by this factor."
+msgstr ""
+
+#: params.opt:246
+#, no-c-format
+msgid "Percentage penalty the recursive functions will receive when they are evaluated for cloning."
+msgstr ""
+
+#: params.opt:250
+#, no-c-format
+msgid "Percentage penalty functions containing a single call to another function will receive when they are evaluated for cloning."
+msgstr ""
+
+#: params.opt:254
+#, no-c-format
+msgid "How much can given compilation unit grow because of the interprocedural constant propagation (in percent)."
+msgstr ""
+
+#: params.opt:258
+#, no-c-format
+msgid "The size of translation unit that IPA-CP pass considers large."
+msgstr ""
+
+#: params.opt:262
+#, no-c-format
+msgid "Maximum size of a list of values associated with each parameter for interprocedural constant propagation."
+msgstr ""
+
+#: params.opt:266
+#, no-c-format
+msgid "When using profile feedback, use the edge at this percentage position in frequency histogram as the bases for IPA-CP heuristics."
+msgstr ""
+
+#: params.opt:270
+#, no-c-format
+msgid "Maximum number of statements visited during jump function offset discovery."
+msgstr ""
+
+#: params.opt:274
+#, no-c-format
+msgid "Maximum number of statements that will be visited by IPA formal parameter analysis based on alias analysis in any given function."
+msgstr ""
+
+#: params.opt:278
+#, no-c-format
+msgid "Maximum number of aggregate content items for a parameter in jump functions and lattices."
+msgstr ""
+
+#: params.opt:282
+#, no-c-format
+msgid "Maximum number of operations in a parameter expression that can be handled by IPA analysis."
+msgstr ""
+
+#: params.opt:286
+#, no-c-format
+msgid "Maximum number of different predicates used to track properties of loops in IPA analysis."
+msgstr ""
+
+#: params.opt:290
+#, no-c-format
+msgid "Maximal number of boundary endpoints of case ranges of switch statement used during IPA function summary generation."
+msgstr ""
+
+#: params.opt:294
+#, no-c-format
+msgid "Minimum probability (in percent) of dereferencing of a function pointer parameter for it to be considered for replacement with simple values."
+msgstr ""
+
+#: params.opt:298
+#, no-c-format
+msgid "Maximum pieces that IPA-SRA tracks per formal parameter, as a consequence, also the maximum number of replacements of a formal parameter."
+msgstr ""
+
+#: params.opt:302
+#, no-c-format
+msgid "Maximum allowed growth of total size of new parameters that ipa-sra replaces a pointer to an aggregate with."
+msgstr ""
+
+#: params.opt:306
+#, no-c-format
+msgid "Additional maximum allowed growth of total size of new parameters that ipa-sra replaces a pointer to an aggregate with, if it points to a local variable that the caller only writes to and passes it as an argument to functions."
+msgstr ""
+
+#: params.opt:310
+#, no-c-format
+msgid "The number of registers in each class kept unused by loop invariant motion."
+msgstr ""
+
+#: params.opt:314
+#, no-c-format
+msgid "Max size of conflict table in MB."
+msgstr ""
+
+#: params.opt:318
+#, no-c-format
+msgid "Approximate function insn number in 1K units triggering simple local RA."
+msgstr ""
+
+#: params.opt:322
+#, no-c-format
+msgid "Max loops number for regional RA."
+msgstr ""
+
+#: params.opt:326
+#, no-c-format
+msgid "Control ira to consider matching constraint (duplicated operand number) heavily in all available alternatives for preferred register class.  If it is set as zero, it means ira only respects the matching constraint when it's in the only available alternative with an appropriate register class.  Otherwise, it means ira will check all available alternatives for preferred register class even if it has found some choice with an appropriate register class and respect the found qualified matching constraint."
+msgstr ""
+
+#: params.opt:330
+#, no-c-format
+msgid "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization."
+msgstr ""
+
+#: params.opt:334
+#, no-c-format
+msgid "Bound on number of candidates below that all candidates are considered in iv optimizations."
+msgstr ""
+
+#: params.opt:338
+#, no-c-format
+msgid "Bound on number of iv uses in loop optimized in iv optimizations."
+msgstr ""
+
+#: params.opt:342
+#, no-c-format
+msgid "The maximum code size growth ratio when expanding into a jump table (in percent).  The parameter is used when optimizing for size."
+msgstr ""
+
+#: params.opt:346
+#, no-c-format
+msgid "The maximum code size growth ratio when expanding into a jump table (in percent).  The parameter is used when optimizing for speed."
+msgstr ""
+
+#: params.opt:350
+#, no-c-format
+msgid "The size of L1 cache line."
+msgstr ""
+
+#: params.opt:354
+#, no-c-format
+msgid "The minimum recommended offset between two concurrently-accessed objects to avoid additional performance degradation due to contention introduced by the implementation.  Typically the L1 cache line size, but can be larger to accommodate a variety of target processors with different cache line sizes. C++17 code might use this value in structure layout, but is strongly discouraged from doing so in public ABIs."
+msgstr ""
+
+#: params.opt:363
+#, no-c-format
+msgid "The maximum recommended size of contiguous memory occupied by two objects accessed with temporal locality by concurrent threads.  Typically the L1 cache line size, but can be smaller to accommodate a variety of target processors with different cache line sizes."
+msgstr ""
+
+#: params.opt:370
+#, no-c-format
+msgid "The size of L1 cache."
+msgstr ""
+
+#: params.opt:374
+#, no-c-format
+msgid "The size of L2 cache."
+msgstr ""
+
+#: params.opt:378
+#, no-c-format
+msgid "Maximal growth due to inlining of large function (in percent)."
+msgstr ""
+
+#: params.opt:382
+#, no-c-format
+msgid "The size of function body to be considered large."
+msgstr ""
+
+#: params.opt:386
+#, no-c-format
+msgid "The size of stack frame to be considered large."
+msgstr ""
+
+#: params.opt:390
+#, no-c-format
+msgid "Maximal stack frame growth due to inlining (in percent)."
+msgstr ""
+
+#: params.opt:394
+#, no-c-format
+msgid "The size of translation unit to be considered large."
+msgstr ""
+
+#: params.opt:398
+#, no-c-format
+msgid "Maximum number of concurrently open C++ module files when lazy loading."
+msgstr ""
+
+#: params.opt:402
+#, no-c-format
+msgid "The minimum cost of an expensive expression in the loop invariant motion."
+msgstr ""
+
+#: params.opt:406
+#, no-c-format
+msgid "True if a non-short-circuit operation is optimal."
+msgstr ""
+
+#: params.opt:410
+#, no-c-format
+msgid "Size of tiles for loop blocking."
+msgstr ""
+
+#: params.opt:414
+#, no-c-format
+msgid "The maximum number of stmts in loop nest for loop interchange."
+msgstr ""
+
+#: params.opt:418
+#, no-c-format
+msgid "The minimum stride ratio for loop interchange to be profitable."
+msgstr ""
+
+#: params.opt:422
+#, no-c-format
+msgid "Max basic blocks number in loop for loop invariant motion."
+msgstr ""
+
+#: params.opt:426
+#, no-c-format
+msgid "Maximum number of datarefs in loop for building loop data dependencies."
+msgstr ""
+
+#: params.opt:430
+#, no-c-format
+msgid "The maximum number of instructions in an inner loop that is being considered for versioning."
+msgstr ""
+
+#: params.opt:434
+#, no-c-format
+msgid "The maximum number of instructions in an outer loop that is being considered for versioning, on top of the instructions in inner loops."
+msgstr ""
+
+#: params.opt:438
+#, no-c-format
+msgid "Minimal fall-through edge probability in percentage used to add BB to inheritance EBB in LRA."
+msgstr ""
+
+#: params.opt:442
+#, no-c-format
+msgid "The max number of reload pseudos which are considered during spilling a non-reload pseudo."
+msgstr ""
+
+#: params.opt:446
+#, no-c-format
+msgid "Maximal size of a partition for LTO (in estimated instructions)."
+msgstr ""
+
+#: params.opt:450
+#, no-c-format
+msgid "maximal number of LTO partitions streamed in parallel."
+msgstr ""
+
+#: params.opt:454
+#, no-c-format
+msgid "Minimal size of a partition for LTO (in estimated instructions)."
+msgstr ""
+
+#: params.opt:458
+#, no-c-format
+msgid "Number of partitions the program should be split to."
+msgstr ""
+
+#: params.opt:462
+#, no-c-format
+msgid "The maximum number of instructions to consider to unroll in a loop on average."
+msgstr ""
+
+#: params.opt:466
+#, no-c-format
+msgid "The maximum number of insns combine tries to combine."
+msgstr ""
+
+#: params.opt:470
+#, no-c-format
+msgid "The maximum depth of a loop nest we completely peel."
+msgstr ""
+
+#: params.opt:474
+#, no-c-format
+msgid "The maximum number of peelings of a single loop that is peeled completely."
+msgstr ""
+
+#: params.opt:478
+#, no-c-format
+msgid "The maximum number of insns of a completely peeled loop."
+msgstr ""
+
+#: params.opt:482
+#, no-c-format
+msgid "The maximum number of incoming edges to consider for crossjumping."
+msgstr ""
+
+#: params.opt:486
+#, no-c-format
+msgid "The maximum instructions CSE process before flushing."
+msgstr ""
+
+#: params.opt:490
+#, no-c-format
+msgid "The maximum length of path considered in cse."
+msgstr ""
+
+#: params.opt:494
+#, no-c-format
+msgid "The maximum memory locations recorded by cselib."
+msgstr ""
+
+#: params.opt:498
+#, no-c-format
+msgid "Max. count of debug markers to expand or inline."
+msgstr ""
+
+#: params.opt:502
+#, no-c-format
+msgid "The maximum number of instructions to consider to fill a delay slot."
+msgstr ""
+
+#: params.opt:506
+#, no-c-format
+msgid "The maximum number of instructions to consider to find accurate live register information."
+msgstr ""
+
+#: params.opt:510
+#, no-c-format
+msgid "Maximum number of active local stores in RTL dead store elimination."
+msgstr ""
+
+#: params.opt:514
+#, no-c-format
+msgid "The maximum number of nested indirect inlining performed by early inliner."
+msgstr ""
+
+#: params.opt:518
+#, no-c-format
+msgid "Maximum number of fields in a structure before pointer analysis treats the structure as a single variable."
+msgstr ""
+
+#: params.opt:522
+#, no-c-format
+msgid "Maximum number of instructions to copy when duplicating blocks on a finite state automaton jump thread path."
+msgstr ""
+
+#: params.opt:526
+#, no-c-format
+msgid "The maximum ratio of insertions to deletions of expressions in GCSE."
+msgstr ""
+
+#: params.opt:530
+#, no-c-format
+msgid "The maximum amount of memory to be allocated by GCSE, in kilobytes."
+msgstr ""
+
+#: params.opt:534
+#, no-c-format
+msgid "The maximum number of insns to duplicate when unfactoring computed gotos."
+msgstr ""
+
+#: params.opt:538
+#, no-c-format
+msgid "The maximum expansion factor when copying basic blocks."
+msgstr ""
+
+#: params.opt:542
+#, no-c-format
+msgid "Maximum depth of search in the dominator tree for expressions to hoist."
+msgstr ""
+
+#: params.opt:546
+#, no-c-format
+msgid "Maximum loop depth of a call which is considered for inlining functions called once."
+msgstr ""
+
+#: params.opt:550
+#, no-c-format
+msgid "Maximum combined size of caller and callee which is inlined if callee is called once."
+msgstr ""
+
+#: params.opt:554
+#, no-c-format
+msgid "The maximum number of instructions when automatically inlining."
+msgstr ""
+
+#: params.opt:558
+#, no-c-format
+msgid "The maximum number of instructions inline function can grow to via recursive inlining."
+msgstr ""
+
+#: params.opt:562
+#, no-c-format
+msgid "The maximum number of instructions non-inline function can grow to via recursive inlining."
+msgstr ""
+
+#: params.opt:566
+#, no-c-format
+msgid "The maximum number of instructions in a single function eligible for inlining."
+msgstr ""
+
+#: params.opt:570
+#, no-c-format
+msgid "The maximum number of instructions when inlining for size."
+msgstr ""
+
+#: params.opt:574
+#, no-c-format
+msgid "The maximum number of instructions when automatically inlining small functions."
+msgstr ""
+
+#: params.opt:578
+#, no-c-format
+msgid "The maximum depth of recursive inlining for inline functions."
+msgstr ""
+
+#: params.opt:582
+#, no-c-format
+msgid "The maximum depth of recursive inlining for non-inline functions."
+msgstr ""
+
+#: params.opt:586
+#, no-c-format
+msgid "Maximum number of isl operations, 0 means unlimited."
+msgstr ""
+
+#: params.opt:590
+#, no-c-format
+msgid "Bound on the cost of an expression to compute the number of iterations."
+msgstr ""
+
+#: params.opt:594
+#, no-c-format
+msgid "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates."
+msgstr ""
+
+#: params.opt:598
+#, no-c-format
+msgid "Maximum number of statements allowed in a block that needs to be duplicated when threading jumps."
+msgstr ""
+
+#: params.opt:602
+#, no-c-format
+msgid "Search space limit for the backwards jump threader."
+msgstr ""
+
+#: params.opt:606
+#, no-c-format
+msgid "The maximum number of RTL nodes that can be recorded as combiner's last value."
+msgstr ""
+
+#: params.opt:610
+#, no-c-format
+msgid "The maximum number of insns in loop header duplicated by the copy loop headers pass."
+msgstr ""
+
+#: params.opt:614
+#, no-c-format
+msgid "The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop."
+msgstr ""
+
+#: params.opt:618
+#, no-c-format
+msgid "Minimum page size for warning purposes."
+msgstr ""
+
+#: params.opt:622
+#, no-c-format
+msgid "Maximum length of partial antic set when performing tree pre optimization."
+msgstr ""
+
+#: params.opt:626
+#, no-c-format
+msgid "The maximum number of branches on the path through the peeled sequence."
+msgstr ""
+
+#: params.opt:630
+#, no-c-format
+msgid "The maximum number of peelings of a single loop."
+msgstr ""
+
+#: params.opt:634
+#, no-c-format
+msgid "The maximum number of insns of a peeled loop."
+msgstr ""
+
+#: params.opt:638
+#, no-c-format
+msgid "The maximum length of scheduling's pending operations list."
+msgstr ""
+
+#: params.opt:642 params.opt:686
+#, no-c-format
+msgid "The maximum number of blocks in a region to be considered for interblock scheduling."
+msgstr ""
+
+#: params.opt:646 params.opt:690
+#, no-c-format
+msgid "The maximum number of insns in a region to be considered for interblock scheduling."
+msgstr ""
+
+#: params.opt:650
+#, no-c-format
+msgid "Maximum depth of sqrt chains to use when synthesizing exponentiation by a real constant."
+msgstr ""
+
+#: params.opt:654
+#, no-c-format
+msgid "The maximum number of loop iterations we predict statically."
+msgstr ""
+
+#: params.opt:658
+#, no-c-format
+msgid "The maximum number of instructions to search backward when looking for equivalent reload."
+msgstr ""
+
+#: params.opt:662
+#, no-c-format
+msgid "Maximum number of insns in a basic block to consider for RTL if-conversion."
+msgstr ""
+
+#: params.opt:666
+#, no-c-format
+msgid "Maximum permissible cost for the sequence that would be generated by the RTL if-conversion pass for a branch that is considered predictable."
+msgstr ""
+
+#: params.opt:670
+#, no-c-format
+msgid "Maximum permissible cost for the sequence that would be generated by the RTL if-conversion pass for a branch that is considered unpredictable."
+msgstr ""
+
+#: params.opt:674
+#, no-c-format
+msgid "The maximum number of iterations through CFG to extend regions."
+msgstr ""
+
+#: params.opt:678
+#, no-c-format
+msgid "The maximum conflict delay for an insn to be considered for speculative motion."
+msgstr ""
+
+#: params.opt:682
+#, no-c-format
+msgid "The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass."
+msgstr ""
+
+#: params.opt:694
+#, no-c-format
+msgid "Maximum length of candidate scans for straight-line strength reduction."
+msgstr ""
+
+#: params.opt:698
+#, no-c-format
+msgid "Maximum number of may-defs visited when devirtualizing speculatively."
+msgstr ""
+
+#: params.opt:702
+#, no-c-format
+msgid "Maximum recursion depth allowed when querying a property of an SSA name."
+msgstr ""
+
+#: params.opt:706
+#, no-c-format
+msgid "Maximum number of constant stores to merge in the store merging pass."
+msgstr ""
+
+#: params.opt:710
+#, no-c-format
+msgid "Maximum number of conditional store pairs that can be sunk."
+msgstr ""
+
+#: params.opt:714 params.opt:718
+#, no-c-format
+msgid "Maximum number of store chains to track at the same time in the store merging pass."
+msgstr ""
+
+#: params.opt:722
+#, no-c-format
+msgid "Maximum amount of similar bbs to compare a bb with."
+msgstr ""
+
+#: params.opt:726
+#, no-c-format
+msgid "Maximum amount of iterations of the pass over a function."
+msgstr ""
+
+#: params.opt:730
+#, no-c-format
+msgid "Maximum number of strings for which strlen optimization pass will track string lengths."
+msgstr ""
+
+#: params.opt:734
+#, no-c-format
+msgid "Maximum number of arguments in a PHI supported by TREE if-conversion unless the loop is marked with simd pragma."
+msgstr ""
+
+#: params.opt:738
+#, no-c-format
+msgid "The maximum number of unrollings of a single loop."
+msgstr ""
+
+#: params.opt:742
+#, no-c-format
+msgid "The maximum number of instructions to consider to unroll in a loop."
+msgstr ""
+
+#: params.opt:746
+#, no-c-format
+msgid "The maximum number of insns of an unswitched loop."
+msgstr ""
+
+#: params.opt:750
+#, no-c-format
+msgid "The maximum depth of a loop nest to be unswitched."
+msgstr ""
+
+#: params.opt:754
+#, no-c-format
+msgid "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling."
+msgstr ""
+
+#: params.opt:758
+#, no-c-format
+msgid "Max. recursion depth for expanding var tracking expressions."
+msgstr ""
+
+#: params.opt:762
+#, no-c-format
+msgid "Max. size of loc list for which reverse ops should be added."
+msgstr ""
+
+#: params.opt:766
+#, no-c-format
+msgid "Max. size of var tracking hash tables."
+msgstr ""
+
+#: params.opt:770
+#, no-c-format
+msgid "Maximum number of VALUEs handled during a single find_base_term call."
+msgstr ""
+
+#: params.opt:774
+#, no-c-format
+msgid "The minimum number of matching instructions to consider for crossjumping."
+msgstr ""
+
+#: params.opt:778
+#, no-c-format
+msgid "Inline recursively only when the probability of call being executed exceeds the parameter."
+msgstr ""
+
+#: params.opt:782
+#, no-c-format
+msgid "Min. ratio of insns to prefetches to enable prefetching for a loop with an unknown trip count."
+msgstr ""
+
+#: params.opt:786
+#, no-c-format
+msgid "The minimum threshold for probability of semi-invariant condition statement to trigger loop split."
+msgstr ""
+
+#: params.opt:790
+#, no-c-format
+msgid "The minimum UID to be used for a nondebug insn."
+msgstr ""
+
+#: params.opt:794
+#, no-c-format
+msgid "The minimum size of variables taking part in stack slot sharing when not optimizing."
+msgstr ""
+
+#: params.opt:798
+#, no-c-format
+msgid "The minimum probability of reaching a source block for interblock speculative scheduling."
+msgstr ""
+
+#: params.opt:802
+#, no-c-format
+msgid "If -ftree-vectorize is used, the minimal loop bound of a loop to be considered for vectorization."
+msgstr ""
+
+#: params.opt:806
+#, no-c-format
+msgid "--param=openacc-kernels=[decompose|parloops]\tSpecify mode of OpenACC 'kernels' constructs handling."
+msgstr ""
+
+#: params.opt:819
+#, no-c-format
+msgid "--param=openacc-privatization=[quiet|noisy]\tSpecify mode of OpenACC privatization diagnostics."
+msgstr ""
+
+#: params.opt:832
+#, no-c-format
+msgid "Chunk size of omp schedule for loops parallelized by parloops."
+msgstr ""
+
+#: params.opt:836
+#, no-c-format
+msgid "Minimum number of iterations per thread of an innermost parallelized loop."
+msgstr ""
+
+#: params.opt:840
+#, no-c-format
+msgid "--param=parloops-schedule=[static|dynamic|guided|auto|runtime]\tSchedule type of omp schedule for loops parallelized by parloops."
+msgstr ""
+
+#: params.opt:862
+#, no-c-format
+msgid "Maximum probability of the entry BB of split region (in percent relative to entry BB of the function) to make partial inlining happen."
+msgstr ""
+
+#: params.opt:866
+#, no-c-format
+msgid "Maximal estimated outcome of branch considered predictable."
+msgstr ""
+
+#: params.opt:870
+#, no-c-format
+msgid "Whether software prefetch hints should be issued for non-constant strides."
+msgstr ""
+
+#: params.opt:874
+#, no-c-format
+msgid "The number of insns executed before prefetch is completed."
+msgstr ""
+
+#: params.opt:878
+#, no-c-format
+msgid "Min. ratio of insns to mem ops to enable prefetching in a loop."
+msgstr ""
+
+#: params.opt:882
+#, no-c-format
+msgid "The minimum constant stride beyond which we should use prefetch hints for."
+msgstr ""
+
+#: params.opt:886
+#, no-c-format
+msgid "Use internal function id in profile lookup."
+msgstr ""
+
+#: params.opt:890
+#, no-c-format
+msgid "--param=ranger-debug=[none|trace|gori|cache|tracegori|all] Specifies the output mode for debugging ranger."
+msgstr ""
+
+#: params.opt:915
+#, no-c-format
+msgid "Maximum depth of logical expression evaluation ranger will look through when evaluating outgoing edge ranges."
+msgstr ""
+
+#: params.opt:920
+#, no-c-format
+msgid "Maximum depth of instruction chains to consider for recomputation in the outgoing range calculator."
+msgstr ""
+
+#: params.opt:925
+#, no-c-format
+msgid "Maximum number of relations the oracle will register in a basic block."
+msgstr ""
+
+#: params.opt:929
+#, no-c-format
+msgid "Maximum depth of a loop nest to fully value-number optimistically."
+msgstr ""
+
+#: params.opt:933
+#, no-c-format
+msgid "Maximum number of disambiguations to perform per memory access."
+msgstr ""
+
+#: params.opt:937
+#, no-c-format
+msgid "Bound on the complexity of the expressions in the scalar evolutions analyzer."
+msgstr ""
+
+#: params.opt:941
+#, no-c-format
+msgid "Bound on size of expressions used in the scalar evolutions analyzer."
+msgstr ""
+
+#: params.opt:945
+#, no-c-format
+msgid "Hardware autoprefetcher scheduler model control flag.  Number of lookahead cycles the model looks into, at '0' only enable instruction sorting heuristic.  Disabled by default."
+msgstr ""
+
+#: params.opt:949
+#, no-c-format
+msgid "Minimal distance between possibly conflicting store and load."
+msgstr ""
+
+#: params.opt:953
+#, no-c-format
+msgid "Which -fsched-pressure algorithm to apply."
+msgstr ""
+
+#: params.opt:957
+#, no-c-format
+msgid "The minimal probability of speculation success (in percents), so that speculative insn will be scheduled."
+msgstr ""
+
+#: params.opt:961
+#, no-c-format
+msgid "The minimum probability an edge must have for the scheduler to save its state across it."
+msgstr ""
+
+#: params.opt:965
+#, no-c-format
+msgid "Maximum number of instructions in the ready list that are considered eligible for renaming."
+msgstr ""
+
+#: params.opt:969
+#, no-c-format
+msgid "The maximum size of the lookahead window of selective scheduling."
+msgstr ""
+
+#: params.opt:973
+#, no-c-format
+msgid "Maximum number of times that an insn could be scheduled."
+msgstr ""
+
+#: params.opt:977
+#, no-c-format
+msgid "The number of prefetches that can run at the same time."
+msgstr ""
+
+#: params.opt:981
+#, no-c-format
+msgid "Target block's relative execution frequency (as a percentage) required to sink a statement."
+msgstr ""
+
+#: params.opt:985
+#, no-c-format
+msgid "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA."
+msgstr ""
+
+#: params.opt:989
+#, no-c-format
+msgid "A threshold on the average loop count considered by the swing modulo scheduler."
+msgstr ""
+
+#: params.opt:993
+#, no-c-format
+msgid "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop."
+msgstr ""
+
+#: params.opt:997
+#, no-c-format
+msgid "The minimum value of stage count that swing modulo scheduler will generate."
+msgstr ""
+
+#: params.opt:1001
+#, no-c-format
+msgid "Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for size."
+msgstr ""
+
+#: params.opt:1005
+#, no-c-format
+msgid "Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for speed."
+msgstr ""
+
+#: params.opt:1009
+#, no-c-format
+msgid "Maximum number of artificial accesses to enable forward propagation that Scalar Replacement of Aggregates will keep for one local variable."
+msgstr ""
+
+#: params.opt:1013
+#, no-c-format
+msgid "The maximum number of SSA_NAME assignments to follow in determining a value."
+msgstr ""
+
+#: params.opt:1017
+#, no-c-format
+msgid "The lower bound for a buffer to be considered for stack smashing protection."
+msgstr ""
+
+#: params.opt:1021
+#, no-c-format
+msgid "Size of the stack guard expressed as a power of two in bytes."
+msgstr ""
+
+#: params.opt:1025
+#, no-c-format
+msgid "Interval in which to probe the stack expressed as a power of two in bytes."
+msgstr ""
+
+#: params.opt:1029
+#, no-c-format
+msgid "Allow the store merging pass to introduce unaligned stores if it is legal to do so."
+msgstr ""
+
+#: params.opt:1033
+#, no-c-format
+msgid "Maximum size of a single store merging region in bytes."
+msgstr ""
+
+#: params.opt:1037
+#, no-c-format
+msgid "The maximum ratio between array size and switch branches for a switch conversion to take place."
+msgstr ""
+
+#: params.opt:1041
+#, no-c-format
+msgid "Maximum number of bases stored in each modref tree."
+msgstr ""
+
+#: params.opt:1045
+#, no-c-format
+msgid "Maximum number of references stored in each modref base."
+msgstr ""
+
+#: params.opt:1049
+#, no-c-format
+msgid "Maximum number of accesses stored in each modref reference."
+msgstr ""
+
+#: params.opt:1053
+#, no-c-format
+msgid "Maximum number of tests performed by modref query."
+msgstr ""
+
+#: params.opt:1057
+#, no-c-format
+msgid "Maximum depth of DFS walk used by modref escape analysis."
+msgstr ""
+
+#: params.opt:1061
+#, no-c-format
+msgid "Maximum number of escape points tracked by modref per SSA-name."
+msgstr ""
+
+#: params.opt:1065
+#, no-c-format
+msgid "Maximum number of times a given range is adjusted during the dataflow."
+msgstr ""
+
+#: params.opt:1069
+#, no-c-format
+msgid "--param=threader-debug=[none|all] Enables verbose dumping of the threader solver."
+msgstr ""
+
+#: params.opt:1082
+#, no-c-format
+msgid "Size in bytes after which thread-local aggregates should be instrumented with the logging functions instead of save/restore pairs."
+msgstr ""
+
+#: params.opt:1086
+#, no-c-format
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available."
+msgstr ""
+
+#: params.opt:1090
+#, no-c-format
+msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available."
+msgstr ""
+
+#: params.opt:1094
+#, no-c-format
+msgid "Maximal code growth caused by tail duplication (in percent)."
+msgstr ""
+
+#: params.opt:1098
+#, no-c-format
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available."
+msgstr ""
+
+#: params.opt:1102
+#, no-c-format
+msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available."
+msgstr ""
+
+#: params.opt:1106
+#, no-c-format
+msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)."
+msgstr ""
+
+#: params.opt:1110
+#, no-c-format
+msgid "Set the maximum number of instructions executed in parallel in reassociated tree.  If 0, use the target dependent heuristic."
+msgstr ""
+
+#: params.opt:1114
+#, no-c-format
+msgid "Emit special instrumentation for accesses to volatiles."
+msgstr ""
+
+#: params.opt:1118
+#, no-c-format
+msgid "Emit instrumentation calls to __tsan_func_entry() and __tsan_func_exit()."
+msgstr ""
+
+#: params.opt:1122
+#, no-c-format
+msgid "Maximum number of nested calls to search for control dependencies during uninitialized variable analysis."
+msgstr ""
+
+#: params.opt:1126
+#, no-c-format
+msgid "Maximum number of predicates anded for each predicate ored in the normalized predicate chain."
+msgstr ""
+
+#: params.opt:1131
+#, no-c-format
+msgid "Maximum number of predicates ored in the normalized predicate chain."
+msgstr ""
+
+#: params.opt:1135
+#, no-c-format
+msgid "Instruction accounted for function prologue, epilogue and other overhead."
+msgstr ""
+
+#: params.opt:1139
+#, no-c-format
+msgid "Time accounted for function prologue, epilogue and other overhead."
+msgstr ""
+
+#: params.opt:1143
+#, no-c-format
+msgid "Instruction accounted for function thunk overhead."
+msgstr ""
+
+#: params.opt:1147
+#, no-c-format
+msgid "Time accounted for function thunk overhead."
+msgstr ""
+
+#: params.opt:1151
+#, no-c-format
+msgid "The denominator n of fraction 1/n of the number of profiled runs of the entire program below which the execution count of a basic block must be in order for the basic block to be considered unlikely."
+msgstr ""
+
+#: params.opt:1155
+#, no-c-format
+msgid "Maximum unroll factor for the unroll-and-jam transformation."
+msgstr ""
+
+#: params.opt:1159
+#, no-c-format
+msgid "Minimum percentage of memrefs that must go away for unroll-and-jam to be considered profitable."
+msgstr ""
+
+#: params.opt:1163
+#, no-c-format
+msgid "Use direct poisoning/unpoisoning instructions for variables smaller or equal to this number."
+msgstr ""
+
+#: params.opt:1167
+#, no-c-format
+msgid "Whether to use canonical types."
+msgstr ""
+
+#: params.opt:1171
+#, no-c-format
+msgid "Enable loop epilogue vectorization using smaller vector size."
+msgstr ""
+
+#: params.opt:1175
+#, no-c-format
+msgid "Maximum number of possible vector layouts (such as permutations) to consider when optimizing to-be-vectorized code."
+msgstr ""
+
+#: params.opt:1179
+#, no-c-format
+msgid "Maximum number of loop peels to enhance alignment of data references in a loop."
+msgstr ""
+
+#: params.opt:1183
+#, no-c-format
+msgid "Bound on number of runtime checks inserted by the vectorizer's loop versioning for alias check."
+msgstr ""
+
+#: params.opt:1187
+#, no-c-format
+msgid "Bound on number of runtime checks inserted by the vectorizer's loop versioning for alignment check."
+msgstr ""
+
+#: params.opt:1191
+#, no-c-format
+msgid "Controls how loop vectorizer uses partial vectors.  0 means never, 1 means only for loops whose need to iterate can be removed, 2 means for all loops.  The default value is 2."
+msgstr ""
+
+#: params.opt:1195
+#, no-c-format
+msgid "The maximum factor which the loop vectorizer applies to the cost of statements in an inner loop relative to the loop being vectorized."
+msgstr ""
+
+#: params.opt:1199
+#, no-c-format
+msgid "Enable loop vectorization of floating point inductions."
+msgstr ""
+
+#: params.opt:1203
+#, no-c-format
+msgid "Maximum number of basic blocks before VRP uses a sparse bitmap cache."
+msgstr ""
+
+#: params.opt:1207
+#, no-c-format
+msgid "Maximum number of outgoing edges in a switch before VRP will not process it."
+msgstr ""
+
+#: params.opt:1211
+#, no-c-format
+msgid "Maximum number of basic blocks for VRP to use a basic cache vector."
+msgstr ""
+
+#: cfgrtl.cc:2837
+msgid "flow control insn inside a basic block"
+msgstr ""
+
+#: cfgrtl.cc:3129
+msgid "insn outside basic block"
+msgstr ""
+
+#: cfgrtl.cc:3137
+msgid "return not followed by barrier"
+msgstr ""
+
+#: collect-utils.cc:206
+#, c-format
+msgid "[cannot find %s]"
+msgstr ""
+
+#: collect2.cc:1561
+#, c-format
+msgid "collect2 version %s\n"
+msgstr ""
+
+#: collect2.cc:1666
+#, c-format
+msgid "%d constructor found\n"
+msgid_plural "%d constructors found\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: collect2.cc:1670
+#, c-format
+msgid "%d destructor found\n"
+msgid_plural "%d destructors found\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: collect2.cc:1674
+#, c-format
+msgid "%d frame table found\n"
+msgid_plural "%d frame tables found\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: collect2.cc:1829
+#, c-format
+msgid "[Leaving %s]\n"
+msgstr ""
+
+#: collect2.cc:2059
+#, c-format
+msgid ""
+"\n"
+"write_c_file - output name is %s, prefix is %s\n"
+msgstr ""
+
+#: collect2.cc:2583
+#, c-format
+msgid ""
+"\n"
+"ldd output with constructors/destructors.\n"
+msgstr ""
+
+#: cprop.cc:1759
+msgid "const/copy propagation disabled"
+msgstr ""
+
+#: diagnostic-format-json.cc:343 diagnostic-format-sarif.cc:1780
+#, c-format
+msgid "error: unable to open '%s' for writing: %s\n"
+msgstr ""
+
+#. Print a header for the remaining output to stderr, and
+#. return, attempting to print the usual ICE messages to
+#. stderr.  Hopefully this will be helpful to the user in
+#. indicating what's gone wrong (also for DejaGnu, for pruning
+#. those messages).
+#: diagnostic-format-sarif.cc:1699
+#, c-format
+msgid "Internal compiler error:\n"
+msgstr ""
+
+#: diagnostic.cc:729
+#, c-format
+msgid "compilation terminated due to -fmax-errors=%u.\n"
+msgstr ""
+
+#: diagnostic.cc:756
+#, c-format
+msgid "compilation terminated due to -Wfatal-errors.\n"
+msgstr ""
+
+#: diagnostic.cc:788
+#, c-format
+msgid "Please submit a full bug report, with preprocessed source.\n"
+msgstr ""
+
+#: diagnostic.cc:791
+#, c-format
+msgid "Please submit a full bug report, with preprocessed source (by using -freport-bug).\n"
+msgstr ""
+
+#: diagnostic.cc:795
+#, c-format
+msgid "Please include the complete backtrace with any bug report.\n"
+msgstr ""
+
+#: diagnostic.cc:797
+#, c-format
+msgid "See %s for instructions.\n"
+msgstr ""
+
+#: diagnostic.cc:805
+#, c-format
+msgid "compilation terminated.\n"
+msgstr ""
+
+#: diagnostic.cc:881
+msgid "                 from"
+msgstr ""
+
+#: diagnostic.cc:882
+msgid "In file included from"
+msgstr ""
+
+#. 2
+#: diagnostic.cc:883
+msgid "        included from"
+msgstr ""
+
+#: diagnostic.cc:884
+msgid "In module"
+msgstr ""
+
+#. 4
+#: diagnostic.cc:885
+msgid "of module"
+msgstr ""
+
+#: diagnostic.cc:886
+msgid "In module imported at"
+msgstr ""
+
+#. 6
+#: diagnostic.cc:887
+msgid "imported at"
+msgstr ""
+
+#: diagnostic.cc:1592
+#, c-format
+msgid "%s:%d: confused by earlier errors, bailing out\n"
+msgstr ""
+
+#: diagnostic.cc:2303
+#, c-format
+msgid "internal compiler error: error reporting routines re-entered.\n"
+msgstr ""
+
+#: diagnostic.cc:2334 diagnostic.cc:2353
+#, gcc-internal-format, gfc-internal-format
+msgid "in %s, at %s:%d"
+msgstr ""
+
+#: diagnostic.cc:2404
+#, c-format
+msgid "%s: all warnings being treated as errors"
+msgstr ""
+
+#: diagnostic.cc:2409
+#, c-format
+msgid "%s: some warnings being treated as errors"
+msgstr ""
+
+#: final.cc:1097
+msgid "negative insn length"
+msgstr ""
+
+#: final.cc:2807
+msgid "could not split insn"
+msgstr ""
+
+#: final.cc:3182
+msgid "invalid 'asm': "
+msgstr ""
+
+#: final.cc:3315
+#, c-format
+msgid "nested assembly dialect alternatives"
+msgstr ""
+
+#: final.cc:3343 final.cc:3355
+#, c-format
+msgid "unterminated assembly dialect alternative"
+msgstr ""
+
+#: final.cc:3497
+#, c-format
+msgid "operand number missing after %%-letter"
+msgstr ""
+
+#: final.cc:3500 final.cc:3541
+#, c-format
+msgid "operand number out of range"
+msgstr ""
+
+#: final.cc:3558
+#, c-format
+msgid "invalid %%-code"
+msgstr ""
+
+#: final.cc:3592
+#, c-format
+msgid "'%%l' operand isn't a label"
+msgstr ""
+
+#. We can't handle floating point constants;
+#. PRINT_OPERAND must handle them.
+#. We can't handle floating point constants;
+#. TARGET_PRINT_OPERAND must handle them.
+#: final.cc:3728 config/arc/arc.cc:6311 config/i386/i386.cc:12926
+#, c-format
+msgid "floating constant misused"
+msgstr ""
+
+#: final.cc:3786 config/arc/arc.cc:6408 config/i386/i386.cc:13017
+#: config/pdp11/pdp11.cc:1872
+#, c-format
+msgid "invalid expression as operand"
+msgstr ""
+
+#: gcc.cc:126
+#, c-format
+msgid "%s\n"
+msgstr ""
+
+#: gcc.cc:1860
+#, c-format
+msgid "Using built-in specs.\n"
+msgstr ""
+
+#: gcc.cc:2105
+#, c-format
+msgid ""
+"Setting spec %s to '%s'\n"
+"\n"
+msgstr ""
+
+#: gcc.cc:2310
+#, c-format
+msgid "Reading specs from %s\n"
+msgstr ""
+
+#: gcc.cc:2440
+#, c-format
+msgid "could not find specs file %s\n"
+msgstr ""
+
+#: gcc.cc:2511
+#, c-format
+msgid "rename spec %s to %s\n"
+msgstr ""
+
+#: gcc.cc:2513
+#, c-format
+msgid ""
+"spec is '%s'\n"
+"\n"
+msgstr ""
+
+#: gcc.cc:3374
+#, c-format
+msgid ""
+"\n"
+"Go ahead? (y or n) "
+msgstr ""
+
+#: gcc.cc:3546
+#, c-format
+msgid "# %s %.2f %.2f\n"
+msgstr ""
+
+#: gcc.cc:3726
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "გამოყენება: %s [პარამეტრები] ფაილი...\n"
+
+#: gcc.cc:3727
+msgid "Options:\n"
+msgstr ""
+
+#: gcc.cc:3729
+msgid "  -pass-exit-codes         Exit with highest error code from a phase.\n"
+msgstr ""
+
+#: gcc.cc:3730
+msgid "  --help                   Display this information.\n"
+msgstr ""
+
+#: gcc.cc:3731
+msgid "  --target-help            Display target specific command line options (including assembler and linker options).\n"
+msgstr ""
+
+#: gcc.cc:3733
+msgid "  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].\n"
+msgstr ""
+
+#: gcc.cc:3734
+msgid "                           Display specific types of command line options.\n"
+msgstr ""
+
+#: gcc.cc:3736
+msgid "  (Use '-v --help' to display command line options of sub-processes).\n"
+msgstr ""
+
+#: gcc.cc:3737
+msgid "  --version                Display compiler version information.\n"
+msgstr ""
+
+#: gcc.cc:3738
+msgid "  -dumpspecs               Display all of the built in spec strings.\n"
+msgstr ""
+
+#: gcc.cc:3739
+msgid "  -dumpversion             Display the version of the compiler.\n"
+msgstr ""
+
+#: gcc.cc:3740
+msgid "  -dumpmachine             Display the compiler's target processor.\n"
+msgstr ""
+
+#: gcc.cc:3741
+msgid "  -foffload=<targets>      Specify offloading targets.\n"
+msgstr ""
+
+#: gcc.cc:3742
+msgid "  -print-search-dirs       Display the directories in the compiler's search path.\n"
+msgstr ""
+
+#: gcc.cc:3743
+msgid "  -print-libgcc-file-name  Display the name of the compiler's companion library.\n"
+msgstr ""
+
+#: gcc.cc:3744
+msgid "  -print-file-name=<lib>   Display the full path to library <lib>.\n"
+msgstr ""
+
+#: gcc.cc:3745
+msgid "  -print-prog-name=<prog>  Display the full path to compiler component <prog>.\n"
+msgstr ""
+
+#: gcc.cc:3746
+msgid ""
+"  -print-multiarch         Display the target's normalized GNU triplet, used as\n"
+"                           a component in the library path.\n"
+msgstr ""
+
+#: gcc.cc:3749
+msgid "  -print-multi-directory   Display the root directory for versions of libgcc.\n"
+msgstr ""
+
+#: gcc.cc:3750
+msgid ""
+"  -print-multi-lib         Display the mapping between command line options and\n"
+"                           multiple library search directories.\n"
+msgstr ""
+
+#: gcc.cc:3753
+msgid "  -print-multi-os-directory Display the relative path to OS libraries.\n"
+msgstr ""
+
+#: gcc.cc:3754
+msgid "  -print-sysroot           Display the target libraries directory.\n"
+msgstr ""
+
+#: gcc.cc:3755
+msgid "  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers.\n"
+msgstr ""
+
+#: gcc.cc:3756
+msgid "  -Wa,<options>            Pass comma-separated <options> on to the assembler.\n"
+msgstr ""
+
+#: gcc.cc:3757
+msgid "  -Wp,<options>            Pass comma-separated <options> on to the preprocessor.\n"
+msgstr ""
+
+#: gcc.cc:3758
+msgid "  -Wl,<options>            Pass comma-separated <options> on to the linker.\n"
+msgstr ""
+
+#: gcc.cc:3759
+msgid "  -Xassembler <arg>        Pass <arg> on to the assembler.\n"
+msgstr ""
+
+#: gcc.cc:3760
+msgid "  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor.\n"
+msgstr ""
+
+#: gcc.cc:3761
+msgid "  -Xlinker <arg>           Pass <arg> on to the linker.\n"
+msgstr ""
+
+#: gcc.cc:3762
+msgid "  -save-temps              Do not delete intermediate files.\n"
+msgstr ""
+
+#: gcc.cc:3763
+msgid "  -save-temps=<arg>        Do not delete intermediate files.\n"
+msgstr ""
+
+#: gcc.cc:3764
+msgid ""
+"  -no-canonical-prefixes   Do not canonicalize paths when building relative\n"
+"                           prefixes to other gcc components.\n"
+msgstr ""
+
+#: gcc.cc:3767
+msgid "  -pipe                    Use pipes rather than intermediate files.\n"
+msgstr ""
+
+#: gcc.cc:3768
+msgid "  -time                    Time the execution of each subprocess.\n"
+msgstr ""
+
+#: gcc.cc:3769
+msgid "  -specs=<file>            Override built-in specs with the contents of <file>.\n"
+msgstr ""
+
+#: gcc.cc:3770
+msgid "  -std=<standard>          Assume that the input sources are for <standard>.\n"
+msgstr ""
+
+#: gcc.cc:3771
+msgid ""
+"  --sysroot=<directory>    Use <directory> as the root directory for headers\n"
+"                           and libraries.\n"
+msgstr ""
+
+#: gcc.cc:3774
+msgid "  -B <directory>           Add <directory> to the compiler's search paths.\n"
+msgstr ""
+
+#: gcc.cc:3775
+msgid "  -v                       Display the programs invoked by the compiler.\n"
+msgstr ""
+
+#: gcc.cc:3776
+msgid "  -###                     Like -v but options quoted and commands not executed.\n"
+msgstr ""
+
+#: gcc.cc:3777
+msgid "  -E                       Preprocess only; do not compile, assemble or link.\n"
+msgstr ""
+
+#: gcc.cc:3778
+msgid "  -S                       Compile only; do not assemble or link.\n"
+msgstr ""
+
+#: gcc.cc:3779
+msgid "  -c                       Compile and assemble, but do not link.\n"
+msgstr ""
+
+#: gcc.cc:3780
+msgid "  -o <file>                Place the output into <file>.\n"
+msgstr ""
+
+#: gcc.cc:3781
+msgid ""
+"  -pie                     Create a dynamically linked position independent\n"
+"                           executable.\n"
+msgstr ""
+
+#: gcc.cc:3783
+msgid "  -shared                  Create a shared library.\n"
+msgstr ""
+
+#: gcc.cc:3784
+msgid ""
+"  -x <language>            Specify the language of the following input files.\n"
+"                           Permissible languages include: c c++ assembler none\n"
+"                           'none' means revert to the default behavior of\n"
+"                           guessing the language based on the file's extension.\n"
+msgstr ""
+
+#: gcc.cc:3791
+#, c-format
+msgid ""
+"\n"
+"Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+" passed on to the various sub-processes invoked by %s.  In order to pass\n"
+" other options on to these processes the -W<letter> options must be used.\n"
+msgstr ""
+
+#: gcc.cc:6910
+#, c-format
+msgid "Processing spec (%s), which is '%s'\n"
+msgstr ""
+
+#: gcc.cc:7671
+#, c-format
+msgid "Target: %s\n"
+msgstr ""
+
+#: gcc.cc:7672
+#, c-format
+msgid "Configured with: %s\n"
+msgstr "აგების პარამეტრები: %s\n"
+
+#: gcc.cc:7686
+#, c-format
+msgid "Thread model: %s\n"
+msgstr ""
+
+#: gcc.cc:7687
+#, c-format
+msgid "Supported LTO compression algorithms: zlib"
+msgstr ""
+
+#: gcc.cc:7689
+#, c-format
+msgid " zstd"
+msgstr ""
+
+#: gcc.cc:7691 gcov.cc:1610 gcov.cc:1668 gcov.cc:1680 gcov.cc:3098
+#, c-format
+msgid "\n"
+msgstr ""
+
+#: gcc.cc:7702
+#, c-format
+msgid "gcc version %s %s\n"
+msgstr ""
+
+#: gcc.cc:7705
+#, c-format
+msgid "gcc driver version %s %sexecuting gcc version %s\n"
+msgstr ""
+
+#: gcc.cc:7778 gcc.cc:7988
+#, c-format
+msgid "The bug is not reproducible, so it is likely a hardware or OS problem.\n"
+msgstr ""
+
+#: gcc.cc:7912
+#, c-format
+msgid "Preprocessed source stored into %s file, please attach this to your bugreport.\n"
+msgstr ""
+
+#: gcc.cc:8764
+#, c-format
+msgid "install: %s%s\n"
+msgstr ""
+
+#: gcc.cc:8767
+#, c-format
+msgid "programs: %s\n"
+msgstr ""
+
+#: gcc.cc:8769
+#, c-format
+msgid "libraries: %s\n"
+msgstr ""
+
+#: gcc.cc:8886
+#, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+msgstr ""
+
+#: gcc.cc:8902 gcov-tool.cc:594
+#, c-format
+msgid "%s %s%s\n"
+msgstr ""
+
+#: gcc.cc:8905 gcov-tool.cc:596 gcov.cc:1015 fortran/gfortranspec.cc:282
+msgid "(C)"
+msgstr ""
+
+#: gcc.cc:8906 gcov-tool.cc:598 gcov.cc:1017 fortran/gfortranspec.cc:283
+#, c-format
+msgid ""
+"This is free software; see the source for copying conditions.  There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+"\n"
+msgstr ""
+
+#: gcc.cc:9249
+#, c-format
+msgid ""
+"\n"
+"Linker options\n"
+"==============\n"
+"\n"
+msgstr ""
+
+#: gcc.cc:9250
+#, c-format
+msgid ""
+"Use \"-Wl,OPTION\" to pass \"OPTION\" to the linker.\n"
+"\n"
+msgstr ""
+
+#: gcc.cc:10651
+#, c-format
+msgid ""
+"Assembler options\n"
+"=================\n"
+"\n"
+msgstr ""
+
+#: gcc.cc:10652
+#, c-format
+msgid ""
+"Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n"
+"\n"
+msgstr ""
+
+#: gcov-tool.cc:157 gcov-tool.cc:300
+#, c-format
+msgid "no profile files were merged\n"
+msgstr ""
+
+#: gcov-tool.cc:169
+#, c-format
+msgid "  merge [options] <dir1> <dir2>         Merge coverage file contents\n"
+msgstr ""
+
+#: gcov-tool.cc:170 gcov-tool.cc:337
+#, c-format
+msgid "    -o, --output <dir>                  Output directory\n"
+msgstr ""
+
+#: gcov-tool.cc:171 gcov-tool.cc:242 gcov-tool.cc:339 gcov-tool.cc:491
+#, c-format
+msgid "    -v, --verbose                       Verbose mode\n"
+msgstr ""
+
+#: gcov-tool.cc:172 gcov-tool.cc:243
+#, c-format
+msgid "    -w, --weight <w1,w2>                Set weights (float point values)\n"
+msgstr ""
+
+#: gcov-tool.cc:188
+#, c-format
+msgid "Merge subcommand usage:"
+msgstr ""
+
+#: gcov-tool.cc:240
+#, c-format
+msgid ""
+"  merge-stream [options] [<file>]       Merge coverage stream file (or stdin)\n"
+"                                        and coverage file contents\n"
+msgstr ""
+
+#: gcov-tool.cc:258
+#, c-format
+msgid "Merge-stream subcommand usage:"
+msgstr ""
+
+#: gcov-tool.cc:335
+#, c-format
+msgid "  rewrite [options] <dir>               Rewrite coverage file contents\n"
+msgstr ""
+
+#: gcov-tool.cc:336
+#, c-format
+msgid "    -n, --normalize <int64_t>           Normalize the profile\n"
+msgstr ""
+
+#: gcov-tool.cc:338
+#, c-format
+msgid "    -s, --scale <float or simple-frac>  Scale the profile counters\n"
+msgstr ""
+
+#: gcov-tool.cc:356
+#, c-format
+msgid "Rewrite subcommand usage:"
+msgstr ""
+
+#: gcov-tool.cc:395
+#, c-format
+msgid "scaling cannot co-exist with normalization, skipping\n"
+msgstr ""
+
+#: gcov-tool.cc:408 gcov-tool.cc:418
+#, c-format
+msgid "incorrect format in scaling, using 1/1\n"
+msgstr ""
+
+#: gcov-tool.cc:428
+#, c-format
+msgid "normalization cannot co-exist with scaling\n"
+msgstr ""
+
+#: gcov-tool.cc:485
+#, c-format
+msgid "  overlap [options] <dir1> <dir2>       Compute the overlap of two profiles\n"
+msgstr ""
+
+#: gcov-tool.cc:486
+#, c-format
+msgid "    -f, --function                      Print function level info\n"
+msgstr ""
+
+#: gcov-tool.cc:487
+#, c-format
+msgid "    -F, --fullname                      Print full filename\n"
+msgstr ""
+
+#: gcov-tool.cc:488
+#, c-format
+msgid "    -h, --hotonly                       Only print info for hot objects/functions\n"
+msgstr ""
+
+#: gcov-tool.cc:489
+#, c-format
+msgid "    -o, --object                        Print object level info\n"
+msgstr ""
+
+#: gcov-tool.cc:490
+#, c-format
+msgid "    -t <float>, --hot_threshold <float> Set the threshold for hotness\n"
+msgstr ""
+
+#: gcov-tool.cc:510
+#, c-format
+msgid "Overlap subcommand usage:"
+msgstr ""
+
+#: gcov-tool.cc:576
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... SUB_COMMAND [OPTION]...\n"
+"\n"
+msgstr ""
+
+#: gcov-tool.cc:577
+#, c-format
+msgid ""
+"Offline tool to handle gcda counts\n"
+"\n"
+msgstr ""
+
+#: gcov-tool.cc:578
+#, c-format
+msgid "  -h, --help                            Print this help, then exit\n"
+msgstr ""
+
+#: gcov-tool.cc:579
+#, c-format
+msgid "  -v, --version                         Print version number, then exit\n"
+msgstr ""
+
+#: gcov-tool.cc:584 gcov.cc:1002
+#, c-format
+msgid ""
+"\n"
+"For bug reporting instructions, please see:\n"
+"%s.\n"
+msgstr ""
+
+#: gcov-tool.cc:595
+#, c-format
+msgid "Copyright %s 2024 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: gcov.cc:969
+#, c-format
+msgid ""
+"Usage: gcov [OPTION...] SOURCE|OBJ...\n"
+"\n"
+msgstr ""
+
+#: gcov.cc:970
+#, c-format
+msgid ""
+"Print code coverage information.\n"
+"\n"
+msgstr ""
+
+#: gcov.cc:971
+#, c-format
+msgid "  -a, --all-blocks                Show information for every basic block\n"
+msgstr ""
+
+#: gcov.cc:972
+#, c-format
+msgid "  -b, --branch-probabilities      Include branch probabilities in output\n"
+msgstr ""
+
+#: gcov.cc:973
+#, c-format
+msgid ""
+"  -c, --branch-counts             Output counts of branches taken\n"
+"                                    rather than percentages\n"
+msgstr ""
+
+#: gcov.cc:975
+#, c-format
+msgid ""
+"  -g, --conditions                Include modified condition/decision\n"
+"                                    coverage in output\n"
+msgstr ""
+
+#: gcov.cc:977
+#, c-format
+msgid "  -d, --display-progress          Display progress information\n"
+msgstr ""
+
+#: gcov.cc:978
+#, c-format
+msgid "  -D, --debug\t\t\t    Display debugging dumps\n"
+msgstr ""
+
+#: gcov.cc:979
+#, c-format
+msgid "  -f, --function-summaries        Output summaries for each function\n"
+msgstr ""
+
+#: gcov.cc:980
+#, c-format
+msgid "  -h, --help                      Print this help, then exit\n"
+msgstr ""
+
+#: gcov.cc:981
+#, c-format
+msgid ""
+"  -j, --json-format               Output JSON intermediate format\n"
+"                                    into .gcov.json.gz file\n"
+msgstr ""
+
+#: gcov.cc:983
+#, c-format
+msgid "  -H, --human-readable            Output human readable numbers\n"
+msgstr ""
+
+#: gcov.cc:984
+#, c-format
+msgid "  -k, --use-colors                Emit colored output\n"
+msgstr ""
+
+#: gcov.cc:985
+#, c-format
+msgid ""
+"  -l, --long-file-names           Use long output file names for included\n"
+"                                    source files\n"
+msgstr ""
+
+#: gcov.cc:987
+#, c-format
+msgid "  -m, --demangled-names           Output demangled function names\n"
+msgstr ""
+
+#: gcov.cc:988
+#, c-format
+msgid "  -n, --no-output                 Do not create an output file\n"
+msgstr ""
+
+#: gcov.cc:989
+#, c-format
+msgid "  -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+msgstr ""
+
+#: gcov.cc:990
+#, c-format
+msgid "  -p, --preserve-paths            Preserve all pathname components\n"
+msgstr ""
+
+#: gcov.cc:991
+#, c-format
+msgid "  -q, --use-hotness-colors        Emit perf-like colored output for hot lines\n"
+msgstr ""
+
+#: gcov.cc:992
+#, c-format
+msgid "  -r, --relative-only             Only show data for relative sources\n"
+msgstr ""
+
+#: gcov.cc:993
+#, c-format
+msgid "  -s, --source-prefix DIR         Source prefix to elide\n"
+msgstr ""
+
+#: gcov.cc:994
+#, c-format
+msgid "  -t, --stdout                    Output to stdout instead of a file\n"
+msgstr ""
+
+#: gcov.cc:995
+#, c-format
+msgid "  -u, --unconditional-branches    Show unconditional branch counts too\n"
+msgstr ""
+
+#: gcov.cc:996
+#, c-format
+msgid "  -v, --version                   Print version number, then exit\n"
+msgstr ""
+
+#: gcov.cc:997
+#, c-format
+msgid "  -w, --verbose                   Print verbose informations\n"
+msgstr ""
+
+#: gcov.cc:998
+#, c-format
+msgid "  -x, --hash-filenames            Hash long pathnames\n"
+msgstr ""
+
+#: gcov.cc:999
+#, c-format
+msgid ""
+"\n"
+"Obsolete options:\n"
+msgstr ""
+
+#: gcov.cc:1000
+#, c-format
+msgid "  -i, --json-format               Replaced with -j, --json-format\n"
+msgstr ""
+
+#: gcov.cc:1001
+#, c-format
+msgid "  -j, --human-readable            Replaced with -H, --human-readable\n"
+msgstr ""
+
+#: gcov.cc:1012
+#, c-format
+msgid "gcov %s%s\n"
+msgstr ""
+
+#: gcov.cc:1013
+#, c-format
+msgid "JSON format version: %s\n"
+msgstr ""
+
+#: gcov.cc:1454
+#, c-format
+msgid "'%s' file is already processed\n"
+msgstr ""
+
+#: gcov.cc:1570 gcov.cc:1699
+#, c-format
+msgid "Creating '%s'\n"
+msgstr ""
+
+#: gcov.cc:1574
+#, c-format
+msgid "Error writing output file '%s'\n"
+msgstr ""
+
+#: gcov.cc:1582
+#, c-format
+msgid "Could not open output file '%s'\n"
+msgstr ""
+
+#: gcov.cc:1589
+#, c-format
+msgid "Removing '%s'\n"
+msgstr ""
+
+#: gcov.cc:1704
+#, c-format
+msgid "Cannot open JSON output file %s\n"
+msgstr ""
+
+#: gcov.cc:1713
+#, c-format
+msgid "Error writing JSON output file %s\n"
+msgstr ""
+
+#: gcov.cc:1878
+#, c-format
+msgid "%s:source file is newer than notes file '%s'\n"
+msgstr ""
+
+#: gcov.cc:1883
+#, c-format
+msgid "(the message is displayed only once per source file)\n"
+msgstr ""
+
+#: gcov.cc:1903
+#, c-format
+msgid "%s:cannot open notes file\n"
+msgstr ""
+
+#: gcov.cc:1910
+#, c-format
+msgid "%s:not a gcov notes file\n"
+msgstr ""
+
+#: gcov.cc:1924
+#, c-format
+msgid "%s:version '%.4s', prefer '%.4s'\n"
+msgstr ""
+
+#: gcov.cc:1977
+#, c-format
+msgid "%s:already seen blocks for '%s'\n"
+msgstr ""
+
+#: gcov.cc:2064
+#, c-format
+msgid "%s:already seen conditions for '%s'\n"
+msgstr ""
+
+#: gcov.cc:2115 gcov.cc:2244
+#, c-format
+msgid "%s:corrupted\n"
+msgstr ""
+
+#: gcov.cc:2123
+#, c-format
+msgid "%s:no functions found\n"
+msgstr ""
+
+#: gcov.cc:2141
+#, c-format
+msgid "%s:cannot open data file, assuming not executed\n"
+msgstr ""
+
+#: gcov.cc:2148
+#, c-format
+msgid "%s:not a gcov data file\n"
+msgstr ""
+
+#: gcov.cc:2162
+#, c-format
+msgid "%s:version '%.4s', prefer version '%.4s'\n"
+msgstr ""
+
+#: gcov.cc:2169
+#, c-format
+msgid "%s:stamp mismatch with notes file\n"
+msgstr ""
+
+#: gcov.cc:2206
+#, c-format
+msgid "%s:profile mismatch for '%s'\n"
+msgstr ""
+
+#: gcov.cc:2243
+#, c-format
+msgid "%s:overflowed\n"
+msgstr ""
+
+#: gcov.cc:2291
+#, c-format
+msgid "%s:'%s' lacks entry and/or exit blocks\n"
+msgstr ""
+
+#: gcov.cc:2296
+#, c-format
+msgid "%s:'%s' has arcs to entry block\n"
+msgstr ""
+
+#: gcov.cc:2304
+#, c-format
+msgid "%s:'%s' has arcs from exit block\n"
+msgstr ""
+
+#: gcov.cc:2513
+#, c-format
+msgid "%s:graph is unsolvable for '%s'\n"
+msgstr ""
+
+#: gcov.cc:2638
+#, c-format
+msgid "Lines executed:%s of %d\n"
+msgstr ""
+
+#: gcov.cc:2641
+#, c-format
+msgid "No executable lines\n"
+msgstr ""
+
+#: gcov.cc:2649 gcov.cc:2658
+#, c-format
+msgid "%s '%s'\n"
+msgstr ""
+
+#: gcov.cc:2665
+#, c-format
+msgid "Branches executed:%s of %d\n"
+msgstr ""
+
+#: gcov.cc:2669
+#, c-format
+msgid "Taken at least once:%s of %d\n"
+msgstr ""
+
+#: gcov.cc:2675
+#, c-format
+msgid "No branches\n"
+msgstr ""
+
+#: gcov.cc:2677
+#, c-format
+msgid "Calls executed:%s of %d\n"
+msgstr ""
+
+#: gcov.cc:2681
+#, c-format
+msgid "No calls\n"
+msgstr ""
+
+#: gcov.cc:2688
+#, c-format
+msgid "Condition outcomes covered:%s of %d\n"
+msgstr ""
+
+#: gcov.cc:2693
+#, c-format
+msgid "No conditions\n"
+msgstr ""
+
+#: gcov.cc:2913
+#, c-format
+msgid "%s:no lines for '%s'\n"
+msgstr ""
+
+#: gcov.cc:3049
+#, c-format
+msgid "condition outcomes covered %d/%d\n"
+msgstr ""
+
+#: gcov.cc:3062
+#, c-format
+msgid "condition %2u not covered (%s%s)\n"
+msgstr ""
+
+#: gcov.cc:3076
+#, c-format
+msgid "call   %2d returned %s\n"
+msgstr ""
+
+#: gcov.cc:3081
+#, c-format
+msgid "call   %2d never executed\n"
+msgstr ""
+
+#: gcov.cc:3086
+#, c-format
+msgid "branch %2d taken %s%s"
+msgstr ""
+
+#: gcov.cc:3091
+#, c-format
+msgid "branch %2d never executed%s"
+msgstr ""
+
+#: gcov.cc:3096
+#, c-format
+msgid " (BB %d)"
+msgstr ""
+
+#: gcov.cc:3103
+#, c-format
+msgid "unconditional %2d taken %s\n"
+msgstr ""
+
+#: gcov.cc:3106
+#, c-format
+msgid "unconditional %2d never executed\n"
+msgstr ""
+
+#: gcov.cc:3369
+#, c-format
+msgid "Cannot open source file %s\n"
+msgstr ""
+
+#: gcse.cc:2592
+msgid "PRE disabled"
+msgstr ""
+
+#: gcse.cc:3520
+msgid "GCSE disabled"
+msgstr ""
+
+#: incpath.cc:77
+#, c-format
+msgid "ignoring duplicate directory \"%s\"\n"
+msgstr ""
+
+#: incpath.cc:80
+#, c-format
+msgid "  as it is a non-system directory that duplicates a system directory\n"
+msgstr ""
+
+#: incpath.cc:84
+#, c-format
+msgid "ignoring nonexistent directory \"%s\"\n"
+msgstr ""
+
+#: incpath.cc:391
+#, c-format
+msgid "#include \"...\" search starts here:\n"
+msgstr ""
+
+#: incpath.cc:395
+#, c-format
+msgid "#include <...> search starts here:\n"
+msgstr ""
+
+#: incpath.cc:400
+#, c-format
+msgid "End of search list.\n"
+msgstr ""
+
+#: input.cc:35
+msgid "<built-in>"
+msgstr ""
+
+#. Opening quotation mark.
+#: intl.cc:62
+msgid "`"
+msgstr ""
+
+#. Closing quotation mark.
+#: intl.cc:65
+msgid "'"
+msgstr ""
+
+#: langhooks.cc:384
+msgid "At top level:"
+msgstr ""
+
+#: langhooks.cc:400
+#, c-format
+msgid "In member function %qs"
+msgstr ""
+
+#: langhooks.cc:404
+#, c-format
+msgid "In function %qs"
+msgstr ""
+
+#: langhooks.cc:449
+msgid "    inlined from %qs at %r%s:%d:%d%R"
+msgstr ""
+
+#: langhooks.cc:454
+msgid "    inlined from %qs at %r%s:%d%R"
+msgstr ""
+
+#: langhooks.cc:460
+#, c-format
+msgid "    inlined from %qs"
+msgstr ""
+
+#: lra-assigns.cc:1868 reload1.cc:2073
+msgid "this is the insn:"
+msgstr ""
+
+#: lra-constraints.cc:3266
+msgid "unable to generate reloads for impossible constraints:"
+msgstr ""
+
+#: lra-constraints.cc:4234 reload.cc:3839
+msgid "unable to generate reloads for:"
+msgstr ""
+
+#. What to print when a switch has no documentation.
+#: opts.cc:329
+msgid "This option lacks documentation."
+msgstr ""
+
+#: opts.cc:330
+msgid "Uses of this option are diagnosed."
+msgstr ""
+
+#: opts.cc:1688
+#, c-format
+msgid "Same as %s%s (or, in negated form, %s%s)."
+msgstr ""
+
+#: opts.cc:1693
+#, c-format
+msgid "Same as %s%s."
+msgstr ""
+
+#: opts.cc:1698
+#, c-format
+msgid "Same as %s."
+msgstr ""
+
+#: opts.cc:1706
+#, c-format
+msgid "%s  Same as %s."
+msgstr ""
+
+#: opts.cc:1769
+msgid "[available in "
+msgstr ""
+
+#: opts.cc:1801
+msgid "[default]"
+msgstr ""
+
+#: opts.cc:1810
+#, c-format
+msgid "%llu bytes"
+msgstr ""
+
+#: opts.cc:1847
+msgid "[enabled]"
+msgstr ""
+
+#: opts.cc:1849
+msgid "[disabled]"
+msgstr ""
+
+#: opts.cc:1885
+#, c-format
+msgid " No options with the desired characteristics were found\n"
+msgstr ""
+
+#: opts.cc:1894
+#, c-format
+msgid " None found.  Use --help=%s to show *all* the options supported by the %s front-end.\n"
+msgstr ""
+
+#: opts.cc:1900
+#, c-format
+msgid " All options with the desired characteristics have already been displayed\n"
+msgstr ""
+
+#: opts.cc:1945
+#, c-format
+msgid ""
+"  Known valid arguments for %s option:\n"
+"   "
+msgstr ""
+
+#: opts.cc:1995
+msgid "The following options are target specific"
+msgstr ""
+
+#: opts.cc:1998
+msgid "The following options control compiler warning messages"
+msgstr ""
+
+#: opts.cc:2001
+msgid "The following options control optimizations"
+msgstr ""
+
+#: opts.cc:2004 opts.cc:2044
+msgid "The following options are language-independent"
+msgstr ""
+
+#: opts.cc:2007
+msgid "The following options control parameters"
+msgstr ""
+
+#: opts.cc:2013
+msgid "The following options are specific to just the language "
+msgstr ""
+
+#: opts.cc:2015
+msgid "The following options are supported by the language "
+msgstr ""
+
+#: opts.cc:2026
+msgid "The following options are not documented"
+msgstr ""
+
+#: opts.cc:2028
+msgid "The following options take separate arguments"
+msgstr ""
+
+#: opts.cc:2030
+msgid "The following options take joined arguments"
+msgstr ""
+
+#: opts.cc:2042
+msgid "The following options are language-related"
+msgstr ""
+
+#: passes.cc:1833
+#, c-format
+msgid "during %s pass: %s\n"
+msgstr ""
+
+#: passes.cc:1838
+#, c-format
+msgid "dump file: %s\n"
+msgstr ""
+
+#: plugin.cc:965
+msgid "Event"
+msgstr "მოვლენა"
+
+#: plugin.cc:965
+msgid "Plugins"
+msgstr "დამატებები"
+
+#: plugin.cc:997
+#, c-format
+msgid "*** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.\n"
+msgstr ""
+
+#: postreload-gcse.cc:1356
+msgid "using simple load CSE after register allocation"
+msgstr ""
+
+#. It's the compiler's fault.
+#: reload1.cc:5994
+msgid "could not find a spill register"
+msgstr ""
+
+#. It's the compiler's fault.
+#: reload1.cc:7876
+msgid "VOIDmode on an output"
+msgstr ""
+
+#: reload1.cc:8632
+msgid "failure trying to reload:"
+msgstr ""
+
+#: rtl-error.cc:116
+msgid "unrecognizable insn:"
+msgstr ""
+
+#: rtl-error.cc:118
+msgid "insn does not satisfy its constraints:"
+msgstr ""
+
+#: targhooks.cc:2382
+#, c-format
+msgid "created and used with differing settings of '%s'"
+msgstr ""
+
+#: targhooks.cc:2397
+msgid "created and used with different settings of %<-fpic%>"
+msgstr ""
+
+#: targhooks.cc:2399
+msgid "created and used with different settings of %<-fpie%>"
+msgstr ""
+
+#: toplev.cc:315
+#, c-format
+msgid "unrecoverable error"
+msgstr ""
+
+#: toplev.cc:608
+#, c-format
+msgid ""
+"%s%s%s %sversion %s (%s)\n"
+"%s\tcompiled by GNU C version %s, "
+msgstr ""
+
+#: toplev.cc:610
+#, c-format
+msgid "%s%s%s %sversion %s (%s) compiled by CC, "
+msgstr ""
+
+#: toplev.cc:614
+#, c-format
+msgid "GMP version %s, MPFR version %s, MPC version %s, isl version %s\n"
+msgstr ""
+
+#: toplev.cc:616
+#, c-format
+msgid "%s%swarning: %s header version %s differs from library version %s.\n"
+msgstr ""
+
+#: toplev.cc:618
+#, c-format
+msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+msgstr ""
+
+#: tree-diagnostic-path.cc:342 tree-diagnostic.cc:294 c/c-decl.cc:6534
+#: c/c-typeck.cc:8236 cp/error.cc:1189 c-family/c-pretty-print.cc:446
+#, gcc-internal-format
+msgid "<anonymous>"
+msgstr "<ანონიმური>"
+
+#: c-family/c-format.cc:432
+msgid "format"
+msgstr ""
+
+#: c-family/c-format.cc:433
+msgid "field width specifier"
+msgstr ""
+
+#: c-family/c-format.cc:434
+msgid "field precision specifier"
+msgstr ""
+
+#: c-family/c-format.cc:571 c-family/c-format.cc:595
+#: config/i386/msformat-c.cc:45
+msgid "' ' flag"
+msgstr ""
+
+#: c-family/c-format.cc:571 c-family/c-format.cc:595
+#: config/i386/msformat-c.cc:45
+msgid "the ' ' printf flag"
+msgstr ""
+
+#: c-family/c-format.cc:572 c-family/c-format.cc:596 c-family/c-format.cc:627
+#: c-family/c-format.cc:693 config/i386/msformat-c.cc:46
+msgid "'+' flag"
+msgstr ""
+
+#: c-family/c-format.cc:572 c-family/c-format.cc:596 c-family/c-format.cc:627
+#: config/i386/msformat-c.cc:46
+msgid "the '+' printf flag"
+msgstr ""
+
+#: c-family/c-format.cc:573 c-family/c-format.cc:597 c-family/c-format.cc:628
+#: c-family/c-format.cc:668 config/i386/msformat-c.cc:47
+#: config/i386/msformat-c.cc:82
+msgid "'#' flag"
+msgstr ""
+
+#: c-family/c-format.cc:573 c-family/c-format.cc:597 c-family/c-format.cc:628
+#: config/i386/msformat-c.cc:47
+msgid "the '#' printf flag"
+msgstr ""
+
+#: c-family/c-format.cc:574 c-family/c-format.cc:598 c-family/c-format.cc:666
+#: config/i386/msformat-c.cc:48
+msgid "'0' flag"
+msgstr ""
+
+#: c-family/c-format.cc:574 c-family/c-format.cc:598
+#: config/i386/msformat-c.cc:48
+msgid "the '0' printf flag"
+msgstr ""
+
+#: c-family/c-format.cc:575 c-family/c-format.cc:599 c-family/c-format.cc:665
+#: c-family/c-format.cc:696 config/i386/msformat-c.cc:49
+msgid "'-' flag"
+msgstr ""
+
+#: c-family/c-format.cc:575 c-family/c-format.cc:599
+#: config/i386/msformat-c.cc:49
+msgid "the '-' printf flag"
+msgstr ""
+
+#: c-family/c-format.cc:576 c-family/c-format.cc:648
+#: config/i386/msformat-c.cc:50 config/i386/msformat-c.cc:70
+msgid "''' flag"
+msgstr ""
+
+#: c-family/c-format.cc:576 config/i386/msformat-c.cc:50
+msgid "the ''' printf flag"
+msgstr ""
+
+#: c-family/c-format.cc:577 c-family/c-format.cc:649
+msgid "'I' flag"
+msgstr ""
+
+#: c-family/c-format.cc:577
+msgid "the 'I' printf flag"
+msgstr ""
+
+#: c-family/c-format.cc:578 c-family/c-format.cc:600 c-family/c-format.cc:646
+#: c-family/c-format.cc:669 c-family/c-format.cc:697 config/sol2-c.cc:43
+#: config/i386/msformat-c.cc:51 config/i386/msformat-c.cc:68
+msgid "field width"
+msgstr ""
+
+#: c-family/c-format.cc:578 c-family/c-format.cc:600 config/sol2-c.cc:43
+#: config/i386/msformat-c.cc:51
+msgid "field width in printf format"
+msgstr ""
+
+#: c-family/c-format.cc:579 c-family/c-format.cc:601 c-family/c-format.cc:630
+#: config/i386/msformat-c.cc:52
+msgid "precision"
+msgstr "სიზუსტე"
+
+#: c-family/c-format.cc:579 c-family/c-format.cc:601 c-family/c-format.cc:630
+#: config/i386/msformat-c.cc:52
+msgid "precision in printf format"
+msgstr ""
+
+#: c-family/c-format.cc:580 c-family/c-format.cc:602 c-family/c-format.cc:631
+#: c-family/c-format.cc:647 c-family/c-format.cc:700 config/sol2-c.cc:44
+#: config/i386/msformat-c.cc:53 config/i386/msformat-c.cc:69
+msgid "length modifier"
+msgstr ""
+
+#: c-family/c-format.cc:580 c-family/c-format.cc:602 c-family/c-format.cc:631
+#: config/sol2-c.cc:44 config/i386/msformat-c.cc:53
+msgid "length modifier in printf format"
+msgstr ""
+
+#: c-family/c-format.cc:629
+msgid "'q' flag"
+msgstr ""
+
+#: c-family/c-format.cc:629
+msgid "the 'q' diagnostic flag"
+msgstr ""
+
+#: c-family/c-format.cc:643 config/i386/msformat-c.cc:66
+msgid "assignment suppression"
+msgstr ""
+
+#: c-family/c-format.cc:643 config/i386/msformat-c.cc:66
+msgid "the assignment suppression scanf feature"
+msgstr ""
+
+#: c-family/c-format.cc:644 config/i386/msformat-c.cc:67
+msgid "'a' flag"
+msgstr ""
+
+#: c-family/c-format.cc:644 config/i386/msformat-c.cc:67
+msgid "the 'a' scanf flag"
+msgstr ""
+
+#: c-family/c-format.cc:645
+msgid "'m' flag"
+msgstr ""
+
+#: c-family/c-format.cc:645
+msgid "the 'm' scanf flag"
+msgstr ""
+
+#: c-family/c-format.cc:646 config/i386/msformat-c.cc:68
+msgid "field width in scanf format"
+msgstr ""
+
+#: c-family/c-format.cc:647 config/i386/msformat-c.cc:69
+msgid "length modifier in scanf format"
+msgstr ""
+
+#: c-family/c-format.cc:648 config/i386/msformat-c.cc:70
+msgid "the ''' scanf flag"
+msgstr ""
+
+#: c-family/c-format.cc:649
+msgid "the 'I' scanf flag"
+msgstr ""
+
+#: c-family/c-format.cc:664
+msgid "'_' flag"
+msgstr ""
+
+#: c-family/c-format.cc:664
+msgid "the '_' strftime flag"
+msgstr ""
+
+#: c-family/c-format.cc:665
+msgid "the '-' strftime flag"
+msgstr ""
+
+#: c-family/c-format.cc:666
+msgid "the '0' strftime flag"
+msgstr ""
+
+#: c-family/c-format.cc:667 c-family/c-format.cc:692
+msgid "'^' flag"
+msgstr ""
+
+#: c-family/c-format.cc:667
+msgid "the '^' strftime flag"
+msgstr ""
+
+#: c-family/c-format.cc:668 config/i386/msformat-c.cc:82
+msgid "the '#' strftime flag"
+msgstr ""
+
+#: c-family/c-format.cc:669
+msgid "field width in strftime format"
+msgstr ""
+
+#: c-family/c-format.cc:670
+msgid "'E' modifier"
+msgstr ""
+
+#: c-family/c-format.cc:670
+msgid "the 'E' strftime modifier"
+msgstr ""
+
+#: c-family/c-format.cc:671
+msgid "'O' modifier"
+msgstr ""
+
+#: c-family/c-format.cc:671
+msgid "the 'O' strftime modifier"
+msgstr ""
+
+#: c-family/c-format.cc:672 c-family/c-format.cc:673
+msgid "the 'O' modifier"
+msgstr ""
+
+#: c-family/c-format.cc:691
+msgid "fill character"
+msgstr ""
+
+#: c-family/c-format.cc:691
+msgid "fill character in strfmon format"
+msgstr ""
+
+#: c-family/c-format.cc:692
+msgid "the '^' strfmon flag"
+msgstr ""
+
+#: c-family/c-format.cc:693
+msgid "the '+' strfmon flag"
+msgstr ""
+
+#: c-family/c-format.cc:694
+msgid "'(' flag"
+msgstr ""
+
+#: c-family/c-format.cc:694
+msgid "the '(' strfmon flag"
+msgstr ""
+
+#: c-family/c-format.cc:695
+msgid "'!' flag"
+msgstr ""
+
+#: c-family/c-format.cc:695
+msgid "the '!' strfmon flag"
+msgstr ""
+
+#: c-family/c-format.cc:696
+msgid "the '-' strfmon flag"
+msgstr ""
+
+#: c-family/c-format.cc:697
+msgid "field width in strfmon format"
+msgstr ""
+
+#: c-family/c-format.cc:698
+msgid "left precision"
+msgstr ""
+
+#: c-family/c-format.cc:698
+msgid "left precision in strfmon format"
+msgstr ""
+
+#: c-family/c-format.cc:699
+msgid "right precision"
+msgstr ""
+
+#: c-family/c-format.cc:699
+msgid "right precision in strfmon format"
+msgstr ""
+
+#: c-family/c-format.cc:700
+msgid "length modifier in strfmon format"
+msgstr ""
+
+#. Handle deferred options from command-line.
+#: c-family/c-opts.cc:1588 fortran/cpp.cc:621
+msgid "<command-line>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:11980 config/loongarch/loongarch.cc:6155
+#, c-format
+msgid "unsupported operand for code '%c'"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:11989 config/aarch64/aarch64.cc:12002
+#: config/aarch64/aarch64.cc:12014 config/aarch64/aarch64.cc:12025
+#: config/aarch64/aarch64.cc:12041 config/aarch64/aarch64.cc:12055
+#: config/aarch64/aarch64.cc:12075 config/aarch64/aarch64.cc:12157
+#: config/aarch64/aarch64.cc:12168 config/aarch64/aarch64.cc:12182
+#: config/aarch64/aarch64.cc:12408 config/aarch64/aarch64.cc:12421
+#: config/aarch64/aarch64.cc:12438 config/pru/pru.cc:1794
+#: config/pru/pru.cc:1805 config/pru/pru.cc:1877
+#, c-format
+msgid "invalid operand for '%%%c'"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:12093 config/aarch64/aarch64.cc:12104
+#: config/aarch64/aarch64.cc:12268 config/aarch64/aarch64.cc:12279
+#: config/riscv/riscv.cc:6170 config/riscv/riscv.cc:6178
+#: config/riscv/riscv.cc:6185 config/riscv/riscv.cc:6189
+#: config/riscv/riscv.cc:6231 config/riscv/riscv.cc:6249
+#, c-format
+msgid "invalid vector constant"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:12118
+#, c-format
+msgid "incompatible floating point / vector register operand for '%%%c'"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:12130
+#, c-format
+msgid "incompatible operand for '%%%c'"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:12150
+#, c-format
+msgid "incompatible register operand for '%%%c'"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:12215 config/arm/arm.cc:24876
+#, c-format
+msgid "missing operand"
+msgstr "აკლია ოპერანდი"
+
+#: config/aarch64/aarch64.cc:12305
+#, c-format
+msgid "invalid constant"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:12308
+#, c-format
+msgid "invalid operand"
+msgstr "არასწორი ოპერანდი"
+
+#: config/aarch64/aarch64.cc:12446 config/aarch64/aarch64.cc:12451
+#, c-format
+msgid "invalid operand prefix '%%%c'"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:12471
+#, c-format
+msgid "invalid address mode"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:29016
+msgid "cannot combine GNU and SVE vectors in a binary operation"
+msgstr ""
+
+#: config/alpha/alpha.cc:5094 config/i386/i386.cc:14193
+#: config/rs6000/rs6000.cc:14631 config/sparc/sparc.cc:9384
+#, c-format
+msgid "'%%&' used without any local dynamic TLS references"
+msgstr ""
+
+#: config/alpha/alpha.cc:5152 config/bfin/bfin.cc:1428
+#, c-format
+msgid "invalid %%J value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5182 config/ia64/ia64.cc:5588 config/or1k/or1k.cc:1252
+#, c-format
+msgid "invalid %%r value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5192 config/ia64/ia64.cc:5542
+#: config/rs6000/rs6000.cc:14326 config/xtensa/xtensa.cc:3066
+#, c-format
+msgid "invalid %%R value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5198 config/rs6000/rs6000.cc:14246
+#: config/xtensa/xtensa.cc:3039
+#, c-format
+msgid "invalid %%N value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5206 config/rs6000/rs6000.cc:14274
+#, c-format
+msgid "invalid %%P value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5214
+#, c-format
+msgid "invalid %%h value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5222 config/xtensa/xtensa.cc:3059
+#, c-format
+msgid "invalid %%L value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5241
+#, c-format
+msgid "invalid %%m value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5247
+#, c-format
+msgid "invalid %%M value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5284
+#, c-format
+msgid "invalid %%U value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5292 config/rs6000/rs6000.cc:14334
+#, c-format
+msgid "invalid %%s value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5303
+#, c-format
+msgid "invalid %%C value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5340 config/rs6000/rs6000.cc:14110
+#, c-format
+msgid "invalid %%E value"
+msgstr ""
+
+#: config/alpha/alpha.cc:5365 config/alpha/alpha.cc:5415
+#, c-format
+msgid "unknown relocation unspec"
+msgstr ""
+
+#: config/alpha/alpha.cc:5374 config/gcn/gcn.cc:7419 config/gcn/gcn.cc:7428
+#: config/gcn/gcn.cc:7488 config/gcn/gcn.cc:7496 config/gcn/gcn.cc:7512
+#: config/gcn/gcn.cc:7530 config/gcn/gcn.cc:7581 config/gcn/gcn.cc:7700
+#: config/gcn/gcn.cc:7817 config/rs6000/rs6000.cc:14636
+#, c-format
+msgid "invalid %%xn code"
+msgstr ""
+
+#: config/alpha/alpha.cc:5480
+#, c-format
+msgid "invalid operand address"
+msgstr ""
+
+#: config/arc/arc.cc:4901
+#, c-format
+msgid "invalid operand to %%Z code"
+msgstr ""
+
+#: config/arc/arc.cc:4909
+#, c-format
+msgid "invalid operand to %%z code"
+msgstr ""
+
+#: config/arc/arc.cc:4917
+#, c-format
+msgid "invalid operands to %%c code"
+msgstr ""
+
+#: config/arc/arc.cc:4925
+#, c-format
+msgid "invalid operand to %%M code"
+msgstr ""
+
+#: config/arc/arc.cc:4933 config/m32r/m32r.cc:2088
+#, c-format
+msgid "invalid operand to %%p code"
+msgstr ""
+
+#: config/arc/arc.cc:4941
+#, c-format
+msgid "invalid operand for %%s code"
+msgstr ""
+
+#: config/arc/arc.cc:4959
+#, c-format
+msgid "invalid operand for %%N code"
+msgstr ""
+
+#: config/arc/arc.cc:4972
+#, c-format
+msgid "invalid operand for %%N or %%S code"
+msgstr ""
+
+#: config/arc/arc.cc:4994 config/m32r/m32r.cc:2081
+#, c-format
+msgid "invalid operand to %%s code"
+msgstr ""
+
+#: config/arc/arc.cc:5114 config/m32r/m32r.cc:2114
+#, c-format
+msgid "invalid operand to %%R code"
+msgstr ""
+
+#: config/arc/arc.cc:5190 config/m32r/m32r.cc:2137
+#, c-format
+msgid "invalid operand to %%H/%%L code"
+msgstr ""
+
+#: config/arc/arc.cc:5258 config/m32r/m32r.cc:2208
+#, c-format
+msgid "invalid operand to %%U code"
+msgstr ""
+
+#: config/arc/arc.cc:5270
+#, c-format
+msgid "invalid operand to %%V code"
+msgstr ""
+
+#: config/arc/arc.cc:5320
+#, c-format
+msgid "invalid operand to %%O code"
+msgstr ""
+
+#. Unknown flag.
+#. Undocumented flag.
+#: config/arc/arc.cc:5343 config/epiphany/epiphany.cc:1309
+#: config/m32r/m32r.cc:2235 config/nds32/nds32.cc:3519
+#: config/sparc/sparc.cc:9663
+#, c-format
+msgid "invalid operand output code"
+msgstr ""
+
+#: config/arc/arc.cc:6396
+#, c-format
+msgid "invalid UNSPEC as operand: %d"
+msgstr ""
+
+#: config/arc/arc.cc:6612
+msgid "unrecognized supposed constant"
+msgstr ""
+
+#: config/arm/arm.cc:21119 config/arm/arm.cc:21144 config/arm/arm.cc:21154
+#: config/arm/arm.cc:21163 config/arm/arm.cc:21172
+#, c-format
+msgid "invalid shift operand"
+msgstr ""
+
+#: config/arm/arm.cc:24126 config/arm/arm.cc:24144
+#, c-format
+msgid "predicated Thumb instruction"
+msgstr ""
+
+#: config/arm/arm.cc:24132
+#, c-format
+msgid "predicated instruction in conditional sequence"
+msgstr ""
+
+#: config/arm/arm.cc:24253 config/arm/arm.cc:24266 config/arm/arm.cc:24291
+#: config/nios2/nios2.cc:3085
+#, c-format
+msgid "Unsupported operand for code '%c'"
+msgstr ""
+
+#: config/arm/arm.cc:24368 config/arm/arm.cc:24390 config/arm/arm.cc:24400
+#: config/arm/arm.cc:24410 config/arm/arm.cc:24420 config/arm/arm.cc:24459
+#: config/arm/arm.cc:24477 config/arm/arm.cc:24495 config/arm/arm.cc:24522
+#: config/arm/arm.cc:24537 config/arm/arm.cc:24564 config/arm/arm.cc:24571
+#: config/arm/arm.cc:24589 config/arm/arm.cc:24596 config/arm/arm.cc:24604
+#: config/arm/arm.cc:24625 config/arm/arm.cc:24632 config/arm/arm.cc:24823
+#: config/arm/arm.cc:24830 config/arm/arm.cc:24857 config/arm/arm.cc:24864
+#: config/bfin/bfin.cc:1441 config/bfin/bfin.cc:1448 config/bfin/bfin.cc:1455
+#: config/bfin/bfin.cc:1462 config/bfin/bfin.cc:1471 config/bfin/bfin.cc:1478
+#: config/bfin/bfin.cc:1485 config/bfin/bfin.cc:1492 config/nds32/nds32.cc:3545
+#, c-format
+msgid "invalid operand for code '%c'"
+msgstr ""
+
+#: config/arm/arm.cc:24472
+#, c-format
+msgid "instruction never executed"
+msgstr ""
+
+#. Former Maverick support, removed after GCC-4.7.
+#: config/arm/arm.cc:24513
+#, c-format
+msgid "obsolete Maverick format code '%c'"
+msgstr ""
+
+#: config/arm/arm.cc:34536
+msgid "invalid conversion from type %<bfloat16_t%>"
+msgstr ""
+
+#: config/arm/arm.cc:34538
+msgid "invalid conversion to type %<bfloat16_t%>"
+msgstr ""
+
+#: config/arm/arm.cc:34553 config/arm/arm.cc:34569
+msgid "operation not permitted on type %<bfloat16_t%>"
+msgstr ""
+
+#: config/avr/avr.cc:3616
+#, c-format
+msgid "address operand requires constraint for X, Y, or Z register"
+msgstr ""
+
+#: config/avr/avr.cc:3799
+msgid "operands to %T/%t must be reg + const_int:"
+msgstr ""
+
+#: config/avr/avr.cc:3849 config/avr/avr.cc:3916
+msgid "bad address, not an I/O address:"
+msgstr ""
+
+#: config/avr/avr.cc:3858
+msgid "bad address, not a constant:"
+msgstr ""
+
+#: config/avr/avr.cc:3876 config/avr/avr.cc:3883
+msgid "bad address, not (reg+disp):"
+msgstr ""
+
+#: config/avr/avr.cc:3890
+msgid "bad address, not post_inc or pre_dec:"
+msgstr ""
+
+#: config/avr/avr.cc:3902
+msgid "internal compiler error.  Bad address:"
+msgstr ""
+
+#: config/avr/avr.cc:3935
+#, c-format
+msgid "Unsupported code '%c' for fixed-point:"
+msgstr ""
+
+#: config/avr/avr.cc:3954
+msgid "internal compiler error.  Unknown mode:"
+msgstr ""
+
+#: config/avr/avr.cc:4827 config/avr/avr.cc:5787 config/avr/avr.cc:6234
+msgid "invalid insn:"
+msgstr ""
+
+#: config/avr/avr.cc:4898 config/avr/avr.cc:5009 config/avr/avr.cc:5067
+#: config/avr/avr.cc:5119 config/avr/avr.cc:5138 config/avr/avr.cc:5330
+#: config/avr/avr.cc:5638 config/avr/avr.cc:5923 config/avr/avr.cc:6127
+#: config/avr/avr.cc:6291 config/avr/avr.cc:6384 config/avr/avr.cc:6582
+msgid "incorrect insn:"
+msgstr ""
+
+#: config/avr/avr.cc:5154 config/avr/avr.cc:5429 config/avr/avr.cc:5709
+#: config/avr/avr.cc:5995 config/avr/avr.cc:6173 config/avr/avr.cc:6440
+#: config/avr/avr.cc:6640
+msgid "unknown move insn:"
+msgstr ""
+
+#: config/avr/avr.cc:7407
+msgid "bad shift insn:"
+msgstr ""
+
+#: config/avr/avr.cc:7515 config/avr/avr.cc:7998 config/avr/avr.cc:8415
+msgid "internal compiler error.  Incorrect shift:"
+msgstr ""
+
+#: config/avr/avr.cc:10239
+msgid "unsupported fixed-point conversion"
+msgstr ""
+
+#: config/avr/avr.cc:11614
+msgid "variable"
+msgstr "ცვლადი"
+
+#: config/avr/avr.cc:11619
+msgid "function parameter"
+msgstr "ფუნქციის პარამეტრი"
+
+#: config/avr/avr.cc:11624
+msgid "structure field"
+msgstr ""
+
+#: config/avr/avr.cc:11630
+msgid "return type of function"
+msgstr ""
+
+#: config/avr/avr.cc:11635
+msgid "pointer"
+msgstr ""
+
+#: config/avr/driver-avr.cc:50
+#, c-format
+msgid ""
+"Running spec function '%s' with %d args\n"
+"\n"
+msgstr ""
+
+#: config/bfin/bfin.cc:1390
+#, c-format
+msgid "invalid %%j value"
+msgstr ""
+
+#: config/bfin/bfin.cc:1583 config/c6x/c6x.cc:2279
+#, c-format
+msgid "invalid const_double operand"
+msgstr ""
+
+#: config/bpf/bpf.cc:929
+msgid "invalid address in operand"
+msgstr ""
+
+#. Fallthrough.
+#: config/bpf/bpf.cc:936
+msgid "unsupported operand"
+msgstr ""
+
+#. Format punctuators via %s to avoid -Wformat-diag.
+#: config/cris/cris.cc:779 config/ft32/ft32.cc:110 config/moxie/moxie.cc:108
+#: final.cc:3187 final.cc:3189 fold-const.cc:348 gcc.cc:6261 gcc.cc:6275
+#: rtl-error.cc:101 toplev.cc:319 cp/logic.cc:312 cp/logic.cc:314
+#: cp/typeck.cc:7748 d/d-convert.cc:237 go/go-gcc-diagnostics.cc:28
+#: go/go-gcc-diagnostics.cc:37 go/go-gcc-diagnostics.cc:45
+#: go/go-gcc-diagnostics.cc:53 lto/lto-object.cc:180 lto/lto-object.cc:277
+#: lto/lto-object.cc:334 lto/lto-object.cc:358 m2/gm2-gcc/m2linemap.cc:182
+#: m2/gm2-gcc/m2linemap.cc:253 m2/gm2-gcc/m2linemap.cc:362
+#: rust/rust-diagnostics.cc:164 rust/rust-diagnostics.cc:182
+#: rust/rust-diagnostics.cc:243 rust/rust-diagnostics.cc:266
+#: rust/rust-diagnostics.cc:287 rust/rust-diagnostics.cc:306
+#: rust/rust-diagnostics.cc:322 rust/rust-diagnostics.cc:338
+#: rust/rust-diagnostics.cc:357 rust/rust-diagnostics.cc:373
+#, gcc-internal-format, gfc-internal-format
+msgid "%s"
+msgstr ""
+
+#: config/cris/cris.cc:830
+msgid "unexpected index-type in cris_print_index"
+msgstr ""
+
+#: config/cris/cris.cc:844
+msgid "unexpected base-type in cris_print_base"
+msgstr ""
+
+#: config/cris/cris.cc:899
+msgid "invalid operand for 'b' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:916
+msgid "invalid operand for 'o' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:935
+msgid "invalid operand for 'O' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:968
+msgid "invalid operand for 'p' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:1007
+msgid "invalid operand for 'z' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:1054 config/cris/cris.cc:1088
+msgid "invalid operand for 'H' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:1064
+msgid "bad register"
+msgstr ""
+
+#: config/cris/cris.cc:1108
+msgid "invalid operand for 'e' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:1125
+msgid "invalid operand for 'm' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:1150
+msgid "invalid operand for 'A' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:1205
+msgid "invalid operand for 'D' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:1222 config/cris/cris.cc:1227
+msgid "invalid operand for 'T' modifier"
+msgstr ""
+
+#: config/cris/cris.cc:1238 config/ft32/ft32.cc:236 config/moxie/moxie.cc:178
+msgid "invalid operand modifier letter"
+msgstr ""
+
+#: config/cris/cris.cc:1290
+msgid "unexpected multiplicative operand"
+msgstr ""
+
+#: config/cris/cris.cc:1310 config/ft32/ft32.cc:259 config/moxie/moxie.cc:203
+msgid "unexpected operand"
+msgstr ""
+
+#: config/cris/cris.cc:1349 config/cris/cris.cc:1359
+msgid "unrecognized address"
+msgstr ""
+
+#: config/cris/cris.cc:2591 config/cris/cris.cc:2644
+msgid "unexpected side-effects in address"
+msgstr ""
+
+#: config/fr30/fr30.cc:513
+#, c-format
+msgid "fr30_print_operand_address: unhandled address"
+msgstr ""
+
+#: config/fr30/fr30.cc:537
+#, c-format
+msgid "fr30_print_operand: unrecognized %%p code"
+msgstr ""
+
+#: config/fr30/fr30.cc:557
+#, c-format
+msgid "fr30_print_operand: unrecognized %%b code"
+msgstr ""
+
+#: config/fr30/fr30.cc:578
+#, c-format
+msgid "fr30_print_operand: unrecognized %%B code"
+msgstr ""
+
+#: config/fr30/fr30.cc:586
+#, c-format
+msgid "fr30_print_operand: invalid operand to %%A code"
+msgstr ""
+
+#: config/fr30/fr30.cc:603
+#, c-format
+msgid "fr30_print_operand: invalid %%x code"
+msgstr ""
+
+#: config/fr30/fr30.cc:610
+#, c-format
+msgid "fr30_print_operand: invalid %%F code"
+msgstr ""
+
+#: config/fr30/fr30.cc:627
+#, c-format
+msgid "fr30_print_operand: unknown code"
+msgstr ""
+
+#: config/fr30/fr30.cc:655 config/fr30/fr30.cc:664 config/fr30/fr30.cc:675
+#: config/fr30/fr30.cc:688
+#, c-format
+msgid "fr30_print_operand: unhandled MEM"
+msgstr ""
+
+#: config/frv/frv.cc:2492
+msgid "bad insn to frv_print_operand_address:"
+msgstr ""
+
+#: config/frv/frv.cc:2503
+msgid "bad register to frv_print_operand_memory_reference_reg:"
+msgstr ""
+
+#: config/frv/frv.cc:2542 config/frv/frv.cc:2552 config/frv/frv.cc:2561
+#: config/frv/frv.cc:2582 config/frv/frv.cc:2587
+msgid "bad insn to frv_print_operand_memory_reference:"
+msgstr ""
+
+#: config/frv/frv.cc:2672
+#, c-format
+msgid "bad condition code"
+msgstr ""
+
+#: config/frv/frv.cc:2746
+msgid "bad insn in frv_print_operand, bad const_double"
+msgstr ""
+
+#: config/frv/frv.cc:2807
+msgid "bad insn to frv_print_operand, 'e' modifier:"
+msgstr ""
+
+#: config/frv/frv.cc:2815
+msgid "bad insn to frv_print_operand, 'F' modifier:"
+msgstr ""
+
+#: config/frv/frv.cc:2831
+msgid "bad insn to frv_print_operand, 'f' modifier:"
+msgstr ""
+
+#: config/frv/frv.cc:2845
+msgid "bad insn to frv_print_operand, 'g' modifier:"
+msgstr ""
+
+#: config/frv/frv.cc:2893
+msgid "bad insn to frv_print_operand, 'L' modifier:"
+msgstr ""
+
+#: config/frv/frv.cc:2906
+msgid "bad insn to frv_print_operand, 'M/N' modifier:"
+msgstr ""
+
+#: config/frv/frv.cc:2927
+msgid "bad insn to frv_print_operand, 'O' modifier:"
+msgstr ""
+
+#: config/frv/frv.cc:2945
+msgid "bad insn to frv_print_operand, P modifier:"
+msgstr ""
+
+#: config/frv/frv.cc:2965
+msgid "bad insn in frv_print_operand, z case"
+msgstr ""
+
+#: config/frv/frv.cc:2996
+msgid "bad insn in frv_print_operand, 0 case"
+msgstr ""
+
+#: config/frv/frv.cc:3001
+msgid "frv_print_operand: unknown code"
+msgstr ""
+
+#: config/frv/frv.cc:4375
+msgid "bad output_move_single operand"
+msgstr ""
+
+#: config/frv/frv.cc:4502
+msgid "bad output_move_double operand"
+msgstr ""
+
+#: config/frv/frv.cc:4644
+msgid "bad output_condmove_single operand"
+msgstr ""
+
+#: config/gcn/gcn.cc:7101 config/gcn/gcn.cc:7121 config/gcn/gcn.cc:7125
+#: config/gcn/gcn.cc:7461 config/gcn/gcn.cc:7472 config/gcn/gcn.cc:7475
+#, c-format
+msgid "bad ADDR_SPACE_GLOBAL address"
+msgstr ""
+
+#: config/gcn/gcn.cc:7241 config/gcn/gcn.cc:7264 config/gcn/gcn.cc:7296
+#: config/gcn/gcn.cc:7312 config/gcn/gcn.cc:7327 config/gcn/gcn.cc:7346
+#: config/gcn/gcn.cc:7410 config/gcn/gcn.cc:7606 config/gcn/gcn.cc:7721
+#, c-format
+msgid "invalid operand %%xn code"
+msgstr ""
+
+#: config/gcn/gcn.cc:7709
+#, c-format
+msgid "operand %%xn code invalid for QImode"
+msgstr ""
+
+#: config/gcn/gcn.cc:7797
+#, c-format
+msgid "invalid fp constant"
+msgstr ""
+
+#: config/h8300/h8300.cc:1628 config/h8300/h8300.cc:1636
+#: config/h8300/h8300.cc:1644 config/h8300/h8300.cc:1652
+#: config/h8300/h8300.cc:1660 config/h8300/h8300.cc:1668
+#, c-format
+msgid "Expected register or constant integer."
+msgstr ""
+
+#: config/i386/i386.cc:13011
+#, c-format
+msgid "invalid UNSPEC as operand"
+msgstr ""
+
+#: config/i386/i386.cc:13550
+#, c-format
+msgid "invalid use of register '%s'"
+msgstr ""
+
+#: config/i386/i386.cc:13555
+#, c-format
+msgid "invalid use of asm flag output"
+msgstr ""
+
+#: config/i386/i386.cc:13788
+#, c-format
+msgid "invalid operand size for operand code 'O'"
+msgstr ""
+
+#: config/i386/i386.cc:13823
+#, c-format
+msgid "invalid operand size for operand code 'z'"
+msgstr ""
+
+#: config/i386/i386.cc:13898
+#, c-format
+msgid "invalid operand type used with operand code '%c'"
+msgstr ""
+
+#: config/i386/i386.cc:13903
+#, c-format
+msgid "invalid operand size for operand code '%c'"
+msgstr ""
+
+#: config/i386/i386.cc:13981
+#, c-format
+msgid "operand is not a condition code, invalid operand code 'Y'"
+msgstr ""
+
+#: config/i386/i386.cc:14060
+#, c-format
+msgid "operand is not a condition code, invalid operand code 'D'"
+msgstr ""
+
+#: config/i386/i386.cc:14078
+#, c-format
+msgid "operand is not a condition code, invalid operand code '%c'"
+msgstr ""
+
+#: config/i386/i386.cc:14091
+#, c-format
+msgid "operand is not an offsettable memory reference, invalid operand code 'H'"
+msgstr ""
+
+#: config/i386/i386.cc:14106
+#, c-format
+msgid "operand is not an integer, invalid operand code 'K'"
+msgstr ""
+
+#: config/i386/i386.cc:14134
+#, c-format
+msgid "operand is not a specific integer, invalid operand code 'r'"
+msgstr ""
+
+#: config/i386/i386.cc:14152
+#, c-format
+msgid "operand is not an integer, invalid operand code 'R'"
+msgstr ""
+
+#: config/i386/i386.cc:14175
+#, c-format
+msgid "operand is not a specific integer, invalid operand code 'R'"
+msgstr ""
+
+#: config/i386/i386.cc:14268
+#, c-format
+msgid "invalid operand code '%c'"
+msgstr ""
+
+#: config/i386/i386.cc:14330 config/i386/i386.cc:14719
+#, c-format
+msgid "invalid constraints for operand"
+msgstr ""
+
+#: config/i386/i386.cc:14431
+#, c-format
+msgid "invalid vector immediate"
+msgstr ""
+
+#: config/i386/i386.cc:17551
+msgid "unknown insn mode"
+msgstr ""
+
+#: config/i386/i386.cc:23777
+msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
+msgstr ""
+
+#: config/i386/i386.cc:23780
+msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
+msgstr ""
+
+#: config/i386/i386.cc:23783
+msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
+msgstr ""
+
+#: config/i386/i386.cc:23786
+msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
+msgstr ""
+
+#: config/i386/i386.cc:23824 config/i386/i386.cc:23849
+msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
+msgstr ""
+
+#: config/i386/i386.cc:23827 config/i386/i386.cc:23853
+msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
+msgstr ""
+
+#: config/ia64/ia64.cc:5470
+#, c-format
+msgid "invalid %%G mode"
+msgstr ""
+
+#: config/ia64/ia64.cc:5641
+#, c-format
+msgid "ia64_print_operand: unknown code"
+msgstr ""
+
+#: config/ia64/ia64.cc:11265
+msgid "invalid conversion from %<__fpreg%>"
+msgstr ""
+
+#: config/ia64/ia64.cc:11268
+msgid "invalid conversion to %<__fpreg%>"
+msgstr ""
+
+#: config/ia64/ia64.cc:11281 config/ia64/ia64.cc:11292
+msgid "invalid operation on %<__fpreg%>"
+msgstr ""
+
+#: config/iq2000/iq2000.cc:3123
+#, c-format
+msgid "invalid %%P operand"
+msgstr ""
+
+#: config/iq2000/iq2000.cc:3131 config/rs6000/rs6000.cc:14264
+#, c-format
+msgid "invalid %%p value"
+msgstr ""
+
+#: config/iq2000/iq2000.cc:3190
+#, c-format
+msgid "invalid use of %%d, %%x, or %%X"
+msgstr ""
+
+#: config/lm32/lm32.cc:524
+#, c-format
+msgid "only 0.0 can be loaded as an immediate"
+msgstr ""
+
+#: config/lm32/lm32.cc:594
+msgid "bad operand"
+msgstr ""
+
+#: config/lm32/lm32.cc:606
+msgid "can't use non gp relative absolute address"
+msgstr ""
+
+#: config/lm32/lm32.cc:610
+msgid "invalid addressing mode"
+msgstr ""
+
+#: config/loongarch/loongarch.cc:5887 config/loongarch/loongarch.cc:5909
+#: config/loongarch/loongarch.cc:6310 config/mips/mips.cc:9248
+#: config/mips/mips.cc:9275 config/mips/mips.cc:9458
+#, c-format
+msgid "'%%%c' is not a valid operand prefix"
+msgstr ""
+
+#: config/loongarch/loongarch.cc:6147 config/loongarch/loongarch.cc:6167
+#: config/loongarch/loongarch.cc:6213 config/loongarch/loongarch.cc:6220
+#: config/loongarch/loongarch.cc:6267 config/loongarch/loongarch.cc:6270
+#: config/loongarch/loongarch.cc:6282 config/loongarch/loongarch.cc:6289
+#: config/loongarch/loongarch.cc:6299 config/loongarch/loongarch.cc:6302
+#: config/loongarch/loongarch.cc:6323 config/loongarch/loongarch.cc:6330
+#: config/loongarch/loongarch.cc:6357 config/loongarch/loongarch.cc:6368
+#: config/loongarch/loongarch.cc:6383 config/loongarch/loongarch.cc:6392
+#: config/mips/mips.cc:9347 config/mips/mips.cc:9354 config/mips/mips.cc:9361
+#: config/mips/mips.cc:9368 config/mips/mips.cc:9381 config/mips/mips.cc:9388
+#: config/mips/mips.cc:9398 config/mips/mips.cc:9401 config/mips/mips.cc:9413
+#: config/mips/mips.cc:9416 config/mips/mips.cc:9476 config/mips/mips.cc:9483
+#: config/mips/mips.cc:9504 config/mips/mips.cc:9519 config/mips/mips.cc:9538
+#: config/mips/mips.cc:9547 config/riscv/riscv.cc:5974
+#: config/riscv/riscv.cc:6349 config/riscv/riscv.cc:6355
+#: config/riscv/riscv.cc:6371 config/riscv/riscv.cc:6382
+#, c-format
+msgid "invalid use of '%%%c'"
+msgstr ""
+
+#: config/m32r/m32r.cc:2146
+msgid "bad insn for 'A'"
+msgstr ""
+
+#: config/m32r/m32r.cc:2193
+#, c-format
+msgid "invalid operand to %%T/%%B code"
+msgstr ""
+
+#: config/m32r/m32r.cc:2216
+#, c-format
+msgid "invalid operand to %%N code"
+msgstr ""
+
+#: config/m32r/m32r.cc:2249
+msgid "pre-increment address is not a register"
+msgstr ""
+
+#: config/m32r/m32r.cc:2256
+msgid "pre-decrement address is not a register"
+msgstr ""
+
+#: config/m32r/m32r.cc:2263
+msgid "post-increment address is not a register"
+msgstr ""
+
+#: config/m32r/m32r.cc:2338 config/m32r/m32r.cc:2353
+#: config/rs6000/rs6000.cc:20989
+msgid "bad address"
+msgstr "ცუდი მისამართი"
+
+#: config/m32r/m32r.cc:2358
+msgid "lo_sum not of register"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:2299
+#, c-format
+msgid "unknown punctuation '%c'"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:2308
+#, c-format
+msgid "null pointer"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:2343
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%C"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:2372
+#, c-format
+msgid "PRINT_OPERAND, invalid insn for %%N"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:2392 config/microblaze/microblaze.cc:2568
+msgid "insn contains an invalid address !"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:2408 config/microblaze/microblaze.cc:2638
+#: config/xtensa/xtensa.cc:3163
+msgid "invalid address"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:2511
+#, c-format
+msgid "letter %c was found & insn was not CONST_INT"
+msgstr ""
+
+#: config/mmix/mmix.cc:1635 config/mmix/mmix.cc:1756
+msgid "MMIX Internal: Expected a CONST_INT, not this"
+msgstr ""
+
+#: config/mmix/mmix.cc:1714
+msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+msgstr ""
+
+#: config/mmix/mmix.cc:1724
+msgid "MMIX Internal: Expected a register, not this"
+msgstr ""
+
+#: config/mmix/mmix.cc:1734
+msgid "MMIX Internal: Expected a constant, not this"
+msgstr ""
+
+#. We need the original here.
+#: config/mmix/mmix.cc:1818
+msgid "MMIX Internal: Cannot decode this operand"
+msgstr ""
+
+#: config/mmix/mmix.cc:1877
+msgid "MMIX Internal: This is not a recognized address"
+msgstr ""
+
+#: config/mmix/mmix.cc:2769
+msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+msgstr ""
+
+#: config/mmix/mmix.cc:2776
+msgid "MMIX Internal: What's the CC of this?"
+msgstr ""
+
+#: config/mmix/mmix.cc:2780
+msgid "MMIX Internal: What is the CC of this?"
+msgstr ""
+
+#: config/mmix/mmix.cc:2822
+msgid "MMIX Internal: This is not a constant:"
+msgstr ""
+
+#: config/msp430/msp430.cc:4229
+#, c-format
+msgid "%%d, %%e, %%f, %%g operand modifiers are for memory references or constant values only"
+msgstr ""
+
+#: config/msp430/msp430.cc:4342
+#, c-format
+msgid "invalid operand prefix"
+msgstr ""
+
+#: config/msp430/msp430.cc:4376
+#, c-format
+msgid "invalid zero extract"
+msgstr ""
+
+#: config/or1k/or1k.cc:1157 config/or1k/or1k.cc:1165
+#, c-format
+msgid "invalid relocation"
+msgstr ""
+
+#: config/or1k/or1k.cc:1259
+#, c-format
+msgid "invalid %%H value"
+msgstr ""
+
+#: config/or1k/or1k.cc:1272 config/xtensa/xtensa.cc:3080
+#, c-format
+msgid "invalid %%d value"
+msgstr ""
+
+#: config/or1k/or1k.cc:1320
+#, c-format
+msgid "unknown operand letter: '%c'"
+msgstr ""
+
+#: config/pru/pru.cc:1745 config/pru/pru.cc:1756
+#, c-format
+msgid "I/O register operand for '%%%c'"
+msgstr ""
+
+#: config/pru/pru.cc:1762
+#, c-format
+msgid "non 32 bit register operand for '%%%c'"
+msgstr ""
+
+#: config/pru/pru.cc:1847
+#, c-format
+msgid "unsupported code '%c' for fixed-point:"
+msgstr ""
+
+#: config/pru/pru.cc:1861
+#, c-format
+msgid "double constants not supported"
+msgstr "ორმაგი კონსტანტები მხარდაჭერილი არაა"
+
+#: config/pru/pru.cc:1944
+#, c-format
+msgid "unsupported operand %s for code '%c'"
+msgstr ""
+
+#: config/pru/pru.cc:1954
+#, c-format
+msgid "unexpected text address:"
+msgstr ""
+
+#: config/pru/pru.cc:1973
+#, c-format
+msgid "unsupported constant address:"
+msgstr ""
+
+#: config/pru/pru.cc:2034
+#, c-format
+msgid "unsupported memory expression:"
+msgstr ""
+
+#: config/riscv/riscv.cc:6151
+#, c-format
+msgid "invalid vector operand"
+msgstr ""
+
+#: config/rl78/rl78.cc:1998 config/rl78/rl78.cc:2084
+#, c-format
+msgid "q/Q modifiers invalid for symbol references"
+msgstr ""
+
+#: config/rs6000/host-darwin.cc:96
+#, c-format
+msgid "Out of stack space.\n"
+msgstr ""
+
+#: config/rs6000/host-darwin.cc:117
+#, c-format
+msgid "Try running '%s' in the shell to raise its limit.\n"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3823
+msgid "%<-mvsx%> requires hardware floating point"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3831
+msgid "%<-mvsx%> needs indexed addressing"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3836
+msgid "%<-mvsx%> and %<-mno-altivec%> are incompatible"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3838
+msgid "%<-mno-altivec%> disables vsx"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3958
+msgid "%<-mquad-memory%> requires 64-bit mode"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3961
+msgid "%<-mquad-memory-atomic%> requires 64-bit mode"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3973
+msgid "%<-mquad-memory%> is not available in little endian mode"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:11354
+msgid "bad move"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:13894
+msgid "Bad 128-bit move"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14074
+#, c-format
+msgid "invalid %%A value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14083 config/xtensa/xtensa.cc:3015
+#, c-format
+msgid "invalid %%D value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14098
+#, c-format
+msgid "invalid %%e value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14119
+#, c-format
+msgid "invalid %%f value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14128
+#, c-format
+msgid "invalid %%F value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14137
+#, c-format
+msgid "invalid %%G value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14172
+#, c-format
+msgid "invalid %%j code"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14182
+#, c-format
+msgid "invalid %%J code"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14192
+#, c-format
+msgid "invalid %%k value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14207 config/xtensa/xtensa.cc:3052
+#, c-format
+msgid "invalid %%K value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14254
+#, c-format
+msgid "invalid %%O value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14301
+#, c-format
+msgid "invalid %%q value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14343
+#, c-format
+msgid "invalid %%t value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14360
+#, c-format
+msgid "invalid %%T value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14372
+#, c-format
+msgid "invalid %%u value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14386 config/xtensa/xtensa.cc:3027
+#, c-format
+msgid "invalid %%v value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14436
+#, c-format
+msgid "invalid %%V value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14452 config/xtensa/xtensa.cc:3073
+#, c-format
+msgid "invalid %%x value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14509
+#, c-format
+msgid "invalid %%z value"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:14578
+#, c-format
+msgid "invalid %%y value, try using the 'Z' constraint"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:15520
+msgid "Invalid mixing of IEEE 128-bit and IBM 128-bit floating point types"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:24390
+msgid "AltiVec argument passed to unprototyped function"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:28005
+msgid "Could not generate addis value for fusion"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:28074
+msgid "Unable to generate load/store offset for fusion"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:28150
+msgid "Bad GPR fusion"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:28752
+msgid "invalid conversion from type %<__vector_quad%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:28754
+msgid "invalid conversion to type %<__vector_quad%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:28756
+msgid "invalid conversion from type %<__vector_pair%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:28758
+msgid "invalid conversion to type %<__vector_pair%>"
+msgstr ""
+
+#: config/s390/s390.cc:8416
+#, c-format
+msgid "symbolic memory references are only supported on z10 or later"
+msgstr ""
+
+#: config/s390/s390.cc:8427
+#, c-format
+msgid "cannot decompose address"
+msgstr ""
+
+#: config/s390/s390.cc:8509
+#, c-format
+msgid "invalid comparison operator for 'E' output modifier"
+msgstr ""
+
+#: config/s390/s390.cc:8532
+#, c-format
+msgid "invalid reference for 'J' output modifier"
+msgstr ""
+
+#: config/s390/s390.cc:8550
+#, c-format
+msgid "invalid address for 'O' output modifier"
+msgstr ""
+
+#: config/s390/s390.cc:8572
+#, c-format
+msgid "invalid address for 'R' output modifier"
+msgstr ""
+
+#: config/s390/s390.cc:8590
+#, c-format
+msgid "memory reference expected for 'S' output modifier"
+msgstr ""
+
+#: config/s390/s390.cc:8600
+#, c-format
+msgid "invalid address for 'S' output modifier"
+msgstr ""
+
+#: config/s390/s390.cc:8621
+#, c-format
+msgid "register or memory expression expected for 'N' output modifier"
+msgstr ""
+
+#: config/s390/s390.cc:8632
+#, c-format
+msgid "register or memory expression expected for 'M' output modifier"
+msgstr ""
+
+#: config/s390/s390.cc:8741 config/s390/s390.cc:8762
+#, c-format
+msgid "invalid constant for output modifier '%c'"
+msgstr ""
+
+#: config/s390/s390.cc:8759
+#, c-format
+msgid "invalid constant - try using an output modifier"
+msgstr ""
+
+#: config/s390/s390.cc:8796
+#, c-format
+msgid "invalid constant vector for output modifier '%c'"
+msgstr ""
+
+#: config/s390/s390.cc:8803
+#, c-format
+msgid "invalid expression - try using an output modifier"
+msgstr ""
+
+#: config/s390/s390.cc:8806
+#, c-format
+msgid "invalid expression for output modifier '%c'"
+msgstr ""
+
+#: config/s390/s390.cc:12665
+msgid "vector argument passed to unprototyped function"
+msgstr ""
+
+#: config/s390/s390.cc:17111
+msgid "types differ in signedness"
+msgstr ""
+
+#: config/s390/s390.cc:17121
+msgid "binary operator does not support two vector bool operands"
+msgstr ""
+
+#: config/s390/s390.cc:17124
+msgid "binary operator does not support vector bool operand"
+msgstr ""
+
+#: config/s390/s390.cc:17132
+msgid "binary operator does not support mixing vector bool with floating point vector operands"
+msgstr ""
+
+#: config/sh/sh.cc:1222
+#, c-format
+msgid "invalid operand to %%R"
+msgstr ""
+
+#: config/sh/sh.cc:1249
+#, c-format
+msgid "invalid operand to %%S"
+msgstr ""
+
+#: config/sh/sh.cc:8667
+msgid "created and used with different architectures / ABIs"
+msgstr ""
+
+#: config/sh/sh.cc:8669
+msgid "created and used with different ABIs"
+msgstr ""
+
+#: config/sh/sh.cc:8671
+msgid "created and used with different endianness"
+msgstr ""
+
+#: config/sparc/sparc.cc:9393 config/sparc/sparc.cc:9399
+#, c-format
+msgid "invalid %%Y operand"
+msgstr ""
+
+#: config/sparc/sparc.cc:9486
+#, c-format
+msgid "invalid %%A operand"
+msgstr ""
+
+#: config/sparc/sparc.cc:9506
+#, c-format
+msgid "invalid %%B operand"
+msgstr ""
+
+#: config/sparc/sparc.cc:9586
+#, c-format
+msgid "invalid %%C operand"
+msgstr ""
+
+#: config/sparc/sparc.cc:9618
+#, c-format
+msgid "invalid %%D operand"
+msgstr ""
+
+#: config/sparc/sparc.cc:9637
+#, c-format
+msgid "invalid %%f operand"
+msgstr ""
+
+#: config/sparc/sparc.cc:9649
+#, c-format
+msgid "invalid %%s operand"
+msgstr ""
+
+#: config/sparc/sparc.cc:9694
+#, c-format
+msgid "floating-point constant not a valid immediate operand"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:1895 config/stormy16/stormy16.cc:1966
+#, c-format
+msgid "'B' operand is not constant"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:1922
+#, c-format
+msgid "'B' operand has multiple bits set"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:1948
+#, c-format
+msgid "'o' operand is not constant"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:1980
+#, c-format
+msgid "'h' operand is not SImode register"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:1988
+#, c-format
+msgid "xstormy16_print_operand: unknown code"
+msgstr ""
+
+#: config/v850/v850.cc:271
+msgid "const_double_split got a bad insn:"
+msgstr ""
+
+#: config/v850/v850.cc:885
+msgid "output_move_single:"
+msgstr ""
+
+#: config/vax/vax.cc:483
+#, c-format
+msgid "symbol used with both base and indexed registers"
+msgstr ""
+
+#: config/vax/vax.cc:492
+#, c-format
+msgid "symbol with offset used in PIC mode"
+msgstr ""
+
+#: config/vax/vax.cc:580
+#, c-format
+msgid "symbol used as immediate operand"
+msgstr ""
+
+#: config/vax/vax.cc:1683
+msgid "illegal operand detected"
+msgstr ""
+
+#: config/visium/visium.cc:3367
+msgid "illegal operand "
+msgstr ""
+
+#: config/visium/visium.cc:3418
+msgid "illegal operand address (1)"
+msgstr ""
+
+#: config/visium/visium.cc:3425
+msgid "illegal operand address (2)"
+msgstr ""
+
+#: config/visium/visium.cc:3440
+msgid "illegal operand address (3)"
+msgstr ""
+
+#: config/visium/visium.cc:3448
+msgid "illegal operand address (4)"
+msgstr ""
+
+#: config/xtensa/xtensa-dynconfig.cc:63
+msgid "Unable to load DLL."
+msgstr ""
+
+#: config/xtensa/xtensa.cc:833 config/xtensa/xtensa.cc:871
+msgid "bad test"
+msgstr ""
+
+#: config/xtensa/xtensa.cc:3047
+msgid "invalid mask"
+msgstr ""
+
+#: config/xtensa/xtensa.cc:3099 config/xtensa/xtensa.cc:3109
+#, c-format
+msgid "invalid %%t/%%b value"
+msgstr ""
+
+#: config/xtensa/xtensa.cc:3188
+msgid "no register in address"
+msgstr ""
+
+#: config/xtensa/xtensa.cc:3196
+msgid "address offset not a constant"
+msgstr ""
+
+#: c/c-objc-common.cc:227
+msgid "{erroneous}"
+msgstr ""
+
+#: c/c-objc-common.cc:268
+msgid "aka"
+msgstr ""
+
+#: c/c-objc-common.cc:360
+msgid "({anonymous})"
+msgstr ""
+
+#. If we have
+#. declaration-specifiers declarator decl-specs
+#. then assume we have a missing semicolon, which would
+#. give us:
+#. declaration-specifiers declarator  decl-specs
+#. ^
+#. ;
+#. <~~~~~~~~~ declaration ~~~~~~~~~~>
+#. Use c_parser_require to get an error with a fix-it hint.
+#: c/c-parser.cc:2934 c/c-parser.cc:3059 c/c-parser.cc:3073 c/c-parser.cc:7006
+#: c/c-parser.cc:7761 c/c-parser.cc:8217 c/c-parser.cc:8404 c/c-parser.cc:8437
+#: c/c-parser.cc:8708 c/c-parser.cc:13166 c/c-parser.cc:13201
+#: c/c-parser.cc:13232 c/c-parser.cc:13279 c/c-parser.cc:13460
+#: c/c-parser.cc:14293 c/c-parser.cc:14368 c/c-parser.cc:14411
+#: c/c-parser.cc:21325 c/c-parser.cc:21405 c/c-parser.cc:21734
+#: c/c-parser.cc:21760 c/c-parser.cc:21783 c/c-parser.cc:22319
+#: c/c-parser.cc:22362 c/gimple-parser.cc:411 c/gimple-parser.cc:452
+#: c/gimple-parser.cc:461 c/gimple-parser.cc:670 c/gimple-parser.cc:2351
+#: c/gimple-parser.cc:2388 c/gimple-parser.cc:2467 c/gimple-parser.cc:2494
+#: c/c-parser.cc:3888 c/c-parser.cc:4079 c/c-parser.cc:4114 c/c-parser.cc:13453
+#: c/gimple-parser.cc:2158 c/gimple-parser.cc:2215 cp/parser.cc:15847
+#: cp/parser.cc:33812 cp/parser.cc:34451
+#, gcc-internal-format
+msgid "expected %<;%>"
+msgstr ""
+
+#: c/c-parser.cc:3569 c/c-parser.cc:4679 c/c-parser.cc:4874 c/c-parser.cc:4932
+#: c/c-parser.cc:4990 c/c-parser.cc:5373 c/c-parser.cc:5396 c/c-parser.cc:5405
+#: c/c-parser.cc:5456 c/c-parser.cc:5465 c/c-parser.cc:10145
+#: c/c-parser.cc:10213 c/c-parser.cc:10735 c/c-parser.cc:10761
+#: c/c-parser.cc:10795 c/c-parser.cc:10907 c/c-parser.cc:11726
+#: c/c-parser.cc:13567 c/c-parser.cc:16181 c/c-parser.cc:16916
+#: c/c-parser.cc:16975 c/c-parser.cc:17030 c/c-parser.cc:18889
+#: c/c-parser.cc:19009 c/c-parser.cc:20418 c/c-parser.cc:21825
+#: c/c-parser.cc:22327 c/c-parser.cc:25649 c/c-parser.cc:25731
+#: c/gimple-parser.cc:195 c/gimple-parser.cc:198 c/gimple-parser.cc:546
+#: c/gimple-parser.cc:580 c/gimple-parser.cc:585 c/gimple-parser.cc:754
+#: c/gimple-parser.cc:851 c/gimple-parser.cc:1089 c/gimple-parser.cc:1115
+#: c/gimple-parser.cc:1118 c/gimple-parser.cc:1249 c/gimple-parser.cc:1376
+#: c/gimple-parser.cc:1506 c/gimple-parser.cc:1522 c/gimple-parser.cc:1578
+#: c/gimple-parser.cc:1605 c/gimple-parser.cc:1635 c/gimple-parser.cc:1661
+#: c/gimple-parser.cc:1868 c/gimple-parser.cc:2080 c/gimple-parser.cc:2100
+#: c/gimple-parser.cc:2261 c/gimple-parser.cc:2424 c/c-parser.cc:8660
+#: cp/parser.cc:34499
+#, gcc-internal-format
+msgid "expected %<)%>"
+msgstr ""
+
+#: c/c-parser.cc:4768 c/c-parser.cc:5516 c/c-parser.cc:5876 c/c-parser.cc:5894
+#: c/c-parser.cc:5895 c/c-parser.cc:6341 c/c-parser.cc:6385 c/c-parser.cc:8759
+#: c/c-parser.cc:10898 c/c-parser.cc:12179 c/c-parser.cc:12550
+#: c/c-parser.cc:15496 c/gimple-parser.cc:1844 cp/parser.cc:34463
+#, gcc-internal-format
+msgid "expected %<]%>"
+msgstr ""
+
+#: c/c-parser.cc:4970
+msgid "expected %<;%>, %<,%> or %<)%>"
+msgstr ""
+
+#. Look for the two `(' tokens.
+#: c/c-parser.cc:5425 c/c-parser.cc:5430 c/c-parser.cc:16164
+#: c/c-parser.cc:17005 c/c-parser.cc:24793 c/c-parser.cc:25457
+#: c/c-parser.cc:25674 c/gimple-parser.cc:180 c/gimple-parser.cc:493
+#: c/gimple-parser.cc:532 c/gimple-parser.cc:564 c/gimple-parser.cc:821
+#: c/gimple-parser.cc:1083 c/gimple-parser.cc:1109 c/gimple-parser.cc:1236
+#: c/gimple-parser.cc:1371 c/gimple-parser.cc:1496 c/gimple-parser.cc:1601
+#: c/gimple-parser.cc:1619 c/gimple-parser.cc:1654 c/gimple-parser.cc:2049
+#: c/gimple-parser.cc:2060 c/gimple-parser.cc:2066 c/gimple-parser.cc:2249
+#: c/gimple-parser.cc:2421 c/c-parser.cc:15945 cp/parser.cc:34454
+#, gcc-internal-format
+msgid "expected %<(%>"
+msgstr ""
+
+#: c/c-parser.cc:5872 c/c-parser.cc:5874 c/c-parser.cc:15401 cp/parser.cc:34466
+#: cp/parser.cc:38335 go/gofrontend/embed.cc:440
+#, gcc-internal-format
+msgid "expected %<[%>"
+msgstr ""
+
+#: c/c-parser.cc:6522 c/c-parser.cc:13796 c/c-parser.cc:21300
+#: c/c-parser.cc:21386 c/c-parser.cc:22147 c/c-parser.cc:23105
+#: c/c-parser.cc:26917 c/gimple-parser.cc:404 c/gimple-parser.cc:2427
+#: c/c-parser.cc:3875 c/c-parser.cc:4103 c/c-parser.cc:13348 cp/parser.cc:21607
+#: cp/parser.cc:34460 go/gofrontend/embed.cc:371
+#, gcc-internal-format
+msgid "expected %<{%>"
+msgstr ""
+
+#: c/c-parser.cc:7368 c/c-parser.cc:7377 c/c-parser.cc:9208 c/c-parser.cc:10350
+#: c/c-parser.cc:13560 c/c-parser.cc:13957 c/c-parser.cc:14021
+#: c/c-parser.cc:15478 c/c-parser.cc:16596 c/c-parser.cc:16833
+#: c/c-parser.cc:17386 c/c-parser.cc:17489 c/c-parser.cc:18030
+#: c/c-parser.cc:18466 c/c-parser.cc:18542 c/c-parser.cc:18659
+#: c/c-parser.cc:18731 c/c-parser.cc:24660 c/c-parser.cc:25514
+#: c/c-parser.cc:25573 c/gimple-parser.cc:587 c/gimple-parser.cc:892
+#: c/gimple-parser.cc:2475 c/gimple-parser.cc:2502 c/c-parser.cc:8667
+#: c/c-parser.cc:16089 c/c-parser.cc:17494 cp/parser.cc:34493
+#: cp/parser.cc:36196 cp/parser.cc:39266 cp/parser.cc:40159
+#: go/gofrontend/embed.cc:404
+#, gcc-internal-format
+msgid "expected %<:%>"
+msgstr ""
+
+#: c/c-parser.cc:8199 cp/parser.cc:34380
+#, gcc-internal-format
+msgid "expected %<while%>"
+msgstr ""
+
+#: c/c-parser.cc:10108 c/c-parser.cc:10301 c/c-parser.cc:10785
+#: c/c-parser.cc:10828 c/c-parser.cc:10969 c/c-parser.cc:11716
+#: c/c-parser.cc:17010 c/c-parser.cc:18611 c/gimple-parser.cc:1086
+#: c/gimple-parser.cc:1112 c/gimple-parser.cc:1240 c/gimple-parser.cc:1243
+#: c/gimple-parser.cc:1623 c/gimple-parser.cc:1629 cp/parser.cc:33810
+#: cp/parser.cc:34469
+#, gcc-internal-format
+msgid "expected %<,%>"
+msgstr ""
+
+#: c/c-parser.cc:10679
+msgid "expected %<.%>"
+msgstr ""
+
+#: c/c-parser.cc:13019 c/c-parser.cc:13051 c/c-parser.cc:13291
+#: cp/parser.cc:36770 cp/parser.cc:36791
+#, gcc-internal-format
+msgid "expected %<@end%>"
+msgstr ""
+
+#: c/c-parser.cc:13709 c/gimple-parser.cc:1411 cp/parser.cc:34478
+#, gcc-internal-format
+msgid "expected %<>%>"
+msgstr ""
+
+#: c/c-parser.cc:17584 c/c-parser.cc:19027 cp/parser.cc:34502
+#, gcc-internal-format
+msgid "expected %<,%> or %<)%>"
+msgstr ""
+
+#. All following cases are statements with LHS.
+#: c/c-parser.cc:18458 c/c-parser.cc:21193 c/c-parser.cc:21240
+#: c/c-parser.cc:21397 c/c-parser.cc:21744 c/c-parser.cc:22306
+#: c/c-parser.cc:24841 c/c-parser.cc:25715 c/gimple-parser.cc:745
+#: c/c-parser.cc:6408 c/c-parser.cc:21317 c/c-parser.cc:21540
+#: cp/parser.cc:34481 cp/parser.cc:43149 cp/parser.cc:43322
+#, gcc-internal-format
+msgid "expected %<=%>"
+msgstr ""
+
+#: c/c-parser.cc:21328 c/c-parser.cc:21408 c/c-parser.cc:21761
+#: c/c-parser.cc:22216 c/gimple-parser.cc:1677 c/gimple-parser.cc:1709
+#: c/gimple-parser.cc:1719 c/gimple-parser.cc:2512 cp/parser.cc:34457
+#: cp/parser.cc:36980
+#, gcc-internal-format
+msgid "expected %<}%>"
+msgstr ""
+
+#: c/c-parser.cc:21421 cp/parser.cc:43247
+#, gcc-internal-format
+msgid "expected %<else%>"
+msgstr ""
+
+#: c/c-parser.cc:23152 c/c-parser.cc:23141 cp/parser.cc:45942
+#, gcc-internal-format
+msgid "expected %<#pragma omp section%> or %<}%>"
+msgstr ""
+
+#: c/c-parser.cc:26281 cp/parser.cc:49919
+msgid "<message unknown at compile time>"
+msgstr ""
+
+#: c/c-typeck.cc:9041
+msgid "(anonymous)"
+msgstr ""
+
+#: c/gimple-parser.cc:1400 cp/parser.cc:18950 cp/parser.cc:34475
+#, gcc-internal-format
+msgid "expected %<<%>"
+msgstr ""
+
+#: c/gimple-parser.cc:2471 c/gimple-parser.cc:2498 c/gimple-parser.cc:2337
+#: c/gimple-parser.cc:2374
+#, gcc-internal-format
+msgid "expected label"
+msgstr ""
+
+#: cp/call.cc:4136
+msgid "candidate:"
+msgstr ""
+
+#: cp/call.cc:8333
+msgid "  after user-defined conversion:"
+msgstr ""
+
+#: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
+msgid "candidate is:"
+msgid_plural "candidates are:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: cp/call.cc:13021 cp/call.cc:13447
+msgid "candidate 1:"
+msgstr ""
+
+#: cp/call.cc:13023 cp/call.cc:13448
+msgid "candidate 2:"
+msgstr ""
+
+#: cp/error.cc:464
+msgid "<missing>"
+msgstr ""
+
+#: cp/error.cc:566
+msgid "<brace-enclosed initializer list>"
+msgstr ""
+
+#: cp/error.cc:568
+msgid "<unresolved overloaded function type>"
+msgstr ""
+
+#: cp/error.cc:735
+msgid "<type error>"
+msgstr ""
+
+#. A lambda's "type" is essentially its signature.
+#: cp/error.cc:842
+msgid "<lambda"
+msgstr ""
+
+#: cp/error.cc:856 objc/objc-act.cc:6365 cp/cxx-pretty-print.cc:154
+#: cp/cxx-pretty-print.cc:2862
+#, gcc-internal-format
+msgid "<unnamed>"
+msgstr "<უსახელო>"
+
+#: cp/error.cc:858
+#, c-format
+msgid "<unnamed %s>"
+msgstr ""
+
+#: cp/error.cc:996
+msgid "<typeprefixerror>"
+msgstr ""
+
+#: cp/error.cc:1137
+#, c-format
+msgid "(static initializers for %s)"
+msgstr ""
+
+#: cp/error.cc:1139
+#, c-format
+msgid "(static destructors for %s)"
+msgstr ""
+
+#: cp/error.cc:1185
+msgid "<structured bindings>"
+msgstr ""
+
+#: cp/error.cc:1311
+msgid "vtable for "
+msgstr ""
+
+#: cp/error.cc:1335
+msgid "<return value> "
+msgstr ""
+
+#: cp/error.cc:1350
+msgid "{anonymous}"
+msgstr ""
+
+#: cp/error.cc:1352
+msgid "(anonymous namespace)"
+msgstr ""
+
+#: cp/error.cc:1452
+msgid "<template arguments error>"
+msgstr ""
+
+#: cp/error.cc:1477
+msgid "<enumerator>"
+msgstr ""
+
+#: cp/error.cc:1537
+msgid "<declaration error>"
+msgstr ""
+
+#: cp/error.cc:2109 cp/error.cc:2129
+msgid "<template parameter error>"
+msgstr ""
+
+#: cp/error.cc:2259
+msgid "<statement>"
+msgstr ""
+
+#: cp/error.cc:2289 cp/error.cc:3391 c-family/c-pretty-print.cc:2708
+#, gcc-internal-format
+msgid "<unknown>"
+msgstr ""
+
+#. While waiting for caret diagnostics, avoid printing
+#. __cxa_allocate_exception, __cxa_throw, and the like.
+#: cp/error.cc:2307
+msgid "<throw-expression>"
+msgstr ""
+
+#: cp/error.cc:2408
+msgid "<ubsan routine call>"
+msgstr ""
+
+#: cp/error.cc:2910
+msgid "<unparsed>"
+msgstr ""
+
+#: cp/error.cc:3063
+msgid "<lambda>"
+msgstr ""
+
+#: cp/error.cc:3102
+msgid "*this"
+msgstr ""
+
+#: cp/error.cc:3116
+msgid "<expression error>"
+msgstr ""
+
+#: cp/error.cc:3131
+msgid "<unknown operator>"
+msgstr ""
+
+#: cp/error.cc:3606
+msgid "At global scope:"
+msgstr ""
+
+#: cp/error.cc:3665
+msgid "    inlined from %qD at %r%s:%d:%d%R"
+msgstr ""
+
+#: cp/error.cc:3670
+msgid "    inlined from %qD at %r%s:%d%R"
+msgstr ""
+
+#: cp/error.cc:3676
+msgid "    inlined from %qD"
+msgstr ""
+
+#: cp/error.cc:3703
+msgid "In static member function %qD"
+msgstr ""
+
+#: cp/error.cc:3705
+msgid "In copy constructor %qD"
+msgstr ""
+
+#: cp/error.cc:3707
+msgid "In constructor %qD"
+msgstr ""
+
+#: cp/error.cc:3709
+msgid "In destructor %qD"
+msgstr ""
+
+#: cp/error.cc:3711
+msgid "In lambda function"
+msgstr ""
+
+#: cp/error.cc:3713
+msgid "In explicit object member function %qD"
+msgstr ""
+
+#: cp/error.cc:3715
+msgid "In member function %qD"
+msgstr ""
+
+#: cp/error.cc:3718
+msgid "In function %qD"
+msgstr ""
+
+#: cp/error.cc:3741
+#, c-format
+msgid "%s: In substitution of %qS:\n"
+msgstr ""
+
+#: cp/error.cc:3742
+msgid "%s: In instantiation of %q#D:\n"
+msgstr ""
+
+#: cp/error.cc:3767 cp/error.cc:3925
+msgid "%r%s:%d:%d:%R   "
+msgstr ""
+
+#: cp/error.cc:3770 cp/error.cc:3928
+msgid "%r%s:%d:%R   "
+msgstr ""
+
+#: cp/error.cc:3778
+#, c-format
+msgid "recursively required by substitution of %qS\n"
+msgstr ""
+
+#: cp/error.cc:3779
+#, c-format
+msgid "required by substitution of %qS\n"
+msgstr ""
+
+#: cp/error.cc:3784
+msgid "recursively required from %q#D\n"
+msgstr ""
+
+#: cp/error.cc:3785
+msgid "required from %q#D\n"
+msgstr ""
+
+#: cp/error.cc:3792
+msgid "recursively required from here\n"
+msgstr ""
+
+#: cp/error.cc:3793
+msgid "required from here\n"
+msgstr ""
+
+#: cp/error.cc:3849
+msgid "%r%s:%d:%d:%R   [ skipping %d instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\n"
+msgstr ""
+
+#: cp/error.cc:3855
+msgid "%r%s:%d:%R   [ skipping %d instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]\n"
+msgstr ""
+
+#: cp/error.cc:3909
+msgid "%r%s:%d:%d:%R   in %<constexpr%> expansion of %qs"
+msgstr ""
+
+#: cp/error.cc:3913
+msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
+msgstr ""
+
+#: cp/pt.cc:2042 cp/semantics.cc:6308
+msgid "candidates are:"
+msgstr ""
+
+#: cp/rtti.cc:592
+msgid "target is not pointer or reference to class"
+msgstr ""
+
+#: cp/rtti.cc:597
+msgid "target is not pointer or reference to complete type"
+msgstr ""
+
+#: cp/rtti.cc:603
+msgid "target is not pointer or reference"
+msgstr ""
+
+#: cp/rtti.cc:619
+msgid "source is not a pointer"
+msgstr ""
+
+#: cp/rtti.cc:624
+msgid "source is not a pointer to class"
+msgstr ""
+
+#: cp/rtti.cc:629
+msgid "source is a pointer to incomplete type"
+msgstr ""
+
+#: cp/rtti.cc:642
+msgid "source is not of class type"
+msgstr ""
+
+#: cp/rtti.cc:647
+msgid "source is of incomplete class type"
+msgstr ""
+
+#: cp/rtti.cc:658
+msgid "conversion casts away constness"
+msgstr ""
+
+#: cp/rtti.cc:818
+msgid "source type is not polymorphic"
+msgstr ""
+
+#: cp/typeck.cc:7439 c/c-typeck.cc:4685
+#, gcc-internal-format
+msgid "wrong type argument to unary minus"
+msgstr ""
+
+#: cp/typeck.cc:7440 c/c-typeck.cc:4671
+#, gcc-internal-format
+msgid "wrong type argument to unary plus"
+msgstr ""
+
+#: cp/typeck.cc:7467 c/c-typeck.cc:4730
+#, gcc-internal-format
+msgid "wrong type argument to bit-complement"
+msgstr ""
+
+#: cp/typeck.cc:7484 c/c-typeck.cc:4738
+#, gcc-internal-format
+msgid "wrong type argument to abs"
+msgstr ""
+
+#: cp/typeck.cc:7496 c/c-typeck.cc:4760
+#, gcc-internal-format
+msgid "wrong type argument to conjugation"
+msgstr ""
+
+#: cp/typeck.cc:7520
+msgid "in argument to unary !"
+msgstr ""
+
+#: cp/typeck.cc:7569
+msgid "no pre-increment operator for type"
+msgstr ""
+
+#: cp/typeck.cc:7571
+msgid "no post-increment operator for type"
+msgstr ""
+
+#: cp/typeck.cc:7573
+msgid "no pre-decrement operator for type"
+msgstr ""
+
+#: cp/typeck.cc:7575
+msgid "no post-decrement operator for type"
+msgstr ""
+
+#: fortran/arith.cc:1544
+msgid "elemental binary operation"
+msgstr ""
+
+#: fortran/check.cc:70
+msgid " [see %<-fno-allow-invalid-boz%>]"
+msgstr ""
+
+#: fortran/check.cc:3732
+#, c-format
+msgid "arguments 'a%d' and 'a%d' for intrinsic '%s'"
+msgstr ""
+
+#: fortran/check.cc:3941 fortran/check.cc:4023 fortran/check.cc:4088
+#, c-format
+msgid "arguments '%s' and '%s' for intrinsic %s"
+msgstr ""
+
+#: fortran/check.cc:4432 fortran/intrinsic.cc:4831
+#, c-format
+msgid "arguments '%s' and '%s' for intrinsic '%s'"
+msgstr ""
+
+#: fortran/dump-parse-tree.cc:3731
+#, c-format
+msgid ""
+"/* Prototypes for external procedures generated from %s\n"
+"   by GNU Fortran %s%s.\n"
+"\n"
+"   Use of this interface is discouraged, consider using the\n"
+"   BIND(C) feature of standard Fortran instead.  */\n"
+"\n"
+msgstr ""
+
+#: fortran/error.cc:1043
+msgid "Prohibited in Fortran 2023:"
+msgstr ""
+
+#: fortran/error.cc:1045
+msgid "Fortran 2023:"
+msgstr ""
+
+#: fortran/error.cc:1047
+msgid "Fortran 2018 deleted feature:"
+msgstr ""
+
+#: fortran/error.cc:1049
+msgid "Fortran 2018 obsolescent feature:"
+msgstr ""
+
+#: fortran/error.cc:1051
+msgid "Fortran 2018:"
+msgstr ""
+
+#: fortran/error.cc:1053
+msgid "Fortran 2008 obsolescent feature:"
+msgstr ""
+
+#: fortran/error.cc:1059
+msgid "GNU Extension:"
+msgstr ""
+
+#: fortran/error.cc:1061
+msgid "Legacy Extension:"
+msgstr ""
+
+#: fortran/error.cc:1063
+msgid "Obsolescent feature:"
+msgstr ""
+
+#: fortran/error.cc:1065
+msgid "Deleted feature:"
+msgstr ""
+
+#: fortran/expr.cc:3814
+msgid "array assignment"
+msgstr ""
+
+#: fortran/frontend-passes.cc:2387
+msgid "Index variable %qs redefined at %L in procedure %qs called from within DO loop at %L"
+msgstr ""
+
+#. Macros for unified error messages.
+#: fortran/frontend-passes.cc:4082
+#, c-format
+msgid "Incorrect extent in argument B in MATMUL intrinsic in dimension 1: is %ld, should be %ld"
+msgstr ""
+
+#: fortran/frontend-passes.cc:4085
+#, c-format
+msgid "Array bound mismatch for dimension 1 of array (%ld/%ld)"
+msgstr ""
+
+#: fortran/frontend-passes.cc:4088
+#, c-format
+msgid "Array bound mismatch for dimension 2 of array (%ld/%ld)"
+msgstr ""
+
+#: fortran/gfortranspec.cc:427 m2/gm2spec.cc:916
+#, c-format
+msgid "Driving:"
+msgstr ""
+
+#: fortran/interface.cc:3758 fortran/intrinsic.cc:4509
+msgid "actual argument to INTENT = OUT/INOUT"
+msgstr ""
+
+#: fortran/intrinsic.cc:4868
+msgid "available since Fortran 77"
+msgstr ""
+
+#: fortran/intrinsic.cc:4872
+msgid "obsolescent in Fortran 95"
+msgstr ""
+
+#: fortran/intrinsic.cc:4876
+msgid "deleted in Fortran 95"
+msgstr ""
+
+#: fortran/intrinsic.cc:4880
+msgid "new in Fortran 95"
+msgstr ""
+
+#: fortran/intrinsic.cc:4884
+msgid "new in Fortran 2003"
+msgstr ""
+
+#: fortran/intrinsic.cc:4888
+msgid "new in Fortran 2008"
+msgstr ""
+
+#: fortran/intrinsic.cc:4892
+msgid "new in Fortran 2018"
+msgstr ""
+
+#: fortran/intrinsic.cc:4896
+msgid "new in Fortran 2023"
+msgstr ""
+
+#: fortran/intrinsic.cc:4900
+msgid "a GNU Fortran extension"
+msgstr ""
+
+#: fortran/intrinsic.cc:4904
+msgid "for backward compatibility"
+msgstr ""
+
+#: fortran/io.cc:1873
+#, c-format
+msgid "%s tag"
+msgstr ""
+
+#: fortran/io.cc:3364
+msgid "internal unit in WRITE"
+msgstr ""
+
+#. For INQUIRE, all tags except FILE, ID and UNIT are variable definition
+#. contexts.  Thus, use an extended RESOLVE_TAG macro for that.
+#: fortran/io.cc:4725
+#, c-format
+msgid "%s tag with INQUIRE"
+msgstr ""
+
+#: fortran/matchexp.cc:28
+#, c-format
+msgid "Syntax error in expression at %C"
+msgstr ""
+
+#: fortran/module.cc:1259
+msgid "Unexpected EOF"
+msgstr ""
+
+#: fortran/module.cc:1384
+msgid "Name too long"
+msgstr ""
+
+#: fortran/module.cc:1438 fortran/module.cc:1496 fortran/module.cc:1551
+#: fortran/module.cc:1609
+msgid "Bad name"
+msgstr ""
+
+#: fortran/module.cc:1633
+msgid "Expected name"
+msgstr ""
+
+#: fortran/module.cc:1636
+msgid "Expected left parenthesis"
+msgstr ""
+
+#: fortran/module.cc:1639
+msgid "Expected right parenthesis"
+msgstr ""
+
+#: fortran/module.cc:1642
+msgid "Expected integer"
+msgstr ""
+
+#: fortran/module.cc:1645 fortran/module.cc:2869
+msgid "Expected string"
+msgstr ""
+
+#: fortran/module.cc:1670
+msgid "find_enum(): Enum not found"
+msgstr ""
+
+#: fortran/module.cc:2243
+msgid "Unsupported: multiple OpenACC 'routine' levels of parallelism"
+msgstr ""
+
+#: fortran/module.cc:2489
+msgid "Expected attribute bit name"
+msgstr ""
+
+#: fortran/module.cc:3498
+msgid "Expected integer string"
+msgstr ""
+
+#: fortran/module.cc:3502
+msgid "Error converting integer"
+msgstr ""
+
+#: fortran/module.cc:3524
+msgid "Expected real string"
+msgstr ""
+
+#: fortran/module.cc:3749
+msgid "Expected expression type"
+msgstr ""
+
+#: fortran/module.cc:3829
+msgid "Bad operator"
+msgstr ""
+
+#: fortran/module.cc:3946
+msgid "Bad type in constant expression"
+msgstr ""
+
+#: fortran/module.cc:7404
+msgid "Unexpected end of module"
+msgstr ""
+
+#: fortran/parse.cc:2139
+msgid "arithmetic IF"
+msgstr ""
+
+#: fortran/parse.cc:2148
+msgid "attribute declaration"
+msgstr ""
+
+#: fortran/parse.cc:2184
+msgid "data declaration"
+msgstr ""
+
+#: fortran/parse.cc:2202
+msgid "derived type declaration"
+msgstr ""
+
+#: fortran/parse.cc:2329
+msgid "block IF"
+msgstr ""
+
+#: fortran/parse.cc:2338
+msgid "implied END DO"
+msgstr ""
+
+#: fortran/parse.cc:2432 fortran/resolve.cc:12774
+msgid "assignment"
+msgstr "მინიჭება"
+
+#: fortran/parse.cc:2435 fortran/resolve.cc:12840 fortran/resolve.cc:12843
+msgid "pointer assignment"
+msgstr ""
+
+#: fortran/parse.cc:2459
+msgid "simple IF"
+msgstr ""
+
+#: fortran/resolve.cc:2442 fortran/resolve.cc:2637
+msgid "elemental procedure"
+msgstr ""
+
+#: fortran/resolve.cc:2540
+msgid "allocatable argument"
+msgstr ""
+
+#: fortran/resolve.cc:2545
+msgid "asynchronous argument"
+msgstr ""
+
+#: fortran/resolve.cc:2550
+msgid "optional argument"
+msgstr ""
+
+#: fortran/resolve.cc:2555
+msgid "pointer argument"
+msgstr ""
+
+#: fortran/resolve.cc:2560
+msgid "target argument"
+msgstr ""
+
+#: fortran/resolve.cc:2565
+msgid "value argument"
+msgstr ""
+
+#: fortran/resolve.cc:2570
+msgid "volatile argument"
+msgstr ""
+
+#: fortran/resolve.cc:2575
+msgid "assumed-shape argument"
+msgstr ""
+
+#: fortran/resolve.cc:2580
+msgid "assumed-rank argument"
+msgstr ""
+
+#: fortran/resolve.cc:2585
+msgid "coarray argument"
+msgstr ""
+
+#: fortran/resolve.cc:2590
+msgid "parametrized derived type argument"
+msgstr ""
+
+#: fortran/resolve.cc:2595
+msgid "polymorphic argument"
+msgstr ""
+
+#: fortran/resolve.cc:2600
+msgid "NO_ARG_CHECK attribute"
+msgstr ""
+
+#. As assumed-type is unlimited polymorphic (cf. above).
+#. See also TS 29113, Note 6.1.
+#: fortran/resolve.cc:2607
+msgid "assumed-type argument"
+msgstr ""
+
+#: fortran/resolve.cc:2618
+msgid "array result"
+msgstr ""
+
+#: fortran/resolve.cc:2623
+msgid "pointer or allocatable result"
+msgstr ""
+
+#: fortran/resolve.cc:2630
+msgid "result with non-constant character length"
+msgstr ""
+
+#: fortran/resolve.cc:2642
+msgid "bind(c) procedure"
+msgstr ""
+
+#: fortran/resolve.cc:4214
+#, c-format
+msgid "Invalid context for NULL() pointer at %%L"
+msgstr ""
+
+#: fortran/resolve.cc:4231
+#, c-format
+msgid "Operand of unary numeric operator %%<%s%%> at %%L is %s"
+msgstr ""
+
+#: fortran/resolve.cc:4249 fortran/resolve.cc:4432 fortran/resolve.cc:4587
+#, c-format
+msgid "Inconsistent ranks for operator at %%L and %%L"
+msgstr ""
+
+#: fortran/resolve.cc:4259
+#, c-format
+msgid "Unexpected derived-type entities in binary intrinsic numeric operator %%<%s%%> at %%L"
+msgstr ""
+
+#: fortran/resolve.cc:4264
+#, c-format
+msgid "Operands of binary numeric operator %%<%s%%> at %%L are %s/%s"
+msgstr ""
+
+#: fortran/resolve.cc:4279
+#, c-format
+msgid "Operands of string concatenation operator at %%L are %s/%s"
+msgstr ""
+
+#: fortran/resolve.cc:4322
+#, c-format
+msgid "Operands of logical operator %%<%s%%> at %%L are %s/%s"
+msgstr ""
+
+#: fortran/resolve.cc:4345
+#, c-format
+msgid "Operand of .not. operator at %%L is %s"
+msgstr ""
+
+#: fortran/resolve.cc:4359
+msgid "COMPLEX quantities cannot be compared at %L"
+msgstr ""
+
+#: fortran/resolve.cc:4468
+#, c-format
+msgid "Logicals at %%L must be compared with %s instead of %s"
+msgstr ""
+
+#: fortran/resolve.cc:4474
+#, c-format
+msgid "Operands of comparison operator %%<%s%%> at %%L are %s/%s"
+msgstr ""
+
+#: fortran/resolve.cc:4488
+#, c-format
+msgid "Unknown operator %%<%s%%> at %%L; did you mean %%<%s%%>?"
+msgstr ""
+
+#: fortran/resolve.cc:4491
+#, c-format
+msgid "Unknown operator %%<%s%%> at %%L"
+msgstr ""
+
+#: fortran/resolve.cc:4496
+#, c-format
+msgid "Operand of user operator %%<%s%%> at %%L is %s"
+msgstr ""
+
+#: fortran/resolve.cc:4501
+#, c-format
+msgid "Operands of user operator %%<%s%%> at %%L are %s/%s"
+msgstr ""
+
+#: fortran/resolve.cc:7668
+msgid "Loop variable"
+msgstr ""
+
+#: fortran/resolve.cc:7672
+msgid "iterator variable"
+msgstr ""
+
+#: fortran/resolve.cc:7676
+msgid "Start expression in DO loop"
+msgstr ""
+
+#: fortran/resolve.cc:7680
+msgid "End expression in DO loop"
+msgstr ""
+
+#: fortran/resolve.cc:7684
+msgid "Step expression in DO loop"
+msgstr ""
+
+#: fortran/resolve.cc:7971 fortran/resolve.cc:7974
+msgid "DEALLOCATE object"
+msgstr ""
+
+#: fortran/resolve.cc:8362 fortran/resolve.cc:8365
+msgid "ALLOCATE object"
+msgstr ""
+
+#: fortran/resolve.cc:8602 fortran/resolve.cc:10679 fortran/resolve.cc:10800
+msgid "STAT variable"
+msgstr ""
+
+#: fortran/resolve.cc:8653 fortran/resolve.cc:10691 fortran/resolve.cc:10812
+msgid "ERRMSG variable"
+msgstr ""
+
+#: fortran/resolve.cc:10481
+msgid "item in READ"
+msgstr ""
+
+#: fortran/resolve.cc:10703
+msgid "ACQUIRED_LOCK variable"
+msgstr ""
+
+#: fortran/trans-array.cc:1936
+#, c-format
+msgid "Different CHARACTER lengths (%ld/%ld) in array constructor"
+msgstr ""
+
+#: fortran/trans-array.cc:6413
+msgid "Integer overflow when calculating the amount of memory to allocate"
+msgstr ""
+
+#: fortran/trans-array.cc:10525
+#, c-format
+msgid "The value of the PDT LEN parameter '%s' does not agree with that in the dummy declaration"
+msgstr ""
+
+#: fortran/trans-decl.cc:6371
+#, c-format
+msgid "Actual string length does not match the declared one for dummy argument '%s' (%ld/%ld)"
+msgstr ""
+
+#: fortran/trans-decl.cc:6379
+#, c-format
+msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)"
+msgstr ""
+
+#: fortran/trans-expr.cc:10759
+#, c-format
+msgid "Target of rank remapping is too small (%ld < %ld)"
+msgstr ""
+
+#: fortran/trans-expr.cc:12385
+msgid "Assignment of scalar to unallocated array"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:983
+#, c-format
+msgid "Unequal character lengths (%ld/%ld) in %s"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:6521
+#, c-format
+msgid "POS argument (%ld) out of range 0:%ld in intrinsic BTEST"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:6616
+#, c-format
+msgid "POS argument (%ld) out of range 0:%ld in intrinsic %s"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:6664
+#, c-format
+msgid "POS argument (%ld) out of range 0:%ld in intrinsic IBITS"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:6674
+#, c-format
+msgid "LEN argument (%ld) out of range 0:%ld in intrinsic IBITS"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:6681
+#, c-format
+msgid "POS(%ld)+LEN(%ld)>BIT_SIZE(%ld) in intrinsic IBITS"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:6763
+#, c-format
+msgid "SHIFT argument (%ld) out of range 0:%ld in intrinsic %s"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:6831
+#, c-format
+msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFT"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:6911
+#, c-format
+msgid "SIZE argument (%ld) out of range 1:%ld in intrinsic ISHFTC"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:6919 fortran/trans-intrinsic.cc:6964
+#, c-format
+msgid "SHIFT argument (%ld) out of range -%ld:%ld in intrinsic ISHFTC"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:9359
+#, c-format
+msgid "Argument NCOPIES of REPEAT intrinsic is negative (its value is %ld)"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:9391
+msgid "Argument NCOPIES of REPEAT intrinsic is too large"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:12556
+#, c-format
+msgid "FROMPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:12568
+#, c-format
+msgid "LEN argument (%ld) out of range 0:%d in intrinsic MVBITS"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:12580
+#, c-format
+msgid "TOPOS argument (%ld) out of range 0:%d in intrinsic MVBITS"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:12592
+#, c-format
+msgid "FROMPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:12600
+#, c-format
+msgid "TOPOS(%ld)+LEN(%ld)>BIT_SIZE(%d) in intrinsic MVBITS"
+msgstr ""
+
+#: fortran/trans-io.cc:587
+msgid "Unit number in I/O statement too small"
+msgstr ""
+
+#: fortran/trans-io.cc:596
+msgid "Unit number in I/O statement too large"
+msgstr ""
+
+#: fortran/trans-stmt.cc:157
+msgid "Assigned label is not a target label"
+msgstr ""
+
+#: fortran/trans-stmt.cc:1291
+#, c-format
+msgid "Invalid image number %d in SYNC IMAGES"
+msgstr ""
+
+#: fortran/trans-stmt.cc:2527
+msgid "Loop iterates infinitely"
+msgstr ""
+
+#: fortran/trans-stmt.cc:2547 fortran/trans-stmt.cc:2803
+msgid "Loop variable has been modified"
+msgstr ""
+
+#: fortran/trans-stmt.cc:2656
+msgid "DO step value is zero"
+msgstr ""
+
+#: fortran/trans.cc:47
+msgid "Array reference out of bounds"
+msgstr ""
+
+#: fortran/trans.cc:770 fortran/trans.cc:854
+#, c-format
+msgid "Error allocating %lu bytes"
+msgstr ""
+
+#: fortran/trans.cc:1067
+#, c-format
+msgid "Attempting to allocate already allocated variable '%s'"
+msgstr ""
+
+#: fortran/trans.cc:1073
+msgid "Attempting to allocate already allocated variable"
+msgstr ""
+
+#: fortran/trans.cc:1866 fortran/trans.cc:2044
+#, c-format
+msgid "Attempt to DEALLOCATE unallocated '%s'"
+msgstr ""
+
+#: fortran/trans.cc:2212
+#, c-format
+msgid "Error reallocating to %lu bytes"
+msgstr ""
+
+#: go/go-backend.cc:166 rust/rust-object-export.cc:147
+msgid "lseek failed while reading export data"
+msgstr ""
+
+#: go/go-backend.cc:173 rust/rust-object-export.cc:154
+msgid "memory allocation failed while reading export data"
+msgstr ""
+
+#: go/go-backend.cc:181 rust/rust-object-export.cc:162
+msgid "read failed while reading export data"
+msgstr ""
+
+#: go/go-backend.cc:187 rust/rust-object-export.cc:168
+msgid "short read while reading export data"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:183 c-family/c-warn.cc:684 cp/cvt.cc:1419
+#: d/toir.cc:225 rust/backend/rust-tree.cc:512
+#, gcc-internal-format
+msgid "value computed is not used"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:1986
+msgid "unexpected reference to package"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:3840 go/gofrontend/expressions.cc:3856
+msgid "constant refers to itself"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:5062 go/gofrontend/expressions.cc:5483
+#: go/gofrontend/expressions.cc:5642
+msgid "expected pointer"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:5600
+msgid "expected numeric type"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:5605
+msgid "expected boolean type"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:5610 c/c-parser.cc:18370 c/c-parser.cc:18377
+#: cp/parser.cc:40919 cp/parser.cc:40926
+#, gcc-internal-format
+msgid "expected integer"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7603
+msgid "invalid comparison of nil with nil"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7609 go/gofrontend/expressions.cc:7627
+msgid "incompatible types in binary expression"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7647 go/gofrontend/statements.cc:1327
+msgid "integer division by zero"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7657 go/gofrontend/statements.cc:1336
+msgid "shift of non-integer operand"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7660 go/gofrontend/expressions.cc:7663
+#: go/gofrontend/expressions.cc:7671 go/gofrontend/statements.cc:1344
+#: go/gofrontend/statements.cc:1354
+msgid "shift count not integer"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:7676 go/gofrontend/statements.cc:1358
+msgid "negative shift count"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:8587
+msgid "object is not a method"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:8604
+msgid "method type does not match object type"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:9382
+msgid "argument of Offsetof implies indirection of an embedded field"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:9922
+msgid "len larger than cap"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11154 go/gofrontend/expressions.cc:11202
+#: go/gofrontend/expressions.cc:11372 go/gofrontend/expressions.cc:11427
+#: go/gofrontend/expressions.cc:11498 go/gofrontend/expressions.cc:11657
+#: go/gofrontend/expressions.cc:11703 go/gofrontend/expressions.cc:11738
+#: go/gofrontend/expressions.cc:11836 go/gofrontend/expressions.cc:13979
+#: go/gofrontend/expressions.cc:14138 go/gofrontend/expressions.cc:14155
+#: go/gofrontend/expressions.cc:14171
+msgid "not enough arguments"
+msgstr "არასაკმარისი არგუმენტები"
+
+#: go/gofrontend/expressions.cc:11159 go/gofrontend/expressions.cc:11207
+#: go/gofrontend/expressions.cc:11377 go/gofrontend/expressions.cc:11500
+#: go/gofrontend/expressions.cc:11627 go/gofrontend/expressions.cc:11662
+#: go/gofrontend/expressions.cc:11743 go/gofrontend/expressions.cc:11838
+#: go/gofrontend/expressions.cc:14014 go/gofrontend/expressions.cc:14143
+#: go/gofrontend/expressions.cc:14157 go/gofrontend/expressions.cc:14178
+#: cp/pt.cc:9381
+#, gcc-internal-format
+msgid "too many arguments"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11449
+msgid "invalid type for make function"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11459
+msgid "length required when allocating a slice"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11488
+msgid "too many arguments to make"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11502
+msgid "argument 1 must be a map"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11543
+msgid "argument must be array or slice or channel"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11553
+msgid "argument must be string or array or slice or map or channel"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11594
+msgid "unsupported argument type to builtin function"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11606
+msgid "argument must be channel"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11608
+msgid "cannot close receive-only channel"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11619
+msgid "argument to builtin has void type"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11645
+msgid "invalid use of method value as argument of Offsetof"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11648
+msgid "argument must be a field reference"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11678
+msgid "left argument must be a slice"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11686
+msgid "element types must be the same"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11691
+msgid "first argument must be []byte"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11694
+msgid "second argument must be slice or string"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11806
+msgid "argument must have complex type"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11822
+msgid "complex arguments must have identical types"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:11824
+msgid "complex arguments must have floating-point type"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:13781 go/gofrontend/expressions.cc:14520
+msgid "expected function"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:14097
+msgid "function result count mismatch"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:14123
+msgid "incompatible type for receiver"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:14529 go/gofrontend/expressions.cc:14543
+msgid "number of results does not match number of values"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:14671
+msgid "invalid 3-index slice of object that is not a slice"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:14674
+msgid "attempt to slice object that is not array, slice, or string"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:14677
+msgid "attempt to index object that is not array, slice, string, or map"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:14730
+msgid "attempt to index type expression"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:14757
+msgid "invalid 3-index slice of string"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:14770
+msgid "invalid slice of map"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:14779 go/gofrontend/expressions.cc:15970
+msgid "incompatible type for map index"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:16481
+msgid "expected interface or pointer to interface"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:18212
+msgid "may only omit types within composite literals of slice, array, or map type"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:18306 go/gofrontend/expressions.cc:18618
+msgid "map composite literal must have keys"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:18651
+msgid "expected struct, slice, array, or map type for composite literal"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:19266 go/gofrontend/statements.cc:2121
+msgid "type assertion only valid for interface types"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:19278
+msgid "impossible type assertion: type does not implement interface"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:19480 go/gofrontend/expressions.cc:19500
+#: go/gofrontend/statements.cc:1936
+msgid "expected channel"
+msgstr ""
+
+#: go/gofrontend/expressions.cc:19505 go/gofrontend/statements.cc:1941
+#: go/gofrontend/statements.cc:6847
+msgid "invalid receive on send-only channel"
+msgstr ""
+
+#: go/gofrontend/parse.cc:3277
+msgid "parentheses required around this composite literal to avoid parsing ambiguity"
+msgstr ""
+
+#: go/gofrontend/parse.cc:4851
+msgid "cannot fallthrough final case in switch"
+msgstr ""
+
+#: go/gofrontend/statements.cc:1288
+msgid "cannot use %<_%> as value"
+msgstr ""
+
+#: go/gofrontend/statements.cc:1300 go/gofrontend/statements.cc:2528
+msgid "invalid left hand side of assignment"
+msgstr ""
+
+#: go/gofrontend/statements.cc:1309
+msgid "incompatible type in binary expression"
+msgstr ""
+
+#: go/gofrontend/statements.cc:1555
+msgid "use of untyped nil"
+msgstr ""
+
+#: go/gofrontend/statements.cc:1689
+msgid "expected map index on right hand side"
+msgstr ""
+
+#: go/gofrontend/statements.cc:2534
+msgid "increment or decrement of non-numeric type"
+msgstr ""
+
+#: go/gofrontend/statements.cc:3449 go/gofrontend/statements.cc:3464
+msgid "not enough arguments to return"
+msgstr ""
+
+#: go/gofrontend/statements.cc:3455
+msgid "return with value in function with no return type"
+msgstr ""
+
+#: go/gofrontend/statements.cc:3470
+msgid "too many values in return statement"
+msgstr ""
+
+#: go/gofrontend/statements.cc:4062
+msgid "expected boolean expression"
+msgstr ""
+
+#: go/gofrontend/statements.cc:5299
+msgid "cannot type switch on non-interface value"
+msgstr ""
+
+#: go/gofrontend/statements.cc:5453
+msgid "incompatible types in send"
+msgstr ""
+
+#: go/gofrontend/statements.cc:5458
+msgid "invalid send on receive-only channel"
+msgstr ""
+
+#: go/gofrontend/statements.cc:6852
+msgid "too many variables for range clause with channel"
+msgstr ""
+
+#: go/gofrontend/statements.cc:6860
+msgid "range clause must have array, slice, string, map, or channel type"
+msgstr ""
+
+#: go/gofrontend/types.cc:552
+msgid "invalid comparison of non-ordered type"
+msgstr ""
+
+#: go/gofrontend/types.cc:568
+msgid "slice can only be compared to nil"
+msgstr ""
+
+#: go/gofrontend/types.cc:570
+msgid "map can only be compared to nil"
+msgstr ""
+
+#: go/gofrontend/types.cc:572
+msgid "func can only be compared to nil"
+msgstr ""
+
+#: go/gofrontend/types.cc:578
+#, c-format
+msgid "invalid operation (%s)"
+msgstr ""
+
+#: go/gofrontend/types.cc:601
+msgid "invalid comparison of non-comparable type"
+msgstr ""
+
+#: go/gofrontend/types.cc:614
+msgid "invalid comparison of generated struct"
+msgstr ""
+
+#: go/gofrontend/types.cc:625
+msgid "invalid comparison of non-comparable struct"
+msgstr ""
+
+#: go/gofrontend/types.cc:635
+msgid "invalid comparison of generated array"
+msgstr ""
+
+#: go/gofrontend/types.cc:642
+msgid "invalid comparison of non-comparable array"
+msgstr ""
+
+#: go/gofrontend/types.cc:670
+msgid "multiple-value function call in single-value context"
+msgstr ""
+
+#: go/gofrontend/types.cc:754
+msgid "need explicit conversion"
+msgstr ""
+
+#: go/gofrontend/types.cc:761
+#, c-format
+msgid "cannot use type %s as type %s"
+msgstr ""
+
+#: go/gofrontend/types.cc:796
+msgid "conversion from normal type to notinheap type"
+msgstr ""
+
+#: go/gofrontend/types.cc:4947
+msgid "different receiver types"
+msgstr ""
+
+#: go/gofrontend/types.cc:4970 go/gofrontend/types.cc:4983
+#: go/gofrontend/types.cc:4997
+msgid "different number of parameters"
+msgstr ""
+
+#: go/gofrontend/types.cc:4990
+msgid "different parameter types"
+msgstr ""
+
+#: go/gofrontend/types.cc:5005
+msgid "different varargs"
+msgstr ""
+
+#: go/gofrontend/types.cc:5018 go/gofrontend/types.cc:5031
+#: go/gofrontend/types.cc:5045
+msgid "different number of results"
+msgstr ""
+
+#: go/gofrontend/types.cc:5038
+msgid "different result types"
+msgstr ""
+
+#: go/gofrontend/types.cc:9611
+#, c-format
+msgid "need explicit conversion; missing method %s%s%s"
+msgstr ""
+
+#: go/gofrontend/types.cc:9629 go/gofrontend/types.cc:9776
+#, c-format
+msgid "incompatible type for method %s%s%s"
+msgstr ""
+
+#: go/gofrontend/types.cc:9633 go/gofrontend/types.cc:9780
+#, c-format
+msgid "incompatible type for method %s%s%s (%s)"
+msgstr ""
+
+#: go/gofrontend/types.cc:9716 go/gofrontend/types.cc:9729
+msgid "pointer to interface type has no methods"
+msgstr ""
+
+#: go/gofrontend/types.cc:9718 go/gofrontend/types.cc:9731
+msgid "type has no methods"
+msgstr ""
+
+#: go/gofrontend/types.cc:9752
+#, c-format
+msgid "ambiguous method %s%s%s"
+msgstr ""
+
+#: go/gofrontend/types.cc:9755
+#, c-format
+msgid "missing method %s%s%s"
+msgstr ""
+
+#: go/gofrontend/types.cc:9797
+#, c-format
+msgid "method %s%s%s requires a pointer receiver"
+msgstr ""
+
+#: go/gofrontend/types.cc:9815
+#, c-format
+msgid "method %s%s%s is marked go:nointerface"
+msgstr ""
+
+#: rust/resolve/rust-ast-resolve-expr.cc:140
+#, c-format
+msgid "You have broken GCC Rust. This is a feature.\n"
+msgstr ""
+
+#: lto-streamer.h:1033
+#, gcc-internal-format, gfc-internal-format
+msgid "bytecode stream: expected tag %s instead of %s"
+msgstr ""
+
+#: lto-streamer.h:1043
+#, gcc-internal-format, gfc-internal-format
+msgid "bytecode stream: tag %s is not in the expected range [%s, %s]"
+msgstr ""
+
+#. Mach-O supports 'weak imports', and 'weak definitions' in coalesced
+#. sections.  machopic_select_section ensures that weak variables go in
+#. coalesced sections.  Weak aliases (or any other kind of aliases) are
+#. not supported.  Weak symbols that aren't visible outside the .s file
+#. are not supported.
+#: config/darwin.h:711
+#, gcc-internal-format
+msgid "alias definitions not supported in Mach-O; ignored"
+msgstr ""
+
+#. No profiling.
+#: config/vx-common.h:123
+#, gcc-internal-format
+msgid "profiler support for VxWorks"
+msgstr ""
+
+#: config/arm/freebsd.h:121
+#, gcc-internal-format
+msgid "target OS does not support unaligned accesses"
+msgstr ""
+
+#: config/c6x/c6x.h:346 config/nvptx/nvptx.h:181
+#, gcc-internal-format
+msgid "profiling is not yet implemented for this architecture"
+msgstr ""
+
+#. Definitions for GCC.  Part of the machine description for CRIS.
+#. Copyright (C) 1998-2024 Free Software Foundation, Inc.
+#. Contributed by Axis Communications.  Written by Hans-Peter Nilsson.
+#.
+#. This file is part of GCC.
+#.
+#. GCC is free software; you can redistribute it and/or modify
+#. it under the terms of the GNU General Public License as published by
+#. the Free Software Foundation; either version 3, or (at your option)
+#. any later version.
+#.
+#. GCC is distributed in the hope that it will be useful,
+#. but WITHOUT ANY WARRANTY; without even the implied warranty of
+#. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#. GNU General Public License for more details.
+#.
+#. You should have received a copy of the GNU General Public License
+#. along with GCC; see the file COPYING3.  If not see
+#. <http://www.gnu.org/licenses/>.
+#. After the first "Node:" comment comes all preprocessor directives and
+#. attached declarations described in the info files, the "Using and
+#. Porting GCC" manual (uapgcc), in the same order as found in the "Target
+#. macros" section in the gcc-2.9x CVS edition of 2000-03-17.  FIXME: Not
+#. really, but needs an update anyway.
+#.
+#. There is no generic copy-of-uapgcc comment, you'll have to see uapgcc
+#. for that.  If applicable, there is a CRIS-specific comment.  The order
+#. of macro definitions follow the order in the manual.  Every section in
+#. the manual (node in the info pages) has an introductory `Node:
+#. <subchapter>' comment.  If no macros are defined for a section, only
+#. the section-comment is present.
+#. Note that other header files (e.g. config/elfos.h, config/linux.h,
+#. and config/cris/linux.h) are responsible for lots of settings not
+#. repeated below.  This file contains general CRIS definitions
+#. and definitions for the cris-*-elf subtarget.
+#. We don't want to use gcc_assert for everything, as that can be
+#. compiled out.
+#: config/cris/cris.h:42
+#, gcc-internal-format, gfc-internal-format
+msgid "CRIS-port assertion failed: %s"
+msgstr ""
+
+#. Node: Caller Saves
+#. (no definitions)
+#. Node: Function entry
+#. See cris.cc for TARGET_ASM_FUNCTION_PROLOGUE and
+#. TARGET_ASM_FUNCTION_EPILOGUE.
+#. Node: Profiling
+#: config/cris/cris.h:661
+#, gcc-internal-format
+msgid "no %<FUNCTION_PROFILER%> for CRIS"
+msgstr ""
+
+#. If the environment variable DJDIR is not defined, then DJGPP is not        installed correctly and GCC will quickly become confused with the        default prefix settings. Report the problem now so the user doesn't        receive deceptive "file not found" error messages later.
+#. DJDIR is automatically defined by the DJGPP environment config            file pointed to by the environment variable DJGPP. Examine DJGPP            to try and figure out what's wrong.
+#: config/i386/xm-djgpp.h:85
+#, gcc-internal-format
+msgid "environment variable DJGPP not defined"
+msgstr ""
+
+#: config/i386/xm-djgpp.h:87
+#, gcc-internal-format
+msgid "environment variable DJGPP points to missing file %qs"
+msgstr ""
+
+#: config/i386/xm-djgpp.h:90
+#, gcc-internal-format
+msgid "environment variable DJGPP points to corrupt file %qs"
+msgstr ""
+
+#: config/pa/som.h:323
+#, gcc-internal-format
+msgid "weak aliases are not supported"
+msgstr ""
+
+#. SPDX-License-Identifier: GPL-3.0-or-later
+#. Definitions of target machine for GNU compiler,
+#. for IBM RS/6000 POWER running AIX V7.1.
+#. Copyright (C) 2002-2024 Free Software Foundation, Inc.
+#. Contributed by David Edelsohn (edelsohn@gnu.org).
+#.
+#. This file is part of GCC.
+#.
+#. GCC is free software; you can redistribute it and/or modify it
+#. under the terms of the GNU General Public License as published
+#. by the Free Software Foundation; either version 3, or (at your
+#. option) any later version.
+#.
+#. GCC is distributed in the hope that it will be useful, but WITHOUT
+#. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+#. or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+#. License for more details.
+#.
+#. You should have received a copy of the GNU General Public License
+#. along with GCC; see the file COPYING3.  If not see
+#. <http://www.gnu.org/licenses/>.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control in TARGET_OPTION_OVERRIDE.
+#. SPDX-License-Identifier: GPL-3.0-or-later
+#. Definitions of target machine for GNU compiler,
+#. for IBM RS/6000 POWER running AIX V7.2.
+#. Copyright (C) 2002-2024 Free Software Foundation, Inc.
+#. Contributed by David Edelsohn (edelsohn@gnu.org).
+#.
+#. This file is part of GCC.
+#.
+#. GCC is free software; you can redistribute it and/or modify it
+#. under the terms of the GNU General Public License as published
+#. by the Free Software Foundation; either version 3, or (at your
+#. option) any later version.
+#.
+#. GCC is distributed in the hope that it will be useful, but WITHOUT
+#. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+#. or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+#. License for more details.
+#.
+#. You should have received a copy of the GNU General Public License
+#. along with GCC; see the file COPYING3.  If not see
+#. <http://www.gnu.org/licenses/>.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control in TARGET_OPTION_OVERRIDE.
+#. SPDX-License-Identifier: GPL-3.0-or-later
+#. Definitions of target machine for GNU compiler,
+#. for IBM RS/6000 POWER running AIX V7.3.
+#. Copyright (C) 2002-2024 Free Software Foundation, Inc.
+#. Contributed by David Edelsohn (edelsohn@gnu.org).
+#.
+#. This file is part of GCC.
+#.
+#. GCC is free software; you can redistribute it and/or modify it
+#. under the terms of the GNU General Public License as published
+#. by the Free Software Foundation; either version 3, or (at your
+#. option) any later version.
+#.
+#. GCC is distributed in the hope that it will be useful, but WITHOUT
+#. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+#. or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+#. License for more details.
+#.
+#. You should have received a copy of the GNU General Public License
+#. along with GCC; see the file COPYING3.  If not see
+#. <http://www.gnu.org/licenses/>.
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control in TARGET_OPTION_OVERRIDE.
+#: config/rs6000/aix71.h:31 config/rs6000/aix72.h:31 config/rs6000/aix73.h:31
+#, gcc-internal-format
+msgid "%<-maix64%> requires PowerPC64 architecture remain enabled"
+msgstr ""
+
+#: config/rs6000/aix71.h:37 config/rs6000/aix72.h:37
+#, gcc-internal-format
+msgid "soft-float and long-double-128 are incompatible"
+msgstr ""
+
+#: config/rs6000/aix71.h:41 config/rs6000/aix72.h:41 config/rs6000/aix73.h:41
+#, gcc-internal-format
+msgid "%<-maix64%> required: 64-bit computation with 32-bit addressing not yet supported"
+msgstr ""
+
+#: config/rs6000/aix71.h:48 config/rs6000/aix72.h:48 config/rs6000/aix73.h:48
+#: config/rs6000/rtems.h:128 config/rs6000/rs6000.cc:3479
+#, gcc-internal-format
+msgid "%<-mcmodel%> incompatible with other toc options"
+msgstr ""
+
+#: config/rs6000/aix73.h:37
+#, gcc-internal-format
+msgid "%<soft-float%> and long-double-128 are incompatible"
+msgstr ""
+
+#: config/rs6000/rtems.h:121 config/rs6000/rs6000.cc:3471
+#, gcc-internal-format
+msgid "%<-m64%> requires a PowerPC64 cpu"
+msgstr ""
+
+#. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
+#. get control in TARGET_OPTION_OVERRIDE.
+#: config/rs6000/sysv4.h:116
+#, gcc-internal-format
+msgid "bad value for %<%s-%s%>"
+msgstr ""
+
+#: config/rs6000/sysv4.h:132
+#, gcc-internal-format
+msgid "bad value for %<%s=%s%>"
+msgstr ""
+
+#: config/rs6000/sysv4.h:149
+#, gcc-internal-format
+msgid "%qs and %<%s=%s%> are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:158
+#, gcc-internal-format
+msgid "%<-f%s%> and %<%s=%s%> are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:167
+#, gcc-internal-format
+msgid "%<%s=%s%> and %<%s-%s%> are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:176 config/rs6000/sysv4.h:210
+#, gcc-internal-format
+msgid "%qs and %qs are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:183 config/rs6000/sysv4.h:190
+#, gcc-internal-format
+msgid "%qs and %<%s-%s%> are incompatible"
+msgstr ""
+
+#: config/rs6000/sysv4.h:196 config/rs6000/sysv4.h:202
+#, gcc-internal-format
+msgid "%qs not supported by your assembler"
+msgstr ""
+
+#: config/rs6000/sysv4.h:244
+#, gcc-internal-format
+msgid "%<-m%s%> not supported in this configuration"
+msgstr ""
+
+#. The kernel loader cannot handle the relaxation			 relocations, so it cannot load kernel modules			 (which are ET_REL) or RTP executables (which are		 linked with --emit-relocs).  No relaxation relocations		 appear in shared libraries, so relaxation is OK		 for RTP PIC.
+#: config/sh/vxworks.h:43
+#, gcc-internal-format
+msgid "%<-mrelax%> is only supported for RTP PIC"
+msgstr ""
+
+#. A general purpose syntax error.
+#: fortran/gfortran.h:3416 fortran/io.cc:3727 fortran/io.cc:4413
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in %s statement at %C"
+msgstr ""
+
+#: jit/docs/examples/tut05-bf.c:242
+#, gcc-internal-format
+msgid "too many open parens"
+msgstr ""
+
+#: jit/docs/examples/tut05-bf.c:275
+#, gcc-internal-format
+msgid "mismatching parens"
+msgstr ""
+
+#: jit/docs/examples/tut05-bf.c:310
+#, gcc-internal-format
+msgid "unable to open file"
+msgstr ""
+
+#: m2/gm2-gcc/m2assert.h:36 m2/gm2-gcc/m2assert.h:59
+#, gcc-internal-format, gfc-internal-format
+msgid "%s:%d:condition %s failed"
+msgstr ""
+
+#: m2/gm2-gcc/m2assert.h:48
+#, gcc-internal-format, gfc-internal-format
+msgid "%s:%d:the value %s is not a BOOLEAN as the value is %d"
+msgstr ""
+
+#: fortran/lang.opt:432
+#, gcc-internal-format
+msgid "Unrecognized option to endianness value: %qs"
+msgstr ""
+
+#: fortran/lang.opt:654
+#, gcc-internal-format
+msgid "Unrecognized option to floating-point init value: %qs"
+msgstr ""
+
+#: fortran/lang.opt:792
+#, gcc-internal-format
+msgid "Unrecognized option: %qs"
+msgstr ""
+
+#: rust/lang.opt:90
+#, gcc-internal-format
+msgid "unknown crate type: '%qs'"
+msgstr ""
+
+#: rust/lang.opt:118
+#, gcc-internal-format
+msgid "unknown rust mangling option %qs"
+msgstr ""
+
+#: rust/lang.opt:135
+#, gcc-internal-format
+msgid "unknown rust edition %qs"
+msgstr ""
+
+#: rust/lang.opt:163
+#, gcc-internal-format
+msgid "unknown rust compile-until %qs"
+msgstr ""
+
+#: c-family/c.opt:43 c-family/c.opt:46 c-family/c.opt:181
+#, gcc-internal-format
+msgid "assertion missing after %qs"
+msgstr ""
+
+#: c-family/c.opt:55 c-family/c.opt:58 c-family/c.opt:163 c-family/c.opt:166
+#: c-family/c.opt:193 c-family/c.opt:276
+#, gcc-internal-format
+msgid "macro name missing after %qs"
+msgstr ""
+
+#: c-family/c.opt:70 c-family/c.opt:73 c-family/c.opt:76 c-family/c.opt:79
+#: c-family/c.opt:175 c-family/c.opt:178 c-family/c.opt:220 c-family/c.opt:224
+#: c-family/c.opt:236 c-family/c.opt:2373 c-family/c.opt:2381
+#: config/darwin.opt:30 common.opt:329 common.opt:332 common.opt:3680
+#, gcc-internal-format
+msgid "missing filename after %qs"
+msgstr ""
+
+#: c-family/c.opt:85 c-family/c.opt:88 c-family/c.opt:91 c-family/c.opt:94
+#: c-family/c.opt:200 c-family/c.opt:212 c-family/c.opt:268 c-family/c.opt:2369
+#: c-family/c.opt:2389 c-family/c.opt:2393 c-family/c.opt:2397
+#, gcc-internal-format
+msgid "missing path after %qs"
+msgstr ""
+
+#: c-family/c.opt:252 c-family/c.opt:256
+#, gcc-internal-format
+msgid "missing makefile target after %qs"
+msgstr ""
+
+#: c-family/c.opt:260
+#, gcc-internal-format
+msgid "missing format after %qs"
+msgstr ""
+
+#: c-family/c.opt:264
+#, gcc-internal-format
+msgid "missing output path after %qs"
+msgstr ""
+
+#: c-family/c.opt:311
+#, gcc-internal-format
+msgid "argument %qs to %<-Waligned-new%> not recognized"
+msgstr ""
+
+#: c-family/c.opt:406
+#, gcc-internal-format
+msgid "argument %qs to %<-Wbidi-chars%> not recognized"
+msgstr ""
+
+#: c-family/c.opt:1072
+#, gcc-internal-format
+msgid "argument %qs to %<-Wnormalized%> not recognized"
+msgstr ""
+
+#: c-family/c.opt:1736
+#, gcc-internal-format
+msgid "no class name specified with %qs"
+msgstr ""
+
+#: c-family/c.opt:1764
+#, gcc-internal-format
+msgid "argument %qs must be either %<on%> or %<off%>"
+msgstr ""
+
+#: c-family/c.opt:1908
+#, gcc-internal-format
+msgid "%<-fhandle-exceptions%> has been renamed %<-fexceptions%> (and is now on by default)"
+msgstr ""
+
+#: c-family/c.opt:1983
+#, gcc-internal-format
+msgid "missing mapper"
+msgstr ""
+
+#: c-family/c.opt:2011
+#, gcc-internal-format
+msgid "missing header name"
+msgstr ""
+
+#: c-family/c.opt:2019
+#, gcc-internal-format
+msgid "missing module name"
+msgstr ""
+
+#: c-family/c.opt:2066
+#, gcc-internal-format
+msgid "unrecognized ivar visibility value %qs"
+msgstr ""
+
+#: c-family/c.opt:2233
+#, gcc-internal-format
+msgid "unrecognized scalar storage order value %qs"
+msgstr ""
+
+#: d/lang.opt:201
+#, gcc-internal-format
+msgid "unknown array bounds setting %qs"
+msgstr ""
+
+#: d/lang.opt:243
+#, gcc-internal-format
+msgid "unknown checkaction setting %qs"
+msgstr ""
+
+#: d/lang.opt:303
+#, gcc-internal-format
+msgid "unknown C++ standard %qs"
+msgstr ""
+
+#: config/vms/vms.opt:42
+#, gcc-internal-format
+msgid "unknown pointer size model %qs"
+msgstr ""
+
+#: config/aarch64/aarch64.opt:379
+#, gcc-internal-format
+msgid "unknown LDP/STP policy %qs"
+msgstr ""
+
+#: config/i386/i386.opt:340
+#, gcc-internal-format
+msgid "%<-mcpu=%> is deprecated; use %<-mtune=%> or %<-march=%> instead"
+msgstr ""
+
+#: config/i386/i386.opt:400
+#, gcc-internal-format
+msgid "%<-mintel-syntax%> and %<-mno-intel-syntax%> are deprecated; use %<-masm=intel%> and %<-masm=att%> instead"
+msgstr ""
+
+#: config/i386/i386.opt:729
+#, gcc-internal-format
+msgid "%<-msse5%> was removed"
+msgstr ""
+
+#: config/i386/i386.opt:745
+#, gcc-internal-format
+msgid "AVX512PF support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386.opt:749
+#, gcc-internal-format
+msgid "AVX512ER support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386.opt:777
+#, gcc-internal-format
+msgid "AVX5124FMAPS support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386.opt:781
+#, gcc-internal-format
+msgid "AVX5124VNNIW support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386.opt:976
+#, gcc-internal-format
+msgid "PREFETCHWT1 support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386.opt:1290
+#, gcc-internal-format
+msgid "unknown lam type %qs"
+msgstr ""
+
+#: config/avr/avr.opt:26
+#, gcc-internal-format
+msgid "missing device or architecture after %qs"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:308
+#, gcc-internal-format
+msgid "%<-mvrsave=no%> is deprecated; use %<-mno-vrsave%> instead"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:312
+#, gcc-internal-format
+msgid "%<-mvrsave=yes%> is deprecated; use %<-mvrsave%> instead"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:379
+#, gcc-internal-format
+msgid "using darwin64 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:382
+#, gcc-internal-format
+msgid "using old darwin ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.opt:475
+#, gcc-internal-format
+msgid "Do not use %<-mpower8-internal%>; use %<-mcpu=power8%> instead"
+msgstr ""
+
+#: config/fused-madd.opt:22
+#, gcc-internal-format
+msgid "%<-mfused-madd%> is deprecated; use %<-ffp-contract=%> instead"
+msgstr ""
+
+#: config/microblaze/microblaze.opt:87
+#, gcc-internal-format
+msgid "%qs is deprecated; use -fstack-check"
+msgstr ""
+
+#: config/microblaze/microblaze.opt:95
+#, gcc-internal-format
+msgid "%qs is deprecated; use -fno-zero-initialized-in-bss"
+msgstr ""
+
+#: config/arc/arc.opt:169 config/arc/arc.opt:333 config/arc/arc.opt:337
+#: config/arc/arc.opt:341 config/arc/arc.opt:348 config/arc/arc.opt:352
+#: config/arc/arc.opt:356 config/arc/arc.opt:360 config/arc/arc.opt:363
+#: config/arc/arc.opt:366 config/arc/arc.opt:383
+#, gcc-internal-format
+msgid "%qs is deprecated"
+msgstr ""
+
+#: lto/lang.opt:28
+#, gcc-internal-format
+msgid "unknown linker output %qs"
+msgstr ""
+
+#: common.opt:1640
+#, gcc-internal-format
+msgid "unknown excess precision style %qs"
+msgstr ""
+
+#: common.opt:1658
+#, gcc-internal-format
+msgid "unknown specification for the set of FLT_EVAL_METHOD values to permit %qs"
+msgstr ""
+
+#: common.opt:1702
+#, gcc-internal-format
+msgid "unknown floating point contraction style %qs"
+msgstr ""
+
+#: common.opt:1870
+#, gcc-internal-format
+msgid "unknown hardcfr noreturn checking level %qs"
+msgstr ""
+
+#: common.opt:1905
+#, gcc-internal-format
+msgid "unknown Stack Reuse Level %qs"
+msgstr ""
+
+#: common.opt:1977
+#, gcc-internal-format
+msgid "unavailable stringop for inlining %qs"
+msgstr ""
+
+#: common.opt:2008
+#, gcc-internal-format
+msgid "unknown Control-Flow Protection Level %qs"
+msgstr ""
+
+#: common.opt:2118
+#, gcc-internal-format
+msgid "unknown IRA algorithm %qs"
+msgstr ""
+
+#: common.opt:2131
+#, gcc-internal-format
+msgid "unknown IRA region %qs"
+msgstr ""
+
+#: common.opt:2209
+#, gcc-internal-format
+msgid "unknown LTO partitioning model %qs"
+msgstr ""
+
+#: common.opt:2323
+#, gcc-internal-format
+msgid "targets missing after %qs"
+msgstr ""
+
+#: common.opt:2326
+#, gcc-internal-format
+msgid "options or targets=options missing after %qs"
+msgstr ""
+
+#: common.opt:2334
+#, gcc-internal-format
+msgid "unknown offload ABI %qs"
+msgstr ""
+
+#: common.opt:2502
+#, gcc-internal-format
+msgid "unknown profile reproducibility method %qs"
+msgstr ""
+
+#: common.opt:2518
+#, gcc-internal-format
+msgid "unknown profile update method %qs"
+msgstr ""
+
+#: common.opt:2627
+#, gcc-internal-format
+msgid "unknown Live-Patching Level %qs"
+msgstr ""
+
+#: common.opt:2660
+#, gcc-internal-format
+msgid "unknown basic block reordering algorithm %qs"
+msgstr ""
+
+#: common.opt:2996
+#, gcc-internal-format
+msgid "unknown TLS model %qs"
+msgstr ""
+
+#: common.opt:3029
+#, gcc-internal-format
+msgid "unknown trampoline implementation %qs"
+msgstr ""
+
+#: common.opt:3351
+#, gcc-internal-format
+msgid "unknown vectorizer cost model %qs"
+msgstr ""
+
+#: common.opt:3382
+#, gcc-internal-format
+msgid "unrecognized automatic variable initialization type %qs"
+msgstr ""
+
+#: common.opt:3408
+#, gcc-internal-format
+msgid "unrecognized visibility value %qs"
+msgstr ""
+
+#: common.opt:3427
+#, gcc-internal-format
+msgid "unknown vtable verify initialization priority %qs"
+msgstr ""
+
+#: params.opt:893
+#, gcc-internal-format
+msgid "unknown ranger debug mode %qs"
+msgstr ""
+
+#: params.opt:1072
+#, gcc-internal-format
+msgid "unknown threader debug mode %qs"
+msgstr ""
+
+#: attribs.cc:242 attribs.cc:265 attribs.cc:278
+#, gcc-internal-format
+msgid "wrong argument to ignored attributes"
+msgstr ""
+
+#: attribs.cc:243
+#, gcc-internal-format
+msgid "valid format is %<ns::attr%> or %<ns::%>"
+msgstr ""
+
+#: attribs.cc:524
+#, gcc-internal-format
+msgid "ignoring attribute %qE in declaration of a built-in function %qD because it conflicts with attribute %qs"
+msgstr ""
+
+#: attribs.cc:530 c-family/c-attribs.cc:1271 c-family/c-attribs.cc:1315
+#, gcc-internal-format
+msgid "ignoring attribute %qE because it conflicts with attribute %qs"
+msgstr ""
+
+#: attribs.cc:536 c-family/c-attribs.cc:995 c-family/c-attribs.cc:2690
+#: c-family/c-attribs.cc:3177 c-family/c-attribs.cc:5054
+#: c-family/c-attribs.cc:5147 cp/decl.cc:16450 cp/decl.cc:16500
+#: cp/friend.cc:318 cp/tree.cc:5262
+#, gcc-internal-format
+msgid "previous declaration here"
+msgstr ""
+
+#. Warn about and ignore all others for now, but store them.
+#: attribs.cc:734 c-family/c-attribs.cc:4203 objc/objc-act.cc:5134
+#: objc/objc-act.cc:7125 objc/objc-act.cc:8323 objc/objc-act.cc:8379
+#, gcc-internal-format
+msgid "%qE attribute directive ignored"
+msgstr ""
+
+#: attribs.cc:744
+#, gcc-internal-format
+msgid "%<%E::%E%> scoped attribute directive ignored"
+msgstr ""
+
+#: attribs.cc:757 c/c-parser.cc:2084 cp/cp-gimplify.cc:3677
+#, gcc-internal-format
+msgid "wrong number of arguments specified for %qE attribute"
+msgstr ""
+
+#: attribs.cc:760
+#, gcc-internal-format, gfc-internal-format
+msgid "expected %i or more, found %i"
+msgstr ""
+
+#: attribs.cc:763 c/c-parser.cc:2087 cp/cp-gimplify.cc:3679
+#, gcc-internal-format, gfc-internal-format
+msgid "expected %i, found %i"
+msgstr ""
+
+#: attribs.cc:766
+#, gcc-internal-format, gfc-internal-format
+msgid "expected between %i and %i, found %i"
+msgstr ""
+
+#: attribs.cc:786 c-family/c-attribs.cc:4916
+#, gcc-internal-format
+msgid "%qE attribute does not apply to types"
+msgstr ""
+
+#: attribs.cc:834
+#, gcc-internal-format
+msgid "%qE attribute only applies to function types"
+msgstr ""
+
+#: attribs.cc:844
+#, gcc-internal-format
+msgid "type attributes ignored after type is already defined"
+msgstr ""
+
+#. The specifications of standard attributes in C mean
+#. this is a constraint violation.
+#. The specifications of standard attributes mean this is a
+#. constraint violation.
+#. An attribute with standard syntax and no namespace specified
+#. is a constraint violation if it is not one of the known
+#. standard attributes.  Diagnose it here with a pedwarn and
+#. then discard it to prevent a duplicate warning later.
+#: attribs.cc:938 attribs.cc:1926 attribs.cc:1936 attribs.cc:1946
+#: c-family/c-attribs.cc:1023 c-family/c-attribs.cc:1175
+#: c-family/c-attribs.cc:1194 c-family/c-attribs.cc:1212
+#: c-family/c-attribs.cc:1242 c-family/c-attribs.cc:1286
+#: c-family/c-attribs.cc:1330 c-family/c-attribs.cc:1371
+#: c-family/c-attribs.cc:1402 c-family/c-attribs.cc:1418
+#: c-family/c-attribs.cc:1435 c-family/c-attribs.cc:1451
+#: c-family/c-attribs.cc:1468 c-family/c-attribs.cc:1493
+#: c-family/c-attribs.cc:1509 c-family/c-attribs.cc:1524
+#: c-family/c-attribs.cc:1621 c-family/c-attribs.cc:1638
+#: c-family/c-attribs.cc:1656 c-family/c-attribs.cc:1681
+#: c-family/c-attribs.cc:1706 c-family/c-attribs.cc:1729
+#: c-family/c-attribs.cc:1746 c-family/c-attribs.cc:1775
+#: c-family/c-attribs.cc:1796 c-family/c-attribs.cc:1817
+#: c-family/c-attribs.cc:1844 c-family/c-attribs.cc:1875
+#: c-family/c-attribs.cc:1904 c-family/c-attribs.cc:1958
+#: c-family/c-attribs.cc:2011 c-family/c-attribs.cc:2077
+#: c-family/c-attribs.cc:2135 c-family/c-attribs.cc:2224
+#: c-family/c-attribs.cc:2254 c-family/c-attribs.cc:2305
+#: c-family/c-attribs.cc:2833 c-family/c-attribs.cc:3032
+#: c-family/c-attribs.cc:3093 c-family/c-attribs.cc:3330
+#: c-family/c-attribs.cc:3410 c-family/c-attribs.cc:3562
+#: c-family/c-attribs.cc:4017 c-family/c-attribs.cc:4083
+#: c-family/c-attribs.cc:4119 c-family/c-attribs.cc:4174
+#: c-family/c-attribs.cc:4356 c-family/c-attribs.cc:4377
+#: c-family/c-attribs.cc:4466 c-family/c-attribs.cc:4498
+#: c-family/c-attribs.cc:4563 c-family/c-attribs.cc:4769
+#: c-family/c-attribs.cc:4918 c-family/c-attribs.cc:5682
+#: c-family/c-attribs.cc:5701 c-family/c-attribs.cc:5724
+#: c-family/c-attribs.cc:5763 c-family/c-attribs.cc:5845
+#: c-family/c-attribs.cc:5877 c-family/c-attribs.cc:5919
+#: c-family/c-attribs.cc:5935 c-family/c-attribs.cc:6103
+#: c-family/c-attribs.cc:6115 c-family/c-common.cc:6138
+#: c-family/c-common.cc:6141 config/darwin.cc:2208 config/arm/arm.cc:7519
+#: config/arm/arm.cc:7546 config/arm/arm.cc:7563 config/avr/avr.cc:11255
+#: config/csky/csky.cc:6498 config/csky/csky.cc:6519 config/h8300/h8300.cc:4972
+#: config/h8300/h8300.cc:4996 config/i386/i386-options.cc:3777
+#: config/i386/i386-options.cc:3935 config/i386/i386-options.cc:4167
+#: config/i386/i386-options.cc:4197 config/ia64/ia64.cc:795
+#: config/loongarch/loongarch.cc:8006 config/rs6000/rs6000.cc:20753
+#: ada/gcc-interface/utils.cc:6746 ada/gcc-interface/utils.cc:6762
+#: ada/gcc-interface/utils.cc:6859 ada/gcc-interface/utils.cc:6876
+#: ada/gcc-interface/utils.cc:6893 ada/gcc-interface/utils.cc:6908
+#: ada/gcc-interface/utils.cc:6924 ada/gcc-interface/utils.cc:6950
+#: ada/gcc-interface/utils.cc:7019 ada/gcc-interface/utils.cc:7046
+#: ada/gcc-interface/utils.cc:7067 ada/gcc-interface/utils.cc:7088
+#: ada/gcc-interface/utils.cc:7136 ada/gcc-interface/utils.cc:7152
+#: ada/gcc-interface/utils.cc:7186 c/c-decl.cc:4902 c/c-decl.cc:4905
+#: c/c-decl.cc:4920 c/c-parser.cc:5835 cp/tree.cc:5016 cp/tree.cc:5427
+#: d/d-attribs.cc:483 d/d-attribs.cc:702 d/d-attribs.cc:723 d/d-attribs.cc:739
+#: d/d-attribs.cc:756 d/d-attribs.cc:788 d/d-attribs.cc:917 d/d-attribs.cc:976
+#: d/d-attribs.cc:992 d/d-attribs.cc:1008 d/d-attribs.cc:1157
+#: d/d-attribs.cc:1170 d/d-attribs.cc:1387 d/d-attribs.cc:1405
+#: d/d-attribs.cc:1452 d/d-attribs.cc:1490 d/d-attribs.cc:1506
+#: d/d-attribs.cc:1563 d/d-attribs.cc:1591 jit/dummy-frontend.cc:270
+#: jit/dummy-frontend.cc:304 jit/dummy-frontend.cc:599
+#: jit/dummy-frontend.cc:684 jit/dummy-frontend.cc:705
+#: jit/dummy-frontend.cc:724 jit/dummy-frontend.cc:755
+#: jit/dummy-frontend.cc:769 jit/dummy-frontend.cc:812
+#: jit/dummy-frontend.cc:832 jit/dummy-frontend.cc:893 lto/lto-lang.cc:302
+#: rust/rust-attribs.cc:171
+#, gcc-internal-format
+msgid "%qE attribute ignored"
+msgstr ""
+
+#: attribs.cc:1214
+#, gcc-internal-format
+msgid "missing %<target%> attribute for multi-versioned %qD"
+msgstr ""
+
+#: attribs.cc:1217 cp/decl.cc:1337 cp/decl.cc:2346 cp/decl.cc:2394
+#: cp/decl.cc:2410 cp/decl.cc:3090 cp/decl.cc:3542
+#, gcc-internal-format
+msgid "previous declaration of %qD"
+msgstr ""
+
+#: attribs.cc:1325
+#, gcc-internal-format
+msgid "ignoring attributes applied to %qT after definition"
+msgstr ""
+
+#: attribs.cc:1857
+#, gcc-internal-format
+msgid "%q+D already declared with dllexport attribute: dllimport ignored"
+msgstr ""
+
+#: attribs.cc:1869
+#, gcc-internal-format
+msgid "%q+D redeclared without dllimport attribute after being referenced with dll linkage"
+msgstr ""
+
+#: attribs.cc:1883
+#, gcc-internal-format
+msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored"
+msgstr ""
+
+#: attribs.cc:1964
+#, gcc-internal-format
+msgid "inline function %q+D declared as dllimport: attribute ignored"
+msgstr ""
+
+#: attribs.cc:1972
+#, gcc-internal-format
+msgid "function %q+D definition is marked dllimport"
+msgstr ""
+
+#: attribs.cc:1980
+#, gcc-internal-format
+msgid "variable %q+D definition is marked dllimport"
+msgstr ""
+
+#: attribs.cc:2011
+#, gcc-internal-format
+msgid "external linkage required for symbol %q+D because of %qE attribute"
+msgstr ""
+
+#: attribs.cc:2025
+#, gcc-internal-format
+msgid "%qE implies default visibility, but %qD has already been declared with a different visibility"
+msgstr ""
+
+#: attribs.cc:2327
+#, gcc-internal-format
+msgid "%qD specifies more restrictive attribute than its target %qD: %s"
+msgid_plural "%qD specifies more restrictive attributes than its target %qD: %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: attribs.cc:2333 attribs.cc:2353
+#, gcc-internal-format
+msgid "%qD target declared here"
+msgstr ""
+
+#: attribs.cc:2347
+#, gcc-internal-format
+msgid "%qD specifies less restrictive attribute than its target %qD: %s"
+msgid_plural "%qD specifies less restrictive attributes than its target %qD: %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: auto-profile.cc:367
+#, gcc-internal-format
+msgid "offset exceeds 16 bytes"
+msgstr ""
+
+#: auto-profile.cc:864
+#, gcc-internal-format
+msgid "Not expected TAG."
+msgstr ""
+
+#: auto-profile.cc:929
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot open profile file %s"
+msgstr ""
+
+#: auto-profile.cc:935
+#, gcc-internal-format
+msgid "AutoFDO profile magic number does not match"
+msgstr ""
+
+#: auto-profile.cc:943
+#, gcc-internal-format, gfc-internal-format
+msgid "AutoFDO profile version %u does not match %u"
+msgstr ""
+
+#: auto-profile.cc:955
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot read string table from %s"
+msgstr ""
+
+#: auto-profile.cc:963
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot read function profile from %s"
+msgstr ""
+
+#: builtins.cc:703
+#, gcc-internal-format
+msgid "offset %qwi outside bounds of constant string"
+msgstr ""
+
+#: builtins.cc:707 cp/name-lookup.cc:6830
+#, gcc-internal-format
+msgid "%qE declared here"
+msgstr ""
+
+#: builtins.cc:1298
+#, gcc-internal-format
+msgid "second argument to %<__builtin_prefetch%> must be a constant"
+msgstr ""
+
+#: builtins.cc:1305
+#, gcc-internal-format
+msgid "invalid second argument to %<__builtin_prefetch%>; using zero"
+msgstr ""
+
+#: builtins.cc:1313
+#, gcc-internal-format
+msgid "third argument to %<__builtin_prefetch%> must be a constant"
+msgstr ""
+
+#: builtins.cc:1320
+#, gcc-internal-format
+msgid "invalid third argument to %<__builtin_prefetch%>; using zero"
+msgstr ""
+
+#: builtins.cc:4048 gimple-fold.cc:2525 gimple-ssa-warn-access.cc:2567
+#: tree-ssa-strlen.cc:3179
+#, gcc-internal-format
+msgid "%qD specified bound %E equals destination size"
+msgstr ""
+
+#: builtins.cc:5297 gimplify.cc:3922
+#, gcc-internal-format
+msgid "too few arguments to function %<va_start%>"
+msgstr ""
+
+#: builtins.cc:5397
+#, gcc-internal-format
+msgid "invalid argument to %qD"
+msgstr ""
+
+#: builtins.cc:5410
+#, gcc-internal-format
+msgid "unsupported argument to %qD"
+msgstr ""
+
+#. Warn since no effort is made to ensure that any frame
+#. beyond the current one exists or can be safely reached.
+#: builtins.cc:5418
+#, gcc-internal-format
+msgid "calling %qD with a nonzero argument is unsafe"
+msgstr ""
+
+#: builtins.cc:6048
+#, gcc-internal-format
+msgid "both arguments to %<__builtin___clear_cache%> must be pointers"
+msgstr ""
+
+#: builtins.cc:6138
+#, gcc-internal-format
+msgid "trampoline generated for nested function %qD"
+msgstr ""
+
+#: builtins.cc:6512 builtins.cc:6525
+#, gcc-internal-format
+msgid "%qD changed semantics in GCC 4.4"
+msgstr ""
+
+#: builtins.cc:7295
+#, gcc-internal-format
+msgid "non-constant argument 1 to %qs"
+msgstr ""
+
+#: builtins.cc:7337
+#, gcc-internal-format
+msgid "non-integer argument 1 to %qs"
+msgstr ""
+
+#: builtins.cc:7401
+#, gcc-internal-format
+msgid "%<__builtin_thread_pointer%> is not supported on this target"
+msgstr ""
+
+#: builtins.cc:7421
+#, gcc-internal-format
+msgid "%<__builtin_set_thread_pointer%> is not supported on this target"
+msgstr ""
+
+#: builtins.cc:7480
+#, gcc-internal-format
+msgid "%qs only supported in OpenACC code"
+msgstr ""
+
+#: builtins.cc:7487
+#, gcc-internal-format
+msgid "non-constant argument 0 to %qs"
+msgstr ""
+
+#: builtins.cc:7499
+#, gcc-internal-format
+msgid "illegal argument 0 to %qs"
+msgstr ""
+
+#. All valid uses of __builtin_va_arg_pack () are removed during
+#. inlining.
+#: builtins.cc:8018 expr.cc:12326
+#, gcc-internal-format
+msgid "invalid use of %<__builtin_va_arg_pack ()%>"
+msgstr ""
+
+#. All valid uses of __builtin_va_arg_pack_len () are removed during
+#. inlining.
+#: builtins.cc:8024
+#, gcc-internal-format
+msgid "invalid use of %<__builtin_va_arg_pack_len ()%>"
+msgstr ""
+
+#: builtins.cc:8313
+#, gcc-internal-format
+msgid "%<__builtin_longjmp%> second argument must be 1"
+msgstr ""
+
+#: builtins.cc:9216
+#, gcc-internal-format
+msgid "target format does not support infinity"
+msgstr ""
+
+#: builtins.cc:11247
+#, gcc-internal-format
+msgid "%<va_start%> used in function with fixed arguments"
+msgstr ""
+
+#: builtins.cc:11255
+#, gcc-internal-format
+msgid "wrong number of arguments to function %<va_start%>"
+msgstr ""
+
+#: builtins.cc:11270
+#, gcc-internal-format
+msgid "%<__builtin_next_arg%> called without an argument"
+msgstr ""
+
+#: builtins.cc:11275
+#, gcc-internal-format
+msgid "wrong number of arguments to function %<__builtin_next_arg%>"
+msgstr ""
+
+#: builtins.cc:11308
+#, gcc-internal-format
+msgid "second parameter of %<va_start%> not last named argument"
+msgstr ""
+
+#: builtins.cc:11321
+#, gcc-internal-format
+msgid "undefined behavior when second parameter of %<va_start%> is declared with %<register%> storage"
+msgstr ""
+
+#: builtins.cc:11350
+#, gcc-internal-format
+msgid "first argument of %qD must be a pointer, second integer constant"
+msgstr ""
+
+#: builtins.cc:11363
+#, gcc-internal-format
+msgid "last argument of %qD is not integer constant between 0 and 3"
+msgstr ""
+
+#: calls.cc:1251
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot tail-call: %s"
+msgstr ""
+
+#: calls.cc:2779
+#, gcc-internal-format
+msgid "function call has aggregate value"
+msgstr ""
+
+#: calls.cc:3509
+#, gcc-internal-format
+msgid "passing too large argument on stack"
+msgstr ""
+
+#: cfganal.cc:173
+#, gcc-internal-format
+msgid "%<verify_marked_backedges%> failed"
+msgstr ""
+
+#: cfgexpand.cc:1850
+#, gcc-internal-format
+msgid "total size of local objects is too large"
+msgstr ""
+
+#: cfgexpand.cc:1853 function.cc:1016 varasm.cc:2360
+#, gcc-internal-format
+msgid "size of variable %q+D is too large"
+msgstr ""
+
+#: cfgexpand.cc:1865
+#, gcc-internal-format
+msgid "cannot allocate stack for variable %q+D, naked function"
+msgstr ""
+
+#: cfgexpand.cc:2962
+#, gcc-internal-format
+msgid "too many alternatives in %<asm%>"
+msgstr ""
+
+#: cfgexpand.cc:2969
+#, gcc-internal-format
+msgid "operand constraints for %<asm%> differ in number of alternatives"
+msgstr ""
+
+#: cfgexpand.cc:2991
+#, gcc-internal-format
+msgid "%<asm%> specifier for variable %qE conflicts with %<asm%> clobber list"
+msgstr ""
+
+#. ??? Diagnose during gimplification?
+#: cfgexpand.cc:3022
+#, gcc-internal-format
+msgid "PIC register clobbered by %qs in %<asm%>"
+msgstr ""
+
+#. ??? Diagnose during gimplification?
+#: cfgexpand.cc:3029
+#, gcc-internal-format
+msgid "the register %qs cannot be clobbered in %<asm%> for the current target"
+msgstr ""
+
+#: cfgexpand.cc:3042
+#, gcc-internal-format
+msgid "listing the stack pointer register %qs in a clobber list is deprecated"
+msgstr ""
+
+#: cfgexpand.cc:3044
+#, gcc-internal-format
+msgid "the value of the stack pointer after an %<asm%> statement must be the same as it was before the statement"
+msgstr ""
+
+#: cfgexpand.cc:3114
+#, gcc-internal-format
+msgid "more than %d operands in %<asm%>"
+msgstr ""
+
+#. ??? Diagnose during gimplification?
+#: cfgexpand.cc:3167
+#, gcc-internal-format
+msgid "unknown register name %qs in %<asm%>"
+msgstr ""
+
+#: cfgexpand.cc:3233
+#, gcc-internal-format
+msgid "invalid hard register usage between output operands"
+msgstr ""
+
+#: cfgexpand.cc:3260
+#, gcc-internal-format
+msgid "invalid hard register usage between output operand and matching constraint operand"
+msgstr ""
+
+#: cfgexpand.cc:3268
+#, gcc-internal-format
+msgid "invalid hard register usage between earlyclobber operand and input operand"
+msgstr ""
+
+#: cfgexpand.cc:3353
+#, gcc-internal-format, gfc-internal-format
+msgid "output number %d not directly addressable"
+msgstr ""
+
+#: cfgexpand.cc:3449
+#, gcc-internal-format
+msgid "%<asm%> operand %d probably does not match constraints"
+msgstr ""
+
+#: cfgexpand.cc:3642
+#, gcc-internal-format
+msgid "%<asm%> clobber conflict with output operand"
+msgstr ""
+
+#: cfgexpand.cc:3647
+#, gcc-internal-format
+msgid "%<asm%> clobber conflict with input operand"
+msgstr ""
+
+#: cfgexpand.cc:6725
+#, gcc-internal-format
+msgid "stack protector not protecting local variables: variable length buffer"
+msgstr ""
+
+#: cfgexpand.cc:6729
+#, gcc-internal-format, gfc-internal-format
+msgid "stack protector not protecting function: all local arrays are less than %d bytes long"
+msgstr ""
+
+#: cfgexpand.cc:7018
+#, gcc-internal-format
+msgid "patchable function entry %wu exceeds size %wu"
+msgstr ""
+
+#: cfghooks.cc:120
+#, gcc-internal-format, gfc-internal-format
+msgid "bb %d on wrong place"
+msgstr ""
+
+#: cfghooks.cc:126
+#, gcc-internal-format, gfc-internal-format
+msgid "prev_bb of %d should be %d, not %d"
+msgstr ""
+
+#: cfghooks.cc:143
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: Block %i has loop_father, but there are no loops"
+msgstr ""
+
+#: cfghooks.cc:149
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: Block %i lacks loop_father"
+msgstr ""
+
+#: cfghooks.cc:155
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: Wrong count of block %i"
+msgstr ""
+
+#: cfghooks.cc:163
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: Missing count of block %i"
+msgstr ""
+
+#: cfghooks.cc:169
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: unallocated flag set on BB %d"
+msgstr ""
+
+#: cfghooks.cc:177
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: Duplicate edge %i->%i"
+msgstr ""
+
+#: cfghooks.cc:186
+#, gcc-internal-format, gfc-internal-format
+msgid "Uninitialized probability of edge %i->%i"
+msgstr ""
+
+#: cfghooks.cc:192
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: Wrong probability of edge %i->%i"
+msgstr ""
+
+#: cfghooks.cc:204
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+msgstr ""
+
+#: cfghooks.cc:216
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: unallocated edge flag set on %d -> %d"
+msgstr ""
+
+#: cfghooks.cc:225
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong amount of branch edges after unconditional jump %i"
+msgstr ""
+
+#: cfghooks.cc:233 cfghooks.cc:244
+#, gcc-internal-format, gfc-internal-format
+msgid "basic block %d pred edge is corrupted"
+msgstr ""
+
+#: cfghooks.cc:245
+#, gcc-internal-format, gfc-internal-format
+msgid "its dest_idx should be %d, not %d"
+msgstr ""
+
+#: cfghooks.cc:274
+#, gcc-internal-format, gfc-internal-format
+msgid "basic block %i edge lists are corrupted"
+msgstr ""
+
+#: cfghooks.cc:287
+#, gcc-internal-format
+msgid "verify_flow_info failed"
+msgstr ""
+
+#: cfghooks.cc:345
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support dump_bb_for_graph"
+msgstr ""
+
+#: cfghooks.cc:388
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support redirect_edge_and_branch"
+msgstr ""
+
+#: cfghooks.cc:408
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support can_remove_branch_p"
+msgstr ""
+
+#: cfghooks.cc:502
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support redirect_edge_and_branch_force"
+msgstr ""
+
+#: cfghooks.cc:540
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support split_block"
+msgstr ""
+
+#: cfghooks.cc:605
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support move_block_after"
+msgstr ""
+
+#: cfghooks.cc:618
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support delete_basic_block"
+msgstr ""
+
+#: cfghooks.cc:665
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support split_edge"
+msgstr ""
+
+#: cfghooks.cc:743
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support create_basic_block"
+msgstr ""
+
+#: cfghooks.cc:784
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support can_merge_blocks_p"
+msgstr ""
+
+#: cfghooks.cc:795
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support predict_edge"
+msgstr ""
+
+#: cfghooks.cc:804
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support predicted_by_p"
+msgstr ""
+
+#: cfghooks.cc:818
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support merge_blocks"
+msgstr ""
+
+#: cfghooks.cc:899
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support make_forwarder_block"
+msgstr ""
+
+#: cfghooks.cc:1048
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support force_nonfallthru"
+msgstr ""
+
+#: cfghooks.cc:1082
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support can_duplicate_block_p"
+msgstr ""
+
+#: cfghooks.cc:1111
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support duplicate_block"
+msgstr ""
+
+#: cfghooks.cc:1186
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support block_ends_with_call_p"
+msgstr ""
+
+#: cfghooks.cc:1197
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support block_ends_with_condjump_p"
+msgstr ""
+
+#: cfghooks.cc:1215
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support flow_call_edges_add"
+msgstr ""
+
+#: cfgloop.cc:1404
+#, gcc-internal-format
+msgid "loop verification on loop tree that needs fixup"
+msgstr ""
+
+#: cfgloop.cc:1420
+#, gcc-internal-format
+msgid "corrupt loop tree root"
+msgstr ""
+
+#: cfgloop.cc:1430
+#, gcc-internal-format, gfc-internal-format
+msgid "loop with header %d marked for removal"
+msgstr ""
+
+#: cfgloop.cc:1435
+#, gcc-internal-format, gfc-internal-format
+msgid "loop with header %d not in loop tree"
+msgstr ""
+
+#: cfgloop.cc:1441
+#, gcc-internal-format, gfc-internal-format
+msgid "non-loop with header %d not marked for removal"
+msgstr ""
+
+#: cfgloop.cc:1455
+#, gcc-internal-format, gfc-internal-format
+msgid "removed loop %d in loop tree"
+msgstr ""
+
+#: cfgloop.cc:1463
+#, gcc-internal-format, gfc-internal-format
+msgid "size of loop %d should be %d, not %d"
+msgstr ""
+
+#: cfgloop.cc:1474
+#, gcc-internal-format, gfc-internal-format
+msgid "bb %d does not belong to loop %d"
+msgstr ""
+
+#: cfgloop.cc:1486
+#, gcc-internal-format, gfc-internal-format
+msgid "bb %d has father loop %d, should be loop %d"
+msgstr ""
+
+#: cfgloop.cc:1502
+#, gcc-internal-format
+msgid "loop %d%'s header is not a loop header"
+msgstr ""
+
+#: cfgloop.cc:1508
+#, gcc-internal-format
+msgid "loop %d%'s header does not have exactly 2 entries"
+msgstr ""
+
+#: cfgloop.cc:1515
+#, gcc-internal-format
+msgid "loop %d%'s latch does not have an edge to its header"
+msgstr ""
+
+#: cfgloop.cc:1520
+#, gcc-internal-format
+msgid "loop %d%'s latch is not dominated by its header"
+msgstr ""
+
+#: cfgloop.cc:1528
+#, gcc-internal-format
+msgid "loop %d%'s latch does not have exactly 1 successor"
+msgstr ""
+
+#: cfgloop.cc:1533
+#, gcc-internal-format
+msgid "loop %d%'s latch does not have header as successor"
+msgstr ""
+
+#: cfgloop.cc:1538
+#, gcc-internal-format
+msgid "loop %d%'s latch does not belong directly to it"
+msgstr ""
+
+#: cfgloop.cc:1544
+#, gcc-internal-format
+msgid "loop %d%'s header does not belong directly to it"
+msgstr ""
+
+#: cfgloop.cc:1554
+#, gcc-internal-format
+msgid "loop %d%'s latch is marked as part of irreducible region"
+msgstr ""
+
+#: cfgloop.cc:1566
+#, gcc-internal-format
+msgid "loop %d%'s number of iterations %qE references the released SSA name %qE"
+msgstr ""
+
+#: cfgloop.cc:1599
+#, gcc-internal-format, gfc-internal-format
+msgid "basic block %d should be marked irreducible"
+msgstr ""
+
+#: cfgloop.cc:1605
+#, gcc-internal-format, gfc-internal-format
+msgid "basic block %d should not be marked irreducible"
+msgstr ""
+
+#: cfgloop.cc:1614
+#, gcc-internal-format, gfc-internal-format
+msgid "edge from %d to %d should be marked irreducible"
+msgstr ""
+
+#: cfgloop.cc:1621
+#, gcc-internal-format, gfc-internal-format
+msgid "edge from %d to %d should not be marked irreducible"
+msgstr ""
+
+#: cfgloop.cc:1635
+#, gcc-internal-format, gfc-internal-format
+msgid "corrupted head of the exits list of loop %d"
+msgstr ""
+
+#: cfgloop.cc:1653
+#, gcc-internal-format, gfc-internal-format
+msgid "corrupted exits list of loop %d"
+msgstr ""
+
+#: cfgloop.cc:1662
+#, gcc-internal-format, gfc-internal-format
+msgid "nonempty exits list of loop %d, but exits are not recorded"
+msgstr ""
+
+#: cfgloop.cc:1689
+#, gcc-internal-format, gfc-internal-format
+msgid "exit %d->%d not recorded"
+msgstr ""
+
+#: cfgloop.cc:1712
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong list of exited loops for edge %d->%d"
+msgstr ""
+
+#: cfgloop.cc:1721
+#, gcc-internal-format
+msgid "too many loop exits recorded"
+msgstr ""
+
+#: cfgloop.cc:1732
+#, gcc-internal-format, gfc-internal-format
+msgid "%d exits recorded for loop %d (having %d exits)"
+msgstr ""
+
+#: cfgrtl.cc:2441
+#, gcc-internal-format, gfc-internal-format
+msgid "non-cold basic block %d reachable only by paths crossing the cold partition"
+msgstr ""
+
+#: cfgrtl.cc:2561
+#, gcc-internal-format, gfc-internal-format
+msgid "multiple hot/cold transitions found (bb %i)"
+msgstr ""
+
+#: cfgrtl.cc:2569
+#, gcc-internal-format
+msgid "partition found but function partition flag not set"
+msgstr ""
+
+#: cfgrtl.cc:2608
+#, gcc-internal-format
+msgid "verify_flow_info: REG_BR_PROB is set but cfg probability is not"
+msgstr ""
+
+#: cfgrtl.cc:2617
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+msgstr ""
+
+#: cfgrtl.cc:2639
+#, gcc-internal-format
+msgid "EDGE_CROSSING incorrectly set across same section"
+msgstr ""
+
+#: cfgrtl.cc:2644
+#, gcc-internal-format, gfc-internal-format
+msgid "fallthru edge crosses section boundary in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2650
+#, gcc-internal-format, gfc-internal-format
+msgid "EH edge crosses section boundary in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2656
+#, gcc-internal-format, gfc-internal-format
+msgid "No region crossing jump at section boundary in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2663
+#, gcc-internal-format
+msgid "EDGE_CROSSING missing across section boundary"
+msgstr ""
+
+#: cfgrtl.cc:2693
+#, gcc-internal-format, gfc-internal-format
+msgid "Region crossing jump across same section in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2700
+#, gcc-internal-format, gfc-internal-format
+msgid "missing REG_EH_REGION note at the end of bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2705
+#, gcc-internal-format, gfc-internal-format
+msgid "too many exception handling edges in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2713
+#, gcc-internal-format, gfc-internal-format
+msgid "too many outgoing branch edges from bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2718
+#, gcc-internal-format, gfc-internal-format
+msgid "fallthru edge after unconditional jump in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2723
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong number of branch edges after unconditional jump in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2730
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong amount of branch edges after conditional jump in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2736
+#, gcc-internal-format, gfc-internal-format
+msgid "abnormal call edges for non-call insn in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2741
+#, gcc-internal-format, gfc-internal-format
+msgid "sibcall edges for non-call insn in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2751
+#, gcc-internal-format, gfc-internal-format
+msgid "abnormal edges for no purpose in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2762
+#, gcc-internal-format, gfc-internal-format
+msgid "EH incoming edge mixed with non-EH incoming edges in bb %i"
+msgstr ""
+
+#: cfgrtl.cc:2803 cfgrtl.cc:2813
+#, gcc-internal-format, gfc-internal-format
+msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+msgstr ""
+
+#: cfgrtl.cc:2826
+#, gcc-internal-format, gfc-internal-format
+msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+msgstr ""
+
+#: cfgrtl.cc:2836
+#, gcc-internal-format, gfc-internal-format
+msgid "in basic block %d:"
+msgstr ""
+
+#: cfgrtl.cc:2862
+#, gcc-internal-format, gfc-internal-format
+msgid "BB_RTL flag not set for block %d"
+msgstr ""
+
+#: cfgrtl.cc:2869
+#, gcc-internal-format, gfc-internal-format
+msgid "insn %d basic block pointer is %d, should be %d"
+msgstr ""
+
+#: cfgrtl.cc:2880
+#, gcc-internal-format, gfc-internal-format
+msgid "insn %d in header of bb %d has non-NULL basic block"
+msgstr ""
+
+#: cfgrtl.cc:2888
+#, gcc-internal-format, gfc-internal-format
+msgid "insn %d in footer of bb %d has non-NULL basic block"
+msgstr ""
+
+#: cfgrtl.cc:2964 cfgrtl.cc:3012
+#, gcc-internal-format, gfc-internal-format
+msgid "insn %d outside of basic blocks has non-NULL bb field"
+msgstr ""
+
+#: cfgrtl.cc:2972
+#, gcc-internal-format, gfc-internal-format
+msgid "end insn %d for block %d not found in the insn stream"
+msgstr ""
+
+#: cfgrtl.cc:2985
+#, gcc-internal-format, gfc-internal-format
+msgid "insn %d is in multiple basic blocks (%d and %d)"
+msgstr ""
+
+#: cfgrtl.cc:2997
+#, gcc-internal-format, gfc-internal-format
+msgid "head insn %d for block %d not found in the insn stream"
+msgstr ""
+
+#: cfgrtl.cc:3045
+#, gcc-internal-format, gfc-internal-format
+msgid "missing barrier after block %i"
+msgstr ""
+
+#: cfgrtl.cc:3061
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+msgstr ""
+
+#: cfgrtl.cc:3070
+#, gcc-internal-format, gfc-internal-format
+msgid "verify_flow_info: Incorrect fallthru %i->%i"
+msgstr ""
+
+#: cfgrtl.cc:3072
+#, gcc-internal-format
+msgid "wrong insn in the fallthru edge"
+msgstr ""
+
+#: cfgrtl.cc:3106
+#, gcc-internal-format
+msgid "basic blocks not laid down consecutively"
+msgstr ""
+
+#: cfgrtl.cc:3145
+#, gcc-internal-format, gfc-internal-format
+msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+msgstr ""
+
+#: cgraph.cc:3262
+#, gcc-internal-format
+msgid "caller edge count invalid"
+msgstr ""
+
+#: cgraph.cc:3359
+#, gcc-internal-format
+msgid "missing indirect call in speculative call sequence"
+msgstr ""
+
+#: cgraph.cc:3364
+#, gcc-internal-format
+msgid "indirect call in speculative call sequence has no speculative flag"
+msgstr ""
+
+#: cgraph.cc:3394
+#, gcc-internal-format
+msgid "speculative edges are not adjacent"
+msgstr ""
+
+#: cgraph.cc:3400
+#, gcc-internal-format, gfc-internal-format
+msgid "direct call to %s in speculative call sequence has no speculative flag"
+msgstr ""
+
+#: cgraph.cc:3406 cgraph.cc:3436
+#, gcc-internal-format, gfc-internal-format
+msgid "direct call to %s in speculative call sequence has speculative_id %i out of range"
+msgstr ""
+
+#: cgraph.cc:3413
+#, gcc-internal-format, gfc-internal-format
+msgid "duplicate direct call to %s in speculative call sequence with speculative_id %i"
+msgstr ""
+
+#: cgraph.cc:3424
+#, gcc-internal-format
+msgid "call stmt hash does not point to first direct edge of speculative call sequence"
+msgstr ""
+
+#: cgraph.cc:3443
+#, gcc-internal-format, gfc-internal-format
+msgid "duplicate reference %s in speculative call sequence with speculative_id %i"
+msgstr ""
+
+#: cgraph.cc:3456
+#, gcc-internal-format, gfc-internal-format
+msgid "missing direct call for speculation %i"
+msgstr ""
+
+#: cgraph.cc:3461
+#, gcc-internal-format, gfc-internal-format
+msgid "missing ref for speculation %i"
+msgstr ""
+
+#: cgraph.cc:3470
+#, gcc-internal-format, gfc-internal-format
+msgid "number of speculative targets %i mismatched with num_speculative_call_targets %i"
+msgstr ""
+
+#: cgraph.cc:3499
+#, gcc-internal-format, gfc-internal-format
+msgid "aux field set for edge %s->%s"
+msgstr ""
+
+#: cgraph.cc:3506
+#, gcc-internal-format
+msgid "cgraph count invalid"
+msgstr ""
+
+#: cgraph.cc:3511
+#, gcc-internal-format
+msgid "inline clone in same comdat group list"
+msgstr ""
+
+#: cgraph.cc:3516
+#, gcc-internal-format
+msgid "inline clone count is not compatible"
+msgstr ""
+
+#: cgraph.cc:3523
+#, gcc-internal-format
+msgid "tp_first_run must be non-negative"
+msgstr ""
+
+#: cgraph.cc:3528
+#, gcc-internal-format
+msgid "local symbols must be defined"
+msgstr ""
+
+#: cgraph.cc:3533
+#, gcc-internal-format
+msgid "externally visible inline clone"
+msgstr ""
+
+#: cgraph.cc:3538
+#, gcc-internal-format
+msgid "inline clone with address taken"
+msgstr ""
+
+#: cgraph.cc:3543
+#, gcc-internal-format
+msgid "inline clone is forced to output"
+msgstr ""
+
+#: cgraph.cc:3550
+#, gcc-internal-format
+msgid "calls_comdat_local is set outside of a comdat group"
+msgstr ""
+
+#: cgraph.cc:3555
+#, gcc-internal-format
+msgid "invalid calls_comdat_local flag"
+msgstr ""
+
+#: cgraph.cc:3562
+#, gcc-internal-format
+msgid "malloc attribute should be used for a function that returns a pointer"
+msgstr ""
+
+#: cgraph.cc:3574
+#, gcc-internal-format
+msgid "semantic interposition mismatch"
+msgstr ""
+
+#: cgraph.cc:3581
+#, gcc-internal-format, gfc-internal-format
+msgid "aux field set for indirect edge from %s"
+msgstr ""
+
+#: cgraph.cc:3587 cgraph.cc:3647
+#, gcc-internal-format
+msgid "edge count is not compatible with function count"
+msgstr ""
+
+#: cgraph.cc:3595
+#, gcc-internal-format, gfc-internal-format
+msgid "An indirect edge from %s is not marked as indirect or has associated indirect_info, the corresponding statement is: "
+msgstr ""
+
+#: cgraph.cc:3603 cgraph.cc:3675
+#, gcc-internal-format
+msgid "edge has both call_stmt and lto_stmt_uid set"
+msgstr ""
+
+#: cgraph.cc:3615
+#, gcc-internal-format, gfc-internal-format
+msgid "comdat-local function called by %s outside its comdat"
+msgstr ""
+
+#: cgraph.cc:3625
+#, gcc-internal-format
+msgid "inlined_to pointer is wrong"
+msgstr ""
+
+#: cgraph.cc:3630
+#, gcc-internal-format
+msgid "multiple inline callers"
+msgstr ""
+
+#: cgraph.cc:3637
+#, gcc-internal-format
+msgid "inlined_to pointer set for noninline callers"
+msgstr ""
+
+#: cgraph.cc:3665
+#, gcc-internal-format
+msgid "caller edge count does not match BB count"
+msgstr ""
+
+#: cgraph.cc:3696
+#, gcc-internal-format
+msgid "indirect call count does not match BB count"
+msgstr ""
+
+#: cgraph.cc:3713
+#, gcc-internal-format
+msgid "reference has both stmt and lto_stmt_uid set"
+msgstr ""
+
+#: cgraph.cc:3724
+#, gcc-internal-format
+msgid "inlined_to pointer is set but no predecessors found"
+msgstr ""
+
+#: cgraph.cc:3729
+#, gcc-internal-format
+msgid "inlined_to pointer refers to itself"
+msgstr ""
+
+#: cgraph.cc:3740
+#, gcc-internal-format
+msgid "cgraph_node has wrong clone_of"
+msgstr ""
+
+#: cgraph.cc:3753
+#, gcc-internal-format
+msgid "cgraph_node has wrong clone list"
+msgstr ""
+
+#: cgraph.cc:3759
+#, gcc-internal-format
+msgid "cgraph_node is in clone list but it is not clone"
+msgstr ""
+
+#: cgraph.cc:3764
+#, gcc-internal-format
+msgid "cgraph_node has wrong prev_clone pointer"
+msgstr ""
+
+#: cgraph.cc:3769
+#, gcc-internal-format
+msgid "double linked list of clones corrupted"
+msgstr ""
+
+#: cgraph.cc:3781
+#, gcc-internal-format
+msgid "Alias has call edges"
+msgstr ""
+
+#: cgraph.cc:3787
+#, gcc-internal-format
+msgid "Alias has non-alias reference"
+msgstr ""
+
+#: cgraph.cc:3792
+#, gcc-internal-format
+msgid "Alias has more than one alias reference"
+msgstr ""
+
+#: cgraph.cc:3799
+#, gcc-internal-format
+msgid "Analyzed alias has no reference"
+msgstr ""
+
+#: cgraph.cc:3808
+#, gcc-internal-format
+msgid "No edge out of thunk node"
+msgstr ""
+
+#: cgraph.cc:3813
+#, gcc-internal-format
+msgid "More than one edge out of thunk node"
+msgstr ""
+
+#: cgraph.cc:3818
+#, gcc-internal-format
+msgid "Thunk is not supposed to have body"
+msgstr ""
+
+#: cgraph.cc:3854
+#, gcc-internal-format
+msgid "shared call_stmt:"
+msgstr ""
+
+#: cgraph.cc:3862
+#, gcc-internal-format
+msgid "edge points to wrong declaration:"
+msgstr ""
+
+#: cgraph.cc:3871
+#, gcc-internal-format
+msgid "an indirect edge with unknown callee corresponding to a call_stmt with a known declaration:"
+msgstr ""
+
+#: cgraph.cc:3881
+#, gcc-internal-format
+msgid "missing callgraph edge for call stmt:"
+msgstr ""
+
+#: cgraph.cc:3891
+#, gcc-internal-format
+msgid "reference to dead statement"
+msgstr ""
+
+#: cgraph.cc:3904
+#, gcc-internal-format, gfc-internal-format
+msgid "edge %s->%s has no corresponding call_stmt"
+msgstr ""
+
+#: cgraph.cc:3916
+#, gcc-internal-format, gfc-internal-format
+msgid "an indirect edge from %s has no corresponding call_stmt"
+msgstr ""
+
+#: cgraph.cc:3935 cgraph.cc:3948
+#, gcc-internal-format
+msgid "missing origin for a node in a nested list"
+msgstr ""
+
+#: cgraph.cc:3940
+#, gcc-internal-format
+msgid "origin points to a different parent"
+msgstr ""
+
+#: cgraph.cc:3956
+#, gcc-internal-format
+msgid "verify_cgraph_node failed"
+msgstr ""
+
+#: cgraph.cc:4078 varpool.cc:304
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: section %s.%d is missing"
+msgstr ""
+
+#: cgraphunit.cc:755
+#, gcc-internal-format
+msgid "duplicate definition of a symbol version"
+msgstr ""
+
+#: cgraphunit.cc:757
+#, gcc-internal-format
+msgid "same version was previously defined here"
+msgstr ""
+
+#: cgraphunit.cc:763
+#, gcc-internal-format
+msgid "symbol needs to be defined to have a version"
+msgstr ""
+
+#: cgraphunit.cc:769
+#, gcc-internal-format
+msgid "common symbol cannot be versioned"
+msgstr ""
+
+#: cgraphunit.cc:775
+#, gcc-internal-format
+msgid "comdat symbol cannot be versioned"
+msgstr ""
+
+#: cgraphunit.cc:781
+#, gcc-internal-format
+msgid "%<weakref%> cannot be versioned"
+msgstr ""
+
+#: cgraphunit.cc:787
+#, gcc-internal-format
+msgid "versioned symbol must be public"
+msgstr ""
+
+#: cgraphunit.cc:793
+#, gcc-internal-format
+msgid "versioned symbol must have default visibility"
+msgstr ""
+
+#: cgraphunit.cc:826
+#, gcc-internal-format
+msgid "%<weakref%> attribute should be accompanied with an %<alias%> attribute"
+msgstr ""
+
+#: cgraphunit.cc:881
+#, gcc-internal-format
+msgid "%<flatten%> attribute is ignored on aliases"
+msgstr ""
+
+#: cgraphunit.cc:889 cgraphunit.cc:941
+#, gcc-internal-format
+msgid "%<externally_visible%> attribute have effect only on public objects"
+msgstr ""
+
+#: cgraphunit.cc:900
+#, gcc-internal-format
+msgid "%<weakref%> attribute ignored because function is defined"
+msgstr ""
+
+#: cgraphunit.cc:915
+#, gcc-internal-format
+msgid "%<alias%> attribute ignored because function is defined"
+msgstr ""
+
+#: cgraphunit.cc:923
+#, gcc-internal-format
+msgid "%<always_inline%> function might not be inlinable unless also declared %<inline%>"
+msgstr ""
+
+#: cgraphunit.cc:949
+#, gcc-internal-format
+msgid "%<weakref%> attribute ignored because variable is initialized"
+msgstr ""
+
+#. include_self=
+#. TODO: Add OPT_Wundefined-inline.
+#: cgraphunit.cc:1098 c/c-decl.cc:13377
+#, gcc-internal-format
+msgid "%q+F used but never defined"
+msgstr ""
+
+#: cgraphunit.cc:1100 c/c-decl.cc:13387
+#, gcc-internal-format
+msgid "%q+F declared %<static%> but never defined"
+msgstr ""
+
+#: cgraphunit.cc:1144
+#, gcc-internal-format
+msgid "%qD defined but not used"
+msgstr ""
+
+#: cgraphunit.cc:1479
+#, gcc-internal-format
+msgid "%<ifunc%> resolver for %qD must return %qT"
+msgstr ""
+
+#: cgraphunit.cc:1482 cgraphunit.cc:1505
+#, gcc-internal-format
+msgid "resolver indirect function declared here"
+msgstr ""
+
+#: cgraphunit.cc:1502
+#, gcc-internal-format
+msgid "%<ifunc%> resolver for %qD should return %qT"
+msgstr ""
+
+#: cgraphunit.cc:1512
+#, gcc-internal-format
+msgid "%qD alias between functions of incompatible types %qT and %qT"
+msgstr ""
+
+#: cgraphunit.cc:1515 cgraphunit.cc:1597
+#, gcc-internal-format
+msgid "aliased declaration here"
+msgstr ""
+
+#: cgraphunit.cc:1553 c-family/c-pragma.cc:347
+#, gcc-internal-format
+msgid "%q+D aliased to undefined symbol %qE"
+msgstr ""
+
+#: cgraphunit.cc:1569
+#, gcc-internal-format
+msgid "%q+D aliased to external symbol %qE"
+msgstr ""
+
+#: cgraphunit.cc:1594
+#, gcc-internal-format
+msgid "%q+D alias between function and variable is not supported"
+msgstr ""
+
+#: cgraphunit.cc:1668
+#, gcc-internal-format
+msgid "failed to reclaim unneeded function"
+msgstr ""
+
+#: cgraphunit.cc:1696
+#, gcc-internal-format
+msgid "failed to reclaim unneeded function in same comdat group"
+msgstr ""
+
+#: cgraphunit.cc:1872
+#, gcc-internal-format
+msgid "size of return value of %q+D is %u bytes"
+msgstr ""
+
+#: cgraphunit.cc:1876
+#, gcc-internal-format
+msgid "size of return value of %q+D is larger than %wu bytes"
+msgstr ""
+
+#: cgraphunit.cc:2440
+#, gcc-internal-format
+msgid "nodes with unreleased memory found"
+msgstr ""
+
+#: collect-utils.cc:106
+#, gcc-internal-format
+msgid "cannot get program status: %m"
+msgstr ""
+
+#: collect-utils.cc:120
+#, gcc-internal-format, gfc-internal-format
+msgid "%s terminated with signal %d [%s]%s"
+msgstr ""
+
+#: collect-utils.cc:136
+#, gcc-internal-format, gfc-internal-format
+msgid "%s returned %d exit status"
+msgstr ""
+
+#: collect-utils.cc:175
+#, gcc-internal-format, gfc-internal-format
+msgid "could not open response file %s"
+msgstr ""
+
+#: collect-utils.cc:181
+#, gcc-internal-format, gfc-internal-format
+msgid "could not write to response file %s"
+msgstr ""
+
+#: collect-utils.cc:187
+#, gcc-internal-format, gfc-internal-format
+msgid "could not close response file %s"
+msgstr ""
+
+#: collect-utils.cc:221
+#, gcc-internal-format
+msgid "cannot find %qs"
+msgstr ""
+
+#: collect-utils.cc:225 collect2.cc:2389 collect2.cc:2559 gcc.cc:3419
+#: gcc.cc:7825
+#, gcc-internal-format
+msgid "%<pex_init%> failed: %m"
+msgstr ""
+
+#: collect-utils.cc:234 collect2.cc:2398 collect2.cc:2567 gcc.cc:2703
+#, gcc-internal-format
+msgid "%s: %m"
+msgstr "%s: %m"
+
+#: collect2.cc:613
+#, gcc-internal-format
+msgid "environment variable %<COLLECT_LTO_WRAPPER%> must be set"
+msgstr ""
+
+#: collect2.cc:756
+#, gcc-internal-format, gfc-internal-format
+msgid "ld returned %d exit status"
+msgstr ""
+
+#: collect2.cc:916 gcc.cc:8345 config/nvptx/mkoffload.cc:646
+#, gcc-internal-format
+msgid "atexit failed"
+msgstr ""
+
+#: collect2.cc:1046
+#, gcc-internal-format
+msgid "no arguments"
+msgstr ""
+
+#: collect2.cc:1287 opts.cc:1192
+#, gcc-internal-format
+msgid "LTO support has not been enabled in this configuration"
+msgstr ""
+
+#: collect2.cc:1328 graph.cc:55 lto-wrapper.cc:1724 lto-wrapper.cc:1780
+#: toplev.cc:1520 objc/objc-act.cc:462
+#, gcc-internal-format
+msgid "cannot open %s: %m"
+msgstr ""
+
+#: collect2.cc:1448
+#, gcc-internal-format
+msgid "unknown demangling style %qs"
+msgstr ""
+
+#: collect2.cc:1550 collect2.cc:1728 collect2.cc:1768
+#, gcc-internal-format
+msgid "fopen %s: %m"
+msgstr ""
+
+#: collect2.cc:1553 collect2.cc:1733 collect2.cc:1771
+#, gcc-internal-format
+msgid "fclose %s: %m"
+msgstr ""
+
+#: collect2.cc:2323 lto-wrapper.cc:1219 lto-wrapper.cc:1234
+#: lto/lto-object.cc:148 lto/lto-object.cc:182 lto/lto-object.cc:279
+#: lto/lto-object.cc:336 lto/lto-object.cc:360
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: %s"
+msgstr ""
+
+#: collect2.cc:2363
+#, gcc-internal-format
+msgid "cannot find %<nm%>"
+msgstr ""
+
+#: collect2.cc:2411
+#, gcc-internal-format
+msgid "cannot open nm output: %m"
+msgstr ""
+
+#: collect2.cc:2466
+#, gcc-internal-format, gfc-internal-format
+msgid "init function found in object %s"
+msgstr ""
+
+#: collect2.cc:2477
+#, gcc-internal-format, gfc-internal-format
+msgid "fini function found in object %s"
+msgstr ""
+
+#: collect2.cc:2534
+#, gcc-internal-format
+msgid "cannot find %<ldd%>"
+msgstr ""
+
+#: collect2.cc:2580
+#, gcc-internal-format
+msgid "cannot open ldd output: %m"
+msgstr ""
+
+#: collect2.cc:2598
+#, gcc-internal-format, gfc-internal-format
+msgid "dynamic dependency %s not found"
+msgstr ""
+
+#: collect2.cc:2610
+#, gcc-internal-format
+msgid "unable to open dynamic dependency %qs"
+msgstr ""
+
+#: collect2.cc:2762
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: not a COFF file"
+msgstr ""
+
+#: collect2.cc:2921
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: cannot open as COFF file"
+msgstr ""
+
+#: collect2.cc:2980
+#, gcc-internal-format, gfc-internal-format
+msgid "library lib%s not found"
+msgstr ""
+
+#: convert.cc:98
+#, gcc-internal-format
+msgid "cannot convert to a pointer type"
+msgstr ""
+
+#: convert.cc:334
+#, gcc-internal-format
+msgid "pointer value used where a floating-point was expected"
+msgstr ""
+
+#: convert.cc:338
+#, gcc-internal-format
+msgid "vector value used where a floating-point was expected"
+msgstr ""
+
+#: convert.cc:342
+#, gcc-internal-format
+msgid "aggregate value used where a floating-point was expected"
+msgstr ""
+
+#: convert.cc:485
+#, gcc-internal-format
+msgid "conversion to incomplete type"
+msgstr ""
+
+#: convert.cc:959
+#, gcc-internal-format
+msgid "cannot convert a vector of type %qT to type %qT which has different size"
+msgstr ""
+
+#: convert.cc:967
+#, gcc-internal-format
+msgid "aggregate value used where an integer was expected"
+msgstr ""
+
+#: convert.cc:1061
+#, gcc-internal-format
+msgid "pointer value used where a complex was expected"
+msgstr ""
+
+#: convert.cc:1065
+#, gcc-internal-format
+msgid "aggregate value used where a complex was expected"
+msgstr ""
+
+#: convert.cc:1102
+#, gcc-internal-format
+msgid "cannot convert a value of type %qT to vector type %qT which has different size"
+msgstr ""
+
+#: convert.cc:1110
+#, gcc-internal-format
+msgid "cannot convert value to a vector"
+msgstr ""
+
+#: convert.cc:1149
+#, gcc-internal-format
+msgid "aggregate value used where a fixed-point was expected"
+msgstr ""
+
+#: coverage.cc:192
+#, gcc-internal-format
+msgid "%qs is not a gcov data file"
+msgstr ""
+
+#: coverage.cc:203
+#, gcc-internal-format
+msgid "%qs is version %q.*s, expected version %q.*s"
+msgstr ""
+
+#: coverage.cc:267
+#, gcc-internal-format, gfc-internal-format
+msgid "profile data for function %u is corrupted"
+msgstr ""
+
+#: coverage.cc:268
+#, gcc-internal-format
+msgid "checksum is (%x,%x) instead of (%x,%x)"
+msgstr ""
+
+#: coverage.cc:283
+#, gcc-internal-format
+msgid "%qs has overflowed"
+msgstr ""
+
+#: coverage.cc:284
+#, gcc-internal-format
+msgid "%qs is corrupted"
+msgstr "%qs დაზიანებულია"
+
+#: coverage.cc:311
+#, gcc-internal-format
+msgid "%qs profile count data file not found"
+msgstr ""
+
+#: coverage.cc:340
+#, gcc-internal-format
+msgid "profile for function %qD not found in profile data"
+msgstr ""
+
+#: coverage.cc:360
+#, gcc-internal-format
+msgid "number of counters in profile data for function %qD does not match its profile data (counter %qs, expected %i and have %i)"
+msgstr ""
+
+#: coverage.cc:369
+#, gcc-internal-format
+msgid "the control flow of function %qD does not match its profile data (counter %qs)"
+msgstr ""
+
+#: coverage.cc:388
+#, gcc-internal-format
+msgid "execution counts estimated\n"
+msgstr ""
+
+#: coverage.cc:389
+#, gcc-internal-format
+msgid "execution counts assumed to be zero\n"
+msgstr ""
+
+#: coverage.cc:402
+#, gcc-internal-format
+msgid "source locations for function %qD have changed, the profile data may be out of date"
+msgstr ""
+
+#: coverage.cc:666
+#, gcc-internal-format
+msgid "function starts on a higher line number than it ends"
+msgstr ""
+
+#: coverage.cc:688
+#, gcc-internal-format
+msgid "error writing %qs"
+msgstr "%qs-ის ჩაწერის შეცდომა"
+
+#: coverage.cc:1288
+#, gcc-internal-format
+msgid "filename %qs does not start with profile prefix %qs"
+msgstr ""
+
+#: coverage.cc:1333
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot open %s"
+msgstr ""
+
+#: data-streamer-in.cc:55
+#, gcc-internal-format
+msgid "bytecode stream: string too long for the string table"
+msgstr ""
+
+#: data-streamer-in.cc:86 data-streamer-in.cc:115
+#, gcc-internal-format
+msgid "bytecode stream: found non-null terminated string"
+msgstr ""
+
+#: dbgcnt.cc:140
+#, gcc-internal-format
+msgid "Interval overlap of %<-fdbg-cnt=%s%>: [%u, %u] and [%u, %u]"
+msgstr ""
+
+#: dbgcnt.cc:157
+#, gcc-internal-format
+msgid "%<-fdbg-cnt=%s:%d-%d%> has smaller upper limit than the lower"
+msgstr ""
+
+#: dbgcnt.cc:169
+#, gcc-internal-format
+msgid "cannot find a valid counter name %qs of %<-fdbg-cnt=%> option"
+msgstr ""
+
+#: dbgcnt.cc:238
+#, gcc-internal-format
+msgid "counter name"
+msgstr "მთვლელის სახელ"
+
+#: dbgcnt.cc:239
+#, gcc-internal-format
+msgid "counter value"
+msgstr "მთვლელის მნიშვნელობა"
+
+#: dbgcnt.cc:239
+#, gcc-internal-format
+msgid "closed intervals"
+msgstr "დახურული ინტერვალები"
+
+#: diagnostic.cc:2659
+#, gcc-internal-format
+msgid "debug path"
+msgstr ""
+
+#: dominance.cc:1180
+#, gcc-internal-format, gfc-internal-format
+msgid "dominator of %d status unknown"
+msgstr ""
+
+#: dominance.cc:1188
+#, gcc-internal-format, gfc-internal-format
+msgid "dominator of %d should be %d, not %d"
+msgstr ""
+
+#: dumpfile.cc:381
+#, gcc-internal-format
+msgid "could not open dump file %qs: %m"
+msgstr ""
+
+#: dumpfile.cc:1841
+#, gcc-internal-format
+msgid "ignoring unknown option %q.*s"
+msgstr ""
+
+#: dumpfile.cc:1923
+#, gcc-internal-format
+msgid "unrecognized command-line option %<-fdump-%s%>; did you mean %<-fdump-%s%>?"
+msgstr ""
+
+#: dumpfile.cc:1926
+#, gcc-internal-format
+msgid "unrecognized command-line option %<-fdump-%s%>"
+msgstr ""
+
+#: dumpfile.cc:1999
+#, gcc-internal-format
+msgid "unknown option %q.*s in %<-fopt-info-%s%>"
+msgstr ""
+
+#: dumpfile.cc:2031
+#, gcc-internal-format
+msgid "ignoring possibly conflicting option %<-fopt-info-%s%>"
+msgstr ""
+
+#: dwarf2out.cc:1138
+#, gcc-internal-format
+msgid "multiple EH personalities are supported only with assemblers supporting %<.cfi_personality%> directive"
+msgstr ""
+
+#: dwarf2out.cc:11196
+#, gcc-internal-format
+msgid "%<-gdwarf-6%> is output as version 5 with incompatibilities"
+msgstr ""
+
+#: dwarf2out.cc:15078
+#, gcc-internal-format, gfc-internal-format
+msgid "non-delegitimized UNSPEC %s (%d) found in variable location"
+msgstr ""
+
+#: emit-rtl.cc:3042
+#, gcc-internal-format
+msgid "invalid rtl sharing found in the insn"
+msgstr ""
+
+#: emit-rtl.cc:3044
+#, gcc-internal-format
+msgid "shared rtx"
+msgstr "გაზიარებული rtx"
+
+#: emit-rtl.cc:3046
+#, gcc-internal-format
+msgid "internal consistency failure"
+msgstr ""
+
+#: emit-rtl.cc:4146
+#, gcc-internal-format
+msgid "ICE: %<emit_insn%> used where %<emit_jump_insn%> needed:"
+msgstr ""
+
+#: errors.cc:133
+#, gcc-internal-format, gfc-internal-format
+msgid "abort in %s, at %s:%d"
+msgstr ""
+
+#: except.cc:2166
+#, gcc-internal-format
+msgid "argument of %<__builtin_eh_return_regno%> must be constant"
+msgstr ""
+
+#: except.cc:2312
+#, gcc-internal-format
+msgid "%<__builtin_eh_return%> not supported on this target"
+msgstr ""
+
+#: except.cc:3448 except.cc:3473
+#, gcc-internal-format
+msgid "%<region_array%> is corrupted for region %i"
+msgstr ""
+
+#: except.cc:3461 except.cc:3492
+#, gcc-internal-format
+msgid "%<lp_array%> is corrupted for lp %i"
+msgstr ""
+
+#: except.cc:3478
+#, gcc-internal-format, gfc-internal-format
+msgid "outer block of region %i is wrong"
+msgstr ""
+
+#: except.cc:3483
+#, gcc-internal-format, gfc-internal-format
+msgid "negative nesting depth of region %i"
+msgstr ""
+
+#: except.cc:3497
+#, gcc-internal-format, gfc-internal-format
+msgid "region of lp %i is wrong"
+msgstr ""
+
+#: except.cc:3524
+#, gcc-internal-format, gfc-internal-format
+msgid "tree list ends on depth %i"
+msgstr ""
+
+#: except.cc:3529
+#, gcc-internal-format
+msgid "%<region_array%> does not match %<region_tree%>"
+msgstr ""
+
+#: except.cc:3534
+#, gcc-internal-format
+msgid "%<lp_array%> does not match %<region_tree%>"
+msgstr ""
+
+#: except.cc:3541 tree.cc:14434 value-prof.cc:529
+#, gcc-internal-format
+msgid "%qs failed"
+msgstr "%qs ჩავარდა"
+
+#: explow.cc:1563
+#, gcc-internal-format
+msgid "stack limits not supported on this target"
+msgstr ""
+
+#: expmed.cc:360
+#, gcc-internal-format
+msgid "reverse scalar storage order"
+msgstr ""
+
+#: expmed.cc:377
+#, gcc-internal-format
+msgid "reverse floating-point scalar storage order"
+msgstr ""
+
+#: expmed.cc:419
+#, gcc-internal-format, gfc-internal-format
+msgid "reverse storage order for %smode"
+msgstr ""
+
+#: expmed.cc:672
+#, gcc-internal-format
+msgid "write of %wu-bit data outside the bound of destination object, data truncated into %wu-bit"
+msgstr ""
+
+#: expr.cc:12338
+#, gcc-internal-format
+msgid "call to %qs declared with attribute error: %s"
+msgstr ""
+
+#: expr.cc:12352
+#, gcc-internal-format
+msgid "call to %qs declared with attribute warning: %s"
+msgstr ""
+
+#: expr.cc:13399
+#, gcc-internal-format
+msgid "assuming signed overflow does not occur when simplifying %<X - Y %s 0%> to %<X %s Y%>"
+msgstr ""
+
+#: file-prefix-map.cc:51
+#, gcc-internal-format
+msgid "invalid argument %qs to %qs"
+msgstr ""
+
+#: final.cc:1769
+#, gcc-internal-format
+msgid "the frame size of %wu bytes is larger than %wu bytes"
+msgstr ""
+
+#: final.cc:4391 toplev.cc:1400 tree-cfgcleanup.cc:1540
+#, gcc-internal-format
+msgid "could not open final insn dump file %qs: %m"
+msgstr ""
+
+#: final.cc:4460 tree-cfgcleanup.cc:1557
+#, gcc-internal-format
+msgid "could not close final insn dump file %qs: %m"
+msgstr ""
+
+#: fixed-value.cc:128
+#, gcc-internal-format
+msgid "large fixed-point constant implicitly truncated to fixed-point type"
+msgstr ""
+
+#: fold-const.cc:4882 fold-const.cc:4892
+#, gcc-internal-format, gfc-internal-format
+msgid "comparison is always %d due to width of bit-field"
+msgstr ""
+
+#: fold-const.cc:6277 tree-ssa-reassoc.cc:2885 tree-ssa-reassoc.cc:3970
+#, gcc-internal-format
+msgid "assuming signed overflow does not occur when simplifying range test"
+msgstr ""
+
+#: fold-const.cc:6742 fold-const.cc:6758
+#, gcc-internal-format, gfc-internal-format
+msgid "comparison is always %d"
+msgstr ""
+
+#: fold-const.cc:6906
+#, gcc-internal-format
+msgid "%<or%> of unmatched not-equal tests is always 1"
+msgstr ""
+
+#: fold-const.cc:6911
+#, gcc-internal-format
+msgid "%<and%> of mutually exclusive equal-tests is always 0"
+msgstr ""
+
+#: fold-const.cc:10128
+#, gcc-internal-format
+msgid "assuming signed overflow does not occur when reducing constant in comparison"
+msgstr ""
+
+#: fold-const.cc:10535
+#, gcc-internal-format
+msgid "assuming signed overflow does not occur when combining constants around a comparison"
+msgstr ""
+
+#: fold-const.cc:13947
+#, gcc-internal-format
+msgid "fold check: original tree changed by fold"
+msgstr ""
+
+#: function.cc:255
+#, gcc-internal-format
+msgid "total size of local objects %wu exceeds maximum %wu"
+msgstr ""
+
+#: function.cc:259
+#, gcc-internal-format
+msgid "total size of local objects exceeds maximum %wu"
+msgstr ""
+
+#: function.cc:1789 gimplify.cc:7018 gimplify.cc:7180
+#, gcc-internal-format
+msgid "impossible constraint in %<asm%>"
+msgstr ""
+
+#: function.cc:4290
+#, gcc-internal-format
+msgid "variable %q+D might be clobbered by %<longjmp%> or %<vfork%>"
+msgstr ""
+
+#: function.cc:4311
+#, gcc-internal-format
+msgid "argument %q+D might be clobbered by %<longjmp%> or %<vfork%>"
+msgstr ""
+
+#: function.cc:4978
+#, gcc-internal-format
+msgid "function returns an aggregate"
+msgstr "ფუნქცია აგრეგატს აბრუნებს"
+
+#: gcc.cc:2213
+#, gcc-internal-format
+msgid "cannot open nested response file"
+msgstr ""
+
+#: gcc.cc:2250
+#, gcc-internal-format
+msgid "cannot close nonexistent response file"
+msgstr ""
+
+#: gcc.cc:2273
+#, gcc-internal-format, gfc-internal-format
+msgid "could not open temporary response file %s"
+msgstr ""
+
+#: gcc.cc:2280
+#, gcc-internal-format, gfc-internal-format
+msgid "could not write to temporary response file %s"
+msgstr ""
+
+#: gcc.cc:2286
+#, gcc-internal-format, gfc-internal-format
+msgid "could not close temporary response file %s"
+msgstr ""
+
+#. This leaves DESC open, but the OS will save us.
+#: gcc.cc:2318
+#, gcc-internal-format
+msgid "cannot read spec file %qs: %m"
+msgstr ""
+
+#: gcc.cc:2412 gcc.cc:2432
+msgid "specs %%include syntax malformed after %td characters"
+msgstr ""
+
+#: gcc.cc:2458 gcc.cc:2467 gcc.cc:2477 gcc.cc:2487
+msgid "specs %%rename syntax malformed after %td characters"
+msgstr ""
+
+#: gcc.cc:2497
+#, gcc-internal-format, gfc-internal-format
+msgid "specs %s spec was not found to be renamed"
+msgstr ""
+
+#: gcc.cc:2505
+#, gcc-internal-format
+msgid "%s: attempt to rename spec %qs to already defined spec %qs"
+msgstr ""
+
+#: gcc.cc:2527
+msgid "specs unknown %% command after %td characters"
+msgstr ""
+
+#: gcc.cc:2539 gcc.cc:2553
+msgid "specs file malformed after %td characters"
+msgstr ""
+
+#: gcc.cc:2608
+#, gcc-internal-format
+msgid "spec file has no spec for linking"
+msgstr ""
+
+#: gcc.cc:3172 gcc.cc:3209
+#, gcc-internal-format
+msgid "system path %qs is not absolute"
+msgstr ""
+
+#: gcc.cc:3298
+#, gcc-internal-format
+msgid "%<-pipe%> not supported"
+msgstr ""
+
+#: gcc.cc:3436 gcc.cc:7834
+#, gcc-internal-format
+msgid "cannot execute %qs: %s: %m"
+msgstr ""
+
+#: gcc.cc:3437 gcc.cc:7835
+#, gcc-internal-format
+msgid "cannot execute %qs: %s"
+msgstr "%qs-ის შესრულება შეუძლებელია: %s"
+
+#: gcc.cc:3456
+#, gcc-internal-format
+msgid "failed to get exit status: %m"
+msgstr "გამოსვლის სტატუსის მიღება ჩავარდა: %m"
+
+#: gcc.cc:3462
+#, gcc-internal-format
+msgid "failed to get process times: %m"
+msgstr "პროცესის დროების მიღება ჩავარდა: %m"
+
+#. The inferior failed to catch the signal.
+#: gcc.cc:3488 gcc.cc:3512
+#, gcc-internal-format, gfc-internal-format
+msgid "%s signal terminated program %s"
+msgstr ""
+
+#: gcc.cc:3956 opts-common.cc:1612 opts-common.cc:1644
+#, gcc-internal-format
+msgid "unrecognized command-line option %qs"
+msgstr ""
+
+#: gcc.cc:3998
+#, gcc-internal-format
+msgid "GCC is not configured to support %qs as %<-foffload=%> argument"
+msgstr ""
+
+#: gcc.cc:4005
+#, gcc-internal-format
+msgid "valid %<-foffload=%> arguments are: %s; did you mean %qs?"
+msgstr ""
+
+#: gcc.cc:4008
+#, gcc-internal-format
+msgid "valid %<-foffload=%> arguments are: %s"
+msgstr ""
+
+#: gcc.cc:4028
+#, gcc-internal-format
+msgid "%<=%>options missing after %<-foffload-options=%>target"
+msgstr ""
+
+#: gcc.cc:4477
+#, gcc-internal-format
+msgid "%qs is an unknown %<-save-temps%> option"
+msgstr ""
+
+#: gcc.cc:5024
+#, gcc-internal-format
+msgid "linker hardening options not enabled by %<-fhardened%> because other link options were specified on the command line"
+msgstr ""
+
+#: gcc.cc:5048 toplev.cc:714
+#, gcc-internal-format
+msgid "input file %qs is the same as output file"
+msgstr ""
+
+#: gcc.cc:5053
+#, gcc-internal-format
+msgid "output filename may not be empty"
+msgstr ""
+
+#: gcc.cc:5438
+#, gcc-internal-format
+msgid "%<-pipe%> ignored because %<-save-temps%> specified"
+msgstr ""
+
+#: gcc.cc:5526
+#, gcc-internal-format
+msgid "%<-x %s%> after last input file has no effect"
+msgstr ""
+
+#: gcc.cc:5729
+#, gcc-internal-format
+msgid "unable to locate default linker script %qs in the library search paths"
+msgstr ""
+
+#: gcc.cc:5936
+#, gcc-internal-format
+msgid "switch %qs does not start with %<-%>"
+msgstr ""
+
+#: gcc.cc:5940
+#, gcc-internal-format
+msgid "spec-generated switch is just %<-%>"
+msgstr ""
+
+#: gcc.cc:6172
+#, gcc-internal-format
+msgid "spec %qs invalid"
+msgstr ""
+
+#: gcc.cc:6349
+#, gcc-internal-format
+msgid "spec %qs has invalid %<%%0%c%>"
+msgstr ""
+
+#: gcc.cc:6641
+#, gcc-internal-format
+msgid "spec %qs has invalid %<%%W%c%>"
+msgstr ""
+
+#: gcc.cc:6657
+#, gcc-internal-format
+msgid "spec %qs has invalid %<%%@%c%>"
+msgstr ""
+
+#: gcc.cc:6676
+#, gcc-internal-format
+msgid "spec %qs has invalid %<%%x%c%>"
+msgstr ""
+
+#. Catch the case where a spec string contains something like
+#. '%{foo:%*}'.  i.e. there is no * in the pattern on the left
+#. hand side of the :.
+#: gcc.cc:6887
+#, gcc-internal-format
+msgid "spec failure: %<%%*%> has not been initialized by pattern match"
+msgstr ""
+
+#: gcc.cc:6938
+#, gcc-internal-format
+msgid "spec failure: unrecognized spec option %qc"
+msgstr ""
+
+#: gcc.cc:7004
+#, gcc-internal-format
+msgid "unknown spec function %qs"
+msgstr ""
+
+#: gcc.cc:7034
+#, gcc-internal-format
+msgid "error in arguments to spec function %qs"
+msgstr ""
+
+#: gcc.cc:7093
+#, gcc-internal-format
+msgid "malformed spec function name"
+msgstr ""
+
+#. )
+#: gcc.cc:7096
+#, gcc-internal-format
+msgid "no arguments for spec function"
+msgstr ""
+
+#: gcc.cc:7115
+#, gcc-internal-format
+msgid "malformed spec function arguments"
+msgstr ""
+
+#: gcc.cc:7294
+#, gcc-internal-format
+msgid "braced spec %qs ends in escape"
+msgstr ""
+
+#: gcc.cc:7429
+#, gcc-internal-format
+msgid "braced spec %qs is invalid at %qc"
+msgstr ""
+
+#: gcc.cc:7524
+#, gcc-internal-format
+msgid "braced spec body %qs is invalid"
+msgstr ""
+
+#: gcc.cc:8133
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: could not determine length of compare-debug file %s"
+msgstr ""
+
+#: gcc.cc:8144
+#, gcc-internal-format
+msgid "%s: %<-fcompare-debug%> failure (length)"
+msgstr ""
+
+#: gcc.cc:8154 gcc.cc:8195
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: could not open compare-debug file %s"
+msgstr ""
+
+#: gcc.cc:8174 gcc.cc:8211
+#, gcc-internal-format
+msgid "%s: %<-fcompare-debug%> failure"
+msgstr ""
+
+#: gcc.cc:8515
+#, gcc-internal-format
+msgid "spec failure: more than one argument to %<SYSROOT_SUFFIX_SPEC%>"
+msgstr ""
+
+#: gcc.cc:8540
+#, gcc-internal-format
+msgid "spec failure: more than one argument to %<SYSROOT_HEADERS_SUFFIX_SPEC%>"
+msgstr ""
+
+#: gcc.cc:8747
+#, gcc-internal-format
+msgid "unrecognized command-line option %<-%s%>; did you mean %<-%s%>?"
+msgstr ""
+
+#: gcc.cc:8751
+#, gcc-internal-format
+msgid "unrecognized command-line option %<-%s%>"
+msgstr ""
+
+#: gcc.cc:8877
+#, gcc-internal-format
+msgid "not configured with sysroot headers suffix"
+msgstr ""
+
+#: gcc.cc:8938
+#, gcc-internal-format
+msgid "no input files"
+msgstr "შეყვანის ფაილების გარეშე"
+
+#: gcc.cc:8989
+#, gcc-internal-format
+msgid "cannot specify %<-o%> with %<-c%>, %<-S%> or %<-E%> with multiple files"
+msgstr ""
+
+#: gcc.cc:9031
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: %s compiler not installed on this system"
+msgstr ""
+
+#: gcc.cc:9056
+#, gcc-internal-format
+msgid "recompiling with %<-fcompare-debug%>"
+msgstr ""
+
+#: gcc.cc:9072
+#, gcc-internal-format
+msgid "during %<-fcompare-debug%> recompilation"
+msgstr ""
+
+#: gcc.cc:9081
+#, gcc-internal-format
+msgid "comparing final insns dumps"
+msgstr ""
+
+#: gcc.cc:9234
+#, gcc-internal-format
+msgid "%<-fuse-linker-plugin%>, but %s not found"
+msgstr ""
+
+#: gcc.cc:9268
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: linker input file unused because linking not done"
+msgstr ""
+
+#. This is can be an indication the user specifed an errorneous
+#. separated option value, (or used the wrong prefix for an
+#. option).
+#: gcc.cc:9274
+#, gcc-internal-format
+msgid "%s: linker input file not found: %m"
+msgstr ""
+
+#: gcc.cc:9341 c-family/c-opts.cc:820
+#, gcc-internal-format
+msgid "cannot use %<-%> as input filename for a precompiled header"
+msgstr ""
+
+#: gcc.cc:9347
+#, gcc-internal-format, gfc-internal-format
+msgid "language %s not recognized"
+msgstr ""
+
+#: gcc.cc:9590
+#, gcc-internal-format
+msgid "multilib spec %qs is invalid"
+msgstr ""
+
+#: gcc.cc:9792
+#, gcc-internal-format
+msgid "multilib exclusions %qs is invalid"
+msgstr ""
+
+#: gcc.cc:9856 common/config/riscv/riscv-common.cc:2130
+#, gcc-internal-format
+msgid "multilib select %qs %qs is invalid"
+msgstr ""
+
+#: gcc.cc:10030
+#, gcc-internal-format
+msgid "multilib select %qs is invalid"
+msgstr ""
+
+#: gcc.cc:10070
+#, gcc-internal-format
+msgid "multilib exclusion %qs is invalid"
+msgstr ""
+
+#: gcc.cc:10321
+#, gcc-internal-format
+msgid "environment variable %qs not defined"
+msgstr ""
+
+#: gcc.cc:10489 gcc.cc:10494
+#, gcc-internal-format
+msgid "invalid version number %qs"
+msgstr ""
+
+#: gcc.cc:10537
+#, gcc-internal-format, gfc-internal-format
+msgid "too few arguments to %%:version-compare"
+msgstr ""
+
+#: gcc.cc:10543
+#, gcc-internal-format, gfc-internal-format
+msgid "too many arguments to %%:version-compare"
+msgstr ""
+
+#: gcc.cc:10585
+#, gcc-internal-format
+msgid "unknown operator %qs in %%:version-compare"
+msgstr ""
+
+#: gcc.cc:10709
+#, gcc-internal-format, gfc-internal-format
+msgid "too many arguments to %%:compare-debug-dump-opt"
+msgstr ""
+
+#: gcc.cc:10777
+#, gcc-internal-format, gfc-internal-format
+msgid "too many arguments to %%:compare-debug-self-opt"
+msgstr ""
+
+#: gcc.cc:10864
+#, gcc-internal-format, gfc-internal-format
+msgid "too many arguments for %%:dumps"
+msgstr ""
+
+#: gcc.cc:10968
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong number of arguments to %%:debug-level-gt"
+msgstr ""
+
+#: gcc.cc:10989
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong number of arguments to %%:dwarf-version-gt"
+msgstr ""
+
+#: gcov-tool.cc:75
+#, gcc-internal-format, gfc-internal-format
+msgid "error in removing %s"
+msgstr ""
+
+#: gcov-tool.cc:106
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot make directory %s"
+msgstr ""
+
+#: gcov-tool.cc:114
+#, gcc-internal-format
+msgid "Cannot get current directory name"
+msgstr "მიმდინარე საქაღალდის სახელის მიღების შეცდომა"
+
+#: gcov-tool.cc:118 gcov-tool.cc:132
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot change directory to %s"
+msgstr ""
+
+#: gcov-tool.cc:125
+#, gcc-internal-format, gfc-internal-format
+msgid "output file %s already exists in folder %s"
+msgstr ""
+
+#: gcov-tool.cc:217 gcov-tool.cc:285
+#, gcc-internal-format
+msgid "weights need to be non-negative"
+msgstr ""
+
+#: gcov-tool.cc:424
+#, gcc-internal-format
+msgid "scale needs to be non-negative"
+msgstr ""
+
+#: gcse.cc:3995
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: %d basic blocks and %d edges/basic block"
+msgstr ""
+
+#: gcse.cc:4007
+#, gcc-internal-format
+msgid "%s: %d basic blocks and %d registers; increase %<--param max-gcse-memory%> above %wu"
+msgstr ""
+
+#: gencfn-macros.cc:195
+#, gcc-internal-format, gfc-internal-format
+msgid "DEF_INTERNAL_FLT_FN (%s) has no associated built-in functions"
+msgstr ""
+
+#: gencfn-macros.cc:202
+#, gcc-internal-format, gfc-internal-format
+msgid "DEF_INTERNAL_INT_FN (%s) has no associated built-in functions"
+msgstr ""
+
+#: gentarget-def.cc:126
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid prototype for '%s'"
+msgstr ""
+
+#: gentarget-def.cc:131
+#, gcc-internal-format, gfc-internal-format
+msgid "prototype for '%s' has required operands after optional operands"
+msgstr ""
+
+#: gentarget-def.cc:148
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %d of '%s' did not have the expected name"
+msgstr ""
+
+#: gentarget-def.cc:168
+#, gcc-internal-format, gfc-internal-format
+msgid "'%s' must have %d operands (excluding match_dups)"
+msgstr ""
+
+#: gentarget-def.cc:172
+#, gcc-internal-format, gfc-internal-format
+msgid "'%s' must have at least %d operands (excluding match_dups)"
+msgstr ""
+
+#: gentarget-def.cc:176
+#, gcc-internal-format, gfc-internal-format
+msgid "'%s' must have no more than %d operands (excluding match_dups)"
+msgstr ""
+
+#: gentarget-def.cc:276
+#, gcc-internal-format, gfc-internal-format
+msgid "duplicate definition of '%s'"
+msgstr ""
+
+#: ggc-common.cc:431 ggc-common.cc:439 ggc-common.cc:567 ggc-common.cc:585
+#: ggc-common.cc:705 ggc-common.cc:716 ggc-common.cc:731 ggc-page.cc:2503
+#: ggc-page.cc:2534 ggc-page.cc:2541
+#, gcc-internal-format
+msgid "cannot write PCH file: %m"
+msgstr ""
+
+#: ggc-common.cc:549
+#, gcc-internal-format
+msgid "cannot write PCH file: required memory segment unavailable"
+msgstr ""
+
+#: ggc-common.cc:578 config/i386/host-cygwin.cc:57
+#, gcc-internal-format
+msgid "cannot get position in PCH file: %m"
+msgstr ""
+
+#: ggc-common.cc:588
+#, gcc-internal-format
+msgid "cannot write padding to PCH file: %m"
+msgstr ""
+
+#: ggc-common.cc:770 ggc-common.cc:786 ggc-common.cc:789 ggc-common.cc:812
+#: ggc-common.cc:815 ggc-common.cc:819 ggc-common.cc:854 ggc-common.cc:883
+#: ggc-common.cc:891 ggc-common.cc:901 ggc-common.cc:912 ggc-page.cc:2605
+#, gcc-internal-format
+msgid "cannot read PCH file: %m"
+msgstr ""
+
+#: ggc-common.cc:799
+#, gcc-internal-format
+msgid "PCH allocation failure"
+msgstr ""
+
+#: ggc-page.cc:1748
+#, gcc-internal-format
+msgid "open /dev/zero: %m"
+msgstr ""
+
+#: ggc-page.cc:2519 ggc-page.cc:2525
+#, gcc-internal-format
+msgid "cannot write PCH file"
+msgstr ""
+
+#: gimple-array-bounds.cc:282
+#, gcc-internal-format
+msgid "array subscript %E is outside array bounds of %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:301
+#, gcc-internal-format
+msgid "array subscript [%E, %E] is outside array bounds of %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:315
+#, gcc-internal-format
+msgid "array subscript %E is above array bounds of %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:324
+#, gcc-internal-format
+msgid "array subscript %E is below array bounds of %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:399
+#, gcc-internal-format
+msgid "array subscript %E is outside the bounds of an interior zero-length array %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:401
+#, gcc-internal-format
+msgid "array subscript %qE is outside the bounds of an interior zero-length array %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:422
+#, gcc-internal-format
+msgid "trailing array %qT should not be used as a flexible array member"
+msgstr ""
+
+#: gimple-array-bounds.cc:459 gimple-array-bounds.cc:726
+#, gcc-internal-format
+msgid "while referencing %qD"
+msgstr ""
+
+#: gimple-array-bounds.cc:461
+#, gcc-internal-format
+msgid "defined here %qD"
+msgstr ""
+
+#: gimple-array-bounds.cc:582
+#, gcc-internal-format
+msgid "array subscript %wi is outside array bounds of %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:587
+#, gcc-internal-format
+msgid "array subscript [%wi, %wi] is outside array bounds of %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:602
+#, gcc-internal-format
+msgid "array subscript %<%T[%wi]%> is partly outside array bounds of %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:625
+#, gcc-internal-format
+msgid "intermediate array offset %wi is outside array bounds of %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:704
+#, gcc-internal-format
+msgid "array subscript %wi is below array bounds of %qT"
+msgstr ""
+
+#: gimple-array-bounds.cc:718
+#, gcc-internal-format
+msgid "array subscript %wu is above array bounds of %qT"
+msgstr ""
+
+#: gimple-fold.cc:2081 gimple-fold.cc:3133 gimple-ssa-warn-restrict.cc:2080
+#, gcc-internal-format
+msgid "%qD source argument is the same as destination"
+msgstr ""
+
+#: gimple-fold.cc:2147
+#, gcc-internal-format
+msgid "%qD destination unchanged after copying no bytes from a string of length %E"
+msgstr ""
+
+#: gimple-fold.cc:2152
+#, gcc-internal-format
+msgid "%qD destination unchanged after copying no bytes"
+msgstr ""
+
+#: gimple-fold.cc:2527 gimple-ssa-warn-access.cc:859
+#, gcc-internal-format
+msgid "%qD specified bound %E exceeds destination size %E"
+msgstr ""
+
+#: gimple-fold.cc:2546
+#, gcc-internal-format
+msgid "%qD specified bound %E equals source length"
+msgstr ""
+
+#: gimple-fold.cc:4551 gimple-fold.cc:4778
+#, gcc-internal-format
+msgid "flexible array member %qD does not have well defined padding bits for %qs"
+msgstr ""
+
+#: gimple-fold.cc:4727 cp/constexpr.cc:4902
+#, gcc-internal-format
+msgid "PDP11 bit-field handling unsupported in %qs"
+msgstr ""
+
+#: gimple-fold.cc:5009
+#, gcc-internal-format, gfc-internal-format
+msgid "%s not supported for variable length aggregates"
+msgstr ""
+
+#: gimple-fold.cc:5015
+#, gcc-internal-format, gfc-internal-format
+msgid "%s not supported on this target"
+msgstr ""
+
+#: gimple-harden-control-flow.cc:97
+#, gcc-internal-format
+msgid "%qD calls %<setjmp%> or similar, %<-fharden-control-flow-redundancy%> is not supported"
+msgstr ""
+
+#: gimple-harden-control-flow.cc:110
+#, gcc-internal-format
+msgid "%qD receives nonlocal gotos, %<-fharden-control-flow-redundancy%> is not supported"
+msgstr ""
+
+#: gimple-harden-control-flow.cc:121
+#, gcc-internal-format
+msgid "%qD has more than %u blocks, the requested maximum for %<-fharden-control-flow-redundancy%>"
+msgstr ""
+
+#: gimple-ssa-isolate-paths.cc:290
+#, gcc-internal-format
+msgid "potential null pointer dereference"
+msgstr ""
+
+#: gimple-ssa-isolate-paths.cc:330
+#, gcc-internal-format
+msgid "null pointer dereference"
+msgstr ""
+
+#: gimple-ssa-isolate-paths.cc:413
+#, gcc-internal-format
+msgid "function may return address of local variable"
+msgstr ""
+
+#: gimple-ssa-isolate-paths.cc:414 c/c-typeck.cc:11587
+#, gcc-internal-format
+msgid "function returns address of local variable"
+msgstr ""
+
+#: gimple-ssa-isolate-paths.cc:417 gimple-ssa-warn-access.cc:2055
+#: gimple-ssa-warn-access.cc:3713 tree.cc:12481 tree.cc:12518 tree.cc:12559
+#: tree.cc:12592 c/c-parser.cc:20633 c/c-parser.cc:20774 c/c-typeck.cc:3159
+#: c/c-typeck.cc:3254 c/c-typeck.cc:5871 c/c-typeck.cc:11493
+#: c/c-typeck.cc:11510 c/gimple-parser.cc:2574 c/gimple-parser.cc:2582
+#: cp/call.cc:8204 cp/call.cc:10399 cp/class.cc:9399 cp/constexpr.cc:889
+#: cp/constexpr.cc:1316 cp/constexpr.cc:4320 cp/constexpr.cc:5997
+#: cp/constexpr.cc:6368 cp/cvt.cc:1095 cp/cvt.cc:1133 cp/decl.cc:9113
+#: cp/decl2.cc:5890 cp/decl2.cc:5945 cp/method.cc:1234 cp/parser.cc:22475
+#: cp/pt.cc:9189 cp/semantics.cc:2380 cp/semantics.cc:4898 cp/typeck.cc:2139
+#: cp/typeck.cc:2359 cp/typeck.cc:4505 cp/typeck.cc:10690
+#: rust/backend/rust-constexpr.cc:4407 rust/backend/rust-tree.cc:621
+#: rust/backend/rust-tree.cc:3813
+#, gcc-internal-format
+msgid "declared here"
+msgstr "აღწერილია აქ"
+
+#: gimple-ssa-nonnull-compare.cc:102
+#, gcc-internal-format
+msgid "%<nonnull%> argument %qD compared to NULL"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2838 gimple-ssa-sprintf.cc:2958
+#, gcc-internal-format
+msgid "%qE output may be truncated before the last format character"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2840 gimple-ssa-sprintf.cc:2960
+#, gcc-internal-format
+msgid "%qE output truncated before the last format character"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2843 gimple-ssa-sprintf.cc:2963
+#, gcc-internal-format
+msgid "%qE may write a terminating nul past the end of the destination"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2845 gimple-ssa-sprintf.cc:2965
+#, gcc-internal-format
+msgid "%qE writing a terminating nul past the end of the destination"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2855
+#, gcc-internal-format
+msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
+msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:2862
+#, gcc-internal-format
+msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
+msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:2869
+#, gcc-internal-format
+msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
+msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:2880
+#, gcc-internal-format
+msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2883
+#, gcc-internal-format
+msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2885
+#, gcc-internal-format
+msgid "%<%.*s%> directive writing up to %wu bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2897
+#, gcc-internal-format
+msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2900
+#, gcc-internal-format
+msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2903
+#, gcc-internal-format
+msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2912
+#, gcc-internal-format
+msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2915
+#, gcc-internal-format
+msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2918
+#, gcc-internal-format
+msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2927
+#, gcc-internal-format
+msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2930
+#, gcc-internal-format
+msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2932
+#, gcc-internal-format
+msgid "%<%.*s%> directive writing %wu or more bytes into a region of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:2974
+#, gcc-internal-format
+msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
+msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:2981
+#, gcc-internal-format
+msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
+msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:2989
+#, gcc-internal-format
+msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
+msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:3001
+#, gcc-internal-format
+msgid "%<%.*s%> directive output may be truncated writing up to %wu bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3004
+#, gcc-internal-format
+msgid "%<%.*s%> directive output truncated writing up to %wu bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3007
+#, gcc-internal-format
+msgid "%<%.*s%> directive writing up to %wu bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3020
+#, gcc-internal-format
+msgid "%<%.*s%> directive output may be truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3023
+#, gcc-internal-format
+msgid "%<%.*s%> directive output truncated writing likely %wu or more bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3026
+#, gcc-internal-format
+msgid "%<%.*s%> directive writing likely %wu or more bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3036
+#, gcc-internal-format
+msgid "%<%.*s%> directive output may be truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3039
+#, gcc-internal-format
+msgid "%<%.*s%> directive output truncated writing between %wu and %wu bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3042
+#, gcc-internal-format
+msgid "%<%.*s%> directive writing between %wu and %wu bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3051
+#, gcc-internal-format
+msgid "%<%.*s%> directive output may be truncated writing %wu or more bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3054
+#, gcc-internal-format
+msgid "%<%.*s%> directive output truncated writing %wu or more bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3057
+#, gcc-internal-format
+msgid "%<%.*s%> directive writing %wu or more bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3179
+#, gcc-internal-format
+msgid "%<%.*s%> directive argument is null"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3257
+#, gcc-internal-format
+msgid "%<%.*s%> directive output of %wu bytes exceeds minimum required size of 4095"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3263
+#, gcc-internal-format
+msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds minimum required size of 4095"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3270
+#, gcc-internal-format
+msgid "%<%.*s%> directive output between %wu and %wu bytes may exceed minimum required size of 4095"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3300
+#, gcc-internal-format
+msgid "%<%.*s%> directive output of %wu bytes exceeds %<INT_MAX%>"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3306
+#, gcc-internal-format
+msgid "%<%.*s%> directive output between %wu and %wu bytes exceeds %<INT_MAX%>"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3317
+#, gcc-internal-format
+msgid "%<%.*s%> directive output of %wu bytes causes result to exceed %<INT_MAX%>"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3323
+#, gcc-internal-format
+msgid "%<%.*s%> directive output between %wu and %wu bytes causes result to exceed %<INT_MAX%>"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3334
+#, gcc-internal-format
+msgid "%<%.*s%> directive output between %wu and %wu bytes may cause result to exceed %<INT_MAX%>"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3344
+#, gcc-internal-format
+msgid "%<%.*s%> directive argument is not a nul-terminated string"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3350 gimple-ssa-warn-access.cc:234
+#, gcc-internal-format
+msgid "referenced argument declared here"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3357
+#, gcc-internal-format
+msgid "assuming directive output of %wu byte"
+msgid_plural "assuming directive output of %wu bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:3364
+#, gcc-internal-format
+msgid "directive argument %qE"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3366
+#, gcc-internal-format
+msgid "directive argument in the range [%E, %E]"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3370
+#, gcc-internal-format
+msgid "using the range [%E, %E] for directive argument"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3390
+#, gcc-internal-format
+msgid "%qE output %wu byte into a destination of size %wu"
+msgid_plural "%qE output %wu bytes into a destination of size %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:3395
+#, gcc-internal-format
+msgid "%qE output between %wu and %wu bytes into a destination of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3400
+#, gcc-internal-format
+msgid "%qE output %wu or more bytes (assuming %wu) into a destination of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3405
+#, gcc-internal-format
+msgid "%qE output %wu or more bytes into a destination of size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3416
+#, gcc-internal-format
+msgid "%qE output %wu byte"
+msgid_plural "%qE output %wu bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:3420
+#, gcc-internal-format
+msgid "%qE output between %wu and %wu bytes"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3424
+#, gcc-internal-format
+msgid "%qE output %wu or more bytes (assuming %wu)"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3428
+#, gcc-internal-format
+msgid "%qE output %wu or more bytes"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3812
+#, gcc-internal-format
+msgid "%<%.*s%> directive width out of range"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3846
+#, gcc-internal-format
+msgid "%<%.*s%> directive precision out of range"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3979
+msgid "%qE arguments %Z and maybe %Z overlap destination object %qE"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:3991
+msgid "%qE argument %Z overlaps destination object %qE"
+msgid_plural "%qE arguments %Z overlap destination object %qE"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:4002
+msgid "%qE argument %Z may overlap destination object %qE"
+msgid_plural "%qE arguments %Z may overlap destination object %qE"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-sprintf.cc:4022
+#, gcc-internal-format
+msgid "destination object referenced by %<restrict%>-qualified argument 1 was declared here"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:4609
+#, gcc-internal-format
+msgid "specified bound %wu exceeds maximum object size %wu"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:4620
+#, gcc-internal-format
+msgid "specified bound %wu exceeds %<INT_MAX%>"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:4646
+#, gcc-internal-format
+msgid "specified bound range [%wu, %wu] exceeds %<INT_MAX%>"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:4690
+#, gcc-internal-format
+msgid "null destination pointer"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:4707
+#, gcc-internal-format
+msgid "specified bound %wu exceeds the size %wu of the destination object"
+msgstr ""
+
+#: gimple-ssa-sprintf.cc:4719
+#, gcc-internal-format
+msgid "null format string"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:174
+#, gcc-internal-format
+msgid "%qD specified bound %s exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:182
+#, gcc-internal-format
+msgid "%qD specified bound %s exceeds the size %E of unterminated array"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:185
+#, gcc-internal-format
+msgid "%qD specified bound %s may exceed the size of at most %E of unterminated array"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:188
+#, gcc-internal-format
+msgid "%qD specified bound %s exceeds the size of at most %E of unterminated array"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:196
+#, gcc-internal-format
+msgid "%qD argument missing terminating nul"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:205
+#, gcc-internal-format
+msgid "%qs specified bound %s exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:213
+#, gcc-internal-format
+msgid "%qs specified bound %s exceeds the size %E of unterminated array"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:216
+#, gcc-internal-format
+msgid "%qs specified bound %s may exceed the size of at most %E of unterminated array"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:219
+#, gcc-internal-format
+msgid "%qs specified bound %s exceeds the size of at most %E of unterminated array"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:227
+#, gcc-internal-format
+msgid "%qs argument missing terminating nul"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:490 gimple-ssa-warn-access.cc:732
+#, gcc-internal-format
+msgid "%qD specified bound %E exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:495 gimple-ssa-warn-access.cc:748
+#, gcc-internal-format
+msgid "%qD specified bound [%E, %E] exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:643
+#, gcc-internal-format
+msgid "%qD argument %i declared attribute %<nonstring%> is smaller than the specified bound %wu"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:649
+#, gcc-internal-format
+msgid "%qD argument %i declared attribute %<nonstring%> is smaller than the specified bound [%E, %E]"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:655
+#, gcc-internal-format
+msgid "%qD argument %i declared attribute %<nonstring%> may be smaller than the specified bound [%E, %E]"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:665
+#, gcc-internal-format
+msgid "%qD argument %i declared attribute %<nonstring%>"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:671
+#, gcc-internal-format
+msgid "argument %qD declared here"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:730
+#, gcc-internal-format
+msgid "%qD specified bound %E may exceed maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:737
+#, gcc-internal-format
+msgid "specified bound %E may exceed maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:739
+#, gcc-internal-format
+msgid "specified bound %E exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:746
+#, gcc-internal-format
+msgid "%qD specified bound [%E, %E] may exceed maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:754
+#, gcc-internal-format
+msgid "specified bound [%E, %E] may exceed maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:756
+#, gcc-internal-format
+msgid "specified bound [%E, %E] exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:766
+#, gcc-internal-format
+msgid "%qD specified bound %E may exceed source size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:768
+#, gcc-internal-format
+msgid "%qD specified bound %E exceeds source size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:773
+#, gcc-internal-format
+msgid "specified bound %E may exceed source size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:775
+#, gcc-internal-format
+msgid "specified bound %E exceeds source size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:782
+#, gcc-internal-format
+msgid "%qD specified bound [%E, %E] may exceed source size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:784
+#, gcc-internal-format
+msgid "%qD specified bound [%E, %E] exceeds source size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:789
+#, gcc-internal-format
+msgid "specified bound [%E, %E] may exceed source size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:791
+#, gcc-internal-format
+msgid "specified bound [%E, %E] exceeds source size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:799
+#, gcc-internal-format
+msgid "source object allocated here"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:822
+#, gcc-internal-format
+msgid "%qD specified size %E may exceed maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:824
+#, gcc-internal-format
+msgid "%qD specified size %E exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:829
+#, gcc-internal-format
+msgid "specified size %E may exceed maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:831
+#, gcc-internal-format
+msgid "specified size %E exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:838
+#, gcc-internal-format
+msgid "%qD specified size between %E and %E may exceed maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:840
+#, gcc-internal-format
+msgid "%qD specified size between %E and %E exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:845
+#, gcc-internal-format
+msgid "specified size between %E and %E may exceed maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:847
+#, gcc-internal-format
+msgid "specified size between %E and %E exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:857
+#, gcc-internal-format
+msgid "%qD specified bound %E may exceed destination size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:864
+#, gcc-internal-format
+msgid "specified bound %E may exceed destination size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:866
+#, gcc-internal-format
+msgid "specified bound %E exceeds destination size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:873
+#, gcc-internal-format
+msgid "%qD specified bound [%E, %E] may exceed destination size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:875
+#, gcc-internal-format
+msgid "%qD specified bound [%E, %E] exceeds destination size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:880 gimple-ssa-warn-access.cc:882
+#, gcc-internal-format
+msgid "specified bound [%E, %E] exceeds destination size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:891
+#, gcc-internal-format
+msgid "destination object allocated here"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:935
+#, gcc-internal-format
+msgid "%qD may access %E byte in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:937
+#, gcc-internal-format
+msgid "%qD accessing %E byte in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:940
+#, gcc-internal-format
+msgid "%qD may access %E bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:942
+#, gcc-internal-format
+msgid "%qD accessing %E bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:947
+#, gcc-internal-format
+msgid "may access %E byte in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:949
+#, gcc-internal-format
+msgid "accessing %E byte in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:952
+#, gcc-internal-format
+msgid "may access %E bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:954
+#, gcc-internal-format
+msgid "accessing %E bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:963
+#, gcc-internal-format
+msgid "%qD may access %E or more bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:965
+#, gcc-internal-format
+msgid "%qD accessing %E or more bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:970
+#, gcc-internal-format
+msgid "may access %E or more bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:972
+#, gcc-internal-format
+msgid "accessing %E or more bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:980
+#, gcc-internal-format
+msgid "%qD may access between %E and %E bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:982
+#, gcc-internal-format
+msgid "%qD accessing between %E and %E bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:987
+#, gcc-internal-format
+msgid "may access between %E and %E bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:989
+#, gcc-internal-format
+msgid "accessing between %E and %E bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1001
+#, gcc-internal-format
+msgid "%qD may write %E byte into a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1003
+#, gcc-internal-format
+msgid "%qD writing %E byte into a region of size %E overflows the destination"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1006
+#, gcc-internal-format
+msgid "%qD may write %E bytes into a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1008
+#, gcc-internal-format
+msgid "%qD writing %E bytes into a region of size %E overflows the destination"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1013
+#, gcc-internal-format
+msgid "may write %E byte into a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1015
+#, gcc-internal-format
+msgid "writing %E byte into a region of size %E overflows the destination"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1018
+#, gcc-internal-format
+msgid "may write %E bytes into a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1020
+#, gcc-internal-format
+msgid "writing %E bytes into a region of size %E overflows the destination"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1029
+#, gcc-internal-format
+msgid "%qD may write %E or more bytes into a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1031 gimple-ssa-warn-access.cc:1408
+#, gcc-internal-format
+msgid "%qD writing %E or more bytes into a region of size %E overflows the destination"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1037
+#, gcc-internal-format
+msgid "may write %E or more bytes into a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1039 gimple-ssa-warn-access.cc:1413
+#, gcc-internal-format
+msgid "writing %E or more bytes into a region of size %E overflows the destination"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1048
+#, gcc-internal-format
+msgid "%qD may write between %E and %E bytes into a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1050
+#, gcc-internal-format
+msgid "%qD writing between %E and %E bytes into a region of size %E overflows the destination"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1056
+#, gcc-internal-format
+msgid "may write between %E and %E bytes into a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1058
+#, gcc-internal-format
+msgid "writing between %E and %E bytes into a region of size %E overflows the destination"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1072
+#, gcc-internal-format
+msgid "%qD may read %E byte from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1074
+#, gcc-internal-format
+msgid "%qD reading %E byte from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1077
+#, gcc-internal-format
+msgid "%qD may read %E bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1079
+#, gcc-internal-format
+msgid "%qD reading %E bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1085
+#, gcc-internal-format
+msgid "may read %E byte from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1087
+#, gcc-internal-format
+msgid "reading %E byte from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1090
+#, gcc-internal-format
+msgid "may read %E bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1092
+#, gcc-internal-format
+msgid "reading %E bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1101
+#, gcc-internal-format
+msgid "%qD may read %E or more bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1103
+#, gcc-internal-format
+msgid "%qD reading %E or more bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1108
+#, gcc-internal-format
+msgid "may read %E or more bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1110
+#, gcc-internal-format
+msgid "reading %E or more bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1118
+#, gcc-internal-format
+msgid "%qD may read between %E and %E bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1120
+#, gcc-internal-format
+msgid "%qD reading between %E and %E bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1125
+#, gcc-internal-format
+msgid "may read between %E and %E bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1127
+#, gcc-internal-format
+msgid "reading between %E and %E bytes from a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1142
+#, gcc-internal-format
+msgid "%qD expecting %E byte in a region of size %E"
+msgid_plural "%qD expecting %E bytes in a region of size %E"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-access.cc:1147
+#, gcc-internal-format
+msgid "expecting %E byte in a region of size %E"
+msgid_plural "expecting %E bytes in a region of size %E"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-access.cc:1155
+#, gcc-internal-format
+msgid "%qD expecting %E or more bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1159
+#, gcc-internal-format
+msgid "expecting %E or more bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1166
+#, gcc-internal-format
+msgid "%qD expecting between %E and %E bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:1170
+#, gcc-internal-format
+msgid "expecting between %E and %E bytes in a region of size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2050
+#, gcc-internal-format
+msgid "%qD called on pointer %qE with nonzero offset%s"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2065 gimple-ssa-warn-access.cc:3790
+#, gcc-internal-format
+msgid "returned from %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2068
+#, gcc-internal-format
+msgid "returned from %qT"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2070
+#, gcc-internal-format
+msgid "obtained here"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2277
+#, gcc-internal-format
+msgid "argument %i value %qE is negative"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2294
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %i value is zero"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2312
+#, gcc-internal-format
+msgid "argument %i value %qE exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2326
+#, gcc-internal-format
+msgid "argument %i range [%E, %E] is negative"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2333
+#, gcc-internal-format
+msgid "argument %i range [%E, %E] exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2363
+#, gcc-internal-format
+msgid "product %<%E * %E%> of arguments %i and %i exceeds %<SIZE_MAX%>"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2369
+#, gcc-internal-format
+msgid "product %<%E * %E%> of arguments %i and %i exceeds maximum object size %E"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2380 gimple-ssa-warn-access.cc:2383
+#, gcc-internal-format
+msgid "argument %i in the range [%E, %E]"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2394
+#, gcc-internal-format
+msgid "in a call to built-in allocation function %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2397
+#, gcc-internal-format
+msgid "in a call to allocation function %qD declared here"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2842
+#, gcc-internal-format
+msgid "unknown architecture specifier in memory model %wi for %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2934
+#, gcc-internal-format
+msgid "invalid memory model %qs for %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2938
+#, gcc-internal-format
+msgid "invalid memory model %wi for %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2953 gimple-ssa-warn-access.cc:3007
+#, gcc-internal-format, gfc-internal-format
+msgid "valid models are %s"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2967
+#, gcc-internal-format
+msgid "invalid failure memory model %qs for %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2972
+#, gcc-internal-format
+msgid "valid failure models are %qs, %qs, %qs, %qs"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:2988
+#, gcc-internal-format
+msgid "failure memory model %qs cannot be stronger than success memory model %qs for %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3014
+#, gcc-internal-format
+msgid "failure memory model %wi cannot be stronger than success memory model %wi for %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3458
+#, gcc-internal-format, gfc-internal-format
+msgid "bound argument %i value %s is negative for a variable length array argument %i of type %s"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3466
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %i value %s is negative"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3512
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %i is null but the corresponding size argument %i value is %s"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3576
+#, gcc-internal-format
+msgid "referencing argument %u of type %qT"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3590
+#, gcc-internal-format
+msgid "in a call to function %qD declared with attribute %qs"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3594
+#, gcc-internal-format
+msgid "in a call with type %qT and attribute %qs"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3601
+#, gcc-internal-format
+msgid "in a call to function %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3604
+#, gcc-internal-format
+msgid "in a call with type %qT"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3710
+#, gcc-internal-format
+msgid "%qD called on unallocated object %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3729
+#, gcc-internal-format
+msgid "%qD called on a pointer to an unallocated object %qE"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3738
+#, gcc-internal-format
+msgid "assigned here"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3771
+#, gcc-internal-format
+msgid "%qD called on pointer returned from a mismatched allocation function"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3780
+#, gcc-internal-format
+msgid "%qD called on pointer to an unallocated object"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3928
+#, gcc-internal-format
+msgid "pointer %qE may be used after %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3929
+#, gcc-internal-format
+msgid "pointer %qE used after %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3933
+#, gcc-internal-format
+msgid "pointer may be used after %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3934
+#, gcc-internal-format
+msgid "pointer used after %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3938
+#, gcc-internal-format
+msgid "call to %qD here"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3955
+#, gcc-internal-format
+msgid "dangling pointer %qE to %qD may be used"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3956
+#, gcc-internal-format
+msgid "using dangling pointer %qE to %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3961
+#, gcc-internal-format
+msgid "dangling pointer to %qD may be used"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3962
+#, gcc-internal-format
+msgid "using a dangling pointer to %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3965 gimple-ssa-warn-access.cc:4613
+#: gimple-ssa-warn-access.cc:4616 gimple-ssa-warn-restrict.cc:1830
+#: tree-ssa-uninit.cc:921 tree-ssa-uninit.cc:1120 c/c-decl.cc:4099
+#: c/c-decl.cc:4389 c/c-typeck.cc:9541 c/c-typeck.cc:12295 cp/call.cc:8579
+#: cp/call.cc:8590 cp/class.cc:1718 cp/class.cc:3517 cp/constexpr.cc:1062
+#: cp/decl.cc:4640 cp/decl.cc:12909 cp/decl.cc:13497 cp/decl.cc:13506
+#: cp/decl.cc:14507 cp/friend.cc:406 cp/friend.cc:416 cp/init.cc:2935
+#: cp/parser.cc:3692 cp/parser.cc:3838 cp/parser.cc:3889 cp/parser.cc:7166
+#: cp/parser.cc:25045 cp/typeck.cc:4998
+#, gcc-internal-format
+msgid "%qD declared here"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3973
+#, gcc-internal-format
+msgid "dangling pointer %qE to an unnamed temporary may be used"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3975
+#, gcc-internal-format
+msgid "using dangling pointer %qE to an unnamed temporary"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3981
+#, gcc-internal-format
+msgid "dangling pointer to an unnamed temporary may be used"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3983
+#, gcc-internal-format
+msgid "using a dangling pointer to an unnamed temporary"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:3987
+#, gcc-internal-format
+msgid "unnamed temporary defined here"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:4077
+#, gcc-internal-format
+msgid "%qD called on pointer %qE passed to mismatched allocation function %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:4082
+#, gcc-internal-format
+msgid "%qD called on a pointer passed to mismatched reallocation function %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:4088
+#, gcc-internal-format
+msgid "call to %qD"
+msgstr ""
+
+#: gimple-ssa-warn-access.cc:4607
+#, gcc-internal-format
+msgid "storing the address of local variable %qD in %qE"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:287
+#, gcc-internal-format
+msgid "use of %<alloca%>"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:326
+#, gcc-internal-format
+msgid "argument to variable-length array may be too large"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:328
+#, gcc-internal-format
+msgid "argument to %<alloca%> may be too large"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:334
+#, gcc-internal-format
+msgid "limit is %wu bytes, but argument may be as large as %s"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:346
+#, gcc-internal-format
+msgid "argument to variable-length array is too large"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:348
+#, gcc-internal-format
+msgid "argument to %<alloca%> is too large"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:353
+#, gcc-internal-format
+msgid "limit is %wu bytes, but argument is %s"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:365
+#, gcc-internal-format
+msgid "unbounded use of variable-length array"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:366
+#, gcc-internal-format
+msgid "unbounded use of %<alloca%>"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:371
+#, gcc-internal-format
+msgid "use of %<alloca%> within a loop"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:376
+#, gcc-internal-format
+msgid "argument to variable-length array is zero"
+msgstr ""
+
+#: gimple-ssa-warn-alloca.cc:378
+#, gcc-internal-format
+msgid "argument to %<alloca%> is zero"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1498
+#, gcc-internal-format
+msgid "%qD accessing %wu byte at offsets %s and %s overlaps %wu byte at offset %s"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1500
+#, gcc-internal-format
+msgid "%qD accessing %wu byte at offsets %s and %s overlaps %wu bytes at offset %s"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1504
+#, gcc-internal-format
+msgid "%qD accessing %wu bytes at offsets %s and %s overlaps %wu byte at offset %s"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1506
+#, gcc-internal-format
+msgid "%qD accessing %wu bytes at offsets %s and %s overlaps %wu bytes at offset %s"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1513
+#, gcc-internal-format
+msgid "%qD accessing %wu byte at offsets %s and %s overlaps between %wu and %wu bytes at offset %s"
+msgid_plural "%qD accessing %wu bytes at offsets %s and %s overlaps between %wu and %wu bytes at offset %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1523
+#, gcc-internal-format
+msgid "%qD accessing %wu byte at offsets %s and %s overlaps %wu or more bytes at offset %s"
+msgid_plural "%qD accessing %wu bytes at offsets %s and %s overlaps %wu or more bytes at offset %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1536
+#, gcc-internal-format
+msgid "%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps %wu byte at offset %s"
+msgid_plural "%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps %wu bytes at offset %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1546
+#, gcc-internal-format
+msgid "%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps between %wu and %wu bytes at offset %s"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1554
+#, gcc-internal-format
+msgid "%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps %wu or more bytes at offset %s"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1567
+#, gcc-internal-format
+msgid "%qD accessing %wu or more bytes at offsets %s and %s overlaps %wu byte at offset %s"
+msgid_plural "%qD accessing %wu or more bytes at offsets %s and %s overlaps %wu bytes at offset %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1575
+#, gcc-internal-format
+msgid "%qD accessing %wu or more bytes at offsets %s and %s overlaps between %wu and %wu bytes at offset %s"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1582
+#, gcc-internal-format
+msgid "%qD accessing %wu or more bytes at offsets %s and %s overlaps %wu or more bytes at offset %s"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1610
+#, gcc-internal-format
+msgid "%qD accessing %wu byte may overlap %wu byte"
+msgid_plural "%qD accessing %wu bytes may overlap %wu byte"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1617
+#, gcc-internal-format
+msgid "%qD accessing %wu byte at offsets %s and %s may overlap %wu byte at offset %s"
+msgid_plural "%qD accessing %wu bytes at offsets %s and %s may overlap %wu byte at offset %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1628
+#, gcc-internal-format
+msgid "%qD accessing %wu byte may overlap up to %wu bytes"
+msgid_plural "%qD accessing %wu bytes may overlap up to %wu bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1635
+#, gcc-internal-format
+msgid "%qD accessing %wu byte at offsets %s and %s may overlap up to %wu bytes at offset %s"
+msgid_plural "%qD accessing %wu bytes at offsets %s and %s may overlap up to %wu bytes at offset %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1648
+#, gcc-internal-format
+msgid "%qD accessing between %wu and %wu bytes may overlap %wu byte"
+msgid_plural "%qD accessing between %wu and %wu bytes may overlap up to %wu bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1655
+#, gcc-internal-format
+msgid "%qD accessing between %wu and %wu bytes at offsets %s and %s may overlap %wu byte at offset %s"
+msgid_plural "%qD accessing between %wu and %wu bytes at offsets %s and %s may overlap up to %wu bytes at offset %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1667
+#, gcc-internal-format
+msgid "%qD accessing %wu or more bytes at offsets %s and %s may overlap %wu byte at offset %s"
+msgid_plural "%qD accessing %wu or more bytes at offsets %s and %s may overlap up to %wu bytes at offset %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: gimple-ssa-warn-restrict.cc:1713
+#, gcc-internal-format
+msgid "%qD specified bound %wu exceeds maximum object size %wu"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1719
+#, gcc-internal-format
+msgid "%qD specified bound between %wu and %wu exceeds maximum object size %wu"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1780
+#, gcc-internal-format
+msgid "%qD pointer overflow between offset %s and size %s accessing array %qD with type %qT"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1785 c-family/c-warn.cc:3804
+#, gcc-internal-format
+msgid "array %qD declared here"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1790 gimple-ssa-warn-restrict.cc:1796
+#, gcc-internal-format
+msgid "%qD pointer overflow between offset %s and size %s"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1813
+#, gcc-internal-format
+msgid "%qD forming offset %s is out of the bounds [0, %wu] of object %qD with type %qT"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1816
+#, gcc-internal-format
+msgid "%qD offset %s is out of the bounds [0, %wu] of object %qD with type %qT"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1822
+#, gcc-internal-format
+msgid "%qD forming offset %s is out of the bounds of object %qD with type %qT"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1824
+#, gcc-internal-format
+msgid "%qD offset %s is out of the bounds of object %qD with type %qT"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1837
+#, gcc-internal-format
+msgid "%qD forming offset %s is out of the bounds [0, %wu]"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1839
+#, gcc-internal-format
+msgid "%qD offset %s is out of the bounds [0, %wu]"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1845
+#, gcc-internal-format
+msgid "%qD forming offset %s is out of bounds"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1846
+#, gcc-internal-format
+msgid "%qD offset %s is out of bounds"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1858
+#, gcc-internal-format
+msgid "%qD offset %s from the object at %qE is out of the bounds of %qT"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1866 gimple-ssa-warn-restrict.cc:1887
+#, gcc-internal-format
+msgid "subobject %qD declared here"
+msgstr ""
+
+#: gimple-ssa-warn-restrict.cc:1876
+#, gcc-internal-format
+msgid "%qD offset %s from the object at %qE is out of the bounds of referenced subobject %qD with type %qT at offset %wi"
+msgstr ""
+
+#: gimple-streamer-in.cc:207
+#, gcc-internal-format, gfc-internal-format
+msgid "bytecode stream: unknown GIMPLE statement tag %s"
+msgstr ""
+
+#: gimple-warn-recursion.cc:195
+#, gcc-internal-format
+msgid "infinite recursion detected"
+msgstr ""
+
+#: gimple-warn-recursion.cc:202
+#, gcc-internal-format
+msgid "recursive call"
+msgstr ""
+
+#: gimple.cc:1337
+#, gcc-internal-format, gfc-internal-format
+msgid "gimple check: expected %s(%s), have %s(%s) in %s, at %s:%d"
+msgstr ""
+
+#: gimplify.cc:1426
+#, gcc-internal-format
+msgid "%<allocate%> directive for %qD inside a target region must specify an %<allocator%> clause"
+msgstr ""
+
+#: gimplify.cc:2298
+#, gcc-internal-format
+msgid "statement will never be executed"
+msgstr ""
+
+#: gimplify.cc:2362
+#, gcc-internal-format
+msgid "%qs cannot be initialized with%<-ftrivial-auto-var_init%>"
+msgstr ""
+
+#: gimplify.cc:2754 gimplify.cc:2762
+#, gcc-internal-format
+msgid "this statement may fall through"
+msgstr ""
+
+#: gimplify.cc:2764
+#, gcc-internal-format
+msgid "here"
+msgstr "აქ"
+
+#. We've found [[fallthrough]]; at the end of a switch, which the C++
+#. standard says is ill-formed; see [dcl.attr.fallthrough].
+#: gimplify.cc:2835 gimplify.cc:2892 gimplify.cc:2918
+#, gcc-internal-format
+msgid "attribute %<fallthrough%> not preceding a case label or default label"
+msgstr ""
+
+#: gimplify.cc:4092
+#, gcc-internal-format
+msgid "using result of function returning %<void%>"
+msgstr ""
+
+#: gimplify.cc:7019
+#, gcc-internal-format, gfc-internal-format
+msgid "non-memory output %d must stay in memory"
+msgstr ""
+
+#: gimplify.cc:7034
+#, gcc-internal-format
+msgid "invalid lvalue in %<asm%> output %d"
+msgstr ""
+
+#: gimplify.cc:7181
+#, gcc-internal-format, gfc-internal-format
+msgid "non-memory input %d must stay in memory"
+msgstr ""
+
+#: gimplify.cc:7221 gimplify.cc:7231
+#, gcc-internal-format, gfc-internal-format
+msgid "memory input %d is not directly addressable"
+msgstr ""
+
+#: gimplify.cc:7854
+#, gcc-internal-format
+msgid "threadprivate variable %qE used in a region with %<order(concurrent)%> clause"
+msgstr ""
+
+#: gimplify.cc:7856
+#, gcc-internal-format
+msgid "enclosing region"
+msgstr ""
+
+#: gimplify.cc:7860
+#, gcc-internal-format
+msgid "threadprivate variable %qE used in target region"
+msgstr ""
+
+#: gimplify.cc:7862
+#, gcc-internal-format
+msgid "enclosing target region"
+msgstr ""
+
+#: gimplify.cc:7875
+#, gcc-internal-format
+msgid "threadprivate variable %qE used in untied task"
+msgstr ""
+
+#: gimplify.cc:7877
+#, gcc-internal-format
+msgid "enclosing task"
+msgstr ""
+
+#: gimplify.cc:7974
+#, gcc-internal-format
+msgid "%qE not specified in enclosing %qs"
+msgstr ""
+
+#: gimplify.cc:7976
+#, gcc-internal-format
+msgid "enclosing %qs"
+msgstr ""
+
+#: gimplify.cc:8150
+#, gcc-internal-format
+msgid "%qE not specified in enclosing OpenACC %qs construct"
+msgstr ""
+
+#: gimplify.cc:8154
+#, gcc-internal-format
+msgid "enclosing OpenACC %qs construct and"
+msgstr ""
+
+#: gimplify.cc:8157
+#, gcc-internal-format
+msgid "enclosing OpenACC %qs construct with %qs clause"
+msgstr ""
+
+#: gimplify.cc:8227
+#, gcc-internal-format
+msgid "%qE with %<link%> clause used in %<routine%> function"
+msgstr ""
+
+#: gimplify.cc:8235
+#, gcc-internal-format
+msgid "%qE requires a %<declare%> directive for use in a %<routine%> function"
+msgstr ""
+
+#: gimplify.cc:8297
+#, gcc-internal-format
+msgid "%qE not specified in enclosing %<target%>"
+msgstr ""
+
+#: gimplify.cc:8299
+#, gcc-internal-format
+msgid "enclosing %<target%>"
+msgstr ""
+
+#: gimplify.cc:8334 gimplify.cc:12428
+#, gcc-internal-format
+msgid "variable %qE declared in enclosing %<host_data%> region"
+msgstr ""
+
+#: gimplify.cc:8355
+#, gcc-internal-format
+msgid "%qD referenced in target region does not have a mappable type"
+msgstr ""
+
+#: gimplify.cc:8499
+#, gcc-internal-format
+msgid "iteration variable %qE is predetermined linear"
+msgstr ""
+
+#: gimplify.cc:8502
+#, gcc-internal-format
+msgid "iteration variable %qE should be private"
+msgstr ""
+
+#: gimplify.cc:8516
+#, gcc-internal-format
+msgid "iteration variable %qE should not be firstprivate"
+msgstr ""
+
+#: gimplify.cc:8519
+#, gcc-internal-format
+msgid "iteration variable %qE should not be reduction"
+msgstr ""
+
+#: gimplify.cc:8522
+#, gcc-internal-format
+msgid "iteration variable %qE should not be linear"
+msgstr ""
+
+#: gimplify.cc:9526 gimplify.cc:9537 gimplify.cc:9549 gimplify.cc:9565
+#: gimplify.cc:9770 gimplify.cc:9793 gimplify.cc:9804 gimplify.cc:9822
+#, gcc-internal-format
+msgid "unexpected mapping node"
+msgstr ""
+
+#: gimplify.cc:9859
+#, gcc-internal-format
+msgid "unexpected pointer mapping node"
+msgstr ""
+
+#: gimplify.cc:10072
+#, gcc-internal-format
+msgid "base pointer cycle detected"
+msgstr ""
+
+#: gimplify.cc:10579
+#, gcc-internal-format
+msgid "data movement for component %qE is not compatible with movement for struct %qE"
+msgstr ""
+
+#: gimplify.cc:10895
+#, gcc-internal-format
+msgid "%qE appears more than once in map clauses"
+msgstr ""
+
+#: gimplify.cc:11851
+#, gcc-internal-format
+msgid "mapping field %qE of variable length structure"
+msgstr ""
+
+#: gimplify.cc:12121 gimplify.cc:12127
+#, gcc-internal-format
+msgid "conditional %<lastprivate%> clause on %qs construct"
+msgstr ""
+
+#: gimplify.cc:12144
+#, gcc-internal-format
+msgid "non-scalar variable %qD in conditional %<lastprivate%> clause"
+msgstr ""
+
+#: gimplify.cc:12166
+#, gcc-internal-format
+msgid "%<task%> reduction modifier on a construct with a %<nowait%> clause"
+msgstr ""
+
+#: gimplify.cc:12174
+#, gcc-internal-format
+msgid "invalid %<task%> reduction modifier on construct other than %<parallel%>, %qs, %<sections%> or %<scope%>"
+msgstr ""
+
+#: gimplify.cc:12185 gimplify.cc:12191 gimplify.cc:12197 gimplify.cc:12203
+#: gimplify.cc:12209 gimplify.cc:16423
+#, gcc-internal-format
+msgid "%<inscan%> %<reduction%> clause on %qs construct"
+msgstr ""
+
+#: gimplify.cc:12303
+#, gcc-internal-format
+msgid "%<linear%> clause for variable other than loop iterator specified on construct combined with %<distribute%>"
+msgstr ""
+
+#: gimplify.cc:12928
+#, gcc-internal-format
+msgid "copyprivate variable %qE is not threadprivate or private in outer context"
+msgstr ""
+
+#: gimplify.cc:12985
+#, gcc-internal-format
+msgid "%s variable %qE is private in outer context"
+msgstr ""
+
+#: gimplify.cc:13017
+#, gcc-internal-format
+msgid "expected %qs %<if%> clause modifier rather than %qs"
+msgstr ""
+
+#: gimplify.cc:13056
+#, gcc-internal-format
+msgid "%<device%> clause with %<ancestor%> is only allowed on %<target%> construct"
+msgstr ""
+
+#: gimplify.cc:13072
+#, gcc-internal-format
+msgid "with %<ancestor%>, only the %<device%>, %<firstprivate%>, %<private%>, %<defaultmap%>, and %<map%> clauses may appear on the construct"
+msgstr ""
+
+#: gimplify.cc:13288
+#, gcc-internal-format
+msgid "%qD specified in %qs clause but not in %<inscan%> %<reduction%> clause on the containing construct"
+msgstr ""
+
+#: gimplify.cc:13500
+#, gcc-internal-format
+msgid "%<_Atomic%> %qD in implicit %<map%> clause"
+msgstr ""
+
+#: gimplify.cc:13554
+#, gcc-internal-format
+msgid "%<_Atomic%> %qD in implicit %<firstprivate%> clause on %<target%> construct"
+msgstr ""
+
+#: gimplify.cc:13892
+#, gcc-internal-format
+msgid "%<_Atomic%> %qD in %<firstprivate%> clause on %<target%> construct"
+msgstr ""
+
+#: gimplify.cc:13965
+#, gcc-internal-format
+msgid "same variable used in %<firstprivate%> and %<lastprivate%> clauses on %<distribute%> construct"
+msgstr ""
+
+#: gimplify.cc:14142
+#, gcc-internal-format
+msgid "incompatible data clause with reduction on %qE; promoting to %<present_or_copy%>"
+msgstr ""
+
+#: gimplify.cc:14440
+#, gcc-internal-format
+msgid "%qD specified in %<inscan%> %<reduction%> clause but not in %<scan%> directive clause"
+msgstr ""
+
+#: gimplify.cc:14459
+#, gcc-internal-format
+msgid "invalid private reduction on %qE"
+msgstr ""
+
+#: gimplify.cc:14626
+#, gcc-internal-format
+msgid "%<inscan%> %<reduction%> clause used together with %<linear%> clause for a variable other than loop iterator"
+msgstr ""
+
+#: gimplify.cc:14970
+#, gcc-internal-format
+msgid "%<mutexinoutset%> kind in %<depend%> clause on a %<taskwait%> construct"
+msgstr ""
+
+#: gimplify.cc:14980
+#, gcc-internal-format
+msgid "%<taskwait%> construct with %<nowait%> clause but no %<depend%> clauses"
+msgstr ""
+
+#: gimplify.cc:15264 gimplify.cc:15268 gimplify.cc:15277 gimplify.cc:15289
+#: gimplify.cc:15294
+#, gcc-internal-format
+msgid "%qs clause may not appear on non-rectangular %qs"
+msgstr ""
+
+#: gimplify.cc:15455
+#, gcc-internal-format
+msgid "%<linear%> clause may not be specified together with %<ordered%> clause if stand-alone %<ordered%> construct is nested in it"
+msgstr ""
+
+#: gimplify.cc:15520
+#, gcc-internal-format
+msgid "threadprivate iteration variable %qD"
+msgstr ""
+
+#: gimplify.cc:15551 gimplify.cc:15659
+#, gcc-internal-format
+msgid "conditional %<lastprivate%> on loop iterator %qD ignored"
+msgstr ""
+
+#: gimplify.cc:16361
+#, gcc-internal-format
+msgid "%<bind%> clause not specified on a %<loop%> construct not nested inside another OpenMP construct"
+msgstr ""
+
+#: gimplify.cc:16385
+#, gcc-internal-format
+msgid "%<bind(parallel)%> on a %<loop%> construct nested inside %<simd%> construct"
+msgstr ""
+
+#: gimplify.cc:16405
+#, gcc-internal-format
+msgid "%<bind(teams)%> on a %<loop%> region not strictly nested inside of a %<teams%> region"
+msgstr ""
+
+#: gimplify.cc:16430
+#, gcc-internal-format
+msgid "invalid %<task%> reduction modifier on construct other than %<parallel%>, %qs or %<sections%>"
+msgstr ""
+
+#: gimplify.cc:16458
+#, gcc-internal-format
+msgid "%<lastprivate%> clause on a %<loop%> construct refers to a variable %qD which is not the loop iterator"
+msgstr ""
+
+#: gimplify.cc:17540
+#, gcc-internal-format
+msgid "%<ordered%> construct with %qs clause must be closely nested inside a loop with %<ordered%> clause"
+msgstr ""
+
+#: gimplify.cc:17561
+#, gcc-internal-format
+msgid "variable %qE is not an iteration of outermost loop %d, expected %qE"
+msgstr ""
+
+#: gimplify.cc:17574
+#, gcc-internal-format
+msgid "number of variables in %qs clause with %<sink%> modifier does not match number of iteration variables"
+msgstr ""
+
+#: gimplify.cc:17588
+#, gcc-internal-format
+msgid "more than one %qs clause with %<source%> modifier on an %<ordered%> construct"
+msgstr ""
+
+#: gimplify.cc:17601
+#, gcc-internal-format
+msgid "%qs clause with %<source%> modifier specified together with %qs clauses with %<sink%> modifier on the same construct"
+msgstr ""
+
+#: gimplify.cc:18918
+#, gcc-internal-format
+msgid "gimplification failed"
+msgstr ""
+
+#: gimplify.cc:19519
+#, gcc-internal-format
+msgid "%qT is promoted to %qT when passed through %<...%>"
+msgstr ""
+
+#: gimplify.cc:19524
+#, gcc-internal-format
+msgid "(so you should pass %qT not %qT to %<va_arg%>)"
+msgstr ""
+
+#: gimplify.cc:19531
+#, gcc-internal-format
+msgid "if this code is reached, the program will abort"
+msgstr ""
+
+#: godump.cc:1438
+#, gcc-internal-format
+msgid "could not close Go dump file: %m"
+msgstr ""
+
+#: godump.cc:1450
+#, gcc-internal-format
+msgid "could not open Go dump file %qs: %m"
+msgstr ""
+
+#: graphite.cc:529
+#, gcc-internal-format
+msgid "Graphite loop optimizations cannot be used (isl is not available)."
+msgstr ""
+
+#: input.cc:1482
+#, gcc-internal-format, gfc-internal-format
+msgid "expansion point is location %i"
+msgstr ""
+
+#: input.cc:1512
+#, gcc-internal-format
+msgid "token %u has %<x-location == y-location == %u%>"
+msgstr ""
+
+#: input.cc:1521
+#, gcc-internal-format
+msgid "token %u has %<x-location == %u%>"
+msgstr ""
+
+#: input.cc:1522
+#, gcc-internal-format
+msgid "token %u has %<y-location == %u%>"
+msgstr ""
+
+#: internal-fn.cc:843
+#, gcc-internal-format
+msgid "invalid use of attribute %<fallthrough%>"
+msgstr ""
+
+#: ipa-devirt.cc:679 ipa-devirt.cc:764 ipa-devirt.cc:793 ipa-devirt.cc:835
+#: ipa-devirt.cc:866
+#, gcc-internal-format
+msgid "virtual table of type %qD violates one definition rule"
+msgstr ""
+
+#: ipa-devirt.cc:682
+#, gcc-internal-format
+msgid "variable of same assembler name as the virtual table is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:723
+#, gcc-internal-format
+msgid "virtual table of type %qD contains RTTI information"
+msgstr ""
+
+#: ipa-devirt.cc:729
+#, gcc-internal-format
+msgid "but is prevailed by one without from other translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:733
+#, gcc-internal-format
+msgid "RTTI will not work on this type"
+msgstr ""
+
+#: ipa-devirt.cc:770
+#, gcc-internal-format
+msgid "the conflicting type defined in another translation unit has virtual table of different size"
+msgstr ""
+
+#: ipa-devirt.cc:799
+#, gcc-internal-format
+msgid "the conflicting type defined in another translation unit with different RTTI information"
+msgstr ""
+
+#: ipa-devirt.cc:843 ipa-devirt.cc:874
+#, gcc-internal-format
+msgid "the conflicting type defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:847
+#, gcc-internal-format
+msgid "contains additional virtual method %qD"
+msgstr ""
+
+#: ipa-devirt.cc:854
+#, gcc-internal-format
+msgid "the conflicting type defined in another translation unit has virtual table with more entries"
+msgstr ""
+
+#: ipa-devirt.cc:880
+#, gcc-internal-format
+msgid "virtual method %qD"
+msgstr ""
+
+#: ipa-devirt.cc:884
+#, gcc-internal-format
+msgid "ought to match virtual method %qD but does not"
+msgstr ""
+
+#: ipa-devirt.cc:890
+#, gcc-internal-format
+msgid "the conflicting type defined in another translation unit has virtual table with different contents"
+msgstr ""
+
+#: ipa-devirt.cc:924
+#, gcc-internal-format
+msgid "type %qT (typedef of %qT) violates the C++ One Definition Rule"
+msgstr ""
+
+#: ipa-devirt.cc:932
+#, gcc-internal-format
+msgid "type %qT violates the C++ One Definition Rule"
+msgstr ""
+
+#: ipa-devirt.cc:944 ipa-devirt.cc:959 ipa-devirt.cc:1237 ipa-devirt.cc:1282
+#: ipa-devirt.cc:1321 ipa-devirt.cc:1339
+#, gcc-internal-format
+msgid "a different type is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:951
+#, gcc-internal-format
+msgid "the first difference of corresponding definitions is field %qD"
+msgstr ""
+
+#: ipa-devirt.cc:961
+#, gcc-internal-format
+msgid "the first difference of corresponding definitions is method %qD"
+msgstr ""
+
+#: ipa-devirt.cc:1066
+#, gcc-internal-format
+msgid "type %qT defined in anonymous namespace cannot match type %qT across the translation unit boundary"
+msgstr ""
+
+#: ipa-devirt.cc:1071
+#, gcc-internal-format
+msgid "type %qT defined in anonymous namespace cannot match across the translation unit boundary"
+msgstr ""
+
+#: ipa-devirt.cc:1076
+#, gcc-internal-format
+msgid "the incompatible type defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1092
+#, gcc-internal-format
+msgid "type name %qs should match type name %qs"
+msgstr ""
+
+#: ipa-devirt.cc:1096 ipa-devirt.cc:1193
+#, gcc-internal-format
+msgid "the incompatible type is defined here"
+msgstr ""
+
+#: ipa-devirt.cc:1124
+#, gcc-internal-format
+msgid "array types have different bounds"
+msgstr ""
+
+#: ipa-devirt.cc:1139
+#, gcc-internal-format
+msgid "return value type mismatch"
+msgstr ""
+
+#: ipa-devirt.cc:1154
+#, gcc-internal-format
+msgid "implicit this pointer type mismatch"
+msgstr ""
+
+#: ipa-devirt.cc:1157
+#, gcc-internal-format, gfc-internal-format
+msgid "type mismatch in parameter %i"
+msgstr ""
+
+#: ipa-devirt.cc:1168
+#, gcc-internal-format
+msgid "types have different parameter counts"
+msgstr ""
+
+#: ipa-devirt.cc:1184
+#, gcc-internal-format
+msgid "type %qT itself violates the C++ One Definition Rule"
+msgstr ""
+
+#: ipa-devirt.cc:1190
+#, gcc-internal-format
+msgid "type %qT should match type %qT"
+msgstr ""
+
+#: ipa-devirt.cc:1265
+#, gcc-internal-format
+msgid "a type with different precision is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1272
+#, gcc-internal-format
+msgid "a type with different signedness is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1297
+#, gcc-internal-format
+msgid "it is defined as a pointer in different address space in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1306
+#, gcc-internal-format
+msgid "it is defined as a pointer to different type in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1366
+#, gcc-internal-format
+msgid "an array of different size is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1381
+#, gcc-internal-format
+msgid "has different return value in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1404 ipa-devirt.cc:1416
+#, gcc-internal-format
+msgid "has different parameters in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1439
+#, gcc-internal-format
+msgid "a type defined in another translation unit is not polymorphic"
+msgstr ""
+
+#: ipa-devirt.cc:1443
+#, gcc-internal-format
+msgid "a type defined in another translation unit is polymorphic"
+msgstr ""
+
+#: ipa-devirt.cc:1461 ipa-devirt.cc:1525
+#, gcc-internal-format
+msgid "a type with different virtual table pointers is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1468 ipa-devirt.cc:1530
+#, gcc-internal-format
+msgid "a type with different bases is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1476
+#, gcc-internal-format
+msgid "a field with different name is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1490
+#, gcc-internal-format
+msgid "a field of same name but different type is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1503
+#, gcc-internal-format
+msgid "fields have different layout in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1510
+#, gcc-internal-format
+msgid "one field is a bitfield while the other is not"
+msgstr ""
+
+#: ipa-devirt.cc:1534
+#, gcc-internal-format
+msgid "a type with different number of fields is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1557
+#, gcc-internal-format
+msgid "a type with different size is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:1566
+#, gcc-internal-format
+msgid "one type needs to be constructed while the other does not"
+msgstr ""
+
+#: ipa-devirt.cc:1579
+#, gcc-internal-format
+msgid "memory layout mismatch"
+msgstr ""
+
+#: ipa-devirt.cc:1698
+#, gcc-internal-format
+msgid "the extra base is defined here"
+msgstr ""
+
+#: ipa-devirt.cc:3874
+#, gcc-internal-format
+msgid "Declaring type %qD final would enable devirtualization of %i call"
+msgid_plural "Declaring type %qD final would enable devirtualization of %i calls"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipa-devirt.cc:3883
+#, gcc-internal-format
+msgid "Declaring type %qD final would enable devirtualization of %i call executed %lli times"
+msgid_plural "Declaring type %qD final would enable devirtualization of %i calls executed %lli times"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipa-devirt.cc:3913
+#, gcc-internal-format
+msgid "Declaring virtual destructor of %qD final would enable devirtualization of %i call"
+msgid_plural "Declaring virtual destructor of %qD final would enable devirtualization of %i calls"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipa-devirt.cc:3921
+#, gcc-internal-format
+msgid "Declaring method %qD final would enable devirtualization of %i call"
+msgid_plural "Declaring method %qD final would enable devirtualization of %i calls"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipa-devirt.cc:3929
+#, gcc-internal-format
+msgid "Declaring virtual destructor of %qD final would enable devirtualization of %i call executed %lli times"
+msgid_plural "Declaring virtual destructor of %qD final would enable devirtualization of %i calls executed %lli times"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipa-devirt.cc:3940
+#, gcc-internal-format
+msgid "Declaring method %qD final would enable devirtualization of %i call executed %lli times"
+msgid_plural "Declaring method %qD final would enable devirtualization of %i calls executed %lli times"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ipa-devirt.cc:4253
+#, gcc-internal-format
+msgid "type %qs violates the C++ One Definition Rule"
+msgstr ""
+
+#: ipa-devirt.cc:4262
+#, gcc-internal-format
+msgid "an enum with different number of values is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:4266
+#, gcc-internal-format
+msgid "an enum with different value name is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:4270
+#, gcc-internal-format
+msgid "an enum with different values is defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:4291
+#, gcc-internal-format
+msgid "name %qs differs from name %qs defined in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:4297
+#, gcc-internal-format
+msgid "name %qs is defined as %u-bit while another translation unit defines it as %u-bit"
+msgstr ""
+
+#: ipa-devirt.cc:4306
+#, gcc-internal-format
+msgid "name %qs is defined to %wd while another translation unit defines it as %wd"
+msgstr ""
+
+#: ipa-devirt.cc:4312
+#, gcc-internal-format
+msgid "name %qs is defined to different value in another translation unit"
+msgstr ""
+
+#: ipa-devirt.cc:4317
+#, gcc-internal-format
+msgid "mismatching definition"
+msgstr ""
+
+#: ipa-fnsummary.cc:4658
+#, gcc-internal-format
+msgid "invalid fnsummary in LTO stream"
+msgstr ""
+
+#: ipa-fnsummary.cc:4759
+#, gcc-internal-format
+msgid "ipa inline summary is missing in input file"
+msgstr ""
+
+#: ipa-modref.cc:4022
+#, gcc-internal-format
+msgid "IPA modref summary is missing in input file"
+msgstr ""
+
+#: ipa-prop.cc:4824 ipa-prop.cc:4866 ipa-prop.cc:4943 ipa-prop.cc:4991
+#, gcc-internal-format
+msgid "invalid jump function in LTO stream"
+msgstr ""
+
+#: ipa-pure-const.cc:220
+#, gcc-internal-format
+msgid "function might be candidate for attribute %qs"
+msgstr ""
+
+#: ipa-pure-const.cc:221
+#, gcc-internal-format
+msgid "function might be candidate for attribute %qs if it is known to return normally"
+msgstr ""
+
+#: ipa-reference.cc:1264
+#, gcc-internal-format
+msgid "ipa reference summary is missing in ltrans unit"
+msgstr ""
+
+#: ipa-sra.cc:1621
+#, gcc-internal-format
+msgid "Access offset before parent offset"
+msgstr ""
+
+#: ipa-sra.cc:1626
+#, gcc-internal-format
+msgid "Access size greater or equal to its parent size"
+msgstr ""
+
+#: ipa-sra.cc:1631
+#, gcc-internal-format
+msgid "Access terminates outside of its parent"
+msgstr ""
+
+#: ipa-sra.cc:1643
+#, gcc-internal-format
+msgid "Access overlaps with its sibling"
+msgstr ""
+
+#: ipa-sra.cc:1662
+#, gcc-internal-format
+msgid "IPA-SRA access verification failed"
+msgstr ""
+
+#: ipa-sra.cc:2747
+#, gcc-internal-format
+msgid "function %qs, parameter %u, has IPA-SRA accesses which overlap"
+msgstr ""
+
+#: ipa-sra.cc:2750
+#, gcc-internal-format
+msgid "function %qs, parameter %u, is used but does not have any certain IPA-SRA access"
+msgstr ""
+
+#: ipa-strub.cc:622
+#, gcc-internal-format
+msgid "at-calls %<strub%> does not support call to %qD"
+msgstr ""
+
+#: ipa-strub.cc:656
+#, gcc-internal-format
+msgid "%qD is not eligible for %<strub%> on the target system"
+msgstr ""
+
+#: ipa-strub.cc:660
+#, gcc-internal-format
+msgid "unsupported %<strub%> call on the target system"
+msgstr ""
+
+#: ipa-strub.cc:686
+#, gcc-internal-format
+msgid "%qD is not eligible for %<strub%> because %<-fsplit-stack%> is enabled"
+msgstr ""
+
+#: ipa-strub.cc:699
+#, gcc-internal-format
+msgid "%qD is not eligible for %<strub%> because of attribute %<noipa%>"
+msgstr ""
+
+#: ipa-strub.cc:714
+#, gcc-internal-format
+msgid "%qD is not eligible for %<strub%> because of attribute %<simd%>"
+msgstr ""
+
+#: ipa-strub.cc:848
+#, gcc-internal-format
+msgid "%qD is not eligible for internal %<strub%> because of attribute %<noclone%>"
+msgstr ""
+
+#: ipa-strub.cc:872
+#, gcc-internal-format
+msgid "%qD is not eligible for internal %<strub%> because it calls %qD"
+msgstr ""
+
+#: ipa-strub.cc:886
+#, gcc-internal-format
+msgid "%qD is not eligible for internal %<strub%> because it contains a non-local goto target"
+msgstr ""
+
+#: ipa-strub.cc:899
+#, gcc-internal-format
+msgid "%qD is not eligible for internal %<strub%> because the address of a local label escapes"
+msgstr ""
+
+#: ipa-strub.cc:938
+#, gcc-internal-format
+msgid "internal %<strub%> does not support forced labels"
+msgstr ""
+
+#: ipa-strub.cc:952
+#, gcc-internal-format
+msgid "%qD has too many arguments for internal %<strub%>"
+msgstr ""
+
+#: ipa-strub.cc:1229
+#, gcc-internal-format
+msgid "%qD requires %<strub%>, but no viable %<strub%> mode was found"
+msgstr ""
+
+#: ipa-strub.cc:1325
+#, gcc-internal-format
+msgid "%<strub%> mode %qE selected for %qD, when %qE was requested"
+msgstr ""
+
+#: ipa-strub.cc:1334
+#, gcc-internal-format
+msgid "the incompatible selection was determined by ultimate alias target %qD"
+msgstr ""
+
+#: ipa-strub.cc:1681
+#, gcc-internal-format
+msgid "indirect non-%<strub%> call in %<strub%> context %qD"
+msgstr ""
+
+#: ipa-strub.cc:1700
+#, gcc-internal-format
+msgid "calling %<always_inline%> %<strub%> %qD in non-%<strub%> context %qD"
+msgstr ""
+
+#: ipa-strub.cc:1710
+#, gcc-internal-format
+msgid "calling non-%<strub%> %qD in %<strub%> context %qD"
+msgstr ""
+
+#: ipa-strub.cc:1714
+#, gcc-internal-format
+msgid "calling %qD using non-%<strub%> type %qT in %<strub%> context %qD"
+msgstr ""
+
+#: ipa-strub.cc:2839
+#, gcc-internal-format
+msgid "failed to split %qD for %<strub%>"
+msgstr ""
+
+#: ira.cc:2441 ira.cc:2463
+#, gcc-internal-format
+msgid "%s cannot be used in %<asm%> here"
+msgstr ""
+
+#: ira.cc:6059
+#, gcc-internal-format
+msgid "frame pointer required, but reserved"
+msgstr ""
+
+#: ira.cc:6060
+#, gcc-internal-format
+msgid "for %qD"
+msgstr ""
+
+#: ira.cc:6076
+#, gcc-internal-format
+msgid "frame size too large for reliable stack checking"
+msgstr ""
+
+#: lra-assigns.cc:1702
+#, gcc-internal-format, gfc-internal-format
+msgid "maximum number of LRA assignment passes is achieved (%d)"
+msgstr ""
+
+#: lra-assigns.cc:1867
+#, gcc-internal-format
+msgid "unable to find a register to spill"
+msgstr ""
+
+#: lra-constraints.cc:4236 reload.cc:3840 reload.cc:4095
+#, gcc-internal-format
+msgid "inconsistent operand constraints in an %<asm%>"
+msgstr ""
+
+#: lra-constraints.cc:5350
+#, gcc-internal-format, gfc-internal-format
+msgid "maximum number of generated reload insns per insn achieved (%d)"
+msgstr ""
+
+#: lra.cc:546
+#, gcc-internal-format
+msgid "%<asm%> operand has impossible constraints or there are not enough registers"
+msgstr ""
+
+#: lto-cgraph.cc:1171
+#, gcc-internal-format
+msgid "function %qs has been referenced in offloaded code but hasn%'t been marked to be included in the offloaded code"
+msgstr ""
+
+#: lto-cgraph.cc:1177
+#, gcc-internal-format
+msgid "variable %qs has been referenced in offloaded code but hasn%'t been marked to be included in the offloaded code"
+msgstr ""
+
+#: lto-cgraph.cc:1346
+#, gcc-internal-format, gfc-internal-format
+msgid "bytecode stream: found multiple instances of cgraph node with uid %d"
+msgstr ""
+
+#: lto-cgraph.cc:1511
+#, gcc-internal-format
+msgid "bytecode stream: no caller found while reading edge"
+msgstr ""
+
+#: lto-cgraph.cc:1517
+#, gcc-internal-format
+msgid "bytecode stream: no callee found while reading edge"
+msgstr ""
+
+#: lto-cgraph.cc:1594
+#, gcc-internal-format
+msgid "bytecode stream: found empty cgraph node"
+msgstr ""
+
+#: lto-cgraph.cc:1713
+#, gcc-internal-format, gfc-internal-format
+msgid "At most %i profile runs is supported. Perhaps corrupted profile?"
+msgstr ""
+
+#: lto-cgraph.cc:1738
+#, gcc-internal-format, gfc-internal-format
+msgid "Profile information in %s corrupted"
+msgstr ""
+
+#: lto-cgraph.cc:1776
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot find LTO cgraph in %s"
+msgstr ""
+
+#: lto-cgraph.cc:1786
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot find LTO section refs in %s"
+msgstr ""
+
+#: lto-cgraph.cc:1944
+#, gcc-internal-format
+msgid "OpenMP %<requires%> directive with non-identical clauses in multiple compilation units: %qs vs. %qs"
+msgstr ""
+
+#: lto-cgraph.cc:1947 lto-cgraph.cc:1948 lto-cgraph.cc:1954
+#, gcc-internal-format
+msgid "%qs has %qs"
+msgstr ""
+
+#: lto-cgraph.cc:1952
+#, gcc-internal-format
+msgid "OpenMP %<requires%> directive with %qs specified only in some compilation units"
+msgstr ""
+
+#: lto-cgraph.cc:1957
+#, gcc-internal-format
+msgid "but %qs has not"
+msgstr ""
+
+#: lto-cgraph.cc:1965
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid offload table in %s"
+msgstr ""
+
+#: lto-cgraph.cc:1976
+#, gcc-internal-format
+msgid "GCC_OFFLOAD_OMP_REQUIRES_FILE unset"
+msgstr ""
+
+#: lto-cgraph.cc:1979
+#, gcc-internal-format
+msgid "Cannot open omp_requires file %qs"
+msgstr ""
+
+#: lto-compress.cc:142 lto-compress.cc:269 lto-compress.cc:277
+#: lto-compress.cc:297 lto-compress.cc:363 lto-compress.cc:371
+#: lto-compress.cc:391
+#, gcc-internal-format, gfc-internal-format
+msgid "compressed stream: %s"
+msgstr ""
+
+#: lto-compress.cc:163
+#, gcc-internal-format
+msgid "original not compressed with zstd"
+msgstr ""
+
+#: lto-compress.cc:165
+#, gcc-internal-format
+msgid "original size unknown"
+msgstr ""
+
+#: lto-compress.cc:171
+#, gcc-internal-format, gfc-internal-format
+msgid "decompressed stream: %s"
+msgstr ""
+
+#: lto-compress.cc:411
+#, gcc-internal-format
+msgid "compiler does not support ZSTD LTO compression"
+msgstr ""
+
+#: lto-section-in.cc:460
+#, gcc-internal-format, gfc-internal-format
+msgid "bytecode stream: trying to read %d bytes after the end of the input buffer"
+msgstr ""
+
+#: lto-section-in.cc:471
+#, gcc-internal-format, gfc-internal-format
+msgid "%s out of range: Range is %i to %i, value is %i"
+msgstr ""
+
+#: lto-streamer-in.cc:125
+#, gcc-internal-format, gfc-internal-format
+msgid "bytecode stream: unexpected tag %s"
+msgstr ""
+
+#: lto-streamer-in.cc:1215 lto-streamer-in.cc:1226
+#, gcc-internal-format
+msgid "Cgraph edge statement index out of range"
+msgstr ""
+
+#: lto-streamer-in.cc:1220 lto-streamer-in.cc:1230
+#, gcc-internal-format
+msgid "Cgraph edge statement index not found"
+msgstr ""
+
+#: lto-streamer-in.cc:1237
+#, gcc-internal-format
+msgid "Reference statement index out of range"
+msgstr ""
+
+#: lto-streamer-in.cc:1241
+#, gcc-internal-format
+msgid "Reference statement index not found"
+msgstr ""
+
+#: lto-streamer-in.cc:2001
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot read LTO mode table from %s"
+msgstr ""
+
+#: lto-streamer-in.cc:2107
+#, gcc-internal-format
+msgid "%s - %u-bit-precision floating-point numbers unsupported (mode %qs)"
+msgstr ""
+
+#: lto-streamer-in.cc:2112
+#, gcc-internal-format
+msgid "%s - %u-bit-precision decimal floating-point numbers unsupported (mode %qs)"
+msgstr ""
+
+#: lto-streamer-in.cc:2117
+#, gcc-internal-format
+msgid "%s - %u-bit-precision complex floating-point numbers unsupported (mode %qs)"
+msgstr ""
+
+#: lto-streamer-in.cc:2122
+#, gcc-internal-format
+msgid "%s - %u-bit integer numbers unsupported (mode %qs)"
+msgstr ""
+
+#: lto-streamer-in.cc:2125
+#, gcc-internal-format
+msgid "%s - unsupported mode %qs"
+msgstr ""
+
+#: lto-streamer-out.cc:561 lto-streamer-out.cc:913
+#, gcc-internal-format
+msgid "tree code %qs is not supported in LTO streams"
+msgstr ""
+
+#: lto-streamer.cc:129
+#, gcc-internal-format, gfc-internal-format
+msgid "bytecode stream: unexpected LTO section %s"
+msgstr ""
+
+#: lto-streamer.cc:261
+#, gcc-internal-format
+msgid "bytecode stream in file %qs generated with LTO version %d.%d instead of the expected %d.%d"
+msgstr ""
+
+#: lto-wrapper.cc:159
+#, gcc-internal-format
+msgid "deleting LTRANS file %s: %m"
+msgstr ""
+
+#: lto-wrapper.cc:358
+#, gcc-internal-format, gfc-internal-format
+msgid "option %s with different values"
+msgstr ""
+
+#: lto-wrapper.cc:374
+#, gcc-internal-format
+msgid "option %qs with mismatching values (%s, %s)"
+msgstr ""
+
+#: lto-wrapper.cc:489
+#, gcc-internal-format, gfc-internal-format
+msgid "option %s not used consistently in all LTO input files"
+msgstr ""
+
+#: lto-wrapper.cc:634 lto-wrapper.cc:642
+#, gcc-internal-format
+msgid "Extra option to %<-Xassembler%>: %s, dropping all %<-Xassembler%> and %<-Wa%> options."
+msgstr ""
+
+#: lto-wrapper.cc:650
+#, gcc-internal-format
+msgid "Options to %<-Xassembler%> do not match: %s, %s, dropping all %<-Xassembler%> and %<-Wa%> options."
+msgstr ""
+
+#: lto-wrapper.cc:960
+#, gcc-internal-format
+msgid "could not find %s in %s (consider using %<-B%>)"
+msgstr ""
+
+#: lto-wrapper.cc:1041
+#, gcc-internal-format, gfc-internal-format
+msgid "problem with building target image for %s"
+msgstr ""
+
+#: lto-wrapper.cc:1070
+#, gcc-internal-format
+msgid "reading input file"
+msgstr ""
+
+#: lto-wrapper.cc:1075
+#, gcc-internal-format
+msgid "writing output file"
+msgstr ""
+
+#: lto-wrapper.cc:1111
+#, gcc-internal-format
+msgid "installation error, cannot find %<crtoffloadtable.o%>"
+msgstr ""
+
+#: lto-wrapper.cc:1433
+#, gcc-internal-format
+msgid "environment variable %<COLLECT_GCC%> must be set"
+msgstr ""
+
+#: lto-wrapper.cc:1437 config/gcn/mkoffload.cc:811
+#, gcc-internal-format
+msgid "environment variable %<COLLECT_GCC_OPTIONS%> must be set"
+msgstr ""
+
+#: lto-wrapper.cc:1727 lto-wrapper.cc:1787 c-family/c-pch.cc:213
+#: c-family/c-pch.cc:248 c-family/c-pch.cc:286
+#, gcc-internal-format
+msgid "cannot read %s: %m"
+msgstr ""
+
+#: lto-wrapper.cc:1754
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid format of %s"
+msgstr ""
+
+#: lto-wrapper.cc:1920
+#, gcc-internal-format
+msgid "%<fopen%>: %s: %m"
+msgstr ""
+
+#: lto-wrapper.cc:1937
+#, gcc-internal-format, gfc-internal-format
+msgid "corrupted ltrans output file %s"
+msgstr ""
+
+#: lto-wrapper.cc:1980
+#, gcc-internal-format, gfc-internal-format
+msgid "using serial compilation of %d LTRANS jobs"
+msgstr ""
+
+#: lto-wrapper.cc:2160 config/gcn/mkoffload.cc:936
+#, gcc-internal-format
+msgid "%<atexit%> failed"
+msgstr ""
+
+#: multiple_target.cc:72
+#, gcc-internal-format
+msgid "the call requires %<ifunc%>, which is not supported by this target"
+msgstr ""
+
+#: multiple_target.cc:79
+#, gcc-internal-format
+msgid "target does not support function version dispatcher"
+msgstr ""
+
+#: multiple_target.cc:87
+#, gcc-internal-format
+msgid "default %<target_clones%> attribute was not set"
+msgstr ""
+
+#: multiple_target.cc:322 c-family/c-attribs.cc:5910
+#, gcc-internal-format
+msgid "single %<target_clones%> attribute is ignored"
+msgstr ""
+
+#: multiple_target.cc:331
+#, gcc-internal-format
+msgid "clones for %<target_clones%> attribute cannot be created"
+msgstr ""
+
+#: multiple_target.cc:334
+#, gcc-internal-format
+msgid "function %q+F can never be copied because it has %<noclone%> attribute"
+msgstr ""
+
+#: multiple_target.cc:355
+#, gcc-internal-format
+msgid "%<default%> target was not set"
+msgstr ""
+
+#: multiple_target.cc:359
+#, gcc-internal-format
+msgid "an empty string cannot be in %<target_clones%> attribute"
+msgstr ""
+
+#: multiple_target.cc:363
+#, gcc-internal-format
+msgid "multiple %<default%> targets were set"
+msgstr ""
+
+#: omp-expand.cc:3420
+#, gcc-internal-format
+msgid "%qs clause with %<sink%> modifier waiting for lexically later iteration"
+msgstr ""
+
+#: omp-expand.cc:3560
+#, gcc-internal-format
+msgid "%qs clause with %<sink%> modifier refers to iteration never in the iteration space"
+msgstr ""
+
+#: omp-expand.cc:8186
+#, gcc-internal-format
+msgid "invalid OpenMP non-rectangular loop step; %<(%E - %E) * %E%> is not a multiple of loop %d step %qE"
+msgstr ""
+
+#: omp-general.cc:1283
+#, gcc-internal-format
+msgid "%<target_device%> selector set is not supported yet"
+msgstr ""
+
+#: omp-general.cc:1288
+#, gcc-internal-format
+msgid "selector set %qs specified more than once"
+msgstr ""
+
+#: omp-general.cc:1308
+#, gcc-internal-format
+msgid "selector %qs specified more than once in set %qs"
+msgstr ""
+
+#: omp-general.cc:1332
+#, gcc-internal-format
+msgid "incorrect property %qs of %qs selector"
+msgstr ""
+
+#: omp-general.cc:1340
+#, gcc-internal-format
+msgid "unknown property %qE of %qs selector"
+msgstr ""
+
+#: omp-general.cc:1345 omp-general.cc:1350
+#, gcc-internal-format
+msgid "unknown property %qs of %qs selector"
+msgstr ""
+
+#: omp-general.cc:1402
+#, gcc-internal-format
+msgid "%qD used as a variant with incompatible %<construct%> selector sets"
+msgstr ""
+
+#: omp-general.cc:3005
+#, gcc-internal-format
+msgid "%qs specifies a conflicting level of parallelism"
+msgstr ""
+
+#: omp-general.cc:3008
+#, gcc-internal-format
+msgid "... to the previous %qs clause here"
+msgstr ""
+
+#: omp-general.cc:3043
+#, gcc-internal-format
+msgid "cannot apply %<%s%> to %qD, which has also been marked with an OpenMP 'declare target' directive"
+msgstr ""
+
+#: omp-general.cc:3097
+#, gcc-internal-format
+msgid "incompatible %qs clause when applying %<%s%> to %qD, which has already been marked with an OpenACC 'routine' directive"
+msgstr ""
+
+#: omp-general.cc:3104
+#, gcc-internal-format
+msgid "missing %qs clause when applying %<%s%> to %qD, which has already been marked with an OpenACC 'routine' directive"
+msgstr ""
+
+#: omp-general.cc:3113
+#, gcc-internal-format
+msgid "... with %qs clause here"
+msgstr ""
+
+#: omp-general.cc:3121
+#, gcc-internal-format
+msgid "... without %qs clause near to here"
+msgstr ""
+
+#: omp-low.cc:1167
+#, gcc-internal-format
+msgid "%<allocate%> clause must specify an allocator here"
+msgstr ""
+
+#: omp-low.cc:2745 omp-offload.cc:1518
+#, gcc-internal-format
+msgid "%<seq%> overrides other OpenACC loop specifiers"
+msgstr ""
+
+#: omp-low.cc:2748 omp-offload.cc:1519
+#, gcc-internal-format
+msgid "%<auto%> conflicts with other OpenACC loop specifiers"
+msgstr ""
+
+#: omp-low.cc:2752 omp-offload.cc:1553
+#, gcc-internal-format
+msgid "inner loop uses same OpenACC parallelism as containing loop"
+msgstr ""
+
+#: omp-low.cc:2803
+#, gcc-internal-format
+msgid "argument not permitted on %qs clause"
+msgstr ""
+
+#: omp-low.cc:2807
+#, gcc-internal-format
+msgid "enclosing parent compute construct"
+msgstr ""
+
+#: omp-low.cc:2810
+#, gcc-internal-format
+msgid "enclosing routine"
+msgstr ""
+
+#: omp-low.cc:2851
+#, gcc-internal-format
+msgid "conflicting reduction operations for %qE"
+msgstr ""
+
+#: omp-low.cc:2855
+#, gcc-internal-format
+msgid "location of the previous reduction for %qE"
+msgstr ""
+
+#: omp-low.cc:2888
+#, gcc-internal-format
+msgid "nested loop in reduction needs reduction clause for %qE"
+msgstr ""
+
+#: omp-low.cc:3145
+#, gcc-internal-format
+msgid "%<target%> construct with nested %<teams%> construct contains directives outside of the %<teams%> construct"
+msgstr ""
+
+#: omp-low.cc:3203
+#, gcc-internal-format
+msgid "non-OpenACC construct inside of OpenACC routine"
+msgstr ""
+
+#: omp-low.cc:3212
+#, gcc-internal-format
+msgid "non-OpenACC construct inside of OpenACC region"
+msgstr ""
+
+#: omp-low.cc:3227
+#, gcc-internal-format
+msgid "OpenMP constructs are not allowed in target region with %<ancestor%>"
+msgstr ""
+
+#: omp-low.cc:3252 omp-low.cc:3319
+#, gcc-internal-format
+msgid "OpenMP constructs other than %<parallel%>, %<loop%> or %<simd%> may not be nested inside a region with the %<order(concurrent)%> clause"
+msgstr ""
+
+#: omp-low.cc:3271
+#, gcc-internal-format
+msgid "%<ordered simd threads%> must be closely nested inside of %<%s simd%> region"
+msgstr ""
+
+#: omp-low.cc:3287
+#, gcc-internal-format
+msgid "OpenMP constructs other than %<ordered simd%>, %<simd%>, %<loop%> or %<atomic%> may not be nested inside %<simd%> region"
+msgstr ""
+
+#: omp-low.cc:3301
+#, gcc-internal-format
+msgid "only %<distribute%>, %<parallel%> or %<loop%> regions are allowed to be strictly nested inside %<teams%> region"
+msgstr ""
+
+#: omp-low.cc:3315
+#, gcc-internal-format
+msgid "OpenMP constructs other than %<parallel%>, %<loop%> or %<simd%> may not be nested inside a %<loop%> region"
+msgstr ""
+
+#: omp-low.cc:3335
+#, gcc-internal-format
+msgid "%<distribute%> region must be strictly nested inside %<teams%> construct"
+msgstr ""
+
+#: omp-low.cc:3384
+#, gcc-internal-format
+msgid "OpenACC loop directive must be associated with an OpenACC compute region"
+msgstr ""
+
+#: omp-low.cc:3406
+#, gcc-internal-format
+msgid "orphaned %qs construct"
+msgstr ""
+
+#: omp-low.cc:3435
+#, gcc-internal-format
+msgid "%<cancel for%> inside %<nowait%> for construct"
+msgstr ""
+
+#: omp-low.cc:3440
+#, gcc-internal-format
+msgid "%<cancel for%> inside %<ordered%> for construct"
+msgstr ""
+
+#: omp-low.cc:3460 omp-low.cc:3473
+#, gcc-internal-format
+msgid "%<cancel sections%> inside %<nowait%> sections construct"
+msgstr ""
+
+#: omp-low.cc:3502
+#, gcc-internal-format
+msgid "%<%s taskgroup%> construct not closely nested inside of %<taskgroup%> region"
+msgstr ""
+
+#: omp-low.cc:3527
+#, gcc-internal-format
+msgid "invalid arguments"
+msgstr ""
+
+#: omp-low.cc:3533
+#, gcc-internal-format
+msgid "%<%s %s%> construct not closely nested inside of %qs"
+msgstr ""
+
+#: omp-low.cc:3562
+#, gcc-internal-format
+msgid "barrier region may not be closely nested inside of work-sharing, %<loop%>, %<critical%>, %<ordered%>, %<master%>, %<masked%>, explicit %<task%> or %<taskloop%> region"
+msgstr ""
+
+#: omp-low.cc:3569
+#, gcc-internal-format
+msgid "work-sharing region may not be closely nested inside of work-sharing, %<loop%>, %<critical%>, %<ordered%>, %<master%>, %<masked%>, explicit %<task%> or %<taskloop%> region"
+msgstr ""
+
+#: omp-low.cc:3600
+#, gcc-internal-format
+msgid "%qs region may not be closely nested inside of work-sharing, %<loop%>, explicit %<task%> or %<taskloop%> region"
+msgstr ""
+
+#: omp-low.cc:3635
+#, gcc-internal-format
+msgid "%<scope%> region may not be closely nested inside of work-sharing, %<loop%>, explicit %<task%>, %<taskloop%>, %<critical%>, %<ordered%>, %<master%>, or %<masked%> region"
+msgstr ""
+
+#: omp-low.cc:3658
+#, gcc-internal-format
+msgid "%<%s(%s)%> is only allowed in %<omp ordered%>"
+msgstr ""
+
+#: omp-low.cc:3673
+#, gcc-internal-format
+msgid "invalid depend kind in omp %<ordered%> %<depend%>"
+msgstr ""
+
+#: omp-low.cc:3690
+#, gcc-internal-format
+msgid "%<ordered%> construct with %<depend%> clause must be closely nested inside an %<ordered%> loop"
+msgstr ""
+
+#: omp-low.cc:3706
+#, gcc-internal-format
+msgid "%<ordered%> %<simd%> must be closely nested inside %<simd%> region"
+msgstr ""
+
+#: omp-low.cc:3719
+#, gcc-internal-format
+msgid "%<ordered%> region may not be closely nested inside of %<critical%>, %<ordered%>, explicit %<task%> or %<taskloop%> region"
+msgstr ""
+
+#: omp-low.cc:3732 omp-low.cc:3777
+#, gcc-internal-format
+msgid "%<ordered%> region must be closely nested inside a loop region with an %<ordered%> clause"
+msgstr ""
+
+#: omp-low.cc:3741
+#, gcc-internal-format
+msgid "%<ordered%> construct without %<doacross%> or %<depend%> clauses must not have the same binding region as %<ordered%> construct with those clauses"
+msgstr ""
+
+#: omp-low.cc:3760
+#, gcc-internal-format
+msgid "%<ordered%> construct without %<doacross%> or %<depend%> clauses binds to loop where %<collapse%> argument %wd is different from %<ordered%> argument %wd"
+msgstr ""
+
+#: omp-low.cc:3794
+#, gcc-internal-format
+msgid "%<critical%> region may not be nested inside a %<critical%> region with the same name"
+msgstr ""
+
+#: omp-low.cc:3812
+#, gcc-internal-format
+msgid "%<teams%> construct must be closely nested inside of %<target%> construct or not nested in any OpenMP construct"
+msgstr ""
+
+#: omp-low.cc:3824 c-family/c-omp.cc:721
+#, gcc-internal-format
+msgid "%<depend(%s)%> is only allowed in %<omp ordered%>"
+msgstr ""
+
+#: omp-low.cc:3832
+#, gcc-internal-format
+msgid "OpenACC region inside of OpenACC routine, nested parallelism not supported yet"
+msgstr ""
+
+#: omp-low.cc:3845
+#, gcc-internal-format
+msgid "OpenACC construct inside of non-OpenACC region"
+msgstr ""
+
+#: omp-low.cc:3906
+#, gcc-internal-format
+msgid "%s %qs construct inside of %s %qs region"
+msgstr ""
+
+#: omp-low.cc:3919 omp-low.cc:3936
+#, gcc-internal-format
+msgid "%qs construct inside of %qs region"
+msgstr ""
+
+#: omp-low.cc:4076
+#, gcc-internal-format
+msgid "setjmp/longjmp inside %<simd%> construct"
+msgstr ""
+
+#: omp-low.cc:4102
+#, gcc-internal-format
+msgid "OpenMP runtime API call %qD in a region with %<order(concurrent)%> clause"
+msgstr ""
+
+#: omp-low.cc:4118
+#, gcc-internal-format
+msgid "OpenMP runtime API call %qD strictly nested in a %<teams%> region"
+msgstr ""
+
+#: omp-low.cc:4130
+#, gcc-internal-format
+msgid "OpenMP runtime API call %qD in a region with %<device(ancestor)%> clause"
+msgstr ""
+
+#: omp-low.cc:9791
+#, gcc-internal-format
+msgid "ignoring %<sink%> clause with offset that is not a multiple of the loop step"
+msgstr ""
+
+#: omp-low.cc:9814
+#, gcc-internal-format
+msgid "first offset must be in opposite direction of loop iterations"
+msgstr ""
+
+#: omp-low.cc:14761
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid exit from %s structured block"
+msgstr ""
+
+#: omp-low.cc:14763 omp-low.cc:14768
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid entry to %s structured block"
+msgstr ""
+
+#. Otherwise, be vague and lazy, but efficient.
+#: omp-low.cc:14772
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid branch to/from %s structured block"
+msgstr ""
+
+#. ..., but due to bugs (PR100400), we may actually come here.
+#. Reliably catch this, regardless of checking level.
+#: omp-oacc-kernels-decompose.cc:248
+#, gcc-internal-format
+msgid "PR100400"
+msgstr ""
+
+#: omp-oacc-kernels-decompose.cc:261
+#, gcc-internal-format
+msgid "conditionally executed loop in %<kernels%> region will be executed by a single gang; ignoring %<gang%> clause"
+msgstr ""
+
+#. No need to recurse into nested statements; no loop nested inside
+#. this loop can be gang-partitioned.
+#: omp-oacc-kernels-decompose.cc:277
+#, gcc-internal-format
+msgid "%<gang%> loop in %<gang-single%> region"
+msgstr ""
+
+#: omp-oacc-kernels-decompose.cc:487
+#, gcc-internal-format
+msgid "cannot honor conflicting %qs clause"
+msgstr ""
+
+#: omp-oacc-kernels-decompose.cc:490
+#, gcc-internal-format
+msgid "location of the previous clause in the same loop nest"
+msgstr ""
+
+#: omp-oacc-kernels-decompose.cc:569
+#, gcc-internal-format
+msgid "argument not permitted on %qs clause in OpenACC %<kernels%> region with a %qs clause"
+msgstr ""
+
+#: omp-oacc-kernels-decompose.cc:573
+#, gcc-internal-format
+msgid "location of OpenACC %<kernels%>"
+msgstr ""
+
+#: omp-oacc-kernels-decompose.cc:1295
+#, gcc-internal-format
+msgid "%qs not yet supported"
+msgstr ""
+
+#: omp-oacc-neuter-broadcast.cc:1764
+#, gcc-internal-format
+msgid "shared-memory region overflow"
+msgstr ""
+
+#: omp-offload.cc:316
+#, gcc-internal-format
+msgid "%qD specified both in declare target %<link%> and implicitly in %<to%> clauses"
+msgstr ""
+
+#: omp-offload.cc:929
+#, gcc-internal-format
+msgid "%<-fopenacc-dim%> operand is malformed at %qs"
+msgstr ""
+
+#: omp-offload.cc:981
+#, gcc-internal-format, gfc-internal-format
+msgid "region contains %s partitioned code but is not %s partitioned"
+msgstr ""
+
+#: omp-offload.cc:987
+#, gcc-internal-format, gfc-internal-format
+msgid "region is %s partitioned but does not contain %s partitioned code"
+msgstr ""
+
+#: omp-offload.cc:1477
+#, gcc-internal-format
+msgid "gang reduction on an orphan loop"
+msgstr ""
+
+#: omp-offload.cc:1551
+#, gcc-internal-format
+msgid "routine call uses same OpenACC parallelism as containing loop"
+msgstr ""
+
+#: omp-offload.cc:1555 omp-offload.cc:1587
+#, gcc-internal-format
+msgid "containing loop here"
+msgstr ""
+
+#: omp-offload.cc:1560
+#, gcc-internal-format
+msgid "routine call uses OpenACC parallelism disallowed by containing routine"
+msgstr ""
+
+#: omp-offload.cc:1562
+#, gcc-internal-format
+msgid "loop uses OpenACC parallelism disallowed by containing routine"
+msgstr ""
+
+#: omp-offload.cc:1567
+#, gcc-internal-format
+msgid "routine %qD declared here"
+msgstr ""
+
+#: omp-offload.cc:1580
+#, gcc-internal-format
+msgid "incorrectly nested OpenACC loop parallelism"
+msgstr ""
+
+#: omp-offload.cc:1721
+#, gcc-internal-format
+msgid "insufficient partitioning available to parallelize element loop"
+msgstr ""
+
+#: omp-offload.cc:1729
+#, gcc-internal-format
+msgid "insufficient partitioning available to parallelize tile loop"
+msgstr ""
+
+#: omp-offload.cc:1731
+#, gcc-internal-format
+msgid "insufficient partitioning available to parallelize loop"
+msgstr ""
+
+#: omp-simd-clone.cc:391
+#, gcc-internal-format
+msgid "ignoring large linear step"
+msgstr ""
+
+#: omp-simd-clone.cc:397
+#, gcc-internal-format
+msgid "ignoring zero linear step"
+msgstr ""
+
+#: omp-simd-clone.cc:459
+#, gcc-internal-format
+msgid "ignoring %<#pragma omp declare simd%> on function with %<_Atomic%> qualified return type"
+msgstr ""
+
+#: omp-simd-clone.cc:469
+#, gcc-internal-format
+msgid "ignoring %<#pragma omp declare simd%> on function with %<_Atomic%> qualified non-%<uniform%> argument"
+msgstr ""
+
+#: optabs.cc:5020
+#, gcc-internal-format
+msgid "indirect jumps are not available on this target"
+msgstr ""
+
+#: optinfo-emit-json.cc:113
+#, gcc-internal-format
+msgid "cannot open file %qs for writing optimization records"
+msgstr ""
+
+#: optinfo-emit-json.cc:121
+#, gcc-internal-format
+msgid "error writing optimization records to %qs: %s"
+msgstr ""
+
+#: optinfo-emit-json.cc:130
+#, gcc-internal-format
+msgid "error closing optimization records %qs"
+msgstr ""
+
+#: opts-common.cc:1447
+#, gcc-internal-format
+msgid "command-line option %qs is not supported by this configuration"
+msgstr ""
+
+#: opts-common.cc:1457 opts.cc:2576
+#, gcc-internal-format
+msgid "missing argument to %qs"
+msgstr ""
+
+#: opts-common.cc:1464
+#, gcc-internal-format
+msgid "argument to %qs should be a non-negative integer optionally followed by a size unit"
+msgstr ""
+
+#: opts-common.cc:1468
+#, gcc-internal-format
+msgid "argument to %qs should be a non-negative integer"
+msgstr ""
+
+#: opts-common.cc:1475
+#, gcc-internal-format
+msgid "argument to %qs is not between %d and %d"
+msgstr ""
+
+#: opts-common.cc:1539
+#, gcc-internal-format
+msgid "invalid argument in option %qs"
+msgstr ""
+
+#: opts-common.cc:1541
+#, gcc-internal-format
+msgid "%qs specified multiple times in the same option"
+msgstr ""
+
+#: opts-common.cc:1544
+#, gcc-internal-format
+msgid "%qs is mutually exclusive with %qs and cannot be specified together"
+msgstr ""
+
+#: opts-common.cc:1566
+#, gcc-internal-format
+msgid "unrecognized argument in option %qs"
+msgstr ""
+
+#: opts-common.cc:1577 config/i386/i386-options.cc:1703
+#, gcc-internal-format
+msgid "valid arguments to %qs are: %s; did you mean %qs?"
+msgstr ""
+
+#: opts-common.cc:1580 config/i386/i386-options.cc:1706
+#, gcc-internal-format
+msgid "valid arguments to %qs are: %s"
+msgstr ""
+
+#: opts-common.cc:1623 c-family/c-opts.cc:471
+#, gcc-internal-format
+msgid "switch %qs is no longer supported"
+msgstr ""
+
+#: opts-common.cc:1683
+#, gcc-internal-format
+msgid "argument to %qs is bigger than %d"
+msgstr ""
+
+#: opts-common.cc:2030
+#, gcc-internal-format
+msgid "malformed %<COLLECT_GCC_OPTIONS%>"
+msgstr ""
+
+#: opts-global.cc:107
+#, gcc-internal-format
+msgid "command-line option %qs is valid for the driver but not for %s"
+msgstr ""
+
+#. Eventually this should become a hard error IMO.
+#: opts-global.cc:113
+#, gcc-internal-format
+msgid "command-line option %qs is valid for %s but not for %s"
+msgstr ""
+
+#. Happens for -Werror=warning_name.
+#: opts-global.cc:117
+#, gcc-internal-format
+msgid "%<-Werror=%> argument %qs is not valid for %s"
+msgstr ""
+
+#: opts-global.cc:149
+#, gcc-internal-format
+msgid "unrecognized command-line option %qs may have been intended to silence earlier diagnostics"
+msgstr ""
+
+#: opts-global.cc:409
+#, gcc-internal-format
+msgid "unrecognized command-line option %<-fopt-info-%s%>"
+msgstr ""
+
+#: opts-global.cc:430 opts-global.cc:439 m2/gm2spec.cc:544
+#, gcc-internal-format
+msgid "plugin support is disabled; configure with %<--enable-plugin%>"
+msgstr ""
+
+#: opts-global.cc:464
+#, gcc-internal-format
+msgid "unrecognized register name %qs"
+msgstr ""
+
+#: opts-global.cc:482
+#, gcc-internal-format
+msgid "%<-fasan-shadow-offset%> should only be used with %<-fsanitize=kernel-address%>"
+msgstr ""
+
+#: opts-global.cc:485
+#, gcc-internal-format
+msgid "unrecognized shadow offset %qs"
+msgstr ""
+
+#: opts.cc:234
+#, gcc-internal-format
+msgid "argument %qs to %<-femit-struct-debug-detailed%> not recognized"
+msgstr ""
+
+#: opts.cc:270
+#, gcc-internal-format
+msgid "argument %qs to %<-femit-struct-debug-detailed%> unknown"
+msgstr ""
+
+#: opts.cc:277
+#, gcc-internal-format
+msgid "%<-femit-struct-debug-detailed=dir:...%> must allow at least as much as %<-femit-struct-debug-detailed=ind:...%>"
+msgstr ""
+
+#: opts.cc:743
+#, gcc-internal-format
+msgid "argument to %<-O%> should be a non-negative integer, %<g%>, %<s%>, %<z%> or %<fast%>"
+msgstr ""
+
+#: opts.cc:849 opts.cc:855 opts.cc:861 opts.cc:867 opts.cc:878 opts.cc:888
+#: opts.cc:894 opts.cc:900 opts.cc:906 opts.cc:912 opts.cc:918 opts.cc:924
+#: opts.cc:930 opts.cc:936 opts.cc:953 opts.cc:961 config/mips/mips.cc:20420
+#: config/mips/mips.cc:20422 config/mips/mips.cc:20435
+#, gcc-internal-format
+msgid "%qs is incompatible with %qs"
+msgstr ""
+
+#: opts.cc:943
+#, gcc-internal-format
+msgid "%<-fipa-modref%> is incompatible with %qs"
+msgstr ""
+
+#: opts.cc:1023
+#, gcc-internal-format
+msgid "%<-fsanitize=%s%> is incompatible with %<-fsanitize=%s%>"
+msgstr ""
+
+#: opts.cc:1061
+#, gcc-internal-format
+msgid "section anchors must be disabled when unit-at-a-time is disabled"
+msgstr ""
+
+#: opts.cc:1065
+#, gcc-internal-format
+msgid "toplevel reorder must be disabled when unit-at-a-time is disabled"
+msgstr ""
+
+#: opts.cc:1079
+#, gcc-internal-format
+msgid "transactional memory is not supported with non-call exceptions"
+msgstr ""
+
+#: opts.cc:1094
+#, gcc-internal-format
+msgid "section anchors must be disabled when toplevel reorder is disabled"
+msgstr ""
+
+#: opts.cc:1105
+#, gcc-internal-format
+msgid "%<-ftrivial-auto-var-init=zero%> is not enabled by %<-fhardened%> because it was specified on the command line"
+msgstr ""
+
+#: opts.cc:1155
+#, gcc-internal-format
+msgid "%<-fstack-protector-strong%> is not enabled by %<-fhardened%> because it was specified on the command line"
+msgstr ""
+
+#: opts.cc:1200
+#, gcc-internal-format
+msgid "%<-fno-fat-lto-objects%> are supported only with linker plugin"
+msgstr ""
+
+#: opts.cc:1208
+#, gcc-internal-format
+msgid "%<-gsplit-dwarf%> is not supported with LTO, disabling"
+msgstr ""
+
+#: opts.cc:1222
+#, gcc-internal-format
+msgid "%<-fsplit-stack%> is not supported by this compiler configuration"
+msgstr ""
+
+#: opts.cc:1249
+#, gcc-internal-format
+msgid "%<-fsanitize=pointer-compare%> must be combined with %<-fsanitize=address%> or %<-fsanitize=kernel-address%>"
+msgstr ""
+
+#: opts.cc:1253
+#, gcc-internal-format
+msgid "%<-fsanitize=pointer-subtract%> must be combined with %<-fsanitize=address%> or %<-fsanitize=kernel-address%>"
+msgstr ""
+
+#: opts.cc:1280
+#, gcc-internal-format
+msgid "%<-fsanitize-recover=%s%> is not supported"
+msgstr ""
+
+#: opts.cc:1292 opts.cc:2288
+#, gcc-internal-format
+msgid "%<-fsanitize-trap=%s%> is not supported"
+msgstr ""
+
+#: opts.cc:1319
+#, gcc-internal-format
+msgid "%<-fsanitize-address-use-after-scope%> requires %<-fstack-reuse=none%> option"
+msgstr ""
+
+#: opts.cc:1326
+#, gcc-internal-format
+msgid "transactional memory is not supported with %<-fsanitize=address%>"
+msgstr ""
+
+#: opts.cc:1329
+#, gcc-internal-format
+msgid "transactional memory is not supported with %<-fsanitize=kernel-address%>"
+msgstr ""
+
+#: opts.cc:1334
+#, gcc-internal-format
+msgid "live patching (with %qs) is not supported with LTO"
+msgstr ""
+
+#: opts.cc:1339
+#, gcc-internal-format
+msgid "vtable verification is not supported with LTO"
+msgstr ""
+
+#: opts.cc:1414
+#, gcc-internal-format
+msgid "variable tracking requested, but useless unless producing debug info"
+msgstr ""
+
+#: opts.cc:1418
+#, gcc-internal-format
+msgid "variable tracking requested, but not supported by this debug format"
+msgstr ""
+
+#: opts.cc:1447
+#, gcc-internal-format
+msgid "var-tracking-assignments changes selective scheduling"
+msgstr ""
+
+#: opts.cc:1460
+#, gcc-internal-format
+msgid "%<-Wstrict-flex-arrays%> is ignored when %<-fstrict-flex-arrays%> is not present"
+msgstr ""
+
+#: opts.cc:1490 config/darwin.cc:3484
+#, gcc-internal-format
+msgid "%<-freorder-blocks-and-partition%> does not work with exceptions on this architecture"
+msgstr ""
+
+#: opts.cc:1506
+#, gcc-internal-format
+msgid "%<-freorder-blocks-and-partition%> does not support unwind info on this architecture"
+msgstr ""
+
+#: opts.cc:1524 config/pa/pa.cc:576
+#, gcc-internal-format
+msgid "%<-freorder-blocks-and-partition%> does not work on this architecture"
+msgstr ""
+
+#: opts.cc:2033
+#, gcc-internal-format
+msgid "unrecognized %<include_flags 0x%x%> passed to %<print_specific_help%>"
+msgstr ""
+
+#: opts.cc:2267
+#, gcc-internal-format
+msgid "%<-fsanitize=all%> option is not valid"
+msgstr ""
+
+#: opts.cc:2322
+#, gcc-internal-format
+msgid "unrecognized argument to %<-f%ssanitize%s=%> option: %q.*s; did you mean %qs?"
+msgstr ""
+
+#: opts.cc:2328
+#, gcc-internal-format
+msgid "unrecognized argument to %<-f%ssanitize%s=%> option: %q.*s"
+msgstr ""
+
+#: opts.cc:2363
+#, gcc-internal-format
+msgid "%qs attribute directive ignored"
+msgstr ""
+
+#: opts.cc:2387
+#, gcc-internal-format
+msgid "unrecognized argument to %<-fzero-call-used-regs=%>: %qs"
+msgstr ""
+
+#: opts.cc:2411
+#, gcc-internal-format
+msgid "invalid arguments for %<-falign-%s%> option: %qs"
+msgstr ""
+
+#: opts.cc:2426
+#, gcc-internal-format
+msgid "invalid number of arguments for %<-falign-%s%> option: %qs"
+msgstr ""
+
+#: opts.cc:2435
+#, gcc-internal-format
+msgid "%<-falign-%s%> is not between 0 and %d"
+msgstr ""
+
+#: opts.cc:2494
+#, gcc-internal-format
+msgid "invalid arguments for %<-fpatchable-function-entry%>"
+msgstr ""
+
+#: opts.cc:2631
+#, gcc-internal-format
+msgid "%<--help%> argument %q.*s is ambiguous, please be more specific"
+msgstr ""
+
+#: opts.cc:2642
+#, gcc-internal-format
+msgid "unrecognized argument to %<--help=%> option: %q.*s"
+msgstr ""
+
+#: opts.cc:2822
+#, gcc-internal-format
+msgid "arguments ignored for %<-Wattributes=%>; use %<-Wno-attributes=%> instead"
+msgstr ""
+
+#: opts.cc:2828
+#, gcc-internal-format
+msgid "trailing %<,%> in arguments for %<-Wno-attributes=%>"
+msgstr ""
+
+#: opts.cc:3054
+#, gcc-internal-format
+msgid "%<-foffload-abi%> option can be specified only for offload compiler"
+msgstr ""
+
+#: opts.cc:3062
+#, gcc-internal-format
+msgid "structure alignment must be a small power of two, not %wu"
+msgstr ""
+
+#: opts.cc:3183
+#, gcc-internal-format
+msgid "unknown stack check parameter %qs"
+msgstr ""
+
+#: opts.cc:3232
+#, gcc-internal-format
+msgid "%<-gdwarf%s%> is ambiguous; use %<-gdwarf-%s%> for DWARF version or %<-gdwarf%> %<-g%s%> for debug level"
+msgstr ""
+
+#: opts.cc:3243
+#, gcc-internal-format
+msgid "dwarf version %wu is not supported"
+msgstr ""
+
+#: opts.cc:3280
+#, gcc-internal-format
+msgid "unrecognized argument to %<-flto=%> option: %qs"
+msgstr ""
+
+#: opts.cc:3480
+#, gcc-internal-format
+msgid "target system does not support debug output"
+msgstr ""
+
+#: opts.cc:3518
+#, gcc-internal-format
+msgid "debug format %qs conflicts with prior selection"
+msgstr ""
+
+#: opts.cc:3542
+#, gcc-internal-format
+msgid "unrecognized debug output level %qs"
+msgstr ""
+
+#: opts.cc:3544
+#, gcc-internal-format
+msgid "debug output level %qs is too high"
+msgstr ""
+
+#: opts.cc:3556
+#, gcc-internal-format
+msgid "unrecognized btf debug output level %qs"
+msgstr ""
+
+#: opts.cc:3573
+#, gcc-internal-format
+msgid "getting core file size maximum limit: %m"
+msgstr ""
+
+#: opts.cc:3577
+#, gcc-internal-format
+msgid "setting core file size limit to maximum: %m"
+msgstr ""
+
+#: opts.cc:3622
+#, gcc-internal-format, gfc-internal-format
+msgid "unrecognized gcc debugging option: %c"
+msgstr ""
+
+#: opts.cc:3651
+#, gcc-internal-format
+msgid "%<-W%serror=%s%>: no option %<-%s%>; did you mean %<-%s%>?"
+msgstr ""
+
+#: opts.cc:3655
+#, gcc-internal-format
+msgid "%<-W%serror=%s%>: no option %<-%s%>"
+msgstr ""
+
+#: opts.cc:3659
+#, gcc-internal-format
+msgid "%<-Werror=%s%>: %<-%s%> is not an option that controls warnings"
+msgstr ""
+
+#: passes.cc:84
+#, gcc-internal-format, gfc-internal-format
+msgid "pass %s does not support cloning"
+msgstr ""
+
+#: passes.cc:90
+#, gcc-internal-format
+msgid "pass %s needs a %<set_pass_param%> implementation to handle the extra argument in %<NEXT_PASS%>"
+msgstr ""
+
+#: passes.cc:1073
+#, gcc-internal-format
+msgid "unrecognized option %<-fenable%>"
+msgstr ""
+
+#: passes.cc:1075
+#, gcc-internal-format
+msgid "unrecognized option %<-fdisable%>"
+msgstr ""
+
+#: passes.cc:1083
+#, gcc-internal-format
+msgid "unknown pass %s specified in %<-fenable%>"
+msgstr ""
+
+#: passes.cc:1085
+#, gcc-internal-format
+msgid "unknown pass %s specified in %<-fdisable%>"
+msgstr ""
+
+#: passes.cc:1110 passes.cc:1199
+#, gcc-internal-format, gfc-internal-format
+msgid "enable pass %s for functions in the range of [%u, %u]"
+msgstr ""
+
+#: passes.cc:1113 passes.cc:1210
+#, gcc-internal-format, gfc-internal-format
+msgid "disable pass %s for functions in the range of [%u, %u]"
+msgstr ""
+
+#: passes.cc:1149 passes.cc:1177
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid range %s in option %s"
+msgstr ""
+
+#: passes.cc:1195
+#, gcc-internal-format, gfc-internal-format
+msgid "enable pass %s for function %s"
+msgstr ""
+
+#: passes.cc:1206
+#, gcc-internal-format, gfc-internal-format
+msgid "disable pass %s for function %s"
+msgstr ""
+
+#: passes.cc:1435
+#, gcc-internal-format
+msgid "invalid pass positioning operation"
+msgstr ""
+
+#: passes.cc:1496
+#, gcc-internal-format
+msgid "plugin cannot register a missing pass"
+msgstr ""
+
+#: passes.cc:1499
+#, gcc-internal-format
+msgid "plugin cannot register an unnamed pass"
+msgstr ""
+
+#: passes.cc:1504
+#, gcc-internal-format
+msgid "plugin cannot register pass %qs without reference pass name"
+msgstr ""
+
+#: passes.cc:1523
+#, gcc-internal-format
+msgid "pass %qs not found but is referenced by new pass %qs"
+msgstr ""
+
+#: plugin.cc:213
+#, gcc-internal-format
+msgid "inaccessible plugin file %s expanded from short plugin name %s: %m"
+msgstr ""
+
+#: plugin.cc:235
+#, gcc-internal-format
+msgid "plugin %qs was specified with different paths: %qs and %qs"
+msgstr ""
+
+#: plugin.cc:294
+#, gcc-internal-format
+msgid "malformed option %<-fplugin-arg-%s%>: missing %<-<key>[=<value>]%>"
+msgstr ""
+
+#: plugin.cc:358
+#, gcc-internal-format
+msgid "plugin %s should be specified before %<-fplugin-arg-%s%> in the command line"
+msgstr ""
+
+#: plugin.cc:377
+#, gcc-internal-format
+msgid "unable to register info for plugin %qs - plugin name not found"
+msgstr ""
+
+#: plugin.cc:473
+#, gcc-internal-format, gfc-internal-format
+msgid "unknown callback event registered by plugin %s"
+msgstr ""
+
+#: plugin.cc:506
+#, gcc-internal-format, gfc-internal-format
+msgid "plugin %s registered a null callback function for event %s"
+msgstr ""
+
+#: plugin.cc:640
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"cannot load plugin %s\n"
+"%s"
+msgstr ""
+
+#: plugin.cc:651
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"plugin %s is not licensed under a GPL-compatible license\n"
+"%s"
+msgstr ""
+
+#: plugin.cc:664
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"cannot find %s in plugin %s\n"
+"%s"
+msgstr ""
+
+#: plugin.cc:674
+#, gcc-internal-format, gfc-internal-format
+msgid "fail to initialize plugin %s"
+msgstr ""
+
+#: plugin.cc:707
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot load plugin %s: %s"
+msgstr ""
+
+#: plugin.cc:717
+#, gcc-internal-format, gfc-internal-format
+msgid "plugin %s is not licensed under a GPL-compatible license %s"
+msgstr ""
+
+#: plugin.cc:727
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot find %s in plugin %s: %s"
+msgstr ""
+
+#: plugin.cc:736
+#, gcc-internal-format, gfc-internal-format
+msgid "failed to initialize plugin %s"
+msgstr ""
+
+#: plugin.cc:1048
+#, gcc-internal-format
+msgid "%<-iplugindir%> option not passed from the gcc driver"
+msgstr ""
+
+#: pointer-query.cc:1201
+#, gcc-internal-format
+msgid "destination object is likely at address zero"
+msgstr ""
+
+#: pointer-query.cc:1203
+#, gcc-internal-format
+msgid "source object is likely at address zero"
+msgstr ""
+
+#: pointer-query.cc:1213
+#, gcc-internal-format
+msgid "at offset %s into destination object %qE of size %s"
+msgstr ""
+
+#: pointer-query.cc:1216
+#, gcc-internal-format
+msgid "destination object %qE of size %s"
+msgstr ""
+
+#: pointer-query.cc:1222
+#, gcc-internal-format
+msgid "at offset %s into destination object of size %s allocated by %qE"
+msgstr ""
+
+#: pointer-query.cc:1225
+#, gcc-internal-format
+msgid "destination object of size %s allocated by %qE"
+msgstr ""
+
+#: pointer-query.cc:1235
+#, gcc-internal-format
+msgid "at offset %s into source object %qE of size %s"
+msgstr ""
+
+#: pointer-query.cc:1238
+#, gcc-internal-format
+msgid "source object %qE of size %s"
+msgstr ""
+
+#: pointer-query.cc:1245
+#, gcc-internal-format
+msgid "at offset %s into source object of size %s allocated by %qE"
+msgstr ""
+
+#: pointer-query.cc:1248
+#, gcc-internal-format
+msgid "source object of size %s allocated by %qE"
+msgstr ""
+
+#: pointer-query.cc:1256
+#, gcc-internal-format
+msgid "at offset %s into object %qE of size %s"
+msgstr ""
+
+#: pointer-query.cc:1259
+#, gcc-internal-format
+msgid "object %qE of size %s"
+msgstr ""
+
+#: pointer-query.cc:1266
+#, gcc-internal-format
+msgid "at offset %s into object of size %s allocated by %qE"
+msgstr ""
+
+#: pointer-query.cc:1269
+#, gcc-internal-format
+msgid "object of size %s allocated by %qE"
+msgstr ""
+
+#: predict.cc:2566
+#, gcc-internal-format
+msgid "probability %qE must be constant floating-point expression"
+msgstr ""
+
+#: predict.cc:2579
+#, gcc-internal-format
+msgid "probability %qE is outside the range [0.0, 1.0]"
+msgstr ""
+
+#: predict.cc:3640
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing counts for called function %s"
+msgstr ""
+
+#: profile.cc:628
+#, gcc-internal-format
+msgid "corrupted profile info: profile data is not flow-consistent"
+msgstr ""
+
+#: profile.cc:645
+#, gcc-internal-format, gfc-internal-format
+msgid "corrupted profile info: number of iterations for basic block %d thought to be %i"
+msgstr ""
+
+#: profile.cc:668
+#, gcc-internal-format, gfc-internal-format
+msgid "corrupted profile info: number of executions for edge %d-%d thought to be %i"
+msgstr ""
+
+#: profile.cc:977
+#, gcc-internal-format
+msgid "corrupted profile info: invalid time profile"
+msgstr ""
+
+#: read-rtl-function.cc:265
+#, gcc-internal-format, gfc-internal-format
+msgid "insn with UID %i not found for operand %i (`%s') of insn %i"
+msgstr ""
+
+#: read-rtl-function.cc:269
+#, gcc-internal-format, gfc-internal-format
+msgid "insn with UID %i not found for operand %i of insn %i"
+msgstr ""
+
+#: read-rtl-function.cc:412
+#, gcc-internal-format
+msgid "%<__RTL%> function cannot be compiled with %<-flto%>"
+msgstr ""
+
+#: read-rtl-function.cc:714
+#, gcc-internal-format
+msgid "unrecognized edge flag: %qs"
+msgstr ""
+
+#: read-rtl-function.cc:857
+#, gcc-internal-format
+msgid "more than one 'crtl' directive"
+msgstr ""
+
+#: read-rtl-function.cc:986
+#, gcc-internal-format
+msgid "unrecognized enum value: %qs"
+msgstr ""
+
+#: read-rtl-function.cc:1142 read-rtl-function.cc:1201
+#, gcc-internal-format, gfc-internal-format
+msgid "was expecting `%s'"
+msgstr ""
+
+#: read-rtl-function.cc:1595
+#, gcc-internal-format, gfc-internal-format
+msgid "duplicate insn UID: %i"
+msgstr ""
+
+#: read-rtl-function.cc:1656
+#, gcc-internal-format
+msgid "start/end of RTL fragment are in different files"
+msgstr ""
+
+#: read-rtl-function.cc:1662
+#, gcc-internal-format
+msgid "start of RTL fragment must be on an earlier line than end"
+msgstr ""
+
+#: read-rtl.cc:490 read-rtl.cc:521
+#, gcc-internal-format, gfc-internal-format
+msgid "ambiguous attribute '%s'; could be '%s' (via '%s:%s') or '%s' (via '%s:%s')"
+msgstr ""
+
+#: reg-stack.cc:545
+#, gcc-internal-format, gfc-internal-format
+msgid "output constraint %d must specify a single register"
+msgstr ""
+
+#: reg-stack.cc:555
+#, gcc-internal-format
+msgid "output constraint %d cannot be specified together with %qs clobber"
+msgstr ""
+
+#: reg-stack.cc:579
+#, gcc-internal-format
+msgid "output registers must be grouped at top of stack"
+msgstr ""
+
+#: reg-stack.cc:619
+#, gcc-internal-format
+msgid "implicitly popped registers must be grouped at top of stack"
+msgstr ""
+
+#: reg-stack.cc:637
+#, gcc-internal-format
+msgid "explicitly used registers must be grouped at top of stack"
+msgstr ""
+
+#: reg-stack.cc:657
+#, gcc-internal-format
+msgid "output operand %d must use %<&%> constraint"
+msgstr ""
+
+#: regcprop.cc:1254
+#, gcc-internal-format
+msgid "%qs: [%u] bad %<next_regno%> for empty chain (%u)"
+msgstr ""
+
+#: regcprop.cc:1266
+#, gcc-internal-format
+msgid "%qs: loop in %<next_regno%> chain (%u)"
+msgstr ""
+
+#: regcprop.cc:1269
+#, gcc-internal-format
+msgid "%qs: [%u] bad %<oldest_regno%> (%u)"
+msgstr ""
+
+#: regcprop.cc:1281
+#, gcc-internal-format
+msgid "%qs: [%u] non-empty register in chain (%s %u %i)"
+msgstr ""
+
+#: reginfo.cc:679
+#, gcc-internal-format
+msgid "cannot use %qs as a call-saved register"
+msgstr ""
+
+#: reginfo.cc:683
+#, gcc-internal-format
+msgid "cannot use %qs as a call-used register"
+msgstr ""
+
+#: reginfo.cc:695
+#, gcc-internal-format
+msgid "cannot use %qs as a fixed register"
+msgstr ""
+
+#: reginfo.cc:722 config/arc/arc.cc:1086 config/arc/arc.cc:1128
+#: config/ia64/ia64.cc:6047 config/ia64/ia64.cc:6054 config/pa/pa.cc:473
+#: config/pa/pa.cc:480 config/sh/sh.cc:8278 config/sh/sh.cc:8285
+#, gcc-internal-format, gfc-internal-format
+msgid "unknown register name: %s"
+msgstr ""
+
+#: reginfo.cc:735
+#, gcc-internal-format
+msgid "stack register used for global register variable"
+msgstr ""
+
+#: reginfo.cc:741
+#, gcc-internal-format
+msgid "global register variable follows a function definition"
+msgstr ""
+
+#: reginfo.cc:747
+#, gcc-internal-format
+msgid "register of %qD used for multiple global register variables"
+msgstr ""
+
+#: reginfo.cc:750 config/rs6000/rs6000-logue.cc:5567
+#, gcc-internal-format
+msgid "conflicts with %qD"
+msgstr ""
+
+#: reginfo.cc:755
+#, gcc-internal-format
+msgid "call-clobbered register used for global register variable"
+msgstr ""
+
+#: reload.cc:1312
+#, gcc-internal-format
+msgid "cannot reload integer constant operand in %<asm%>"
+msgstr ""
+
+#: reload.cc:1326
+#, gcc-internal-format
+msgid "impossible register constraint in %<asm%>"
+msgstr ""
+
+#: reload.cc:2672
+#, gcc-internal-format
+msgid "the target does not support %<asm goto%> with outputs in %<asm%>"
+msgstr ""
+
+#: reload.cc:3697
+#, gcc-internal-format
+msgid "%<&%> constraint used with no register class"
+msgstr ""
+
+#: reload1.cc:1242
+#, gcc-internal-format
+msgid "%<asm%> operand has impossible constraints"
+msgstr ""
+
+#: reload1.cc:2060
+#, gcc-internal-format
+msgid "cannot find a register in class %qs while reloading %<asm%>"
+msgstr ""
+
+#: reload1.cc:2065
+#, gcc-internal-format
+msgid "unable to find a register to spill in class %qs"
+msgstr ""
+
+#: reload1.cc:4582
+#, gcc-internal-format
+msgid "%<asm%> operand requires impossible reload"
+msgstr ""
+
+#: reload1.cc:5999
+#, gcc-internal-format
+msgid "%<asm%> operand constraint incompatible with operand size"
+msgstr ""
+
+#: reload1.cc:7877
+#, gcc-internal-format
+msgid "output operand is constant in %<asm%>"
+msgstr ""
+
+#: rtl.cc:741
+#, gcc-internal-format, gfc-internal-format
+msgid "RTL check: access of elt %d of '%s' with last elt %d in %s, at %s:%d"
+msgstr ""
+
+#: rtl.cc:751
+#, gcc-internal-format, gfc-internal-format
+msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr ""
+
+#: rtl.cc:761
+#, gcc-internal-format, gfc-internal-format
+msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+msgstr ""
+
+#: rtl.cc:770
+#, gcc-internal-format, gfc-internal-format
+msgid "RTL check: expected code '%s', have '%s' in %s, at %s:%d"
+msgstr ""
+
+#: rtl.cc:780
+#, gcc-internal-format, gfc-internal-format
+msgid "RTL check: expected code '%s' or '%s', have '%s' in %s, at %s:%d"
+msgstr ""
+
+#: rtl.cc:791
+#, gcc-internal-format, gfc-internal-format
+msgid "RTL check: expected code '%s', '%s' or '%s', have '%s' in %s, at %s:%d"
+msgstr ""
+
+#: rtl.cc:822
+#, gcc-internal-format, gfc-internal-format
+msgid "RTL check: attempt to treat non-block symbol as a block symbol in %s, at %s:%d"
+msgstr ""
+
+#: rtl.cc:832
+#, gcc-internal-format, gfc-internal-format
+msgid "RTL check: access of hwi elt %d of vector with last elt %d in %s, at %s:%d"
+msgstr ""
+
+#: rtl.cc:842
+#, gcc-internal-format, gfc-internal-format
+msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+msgstr ""
+
+#: rtl.cc:853
+#, gcc-internal-format, gfc-internal-format
+msgid "RTL flag check: %s used with unexpected rtx code '%s' in %s, at %s:%d"
+msgstr ""
+
+#: stmt.cc:215
+#, gcc-internal-format
+msgid "output operand constraint lacks %<=%>"
+msgstr ""
+
+#: stmt.cc:230
+#, gcc-internal-format
+msgid "output constraint %qc for operand %d is not at the beginning"
+msgstr ""
+
+#: stmt.cc:254
+#, gcc-internal-format
+msgid "operand constraint contains incorrectly positioned %<+%> or %<=%>"
+msgstr ""
+
+#: stmt.cc:261 stmt.cc:350
+#, gcc-internal-format
+msgid "%<%%%> constraint used with last operand"
+msgstr ""
+
+#: stmt.cc:277
+#, gcc-internal-format
+msgid "matching constraint not valid in output operand"
+msgstr ""
+
+#: stmt.cc:341
+#, gcc-internal-format
+msgid "input operand constraint contains %qc"
+msgstr ""
+
+#: stmt.cc:380
+#, gcc-internal-format
+msgid "matching constraint references invalid operand number"
+msgstr ""
+
+#: stmt.cc:414
+#, gcc-internal-format
+msgid "invalid punctuation %qc in constraint"
+msgstr ""
+
+#: stmt.cc:431
+#, gcc-internal-format
+msgid "matching constraint does not allow a register"
+msgstr ""
+
+#: stmt.cc:525
+#, gcc-internal-format
+msgid "duplicate %<asm%> operand name %qs"
+msgstr ""
+
+#: stmt.cc:622
+#, gcc-internal-format
+msgid "missing close brace for named operand"
+msgstr ""
+
+#: stmt.cc:651
+#, gcc-internal-format
+msgid "undefined named operand %qs"
+msgstr ""
+
+#: stor-layout.cc:830
+#, gcc-internal-format
+msgid "size of %q+D %E bytes exceeds maximum object size %wu"
+msgstr ""
+
+#: stor-layout.cc:1211
+#, gcc-internal-format
+msgid "alignment %u of %qT is less than %u"
+msgstr ""
+
+#: stor-layout.cc:1218
+#, gcc-internal-format
+msgid "%q+D offset %E in %qT isn%'t aligned to %u"
+msgstr ""
+
+#: stor-layout.cc:1221
+#, gcc-internal-format
+msgid "%q+D offset %E in %qT may not be aligned to %u"
+msgstr ""
+
+#: stor-layout.cc:1353
+#, gcc-internal-format
+msgid "packed attribute causes inefficient alignment for %q+D"
+msgstr ""
+
+#: stor-layout.cc:1357
+#, gcc-internal-format
+msgid "packed attribute is unnecessary for %q+D"
+msgstr ""
+
+#: stor-layout.cc:1377
+#, gcc-internal-format
+msgid "padding struct to align %q+D"
+msgstr ""
+
+#: stor-layout.cc:1436
+#, gcc-internal-format
+msgid "offset of packed bit-field %qD has changed in GCC 4.4"
+msgstr ""
+
+#: stor-layout.cc:1816
+#, gcc-internal-format
+msgid "padding struct size to alignment boundary with %E bytes"
+msgstr ""
+
+#: stor-layout.cc:1845
+#, gcc-internal-format
+msgid "packed attribute causes inefficient alignment for %qE"
+msgstr ""
+
+#: stor-layout.cc:1849
+#, gcc-internal-format
+msgid "packed attribute is unnecessary for %qE"
+msgstr ""
+
+#: stor-layout.cc:1855
+#, gcc-internal-format
+msgid "packed attribute causes inefficient alignment"
+msgstr ""
+
+#: stor-layout.cc:1857
+#, gcc-internal-format
+msgid "packed attribute is unnecessary"
+msgstr ""
+
+#: stor-layout.cc:2738
+#, gcc-internal-format
+msgid "alignment of array elements is greater than element size"
+msgstr ""
+
+#: stor-layout.cc:2744
+#, gcc-internal-format
+msgid "size of array element is not a multiple of its alignment"
+msgstr ""
+
+#: substring-locations.cc:229
+#, gcc-internal-format
+msgid "format string is defined here"
+msgstr ""
+
+#: symtab-thunks.cc:400
+#, gcc-internal-format
+msgid "generic thunk code fails for method %qD which uses %<...%>"
+msgstr ""
+
+#: symtab.cc:303
+#, gcc-internal-format
+msgid "%qD renamed after being referenced in assembly"
+msgstr ""
+
+#: symtab.cc:1109
+#, gcc-internal-format
+msgid "function symbol is not function"
+msgstr ""
+
+#: symtab.cc:1116
+#, gcc-internal-format
+msgid "inconsistent %<ifunc%> attribute"
+msgstr ""
+
+#: symtab.cc:1124
+#, gcc-internal-format
+msgid "variable symbol is not variable"
+msgstr ""
+
+#: symtab.cc:1130
+#, gcc-internal-format
+msgid "node has unknown type"
+msgstr ""
+
+#: symtab.cc:1135
+#, gcc-internal-format, gfc-internal-format
+msgid "node has invalid order %i"
+msgstr ""
+
+#: symtab.cc:1144
+#, gcc-internal-format
+msgid "node not found node->decl->decl_with_vis.symtab_node"
+msgstr ""
+
+#: symtab.cc:1152
+#, gcc-internal-format
+msgid "node differs from node->decl->decl_with_vis.symtab_node"
+msgstr ""
+
+#: symtab.cc:1163 symtab.cc:1170
+#, gcc-internal-format
+msgid "assembler name hash list corrupted"
+msgstr ""
+
+#: symtab.cc:1179
+#, gcc-internal-format
+msgid "node not found in symtab assembler name hash"
+msgstr ""
+
+#: symtab.cc:1188
+#, gcc-internal-format
+msgid "double linked list of assembler names corrupted"
+msgstr ""
+
+#: symtab.cc:1193
+#, gcc-internal-format
+msgid "node has body_removed but is definition"
+msgstr ""
+
+#: symtab.cc:1198
+#, gcc-internal-format
+msgid "node is analyzed but it is not a definition"
+msgstr ""
+
+#: symtab.cc:1203
+#, gcc-internal-format
+msgid "node is alias but not implicit alias"
+msgstr ""
+
+#: symtab.cc:1208
+#, gcc-internal-format
+msgid "node is alias but not definition"
+msgstr ""
+
+#: symtab.cc:1213
+#, gcc-internal-format
+msgid "node is weakref but not an transparent_alias"
+msgstr ""
+
+#: symtab.cc:1218
+#, gcc-internal-format
+msgid "node is transparent_alias but not an alias"
+msgstr ""
+
+#: symtab.cc:1223
+#, gcc-internal-format
+msgid "node is symver but not alias"
+msgstr ""
+
+#: symtab.cc:1232
+#, gcc-internal-format
+msgid "symver target is not exported with default visibility"
+msgstr ""
+
+#: symtab.cc:1239
+#, gcc-internal-format
+msgid "symver is not exported with default visibility"
+msgstr ""
+
+#: symtab.cc:1248
+#, gcc-internal-format
+msgid "node is in same_comdat_group list but has no comdat_group"
+msgstr ""
+
+#: symtab.cc:1253
+#, gcc-internal-format
+msgid "same_comdat_group list across different groups"
+msgstr ""
+
+#: symtab.cc:1258
+#, gcc-internal-format
+msgid "mixing different types of symbol in same comdat groups is not supported"
+msgstr ""
+
+#: symtab.cc:1263
+#, gcc-internal-format
+msgid "node is alone in a comdat group"
+msgstr ""
+
+#: symtab.cc:1270
+#, gcc-internal-format
+msgid "same_comdat_group is not a circular list"
+msgstr ""
+
+#: symtab.cc:1285
+#, gcc-internal-format, gfc-internal-format
+msgid "comdat-local symbol referred to by %s outside its comdat"
+msgstr ""
+
+#: symtab.cc:1295
+#, gcc-internal-format
+msgid "implicit_section flag is set but section isn%'t"
+msgstr ""
+
+#: symtab.cc:1302
+#, gcc-internal-format
+msgid "Both section and comdat group is set"
+msgstr ""
+
+#: symtab.cc:1314
+#, gcc-internal-format
+msgid "Alias and target%'s section differs"
+msgstr ""
+
+#: symtab.cc:1321
+#, gcc-internal-format
+msgid "Alias and target%'s comdat groups differs"
+msgstr ""
+
+#: symtab.cc:1336
+#, gcc-internal-format
+msgid "Transparent alias and target%'s assembler names differs"
+msgstr ""
+
+#: symtab.cc:1344
+#, gcc-internal-format
+msgid "Chained transparent aliases"
+msgstr ""
+
+#: symtab.cc:1367 symtab.cc:1477 symtab.cc:1504
+#, gcc-internal-format
+msgid "symtab_node::verify failed"
+msgstr ""
+
+#: symtab.cc:1476
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid order in asm node %i"
+msgstr ""
+
+#: symtab.cc:1500
+#, gcc-internal-format
+msgid "Two symbols with same comdat_group are not linked by the same_comdat_group list."
+msgstr ""
+
+#: symtab.cc:1938
+#, gcc-internal-format
+msgid "function %q+D part of alias cycle"
+msgstr ""
+
+#: symtab.cc:1940
+#, gcc-internal-format
+msgid "variable %q+D part of alias cycle"
+msgstr ""
+
+#: symtab.cc:1968
+#, gcc-internal-format
+msgid "section of alias %q+D must match section of its target"
+msgstr ""
+
+#: targhooks.cc:204
+#, gcc-internal-format
+msgid "%<__builtin_saveregs%> not supported by this target"
+msgstr ""
+
+#: targhooks.cc:1223
+#, gcc-internal-format
+msgid "argument %qs is not supported for %qs on this target"
+msgstr ""
+
+#: targhooks.cc:1265
+#, gcc-internal-format
+msgid "nested functions not supported on this target"
+msgstr ""
+
+#: targhooks.cc:1278
+#, gcc-internal-format
+msgid "nested function trampolines not supported on this target"
+msgstr ""
+
+#: targhooks.cc:1441
+#, gcc-internal-format
+msgid "global constructors not supported on this target"
+msgstr ""
+
+#: targhooks.cc:1450
+#, gcc-internal-format
+msgid "global destructors not supported on this target"
+msgstr ""
+
+#: targhooks.cc:1810
+#, gcc-internal-format
+msgid "%<target%> attribute is not supported on this machine"
+msgstr ""
+
+#: targhooks.cc:1822
+#, gcc-internal-format
+msgid "%<target_version%> attribute is not supported on this machine"
+msgstr ""
+
+#: targhooks.cc:1836
+#, gcc-internal-format
+msgid "%<#pragma GCC target%> is not supported for this machine"
+msgstr ""
+
+#: toplev.cc:718
+#, gcc-internal-format
+msgid "cannot open %qs for writing: %m"
+msgstr ""
+
+#: toplev.cc:737
+#, gcc-internal-format
+msgid "%<-frecord-gcc-switches%> is not supported by the current target"
+msgstr ""
+
+#: toplev.cc:789
+#, gcc-internal-format
+msgid "stack usage computation not supported for this target"
+msgstr ""
+
+#: toplev.cc:848
+#, gcc-internal-format
+msgid "stack usage might be unbounded"
+msgstr ""
+
+#: toplev.cc:853
+#, gcc-internal-format
+msgid "stack usage might be %wu bytes"
+msgstr ""
+
+#: toplev.cc:856
+#, gcc-internal-format
+msgid "stack usage is %wu bytes"
+msgstr ""
+
+#: toplev.cc:973
+#, gcc-internal-format
+msgid "cannot open %s for writing: %m"
+msgstr ""
+
+#: toplev.cc:1252
+#, gcc-internal-format
+msgid "this target does not support %qs"
+msgstr ""
+
+#: toplev.cc:1286
+#, gcc-internal-format
+msgid "Graphite loop optimizations cannot be used (isl is not available) (%<-fgraphite%>, %<-fgraphite-identity%>, %<-floop-nest-optimize%>, %<-floop-parallelize-all%>)"
+msgstr ""
+
+#: toplev.cc:1297
+#, gcc-internal-format
+msgid "%<-fcf-protection=full%> is not supported for this target"
+msgstr ""
+
+#: toplev.cc:1304
+#, gcc-internal-format
+msgid "%<-fcf-protection=branch%> is not supported for this target"
+msgstr ""
+
+#: toplev.cc:1311
+#, gcc-internal-format
+msgid "%<-fcf-protection=return%> is not supported for this target"
+msgstr ""
+
+#: toplev.cc:1326
+#, gcc-internal-format
+msgid "%<-fabi-version=1%> is no longer supported"
+msgstr ""
+
+#: toplev.cc:1342
+#, gcc-internal-format
+msgid "instruction scheduling not supported on this target machine"
+msgstr ""
+
+#: toplev.cc:1346
+#, gcc-internal-format
+msgid "this target machine does not have delayed branches"
+msgstr ""
+
+#: toplev.cc:1360
+#, gcc-internal-format
+msgid "%<-f%sleading-underscore%> not supported on this target machine"
+msgstr ""
+
+#: toplev.cc:1389
+#, gcc-internal-format
+msgid "CTF debug info requested, but not supported for %qs frontend"
+msgstr ""
+
+#: toplev.cc:1407
+#, gcc-internal-format
+msgid "could not close zeroed insn dump file %qs: %m"
+msgstr ""
+
+#: toplev.cc:1445
+#, gcc-internal-format
+msgid "target system does not support the %qs debug format"
+msgstr ""
+
+#: toplev.cc:1473
+#, gcc-internal-format
+msgid "without %<-gdwarf-5%>, %<-gvariable-location-views=incompat5%> is equivalent to %<-gvariable-location-views%>"
+msgstr ""
+
+#: toplev.cc:1489
+#, gcc-internal-format
+msgid "%<-ginternal-reset-location-views%> is forced disabled without %<-gvariable-location-views%>"
+msgstr ""
+
+#: toplev.cc:1499
+#, gcc-internal-format
+msgid "%<-ginline-points%> is forced disabled without %<-gstatement-frontiers%>"
+msgstr ""
+
+#: toplev.cc:1528
+#, gcc-internal-format
+msgid "%<-ffunction-sections%> not supported for this target"
+msgstr ""
+
+#: toplev.cc:1534
+#, gcc-internal-format
+msgid "%<-fdata-sections%> not supported for this target"
+msgstr ""
+
+#: toplev.cc:1542
+#, gcc-internal-format
+msgid "%<-fprefetch-loop-arrays%> not supported for this target"
+msgstr ""
+
+#: toplev.cc:1548
+#, gcc-internal-format
+msgid "%<-fprefetch-loop-arrays%> not supported for this target (try %<-march%> switches)"
+msgstr ""
+
+#: toplev.cc:1558
+#, gcc-internal-format
+msgid "%<-fprefetch-loop-arrays%> is not supported with %<-Os%>"
+msgstr ""
+
+#: toplev.cc:1570
+#, gcc-internal-format
+msgid "%<-fassociative-math%> disabled; other options take precedence"
+msgstr ""
+
+#: toplev.cc:1578
+#, gcc-internal-format
+msgid "%<-fhardened%> not supported for this target"
+msgstr ""
+
+#: toplev.cc:1587
+#, gcc-internal-format
+msgid "%<-fstack-clash-protection%> is not supported on targets where the stack grows from lower to higher addresses"
+msgstr ""
+
+#: toplev.cc:1600
+#, gcc-internal-format
+msgid "%<-fstack-clash-protection%> is not enabled by %<-fhardened%> because %<-fstack-check%> was specified on the command line"
+msgstr ""
+
+#: toplev.cc:1610
+#, gcc-internal-format
+msgid "%<-fstack-check=%> and %<-fstack-clash-protection%> are mutually exclusive; disabling %<-fstack-check=%>"
+msgstr ""
+
+#: toplev.cc:1621
+#, gcc-internal-format
+msgid "%<-fstack-protector%> not supported for this target"
+msgstr ""
+
+#: toplev.cc:1633
+#, gcc-internal-format
+msgid "%<-fsanitize=address%> and %<-fsanitize=kernel-address%> are not supported for this target"
+msgstr ""
+
+#: toplev.cc:1643
+#, gcc-internal-format
+msgid "%<-fsanitize=address%> not supported for this target"
+msgstr ""
+
+#: toplev.cc:1652
+#, gcc-internal-format
+msgid "%<-fsanitize=kernel-address%> with stack protection is not supported without %<-fasan-shadow-offset=%> for this target"
+msgstr ""
+
+#: toplev.cc:1662
+#, gcc-internal-format
+msgid "%qs is not supported for this target"
+msgstr ""
+
+#: toplev.cc:1670
+#, gcc-internal-format
+msgid "%<-fsanitize=shadow-call-stack%> not supported in current platform"
+msgstr ""
+
+#: toplev.cc:1673
+#, gcc-internal-format
+msgid "%<-fsanitize=shadow-call-stack%> requires %<-fno-exceptions%>"
+msgstr ""
+
+#: toplev.cc:2012
+#, gcc-internal-format
+msgid "error writing to %s: %m"
+msgstr ""
+
+#: toplev.cc:2014
+#, gcc-internal-format
+msgid "error closing %s: %m"
+msgstr ""
+
+#: toplev.cc:2132
+#, gcc-internal-format
+msgid "mpfr not configured to handle all floating modes"
+msgstr ""
+
+#: toplev.cc:2218
+#, gcc-internal-format
+msgid "self-tests are not enabled in this build"
+msgstr ""
+
+#: toplev.cc:2315
+#, gcc-internal-format
+msgid "self-tests incompatible with %<-E%>"
+msgstr ""
+
+#: trans-mem.cc:610
+#, gcc-internal-format
+msgid "invalid use of volatile lvalue inside transaction"
+msgstr ""
+
+#: trans-mem.cc:613
+#, gcc-internal-format
+msgid "invalid use of volatile lvalue inside %<transaction_safe%> function"
+msgstr ""
+
+#: trans-mem.cc:648
+#, gcc-internal-format
+msgid "%<transaction_may_cancel_outer%> function call not within outer transaction or %<transaction_may_cancel_outer%>"
+msgstr ""
+
+#: trans-mem.cc:717 trans-mem.cc:4834
+#, gcc-internal-format
+msgid "unsafe function call %qD within atomic transaction"
+msgstr ""
+
+#: trans-mem.cc:724
+#, gcc-internal-format
+msgid "unsafe function call %qE within atomic transaction"
+msgstr ""
+
+#: trans-mem.cc:728
+#, gcc-internal-format
+msgid "unsafe indirect function call within atomic transaction"
+msgstr ""
+
+#: trans-mem.cc:736 trans-mem.cc:4766
+#, gcc-internal-format
+msgid "unsafe function call %qD within %<transaction_safe%> function"
+msgstr ""
+
+#: trans-mem.cc:743
+#, gcc-internal-format
+msgid "unsafe function call %qE within %<transaction_safe%> function"
+msgstr ""
+
+#: trans-mem.cc:747
+#, gcc-internal-format
+msgid "unsafe indirect function call within %<transaction_safe%> function"
+msgstr ""
+
+#: trans-mem.cc:762 trans-mem.cc:4806
+#, gcc-internal-format
+msgid "%<asm%> not allowed in atomic transaction"
+msgstr ""
+
+#: trans-mem.cc:765 trans-mem.cc:4432
+#, gcc-internal-format
+msgid "%<asm%> not allowed in %<transaction_safe%> function"
+msgstr ""
+
+#: trans-mem.cc:777
+#, gcc-internal-format
+msgid "relaxed transaction in atomic transaction"
+msgstr ""
+
+#: trans-mem.cc:780
+#, gcc-internal-format
+msgid "relaxed transaction in %<transaction_safe%> function"
+msgstr ""
+
+#: trans-mem.cc:787
+#, gcc-internal-format
+msgid "outer transaction in transaction"
+msgstr ""
+
+#: trans-mem.cc:790
+#, gcc-internal-format
+msgid "outer transaction in %<transaction_may_cancel_outer%> function"
+msgstr ""
+
+#: trans-mem.cc:794
+#, gcc-internal-format
+msgid "outer transaction in %<transaction_safe%> function"
+msgstr ""
+
+#: tree-cfg.cc:359
+#, gcc-internal-format
+msgid "ignoring loop annotation"
+msgstr ""
+
+#: tree-cfg.cc:3088
+#, gcc-internal-format
+msgid "constant not recomputed when %<ADDR_EXPR%> changed"
+msgstr ""
+
+#: tree-cfg.cc:3093
+#, gcc-internal-format
+msgid "side effects not recomputed when %<ADDR_EXPR%> changed"
+msgstr ""
+
+#: tree-cfg.cc:3108
+#, gcc-internal-format
+msgid "address taken but %<TREE_ADDRESSABLE%> bit not set"
+msgstr ""
+
+#: tree-cfg.cc:3134
+#, gcc-internal-format
+msgid "non-scalar %qs"
+msgstr ""
+
+#: tree-cfg.cc:3148
+#, gcc-internal-format
+msgid "invalid position or size operand to %qs"
+msgstr ""
+
+#: tree-cfg.cc:3154
+#, gcc-internal-format
+msgid "integral result type precision does not match field size of %qs"
+msgstr ""
+
+#: tree-cfg.cc:3163
+#, gcc-internal-format
+msgid "mode size of non-integral result does not match field size of %qs"
+msgstr ""
+
+#: tree-cfg.cc:3171
+#, gcc-internal-format
+msgid "%qs of non-mode-precision operand"
+msgstr ""
+
+#: tree-cfg.cc:3178
+#, gcc-internal-format
+msgid "position plus size exceeds size of referenced object in %qs"
+msgstr ""
+
+#: tree-cfg.cc:3189
+#, gcc-internal-format
+msgid "type mismatch in %qs reference"
+msgstr ""
+
+#: tree-cfg.cc:3205
+#, gcc-internal-format
+msgid "conversion of %qs on the left hand side of %qs"
+msgstr ""
+
+#: tree-cfg.cc:3213
+#, gcc-internal-format
+msgid "conversion of register to a different size in %qs"
+msgstr ""
+
+#: tree-cfg.cc:3233
+#, gcc-internal-format
+msgid "non-top-level %qs"
+msgstr ""
+
+#: tree-cfg.cc:3248
+#, gcc-internal-format
+msgid "invalid operands to %qs"
+msgstr ""
+
+#: tree-cfg.cc:3259 tree-cfg.cc:3268 tree-cfg.cc:3285 tree-cfg.cc:3964
+#: tree-cfg.cc:3993 tree-cfg.cc:4010 tree-cfg.cc:4031 tree-cfg.cc:4077
+#: tree-cfg.cc:4098 tree-cfg.cc:4152 tree-cfg.cc:4172 tree-cfg.cc:4208
+#: tree-cfg.cc:4229 tree-cfg.cc:4290 tree-cfg.cc:4365 tree-cfg.cc:4391
+#: tree-cfg.cc:4427 tree-cfg.cc:4476 tree-cfg.cc:4501 tree-cfg.cc:4576
+#: tree-cfg.cc:4662
+#, gcc-internal-format
+msgid "type mismatch in %qs"
+msgstr ""
+
+#: tree-cfg.cc:3279
+#, gcc-internal-format
+msgid "invalid %qs offset operator"
+msgstr ""
+
+#: tree-cfg.cc:3303 tree-cfg.cc:3329
+#, gcc-internal-format
+msgid "invalid address operand in %qs"
+msgstr ""
+
+#: tree-cfg.cc:3310 tree-cfg.cc:3336
+#, gcc-internal-format
+msgid "invalid offset operand in %qs"
+msgstr ""
+
+#: tree-cfg.cc:3317 tree-cfg.cc:3343
+#, gcc-internal-format
+msgid "invalid clique in %qs"
+msgstr ""
+
+#: tree-cfg.cc:3350 tree-cfg.cc:4674
+#, gcc-internal-format
+msgid "%qs in gimple IL"
+msgstr ""
+
+#: tree-cfg.cc:3361
+#, gcc-internal-format
+msgid "%qs as base where non-register is required"
+msgstr ""
+
+#: tree-cfg.cc:3376
+#, gcc-internal-format
+msgid "invalid expression for min lvalue"
+msgstr ""
+
+#: tree-cfg.cc:3427
+#, gcc-internal-format
+msgid "gimple call has two targets"
+msgstr ""
+
+#: tree-cfg.cc:3436
+#, gcc-internal-format
+msgid "gimple call has no target"
+msgstr ""
+
+#: tree-cfg.cc:3443
+#, gcc-internal-format
+msgid "invalid function in gimple call"
+msgstr ""
+
+#: tree-cfg.cc:3453
+#, gcc-internal-format
+msgid "non-function in gimple call"
+msgstr ""
+
+#: tree-cfg.cc:3464
+#, gcc-internal-format
+msgid "invalid pure const state for function"
+msgstr ""
+
+#: tree-cfg.cc:3476
+#, gcc-internal-format
+msgid "invalid LHS in gimple call"
+msgstr ""
+
+#: tree-cfg.cc:3484
+#, gcc-internal-format
+msgid "LHS in %<noreturn%> call"
+msgstr ""
+
+#: tree-cfg.cc:3498
+#, gcc-internal-format
+msgid "invalid conversion in gimple call"
+msgstr ""
+
+#: tree-cfg.cc:3507
+#, gcc-internal-format
+msgid "invalid static chain in gimple call"
+msgstr ""
+
+#: tree-cfg.cc:3518
+#, gcc-internal-format
+msgid "static chain with function that doesn%'t use one"
+msgstr ""
+
+#. Built-in unreachable with parameters might not be caught by
+#. undefined behavior sanitizer.  Front-ends do check users do not
+#. call them that way but we also produce calls to
+#. __builtin_unreachable internally, for example when IPA figures
+#. out a call cannot happen in a legal program.  In such cases,
+#. we must make sure arguments are stripped off.
+#: tree-cfg.cc:3537
+#, gcc-internal-format
+msgid "%<__builtin_unreachable%> or %<__builtin_trap%> call with arguments"
+msgstr ""
+
+#: tree-cfg.cc:3568
+#, gcc-internal-format
+msgid "%<DEFERRED_INIT%> calls should have same constant size for the first argument and LHS"
+msgstr ""
+
+#: tree-cfg.cc:3586
+#, gcc-internal-format
+msgid "invalid argument to gimple call"
+msgstr ""
+
+#: tree-cfg.cc:3613
+#, gcc-internal-format
+msgid "invalid operands in gimple comparison"
+msgstr ""
+
+#: tree-cfg.cc:3624
+#, gcc-internal-format
+msgid "mismatching comparison operand types"
+msgstr ""
+
+#: tree-cfg.cc:3641
+#, gcc-internal-format
+msgid "unsupported operation or type for vector comparison returning a boolean"
+msgstr ""
+
+#: tree-cfg.cc:3656
+#, gcc-internal-format
+msgid "non-vector operands in vector comparison"
+msgstr ""
+
+#: tree-cfg.cc:3665
+#, gcc-internal-format
+msgid "invalid vector comparison resulting type"
+msgstr ""
+
+#: tree-cfg.cc:3672
+#, gcc-internal-format
+msgid "bogus comparison result type"
+msgstr ""
+
+#: tree-cfg.cc:3694
+#, gcc-internal-format
+msgid "non-register as LHS of unary operation"
+msgstr ""
+
+#: tree-cfg.cc:3700
+#, gcc-internal-format
+msgid "invalid operand in unary operation"
+msgstr ""
+
+#: tree-cfg.cc:3723
+#, gcc-internal-format
+msgid "invalid vector types in nop conversion"
+msgstr ""
+
+#: tree-cfg.cc:3760
+#, gcc-internal-format
+msgid "invalid types in nop conversion"
+msgstr ""
+
+#: tree-cfg.cc:3775
+#, gcc-internal-format
+msgid "invalid types in address space conversion"
+msgstr ""
+
+#: tree-cfg.cc:3789
+#, gcc-internal-format
+msgid "invalid types in fixed-point conversion"
+msgstr ""
+
+#: tree-cfg.cc:3804
+#, gcc-internal-format
+msgid "invalid types in conversion to floating-point"
+msgstr ""
+
+#: tree-cfg.cc:3819
+#, gcc-internal-format
+msgid "invalid types in conversion to integer"
+msgstr ""
+
+#: tree-cfg.cc:3859
+#, gcc-internal-format
+msgid "type mismatch in %qs expression"
+msgstr ""
+
+#: tree-cfg.cc:3876 tree-cfg.cc:3890 tree-cfg.cc:4256 tree-cfg.cc:4278
+#, gcc-internal-format
+msgid "invalid types for %qs"
+msgstr ""
+
+#: tree-cfg.cc:3901
+#, gcc-internal-format
+msgid "%qs should be from a scalar to a like vector"
+msgstr ""
+
+#: tree-cfg.cc:3915
+#, gcc-internal-format
+msgid "non-trivial conversion in unary operation"
+msgstr ""
+
+#: tree-cfg.cc:3940
+#, gcc-internal-format
+msgid "non-register as LHS of binary operation"
+msgstr ""
+
+#: tree-cfg.cc:3947
+#, gcc-internal-format
+msgid "invalid operands in binary operation"
+msgstr ""
+
+#: tree-cfg.cc:4052
+#, gcc-internal-format
+msgid "invalid non-vector operands to %qs"
+msgstr ""
+
+#: tree-cfg.cc:4063
+#, gcc-internal-format
+msgid "invalid (pointer) operands %qs"
+msgstr ""
+
+#: tree-cfg.cc:4298
+#, gcc-internal-format
+msgid "vector type expected in %qs"
+msgstr ""
+
+#: tree-cfg.cc:4311
+#, gcc-internal-format
+msgid "type mismatch in binary expression"
+msgstr ""
+
+#: tree-cfg.cc:4339
+#, gcc-internal-format
+msgid "non-register as LHS of ternary operation"
+msgstr ""
+
+#: tree-cfg.cc:4347
+#, gcc-internal-format
+msgid "invalid operands in ternary operation"
+msgstr ""
+
+#: tree-cfg.cc:4379
+#, gcc-internal-format
+msgid "the first argument of a %qs must be of a boolean vector type of the same number of elements as the result"
+msgstr ""
+
+#: tree-cfg.cc:4411 tree-cfg.cc:4488
+#, gcc-internal-format
+msgid "vector types expected in %qs"
+msgstr ""
+
+#: tree-cfg.cc:4444
+#, gcc-internal-format
+msgid "vectors with different element number found in %qs"
+msgstr ""
+
+#: tree-cfg.cc:4460
+#, gcc-internal-format
+msgid "invalid mask type in %qs"
+msgstr ""
+
+#: tree-cfg.cc:4521
+#, gcc-internal-format
+msgid "not allowed type combination in %qs"
+msgstr ""
+
+#: tree-cfg.cc:4530
+#, gcc-internal-format
+msgid "invalid position or size in %qs"
+msgstr ""
+
+#: tree-cfg.cc:4536
+#, gcc-internal-format
+msgid "%qs into non-mode-precision operand"
+msgstr ""
+
+#: tree-cfg.cc:4546
+#, gcc-internal-format
+msgid "insertion out of range in %qs"
+msgstr ""
+
+#: tree-cfg.cc:4556
+#, gcc-internal-format
+msgid "%qs not at element boundary"
+msgstr ""
+
+#: tree-cfg.cc:4612
+#, gcc-internal-format
+msgid "non-trivial conversion in %qs"
+msgstr ""
+
+#: tree-cfg.cc:4621
+#, gcc-internal-format
+msgid "%qs LHS in clobber statement"
+msgstr ""
+
+#: tree-cfg.cc:4629
+#, gcc-internal-format
+msgid "%qs LHS in assignment statement"
+msgstr ""
+
+#: tree-cfg.cc:4648
+#, gcc-internal-format
+msgid "invalid operand in %qs"
+msgstr ""
+
+#: tree-cfg.cc:4680
+#, gcc-internal-format
+msgid "invalid %qs size argument in load"
+msgstr ""
+
+#: tree-cfg.cc:4699 tree-cfg.cc:4725
+#, gcc-internal-format
+msgid "invalid RHS for gimple memory store: %qs"
+msgstr ""
+
+#: tree-cfg.cc:4759 tree-cfg.cc:4777
+#, gcc-internal-format
+msgid "incorrect type of vector %qs elements"
+msgstr ""
+
+#: tree-cfg.cc:4768 tree-cfg.cc:4785
+#, gcc-internal-format
+msgid "incorrect number of vector %qs elements"
+msgstr ""
+
+#: tree-cfg.cc:4793
+#, gcc-internal-format
+msgid "incorrect type of vector CONSTRUCTOR elements"
+msgstr ""
+
+#: tree-cfg.cc:4802
+#, gcc-internal-format
+msgid "vector %qs with non-NULL element index"
+msgstr ""
+
+#: tree-cfg.cc:4809
+#, gcc-internal-format
+msgid "vector %qs element is not a GIMPLE value"
+msgstr ""
+
+#: tree-cfg.cc:4818
+#, gcc-internal-format
+msgid "non-vector %qs with elements"
+msgstr ""
+
+#: tree-cfg.cc:4876
+#, gcc-internal-format
+msgid "invalid operand in return statement"
+msgstr ""
+
+#: tree-cfg.cc:4891 c/gimple-parser.cc:2580
+#, gcc-internal-format
+msgid "invalid conversion in return statement"
+msgstr ""
+
+#: tree-cfg.cc:4915
+#, gcc-internal-format
+msgid "goto destination is neither a label nor a pointer"
+msgstr ""
+
+#: tree-cfg.cc:4934
+#, gcc-internal-format
+msgid "invalid operand to switch statement"
+msgstr ""
+
+#: tree-cfg.cc:4942
+#, gcc-internal-format
+msgid "non-integral type switch statement"
+msgstr ""
+
+#: tree-cfg.cc:4952
+#, gcc-internal-format
+msgid "invalid default case label in switch statement"
+msgstr ""
+
+#: tree-cfg.cc:4964
+#, gcc-internal-format
+msgid "invalid %<CASE_CHAIN%>"
+msgstr ""
+
+#: tree-cfg.cc:4970
+#, gcc-internal-format
+msgid "invalid case label in switch statement"
+msgstr ""
+
+#: tree-cfg.cc:4977
+#, gcc-internal-format
+msgid "invalid case range in switch statement"
+msgstr ""
+
+#: tree-cfg.cc:4987
+#, gcc-internal-format
+msgid "type precision mismatch in switch statement"
+msgstr ""
+
+#: tree-cfg.cc:4994
+#, gcc-internal-format
+msgid "type mismatch for case label in switch statement"
+msgstr ""
+
+#: tree-cfg.cc:5003
+#, gcc-internal-format
+msgid "case labels not sorted in switch statement"
+msgstr ""
+
+#: tree-cfg.cc:5046
+#, gcc-internal-format
+msgid "label context is not the current function declaration"
+msgstr ""
+
+#: tree-cfg.cc:5055
+#, gcc-internal-format
+msgid "incorrect entry in %<label_to_block_map%>"
+msgstr ""
+
+#: tree-cfg.cc:5065
+#, gcc-internal-format
+msgid "incorrect setting of landing pad number"
+msgstr ""
+
+#: tree-cfg.cc:5081
+#, gcc-internal-format
+msgid "invalid comparison code in gimple cond"
+msgstr ""
+
+#: tree-cfg.cc:5089
+#, gcc-internal-format
+msgid "invalid labels in gimple cond"
+msgstr ""
+
+#: tree-cfg.cc:5175 tree-cfg.cc:5184
+#, gcc-internal-format
+msgid "invalid %<PHI%> result"
+msgstr ""
+
+#: tree-cfg.cc:5194
+#, gcc-internal-format
+msgid "missing %<PHI%> def"
+msgstr ""
+
+#: tree-cfg.cc:5208
+#, gcc-internal-format
+msgid "invalid %<PHI%> argument"
+msgstr ""
+
+#: tree-cfg.cc:5215
+#, gcc-internal-format
+msgid "incompatible types in %<PHI%> argument %u"
+msgstr ""
+
+#: tree-cfg.cc:5318
+#, gcc-internal-format
+msgid "%<verify_gimple%> failed"
+msgstr ""
+
+#: tree-cfg.cc:5376
+#, gcc-internal-format
+msgid "dead statement in EH table"
+msgstr ""
+
+#: tree-cfg.cc:5392
+#, gcc-internal-format
+msgid "location references block not in block tree"
+msgstr ""
+
+#: tree-cfg.cc:5441
+#, gcc-internal-format
+msgid "local declaration from a different function"
+msgstr ""
+
+#: tree-cfg.cc:5544
+#, gcc-internal-format
+msgid "gimple_bb (phi) is set to a wrong basic block"
+msgstr ""
+
+#: tree-cfg.cc:5553
+#, gcc-internal-format
+msgid "PHI node with location"
+msgstr ""
+
+#: tree-cfg.cc:5564 tree-cfg.cc:5611
+#, gcc-internal-format
+msgid "incorrect sharing of tree nodes"
+msgstr ""
+
+#: tree-cfg.cc:5572
+#, gcc-internal-format
+msgid "virtual PHI with argument locations"
+msgstr ""
+
+#: tree-cfg.cc:5599
+#, gcc-internal-format
+msgid "gimple_bb (stmt) is set to a wrong basic block"
+msgstr ""
+
+#: tree-cfg.cc:5639
+#, gcc-internal-format
+msgid "statement marked for throw, but doesn%'t"
+msgstr ""
+
+#: tree-cfg.cc:5645
+#, gcc-internal-format
+msgid "statement marked for throw in middle of block"
+msgstr ""
+
+#: tree-cfg.cc:5667
+#, gcc-internal-format
+msgid "verify_gimple failed"
+msgstr ""
+
+#: tree-cfg.cc:5691
+#, gcc-internal-format
+msgid "ENTRY_BLOCK has IL associated with it"
+msgstr ""
+
+#: tree-cfg.cc:5698
+#, gcc-internal-format
+msgid "EXIT_BLOCK has IL associated with it"
+msgstr ""
+
+#: tree-cfg.cc:5705
+#, gcc-internal-format, gfc-internal-format
+msgid "fallthru to exit from bb %d"
+msgstr ""
+
+#: tree-cfg.cc:5711
+#, gcc-internal-format
+msgid "entry block count not initialized"
+msgstr ""
+
+#: tree-cfg.cc:5717
+#, gcc-internal-format
+msgid "exit block count not initialized"
+msgstr ""
+
+#: tree-cfg.cc:5724
+#, gcc-internal-format
+msgid "probability of edge from entry block not initialized"
+msgstr ""
+
+#: tree-cfg.cc:5739
+#, gcc-internal-format, gfc-internal-format
+msgid "count of bb %d not initialized"
+msgstr ""
+
+#: tree-cfg.cc:5745
+#, gcc-internal-format, gfc-internal-format
+msgid "probability of edge %d->%d not initialized"
+msgstr ""
+
+#: tree-cfg.cc:5765
+#, gcc-internal-format
+msgid "nonlocal label %qD is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.cc:5772
+#, gcc-internal-format
+msgid "EH landing pad label %qD is not first in a sequence of labels in bb %d"
+msgstr ""
+
+#: tree-cfg.cc:5779
+#, gcc-internal-format
+msgid "label %qD to block does not match in bb %d"
+msgstr ""
+
+#: tree-cfg.cc:5786
+#, gcc-internal-format
+msgid "label %qD has incorrect context in bb %d"
+msgstr ""
+
+#: tree-cfg.cc:5801
+#, gcc-internal-format, gfc-internal-format
+msgid "control flow in the middle of basic block %d"
+msgstr ""
+
+#: tree-cfg.cc:5811
+#, gcc-internal-format
+msgid "label %qD in the middle of basic block %d"
+msgstr ""
+
+#: tree-cfg.cc:5830
+#, gcc-internal-format, gfc-internal-format
+msgid "returns_twice call is not last in basic block %d"
+msgstr ""
+
+#: tree-cfg.cc:5839
+#, gcc-internal-format, gfc-internal-format
+msgid "returns_twice call is not first in basic block %d"
+msgstr ""
+
+#: tree-cfg.cc:5871
+#, gcc-internal-format, gfc-internal-format
+msgid "fallthru edge after a control statement in bb %d"
+msgstr ""
+
+#: tree-cfg.cc:5884
+#, gcc-internal-format, gfc-internal-format
+msgid "true/false edge after a non-GIMPLE_COND in bb %d"
+msgstr ""
+
+#: tree-cfg.cc:5907 tree-cfg.cc:5929 tree-cfg.cc:5946 tree-cfg.cc:6015
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong outgoing edge flags at end of bb %d"
+msgstr ""
+
+#: tree-cfg.cc:5917
+#, gcc-internal-format, gfc-internal-format
+msgid "explicit goto at end of bb %d"
+msgstr ""
+
+#: tree-cfg.cc:5951
+#, gcc-internal-format, gfc-internal-format
+msgid "return edge does not point to exit in bb %d"
+msgstr ""
+
+#: tree-cfg.cc:5981
+#, gcc-internal-format
+msgid "found default case not at the start of case vector"
+msgstr ""
+
+#: tree-cfg.cc:5989
+#, gcc-internal-format
+msgid "case labels not sorted: "
+msgstr ""
+
+#: tree-cfg.cc:6006
+#, gcc-internal-format, gfc-internal-format
+msgid "extra outgoing edge %d->%d"
+msgstr ""
+
+#: tree-cfg.cc:6029
+#, gcc-internal-format, gfc-internal-format
+msgid "missing edge %i->%i"
+msgstr ""
+
+#: tree-cfg.cc:9805
+#, gcc-internal-format
+msgid "%<noreturn%> function does return"
+msgstr ""
+
+#: tree-cfg.cc:9825 tree-cfg.cc:9860
+#, gcc-internal-format
+msgid "control reaches end of non-void function"
+msgstr ""
+
+#: tree-cfg.cc:9926
+#, gcc-internal-format
+msgid "ignoring return value of %qD declared with attribute %<warn_unused_result%>"
+msgstr ""
+
+#: tree-cfg.cc:9931 cp/cvt.cc:1137
+#, gcc-internal-format
+msgid "ignoring return value of function declared with attribute %<warn_unused_result%>"
+msgstr ""
+
+#: tree-complex.cc:1639
+#, gcc-internal-format
+msgid "%<asm goto%> with complex typed outputs"
+msgstr ""
+
+#: tree-diagnostic-path.cc:626
+msgid "%@ %s (fndecl %qD, depth %i)"
+msgstr ""
+
+#: tree-diagnostic-path.cc:631
+msgid "%@ %s (depth %i)"
+msgstr ""
+
+#: tree-diagnostic-path.cc:637
+msgid "%@ %s"
+msgstr ""
+
+#: tree-diagnostic.cc:207
+#, gcc-internal-format
+msgid "in definition of macro %qs"
+msgstr ""
+
+#: tree-diagnostic.cc:224
+#, gcc-internal-format
+msgid "in expansion of macro %qs"
+msgstr ""
+
+#: tree-eh.cc:4946
+#, gcc-internal-format, gfc-internal-format
+msgid "BB %i has multiple EH edges"
+msgstr ""
+
+#: tree-eh.cc:4958
+#, gcc-internal-format, gfc-internal-format
+msgid "BB %i cannot throw but has an EH edge"
+msgstr ""
+
+#: tree-eh.cc:4966
+#, gcc-internal-format, gfc-internal-format
+msgid "BB %i last statement has incorrectly set lp"
+msgstr ""
+
+#: tree-eh.cc:4972
+#, gcc-internal-format, gfc-internal-format
+msgid "BB %i is missing an EH edge"
+msgstr ""
+
+#: tree-eh.cc:4978
+#, gcc-internal-format, gfc-internal-format
+msgid "Incorrect EH edge %i->%i"
+msgstr ""
+
+#: tree-eh.cc:5012 tree-eh.cc:5031
+#, gcc-internal-format, gfc-internal-format
+msgid "BB %i is missing an edge"
+msgstr ""
+
+#: tree-eh.cc:5048
+#, gcc-internal-format, gfc-internal-format
+msgid "BB %i too many fallthru edges"
+msgstr ""
+
+#: tree-eh.cc:5057
+#, gcc-internal-format, gfc-internal-format
+msgid "BB %i has incorrect edge"
+msgstr ""
+
+#: tree-eh.cc:5063
+#, gcc-internal-format, gfc-internal-format
+msgid "BB %i has incorrect fallthru edge"
+msgstr ""
+
+#: tree-inline.cc:3939
+#, gcc-internal-format
+msgid "function %q+F can never be copied because it receives a non-local goto"
+msgstr ""
+
+#: tree-inline.cc:3946
+#, gcc-internal-format
+msgid "function %q+F can never be copied because it saves address of local label in a static variable"
+msgstr ""
+
+#: tree-inline.cc:3986
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses alloca (override using the always_inline attribute)"
+msgstr ""
+
+#: tree-inline.cc:4000
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses setjmp"
+msgstr ""
+
+#: tree-inline.cc:4014
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses variable argument lists"
+msgstr ""
+
+#: tree-inline.cc:4026
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses setjmp-longjmp exception handling"
+msgstr ""
+
+#: tree-inline.cc:4034
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses non-local goto"
+msgstr ""
+
+#: tree-inline.cc:4046
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses %<__builtin_return%> or %<__builtin_apply_args%>"
+msgstr ""
+
+#: tree-inline.cc:4066
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it contains a computed goto"
+msgstr ""
+
+#: tree-inline.cc:4112
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it has a VLA argument"
+msgstr ""
+
+#: tree-inline.cc:4179
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it is suppressed using %<-fno-inline%>"
+msgstr ""
+
+#: tree-inline.cc:4187
+#, gcc-internal-format
+msgid "function %q+F can never be inlined because it uses attributes conflicting with inlining"
+msgstr ""
+
+#: tree-inline.cc:4868
+#, gcc-internal-format
+msgid "inlining failed in call to %<always_inline%> %q+F: %s"
+msgstr ""
+
+#: tree-inline.cc:4871 tree-inline.cc:4892
+#, gcc-internal-format
+msgid "called from here"
+msgstr ""
+
+#: tree-inline.cc:4874 tree-inline.cc:4895
+#, gcc-internal-format
+msgid "called from this function"
+msgstr ""
+
+#: tree-inline.cc:4888
+#, gcc-internal-format
+msgid "inlining failed in call to %q+F: %s"
+msgstr ""
+
+#: tree-into-ssa.cc:3433
+#, gcc-internal-format
+msgid "statement uses released SSA name"
+msgstr ""
+
+#: tree-into-ssa.cc:3445
+#, gcc-internal-format
+msgid "cannot update SSA form"
+msgstr ""
+
+#: tree-into-ssa.cc:3538 tree-outof-ssa.cc:902 tree-ssa-coalesce.cc:1012
+#, gcc-internal-format
+msgid "SSA corruption"
+msgstr ""
+
+#: tree-nested.cc:1190
+#, gcc-internal-format, gfc-internal-format
+msgid "%s from %s referenced in %s"
+msgstr ""
+
+#: tree-nested.cc:2985
+#, gcc-internal-format, gfc-internal-format
+msgid "%s from %s called in %s"
+msgstr ""
+
+#: tree-profile.cc:899
+#, gcc-internal-format, gfc-internal-format
+msgid "Too many conditions (found %u); giving up coverage"
+msgstr ""
+
+#: tree-profile.cc:1757
+#, gcc-internal-format
+msgid "invalid regular expression %qs in %qs"
+msgstr ""
+
+#: tree-profile.cc:1856
+#, gcc-internal-format
+msgid "target does not support atomic profile update, single mode is selected"
+msgstr ""
+
+#: tree-ssa-alias.cc:4070
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid fn spec attribute \"%s\""
+msgstr ""
+
+#: tree-ssa-alias.cc:4109
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid fn spec attribute \"%s\" arg %i"
+msgstr ""
+
+#: tree-ssa-ccp.cc:4685 c-family/c-common.cc:5912
+#, gcc-internal-format
+msgid "%qs pointer is null"
+msgstr ""
+
+#: tree-ssa-ccp.cc:4688 c-family/c-common.cc:5915
+#, gcc-internal-format
+msgid "in a call to non-static member function %qD"
+msgstr ""
+
+#: tree-ssa-ccp.cc:4694 c-family/c-common.cc:5921
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %u null where non-null expected"
+msgstr ""
+
+#: tree-ssa-ccp.cc:4700
+#, gcc-internal-format
+msgid "in a call to built-in function %qD"
+msgstr ""
+
+#: tree-ssa-ccp.cc:4704 c-family/c-common.cc:5925
+#, gcc-internal-format
+msgid "in a call to function %qD declared %qs"
+msgstr ""
+
+#: tree-ssa-loop-niter.cc:3889
+#, gcc-internal-format, gfc-internal-format
+msgid "iteration %s invokes undefined behavior"
+msgstr ""
+
+#: tree-ssa-loop-niter.cc:3890
+#, gcc-internal-format
+msgid "within this loop"
+msgstr ""
+
+#: tree-ssa-loop-prefetch.cc:2102
+#, gcc-internal-format
+msgid "%<l1-cache-size%> parameter is not a power of two %d"
+msgstr ""
+
+#: tree-ssa-operands.cc:1032
+#, gcc-internal-format
+msgid "virtual definition of statement not up to date"
+msgstr ""
+
+#: tree-ssa-operands.cc:1039
+#, gcc-internal-format
+msgid "virtual def operand missing for statement"
+msgstr ""
+
+#: tree-ssa-operands.cc:1049
+#, gcc-internal-format
+msgid "virtual use of statement not up to date"
+msgstr ""
+
+#: tree-ssa-operands.cc:1056
+#, gcc-internal-format
+msgid "virtual use operand missing for statement"
+msgstr ""
+
+#: tree-ssa-operands.cc:1073
+#, gcc-internal-format
+msgid "excess use operand for statement"
+msgstr ""
+
+#: tree-ssa-operands.cc:1083
+#, gcc-internal-format
+msgid "use operand missing for statement"
+msgstr ""
+
+#: tree-ssa-operands.cc:1090
+#, gcc-internal-format
+msgid "statement volatile flag not up to date"
+msgstr ""
+
+#: tree-ssa-strlen.cc:2127
+#, gcc-internal-format
+msgid "%qD writing one too many bytes into a region of a size that depends on %<strlen%>"
+msgstr ""
+
+#: tree-ssa-strlen.cc:2131
+#, gcc-internal-format
+msgid "writing one too many bytes into a region of a size that depends on %<strlen%>"
+msgstr ""
+
+#: tree-ssa-strlen.cc:2140
+#, gcc-internal-format
+msgid "%qD writing %wu byte into a region of size %wu"
+msgid_plural "%qD writing %wu bytes into a region of size %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: tree-ssa-strlen.cc:2148
+#, gcc-internal-format
+msgid "writing %wu byte into a region of size %wu"
+msgid_plural "writing %wu bytes into a region of size %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: tree-ssa-strlen.cc:2158
+#, gcc-internal-format
+msgid "%qD writing %wu byte into a region of size between %wu and %wu"
+msgid_plural "%qD writing %wu bytes into a region of size between %wu and %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: tree-ssa-strlen.cc:2166
+#, gcc-internal-format
+msgid "writing %wu byte into a region of size between %wu and %wu"
+msgid_plural "writing %wu bytes into a region of size between %wu and %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: tree-ssa-strlen.cc:2176
+#, gcc-internal-format
+msgid "%qD writing between %wu and %wu bytes into a region of size %wu"
+msgstr ""
+
+#: tree-ssa-strlen.cc:2182
+#, gcc-internal-format
+msgid "writing between %wu and %wu bytes into a region of size %wu"
+msgstr ""
+
+#: tree-ssa-strlen.cc:2190
+#, gcc-internal-format
+msgid "%qD writing between %wu and %wu bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: tree-ssa-strlen.cc:2196
+#, gcc-internal-format
+msgid "writing between %wu and %wu bytes into a region of size between %wu and %wu"
+msgstr ""
+
+#: tree-ssa-strlen.cc:3092
+#, gcc-internal-format
+msgid "%qD output truncated before terminating nul copying %E byte from a string of the same length"
+msgid_plural "%qD output truncated before terminating nul copying %E bytes from a string of the same length"
+msgstr[0] ""
+msgstr[1] ""
+
+#: tree-ssa-strlen.cc:3108
+#, gcc-internal-format
+msgid "%qD output truncated copying %E byte from a string of length %wu"
+msgid_plural "%qD output truncated copying %E bytes from a string of length %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: tree-ssa-strlen.cc:3115
+#, gcc-internal-format
+msgid "%qD output truncated copying between %wu and %wu bytes from a string of length %wu"
+msgstr ""
+
+#: tree-ssa-strlen.cc:3127
+#, gcc-internal-format
+msgid "%qD output may be truncated copying %E byte from a string of length %wu"
+msgid_plural "%qD output may be truncated copying %E bytes from a string of length %wu"
+msgstr[0] ""
+msgstr[1] ""
+
+#: tree-ssa-strlen.cc:3134 tree-ssa-strlen.cc:3150
+#, gcc-internal-format
+msgid "%qD output may be truncated copying between %wu and %wu bytes from a string of length %wu"
+msgstr ""
+
+#: tree-ssa-strlen.cc:3304
+#, gcc-internal-format
+msgid "%qD output truncated before terminating nul copying as many bytes from a string as its length"
+msgstr ""
+
+#: tree-ssa-strlen.cc:3317
+#, gcc-internal-format
+msgid "%qD specified bound depends on the length of the source argument"
+msgstr ""
+
+#: tree-ssa-strlen.cc:3325
+#, gcc-internal-format
+msgid "length computed here"
+msgstr ""
+
+#: tree-ssa-strlen.cc:4282
+#, gcc-internal-format
+msgid "%qD of a string of length %wu or more and an array of size %wu evaluates to nonzero"
+msgstr ""
+
+#: tree-ssa-strlen.cc:4284
+#, gcc-internal-format
+msgid "%qD of a string of length %wu and an array of size %wu evaluates to nonzero"
+msgstr ""
+
+#: tree-ssa-strlen.cc:4291
+#, gcc-internal-format
+msgid "%qD of strings of length %wu and %wu and bound of %wu evaluates to nonzero"
+msgstr ""
+
+#: tree-ssa-strlen.cc:4296
+#, gcc-internal-format
+msgid "%qD of a string of length %wu, an array of size %wu and bound of %wu evaluates to nonzero"
+msgstr ""
+
+#: tree-ssa-strlen.cc:4307
+#, gcc-internal-format
+msgid "in this expression"
+msgstr ""
+
+#: tree-ssa-uninit.cc:306
+#, gcc-internal-format
+msgid "%qD is used uninitialized"
+msgstr ""
+
+#: tree-ssa-uninit.cc:308
+#, gcc-internal-format
+msgid "%qD may be used uninitialized"
+msgstr ""
+
+#: tree-ssa-uninit.cc:315
+#, gcc-internal-format
+msgid "%qs is used uninitialized"
+msgstr ""
+
+#: tree-ssa-uninit.cc:318
+#, gcc-internal-format
+msgid "%qs may be used uninitialized"
+msgstr ""
+
+#: tree-ssa-uninit.cc:337 varasm.cc:363 varasm.cc:8021
+#, gcc-internal-format
+msgid "%qD was declared here"
+msgstr ""
+
+#: tree-ssa-uninit.cc:339
+#, gcc-internal-format
+msgid "%qs was declared here"
+msgstr ""
+
+#: tree-ssa-uninit.cc:450 tree-ssa-uninit.cc:760
+#, gcc-internal-format
+msgid "%qE may be used uninitialized"
+msgstr ""
+
+#: tree-ssa-uninit.cc:459
+#, gcc-internal-format
+msgid "accessing argument %u of a function declared with attribute %<%s%>"
+msgstr ""
+
+#: tree-ssa-uninit.cc:747
+#, gcc-internal-format
+msgid "%qE is used uninitialized"
+msgstr ""
+
+#: tree-ssa-uninit.cc:882
+#, gcc-internal-format
+msgid "in a call to %qD declared with attribute %<%s%> here"
+msgstr ""
+
+#: tree-ssa-uninit.cc:889
+#, gcc-internal-format
+msgid "in a call to %qT declared with attribute %<%s%>"
+msgstr ""
+
+#: tree-ssa-uninit.cc:905
+#, gcc-internal-format
+msgid "by argument %u of type %s to %qD declared here"
+msgstr ""
+
+#: tree-ssa-uninit.cc:913
+#, gcc-internal-format
+msgid "by argument %u of type %s to %qT"
+msgstr ""
+
+#: tree-ssa.cc:656
+#, gcc-internal-format, gfc-internal-format
+msgid "multiple virtual PHI nodes in BB %d"
+msgstr ""
+
+#: tree-ssa.cc:670 tree-ssa.cc:699
+#, gcc-internal-format
+msgid "virtual definition is not an SSA name"
+msgstr ""
+
+#: tree-ssa.cc:686
+#, gcc-internal-format
+msgid "stmt with wrong VUSE"
+msgstr ""
+
+#: tree-ssa.cc:716
+#, gcc-internal-format, gfc-internal-format
+msgid "PHI node with wrong VUSE on edge from BB %d"
+msgstr ""
+
+#: tree-ssa.cc:742
+#, gcc-internal-format
+msgid "expected an SSA_NAME object"
+msgstr ""
+
+#: tree-ssa.cc:748
+#, gcc-internal-format
+msgid "found an SSA_NAME that had been released into the free pool"
+msgstr ""
+
+#: tree-ssa.cc:755
+#, gcc-internal-format
+msgid "type mismatch between an SSA_NAME and its symbol"
+msgstr ""
+
+#: tree-ssa.cc:761
+#, gcc-internal-format
+msgid "found a virtual definition for a GIMPLE register"
+msgstr ""
+
+#: tree-ssa.cc:767
+#, gcc-internal-format
+msgid "virtual SSA name for non-VOP decl"
+msgstr ""
+
+#: tree-ssa.cc:773
+#, gcc-internal-format
+msgid "found a real definition for a non-register"
+msgstr ""
+
+#: tree-ssa.cc:780
+#, gcc-internal-format
+msgid "found a default name with a non-empty defining statement"
+msgstr ""
+
+#: tree-ssa.cc:810
+#, gcc-internal-format
+msgid "RESULT_DECL should be read only when DECL_BY_REFERENCE is set"
+msgstr ""
+
+#: tree-ssa.cc:816
+#, gcc-internal-format, gfc-internal-format
+msgid "SSA_NAME created in two different blocks %i and %i"
+msgstr ""
+
+#: tree-ssa.cc:825 tree-ssa.cc:1165
+#, gcc-internal-format
+msgid "SSA_NAME_DEF_STMT is wrong"
+msgstr ""
+
+#: tree-ssa.cc:877
+#, gcc-internal-format
+msgid "missing definition"
+msgstr ""
+
+#: tree-ssa.cc:883
+#, gcc-internal-format, gfc-internal-format
+msgid "definition in block %i does not dominate use in block %i"
+msgstr ""
+
+#: tree-ssa.cc:891
+#, gcc-internal-format, gfc-internal-format
+msgid "definition in block %i follows the use"
+msgstr ""
+
+#: tree-ssa.cc:898
+#, gcc-internal-format
+msgid "SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set"
+msgstr ""
+
+#: tree-ssa.cc:906
+#, gcc-internal-format
+msgid "no immediate_use list"
+msgstr ""
+
+#: tree-ssa.cc:918
+#, gcc-internal-format
+msgid "wrong immediate use list"
+msgstr ""
+
+#: tree-ssa.cc:952
+#, gcc-internal-format
+msgid "incoming edge count does not match number of PHI arguments"
+msgstr ""
+
+#: tree-ssa.cc:966
+#, gcc-internal-format, gfc-internal-format
+msgid "PHI argument is missing for edge %d->%d"
+msgstr ""
+
+#: tree-ssa.cc:975
+#, gcc-internal-format
+msgid "PHI argument is not SSA_NAME, or invariant"
+msgstr ""
+
+#: tree-ssa.cc:981
+#, gcc-internal-format
+msgid "PHI argument on abnormal edge is not SSA_NAME"
+msgstr ""
+
+#: tree-ssa.cc:1002
+#, gcc-internal-format
+msgid "address taken, but ADDRESSABLE bit not set"
+msgstr ""
+
+#: tree-ssa.cc:1009
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong edge %d->%d for PHI argument"
+msgstr ""
+
+#: tree-ssa.cc:1084
+#, gcc-internal-format
+msgid "shared SSA name info"
+msgstr ""
+
+#: tree-ssa.cc:1111
+#, gcc-internal-format, gfc-internal-format
+msgid "AUX pointer initialized for edge %d->%d"
+msgstr ""
+
+#: tree-ssa.cc:1137
+#, gcc-internal-format
+msgid "stmt (%p) marked modified after optimization pass: "
+msgstr ""
+
+#: tree-ssa.cc:1203
+#, gcc-internal-format
+msgid "verify_ssa failed"
+msgstr ""
+
+#: tree-streamer-in.cc:346
+#, gcc-internal-format
+msgid "machine independent builtin code out of range"
+msgstr ""
+
+#: tree-streamer-in.cc:352
+#, gcc-internal-format
+msgid "target specific builtin not available"
+msgstr ""
+
+#: tree-vect-generic.cc:300 tree-vect-generic.cc:470 tree-vect-generic.cc:2042
+#, gcc-internal-format
+msgid "vector operation will be expanded piecewise"
+msgstr ""
+
+#: tree-vect-generic.cc:303
+#, gcc-internal-format
+msgid "vector operation will be expanded in parallel"
+msgstr ""
+
+#: tree-vect-generic.cc:360
+#, gcc-internal-format
+msgid "vector operation will be expanded with a single scalar operation"
+msgstr ""
+
+#: tree-vect-generic.cc:1091
+#, gcc-internal-format
+msgid "vector condition will be expanded piecewise"
+msgstr ""
+
+#: tree-vect-generic.cc:1602
+#, gcc-internal-format
+msgid "vector shuffling operation will be expanded piecewise"
+msgstr ""
+
+#: tree-vect-loop.cc:5069
+#, gcc-internal-format
+msgid "vectorization did not happen for a simd loop"
+msgstr ""
+
+#: tree.cc:2244
+#, gcc-internal-format
+msgid "non-constant element in constant CONSTRUCTOR"
+msgstr ""
+
+#: tree.cc:2246
+#, gcc-internal-format
+msgid "side-effects element in no-side-effects CONSTRUCTOR"
+msgstr ""
+
+#: tree.cc:7347 m2/gm2-gcc/m2type.cc:215
+#, gcc-internal-format
+msgid "arrays of functions are not meaningful"
+msgstr ""
+
+#: tree.cc:7513
+#, gcc-internal-format
+msgid "function return type cannot be function"
+msgstr ""
+
+#: tree.cc:8995 tree.cc:9080 tree.cc:9143
+#, gcc-internal-format, gfc-internal-format
+msgid "tree check: %s, have %s in %s, at %s:%d"
+msgstr ""
+
+#: tree.cc:9032
+#, gcc-internal-format, gfc-internal-format
+msgid "tree check: expected none of %s, have %s in %s, at %s:%d"
+msgstr ""
+
+#: tree.cc:9045
+#, gcc-internal-format
+msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d"
+msgstr ""
+
+#: tree.cc:9094
+#, gcc-internal-format
+msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d"
+msgstr ""
+
+#: tree.cc:9107
+#, gcc-internal-format
+msgid "tree check: expected %<omp_clause %s%>, have %qs in %s, at %s:%d"
+msgstr ""
+
+#: tree.cc:9169
+#, gcc-internal-format
+msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d"
+msgstr ""
+
+#: tree.cc:9183
+#, gcc-internal-format
+msgid "tree check: accessed elt %d of %<tree_int_cst%> with %d elts in %s, at %s:%d"
+msgstr ""
+
+#: tree.cc:9196
+#, gcc-internal-format
+msgid "tree check: accessed elt %d of %<tree_vec%> with %d elts in %s, at %s:%d"
+msgstr ""
+
+#: tree.cc:9209
+#, gcc-internal-format, gfc-internal-format
+msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
+msgstr ""
+
+#: tree.cc:9222
+#, gcc-internal-format
+msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in %s, at %s:%d"
+msgstr ""
+
+#: tree.cc:12476
+#, gcc-internal-format
+msgid "%qD is deprecated: %s"
+msgstr ""
+
+#: tree.cc:12479
+#, gcc-internal-format
+msgid "%qD is deprecated"
+msgstr ""
+
+#: tree.cc:12502
+#, gcc-internal-format
+msgid "%qE is deprecated: %s"
+msgstr ""
+
+#: tree.cc:12505
+#, gcc-internal-format
+msgid "%qE is deprecated"
+msgstr ""
+
+#: tree.cc:12511
+#, gcc-internal-format, gfc-internal-format
+msgid "type is deprecated: %s"
+msgstr ""
+
+#: tree.cc:12514
+#, gcc-internal-format
+msgid "type is deprecated"
+msgstr ""
+
+#: tree.cc:12556
+#, gcc-internal-format
+msgid "%qD is unavailable: %s"
+msgstr ""
+
+#: tree.cc:12558
+#, gcc-internal-format
+msgid "%qD is unavailable"
+msgstr ""
+
+#: tree.cc:12579
+#, gcc-internal-format
+msgid "%qE is unavailable: %s"
+msgstr ""
+
+#: tree.cc:12581
+#, gcc-internal-format
+msgid "%qE is unavailable"
+msgstr ""
+
+#: tree.cc:12586
+#, gcc-internal-format, gfc-internal-format
+msgid "type is unavailable: %s"
+msgstr ""
+
+#: tree.cc:12588
+#, gcc-internal-format
+msgid "type is unavailable"
+msgstr ""
+
+#. Type variant can differ by:
+#.
+#. - TYPE_QUALS: TYPE_READONLY, TYPE_VOLATILE, TYPE_ATOMIC, TYPE_RESTRICT,
+#. ENCODE_QUAL_ADDR_SPACE.
+#. - main variant may be TYPE_COMPLETE_P and variant types !TYPE_COMPLETE_P
+#. in this case some values may not be set in the variant types
+#. (see TYPE_COMPLETE_P checks).
+#. - it is possible to have TYPE_ARTIFICIAL variant of non-artifical type
+#. - by TYPE_NAME and attributes (i.e. when variant originate by typedef)
+#. - TYPE_CANONICAL (TYPE_ALIAS_SET is the same among variants)
+#. - by the alignment: TYPE_ALIGN and TYPE_USER_ALIGN
+#. - during LTO by TYPE_CONTEXT if type is TYPE_FILE_SCOPE_P
+#. this is necessary to make it possible to merge types form different TUs
+#. - arrays, pointers and references may have TREE_TYPE that is a variant
+#. of TREE_TYPE of their main variants.
+#. - aggregates may have new TYPE_FIELDS list that list variants of
+#. the main variant TYPE_FIELDS.
+#. - vector types may differ by TYPE_VECTOR_OPAQUE
+#.
+#. Convenience macro for matching individual fields.
+#: tree.cc:13516
+#, gcc-internal-format, gfc-internal-format
+msgid "type variant differs by %s"
+msgstr ""
+
+#: tree.cc:13561
+#, gcc-internal-format
+msgid "type variant has different %<TYPE_SIZE_UNIT%>"
+msgstr ""
+
+#: tree.cc:13563
+#, gcc-internal-format
+msgid "type variant%'s %<TYPE_SIZE_UNIT%>"
+msgstr ""
+
+#: tree.cc:13565
+#, gcc-internal-format
+msgid "type%'s %<TYPE_SIZE_UNIT%>"
+msgstr ""
+
+#: tree.cc:13590
+#, gcc-internal-format
+msgid "type variant with %<TYPE_ALIAS_SET_KNOWN_P%>"
+msgstr ""
+
+#: tree.cc:13603
+#, gcc-internal-format
+msgid "type variant has different %<TYPE_VFIELD%>"
+msgstr ""
+
+#: tree.cc:13640
+#, gcc-internal-format
+msgid "type variant has different %<TYPE_BINFO%>"
+msgstr ""
+
+#: tree.cc:13642
+#, gcc-internal-format
+msgid "type variant%'s %<TYPE_BINFO%>"
+msgstr ""
+
+#: tree.cc:13644
+#, gcc-internal-format
+msgid "type%'s %<TYPE_BINFO%>"
+msgstr ""
+
+#: tree.cc:13683
+#, gcc-internal-format
+msgid "type variant has different %<TYPE_FIELDS%>"
+msgstr ""
+
+#: tree.cc:13685
+#, gcc-internal-format
+msgid "first mismatch is field"
+msgstr ""
+
+#: tree.cc:13687
+#, gcc-internal-format
+msgid "and field"
+msgstr ""
+
+#: tree.cc:13704
+#, gcc-internal-format
+msgid "type variant has different %<TREE_TYPE%>"
+msgstr ""
+
+#: tree.cc:13706 tree.cc:13717
+#, gcc-internal-format
+msgid "type variant%'s %<TREE_TYPE%>"
+msgstr ""
+
+#: tree.cc:13708 tree.cc:13719
+#, gcc-internal-format
+msgid "type%'s %<TREE_TYPE%>"
+msgstr ""
+
+#: tree.cc:13715
+#, gcc-internal-format
+msgid "type is not compatible with its variant"
+msgstr ""
+
+#: tree.cc:14040
+#, gcc-internal-format, gfc-internal-format
+msgid "type %s is not an opaque type"
+msgstr ""
+
+#: tree.cc:14046
+#, gcc-internal-format, gfc-internal-format
+msgid "type %s is not with opaque mode"
+msgstr ""
+
+#: tree.cc:14052
+#, gcc-internal-format
+msgid "type %s differs by %<TYPE_MODE%>"
+msgstr ""
+
+#: tree.cc:14060
+#, gcc-internal-format
+msgid "type %s differs by %<TYPE_SIZE%>"
+msgstr ""
+
+#: tree.cc:14066
+#, gcc-internal-format
+msgid "type %s differs by %<TYPE_ALIGN%>"
+msgstr ""
+
+#: tree.cc:14072
+#, gcc-internal-format
+msgid "type %s differs by %<TYPE_USER_ALIGN%>"
+msgstr ""
+
+#: tree.cc:14102
+#, gcc-internal-format
+msgid "main variant is not defined"
+msgstr ""
+
+#: tree.cc:14107
+#, gcc-internal-format
+msgid "%<TYPE_MAIN_VARIANT%> has different %<TYPE_MAIN_VARIANT%>"
+msgstr ""
+
+#: tree.cc:14118
+#, gcc-internal-format
+msgid "%<TYPE_CANONICAL%> has different %<TYPE_CANONICAL%>"
+msgstr ""
+
+#: tree.cc:14137
+#, gcc-internal-format
+msgid "%<TYPE_CANONICAL%> is not compatible"
+msgstr ""
+
+#: tree.cc:14145
+#, gcc-internal-format
+msgid "%<TYPE_MODE%> of %<TYPE_CANONICAL%> is not compatible"
+msgstr ""
+
+#: tree.cc:14151
+#, gcc-internal-format
+msgid "%<TYPE_CANONICAL%> of main variant is not main variant"
+msgstr ""
+
+#: tree.cc:14167
+#, gcc-internal-format
+msgid "%<TYPE_VFIELD%> is not %<FIELD_DECL%> nor %<TREE_LIST%>"
+msgstr ""
+
+#: tree.cc:14177
+#, gcc-internal-format
+msgid "%<TYPE_NEXT_PTR_TO%> is not %<POINTER_TYPE%>"
+msgstr ""
+
+#: tree.cc:14187
+#, gcc-internal-format
+msgid "%<TYPE_NEXT_REF_TO%> is not %<REFERENCE_TYPE%>"
+msgstr ""
+
+#: tree.cc:14208
+#, gcc-internal-format
+msgid "%<TYPE_BINFO%> is not %<TREE_BINFO%>"
+msgstr ""
+
+#: tree.cc:14214
+#, gcc-internal-format
+msgid "%<TYPE_BINFO%> type is not %<TYPE_MAIN_VARIANT%>"
+msgstr ""
+
+#: tree.cc:14225
+#, gcc-internal-format
+msgid "%<TYPE_METHOD_BASETYPE%> is not record nor union"
+msgstr ""
+
+#: tree.cc:14236
+#, gcc-internal-format
+msgid "%<TYPE_OFFSET_BASETYPE%> is not record nor union"
+msgstr ""
+
+#: tree.cc:14254
+#, gcc-internal-format
+msgid "%<TYPE_ARRAY_MAX_SIZE%> not %<INTEGER_CST%>"
+msgstr ""
+
+#: tree.cc:14261
+#, gcc-internal-format
+msgid "%<TYPE_MAX_VALUE_RAW%> non-NULL"
+msgstr ""
+
+#: tree.cc:14268
+#, gcc-internal-format
+msgid "%<TYPE_LANG_SLOT_1 (binfo)%> field is non-NULL"
+msgstr ""
+
+#: tree.cc:14284
+#, gcc-internal-format
+msgid "enum value is not %<CONST_DECL%> or %<INTEGER_CST%>"
+msgstr ""
+
+#: tree.cc:14293
+#, gcc-internal-format
+msgid "enum value type is not %<INTEGER_TYPE%> nor convertible to the enum"
+msgstr ""
+
+#: tree.cc:14301
+#, gcc-internal-format
+msgid "enum value name is not %<IDENTIFIER_NODE%>"
+msgstr ""
+
+#: tree.cc:14311
+#, gcc-internal-format
+msgid "array %<TYPE_DOMAIN%> is not integer type"
+msgstr ""
+
+#: tree.cc:14320
+#, gcc-internal-format
+msgid "%<TYPE_FIELDS%> defined in incomplete type"
+msgstr ""
+
+#: tree.cc:14342
+#, gcc-internal-format
+msgid "wrong tree in %<TYPE_FIELDS%> list"
+msgstr ""
+
+#: tree.cc:14358
+#, gcc-internal-format
+msgid "%<TYPE_CACHED_VALUES_P%> is %i while %<TYPE_CACHED_VALUES%> is %p"
+msgstr ""
+
+#: tree.cc:14365
+#, gcc-internal-format
+msgid "%<TYPE_CACHED_VALUES%> is not %<TREE_VEC%>"
+msgstr ""
+
+#: tree.cc:14378
+#, gcc-internal-format
+msgid "wrong %<TYPE_CACHED_VALUES%> entry"
+msgstr ""
+
+#: tree.cc:14391
+#, gcc-internal-format
+msgid "%<TREE_PURPOSE%> is non-NULL in %<TYPE_ARG_TYPES%> list"
+msgstr ""
+
+#: tree.cc:14397
+#, gcc-internal-format
+msgid "wrong entry in %<TYPE_ARG_TYPES%> list"
+msgstr ""
+
+#: tree.cc:14404
+#, gcc-internal-format
+msgid "%<TYPE_VALUES_RAW%> field is non-NULL"
+msgstr ""
+
+#: tree.cc:14417
+#, gcc-internal-format
+msgid "%<TYPE_CACHED_VALUES_P%> is set while it should not be"
+msgstr ""
+
+#: tree.cc:14427
+#, gcc-internal-format
+msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
+msgstr ""
+
+#: tsan.cc:509
+#, gcc-internal-format
+msgid "%qs is not supported with %qs"
+msgstr ""
+
+#: value-prof.cc:488
+#, gcc-internal-format
+msgid "dead histogram"
+msgstr ""
+
+#: value-prof.cc:517
+#, gcc-internal-format
+msgid "histogram value statement does not correspond to the statement it is associated with"
+msgstr ""
+
+#: value-prof.cc:586
+#, gcc-internal-format, gfc-internal-format
+msgid "corrupted value profile: %s profile counter (%d out of %d) inconsistent with basic-block count (%d)"
+msgstr ""
+
+#: var-tracking.cc:7194
+#, gcc-internal-format
+msgid "variable tracking size limit exceeded with %<-fvar-tracking-assignments%>, retrying without"
+msgstr ""
+
+#: var-tracking.cc:7198
+#, gcc-internal-format
+msgid "variable tracking size limit exceeded"
+msgstr ""
+
+#: varasm.cc:312
+#, gcc-internal-format
+msgid "section already exists: %qs"
+msgstr ""
+
+#: varasm.cc:358
+#, gcc-internal-format
+msgid "%+qD causes a section type conflict with %qD"
+msgstr ""
+
+#: varasm.cc:361
+#, gcc-internal-format
+msgid "section type conflict with %qD"
+msgstr ""
+
+#: varasm.cc:366
+#, gcc-internal-format
+msgid "%+qD causes a section type conflict"
+msgstr ""
+
+#: varasm.cc:368
+#, gcc-internal-format
+msgid "section type conflict"
+msgstr ""
+
+#: varasm.cc:1101
+#, gcc-internal-format
+msgid "alignment of %q+D is greater than maximum object file alignment %d"
+msgstr ""
+
+#: varasm.cc:1269
+#, gcc-internal-format
+msgid "only zero initializers are allowed in section %qs"
+msgstr ""
+
+#: varasm.cc:1499 varasm.cc:1508 d/d-attribs.cc:1463
+#, gcc-internal-format
+msgid "register name not specified for %q+D"
+msgstr ""
+
+#: varasm.cc:1510
+#, gcc-internal-format
+msgid "invalid register name for %q+D"
+msgstr ""
+
+#: varasm.cc:1512
+#, gcc-internal-format
+msgid "data type of %q+D isn%'t suitable for a register"
+msgstr ""
+
+#: varasm.cc:1515
+#, gcc-internal-format
+msgid "the register specified for %q+D cannot be accessed by the current target"
+msgstr ""
+
+#: varasm.cc:1518
+#, gcc-internal-format
+msgid "the register specified for %q+D is not general enough to be used as a register variable"
+msgstr ""
+
+#: varasm.cc:1521
+#, gcc-internal-format
+msgid "register specified for %q+D isn%'t suitable for data type"
+msgstr ""
+
+#: varasm.cc:1530
+#, gcc-internal-format
+msgid "register specified for %q+D is an internal GCC implementation detail"
+msgstr ""
+
+#: varasm.cc:1540
+#, gcc-internal-format
+msgid "global register variable has initial value"
+msgstr ""
+
+#: varasm.cc:1544
+#, gcc-internal-format
+msgid "optimization may eliminate reads and/or writes to register variables"
+msgstr ""
+
+#: varasm.cc:1590
+#, gcc-internal-format
+msgid "register name given for non-register variable %q+D"
+msgstr ""
+
+#: varasm.cc:2198
+#, gcc-internal-format
+msgid "thread-local COMMON data not implemented"
+msgstr ""
+
+#: varasm.cc:2231
+#, gcc-internal-format
+msgid "requested alignment for %q+D is greater than implemented alignment of %wu"
+msgstr ""
+
+#: varasm.cc:2334 c/c-decl.cc:5903 c/c-parser.cc:1910 m2/gm2-gcc/m2type.cc:1240
+#, gcc-internal-format
+msgid "storage size of %q+D isn%'t known"
+msgstr ""
+
+#: varasm.cc:5319 varasm.cc:5358
+#, gcc-internal-format
+msgid "initializer for integer/fixed-point value is too complicated"
+msgstr ""
+
+#: varasm.cc:5325
+#, gcc-internal-format
+msgid "initializer for floating value is not a floating constant"
+msgstr ""
+
+#: varasm.cc:5342
+#, gcc-internal-format
+msgid "initializer for %<_BitInt(%d)%> value is not an integer constant"
+msgstr ""
+
+#: varasm.cc:5725
+#, gcc-internal-format
+msgid "invalid initial value for member %qE"
+msgstr ""
+
+#: varasm.cc:5981
+#, gcc-internal-format
+msgid "%qD declared weak after being used"
+msgstr ""
+
+#: varasm.cc:6033
+#, gcc-internal-format
+msgid "weak declaration of %q+D being applied to a already existing, static definition"
+msgstr ""
+
+#: varasm.cc:6074
+#, gcc-internal-format
+msgid "weak declaration of %q+D must be public"
+msgstr ""
+
+#: varasm.cc:6078
+#, gcc-internal-format
+msgid "weak declaration of %q+D not supported"
+msgstr ""
+
+#: varasm.cc:6107 varasm.cc:6430
+#, gcc-internal-format
+msgid "only weak aliases are supported in this configuration"
+msgstr ""
+
+#: varasm.cc:6302 varasm.cc:6427
+#, gcc-internal-format
+msgid "%qs is not supported in this configuration"
+msgstr ""
+
+#: varasm.cc:6330
+#, gcc-internal-format
+msgid "%qs is not supported on this target"
+msgstr ""
+
+#: varasm.cc:6390
+#, gcc-internal-format
+msgid "symver is only supported on ELF platforms"
+msgstr ""
+
+#: varasm.cc:6409
+#, gcc-internal-format
+msgid "%qs symbol %q+D ultimately targets itself"
+msgstr ""
+
+#: varasm.cc:6411
+#, gcc-internal-format
+msgid "%qs symbol %q+D must have static linkage"
+msgstr ""
+
+#: varasm.cc:6417 config/nvptx/nvptx.cc:7592
+#, gcc-internal-format
+msgid "alias definitions not supported in this configuration"
+msgstr ""
+
+#: varasm.cc:6645 config/sol2.cc:160 config/i386/winnt.cc:265
+#, gcc-internal-format
+msgid "visibility attribute not supported in this configuration; ignored"
+msgstr ""
+
+#: varasm.cc:8017
+#, gcc-internal-format
+msgid "%+qD without %<retain%> attribute and %qD with %<retain%> attribute are placed in a section with the same name"
+msgstr ""
+
+#: vec.cc:190
+#, gcc-internal-format, gfc-internal-format
+msgid "qsort comparator not anti-symmetric: %d, %d"
+msgstr ""
+
+#: vec.cc:195
+#, gcc-internal-format, gfc-internal-format
+msgid "qsort comparator non-negative on sorted output: %d"
+msgstr ""
+
+#: vec.cc:202
+#, gcc-internal-format, gfc-internal-format
+msgid "qsort comparator not transitive: %d, %d, %d"
+msgstr ""
+
+#: vec.cc:204
+#, gcc-internal-format
+msgid "qsort checking failed"
+msgstr ""
+
+#: c-family/c-ada-spec.cc:2946
+#, gcc-internal-format
+msgid "packed layout"
+msgstr ""
+
+#: c-family/c-attribs.cc:696 d/d-attribs.cc:1195
+#, gcc-internal-format
+msgid "%qE attribute argument is invalid"
+msgstr ""
+
+#: c-family/c-attribs.cc:699 d/d-attribs.cc:1198
+#, gcc-internal-format
+msgid "%qE attribute argument %i is invalid"
+msgstr ""
+
+#: c-family/c-attribs.cc:711 d/d-attribs.cc:1210
+#, gcc-internal-format
+msgid "%qE attribute argument has type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:715 d/d-attribs.cc:1214
+#, gcc-internal-format
+msgid "%qE attribute argument %i has type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:726 c-family/c-attribs.cc:4646
+#: c-family/c-attribs.cc:4650 d/d-attribs.cc:1225
+#, gcc-internal-format
+msgid "%qE attribute argument value %qE is not an integer constant"
+msgstr ""
+
+#: c-family/c-attribs.cc:731 d/d-attribs.cc:1230
+#, gcc-internal-format
+msgid "%qE attribute argument %i value %qE is not an integer constant"
+msgstr ""
+
+#: c-family/c-attribs.cc:747 d/d-attribs.cc:1244
+#, gcc-internal-format
+msgid "%qE attribute argument value %qE does not refer to a function parameter"
+msgstr ""
+
+#: c-family/c-attribs.cc:752 d/d-attribs.cc:1249
+#, gcc-internal-format
+msgid "%qE attribute argument %i value %qE does not refer to a function parameter"
+msgstr ""
+
+#: c-family/c-attribs.cc:780 d/d-attribs.cc:1272
+#, gcc-internal-format
+msgid "%qE attribute argument value %qE exceeds the number of function parameters %u"
+msgstr ""
+
+#: c-family/c-attribs.cc:785 d/d-attribs.cc:1277
+#, gcc-internal-format
+msgid "%qE attribute argument %i value %qE exceeds the number of function parameters %u"
+msgstr ""
+
+#: c-family/c-attribs.cc:807
+#, gcc-internal-format
+msgid "%qE attribute argument value %qE does not refer to a variable argument list"
+msgstr ""
+
+#: c-family/c-attribs.cc:811
+#, gcc-internal-format
+msgid "%qE attribute argument %i value %qE does not refer to a variable argument list"
+msgstr ""
+
+#: c-family/c-attribs.cc:838 c-family/c-attribs.cc:851 d/d-attribs.cc:1298
+#, gcc-internal-format
+msgid "%qE attribute argument value %qE refers to parameter type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:842 c-family/c-attribs.cc:856 d/d-attribs.cc:1303
+#, gcc-internal-format
+msgid "%qE attribute argument %i value %qE refers to parameter type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:866
+#, gcc-internal-format
+msgid "%qE attribute argument value %qE refers to a variadic function parameter of unknown type"
+msgstr ""
+
+#: c-family/c-attribs.cc:871
+#, gcc-internal-format
+msgid "%qE attribute argument %i value %qE refers to a variadic function parameter of unknown type"
+msgstr ""
+
+#: c-family/c-attribs.cc:991
+#, gcc-internal-format
+msgid "ignoring attribute %qs because it conflicts with previous %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:1029
+#, gcc-internal-format
+msgid "%qE attribute only supported on boolean types"
+msgstr ""
+
+#: c-family/c-attribs.cc:1039
+#, gcc-internal-format
+msgid "%qE attribute with unsupported boolean precision"
+msgstr ""
+
+#: c-family/c-attribs.cc:1059
+#, gcc-internal-format
+msgid "%qE attribute only supported in C"
+msgstr ""
+
+#: c-family/c-attribs.cc:1066
+#, gcc-internal-format
+msgid "%qE attribute only supported on integral types"
+msgstr ""
+
+#: c-family/c-attribs.cc:1087 c-family/c-attribs.cc:1103
+#, gcc-internal-format
+msgid "overflows in conversion from %qT to %qT changes value from %qE to %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:1112
+#, gcc-internal-format
+msgid "%qE attribute requires different values for %<false%> and %<true%> for type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:1152
+#, gcc-internal-format
+msgid "%qE attribute ignored for type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:1164
+#, gcc-internal-format
+msgid "%qE attribute ignored for field of type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:1380 c-family/c-attribs.cc:3509
+#: c-family/c-attribs.cc:6039 ada/gcc-interface/utils.cc:7283
+#, gcc-internal-format
+msgid "%qE argument not a string"
+msgstr ""
+
+#: c-family/c-attribs.cc:1555 ada/gcc-interface/utils.cc:6793
+#, gcc-internal-format
+msgid "%qE attribute ignored because of argument %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:1576 ada/gcc-interface/utils.cc:6814
+#, gcc-internal-format
+msgid "ignoring attribute %qE because of excess arguments starting at %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:1590 ada/gcc-interface/utils.cc:6828
+#, gcc-internal-format
+msgid "attribute %qE does not apply to elements of non-scalar type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:1595 ada/gcc-interface/utils.cc:6833
+#, gcc-internal-format
+msgid "attribute %qE does not apply to fields of aggregate type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:1661
+#, gcc-internal-format
+msgid "%qE attribute ignored. Use %<-fcf-protection%> option to enable it"
+msgstr ""
+
+#: c-family/c-attribs.cc:1751 jit/dummy-frontend.cc:275 lto/lto-lang.cc:307
+#, gcc-internal-format
+msgid "%qE attribute has no effect on unit local functions"
+msgstr ""
+
+#: c-family/c-attribs.cc:1921 c-family/c-attribs.cc:3492
+#, gcc-internal-format
+msgid "%qE attribute ignored because %qD is not a variable"
+msgstr ""
+
+#: c-family/c-attribs.cc:1927
+#, gcc-internal-format
+msgid "%qE attribute ignored because %qD is not a local variable"
+msgstr ""
+
+#: c-family/c-attribs.cc:1952 config/i386/i386-options.cc:4191
+#, gcc-internal-format
+msgid "%qE attribute have effect only on public objects"
+msgstr ""
+
+#: c-family/c-attribs.cc:1981
+#, gcc-internal-format
+msgid "%qE attribute only affects top level objects"
+msgstr ""
+
+#: c-family/c-attribs.cc:2020 c-family/c-attribs.cc:4166
+#, gcc-internal-format
+msgid "%qE attribute on function returning %<void%>"
+msgstr ""
+
+#: c-family/c-attribs.cc:2043
+#, gcc-internal-format
+msgid "%qE attribute is not supported because endianness is not uniform"
+msgstr ""
+
+#: c-family/c-attribs.cc:2060
+#, gcc-internal-format
+msgid "attribute %qE argument must be one of %qs or %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:2156
+#, gcc-internal-format
+msgid "destructor priorities are not supported"
+msgstr ""
+
+#: c-family/c-attribs.cc:2158
+#, gcc-internal-format
+msgid "constructor priorities are not supported"
+msgstr ""
+
+#: c-family/c-attribs.cc:2180
+#, gcc-internal-format, gfc-internal-format
+msgid "destructor priorities from 0 to %d are reserved for the implementation"
+msgstr ""
+
+#: c-family/c-attribs.cc:2185
+#, gcc-internal-format, gfc-internal-format
+msgid "constructor priorities from 0 to %d are reserved for the implementation"
+msgstr ""
+
+#: c-family/c-attribs.cc:2193
+#, gcc-internal-format, gfc-internal-format
+msgid "destructor priorities must be integers from 0 to %d inclusive"
+msgstr ""
+
+#: c-family/c-attribs.cc:2196
+#, gcc-internal-format, gfc-internal-format
+msgid "constructor priorities must be integers from 0 to %d inclusive"
+msgstr ""
+
+#: c-family/c-attribs.cc:2349
+#, gcc-internal-format
+msgid "unknown machine mode %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:2383
+#, gcc-internal-format
+msgid "specifying vector types with %<__attribute__ ((mode))%> is deprecated"
+msgstr ""
+
+#: c-family/c-attribs.cc:2386
+#, gcc-internal-format
+msgid "use %<__attribute__ ((vector_size))%> instead"
+msgstr ""
+
+#: c-family/c-attribs.cc:2395
+#, gcc-internal-format
+msgid "unable to emulate %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:2408
+#, gcc-internal-format
+msgid "invalid pointer mode %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:2425
+#, gcc-internal-format
+msgid "signedness of type and machine mode %qs don%'t match"
+msgstr ""
+
+#: c-family/c-attribs.cc:2436
+#, gcc-internal-format
+msgid "no data type for mode %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:2446
+#, gcc-internal-format
+msgid "cannot use mode %qs for enumerated types"
+msgstr ""
+
+#: c-family/c-attribs.cc:2474
+#, gcc-internal-format
+msgid "mode %qs applied to inappropriate type"
+msgstr ""
+
+#: c-family/c-attribs.cc:2503 c-family/c-attribs.cc:2860 d/d-attribs.cc:1024
+#, gcc-internal-format
+msgid "section attributes are not supported for this target"
+msgstr ""
+
+#: c-family/c-attribs.cc:2509 d/d-attribs.cc:1031
+#, gcc-internal-format
+msgid "section attribute not allowed for %q+D"
+msgstr ""
+
+#: c-family/c-attribs.cc:2515
+#, gcc-internal-format
+msgid "section attribute argument not a string constant"
+msgstr ""
+
+#: c-family/c-attribs.cc:2524 d/d-attribs.cc:1047
+#, gcc-internal-format
+msgid "section attribute cannot be specified for local variables"
+msgstr ""
+
+#: c-family/c-attribs.cc:2535 config/bfin/bfin.cc:4797 config/bfin/bfin.cc:4848
+#: config/bfin/bfin.cc:4874 config/bfin/bfin.cc:4887 d/d-attribs.cc:1058
+#, gcc-internal-format
+msgid "section of %q+D conflicts with previous declaration"
+msgstr ""
+
+#: c-family/c-attribs.cc:2544 c-family/c-attribs.cc:2886 d/d-attribs.cc:1067
+#, gcc-internal-format
+msgid "section of %q+D cannot be overridden"
+msgstr ""
+
+#: c-family/c-attribs.cc:2660
+#, gcc-internal-format
+msgid "alignment may not be specified for %q+D"
+msgstr ""
+
+#: c-family/c-attribs.cc:2685
+#, gcc-internal-format
+msgid "ignoring attribute %<%E (%u)%> because it conflicts with attribute %<%E (%u)%>"
+msgstr ""
+
+#: c-family/c-attribs.cc:2730
+#, gcc-internal-format
+msgid "%<warn_if_not_aligned%> may not be specified for %q+D"
+msgstr ""
+
+#: c-family/c-attribs.cc:2781
+#, gcc-internal-format
+msgid "%qE attribute may not be specified for %q+D"
+msgstr ""
+
+#: c-family/c-attribs.cc:2788
+#, gcc-internal-format
+msgid "%qE attribute may not be specified for a non-array field"
+msgstr ""
+
+#: c-family/c-attribs.cc:2795
+#, gcc-internal-format
+msgid "%qE attribute argument not an integer"
+msgstr ""
+
+#: c-family/c-attribs.cc:2801 c-family/c-attribs.cc:6235
+#, gcc-internal-format
+msgid "%qE attribute argument %qE is not an integer constant between 0 and 3"
+msgstr ""
+
+#: c-family/c-attribs.cc:2821 d/d-attribs.cc:1146 jit/dummy-frontend.cc:743
+#, gcc-internal-format
+msgid "inline function %q+D declared weak"
+msgstr ""
+
+#: c-family/c-attribs.cc:2826 jit/dummy-frontend.cc:748
+#, gcc-internal-format
+msgid "indirect function %q+D cannot be declared weak"
+msgstr ""
+
+#: c-family/c-attribs.cc:2867
+#, gcc-internal-format
+msgid "ignoring %qE attribute not set on a variable"
+msgstr ""
+
+#: c-family/c-attribs.cc:2877 config/bfin/bfin.cc:4825
+#: config/loongarch/loongarch.cc:7963
+#, gcc-internal-format
+msgid "%qE attribute cannot be specified for local variables"
+msgstr ""
+
+#: c-family/c-attribs.cc:2892
+#, gcc-internal-format
+msgid "%qE attribute is specific to ELF targets"
+msgstr ""
+
+#: c-family/c-attribs.cc:2899
+#, gcc-internal-format
+msgid "ignoring %qE attribute set on const variable"
+msgstr ""
+
+#: c-family/c-attribs.cc:2910
+#, gcc-internal-format
+msgid "ignoring %qE attribute set on initialized variable"
+msgstr ""
+
+#: c-family/c-attribs.cc:2923
+#, gcc-internal-format
+msgid "ignoring %qE attribute set on uninitialized variable"
+msgstr ""
+
+#: c-family/c-attribs.cc:2956
+#, gcc-internal-format
+msgid "%qE attribute is only applicable on functions"
+msgstr ""
+
+#: c-family/c-attribs.cc:2975 d/d-attribs.cc:1094
+#, gcc-internal-format
+msgid "%<symver%> attribute only applies to functions and variables"
+msgstr ""
+
+#: c-family/c-attribs.cc:2983 d/d-attribs.cc:1102
+#, gcc-internal-format
+msgid "%<symver%> attribute is only applicable to symbols"
+msgstr ""
+
+#: c-family/c-attribs.cc:2993
+#, gcc-internal-format
+msgid "%<symver%> attribute argument not a string constant"
+msgstr ""
+
+#: c-family/c-attribs.cc:3007 d/d-attribs.cc:1126
+#, gcc-internal-format
+msgid "symver attribute argument must have format %<name@nodename%>"
+msgstr ""
+
+#: c-family/c-attribs.cc:3008 d/d-attribs.cc:1127
+#, gcc-internal-format
+msgid "%<symver%> attribute argument %qs must contain one or two %<@%>"
+msgstr ""
+
+#: c-family/c-attribs.cc:3043 jit/dummy-frontend.cc:843
+#, gcc-internal-format
+msgid "%q+D defined both normally and as %qE attribute"
+msgstr ""
+
+#: c-family/c-attribs.cc:3051 jit/dummy-frontend.cc:851
+#, gcc-internal-format
+msgid "weak %q+D cannot be defined %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:3068 c-family/c-attribs.cc:4057
+#: ada/gcc-interface/utils.cc:7110 jit/dummy-frontend.cc:868
+#, gcc-internal-format
+msgid "attribute %qE argument not a string"
+msgstr ""
+
+#: c-family/c-attribs.cc:3101 jit/dummy-frontend.cc:901
+#, gcc-internal-format
+msgid "%+qD declared %qs after being used"
+msgstr ""
+
+#. Explicitly handle this case since using a string literal
+#. as an argument is a likely mistake.
+#: c-family/c-attribs.cc:3153
+#, gcc-internal-format
+msgid "%qE attribute argument cannot be a string"
+msgstr ""
+
+#. Similar to the string case, since some function attributes
+#. accept literal numbers as arguments (e.g., alloc_size or
+#. nonnull) using one here is a likely mistake.
+#: c-family/c-attribs.cc:3164
+#, gcc-internal-format
+msgid "%qE attribute argument cannot be a constant arithmetic expression"
+msgstr ""
+
+#: c-family/c-attribs.cc:3174
+#, gcc-internal-format
+msgid "%qE attribute ignored on a redeclaration of the referenced symbol"
+msgstr ""
+
+#: c-family/c-attribs.cc:3229
+#, gcc-internal-format
+msgid "%qE attribute ignored on a declaration of a different kind than referenced symbol"
+msgstr ""
+
+#: c-family/c-attribs.cc:3233
+#, gcc-internal-format
+msgid "symbol %qD referenced by %qD declared here"
+msgstr ""
+
+#: c-family/c-attribs.cc:3280
+#, gcc-internal-format
+msgid "%qE attribute must apply to a declaration"
+msgstr ""
+
+#: c-family/c-attribs.cc:3337
+#, gcc-internal-format
+msgid "indirect function %q+D cannot be declared %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:3360
+#, gcc-internal-format
+msgid "%qE attribute must appear before %qs attribute"
+msgstr ""
+
+#: c-family/c-attribs.cc:3373
+#, gcc-internal-format
+msgid "%+qD declared %qE after being used"
+msgstr ""
+
+#: c-family/c-attribs.cc:3397 jit/dummy-frontend.cc:586
+#, gcc-internal-format
+msgid "%qE attribute ignored on non-class types"
+msgstr ""
+
+#: c-family/c-attribs.cc:3403 jit/dummy-frontend.cc:592
+#, gcc-internal-format
+msgid "%qE attribute ignored because %qT is already defined"
+msgstr ""
+
+#: c-family/c-attribs.cc:3416 jit/dummy-frontend.cc:605
+#, gcc-internal-format
+msgid "visibility argument not a string"
+msgstr ""
+
+#: c-family/c-attribs.cc:3428 d/d-attribs.cc:1584 jit/dummy-frontend.cc:617
+#, gcc-internal-format
+msgid "%qE attribute ignored on types"
+msgstr ""
+
+#: c-family/c-attribs.cc:3444 d/d-attribs.cc:1613 jit/dummy-frontend.cc:633
+#, gcc-internal-format
+msgid "attribute %qE argument must be one of %qs, %qs, %qs, or %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:3456 d/d-attribs.cc:1624 jit/dummy-frontend.cc:645
+#, gcc-internal-format
+msgid "%qD redeclared with different visibility"
+msgstr ""
+
+#: c-family/c-attribs.cc:3459 c-family/c-attribs.cc:3463 d/d-attribs.cc:1627
+#: d/d-attribs.cc:1631 jit/dummy-frontend.cc:648 jit/dummy-frontend.cc:652
+#, gcc-internal-format
+msgid "%qD was declared %qs which implies default visibility"
+msgstr ""
+
+#: c-family/c-attribs.cc:3500
+#, gcc-internal-format
+msgid "%qE attribute ignored because %qD does not have thread storage duration"
+msgstr ""
+
+#: c-family/c-attribs.cc:3522
+#, gcc-internal-format
+msgid "%qE argument must be one of %qs, %qs, %qs, or %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:3544 c-family/c-attribs.cc:4140
+#: c-family/c-attribs.cc:6004 c-family/c-attribs.cc:6031
+#: config/m32c/m32c.cc:2942 ada/gcc-interface/utils.cc:7269
+#, gcc-internal-format
+msgid "%qE attribute applies only to functions"
+msgstr ""
+
+#: c-family/c-attribs.cc:3590
+#, gcc-internal-format
+msgid "%<%E (%E)%> attribute ignored on functions declared %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:3600
+#, gcc-internal-format
+msgid "%<%E (%E)%> attribute ignored with deallocation functions declared %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:3604
+#, gcc-internal-format
+msgid "deallocation function declared here"
+msgstr ""
+
+#: c-family/c-attribs.cc:3631
+#, gcc-internal-format
+msgid "%qE attribute ignored; valid only for functions"
+msgstr ""
+
+#: c-family/c-attribs.cc:3641
+#, gcc-internal-format
+msgid "%qE attribute ignored on functions returning %qT; valid only for pointer return types"
+msgstr ""
+
+#. Handle specially the common case of specifying one of a number
+#. of overloads, such as operator delete.
+#: c-family/c-attribs.cc:3687
+#, gcc-internal-format
+msgid "%qE attribute argument 1 is ambiguous"
+msgstr ""
+
+#: c-family/c-attribs.cc:3689
+#, gcc-internal-format
+msgid "use a cast to the expected type to disambiguate"
+msgstr ""
+
+#: c-family/c-attribs.cc:3694
+#, gcc-internal-format
+msgid "%qE attribute argument 1 does not name a function"
+msgstr ""
+
+#: c-family/c-attribs.cc:3697
+#, gcc-internal-format
+msgid "argument references a symbol declared here"
+msgstr ""
+
+#. Reject functions without a prototype.
+#: c-family/c-attribs.cc:3713
+#, gcc-internal-format
+msgid "%qE attribute argument 1 must take a pointer type as its first argument"
+msgstr ""
+
+#: c-family/c-attribs.cc:3716 c-family/c-attribs.cc:3729
+#, gcc-internal-format
+msgid "referenced symbol declared here"
+msgstr ""
+
+#. Reject functions that don't take a pointer as their first
+#. argument.
+#: c-family/c-attribs.cc:3726
+#, gcc-internal-format
+msgid "%qE attribute argument 1 must take a pointer type as its first argument; have %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:3840 c-family/c-attribs.cc:3888
+#: c-family/c-attribs.cc:3915 d/d-attribs.cc:1329
+#, gcc-internal-format
+msgid "%qE attribute ignored on a function returning %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:3934
+#, gcc-internal-format
+msgid "%qE attribute argument %E is not an integer constant"
+msgstr ""
+
+#: c-family/c-attribs.cc:3942
+#, gcc-internal-format
+msgid "%qE attribute argument %E is not positive"
+msgstr ""
+
+#: c-family/c-attribs.cc:3953
+#, gcc-internal-format
+msgid "%qE attribute argument %E is not a power of 2"
+msgstr ""
+
+#: c-family/c-attribs.cc:3966
+#, gcc-internal-format
+msgid "%qE attribute argument %E is not in the range [0, %wu]"
+msgstr ""
+
+#: c-family/c-attribs.cc:4070 ada/gcc-interface/utils.cc:7123
+#, gcc-internal-format
+msgid "only %<inbranch%> and %<notinbranch%> flags are allowed for %<__simd__%> attribute"
+msgstr ""
+
+#: c-family/c-attribs.cc:4146 c-family/c-attribs.cc:6010
+#, gcc-internal-format
+msgid "cannot set %qE attribute after definition"
+msgstr ""
+
+#: c-family/c-attribs.cc:4213
+#, gcc-internal-format
+msgid "%qE attribute duplicated"
+msgstr ""
+
+#: c-family/c-attribs.cc:4215
+#, gcc-internal-format
+msgid "%qE attribute follows %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:4314
+#, gcc-internal-format
+msgid "type was previously declared %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:4327 cp/class.cc:5054
+#, gcc-internal-format
+msgid "%<transaction_safe_dynamic%> may only be specified for a virtual function"
+msgstr ""
+
+#: c-family/c-attribs.cc:4385
+#, gcc-internal-format
+msgid "%qE argument not an identifier"
+msgstr ""
+
+#: c-family/c-attribs.cc:4396
+#, gcc-internal-format
+msgid "%qD is not compatible with %qD"
+msgstr ""
+
+#: c-family/c-attribs.cc:4399
+#, gcc-internal-format
+msgid "%qE argument is not a function"
+msgstr ""
+
+#: c-family/c-attribs.cc:4447 cp/name-lookup.cc:6468
+#, gcc-internal-format
+msgid "deprecated message is not a string"
+msgstr ""
+
+#: c-family/c-attribs.cc:4496 c-family/c-attribs.cc:4561
+#, gcc-internal-format
+msgid "%qE attribute ignored for %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:4520
+#, gcc-internal-format
+msgid "the message attached to %<unavailable%> is not a string"
+msgstr ""
+
+#: c-family/c-attribs.cc:4622 c-family/c-attribs.cc:4624
+#, gcc-internal-format
+msgid "invalid vector type for attribute %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:4659 c-family/c-attribs.cc:4663
+#, gcc-internal-format
+msgid "%qE attribute argument value %qE is negative"
+msgstr ""
+
+#: c-family/c-attribs.cc:4676 c-family/c-attribs.cc:4680
+#, gcc-internal-format
+msgid "%qE attribute argument value %qE exceeds %wu"
+msgstr ""
+
+#: c-family/c-attribs.cc:4688 ada/gcc-interface/utils.cc:4300
+#, gcc-internal-format
+msgid "vector size not an integral multiple of component size"
+msgstr ""
+
+#: c-family/c-attribs.cc:4694 ada/gcc-interface/utils.cc:4307
+#, gcc-internal-format
+msgid "zero vector size"
+msgstr ""
+
+#: c-family/c-attribs.cc:4703 c-family/c-attribs.cc:4706
+#, gcc-internal-format
+msgid "number of vector components %wu not a power of two"
+msgstr ""
+
+#: c-family/c-attribs.cc:4713 c-family/c-attribs.cc:4717
+#, gcc-internal-format
+msgid "number of vector components %wu exceeds %d"
+msgstr ""
+
+#: c-family/c-attribs.cc:4777
+#, gcc-internal-format
+msgid "%qE attribute only supported on non-mask vector types"
+msgstr ""
+
+#: c-family/c-attribs.cc:4810 c-family/c-attribs.cc:4850
+#, gcc-internal-format
+msgid "%qE attribute without arguments on a non-prototype"
+msgstr ""
+
+#: c-family/c-attribs.cc:4905
+#, gcc-internal-format
+msgid "%qE attribute ignored on objects of type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:4913
+#, gcc-internal-format
+msgid "%qE attribute does not apply to functions"
+msgstr ""
+
+#: c-family/c-attribs.cc:5051
+#, gcc-internal-format
+msgid "attribute %qs mismatch with mode %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:5100
+#, gcc-internal-format
+msgid "attribute %qs missing positional argument 2 provided in previous designation by argument %u"
+msgstr ""
+
+#: c-family/c-attribs.cc:5106
+#, gcc-internal-format
+msgid "attribute %qs positional argument 2 missing in previous designation"
+msgstr ""
+
+#: c-family/c-attribs.cc:5112
+#, gcc-internal-format
+msgid "attribute %qs positional argument 2 conflicts with previous designation by argument %u"
+msgstr ""
+
+#: c-family/c-attribs.cc:5120
+#, gcc-internal-format
+msgid "attribute %qs mismatched positional argument values %i and %i"
+msgstr ""
+
+#: c-family/c-attribs.cc:5142
+#, gcc-internal-format, gfc-internal-format
+msgid "designating the bound of variable length array argument %u"
+msgstr ""
+
+#: c-family/c-attribs.cc:5225
+#, gcc-internal-format
+msgid "attribute %qE without arguments on a non-prototype"
+msgstr ""
+
+#: c-family/c-attribs.cc:5275
+#, gcc-internal-format
+msgid "attribute %qE invalid mode"
+msgstr ""
+
+#: c-family/c-attribs.cc:5284
+#, gcc-internal-format
+msgid "attribute %qE mode %qE is not an identifier; expected one of %qs, %qs, %qs, or %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:5311
+#, gcc-internal-format
+msgid "attribute %qE invalid mode %qs; expected one of %qs, %qs, %qs, or %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:5322
+#, gcc-internal-format
+msgid "attribute %qE unexpected %<(%> after mode %qs; expected a positional argument or %<)%>"
+msgstr ""
+
+#. The first positional argument is required.  It may be worth
+#. dropping the requirement at some point and having read_only
+#. apply to all const-qualified pointers and read_write or
+#. write_only to the rest.
+#: c-family/c-attribs.cc:5335
+#, gcc-internal-format
+msgid "attribute %<%E(%s)%> missing an argument"
+msgstr ""
+
+#: c-family/c-attribs.cc:5376
+#, gcc-internal-format
+msgid "attribute %<%E(%s, %E, %E)%> invalid positional argument %i"
+msgstr ""
+
+#: c-family/c-attribs.cc:5379
+#, gcc-internal-format
+msgid "attribute %<%E(%s, %E)%> invalid positional argument %i"
+msgstr ""
+
+#: c-family/c-attribs.cc:5404
+#, gcc-internal-format
+msgid "attribute %qs positional argument %i invalid value %wi"
+msgstr ""
+
+#: c-family/c-attribs.cc:5408
+#, gcc-internal-format
+msgid "attribute %qs positional argument %i value %wi exceeds number of function arguments %u"
+msgstr ""
+
+#: c-family/c-attribs.cc:5415
+#, gcc-internal-format
+msgid "attribute %qs invalid positional argument"
+msgstr ""
+
+#. The first argument must have a pointer or reference type.
+#: c-family/c-attribs.cc:5423
+#, gcc-internal-format
+msgid "attribute %qs positional argument 1 references non-pointer argument type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:5434
+#, gcc-internal-format
+msgid "attribute %qs positional argument 1 references argument of function type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:5447
+#, gcc-internal-format
+msgid "attribute %qs positional argument 1 references %qs-qualified argument type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:5465
+#, gcc-internal-format
+msgid "attribute %qs positional argument 2 references non-integer argument type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:5735
+#, gcc-internal-format
+msgid "cleanup argument not an identifier"
+msgstr ""
+
+#: c-family/c-attribs.cc:5742
+#, gcc-internal-format
+msgid "cleanup argument not a function"
+msgstr ""
+
+#: c-family/c-attribs.cc:5779
+#, gcc-internal-format
+msgid "%qE attribute requires prototypes with named arguments"
+msgstr ""
+
+#: c-family/c-attribs.cc:5787
+#, gcc-internal-format
+msgid "%qE attribute only applies to variadic functions"
+msgstr ""
+
+#: c-family/c-attribs.cc:5803 ada/gcc-interface/utils.cc:6694
+#, gcc-internal-format
+msgid "requested position is not an integer constant"
+msgstr ""
+
+#: c-family/c-attribs.cc:5811 ada/gcc-interface/utils.cc:6701
+#, gcc-internal-format
+msgid "requested position is less than zero"
+msgstr ""
+
+#: c-family/c-attribs.cc:5860 ada/gcc-interface/utils.cc:7166
+#: d/d-attribs.cc:771 jit/dummy-frontend.cc:784
+#, gcc-internal-format
+msgid "empty string in attribute %<target%>"
+msgstr ""
+
+#. The argument must be a constant string.
+#: c-family/c-attribs.cc:5901 config/sh/sh.cc:8549 d/d-attribs.cc:1038
+#: d/d-attribs.cc:1112 d/d-attribs.cc:1415 d/d-attribs.cc:1457
+#: d/d-attribs.cc:1519 d/d-attribs.cc:1598
+#, gcc-internal-format
+msgid "%qE attribute argument not a string constant"
+msgstr ""
+
+#: c-family/c-attribs.cc:6056 ada/gcc-interface/utils.cc:7300
+#, gcc-internal-format
+msgid "unrecognized %qE attribute argument %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:6074
+#, gcc-internal-format
+msgid "%qE attribute on a function not returning a pointer"
+msgstr ""
+
+#: c-family/c-attribs.cc:6089
+#, gcc-internal-format
+msgid "%qE attribute is only valid on %<struct%> type"
+msgstr ""
+
+#: c-family/c-attribs.cc:6137
+#, gcc-internal-format
+msgid "%qE attribute argument %qE is not an integer constant"
+msgstr ""
+
+#: c-family/c-attribs.cc:6146
+#, gcc-internal-format
+msgid "%qE attribute argument %qE exceeds %u"
+msgstr ""
+
+#: c-family/c-attribs.cc:6168
+#, gcc-internal-format
+msgid "%qE attribute may be put on a typedef only; attribute is ignored"
+msgstr ""
+
+#: c-family/c-attribs.cc:6180
+#, gcc-internal-format
+msgid "%qE attribute is for pointer types only"
+msgstr ""
+
+#: c-family/c-attribs.cc:6199
+#, gcc-internal-format
+msgid "%qE is only applicable to Objective-C class interfaces, attribute ignored"
+msgstr ""
+
+#: c-family/c-attribs.cc:6222
+#, gcc-internal-format
+msgid "%qE cannot be applied to non-pointer type %qT"
+msgstr ""
+
+#: c-family/c-attribs.cc:6247
+#, gcc-internal-format
+msgid "%qE attribute argument %qE is not recognized"
+msgstr ""
+
+#: c-family/c-attribs.cc:6262
+#, gcc-internal-format
+msgid "%qE attribute ignored; valid only for functions and function pointer fields"
+msgstr ""
+
+#: c-family/c-attribs.cc:6273
+#, gcc-internal-format
+msgid "%qE attribute ignored; field must be a function pointer"
+msgstr ""
+
+#: c-family/c-attribs.cc:6297
+#, gcc-internal-format
+msgid "unknown attribute %qE"
+msgstr ""
+
+#: c-family/c-attribs.cc:6324
+#, gcc-internal-format
+msgid "invalid operand type %qT for %qs"
+msgstr ""
+
+#: c-family/c-attribs.cc:6428
+#, gcc-internal-format
+msgid "%qs attribute not supported for %qT in %<__builtin_has_attribute%>"
+msgstr ""
+
+#: c-family/c-attribs.cc:6430
+#, gcc-internal-format
+msgid "%qs attribute not supported for %qE in %<__builtin_has_attribute%>"
+msgstr ""
+
+#: c-family/c-attribs.cc:6607
+#, gcc-internal-format
+msgid "%qs attribute not supported in %<__builtin_has_attribute%>"
+msgstr ""
+
+#: c-family/c-common.cc:787
+#, gcc-internal-format
+msgid "%qD is not defined outside of function scope"
+msgstr ""
+
+#: c-family/c-common.cc:832
+#, gcc-internal-format
+msgid "size of string literal is too large"
+msgstr ""
+
+#: c-family/c-common.cc:855
+#, gcc-internal-format
+msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support"
+msgstr ""
+
+#: c-family/c-common.cc:1030
+#, gcc-internal-format
+msgid "use %<-flax-vector-conversions%> to permit conversions between vectors with differing element types or numbers of subparts"
+msgstr ""
+
+#: c-family/c-common.cc:1071
+#, gcc-internal-format
+msgid "%<__builtin_shuffle%> last argument must be an integer vector"
+msgstr ""
+
+#: c-family/c-common.cc:1080
+#, gcc-internal-format
+msgid "%<__builtin_shuffle%> arguments must be vectors"
+msgstr ""
+
+#: c-family/c-common.cc:1087
+#, gcc-internal-format
+msgid "%<__builtin_shuffle%> argument vectors must be of the same type"
+msgstr ""
+
+#: c-family/c-common.cc:1098
+#, gcc-internal-format
+msgid "%<__builtin_shuffle%> number of elements of the argument vector(s) and the mask vector should be the same"
+msgstr ""
+
+#: c-family/c-common.cc:1108
+#, gcc-internal-format
+msgid "%<__builtin_shuffle%> argument vector(s) inner type must have the same size as inner type of the mask"
+msgstr ""
+
+#: c-family/c-common.cc:1159
+#, gcc-internal-format
+msgid "%<__builtin_shufflevector%> arguments must be vectors"
+msgstr ""
+
+#: c-family/c-common.cc:1170
+#, gcc-internal-format
+msgid "%<__builtin_shufflevector%> arguments must be constant size vectors"
+msgstr ""
+
+#: c-family/c-common.cc:1179
+#, gcc-internal-format
+msgid "%<__builtin_shufflevector%> argument vectors must have the same element type"
+msgstr ""
+
+#: c-family/c-common.cc:1187
+#, gcc-internal-format
+msgid "%<__builtin_shufflevector%> must specify a result with a power of two number of elements"
+msgstr ""
+
+#: c-family/c-common.cc:1212 c-family/c-common.cc:1222
+#, gcc-internal-format
+msgid "invalid element index %qE to %<__builtin_shufflevector%>"
+msgstr ""
+
+#: c-family/c-common.cc:1300
+#, gcc-internal-format
+msgid "%<__builtin_convertvector%> first argument must be an integer or floating vector"
+msgstr ""
+
+#: c-family/c-common.cc:1309
+#, gcc-internal-format
+msgid "%<__builtin_convertvector%> second argument must be an integer or floating vector type"
+msgstr ""
+
+#: c-family/c-common.cc:1318
+#, gcc-internal-format
+msgid "%<__builtin_convertvector%> number of elements of the first argument vector and the second argument vector type should be the same"
+msgstr ""
+
+#: c-family/c-common.cc:1958
+#, gcc-internal-format
+msgid "operation on %qE may be undefined"
+msgstr ""
+
+#: c-family/c-common.cc:2315
+#, gcc-internal-format
+msgid "case label does not reduce to an integer constant"
+msgstr ""
+
+#: c-family/c-common.cc:2411
+#, gcc-internal-format
+msgid "GCC cannot support operators with integer types and fixed-point types that have too many integral and fractional bits together"
+msgstr ""
+
+#: c-family/c-common.cc:2961
+#, gcc-internal-format
+msgid "invalid operands to binary %s (have %qT and %qT)"
+msgstr ""
+
+#: c-family/c-common.cc:3210
+#, gcc-internal-format
+msgid "comparison is always false due to limited range of data type"
+msgstr ""
+
+#: c-family/c-common.cc:3213
+#, gcc-internal-format
+msgid "comparison is always true due to limited range of data type"
+msgstr ""
+
+#: c-family/c-common.cc:3315
+#, gcc-internal-format
+msgid "comparison of unsigned expression in %<>= 0%> is always true"
+msgstr ""
+
+#: c-family/c-common.cc:3323
+#, gcc-internal-format
+msgid "comparison of unsigned expression in %<< 0%> is always false"
+msgstr ""
+
+#: c-family/c-common.cc:3367
+#, gcc-internal-format
+msgid "pointer of type %<void *%> used in arithmetic"
+msgstr ""
+
+#: c-family/c-common.cc:3376
+#, gcc-internal-format
+msgid "pointer to a function used in arithmetic"
+msgstr ""
+
+#: c-family/c-common.cc:3593
+#, gcc-internal-format
+msgid "enum constant in boolean context"
+msgstr ""
+
+#: c-family/c-common.cc:3623 d/d-convert.cc:149
+#, gcc-internal-format
+msgid "the address of %qD will always evaluate as %<true%>"
+msgstr ""
+
+#: c-family/c-common.cc:3668
+#, gcc-internal-format
+msgid "%<*%> in boolean context, suggest %<&&%> instead"
+msgstr ""
+
+#: c-family/c-common.cc:3681
+#, gcc-internal-format
+msgid "%<<<%> in boolean context, did you mean %<<%>?"
+msgstr ""
+
+#: c-family/c-common.cc:3697
+#, gcc-internal-format
+msgid "%<?:%> using integer constants in boolean context, the expression will always evaluate to %<true%>"
+msgstr ""
+
+#: c-family/c-common.cc:3706
+#, gcc-internal-format
+msgid "%<?:%> using integer constants in boolean context"
+msgstr ""
+
+#: c-family/c-common.cc:3742
+#, gcc-internal-format
+msgid "the compiler can assume that the address of %qD will always evaluate to %<true%>"
+msgstr ""
+
+#: c-family/c-common.cc:3778 cp/semantics.cc:949
+#, gcc-internal-format
+msgid "suggest parentheses around assignment used as truth value"
+msgstr ""
+
+#: c-family/c-common.cc:3865 c/c-decl.cc:4966 c/c-decl.cc:7657
+#: c/c-parser.cc:3739 c/c-typeck.cc:16506
+#, gcc-internal-format
+msgid "invalid use of %<restrict%>"
+msgstr ""
+
+#: c-family/c-common.cc:3941
+#, gcc-internal-format
+msgid "invalid application of %<sizeof%> to a function type"
+msgstr ""
+
+#: c-family/c-common.cc:3951
+#, gcc-internal-format
+msgid "ISO C++ does not permit %<alignof%> applied to a function type"
+msgstr ""
+
+#: c-family/c-common.cc:3954
+#, gcc-internal-format
+msgid "ISO C does not permit %<_Alignof%> applied to a function type"
+msgstr ""
+
+#: c-family/c-common.cc:3965 cp/typeck.cc:2060
+#, gcc-internal-format
+msgid "invalid application of %qs to a void type"
+msgstr ""
+
+#: c-family/c-common.cc:3974
+#, gcc-internal-format
+msgid "invalid application of %qs to incomplete type %qT"
+msgstr ""
+
+#: c-family/c-common.cc:3982
+#, gcc-internal-format
+msgid "invalid application of %qs to array type %qT of incomplete element type"
+msgstr ""
+
+#: c-family/c-common.cc:4034
+#, gcc-internal-format
+msgid "%<__alignof%> applied to a bit-field"
+msgstr ""
+
+#: c-family/c-common.cc:4858
+#, gcc-internal-format
+msgid "first argument to %<va_arg%> not of type %<va_list%>"
+msgstr ""
+
+#: c-family/c-common.cc:4978
+#, gcc-internal-format
+msgid "cannot disable built-in function %qs"
+msgstr ""
+
+#: c-family/c-common.cc:5170
+#, gcc-internal-format
+msgid "pointers are not permitted as case values"
+msgstr ""
+
+#: c-family/c-common.cc:5177
+#, gcc-internal-format
+msgid "range expressions in switch statements are non-standard"
+msgstr ""
+
+#: c-family/c-common.cc:5205
+#, gcc-internal-format
+msgid "empty range specified"
+msgstr ""
+
+#: c-family/c-common.cc:5257
+#, gcc-internal-format
+msgid "duplicate (or overlapping) case value"
+msgstr ""
+
+#: c-family/c-common.cc:5259
+#, gcc-internal-format
+msgid "this is the first entry overlapping that value"
+msgstr ""
+
+#: c-family/c-common.cc:5263
+#, gcc-internal-format
+msgid "duplicate case value"
+msgstr ""
+
+#: c-family/c-common.cc:5264 c-family/c-warn.cc:2651
+#, gcc-internal-format
+msgid "previously used here"
+msgstr ""
+
+#: c-family/c-common.cc:5268
+#, gcc-internal-format
+msgid "multiple default labels in one switch"
+msgstr ""
+
+#: c-family/c-common.cc:5270
+#, gcc-internal-format
+msgid "this is the first default label"
+msgstr ""
+
+#: c-family/c-common.cc:5382
+#, gcc-internal-format
+msgid "taking the address of a label is non-standard"
+msgstr ""
+
+#: c-family/c-common.cc:5567
+#, gcc-internal-format
+msgid "requested alignment is not an integer constant"
+msgstr ""
+
+#: c-family/c-common.cc:5575 c-family/c-common.cc:5585
+#, gcc-internal-format
+msgid "requested alignment %qE is not a positive power of 2"
+msgstr ""
+
+#: c-family/c-common.cc:5595
+#, gcc-internal-format
+msgid "requested alignment %qE exceeds object file maximum %u"
+msgstr ""
+
+#: c-family/c-common.cc:5603
+#, gcc-internal-format
+msgid "requested alignment %qE exceeds maximum %u"
+msgstr ""
+
+#: c-family/c-common.cc:5778
+#, gcc-internal-format
+msgid "not enough variable arguments to fit a sentinel"
+msgstr ""
+
+#: c-family/c-common.cc:5793
+#, gcc-internal-format
+msgid "missing sentinel in function call"
+msgstr ""
+
+#: c-family/c-common.cc:6020 c-family/c-common.cc:6070 d/d-attribs.cc:837
+#: d/d-attribs.cc:887
+#, gcc-internal-format
+msgid "bad option %qs to attribute %<optimize%>"
+msgstr ""
+
+#: c-family/c-common.cc:6023 c-family/c-common.cc:6074
+#, gcc-internal-format
+msgid "bad option %qs to pragma %<optimize%>"
+msgstr ""
+
+#: c-family/c-common.cc:6122
+#, gcc-internal-format
+msgid "attribute %<fallthrough%> specified multiple times"
+msgstr ""
+
+#: c-family/c-common.cc:6126
+#, gcc-internal-format
+msgid "%<fallthrough%> attribute specified with a parameter"
+msgstr ""
+
+#: c-family/c-common.cc:6307 c-family/c-common.cc:7234
+#: c-family/c-common.cc:7281 c-family/c-common.cc:7360
+#: c-family/c-common.cc:7443 c-family/c-common.cc:8086
+#: config/aarch64/aarch64-sve-builtins.cc:3026
+#: config/arm/arm-mve-builtins.cc:1570 c/c-typeck.cc:3920
+#, gcc-internal-format
+msgid "too few arguments to function %qE"
+msgstr ""
+
+#: c-family/c-common.cc:6312 c-family/c-common.cc:7287
+#: c-family/c-common.cc:7469 c-family/c-common.cc:8088
+#: config/aarch64/aarch64-sve-builtins.cc:3028
+#: config/arm/arm-mve-builtins.cc:1572 c/c-typeck.cc:3779
+#, gcc-internal-format
+msgid "too many arguments to function %qE"
+msgstr ""
+
+#: c-family/c-common.cc:6354
+#, gcc-internal-format
+msgid "third argument to function %qE must be a constant integer"
+msgstr ""
+
+#: c-family/c-common.cc:6379
+#, gcc-internal-format
+msgid "second argument to function %qE must be a constant integer power of 2 between %qi and %qu bits"
+msgstr ""
+
+#: c-family/c-common.cc:6401 c-family/c-common.cc:6448
+#, gcc-internal-format
+msgid "non-floating-point argument in call to function %qE"
+msgstr ""
+
+#: c-family/c-common.cc:6427
+#, gcc-internal-format
+msgid "non-floating-point arguments in call to function %qE"
+msgstr ""
+
+#: c-family/c-common.cc:6441
+#, gcc-internal-format
+msgid "non-const integer argument %u in call to function %qE"
+msgstr ""
+
+#: c-family/c-common.cc:6463
+#, gcc-internal-format
+msgid "non-integer argument 3 in call to function %qE"
+msgstr ""
+
+#: c-family/c-common.cc:6480 c-family/c-common.cc:6530
+#: c-family/c-common.cc:6595 c-family/c-common.cc:6615
+#, gcc-internal-format
+msgid "argument %u in call to function %qE does not have integral type"
+msgstr ""
+
+#: c-family/c-common.cc:6487
+#, gcc-internal-format
+msgid "argument 3 in call to function %qE does not have pointer to integral type"
+msgstr ""
+
+#: c-family/c-common.cc:6493
+#, gcc-internal-format
+msgid "argument 3 in call to function %qE has pointer to enumerated type"
+msgstr ""
+
+#: c-family/c-common.cc:6499
+#, gcc-internal-format
+msgid "argument 3 in call to function %qE has pointer to boolean type"
+msgstr ""
+
+#: c-family/c-common.cc:6505 c-family/c-common.cc:6512
+#: c-family/c-common.cc:6567 c-family/c-common.cc:6574
+#, gcc-internal-format
+msgid "argument %u in call to function %qE has pointer to %qs type (%qT)"
+msgstr ""
+
+#: c-family/c-common.cc:6536 c-family/c-common.cc:6621
+#, gcc-internal-format
+msgid "argument %u in call to function %qE has enumerated type"
+msgstr ""
+
+#: c-family/c-common.cc:6542 c-family/c-common.cc:6627
+#, gcc-internal-format
+msgid "argument %u in call to function %qE has boolean type"
+msgstr ""
+
+#: c-family/c-common.cc:6555
+#, gcc-internal-format
+msgid "argument %u in call to function %qE does not have pointer type"
+msgstr ""
+
+#: c-family/c-common.cc:6561
+#, gcc-internal-format
+msgid "argument %u in call to function %qE points to incomplete type"
+msgstr ""
+
+#: c-family/c-common.cc:6605
+#, gcc-internal-format
+msgid "argument %u in call to function %qE does not have %<int%> type"
+msgstr ""
+
+#: c-family/c-common.cc:6636
+#, gcc-internal-format
+msgid "argument 1 in call to function %qE has unsigned type"
+msgstr ""
+
+#: c-family/c-common.cc:6643
+#, gcc-internal-format
+msgid "argument 1 in call to function %qE has signed type"
+msgstr ""
+
+#: c-family/c-common.cc:6906 rust/backend/rust-tree.cc:3601
+#, gcc-internal-format
+msgid "cannot apply %<offsetof%> to static data member %qD"
+msgstr ""
+
+#: c-family/c-common.cc:6911 rust/backend/rust-tree.cc:3606
+#, gcc-internal-format
+msgid "cannot apply %<offsetof%> when %<operator[]%> is overloaded"
+msgstr ""
+
+#: c-family/c-common.cc:6918 rust/backend/rust-tree.cc:3613
+#, gcc-internal-format
+msgid "cannot apply %<offsetof%> to a non constant address"
+msgstr ""
+
+#: c-family/c-common.cc:6931 rust/backend/rust-tree.cc:3626
+#, gcc-internal-format
+msgid "attempt to take address of bit-field structure member %qD"
+msgstr ""
+
+#: c-family/c-common.cc:6984 rust/backend/rust-tree.cc:3678
+#, gcc-internal-format
+msgid "index %E denotes an offset greater than size of %qT"
+msgstr ""
+
+#: c-family/c-common.cc:7150
+#, gcc-internal-format
+msgid "size of array is too large"
+msgstr ""
+
+#: c-family/c-common.cc:7264 c-family/c-common.cc:7402
+#, gcc-internal-format
+msgid "operand type %qT is incompatible with argument %d of %qE"
+msgstr ""
+
+#: c-family/c-common.cc:7298
+#, gcc-internal-format
+msgid "expecting argument of type pointer or of type integer for argument 1"
+msgstr ""
+
+#: c-family/c-common.cc:7314
+#, gcc-internal-format
+msgid "both arguments must be compatible"
+msgstr ""
+
+#: c-family/c-common.cc:7544
+#, gcc-internal-format
+msgid "incorrect number of arguments to function %qE"
+msgstr ""
+
+#: c-family/c-common.cc:7558
+#, gcc-internal-format
+msgid "argument 1 of %qE must be a non-void pointer type"
+msgstr ""
+
+#: c-family/c-common.cc:7565
+#, gcc-internal-format
+msgid "argument 1 of %qE must be a pointer to a complete type"
+msgstr ""
+
+#: c-family/c-common.cc:7574
+#, gcc-internal-format
+msgid "argument 1 of %qE must be a pointer to a constant size type"
+msgstr ""
+
+#: c-family/c-common.cc:7585
+#, gcc-internal-format
+msgid "argument 1 of %qE must be a pointer to a nonzero size object"
+msgstr ""
+
+#: c-family/c-common.cc:7606
+#, gcc-internal-format
+msgid "argument %d of %qE must be a pointer type"
+msgstr ""
+
+#: c-family/c-common.cc:7614
+#, gcc-internal-format
+msgid "argument %d of %qE must be a pointer to a constant size type"
+msgstr ""
+
+#: c-family/c-common.cc:7620
+#, gcc-internal-format
+msgid "argument %d of %qE must not be a pointer to a function"
+msgstr ""
+
+#: c-family/c-common.cc:7628
+#, gcc-internal-format
+msgid "size mismatch in argument %d of %qE"
+msgstr ""
+
+#: c-family/c-common.cc:7641
+#, gcc-internal-format
+msgid "argument %d of %qE must not be a pointer to a %<const%> type"
+msgstr ""
+
+#: c-family/c-common.cc:7646
+#, gcc-internal-format
+msgid "argument %d of %qE discards %<const%> qualifier"
+msgstr ""
+
+#: c-family/c-common.cc:7655
+#, gcc-internal-format
+msgid "argument %d of %qE must not be a pointer to a %<volatile%> type"
+msgstr ""
+
+#: c-family/c-common.cc:7660
+#, gcc-internal-format
+msgid "argument %d of %qE discards %<volatile%> qualifier"
+msgstr ""
+
+#: c-family/c-common.cc:7673
+#, gcc-internal-format
+msgid "non-integer memory model argument %d of %qE"
+msgstr ""
+
+#: c-family/c-common.cc:7686
+#, gcc-internal-format
+msgid "invalid memory model argument %d of %qE"
+msgstr ""
+
+#: c-family/c-common.cc:8320
+#, gcc-internal-format
+msgid "this target does not define a speculation barrier; your program will still execute correctly, but incorrect speculation may not be restricted"
+msgstr ""
+
+#: c-family/c-common.cc:8975
+#, gcc-internal-format
+msgid "index value is out of bound"
+msgstr ""
+
+#: c-family/c-common.cc:9021 c-family/c-common.cc:9070
+#: c-family/c-common.cc:9086
+#, gcc-internal-format
+msgid "conversion of scalar %qT to vector %qT involves truncation"
+msgstr ""
+
+#. Reject arguments that are built-in functions with
+#. no library fallback.
+#: c-family/c-common.cc:9174 d/intrinsics.cc:1459
+#: rust/backend/rust-tree.cc:3497
+#, gcc-internal-format
+msgid "built-in function %qE must be directly called"
+msgstr ""
+
+#: c-family/c-common.cc:9194
+#, gcc-internal-format
+msgid "size of array %qE is not a constant expression"
+msgstr ""
+
+#: c-family/c-common.cc:9197
+#, gcc-internal-format
+msgid "size of array is not a constant expression"
+msgstr ""
+
+#: c-family/c-common.cc:9201
+#, gcc-internal-format
+msgid "size %qE of array %qE is negative"
+msgstr ""
+
+#: c-family/c-common.cc:9204
+#, gcc-internal-format
+msgid "size %qE of array is negative"
+msgstr ""
+
+#: c-family/c-common.cc:9209
+#, gcc-internal-format
+msgid "size %qE of array %qE exceeds maximum object size %qE"
+msgstr ""
+
+#: c-family/c-common.cc:9212
+#, gcc-internal-format
+msgid "size %qE of array exceeds maximum object size %qE"
+msgstr ""
+
+#: c-family/c-common.cc:9217
+#, gcc-internal-format
+msgid "size of array %qE exceeds maximum object size %qE"
+msgstr ""
+
+#: c-family/c-common.cc:9220
+#, gcc-internal-format
+msgid "size of array exceeds maximum object size %qE"
+msgstr ""
+
+#: c-family/c-common.cc:9291
+#, gcc-internal-format
+msgid "environment variable %qs must expand to a non-negative integer less than or equal to %wd"
+msgstr ""
+
+#: c-family/c-format.cc:197
+#, gcc-internal-format
+msgid "function does not return string type"
+msgstr ""
+
+#: c-family/c-format.cc:231
+#, gcc-internal-format
+msgid "format string argument is not a string type"
+msgstr ""
+
+#: c-family/c-format.cc:257
+#, gcc-internal-format
+msgid "found a %qs reference but the format argument should be a string"
+msgstr ""
+
+#: c-family/c-format.cc:260
+#, gcc-internal-format
+msgid "found a %qT but the format argument should be a string"
+msgstr ""
+
+#: c-family/c-format.cc:270
+#, gcc-internal-format
+msgid "format argument should be a %qs reference but a string was found"
+msgstr ""
+
+#: c-family/c-format.cc:292
+#, gcc-internal-format
+msgid "format argument should be a %qs reference"
+msgstr ""
+
+#: c-family/c-format.cc:346
+#, gcc-internal-format
+msgid "unrecognized format specifier"
+msgstr ""
+
+#: c-family/c-format.cc:359
+#, gcc-internal-format
+msgid "%qE is only allowed in Objective-C dialects"
+msgstr ""
+
+#: c-family/c-format.cc:368
+#, gcc-internal-format
+msgid "%qE is an unrecognized format function type"
+msgstr ""
+
+#: c-family/c-format.cc:386
+#, gcc-internal-format
+msgid "format string argument follows the arguments to be formatted"
+msgstr ""
+
+#: c-family/c-format.cc:1274
+#, gcc-internal-format
+msgid "function %qD might be a candidate for %qs format attribute"
+msgstr ""
+
+#: c-family/c-format.cc:1365 c-family/c-format.cc:1386
+#: c-family/c-format.cc:2821
+#, gcc-internal-format
+msgid "missing $ operand number in format"
+msgstr ""
+
+#: c-family/c-format.cc:1395
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support %%n$ operand number formats"
+msgstr ""
+
+#: c-family/c-format.cc:1402
+#, gcc-internal-format
+msgid "operand number out of range in format"
+msgstr ""
+
+#: c-family/c-format.cc:1425
+#, gcc-internal-format, gfc-internal-format
+msgid "format argument %d used more than once in %s format"
+msgstr ""
+
+#: c-family/c-format.cc:1458
+#, gcc-internal-format
+msgid "%<$%>operand number used after format without operand number"
+msgstr ""
+
+#: c-family/c-format.cc:1489
+#, gcc-internal-format
+msgid "format argument %d unused before used argument %d in %<$%>-style format"
+msgstr ""
+
+#: c-family/c-format.cc:1592
+#, gcc-internal-format
+msgid "format not a string literal, format string not checked"
+msgstr ""
+
+#: c-family/c-format.cc:1607 c-family/c-format.cc:1610
+#, gcc-internal-format
+msgid "format not a string literal and no format arguments"
+msgstr ""
+
+#: c-family/c-format.cc:1613
+#, gcc-internal-format
+msgid "format not a string literal, argument types not checked"
+msgstr ""
+
+#: c-family/c-format.cc:1630
+#, gcc-internal-format
+msgid "too many arguments for format"
+msgstr ""
+
+#: c-family/c-format.cc:1635
+#, gcc-internal-format
+msgid "unused arguments in %<$%>-style format"
+msgstr ""
+
+#: c-family/c-format.cc:1638
+#, gcc-internal-format, gfc-internal-format
+msgid "zero-length %s format string"
+msgstr ""
+
+#: c-family/c-format.cc:1642
+#, gcc-internal-format
+msgid "format is a wide character string"
+msgstr ""
+
+#: c-family/c-format.cc:1646
+#, gcc-internal-format
+msgid "format string is not an array of type %qs"
+msgstr ""
+
+#: c-family/c-format.cc:1649
+#, gcc-internal-format
+msgid "unterminated format string"
+msgstr ""
+
+#: c-family/c-format.cc:2064
+#, gcc-internal-format
+msgid "%s used with %<%%%c%> %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2074
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not support %s"
+msgstr "%s -ს %s-ის მხარდაჭერა არ გააჩნია"
+
+#: c-family/c-format.cc:2084
+#, gcc-internal-format
+msgid "%s does not support %s with the %<%%%c%> %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2098
+#, gcc-internal-format, gfc-internal-format
+msgid "%s used within a quoted sequence"
+msgstr ""
+
+#: c-family/c-format.cc:2111
+#, gcc-internal-format
+msgid "%qc conversion used unquoted"
+msgstr ""
+
+#: c-family/c-format.cc:2229 c-family/c-format.cc:2560
+#, gcc-internal-format, gfc-internal-format
+msgid "repeated %s in format"
+msgstr ""
+
+#: c-family/c-format.cc:2240
+#, gcc-internal-format
+msgid "missing fill character at end of strfmon format"
+msgstr ""
+
+#: c-family/c-format.cc:2342
+#, gcc-internal-format, gfc-internal-format
+msgid "zero width in %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2365
+#, gcc-internal-format, gfc-internal-format
+msgid "empty left precision in %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2456
+#, gcc-internal-format, gfc-internal-format
+msgid "empty precision in %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2534
+#, gcc-internal-format
+msgid "%s does not support the %qs %s length modifier"
+msgstr ""
+
+#: c-family/c-format.cc:2590
+#, gcc-internal-format
+msgid "unknown conversion type character %qc in format"
+msgstr ""
+
+#: c-family/c-format.cc:2602
+#, gcc-internal-format
+msgid "%s does not support the %<%%%c%> %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2634
+#, gcc-internal-format
+msgid "%s ignored with %s and %<%%%c%> %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2639
+#, gcc-internal-format, gfc-internal-format
+msgid "%s ignored with %s in %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2646
+#, gcc-internal-format
+msgid "use of %s and %s together with %<%%%c%> %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2651
+#, gcc-internal-format, gfc-internal-format
+msgid "use of %s and %s together in %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2678
+#, gcc-internal-format
+msgid "%<%%%c%> yields only last 2 digits of year in some locales"
+msgstr ""
+
+#: c-family/c-format.cc:2682
+#, gcc-internal-format
+msgid "%<%%%c%> yields only last 2 digits of year"
+msgstr ""
+
+#: c-family/c-format.cc:2709
+#, gcc-internal-format
+msgid "no closing %<]%> for %<%%[%> format"
+msgstr ""
+
+#: c-family/c-format.cc:2738
+#, gcc-internal-format
+msgid "use of %qs length modifier with %qc type character has either no effect or undefined behavior"
+msgstr ""
+
+#: c-family/c-format.cc:2760
+#, gcc-internal-format
+msgid "%s does not support the %<%%%s%c%> %s format"
+msgstr ""
+
+#: c-family/c-format.cc:2798
+#, gcc-internal-format
+msgid "operand number specified with suppressed assignment"
+msgstr ""
+
+#: c-family/c-format.cc:2802
+#, gcc-internal-format
+msgid "operand number specified for format taking no argument"
+msgstr ""
+
+#: c-family/c-format.cc:3152
+#, gcc-internal-format
+msgid "unquoted type name %<%.*s%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3154
+#, gcc-internal-format
+msgid "unquoted operator %<%.*s%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3155
+#, gcc-internal-format
+msgid "unquoted keyword %<%.*s%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3158
+#, gcc-internal-format
+msgid "use %qs instead"
+msgstr ""
+
+#: c-family/c-format.cc:3210
+#, gcc-internal-format
+msgid "unquoted attribute in format"
+msgstr ""
+
+#: c-family/c-format.cc:3223
+#, gcc-internal-format
+msgid "unquoted name of built-in function %<%.*s%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3237
+#, gcc-internal-format
+msgid "unquoted identifier or keyword %<%.*s%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3271
+#, gcc-internal-format
+msgid "misspelled term %<%.*s%> in format; use %<%s%s%> instead"
+msgstr ""
+
+#: c-family/c-format.cc:3315
+#, gcc-internal-format
+msgid "quoted %qs directive in format; use %qs instead"
+msgstr ""
+
+#: c-family/c-format.cc:3322 c-family/c-format.cc:3593
+#, gcc-internal-format
+msgid "contraction %<%.*s%> in format; use %qs instead"
+msgstr ""
+
+#: c-family/c-format.cc:3362
+#, gcc-internal-format
+msgid "unquoted whitespace character %qc in format"
+msgstr ""
+
+#: c-family/c-format.cc:3375
+#, gcc-internal-format
+msgid "spurious trailing space in format"
+msgstr ""
+
+#: c-family/c-format.cc:3396
+#, gcc-internal-format
+msgid "inconsistent capitalization in format"
+msgstr ""
+
+#: c-family/c-format.cc:3403
+#, gcc-internal-format, gfc-internal-format
+msgid "unquoted sequence of %i consecutive space characters in format"
+msgstr ""
+
+#: c-family/c-format.cc:3423
+#, gcc-internal-format
+msgid "unquoted control characters in format"
+msgstr ""
+
+#: c-family/c-format.cc:3430
+#, gcc-internal-format
+msgid "unquoted control character %qc in format"
+msgstr ""
+
+#: c-family/c-format.cc:3488
+#, gcc-internal-format
+msgid "unquoted option name %<%.*s%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3548
+#, gcc-internal-format
+msgid "unbalanced punctuation character %qc in format"
+msgstr ""
+
+#: c-family/c-format.cc:3567
+#, gcc-internal-format
+msgid "unquoted preprocessing directive %<%.*s%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3603
+#, gcc-internal-format
+msgid "bare apostrophe %<'%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3605
+#, gcc-internal-format
+msgid "if avoiding the apostrophe is not feasible, enclose it in a pair of %qs and %qs directives instead"
+msgstr ""
+
+#: c-family/c-format.cc:3617
+#, gcc-internal-format
+msgid "grave accent %<`%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3619
+#, gcc-internal-format
+msgid "use the apostrophe directive %qs instead"
+msgstr ""
+
+#: c-family/c-format.cc:3631
+#, gcc-internal-format
+msgid "space followed by punctuation character %<%c%>"
+msgstr ""
+
+#: c-family/c-format.cc:3642
+#, gcc-internal-format
+msgid "quoted %qs directive in format"
+msgstr ""
+
+#: c-family/c-format.cc:3644
+#, gcc-internal-format
+msgid "if using %qs is not feasible, use %qs instead"
+msgstr ""
+
+#: c-family/c-format.cc:3673
+#, gcc-internal-format
+msgid "spurious leading punctuation sequence %<%.*s%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3713
+#, gcc-internal-format
+msgid "spurious trailing punctuation sequence %<%.*s%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3730
+#, gcc-internal-format
+msgid "unquoted sequence of %i consecutive punctuation characters %q.*s in format"
+msgstr ""
+
+#: c-family/c-format.cc:3750
+#, gcc-internal-format
+msgid "unquoted non-graph characters in format"
+msgstr ""
+
+#: c-family/c-format.cc:3757
+#, gcc-internal-format
+msgid "unquoted non-graph character %qc in format"
+msgstr ""
+
+#: c-family/c-format.cc:3789
+#, gcc-internal-format
+msgid "unbalanced punctuation character %<%c%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3796
+#, gcc-internal-format
+msgid "unterminated quoting directive"
+msgstr ""
+
+#: c-family/c-format.cc:3805
+#, gcc-internal-format
+msgid "unterminated quote character %<%c%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3875
+#, gcc-internal-format
+msgid "spurious trailing %<%%%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:3935
+#, gcc-internal-format
+msgid "conversion lacks type at end of format"
+msgstr ""
+
+#: c-family/c-format.cc:3964
+#, gcc-internal-format
+msgid "nested quoting directive"
+msgstr ""
+
+#: c-family/c-format.cc:3975
+#, gcc-internal-format
+msgid "unmatched quoting directive"
+msgstr ""
+
+#: c-family/c-format.cc:3990
+#, gcc-internal-format
+msgid "%qc directive redundant after prior occurence of the same"
+msgstr ""
+
+#: c-family/c-format.cc:3996
+#, gcc-internal-format
+msgid "unmatched color reset directive"
+msgstr ""
+
+#: c-family/c-format.cc:4008
+#, gcc-internal-format
+msgid "%qc conversion used within a quoted sequence"
+msgstr ""
+
+#: c-family/c-format.cc:4048
+#, gcc-internal-format
+msgid "embedded %<\\0%> in format"
+msgstr ""
+
+#: c-family/c-format.cc:4064
+#, gcc-internal-format
+msgid "unterminated color directive"
+msgstr ""
+
+#: c-family/c-format.cc:4186
+#, gcc-internal-format, gfc-internal-format
+msgid "writing through null pointer (argument %d)"
+msgstr ""
+
+#: c-family/c-format.cc:4197
+#, gcc-internal-format, gfc-internal-format
+msgid "reading through null pointer (argument %d)"
+msgstr ""
+
+#: c-family/c-format.cc:4217
+#, gcc-internal-format, gfc-internal-format
+msgid "writing into constant object (argument %d)"
+msgstr ""
+
+#: c-family/c-format.cc:4229
+#, gcc-internal-format, gfc-internal-format
+msgid "extra type qualifiers in format argument (argument %d)"
+msgstr ""
+
+#: c-family/c-format.cc:4771
+#, gcc-internal-format
+msgid "%s %<%s%.*s%> expects argument of type %<%s%s%>, but argument %d has type %qT"
+msgstr ""
+
+#: c-family/c-format.cc:4780
+#, gcc-internal-format
+msgid "%s %<%s%.*s%> expects a matching %<%s%s%> argument"
+msgstr ""
+
+#: c-family/c-format.cc:4790
+#, gcc-internal-format
+msgid "%s %<%s%.*s%> expects argument of type %<%T%s%>, but argument %d has type %qT"
+msgstr ""
+
+#: c-family/c-format.cc:4799
+#, gcc-internal-format
+msgid "%s %<%s%.*s%> expects a matching %<%T%s%> argument"
+msgstr ""
+
+#: c-family/c-format.cc:4861 c-family/c-format.cc:4867
+#: c-family/c-format.cc:4921
+#, gcc-internal-format
+msgid "%<__gcc_host_wide_int__%> is not defined as a type"
+msgstr ""
+
+#: c-family/c-format.cc:4874 c-family/c-format.cc:4931
+#, gcc-internal-format
+msgid "%<__gcc_host_wide_int__%> is not defined as %<long%> or %<long long%>"
+msgstr ""
+
+#: c-family/c-format.cc:4983
+#, gcc-internal-format
+msgid "%<locus%> is not defined as a type"
+msgstr ""
+
+#: c-family/c-format.cc:5027
+#, gcc-internal-format
+msgid "%qs is not defined as a type"
+msgstr ""
+
+#: c-family/c-format.cc:5053
+#, gcc-internal-format
+msgid "%<location_t%> is not defined as a type"
+msgstr ""
+
+#: c-family/c-format.cc:5070
+#, gcc-internal-format
+msgid "%<tree%> is not defined as a type"
+msgstr ""
+
+#: c-family/c-format.cc:5076
+#, gcc-internal-format
+msgid "%<tree%> is not defined as a pointer type"
+msgstr ""
+
+#: c-family/c-format.cc:5259
+#, gcc-internal-format
+msgid "argument to be formatted is not %<...%>"
+msgstr ""
+
+#: c-family/c-format.cc:5271
+#, gcc-internal-format
+msgid "strftime formats cannot format arguments"
+msgstr ""
+
+#: c-family/c-indentation.cc:321
+#, gcc-internal-format
+msgid "%<-Wmisleading-indentation%> is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers"
+msgstr ""
+
+#: c-family/c-indentation.cc:326
+#, gcc-internal-format
+msgid "adding %<-flarge-source-files%> will allow for more column-tracking support, at the expense of compilation time and memory"
+msgstr ""
+
+#: c-family/c-indentation.cc:661
+#, gcc-internal-format
+msgid "this %qs clause does not guard..."
+msgstr ""
+
+#: c-family/c-indentation.cc:664
+#, gcc-internal-format
+msgid "...this statement, but the latter is misleadingly indented as if it were guarded by the %qs"
+msgstr ""
+
+#: c-family/c-lex.cc:228
+#, gcc-internal-format
+msgid "badly nested C headers from preprocessor"
+msgstr ""
+
+#: c-family/c-lex.cc:267
+#, gcc-internal-format
+msgid "ignoring %<#pragma %s %s%>"
+msgstr ""
+
+#. ... or not.
+#: c-family/c-lex.cc:683 c-family/c-lex.cc:1622
+#, gcc-internal-format
+msgid "stray %<@%> in program"
+msgstr ""
+
+#: c-family/c-lex.cc:698
+#, gcc-internal-format
+msgid "stray %qs in program"
+msgstr ""
+
+#: c-family/c-lex.cc:708
+#, gcc-internal-format, gfc-internal-format
+msgid "missing terminating %c character"
+msgstr "დამაბოლოებელი %c სიმბოლო აღმოჩენილი არაა"
+
+#: c-family/c-lex.cc:710
+#, gcc-internal-format
+msgid "stray %qc in program"
+msgstr ""
+
+#: c-family/c-lex.cc:715
+#, gcc-internal-format
+msgid "stray %<\\%o%> in program"
+msgstr ""
+
+#: c-family/c-lex.cc:1034
+#, gcc-internal-format
+msgid "integer constant is too large for %<unsigned _BitInt(%d)%> type"
+msgstr ""
+
+#: c-family/c-lex.cc:1037
+#, gcc-internal-format
+msgid "integer constant is too large for %<_BitInt(%d)%> type"
+msgstr ""
+
+#: c-family/c-lex.cc:1045 c/c-decl.cc:12737
+#, gcc-internal-format
+msgid "%<_BitInt(%d)%> is not supported on this target"
+msgstr ""
+
+#: c-family/c-lex.cc:1097
+#, gcc-internal-format
+msgid "this decimal constant is unsigned only in ISO C90"
+msgstr ""
+
+#: c-family/c-lex.cc:1101
+#, gcc-internal-format
+msgid "this decimal constant would be unsigned in ISO C90"
+msgstr ""
+
+#: c-family/c-lex.cc:1129
+#, gcc-internal-format
+msgid "integer constant is too large for %<unsigned long%> type"
+msgstr ""
+
+#: c-family/c-lex.cc:1169
+#, gcc-internal-format
+msgid "unsuffixed floating constant"
+msgstr ""
+
+#: c-family/c-lex.cc:1183
+#, gcc-internal-format
+msgid "decimal floating-point not supported for this target"
+msgstr ""
+
+#: c-family/c-lex.cc:1206 c-family/c-lex.cc:1234 c-family/c-lex.cc:1272
+#, gcc-internal-format
+msgid "unsupported non-standard suffix on floating constant"
+msgstr ""
+
+#: c-family/c-lex.cc:1211 c-family/c-lex.cc:1265 c-family/c-lex.cc:1277
+#, gcc-internal-format
+msgid "non-standard suffix on floating constant"
+msgstr ""
+
+#: c-family/c-lex.cc:1243 c-family/c-lex.cc:1247 c-family/c-lex.cc:1252
+#, gcc-internal-format
+msgid "non-standard suffix on floating constant before C23"
+msgstr ""
+
+#: c-family/c-lex.cc:1259
+#, gcc-internal-format
+msgid "%<f%d%> or %<F%d%> suffix on floating constant only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: c-family/c-lex.cc:1280
+#, gcc-internal-format
+msgid "%<bf16%> or %<BF16%> suffix on floating constant only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: c-family/c-lex.cc:1360 c-family/c-lex.cc:1363
+#, gcc-internal-format
+msgid "floating constant exceeds range of %qT"
+msgstr ""
+
+#: c-family/c-lex.cc:1378
+#, gcc-internal-format
+msgid "floating constant truncated to zero"
+msgstr ""
+
+#: c-family/c-lex.cc:1579
+#, gcc-internal-format
+msgid "repeated %<@%> before Objective-C string"
+msgstr ""
+
+#: c-family/c-lex.cc:1598 c/c-parser.cc:8926
+#, gcc-internal-format
+msgid "unsupported non-standard concatenation of string literals"
+msgstr ""
+
+#: c-family/c-lex.cc:1634 c/c-parser.cc:8947
+#, gcc-internal-format
+msgid "traditional C rejects string constant concatenation"
+msgstr ""
+
+#: c-family/c-omp.cc:131 cp/pt.cc:19196
+#, gcc-internal-format
+msgid "%<#pragma omp critical%> with %<hint%> clause requires a name, except when %<omp_sync_hint_none%> is used"
+msgstr ""
+
+#: c-family/c-omp.cc:241
+#, gcc-internal-format
+msgid "invalid expression type for %<#pragma omp atomic%>"
+msgstr ""
+
+#: c-family/c-omp.cc:246
+#, gcc-internal-format
+msgid "%<_Atomic%> expression in %<#pragma omp atomic%>"
+msgstr ""
+
+#: c-family/c-omp.cc:251
+#, gcc-internal-format
+msgid "%<#pragma omp atomic compare capture%> with non-integral comparison result"
+msgstr ""
+
+#: c-family/c-omp.cc:540
+#, gcc-internal-format
+msgid "%<#pragma omp atomic update%> uses two different variables for memory"
+msgstr ""
+
+#: c-family/c-omp.cc:543 c-family/c-omp.cc:581
+#, gcc-internal-format
+msgid "%<#pragma omp atomic capture%> uses two different variables for memory"
+msgstr ""
+
+#: c-family/c-omp.cc:699
+#, gcc-internal-format
+msgid "type of %<depobj%> expression is not %<omp_depend_t%>"
+msgstr ""
+
+#: c-family/c-omp.cc:705
+#, gcc-internal-format
+msgid "%<const%> qualified %<depobj%> expression"
+msgstr ""
+
+#: c-family/c-omp.cc:730
+#, gcc-internal-format
+msgid "more than one locator in %<depend%> clause on %<depobj%> construct"
+msgstr ""
+
+#: c-family/c-omp.cc:736
+#, gcc-internal-format
+msgid "%<depobj%> dependence type specified in %<depend%> clause on %<depobj%> construct"
+msgstr ""
+
+#: c-family/c-omp.cc:752
+#, gcc-internal-format
+msgid "%<iterator%> modifier may not be specified on %<depobj%> construct"
+msgstr ""
+
+#: c-family/c-omp.cc:969 cp/semantics.cc:10923
+#, gcc-internal-format
+msgid "invalid type for iteration variable %qE"
+msgstr ""
+
+#: c-family/c-omp.cc:974
+#, gcc-internal-format
+msgid "%<_Atomic%> iteration variable %qE"
+msgstr ""
+
+#: c-family/c-omp.cc:990
+#, gcc-internal-format
+msgid "%qE is not initialized"
+msgstr ""
+
+#: c-family/c-omp.cc:1011 cp/semantics.cc:10815
+#, gcc-internal-format
+msgid "missing controlling predicate"
+msgstr ""
+
+#: c-family/c-omp.cc:1117 cp/semantics.cc:10411
+#, gcc-internal-format
+msgid "invalid controlling predicate"
+msgstr ""
+
+#: c-family/c-omp.cc:1124 cp/semantics.cc:10821
+#, gcc-internal-format
+msgid "missing increment expression"
+msgstr ""
+
+#: c-family/c-omp.cc:1224 c-family/c-omp.cc:1242
+#, gcc-internal-format
+msgid "increment is not constant 1 or -1 for %<!=%> condition"
+msgstr ""
+
+#: c-family/c-omp.cc:1255 cp/semantics.cc:10528
+#, gcc-internal-format
+msgid "invalid increment expression"
+msgstr ""
+
+#: c-family/c-omp.cc:1353
+#, gcc-internal-format
+msgid "initializer expression refers to iteration variable %qD"
+msgstr ""
+
+#: c-family/c-omp.cc:1357
+#, gcc-internal-format
+msgid "condition expression refers to iteration variable %qD"
+msgstr ""
+
+#: c-family/c-omp.cc:1361
+#, gcc-internal-format
+msgid "increment expression refers to iteration variable %qD"
+msgstr ""
+
+#: c-family/c-omp.cc:1539
+#, gcc-internal-format
+msgid "outer iteration variable %qD used in initializer expression has type other than %qT"
+msgstr ""
+
+#: c-family/c-omp.cc:1543
+#, gcc-internal-format
+msgid "outer iteration variable %qD used in condition expression has type other than %qT"
+msgstr ""
+
+#: c-family/c-omp.cc:1550
+#, gcc-internal-format
+msgid "outer iteration variable %qD multiplier expression %qE is not integral"
+msgstr ""
+
+#: c-family/c-omp.cc:1556
+#, gcc-internal-format
+msgid "outer iteration variable %qD addend expression %qE is not integral"
+msgstr ""
+
+#: c-family/c-omp.cc:1621 c-family/c-omp.cc:1706
+#, gcc-internal-format
+msgid "the same loop iteration variables %qD used in multiple associated loops"
+msgstr ""
+
+#: c-family/c-omp.cc:1656
+#, gcc-internal-format
+msgid "two different outer iteration variables %qD and %qD used in a single loop"
+msgstr ""
+
+#: c-family/c-omp.cc:1820
+#, gcc-internal-format
+msgid "variable %qD used as loop variable is bound in intervening code"
+msgstr ""
+
+#: c-family/c-omp.cc:1824
+#, gcc-internal-format
+msgid "variable %qD used in initializer is bound in intervening code"
+msgstr ""
+
+#: c-family/c-omp.cc:1828
+#, gcc-internal-format
+msgid "variable %qD used in end test is bound in intervening code"
+msgstr ""
+
+#: c-family/c-omp.cc:1832
+#, gcc-internal-format
+msgid "variable %qD used in increment expression is bound in intervening code"
+msgstr ""
+
+#: c-family/c-omp.cc:2436
+#, gcc-internal-format
+msgid "invalid %<task%> reduction modifier on construct combined with %<simd%> or %<loop%>"
+msgstr ""
+
+#: c-family/c-omp.cc:2447
+#, gcc-internal-format
+msgid "invalid %<task%> reduction modifier on construct not combined with %<parallel%>, %<for%> or %<sections%>"
+msgstr ""
+
+#: c-family/c-omp.cc:2460
+#, gcc-internal-format
+msgid "%<inscan%> %<reduction%> clause on construct other than %<for%>, %<simd%>, %<for simd%>, %<parallel for%>, %<parallel for simd%>"
+msgstr ""
+
+#: c-family/c-omp.cc:2947 c/c-typeck.cc:16318 cp/semantics.cc:9515
+#, gcc-internal-format
+msgid "%qD specified in %<allocate%> clause but not in an explicit privatization clause"
+msgstr ""
+
+#: c-family/c-omp.cc:3039 c-family/c-omp.cc:3054
+#, gcc-internal-format
+msgid "%qD is not a function argument"
+msgstr ""
+
+#: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
+#, gcc-internal-format
+msgid "bit-field %qE in %qs clause"
+msgstr ""
+
+#: c-family/c-omp.cc:3343
+#, gcc-internal-format
+msgid "%qE does not have a mappable type in %qs clause"
+msgstr ""
+
+#: c-family/c-omp.cc:3351 c/c-typeck.cc:13876 c/c-typeck.cc:15555
+#: c/c-typeck.cc:15743
+#, gcc-internal-format
+msgid "%<_Atomic%> %qE in %qs clause"
+msgstr ""
+
+#: c-family/c-omp.cc:3376
+#, gcc-internal-format
+msgid "%qE is a member of a union"
+msgstr ""
+
+#: c-family/c-opts.cc:343
+#, gcc-internal-format
+msgid "%<-I-%> specified twice"
+msgstr ""
+
+#: c-family/c-opts.cc:346
+#, gcc-internal-format
+msgid "obsolete option %<-I-%> used, please use %<-iquote%> instead"
+msgstr ""
+
+#: c-family/c-opts.cc:373
+#, gcc-internal-format
+msgid "%<-fdeps-format=%> unknown format %<%s%>"
+msgstr ""
+
+#: c-family/c-opts.cc:455
+#, gcc-internal-format
+msgid "%<-Wabi=1%> is not supported, using =2"
+msgstr ""
+
+#: c-family/c-opts.cc:642 fortran/cpp.cc:370
+#, gcc-internal-format
+msgid "output filename specified twice"
+msgstr ""
+
+#: c-family/c-opts.cc:895
+#, gcc-internal-format
+msgid "%<-fno-gnu89-inline%> is only supported in GNU99 or C99 mode"
+msgstr ""
+
+#: c-family/c-opts.cc:941
+#, gcc-internal-format
+msgid "%<-Wformat-y2k%> ignored without %<-Wformat%>"
+msgstr ""
+
+#: c-family/c-opts.cc:943
+#, gcc-internal-format
+msgid "%<-Wformat-extra-args%> ignored without %<-Wformat%>"
+msgstr ""
+
+#: c-family/c-opts.cc:945
+#, gcc-internal-format
+msgid "%<-Wformat-zero-length%> ignored without %<-Wformat%>"
+msgstr ""
+
+#: c-family/c-opts.cc:947
+#, gcc-internal-format
+msgid "%<-Wformat-nonliteral%> ignored without %<-Wformat%>"
+msgstr ""
+
+#: c-family/c-opts.cc:949
+#, gcc-internal-format
+msgid "%<-Wformat-contains-nul%> ignored without %<-Wformat%>"
+msgstr ""
+
+#: c-family/c-opts.cc:951
+#, gcc-internal-format
+msgid "%<-Wformat-security%> ignored without %<-Wformat%>"
+msgstr ""
+
+#: c-family/c-opts.cc:1012
+#, gcc-internal-format
+msgid "%<-fabi-compat-version=1%> is not supported, using =2"
+msgstr ""
+
+#: c-family/c-opts.cc:1039
+#, gcc-internal-format
+msgid "%<-Wabi%> won%'t warn about anything"
+msgstr ""
+
+#: c-family/c-opts.cc:1041
+#, gcc-internal-format
+msgid "%<-Wabi%> warns about differences from the most up-to-date ABI, which is also used by default"
+msgstr ""
+
+#: c-family/c-opts.cc:1044
+#, gcc-internal-format
+msgid "use e.g. %<-Wabi=11%> to warn about changes from GCC 7"
+msgstr ""
+
+#: c-family/c-opts.cc:1127
+#, gcc-internal-format
+msgid "external TLS initialization functions not supported on this target"
+msgstr ""
+
+#: c-family/c-opts.cc:1149
+#, gcc-internal-format
+msgid "%<-fconcepts-ts%> is deprecated and will be removed in GCC 15; please convert your code to C++20 concepts"
+msgstr ""
+
+#: c-family/c-opts.cc:1158
+#, gcc-internal-format
+msgid "too many filenames given; type %<%s %s%> for usage"
+msgstr ""
+
+#: c-family/c-opts.cc:1172
+#, gcc-internal-format
+msgid "opening output file %s: %m"
+msgstr ""
+
+#: c-family/c-opts.cc:1190
+#, gcc-internal-format
+msgid "the %qs debug info cannot be used with pre-compiled headers"
+msgstr ""
+
+#: c-family/c-opts.cc:1356 c-family/c-opts.cc:1377
+#, gcc-internal-format
+msgid "opening dependency file %s: %m"
+msgstr ""
+
+#: c-family/c-opts.cc:1381
+#, gcc-internal-format
+msgid "%<-MF%> and %<-fdeps-file=%> cannot share an output file %s: %m"
+msgstr ""
+
+#: c-family/c-opts.cc:1391
+#, gcc-internal-format
+msgid "closing dependency file %s: %m"
+msgstr ""
+
+#: c-family/c-opts.cc:1394
+#, gcc-internal-format
+msgid "when writing output to %s: %m"
+msgstr ""
+
+#: c-family/c-opts.cc:1472
+#, gcc-internal-format
+msgid "to generate dependencies you must specify either %<-M%> or %<-MM%>"
+msgstr ""
+
+#: c-family/c-opts.cc:1496
+#, gcc-internal-format
+msgid "%<-MG%> may only be used with %<-M%> or %<-MM%>"
+msgstr ""
+
+#: c-family/c-opts.cc:1529
+#, gcc-internal-format
+msgid "%<-fdirectives-only%> is incompatible with %<-Wunused-macros%>"
+msgstr ""
+
+#: c-family/c-opts.cc:1532
+#, gcc-internal-format
+msgid "%<-fdirectives-only%> is incompatible with %<-traditional%>"
+msgstr ""
+
+#: c-family/c-opts.cc:1634
+#, gcc-internal-format
+msgid "%<_FORTIFY_SOURCE%> is not enabled by %<-fhardened%> because optimizations are turned off"
+msgstr ""
+
+#: c-family/c-opts.cc:1638
+#, gcc-internal-format
+msgid "%<_FORTIFY_SOURCE%> is not enabled by %<-fhardened%> because it was specified in %<-D%> or %<-U%>"
+msgstr ""
+
+#: c-family/c-opts.cc:1644
+#, gcc-internal-format
+msgid "%<_GLIBCXX_ASSERTIONS%> is not enabled by %<-fhardened%> because it was specified in %<-D%> or %<-U%>"
+msgstr ""
+
+#: c-family/c-opts.cc:1768
+#, gcc-internal-format
+msgid "too late for # directive to set debug directory"
+msgstr ""
+
+#: c-family/c-pch.cc:105
+#, gcc-internal-format
+msgid "cannot create precompiled header %s: %m"
+msgstr ""
+
+#: c-family/c-pch.cc:125
+#, gcc-internal-format
+msgid "cannot write to %s: %m"
+msgstr ""
+
+#: c-family/c-pch.cc:183
+#, gcc-internal-format
+msgid "cannot write %s: %m"
+msgstr ""
+
+#: c-family/c-pch.cc:398
+#, gcc-internal-format
+msgid "%<pch_preprocess%> pragma should only be used with %<-fpreprocessed%>"
+msgstr ""
+
+#: c-family/c-pch.cc:400
+#, gcc-internal-format
+msgid "use %<#include%> instead"
+msgstr ""
+
+#: c-family/c-pch.cc:406
+#, gcc-internal-format
+msgid "%s: couldn%'t open PCH file: %m"
+msgstr ""
+
+#: c-family/c-pch.cc:411
+#, gcc-internal-format
+msgid "use %<-Winvalid-pch%> for more information"
+msgstr ""
+
+#: c-family/c-pch.cc:412
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: PCH file was invalid"
+msgstr ""
+
+#: c-family/c-pragma.cc:98
+#, gcc-internal-format
+msgid "%<#pragma pack (pop)%> encountered without matching %<#pragma pack (push)%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:113
+#, gcc-internal-format
+msgid "%<#pragma pack(pop, %E)%> encountered without matching %<#pragma pack(push, %E)%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:144
+#, gcc-internal-format
+msgid "missing %<(%> after %<#pragma pack%> - ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:155 c-family/c-pragma.cc:189
+#, gcc-internal-format
+msgid "invalid constant in %<#pragma pack%> - ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:159 c-family/c-pragma.cc:203
+#, gcc-internal-format
+msgid "malformed %<#pragma pack%> - ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:164
+#, gcc-internal-format
+msgid "malformed %<#pragma pack(push[, id][, <n>])%> - ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:166
+#, gcc-internal-format
+msgid "malformed %<#pragma pack(pop[, id])%> - ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:175
+#, gcc-internal-format
+msgid "unknown action %qE for %<#pragma pack%> - ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:206
+#, gcc-internal-format
+msgid "junk at end of %<#pragma pack%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:209
+#, gcc-internal-format
+msgid "%<#pragma pack%> has no effect with %<-fpack-struct%> - ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:230
+#, gcc-internal-format, gfc-internal-format
+msgid "alignment must be a small power of two, not %d"
+msgstr ""
+
+#: c-family/c-pragma.cc:269
+#, gcc-internal-format
+msgid "applying %<#pragma weak %+D%> after first use results in unspecified behavior"
+msgstr ""
+
+#: c-family/c-pragma.cc:366 c-family/c-pragma.cc:371
+#, gcc-internal-format
+msgid "malformed %<#pragma weak%>, ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:375
+#, gcc-internal-format
+msgid "junk at end of %<#pragma weak%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:381
+#, gcc-internal-format
+msgid "%<#pragma weak%> declaration of %q+D not allowed, ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:429
+#, gcc-internal-format
+msgid "%<scalar_storage_order%> is not supported because endianness is not uniform"
+msgstr ""
+
+#: c-family/c-pragma.cc:438
+#, gcc-internal-format
+msgid "%<#pragma scalar_storage_order%> is not supported for C++"
+msgstr ""
+
+#: c-family/c-pragma.cc:444
+#, gcc-internal-format
+msgid "missing %<big-endian%>, %<little-endian%>, or %<default%> after %<#pragma scalar_storage_order%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:454
+#, gcc-internal-format
+msgid "expected %<big-endian%>, %<little-endian%>, or %<default%> after %<#pragma scalar_storage_order%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:509 c-family/c-pragma.cc:511
+#, gcc-internal-format
+msgid "malformed %<#pragma redefine_extname%>, ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:514
+#, gcc-internal-format
+msgid "junk at end of %<#pragma redefine_extname%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:542 c-family/c-pragma.cc:615
+#, gcc-internal-format
+msgid "%<#pragma redefine_extname%> ignored due to conflict with previous rename"
+msgstr ""
+
+#: c-family/c-pragma.cc:570
+#, gcc-internal-format
+msgid "%<#pragma redefine_extname%> ignored due to conflict with previous %<#pragma redefine_extname%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:606
+#, gcc-internal-format
+msgid "%<asm%> declaration ignored due to conflict with previous rename"
+msgstr ""
+
+#: c-family/c-pragma.cc:637
+#, gcc-internal-format
+msgid "%<#pragma redefine_extname%> ignored due to conflict with %<asm%> declaration"
+msgstr ""
+
+#: c-family/c-pragma.cc:698
+#, gcc-internal-format
+msgid "%<#pragma GCC visibility push()%> must specify %<default%>, %<internal%>, %<hidden%> or %<protected%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:741
+#, gcc-internal-format
+msgid "%<#pragma GCC visibility%> must be followed by %<push%> or %<pop%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:748
+#, gcc-internal-format
+msgid "no matching push for %<#pragma GCC visibility pop%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:753 c-family/c-pragma.cc:760
+#, gcc-internal-format
+msgid "missing %<(%> after %<#pragma GCC visibility push%> - ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:756
+#, gcc-internal-format
+msgid "malformed %<#pragma GCC visibility push%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:764
+#, gcc-internal-format
+msgid "junk at end of %<#pragma GCC visibility%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:885
+#, gcc-internal-format
+msgid "missing %<error%>, %<warning%>, %<ignored%>, %<push%>, %<pop%>, or %<ignored_attributes%> after %<#pragma GCC diagnostic%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:909
+#, gcc-internal-format
+msgid "missing attribute name after %<#pragma GCC diagnostic ignored_attributes%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:918
+#, gcc-internal-format
+msgid "missing argument to %<#pragma GCC diagnostic ignored_attributes%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:926
+#, gcc-internal-format
+msgid "trailing %<,%> in arguments for %<#pragma GCC diagnostic ignored_attributes%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:944
+#, gcc-internal-format
+msgid "missing option after %<#pragma GCC diagnostic%> kind"
+msgstr ""
+
+#: c-family/c-pragma.cc:952
+#, gcc-internal-format
+msgid "expected %<error%>, %<warning%>, %<ignored%>, %<push%>, %<pop%>, %<ignored_attributes%> after %<#pragma GCC diagnostic%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:976
+#, gcc-internal-format
+msgid "unknown option after %<#pragma GCC diagnostic%> kind"
+msgstr ""
+
+#: c-family/c-pragma.cc:981
+#, gcc-internal-format
+msgid "did you mean %<-%s%>?"
+msgstr ""
+
+#: c-family/c-pragma.cc:990
+#, gcc-internal-format
+msgid "%qs is not an option that controls warnings"
+msgstr ""
+
+#: c-family/c-pragma.cc:1001
+#, gcc-internal-format
+msgid "option %qs is valid for %s but not for %s"
+msgstr ""
+
+#: c-family/c-pragma.cc:1054
+#, gcc-internal-format
+msgid "%<#pragma GCC option%> is not allowed inside functions"
+msgstr ""
+
+#: c-family/c-pragma.cc:1066
+#, gcc-internal-format
+msgid "%<#pragma GCC option%> is not a string"
+msgstr ""
+
+#: c-family/c-pragma.cc:1091
+#, gcc-internal-format
+msgid "%<#pragma GCC target (string [,string]...)%> does not have a final %<)%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:1097
+#, gcc-internal-format
+msgid "%<#pragma GCC target%> string is badly formed"
+msgstr ""
+
+#: c-family/c-pragma.cc:1126
+#, gcc-internal-format
+msgid "%<#pragma GCC optimize%> is not allowed inside functions"
+msgstr ""
+
+#: c-family/c-pragma.cc:1138
+#, gcc-internal-format
+msgid "%<#pragma GCC optimize%> is not a string or number"
+msgstr ""
+
+#: c-family/c-pragma.cc:1162
+#, gcc-internal-format
+msgid "%<#pragma GCC optimize (string [,string]...)%> does not have a final %<)%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:1168
+#, gcc-internal-format
+msgid "%<#pragma GCC optimize%> string is badly formed"
+msgstr ""
+
+#: c-family/c-pragma.cc:1211
+#, gcc-internal-format
+msgid "junk at end of %<#pragma GCC push_options%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:1248
+#, gcc-internal-format
+msgid "junk at end of %<#pragma GCC pop_options%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:1255
+#, gcc-internal-format
+msgid "%<#pragma GCC pop_options%> without a corresponding %<#pragma GCC push_options%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:1329
+#, gcc-internal-format
+msgid "junk at end of %<#pragma reset_options%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:1350 c-family/c-pragma.cc:1360
+#, gcc-internal-format
+msgid "expected a string after %<#pragma message%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:1352
+#, gcc-internal-format
+msgid "malformed %<#pragma message%>, ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:1357 cp/parser.cc:4583 cp/parser.cc:4679
+#, gcc-internal-format
+msgid "string literal with user-defined suffix is invalid in this context"
+msgstr ""
+
+#: c-family/c-pragma.cc:1365
+#, gcc-internal-format
+msgid "junk at end of %<#pragma message%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:1368
+#, gcc-internal-format
+msgid "%<#pragma message: %s%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:1412
+#, gcc-internal-format
+msgid "invalid location for %<pragma %s%>, ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:1419 c-family/c-pragma.cc:1433
+#, gcc-internal-format
+msgid "malformed %<#pragma %s%>, ignored"
+msgstr ""
+
+#: c-family/c-pragma.cc:1439 cp/lex.cc:637
+#, gcc-internal-format
+msgid "junk at end of %<#pragma %s%>"
+msgstr ""
+
+#: c-family/c-pragma.cc:1457
+#, gcc-internal-format
+msgid "%<#pragma STDC FLOAT_CONST_DECIMAL64%> is not supported for C++"
+msgstr ""
+
+#: c-family/c-pragma.cc:1466
+#, gcc-internal-format
+msgid "%<#pragma STDC FLOAT_CONST_DECIMAL64%> is not supported on this target"
+msgstr ""
+
+#: c-family/c-pragma.cc:1472
+#, gcc-internal-format
+msgid "ISO C does not support %<#pragma STDC FLOAT_CONST_DECIMAL64%>"
+msgstr ""
+
+#: c-family/c-pretty-print.cc:344
+#, gcc-internal-format
+msgid "<type-error>"
+msgstr ""
+
+#: c-family/c-pretty-print.cc:387
+#, gcc-internal-format
+msgid "<unnamed-unsigned:"
+msgstr ""
+
+#: c-family/c-pretty-print.cc:391
+#, gcc-internal-format
+msgid "<unnamed-float:"
+msgstr ""
+
+#: c-family/c-pretty-print.cc:394
+#, gcc-internal-format
+msgid "<unnamed-fixed:"
+msgstr ""
+
+#: c-family/c-pretty-print.cc:426
+#, gcc-internal-format
+msgid "<typedef-error>"
+msgstr ""
+
+#: c-family/c-pretty-print.cc:441
+#, gcc-internal-format
+msgid "<tag-error>"
+msgstr ""
+
+#: c-family/c-pretty-print.cc:1360
+#, gcc-internal-format
+msgid "<erroneous-expression>"
+msgstr ""
+
+#: c-family/c-pretty-print.cc:1364 cp/cxx-pretty-print.cc:133
+#, gcc-internal-format
+msgid "<return-value>"
+msgstr ""
+
+#: c-family/c-semantics.cc:197
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong type argument to %s"
+msgstr ""
+
+#: c-family/c-warn.cc:59 c-family/c-warn.cc:72 cp/constexpr.cc:3599
+#: cp/constexpr.cc:7371 m2/gm2-gcc/m2expr.cc:964
+#: rust/backend/rust-constexpr.cc:1908 rust/backend/rust-constexpr.cc:4331
+#, gcc-internal-format
+msgid "overflow in constant expression"
+msgstr ""
+
+#: c-family/c-warn.cc:99
+#, gcc-internal-format
+msgid "integer overflow in expression %qE of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:101
+#, gcc-internal-format
+msgid "integer overflow in expression of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:107
+#, gcc-internal-format
+msgid "floating point overflow in expression %qE of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:109
+#, gcc-internal-format
+msgid "floating point overflow in expression of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:115
+#, gcc-internal-format
+msgid "fixed-point overflow in expression %qE of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:117
+#, gcc-internal-format
+msgid "fixed-point overflow in expression of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:123
+#, gcc-internal-format
+msgid "vector overflow in expression %qE of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:125
+#, gcc-internal-format
+msgid "vector overflow in expression of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:132
+#, gcc-internal-format
+msgid "complex integer overflow in expression %qE of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:134
+#, gcc-internal-format
+msgid "complex integer overflow in expression of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:138
+#, gcc-internal-format
+msgid "complex floating point overflow in expression %qE of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:140
+#, gcc-internal-format
+msgid "complex floating point overflow in expression of type %qT results in %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:232
+#, gcc-internal-format
+msgid "logical %<or%> applied to non-boolean constant"
+msgstr ""
+
+#: c-family/c-warn.cc:236
+#, gcc-internal-format
+msgid "logical %<and%> applied to non-boolean constant"
+msgstr ""
+
+#: c-family/c-warn.cc:306
+#, gcc-internal-format
+msgid "logical %<or%> of collectively exhaustive tests is always true"
+msgstr ""
+
+#: c-family/c-warn.cc:310
+#, gcc-internal-format
+msgid "logical %<and%> of mutually exclusive tests is always false"
+msgstr ""
+
+#: c-family/c-warn.cc:320
+#, gcc-internal-format
+msgid "logical %<or%> of equal expressions"
+msgstr ""
+
+#: c-family/c-warn.cc:323
+#, gcc-internal-format
+msgid "logical %<and%> of equal expressions"
+msgstr ""
+
+#: c-family/c-warn.cc:409
+#, gcc-internal-format
+msgid "bitwise comparison always evaluates to false"
+msgstr ""
+
+#: c-family/c-warn.cc:412
+#, gcc-internal-format
+msgid "bitwise comparison always evaluates to true"
+msgstr ""
+
+#: c-family/c-warn.cc:517
+#, gcc-internal-format
+msgid "self-comparison always evaluates to true"
+msgstr ""
+
+#: c-family/c-warn.cc:520
+#, gcc-internal-format
+msgid "self-comparison always evaluates to false"
+msgstr ""
+
+#: c-family/c-warn.cc:571
+#, gcc-internal-format
+msgid "logical not is only applied to the left hand side of comparison"
+msgstr ""
+
+#: c-family/c-warn.cc:579
+#, gcc-internal-format
+msgid "add parentheses around left hand side expression to silence this warning"
+msgstr ""
+
+#: c-family/c-warn.cc:722
+#, gcc-internal-format
+msgid "type-punning to incomplete type might break strict-aliasing rules"
+msgstr ""
+
+#: c-family/c-warn.cc:740
+#, gcc-internal-format
+msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+msgstr ""
+
+#: c-family/c-warn.cc:748 c-family/c-warn.cc:766
+#, gcc-internal-format
+msgid "dereferencing type-punned pointer might break strict-aliasing rules"
+msgstr ""
+
+#: c-family/c-warn.cc:913
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the source; did you mean to use the size of the destination?"
+msgstr ""
+
+#: c-family/c-warn.cc:944
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the destination; did you mean to remove the addressof?"
+msgstr ""
+
+#: c-family/c-warn.cc:951
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the destination; did you mean to provide an explicit length?"
+msgstr ""
+
+#: c-family/c-warn.cc:956
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the destination; did you mean to dereference it?"
+msgstr ""
+
+#: c-family/c-warn.cc:968
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same pointer type %qT as the destination; expected %qT or an explicit length"
+msgstr ""
+
+#: c-family/c-warn.cc:984
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the source; did you mean to remove the addressof?"
+msgstr ""
+
+#: c-family/c-warn.cc:991
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the source; did you mean to provide an explicit length?"
+msgstr ""
+
+#: c-family/c-warn.cc:996
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the source; did you mean to dereference it?"
+msgstr ""
+
+#: c-family/c-warn.cc:1008
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same pointer type %qT as the source; expected %qT or an explicit length"
+msgstr ""
+
+#: c-family/c-warn.cc:1024
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the first source; did you mean to remove the addressof?"
+msgstr ""
+
+#: c-family/c-warn.cc:1031
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the first source; did you mean to provide an explicit length?"
+msgstr ""
+
+#: c-family/c-warn.cc:1036
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the first source; did you mean to dereference it?"
+msgstr ""
+
+#: c-family/c-warn.cc:1048
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same pointer type %qT as the first source; expected %qT or an explicit length"
+msgstr ""
+
+#: c-family/c-warn.cc:1064
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the second source; did you mean to remove the addressof?"
+msgstr ""
+
+#: c-family/c-warn.cc:1071
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the second source; did you mean to provide an explicit length?"
+msgstr ""
+
+#: c-family/c-warn.cc:1076
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same expression as the second source; did you mean to dereference it?"
+msgstr ""
+
+#: c-family/c-warn.cc:1088
+#, gcc-internal-format
+msgid "argument to %<sizeof%> in %qD call is the same pointer type %qT as the second source; expected %qT or an explicit length"
+msgstr ""
+
+#: c-family/c-warn.cc:1117 c-family/c-warn.cc:1124
+#, gcc-internal-format
+msgid "%<_Atomic%>-qualified parameter type %qT of %q+D"
+msgstr ""
+
+#: c-family/c-warn.cc:1134
+#, gcc-internal-format
+msgid "first argument of %q+D should be %<int%>"
+msgstr ""
+
+#: c-family/c-warn.cc:1143
+#, gcc-internal-format
+msgid "second argument of %q+D should be %<char **%>"
+msgstr ""
+
+#: c-family/c-warn.cc:1152
+#, gcc-internal-format
+msgid "third argument of %q+D should probably be %<char **%>"
+msgstr ""
+
+#: c-family/c-warn.cc:1163
+#, gcc-internal-format
+msgid "%q+D takes only zero or two arguments"
+msgstr ""
+
+#: c-family/c-warn.cc:1167
+#, gcc-internal-format
+msgid "%q+D declared as variadic function"
+msgstr ""
+
+#: c-family/c-warn.cc:1210 m2/gm2-gcc/m2convert.cc:191
+#, gcc-internal-format
+msgid "conversion to %qT from boolean expression"
+msgstr ""
+
+#: c-family/c-warn.cc:1235 c-family/c-warn.cc:1440
+#, gcc-internal-format
+msgid "unsigned conversion from %qT to %qT changes value from %qE to %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1240 c-family/c-warn.cc:1448
+#, gcc-internal-format
+msgid "unsigned conversion from %qT to %qT changes the value of %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1248
+#, gcc-internal-format
+msgid "signed conversion from %qT to %qT changes value from %qE to %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1253
+#, gcc-internal-format
+msgid "signed conversion from %qT to %qT changes the value of %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1260 c-family/c-warn.cc:1438
+#, gcc-internal-format
+msgid "conversion from %qT to %qT changes value from %qE to %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1264 c-family/c-warn.cc:1446
+#, gcc-internal-format
+msgid "conversion from %qT to %qT changes the value of %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1375
+#, gcc-internal-format
+msgid "conversion to %qT from %qT may change the sign of the result"
+msgstr ""
+
+#: c-family/c-warn.cc:1380
+#, gcc-internal-format
+msgid "conversion from %qT to %qT discards imaginary component"
+msgstr ""
+
+#: c-family/c-warn.cc:1384
+#, gcc-internal-format
+msgid "conversion from %qT to %qT may change value"
+msgstr ""
+
+#: c-family/c-warn.cc:1459 c-family/c-warn.cc:1477 c-family/c-warn.cc:1494
+#, gcc-internal-format
+msgid "overflow in conversion from %qT to %qT changes value from %qE to %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1464 c-family/c-warn.cc:1482 c-family/c-warn.cc:1499
+#, gcc-internal-format
+msgid "overflow in conversion from %qT to %qT changes the value of %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1531
+#, gcc-internal-format
+msgid "case value %qs not in enumerated type"
+msgstr ""
+
+#: c-family/c-warn.cc:1536
+#, gcc-internal-format
+msgid "case value %qs not in enumerated type %qT"
+msgstr ""
+
+#: c-family/c-warn.cc:1616
+#, gcc-internal-format
+msgid "lower value in case label range less than minimum value for type"
+msgstr ""
+
+#: c-family/c-warn.cc:1630
+#, gcc-internal-format
+msgid "case label value is less than minimum value for type"
+msgstr ""
+
+#: c-family/c-warn.cc:1647
+#, gcc-internal-format
+msgid "upper value in case label range exceeds maximum value for type"
+msgstr ""
+
+#: c-family/c-warn.cc:1660
+#, gcc-internal-format
+msgid "case label value exceeds maximum value for type"
+msgstr ""
+
+#: c-family/c-warn.cc:1673
+#, gcc-internal-format
+msgid "switch missing default case"
+msgstr ""
+
+#: c-family/c-warn.cc:1718
+#, gcc-internal-format
+msgid "switch condition has boolean value"
+msgstr ""
+
+#: c-family/c-warn.cc:1807
+#, gcc-internal-format
+msgid "enumeration value %qE not handled in switch"
+msgstr ""
+
+#: c-family/c-warn.cc:1835
+#, gcc-internal-format
+msgid "the omitted middle operand in %<?:%> will always be %<true%>, suggest explicit middle operand"
+msgstr ""
+
+#: c-family/c-warn.cc:1857 rust/checks/errors/rust-readonly-check.cc:44
+#, gcc-internal-format
+msgid "assignment of member %qD in read-only object"
+msgstr ""
+
+#: c-family/c-warn.cc:1859 rust/checks/errors/rust-readonly-check.cc:46
+#, gcc-internal-format
+msgid "increment of member %qD in read-only object"
+msgstr ""
+
+#: c-family/c-warn.cc:1861 rust/checks/errors/rust-readonly-check.cc:48
+#, gcc-internal-format
+msgid "decrement of member %qD in read-only object"
+msgstr ""
+
+#: c-family/c-warn.cc:1863 rust/checks/errors/rust-readonly-check.cc:50
+#, gcc-internal-format
+msgid "member %qD in read-only object used as %<asm%> output"
+msgstr ""
+
+#: c-family/c-warn.cc:1867 rust/checks/errors/rust-readonly-check.cc:56
+#, gcc-internal-format
+msgid "assignment of read-only member %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1868 rust/checks/errors/rust-readonly-check.cc:57
+#, gcc-internal-format
+msgid "increment of read-only member %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1869 rust/checks/errors/rust-readonly-check.cc:58
+#, gcc-internal-format
+msgid "decrement of read-only member %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1870 rust/checks/errors/rust-readonly-check.cc:59
+#, gcc-internal-format
+msgid "read-only member %qD used as %<asm%> output"
+msgstr ""
+
+#: c-family/c-warn.cc:1874 rust/checks/errors/rust-readonly-check.cc:64
+#, gcc-internal-format
+msgid "assignment of read-only variable %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1875 rust/checks/errors/rust-readonly-check.cc:65
+#, gcc-internal-format
+msgid "increment of read-only variable %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1876 rust/checks/errors/rust-readonly-check.cc:66
+#, gcc-internal-format
+msgid "decrement of read-only variable %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1877 rust/checks/errors/rust-readonly-check.cc:68
+#, gcc-internal-format
+msgid "read-only variable %qD used as %<asm%> output"
+msgstr ""
+
+#: c-family/c-warn.cc:1880 rust/checks/errors/rust-readonly-check.cc:72
+#, gcc-internal-format
+msgid "assignment of read-only parameter %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1881 rust/checks/errors/rust-readonly-check.cc:73
+#, gcc-internal-format
+msgid "increment of read-only parameter %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1882 rust/checks/errors/rust-readonly-check.cc:74
+#, gcc-internal-format
+msgid "decrement of read-only parameter %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1883 rust/checks/errors/rust-readonly-check.cc:76
+#, gcc-internal-format
+msgid "read-only parameter %qD use as %<asm%> output"
+msgstr ""
+
+#: c-family/c-warn.cc:1888 rust/checks/errors/rust-readonly-check.cc:81
+#, gcc-internal-format
+msgid "assignment of read-only named return value %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1890 rust/checks/errors/rust-readonly-check.cc:83
+#, gcc-internal-format
+msgid "increment of read-only named return value %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1892 rust/checks/errors/rust-readonly-check.cc:85
+#, gcc-internal-format
+msgid "decrement of read-only named return value %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1894 rust/checks/errors/rust-readonly-check.cc:87
+#, gcc-internal-format
+msgid "read-only named return value %qD used as %<asm%>output"
+msgstr ""
+
+#: c-family/c-warn.cc:1899 rust/checks/errors/rust-readonly-check.cc:93
+#, gcc-internal-format
+msgid "assignment of function %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1900 rust/checks/errors/rust-readonly-check.cc:94
+#, gcc-internal-format
+msgid "increment of function %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1901 rust/checks/errors/rust-readonly-check.cc:95
+#, gcc-internal-format
+msgid "decrement of function %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:1902 rust/checks/errors/rust-readonly-check.cc:96
+#, gcc-internal-format
+msgid "function %qD used as %<asm%> output"
+msgstr ""
+
+#: c-family/c-warn.cc:1905 c/c-typeck.cc:5215
+#: rust/checks/errors/rust-readonly-check.cc:100
+#, gcc-internal-format
+msgid "assignment of read-only location %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1906 c/c-typeck.cc:5218
+#: rust/checks/errors/rust-readonly-check.cc:101
+#, gcc-internal-format
+msgid "increment of read-only location %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1907 c/c-typeck.cc:5221
+#: rust/checks/errors/rust-readonly-check.cc:102
+#, gcc-internal-format
+msgid "decrement of read-only location %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:1908 rust/checks/errors/rust-readonly-check.cc:104
+#, gcc-internal-format
+msgid "read-only location %qE used as %<asm%> output"
+msgstr ""
+
+#: c-family/c-warn.cc:1922 rust/backend/rust-tree.cc:5983
+#, gcc-internal-format
+msgid "lvalue required as left operand of assignment"
+msgstr ""
+
+#: c-family/c-warn.cc:1925 rust/backend/rust-tree.cc:5986
+#, gcc-internal-format
+msgid "lvalue required as increment operand"
+msgstr ""
+
+#: c-family/c-warn.cc:1928 rust/backend/rust-tree.cc:5989
+#, gcc-internal-format
+msgid "lvalue required as decrement operand"
+msgstr ""
+
+#: c-family/c-warn.cc:1931 rust/backend/rust-tree.cc:5992
+#, gcc-internal-format
+msgid "lvalue required as unary %<&%> operand"
+msgstr ""
+
+#: c-family/c-warn.cc:1934 rust/backend/rust-tree.cc:5995
+#, gcc-internal-format
+msgid "lvalue required in %<asm%> statement"
+msgstr ""
+
+#: c-family/c-warn.cc:1951
+#, gcc-internal-format
+msgid "invalid type argument (have %qT)"
+msgstr ""
+
+#: c-family/c-warn.cc:1955
+#, gcc-internal-format
+msgid "invalid type argument of array indexing (have %qT)"
+msgstr ""
+
+#: c-family/c-warn.cc:1960
+#, gcc-internal-format
+msgid "invalid type argument of unary %<*%> (have %qT)"
+msgstr ""
+
+#: c-family/c-warn.cc:1965
+#, gcc-internal-format
+msgid "invalid type argument of %<->%> (have %qT)"
+msgstr ""
+
+#: c-family/c-warn.cc:1970
+#, gcc-internal-format
+msgid "invalid type argument of %<->*%> (have %qT)"
+msgstr ""
+
+#: c-family/c-warn.cc:1975
+#, gcc-internal-format
+msgid "invalid type argument of implicit conversion (have %qT)"
+msgstr ""
+
+#: c-family/c-warn.cc:2002
+#, gcc-internal-format
+msgid "array subscript has type %<char%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2038 c-family/c-warn.cc:2041
+#, gcc-internal-format
+msgid "suggest parentheses around %<+%> inside %<<<%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2044 c-family/c-warn.cc:2047
+#, gcc-internal-format
+msgid "suggest parentheses around %<-%> inside %<<<%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2053 c-family/c-warn.cc:2056
+#, gcc-internal-format
+msgid "suggest parentheses around %<+%> inside %<>>%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2059 c-family/c-warn.cc:2062
+#, gcc-internal-format
+msgid "suggest parentheses around %<-%> inside %<>>%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2068 c-family/c-warn.cc:2071
+#, gcc-internal-format
+msgid "suggest parentheses around %<&&%> within %<||%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2078 c-family/c-warn.cc:2082
+#, gcc-internal-format
+msgid "suggest parentheses around arithmetic in operand of %<|%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2086 c-family/c-warn.cc:2089
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of %<|%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2094
+#, gcc-internal-format
+msgid "suggest parentheses around operand of %<!%> or change %<|%> to %<||%> or %<!%> to %<~%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2102 c-family/c-warn.cc:2106
+#, gcc-internal-format
+msgid "suggest parentheses around arithmetic in operand of %<^%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2110 c-family/c-warn.cc:2113
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of %<^%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2119 c-family/c-warn.cc:2122
+#, gcc-internal-format
+msgid "suggest parentheses around %<+%> in operand of %<&%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2125 c-family/c-warn.cc:2128
+#, gcc-internal-format
+msgid "suggest parentheses around %<-%> in operand of %<&%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2132 c-family/c-warn.cc:2135
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of %<&%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2140
+#, gcc-internal-format
+msgid "suggest parentheses around operand of %<!%> or change %<&%> to %<&&%> or %<!%> to %<~%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2147 c-family/c-warn.cc:2150
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of %<==%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2155 c-family/c-warn.cc:2158
+#, gcc-internal-format
+msgid "suggest parentheses around comparison in operand of %<!=%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2168 c-family/c-warn.cc:2174
+#, gcc-internal-format
+msgid "comparisons like %<X<=Y<=Z%> do not have their mathematical meaning"
+msgstr ""
+
+#: c-family/c-warn.cc:2189
+#, gcc-internal-format
+msgid "label %q+D defined but not used"
+msgstr ""
+
+#: c-family/c-warn.cc:2191
+#, gcc-internal-format
+msgid "label %q+D declared but not defined"
+msgstr ""
+
+#: c-family/c-warn.cc:2214
+#, gcc-internal-format
+msgid "division by zero"
+msgstr "ნულზე გაყოფა"
+
+#: c-family/c-warn.cc:2234
+#, gcc-internal-format
+msgid "%<memset%> used with constant zero length parameter; this could be due to transposed parameters"
+msgstr ""
+
+#: c-family/c-warn.cc:2258
+#, gcc-internal-format
+msgid "%<memset%> used with length equal to number of elements without multiplication by element size"
+msgstr ""
+
+#: c-family/c-warn.cc:2290
+#, gcc-internal-format
+msgid "%qD sizes specified with %<sizeof%> in the earlier argument and not in the later argument"
+msgstr ""
+
+#: c-family/c-warn.cc:2292
+#, gcc-internal-format
+msgid "earlier argument should specify number of elements, later size of each element"
+msgstr ""
+
+#: c-family/c-warn.cc:2331
+#, gcc-internal-format
+msgid "allocation of insufficient size %qE for type %qT with size %qE"
+msgstr ""
+
+#: c-family/c-warn.cc:2408
+#, gcc-internal-format
+msgid "comparison of integer expressions of different signedness: %qT and %qT"
+msgstr ""
+
+#: c-family/c-warn.cc:2482
+#, gcc-internal-format
+msgid "promoted bitwise complement of an unsigned value is always nonzero"
+msgstr ""
+
+#: c-family/c-warn.cc:2486
+#, gcc-internal-format
+msgid "comparison of promoted bitwise complement of an unsigned value with constant"
+msgstr ""
+
+#: c-family/c-warn.cc:2497
+#, gcc-internal-format
+msgid "comparison of promoted bitwise complement of an unsigned value with unsigned"
+msgstr ""
+
+#: c-family/c-warn.cc:2552
+#, gcc-internal-format
+msgid "unused parameter %qD"
+msgstr ""
+
+#: c-family/c-warn.cc:2614
+#, gcc-internal-format
+msgid "typedef %qD locally defined but not used"
+msgstr ""
+
+#: c-family/c-warn.cc:2650
+#, gcc-internal-format
+msgid "duplicated %<if%> condition"
+msgstr ""
+
+#: c-family/c-warn.cc:2679
+#, gcc-internal-format
+msgid "optimization attribute on %qD follows definition but the attribute doesn%'t match"
+msgstr ""
+
+#: c-family/c-warn.cc:2687
+#, gcc-internal-format
+msgid "inline declaration of %qD follows declaration with attribute %<noinline%>"
+msgstr ""
+
+#: c-family/c-warn.cc:2692
+#, gcc-internal-format
+msgid "declaration of %q+D with attribute %<noinline%> follows inline declaration"
+msgstr ""
+
+#: c-family/c-warn.cc:2746
+#, gcc-internal-format
+msgid "result of %qE requires %u bits to represent, but %qT only has %u bits"
+msgstr ""
+
+#: c-family/c-warn.cc:2785 c-family/c-warn.cc:2809
+#, gcc-internal-format
+msgid "comparison of constant %qE with boolean expression is always false"
+msgstr ""
+
+#: c-family/c-warn.cc:2788 c-family/c-warn.cc:2806
+#, gcc-internal-format
+msgid "comparison of constant %qE with boolean expression is always true"
+msgstr ""
+
+#: c-family/c-warn.cc:2856
+msgid "passing argument %i to %qs-qualified parameter aliases with argument %Z"
+msgid_plural "passing argument %i to %qs-qualified parameter aliases with arguments %Z"
+msgstr[0] ""
+msgstr[1] ""
+
+#: c-family/c-warn.cc:2922 c/c-typeck.cc:5825 cp/call.cc:6385
+#, gcc-internal-format
+msgid "this condition has identical branches"
+msgstr ""
+
+#: c-family/c-warn.cc:3029
+#, gcc-internal-format
+msgid "macro expands to multiple statements"
+msgstr ""
+
+#: c-family/c-warn.cc:3030
+#, gcc-internal-format
+msgid "some parts of macro expansion are not guarded by this %qs clause"
+msgstr ""
+
+#: c-family/c-warn.cc:3170
+#, gcc-internal-format
+msgid "taking address of packed member of %qT may result in an unaligned pointer value"
+msgstr ""
+
+#: c-family/c-warn.cc:3396
+msgid "mismatch in bound %Z of argument %u declared as %s"
+msgid_plural "mismatch in bounds %Z of argument %u declared as %s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: c-family/c-warn.cc:3399 c-family/c-warn.cc:3758
+#, gcc-internal-format, gfc-internal-format
+msgid "previously declared as %s"
+msgstr ""
+
+#: c-family/c-warn.cc:3533
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %u of type %s declared as a variable length array"
+msgstr ""
+
+#: c-family/c-warn.cc:3538
+#, gcc-internal-format, gfc-internal-format
+msgid "previously declared as a pointer %s"
+msgstr ""
+
+#: c-family/c-warn.cc:3539
+#, gcc-internal-format, gfc-internal-format
+msgid "previously declared as an ordinary array %s"
+msgstr ""
+
+#: c-family/c-warn.cc:3552 c-family/c-warn.cc:3566
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %u of type %s declared as a pointer"
+msgstr ""
+
+#: c-family/c-warn.cc:3556 c-family/c-warn.cc:3582
+#, gcc-internal-format, gfc-internal-format
+msgid "previously declared as a variable length array %s"
+msgstr ""
+
+#: c-family/c-warn.cc:3569
+#, gcc-internal-format, gfc-internal-format
+msgid "previously declared as an array %s"
+msgstr ""
+
+#: c-family/c-warn.cc:3578
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %u of type %s declared as an ordinary array"
+msgstr ""
+
+#: c-family/c-warn.cc:3606
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %u of type %s declared with %u variable bound"
+msgid_plural "argument %u of type %s declared with %u variable bounds"
+msgstr[0] ""
+msgstr[1] ""
+
+#: c-family/c-warn.cc:3613
+#, gcc-internal-format, gfc-internal-format
+msgid "previously declared as %s with %u variable bound"
+msgid_plural "previously declared as %s with %u variable bounds"
+msgstr[0] ""
+msgstr[1] ""
+
+#: c-family/c-warn.cc:3627
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %u of type %s declared with %u unspecified variable bound"
+msgid_plural "argument %u of type %s declared with %u unspecified variable bounds"
+msgstr[0] ""
+msgstr[1] ""
+
+#: c-family/c-warn.cc:3635
+#, gcc-internal-format, gfc-internal-format
+msgid "previously declared as %s with %u unspecified variable bound"
+msgid_plural "previously declared as %s with %u unspecified variable bounds"
+msgstr[0] ""
+msgstr[1] ""
+
+#: c-family/c-warn.cc:3642
+#, gcc-internal-format, gfc-internal-format
+msgid "subsequently declared as %s with %u unspecified variable bound"
+msgid_plural "subsequently declared as %s with %u unspecified variable bounds"
+msgstr[0] ""
+msgstr[1] ""
+
+#: c-family/c-warn.cc:3693
+#, gcc-internal-format
+msgid "argument %u of type %s declared with mismatched bound argument %E"
+msgstr ""
+
+#: c-family/c-warn.cc:3700 c-family/c-warn.cc:3734
+#, gcc-internal-format
+msgid "argument %u of type %s declared with mismatched bound %<%s%>"
+msgstr ""
+
+#: c-family/c-warn.cc:3712
+#, gcc-internal-format
+msgid "previously declared as %s with bound argument %E"
+msgstr ""
+
+#: c-family/c-warn.cc:3717
+#, gcc-internal-format
+msgid "previously declared as %s with bound %<%s%>"
+msgstr ""
+
+#: c-family/c-warn.cc:3737
+#, gcc-internal-format
+msgid "previously declared as %s with bound %qs"
+msgstr ""
+
+#: c-family/c-warn.cc:3756
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %u of type %s with mismatched bound"
+msgstr ""
+
+#: c-family/c-warn.cc:3787
+#, gcc-internal-format
+msgid "expression does not compute the number of elements in this array; element type is %qT, not %qT"
+msgstr ""
+
+#: c-family/c-warn.cc:3797
+#, gcc-internal-format
+msgid "add parentheses around %qE to silence this warning"
+msgstr ""
+
+#: c-family/c-warn.cc:3801
+#, gcc-internal-format
+msgid "add parentheses around the second %<sizeof%> to silence this warning"
+msgstr ""
+
+#: c-family/c-warn.cc:3827
+#, gcc-internal-format
+msgid "comparison between two arrays is deprecated in C++20"
+msgstr ""
+
+#: c-family/c-warn.cc:3828
+#, gcc-internal-format
+msgid "comparison between two arrays"
+msgstr ""
+
+#: c-family/c-warn.cc:3832
+#, gcc-internal-format
+msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
+msgstr ""
+
+#: c-family/c-warn.cc:3839
+#, gcc-internal-format
+msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
+msgstr ""
+
+#: c-family/c-warn.cc:3901
+#, gcc-internal-format
+msgid "result of %<%wu^%wu%> is %wu; did you mean %<1 << %wu%> (%wu)?"
+msgstr ""
+
+#: c-family/c-warn.cc:3911
+#, gcc-internal-format
+msgid "result of %<%wu^%wu%> is %wu; did you mean %<1LL << %wu%>?"
+msgstr ""
+
+#: c-family/c-warn.cc:3918
+#, gcc-internal-format
+msgid "result of %<%wu^%wu%> is %wu; did you mean exponentiation?"
+msgstr ""
+
+#: c-family/c-warn.cc:3929
+#, gcc-internal-format
+msgid "result of %<%wu^%wu%> is %wu; did you mean %<1e%wu%>?"
+msgstr ""
+
+#: c-family/c-warn.cc:3946
+#, gcc-internal-format
+msgid "you can silence this warning by using a hexadecimal constant (%wx rather than %wd)"
+msgstr ""
+
+#: c-family/cppspec.cc:94
+#, gcc-internal-format
+msgid "%qs is not a valid option to the preprocessor"
+msgstr ""
+
+#: c-family/cppspec.cc:113
+#, gcc-internal-format
+msgid "too many input files"
+msgstr ""
+
+#: c-family/known-headers.cc:322
+#, gcc-internal-format
+msgid "%qs is defined in header %qs; this is probably fixable by adding %<#include %s%>"
+msgstr ""
+
+#: common/config/aarch64/aarch64-common.cc:415 config/aarch64/aarch64.cc:18539
+#, gcc-internal-format
+msgid "unknown value %qs for %<-mcpu%>"
+msgstr ""
+
+#: common/config/alpha/alpha-common.cc:75
+#, gcc-internal-format
+msgid "bad value %qs for %<-mtls-size%> switch"
+msgstr ""
+
+#: common/config/arc/arc-common.cc:80
+#, gcc-internal-format
+msgid "multiple %<-mcpu=%> options specified"
+msgstr ""
+
+#: common/config/arc/arc-common.cc:86
+#, gcc-internal-format
+msgid "Unsupported value for mmpy-option"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:289
+#, gcc-internal-format
+msgid "%%:%<target_mode_check%> takes an even number of parameters"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:298
+#, gcc-internal-format
+msgid "unrecognized option passed to %%:%<target_mode_check%>"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:378 common/config/arm/arm-common.cc:442
+#: common/config/arm/arm-common.cc:489 config/aarch64/aarch64.cc:18471
+#: config/aarch64/aarch64.cc:18509
+#, gcc-internal-format
+msgid "valid arguments are: %s; did you mean %qs?"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:381 common/config/arm/arm-common.cc:445
+#: common/config/arm/arm-common.cc:492 config/aarch64/aarch64.cc:18474
+#: config/aarch64/aarch64.cc:18512
+#, gcc-internal-format, gfc-internal-format
+msgid "valid arguments are: %s"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:418 common/config/arm/arm-common.cc:472
+#, gcc-internal-format, gfc-internal-format
+msgid "unrecognized %s target: %s"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:508
+#, gcc-internal-format
+msgid "unrecognized %<-mfpu%> target: %s"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:536
+#, gcc-internal-format
+msgid "%qs does not support feature %qs"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:547
+#, gcc-internal-format
+msgid "valid feature names are: %s; did you mean %qs?"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:550
+#, gcc-internal-format, gfc-internal-format
+msgid "valid feature names are: %s"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:568
+#, gcc-internal-format, gfc-internal-format
+msgid "%s does not take any feature options"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:665
+#, gcc-internal-format
+msgid "%%:%<canon_for_mlib%> takes 1 or more pairs of parameters"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:679
+#, gcc-internal-format
+msgid "unrecognized operand to %%:%<canon_for_mlib%>"
+msgstr ""
+
+#: common/config/arm/arm-common.cc:1038
+#, gcc-internal-format
+msgid "unrecognized operand to %%:%<asm_auto_mfpu%>"
+msgstr ""
+
+#: common/config/avr/avr-common.cc:87
+#, gcc-internal-format
+msgid "option %<-mdouble=64%> is only available if configured %<--with-double={64|64,32|32,64}%>"
+msgstr ""
+
+#: common/config/avr/avr-common.cc:95
+#, gcc-internal-format
+msgid "option %<-mdouble=32%> is only available if configured %<--with-double={32|32,64|64,32}%>"
+msgstr ""
+
+#: common/config/avr/avr-common.cc:111
+#, gcc-internal-format
+msgid "option %<-mlong-double=64%> is only available if configured %<--with-long-double={64|64,32|32,64}%>, or %<--with-long-double=double%> together with %<--with-double={64|64,32|32,64}%>"
+msgstr ""
+
+#: common/config/avr/avr-common.cc:120
+#, gcc-internal-format
+msgid "option %<-mlong-double=32%> is only available if configured %<--with-long-double={32|32,64|64,32}%>, or %<--with-long-double=double%> together with %<--with-double={32|32,64|64,32}%>"
+msgstr ""
+
+#: common/config/bfin/bfin-common.cc:304 common/config/m68k/m68k-common.cc:60
+#, gcc-internal-format
+msgid "%<-mshared-library-id=%s%> is not between 0 and %d"
+msgstr ""
+
+#: common/config/bfin/bfin-common.cc:323
+#, gcc-internal-format
+msgid "%<-mcpu=%s%> is not valid"
+msgstr ""
+
+#: common/config/bfin/bfin-common.cc:359
+#, gcc-internal-format
+msgid "%<-mcpu=%s%> has invalid silicon revision"
+msgstr ""
+
+#: common/config/i386/i386-common.cc:1954
+#, gcc-internal-format
+msgid "%<-malign-loops%> is obsolete, use %<-falign-loops%>"
+msgstr ""
+
+#: common/config/i386/i386-common.cc:1957
+#, gcc-internal-format
+msgid "%<-malign-loops=%d%> is not between 0 and %d"
+msgstr ""
+
+#: common/config/i386/i386-common.cc:1964
+#, gcc-internal-format
+msgid "%<-malign-jumps%> is obsolete, use %<-falign-jumps%>"
+msgstr ""
+
+#: common/config/i386/i386-common.cc:1967
+#, gcc-internal-format
+msgid "%<-malign-jumps=%d%> is not between 0 and %d"
+msgstr ""
+
+#: common/config/i386/i386-common.cc:1975
+#, gcc-internal-format
+msgid "%<-malign-functions%> is obsolete, use %<-falign-functions%>"
+msgstr ""
+
+#: common/config/i386/i386-common.cc:1978
+#, gcc-internal-format
+msgid "%<-malign-functions=%d%> is not between 0 and %d"
+msgstr ""
+
+#: common/config/i386/i386-common.cc:1987
+#, gcc-internal-format
+msgid "%<-mbranch-cost=%d%> is not between 0 and 5"
+msgstr ""
+
+#: common/config/i386/i386-common.cc:2051 common/config/s390/s390-common.cc:137
+#, gcc-internal-format
+msgid "%<-fsplit-stack%> currently only supported on GNU/Linux"
+msgstr ""
+
+#: common/config/i386/i386-common.cc:2061
+#, gcc-internal-format
+msgid "%<-fsplit-stack%> requires assembler support for CFI directives"
+msgstr ""
+
+#: common/config/ia64/ia64-common.cc:65
+#, gcc-internal-format
+msgid "bad value %<%s%> for %<-mtls-size=%> switch"
+msgstr ""
+
+#: common/config/nds32/nds32-common.cc:49
+#, gcc-internal-format
+msgid "%<-misr-vector-size=%d%> argument must be 4 or 16"
+msgstr ""
+
+#: common/config/nds32/nds32-common.cc:59
+#, gcc-internal-format
+msgid "%<-misr-secure=%d%> argument not in between 0 and 3"
+msgstr ""
+
+#: common/config/nds32/nds32-common.cc:69
+#, gcc-internal-format
+msgid "for the option %<-mcache-block-size=X%>, the valid X must be: 4, 8, 16, 32, 64, 128, 256, or 512"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:674
+#, gcc-internal-format
+msgid "%<-march=%s%>: extension %qs appear more than one time"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:683
+#, gcc-internal-format
+msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:691
+#, gcc-internal-format
+msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:699
+#, gcc-internal-format
+msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:707
+#, gcc-internal-format
+msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:955
+#, gcc-internal-format
+msgid "%<-march=%s%>: expect number after %<%dp%>"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:961
+#, gcc-internal-format
+msgid "%<-march=%s%>: for %<%s%dp%dp?%>, version number with more than 2 level is not supported"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1019
+#, gcc-internal-format
+msgid "%<-march=%s%>: ISA string must begin with rv32 or rv64"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1043
+#, gcc-internal-format
+msgid "%<-march=%s%>: rv%de is not a valid base ISA"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1055
+#, gcc-internal-format
+msgid "version of %<g%> will be omitted, please specify version for individual extension"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1074
+#, gcc-internal-format
+msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1097
+#, gcc-internal-format
+msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1228
+#, gcc-internal-format
+msgid "%<-march=%s%>: zcf extension supports in rv32 only"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1233
+#, gcc-internal-format
+msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1239
+#, gcc-internal-format
+msgid "%<-march=%s%>: h extension requires i extension"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1244
+#, gcc-internal-format
+msgid "%<-march=%s%>: zcd conflicts with zcmt"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1246
+#, gcc-internal-format
+msgid "%<-march=%s%>: zcd conflicts with zcmp"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1255
+#, gcc-internal-format
+msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1352
+#, gcc-internal-format
+msgid "%<-march=%s%>: name of %s must be more than 1 letter"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1364
+#, gcc-internal-format
+msgid "%<-march=%s%>: %s must separate with %<_%>"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1426
+#, gcc-internal-format
+msgid "%<-march=%s%>: i, e or g must be the first extension"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1759
+#, gcc-internal-format
+msgid "%<-mcpu=%s%>: unknown CPU"
+msgstr ""
+
+#: common/config/riscv/riscv-common.cc:1838
+#, gcc-internal-format
+msgid "Cannot find suitable multilib set for %<-march=%s%>/%<-mabi=%s%>"
+msgstr ""
+
+#: common/config/rs6000/rs6000-common.cc:175 config/sparc/sparc.cc:1807
+#, gcc-internal-format
+msgid "unknown %<-mdebug-%s%> switch"
+msgstr ""
+
+#: common/config/rs6000/rs6000-common.cc:214
+#, gcc-internal-format
+msgid "unknown switch %<-mlong-double-%s%>"
+msgstr ""
+
+#: common/config/rs6000/rs6000-common.cc:225
+#, gcc-internal-format
+msgid "option %<%s%> requires %<-mlong-double-128%>"
+msgstr ""
+
+#: common/config/rs6000/rs6000-common.cc:259
+#, gcc-internal-format
+msgid "%<-fsplit-stack%> currently only supported on PowerPC64 GNU/Linux with glibc-2.18 or later"
+msgstr ""
+
+#: common/config/rx/rx-common.cc:61
+#, gcc-internal-format
+msgid "the RX200 cpu does not have FPU hardware"
+msgstr ""
+
+#: common/config/rx/rx-common.cc:63
+#, gcc-internal-format
+msgid "the RX100 cpu does not have FPU hardware"
+msgstr ""
+
+#: common/config/s390/s390-common.cc:109
+#, gcc-internal-format
+msgid "stack guard value must be an exact power of 2"
+msgstr ""
+
+#: common/config/s390/s390-common.cc:114
+#, gcc-internal-format
+msgid "stack size must be an exact power of 2"
+msgstr ""
+
+#: common/config/v850/v850-common.cc:47
+#, gcc-internal-format
+msgid "value passed in %qs is too large"
+msgstr ""
+
+#: config/darwin-c.cc:81
+#, gcc-internal-format
+msgid "too many %<#pragma options align=reset%>"
+msgstr ""
+
+#: config/darwin-c.cc:101 config/darwin-c.cc:104 config/darwin-c.cc:106
+#: config/darwin-c.cc:108
+#, gcc-internal-format
+msgid "malformed %<#pragma options%>, ignoring"
+msgstr ""
+
+#: config/darwin-c.cc:111
+#, gcc-internal-format
+msgid "junk at end of %<#pragma options%>"
+msgstr ""
+
+#: config/darwin-c.cc:121
+#, gcc-internal-format
+msgid "malformed %<#pragma options align={mac68k|power|reset}%>, ignoring"
+msgstr ""
+
+#: config/darwin-c.cc:133
+#, gcc-internal-format
+msgid "missing %<(%> after %<#pragma unused%>, ignoring"
+msgstr ""
+
+#: config/darwin-c.cc:154
+#, gcc-internal-format
+msgid "missing %<)%> after %<#pragma unused%>, ignoring"
+msgstr ""
+
+#: config/darwin-c.cc:157
+#, gcc-internal-format
+msgid "junk at end of %<#pragma unused%>"
+msgstr ""
+
+#: config/darwin-c.cc:168
+#, gcc-internal-format
+msgid "malformed %<#pragma ms_struct%>, ignoring"
+msgstr ""
+
+#: config/darwin-c.cc:176
+#, gcc-internal-format
+msgid "malformed %<#pragma ms_struct {on|off|reset}%>, ignoring"
+msgstr ""
+
+#: config/darwin-c.cc:179
+#, gcc-internal-format
+msgid "junk at end of %<#pragma ms_struct%>"
+msgstr ""
+
+#: config/darwin-c.cc:405
+#, gcc-internal-format, gfc-internal-format
+msgid "subframework include %s conflicts with framework include"
+msgstr ""
+
+#: config/darwin-c.cc:709
+#, gcc-internal-format
+msgid "unknown value %qs of %<-mmacosx-version-min%>"
+msgstr ""
+
+#: config/darwin-driver.cc:147
+#, gcc-internal-format
+msgid "%<sysctl%> for %<kern.osversion%> failed: %m"
+msgstr ""
+
+#: config/darwin-driver.cc:186
+#, gcc-internal-format
+msgid "could not understand %<kern.osversion%> %q.*s"
+msgstr ""
+
+#: config/darwin-driver.cc:226
+#, gcc-internal-format
+msgid "could not understand version %qs"
+msgstr ""
+
+#: config/darwin-driver.cc:300
+#, gcc-internal-format
+msgid "this compiler does not support %qs"
+msgstr ""
+
+#: config/darwin-driver.cc:326
+#, gcc-internal-format
+msgid "%qs is not valid for %<-mmacosx-version-min%>"
+msgstr ""
+
+#: config/darwin-driver.cc:367
+#, gcc-internal-format
+msgid "this compiler does not support PowerPC (%<-arch%> option ignored)"
+msgstr ""
+
+#: config/darwin-driver.cc:374
+#, gcc-internal-format
+msgid "%qs conflicts with %<-arch i386%> (%qs ignored)"
+msgstr ""
+
+#: config/darwin-driver.cc:383
+#, gcc-internal-format
+msgid "%<-m32%> conflicts with %<-arch x86_64%> (%<-m32%> ignored)"
+msgstr ""
+
+#: config/darwin-driver.cc:390
+#, gcc-internal-format
+msgid "this compiler does not support x86 (%<-arch%> option ignored)"
+msgstr ""
+
+#: config/darwin-driver.cc:397
+#, gcc-internal-format
+msgid "%qs conflicts with %<-arch ppc%> (%qs ignored)"
+msgstr ""
+
+#: config/darwin-driver.cc:406
+#, gcc-internal-format
+msgid "%<-m32%> conflicts with %<-arch ppc64%> (%<-m32%> ignored)"
+msgstr ""
+
+#: config/darwin.cc:2089
+#, gcc-internal-format, gfc-internal-format
+msgid "failed to open temporary file %s for LTO output"
+msgstr ""
+
+#: config/darwin.cc:2181
+#, gcc-internal-format
+msgid "%qE 2.95 vtable-compatibility attribute applies only when compiling a kext"
+msgstr ""
+
+#: config/darwin.cc:2188
+#, gcc-internal-format
+msgid "%qE 2.95 vtable-compatibility attribute applies only to C++ classes"
+msgstr ""
+
+#: config/darwin.cc:2781 config/darwin.cc:2845
+#, gcc-internal-format
+msgid "common variables must have an alignment of 32678 or less"
+msgstr ""
+
+#: config/darwin.cc:2935
+#, gcc-internal-format
+msgid "protected visibility attribute not supported in this configuration; ignored"
+msgstr ""
+
+#: config/darwin.cc:3178
+#, gcc-internal-format, gfc-internal-format
+msgid "failed to open temporary file %s with LTO output"
+msgstr ""
+
+#: config/darwin.cc:3408
+#, gcc-internal-format
+msgid "%<-fobjc-abi-version%> 2 must be used for 64 bit targets with %<-fnext-runtime%>"
+msgstr ""
+
+#: config/darwin.cc:3413
+#, gcc-internal-format
+msgid "%<-fobjc-abi-version%> %d is not supported for 32 bit targets with %<-fnext-runtime%>"
+msgstr ""
+
+#: config/darwin.cc:3435
+#, gcc-internal-format
+msgid "%<-gsplit-dwarf%> is not supported on this platform, ignored"
+msgstr ""
+
+#: config/darwin.cc:3449
+#, gcc-internal-format
+msgid "%<-g3%> is not supported by the debug linker in use (set to 2)"
+msgstr ""
+
+#: config/darwin.cc:3541
+#, gcc-internal-format
+msgid "%<-mdynamic-no-pic%> overrides %<-fpic%>, %<-fPIC%>, %<-fpie%> or %<-fPIE%>"
+msgstr ""
+
+#: config/darwin.cc:3584
+#, gcc-internal-format
+msgid "%<-mpic-symbol-stubs%> is not required for 64-bit code (ignored)"
+msgstr ""
+
+#: config/darwin.cc:3787
+#, gcc-internal-format
+msgid "built-in function %qD requires the %<-mconstant-cfstrings%> flag"
+msgstr ""
+
+#: config/darwin.cc:3794
+#, gcc-internal-format
+msgid "built-in function %qD takes one argument only"
+msgstr ""
+
+#: config/darwin.cc:3838
+#, gcc-internal-format
+msgid "CFString literal is missing"
+msgstr ""
+
+#: config/darwin.cc:3849
+#, gcc-internal-format
+msgid "CFString literal expression is not a string constant"
+msgstr ""
+
+#: config/darwin.cc:3873
+#, gcc-internal-format
+msgid "non-ASCII character in CFString literal"
+msgstr ""
+
+#: config/darwin.cc:3874
+#, gcc-internal-format
+msgid "embedded NUL in CFString literal"
+msgstr ""
+
+#: config/host-darwin.cc:107
+#, gcc-internal-format
+msgid "PCH memory is not available: %m"
+msgstr ""
+
+#: config/sol2-c.cc:91 config/sol2-c.cc:107
+#, gcc-internal-format
+msgid "malformed %<#pragma align%>, ignoring"
+msgstr ""
+
+#: config/sol2-c.cc:100
+#, gcc-internal-format
+msgid "invalid alignment for %<#pragma align%>, ignoring"
+msgstr ""
+
+#: config/sol2-c.cc:115
+#, gcc-internal-format
+msgid "%<#pragma align%> must appear before the declaration of %qD, ignoring"
+msgstr ""
+
+#: config/sol2-c.cc:127 config/sol2-c.cc:139
+#, gcc-internal-format
+msgid "malformed %<#pragma align%>"
+msgstr ""
+
+#: config/sol2-c.cc:134
+#, gcc-internal-format
+msgid "junk at end of %<#pragma align%>"
+msgstr ""
+
+#: config/sol2-c.cc:155 config/sol2-c.cc:162
+#, gcc-internal-format
+msgid "malformed %<#pragma init%>, ignoring"
+msgstr ""
+
+#: config/sol2-c.cc:186 config/sol2-c.cc:198
+#, gcc-internal-format
+msgid "malformed %<#pragma init%>"
+msgstr ""
+
+#: config/sol2-c.cc:193
+#, gcc-internal-format
+msgid "junk at end of %<#pragma init%>"
+msgstr ""
+
+#: config/sol2-c.cc:214 config/sol2-c.cc:221
+#, gcc-internal-format
+msgid "malformed %<#pragma fini%>, ignoring"
+msgstr ""
+
+#: config/sol2-c.cc:245 config/sol2-c.cc:257
+#, gcc-internal-format
+msgid "malformed %<#pragma fini%>"
+msgstr ""
+
+#: config/sol2-c.cc:252
+#, gcc-internal-format
+msgid "junk at end of %<#pragma fini%>"
+msgstr ""
+
+#: config/sol2.cc:58
+#, gcc-internal-format
+msgid "ignoring %<#pragma align%> for explicitly aligned %q+D"
+msgstr ""
+
+#: config/vxworks.cc:165
+#, gcc-internal-format
+msgid "PIC is only supported for RTPs"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2123
+#, gcc-internal-format
+msgid "first argument to %qD must be a string literal"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2254
+#: config/aarch64/aarch64-builtins.cc:2488 config/arm/arm-builtins.cc:3146
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %d must be a constant immediate"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2326 config/arm/arm-builtins.cc:3494
+#, gcc-internal-format
+msgid "lane index must be a constant immediate"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2330
+#, gcc-internal-format
+msgid "total size and element size must be a nonzero constant immediate"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2578
+#, gcc-internal-format
+msgid "argument must be a 16-bit constant immediate"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2701
+#, gcc-internal-format
+msgid "128-bit system register support requires the %<d128%> extension"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2716
+#, gcc-internal-format
+msgid "invalid system register name provided"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2730
+#, gcc-internal-format
+msgid "invalid system register name %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2810
+#, gcc-internal-format
+msgid "Constant-type argument expected"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2816
+#, gcc-internal-format
+msgid "argument %d must be a constant immediate in range [%wd,%wd]"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2895
+#, gcc-internal-format
+msgid "Memory Tagging Extension does not support %<-mabi=ilp32%>"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:2930
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %d must be a constant immediate in range [0,15]"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:3728
+#: config/aarch64/aarch64-builtins.cc:3748
+#, gcc-internal-format, gfc-internal-format
+msgid "expected 64-bit address but argument 1 is %d-bit"
+msgstr ""
+
+#: config/aarch64/aarch64-builtins.cc:3732
+#, gcc-internal-format, gfc-internal-format
+msgid "expected 64-bit address but argument 2 is %d-bit"
+msgstr ""
+
+#: config/aarch64/aarch64-c.cc:347
+#, gcc-internal-format
+msgid "%<#pragma GCC aarch64%> requires a string parameter"
+msgstr ""
+
+#: config/aarch64/aarch64-c.cc:363
+#, gcc-internal-format
+msgid "unknown %<#pragma GCC aarch64%> option %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1089
+#: config/arm/arm-mve-builtins.cc:558
+#, gcc-internal-format
+msgid "ACLE function %qD requires ISA extension %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1091 config/aarch64/aarch64.cc:11151
+#: config/aarch64/aarch64.cc:18314 config/aarch64/aarch64.cc:19086
+#, gcc-internal-format
+msgid "you can enable %qs using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1111
+#, gcc-internal-format
+msgid "ACLE function %qD is incompatible with the use of %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1133
+#, gcc-internal-format
+msgid "ACLE function %qD cannot be called when SME streaming mode is enabled"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1140
+#, gcc-internal-format
+msgid "ACLE function %qD can only be called when SME streaming mode is enabled"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1147
+#, gcc-internal-format
+msgid "ACLE function %qD can only be called from a function that has %qs state"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1175
+#: config/arm/arm-mve-builtins.cc:571
+#: config/riscv/riscv-vector-builtins.cc:4246
+#, gcc-internal-format
+msgid "argument %d of %qE must be an integer constant expression"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1188
+#, gcc-internal-format
+msgid "passing %wd to argument %d of %qE, which expects the value %wd"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1191
+#: config/arm/arm-mve-builtins.cc:583
+#: config/riscv/riscv-vector-builtins.cc:4260
+#, gcc-internal-format
+msgid "passing %wd to argument %d of %qE, which expects a value in the range [%wd, %wd]"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1204
+#, gcc-internal-format
+msgid "passing %wd to argument %d of %qE, which expects either %wd or %wd"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1217
+#, gcc-internal-format
+msgid "passing %wd to argument %d of %qE, which expects %wd, %wd, %wd or %wd"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1229
+#: config/arm/arm-mve-builtins.cc:595
+#, gcc-internal-format
+msgid "passing %wd to argument %d of %qE, which expects a valid %qT value"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1762
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a single SVE vector rather than a tuple"
+msgstr ""
+
+#. num_vectors is always != 1, so the singular isn't needed.
+#: config/aarch64/aarch64-sve-builtins.cc:1768
+#: config/aarch64/aarch64-sve-builtins.cc:1774
+#: config/arm/arm-mve-builtins.cc:1205 config/arm/arm-mve-builtins.cc:1211
+#, gcc-internal-format
+msgid "%qT%d%qE%d"
+msgid_plural "passing single vector %qT to argument %d of %qE, which expects a tuple of %d vectors"
+msgstr[0] ""
+msgstr[1] ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1806
+#, gcc-internal-format
+msgid "passing tuple %qT to argument %d of %qE after passing single vector %qT to argument %d"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1811
+#, gcc-internal-format
+msgid "passing single vector %qT to argument %d of %qE after passing tuple %qT to argument %d"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1816
+#, gcc-internal-format
+msgid "passing mismatched tuple types %qT and %qT to arguments %d and %d of %qE"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1827
+#: config/arm/arm-mve-builtins.cc:1104
+#, gcc-internal-format
+msgid "%qE has no form that takes %qT arguments"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1888
+#, gcc-internal-format
+msgid "%qE has no form that takes %qT and %qT arguments"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1950
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects an %qs or %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:1981
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a 32-bit or 64-bit integer type"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2000
+#, gcc-internal-format
+msgid "passing %qT and %qT to arguments %d and %d of %qE, which expects a pair of 64-bit integers"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2024
+#, gcc-internal-format
+msgid "passing mismatched integer types %qT and %qT to arguments %d and %d of %qE"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2045
+#: config/arm/arm-mve-builtins.cc:1157
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a pointer type"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2048
+#, gcc-internal-format
+msgid "an explicit type suffix is needed when using a vector of base addresses"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2057
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, but %qT is not a valid SVE element type"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2065
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a pointer to 32-bit or 64-bit elements"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2107
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects an SVE type rather than a scalar type"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2111
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects an SVE type"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2156
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a vector of integers"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2186
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a 128 bit NEON vector type"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2203
+#: config/aarch64/aarch64-sve-builtins.cc:2501
+#: config/arm/arm-mve-builtins.cc:1403
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a vector of unsigned integers"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2224
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a vector of 32-bit or 64-bit elements"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2266
+#, gcc-internal-format
+msgid "operations on multiple vectors must be predicated by %qs rather than %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2269
+#, gcc-internal-format
+msgid "operations on single vectors must be predicated by %qs rather than %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2285
+#: config/arm/arm-mve-builtins.cc:1248
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a vector or scalar type"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2307
+#: config/aarch64/aarch64-sve-builtins.cc:2958
+#: config/arm/arm-mve-builtins.cc:1270
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2334
+#: config/aarch64/aarch64-sve-builtins.cc:2450
+#: config/aarch64/aarch64-sve-builtins.cc:2579
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, but argument %d had type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2445
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, but argument %d was a tuple of %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2469
+#: config/arm/arm-mve-builtins.cc:1384
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a vector of %d-bit elements"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2474
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects vectors of %d-bit elements"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2487
+#: config/arm/arm-mve-builtins.cc:1396
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a vector of signed integers"
+msgstr ""
+
+#. Translation note: could also be written "expects a tuple of
+#. signed integer vectors".
+#: config/aarch64/aarch64-sve-builtins.cc:2493
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects vectors of signed integers"
+msgstr ""
+
+#. Translation note: could also be written "expects a tuple of
+#. unsigned integer vectors".
+#: config/aarch64/aarch64-sve-builtins.cc:2507
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects vectors of unsigned integers"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2527
+#: config/arm/arm-mve-builtins.cc:1423
+#, gcc-internal-format
+msgid "arguments %d and %d of %qE must have the same element size, but the values passed here have type %qT and %qT respectively"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2547
+#: config/arm/arm-mve-builtins.cc:1444
+#, gcc-internal-format
+msgid "arguments %d and %d of %qE must have the same signedness, but the values passed here have type %qT and %qT respectively"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2558
+#: config/arm/arm-mve-builtins.cc:1455
+#, gcc-internal-format
+msgid "passing %qT instead of the expected %qT to argument %d of %qE, after passing %qT to argument %d"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2598
+#: config/arm/arm-mve-builtins.cc:1540
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2616
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which does not accept scalars for this combination of arguments"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2632
+#: config/arm/arm-mve-builtins.cc:1556
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a scalar pointer"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2655
+#, gcc-internal-format
+msgid "call to %qE is ambiguous; argument %d has type %qs but argument %d has type %qs"
+msgstr ""
+
+#. It doesn't really matter whether the element is expected to be
+#. the same size as type suffix 0.
+#: config/aarch64/aarch64-sve-builtins.cc:2700
+#: config/arm/arm-mve-builtins.cc:1501
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a scalar element"
+msgstr ""
+
+#. It doesn't seem useful to distinguish between signed and unsigned
+#. scalars here.
+#: config/aarch64/aarch64-sve-builtins.cc:2706
+#: config/arm/arm-mve-builtins.cc:1507
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a scalar integer"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2742
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects %qs or %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2762
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a vector of 32-bit or 64-bit integers"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2812
+#, gcc-internal-format
+msgid "when storing %qT, %qE requires a vector base and a scalar index"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2817
+#, gcc-internal-format
+msgid "%qE requires a vector base and a scalar index"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2821
+#, gcc-internal-format
+msgid "%qE does not support 32-bit vector type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2849
+#, gcc-internal-format
+msgid "%qE does not support 32-bit sign-extended offsets"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2852
+#, gcc-internal-format
+msgid "%qE does not support sign-extended offsets"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2865
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which when loading %qT expects a vector of %d-bit integers"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2870
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which when storing %qT expects a vector of %d-bit integers"
+msgstr ""
+
+#. TYPE is part of the function name.
+#: config/aarch64/aarch64-sve-builtins.cc:2877
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a vector of %d-bit integers"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:2925
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a vector or pointer base address"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:3009
+#, gcc-internal-format
+msgid "cannot combine a base of type %qT with an offset of type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:3013
+#, gcc-internal-format
+msgid "cannot combine a base of type %qT with an index of type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:3102
+#: config/arm/arm-mve-builtins.cc:1666
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, but its %qT form does not accept scalars"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:3166
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, but its %qT form does not accept single vectors"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:4660
+#: config/arm/arm-mve-builtins.cc:466 config/arm/arm-mve-builtins.cc:491
+#: config/riscv/riscv-vector-builtins.cc:4589
+#, gcc-internal-format
+msgid "duplicate definition of %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:4717
+#, gcc-internal-format
+msgid "%qs defined without first defining %qs"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:4868
+#, gcc-internal-format
+msgid "%qs applied to non-SVE type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:4874
+#, gcc-internal-format
+msgid "%qs applied to non-vector type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:4881
+#, gcc-internal-format
+msgid "%qs applied to type %qT, which already has a size"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:4889
+#, gcc-internal-format
+msgid "%qs requires an integer constant expression"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:4897
+#, gcc-internal-format
+msgid "unsupported SVE vector size"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5011
+#, gcc-internal-format
+msgid "SVE type %qT does not have a fixed size"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5016
+#, gcc-internal-format
+msgid "SVE type %qT does not have a defined alignment"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5021
+#: config/riscv/riscv-vector-builtins.cc:4501
+#, gcc-internal-format
+msgid "variables of type %qT cannot have thread-local storage duration"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5027
+#, gcc-internal-format
+msgid "arithmetic on pointer to SVE type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5034
+#, gcc-internal-format
+msgid "member variables cannot have SVE type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5036
+#, gcc-internal-format
+msgid "fields cannot have SVE type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5041
+#, gcc-internal-format
+msgid "array elements cannot have SVE type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5046
+#, gcc-internal-format
+msgid "cannot allocate objects with SVE type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5051
+#, gcc-internal-format
+msgid "cannot delete objects with SVE type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5056
+#, gcc-internal-format
+msgid "cannot throw or catch SVE type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64-sve-builtins.cc:5061
+#, gcc-internal-format
+msgid "capture by copy of SVE type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:637
+#, gcc-internal-format
+msgid "the arguments to %qE must be constant strings"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:645
+#, gcc-internal-format
+msgid "unrecognized state string %qs"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:729
+#, gcc-internal-format
+msgid "the %qE attribute cannot be applied to an SVE function type"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:756
+#, gcc-internal-format
+msgid "cannot create a new %qs scope since %qs is shared with callers"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:772
+#, gcc-internal-format
+msgid "%qE attribute applies only to function definitions"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:818
+#, gcc-internal-format
+msgid "inconsistent attributes for state %qs"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:1307
+#, gcc-internal-format
+msgid "%qs is incompatible with the use of floating-point types"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:1310
+#, gcc-internal-format
+msgid "%qs is incompatible with the use of vector types"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:1314
+#, gcc-internal-format
+msgid "%qs feature modifier is incompatible with the use of floating-point types"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:1317
+#, gcc-internal-format
+msgid "%qs feature modifier is incompatible with the use of vector types"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:1333
+#, gcc-internal-format
+msgid "this operation requires the SVE ISA extension"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:1334
+#, gcc-internal-format
+msgid "you can enable SVE using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
+msgstr ""
+
+#. We can't gracefully recover at this point, so make this a
+#. fatal error.
+#: config/aarch64/aarch64.cc:6403
+#, gcc-internal-format
+msgid "arguments of type %qT require the SVE ISA extension"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:6880
+#, gcc-internal-format
+msgid "SVE type %qT cannot be passed to an unprototyped function"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:7021 config/aarch64/aarch64.cc:7100
+#: config/aarch64/aarch64.cc:21321
+#, gcc-internal-format
+msgid "parameter passing for argument of type %qT changed in GCC 13.1"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:7028 config/aarch64/aarch64.cc:7107
+#: config/aarch64/aarch64.cc:21328
+#, gcc-internal-format
+msgid "parameter passing for argument of type %qT changed in GCC 14.1"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
+#: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
+#: config/arm/arm.cc:7372 config/arm/arm.cc:29548
+#, gcc-internal-format
+msgid "parameter passing for argument of type %qT changed in GCC 9.1"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:7240
+#, gcc-internal-format
+msgid "%qE requires the SVE ISA extension"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:7243
+#, gcc-internal-format
+msgid "calls to functions of type %qT require the SVE ISA extension"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:7431
+#, gcc-internal-format
+msgid "stack probes for SVE frames"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:11149
+#, gcc-internal-format
+msgid "calling a streaming function requires the ISA extension %qs"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:11158 config/aarch64/aarch64.cc:11162
+#, gcc-internal-format
+msgid "call to a function that shares %qs state from a function that has no %qs state"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:11165
+#, gcc-internal-format
+msgid "call to a function that shares SME state from a function that has no SME state"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:11223
+#, gcc-internal-format
+msgid "call to a function that shares state other than %qs from a function that has %qs state"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:11225
+#, gcc-internal-format
+msgid "use %<__arm_preserves(\"za\")%> if the callee preserves ZA"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:17932
+#, gcc-internal-format
+msgid "unknown flag passed in %<-moverride=%s%> (%s)"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:17976
+#, gcc-internal-format
+msgid "%qs string ill-formed"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18032
+#, gcc-internal-format
+msgid "invalid format for %<sve_width%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18044
+#, gcc-internal-format
+msgid "invalid %<sve_width%> value: %d"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18064
+#, gcc-internal-format, gfc-internal-format
+msgid "tuning string missing in option (%s)"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18082
+#, gcc-internal-format, gfc-internal-format
+msgid "unknown tuning option (%s)"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18270 config/arm/arm.cc:3227
+#: config/riscv/riscv.cc:9369
+#, gcc-internal-format
+msgid "incompatible options %<-mstack-protector-guard=global%> and %<-mstack-protector-guard-offset=%s%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18279 config/riscv/riscv.cc:9378
+#, gcc-internal-format
+msgid "both %<-mstack-protector-guard-offset%> and %<-mstack-protector-guard-reg%> must be used with %<-mstack-protector-guard=sysreg%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18287
+#, gcc-internal-format
+msgid "specify a system register with a small string length"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18297 config/arm/arm.cc:3239
+#: config/riscv/riscv.cc:9407 config/rs6000/rs6000.cc:4497
+#, gcc-internal-format
+msgid "%qs is not a valid offset in %qs"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18304
+#, gcc-internal-format
+msgid "%<-fsanitize=shadow-call-stack%> requires %<-ffixed-x18%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18310
+#, gcc-internal-format
+msgid "streaming functions require the ISA extension %qs"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18312
+#, gcc-internal-format
+msgid "functions with SME state require the ISA extension %qs"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18406
+#, gcc-internal-format
+msgid "only values 12 (4 KB) and 16 (64 KB) are supported for guard size.  Given value %d (%llu KB) is out of range"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18422
+#, gcc-internal-format
+msgid "stack clash guard size %<%d%> must be equal to probing interval %<%d%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18536
+#, gcc-internal-format
+msgid "missing cpu name in %<-mcpu=%s%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18546
+#, gcc-internal-format
+msgid "did you mean %<-march=%s%>?"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18549
+#, gcc-internal-format
+msgid "invalid feature modifier %qs in %<-mcpu=%s%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18608
+#, gcc-internal-format
+msgid "invalid argument given to %<-mharden-sls=%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18619
+#, gcc-internal-format
+msgid "%qs must be by itself for %<-mharden-sls=%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18624
+#, gcc-internal-format
+msgid "invalid argument %<%s%> for %<-mharden-sls=%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18652
+#, gcc-internal-format
+msgid "missing arch name in %<-march=%s%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18655
+#, gcc-internal-format
+msgid "unknown value %qs for %<-march%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18661
+#, gcc-internal-format
+msgid "did you mean %<-mcpu=%s%>?"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18664
+#, gcc-internal-format
+msgid "invalid feature modifier %qs in %<-march=%s%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18692
+#, gcc-internal-format
+msgid "missing cpu name in %<-mtune=%s%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18695
+#, gcc-internal-format
+msgid "unknown value %qs for %<-mtune%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18847
+#, gcc-internal-format
+msgid "switch %<-mcpu=%s%> conflicts with %<-march=%s%> switch and resulted in options %<%s%> being added"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18903
+#, gcc-internal-format
+msgid "assembler does not support %<-mabi=ilp32%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18910
+#, gcc-internal-format
+msgid "return address signing is only supported for %<-mabi=lp64%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18983
+#, gcc-internal-format
+msgid "code model %qs with %<-f%s%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:18986
+#, gcc-internal-format
+msgid "code model %qs not supported in ilp32 mode"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19084
+#, gcc-internal-format
+msgid "functions with %qs state require the ISA extension %qs"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19187
+#, gcc-internal-format
+msgid "missing name in %<target(\"arch=\")%> pragma or attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19190
+#, gcc-internal-format
+msgid "invalid name %qs in %<target(\"arch=\")%> pragma or attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19194
+#, gcc-internal-format
+msgid "invalid feature modifier %s of value %qs in %<target()%> pragma or attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19228
+#, gcc-internal-format
+msgid "missing name in %<target(\"cpu=\")%> pragma or attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19231
+#, gcc-internal-format
+msgid "invalid name %qs in %<target(\"cpu=\")%> pragma or attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19235 config/aarch64/aarch64.cc:19319
+#, gcc-internal-format
+msgid "invalid feature modifier %qs of value %qs in %<target()%> pragma or attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19274
+#, gcc-internal-format
+msgid "invalid name %qs in %<target(\"tune=\")%> pragma or attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19315
+#, gcc-internal-format
+msgid "missing value in %<target()%> pragma or attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19373 config/aarch64/aarch64.cc:19546
+#, gcc-internal-format
+msgid "malformed %<target()%> pragma or attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19417
+#, gcc-internal-format
+msgid "pragma or attribute %<target(\"%s\")%> does not accept an argument"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19425 config/i386/i386-options.cc:1303
+#, gcc-internal-format
+msgid "pragma or attribute %<target(\"%s\")%> does not allow a negated form"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19479
+#, gcc-internal-format
+msgid "pragma or attribute %<target(\"%s=%s\")%> is not valid"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19536 config/arm/arm.cc:33805
+#: config/riscv/riscv-target-attr.cc:331 config/rs6000/rs6000.cc:24699
+#: config/s390/s390.cc:16422
+#, gcc-internal-format
+msgid "attribute %<target%> argument not a string"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19571
+#, gcc-internal-format
+msgid "arch extension %<%s%> should be prefixed by %<+%>"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19574
+#, gcc-internal-format
+msgid "pragma or attribute %<target(\"%s\")%> is not valid"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19583
+#, gcc-internal-format
+msgid "malformed %<target(\"%s\")%> pragma or attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19801
+#, gcc-internal-format
+msgid "attribute %<target_version%> has multiple values"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19809
+#, gcc-internal-format
+msgid "attribute %<target_version%> argument not a string"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19831
+#, gcc-internal-format
+msgid "missing value in %<target_version%> attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19835
+#, gcc-internal-format
+msgid "invalid feature modifier %qs of value %qs in %<target_version%> attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:19841
+#, gcc-internal-format
+msgid "duplicate feature modifier %qs of value %qs in %<target_version%> attribute"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:20420 config/i386/i386-features.cc:3521
+#: config/i386/i386-features.cc:3790
+#, gcc-internal-format
+msgid "virtual function multiversioning not supported"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:20541 config/i386/i386-features.cc:3654
+#: config/rs6000/rs6000.cc:25389
+#, gcc-internal-format
+msgid "multiversioning needs %<ifunc%> which is not supported on this target"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:22089 config/arm/arm.cc:6690
+#: config/rs6000/rs6000-call.cc:366 config/s390/s390.cc:12779
+msgid "parameter passing for argument of type %qT with %<[[no_unique_address]]%> members changed %{in GCC 10.1%}"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:22094 config/arm/arm.cc:6695
+#: config/rs6000/rs6000-call.cc:361 config/s390/s390.cc:12774
+msgid "parameter passing for argument of type %qT when C++17 is enabled changed to match C++14 %{in GCC 10.1%}"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:22099 config/arm/arm.cc:6700
+msgid "parameter passing for argument of type %qT changed %{in GCC 12.1%}"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:23323 config/aarch64/aarch64.cc:23326
+#, gcc-internal-format
+msgid "lane %wd out of range %wd - %wd"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:28749 config/i386/i386.cc:25293
+#: config/i386/i386.cc:25424
+#, gcc-internal-format
+msgid "unsupported simdlen %wd"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:28763
+#, gcc-internal-format
+msgid "GCC does not currently support return type %qT for simd"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
+#, gcc-internal-format
+msgid "unsupported return type %qT for simd"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:28797
+#, gcc-internal-format
+msgid "GCC does not currently support argument type %qT for simd"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
+#, gcc-internal-format
+msgid "unsupported argument type %qT for simd"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:28850
+#, gcc-internal-format
+msgid "GCC does not currently support simdlen %wd for type %qT"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:28871
+#, gcc-internal-format
+msgid "GCC does not currently support a simdclone with simdlens %wd and %wd for these types."
+msgstr ""
+
+#: config/aarch64/aarch64.cc:28961
+#, gcc-internal-format
+msgid "cannot apply attribute %qs to %q+D after the function has been defined"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:28963
+#, gcc-internal-format
+msgid "%q+D defined here"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:29421
+#, gcc-internal-format
+msgid "non-local gotos in functions with SME state"
+msgstr ""
+
+#: config/aarch64/aarch64.cc:29730
+#, gcc-internal-format
+msgid "catching non-call exceptions in functions with SME state"
+msgstr ""
+
+#: config/alpha/alpha.cc:420
+#, gcc-internal-format
+msgid "bad value %qs for %<-mtrap-precision%> switch"
+msgstr ""
+
+#: config/alpha/alpha.cc:435
+#, gcc-internal-format
+msgid "bad value %qs for %<-mfp-rounding-mode%> switch"
+msgstr ""
+
+#: config/alpha/alpha.cc:450
+#, gcc-internal-format
+msgid "bad value %qs for %<-mfp-trap-mode%> switch"
+msgstr ""
+
+#: config/alpha/alpha.cc:468
+#, gcc-internal-format
+msgid "bad value %qs for %<-mcpu%> switch"
+msgstr ""
+
+#: config/alpha/alpha.cc:483
+#, gcc-internal-format
+msgid "bad value %qs for %<-mtune%> switch"
+msgstr ""
+
+#: config/alpha/alpha.cc:501
+#, gcc-internal-format
+msgid "fp software completion requires %<-mtrap-precision=i%>"
+msgstr ""
+
+#: config/alpha/alpha.cc:517
+#, gcc-internal-format
+msgid "rounding mode not supported for VAX floats"
+msgstr ""
+
+#: config/alpha/alpha.cc:522
+#, gcc-internal-format
+msgid "trap mode not supported for VAX floats"
+msgstr ""
+
+#: config/alpha/alpha.cc:526
+#, gcc-internal-format
+msgid "128-bit %<long double%> not supported for VAX floats"
+msgstr ""
+
+#: config/alpha/alpha.cc:554
+#, gcc-internal-format, gfc-internal-format
+msgid "L%d cache latency unknown for %s"
+msgstr ""
+
+#: config/alpha/alpha.cc:569
+#, gcc-internal-format
+msgid "bad value %qs for %<-mmemory-latency%>"
+msgstr ""
+
+#: config/alpha/alpha.cc:6671 config/alpha/alpha.cc:6674 config/arc/arc.cc:6981
+#: config/arc/arc.cc:7255 config/s390/s390.cc:960
+#, gcc-internal-format
+msgid "bad builtin fcode"
+msgstr ""
+
+#: config/arc/arc.cc:1003
+#, gcc-internal-format
+msgid "%<-mno-mpy%> supported only for ARC700 or ARCv2"
+msgstr ""
+
+#: config/arc/arc.cc:1006
+#, gcc-internal-format
+msgid "%<-mno-dpfp-lrsr%> supported only with %<-mdpfp%>"
+msgstr ""
+
+#: config/arc/arc.cc:1011
+#, gcc-internal-format
+msgid "FPX fast and compact options cannot be specified together"
+msgstr ""
+
+#: config/arc/arc.cc:1015
+#, gcc-internal-format
+msgid "%<-mspfp_fast%> not available on ARC600 or ARC601"
+msgstr ""
+
+#: config/arc/arc.cc:1020
+#, gcc-internal-format
+msgid "no FPX/FPU mixing allowed"
+msgstr ""
+
+#: config/arc/arc.cc:1025
+#, gcc-internal-format
+msgid "PIC is not supported for %qs"
+msgstr ""
+
+#: config/arc/arc.cc:1061
+#, gcc-internal-format
+msgid "missing dash"
+msgstr ""
+
+#: config/arc/arc.cc:1073
+#, gcc-internal-format
+msgid "first register must be R0"
+msgstr ""
+
+#: config/arc/arc.cc:1093
+#, gcc-internal-format, gfc-internal-format
+msgid "last register name %s must be an odd register"
+msgstr ""
+
+#: config/arc/arc.cc:1102 config/ia64/ia64.cc:6062 config/pa/pa.cc:488
+#: config/sh/sh.cc:8293
+#, gcc-internal-format, gfc-internal-format
+msgid "%s-%s is an empty range"
+msgstr ""
+
+#: config/arc/arc.cc:1152
+#, gcc-internal-format
+msgid "invalid number in %<-mrgf-banked-regs=%s%> valid values are 0, 4, 8, 16, or 32"
+msgstr ""
+
+#: config/arc/arc.cc:1214
+#, gcc-internal-format
+msgid "option %<-mirq-ctrl-saved%> valid only for ARC v2 processors"
+msgstr ""
+
+#: config/arc/arc.cc:1223
+#, gcc-internal-format
+msgid "option %<-mrgf-banked-regs%> valid only for ARC v2 processors"
+msgstr ""
+
+#. Check options against architecture options.  Throw an error if
+#. option is not allowed.  Extra, check options against default
+#. architecture/cpu flags and throw an warning if we find a
+#. mismatch.
+#. TRANSLATORS: the DOC/DOC0/DOC1 are strings which shouldn't be
+#. translated.  They are like keywords which one can relate with the
+#. architectural choices taken for an ARC CPU implementation.
+#: config/arc/arc.cc:1267
+#, gcc-internal-format
+msgid "option %<%s=%s%> is not available for %qs CPU"
+msgstr ""
+
+#: config/arc/arc.cc:1272
+#, gcc-internal-format
+msgid "option %qs is ignored, the default value %qs is considered for %qs CPU"
+msgstr ""
+
+#: config/arc/arc.cc:1280
+#, gcc-internal-format
+msgid "option %qs is not available for %qs CPU"
+msgstr ""
+
+#: config/arc/arc.cc:1285
+#, gcc-internal-format
+msgid "unset option %qs is ignored, it is always enabled for %qs CPU"
+msgstr ""
+
+#: config/arc/arc.cc:1857
+#, gcc-internal-format, gfc-internal-format
+msgid "multiply option implies r%d is fixed"
+msgstr ""
+
+#: config/arc/arc.cc:2005 config/epiphany/epiphany.cc:505
+#: config/epiphany/epiphany.cc:547
+#, gcc-internal-format
+msgid "argument of %qE attribute is not a string constant"
+msgstr ""
+
+#: config/arc/arc.cc:2014
+#, gcc-internal-format
+msgid "argument of %qE attribute is not \"ilink1\" or \"ilink2\""
+msgstr ""
+
+#: config/arc/arc.cc:2023
+#, gcc-internal-format
+msgid "argument of %qE attribute is not \"ilink\" or \"firq\""
+msgstr ""
+
+#: config/arc/arc.cc:2037 config/arm/arm.cc:7483 config/arm/arm.cc:7501
+#: config/arm/arm.cc:7680 config/avr/avr.cc:11273 config/avr/avr.cc:11287
+#: config/bfin/bfin.cc:4695 config/bfin/bfin.cc:4756 config/bfin/bfin.cc:4786
+#: config/bpf/bpf.cc:93 config/csky/csky.cc:6459 config/csky/csky.cc:6487
+#: config/epiphany/epiphany.cc:488 config/gcn/gcn.cc:379
+#: config/h8300/h8300.cc:4948 config/i386/i386-options.cc:3732
+#: config/i386/i386-options.cc:3909 config/i386/i386-options.cc:3965
+#: config/i386/i386-options.cc:4016 config/i386/i386-options.cc:4053
+#: config/m68k/m68k.cc:796 config/mcore/mcore.cc:3067
+#: config/nvptx/nvptx.cc:5801 config/riscv/riscv.cc:5784
+#: config/rl78/rl78.cc:820 config/rl78/rl78.cc:889
+#: config/rs6000/rs6000.cc:20650 config/rx/rx.cc:2728 config/rx/rx.cc:2754
+#: config/s390/s390.cc:1175 config/s390/s390.cc:1262 config/sh/sh.cc:8429
+#: config/sh/sh.cc:8447 config/sh/sh.cc:8471 config/sh/sh.cc:8542
+#: config/sh/sh.cc:8565 config/stormy16/stormy16.cc:2403
+#: config/v850/v850.cc:2010 config/visium/visium.cc:724
+#, gcc-internal-format
+msgid "%qE attribute only applies to functions"
+msgstr ""
+
+#: config/arc/arc.cc:6880
+#, gcc-internal-format
+msgid "%<__builtin_arc_aligned%> with non-constant alignment"
+msgstr ""
+
+#: config/arc/arc.cc:6888
+#, gcc-internal-format
+msgid "invalid alignment value for %<__builtin_arc_aligned%>"
+msgstr ""
+
+#: config/arc/arc.cc:7051
+#, gcc-internal-format
+msgid "operand 1 should be an unsigned 3-bit immediate"
+msgstr ""
+
+#: config/arc/arc.cc:7092 config/arc/arc.cc:7189
+#, gcc-internal-format
+msgid "operand 2 should be an unsigned 3-bit value (I0-I7)"
+msgstr ""
+
+#: config/arc/arc.cc:7125 config/arc/arc.cc:7157
+#, gcc-internal-format
+msgid "operand 1 should be an unsigned 3-bit value (I0-I7)"
+msgstr ""
+
+#: config/arc/arc.cc:7129 config/arc/arc.cc:7161
+#, gcc-internal-format
+msgid "operand 2 should be an unsigned 8-bit value"
+msgstr ""
+
+#: config/arc/arc.cc:7193
+#, gcc-internal-format
+msgid "operand 3 should be an unsigned 8-bit value"
+msgstr ""
+
+#: config/arc/arc.cc:7226
+#, gcc-internal-format
+msgid "operand 4 should be an unsigned 8-bit value (0-255)"
+msgstr ""
+
+#: config/arc/arc.cc:7230
+#, gcc-internal-format
+msgid "operand 3 should be an unsigned 3-bit value (I0-I7)"
+msgstr ""
+
+#: config/arc/arc.cc:7237
+#, gcc-internal-format
+msgid "operand 2 should be an unsigned 3-bit value (subreg 0-7)"
+msgstr ""
+
+#: config/arc/arc.cc:7240
+#, gcc-internal-format
+msgid "operand 2 should be an even 3-bit value (subreg 0,2,4,6)"
+msgstr ""
+
+#: config/arc/arc.cc:7287
+#, gcc-internal-format, gfc-internal-format
+msgid "builtin requires an immediate for operand %d"
+msgstr ""
+
+#: config/arc/arc.cc:7292
+#, gcc-internal-format, gfc-internal-format
+msgid "operand %d should be a 6 bit unsigned immediate"
+msgstr ""
+
+#: config/arc/arc.cc:7296
+#, gcc-internal-format, gfc-internal-format
+msgid "operand %d should be a 8 bit unsigned immediate"
+msgstr ""
+
+#: config/arc/arc.cc:7300
+#, gcc-internal-format, gfc-internal-format
+msgid "operand %d should be a 3 bit unsigned immediate"
+msgstr ""
+
+#: config/arc/arc.cc:7303
+#, gcc-internal-format, gfc-internal-format
+msgid "unknown builtin immediate operand type for operand %d"
+msgstr ""
+
+#: config/arc/arc.cc:7394
+#, gcc-internal-format
+msgid "register number must be a compile-time constant.  Try giving higher optimization levels"
+msgstr ""
+
+#: config/arc/arc.cc:8467
+#, gcc-internal-format
+msgid "insn addresses not set after shorten branches"
+msgstr ""
+
+#: config/arc/arc.cc:8682
+#, gcc-internal-format
+msgid "insn addresses not freed"
+msgstr ""
+
+#: config/arc/arc.cc:10838
+#, gcc-internal-format
+msgid "%qE attribute only valid for ARCv2 architecture"
+msgstr ""
+
+#: config/arc/arc.cc:10846 config/arc/arc.cc:10885
+#, gcc-internal-format
+msgid "argument of %qE attribute is missing"
+msgstr ""
+
+#: config/arc/arc.cc:10857 config/arc/arc.cc:10896 config/arc/arc.cc:11022
+#: config/avr/avr.cc:11347
+#, gcc-internal-format
+msgid "%qE attribute allows only an integer constant argument"
+msgstr ""
+
+#: config/arc/arc.cc:10877
+#, gcc-internal-format
+msgid "%qE attribute only valid for ARC EM architecture"
+msgstr ""
+
+#: config/arc/arc.cc:10932
+#, gcc-internal-format
+msgid "%qE attribute only applies to types"
+msgstr ""
+
+#: config/arc/arc.cc:10938
+#, gcc-internal-format
+msgid "argument of %qE attribute ignored"
+msgstr ""
+
+#: config/arc/arc.cc:11012 config/avr/avr.cc:11334 config/bfin/bfin.cc:4818
+#: config/i386/winnt.cc:63 config/nvptx/nvptx.cc:5824
+#, gcc-internal-format
+msgid "%qE attribute only applies to variables"
+msgstr ""
+
+#: config/arm/aarch-common.cc:553 config/i386/i386.cc:24044
+#, gcc-internal-format
+msgid "alternatives not allowed in %<asm%> flag output"
+msgstr ""
+
+#: config/arm/aarch-common.cc:614 config/i386/i386.cc:24108
+#, gcc-internal-format
+msgid "unknown %<asm%> flag output %qs"
+msgstr ""
+
+#: config/arm/aarch-common.cc:624 config/i386/i386.cc:24137
+#, gcc-internal-format
+msgid "invalid type for %<asm%> flag output"
+msgstr ""
+
+#: config/arm/aarch-common.cc:714
+#, gcc-internal-format
+msgid "missing feature or flag for %<%s%>"
+msgstr ""
+
+#: config/arm/aarch-common.cc:716
+#, gcc-internal-format
+msgid "invalid argument %<%s%> for %<%s%>"
+msgstr ""
+
+#: config/arm/aarch-common.cc:727
+#, gcc-internal-format
+msgid "argument %<%s%> can only appear alone in %<%s%>"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3125
+#, gcc-internal-format, gfc-internal-format
+msgid "coprocessor %d is not enabled with +cdecp%d"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3129
+#, gcc-internal-format
+msgid "coproc must be a constant immediate in range [0-%d] enabled with %<+cdecp<N>%>"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3138
+#, gcc-internal-format
+msgid "argument %d to %qE must be a constant immediate in range [0-%d]"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3257
+#, gcc-internal-format
+msgid "this builtin is not supported for this target"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3372
+#, gcc-internal-format
+msgid "saturation bit range must be in the range [%wd, %wd]"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3377
+#, gcc-internal-format
+msgid "saturation bit range must be a constant immediate"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3401
+#, gcc-internal-format
+msgid "You must enable MVE instructions to use these intrinsics"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3423
+#, gcc-internal-format
+msgid "You must enable NEON instructions (e.g. %<-mfloat-abi=softfp%> %<-mfpu=neon%>) to use these intrinsics."
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3445
+#, gcc-internal-format
+msgid "You must enable VFP instructions to use these intrinsics."
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3516
+#, gcc-internal-format
+msgid "You must enable crypto instructions (e.g. include %<-mfloat-abi=softfp%> %<-mfpu=crypto-neon%>) to use these intrinsics."
+msgstr ""
+
+#. @@@ better error message
+#: config/arm/arm-builtins.cc:3594 config/arm/arm-builtins.cc:3698
+#, gcc-internal-format
+msgid "selector must be an immediate"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3602 config/arm/arm-builtins.cc:3647
+#: config/arm/arm-builtins.cc:3705 config/arm/arm-builtins.cc:3714
+#, gcc-internal-format
+msgid "the range of selector should be in 0 to 7"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3607 config/arm/arm-builtins.cc:3716
+#, gcc-internal-format
+msgid "the range of selector should be in 0 to 3"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3612 config/arm/arm-builtins.cc:3718
+#, gcc-internal-format
+msgid "the range of selector should be in 0 to 1"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3784
+#, gcc-internal-format
+msgid "mask must be an immediate"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3789
+#, gcc-internal-format
+msgid "the range of mask should be in 0 to 255"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3977
+#, gcc-internal-format
+msgid "the range of count should be in 0 to 32; please check the intrinsic %qs in code"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3985
+#, gcc-internal-format
+msgid "the range of count should be in 0 to 16; please check the intrinsic %qs in code"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:3993
+#, gcc-internal-format
+msgid "the range of count should be in 0 to 64; please check the intrinsic %qs in code"
+msgstr ""
+
+#: config/arm/arm-builtins.cc:4056
+#, gcc-internal-format
+msgid "the count should be no less than 0; please check the intrinsic %qs in code"
+msgstr ""
+
+#: config/arm/arm-c.cc:108
+#, gcc-internal-format
+msgid "argument %u to function %qE is of type %qT which is not known to be 128 bits wide"
+msgstr ""
+
+#: config/arm/arm-c.cc:140
+#, gcc-internal-format
+msgid "%<#pragma GCC arm%> requires a string parameter"
+msgstr ""
+
+#: config/arm/arm-c.cc:156
+#, gcc-internal-format
+msgid "%<#pragma GCC arm \"arm_mve.h\"%> requires a boolean parameter"
+msgstr ""
+
+#: config/arm/arm-c.cc:160
+#, gcc-internal-format
+msgid "unknown %<#pragma GCC arm%> option %qs"
+msgstr ""
+
+#: config/arm/arm-mve-builtins.cc:472
+#, gcc-internal-format
+msgid "this definition requires the MVE ISA extension"
+msgstr ""
+
+#: config/arm/arm-mve-builtins.cc:560
+#, gcc-internal-format
+msgid "you can enable mve.fp by using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
+msgstr ""
+
+#: config/arm/arm-mve-builtins.cc:1166
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, but %qT is not a valid MVE element type"
+msgstr ""
+
+#: config/arm/arm-mve-builtins.cc:1200
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects a single MVE vector rather than a tuple"
+msgstr ""
+
+#: config/arm/arm-mve-builtins.cc:1220
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects an MVE vector type"
+msgstr ""
+
+#: config/arm/arm-mve-builtins.cc:1223
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, which expects an MVE tuple type"
+msgstr ""
+
+#: config/arm/arm-mve-builtins.cc:1290
+#, gcc-internal-format
+msgid "passing %qT to argument %d of %qE, but previous arguments had type %qT"
+msgstr ""
+
+#: config/arm/arm.cc:2980
+#, gcc-internal-format
+msgid "iWMMXt and NEON are incompatible"
+msgstr ""
+
+#: config/arm/arm.cc:2986
+#, gcc-internal-format
+msgid "target CPU does not support ARM mode"
+msgstr ""
+
+#: config/arm/arm.cc:2990
+#, gcc-internal-format
+msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.cc:2993
+#, gcc-internal-format
+msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+msgstr ""
+
+#: config/arm/arm.cc:3001
+#, gcc-internal-format
+msgid "%<-g%> with %<-mno-apcs-frame%> may not give sensible debugging"
+msgstr ""
+
+#: config/arm/arm.cc:3006
+#, gcc-internal-format
+msgid "iWMMXt unsupported under Thumb mode"
+msgstr ""
+
+#: config/arm/arm.cc:3009
+#, gcc-internal-format
+msgid "cannot use %<-mtp=cp15%> with 16-bit Thumb"
+msgstr ""
+
+#: config/arm/arm.cc:3013
+#, gcc-internal-format
+msgid "RTP PIC is incompatible with Thumb"
+msgstr ""
+
+#: config/arm/arm.cc:3026
+#, gcc-internal-format, gfc-internal-format
+msgid "%s only supports non-pic code on M-profile targets with the MOVT instruction"
+msgstr ""
+
+#: config/arm/arm.cc:3031
+#, gcc-internal-format, gfc-internal-format
+msgid "%s only supports non-pic code on M-profile targets"
+msgstr ""
+
+#: config/arm/arm.cc:3036
+#, gcc-internal-format
+msgid "%s incompatible with %<-mword-relocations%>"
+msgstr ""
+
+#: config/arm/arm.cc:3138
+#, gcc-internal-format
+msgid "target CPU does not support THUMB instructions"
+msgstr ""
+
+#: config/arm/arm.cc:3188
+#, gcc-internal-format
+msgid "target CPU does not support unaligned accesses"
+msgstr ""
+
+#: config/arm/arm.cc:3247 config/arm/arm.cc:33478
+#, gcc-internal-format
+msgid "This architecture does not support branch protection instructions"
+msgstr ""
+
+#: config/arm/arm.cc:3250
+#, gcc-internal-format
+msgid "Return address signing is not supported with %<-mtpcs-frame%>."
+msgstr ""
+
+#: config/arm/arm.cc:3388
+#, gcc-internal-format
+msgid "switch %<-mcpu=%s%> conflicts with switch %<-march=%s%>"
+msgstr ""
+
+#: config/arm/arm.cc:3643
+#, gcc-internal-format
+msgid "%<-mapcs-stack-check%> incompatible with %<-mno-apcs-frame%>"
+msgstr ""
+
+#: config/arm/arm.cc:3652
+#, gcc-internal-format
+msgid "%<-fpic%> and %<-mapcs-reent%> are incompatible"
+msgstr ""
+
+#: config/arm/arm.cc:3655
+#, gcc-internal-format
+msgid "APCS reentrant code not supported.  Ignored"
+msgstr ""
+
+#: config/arm/arm.cc:3678
+#, gcc-internal-format
+msgid "option %<-mstructure-size-boundary%> is deprecated"
+msgstr ""
+
+#: config/arm/arm.cc:3686
+#, gcc-internal-format
+msgid "structure size boundary can only be set to 8, 32 or 64"
+msgstr ""
+
+#: config/arm/arm.cc:3688
+#, gcc-internal-format
+msgid "structure size boundary can only be set to 8 or 32"
+msgstr ""
+
+#: config/arm/arm.cc:3713
+#, gcc-internal-format
+msgid "RTP PIC is incompatible with %<-msingle-pic-base%>"
+msgstr ""
+
+#: config/arm/arm.cc:3725 config/arm/arm.cc:33819
+#, gcc-internal-format
+msgid "FDPIC mode is not supported in Thumb-1 mode"
+msgstr ""
+
+#: config/arm/arm.cc:3733
+#, gcc-internal-format
+msgid "%<-mpic-register=%> is useless without %<-fpic%>"
+msgstr ""
+
+#: config/arm/arm.cc:3742
+#, gcc-internal-format
+msgid "unable to use %qs for PIC register"
+msgstr ""
+
+#: config/arm/arm.cc:3782 config/pru/pru.cc:612
+#, gcc-internal-format
+msgid "%<-freorder-blocks-and-partition%> not supported on this architecture"
+msgstr ""
+
+#: config/arm/arm.cc:3950
+#, gcc-internal-format
+msgid "selected fp16 options are incompatible"
+msgstr ""
+
+#: config/arm/arm.cc:3985
+#, gcc-internal-format
+msgid "%<-mstack-protector-guard=tls%> needs a hardware TLS register"
+msgstr ""
+
+#: config/arm/arm.cc:4005
+#, gcc-internal-format
+msgid "iwmmxt requires an AAPCS compatible ABI for proper operation"
+msgstr ""
+
+#: config/arm/arm.cc:4008
+#, gcc-internal-format
+msgid "iwmmxt abi requires an iwmmxt capable cpu"
+msgstr ""
+
+#: config/arm/arm.cc:4016
+#, gcc-internal-format
+msgid "target CPU does not support interworking"
+msgstr ""
+
+#: config/arm/arm.cc:4029
+#, gcc-internal-format
+msgid "AAPCS does not support %<-mcaller-super-interworking%>"
+msgstr ""
+
+#: config/arm/arm.cc:4032
+#, gcc-internal-format
+msgid "AAPCS does not support %<-mcallee-super-interworking%>"
+msgstr ""
+
+#: config/arm/arm.cc:4037
+#, gcc-internal-format
+msgid "%<__fp16%> and no ldrh"
+msgstr ""
+
+#: config/arm/arm.cc:4040
+#, gcc-internal-format
+msgid "target CPU does not support ARMv8-M Security Extensions"
+msgstr ""
+
+#: config/arm/arm.cc:4045
+#, gcc-internal-format
+msgid "ARMv8-M Security Extensions incompatible with selected FPU"
+msgstr ""
+
+#: config/arm/arm.cc:4057
+#, gcc-internal-format
+msgid "%<-mfloat-abi=hard%>: selected architecture lacks an FPU"
+msgstr ""
+
+#: config/arm/arm.cc:4065
+#, gcc-internal-format
+msgid "%<-mfloat-abi=hard%> and VFP"
+msgstr ""
+
+#: config/arm/arm.cc:6330
+#, gcc-internal-format
+msgid "non-AAPCS derived PCS variant"
+msgstr ""
+
+#: config/arm/arm.cc:6332
+#, gcc-internal-format
+msgid "variadic functions must use the base AAPCS variant"
+msgstr ""
+
+#: config/arm/arm.cc:6361
+#, gcc-internal-format
+msgid "PCS variant"
+msgstr ""
+
+#: config/arm/arm.cc:6636
+#, gcc-internal-format
+msgid "Thumb-1 %<hard-float%> VFP ABI"
+msgstr ""
+
+#: config/arm/arm.cc:6731
+#, gcc-internal-format
+msgid "argument of type %qT not permitted with %<-mgeneral-regs-only%>"
+msgstr ""
+
+#: config/arm/arm.cc:7115 config/arm/arm.cc:7336 config/arm/arm.cc:7369
+#: config/arm/arm.cc:29541
+#, gcc-internal-format
+msgid "parameter passing for argument of type %qT changed in GCC 7.1"
+msgstr ""
+
+#: config/arm/arm.cc:7507
+#, gcc-internal-format
+msgid "FP registers might be clobbered despite %qE attribute: compile with %<-mgeneral-regs-only%>"
+msgstr ""
+
+#: config/arm/arm.cc:7629
+#, gcc-internal-format
+msgid "%qE attribute not available to functions with arguments passed on the stack"
+msgstr ""
+
+#: config/arm/arm.cc:7641
+#, gcc-internal-format
+msgid "%qE attribute not available to functions with variable number of arguments"
+msgstr ""
+
+#: config/arm/arm.cc:7650
+#, gcc-internal-format
+msgid "%qE attribute not available to functions that return value on the stack"
+msgstr ""
+
+#: config/arm/arm.cc:7672 config/arm/arm.cc:7724
+#, gcc-internal-format
+msgid "%qE attribute ignored without %<-mcmse%> option"
+msgstr ""
+
+#: config/arm/arm.cc:7691
+#, gcc-internal-format
+msgid "%qE attribute has no effect on functions with static linkage"
+msgstr ""
+
+#: config/arm/arm.cc:7744
+#, gcc-internal-format
+msgid "%qE attribute only applies to base type of a function pointer"
+msgstr ""
+
+#: config/arm/arm.cc:9739
+#, gcc-internal-format
+msgid "accessing thread-local storage is not currently supported with %<-mpure-code%> or %<-mslow-flash-data%>"
+msgstr ""
+
+#: config/arm/arm.cc:13590 config/arm/arm.cc:13592
+#, gcc-internal-format
+msgid "%s %wd out of range %wd - %wd"
+msgstr ""
+
+#: config/arm/arm.cc:26076
+#, gcc-internal-format
+msgid "unable to compute real location of stacked parameter"
+msgstr ""
+
+#: config/arm/arm.cc:26739
+#, gcc-internal-format
+msgid "Unexpected thumb1 far jump"
+msgstr ""
+
+#: config/arm/arm.cc:26998
+#, gcc-internal-format
+msgid "no low registers available for popping high registers"
+msgstr ""
+
+#: config/arm/arm.cc:27251
+#, gcc-internal-format
+msgid "Interrupt Service Routines cannot be coded in Thumb-1 mode"
+msgstr ""
+
+#: config/arm/arm.cc:27549
+#, gcc-internal-format
+msgid "%<-fstack-check=specific%> for Thumb-1"
+msgstr ""
+
+#: config/arm/arm.cc:33834
+#, gcc-internal-format
+msgid "invalid fpu for target attribute or pragma %qs"
+msgstr ""
+
+#. This doesn't really make sense until we support
+#. general dynamic selection of the architecture and all
+#. sub-features.
+#: config/arm/arm.cc:33842
+#, gcc-internal-format
+msgid "auto fpu selection not currently permitted here"
+msgstr ""
+
+#: config/arm/arm.cc:33855
+#, gcc-internal-format
+msgid "invalid architecture for target attribute or pragma %qs"
+msgstr ""
+
+#: config/arm/arm.cc:33869
+#, gcc-internal-format
+msgid "unknown target attribute or pragma %qs"
+msgstr ""
+
+#: config/arm/arm.cc:34832
+#, gcc-internal-format
+msgid "%<asm%> flags not supported in thumb1 mode"
+msgstr ""
+
+#: config/avr/avr-c.cc:65 config/avr/avr-c.cc:190
+#, gcc-internal-format
+msgid "%qs expects 1 argument but %d given"
+msgstr ""
+
+#: config/avr/avr-c.cc:76
+#, gcc-internal-format
+msgid "%qs expects a fixed-point value as argument"
+msgstr ""
+
+#: config/avr/avr-c.cc:102
+#, gcc-internal-format
+msgid "using %qs with unsigned type has no effect"
+msgstr ""
+
+#: config/avr/avr-c.cc:107 config/avr/avr-c.cc:173 config/avr/avr-c.cc:230
+#, gcc-internal-format
+msgid "no matching fixed-point overload found for %qs"
+msgstr ""
+
+#: config/avr/avr-c.cc:124
+#, gcc-internal-format
+msgid "%qs expects 2 arguments but %d given"
+msgstr ""
+
+#: config/avr/avr-c.cc:136 config/avr/avr-c.cc:201
+#, gcc-internal-format
+msgid "%qs expects a fixed-point value as first argument"
+msgstr ""
+
+#: config/avr/avr-c.cc:144
+#, gcc-internal-format
+msgid "%qs expects an integer value as second argument"
+msgstr ""
+
+#: config/avr/avr-devices.cc:152
+#, gcc-internal-format, gfc-internal-format
+msgid "supported core architectures:%s"
+msgstr ""
+
+#. Reached the end of `avr_mcu_types'.  This should actually never
+#. happen as options are provided by device-specs.  It could be a
+#. typo in a device-specs or calling the compiler proper directly
+#. with -mmcu=<device>.
+#: config/avr/avr.cc:1090
+#, gcc-internal-format
+msgid "unknown core architecture %qs specified with %qs"
+msgstr ""
+
+#: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
+#, gcc-internal-format
+msgid "%<-fpic%> is not supported"
+msgstr ""
+
+#: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
+#, gcc-internal-format
+msgid "%<-fPIC%> is not supported"
+msgstr ""
+
+#: config/avr/avr.cc:1154 config/pru/pru.cc:605
+#, gcc-internal-format
+msgid "%<-fpie%> is not supported"
+msgstr ""
+
+#: config/avr/avr.cc:1156 config/pru/pru.cc:607
+#, gcc-internal-format
+msgid "%<-fPIE%> is not supported"
+msgstr ""
+
+#: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
+#, gcc-internal-format
+msgid "function attributes %qs and %qs are mutually exclusive"
+msgstr ""
+
+#: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
+#, gcc-internal-format
+msgid "%qs function cannot have arguments"
+msgstr ""
+
+#: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
+#, gcc-internal-format
+msgid "%qs function cannot return a value"
+msgstr ""
+
+#: config/avr/avr.cc:1495
+#, gcc-internal-format
+msgid "%qs appears to be a misspelled %qs handler, missing %<__vector%> prefix"
+msgstr ""
+
+#: config/avr/avr.cc:1506
+#, gcc-internal-format
+msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
+msgstr ""
+
+#: config/avr/avr.cc:1513
+#, gcc-internal-format
+msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
+msgstr ""
+
+#: config/avr/avr.cc:1734
+#, gcc-internal-format
+msgid "%<builtin_return_address%> contains only 2 bytes of address"
+msgstr ""
+
+#: config/avr/avr.cc:3722
+#, gcc-internal-format
+msgid "pointer offset from symbol maybe incorrect"
+msgstr ""
+
+#: config/avr/avr.cc:3861
+#, gcc-internal-format
+msgid "accessing data memory with program memory address"
+msgstr ""
+
+#: config/avr/avr.cc:3922
+#, gcc-internal-format
+msgid "accessing program memory with data memory address"
+msgstr ""
+
+#: config/avr/avr.cc:4264
+#, gcc-internal-format, gfc-internal-format
+msgid "fixed register %s used to pass parameter to function"
+msgstr ""
+
+#: config/avr/avr.cc:4524
+#, gcc-internal-format
+msgid "writing to address space %qs not supported"
+msgstr ""
+
+#: config/avr/avr.cc:11306
+#, gcc-internal-format
+msgid "%qE attribute only applies to variables in static storage"
+msgstr ""
+
+#: config/avr/avr.cc:11313
+#, gcc-internal-format
+msgid "%qE attribute only supported for reduced Tiny cores"
+msgstr ""
+
+#: config/avr/avr.cc:11355
+#, gcc-internal-format
+msgid "%qE attribute address out of range 0x%x%s0x%x"
+msgstr ""
+
+#: config/avr/avr.cc:11369
+#, gcc-internal-format
+msgid "both %s and %qE attribute provide address"
+msgstr ""
+
+#: config/avr/avr.cc:11379
+#, gcc-internal-format
+msgid "%qE attribute on non-volatile variable"
+msgstr ""
+
+#: config/avr/avr.cc:11455
+#, gcc-internal-format
+msgid "address spaces are not supported for reduced Tiny devices"
+msgstr ""
+
+#: config/avr/avr.cc:11462
+#, gcc-internal-format
+msgid "address space %qs not supported for devices with flash size up to %d KiB"
+msgstr ""
+
+#: config/avr/avr.cc:11642
+#, gcc-internal-format
+msgid "pointer targeting address space %qs must be const in %qT"
+msgstr ""
+
+#: config/avr/avr.cc:11645
+#, gcc-internal-format
+msgid "pointer targeting address space %qs must be const in %s %q+D"
+msgstr ""
+
+#: config/avr/avr.cc:11666
+#, gcc-internal-format
+msgid "variable %q+D with attribute %qs must be located in static storage"
+msgstr ""
+
+#: config/avr/avr.cc:11717
+#, gcc-internal-format
+msgid "variable %q+D must be const in order to be put into read-only section by means of %qs"
+msgstr ""
+
+#: config/avr/avr.cc:11878
+#, gcc-internal-format
+msgid "static attribute %qs declaration for %q+D needs an address"
+msgstr ""
+
+#: config/avr/avr.cc:11967
+#, gcc-internal-format
+msgid "only uninitialized variables can be placed in the %<.noinit%> section"
+msgstr ""
+
+#. This might happen with C++ if stuff needs constructing.
+#: config/avr/avr.cc:12044
+#, gcc-internal-format
+msgid "variable %q+D with dynamic initialization put into program memory area"
+msgstr ""
+
+#: config/avr/avr.cc:12055
+#, gcc-internal-format
+msgid "uninitialized variable %q+D put into program memory area"
+msgstr ""
+
+#. Initializers are not yet parsed in TARGET_INSERT_ATTRIBUTES,
+#. hence deny initializers now.  The values of symbols with an
+#. address attribute are determined by the attribute, not by
+#. some initializer.
+#: config/avr/avr.cc:12120
+#, gcc-internal-format
+msgid "variable %q+D with attribute %qs must not have an initializer"
+msgstr ""
+
+#: config/avr/avr.cc:12173
+#, gcc-internal-format
+msgid "%q+D has incompatible attributes %qs and %qs"
+msgstr ""
+
+#: config/avr/avr.cc:12236
+#, gcc-internal-format
+msgid "architecture %qs supported for assembler only"
+msgstr ""
+
+#: config/avr/avr.cc:14796
+#, gcc-internal-format
+msgid "conversion from address space %qs to address space %qs"
+msgstr ""
+
+#: config/avr/avr.cc:15877 config/avr/avr.cc:15890
+#, gcc-internal-format, gfc-internal-format
+msgid "%s expects a compile time integer constant"
+msgstr ""
+
+#: config/avr/avr.cc:15904
+#, gcc-internal-format, gfc-internal-format
+msgid "%s expects a compile time long integer constant as first argument"
+msgstr ""
+
+#: config/avr/avr.cc:15932
+#, gcc-internal-format, gfc-internal-format
+msgid "rounding to %d bits has no effect for fixed-point value with %d fractional bits"
+msgstr ""
+
+#: config/avr/avr.cc:15941
+#, gcc-internal-format
+msgid "rounding result will always be 0"
+msgstr ""
+
+#: config/avr/driver-avr.cc:58
+#, gcc-internal-format
+msgid "bad usage of spec function %qs"
+msgstr ""
+
+#: config/avr/driver-avr.cc:86
+#, gcc-internal-format
+msgid "specified option %qs more than once"
+msgstr ""
+
+#: config/avr/driver-avr.cc:100
+#, gcc-internal-format
+msgid "strange device name %qs after %qs: bad character %qc"
+msgstr ""
+
+#: config/bfin/bfin.cc:2368
+#, gcc-internal-format
+msgid "%<-mfdpic%> is not supported, please use a bfin-linux-uclibc target"
+msgstr ""
+
+#: config/bfin/bfin.cc:2374
+#, gcc-internal-format
+msgid "%<-mshared-library-id=%> specified without %<-mid-shared-library%>"
+msgstr ""
+
+#: config/bfin/bfin.cc:2379
+#, gcc-internal-format
+msgid "%<-fstack-limit-%> options are ignored with %<-mfdpic%>; use %<-mstack-check-l1%>"
+msgstr ""
+
+#: config/bfin/bfin.cc:2385
+#, gcc-internal-format
+msgid "cannot use multiple stack checking methods together"
+msgstr ""
+
+#: config/bfin/bfin.cc:2388
+#, gcc-internal-format
+msgid "ID shared libraries and FD-PIC mode cannot be used together"
+msgstr ""
+
+#: config/bfin/bfin.cc:2393 config/m68k/m68k.cc:594
+#, gcc-internal-format
+msgid "cannot specify both %<-msep-data%> and %<-mid-shared-library%>"
+msgstr ""
+
+#: config/bfin/bfin.cc:2413
+#, gcc-internal-format
+msgid "%<-mmulticore%> can only be used with BF561"
+msgstr ""
+
+#: config/bfin/bfin.cc:2416
+#, gcc-internal-format
+msgid "%<-mcorea%> should be used with %<-mmulticore%>"
+msgstr ""
+
+#: config/bfin/bfin.cc:2419
+#, gcc-internal-format
+msgid "%<-mcoreb%> should be used with %<-mmulticore%>"
+msgstr ""
+
+#: config/bfin/bfin.cc:2422
+#, gcc-internal-format
+msgid "%<-mcorea%> and %<-mcoreb%> cannot be used together"
+msgstr ""
+
+#: config/bfin/bfin.cc:4700
+#, gcc-internal-format
+msgid "multiple function type attributes specified"
+msgstr ""
+
+#: config/bfin/bfin.cc:4767
+#, gcc-internal-format
+msgid "cannot apply both %<longcall%> and %<shortcall%> attributes to the same function"
+msgstr ""
+
+#: config/bpf/bpf.cc:105
+#, gcc-internal-format
+msgid "%qE attribute requires an integer argument"
+msgstr ""
+
+#: config/bpf/bpf.cc:112
+#, gcc-internal-format
+msgid "%qE requires an argument"
+msgstr ""
+
+#: config/bpf/bpf.cc:133
+#, gcc-internal-format
+msgid "%qE attribute only applies to structure, union and class types"
+msgstr ""
+
+#: config/bpf/bpf.cc:197
+#, gcc-internal-format
+msgid "BPF CO-RE requires BTF debugging information, use %<-gbtf%>"
+msgstr ""
+
+#: config/bpf/bpf.cc:215
+#, gcc-internal-format
+msgid "BPF CO-RE does not support LTO"
+msgstr ""
+
+#: config/bpf/bpf.cc:251
+#, gcc-internal-format
+msgid "%<-fstack-protector%> does not work on this architecture"
+msgstr ""
+
+#: config/bpf/bpf.cc:366
+#, gcc-internal-format
+msgid "eBPF stack limit exceeded"
+msgstr ""
+
+#: config/bpf/bpf.cc:685
+#, gcc-internal-format
+msgid "too many function arguments for eBPF"
+msgstr ""
+
+#: config/bpf/bpf.cc:704 config/bpf/bpf.cc:706
+#, gcc-internal-format
+msgid "no constructors"
+msgstr ""
+
+#: config/bpf/bpf.cc:722 config/bpf/bpf.cc:724
+#, gcc-internal-format
+msgid "no destructors"
+msgstr ""
+
+#: config/bpf/bpf.cc:776
+#, gcc-internal-format
+msgid "indirect call in function, which are not supported by eBPF"
+msgstr ""
+
+#: config/bpf/bpf.cc:1051 config/loongarch/loongarch-builtins.cc:3005
+#: config/mips/mips.cc:17403 config/nios2/nios2.cc:3602
+#: config/riscv/riscv-builtins.cc:344
+#: config/riscv/riscv-vector-builtins.cc:4226
+#, gcc-internal-format
+msgid "invalid argument to built-in function"
+msgstr ""
+
+#: config/bpf/bpf.cc:1065
+#, gcc-internal-format
+msgid "invalid built-in function at expansion"
+msgstr ""
+
+#: config/bpf/bpf.cc:1287 config/bpf/bpf.cc:1290
+#, gcc-internal-format
+msgid "could not inline call to %<__builtin_%s%>: size must be constant"
+msgstr ""
+
+#: config/bpf/bpf.cc:1318 config/bpf/bpf.cc:1321
+#, gcc-internal-format
+msgid "could not inline call to %<__builtin_%s%>: too many bytes, use %<-minline-memops-threshold%>"
+msgstr ""
+
+#: config/bpf/bpf.cc:1371 config/bpf/bpf.cc:1374
+#, gcc-internal-format
+msgid "could not inline call to %<__builtin_memset%>: size must be constant"
+msgstr ""
+
+#: config/bpf/bpf.cc:1402 config/bpf/bpf.cc:1405
+#, gcc-internal-format
+msgid "could not inline call to %<__builtin_memset%>: too many bytes, use %<-minline-memops-threshold%>"
+msgstr ""
+
+#: config/c6x/c6x.cc:245
+#, gcc-internal-format
+msgid "%<-fpic%> and %<-fPIC%> not supported without %<-mdsbt%> on this target"
+msgstr ""
+
+#. This function is for retrieving a part of an instruction name for
+#. an operator, for immediate output.  If that ever happens for
+#. MULT, we need to apply TARGET_MUL_BUG in the caller.  Make sure
+#. we notice.
+#: config/cris/cris.cc:732
+#, gcc-internal-format
+msgid "MULT case in %<cris_op_str%>"
+msgstr ""
+
+#: config/cris/cris.cc:1249 config/moxie/moxie.cc:186 config/or1k/or1k.cc:1294
+#, gcc-internal-format, gfc-internal-format
+msgid "internal error: bad register: %d"
+msgstr ""
+
+#. If we get here, the caller got its initial tests wrong.
+#: config/cris/cris.cc:2272
+#, gcc-internal-format
+msgid "internal error: %<cris_side_effect_mode_ok%> with bad operands"
+msgstr ""
+
+#: config/cris/cris.cc:2325
+#, gcc-internal-format
+msgid "%<-max-stackframe=%d%> is not usable, not between 0 and %d"
+msgstr ""
+
+#: config/cris/cris.cc:2354
+#, gcc-internal-format
+msgid "unknown CRIS version specification in %<-march=%> or %<-mcpu=%>: %s"
+msgstr ""
+
+#: config/cris/cris.cc:2390
+#, gcc-internal-format
+msgid "unknown CRIS cpu version specification in %<-mtune=%>: %s"
+msgstr ""
+
+#. Use error rather than warning, so invalid use is easily
+#. detectable.  Still change to the values we expect, to avoid
+#. further errors.
+#: config/cris/cris.cc:2406
+#, gcc-internal-format
+msgid "%<-fPIC%> and %<-fpic%> are not supported on this target"
+msgstr ""
+
+#: config/cris/cris.cc:2607
+#, gcc-internal-format
+msgid "unknown src"
+msgstr ""
+
+#: config/cris/cris.cc:2657
+#, gcc-internal-format
+msgid "unknown dest"
+msgstr ""
+
+#: config/cris/cris.cc:3059
+#, gcc-internal-format, gfc-internal-format
+msgid "stackframe too big: %d bytes"
+msgstr ""
+
+#: config/csky/csky.cc:2544
+#, gcc-internal-format, gfc-internal-format
+msgid "cpu %s is not based on arch %s, ignoring the arch"
+msgstr ""
+
+#: config/csky/csky.cc:2610 config/csky/csky.cc:2648 config/csky/csky.cc:2713
+#: config/csky/csky.cc:2736 config/csky/csky.cc:2753
+#, gcc-internal-format
+msgid "%qs is not supported by arch %s"
+msgstr ""
+
+#: config/csky/csky.cc:2651
+#, gcc-internal-format
+msgid "%<-mhard-float%> is not supported by the selected CPU"
+msgstr ""
+
+#: config/csky/csky.cc:2667
+#, gcc-internal-format
+msgid "%<-mdouble-float%> ignored without %<-mhard-float%>"
+msgstr ""
+
+#: config/csky/csky.cc:2670
+#, gcc-internal-format
+msgid "%<-mfdivdu%> ignored without %<-mhard-float%>"
+msgstr ""
+
+#: config/csky/csky.cc:2725
+#, gcc-internal-format
+msgid "%<-msmart%> is incompatible with %<-mhigh-registers%>"
+msgstr ""
+
+#. It's hard to provide general support for trampolines on this
+#. core.  We need a register other than the one holding the
+#. static chain (r13) to hold the function pointer for the
+#. indirect jump to it.  But ck801 has such a limited register set
+#. there is no other call-clobbered scratch register available -- in
+#. particular, this core does not have r12, which we use for the
+#. ck802 case below.  If we use a callee-saved register like r4,
+#. saving the old value on the stack screws up the stack frame
+#. if there are overflow arguments pushed on the stack
+#. by the caller.  In theory we could test for that and handle
+#. limited cases with parameters that all fit in r0-r3 with no
+#. stack overflow, but punt for now.
+#: config/csky/csky.cc:6281
+#, gcc-internal-format
+msgid "Nested function trampolines not supported on CK801."
+msgstr ""
+
+#: config/csky/csky.cc:6477
+#, gcc-internal-format
+msgid "%qE attribute ignored without %<-mistack%>"
+msgstr ""
+
+#: config/epiphany/epiphany.cc:496
+#, gcc-internal-format
+msgid "interrupt handlers cannot have arguments"
+msgstr ""
+
+#: config/epiphany/epiphany.cc:520
+#, gcc-internal-format
+msgid "argument of %qE attribute is not %qs, %qs %qs, %qs, %qs, %qs, %qs, %qs, %qs or %qs"
+msgstr ""
+
+#: config/epiphany/epiphany.cc:1543
+#, gcc-internal-format
+msgid "%<stack_offset%> must be at least 4"
+msgstr ""
+
+#: config/epiphany/epiphany.cc:1545
+#, gcc-internal-format
+msgid "%<stack_offset%> must be a multiple of 4"
+msgstr ""
+
+#: config/frv/frv.cc:8479
+#, gcc-internal-format
+msgid "accumulator is not a constant integer"
+msgstr ""
+
+#: config/frv/frv.cc:8484
+#, gcc-internal-format
+msgid "accumulator number is out of bounds"
+msgstr ""
+
+#: config/frv/frv.cc:8495
+#, gcc-internal-format
+msgid "inappropriate accumulator for %qs"
+msgstr ""
+
+#: config/frv/frv.cc:8571
+#, gcc-internal-format
+msgid "invalid IACC argument"
+msgstr ""
+
+#: config/frv/frv.cc:8594 config/sparc/sparc.cc:11033
+#, gcc-internal-format
+msgid "%qs expects a constant argument"
+msgstr ""
+
+#: config/frv/frv.cc:8599 config/sparc/sparc.cc:11039
+#, gcc-internal-format
+msgid "constant argument out of range for %qs"
+msgstr ""
+
+#: config/frv/frv.cc:9080
+#, gcc-internal-format
+msgid "media functions are not available unless %<-mmedia%> is used"
+msgstr ""
+
+#: config/frv/frv.cc:9092
+#, gcc-internal-format
+msgid "this media function is only available on the fr500"
+msgstr ""
+
+#: config/frv/frv.cc:9120
+#, gcc-internal-format
+msgid "this media function is only available on the fr400 and fr550"
+msgstr ""
+
+#: config/frv/frv.cc:9139
+#, gcc-internal-format
+msgid "this built-in function is only available on the fr405 and fr450"
+msgstr ""
+
+#: config/frv/frv.cc:9148
+#, gcc-internal-format
+msgid "this built-in function is only available on the fr500 and fr550"
+msgstr ""
+
+#: config/frv/frv.cc:9160
+#, gcc-internal-format
+msgid "this built-in function is only available on the fr450"
+msgstr ""
+
+#: config/ft32/ft32.cc:181
+#, gcc-internal-format
+msgid "%<h%> applied to non-register operand"
+msgstr ""
+
+#: config/ft32/ft32.cc:206
+#, gcc-internal-format, gfc-internal-format
+msgid "bad alignment: %d"
+msgstr ""
+
+#: config/ft32/ft32.cc:502
+#, gcc-internal-format
+msgid "stack frame must be smaller than 64K"
+msgstr ""
+
+#: config/gcn/gcn.cc:175
+#, gcc-internal-format
+msgid "%<-mxnack=on%> is incompatible with %<-march=%s%>"
+msgstr ""
+
+#: config/gcn/gcn.cc:292
+#, gcc-internal-format
+msgid "%<amdgpu_hsa_kernel%> attribute requires string constant arguments"
+msgstr ""
+
+#: config/gcn/gcn.cc:305
+#, gcc-internal-format
+msgid "unknown specifier %qs in %<amdgpu_hsa_kernel%> attribute"
+msgstr ""
+
+#: config/gcn/gcn.cc:312
+#, gcc-internal-format
+msgid "duplicated parameter specifier %qs in %<amdgpu_hsa_kernel%> attribute"
+msgstr ""
+
+#: config/gcn/gcn.cc:364
+#, gcc-internal-format
+msgid "too many arguments passed in sgpr registers"
+msgstr ""
+
+#: config/gcn/gcn.cc:2523
+#, gcc-internal-format
+msgid "A non-default set of initial values has been requested, which violates the ABI"
+msgstr ""
+
+#: config/gcn/gcn.cc:2791
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong type of argument %s"
+msgstr ""
+
+#: config/gcn/gcn.cc:3802
+#, gcc-internal-format
+msgid "nested function trampolines not supported on GCN5 due to non-executable stacks"
+msgstr ""
+
+#: config/gcn/gcn.cc:3954
+#, gcc-internal-format
+msgid "TLS is not implemented for GCN."
+msgstr ""
+
+#: config/gcn/gcn.cc:5046
+#, gcc-internal-format
+msgid "Builtin not implemented"
+msgstr ""
+
+#: config/gcn/gcn.cc:5692
+#, gcc-internal-format
+msgid "unsupported simdlen %wd (amdgcn)"
+msgstr ""
+
+#: config/gcn/gcn.cc:6402
+#, gcc-internal-format
+msgid "using %<vector_length (64)%>, ignoring %d"
+msgstr ""
+
+#: config/gcn/gcn.cc:6403
+#, gcc-internal-format
+msgid "using %<vector_length (64)%>, ignoring runtime setting"
+msgstr ""
+
+#: config/gcn/gcn.cc:6415 config/nvptx/nvptx.cc:6607
+#, gcc-internal-format
+msgid "using %<num_workers (%d)%>, ignoring %d"
+msgstr ""
+
+#: config/gcn/gcn.cc:6442 config/gcn/gcn.cc:6471
+#, gcc-internal-format, gfc-internal-format
+msgid "offload dimension out of range (%d)"
+msgstr ""
+
+#: config/gcn/gcn.cc:6980
+#, gcc-internal-format
+msgid "%d bytes of gang-private data-share memory exhausted (increase with %<-mgang-private-size=%d%>, for example)"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:168
+#, gcc-internal-format
+msgid "deleting file %qs: %m"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:877
+#, gcc-internal-format
+msgid "unrecognized argument in option %<-march=%s%>"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:901
+#, gcc-internal-format
+msgid "valid arguments to %<-march=%> are: %s"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:904
+#, gcc-internal-format
+msgid "valid argument to %<-march=%> is %qs"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:940
+#, gcc-internal-format
+msgid "%<COLLECT_GCC%> must be set"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:986
+#, gcc-internal-format
+msgid "offload compiler %qs not found"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:1008
+#, gcc-internal-format
+msgid "unrecognizable argument of option %<"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:1060 config/nvptx/mkoffload.cc:753
+#, gcc-internal-format
+msgid "either %<-fopenacc%> or %<-fopenmp%> must be set"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:1112
+#, gcc-internal-format
+msgid "unhandled architecture"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:1152 config/gcn/mkoffload.cc:1304
+#, gcc-internal-format
+msgid "cannot open %qs"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:1290 config/nvptx/mkoffload.cc:843
+#, gcc-internal-format
+msgid "cannot open omp_requires file %qs"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:1294 config/nvptx/mkoffload.cc:847
+#, gcc-internal-format
+msgid "cannot read omp_requires file %qs"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:1300
+#, gcc-internal-format
+msgid "cannot open intermediate gcn asm file"
+msgstr ""
+
+#: config/gcn/mkoffload.cc:1317
+#, gcc-internal-format
+msgid "cannot open intermediate gcn obj file"
+msgstr ""
+
+#: config/h8300/h8300.cc:298
+#, gcc-internal-format
+msgid "%<-ms2600%> is used without %<-ms%>"
+msgstr ""
+
+#: config/h8300/h8300.cc:304
+#, gcc-internal-format
+msgid "%<-mexr%> is used without %<-ms%>"
+msgstr ""
+
+#: config/h8300/h8300.cc:310
+#, gcc-internal-format
+msgid "%<-mexr%> is used without %<-ms%> or %<-msx%>"
+msgstr ""
+
+#: config/h8300/h8300.cc:316
+#, gcc-internal-format
+msgid "%<-mno-exr%> is valid only with %<-ms%> or %<-msx%> - option ignored"
+msgstr ""
+
+#: config/h8300/h8300.cc:323
+#, gcc-internal-format
+msgid "%<-mn%> is not supported for linux targets"
+msgstr ""
+
+#: config/i386/host-cygwin.cc:64
+#, gcc-internal-format
+msgid "cannot extend PCH file: %m"
+msgstr ""
+
+#: config/i386/host-cygwin.cc:75
+#, gcc-internal-format
+msgid "cannot set position in PCH file: %m"
+msgstr ""
+
+#: config/i386/i386-builtins.cc:1962
+#, gcc-internal-format
+msgid "no dispatcher found for the versioning attributes"
+msgstr ""
+
+#: config/i386/i386-builtins.cc:2012
+#, gcc-internal-format
+msgid "ISA %qs is not supported in %<target%> attribute, use %<arch=%> syntax"
+msgstr ""
+
+#: config/i386/i386-builtins.cc:2023
+#, gcc-internal-format, gfc-internal-format
+msgid "no dispatcher found for the versioning attributes: %s"
+msgstr ""
+
+#: config/i386/i386-builtins.cc:2133
+#, gcc-internal-format
+msgid "parameter to builtin must be a string constant or literal"
+msgstr ""
+
+#: config/i386/i386-builtins.cc:2157 config/i386/i386-builtins.cc:2206
+#, gcc-internal-format, gfc-internal-format
+msgid "parameter to builtin not valid: %s"
+msgstr ""
+
+#: config/i386/i386-expand.cc:9752
+#, gcc-internal-format
+msgid "interrupt service routine cannot be called directly"
+msgstr ""
+
+#: config/i386/i386-expand.cc:10223 config/i386/i386-expand.cc:11810
+#, gcc-internal-format
+msgid "the last argument must be a 2-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:10697
+#, gcc-internal-format
+msgid "the fifth argument must be an 8-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:10792
+#, gcc-internal-format
+msgid "the third argument must be an 8-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:11739
+#, gcc-internal-format
+msgid "the last argument must be an 1-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:11754
+#, gcc-internal-format
+msgid "the last argument must be a 3-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:11789
+#, gcc-internal-format
+msgid "the last argument must be a 4-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:11829
+#, gcc-internal-format
+msgid "the last argument must be a 1-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:11845
+#, gcc-internal-format
+msgid "the last argument must be a 5-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:11855
+#, gcc-internal-format
+msgid "the next to last argument must be an 8-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:11860
+#, gcc-internal-format
+msgid "the last argument must be an 8-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:11997
+#, gcc-internal-format
+msgid "the third argument must be comparison constant"
+msgstr ""
+
+#: config/i386/i386-expand.cc:12002
+#, gcc-internal-format
+msgid "incorrect comparison mode"
+msgstr ""
+
+#: config/i386/i386-expand.cc:12008 config/i386/i386-expand.cc:12332
+#, gcc-internal-format
+msgid "incorrect rounding operand"
+msgstr ""
+
+#: config/i386/i386-expand.cc:12312
+#, gcc-internal-format
+msgid "the immediate argument must be a 4-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:12320
+#, gcc-internal-format
+msgid "the immediate argument must be a 5-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:12323
+#, gcc-internal-format
+msgid "the immediate argument must be an 8-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:12799
+#, gcc-internal-format
+msgid "the fourth argument must be one of enum %qs"
+msgstr ""
+
+#: config/i386/i386-expand.cc:12869 config/rs6000/rs6000-builtin.cc:2378
+#, gcc-internal-format
+msgid "selector must be an integer constant in the range [0, %wi]"
+msgstr ""
+
+#: config/i386/i386-expand.cc:13120
+#, gcc-internal-format
+msgid "%qE needs unknown isa option"
+msgstr ""
+
+#: config/i386/i386-expand.cc:13124
+#, gcc-internal-format
+msgid "%qE needs isa option %s"
+msgstr ""
+
+#: config/i386/i386-expand.cc:13612
+#, gcc-internal-format
+msgid "second, third and fourth argument must be a const"
+msgstr ""
+
+#: config/i386/i386-expand.cc:13620
+#, gcc-internal-format
+msgid "invalid third argument"
+msgstr ""
+
+#. Ignore the hint.
+#: config/i386/i386-expand.cc:13629 config/i386/i386-expand.cc:13684
+#, gcc-internal-format
+msgid "instruction prefetch applies when in 64-bit mode with RIP-relative addressing and option %<-mprefetchi%>; they stay NOPs otherwise"
+msgstr ""
+
+#: config/i386/i386-expand.cc:13646
+#, gcc-internal-format
+msgid "invalid third argument to %<__builtin_ia32_prefetch%>; using zero"
+msgstr ""
+
+#: config/i386/i386-expand.cc:13672
+#, gcc-internal-format
+msgid "second argument must be a const"
+msgstr ""
+
+#: config/i386/i386-expand.cc:14218
+#, gcc-internal-format
+msgid "the last argument must be a 32-bit immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:14251
+#, gcc-internal-format
+msgid "last argument must be an immediate"
+msgstr ""
+
+#: config/i386/i386-expand.cc:15013 config/i386/i386-expand.cc:15225
+#, gcc-internal-format
+msgid "the last argument must be scale 1, 2, 4, 8"
+msgstr ""
+
+#: config/i386/i386-expand.cc:15278
+#, gcc-internal-format
+msgid "the forth argument must be scale 1, 2, 4, 8"
+msgstr ""
+
+#: config/i386/i386-expand.cc:15284
+#, gcc-internal-format
+msgid "incorrect hint operand"
+msgstr ""
+
+#: config/i386/i386-expand.cc:15303
+#, gcc-internal-format
+msgid "the argument to %<xabort%> intrinsic must be an 8-bit immediate"
+msgstr ""
+
+#: config/i386/i386-features.cc:3516
+#, gcc-internal-format
+msgid "function versions cannot be marked as %<gnu_inline%>, bodies have to be generated"
+msgstr ""
+
+#: config/i386/i386-options.cc:925 config/i386/i386-options.cc:2273
+#: config/i386/i386-options.cc:2282
+#, gcc-internal-format, gfc-internal-format
+msgid "code model %s does not support PIC mode"
+msgstr ""
+
+#: config/i386/i386-options.cc:1208
+#, gcc-internal-format
+msgid "attribute %qs argument is not a string"
+msgstr ""
+
+#: config/i386/i386-options.cc:1272
+#, gcc-internal-format
+msgid "attribute %qs argument %qs is unknown"
+msgstr ""
+
+#: config/i386/i386-options.cc:1335
+#, gcc-internal-format
+msgid "attribute value %qs was already specified in %qs attribute"
+msgstr ""
+
+#: config/i386/i386-options.cc:1373
+#, gcc-internal-format
+msgid "attribute value %qs is unknown in %qs attribute"
+msgstr ""
+
+#: config/i386/i386-options.cc:1674
+#, gcc-internal-format
+msgid "wrong argument %qs to option %qs"
+msgstr ""
+
+#: config/i386/i386-options.cc:1680
+#, gcc-internal-format
+msgid "size ranges of option %qs should be increasing"
+msgstr ""
+
+#: config/i386/i386-options.cc:1690
+#, gcc-internal-format
+msgid "wrong strategy name %qs specified for option %qs"
+msgstr ""
+
+#. rep; movq isn't available in 32-bit code.
+#: config/i386/i386-options.cc:1716
+#, gcc-internal-format
+msgid "strategy name %qs specified for option %qs not supported for 32-bit code"
+msgstr ""
+
+#: config/i386/i386-options.cc:1729
+#, gcc-internal-format
+msgid "unknown alignment %qs specified for option %qs"
+msgstr ""
+
+#: config/i386/i386-options.cc:1739
+#, gcc-internal-format
+msgid "the max value for the last size range should be -1 for option %qs"
+msgstr ""
+
+#: config/i386/i386-options.cc:1746
+#, gcc-internal-format
+msgid "too many size ranges specified in option %qs"
+msgstr ""
+
+#: config/i386/i386-options.cc:1824
+#, gcc-internal-format
+msgid "unknown parameter to option %<-mtune-ctrl%>: %s"
+msgstr ""
+
+#: config/i386/i386-options.cc:2069
+#, gcc-internal-format
+msgid "Intel MCU psABI isn%'t supported in %s mode"
+msgstr ""
+
+#: config/i386/i386-options.cc:2123
+#, gcc-internal-format
+msgid "%<-mtune=x86-64%> is deprecated; use %<-mtune=k8%> or %<-mtune=generic%> instead as appropriate"
+msgstr ""
+
+#: config/i386/i386-options.cc:2125
+#, gcc-internal-format
+msgid "%<target(\"tune=x86-64\")%> is deprecated; use %<target(\"tune=k8\")%> or %<target(\"tune=generic\")%> instead as appropriate"
+msgstr ""
+
+#: config/i386/i386-options.cc:2131
+#, gcc-internal-format
+msgid "%<-mtune=knl%> support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386-options.cc:2132
+#, gcc-internal-format
+msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386-options.cc:2137
+#, gcc-internal-format
+msgid "%<-mtune=knm%> support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386-options.cc:2138
+#, gcc-internal-format
+msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
+msgstr ""
+
+#. rep; movq isn't available in 32-bit code.
+#: config/i386/i386-options.cc:2165
+#, gcc-internal-format
+msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
+msgstr ""
+
+#: config/i386/i386-options.cc:2170
+#, gcc-internal-format
+msgid "%<-mapxf%> is not supported for 32-bit code"
+msgstr ""
+
+#: config/i386/i386-options.cc:2172
+#, gcc-internal-format
+msgid "%<-mapx-features=%> option is not supported for 32-bit code"
+msgstr ""
+
+#: config/i386/i386-options.cc:2175
+#, gcc-internal-format
+msgid "%<-muintr%> not supported for 32-bit code"
+msgstr ""
+
+#: config/i386/i386-options.cc:2178
+#, gcc-internal-format
+msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
+msgstr ""
+
+#: config/i386/i386-options.cc:2193
+#, gcc-internal-format
+msgid "address mode %qs not supported in the %s bit mode"
+msgstr ""
+
+#: config/i386/i386-options.cc:2204
+#, gcc-internal-format
+msgid "%<-mabi=ms%> not supported with X32 ABI"
+msgstr ""
+
+#: config/i386/i386-options.cc:2210
+#, gcc-internal-format
+msgid "%<-mabi=%s%> not supported with %<-fsanitize=address%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:2213
+#, gcc-internal-format
+msgid "%<-mabi=%s%> not supported with %<-fsanitize=kernel-address%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:2217
+#, gcc-internal-format
+msgid "%<-mabi=%s%> not supported with %<-fsanitize=thread%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:2223
+#, gcc-internal-format
+msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
+#: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
+#: config/i386/i386-options.cc:2286
+#, gcc-internal-format
+msgid "code model %qs not supported in the %s bit mode"
+msgstr ""
+
+#: config/i386/i386-options.cc:2255 config/i386/i386-options.cc:2267
+#, gcc-internal-format
+msgid "code model %qs not supported in x32 mode"
+msgstr ""
+
+#: config/i386/i386-options.cc:2310
+#, gcc-internal-format
+msgid "%<-masm=intel%> not supported in this configuration"
+msgstr ""
+
+#: config/i386/i386-options.cc:2315
+#, gcc-internal-format, gfc-internal-format
+msgid "%i-bit mode not compiled in"
+msgstr ""
+
+#: config/i386/i386-options.cc:2327
+#, gcc-internal-format
+msgid "%<generic%> CPU can be used only for %<-mtune=%> switch"
+msgstr ""
+
+#: config/i386/i386-options.cc:2329
+#, gcc-internal-format
+msgid "%<generic%> CPU can be used only for %<target(\"tune=\")%> attribute"
+msgstr ""
+
+#: config/i386/i386-options.cc:2336
+#, gcc-internal-format
+msgid "%<intel%> CPU can be used only for %<-mtune=%> switch"
+msgstr ""
+
+#: config/i386/i386-options.cc:2338
+#, gcc-internal-format
+msgid "%<intel%> CPU can be used only for %<target(\"tune=\")%> attribute"
+msgstr ""
+
+#: config/i386/i386-options.cc:2346 config/i386/i386-options.cc:2499
+#, gcc-internal-format
+msgid "CPU you selected does not support x86-64 instruction set"
+msgstr ""
+
+#: config/i386/i386-options.cc:2354
+#, gcc-internal-format
+msgid "%<-march=knl%> support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386-options.cc:2355
+#, gcc-internal-format
+msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386-options.cc:2360
+#, gcc-internal-format
+msgid "%<-march=knm%> support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386-options.cc:2361
+#, gcc-internal-format
+msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
+msgstr ""
+
+#: config/i386/i386-options.cc:2438
+#, gcc-internal-format
+msgid "bad value %qs for %<-march=%> switch"
+msgstr ""
+
+#: config/i386/i386-options.cc:2439
+#, gcc-internal-format
+msgid "bad value %qs for %<target(\"arch=\")%> attribute"
+msgstr ""
+
+#: config/i386/i386-options.cc:2461
+#, gcc-internal-format
+msgid "valid arguments to %<-march=%> switch are: %s; did you mean %qs?"
+msgstr ""
+
+#: config/i386/i386-options.cc:2463
+#, gcc-internal-format
+msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s; did you mean %qs?"
+msgstr ""
+
+#: config/i386/i386-options.cc:2468
+#, gcc-internal-format
+msgid "valid arguments to %<-march=%> switch are: %s"
+msgstr ""
+
+#: config/i386/i386-options.cc:2469
+#, gcc-internal-format
+msgid "valid arguments to %<target(\"arch=\")%> attribute are: %s"
+msgstr ""
+
+#: config/i386/i386-options.cc:2518
+#, gcc-internal-format
+msgid "bad value %qs for %<-mtune=%> switch"
+msgstr ""
+
+#: config/i386/i386-options.cc:2519
+#, gcc-internal-format
+msgid "bad value %qs for %<target(\"tune=\")%> attribute"
+msgstr ""
+
+#: config/i386/i386-options.cc:2540
+#, gcc-internal-format
+msgid "valid arguments to %<-mtune=%> switch are: %s; did you mean %qs?"
+msgstr ""
+
+#: config/i386/i386-options.cc:2542
+#, gcc-internal-format
+msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s; did you mean %qs?"
+msgstr ""
+
+#: config/i386/i386-options.cc:2547
+#, gcc-internal-format
+msgid "valid arguments to %<-mtune=%> switch are: %s"
+msgstr ""
+
+#: config/i386/i386-options.cc:2548
+#, gcc-internal-format
+msgid "valid arguments to %<target(\"tune=\")%> attribute are: %s"
+msgstr ""
+
+#: config/i386/i386-options.cc:2578
+#, gcc-internal-format
+msgid "%<-mregparm%> is ignored in 64-bit mode"
+msgstr ""
+
+#: config/i386/i386-options.cc:2580
+#, gcc-internal-format
+msgid "%<-mregparm%> is ignored for Intel MCU psABI"
+msgstr ""
+
+#: config/i386/i386-options.cc:2583
+#, gcc-internal-format
+msgid "%<-mregparm=%d%> is not between 0 and %d"
+msgstr ""
+
+#: config/i386/i386-options.cc:2609
+#, gcc-internal-format
+msgid "%<-m96bit-long-double%> is not compatible with this target"
+msgstr ""
+
+#: config/i386/i386-options.cc:2614
+#, gcc-internal-format
+msgid "%<-mrtd%> is ignored in 64bit mode"
+msgstr ""
+
+#: config/i386/i386-options.cc:2615
+#, gcc-internal-format
+msgid "%<target(\"rtd\")%> is ignored in 64bit mode"
+msgstr ""
+
+#: config/i386/i386-options.cc:2702
+#, gcc-internal-format
+msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
+msgstr ""
+
+#. We should not emit 512 bit instructions under AVX10.1-256
+#. when EVEX512 is enabled w/o any AVX512 features enabled.
+#. Disable EVEX512 bit for this.
+#: config/i386/i386-options.cc:2716
+#, gcc-internal-format
+msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
+msgstr ""
+
+#: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
+#, gcc-internal-format
+msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
+msgstr ""
+
+#: config/i386/i386-options.cc:2737
+#, gcc-internal-format
+msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
+msgstr ""
+
+#: config/i386/i386-options.cc:2747
+#, gcc-internal-format
+msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:2802
+#, gcc-internal-format
+msgid "%<-mpreferred-stack-boundary%> is not supported for this target"
+msgstr ""
+
+#: config/i386/i386-options.cc:2805
+#, gcc-internal-format
+msgid "%<-mpreferred-stack-boundary=%d%> is not between %d and %d"
+msgstr ""
+
+#: config/i386/i386-options.cc:2828
+#, gcc-internal-format
+msgid "%<-mincoming-stack-boundary=%d%> is not between %d and 12"
+msgstr ""
+
+#: config/i386/i386-options.cc:2841
+#, gcc-internal-format
+msgid "%<-mnop-mcount%> is not compatible with this target"
+msgstr ""
+
+#: config/i386/i386-options.cc:2844
+#, gcc-internal-format
+msgid "%<-mnop-mcount%> is not implemented for %<-fPIC%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:2850
+#, gcc-internal-format
+msgid "%<-msseregparm%> used without SSE enabled"
+msgstr ""
+
+#: config/i386/i386-options.cc:2851
+#, gcc-internal-format
+msgid "%<target(\"sseregparm\")%> used without SSE enabled"
+msgstr ""
+
+#: config/i386/i386-options.cc:2861
+#, gcc-internal-format
+msgid "SSE instruction set disabled, using 387 arithmetics"
+msgstr ""
+
+#: config/i386/i386-options.cc:2868
+#, gcc-internal-format
+msgid "387 instruction set disabled, using SSE arithmetics"
+msgstr ""
+
+#: config/i386/i386-options.cc:2918
+#, gcc-internal-format
+msgid "stack probing requires %<-maccumulate-outgoing-args%> for correctness"
+msgstr ""
+
+#: config/i386/i386-options.cc:2920
+#, gcc-internal-format
+msgid "stack probing requires %<target(\"accumulate-outgoing-args\")%> for correctness"
+msgstr ""
+
+#: config/i386/i386-options.cc:2934
+#, gcc-internal-format
+msgid "fixed ebp register requires %<-maccumulate-outgoing-args%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:2936
+#, gcc-internal-format
+msgid "fixed ebp register requires %<target(\"accumulate-outgoing-args\")%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:2996
+#, gcc-internal-format
+msgid "%<-mfentry%> isn%'t supported for 32-bit in combination with %<-fpic%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:2999
+#, gcc-internal-format
+msgid "%<-mno-fentry%> isn%'t compatible with SEH"
+msgstr ""
+
+#: config/i386/i386-options.cc:3003
+#, gcc-internal-format
+msgid "%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"
+msgstr ""
+
+#: config/i386/i386-options.cc:3125 config/loongarch/loongarch-opts.cc:898
+#, gcc-internal-format
+msgid "unknown option for %<-mrecip=%s%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:3184
+#, gcc-internal-format
+msgid "%qs is not a valid number in %<-mstack-protector-guard-offset=%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:3189
+#, gcc-internal-format
+msgid "%qs is not a valid offset in %<-mstack-protector-guard-offset=%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:3217
+#, gcc-internal-format
+msgid "%qs is not a valid base register in %<-mstack-protector-guard-reg=%>"
+msgstr ""
+
+#: config/i386/i386-options.cc:3271
+#, gcc-internal-format
+msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
+msgstr ""
+
+#: config/i386/i386-options.cc:3280
+#, gcc-internal-format
+msgid "%<-fcf-protection%> is not compatible with this target"
+msgstr ""
+
+#: config/i386/i386-options.cc:3447
+#, gcc-internal-format
+msgid "interrupt and naked attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3451 config/i386/i386-options.cc:3483
+#: config/i386/i386-options.cc:4027 config/i386/i386-options.cc:4037
+#, gcc-internal-format
+msgid "%qs and %qs attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3468
+#, gcc-internal-format
+msgid "only DWARF debug format is supported for interrupt service routine"
+msgstr ""
+
+#: config/i386/i386-options.cc:3529
+#, gcc-internal-format
+msgid "%<-mindirect-branch=%s%> and %<-mcmodel=large%> are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3539
+#, gcc-internal-format
+msgid "%<-mindirect-branch%> and %<-fcf-protection%> are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3574
+#, gcc-internal-format
+msgid "%<-mfunction-return=%s%> and %<-mcmodel=large%> are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3584
+#, gcc-internal-format
+msgid "%<-mfunction-return%> and %<-fcf-protection%> are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3692
+#, gcc-internal-format
+msgid "%s instructions aren%'t allowed in an exception service routine"
+msgstr ""
+
+#: config/i386/i386-options.cc:3694
+#, gcc-internal-format
+msgid "%s instructions aren%'t allowed in an interrupt service routine"
+msgstr ""
+
+#: config/i386/i386-options.cc:3698
+#, gcc-internal-format
+msgid "%s instructions aren%'t allowed in a function with the %<no_caller_saved_registers%> attribute"
+msgstr ""
+
+#: config/i386/i386-options.cc:3745 config/i386/i386-options.cc:3796
+#, gcc-internal-format
+msgid "fastcall and regparm attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3750
+#, gcc-internal-format
+msgid "regparam and thiscall attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3757 config/i386/i386-options.cc:3985
+#, gcc-internal-format
+msgid "%qE attribute requires an integer constant argument"
+msgstr ""
+
+#: config/i386/i386-options.cc:3763
+#, gcc-internal-format
+msgid "argument to %qE attribute larger than %d"
+msgstr ""
+
+#: config/i386/i386-options.cc:3788 config/i386/i386-options.cc:3831
+#, gcc-internal-format
+msgid "fastcall and cdecl attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3792
+#, gcc-internal-format
+msgid "fastcall and stdcall attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3800 config/i386/i386-options.cc:3849
+#, gcc-internal-format
+msgid "fastcall and thiscall attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3810 config/i386/i386-options.cc:3827
+#, gcc-internal-format
+msgid "stdcall and cdecl attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3814
+#, gcc-internal-format
+msgid "stdcall and fastcall attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3818 config/i386/i386-options.cc:3845
+#, gcc-internal-format
+msgid "stdcall and thiscall attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3835 config/i386/i386-options.cc:3853
+#, gcc-internal-format
+msgid "cdecl and thiscall attributes are not compatible"
+msgstr ""
+
+#: config/i386/i386-options.cc:3841
+#, gcc-internal-format
+msgid "%qE attribute is used for non-class method"
+msgstr ""
+
+#: config/i386/i386-options.cc:3945 config/rs6000/rs6000.cc:20762
+#, gcc-internal-format
+msgid "%qE incompatible attribute ignored"
+msgstr ""
+
+#: config/i386/i386-options.cc:3972
+#, gcc-internal-format
+msgid "%qE attribute only available for 32-bit"
+msgstr ""
+
+#: config/i386/i386-options.cc:3993
+#, gcc-internal-format
+msgid "argument to %qE attribute is neither zero, nor one"
+msgstr ""
+
+#: config/i386/i386-options.cc:4064 config/i386/i386-options.cc:4086
+#: config/ia64/ia64.cc:822 config/s390/s390.cc:1272
+#, gcc-internal-format
+msgid "%qE attribute requires a string constant argument"
+msgstr ""
+
+#: config/i386/i386-options.cc:4074 config/i386/i386-options.cc:4096
+#: config/s390/s390.cc:1301
+#, gcc-internal-format
+msgid "argument to %qE attribute is not (keep|thunk|thunk-inline|thunk-extern)"
+msgstr ""
+
+#: config/i386/i386-options.cc:4128
+#, gcc-internal-format
+msgid "interrupt service routine should have a pointer as the first argument"
+msgstr ""
+
+#: config/i386/i386-options.cc:4135
+#, gcc-internal-format
+msgid "interrupt service routine should have %qs as the second argument"
+msgstr ""
+
+#: config/i386/i386-options.cc:4146
+#, gcc-internal-format
+msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
+msgstr ""
+
+#: config/i386/i386-options.cc:4149
+#, gcc-internal-format
+msgid "interrupt service routine must return %<void%>"
+msgstr ""
+
+#: config/i386/i386.cc:1281
+#, gcc-internal-format
+msgid "calling %qD with attribute sseregparm without SSE/SSE2 enabled"
+msgstr ""
+
+#: config/i386/i386.cc:1284
+#, gcc-internal-format
+msgid "calling %qT with attribute sseregparm without SSE/SSE2 enabled"
+msgstr ""
+
+#: config/i386/i386.cc:1588
+#, gcc-internal-format
+msgid "X32 does not support %<ms_abi%> attribute"
+msgstr ""
+
+#: config/i386/i386.cc:1622
+#, gcc-internal-format
+msgid "%<ms_hook_prologue%> attribute is not compatible with nested function"
+msgstr ""
+
+#: config/i386/i386.cc:1974
+#, gcc-internal-format
+msgid "AVX512F vector argument without AVX512F enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.cc:1980
+#, gcc-internal-format
+msgid "AVX512F vector return without AVX512F enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.cc:1994
+#, gcc-internal-format
+msgid "AVX vector argument without AVX enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.cc:2000
+#, gcc-internal-format
+msgid "AVX vector return without AVX enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.cc:2016
+#, gcc-internal-format
+msgid "SSE vector argument without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.cc:2022
+#, gcc-internal-format
+msgid "SSE vector return without SSE enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.cc:2038
+#, gcc-internal-format
+msgid "MMX vector argument without MMX enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.cc:2044
+#, gcc-internal-format
+msgid "MMX vector return without MMX enabled changes the ABI"
+msgstr ""
+
+#: config/i386/i386.cc:2243
+#, gcc-internal-format
+msgid "the ABI of passing struct with a flexible array member has changed in GCC 4.4"
+msgstr ""
+
+#: config/i386/i386.cc:2372
+#, gcc-internal-format
+msgid "the ABI of passing union with %<long double%> has changed in GCC 4.4"
+msgstr ""
+
+#: config/i386/i386.cc:2507
+#, gcc-internal-format
+msgid "the ABI of passing structure with %<complex float%> member has changed in GCC 4.4"
+msgstr ""
+
+#: config/i386/i386.cc:2628
+msgid "the ABI of passing C structures with zero-width bit-fields has changed in GCC %{12.1%}"
+msgstr ""
+
+#: config/i386/i386.cc:2725 config/i386/i386.cc:4094 config/i386/i386.cc:4104
+#, gcc-internal-format
+msgid "SSE register return with SSE2 disabled"
+msgstr ""
+
+#: config/i386/i386.cc:2727
+#, gcc-internal-format
+msgid "SSE register return with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.cc:2734
+#, gcc-internal-format
+msgid "SSE register argument with SSE2 disabled"
+msgstr ""
+
+#: config/i386/i386.cc:2736
+#, gcc-internal-format
+msgid "SSE register argument with SSE disabled"
+msgstr ""
+
+#: config/i386/i386.cc:2756
+#, gcc-internal-format
+msgid "x87 register return with x87 disabled"
+msgstr ""
+
+#: config/i386/i386.cc:3084 config/i386/i386.cc:3329 config/i386/i386.cc:4122
+#, gcc-internal-format
+msgid "calling %qD with SSE calling convention without SSE/SSE2 enabled"
+msgstr ""
+
+#: config/i386/i386.cc:3086 config/i386/i386.cc:3331 config/i386/i386.cc:4124
+#, gcc-internal-format
+msgid "this is a GCC bug that can be worked around by adding attribute used to function called"
+msgstr ""
+
+#: config/i386/i386.cc:3734
+#, gcc-internal-format, gfc-internal-format
+msgid "the ABI for passing parameters with %d-byte alignment has changed in GCC 4.6"
+msgstr ""
+
+#: config/i386/i386.cc:6790
+#, gcc-internal-format
+msgid "%<-mcall-ms2sysv-xlogues%> is not compatible with %s"
+msgstr ""
+
+#: config/i386/i386.cc:8808
+#, gcc-internal-format
+msgid "%<ms_hook_prologue%> attribute is not compatible with %<-mfentry%> for 32-bit"
+msgstr ""
+
+#: config/i386/i386.cc:8898
+#, gcc-internal-format
+msgid "Dynamic Realign Argument Pointer (DRAP) not supported in interrupt service routine.  This may be worked around by avoiding functions with aggregate return."
+msgstr ""
+
+#: config/i386/i386.cc:9951
+#, gcc-internal-format
+msgid "Stack realignment not supported with %<__builtin_eh_return%>"
+msgstr ""
+
+#: config/i386/i386.cc:9956
+#, gcc-internal-format
+msgid "regparm nested function not supported with %<__builtin_eh_return%>"
+msgstr ""
+
+#: config/i386/i386.cc:10347
+#, gcc-internal-format
+msgid "%<-fsplit-stack%> does not support fastcall with nested function"
+msgstr ""
+
+#: config/i386/i386.cc:10367
+#, gcc-internal-format
+msgid "%<-fsplit-stack%> does not support 2 register parameters for a nested function"
+msgstr ""
+
+#. FIXME: We could make this work by pushing a register
+#. around the addition and comparison.
+#: config/i386/i386.cc:10378
+#, gcc-internal-format
+msgid "%<-fsplit-stack%> does not support 3 register parameters"
+msgstr ""
+
+#: config/i386/i386.cc:13564
+#, gcc-internal-format
+msgid "%<V%> modifier on non-integer register"
+msgstr ""
+
+#: config/i386/i386.cc:13575 config/i386/i386.cc:13589
+#, gcc-internal-format
+msgid "unsupported size for integer register"
+msgstr ""
+
+#: config/i386/i386.cc:13621
+#, gcc-internal-format
+msgid "extended registers have no high halves"
+msgstr ""
+
+#: config/i386/i386.cc:13636
+#, gcc-internal-format
+msgid "unsupported operand size for extended register"
+msgstr ""
+
+#: config/i386/i386.cc:13833 config/i386/i386.cc:13835
+#, gcc-internal-format
+msgid "non-integer operand used with operand code %<z%>"
+msgstr ""
+
+#: config/i386/i386.cc:17985
+#, gcc-internal-format
+msgid "empty class %qT parameter passing ABI changes in %<-fabi-version=12%> (GCC 8)"
+msgstr ""
+
+#: config/i386/i386.cc:22766
+msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
+msgstr ""
+
+#: config/i386/i386.cc:22847
+#, gcc-internal-format
+msgid "no register available for profiling %<-mcmodel=large%s%>"
+msgstr ""
+
+#: config/i386/i386.cc:22943
+#, gcc-internal-format
+msgid "profiling %<-mcmodel=large%> with PIC is not supported"
+msgstr ""
+
+#: config/i386/i386.cc:23802
+#, gcc-internal-format
+msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
+msgstr ""
+
+#: config/i386/i386.cc:25252
+#, gcc-internal-format
+msgid "unknown architecture specific memory model"
+msgstr ""
+
+#: config/i386/i386.cc:25259
+#, gcc-internal-format
+msgid "%<HLE_ACQUIRE%> not used with %<ACQUIRE%> or stronger memory model"
+msgstr ""
+
+#: config/i386/i386.cc:25266
+#, gcc-internal-format
+msgid "%<HLE_RELEASE%> not used with %<RELEASE%> or stronger memory model"
+msgstr ""
+
+#: config/i386/i386.cc:25953
+#, gcc-internal-format
+msgid "%<-fexcess-precision=16%> is not compatible with %<-mfpmath=387%>"
+msgstr ""
+
+#: config/i386/winnt.cc:83
+#, gcc-internal-format
+msgid "%qE attribute applies only to initialized variables with external linkage"
+msgstr ""
+
+#: config/i386/winnt.cc:156
+#, gcc-internal-format
+msgid "definition of static data member %q+D of dllimport%'d class"
+msgstr ""
+
+#: config/ia64/ia64-c.cc:50
+#, gcc-internal-format
+msgid "malformed %<#pragma builtin%>"
+msgstr ""
+
+#: config/ia64/ia64.cc:761 config/loongarch/loongarch.cc:7981
+#: config/loongarch/loongarch.cc:7991
+#, gcc-internal-format
+msgid "invalid argument of %qE attribute"
+msgstr ""
+
+#: config/ia64/ia64.cc:774
+#, gcc-internal-format
+msgid "an address area attribute cannot be specified for local variables"
+msgstr ""
+
+#: config/ia64/ia64.cc:781
+#, gcc-internal-format
+msgid "address area of %q+D conflicts with previous declaration"
+msgstr ""
+
+#: config/ia64/ia64.cc:789
+#, gcc-internal-format
+msgid "address area attribute cannot be specified for functions"
+msgstr ""
+
+#: config/ia64/ia64.cc:6035 config/pa/pa.cc:461 config/sh/sh.cc:8267
+#, gcc-internal-format
+msgid "value of %<-mfixed-range%> must have form REG1-REG2"
+msgstr ""
+
+#: config/ia64/ia64.cc:11312
+#, gcc-internal-format
+msgid "version attribute is not a string"
+msgstr ""
+
+#: config/iq2000/iq2000.cc:1864
+#, gcc-internal-format
+msgid "%<gp_offset%> (%ld) or %<end_offset%> (%ld) is less than zero"
+msgstr ""
+
+#: config/iq2000/iq2000.cc:2587
+#, gcc-internal-format
+msgid "argument %qd is not a constant"
+msgstr ""
+
+#: config/iq2000/iq2000.cc:2890 config/xtensa/xtensa.cc:3158
+#, gcc-internal-format
+msgid "%<PRINT_OPERAND_ADDRESS%>, null pointer"
+msgstr ""
+
+#: config/iq2000/iq2000.cc:3045
+#, gcc-internal-format
+msgid "%<PRINT_OPERAND%>: Unknown punctuation %<%c%>"
+msgstr ""
+
+#: config/iq2000/iq2000.cc:3054 config/xtensa/xtensa.cc:3007
+#, gcc-internal-format
+msgid "%<PRINT_OPERAND%> null pointer"
+msgstr ""
+
+#: config/loongarch/loongarch-builtins.cc:2999 config/mips/mips.cc:17397
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %d to the built-in must be a constant in range %d to %d"
+msgstr ""
+
+#: config/loongarch/loongarch-builtins.cc:3077 config/mips/mips.cc:17517
+#, gcc-internal-format
+msgid "failed to expand built-in function"
+msgstr ""
+
+#: config/loongarch/loongarch-builtins.cc:3116
+#, gcc-internal-format
+msgid "built-in function %qD is not enabled"
+msgstr ""
+
+#: config/loongarch/loongarch-cpu.cc:115
+#, gcc-internal-format
+msgid "unknown processor ID %<0x%x%>, some tuning parameters will fall back to default"
+msgstr ""
+
+#: config/loongarch/loongarch-cpu.cc:144
+#, gcc-internal-format
+msgid "unknown native base architecture %<0x%x%>, %qs failed"
+msgstr ""
+
+#: config/loongarch/loongarch-cpu.cc:173
+#, gcc-internal-format
+msgid "unknown native FPU type %<0x%x%>, %qs failed"
+msgstr ""
+
+#: config/loongarch/loongarch-cpu.cc:180
+#, gcc-internal-format
+msgid "floating-point unit %qs differs from PRID preset %qs"
+msgstr ""
+
+#: config/loongarch/loongarch-cpu.cc:204
+#, gcc-internal-format
+msgid "unknown SIMD extension (%qs disabled while %qs is enabled), disabling SIMD"
+msgstr ""
+
+#: config/loongarch/loongarch-cpu.cc:242
+#, gcc-internal-format
+msgid "detected base architecture %qs, but some of its features are not detected; the detected base architecture may be unreliable, only detected features will be enabled"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:235
+#, gcc-internal-format
+msgid "%<-m%s%> overrides %<-m%s=%s%>, adjusting ABI to %qs"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:252
+#, gcc-internal-format
+msgid "ABI changed (%qs to %qs) while multilib is disabled"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:281
+#: config/loongarch/loongarch-opts.cc:286
+#, gcc-internal-format
+msgid "%qs does not work on a cross compiler"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:375
+#, gcc-internal-format
+msgid "enabling %qs promotes %<%s%s%> to %<%s%s%>"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:387
+#, gcc-internal-format
+msgid "%qs is disabled by %<-m%s%>, because it requires %<%s%s%>"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:399
+#, gcc-internal-format
+msgid "%<-m%s=%s%> conflicts with %qs, which requires %<%s%s%>"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:443
+#, gcc-internal-format
+msgid "your native CPU architecture (%qs) does not support %qs ABI, falling back to %<-m%s=%s%>"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:448
+#, gcc-internal-format
+msgid "default CPU architecture (%qs) does not support %qs ABI, falling back to %<-m%s=%s%>"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:479
+#, gcc-internal-format
+msgid "unable to implement ABI %qs with instruction set %qs"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:501
+#, gcc-internal-format
+msgid "ABI %qs cannot be implemented due to limited instruction set %qs, falling back to %qs"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:512
+#, gcc-internal-format
+msgid "instruction set %qs cannot implement default ABI %qs, falling back to %qs"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:517
+#, gcc-internal-format
+msgid "no multilib-enabled ABI (%qs) can be implemented with instruction set %qs, falling back to %qs"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:533
+#, gcc-internal-format
+msgid "ABI %qs is not enabled at configure-time, the linker might report an error"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:536
+#, gcc-internal-format, gfc-internal-format
+msgid "ABI with startfiles: %s"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:550
+#, gcc-internal-format
+msgid "%qs is not supported, now cmodel is set to %qs"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:1023
+#, gcc-internal-format
+msgid "code model %qs is not compatible with %s"
+msgstr ""
+
+#: config/loongarch/loongarch-opts.cc:1089
+#, gcc-internal-format
+msgid "%qs cannot be used for compiling a shared library"
+msgstr ""
+
+#: config/loongarch/loongarch.cc:7953
+#, gcc-internal-format
+msgid "%qE attribute cannot be specified for thread-local variables"
+msgstr ""
+
+#: config/loongarch/loongarch.cc:7971
+#, gcc-internal-format
+msgid "%qE attribute cannot be specified for register variables"
+msgstr ""
+
+#: config/loongarch/loongarch.cc:7999
+#, gcc-internal-format
+msgid "multiple %qE attribute"
+msgstr ""
+
+#: config/m32c/m32c-pragma.cc:54
+#, gcc-internal-format
+msgid "junk at end of %<#pragma GCC memregs%> [0-16]"
+msgstr ""
+
+#: config/m32c/m32c-pragma.cc:61
+#, gcc-internal-format
+msgid "%<#pragma GCC memregs%> must precede any function declarations"
+msgstr ""
+
+#: config/m32c/m32c-pragma.cc:69 config/m32c/m32c-pragma.cc:76
+#, gcc-internal-format
+msgid "%<#pragma GCC memregs%> takes a number [0-16]"
+msgstr ""
+
+#: config/m32c/m32c-pragma.cc:104
+#, gcc-internal-format
+msgid "junk at end of %<#pragma ADDRESS%>"
+msgstr ""
+
+#: config/m32c/m32c-pragma.cc:109
+#, gcc-internal-format
+msgid "malformed %<#pragma ADDRESS%> variable address"
+msgstr ""
+
+#: config/m32c/m32c.cc:422
+#, gcc-internal-format
+msgid "invalid target memregs value %<%d%>"
+msgstr ""
+
+#: config/m32c/m32c.cc:2934
+#, gcc-internal-format
+msgid "%qE attribute is not supported for R8C target"
+msgstr ""
+
+#. The argument must be a constant integer.
+#: config/m32c/m32c.cc:2950 config/sh/sh.cc:8479 config/sh/sh.cc:8574
+#, gcc-internal-format
+msgid "%qE attribute argument not an integer constant"
+msgstr ""
+
+#: config/m32c/m32c.cc:2959
+#, gcc-internal-format
+msgid "%qE attribute argument should be between 18 to 255"
+msgstr ""
+
+#: config/m32c/m32c.cc:4082
+#, gcc-internal-format
+msgid "%<bank_switch%> has no effect on non-interrupt functions"
+msgstr ""
+
+#: config/m32c/m32c.cc:4189
+#, gcc-internal-format
+msgid "%<fast_interrupt%> attribute directive ignored"
+msgstr ""
+
+#: config/m32r/m32r.cc:412
+#, gcc-internal-format
+msgid "invalid argument of %qs attribute"
+msgstr ""
+
+#: config/m68k/m68k.cc:535
+#, gcc-internal-format
+msgid "%<-mcpu=%s%> conflicts with %<-march=%s%>"
+msgstr ""
+
+#: config/m68k/m68k.cc:606
+#, gcc-internal-format
+msgid "%<-mpcrel%> %<-fPIC%> is not currently supported on selected cpu"
+msgstr ""
+
+#: config/m68k/m68k.cc:670
+#, gcc-internal-format
+msgid "%<-falign-labels=%d%> is not supported"
+msgstr ""
+
+#: config/m68k/m68k.cc:677
+#, gcc-internal-format
+msgid "%<-falign-loops=%d%> is not supported"
+msgstr ""
+
+#: config/m68k/m68k.cc:685
+#, gcc-internal-format
+msgid "%<-fstack-limit-%> options are not supported on this cpu"
+msgstr ""
+
+#: config/m68k/m68k.cc:803
+#, gcc-internal-format
+msgid "multiple interrupt attributes not allowed"
+msgstr ""
+
+#: config/m68k/m68k.cc:810
+#, gcc-internal-format
+msgid "%<interrupt_thread%> is available only on fido"
+msgstr ""
+
+#: config/m68k/m68k.cc:1144 config/rs6000/rs6000-logue.cc:1742
+#, gcc-internal-format
+msgid "stack limit expression is not supported"
+msgstr ""
+
+#: config/m68k/m68k.cc:7138 config/s390/s390.cc:17178
+#, gcc-internal-format
+msgid "%<-fexcess-precision=16%> is not supported on this target"
+msgstr ""
+
+#: config/mcore/mcore.cc:2960
+#, gcc-internal-format
+msgid "initialized variable %q+D is marked dllimport"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:1760
+#, gcc-internal-format
+msgid "%<-fPIC%>/%<-fpic%> not supported for this target"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:1772
+#, gcc-internal-format
+msgid "%qs is an invalid argument to %<-mcpu=%>"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:1821
+#, gcc-internal-format
+msgid "%<-mxl-multiply-high%> can be used only with %<-mcpu=v6.00.a%> or greater"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:1838
+#, gcc-internal-format
+msgid "%<-mxl-reorder%> can be used only with %<-mcpu=v8.30.a%> or greater"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:1845
+#, gcc-internal-format
+msgid "%<-mxl-reorder%> requires %<-mxl-pattern-compare%> for %<-mcpu=v8.30.a%>"
+msgstr ""
+
+#: config/microblaze/microblaze.cc:1851
+#, gcc-internal-format
+msgid "%<-mxl-multiply-high%> requires %<-mno-xl-soft-mul%>"
+msgstr ""
+
+#: config/mips/mips.cc:1332 config/mips/mips.cc:1593 config/mips/mips.cc:1647
+#: config/riscv/riscv.cc:5812
+#, gcc-internal-format
+msgid "%qE attribute requires a string argument"
+msgstr ""
+
+#: config/mips/mips.cc:1340
+#, gcc-internal-format
+msgid "argument to %qE attribute is neither no, pcrel nor yes"
+msgstr ""
+
+#: config/mips/mips.cc:1506 config/mips/mips.cc:1510
+#, gcc-internal-format
+msgid "%qs attribute only applies to functions"
+msgstr ""
+
+#: config/mips/mips.cc:1520 config/mips/mips.cc:1526
+#, gcc-internal-format
+msgid "%qE cannot have both %qs and %qs attributes"
+msgstr ""
+
+#: config/mips/mips.cc:1555 config/mips/mips.cc:1561 config/nios2/nios2.cc:4489
+#, gcc-internal-format
+msgid "%qE redeclared with conflicting %qs attributes"
+msgstr ""
+
+#: config/mips/mips.cc:1601
+#, gcc-internal-format
+msgid "argument to %qE attribute is neither eic, nor %<vector=<line>%>"
+msgstr ""
+
+#: config/mips/mips.cc:1617
+#, gcc-internal-format
+msgid "interrupt vector to %qE attribute is not %<vector=(sw0|sw1|hw0|hw1|hw2|hw3|hw4|hw5)%>"
+msgstr ""
+
+#: config/mips/mips.cc:1654
+#, gcc-internal-format
+msgid "argument to %qE attribute is not intstack"
+msgstr ""
+
+#: config/mips/mips.cc:6232
+msgid "the ABI for passing a value containing zero-width fields before an adjacent 64-bit floating-point field was changed in GCC %{12.1%}"
+msgstr ""
+
+#: config/mips/mips.cc:6677
+msgid "the ABI for returning a value containing zero-width bit-fields but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
+msgstr ""
+
+#: config/mips/mips.cc:6701
+msgid "the ABI for returning a value with C++17 empty bases but otherwise an aggregate with only one or two floating-point fields was changed in GCC %{12.1%}"
+msgstr ""
+
+#: config/mips/mips.cc:8048
+#, gcc-internal-format
+msgid "cannot handle inconsistent calls to %qs"
+msgstr ""
+
+#: config/mips/mips.cc:11304
+#, gcc-internal-format
+msgid "the %<interrupt%> attribute requires a MIPS32r2 processor or greater"
+msgstr ""
+
+#: config/mips/mips.cc:11306
+#, gcc-internal-format
+msgid "interrupt handlers cannot be MIPS16 functions"
+msgstr ""
+
+#: config/mips/mips.cc:12310
+#, gcc-internal-format
+msgid "%<-fstack-check=specific%> not implemented for MIPS16"
+msgstr ""
+
+#: config/mips/mips.cc:17649
+#, gcc-internal-format
+msgid "built-in function %qE not supported for MIPS16"
+msgstr ""
+
+#: config/mips/mips.cc:18257
+#, gcc-internal-format
+msgid "%qs does not support MIPS16 code"
+msgstr ""
+
+#: config/mips/mips.cc:20070
+#, gcc-internal-format
+msgid "MIPS16 PIC for ABIs other than o32 and o64"
+msgstr ""
+
+#: config/mips/mips.cc:20073
+#, gcc-internal-format
+msgid "MIPS16 %<-mxgot%> code"
+msgstr ""
+
+#: config/mips/mips.cc:20076
+#, gcc-internal-format
+msgid "%<hard-float%> MIPS16 code for ABIs other than o32 and o64"
+msgstr ""
+
+#: config/mips/mips.cc:20079
+#, gcc-internal-format
+msgid "MSA MIPS16 code"
+msgstr ""
+
+#: config/mips/mips.cc:20082
+#, gcc-internal-format
+msgid "MIPS16 requires %<-mexplicit-relocs%>"
+msgstr ""
+
+#: config/mips/mips.cc:20273 config/mips/mips.cc:20278
+#: config/mips/mips.cc:20368 config/mips/mips.cc:20370
+#: config/mips/mips.cc:20400 config/mips/mips.cc:20410
+#: config/mips/mips.cc:20516 config/mips/mips.cc:20540
+#, gcc-internal-format, gfc-internal-format
+msgid "unsupported combination: %s"
+msgstr ""
+
+#: config/mips/mips.cc:20313
+#, gcc-internal-format
+msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor"
+msgstr ""
+
+#: config/mips/mips.cc:20323
+#, gcc-internal-format
+msgid "%<-march=%s%> is not compatible with the selected ABI"
+msgstr ""
+
+#: config/mips/mips.cc:20338
+#, gcc-internal-format
+msgid "%<-mgp64%> used with a 32-bit processor"
+msgstr ""
+
+#: config/mips/mips.cc:20340
+#, gcc-internal-format
+msgid "%<-mgp32%> used with a 64-bit ABI"
+msgstr ""
+
+#: config/mips/mips.cc:20342
+#, gcc-internal-format
+msgid "%<-mgp64%> used with a 32-bit ABI"
+msgstr ""
+
+#: config/mips/mips.cc:20365
+#, gcc-internal-format
+msgid "the %qs architecture does not support %<-mfp32%>"
+msgstr ""
+
+#: config/mips/mips.cc:20374
+#, gcc-internal-format
+msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions"
+msgstr ""
+
+#: config/mips/mips.cc:20377
+#, gcc-internal-format
+msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI"
+msgstr ""
+
+#: config/mips/mips.cc:20398
+#, gcc-internal-format
+msgid "%<-mfpxx%> can only be used with the o32 ABI"
+msgstr ""
+
+#: config/mips/mips.cc:20402
+#, gcc-internal-format
+msgid "%<-march=%s%> requires %<-mfp32%>"
+msgstr ""
+
+#: config/mips/mips.cc:20404
+#, gcc-internal-format
+msgid "%<-mfpxx%> requires %<-mlra%>"
+msgstr ""
+
+#. We have traditionally allowed non-abicalls code to use
+#. an LP64 form of o64.  However, it would take a bit more
+#. effort to support the combination of 32-bit GOT entries
+#. and 64-bit pointers, so we treat the abicalls case as
+#. an error.
+#: config/mips/mips.cc:20429
+#, gcc-internal-format
+msgid "the combination of %qs and %qs is incompatible with %qs"
+msgstr ""
+
+#: config/mips/mips.cc:20482
+#, gcc-internal-format
+msgid "the %qs architecture does not support branch-likely instructions"
+msgstr ""
+
+#: config/mips/mips.cc:20497
+#, gcc-internal-format
+msgid "the %qs architecture does not support madd or msub instructions"
+msgstr ""
+
+#: config/mips/mips.cc:20511
+#, gcc-internal-format
+msgid "the %qs architecture does not support odd single-precision registers"
+msgstr ""
+
+#: config/mips/mips.cc:20524
+#, gcc-internal-format
+msgid "unsupported combination: %qs%s %s"
+msgstr ""
+
+#: config/mips/mips.cc:20533
+#, gcc-internal-format
+msgid "unsupported combination: %qs %s"
+msgstr ""
+
+#: config/mips/mips.cc:20548
+#, gcc-internal-format
+msgid "cannot generate position-independent code for %qs"
+msgstr ""
+
+#: config/mips/mips.cc:20551
+#, gcc-internal-format
+msgid "position-independent code requires %qs"
+msgstr ""
+
+#: config/mips/mips.cc:20584
+#, gcc-internal-format
+msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
+msgstr ""
+
+#: config/mips/mips.cc:20592 config/mips/mips.cc:20595
+#, gcc-internal-format
+msgid "cannot use small-data accesses for %qs"
+msgstr ""
+
+#: config/mips/mips.cc:20612
+#, gcc-internal-format
+msgid "the %qs architecture does not support %<-m%s=legacy%>"
+msgstr ""
+
+#: config/mips/mips.cc:20619
+#, gcc-internal-format
+msgid "the %qs architecture does not support %<-m%s=2008%>"
+msgstr ""
+
+#: config/mips/mips.cc:20637
+#, gcc-internal-format
+msgid "%<-mips3d%> requires %<-mpaired-single%>"
+msgstr ""
+
+#: config/mips/mips.cc:20647
+#, gcc-internal-format
+msgid "%qs must be used with %qs"
+msgstr ""
+
+#: config/mips/mips.cc:20657
+#, gcc-internal-format
+msgid "%<-mmsa%> must be used with %<-mfp64%> and %<-mhard-float%>"
+msgstr ""
+
+#: config/mips/mips.cc:20664
+#, gcc-internal-format
+msgid "the %qs architecture does not support paired-single instructions"
+msgstr ""
+
+#: config/mips/mips.cc:20673
+#, gcc-internal-format
+msgid "%qs requires a target that provides the %qs instruction"
+msgstr ""
+
+#: config/mips/mips.cc:20684
+#, gcc-internal-format
+msgid "the %qs architecture does not support DSP instructions"
+msgstr ""
+
+#: config/mips/mips.cc:20694
+#, gcc-internal-format
+msgid "%<-mloongson-mmi%> must be used with %<-mhard-float%>"
+msgstr ""
+
+#: config/mips/mips.cc:20704
+#, gcc-internal-format
+msgid "%<-mloongson-ext2%> must be used with %<-mloongson-ext%>"
+msgstr ""
+
+#: config/mips/mips.cc:20799
+#, gcc-internal-format
+msgid "%qs requires branch-likely instructions"
+msgstr ""
+
+#: config/mips/mips.cc:20803
+#, gcc-internal-format
+msgid "the %qs architecture does not support the synci instruction"
+msgstr ""
+
+#: config/mips/mips.cc:21639
+#, gcc-internal-format
+msgid "mips16 function profiling"
+msgstr ""
+
+#: config/mmix/mmix.cc:318
+#, gcc-internal-format
+msgid "%<-f%s%> not supported: ignored"
+msgstr ""
+
+#: config/mmix/mmix.cc:783
+#, gcc-internal-format
+msgid "support for mode %qs"
+msgstr ""
+
+#: config/mmix/mmix.cc:797
+#, gcc-internal-format, gfc-internal-format
+msgid "too large function value type, needs %d registers, have only %d registers for this"
+msgstr ""
+
+#: config/mmix/mmix.cc:978
+#, gcc-internal-format
+msgid "%<function_profiler%> support for MMIX"
+msgstr ""
+
+#: config/mmix/mmix.cc:1002
+#, gcc-internal-format
+msgid "MMIX Internal: Last named vararg would not fit in a register"
+msgstr ""
+
+#: config/mmix/mmix.cc:1643 config/mmix/mmix.cc:1667 config/mmix/mmix.cc:1774
+#, gcc-internal-format, gfc-internal-format
+msgid "MMIX Internal: Bad register: %d"
+msgstr ""
+
+#. Presumably there's a missing case above if we get here.
+#: config/mmix/mmix.cc:1766
+#, gcc-internal-format
+msgid "MMIX Internal: Missing %qc case in %<mmix_print_operand%>"
+msgstr ""
+
+#: config/mmix/mmix.cc:2055
+#, gcc-internal-format
+msgid "stack frame not a multiple of 8 bytes: %wd"
+msgstr ""
+
+#: config/mmix/mmix.cc:2308
+#, gcc-internal-format
+msgid "stack frame not a multiple of octabyte: %wd"
+msgstr ""
+
+#: config/mmix/mmix.cc:2594 config/mmix/mmix.cc:2653
+#, gcc-internal-format, gfc-internal-format
+msgid "MMIX Internal: %s is not a shiftable integer"
+msgstr ""
+
+#: config/mn10300/mn10300.cc:107
+#, gcc-internal-format
+msgid "%<-mtune=%> expects mn10300, am33, am33-2, or am34"
+msgstr ""
+
+#: config/msp430/driver-msp430.cc:38
+#, gcc-internal-format
+msgid "expected an argument to %<msp430_select_cpu%>"
+msgstr ""
+
+#: config/msp430/driver-msp430.cc:69
+#, gcc-internal-format
+msgid "%<msp430_set_driver_var%> expects 2 arguments"
+msgstr ""
+
+#: config/msp430/driver-msp430.cc:75
+#, gcc-internal-format
+msgid "unhandled arguments %qs and %qs to %<msp430_set_driver_var%>"
+msgstr ""
+
+#: config/msp430/driver-msp430.cc:92
+#, gcc-internal-format
+msgid "unexpected argument to %<msp430_select_hwmult_lib%>: %s"
+msgstr ""
+
+#: config/msp430/driver-msp430.cc:141
+#, gcc-internal-format
+msgid "unexpected first argument to %<msp430_select_hwmult_lib%>: %s"
+msgstr ""
+
+#: config/msp430/driver-msp430.cc:146
+#, gcc-internal-format
+msgid "%<msp430_select_hwmult_lib%> needs one or more arguments"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:258
+#, gcc-internal-format
+msgid "unexpected error opening %<devices.csv%>"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:297
+#, gcc-internal-format
+msgid "%<CPU_TYPE%> column heading is missing from %<devices.csv%>"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:300
+#, gcc-internal-format
+msgid "%<MPY_TYPE%> column heading is missing from %<devices.csv%>"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:303
+#, gcc-internal-format
+msgid "%<CPU_TYPE%> and %<MPY_TYPE%> column headings are missing from %<devices.csv%>"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:315
+#, gcc-internal-format
+msgid "format of column headings in %<devices.csv%> is incorrect"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:348
+#, gcc-internal-format
+msgid "invalid %<CPU_TYPE%> value of %qs read from %<devices.csv%> for %qs"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:368
+#, gcc-internal-format
+msgid "invalid %<MPY_TYPE%> value of %qs read from %<devices.csv%> for %qs"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:384
+#, gcc-internal-format
+msgid "unknown error reading %s from %<devices.csv%>"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:471
+#, gcc-internal-format
+msgid "unrecognized %<hwmpy%> field in %<hard_msp430_mcu_data[%d]%>: %qd"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:482
+#, gcc-internal-format
+msgid "unrecognized %<revision%> field in %<hard_msp430_mcu_data[%d]%>: %qd"
+msgstr ""
+
+#: config/msp430/msp430-devices.cc:488
+#, gcc-internal-format
+msgid "could not locate MCU data file %<devices.csv%>"
+msgstr ""
+
+#: config/msp430/msp430.cc:181
+#, gcc-internal-format
+msgid "MCU %qs supports %s ISA but %<-mcpu%> option is set to %s"
+msgstr ""
+
+#: config/msp430/msp430.cc:189
+#, gcc-internal-format
+msgid "MCU %qs does not have hardware multiply support, but %<-mhwmult%> is set to %s"
+msgstr ""
+
+#: config/msp430/msp430.cc:198
+#, gcc-internal-format
+msgid "MCU %qs supports %s hardware multiply, but %<-mhwmult%> is set to 16-bit"
+msgstr ""
+
+#: config/msp430/msp430.cc:203
+#, gcc-internal-format
+msgid "MCU %qs supports %s hardware multiply, but %<-mhwmult%> is set to 32-bit"
+msgstr ""
+
+#: config/msp430/msp430.cc:208
+#, gcc-internal-format
+msgid "MCU %qs supports %s hardware multiply, but %<-mhwmult%> is set to f5series"
+msgstr ""
+
+#: config/msp430/msp430.cc:225
+#, gcc-internal-format
+msgid "unrecognized MCU name %qs, assuming that it is just a MSP430X with no hardware multiply; use the %<-mcpu%> and %<-mhwmult%> options to set these explicitly"
+msgstr ""
+
+#: config/msp430/msp430.cc:232
+#, gcc-internal-format
+msgid "unrecognized MCU name %qs, assuming that it has no hardware multiply; use the %<-mhwmult%> option to set this explicitly"
+msgstr ""
+
+#: config/msp430/msp430.cc:244
+#, gcc-internal-format
+msgid "unrecognized MCU name %qs, assuming that it just supports the MSP430X ISA; use the %<-mcpu%> option to set the ISA explicitly"
+msgstr ""
+
+#: config/msp430/msp430.cc:250
+#, gcc-internal-format
+msgid "Unrecognized MCU name %qs."
+msgstr ""
+
+#: config/msp430/msp430.cc:255
+#, gcc-internal-format
+msgid "%<-mlarge%> requires a 430X-compatible %<-mmcu=%>"
+msgstr ""
+
+#: config/msp430/msp430.cc:258
+#, gcc-internal-format
+msgid "%<-mcode-region=either%> requires the large memory model (%<-mlarge%>)"
+msgstr ""
+
+#: config/msp430/msp430.cc:261
+#, gcc-internal-format
+msgid "%<-mcode-region=upper%> requires the large memory model (%<-mlarge%>)"
+msgstr ""
+
+#: config/msp430/msp430.cc:265
+#, gcc-internal-format
+msgid "%<-mdata-region=either%> requires the large memory model (%<-mlarge%>)"
+msgstr ""
+
+#: config/msp430/msp430.cc:268
+#, gcc-internal-format
+msgid "%<-mdata-region=upper%> requires the large memory model (%<-mlarge%>)"
+msgstr ""
+
+#: config/msp430/msp430.cc:291
+#, gcc-internal-format
+msgid "%<-fuse-cxa-atexit%> is not supported for msp430-elf"
+msgstr ""
+
+#: config/msp430/msp430.cc:296
+#, gcc-internal-format
+msgid "GCC must be configured with %<--enable-newlib-nano-formatted-io%> to use %<-mtiny-printf%>"
+msgstr ""
+
+#: config/msp430/msp430.cc:1897
+#, gcc-internal-format
+msgid "unrecognized interrupt vector argument of %qE attribute"
+msgstr ""
+
+#: config/msp430/msp430.cc:1906
+#, gcc-internal-format
+msgid "numeric argument of %qE attribute must be in range [0-63]"
+msgstr ""
+
+#: config/msp430/msp430.cc:1912
+#, gcc-internal-format
+msgid "argument of %qE attribute is not a string constant or number"
+msgstr ""
+
+#: config/msp430/msp430.cc:1941
+#, gcc-internal-format
+msgid "critical attribute has no effect on interrupt functions"
+msgstr ""
+
+#: config/msp430/msp430.cc:1977
+#, gcc-internal-format
+msgid "ignoring attribute %qE because it conflicts with attribute %<noinit%>"
+msgstr ""
+
+#: config/msp430/msp430.cc:1980
+#, gcc-internal-format
+msgid "ignoring attribute %qE because it conflicts with attribute %<section%>"
+msgstr ""
+
+#: config/msp430/msp430.cc:1983
+#, gcc-internal-format
+msgid "ignoring attribute %qE because it conflicts with attribute %<persistent%>"
+msgstr ""
+
+#: config/msp430/msp430.cc:1993
+#, gcc-internal-format
+msgid "%qE attribute ignored.  Large memory model (%<-mlarge%>) is required."
+msgstr ""
+
+#: config/msp430/msp430.cc:2101
+#, gcc-internal-format
+msgid "ignoring attribute %qE because it conflicts with attribute %<lower%>"
+msgstr ""
+
+#: config/msp430/msp430.cc:2104
+#, gcc-internal-format
+msgid "ignoring attribute %qE because it conflicts with attribute %<upper%>"
+msgstr ""
+
+#: config/msp430/msp430.cc:2107
+#, gcc-internal-format
+msgid "ignoring attribute %qE because it conflicts with attribute %<either%>"
+msgstr ""
+
+#: config/msp430/msp430.cc:2267
+#, gcc-internal-format
+msgid "argument to interrupt attribute is unsupported for weak functions"
+msgstr ""
+
+#: config/msp430/msp430.cc:2747 config/pru/pru.cc:2989
+#, gcc-internal-format
+msgid "%<__delay_cycles%> only takes constant arguments"
+msgstr ""
+
+#: config/msp430/msp430.cc:2757 config/pru/pru.cc:2998
+#, gcc-internal-format
+msgid "%<__delay_cycles%> only takes non-negative cycle counts"
+msgstr ""
+
+#: config/msp430/msp430.cc:2778 config/pru/pru.cc:3011
+#, gcc-internal-format
+msgid "%<__delay_cycles%> is limited to 32-bit loop counts"
+msgstr ""
+
+#: config/msp430/msp430.cc:2849
+#, gcc-internal-format
+msgid "MSP430 built-in functions only work inside interrupt handlers"
+msgstr ""
+
+#: config/msp430/msp430.cc:2861 config/pru/pru.cc:3082 config/rx/rx.cc:2667
+#: config/xtensa/xtensa.cc:4214 config/xtensa/xtensa.cc:4240
+#, gcc-internal-format
+msgid "bad builtin code"
+msgstr ""
+
+#: config/nds32/nds32-intrinsic.cc:126 config/nios2/nios2.cc:3840
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid argument to built-in function %s"
+msgstr ""
+
+#: config/nds32/nds32-intrinsic.cc:131
+#, gcc-internal-format, gfc-internal-format
+msgid "constant argument out of range for %s"
+msgstr ""
+
+#: config/nds32/nds32-intrinsic.cc:1003
+#, gcc-internal-format
+msgid "don%'t support DSP extension instructions"
+msgstr ""
+
+#: config/nds32/nds32-intrinsic.cc:1016
+#, gcc-internal-format
+msgid "this built-in function is only available on the v3s or v3f toolchain"
+msgstr ""
+
+#: config/nds32/nds32-intrinsic.cc:1028
+#, gcc-internal-format
+msgid "this built-in function is only available on the v3f toolchain"
+msgstr ""
+
+#: config/nds32/nds32-intrinsic.cc:1043
+#, gcc-internal-format
+msgid "this built-in function not support on the v3m toolchain"
+msgstr ""
+
+#: config/nds32/nds32-intrinsic.cc:1062
+#, gcc-internal-format
+msgid "don%'t support performance extension instructions"
+msgstr ""
+
+#: config/nds32/nds32-intrinsic.cc:1074
+#, gcc-internal-format
+msgid "don%'t support performance extension version 2 instructions"
+msgstr ""
+
+#: config/nds32/nds32-intrinsic.cc:1086
+#, gcc-internal-format
+msgid "don%'t support string extension instructions"
+msgstr ""
+
+#: config/nds32/nds32-isr.cc:116 config/nds32/nds32-isr.cc:207
+#, gcc-internal-format
+msgid "require id argument in the string"
+msgstr ""
+
+#: config/nds32/nds32-isr.cc:131
+#, gcc-internal-format
+msgid "invalid id value for interrupt attribute"
+msgstr ""
+
+#: config/nds32/nds32-isr.cc:221
+#, gcc-internal-format
+msgid "invalid id value for exception attribute"
+msgstr ""
+
+#: config/nds32/nds32-isr.cc:617
+#, gcc-internal-format
+msgid "multiple save register attributes to function %qD"
+msgstr ""
+
+#: config/nds32/nds32-isr.cc:630
+#, gcc-internal-format
+msgid "multiple nested types attributes to function %qD"
+msgstr ""
+
+#: config/nds32/nds32-isr.cc:642
+#, gcc-internal-format
+msgid "multiple interrupt attributes to function %qD"
+msgstr ""
+
+#: config/nds32/nds32-isr.cc:646
+#, gcc-internal-format
+msgid "cannot use interrupt attributes to function %qD under linux toolchain"
+msgstr ""
+
+#: config/nds32/nds32-isr.cc:649
+#, gcc-internal-format
+msgid "cannot use exception attributes to function %qD under linux toolchain"
+msgstr ""
+
+#: config/nds32/nds32-isr.cc:652
+#, gcc-internal-format
+msgid "cannot use reset attributes to function %qD under linux toolchain"
+msgstr ""
+
+#. Trampoline is not supported on reduced-set registers yet.
+#: config/nds32/nds32.cc:2408 config/nds32/nds32.cc:2462
+#: config/nds32/nds32.cc:3574 config/nds32/nds32.cc:3671
+#: config/nds32/nds32.cc:3686 config/nds32/nds32.cc:3692
+#: config/nds32/nds32.cc:3768 config/nds32/nds32.cc:3774
+#: config/nds32/nds32.cc:3806
+#, gcc-internal-format
+msgid "a nested function is not supported for reduced registers"
+msgstr ""
+
+#. The enum index value for array size is out of range.
+#: config/nds32/nds32.cc:3465
+#, gcc-internal-format
+msgid "intrinsic register index is out of range"
+msgstr ""
+
+#: config/nds32/nds32.cc:3481 config/nds32/nds32.cc:3488
+#: config/nds32/nds32.cc:3495 config/nds32/nds32.cc:3502
+#: config/nds32/nds32.cc:3509
+#, gcc-internal-format
+msgid "CCTL intrinsic function subtype out of range"
+msgstr ""
+
+#: config/nds32/nds32.cc:3946
+#, gcc-internal-format
+msgid "cannot use %<indirect_call%> attribute under linux toolchain"
+msgstr ""
+
+#: config/nds32/nds32.cc:3954
+#, gcc-internal-format
+msgid "%<indirect_call%> attribute cannot apply for static function"
+msgstr ""
+
+#: config/nds32/nds32.cc:4043
+#, gcc-internal-format
+msgid "invalid id value for interrupt/exception attribute"
+msgstr ""
+
+#: config/nds32/nds32.cc:4071
+#, gcc-internal-format
+msgid "invalid id value for reset attribute"
+msgstr ""
+
+#: config/nds32/nds32.cc:4087
+#, gcc-internal-format
+msgid "invalid nmi function for reset attribute"
+msgstr ""
+
+#: config/nds32/nds32.cc:4100
+#, gcc-internal-format
+msgid "invalid warm function for reset attribute"
+msgstr ""
+
+#: config/nds32/nds32.cc:4151
+#, gcc-internal-format
+msgid "not support %<-fpic%> option for v3m toolchain"
+msgstr ""
+
+#: config/nds32/nds32.cc:4184
+#, gcc-internal-format
+msgid "Disable FPU ISA, the ABI option must be enable %<-mfloat-abi=soft%>"
+msgstr ""
+
+#: config/nds32/nds32.cc:4187
+#, gcc-internal-format
+msgid "%<-mabi=2fp+%> option only support when FPU available, must be enable %<-mext-fpu-sp%> or %<-mext-fpu-dp%>"
+msgstr ""
+
+#: config/nios2/nios2.cc:574
+#, gcc-internal-format
+msgid "Unknown form for stack limit expression"
+msgstr ""
+
+#: config/nios2/nios2.cc:1183
+#, gcc-internal-format
+msgid "switch %<-mcustom-%s%> is required for double-precision floating-point"
+msgstr ""
+
+#: config/nios2/nios2.cc:1192
+#, gcc-internal-format
+msgid "conflicting use of %<-mcustom%> switches, target attributes, and/or %<__builtin_custom_%> functions"
+msgstr ""
+
+#: config/nios2/nios2.cc:1316
+#, gcc-internal-format
+msgid "ignoring unrecognized switch %<-mcustom-fpu-cfg%> value %<%s%>"
+msgstr ""
+
+#: config/nios2/nios2.cc:1335
+#, gcc-internal-format
+msgid "switch %<-mcustom-%s%> value %d must be between 0 and 255"
+msgstr ""
+
+#: config/nios2/nios2.cc:1358
+#, gcc-internal-format
+msgid "position-independent code requires the Linux ABI"
+msgstr ""
+
+#: config/nios2/nios2.cc:1361
+#, gcc-internal-format
+msgid "PIC support for %<-fstack-limit-symbol%>"
+msgstr ""
+
+#: config/nios2/nios2.cc:1383
+#, gcc-internal-format
+msgid "%<-mgpopt%> not supported with PIC"
+msgstr ""
+
+#: config/nios2/nios2.cc:1385
+#, gcc-internal-format
+msgid "%<-mgprel-sec=%> not supported with PIC"
+msgstr ""
+
+#: config/nios2/nios2.cc:1387
+#, gcc-internal-format
+msgid "%<-mr0rel-sec=%> not supported with PIC"
+msgstr ""
+
+#: config/nios2/nios2.cc:1395
+#, gcc-internal-format
+msgid "%<-mgprel-sec=%> argument is not a valid regular expression"
+msgstr ""
+
+#: config/nios2/nios2.cc:1401
+#, gcc-internal-format
+msgid "%<-mr0rel-sec=%> argument is not a valid regular expression"
+msgstr ""
+
+#: config/nios2/nios2.cc:1412
+#, gcc-internal-format
+msgid "BMX instructions are only supported with R2 architecture"
+msgstr ""
+
+#: config/nios2/nios2.cc:1414
+#, gcc-internal-format
+msgid "CDX instructions are only supported with R2 architecture"
+msgstr ""
+
+#: config/nios2/nios2.cc:1419
+#, gcc-internal-format
+msgid "R2 architecture is little-endian only"
+msgstr ""
+
+#: config/nios2/nios2.cc:3585
+#, gcc-internal-format
+msgid "cannot call %<__builtin_custom_%s%> without specifying switch %<-mcustom-%s%>"
+msgstr ""
+
+#: config/nios2/nios2.cc:3694
+#, gcc-internal-format
+msgid "custom instruction opcode must be a compile-time constant in the range 0-255 for %<__builtin_custom_%s%>"
+msgstr ""
+
+#: config/nios2/nios2.cc:3899
+#, gcc-internal-format, gfc-internal-format
+msgid "control register number must be in range 0-31 for %s"
+msgstr ""
+
+#: config/nios2/nios2.cc:3927
+#, gcc-internal-format, gfc-internal-format
+msgid "register number must be in range 0-31 for %s"
+msgstr ""
+
+#: config/nios2/nios2.cc:3934
+#, gcc-internal-format, gfc-internal-format
+msgid "immediate value must fit into a %d-bit integer for %s"
+msgstr ""
+
+#: config/nios2/nios2.cc:3984
+#, gcc-internal-format
+msgid "the ENI instruction operand must be either 0 or 1"
+msgstr ""
+
+#: config/nios2/nios2.cc:4012
+#, gcc-internal-format, gfc-internal-format
+msgid "built-in function %s requires Nios II R%d"
+msgstr ""
+
+#: config/nios2/nios2.cc:4092
+#, gcc-internal-format
+msgid "switch %<-mcustom-%s%> conflicts with switch %<-mcustom-%s%>"
+msgstr ""
+
+#: config/nios2/nios2.cc:4099 config/nios2/nios2.cc:4110
+#, gcc-internal-format
+msgid "call to %<__builtin_custom_%s%> conflicts with switch %<-mcustom-%s%>"
+msgstr ""
+
+#: config/nios2/nios2.cc:4253
+#, gcc-internal-format
+msgid "%<custom-fpu-cfg%> option does not support %<no-%>"
+msgstr ""
+
+#: config/nios2/nios2.cc:4258
+#, gcc-internal-format
+msgid "%<custom-fpu-cfg%> option requires configuration argument"
+msgstr ""
+
+#: config/nios2/nios2.cc:4286
+#, gcc-internal-format
+msgid "%<no-custom-%s%> does not accept arguments"
+msgstr ""
+
+#: config/nios2/nios2.cc:4301
+#, gcc-internal-format
+msgid "%<custom-%s=%> requires argument"
+msgstr ""
+
+#: config/nios2/nios2.cc:4311
+#, gcc-internal-format
+msgid "%<custom-%s=%> argument should be a non-negative integer"
+msgstr ""
+
+#: config/nios2/nios2.cc:4323
+#, gcc-internal-format
+msgid "%<custom-%s=%> is not recognized as FPU instruction"
+msgstr ""
+
+#: config/nios2/nios2.cc:4330
+#, gcc-internal-format
+msgid "invalid custom instruction option %qs"
+msgstr ""
+
+#: config/nvptx/mkoffload.cc:93
+#, gcc-internal-format
+msgid "deleting file %s: %m"
+msgstr ""
+
+#: config/nvptx/mkoffload.cc:118
+#, gcc-internal-format
+msgid "malformed ptx file"
+msgstr ""
+
+#: config/nvptx/mkoffload.cc:335
+#, gcc-internal-format
+msgid "%<omp requires reverse_offload%> requires at least %<sm_35%> for %<-foffload-options=nvptx-none=-march=%> - disabling offload-code generation for this device type"
+msgstr ""
+
+#: config/nvptx/mkoffload.cc:419 config/nvptx/mkoffload.cc:491
+#, gcc-internal-format
+msgid "Cannot find function declaration for %qs"
+msgstr ""
+
+#: config/nvptx/mkoffload.cc:591
+#, gcc-internal-format
+msgid "environment variable COLLECT_GCC_OPTIONS must be set"
+msgstr ""
+
+#: config/nvptx/mkoffload.cc:650
+#, gcc-internal-format
+msgid "COLLECT_GCC must be set."
+msgstr ""
+
+#: config/nvptx/mkoffload.cc:698
+#, gcc-internal-format
+msgid "offload compiler %s not found (consider using %<-B%>)"
+msgstr ""
+
+#: config/nvptx/mkoffload.cc:721
+#, gcc-internal-format
+msgid "unrecognizable argument of option "
+msgstr ""
+
+#: config/nvptx/mkoffload.cc:797
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot open '%s'"
+msgstr ""
+
+#: config/nvptx/mkoffload.cc:853
+#, gcc-internal-format
+msgid "cannot open intermediate ptx file"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:206
+#, gcc-internal-format
+msgid "option %s is not supported together with %<-fopenacc%>"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:325
+#, gcc-internal-format
+msgid "PTX version (%<-mptx%>) needs to be at least %s to support selected %<-misa%> (sm_%s)"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:340
+#, gcc-internal-format
+msgid "%<-march=%> must be specified"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:363
+#, gcc-internal-format
+msgid "not generating patch area, nops not supported"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:462
+#, gcc-internal-format
+msgid "static initialization of variable %q+D in %<.shared%> memory is not supported"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:2340
+#, gcc-internal-format
+msgid "cannot emit unaligned pointers in ptx assembly"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:2565
+#, gcc-internal-format
+msgid "PTX does not support weak declarations (only weak definitions)"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:5806
+#, gcc-internal-format
+msgid "%qE attribute requires a void return type"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:5829
+#, gcc-internal-format
+msgid "%qE attribute not allowed with auto storage class"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:6227
+#, gcc-internal-format
+msgid "barrier value must be within [0,15]"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:6240
+#, gcc-internal-format
+msgid "complement argument must be constant"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:6580
+#, gcc-internal-format
+msgid "using %<vector_length (%d)%> due to call to vector-partitionable routine, ignoring %d"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:6588
+#, gcc-internal-format
+msgid "using %<vector_length (%d)%>, ignoring runtime setting"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:6602
+#, gcc-internal-format
+msgid "using %<vector_length (%d)%>, ignoring %d"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:7488
+#, gcc-internal-format
+msgid "variable %qD adjusted for OpenACC privatization level: %qs"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:7602
+#, gcc-internal-format
+msgid "weak alias definitions not supported in this configuration"
+msgstr ""
+
+#: config/nvptx/nvptx.cc:7615
+#, gcc-internal-format
+msgid "non-function alias definitions not supported in this configuration"
+msgstr ""
+
+#: config/or1k/or1k.cc:1314
+#, gcc-internal-format, gfc-internal-format
+msgid "unexpected operand: %d"
+msgstr ""
+
+#: config/pa/pa.cc:537
+#, gcc-internal-format
+msgid "PIC code generation is not supported in the portable runtime model"
+msgstr ""
+
+#: config/pa/pa.cc:542
+#, gcc-internal-format
+msgid "PIC code generation is not compatible with fast indirect calls"
+msgstr ""
+
+#: config/pa/pa.cc:547
+#, gcc-internal-format
+msgid "%<-g%> is only supported when using GAS on this processor"
+msgstr ""
+
+#: config/pa/pa.cc:548
+#, gcc-internal-format
+msgid "%<-g%> option disabled"
+msgstr ""
+
+#: config/pru/pru-passes.cc:111
+#, gcc-internal-format
+msgid "large return values not supported with %<-mabi=ti%> option"
+msgstr ""
+
+#: config/pru/pru-passes.cc:119 config/pru/pru-passes.cc:163
+#: config/pru/pru-passes.cc:176
+#, gcc-internal-format
+msgid "function pointers not supported with %<-mabi=ti%> option"
+msgstr ""
+
+#: config/pru/pru-pragma.cc:59
+#, gcc-internal-format
+msgid "junk at end of %<#pragma CTABLE_ENTRY%>"
+msgstr ""
+
+#: config/pru/pru-pragma.cc:61
+msgid "%<CTABLE_ENTRY%> index %"
+msgstr ""
+
+#: config/pru/pru-pragma.cc:64
+msgid "redefinition of %<CTABLE_ENTRY %"
+msgstr ""
+
+#: config/pru/pru-pragma.cc:69
+#, gcc-internal-format
+msgid "%<CTABLE_ENTRY%> base address is not a multiple of 256"
+msgstr ""
+
+#: config/pru/pru-pragma.cc:77
+#, gcc-internal-format
+msgid "malformed %<#pragma CTABLE_ENTRY%> variable address"
+msgstr ""
+
+#: config/pru/pru.cc:2168
+#, gcc-internal-format
+msgid "aggregate types are prohibited in %<__regio_symbol%> address space"
+msgstr ""
+
+#: config/pru/pru.cc:2175
+#, gcc-internal-format
+msgid "variables in %<__regio_symbol%> address space cannot have initial value"
+msgstr ""
+
+#: config/pru/pru.cc:2178
+#, gcc-internal-format
+msgid "variables in %<__regio_symbol%> address space cannot be declared %<register%>"
+msgstr ""
+
+#: config/pru/pru.cc:2181
+#, gcc-internal-format
+msgid "variables in %<__regio_symbol%> address space must be declared %<volatile%>"
+msgstr ""
+
+#: config/pru/pru.cc:2184
+#, gcc-internal-format
+msgid "variables in %<__regio_symbol%> address space must be declared %<extern%>"
+msgstr ""
+
+#: config/pru/pru.cc:2187
+#, gcc-internal-format
+msgid "only 32-bit access is supported for %<__regio_symbol%> address space"
+msgstr ""
+
+#: config/pru/pru.cc:2190
+#, gcc-internal-format
+msgid "register name %<%s%> not recognized in %<__regio_symbol%> address space"
+msgstr ""
+
+#: config/pru/pru.cc:2215
+#, gcc-internal-format
+msgid "pointers to %<__regio_symbol%> address space are prohibited"
+msgstr ""
+
+#: config/riscv/riscv-c.cc:261
+#, gcc-internal-format
+msgid "%<#pragma riscv intrinsic%> requires a string parameter"
+msgstr ""
+
+#: config/riscv/riscv-c.cc:286
+#, gcc-internal-format
+msgid "unknown %<#pragma riscv intrinsic%> option %qs"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:121
+#, gcc-internal-format
+msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:132
+#, gcc-internal-format
+msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:159
+#, gcc-internal-format
+msgid "%<target()%> attribute: arch appears more than once"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:170
+#, gcc-internal-format
+msgid "%<target()%> attribute: cpu appears more than once"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:177
+#, gcc-internal-format
+msgid "%<target()%> attribute: unknown CPU %qs"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:198
+#, gcc-internal-format
+msgid "%<target()%> attribute: tune appears more than once"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:204
+#, gcc-internal-format
+msgid "%<target()%> attribute: unknown TUNE %qs"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:253
+#, gcc-internal-format
+msgid "malformed %<target()%> attribute"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:267
+#, gcc-internal-format
+msgid "attribute %<target(\"%s\")%> does not accept an argument"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:285
+#, gcc-internal-format
+msgid "Got unknown attribute %<target(\"%s\")%>"
+msgstr ""
+
+#: config/riscv/riscv-target-attr.cc:368
+#, gcc-internal-format
+msgid "malformed %<target(\"%s\")%> attribute"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4276
+#, gcc-internal-format
+msgid "passing %wd to argument %d of %qE, which expects a value in the range [%wd, %wd] or %wd"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4488
+#, gcc-internal-format
+msgid "RVV type %qT does not have a fixed size"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4494
+#, gcc-internal-format
+msgid "RVV type %qT does not have a defined alignment"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4509
+#, gcc-internal-format
+msgid "arithmetic on pointer to RVV type %qT"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4517
+#, gcc-internal-format
+msgid "member variables cannot have RVV type %qT"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4519
+#, gcc-internal-format
+msgid "fields cannot have RVV type %qT"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4525
+#, gcc-internal-format
+msgid "array elements cannot have RVV type %qT"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4531
+#, gcc-internal-format
+msgid "cannot allocate objects with RVV type %qT"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4537
+#, gcc-internal-format
+msgid "cannot delete objects with RVV type %qT"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4543
+#, gcc-internal-format
+msgid "cannot throw or catch RVV type %qT"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4549
+#, gcc-internal-format
+msgid "capture by copy of RVV type %qT"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4645
+#, gcc-internal-format
+msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4655
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4665
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4674
+#, gcc-internal-format
+msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4694
+#, gcc-internal-format
+msgid "built-in function %qE requires the %qs ISA extension"
+msgstr ""
+
+#: config/riscv/riscv-vector-builtins.cc:4747
+#, gcc-internal-format
+msgid "no matching function call to %qE with empty arguments"
+msgstr ""
+
+#: config/riscv/riscv.cc:723
+#, gcc-internal-format
+msgid "unknown cpu %qs for %<-mtune%>"
+msgstr ""
+
+#: config/riscv/riscv.cc:2548
+#, gcc-internal-format
+msgid "this operation requires the RVV ISA extension"
+msgstr ""
+
+#: config/riscv/riscv.cc:2549
+#, gcc-internal-format
+msgid "you can enable RVV using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
+msgstr ""
+
+#: config/riscv/riscv.cc:4981 config/riscv/riscv.cc:5023
+#, gcc-internal-format
+msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
+msgstr ""
+
+#: config/riscv/riscv.cc:5370
+#, gcc-internal-format
+msgid "RVV type %qT cannot be passed to an unprototyped function"
+msgstr ""
+
+#: config/riscv/riscv.cc:5623
+#, gcc-internal-format
+msgid "%s %qT requires the V ISA extension"
+msgstr ""
+
+#: config/riscv/riscv.cc:5635
+#, gcc-internal-format
+msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv.cc:5646
+#, gcc-internal-format
+msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
+msgstr ""
+
+#: config/riscv/riscv.cc:5655
+#, gcc-internal-format
+msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv.cc:5664
+#, gcc-internal-format
+msgid "%s %qT requires the zve64d or v ISA extension"
+msgstr ""
+
+#: config/riscv/riscv.cc:5674
+#, gcc-internal-format
+msgid "%s %qT requires the minimal vector length %qd but %qd is given"
+msgstr ""
+
+#: config/riscv/riscv.cc:5729
+#, gcc-internal-format
+msgid "function attribute %qs requires the V ISA extension"
+msgstr ""
+
+#: config/riscv/riscv.cc:5823
+#, gcc-internal-format
+msgid "argument to %qE attribute is not %<\"user\"%>, %<\"supervisor\"%>, or %<\"machine\"%>"
+msgstr ""
+
+#: config/riscv/riscv.cc:5846
+#, gcc-internal-format
+msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
+msgstr ""
+
+#: config/riscv/riscv.cc:5855
+#, gcc-internal-format
+msgid "%qs applied to non-RVV type %qT"
+msgstr ""
+
+#: config/riscv/riscv.cc:5863
+#, gcc-internal-format
+msgid "%qs requires an integer constant"
+msgstr ""
+
+#: config/riscv/riscv.cc:5873
+#, gcc-internal-format
+msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
+msgstr ""
+
+#: config/riscv/riscv.cc:9213
+#, gcc-internal-format
+msgid "%<-mdiv%> requires %<-march%> to subsume the %<M%> extension"
+msgstr ""
+
+#: config/riscv/riscv.cc:9255
+#, gcc-internal-format
+msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
+msgstr ""
+
+#: config/riscv/riscv.cc:9261
+#, gcc-internal-format
+msgid "Current RISC-V GCC does not support RVV in big-endian mode"
+msgstr ""
+
+#: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
+#, gcc-internal-format
+msgid "code model %qs with %qs"
+msgstr ""
+
+#: config/riscv/riscv.cc:9319
+#, gcc-internal-format
+msgid "requested ABI requires %<-march%> to subsume the %qc extension"
+msgstr ""
+
+#: config/riscv/riscv.cc:9326
+#, gcc-internal-format
+msgid "rv32e requires ilp32e ABI"
+msgstr ""
+
+#: config/riscv/riscv.cc:9328
+#, gcc-internal-format
+msgid "rv64e requires lp64e ABI"
+msgstr ""
+
+#: config/riscv/riscv.cc:9335
+#, gcc-internal-format
+msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
+msgstr ""
+
+#: config/riscv/riscv.cc:9339
+#, gcc-internal-format
+msgid "ABI requires %<-march=rv%d%>"
+msgstr ""
+
+#: config/riscv/riscv.cc:9349
+#, gcc-internal-format
+msgid "%<-mpreferred-stack-boundary=%d%> must be between %d and %d"
+msgstr ""
+
+#: config/riscv/riscv.cc:9362
+#, gcc-internal-format
+msgid "%<-mriscv-attribute%> RISC-V ELF attribute requires GNU as 2.32 [%<-mriscv-attribute%>]"
+msgstr ""
+
+#: config/riscv/riscv.cc:9389 config/rs6000/rs6000.cc:4509
+#, gcc-internal-format
+msgid "%qs is not a valid base register in %qs"
+msgstr ""
+
+#: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
+#, gcc-internal-format
+msgid "%qs is not a valid number in %qs"
+msgstr ""
+
+#: config/riscv/riscv.cc:9801
+#, gcc-internal-format
+msgid "%qs function cannot have different interrupt type"
+msgstr ""
+
+#: config/riscv/riscv.cc:10327
+#, gcc-internal-format
+msgid "cannot allocate vl register for %qs on this target"
+msgstr ""
+
+#. Address spaces are currently only supported by C.
+#: config/rl78/rl78.cc:375
+#, gcc-internal-format
+msgid "%<-mes0%> can only be used with C"
+msgstr ""
+
+#: config/rl78/rl78.cc:378
+#, gcc-internal-format
+msgid "mduc registers only saved for G13 target"
+msgstr ""
+
+#: config/rl78/rl78.cc:393
+#, gcc-internal-format
+msgid "%<-mmul=g13%> cannot be used with %<-mcpu=g10%>"
+msgstr ""
+
+#: config/rl78/rl78.cc:395
+#, gcc-internal-format
+msgid "%<-mmul=g14%> cannot be used with %<-mcpu=g10%>"
+msgstr ""
+
+#. The S2 core does not have mul/div instructions.
+#: config/rl78/rl78.cc:407
+#, gcc-internal-format
+msgid "%<-mmul=g14%> cannot be used with %<-mcpu=g13%>"
+msgstr ""
+
+#. The G14 core does not have the hardware multiply peripheral used by the
+#. G13 core, hence you cannot use G13 multipliy routines on G14 hardware.
+#: config/rl78/rl78.cc:420
+#, gcc-internal-format
+msgid "%<-mmul=g13%> cannot be used with %<-mcpu=g14%>"
+msgstr ""
+
+#: config/rl78/rl78.cc:843
+#, gcc-internal-format
+msgid "naked attribute only applies to functions"
+msgstr ""
+
+#: config/rl78/rl78.cc:867
+#, gcc-internal-format
+msgid "%qE attribute doesn%'t apply to functions"
+msgstr ""
+
+#. This is unpredictable, as we're truncating off usable address
+#. bits.
+#: config/rl78/rl78.cc:1233
+#, gcc-internal-format
+msgid "converting far pointer to near pointer"
+msgstr ""
+
+#: config/rs6000/driver-rs6000.cc:266
+#, gcc-internal-format
+msgid "unsupported cpu name returned from kernel for %<-mcpu=native%>: %s"
+msgstr ""
+
+#: config/rs6000/driver-rs6000.cc:268
+#, gcc-internal-format, gfc-internal-format
+msgid "please use an explicit cpu name; valid cpu names are: %s"
+msgstr ""
+
+#: config/rs6000/host-darwin.cc:61
+#, gcc-internal-format
+msgid "segmentation fault (code)"
+msgstr ""
+
+#: config/rs6000/host-darwin.cc:131
+#, gcc-internal-format
+msgid "segmentation fault"
+msgstr ""
+
+#: config/rs6000/host-darwin.cc:145
+#, gcc-internal-format
+msgid "While setting up signal stack: %m"
+msgstr ""
+
+#: config/rs6000/host-darwin.cc:151
+#, gcc-internal-format
+msgid "While setting up signal handler: %m"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:77 config/rs6000/rs6000-builtin.cc:80
+#: config/rs6000/rs6000-builtin.cc:87 config/rs6000/rs6000-builtin.cc:90
+#: config/rs6000/rs6000-builtin.cc:93 config/rs6000/rs6000-builtin.cc:96
+#: config/rs6000/rs6000-builtin.cc:103 config/rs6000/rs6000-builtin.cc:110
+#: config/rs6000/rs6000-builtin.cc:124 config/rs6000/rs6000-builtin.cc:127
+#: config/rs6000/rs6000-builtin.cc:130 config/rs6000/rs6000-builtin.cc:133
+#: config/rs6000/rs6000-builtin.cc:140
+#, gcc-internal-format
+msgid "%qs requires the %qs option"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:83 config/rs6000/rs6000-builtin.cc:99
+#: config/rs6000/rs6000-builtin.cc:113 config/rs6000/rs6000-builtin.cc:136
+#, gcc-internal-format
+msgid "%qs requires the %qs option and either the %qs or %qs option"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:106 config/rs6000/rs6000-builtin.cc:117
+#, gcc-internal-format
+msgid "%qs requires the %qs and %qs options"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:121
+#, gcc-internal-format
+msgid "%qs requires quad-precision floating-point arithmetic"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:2264
+#, gcc-internal-format
+msgid "argument 1 of %qs must be a constant"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:2322
+#, gcc-internal-format
+msgid "argument 1 of %qs is out of range"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:2594
+#, gcc-internal-format
+msgid "builtin %qs only accepts a string argument"
+msgstr ""
+
+#. Invalid CPU argument.
+#: config/rs6000/rs6000-builtin.cc:2613
+#, gcc-internal-format
+msgid "cpu %qs is an invalid argument to builtin %qs"
+msgstr ""
+
+#. Invalid HWCAP argument.
+#: config/rs6000/rs6000-builtin.cc:2641
+#, gcc-internal-format
+msgid "%s %qs is an invalid argument to builtin %qs"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:2670
+#, gcc-internal-format
+msgid "builtin %qs needs GLIBC (2.23 and newer) that exports hardware capability bits"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3017 config/rs6000/rs6000-builtin.cc:3171
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %d must be an unsigned literal"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3019 config/rs6000/rs6000-builtin.cc:3173
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %d is an unsigned literal that is out of range"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3124
+#, gcc-internal-format
+msgid "builtin %qs is only valid in 64-bit mode"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3287
+#, gcc-internal-format
+msgid "unresolved overload for builtin %qF"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3390
+#, gcc-internal-format
+msgid "%qs not supported with %<-msoft-float%>"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3397
+#, gcc-internal-format
+msgid "%qs is not supported in 32-bit mode"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3403
+#, gcc-internal-format
+msgid "%qs requires %<long double%> to be IBM 128-bit format"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3410
+#, gcc-internal-format
+msgid "%qs requires %<__ibm128%> type support"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3565
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %d must be a literal between 0 and %d, inclusive"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3581
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %d must be a literal between %d and %d, inclusive"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3598
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %d must be a variable or a literal between %d and %d, inclusive"
+msgstr ""
+
+#: config/rs6000/rs6000-builtin.cc:3614
+#, gcc-internal-format, gfc-internal-format
+msgid "argument %d must be either a literal %d or a literal %d"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:55
+#, gcc-internal-format
+msgid "ignoring malformed %<#pragma longcall%>"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:67
+#, gcc-internal-format
+msgid "missing open paren"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:69
+#, gcc-internal-format
+msgid "missing number"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:71
+#, gcc-internal-format
+msgid "missing close paren"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:74
+#, gcc-internal-format
+msgid "number must be 0 or 1"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:77
+#, gcc-internal-format
+msgid "junk at end of %<#pragma longcall%>"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:1237 config/rs6000/rs6000-c.cc:1638
+#, gcc-internal-format
+msgid "builtin %qs only accepts 1 argument"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:1244 config/rs6000/rs6000-c.cc:1330
+#, gcc-internal-format
+msgid "builtin %qs only accepts 2 arguments"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:1508
+#, gcc-internal-format
+msgid "builtin %qs only accepts 3 arguments"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:1737
+#, gcc-internal-format
+msgid "%<vec_lvsl%> is deprecated for little endian; use assignment for unaligned loads and stores"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:1741
+#, gcc-internal-format
+msgid "%<vec_lvsr%> is deprecated for little endian; use assignment for unaligned loads and stores"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:1827
+#, gcc-internal-format
+msgid "passing argument %d of %qE discards %qs qualifier from pointer target type"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:1883 config/rs6000/rs6000-c.cc:2067
+#, gcc-internal-format
+msgid "invalid parameter combination for AltiVec intrinsic %qs"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:2056
+#, gcc-internal-format
+msgid "overloaded builtin %qs is implemented by builtin %qs"
+msgstr ""
+
+#: config/rs6000/rs6000-c.cc:2060
+#, gcc-internal-format
+msgid "%qs is not supported in this compiler configuration"
+msgstr ""
+
+#: config/rs6000/rs6000-call.cc:379
+#, gcc-internal-format
+msgid "ELFv2 parameter passing for an argument containing zero-width bit fields but that is otherwise a homogeneous aggregate was corrected in GCC 12"
+msgstr ""
+
+#: config/rs6000/rs6000-call.cc:447
+#, gcc-internal-format
+msgid "invalid use of MMA type %qs as a function return value"
+msgstr ""
+
+#: config/rs6000/rs6000-call.cc:499
+#, gcc-internal-format
+msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee"
+msgstr ""
+
+#: config/rs6000/rs6000-call.cc:683
+#, gcc-internal-format
+msgid "cannot return value in vector register because altivec instructions are disabled, use %qs to enable them"
+msgstr ""
+
+#: config/rs6000/rs6000-call.cc:1113
+#, gcc-internal-format
+msgid "cannot pass argument in vector register because altivec instructions are disabled, use %qs to enable them"
+msgstr ""
+
+#: config/rs6000/rs6000-call.cc:1639
+#, gcc-internal-format
+msgid "invalid use of MMA operand of type %qs as a function parameter"
+msgstr ""
+
+#: config/rs6000/rs6000-call.cc:2028
+#, gcc-internal-format
+msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee"
+msgstr ""
+
+#: config/rs6000/rs6000-logue.cc:1705
+#, gcc-internal-format
+msgid "stack frame too large"
+msgstr ""
+
+#: config/rs6000/rs6000-logue.cc:4021
+#, gcc-internal-format, gfc-internal-format
+msgid "unsupported number of nops before function entry (%u)"
+msgstr ""
+
+#: config/rs6000/rs6000-logue.cc:5565
+#, gcc-internal-format
+msgid "%qs uses register r29"
+msgstr ""
+
+#: config/rs6000/rs6000-logue.cc:5573
+#, gcc-internal-format
+msgid "Stack frame larger than 2G is not supported for %<-fsplit-stack%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3228 config/rs6000/rs6000.cc:3231
+#: config/rs6000/rs6000.cc:3234
+#, gcc-internal-format
+msgid "%qs requires %qs or %qs"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3335
+#, gcc-internal-format
+msgid "%qs requires PowerPC64 architecture, enabling"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3451
+#, gcc-internal-format
+msgid "%<-mcall-aixdesc%> incompatible with %<-mabi=elfv2%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3500
+#, gcc-internal-format
+msgid "%qs unsupported for this ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3628
+#, gcc-internal-format
+msgid "%qs is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3789
+#, gcc-internal-format
+msgid "AltiVec not supported in this target"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3806
+#, gcc-internal-format
+msgid "%qs is not supported on little endian systems"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:3886
+#, gcc-internal-format
+msgid "power9 target option is incompatible with %<%s=<xxx>%> for <xxx> less than power9"
+msgstr ""
+
+#. Enforce that none of the ISA_3_0_MASKS_SERVER flags
+#. were explicitly cleared.
+#: config/rs6000/rs6000.cc:3894
+#, gcc-internal-format
+msgid "%qs incompatible with explicitly disabled options"
+msgstr ""
+
+#. TARGET_VSX = 1 implies Power 7 and newer
+#: config/rs6000/rs6000.cc:3928 config/rs6000/rs6000.cc:3936
+#: config/rs6000/rs6000.cc:3949 config/rs6000/rs6000.cc:4011
+#: config/rs6000/rs6000.cc:4044 config/rs6000/rs6000.cc:4059
+#: config/rs6000/rs6000.cc:4067 config/rs6000/rs6000.cc:4191
+#: config/rs6000/rs6000.cc:4204 config/rs6000/rs6000.cc:4213
+#: config/rs6000/rs6000.cc:4351 config/rs6000/rs6000.cc:4364
+#: config/rs6000/rs6000.cc:4385
+#, gcc-internal-format
+msgid "%qs requires %qs"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4095
+#, gcc-internal-format
+msgid "target attribute or pragma changes %<long double%> size"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4116
+#, gcc-internal-format
+msgid "%qs requires full ISA 2.06 support"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4129
+#, gcc-internal-format
+msgid "Using IEEE extended precision %<long double%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4132
+#, gcc-internal-format
+msgid "Using IBM extended precision %<long double%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4151
+#, gcc-internal-format
+msgid "%qs requires VSX support"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4160
+#, gcc-internal-format
+msgid "The %<-mfloat128%> option may not be fully supported"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4183
+#, gcc-internal-format
+msgid "%qs requires full ISA 3.0 support"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4270
+#, gcc-internal-format
+msgid "unknown vectorization library ABI type in %<-mveclibabi=%s%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4283 config/rs6000/rs6000.cc:4298
+#, gcc-internal-format
+msgid "target attribute or pragma changes AltiVec ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4311
+#, gcc-internal-format
+msgid "target attribute or pragma changes darwin64 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4517
+#, gcc-internal-format
+msgid "%qs needs a valid base register"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4814
+#, gcc-internal-format
+msgid "unknown option for %<%s=%s%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4833
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4837
+#, gcc-internal-format
+msgid "%<-mrop-protect%> requires the ELFv2 ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:4855
+#, gcc-internal-format
+msgid "%qs is deprecated and not recommended in any circumstances"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:11184
+#, gcc-internal-format
+msgid "%qs is an opaque type, and you cannot set it to other values"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:18029
+#, gcc-internal-format
+msgid "no profiling of 64-bit code for this ABI"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:20425
+#, gcc-internal-format
+msgid "you cannot take the address of a nested function if you use the %qs option"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:20507
+#, gcc-internal-format
+msgid "use of %<long double%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:20509
+#, gcc-internal-format
+msgid "use of boolean types in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:20511
+#, gcc-internal-format
+msgid "use of %<complex%> in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:20513
+#, gcc-internal-format
+msgid "use of decimal floating-point types in AltiVec types is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:20519
+#, gcc-internal-format
+msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without %qs"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:20522
+#, gcc-internal-format
+msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:20527
+#, gcc-internal-format
+msgid "use of %<long long%> in AltiVec types is invalid without %qs"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:20530
+#, gcc-internal-format
+msgid "use of %<double%> in AltiVec types is invalid without %qs"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:24671
+#, gcc-internal-format
+msgid "invalid cpu %qs for %s%qs%s"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:24674
+#, gcc-internal-format
+msgid "%s%qs%s is not allowed"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:24676
+#, gcc-internal-format
+msgid "%s%qs%s is invalid"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:25197
+#, gcc-internal-format
+msgid "%<-mno-%s%> turns off %<-m%s%>"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:25356
+#, gcc-internal-format
+msgid "%<target_clones%> attribute needs GLIBC (2.23 and newer) that exports hardware capability bits"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:25645
+#, gcc-internal-format
+msgid "Virtual function multiversioning not supported"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:28783
+#, gcc-internal-format
+msgid "the result for the xxspltidp instruction is undefined for subnormal input values"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:29261
+#, gcc-internal-format
+msgid "type %<__vector_quad%> requires the %qs option"
+msgstr ""
+
+#: config/rs6000/rs6000.cc:29266
+#, gcc-internal-format
+msgid "type %<__vector_pair%> requires the %qs option"
+msgstr ""
+
+#: config/rx/rx.cc:652
+#, gcc-internal-format
+msgid "unrecognized control register number: %d - using %<psw%>"
+msgstr ""
+
+#: config/rx/rx.cc:1385
+#, gcc-internal-format
+msgid "multiple fast interrupt routines seen: %qE and %qE"
+msgstr ""
+
+#: config/rx/rx.cc:2481
+#, gcc-internal-format
+msgid "invalid control register %d for mvtc; using %<psw%>"
+msgstr ""
+
+#: config/rx/rx.cc:2603
+#, gcc-internal-format
+msgid "%<__builtin_rx_%s%> takes %<C%>, %<Z%>, %<S%>, %<O%>, %<I%>, or %<U%>"
+msgstr ""
+
+#: config/rx/rx.cc:2606
+#, gcc-internal-format
+msgid "use %<__builtin_rx_mvtc (0, ... )%> to write arbitrary values to PSW"
+msgstr ""
+
+#: config/rx/rx.cc:2653
+#, gcc-internal-format
+msgid "%<-mno-allow-string-insns%> forbids the generation of the RMPA instruction"
+msgstr ""
+
+#: config/rx/rx.cc:2800
+#, gcc-internal-format
+msgid "RX FPU instructions do not support NaNs and infinities"
+msgstr ""
+
+#: config/s390/s390-c.cc:488
+#, gcc-internal-format
+msgid "builtin %qs can only be used on vector types"
+msgstr ""
+
+#: config/s390/s390-c.cc:720 config/s390/s390.cc:1000
+#, gcc-internal-format
+msgid "constant value required for builtin %qF argument %d"
+msgstr ""
+
+#: config/s390/s390-c.cc:735
+#, gcc-internal-format
+msgid "valid values for builtin %qF argument %d are 64, 128, 256, 512, 1024, 2048, and 4096"
+msgstr ""
+
+#: config/s390/s390-c.cc:915
+#, gcc-internal-format
+msgid "builtin %qF is for GCC internal use only"
+msgstr ""
+
+#: config/s390/s390-c.cc:923
+#, gcc-internal-format
+msgid "builtin %qF is deprecated"
+msgstr ""
+
+#: config/s390/s390-c.cc:927
+#, gcc-internal-format
+msgid "%qF requires %<-mvx%>"
+msgstr ""
+
+#: config/s390/s390-c.cc:933
+#, gcc-internal-format
+msgid "%qF requires z14 or higher"
+msgstr ""
+
+#: config/s390/s390-c.cc:939
+#, gcc-internal-format
+msgid "%qF requires z15 or higher"
+msgstr ""
+
+#: config/s390/s390-c.cc:953
+#, gcc-internal-format
+msgid "mismatch in number of arguments for builtin %qF. Expected: %d got %d"
+msgstr ""
+
+#: config/s390/s390-c.cc:1002
+#, gcc-internal-format
+msgid "invalid parameter combination for intrinsic %qs"
+msgstr ""
+
+#: config/s390/s390-c.cc:1008
+#, gcc-internal-format
+msgid "ambiguous overload for intrinsic %qs"
+msgstr ""
+
+#: config/s390/s390-c.cc:1016
+#, gcc-internal-format
+msgid "%qs matching variant requires z14 or higher"
+msgstr ""
+
+#: config/s390/s390-c.cc:1025
+#, gcc-internal-format
+msgid "%qs matching variant requires z15 or higher"
+msgstr ""
+
+#: config/s390/s390-c.cc:1031
+#, gcc-internal-format
+msgid "%qs matching variant is deprecated"
+msgstr ""
+
+#: config/s390/s390-c.cc:1071
+#, gcc-internal-format
+msgid "constant argument %d for builtin %qF is out of range for target type"
+msgstr ""
+
+#: config/s390/s390.cc:849
+#, gcc-internal-format
+msgid "constant argument %d for builtin %qF is invalid (%s)"
+msgstr ""
+
+#: config/s390/s390.cc:853
+#, gcc-internal-format
+msgid "constant argument %d for builtin %qF is out of range (0-%wu)"
+msgstr ""
+
+#: config/s390/s390.cc:869
+#, gcc-internal-format
+msgid "constant argument %d for builtin %qF is out of range (%wd-%wd)"
+msgstr ""
+
+#: config/s390/s390.cc:918
+#, gcc-internal-format
+msgid "builtin %qF is not supported without %<-mhtm%> (default with %<-march=zEC12%> and higher)"
+msgstr ""
+
+#: config/s390/s390.cc:924
+#, gcc-internal-format
+msgid "builtin %qF requires %<-mvx%> (default with %<-march=z13%> and higher)"
+msgstr ""
+
+#: config/s390/s390.cc:931
+#, gcc-internal-format
+msgid "Builtin %qF requires z14 or higher"
+msgstr ""
+
+#: config/s390/s390.cc:937
+#, gcc-internal-format
+msgid "Builtin %qF requires z15 or higher"
+msgstr ""
+
+#: config/s390/s390.cc:956
+#, gcc-internal-format
+msgid "unresolved overloaded builtin"
+msgstr ""
+
+#: config/s390/s390.cc:963
+#, gcc-internal-format
+msgid "bad builtin icode"
+msgstr ""
+
+#: config/s390/s390.cc:1097
+#, gcc-internal-format
+msgid "invalid argument %d for builtin %qF"
+msgstr ""
+
+#: config/s390/s390.cc:1198
+#, gcc-internal-format
+msgid "requested %qE attribute is not a comma separated pair of non-negative integer constants or too large (max. %d)"
+msgstr ""
+
+#: config/s390/s390.cc:1288
+#, gcc-internal-format
+msgid "argument to %qE attribute is not (keep|thunk|thunk-extern)"
+msgstr ""
+
+#: config/s390/s390.cc:10594
+#, gcc-internal-format
+msgid "total size of local variables exceeds architecture limit"
+msgstr ""
+
+#: config/s390/s390.cc:12001
+#, gcc-internal-format
+msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes; an unconditional trap is added"
+msgstr ""
+
+#: config/s390/s390.cc:12017
+#, gcc-internal-format
+msgid "frame size of function %qs is %wd bytes which is more than half the stack size; the dynamic check would not be reliable; no check emitted for this function"
+msgstr ""
+
+#: config/s390/s390.cc:12045
+#, gcc-internal-format
+msgid "frame size of %qs is %wd bytes"
+msgstr ""
+
+#: config/s390/s390.cc:12049
+#, gcc-internal-format
+msgid "%qs uses dynamic stack allocation"
+msgstr ""
+
+#: config/s390/s390.cc:12796
+#, gcc-internal-format
+msgid "parameter passing for argument of type %qT with zero-width bit fields members changed in GCC 12"
+msgstr ""
+
+#: config/s390/s390.cc:13755
+#, gcc-internal-format
+msgid "nested functions cannot be profiled with %<-mfentry%> on s390"
+msgstr ""
+
+#: config/s390/s390.cc:16057
+#, gcc-internal-format
+msgid "64-bit ABI not supported in ESA/390 mode"
+msgstr ""
+
+#: config/s390/s390.cc:16064
+#, gcc-internal-format
+msgid "thunk-inline is only supported with %<-mindirect-branch-jump%>"
+msgstr ""
+
+#: config/s390/s390.cc:16099
+#, gcc-internal-format, gfc-internal-format
+msgid "hardware vector support not available on %s"
+msgstr ""
+
+#: config/s390/s390.cc:16102
+#, gcc-internal-format
+msgid "hardware vector support not available with %<-msoft-float%>"
+msgstr ""
+
+#: config/s390/s390.cc:16131
+#, gcc-internal-format, gfc-internal-format
+msgid "hardware decimal floating-point instructions not available on %s"
+msgstr ""
+
+#: config/s390/s390.cc:16135
+#, gcc-internal-format
+msgid "hardware decimal floating-point instructions not available in ESA/390 mode"
+msgstr ""
+
+#: config/s390/s390.cc:16147
+#, gcc-internal-format
+msgid "%<-mhard-dfp%> cannot be used in conjunction with %<-msoft-float%>"
+msgstr ""
+
+#: config/s390/s390.cc:16156
+#, gcc-internal-format
+msgid "%<-mbackchain%> %<-mpacked-stack%> %<-mhard-float%> are not supported in combination"
+msgstr ""
+
+#: config/s390/s390.cc:16162
+#, gcc-internal-format
+msgid "stack size must be greater than the stack guard value"
+msgstr ""
+
+#: config/s390/s390.cc:16164
+#, gcc-internal-format
+msgid "stack size must not be greater than 64k"
+msgstr ""
+
+#: config/s390/s390.cc:16167
+#, gcc-internal-format
+msgid "%<-mstack-guard%> implies use of %<-mstack-size%>"
+msgstr ""
+
+#: config/s390/s390.cc:16180
+#, gcc-internal-format
+msgid "%<-mtpf-trace-hook-prologue-check%> requires integer in range 0-4095"
+msgstr ""
+
+#: config/s390/s390.cc:16183
+#, gcc-internal-format
+msgid "%<-mtpf-trace-hook-prologue-target%> requires integer in range 0-4095"
+msgstr ""
+
+#: config/s390/s390.cc:16186
+#, gcc-internal-format
+msgid "%<-mtpf-trace-hook-epilogue-check%> requires integer in range 0-4095"
+msgstr ""
+
+#: config/s390/s390.cc:16189
+#, gcc-internal-format
+msgid "%<-mtpf-trace-hook-epilogue-target%> requires integer in range 0-4095"
+msgstr ""
+
+#: config/s390/s390.cc:16253
+#, gcc-internal-format
+msgid "%<-mfentry%> is supported only for 64-bit CPUs"
+msgstr ""
+
+#. argument is not a plain number
+#: config/s390/s390.cc:16289
+#, gcc-internal-format
+msgid "arguments to %qs should be non-negative integers"
+msgstr ""
+
+#: config/s390/s390.cc:16296
+#, gcc-internal-format
+msgid "argument to %qs is too large (max. %d)"
+msgstr ""
+
+#: config/s390/s390.cc:16327
+#, gcc-internal-format
+msgid "%<-mno-pic-data-is-text-relative%> cannot be used without %<-fpic%>/%<-fPIC%>"
+msgstr ""
+
+#: config/s390/s390.cc:16488 config/s390/s390.cc:16538
+#: config/s390/s390.cc:16555
+#, gcc-internal-format
+msgid "attribute %<target%> argument %qs is unknown"
+msgstr ""
+
+#. Value is not allowed for the target attribute.
+#: config/s390/s390.cc:16494
+#, gcc-internal-format
+msgid "value %qs is not supported by attribute %<target%>"
+msgstr ""
+
+#: config/s390/s390.cc:17553
+#, gcc-internal-format
+msgid "invalid cc output constraint: %qs"
+msgstr ""
+
+#: config/s390/s390.cc:17558
+#, gcc-internal-format
+msgid "multiple cc output constraints not supported"
+msgstr ""
+
+#: config/s390/s390.cc:17563
+#, gcc-internal-format
+msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
+msgstr ""
+
+#: config/s390/s390.cc:17569
+#, gcc-internal-format
+msgid "invalid type for cc output constraint"
+msgstr ""
+
+#: config/sh/sh.cc:936
+#, gcc-internal-format
+msgid "ignoring %<-fschedule-insns%> because of exception handling bug"
+msgstr ""
+
+#: config/sh/sh.cc:953
+#, gcc-internal-format
+msgid "unwind tables currently require either a frame pointer or %<-maccumulate-outgoing-args%> for correctness"
+msgstr ""
+
+#: config/sh/sh.cc:7416
+#, gcc-internal-format
+msgid "%<__builtin_saveregs%> not supported by this subtarget"
+msgstr ""
+
+#: config/sh/sh.cc:8353
+#, gcc-internal-format
+msgid "%qE attribute only applies to interrupt functions"
+msgstr ""
+
+#: config/sh/sh.cc:8423
+#, gcc-internal-format
+msgid "%qE attribute is supported only for SH2A"
+msgstr ""
+
+#: config/sh/sh.cc:8465
+#, gcc-internal-format
+msgid "%qE attribute only applies to SH2A"
+msgstr ""
+
+#: config/sh/sh.cc:8487
+#, gcc-internal-format
+msgid "%qE attribute argument should be between 0 to 255"
+msgstr ""
+
+#: config/sh/sh.cc:10832
+#, gcc-internal-format
+msgid "r0 needs to be available as a call-clobbered register"
+msgstr ""
+
+#: config/sparc/sparc.cc:1834
+#, gcc-internal-format, gfc-internal-format
+msgid "%s is not supported by this configuration"
+msgstr ""
+
+#: config/sparc/sparc.cc:1841
+#, gcc-internal-format
+msgid "%<-mlong-double-64%> not allowed with %<-m64%>"
+msgstr ""
+
+#: config/sparc/sparc.cc:1849
+#, gcc-internal-format
+msgid "%<-fcall-saved-REG%> is not supported for out registers"
+msgstr ""
+
+#: config/sparc/sparc.cc:1973
+#, gcc-internal-format
+msgid "%<-mcmodel=%> is not supported in 32-bit mode"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:1202
+#, gcc-internal-format
+msgid "local variable memory requirements exceed capacity"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:1359
+#, gcc-internal-format
+msgid "%<function_profiler%> support"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:1453
+#, gcc-internal-format
+msgid "cannot use %<va_start%> in interrupt function"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:2032
+#, gcc-internal-format, gfc-internal-format
+msgid "switch statement of size %lu entries too large"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:2426
+#, gcc-internal-format
+msgid "%<__BELOW100__%> attribute only applies to variables"
+msgstr ""
+
+#: config/stormy16/stormy16.cc:2433
+#, gcc-internal-format
+msgid "%<__BELOW100__%> attribute not allowed with auto storage class"
+msgstr ""
+
+#: config/v850/v850-c.cc:67
+#, gcc-internal-format
+msgid "%<#pragma%> GHS endXXX found without previous startXXX"
+msgstr ""
+
+#: config/v850/v850-c.cc:70
+#, gcc-internal-format
+msgid "%<#pragma%> GHS endXXX does not match previous startXXX"
+msgstr ""
+
+#: config/v850/v850-c.cc:96
+#, gcc-internal-format
+msgid "cannot set interrupt attribute: no current function"
+msgstr ""
+
+#: config/v850/v850-c.cc:104
+#, gcc-internal-format
+msgid "cannot set interrupt attribute: no such identifier"
+msgstr ""
+
+#: config/v850/v850-c.cc:153
+#, gcc-internal-format
+msgid "junk at end of %<#pragma%> ghs section"
+msgstr ""
+
+#: config/v850/v850-c.cc:170
+#, gcc-internal-format
+msgid "unrecognized section name %qE"
+msgstr ""
+
+#: config/v850/v850-c.cc:184
+#, gcc-internal-format
+msgid "malformed %<#pragma%> ghs section"
+msgstr ""
+
+#: config/v850/v850-c.cc:203
+#, gcc-internal-format
+msgid "junk at end of %<#pragma%> ghs interrupt"
+msgstr ""
+
+#: config/v850/v850-c.cc:214
+#, gcc-internal-format
+msgid "junk at end of %<#pragma%> ghs starttda"
+msgstr ""
+
+#: config/v850/v850-c.cc:225
+#, gcc-internal-format
+msgid "junk at end of %<#pragma%> ghs startsda"
+msgstr ""
+
+#: config/v850/v850-c.cc:236
+#, gcc-internal-format
+msgid "junk at end of %<#pragma%> ghs startzda"
+msgstr ""
+
+#: config/v850/v850-c.cc:247
+#, gcc-internal-format
+msgid "junk at end of %<#pragma%> ghs endtda"
+msgstr ""
+
+#: config/v850/v850-c.cc:258
+#, gcc-internal-format
+msgid "junk at end of %<#pragma%> ghs endsda"
+msgstr ""
+
+#: config/v850/v850-c.cc:269
+#, gcc-internal-format
+msgid "junk at end of %<#pragma%> ghs endzda"
+msgstr ""
+
+#: config/v850/v850.cc:2046
+#, gcc-internal-format
+msgid "data area attributes cannot be specified for local variables"
+msgstr ""
+
+#: config/v850/v850.cc:2057
+#, gcc-internal-format
+msgid "data area of %q+D conflicts with previous declaration"
+msgstr ""
+
+#: config/v850/v850.cc:2188
+#, gcc-internal-format, gfc-internal-format
+msgid "bogus JR construction: %d"
+msgstr ""
+
+#: config/v850/v850.cc:2206 config/v850/v850.cc:2313
+#, gcc-internal-format, gfc-internal-format
+msgid "bad amount of stack space removal: %d"
+msgstr ""
+
+#: config/v850/v850.cc:2293
+#, gcc-internal-format, gfc-internal-format
+msgid "bogus JARL construction: %d"
+msgstr ""
+
+#: config/v850/v850.cc:2591
+#, gcc-internal-format, gfc-internal-format
+msgid "bogus DISPOSE construction: %d"
+msgstr ""
+
+#: config/v850/v850.cc:2610
+#, gcc-internal-format, gfc-internal-format
+msgid "too much stack space to dispose of: %d"
+msgstr ""
+
+#: config/v850/v850.cc:2712
+#, gcc-internal-format, gfc-internal-format
+msgid "bogus PREPEARE construction: %d"
+msgstr ""
+
+#: config/v850/v850.cc:2729
+#, gcc-internal-format, gfc-internal-format
+msgid "too much stack space to prepare: %d"
+msgstr ""
+
+#: config/visium/visium.cc:730
+#, gcc-internal-format
+msgid "an interrupt handler cannot be compiled with %<-muser-mode%>"
+msgstr ""
+
+#: config/vms/vms-c.cc:44
+#, gcc-internal-format
+msgid "junk at end of %<#pragma __nostandard%>"
+msgstr ""
+
+#: config/vms/vms-c.cc:55
+#, gcc-internal-format
+msgid "junk at end of %<#pragma __standard%>"
+msgstr ""
+
+#: config/vms/vms-c.cc:81
+#, gcc-internal-format
+msgid "malformed %<#pragma member_alignment%>, ignoring"
+msgstr ""
+
+#: config/vms/vms-c.cc:96
+#, gcc-internal-format
+msgid "unknown %<#pragma member_alignment%> name %s"
+msgstr ""
+
+#: config/vms/vms-c.cc:101
+#, gcc-internal-format
+msgid "malformed %<#pragma member_alignment%>"
+msgstr ""
+
+#: config/vms/vms-c.cc:135
+#, gcc-internal-format
+msgid "unhandled alignment for %<#pragma nomember_alignment%>"
+msgstr ""
+
+#: config/vms/vms-c.cc:148
+#, gcc-internal-format
+msgid "garbage at end of %<#pragma nomember_alignment%>"
+msgstr ""
+
+#: config/vms/vms-c.cc:203
+#, gcc-internal-format
+msgid "malformed %<#pragma extern_model%>, ignoring"
+msgstr ""
+
+#: config/vms/vms-c.cc:224
+#, gcc-internal-format
+msgid "extern model globalvalue"
+msgstr ""
+
+#: config/vms/vms-c.cc:229
+#, gcc-internal-format
+msgid "unknown %<#pragma extern_model%> model %qs"
+msgstr ""
+
+#: config/vms/vms-c.cc:235
+#, gcc-internal-format
+msgid "junk at end of '#pragma extern_model'"
+msgstr ""
+
+#: config/vms/vms-c.cc:249
+#, gcc-internal-format
+msgid "vms '#pragma __message' is ignored"
+msgstr ""
+
+#: config/vms/vms-c.cc:274 config/vms/vms-c.cc:280
+#, gcc-internal-format
+msgid "malformed %<#pragma __extern_prefix%>, ignoring"
+msgstr ""
+
+#: config/vms/vms-c.cc:313 config/vms/vms-c.cc:333
+#, gcc-internal-format
+msgid "malformed %<#pragma %s%>, ignoring"
+msgstr ""
+
+#: config/vms/vms-c.cc:329
+#, gcc-internal-format
+msgid "invalid constant in %<#pragma %s%>"
+msgstr ""
+
+#: config/xtensa/xtensa-dynconfig.cc:90
+#, gcc-internal-format
+msgid "%qs is defined but could not be loaded: %s"
+msgstr ""
+
+#: config/xtensa/xtensa-dynconfig.cc:97
+#, gcc-internal-format
+msgid "%qs plugin is not licensed under a GPL-compatible license"
+msgstr ""
+
+#: config/xtensa/xtensa-dynconfig.cc:114
+#, gcc-internal-format
+msgid "%qs is loaded but symbol %qs is not found: %s"
+msgstr ""
+
+#: config/xtensa/xtensa-dynconfig.cc:128
+#, gcc-internal-format
+msgid "%qs is defined but plugin support is disabled"
+msgstr ""
+
+#: config/xtensa/xtensa.cc:2864
+#, gcc-internal-format
+msgid "boolean registers required for the floating-point option"
+msgstr ""
+
+#: config/xtensa/xtensa.cc:2899
+#, gcc-internal-format
+msgid "%<-f%s%> is not supported with CONST16 instructions"
+msgstr ""
+
+#: config/xtensa/xtensa.cc:2906
+#, gcc-internal-format
+msgid "PIC is required but not supported with CONST16 instructions"
+msgstr ""
+
+#: config/xtensa/xtensa.cc:4349
+#, gcc-internal-format
+msgid "only uninitialized variables can be placed in a %<.bss%> section"
+msgstr ""
+
+#: ada/gcc-interface/misc.cc:155
+#, gcc-internal-format
+msgid "%<-gnat%> misspelled as %<-gant%>"
+msgstr ""
+
+#: ada/gcc-interface/misc.cc:258
+#, gcc-internal-format
+msgid "%<-fexcess-precision=standard%> for Ada"
+msgstr ""
+
+#: ada/gcc-interface/misc.cc:260
+#, gcc-internal-format
+msgid "%<-fexcess-precision=16%> for Ada"
+msgstr ""
+
+#: ada/gcc-interface/trans.cc:348
+#, gcc-internal-format, gfc-internal-format
+msgid "%s contains too many lines"
+msgstr ""
+
+#: ada/gcc-interface/trans.cc:1640
+#, gcc-internal-format
+msgid "subprogram %q+F not marked %<Inline_Always%>"
+msgstr ""
+
+#: ada/gcc-interface/trans.cc:1642 ada/gcc-interface/trans.cc:1648
+#, gcc-internal-format
+msgid "parent subprogram cannot be inlined"
+msgstr ""
+
+#: ada/gcc-interface/trans.cc:1646
+#, gcc-internal-format
+msgid "subprogram %q+F not marked %<Inline%>"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:4291
+#, gcc-internal-format
+msgid "invalid element type for attribute %qs"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:4315
+#, gcc-internal-format
+msgid "number of components of vector not a power of two"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:6551 ada/gcc-interface/utils.cc:6729
+#: ada/gcc-interface/utils.cc:6969
+#, gcc-internal-format
+msgid "%qs attribute ignored"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:6606
+#, gcc-internal-format
+msgid "%qs attribute without arguments on a non-prototype"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:6621
+#, gcc-internal-format
+msgid "%qs argument has invalid operand number (argument %lu)"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:6643
+#, gcc-internal-format
+msgid "%qs argument with out-of-range operand number (argument %lu, operand %lu)"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:6652
+#, gcc-internal-format
+msgid "%qs argument references non-pointer operand (argument %lu, operand %lu)"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:6673
+#, gcc-internal-format
+msgid "%qs attribute requires prototypes with named arguments"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:6682
+#, gcc-internal-format
+msgid "%qs attribute only applies to variadic functions"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:6929 d/d-attribs.cc:362 d/d-attribs.cc:488
+#: rust/rust-attribs.cc:176
+#, gcc-internal-format
+msgid "%qE attribute has no effect"
+msgstr ""
+
+#: ada/gcc-interface/utils.cc:7240
+#, gcc-internal-format
+msgid "attribute %qs applies to array types only"
+msgstr ""
+
+#: c/c-convert.cc:104 c/c-typeck.cc:2353 c/c-typeck.cc:13558 cp/typeck.cc:2494
+#: cp/typeck.cc:9508 cp/typeck.cc:10296 d/d-convert.cc:262
+#, gcc-internal-format
+msgid "void value not ignored as it ought to be"
+msgstr ""
+
+#: c/c-convert.cc:235
+#, gcc-internal-format
+msgid "conversion from %qT to %qT"
+msgstr ""
+
+#: c/c-convert.cc:237
+#, gcc-internal-format
+msgid "only %qT or a null pointer constant can be converted to %qT"
+msgstr ""
+
+#: c/c-convert.cc:241 d/d-convert.cc:322
+#, gcc-internal-format
+msgid "conversion to non-scalar type requested"
+msgstr ""
+
+#: c/c-decl.cc:915
+#, gcc-internal-format
+msgid "array %q+D assumed to have one element"
+msgstr ""
+
+#: c/c-decl.cc:956
+#, gcc-internal-format
+msgid "%qD is static but used in inline function %qD which is not static"
+msgstr ""
+
+#: c/c-decl.cc:961
+#, gcc-internal-format
+msgid "%q+D is static but declared in inline function %qD which is not static"
+msgstr ""
+
+#: c/c-decl.cc:1157
+#, gcc-internal-format, gfc-internal-format
+msgid "GCC supports only %u nested scopes"
+msgstr ""
+
+#: c/c-decl.cc:1299 cp/decl.cc:378
+#, gcc-internal-format
+msgid "label %q+D used but not defined"
+msgstr ""
+
+#: c/c-decl.cc:1344
+#, gcc-internal-format
+msgid "nested function %q+D declared but never defined"
+msgstr ""
+
+#: c/c-decl.cc:1358
+#, gcc-internal-format
+msgid "inline function %q+D declared but never defined"
+msgstr ""
+
+#: c/c-decl.cc:1376
+#, gcc-internal-format
+msgid "unused variable %q+D"
+msgstr ""
+
+#: c/c-decl.cc:1382 cp/decl.cc:733
+#, gcc-internal-format
+msgid "variable %qD set but not used"
+msgstr ""
+
+#: c/c-decl.cc:1387
+#, gcc-internal-format
+msgid "type of array %q+D completed incompatibly with implicit initialization"
+msgstr ""
+
+#: c/c-decl.cc:1562
+#, gcc-internal-format
+msgid "underspecified declaration of %qE, which is already declared in this scope"
+msgstr ""
+
+#: c/c-decl.cc:1733 c/c-decl.cc:7890 c/c-decl.cc:8894 c/c-decl.cc:9985
+#, gcc-internal-format
+msgid "originally defined here"
+msgstr ""
+
+#: c/c-decl.cc:1956
+#, gcc-internal-format
+msgid "a parameter list with an ellipsis cannot match an empty parameter name list declaration"
+msgstr ""
+
+#: c/c-decl.cc:1964
+#, gcc-internal-format
+msgid "an argument type that has a default promotion cannot match an empty parameter name list declaration"
+msgstr ""
+
+#: c/c-decl.cc:2012
+#, gcc-internal-format
+msgid "prototype for %q+D declares more arguments than previous old-style definition"
+msgstr ""
+
+#: c/c-decl.cc:2018
+#, gcc-internal-format
+msgid "prototype for %q+D declares fewer arguments than previous old-style definition"
+msgstr ""
+
+#: c/c-decl.cc:2027
+#, gcc-internal-format
+msgid "prototype for %q+D declares argument %d with incompatible type"
+msgstr ""
+
+#. If we get here, no errors were found, but do issue a warning
+#. for this poor-style construct.
+#: c/c-decl.cc:2040
+#, gcc-internal-format
+msgid "prototype for %q+D follows non-prototype definition"
+msgstr ""
+
+#: c/c-decl.cc:2058
+#, gcc-internal-format
+msgid "previous definition of %q+D with type %qT"
+msgstr ""
+
+#: c/c-decl.cc:2062
+#, gcc-internal-format
+msgid "previous implicit declaration of %q+D with type %qT"
+msgstr ""
+
+#: c/c-decl.cc:2066
+#, gcc-internal-format
+msgid "previous declaration of %q+D with type %qT"
+msgstr ""
+
+#: c/c-decl.cc:2128
+#, gcc-internal-format
+msgid "%q+D redeclared as different kind of symbol"
+msgstr ""
+
+#: c/c-decl.cc:2133
+#, gcc-internal-format
+msgid "built-in function %q+D declared as non-function"
+msgstr ""
+
+#: c/c-decl.cc:2136 c/c-decl.cc:3273
+#, gcc-internal-format
+msgid "declaration of %q+D shadows a built-in function"
+msgstr ""
+
+#: c/c-decl.cc:2153
+#, gcc-internal-format
+msgid "conflicting redeclaration of enumerator %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2160
+#, gcc-internal-format
+msgid "redeclaration of enumerator %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2200
+#, gcc-internal-format
+msgid "conflicting types for built-in function %q+D; expected %qT"
+msgstr ""
+
+#: c/c-decl.cc:2210 c/c-decl.cc:2235
+#, gcc-internal-format
+msgid "%qD is declared in header %qs"
+msgstr ""
+
+#: c/c-decl.cc:2221
+#, gcc-internal-format
+msgid "mismatch in argument %u type of built-in function %qD; expected %qT"
+msgstr ""
+
+#: c/c-decl.cc:2226
+#, gcc-internal-format
+msgid "mismatch in return type of built-in function %qD; expected %qT"
+msgstr ""
+
+#: c/c-decl.cc:2259
+#, gcc-internal-format
+msgid "conflicting types for %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2272 c/c-decl.cc:2309
+#, gcc-internal-format
+msgid "conflicting types for %q+D; have %qT"
+msgstr ""
+
+#: c/c-decl.cc:2289
+#, gcc-internal-format
+msgid "conflicting named address spaces (generic vs %s) for %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2293
+#, gcc-internal-format
+msgid "conflicting named address spaces (%s vs generic) for %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2297
+#, gcc-internal-format
+msgid "conflicting named address spaces (%s vs %s) for %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2306
+#, gcc-internal-format
+msgid "conflicting type qualifiers for %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2327
+#, gcc-internal-format
+msgid "conflicting types for %q+D due to enum/integer mismatch; have %qT"
+msgstr ""
+
+#: c/c-decl.cc:2344
+#, gcc-internal-format
+msgid "redefinition of typedef %q+D with different type"
+msgstr ""
+
+#: c/c-decl.cc:2357
+#, gcc-internal-format
+msgid "redefinition of typedef %q+D with variably modified type"
+msgstr ""
+
+#: c/c-decl.cc:2362
+#, gcc-internal-format
+msgid "redefinition of typedef %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2390
+#, gcc-internal-format
+msgid "declaration of %qD shadows a built-in function"
+msgstr ""
+
+#: c/c-decl.cc:2406
+#, gcc-internal-format
+msgid "declaration of built-in function %qD without a prototype; expected %qT"
+msgstr ""
+
+#: c/c-decl.cc:2430 c/c-decl.cc:2553
+#, gcc-internal-format
+msgid "redefinition of %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2469 c/c-decl.cc:2593
+#, gcc-internal-format
+msgid "static declaration of %q+D follows non-static declaration"
+msgstr ""
+
+#: c/c-decl.cc:2480 c/c-decl.cc:2488 c/c-decl.cc:2582 c/c-decl.cc:2590
+#, gcc-internal-format
+msgid "non-static declaration of %q+D follows static declaration"
+msgstr ""
+
+#: c/c-decl.cc:2505
+#, gcc-internal-format
+msgid "%<gnu_inline%> attribute present on %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2508
+#, gcc-internal-format
+msgid "but not here"
+msgstr ""
+
+#: c/c-decl.cc:2527
+#, gcc-internal-format
+msgid "thread-local declaration of %q+D follows non-thread-local declaration"
+msgstr ""
+
+#: c/c-decl.cc:2530
+#, gcc-internal-format
+msgid "non-thread-local declaration of %q+D follows thread-local declaration"
+msgstr ""
+
+#: c/c-decl.cc:2574
+#, gcc-internal-format
+msgid "extern declaration of %q+D follows declaration with no linkage"
+msgstr ""
+
+#: c/c-decl.cc:2612
+#, gcc-internal-format
+msgid "declaration of %q+D with no linkage follows extern declaration"
+msgstr ""
+
+#: c/c-decl.cc:2619
+#, gcc-internal-format
+msgid "redeclaration of %q+D with no linkage"
+msgstr ""
+
+#: c/c-decl.cc:2645
+#, gcc-internal-format
+msgid "redeclaration of %q+D with different visibility (old visibility preserved)"
+msgstr ""
+
+#: c/c-decl.cc:2666
+#, gcc-internal-format
+msgid "redefinition of parameter %q+D"
+msgstr ""
+
+#: c/c-decl.cc:2693
+#, gcc-internal-format
+msgid "redundant redeclaration of %q+D"
+msgstr ""
+
+#: c/c-decl.cc:3231
+#, gcc-internal-format
+msgid "declaration of %q+D shadows previous non-variable"
+msgstr ""
+
+#: c/c-decl.cc:3253
+#, gcc-internal-format
+msgid "declaration of %qD shadows a parameter"
+msgstr ""
+
+#: c/c-decl.cc:3266 cp/name-lookup.cc:3551
+#, gcc-internal-format
+msgid "declaration of %qD shadows a global declaration"
+msgstr ""
+
+#: c/c-decl.cc:3292
+#, gcc-internal-format
+msgid "declaration of %qD shadows a previous local"
+msgstr ""
+
+#: c/c-decl.cc:3298 cp/name-lookup.cc:3268
+#, gcc-internal-format
+msgid "shadowed declaration is here"
+msgstr ""
+
+#: c/c-decl.cc:3431
+#, gcc-internal-format
+msgid "nested extern declaration of %qD"
+msgstr ""
+
+#: c/c-decl.cc:3587 c/c-decl.cc:3601
+#, gcc-internal-format
+msgid "implicit declaration of function %qE; did you mean %qs?"
+msgstr ""
+
+#: c/c-decl.cc:3593 c/c-decl.cc:3606
+#, gcc-internal-format
+msgid "implicit declaration of function %qE"
+msgstr ""
+
+#: c/c-decl.cc:3625
+#, gcc-internal-format
+msgid "include %qs or provide a declaration of %qE"
+msgstr ""
+
+#: c/c-decl.cc:3896
+#, gcc-internal-format
+msgid "incompatible implicit declaration of built-in function %qD"
+msgstr ""
+
+#: c/c-decl.cc:3906
+#, gcc-internal-format
+msgid "include %qs or provide a declaration of %qD"
+msgstr ""
+
+#: c/c-decl.cc:3917
+#, gcc-internal-format
+msgid "incompatible implicit declaration of function %qD"
+msgstr ""
+
+#: c/c-decl.cc:3978
+#, gcc-internal-format
+msgid "%qE undeclared here (not in a function); did you mean %qs?"
+msgstr ""
+
+#: c/c-decl.cc:3983
+#, gcc-internal-format
+msgid "%qE undeclared here (not in a function)"
+msgstr ""
+
+#: c/c-decl.cc:3996
+#, gcc-internal-format
+msgid "%qE undeclared (first use in this function); did you mean %qs?"
+msgstr ""
+
+#: c/c-decl.cc:4001
+#, gcc-internal-format
+msgid "%qE undeclared (first use in this function)"
+msgstr ""
+
+#: c/c-decl.cc:4005
+#, gcc-internal-format
+msgid "each undeclared identifier is reported only once for each function it appears in"
+msgstr ""
+
+#: c/c-decl.cc:4053 cp/decl.cc:3588
+#, gcc-internal-format
+msgid "label %qE referenced outside of any function"
+msgstr ""
+
+#: c/c-decl.cc:4090
+#, gcc-internal-format
+msgid "jump into scope of identifier with variably modified type"
+msgstr ""
+
+#: c/c-decl.cc:4093
+#, gcc-internal-format
+msgid "jump skips OpenMP %<allocate%> allocation"
+msgstr ""
+
+#: c/c-decl.cc:4096
+#, gcc-internal-format
+msgid "jump skips variable initialization"
+msgstr ""
+
+#: c/c-decl.cc:4098 c/c-decl.cc:4154 c/c-decl.cc:4245
+#, gcc-internal-format
+msgid "label %qD defined here"
+msgstr ""
+
+#: c/c-decl.cc:4153 c/c-decl.cc:4244
+#, gcc-internal-format
+msgid "jump into statement expression"
+msgstr ""
+
+#: c/c-decl.cc:4176
+#, gcc-internal-format
+msgid "duplicate label declaration %qE"
+msgstr ""
+
+#: c/c-decl.cc:4276 cp/decl.cc:4089
+#, gcc-internal-format
+msgid "duplicate label %qD"
+msgstr ""
+
+#: c/c-decl.cc:4307
+#, gcc-internal-format
+msgid "traditional C lacks a separate namespace for labels, identifier %qE conflicts"
+msgstr ""
+
+#: c/c-decl.cc:4379
+#, gcc-internal-format
+msgid "switch jumps over OpenMP %<allocate%> allocation"
+msgstr ""
+
+#: c/c-decl.cc:4385
+#, gcc-internal-format
+msgid "switch jumps over variable initialization"
+msgstr ""
+
+#: c/c-decl.cc:4388 c/c-decl.cc:4401
+#, gcc-internal-format
+msgid "switch starts here"
+msgstr ""
+
+#: c/c-decl.cc:4400
+#, gcc-internal-format
+msgid "switch jumps into statement expression"
+msgstr ""
+
+#: c/c-decl.cc:4483
+#, gcc-internal-format
+msgid "%qE defined as wrong kind of tag"
+msgstr ""
+
+#: c/c-decl.cc:4669 cp/tree.cc:5039
+#, gcc-internal-format
+msgid "%qE attribute applied to %qD with void return type"
+msgstr ""
+
+#: c/c-decl.cc:4678
+#, gcc-internal-format
+msgid "%qE attribute can only be applied to functions or to structure, union or enumeration types"
+msgstr ""
+
+#: c/c-decl.cc:4698
+#, gcc-internal-format
+msgid "standard %qE attribute can only be applied to functions"
+msgstr ""
+
+#. This can only occur with extensions such as statement
+#. expressions, but is still appropriate as an error to
+#. avoid types declared in such a context escaping to
+#. the type of an auto variable.
+#: c/c-decl.cc:4976 c/c-decl.cc:8833
+#, gcc-internal-format
+msgid "%qT declared in underspecified object initializer"
+msgstr ""
+
+#: c/c-decl.cc:4987
+#, gcc-internal-format
+msgid "unnamed struct/union that defines no instances"
+msgstr ""
+
+#: c/c-decl.cc:4998
+#, gcc-internal-format
+msgid "empty declaration with storage class specifier does not redeclare tag"
+msgstr ""
+
+#: c/c-decl.cc:5014
+#, gcc-internal-format
+msgid "empty declaration with type qualifier does not redeclare tag"
+msgstr ""
+
+#: c/c-decl.cc:5026
+#, gcc-internal-format
+msgid "empty declaration with %<_Alignas%> does not redeclare tag"
+msgstr ""
+
+#: c/c-decl.cc:5040
+#, gcc-internal-format
+msgid "empty declaration of %<enum%> type does not redeclare tag"
+msgstr ""
+
+#: c/c-decl.cc:5065 c/c-decl.cc:5073
+#, gcc-internal-format
+msgid "useless type name in empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5081
+#, gcc-internal-format
+msgid "%<inline%> in empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5087
+#, gcc-internal-format
+msgid "%<_Noreturn%> in empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5093
+#, gcc-internal-format
+msgid "%<constexpr%> in empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5099
+#, gcc-internal-format
+msgid "%<auto%> in file-scope empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5105
+#, gcc-internal-format
+msgid "%<register%> in file-scope empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5113
+#, gcc-internal-format
+msgid "storage class specifier in empty declaration with %<enum%> underlying type"
+msgstr ""
+
+#: c/c-decl.cc:5119
+#, gcc-internal-format
+msgid "%qs in empty declaration with %<enum%> underlying type"
+msgstr ""
+
+#: c/c-decl.cc:5129
+#, gcc-internal-format
+msgid "type qualifier in empty declaration with %<enum%> underlying type"
+msgstr ""
+
+#: c/c-decl.cc:5135
+#, gcc-internal-format
+msgid "%<alignas%> in empty declaration with %<enum%> underlying type"
+msgstr ""
+
+#: c/c-decl.cc:5144
+#, gcc-internal-format
+msgid "useless storage class specifier in empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5150
+#, gcc-internal-format
+msgid "useless %qs in empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5163
+#, gcc-internal-format
+msgid "useless type qualifier in empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5170
+#, gcc-internal-format
+msgid "useless %<_Alignas%> in empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5188
+#, gcc-internal-format
+msgid "invalid use of attributes in empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5202 c/c-parser.cc:2403
+#, gcc-internal-format
+msgid "empty declaration"
+msgstr ""
+
+#: c/c-decl.cc:5274
+#, gcc-internal-format
+msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators"
+msgstr ""
+
+#: c/c-decl.cc:5278
+#, gcc-internal-format
+msgid "ISO C90 does not support %<[*]%> array declarators"
+msgstr ""
+
+#. C99 6.7.5.2p4
+#. A function definition isn't function prototype scope C99 6.2.1p4.
+#. C99 6.7.5.2p4
+#: c/c-decl.cc:5284 c/c-decl.cc:8413 c/c-decl.cc:10830
+#, gcc-internal-format
+msgid "%<[*]%> not allowed in other than function prototype scope"
+msgstr ""
+
+#: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
+#, gcc-internal-format
+msgid "%<omp::%s%> not allowed to be specified in this context"
+msgstr ""
+
+#: c/c-decl.cc:5557
+#, gcc-internal-format
+msgid "%q+D is usually a function"
+msgstr ""
+
+#: c/c-decl.cc:5562 c/c-decl.cc:10661 cp/decl.cc:17947
+#, gcc-internal-format
+msgid "no previous declaration for %qD"
+msgstr ""
+
+#: c/c-decl.cc:5571
+#, gcc-internal-format
+msgid "typedef %qD is initialized (use %<__typeof__%> instead)"
+msgstr ""
+
+#: c/c-decl.cc:5576
+#, gcc-internal-format
+msgid "function %qD is initialized like a variable"
+msgstr ""
+
+#. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE.
+#: c/c-decl.cc:5582
+#, gcc-internal-format
+msgid "parameter %qD is initialized"
+msgstr ""
+
+#: c/c-decl.cc:5602
+#, gcc-internal-format
+msgid "variable %qD has initializer but incomplete type"
+msgstr ""
+
+#: c/c-decl.cc:5682
+#, gcc-internal-format
+msgid "inline function %q+D given attribute %qs"
+msgstr ""
+
+#: c/c-decl.cc:5738
+#, gcc-internal-format
+msgid "uninitialized const member in %qT is invalid in C++"
+msgstr ""
+
+#: c/c-decl.cc:5740
+#, gcc-internal-format
+msgid "%qD should be initialized"
+msgstr ""
+
+#: c/c-decl.cc:5821
+#, gcc-internal-format
+msgid "initializer fails to determine size of %q+D"
+msgstr ""
+
+#: c/c-decl.cc:5826
+#, gcc-internal-format
+msgid "array size missing in %q+D"
+msgstr ""
+
+#: c/c-decl.cc:5830
+#, gcc-internal-format
+msgid "zero or negative size array %q+D"
+msgstr ""
+
+#: c/c-decl.cc:5921 m2/gm2-gcc/m2type.cc:1250
+#, gcc-internal-format
+msgid "storage size of %q+D isn%'t constant"
+msgstr ""
+
+#: c/c-decl.cc:5971
+#, gcc-internal-format
+msgid "ignoring %<asm%> specifier for non-static local variable %q+D"
+msgstr ""
+
+#: c/c-decl.cc:6009
+#, gcc-internal-format
+msgid "cannot put object with volatile field into register"
+msgstr ""
+
+#: c/c-decl.cc:6095
+#, gcc-internal-format
+msgid "uninitialized %<const %D%> is invalid in C++"
+msgstr ""
+
+#: c/c-decl.cc:6110 cp/decl.cc:9052
+#, gcc-internal-format
+msgid "%q+D in declare target directive does not have mappable type"
+msgstr ""
+
+#: c/c-decl.cc:6373
+#, gcc-internal-format
+msgid "ISO C forbids forward parameter declarations"
+msgstr ""
+
+#: c/c-decl.cc:6413
+#, gcc-internal-format
+msgid "file-scope compound literal specifies %<register%>"
+msgstr ""
+
+#: c/c-decl.cc:6419
+#, gcc-internal-format
+msgid "compound literal implicitly auto and declared %qs"
+msgstr ""
+
+#: c/c-decl.cc:6519
+#, gcc-internal-format
+msgid "defining a type in a compound literal is invalid in C++"
+msgstr ""
+
+#: c/c-decl.cc:6540 c/c-decl.cc:6555
+#, gcc-internal-format
+msgid "bit-field %qs width not an integer constant"
+msgstr ""
+
+#: c/c-decl.cc:6550
+#, gcc-internal-format
+msgid "bit-field %qs width not an integer constant expression"
+msgstr ""
+
+#: c/c-decl.cc:6561
+#, gcc-internal-format
+msgid "negative width in bit-field %qs"
+msgstr ""
+
+#: c/c-decl.cc:6566
+#, gcc-internal-format
+msgid "zero width for bit-field %qs"
+msgstr ""
+
+#: c/c-decl.cc:6577
+#, gcc-internal-format
+msgid "bit-field %qs has invalid type"
+msgstr ""
+
+#: c/c-decl.cc:6583
+#, gcc-internal-format
+msgid "cannot declare bit-field %qs with %<warn_if_not_aligned%> type"
+msgstr ""
+
+#: c/c-decl.cc:6594
+#, gcc-internal-format
+msgid "type of bit-field %qs is a GCC extension"
+msgstr ""
+
+#: c/c-decl.cc:6600
+#, gcc-internal-format
+msgid "width of %qs exceeds its type"
+msgstr ""
+
+#: c/c-decl.cc:6619
+#, gcc-internal-format
+msgid "%qs is narrower than values of its type"
+msgstr ""
+
+#: c/c-decl.cc:6634
+#, gcc-internal-format
+msgid "ISO C90 forbids array %qE whose size cannot be evaluated"
+msgstr ""
+
+#: c/c-decl.cc:6637
+#, gcc-internal-format
+msgid "ISO C90 forbids array whose size cannot be evaluated"
+msgstr ""
+
+#: c/c-decl.cc:6644
+#, gcc-internal-format
+msgid "ISO C90 forbids variable length array %qE"
+msgstr ""
+
+#: c/c-decl.cc:6646
+#, gcc-internal-format
+msgid "ISO C90 forbids variable length array"
+msgstr ""
+
+#: c/c-decl.cc:6889
+#, gcc-internal-format
+msgid "%<enum%> underlying type may not be specified here"
+msgstr ""
+
+#: c/c-decl.cc:6917 c/c-decl.cc:7326 c/c-decl.cc:7336
+#, gcc-internal-format
+msgid "variably modified %qE at file scope"
+msgstr ""
+
+#: c/c-decl.cc:6919
+#, gcc-internal-format
+msgid "variably modified field at file scope"
+msgstr ""
+
+#: c/c-decl.cc:6939
+#, gcc-internal-format
+msgid "type defaults to %<int%> in declaration of %qE"
+msgstr ""
+
+#: c/c-decl.cc:6943
+#, gcc-internal-format
+msgid "type defaults to %<int%> in type name"
+msgstr ""
+
+#: c/c-decl.cc:6975
+#, gcc-internal-format
+msgid "duplicate %<const%>"
+msgstr ""
+
+#: c/c-decl.cc:6977
+#, gcc-internal-format
+msgid "duplicate %<restrict%>"
+msgstr ""
+
+#: c/c-decl.cc:6979
+#, gcc-internal-format
+msgid "duplicate %<volatile%>"
+msgstr ""
+
+#: c/c-decl.cc:6981
+#, gcc-internal-format
+msgid "duplicate %<_Atomic%>"
+msgstr ""
+
+#: c/c-decl.cc:6984
+#, gcc-internal-format, gfc-internal-format
+msgid "conflicting named address spaces (%s vs %s)"
+msgstr ""
+
+#: c/c-decl.cc:7007 c/c-parser.cc:3573
+#, gcc-internal-format
+msgid "%<_Atomic%>-qualified array type"
+msgstr ""
+
+#: c/c-decl.cc:7022
+#, gcc-internal-format
+msgid "function definition declared %<auto%>"
+msgstr ""
+
+#: c/c-decl.cc:7024
+#, gcc-internal-format
+msgid "function definition declared %<register%>"
+msgstr ""
+
+#: c/c-decl.cc:7026
+#, gcc-internal-format
+msgid "function definition declared %<typedef%>"
+msgstr ""
+
+#: c/c-decl.cc:7028
+#, gcc-internal-format
+msgid "function definition declared %qs"
+msgstr ""
+
+#: c/c-decl.cc:7055
+#, gcc-internal-format
+msgid "storage class specified for structure field %qE"
+msgstr ""
+
+#: c/c-decl.cc:7058
+#, gcc-internal-format
+msgid "storage class specified for structure field"
+msgstr ""
+
+#: c/c-decl.cc:7062
+#, gcc-internal-format
+msgid "storage class specified for parameter %qE"
+msgstr ""
+
+#: c/c-decl.cc:7065
+#, gcc-internal-format
+msgid "storage class specified for unnamed parameter"
+msgstr ""
+
+#: c/c-decl.cc:7068 cp/decl.cc:13150
+#, gcc-internal-format
+msgid "storage class specified for typename"
+msgstr ""
+
+#: c/c-decl.cc:7086
+#, gcc-internal-format
+msgid "%qE initialized and declared %<extern%>"
+msgstr ""
+
+#: c/c-decl.cc:7090
+#, gcc-internal-format
+msgid "%qE has both %<extern%> and initializer"
+msgstr ""
+
+#: c/c-decl.cc:7095
+#, gcc-internal-format
+msgid "file-scope declaration of %qE specifies %<auto%>"
+msgstr ""
+
+#: c/c-decl.cc:7099
+#, gcc-internal-format
+msgid "file-scope declaration of %qE specifies %<register%>"
+msgstr ""
+
+#: c/c-decl.cc:7104
+#, gcc-internal-format
+msgid "nested function %qE declared %<extern%>"
+msgstr ""
+
+#: c/c-decl.cc:7107
+#, gcc-internal-format
+msgid "function-scope %qE implicitly auto and declared %qs"
+msgstr ""
+
+#. Only the innermost declarator (making a parameter be of
+#. array type which is converted to pointer type)
+#. may have static or type qualifiers.
+#: c/c-decl.cc:7154 c/c-decl.cc:7550
+#, gcc-internal-format
+msgid "static or type qualifiers in non-parameter array declarator"
+msgstr ""
+
+#: c/c-decl.cc:7217
+#, gcc-internal-format
+msgid "declaration of %qE as array of voids"
+msgstr ""
+
+#: c/c-decl.cc:7219
+#, gcc-internal-format
+msgid "declaration of type name as array of voids"
+msgstr ""
+
+#: c/c-decl.cc:7226
+#, gcc-internal-format
+msgid "declaration of %qE as array of functions"
+msgstr ""
+
+#: c/c-decl.cc:7229
+#, gcc-internal-format
+msgid "declaration of type name as array of functions"
+msgstr ""
+
+#: c/c-decl.cc:7237 c/c-decl.cc:9577
+#, gcc-internal-format
+msgid "invalid use of structure with flexible array member"
+msgstr ""
+
+#: c/c-decl.cc:7269
+#, gcc-internal-format
+msgid "size of array %qE has non-integer type"
+msgstr ""
+
+#: c/c-decl.cc:7273
+#, gcc-internal-format
+msgid "size of unnamed array has non-integer type"
+msgstr ""
+
+#: c/c-decl.cc:7281
+#, gcc-internal-format
+msgid "size of array %qE has incomplete type"
+msgstr ""
+
+#: c/c-decl.cc:7284
+#, gcc-internal-format
+msgid "size of unnamed array has incomplete type"
+msgstr ""
+
+#: c/c-decl.cc:7296
+#, gcc-internal-format
+msgid "ISO C forbids zero-size array %qE"
+msgstr ""
+
+#: c/c-decl.cc:7299
+#, gcc-internal-format
+msgid "ISO C forbids zero-size array"
+msgstr ""
+
+#: c/c-decl.cc:7308
+#, gcc-internal-format
+msgid "size of array %qE is negative"
+msgstr ""
+
+#: c/c-decl.cc:7310
+#, gcc-internal-format
+msgid "size of unnamed array is negative"
+msgstr ""
+
+#: c/c-decl.cc:7396
+#, gcc-internal-format
+msgid "size of array %qE is too large"
+msgstr ""
+
+#: c/c-decl.cc:7399
+#, gcc-internal-format
+msgid "size of unnamed array is too large"
+msgstr ""
+
+#: c/c-decl.cc:7438 c/c-decl.cc:8070
+#, gcc-internal-format
+msgid "ISO C90 does not support flexible array members"
+msgstr ""
+
+#. C99 6.7.5.2p4
+#: c/c-decl.cc:7460
+#, gcc-internal-format
+msgid "%<[*]%> not in a declaration"
+msgstr ""
+
+#: c/c-decl.cc:7474
+#, gcc-internal-format
+msgid "array type has incomplete element type %qT"
+msgstr ""
+
+#: c/c-decl.cc:7480
+#, gcc-internal-format
+msgid "declaration of %qE as multidimensional array must have bounds for all dimensions except the first"
+msgstr ""
+
+#: c/c-decl.cc:7484
+#, gcc-internal-format
+msgid "declaration of multidimensional array must have bounds for all dimensions except the first"
+msgstr ""
+
+#: c/c-decl.cc:7586
+#, gcc-internal-format
+msgid "%qE declared as function returning a function"
+msgstr ""
+
+#: c/c-decl.cc:7589
+#, gcc-internal-format
+msgid "type name declared as function returning a function"
+msgstr ""
+
+#: c/c-decl.cc:7596
+#, gcc-internal-format
+msgid "%qE declared as function returning an array"
+msgstr ""
+
+#: c/c-decl.cc:7599
+#, gcc-internal-format
+msgid "type name declared as function returning an array"
+msgstr ""
+
+#: c/c-decl.cc:7643
+#, gcc-internal-format
+msgid "function definition has qualified void return type"
+msgstr ""
+
+#: c/c-decl.cc:7647 cp/decl.cc:13559
+#, gcc-internal-format
+msgid "type qualifiers ignored on function return type"
+msgstr ""
+
+#: c/c-decl.cc:7686 c/c-decl.cc:7856 c/c-decl.cc:7910 c/c-decl.cc:8004
+#: c/c-decl.cc:8126 c/c-parser.cc:3575
+#, gcc-internal-format
+msgid "%<_Atomic%>-qualified function type"
+msgstr ""
+
+#: c/c-decl.cc:7692 c/c-decl.cc:7862 c/c-decl.cc:8009 c/c-decl.cc:8131
+#, gcc-internal-format
+msgid "ISO C forbids qualified function types"
+msgstr ""
+
+#: c/c-decl.cc:7747
+#, gcc-internal-format
+msgid "%qs combined with %<auto%> qualifier for %qE"
+msgstr ""
+
+#: c/c-decl.cc:7751
+#, gcc-internal-format
+msgid "%qs combined with %<register%> qualifier for %qE"
+msgstr ""
+
+#: c/c-decl.cc:7757
+#, gcc-internal-format
+msgid "%qs specified for auto variable %qE"
+msgstr ""
+
+#: c/c-decl.cc:7773
+#, gcc-internal-format
+msgid "%qs specified for parameter %qE"
+msgstr ""
+
+#: c/c-decl.cc:7776
+#, gcc-internal-format
+msgid "%qs specified for unnamed parameter"
+msgstr ""
+
+#: c/c-decl.cc:7782
+#, gcc-internal-format
+msgid "%qs specified for structure field %qE"
+msgstr ""
+
+#: c/c-decl.cc:7785
+#, gcc-internal-format
+msgid "%qs specified for structure field"
+msgstr ""
+
+#: c/c-decl.cc:7800
+#, gcc-internal-format
+msgid "bit-field %qE has atomic type"
+msgstr ""
+
+#: c/c-decl.cc:7802
+#, gcc-internal-format
+msgid "bit-field has atomic type"
+msgstr ""
+
+#: c/c-decl.cc:7811
+#, gcc-internal-format
+msgid "alignment specified for typedef %qE"
+msgstr ""
+
+#: c/c-decl.cc:7813
+#, gcc-internal-format
+msgid "alignment specified for %<register%> object %qE"
+msgstr ""
+
+#: c/c-decl.cc:7818
+#, gcc-internal-format
+msgid "alignment specified for parameter %qE"
+msgstr ""
+
+#: c/c-decl.cc:7820
+#, gcc-internal-format
+msgid "alignment specified for unnamed parameter"
+msgstr ""
+
+#: c/c-decl.cc:7825
+#, gcc-internal-format
+msgid "alignment specified for bit-field %qE"
+msgstr ""
+
+#: c/c-decl.cc:7827
+#, gcc-internal-format
+msgid "alignment specified for unnamed bit-field"
+msgstr ""
+
+#: c/c-decl.cc:7830
+#, gcc-internal-format
+msgid "alignment specified for function %qE"
+msgstr ""
+
+#: c/c-decl.cc:7837
+#, gcc-internal-format
+msgid "%<_Alignas%> specifiers cannot reduce alignment of %qE"
+msgstr ""
+
+#: c/c-decl.cc:7840
+#, gcc-internal-format
+msgid "%<_Alignas%> specifiers cannot reduce alignment of unnamed field"
+msgstr ""
+
+#: c/c-decl.cc:7871
+#, gcc-internal-format
+msgid "typedef %q+D declared %<inline%>"
+msgstr ""
+
+#: c/c-decl.cc:7873
+#, gcc-internal-format
+msgid "typedef %q+D declared %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.cc:7916
+#, gcc-internal-format
+msgid "ISO C forbids const or volatile function types"
+msgstr ""
+
+#. C99 6.7.2.1p8
+#: c/c-decl.cc:7927
+#, gcc-internal-format
+msgid "a member of a structure or union cannot have a variably modified type"
+msgstr ""
+
+#: c/c-decl.cc:7944 cp/decl.cc:12030
+#, gcc-internal-format
+msgid "variable or field %qE declared void"
+msgstr ""
+
+#: c/c-decl.cc:7994
+#, gcc-internal-format
+msgid "attributes in parameter array declarator ignored"
+msgstr ""
+
+#: c/c-decl.cc:8036
+#, gcc-internal-format
+msgid "parameter %q+D declared %<inline%>"
+msgstr ""
+
+#: c/c-decl.cc:8038
+#, gcc-internal-format
+msgid "parameter %q+D declared %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.cc:8051
+#, gcc-internal-format
+msgid "field %qE declared as a function"
+msgstr ""
+
+#: c/c-decl.cc:8058
+#, gcc-internal-format
+msgid "field %qE has incomplete type"
+msgstr ""
+
+#: c/c-decl.cc:8060
+#, gcc-internal-format
+msgid "unnamed field has incomplete type"
+msgstr ""
+
+#: c/c-decl.cc:8097 c/c-decl.cc:8108 c/c-decl.cc:8111
+#, gcc-internal-format
+msgid "invalid storage class for function %qE"
+msgstr ""
+
+#: c/c-decl.cc:8168
+#, gcc-internal-format
+msgid "cannot inline function %<main%>"
+msgstr ""
+
+#: c/c-decl.cc:8170
+#, gcc-internal-format
+msgid "%<main%> declared %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.cc:8181
+#, gcc-internal-format
+msgid "ISO C99 does not support %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.cc:8184
+#, gcc-internal-format
+msgid "ISO C90 does not support %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.cc:8206
+#, gcc-internal-format
+msgid "function previously declared %<static%> redeclared %<extern%>"
+msgstr ""
+
+#: c/c-decl.cc:8224
+#, gcc-internal-format
+msgid "%<constexpr%> object has variably modified type"
+msgstr ""
+
+#: c/c-decl.cc:8228 c/c-parser.cc:12277
+#, gcc-internal-format
+msgid "invalid qualifiers for %<constexpr%> object"
+msgstr ""
+
+#: c/c-decl.cc:8234 c/c-parser.cc:12280
+#, gcc-internal-format
+msgid "invalid qualifiers for field of %<constexpr%> object"
+msgstr ""
+
+#: c/c-decl.cc:8260
+#, gcc-internal-format
+msgid "variable previously declared %<static%> redeclared %<extern%>"
+msgstr ""
+
+#: c/c-decl.cc:8272
+#, gcc-internal-format
+msgid "variable %q+D declared %<inline%>"
+msgstr ""
+
+#: c/c-decl.cc:8274
+#, gcc-internal-format
+msgid "variable %q+D declared %<_Noreturn%>"
+msgstr ""
+
+#: c/c-decl.cc:8309
+#, gcc-internal-format
+msgid "non-nested function with variably modified type"
+msgstr ""
+
+#: c/c-decl.cc:8311
+#, gcc-internal-format
+msgid "object with variably modified type must have no linkage"
+msgstr ""
+
+#: c/c-decl.cc:8419 c/c-decl.cc:10635
+#, gcc-internal-format
+msgid "function declaration isn%'t a prototype"
+msgstr ""
+
+#: c/c-decl.cc:8431
+#, gcc-internal-format
+msgid "parameter names (without types) in function declaration"
+msgstr ""
+
+#: c/c-decl.cc:8476
+#, gcc-internal-format
+msgid "parameter %u (%q+D) has incomplete type"
+msgstr ""
+
+#: c/c-decl.cc:8480
+#, gcc-internal-format, gfc-internal-format
+msgid "parameter %u has incomplete type"
+msgstr ""
+
+#: c/c-decl.cc:8491
+#, gcc-internal-format
+msgid "parameter %u (%q+D) has void type"
+msgstr ""
+
+#: c/c-decl.cc:8495
+#, gcc-internal-format, gfc-internal-format
+msgid "parameter %u has void type"
+msgstr ""
+
+#: c/c-decl.cc:8570
+#, gcc-internal-format
+msgid "%<void%> as only parameter may not be qualified"
+msgstr ""
+
+#: c/c-decl.cc:8574 c/c-decl.cc:8610
+#, gcc-internal-format
+msgid "%<void%> must be the only parameter"
+msgstr ""
+
+#: c/c-decl.cc:8604
+#, gcc-internal-format
+msgid "parameter %q+D has just a forward declaration"
+msgstr ""
+
+#: c/c-decl.cc:8652
+#, gcc-internal-format
+msgid "%<%s %E%> declared inside parameter list will not be visible outside of this definition or declaration"
+msgstr ""
+
+#: c/c-decl.cc:8659
+#, gcc-internal-format, gfc-internal-format
+msgid "anonymous %s declared inside parameter list will not be visible outside of this definition or declaration"
+msgstr ""
+
+#: c/c-decl.cc:8785
+#, gcc-internal-format
+msgid "enum type defined here"
+msgstr ""
+
+#: c/c-decl.cc:8791
+#, gcc-internal-format
+msgid "struct defined here"
+msgstr ""
+
+#: c/c-decl.cc:8797
+#, gcc-internal-format
+msgid "union defined here"
+msgstr ""
+
+#: c/c-decl.cc:8890
+#, gcc-internal-format
+msgid "redefinition of %<union %E%>"
+msgstr ""
+
+#: c/c-decl.cc:8892
+#, gcc-internal-format
+msgid "redefinition of %<struct %E%>"
+msgstr ""
+
+#: c/c-decl.cc:8901
+#, gcc-internal-format
+msgid "nested redefinition of %<union %E%>"
+msgstr ""
+
+#: c/c-decl.cc:8903
+#, gcc-internal-format
+msgid "nested redefinition of %<struct %E%>"
+msgstr ""
+
+#: c/c-decl.cc:8935 c/c-decl.cc:10013
+#, gcc-internal-format
+msgid "defining type in %qs expression is invalid in C++"
+msgstr ""
+
+#: c/c-decl.cc:8941 c/c-decl.cc:10019
+#, gcc-internal-format
+msgid "%qT defined in underspecified object initializer"
+msgstr ""
+
+#: c/c-decl.cc:9005 cp/decl.cc:5670
+#, gcc-internal-format
+msgid "declaration does not declare anything"
+msgstr ""
+
+#: c/c-decl.cc:9010
+#, gcc-internal-format
+msgid "ISO C99 doesn%'t support unnamed structs/unions"
+msgstr ""
+
+#: c/c-decl.cc:9013
+#, gcc-internal-format
+msgid "ISO C90 doesn%'t support unnamed structs/unions"
+msgstr ""
+
+#: c/c-decl.cc:9106 c/c-decl.cc:9124 c/c-decl.cc:9185
+#, gcc-internal-format
+msgid "duplicate member %q+D"
+msgstr ""
+
+#: c/c-decl.cc:9211
+#, gcc-internal-format
+msgid "empty struct has size 0 in C, size 1 in C++"
+msgstr ""
+
+#: c/c-decl.cc:9214
+#, gcc-internal-format
+msgid "empty union has size 0 in C, size 1 in C++"
+msgstr ""
+
+#: c/c-decl.cc:9469
+#, gcc-internal-format
+msgid "union has no named members"
+msgstr ""
+
+#: c/c-decl.cc:9471
+#, gcc-internal-format
+msgid "union has no members"
+msgstr ""
+
+#: c/c-decl.cc:9476
+#, gcc-internal-format
+msgid "struct has no named members"
+msgstr ""
+
+#: c/c-decl.cc:9478
+#, gcc-internal-format
+msgid "struct has no members"
+msgstr ""
+
+#: c/c-decl.cc:9556 cp/decl.cc:14592
+#, gcc-internal-format
+msgid "flexible array member in union"
+msgstr ""
+
+#: c/c-decl.cc:9562
+#, gcc-internal-format
+msgid "flexible array member not at end of struct"
+msgstr ""
+
+#: c/c-decl.cc:9568
+#, gcc-internal-format
+msgid "flexible array member in a struct with no named members"
+msgstr ""
+
+#: c/c-decl.cc:9599
+#, gcc-internal-format
+msgid "structure containing a flexible array member is not at the end of another structure"
+msgstr ""
+
+#: c/c-decl.cc:9622
+#, gcc-internal-format
+msgid "type %qT is too large"
+msgstr ""
+
+#: c/c-decl.cc:9686
+#, gcc-internal-format
+msgid "type punning toggles scalar storage order"
+msgstr ""
+
+#: c/c-decl.cc:9753
+#, gcc-internal-format
+msgid "union cannot be made transparent"
+msgstr ""
+
+#: c/c-decl.cc:9766
+#, gcc-internal-format
+msgid "redefinition of struct or union %qT with variably modified type"
+msgstr ""
+
+#: c/c-decl.cc:9769
+#, gcc-internal-format
+msgid "redefinition of struct or union %qT"
+msgstr ""
+
+#: c/c-decl.cc:9938
+#, gcc-internal-format
+msgid "nested redefinition of %<enum %E%>"
+msgstr ""
+
+#: c/c-decl.cc:9983
+#, gcc-internal-format
+msgid "redeclaration of %<enum %E%>"
+msgstr ""
+
+#: c/c-decl.cc:9995
+#, gcc-internal-format
+msgid "%<enum%> declared with but defined without fixed underlying type"
+msgstr ""
+
+#: c/c-decl.cc:10082 cp/decl.cc:17221 m2/gm2-gcc/m2type.cc:2073
+#, gcc-internal-format
+msgid "specified mode too small for enumerated values"
+msgstr ""
+
+#: c/c-decl.cc:10101
+#, gcc-internal-format
+msgid "enumeration values exceed range of largest integer"
+msgstr ""
+
+#: c/c-decl.cc:10110
+#, gcc-internal-format
+msgid "enumeration values exceed range of %qs"
+msgstr ""
+
+#: c/c-decl.cc:10219
+#, gcc-internal-format
+msgid "conflicting redefinition of enum %qT"
+msgstr ""
+
+#: c/c-decl.cc:10251 c/c-decl.cc:10267
+#, gcc-internal-format
+msgid "enumerator value for %qE is not an integer constant"
+msgstr ""
+
+#: c/c-decl.cc:10262
+#, gcc-internal-format
+msgid "enumerator value for %qE is not an integer constant expression"
+msgstr ""
+
+#: c/c-decl.cc:10286
+#, gcc-internal-format
+msgid "overflow in enumeration values"
+msgstr ""
+
+#: c/c-decl.cc:10293
+#, gcc-internal-format
+msgid "enumerator value outside the range of underlying type"
+msgstr ""
+
+#: c/c-decl.cc:10321
+#, gcc-internal-format
+msgid "enumerator value outside the range of %qs"
+msgstr ""
+
+#: c/c-decl.cc:10327
+#, gcc-internal-format
+msgid "ISO C restricts enumerator values to range of %<int%> before C23"
+msgstr ""
+
+#: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
+#, gcc-internal-format
+msgid "inline function %qD given attribute %qs"
+msgstr ""
+
+#: c/c-decl.cc:10546
+#, gcc-internal-format
+msgid "return type is an incomplete type"
+msgstr ""
+
+#: c/c-decl.cc:10558
+#, gcc-internal-format
+msgid "return type defaults to %<int%>"
+msgstr ""
+
+#: c/c-decl.cc:10586
+#, gcc-internal-format
+msgid "%q+D defined as variadic function without prototype"
+msgstr ""
+
+#: c/c-decl.cc:10644
+#, gcc-internal-format
+msgid "no previous prototype for %qD"
+msgstr ""
+
+#: c/c-decl.cc:10653
+#, gcc-internal-format
+msgid "%qD was used with no prototype before its definition"
+msgstr ""
+
+#: c/c-decl.cc:10671
+#, gcc-internal-format
+msgid "%qD was used with no declaration before its definition"
+msgstr ""
+
+#: c/c-decl.cc:10690
+#, gcc-internal-format
+msgid "return type of %qD is not %<int%>"
+msgstr ""
+
+#: c/c-decl.cc:10692
+#, gcc-internal-format
+msgid "%<_Atomic%>-qualified return type of %qD"
+msgstr ""
+
+#: c/c-decl.cc:10699
+#, gcc-internal-format
+msgid "%qD is normally a non-static function"
+msgstr ""
+
+#: c/c-decl.cc:10750
+#, gcc-internal-format
+msgid "old-style parameter declarations in prototyped function definition"
+msgstr ""
+
+#: c/c-decl.cc:10765
+#, gcc-internal-format
+msgid "traditional C rejects ISO C style function definitions"
+msgstr ""
+
+#: c/c-decl.cc:10782
+#, gcc-internal-format
+msgid "ISO C does not support omitting parameter names in function definitions before C23"
+msgstr ""
+
+#: c/c-decl.cc:10822 c/c-decl.cc:10826
+#, gcc-internal-format
+msgid "old-style function definition"
+msgstr ""
+
+#: c/c-decl.cc:10839
+#, gcc-internal-format
+msgid "parameter name missing from parameter list"
+msgstr ""
+
+#: c/c-decl.cc:10855
+#, gcc-internal-format
+msgid "%qD declared as a non-parameter"
+msgstr ""
+
+#: c/c-decl.cc:10863
+#, gcc-internal-format
+msgid "multiple parameters named %qD"
+msgstr ""
+
+#: c/c-decl.cc:10872
+#, gcc-internal-format
+msgid "parameter %qD declared with void type"
+msgstr ""
+
+#: c/c-decl.cc:10901 c/c-decl.cc:10906
+#, gcc-internal-format
+msgid "type of %qD defaults to %<int%>"
+msgstr ""
+
+#: c/c-decl.cc:10926
+#, gcc-internal-format
+msgid "parameter %qD has incomplete type"
+msgstr ""
+
+#: c/c-decl.cc:10933
+#, gcc-internal-format
+msgid "declaration for parameter %qD but no such parameter"
+msgstr ""
+
+#: c/c-decl.cc:10986
+#, gcc-internal-format
+msgid "number of arguments doesn%'t match built-in prototype"
+msgstr ""
+
+#: c/c-decl.cc:10997
+#, gcc-internal-format
+msgid "number of arguments doesn%'t match prototype"
+msgstr ""
+
+#: c/c-decl.cc:11000 c/c-decl.cc:11047 c/c-decl.cc:11061
+#, gcc-internal-format
+msgid "prototype declaration"
+msgstr ""
+
+#: c/c-decl.cc:11039
+#, gcc-internal-format
+msgid "promoted argument %qD doesn%'t match built-in prototype"
+msgstr ""
+
+#: c/c-decl.cc:11044
+#, gcc-internal-format
+msgid "promoted argument %qD doesn%'t match prototype"
+msgstr ""
+
+#: c/c-decl.cc:11054
+#, gcc-internal-format
+msgid "argument %qD doesn%'t match built-in prototype"
+msgstr ""
+
+#: c/c-decl.cc:11059
+#, gcc-internal-format
+msgid "argument %qD doesn%'t match prototype"
+msgstr ""
+
+#: c/c-decl.cc:11317 cp/decl.cc:18743
+#, gcc-internal-format
+msgid "no return statement in function returning non-void"
+msgstr ""
+
+#: c/c-decl.cc:11336 cp/decl.cc:18814
+#, gcc-internal-format
+msgid "parameter %qD set but not used"
+msgstr ""
+
+#: c/c-decl.cc:11433
+#, gcc-internal-format
+msgid "%<for%> loop initial declarations are only allowed in C99 or C11 mode"
+msgstr ""
+
+#: c/c-decl.cc:11438
+#, gcc-internal-format
+msgid "use option %<-std=c99%>, %<-std=gnu99%>, %<-std=c11%> or %<-std=gnu11%> to compile your code"
+msgstr ""
+
+#: c/c-decl.cc:11445
+#, gcc-internal-format
+msgid "ISO C90 does not support %<for%> loop initial declarations"
+msgstr ""
+
+#: c/c-decl.cc:11479
+#, gcc-internal-format
+msgid "declaration of static variable %qD in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.cc:11483
+#, gcc-internal-format
+msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.cc:11490
+#, gcc-internal-format
+msgid "%<struct %E%> declared in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.cc:11495
+#, gcc-internal-format
+msgid "%<union %E%> declared in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.cc:11501
+#, gcc-internal-format
+msgid "%<enum %E%> declared in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.cc:11505
+#, gcc-internal-format
+msgid "declaration of non-variable %qD in %<for%> loop initial declaration"
+msgstr ""
+
+#: c/c-decl.cc:11792
+#, gcc-internal-format
+msgid "incompatible address space qualifiers %qs and %qs"
+msgstr ""
+
+#: c/c-decl.cc:11851 c/c-decl.cc:11858
+#, gcc-internal-format
+msgid "duplicate %qE declaration specifier"
+msgstr ""
+
+#: c/c-decl.cc:11886 c/c-decl.cc:12964
+#, gcc-internal-format
+msgid "multiple storage classes in declaration specifiers"
+msgstr ""
+
+#: c/c-decl.cc:11888
+#, gcc-internal-format
+msgid "%qs used with %<auto%>"
+msgstr ""
+
+#. auto may only be used with another storage class specifier,
+#. such as constexpr, if the type is inferred.
+#: c/c-decl.cc:11893
+#, gcc-internal-format
+msgid "%<auto%> used with %<constexpr%>"
+msgstr ""
+
+#: c/c-decl.cc:11906 c/c-decl.cc:12306 c/c-decl.cc:12759
+#, gcc-internal-format
+msgid "two or more data types in declaration specifiers"
+msgstr ""
+
+#: c/c-decl.cc:11918 cp/parser.cc:34268
+#, gcc-internal-format
+msgid "%<long long long%> is too long for GCC"
+msgstr ""
+
+#: c/c-decl.cc:11931
+#, gcc-internal-format
+msgid "ISO C90 does not support %<long long%>"
+msgstr ""
+
+#: c/c-decl.cc:12168 c/c-parser.cc:11619
+#, gcc-internal-format
+msgid "ISO C90 does not support complex types"
+msgstr ""
+
+#: c/c-decl.cc:12218
+#, gcc-internal-format
+msgid "ISO C does not support saturating types"
+msgstr ""
+
+#: c/c-decl.cc:12293 c/c-decl.cc:12899 c/c-decl.cc:12958
+#, gcc-internal-format
+msgid "duplicate %qE"
+msgstr ""
+
+#: c/c-decl.cc:12353
+#, gcc-internal-format
+msgid "ISO C does not support %<__int%d%> types"
+msgstr ""
+
+#: c/c-decl.cc:12375
+#, gcc-internal-format
+msgid "%<__int%d%> is not supported on this target"
+msgstr ""
+
+#: c/c-decl.cc:12418
+#, gcc-internal-format
+msgid "ISO C90 does not support boolean types"
+msgstr ""
+
+#: c/c-decl.cc:12537
+#, gcc-internal-format
+msgid "ISO C does not support the %<_Float%d%s%> type before C23"
+msgstr ""
+
+#: c/c-decl.cc:12588 cp/parser.cc:20288
+#, gcc-internal-format
+msgid "%<_Float%d%s%> is not supported on this target"
+msgstr ""
+
+#: c/c-decl.cc:12659
+#, gcc-internal-format
+msgid "ISO C does not support decimal floating-point before C23"
+msgstr ""
+
+#: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
+#, gcc-internal-format
+msgid "fixed-point types not supported for this target"
+msgstr ""
+
+#: c/c-decl.cc:12685
+#, gcc-internal-format
+msgid "ISO C does not support fixed-point types"
+msgstr ""
+
+#: c/c-decl.cc:12714
+#, gcc-internal-format
+msgid "%<_BitInt%> argument is not an integer constant expression"
+msgstr ""
+
+#: c/c-decl.cc:12720
+#, gcc-internal-format
+msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
+msgstr ""
+
+#: c/c-decl.cc:12727
+#, gcc-internal-format
+msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
+msgstr ""
+
+#: c/c-decl.cc:12775
+#, gcc-internal-format
+msgid "C++ lookup of %qD would return a field, not a type"
+msgstr ""
+
+#: c/c-decl.cc:12788
+#, gcc-internal-format
+msgid "%qE fails to be a typedef or built in type"
+msgstr ""
+
+#: c/c-decl.cc:12843
+#, gcc-internal-format
+msgid "%qE is not at beginning of declaration"
+msgstr ""
+
+#. auto may only be used with another storage class specifier,
+#. such as constexpr, if the type is inferred.
+#: c/c-decl.cc:12864 c/c-decl.cc:12941
+#, gcc-internal-format
+msgid "%qE used with %<auto%>"
+msgstr ""
+
+#: c/c-decl.cc:12866
+#, gcc-internal-format
+msgid "%qE used with %<register%>"
+msgstr ""
+
+#: c/c-decl.cc:12868 c/c-decl.cc:12937
+#, gcc-internal-format
+msgid "%qE used with %<typedef%>"
+msgstr ""
+
+#: c/c-decl.cc:12870 c/c-decl.cc:12907
+#, gcc-internal-format
+msgid "%qE used with %<constexpr%>"
+msgstr ""
+
+#: c/c-decl.cc:12884 c/c-parser.cc:3100 c/c-parser.cc:4427 c/c-parser.cc:9960
+#, gcc-internal-format
+msgid "ISO C99 does not support %qE"
+msgstr ""
+
+#: c/c-decl.cc:12887 c/c-parser.cc:3103 c/c-parser.cc:4430 c/c-parser.cc:9963
+#, gcc-internal-format
+msgid "ISO C90 does not support %qE"
+msgstr ""
+
+#: c/c-decl.cc:12913
+#, gcc-internal-format
+msgid "%<__thread%> before %<extern%>"
+msgstr ""
+
+#: c/c-decl.cc:12922
+#, gcc-internal-format
+msgid "%<__thread%> before %<static%>"
+msgstr ""
+
+#: c/c-decl.cc:12928
+#, gcc-internal-format
+msgid "%<typedef%> used with %<auto%>"
+msgstr ""
+
+#: c/c-decl.cc:12935
+#, gcc-internal-format
+msgid "%qE used with %<extern%>"
+msgstr ""
+
+#: c/c-decl.cc:12943
+#, gcc-internal-format
+msgid "%qE used with %qs"
+msgstr ""
+
+#: c/c-decl.cc:12956
+#, gcc-internal-format
+msgid "duplicate %<_Thread_local%> or %<__thread%>"
+msgstr ""
+
+#: c/c-decl.cc:12972
+#, gcc-internal-format
+msgid "%qs used with %qE"
+msgstr ""
+
+#: c/c-decl.cc:12980
+#, gcc-internal-format
+msgid "%<constexpr%> used with %qE"
+msgstr ""
+
+#: c/c-decl.cc:13057
+#, gcc-internal-format
+msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>"
+msgstr ""
+
+#: c/c-decl.cc:13072
+#, gcc-internal-format
+msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
+msgstr ""
+
+#: c/c-decl.cc:13083
+#, gcc-internal-format
+msgid "ISO C does not support %<auto%> type deduction before C23"
+msgstr ""
+
+#: c/c-decl.cc:13112
+#, gcc-internal-format
+msgid "%<__auto_type%> followed by %<[[]]%> attributes"
+msgstr ""
+
+#: c/c-decl.cc:13138 c/c-decl.cc:13154 c/c-decl.cc:13180
+#, gcc-internal-format
+msgid "ISO C does not support complex integer types"
+msgstr ""
+
+#: c/c-decl.cc:13323
+#, gcc-internal-format
+msgid "%<signed _BitInt%> argument must be at least 2"
+msgstr ""
+
+#: c/c-decl.cc:13332
+#, gcc-internal-format
+msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
+msgstr ""
+
+#: c/c-decl.cc:13631 cp/semantics.cc:6387
+#, gcc-internal-format
+msgid "%<#pragma omp declare reduction%> combiner refers to variable %qD which is not %<omp_out%> nor %<omp_in%>"
+msgstr ""
+
+#: c/c-decl.cc:13635 cp/semantics.cc:6391
+#, gcc-internal-format
+msgid "%<#pragma omp declare reduction%> initializer refers to variable %qD which is not %<omp_priv%> nor %<omp_orig%>"
+msgstr ""
+
+#: c/c-fold.cc:389 c/c-typeck.cc:12832 cp/typeck.cc:5732
+#, gcc-internal-format
+msgid "left shift of negative value"
+msgstr ""
+
+#: c/c-fold.cc:399 c/c-typeck.cc:12841 cp/typeck.cc:5740
+#, gcc-internal-format
+msgid "left shift count is negative"
+msgstr ""
+
+#: c/c-fold.cc:400 c/c-typeck.cc:12768 cp/typeck.cc:5679
+#, gcc-internal-format
+msgid "right shift count is negative"
+msgstr ""
+
+#: c/c-fold.cc:409 c/c-typeck.cc:12860 cp/typeck.cc:5748
+#, gcc-internal-format
+msgid "left shift count >= width of type"
+msgstr ""
+
+#: c/c-fold.cc:410 c/c-typeck.cc:12792 cp/typeck.cc:5690
+#, gcc-internal-format
+msgid "right shift count >= width of type"
+msgstr ""
+
+#: c/c-fold.cc:417 c/c-typeck.cc:12852
+#, gcc-internal-format
+msgid "left shift count >= width of vector element"
+msgstr ""
+
+#: c/c-fold.cc:418 c/c-typeck.cc:12779
+#, gcc-internal-format
+msgid "right shift count >= width of vector element"
+msgstr ""
+
+#: c/c-parser.cc:353
+#, gcc-internal-format
+msgid "identifier %qE conflicts with C++ keyword"
+msgstr ""
+
+#: c/c-parser.cc:1036 cp/parser.cc:3239
+#, gcc-internal-format
+msgid "version control conflict marker in file"
+msgstr ""
+
+#: c/c-parser.cc:1257 cp/parser.cc:3320
+#, gcc-internal-format
+msgid "to match this %qs"
+msgstr ""
+
+#: c/c-parser.cc:1409 cp/parser.cc:34505
+#, gcc-internal-format
+msgid "expected end of line"
+msgstr ""
+
+#: c/c-parser.cc:1891
+#, gcc-internal-format
+msgid "ISO C forbids an empty translation unit"
+msgstr ""
+
+#: c/c-parser.cc:1917 c/c-parser.cc:1926 c/c-parser.cc:25403 cp/parser.cc:49091
+#: cp/semantics.cc:3635 cp/semantics.cc:3644
+#, gcc-internal-format
+msgid "%qs without corresponding %qs"
+msgstr ""
+
+#: c/c-parser.cc:2022 c/c-parser.cc:13395
+#, gcc-internal-format
+msgid "ISO C does not allow extra %<;%> outside of a function"
+msgstr ""
+
+#: c/c-parser.cc:2105
+#, gcc-internal-format
+msgid "%<assume%> attribute at top level"
+msgstr ""
+
+#: c/c-parser.cc:2255
+#, gcc-internal-format
+msgid "unknown type name %qE; use %<struct%> keyword to refer to the type"
+msgstr ""
+
+#: c/c-parser.cc:2263
+#, gcc-internal-format
+msgid "unknown type name %qE; use %<union%> keyword to refer to the type"
+msgstr ""
+
+#: c/c-parser.cc:2271
+#, gcc-internal-format
+msgid "unknown type name %qE; use %<enum%> keyword to refer to the type"
+msgstr ""
+
+#: c/c-parser.cc:2284 c/c-parser.cc:3368 c/c-parser.cc:5034
+#, gcc-internal-format
+msgid "unknown type name %qE; did you mean %qs?"
+msgstr ""
+
+#: c/c-parser.cc:2288 c/c-parser.cc:3372 c/c-parser.cc:5038
+#, gcc-internal-format
+msgid "unknown type name %qE"
+msgstr ""
+
+#: c/c-parser.cc:2315 c/c-parser.cc:14755 c/c-parser.cc:23033
+#: c/c-parser.cc:23632 c/c-parser.cc:24218 cp/parser.cc:46429
+#: cp/parser.cc:51177
+#, gcc-internal-format
+msgid "expected declaration specifiers"
+msgstr ""
+
+#: c/c-parser.cc:2339
+#, gcc-internal-format
+msgid "%qT declared in underspecified object declaration"
+msgstr ""
+
+#: c/c-parser.cc:2344
+#, gcc-internal-format
+msgid "%qT defined in underspecified object declaration"
+msgstr ""
+
+#: c/c-parser.cc:2379
+#, gcc-internal-format
+msgid "%qs in empty declaration"
+msgstr ""
+
+#: c/c-parser.cc:2393
+#, gcc-internal-format
+msgid "%<fallthrough%> attribute at top level"
+msgstr ""
+
+#: c/c-parser.cc:2421 c/c-parser.cc:4230
+#, gcc-internal-format
+msgid "expected %<;%>, identifier or %<(%>"
+msgstr ""
+
+#: c/c-parser.cc:2439 cp/parser.cc:36759 cp/parser.cc:36831
+#, gcc-internal-format
+msgid "prefix attributes are ignored for methods"
+msgstr ""
+
+#: c/c-parser.cc:2474
+#, gcc-internal-format
+msgid "prefix attributes are ignored for implementations"
+msgstr ""
+
+#: c/c-parser.cc:2495
+#, gcc-internal-format
+msgid "unexpected attribute"
+msgstr ""
+
+#: c/c-parser.cc:2505 c/c-parser.cc:7725 cp/parser.cc:12966 cp/parser.cc:13190
+#, gcc-internal-format
+msgid "%<fallthrough%> attribute not followed by %<;%>"
+msgstr ""
+
+#: c/c-parser.cc:2508 c/c-parser.cc:7708 cp/cp-gimplify.cc:3657
+#, gcc-internal-format
+msgid "%<assume%> attribute not followed by %<;%>"
+msgstr ""
+
+#: c/c-parser.cc:2555
+#, gcc-internal-format
+msgid "%<__auto_type%> requires a plain identifier as declarator"
+msgstr ""
+
+#: c/c-parser.cc:2568
+#, gcc-internal-format
+msgid "%<auto%> requires a plain identifier, possibly with attributes, as declarator"
+msgstr ""
+
+#: c/c-parser.cc:2594
+#, gcc-internal-format
+msgid "data definition has no type or storage class"
+msgstr ""
+
+#. This means there is an attribute specifier after
+#. the declarator in a function definition.  Provide
+#. some more information for the user.
+#: c/c-parser.cc:2609
+#, gcc-internal-format
+msgid "attributes should be specified before the declarator in a function definition"
+msgstr ""
+
+#: c/c-parser.cc:2648
+#, gcc-internal-format
+msgid "%<__auto_type%> used with a bit-field initializer"
+msgstr ""
+
+#: c/c-parser.cc:2758 c/c-parser.cc:2894
+#, gcc-internal-format
+msgid "%qs requires an initialized data declaration"
+msgstr ""
+
+#: c/c-parser.cc:2857
+#, gcc-internal-format
+msgid "%qs may only be used with a single declarator"
+msgstr ""
+
+#: c/c-parser.cc:2886 cp/parser.cc:16007
+#, gcc-internal-format
+msgid "expected %<,%> or %<;%>"
+msgstr ""
+
+#. This can appear in many cases looking nothing like a
+#. function definition, so we don't give a more specific
+#. error suggesting there was one.
+#: c/c-parser.cc:2901 c/c-parser.cc:2942
+#, gcc-internal-format
+msgid "expected %<=%>, %<,%>, %<;%>, %<asm%> or %<__attribute__%>"
+msgstr ""
+
+#: c/c-parser.cc:2909
+#, gcc-internal-format
+msgid "ISO C forbids nested functions"
+msgstr ""
+
+#: c/c-parser.cc:3126 c/c-parser.cc:8887 c/c-parser.cc:14828
+#, gcc-internal-format
+msgid "expected string literal"
+msgstr ""
+
+#: c/c-parser.cc:3135
+#, gcc-internal-format
+msgid "ISO C11 does not support omitting the string in %qE"
+msgstr ""
+
+#: c/c-parser.cc:3141
+#, gcc-internal-format
+msgid "expression in static assertion is not an integer"
+msgstr ""
+
+#: c/c-parser.cc:3150
+#, gcc-internal-format
+msgid "expression in static assertion is not an integer constant expression"
+msgstr ""
+
+#: c/c-parser.cc:3155
+#, gcc-internal-format
+msgid "expression in static assertion is not constant"
+msgstr ""
+
+#: c/c-parser.cc:3162
+#, gcc-internal-format
+msgid "static assertion failed: %E"
+msgstr ""
+
+#: c/c-parser.cc:3164 cp/semantics.cc:11749
+#, gcc-internal-format
+msgid "static assertion failed"
+msgstr ""
+
+#: c/c-parser.cc:3543
+#, gcc-internal-format
+msgid "%<_Atomic%> in Objective-C"
+msgstr ""
+
+#: c/c-parser.cc:3546
+#, gcc-internal-format
+msgid "ISO C99 does not support the %<_Atomic%> qualifier"
+msgstr ""
+
+#: c/c-parser.cc:3549
+#, gcc-internal-format
+msgid "ISO C90 does not support the %<_Atomic%> qualifier"
+msgstr ""
+
+#: c/c-parser.cc:3577
+#, gcc-internal-format
+msgid "%<_Atomic%> applied to a qualified type"
+msgstr ""
+
+#: c/c-parser.cc:3607
+#, gcc-internal-format
+msgid "%<__GIMPLE%> only valid with %<-fgimple%>"
+msgstr ""
+
+#: c/c-parser.cc:3699
+#, gcc-internal-format
+msgid "ISO C does not support specifying %<enum%> underlying types before C23"
+msgstr ""
+
+#: c/c-parser.cc:3708
+#, gcc-internal-format
+msgid "%<enum%> declared both with and without fixed underlying type"
+msgstr ""
+
+#: c/c-parser.cc:3731
+#, gcc-internal-format
+msgid "no %<enum%> underlying type specified"
+msgstr ""
+
+#: c/c-parser.cc:3735
+#, gcc-internal-format
+msgid "invalid %<enum%> underlying type"
+msgstr ""
+
+#: c/c-parser.cc:3765
+#, gcc-internal-format
+msgid "%<enum%> underlying type incompatible with previous declaration"
+msgstr ""
+
+#: c/c-parser.cc:3801
+#, gcc-internal-format
+msgid "empty enum is invalid"
+msgstr ""
+
+#: c/c-parser.cc:3805 c/c-parser.cc:4859 c/c-parser.cc:5716 c/c-parser.cc:5733
+#: c/c-parser.cc:6261 c/c-parser.cc:6993 c/c-parser.cc:8754 c/c-parser.cc:8837
+#: c/c-parser.cc:9817 c/c-parser.cc:10134 c/c-parser.cc:10143
+#: c/c-parser.cc:10686 c/c-parser.cc:10876 c/c-parser.cc:10904
+#: c/c-parser.cc:12098 c/c-parser.cc:12671 c/c-parser.cc:12709
+#: c/c-parser.cc:12977 c/c-parser.cc:13028 c/c-parser.cc:13188
+#: c/c-parser.cc:13218 c/c-parser.cc:13226 c/c-parser.cc:13255
+#: c/c-parser.cc:13268 c/c-parser.cc:13574 c/c-parser.cc:13698
+#: c/c-parser.cc:14283 c/c-parser.cc:14336 c/c-parser.cc:14352
+#: c/c-parser.cc:14398 c/c-parser.cc:15386 c/c-parser.cc:15431
+#: c/c-parser.cc:18314 c/c-parser.cc:18451 c/c-parser.cc:19208
+#: c/c-parser.cc:21828 c/c-parser.cc:24696 c/c-parser.cc:24885
+#: c/gimple-parser.cc:1895 c/gimple-parser.cc:1942 cp/parser.cc:9524
+#: cp/parser.cc:34508 cp/parser.cc:37736 cp/parser.cc:40863 cp/parser.cc:41055
+#: cp/parser.cc:48024 cp/parser.cc:50443
+#, gcc-internal-format
+msgid "expected identifier"
+msgstr ""
+
+#: c/c-parser.cc:3850 cp/parser.cc:21836
+#, gcc-internal-format
+msgid "comma at end of enumerator list"
+msgstr ""
+
+#: c/c-parser.cc:3856 go/gofrontend/embed.cc:424
+#, gcc-internal-format
+msgid "expected %<,%> or %<}%>"
+msgstr ""
+
+#: c/c-parser.cc:3899
+#, gcc-internal-format
+msgid "ISO C forbids forward references to %<enum%> types"
+msgstr ""
+
+#: c/c-parser.cc:4024
+#, gcc-internal-format
+msgid "expected class name"
+msgstr ""
+
+#: c/c-parser.cc:4046
+#, gcc-internal-format
+msgid "extra semicolon in struct or union specified"
+msgstr ""
+
+#: c/c-parser.cc:4075
+#, gcc-internal-format
+msgid "no semicolon at end of struct or union"
+msgstr ""
+
+#: c/c-parser.cc:4192 c/c-parser.cc:6027
+#, gcc-internal-format
+msgid "expected specifier-qualifier-list"
+msgstr ""
+
+#: c/c-parser.cc:4203
+#, gcc-internal-format
+msgid "ISO C forbids member declarations with no members"
+msgstr ""
+
+#: c/c-parser.cc:4297
+#, gcc-internal-format
+msgid "expected %<,%>, %<;%> or %<}%>"
+msgstr ""
+
+#: c/c-parser.cc:4304
+#, gcc-internal-format
+msgid "expected %<:%>, %<,%>, %<;%>, %<}%> or %<__attribute__%>"
+msgstr ""
+
+#: c/c-parser.cc:4376
+#, gcc-internal-format
+msgid "%<typeof%> applied to a bit-field"
+msgstr ""
+
+#: c/c-parser.cc:4687
+#, gcc-internal-format
+msgid "expected identifier or %<(%>"
+msgstr ""
+
+#: c/c-parser.cc:4920
+#, gcc-internal-format
+msgid "ISO C requires a named argument before %<...%> before C23"
+msgstr ""
+
+#: c/c-parser.cc:5045
+#, gcc-internal-format
+msgid "expected declaration specifiers or %<...%>"
+msgstr ""
+
+#: c/c-parser.cc:5274
+#, gcc-internal-format
+msgid "parentheses must be omitted if attribute argument list is empty"
+msgstr ""
+
+#: c/c-parser.cc:5562 cp/parser.cc:29829
+#, gcc-internal-format
+msgid "expected OpenMP directive name"
+msgstr ""
+
+#: c/c-parser.cc:5609 cp/parser.cc:29885
+#, gcc-internal-format
+msgid "expected %<directive%> or %<sequence%>"
+msgstr ""
+
+#: c/c-parser.cc:5754 cp/parser.cc:30054
+#, gcc-internal-format
+msgid "%<omp::%E%> attribute requires argument"
+msgstr ""
+
+#: c/c-parser.cc:5770 cp/parser.cc:30070
+#, gcc-internal-format
+msgid "%qE attribute does not take any arguments"
+msgstr ""
+
+#: c/c-parser.cc:5891
+#, gcc-internal-format
+msgid "ISO C does not support %<[[]]%> attributes before C23"
+msgstr ""
+
+#: c/c-parser.cc:6104 c/c-parser.cc:6167 c/c-typeck.cc:8824
+#, gcc-internal-format
+msgid "variable-sized object may not be initialized except with an empty initializer"
+msgstr ""
+
+#: c/c-parser.cc:6161
+#, gcc-internal-format
+msgid "ISO C forbids empty initializer braces before C23"
+msgstr ""
+
+#: c/c-parser.cc:6225
+#, gcc-internal-format
+msgid "obsolete use of designated initializer with %<:%>"
+msgstr ""
+
+#: c/c-parser.cc:6381
+#, gcc-internal-format
+msgid "ISO C forbids specifying range of elements to initialize"
+msgstr ""
+
+#: c/c-parser.cc:6393
+#, gcc-internal-format
+msgid "ISO C90 forbids specifying subobject to initialize"
+msgstr ""
+
+#: c/c-parser.cc:6401
+#, gcc-internal-format
+msgid "obsolete use of designated initializer without %<=%>"
+msgstr ""
+
+#: c/c-parser.cc:6565 cp/parser.cc:13308
+#, gcc-internal-format
+msgid "inner loops must be perfectly nested in %<#pragma acc loop%>"
+msgstr ""
+
+#: c/c-parser.cc:6572 cp/parser.cc:13315
+#, gcc-internal-format
+msgid "inner loops must be perfectly nested with %<ordered%> clause"
+msgstr ""
+
+#: c/c-parser.cc:6579 cp/parser.cc:13322
+#, gcc-internal-format
+msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause"
+msgstr ""
+
+#: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
+#: cp/parser.cc:48620
+#, gcc-internal-format
+msgid "mixing OpenMP directives with attribute and pragma syntax on the same statement"
+msgstr ""
+
+#: c/c-parser.cc:6644 cp/parser.cc:12248
+#, gcc-internal-format
+msgid "OpenMP %<omp::decl%> attribute on a statement"
+msgstr ""
+
+#: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
+#: cp/parser.cc:48600 cp/parser.cc:48740
+#, gcc-internal-format
+msgid "unknown OpenMP directive name in %qs attribute argument"
+msgstr ""
+
+#: c/c-parser.cc:6760 cp/parser.cc:12359
+#, gcc-internal-format
+msgid "OpenMP construct among %<omp::directive%> attributes requires all %<omp::directive%> attributes on the same statement to be in the same %<omp::sequence%>"
+msgstr ""
+
+#: c/c-parser.cc:6768 cp/parser.cc:12367
+#, gcc-internal-format
+msgid "multiple OpenMP standalone directives among %<omp::directive%> attributes must be all within the same %<omp::sequence%>"
+msgstr ""
+
+#: c/c-parser.cc:6780 cp/parser.cc:12379
+#, gcc-internal-format
+msgid "standalone OpenMP directives in %<omp::directive%> attribute can only appear on an empty statement"
+msgstr ""
+
+#: c/c-parser.cc:6899 cp/parser.cc:12509
+#, gcc-internal-format
+msgid "mixing OpenMP directives with attribute and pragma syntax on the same declaration"
+msgstr ""
+
+#: c/c-parser.cc:7008
+#, gcc-internal-format
+msgid "ISO C forbids label declarations"
+msgstr ""
+
+#: c/c-parser.cc:7014 c/c-parser.cc:7195 c/c-parser.cc:7220
+#: c/gimple-parser.cc:424
+#, gcc-internal-format
+msgid "expected declaration or statement"
+msgstr ""
+
+#: c/c-parser.cc:7124
+#, gcc-internal-format
+msgid "a label can only be part of a statement and a declaration is not a statement"
+msgstr ""
+
+#: c/c-parser.cc:7144 c/c-parser.cc:7186
+#, gcc-internal-format
+msgid "ISO C90 forbids mixed declarations and code"
+msgstr ""
+
+#: c/c-parser.cc:7228
+#, gcc-internal-format
+msgid "expected %<}%> before %<else%>"
+msgstr ""
+
+#: c/c-parser.cc:7233 cp/parser.cc:13369
+#, gcc-internal-format
+msgid "%<else%> without a previous %<if%>"
+msgstr ""
+
+#: c/c-parser.cc:7264
+#, gcc-internal-format
+msgid "label at end of compound statement"
+msgstr ""
+
+#. Avoid infinite loop in error recovery:
+#. c_parser_skip_until_found stops at a closing nesting
+#. delimiter without consuming it, but here we need to consume
+#. it to proceed further.
+#: c/c-parser.cc:7313 c/c-parser.cc:7317 c/c-parser.cc:7750
+#: c/gimple-parser.cc:2434 cp/parser.cc:12872
+#, gcc-internal-format
+msgid "expected statement"
+msgstr ""
+
+#: c/c-parser.cc:7372
+#, gcc-internal-format
+msgid "expected %<:%> or %<...%>"
+msgstr ""
+
+#: c/c-parser.cc:7400
+#, gcc-internal-format
+msgid "GNU-style attribute between label and declaration appertains to the label"
+msgstr ""
+
+#: c/c-parser.cc:7632
+#, gcc-internal-format
+msgid "expected identifier or %<*%>"
+msgstr ""
+
+#: c/c-parser.cc:7733
+#, gcc-internal-format
+msgid "only attribute %<fallthrough%> or %<assume%> can be applied to a null statement"
+msgstr ""
+
+#: c/c-parser.cc:7858 cp/parser.cc:14984
+#, gcc-internal-format
+msgid "suggest braces around empty body in an %<if%> statement"
+msgstr ""
+
+#: c/c-parser.cc:7900 cp/parser.cc:14987
+#, gcc-internal-format
+msgid "suggest braces around empty body in an %<else%> statement"
+msgstr ""
+
+#: c/c-parser.cc:8031 cp/parser.cc:13782
+#, gcc-internal-format
+msgid "suggest explicit braces to avoid ambiguous %<else%>"
+msgstr ""
+
+#: c/c-parser.cc:8120 c/c-parser.cc:8185 c/c-parser.cc:8304 cp/parser.cc:14614
+#, gcc-internal-format
+msgid "loop not permitted in intervening code in OpenMP loop body"
+msgstr ""
+
+#: c/c-parser.cc:8193
+#, gcc-internal-format
+msgid "suggest braces around empty body in %<do%> statement"
+msgstr ""
+
+#: c/c-parser.cc:8338 c/c-parser.cc:8370
+#, gcc-internal-format
+msgid "multiple iterating variables in fast enumeration"
+msgstr ""
+
+#: c/c-parser.cc:8393
+#, gcc-internal-format
+msgid "invalid iterating variable in fast enumeration"
+msgstr ""
+
+#: c/c-parser.cc:8417 cp/parser.cc:14069
+#, gcc-internal-format
+msgid "missing loop condition in loop with %<GCC ivdep%> pragma"
+msgstr ""
+
+#: c/c-parser.cc:8423 cp/parser.cc:14075
+#, gcc-internal-format
+msgid "missing loop condition in loop with %<GCC unroll%> pragma"
+msgstr ""
+
+#: c/c-parser.cc:8464
+#, gcc-internal-format
+msgid "missing collection in fast enumeration"
+msgstr ""
+
+#: c/c-parser.cc:8586 c/c-parser.cc:8597 c/c-parser.cc:8608
+#, gcc-internal-format
+msgid "duplicate %<asm%> qualifier %qE"
+msgstr ""
+
+#: c/c-parser.cc:8587 c/c-parser.cc:8598 c/c-parser.cc:8609 cp/parser.cc:22744
+#: cp/parser.cc:22761 cp/parser.cc:22775
+#, gcc-internal-format
+msgid "first seen here"
+msgstr ""
+
+#: c/c-parser.cc:8618
+#, gcc-internal-format
+msgid "%qE is not a valid %<asm%> qualifier"
+msgstr ""
+
+#: c/c-parser.cc:8668
+#, gcc-internal-format
+msgid "expected %<:%> or %<)%>"
+msgstr ""
+
+#: c/c-parser.cc:8967 cp/parser.cc:4706
+#, gcc-internal-format
+msgid "a wide string is invalid in this context"
+msgstr ""
+
+#: c/c-parser.cc:9175
+#, gcc-internal-format
+msgid "ISO C forbids omitting the middle term of a %<?:%> expression"
+msgstr ""
+
+#. Location of the binary operator.
+#. Quiet warning.
+#: c/c-parser.cc:9399 cp/typeck.cc:5511
+#, gcc-internal-format
+msgid "division %<sizeof (%T) / sizeof (%T)%> does not compute the number of array elements"
+msgstr ""
+
+#: c/c-parser.cc:9405 cp/typeck.cc:5516
+#, gcc-internal-format
+msgid "first %<sizeof%> operand was declared here"
+msgstr ""
+
+#: c/c-parser.cc:9676
+#, gcc-internal-format
+msgid "storage class specifier in cast"
+msgstr ""
+
+#: c/c-parser.cc:9679
+#, gcc-internal-format
+msgid "alignment specified for type name in cast"
+msgstr ""
+
+#: c/c-parser.cc:9780
+#, gcc-internal-format
+msgid "traditional C rejects the unary plus operator"
+msgstr ""
+
+#: c/c-parser.cc:9912
+#, gcc-internal-format
+msgid "storage class specifier in %<sizeof%>"
+msgstr ""
+
+#: c/c-parser.cc:9915
+#, gcc-internal-format
+msgid "alignment specified for type name in %<sizeof%>"
+msgstr ""
+
+#: c/c-parser.cc:9931
+#, gcc-internal-format
+msgid "%<sizeof%> applied to a bit-field"
+msgstr ""
+
+#: c/c-parser.cc:10004
+#, gcc-internal-format
+msgid "storage class specifier in %qE"
+msgstr ""
+
+#: c/c-parser.cc:10007
+#, gcc-internal-format
+msgid "alignment specified for type name in %qE"
+msgstr ""
+
+#: c/c-parser.cc:10031
+#, gcc-internal-format
+msgid "ISO C does not allow %<%E (expression)%>"
+msgstr ""
+
+#: c/c-parser.cc:10184
+#, gcc-internal-format
+msgid "cannot take address of %qs"
+msgstr ""
+
+#: c/c-parser.cc:10267
+#, gcc-internal-format
+msgid "ISO C99 does not support %<_Generic%>"
+msgstr ""
+
+#: c/c-parser.cc:10270
+#, gcc-internal-format
+msgid "ISO C90 does not support %<_Generic%>"
+msgstr ""
+
+#: c/c-parser.cc:10339
+#, gcc-internal-format
+msgid "%<_Generic%> association has function type"
+msgstr ""
+
+#: c/c-parser.cc:10342
+#, gcc-internal-format
+msgid "%<_Generic%> association has incomplete type"
+msgstr ""
+
+#: c/c-parser.cc:10346
+#, gcc-internal-format
+msgid "%<_Generic%> association has variable length type"
+msgstr ""
+
+#: c/c-parser.cc:10380
+#, gcc-internal-format
+msgid "duplicate %<default%> case in %<_Generic%>"
+msgstr ""
+
+#: c/c-parser.cc:10381
+#, gcc-internal-format
+msgid "original %<default%> is here"
+msgstr ""
+
+#: c/c-parser.cc:10389
+#, gcc-internal-format
+msgid "%<_Generic%> specifies two compatible types"
+msgstr ""
+
+#: c/c-parser.cc:10390
+#, gcc-internal-format
+msgid "compatible type is here"
+msgstr ""
+
+#: c/c-parser.cc:10413
+#, gcc-internal-format
+msgid "%<_Generic%> selector matches multiple associations"
+msgstr ""
+
+#: c/c-parser.cc:10415
+#, gcc-internal-format
+msgid "other match is here"
+msgstr ""
+
+#: c/c-parser.cc:10440
+#, gcc-internal-format
+msgid "%<_Generic%> selector of type %qT is not compatible with any association"
+msgstr ""
+
+#: c/c-parser.cc:10461
+#, gcc-internal-format
+msgid "argument %u of %<__builtin_tgmath%> is not a function pointer"
+msgstr ""
+
+#: c/c-parser.cc:10469
+#, gcc-internal-format
+msgid "argument %u of %<__builtin_tgmath%> is unprototyped"
+msgstr ""
+
+#: c/c-parser.cc:10475
+#, gcc-internal-format
+msgid "argument %u of %<__builtin_tgmath%> has variable arguments"
+msgstr ""
+
+#: c/c-parser.cc:10491
+#, gcc-internal-format
+msgid "argument %u of %<__builtin_tgmath%> has no arguments"
+msgstr ""
+
+#: c/c-parser.cc:10514 c/c-parser.cc:10518
+#, gcc-internal-format
+msgid "ISO C does not support %qs predefined identifier"
+msgstr ""
+
+#: c/c-parser.cc:10522
+#, gcc-internal-format
+msgid "ISO C90 does not support %<__func__%> predefined identifier"
+msgstr ""
+
+#: c/c-parser.cc:10700 c/c-parser.cc:12165 c/c-parser.cc:12187
+#: c/c-parser.cc:21245 c/gimple-parser.cc:1811 c/gimple-parser.cc:2451
+#: cp/parser.cc:43087
+#, gcc-internal-format
+msgid "expected expression"
+msgstr ""
+
+#: c/c-parser.cc:10722
+#, gcc-internal-format
+msgid "braced-group within expression allowed only inside a function"
+msgstr ""
+
+#: c/c-parser.cc:10737
+#, gcc-internal-format
+msgid "ISO C forbids braced-groups within expressions"
+msgstr ""
+
+#: c/c-parser.cc:10931
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_choose_expr%>"
+msgstr ""
+
+#: c/c-parser.cc:10947
+#, gcc-internal-format
+msgid "first argument to %<__builtin_choose_expr%> not a constant"
+msgstr ""
+
+#: c/c-parser.cc:11017 c/c-parser.cc:11034 c/c-parser.cc:11041
+#, gcc-internal-format
+msgid "too few arguments to %<__builtin_tgmath%>"
+msgstr ""
+
+#: c/c-parser.cc:11062
+#, gcc-internal-format
+msgid "argument %u of %<__builtin_tgmath%> has wrong number of arguments"
+msgstr ""
+
+#: c/c-parser.cc:11106 c/c-parser.cc:11116
+#, gcc-internal-format
+msgid "invalid type-generic return type for argument %u of %<__builtin_tgmath%>"
+msgstr ""
+
+#: c/c-parser.cc:11138 c/c-parser.cc:11148
+#, gcc-internal-format
+msgid "invalid type-generic type for argument %u of argument %u of %<__builtin_tgmath%>"
+msgstr ""
+
+#: c/c-parser.cc:11181
+#, gcc-internal-format
+msgid "function arguments of %<__builtin_tgmath%> all have the same type"
+msgstr ""
+
+#: c/c-parser.cc:11200
+#, gcc-internal-format
+msgid "function arguments of %<__builtin_tgmath%> lack type-generic parameter"
+msgstr ""
+
+#: c/c-parser.cc:11248
+#, gcc-internal-format
+msgid "duplicate type-generic parameter type for function argument %u of %<__builtin_tgmath%>"
+msgstr ""
+
+#: c/c-parser.cc:11271
+#, gcc-internal-format
+msgid "bad return type for function argument %u of %<__builtin_tgmath%>"
+msgstr ""
+
+#: c/c-parser.cc:11288
+#, gcc-internal-format
+msgid "bad type for argument %u of function argument %u of %<__builtin_tgmath%>"
+msgstr ""
+
+#: c/c-parser.cc:11327
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid type of argument %u of type-generic function"
+msgstr ""
+
+#: c/c-parser.cc:11338
+#, gcc-internal-format, gfc-internal-format
+msgid "decimal floating-point argument %u to complex-only type-generic function"
+msgstr ""
+
+#: c/c-parser.cc:11346
+#, gcc-internal-format, gfc-internal-format
+msgid "decimal floating-point argument %u to binary-only type-generic function"
+msgstr ""
+
+#: c/c-parser.cc:11354 c/c-parser.cc:11384
+#, gcc-internal-format
+msgid "both complex and decimal floating-point arguments to type-generic function"
+msgstr ""
+
+#: c/c-parser.cc:11362 c/c-parser.cc:11404
+#, gcc-internal-format
+msgid "both binary and decimal floating-point arguments to type-generic function"
+msgstr ""
+
+#: c/c-parser.cc:11376
+#, gcc-internal-format, gfc-internal-format
+msgid "complex argument %u to decimal-only type-generic function"
+msgstr ""
+
+#: c/c-parser.cc:11396
+#, gcc-internal-format, gfc-internal-format
+msgid "binary argument %u to decimal-only type-generic function"
+msgstr ""
+
+#: c/c-parser.cc:11499
+#, gcc-internal-format
+msgid "no matching function for type-generic call"
+msgstr ""
+
+#: c/c-parser.cc:11540
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_call_with_static_chain%>"
+msgstr ""
+
+#: c/c-parser.cc:11553
+#, gcc-internal-format
+msgid "first argument to %<__builtin_call_with_static_chain%> must be a call expression"
+msgstr ""
+
+#: c/c-parser.cc:11557
+#, gcc-internal-format
+msgid "second argument to %<__builtin_call_with_static_chain%> must be a pointer type"
+msgstr ""
+
+#: c/c-parser.cc:11583
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_complex%>"
+msgstr ""
+
+#: c/c-parser.cc:11605
+#, gcc-internal-format
+msgid "%<__builtin_complex%> operand not of real binary floating-point type"
+msgstr ""
+
+#: c/c-parser.cc:11614
+#, gcc-internal-format
+msgid "%<__builtin_complex%> operands of different types"
+msgstr ""
+
+#: c/c-parser.cc:11659 c/c-parser.cc:11688 cp/parser.cc:7764
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_shuffle%>"
+msgstr ""
+
+#: c/c-parser.cc:11849
+#, gcc-internal-format
+msgid "wrong number of arguments to %qs"
+msgstr ""
+
+#: c/c-parser.cc:11858
+#, gcc-internal-format
+msgid "%qs operand not an integral type"
+msgstr ""
+
+#: c/c-parser.cc:11864
+#, gcc-internal-format
+msgid "argument %u in call to function %qs has enumerated type"
+msgstr ""
+
+#: c/c-parser.cc:11871
+#, gcc-internal-format
+msgid "argument %u in call to function %qs has boolean type"
+msgstr ""
+
+#: c/c-parser.cc:11878
+#, gcc-internal-format
+msgid "argument 1 in call to function %qs has signed type"
+msgstr ""
+
+#: c/c-parser.cc:12142 cp/parser.cc:6134
+#, gcc-internal-format
+msgid "%<omp_all_memory%> may only be used in OpenMP %<depend%> clause"
+msgstr ""
+
+#: c/c-parser.cc:12152
+#, gcc-internal-format
+msgid "ISO C does not support %qs before C23"
+msgstr ""
+
+#: c/c-parser.cc:12240
+#, gcc-internal-format
+msgid "%qT declared in %<constexpr%> compound literal"
+msgstr ""
+
+#: c/c-parser.cc:12245
+#, gcc-internal-format
+msgid "%qT defined in %<constexpr%> compound literal"
+msgstr ""
+
+#: c/c-parser.cc:12260
+#, gcc-internal-format
+msgid "compound literal has variable size"
+msgstr ""
+
+#: c/c-parser.cc:12265
+#, gcc-internal-format
+msgid "compound literal has function type"
+msgstr ""
+
+#: c/c-parser.cc:12296
+#, gcc-internal-format
+msgid "compound literal qualified by address-space qualifier"
+msgstr ""
+
+#: c/c-parser.cc:12301
+#, gcc-internal-format
+msgid "ISO C90 forbids compound literals"
+msgstr ""
+
+#: c/c-parser.cc:12303
+#, gcc-internal-format
+msgid "ISO C forbids storage class specifiers in compound literals before C23"
+msgstr ""
+
+#: c/c-parser.cc:12317
+#, gcc-internal-format
+msgid "%<_Alignas%> specifiers cannot reduce alignment of compound literal"
+msgstr ""
+
+#: c/c-parser.cc:12392
+#, gcc-internal-format
+msgid "using integer absolute value function %qD when argument is of floating-point type %qT"
+msgstr ""
+
+#: c/c-parser.cc:12397
+#, gcc-internal-format
+msgid "using integer absolute value function %qD when argument is of complex type %qT"
+msgstr ""
+
+#: c/c-parser.cc:12405
+#, gcc-internal-format
+msgid "taking the absolute value of unsigned type %qT has no effect"
+msgstr ""
+
+#: c/c-parser.cc:12416
+#, gcc-internal-format
+msgid "using floating-point absolute value function %qD when argument is of integer type %qT"
+msgstr ""
+
+#: c/c-parser.cc:12420
+#, gcc-internal-format
+msgid "using floating-point absolute value function %qD when argument is of decimal floating-point type %qT"
+msgstr ""
+
+#: c/c-parser.cc:12425
+#, gcc-internal-format
+msgid "using floating-point absolute value function %qD when argument is of complex type %qT"
+msgstr ""
+
+#: c/c-parser.cc:12438
+#, gcc-internal-format
+msgid "using complex absolute value function %qD when argument is of integer type %qT"
+msgstr ""
+
+#: c/c-parser.cc:12442
+#, gcc-internal-format
+msgid "using complex absolute value function %qD when argument is of floating-point type %qT"
+msgstr ""
+
+#: c/c-parser.cc:12459
+#, gcc-internal-format
+msgid "using decimal floating-point absolute value function %qD when argument is of integer type %qT"
+msgstr ""
+
+#: c/c-parser.cc:12464
+#, gcc-internal-format
+msgid "using decimal floating-point absolute value function %qD when argument is of floating-point type %qT"
+msgstr ""
+
+#: c/c-parser.cc:12469
+#, gcc-internal-format
+msgid "using decimal floating-point absolute value function %qD when argument is of complex type %qT"
+msgstr ""
+
+#: c/c-parser.cc:12495
+#, gcc-internal-format
+msgid "absolute value function %qD given an argument of type %qT but has parameter of type %qT which may cause truncation of value"
+msgstr ""
+
+#: c/c-parser.cc:12625 cp/parser.cc:8164
+#, gcc-internal-format
+msgid "calls to the OpenMP runtime API are not permitted in intervening code"
+msgstr ""
+
+#: c/c-parser.cc:12999
+#, gcc-internal-format
+msgid "expected identifier or %<)%>"
+msgstr ""
+
+#: c/c-parser.cc:13095
+#, gcc-internal-format
+msgid "extra semicolon"
+msgstr ""
+
+#: c/c-parser.cc:13343
+#, gcc-internal-format
+msgid "extra semicolon in method definition specified"
+msgstr ""
+
+#: c/c-parser.cc:13475
+#, gcc-internal-format
+msgid "method attributes must be specified at the end only"
+msgstr ""
+
+#: c/c-parser.cc:13495
+#, gcc-internal-format
+msgid "expected %<;%> or %<{%> after method attribute definition"
+msgstr ""
+
+#: c/c-parser.cc:13617
+#, gcc-internal-format
+msgid "objective-c method declaration is expected"
+msgstr ""
+
+#: c/c-parser.cc:14069
+#, gcc-internal-format
+msgid "no type or storage class may be specified here,"
+msgstr ""
+
+#: c/c-parser.cc:14137 cp/parser.cc:37593
+#, gcc-internal-format
+msgid "empty property attribute list"
+msgstr ""
+
+#: c/c-parser.cc:14151 cp/parser.cc:37606
+#, gcc-internal-format
+msgid "missing property attribute"
+msgstr ""
+
+#: c/c-parser.cc:14190
+#, gcc-internal-format
+msgid "unknown property attribute %<%s%s%>"
+msgstr ""
+
+#: c/c-parser.cc:14193 cp/parser.cc:37643
+#, gcc-internal-format
+msgid "unknown property attribute"
+msgstr ""
+
+#: c/c-parser.cc:14202 cp/parser.cc:37652
+#, gcc-internal-format
+msgid "expected %<=%> after Objective-C %qE"
+msgstr ""
+
+#: c/c-parser.cc:14213 cp/parser.cc:37666
+#, gcc-internal-format
+msgid "expected %qE selector name"
+msgstr ""
+
+#: c/c-parser.cc:14229 cp/parser.cc:37685
+#, gcc-internal-format
+msgid "setter method names must terminate with %<:%>"
+msgstr ""
+
+#: c/c-parser.cc:14453 cp/semantics.cc:13228
+#, gcc-internal-format
+msgid "%<#pragma GCC unroll%> requires an assignment-expression that evaluates to a non-negative integral constant less than %u"
+msgstr ""
+
+#: c/c-parser.cc:14489 cp/parser.cc:50798
+#, gcc-internal-format
+msgid "intervening code must not contain OpenMP directives"
+msgstr ""
+
+#: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
+#: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
+#: cp/parser.cc:46774 cp/parser.cc:46889 cp/parser.cc:46988 cp/parser.cc:50819
+#: cp/parser.cc:50835 cp/parser.cc:50851 cp/parser.cc:50868 cp/parser.cc:50885
+#: cp/parser.cc:50902 cp/parser.cc:50929 cp/parser.cc:50943 cp/parser.cc:50968
+#: cp/parser.cc:50982
+#, gcc-internal-format
+msgid "%<#pragma %s%> may only be used in compound statements"
+msgstr ""
+
+#: c/c-parser.cc:14532 cp/parser.cc:50957
+#, gcc-internal-format
+msgid "%<#pragma acc routine%> must be at file scope"
+msgstr ""
+
+#: c/c-parser.cc:14622 cp/parser.cc:51081
+#, gcc-internal-format
+msgid "%<#pragma omp scan%> may only be used in a loop construct with %<inscan%> %<reduction%> clause"
+msgstr ""
+
+#: c/c-parser.cc:14629 cp/parser.cc:51087
+#, gcc-internal-format
+msgid "%<#pragma omp section%> may only be used in %<#pragma omp sections%> construct"
+msgstr ""
+
+#: c/c-parser.cc:14641 c/c-parser.cc:14657
+#, gcc-internal-format
+msgid "%<#pragma %s%> may only be used at file scope"
+msgstr ""
+
+#: c/c-parser.cc:14724 cp/parser.cc:51164
+#, gcc-internal-format
+msgid "for, while or do statement expected"
+msgstr ""
+
+#: c/c-parser.cc:14737 cp/parser.cc:50809
+#, gcc-internal-format
+msgid "%<#pragma GCC pch_preprocess%> must be first"
+msgstr ""
+
+#: c/c-parser.cc:15104 c/c-parser.cc:19032 c/c-parser.cc:20713
+#: c/c-parser.cc:20732 c/c-parser.cc:20983 c/c-parser.cc:21041
+#: c/c-parser.cc:21048 c/c-parser.cc:21055 c/c-parser.cc:25952
+#: c/c-parser.cc:25960 c/c-parser.cc:26230 c/c-parser.cc:26240
+#: c/c-parser.cc:26334 c/c-parser.cc:26341 c/c-parser.cc:26348
+#: cp/parser.cc:38116 cp/parser.cc:41695 cp/parser.cc:42613 cp/parser.cc:42650
+#: cp/parser.cc:42839 cp/parser.cc:42902 cp/parser.cc:42909 cp/parser.cc:42916
+#: cp/parser.cc:48243 cp/parser.cc:48250 cp/parser.cc:48257 cp/parser.cc:49704
+#: cp/parser.cc:49712 cp/parser.cc:49864 cp/parser.cc:49874
+#, gcc-internal-format
+msgid "too many %qs clauses"
+msgstr ""
+
+#: c/c-parser.cc:15131
+#, gcc-internal-format
+msgid "expression must be integral"
+msgstr ""
+
+#: c/c-parser.cc:15536 c/c-parser.cc:15548
+#, gcc-internal-format
+msgid "expected %<)%> or %<,%>"
+msgstr ""
+
+#: c/c-parser.cc:15746 c/c-parser.cc:26636
+#, gcc-internal-format
+msgid "%qD is not a variable"
+msgstr ""
+
+#: c/c-parser.cc:15750 cp/semantics.cc:8612
+#, gcc-internal-format
+msgid "%qD is not a pointer variable"
+msgstr ""
+
+#: c/c-parser.cc:15792 cp/parser.cc:38997
+#, gcc-internal-format
+msgid "collapse argument needs positive constant integer expression"
+msgstr ""
+
+#: c/c-parser.cc:15887 cp/parser.cc:39075
+#, gcc-internal-format
+msgid "expected %<none%> or %<present%>"
+msgstr ""
+
+#: c/c-parser.cc:15889 cp/parser.cc:39077
+#, gcc-internal-format
+msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
+msgstr ""
+
+#: c/c-parser.cc:15974 cp/parser.cc:39147
+#, gcc-internal-format
+msgid "expected constant logical expression"
+msgstr ""
+
+#: c/c-parser.cc:16051 cp/parser.cc:39229
+#, gcc-internal-format
+msgid "expected %<data%>, %<update%>, %<enter%> or %<exit%>"
+msgstr ""
+
+#: c/c-parser.cc:16071 c/c-parser.cc:23994 c/c-parser.cc:24104
+#: cp/parser.cc:39247 cp/parser.cc:46766 cp/parser.cc:46881
+#, gcc-internal-format
+msgid "expected %<data%>"
+msgstr ""
+
+#: c/c-parser.cc:16124 cp/parser.cc:39302
+#, gcc-internal-format
+msgid "too many %<if%> clauses with %qs modifier"
+msgstr ""
+
+#: c/c-parser.cc:16131 cp/parser.cc:39309
+#, gcc-internal-format
+msgid "too many %<if%> clauses"
+msgstr ""
+
+#: c/c-parser.cc:16133 cp/parser.cc:39311
+#, gcc-internal-format
+msgid "too many %<if%> clauses without modifier"
+msgstr ""
+
+#: c/c-parser.cc:16139 cp/parser.cc:39317
+#, gcc-internal-format
+msgid "if any %<if%> clause has modifier, then all %<if%> clauses have to use modifier"
+msgstr ""
+
+#: c/c-parser.cc:16244 c/c-parser.cc:16304 c/c-parser.cc:16366
+#: c/c-parser.cc:16414 c/c-parser.cc:16494 c/c-parser.cc:16891
+#: c/c-parser.cc:16973 c/c-parser.cc:17578 c/c-parser.cc:17723
+#: c/c-parser.cc:17791 c/c-parser.cc:18969
+#, gcc-internal-format
+msgid "expected integer expression"
+msgstr ""
+
+#: c/c-parser.cc:16255
+#, gcc-internal-format
+msgid "%<num_threads%> value must be positive"
+msgstr ""
+
+#: c/c-parser.cc:16316
+#, gcc-internal-format
+msgid "%<num_tasks%> value must be positive"
+msgstr ""
+
+#: c/c-parser.cc:16378 cp/semantics.cc:8826
+#, gcc-internal-format
+msgid "%<grainsize%> value must be positive"
+msgstr ""
+
+#: c/c-parser.cc:16427 cp/semantics.cc:8856
+#, gcc-internal-format
+msgid "%<priority%> value must be non-negative"
+msgstr ""
+
+#: c/c-parser.cc:16461 cp/parser.cc:39543
+#, gcc-internal-format
+msgid "expected constant integer expression with valid sync-hint value"
+msgstr ""
+
+#: c/c-parser.cc:16533 cp/parser.cc:39613
+#, gcc-internal-format
+msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> or %<default%>"
+msgstr ""
+
+#: c/c-parser.cc:16601
+#, gcc-internal-format
+msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
+msgstr ""
+
+#: c/c-parser.cc:16678 cp/parser.cc:39765
+#, gcc-internal-format
+msgid "too many %<defaultmap%> clauses with %qs category"
+msgstr ""
+
+#: c/c-parser.cc:16681 cp/parser.cc:39768
+#, gcc-internal-format
+msgid "too many %<defaultmap%> clauses with unspecified category"
+msgstr ""
+
+#: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
+#, gcc-internal-format
+msgid "%qs expression must be integral"
+msgstr ""
+
+#: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
+#: cp/semantics.cc:7752
+#, gcc-internal-format
+msgid "%qs value must be positive"
+msgstr ""
+
+#: c/c-parser.cc:16839 cp/parser.cc:38769
+#, gcc-internal-format
+msgid "too many %<static%> arguments"
+msgstr ""
+
+#: c/c-parser.cc:16873 cp/parser.cc:38802
+#, gcc-internal-format
+msgid "unexpected argument"
+msgstr "მოულოდნელი არგუმენტი"
+
+#: c/c-parser.cc:17040 cp/semantics.cc:9043
+#, gcc-internal-format
+msgid "%<tile%> argument needs positive integral constant"
+msgstr ""
+
+#: c/c-parser.cc:17108 cp/parser.cc:41876
+#, gcc-internal-format
+msgid "too many %<self%> clauses"
+msgstr ""
+
+#: c/c-parser.cc:17150 cp/parser.cc:39818
+#, gcc-internal-format
+msgid "expected %<reproducible%> or %<unconstrained%>"
+msgstr ""
+
+#: c/c-parser.cc:17159 c/c-parser.cc:17165 cp/parser.cc:39827
+#: cp/parser.cc:39837
+#, gcc-internal-format
+msgid "expected %<concurrent%>"
+msgstr ""
+
+#: c/c-parser.cc:17201 cp/parser.cc:39877
+#, gcc-internal-format
+msgid "expected %<teams%>, %<parallel%> or %<thread%>"
+msgstr ""
+
+#: c/c-parser.cc:17254 cp/parser.cc:39945
+#, gcc-internal-format
+msgid "ordered argument needs positive constant integer expression"
+msgstr ""
+
+#: c/c-parser.cc:17379 c/c-parser.cc:25503 cp/parser.cc:49345
+#, gcc-internal-format
+msgid "expected %<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, %<&&%>, %<||%> or identifier"
+msgstr ""
+
+#: c/c-parser.cc:17501 cp/parser.cc:40203
+#, gcc-internal-format
+msgid "both %<monotonic%> and %<nonmonotonic%> modifiers specified"
+msgstr ""
+
+#: c/c-parser.cc:17555 cp/parser.cc:40219
+#, gcc-internal-format
+msgid "schedule %<runtime%> does not take a %<chunk_size%> parameter"
+msgstr ""
+
+#: c/c-parser.cc:17559 cp/parser.cc:40222
+#, gcc-internal-format
+msgid "schedule %<auto%> does not take a %<chunk_size%> parameter"
+msgstr ""
+
+#: c/c-parser.cc:17572 cp/semantics.cc:7799
+#, gcc-internal-format
+msgid "chunk size value must be positive"
+msgstr ""
+
+#: c/c-parser.cc:17595 cp/parser.cc:40242
+#, gcc-internal-format
+msgid "invalid schedule kind"
+msgstr ""
+
+#: c/c-parser.cc:17734 c/c-parser.cc:17745
+#, gcc-internal-format
+msgid "%<num_teams%> value must be positive"
+msgstr ""
+
+#: c/c-parser.cc:17753 cp/semantics.cc:7766
+#, gcc-internal-format
+msgid "%<num_teams%> lower bound %qE bigger than upper bound %qE"
+msgstr ""
+
+#: c/c-parser.cc:17802 cp/semantics.cc:7895
+#, gcc-internal-format
+msgid "%<thread_limit%> value must be positive"
+msgstr ""
+
+#: c/c-parser.cc:17847 cp/semantics.cc:8023
+#, gcc-internal-format
+msgid "%<aligned%> clause alignment expression must be positive constant integer expression"
+msgstr ""
+
+#: c/c-parser.cc:17959 c/c-parser.cc:20700 cp/parser.cc:42605
+#, gcc-internal-format
+msgid "expected %<allocator%> or %<align%>"
+msgstr ""
+
+#: c/c-parser.cc:17966
+#, gcc-internal-format
+msgid "duplicate %qs modifier"
+msgstr ""
+
+#: c/c-parser.cc:18014 cp/semantics.cc:8158
+#, gcc-internal-format
+msgid "%<allocate%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
+msgstr ""
+
+#: c/c-parser.cc:18025 cp/semantics.cc:8113 cp/semantics.cc:8129
+#, gcc-internal-format
+msgid "%<allocate%> clause %<align%> modifier argument needs to be positive constant power of two integer expression"
+msgstr ""
+
+#: c/c-parser.cc:18144 cp/parser.cc:40689
+#, gcc-internal-format
+msgid "multiple linear modifiers"
+msgstr ""
+
+#: c/c-parser.cc:18156 cp/parser.cc:40702
+#, gcc-internal-format
+msgid "multiple %<step%> modifiers"
+msgstr ""
+
+#: c/c-parser.cc:18164 c/c-parser.cc:18192
+#, gcc-internal-format
+msgid "%<linear%> clause step expression must be integral"
+msgstr ""
+
+#: c/c-parser.cc:18244
+#, gcc-internal-format
+msgid "%<safelen%> clause expression must be positive constant integer expression"
+msgstr ""
+
+#: c/c-parser.cc:18283
+#, gcc-internal-format
+msgid "%<simdlen%> clause expression must be positive constant integer expression"
+msgstr ""
+
+#: c/c-parser.cc:18643 cp/parser.cc:41249
+#, gcc-internal-format
+msgid "%<iterator%> modifier incompatible with %qs"
+msgstr ""
+
+#: c/c-parser.cc:18691 cp/parser.cc:41304 cp/parser.cc:41756 cp/parser.cc:41806
+#, gcc-internal-format
+msgid "invalid depend kind"
+msgstr ""
+
+#: c/c-parser.cc:18752 cp/parser.cc:41334
+#, gcc-internal-format
+msgid "invalid doacross kind"
+msgstr ""
+
+#: c/c-parser.cc:18821 cp/parser.cc:41477
+#, gcc-internal-format
+msgid "too many %<always%> modifiers"
+msgstr ""
+
+#: c/c-parser.cc:18831 cp/parser.cc:41490
+#, gcc-internal-format
+msgid "too many %<close%> modifiers"
+msgstr ""
+
+#: c/c-parser.cc:18841 cp/parser.cc:41503
+#, gcc-internal-format
+msgid "too many %<present%> modifiers"
+msgstr ""
+
+#: c/c-parser.cc:18849 cp/parser.cc:41514
+#, gcc-internal-format
+msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
+msgstr ""
+
+#: c/c-parser.cc:18887 cp/parser.cc:41554
+#, gcc-internal-format
+msgid "invalid map kind"
+msgstr ""
+
+#: c/c-parser.cc:18939 cp/parser.cc:41618
+#, gcc-internal-format
+msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause"
+msgstr ""
+
+#: c/c-parser.cc:18951 cp/parser.cc:41629
+#, gcc-internal-format
+msgid "expected %<ancestor%> or %<device_num%>"
+msgstr ""
+
+#: c/c-parser.cc:18974 cp/semantics.cc:7920
+#, gcc-internal-format
+msgid "the %<device%> clause expression must evaluate to %<1%>"
+msgstr ""
+
+#: c/c-parser.cc:19007 cp/parser.cc:41700
+#, gcc-internal-format
+msgid "invalid dist_schedule kind"
+msgstr ""
+
+#: c/c-parser.cc:19086
+#, gcc-internal-format
+msgid "invalid proc_bind kind"
+msgstr ""
+
+#: c/c-parser.cc:19130
+#, gcc-internal-format
+msgid "expected %<host%>, %<nohost%> or %<any%>"
+msgstr ""
+
+#: c/c-parser.cc:19228 cp/semantics.cc:8339
+#, gcc-internal-format
+msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handle_t%>"
+msgstr ""
+
+#: c/c-parser.cc:19440 cp/parser.cc:42092
+#, gcc-internal-format
+msgid "expected an OpenACC clause"
+msgstr ""
+
+#: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
+#: cp/parser.cc:42511
+#, gcc-internal-format
+msgid "%qs is not valid for %qs"
+msgstr ""
+
+#: c/c-parser.cc:19496 cp/parser.cc:42151
+#, gcc-internal-format
+msgid "clauses in %<simd%> trait should be separated by %<,%>"
+msgstr ""
+
+#: c/c-parser.cc:19649 cp/parser.cc:42344
+#, gcc-internal-format
+msgid "%qs must be the first clause of %qs"
+msgstr ""
+
+#: c/c-parser.cc:19805 cp/parser.cc:42500
+#, gcc-internal-format
+msgid "expected an OpenMP clause"
+msgstr ""
+
+#: c/c-parser.cc:19964 cp/parser.cc:47349
+#, gcc-internal-format
+msgid "no valid clauses specified in %<#pragma acc declare%>"
+msgstr ""
+
+#: c/c-parser.cc:19974 cp/parser.cc:47359
+#, gcc-internal-format
+msgid "array section in %<#pragma acc declare%>"
+msgstr ""
+
+#: c/c-parser.cc:19994 cp/parser.cc:47379
+#, gcc-internal-format
+msgid "%qD must be a global variable in %<#pragma acc declare link%>"
+msgstr ""
+
+#: c/c-parser.cc:20005 cp/parser.cc:47390
+#, gcc-internal-format
+msgid "invalid OpenACC clause at file scope"
+msgstr ""
+
+#: c/c-parser.cc:20012 cp/parser.cc:47397
+#, gcc-internal-format
+msgid "invalid use of %<extern%> variable %qD in %<#pragma acc declare%>"
+msgstr ""
+
+#: c/c-parser.cc:20020 cp/parser.cc:47405
+#, gcc-internal-format
+msgid "invalid use of %<global%> variable %qD in %<#pragma acc declare%>"
+msgstr ""
+
+#: c/c-parser.cc:20031 cp/parser.cc:47427
+#, gcc-internal-format
+msgid "%qD must be a variable declared in the same scope as %<#pragma acc declare%>"
+msgstr ""
+
+#: c/c-parser.cc:20041 cp/parser.cc:47450
+#, gcc-internal-format
+msgid "variable %qD used more than once with %<#pragma acc declare%>"
+msgstr ""
+
+#: c/c-parser.cc:20134 cp/parser.cc:47534
+#, gcc-internal-format
+msgid "expected %<data%> after %<#pragma acc %s%>"
+msgstr ""
+
+#: c/c-parser.cc:20150 cp/parser.cc:47551
+#, gcc-internal-format
+msgid "%<#pragma acc %s data%> has no data movement clause"
+msgstr ""
+
+#: c/c-parser.cc:20182 cp/parser.cc:47309
+#, gcc-internal-format
+msgid "%<host_data%> construct requires %<use_device%> clause"
+msgstr ""
+
+#: c/c-parser.cc:20411 cp/parser.cc:3367
+#, gcc-internal-format
+msgid "%qE has not been declared"
+msgstr ""
+
+#: c/c-parser.cc:20415
+#, gcc-internal-format
+msgid "expected function name"
+msgstr ""
+
+#: c/c-parser.cc:20433 cp/parser.cc:50131
+#, gcc-internal-format
+msgid "%qD does not refer to a function"
+msgstr ""
+
+#: c/c-parser.cc:20456 c/c-parser.cc:20504 cp/parser.cc:1662
+#, gcc-internal-format
+msgid "%<#pragma acc routine%> not immediately followed by function declaration or definition"
+msgstr ""
+
+#: c/c-parser.cc:20496 cp/parser.cc:50182 cp/parser.cc:50229
+#, gcc-internal-format
+msgid "%<#pragma acc routine%> not immediately followed by a single function declaration or definition"
+msgstr ""
+
+#: c/c-parser.cc:20527 cp/parser.cc:50257
+#, gcc-internal-format
+msgid "%<#pragma acc routine%> must be applied before use"
+msgstr ""
+
+#: c/c-parser.cc:20528 cp/parser.cc:50259
+#, gcc-internal-format
+msgid "%<#pragma acc routine%> must be applied before definition"
+msgstr ""
+
+#: c/c-parser.cc:20573 cp/parser.cc:47767
+#, gcc-internal-format
+msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause"
+msgstr ""
+
+#: c/c-parser.cc:20631
+#, gcc-internal-format
+msgid "variable %qD used in the %<allocator%> clause must be declared before %qD"
+msgstr ""
+
+#: c/c-parser.cc:20635 c/c-parser.cc:20658
+#, gcc-internal-format
+msgid "to be allocated variable declared here"
+msgstr ""
+
+#: c/c-parser.cc:20653
+#, gcc-internal-format
+msgid "variable %qD used in the %<allocator%> clause must not be modified between declaration of %qD and its %<allocate%> directive"
+msgstr ""
+
+#: c/c-parser.cc:20656
+#, gcc-internal-format
+msgid "modified here"
+msgstr ""
+
+#: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
+#, gcc-internal-format
+msgid "%<align%> clause argument needs to be positive constant power of two integer expression"
+msgstr ""
+
+#: c/c-parser.cc:20748
+#, gcc-internal-format
+msgid "%<allocator%> clause allocator expression has type %qT rather than %<omp_allocator_handle_t%>"
+msgstr ""
+
+#: c/c-parser.cc:20765
+#, gcc-internal-format
+msgid "function parameter %qD may not appear as list item in an %<allocate%> directive"
+msgstr ""
+
+#: c/c-parser.cc:20772
+#, gcc-internal-format
+msgid "%<allocate%> directive must be in the same scope as %qD"
+msgstr ""
+
+#: c/c-parser.cc:20780
+#, gcc-internal-format
+msgid "%qD already appeared as list item in an %<allocate%> directive"
+msgstr ""
+
+#: c/c-parser.cc:20787
+#, gcc-internal-format
+msgid "%<allocator%> clause required for static variable %qD"
+msgstr ""
+
+#: c/c-parser.cc:20794
+#, gcc-internal-format
+msgid "%<allocator%> clause requires a predefined allocator as %qD is static"
+msgstr ""
+
+#: c/c-parser.cc:20798
+#, gcc-internal-format
+msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
+msgstr ""
+
+#: c/c-parser.cc:20949 cp/parser.cc:42805
+#, gcc-internal-format
+msgid "expected %<read%>, %<write%>, %<update%>, or %<capture%> clause"
+msgstr ""
+
+#: c/c-parser.cc:20988 cp/parser.cc:42844
+#, gcc-internal-format
+msgid "expected %<seq_cst%>, %<acquire%> or %<relaxed%>"
+msgstr ""
+
+#: c/c-parser.cc:21012 cp/parser.cc:42873
+#, gcc-internal-format
+msgid "expected %<read%>, %<write%>, %<update%>, %<capture%>, %<compare%>, %<weak%>, %<fail%>, %<seq_cst%>, %<acq_rel%>, %<release%>, %<relaxed%> or %<hint%> clause"
+msgstr ""
+
+#: c/c-parser.cc:21027 cp/parser.cc:42888
+#, gcc-internal-format
+msgid "too many atomic clauses"
+msgstr ""
+
+#: c/c-parser.cc:21034 cp/parser.cc:42895
+#, gcc-internal-format
+msgid "too many memory order clauses"
+msgstr ""
+
+#: c/c-parser.cc:21072 c/c-parser.cc:21079 cp/parser.cc:42933
+#: cp/parser.cc:42940
+#, gcc-internal-format
+msgid "%qs clause is incompatible with %<read%> or %<write%> clauses"
+msgstr ""
+
+#: c/c-parser.cc:21085 c/c-parser.cc:21090 cp/parser.cc:42946
+#: cp/parser.cc:42951
+#, gcc-internal-format
+msgid "%qs clause requires %qs clause"
+msgstr ""
+
+#: c/c-parser.cc:21113 cp/parser.cc:42974
+#, gcc-internal-format
+msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
+msgstr ""
+
+#: c/c-parser.cc:21124 cp/parser.cc:42985
+#, gcc-internal-format
+msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
+msgstr ""
+
+#: c/c-parser.cc:21156 cp/parser.cc:43017
+#, gcc-internal-format
+msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
+msgstr ""
+
+#: c/c-parser.cc:21166 cp/parser.cc:43027
+#, gcc-internal-format
+msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
+msgstr ""
+
+#: c/c-parser.cc:21289 cp/parser.cc:43127
+#, gcc-internal-format
+msgid "expected %<==%> comparison in %<if%> condition"
+msgstr ""
+
+#: c/c-parser.cc:21296 cp/parser.cc:43134
+#, gcc-internal-format
+msgid "expected %<==%>, %<<%> or %<>%> comparison in %<if%> condition"
+msgstr ""
+
+#: c/c-parser.cc:21369 cp/parser.cc:43199 cp/parser.cc:43482 cp/parser.cc:43576
+#: cp/parser.cc:43594
+#, gcc-internal-format
+msgid "invalid form of %<#pragma omp atomic compare%>"
+msgstr ""
+
+#: c/c-parser.cc:21380 cp/parser.cc:43210
+#, gcc-internal-format
+msgid "unexpected %<else%>"
+msgstr ""
+
+#: c/c-parser.cc:21440 cp/parser.cc:43649
+#, gcc-internal-format
+msgid "invalid form of %<pragma omp atomic compare%>"
+msgstr ""
+
+#: c/c-parser.cc:21711 cp/parser.cc:43503 cp/parser.cc:43529
+#, gcc-internal-format
+msgid "invalid form of %<#pragma omp atomic%>"
+msgstr ""
+
+#: c/c-parser.cc:21715 cp/parser.cc:43569 cp/parser.cc:43603
+#, gcc-internal-format
+msgid "invalid operator for %<#pragma omp atomic%>"
+msgstr ""
+
+#: c/c-parser.cc:21766 cp/parser.cc:43638
+#, gcc-internal-format
+msgid "%<weak%> clause requires atomic equality comparison"
+msgstr ""
+
+#: c/c-parser.cc:21772 cp/semantics.cc:11231 cp/semantics.cc:11241
+#, gcc-internal-format
+msgid "%<#pragma omp atomic capture%> uses two different expressions for memory"
+msgstr ""
+
+#: c/c-parser.cc:21875 cp/semantics.cc:11318
+#, gcc-internal-format
+msgid "%<depobj%> expression is not lvalue expression"
+msgstr ""
+
+#: c/c-parser.cc:21918
+#, gcc-internal-format
+msgid "%<destroy%> expression is not lvalue expression"
+msgstr ""
+
+#: c/c-parser.cc:21924 cp/parser.cc:43791
+#, gcc-internal-format
+msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
+msgstr ""
+
+#: c/c-parser.cc:21955 cp/parser.cc:43827
+#, gcc-internal-format
+msgid "expected %<in%>, %<out%>, %<inout%>, %<mutexinoutset%> or %<inoutset%>"
+msgstr ""
+
+#: c/c-parser.cc:21967 cp/parser.cc:43843
+#, gcc-internal-format
+msgid "expected %<depend%>, %<destroy%> or %<update%> clause"
+msgstr ""
+
+#: c/c-parser.cc:22008 cp/parser.cc:43881
+#, gcc-internal-format
+msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
+msgstr ""
+
+#: c/c-parser.cc:22016 cp/parser.cc:43889
+#, gcc-internal-format
+msgid "%<flush%> list specified together with memory order clause"
+msgstr ""
+
+#: c/c-parser.cc:22021
+#, gcc-internal-format
+msgid "expected %<(%> or end of line"
+msgstr ""
+
+#: c/c-parser.cc:22092 cp/parser.cc:44595
+#, gcc-internal-format
+msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a statement"
+msgstr ""
+
+#: c/c-parser.cc:22159 cp/parser.cc:44664
+#, gcc-internal-format
+msgid "%<#pragma omp scan%> with zero preceding executable statements"
+msgstr ""
+
+#: c/c-parser.cc:22193 cp/parser.cc:44697
+#, gcc-internal-format
+msgid "expected %<inclusive%> or %<exclusive%> clause"
+msgstr ""
+
+#: c/c-parser.cc:22198 cp/parser.cc:44703
+#, gcc-internal-format
+msgid "expected %<#pragma omp scan%>"
+msgstr ""
+
+#: c/c-parser.cc:22207 cp/parser.cc:44712
+#, gcc-internal-format
+msgid "%<#pragma omp scan%> with zero succeeding executable statements"
+msgstr ""
+
+#: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
+#, gcc-internal-format
+msgid "expected iteration declaration or initialization"
+msgstr ""
+
+#: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
+#: cp/parser.cc:45070
+#, gcc-internal-format
+msgid "not enough nested loops"
+msgstr ""
+
+#: c/c-parser.cc:22526 cp/parser.cc:45342
+#, gcc-internal-format
+msgid "%<ordered%> clause parameter is less than %<collapse%>"
+msgstr ""
+
+#: c/c-parser.cc:22537 cp/parser.cc:45353
+#, gcc-internal-format
+msgid "for statement expected"
+msgstr ""
+
+#: c/c-parser.cc:22649 cp/parser.cc:44895 cp/parser.cc:44938 cp/pt.cc:18184
+#, gcc-internal-format
+msgid "iteration variable %qD should not be firstprivate"
+msgstr ""
+
+#: c/c-parser.cc:23057 cp/parser.cc:45864
+#, gcc-internal-format
+msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
+msgstr ""
+
+#: c/c-parser.cc:23273 cp/parser.cc:46070
+#, gcc-internal-format
+msgid "expected %<for%> after %qs"
+msgstr ""
+
+#: c/c-parser.cc:23620 cp/parser.cc:46417
+#, gcc-internal-format
+msgid "expected %<point%>"
+msgstr ""
+
+#: c/c-parser.cc:23887 cp/parser.cc:46704
+#, gcc-internal-format
+msgid "%<#pragma omp target data%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
+msgstr ""
+
+#: c/c-parser.cc:23903 cp/parser.cc:46720
+#, gcc-internal-format
+msgid "%<#pragma omp target data%> must contain at least one %<map%>, %<use_device_ptr%> or %<use_device_addr%> clause"
+msgstr ""
+
+#: c/c-parser.cc:23951 cp/parser.cc:47001
+#, gcc-internal-format
+msgid "%<#pragma omp target update%> must contain at least one %<from%> or %<to%> clauses"
+msgstr ""
+
+#: c/c-parser.cc:24053 cp/parser.cc:46827
+#, gcc-internal-format
+msgid "%<#pragma omp target enter data%> with map-type other than %<to%>, %<tofrom%> or %<alloc%> on %<map%> clause"
+msgstr ""
+
+#: c/c-parser.cc:24065 cp/parser.cc:46839
+#, gcc-internal-format
+msgid "%<#pragma omp target enter data%> must contain at least one %<map%> clause"
+msgstr ""
+
+#: c/c-parser.cc:24164 cp/parser.cc:46944
+#, gcc-internal-format
+msgid "%<#pragma omp target exit data%> with map-type other than %<from%>, %<tofrom%>, %<release%> or %<delete%> on %<map%> clause"
+msgstr ""
+
+#: c/c-parser.cc:24177 cp/parser.cc:46957
+#, gcc-internal-format
+msgid "%<#pragma omp target exit data%> must contain at least one %<map%> clause"
+msgstr ""
+
+#: c/c-parser.cc:24422 cp/semantics.cc:10313
+#, gcc-internal-format
+msgid "%<#pragma omp target%> with map-type other than %<to%>, %<from%>, %<tofrom%> or %<alloc%> on %<map%> clause"
+msgstr ""
+
+#: c/c-parser.cc:24479
+#, gcc-internal-format
+msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition or another %<#pragma omp declare %s%>"
+msgstr ""
+
+#: c/c-parser.cc:24530 c/c-parser.cc:24568
+#, gcc-internal-format
+msgid "%<#pragma omp declare %s%> must be followed by function declaration or definition"
+msgstr ""
+
+#: c/c-parser.cc:24601 cp/parser.cc:47911
+#, gcc-internal-format
+msgid "expected trait selector name"
+msgstr ""
+
+#: c/c-parser.cc:24613 cp/parser.cc:47925
+#, gcc-internal-format
+msgid "unknown selector %qs for context selector set %qs"
+msgstr ""
+
+#: c/c-parser.cc:24641 cp/parser.cc:47954
+#, gcc-internal-format
+msgid "selector %qs does not accept any properties"
+msgstr ""
+
+#: c/c-parser.cc:24663 cp/parser.cc:47986
+#, gcc-internal-format
+msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
+msgstr ""
+
+#: c/c-parser.cc:24672 cp/parser.cc:47996
+#, gcc-internal-format
+msgid "%<score%> argument must be constant integer expression"
+msgstr ""
+
+#: c/c-parser.cc:24675 cp/parser.cc:47999
+#, gcc-internal-format
+msgid "%<score%> argument must be non-negative"
+msgstr ""
+
+#: c/c-parser.cc:24716 cp/parser.cc:48045
+#, gcc-internal-format
+msgid "expected identifier or string literal"
+msgstr ""
+
+#: c/c-parser.cc:24741 cp/parser.cc:48070 cp/pt.cc:12077
+#, gcc-internal-format
+msgid "property must be constant integer expression"
+msgstr ""
+
+#: c/c-parser.cc:24755 cp/parser.cc:48084
+#, gcc-internal-format
+msgid "properties for %<simd%> selector may not be specified in %<metadirective%>"
+msgstr ""
+
+#. FIXME: The "requires" selector was added in OpenMP 5.1.
+#. Currently only the now-deprecated syntax
+#. from OpenMP 5.0 is supported.
+#: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
+#, gcc-internal-format
+msgid "%<requires%> selector is not supported yet"
+msgstr ""
+
+#: c/c-parser.cc:24835 cp/parser.cc:48163
+#, gcc-internal-format
+msgid "expected context selector set name"
+msgstr ""
+
+#: c/c-parser.cc:24912 cp/parser.cc:48478
+#, gcc-internal-format
+msgid "expected %<match%>"
+msgstr ""
+
+#: c/c-parser.cc:24932
+#, gcc-internal-format
+msgid "variant %qD is not a function"
+msgstr ""
+
+#: c/c-parser.cc:24939 cp/decl.cc:8323
+#, gcc-internal-format
+msgid "variant %qD and base %qD have incompatible types"
+msgstr ""
+
+#: c/c-parser.cc:24951 cp/decl.cc:8332
+#, gcc-internal-format
+msgid "variant %qD is a built-in"
+msgstr ""
+
+#: c/c-parser.cc:24997
+#, gcc-internal-format
+msgid "%<#pragma omp declare %s%> not immediately followed by a function declaration or definition"
+msgstr ""
+
+#: c/c-parser.cc:25005 cp/parser.cc:48523
+#, gcc-internal-format
+msgid "%<#pragma omp declare %s%> not immediately followed by a single function declaration or definition"
+msgstr ""
+
+#: c/c-parser.cc:25206 cp/parser.cc:48813
+#, gcc-internal-format
+msgid "%qD specified both in declare target %<link%> and %qs clauses"
+msgstr ""
+
+#: c/c-parser.cc:25210 cp/parser.cc:48817
+#, gcc-internal-format
+msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> clauses"
+msgstr ""
+
+#: c/c-parser.cc:25270 cp/parser.cc:48947
+#, gcc-internal-format
+msgid "directive with only %<device_type%> or %<indirect%> clauses"
+msgstr ""
+
+#: c/c-parser.cc:25273 cp/parser.cc:48950
+#, gcc-internal-format
+msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
+msgstr ""
+
+#: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
+#: cp/parser.cc:49052
+#, gcc-internal-format
+msgid "expected %<target%>"
+msgstr ""
+
+#: c/c-parser.cc:25336 cp/parser.cc:49018
+#, gcc-internal-format
+msgid "expected %<declare target%> or %<assumes%>"
+msgstr ""
+
+#: c/c-parser.cc:25371 cp/parser.cc:49059
+#, gcc-internal-format
+msgid "%<#pragma omp end declare target%> without corresponding %<#pragma omp declare target%> or %<#pragma omp begin declare target%>"
+msgstr ""
+
+#: c/c-parser.cc:25382 c/c-parser.cc:25413 cp/parser.cc:49070
+#: cp/parser.cc:49101
+#, gcc-internal-format
+msgid "%qs in attribute syntax terminated with %qs in pragma syntax"
+msgstr ""
+
+#: c/c-parser.cc:25389 c/c-parser.cc:25418 cp/parser.cc:49077
+#: cp/parser.cc:49106
+#, gcc-internal-format
+msgid "%qs in pragma syntax terminated with %qs in attribute syntax"
+msgstr ""
+
+#: c/c-parser.cc:25426 cp/parser.cc:49114
+#, gcc-internal-format
+msgid "expected %<declare%> or %<assumes%>"
+msgstr ""
+
+#: c/c-parser.cc:25453
+#, gcc-internal-format
+msgid "%<#pragma omp declare reduction%> not at file or block scope"
+msgstr ""
+
+#: c/c-parser.cc:25530
+#, gcc-internal-format
+msgid "predeclared arithmetic type in %<#pragma omp declare reduction%>"
+msgstr ""
+
+#: c/c-parser.cc:25534
+#, gcc-internal-format
+msgid "function or array type in %<#pragma omp declare reduction%>"
+msgstr ""
+
+#: c/c-parser.cc:25537
+#, gcc-internal-format
+msgid "%<_Atomic%> qualified type in %<#pragma omp declare reduction%>"
+msgstr ""
+
+#: c/c-parser.cc:25540
+#, gcc-internal-format
+msgid "const, volatile or restrict qualified type in %<#pragma omp declare reduction%>"
+msgstr ""
+
+#: c/c-parser.cc:25548
+#, gcc-internal-format
+msgid "redeclaration of %qs %<#pragma omp declare reduction%> for type %qT"
+msgstr ""
+
+#: c/c-parser.cc:25557
+#, gcc-internal-format
+msgid "previous %<#pragma omp declare reduction%>"
+msgstr ""
+
+#: c/c-parser.cc:25678
+#, gcc-internal-format
+msgid "expected %<omp_priv%> or function-name"
+msgstr ""
+
+#: c/c-parser.cc:25689
+#, gcc-internal-format
+msgid "expected function-name %<(%>"
+msgstr ""
+
+#: c/c-parser.cc:25708
+#, gcc-internal-format
+msgid "one of the initializer call arguments should be %<&omp_priv%>"
+msgstr ""
+
+#: c/c-parser.cc:25839 cp/parser.cc:49587
+#, gcc-internal-format
+msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
+msgstr ""
+
+#: c/c-parser.cc:25908 cp/parser.cc:49654
+#, gcc-internal-format
+msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
+msgstr ""
+
+#: c/c-parser.cc:25937 cp/parser.cc:49689
+#, gcc-internal-format
+msgid "expected %<unified_address%>, %<unified_shared_memory%>, %<dynamic_allocators%>, %<reverse_offload%> or %<atomic_default_mem_order%> clause"
+msgstr ""
+
+#: c/c-parser.cc:25955 cp/parser.cc:49707
+#, gcc-internal-format
+msgid "%qs clause used lexically after first target construct or offloading API"
+msgstr ""
+
+#: c/c-parser.cc:25967 cp/parser.cc:49719
+#, gcc-internal-format
+msgid "more than one %<atomic_default_mem_order%> clause in a single compilation unit"
+msgstr ""
+
+#: c/c-parser.cc:25976 cp/parser.cc:49728
+#, gcc-internal-format
+msgid "%<atomic_default_mem_order%> clause used lexically after first %<atomic%> construct without memory order clause"
+msgstr ""
+
+#: c/c-parser.cc:25990 cp/parser.cc:49742
+#, gcc-internal-format
+msgid "%<pragma omp requires%> requires at least one clause"
+msgstr ""
+
+#: c/c-parser.cc:26009
+#, gcc-internal-format
+msgid "zero sized type %qT in %<reduction%> clause"
+msgstr ""
+
+#: c/c-parser.cc:26015
+#, gcc-internal-format
+msgid "variable sized type %qT in %<reduction%> clause"
+msgstr ""
+
+#: c/c-parser.cc:26172 cp/parser.cc:49799
+#, gcc-internal-format
+msgid "expected %<at%>, %<severity%> or %<message%> clause"
+msgstr ""
+
+#: c/c-parser.cc:26205 cp/parser.cc:49834
+#, gcc-internal-format
+msgid "expected %qs or %qs"
+msgstr ""
+
+#: c/c-parser.cc:26262 cp/parser.cc:49896
+#, gcc-internal-format
+msgid "%<#pragma omp error%> with %<at(execution)%> clause may only be used in compound statements"
+msgstr ""
+
+#: c/c-parser.cc:26285 cp/parser.cc:49923
+#, gcc-internal-format
+msgid "%<pragma omp error%> encountered: %s"
+msgstr ""
+
+#: c/c-parser.cc:26288 cp/parser.cc:49926
+#, gcc-internal-format
+msgid "%<pragma omp error%> encountered"
+msgstr ""
+
+#: c/c-parser.cc:26315 cp/parser.cc:48224
+#, gcc-internal-format
+msgid "expected at least one assumption clause"
+msgstr ""
+
+#: c/c-parser.cc:26401 cp/parser.cc:48310
+#, gcc-internal-format
+msgid "expected directive name"
+msgstr ""
+
+#: c/c-parser.cc:26414 cp/parser.cc:48323
+#, gcc-internal-format
+msgid "unknown OpenMP directive name in %qs clause argument"
+msgstr ""
+
+#: c/c-parser.cc:26421 cp/parser.cc:48330
+#, gcc-internal-format
+msgid "%<%s%s%s%s%s%> directive mentioned in both %<absent%> and %<contains%> clauses"
+msgstr ""
+
+#: c/c-parser.cc:26432 cp/parser.cc:48341
+#, gcc-internal-format
+msgid "%<%s%s%s%s%s%> directive mentioned multiple times in %qs clauses"
+msgstr ""
+
+#: c/c-parser.cc:26455 cp/parser.cc:48368
+#, gcc-internal-format
+msgid "unknown assumption clause %qs"
+msgstr ""
+
+#: c/c-parser.cc:26468 cp/parser.cc:48378
+#, gcc-internal-format
+msgid "expected assumption clause"
+msgstr ""
+
+#: c/c-parser.cc:26638 cp/semantics.cc:9679
+#, gcc-internal-format
+msgid "%qE declared %<threadprivate%> after first use"
+msgstr ""
+
+#: c/c-parser.cc:26640 cp/semantics.cc:9681
+#, gcc-internal-format
+msgid "automatic variable %qE cannot be %<threadprivate%>"
+msgstr ""
+
+#: c/c-parser.cc:26644 cp/semantics.cc:9683
+#, gcc-internal-format
+msgid "%<threadprivate%> %qE has incomplete type"
+msgstr ""
+
+#: c/c-parser.cc:26824 cp/parser.cc:50665
+#, gcc-internal-format
+msgid "%<__transaction_cancel%> without transactional memory support enabled"
+msgstr ""
+
+#: c/c-parser.cc:26830 cp/parser.cc:50671
+#, gcc-internal-format
+msgid "%<__transaction_cancel%> within a %<__transaction_relaxed%>"
+msgstr ""
+
+#: c/c-parser.cc:26839
+#, gcc-internal-format
+msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%> or a %<transaction_may_cancel_outer%> function"
+msgstr ""
+
+#: c/c-parser.cc:26847 cp/parser.cc:50689
+#, gcc-internal-format
+msgid "%<__transaction_cancel%> not within %<__transaction_atomic%>"
+msgstr ""
+
+#: c/c-parser.cc:26940
+#, gcc-internal-format
+msgid "no closing brace"
+msgstr ""
+
+#: c/c-typeck.cc:237
+#, gcc-internal-format
+msgid "%qD has an incomplete type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:251 c/c-typeck.cc:11338 c/c-typeck.cc:11380 cp/call.cc:4942
+#, gcc-internal-format
+msgid "invalid use of void expression"
+msgstr ""
+
+#: c/c-typeck.cc:259
+#, gcc-internal-format
+msgid "invalid use of flexible array member"
+msgstr ""
+
+#: c/c-typeck.cc:265 cp/typeck2.cc:346 rust/backend/rust-tree.cc:3919
+#, gcc-internal-format
+msgid "invalid use of array with unspecified bounds"
+msgstr ""
+
+#: c/c-typeck.cc:273
+#, gcc-internal-format
+msgid "invalid use of undefined type %qT"
+msgstr ""
+
+#. If this type has a typedef-name, the TYPE_NAME is a TYPE_DECL.
+#: c/c-typeck.cc:276
+#, gcc-internal-format
+msgid "invalid use of incomplete typedef %qT"
+msgstr ""
+
+#: c/c-typeck.cc:349
+#, gcc-internal-format
+msgid "%qT and %qT are in disjoint named address spaces"
+msgstr ""
+
+#: c/c-typeck.cc:374
+#, gcc-internal-format
+msgid "%qs attribute cannot be applied to a function that does not take variable arguments"
+msgstr ""
+
+#: c/c-typeck.cc:709 c/c-typeck.cc:732
+#, gcc-internal-format
+msgid "function types not truly compatible in ISO C"
+msgstr ""
+
+#: c/c-typeck.cc:888
+#, gcc-internal-format
+msgid "cannot mix operands of decimal floating and vector types"
+msgstr ""
+
+#: c/c-typeck.cc:893
+#, gcc-internal-format
+msgid "cannot mix operands of decimal floating and complex types"
+msgstr ""
+
+#: c/c-typeck.cc:898
+#, gcc-internal-format
+msgid "cannot mix operands of decimal floating and other floating types"
+msgstr ""
+
+#: c/c-typeck.cc:928
+#, gcc-internal-format
+msgid "%<_Complex _BitInt(%d)%> unsupported"
+msgstr ""
+
+#: c/c-typeck.cc:1474
+#, gcc-internal-format
+msgid "invalid use of pointers to arrays with different qualifiers in ISO C before C23"
+msgstr ""
+
+#: c/c-typeck.cc:1478
+#, gcc-internal-format
+msgid "types are not quite compatible"
+msgstr ""
+
+#: c/c-typeck.cc:1482
+#, gcc-internal-format
+msgid "pointer target types incompatible in C++"
+msgstr ""
+
+#: c/c-typeck.cc:1657
+#, gcc-internal-format
+msgid "function return types not compatible due to %<volatile%>"
+msgstr ""
+
+#: c/c-typeck.cc:1907
+#, gcc-internal-format
+msgid "converting an array compound literal to a pointer leads to a dangling pointer in C++"
+msgstr ""
+
+#: c/c-typeck.cc:2601 c/c-typeck.cc:9854
+#, gcc-internal-format
+msgid "%qT has no member named %qE; did you mean %qE?"
+msgstr ""
+
+#: c/c-typeck.cc:2605 c/c-typeck.cc:9858
+#, gcc-internal-format
+msgid "%qT has no member named %qE"
+msgstr ""
+
+#: c/c-typeck.cc:2614
+#, gcc-internal-format
+msgid "accessing a member %qE of an atomic structure %qE"
+msgstr ""
+
+#: c/c-typeck.cc:2617
+#, gcc-internal-format
+msgid "accessing a member %qE of an atomic union %qE"
+msgstr ""
+
+#: c/c-typeck.cc:2681
+#, gcc-internal-format
+msgid "%qE is a pointer to pointer; did you mean to dereference it before applying %<->%> to it?"
+msgstr ""
+
+#: c/c-typeck.cc:2690
+#, gcc-internal-format
+msgid "%qE is a pointer; did you mean to use %<->%>?"
+msgstr ""
+
+#: c/c-typeck.cc:2697
+#, gcc-internal-format
+msgid "request for member %qE in something not a structure or union"
+msgstr ""
+
+#: c/c-typeck.cc:2745
+#, gcc-internal-format
+msgid "dereferencing %<void *%> pointer"
+msgstr ""
+
+#: c/c-typeck.cc:2800
+#, gcc-internal-format
+msgid "subscripted value is neither array nor pointer nor vector"
+msgstr ""
+
+#: c/c-typeck.cc:2810 cp/typeck.cc:4001 cp/typeck.cc:4095
+#, gcc-internal-format
+msgid "array subscript is not an integer"
+msgstr ""
+
+#: c/c-typeck.cc:2816
+#, gcc-internal-format
+msgid "subscripted value is pointer to function"
+msgstr ""
+
+#: c/c-typeck.cc:2871
+#, gcc-internal-format
+msgid "ISO C forbids subscripting %<register%> array"
+msgstr ""
+
+#: c/c-typeck.cc:2874
+#, gcc-internal-format
+msgid "ISO C90 forbids subscripting non-lvalue array"
+msgstr ""
+
+#: c/c-typeck.cc:2993
+#, gcc-internal-format
+msgid "underspecified %qD referenced in its initializer"
+msgstr ""
+
+#: c/c-typeck.cc:3048
+#, gcc-internal-format
+msgid "enum constant defined here"
+msgstr ""
+
+#: c/c-typeck.cc:3156 cp/typeck.cc:2137
+#, gcc-internal-format
+msgid "%<sizeof%> on array function parameter %qE will return size of %qT"
+msgstr ""
+
+#: c/c-typeck.cc:3317
+#, gcc-internal-format
+msgid "called object %qE is not a function or function pointer"
+msgstr ""
+
+#: c/c-typeck.cc:3322
+#, gcc-internal-format
+msgid "called object %qD is not a function or function pointer"
+msgstr ""
+
+#: c/c-typeck.cc:3328
+#, gcc-internal-format
+msgid "called object is not a function or function pointer"
+msgstr ""
+
+#. This situation leads to run-time undefined behavior.  We can't,
+#. therefore, simply error unless we can prove that all possible
+#. executions of the program must execute the code.
+#: c/c-typeck.cc:3357
+#, gcc-internal-format
+msgid "function called through a non-compatible type"
+msgstr ""
+
+#: c/c-typeck.cc:3362 c/c-typeck.cc:3417
+#, gcc-internal-format
+msgid "function with qualified void return type called"
+msgstr ""
+
+#: c/c-typeck.cc:3472
+#, gcc-internal-format, gfc-internal-format
+msgid "type of formal parameter %d is incomplete"
+msgstr ""
+
+#: c/c-typeck.cc:3484
+#, gcc-internal-format
+msgid "passing argument %d of %qE as integer rather than floating due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3490
+#, gcc-internal-format
+msgid "passing argument %d of %qE as integer rather than complex due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3496
+#, gcc-internal-format
+msgid "passing argument %d of %qE as complex rather than floating due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3502
+#, gcc-internal-format
+msgid "passing argument %d of %qE as floating rather than integer due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3508
+#, gcc-internal-format
+msgid "passing argument %d of %qE as complex rather than integer due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3514
+#, gcc-internal-format
+msgid "passing argument %d of %qE as floating rather than complex due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3530
+#, gcc-internal-format
+msgid "passing argument %d of %qE as %<float%> rather than %<double%> due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3556
+#, gcc-internal-format
+msgid "passing argument %d of %qE as %qT rather than %qT due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3582
+#, gcc-internal-format
+msgid "passing argument %d of %qE with different width due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3606
+#, gcc-internal-format
+msgid "passing argument %d of %qE as unsigned due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3611
+#, gcc-internal-format
+msgid "passing argument %d of %qE as signed due to prototype"
+msgstr ""
+
+#: c/c-typeck.cc:3777
+#, gcc-internal-format
+msgid "too many arguments to method %qE"
+msgstr ""
+
+#: c/c-typeck.cc:3787
+#, gcc-internal-format
+msgid "too many arguments to built-in function %qE expecting %d"
+msgstr ""
+
+#: c/c-typeck.cc:3862
+#, gcc-internal-format
+msgid "implicit conversion from %qT to %qT when passing argument to function"
+msgstr ""
+
+#: c/c-typeck.cc:3932
+#, gcc-internal-format
+msgid "too few arguments to built-in function %qE expecting %u"
+msgstr ""
+
+#: c/c-typeck.cc:4110 c/c-typeck.cc:4138 cp/typeck.cc:5778 cp/typeck.cc:6061
+#, gcc-internal-format
+msgid "comparison with string literal results in unspecified behavior"
+msgstr ""
+
+#: c/c-typeck.cc:4118 c/c-typeck.cc:4129 cp/typeck.cc:5810 cp/typeck.cc:5834
+#, gcc-internal-format
+msgid "comparison between pointer and zero character constant"
+msgstr ""
+
+#: c/c-typeck.cc:4121 c/c-typeck.cc:4132 cp/typeck.cc:5813 cp/typeck.cc:5837
+#, gcc-internal-format
+msgid "did you mean to dereference the pointer?"
+msgstr ""
+
+#: c/c-typeck.cc:4159
+#, gcc-internal-format
+msgid "comparison between %qT and %qT"
+msgstr ""
+
+#: c/c-typeck.cc:4218
+#, gcc-internal-format
+msgid "pointer of type %<void *%> used in subtraction"
+msgstr ""
+
+#: c/c-typeck.cc:4221
+#, gcc-internal-format
+msgid "pointer to a function used in subtraction"
+msgstr ""
+
+#: c/c-typeck.cc:4255
+#, gcc-internal-format
+msgid "arithmetic on pointer to an incomplete type"
+msgstr ""
+
+#: c/c-typeck.cc:4264 cp/typeck.cc:6856
+#, gcc-internal-format
+msgid "arithmetic on pointer to an empty aggregate"
+msgstr ""
+
+#: c/c-typeck.cc:4710
+#, gcc-internal-format
+msgid "%<~%> on a boolean expression"
+msgstr ""
+
+#: c/c-typeck.cc:4714
+#, gcc-internal-format
+msgid "did you mean to use logical not?"
+msgstr ""
+
+#: c/c-typeck.cc:4724
+#, gcc-internal-format
+msgid "ISO C does not support %<~%> for complex conjugation"
+msgstr ""
+
+#: c/c-typeck.cc:4748
+#, gcc-internal-format
+msgid "wrong type argument to absu"
+msgstr ""
+
+#: c/c-typeck.cc:4774
+#, gcc-internal-format
+msgid "wrong type argument to unary exclamation mark"
+msgstr ""
+
+#: c/c-typeck.cc:4832
+#, gcc-internal-format
+msgid "increment of enumeration value is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.cc:4835
+#, gcc-internal-format
+msgid "decrement of enumeration value is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.cc:4842
+#, gcc-internal-format
+msgid "increment of a boolean expression"
+msgstr ""
+
+#: c/c-typeck.cc:4845
+#, gcc-internal-format
+msgid "decrement of a boolean expression"
+msgstr ""
+
+#: c/c-typeck.cc:4861
+#, gcc-internal-format
+msgid "ISO C does not support %<++%> and %<--%> on complex types"
+msgstr ""
+
+#: c/c-typeck.cc:4887 c/c-typeck.cc:4921
+#, gcc-internal-format
+msgid "wrong type argument to increment"
+msgstr ""
+
+#: c/c-typeck.cc:4889 c/c-typeck.cc:4924
+#, gcc-internal-format
+msgid "wrong type argument to decrement"
+msgstr ""
+
+#: c/c-typeck.cc:4909
+#, gcc-internal-format
+msgid "increment of pointer to an incomplete type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:4913
+#, gcc-internal-format
+msgid "decrement of pointer to an incomplete type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:5021
+#, gcc-internal-format
+msgid "taking address of expression of type %<void%>"
+msgstr ""
+
+#: c/c-typeck.cc:5080 c/c-typeck.cc:5273
+#, gcc-internal-format
+msgid "cannot take address of bit-field %qD"
+msgstr ""
+
+#: c/c-typeck.cc:5094
+#, gcc-internal-format
+msgid "cannot take address of scalar with reverse storage order"
+msgstr ""
+
+#: c/c-typeck.cc:5102
+#, gcc-internal-format
+msgid "address of array with reverse scalar storage order requested"
+msgstr ""
+
+#: c/c-typeck.cc:5288
+#, gcc-internal-format
+msgid "address of register compound literal requested"
+msgstr ""
+
+#: c/c-typeck.cc:5309
+#, gcc-internal-format
+msgid "global register variable %qD used in nested function"
+msgstr ""
+
+#: c/c-typeck.cc:5312
+#, gcc-internal-format
+msgid "register variable %qD used in nested function"
+msgstr ""
+
+#: c/c-typeck.cc:5317
+#, gcc-internal-format
+msgid "address of global register variable %qD requested"
+msgstr ""
+
+#: c/c-typeck.cc:5319 d/d-codegen.cc:721
+#, gcc-internal-format
+msgid "address of register variable %qD requested"
+msgstr ""
+
+#: c/c-typeck.cc:5458
+#, gcc-internal-format
+msgid "non-lvalue array in conditional expression"
+msgstr ""
+
+#: c/c-typeck.cc:5540
+#, gcc-internal-format
+msgid "implicit conversion from %qT to %qT to match other result of conditional"
+msgstr ""
+
+#: c/c-typeck.cc:5599 c/c-typeck.cc:5605
+#, gcc-internal-format
+msgid "operand of %<?:%> changes signedness from %qT to %qT due to unsignedness of other operand"
+msgstr ""
+
+#: c/c-typeck.cc:5622
+#, gcc-internal-format
+msgid "ISO C forbids conditional expr with only one void side"
+msgstr ""
+
+#: c/c-typeck.cc:5639
+#, gcc-internal-format
+msgid "pointers to disjoint address spaces used in conditional expression"
+msgstr ""
+
+#: c/c-typeck.cc:5663
+#, gcc-internal-format
+msgid "pointer to array loses qualifier in conditional expression"
+msgstr ""
+
+#: c/c-typeck.cc:5667
+#, gcc-internal-format
+msgid "pointer to array loses qualifier in conditional expression in ISO C before C23"
+msgstr ""
+
+#: c/c-typeck.cc:5672
+#, gcc-internal-format
+msgid "ISO C forbids conditional expr between %<void *%> and function pointer"
+msgstr ""
+
+#: c/c-typeck.cc:5694
+#, gcc-internal-format
+msgid "pointer type mismatch in conditional expression"
+msgstr ""
+
+#: c/c-typeck.cc:5697
+#, gcc-internal-format
+msgid "first expression has type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:5698
+#, gcc-internal-format
+msgid "second expression has type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:5709 c/c-typeck.cc:5722
+#, gcc-internal-format
+msgid "pointer/integer type mismatch in conditional expression"
+msgstr ""
+
+#: c/c-typeck.cc:5749
+#, gcc-internal-format
+msgid "type mismatch in conditional expression"
+msgstr ""
+
+#: c/c-typeck.cc:5864
+#, gcc-internal-format
+msgid "ignoring return value of %qD, declared with attribute %<nodiscard%>: %E"
+msgstr ""
+
+#: c/c-typeck.cc:5868
+#, gcc-internal-format
+msgid "ignoring return value of %qD, declared with attribute %<nodiscard%>"
+msgstr ""
+
+#: c/c-typeck.cc:5886
+#, gcc-internal-format
+msgid "ignoring return value of type %qT, declared with attribute %<nodiscard%>: %E"
+msgstr ""
+
+#: c/c-typeck.cc:5891
+#, gcc-internal-format
+msgid "ignoring return value of type %qT, declared with attribute %<nodiscard%>"
+msgstr ""
+
+#: c/c-typeck.cc:5900 cp/cvt.cc:1116 rust/backend/rust-tree.cc:640
+#, gcc-internal-format
+msgid "in call to %qD, declared here"
+msgstr ""
+
+#: c/c-typeck.cc:5949
+#, gcc-internal-format
+msgid "left-hand operand of comma expression has no effect"
+msgstr ""
+
+#: c/c-typeck.cc:5967 c/c-typeck.cc:11907
+#, gcc-internal-format
+msgid "right-hand operand of comma expression has no effect"
+msgstr ""
+
+#: c/c-typeck.cc:6038
+msgid "cast adds %q#v qualifier to function type"
+msgstr ""
+
+#: c/c-typeck.cc:6044
+msgid "cast discards %qv qualifier from pointer target type"
+msgstr ""
+
+#: c/c-typeck.cc:6079
+#, gcc-internal-format
+msgid "to be safe all intermediate pointers in cast from %qT to %qT must be %<const%> qualified"
+msgstr ""
+
+#: c/c-typeck.cc:6176
+#, gcc-internal-format
+msgid "cast specifies array type"
+msgstr ""
+
+#: c/c-typeck.cc:6182
+#, gcc-internal-format
+msgid "cast specifies function type"
+msgstr ""
+
+#: c/c-typeck.cc:6197
+#, gcc-internal-format
+msgid "ISO C forbids casting nonscalar to the same type"
+msgstr ""
+
+#: c/c-typeck.cc:6201
+#, gcc-internal-format
+msgid "useless cast to type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:6221
+#, gcc-internal-format
+msgid "ISO C forbids casts to union type"
+msgstr ""
+
+#: c/c-typeck.cc:6231
+#, gcc-internal-format
+msgid "cast to union type from type not present in union"
+msgstr ""
+
+#: c/c-typeck.cc:6266
+#, gcc-internal-format
+msgid "cast to %qs address space pointer from disjoint generic address space pointer"
+msgstr ""
+
+#: c/c-typeck.cc:6271
+#, gcc-internal-format
+msgid "cast to generic address space pointer from disjoint %qs address space pointer"
+msgstr ""
+
+#: c/c-typeck.cc:6276
+#, gcc-internal-format
+msgid "cast to %qs address space pointer from disjoint %qs address space pointer"
+msgstr ""
+
+#: c/c-typeck.cc:6309
+#, gcc-internal-format
+msgid "cast increases required alignment of target type"
+msgstr ""
+
+#: c/c-typeck.cc:6321
+#, gcc-internal-format
+msgid "cast from pointer to integer of different size"
+msgstr ""
+
+#: c/c-typeck.cc:6326
+#, gcc-internal-format
+msgid "cast from function call of type %qT to non-matching type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:6336 cp/typeck.cc:9292
+#, gcc-internal-format
+msgid "cast to pointer from integer of different size"
+msgstr ""
+
+#: c/c-typeck.cc:6350
+#, gcc-internal-format
+msgid "ISO C forbids conversion of function pointer to object pointer type"
+msgstr ""
+
+#: c/c-typeck.cc:6359
+#, gcc-internal-format
+msgid "ISO C forbids conversion of object pointer to function pointer type"
+msgstr ""
+
+#: c/c-typeck.cc:6369
+#, gcc-internal-format
+msgid "cast between incompatible function types from %qT to %qT"
+msgstr ""
+
+#: c/c-typeck.cc:6481
+#, gcc-internal-format
+msgid "defining a type in a cast is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.cc:6522
+#, gcc-internal-format
+msgid "assignment to expression with array type"
+msgstr ""
+
+#: c/c-typeck.cc:6648
+#, gcc-internal-format
+msgid "enum conversion in assignment is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.cc:6850 c/c-typeck.cc:6867 c/c-typeck.cc:6918
+#, gcc-internal-format
+msgid "(near initialization for %qs)"
+msgstr ""
+
+#: c/c-typeck.cc:6933
+#, gcc-internal-format
+msgid "array initialized from parenthesized string constant"
+msgstr ""
+
+#: c/c-typeck.cc:6976 c/c-typeck.cc:7217
+#, gcc-internal-format
+msgid "expected %qT but argument is of type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:7010
+#, gcc-internal-format
+msgid "%qD argument %d type is %qT where %qT is expected in a call to built-in function declared without prototype"
+msgstr ""
+
+#: c/c-typeck.cc:7013
+#, gcc-internal-format
+msgid "%qD argument %d promotes to %qT where %qT is expected in a call to built-in function declared without prototype"
+msgstr ""
+
+#: c/c-typeck.cc:7018
+#, gcc-internal-format
+msgid "built-in %qD declared here"
+msgstr ""
+
+#: c/c-typeck.cc:7212
+#, gcc-internal-format
+msgid "enum conversion when passing argument %d of %qE is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.cc:7221
+#, gcc-internal-format
+msgid "enum conversion from %qT to %qT in assignment is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.cc:7226
+#, gcc-internal-format
+msgid "enum conversion from %qT to %qT in initialization is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.cc:7231
+#, gcc-internal-format
+msgid "enum conversion from %qT to %qT in return is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.cc:7249
+#, gcc-internal-format
+msgid "implicit conversion from %qT to %qT"
+msgstr ""
+
+#: c/c-typeck.cc:7428 c/c-typeck.cc:7826
+msgid "passing argument %d of %qE makes %q#v qualified function pointer from unqualified"
+msgstr ""
+
+#: c/c-typeck.cc:7431 c/c-typeck.cc:7829
+msgid "assignment makes %q#v qualified function pointer from unqualified"
+msgstr ""
+
+#: c/c-typeck.cc:7434 c/c-typeck.cc:7831
+msgid "initialization makes %q#v qualified function pointer from unqualified"
+msgstr ""
+
+#: c/c-typeck.cc:7437 c/c-typeck.cc:7833
+msgid "return makes %q#v qualified function pointer from unqualified"
+msgstr ""
+
+#: c/c-typeck.cc:7445 c/c-typeck.cc:7717 c/c-typeck.cc:7760
+msgid "passing argument %d of %qE discards %qv qualifier from pointer target type"
+msgstr ""
+
+#: c/c-typeck.cc:7447 c/c-typeck.cc:7719 c/c-typeck.cc:7762
+msgid "assignment discards %qv qualifier from pointer target type"
+msgstr ""
+
+#: c/c-typeck.cc:7449 c/c-typeck.cc:7721 c/c-typeck.cc:7764
+msgid "initialization discards %qv qualifier from pointer target type"
+msgstr ""
+
+#: c/c-typeck.cc:7451 c/c-typeck.cc:7723 c/c-typeck.cc:7766
+msgid "return discards %qv qualifier from pointer target type"
+msgstr ""
+
+#: c/c-typeck.cc:7460
+#, gcc-internal-format
+msgid "ISO C prohibits argument conversion to union type"
+msgstr ""
+
+#: c/c-typeck.cc:7528
+#, gcc-internal-format
+msgid "request for implicit conversion from %qT to %qT not permitted in C++"
+msgstr ""
+
+#: c/c-typeck.cc:7555
+#, gcc-internal-format
+msgid "passing argument %d of %qE from pointer to non-enclosed address space"
+msgstr ""
+
+#: c/c-typeck.cc:7566
+#, gcc-internal-format
+msgid "assignment from pointer to non-enclosed address space"
+msgstr ""
+
+#: c/c-typeck.cc:7577
+#, gcc-internal-format
+msgid "initialization from pointer to non-enclosed address space"
+msgstr ""
+
+#: c/c-typeck.cc:7587
+#, gcc-internal-format
+msgid "return from pointer to non-enclosed address space"
+msgstr ""
+
+#: c/c-typeck.cc:7603
+#, gcc-internal-format
+msgid "expected %qT but pointer is of type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:7618
+#, gcc-internal-format
+msgid "argument %d of %qE might be a candidate for a format attribute"
+msgstr ""
+
+#: c/c-typeck.cc:7624
+#, gcc-internal-format
+msgid "assignment left-hand side might be a candidate for a format attribute"
+msgstr ""
+
+#: c/c-typeck.cc:7630
+#, gcc-internal-format
+msgid "initialization left-hand side might be a candidate for a format attribute"
+msgstr ""
+
+#: c/c-typeck.cc:7635 cp/typeck.cc:10455
+#, gcc-internal-format
+msgid "return type might be a candidate for a format attribute"
+msgstr ""
+
+#: c/c-typeck.cc:7659
+#, gcc-internal-format
+msgid "passing argument %d of %qE from incompatible scalar storage order"
+msgstr ""
+
+#: c/c-typeck.cc:7669
+#, gcc-internal-format
+msgid "assignment to %qT from pointer type %qT with incompatible scalar storage order"
+msgstr ""
+
+#: c/c-typeck.cc:7679
+#, gcc-internal-format
+msgid "initialization of %qT from pointer type %qT with incompatible scalar storage order"
+msgstr ""
+
+#: c/c-typeck.cc:7684
+#, gcc-internal-format
+msgid "returning %qT from pointer type with incompatible scalar storage order %qT"
+msgstr ""
+
+#: c/c-typeck.cc:7734
+#, gcc-internal-format
+msgid "ISO C forbids passing argument %d of %qE between function pointer and %<void *%>"
+msgstr ""
+
+#: c/c-typeck.cc:7737
+#, gcc-internal-format
+msgid "ISO C forbids assignment between function pointer and %<void *%>"
+msgstr ""
+
+#: c/c-typeck.cc:7739
+#, gcc-internal-format
+msgid "ISO C forbids initialization between function pointer and %<void *%>"
+msgstr ""
+
+#: c/c-typeck.cc:7741
+#, gcc-internal-format
+msgid "ISO C forbids return between function pointer and %<void *%>"
+msgstr ""
+
+#: c/c-typeck.cc:7771
+#, gcc-internal-format
+msgid "array with qualifier on the element is not qualified before C23"
+msgstr ""
+
+#: c/c-typeck.cc:7788
+#, gcc-internal-format
+msgid "pointer targets in passing argument %d of %qE differ in signedness"
+msgstr ""
+
+#: c/c-typeck.cc:7796
+#, gcc-internal-format
+msgid "pointer targets in assignment from %qT to %qT differ in signedness"
+msgstr ""
+
+#: c/c-typeck.cc:7802
+#, gcc-internal-format
+msgid "pointer targets in initialization of %qT from %qT differ in signedness"
+msgstr ""
+
+#: c/c-typeck.cc:7807
+#, gcc-internal-format
+msgid "pointer targets in returning %qT from a function with return type %qT differ in signedness"
+msgstr ""
+
+#: c/c-typeck.cc:7849
+#, gcc-internal-format
+msgid "passing argument %d of %qE from incompatible pointer type"
+msgstr ""
+
+#: c/c-typeck.cc:7858
+#, gcc-internal-format
+msgid "assignment to %qT from pointer to %qD with incompatible type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:7863
+#, gcc-internal-format
+msgid "assignment to %qT from incompatible pointer type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:7870
+#, gcc-internal-format
+msgid "initialization of %qT from pointer to %qD with incompatible type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:7875
+#, gcc-internal-format
+msgid "initialization of %qT from incompatible pointer type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:7882
+#, gcc-internal-format
+msgid "returning pointer to %qD of type %qT from a function with incompatible type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:7887
+#, gcc-internal-format
+msgid "returning %qT from a function with incompatible return type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:7929
+#, gcc-internal-format
+msgid "passing argument %d of %qE makes pointer from integer without a cast"
+msgstr ""
+
+#: c/c-typeck.cc:7936
+#, gcc-internal-format
+msgid "assignment to %qT from %qT makes pointer from integer without a cast"
+msgstr ""
+
+#: c/c-typeck.cc:7942
+#, gcc-internal-format
+msgid "initialization of %qT from %qT makes pointer from integer without a cast"
+msgstr ""
+
+#: c/c-typeck.cc:7947
+#, gcc-internal-format
+msgid "returning %qT from a function with return type %qT makes pointer from integer without a cast"
+msgstr ""
+
+#: c/c-typeck.cc:7968
+#, gcc-internal-format
+msgid "passing argument %d of %qE makes integer from pointer without a cast"
+msgstr ""
+
+#: c/c-typeck.cc:7975
+#, gcc-internal-format
+msgid "assignment to %qT from %qT makes integer from pointer without a cast"
+msgstr ""
+
+#: c/c-typeck.cc:7981
+#, gcc-internal-format
+msgid "initialization of %qT from %qT makes integer from pointer without a cast"
+msgstr ""
+
+#: c/c-typeck.cc:7985
+#, gcc-internal-format
+msgid "returning %qT from a function with return type %qT makes integer from pointer without a cast"
+msgstr ""
+
+#: c/c-typeck.cc:8017
+#, gcc-internal-format
+msgid "incompatible type for argument %d of %qE"
+msgstr ""
+
+#: c/c-typeck.cc:8028
+#, gcc-internal-format
+msgid "incompatible types when assigning to type %qT from type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:8039
+#, gcc-internal-format
+msgid "incompatible types when initializing type %qT using type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:8049
+#, gcc-internal-format
+msgid "incompatible types when returning type %qT but %qT was expected"
+msgstr ""
+
+#: c/c-typeck.cc:8129
+#, gcc-internal-format
+msgid "traditional C rejects automatic aggregate initialization"
+msgstr ""
+
+#: c/c-typeck.cc:8371
+#, gcc-internal-format
+msgid "%<constexpr%> pointer initializer is not null"
+msgstr ""
+
+#: c/c-typeck.cc:8379
+#, gcc-internal-format
+msgid "%<constexpr%> integer initializer is not an integer constant expression"
+msgstr ""
+
+#: c/c-typeck.cc:8382 c/c-typeck.cc:8444 c/c-typeck.cc:8581
+#, gcc-internal-format
+msgid "%<constexpr%> initializer not representable in type of object"
+msgstr ""
+
+#: c/c-typeck.cc:8392
+#, gcc-internal-format
+msgid "%<constexpr%> initializer is not an arithmetic constant expression"
+msgstr ""
+
+#: c/c-typeck.cc:8409
+#, gcc-internal-format
+msgid "%<constexpr%> initializer for a real type is of complex type"
+msgstr ""
+
+#: c/c-typeck.cc:8418
+#, gcc-internal-format
+msgid "%<constexpr%> initializer for a binary floating-point type is of decimal type"
+msgstr ""
+
+#: c/c-typeck.cc:8546 c/c-typeck.cc:9480 cp/typeck2.cc:1224
+#, gcc-internal-format
+msgid "initialization of a flexible array member"
+msgstr ""
+
+#: c/c-typeck.cc:8562 cp/typeck2.cc:1241
+#, gcc-internal-format
+msgid "cannot initialize array of %qT from a string literal with type array of %qT"
+msgstr ""
+
+#: c/c-typeck.cc:8621
+#, gcc-internal-format
+msgid "array of inappropriate type initialized from string constant"
+msgstr ""
+
+#: c/c-typeck.cc:8689 cp/typeck.cc:2530
+#, gcc-internal-format
+msgid "invalid use of non-lvalue array"
+msgstr ""
+
+#: c/c-typeck.cc:8703 c/c-typeck.cc:8829 c/c-typeck.cc:9565
+#, gcc-internal-format
+msgid "invalid initializer"
+msgstr ""
+
+#: c/c-typeck.cc:8715 c/c-typeck.cc:8739 c/c-typeck.cc:8742 c/c-typeck.cc:8750
+#: c/c-typeck.cc:8798 c/c-typeck.cc:10344 c/c-typeck.cc:10423
+#, gcc-internal-format
+msgid "initializer element is not constant"
+msgstr ""
+
+#: c/c-typeck.cc:8724
+#, gcc-internal-format
+msgid "array initialized from non-constant array expression"
+msgstr ""
+
+#: c/c-typeck.cc:8755 c/c-typeck.cc:8811 c/c-typeck.cc:10433
+#, gcc-internal-format
+msgid "initializer element is not a constant expression"
+msgstr ""
+
+#: c/c-typeck.cc:8805 c/c-typeck.cc:10428
+#, gcc-internal-format
+msgid "initializer element is not computable at load time"
+msgstr ""
+
+#: c/c-typeck.cc:9107 cp/decl.cc:7700
+#, gcc-internal-format
+msgid "opaque vector types cannot be initialized"
+msgstr ""
+
+#: c/c-typeck.cc:9327
+#, gcc-internal-format
+msgid "extra brace group at end of initializer"
+msgstr ""
+
+#: c/c-typeck.cc:9410
+#, gcc-internal-format
+msgid "braces around scalar initializer"
+msgstr ""
+
+#: c/c-typeck.cc:9477 c/c-typeck.cc:10966 cp/typeck2.cc:1251 cp/typeck2.cc:1586
+#, gcc-internal-format
+msgid "initialization of flexible array member in a nested context"
+msgstr ""
+
+#: c/c-typeck.cc:9514
+#, gcc-internal-format
+msgid "missing braces around initializer"
+msgstr ""
+
+#: c/c-typeck.cc:9537
+#, gcc-internal-format
+msgid "missing initializer for field %qD of %qT"
+msgstr ""
+
+#: c/c-typeck.cc:9577
+#, gcc-internal-format
+msgid "extra elements in scalar initializer"
+msgstr ""
+
+#: c/c-typeck.cc:9696 c/c-typeck.cc:9778
+#, gcc-internal-format
+msgid "array index in non-array initializer"
+msgstr ""
+
+#: c/c-typeck.cc:9701 c/c-typeck.cc:9840
+#, gcc-internal-format
+msgid "field name not in record or union initializer"
+msgstr ""
+
+#: c/c-typeck.cc:9751
+#, gcc-internal-format
+msgid "array index in initializer not of integer type"
+msgstr ""
+
+#: c/c-typeck.cc:9760 c/c-typeck.cc:9769
+#, gcc-internal-format
+msgid "array index in initializer is not an integer constant expression"
+msgstr ""
+
+#: c/c-typeck.cc:9774 c/c-typeck.cc:9776
+#, gcc-internal-format
+msgid "nonconstant array index in initializer"
+msgstr ""
+
+#: c/c-typeck.cc:9780 c/c-typeck.cc:9783
+#, gcc-internal-format
+msgid "array index in initializer exceeds array bounds"
+msgstr ""
+
+#: c/c-typeck.cc:9802
+#, gcc-internal-format
+msgid "empty index range in initializer"
+msgstr ""
+
+#: c/c-typeck.cc:9811
+#, gcc-internal-format
+msgid "array index range in initializer exceeds array bounds"
+msgstr ""
+
+#: c/c-typeck.cc:9913 c/c-typeck.cc:9943 c/c-typeck.cc:10521
+#, gcc-internal-format
+msgid "initialized field with side-effects overwritten"
+msgstr ""
+
+#: c/c-typeck.cc:9917 c/c-typeck.cc:9947 c/c-typeck.cc:10524
+#, gcc-internal-format
+msgid "initialized field overwritten"
+msgstr ""
+
+#: c/c-typeck.cc:10455
+#, gcc-internal-format
+msgid "enum conversion in initialization is invalid in C++"
+msgstr ""
+
+#: c/c-typeck.cc:10836
+#, gcc-internal-format
+msgid "excess elements in %qT initializer"
+msgstr ""
+
+#: c/c-typeck.cc:10848 c/c-typeck.cc:10925
+#, gcc-internal-format
+msgid "excess elements in struct initializer"
+msgstr ""
+
+#: c/c-typeck.cc:10869
+#, gcc-internal-format
+msgid "positional initialization of field in %<struct%> declared with %<designated_init%> attribute"
+msgstr ""
+
+#: c/c-typeck.cc:10940 cp/typeck2.cc:1228
+#, gcc-internal-format
+msgid "non-static initialization of a flexible array member"
+msgstr ""
+
+#: c/c-typeck.cc:11035
+#, gcc-internal-format
+msgid "excess elements in union initializer"
+msgstr ""
+
+#: c/c-typeck.cc:11057
+#, gcc-internal-format
+msgid "traditional C rejects initialization of unions"
+msgstr ""
+
+#: c/c-typeck.cc:11119
+#, gcc-internal-format
+msgid "excess elements in array initializer"
+msgstr ""
+
+#: c/c-typeck.cc:11153
+#, gcc-internal-format
+msgid "excess elements in vector initializer"
+msgstr ""
+
+#: c/c-typeck.cc:11185
+#, gcc-internal-format
+msgid "excess elements in scalar initializer"
+msgstr ""
+
+#: c/c-typeck.cc:11428
+#, gcc-internal-format
+msgid "ISO C forbids %<goto *expr;%>"
+msgstr ""
+
+#: c/c-typeck.cc:11434
+#, gcc-internal-format
+msgid "computed goto must be pointer type"
+msgstr ""
+
+#: c/c-typeck.cc:11463 c/gimple-parser.cc:2562 cp/typeck.cc:11056
+#, gcc-internal-format
+msgid "function declared %<noreturn%> has a %<return%> statement"
+msgstr ""
+
+#: c/c-typeck.cc:11490
+#, gcc-internal-format
+msgid "%<return%> with no value, in function returning non-void"
+msgstr ""
+
+#: c/c-typeck.cc:11503 c/gimple-parser.cc:2572
+#, gcc-internal-format
+msgid "%<return%> with a value, in function returning void"
+msgstr ""
+
+#: c/c-typeck.cc:11506
+#, gcc-internal-format
+msgid "ISO C forbids %<return%> with expression, in function returning void"
+msgstr ""
+
+#: c/c-typeck.cc:11583
+#, gcc-internal-format
+msgid "function returns address of label"
+msgstr ""
+
+#: c/c-typeck.cc:11674 cp/semantics.cc:1706
+#, gcc-internal-format
+msgid "switch quantity not an integer"
+msgstr ""
+
+#: c/c-typeck.cc:11699
+#, gcc-internal-format
+msgid "%<long%> switch expression not converted to %<int%> in ISO C"
+msgstr ""
+
+#: c/c-typeck.cc:11737 c/c-typeck.cc:11745
+#, gcc-internal-format
+msgid "case label is not an integer constant expression"
+msgstr ""
+
+#: c/c-typeck.cc:11751 cp/parser.cc:13099
+#, gcc-internal-format
+msgid "case label not within a switch statement"
+msgstr ""
+
+#: c/c-typeck.cc:11753
+#, gcc-internal-format
+msgid "%<default%> label not within a switch statement"
+msgstr ""
+
+#: c/c-typeck.cc:11829 cp/parser.cc:14819
+#, gcc-internal-format
+msgid "break statement not within loop or switch"
+msgstr ""
+
+#: c/c-typeck.cc:11832 c/c-typeck.cc:11852 cp/decl.cc:4061 cp/parser.cc:14829
+#: cp/parser.cc:14850
+#, gcc-internal-format
+msgid "invalid exit from OpenMP structured block"
+msgstr ""
+
+#: c/c-typeck.cc:11835 cp/parser.cc:14832
+#, gcc-internal-format
+msgid "break statement used with OpenMP for loop"
+msgstr ""
+
+#: c/c-typeck.cc:11849 cp/parser.cc:14842
+#, gcc-internal-format
+msgid "continue statement not within a loop"
+msgstr ""
+
+#: c/c-typeck.cc:11889 cp/cp-gimplify.cc:272
+#, gcc-internal-format
+msgid "statement with no effect"
+msgstr ""
+
+#: c/c-typeck.cc:11933
+#, gcc-internal-format
+msgid "expression statement has incomplete type"
+msgstr ""
+
+#: c/c-typeck.cc:12224
+#, gcc-internal-format
+msgid "the comparison will always evaluate as %<false%> for the pointer operand in %qE must not be NULL"
+msgstr ""
+
+#: c/c-typeck.cc:12229
+#, gcc-internal-format
+msgid "the comparison will always evaluate as %<true%> for the pointer operand in %qE must not be NULL"
+msgstr ""
+
+#: c/c-typeck.cc:12247 c/c-typeck.cc:12285
+#, gcc-internal-format
+msgid "the comparison will always evaluate as %<false%> for the address of %qE will never be NULL"
+msgstr ""
+
+#: c/c-typeck.cc:12252 c/c-typeck.cc:12290
+#, gcc-internal-format
+msgid "the comparison will always evaluate as %<true%> for the address of %qE will never be NULL"
+msgstr ""
+
+#: c/c-typeck.cc:12882 c/c-typeck.cc:13046 cp/typeck.cc:6083
+#, gcc-internal-format
+msgid "comparing vectors with different element types"
+msgstr ""
+
+#: c/c-typeck.cc:12890 c/c-typeck.cc:13054 cp/typeck.cc:6096
+#, gcc-internal-format
+msgid "comparing vectors with different number of elements"
+msgstr ""
+
+#: c/c-typeck.cc:12905 c/c-typeck.cc:13069 cp/typeck.cc:6114
+#, gcc-internal-format
+msgid "comparison between types %qT and %qT"
+msgstr ""
+
+#: c/c-typeck.cc:12915 c/c-typeck.cc:13079 cp/typeck.cc:6131
+#, gcc-internal-format
+msgid "could not find an integer type of the same size as %qT"
+msgstr ""
+
+#: c/c-typeck.cc:12929 cp/typeck.cc:5767
+#, gcc-internal-format
+msgid "comparing floating-point with %<==%> or %<!=%> is unsafe"
+msgstr ""
+
+#: c/c-typeck.cc:12968 c/c-typeck.cc:13120
+#, gcc-internal-format
+msgid "comparison of pointers to disjoint address spaces"
+msgstr ""
+
+#: c/c-typeck.cc:12975 c/c-typeck.cc:12981
+#, gcc-internal-format
+msgid "ISO C forbids comparison of %<void *%> with function pointer"
+msgstr ""
+
+#: c/c-typeck.cc:12988 c/c-typeck.cc:13130
+#, gcc-internal-format
+msgid "comparison of distinct pointer types lacks a cast"
+msgstr ""
+
+#: c/c-typeck.cc:13001 c/c-typeck.cc:13007 c/c-typeck.cc:13157
+#: c/c-typeck.cc:13163
+#, gcc-internal-format
+msgid "comparison between pointer and integer"
+msgstr ""
+
+#: c/c-typeck.cc:13108
+#, gcc-internal-format
+msgid "comparison of complete and incomplete pointers"
+msgstr ""
+
+#: c/c-typeck.cc:13110
+#, gcc-internal-format
+msgid "ISO C forbids ordered comparisons of pointers to functions"
+msgstr ""
+
+#: c/c-typeck.cc:13115
+#, gcc-internal-format
+msgid "ordered comparison of pointer with null pointer"
+msgstr ""
+
+#: c/c-typeck.cc:13138 c/c-typeck.cc:13141 c/c-typeck.cc:13148
+#: c/c-typeck.cc:13151
+#, gcc-internal-format
+msgid "ordered comparison of pointer with integer zero"
+msgstr ""
+
+#: c/c-typeck.cc:13228
+#, gcc-internal-format
+msgid "implicit conversion from %qT to %qT to match other operand of binary expression"
+msgstr ""
+
+#: c/c-typeck.cc:13546
+#, gcc-internal-format
+msgid "used array that cannot be converted to pointer where scalar is required"
+msgstr ""
+
+#: c/c-typeck.cc:13550
+#, gcc-internal-format
+msgid "used struct type value where scalar is required"
+msgstr ""
+
+#: c/c-typeck.cc:13554
+#, gcc-internal-format
+msgid "used union type value where scalar is required"
+msgstr ""
+
+#: c/c-typeck.cc:13570
+#, gcc-internal-format
+msgid "used vector type where scalar is required"
+msgstr ""
+
+#: c/c-typeck.cc:13773 cp/semantics.cc:11391
+#, gcc-internal-format
+msgid "%<#pragma omp cancel%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
+msgstr ""
+
+#: c/c-typeck.cc:13784 c/c-typeck.cc:13794 cp/semantics.cc:11402
+#: cp/semantics.cc:11412
+#, gcc-internal-format
+msgid "expected %<cancel%> %<if%> clause modifier"
+msgstr ""
+
+#: c/c-typeck.cc:13829 cp/semantics.cc:11447
+#, gcc-internal-format
+msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<for%>, %<sections%> or %<taskgroup%> clauses"
+msgstr ""
+
+#: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
+#, gcc-internal-format
+msgid "%qD is not a variable in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
+#: cp/semantics.cc:8564
+#, gcc-internal-format
+msgid "%qE is not a variable in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:13909
+#, gcc-internal-format
+msgid "%<_Atomic%> %qD in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:13919 c/c-typeck.cc:15715 c/c-typeck.cc:15869
+#: cp/semantics.cc:5565 cp/semantics.cc:8571 cp/semantics.cc:8759
+#, gcc-internal-format
+msgid "%qD is threadprivate variable in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:13956 cp/semantics.cc:5599
+#, gcc-internal-format
+msgid "low bound %qE of array section does not have integral type"
+msgstr ""
+
+#: c/c-typeck.cc:13963 cp/semantics.cc:5606
+#, gcc-internal-format
+msgid "length %qE of array section does not have integral type"
+msgstr ""
+
+#: c/c-typeck.cc:13986 cp/semantics.cc:5639
+#, gcc-internal-format
+msgid "expected single pointer in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14004 c/c-typeck.cc:14071 c/c-typeck.cc:14364
+#: cp/semantics.cc:5657 cp/semantics.cc:5724
+#, gcc-internal-format
+msgid "zero length array section in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14023 cp/semantics.cc:5676
+#, gcc-internal-format
+msgid "for unknown bound array type length expression must be specified"
+msgstr ""
+
+#: c/c-typeck.cc:14031 cp/semantics.cc:5684
+#, gcc-internal-format
+msgid "negative low bound in array section in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14040 c/c-typeck.cc:14164 cp/semantics.cc:5693
+#: cp/semantics.cc:5817
+#, gcc-internal-format
+msgid "negative length in array section in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14057 cp/semantics.cc:5710
+#, gcc-internal-format
+msgid "low bound %qE above array section size in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14100 cp/semantics.cc:5753
+#, gcc-internal-format
+msgid "length %qE above array section size in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14115 cp/semantics.cc:5768
+#, gcc-internal-format
+msgid "high bound %qE above array section size in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14152 cp/semantics.cc:5805
+#, gcc-internal-format
+msgid "for array function parameter length expression must be specified"
+msgstr ""
+
+#: c/c-typeck.cc:14156 cp/semantics.cc:5809
+#, gcc-internal-format
+msgid "for pointer type length expression must be specified"
+msgstr ""
+
+#: c/c-typeck.cc:14184 c/c-typeck.cc:14303 cp/semantics.cc:5836
+#: cp/semantics.cc:5972
+#, gcc-internal-format
+msgid "array section is not contiguous in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14194 cp/semantics.cc:5846
+#, gcc-internal-format
+msgid "%qE does not have pointer or array type"
+msgstr ""
+
+#: c/c-typeck.cc:14570 cp/semantics.cc:6908
+#, gcc-internal-format
+msgid "iterator %qD has neither integral nor pointer type"
+msgstr ""
+
+#: c/c-typeck.cc:14577
+#, gcc-internal-format
+msgid "iterator %qD has %<_Atomic%> qualified type"
+msgstr ""
+
+#: c/c-typeck.cc:14583 cp/semantics.cc:6915
+#, gcc-internal-format
+msgid "iterator %qD has const qualified type"
+msgstr ""
+
+#: c/c-typeck.cc:14596 cp/semantics.cc:6931
+#, gcc-internal-format
+msgid "iterator step with non-integral type"
+msgstr ""
+
+#: c/c-typeck.cc:14616 cp/semantics.cc:6967
+#, gcc-internal-format
+msgid "iterator %qD has zero step"
+msgstr ""
+
+#: c/c-typeck.cc:14643
+#, gcc-internal-format
+msgid "type of iterator %qD refers to outer iterator %qD"
+msgstr ""
+
+#: c/c-typeck.cc:14650 cp/semantics.cc:7001
+#, gcc-internal-format
+msgid "begin expression refers to outer iterator %qD"
+msgstr ""
+
+#: c/c-typeck.cc:14656 cp/semantics.cc:7007
+#, gcc-internal-format
+msgid "end expression refers to outer iterator %qD"
+msgstr ""
+
+#: c/c-typeck.cc:14662 cp/semantics.cc:7013
+#, gcc-internal-format
+msgid "step expression refers to outer iterator %qD"
+msgstr ""
+
+#: c/c-typeck.cc:14699 cp/semantics.cc:7061
+#, gcc-internal-format
+msgid "expected pointer in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14794 cp/semantics.cc:7150
+#, gcc-internal-format
+msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct"
+msgstr ""
+
+#: c/c-typeck.cc:14816 cp/semantics.cc:7170
+#, gcc-internal-format
+msgid "%<inscan%> %<reduction%> clause with array section"
+msgstr ""
+
+#: c/c-typeck.cc:14842 c/c-typeck.cc:14852
+#, gcc-internal-format
+msgid "%qD in %<reduction%> clause is a zero size array"
+msgstr ""
+
+#: c/c-typeck.cc:14872
+#, gcc-internal-format
+msgid "%<_Atomic%> %qE in %<reduction%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:14884
+#, gcc-internal-format
+msgid "zero sized type %qT in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14892
+#, gcc-internal-format
+msgid "variable sized type %qT in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:14936
+#, gcc-internal-format
+msgid "%qE has invalid type for %<reduction(%s)%>"
+msgstr ""
+
+#: c/c-typeck.cc:14945 cp/semantics.cc:6800
+#, gcc-internal-format
+msgid "user defined reduction not found for %qE"
+msgstr ""
+
+#: c/c-typeck.cc:15033
+#, gcc-internal-format
+msgid "variable length element type in array %<reduction%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:15051 c/c-typeck.cc:15963 cp/semantics.cc:9296
+#, gcc-internal-format
+msgid "%<nowait%> clause must not be used together with %<copyprivate%>"
+msgstr ""
+
+#: c/c-typeck.cc:15063 cp/semantics.cc:9364
+#, gcc-internal-format
+msgid "%qE must be %<threadprivate%> for %<copyin%>"
+msgstr ""
+
+#: c/c-typeck.cc:15078 cp/semantics.cc:7213
+#, gcc-internal-format
+msgid "modifier should not be specified in %<linear%> clause on %<simd%> or %<for%> constructs when not using OpenMP 5.2 modifiers"
+msgstr ""
+
+#: c/c-typeck.cc:15087
+#, gcc-internal-format
+msgid "linear clause applied to non-integral non-pointer variable with type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:15095
+#, gcc-internal-format
+msgid "%<_Atomic%> %qD in %<linear%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:15114 cp/semantics.cc:7297
+#, gcc-internal-format
+msgid "%<linear%> clause step %qE is neither constant nor a parameter"
+msgstr ""
+
+#: c/c-typeck.cc:15144 c/c-typeck.cc:15863 c/c-typeck.cc:16110
+#: cp/semantics.cc:7384 cp/semantics.cc:8753 cp/semantics.cc:9104
+#, gcc-internal-format
+msgid "%qE is not a variable in clause %qs"
+msgstr ""
+
+#: c/c-typeck.cc:15161 cp/semantics.cc:7402
+#, gcc-internal-format
+msgid "%qD appears more than once in data-sharing clauses"
+msgstr ""
+
+#: c/c-typeck.cc:15172 cp/semantics.cc:7413
+#, gcc-internal-format
+msgid "%qD appears more than once in reduction clauses"
+msgstr ""
+
+#: c/c-typeck.cc:15186 c/c-typeck.cc:15256 c/c-typeck.cc:15291
+#, gcc-internal-format
+msgid "%qE appears more than once in data clauses"
+msgstr ""
+
+#: c/c-typeck.cc:15196 c/c-typeck.cc:15264 c/c-typeck.cc:15611
+#: c/c-typeck.cc:15763 c/c-typeck.cc:15771 c/c-typeck.cc:15787
+#: c/c-typeck.cc:15796 c/c-typeck.cc:15804 cp/semantics.cc:7427
+#: cp/semantics.cc:7437 cp/semantics.cc:7530 cp/semantics.cc:7538
+#: cp/semantics.cc:7585 cp/semantics.cc:8442 cp/semantics.cc:8631
+#: cp/semantics.cc:8639 cp/semantics.cc:8659 cp/semantics.cc:8668
+#: cp/semantics.cc:8676
+#, gcc-internal-format
+msgid "%qD appears more than once in data clauses"
+msgstr ""
+
+#: c/c-typeck.cc:15199 c/c-typeck.cc:15270 c/c-typeck.cc:15807
+#: cp/semantics.cc:7440 cp/semantics.cc:7544 cp/semantics.cc:8679
+#, gcc-internal-format
+msgid "%qD appears both in data and map clauses"
+msgstr ""
+
+#: c/c-typeck.cc:15244 cp/semantics.cc:7517
+#, gcc-internal-format
+msgid "%qE is not a variable in clause %<firstprivate%>"
+msgstr ""
+
+#: c/c-typeck.cc:15284 cp/semantics.cc:7577
+#, gcc-internal-format
+msgid "%qE is not a variable in clause %<lastprivate%>"
+msgstr ""
+
+#: c/c-typeck.cc:15303 cp/semantics.cc:7975
+#, gcc-internal-format
+msgid "%qE is not a variable in %<aligned%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:15310
+#, gcc-internal-format
+msgid "%qE in %<aligned%> clause is neither a pointer nor an array"
+msgstr ""
+
+#: c/c-typeck.cc:15317
+#, gcc-internal-format
+msgid "%<_Atomic%> %qD in %<aligned%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:15324
+#, gcc-internal-format
+msgid "%qE appears more than once in %<aligned%> clauses"
+msgstr ""
+
+#: c/c-typeck.cc:15337 cp/semantics.cc:8046
+#, gcc-internal-format
+msgid "%qE is not a variable in %<nontemporal%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:15343
+#, gcc-internal-format
+msgid "%qE appears more than once in %<nontemporal%> clauses"
+msgstr ""
+
+#: c/c-typeck.cc:15356 cp/semantics.cc:8085
+#, gcc-internal-format
+msgid "%qE is not a variable in %<allocate%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:15362
+#, gcc-internal-format
+msgid "%qE appears more than once in %<allocate%> clauses"
+msgstr ""
+
+#: c/c-typeck.cc:15432 cp/semantics.cc:8211
+#, gcc-internal-format
+msgid "%<depend%> clause with %<depobj%> dependence type on array section"
+msgstr ""
+
+#: c/c-typeck.cc:15447 cp/semantics.cc:8226
+#, gcc-internal-format
+msgid "%<omp_all_memory%> used with %<depend%> kind other than %<out%> or %<inout%>"
+msgstr ""
+
+#: c/c-typeck.cc:15455 cp/semantics.cc:8244
+#, gcc-internal-format
+msgid "%qE is not lvalue expression nor array section in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:15476 cp/semantics.cc:8266
+#, gcc-internal-format
+msgid "%qE does not have %<omp_depend_t%> type in %<depend%> clause with %<depobj%> dependence type"
+msgstr ""
+
+#: c/c-typeck.cc:15486 cp/semantics.cc:8278
+#, gcc-internal-format
+msgid "%qE should not have %<omp_depend_t%> type in %<depend%> clause with dependence type other than %<depobj%>"
+msgstr ""
+
+#: c/c-typeck.cc:15547 cp/semantics.cc:8377
+#, gcc-internal-format
+msgid "array section does not have mappable type in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
+#: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
+#, gcc-internal-format
+msgid "unsupported map expression %qE"
+msgstr ""
+
+#: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
+#: cp/semantics.cc:8656
+#, gcc-internal-format
+msgid "%qD appears more than once in motion clauses"
+msgstr ""
+
+#: c/c-typeck.cc:15615 c/c-typeck.cc:15790 cp/semantics.cc:8446
+#: cp/semantics.cc:8662
+#, gcc-internal-format
+msgid "%qD appears more than once in map clauses"
+msgstr ""
+
+#: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
+#: cp/semantics.cc:8766
+#, gcc-internal-format
+msgid "%qD does not have a mappable type in %qs clause"
+msgstr ""
+
+#: c/c-typeck.cc:15859 cp/semantics.cc:8748
+#, gcc-internal-format
+msgid "%qE is neither a variable nor a function name in clause %qs"
+msgstr ""
+
+#: c/c-typeck.cc:15885 cp/semantics.cc:8778
+#, gcc-internal-format
+msgid "%qE appears more than once on the same %<declare target%> directive"
+msgstr ""
+
+#: c/c-typeck.cc:15899 cp/semantics.cc:8794
+#, gcc-internal-format
+msgid "%qD is not an argument in %<uniform%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:15902 cp/semantics.cc:8797
+#, gcc-internal-format
+msgid "%qE is not an argument in %<uniform%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:15921
+#, gcc-internal-format
+msgid "%qs variable is not a pointer"
+msgstr ""
+
+#: c/c-typeck.cc:15928
+#, gcc-internal-format
+msgid "%qs variable is neither a pointer nor an array"
+msgstr ""
+
+#: c/c-typeck.cc:15976 c/c-typeck.cc:16071 cp/semantics.cc:9258
+#, gcc-internal-format
+msgid "%<order%> clause must not be used together with %<ordered%>"
+msgstr ""
+
+#: c/c-typeck.cc:15996 cp/semantics.cc:8318
+#, gcc-internal-format
+msgid "too many %qs clauses on a task construct"
+msgstr ""
+
+#: c/c-typeck.cc:16093 cp/semantics.cc:9072
+#, gcc-internal-format
+msgid "%<inbranch%> clause is incompatible with %<notinbranch%>"
+msgstr ""
+
+#: c/c-typeck.cc:16160 cp/semantics.cc:9435
+#, gcc-internal-format
+msgid "%qE is predetermined %qs for %qs"
+msgstr ""
+
+#: c/c-typeck.cc:16170
+#, gcc-internal-format
+msgid "%<const%> qualified %qE may appear only in %<shared%> or %<firstprivate%> clauses"
+msgstr ""
+
+#: c/c-typeck.cc:16201 cp/semantics.cc:9210
+#, gcc-internal-format
+msgid "%<simdlen%> clause value is bigger than %<safelen%> clause value"
+msgstr ""
+
+#: c/c-typeck.cc:16213 cp/semantics.cc:9223
+#, gcc-internal-format
+msgid "%<nonmonotonic%> schedule modifier specified together with %<ordered%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:16224 c/c-typeck.cc:16232 cp/semantics.cc:9232
+#: cp/semantics.cc:9250
+#, gcc-internal-format
+msgid "%qs clause specified together with %<inscan%> %<reduction%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:16280 cp/semantics.cc:9190
+#, gcc-internal-format
+msgid "%<linear%> clause step is a parameter %qD not specified in %<uniform%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:16331 cp/semantics.cc:9240
+#, gcc-internal-format
+msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:16341 cp/semantics.cc:9269
+#, gcc-internal-format
+msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
+msgstr ""
+
+#: c/c-typeck.cc:16359 cp/semantics.cc:9460
+#, gcc-internal-format
+msgid "the event handle of a %<detach%> clause should not be in a data-sharing clause"
+msgstr ""
+
+#: c/c-typeck.cc:16534
+#, gcc-internal-format
+msgid "cannot use %<va_arg%> with reverse storage order"
+msgstr ""
+
+#: c/c-typeck.cc:16539
+#, gcc-internal-format
+msgid "second argument to %<va_arg%> is of incomplete type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:16545
+#, gcc-internal-format
+msgid "second argument to %<va_arg%> is a function type %qT"
+msgstr ""
+
+#: c/c-typeck.cc:16551
+#, gcc-internal-format
+msgid "C++ requires promoted type, not enum type, in %<va_arg%>"
+msgstr ""
+
+#: c/gimple-parser.cc:166
+#, gcc-internal-format
+msgid "expected frequency quality"
+msgstr ""
+
+#: c/gimple-parser.cc:175
+#, gcc-internal-format
+msgid "unknown profile quality"
+msgstr ""
+
+#: c/gimple-parser.cc:187
+#, gcc-internal-format
+msgid "expected frequency value"
+msgstr ""
+
+#: c/gimple-parser.cc:331
+#, gcc-internal-format
+msgid "edge not found"
+msgstr ""
+
+#: c/gimple-parser.cc:347
+#, gcc-internal-format
+msgid "SSA name %qE with version %d has no definition"
+msgstr ""
+
+#: c/gimple-parser.cc:497 c/gimple-parser.cc:503
+#, gcc-internal-format
+msgid "expected block index"
+msgstr ""
+
+#: c/gimple-parser.cc:511
+#, gcc-internal-format
+msgid "invalid block index"
+msgstr ""
+
+#: c/gimple-parser.cc:522
+#, gcc-internal-format
+msgid "expected block specifier"
+msgstr ""
+
+#: c/gimple-parser.cc:540
+#, gcc-internal-format
+msgid "expected loop number"
+msgstr ""
+
+#: c/gimple-parser.cc:558
+#, gcc-internal-format
+msgid "unknown block specifier"
+msgstr ""
+
+#: c/gimple-parser.cc:571 c/gimple-parser.cc:2073
+#, gcc-internal-format
+msgid "expected count value"
+msgstr ""
+
+#: c/gimple-parser.cc:594 c/gimple-parser.cc:681
+#, gcc-internal-format
+msgid "stmts without block"
+msgstr ""
+
+#: c/gimple-parser.cc:631
+#, gcc-internal-format
+msgid "duplicate loop header"
+msgstr ""
+
+#: c/gimple-parser.cc:838
+#, gcc-internal-format
+msgid "invalid source block specification"
+msgstr ""
+
+#: c/gimple-parser.cc:905
+#, gcc-internal-format
+msgid "unexpected RHS for assignment"
+msgstr ""
+
+#: c/gimple-parser.cc:1005
+#, gcc-internal-format
+msgid "%<&&%> not valid in GIMPLE"
+msgstr ""
+
+#: c/gimple-parser.cc:1008
+#, gcc-internal-format
+msgid "%<||%> not valid in GIMPLE"
+msgstr ""
+
+#: c/gimple-parser.cc:1162
+#, gcc-internal-format
+msgid "expected pointer as argument of unary %<*%>"
+msgstr ""
+
+#: c/gimple-parser.cc:1188
+#, gcc-internal-format
+msgid "%<!%> not valid in GIMPLE"
+msgstr ""
+
+#: c/gimple-parser.cc:1247 c/gimple-parser.cc:1633
+#, gcc-internal-format
+msgid "expected constant offset"
+msgstr ""
+
+#: c/gimple-parser.cc:1308
+#, gcc-internal-format
+msgid "SSA name undeclared"
+msgstr ""
+
+#: c/gimple-parser.cc:1330
+#, gcc-internal-format
+msgid "base variable or SSA name undeclared"
+msgstr ""
+
+#: c/gimple-parser.cc:1337
+#, gcc-internal-format
+msgid "invalid base %qE for SSA name"
+msgstr ""
+
+#: c/gimple-parser.cc:1365
+#, gcc-internal-format
+msgid "expecting internal function name"
+msgstr ""
+
+#: c/gimple-parser.cc:1378
+#, gcc-internal-format
+msgid "unknown internal function %qE"
+msgstr ""
+
+#: c/gimple-parser.cc:1520
+#, gcc-internal-format
+msgid "invalid type of %<__MEM%> operand"
+msgstr ""
+
+#: c/gimple-parser.cc:1563
+#, gcc-internal-format
+msgid "expected constant offset for %<__MEM%> operand"
+msgstr ""
+
+#: c/gimple-parser.cc:1574
+#, gcc-internal-format
+msgid "expected constant step for %<__MEM%> operand"
+msgstr ""
+
+#: c/gimple-parser.cc:1627
+#, gcc-internal-format
+msgid "expected constant size"
+msgstr ""
+
+#: c/gimple-parser.cc:1665 c/gimple-parser.cc:1695 c/gimple-parser.cc:1735
+#: c/gimple-parser.cc:1743 c/gimple-parser.cc:1752
+#, gcc-internal-format
+msgid "invalid _Literal"
+msgstr ""
+
+#: c/gimple-parser.cc:1674
+#, gcc-internal-format
+msgid "invalid type for _Literal with constructor"
+msgstr ""
+
+#: c/gimple-parser.cc:1787
+#, gcc-internal-format
+msgid "anonymous SSA name cannot have default definition"
+msgstr ""
+
+#: c/gimple-parser.cc:1871
+#, gcc-internal-format
+msgid "invalid call to non-function"
+msgstr ""
+
+#: c/gimple-parser.cc:1927
+#, gcc-internal-format
+msgid "dereference of non-pointer"
+msgstr ""
+
+#: c/gimple-parser.cc:2054
+#, gcc-internal-format
+msgid "expected pass name"
+msgstr ""
+
+#: c/gimple-parser.cc:2093
+#, gcc-internal-format
+msgid "invalid operation"
+msgstr "არასწორი ოპერაცია"
+
+#: c/gimple-parser.cc:2258
+#, gcc-internal-format
+msgid "comparison required"
+msgstr ""
+
+#: c/gimple-parser.cc:2310
+#, gcc-internal-format
+msgid "%<catch%> is not supported"
+msgstr ""
+
+#: c/gimple-parser.cc:2312
+#, gcc-internal-format
+msgid "expected %<finally%> or %<catch%>"
+msgstr ""
+
+#: c/gimple-parser.cc:2356 c/gimple-parser.cc:2393
+#, gcc-internal-format
+msgid "expected goto expression"
+msgstr ""
+
+#: c/gimple-parser.cc:2364
+#, gcc-internal-format
+msgid "expected else statement"
+msgstr ""
+
+#: c/gimple-parser.cc:2507
+#, gcc-internal-format
+msgid "expected case label"
+msgstr ""
+
+#: cp/call.cc:2041
+#, gcc-internal-format
+msgid "casting %qT to %qT does not use %qD"
+msgstr ""
+
+#. A bad conversion for 'this' must be discarding cv-quals.
+#: cp/call.cc:3888
+#, gcc-internal-format
+msgid "  passing %qT as %<this%> argument discards qualifiers"
+msgstr ""
+
+#: cp/call.cc:3892
+msgid "  no known conversion for implicit %<this%> parameter from %qH to %qI"
+msgstr ""
+
+#: cp/call.cc:3899
+#, gcc-internal-format, gfc-internal-format
+msgid "  conversion of argument %d would be ill-formed:"
+msgstr ""
+
+#. Conversion of conversion function return value failed.
+#: cp/call.cc:3907
+msgid "  no known conversion from %qH to %qI"
+msgstr ""
+
+#: cp/call.cc:3913
+msgid "  no known conversion for argument %d from %qH to %qI"
+msgstr ""
+
+#: cp/call.cc:3927 cp/pt.cc:7123
+#, gcc-internal-format, gfc-internal-format
+msgid "  candidate expects at least %d argument, %d provided"
+msgid_plural "  candidate expects at least %d arguments, %d provided"
+msgstr[0] ""
+msgstr[1] ""
+
+#: cp/call.cc:3932 cp/pt.cc:7128
+#, gcc-internal-format, gfc-internal-format
+msgid "  candidate expects %d argument, %d provided"
+msgid_plural "  candidate expects %d arguments, %d provided"
+msgstr[0] ""
+msgstr[1] ""
+
+#: cp/call.cc:3960
+#, gcc-internal-format
+msgid "%s%<%D(%T, %T, %T)%> (built-in)"
+msgstr ""
+
+#: cp/call.cc:3965
+#, gcc-internal-format
+msgid "%s%<%D(%T, %T)%> (built-in)"
+msgstr ""
+
+#: cp/call.cc:3969
+#, gcc-internal-format
+msgid "%s%<%D(%T)%> (built-in)"
+msgstr ""
+
+#: cp/call.cc:3973
+#, gcc-internal-format
+msgid "%s%qT (conversion)"
+msgstr ""
+
+#: cp/call.cc:3975
+#, gcc-internal-format
+msgid "%s%#qD (near match)"
+msgstr ""
+
+#: cp/call.cc:3977
+#, gcc-internal-format
+msgid "%s%#qD (ignored)"
+msgstr ""
+
+#: cp/call.cc:3979
+#, gcc-internal-format
+msgid "%s%#qD (deleted)"
+msgstr ""
+
+#: cp/call.cc:3981
+#, gcc-internal-format
+msgid "%s%#qD (reversed)"
+msgstr ""
+
+#: cp/call.cc:3983
+#, gcc-internal-format
+msgid "%s%#qD (rewritten)"
+msgstr ""
+
+#: cp/call.cc:3985
+#, gcc-internal-format
+msgid "%s%#qD"
+msgstr ""
+
+#: cp/call.cc:3989
+#, gcc-internal-format
+msgid "  inherited here"
+msgstr ""
+
+#: cp/call.cc:4010
+#, gcc-internal-format
+msgid "  return type %qT of explicit conversion function cannot be converted to %qT with a qualification conversion"
+msgstr ""
+
+#: cp/call.cc:4016
+#, gcc-internal-format
+msgid "  conversion from return type %qT of template conversion function specialization to %qT is not an exact match"
+msgstr ""
+
+#: cp/call.cc:4027
+#, gcc-internal-format
+msgid "  substitution of deduced template arguments resulted in errors seen above"
+msgstr ""
+
+#. Re-run template unification with diagnostics.
+#: cp/call.cc:4032
+#, gcc-internal-format
+msgid "  template argument deduction/substitution failed:"
+msgstr ""
+
+#: cp/call.cc:4046
+#, gcc-internal-format
+msgid "  a constructor taking a single argument of its own class type is invalid"
+msgstr ""
+
+#: cp/call.cc:4053
+#, gcc-internal-format
+msgid "  an inherited constructor is not a candidate for initialization from an expression of the same or derived type"
+msgstr ""
+
+#: cp/call.cc:4132
+#, gcc-internal-format
+msgid "some candidates omitted; use %<-fdiagnostics-all-candidates%> to display them"
+msgstr ""
+
+#: cp/call.cc:4213 cp/call.cc:4758
+#, gcc-internal-format
+msgid "designated initializers cannot be used with a non-aggregate type %qT"
+msgstr ""
+
+#: cp/call.cc:4652
+msgid "conversion from %qH to %qI is ambiguous"
+msgstr ""
+
+#: cp/call.cc:4764 cp/cvt.cc:864
+msgid "could not convert %qE from %qH to %qI"
+msgstr ""
+
+#: cp/call.cc:4829
+msgid "initializing %qH with %qI in converted constant expression does not bind directly"
+msgstr ""
+
+#: cp/call.cc:4850
+msgid "conversion from %qH to %qI in a converted constant expression"
+msgstr ""
+
+#: cp/call.cc:5035
+#, gcc-internal-format
+msgid "no matching function for call to %<%D(%A)%>"
+msgstr ""
+
+#: cp/call.cc:5038
+#, gcc-internal-format
+msgid "call of overloaded %<%D(%A)%> is ambiguous"
+msgstr ""
+
+#. It's no good looking for an overloaded operator() on a
+#. pointer-to-member-function.
+#: cp/call.cc:5322
+#, gcc-internal-format
+msgid "pointer-to-member function %qE cannot be called without an object; consider using %<.*%> or %<->*%>"
+msgstr ""
+
+#: cp/call.cc:5401
+#, gcc-internal-format
+msgid "no match for call to %<(%T) (%A)%>"
+msgstr ""
+
+#: cp/call.cc:5415
+#, gcc-internal-format
+msgid "call of %<(%T) (%A)%> is ambiguous"
+msgstr ""
+
+#: cp/call.cc:5458
+#, gcc-internal-format
+msgid "ambiguous overload for "
+msgstr ""
+
+#: cp/call.cc:5459
+#, gcc-internal-format
+msgid "no match for "
+msgstr ""
+
+#: cp/call.cc:5462
+#, gcc-internal-format
+msgid " (operand types are %qT, %qT, and %qT)"
+msgstr ""
+
+#: cp/call.cc:5464
+#, gcc-internal-format
+msgid " (operand types are %qT and %qT)"
+msgstr ""
+
+#: cp/call.cc:5466
+#, gcc-internal-format
+msgid " (operand type is %qT)"
+msgstr ""
+
+#: cp/call.cc:5483
+#, gcc-internal-format
+msgid "ternary %<operator?:%>"
+msgstr ""
+
+#: cp/call.cc:5487
+#, gcc-internal-format
+msgid "ternary %<operator?:%> in %<%E ? %E : %E%>"
+msgstr ""
+
+#: cp/call.cc:5496 cp/call.cc:5540 cp/call.cc:5550
+#, gcc-internal-format
+msgid "%<operator%s%>"
+msgstr ""
+
+#: cp/call.cc:5499
+#, gcc-internal-format
+msgid "%<operator%s%> in %<%E%s%>"
+msgstr ""
+
+#: cp/call.cc:5506
+#, gcc-internal-format
+msgid "%<operator[]%>"
+msgstr ""
+
+#: cp/call.cc:5509
+#, gcc-internal-format
+msgid "%<operator[]%> in %<%E[%E]%>"
+msgstr ""
+
+#: cp/call.cc:5517
+#, gcc-internal-format
+msgid "%qs"
+msgstr ""
+
+#: cp/call.cc:5520
+#, gcc-internal-format
+msgid "%qs in %<%s %E%>"
+msgstr ""
+
+#: cp/call.cc:5526
+#, gcc-internal-format
+msgid "%<operator %s%>"
+msgstr ""
+
+#: cp/call.cc:5529
+#, gcc-internal-format
+msgid "%<operator %s%> in %<%s%E%>"
+msgstr ""
+
+#: cp/call.cc:5544
+#, gcc-internal-format
+msgid "%<operator%s%> in %<%E %s %E%>"
+msgstr ""
+
+#: cp/call.cc:5553
+#, gcc-internal-format
+msgid "%<operator%s%> in %<%s%E%>"
+msgstr ""
+
+#: cp/call.cc:5665
+#, gcc-internal-format
+msgid "ISO C++ forbids omitting the middle term of a %<?:%> expression"
+msgstr ""
+
+#: cp/call.cc:5742
+#, gcc-internal-format
+msgid "inferred scalar type %qT is not an integer or floating-point type of the same size as %qT"
+msgstr ""
+
+#: cp/call.cc:5759 cp/call.cc:5766
+msgid "conversion of scalar %qH to vector %qI involves truncation"
+msgstr ""
+
+#: cp/call.cc:5822
+#, gcc-internal-format
+msgid "incompatible vector types in conditional expression: %qT, %qT and %qT"
+msgstr ""
+
+#: cp/call.cc:5874 cp/call.cc:6220 cp/call.cc:6240
+#, gcc-internal-format
+msgid "operands to %<?:%> of types %qT and %qT have unordered conversion rank"
+msgstr ""
+
+#: cp/call.cc:5946
+#, gcc-internal-format
+msgid "second operand to the conditional operator is of type %<void%>, but the third operand is neither a throw-expression nor of type %<void%>"
+msgstr ""
+
+#: cp/call.cc:5951
+#, gcc-internal-format
+msgid "third operand to the conditional operator is of type %<void%>, but the second operand is neither a throw-expression nor of type %<void%>"
+msgstr ""
+
+#: cp/call.cc:5997 cp/call.cc:6109 cp/call.cc:6360
+#, gcc-internal-format
+msgid "operands to %<?:%> have different types %qT and %qT"
+msgstr ""
+
+#: cp/call.cc:6001
+#, gcc-internal-format
+msgid "  and each type can be converted to the other"
+msgstr ""
+
+#: cp/call.cc:6248
+msgid "implicit conversion from %qH to %qI to match other result of conditional"
+msgstr ""
+
+#: cp/call.cc:6266
+#, gcc-internal-format
+msgid "enumerated mismatch in conditional expression: %qT vs %qT"
+msgstr ""
+
+#: cp/call.cc:6286
+#, gcc-internal-format
+msgid "conditional expression between enumeration type %qT and floating-point type %qT"
+msgstr ""
+
+#: cp/call.cc:6290
+#, gcc-internal-format
+msgid "conditional expression between floating-point type %qT and enumeration type %qT"
+msgstr ""
+
+#: cp/call.cc:6294
+#, gcc-internal-format
+msgid "conditional expression between enumeration type %qT and floating-point type %qT is deprecated"
+msgstr ""
+
+#: cp/call.cc:6299
+#, gcc-internal-format
+msgid "conditional expression between floating-point type %qT and enumeration type %qT is deprecated"
+msgstr ""
+
+#: cp/call.cc:6315
+#, gcc-internal-format
+msgid "enumerated and non-enumerated type in conditional expression"
+msgstr ""
+
+#: cp/call.cc:7208
+#, gcc-internal-format
+msgid "no %<%D(int)%> declared for postfix %qs, trying prefix operator instead"
+msgstr ""
+
+#: cp/call.cc:7210
+#, gcc-internal-format
+msgid "no %<%D(int)%> declared for postfix %qs"
+msgstr ""
+
+#: cp/call.cc:7290
+#, gcc-internal-format
+msgid "in C++20 this comparison calls the current function recursively with reversed arguments"
+msgstr ""
+
+#: cp/call.cc:7343
+#, gcc-internal-format
+msgid "return type of %qD is not %qs"
+msgstr ""
+
+#: cp/call.cc:7345
+#, gcc-internal-format
+msgid "used as rewritten candidate for comparison of %qT and %qT"
+msgstr ""
+
+#: cp/call.cc:7428
+#, gcc-internal-format
+msgid "comparison between %q#T and %q#T"
+msgstr ""
+
+#: cp/call.cc:7615
+#, gcc-internal-format
+msgid "no match for call to %<%T::operator[] (%A)%>"
+msgstr ""
+
+#: cp/call.cc:7629
+#, gcc-internal-format
+msgid "call of %<%T::operator[] (%A)%> is ambiguous"
+msgstr ""
+
+#: cp/call.cc:7907
+#, gcc-internal-format
+msgid "exception cleanup for this placement new selects non-placement %<operator delete%>"
+msgstr ""
+
+#: cp/call.cc:7910
+#, gcc-internal-format
+msgid "%qD is a usual (non-placement) deallocation function in C++14 (or with %<-fsized-deallocation%>)"
+msgstr ""
+
+#: cp/call.cc:7947
+#, gcc-internal-format
+msgid "%qD is a usual (non-placement) deallocation function"
+msgstr ""
+
+#: cp/call.cc:8141
+#, gcc-internal-format
+msgid "no corresponding deallocation function for %qD"
+msgstr ""
+
+#: cp/call.cc:8144
+#, gcc-internal-format
+msgid "destroying delete %qD cannot be used to release the allocated memory if the initialization throws because the object is not constructed yet"
+msgstr ""
+
+#: cp/call.cc:8153
+#, gcc-internal-format
+msgid "no suitable %<operator %s%> for %qT"
+msgstr ""
+
+#: cp/call.cc:8189
+#, gcc-internal-format
+msgid "%q#D is private within this context"
+msgstr ""
+
+#: cp/call.cc:8190 cp/decl.cc:9122
+#, gcc-internal-format
+msgid "declared private here"
+msgstr ""
+
+#: cp/call.cc:8195
+#, gcc-internal-format
+msgid "%q#D is protected within this context"
+msgstr ""
+
+#: cp/call.cc:8196 cp/decl.cc:9123
+#, gcc-internal-format
+msgid "declared protected here"
+msgstr ""
+
+#: cp/call.cc:8203
+#, gcc-internal-format
+msgid "%q#D is inaccessible within this context"
+msgstr ""
+
+#: cp/call.cc:8284
+#, gcc-internal-format
+msgid "passing NULL to non-pointer argument %P of %qD"
+msgstr ""
+
+#: cp/call.cc:8287 cp/call.cc:8306 cp/decl.cc:10866 cp/decl.cc:10874
+#: cp/typeck.cc:4602
+#, gcc-internal-format
+msgid "  declared here"
+msgstr ""
+
+#: cp/call.cc:8291
+#, gcc-internal-format
+msgid "converting to non-pointer type %qT from NULL"
+msgstr ""
+
+#: cp/call.cc:8303
+#, gcc-internal-format
+msgid "converting %<false%> to pointer type for argument %P of %qD"
+msgstr ""
+
+#: cp/call.cc:8310
+#, gcc-internal-format
+msgid "converting %<false%> to pointer type %qT"
+msgstr ""
+
+#: cp/call.cc:8377
+#, gcc-internal-format
+msgid "  initializing argument %P of %qD"
+msgstr ""
+
+#: cp/call.cc:8398
+#, gcc-internal-format
+msgid "conversions to arrays of unknown bound are only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/call.cc:8448
+#, gcc-internal-format
+msgid "too many braces around initializer for %qT"
+msgstr ""
+
+#: cp/call.cc:8459
+msgid "converting to %qH from %qI requires direct-initialization"
+msgstr ""
+
+#: cp/call.cc:8471
+msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
+msgstr ""
+
+#: cp/call.cc:8479
+msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
+msgstr ""
+
+#: cp/call.cc:8495
+msgid "invalid user-defined conversion from %qH to %qI"
+msgstr ""
+
+#: cp/call.cc:8528 cp/cvt.cc:227
+msgid "invalid conversion from %qH to %qI"
+msgstr ""
+
+#: cp/call.cc:8575 cp/call.cc:8588
+#, gcc-internal-format
+msgid "converting to %qT from initializer list would use explicit constructor %qD"
+msgstr ""
+
+#: cp/call.cc:8581
+#, gcc-internal-format
+msgid "in C++11 and above a default constructor can be explicit"
+msgstr ""
+
+#: cp/call.cc:8861
+msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
+msgstr ""
+
+#: cp/call.cc:8870
+msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
+msgstr ""
+
+#: cp/call.cc:8875
+msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
+msgstr ""
+
+#. extype is volatile
+#: cp/call.cc:8878
+msgid "cannot bind lvalue reference of type %qH to an rvalue of type %qI"
+msgstr ""
+
+#: cp/call.cc:8891
+msgid "cannot bind reference of type %qH to %qI due to different array bounds"
+msgstr ""
+
+#: cp/call.cc:8894
+msgid "binding reference of type %qH to %qI discards qualifiers"
+msgstr ""
+
+#: cp/call.cc:8933
+#, gcc-internal-format
+msgid "cannot bind bit-field %qE to %qT"
+msgstr ""
+
+#: cp/call.cc:8936 cp/call.cc:8954
+#, gcc-internal-format
+msgid "cannot bind packed field %qE to %qT"
+msgstr ""
+
+#: cp/call.cc:8939
+#, gcc-internal-format
+msgid "cannot bind rvalue %qE to %qT"
+msgstr ""
+
+#: cp/call.cc:9140
+msgid "implicit conversion from %qH to %qI when passing argument to function"
+msgstr ""
+
+#: cp/call.cc:9169 cp/cvt.cc:2011
+#, gcc-internal-format
+msgid "scoped enum %qT passed through %<...%> as %qT before %<-fabi-version=6%>, %qT after"
+msgstr ""
+
+#: cp/call.cc:9213
+#, gcc-internal-format
+msgid "passing objects of non-trivially-copyable type %q#T through %<...%> is conditionally supported"
+msgstr ""
+
+#: cp/call.cc:9249
+#, gcc-internal-format
+msgid "cannot receive reference type %qT through %<...%>"
+msgstr ""
+
+#: cp/call.cc:9259
+#, gcc-internal-format
+msgid "receiving objects of non-trivially-copyable type %q#T through %<...%> is conditionally-supported"
+msgstr ""
+
+#: cp/call.cc:9327
+#, gcc-internal-format
+msgid "recursive evaluation of default argument for %q#D"
+msgstr ""
+
+#: cp/call.cc:9336
+#, gcc-internal-format
+msgid "call to %qD uses the default argument for parameter %P, which is not yet defined"
+msgstr ""
+
+#: cp/call.cc:9436
+#, gcc-internal-format
+msgid "argument of function call might be a candidate for a format attribute"
+msgstr ""
+
+#: cp/call.cc:9516
+#, gcc-internal-format
+msgid "use of multiversioned function without a default"
+msgstr ""
+
+#: cp/call.cc:10021
+#, gcc-internal-format
+msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
+msgstr ""
+
+#: cp/call.cc:10144
+#, gcc-internal-format
+msgid "passing %qT as %<this%> argument discards qualifiers"
+msgstr ""
+
+#: cp/call.cc:10147 cp/call.cc:12993
+#, gcc-internal-format
+msgid "  in call to %qD"
+msgstr ""
+
+#: cp/call.cc:10172
+#, gcc-internal-format
+msgid "%qT is not an accessible base of %qT"
+msgstr ""
+
+#: cp/call.cc:10397
+#, gcc-internal-format
+msgid "passing arguments to ellipsis of inherited constructor %qD"
+msgstr ""
+
+#: cp/call.cc:10534
+#, gcc-internal-format
+msgid "assignment from temporary %<initializer_list%> does not extend the lifetime of the underlying array"
+msgstr ""
+
+#: cp/call.cc:10901
+#, gcc-internal-format
+msgid "%qD writing to an object of type %#qT with no trivial copy-assignment"
+msgstr ""
+
+#: cp/call.cc:10904
+#, gcc-internal-format
+msgid "%qD writing to an object of non-trivial type %#qT%s"
+msgstr ""
+
+#: cp/call.cc:10909
+#, gcc-internal-format
+msgid "%qD writing to an object of type %#qT with %qs member %qD"
+msgstr ""
+
+#: cp/call.cc:10914
+#, gcc-internal-format
+msgid "%qD writing to an object of type %#qT containing a pointer to data member%s"
+msgstr ""
+
+#: cp/call.cc:10929
+#, gcc-internal-format
+msgid "; use assignment or value-initialization instead"
+msgstr ""
+
+#: cp/call.cc:10931
+#, gcc-internal-format
+msgid "; use assignment instead"
+msgstr ""
+
+#: cp/call.cc:10933
+#, gcc-internal-format
+msgid "; use value-initialization instead"
+msgstr ""
+
+#: cp/call.cc:10936
+#, gcc-internal-format
+msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
+msgstr ""
+
+#: cp/call.cc:10939
+#, gcc-internal-format
+msgid "%qD clearing an object of non-trivial type %#qT%s"
+msgstr ""
+
+#: cp/call.cc:10941
+#, gcc-internal-format
+msgid "%qD clearing an object of type %#qT containing a pointer-to-member%s"
+msgstr ""
+
+#: cp/call.cc:10962
+#, gcc-internal-format
+msgid "; use copy-assignment or copy-initialization instead"
+msgstr ""
+
+#: cp/call.cc:10964
+#, gcc-internal-format
+msgid "; use copy-assignment instead"
+msgstr ""
+
+#: cp/call.cc:10966
+#, gcc-internal-format
+msgid "; use copy-initialization instead"
+msgstr ""
+
+#: cp/call.cc:10969
+#, gcc-internal-format
+msgid "%qD writing to an object of type %#qT with no trivial copy-assignment%s"
+msgstr ""
+
+#: cp/call.cc:10972
+#, gcc-internal-format
+msgid "%qD writing to an object of non-trivially copyable type %#qT%s"
+msgstr ""
+
+#: cp/call.cc:10975
+#, gcc-internal-format
+msgid "%qD writing to an object with a deleted copy constructor"
+msgstr ""
+
+#: cp/call.cc:10986
+#, gcc-internal-format
+msgid "%qD copying an object of non-trivial type %#qT from an array of %#qT"
+msgstr ""
+
+#: cp/call.cc:10998
+#, gcc-internal-format
+msgid "%qD copying an object of type %#qT with %qs member %qD from an array of %#qT; use assignment or copy-initialization instead"
+msgstr ""
+
+#: cp/call.cc:11017
+#, gcc-internal-format
+msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu bytes unchanged"
+msgstr ""
+
+#: cp/call.cc:11020
+#, gcc-internal-format
+msgid "%qD writing to an object of a non-trivial type %#qT leaves %wu byte unchanged"
+msgstr ""
+
+#: cp/call.cc:11030
+#, gcc-internal-format
+msgid "%qD moving an object of non-trivially copyable type %#qT; use %<new%> and %<delete%> instead"
+msgstr ""
+
+#: cp/call.cc:11033
+#, gcc-internal-format
+msgid "%qD moving an object of type %#qT with deleted copy constructor; use %<new%> and %<delete%> instead"
+msgstr ""
+
+#: cp/call.cc:11036
+#, gcc-internal-format
+msgid "%qD moving an object of type %#qT with deleted destructor"
+msgstr ""
+
+#: cp/call.cc:11045
+#, gcc-internal-format
+msgid "%qD moving an object of non-trivial type %#qT and size %E into a region of size %E"
+msgstr ""
+
+#: cp/call.cc:11067
+#, gcc-internal-format
+msgid "%#qT declared here"
+msgstr ""
+
+#: cp/call.cc:11121
+#, gcc-internal-format
+msgid "argument %u in call to function %qE has pointer to a non-trivially-copyable type (%qT)"
+msgstr ""
+
+#: cp/call.cc:11188
+#, gcc-internal-format
+msgid "constructor delegates to itself"
+msgstr ""
+
+#: cp/call.cc:11463 cp/typeck.cc:10386
+msgid "cannot convert %qH to %qI"
+msgstr ""
+
+#: cp/call.cc:11485
+#, gcc-internal-format
+msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
+msgstr ""
+
+#: cp/call.cc:11517
+#, gcc-internal-format
+msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
+msgstr ""
+
+#: cp/call.cc:11565
+#, gcc-internal-format
+msgid "call to non-function %qD"
+msgstr ""
+
+#: cp/call.cc:11603 cp/pt.cc:17213 cp/typeck.cc:3479
+#, gcc-internal-format
+msgid "cannot call constructor %<%T::%D%> directly"
+msgstr ""
+
+#: cp/call.cc:11605
+#, gcc-internal-format
+msgid "for a function-style cast, remove the redundant %<::%D%>"
+msgstr ""
+
+#: cp/call.cc:11787
+#, gcc-internal-format
+msgid "no matching function for call to %<%s(%A)%>"
+msgstr ""
+
+#: cp/call.cc:11790
+#, gcc-internal-format
+msgid "call of overloaded %<%s(%A)%> is ambiguous"
+msgstr ""
+
+#: cp/call.cc:11813
+#, gcc-internal-format
+msgid "pure virtual %q#D called from non-static data member initializer"
+msgstr ""
+
+#: cp/call.cc:11818
+#, gcc-internal-format
+msgid "pure virtual %q#D called from constructor"
+msgstr ""
+
+#: cp/call.cc:11819
+#, gcc-internal-format
+msgid "pure virtual %q#D called from destructor"
+msgstr ""
+
+#: cp/call.cc:11842
+#, gcc-internal-format
+msgid "cannot call member function %qD without object"
+msgstr ""
+
+#: cp/call.cc:12991
+#, gcc-internal-format
+msgid "passing %qT chooses %qT over %qT"
+msgstr ""
+
+#: cp/call.cc:13017
+#, gcc-internal-format
+msgid "C++20 says that these are ambiguous, even though the second is reversed:"
+msgstr ""
+
+#: cp/call.cc:13040
+#, gcc-internal-format
+msgid "try making the operator a %<const%> member function"
+msgstr ""
+
+#: cp/call.cc:13103
+#, gcc-internal-format
+msgid "choosing %qD over %qD"
+msgstr ""
+
+#: cp/call.cc:13104
+msgid "  for conversion from %qH to %qI"
+msgstr ""
+
+#: cp/call.cc:13107
+#, gcc-internal-format
+msgid "  because conversion sequence for the argument is better"
+msgstr ""
+
+#: cp/call.cc:13391
+#, gcc-internal-format
+msgid "default argument mismatch in overload resolution"
+msgstr ""
+
+#: cp/call.cc:13395
+#, gcc-internal-format
+msgid " candidate 1: %q#F"
+msgstr ""
+
+#: cp/call.cc:13397
+#, gcc-internal-format
+msgid " candidate 2: %q#F"
+msgstr ""
+
+#: cp/call.cc:13443
+#, gcc-internal-format
+msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
+msgstr ""
+
+#: cp/call.cc:13855
+#, gcc-internal-format
+msgid "a temporary bound to %qD only persists until the constructor exits"
+msgstr ""
+
+#: cp/call.cc:14008
+msgid "invalid initialization of non-const reference of type %qH from an rvalue of type %qI"
+msgstr ""
+
+#: cp/call.cc:14012
+msgid "invalid initialization of reference of type %qH from expression of type %qI"
+msgstr ""
+
+#: cp/call.cc:14330
+#, gcc-internal-format
+msgid "possibly dangling reference to a temporary"
+msgstr ""
+
+#: cp/call.cc:14331
+#, gcc-internal-format
+msgid "the temporary was destroyed at the end of the full expression %qE"
+msgstr ""
+
+#: cp/call.cc:14599
+#, gcc-internal-format
+msgid "explicit conversion function was not considered"
+msgstr ""
+
+#: cp/class.cc:322
+#, gcc-internal-format
+msgid "cannot convert from pointer to base class %qT to pointer to derived class %qT because the base is virtual"
+msgstr ""
+
+#: cp/class.cc:326
+#, gcc-internal-format
+msgid "cannot convert from base class %qT to derived class %qT because the base is virtual"
+msgstr ""
+
+#: cp/class.cc:333
+#, gcc-internal-format
+msgid "cannot convert from pointer to base class %qT to pointer to derived class %qT via virtual base %qT"
+msgstr ""
+
+#: cp/class.cc:338
+#, gcc-internal-format
+msgid "cannot convert from base class %qT to derived class %qT via virtual base %qT"
+msgstr ""
+
+#: cp/class.cc:391
+#, gcc-internal-format
+msgid "cannot convert from %qT to base class %qT because %qT is incomplete"
+msgstr ""
+
+#: cp/class.cc:1435
+#, gcc-internal-format
+msgid "%q#D conflicts with version inherited from %qT"
+msgstr ""
+
+#: cp/class.cc:1438
+#, gcc-internal-format
+msgid "version inherited from %qT declared here"
+msgstr ""
+
+#: cp/class.cc:1457
+#, gcc-internal-format
+msgid "%q#D cannot be overloaded with %q#D"
+msgstr ""
+
+#: cp/class.cc:1459 cp/decl.cc:1928 cp/decl.cc:1940 cp/decl.cc:1965
+#: cp/decl.cc:1988 cp/name-lookup.cc:2899 cp/name-lookup.cc:3217
+#, gcc-internal-format
+msgid "previous declaration %q#D"
+msgstr ""
+
+#: cp/class.cc:1501
+#, gcc-internal-format
+msgid "conflicting access specifications for method %q+D, ignored"
+msgstr ""
+
+#: cp/class.cc:1504
+#, gcc-internal-format
+msgid "conflicting access specifications for field %qE, ignored"
+msgstr ""
+
+#: cp/class.cc:1607
+#, gcc-internal-format
+msgid "%qD invalid in %q#T because of local method %q#D with same name"
+msgstr ""
+
+#: cp/class.cc:1611
+#, gcc-internal-format
+msgid "local method %q#D declared here"
+msgstr ""
+
+#: cp/class.cc:1616
+#, gcc-internal-format
+msgid "%qD invalid in %q#T because of local member %q#D with same name"
+msgstr ""
+
+#: cp/class.cc:1620
+#, gcc-internal-format
+msgid "local member %q#D declared here"
+msgstr ""
+
+#: cp/class.cc:1691
+#, gcc-internal-format
+msgid "%qD inherits the %E ABI tag that %qT (used in its return type) has"
+msgstr ""
+
+#: cp/class.cc:1694 cp/class.cc:1701 cp/class.cc:1708 cp/class.cc:1720
+#: cp/cvt.cc:1118 rust/backend/rust-tree.cc:643
+#, gcc-internal-format
+msgid "%qT declared here"
+msgstr ""
+
+#: cp/class.cc:1699
+#, gcc-internal-format
+msgid "%qD inherits the %E ABI tag that %qT (used in its type) has"
+msgstr ""
+
+#: cp/class.cc:1706
+#, gcc-internal-format
+msgid "%qT does not have the %E ABI tag that base %qT has"
+msgstr ""
+
+#: cp/class.cc:1714
+#, gcc-internal-format
+msgid "%qT does not have the %E ABI tag that %qT (used in the type of %qD) has"
+msgstr ""
+
+#: cp/class.cc:2025
+#, gcc-internal-format
+msgid "cannot derive from %<final%> base %qT in derived type %qT"
+msgstr ""
+
+#: cp/class.cc:2499
+#, gcc-internal-format
+msgid "all member functions in class %qT are private"
+msgstr ""
+
+#: cp/class.cc:2511
+#, gcc-internal-format
+msgid "%q#T only defines a private destructor and has no friends"
+msgstr ""
+
+#: cp/class.cc:2554
+#, gcc-internal-format
+msgid "%q#T only defines private constructors and has no friends"
+msgstr ""
+
+#: cp/class.cc:2558
+#, gcc-internal-format
+msgid "%q#D is public, but requires an existing %q#T object"
+msgstr ""
+
+#: cp/class.cc:2848
+#, gcc-internal-format
+msgid "no unique final overrider for %qD in %qT"
+msgstr ""
+
+#: cp/class.cc:3208
+#, gcc-internal-format
+msgid "%qD can be marked override"
+msgstr ""
+
+#: cp/class.cc:3211
+#, gcc-internal-format
+msgid "%q+#D marked %<override%>, but does not override"
+msgstr ""
+
+#: cp/class.cc:3226
+#, gcc-internal-format
+msgid "%q+#D marked %<final%>, but is not virtual"
+msgstr ""
+
+#: cp/class.cc:3303
+#, gcc-internal-format
+msgid "%qD was hidden"
+msgstr ""
+
+#: cp/class.cc:3304
+#, gcc-internal-format
+msgid "  by %qD"
+msgstr ""
+
+#: cp/class.cc:3516
+#, gcc-internal-format
+msgid "the ellipsis in %qD is not inherited"
+msgstr ""
+
+#: cp/class.cc:3720
+#, gcc-internal-format
+msgid "bit-field %q#D with non-integral type %qT"
+msgstr ""
+
+#: cp/class.cc:3736
+#, gcc-internal-format
+msgid "bit-field %q+D width not an integer constant"
+msgstr ""
+
+#: cp/class.cc:3741
+#, gcc-internal-format
+msgid "negative width in bit-field %q+D"
+msgstr ""
+
+#: cp/class.cc:3746
+#, gcc-internal-format
+msgid "zero width for bit-field %q+D"
+msgstr ""
+
+#: cp/class.cc:3756
+#, gcc-internal-format
+msgid "width of %qD exceeds its type"
+msgstr ""
+
+#: cp/class.cc:3762
+#, gcc-internal-format
+msgid "%qD is too small to hold all values of %q#T"
+msgstr ""
+
+#: cp/class.cc:3823
+#, gcc-internal-format
+msgid "member %q+#D with constructor not allowed in union"
+msgstr ""
+
+#: cp/class.cc:3826
+#, gcc-internal-format
+msgid "member %q+#D with destructor not allowed in union"
+msgstr ""
+
+#: cp/class.cc:3828
+#, gcc-internal-format
+msgid "member %q+#D with copy assignment operator not allowed in union"
+msgstr ""
+
+#: cp/class.cc:3832
+#, gcc-internal-format
+msgid "unrestricted unions only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/class.cc:3948
+#, gcc-internal-format
+msgid "in C++98 %q+D may not be static because it is a member of a union"
+msgstr ""
+
+#: cp/class.cc:3961
+#, gcc-internal-format
+msgid "non-static data member %q+D in a union may not have reference type %qT"
+msgstr ""
+
+#: cp/class.cc:3974
+#, gcc-internal-format
+msgid "data member %q+D invalidly declared function type"
+msgstr ""
+
+#: cp/class.cc:3980
+#, gcc-internal-format
+msgid "data member %q+D invalidly declared method type"
+msgstr ""
+
+#: cp/class.cc:4051
+#, gcc-internal-format
+msgid "ignoring packed attribute because of unpacked non-POD field %q#D"
+msgstr ""
+
+#: cp/class.cc:4103
+#, gcc-internal-format
+msgid "member %q+D cannot be declared as a %<mutable%> reference"
+msgstr ""
+
+#: cp/class.cc:4106
+#, gcc-internal-format
+msgid "member %q+D cannot be declared both %<const%> and %<mutable%>"
+msgstr ""
+
+#: cp/class.cc:4137
+#, gcc-internal-format
+msgid "multiple fields in union %qT initialized"
+msgstr ""
+
+#: cp/class.cc:4139
+#, gcc-internal-format
+msgid "initialized member %q+D declared here"
+msgstr ""
+
+#: cp/class.cc:4187
+#, gcc-internal-format
+msgid "field %q#D with same name as class"
+msgstr ""
+
+#: cp/class.cc:4215
+#, gcc-internal-format
+msgid "%q#T has pointer data members"
+msgstr ""
+
+#: cp/class.cc:4220
+#, gcc-internal-format
+msgid "  but does not declare %<%T(const %T&)%>"
+msgstr ""
+
+#: cp/class.cc:4222
+#, gcc-internal-format
+msgid "  or %<operator=(const %T&)%>"
+msgstr ""
+
+#: cp/class.cc:4226
+#, gcc-internal-format
+msgid "  but does not declare %<operator=(const %T&)%>"
+msgstr ""
+
+#: cp/class.cc:4228
+#, gcc-internal-format
+msgid "pointer member %q+D declared here"
+msgstr ""
+
+#: cp/class.cc:4316
+#, gcc-internal-format
+msgid "layout of %qs member of type %qT changes in %qs"
+msgstr ""
+
+#: cp/class.cc:4709
+#, gcc-internal-format
+msgid "alignment of %qD increased in %<-fabi-version=9%> (GCC 5.2)"
+msgstr ""
+
+#: cp/class.cc:4712
+#, gcc-internal-format
+msgid "alignment of %qD will increase in %<-fabi-version=9%>"
+msgstr ""
+
+#: cp/class.cc:5040
+#, gcc-internal-format
+msgid "initializer specified for non-virtual method %q+D"
+msgstr ""
+
+#: cp/class.cc:5081
+#, gcc-internal-format
+msgid "no viable destructor for %qT"
+msgstr ""
+
+#: cp/class.cc:5083
+#, gcc-internal-format
+msgid "destructor for %qT is ambiguous"
+msgstr ""
+
+#: cp/class.cc:5551
+#, gcc-internal-format
+msgid "method overrides both %<transaction_pure%> and %qE methods"
+msgstr ""
+
+#: cp/class.cc:5572
+#, gcc-internal-format
+msgid "method declared %qE overriding %qE method"
+msgstr ""
+
+#: cp/class.cc:6204 cp/constexpr.cc:299
+#, gcc-internal-format
+msgid "enclosing class of %<constexpr%> non-static member function %q+#D is not a literal type"
+msgstr ""
+
+#: cp/class.cc:6230 rust/backend/rust-tree.cc:6076
+#, gcc-internal-format
+msgid "%q+T is not literal because:"
+msgstr ""
+
+#: cp/class.cc:6233 rust/backend/rust-tree.cc:6079
+#, gcc-internal-format
+msgid "  %qT is a closure type, which is only literal in C++17 and later"
+msgstr ""
+
+#: cp/class.cc:6236 rust/backend/rust-tree.cc:6087
+#, gcc-internal-format
+msgid "  %q+T has a non-trivial destructor"
+msgstr ""
+
+#: cp/class.cc:6239 rust/backend/rust-tree.cc:6084
+#, gcc-internal-format
+msgid "  %q+T does not have %<constexpr%> destructor"
+msgstr ""
+
+#: cp/class.cc:6247 rust/backend/rust-tree.cc:6092
+#, gcc-internal-format
+msgid "  %q+T is not an aggregate, does not have a trivial default constructor, and has no %<constexpr%> constructor that is not a copy or move constructor"
+msgstr ""
+
+#: cp/class.cc:6280 rust/backend/rust-tree.cc:6124
+#, gcc-internal-format
+msgid "  base class %qT of %q+T is non-literal"
+msgstr ""
+
+#: cp/class.cc:6295 rust/backend/rust-tree.cc:6138
+#, gcc-internal-format
+msgid "  non-static data member %qD has non-literal type"
+msgstr ""
+
+#: cp/class.cc:6302 rust/backend/rust-tree.cc:6145
+#, gcc-internal-format
+msgid "  non-static data member %qD has volatile type"
+msgstr ""
+
+#: cp/class.cc:6435
+#, gcc-internal-format
+msgid "base class %q#T has accessible non-virtual destructor"
+msgstr ""
+
+#: cp/class.cc:6464
+#, gcc-internal-format
+msgid "non-static reference %q#D in class without a constructor"
+msgstr ""
+
+#: cp/class.cc:6470
+#, gcc-internal-format
+msgid "non-static const member %q#D in class without a constructor"
+msgstr ""
+
+#: cp/class.cc:6816
+#, gcc-internal-format
+msgid "offset of %qT base class for %<-std=c++14%> and up changes in %<-fabi-version=17%> (GCC 12)"
+msgstr ""
+
+#: cp/class.cc:6820
+#, gcc-internal-format
+msgid "offset of %qD for %<-std=c++14%> and up changes in %<-fabi-version=17%> (GCC 12)"
+msgstr ""
+
+#: cp/class.cc:6860
+#, gcc-internal-format
+msgid "direct base %qT inaccessible in %qT due to ambiguity"
+msgstr ""
+
+#: cp/class.cc:6872
+#, gcc-internal-format
+msgid "virtual base %qT inaccessible in %qT due to ambiguity"
+msgstr ""
+
+#: cp/class.cc:7114
+#, gcc-internal-format
+msgid "offset of %qD is not ABI-compliant and may change in a future version of GCC"
+msgstr ""
+
+#: cp/class.cc:7310
+#, gcc-internal-format
+msgid "size of type %qT is too large (%qE bytes)"
+msgstr ""
+
+#: cp/class.cc:7596
+#, gcc-internal-format
+msgid "invalid use of %q#T with a zero-size array in %q#D"
+msgstr ""
+
+#: cp/class.cc:7598
+#, gcc-internal-format
+msgid "invalid use of %q#T with a flexible array member in %q#T"
+msgstr ""
+
+#: cp/class.cc:7603
+#, gcc-internal-format
+msgid "array member %q#D declared here"
+msgstr ""
+
+#: cp/class.cc:7631
+#, gcc-internal-format
+msgid "zero-size array member %qD not at end of %q#T"
+msgstr ""
+
+#: cp/class.cc:7633
+#, gcc-internal-format
+msgid "zero-size array member %qD in an otherwise empty %q#T"
+msgstr ""
+
+#: cp/class.cc:7642 cp/class.cc:7673
+#, gcc-internal-format
+msgid "in the definition of %q#T"
+msgstr ""
+
+#: cp/class.cc:7650
+#, gcc-internal-format
+msgid "flexible array member %qD not at end of %q#T"
+msgstr ""
+
+#: cp/class.cc:7652
+#, gcc-internal-format
+msgid "flexible array member %qD in an otherwise empty %q#T"
+msgstr ""
+
+#: cp/class.cc:7671
+#, gcc-internal-format
+msgid "next member %q#D declared here"
+msgstr ""
+
+#: cp/class.cc:7785 cp/decl.cc:17649 cp/parser.cc:27638
+#, gcc-internal-format
+msgid "redefinition of %q#T"
+msgstr ""
+
+#: cp/class.cc:7929
+#, gcc-internal-format
+msgid "%q#T has virtual functions and accessible non-virtual destructor"
+msgstr ""
+
+#: cp/class.cc:7957
+#, gcc-internal-format
+msgid "type transparent %q#T does not have any fields"
+msgstr ""
+
+#: cp/class.cc:7963
+#, gcc-internal-format
+msgid "type transparent class %qT has base classes"
+msgstr ""
+
+#: cp/class.cc:7967
+#, gcc-internal-format
+msgid "type transparent class %qT has virtual functions"
+msgstr ""
+
+#: cp/class.cc:7973
+#, gcc-internal-format
+msgid "type transparent %q#T cannot be made transparent because the type of the first field has a different ABI from the class overall"
+msgstr ""
+
+#: cp/class.cc:8144
+#, gcc-internal-format
+msgid "definition of %qD does not match %<#include <initializer_list>%>"
+msgstr ""
+
+#: cp/class.cc:8155
+#, gcc-internal-format
+msgid "trying to finish struct, but kicked out due to previous parse errors"
+msgstr ""
+
+#: cp/class.cc:8662
+#, gcc-internal-format
+msgid "language string %<\"%E\"%> not recognized"
+msgstr ""
+
+#: cp/class.cc:8752
+#, gcc-internal-format
+msgid "cannot resolve overloaded function %qD based on conversion to type %qT"
+msgstr ""
+
+#: cp/class.cc:8910
+#, gcc-internal-format
+msgid "no matches converting function %qD to type %q#T"
+msgstr ""
+
+#: cp/class.cc:8937
+#, gcc-internal-format
+msgid "converting overloaded function %qD to type %q#T is ambiguous"
+msgstr ""
+
+#: cp/class.cc:8979
+#, gcc-internal-format
+msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function."
+msgstr ""
+
+#: cp/class.cc:8984
+#, gcc-internal-format
+msgid "a pointer to explicit object member function can only be formed with %<&%E%>"
+msgstr ""
+
+#: cp/class.cc:8994
+#, gcc-internal-format
+msgid "assuming pointer to member %qD"
+msgstr ""
+
+#: cp/class.cc:8997
+#, gcc-internal-format
+msgid "(a pointer to member can only be formed with %<&%E%>)"
+msgstr ""
+
+#: cp/class.cc:9076
+#, gcc-internal-format
+msgid "not enough type information"
+msgstr ""
+
+#: cp/class.cc:9096
+#, gcc-internal-format
+msgid "cannot convert %qE from type %qT to type %qT"
+msgstr ""
+
+#: cp/class.cc:9395
+#, gcc-internal-format
+msgid "declaration of %q#D changes meaning of %qD"
+msgstr ""
+
+#: cp/class.cc:9398
+#, gcc-internal-format
+msgid "used here to mean %q#D"
+msgstr ""
+
+#: cp/constexpr.cc:112
+#, gcc-internal-format
+msgid "the type %qT of %<constexpr%> variable %qD is not literal"
+msgstr ""
+
+#: cp/constexpr.cc:123
+#, gcc-internal-format
+msgid "variable %qD of non-literal type %qT in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/constexpr.cc:136
+#, gcc-internal-format
+msgid "%<constexpr%> variable %qD has variably-modified type %qT"
+msgstr ""
+
+#: cp/constexpr.cc:236
+#, gcc-internal-format
+msgid "inherited constructor %qD is not %<constexpr%>"
+msgstr ""
+
+#. constexpr_fundef_p
+#: cp/constexpr.cc:250
+#, gcc-internal-format
+msgid "invalid type for parameter %d of %<constexpr%> function %q+#D"
+msgstr ""
+
+#: cp/constexpr.cc:263
+#, gcc-internal-format
+msgid "lambdas are implicitly %<constexpr%> only in C++17 and later"
+msgstr ""
+
+#: cp/constexpr.cc:270 cp/decl.cc:14694
+#, gcc-internal-format
+msgid "%<constexpr%> destructors only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#. constexpr_fundef_p
+#: cp/constexpr.cc:283
+#, gcc-internal-format
+msgid "invalid return type %qT of %<constexpr%> function %q+D"
+msgstr ""
+
+#: cp/constexpr.cc:310
+#, gcc-internal-format
+msgid "%q#T has virtual base classes"
+msgstr ""
+
+#: cp/constexpr.cc:568
+#, gcc-internal-format
+msgid "%<constexpr%> constructor does not have empty body"
+msgstr ""
+
+#: cp/constexpr.cc:826
+#, gcc-internal-format
+msgid "%<constexpr%> constructor for union %qT must initialize exactly one non-static data member"
+msgstr ""
+
+#: cp/constexpr.cc:887
+#, gcc-internal-format
+msgid "member %qD must be initialized by mem-initializer in %<constexpr%> constructor"
+msgstr ""
+
+#: cp/constexpr.cc:950
+#, gcc-internal-format
+msgid "body of %<constexpr%> function %qD not a return-statement"
+msgstr ""
+
+#: cp/constexpr.cc:1078
+#, gcc-internal-format
+msgid "%qD is not usable as a %<constexpr%> function because:"
+msgstr ""
+
+#: cp/constexpr.cc:1315 cp/constexpr.cc:6364
+#, gcc-internal-format
+msgid "destroying %qE outside its lifetime"
+msgstr ""
+
+#: cp/constexpr.cc:1606 cp/constexpr.cc:3317
+#: rust/backend/rust-constexpr.cc:3326 rust/backend/rust-constexpr.cc:3589
+#, gcc-internal-format
+msgid "%<constexpr%> call flows off the end of the function"
+msgstr ""
+
+#: cp/constexpr.cc:1608 cp/constexpr.cc:1707 cp/constexpr.cc:1716
+#: cp/constexpr.cc:3589 rust/backend/rust-constexpr.cc:3331
+#: rust/backend/rust-constexpr.cc:3341 rust/backend/rust-constexpr.cc:4324
+#, gcc-internal-format
+msgid "%q+E is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:1898 cp/constexpr.cc:5930 cp/constexpr.cc:8242
+#: rust/backend/rust-constexpr.cc:875 rust/backend/rust-constexpr.cc:2494
+#, gcc-internal-format
+msgid "dereferencing a null pointer"
+msgstr ""
+
+#: cp/constexpr.cc:2086
+#, gcc-internal-format
+msgid "the comparison reduces to %qE"
+msgstr ""
+
+#: cp/constexpr.cc:2089
+#, gcc-internal-format
+msgid "%qE evaluates to false"
+msgstr ""
+
+#: cp/constexpr.cc:2168
+#, gcc-internal-format
+msgid "failed %<assume%> attribute assumption"
+msgstr ""
+
+#: cp/constexpr.cc:2203 cp/constexpr.cc:9692
+#: rust/backend/rust-constexpr.cc:5758
+#, gcc-internal-format
+msgid "call to internal function %qE"
+msgstr ""
+
+#: cp/constexpr.cc:2257 rust/backend/rust-constexpr.cc:2615
+#, gcc-internal-format
+msgid "modifying a const object %qE is not allowed in a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:2285 rust/backend/rust-constexpr.cc:2618
+#, gcc-internal-format
+msgid "originally declared %<const%> here"
+msgstr ""
+
+#: cp/constexpr.cc:2541 cp/constexpr.cc:2597 cp/constexpr.cc:2630
+#: cp/constexpr.cc:2652
+#, gcc-internal-format
+msgid "reference %<dynamic_cast%> failed"
+msgstr ""
+
+#: cp/constexpr.cc:2542
+#, gcc-internal-format
+msgid "dynamic type %qT of its operand does not have a base class of type %qT"
+msgstr ""
+
+#: cp/constexpr.cc:2566
+#, gcc-internal-format
+msgid "virtual table pointer is used uninitialized"
+msgstr ""
+
+#: cp/constexpr.cc:2598 cp/constexpr.cc:2631
+#, gcc-internal-format
+msgid "static type %qT of its operand is a non-public base class of dynamic type %qT"
+msgstr ""
+
+#: cp/constexpr.cc:2654
+#, gcc-internal-format
+msgid "%qT is an ambiguous base class of dynamic type %qT of its operand"
+msgstr ""
+
+#: cp/constexpr.cc:2657
+#, gcc-internal-format
+msgid "dynamic type %qT of its operand does not have an unambiguous public base class %qT"
+msgstr ""
+
+#: cp/constexpr.cc:2734 cp/constexpr.cc:3014 cp/constexpr.cc:9728
+#: rust/backend/rust-constexpr.cc:5789
+#, gcc-internal-format
+msgid "call to non-%<constexpr%> function %qD"
+msgstr ""
+
+#. virtual_offset is only set for virtual bases, which make the
+#. class non-literal, so we don't need to handle it here.
+#: cp/constexpr.cc:2740
+#, gcc-internal-format
+msgid "calling constexpr member function %qD through virtual base subobject"
+msgstr ""
+
+#: cp/constexpr.cc:2856 rust/backend/rust-constexpr.cc:3387
+#, gcc-internal-format
+msgid "expression %qE does not designate a %<constexpr%> function"
+msgstr ""
+
+#: cp/constexpr.cc:2934
+#, gcc-internal-format
+msgid "array deallocation of object allocated with non-array allocation"
+msgstr ""
+
+#: cp/constexpr.cc:2938 cp/constexpr.cc:2961
+#, gcc-internal-format
+msgid "allocation performed here"
+msgstr ""
+
+#: cp/constexpr.cc:2957
+#, gcc-internal-format
+msgid "non-array deallocation of object allocated with array allocation"
+msgstr ""
+
+#: cp/constexpr.cc:2974
+#, gcc-internal-format
+msgid "deallocation of already deallocated storage"
+msgstr ""
+
+#: cp/constexpr.cc:2981
+#, gcc-internal-format
+msgid "deallocation of storage that was not previously allocated"
+msgstr ""
+
+#: cp/constexpr.cc:3098 rust/backend/rust-constexpr.cc:3442
+#, gcc-internal-format
+msgid "%qD called in a constant expression before its definition is complete"
+msgstr ""
+
+#: cp/constexpr.cc:3105
+#, gcc-internal-format
+msgid "%qD called in a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:3109 rust/backend/rust-constexpr.cc:3456
+#, gcc-internal-format
+msgid "%qD used before its definition"
+msgstr ""
+
+#: cp/constexpr.cc:3181 rust/backend/rust-constexpr.cc:3498
+#, gcc-internal-format
+msgid "call has circular dependency"
+msgstr ""
+
+#: cp/constexpr.cc:3192 rust/backend/rust-constexpr.cc:3509
+#, gcc-internal-format
+msgid "%<constexpr%> evaluation depth exceeds maximum of %d (use %<-fconstexpr-depth=%> to increase the maximum)"
+msgstr ""
+
+#: cp/constexpr.cc:3547
+#, gcc-internal-format
+msgid "reference to %qD is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:3550
+#, gcc-internal-format
+msgid "pointer to %qD is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:3556
+#, gcc-internal-format
+msgid "address of non-static constexpr variable %qD may differ on each invocation of the enclosing function; add %<static%> to give it a constant address"
+msgstr ""
+
+#: cp/constexpr.cc:3632
+#, gcc-internal-format
+msgid "right operand of shift expression %q+E is negative"
+msgstr ""
+
+#: cp/constexpr.cc:3639
+#, gcc-internal-format
+msgid "right operand of shift expression %q+E is greater than or equal to the precision %wu of the left operand"
+msgstr ""
+
+#: cp/constexpr.cc:3662
+#, gcc-internal-format
+msgid "left operand of shift expression %q+E is negative"
+msgstr ""
+
+#: cp/constexpr.cc:3681
+#, gcc-internal-format
+msgid "shift expression %q+E overflows"
+msgstr ""
+
+#: cp/constexpr.cc:3880
+#, gcc-internal-format
+msgid "arithmetic involving a null pointer in %qE"
+msgstr ""
+
+#: cp/constexpr.cc:4315 rust/backend/rust-constexpr.cc:4399
+#, gcc-internal-format
+msgid "array subscript value %qE is outside the bounds of array %qD of type %qT"
+msgstr ""
+
+#: cp/constexpr.cc:4318 rust/backend/rust-constexpr.cc:4404
+#, gcc-internal-format
+msgid "nonzero array subscript %qE is used with array %qD of type %qT with unknown bounds"
+msgstr ""
+
+#: cp/constexpr.cc:4323 rust/backend/rust-constexpr.cc:4411
+#, gcc-internal-format
+msgid "array subscript value %qE is outside the bounds of array type %qT"
+msgstr ""
+
+#: cp/constexpr.cc:4326 rust/backend/rust-constexpr.cc:4416
+#, gcc-internal-format
+msgid "nonzero array subscript %qE is used with array of type %qT with unknown bounds"
+msgstr ""
+
+#: cp/constexpr.cc:4515 rust/backend/rust-constexpr.cc:1667
+#, gcc-internal-format
+msgid "accessing uninitialized array element"
+msgstr ""
+
+#: cp/constexpr.cc:4577 rust/backend/rust-constexpr.cc:1724
+#, gcc-internal-format
+msgid "dereferencing a null pointer in %qE"
+msgstr ""
+
+#: cp/constexpr.cc:4596 cp/constexpr.cc:4712 cp/constexpr.cc:4724
+#: cp/constexpr.cc:7423 cp/constexpr.cc:7553 cp/constexpr.cc:9642
+#: rust/backend/rust-constexpr.cc:1738 rust/backend/rust-constexpr.cc:1983
+#: rust/backend/rust-constexpr.cc:2225 rust/backend/rust-constexpr.cc:4743
+#: rust/backend/rust-constexpr.cc:5712
+#, gcc-internal-format
+msgid "%qE is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:4604 rust/backend/rust-constexpr.cc:1744
+#, gcc-internal-format
+msgid "mutable %qD is not usable in a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:4636 cp/constexpr.cc:4672 cp/constexpr.cc:6528
+#: rust/backend/rust-constexpr.cc:1774 rust/backend/rust-constexpr.cc:1797
+#, gcc-internal-format
+msgid "accessing uninitialized member %qD"
+msgstr ""
+
+#: cp/constexpr.cc:4638 cp/constexpr.cc:4651 cp/constexpr.cc:6523
+#: rust/backend/rust-constexpr.cc:1776
+#, gcc-internal-format
+msgid "accessing %qD member instead of initialized %qD member in constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:4790
+#, gcc-internal-format
+msgid "%qs is not a constant expression because %qT is a union type"
+msgstr ""
+
+#: cp/constexpr.cc:4793
+#, gcc-internal-format
+msgid "%qs is not a constant expression because %qT contains a union type"
+msgstr ""
+
+#: cp/constexpr.cc:4804
+#, gcc-internal-format
+msgid "%qs is not a constant expression because %qT is a pointer type"
+msgstr ""
+
+#: cp/constexpr.cc:4807
+#, gcc-internal-format
+msgid "%qs is not a constant expression because %qT contains a pointer type"
+msgstr ""
+
+#: cp/constexpr.cc:4818
+#, gcc-internal-format
+msgid "%qs is not a constant expression because %qT is a reference type"
+msgstr ""
+
+#: cp/constexpr.cc:4821
+#, gcc-internal-format
+msgid "%qs is not a constant expression because %qT contains a reference type"
+msgstr ""
+
+#: cp/constexpr.cc:4832
+#, gcc-internal-format
+msgid "%qs is not a constant expression because %qT is a pointer to member type"
+msgstr ""
+
+#: cp/constexpr.cc:4836
+#, gcc-internal-format
+msgid "%qs is not a constant expression because %qT contains a pointer to member type"
+msgstr ""
+
+#: cp/constexpr.cc:4847
+#, gcc-internal-format
+msgid "%qs is not a constant expression because %qT is volatile"
+msgstr ""
+
+#: cp/constexpr.cc:4850
+#, gcc-internal-format
+msgid "%qs is not a constant expression because %qT contains a volatile subobject"
+msgstr ""
+
+#: cp/constexpr.cc:5005
+#, gcc-internal-format
+msgid "%qs cannot be constant evaluated on the target"
+msgstr ""
+
+#: cp/constexpr.cc:5014 cp/constexpr.cc:5024
+#, gcc-internal-format
+msgid "%qs cannot be constant evaluated because the type is too large"
+msgstr ""
+
+#: cp/constexpr.cc:5044
+#, gcc-internal-format
+msgid "%qs cannot be constant evaluated because the argument cannot be encoded"
+msgstr ""
+
+#: cp/constexpr.cc:5090
+#, gcc-internal-format
+msgid "%qs accessing uninitialized byte at offset %d"
+msgstr ""
+
+#: cp/constexpr.cc:5102
+#, gcc-internal-format
+msgid "%qs cannot be constant evaluated because the argument cannot be interpreted"
+msgstr ""
+
+#: cp/constexpr.cc:5950 rust/backend/rust-constexpr.cc:895
+#, gcc-internal-format
+msgid "accessing value of %qE through a %qT glvalue in a constant expression"
+msgstr ""
+
+#. Provide a more accurate message for deleted variables.
+#: cp/constexpr.cc:5990 cp/constexpr.cc:6023
+#, gcc-internal-format
+msgid "use of allocated storage after deallocation in a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:5992 cp/constexpr.cc:6018 cp/constexpr.cc:6025
+#: cp/constexpr.cc:6359
+#, gcc-internal-format
+msgid "allocated here"
+msgstr ""
+
+#: cp/constexpr.cc:5996
+#, gcc-internal-format
+msgid "accessing %qE outside its lifetime"
+msgstr ""
+
+#: cp/constexpr.cc:6016
+#, gcc-internal-format
+msgid "the content of uninitialized storage is not usable in a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:6028 rust/backend/rust-constexpr.cc:4041
+#, gcc-internal-format
+msgid "the value of %qD is not usable in a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:6036
+#, gcc-internal-format
+msgid "%qD used in its own initializer"
+msgstr ""
+
+#: cp/constexpr.cc:6041
+#, gcc-internal-format
+msgid "%q#D is not const"
+msgstr ""
+
+#: cp/constexpr.cc:6044
+#, gcc-internal-format
+msgid "%q#D is volatile"
+msgstr ""
+
+#: cp/constexpr.cc:6049 cp/constexpr.cc:6056
+#, gcc-internal-format
+msgid "%qD was not initialized with a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:6062
+#, gcc-internal-format
+msgid "%qD was not declared %<constexpr%>"
+msgstr ""
+
+#: cp/constexpr.cc:6065
+#, gcc-internal-format
+msgid "%qD does not have integral or enumeration type"
+msgstr ""
+
+#: cp/constexpr.cc:6357
+#, gcc-internal-format
+msgid "modification of allocated storage after deallocation is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:6366
+#, gcc-internal-format
+msgid "modification of %qE outside its lifetime is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:6373
+#, gcc-internal-format
+msgid "destroying %qE from outside current evaluation is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:6376
+#, gcc-internal-format
+msgid "modification of %qE from outside current evaluation is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:6503
+#, gcc-internal-format
+msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
+msgstr ""
+
+#: cp/constexpr.cc:6532
+#, gcc-internal-format
+msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
+msgstr ""
+
+#: cp/constexpr.cc:6539
+#, gcc-internal-format
+msgid "initializing %qD requires a member access expression as the left operand of the assignment"
+msgstr ""
+
+#: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
+#, gcc-internal-format
+msgid "change of the active member of a union from %qD to %qD during initialization"
+msgstr ""
+
+#: cp/constexpr.cc:6999 cp/constexpr.cc:8591 cp/constexpr.cc:8603
+#: rust/backend/rust-constexpr.cc:4668
+#, gcc-internal-format
+msgid "statement is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:7095 rust/backend/rust-constexpr.cc:4933
+#, gcc-internal-format
+msgid "%<constexpr%> loop iteration count exceeds limit of %d (use %<-fconstexpr-loop-limit=%> to increase the limit)"
+msgstr ""
+
+#: cp/constexpr.cc:7202 rust/backend/rust-constexpr.cc:999
+#, gcc-internal-format
+msgid "inline assembly is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:7204 rust/backend/rust-constexpr.cc:1000
+#, gcc-internal-format
+msgid "only unevaluated inline assembly is allowed in a %<constexpr%> function in C++20"
+msgstr ""
+
+#: cp/constexpr.cc:7222
+#, gcc-internal-format
+msgid "use of %qD"
+msgstr ""
+
+#: cp/constexpr.cc:7226
+#, gcc-internal-format
+msgid "its value can vary between compiler versions or with different %<-mtune%> or %<-mcpu%> flags"
+msgstr ""
+
+#: cp/constexpr.cc:7228
+#, gcc-internal-format
+msgid "if this use is part of a public ABI, change it to instead use a constant variable you define"
+msgstr ""
+
+#: cp/constexpr.cc:7230
+#, gcc-internal-format, gfc-internal-format
+msgid "the default value for the current CPU tuning is %d bytes"
+msgstr ""
+
+#: cp/constexpr.cc:7232
+#, gcc-internal-format
+msgid "you can stabilize this value with %<--param hardware_destructive_interference_size=%d%>, or disable this warning with %<-Wno-interference-size%>"
+msgstr ""
+
+#: cp/constexpr.cc:7385
+#, gcc-internal-format
+msgid "value %qE of type %qT is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:7398
+#, gcc-internal-format
+msgid "%<constexpr%> evaluation operation count exceeds limit of %wd (use %<-fconstexpr-ops-limit=%> to increase the limit)"
+msgstr ""
+
+#: cp/constexpr.cc:7583
+#, gcc-internal-format
+msgid "control passes through definition of %qD with thread storage duration"
+msgstr ""
+
+#: cp/constexpr.cc:7586
+#, gcc-internal-format
+msgid "control passes through definition of %qD with static storage duration"
+msgstr ""
+
+#: cp/constexpr.cc:7651 cp/constexpr.cc:10336
+#: rust/backend/rust-constexpr.cc:2056 rust/backend/rust-constexpr.cc:6206
+#, gcc-internal-format
+msgid "temporary of non-literal type %qT in a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:8100 cp/constexpr.cc:9843
+#, gcc-internal-format
+msgid "%<reinterpret_cast%> is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:8131 rust/backend/rust-constexpr.cc:2461
+#, gcc-internal-format
+msgid "conversion from pointer type %qT to arithmetic type %qT in a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:8181
+#, gcc-internal-format
+msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
+msgstr ""
+
+#: cp/constexpr.cc:8188
+#, gcc-internal-format
+msgid "pointed-to object declared here"
+msgstr ""
+
+#: cp/constexpr.cc:8193
+#, gcc-internal-format
+msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
+msgstr ""
+
+#: cp/constexpr.cc:8205
+#, gcc-internal-format
+msgid "cast from %qT is not allowed in a constant expression before C++26"
+msgstr ""
+
+#: cp/constexpr.cc:8219
+#, gcc-internal-format
+msgid "%qE is not a constant expression when the class %qT is still incomplete"
+msgstr ""
+
+#: cp/constexpr.cc:8253 rust/backend/rust-constexpr.cc:2506
+#, gcc-internal-format
+msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:8391 cp/constexpr.cc:10154 cp/constexpr.cc:10559
+#: rust/backend/rust-constexpr.cc:6100 rust/backend/rust-constexpr.cc:6415
+#, gcc-internal-format
+msgid "expression %qE is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:8436 cp/constexpr.cc:10600
+#, gcc-internal-format
+msgid "%<goto%> is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:8494
+#, gcc-internal-format
+msgid "contract predicate is false in constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:8510
+#, gcc-internal-format
+msgid "unexpected template-id %qE"
+msgstr ""
+
+#: cp/constexpr.cc:8516 cp/constraint.cc:178 cp/constraint.cc:755
+#, gcc-internal-format
+msgid "function concept must be called"
+msgstr ""
+
+#: cp/constexpr.cc:8541
+#, gcc-internal-format
+msgid "address of a call to %qs is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:8606
+#, gcc-internal-format
+msgid "unexpected expression %qE of kind %s"
+msgstr ""
+
+#: cp/constexpr.cc:8882 rust/backend/rust-constexpr.cc:5158
+#, gcc-internal-format
+msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
+msgstr ""
+
+#: cp/constexpr.cc:8890 rust/backend/rust-constexpr.cc:5167
+#, gcc-internal-format
+msgid "%qE is not a constant expression because it refers to an incompletely initialized variable"
+msgstr ""
+
+#: cp/constexpr.cc:8906 rust/backend/rust-constexpr.cc:5183
+#, gcc-internal-format
+msgid "%qE is not a constant expression because it refers to a result of %<operator new%>"
+msgstr ""
+
+#: cp/constexpr.cc:8917 rust/backend/rust-constexpr.cc:5195
+#, gcc-internal-format
+msgid "%qE is not a constant expression because allocated storage has not been deallocated"
+msgstr ""
+
+#: cp/constexpr.cc:8937 rust/backend/rust-constexpr.cc:5213
+#, gcc-internal-format
+msgid "immediate evaluation returns address of immediate function %qD"
+msgstr ""
+
+#: cp/constexpr.cc:8941
+#, gcc-internal-format
+msgid "constant evaluation returns address of immediate function %qD"
+msgstr ""
+
+#: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
+#, gcc-internal-format
+msgid "lvalue-to-rvalue conversion of a volatile lvalue %qE with type %qT"
+msgstr ""
+
+#: cp/constexpr.cc:9808
+#, gcc-internal-format
+msgid "lambda capture of %qE is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:9811
+#, gcc-internal-format
+msgid "because it is used as a glvalue"
+msgstr ""
+
+#: cp/constexpr.cc:9867 rust/backend/rust-constexpr.cc:5893
+#, gcc-internal-format
+msgid "%<reinterpret_cast%> from integer to pointer"
+msgstr ""
+
+#: cp/constexpr.cc:9901 rust/backend/rust-constexpr.cc:5921
+#, gcc-internal-format
+msgid "address-of an object %qE with thread local or automatic storage is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:9940
+#, gcc-internal-format
+msgid "use of %<this%> in a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:10089
+#, gcc-internal-format
+msgid "lambda-expression is not a constant expression before C++17"
+msgstr ""
+
+#: cp/constexpr.cc:10101
+#, gcc-internal-format
+msgid "new-expression is not a constant expression before C++20"
+msgstr ""
+
+#: cp/constexpr.cc:10168
+#, gcc-internal-format
+msgid "virtual functions cannot be %<constexpr%> before C++20"
+msgstr ""
+
+#: cp/constexpr.cc:10184
+#, gcc-internal-format
+msgid "%<typeid%> is not a constant expression because %qE is of polymorphic type"
+msgstr ""
+
+#: cp/constexpr.cc:10247
+#, gcc-internal-format
+msgid "cast to non-integral type %qT in a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:10300
+#, gcc-internal-format
+msgid "%qD defined %<thread_local%> in %<constexpr%> context"
+msgstr ""
+
+#: cp/constexpr.cc:10308
+#, gcc-internal-format
+msgid "%qD defined %<static%> in %<constexpr%> context"
+msgstr ""
+
+#: cp/constexpr.cc:10386 rust/backend/rust-constexpr.cc:6251
+#, gcc-internal-format
+msgid "division by zero is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:10487 rust/backend/rust-constexpr.cc:6349
+#, gcc-internal-format
+msgid "%<delete[]%> is not a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:10556
+#, gcc-internal-format
+msgid "neither branch of %<if%> is a constant expression"
+msgstr ""
+
+#: cp/constexpr.cc:10569
+#, gcc-internal-format
+msgid "non-constant array initialization"
+msgstr ""
+
+#: cp/constexpr.cc:10617 rust/backend/rust-constexpr.cc:6427
+#, gcc-internal-format
+msgid "label definition in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/constexpr.cc:10648 rust/backend/rust-constexpr.cc:6438
+#, gcc-internal-format, gfc-internal-format
+msgid "unexpected AST of kind %s"
+msgstr ""
+
+#: cp/constraint.cc:166
+#, gcc-internal-format
+msgid "constraint expression does not have type %<bool%>"
+msgstr ""
+
+#: cp/constraint.cc:375
+#, gcc-internal-format
+msgid "function call of variable concept %qE"
+msgstr ""
+
+#: cp/constraint.cc:547
+#, gcc-internal-format
+msgid "MAP %qD TO %qT"
+msgstr ""
+
+#: cp/constraint.cc:549
+#, gcc-internal-format
+msgid "MAP %qD TO %qE"
+msgstr ""
+
+#: cp/constraint.cc:562
+#, gcc-internal-format
+msgid "argument %qT"
+msgstr ""
+
+#: cp/constraint.cc:564
+#, gcc-internal-format
+msgid "argument %qE"
+msgstr ""
+
+#: cp/constraint.cc:1214
+#, gcc-internal-format
+msgid "%qT does not match original declaration"
+msgstr ""
+
+#: cp/constraint.cc:1217
+#, gcc-internal-format
+msgid "original template declaration here"
+msgstr ""
+
+#: cp/constraint.cc:1417
+#, gcc-internal-format
+msgid "no matching concepts for %qE"
+msgstr ""
+
+#: cp/constraint.cc:1723
+#, gcc-internal-format
+msgid "%qE cannot be introduced with an ellipsis %<...%>"
+msgstr ""
+
+#: cp/constraint.cc:1724
+#, gcc-internal-format
+msgid "prototype declared here"
+msgstr ""
+
+#: cp/constraint.cc:1811
+#, gcc-internal-format
+msgid "all template parameters of %qD must be introduced"
+msgstr ""
+
+#: cp/constraint.cc:1839
+#, gcc-internal-format
+msgid "cannot deduce template parameters from introduction list"
+msgstr ""
+
+#: cp/constraint.cc:2004
+#, gcc-internal-format
+msgid "the required expression %qE is invalid, because"
+msgstr ""
+
+#: cp/constraint.cc:2011
+#, gcc-internal-format
+msgid "the required expression %qE is invalid"
+msgstr ""
+
+#. Replay the substitution error.
+#: cp/constraint.cc:2053
+#, gcc-internal-format
+msgid "the required type %qT is invalid, because"
+msgstr ""
+
+#: cp/constraint.cc:2057
+#, gcc-internal-format
+msgid "the required type %qT is invalid"
+msgstr ""
+
+#: cp/constraint.cc:2112 cp/constraint.cc:2186
+#, gcc-internal-format
+msgid "cannot convert %qE to %qT"
+msgstr ""
+
+#: cp/constraint.cc:2141
+#, gcc-internal-format
+msgid "%qE is not %<noexcept%>"
+msgstr ""
+
+#: cp/constraint.cc:2163
+#, gcc-internal-format
+msgid "%qE does not satisfy return-type-requirement, because"
+msgstr ""
+
+#: cp/constraint.cc:2170
+#, gcc-internal-format
+msgid "%qE does not satisfy return-type-requirement"
+msgstr ""
+
+#: cp/constraint.cc:2181
+#, gcc-internal-format
+msgid "cannot convert %qE to %qT because"
+msgstr ""
+
+#. Replay the substitution error.
+#: cp/constraint.cc:2225
+#, gcc-internal-format
+msgid "nested requirement %qE is not satisfied, because"
+msgstr ""
+
+#: cp/constraint.cc:2229
+#, gcc-internal-format
+msgid "nested requirement %qE is not satisfied"
+msgstr ""
+
+#: cp/constraint.cc:2744
+#, gcc-internal-format
+msgid "satisfaction of atomic constraint %qE depends on itself"
+msgstr ""
+
+#: cp/constraint.cc:2790
+#, gcc-internal-format
+msgid "satisfaction value of atomic constraint %qE changed from %qE to %qE"
+msgstr ""
+
+#: cp/constraint.cc:2793
+#, gcc-internal-format
+msgid "satisfaction value first evaluated to %qE from here"
+msgstr ""
+
+#: cp/constraint.cc:2910
+#, gcc-internal-format
+msgid "no operand of the disjunction is satisfied"
+msgstr ""
+
+#: cp/constraint.cc:2923
+#, gcc-internal-format
+msgid "the operand %qE is unsatisfied because"
+msgstr ""
+
+#: cp/constraint.cc:3565
+#, gcc-internal-format
+msgid "definition of concept %qD is empty"
+msgstr ""
+
+#: cp/constraint.cc:3568
+#, gcc-internal-format
+msgid "definition of concept %qD has multiple statements"
+msgstr ""
+
+#: cp/constraint.cc:3724
+#, gcc-internal-format
+msgid "  %qT is not nothrow copy assignable"
+msgstr ""
+
+#: cp/constraint.cc:3727 cp/constraint.cc:3812
+#, gcc-internal-format
+msgid "  %qT is not nothrow default constructible"
+msgstr ""
+
+#: cp/constraint.cc:3730
+#, gcc-internal-format
+msgid "  %qT is not nothrow copy constructible"
+msgstr ""
+
+#: cp/constraint.cc:3733
+#, gcc-internal-format
+msgid "  %qT is not trivially copy assignable"
+msgstr ""
+
+#: cp/constraint.cc:3736 cp/constraint.cc:3852
+#, gcc-internal-format
+msgid "  %qT is not trivially default constructible"
+msgstr ""
+
+#: cp/constraint.cc:3739
+#, gcc-internal-format
+msgid "  %qT is not trivially copy constructible"
+msgstr ""
+
+#: cp/constraint.cc:3742
+#, gcc-internal-format
+msgid "  %qT is not trivially destructible"
+msgstr ""
+
+#: cp/constraint.cc:3745
+#, gcc-internal-format
+msgid "  %qT does not have unique object representations"
+msgstr ""
+
+#: cp/constraint.cc:3748
+#, gcc-internal-format
+msgid "  %qT does not have a virtual destructor"
+msgstr ""
+
+#: cp/constraint.cc:3751
+#, gcc-internal-format
+msgid "  %qT is not an abstract class"
+msgstr ""
+
+#: cp/constraint.cc:3754
+#, gcc-internal-format
+msgid "  %qT is not an aggregate"
+msgstr ""
+
+#: cp/constraint.cc:3757
+#, gcc-internal-format
+msgid "  %qT is not an array"
+msgstr ""
+
+#: cp/constraint.cc:3760
+#, gcc-internal-format
+msgid "  %qT is not assignable from %qT"
+msgstr ""
+
+#: cp/constraint.cc:3763
+#, gcc-internal-format
+msgid "  %qT is not a base of %qT"
+msgstr ""
+
+#: cp/constraint.cc:3766
+#, gcc-internal-format
+msgid "  %qT is not a bounded array"
+msgstr ""
+
+#: cp/constraint.cc:3769
+#, gcc-internal-format
+msgid "  %qT is not a class"
+msgstr ""
+
+#: cp/constraint.cc:3773
+#, gcc-internal-format
+msgid "  %qT is not default constructible"
+msgstr ""
+
+#: cp/constraint.cc:3775
+#, gcc-internal-format
+msgid "  %qT is not constructible from %qE"
+msgstr ""
+
+#: cp/constraint.cc:3778
+#, gcc-internal-format
+msgid "  %qT is not convertible from %qE"
+msgstr ""
+
+#: cp/constraint.cc:3781
+#, gcc-internal-format
+msgid "  %qT is not an empty class"
+msgstr ""
+
+#: cp/constraint.cc:3784
+#, gcc-internal-format
+msgid "  %qT is not an enum"
+msgstr ""
+
+#: cp/constraint.cc:3787
+#, gcc-internal-format
+msgid "  %qT is not a final class"
+msgstr ""
+
+#: cp/constraint.cc:3790
+#, gcc-internal-format
+msgid "  %qT is not a function"
+msgstr ""
+
+#: cp/constraint.cc:3793
+#, gcc-internal-format
+msgid "  %qT is not layout compatible with %qT"
+msgstr ""
+
+#: cp/constraint.cc:3796
+#, gcc-internal-format
+msgid "  %qT is not a literal type"
+msgstr ""
+
+#: cp/constraint.cc:3799
+#, gcc-internal-format
+msgid "  %qT is not a member function pointer"
+msgstr ""
+
+#: cp/constraint.cc:3802
+#, gcc-internal-format
+msgid "  %qT is not a member object pointer"
+msgstr ""
+
+#: cp/constraint.cc:3805
+#, gcc-internal-format
+msgid "  %qT is not a member pointer"
+msgstr ""
+
+#: cp/constraint.cc:3808
+#, gcc-internal-format
+msgid "  %qT is not nothrow assignable from %qT"
+msgstr ""
+
+#: cp/constraint.cc:3814
+#, gcc-internal-format
+msgid "  %qT is not nothrow constructible from %qE"
+msgstr ""
+
+#: cp/constraint.cc:3817
+#, gcc-internal-format
+msgid "  %qT is not nothrow convertible from %qE"
+msgstr ""
+
+#: cp/constraint.cc:3820
+#, gcc-internal-format
+msgid "  %qT is not an object type"
+msgstr ""
+
+#: cp/constraint.cc:3823
+#, gcc-internal-format
+msgid "  %qT is not pointer-interconvertible base of %qT"
+msgstr ""
+
+#: cp/constraint.cc:3827
+#, gcc-internal-format
+msgid "  %qT is not a POD type"
+msgstr ""
+
+#: cp/constraint.cc:3830
+#, gcc-internal-format
+msgid "  %qT is not a polymorphic type"
+msgstr ""
+
+#: cp/constraint.cc:3833
+#, gcc-internal-format
+msgid "  %qT is not a reference"
+msgstr ""
+
+#: cp/constraint.cc:3836
+#, gcc-internal-format
+msgid "  %qT is not the same as %qT"
+msgstr ""
+
+#: cp/constraint.cc:3839
+#, gcc-internal-format
+msgid "  %qT is not a scoped enum"
+msgstr ""
+
+#: cp/constraint.cc:3842
+#, gcc-internal-format
+msgid "  %qT is not an standard layout type"
+msgstr ""
+
+#: cp/constraint.cc:3845
+#, gcc-internal-format
+msgid "  %qT is not a trivial type"
+msgstr ""
+
+#: cp/constraint.cc:3848
+#, gcc-internal-format
+msgid "  %qT is not trivially assignable from %qT"
+msgstr ""
+
+#: cp/constraint.cc:3854
+#, gcc-internal-format
+msgid "  %qT is not trivially constructible from %qE"
+msgstr ""
+
+#: cp/constraint.cc:3857
+#, gcc-internal-format
+msgid "  %qT is not trivially copyable"
+msgstr ""
+
+#: cp/constraint.cc:3860
+#, gcc-internal-format
+msgid "  %qT is not a union"
+msgstr ""
+
+#: cp/constraint.cc:3863
+#, gcc-internal-format
+msgid "  %qT is not a reference that binds to a temporary object of type %qT (direct-initialization)"
+msgstr ""
+
+#: cp/constraint.cc:3867
+#, gcc-internal-format
+msgid "  %qT is not a reference that binds to a temporary object of type %qT (copy-initialization)"
+msgstr ""
+
+#: cp/constraint.cc:3871
+#, gcc-internal-format
+msgid "  %qD is not deducible from %qT"
+msgstr ""
+
+#: cp/constraint.cc:3898
+#, gcc-internal-format
+msgid "invalid constraints"
+msgstr ""
+
+#: cp/constraint.cc:3923
+#, gcc-internal-format
+msgid "constraint %qE has type %qT, not %<bool%>"
+msgstr ""
+
+#: cp/constraint.cc:3926
+#, gcc-internal-format
+msgid "the expression %qE evaluated to %<false%>"
+msgstr ""
+
+#: cp/constraint.cc:3977
+#, gcc-internal-format
+msgid "constraints not satisfied"
+msgstr ""
+
+#: cp/constraint.cc:3992
+#, gcc-internal-format
+msgid "set %qs to at least %d for more detail"
+msgstr ""
+
+#: cp/contracts.cc:183
+#, gcc-internal-format
+msgid "axiom contract semantic must be %<assume%> or %<ignore%>"
+msgstr ""
+
+#: cp/contracts.cc:186
+#, gcc-internal-format
+msgid "the %<audit%> semantic should be at least as strong as the %<default%> semantic"
+msgstr ""
+
+#: cp/contracts.cc:204
+#, gcc-internal-format, gfc-internal-format
+msgid "'%s' is not a valid explicit concrete semantic"
+msgstr ""
+
+#: cp/contracts.cc:344
+#, gcc-internal-format
+msgid "%<-fcontract-build-level=%> cannot be mixed with p1332/p1429"
+msgstr ""
+
+#: cp/contracts.cc:357
+#, gcc-internal-format
+msgid "%<-fcontract-build-level=%> must be off|default|audit"
+msgstr ""
+
+#: cp/contracts.cc:367
+#, gcc-internal-format
+msgid "%<-fcontract-assumption-mode=%> cannot be mixed with p1332/p1429"
+msgstr ""
+
+#: cp/contracts.cc:378
+#, gcc-internal-format
+msgid "%<-fcontract-assumption-mode=%> must be %<on%> or %<off%>"
+msgstr ""
+
+#: cp/contracts.cc:388
+#, gcc-internal-format
+msgid "%<-fcontract-continuation-mode=%> cannot be mixed with p1332/p1429"
+msgstr ""
+
+#: cp/contracts.cc:399
+#, gcc-internal-format
+msgid "%<-fcontract-continuation-mode=%> must be %<on%> or %<off%>"
+msgstr ""
+
+#: cp/contracts.cc:411
+#, gcc-internal-format
+msgid "%<-fcontract-role=%> must be in the form role:semantics"
+msgstr ""
+
+#: cp/contracts.cc:422 cp/contracts.cc:431
+#, gcc-internal-format
+msgid "%<-fcontract-role=%> semantics must include default,audit,axiom values"
+msgstr ""
+
+#: cp/contracts.cc:450
+#, gcc-internal-format
+msgid "%<-fcontract-role=%> cannot be mixed with std/p1429 contract flags"
+msgstr ""
+
+#. TODO: not enough space?
+#: cp/contracts.cc:464
+#, gcc-internal-format
+msgid "%<-fcontract-level=%> too many custom roles"
+msgstr ""
+
+#: cp/contracts.cc:476
+#, gcc-internal-format
+msgid "%<-fcontract-semantic=%> must be in the form level:semantic"
+msgstr ""
+
+#: cp/contracts.cc:482
+#, gcc-internal-format
+msgid "%<-fcontract-semantic=%> cannot be mixed with std/p1332 contract flags"
+msgstr ""
+
+#: cp/contracts.cc:490
+#, gcc-internal-format
+msgid "%<-fcontract-semantic=%> cannot find default role"
+msgstr ""
+
+#: cp/contracts.cc:506
+#, gcc-internal-format
+msgid "%<-fcontract-semantic=%> level must be default, audit, or axiom"
+msgstr ""
+
+#: cp/contracts.cc:647
+#, gcc-internal-format
+msgid "constructor does not return a value to test"
+msgstr ""
+
+#: cp/contracts.cc:649
+#, gcc-internal-format
+msgid "destructor does not return a value to test"
+msgstr ""
+
+#: cp/contracts.cc:650
+#, gcc-internal-format
+msgid "function does not return a value to test"
+msgstr ""
+
+#: cp/contracts.cc:1149
+#, gcc-internal-format
+msgid "mismatched contract attribute in declaration"
+msgstr ""
+
+#: cp/contracts.cc:1151 cp/contracts.cc:1182
+#, gcc-internal-format
+msgid "previous contract here"
+msgstr ""
+
+#: cp/contracts.cc:1179
+#, gcc-internal-format
+msgid "mismatched contract condition in declaration"
+msgstr ""
+
+#: cp/contracts.cc:1222
+#, gcc-internal-format
+msgid "declaration has a different number of contracts than previously declared"
+msgstr ""
+
+#: cp/contracts.cc:1228
+#, gcc-internal-format
+msgid "original declaration with fewer contracts here"
+msgstr ""
+
+#: cp/contracts.cc:1965
+#, gcc-internal-format
+msgid "contracts must appertain to a function type"
+msgstr ""
+
+#: cp/contracts.cc:2178
+#, gcc-internal-format
+msgid "cannot add contracts after definition"
+msgstr ""
+
+#: cp/contracts.cc:2179
+#, gcc-internal-format
+msgid "original definition here"
+msgstr ""
+
+#: cp/contracts.cc:2187
+#, gcc-internal-format
+msgid "cannot add contracts to a virtual function"
+msgstr ""
+
+#: cp/contracts.cc:2188
+#, gcc-internal-format
+msgid "original declaration here"
+msgstr ""
+
+#: cp/contracts.cc:2198
+#, gcc-internal-format
+msgid "declaration adds contracts to %q#D"
+msgstr ""
+
+#: cp/coroutines.cc:303
+#, gcc-internal-format
+msgid "coroutines require a traits template; cannot find %<%E::%E%>"
+msgstr ""
+
+#: cp/coroutines.cc:305
+#, gcc-internal-format
+msgid "perhaps %<#include <coroutine>%> is missing"
+msgstr ""
+
+#: cp/coroutines.cc:360
+#, gcc-internal-format
+msgid "cannot instantiate %<coroutine traits%>"
+msgstr ""
+
+#: cp/coroutines.cc:382
+#, gcc-internal-format
+msgid "coroutines require a handle class template; cannot find %<%E::%E%>"
+msgstr ""
+
+#: cp/coroutines.cc:407
+#, gcc-internal-format
+msgid "cannot instantiate a %<coroutine handle%> for promise type %qT"
+msgstr ""
+
+#: cp/coroutines.cc:492
+#, gcc-internal-format
+msgid "unable to find the promise type for this coroutine"
+msgstr ""
+
+#: cp/coroutines.cc:511
+#, gcc-internal-format
+msgid "the coroutine promise type %qT declares both %<return_value%> and %<return_void%>"
+msgstr ""
+
+#: cp/coroutines.cc:515
+#, gcc-internal-format
+msgid "%<return_void%> declared here"
+msgstr ""
+
+#: cp/coroutines.cc:648 cp/coroutines.cc:726 cp/coroutines.cc:4283
+#, gcc-internal-format
+msgid "no member named %qE in %qT"
+msgstr ""
+
+#: cp/coroutines.cc:741
+#, gcc-internal-format
+msgid "%qs cannot be used outside a function"
+msgstr ""
+
+#. [basic.start.main] 3. The function main shall not be a coroutine.
+#: cp/coroutines.cc:749
+#, gcc-internal-format
+msgid "%qs cannot be used in the %<main%> function"
+msgstr ""
+
+#. [dcl.constexpr] 3.3 it shall not be a coroutine.
+#: cp/coroutines.cc:760
+#, gcc-internal-format
+msgid "%qs cannot be used in a %<constexpr%> function"
+msgstr ""
+
+#: cp/coroutines.cc:771
+#, gcc-internal-format
+msgid "%qs cannot be used in a function with a deduced return type"
+msgstr ""
+
+#: cp/coroutines.cc:782
+#, gcc-internal-format
+msgid "%qs cannot be used in a varargs function"
+msgstr ""
+
+#. [class.ctor] 7. a constructor shall not be a coroutine.
+#: cp/coroutines.cc:789
+#, gcc-internal-format
+msgid "%qs cannot be used in a constructor"
+msgstr ""
+
+#. [class.dtor] 21. a destructor shall not be a coroutine.
+#: cp/coroutines.cc:796
+#, gcc-internal-format
+msgid "%qs cannot be used in a destructor"
+msgstr ""
+
+#. TODO: record or extract positions of returns (and the first coro
+#. keyword) so that we can add notes to the diagnostic about where
+#. the bad keyword is and what made the function into a coro.
+#: cp/coroutines.cc:827
+#, gcc-internal-format
+msgid "a %<return%> statement is not allowed in coroutine; did you mean %<co_return%>?"
+msgstr ""
+
+#: cp/coroutines.cc:875
+#, gcc-internal-format
+msgid "the expression %qE is required to be non-throwing"
+msgstr ""
+
+#: cp/coroutines.cc:877
+#, gcc-internal-format
+msgid "must be declared with %<noexcept(true)%>"
+msgstr ""
+
+#: cp/coroutines.cc:957
+#, gcc-internal-format
+msgid "awaitable type %qT is not a structure"
+msgstr ""
+
+#: cp/coroutines.cc:1072
+#, gcc-internal-format
+msgid "%<await_suspend%> must return %<void%>, %<bool%> or a coroutine handle"
+msgstr ""
+
+#: cp/coroutines.cc:1379
+#, gcc-internal-format
+msgid "function declared %<noreturn%> has a %<co_return%> statement"
+msgstr ""
+
+#: cp/coroutines.cc:1416
+#, gcc-internal-format
+msgid "the align argument to %<__builtin_coro_promise%> must be a constant"
+msgstr ""
+
+#: cp/coroutines.cc:1426
+#, gcc-internal-format
+msgid "the direction argument to %<__builtin_coro_promise%> must be a constant"
+msgstr ""
+
+#: cp/coroutines.cc:1904
+#, gcc-internal-format
+msgid "no suspend point info for %qD"
+msgstr ""
+
+#: cp/coroutines.cc:2102 cp/coroutines.cc:4652
+#, gcc-internal-format
+msgid "%qE is provided by %qT but is not usable with the function signature %qD"
+msgstr ""
+
+#: cp/coroutines.cc:2546
+#, gcc-internal-format
+msgid "duplicate info for %qE"
+msgstr ""
+
+#: cp/coroutines.cc:3691
+#, gcc-internal-format
+msgid "await expressions are not permitted in handlers"
+msgstr ""
+
+#: cp/coroutines.cc:3923
+#, gcc-internal-format
+msgid "variable length arrays are not yet supported in coroutines"
+msgstr ""
+
+#: cp/coroutines.cc:4657
+#, gcc-internal-format
+msgid "%qE is provided by %qT but %qE is not marked %<throw()%> or %<noexcept%>"
+msgstr ""
+
+#: cp/coroutines.cc:4660
+#, gcc-internal-format
+msgid "%qE is marked %<throw()%> or %<noexcept%> but no usable %<get_return_object_on_allocation_failure%> is provided by %qT"
+msgstr ""
+
+#: cp/coroutines.cc:4689
+#, gcc-internal-format
+msgid "%qE is provided by %qT but %<std::nothrow%> cannot be found"
+msgstr ""
+
+#. We can't initialize a non-class return value from void.
+#: cp/coroutines.cc:5064
+#, gcc-internal-format
+msgid "cannot initialize a return object of type %qT with an rvalue of type %<void%>"
+msgstr ""
+
+#: cp/cp-gimplify.cc:192
+#, gcc-internal-format
+msgid "both branches of %<if%> statement marked as %qs"
+msgstr ""
+
+#: cp/cp-gimplify.cc:536
+#, gcc-internal-format
+msgid "%qD was promoted to an immediate function because its body contains an immediate-escalating expression %qE"
+msgstr ""
+
+#: cp/cp-gimplify.cc:539
+#, gcc-internal-format
+msgid "%qD was promoted to an immediate function"
+msgstr ""
+
+#: cp/cp-gimplify.cc:1174
+#, gcc-internal-format
+msgid "taking address of an immediate function %qD"
+msgstr ""
+
+#: cp/cp-gimplify.cc:1273
+#, gcc-internal-format
+msgid "call to consteval function %qE is not a constant expression"
+msgstr ""
+
+#: cp/cp-gimplify.cc:2012
+#, gcc-internal-format
+msgid "%<throw%> will always call %<terminate%>"
+msgstr ""
+
+#: cp/cp-gimplify.cc:2015
+#, gcc-internal-format
+msgid "in C++11 destructors default to %<noexcept%>"
+msgstr ""
+
+#: cp/cp-gimplify.cc:2027
+#, gcc-internal-format
+msgid "in C++11 this %<throw%> will call %<terminate%> because destructors default to %<noexcept%>"
+msgstr ""
+
+#: cp/cp-gimplify.cc:3624
+#, gcc-internal-format
+msgid "ignoring attribute %qE after earlier %qE"
+msgstr ""
+
+#: cp/cp-gimplify.cc:3666
+#, gcc-internal-format
+msgid "pack expansion of %qE attribute"
+msgstr ""
+
+#: cp/cp-gimplify.cc:3669
+#, gcc-internal-format
+msgid "use fold expression in the attribute argument instead"
+msgstr ""
+
+#: cp/cp-gimplify.cc:3708 cp/cp-gimplify.cc:3720 cp/decl.cc:4465
+#: cp/method.cc:984
+#, gcc-internal-format
+msgid "%qD is not a type"
+msgstr ""
+
+#: cp/cp-gimplify.cc:3726
+#, gcc-internal-format
+msgid "%qD is not a class type"
+msgstr ""
+
+#: cp/cp-gimplify.cc:3743
+#, gcc-internal-format
+msgid "%qD does not have %<const char *%> type"
+msgstr ""
+
+#: cp/cp-gimplify.cc:3753
+#, gcc-internal-format
+msgid "%qD does not have integral type"
+msgstr ""
+
+#: cp/cp-gimplify.cc:3765
+#, gcc-internal-format
+msgid "%<std::source_location::__impl%> does not contain only non-static data members %<_M_file_name%>, %<_M_function_name%>, %<_M_line%> and %<_M_column%>"
+msgstr ""
+
+#: cp/cvt.cc:92
+msgid "cannot convert from incomplete type %qH to %qI"
+msgstr ""
+
+#: cp/cvt.cc:102
+msgid "conversion of %qE from %qH to %qI is ambiguous"
+msgstr ""
+
+#: cp/cvt.cc:174 cp/cvt.cc:201 cp/cvt.cc:255
+msgid "cannot convert %qE from type %qH to type %qI"
+msgstr ""
+
+#: cp/cvt.cc:391
+#, gcc-internal-format
+msgid "initialization of volatile reference type %q#T from rvalue of type %qT"
+msgstr ""
+
+#: cp/cvt.cc:394
+#, gcc-internal-format
+msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
+msgstr ""
+
+#: cp/cvt.cc:397
+#, gcc-internal-format
+msgid "initialization of non-const reference type %q#T from rvalue of type %qT"
+msgstr ""
+
+#: cp/cvt.cc:400
+#, gcc-internal-format
+msgid "conversion to non-const reference type %q#T from rvalue of type %qT"
+msgstr ""
+
+#: cp/cvt.cc:476
+msgid "conversion from %qH to %qI discards qualifiers"
+msgstr ""
+
+#: cp/cvt.cc:498 cp/typeck.cc:8823
+#, gcc-internal-format
+msgid "casting %qT to %qT does not dereference pointer"
+msgstr ""
+
+#: cp/cvt.cc:526
+msgid "cannot convert type %qH to type %qI"
+msgstr ""
+
+#: cp/cvt.cc:818
+#, gcc-internal-format
+msgid "conversion from %q#T to %q#T"
+msgstr ""
+
+#: cp/cvt.cc:836
+#, gcc-internal-format
+msgid "the result of the conversion is unspecified because %qE is outside the range of type %qT"
+msgstr ""
+
+#: cp/cvt.cc:847 cp/cvt.cc:902
+#, gcc-internal-format
+msgid "%q#T used where a %qT was expected"
+msgstr ""
+
+#: cp/cvt.cc:856
+#, gcc-internal-format
+msgid "could not convert %qE from %<void%> to %<bool%>"
+msgstr ""
+
+#: cp/cvt.cc:918
+#, gcc-internal-format
+msgid "%q#T used where a floating-point value was expected"
+msgstr ""
+
+#: cp/cvt.cc:976
+msgid "conversion from %qH to non-scalar type %qI requested"
+msgstr ""
+
+#: cp/cvt.cc:1088
+#, gcc-internal-format
+msgid "ignoring return value of %qD, declared with attribute %<nodiscard%>: %<%s%>"
+msgstr ""
+
+#: cp/cvt.cc:1090
+#, gcc-internal-format
+msgid "ignoring return value of %qD, declared with attribute %<nodiscard%>%s"
+msgstr ""
+
+#: cp/cvt.cc:1106
+#, gcc-internal-format
+msgid "ignoring returned value of type %qT, declared with attribute %<nodiscard%>: %<%s%>"
+msgstr ""
+
+#: cp/cvt.cc:1108
+#, gcc-internal-format
+msgid "ignoring returned value of type %qT, declared with attribute %<nodiscard%>%s"
+msgstr ""
+
+#: cp/cvt.cc:1130
+#, gcc-internal-format
+msgid "ignoring return value of %qD, declared with attribute %<warn_unused_result%>"
+msgstr ""
+
+#: cp/cvt.cc:1184
+#, gcc-internal-format
+msgid "pseudo-destructor is not called"
+msgstr ""
+
+#: cp/cvt.cc:1282 rust/backend/rust-tree.cc:339
+#, gcc-internal-format
+msgid "conversion to void will not access object of incomplete type %qT"
+msgstr ""
+
+#: cp/cvt.cc:1286 rust/backend/rust-tree.cc:345
+#, gcc-internal-format
+msgid "indirection will not access object of incomplete type %qT in second operand of conditional expression"
+msgstr ""
+
+#: cp/cvt.cc:1291 rust/backend/rust-tree.cc:352
+#, gcc-internal-format
+msgid "indirection will not access object of incomplete type %qT in third operand of conditional expression"
+msgstr ""
+
+#: cp/cvt.cc:1296 rust/backend/rust-tree.cc:359
+#, gcc-internal-format
+msgid "indirection will not access object of incomplete type %qT in right operand of comma operator"
+msgstr ""
+
+#: cp/cvt.cc:1301 rust/backend/rust-tree.cc:366
+#, gcc-internal-format
+msgid "indirection will not access object of incomplete type %qT in left operand of comma operator"
+msgstr ""
+
+#: cp/cvt.cc:1306 rust/backend/rust-tree.cc:373
+#, gcc-internal-format
+msgid "indirection will not access object of incomplete type %qT in statement"
+msgstr ""
+
+#: cp/cvt.cc:1310 rust/backend/rust-tree.cc:379
+#, gcc-internal-format
+msgid "indirection will not access object of incomplete type %qT in for increment expression"
+msgstr ""
+
+#: cp/cvt.cc:1326 rust/backend/rust-tree.cc:396
+#, gcc-internal-format
+msgid "conversion to void will not access object of type %qT"
+msgstr ""
+
+#: cp/cvt.cc:1330 rust/backend/rust-tree.cc:402
+#, gcc-internal-format
+msgid "implicit dereference will not access object of type %qT in second operand of conditional expression"
+msgstr ""
+
+#: cp/cvt.cc:1335 rust/backend/rust-tree.cc:409
+#, gcc-internal-format
+msgid "implicit dereference will not access object of type %qT in third operand of conditional expression"
+msgstr ""
+
+#: cp/cvt.cc:1340 rust/backend/rust-tree.cc:416
+#, gcc-internal-format
+msgid "implicit dereference will not access object of type %qT in right operand of comma operator"
+msgstr ""
+
+#: cp/cvt.cc:1345 rust/backend/rust-tree.cc:423
+#, gcc-internal-format
+msgid "implicit dereference will not access object of type %qT in left operand of comma operator"
+msgstr ""
+
+#: cp/cvt.cc:1350 rust/backend/rust-tree.cc:430
+#, gcc-internal-format
+msgid "implicit dereference will not access object of type %qT in statement"
+msgstr ""
+
+#: cp/cvt.cc:1354 rust/backend/rust-tree.cc:436
+#, gcc-internal-format
+msgid "implicit dereference will not access object of type %qT in for increment expression"
+msgstr ""
+
+#: cp/cvt.cc:1368 rust/backend/rust-tree.cc:450
+#, gcc-internal-format
+msgid "conversion to void will not access object of non-trivially-copyable type %qT"
+msgstr ""
+
+#: cp/cvt.cc:1373 rust/backend/rust-tree.cc:456
+#, gcc-internal-format
+msgid "indirection will not access object of non-trivially-copyable type %qT in second operand of conditional expression"
+msgstr ""
+
+#: cp/cvt.cc:1378 rust/backend/rust-tree.cc:463
+#, gcc-internal-format
+msgid "indirection will not access object of non-trivially-copyable type %qT in third operand of conditional expression"
+msgstr ""
+
+#: cp/cvt.cc:1383 rust/backend/rust-tree.cc:470
+#, gcc-internal-format
+msgid "indirection will not access object of non-trivially-copyable type %qT in right operand of comma operator"
+msgstr ""
+
+#: cp/cvt.cc:1388 rust/backend/rust-tree.cc:477
+#, gcc-internal-format
+msgid "indirection will not access object of non-trivially-copyable type %qT in left operand of comma operator"
+msgstr ""
+
+#: cp/cvt.cc:1393 rust/backend/rust-tree.cc:484
+#, gcc-internal-format
+msgid "indirection will not access object of non-trivially-copyable type %qT in statement"
+msgstr ""
+
+#: cp/cvt.cc:1398 rust/backend/rust-tree.cc:490
+#, gcc-internal-format
+msgid "indirection will not access object of non-trivially-copyable type %qT in for increment expression"
+msgstr ""
+
+#: cp/cvt.cc:1440 rust/backend/rust-tree.cc:531
+#, gcc-internal-format
+msgid "conversion to void will not access object %qE of incomplete type %qT"
+msgstr ""
+
+#: cp/cvt.cc:1444 rust/backend/rust-tree.cc:537
+#, gcc-internal-format
+msgid "variable %qE of incomplete type %qT will not be accessed in second operand of conditional expression"
+msgstr ""
+
+#: cp/cvt.cc:1449 rust/backend/rust-tree.cc:544
+#, gcc-internal-format
+msgid "variable %qE of incomplete type %qT will not be accessed in third operand of conditional expression"
+msgstr ""
+
+#: cp/cvt.cc:1454 rust/backend/rust-tree.cc:551
+#, gcc-internal-format
+msgid "variable %qE of incomplete type %qT will not be accessed in right operand of comma operator"
+msgstr ""
+
+#: cp/cvt.cc:1459 rust/backend/rust-tree.cc:557
+#, gcc-internal-format
+msgid "variable %qE of incomplete type %qT will not be accessed in left operand of comma operator"
+msgstr ""
+
+#: cp/cvt.cc:1464 rust/backend/rust-tree.cc:563
+#, gcc-internal-format
+msgid "variable %qE of incomplete type %qT will not be accessed in statement"
+msgstr ""
+
+#: cp/cvt.cc:1468 rust/backend/rust-tree.cc:569
+#, gcc-internal-format
+msgid "variable %qE of incomplete type %qT will not be accessed in for increment expression"
+msgstr ""
+
+#: cp/cvt.cc:1524
+#, gcc-internal-format
+msgid "conversion to void cannot resolve address of overloaded function"
+msgstr ""
+
+#: cp/cvt.cc:1528
+#, gcc-internal-format
+msgid "second operand of conditional expression cannot resolve address of overloaded function"
+msgstr ""
+
+#: cp/cvt.cc:1532
+#, gcc-internal-format
+msgid "third operand of conditional expression cannot resolve address of overloaded function"
+msgstr ""
+
+#: cp/cvt.cc:1536
+#, gcc-internal-format
+msgid "right operand of comma operator cannot resolve address of overloaded function"
+msgstr ""
+
+#: cp/cvt.cc:1540
+#, gcc-internal-format
+msgid "left operand of comma operator cannot resolve address of overloaded function"
+msgstr ""
+
+#: cp/cvt.cc:1544
+#, gcc-internal-format
+msgid "statement cannot resolve address of overloaded function"
+msgstr ""
+
+#: cp/cvt.cc:1548
+#, gcc-internal-format
+msgid "for increment expression cannot resolve address of overloaded function"
+msgstr ""
+
+#: cp/cvt.cc:1564
+#, gcc-internal-format
+msgid "second operand of conditional expression is a reference, not call, to function %qE"
+msgstr ""
+
+#: cp/cvt.cc:1569
+#, gcc-internal-format
+msgid "third operand of conditional expression is a reference, not call, to function %qE"
+msgstr ""
+
+#: cp/cvt.cc:1574
+#, gcc-internal-format
+msgid "right operand of comma operator is a reference, not call, to function %qE"
+msgstr ""
+
+#: cp/cvt.cc:1579
+#, gcc-internal-format
+msgid "left operand of comma operator is a reference, not call, to function %qE"
+msgstr ""
+
+#: cp/cvt.cc:1584
+#, gcc-internal-format
+msgid "statement is a reference, not call, to function %qE"
+msgstr ""
+
+#: cp/cvt.cc:1589
+#, gcc-internal-format
+msgid "for increment expression is a reference, not call, to function %qE"
+msgstr ""
+
+#: cp/cvt.cc:1618
+#, gcc-internal-format
+msgid "second operand of conditional expression has no effect"
+msgstr ""
+
+#: cp/cvt.cc:1623
+#, gcc-internal-format
+msgid "third operand of conditional expression has no effect"
+msgstr ""
+
+#: cp/cvt.cc:1628
+#, gcc-internal-format
+msgid "right operand of comma operator has no effect"
+msgstr ""
+
+#: cp/cvt.cc:1632
+#, gcc-internal-format
+msgid "left operand of comma operator has no effect"
+msgstr ""
+
+#: cp/cvt.cc:1636
+#, gcc-internal-format
+msgid "statement has no effect"
+msgstr ""
+
+#: cp/cvt.cc:1640
+#, gcc-internal-format
+msgid "for increment expression has no effect"
+msgstr ""
+
+#: cp/cvt.cc:1793
+#, gcc-internal-format
+msgid "converting NULL to non-pointer type"
+msgstr ""
+
+#: cp/cvt.cc:1911
+#, gcc-internal-format
+msgid "default type conversion cannot deduce template argument for %qD"
+msgstr ""
+
+#: cp/cvt.cc:1926
+#, gcc-internal-format
+msgid "ambiguous default type conversion from %qT"
+msgstr ""
+
+#: cp/cvt.cc:1929
+#, gcc-internal-format
+msgid "  candidate conversions include %qD and %qD"
+msgstr ""
+
+#: cp/cxx-pretty-print.cc:2315
+#, gcc-internal-format
+msgid "template-parameter-"
+msgstr ""
+
+#: cp/cxx-pretty-print.cc:2329
+#, gcc-internal-format
+msgid "requires"
+msgstr ""
+
+#: cp/cxx-pretty-print.cc:2849 cp/error.cc:399
+#, gcc-internal-format
+msgid "with"
+msgstr ""
+
+#: cp/decl.cc:715
+#, gcc-internal-format
+msgid "unused structured binding declaration"
+msgstr ""
+
+#: cp/decl.cc:718
+#, gcc-internal-format
+msgid "unused variable %qD"
+msgstr ""
+
+#: cp/decl.cc:728
+#, gcc-internal-format
+msgid "structured binding declaration set but not used"
+msgstr ""
+
+#: cp/decl.cc:883
+#, gcc-internal-format
+msgid "%qF declared %<static%> but never defined"
+msgstr ""
+
+#: cp/decl.cc:890
+#, gcc-internal-format
+msgid "odr-used inline variable %qD is not defined"
+msgstr ""
+
+#: cp/decl.cc:1335
+#, gcc-internal-format
+msgid "%qD was declared %<extern%> and later %<static%>"
+msgstr ""
+
+#: cp/decl.cc:1375
+#, gcc-internal-format
+msgid "declaration of %qF has a different exception specifier"
+msgstr ""
+
+#: cp/decl.cc:1389
+#, gcc-internal-format
+msgid "from previous declaration %qF"
+msgstr ""
+
+#: cp/decl.cc:1442
+#, gcc-internal-format
+msgid "redeclaration %qD differs in %qs from previous declaration"
+msgstr ""
+
+#: cp/decl.cc:1446 cp/decl.cc:16636
+#, gcc-internal-format
+msgid "previous declaration %qD"
+msgstr ""
+
+#: cp/decl.cc:1475
+#, gcc-internal-format
+msgid "cannot specialize concept %q#D"
+msgstr ""
+
+#: cp/decl.cc:1497
+#, gcc-internal-format
+msgid "redeclaration of %q#D may not have default arguments"
+msgstr ""
+
+#: cp/decl.cc:1526
+#, gcc-internal-format
+msgid "friend declaration of %q#D specifies default arguments and isn%'t the only declaration"
+msgstr ""
+
+#: cp/decl.cc:1529
+#, gcc-internal-format
+msgid "previous declaration of %q#D"
+msgstr ""
+
+#: cp/decl.cc:1581
+#, gcc-internal-format
+msgid "ambiguating new declaration %q+#D"
+msgstr ""
+
+#: cp/decl.cc:1583 cp/decl.cc:2008
+#, gcc-internal-format
+msgid "old declaration %q#D"
+msgstr ""
+
+#: cp/decl.cc:1623
+#, gcc-internal-format
+msgid "redefinition of default argument for %q+#D"
+msgstr ""
+
+#: cp/decl.cc:1625
+#, gcc-internal-format
+msgid "original definition appeared here"
+msgstr ""
+
+#: cp/decl.cc:1691
+#, gcc-internal-format
+msgid "built-in function %qD declared as non-function"
+msgstr ""
+
+#: cp/decl.cc:1704 cp/decl.cc:1830
+#, gcc-internal-format
+msgid "shadowing built-in function %q#D"
+msgstr ""
+
+#: cp/decl.cc:1705 cp/decl.cc:1831
+#, gcc-internal-format
+msgid "shadowing library function %q#D"
+msgstr ""
+
+#: cp/decl.cc:1713
+#, gcc-internal-format
+msgid "library function %q#D redeclared as non-function %q#D"
+msgstr ""
+
+#: cp/decl.cc:1717 cp/decl.cc:1778
+#, gcc-internal-format
+msgid "declaration of %q#D conflicts with built-in declaration %q#D"
+msgstr ""
+
+#: cp/decl.cc:1805
+#, gcc-internal-format
+msgid "definition of %q#D ambiguates built-in declaration %q#D"
+msgstr ""
+
+#: cp/decl.cc:1811 cp/decl.cc:1825
+#, gcc-internal-format
+msgid "new declaration %q#D ambiguates built-in declaration %q#D"
+msgstr ""
+
+#: cp/decl.cc:1815
+#, gcc-internal-format
+msgid "ignoring the %q#D declaration"
+msgstr ""
+
+#: cp/decl.cc:1919
+#, gcc-internal-format
+msgid "literal operator %q#D conflicts with raw literal operator"
+msgstr ""
+
+#: cp/decl.cc:1923
+#, gcc-internal-format
+msgid "raw literal operator %q#D conflicts with literal operator template"
+msgstr ""
+
+#: cp/decl.cc:1939
+#, gcc-internal-format
+msgid "%q#D redeclared as different kind of entity"
+msgstr ""
+
+#: cp/decl.cc:1963
+#, gcc-internal-format
+msgid "conflicting declaration of template %q#D"
+msgstr ""
+
+#: cp/decl.cc:1985
+#, gcc-internal-format
+msgid "conflicting declaration of C function %q#D"
+msgstr ""
+
+#: cp/decl.cc:2006
+#, gcc-internal-format
+msgid "ambiguating new declaration of %q#D"
+msgstr ""
+
+#: cp/decl.cc:2016
+#, gcc-internal-format
+msgid "conflicting declaration %q#D"
+msgstr ""
+
+#: cp/decl.cc:2018
+#, gcc-internal-format
+msgid "previous declaration as %q#D"
+msgstr ""
+
+#: cp/decl.cc:2028
+#, gcc-internal-format
+msgid "redeclaration of %<pragma omp declare reduction%>"
+msgstr ""
+
+#: cp/decl.cc:2030
+#, gcc-internal-format
+msgid "previous %<pragma omp declare reduction%> declaration"
+msgstr ""
+
+#: cp/decl.cc:2088
+#, gcc-internal-format
+msgid "%q#D previously defined here"
+msgstr ""
+
+#: cp/decl.cc:2089 cp/name-lookup.cc:3370 cp/name-lookup.cc:3408
+#: cp/name-lookup.cc:3434
+#, gcc-internal-format
+msgid "%q#D previously declared here"
+msgstr ""
+
+#: cp/decl.cc:2097
+#, gcc-internal-format
+msgid "parameter declaration is not name-independent"
+msgstr ""
+
+#: cp/decl.cc:2102
+#, gcc-internal-format
+msgid "structured binding at namespace scope is not name-independent"
+msgstr ""
+
+#: cp/decl.cc:2106
+#, gcc-internal-format
+msgid "static structured binding is not name-independent"
+msgstr ""
+
+#: cp/decl.cc:2110
+#, gcc-internal-format
+msgid "extern structured binding is not name-independent"
+msgstr ""
+
+#: cp/decl.cc:2117
+#, gcc-internal-format
+msgid "static data member is not name-independent"
+msgstr ""
+
+#: cp/decl.cc:2120
+#, gcc-internal-format
+msgid "variable at namespace scope is not name-independent"
+msgstr ""
+
+#: cp/decl.cc:2123
+#, gcc-internal-format
+msgid "static variable is not name-independent"
+msgstr ""
+
+#: cp/decl.cc:2126
+#, gcc-internal-format
+msgid "extern variable is not name-independent"
+msgstr ""
+
+#: cp/decl.cc:2138
+#, gcc-internal-format
+msgid "prototype specified for %q#D"
+msgstr ""
+
+#: cp/decl.cc:2140
+#, gcc-internal-format
+msgid "previous non-prototype definition here"
+msgstr ""
+
+#: cp/decl.cc:2180
+#, gcc-internal-format
+msgid "conflicting declaration of %q#D with %qL linkage"
+msgstr ""
+
+#: cp/decl.cc:2183
+#, gcc-internal-format
+msgid "previous declaration with %qL linkage"
+msgstr ""
+
+#: cp/decl.cc:2232 cp/decl.cc:2242
+#, gcc-internal-format
+msgid "default argument given for parameter %d of %q#D"
+msgstr ""
+
+#: cp/decl.cc:2235 cp/decl.cc:2245
+#, gcc-internal-format
+msgid "previous specification in %q#D here"
+msgstr ""
+
+#: cp/decl.cc:2300 cp/decl.cc:16654
+#, gcc-internal-format
+msgid "conflicting exporting for declaration %qD"
+msgstr ""
+
+#: cp/decl.cc:2302 cp/decl.cc:16656
+#, gcc-internal-format
+msgid "previously declared here without exporting"
+msgstr ""
+
+#: cp/decl.cc:2330
+#, gcc-internal-format
+msgid "previous definition of %qD here"
+msgstr ""
+
+#: cp/decl.cc:2331
+#, gcc-internal-format
+msgid "previous declaration of %qD here"
+msgstr ""
+
+#: cp/decl.cc:2344
+#, gcc-internal-format
+msgid "function %qD declared %<[[noreturn]]%> but its first declaration was not"
+msgstr ""
+
+#: cp/decl.cc:2391
+#, gcc-internal-format
+msgid "redundant redeclaration of %qD in same scope"
+msgstr ""
+
+#: cp/decl.cc:2407
+#, gcc-internal-format
+msgid "deleted definition of %qD is not first declaration"
+msgstr ""
+
+#. From [temp.expl.spec]:
+#.
+#. If a template, a member template or the member of a class
+#. template is explicitly specialized then that
+#. specialization shall be declared before the first use of
+#. that specialization that would cause an implicit
+#. instantiation to take place, in every translation unit in
+#. which such a use occurs.
+#: cp/decl.cc:2905
+#, gcc-internal-format
+msgid "explicit specialization of %qD after first use"
+msgstr ""
+
+#: cp/decl.cc:3087
+#, gcc-internal-format
+msgid "%qD: visibility attribute ignored because it conflicts with previous declaration"
+msgstr ""
+
+#. Reject two definitions.
+#: cp/decl.cc:3365 cp/decl.cc:3394 cp/decl.cc:3432 cp/decl.cc:3449
+#: cp/decl.cc:3548
+#, gcc-internal-format
+msgid "redefinition of %q#D"
+msgstr ""
+
+#: cp/decl.cc:3381
+#, gcc-internal-format
+msgid "%qD conflicts with used function"
+msgstr ""
+
+#: cp/decl.cc:3391
+#, gcc-internal-format
+msgid "%q#D not declared in class"
+msgstr ""
+
+#: cp/decl.cc:3405 cp/decl.cc:3459
+#, gcc-internal-format
+msgid "%q+D redeclared inline with %<gnu_inline%> attribute"
+msgstr ""
+
+#: cp/decl.cc:3408 cp/decl.cc:3462
+#, gcc-internal-format
+msgid "%q+D redeclared inline without %<gnu_inline%> attribute"
+msgstr ""
+
+#: cp/decl.cc:3418
+#, gcc-internal-format
+msgid "comparison operator %q+D defaulted after its first declaration"
+msgstr ""
+
+#. is_primary=
+#. is_partial=
+#. is_friend_decl=
+#: cp/decl.cc:3479
+#, gcc-internal-format
+msgid "redeclaration of friend %q#D may not have default template arguments"
+msgstr ""
+
+#: cp/decl.cc:3494
+#, gcc-internal-format
+msgid "thread-local declaration of %q#D follows non-thread-local declaration"
+msgstr ""
+
+#: cp/decl.cc:3497
+#, gcc-internal-format
+msgid "non-thread-local declaration of %q#D follows thread-local declaration"
+msgstr ""
+
+#: cp/decl.cc:3512 cp/decl.cc:3556 cp/name-lookup.cc:2894
+#: cp/name-lookup.cc:3402 cp/name-lookup.cc:3405 cp/name-lookup.cc:3428
+#: cp/name-lookup.cc:3431
+#, gcc-internal-format
+msgid "redeclaration of %q#D"
+msgstr ""
+
+#: cp/decl.cc:3539
+#, gcc-internal-format
+msgid "redundant redeclaration of %<constexpr%> static data member %qD"
+msgstr ""
+
+#: cp/decl.cc:3607
+#, gcc-internal-format
+msgid "local label %qE conflicts with existing label"
+msgstr ""
+
+#: cp/decl.cc:3608
+#, gcc-internal-format
+msgid "previous label"
+msgstr ""
+
+#: cp/decl.cc:3698
+#, gcc-internal-format
+msgid "jump to label %qD"
+msgstr ""
+
+#: cp/decl.cc:3699
+#, gcc-internal-format
+msgid "jump to case label"
+msgstr ""
+
+#: cp/decl.cc:3703
+#, gcc-internal-format
+msgid "  as a possible target of computed goto"
+msgstr ""
+
+#: cp/decl.cc:3705
+#, gcc-internal-format
+msgid "  from here"
+msgstr ""
+
+#: cp/decl.cc:3733 cp/decl.cc:3971
+#, gcc-internal-format
+msgid "  exits OpenMP structured block"
+msgstr ""
+
+#: cp/decl.cc:3758
+#, gcc-internal-format
+msgid "  crosses initialization of %q#D"
+msgstr ""
+
+#: cp/decl.cc:3770 cp/decl.cc:3937
+#, gcc-internal-format
+msgid "  enters %<try%> block"
+msgstr ""
+
+#: cp/decl.cc:3776 cp/decl.cc:3926 cp/decl.cc:3939
+#, gcc-internal-format
+msgid "  enters %<catch%> block"
+msgstr ""
+
+#: cp/decl.cc:3782 cp/decl.cc:3953
+#, gcc-internal-format
+msgid "  enters OpenMP structured block"
+msgstr ""
+
+#: cp/decl.cc:3788 cp/decl.cc:3941
+#, gcc-internal-format
+msgid "  enters synchronized or atomic statement"
+msgstr ""
+
+#: cp/decl.cc:3794 cp/decl.cc:3947
+#, gcc-internal-format
+msgid "  enters statement expression"
+msgstr ""
+
+#: cp/decl.cc:3801 cp/decl.cc:3943
+#, gcc-internal-format
+msgid "  enters %<constexpr if%> statement"
+msgstr ""
+
+#: cp/decl.cc:3807 cp/decl.cc:3945
+#, gcc-internal-format
+msgid "  enters %<consteval if%> statement"
+msgstr ""
+
+#: cp/decl.cc:3838 cp/decl.cc:4012
+#, gcc-internal-format
+msgid "  does not destroy %qD"
+msgstr ""
+
+#: cp/decl.cc:3840 cp/decl.cc:3995
+#, gcc-internal-format
+msgid "  does not clean up handled exception"
+msgstr ""
+
+#: cp/decl.cc:3931
+#, gcc-internal-format
+msgid "  skips initialization of %q#D"
+msgstr ""
+
+#: cp/decl.cc:4472 cp/parser.cc:7205
+#, gcc-internal-format
+msgid "%qD used without template arguments"
+msgstr ""
+
+#: cp/decl.cc:4478
+#, gcc-internal-format
+msgid "%qD is a function, not a type"
+msgstr ""
+
+#: cp/decl.cc:4489
+#, gcc-internal-format
+msgid "%q#T is not a class"
+msgstr ""
+
+#: cp/decl.cc:4528 cp/decl.cc:4629
+#, gcc-internal-format
+msgid "no class template named %q#T in %q#T"
+msgstr ""
+
+#: cp/decl.cc:4529
+#, gcc-internal-format
+msgid "no type named %q#T in %q#T"
+msgstr ""
+
+#: cp/decl.cc:4542
+#, gcc-internal-format
+msgid "lookup of %qT in %qT is ambiguous"
+msgstr ""
+
+#: cp/decl.cc:4551
+#, gcc-internal-format
+msgid "%<typename %T::%D%> names %q#T, which is not a class template"
+msgstr ""
+
+#: cp/decl.cc:4564
+#, gcc-internal-format
+msgid "%<typename %T::%D%> names %q#D, which is not a type"
+msgstr ""
+
+#: cp/decl.cc:4638
+#, gcc-internal-format
+msgid "template parameters do not match template %qD"
+msgstr ""
+
+#: cp/decl.cc:4995
+#, gcc-internal-format
+msgid "%<-faligned-new=%d%> is not a power of two"
+msgstr ""
+
+#: cp/decl.cc:5169
+#, gcc-internal-format
+msgid "%<--param destructive-interference-size=%d%> is less than %d"
+msgstr ""
+
+#: cp/decl.cc:5173
+#, gcc-internal-format
+msgid "%<--param destructive-interference-size=%d%> is less than %<--param l1-cache-line-size=%d%>"
+msgstr ""
+
+#: cp/decl.cc:5186
+#, gcc-internal-format
+msgid "%<--param constructive-interference-size=%d%> is less than %d"
+msgstr ""
+
+#: cp/decl.cc:5191
+#, gcc-internal-format
+msgid "%<--param constructive-interference-size=%d%> is greater than %<--param l1-cache-line-size=%d%>"
+msgstr ""
+
+#: cp/decl.cc:5518
+#, gcc-internal-format
+msgid "%q#D invalid; an anonymous union may only have public non-static data members"
+msgstr ""
+
+#: cp/decl.cc:5528 cp/parser.cc:23596
+#, gcc-internal-format
+msgid "this flexibility is deprecated and will be removed"
+msgstr ""
+
+#: cp/decl.cc:5557
+#, gcc-internal-format
+msgid "anonymous struct with base classes"
+msgstr ""
+
+#: cp/decl.cc:5569
+#, gcc-internal-format
+msgid "member %q+#D with constructor not allowed in anonymous aggregate"
+msgstr ""
+
+#: cp/decl.cc:5572
+#, gcc-internal-format
+msgid "member %q+#D with destructor not allowed in anonymous aggregate"
+msgstr ""
+
+#: cp/decl.cc:5575
+#, gcc-internal-format
+msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate"
+msgstr ""
+
+#: cp/decl.cc:5594
+#, gcc-internal-format
+msgid "attribute ignored in declaration of %q#T"
+msgstr ""
+
+#: cp/decl.cc:5597
+#, gcc-internal-format
+msgid "attribute for %q#T must follow the %qs keyword"
+msgstr ""
+
+#: cp/decl.cc:5639
+#, gcc-internal-format
+msgid "multiple types in one declaration"
+msgstr ""
+
+#: cp/decl.cc:5644
+#, gcc-internal-format
+msgid "redeclaration of C++ built-in type %qT"
+msgstr ""
+
+#: cp/decl.cc:5661
+#, gcc-internal-format
+msgid "%<auto%> can only be specified for variables or function declarations"
+msgstr ""
+
+#: cp/decl.cc:5694
+#, gcc-internal-format
+msgid "missing type-name in typedef-declaration"
+msgstr ""
+
+#: cp/decl.cc:5702
+#, gcc-internal-format
+msgid "ISO C++ prohibits anonymous structs"
+msgstr ""
+
+#: cp/decl.cc:5709
+#, gcc-internal-format
+msgid "%<inline%> can only be specified for functions"
+msgstr ""
+
+#: cp/decl.cc:5712
+#, gcc-internal-format
+msgid "%<virtual%> can only be specified for functions"
+msgstr ""
+
+#: cp/decl.cc:5717
+#, gcc-internal-format
+msgid "%<friend%> can only be specified inside a class"
+msgstr ""
+
+#: cp/decl.cc:5720
+#, gcc-internal-format
+msgid "%<explicit%> can only be specified for constructors"
+msgstr ""
+
+#: cp/decl.cc:5723
+#, gcc-internal-format
+msgid "a storage class can only be specified for objects and functions"
+msgstr ""
+
+#: cp/decl.cc:5727
+#, gcc-internal-format
+msgid "%<const%> can only be specified for objects and functions"
+msgstr ""
+
+#: cp/decl.cc:5731
+#, gcc-internal-format
+msgid "%<volatile%> can only be specified for objects and functions"
+msgstr ""
+
+#: cp/decl.cc:5735
+#, gcc-internal-format
+msgid "%<__restrict%> can only be specified for objects and functions"
+msgstr ""
+
+#: cp/decl.cc:5739
+#, gcc-internal-format
+msgid "%<__thread%> can only be specified for objects and functions"
+msgstr ""
+
+#: cp/decl.cc:5743
+#, gcc-internal-format
+msgid "%<typedef%> was ignored in this declaration"
+msgstr ""
+
+#: cp/decl.cc:5746 cp/decl.cc:5749 cp/decl.cc:5752
+#, gcc-internal-format
+msgid "%qs cannot be used for type declarations"
+msgstr ""
+
+#: cp/decl.cc:5774
+#, gcc-internal-format
+msgid "attribute ignored in explicit instantiation %q#T"
+msgstr ""
+
+#: cp/decl.cc:5777
+#, gcc-internal-format
+msgid "no attribute can be applied to an explicit instantiation"
+msgstr ""
+
+#: cp/decl.cc:5856
+#, gcc-internal-format
+msgid "ignoring attributes applied to class type %qT outside of definition"
+msgstr ""
+
+#. A template type parameter or other dependent type.
+#: cp/decl.cc:5860
+#, gcc-internal-format
+msgid "ignoring attributes applied to dependent type %qT without an associated declaration"
+msgstr ""
+
+#: cp/decl.cc:5926 cp/decl2.cc:1064
+#, gcc-internal-format
+msgid "typedef %qD is initialized (use %qs instead)"
+msgstr ""
+
+#: cp/decl.cc:5939
+#, gcc-internal-format
+msgid "declaration of %q#D has %<extern%> and is initialized"
+msgstr ""
+
+#: cp/decl.cc:5977
+#, gcc-internal-format
+msgid "definition of %q#D is marked %<dllimport%>"
+msgstr ""
+
+#: cp/decl.cc:6001
+#, gcc-internal-format
+msgid "%q+#D is not a static data member of %q#T"
+msgstr ""
+
+#: cp/decl.cc:6009
+#, gcc-internal-format
+msgid "non-member-template declaration of %qD"
+msgstr ""
+
+#: cp/decl.cc:6010
+#, gcc-internal-format
+msgid "does not match member template declaration here"
+msgstr ""
+
+#: cp/decl.cc:6022
+#, gcc-internal-format
+msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>"
+msgstr ""
+
+#: cp/decl.cc:6034
+#, gcc-internal-format
+msgid "duplicate initialization of %qD"
+msgstr ""
+
+#: cp/decl.cc:6084 cp/decl.cc:6088
+#, gcc-internal-format
+msgid "declaration of %q#D outside of class is not definition"
+msgstr ""
+
+#: cp/decl.cc:6106
+#, gcc-internal-format
+msgid "block-scope extern declaration %q#D must not be attached to a named module"
+msgstr ""
+
+#: cp/decl.cc:6142
+#, gcc-internal-format
+msgid "%qD defined %<thread_local%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/decl.cc:6148
+#, gcc-internal-format
+msgid "%qD defined %<static%> in %qs function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/decl.cc:6214
+#, gcc-internal-format
+msgid "variable %q#D has initializer but incomplete type"
+msgstr ""
+
+#: cp/decl.cc:6223 cp/decl.cc:7557
+#, gcc-internal-format
+msgid "elements of array %q#D have incomplete type"
+msgstr ""
+
+#: cp/decl.cc:6234
+#, gcc-internal-format
+msgid "aggregate %q#D has incomplete type and cannot be defined"
+msgstr ""
+
+#: cp/decl.cc:6304
+#, gcc-internal-format
+msgid "%qD declared as reference but not initialized"
+msgstr ""
+
+#: cp/decl.cc:6387
+#, gcc-internal-format
+msgid "name used in a GNU-style designated initializer for an array"
+msgstr ""
+
+#: cp/decl.cc:6393
+#, gcc-internal-format
+msgid "name %qD used in a GNU-style designated initializer for an array"
+msgstr ""
+
+#: cp/decl.cc:6412
+#, gcc-internal-format
+msgid "non-trivial designated initializers not supported"
+msgstr ""
+
+#: cp/decl.cc:6416
+#, gcc-internal-format
+msgid "C99 designator %qE is not an integral constant-expression"
+msgstr ""
+
+#: cp/decl.cc:6477
+#, gcc-internal-format
+msgid "initializer fails to determine size of %qD"
+msgstr ""
+
+#: cp/decl.cc:6484
+#, gcc-internal-format
+msgid "array size missing in %qD"
+msgstr ""
+
+#: cp/decl.cc:6496
+#, gcc-internal-format
+msgid "zero-size array %qD"
+msgstr ""
+
+#: cp/decl.cc:6536
+#, gcc-internal-format
+msgid "storage size of %qD isn%'t known"
+msgstr ""
+
+#: cp/decl.cc:6561
+#, gcc-internal-format
+msgid "storage size of %qD isn%'t constant"
+msgstr ""
+
+#: cp/decl.cc:6645
+#, gcc-internal-format
+msgid "sorry: semantics of inline variable %q#D are wrong (you%'ll wind up with multiple copies)"
+msgstr ""
+
+#: cp/decl.cc:6649
+#, gcc-internal-format
+msgid "sorry: semantics of inline function static data %q#D are wrong (you%'ll wind up with multiple copies)"
+msgstr ""
+
+#: cp/decl.cc:6655
+#, gcc-internal-format
+msgid "you can work around this by removing the initializer"
+msgstr ""
+
+#: cp/decl.cc:6697 rust/backend/rust-tree.cc:3278
+#, gcc-internal-format
+msgid "uninitialized %<const %D%>"
+msgstr ""
+
+#: cp/decl.cc:6704 rust/backend/rust-tree.cc:3285
+#, gcc-internal-format
+msgid "uninitialized variable %qD in %<constexpr%> function"
+msgstr ""
+
+#: cp/decl.cc:6713 rust/backend/rust-tree.cc:3294
+#, gcc-internal-format
+msgid "uninitialized variable %qD in %<constexpr%> context"
+msgstr ""
+
+#: cp/decl.cc:6721
+#, gcc-internal-format
+msgid "%q#T has no user-provided default constructor"
+msgstr ""
+
+#: cp/decl.cc:6725
+#, gcc-internal-format
+msgid "constructor is not user-provided because it is explicitly defaulted in the class body"
+msgstr ""
+
+#: cp/decl.cc:6728
+#, gcc-internal-format
+msgid "and the implicitly-defined constructor does not initialize %q#D"
+msgstr ""
+
+#: cp/decl.cc:6921
+#, gcc-internal-format
+msgid "invalid type %qT as initializer for a vector of type %qT"
+msgstr ""
+
+#: cp/decl.cc:6993
+#, gcc-internal-format
+msgid "initializer for %qT must be brace-enclosed"
+msgstr ""
+
+#: cp/decl.cc:7037
+#, gcc-internal-format
+msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT"
+msgstr ""
+
+#: cp/decl.cc:7053 cp/init.cc:3407 cp/search.cc:1230
+#, gcc-internal-format
+msgid "request for member %qD is ambiguous"
+msgstr ""
+
+#: cp/decl.cc:7058
+#, gcc-internal-format
+msgid "%qT has no non-static data member named %qD"
+msgstr ""
+
+#: cp/decl.cc:7083
+#, gcc-internal-format
+msgid "%qD is not a direct member of %qT"
+msgstr ""
+
+#: cp/decl.cc:7138
+#, gcc-internal-format
+msgid "invalid initializer for %q#D"
+msgstr ""
+
+#: cp/decl.cc:7188
+#, gcc-internal-format
+msgid "C99 designator %qE outside aggregate initializer"
+msgstr ""
+
+#: cp/decl.cc:7227 cp/decl.cc:7515 cp/typeck2.cc:1599 cp/typeck2.cc:1929
+#: cp/typeck2.cc:1977 cp/typeck2.cc:2024
+#, gcc-internal-format
+msgid "too many initializers for %qT"
+msgstr ""
+
+#: cp/decl.cc:7269
+#, gcc-internal-format
+msgid "braces around scalar initializer for type %qT"
+msgstr ""
+
+#: cp/decl.cc:7279
+#, gcc-internal-format
+msgid "too many braces around scalar initializer for type %qT"
+msgstr ""
+
+#: cp/decl.cc:7412
+#, gcc-internal-format
+msgid "missing braces around initializer for %qT"
+msgstr ""
+
+#: cp/decl.cc:7545
+#, gcc-internal-format
+msgid "structured binding has incomplete type %qT"
+msgstr ""
+
+#: cp/decl.cc:7559
+#, gcc-internal-format
+msgid "elements of array %q#T have incomplete type"
+msgstr ""
+
+#: cp/decl.cc:7572
+#, gcc-internal-format
+msgid "variable-sized compound literal"
+msgstr ""
+
+#: cp/decl.cc:7628
+#, gcc-internal-format
+msgid "%q#D has incomplete type"
+msgstr ""
+
+#: cp/decl.cc:7649
+#, gcc-internal-format
+msgid "scalar object %qD requires one element in initializer"
+msgstr ""
+
+#: cp/decl.cc:7694
+#, gcc-internal-format
+msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>"
+msgstr ""
+
+#: cp/decl.cc:7837
+#, gcc-internal-format
+msgid "array %qD initialized by parenthesized string literal %qE"
+msgstr ""
+
+#: cp/decl.cc:7876
+#, gcc-internal-format
+msgid "initializer invalid for static member with constructor"
+msgstr ""
+
+#: cp/decl.cc:7878
+#, gcc-internal-format
+msgid "non-constant in-class initialization invalid for static member %qD"
+msgstr ""
+
+#: cp/decl.cc:7881
+#, gcc-internal-format
+msgid "non-constant in-class initialization invalid for non-inline static member %qD"
+msgstr ""
+
+#: cp/decl.cc:7886
+#, gcc-internal-format
+msgid "(an out of class initialization is required)"
+msgstr ""
+
+#: cp/decl.cc:8088
+#, gcc-internal-format
+msgid "reference %qD is initialized with itself"
+msgstr ""
+
+#: cp/decl.cc:8347
+#, gcc-internal-format
+msgid "could not find variant declaration"
+msgstr ""
+
+#: cp/decl.cc:8371
+#, gcc-internal-format
+msgid "%<declare variant%> on constructor %qD"
+msgstr ""
+
+#: cp/decl.cc:8376
+#, gcc-internal-format
+msgid "%<declare variant%> on destructor %qD"
+msgstr ""
+
+#: cp/decl.cc:8381
+#, gcc-internal-format
+msgid "%<declare variant%> on defaulted %qD"
+msgstr ""
+
+#: cp/decl.cc:8386
+#, gcc-internal-format
+msgid "%<declare variant%> on deleted %qD"
+msgstr ""
+
+#: cp/decl.cc:8391
+#, gcc-internal-format
+msgid "%<declare variant%> on virtual %qD"
+msgstr ""
+
+#: cp/decl.cc:8445
+#, gcc-internal-format
+msgid "assignment (not initialization) in declaration"
+msgstr ""
+
+#: cp/decl.cc:8466 cp/decl.cc:15250
+#, gcc-internal-format
+msgid "ISO C++17 does not allow %<register%> storage class specifier"
+msgstr ""
+
+#: cp/decl.cc:8470 cp/decl.cc:15254
+#, gcc-internal-format
+msgid "%<register%> storage class specifier used"
+msgstr ""
+
+#: cp/decl.cc:8515 cp/decl.cc:15217
+#, gcc-internal-format
+msgid "declaration of %q#D has no initializer"
+msgstr ""
+
+#: cp/decl.cc:8551
+#, gcc-internal-format
+msgid "initializer for %<decltype(auto) %D%> has function type; did you forget the %<()%>?"
+msgstr ""
+
+#: cp/decl.cc:8562
+#, gcc-internal-format
+msgid "deduced type %qT for %qD is incomplete"
+msgstr ""
+
+#: cp/decl.cc:8700
+#, gcc-internal-format
+msgid "variable concept has no initializer"
+msgstr ""
+
+#: cp/decl.cc:8759
+#, gcc-internal-format
+msgid "shadowing previous type declaration of %q#D"
+msgstr ""
+
+#: cp/decl.cc:8802
+#, gcc-internal-format
+msgid "%<constinit%> can only be applied to a variable with static or thread storage duration"
+msgstr ""
+
+#: cp/decl.cc:8997
+#, gcc-internal-format
+msgid "function %q#D is initialized like a variable"
+msgstr ""
+
+#: cp/decl.cc:9108
+#, gcc-internal-format
+msgid "cannot decompose class type %qT because it has an anonymous struct member"
+msgstr ""
+
+#: cp/decl.cc:9111
+#, gcc-internal-format
+msgid "cannot decompose class type %qT because it has an anonymous union member"
+msgstr ""
+
+#: cp/decl.cc:9118
+#, gcc-internal-format
+msgid "cannot decompose inaccessible member %qD of %qT"
+msgstr ""
+
+#: cp/decl.cc:9144
+#, gcc-internal-format
+msgid "cannot decompose class type %qT: both it and its base class %qT have non-static data members"
+msgstr ""
+
+#: cp/decl.cc:9153
+#, gcc-internal-format
+msgid "cannot decompose class type %qT: its base classes %qT and %qT have non-static data members"
+msgstr ""
+
+#: cp/decl.cc:9390
+#, gcc-internal-format
+msgid "structured binding refers to incomplete type %qT"
+msgstr ""
+
+#: cp/decl.cc:9406
+#, gcc-internal-format
+msgid "cannot decompose variable length array %qT"
+msgstr ""
+
+#: cp/decl.cc:9415 cp/decl.cc:9494
+#, gcc-internal-format, gfc-internal-format
+msgid "%u name provided for structured binding"
+msgid_plural "%u names provided for structured binding"
+msgstr[0] ""
+msgstr[1] ""
+
+#: cp/decl.cc:9419
+#, gcc-internal-format, gfc-internal-format
+msgid "only %u name provided for structured binding"
+msgid_plural "only %u names provided for structured binding"
+msgstr[0] ""
+msgstr[1] ""
+
+#: cp/decl.cc:9422
+#, gcc-internal-format
+msgid "while %qT decomposes into %wu element"
+msgid_plural "while %qT decomposes into %wu elements"
+msgstr[0] ""
+msgstr[1] ""
+
+#: cp/decl.cc:9463
+#, gcc-internal-format
+msgid "cannot decompose variable length vector %qT"
+msgstr ""
+
+#: cp/decl.cc:9487
+#, gcc-internal-format
+msgid "%<std::tuple_size<%T>::value%> is not an integral constant expression"
+msgstr ""
+
+#: cp/decl.cc:9496
+#, gcc-internal-format
+msgid "while %qT decomposes into %E elements"
+msgstr ""
+
+#: cp/decl.cc:9517
+#, gcc-internal-format
+msgid "%<std::tuple_element<%u, %T>::type%> is %<void%>"
+msgstr ""
+
+#: cp/decl.cc:9523
+#, gcc-internal-format
+msgid "in initialization of structured binding variable %qD"
+msgstr ""
+
+#: cp/decl.cc:9552
+#, gcc-internal-format
+msgid "cannot decompose union type %qT"
+msgstr ""
+
+#: cp/decl.cc:9557
+#, gcc-internal-format
+msgid "cannot decompose non-array non-class type %qT"
+msgstr ""
+
+#: cp/decl.cc:9562
+#, gcc-internal-format
+msgid "cannot decompose lambda closure type %qT"
+msgstr ""
+
+#: cp/decl.cc:9568
+#, gcc-internal-format
+msgid "structured binding refers to incomplete class type %qT"
+msgstr ""
+
+#: cp/decl.cc:9577
+#, gcc-internal-format
+msgid "cannot decompose class type %qT without non-static data members"
+msgstr ""
+
+#: cp/decl.cc:10062
+#, gcc-internal-format
+msgid "non-local variable %qD declared %<__thread%> needs dynamic initialization"
+msgstr ""
+
+#: cp/decl.cc:10065
+#, gcc-internal-format
+msgid "non-local variable %qD declared %<__thread%> has a non-trivial destructor"
+msgstr ""
+
+#: cp/decl.cc:10070
+#, gcc-internal-format
+msgid "C++11 %<thread_local%> allows dynamic initialization and destruction"
+msgstr ""
+
+#: cp/decl.cc:10289
+#, gcc-internal-format
+msgid "initializer fails to determine size of %qT"
+msgstr ""
+
+#: cp/decl.cc:10293
+#, gcc-internal-format
+msgid "array size missing in %qT"
+msgstr ""
+
+#: cp/decl.cc:10296
+#, gcc-internal-format
+msgid "zero-size array %qT"
+msgstr ""
+
+#: cp/decl.cc:10312
+#, gcc-internal-format
+msgid "destructor for alien class %qT cannot be a member"
+msgstr ""
+
+#: cp/decl.cc:10314
+#, gcc-internal-format
+msgid "constructor for alien class %qT cannot be a member"
+msgstr ""
+
+#: cp/decl.cc:10340
+#, gcc-internal-format
+msgid "%qD declared as a %<virtual%> variable"
+msgstr ""
+
+#: cp/decl.cc:10342
+#, gcc-internal-format
+msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration"
+msgstr ""
+
+#: cp/decl.cc:10348
+#, gcc-internal-format
+msgid "%qD declared as a %<virtual%> parameter"
+msgstr ""
+
+#: cp/decl.cc:10351
+#, gcc-internal-format
+msgid "%qD declared as an %<inline%> parameter"
+msgstr ""
+
+#: cp/decl.cc:10353
+#, gcc-internal-format
+msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration"
+msgstr ""
+
+#: cp/decl.cc:10359
+#, gcc-internal-format
+msgid "%qD declared as a %<virtual%> type"
+msgstr ""
+
+#: cp/decl.cc:10362
+#, gcc-internal-format
+msgid "%qD declared as an %<inline%> type"
+msgstr ""
+
+#: cp/decl.cc:10364
+#, gcc-internal-format
+msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration"
+msgstr ""
+
+#: cp/decl.cc:10370
+#, gcc-internal-format
+msgid "%qD declared as a %<virtual%> field"
+msgstr ""
+
+#: cp/decl.cc:10373
+#, gcc-internal-format
+msgid "%qD declared as an %<inline%> field"
+msgstr ""
+
+#: cp/decl.cc:10375
+#, gcc-internal-format
+msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration"
+msgstr ""
+
+#: cp/decl.cc:10382
+#, gcc-internal-format
+msgid "%q+D declared as a friend"
+msgstr ""
+
+#: cp/decl.cc:10389
+#, gcc-internal-format
+msgid "%q+D declared with an exception specification"
+msgstr ""
+
+#: cp/decl.cc:10421
+#, gcc-internal-format
+msgid "definition of %qD is not in namespace enclosing %qT"
+msgstr ""
+
+#: cp/decl.cc:10461
+#, gcc-internal-format
+msgid "static member function %q#D declared with type qualifiers"
+msgstr ""
+
+#: cp/decl.cc:10472
+#, gcc-internal-format
+msgid "concept %q#D declared with function parameters"
+msgstr ""
+
+#: cp/decl.cc:10479
+#, gcc-internal-format
+msgid "concept %q#D declared with a deduced return type"
+msgstr ""
+
+#: cp/decl.cc:10482
+#, gcc-internal-format
+msgid "concept %q#D with non-%<bool%> return type %qT"
+msgstr ""
+
+#: cp/decl.cc:10558
+#, gcc-internal-format
+msgid "concept %qD has no definition"
+msgstr ""
+
+#: cp/decl.cc:10587
+#, gcc-internal-format
+msgid "a function concept cannot be constrained"
+msgstr ""
+
+#: cp/decl.cc:10602
+#, gcc-internal-format
+msgid "constraints on a non-templated function"
+msgstr ""
+
+#: cp/decl.cc:10604
+#, gcc-internal-format
+msgid "constrained non-template friend declaration must be a definition"
+msgstr ""
+
+#: cp/decl.cc:10611
+#, gcc-internal-format
+msgid "friend function template with constraints that depend on outer template parameters must be a definition"
+msgstr ""
+
+#: cp/decl.cc:10660
+#, gcc-internal-format
+msgid "defining explicit specialization %qD in friend declaration"
+msgstr ""
+
+#: cp/decl.cc:10671
+#, gcc-internal-format
+msgid "invalid use of template-id %qD in declaration of primary template"
+msgstr ""
+
+#: cp/decl.cc:10689
+#, gcc-internal-format
+msgid "default arguments are not allowed in declaration of friend template specialization %qD"
+msgstr ""
+
+#: cp/decl.cc:10698
+#, gcc-internal-format
+msgid "%<inline%> is not allowed in declaration of friend template specialization %qD"
+msgstr ""
+
+#: cp/decl.cc:10715
+#, gcc-internal-format
+msgid "friend declaration of %qD specifies default arguments and isn%'t a definition"
+msgstr ""
+
+#: cp/decl.cc:10757
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be a template"
+msgstr ""
+
+#: cp/decl.cc:10760
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be inline"
+msgstr ""
+
+#: cp/decl.cc:10763 cp/decl.cc:10766
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be %qs"
+msgstr ""
+
+#: cp/decl.cc:10768
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be static"
+msgstr ""
+
+#: cp/decl.cc:10835
+#, gcc-internal-format
+msgid "non-member function %qD cannot have cv-qualifier"
+msgstr ""
+
+#: cp/decl.cc:10837
+#, gcc-internal-format
+msgid "static member function %qD cannot have cv-qualifier"
+msgstr ""
+
+#: cp/decl.cc:10838
+#, gcc-internal-format
+msgid "explicit object member function %qD cannot have cv-qualifier"
+msgstr ""
+
+#: cp/decl.cc:10843
+#, gcc-internal-format
+msgid "non-member function %qD cannot have ref-qualifier"
+msgstr ""
+
+#: cp/decl.cc:10845
+#, gcc-internal-format
+msgid "static member function %qD cannot have ref-qualifier"
+msgstr ""
+
+#: cp/decl.cc:10846
+#, gcc-internal-format
+msgid "explicit object member function %qD cannot have ref-qualifier"
+msgstr ""
+
+#: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
+#, gcc-internal-format
+msgid "explicit object parameter declared here"
+msgstr ""
+
+#: cp/decl.cc:10864
+#, gcc-internal-format
+msgid "deduction guide %qD must be declared in the same scope as %qT"
+msgstr ""
+
+#: cp/decl.cc:10872
+#, gcc-internal-format
+msgid "deduction guide %qD must have the same access as %qT"
+msgstr ""
+
+#: cp/decl.cc:10878
+#, gcc-internal-format
+msgid "deduction guide %qD must not have a function body"
+msgstr ""
+
+#: cp/decl.cc:10891
+#, gcc-internal-format
+msgid "literal operator with C linkage"
+msgstr ""
+
+#: cp/decl.cc:10901
+#, gcc-internal-format
+msgid "%qD has invalid argument list"
+msgstr ""
+
+#: cp/decl.cc:10909
+#, gcc-internal-format
+msgid "integer suffix %qs shadowed by implementation"
+msgstr ""
+
+#: cp/decl.cc:10915
+#, gcc-internal-format
+msgid "floating-point suffix %qs shadowed by implementation"
+msgstr ""
+
+#: cp/decl.cc:10922
+#, gcc-internal-format
+msgid "literal operator suffixes not preceded by %<_%> are reserved for future standardization"
+msgstr ""
+
+#: cp/decl.cc:10927
+#, gcc-internal-format
+msgid "%qD must be a non-member function"
+msgstr ""
+
+#: cp/decl.cc:11013
+#, gcc-internal-format
+msgid "%<::main%> must return %<int%>"
+msgstr ""
+
+#: cp/decl.cc:11053
+#, gcc-internal-format
+msgid "definition of implicitly-declared %qD"
+msgstr ""
+
+#: cp/decl.cc:11058
+#, gcc-internal-format
+msgid "definition of explicitly-defaulted %q+D"
+msgstr ""
+
+#: cp/decl.cc:11060
+#, gcc-internal-format
+msgid "%q#D explicitly defaulted here"
+msgstr ""
+
+#: cp/decl.cc:11077
+#, gcc-internal-format
+msgid "no %q#D member function declared in class %qT"
+msgstr ""
+
+#: cp/decl.cc:11271
+#, gcc-internal-format
+msgid "cannot declare %<::main%> to be a global variable"
+msgstr ""
+
+#: cp/decl.cc:11280
+#, gcc-internal-format
+msgid "a non-template variable cannot be %<concept%>"
+msgstr ""
+
+#: cp/decl.cc:11286
+#, gcc-internal-format
+msgid "concept must be defined at namespace scope"
+msgstr ""
+
+#: cp/decl.cc:11293
+#, gcc-internal-format
+msgid "concept must have type %<bool%>"
+msgstr ""
+
+#: cp/decl.cc:11296
+#, gcc-internal-format
+msgid "a variable concept cannot be constrained"
+msgstr ""
+
+#: cp/decl.cc:11418
+#, gcc-internal-format
+msgid "in-class initialization of static data member %q#D of incomplete type"
+msgstr ""
+
+#: cp/decl.cc:11422
+#, gcc-internal-format
+msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type"
+msgstr ""
+
+#: cp/decl.cc:11426
+#, gcc-internal-format
+msgid "in-class initialization of static data member %q#D of non-literal type"
+msgstr ""
+
+#: cp/decl.cc:11437
+#, gcc-internal-format
+msgid "invalid in-class initialization of static data member of non-integral type %qT"
+msgstr ""
+
+#: cp/decl.cc:11442
+#, gcc-internal-format
+msgid "ISO C++ forbids in-class initialization of non-const static member %qD"
+msgstr ""
+
+#: cp/decl.cc:11447
+#, gcc-internal-format
+msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT"
+msgstr ""
+
+#: cp/decl.cc:11558
+#, gcc-internal-format
+msgid "size of array %qD has non-integral type %qT"
+msgstr ""
+
+#: cp/decl.cc:11561
+#, gcc-internal-format
+msgid "size of array has non-integral type %qT"
+msgstr ""
+
+#: cp/decl.cc:11592 cp/decl.cc:11664
+#, gcc-internal-format
+msgid "size of array %qD is not an integral constant-expression"
+msgstr ""
+
+#: cp/decl.cc:11596 cp/decl.cc:11667
+#, gcc-internal-format
+msgid "size of array is not an integral constant-expression"
+msgstr ""
+
+#: cp/decl.cc:11647
+#, gcc-internal-format
+msgid "ISO C++ forbids zero-size array %qD"
+msgstr ""
+
+#: cp/decl.cc:11650
+#, gcc-internal-format
+msgid "ISO C++ forbids zero-size array"
+msgstr ""
+
+#: cp/decl.cc:11674
+#, gcc-internal-format
+msgid "ISO C++ forbids variable length array %qD"
+msgstr ""
+
+#: cp/decl.cc:11677
+#, gcc-internal-format
+msgid "ISO C++ forbids variable length array"
+msgstr ""
+
+#: cp/decl.cc:11683
+#, gcc-internal-format
+msgid "variable length array %qD is used"
+msgstr ""
+
+#: cp/decl.cc:11686
+#, gcc-internal-format
+msgid "variable length array is used"
+msgstr ""
+
+#: cp/decl.cc:11738
+#, gcc-internal-format
+msgid "overflow in array dimension"
+msgstr ""
+
+#: cp/decl.cc:11798
+#, gcc-internal-format
+msgid "%qD declared as array of template placeholder type %qT"
+msgstr ""
+
+#: cp/decl.cc:11801
+#, gcc-internal-format
+msgid "creating array of template placeholder type %qT"
+msgstr ""
+
+#: cp/decl.cc:11811
+#, gcc-internal-format
+msgid "declaration of %qD as array of void"
+msgstr ""
+
+#: cp/decl.cc:11813
+#, gcc-internal-format
+msgid "creating array of void"
+msgstr ""
+
+#: cp/decl.cc:11818
+#, gcc-internal-format
+msgid "declaration of %qD as array of functions"
+msgstr ""
+
+#: cp/decl.cc:11820
+#, gcc-internal-format
+msgid "creating array of functions"
+msgstr ""
+
+#: cp/decl.cc:11825
+#, gcc-internal-format
+msgid "declaration of %qD as array of references"
+msgstr ""
+
+#: cp/decl.cc:11827
+#, gcc-internal-format
+msgid "creating array of references"
+msgstr ""
+
+#: cp/decl.cc:11832
+#, gcc-internal-format
+msgid "declaration of %qD as array of function members"
+msgstr ""
+
+#: cp/decl.cc:11835
+#, gcc-internal-format
+msgid "creating array of function members"
+msgstr ""
+
+#: cp/decl.cc:11853
+#, gcc-internal-format
+msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first"
+msgstr ""
+
+#: cp/decl.cc:11857
+#, gcc-internal-format
+msgid "multidimensional array must have bounds for all dimensions except the first"
+msgstr ""
+
+#: cp/decl.cc:11871
+#, gcc-internal-format
+msgid "variable-length array of %<auto%>"
+msgstr ""
+
+#: cp/decl.cc:11947
+#, gcc-internal-format
+msgid "return type specification for constructor invalid"
+msgstr ""
+
+#: cp/decl.cc:11950
+#, gcc-internal-format
+msgid "qualifiers are not allowed on constructor declaration"
+msgstr ""
+
+#: cp/decl.cc:11961
+#, gcc-internal-format
+msgid "return type specification for destructor invalid"
+msgstr ""
+
+#: cp/decl.cc:11964
+#, gcc-internal-format
+msgid "qualifiers are not allowed on destructor declaration"
+msgstr ""
+
+#: cp/decl.cc:11977
+#, gcc-internal-format
+msgid "return type specified for %<operator %T%>"
+msgstr ""
+
+#: cp/decl.cc:11980
+#, gcc-internal-format
+msgid "qualifiers are not allowed on declaration of %<operator %T%>"
+msgstr ""
+
+#: cp/decl.cc:11989
+#, gcc-internal-format
+msgid "return type specified for deduction guide"
+msgstr ""
+
+#: cp/decl.cc:11992
+#, gcc-internal-format
+msgid "qualifiers are not allowed on declaration of deduction guide"
+msgstr ""
+
+#: cp/decl.cc:11996
+#, gcc-internal-format
+msgid "template template parameter %qT in declaration of deduction guide"
+msgstr ""
+
+#: cp/decl.cc:12005
+#, gcc-internal-format
+msgid "%<decl-specifier%> in declaration of deduction guide"
+msgstr ""
+
+#: cp/decl.cc:12026
+#, gcc-internal-format
+msgid "unnamed variable or field declared void"
+msgstr ""
+
+#: cp/decl.cc:12034
+#, gcc-internal-format
+msgid "variable or field declared void"
+msgstr ""
+
+#: cp/decl.cc:12049
+#, gcc-internal-format
+msgid "%<inline%> specifier invalid for variable %qD declared at block scope"
+msgstr ""
+
+#: cp/decl.cc:12054
+#, gcc-internal-format
+msgid "inline variables are only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/decl.cc:12110
+#, gcc-internal-format
+msgid "%qT as type rather than plain %<decltype(auto)%>"
+msgstr ""
+
+#: cp/decl.cc:12116
+#, gcc-internal-format
+msgid "%<decltype(auto)%> cannot be cv-qualified"
+msgstr ""
+
+#: cp/decl.cc:12332
+#, gcc-internal-format
+msgid "invalid use of qualified-name %<::%D%>"
+msgstr ""
+
+#: cp/decl.cc:12335 cp/decl.cc:12357
+#, gcc-internal-format
+msgid "invalid use of qualified-name %<%T::%D%>"
+msgstr ""
+
+#: cp/decl.cc:12338
+#, gcc-internal-format
+msgid "invalid use of qualified-name %<%D::%D%>"
+msgstr ""
+
+#: cp/decl.cc:12348
+#, gcc-internal-format
+msgid "%q#T is not a class or namespace"
+msgstr ""
+
+#: cp/decl.cc:12372
+#, gcc-internal-format
+msgid "declaration of %qE as non-function"
+msgstr ""
+
+#: cp/decl.cc:12379
+#, gcc-internal-format
+msgid "declaration of %qE as non-member"
+msgstr ""
+
+#: cp/decl.cc:12407
+#, gcc-internal-format
+msgid "declarator-id missing; using reserved word %qD"
+msgstr ""
+
+#: cp/decl.cc:12458
+#, gcc-internal-format
+msgid "function definition does not declare parameters"
+msgstr ""
+
+#: cp/decl.cc:12466 cp/decl.cc:12475 cp/decl.cc:14460
+#, gcc-internal-format
+msgid "declaration of %qD as non-function"
+msgstr ""
+
+#: cp/decl.cc:12483
+#, gcc-internal-format
+msgid "declaration of %qD as %<typedef%>"
+msgstr ""
+
+#: cp/decl.cc:12488
+#, gcc-internal-format
+msgid "declaration of %qD as parameter"
+msgstr ""
+
+#: cp/decl.cc:12523
+#, gcc-internal-format
+msgid "both %qs and %qs specified"
+msgstr ""
+
+#: cp/decl.cc:12530 cp/decl.cc:12537 cp/decl.cc:12544 cp/decl.cc:12551
+#, gcc-internal-format
+msgid "%qs cannot appear in a typedef declaration"
+msgstr ""
+
+#: cp/decl.cc:12562
+#, gcc-internal-format
+msgid "can use at most one of the %<constinit%> and %<constexpr%> specifiers"
+msgstr ""
+
+#: cp/decl.cc:12572
+#, gcc-internal-format
+msgid "two or more data types in declaration of %qs"
+msgstr ""
+
+#: cp/decl.cc:12626
+#, gcc-internal-format
+msgid "ISO C++ does not support plain %<complex%> meaning %<double complex%>"
+msgstr ""
+
+#: cp/decl.cc:12675 cp/decl.cc:12679 cp/decl.cc:12682
+#, gcc-internal-format
+msgid "ISO C++ forbids declaration of %qs with no type"
+msgstr ""
+
+#: cp/decl.cc:12699
+#, gcc-internal-format
+msgid "%<__int%d%> is not supported by this target"
+msgstr ""
+
+#: cp/decl.cc:12707
+#, gcc-internal-format
+msgid "ISO C++ does not support %<__int%d%> for %qs"
+msgstr ""
+
+#: cp/decl.cc:12761
+#, gcc-internal-format
+msgid "%<signed%> and %<unsigned%> specified together"
+msgstr ""
+
+#: cp/decl.cc:12767
+#, gcc-internal-format
+msgid "%<long%> and %<short%> specified together"
+msgstr ""
+
+#: cp/decl.cc:12775
+#, gcc-internal-format
+msgid "%qs specified with %qT"
+msgstr ""
+
+#: cp/decl.cc:12782
+#, gcc-internal-format
+msgid "%qs specified with typedef-name %qD"
+msgstr ""
+
+#: cp/decl.cc:12791
+#, gcc-internal-format
+msgid "%qs specified with %<decltype%>"
+msgstr ""
+
+#: cp/decl.cc:12793
+#, gcc-internal-format
+msgid "%qs specified with %<typeof%>"
+msgstr ""
+
+#: cp/decl.cc:12862
+#, gcc-internal-format
+msgid "complex invalid for %qs"
+msgstr ""
+
+#: cp/decl.cc:12906
+#, gcc-internal-format
+msgid "missing template argument list after %qE; for deduction, template placeholder must be followed by a simple declarator-id"
+msgstr ""
+
+#: cp/decl.cc:12932
+#, gcc-internal-format
+msgid "member %qD cannot be declared both %<virtual%> and %<static%>"
+msgstr ""
+
+#: cp/decl.cc:12941
+#, gcc-internal-format
+msgid "member %qD can be declared both %<virtual%> and %<constexpr%> only in %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/decl.cc:12954
+#, gcc-internal-format
+msgid "typedef declaration invalid in parameter declaration"
+msgstr ""
+
+#: cp/decl.cc:12961
+#, gcc-internal-format
+msgid "storage class specified for template parameter %qs"
+msgstr ""
+
+#: cp/decl.cc:12971 cp/decl.cc:13148
+#, gcc-internal-format
+msgid "storage class specified for parameter %qs"
+msgstr ""
+
+#: cp/decl.cc:12979 cp/decl.cc:12988 cp/decl.cc:12994 cp/decl.cc:13000
+#, gcc-internal-format
+msgid "a parameter cannot be declared %qs"
+msgstr ""
+
+#: cp/decl.cc:13010
+#, gcc-internal-format
+msgid "%<virtual%> outside class declaration"
+msgstr ""
+
+#: cp/decl.cc:13020 cp/decl.cc:13023 cp/decl.cc:13025 cp/decl.cc:13028
+#: cp/decl.cc:13038 cp/decl.cc:13048 cp/decl.cc:13058 cp/decl.cc:13062
+#, gcc-internal-format
+msgid "structured binding declaration cannot be %qs"
+msgstr ""
+
+#: cp/decl.cc:13032 cp/decl.cc:13054
+#, gcc-internal-format
+msgid "structured binding declaration can be %qs only in %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/decl.cc:13042
+#, gcc-internal-format
+msgid "%<volatile%>-qualified structured binding is deprecated"
+msgstr ""
+
+#: cp/decl.cc:13066
+#, gcc-internal-format
+msgid "structured binding declaration cannot be C++98 %<auto%>"
+msgstr ""
+
+#: cp/decl.cc:13078
+#, gcc-internal-format
+msgid "structured binding declaration cannot have type %qT"
+msgstr ""
+
+#: cp/decl.cc:13081
+#, gcc-internal-format
+msgid "type must be cv-qualified %<auto%> or reference to cv-qualified %<auto%>"
+msgstr ""
+
+#: cp/decl.cc:13089
+#, gcc-internal-format
+msgid "structured binding declaration cannot have constrained %<auto%> type %qT"
+msgstr ""
+
+#: cp/decl.cc:13120
+#, gcc-internal-format
+msgid "multiple storage classes in declaration of %qs"
+msgstr ""
+
+#: cp/decl.cc:13146
+#, gcc-internal-format
+msgid "storage class specified for %qs"
+msgstr ""
+
+#: cp/decl.cc:13160
+#, gcc-internal-format
+msgid "nested function %qs declared %<extern%>"
+msgstr ""
+
+#: cp/decl.cc:13165
+#, gcc-internal-format
+msgid "top-level declaration of %qs specifies %<auto%>"
+msgstr ""
+
+#: cp/decl.cc:13173
+#, gcc-internal-format
+msgid "function-scope %qs implicitly auto and declared %<__thread%>"
+msgstr ""
+
+#: cp/decl.cc:13187
+#, gcc-internal-format
+msgid "storage class specifiers invalid in friend function declarations"
+msgstr ""
+
+#: cp/decl.cc:13220 cp/decl.cc:14850 cp/parser.cc:15434 cp/parser.cc:21379
+#: cp/parser.cc:28063
+#, gcc-internal-format
+msgid "attribute ignored"
+msgstr ""
+
+#: cp/decl.cc:13221
+#, gcc-internal-format
+msgid "an attribute that appertains to a type-specifier is ignored"
+msgstr ""
+
+#: cp/decl.cc:13291
+#, gcc-internal-format
+msgid "unnecessary parentheses in declaration of %qs"
+msgstr ""
+
+#: cp/decl.cc:13297
+#, gcc-internal-format
+msgid "remove parentheses"
+msgstr ""
+
+#: cp/decl.cc:13365
+#, gcc-internal-format
+msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
+msgstr ""
+
+#: cp/decl.cc:13379
+#, gcc-internal-format
+msgid "a function type cannot have an explicit object parameter"
+msgstr ""
+
+#: cp/decl.cc:13385
+#, gcc-internal-format
+msgid "a pointer to function type cannot have an explicit object parameter"
+msgstr ""
+
+#: cp/decl.cc:13389
+#, gcc-internal-format
+msgid "a pointer to member function type cannot have an explicit object parameter"
+msgstr ""
+
+#: cp/decl.cc:13397
+#, gcc-internal-format
+msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
+msgstr ""
+
+#: cp/decl.cc:13401
+#, gcc-internal-format
+msgid "the type of an explicit object member function is a regular function type"
+msgstr ""
+
+#: cp/decl.cc:13422
+#, gcc-internal-format
+msgid "only the first parameter of a member function can be declared as an explicit object parameter"
+msgstr ""
+
+#: cp/decl.cc:13427
+#, gcc-internal-format
+msgid "valid explicit object parameter declared here"
+msgstr ""
+
+#: cp/decl.cc:13431
+#, gcc-internal-format
+msgid "requires-clause on return type"
+msgstr ""
+
+#: cp/decl.cc:13451
+#, gcc-internal-format
+msgid "%qs function uses %<auto%> type specifier without trailing return type"
+msgstr ""
+
+#: cp/decl.cc:13455
+#, gcc-internal-format
+msgid "deduced return type only available with %<-std=c++14%> or %<-std=gnu++14%>"
+msgstr ""
+
+#: cp/decl.cc:13460
+#, gcc-internal-format
+msgid "virtual function cannot have deduced return type"
+msgstr ""
+
+#: cp/decl.cc:13467
+#, gcc-internal-format
+msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>"
+msgstr ""
+
+#: cp/decl.cc:13476
+#, gcc-internal-format
+msgid "%qs function with trailing return type has %<decltype(auto)%> as its type rather than plain %<auto%>"
+msgstr ""
+
+#: cp/decl.cc:13481
+#, gcc-internal-format
+msgid "invalid use of %<decltype(auto)%>"
+msgstr ""
+
+#: cp/decl.cc:13493
+#, gcc-internal-format
+msgid "deduced class type %qD in function return type"
+msgstr ""
+
+#: cp/decl.cc:13502
+#, gcc-internal-format
+msgid "deduction guide for %qT must have trailing return type"
+msgstr ""
+
+#: cp/decl.cc:13515
+#, gcc-internal-format
+msgid "trailing return type %qT of deduction guide is not a specialization of %qT"
+msgstr ""
+
+#: cp/decl.cc:13529
+#, gcc-internal-format
+msgid "trailing return type only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/decl.cc:13532
+#, gcc-internal-format
+msgid "%qs function with trailing return type not declared with %<auto%> type specifier"
+msgstr ""
+
+#: cp/decl.cc:13539
+#, gcc-internal-format
+msgid "a conversion function cannot have a trailing return type"
+msgstr ""
+
+#: cp/decl.cc:13565
+#, gcc-internal-format
+msgid "%<volatile%>-qualified return type is deprecated"
+msgstr ""
+
+#: cp/decl.cc:13577
+#, gcc-internal-format
+msgid "%qs declared as function returning a function"
+msgstr ""
+
+#: cp/decl.cc:13583
+#, gcc-internal-format
+msgid "%qs declared as function returning an array"
+msgstr ""
+
+#: cp/decl.cc:13590
+#, gcc-internal-format
+msgid "%<constinit%> on function return type is not allowed"
+msgstr ""
+
+#: cp/decl.cc:13623
+#, gcc-internal-format
+msgid "destructor cannot be static member function"
+msgstr ""
+
+#: cp/decl.cc:13625
+#, gcc-internal-format
+msgid "constructor cannot be static member function"
+msgstr ""
+
+#: cp/decl.cc:13630
+#, gcc-internal-format
+msgid "destructors may not be cv-qualified"
+msgstr ""
+
+#: cp/decl.cc:13631
+#, gcc-internal-format
+msgid "constructors may not be cv-qualified"
+msgstr ""
+
+#: cp/decl.cc:13639
+#, gcc-internal-format
+msgid "destructors may not be ref-qualified"
+msgstr ""
+
+#: cp/decl.cc:13640
+#, gcc-internal-format
+msgid "constructors may not be ref-qualified"
+msgstr ""
+
+#: cp/decl.cc:13658
+#, gcc-internal-format
+msgid "constructors cannot be declared %<virtual%>"
+msgstr ""
+
+#: cp/decl.cc:13675
+#, gcc-internal-format
+msgid "virtual functions cannot be friends"
+msgstr ""
+
+#: cp/decl.cc:13680
+#, gcc-internal-format
+msgid "friend declaration not in class definition"
+msgstr ""
+
+#: cp/decl.cc:13684
+#, gcc-internal-format
+msgid "cannot define friend function %qs in a local class definition"
+msgstr ""
+
+#: cp/decl.cc:13694
+#, gcc-internal-format
+msgid "friend function definition %qs cannot have a name qualified with %<::%>"
+msgstr ""
+
+#: cp/decl.cc:13698
+#, gcc-internal-format
+msgid "friend function definition %qs cannot have a name qualified with %<%D::%>"
+msgstr ""
+
+#: cp/decl.cc:13724
+#, gcc-internal-format
+msgid "a non-member function cannot have an explicit object parameter"
+msgstr ""
+
+#: cp/decl.cc:13732
+#, gcc-internal-format
+msgid "an explicit object member function cannot be %<virtual%>"
+msgstr ""
+
+#: cp/decl.cc:13742
+#, gcc-internal-format
+msgid "an explicit object member function cannot be %<static%>"
+msgstr ""
+
+#: cp/decl.cc:13751
+#, gcc-internal-format
+msgid "%qD cannot be an explicit object member function"
+msgstr ""
+
+#: cp/decl.cc:13774
+#, gcc-internal-format
+msgid "destructors may not have parameters"
+msgstr ""
+
+#: cp/decl.cc:13832
+#, gcc-internal-format
+msgid "cannot declare pointer to %q#T"
+msgstr ""
+
+#: cp/decl.cc:13845 cp/decl.cc:13852
+#, gcc-internal-format
+msgid "cannot declare reference to %q#T"
+msgstr ""
+
+#: cp/decl.cc:13854
+#, gcc-internal-format
+msgid "cannot declare pointer to %q#T member"
+msgstr ""
+
+#: cp/decl.cc:13883
+#, gcc-internal-format
+msgid "cannot declare reference to qualified function type %qT"
+msgstr ""
+
+#: cp/decl.cc:13884
+#, gcc-internal-format
+msgid "cannot declare pointer to qualified function type %qT"
+msgstr ""
+
+#: cp/decl.cc:13957
+#, gcc-internal-format
+msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument"
+msgstr ""
+
+#: cp/decl.cc:14037
+#, gcc-internal-format
+msgid "template-id %qD used as a declarator"
+msgstr ""
+
+#: cp/decl.cc:14063
+#, gcc-internal-format
+msgid "member functions are implicitly friends of their class"
+msgstr ""
+
+#: cp/decl.cc:14068
+#, gcc-internal-format
+msgid "extra qualification %<%T::%> on member %qs"
+msgstr ""
+
+#: cp/decl.cc:14098
+#, gcc-internal-format
+msgid "cannot define member function %<%T::%s%> within %qT"
+msgstr ""
+
+#: cp/decl.cc:14100
+#, gcc-internal-format
+msgid "cannot declare member function %<%T::%s%> within %qT"
+msgstr ""
+
+#: cp/decl.cc:14108
+#, gcc-internal-format
+msgid "cannot declare member %<%T::%s%> within %qT"
+msgstr ""
+
+#: cp/decl.cc:14148
+#, gcc-internal-format
+msgid "non-parameter %qs cannot be a parameter pack"
+msgstr ""
+
+#: cp/decl.cc:14157
+#, gcc-internal-format
+msgid "data member may not have variably modified type %qT"
+msgstr ""
+
+#: cp/decl.cc:14160
+#, gcc-internal-format
+msgid "parameter may not have variably modified type %qT"
+msgstr ""
+
+#: cp/decl.cc:14171
+#, gcc-internal-format
+msgid "%<explicit%> outside class declaration"
+msgstr ""
+
+#: cp/decl.cc:14174
+#, gcc-internal-format
+msgid "%<explicit%> in friend declaration"
+msgstr ""
+
+#: cp/decl.cc:14177
+#, gcc-internal-format
+msgid "only declarations of constructors and conversion operators can be %<explicit%>"
+msgstr ""
+
+#: cp/decl.cc:14187
+#, gcc-internal-format
+msgid "non-member %qs cannot be declared %<mutable%>"
+msgstr ""
+
+#: cp/decl.cc:14194
+#, gcc-internal-format
+msgid "non-object member %qs cannot be declared %<mutable%>"
+msgstr ""
+
+#: cp/decl.cc:14200
+#, gcc-internal-format
+msgid "function %qs cannot be declared %<mutable%>"
+msgstr ""
+
+#: cp/decl.cc:14206
+#, gcc-internal-format
+msgid "%<static%> %qs cannot be declared %<mutable%>"
+msgstr ""
+
+#: cp/decl.cc:14212
+#, gcc-internal-format
+msgid "%<const%> %qs cannot be declared %<mutable%>"
+msgstr ""
+
+#: cp/decl.cc:14218
+#, gcc-internal-format
+msgid "reference %qs cannot be declared %<mutable%>"
+msgstr ""
+
+#: cp/decl.cc:14234
+#, gcc-internal-format
+msgid "typedef may not be a function definition"
+msgstr ""
+
+#: cp/decl.cc:14237
+#, gcc-internal-format
+msgid "typedef may not be a member function definition"
+msgstr ""
+
+#: cp/decl.cc:14263
+#, gcc-internal-format
+msgid "%<auto%> not allowed in alias declaration"
+msgstr ""
+
+#: cp/decl.cc:14266
+#, gcc-internal-format
+msgid "typedef declared %<auto%>"
+msgstr ""
+
+#: cp/decl.cc:14271
+#, gcc-internal-format
+msgid "requires-clause on typedef"
+msgstr ""
+
+#: cp/decl.cc:14275
+#, gcc-internal-format
+msgid "typedef name may not be a nested-name-specifier"
+msgstr ""
+
+#: cp/decl.cc:14301
+#, gcc-internal-format
+msgid "ISO C++ forbids nested type %qD with same name as enclosing class"
+msgstr ""
+
+#: cp/decl.cc:14390
+#, gcc-internal-format
+msgid "%<inline%> specified for friend class declaration"
+msgstr ""
+
+#: cp/decl.cc:14398
+#, gcc-internal-format
+msgid "template parameters cannot be friends"
+msgstr ""
+
+#: cp/decl.cc:14400
+#, gcc-internal-format
+msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>"
+msgstr ""
+
+#: cp/decl.cc:14404
+#, gcc-internal-format
+msgid "friend declaration requires class-key, i.e. %<friend %#T%>"
+msgstr ""
+
+#: cp/decl.cc:14417
+#, gcc-internal-format
+msgid "trying to make class %qT a friend of global scope"
+msgstr ""
+
+#: cp/decl.cc:14437
+#, gcc-internal-format
+msgid "invalid qualifiers on non-member function type"
+msgstr ""
+
+#: cp/decl.cc:14441
+#, gcc-internal-format
+msgid "requires-clause on type-id"
+msgstr ""
+
+#: cp/decl.cc:14451
+#, gcc-internal-format
+msgid "abstract declarator %qT used as declaration"
+msgstr ""
+
+#: cp/decl.cc:14466
+#, gcc-internal-format
+msgid "requires-clause on declaration of non-function type %qT"
+msgstr ""
+
+#: cp/decl.cc:14485
+#, gcc-internal-format
+msgid "cannot use %<::%> in parameter declaration"
+msgstr ""
+
+#: cp/decl.cc:14495 cp/parser.cc:20813
+#, gcc-internal-format
+msgid "cannot declare a parameter with %<decltype(auto)%>"
+msgstr ""
+
+#: cp/decl.cc:14502
+#, gcc-internal-format
+msgid "missing template argument list after %qE; template placeholder not permitted in parameter"
+msgstr ""
+
+#: cp/decl.cc:14505
+#, gcc-internal-format
+msgid "or use %<auto%> for an abbreviated function template"
+msgstr ""
+
+#: cp/decl.cc:14511 cp/parser.cc:25355
+#, gcc-internal-format
+msgid "%<auto%> parameter not permitted in this context"
+msgstr ""
+
+#: cp/decl.cc:14521
+#, gcc-internal-format
+msgid "parameter declared %<auto%>"
+msgstr ""
+
+#: cp/decl.cc:14575 cp/parser.cc:3687
+#, gcc-internal-format
+msgid "invalid use of template-name %qE without an argument list"
+msgstr ""
+
+#: cp/decl.cc:14579
+#, gcc-internal-format
+msgid "non-static data member declared with placeholder %qT"
+msgstr ""
+
+#: cp/decl.cc:14600
+#, gcc-internal-format
+msgid "ISO C++ forbids flexible array member %qs"
+msgstr ""
+
+#: cp/decl.cc:14603
+#, gcc-internal-format
+msgid "ISO C++ forbids flexible array members"
+msgstr ""
+
+#. Something like struct S { int N::j; };
+#: cp/decl.cc:14619
+#, gcc-internal-format
+msgid "invalid use of %<::%>"
+msgstr ""
+
+#: cp/decl.cc:14640
+#, gcc-internal-format
+msgid "declaration of function %qD in invalid context"
+msgstr ""
+
+#: cp/decl.cc:14650
+#, gcc-internal-format
+msgid "function %qD declared %<virtual%> inside a union"
+msgstr ""
+
+#: cp/decl.cc:14660
+#, gcc-internal-format
+msgid "%qD cannot be declared %<virtual%>, since it is always static"
+msgstr ""
+
+#: cp/decl.cc:14674
+#, gcc-internal-format
+msgid "expected qualified name in friend declaration for destructor %qD"
+msgstr ""
+
+#: cp/decl.cc:14681
+#, gcc-internal-format
+msgid "declaration of %qD as member of %qT"
+msgstr ""
+
+#: cp/decl.cc:14688 cp/decl.cc:14701
+#, gcc-internal-format
+msgid "a destructor cannot be %qs"
+msgstr ""
+
+#: cp/decl.cc:14707
+#, gcc-internal-format
+msgid "expected qualified name in friend declaration for constructor %qD"
+msgstr ""
+
+#: cp/decl.cc:14716
+#, gcc-internal-format
+msgid "a constructor cannot be %<concept%>"
+msgstr ""
+
+#: cp/decl.cc:14722
+#, gcc-internal-format
+msgid "a concept cannot be a member function"
+msgstr ""
+
+#: cp/decl.cc:14730 cp/decl.cc:15085
+#, gcc-internal-format
+msgid "%qD cannot be %qs"
+msgstr ""
+
+#: cp/decl.cc:14739
+#, gcc-internal-format
+msgid "specialization of variable template %qD declared as function"
+msgstr ""
+
+#: cp/decl.cc:14742
+#, gcc-internal-format
+msgid "variable template declared here"
+msgstr ""
+
+#: cp/decl.cc:14805
+#, gcc-internal-format
+msgid "field %qD has incomplete type %qT"
+msgstr ""
+
+#: cp/decl.cc:14810
+#, gcc-internal-format
+msgid "name %qT has incomplete type"
+msgstr ""
+
+#: cp/decl.cc:14830
+#, gcc-internal-format
+msgid "%qE is neither function nor member function; cannot be declared friend"
+msgstr ""
+
+#: cp/decl.cc:14833
+#, gcc-internal-format
+msgid "unnamed field is neither function nor member function; cannot be declared friend"
+msgstr ""
+
+#: cp/decl.cc:14851 cp/parser.cc:21380 cp/parser.cc:28064
+#, gcc-internal-format
+msgid "an attribute that appertains to a friend declaration that is not a definition is ignored"
+msgstr ""
+
+#: cp/decl.cc:14901 cp/decl.cc:14912
+#, gcc-internal-format
+msgid "static data member %qE declared %qs"
+msgstr ""
+
+#: cp/decl.cc:14906
+#, gcc-internal-format
+msgid "%<constexpr%> static data member %qD must have an initializer"
+msgstr ""
+
+#: cp/decl.cc:14949 cp/decl.cc:14957 cp/decl.cc:14964 cp/decl.cc:14971
+#, gcc-internal-format
+msgid "non-static data member %qE declared %qs"
+msgstr ""
+
+#: cp/decl.cc:15023
+#, gcc-internal-format
+msgid "storage class %<auto%> invalid for function %qs"
+msgstr ""
+
+#: cp/decl.cc:15026
+#, gcc-internal-format
+msgid "storage class %<register%> invalid for function %qs"
+msgstr ""
+
+#: cp/decl.cc:15032
+#, gcc-internal-format
+msgid "storage class %<__thread%> invalid for function %qs"
+msgstr ""
+
+#: cp/decl.cc:15036
+#, gcc-internal-format
+msgid "storage class %<thread_local%> invalid for function %qs"
+msgstr ""
+
+#: cp/decl.cc:15041
+#, gcc-internal-format
+msgid "%<constinit%> specifier invalid for function %qs"
+msgstr ""
+
+#: cp/decl.cc:15044
+#, gcc-internal-format
+msgid "virt-specifiers in %qs not allowed outside a class definition"
+msgstr ""
+
+#: cp/decl.cc:15056
+#, gcc-internal-format
+msgid "%<static%> specifier invalid for function %qs declared out of global scope"
+msgstr ""
+
+#: cp/decl.cc:15060
+#, gcc-internal-format
+msgid "%<inline%> specifier invalid for function %qs declared out of global scope"
+msgstr ""
+
+#: cp/decl.cc:15068
+#, gcc-internal-format
+msgid "virtual non-class function %qs"
+msgstr ""
+
+#: cp/decl.cc:15075
+#, gcc-internal-format
+msgid "%qs defined in a non-class scope"
+msgstr ""
+
+#: cp/decl.cc:15076
+#, gcc-internal-format
+msgid "%qs declared in a non-class scope"
+msgstr ""
+
+#: cp/decl.cc:15119
+#, gcc-internal-format
+msgid "cannot declare member function %qD to have static linkage"
+msgstr ""
+
+#: cp/decl.cc:15128
+#, gcc-internal-format
+msgid "cannot declare static function inside another function"
+msgstr ""
+
+#: cp/decl.cc:15169
+#, gcc-internal-format
+msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member"
+msgstr ""
+
+#: cp/decl.cc:15176
+#, gcc-internal-format
+msgid "static member %qD declared %<register%>"
+msgstr ""
+
+#: cp/decl.cc:15182
+#, gcc-internal-format
+msgid "cannot explicitly declare member %q#D to have extern linkage"
+msgstr ""
+
+#: cp/decl.cc:15190
+#, gcc-internal-format
+msgid "declaration of %<constexpr%> variable %qD is not a definition"
+msgstr ""
+
+#: cp/decl.cc:15197
+#, gcc-internal-format
+msgid "a variable cannot be declared %<consteval%>"
+msgstr ""
+
+#: cp/decl.cc:15229
+#, gcc-internal-format
+msgid "%qs initialized and declared %<extern%>"
+msgstr ""
+
+#: cp/decl.cc:15234
+#, gcc-internal-format
+msgid "%qs has both %<extern%> and initializer"
+msgstr ""
+
+#: cp/decl.cc:15436
+#, gcc-internal-format
+msgid "default argument %qE uses %qD"
+msgstr ""
+
+#: cp/decl.cc:15439
+#, gcc-internal-format
+msgid "default argument %qE uses local variable %qD"
+msgstr ""
+
+#: cp/decl.cc:15566
+#, gcc-internal-format
+msgid "invalid use of cv-qualified type %qT in parameter declaration"
+msgstr ""
+
+#: cp/decl.cc:15570
+#, gcc-internal-format
+msgid "invalid use of type %<void%> in parameter declaration"
+msgstr ""
+
+#: cp/decl.cc:15599
+#, gcc-internal-format
+msgid "%<volatile%>-qualified parameter is deprecated"
+msgstr ""
+
+#: cp/decl.cc:15607
+#, gcc-internal-format
+msgid "parameter %qD invalidly declared method type"
+msgstr ""
+
+#: cp/decl.cc:15632
+#, gcc-internal-format
+msgid "parameter %qD includes pointer to array of unknown bound %qT"
+msgstr ""
+
+#: cp/decl.cc:15634
+#, gcc-internal-format
+msgid "parameter %qD includes reference to array of unknown bound %qT"
+msgstr ""
+
+#: cp/decl.cc:15917
+#, gcc-internal-format
+msgid "invalid constructor; you probably meant %<%T (const %T&)%>"
+msgstr ""
+
+#: cp/decl.cc:15996
+#, gcc-internal-format
+msgid "%qD may not be declared within a namespace"
+msgstr ""
+
+#: cp/decl.cc:16003
+#, gcc-internal-format
+msgid "%qD may not be declared as static"
+msgstr ""
+
+#: cp/decl.cc:16031
+#, gcc-internal-format
+msgid "%qD must be a non-static member function"
+msgstr ""
+
+#: cp/decl.cc:16039
+#, gcc-internal-format
+msgid "%qD must be a member function"
+msgstr ""
+
+#: cp/decl.cc:16047
+#, gcc-internal-format
+msgid "%qD may be a static member function only with %<-std=c++23%> or %<-std=gnu++23%>"
+msgstr ""
+
+#: cp/decl.cc:16057
+#, gcc-internal-format
+msgid "%qD must be either a non-static member function or a non-member function"
+msgstr ""
+
+#: cp/decl.cc:16067
+#, gcc-internal-format
+msgid "%qD must have an argument of class or enumerated type"
+msgstr ""
+
+#. 13.4.0.3
+#: cp/decl.cc:16098
+#, gcc-internal-format
+msgid "ISO C++ prohibits overloading %<operator ?:%>"
+msgstr ""
+
+#: cp/decl.cc:16108
+#, gcc-internal-format
+msgid "%qD must not have variable number of arguments"
+msgstr ""
+
+#: cp/decl.cc:16134
+#, gcc-internal-format
+msgid "%qD must have either zero or one argument"
+msgstr ""
+
+#: cp/decl.cc:16135
+#, gcc-internal-format
+msgid "%qD must have either one or two arguments"
+msgstr ""
+
+#: cp/decl.cc:16147
+#, gcc-internal-format
+msgid "postfix %qD must have %<int%> as its argument"
+msgstr ""
+
+#: cp/decl.cc:16148
+#, gcc-internal-format
+msgid "postfix %qD must have %<int%> as its second argument"
+msgstr ""
+
+#: cp/decl.cc:16159
+#, gcc-internal-format
+msgid "%qD must have no arguments"
+msgstr ""
+
+#: cp/decl.cc:16160 cp/decl.cc:16170
+#, gcc-internal-format
+msgid "%qD must have exactly one argument"
+msgstr ""
+
+#: cp/decl.cc:16171
+#, gcc-internal-format
+msgid "%qD must have exactly two arguments"
+msgstr ""
+
+#: cp/decl.cc:16186
+#, gcc-internal-format
+msgid "%qD cannot have default arguments"
+msgstr ""
+
+#: cp/decl.cc:16210
+#, gcc-internal-format
+msgid "converting %qT to %<void%> will never use a type conversion operator"
+msgstr ""
+
+#: cp/decl.cc:16217
+#, gcc-internal-format
+msgid "converting %qT to a reference to the same type will never use a type conversion operator"
+msgstr ""
+
+#: cp/decl.cc:16219
+#, gcc-internal-format
+msgid "converting %qT to the same type will never use a type conversion operator"
+msgstr ""
+
+#: cp/decl.cc:16228
+#, gcc-internal-format
+msgid "converting %qT to a reference to a base class %qT will never use a type conversion operator"
+msgstr ""
+
+#: cp/decl.cc:16230
+#, gcc-internal-format
+msgid "converting %qT to a base class %qT will never use a type conversion operator"
+msgstr ""
+
+#: cp/decl.cc:16246
+#, gcc-internal-format
+msgid "user-defined %qD always evaluates both arguments"
+msgstr ""
+
+#: cp/decl.cc:16265
+#, gcc-internal-format
+msgid "prefix %qD should return %qT"
+msgstr ""
+
+#: cp/decl.cc:16272
+#, gcc-internal-format
+msgid "postfix %qD should return %qT"
+msgstr ""
+
+#: cp/decl.cc:16284
+#, gcc-internal-format
+msgid "%qD should return by value"
+msgstr ""
+
+#: cp/decl.cc:16339
+#, gcc-internal-format
+msgid "using template type parameter %qT after %qs"
+msgstr ""
+
+#: cp/decl.cc:16362
+#, gcc-internal-format
+msgid "using alias template specialization %qT after %qs"
+msgstr ""
+
+#: cp/decl.cc:16365
+#, gcc-internal-format
+msgid "using typedef-name %qD after %qs"
+msgstr ""
+
+#: cp/decl.cc:16367
+#, gcc-internal-format
+msgid "%qD has a previous declaration here"
+msgstr ""
+
+#: cp/decl.cc:16375
+#, gcc-internal-format
+msgid "%qT referred to as %qs"
+msgstr ""
+
+#: cp/decl.cc:16376 cp/decl.cc:16383
+#, gcc-internal-format
+msgid "%qT has a previous declaration here"
+msgstr ""
+
+#: cp/decl.cc:16382
+#, gcc-internal-format
+msgid "%qT referred to as enum"
+msgstr ""
+
+#. If a class template appears as elaborated type specifier
+#. without a template header such as:
+#.
+#. template <class T> class C {};
+#. void f(class C);		// No template header here
+#.
+#. then the required template argument is missing.
+#: cp/decl.cc:16397
+#, gcc-internal-format
+msgid "template argument required for %<%s %T%>"
+msgstr ""
+
+#: cp/decl.cc:16440 cp/name-lookup.cc:6131 cp/name-lookup.cc:6263
+#: cp/parser.cc:7215 cp/parser.cc:32116
+#, gcc-internal-format
+msgid "reference to %qD is ambiguous"
+msgstr ""
+
+#: cp/decl.cc:16449
+#, gcc-internal-format
+msgid "class template %qD redeclared as non-template"
+msgstr ""
+
+#: cp/decl.cc:16471 cp/name-lookup.cc:5821
+#, gcc-internal-format
+msgid "%qD has the same name as the class in which it is declared"
+msgstr ""
+
+#: cp/decl.cc:16499 cp/friend.cc:317 cp/parser.cc:3512 cp/parser.cc:6920
+#: cp/pt.cc:10003
+#, gcc-internal-format
+msgid "%qT is not a template"
+msgstr ""
+
+#: cp/decl.cc:16504
+#, gcc-internal-format
+msgid "perhaps you want to explicitly add %<%T::%>"
+msgstr ""
+
+#: cp/decl.cc:16609
+#, gcc-internal-format
+msgid "use of enum %q#D without previous declaration"
+msgstr ""
+
+#: cp/decl.cc:16635
+#, gcc-internal-format
+msgid "redeclaration of %qT as a non-template"
+msgstr ""
+
+#: cp/decl.cc:16770
+#, gcc-internal-format
+msgid "derived union %qT invalid"
+msgstr ""
+
+#: cp/decl.cc:16777
+#, gcc-internal-format
+msgid "%qT defined with multiple direct bases"
+msgstr ""
+
+#: cp/decl.cc:16788
+#, gcc-internal-format
+msgid "%qT defined with direct virtual base"
+msgstr ""
+
+#: cp/decl.cc:16813
+#, gcc-internal-format
+msgid "base type %qT fails to be a struct or class type"
+msgstr ""
+
+#: cp/decl.cc:16843
+#, gcc-internal-format
+msgid "recursive type %qT undefined"
+msgstr ""
+
+#: cp/decl.cc:16845
+#, gcc-internal-format
+msgid "duplicate base type %qT invalid"
+msgstr ""
+
+#: cp/decl.cc:17003
+#, gcc-internal-format
+msgid "scoped/unscoped mismatch in enum %q#T"
+msgstr ""
+
+#: cp/decl.cc:17006 cp/decl.cc:17015 cp/decl.cc:17026 cp/decl.cc:17618
+#: cp/parser.cc:21734
+#, gcc-internal-format
+msgid "previous definition here"
+msgstr ""
+
+#: cp/decl.cc:17012
+#, gcc-internal-format
+msgid "underlying type mismatch in enum %q#T"
+msgstr ""
+
+#: cp/decl.cc:17023
+#, gcc-internal-format
+msgid "different underlying type in enum %q#T"
+msgstr ""
+
+#: cp/decl.cc:17096
+#, gcc-internal-format
+msgid "underlying type %qT of %qT must be an integral type"
+msgstr ""
+
+#. DR 377
+#.
+#. IF no integral type can represent all the enumerator values, the
+#. enumeration is ill-formed.
+#: cp/decl.cc:17245
+#, gcc-internal-format
+msgid "no integral type can represent all of the enumerator values for %qT"
+msgstr ""
+
+#: cp/decl.cc:17426
+#, gcc-internal-format
+msgid "enumerator value for %qD must have integral or unscoped enumeration type"
+msgstr ""
+
+#: cp/decl.cc:17436
+#, gcc-internal-format
+msgid "enumerator value for %qD is not an integer constant"
+msgstr ""
+
+#: cp/decl.cc:17485
+#, gcc-internal-format
+msgid "incremented enumerator value is too large for %<unsigned long%>"
+msgstr ""
+
+#: cp/decl.cc:17486
+#, gcc-internal-format
+msgid "incremented enumerator value is too large for %<long%>"
+msgstr ""
+
+#: cp/decl.cc:17497
+#, gcc-internal-format
+msgid "overflow in enumeration values at %qD"
+msgstr ""
+
+#: cp/decl.cc:17517
+#, gcc-internal-format
+msgid "enumerator value %qE is outside the range of underlying type %qT"
+msgstr ""
+
+#: cp/decl.cc:17616 cp/parser.cc:21732
+#, gcc-internal-format
+msgid "multiple definition of %q#T"
+msgstr ""
+
+#: cp/decl.cc:17690
+#, gcc-internal-format
+msgid "return type %q#T is incomplete"
+msgstr ""
+
+#: cp/decl.cc:17848 cp/typeck.cc:11238
+#, gcc-internal-format
+msgid "%<operator=%> should return a reference to %<*this%>"
+msgstr ""
+
+#: cp/decl.cc:18678
+#, gcc-internal-format
+msgid "no return statements in function returning %qT"
+msgstr ""
+
+#: cp/decl.cc:18680 cp/typeck.cc:11118
+#, gcc-internal-format
+msgid "only plain %<auto%> return type can be deduced to %<void%>"
+msgstr ""
+
+#: cp/decl.cc:18740
+#, gcc-internal-format
+msgid "no return statement in %<constexpr%> function returning non-void"
+msgstr ""
+
+#: cp/decl.cc:18920
+#, gcc-internal-format
+msgid "%qD is already defined in class %qT"
+msgstr ""
+
+#: cp/decl.cc:19310
+#, gcc-internal-format
+msgid "using %qs"
+msgstr ""
+
+#: cp/decl.cc:19322
+#, gcc-internal-format
+msgid "use of %qD before deduction of %<auto%>"
+msgstr ""
+
+#: cp/decl2.cc:386
+#, gcc-internal-format
+msgid "name missing for member function"
+msgstr ""
+
+#: cp/decl2.cc:481 cp/decl2.cc:529
+#, gcc-internal-format
+msgid "top-level comma expression in array subscript changed meaning in C++23"
+msgstr ""
+
+#: cp/decl2.cc:519
+#, gcc-internal-format
+msgid "built-in subscript operator without expression list"
+msgstr ""
+
+#: cp/decl2.cc:533
+#, gcc-internal-format
+msgid "built-in subscript operator with more than one expression in expression list"
+msgstr ""
+
+#: cp/decl2.cc:560 cp/decl2.cc:575
+#, gcc-internal-format
+msgid "ambiguous conversion for array subscript"
+msgstr ""
+
+#: cp/decl2.cc:569
+#, gcc-internal-format
+msgid "invalid types %<%T[%T]%> for array subscript"
+msgstr ""
+
+#: cp/decl2.cc:688
+#, gcc-internal-format
+msgid "deleting array %q#E"
+msgstr ""
+
+#: cp/decl2.cc:696
+#, gcc-internal-format
+msgid "type %q#T argument given to %<delete%>, expected pointer"
+msgstr ""
+
+#: cp/decl2.cc:710
+#, gcc-internal-format
+msgid "cannot delete a function.  Only pointer-to-objects are valid arguments to %<delete%>"
+msgstr ""
+
+#: cp/decl2.cc:720
+#, gcc-internal-format
+msgid "deleting %qT is undefined"
+msgstr ""
+
+#: cp/decl2.cc:768 cp/pt.cc:5962
+#, gcc-internal-format
+msgid "template declaration of %q#D"
+msgstr ""
+
+#: cp/decl2.cc:808
+#, gcc-internal-format
+msgid "template parameter lists provided don%'t match the template parameters of %qD"
+msgstr ""
+
+#: cp/decl2.cc:823 cp/pt.cc:5930
+#, gcc-internal-format
+msgid "destructor %qD declared as member template"
+msgstr ""
+
+#: cp/decl2.cc:915
+#, gcc-internal-format
+msgid "no declaration matches %q#D"
+msgstr ""
+
+#: cp/decl2.cc:920
+#, gcc-internal-format
+msgid "no conversion operators declared"
+msgstr ""
+
+#: cp/decl2.cc:923
+#, gcc-internal-format
+msgid "no functions named %qD"
+msgstr ""
+
+#: cp/decl2.cc:925
+#, gcc-internal-format
+msgid "%#qT defined here"
+msgstr ""
+
+#: cp/decl2.cc:985
+#, gcc-internal-format
+msgid "local class %q#T shall not have static data member %q#D"
+msgstr ""
+
+#: cp/decl2.cc:994
+#, gcc-internal-format
+msgid "static data member %qD in unnamed class"
+msgstr ""
+
+#: cp/decl2.cc:996
+#, gcc-internal-format
+msgid "unnamed class defined here"
+msgstr ""
+
+#: cp/decl2.cc:1077
+#, gcc-internal-format
+msgid "explicit template argument list not allowed"
+msgstr ""
+
+#: cp/decl2.cc:1119
+#, gcc-internal-format
+msgid "%qD is already defined in %qT"
+msgstr ""
+
+#: cp/decl2.cc:1148 cp/decl2.cc:1156
+#, gcc-internal-format
+msgid "invalid initializer for member function %qD"
+msgstr ""
+
+#: cp/decl2.cc:1165
+#, gcc-internal-format
+msgid "initializer specified for friend function %qD"
+msgstr ""
+
+#: cp/decl2.cc:1168
+#, gcc-internal-format
+msgid "initializer specified for static member function %qD"
+msgstr ""
+
+#: cp/decl2.cc:1216
+#, gcc-internal-format
+msgid "%<asm%> specifiers are not permitted on non-static data members"
+msgstr ""
+
+#: cp/decl2.cc:1273
+#, gcc-internal-format
+msgid "bit-field %qD with non-integral type %qT"
+msgstr ""
+
+#: cp/decl2.cc:1281
+#, gcc-internal-format
+msgid "cannot declare %qD to be a bit-field type"
+msgstr ""
+
+#: cp/decl2.cc:1292
+#, gcc-internal-format
+msgid "cannot declare bit-field %qD with function type"
+msgstr ""
+
+#: cp/decl2.cc:1298
+#, gcc-internal-format
+msgid "cannot declare bit-field %qD with %<warn_if_not_aligned%> type"
+msgstr ""
+
+#: cp/decl2.cc:1305
+#, gcc-internal-format
+msgid "%qD is already defined in the class %qT"
+msgstr ""
+
+#: cp/decl2.cc:1313
+#, gcc-internal-format
+msgid "static member %qD cannot be a bit-field"
+msgstr ""
+
+#: cp/decl2.cc:1327
+#, gcc-internal-format
+msgid "width of bit-field %qD has non-integral type %qT"
+msgstr ""
+
+#: cp/decl2.cc:1769
+#, gcc-internal-format
+msgid "%q+D static data member inside of declare target directive"
+msgstr ""
+
+#: cp/decl2.cc:1924
+#, gcc-internal-format
+msgid "anonymous struct not inside named type"
+msgstr ""
+
+#: cp/decl2.cc:1940
+#, gcc-internal-format
+msgid "%q#D invalid; an anonymous union can only have non-static data members"
+msgstr ""
+
+#: cp/decl2.cc:1947
+#, gcc-internal-format
+msgid "private member %q#D in anonymous union"
+msgstr ""
+
+#: cp/decl2.cc:1950
+#, gcc-internal-format
+msgid "protected member %q#D in anonymous union"
+msgstr ""
+
+#: cp/decl2.cc:2015
+#, gcc-internal-format
+msgid "namespace-scope anonymous aggregates must be static"
+msgstr ""
+
+#: cp/decl2.cc:2024
+#, gcc-internal-format
+msgid "anonymous union with no members"
+msgstr ""
+
+#: cp/decl2.cc:2061
+#, gcc-internal-format
+msgid "%<operator new%> must return type %qT"
+msgstr ""
+
+#. [basic.stc.dynamic.allocation]
+#.
+#. The first parameter shall not have an associated default
+#. argument.
+#: cp/decl2.cc:2073
+#, gcc-internal-format
+msgid "the first parameter of %<operator new%> cannot have a default argument"
+msgstr ""
+
+#: cp/decl2.cc:2089
+#, gcc-internal-format
+msgid "%<operator new%> takes type %<size_t%> (%qT) as first parameter"
+msgstr ""
+
+#: cp/decl2.cc:2119
+#, gcc-internal-format
+msgid "%<operator delete%> must return type %qT"
+msgstr ""
+
+#: cp/decl2.cc:2134
+#, gcc-internal-format
+msgid "destroying %<operator delete%> must be a member function"
+msgstr ""
+
+#: cp/decl2.cc:2137
+#, gcc-internal-format
+msgid "%<operator delete[]%> cannot be a destroying delete"
+msgstr ""
+
+#: cp/decl2.cc:2139
+#, gcc-internal-format
+msgid "destroying %<operator delete%> must be a usual deallocation function"
+msgstr ""
+
+#: cp/decl2.cc:2149
+#, gcc-internal-format
+msgid "%<operator delete%> takes type %qT as first parameter"
+msgstr ""
+
+#: cp/decl2.cc:3160
+#, gcc-internal-format
+msgid "%qT has a field %q#D whose type has no linkage"
+msgstr ""
+
+#: cp/decl2.cc:3164
+#, gcc-internal-format
+msgid "%qT has a field %qD whose type depends on the type %qT which has no linkage"
+msgstr ""
+
+#: cp/decl2.cc:3170
+#, gcc-internal-format
+msgid "%qT has a field %q#D whose type has internal linkage"
+msgstr ""
+
+#. In C++98 this can only happen with unnamed namespaces.
+#: cp/decl2.cc:3174
+#, gcc-internal-format
+msgid "%qT has a field %q#D whose type uses the anonymous namespace"
+msgstr ""
+
+#: cp/decl2.cc:3182
+#, gcc-internal-format
+msgid "%qT declared with greater visibility than the type of its field %qD"
+msgstr ""
+
+#: cp/decl2.cc:3201
+#, gcc-internal-format
+msgid "%qT has a base %qT which has no linkage"
+msgstr ""
+
+#: cp/decl2.cc:3205
+#, gcc-internal-format
+msgid "%qT has a base %qT which depends on the type %qT which has no linkage"
+msgstr ""
+
+#: cp/decl2.cc:3211
+#, gcc-internal-format
+msgid "%qT has a base %qT which has internal linkage"
+msgstr ""
+
+#. In C++98 this can only happen with unnamed namespaces.
+#: cp/decl2.cc:3215
+#, gcc-internal-format
+msgid "%qT has a base %qT which uses the anonymous namespace"
+msgstr ""
+
+#: cp/decl2.cc:3222
+#, gcc-internal-format
+msgid "%qT declared with greater visibility than its base %qT"
+msgstr ""
+
+#: cp/decl2.cc:4714
+#, gcc-internal-format
+msgid "%q#D, declared using an unnamed type, is used but never defined"
+msgstr ""
+
+#: cp/decl2.cc:4718
+#, gcc-internal-format
+msgid "%q#D, declared using an unnamed type, is used but not defined"
+msgstr ""
+
+#. DRs 132, 319 and 389 seem to indicate types with
+#. no linkage can only be used to declare extern "C"
+#. entities.  Since it's not always an error in the
+#. ISO C++ 90 Standard, we only issue a warning.
+#: cp/decl2.cc:4728
+#, gcc-internal-format
+msgid "unnamed type with no linkage used to declare variable %q#D with linkage"
+msgstr ""
+
+#: cp/decl2.cc:4732
+#, gcc-internal-format
+msgid "unnamed type with no linkage used to declare function %q#D with linkage"
+msgstr ""
+
+#: cp/decl2.cc:4736
+#, gcc-internal-format
+msgid "%q#D does not refer to the unqualified type, so it is not used for linkage"
+msgstr ""
+
+#: cp/decl2.cc:4754
+#, gcc-internal-format
+msgid "%q#D, declared using local type %qT, is used but never defined"
+msgstr ""
+
+#: cp/decl2.cc:4758
+#, gcc-internal-format
+msgid "%q#D, declared using local type %qT, is used but not defined here"
+msgstr ""
+
+#: cp/decl2.cc:4766
+#, gcc-internal-format
+msgid "type %qT with no linkage used to declare variable %q#D with linkage"
+msgstr ""
+
+#: cp/decl2.cc:4769
+#, gcc-internal-format
+msgid "type %qT with no linkage used to declare function %q#D with linkage"
+msgstr ""
+
+#: cp/decl2.cc:4966
+#, gcc-internal-format
+msgid "mangling of %q#D as %qE conflicts with a previous mangle"
+msgstr ""
+
+#: cp/decl2.cc:4969
+#, gcc-internal-format
+msgid "previous mangling %q#D"
+msgstr ""
+
+#: cp/decl2.cc:4971
+#, gcc-internal-format
+msgid "a later %<-fabi-version=%> (or =0) avoids this error with a change in mangling"
+msgstr ""
+
+#: cp/decl2.cc:5043 cp/decl2.cc:5046
+#, gcc-internal-format
+msgid "the program should also define %qD"
+msgstr ""
+
+#: cp/decl2.cc:5385
+#, gcc-internal-format
+msgid "inline function %qD used but never defined"
+msgstr ""
+
+#: cp/decl2.cc:5611
+#, gcc-internal-format
+msgid "default argument missing for parameter %P of %q#D"
+msgstr ""
+
+#: cp/decl2.cc:5616
+#, gcc-internal-format
+msgid "...following parameter %P which has a default argument"
+msgstr ""
+
+#: cp/decl2.cc:5740
+#, gcc-internal-format
+msgid "implicitly-declared %qD is deprecated"
+msgstr ""
+
+#: cp/decl2.cc:5744
+#, gcc-internal-format
+msgid "because %qT has user-provided %qD"
+msgstr ""
+
+#. We mark a lambda conversion op as deleted if we can't
+#. generate it properly; see maybe_add_lambda_conv_op.
+#: cp/decl2.cc:5885
+#, gcc-internal-format
+msgid "converting lambda that uses %<...%> to function pointer"
+msgstr ""
+
+#: cp/decl2.cc:5888
+#, gcc-internal-format
+msgid "use of deleted function %qD"
+msgstr ""
+
+#: cp/decl2.cc:5942
+#, gcc-internal-format
+msgid "use of function %qD with unsatisfied constraints"
+msgstr ""
+
+#: cp/decl2.cc:5974
+#, gcc-internal-format
+msgid "use of built-in parameter pack %qD outside of a template"
+msgstr ""
+
+#: cp/error.cc:4115
+#, gcc-internal-format
+msgid "(no argument)"
+msgstr ""
+
+#: cp/error.cc:4207
+#, gcc-internal-format
+msgid "[...]"
+msgstr ""
+
+#: cp/error.cc:4554
+#, gcc-internal-format
+msgid "extended initializer lists only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4559
+#, gcc-internal-format
+msgid "explicit conversion operators only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4564
+#, gcc-internal-format
+msgid "variadic templates only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4569
+#, gcc-internal-format
+msgid "lambda expressions only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4574
+#, gcc-internal-format
+msgid "C++11 auto only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4579
+#, gcc-internal-format
+msgid "scoped enums only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4584
+#, gcc-internal-format
+msgid "defaulted and deleted functions only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4590
+#, gcc-internal-format
+msgid "inline namespaces only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4595
+#, gcc-internal-format
+msgid "override controls (override/final) only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4600
+#, gcc-internal-format
+msgid "non-static data member initializers only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4605
+#, gcc-internal-format
+msgid "user-defined literals only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4610
+#, gcc-internal-format
+msgid "delegating constructors only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4615
+#, gcc-internal-format
+msgid "inheriting constructors only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4620
+#, gcc-internal-format
+msgid "C++11 attributes only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4625
+#, gcc-internal-format
+msgid "ref-qualifiers only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/error.cc:4675
+#, gcc-internal-format
+msgid "incomplete type %qT used in nested name specifier"
+msgstr ""
+
+#: cp/error.cc:4679
+#, gcc-internal-format
+msgid "reference to %<%T::%D%> is ambiguous"
+msgstr ""
+
+#: cp/error.cc:4693
+#, gcc-internal-format
+msgid "%qD is not a member of %qT; did you mean %qs?"
+msgstr ""
+
+#: cp/error.cc:4697 cp/typeck.cc:2871
+#, gcc-internal-format
+msgid "%qD is not a member of %qT"
+msgstr ""
+
+#: cp/error.cc:4719
+#, gcc-internal-format
+msgid "%qD is not a member of %qD; did you mean %qs?"
+msgstr ""
+
+#: cp/error.cc:4723 cp/typeck.cc:3463
+#, gcc-internal-format
+msgid "%qD is not a member of %qD"
+msgstr ""
+
+#: cp/error.cc:4734
+#, gcc-internal-format
+msgid "%<::%D%> has not been declared; did you mean %qs?"
+msgstr ""
+
+#: cp/error.cc:4738
+#, gcc-internal-format
+msgid "%<::%D%> has not been declared"
+msgstr ""
+
+#: cp/except.cc:380
+#, gcc-internal-format
+msgid "exception handling disabled, use %<-fexceptions%> to enable"
+msgstr ""
+
+#: cp/except.cc:628
+#, gcc-internal-format
+msgid "throwing NULL, which has integral, not pointer type"
+msgstr ""
+
+#: cp/except.cc:731
+#, gcc-internal-format
+msgid "  in thrown expression"
+msgstr ""
+
+#: cp/except.cc:878
+#, gcc-internal-format
+msgid "cannot declare %<catch%> parameter to be of rvalue reference type %qT"
+msgstr ""
+
+#: cp/except.cc:888
+#, gcc-internal-format
+msgid "cannot throw expression of type %qT because it involves types of variable size"
+msgstr ""
+
+#: cp/except.cc:891
+#, gcc-internal-format
+msgid "cannot catch type %qT because it involves types of variable size"
+msgstr ""
+
+#: cp/except.cc:992
+#, gcc-internal-format
+msgid "exception of type %qT will be caught by earlier handler"
+msgstr ""
+
+#: cp/except.cc:994
+#, gcc-internal-format
+msgid "for type %qT"
+msgstr ""
+
+#: cp/except.cc:1023
+#, gcc-internal-format
+msgid "%<...%> handler must be the last handler for its try block"
+msgstr ""
+
+#: cp/except.cc:1119
+#, gcc-internal-format
+msgid "noexcept-expression evaluates to %<false%> because of a call to %qD"
+msgstr ""
+
+#: cp/except.cc:1122
+#, gcc-internal-format
+msgid "but %qD does not throw; perhaps it should be declared %<noexcept%>"
+msgstr ""
+
+#: cp/expr.cc:232
+#, gcc-internal-format
+msgid "using value of assignment with %<volatile%>-qualified left operand is deprecated"
+msgstr ""
+
+#: cp/friend.cc:194
+#, gcc-internal-format
+msgid "%qD is already a friend of class %qT"
+msgstr ""
+
+#: cp/friend.cc:291
+#, gcc-internal-format
+msgid "invalid type %qT declared %<friend%>"
+msgstr ""
+
+#. template <class U> friend class T::X<U>;
+#. [temp.friend]
+#. Friend declarations shall not declare partial
+#. specializations.
+#: cp/friend.cc:308 cp/friend.cc:356
+#, gcc-internal-format
+msgid "partial specialization %qT declared %<friend%>"
+msgstr ""
+
+#: cp/friend.cc:322
+#, gcc-internal-format
+msgid "perhaps you need explicit template arguments in your nested-name-specifier"
+msgstr ""
+
+#: cp/friend.cc:334
+#, gcc-internal-format
+msgid "class %qT is implicitly friends with itself"
+msgstr ""
+
+#: cp/friend.cc:397
+#, gcc-internal-format
+msgid "%qT is not a member of %qT"
+msgstr ""
+
+#: cp/friend.cc:403
+#, gcc-internal-format
+msgid "%qT is not a member class template of %qT"
+msgstr ""
+
+#: cp/friend.cc:413
+#, gcc-internal-format
+msgid "%qT is not a nested class of %qT"
+msgstr ""
+
+#. template <class T> friend class T;
+#: cp/friend.cc:427
+#, gcc-internal-format
+msgid "template parameter type %qT declared %<friend%>"
+msgstr ""
+
+#. template <class T> friend class A; where A is not a template
+#: cp/friend.cc:435
+#, gcc-internal-format
+msgid "%q#T is not a template"
+msgstr ""
+
+#: cp/friend.cc:458
+#, gcc-internal-format
+msgid "%qD is already a friend of %qT"
+msgstr ""
+
+#: cp/friend.cc:468
+#, gcc-internal-format
+msgid "%qT is already a friend of %qT"
+msgstr ""
+
+#: cp/friend.cc:521
+#, gcc-internal-format
+msgid "friend declaration %qD may not have virt-specifiers"
+msgstr ""
+
+#: cp/friend.cc:599
+#, gcc-internal-format
+msgid "member %qD declared as friend before type %qT defined"
+msgstr ""
+
+#: cp/friend.cc:647
+#, gcc-internal-format
+msgid "friend declaration %q#D declares a non-template function"
+msgstr ""
+
+#: cp/friend.cc:651
+#, gcc-internal-format
+msgid "(if this is not what you intended, make sure the function template has already been declared and add %<<>%> after the function name here)"
+msgstr ""
+
+#: cp/init.cc:398
+#, gcc-internal-format
+msgid "value-initialization of incomplete type %qT"
+msgstr ""
+
+#: cp/init.cc:481
+#, gcc-internal-format
+msgid "cannot value-initialize array of unknown bound %qT"
+msgstr ""
+
+#: cp/init.cc:520
+#, gcc-internal-format
+msgid "value-initialization of function type %qT"
+msgstr ""
+
+#: cp/init.cc:526
+#, gcc-internal-format
+msgid "value-initialization of reference type %qT"
+msgstr ""
+
+#: cp/init.cc:595
+#, gcc-internal-format
+msgid "recursive instantiation of default member initializer for %qD"
+msgstr ""
+
+#: cp/init.cc:662
+#, gcc-internal-format
+msgid "default member initializer for %qD required before the end of its enclosing class"
+msgstr ""
+
+#: cp/init.cc:664
+#, gcc-internal-format
+msgid "defined here"
+msgstr ""
+
+#: cp/init.cc:732
+#, gcc-internal-format
+msgid "initializer for flexible array member %q#D"
+msgstr ""
+
+#: cp/init.cc:797
+#, gcc-internal-format
+msgid "initializing %qD from %qE does not extend the lifetime of the underlying array"
+msgstr ""
+
+#: cp/init.cc:901 cp/init.cc:1014
+#, gcc-internal-format
+msgid "%qD is initialized with itself"
+msgstr ""
+
+#: cp/init.cc:907
+#, gcc-internal-format
+msgid "reference %qD is not yet bound to a value when used here"
+msgstr ""
+
+#: cp/init.cc:912
+#, gcc-internal-format
+msgid "member %qD is used uninitialized"
+msgstr ""
+
+#: cp/init.cc:991
+#, gcc-internal-format
+msgid "%qD should be initialized in the member initialization list"
+msgstr ""
+
+#: cp/init.cc:1133
+#, gcc-internal-format
+msgid "invalid initializer for array member %q#D"
+msgstr ""
+
+#: cp/init.cc:1148 cp/init.cc:1174 cp/init.cc:2769 cp/method.cc:2494
+#, gcc-internal-format
+msgid "uninitialized const member in %q#T"
+msgstr ""
+
+#: cp/init.cc:1150 cp/init.cc:1168 cp/init.cc:1176 cp/init.cc:2754
+#: cp/init.cc:2782 cp/method.cc:2497 cp/method.cc:2508
+#, gcc-internal-format
+msgid "%q#D should be initialized"
+msgstr ""
+
+#: cp/init.cc:1166 cp/init.cc:2741 cp/method.cc:2505
+#, gcc-internal-format
+msgid "uninitialized reference member in %q#T"
+msgstr ""
+
+#: cp/init.cc:1351
+#, gcc-internal-format
+msgid "%qD will be initialized after"
+msgstr ""
+
+#: cp/init.cc:1354
+#, gcc-internal-format
+msgid "base %qT will be initialized after"
+msgstr ""
+
+#: cp/init.cc:1358
+#, gcc-internal-format
+msgid "  %q#D"
+msgstr ""
+
+#: cp/init.cc:1360
+#, gcc-internal-format
+msgid "  base %qT"
+msgstr ""
+
+#: cp/init.cc:1362
+#, gcc-internal-format
+msgid "  when initialized here"
+msgstr ""
+
+#: cp/init.cc:1379
+#, gcc-internal-format
+msgid "multiple initializations given for %qD"
+msgstr ""
+
+#: cp/init.cc:1383
+#, gcc-internal-format
+msgid "multiple initializations given for base %qT"
+msgstr ""
+
+#: cp/init.cc:1470
+#, gcc-internal-format
+msgid "initializations for multiple members of %qT"
+msgstr ""
+
+#: cp/init.cc:1579
+#, gcc-internal-format
+msgid "base class %q#T should be explicitly initialized in the copy constructor"
+msgstr ""
+
+#: cp/init.cc:1815 cp/init.cc:1834
+#, gcc-internal-format
+msgid "class %qT does not have any field named %qD"
+msgstr ""
+
+#: cp/init.cc:1821
+#, gcc-internal-format
+msgid "%q#D is a static data member; it can only be initialized at its definition"
+msgstr ""
+
+#: cp/init.cc:1828
+#, gcc-internal-format
+msgid "%q#D is not a non-static data member of %qT"
+msgstr ""
+
+#: cp/init.cc:1867
+#, gcc-internal-format
+msgid "unnamed initializer for %qT, which has no base classes"
+msgstr ""
+
+#: cp/init.cc:1875
+#, gcc-internal-format
+msgid "unnamed initializer for %qT, which uses multiple inheritance"
+msgstr ""
+
+#: cp/init.cc:1922
+#, gcc-internal-format
+msgid "%qD is both a direct base and an indirect virtual base"
+msgstr ""
+
+#: cp/init.cc:1930
+#, gcc-internal-format
+msgid "type %qT is not a direct or virtual base of %qT"
+msgstr ""
+
+#: cp/init.cc:1933
+#, gcc-internal-format
+msgid "type %qT is not a direct base of %qT"
+msgstr ""
+
+#: cp/init.cc:2045 cp/init.cc:4944 cp/typeck2.cc:1384
+#, gcc-internal-format
+msgid "array must be initialized with a brace-enclosed initializer"
+msgstr ""
+
+#: cp/init.cc:2366 cp/semantics.cc:4056 rust/backend/rust-tree.cc:4168
+#, gcc-internal-format
+msgid "%qT is not a class type"
+msgstr ""
+
+#: cp/init.cc:2424
+#, gcc-internal-format
+msgid "incomplete type %qT does not have member %qD"
+msgstr ""
+
+#: cp/init.cc:2438
+#, gcc-internal-format
+msgid "invalid pointer to bit-field %qD"
+msgstr ""
+
+#: cp/init.cc:2524 cp/typeck.cc:2357 rust/backend/rust-tree.cc:3811
+#, gcc-internal-format
+msgid "invalid use of non-static member function %qD"
+msgstr ""
+
+#: cp/init.cc:2531 cp/semantics.cc:2379
+#, gcc-internal-format
+msgid "invalid use of non-static data member %qD"
+msgstr ""
+
+#: cp/init.cc:2738
+#, gcc-internal-format
+msgid "uninitialized reference member in %q#T using %<new%> without new-initializer"
+msgstr ""
+
+#: cp/init.cc:2746
+#, gcc-internal-format
+msgid "uninitialized reference member in base %q#T of %q#T using %<new%> without new-initializer"
+msgstr ""
+
+#: cp/init.cc:2750
+#, gcc-internal-format
+msgid "uninitialized reference member in base %q#T of %q#T"
+msgstr ""
+
+#: cp/init.cc:2766
+#, gcc-internal-format
+msgid "uninitialized const member in %q#T using %<new%> without new-initializer"
+msgstr ""
+
+#: cp/init.cc:2774
+#, gcc-internal-format
+msgid "uninitialized const member in base %q#T of %q#T using %<new%> without new-initializer"
+msgstr ""
+
+#: cp/init.cc:2778
+#, gcc-internal-format
+msgid "uninitialized const member in base %q#T of %q#T"
+msgstr ""
+
+#: cp/init.cc:2893
+#, gcc-internal-format
+msgid "placement new constructing an object of type %<%T [%wu]%> and size %qwu in a region of type %qT and size %qwi"
+msgstr ""
+
+#: cp/init.cc:2896
+#, gcc-internal-format
+msgid "placement new constructing an object of type %<%T [%wu]%> and size %qwu in a region of type %qT and size at most %qwu"
+msgstr ""
+
+#: cp/init.cc:2906
+#, gcc-internal-format
+msgid "placement new constructing an array of objects of type %qT and size %qwu in a region of type %qT and size %qwi"
+msgstr ""
+
+#: cp/init.cc:2909
+#, gcc-internal-format
+msgid "placement new constructing an array of objects of type %qT and size %qwu in a region of type %qT and size at most %qwu"
+msgstr ""
+
+#: cp/init.cc:2918
+#, gcc-internal-format
+msgid "placement new constructing an object of type %qT and size %qwu in a region of type %qT and size %qwi"
+msgstr ""
+
+#: cp/init.cc:2921
+#, gcc-internal-format
+msgid "placement new constructing an object of type %qT and size %qwu in a region of type %qT and size at most %qwu"
+msgstr ""
+
+#: cp/init.cc:2938
+#, gcc-internal-format
+msgid "at offset %wi from %qD declared here"
+msgstr ""
+
+#: cp/init.cc:2942
+#, gcc-internal-format
+msgid "at offset [%wi, %wi] from %qD declared here"
+msgstr ""
+
+#: cp/init.cc:3140
+#, gcc-internal-format
+msgid "integer overflow in array size"
+msgstr ""
+
+#: cp/init.cc:3150
+#, gcc-internal-format
+msgid "array size in new-expression must be constant"
+msgstr ""
+
+#: cp/init.cc:3168
+#, gcc-internal-format
+msgid "variably modified type not allowed in new-expression"
+msgstr ""
+
+#: cp/init.cc:3184
+#, gcc-internal-format
+msgid "non-constant array new length must be specified directly, not by %<typedef%>"
+msgstr ""
+
+#: cp/init.cc:3186
+#, gcc-internal-format
+msgid "non-constant array new length must be specified without parentheses around the type-id"
+msgstr ""
+
+#: cp/init.cc:3196
+#, gcc-internal-format
+msgid "invalid type %<void%> for %<new%>"
+msgstr ""
+
+#: cp/init.cc:3202
+#, gcc-internal-format
+msgid "%<new%> of %<initializer_list%> does not extend the lifetime of the underlying array"
+msgstr ""
+
+#: cp/init.cc:3244
+#, gcc-internal-format
+msgid "uninitialized const in %<new%> of %q#T"
+msgstr ""
+
+#: cp/init.cc:3400
+#, gcc-internal-format
+msgid "no suitable %qD found in class %qT"
+msgstr ""
+
+#: cp/init.cc:3489
+#, gcc-internal-format
+msgid "%<new%> of type %qT with extended alignment %d"
+msgstr ""
+
+#: cp/init.cc:3492
+#, gcc-internal-format
+msgid "uses %qD, which does not have an alignment parameter"
+msgstr ""
+
+#: cp/init.cc:3495
+#, gcc-internal-format
+msgid "use %<-faligned-new%> to enable C++17 over-aligned new support"
+msgstr ""
+
+#: cp/init.cc:3691
+#, gcc-internal-format
+msgid "parenthesized initializer in array new"
+msgstr ""
+
+#: cp/init.cc:3962
+#, gcc-internal-format
+msgid "size in array new must have integral type"
+msgstr ""
+
+#: cp/init.cc:3991
+#, gcc-internal-format
+msgid "new cannot be applied to a reference type"
+msgstr ""
+
+#: cp/init.cc:4000
+#, gcc-internal-format
+msgid "new cannot be applied to a function type"
+msgstr ""
+
+#: cp/init.cc:4120
+#, gcc-internal-format
+msgid "possible problem detected in invocation of operator %<delete []%>"
+msgstr ""
+
+#: cp/init.cc:4124
+#, gcc-internal-format
+msgid "neither the destructor nor the class-specific operator %<delete []%> will be called, even if they are declared when the class is defined"
+msgstr ""
+
+#: cp/init.cc:4846
+#, gcc-internal-format
+msgid "initializer ends prematurely"
+msgstr ""
+
+#: cp/init.cc:5144
+#, gcc-internal-format
+msgid "unknown array size in delete"
+msgstr ""
+
+#: cp/init.cc:5178
+#, gcc-internal-format
+msgid "possible problem detected in invocation of %<operator delete%>"
+msgstr ""
+
+#: cp/init.cc:5183
+#, gcc-internal-format
+msgid "neither the destructor nor the class-specific %<operator delete%> will be called, even if they are declared when the class is defined"
+msgstr ""
+
+#: cp/init.cc:5198
+#, gcc-internal-format
+msgid "deleting object of abstract class type %qT which has non-virtual destructor will cause undefined behavior"
+msgstr ""
+
+#: cp/init.cc:5203
+#, gcc-internal-format
+msgid "deleting object of polymorphic class type %qT which has non-virtual destructor might cause undefined behavior"
+msgstr ""
+
+#: cp/init.cc:5517
+#, gcc-internal-format
+msgid "type to vector delete is neither pointer or array type"
+msgstr ""
+
+#: cp/lambda.cc:550
+#, gcc-internal-format
+msgid "array of runtime bound cannot be captured by copy, only by reference"
+msgstr ""
+
+#: cp/lambda.cc:565
+#, gcc-internal-format
+msgid "capture of variably-modified type %qT that is not an N3639 array of runtime bound"
+msgstr ""
+
+#: cp/lambda.cc:569
+#, gcc-internal-format
+msgid "because the array element type %qT has variable size"
+msgstr ""
+
+#: cp/lambda.cc:593
+#, gcc-internal-format
+msgid "cannot capture %qE by reference"
+msgstr ""
+
+#: cp/lambda.cc:603
+#, gcc-internal-format
+msgid "capture by copy of incomplete type %qT"
+msgstr ""
+
+#: cp/lambda.cc:675
+#, gcc-internal-format
+msgid "trying to capture %qD in instantiation of generic lambda"
+msgstr ""
+
+#: cp/lambda.cc:751
+#, gcc-internal-format
+msgid "implicit capture of %qE via %<[=]%> is deprecated in C++20"
+msgstr ""
+
+#: cp/lambda.cc:753
+#, gcc-internal-format
+msgid "add explicit %<this%> or %<*this%> capture"
+msgstr ""
+
+#: cp/lambda.cc:874
+#, gcc-internal-format
+msgid "%<this%> was not captured for this lambda function"
+msgstr ""
+
+#: cp/lex.cc:644
+#, gcc-internal-format
+msgid "invalid %<#pragma %s%>"
+msgstr ""
+
+#: cp/lex.cc:652
+#, gcc-internal-format
+msgid "%<#pragma vtable%> no longer supported"
+msgstr ""
+
+#: cp/lex.cc:724
+#, gcc-internal-format
+msgid "%<#pragma implementation%> for %qs appears after file is included"
+msgstr ""
+
+#: cp/lex.cc:752
+#, gcc-internal-format
+msgid "%qD not defined"
+msgstr ""
+
+#: cp/lex.cc:764
+#, gcc-internal-format
+msgid "%qD was not declared in this scope; did you mean %qs?"
+msgstr ""
+
+#: cp/lex.cc:768
+#, gcc-internal-format
+msgid "%qD was not declared in this scope"
+msgstr ""
+
+#. In a template, it is invalid to write "f()" or "f(3)" if no
+#. declaration of "f" is available.  Historically, G++ and most
+#. other compilers accepted that usage since they deferred all name
+#. lookup until instantiation time rather than doing unqualified
+#. name lookup at template definition time; explain to the user what
+#. is going wrong.
+#.
+#. Note that we have the exact wording of the following message in
+#. the manual (trouble.texi, node "Name lookup"), so they need to
+#. be kept in synch.
+#: cp/lex.cc:810
+#, gcc-internal-format
+msgid "there are no arguments to %qD that depend on a template parameter, so a declaration of %qD must be available"
+msgstr ""
+
+#: cp/lex.cc:819
+#, gcc-internal-format
+msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
+msgstr ""
+
+#: cp/logic.cc:303
+#, gcc-internal-format
+msgid "  # %E"
+msgstr ""
+
+#: cp/mangle.cc:2662
+#, gcc-internal-format
+msgid "mangling %<typeof%>, use %<decltype%> instead"
+msgstr ""
+
+#: cp/mangle.cc:2666
+#, gcc-internal-format
+msgid "use of built-in trait %qT in function signature; use library traits instead"
+msgstr ""
+
+#: cp/mangle.cc:3836
+#, gcc-internal-format
+msgid "use of built-in trait %qE in function signature; use library traits instead"
+msgstr ""
+
+#: cp/mangle.cc:3841
+#, gcc-internal-format, gfc-internal-format
+msgid "mangling %C"
+msgstr ""
+
+#: cp/mangle.cc:3915
+#, gcc-internal-format
+msgid "omitted middle operand to %<?:%> operand cannot be mangled"
+msgstr ""
+
+#: cp/mangle.cc:4486
+#, gcc-internal-format
+msgid "mangled name for %qD will change in C++17 because the exception specification is part of a function type"
+msgstr ""
+
+#: cp/mangle.cc:4532 cp/mangle.cc:4711
+#, gcc-internal-format
+msgid "the mangled name of %qD changed between %<%s=%d%> (%qD) and %<%s=%d%> (%qD)"
+msgstr ""
+
+#: cp/mangle.cc:4538 cp/mangle.cc:4717
+#, gcc-internal-format
+msgid "the mangled name of %qD changes between %<%s=%d%> (%qD) and %<%s=%d%> (%qD)"
+msgstr ""
+
+#: cp/mangle.cc:4864
+#, gcc-internal-format
+msgid "the mangled name of a thunk for %qD changes between %<-fabi-version=%d%> and %<-fabi-version=%d%>"
+msgstr ""
+
+#: cp/mangle.cc:4869
+#, gcc-internal-format
+msgid "the mangled name of %qD changes between %<-fabi-version=%d%> and %<-fabi-version=%d%>"
+msgstr ""
+
+#: cp/mangle.cc:4874
+#, gcc-internal-format
+msgid "the mangled name of the initialization guard variable for %qD changes between %<-fabi-version=%d%> and %<-fabi-version=%d%>"
+msgstr ""
+
+#: cp/mapper-client.cc:318
+#, gcc-internal-format
+msgid "failed %s mapper %qs line %u"
+msgstr ""
+
+#: cp/mapper-client.cc:319
+#, gcc-internal-format
+msgid "failed %s mapper %qs"
+msgstr ""
+
+#: cp/mapper-client.cc:331
+#, gcc-internal-format, gfc-internal-format
+msgid "failed mapper handshake %s"
+msgstr ""
+
+#: cp/mapper-client.cc:365
+#, gcc-internal-format, gfc-internal-format
+msgid "mapper died by signal %s"
+msgstr ""
+
+#: cp/mapper-client.cc:368
+#, gcc-internal-format, gfc-internal-format
+msgid "mapper exit status %d"
+msgstr ""
+
+#: cp/method.cc:861 cp/method.cc:2447
+#, gcc-internal-format
+msgid "non-static const member %q#D, cannot use default assignment operator"
+msgstr ""
+
+#: cp/method.cc:867 cp/method.cc:2453
+#, gcc-internal-format
+msgid "non-static reference member %q#D, cannot use default assignment operator"
+msgstr ""
+
+#: cp/method.cc:957
+#, gcc-internal-format
+msgid "%qD is not a static data member"
+msgstr ""
+
+#: cp/method.cc:958
+#, gcc-internal-format
+msgid "determining value of %qs"
+msgstr ""
+
+#: cp/method.cc:985
+#, gcc-internal-format
+msgid "forming type of %qs"
+msgstr ""
+
+#: cp/method.cc:1176
+#, gcc-internal-format
+msgid "defaulted %qD only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/method.cc:1191
+#, gcc-internal-format
+msgid "defaulted %qD must return %<bool%>"
+msgstr ""
+
+#: cp/method.cc:1199
+#, gcc-internal-format
+msgid "defaulted %qD must be %<const%>"
+msgstr ""
+
+#: cp/method.cc:1204
+#, gcc-internal-format
+msgid "defaulted %qD must not have %<&&%> ref-qualifier"
+msgstr ""
+
+#: cp/method.cc:1233
+#, gcc-internal-format
+msgid "defaulted %qD is not a friend of %qT"
+msgstr ""
+
+#: cp/method.cc:1245
+#, gcc-internal-format
+msgid "defaulted member %qD must have parameter type %<const %T&%>"
+msgstr ""
+
+#: cp/method.cc:1248
+#, gcc-internal-format
+msgid "defaulted %qD must have parameters of either type %<const %T&%> or %qT"
+msgstr ""
+
+#: cp/method.cc:1251
+#, gcc-internal-format
+msgid "defaulted %qD must have parameters of either type %<const %T&%> or %qT, not both"
+msgstr ""
+
+#. Return type is auto, suggest changing it.
+#: cp/method.cc:1408
+#, gcc-internal-format
+msgid "changing the return type from %qs to a comparison category type will allow the comparison to use %qs and %qs"
+msgstr ""
+
+#: cp/method.cc:1428
+#, gcc-internal-format
+msgid "three-way comparison of %qD has type %qT, not a comparison category type"
+msgstr ""
+
+#: cp/method.cc:1437
+#, gcc-internal-format
+msgid "three-way comparison of %qD has type %qT, which does not convert to %qT"
+msgstr ""
+
+#: cp/method.cc:1482
+#, gcc-internal-format
+msgid "cannot default compare union %qT"
+msgstr ""
+
+#: cp/method.cc:1550
+#, gcc-internal-format
+msgid "cannot default compare reference member %qD"
+msgstr ""
+
+#: cp/method.cc:1559
+#, gcc-internal-format
+msgid "cannot default compare anonymous union member"
+msgstr ""
+
+#: cp/method.cc:1577
+#, gcc-internal-format
+msgid "cannot default compare flexible array member"
+msgstr ""
+
+#: cp/method.cc:1858
+#, gcc-internal-format
+msgid "synthesized method %qD first required here"
+msgstr ""
+
+#: cp/method.cc:2370
+#, gcc-internal-format
+msgid "union member %q+D with non-trivial %qD"
+msgstr ""
+
+#: cp/method.cc:2381
+#, gcc-internal-format
+msgid "defaulted destructor calls non-%<constexpr%> %qD"
+msgstr ""
+
+#: cp/method.cc:2382
+#, gcc-internal-format
+msgid "defaulted constructor calls non-%<constexpr%> %qD"
+msgstr ""
+
+#: cp/method.cc:2470
+#, gcc-internal-format
+msgid "initializer for %q#D is invalid"
+msgstr ""
+
+#: cp/method.cc:2527
+#, gcc-internal-format
+msgid "defaulted default constructor does not initialize %q#D"
+msgstr ""
+
+#: cp/method.cc:2538
+#, gcc-internal-format
+msgid "copying non-static data member %q#D of rvalue reference type"
+msgstr ""
+
+#. A trivial constructor doesn't have any NSDMI.
+#: cp/method.cc:2756
+#, gcc-internal-format
+msgid "defaulted default constructor does not initialize any non-static data member"
+msgstr ""
+
+#: cp/method.cc:2800
+#, gcc-internal-format
+msgid "defaulted move assignment for %qT calls a non-trivial move assignment operator for virtual base %qT"
+msgstr ""
+
+#: cp/method.cc:2932
+#, gcc-internal-format
+msgid "a lambda closure type has a deleted default constructor"
+msgstr ""
+
+#: cp/method.cc:2935
+#, gcc-internal-format
+msgid "a lambda closure type has a deleted copy assignment operator"
+msgstr ""
+
+#: cp/method.cc:2944
+#, gcc-internal-format
+msgid "%q#D is implicitly declared as deleted because %qT declares a move constructor or move assignment operator"
+msgstr ""
+
+#: cp/method.cc:2955
+#, gcc-internal-format
+msgid "%q#D inherits from multiple base subobjects"
+msgstr ""
+
+#: cp/method.cc:2963 cp/method.cc:2987
+#, gcc-internal-format
+msgid "%q#D is implicitly deleted because the default definition would be ill-formed:"
+msgstr ""
+
+#: cp/method.cc:2996
+msgid "%q#F is implicitly deleted because its exception-specification does not match the implicit exception-specification %qX"
+msgstr ""
+
+#: cp/method.cc:3426
+#, gcc-internal-format
+msgid "defaulted declaration %q+D does not match the expected signature"
+msgstr ""
+
+#: cp/method.cc:3429
+#, gcc-internal-format
+msgid "expected signature: %qD"
+msgstr ""
+
+#: cp/method.cc:3461
+#, gcc-internal-format
+msgid "explicitly defaulted function %q+D cannot be declared %qs because the implicit declaration is not %qs:"
+msgstr ""
+
+#: cp/method.cc:3481
+#, gcc-internal-format
+msgid "a template cannot be defaulted"
+msgstr ""
+
+#: cp/method.cc:3520
+#, gcc-internal-format
+msgid "%qD cannot be defaulted"
+msgstr ""
+
+#: cp/method.cc:3529
+#, gcc-internal-format
+msgid "defaulted function %q+D with default argument"
+msgstr ""
+
+#: cp/module.cc:1583
+#, gcc-internal-format
+msgid "section %qs is missing or corrupted"
+msgstr ""
+
+#: cp/module.cc:1585
+#, gcc-internal-format, gfc-internal-format
+msgid "section #%u is missing or corrupted"
+msgstr ""
+
+#: cp/module.cc:1807
+#, gcc-internal-format
+msgid "not Encapsulated Lazy Records of Named Declarations"
+msgstr ""
+
+#: cp/module.cc:1822
+#, gcc-internal-format
+msgid "unexpected encapsulation format or type"
+msgstr ""
+
+#: cp/module.cc:1831
+#, gcc-internal-format
+msgid "encapsulation is malformed"
+msgstr ""
+
+#: cp/module.cc:11604
+#, gcc-internal-format
+msgid "conflicting global module declaration %#qD"
+msgstr ""
+
+#: cp/module.cc:11606
+#, gcc-internal-format
+msgid "existing declaration %#qD"
+msgstr ""
+
+#: cp/module.cc:12655
+#, gcc-internal-format
+msgid "definition of %qD does not match"
+msgstr ""
+
+#: cp/module.cc:12657
+#, gcc-internal-format
+msgid "existing definition %qD"
+msgstr ""
+
+#: cp/module.cc:12669
+#, gcc-internal-format
+msgid "... this enumerator %qD"
+msgstr ""
+
+#: cp/module.cc:12671
+#, gcc-internal-format
+msgid "enumerator %qD does not match ..."
+msgstr ""
+
+#: cp/module.cc:12677
+#, gcc-internal-format
+msgid "additional enumerators beginning with %qD"
+msgstr ""
+
+#: cp/module.cc:12681
+#, gcc-internal-format
+msgid "enumeration range differs"
+msgstr ""
+
+#: cp/module.cc:13782
+#, gcc-internal-format
+msgid "%q#D references internal linkage entity %q#D"
+msgstr ""
+
+#: cp/module.cc:14365
+#, gcc-internal-format
+msgid "recursive lazy load"
+msgstr ""
+
+#. Cannot import the current module.
+#: cp/module.cc:14384
+#, gcc-internal-format
+msgid "cannot import module in its own purview"
+msgstr ""
+
+#: cp/module.cc:14385 cp/module.cc:19710
+#, gcc-internal-format
+msgid "module %qs declared here"
+msgstr ""
+
+#: cp/module.cc:14729
+#, gcc-internal-format
+msgid "indirect import %qs is not already loaded"
+msgstr ""
+
+#: cp/module.cc:14735
+#, gcc-internal-format
+msgid "import %qs has CRC mismatch"
+msgstr ""
+
+#: cp/module.cc:16563
+#, gcc-internal-format
+msgid "unable to represent further imported source locations"
+msgstr ""
+
+#: cp/module.cc:17438
+#, gcc-internal-format
+msgid "not exporting %<#define %E%> as it is a keyword"
+msgstr ""
+
+#: cp/module.cc:17678
+#, gcc-internal-format
+msgid "macro definitions of %qE corrupted"
+msgstr ""
+
+#: cp/module.cc:17702 cp/module.cc:17705
+#, gcc-internal-format
+msgid "inconsistent imported macro definition %qE"
+msgstr ""
+
+#: cp/module.cc:17711
+#, gcc-internal-format
+msgid "%<#undef %E%>"
+msgstr ""
+
+#: cp/module.cc:17713
+#, gcc-internal-format
+msgid "%<#define %s%>"
+msgstr ""
+
+#: cp/module.cc:17946
+#, gcc-internal-format
+msgid "compiled module file is %qs"
+msgstr ""
+
+#: cp/module.cc:17983 cp/module.cc:17988
+#, gcc-internal-format, gfc-internal-format
+msgid "compiled module is %sversion %s"
+msgstr ""
+
+#: cp/module.cc:17994
+#, gcc-internal-format, gfc-internal-format
+msgid "compiler is %sversion %s%s%s"
+msgstr ""
+
+#: cp/module.cc:18024
+#, gcc-internal-format
+msgid "module %qs found"
+msgstr ""
+
+#: cp/module.cc:18026
+#, gcc-internal-format
+msgid "header module expected, module %qs found"
+msgstr ""
+
+#: cp/module.cc:18027
+#, gcc-internal-format
+msgid "module %qs expected, header module found"
+msgstr ""
+
+#: cp/module.cc:18042
+#, gcc-internal-format
+msgid "module %qs CRC mismatch"
+msgstr ""
+
+#: cp/module.cc:18056
+#, gcc-internal-format
+msgid "target & host is %qs:%qs, expected %qs:%qs"
+msgstr ""
+
+#: cp/module.cc:18068
+#, gcc-internal-format
+msgid "language dialect differs %qs, expected %qs"
+msgstr ""
+
+#: cp/module.cc:18084
+#, gcc-internal-format
+msgid "module contains OpenMP, use %<-fopenmp%> to enable"
+msgstr ""
+
+#: cp/module.cc:18101
+#, gcc-internal-format
+msgid "fixed tree mismatch"
+msgstr ""
+
+#: cp/module.cc:18192
+#, gcc-internal-format
+msgid "interface partition is not exported"
+msgstr ""
+
+#: cp/module.cc:18749
+#, gcc-internal-format, gfc-internal-format
+msgid "failed to read compiled module cluster %u: %s"
+msgstr ""
+
+#: cp/module.cc:18787
+#, gcc-internal-format, gfc-internal-format
+msgid "failed to read compiled module: %s"
+msgstr ""
+
+#: cp/module.cc:18797
+#, gcc-internal-format
+msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
+msgstr ""
+
+#: cp/module.cc:18802
+#, gcc-internal-format
+msgid "imports must be built before being imported"
+msgstr ""
+
+#: cp/module.cc:18805
+#, gcc-internal-format
+msgid "returning to the gate for a mechanical issue"
+msgstr ""
+
+#: cp/module.cc:19117
+#, gcc-internal-format
+msgid "declaration %qD conflicts with builtin"
+msgstr ""
+
+#: cp/module.cc:19122
+#, gcc-internal-format
+msgid "redeclaring %qD in module %qs conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19125
+#, gcc-internal-format
+msgid "redeclaring %qD in global module conflicts with import"
+msgstr ""
+
+#: cp/module.cc:19130
+#, gcc-internal-format
+msgid "import declared attached to module %qs"
+msgstr ""
+
+#: cp/module.cc:19134
+#, gcc-internal-format
+msgid "import declared in global module"
+msgstr ""
+
+#: cp/module.cc:19140
+#, gcc-internal-format
+msgid "conflicting declaration of %qD in module %qs"
+msgstr ""
+
+#: cp/module.cc:19143
+#, gcc-internal-format
+msgid "conflicting declaration of %qD in global module"
+msgstr ""
+
+#: cp/module.cc:19148
+#, gcc-internal-format
+msgid "previously declared in module %qs"
+msgstr ""
+
+#: cp/module.cc:19152
+#, gcc-internal-format
+msgid "previously declared in global module"
+msgstr ""
+
+#: cp/module.cc:19404
+#, gcc-internal-format
+msgid "reading CMI %qs"
+msgstr ""
+
+#: cp/module.cc:19555
+#, gcc-internal-format
+msgid "failed to load binding %<%E%s%E%>"
+msgstr ""
+
+#: cp/module.cc:19556
+#, gcc-internal-format
+msgid "failed to load binding %<%E%s%E@%s%>"
+msgstr ""
+
+#: cp/module.cc:19563
+#, gcc-internal-format
+msgid "during load of binding %<%E%s%E%>"
+msgstr ""
+
+#: cp/module.cc:19564
+#, gcc-internal-format
+msgid "during load of binding %<%E%s%E@%s%>"
+msgstr ""
+
+#: cp/module.cc:19626
+#, gcc-internal-format
+msgid "failed to load pendings for %<%E%s%E%>"
+msgstr ""
+
+#: cp/module.cc:19630
+#, gcc-internal-format
+msgid "during load of pendings for %<%E%s%E%>"
+msgstr ""
+
+#. Only header units should appear inside language
+#. specifications.  The std doesn't specify this, but I think
+#. that's an error in resolving US 033, because language linkage
+#. is also our escape clause to getting things into the global
+#. module, so we don't want to confuse things by having to think
+#. about whether 'extern "C++" { import foo; }' puts foo's
+#. contents into the global module all of a sudden.
+#: cp/module.cc:19675
+#, gcc-internal-format
+msgid "import of named module %qs inside language-linkage block"
+msgstr ""
+
+#: cp/module.cc:19705
+#, gcc-internal-format
+msgid "module already declared"
+msgstr ""
+
+#: cp/module.cc:19706
+#, gcc-internal-format
+msgid "module already imported"
+msgstr ""
+
+#: cp/module.cc:19711
+#, gcc-internal-format
+msgid "module %qs imported here"
+msgstr ""
+
+#: cp/module.cc:19918
+#, gcc-internal-format, gfc-internal-format
+msgid "unknown Compiled Module Interface: %s"
+msgstr ""
+
+#: cp/module.cc:19961
+#, gcc-internal-format
+msgid "cannot determine %<#include%> translation of %s: %s"
+msgstr ""
+
+#: cp/module.cc:19979
+#, gcc-internal-format
+msgid "include %qs translated to import"
+msgstr ""
+
+#: cp/module.cc:19980
+#, gcc-internal-format
+msgid "include %qs processed textually"
+msgstr ""
+
+#: cp/module.cc:20339
+#, gcc-internal-format
+msgid "C++ modules are incompatible with precompiled headers"
+msgstr ""
+
+#: cp/module.cc:20343
+#, gcc-internal-format
+msgid "C++ modules are incompatible with traditional preprocessing"
+msgstr ""
+
+#: cp/module.cc:20353
+#, gcc-internal-format
+msgid "macro debug output may be incomplete with modules"
+msgstr ""
+
+#: cp/module.cc:20354
+#, gcc-internal-format
+msgid "module dependencies require preprocessing"
+msgstr ""
+
+#: cp/module.cc:20356
+#, gcc-internal-format
+msgid "you should use the %<-%s%> option"
+msgstr ""
+
+#: cp/module.cc:20391 cp/module.cc:20420
+#, gcc-internal-format
+msgid "invalid header name %qs"
+msgstr ""
+
+#: cp/module.cc:20430
+#, gcc-internal-format
+msgid "invalid module name %qs"
+msgstr ""
+
+#: cp/module.cc:20630
+#, gcc-internal-format
+msgid "%<-fmodule-only%> used for non-interface"
+msgstr ""
+
+#: cp/module.cc:20670
+#, gcc-internal-format
+msgid "writing CMI %qs"
+msgstr ""
+
+#: cp/module.cc:20677
+#, gcc-internal-format
+msgid "not writing module %qs due to errors"
+msgstr ""
+
+#: cp/module.cc:20742
+#, gcc-internal-format, gfc-internal-format
+msgid "failed to write compiled module: %s"
+msgstr ""
+
+#: cp/module.cc:20839
+#, gcc-internal-format
+msgid "unknown header kind %qs"
+msgstr ""
+
+#: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
+#, gcc-internal-format
+msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
+msgstr ""
+
+#: cp/name-lookup.cc:2891
+#, gcc-internal-format
+msgid "redeclaration of %q#D with different template parameters"
+msgstr ""
+
+#: cp/name-lookup.cc:2897
+#, gcc-internal-format
+msgid "%q#D conflicts with a previous declaration"
+msgstr ""
+
+#: cp/name-lookup.cc:3064
+#, gcc-internal-format
+msgid "%q#D hides constructor for %q#D"
+msgstr ""
+
+#: cp/name-lookup.cc:3215
+#, gcc-internal-format
+msgid "conflicting C language linkage declaration %q#D"
+msgstr ""
+
+#: cp/name-lookup.cc:3220
+#, gcc-internal-format
+msgid "due to different exception specifications"
+msgstr ""
+
+#: cp/name-lookup.cc:3330
+#, gcc-internal-format
+msgid "lambda parameter %qD previously declared as a capture"
+msgstr ""
+
+#: cp/name-lookup.cc:3363 cp/name-lookup.cc:3367
+#, gcc-internal-format
+msgid "declaration of %q#D shadows a parameter"
+msgstr ""
+
+#: cp/name-lookup.cc:3526
+#, gcc-internal-format
+msgid "declaration of %qD shadows a member of %qT"
+msgstr ""
+
+#: cp/name-lookup.cc:4018
+#, gcc-internal-format
+msgid "friend declaration %qD in local class without prior local declaration"
+msgstr ""
+
+#: cp/name-lookup.cc:4569
+#, gcc-internal-format
+msgid "%s %<%s(%E)%> %p %d"
+msgstr ""
+
+#: cp/name-lookup.cc:4572
+#, gcc-internal-format
+msgid "%s %s %p %d"
+msgstr ""
+
+#: cp/name-lookup.cc:5158
+#, gcc-internal-format
+msgid "exporting %q#D that does not have external linkage"
+msgstr ""
+
+#: cp/name-lookup.cc:5163
+#, gcc-internal-format
+msgid "%q#D declared here with no linkage"
+msgstr ""
+
+#: cp/name-lookup.cc:5166
+#, gcc-internal-format
+msgid "%q#D declared here with internal linkage"
+msgstr ""
+
+#: cp/name-lookup.cc:5169
+#, gcc-internal-format
+msgid "%q#D declared here with module linkage"
+msgstr ""
+
+#: cp/name-lookup.cc:5968
+#, gcc-internal-format
+msgid "%<%T%s%D%> names destructor"
+msgstr ""
+
+#: cp/name-lookup.cc:5984
+#, gcc-internal-format
+msgid "using-declaration for non-member at class scope"
+msgstr ""
+
+#: cp/name-lookup.cc:5992
+#, gcc-internal-format
+msgid "%<using%> with enumeration scope %q#T only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/name-lookup.cc:6008 cp/pt.cc:18531
+#, gcc-internal-format
+msgid "%qT is not a class, namespace, or enumeration"
+msgstr ""
+
+#: cp/name-lookup.cc:6018
+#, gcc-internal-format
+msgid "non-member using-declaration names constructor of %qT"
+msgstr ""
+
+#: cp/name-lookup.cc:6029 cp/name-lookup.cc:6102
+#, gcc-internal-format
+msgid "using-declaration for member at non-class scope"
+msgstr ""
+
+#: cp/name-lookup.cc:6052
+#, gcc-internal-format
+msgid "%qT is not a direct base of %qT"
+msgstr ""
+
+#: cp/name-lookup.cc:6112
+#, gcc-internal-format
+msgid "did you mean %<using enum %T::%D%>?"
+msgstr ""
+
+#: cp/name-lookup.cc:6124
+#, gcc-internal-format
+msgid "%qD has not been declared in %qD"
+msgstr ""
+
+#: cp/name-lookup.cc:6138
+#, gcc-internal-format
+msgid "using-declaration may not name namespace %qD"
+msgstr ""
+
+#: cp/name-lookup.cc:6149
+#, gcc-internal-format
+msgid "%<%T::%D%> names constructor in %qT"
+msgstr ""
+
+#: cp/name-lookup.cc:6242
+#, gcc-internal-format
+msgid "declaration of %qD not in a namespace surrounding %qD"
+msgstr ""
+
+#: cp/name-lookup.cc:6283
+#, gcc-internal-format
+msgid "explicit qualification in declaration of %qD"
+msgstr ""
+
+#: cp/name-lookup.cc:6293
+#, gcc-internal-format
+msgid "%qD should have been declared inside %qD"
+msgstr ""
+
+#: cp/name-lookup.cc:6362
+#, gcc-internal-format
+msgid "%qD has not been declared within %qD"
+msgstr ""
+
+#: cp/name-lookup.cc:6364
+#, gcc-internal-format
+msgid "only here as a %<friend%>"
+msgstr ""
+
+#: cp/name-lookup.cc:6418
+#, gcc-internal-format
+msgid "%qD attribute requires a single NTBS argument"
+msgstr ""
+
+#: cp/name-lookup.cc:6425
+#, gcc-internal-format
+msgid "%qD attribute is meaningless since members of the anonymous namespace get local symbols"
+msgstr ""
+
+#: cp/name-lookup.cc:6435 cp/name-lookup.cc:6462
+#, gcc-internal-format
+msgid "ignoring %qD attribute on anonymous namespace"
+msgstr ""
+
+#: cp/name-lookup.cc:6441
+#, gcc-internal-format
+msgid "ignoring %qD attribute on non-inline namespace"
+msgstr ""
+
+#: cp/name-lookup.cc:6478 cp/name-lookup.cc:8872
+#, gcc-internal-format
+msgid "%qD attribute directive ignored"
+msgstr ""
+
+#: cp/name-lookup.cc:6804
+#, gcc-internal-format
+msgid "maximum limit of %d namespaces searched for %qE"
+msgstr ""
+
+#: cp/name-lookup.cc:6856
+#, gcc-internal-format
+msgid "suggested alternative:"
+msgid_plural "suggested alternatives:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: cp/name-lookup.cc:6862
+#, gcc-internal-format
+msgid "  %qE"
+msgstr ""
+
+#: cp/name-lookup.cc:7176
+#, gcc-internal-format
+msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
+msgstr ""
+
+#: cp/name-lookup.cc:7182
+#, gcc-internal-format
+msgid "%<std::%s%> is only available from %s onwards"
+msgstr ""
+
+#: cp/name-lookup.cc:7618
+#, gcc-internal-format
+msgid "the macro %qs had not yet been defined"
+msgstr ""
+
+#: cp/name-lookup.cc:7621
+#, gcc-internal-format
+msgid "it was later defined here"
+msgstr ""
+
+#: cp/name-lookup.cc:8416
+#, gcc-internal-format
+msgid "declaration of %<std::initializer_list%> does not match %<#include <initializer_list>%>, isn%'t a template"
+msgstr ""
+
+#: cp/name-lookup.cc:8844
+#, gcc-internal-format
+msgid "%<strong%> using directive no longer supported"
+msgstr ""
+
+#: cp/name-lookup.cc:8847
+#, gcc-internal-format
+msgid "you can use an inline namespace instead"
+msgstr ""
+
+#: cp/name-lookup.cc:8866
+#, gcc-internal-format
+msgid "%<omp::%E%> not allowed to be specified in this context"
+msgstr ""
+
+#. We only allow depth 255.
+#: cp/name-lookup.cc:8958
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot nest more than %d namespaces"
+msgstr ""
+
+#: cp/name-lookup.cc:9055
+#, gcc-internal-format
+msgid "%<namespace %E%> is ambiguous"
+msgstr ""
+
+#: cp/name-lookup.cc:9071
+#, gcc-internal-format
+msgid "namespace alias %qD not allowed here, assuming %qD"
+msgstr ""
+
+#: cp/name-lookup.cc:9158
+#, gcc-internal-format
+msgid "inline namespace must be specified at initial definition"
+msgstr ""
+
+#: cp/name-lookup.cc:9159
+#, gcc-internal-format
+msgid "%qD defined here"
+msgstr ""
+
+#: cp/name-lookup.cc:9207
+#, gcc-internal-format
+msgid "%s namespace %qD conflicts with reachable definition"
+msgstr ""
+
+#: cp/name-lookup.cc:9209
+#, gcc-internal-format, gfc-internal-format
+msgid "reachable %s definition here"
+msgstr ""
+
+#: cp/name-lookup.cc:9252
+#, gcc-internal-format
+msgid "XXX entering %<pop_everything ()%>"
+msgstr ""
+
+#: cp/name-lookup.cc:9261
+#, gcc-internal-format
+msgid "XXX leaving %<pop_everything ()%>"
+msgstr ""
+
+#: cp/optimize.cc:629
+#, gcc-internal-format
+msgid "making multiple clones of %qD"
+msgstr ""
+
+#: cp/parser.cc:1006
+#, gcc-internal-format
+msgid "identifier %qE is a keyword in C++11"
+msgstr ""
+
+#: cp/parser.cc:1020
+#, gcc-internal-format
+msgid "identifier %qE is a keyword in C++20"
+msgstr ""
+
+#: cp/parser.cc:1569 cp/parser.cc:1582
+#, gcc-internal-format
+msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
+msgstr ""
+
+#: cp/parser.cc:1607 cp/parser.cc:47879
+#, gcc-internal-format
+msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
+msgstr ""
+
+#: cp/parser.cc:1647
+#, gcc-internal-format
+msgid "%<declare %s%> directive not immediately followed by function declaration or definition"
+msgstr ""
+
+#: cp/parser.cc:3226
+#, gcc-internal-format
+msgid "%<#pragma%> is not allowed here"
+msgstr ""
+
+#: cp/parser.cc:3355
+#, gcc-internal-format
+msgid "%<%E::%E%> has not been declared"
+msgstr ""
+
+#: cp/parser.cc:3358
+#, gcc-internal-format
+msgid "%<::%E%> has not been declared"
+msgstr ""
+
+#: cp/parser.cc:3361
+#, gcc-internal-format
+msgid "request for member %qE in non-class type %qT"
+msgstr ""
+
+#: cp/parser.cc:3364 cp/parser.cc:21671
+#, gcc-internal-format
+msgid "%<%T::%E%> has not been declared"
+msgstr ""
+
+#: cp/parser.cc:3374
+#, gcc-internal-format
+msgid "%<%E::%E%> is not a type"
+msgstr ""
+
+#: cp/parser.cc:3378
+#, gcc-internal-format
+msgid "%<%E::%E%> is not a class or namespace"
+msgstr ""
+
+#: cp/parser.cc:3383
+#, gcc-internal-format
+msgid "%<%E::%E%> is not a class, namespace, or enumeration"
+msgstr ""
+
+#: cp/parser.cc:3396
+#, gcc-internal-format
+msgid "%<::%E%> is not a type"
+msgstr ""
+
+#: cp/parser.cc:3399
+#, gcc-internal-format
+msgid "%<::%E%> is not a class or namespace"
+msgstr ""
+
+#: cp/parser.cc:3403
+#, gcc-internal-format
+msgid "%<::%E%> is not a class, namespace, or enumeration"
+msgstr ""
+
+#: cp/parser.cc:3415
+#, gcc-internal-format
+msgid "%qE is not a type"
+msgstr ""
+
+#: cp/parser.cc:3418
+#, gcc-internal-format
+msgid "%qE is not a class or namespace"
+msgstr ""
+
+#: cp/parser.cc:3422
+#, gcc-internal-format
+msgid "%qE is not a class, namespace, or enumeration"
+msgstr ""
+
+#: cp/parser.cc:3486
+#, gcc-internal-format
+msgid "new types may not be defined in a return type"
+msgstr ""
+
+#: cp/parser.cc:3488
+#, gcc-internal-format
+msgid "(perhaps a semicolon is missing after the definition of %qT)"
+msgstr ""
+
+#: cp/parser.cc:3516
+#, gcc-internal-format
+msgid "%qE is not a class template"
+msgstr ""
+
+#: cp/parser.cc:3518
+#, gcc-internal-format
+msgid "%qE is not a template"
+msgstr ""
+
+#: cp/parser.cc:3521
+#, gcc-internal-format
+msgid "invalid template-id"
+msgstr ""
+
+#: cp/parser.cc:3555
+#, gcc-internal-format
+msgid "ISO C++ forbids using a floating-point literal in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3559
+#, gcc-internal-format
+msgid "a cast to a type other than an integral or enumeration type cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3564
+#, gcc-internal-format
+msgid "%<typeid%> operator cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3568
+#, gcc-internal-format
+msgid "non-constant compound literals cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3572
+#, gcc-internal-format
+msgid "a function call cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3576
+#, gcc-internal-format
+msgid "an increment cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3580
+#, gcc-internal-format
+msgid "an decrement cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3584
+#, gcc-internal-format
+msgid "an array reference cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3588
+#, gcc-internal-format
+msgid "the address of a label cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3592
+#, gcc-internal-format
+msgid "calls to overloaded operators cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3596
+#, gcc-internal-format
+msgid "an assignment cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3599
+#, gcc-internal-format
+msgid "a comma operator cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3603
+#, gcc-internal-format
+msgid "a call to a constructor cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3607
+#, gcc-internal-format
+msgid "a transaction expression cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3653
+#, gcc-internal-format
+msgid "%qs cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/parser.cc:3690
+#, gcc-internal-format
+msgid "class template argument deduction is only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:3695
+#, gcc-internal-format
+msgid "invalid use of destructor %qD as a type"
+msgstr ""
+
+#. Something like 'unsigned A a;'
+#: cp/parser.cc:3698
+#, gcc-internal-format
+msgid "invalid combination of multiple type-specifiers"
+msgstr ""
+
+#: cp/parser.cc:3711
+#, gcc-internal-format
+msgid "%qE does not name a type; did you mean %qs?"
+msgstr ""
+
+#: cp/parser.cc:3715
+#, gcc-internal-format
+msgid "%qE does not name a type"
+msgstr ""
+
+#: cp/parser.cc:3724
+#, gcc-internal-format
+msgid "C++11 %<constexpr%> only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/parser.cc:3727
+#, gcc-internal-format
+msgid "C++11 %<noexcept%> only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/parser.cc:3733
+#, gcc-internal-format
+msgid "%qE is not recognized as a module control-line"
+msgstr ""
+
+#: cp/parser.cc:3736
+#, gcc-internal-format
+msgid "C++20 %qE only available with %<-fmodules-ts%>"
+msgstr ""
+
+#: cp/parser.cc:3739
+#, gcc-internal-format
+msgid "C++20 %qE only available with %<-fmodules-ts%>, which is not yet enabled with %<-std=c++20%>"
+msgstr ""
+
+#: cp/parser.cc:3745
+#, gcc-internal-format
+msgid "C++11 %<thread_local%> only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/parser.cc:3748
+#, gcc-internal-format
+msgid "C++20 %<constinit%> only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:3751
+#, gcc-internal-format
+msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
+msgstr ""
+
+#: cp/parser.cc:3754 cp/parser.cc:31353
+#, gcc-internal-format
+msgid "%<requires%> only available with %<-std=c++20%> or %<-fconcepts%>"
+msgstr ""
+
+#: cp/parser.cc:3776
+#, gcc-internal-format
+msgid "(perhaps %<typename %T::%E%> was intended)"
+msgstr ""
+
+#: cp/parser.cc:3804 cp/parser.cc:3816
+#, gcc-internal-format
+msgid "%qE in namespace %qE does not name a template type; did you mean %qs?"
+msgstr ""
+
+#: cp/parser.cc:3809 cp/parser.cc:3821
+#, gcc-internal-format
+msgid "%qE in namespace %qE does not name a template type"
+msgstr ""
+
+#: cp/parser.cc:3829
+#, gcc-internal-format
+msgid "%qE in namespace %qE does not name a type; did you mean %qs?"
+msgstr ""
+
+#: cp/parser.cc:3834
+#, gcc-internal-format
+msgid "%qE in namespace %qE does not name a type"
+msgstr ""
+
+#: cp/parser.cc:3845
+#, gcc-internal-format
+msgid "%<%T::%E%> names the constructor, not the type"
+msgstr ""
+
+#: cp/parser.cc:3848
+#, gcc-internal-format
+msgid "and %qT has no template constructors"
+msgstr ""
+
+#: cp/parser.cc:3858
+#, gcc-internal-format
+msgid "need %<typename%> before %<%T::%D::%E%> because %<%T::%D%> is a dependent scope"
+msgstr ""
+
+#: cp/parser.cc:3866
+#, gcc-internal-format
+msgid "need %<typename%> before %<%T::%E%> because %qT is a dependent scope"
+msgstr ""
+
+#: cp/parser.cc:3878 cp/parser.cc:3882
+#, gcc-internal-format
+msgid "%qE in %q#T does not name a template type"
+msgstr ""
+
+#: cp/parser.cc:3886
+#, gcc-internal-format
+msgid "%qE in %q#T does not name a type"
+msgstr ""
+
+#: cp/parser.cc:4573
+#, gcc-internal-format
+msgid "expected string-literal"
+msgstr ""
+
+#: cp/parser.cc:4645
+#, gcc-internal-format
+msgid "inconsistent user-defined literal suffixes %qD and %qD in string literal"
+msgstr ""
+
+#: cp/parser.cc:4664
+#, gcc-internal-format
+msgid "concatenation of string literals with conflicting encoding prefixes"
+msgstr ""
+
+#: cp/parser.cc:4885
+#, gcc-internal-format
+msgid "unable to find character literal operator %qD with %qT argument"
+msgstr ""
+
+#: cp/parser.cc:4991
+#, gcc-internal-format
+msgid "integer literal exceeds range of %qT type"
+msgstr ""
+
+#: cp/parser.cc:4998
+#, gcc-internal-format
+msgid "floating literal exceeds range of %qT type"
+msgstr ""
+
+#: cp/parser.cc:5002
+#, gcc-internal-format
+msgid "floating literal truncated to zero"
+msgstr ""
+
+#: cp/parser.cc:5031
+#, gcc-internal-format
+msgid "failed to translate literal to execution character set %qT"
+msgstr ""
+
+#: cp/parser.cc:5065
+#, gcc-internal-format
+msgid "unable to find numeric literal operator %qD"
+msgstr ""
+
+#: cp/parser.cc:5071
+#, gcc-internal-format
+msgid "add %<using namespace std::complex_literals%> (from %<<complex>%>) to enable the C++14 user-defined literal suffixes"
+msgstr ""
+
+#: cp/parser.cc:5075
+#, gcc-internal-format
+msgid "or use %<j%> instead of %<i%> for the GNU built-in suffix"
+msgstr ""
+
+#: cp/parser.cc:5079
+#, gcc-internal-format
+msgid "use %<-fext-numeric-literals%> to enable more built-in suffixes"
+msgstr ""
+
+#: cp/parser.cc:5163
+#, gcc-internal-format
+msgid "unable to find string literal operator %qD with %qT, %qT arguments"
+msgstr ""
+
+#: cp/parser.cc:5257
+#, gcc-internal-format
+msgid "global module fragment contents must be from preprocessor inclusion"
+msgstr ""
+
+#: cp/parser.cc:5272 cp/parser.cc:15792
+#, gcc-internal-format
+msgid "expected declaration"
+msgstr ""
+
+#: cp/parser.cc:5637 cp/parser.cc:5653
+#, gcc-internal-format
+msgid "expected binary operator"
+msgstr ""
+
+#: cp/parser.cc:5659
+#, gcc-internal-format
+msgid "expected ..."
+msgstr ""
+
+#: cp/parser.cc:5671
+#, gcc-internal-format
+msgid "binary expression in operand of fold-expression"
+msgstr ""
+
+#: cp/parser.cc:5676
+#, gcc-internal-format
+msgid "conditional expression in operand of fold-expression"
+msgstr ""
+
+#: cp/parser.cc:5687
+#, gcc-internal-format
+msgid "mismatched operator in fold-expression"
+msgstr ""
+
+#: cp/parser.cc:5792
+#, gcc-internal-format
+msgid "fixed-point types not supported in C++"
+msgstr ""
+
+#: cp/parser.cc:5882
+#, gcc-internal-format
+msgid "ISO C++ forbids braced-groups within expressions"
+msgstr ""
+
+#: cp/parser.cc:5894
+#, gcc-internal-format
+msgid "statement-expressions are not allowed outside functions nor in template-argument lists"
+msgstr ""
+
+#: cp/parser.cc:5934
+#, gcc-internal-format
+msgid "fold-expressions only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:5995 cp/parser.cc:6150 cp/parser.cc:6334 cp/semantics.cc:4403
+#, gcc-internal-format
+msgid "expected primary-expression"
+msgstr ""
+
+#: cp/parser.cc:6025
+#, gcc-internal-format
+msgid "%<this%> may not be used in this context"
+msgstr ""
+
+#: cp/parser.cc:6144
+#, gcc-internal-format
+msgid "a template declaration cannot appear at block scope"
+msgstr ""
+
+#: cp/parser.cc:6294
+#, gcc-internal-format
+msgid "parameter %qD may not appear in this context"
+msgstr ""
+
+#: cp/parser.cc:6295
+#, gcc-internal-format
+msgid "local variable %qD may not appear in this context"
+msgstr ""
+
+#: cp/parser.cc:6362
+#, gcc-internal-format
+msgid "expected %qs keyword before dependent template name"
+msgstr ""
+
+#: cp/parser.cc:6505
+#, gcc-internal-format
+msgid "expected id-expression"
+msgstr ""
+
+#: cp/parser.cc:6668
+#, gcc-internal-format
+msgid "scope %qT before %<~%> is not a class-name"
+msgstr ""
+
+#: cp/parser.cc:6678
+#, gcc-internal-format
+msgid "%<template%> keyword not permitted in destructor name"
+msgstr ""
+
+#: cp/parser.cc:6715 cp/parser.cc:8911
+#, gcc-internal-format
+msgid "%<~auto%> only available with %<-std=c++14%> or %<-std=gnu++14%>"
+msgstr ""
+
+#: cp/parser.cc:6729 cp/parser.cc:6733
+#, gcc-internal-format
+msgid "template-id not allowed for destructor in C++20"
+msgstr ""
+
+#: cp/parser.cc:6735 cp/parser.cc:32586
+#, gcc-internal-format
+msgid "remove the %qs"
+msgstr ""
+
+#: cp/parser.cc:6843
+#, gcc-internal-format
+msgid "declaration of %<~%T%> as member of %qT"
+msgstr ""
+
+#: cp/parser.cc:6858
+#, gcc-internal-format
+msgid "typedef-name %qD used as destructor declarator"
+msgstr ""
+
+#: cp/parser.cc:6894 cp/parser.cc:24195
+#, gcc-internal-format
+msgid "expected unqualified-id"
+msgstr ""
+
+#: cp/parser.cc:6921 cp/typeck.cc:3161 cp/typeck.cc:3164 cp/typeck.cc:3181
+#, gcc-internal-format
+msgid "%qD is not a template"
+msgstr ""
+
+#: cp/parser.cc:7035
+#, gcc-internal-format
+msgid "found %<:%> in nested-name-specifier, expected %<::%>"
+msgstr ""
+
+#: cp/parser.cc:7116
+#, gcc-internal-format
+msgid "%<decltype%> evaluates to %qT, which is not a class or enumeration type"
+msgstr ""
+
+#: cp/parser.cc:7143 cp/parser.cc:7154
+#, gcc-internal-format
+msgid "concept-id %qD in nested-name-specifier"
+msgstr ""
+
+#: cp/parser.cc:7146
+#, gcc-internal-format
+msgid "function template-id %qD in nested-name-specifier"
+msgstr ""
+
+#: cp/parser.cc:7160
+#, gcc-internal-format
+msgid "variable template-id %qD in nested-name-specifier"
+msgstr ""
+
+#: cp/parser.cc:7334
+#, gcc-internal-format
+msgid "expected nested-name-specifier"
+msgstr ""
+
+#: cp/parser.cc:7541 cp/parser.cc:10156
+#, gcc-internal-format
+msgid "types may not be defined in casts"
+msgstr ""
+
+#: cp/parser.cc:7630
+#, gcc-internal-format
+msgid "types may not be defined in a %<typeid%> expression"
+msgstr ""
+
+#: cp/parser.cc:7722
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_addressof%>"
+msgstr ""
+
+#: cp/parser.cc:7734 cp/pt.cc:21039
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_launder%>"
+msgstr ""
+
+#: cp/parser.cc:7747
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_assoc_barrier%>"
+msgstr ""
+
+#: cp/parser.cc:7773
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_shufflevector%>"
+msgstr ""
+
+#: cp/parser.cc:7907
+#, gcc-internal-format
+msgid "ISO C++ forbids compound-literals"
+msgstr ""
+
+#: cp/parser.cc:7966
+#, gcc-internal-format
+msgid "two consecutive %<[%> shall only introduce an attribute"
+msgstr ""
+
+#: cp/parser.cc:8017
+#, gcc-internal-format
+msgid "types may not be defined in %<__builtin_classify_type%> calls"
+msgstr ""
+
+#: cp/parser.cc:8400 cp/parser.cc:8429
+#, gcc-internal-format
+msgid "cannot use multidimensional subscript in OpenMP array section"
+msgstr ""
+
+#: cp/parser.cc:8687 cp/typeck.cc:3049
+#, gcc-internal-format
+msgid "invalid use of %qD"
+msgstr ""
+
+#: cp/parser.cc:8696
+#, gcc-internal-format
+msgid "%<%D::%D%> is not a class member"
+msgstr ""
+
+#: cp/parser.cc:8963
+#, gcc-internal-format
+msgid "non-scalar type"
+msgstr ""
+
+#: cp/parser.cc:9073
+#, gcc-internal-format
+msgid "ISO C++ does not allow %<alignof%> with a non-type"
+msgstr ""
+
+#: cp/parser.cc:9168
+#, gcc-internal-format
+msgid "types may not be defined in %<noexcept%> expressions"
+msgstr ""
+
+#: cp/parser.cc:9444 cp/parser.cc:33999
+#, gcc-internal-format
+msgid "types may not be defined in %qs expressions"
+msgstr ""
+
+#: cp/parser.cc:9509
+#, gcc-internal-format
+msgid "%<__builtin_has_attribute%> with dependent argument not supported yet"
+msgstr ""
+
+#: cp/parser.cc:9595
+#, gcc-internal-format
+msgid "types may not be defined in a new-expression"
+msgstr ""
+
+#: cp/parser.cc:9611
+#, gcc-internal-format
+msgid "array bound forbidden after parenthesized type-id"
+msgstr ""
+
+#: cp/parser.cc:9613
+#, gcc-internal-format
+msgid "try removing the parentheses around the type-id"
+msgstr ""
+
+#: cp/parser.cc:9645
+#, gcc-internal-format
+msgid "initialization of new-expression for type %<auto%> requires exactly one element"
+msgstr ""
+
+#: cp/parser.cc:9690
+#, gcc-internal-format
+msgid "expected expression-list or type-id"
+msgstr ""
+
+#: cp/parser.cc:9719
+#, gcc-internal-format
+msgid "types may not be defined in a new-type-id"
+msgstr ""
+
+#: cp/parser.cc:9854
+#, gcc-internal-format
+msgid "expression in new-declarator must have integral or enumeration type"
+msgstr ""
+
+#: cp/parser.cc:10261
+#, gcc-internal-format
+msgid "use of old-style cast to %q#T"
+msgstr ""
+
+#: cp/parser.cc:10410
+#, gcc-internal-format
+msgid "%<>>%> operator is treated as two right angle brackets in C++11"
+msgstr ""
+
+#: cp/parser.cc:10413
+#, gcc-internal-format
+msgid "suggest parentheses around %<>>%> expression"
+msgstr ""
+
+#: cp/parser.cc:10639
+#, gcc-internal-format
+msgid "ISO C++ does not allow %<?:%> with omitted middle operand"
+msgstr ""
+
+#: cp/parser.cc:10947
+#, gcc-internal-format
+msgid "top-level comma expression in array subscript is deprecated"
+msgstr ""
+
+#: cp/parser.cc:11095
+#, gcc-internal-format
+msgid "types may not be defined within %<__builtin_offsetof%>"
+msgstr ""
+
+#: cp/parser.cc:11229
+#, gcc-internal-format
+msgid "trailing argument to %<__type_pack_element%> is not a type"
+msgstr ""
+
+#: cp/parser.cc:11329
+#, gcc-internal-format
+msgid "lambda-expression in template parameter type"
+msgstr ""
+
+#: cp/parser.cc:11339
+#, gcc-internal-format
+msgid "lambda-expression in unevaluated context only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:11349
+#, gcc-internal-format
+msgid "lambda-expression in template-argument only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:11509
+#, gcc-internal-format
+msgid "non-local lambda expression cannot have a capture-default"
+msgstr ""
+
+#: cp/parser.cc:11532
+#, gcc-internal-format
+msgid "expected end of capture-list"
+msgstr ""
+
+#: cp/parser.cc:11548
+#, gcc-internal-format
+msgid "explicit by-copy capture of %<this%> with by-copy capture default only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:11554 cp/parser.cc:11576 cp/parser.cc:11772
+#, gcc-internal-format
+msgid "already captured %qD in lambda expression"
+msgstr ""
+
+#: cp/parser.cc:11570
+#, gcc-internal-format
+msgid "%<*this%> capture only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:11590
+#, gcc-internal-format
+msgid "%<this%> cannot be captured by reference"
+msgstr ""
+
+#: cp/parser.cc:11610
+#, gcc-internal-format
+msgid "pack init-capture only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:11621
+#, gcc-internal-format
+msgid "%<&%> should come before %<...%>"
+msgstr ""
+
+#: cp/parser.cc:11651
+#, gcc-internal-format
+msgid "lambda capture initializers only available with %<-std=c++14%> or %<-std=gnu++14%>"
+msgstr ""
+
+#: cp/parser.cc:11660
+#, gcc-internal-format
+msgid "empty initializer for lambda init-capture"
+msgstr ""
+
+#: cp/parser.cc:11684
+#, gcc-internal-format
+msgid "capture of non-variable %qE"
+msgstr ""
+
+#: cp/parser.cc:11688 cp/parser.cc:11698 cp/semantics.cc:4245
+#: cp/semantics.cc:4260
+#, gcc-internal-format
+msgid "%q#D declared here"
+msgstr ""
+
+#: cp/parser.cc:11694
+#, gcc-internal-format
+msgid "capture of variable %qD with non-automatic storage duration"
+msgstr ""
+
+#: cp/parser.cc:11732
+#, gcc-internal-format
+msgid "too many %<...%> in lambda capture"
+msgstr ""
+
+#: cp/parser.cc:11743
+#, gcc-internal-format
+msgid "explicit by-copy capture of %qD redundant with by-copy capture default"
+msgstr ""
+
+#: cp/parser.cc:11748
+#, gcc-internal-format
+msgid "explicit by-reference capture of %qD redundant with by-reference capture default"
+msgstr ""
+
+#: cp/parser.cc:11830
+#, gcc-internal-format
+msgid "lambda templates are only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:11879
+#, gcc-internal-format
+msgid "default argument specified for lambda parameter"
+msgstr ""
+
+#: cp/parser.cc:11902
+#, gcc-internal-format
+msgid "parameter declaration before lambda declaration specifiers only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/parser.cc:11932 cp/pt.cc:14783
+#, gcc-internal-format
+msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
+msgstr ""
+
+#: cp/parser.cc:11945
+#, gcc-internal-format
+msgid "%<mutable%> lambda specifier with explicit object parameter"
+msgstr ""
+
+#: cp/parser.cc:11954
+#, gcc-internal-format
+msgid "the passed in closure object will not be mutated because it is taken by value"
+msgstr ""
+
+#: cp/parser.cc:11958
+#, gcc-internal-format
+msgid "declare the explicit object parameter as non-const reference instead"
+msgstr ""
+
+#: cp/parser.cc:11962
+#, gcc-internal-format
+msgid "explicit object parameter is already a mutable reference"
+msgstr ""
+
+#: cp/parser.cc:11969
+#, gcc-internal-format
+msgid "%<static%> lambda specifier with explicit object parameter"
+msgstr ""
+
+#: cp/parser.cc:11987
+#, gcc-internal-format
+msgid "%<static%> lambda specifier with lambda capture"
+msgstr ""
+
+#: cp/parser.cc:11999
+#, gcc-internal-format
+msgid "parameter declaration before lambda transaction qualifier only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/parser.cc:12012
+#, gcc-internal-format
+msgid "parameter declaration before lambda exception specification only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/parser.cc:12030
+#, gcc-internal-format
+msgid "parameter declaration before lambda trailing return type only optional with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/parser.cc:12072
+#, gcc-internal-format
+msgid "%<constexpr%> lambda only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:12636
+#, gcc-internal-format
+msgid "preconditions cannot be statements"
+msgstr ""
+
+#: cp/parser.cc:12639
+#, gcc-internal-format
+msgid "postconditions cannot be statements"
+msgstr ""
+
+#: cp/parser.cc:12644
+#, gcc-internal-format
+msgid "assertions must be followed by %<;%>"
+msgstr ""
+
+#: cp/parser.cc:12809
+#, gcc-internal-format
+msgid "label at end of compound statement only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/parser.cc:12987 cp/parser.cc:13197
+#, gcc-internal-format
+msgid "attributes at the beginning of statement are ignored"
+msgstr ""
+
+#: cp/parser.cc:13031
+#, gcc-internal-format
+msgid "expected labeled-statement"
+msgstr ""
+
+#: cp/parser.cc:13080
+#, gcc-internal-format
+msgid "case label %qE not within a switch statement"
+msgstr ""
+
+#: cp/parser.cc:13204
+#, gcc-internal-format
+msgid "need %<typename%> before %qE because %qT is a dependent scope"
+msgstr ""
+
+#: cp/parser.cc:13213
+#, gcc-internal-format
+msgid "%<%T::%D%> names the constructor, not the type"
+msgstr ""
+
+#: cp/parser.cc:13265
+#, gcc-internal-format
+msgid "compound-statement in %<constexpr%> function"
+msgstr ""
+
+#: cp/parser.cc:13527
+#, gcc-internal-format
+msgid "%<if constexpr%> only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:13549
+#, gcc-internal-format
+msgid "%<if consteval%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/parser.cc:13574 cp/parser.cc:13609
+#, gcc-internal-format
+msgid "%<if consteval%> requires compound statement"
+msgstr ""
+
+#: cp/parser.cc:13651
+#, gcc-internal-format
+msgid "init-statement in selection statements only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:13819 cp/parser.cc:34511
+#, gcc-internal-format
+msgid "expected selection-statement"
+msgstr ""
+
+#: cp/parser.cc:13860
+#, gcc-internal-format
+msgid "condition declares an array"
+msgstr ""
+
+#: cp/parser.cc:13862
+#, gcc-internal-format
+msgid "condition declares a function"
+msgstr ""
+
+#: cp/parser.cc:13902
+#, gcc-internal-format
+msgid "types may not be defined in conditions"
+msgstr ""
+
+#. Anything else is an error.
+#: cp/parser.cc:13984 cp/parser.cc:23466 cp/parser.cc:26107
+#, gcc-internal-format
+msgid "expected initializer"
+msgstr ""
+
+#: cp/parser.cc:14034
+#, gcc-internal-format
+msgid "range-based %<for%> loops with initializer only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:14287
+#, gcc-internal-format
+msgid "loop variable %qD of type %qT binds to a temporary constructed from type %qT"
+msgstr ""
+
+#. rval
+#: cp/parser.cc:14294
+#, gcc-internal-format
+msgid "use non-reference type %qT to make the copy explicit or %qT to prevent copying"
+msgstr ""
+
+#: cp/parser.cc:14318
+#, gcc-internal-format
+msgid "loop variable %qD creates a copy from type %qT"
+msgstr ""
+
+#: cp/parser.cc:14323
+#, gcc-internal-format
+msgid "use reference type to prevent copying"
+msgstr ""
+
+#: cp/parser.cc:14464
+#, gcc-internal-format
+msgid "range-based %<for%> expression of type %qT has incomplete type"
+msgstr ""
+
+#: cp/parser.cc:14548
+#, gcc-internal-format
+msgid "inconsistent begin/end types in range-based %<for%> statement: %qT and %qT"
+msgstr ""
+
+#: cp/parser.cc:14700 cp/parser.cc:34514
+#, gcc-internal-format
+msgid "expected iteration-statement"
+msgstr ""
+
+#: cp/parser.cc:14745
+#, gcc-internal-format
+msgid "alias-declaration in init-statement only available with %<-std=c++23%> or %<-std=gnu++23%>"
+msgstr ""
+
+#: cp/parser.cc:14762
+#, gcc-internal-format
+msgid "range-based %<for%> loops only available with %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/parser.cc:14893
+#, gcc-internal-format
+msgid "%<goto%> in %<constexpr%> function only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#. Issue a warning about this use of a GNU extension.
+#: cp/parser.cc:14902
+#, gcc-internal-format
+msgid "ISO C++ forbids computed gotos"
+msgstr ""
+
+#: cp/parser.cc:14915 cp/parser.cc:34517
+#, gcc-internal-format
+msgid "expected jump-statement"
+msgstr ""
+
+#: cp/parser.cc:15090
+#, gcc-internal-format
+msgid "expected module-partition"
+msgstr ""
+
+#: cp/parser.cc:15092
+#, gcc-internal-format
+msgid "expected module-name"
+msgstr ""
+
+#: cp/parser.cc:15133
+#, gcc-internal-format
+msgid "module-declaration not permitted in header-unit"
+msgstr ""
+
+#: cp/parser.cc:15159
+#, gcc-internal-format
+msgid "private module fragment"
+msgstr ""
+
+#: cp/parser.cc:15163
+#, gcc-internal-format
+msgid "private module fragment only permitted in purview of module interface or partition"
+msgstr ""
+
+#. Neither the first declaration, nor in a GMF.
+#: cp/parser.cc:15169
+#, gcc-internal-format
+msgid "module-declaration only permitted as first declaration, or ending a global module fragment"
+msgstr ""
+
+#: cp/parser.cc:15209
+#, gcc-internal-format
+msgid "post-module-declaration imports must be contiguous"
+msgstr ""
+
+#: cp/parser.cc:15212
+#, gcc-internal-format
+msgid "perhaps insert a line break, or other disambiguation, to prevent this being considered a module control-line"
+msgstr ""
+
+#: cp/parser.cc:15220
+#, gcc-internal-format
+msgid "import-declaration must be at global scope"
+msgstr ""
+
+#: cp/parser.cc:15241
+#, gcc-internal-format
+msgid "import specifying a module-partition must appear after a named module-declaration"
+msgstr ""
+
+#: cp/parser.cc:15253
+#, gcc-internal-format
+msgid "import cannot appear directly in a linkage-specification"
+msgstr ""
+
+#: cp/parser.cc:15263
+#, gcc-internal-format
+msgid "post-module-declaration imports must not be include-translated"
+msgstr ""
+
+#: cp/parser.cc:15266
+#, gcc-internal-format
+msgid "post-module-declaration imports must not be from header inclusion"
+msgstr ""
+
+#: cp/parser.cc:15287
+#, gcc-internal-format
+msgid "%qE may only occur after a module interface declaration"
+msgstr ""
+
+#: cp/parser.cc:15295
+#, gcc-internal-format
+msgid "%qE may only occur once in an export declaration"
+msgstr ""
+
+#: cp/parser.cc:15316
+#, gcc-internal-format
+msgid "%<export%> not part of following module-directive"
+msgstr ""
+
+#: cp/parser.cc:15403 cp/parser.cc:28020
+#, gcc-internal-format
+msgid "extra %<;%>"
+msgstr ""
+
+#: cp/parser.cc:15461
+#, gcc-internal-format
+msgid "attributes are not permitted in this position"
+msgstr ""
+
+#: cp/parser.cc:15465
+#, gcc-internal-format
+msgid "attributes may be inserted here"
+msgstr ""
+
+#: cp/parser.cc:15683
+#, gcc-internal-format
+msgid "%<__label__%> not at the beginning of a block"
+msgstr ""
+
+#: cp/parser.cc:15929
+#, gcc-internal-format
+msgid "non-variable %qD in declaration with more than one declarator with placeholder type"
+msgstr ""
+
+#: cp/parser.cc:15948
+#, gcc-internal-format
+msgid "inconsistent deduction for %qT: %qT and then %qT"
+msgstr ""
+
+#: cp/parser.cc:15969
+#, gcc-internal-format
+msgid "mixing declarations and function-definitions is forbidden"
+msgstr ""
+
+#: cp/parser.cc:15994
+#, gcc-internal-format
+msgid "types may not be defined in a for-range-declaration"
+msgstr ""
+
+#: cp/parser.cc:16051
+#, gcc-internal-format
+msgid "initializer in range-based %<for%> loop"
+msgstr ""
+
+#: cp/parser.cc:16054
+#, gcc-internal-format
+msgid "multiple declarations in range-based %<for%> loop"
+msgstr ""
+
+#: cp/parser.cc:16107
+#, gcc-internal-format
+msgid "structured bindings only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:16161
+#, gcc-internal-format
+msgid "empty structured binding declaration"
+msgstr ""
+
+#: cp/parser.cc:16179
+#, gcc-internal-format
+msgid "invalid initializer for structured binding declaration"
+msgstr ""
+
+#: cp/parser.cc:16371
+#, gcc-internal-format
+msgid "%<this%> must be the first specifier in a parameter declaration"
+msgstr ""
+
+#: cp/parser.cc:16394
+#, gcc-internal-format
+msgid "%<friend%> used outside of class"
+msgstr ""
+
+#: cp/parser.cc:16433
+#, gcc-internal-format
+msgid "the %<bool%> keyword is not allowed in a C++20 concept definition"
+msgstr ""
+
+#: cp/parser.cc:16436
+#, gcc-internal-format
+msgid "C++20 concept definition syntax is %<concept <name> = <expr>%>"
+msgstr ""
+
+#: cp/parser.cc:16487
+#, gcc-internal-format
+msgid "%<typedef%> specifier conflicts with %qs"
+msgstr ""
+
+#: cp/parser.cc:16513
+#, gcc-internal-format
+msgid "%<auto%> changes meaning in C++11; please remove it"
+msgstr ""
+
+#: cp/parser.cc:16549
+#, gcc-internal-format
+msgid "%qD invalid in condition"
+msgstr ""
+
+#: cp/parser.cc:16558
+#, gcc-internal-format
+msgid "%qD invalid in lambda"
+msgstr ""
+
+#: cp/parser.cc:16562
+#, gcc-internal-format
+msgid "%qD only valid in lambda with %<-std=c++23%> or %<-std=gnu++23%>"
+msgstr ""
+
+#: cp/parser.cc:16644
+#, gcc-internal-format
+msgid "type-specifier invalid in lambda"
+msgstr ""
+
+#: cp/parser.cc:16656
+#, gcc-internal-format
+msgid "standard attributes in middle of decl-specifiers"
+msgstr ""
+
+#: cp/parser.cc:16658
+#, gcc-internal-format
+msgid "standard attributes must precede the decl-specifiers to apply to the declaration, or follow them to apply to the type"
+msgstr ""
+
+#: cp/parser.cc:16673
+#, gcc-internal-format
+msgid "class definition may not be declared a friend"
+msgstr ""
+
+#: cp/parser.cc:16746 cp/parser.cc:28562
+#, gcc-internal-format
+msgid "templates may not be %<virtual%>"
+msgstr ""
+
+#: cp/parser.cc:16765
+#, gcc-internal-format
+msgid "types may not be defined in explicit-specifier"
+msgstr ""
+
+#: cp/parser.cc:16769
+#, gcc-internal-format
+msgid "%<explicit(bool)%> only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:16837
+#, gcc-internal-format
+msgid "invalid linkage-specification"
+msgstr ""
+
+#: cp/parser.cc:16944
+#, gcc-internal-format
+msgid "%<static_assert%> without a message only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:16974
+#, gcc-internal-format
+msgid "%<static_assert%> with non-string message only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
+msgstr ""
+
+#: cp/parser.cc:17172
+#, gcc-internal-format
+msgid "%<decltype(auto)%> type specifier only available with %<-std=c++14%> or %<-std=gnu++14%>"
+msgstr ""
+
+#: cp/parser.cc:17185
+#, gcc-internal-format
+msgid "types may not be defined in %<decltype%> expressions"
+msgstr ""
+
+#: cp/parser.cc:17358
+#, gcc-internal-format
+msgid "types may not be defined in a conversion-type-id"
+msgstr ""
+
+#: cp/parser.cc:17387
+#, gcc-internal-format
+msgid "invalid use of %<auto%> in conversion operator"
+msgstr ""
+
+#: cp/parser.cc:17391
+#, gcc-internal-format
+msgid "use of %<auto%> in member template conversion operator can never be deduced"
+msgstr ""
+
+#: cp/parser.cc:17475
+#, gcc-internal-format
+msgid "only constructors take member initializers"
+msgstr ""
+
+#: cp/parser.cc:17502
+#, gcc-internal-format
+msgid "cannot expand initializer for member %qD"
+msgstr ""
+
+#: cp/parser.cc:17514 cp/pt.cc:27696
+#, gcc-internal-format
+msgid "mem-initializer for %qD follows constructor delegation"
+msgstr ""
+
+#: cp/parser.cc:17526 cp/pt.cc:27708
+#, gcc-internal-format
+msgid "constructor delegation follows mem-initializer for %qD"
+msgstr ""
+
+#: cp/parser.cc:17578
+#, gcc-internal-format
+msgid "anachronistic old-style base class initializer"
+msgstr ""
+
+#: cp/parser.cc:17662
+#, gcc-internal-format
+msgid "keyword %<typename%> not allowed in this context (a qualified member initializer is implicitly a type)"
+msgstr ""
+
+#: cp/parser.cc:18062
+#, gcc-internal-format
+msgid "unexpected keyword; remove space between quotes and suffix identifier"
+msgstr ""
+
+#: cp/parser.cc:18068
+#, gcc-internal-format
+msgid "expected suffix identifier"
+msgstr ""
+
+#: cp/parser.cc:18077
+#, gcc-internal-format
+msgid "expected empty string after %<operator%> keyword"
+msgstr ""
+
+#: cp/parser.cc:18083
+#, gcc-internal-format
+msgid "invalid encoding prefix in literal operator"
+msgstr ""
+
+#: cp/parser.cc:18117
+#, gcc-internal-format
+msgid "expected operator"
+msgstr ""
+
+#: cp/parser.cc:18164
+#, gcc-internal-format
+msgid "keyword %<export%> not implemented, and will be ignored"
+msgstr ""
+
+#: cp/parser.cc:18166
+#, gcc-internal-format
+msgid "keyword %<export%> is deprecated, and is ignored"
+msgstr ""
+
+#: cp/parser.cc:18168
+#, gcc-internal-format
+msgid "keyword %<export%> is enabled with %<-fmodules-ts%>"
+msgstr ""
+
+#: cp/parser.cc:18347
+#, gcc-internal-format
+msgid "invalid constrained type parameter"
+msgstr ""
+
+#: cp/parser.cc:18355
+#, gcc-internal-format
+msgid "cv-qualified type parameter"
+msgstr ""
+
+#: cp/parser.cc:18502
+#, gcc-internal-format
+msgid "invalid use of %<auto%> in default template argument"
+msgstr ""
+
+#: cp/parser.cc:18738 cp/parser.cc:18824 cp/parser.cc:25855
+#, gcc-internal-format
+msgid "template parameter pack %qD cannot have a default argument"
+msgstr ""
+
+#: cp/parser.cc:18742 cp/parser.cc:18828
+#, gcc-internal-format
+msgid "template parameter packs cannot have default arguments"
+msgstr ""
+
+#: cp/parser.cc:18895
+#, gcc-internal-format
+msgid "expected template-id"
+msgstr ""
+
+#: cp/parser.cc:18957
+#, gcc-internal-format
+msgid "%<<::%> cannot begin a template-argument list"
+msgstr ""
+
+#: cp/parser.cc:18961
+#, gcc-internal-format
+msgid "%<<:%> is an alternate spelling for %<[%>. Insert whitespace between %<<%> and %<::%>"
+msgstr ""
+
+#: cp/parser.cc:18965
+#, gcc-internal-format
+msgid "(if you use %<-fpermissive%> or %<-std=c++11%>, or %<-std=gnu++11%> G++ will accept your code)"
+msgstr ""
+
+#: cp/parser.cc:18995
+#, gcc-internal-format
+msgid "invalid template-argument-list"
+msgstr ""
+
+#: cp/parser.cc:18996
+#, gcc-internal-format
+msgid "function name as the left hand operand of %<<%> is ill-formed in C++20; wrap the function name in %<()%>"
+msgstr ""
+
+#: cp/parser.cc:19003
+#, gcc-internal-format
+msgid "expected %<(%> after template-argument-list"
+msgstr ""
+
+#: cp/parser.cc:19117
+#, gcc-internal-format
+msgid "parse error in template argument list"
+msgstr ""
+
+#. The name does not name a template.
+#: cp/parser.cc:19202 cp/parser.cc:19393 cp/parser.cc:19591
+#, gcc-internal-format
+msgid "expected template-name"
+msgstr ""
+
+#. Explain what went wrong.
+#: cp/parser.cc:19248
+#, gcc-internal-format
+msgid "non-template %qD used as template"
+msgstr ""
+
+#: cp/parser.cc:19250
+#, gcc-internal-format
+msgid "use %<%T::template %D%> to indicate that it is a template"
+msgstr ""
+
+#: cp/parser.cc:19455
+#, gcc-internal-format
+msgid "expected parameter pack before %<...%>"
+msgstr ""
+
+#: cp/parser.cc:19556 cp/parser.cc:19574 cp/parser.cc:19744
+#, gcc-internal-format
+msgid "expected template-argument"
+msgstr ""
+
+#: cp/parser.cc:19714
+#, gcc-internal-format
+msgid "invalid non-type template argument"
+msgstr ""
+
+#: cp/parser.cc:19853
+#, gcc-internal-format
+msgid "explicit instantiation shall not use %<inline%> specifier"
+msgstr ""
+
+#: cp/parser.cc:19857
+#, gcc-internal-format
+msgid "explicit instantiation shall not use %<constexpr%> specifier"
+msgstr ""
+
+#: cp/parser.cc:19861
+#, gcc-internal-format
+msgid "explicit instantiation shall not use %<consteval%> specifier"
+msgstr ""
+
+#: cp/parser.cc:19921
+#, gcc-internal-format
+msgid "template specialization with C linkage"
+msgstr ""
+
+#: cp/parser.cc:20150
+#, gcc-internal-format
+msgid "expected type specifier"
+msgstr ""
+
+#: cp/parser.cc:20350
+#, gcc-internal-format
+msgid "use of %<auto%> in lambda parameter declaration only available with %<-std=c++14%> or %<-std=gnu++14%>"
+msgstr ""
+
+#: cp/parser.cc:20356
+#, gcc-internal-format
+msgid "use of %<auto%> in template argument only available with %<-fconcepts-ts%>"
+msgstr ""
+
+#: cp/parser.cc:20360
+#, gcc-internal-format
+msgid "use of %<auto%> in parameter declaration only available with %<-std=c++20%> or %<-fconcepts%>"
+msgstr ""
+
+#: cp/parser.cc:20364
+#, gcc-internal-format
+msgid "use of %<auto%> in parameter declaration only available with %<-std=c++14%> or %<-std=gnu++14%>"
+msgstr ""
+
+#: cp/parser.cc:20518
+#, gcc-internal-format
+msgid "expected template-id for type"
+msgstr ""
+
+#: cp/parser.cc:20649
+#, gcc-internal-format
+msgid "expected type-name"
+msgstr ""
+
+#: cp/parser.cc:20761
+#, gcc-internal-format
+msgid "%qE does not constrain a type"
+msgstr ""
+
+#: cp/parser.cc:20762
+#, gcc-internal-format
+msgid "concept defined here"
+msgstr ""
+
+#: cp/parser.cc:20794
+#, gcc-internal-format
+msgid "expected %<auto%> or %<decltype(auto)%> after %qE"
+msgstr ""
+
+#: cp/parser.cc:20801
+#, gcc-internal-format
+msgid "unexpected placeholder in constrained result type"
+msgstr ""
+
+#: cp/parser.cc:21044
+#, gcc-internal-format
+msgid "elaborated-type-specifier for a scoped enum must not use the %qD keyword"
+msgstr ""
+
+#: cp/parser.cc:21120
+#, gcc-internal-format
+msgid "%<template%> must follow a nested-name-specifier"
+msgstr ""
+
+#: cp/parser.cc:21282
+#, gcc-internal-format
+msgid "declaration %qD does not declare anything"
+msgstr ""
+
+#: cp/parser.cc:21370
+#, gcc-internal-format
+msgid "attributes ignored on uninstantiated type"
+msgstr ""
+
+#: cp/parser.cc:21376
+#, gcc-internal-format
+msgid "attributes ignored on template instantiation"
+msgstr ""
+
+#: cp/parser.cc:21387
+#, gcc-internal-format
+msgid "attributes ignored on elaborated-type-specifier that is not a forward declaration"
+msgstr ""
+
+#: cp/parser.cc:21528
+#, gcc-internal-format
+msgid "%qD is an enumeration template"
+msgstr ""
+
+#: cp/parser.cc:21539
+#, gcc-internal-format
+msgid "%qD does not name an enumeration in %qT"
+msgstr ""
+
+#: cp/parser.cc:21554
+#, gcc-internal-format
+msgid "unnamed scoped enum is not allowed"
+msgstr ""
+
+#: cp/parser.cc:21572
+#, gcc-internal-format
+msgid "types may not be defined in enum-base"
+msgstr ""
+
+#: cp/parser.cc:21618
+#, gcc-internal-format
+msgid "declaration of enumeration with fixed underlying type and no enumerator list is only permitted as a standalone declaration"
+msgstr ""
+
+#: cp/parser.cc:21622
+#, gcc-internal-format
+msgid "expected %<;%> or %<{%>"
+msgstr ""
+
+#: cp/parser.cc:21665
+#, gcc-internal-format
+msgid "cannot add an enumerator list to a template instantiation"
+msgstr ""
+
+#: cp/parser.cc:21679
+#, gcc-internal-format
+msgid "nested name specifier %qT for enum declaration does not name a class or namespace"
+msgstr ""
+
+#: cp/parser.cc:21691 cp/parser.cc:27471
+#, gcc-internal-format
+msgid "declaration of %qD in namespace %qD which does not enclose %qD"
+msgstr ""
+
+#: cp/parser.cc:21696 cp/parser.cc:27476
+#, gcc-internal-format
+msgid "declaration of %qD in %qD which does not enclose %qD"
+msgstr ""
+
+#: cp/parser.cc:21708 cp/parser.cc:27489
+#, gcc-internal-format
+msgid "extra qualification not allowed"
+msgstr ""
+
+#: cp/parser.cc:21747
+#, gcc-internal-format
+msgid "ISO C++ forbids empty unnamed enum"
+msgstr ""
+
+#: cp/parser.cc:21771
+#, gcc-internal-format
+msgid "opaque-enum-specifier without name"
+msgstr ""
+
+#: cp/parser.cc:21774
+#, gcc-internal-format
+msgid "opaque-enum-specifier must use a simple identifier"
+msgstr ""
+
+#: cp/parser.cc:21895
+#, gcc-internal-format
+msgid "unexpanded parameter pack in enumerator in lambda"
+msgstr ""
+
+#: cp/parser.cc:21970
+#, gcc-internal-format
+msgid "%qD is not a namespace-name; did you mean %qs?"
+msgstr ""
+
+#: cp/parser.cc:21974
+#, gcc-internal-format
+msgid "%qD is not a namespace-name"
+msgstr ""
+
+#: cp/parser.cc:21978
+#, gcc-internal-format
+msgid "expected namespace-name"
+msgstr ""
+
+#: cp/parser.cc:22039
+#, gcc-internal-format
+msgid "nested inline namespace definitions only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:22051
+#, gcc-internal-format
+msgid "standard attributes on namespaces must precede the namespace name"
+msgstr ""
+
+#: cp/parser.cc:22070
+#, gcc-internal-format
+msgid "nested namespace definitions only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:22080
+#, gcc-internal-format
+msgid "nested namespace name required"
+msgstr ""
+
+#: cp/parser.cc:22085
+#, gcc-internal-format
+msgid "namespace name required"
+msgstr ""
+
+#: cp/parser.cc:22089
+#, gcc-internal-format
+msgid "a nested namespace definition cannot have attributes"
+msgstr ""
+
+#: cp/parser.cc:22092
+#, gcc-internal-format
+msgid "a nested namespace definition cannot be inline"
+msgstr ""
+
+#: cp/parser.cc:22099
+#, gcc-internal-format
+msgid "namespace %qD entered"
+msgstr ""
+
+#: cp/parser.cc:22154
+#, gcc-internal-format
+msgid "%<namespace%> definition is not allowed here"
+msgstr ""
+
+#: cp/parser.cc:22336
+#, gcc-internal-format
+msgid "pack expansion in using-declaration only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:22380
+#, gcc-internal-format
+msgid "a template-id may not appear in a using-declaration"
+msgstr ""
+
+#: cp/parser.cc:22398
+#, gcc-internal-format
+msgid "comma-separated list in using-declaration only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:22408
+#, gcc-internal-format
+msgid "access declarations are deprecated in favor of using-declarations; suggestion: add the %<using%> keyword"
+msgstr ""
+
+#: cp/parser.cc:22454
+#, gcc-internal-format
+msgid "%<using enum%> only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:22457
+#, gcc-internal-format
+msgid "%<using enum%> of dependent type %qT"
+msgstr ""
+
+#: cp/parser.cc:22459
+#, gcc-internal-format
+msgid "%<using enum%> of non-enumeration type %q#T"
+msgstr ""
+
+#: cp/parser.cc:22461
+#, gcc-internal-format
+msgid "%<using enum%> of incomplete type %qT"
+msgstr ""
+
+#: cp/parser.cc:22463
+#, gcc-internal-format
+msgid "%<using enum%> of %qT before its enum-specifier"
+msgstr ""
+
+#: cp/parser.cc:22473
+#, gcc-internal-format
+msgid "opaque-enum-declaration here"
+msgstr ""
+
+#: cp/parser.cc:22543
+#, gcc-internal-format
+msgid "types may not be defined in alias template declarations"
+msgstr ""
+
+#: cp/parser.cc:22722
+#, gcc-internal-format
+msgid "%<asm%> in %<constexpr%> function only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:22742 cp/parser.cc:22759 cp/parser.cc:22773
+#, gcc-internal-format
+msgid "duplicate %<asm%> qualifier %qT"
+msgstr ""
+
+#: cp/parser.cc:22749
+#, gcc-internal-format
+msgid "%<asm%> qualifier %qT ignored outside of function body"
+msgstr ""
+
+#: cp/parser.cc:22786
+#, gcc-internal-format
+msgid "%qT is not an %<asm%> qualifier"
+msgstr ""
+
+#: cp/parser.cc:22802
+#, gcc-internal-format
+msgid "%<asm%> qualifier outside of function body"
+msgstr ""
+
+#: cp/parser.cc:22948
+#, gcc-internal-format
+msgid "attributes ignored on %<asm%> declaration"
+msgstr ""
+
+#: cp/parser.cc:23035
+#, gcc-internal-format
+msgid "empty parentheses were disambiguated as a function declaration"
+msgstr ""
+
+#: cp/parser.cc:23046
+#, gcc-internal-format
+msgid "remove parentheses to default-initialize a variable"
+msgstr ""
+
+#: cp/parser.cc:23051
+#, gcc-internal-format
+msgid "or replace parentheses with braces to aggregate-initialize a variable"
+msgstr ""
+
+#: cp/parser.cc:23054
+#, gcc-internal-format
+msgid "or replace parentheses with braces to value-initialize a variable"
+msgstr ""
+
+#: cp/parser.cc:23071 cp/parser.cc:23096
+#, gcc-internal-format
+msgid "parentheses were disambiguated as a function declaration"
+msgstr ""
+
+#: cp/parser.cc:23083 cp/parser.cc:23104
+#, gcc-internal-format
+msgid "replace parentheses with braces to declare a variable"
+msgstr ""
+
+#: cp/parser.cc:23090
+#, gcc-internal-format
+msgid "add parentheses to declare a variable"
+msgstr ""
+
+#: cp/parser.cc:23337
+#, gcc-internal-format
+msgid "a function-definition is not allowed here"
+msgstr ""
+
+#: cp/parser.cc:23348
+#, gcc-internal-format
+msgid "an %<asm%> specification is not allowed on a function-definition"
+msgstr ""
+
+#: cp/parser.cc:23352
+#, gcc-internal-format
+msgid "attributes are not allowed on a function-definition"
+msgstr ""
+
+#: cp/parser.cc:23403
+#, gcc-internal-format
+msgid "expected constructor, destructor, or type conversion"
+msgstr ""
+
+#: cp/parser.cc:23547
+#, gcc-internal-format
+msgid "initializer provided for function"
+msgstr ""
+
+#: cp/parser.cc:23589
+#, gcc-internal-format
+msgid "attributes after parenthesized initializer ignored"
+msgstr ""
+
+#: cp/parser.cc:23603
+#, gcc-internal-format
+msgid "non-function %qD declared as implicit template"
+msgstr ""
+
+#: cp/parser.cc:24115
+#, gcc-internal-format
+msgid "array bound is not an integer constant"
+msgstr ""
+
+#: cp/parser.cc:24241
+#, gcc-internal-format
+msgid "cannot define member of dependent typedef %qT"
+msgstr ""
+
+#: cp/parser.cc:24245
+#, gcc-internal-format
+msgid "%<%T::%E%> is not a type"
+msgstr ""
+
+#. We do not attempt to print the declarator
+#. here because we do not have enough
+#. information about its original syntactic
+#. form.
+#: cp/parser.cc:24274
+#, gcc-internal-format
+msgid "invalid declarator"
+msgstr ""
+
+#: cp/parser.cc:24282
+#, gcc-internal-format
+msgid "invalid use of constructor as a template"
+msgstr ""
+
+#: cp/parser.cc:24284
+#, gcc-internal-format
+msgid "use %<%T::%D%> instead of %<%T::%D%> to name the constructor in a qualified name"
+msgstr ""
+
+#. But declarations with qualified-ids can't appear in a
+#. function.
+#: cp/parser.cc:24399
+#, gcc-internal-format
+msgid "qualified-id in declaration"
+msgstr ""
+
+#: cp/parser.cc:24424
+#, gcc-internal-format
+msgid "expected declarator"
+msgstr ""
+
+#: cp/parser.cc:24545
+#, gcc-internal-format
+msgid "%qD is a namespace"
+msgstr ""
+
+#: cp/parser.cc:24547
+#, gcc-internal-format
+msgid "cannot form pointer to member of non-class %q#T"
+msgstr ""
+
+#: cp/parser.cc:24568
+#, gcc-internal-format
+msgid "expected ptr-operator"
+msgstr ""
+
+#: cp/parser.cc:24629
+#, gcc-internal-format
+msgid "duplicate cv-qualifier"
+msgstr ""
+
+#: cp/parser.cc:24683
+#, gcc-internal-format
+msgid "multiple ref-qualifiers"
+msgstr ""
+
+#: cp/parser.cc:24720
+#, gcc-internal-format
+msgid "%qE requires %<-fgnu-tm%>"
+msgstr ""
+
+#: cp/parser.cc:24778
+#, gcc-internal-format
+msgid "duplicate virt-specifier"
+msgstr ""
+
+#: cp/parser.cc:25043
+#, gcc-internal-format
+msgid "missing template arguments after %qE"
+msgstr ""
+
+#: cp/parser.cc:25049
+#, gcc-internal-format
+msgid "%qT not permitted in template argument"
+msgstr ""
+
+#: cp/parser.cc:25052 cp/typeck2.cc:336 cp/typeck2.cc:382 cp/typeck2.cc:2479
+#: rust/backend/rust-tree.cc:3909
+#, gcc-internal-format
+msgid "invalid use of %qT"
+msgstr ""
+
+#: cp/parser.cc:25078
+#, gcc-internal-format
+msgid "types may not be defined in template arguments"
+msgstr ""
+
+#: cp/parser.cc:25087
+#, gcc-internal-format
+msgid "invalid use of %<auto%> in template argument"
+msgstr ""
+
+#: cp/parser.cc:25193
+#, gcc-internal-format
+msgid "expected type-specifier"
+msgstr ""
+
+#: cp/parser.cc:25533
+#, gcc-internal-format
+msgid "expected %<,%> or %<...%>"
+msgstr ""
+
+#: cp/parser.cc:25611
+#, gcc-internal-format
+msgid "types may not be defined in parameter types"
+msgstr ""
+
+#: cp/parser.cc:25732
+#, gcc-internal-format
+msgid "%<this%> specifier in template parameter declaration"
+msgstr ""
+
+#: cp/parser.cc:25792
+#, gcc-internal-format
+msgid "an explicit object parameter cannot be a function parameter pack"
+msgstr ""
+
+#: cp/parser.cc:25839
+#, gcc-internal-format
+msgid "default arguments are only permitted for function parameters"
+msgstr ""
+
+#: cp/parser.cc:25857
+#, gcc-internal-format
+msgid "parameter pack %qD cannot have a default argument"
+msgstr ""
+
+#: cp/parser.cc:25863
+#, gcc-internal-format
+msgid "template parameter pack cannot have a default argument"
+msgstr ""
+
+#: cp/parser.cc:25865
+#, gcc-internal-format
+msgid "parameter pack cannot have a default argument"
+msgstr ""
+
+#: cp/parser.cc:25888
+#, gcc-internal-format
+msgid "an explicit object parameter may not have a default argument"
+msgstr ""
+
+#: cp/parser.cc:26012
+#, gcc-internal-format
+msgid "function-try-block body of %<constexpr%> constructor only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:26016
+#, gcc-internal-format
+msgid "function-try-block body of %<constexpr%> function only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:26357
+#, gcc-internal-format
+msgid "C++ designated initializers only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:26379
+#, gcc-internal-format
+msgid "ISO C++ does not allow GNU designated initializers"
+msgstr ""
+
+#: cp/parser.cc:26417
+#, gcc-internal-format
+msgid "ISO C++ does not allow C99 designated initializers"
+msgstr ""
+
+#: cp/parser.cc:26431
+#, gcc-internal-format
+msgid "either all initializer clauses should be designated or none of them should be"
+msgstr ""
+
+#: cp/parser.cc:26464
+#, gcc-internal-format
+msgid "%<...%> not allowed in designated initializer list"
+msgstr ""
+
+#: cp/parser.cc:26515
+#, gcc-internal-format
+msgid "%<.%s%> designator used multiple times in the same initializer list"
+msgstr ""
+
+#: cp/parser.cc:26571 cp/parser.cc:26708
+#, gcc-internal-format
+msgid "expected class-name"
+msgstr ""
+
+#: cp/parser.cc:26955
+#, gcc-internal-format
+msgid "expected %<;%> after class definition"
+msgstr ""
+
+#: cp/parser.cc:26958
+#, gcc-internal-format
+msgid "expected %<;%> after struct definition"
+msgstr ""
+
+#: cp/parser.cc:26961
+#, gcc-internal-format
+msgid "expected %<;%> after union definition"
+msgstr ""
+
+#: cp/parser.cc:27413
+#, gcc-internal-format
+msgid "expected %<{%> or %<:%>"
+msgstr ""
+
+#: cp/parser.cc:27424
+#, gcc-internal-format
+msgid "cannot specify %<override%> for a class"
+msgstr ""
+
+#: cp/parser.cc:27432
+#, gcc-internal-format
+msgid "global qualification of class name is invalid"
+msgstr ""
+
+#: cp/parser.cc:27439
+#, gcc-internal-format
+msgid "qualified name does not name a class"
+msgstr ""
+
+#: cp/parser.cc:27451
+#, gcc-internal-format
+msgid "keyword %<template%> not allowed in class-head-name"
+msgstr ""
+
+#: cp/parser.cc:27457
+#, gcc-internal-format
+msgid "invalid class name in declaration of %qD"
+msgstr ""
+
+#: cp/parser.cc:27511
+#, gcc-internal-format
+msgid "an explicit specialization must be preceded by %<template <>%>"
+msgstr ""
+
+#: cp/parser.cc:27543
+#, gcc-internal-format
+msgid "function template %qD redeclared as a class template"
+msgstr ""
+
+#: cp/parser.cc:27576
+#, gcc-internal-format
+msgid "could not resolve typename type"
+msgstr ""
+
+#: cp/parser.cc:27640
+#, gcc-internal-format
+msgid "previous definition of %q#T"
+msgstr ""
+
+#. In a lambda this should work, but doesn't currently.
+#. We're in a lambda, but it isn't the innermost class.
+#. This should work, but currently doesn't.
+#: cp/parser.cc:27654 cp/pt.cc:4328
+#, gcc-internal-format
+msgid "unexpanded parameter pack in local class in lambda"
+msgstr ""
+
+#: cp/parser.cc:27760 cp/parser.cc:34520
+#, gcc-internal-format
+msgid "expected class-key"
+msgstr ""
+
+#: cp/parser.cc:27785
+#, gcc-internal-format
+msgid "ISO C++ forbids typename key in template template parameter; use %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:27789
+#, gcc-internal-format
+msgid "expected %<class%> or %<typename%>"
+msgstr ""
+
+#: cp/parser.cc:28039
+#, gcc-internal-format
+msgid "in C++03 a class-key must be used when declaring a friend"
+msgstr ""
+
+#: cp/parser.cc:28070
+#, gcc-internal-format
+msgid "friend declaration does not name a class or function"
+msgstr ""
+
+#: cp/parser.cc:28088
+#, gcc-internal-format
+msgid "a storage class on an anonymous aggregate in class scope is not allowed"
+msgstr ""
+
+#: cp/parser.cc:28190
+#, gcc-internal-format
+msgid "default member initializers for bit-fields only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:28197
+#, gcc-internal-format
+msgid "default member initializer for unnamed bit-field"
+msgstr ""
+
+#: cp/parser.cc:28210
+#, gcc-internal-format
+msgid "ISO C++ allows bit-field attributes only before the %<:%> token"
+msgstr ""
+
+#: cp/parser.cc:28369
+#, gcc-internal-format
+msgid "bit-field %qD has non-integral type %qT"
+msgstr ""
+
+#: cp/parser.cc:28397
+#, gcc-internal-format
+msgid "pure-specifier on function-definition"
+msgstr ""
+
+#: cp/parser.cc:28418
+#, gcc-internal-format
+msgid "extra %<;%> after in-class function definition"
+msgstr ""
+
+#: cp/parser.cc:28467
+#, gcc-internal-format
+msgid "stray %<,%> at end of member declaration"
+msgstr ""
+
+#: cp/parser.cc:28481
+#, gcc-internal-format
+msgid "expected %<;%> at end of member declaration"
+msgstr ""
+
+#: cp/parser.cc:28556
+#, gcc-internal-format
+msgid "invalid pure specifier (only %<= 0%> is allowed)"
+msgstr ""
+
+#: cp/parser.cc:28591
+#, gcc-internal-format
+msgid "a brace-enclosed initializer is not allowed here"
+msgstr ""
+
+#: cp/parser.cc:28721
+#, gcc-internal-format
+msgid "%<virtual%> specified more than once in base-specifier"
+msgstr ""
+
+#: cp/parser.cc:28741
+#, gcc-internal-format
+msgid "more than one access specifier in base-specifier"
+msgstr ""
+
+#: cp/parser.cc:28765
+#, gcc-internal-format
+msgid "keyword %<typename%> not allowed outside of templates"
+msgstr ""
+
+#: cp/parser.cc:28768
+#, gcc-internal-format
+msgid "keyword %<typename%> not allowed in this context (the base class is implicitly a type)"
+msgstr ""
+
+#: cp/parser.cc:28967 cp/parser.cc:29061
+#, gcc-internal-format
+msgid "types may not be defined in an exception-specification"
+msgstr ""
+
+#: cp/parser.cc:29069
+#, gcc-internal-format
+msgid "ISO C++17 does not allow dynamic exception specifications"
+msgstr ""
+
+#: cp/parser.cc:29075
+#, gcc-internal-format
+msgid "dynamic exception specifications are deprecated in C++11"
+msgstr ""
+
+#: cp/parser.cc:29119
+#, gcc-internal-format
+msgid "invalid use of %<auto%> in exception-specification"
+msgstr ""
+
+#: cp/parser.cc:29160
+#, gcc-internal-format
+msgid "%<try%> in %<constexpr%> function only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/parser.cc:29272
+#, gcc-internal-format
+msgid "types may not be defined in exception-declarations"
+msgstr ""
+
+#: cp/parser.cc:29838
+#, gcc-internal-format
+msgid "expected attribute argument as balanced token sequence"
+msgstr ""
+
+#: cp/parser.cc:29984
+#, gcc-internal-format
+msgid "attribute using prefix used together with scoped attribute token"
+msgstr ""
+
+#: cp/parser.cc:29998
+#, gcc-internal-format
+msgid "expected an identifier for the attribute name"
+msgstr ""
+
+#. e.g. [[attr()]].
+#: cp/parser.cc:30141
+#, gcc-internal-format
+msgid "parentheses must be omitted if %qE attribute argument list is empty"
+msgstr ""
+
+#: cp/parser.cc:30176
+#, gcc-internal-format
+msgid "attribute %qs specified multiple times"
+msgstr ""
+
+#: cp/parser.cc:30218
+#, gcc-internal-format
+msgid "expected attribute before %<...%>"
+msgstr ""
+
+#: cp/parser.cc:30221
+#, gcc-internal-format
+msgid "attribute with no arguments contains no parameter packs"
+msgstr ""
+
+#: cp/parser.cc:30267
+#, gcc-internal-format
+msgid "expected contract-role"
+msgstr ""
+
+#. We got some other token other than a ':'.
+#: cp/parser.cc:30348
+#, gcc-internal-format
+msgid "expected contract semantic or level"
+msgstr ""
+
+#: cp/parser.cc:30358
+#, gcc-internal-format
+msgid "expected contract level: %<default%>, %<audit%>, or %<axiom%>"
+msgstr ""
+
+#: cp/parser.cc:30368
+#, gcc-internal-format
+msgid "invalid use of contract role for explicit semantic"
+msgstr ""
+
+#: cp/parser.cc:30505
+#, gcc-internal-format
+msgid "contracts are only available with %<-fcontracts%>"
+msgstr ""
+
+#: cp/parser.cc:30664
+#, gcc-internal-format
+msgid "attribute using prefix only available with %<-std=c++17%> or %<-std=gnu++17%>"
+msgstr ""
+
+#: cp/parser.cc:31013 cp/parser.cc:31022
+#, gcc-internal-format
+msgid "expression must be enclosed in parentheses"
+msgstr ""
+
+#: cp/parser.cc:31370
+#, gcc-internal-format
+msgid "missing additional %<requires%> to start a requires-expression"
+msgstr ""
+
+#: cp/parser.cc:31613
+#, gcc-internal-format
+msgid "testing if a concept-id is a valid expression; add %<requires%> to check satisfaction"
+msgstr ""
+
+#: cp/parser.cc:31751
+#, gcc-internal-format
+msgid "result type is not a plain type-constraint"
+msgstr ""
+
+#: cp/parser.cc:31759
+#, gcc-internal-format
+msgid "return-type-requirement is not a type-constraint"
+msgstr ""
+
+#: cp/parser.cc:32277
+#, gcc-internal-format
+msgid "specializing member %<%T::%E%> requires %<template<>%> syntax"
+msgstr ""
+
+#: cp/parser.cc:32282
+#, gcc-internal-format
+msgid "invalid declaration of %<%T::%E%>"
+msgstr ""
+
+#: cp/parser.cc:32286
+#, gcc-internal-format
+msgid "too few template-parameter-lists"
+msgstr ""
+
+#. Otherwise, there are too many template parameter lists.  We have
+#. something like:
+#.
+#. template <class T> template <class U> void S::f();
+#: cp/parser.cc:32293
+#, gcc-internal-format
+msgid "too many template-parameter-lists"
+msgstr ""
+
+#: cp/parser.cc:32585
+#, gcc-internal-format
+msgid "template-id not allowed for constructor in C++20"
+msgstr ""
+
+#: cp/parser.cc:32696
+#, gcc-internal-format
+msgid "named return values are no longer supported"
+msgstr ""
+
+#: cp/parser.cc:32869
+#, gcc-internal-format
+msgid "ISO C++ did not adopt string literal operator templates taking an argument pack of characters"
+msgstr ""
+
+#: cp/parser.cc:32878
+#, gcc-internal-format
+msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%> or single non-type parameter of class type"
+msgstr ""
+
+#: cp/parser.cc:32884
+#, gcc-internal-format
+msgid "literal operator template %qD has invalid parameter list; expected non-type template parameter pack %<<char...>%>"
+msgstr ""
+
+#: cp/parser.cc:32991
+#, gcc-internal-format
+msgid "template-introductions are not part of C++20 concepts; use %qs to enable"
+msgstr ""
+
+#: cp/parser.cc:33001
+#, gcc-internal-format
+msgid "no matching concept for template-introduction"
+msgstr ""
+
+#: cp/parser.cc:33024
+#, gcc-internal-format
+msgid "invalid declaration of member template in local class"
+msgstr ""
+
+#: cp/parser.cc:33033
+#, gcc-internal-format
+msgid "template with C linkage"
+msgstr ""
+
+#: cp/parser.cc:33053
+#, gcc-internal-format
+msgid "invalid explicit specialization"
+msgstr ""
+
+#: cp/parser.cc:33165
+#, gcc-internal-format
+msgid "template declaration of %<typedef%>"
+msgstr ""
+
+#: cp/parser.cc:33216
+#, gcc-internal-format
+msgid "a class template declaration must not declare anything else"
+msgstr ""
+
+#: cp/parser.cc:33268
+#, gcc-internal-format
+msgid "explicit template specialization cannot have a storage class"
+msgstr ""
+
+#: cp/parser.cc:33585
+#, gcc-internal-format
+msgid "%<>>%> should be %<> >%> within a nested template argument list"
+msgstr ""
+
+#: cp/parser.cc:33598
+#, gcc-internal-format
+msgid "spurious %<>>%>, use %<>%> to terminate a template argument list"
+msgstr ""
+
+#: cp/parser.cc:33629
+#, gcc-internal-format
+msgid "%qs should be %qs to terminate a template argument list"
+msgstr ""
+
+#: cp/parser.cc:33946
+#, gcc-internal-format
+msgid "%<sizeof...%> argument must be surrounded by parentheses"
+msgstr ""
+
+#: cp/parser.cc:34123
+#, gcc-internal-format
+msgid "invalid use of %qD in linkage specification"
+msgstr ""
+
+#: cp/parser.cc:34134
+#, gcc-internal-format
+msgid "duplicate %qD specifier"
+msgstr ""
+
+#: cp/parser.cc:34137
+#, gcc-internal-format
+msgid "%qD specifier conflicts with %qs"
+msgstr ""
+
+#: cp/parser.cc:34149
+#, gcc-internal-format
+msgid "%<__thread%> before %qD"
+msgstr ""
+
+#: cp/parser.cc:34165
+#, gcc-internal-format
+msgid "%qD specifier conflicts with %<typedef%>"
+msgstr ""
+
+#: cp/parser.cc:34274
+#, gcc-internal-format
+msgid "ISO C++ 1998 does not support %<long long%>"
+msgstr ""
+
+#: cp/parser.cc:34285
+#, gcc-internal-format
+msgid "both %<__thread%> and %<thread_local%> specified"
+msgstr ""
+
+#: cp/parser.cc:34290
+#, gcc-internal-format
+msgid "duplicate %qD"
+msgstr ""
+
+#: cp/parser.cc:34319
+#, gcc-internal-format
+msgid "duplicate %qs"
+msgstr ""
+
+#: cp/parser.cc:34371
+#, gcc-internal-format
+msgid "expected %<new%>"
+msgstr ""
+
+#: cp/parser.cc:34374
+#, gcc-internal-format
+msgid "expected %<delete%>"
+msgstr ""
+
+#: cp/parser.cc:34377
+#, gcc-internal-format
+msgid "expected %<return%>"
+msgstr ""
+
+#: cp/parser.cc:34383
+#, gcc-internal-format
+msgid "expected %<extern%>"
+msgstr ""
+
+#: cp/parser.cc:34386
+#, gcc-internal-format
+msgid "expected %<static_assert%>"
+msgstr ""
+
+#: cp/parser.cc:34389
+#, gcc-internal-format
+msgid "expected %<decltype%>"
+msgstr ""
+
+#: cp/parser.cc:34392
+#, gcc-internal-format
+msgid "expected %<operator%>"
+msgstr ""
+
+#: cp/parser.cc:34395
+#, gcc-internal-format
+msgid "expected %<class%>"
+msgstr ""
+
+#: cp/parser.cc:34398
+#, gcc-internal-format
+msgid "expected %<template%>"
+msgstr ""
+
+#: cp/parser.cc:34401
+#, gcc-internal-format
+msgid "expected %<namespace%>"
+msgstr ""
+
+#: cp/parser.cc:34404
+#, gcc-internal-format
+msgid "expected %<using%>"
+msgstr ""
+
+#: cp/parser.cc:34407
+#, gcc-internal-format
+msgid "expected %<asm%>"
+msgstr ""
+
+#: cp/parser.cc:34410
+#, gcc-internal-format
+msgid "expected %<try%>"
+msgstr ""
+
+#: cp/parser.cc:34413
+#, gcc-internal-format
+msgid "expected %<catch%>"
+msgstr ""
+
+#: cp/parser.cc:34416
+#, gcc-internal-format
+msgid "expected %<throw%>"
+msgstr ""
+
+#: cp/parser.cc:34419
+#, gcc-internal-format
+msgid "expected %<auto%>"
+msgstr ""
+
+#: cp/parser.cc:34422
+#, gcc-internal-format
+msgid "expected %<__label__%>"
+msgstr ""
+
+#: cp/parser.cc:34425
+#, gcc-internal-format
+msgid "expected %<@try%>"
+msgstr ""
+
+#: cp/parser.cc:34428
+#, gcc-internal-format
+msgid "expected %<@synchronized%>"
+msgstr ""
+
+#: cp/parser.cc:34431
+#, gcc-internal-format
+msgid "expected %<@throw%>"
+msgstr ""
+
+#: cp/parser.cc:34434
+#, gcc-internal-format
+msgid "expected %<__transaction_atomic%>"
+msgstr ""
+
+#: cp/parser.cc:34437
+#, gcc-internal-format
+msgid "expected %<__transaction_relaxed%>"
+msgstr ""
+
+#: cp/parser.cc:34440
+#, gcc-internal-format
+msgid "expected %<co_yield%>"
+msgstr ""
+
+#: cp/parser.cc:34472
+#, gcc-internal-format
+msgid "expected %<::%>"
+msgstr ""
+
+#: cp/parser.cc:34484
+#, gcc-internal-format
+msgid "expected %<...%>"
+msgstr ""
+
+#: cp/parser.cc:34487
+#, gcc-internal-format
+msgid "expected %<*%>"
+msgstr ""
+
+#: cp/parser.cc:34490
+#, gcc-internal-format
+msgid "expected %<~%>"
+msgstr ""
+
+#: cp/parser.cc:34496
+#, gcc-internal-format
+msgid "expected %<:%> or %<::%>"
+msgstr ""
+
+#: cp/parser.cc:34523
+#, gcc-internal-format
+msgid "expected %<class%>, %<typename%>, or %<template%>"
+msgstr ""
+
+#: cp/parser.cc:34858
+#, gcc-internal-format
+msgid "redundant enum-key %<enum%s%> in reference to %q#T"
+msgstr ""
+
+#: cp/parser.cc:35009
+#, gcc-internal-format
+msgid "%qs tag used in naming %q#T"
+msgstr ""
+
+#: cp/parser.cc:35014
+#, gcc-internal-format
+msgid "%q#T was previously declared here"
+msgstr ""
+
+#: cp/parser.cc:35135
+#, gcc-internal-format
+msgid "redundant class-key %qs in reference to %q#T"
+msgstr ""
+
+#: cp/parser.cc:35293 cp/parser.cc:35327
+#, gcc-internal-format
+msgid "%qT declared with a mismatched class-key %qs"
+msgstr ""
+
+#: cp/parser.cc:35300 cp/parser.cc:35333
+#, gcc-internal-format
+msgid "remove the class-key or replace it with %qs"
+msgstr ""
+
+#: cp/parser.cc:35301 cp/parser.cc:35334
+#, gcc-internal-format
+msgid "replace the class-key with %qs"
+msgstr ""
+
+#: cp/parser.cc:35308
+#, gcc-internal-format
+msgid "%qT defined as %qs here"
+msgstr ""
+
+#: cp/parser.cc:35309
+#, gcc-internal-format
+msgid "%qT first declared as %qs here"
+msgstr ""
+
+#: cp/parser.cc:35392
+#, gcc-internal-format
+msgid "%qD redeclared with different access"
+msgstr ""
+
+#: cp/parser.cc:35413
+#, gcc-internal-format
+msgid "in C++98 %<template%> (as a disambiguator) is only allowed within templates"
+msgstr ""
+
+#: cp/parser.cc:35663
+#, gcc-internal-format
+msgid "file ends in default argument"
+msgstr ""
+
+#: cp/parser.cc:35904 cp/parser.cc:37212 cp/parser.cc:37401
+#, gcc-internal-format
+msgid "misplaced %<@%D%> Objective-C++ construct"
+msgstr ""
+
+#: cp/parser.cc:35975
+#, gcc-internal-format
+msgid "objective-c++ message receiver expected"
+msgstr ""
+
+#: cp/parser.cc:36045
+#, gcc-internal-format
+msgid "objective-c++ message argument(s) are expected"
+msgstr ""
+
+#: cp/parser.cc:36076
+#, gcc-internal-format
+msgid "%<@encode%> must specify a type as an argument"
+msgstr ""
+
+#: cp/parser.cc:36480
+#, gcc-internal-format
+msgid "invalid Objective-C++ selector name"
+msgstr ""
+
+#: cp/parser.cc:36555 cp/parser.cc:36573
+#, gcc-internal-format
+msgid "objective-c++ method declaration is expected"
+msgstr ""
+
+#: cp/parser.cc:36567 cp/parser.cc:36633
+#, gcc-internal-format
+msgid "method attributes must be specified at the end"
+msgstr ""
+
+#: cp/parser.cc:36676
+#, gcc-internal-format
+msgid "stray %qs between Objective-C++ methods"
+msgstr ""
+
+#: cp/parser.cc:36873 cp/parser.cc:36880 cp/parser.cc:36887
+#, gcc-internal-format
+msgid "invalid type for instance variable"
+msgstr ""
+
+#: cp/parser.cc:37004
+#, gcc-internal-format
+msgid "identifier expected after %<@protocol%>"
+msgstr ""
+
+#: cp/parser.cc:37177
+#, gcc-internal-format
+msgid "attributes may not be specified before the %<@%D%> Objective-C++ keyword"
+msgstr ""
+
+#: cp/parser.cc:37184
+#, gcc-internal-format
+msgid "prefix attributes are ignored before %<@%D%>"
+msgstr ""
+
+#: cp/parser.cc:37464 cp/parser.cc:37471 cp/parser.cc:37478
+#, gcc-internal-format
+msgid "invalid type for property"
+msgstr ""
+
+#: cp/parser.cc:37640
+#, gcc-internal-format
+msgid "unknown property attribute %qE"
+msgstr ""
+
+#: cp/parser.cc:38912
+#, gcc-internal-format
+msgid "expected integer expression list"
+msgstr ""
+
+#: cp/parser.cc:38929
+#, gcc-internal-format
+msgid "%<wait%> expression must be integral"
+msgstr ""
+
+#: cp/parser.cc:39685
+#, gcc-internal-format
+msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
+msgstr ""
+
+#: cp/parser.cc:40076
+#, gcc-internal-format
+msgid "invalid reduction-identifier"
+msgstr ""
+
+#: cp/parser.cc:41045
+#, gcc-internal-format
+msgid "types may not be defined in iterator type"
+msgstr ""
+
+#. FIXME: When implementing properly, delete the align/allocate expr error
+#. check above and add one in semantics.cc (to properly handle templates).
+#. Base this on the allocator/align modifiers check for the 'allocate' clause
+#. in semantics.cc's finish_omp_clauses.
+#: cp/parser.cc:42673
+#, gcc-internal-format
+msgid "%<#pragma omp allocate%> not yet supported"
+msgstr ""
+
+#: cp/parser.cc:44124
+#, gcc-internal-format
+msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop"
+msgstr ""
+
+#: cp/parser.cc:44862
+#, gcc-internal-format
+msgid "%<ordered%> clause with parameter on range-based %<for%> loop"
+msgstr ""
+
+#: cp/parser.cc:44944 cp/pt.cc:18191
+#, gcc-internal-format
+msgid "iteration variable %qD should not be reduction"
+msgstr ""
+
+#: cp/parser.cc:47841
+#, gcc-internal-format
+msgid "%<#pragma omp declare %s%> followed by %<#pragma omp declare %s%>"
+msgstr ""
+
+#: cp/parser.cc:48611
+#, gcc-internal-format
+msgid "OpenMP directive other than %<declare simd%> or %<declare variant%> appertains to a declaration"
+msgstr ""
+
+#: cp/parser.cc:49218
+#, gcc-internal-format
+msgid "invalid initializer clause"
+msgstr ""
+
+#: cp/parser.cc:49249
+#, gcc-internal-format
+msgid "expected id-expression (arguments)"
+msgstr ""
+
+#: cp/parser.cc:49261
+#, gcc-internal-format
+msgid "one of the initializer call arguments should be %<omp_priv%> or %<&omp_priv%>"
+msgstr ""
+
+#: cp/parser.cc:49364
+#, gcc-internal-format
+msgid "types may not be defined in declare reduction type list"
+msgstr ""
+
+#: cp/parser.cc:49384 cp/semantics.cc:6444
+#, gcc-internal-format
+msgid "predeclared arithmetic type %qT in %<#pragma omp declare reduction%>"
+msgstr ""
+
+#: cp/parser.cc:49388 cp/semantics.cc:6452
+#, gcc-internal-format
+msgid "function or array type %qT in %<#pragma omp declare reduction%>"
+msgstr ""
+
+#: cp/parser.cc:49391 cp/pt.cc:14676 cp/semantics.cc:6458
+#, gcc-internal-format
+msgid "reference type %qT in %<#pragma omp declare reduction%>"
+msgstr ""
+
+#: cp/parser.cc:49394 cp/semantics.cc:6464
+#, gcc-internal-format
+msgid "%<const%>, %<volatile%> or %<__restrict%>-qualified type %qT in %<#pragma omp declare reduction%>"
+msgstr ""
+
+#: cp/parser.cc:50114
+#, gcc-internal-format
+msgid "%<#pragma acc routine%> names a set of overloads"
+msgstr ""
+
+#: cp/parser.cc:50124
+#, gcc-internal-format
+msgid "%qD does not refer to a namespace scope function"
+msgstr ""
+
+#. cancel-and-throw is unimplemented.
+#: cp/parser.cc:50485
+#, gcc-internal-format
+msgid "%<atomic_cancel%>"
+msgstr ""
+
+#: cp/parser.cc:50532 cp/semantics.cc:11476
+#, gcc-internal-format
+msgid "%<__transaction_relaxed%> without transactional memory support enabled"
+msgstr ""
+
+#: cp/parser.cc:50534 cp/semantics.cc:11478
+#, gcc-internal-format
+msgid "%<__transaction_atomic%> without transactional memory support enabled"
+msgstr ""
+
+#: cp/parser.cc:50680
+#, gcc-internal-format
+msgid "outer %<__transaction_cancel%> not within outer %<__transaction_atomic%>"
+msgstr ""
+
+#: cp/parser.cc:50683
+#, gcc-internal-format
+msgid "  or a %<transaction_may_cancel_outer%> function"
+msgstr ""
+
+#: cp/parser.cc:50730
+#, gcc-internal-format
+msgid "malformed %<#pragma GCC pch_preprocess%>"
+msgstr ""
+
+#: cp/parser.cc:51030
+#, gcc-internal-format
+msgid "%<#pragma omp requires%> may only be used at file or namespace scope"
+msgstr ""
+
+#: cp/parser.cc:51041
+#, gcc-internal-format
+msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
+msgstr ""
+
+#: cp/parser.cc:51118
+#, gcc-internal-format
+msgid "%<#pragma GCC %s%> must be inside a function"
+msgstr ""
+
+#: cp/parser.cc:51260
+#, gcc-internal-format
+msgid "multi-source compilation not implemented for C++"
+msgstr ""
+
+#: cp/parser.cc:51297
+#, gcc-internal-format
+msgid "placeholder type not allowed in this context"
+msgstr ""
+
+#: cp/parser.cc:51506
+#, gcc-internal-format
+msgid "implicit templates may not be %<virtual%>"
+msgstr ""
+
+#: cp/parser.cc:51562
+#, gcc-internal-format
+msgid "%<extern \"C\"%> linkage started here"
+msgstr ""
+
+#: cp/pt.cc:313
+#, gcc-internal-format
+msgid "data member %qD cannot be a member template"
+msgstr ""
+
+#: cp/pt.cc:326
+#, gcc-internal-format
+msgid "invalid member template declaration %qD"
+msgstr ""
+
+#: cp/pt.cc:780
+#, gcc-internal-format
+msgid "explicit specialization in non-namespace scope %qD"
+msgstr ""
+
+#: cp/pt.cc:794
+#, gcc-internal-format
+msgid "enclosing class templates are not explicitly specialized"
+msgstr ""
+
+#: cp/pt.cc:878
+#, gcc-internal-format
+msgid "specialization of %qD must appear at namespace scope"
+msgstr ""
+
+#: cp/pt.cc:889 cp/pt.cc:1130
+#, gcc-internal-format
+msgid "specialization of %qD in different namespace"
+msgstr ""
+
+#: cp/pt.cc:891
+#, gcc-internal-format
+msgid "  from definition of %q#D"
+msgstr ""
+
+#: cp/pt.cc:908
+#, gcc-internal-format
+msgid "explicit instantiation of %qD in namespace %qD (which does not enclose namespace %qD)"
+msgstr ""
+
+#: cp/pt.cc:1042
+#, gcc-internal-format
+msgid "name of class shadows template template parameter %qD"
+msgstr ""
+
+#: cp/pt.cc:1054
+#, gcc-internal-format
+msgid "specialization of alias template %qD"
+msgstr ""
+
+#: cp/pt.cc:1057 cp/pt.cc:1196
+#, gcc-internal-format
+msgid "explicit specialization of non-template %qT"
+msgstr ""
+
+#: cp/pt.cc:1089
+#, gcc-internal-format
+msgid "specialization of %qT after instantiation"
+msgstr ""
+
+#: cp/pt.cc:1133
+#, gcc-internal-format
+msgid "from definition of %q#D"
+msgstr ""
+
+#. But if we've had an implicit instantiation, that's a
+#. problem ([temp.expl.spec]/6).
+#: cp/pt.cc:1174
+#, gcc-internal-format
+msgid "specialization %qT after instantiation %qT"
+msgstr ""
+
+#: cp/pt.cc:1192
+#, gcc-internal-format
+msgid "template specialization of %qD not allowed by ISO C++"
+msgstr ""
+
+#: cp/pt.cc:1569
+#, gcc-internal-format
+msgid "specialization of %qD after instantiation"
+msgstr ""
+
+#: cp/pt.cc:2047 cp/semantics.cc:6314
+#, gcc-internal-format
+msgid "%s %#qD"
+msgstr ""
+
+#: cp/pt.cc:2183
+#, gcc-internal-format
+msgid "%qD is not a function template"
+msgstr ""
+
+#: cp/pt.cc:2188
+#, gcc-internal-format
+msgid "%qD is not a variable template"
+msgstr ""
+
+#: cp/pt.cc:2471
+#, gcc-internal-format
+msgid "template-id %qD for %q+D does not match any template declaration"
+msgstr ""
+
+#: cp/pt.cc:2475
+#, gcc-internal-format
+msgid "saw %d %<template<>%>, need %d for specializing a member function template"
+msgstr ""
+
+#: cp/pt.cc:2485
+#, gcc-internal-format
+msgid "ambiguous template specialization %qD for %q+D"
+msgstr ""
+
+#: cp/pt.cc:2689
+#, gcc-internal-format
+msgid "variable templates only available with %<-std=c++14%> or %<-std=gnu++14%>"
+msgstr ""
+
+#: cp/pt.cc:2699
+#, gcc-internal-format
+msgid "too many template headers for %qD (should be %d)"
+msgstr ""
+
+#: cp/pt.cc:2705
+#, gcc-internal-format
+msgid "members of an explicitly specialized class are defined without a template header"
+msgstr ""
+
+#: cp/pt.cc:2729
+#, gcc-internal-format
+msgid "explicit specialization of %qD outside its namespace must use a nested-name-specifier"
+msgstr ""
+
+#. This was allowed in C++98, so only pedwarn.
+#: cp/pt.cc:2734
+#, gcc-internal-format
+msgid "explicit instantiation of %qD outside its namespace must use a nested-name-specifier"
+msgstr ""
+
+#: cp/pt.cc:2770
+#, gcc-internal-format
+msgid "explicit specialization %q#D may be missing attributes"
+msgstr ""
+
+#: cp/pt.cc:2774
+#, gcc-internal-format, gfc-internal-format
+msgid "missing primary template attributes %s"
+msgstr ""
+
+#: cp/pt.cc:2775
+#, gcc-internal-format, gfc-internal-format
+msgid "missing primary template attribute %s"
+msgstr ""
+
+#: cp/pt.cc:2867 cp/pt.cc:2927
+#, gcc-internal-format
+msgid "template-id %qE in declaration of primary template"
+msgstr ""
+
+#: cp/pt.cc:2880
+#, gcc-internal-format
+msgid "template parameter list used in explicit instantiation"
+msgstr ""
+
+#: cp/pt.cc:2886
+#, gcc-internal-format
+msgid "definition provided for explicit instantiation"
+msgstr ""
+
+#: cp/pt.cc:2894
+#, gcc-internal-format
+msgid "too many template parameter lists in declaration of %qD"
+msgstr ""
+
+#: cp/pt.cc:2897
+#, gcc-internal-format
+msgid "too few template parameter lists in declaration of %qD"
+msgstr ""
+
+#: cp/pt.cc:2899
+#, gcc-internal-format
+msgid "explicit specialization of %qD must be introduced by %<template <>%>"
+msgstr ""
+
+#: cp/pt.cc:2905
+#, gcc-internal-format
+msgid "explicit specialization declared %<concept%>"
+msgstr ""
+
+#: cp/pt.cc:2938
+#, gcc-internal-format
+msgid "non-type partial specialization %qE is not allowed"
+msgstr ""
+
+#: cp/pt.cc:2942
+#, gcc-internal-format
+msgid "non-class, non-variable partial specialization %qE is not allowed"
+msgstr ""
+
+#: cp/pt.cc:2974
+#, gcc-internal-format
+msgid "default argument specified in explicit specialization"
+msgstr ""
+
+#: cp/pt.cc:3017
+#, gcc-internal-format
+msgid "%qD is not a template function"
+msgstr ""
+
+#. From [temp.expl.spec]:
+#.
+#. If such an explicit specialization for the member
+#. of a class template names an implicitly-declared
+#. special member function (clause _special_), the
+#. program is ill-formed.
+#.
+#. Similar language is found in [temp.explicit].
+#: cp/pt.cc:3079
+#, gcc-internal-format
+msgid "specialization of implicitly-declared special member function"
+msgstr ""
+
+#: cp/pt.cc:3095
+#, gcc-internal-format
+msgid "no member function %qD declared in %qT"
+msgstr ""
+
+#: cp/pt.cc:3126
+#, gcc-internal-format
+msgid "friend declaration %qD is not visible to explicit specialization"
+msgstr ""
+
+#: cp/pt.cc:3129
+#, gcc-internal-format
+msgid "friend declaration here"
+msgstr ""
+
+#: cp/pt.cc:3240
+#, gcc-internal-format
+msgid "explicit specialization of function concept %qD"
+msgstr ""
+
+#: cp/pt.cc:3818
+#, gcc-internal-format
+msgid "argument to %<__integer_pack%> must be between 0 and %d"
+msgstr ""
+
+#: cp/pt.cc:4191
+#, gcc-internal-format
+msgid "base initializer expansion %qT contains no parameter packs"
+msgstr ""
+
+#: cp/pt.cc:4259
+#, gcc-internal-format
+msgid "expansion pattern %qT contains no parameter packs"
+msgstr ""
+
+#: cp/pt.cc:4261
+#, gcc-internal-format
+msgid "expansion pattern %qE contains no parameter packs"
+msgstr ""
+
+#: cp/pt.cc:4345
+#, gcc-internal-format
+msgid "parameter packs not expanded with %<...%>:"
+msgstr ""
+
+#: cp/pt.cc:4362 cp/pt.cc:5243
+#, gcc-internal-format
+msgid "        %qD"
+msgstr ""
+
+#: cp/pt.cc:4364
+#, gcc-internal-format, gfc-internal-format
+msgid "        %s"
+msgstr ""
+
+#: cp/pt.cc:4490
+#, gcc-internal-format
+msgid "declaration of template parameter %q+D shadows template parameter"
+msgstr ""
+
+#: cp/pt.cc:4493
+#, gcc-internal-format
+msgid "declaration of %q+#D shadows template parameter"
+msgstr ""
+
+#: cp/pt.cc:4495
+#, gcc-internal-format
+msgid "template parameter %qD declared here"
+msgstr ""
+
+#: cp/pt.cc:5179
+#, gcc-internal-format
+msgid "specialization of variable concept %q#D"
+msgstr ""
+
+#: cp/pt.cc:5238
+#, gcc-internal-format
+msgid "template parameters not deducible in partial specialization:"
+msgstr ""
+
+#: cp/pt.cc:5261
+#, gcc-internal-format
+msgid "partial specialization %q+D does not specialize any template arguments; to define the primary template, remove the template argument list"
+msgstr ""
+
+#: cp/pt.cc:5265
+#, gcc-internal-format
+msgid "partial specialization %q+D does not specialize any template arguments and is not more constrained than the primary template; to define the primary template, remove the template argument list"
+msgstr ""
+
+#: cp/pt.cc:5269 cp/pt.cc:5280 cp/pt.cc:5288
+#, gcc-internal-format
+msgid "primary template here"
+msgstr ""
+
+#: cp/pt.cc:5277
+#, gcc-internal-format
+msgid "partial specialization is not more specialized than the primary template because it replaces multiple parameters with a pack expansion"
+msgstr ""
+
+#: cp/pt.cc:5287
+#, gcc-internal-format
+msgid "too many arguments for partial specialization %qT"
+msgstr ""
+
+#: cp/pt.cc:5302
+#, gcc-internal-format
+msgid "partial specialization %qD is not more specialized than"
+msgstr ""
+
+#: cp/pt.cc:5304
+#, gcc-internal-format
+msgid "primary template %qD"
+msgstr ""
+
+#: cp/pt.cc:5346
+#, gcc-internal-format
+msgid "parameter pack argument %qE must be at the end of the template argument list"
+msgstr ""
+
+#: cp/pt.cc:5349
+#, gcc-internal-format
+msgid "parameter pack argument %qT must be at the end of the template argument list"
+msgstr ""
+
+#: cp/pt.cc:5411
+#, gcc-internal-format
+msgid "type %qT of template argument %qE depends on a template parameter"
+msgid_plural "type %qT of template argument %qE depends on template parameters"
+msgstr[0] ""
+msgstr[1] ""
+
+#: cp/pt.cc:5479
+#, gcc-internal-format
+msgid "declaration of %qD ambiguates earlier template instantiation for %qD"
+msgstr ""
+
+#: cp/pt.cc:5483
+#, gcc-internal-format
+msgid "partial specialization of %qD after instantiation of %qD"
+msgstr ""
+
+#: cp/pt.cc:5666
+#, gcc-internal-format
+msgid "no default argument for %qD"
+msgstr ""
+
+#. A primary class template, primary variable template
+#. (DR 2032), or alias template can only have one
+#. parameter pack, at the end of the template
+#. parameter list.
+#: cp/pt.cc:5689
+#, gcc-internal-format
+msgid "parameter pack %q+D must be at the end of the template parameter list"
+msgstr ""
+
+#: cp/pt.cc:5725
+#, gcc-internal-format
+msgid "default template arguments may not be used in function template friend re-declaration"
+msgstr ""
+
+#: cp/pt.cc:5728
+#, gcc-internal-format
+msgid "default template arguments may not be used in template friend declarations"
+msgstr ""
+
+#: cp/pt.cc:5731
+#, gcc-internal-format
+msgid "default template arguments may not be used in function templates without %<-std=c++11%> or %<-std=gnu++11%>"
+msgstr ""
+
+#: cp/pt.cc:5734
+#, gcc-internal-format
+msgid "default template arguments may not be used in partial specializations"
+msgstr ""
+
+#: cp/pt.cc:5737 cp/pt.cc:5795
+#, gcc-internal-format
+msgid "default argument for template parameter for class enclosing %qD"
+msgstr ""
+
+#: cp/pt.cc:5906
+#, gcc-internal-format
+msgid "template %qD declared"
+msgstr ""
+
+#: cp/pt.cc:5914
+#, gcc-internal-format
+msgid "template class without a name"
+msgstr ""
+
+#: cp/pt.cc:5922
+#, gcc-internal-format
+msgid "member template %qD may not have virt-specifiers"
+msgstr ""
+
+#. [basic.stc.dynamic.allocation]
+#.
+#. An allocation function can be a function
+#. template. ... Template allocation functions shall
+#. have two or more parameters.
+#: cp/pt.cc:5945
+#, gcc-internal-format
+msgid "invalid template declaration of %qD"
+msgstr ""
+
+#: cp/pt.cc:6097
+#, gcc-internal-format
+msgid "template definition of non-template %q#D"
+msgstr ""
+
+#: cp/pt.cc:6136
+#, gcc-internal-format
+msgid "expected %d levels of template parms for %q#D, got %d"
+msgstr ""
+
+#: cp/pt.cc:6150
+#, gcc-internal-format
+msgid "got %d template parameters for %q#D"
+msgstr ""
+
+#: cp/pt.cc:6153
+#, gcc-internal-format
+msgid "got %d template parameters for %q#T"
+msgstr ""
+
+#: cp/pt.cc:6155
+#, gcc-internal-format, gfc-internal-format
+msgid "  but %d required"
+msgstr ""
+
+#: cp/pt.cc:6176
+#, gcc-internal-format
+msgid "template arguments to %qD do not match original template %qD"
+msgstr ""
+
+#: cp/pt.cc:6179
+#, gcc-internal-format
+msgid "use %<template<>%> for an explicit specialization"
+msgstr ""
+
+#: cp/pt.cc:6201
+#, gcc-internal-format
+msgid "redeclaration of %qD with different constraints"
+msgstr ""
+
+#: cp/pt.cc:6346
+#, gcc-internal-format
+msgid "%qT is not a template type"
+msgstr ""
+
+#: cp/pt.cc:6359
+#, gcc-internal-format
+msgid "template specifiers not specified in declaration of %qD"
+msgstr ""
+
+#: cp/pt.cc:6370
+#, gcc-internal-format, gfc-internal-format
+msgid "redeclared with %d template parameter"
+msgid_plural "redeclared with %d template parameters"
+msgstr[0] ""
+msgstr[1] ""
+
+#: cp/pt.cc:6374
+#, gcc-internal-format
+msgid "previous declaration %qD used %d template parameter"
+msgid_plural "previous declaration %qD used %d template parameters"
+msgstr[0] ""
+msgstr[1] ""
+
+#: cp/pt.cc:6408
+#, gcc-internal-format
+msgid "template parameter %q+#D"
+msgstr ""
+
+#: cp/pt.cc:6410
+#, gcc-internal-format
+msgid "redeclared here as %q#D"
+msgstr ""
+
+#: cp/pt.cc:6412
+#, gcc-internal-format
+msgid "redeclared here"
+msgstr ""
+
+#: cp/pt.cc:6423
+#, gcc-internal-format
+msgid "declaration of template parameter %q+#D with different constraints"
+msgstr ""
+
+#: cp/pt.cc:6426 cp/pt.cc:6454
+#, gcc-internal-format
+msgid "original declaration appeared here"
+msgstr ""
+
+#: cp/pt.cc:6451
+#, gcc-internal-format
+msgid "redeclaration of %q#D with different constraints"
+msgstr ""
+
+#: cp/pt.cc:6872 cp/pt.cc:6942
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT"
+msgstr ""
+
+#: cp/pt.cc:6875
+#, gcc-internal-format
+msgid "it must be the address of a function with external linkage"
+msgstr ""
+
+#: cp/pt.cc:6878
+#, gcc-internal-format
+msgid "it must be the name of a function with external linkage"
+msgstr ""
+
+#: cp/pt.cc:6892
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because %qD has no linkage"
+msgstr ""
+
+#: cp/pt.cc:6896
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage"
+msgstr ""
+
+#: cp/pt.cc:6945
+#, gcc-internal-format
+msgid "it must be a pointer-to-member of the form %<&X::Y%>"
+msgstr ""
+
+#: cp/pt.cc:6947
+#, gcc-internal-format
+msgid "because it is a member of %qT"
+msgstr ""
+
+#: cp/pt.cc:7016
+#, gcc-internal-format
+msgid "  couldn%'t deduce template parameter %qD"
+msgstr ""
+
+#: cp/pt.cc:7025
+#, gcc-internal-format
+msgid "  types %qT and %qT have incompatible cv-qualifiers"
+msgstr ""
+
+#: cp/pt.cc:7034
+#, gcc-internal-format
+msgid "  mismatched types %qT and %qT"
+msgstr ""
+
+#: cp/pt.cc:7043
+#, gcc-internal-format
+msgid "  template parameter %qD is not a parameter pack, but argument %qD is"
+msgstr ""
+
+#: cp/pt.cc:7054
+#, gcc-internal-format
+msgid "  template argument %qE does not match pointer-to-member constant %qE"
+msgstr ""
+
+#: cp/pt.cc:7064
+#, gcc-internal-format
+msgid "  %qE is not equivalent to %qE"
+msgstr ""
+
+#: cp/pt.cc:7073
+#, gcc-internal-format
+msgid "  inconsistent parameter pack deduction with %qT and %qT"
+msgstr ""
+
+#: cp/pt.cc:7085
+#, gcc-internal-format
+msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
+msgstr ""
+
+#: cp/pt.cc:7089
+#, gcc-internal-format
+msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
+msgstr ""
+
+#: cp/pt.cc:7100
+#, gcc-internal-format
+msgid "  variable-sized array type %qT is not a valid template argument"
+msgstr ""
+
+#: cp/pt.cc:7111
+#, gcc-internal-format
+msgid "  member function type %qT is not a valid template argument"
+msgstr ""
+
+#: cp/pt.cc:7154
+#, gcc-internal-format
+msgid "  cannot convert %qE (type %qT) to type %qT"
+msgstr ""
+
+#: cp/pt.cc:7167
+#, gcc-internal-format
+msgid "  %qT is an ambiguous base class of %qT"
+msgstr ""
+
+#: cp/pt.cc:7171
+#, gcc-internal-format
+msgid "  %qT is not derived from %qT"
+msgstr ""
+
+#: cp/pt.cc:7182
+#, gcc-internal-format
+msgid "  template parameters of a template template argument are inconsistent with other deduced template arguments"
+msgstr ""
+
+#: cp/pt.cc:7192
+#, gcc-internal-format
+msgid "  cannot deduce a template for %qT from non-template type %qT"
+msgstr ""
+
+#: cp/pt.cc:7202
+#, gcc-internal-format
+msgid "  template argument %qE does not match %qE"
+msgstr ""
+
+#: cp/pt.cc:7253
+#, gcc-internal-format
+msgid "%qE is not a valid template argument of type %qT because %qE is not a variable or function"
+msgstr ""
+
+#: cp/pt.cc:7262
+#, gcc-internal-format
+msgid "%qE is not a valid template argument of type %qT in C++98 because %qD does not have external linkage"
+msgstr ""
+
+#: cp/pt.cc:7272
+#, gcc-internal-format
+msgid "%qE is not a valid template argument of type %qT because %qD has no linkage"
+msgstr ""
+
+#: cp/pt.cc:7289
+#, gcc-internal-format
+msgid "the address of %qD is not a valid template argument"
+msgstr ""
+
+#: cp/pt.cc:7299
+#, gcc-internal-format
+msgid "the address of the %qT subobject of %qD is not a valid template argument"
+msgstr ""
+
+#: cp/pt.cc:7306
+#, gcc-internal-format
+msgid "the address of %qD is not a valid template argument because it does not have static storage duration"
+msgstr ""
+
+#: cp/pt.cc:7324
+#, gcc-internal-format
+msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable"
+msgstr ""
+
+#: cp/pt.cc:7332
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for %qT because it is not the address of a variable"
+msgstr ""
+
+#: cp/pt.cc:7454
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context"
+msgstr ""
+
+#: cp/pt.cc:7619
+#, gcc-internal-format
+msgid "in template argument for type %qT"
+msgstr ""
+
+#: cp/pt.cc:7633
+#, gcc-internal-format
+msgid "template argument %qE for type %qT not a compile-time constant"
+msgstr ""
+
+#: cp/pt.cc:7719
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification"
+msgstr ""
+
+#: cp/pt.cc:7727
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is not an lvalue"
+msgstr ""
+
+#: cp/pt.cc:7745
+#, gcc-internal-format
+msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address"
+msgstr ""
+
+#: cp/pt.cc:7804
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is a pointer"
+msgstr ""
+
+#: cp/pt.cc:7806
+#, gcc-internal-format
+msgid "try using %qE instead"
+msgstr ""
+
+#: cp/pt.cc:7860
+#, gcc-internal-format
+msgid "%qE is not a valid template argument for type %qT because it is of type %qT"
+msgstr ""
+
+#: cp/pt.cc:8452
+#, gcc-internal-format
+msgid "ignoring attributes on template argument %qT"
+msgstr ""
+
+#: cp/pt.cc:8468
+#, gcc-internal-format
+msgid "ignoring attributes in template argument %qE"
+msgstr ""
+
+#: cp/pt.cc:8612
+#, gcc-internal-format
+msgid "injected-class-name %qD used as template template argument"
+msgstr ""
+
+#: cp/pt.cc:8641
+#, gcc-internal-format
+msgid "invalid use of destructor %qE as a type"
+msgstr ""
+
+#: cp/pt.cc:8646
+#, gcc-internal-format
+msgid "to refer to a type member of a template parameter, use %<typename %E%>"
+msgstr ""
+
+#: cp/pt.cc:8662 cp/pt.cc:8696 cp/pt.cc:8746
+#, gcc-internal-format
+msgid "type/value mismatch at argument %d in template parameter list for %qD"
+msgstr ""
+
+#: cp/pt.cc:8670
+#, gcc-internal-format
+msgid "  expected a constant of type %qT, got %qT"
+msgstr ""
+
+#: cp/pt.cc:8678
+#, gcc-internal-format
+msgid "  ambiguous template argument for non-type template parameter is treated as function type"
+msgstr ""
+
+#: cp/pt.cc:8684
+#, gcc-internal-format
+msgid "  expected a class template, got %qE"
+msgstr ""
+
+#: cp/pt.cc:8687
+#, gcc-internal-format
+msgid "  expected a type, got %qE"
+msgstr ""
+
+#: cp/pt.cc:8701
+#, gcc-internal-format
+msgid "  expected a type, got %qT"
+msgstr ""
+
+#: cp/pt.cc:8704
+#, gcc-internal-format
+msgid "  expected a class template, got %qT"
+msgstr ""
+
+#: cp/pt.cc:8750
+#, gcc-internal-format
+msgid "  expected a template of type %qD, got %qT"
+msgstr ""
+
+#: cp/pt.cc:8764
+#, gcc-internal-format
+msgid "constraint mismatch at argument %d in template parameter list for %qD"
+msgstr ""
+
+#: cp/pt.cc:8767
+#, gcc-internal-format
+msgid "  expected %qD but got %qD"
+msgstr ""
+
+#: cp/pt.cc:8855
+#, gcc-internal-format
+msgid "could not convert template argument %qE from %qT to %qT"
+msgstr ""
+
+#: cp/pt.cc:8993 cp/pt.cc:9319
+#, gcc-internal-format, gfc-internal-format
+msgid "template argument %d is invalid"
+msgstr ""
+
+#: cp/pt.cc:9008 cp/pt.cc:9153
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong number of template arguments (%d, should be %d)"
+msgstr ""
+
+#: cp/pt.cc:9149
+#, gcc-internal-format, gfc-internal-format
+msgid "wrong number of template arguments (%d, should be at least %d)"
+msgstr ""
+
+#: cp/pt.cc:9158
+#, gcc-internal-format
+msgid "provided for %qD"
+msgstr ""
+
+#: cp/pt.cc:9183
+#, gcc-internal-format
+msgid "pack expansion argument for non-pack parameter %qD of alias template %qD"
+msgstr ""
+
+#: cp/pt.cc:9187
+#, gcc-internal-format
+msgid "pack expansion argument for non-pack parameter %qD of concept %qD"
+msgstr ""
+
+#: cp/pt.cc:9285
+#, gcc-internal-format
+msgid "so any instantiation with a non-empty parameter pack would be ill-formed"
+msgstr ""
+
+#: cp/pt.cc:9852
+#, gcc-internal-format
+msgid "%q#D is not a function template"
+msgstr ""
+
+#: cp/pt.cc:10015
+#, gcc-internal-format
+msgid "non-template type %qT used as a template"
+msgstr ""
+
+#: cp/pt.cc:10017
+#, gcc-internal-format
+msgid "for template declaration %q+D"
+msgstr ""
+
+#: cp/pt.cc:10186 cp/pt.cc:22299
+#, gcc-internal-format
+msgid "template constraint failure for %qD"
+msgstr ""
+
+#: cp/pt.cc:10539
+#, gcc-internal-format
+msgid "use of invalid variable template %qE"
+msgstr ""
+
+#: cp/pt.cc:11263
+#, gcc-internal-format
+msgid "template instantiation depth exceeds maximum of %d (use %<-ftemplate-depth=%> to increase the maximum)"
+msgstr ""
+
+#: cp/pt.cc:12037
+#, gcc-internal-format
+msgid "score argument must be constant integer expression"
+msgstr ""
+
+#: cp/pt.cc:12046
+#, gcc-internal-format
+msgid "score argument must be non-negative"
+msgstr ""
+
+#: cp/pt.cc:12073
+#, gcc-internal-format
+msgid "property must be constant integer expression or string literal"
+msgstr ""
+
+#: cp/pt.cc:12622
+#, gcc-internal-format
+msgid "flexible array member %qD in union"
+msgstr ""
+
+#: cp/pt.cc:13112
+#, gcc-internal-format
+msgid "fold of empty expansion over %O"
+msgstr ""
+
+#: cp/pt.cc:13572
+#, gcc-internal-format
+msgid "%qE is not the entire pattern of the pack expansion"
+msgstr ""
+
+#: cp/pt.cc:13660
+#, gcc-internal-format
+msgid "mismatched argument pack lengths while expanding %qT"
+msgstr ""
+
+#: cp/pt.cc:13663
+#, gcc-internal-format
+msgid "mismatched argument pack lengths while expanding %qE"
+msgstr ""
+
+#: cp/pt.cc:14351
+#, gcc-internal-format
+msgid "  when instantiating default argument for call to %qD"
+msgstr ""
+
+#: cp/pt.cc:14447
+#, gcc-internal-format
+msgid "creating pointer to member function of non-class type %qT"
+msgstr ""
+
+#: cp/pt.cc:15439
+#, gcc-internal-format, gfc-internal-format
+msgid "mismatched argument pack lengths (%d vs %d)"
+msgstr ""
+
+#. It may seem that this case cannot occur, since:
+#.
+#. typedef void f();
+#. void g() { f x; }
+#.
+#. declares a function, not a variable.  However:
+#.
+#. typedef void f();
+#. template <typename T> void g() { T t; }
+#. template void g<f>();
+#.
+#. is an attempt to declare a variable with function
+#. type.
+#: cp/pt.cc:15628
+#, gcc-internal-format
+msgid "variable %qD has function type"
+msgstr ""
+
+#: cp/pt.cc:15829
+#, gcc-internal-format
+msgid "invalid parameter type %qT"
+msgstr ""
+
+#: cp/pt.cc:15831
+#, gcc-internal-format
+msgid "in declaration %q+D"
+msgstr ""
+
+#: cp/pt.cc:15958
+#, gcc-internal-format
+msgid "function returning an array"
+msgstr ""
+
+#: cp/pt.cc:15960
+#, gcc-internal-format
+msgid "function returning a function"
+msgstr ""
+
+#: cp/pt.cc:16666
+#, gcc-internal-format
+msgid "forming reference to void"
+msgstr ""
+
+#: cp/pt.cc:16668
+#, gcc-internal-format
+msgid "forming pointer to reference type %qT"
+msgstr ""
+
+#: cp/pt.cc:16670
+#, gcc-internal-format
+msgid "forming reference to reference type %qT"
+msgstr ""
+
+#: cp/pt.cc:16683
+#, gcc-internal-format
+msgid "forming pointer to qualified function type %qT"
+msgstr ""
+
+#: cp/pt.cc:16686
+#, gcc-internal-format
+msgid "forming reference to qualified function type %qT"
+msgstr ""
+
+#: cp/pt.cc:16734
+#, gcc-internal-format
+msgid "creating pointer to member of non-class type %qT"
+msgstr ""
+
+#: cp/pt.cc:16740
+#, gcc-internal-format
+msgid "creating pointer to member reference type %qT"
+msgstr ""
+
+#: cp/pt.cc:16746
+#, gcc-internal-format
+msgid "creating pointer to member of type void"
+msgstr ""
+
+#: cp/pt.cc:16812
+#, gcc-internal-format
+msgid "creating array of %qT"
+msgstr ""
+
+#: cp/pt.cc:16849
+#, gcc-internal-format
+msgid "%qD is instantiated for an empty pack"
+msgstr ""
+
+#: cp/pt.cc:16870
+#, gcc-internal-format
+msgid "%qT is not a class, struct, or union type"
+msgstr ""
+
+#: cp/pt.cc:16910
+#, gcc-internal-format
+msgid "%qT resolves to %qT, which is not an enumeration type"
+msgstr ""
+
+#: cp/pt.cc:16918
+#, gcc-internal-format
+msgid "%qT resolves to %qT, which is not a class type"
+msgstr ""
+
+#: cp/pt.cc:17036
+#, gcc-internal-format
+msgid "use of %qs in template"
+msgstr ""
+
+#: cp/pt.cc:17355
+#, gcc-internal-format
+msgid "qualifying type %qT does not match destructor name ~%qT"
+msgstr ""
+
+#: cp/pt.cc:17370
+#, gcc-internal-format
+msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type"
+msgstr ""
+
+#: cp/pt.cc:17372
+#, gcc-internal-format
+msgid "say %<typename %E%> if a type is meant"
+msgstr ""
+
+#: cp/pt.cc:17465
+#, gcc-internal-format
+msgid "initializer for %q#D expands to an empty list of expressions"
+msgstr ""
+
+#: cp/pt.cc:19489 cp/pt.cc:21680
+#, gcc-internal-format
+msgid "invalid use of pack expansion expression"
+msgstr ""
+
+#: cp/pt.cc:19493 cp/pt.cc:21684
+#, gcc-internal-format
+msgid "use %<...%> to expand argument pack"
+msgstr ""
+
+#: cp/pt.cc:19640
+#, gcc-internal-format
+msgid "empty initializer in lambda init-capture"
+msgstr ""
+
+#: cp/pt.cc:20954
+#, gcc-internal-format
+msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation"
+msgstr ""
+
+#: cp/pt.cc:20989
+#, gcc-internal-format
+msgid "declarations in dependent base %qT are not found by unqualified lookup"
+msgstr ""
+
+#: cp/pt.cc:20994
+#, gcc-internal-format
+msgid "use %<this->%D%> instead"
+msgstr ""
+
+#: cp/pt.cc:20997
+#, gcc-internal-format
+msgid "use %<%T::%D%> instead"
+msgstr ""
+
+#: cp/pt.cc:21002
+#, gcc-internal-format
+msgid "%qD declared here, later in the translation unit"
+msgstr ""
+
+#: cp/pt.cc:21053
+#, gcc-internal-format
+msgid "wrong number of arguments to %<__builtin_convertvector%>"
+msgstr ""
+
+#: cp/pt.cc:21080
+#, gcc-internal-format
+msgid "wrong number of arguments to %<assume%> attribute"
+msgstr ""
+
+#: cp/pt.cc:21291
+#, gcc-internal-format
+msgid "%qT is not a class or namespace"
+msgstr ""
+
+#: cp/pt.cc:21294
+#, gcc-internal-format
+msgid "%qD is not a class or namespace"
+msgstr ""
+
+#: cp/pt.cc:21612
+#, gcc-internal-format
+msgid "using invalid field %qD"
+msgstr ""
+
+#: cp/pt.cc:21945
+#, gcc-internal-format
+msgid "%qT is/uses unnamed type"
+msgstr ""
+
+#: cp/pt.cc:21947
+#, gcc-internal-format
+msgid "template argument for %qD uses local type %qT"
+msgstr ""
+
+#: cp/pt.cc:21957
+#, gcc-internal-format
+msgid "%qT is a variably modified type"
+msgstr ""
+
+#: cp/pt.cc:21972
+#, gcc-internal-format
+msgid "integral expression %qE is not constant"
+msgstr ""
+
+#: cp/pt.cc:21990
+#, gcc-internal-format
+msgid "  trying to instantiate %qD"
+msgstr ""
+
+#: cp/pt.cc:26383
+#, gcc-internal-format
+msgid "ambiguous template instantiation for %q#T"
+msgstr ""
+
+#: cp/pt.cc:26385
+#, gcc-internal-format
+msgid "ambiguous template instantiation for %q#D"
+msgstr ""
+
+#: cp/pt.cc:26391
+msgid "%s %#qS"
+msgstr ""
+
+#: cp/pt.cc:26418 cp/pt.cc:26513
+#, gcc-internal-format
+msgid "explicit instantiation of non-template %q#D"
+msgstr ""
+
+#: cp/pt.cc:26424
+#, gcc-internal-format
+msgid "explicit instantiation of variable concept %q#D"
+msgstr ""
+
+#: cp/pt.cc:26426
+#, gcc-internal-format
+msgid "explicit instantiation of function concept %q#D"
+msgstr ""
+
+#: cp/pt.cc:26445
+#, gcc-internal-format
+msgid "%qD is not a static data member of a class template"
+msgstr ""
+
+#: cp/pt.cc:26451 cp/pt.cc:26508
+#, gcc-internal-format
+msgid "no matching template for %qD found"
+msgstr ""
+
+#: cp/pt.cc:26456
+#, gcc-internal-format
+msgid "type %qT for explicit instantiation %qD does not match declared type %qT"
+msgstr ""
+
+#: cp/pt.cc:26464
+#, gcc-internal-format
+msgid "explicit instantiation of %q#D"
+msgstr ""
+
+#: cp/pt.cc:26500
+#, gcc-internal-format
+msgid "duplicate explicit instantiation of %q#D"
+msgstr ""
+
+#: cp/pt.cc:26523 cp/pt.cc:26590
+#, gcc-internal-format
+msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations"
+msgstr ""
+
+#: cp/pt.cc:26528 cp/pt.cc:26605
+#, gcc-internal-format
+msgid "storage class %qD applied to template instantiation"
+msgstr ""
+
+#: cp/pt.cc:26562
+#, gcc-internal-format
+msgid "explicit instantiation of non-class template %qD"
+msgstr ""
+
+#: cp/pt.cc:26565
+#, gcc-internal-format
+msgid "explicit instantiation of non-template type %qT"
+msgstr ""
+
+#: cp/pt.cc:26574
+#, gcc-internal-format
+msgid "explicit instantiation of %q#T before definition of template"
+msgstr ""
+
+#: cp/pt.cc:26595
+#, gcc-internal-format
+msgid "ISO C++ forbids the use of %qE on explicit instantiations"
+msgstr ""
+
+#: cp/pt.cc:26635
+#, gcc-internal-format
+msgid "duplicate explicit instantiation of %q#T"
+msgstr ""
+
+#: cp/pt.cc:26951
+#, gcc-internal-format
+msgid "exception specification of %qD depends on itself"
+msgstr ""
+
+#. [temp.explicit]
+#.
+#. The definition of a non-exported function template, a
+#. non-exported member function template, or a non-exported
+#. member function or static data member of a class template
+#. shall be present in every translation unit in which it is
+#. explicitly instantiated.
+#: cp/pt.cc:27424
+#, gcc-internal-format
+msgid "explicit instantiation of %qD but no definition available"
+msgstr ""
+
+#: cp/pt.cc:27469
+#, gcc-internal-format
+msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use %<-ftemplate-depth=%> to increase the maximum)"
+msgstr ""
+
+#: cp/pt.cc:27843
+#, gcc-internal-format
+msgid "non-type template parameters of deduced class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/pt.cc:27873
+#, gcc-internal-format
+msgid "%qT is not a valid type for a template non-type parameter because it is not structural"
+msgstr ""
+
+#: cp/pt.cc:27882
+#, gcc-internal-format
+msgid "non-type template parameters of class type only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/pt.cc:27890
+#, gcc-internal-format
+msgid "invalid template non-type parameter"
+msgstr ""
+
+#: cp/pt.cc:27892
+#, gcc-internal-format
+msgid "%q#T is not a valid type for a template non-type parameter"
+msgstr ""
+
+#: cp/pt.cc:29336
+#, gcc-internal-format
+msgid "keyword %<template%> not allowed in declarator-id"
+msgstr ""
+
+#: cp/pt.cc:29527
+#, gcc-internal-format
+msgid "a concept cannot be constrained"
+msgstr ""
+
+#: cp/pt.cc:29536
+#, gcc-internal-format
+msgid "concept %qE not in namespace scope"
+msgstr ""
+
+#: cp/pt.cc:29542
+#, gcc-internal-format
+msgid "concept %qE has multiple template parameter lists"
+msgstr ""
+
+#: cp/pt.cc:29573
+#, gcc-internal-format
+msgid "deducing from brace-enclosed initializer list requires %<#include <initializer_list>%>"
+msgstr ""
+
+#: cp/pt.cc:30867
+#, gcc-internal-format
+msgid "non-deducible template %qT used without template arguments"
+msgstr ""
+
+#: cp/pt.cc:30879
+#, gcc-internal-format
+msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
+msgstr ""
+
+#: cp/pt.cc:30885
+#, gcc-internal-format
+msgid "use %qD directly instead"
+msgstr ""
+
+#: cp/pt.cc:31013
+#, gcc-internal-format
+msgid "cannot deduce template arguments for copy-initialization of %qT, as it has no non-explicit deduction guides or user-declared constructors"
+msgstr ""
+
+#: cp/pt.cc:31020
+#, gcc-internal-format
+msgid "cannot deduce template arguments of %qT, as it has no viable deduction guides"
+msgstr ""
+
+#: cp/pt.cc:31032
+#, gcc-internal-format
+msgid "class template argument deduction failed:"
+msgstr ""
+
+#: cp/pt.cc:31035
+#, gcc-internal-format
+msgid "explicit deduction guides not considered for copy-initialization"
+msgstr ""
+
+#. TODO: Pass down location from cp_finish_decl.
+#: cp/pt.cc:31049
+#, gcc-internal-format
+msgid "class template argument deduction for %qT failed: explicit deduction guide selected in copy-list-initialization"
+msgstr ""
+
+#: cp/pt.cc:31053
+#, gcc-internal-format
+msgid "explicit deduction guide declared here"
+msgstr ""
+
+#: cp/pt.cc:31067
+#, gcc-internal-format
+msgid "%qT may not intend to support class template argument deduction"
+msgstr ""
+
+#: cp/pt.cc:31069
+#, gcc-internal-format
+msgid "add a deduction guide to suppress this warning"
+msgstr ""
+
+#: cp/pt.cc:31191
+#, gcc-internal-format
+msgid "direct-list-initialization of %<auto%> requires exactly one element"
+msgstr ""
+
+#: cp/pt.cc:31194
+#, gcc-internal-format
+msgid "for deduction to %<std::initializer_list%>, use copy-list-initialization (i.e. add %<=%> before the %<{%>)"
+msgstr ""
+
+#: cp/pt.cc:31261
+#, gcc-internal-format
+msgid "unable to deduce lambda return type from %qE"
+msgstr ""
+
+#: cp/pt.cc:31264
+#, gcc-internal-format
+msgid "unable to deduce %qT from %qE"
+msgstr ""
+
+#: cp/pt.cc:31339
+#, gcc-internal-format
+msgid "placeholder constraints not satisfied"
+msgstr ""
+
+#: cp/pt.cc:31343
+#, gcc-internal-format
+msgid "deduced initializer does not satisfy placeholder constraints"
+msgstr ""
+
+#: cp/pt.cc:31347
+#, gcc-internal-format
+msgid "deduced return type does not satisfy placeholder constraints"
+msgstr ""
+
+#: cp/pt.cc:31351
+#, gcc-internal-format
+msgid "deduced expression type does not satisfy placeholder constraints"
+msgstr ""
+
+#: cp/pt.cc:31506
+#, gcc-internal-format
+msgid "invalid use of %qT in template argument"
+msgstr ""
+
+#: cp/rtti.cc:310
+#, gcc-internal-format
+msgid "cannot use %<typeid%> with %<-fno-rtti%>"
+msgstr ""
+
+#: cp/rtti.cc:323
+#, gcc-internal-format
+msgid "must %<#include <typeinfo>%> before using %<typeid%>"
+msgstr ""
+
+#: cp/rtti.cc:424
+#, gcc-internal-format
+msgid "cannot create type information for type %qT because it involves types of variable size"
+msgstr ""
+
+#: cp/rtti.cc:524
+#, gcc-internal-format
+msgid "%<typeid%> of qualified function type %qT"
+msgstr ""
+
+#: cp/rtti.cc:714 cp/rtti.cc:730
+#, gcc-internal-format
+msgid "%<dynamic_cast<%#T>(%#D)%> can never succeed"
+msgstr ""
+
+#: cp/rtti.cc:742
+#, gcc-internal-format
+msgid "%<dynamic_cast%> not permitted with %<-fno-rtti%>"
+msgstr ""
+
+#: cp/rtti.cc:822
+#, gcc-internal-format
+msgid "cannot %<dynamic_cast%> %qE (of type %q#T) to type %q#T (%s)"
+msgstr ""
+
+#: cp/search.cc:298
+#, gcc-internal-format
+msgid "%qT is an ambiguous base of %qT"
+msgstr ""
+
+#: cp/search.cc:314
+#, gcc-internal-format
+msgid "%qT is an inaccessible base of %qT"
+msgstr ""
+
+#: cp/search.cc:1992
+#, gcc-internal-format
+msgid "looser exception specification on overriding virtual function %q+#F"
+msgstr ""
+
+#: cp/search.cc:1995
+#, gcc-internal-format
+msgid "overridden function is %q#F"
+msgstr ""
+
+#: cp/search.cc:2070
+#, gcc-internal-format
+msgid "invalid covariant return type for %q#D"
+msgstr ""
+
+#: cp/search.cc:2072 cp/search.cc:2089 cp/search.cc:2106
+#, gcc-internal-format
+msgid "overridden function is %q#D"
+msgstr ""
+
+#: cp/search.cc:2085
+#, gcc-internal-format
+msgid "invalid covariant return type for %q+#D"
+msgstr ""
+
+#: cp/search.cc:2087
+#, gcc-internal-format
+msgid "conflicting return type specified for %q+#D"
+msgstr ""
+
+#: cp/search.cc:2104
+#, gcc-internal-format
+msgid "conflicting type attributes specified for %q+#D"
+msgstr ""
+
+#: cp/search.cc:2119
+#, gcc-internal-format
+msgid "%<consteval%> function %q+D overriding non-%<consteval%> function"
+msgstr ""
+
+#: cp/search.cc:2122
+#, gcc-internal-format
+msgid "non-%<consteval%> function %q+D overriding %<consteval%> function"
+msgstr ""
+
+#: cp/search.cc:2125 cp/search.cc:2154 cp/search.cc:2163 cp/search.cc:2174
+#: cp/search.cc:2199
+#, gcc-internal-format
+msgid "overridden function is %qD"
+msgstr ""
+
+#: cp/search.cc:2141
+#, gcc-internal-format
+msgid "%qD declared %<transaction_safe_dynamic%>"
+msgstr ""
+
+#: cp/search.cc:2143
+#, gcc-internal-format
+msgid "overriding %qD declared %<transaction_safe%>"
+msgstr ""
+
+#: cp/search.cc:2151
+#, gcc-internal-format
+msgid "deleted function %q+D overriding non-deleted function"
+msgstr ""
+
+#: cp/search.cc:2160
+#, gcc-internal-format
+msgid "non-deleted function %q+D overriding deleted function"
+msgstr ""
+
+#: cp/search.cc:2171
+#, gcc-internal-format
+msgid "function with contracts %q+D overriding contractless function"
+msgstr ""
+
+#: cp/search.cc:2197
+#, gcc-internal-format
+msgid "virtual function %q+D overriding final function"
+msgstr ""
+
+#: cp/search.cc:2285
+#, gcc-internal-format
+msgid "%q+#D cannot be declared"
+msgstr ""
+
+#: cp/search.cc:2286
+#, gcc-internal-format
+msgid "  since %q+#D declared in base class"
+msgstr ""
+
+#: cp/search.cc:2292
+#, gcc-internal-format
+msgid "explicit object member function overrides virtual function"
+msgstr ""
+
+#: cp/search.cc:2295
+#, gcc-internal-format
+msgid "virtual function declared here"
+msgstr ""
+
+#: cp/semantics.cc:1114
+#, gcc-internal-format
+msgid "%<std::is_constant_evaluated%> always evaluates to true in %<if constexpr%>"
+msgstr ""
+
+#: cp/semantics.cc:1120
+#, gcc-internal-format
+msgid "%<std::is_constant_evaluated%> evaluates to true when checking if trivially empty iteration statement is trivial infinite loop"
+msgstr ""
+
+#: cp/semantics.cc:1125
+#, gcc-internal-format
+msgid "and evaluates to false when actually evaluating the condition in non-%<constexpr%> function"
+msgstr ""
+
+#: cp/semantics.cc:1130
+#, gcc-internal-format
+msgid "%<std::is_constant_evaluated%> always evaluates to false in a non-%<constexpr%> function"
+msgstr ""
+
+#: cp/semantics.cc:1134
+#, gcc-internal-format
+msgid "%<std::is_constant_evaluated%> always evaluates to true in a %<consteval%> function"
+msgstr ""
+
+#: cp/semantics.cc:1351
+#, gcc-internal-format
+msgid "suggest explicit braces around empty body in %<do%> statement"
+msgstr ""
+
+#: cp/semantics.cc:1890
+#, gcc-internal-format
+msgid "catching polymorphic type %q#T by value"
+msgstr ""
+
+#: cp/semantics.cc:1895
+#, gcc-internal-format
+msgid "catching type %q#T by value"
+msgstr ""
+
+#: cp/semantics.cc:1900
+#, gcc-internal-format
+msgid "catching non-reference type %q#T"
+msgstr ""
+
+#: cp/semantics.cc:2112
+#, gcc-internal-format
+msgid "type of %<asm%> operand %qE could not be determined"
+msgstr ""
+
+#: cp/semantics.cc:2194
+#, gcc-internal-format
+msgid "%<__label__%> declarations are only allowed in function scopes"
+msgstr ""
+
+#: cp/semantics.cc:2369
+#, gcc-internal-format
+msgid "invalid use of member %qD in static member function"
+msgstr ""
+
+#: cp/semantics.cc:2373
+#, gcc-internal-format
+msgid "invalid use of member %qD in constructor %<pre%> contract"
+msgstr ""
+
+#: cp/semantics.cc:2377
+#, gcc-internal-format
+msgid "invalid use of member %qD in destructor %<post%> contract"
+msgstr ""
+
+#: cp/semantics.cc:2640
+#, gcc-internal-format
+msgid "%qE missing template arguments"
+msgstr ""
+
+#: cp/semantics.cc:2700
+#, gcc-internal-format
+msgid "a statement expression is an insufficient context for overload resolution"
+msgstr ""
+
+#: cp/semantics.cc:3059
+#, gcc-internal-format
+msgid "cannot call a concept as a function"
+msgstr ""
+
+#: cp/semantics.cc:3142
+#, gcc-internal-format
+msgid "arguments to destructor are not allowed"
+msgstr ""
+
+#: cp/semantics.cc:3246
+#, gcc-internal-format
+msgid "%<this%> is unavailable for explicit object member functions"
+msgstr ""
+
+#: cp/semantics.cc:3258
+#, gcc-internal-format
+msgid "use explicit object parameter %qs instead"
+msgstr ""
+
+#: cp/semantics.cc:3262
+#, gcc-internal-format
+msgid "name the explicit object parameter"
+msgstr ""
+
+#: cp/semantics.cc:3267
+#, gcc-internal-format
+msgid "%<this%> is unavailable for static member functions"
+msgstr ""
+
+#: cp/semantics.cc:3269
+#, gcc-internal-format
+msgid "invalid use of %<this%> before it is valid"
+msgstr ""
+
+#: cp/semantics.cc:3271
+#, gcc-internal-format
+msgid "invalid use of %<this%> after it is valid"
+msgstr ""
+
+#: cp/semantics.cc:3273
+#, gcc-internal-format
+msgid "invalid use of %<this%> in non-member function"
+msgstr ""
+
+#: cp/semantics.cc:3275
+#, gcc-internal-format
+msgid "invalid use of %<this%> at top level"
+msgstr ""
+
+#: cp/semantics.cc:3297
+#, gcc-internal-format
+msgid "invalid qualifying scope in pseudo-destructor name"
+msgstr ""
+
+#: cp/semantics.cc:3305 cp/typeck.cc:3081
+#, gcc-internal-format
+msgid "qualified type %qT does not match destructor name ~%qT"
+msgstr ""
+
+#: cp/semantics.cc:3327
+#, gcc-internal-format
+msgid "%qE is not of type %qT"
+msgstr ""
+
+#: cp/semantics.cc:3441
+#, gcc-internal-format
+msgid "compound literal of non-object type %qT"
+msgstr ""
+
+#: cp/semantics.cc:3461
+#, gcc-internal-format
+msgid "%<auto{x}%> cannot be constrained"
+msgstr ""
+
+#: cp/semantics.cc:3466
+#, gcc-internal-format
+msgid "%<auto{x}%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/semantics.cc:3658
+#, gcc-internal-format
+msgid "template type parameters must use the keyword %<class%> or %<typename%>"
+msgstr ""
+
+#: cp/semantics.cc:3711
+#, gcc-internal-format
+msgid "invalid use of type %qT as a default value for a template template-parameter"
+msgstr ""
+
+#: cp/semantics.cc:3715
+#, gcc-internal-format
+msgid "invalid default argument for a template template parameter"
+msgstr ""
+
+#: cp/semantics.cc:3732
+#, gcc-internal-format
+msgid "definition of %q#T inside template parameter list"
+msgstr ""
+
+#: cp/semantics.cc:3763
+#, gcc-internal-format
+msgid "invalid definition of qualified type %qT"
+msgstr ""
+
+#: cp/semantics.cc:4051
+#, gcc-internal-format
+msgid "invalid base-class specification"
+msgstr ""
+
+#: cp/semantics.cc:4219
+#, gcc-internal-format
+msgid "cannot capture member %qD of anonymous union"
+msgstr ""
+
+#: cp/semantics.cc:4236
+#, gcc-internal-format
+msgid "%qD is not captured"
+msgstr ""
+
+#: cp/semantics.cc:4240
+#, gcc-internal-format
+msgid "the lambda has no capture-default"
+msgstr ""
+
+#: cp/semantics.cc:4242
+#, gcc-internal-format
+msgid "lambda in local class %q+T cannot capture variables from the enclosing context"
+msgstr ""
+
+#: cp/semantics.cc:4257
+#, gcc-internal-format
+msgid "use of local variable with automatic storage from containing function"
+msgstr ""
+
+#: cp/semantics.cc:4259
+#, gcc-internal-format
+msgid "use of parameter from containing function"
+msgstr ""
+
+#: cp/semantics.cc:4387
+#, gcc-internal-format
+msgid "use of parameter outside function body"
+msgstr ""
+
+#: cp/semantics.cc:4397
+#, gcc-internal-format
+msgid "missing template arguments"
+msgstr ""
+
+#: cp/semantics.cc:4433
+#, gcc-internal-format
+msgid "template parameter %qD of type %qT is not allowed in an integral constant expression because it is not of integral or enumeration type"
+msgstr ""
+
+#: cp/semantics.cc:4484
+#, gcc-internal-format
+msgid "use of class template %qT as expression"
+msgstr ""
+
+#. Ambiguous reference to base members.
+#: cp/semantics.cc:4491
+#, gcc-internal-format
+msgid "request for member %qD is ambiguous in multiple inheritance lattice"
+msgstr ""
+
+#: cp/semantics.cc:4519
+#, gcc-internal-format
+msgid "%qD cannot appear in a constant-expression"
+msgstr ""
+
+#: cp/semantics.cc:4672
+#, gcc-internal-format
+msgid "type of %qE is unknown"
+msgstr ""
+
+#: cp/semantics.cc:4690 rust/backend/rust-tree.cc:5511
+#, gcc-internal-format
+msgid "%qT is not an enumeration type"
+msgstr ""
+
+#: cp/semantics.cc:4717
+#, gcc-internal-format
+msgid "%<__type_pack_element%> index is not an integral constant"
+msgstr ""
+
+#: cp/semantics.cc:4723
+#, gcc-internal-format
+msgid "%<__type_pack_element%> index is negative"
+msgstr ""
+
+#: cp/semantics.cc:4729
+#, gcc-internal-format
+msgid "%<__type_pack_element%> index is out of range"
+msgstr ""
+
+#. Parameter packs can only be used in templates
+#: cp/semantics.cc:4852
+#, gcc-internal-format
+msgid "parameter pack %<__bases%> only valid in template declaration"
+msgstr ""
+
+#: cp/semantics.cc:4884
+#, gcc-internal-format
+msgid "cannot apply %<offsetof%> to destructor %<~%T%>"
+msgstr ""
+
+#: cp/semantics.cc:4897
+#, gcc-internal-format
+msgid "cannot apply %<offsetof%> to member function %qD"
+msgstr ""
+
+#: cp/semantics.cc:4901
+#, gcc-internal-format
+msgid "cannot apply %<offsetof%> to member function"
+msgstr ""
+
+#: cp/semantics.cc:4906
+#, gcc-internal-format
+msgid "cannot apply %<offsetof%> to an enumerator %qD"
+msgstr ""
+
+#: cp/semantics.cc:4917
+#, gcc-internal-format
+msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-supported"
+msgstr ""
+
+#: cp/semantics.cc:6117
+#, gcc-internal-format
+msgid "pointer-to-member mapping %qE not supported"
+msgstr ""
+
+#: cp/semantics.cc:6311
+#, gcc-internal-format
+msgid "user defined reduction lookup is ambiguous"
+msgstr ""
+
+#: cp/semantics.cc:6584
+#, gcc-internal-format
+msgid "%qE in %<reduction%> clause is a zero size array"
+msgstr ""
+
+#: cp/semantics.cc:6630
+#, gcc-internal-format
+msgid "%qE has const type for %<reduction%>"
+msgstr ""
+
+#: cp/semantics.cc:6749
+#, gcc-internal-format
+msgid "user defined reduction with constructor initializer for base class %qT"
+msgstr ""
+
+#: cp/semantics.cc:7221
+#, gcc-internal-format
+msgid "modifier other than %<val%> specified in %<linear%> clause on %<simd%> or %<for%> constructs when using OpenMP 5.2 modifiers"
+msgstr ""
+
+#: cp/semantics.cc:7236
+#, gcc-internal-format
+msgid "linear clause with %qs modifier applied to non-reference variable with %qT type"
+msgstr ""
+
+#: cp/semantics.cc:7251
+#, gcc-internal-format
+msgid "linear clause applied to non-integral non-pointer variable with %qT type"
+msgstr ""
+
+#: cp/semantics.cc:7275
+#, gcc-internal-format
+msgid "linear step expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7368 cp/semantics.cc:7500 cp/semantics.cc:7560
+#: cp/semantics.cc:7961 cp/semantics.cc:9087
+#, gcc-internal-format
+msgid "%<this%> allowed in OpenMP only in %<declare simd%> clauses"
+msgstr ""
+
+#: cp/semantics.cc:7380 cp/semantics.cc:9100
+#, gcc-internal-format
+msgid "%qD is not a variable in clause %qs"
+msgstr ""
+
+#: cp/semantics.cc:7513
+#, gcc-internal-format
+msgid "%qD is not a variable in clause %<firstprivate%>"
+msgstr ""
+
+#: cp/semantics.cc:7573
+#, gcc-internal-format
+msgid "%qD is not a variable in clause %<lastprivate%>"
+msgstr ""
+
+#: cp/semantics.cc:7624
+#, gcc-internal-format
+msgid "%<gang%> static expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7638
+#, gcc-internal-format
+msgid "%<gang%> static value must be positive"
+msgstr ""
+
+#: cp/semantics.cc:7672
+#, gcc-internal-format
+msgid "%<gang%> num expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7675
+#, gcc-internal-format
+msgid "%<vector%> length expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7679
+#, gcc-internal-format
+msgid "%<worker%> num expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7701
+#, gcc-internal-format
+msgid "%<gang%> num value must be positive"
+msgstr ""
+
+#: cp/semantics.cc:7705
+#, gcc-internal-format
+msgid "%<vector%> length value must be positive"
+msgstr ""
+
+#: cp/semantics.cc:7710
+#, gcc-internal-format
+msgid "%<worker%> num value must be positive"
+msgstr ""
+
+#: cp/semantics.cc:7786
+#, gcc-internal-format
+msgid "schedule chunk size expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7819
+#, gcc-internal-format
+msgid "%qs length expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7833
+#, gcc-internal-format
+msgid "%qs length expression must be positive constant integer expression"
+msgstr ""
+
+#: cp/semantics.cc:7853
+#, gcc-internal-format
+msgid "%<async%> expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7882
+#, gcc-internal-format
+msgid "%<thread_limit%> expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7912
+#, gcc-internal-format
+msgid "%<device%> id must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7943
+#, gcc-internal-format
+msgid "%<dist_schedule%> chunk size expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:7972
+#, gcc-internal-format
+msgid "%qD is not a variable in %<aligned%> clause"
+msgstr ""
+
+#: cp/semantics.cc:7987
+#, gcc-internal-format
+msgid "%qE in %<aligned%> clause is neither a pointer nor an array nor a reference to pointer or array"
+msgstr ""
+
+#: cp/semantics.cc:7994
+#, gcc-internal-format
+msgid "%qD appears more than once in %<aligned%> clauses"
+msgstr ""
+
+#: cp/semantics.cc:8009
+#, gcc-internal-format
+msgid "%<aligned%> clause alignment expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:8042
+#, gcc-internal-format
+msgid "%qD is not a variable in %<nontemporal%> clause"
+msgstr ""
+
+#: cp/semantics.cc:8053
+#, gcc-internal-format
+msgid "%qD appears more than once in %<nontemporal%> clauses"
+msgstr ""
+
+#: cp/semantics.cc:8070
+#, gcc-internal-format
+msgid "%<this%> not allowed in %<allocate%> clause"
+msgstr ""
+
+#: cp/semantics.cc:8082
+#, gcc-internal-format
+msgid "%qD is not a variable in %<allocate%> clause"
+msgstr ""
+
+#: cp/semantics.cc:8091
+#, gcc-internal-format
+msgid "%qD appears more than once in %<allocate%> clauses"
+msgstr ""
+
+#: cp/semantics.cc:8239
+#, gcc-internal-format
+msgid "%qD is not lvalue expression nor array section in %qs clause"
+msgstr ""
+
+#: cp/semantics.cc:8741
+#, gcc-internal-format
+msgid "template %qE in clause %qs"
+msgstr ""
+
+#: cp/semantics.cc:8744
+#, gcc-internal-format
+msgid "overloaded function name %qE in clause %qs"
+msgstr ""
+
+#: cp/semantics.cc:8813
+#, gcc-internal-format
+msgid "%<grainsize%> expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:8843
+#, gcc-internal-format
+msgid "%<priority%> expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:8873
+#, gcc-internal-format
+msgid "%<hint%> expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:8886
+#, gcc-internal-format
+msgid "%<hint%> expression must be constant integer expression"
+msgstr ""
+
+#: cp/semantics.cc:8903
+#, gcc-internal-format
+msgid "%<filter%> expression must be integral"
+msgstr ""
+
+#: cp/semantics.cc:8934
+#, gcc-internal-format
+msgid "%qs variable is neither a pointer nor reference to pointer"
+msgstr ""
+
+#: cp/semantics.cc:8944
+#, gcc-internal-format
+msgid "%qs variable is neither a pointer, nor an array nor reference to pointer or array"
+msgstr ""
+
+#: cp/semantics.cc:9028
+#, gcc-internal-format
+msgid "%<tile%> argument needs integral type"
+msgstr ""
+
+#: cp/semantics.cc:9445
+#, gcc-internal-format
+msgid "%<const%> qualified %qE without %<mutable%> member may appear only in %<shared%> or %<firstprivate%> clauses"
+msgstr ""
+
+#: cp/semantics.cc:9672
+#, gcc-internal-format
+msgid "%<threadprivate%> %qD is not file, namespace or block scope variable"
+msgstr ""
+
+#: cp/semantics.cc:9686
+#, gcc-internal-format
+msgid "%<threadprivate%> %qE directive not in %qT definition"
+msgstr ""
+
+#: cp/semantics.cc:10423
+#, gcc-internal-format
+msgid "difference between %qE and %qD does not have integer type"
+msgstr ""
+
+#: cp/semantics.cc:10908
+#, gcc-internal-format
+msgid "%<#pragma omp simd%> used with class iteration variable %qE"
+msgstr ""
+
+#: cp/semantics.cc:11228 cp/semantics.cc:11238
+#, gcc-internal-format
+msgid "%<#pragma omp atomic update%> uses two different expressions for memory"
+msgstr ""
+
+#: cp/semantics.cc:11580
+#, gcc-internal-format
+msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
+msgstr ""
+
+#: cp/semantics.cc:11596
+#, gcc-internal-format
+msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
+msgstr ""
+
+#: cp/semantics.cc:11605
+#, gcc-internal-format
+msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
+msgstr ""
+
+#: cp/semantics.cc:11663
+#, gcc-internal-format
+msgid "%<static_assert%> message %<size()%> must be a constant expression"
+msgstr ""
+
+#: cp/semantics.cc:11671
+#, gcc-internal-format
+msgid "%<static_assert%> message %<size()%> %qE too large"
+msgstr ""
+
+#: cp/semantics.cc:11698
+#, gcc-internal-format
+msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
+msgstr ""
+
+#: cp/semantics.cc:11725
+#, gcc-internal-format
+msgid "%<static_assert%> message %<data()%> must be a core constant expression"
+msgstr ""
+
+#: cp/semantics.cc:11751
+#, gcc-internal-format
+msgid "static assertion failed: %.*s"
+msgstr ""
+
+#: cp/semantics.cc:11759
+#, gcc-internal-format
+msgid "non-constant condition for static assertion"
+msgstr ""
+
+#: cp/semantics.cc:11788
+#, gcc-internal-format
+msgid "argument to %<decltype%> must be an expression"
+msgstr ""
+
+#: cp/semantics.cc:11834
+#, gcc-internal-format
+msgid "%<decltype%> cannot resolve address of overloaded function"
+msgstr ""
+
+#: cp/semantics.cc:12138 rust/backend/rust-tree.cc:5225
+#, gcc-internal-format
+msgid "%<__builtin_is_pointer_interconvertible_with_class%> needs a single argument"
+msgstr ""
+
+#: cp/semantics.cc:12147 rust/backend/rust-tree.cc:5234
+#, gcc-internal-format
+msgid "%<__builtin_is_pointer_interconvertible_with_class%> argument is not pointer to member"
+msgstr ""
+
+#: cp/semantics.cc:12318 rust/backend/rust-tree.cc:5838
+#, gcc-internal-format
+msgid "%<__builtin_is_corresponding_member%> not well defined for anonymous unions"
+msgstr ""
+
+#: cp/semantics.cc:12342 rust/backend/rust-tree.cc:5882
+#, gcc-internal-format
+msgid "%<__builtin_is_corresponding_member%> needs two arguments"
+msgstr ""
+
+#: cp/semantics.cc:12353 rust/backend/rust-tree.cc:5892
+#, gcc-internal-format
+msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
+msgstr ""
+
+#: cp/semantics.cc:12837
+#, gcc-internal-format
+msgid "%qD is not a class or alias template"
+msgstr ""
+
+#: cp/semantics.cc:13026
+#, gcc-internal-format
+msgid "operand of fold expression has no unexpanded parameter packs"
+msgstr ""
+
+#: cp/semantics.cc:13086
+#, gcc-internal-format
+msgid "both arguments in binary fold have unexpanded parameter packs"
+msgstr ""
+
+#: cp/semantics.cc:13088
+#, gcc-internal-format
+msgid "no unexpanded parameter packs in binary fold"
+msgstr ""
+
+#: cp/semantics.cc:13106
+#, gcc-internal-format
+msgid "non-pointer argument to %<__builtin_launder%>"
+msgstr ""
+
+#. std::bit_cast for destination ARRAY_TYPE is not possible,
+#. as functions may not return an array, so don't bother trying
+#. to support this (and then deal with VLAs etc.).
+#: cp/semantics.cc:13155
+#, gcc-internal-format
+msgid "%<__builtin_bit_cast%> destination type %qT is an array type"
+msgstr ""
+
+#: cp/semantics.cc:13161
+#, gcc-internal-format
+msgid "%<__builtin_bit_cast%> destination type %qT is not trivially copyable"
+msgstr ""
+
+#: cp/semantics.cc:13188
+#, gcc-internal-format
+msgid "%<__builtin_bit_cast%> source type %qT is not trivially copyable"
+msgstr ""
+
+#: cp/semantics.cc:13196
+#, gcc-internal-format
+msgid "%<__builtin_bit_cast%> source size %qE not equal to destination type size %qE"
+msgstr ""
+
+#: cp/tree.cc:1489 rust/backend/rust-tree.cc:2609
+#, gcc-internal-format
+msgid "%qV qualifiers cannot be applied to %qT"
+msgstr ""
+
+#: cp/tree.cc:2007
+#, gcc-internal-format
+msgid "statement-expression in a constant expression"
+msgstr ""
+
+#: cp/tree.cc:4527
+#, gcc-internal-format
+msgid "%<-fabi-version=13%> (GCC 8.2) fixes the calling convention for %qT, which was accidentally changed in 8.1"
+msgstr ""
+
+#: cp/tree.cc:4531
+#, gcc-internal-format
+msgid "%<-fabi-version=12%> (GCC 8.1) accidentally changes the calling convention for %qT"
+msgstr ""
+
+#: cp/tree.cc:4535
+#, gcc-internal-format
+msgid " declared here"
+msgstr ""
+
+#: cp/tree.cc:4540
+#, gcc-internal-format
+msgid "the calling convention for %qT changes in %<-fabi-version=13%> (GCC 8.2)"
+msgstr ""
+
+#: cp/tree.cc:4542
+#, gcc-internal-format
+msgid " because all of its copy and move constructors are deleted"
+msgstr ""
+
+#: cp/tree.cc:4969
+#, gcc-internal-format
+msgid "base class %qT is not public"
+msgstr ""
+
+#: cp/tree.cc:4972
+#, gcc-internal-format
+msgid "%qD is not public"
+msgstr ""
+
+#: cp/tree.cc:4979
+#, gcc-internal-format
+msgid "%qD is mutable"
+msgstr ""
+
+#: cp/tree.cc:4987
+#, gcc-internal-format
+msgid "%qD has a non-structural type"
+msgstr ""
+
+#: cp/tree.cc:5010
+#, gcc-internal-format
+msgid "%qE attribute can only be applied to functions or parameters"
+msgstr ""
+
+#: cp/tree.cc:5031
+#, gcc-internal-format
+msgid "%qE attribute argument must be a string constant"
+msgstr ""
+
+#: cp/tree.cc:5046
+#, gcc-internal-format
+msgid "%qE attribute can only be applied to functions or to class or enumeration types"
+msgstr ""
+
+#: cp/tree.cc:5066 cp/tree.cc:5071
+#, gcc-internal-format
+msgid "%qE attribute can only be applied to non-static data members"
+msgstr ""
+
+#: cp/tree.cc:5077
+#, gcc-internal-format
+msgid "%qE attribute cannot be applied to a bit-field"
+msgstr ""
+
+#: cp/tree.cc:5097
+#, gcc-internal-format
+msgid "%qE attribute takes no arguments"
+msgstr ""
+
+#: cp/tree.cc:5101
+#, gcc-internal-format
+msgid "ISO C++ %qE attribute does not apply to functions; treating as %<[[gnu::%E]]%>"
+msgstr ""
+
+#: cp/tree.cc:5185
+#, gcc-internal-format
+msgid "requested %<init_priority%> is not an integer constant"
+msgstr ""
+
+#: cp/tree.cc:5207
+#, gcc-internal-format
+msgid "can only use %qE attribute on file-scope definitions of objects of class type"
+msgstr ""
+
+#: cp/tree.cc:5215
+#, gcc-internal-format
+msgid "requested %<init_priority%> %i is out of range [0, %i]"
+msgstr ""
+
+#: cp/tree.cc:5226
+#, gcc-internal-format
+msgid "requested %<init_priority%> %i is reserved for internal use"
+msgstr ""
+
+#: cp/tree.cc:5256
+#, gcc-internal-format
+msgid "redeclaration of %qD adds abi tag %qE"
+msgstr ""
+
+#: cp/tree.cc:5276
+#, gcc-internal-format
+msgid "the %qE attribute requires arguments"
+msgstr ""
+
+#: cp/tree.cc:5287
+#, gcc-internal-format
+msgid "arguments to the %qE attribute must be narrow string literals"
+msgstr ""
+
+#: cp/tree.cc:5300 cp/tree.cc:5313
+#, gcc-internal-format
+msgid "arguments to the %qE attribute must contain valid identifiers"
+msgstr ""
+
+#: cp/tree.cc:5302
+#, gcc-internal-format
+msgid "%<%c%> is not a valid first character for an identifier"
+msgstr ""
+
+#: cp/tree.cc:5315
+#, gcc-internal-format
+msgid "%<%c%> is not a valid character in an identifier"
+msgstr ""
+
+#: cp/tree.cc:5339
+#, gcc-internal-format
+msgid "%qE attribute applied to non-class, non-enum type %qT"
+msgstr ""
+
+#: cp/tree.cc:5345
+#, gcc-internal-format
+msgid "%qE attribute applied to %qT after its definition"
+msgstr ""
+
+#: cp/tree.cc:5352
+#, gcc-internal-format
+msgid "ignoring %qE attribute applied to template instantiation %qT"
+msgstr ""
+
+#: cp/tree.cc:5359
+#, gcc-internal-format
+msgid "ignoring %qE attribute applied to template specialization %qT"
+msgstr ""
+
+#: cp/tree.cc:5381
+#, gcc-internal-format
+msgid "%qE attribute applied to non-function, non-variable %qD"
+msgstr ""
+
+#: cp/tree.cc:5387
+#, gcc-internal-format
+msgid "%qE attribute applied to extern \"C\" declaration %qD"
+msgstr ""
+
+#: cp/tree.cc:5420
+#, gcc-internal-format
+msgid "%qE attribute argument must be an expression that evaluates to true or false"
+msgstr ""
+
+#: cp/tree.cc:6290
+#, gcc-internal-format
+msgid "zero as null pointer constant"
+msgstr ""
+
+#: cp/tree.cc:6331 rust/backend/rust-tree.cc:3189
+#, gcc-internal-format
+msgid "%<lang_*%> check: failed in %s, at %s:%d"
+msgstr ""
+
+#: cp/typeck.cc:628
+#, gcc-internal-format
+msgid "comparison between distinct pointer types %qT and %qT lacks a cast"
+msgstr ""
+
+#: cp/typeck.cc:634
+#, gcc-internal-format
+msgid "conversion between distinct pointer types %qT and %qT lacks a cast"
+msgstr ""
+
+#: cp/typeck.cc:640
+#, gcc-internal-format
+msgid "conditional expression between distinct pointer types %qT and %qT lacks a cast"
+msgstr ""
+
+#: cp/typeck.cc:788
+#, gcc-internal-format
+msgid "ISO C++ forbids comparison between pointer of type %<void *%> and pointer-to-function"
+msgstr ""
+
+#: cp/typeck.cc:793
+#, gcc-internal-format
+msgid "ISO C++ forbids conversion between pointer of type %<void *%> and pointer-to-function"
+msgstr ""
+
+#: cp/typeck.cc:798
+#, gcc-internal-format
+msgid "ISO C++ forbids conditional expression between pointer of type %<void *%> and pointer-to-function"
+msgstr ""
+
+#: cp/typeck.cc:877
+#, gcc-internal-format
+msgid "comparison between distinct pointer-to-member types %qT and %qT lacks a cast"
+msgstr ""
+
+#: cp/typeck.cc:882
+#, gcc-internal-format
+msgid "conversion between distinct pointer-to-member types %qT and %qT lacks a cast"
+msgstr ""
+
+#: cp/typeck.cc:887
+#, gcc-internal-format
+msgid "conditional expression between distinct pointer-to-member types %qT and %qT lacks a cast"
+msgstr ""
+
+#: cp/typeck.cc:1713
+#, gcc-internal-format
+msgid "canonical types differ for identical types %qT and %qT"
+msgstr ""
+
+#: cp/typeck.cc:1720
+#, gcc-internal-format
+msgid "same canonical type node for different types %qT and %qT"
+msgstr ""
+
+#: cp/typeck.cc:2050
+#, gcc-internal-format
+msgid "invalid application of %qs to a member function"
+msgstr ""
+
+#: cp/typeck.cc:2148
+#, gcc-internal-format
+msgid "invalid application of %<sizeof%> to a bit-field"
+msgstr ""
+
+#: cp/typeck.cc:2156
+#, gcc-internal-format
+msgid "ISO C++ forbids applying %<sizeof%> to an expression of function type"
+msgstr ""
+
+#: cp/typeck.cc:2221
+#, gcc-internal-format
+msgid "invalid application of %<__alignof%> to a bit-field"
+msgstr ""
+
+#: cp/typeck.cc:2232
+#, gcc-internal-format
+msgid "ISO C++ forbids applying %<__alignof%> to an expression of function type"
+msgstr ""
+
+#: cp/typeck.cc:2316
+#, gcc-internal-format
+msgid "%<alignas%> argument has non-integral type %qT"
+msgstr ""
+
+#: cp/typeck.cc:2362 rust/backend/rust-tree.cc:3817
+#, gcc-internal-format
+msgid "invalid use of non-static member function of type %qT"
+msgstr ""
+
+#: cp/typeck.cc:2712
+#, gcc-internal-format
+msgid "ISO C++ forbids converting a string constant to %qT"
+msgstr ""
+
+#: cp/typeck.cc:2716
+#, gcc-internal-format
+msgid "deprecated conversion from string constant to %qT"
+msgstr ""
+
+#: cp/typeck.cc:2831 cp/typeck.cc:3395
+#, gcc-internal-format
+msgid "request for member %qD in %qE, which is of pointer type %qT (maybe you meant to use %<->%> ?)"
+msgstr ""
+
+#: cp/typeck.cc:2835 cp/typeck.cc:3399
+#, gcc-internal-format
+msgid "request for member %qD in %qE, which is of non-class type %qT"
+msgstr ""
+
+#: cp/typeck.cc:2869
+#, gcc-internal-format
+msgid "invalid use of non-static data member %qE"
+msgstr ""
+
+#: cp/typeck.cc:2946
+#, gcc-internal-format
+msgid "invalid access to non-static data member %qD in virtual base of NULL object"
+msgstr ""
+
+#: cp/typeck.cc:3096
+#, gcc-internal-format
+msgid "object type %qT does not match destructor name ~%qT"
+msgstr ""
+
+#: cp/typeck.cc:3105
+#, gcc-internal-format
+msgid "the type being destroyed is %qT, but the destructor refers to %qT"
+msgstr ""
+
+#: cp/typeck.cc:3247
+#, gcc-internal-format
+msgid "field %q#D can be accessed via %q#D"
+msgstr ""
+
+#. No hint.
+#: cp/typeck.cc:3266
+#, gcc-internal-format
+msgid "%q#T has no member named %qE"
+msgstr ""
+
+#: cp/typeck.cc:3289
+#, gcc-internal-format
+msgid "%q#T has no member named %qE; did you mean %q#D? (accessible via %q#D)"
+msgstr ""
+
+#: cp/typeck.cc:3300
+#, gcc-internal-format
+msgid "%q#T has no member named %qE; did you mean %q#D? (not accessible from this context)"
+msgstr ""
+
+#: cp/typeck.cc:3315
+#, gcc-internal-format
+msgid "%q#T has no member named %qE; did you mean %qE?"
+msgstr ""
+
+#: cp/typeck.cc:3429 cp/typeck.cc:3455
+#, gcc-internal-format
+msgid "%<%D::%D%> is not a member of %qT"
+msgstr ""
+
+#: cp/typeck.cc:3509
+#, gcc-internal-format
+msgid "%qT is not a base of %qT"
+msgstr ""
+
+#: cp/typeck.cc:3572
+#, gcc-internal-format
+msgid "%qD is not a member template function"
+msgstr ""
+
+#: cp/typeck.cc:3837
+#, gcc-internal-format
+msgid "%qT is not a pointer-to-object type"
+msgstr ""
+
+#: cp/typeck.cc:3869
+#, gcc-internal-format
+msgid "invalid use of array indexing on pointer to member"
+msgstr ""
+
+#: cp/typeck.cc:3872
+#, gcc-internal-format
+msgid "invalid use of unary %<*%> on pointer to member"
+msgstr ""
+
+#: cp/typeck.cc:3875
+#, gcc-internal-format
+msgid "invalid use of implicit conversion on pointer to member"
+msgstr ""
+
+#: cp/typeck.cc:3879
+#, gcc-internal-format
+msgid "left hand operand of %<->*%> must be a pointer to class, but is a pointer to member of type %qT"
+msgstr ""
+
+#: cp/typeck.cc:3945
+#, gcc-internal-format
+msgid "subscript missing in array reference"
+msgstr ""
+
+#: cp/typeck.cc:4050
+#, gcc-internal-format
+msgid "subscripting array declared %<register%>"
+msgstr ""
+
+#: cp/typeck.cc:4089
+#, gcc-internal-format
+msgid "subscripted value is neither array nor pointer"
+msgstr ""
+
+#: cp/typeck.cc:4161
+#, gcc-internal-format
+msgid "object missing in use of %qE"
+msgstr ""
+
+#: cp/typeck.cc:4386
+#, gcc-internal-format
+msgid "ISO C++ forbids calling %<::main%> from within program"
+msgstr ""
+
+#: cp/typeck.cc:4407
+#, gcc-internal-format
+msgid "must use %<.*%> or %<->*%> to call pointer-to-member function in %<%E (...)%>, e.g. %<(... ->* %E) (...)%>"
+msgstr ""
+
+#: cp/typeck.cc:4424
+#, gcc-internal-format
+msgid "%qE cannot be used as a function"
+msgstr ""
+
+#: cp/typeck.cc:4427
+#, gcc-internal-format
+msgid "%qD cannot be used as a function"
+msgstr ""
+
+#: cp/typeck.cc:4430
+#, gcc-internal-format
+msgid "expression cannot be used as a function"
+msgstr ""
+
+#: cp/typeck.cc:4488
+#, gcc-internal-format
+msgid "too many arguments to constructor %q#D"
+msgstr ""
+
+#: cp/typeck.cc:4489
+#, gcc-internal-format
+msgid "too few arguments to constructor %q#D"
+msgstr ""
+
+#: cp/typeck.cc:4494
+#, gcc-internal-format
+msgid "too many arguments to member function %q#D"
+msgstr ""
+
+#: cp/typeck.cc:4495
+#, gcc-internal-format
+msgid "too few arguments to member function %q#D"
+msgstr ""
+
+#: cp/typeck.cc:4501
+#, gcc-internal-format
+msgid "too many arguments to function %q#D"
+msgstr ""
+
+#: cp/typeck.cc:4502
+#, gcc-internal-format
+msgid "too few arguments to function %q#D"
+msgstr ""
+
+#: cp/typeck.cc:4512
+#, gcc-internal-format
+msgid "too many arguments to method %q#D"
+msgstr ""
+
+#: cp/typeck.cc:4513
+#, gcc-internal-format
+msgid "too few arguments to method %q#D"
+msgstr ""
+
+#: cp/typeck.cc:4516
+#, gcc-internal-format
+msgid "too many arguments to function"
+msgstr ""
+
+#: cp/typeck.cc:4517
+#, gcc-internal-format
+msgid "too few arguments to function"
+msgstr ""
+
+#: cp/typeck.cc:4599
+#, gcc-internal-format
+msgid "parameter %P of %qD has incomplete type %qT"
+msgstr ""
+
+#: cp/typeck.cc:4605
+#, gcc-internal-format
+msgid "parameter %P has incomplete type %qT"
+msgstr ""
+
+#: cp/typeck.cc:4914
+#, gcc-internal-format
+msgid "the address %qE will never be NULL"
+msgstr ""
+
+#: cp/typeck.cc:4960
+#, gcc-internal-format
+msgid "the address of %qD will never be NULL"
+msgstr ""
+
+#: cp/typeck.cc:4975
+#, gcc-internal-format
+msgid "the compiler can assume that the address of %qE will never be NULL"
+msgstr ""
+
+#: cp/typeck.cc:4978
+#, gcc-internal-format
+msgid "comparing the result of pointer addition %qE and NULL"
+msgstr ""
+
+#: cp/typeck.cc:4993
+#, gcc-internal-format
+msgid "the compiler can assume that the address of %qD will never be NULL"
+msgstr ""
+
+#: cp/typeck.cc:5052
+#, gcc-internal-format
+msgid "bitwise operation between different enumeration types %qT and %qT"
+msgstr ""
+
+#: cp/typeck.cc:5055
+#, gcc-internal-format
+msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
+msgstr ""
+
+#: cp/typeck.cc:5061
+#, gcc-internal-format
+msgid "arithmetic between different enumeration types %qT and %qT"
+msgstr ""
+
+#: cp/typeck.cc:5064
+#, gcc-internal-format
+msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
+msgstr ""
+
+#: cp/typeck.cc:5101
+#, gcc-internal-format
+msgid "comparison of enumeration type %qT with floating-point type %qT"
+msgstr ""
+
+#: cp/typeck.cc:5104
+#, gcc-internal-format
+msgid "comparison of floating-point type %qT with enumeration type %qT"
+msgstr ""
+
+#: cp/typeck.cc:5107
+#, gcc-internal-format
+msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
+msgstr ""
+
+#: cp/typeck.cc:5111
+#, gcc-internal-format
+msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
+msgstr ""
+
+#: cp/typeck.cc:5120
+#, gcc-internal-format
+msgid "arithmetic between enumeration type %qT and floating-point type %qT"
+msgstr ""
+
+#: cp/typeck.cc:5123
+#, gcc-internal-format
+msgid "arithmetic between floating-point type %qT and enumeration type %qT"
+msgstr ""
+
+#: cp/typeck.cc:5126
+#, gcc-internal-format
+msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
+msgstr ""
+
+#: cp/typeck.cc:5130
+#, gcc-internal-format
+msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
+msgstr ""
+
+#: cp/typeck.cc:5265 cp/typeck.cc:5277
+#, gcc-internal-format
+msgid "assuming cast to type %qT from overloaded function"
+msgstr ""
+
+#: cp/typeck.cc:5391
+#, gcc-internal-format
+msgid "NULL used in arithmetic"
+msgstr ""
+
+#: cp/typeck.cc:5853 cp/typeck.cc:5862 cp/typeck.cc:6163 cp/typeck.cc:6172
+#, gcc-internal-format
+msgid "ISO C++ forbids comparison between pointer and integer"
+msgstr ""
+
+#: cp/typeck.cc:6085 cp/typeck.cc:6098
+#, gcc-internal-format
+msgid "operand types are %qT and %qT"
+msgstr ""
+
+#: cp/typeck.cc:6121
+#, gcc-internal-format
+msgid "three-way comparison of vectors"
+msgstr ""
+
+#: cp/typeck.cc:6155
+#, gcc-internal-format
+msgid "ordered comparison of pointer with integer zero (%qT and %qT)"
+msgstr ""
+
+#: cp/typeck.cc:6202
+#, gcc-internal-format
+msgid "unordered comparison on non-floating-point argument"
+msgstr ""
+
+#: cp/typeck.cc:6268
+msgid "implicit conversion from %qH to %qI to match other operand of binary expression"
+msgstr ""
+
+#: cp/typeck.cc:6377
+#, gcc-internal-format
+msgid "invalid operands of types %qT and %qT to binary %qO"
+msgstr ""
+
+#: cp/typeck.cc:6778
+#, gcc-internal-format
+msgid "ISO C++ forbids using pointer of type %<void *%> in subtraction"
+msgstr ""
+
+#: cp/typeck.cc:6786
+#, gcc-internal-format
+msgid "ISO C++ forbids using pointer to a function in subtraction"
+msgstr ""
+
+#: cp/typeck.cc:6794
+#, gcc-internal-format
+msgid "ISO C++ forbids using pointer to a method in subtraction"
+msgstr ""
+
+#: cp/typeck.cc:6847
+#, gcc-internal-format
+msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+msgstr ""
+
+#: cp/typeck.cc:6924
+#, gcc-internal-format
+msgid "taking address of constructor %qD"
+msgstr ""
+
+#: cp/typeck.cc:6925
+#, gcc-internal-format
+msgid "taking address of destructor %qD"
+msgstr ""
+
+#: cp/typeck.cc:6941
+#, gcc-internal-format
+msgid "invalid use of %qE to form a pointer-to-member-function"
+msgstr ""
+
+#: cp/typeck.cc:6944
+#, gcc-internal-format
+msgid "  a qualified-id is required"
+msgstr ""
+
+#: cp/typeck.cc:6951
+#, gcc-internal-format
+msgid "parentheses around %qE cannot be used to form a pointer-to-member-function"
+msgstr ""
+
+#: cp/typeck.cc:7146
+#, gcc-internal-format
+msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
+msgstr ""
+
+#: cp/typeck.cc:7152
+#, gcc-internal-format
+msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
+msgstr ""
+
+#: cp/typeck.cc:7158
+#, gcc-internal-format
+msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
+msgstr ""
+
+#: cp/typeck.cc:7164
+#, gcc-internal-format
+msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
+msgstr ""
+
+#: cp/typeck.cc:7169
+#, gcc-internal-format
+msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
+msgstr ""
+
+#. Make this a permerror because we used to accept it.
+#: cp/typeck.cc:7202
+#, gcc-internal-format
+msgid "taking address of rvalue"
+msgstr ""
+
+#: cp/typeck.cc:7219
+#, gcc-internal-format
+msgid "ISO C++ forbids taking address of function %<::main%>"
+msgstr ""
+
+#: cp/typeck.cc:7277
+#, gcc-internal-format
+msgid "cannot create pointer to reference member %qD"
+msgstr ""
+
+#: cp/typeck.cc:7312 cp/typeck.cc:7888 rust/backend/rust-tree.cc:4714
+#, gcc-internal-format
+msgid "attempt to take address of bit-field"
+msgstr ""
+
+#: cp/typeck.cc:7474
+#, gcc-internal-format
+msgid "%<~%> on an expression of type %<bool%>"
+msgstr ""
+
+#: cp/typeck.cc:7475
+#, gcc-internal-format
+msgid "did you mean to use logical not (%<!%>)?"
+msgstr ""
+
+#: cp/typeck.cc:7607
+#, gcc-internal-format
+msgid "ISO C++ forbids incrementing an enum"
+msgstr ""
+
+#: cp/typeck.cc:7608
+#, gcc-internal-format
+msgid "ISO C++ forbids decrementing an enum"
+msgstr ""
+
+#: cp/typeck.cc:7624
+#, gcc-internal-format
+msgid "cannot increment a pointer to incomplete type %qT"
+msgstr ""
+
+#: cp/typeck.cc:7626
+#, gcc-internal-format
+msgid "cannot decrement a pointer to incomplete type %qT"
+msgstr ""
+
+#: cp/typeck.cc:7638
+#, gcc-internal-format
+msgid "ISO C++ forbids incrementing a pointer of type %qT"
+msgstr ""
+
+#: cp/typeck.cc:7640
+#, gcc-internal-format
+msgid "ISO C++ forbids decrementing a pointer of type %qT"
+msgstr ""
+
+#: cp/typeck.cc:7680
+#, gcc-internal-format
+msgid "%qs expression of %<volatile%>-qualified type is deprecated"
+msgstr ""
+
+#: cp/typeck.cc:7693
+#, gcc-internal-format
+msgid "use of an operand of type %qT in %<operator--%> is forbidden"
+msgstr ""
+
+#: cp/typeck.cc:7703
+#, gcc-internal-format
+msgid "use of an operand of type %qT in %<operator++%> is forbidden in C++17"
+msgstr ""
+
+#: cp/typeck.cc:7711
+#, gcc-internal-format
+msgid "use of an operand of type %qT in %<operator++%> is deprecated"
+msgstr ""
+
+#: cp/typeck.cc:7900 rust/backend/rust-tree.cc:4726
+#, gcc-internal-format
+msgid "cannot take the address of %<this%>, which is an rvalue expression"
+msgstr ""
+
+#: cp/typeck.cc:7922 d/d-codegen.cc:719 rust/backend/rust-tree.cc:4745
+#, gcc-internal-format
+msgid "address of explicit register variable %qD requested"
+msgstr ""
+
+#: cp/typeck.cc:7927 rust/backend/rust-tree.cc:4752
+#, gcc-internal-format
+msgid "address requested for %qD, which is declared %<register%>"
+msgstr ""
+
+#: cp/typeck.cc:7998
+#, gcc-internal-format
+msgid "list-initializer for non-class type must not be parenthesized"
+msgstr ""
+
+#: cp/typeck.cc:8010
+#, gcc-internal-format
+msgid "expression list treated as compound expression in initializer"
+msgstr ""
+
+#: cp/typeck.cc:8014
+#, gcc-internal-format
+msgid "expression list treated as compound expression in mem-initializer"
+msgstr ""
+
+#: cp/typeck.cc:8018
+#, gcc-internal-format
+msgid "expression list treated as compound expression in functional cast"
+msgstr ""
+
+#: cp/typeck.cc:8056
+#, gcc-internal-format, gfc-internal-format
+msgid "%s expression list treated as compound expression"
+msgstr ""
+
+#: cp/typeck.cc:8157
+#, gcc-internal-format
+msgid "no context to resolve type of %qE"
+msgstr ""
+
+#: cp/typeck.cc:8194
+#, gcc-internal-format
+msgid "cast from type %qT to type %qT casts away qualifiers"
+msgstr ""
+
+#: cp/typeck.cc:8200
+#, gcc-internal-format
+msgid "%<static_cast%> from type %qT to type %qT casts away qualifiers"
+msgstr ""
+
+#: cp/typeck.cc:8207
+#, gcc-internal-format
+msgid "%<reinterpret_cast%> from type %qT to type %qT casts away qualifiers"
+msgstr ""
+
+#: cp/typeck.cc:8233
+#, gcc-internal-format
+msgid "useless cast to type %q#T"
+msgstr ""
+
+#: cp/typeck.cc:8247
+#, gcc-internal-format
+msgid "type qualifiers ignored on cast result type"
+msgstr ""
+
+#: cp/typeck.cc:8695
+#, gcc-internal-format
+msgid "invalid %<static_cast%> from type %qT to type %qT"
+msgstr ""
+
+#: cp/typeck.cc:8701 cp/typeck.cc:8707 cp/typeck.cc:10418
+#, gcc-internal-format
+msgid "class type %qT is incomplete"
+msgstr ""
+
+#: cp/typeck.cc:8735
+msgid "converting from %qH to %qI"
+msgstr ""
+
+#: cp/typeck.cc:8810
+#, gcc-internal-format
+msgid "invalid cast of a prvalue expression of type %qT to type %qT"
+msgstr ""
+
+#: cp/typeck.cc:8880
+msgid "cast from %qH to %qI loses precision"
+msgstr ""
+
+#: cp/typeck.cc:8905
+msgid "cast between incompatible function types from %qH to %qI"
+msgstr ""
+
+#: cp/typeck.cc:8916
+msgid "cast between incompatible pointer to member types from %qH to %qI"
+msgstr ""
+
+#: cp/typeck.cc:8937 cp/typeck.cc:9127
+msgid "cast from %qH to %qI increases required alignment of target type"
+msgstr ""
+
+#: cp/typeck.cc:8954
+#, gcc-internal-format
+msgid "casting between pointer-to-function and pointer-to-object is conditionally-supported"
+msgstr ""
+
+#: cp/typeck.cc:8968
+#, gcc-internal-format
+msgid "invalid cast from type %qT to type %qT"
+msgstr ""
+
+#: cp/typeck.cc:9041
+#, gcc-internal-format
+msgid "invalid use of %<const_cast%> with type %qT, which is not a pointer, reference, nor a pointer-to-data-member type"
+msgstr ""
+
+#: cp/typeck.cc:9050
+#, gcc-internal-format
+msgid "invalid use of %<const_cast%> with type %qT, which is a pointer or reference to a function type"
+msgstr ""
+
+#: cp/typeck.cc:9092
+#, gcc-internal-format
+msgid "invalid %<const_cast%> of an rvalue of type %qT to type %qT"
+msgstr ""
+
+#: cp/typeck.cc:9162
+#, gcc-internal-format
+msgid "invalid %<const_cast%> from type %qT to type %qT"
+msgstr ""
+
+#: cp/typeck.cc:9263 cp/typeck.cc:9272
+#, gcc-internal-format
+msgid "ISO C++ forbids casting to an array type %qT"
+msgstr ""
+
+#: cp/typeck.cc:9281
+#, gcc-internal-format
+msgid "invalid cast to function type %qT"
+msgstr ""
+
+#: cp/typeck.cc:9394
+#, gcc-internal-format
+msgid "moving %qE of type %qT to itself"
+msgstr ""
+
+#: cp/typeck.cc:9395 cp/typeck.cc:10947 cp/typeck.cc:10963 cp/typeck.cc:10988
+#: cp/typeck.cc:11025
+#, gcc-internal-format
+msgid "remove %<std::move%> call"
+msgstr ""
+
+#: cp/typeck.cc:9655
+#, gcc-internal-format
+msgid "  in evaluation of %<%Q(%#T, %#T)%>"
+msgstr ""
+
+#: cp/typeck.cc:9715
+#, gcc-internal-format
+msgid "assigning to an array from an initializer list"
+msgstr ""
+
+#: cp/typeck.cc:9742
+#, gcc-internal-format
+msgid "incompatible types in assignment of %qT to %qT"
+msgstr ""
+
+#: cp/typeck.cc:9758
+#, gcc-internal-format
+msgid "array used as initializer"
+msgstr ""
+
+#: cp/typeck.cc:9760
+#, gcc-internal-format
+msgid "invalid array assignment"
+msgstr ""
+
+#: cp/typeck.cc:9896
+#, gcc-internal-format
+msgid "   in pointer to member function conversion"
+msgstr ""
+
+#: cp/typeck.cc:9910
+#, gcc-internal-format
+msgid "pointer to member conversion via virtual base %qT"
+msgstr ""
+
+#: cp/typeck.cc:9957 cp/typeck.cc:9976
+#, gcc-internal-format
+msgid "   in pointer to member conversion"
+msgstr ""
+
+#: cp/typeck.cc:10057
+#, gcc-internal-format
+msgid "invalid conversion to type %qT from type %qT"
+msgstr ""
+
+#: cp/typeck.cc:10377
+msgid "cannot convert %qH to %qI in default argument"
+msgstr ""
+
+#: cp/typeck.cc:10382
+msgid "cannot convert %qH to %qI in argument passing"
+msgstr ""
+
+#: cp/typeck.cc:10391
+msgid "cannot convert %qH to %qI in initialization"
+msgstr ""
+
+#: cp/typeck.cc:10395
+msgid "cannot convert %qH to %qI in return"
+msgstr ""
+
+#: cp/typeck.cc:10400
+msgid "cannot convert %qH to %qI in assignment"
+msgstr ""
+
+#: cp/typeck.cc:10436
+#, gcc-internal-format
+msgid "parameter %qP of %qD might be a candidate for a format attribute"
+msgstr ""
+
+#: cp/typeck.cc:10440
+#, gcc-internal-format
+msgid "parameter might be a candidate for a format attribute"
+msgstr ""
+
+#: cp/typeck.cc:10445
+#, gcc-internal-format
+msgid "target of conversion might be a candidate for a format attribute"
+msgstr ""
+
+#: cp/typeck.cc:10450
+#, gcc-internal-format
+msgid "target of initialization might be a candidate for a format attribute"
+msgstr ""
+
+#: cp/typeck.cc:10460
+#, gcc-internal-format
+msgid "left-hand side of assignment might be a candidate for a format attribute"
+msgstr ""
+
+#: cp/typeck.cc:10546
+#, gcc-internal-format
+msgid "in passing argument %P of %qD"
+msgstr ""
+
+#: cp/typeck.cc:10630
+#, gcc-internal-format
+msgid "returning reference to temporary"
+msgstr ""
+
+#: cp/typeck.cc:10633
+#, gcc-internal-format
+msgid "returning pointer to temporary"
+msgstr ""
+
+#: cp/typeck.cc:10636
+#, gcc-internal-format
+msgid "returning temporary %<initializer_list%> does not extend the lifetime of the underlying array"
+msgstr ""
+
+#: cp/typeck.cc:10672
+#, gcc-internal-format
+msgid "reference to local variable %qD returned"
+msgstr ""
+
+#: cp/typeck.cc:10676
+#, gcc-internal-format
+msgid "returning local %<initializer_list%> variable %qD does not extend the lifetime of the underlying array"
+msgstr ""
+
+#: cp/typeck.cc:10682
+#, gcc-internal-format
+msgid "address of label %qD returned"
+msgstr ""
+
+#: cp/typeck.cc:10686
+#, gcc-internal-format
+msgid "address of local variable %qD returned"
+msgstr ""
+
+#: cp/typeck.cc:10946
+#, gcc-internal-format
+msgid "moving a temporary object prevents copy elision"
+msgstr ""
+
+#: cp/typeck.cc:10961
+#, gcc-internal-format
+msgid "moving a local object in a return statement prevents copy elision"
+msgstr ""
+
+#: cp/typeck.cc:10987 cp/typeck.cc:11022
+#, gcc-internal-format
+msgid "redundant move in return statement"
+msgstr ""
+
+#: cp/typeck.cc:11024
+#, gcc-internal-format
+msgid "redundant move in initialization"
+msgstr ""
+
+#: cp/typeck.cc:11062
+#, gcc-internal-format
+msgid "returning a value from a destructor"
+msgstr ""
+
+#. If a return statement appears in a handler of the
+#. function-try-block of a constructor, the program is ill-formed.
+#: cp/typeck.cc:11074
+#, gcc-internal-format
+msgid "cannot return from a handler of a function-try-block of a constructor"
+msgstr ""
+
+#. You can't return a value from a constructor.
+#: cp/typeck.cc:11077
+#, gcc-internal-format
+msgid "returning a value from a constructor"
+msgstr ""
+
+#. Give a helpful error message.
+#: cp/typeck.cc:11116 cp/typeck.cc:11162
+#, gcc-internal-format
+msgid "return-statement with no value, in function returning %qT"
+msgstr ""
+
+#: cp/typeck.cc:11124
+#, gcc-internal-format
+msgid "returning initializer list"
+msgstr ""
+
+#: cp/typeck.cc:11143
+#, gcc-internal-format
+msgid "inconsistent types %qT and %qT deduced for lambda return type"
+msgstr ""
+
+#: cp/typeck.cc:11146
+#, gcc-internal-format
+msgid "inconsistent deduction for auto return type: %qT and then %qT"
+msgstr ""
+
+#: cp/typeck.cc:11181
+#, gcc-internal-format
+msgid "return-statement with a value, in function returning %qT"
+msgstr ""
+
+#: cp/typeck.cc:11210
+#, gcc-internal-format
+msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (or %<-fcheck-new%> is in effect)"
+msgstr ""
+
+#: cp/typeck.cc:11299
+#, gcc-internal-format
+msgid "not eliding copy on return from %qD"
+msgstr ""
+
+#: cp/typeck.cc:11311
+#, gcc-internal-format
+msgid "not eliding copy on return in %qD"
+msgstr ""
+
+#: cp/typeck.cc:11898
+#, gcc-internal-format
+msgid "using rvalue as lvalue"
+msgstr ""
+
+#: cp/typeck2.cc:51
+#, gcc-internal-format
+msgid "type %qT is not a base type for type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:107
+#, gcc-internal-format
+msgid "assignment of constant field %qD"
+msgstr ""
+
+#: cp/typeck2.cc:108
+#, gcc-internal-format
+msgid "constant field %qD used as %<asm%> output"
+msgstr ""
+
+#: cp/typeck2.cc:109
+#, gcc-internal-format
+msgid "increment of constant field %qD"
+msgstr ""
+
+#: cp/typeck2.cc:110
+#, gcc-internal-format
+msgid "decrement of constant field %qD"
+msgstr ""
+
+#: cp/typeck2.cc:117
+#, gcc-internal-format
+msgid "assignment of read-only reference %qD"
+msgstr ""
+
+#: cp/typeck2.cc:118
+#, gcc-internal-format
+msgid "read-only reference %qD used as %<asm%> output"
+msgstr ""
+
+#: cp/typeck2.cc:119
+#, gcc-internal-format
+msgid "increment of read-only reference %qD"
+msgstr ""
+
+#: cp/typeck2.cc:120
+#, gcc-internal-format
+msgid "decrement of read-only reference %qD"
+msgstr ""
+
+#: cp/typeck2.cc:175
+#, gcc-internal-format
+msgid "cannot declare variable %q+D to be of abstract type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:180
+#, gcc-internal-format
+msgid "cannot declare parameter %q+D to be of abstract type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:183
+#, gcc-internal-format
+msgid "cannot declare parameter to be of abstract type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:187
+#, gcc-internal-format
+msgid "cannot declare field %q+D to be of abstract type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:191
+#, gcc-internal-format
+msgid "invalid abstract return type for member function %q+#D"
+msgstr ""
+
+#: cp/typeck2.cc:193
+#, gcc-internal-format
+msgid "invalid abstract return type for function %q+#D"
+msgstr ""
+
+#. Here we do not have location information.
+#: cp/typeck2.cc:196
+#, gcc-internal-format
+msgid "invalid abstract type %qT for %qE"
+msgstr ""
+
+#: cp/typeck2.cc:198
+#, gcc-internal-format
+msgid "invalid abstract type for %q+D"
+msgstr ""
+
+#: cp/typeck2.cc:203
+#, gcc-internal-format
+msgid "creating array of %qT, which is an abstract class type"
+msgstr ""
+
+#: cp/typeck2.cc:206
+#, gcc-internal-format
+msgid "invalid cast to abstract class type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:209
+#, gcc-internal-format
+msgid "invalid new-expression of abstract class type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:212
+#, gcc-internal-format
+msgid "invalid abstract return type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:215
+#, gcc-internal-format
+msgid "invalid abstract parameter type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:218
+#, gcc-internal-format
+msgid "expression of abstract class type %qT cannot be used in throw-expression"
+msgstr ""
+
+#: cp/typeck2.cc:222
+#, gcc-internal-format
+msgid "cannot declare %<catch%> parameter to be of abstract class type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:226
+#, gcc-internal-format
+msgid "cannot allocate an object of abstract type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:236
+#, gcc-internal-format
+msgid "  because the following virtual functions are pure within %qT:"
+msgstr ""
+
+#: cp/typeck2.cc:242
+#, gcc-internal-format
+msgid "    %#qD"
+msgstr ""
+
+#: cp/typeck2.cc:282
+#, gcc-internal-format
+msgid "definition of %q#T is not complete until the closing brace"
+msgstr ""
+
+#: cp/typeck2.cc:285
+#, gcc-internal-format
+msgid "forward declaration of %q#T"
+msgstr ""
+
+#: cp/typeck2.cc:287
+#, gcc-internal-format
+msgid "declaration of %q#T"
+msgstr ""
+
+#: cp/typeck2.cc:314
+#, gcc-internal-format
+msgid "%qD has incomplete type"
+msgstr ""
+
+#: cp/typeck2.cc:328
+#, gcc-internal-format
+msgid "invalid use of incomplete type %q#T"
+msgstr ""
+
+#: cp/typeck2.cc:364 rust/backend/rust-tree.cc:3936
+#, gcc-internal-format
+msgid "invalid use of member function %qD (did you forget the %<()%> ?)"
+msgstr ""
+
+#: cp/typeck2.cc:369 rust/backend/rust-tree.cc:3942
+#, gcc-internal-format
+msgid "invalid use of member %qD (did you forget the %<&%> ?)"
+msgstr ""
+
+#: cp/typeck2.cc:379
+#, gcc-internal-format
+msgid "invalid use of placeholder %qT"
+msgstr ""
+
+#: cp/typeck2.cc:386
+#, gcc-internal-format
+msgid "invalid use of template type parameter %qT"
+msgstr ""
+
+#: cp/typeck2.cc:391
+#, gcc-internal-format
+msgid "invalid use of template template parameter %qT"
+msgstr ""
+
+#: cp/typeck2.cc:397
+#, gcc-internal-format
+msgid "invalid use of pack expansion %qT"
+msgstr ""
+
+#: cp/typeck2.cc:403
+#, gcc-internal-format
+msgid "invalid use of dependent type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:410 rust/backend/rust-tree.cc:3952
+#, gcc-internal-format
+msgid "invalid use of brace-enclosed initializer list"
+msgstr ""
+
+#: cp/typeck2.cc:418 rust/backend/rust-tree.cc:3960
+#, gcc-internal-format
+msgid "address of overloaded function with no contextual type information"
+msgstr ""
+
+#: cp/typeck2.cc:422 rust/backend/rust-tree.cc:3965
+#, gcc-internal-format
+msgid "overloaded function with no contextual type information"
+msgstr ""
+
+#: cp/typeck2.cc:425 rust/backend/rust-tree.cc:3969
+#, gcc-internal-format
+msgid "insufficient contextual information to determine type"
+msgstr ""
+
+#: cp/typeck2.cc:838
+#, gcc-internal-format
+msgid "constructor syntax used, but no constructor declared for type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:889 cp/typeck2.cc:906
+#, gcc-internal-format
+msgid "%<constinit%> variable %qD does not have a constant initializer"
+msgstr ""
+
+#: cp/typeck2.cc:1094
+msgid "narrowing conversion of %qE from %qH to %qI is ill-formed in C++11"
+msgstr ""
+
+#: cp/typeck2.cc:1106 cp/typeck2.cc:1118
+msgid "narrowing conversion of %qE from %qH to %qI"
+msgstr ""
+
+#: cp/typeck2.cc:1109
+#, gcc-internal-format
+msgid " the expression has a constant value but is not a C++ constant-expression"
+msgstr ""
+
+#: cp/typeck2.cc:1281
+#, gcc-internal-format
+msgid "initializer-string for %qT is too long"
+msgstr ""
+
+#: cp/typeck2.cc:1344
+#, gcc-internal-format
+msgid "initializing a base class of type %qT results in object slicing"
+msgstr ""
+
+#: cp/typeck2.cc:1346
+#, gcc-internal-format
+msgid "remove %<{ }%> around initializer"
+msgstr ""
+
+#: cp/typeck2.cc:1366
+#, gcc-internal-format
+msgid "cannot initialize aggregate of type %qT with a compound literal"
+msgstr ""
+
+#: cp/typeck2.cc:1826 cp/typeck2.cc:1857
+#, gcc-internal-format
+msgid "missing initializer for member %qD"
+msgstr ""
+
+#: cp/typeck2.cc:1833
+#, gcc-internal-format
+msgid "member %qD is uninitialized reference"
+msgstr ""
+
+#: cp/typeck2.cc:1840
+#, gcc-internal-format
+msgid "member %qD with uninitialized reference fields"
+msgstr ""
+
+#: cp/typeck2.cc:1926
+#, gcc-internal-format
+msgid "designator order for field %qD does not match declaration order in %qT"
+msgstr ""
+
+#: cp/typeck2.cc:1999
+#, gcc-internal-format
+msgid "no field %qD found in union being initialized"
+msgstr ""
+
+#: cp/typeck2.cc:2010
+#, gcc-internal-format
+msgid "index value instead of field name in union initializer"
+msgstr ""
+
+#: cp/typeck2.cc:2225
+#, gcc-internal-format
+msgid "circular pointer delegation detected"
+msgstr ""
+
+#: cp/typeck2.cc:2239
+#, gcc-internal-format
+msgid "base operand of %<->%> has non-pointer type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:2269
+#, gcc-internal-format
+msgid "result of %<operator->()%> yields non-pointer result"
+msgstr ""
+
+#: cp/typeck2.cc:2271
+#, gcc-internal-format
+msgid "base operand of %<->%> is not a pointer"
+msgstr ""
+
+#: cp/typeck2.cc:2298
+#, gcc-internal-format
+msgid "%qE cannot be used as a member pointer, since it is of type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:2307
+#, gcc-internal-format
+msgid "cannot apply member pointer %qE to %qE, which is of non-class type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:2329
+#, gcc-internal-format
+msgid "pointer to member type %qT incompatible with object type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:2391
+#, gcc-internal-format
+msgid "pointer-to-member-function type %qT requires an rvalue"
+msgstr ""
+
+#: cp/typeck2.cc:2402
+#, gcc-internal-format
+msgid "pointer-to-member-function type %qT requires an lvalue"
+msgstr ""
+
+#: cp/typeck2.cc:2410
+#, gcc-internal-format
+msgid "pointer-to-member-function type %qT requires an lvalue before C++20"
+msgstr ""
+
+#: cp/typeck2.cc:2451
+#, gcc-internal-format
+msgid "functional cast to array type %qT"
+msgstr ""
+
+#: cp/typeck2.cc:2468
+#, gcc-internal-format
+msgid "%<auto(x)%> cannot be constrained"
+msgstr ""
+
+#: cp/typeck2.cc:2473
+#, gcc-internal-format
+msgid "%<auto(x)%> only available with %<-std=c++2b%> or %<-std=gnu++2b%>"
+msgstr ""
+
+#: cp/typeck2.cc:2498
+#, gcc-internal-format
+msgid "invalid value-initialization of reference type"
+msgstr ""
+
+#: cp/typeck2.cc:2739
+#, gcc-internal-format
+msgid "call to function %qD which throws incomplete type %q#T"
+msgstr ""
+
+#: cp/typeck2.cc:2742
+#, gcc-internal-format
+msgid "call to function which throws incomplete type %q#T"
+msgstr ""
+
+#: cp/vtable-class-hierarchy.cc:706
+#, gcc-internal-format
+msgid "unable to open log file %<vtv_class_set_sizes.log%>: %m"
+msgstr ""
+
+#: cp/vtable-class-hierarchy.cc:846
+#, gcc-internal-format
+msgid "unable to open log file %<vtv_set_ptr_data.log%>: %m"
+msgstr ""
+
+#: cp/vtable-class-hierarchy.cc:1095
+#, gcc-internal-format
+msgid "unable to open log file %<vtv_count_data.log%>: %m"
+msgstr ""
+
+#: d/d-attribs.cc:375 d/d-attribs.cc:392
+#, gcc-internal-format
+msgid "unknown attribute %qs"
+msgstr ""
+
+#: d/d-attribs.cc:1153
+#, gcc-internal-format
+msgid "%q+D declared weak after being used"
+msgstr ""
+
+#: d/d-attribs.cc:1532
+#, gcc-internal-format
+msgid "only %<inbranch%> and %<notinbranch%> flags are allowed for %<simd%> attribute"
+msgstr ""
+
+#: d/d-builtins.cc:824
+#, gcc-internal-format
+msgid "conflicting types for built-in function %qs; expected %qs"
+msgstr ""
+
+#: d/d-codegen.cc:331
+#, gcc-internal-format
+msgid "cannot determine the length of a %qs"
+msgstr ""
+
+#: d/d-codegen.cc:1242
+#, gcc-internal-format
+msgid "overlapping initializer for field %qT.%qD"
+msgstr ""
+
+#: d/d-codegen.cc:1437
+#, gcc-internal-format
+msgid "the address of %qD will never be %<null%>"
+msgstr ""
+
+#: d/d-codegen.cc:2222
+#, gcc-internal-format
+msgid "need %<this%> to access member %qE"
+msgstr ""
+
+#: d/d-codegen.cc:2370
+#, gcc-internal-format
+msgid "tried to perform floating-point modulo division on %qT"
+msgstr ""
+
+#: d/d-codegen.cc:2421
+#, gcc-internal-format
+msgid "cannot get frame pointer to %qs"
+msgstr ""
+
+#. Should instead error on line that references `fd'.
+#: d/d-codegen.cc:2447
+#, gcc-internal-format
+msgid "nested function missing body"
+msgstr ""
+
+#: d/d-codegen.cc:2489
+#, gcc-internal-format
+msgid "%qs is a nested function and cannot be accessed from %qs"
+msgstr ""
+
+#: d/d-codegen.cc:2798
+#, gcc-internal-format
+msgid "variable %qs has scoped destruction, cannot build closure"
+msgstr ""
+
+#: d/d-codegen.cc:2806
+#, gcc-internal-format
+msgid "explicit register variable %qs cannot be used in nested function"
+msgstr ""
+
+#: d/d-codegen.cc:3031
+#, gcc-internal-format
+msgid "forward reference to frame of %qs"
+msgstr ""
+
+#: d/d-convert.cc:378
+#, gcc-internal-format
+msgid "cannot convert a delegate expression to %qs"
+msgstr ""
+
+#: d/d-convert.cc:394
+#, gcc-internal-format
+msgid "cannot convert struct %qs to %qs"
+msgstr ""
+
+#. Casting from a C++ interface to a class/non-C++ interface
+#. always results in null as there is no run-time information,
+#. and no way one can derive from the other.
+#: d/d-convert.cc:441
+#, gcc-internal-format
+msgid "cast to %qs will produce null result"
+msgstr ""
+
+#: d/d-convert.cc:481
+#, gcc-internal-format
+msgid "cannot cast %qs to %qs since sizes do not line up"
+msgstr ""
+
+#: d/d-convert.cc:515
+#, gcc-internal-format
+msgid "cannot cast expression of type %qs to type %qs"
+msgstr ""
+
+#: d/d-convert.cc:562
+#, gcc-internal-format
+msgid "cannot cast expression of type %qs to %qs"
+msgstr ""
+
+#: d/d-convert.cc:609
+#, gcc-internal-format
+msgid "cast from %qs to %qs will produce zero result"
+msgstr ""
+
+#: d/d-convert.cc:748
+#, gcc-internal-format
+msgid "cannot convert parameter %qs from type %qs to type %qs in assignment"
+msgstr ""
+
+#: d/d-convert.cc:754
+#, gcc-internal-format
+msgid "cannot convert parameter %qs from type %qs to type %qs in argument passing"
+msgstr ""
+
+#: d/d-convert.cc:759
+#, gcc-internal-format
+msgid "parameters of type %<va_list%> {aka %qs} are decayed to pointer types, and require %<va_copy%> to be converted back into a static array type"
+msgstr ""
+
+#: d/d-lang.cc:463
+#, gcc-internal-format
+msgid "bad argument for %<-fdebug%>: %qs"
+msgstr ""
+
+#: d/d-lang.cc:517
+#, gcc-internal-format
+msgid "bad argument for %<-fextern-std%>: %qs"
+msgstr ""
+
+#: d/d-lang.cc:536
+#, gcc-internal-format
+msgid "bad argument for %<-fmodule-file%>: %qs"
+msgstr ""
+
+#: d/d-lang.cc:698
+#, gcc-internal-format
+msgid "bad argument for %<-fversion%>: %qs"
+msgstr ""
+
+#: d/d-lang.cc:968
+#, gcc-internal-format
+msgid "unable to open %s for writing: %m"
+msgstr ""
+
+#: d/d-lang.cc:975
+#, gcc-internal-format
+msgid "writing output file %s: %m"
+msgstr ""
+
+#: d/d-lang.cc:995
+#, gcc-internal-format
+msgid "unable to open %s for reading: %m"
+msgstr ""
+
+#: d/d-lang.cc:1020
+#, gcc-internal-format
+msgid "reading ddoc file %s: %m"
+msgstr ""
+
+#: d/d-lang.cc:1079
+#, gcc-internal-format
+msgid "%<-fonly=%> argument is different from first input file name"
+msgstr ""
+
+#: d/d-lang.cc:1262
+#, gcc-internal-format
+msgid "unable to resolve forward reference in definition"
+msgstr ""
+
+#: d/d-target.cc:156
+#, gcc-internal-format
+msgid "D does not support pointers on this target."
+msgstr ""
+
+#: d/d-target.cc:252
+#, gcc-internal-format
+msgid "cannot represent built-in %<va_list%> type in D"
+msgstr ""
+
+#: d/decl.cc:373
+#, gcc-internal-format, gfc-internal-format
+msgid "pragma(%s) not implemented"
+msgstr ""
+
+#: d/decl.cc:480 d/decl.cc:598 d/decl.cc:672 d/decl.cc:715 d/decl.cc:754
+#, gcc-internal-format
+msgid "had semantic errors when compiling"
+msgstr ""
+
+#. Hiding detected; same name, overlapping specializations.
+#: d/decl.cc:571
+#, gcc-internal-format
+msgid "use of %qs"
+msgstr ""
+
+#: d/decl.cc:573
+#, gcc-internal-format
+msgid "is hidden by %qs"
+msgstr ""
+
+#: d/decl.cc:576
+#, gcc-internal-format
+msgid "use %<alias %s = %s.%s;%> to introduce base class overload set"
+msgstr ""
+
+#: d/decl.cc:812
+#, gcc-internal-format
+msgid "size is too large"
+msgstr ""
+
+#: d/decl.cc:1424
+#, gcc-internal-format
+msgid "function requires a dual-context, which is not yet supported by GDC"
+msgstr ""
+
+#: d/decl.cc:1601
+#, gcc-internal-format
+msgid "explicit register variable %qs declared %<extern%>"
+msgstr ""
+
+#: d/decl.cc:1604
+#, gcc-internal-format
+msgid "explicit register variable %qs declared thread local"
+msgstr ""
+
+#: d/decl.cc:1817
+#, gcc-internal-format
+msgid "mismatch between declaration %qE size (%wd) and its initializer size (%wd)"
+msgstr ""
+
+#: d/expr.cc:569
+#, gcc-internal-format
+msgid "cannot handle comparison of type %<%s == %s%>"
+msgstr ""
+
+#: d/expr.cc:717
+#, gcc-internal-format
+msgid "array concatenation of expression %qs requires the GC and cannot be used with %<-fno-druntime%>"
+msgstr ""
+
+#: d/expr.cc:811
+#, gcc-internal-format
+msgid "appending to array in %qs requires the GC and cannot be used with %<-fno-druntime%>"
+msgstr ""
+
+#. Static arrays have already been handled by the front-end.
+#: d/expr.cc:1286
+#, gcc-internal-format
+msgid "unexpected type for array length: %qs"
+msgstr ""
+
+#: d/expr.cc:1421
+#, gcc-internal-format
+msgid "don%'t know how to delete %qs"
+msgstr ""
+
+#: d/expr.cc:1445
+#, gcc-internal-format
+msgid "%qs is not an associative array"
+msgstr ""
+
+#: d/expr.cc:1729 d/expr.cc:2109
+#, gcc-internal-format
+msgid "need %<this%> to access member %qs"
+msgstr ""
+
+#: d/expr.cc:1811
+#, gcc-internal-format
+msgid "delegates are only for non-static functions"
+msgstr ""
+
+#: d/expr.cc:1883
+#, gcc-internal-format
+msgid "%qs is not a field, but a %qs"
+msgstr ""
+
+#: d/expr.cc:2135
+#, gcc-internal-format
+msgid "recursive reference %qs"
+msgstr ""
+
+#: d/expr.cc:2155 d/expr.cc:3027
+#, gcc-internal-format
+msgid "non-constant expression %qs"
+msgstr ""
+
+#: d/expr.cc:2994
+#, gcc-internal-format
+msgid "%qs is not an expression"
+msgstr ""
+
+#: d/expr.cc:3001
+#, gcc-internal-format
+msgid "type %qs is not an expression"
+msgstr ""
+
+#: d/intrinsics.cc:221
+#, gcc-internal-format
+msgid "mismatch in return type of intrinsic function %qD (%qT, should be %qs)"
+msgstr ""
+
+#: d/intrinsics.cc:235
+#, gcc-internal-format
+msgid "mismatch in argument %u type of intrinsic function %qD (%qT, should be %qs)"
+msgstr ""
+
+#: d/intrinsics.cc:247 d/intrinsics.cc:252
+#, gcc-internal-format
+msgid "mismatch in argument %u type of intrinsic function %qD (%qT, should be %qT)"
+msgstr ""
+
+#: d/intrinsics.cc:437
+#, gcc-internal-format
+msgid "argument %qE cannot be read at compile time"
+msgstr ""
+
+#: d/intrinsics.cc:446
+#, gcc-internal-format
+msgid "element index %qE is out of bounds %<[0 .. %E]%>"
+msgstr ""
+
+#: d/intrinsics.cc:493
+#, gcc-internal-format
+msgid "mismatch in call of intrinsic function %qD"
+msgstr ""
+
+#. It's a D language intrinsic with no library implementation.
+#: d/intrinsics.cc:1479
+#, gcc-internal-format
+msgid "intrinsic function %qE must be directly called"
+msgstr ""
+
+#: d/modules.cc:417
+#, gcc-internal-format
+msgid "%<-fmoduleinfo%> is not supported on this target"
+msgstr ""
+
+#: d/toir.cc:245
+#, gcc-internal-format
+msgid "calling %qE without side effects discards return value of type %qT; prepend a %<cast(void)%> if intentional"
+msgstr ""
+
+#: d/toir.cc:419 d/toir.cc:444
+#, gcc-internal-format
+msgid "cannot %<goto%> into %<try%> block"
+msgstr ""
+
+#: d/toir.cc:422 d/toir.cc:446
+#, gcc-internal-format
+msgid "cannot %<goto%> into %<catch%> block"
+msgstr ""
+
+#: d/toir.cc:461
+#, gcc-internal-format, gfc-internal-format
+msgid "label %s referenced outside of any function"
+msgstr ""
+
+#: d/toir.cc:836
+#, gcc-internal-format, gfc-internal-format
+msgid "cannot handle switch condition of type %s"
+msgstr ""
+
+#: d/toir.cc:1213
+#, gcc-internal-format
+msgid "exception handling disabled; use %<-fexceptions%> to enable"
+msgstr ""
+
+#: d/toir.cc:1220
+#, gcc-internal-format
+msgid "cannot throw C++ classes"
+msgstr ""
+
+#: d/toir.cc:1222
+#, gcc-internal-format
+msgid "cannot throw COM objects"
+msgstr ""
+
+#: d/toir.cc:1355
+#, gcc-internal-format
+msgid "D inline assembler statements are not supported in GDC."
+msgstr ""
+
+#: d/typeinfo.cc:1424
+#, gcc-internal-format
+msgid "expression %qs requires %<object.TypeInfo%> and cannot be used with %<-fno-rtti%>"
+msgstr ""
+
+#: d/typeinfo.cc:1428
+#, gcc-internal-format
+msgid "%<object.TypeInfo%> cannot be used with %<-fno-rtti%>"
+msgstr ""
+
+#: d/typeinfo.cc:1443
+#, gcc-internal-format
+msgid "%<object.TypeInfo%> could not be found, but is implicitly used"
+msgstr ""
+
+#: d/types.cc:161
+#, gcc-internal-format
+msgid "missing or corrupt object.d"
+msgstr ""
+
+#: d/types.cc:902
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid expression for static array dimension: %s"
+msgstr ""
+
+#: d/types.cc:1110
+#, gcc-internal-format
+msgid "size of %qs (%wd) differ from its declared size (%wd)"
+msgstr ""
+
+#: fortran/arith.cc:47
+#, gcc-internal-format, gfc-internal-format
+msgid "Conversion of an Infinity or Not-a-Number at %L to INTEGER"
+msgstr ""
+
+#: fortran/arith.cc:97
+#, gcc-internal-format, gfc-internal-format
+msgid "Arithmetic OK at %L"
+msgstr ""
+
+#: fortran/arith.cc:100
+#, gcc-internal-format, gfc-internal-format
+msgid "Arithmetic overflow at %L"
+msgstr ""
+
+#: fortran/arith.cc:103
+#, gcc-internal-format, gfc-internal-format
+msgid "Arithmetic underflow at %L"
+msgstr ""
+
+#: fortran/arith.cc:106
+#, gcc-internal-format, gfc-internal-format
+msgid "Arithmetic NaN at %L"
+msgstr ""
+
+#: fortran/arith.cc:109
+#, gcc-internal-format, gfc-internal-format
+msgid "Division by zero at %L"
+msgstr ""
+
+#: fortran/arith.cc:112
+#, gcc-internal-format, gfc-internal-format
+msgid "Array operands are incommensurate at %L"
+msgstr ""
+
+#: fortran/arith.cc:115
+#, gcc-internal-format, gfc-internal-format
+msgid "Integer outside symmetric range implied by Standard Fortran at %L"
+msgstr ""
+
+#: fortran/arith.cc:119
+#, gcc-internal-format, gfc-internal-format
+msgid "Illegal type in character concatenation at %L"
+msgstr ""
+
+#: fortran/arith.cc:122
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid type in arithmetic operation at %L"
+msgstr ""
+
+#: fortran/arith.cc:126 fortran/arith.cc:2130
+#, gcc-internal-format
+msgid "gfc_arith_error(): Bad error code"
+msgstr ""
+
+#: fortran/arith.cc:183
+#, gcc-internal-format
+msgid "Fix min_int calculation"
+msgstr ""
+
+#: fortran/arith.cc:578
+#, gcc-internal-format
+msgid "gfc_range_check(): Bad type"
+msgstr ""
+
+#: fortran/arith.cc:651
+#, gcc-internal-format
+msgid "gfc_arith_uminus(): Bad basic type"
+msgstr ""
+
+#: fortran/arith.cc:688
+#, gcc-internal-format
+msgid "gfc_arith_plus(): Bad basic type"
+msgstr ""
+
+#: fortran/arith.cc:725
+#, gcc-internal-format
+msgid "gfc_arith_minus(): Bad basic type"
+msgstr ""
+
+#: fortran/arith.cc:763
+#, gcc-internal-format
+msgid "gfc_arith_times(): Bad basic type"
+msgstr ""
+
+#: fortran/arith.cc:805
+#, gcc-internal-format
+msgid "Integer division truncated to constant %qs at %L"
+msgstr ""
+
+#: fortran/arith.cc:854
+#, gcc-internal-format
+msgid "gfc_arith_divide(): Bad basic type"
+msgstr ""
+
+#: fortran/arith.cc:910
+#, gcc-internal-format
+msgid "arith_power(): Bad base"
+msgstr ""
+
+#: fortran/arith.cc:949
+#, gcc-internal-format, gfc-internal-format
+msgid "Negative exponent of integer has zero result at %L"
+msgstr ""
+
+#: fortran/arith.cc:969
+#, gcc-internal-format, gfc-internal-format
+msgid "Result of exponentiation at %L exceeds the range of %s"
+msgstr ""
+
+#: fortran/arith.cc:1006 fortran/arith.cc:1031
+#, gcc-internal-format, gfc-internal-format
+msgid "Noninteger exponent in an initialization expression at %L"
+msgstr ""
+
+#: fortran/arith.cc:1017
+#, gcc-internal-format, gfc-internal-format
+msgid "Raising a negative REAL at %L to a REAL power is prohibited"
+msgstr ""
+
+#: fortran/arith.cc:1045
+#, gcc-internal-format
+msgid "arith_power(): unknown type"
+msgstr ""
+
+#: fortran/arith.cc:1116
+#, gcc-internal-format
+msgid "compare_real(): Bad operator"
+msgstr ""
+
+#: fortran/arith.cc:1156
+#, gcc-internal-format
+msgid "gfc_compare_expr(): Bad basic type"
+msgstr ""
+
+#: fortran/arith.cc:1777
+#, gcc-internal-format
+msgid "eval_intrinsic(): Bad operator"
+msgstr ""
+
+#: fortran/arith.cc:1836
+#, gcc-internal-format
+msgid "eval_type_intrinsic0(): op NULL"
+msgstr ""
+
+#: fortran/arith.cc:2098
+#, gcc-internal-format, gfc-internal-format
+msgid "Arithmetic OK converting %s to %s at %L"
+msgstr ""
+
+#: fortran/arith.cc:2102
+#, gcc-internal-format
+msgid "Arithmetic overflow converting %s to %s at %L. This check can be disabled with the option %<-fno-range-check%>"
+msgstr ""
+
+#: fortran/arith.cc:2107
+#, gcc-internal-format
+msgid "Arithmetic underflow converting %s to %s at %L. This check can be disabled with the option %<-fno-range-check%>"
+msgstr ""
+
+#: fortran/arith.cc:2112
+#, gcc-internal-format
+msgid "Arithmetic NaN converting %s to %s at %L. This check can be disabled with the option %<-fno-range-check%>"
+msgstr ""
+
+#: fortran/arith.cc:2117
+#, gcc-internal-format, gfc-internal-format
+msgid "Division by zero converting %s to %s at %L"
+msgstr ""
+
+#: fortran/arith.cc:2121
+#, gcc-internal-format, gfc-internal-format
+msgid "Array operands are incommensurate converting %s to %s at %L"
+msgstr ""
+
+#: fortran/arith.cc:2125
+#, gcc-internal-format, gfc-internal-format
+msgid "Integer outside symmetric range implied by Standard Fortran converting %s to %s at %L"
+msgstr ""
+
+#: fortran/arith.cc:2215 fortran/arith.cc:2334 fortran/arith.cc:2397
+#: fortran/arith.cc:2452 fortran/arith.cc:2515 fortran/arith.cc:2587
+#: fortran/arith.cc:2657
+#, gcc-internal-format
+msgid "Conversion from %qs to %qs at %L"
+msgstr ""
+
+#: fortran/arith.cc:2247 fortran/arith.cc:2283 fortran/arith.cc:2325
+#: fortran/arith.cc:2387 fortran/arith.cc:2442 fortran/arith.cc:2505
+#: fortran/arith.cc:2577 fortran/arith.cc:2649
+#, gcc-internal-format
+msgid "Change of value in conversion from %qs to %qs at %L"
+msgstr ""
+
+#: fortran/arith.cc:2491 fortran/arith.cc:2563
+#, gcc-internal-format
+msgid "Non-zero imaginary part discarded in conversion from %qs to %qs at %L"
+msgstr ""
+
+#: fortran/arith.cc:2742
+#, gcc-internal-format
+msgid "The Hollerith constant at %L is truncated in conversion to %qs"
+msgstr ""
+
+#: fortran/arith.cc:2771
+#, gcc-internal-format, gfc-internal-format
+msgid "The character constant at %L is truncated in conversion to %s"
+msgstr ""
+
+#: fortran/array.cc:98 fortran/array.cc:130 fortran/array.cc:158
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid BOZ literal constant used in subscript at %C"
+msgstr ""
+
+#: fortran/array.cc:103
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected array subscript at %C"
+msgstr ""
+
+#: fortran/array.cc:112
+#, gcc-internal-format
+msgid "Unexpected %<*%> in coarray subscript at %C"
+msgstr ""
+
+#: fortran/array.cc:139
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing lower bound in assumed size coarray specification at %C"
+msgstr ""
+
+#: fortran/array.cc:149
+#, gcc-internal-format, gfc-internal-format
+msgid "Strides not allowed in coarray subscript at %C"
+msgstr ""
+
+#: fortran/array.cc:163
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected array subscript stride at %C"
+msgstr ""
+
+#: fortran/array.cc:223
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid form of array reference at %C"
+msgstr ""
+
+#: fortran/array.cc:230
+#, gcc-internal-format, gfc-internal-format
+msgid "Array reference at %C has more than 7 dimensions"
+msgstr ""
+
+#: fortran/array.cc:233 fortran/array.cc:334
+#, gcc-internal-format, gfc-internal-format
+msgid "Array reference at %C cannot have more than %d dimensions"
+msgstr ""
+
+#: fortran/array.cc:248 fortran/array.cc:716 fortran/check.cc:3445
+#: fortran/check.cc:5976 fortran/check.cc:6021 fortran/check.cc:6063
+#: fortran/check.cc:6090 fortran/check.cc:6353 fortran/match.cc:1854
+#: fortran/match.cc:3316 fortran/match.cc:3658 fortran/match.cc:3854
+#: fortran/simplify.cc:3026 fortran/simplify.cc:3056 fortran/simplify.cc:6409
+#: fortran/simplify.cc:8450
+#, gcc-internal-format
+msgid "Coarrays disabled at %C, use %<-fcoarray=%> to enable"
+msgstr ""
+
+#: fortran/array.cc:254
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected coarray designator at %C"
+msgstr ""
+
+#: fortran/array.cc:276
+#, gcc-internal-format, gfc-internal-format
+msgid "TEAM= attribute in %C misplaced"
+msgstr ""
+
+#: fortran/array.cc:288
+#, gcc-internal-format, gfc-internal-format
+msgid "STAT= attribute in %C misplaced"
+msgstr ""
+
+#: fortran/array.cc:297
+#, gcc-internal-format, gfc-internal-format
+msgid "Too few codimensions at %C, expected %d not %d"
+msgstr ""
+
+#: fortran/array.cc:303
+#, gcc-internal-format, gfc-internal-format
+msgid "Too many codimensions at %C, expected %d not %d"
+msgstr ""
+
+#: fortran/array.cc:313 fortran/array.cc:321
+#, gcc-internal-format
+msgid "Unexpected %<*%> for codimension %d of %d at %C"
+msgstr ""
+
+#: fortran/array.cc:316
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid form of coarray reference at %C"
+msgstr ""
+
+#: fortran/array.cc:328
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid codimension %d at %C, only %d codimensions exist"
+msgstr ""
+
+#: fortran/array.cc:392
+#, gcc-internal-format
+msgid "Variable %qs at %L in this context must be constant"
+msgstr ""
+
+#: fortran/array.cc:395
+#, gcc-internal-format, gfc-internal-format
+msgid "Expression at %L in this context must be constant"
+msgstr ""
+
+#. F2018:R821: "assumed-implied-spec  is  [ lower-bound : ] *".
+#: fortran/array.cc:497
+#, gcc-internal-format, gfc-internal-format
+msgid "A lower bound must precede colon in assumed-size array specification at %L"
+msgstr ""
+
+#: fortran/array.cc:509
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected expression in array specification at %C"
+msgstr ""
+
+#: fortran/array.cc:522 fortran/array.cc:554
+#, gcc-internal-format, gfc-internal-format
+msgid "Expecting a scalar INTEGER expression at %C, found %s"
+msgstr ""
+
+#: fortran/array.cc:591
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank array at %C"
+msgstr ""
+
+#: fortran/array.cc:625
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad array specification for implied-shape array at %C"
+msgstr ""
+
+#: fortran/array.cc:641 fortran/array.cc:754
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad array specification for an explicitly shaped array at %C"
+msgstr ""
+
+#: fortran/array.cc:651 fortran/array.cc:764
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad array specification for assumed shape array at %C"
+msgstr ""
+
+#: fortran/array.cc:665 fortran/array.cc:778
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad specification for deferred shape array at %C"
+msgstr ""
+
+#: fortran/array.cc:675 fortran/array.cc:782
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad specification for assumed size array at %C"
+msgstr ""
+
+#: fortran/array.cc:687 fortran/array.cc:794
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected another dimension in array declaration at %C"
+msgstr ""
+
+#: fortran/array.cc:693 fortran/array.cc:722 fortran/array.cc:800
+#, gcc-internal-format, gfc-internal-format
+msgid "Array specification at %C has more than %d dimensions"
+msgstr ""
+
+#: fortran/array.cc:699
+#, gcc-internal-format, gfc-internal-format
+msgid "Array specification at %C with more than 7 dimensions"
+msgstr ""
+
+#: fortran/array.cc:711
+#, gcc-internal-format, gfc-internal-format
+msgid "Coarray declaration at %C"
+msgstr ""
+
+#: fortran/array.cc:808
+#, gcc-internal-format
+msgid "Upper bound of last coarray dimension must be %<*%> at %C"
+msgstr ""
+
+#: fortran/array.cc:882
+#, gcc-internal-format
+msgid "The assumed-rank array %qs at %L shall not have a codimension"
+msgstr ""
+
+#: fortran/array.cc:938
+#, gcc-internal-format
+msgid "rank + corank of %qs exceeds %d at %C"
+msgstr ""
+
+#: fortran/array.cc:1061
+#, gcc-internal-format
+msgid "DO-iterator %qs at %L is inside iterator of the same name"
+msgstr ""
+
+#: fortran/array.cc:1153 fortran/array.cc:1381
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in array constructor at %C"
+msgstr ""
+
+#: fortran/array.cc:1183
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ literal constant at %L cannot appear in an array constructor"
+msgstr ""
+
+#: fortran/array.cc:1192
+#, gcc-internal-format, gfc-internal-format
+msgid "NULL() at %C cannot appear in an array constructor"
+msgstr ""
+
+#: fortran/array.cc:1254
+#, gcc-internal-format, gfc-internal-format
+msgid "[...] style array constructors at %C"
+msgstr ""
+
+#: fortran/array.cc:1274
+#, gcc-internal-format, gfc-internal-format
+msgid "Array constructor including type specification at %C"
+msgstr ""
+
+#: fortran/array.cc:1280 fortran/match.cc:4290
+#, gcc-internal-format, gfc-internal-format
+msgid "Type-spec at %L cannot contain a deferred type parameter"
+msgstr ""
+
+#: fortran/array.cc:1288
+#, gcc-internal-format, gfc-internal-format
+msgid "Type-spec at %L cannot contain an asterisk for a type parameter"
+msgstr ""
+
+#: fortran/array.cc:1306
+#, gcc-internal-format, gfc-internal-format
+msgid "Empty array constructor at %C is not allowed"
+msgstr ""
+
+#: fortran/array.cc:1343 fortran/array.cc:1353
+#, gcc-internal-format, gfc-internal-format
+msgid "Incompatible typespec for array element at %L"
+msgstr ""
+
+#: fortran/array.cc:1428
+#, gcc-internal-format, gfc-internal-format
+msgid "Element in %s array constructor at %L is %s"
+msgstr ""
+
+#: fortran/array.cc:1759
+#, gcc-internal-format, gfc-internal-format
+msgid "Iterator step at %L cannot be zero"
+msgstr ""
+
+#: fortran/array.cc:1918
+#, gcc-internal-format
+msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit.   See %<-fmax-array-constructor%> option"
+msgstr ""
+
+#: fortran/array.cc:2097
+#, gcc-internal-format, gfc-internal-format
+msgid "AC-IMPLIED-DO initial expression references control variable at %L"
+msgstr ""
+
+#: fortran/array.cc:2104
+#, gcc-internal-format, gfc-internal-format
+msgid "AC-IMPLIED-DO final expression references control variable at %L"
+msgstr ""
+
+#: fortran/array.cc:2111
+#, gcc-internal-format, gfc-internal-format
+msgid "AC-IMPLIED-DO step expression references control variable at %L"
+msgstr ""
+
+#: fortran/array.cc:2123
+#, gcc-internal-format, gfc-internal-format
+msgid "Array constructor value at %L shall not be unlimited polymorphic [F2008: C4106]"
+msgstr ""
+
+#: fortran/array.cc:2215
+#, gcc-internal-format
+msgid "Different CHARACTER lengths (%wd/%wd) in array constructor at %L"
+msgstr ""
+
+#: fortran/array.cc:2333
+#, gcc-internal-format
+msgid "spec_dimen_size(): Bad dimension"
+msgstr ""
+
+#: fortran/array.cc:2399
+#, gcc-internal-format
+msgid "gfc_ref_dimen_size(): Bad dimension"
+msgstr ""
+
+#: fortran/array.cc:2403
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad array dimension at %L"
+msgstr ""
+
+#: fortran/array.cc:2541
+#, gcc-internal-format
+msgid "gfc_ref_dimen_size(): Bad dimen_type"
+msgstr ""
+
+#: fortran/array.cc:2592
+#, gcc-internal-format
+msgid "gfc_array_dimen_size(): Bad dimension"
+msgstr ""
+
+#: fortran/array.cc:2644
+#, gcc-internal-format
+msgid "gfc_array_dimen_size(): Bad EXPR_ARRAY expr"
+msgstr ""
+
+#: fortran/array.cc:2792
+#, gcc-internal-format
+msgid "gfc_find_array_ref(): No ref found"
+msgstr ""
+
+#. if (c == 0)
+#: fortran/bbt.cc:119
+#, gcc-internal-format
+msgid "insert_bbt(): Duplicate key found"
+msgstr ""
+
+#: fortran/check.cc:87
+#, gcc-internal-format
+msgid "BOZ literal constant at %L cannot be an actual argument to %qs"
+msgstr ""
+
+#: fortran/check.cc:103
+#, gcc-internal-format
+msgid "Arguments of %qs at %L and %L cannot both be BOZ literal constants"
+msgstr ""
+
+#: fortran/check.cc:123 fortran/resolve.cc:11545
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid use of BOZ literal constant at %L"
+msgstr ""
+
+#: fortran/check.cc:371
+#, gcc-internal-format, gfc-internal-format
+msgid "Failure in conversion of BOZ to REAL at %L"
+msgstr ""
+
+#: fortran/check.cc:477
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be a scalar"
+msgstr ""
+
+#: fortran/check.cc:493
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be %s"
+msgstr ""
+
+#: fortran/check.cc:527
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must have a numeric type"
+msgstr ""
+
+#: fortran/check.cc:542 fortran/check.cc:572
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be INTEGER or REAL"
+msgstr ""
+
+#: fortran/check.cc:560
+#, gcc-internal-format
+msgid "Fortran 2003: Character for %qs argument of %qs intrinsic at %L"
+msgstr ""
+
+#: fortran/check.cc:567
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be INTEGER or REAL or CHARACTER"
+msgstr ""
+
+#: fortran/check.cc:590 fortran/check.cc:3400
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be of intrinsic type"
+msgstr ""
+
+#: fortran/check.cc:605
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be REAL or COMPLEX"
+msgstr ""
+
+#: fortran/check.cc:622
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be INTEGER or PROCEDURE"
+msgstr ""
+
+#: fortran/check.cc:651 fortran/check.cc:7632
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be a constant"
+msgstr ""
+
+#: fortran/check.cc:660
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid kind for %s at %L"
+msgstr ""
+
+#: fortran/check.cc:679
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be double precision"
+msgstr ""
+
+#: fortran/check.cc:702
+#, gcc-internal-format
+msgid "Expected coarray variable as %qs argument to the %s intrinsic at %L"
+msgstr ""
+
+#: fortran/check.cc:719
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be a logical array"
+msgstr ""
+
+#: fortran/check.cc:744
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be an array"
+msgstr ""
+
+#: fortran/check.cc:765
+#, gcc-internal-format
+msgid "%qs at %L must be nonnegative"
+msgstr ""
+
+#: fortran/check.cc:786
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be positive"
+msgstr ""
+
+#: fortran/check.cc:819
+#, gcc-internal-format
+msgid "The absolute value of SHIFT at %L must be less than or equal to BIT_SIZE(%qs)"
+msgstr ""
+
+#: fortran/check.cc:830
+#, gcc-internal-format
+msgid "%qs at %L must be less than or equal to BIT_SIZE(%qs)"
+msgstr ""
+
+#: fortran/check.cc:840
+#, gcc-internal-format
+msgid "%qs at %L must be less than BIT_SIZE(%qs)"
+msgstr ""
+
+#: fortran/check.cc:867
+#, gcc-internal-format
+msgid "%qs at %L must be less than or equal to the BIT_SIZE of INTEGER(KIND=%d)"
+msgstr ""
+
+#: fortran/check.cc:893
+#, gcc-internal-format
+msgid "%<%s + %s%> at %L must be less than or equal to BIT_SIZE(%qs)"
+msgstr ""
+
+#: fortran/check.cc:926
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be the same type and kind as %qs"
+msgstr ""
+
+#: fortran/check.cc:943
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be of rank %d"
+msgstr ""
+
+#: fortran/check.cc:958
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must not be OPTIONAL"
+msgstr ""
+
+#: fortran/check.cc:980
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be ALLOCATABLE"
+msgstr ""
+
+#: fortran/check.cc:998
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be of kind %d"
+msgstr ""
+
+#: fortran/check.cc:1017
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L cannot be INTENT(IN)"
+msgstr ""
+
+#: fortran/check.cc:1044
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be a variable"
+msgstr ""
+
+#: fortran/check.cc:1093
+#, gcc-internal-format
+msgid "%<dim%> argument of %qs intrinsic at %L is not a valid codimension index"
+msgstr ""
+
+#: fortran/check.cc:1145
+#, gcc-internal-format
+msgid "%<dim%> argument of %qs intrinsic at %L is not a valid dimension index"
+msgstr ""
+
+#: fortran/check.cc:1248
+#, gcc-internal-format, gfc-internal-format
+msgid "Unequal character lengths (%ld/%ld) in %s at %L"
+msgstr ""
+
+#: fortran/check.cc:1269
+#, gcc-internal-format
+msgid "Size of %qs argument of %qs intrinsic at %L too small (%wd/%ld)"
+msgstr ""
+
+#: fortran/check.cc:1332
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ literal constant at %L cannot appear in ACHAR intrinsic subprogram"
+msgstr ""
+
+#: fortran/check.cc:1423
+#, gcc-internal-format
+msgid "%qs and %qs arguments of %qs intrinsic at %L must have the same type"
+msgstr ""
+
+#: fortran/check.cc:1432 fortran/check.cc:3717
+#, gcc-internal-format, gfc-internal-format
+msgid "Different type kinds at %L"
+msgstr ""
+
+#: fortran/check.cc:1455
+#, gcc-internal-format
+msgid "NULL at %L is not permitted as actual argument to %qs intrinsic function"
+msgstr ""
+
+#: fortran/check.cc:1477
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be a POINTER"
+msgstr ""
+
+#: fortran/check.cc:1486 fortran/check.cc:1521 fortran/check.cc:4412
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L shall not be coindexed"
+msgstr ""
+
+#: fortran/check.cc:1503
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be a pointer or target VARIABLE or FUNCTION"
+msgstr ""
+
+#: fortran/check.cc:1512
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be a POINTER or a TARGET"
+msgstr ""
+
+#: fortran/check.cc:1539
+#, gcc-internal-format, gfc-internal-format
+msgid "Array section with a vector subscript at %L shall not be the target of a pointer"
+msgstr ""
+
+#: fortran/check.cc:1586
+#, gcc-internal-format, gfc-internal-format
+msgid "ATOM argument at %L to intrinsic function %s shall be an integer of ATOMIC_INT_KIND or a logical of ATOMIC_LOGICAL_KIND"
+msgstr ""
+
+#: fortran/check.cc:1594
+#, gcc-internal-format, gfc-internal-format
+msgid "ATOM argument at %L of the %s intrinsic function shall be a coarray or coindexed"
+msgstr ""
+
+#: fortran/check.cc:1601
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L shall have the same type as %qs at %L"
+msgstr ""
+
+#: fortran/check.cc:1619 fortran/check.cc:1832
+#, gcc-internal-format, gfc-internal-format
+msgid "STAT= argument to %s at %L"
+msgstr ""
+
+#: fortran/check.cc:1638 fortran/check.cc:1772 fortran/check.cc:1869
+#, gcc-internal-format, gfc-internal-format
+msgid "ATOM argument of the %s intrinsic function at %L shall be definable"
+msgstr ""
+
+#: fortran/check.cc:1652 fortran/check.cc:1852
+#, gcc-internal-format, gfc-internal-format
+msgid "ATOM argument at %L to intrinsic function %s shall be an integer of ATOMIC_INT_KIND"
+msgstr ""
+
+#: fortran/check.cc:1672
+#, gcc-internal-format, gfc-internal-format
+msgid "VALUE argument of the %s intrinsic function at %L shall be definable"
+msgstr ""
+
+#: fortran/check.cc:1691 fortran/check.cc:1705 fortran/check.cc:1740
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L not yet supported"
+msgstr ""
+
+#: fortran/check.cc:1725
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L shall specify a valid integer kind"
+msgstr ""
+
+#: fortran/check.cc:1779 fortran/check.cc:1876
+#, gcc-internal-format, gfc-internal-format
+msgid "OLD argument of the %s intrinsic function at %L shall be definable"
+msgstr ""
+
+#: fortran/check.cc:1794
+#, gcc-internal-format, gfc-internal-format
+msgid "EVENT argument at %L to the intrinsic EVENT_QUERY shall be of type EVENT_TYPE"
+msgstr ""
+
+#: fortran/check.cc:1804
+#, gcc-internal-format, gfc-internal-format
+msgid "COUNT argument of the EVENT_QUERY intrinsic function at %L shall be definable"
+msgstr ""
+
+#: fortran/check.cc:1817
+#, gcc-internal-format, gfc-internal-format
+msgid "COUNT argument of the EVENT_QUERY intrinsic function at %L shall have at least the range of the default integer"
+msgstr ""
+
+#: fortran/check.cc:1896
+#, gcc-internal-format, gfc-internal-format
+msgid "Negative argument N at %L"
+msgstr ""
+
+#: fortran/check.cc:1994
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ literal constant at %L cannot appear in CHAR intrinsic subprogram"
+msgstr ""
+
+#: fortran/check.cc:2118 fortran/check.cc:2608
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must not be present if %<x%> is COMPLEX"
+msgstr ""
+
+#: fortran/check.cc:2127 fortran/check.cc:2617
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must have a type of either REAL or INTEGER"
+msgstr ""
+
+#: fortran/check.cc:2137 fortran/check.cc:2143
+#, gcc-internal-format, gfc-internal-format
+msgid "Conversion from %s to default-kind COMPLEX(%d) at %L might lose precision, consider using the KIND argument"
+msgstr ""
+
+#: fortran/check.cc:2165
+#, gcc-internal-format
+msgid "Argument %<A%> with INTENT(INOUT) at %L of the intrinsic subroutine %s shall not have a vector subscript"
+msgstr ""
+
+#: fortran/check.cc:2173
+#, gcc-internal-format, gfc-internal-format
+msgid "The A argument at %L to the intrinsic %s shall not be coindexed"
+msgstr ""
+
+#: fortran/check.cc:2196
+#, gcc-internal-format, gfc-internal-format
+msgid "The stat= argument at %L must be a kind=4 integer variable"
+msgstr ""
+
+#: fortran/check.cc:2212
+#, gcc-internal-format, gfc-internal-format
+msgid "The errmsg= argument at %L must be a default-kind character variable"
+msgstr ""
+
+#: fortran/check.cc:2220
+#, gcc-internal-format
+msgid "Coarrays disabled at %L, use %<-fcoarray=%> to enable"
+msgstr ""
+
+#: fortran/check.cc:2235
+#, gcc-internal-format, gfc-internal-format
+msgid "Support for the A argument at %L which is polymorphic A argument or has allocatable components is not yet implemented"
+msgstr ""
+
+#: fortran/check.cc:2254
+#, gcc-internal-format, gfc-internal-format
+msgid "The A argument at %L of CO_REDUCE shall not be polymorphic"
+msgstr ""
+
+#: fortran/check.cc:2261
+#, gcc-internal-format, gfc-internal-format
+msgid "Support for the A argument at %L with allocatable components is not yet implemented"
+msgstr ""
+
+#: fortran/check.cc:2275
+#, gcc-internal-format, gfc-internal-format
+msgid "OPERATION argument at %L must be a PURE function"
+msgstr ""
+
+#. None of the intrinsics fulfills the criteria of taking two arguments,
+#. returning the same type and kind as the arguments and being permitted
+#. as actual argument.
+#: fortran/check.cc:2285
+#, gcc-internal-format, gfc-internal-format
+msgid "Intrinsic function %s at %L is not permitted for CO_REDUCE"
+msgstr ""
+
+#: fortran/check.cc:2302
+#, gcc-internal-format, gfc-internal-format
+msgid "The function passed as OPERATION at %L shall have two arguments"
+msgstr ""
+
+#: fortran/check.cc:2312
+#, gcc-internal-format, gfc-internal-format
+msgid "The A argument at %L has type %s but the function passed as OPERATION at %L returns %s"
+msgstr ""
+
+#: fortran/check.cc:2321
+#, gcc-internal-format, gfc-internal-format
+msgid "The function passed as OPERATION at %L has arguments of type %s and %s but shall have type %s"
+msgstr ""
+
+#: fortran/check.cc:2332
+#, gcc-internal-format, gfc-internal-format
+msgid "The function passed as OPERATION at %L shall have scalar nonallocatable nonpointer arguments and return a nonallocatable nonpointer scalar"
+msgstr ""
+
+#: fortran/check.cc:2340
+#, gcc-internal-format, gfc-internal-format
+msgid "The function passed as OPERATION at %L shall have the VALUE attribute either for none or both arguments"
+msgstr ""
+
+#: fortran/check.cc:2347
+#, gcc-internal-format, gfc-internal-format
+msgid "The function passed as OPERATION at %L shall have the TARGET attribute either for none or both arguments"
+msgstr ""
+
+#: fortran/check.cc:2354
+#, gcc-internal-format, gfc-internal-format
+msgid "The function passed as OPERATION at %L shall have the ASYNCHRONOUS attribute either for none or both arguments"
+msgstr ""
+
+#: fortran/check.cc:2362
+#, gcc-internal-format, gfc-internal-format
+msgid "The function passed as OPERATION at %L shall not have the OPTIONAL attribute for either of the arguments"
+msgstr ""
+
+#: fortran/check.cc:2392
+#, gcc-internal-format, gfc-internal-format
+msgid "The character length of the A argument at %L and of the arguments of the OPERATION at %L shall be the same"
+msgstr ""
+
+#: fortran/check.cc:2399
+#, gcc-internal-format, gfc-internal-format
+msgid "The character length of the A argument at %L and of the function result of the OPERATION at %L shall be the same"
+msgstr ""
+
+#: fortran/check.cc:2417
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L shall be of type integer, real or character"
+msgstr ""
+
+#: fortran/check.cc:2445 fortran/check.cc:2459
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ constant at %L cannot appear in the COMPLEX intrinsic subprogram"
+msgstr ""
+
+#: fortran/check.cc:2496 fortran/check.cc:3126 fortran/check.cc:3209
+#: fortran/check.cc:3431 fortran/check.cc:3479 fortran/check.cc:4959
+#: fortran/check.cc:5084 fortran/check.cc:5154 fortran/check.cc:6339
+#: fortran/check.cc:6470
+#, gcc-internal-format
+msgid "%qs intrinsic with KIND argument at %L"
+msgstr ""
+
+#: fortran/check.cc:2543 fortran/check.cc:2812 fortran/check.cc:2872
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L has invalid shape in dimension %d (%ld/%ld)"
+msgstr ""
+
+#: fortran/check.cc:2558 fortran/check.cc:2827 fortran/check.cc:2887
+#, gcc-internal-format
+msgid "%qs argument of intrinsic %qs at %L of must have rank %d or be a scalar"
+msgstr ""
+
+#: fortran/check.cc:2670 fortran/check.cc:3811 fortran/check.cc:3819
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be numeric or LOGICAL"
+msgstr ""
+
+#: fortran/check.cc:2684
+#, gcc-internal-format
+msgid "Different shape for arguments %qs and %qs at %L for intrinsic %<dot_product%>"
+msgstr ""
+
+#: fortran/check.cc:2704 fortran/check.cc:2712
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be default real"
+msgstr ""
+
+#: fortran/check.cc:2848
+#, gcc-internal-format
+msgid "%qs must be of same type and kind as %qs at %L in %qs"
+msgstr ""
+
+#: fortran/check.cc:2906
+#, gcc-internal-format
+msgid "Missing %qs argument to %qs intrinsic at %L for %qs of type %qs"
+msgstr ""
+
+#: fortran/check.cc:2924
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ literal constant at %L cannot appear in the FLOAT intrinsic subprogram"
+msgstr ""
+
+#: fortran/check.cc:2938
+#, gcc-internal-format, gfc-internal-format
+msgid "non-default INTEGER kind argument to %s intrinsic at %L"
+msgstr ""
+
+#: fortran/check.cc:2999
+#, gcc-internal-format
+msgid "COMPLEX argument %qs of %qs intrinsic at %L"
+msgstr ""
+
+#: fortran/check.cc:3081
+#, gcc-internal-format
+msgid "Arguments of %qs have different kind type parameters at %L"
+msgstr ""
+
+#: fortran/check.cc:3177
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of %s at %L must be of length one"
+msgstr ""
+
+#: fortran/check.cc:3216
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be the same kind as %qs"
+msgstr ""
+
+#: fortran/check.cc:3250
+#, gcc-internal-format
+msgid "%qs intrinsic subprogram at %L has been removed.  Use INT intrinsic subprogram."
+msgstr ""
+
+#: fortran/check.cc:3302
+#, gcc-internal-format, gfc-internal-format
+msgid "SIZE at %L must be positive"
+msgstr ""
+
+#: fortran/check.cc:3314
+#, gcc-internal-format, gfc-internal-format
+msgid "The absolute value of SHIFT at %L must be less than or equal to SIZE at %L"
+msgstr ""
+
+#: fortran/check.cc:3373
+#, gcc-internal-format, gfc-internal-format
+msgid "STATUS at %L shall be an INTENT(OUT) variable"
+msgstr ""
+
+#: fortran/check.cc:3382
+#, gcc-internal-format
+msgid "%qs at %L shall be an INTENT(OUT) variable"
+msgstr ""
+
+#: fortran/check.cc:3407
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be a data entity"
+msgstr ""
+
+#: fortran/check.cc:3621
+#, gcc-internal-format
+msgid "Intrinsic %qs at %L must have at least two arguments"
+msgstr ""
+
+#: fortran/check.cc:3669
+#, gcc-internal-format
+msgid "Missing %qs argument to the %s intrinsic at %L"
+msgstr ""
+
+#: fortran/check.cc:3684
+#, gcc-internal-format
+msgid "Duplicate argument %qs at %L to intrinsic %s"
+msgstr ""
+
+#: fortran/check.cc:3689
+#, gcc-internal-format
+msgid "Unknown argument %qs at %L to intrinsic %s"
+msgstr ""
+
+#: fortran/check.cc:3714
+#, gcc-internal-format, gfc-internal-format
+msgid "Different character kinds at %L"
+msgstr ""
+
+#: fortran/check.cc:3723
+#, gcc-internal-format
+msgid "%<a%d%> argument of %qs intrinsic at %L must be %s(%d)"
+msgstr ""
+
+#: fortran/check.cc:3754
+#, gcc-internal-format
+msgid "%qs intrinsic with CHARACTER argument at %L"
+msgstr ""
+
+#: fortran/check.cc:3761
+#, gcc-internal-format
+msgid "%<a1%> argument of %qs intrinsic at %L must be INTEGER, REAL or CHARACTER"
+msgstr ""
+
+#: fortran/check.cc:3828
+#, gcc-internal-format
+msgid "Argument types of %qs intrinsic at %L must match (%s/%s)"
+msgstr ""
+
+#: fortran/check.cc:3842
+#, gcc-internal-format
+msgid "Different shape on dimension 1 for arguments %qs and %qs at %L for intrinsic matmul"
+msgstr ""
+
+#: fortran/check.cc:3861
+#, gcc-internal-format
+msgid "Different shape on dimension 2 for argument %qs and dimension 1 for argument %qs at %L for intrinsic matmul"
+msgstr ""
+
+#: fortran/check.cc:3870
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be of rank 1 or 2"
+msgstr ""
+
+#: fortran/check.cc:4035
+#, gcc-internal-format
+msgid "Argument %qs of %qs intrinsic at %L must be in type conformance to argument %qs at %L"
+msgstr ""
+
+#: fortran/check.cc:4153 fortran/check.cc:7552 fortran/check.cc:7567
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be INTEGER"
+msgstr ""
+
+#: fortran/check.cc:4236
+#, gcc-internal-format, gfc-internal-format
+msgid "The FROM argument to MOVE_ALLOC at %L shall not be coindexed"
+msgstr ""
+
+#: fortran/check.cc:4247
+#, gcc-internal-format, gfc-internal-format
+msgid "The TO argument to MOVE_ALLOC at %L shall not be coindexed"
+msgstr ""
+
+#: fortran/check.cc:4254
+#, gcc-internal-format, gfc-internal-format
+msgid "The TO arguments in MOVE_ALLOC at %L must be polymorphic if FROM is polymorphic"
+msgstr ""
+
+#: fortran/check.cc:4265
+#, gcc-internal-format, gfc-internal-format
+msgid "The FROM and TO arguments of the MOVE_ALLOC intrinsic at %L must have the same rank %d/%d"
+msgstr ""
+
+#: fortran/check.cc:4274
+#, gcc-internal-format, gfc-internal-format
+msgid "The FROM and TO arguments of the MOVE_ALLOC intrinsic at %L must have the same corank %d/%d"
+msgstr ""
+
+#: fortran/check.cc:4314
+#, gcc-internal-format, gfc-internal-format
+msgid "The FROM and TO arguments at %L violate aliasing restrictions (F2003 12.4.1.7)"
+msgstr ""
+
+#: fortran/check.cc:4341
+#, gcc-internal-format
+msgid "Argument %<S%> of NEAREST at %L shall not be zero"
+msgstr ""
+
+#: fortran/check.cc:4397
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be a POINTER, ALLOCATABLE or procedure pointer"
+msgstr ""
+
+#: fortran/check.cc:4405
+#, gcc-internal-format, gfc-internal-format
+msgid "NULL intrinsic with allocatable MOLD at %L"
+msgstr ""
+
+#: fortran/check.cc:4484 fortran/check.cc:6417
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must provide at least as many elements as there are .TRUE. values in %qs (%ld/%d)"
+msgstr ""
+
+#: fortran/check.cc:4545
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be of a dummy variable"
+msgstr ""
+
+#: fortran/check.cc:4555
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be of an OPTIONAL dummy variable"
+msgstr ""
+
+#: fortran/check.cc:4574
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must not be a subobject of %qs"
+msgstr ""
+
+#: fortran/check.cc:4625
+#, gcc-internal-format, gfc-internal-format
+msgid "The argument of the RANK intrinsic at %L must be a data object"
+msgstr ""
+
+#: fortran/check.cc:4733
+#, gcc-internal-format
+msgid "%<shape%> argument of %<reshape%> intrinsic at %L must be an array of constant size"
+msgstr ""
+
+#: fortran/check.cc:4743
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L is empty"
+msgstr ""
+
+#: fortran/check.cc:4750
+#, gcc-internal-format
+msgid "%<shape%> argument of %<reshape%> intrinsic at %L has more than %d elements"
+msgstr ""
+
+#: fortran/check.cc:4773
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L has negative element (%d)"
+msgstr ""
+
+#: fortran/check.cc:4813
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L has wrong number of elements (%d/%d)"
+msgstr ""
+
+#: fortran/check.cc:4831
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L has out-of-range dimension (%d)"
+msgstr ""
+
+#: fortran/check.cc:4840
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L has invalid permutation of dimensions (dimension %qd duplicated)"
+msgstr ""
+
+#: fortran/check.cc:4875 fortran/simplify.cc:7050
+#, gcc-internal-format, gfc-internal-format
+msgid "Without padding, there are not enough elements in the intrinsic RESHAPE source at %L to match the shape"
+msgstr ""
+
+#: fortran/check.cc:4892 fortran/check.cc:4911
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L cannot be of type %s"
+msgstr ""
+
+#: fortran/check.cc:4902 fortran/check.cc:4921
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be of an extensible type"
+msgstr ""
+
+#: fortran/check.cc:5020
+#, gcc-internal-format
+msgid "SELECTED_REAL_KIND with neither %<P%> nor %<R%> argument at %L"
+msgstr ""
+
+#: fortran/check.cc:5051
+#, gcc-internal-format
+msgid "%qs intrinsic with RADIX argument at %L"
+msgstr ""
+
+#: fortran/check.cc:5099
+#, gcc-internal-format
+msgid "%<source%> argument of %<shape%> intrinsic at %L must not be an assumed size array"
+msgstr ""
+
+#: fortran/check.cc:5172 fortran/check.cc:7612
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L shall not be a procedure"
+msgstr ""
+
+#: fortran/check.cc:5188 fortran/check.cc:5334 fortran/check.cc:7604
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L shall not be TYPE(*)"
+msgstr ""
+
+#: fortran/check.cc:5199 fortran/check.cc:5346
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L shall not be an assumed-size array"
+msgstr ""
+
+#: fortran/check.cc:5281
+#, gcc-internal-format
+msgid "is_c_interoperable(): gfc_simplify_expr failed"
+msgstr ""
+
+#: fortran/check.cc:5325
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be an interoperable data entity: %s"
+msgstr ""
+
+#: fortran/check.cc:5364
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument C_PTR_1 at %L to C_ASSOCIATED shall have the type TYPE(C_PTR) or TYPE(C_FUNPTR)"
+msgstr ""
+
+#: fortran/check.cc:5378
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument C_PTR_2 at %L to C_ASSOCIATED shall have the same type as C_PTR_1: %s instead of %s"
+msgstr ""
+
+#: fortran/check.cc:5402
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument CPTR at %L to C_F_POINTER shall have the type TYPE(C_PTR)"
+msgstr ""
+
+#: fortran/check.cc:5414
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument FPTR at %L to C_F_POINTER must be a pointer"
+msgstr ""
+
+#: fortran/check.cc:5421
+#, gcc-internal-format, gfc-internal-format
+msgid "FPTR argument at %L to C_F_POINTER shall not be polymorphic"
+msgstr ""
+
+#: fortran/check.cc:5428
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument FPTR at %L to C_F_POINTER shall not be coindexed"
+msgstr ""
+
+#: fortran/check.cc:5435
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected SHAPE argument at %L to C_F_POINTER with scalar FPTR"
+msgstr ""
+
+#: fortran/check.cc:5441
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected SHAPE argument to C_F_POINTER with array FPTR at %L"
+msgstr ""
+
+#: fortran/check.cc:5460
+#, gcc-internal-format, gfc-internal-format
+msgid "SHAPE argument at %L to C_F_POINTER must have the same size as the RANK of FPTR"
+msgstr ""
+
+#: fortran/check.cc:5470
+#, gcc-internal-format, gfc-internal-format
+msgid "Polymorphic FPTR at %L to C_F_POINTER"
+msgstr ""
+
+#: fortran/check.cc:5476
+#, gcc-internal-format, gfc-internal-format
+msgid "FPTR argument to C_F_POINTER at %L is a function returning a pointer"
+msgstr ""
+
+#: fortran/check.cc:5483
+#, gcc-internal-format, gfc-internal-format
+msgid "Noninteroperable array FPTR argument to C_F_POINTER at %L: %s"
+msgstr ""
+
+#: fortran/check.cc:5499
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument CPTR at %L to C_F_PROCPOINTER shall have the type TYPE(C_FUNPTR)"
+msgstr ""
+
+#: fortran/check.cc:5511
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument FPTR at %L to C_F_PROCPOINTER shall be a procedure pointer"
+msgstr ""
+
+#: fortran/check.cc:5518
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument FPTR at %L to C_F_PROCPOINTER shall not be coindexed"
+msgstr ""
+
+#: fortran/check.cc:5524
+#, gcc-internal-format, gfc-internal-format
+msgid "Noninteroperable procedure pointer at %L to C_F_PROCPOINTER"
+msgstr ""
+
+#: fortran/check.cc:5538
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument X at %L to C_FUNLOC shall not be coindexed"
+msgstr ""
+
+#: fortran/check.cc:5550
+#, gcc-internal-format
+msgid "Function result %qs at %L is invalid as X argument to C_FUNLOC"
+msgstr ""
+
+#: fortran/check.cc:5557
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument X at %L to C_FUNLOC shall be a procedure or a procedure pointer"
+msgstr ""
+
+#: fortran/check.cc:5563
+#, gcc-internal-format, gfc-internal-format
+msgid "Noninteroperable procedure at %L to C_FUNLOC"
+msgstr ""
+
+#: fortran/check.cc:5577
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument X at %L to C_LOC shall not be coindexed"
+msgstr ""
+
+#: fortran/check.cc:5583
+#, gcc-internal-format, gfc-internal-format
+msgid "X argument at %L to C_LOC shall not be polymorphic"
+msgstr ""
+
+#: fortran/check.cc:5594
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument X at %L to C_LOC shall have either the POINTER or the TARGET attribute"
+msgstr ""
+
+#: fortran/check.cc:5602
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument X at %L to C_LOC shall be not be a zero-sized string"
+msgstr ""
+
+#: fortran/check.cc:5611
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument at %L to C_LOC shall not be polymorphic"
+msgstr ""
+
+#: fortran/check.cc:5618
+#, gcc-internal-format, gfc-internal-format
+msgid "Noninteroperable array at %L as argument to C_LOC: %s"
+msgstr ""
+
+#: fortran/check.cc:5629
+#, gcc-internal-format, gfc-internal-format
+msgid "Array of interoperable type at %L to C_LOC which is nonallocatable and neither assumed size nor explicit size"
+msgstr ""
+
+#: fortran/check.cc:5634
+#, gcc-internal-format, gfc-internal-format
+msgid "Array section at %L to C_LOC"
+msgstr ""
+
+#: fortran/check.cc:5662
+#, gcc-internal-format, gfc-internal-format
+msgid "non double precision REAL argument to %s intrinsic at %L"
+msgstr ""
+
+#: fortran/check.cc:5678
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be less than rank %d"
+msgstr ""
+
+#: fortran/check.cc:5697
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L is not a valid dimension index"
+msgstr ""
+
+#: fortran/check.cc:5721
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must have length at least 1"
+msgstr ""
+
+#: fortran/check.cc:5985
+#, gcc-internal-format, gfc-internal-format
+msgid "%s argument to IMAGE_INDEX must be a rank one array at %L"
+msgstr ""
+
+#: fortran/check.cc:5992
+#, gcc-internal-format, gfc-internal-format
+msgid "Type of %s argument of IMAGE_INDEX at %L shall be INTEGER"
+msgstr ""
+
+#: fortran/check.cc:6003
+#, gcc-internal-format, gfc-internal-format
+msgid "The number of array elements of the SUB argument to IMAGE_INDEX at %L shall be %d (corank) not %d"
+msgstr ""
+
+#: fortran/check.cc:6036
+#, gcc-internal-format, gfc-internal-format
+msgid "DISTANCE= argument to NUM_IMAGES at %L"
+msgstr ""
+
+#: fortran/check.cc:6049
+#, gcc-internal-format, gfc-internal-format
+msgid "FAILED= argument to NUM_IMAGES at %L"
+msgstr ""
+
+#: fortran/check.cc:6073
+#, gcc-internal-format, gfc-internal-format
+msgid "TEAM argument at %L to the intrinsic TEAM_NUMBER shall be of type TEAM_TYPE"
+msgstr ""
+
+#: fortran/check.cc:6099
+#, gcc-internal-format, gfc-internal-format
+msgid "DIM argument without COARRAY argument not allowed for THIS_IMAGE intrinsic at %L"
+msgstr ""
+
+#: fortran/check.cc:6106
+#, gcc-internal-format, gfc-internal-format
+msgid "The DISTANCE argument may not be specified together with the COARRAY or DIM argument in intrinsic at %L"
+msgstr ""
+
+#: fortran/check.cc:6117
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected DIM argument with noncoarray argument at %L"
+msgstr ""
+
+#: fortran/check.cc:6135
+#, gcc-internal-format, gfc-internal-format
+msgid "DISTANCE= argument to THIS_IMAGE at %L"
+msgstr ""
+
+#: fortran/check.cc:6193
+#, gcc-internal-format
+msgid "%<MOLD%> argument of %<TRANSFER%> intrinsic at %L is an array and shall not have storage size 0 when %<SOURCE%> argument has size greater than 0"
+msgstr ""
+
+#: fortran/check.cc:6245
+#, gcc-internal-format
+msgid "%<SOURCE%> argument of %<TRANSFER%> intrinsic at %L must not be a %s"
+msgstr ""
+
+#: fortran/check.cc:6264
+#, gcc-internal-format
+msgid "%<MOLD%> argument of %<TRANSFER%> intrinsic at %L must not be a %s"
+msgstr ""
+
+#: fortran/check.cc:6272
+#, gcc-internal-format
+msgid "%<MOLD%> argument of %<TRANSFER%> intrinsic at %L must not be %s"
+msgstr ""
+
+#: fortran/check.cc:6307
+msgid "Intrinsic TRANSFER at %L has partly undefined result: source size %zd < result size %zd"
+msgstr ""
+
+#: fortran/check.cc:6431
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must have the same rank as %qs or be a scalar"
+msgstr ""
+
+#: fortran/check.cc:6444
+#, gcc-internal-format
+msgid "%qs and %qs arguments of %qs intrinsic at %L must have identical shape."
+msgstr ""
+
+#: fortran/check.cc:6580
+#, gcc-internal-format, gfc-internal-format
+msgid "VALUES argument of DATE_AND_TIME at %L has non-default kind"
+msgstr ""
+
+#: fortran/check.cc:6592
+#, gcc-internal-format, gfc-internal-format
+msgid "VALUES argument of DATE_AND_TIME at %L must have a decimal exponent range of at least four"
+msgstr ""
+
+#: fortran/check.cc:6731 fortran/check.cc:6763
+#, gcc-internal-format
+msgid "Size of %qs argument of %qs intrinsic at %L too small (%i/%i)"
+msgstr ""
+
+#: fortran/check.cc:6771
+#, gcc-internal-format, gfc-internal-format
+msgid "Too many arguments to %s at %L"
+msgstr ""
+
+#: fortran/check.cc:6789
+#, gcc-internal-format
+msgid "fe_runtime_error string must be null terminated"
+msgstr ""
+
+#: fortran/check.cc:6801
+#, gcc-internal-format, gfc-internal-format
+msgid "fe_runtime_error: Wrong number of arguments (%d instead of %d)"
+msgstr ""
+
+#: fortran/check.cc:6843
+#, gcc-internal-format, gfc-internal-format
+msgid "COUNT argument to SYSTEM_CLOCK at %L has non-default kind"
+msgstr ""
+
+#: fortran/check.cc:6850
+#, gcc-internal-format, gfc-internal-format
+msgid "COUNT argument to SYSTEM_CLOCK at %L with kind smaller than default integer"
+msgstr ""
+
+#: fortran/check.cc:6871
+#, gcc-internal-format, gfc-internal-format
+msgid "Real COUNT_RATE argument to SYSTEM_CLOCK at %L"
+msgstr ""
+
+#: fortran/check.cc:6881
+#, gcc-internal-format, gfc-internal-format
+msgid "COUNT_RATE argument to SYSTEM_CLOCK at %L has non-default kind"
+msgstr ""
+
+#: fortran/check.cc:6888
+#, gcc-internal-format, gfc-internal-format
+msgid "COUNT_RATE argument to SYSTEM_CLOCK at %L with kind smaller than default integer"
+msgstr ""
+
+#: fortran/check.cc:6908
+#, gcc-internal-format, gfc-internal-format
+msgid "COUNT_MAX argument to SYSTEM_CLOCK at %L has non-default kind"
+msgstr ""
+
+#: fortran/check.cc:6918
+#, gcc-internal-format, gfc-internal-format
+msgid "COUNT_MAX argument to SYSTEM_CLOCK at %L with kind smaller than default integer"
+msgstr ""
+
+#: fortran/check.cc:6933 fortran/check.cc:6940
+#, gcc-internal-format, gfc-internal-format
+msgid "integer arguments to SYSTEM_CLOCK at %L with different kind parameters"
+msgstr ""
+
+#: fortran/check.cc:7154
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be of a kind not wider than the default kind (%d)"
+msgstr ""
+
+#: fortran/check.cc:7336
+#, gcc-internal-format
+msgid "Actual argument at %L of %qs intrinsic shall be an associated pointer"
+msgstr ""
+
+#: fortran/check.cc:7525 fortran/check.cc:7536
+#, gcc-internal-format
+msgid "%qs argument of %qs intrinsic at %L must be INTEGER, LOGICAL, or a BOZ literal constant"
+msgstr ""
+
+#: fortran/check.cc:7596
+#, gcc-internal-format, gfc-internal-format
+msgid "Intrinsic function NULL at %L cannot be an actual argument to STORAGE_SIZE, because it returns a disassociated pointer"
+msgstr ""
+
+#. Since the extension field is 8 bit wide, we can only have
+#. up to 255 extension levels.
+#: fortran/class.cc:799 fortran/decl.cc:4079 fortran/decl.cc:10785
+#, gcc-internal-format
+msgid "Maximum extension level reached with type %qs at %L"
+msgstr ""
+
+#: fortran/class.cc:3109 fortran/class.cc:3183
+#, gcc-internal-format
+msgid "%qs of %qs is PRIVATE at %L"
+msgstr ""
+
+#: fortran/cpp.cc:501
+#, gcc-internal-format
+msgid "To enable preprocessing, use %<-cpp%>"
+msgstr ""
+
+#: fortran/cpp.cc:580 fortran/cpp.cc:591 fortran/cpp.cc:719
+#, gcc-internal-format
+msgid "opening output file %qs: %s"
+msgstr ""
+
+#: fortran/data.cc:67
+#, gcc-internal-format, gfc-internal-format
+msgid "non-constant array in DATA statement %L"
+msgstr ""
+
+#: fortran/data.cc:78
+#, gcc-internal-format, gfc-internal-format
+msgid "Subscript at %L below array lower bound (%ld < %ld) in dimension %d"
+msgstr ""
+
+#: fortran/data.cc:89
+#, gcc-internal-format, gfc-internal-format
+msgid "Subscript at %L above array upper bound (%ld > %ld) in dimension %d"
+msgstr ""
+
+#: fortran/data.cc:172
+#, gcc-internal-format, gfc-internal-format
+msgid "failure to simplify substring reference in DATA statement at %L"
+msgstr ""
+
+#: fortran/data.cc:205
+#, gcc-internal-format, gfc-internal-format
+msgid "Unused initialization string at %L because variable has zero length"
+msgstr ""
+
+#: fortran/data.cc:211
+#, gcc-internal-format
+msgid "Initialization string at %L was truncated to fit the variable (%wd/%wd)"
+msgstr ""
+
+#: fortran/data.cc:220 fortran/resolve.cc:5298
+#, gcc-internal-format, gfc-internal-format
+msgid "Substring start index at %L is less than one"
+msgstr ""
+
+#: fortran/data.cc:226 fortran/resolve.cc:5328
+#, gcc-internal-format, gfc-internal-format
+msgid "Substring end index at %L exceeds the string length"
+msgstr ""
+
+#: fortran/data.cc:316
+#, gcc-internal-format
+msgid "%qs at %L already is initialized at %L"
+msgstr ""
+
+#: fortran/data.cc:343
+#, gcc-internal-format, gfc-internal-format
+msgid "Data element below array lower bound at %L"
+msgstr ""
+
+#: fortran/data.cc:360 fortran/data.cc:449
+#, gcc-internal-format, gfc-internal-format
+msgid "Data element above array upper bound at %L"
+msgstr ""
+
+#: fortran/data.cc:390 fortran/data.cc:615
+#, gcc-internal-format
+msgid "re-initialization of %qs at %L"
+msgstr ""
+
+#: fortran/data.cc:560
+#, gcc-internal-format, gfc-internal-format
+msgid "LEN or KIND inquiry ref in DATA statement at %L"
+msgstr ""
+
+#: fortran/data.cc:638
+#, gcc-internal-format
+msgid "Nonpointer object %qs with default initialization shall not appear in a DATA statement at %L"
+msgstr ""
+
+#: fortran/data.cc:698 fortran/data.cc:717 fortran/data.cc:731
+#: fortran/data.cc:757 fortran/data.cc:904
+#, gcc-internal-format
+msgid "Simplification error"
+msgstr ""
+
+#: fortran/decl.cc:293
+#, gcc-internal-format, gfc-internal-format
+msgid "Inquiry parameter cannot appear in a data-stmt-object-list at %C"
+msgstr ""
+
+#: fortran/decl.cc:307
+#, gcc-internal-format
+msgid "Host associated variable %qs may not be in the DATA statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:314
+#, gcc-internal-format
+msgid "initialization of common block variable %qs in DATA statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:449
+#, gcc-internal-format
+msgid "Symbol %qs must be a PARAMETER in DATA statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:475
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid initializer %s in Data statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:580
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ at %L cannot appear in an old-style initialization"
+msgstr ""
+
+#: fortran/decl.cc:588
+#, gcc-internal-format
+msgid "BOZ literal constant near %L cannot be assigned to a %qs variable in an old-style initialization"
+msgstr ""
+
+#: fortran/decl.cc:598
+#, gcc-internal-format, gfc-internal-format
+msgid "Initialization at %C is not allowed in a PURE procedure"
+msgstr ""
+
+#: fortran/decl.cc:645
+#, gcc-internal-format, gfc-internal-format
+msgid "DATA statement at %C cannot appear within an INTERFACE"
+msgstr ""
+
+#: fortran/decl.cc:669
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid substring in data-implied-do at %L in DATA statement"
+msgstr ""
+
+#: fortran/decl.cc:692
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocatable component or deferred-shaped array near %C in DATA statement"
+msgstr ""
+
+#: fortran/decl.cc:734
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ literal constant at %L cannot appear in a structure constructor"
+msgstr ""
+
+#: fortran/decl.cc:750
+#, gcc-internal-format, gfc-internal-format
+msgid "DATA statement at %C is not allowed in a PURE procedure"
+msgstr ""
+
+#: fortran/decl.cc:759
+#, gcc-internal-format, gfc-internal-format
+msgid "part-ref with pointer attribute near %L is not rightmost part-ref of data-stmt-object"
+msgstr ""
+
+#: fortran/decl.cc:798
+#, gcc-internal-format, gfc-internal-format
+msgid "Empty old style initializer list at %C"
+msgstr ""
+
+#: fortran/decl.cc:807
+#, gcc-internal-format, gfc-internal-format
+msgid "Array in initializer list at %L must have an explicit shape"
+msgstr ""
+
+#: fortran/decl.cc:830
+#, gcc-internal-format, gfc-internal-format
+msgid "Repeat spec invalid in scalar initializer at %C"
+msgstr ""
+
+#: fortran/decl.cc:835
+#, gcc-internal-format, gfc-internal-format
+msgid "Repeat spec must be an integer at %C"
+msgstr ""
+
+#: fortran/decl.cc:846
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected data constant after repeat spec at %C"
+msgstr ""
+
+#: fortran/decl.cc:878
+#, gcc-internal-format, gfc-internal-format
+msgid "End of scalar initializer expected at %C"
+msgstr ""
+
+#: fortran/decl.cc:906
+#, gcc-internal-format, gfc-internal-format
+msgid "Not enough elements in array initializer at %C"
+msgstr ""
+
+#: fortran/decl.cc:908
+#, gcc-internal-format, gfc-internal-format
+msgid "Too many elements in array initializer at %C"
+msgstr ""
+
+#: fortran/decl.cc:934
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in old style initializer list at %C"
+msgstr ""
+
+#: fortran/decl.cc:958
+#, gcc-internal-format, gfc-internal-format
+msgid "The assumed-rank array at %C shall not have a codimension"
+msgstr ""
+
+#: fortran/decl.cc:1023
+#, gcc-internal-format, gfc-internal-format
+msgid "Sum of array rank %d and corank %d at %C exceeds maximum allowed dimensions of %d"
+msgstr ""
+
+#: fortran/decl.cc:1047
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad INTENT specification at %C"
+msgstr ""
+
+#: fortran/decl.cc:1069
+#, gcc-internal-format, gfc-internal-format
+msgid "deferred type parameter at %C"
+msgstr ""
+
+#: fortran/decl.cc:1162 fortran/resolve.cc:13335
+#, gcc-internal-format, gfc-internal-format
+msgid "Scalar INTEGER expression expected at %L"
+msgstr ""
+
+#: fortran/decl.cc:1188
+#, gcc-internal-format, gfc-internal-format
+msgid "Old-style character length at %C"
+msgstr ""
+
+#: fortran/decl.cc:1219
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in character length specification at %C"
+msgstr ""
+
+#: fortran/decl.cc:1371 fortran/decl.cc:1378 fortran/decl.cc:1444
+#, gcc-internal-format
+msgid "Procedure %qs at %C is already defined at %L"
+msgstr ""
+
+#: fortran/decl.cc:1386
+#, gcc-internal-format
+msgid "Contained procedure %qs at %C clashes with procedure defined at %L"
+msgstr ""
+
+#: fortran/decl.cc:1398
+#, gcc-internal-format
+msgid "Name %qs at %C is already defined as a generic interface at %L"
+msgstr ""
+
+#: fortran/decl.cc:1416
+#, gcc-internal-format
+msgid "Procedure %qs at %C has an explicit interface from a previous declaration"
+msgstr ""
+
+#: fortran/decl.cc:1432
+#, gcc-internal-format
+msgid "Procedure %qs defined in interface body at %L clashes with internal procedure defined at %C"
+msgstr ""
+
+#: fortran/decl.cc:1515
+#, gcc-internal-format
+msgid "Procedure %qs at %L must have the BIND(C) attribute to be C interoperable"
+msgstr ""
+
+#: fortran/decl.cc:1542
+#, gcc-internal-format
+msgid "Variable %qs at %L is a dummy argument to the BIND(C) procedure %qs but is not C interoperable because derived type %qs is not C interoperable"
+msgstr ""
+
+#: fortran/decl.cc:1549
+#, gcc-internal-format
+msgid "Variable %qs at %L is a dummy argument to the BIND(C) procedure %qs but is not C interoperable because it is polymorphic"
+msgstr ""
+
+#: fortran/decl.cc:1556
+#, gcc-internal-format
+msgid "Variable %qs at %L is a dummy argument of the BIND(C) procedure %qs but may not be C interoperable"
+msgstr ""
+
+#: fortran/decl.cc:1565
+#, gcc-internal-format
+msgid "Dummy argument %qs at %L may not be a pointer with CONTIGUOUS attribute as procedure %qs is BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:1575
+#, gcc-internal-format
+msgid "Default-initialized %s dummy argument %qs at %L is not permitted in BIND(C) procedure %qs"
+msgstr ""
+
+#: fortran/decl.cc:1596
+#, gcc-internal-format
+msgid "Allocatable character dummy argument %qs at %L must have deferred length as procedure %qs is BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:1601
+#, gcc-internal-format
+msgid "Pointer character dummy argument %qs at %L must have deferred length as procedure %qs is BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:1608
+#, gcc-internal-format
+msgid "Deferred-length character dummy argument %qs at %L of procedure %qs with BIND(C) attribute"
+msgstr ""
+
+#: fortran/decl.cc:1620
+#, gcc-internal-format
+msgid "Character dummy argument %qs at %L must be of length 1 as it has the VALUE attribute"
+msgstr ""
+
+#: fortran/decl.cc:1631
+#, gcc-internal-format
+msgid "Assumed-length character dummy argument %qs at %L of procedure %qs with BIND(C) attribute"
+msgstr ""
+
+#: fortran/decl.cc:1645
+#, gcc-internal-format
+msgid "Character dummy argument %qs at %L must be of constant length of one or assumed length, unless it has assumed shape or assumed rank, as procedure %qs has the BIND(C) attribute"
+msgstr ""
+
+#: fortran/decl.cc:1663
+#, gcc-internal-format
+msgid "Variable %qs at %L with ALLOCATABLE attribute in procedure %qs with BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:1671
+#, gcc-internal-format
+msgid "Variable %qs at %L with POINTER attribute in procedure %qs with BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:1680
+#, gcc-internal-format
+msgid "Variable %qs at %L cannot have both the OPTIONAL and the VALUE attribute because procedure %qs is BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:1687
+#, gcc-internal-format
+msgid "Variable %qs at %L with OPTIONAL attribute in procedure %qs which is BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:1698
+#, gcc-internal-format
+msgid "Assumed-shape array %qs at %L as dummy argument to the BIND(C) procedure %qs at %L"
+msgstr ""
+
+#: fortran/decl.cc:1766
+#, gcc-internal-format
+msgid "Symbol %qs at %C also declared as a type at %L"
+msgstr ""
+
+#: fortran/decl.cc:1828
+#, gcc-internal-format
+msgid "Variable %qs in common block %qs at %C must be declared with a C interoperable kind since common block %qs is BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:1868
+#, gcc-internal-format, gfc-internal-format
+msgid "CHARACTER length must be a constant at %L"
+msgstr ""
+
+#: fortran/decl.cc:1883
+#, gcc-internal-format, gfc-internal-format
+msgid "CHARACTER expression at %L is being truncated (%ld/%ld)"
+msgstr ""
+
+#: fortran/decl.cc:1891
+#, gcc-internal-format, gfc-internal-format
+msgid "The CHARACTER elements of the array constructor at %L must have the same length (%ld/%ld)"
+msgstr ""
+
+#: fortran/decl.cc:2029
+#, gcc-internal-format
+msgid "Initializer not allowed for PARAMETER %qs at %C"
+msgstr ""
+
+#: fortran/decl.cc:2042
+#, gcc-internal-format, gfc-internal-format
+msgid "PARAMETER at %L is missing an initializer"
+msgstr ""
+
+#: fortran/decl.cc:2052
+#, gcc-internal-format
+msgid "Variable %qs at %C with an initializer already appears in a DATA statement"
+msgstr ""
+
+#: fortran/decl.cc:2095
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot initialize parameter array at %L with variable length elements"
+msgstr ""
+
+#: fortran/decl.cc:2129
+#, gcc-internal-format, gfc-internal-format
+msgid "Rank mismatch of array at %L and its initializer (%d/%d)"
+msgstr ""
+
+#: fortran/decl.cc:2142
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot initialize implied-shape array at %L with scalar"
+msgstr ""
+
+#: fortran/decl.cc:2152
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad shape of initializer at %L"
+msgstr ""
+
+#: fortran/decl.cc:2159
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot determine shape of initializer at %L"
+msgstr ""
+
+#: fortran/decl.cc:2194
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-constant lower bound in implied-shape declaration at %L"
+msgstr ""
+
+#: fortran/decl.cc:2244
+#, gcc-internal-format
+msgid "Entity %qs at %L is incompatible with a BOZ literal constant"
+msgstr ""
+
+#: fortran/decl.cc:2309 fortran/decl.cc:2316
+#, gcc-internal-format, gfc-internal-format
+msgid "Component at %C must have the POINTER attribute"
+msgstr ""
+
+#: fortran/decl.cc:2325
+#, gcc-internal-format
+msgid "Component %qs with CLASS at %C must be allocatable or pointer"
+msgstr ""
+
+#: fortran/decl.cc:2334
+#, gcc-internal-format, gfc-internal-format
+msgid "Array component of structure at %C must have explicit or deferred shape"
+msgstr ""
+
+#: fortran/decl.cc:2358 fortran/symbol.cc:2276
+#, gcc-internal-format
+msgid "Component %qs at %C already declared at %L"
+msgstr ""
+
+#: fortran/decl.cc:2413
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer array component of structure at %C must have a deferred shape"
+msgstr ""
+
+#: fortran/decl.cc:2422
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocatable component of structure at %C must have a deferred shape"
+msgstr ""
+
+#: fortran/decl.cc:2431
+#, gcc-internal-format, gfc-internal-format
+msgid "Array component of structure at %C must have an explicit shape"
+msgstr ""
+
+#: fortran/decl.cc:2448
+#, gcc-internal-format
+msgid "Type parameter %qs at %C has no corresponding entry in the type parameter name list at %L"
+msgstr ""
+
+#: fortran/decl.cc:2505
+#, gcc-internal-format, gfc-internal-format
+msgid "NULL() initialization at %C is ambiguous"
+msgstr ""
+
+#: fortran/decl.cc:2522
+#, gcc-internal-format, gfc-internal-format
+msgid "NULL() initialization at %C may not have MOLD"
+msgstr ""
+
+#: fortran/decl.cc:2539
+#, gcc-internal-format, gfc-internal-format
+msgid "Initialization of pointer at %C is not allowed in a PURE procedure"
+msgstr ""
+
+#: fortran/decl.cc:2560
+#, gcc-internal-format, gfc-internal-format
+msgid "Error in pointer initialization at %C"
+msgstr ""
+
+#: fortran/decl.cc:2567
+#, gcc-internal-format, gfc-internal-format
+msgid "non-NULL pointer initialization at %C"
+msgstr ""
+
+#: fortran/decl.cc:2590
+#, gcc-internal-format
+msgid "RESULT variable %qs at %L prohibits FUNCTION name %qs at %C from appearing in a specification statement"
+msgstr ""
+
+#: fortran/decl.cc:2644
+#, gcc-internal-format
+msgid "%qs not allowed outside STRUCTURE at %C"
+msgstr ""
+
+#: fortran/decl.cc:2646
+#, gcc-internal-format
+msgid "%qs at %C is a DEC extension, enable with %<-fdec-structure%>"
+msgstr ""
+
+#: fortran/decl.cc:2654
+#, gcc-internal-format
+msgid "%qs entity cannot have attributes at %C"
+msgstr ""
+
+#: fortran/decl.cc:2664
+#, gcc-internal-format
+msgid "Invalid character %qc in variable name at %C"
+msgstr ""
+
+#: fortran/decl.cc:2706
+#, gcc-internal-format
+msgid "Non-PARAMETER symbol %qs at %L cannot be implied-shape"
+msgstr ""
+
+#: fortran/decl.cc:2716
+#, gcc-internal-format, gfc-internal-format
+msgid "Implied-shape array at %L"
+msgstr ""
+
+#: fortran/decl.cc:2773
+#, gcc-internal-format, gfc-internal-format
+msgid "Explicit array shape at %C must be constant of INTEGER type and not %s type"
+msgstr ""
+
+#: fortran/decl.cc:2781
+#, gcc-internal-format, gfc-internal-format
+msgid "Explicit shaped array with nonconstant bounds at %C"
+msgstr ""
+
+#: fortran/decl.cc:2882
+#, gcc-internal-format
+msgid "%qs at %C is a redefinition of the declaration in the corresponding interface for MODULE PROCEDURE %qs"
+msgstr ""
+
+#: fortran/decl.cc:2893
+#, gcc-internal-format
+msgid "%qs entity cannot have an initializer at %C"
+msgstr ""
+
+#: fortran/decl.cc:2918 fortran/decl.cc:9015
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate array spec for Cray pointee at %C"
+msgstr ""
+
+#: fortran/decl.cc:2926
+#, gcc-internal-format
+msgid "Cannot set pointee array spec."
+msgstr ""
+
+#: fortran/decl.cc:2989
+#, gcc-internal-format, gfc-internal-format
+msgid "Old-style initialization at %C"
+msgstr ""
+
+#: fortran/decl.cc:2997
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid old style initialization for derived type component at %C"
+msgstr ""
+
+#: fortran/decl.cc:3010
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in old style initialization of %s at %C"
+msgstr ""
+
+#: fortran/decl.cc:3030 fortran/decl.cc:7230
+#, gcc-internal-format, gfc-internal-format
+msgid "Initialization at %C isn't for a pointer variable"
+msgstr ""
+
+#: fortran/decl.cc:3053
+#, gcc-internal-format
+msgid "Pointer initialization at %C requires %<=>%>, not %<=%>"
+msgstr ""
+
+#: fortran/decl.cc:3062 fortran/decl.cc:10959
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected an initialization expression at %C"
+msgstr ""
+
+#: fortran/decl.cc:3069
+#, gcc-internal-format, gfc-internal-format
+msgid "Initialization of variable at %C is not allowed in a PURE procedure"
+msgstr ""
+
+#: fortran/decl.cc:3086
+#, gcc-internal-format, gfc-internal-format
+msgid "Initialization of allocatable component at %C is not allowed"
+msgstr ""
+
+#: fortran/decl.cc:3095
+#, gcc-internal-format, gfc-internal-format
+msgid "Initialization of structure component with a HOLLERITH constant at %L is not allowed"
+msgstr ""
+
+#: fortran/decl.cc:3109
+#, gcc-internal-format, gfc-internal-format
+msgid "The component with KIND or LEN attribute at %C does not not appear in the type parameter list at %L"
+msgstr ""
+
+#: fortran/decl.cc:3117
+#, gcc-internal-format, gfc-internal-format
+msgid "The component at %C that appears in the type parameter list at %L has neither the KIND nor LEN attribute"
+msgstr ""
+
+#: fortran/decl.cc:3125
+#, gcc-internal-format, gfc-internal-format
+msgid "The component at %C which is a type parameter must be a scalar"
+msgstr ""
+
+#: fortran/decl.cc:3134
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ literal constant at %L cannot appear as an initializer"
+msgstr ""
+
+#: fortran/decl.cc:3151
+#, gcc-internal-format
+msgid "Incompatible initialization between a derived type entity and an entity with %qs type at %C"
+msgstr ""
+
+#: fortran/decl.cc:3214 fortran/decl.cc:3249
+#, gcc-internal-format, gfc-internal-format
+msgid "Old-style type declaration %s*%d not supported at %C"
+msgstr ""
+
+#: fortran/decl.cc:3255
+#, gcc-internal-format, gfc-internal-format
+msgid "Nonstandard type declaration %s*%d at %C"
+msgstr ""
+
+#: fortran/decl.cc:3314 fortran/decl.cc:3391
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing right parenthesis at %C"
+msgstr ""
+
+#: fortran/decl.cc:3327 fortran/decl.cc:3462
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected initialization expression at %C"
+msgstr ""
+
+#: fortran/decl.cc:3335 fortran/decl.cc:3468
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected scalar initialization expression at %C"
+msgstr ""
+
+#: fortran/decl.cc:3365 fortran/decl.cc:4115
+#, gcc-internal-format, gfc-internal-format
+msgid "Kind %d not supported for type %s at %C"
+msgstr ""
+
+#: fortran/decl.cc:3378
+#, gcc-internal-format, gfc-internal-format
+msgid "C kind type parameter is for type %s but type at %L is %s"
+msgstr ""
+
+#: fortran/decl.cc:3389
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing right parenthesis or comma at %C"
+msgstr ""
+
+#: fortran/decl.cc:3494
+#, gcc-internal-format, gfc-internal-format
+msgid "Kind %d is not supported for CHARACTER at %C"
+msgstr ""
+
+#: fortran/decl.cc:3626
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in CHARACTER declaration at %C"
+msgstr ""
+
+#: fortran/decl.cc:3727
+#, gcc-internal-format
+msgid "RECORD at %C is an extension, enable it with %<-fdec-structure%>"
+msgstr ""
+
+#: fortran/decl.cc:3740
+#, gcc-internal-format, gfc-internal-format
+msgid "Structure name expected after RECORD at %C"
+msgstr ""
+
+#: fortran/decl.cc:3853
+#, gcc-internal-format, gfc-internal-format
+msgid "The type parameter spec list at %C cannot contain both ASSUMED and DEFERRED parameters"
+msgstr ""
+
+#: fortran/decl.cc:3877
+#, gcc-internal-format, gfc-internal-format
+msgid "The type parameter spec list at %C does not contain enough parameter expressions"
+msgstr ""
+
+#: fortran/decl.cc:3901
+#, gcc-internal-format
+msgid "The derived parameter %qs at %C does not have a default value"
+msgstr ""
+
+#: fortran/decl.cc:3934
+#, gcc-internal-format, gfc-internal-format
+msgid "The parameter expression at %C must be of INTEGER type and not %s type"
+msgstr ""
+
+#: fortran/decl.cc:3941
+#, gcc-internal-format, gfc-internal-format
+msgid "The parameter expression at %C does not simplify to an INTEGER constant"
+msgstr ""
+
+#: fortran/decl.cc:3968
+#, gcc-internal-format
+msgid "The KIND parameter %qs at %C cannot either be ASSUMED or DEFERRED"
+msgstr ""
+
+#: fortran/decl.cc:3975
+#, gcc-internal-format
+msgid "The value for the KIND parameter %qs at %C does not reduce to a constant expression"
+msgstr ""
+
+#: fortran/decl.cc:3990
+#, gcc-internal-format, gfc-internal-format
+msgid "The type parameter spec list at %C contains too many parameter expressions"
+msgstr ""
+
+#: fortran/decl.cc:3999
+#, gcc-internal-format, gfc-internal-format
+msgid "Parameterized derived type at %C is ambiguous"
+msgstr ""
+
+#: fortran/decl.cc:4250
+#, gcc-internal-format, gfc-internal-format
+msgid "BYTE type at %C"
+msgstr ""
+
+#: fortran/decl.cc:4262
+#, gcc-internal-format, gfc-internal-format
+msgid "BYTE type used at %C is not available on the target machine"
+msgstr ""
+
+#: fortran/decl.cc:4324
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed type at %C is not allowed for components"
+msgstr ""
+
+#: fortran/decl.cc:4327
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed type at %C"
+msgstr ""
+
+#: fortran/decl.cc:4349 fortran/decl.cc:4383 fortran/decl.cc:4416
+#: fortran/decl.cc:4715
+#, gcc-internal-format, gfc-internal-format
+msgid "TYPE with intrinsic-type-spec at %C"
+msgstr ""
+
+#: fortran/decl.cc:4361 fortran/decl.cc:4389 fortran/decl.cc:4422
+#: fortran/decl.cc:4448 fortran/decl.cc:4740 fortran/decl.cc:4758
+#, gcc-internal-format, gfc-internal-format
+msgid "Malformed type-spec at %C"
+msgstr ""
+
+#: fortran/decl.cc:4412
+#, gcc-internal-format, gfc-internal-format
+msgid "DOUBLE COMPLEX at %C"
+msgstr ""
+
+#: fortran/decl.cc:4464 fortran/decl.cc:4606 fortran/decl.cc:4618
+#: fortran/decl.cc:4632 fortran/decl.cc:5117 fortran/decl.cc:5125
+#, gcc-internal-format
+msgid "Type name %qs at %C is ambiguous"
+msgstr ""
+
+#: fortran/decl.cc:4565
+#, gcc-internal-format, gfc-internal-format
+msgid "CLASS statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:4647
+#, gcc-internal-format
+msgid "Type name %qs at %C conflicts with previously declared entity at %L, which has the same name"
+msgstr ""
+
+#: fortran/decl.cc:4793
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate IMPLICIT NONE statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:4802
+#, gcc-internal-format, gfc-internal-format
+msgid "IMPLICIT NONE with spec list at %C"
+msgstr ""
+
+#: fortran/decl.cc:4861
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing character range in IMPLICIT at %C"
+msgstr ""
+
+#: fortran/decl.cc:4907
+#, gcc-internal-format, gfc-internal-format
+msgid "Letters must be in alphabetic order in IMPLICIT statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:4960
+#, gcc-internal-format, gfc-internal-format
+msgid "IMPLICIT statement at %C following an IMPLICIT NONE (type) statement"
+msgstr ""
+
+#: fortran/decl.cc:4970
+#, gcc-internal-format, gfc-internal-format
+msgid "Empty IMPLICIT statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:5076
+#, gcc-internal-format, gfc-internal-format
+msgid "IMPORT statement at %C only permitted in an INTERFACE body"
+msgstr ""
+
+#: fortran/decl.cc:5083
+#, gcc-internal-format, gfc-internal-format
+msgid "F2008: C1210 IMPORT statement at %C is not permitted in a module procedure interface body"
+msgstr ""
+
+#: fortran/decl.cc:5088
+#, gcc-internal-format, gfc-internal-format
+msgid "IMPORT statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:5102
+#, gcc-internal-format, gfc-internal-format
+msgid "Expecting list of named entities at %C"
+msgstr ""
+
+#: fortran/decl.cc:5131
+#, gcc-internal-format
+msgid "Cannot IMPORT %qs from host scoping unit at %C - does not exist."
+msgstr ""
+
+#: fortran/decl.cc:5138
+#, gcc-internal-format
+msgid "%qs is already IMPORTed from host scoping unit at %C"
+msgstr ""
+
+#: fortran/decl.cc:5179
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in IMPORT statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:5519
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing codimension specification at %C"
+msgstr ""
+
+#: fortran/decl.cc:5521
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing dimension specification at %C"
+msgstr ""
+
+#: fortran/decl.cc:5616
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate %s attribute at %L"
+msgstr ""
+
+#: fortran/decl.cc:5633
+#, gcc-internal-format
+msgid "%s at %L is a DEC extension, enable with %<-fdec-static%>"
+msgstr ""
+
+#: fortran/decl.cc:5652
+#, gcc-internal-format, gfc-internal-format
+msgid "ALLOCATABLE attribute at %C in a TYPE definition"
+msgstr ""
+
+#: fortran/decl.cc:5654
+#, gcc-internal-format, gfc-internal-format
+msgid "ALLOCATABLE attribute at %C in a STRUCTURE definition"
+msgstr ""
+
+#: fortran/decl.cc:5664
+#, gcc-internal-format, gfc-internal-format
+msgid "KIND attribute at %C in a TYPE definition"
+msgstr ""
+
+#: fortran/decl.cc:5666
+#, gcc-internal-format, gfc-internal-format
+msgid "KIND attribute at %C in a STRUCTURE definition"
+msgstr ""
+
+#: fortran/decl.cc:5674
+#, gcc-internal-format, gfc-internal-format
+msgid "Component with KIND attribute at %C must be INTEGER"
+msgstr ""
+
+#: fortran/decl.cc:5683
+#, gcc-internal-format, gfc-internal-format
+msgid "LEN attribute at %C in a TYPE definition"
+msgstr ""
+
+#: fortran/decl.cc:5685
+#, gcc-internal-format, gfc-internal-format
+msgid "LEN attribute at %C in a STRUCTURE definition"
+msgstr ""
+
+#: fortran/decl.cc:5693
+#, gcc-internal-format, gfc-internal-format
+msgid "Component with LEN attribute at %C must be INTEGER"
+msgstr ""
+
+#: fortran/decl.cc:5701
+#, gcc-internal-format, gfc-internal-format
+msgid "Attribute at %L is not allowed in a TYPE definition"
+msgstr ""
+
+#: fortran/decl.cc:5703
+#, gcc-internal-format, gfc-internal-format
+msgid "Attribute at %L is not allowed in a STRUCTURE definition"
+msgstr ""
+
+#: fortran/decl.cc:5721
+#, gcc-internal-format, gfc-internal-format
+msgid "Attribute %s at %L in a TYPE definition"
+msgstr ""
+
+#: fortran/decl.cc:5731
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute at %L is not allowed outside of the specification part of a module"
+msgstr ""
+
+#: fortran/decl.cc:5741
+#, gcc-internal-format, gfc-internal-format
+msgid "Attribute at %L is not allowed outside a TYPE definition"
+msgstr ""
+
+#: fortran/decl.cc:5754
+#, gcc-internal-format, gfc-internal-format
+msgid "ASYNCHRONOUS attribute at %C"
+msgstr ""
+
+#: fortran/decl.cc:5765
+#, gcc-internal-format, gfc-internal-format
+msgid "CONTIGUOUS attribute at %C"
+msgstr ""
+
+#: fortran/decl.cc:5820 fortran/decl.cc:9317
+#, gcc-internal-format, gfc-internal-format
+msgid "PROTECTED at %C only allowed in specification part of a module"
+msgstr ""
+
+#: fortran/decl.cc:5826
+#, gcc-internal-format, gfc-internal-format
+msgid "PROTECTED attribute at %C"
+msgstr ""
+
+#: fortran/decl.cc:5860
+#, gcc-internal-format, gfc-internal-format
+msgid "VALUE attribute at %C"
+msgstr ""
+
+#: fortran/decl.cc:5867
+#, gcc-internal-format, gfc-internal-format
+msgid "VOLATILE attribute at %C"
+msgstr ""
+
+#: fortran/decl.cc:5874
+#, gcc-internal-format
+msgid "match_attr_spec(): Bad attribute"
+msgstr ""
+
+#: fortran/decl.cc:5915
+#, gcc-internal-format, gfc-internal-format
+msgid "Multiple identifiers provided with single NAME= specifier at %C"
+msgstr ""
+
+#: fortran/decl.cc:6013
+#, gcc-internal-format
+msgid "Implicitly declared BIND(C) function %qs at %L may not be C interoperable"
+msgstr ""
+
+#: fortran/decl.cc:6035
+#, gcc-internal-format
+msgid "Variable %qs in common block %qs at %L may not be a C interoperable kind though common block %qs is BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:6046
+#, gcc-internal-format
+msgid "Type declaration %qs at %L is not C interoperable but it is BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:6052
+#, gcc-internal-format
+msgid "Variable %qs at %L may not be a C interoperable kind but it is BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:6064
+#, gcc-internal-format
+msgid "Variable %qs in common block %qs at %L cannot be declared with BIND(C) since it is not a global"
+msgstr ""
+
+#: fortran/decl.cc:6078
+#, gcc-internal-format
+msgid "Variable %qs at %L cannot have both the POINTER and BIND(C) attributes"
+msgstr ""
+
+#: fortran/decl.cc:6086
+#, gcc-internal-format
+msgid "Variable %qs at %L cannot have both the ALLOCATABLE and BIND(C) attributes"
+msgstr ""
+
+#: fortran/decl.cc:6098
+#, gcc-internal-format
+msgid "Return type of BIND(C) function %qs at %L cannot be an array"
+msgstr ""
+
+#: fortran/decl.cc:6104
+#, gcc-internal-format
+msgid "Return type of BIND(C) function %qs of character type at %L must have length 1"
+msgstr ""
+
+#. Use gfc_warning_now because we won't say that the symbol fails
+#. just because of this.
+#: fortran/decl.cc:6115
+#, gcc-internal-format
+msgid "Symbol %qs at %L is marked PRIVATE but has been given the binding label %qs"
+msgstr ""
+
+#: fortran/decl.cc:6189
+#, gcc-internal-format, gfc-internal-format
+msgid "Need either entity or common block name for attribute specification statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:6234
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing entity or common block name for attribute specification statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:6241
+#, gcc-internal-format
+msgid "Missing symbol"
+msgstr ""
+
+#: fortran/decl.cc:6270
+#, gcc-internal-format, gfc-internal-format
+msgid "BIND(C) statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:6332
+#, gcc-internal-format, gfc-internal-format
+msgid "CLASS entity at %C cannot have the PARAMETER attribute"
+msgstr ""
+
+#: fortran/decl.cc:6364
+#, gcc-internal-format, gfc-internal-format
+msgid "Derived type at %C has not been previously defined and so cannot appear in a derived type definition"
+msgstr ""
+
+#: fortran/decl.cc:6406
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in anonymous structure declaration at %C"
+msgstr ""
+
+#: fortran/decl.cc:6415
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in data declaration at %C"
+msgstr ""
+
+#: fortran/decl.cc:6487
+#, gcc-internal-format, gfc-internal-format
+msgid "MODULE prefix at %C"
+msgstr ""
+
+#: fortran/decl.cc:6492
+#, gcc-internal-format, gfc-internal-format
+msgid "MODULE prefix at %C found outside of a module, submodule, or interface"
+msgstr ""
+
+#: fortran/decl.cc:6543
+#, gcc-internal-format, gfc-internal-format
+msgid "IMPURE procedure at %C"
+msgstr ""
+
+#: fortran/decl.cc:6555
+#, gcc-internal-format, gfc-internal-format
+msgid "PURE and IMPURE must not appear both at %C"
+msgstr ""
+
+#: fortran/decl.cc:6601
+#, gcc-internal-format, gfc-internal-format
+msgid "ELEMENTAL prefix in MODULE PROCEDURE interface is missing at %L"
+msgstr ""
+
+#: fortran/decl.cc:6608
+#, gcc-internal-format, gfc-internal-format
+msgid "PURE prefix in MODULE PROCEDURE interface is missing at %L"
+msgstr ""
+
+#: fortran/decl.cc:6615
+#, gcc-internal-format, gfc-internal-format
+msgid "RECURSIVE prefix in MODULE PROCEDURE interface is missing at %L"
+msgstr ""
+
+#: fortran/decl.cc:6676
+#, gcc-internal-format, gfc-internal-format
+msgid "A type parameter list is required at %C"
+msgstr ""
+
+#: fortran/decl.cc:6690 fortran/primary.cc:1885
+#, gcc-internal-format, gfc-internal-format
+msgid "Alternate-return argument at %C"
+msgstr ""
+
+#: fortran/decl.cc:6696 fortran/decl.cc:6704
+#, gcc-internal-format, gfc-internal-format
+msgid "A parameter name is required at %C"
+msgstr ""
+
+#: fortran/decl.cc:6744
+#, gcc-internal-format
+msgid "Name %qs at %C is the name of the procedure"
+msgstr ""
+
+#: fortran/decl.cc:6757
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected parameter list in type declaration at %C"
+msgstr ""
+
+#: fortran/decl.cc:6760
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk in formal argument list at %C"
+msgstr ""
+
+#: fortran/decl.cc:6778
+#, gcc-internal-format
+msgid "Duplicate name %qs in parameter list at %C"
+msgstr ""
+
+#: fortran/decl.cc:6781
+#, gcc-internal-format
+msgid "Duplicate symbol %qs in formal argument list at %C"
+msgstr ""
+
+#: fortran/decl.cc:6823
+#, gcc-internal-format
+msgid "MODULE PROCEDURE formal argument %qs conflicts with alternate return at %C"
+msgstr ""
+
+#: fortran/decl.cc:6827
+#, gcc-internal-format
+msgid "MODULE PROCEDURE formal argument is alternate return and conflicts with %qs in the separate declaration at %C"
+msgstr ""
+
+#: fortran/decl.cc:6832
+#, gcc-internal-format, gfc-internal-format
+msgid "Mismatch in MODULE PROCEDURE formal argument names (%s/%s) at %C"
+msgstr ""
+
+#: fortran/decl.cc:6839
+#, gcc-internal-format, gfc-internal-format
+msgid "Mismatch in number of MODULE PROCEDURE formal arguments at %C"
+msgstr ""
+
+#: fortran/decl.cc:6878
+#, gcc-internal-format, gfc-internal-format
+msgid "RESULT variable at %C must be different than function name"
+msgstr ""
+
+#: fortran/decl.cc:6955
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after function declaration at %C"
+msgstr ""
+
+#: fortran/decl.cc:6965 fortran/decl.cc:8103
+#, gcc-internal-format, gfc-internal-format
+msgid "BIND(C) attribute at %L may not be specified for an internal procedure"
+msgstr ""
+
+#: fortran/decl.cc:7169
+#, gcc-internal-format, gfc-internal-format
+msgid "BIND(C) attribute at %C requires an interface with BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:7176
+#, gcc-internal-format, gfc-internal-format
+msgid "BIND(C) procedure with NAME may not have POINTER attribute at %C"
+msgstr ""
+
+#: fortran/decl.cc:7182
+#, gcc-internal-format, gfc-internal-format
+msgid "Dummy procedure at %C may not have BIND(C) attribute with NAME"
+msgstr ""
+
+#: fortran/decl.cc:7205
+#, gcc-internal-format
+msgid "Procedure %qs at %L already has basic type of %s"
+msgstr ""
+
+#: fortran/decl.cc:7251 fortran/decl.cc:7439 fortran/decl.cc:11443
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in PROCEDURE statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:7300 fortran/decl.cc:11343
+#, gcc-internal-format
+msgid "Expected %<::%> after binding-attributes at %C"
+msgstr ""
+
+#: fortran/decl.cc:7307
+#, gcc-internal-format, gfc-internal-format
+msgid "NOPASS or explicit interface required at %C"
+msgstr ""
+
+#: fortran/decl.cc:7311
+#, gcc-internal-format, gfc-internal-format
+msgid "Procedure pointer component at %C"
+msgstr ""
+
+#: fortran/decl.cc:7383
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in procedure pointer component at %C"
+msgstr ""
+
+#: fortran/decl.cc:7401
+#, gcc-internal-format, gfc-internal-format
+msgid "PROCEDURE at %C must be in a generic interface"
+msgstr ""
+
+#: fortran/decl.cc:7410 fortran/decl.cc:10083
+#, gcc-internal-format, gfc-internal-format
+msgid "double colon in MODULE PROCEDURE statement at %L"
+msgstr ""
+
+#: fortran/decl.cc:7480
+#, gcc-internal-format, gfc-internal-format
+msgid "PROCEDURE statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:7552
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected formal argument list in function definition at %C"
+msgstr ""
+
+#: fortran/decl.cc:7582 fortran/decl.cc:7861 fortran/decl.cc:8070
+#: fortran/symbol.cc:1916
+#, gcc-internal-format, gfc-internal-format
+msgid "BIND(C) attribute at %L can only be used for variables or common blocks"
+msgstr ""
+
+#: fortran/decl.cc:7612 fortran/decl.cc:8128
+#, gcc-internal-format
+msgid "Mismatch in BIND(C) names (%qs/%qs) at %C"
+msgstr ""
+
+#: fortran/decl.cc:7755
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:7764
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a PROGRAM"
+msgstr ""
+
+#: fortran/decl.cc:7767
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a MODULE"
+msgstr ""
+
+#: fortran/decl.cc:7770
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a SUBMODULE"
+msgstr ""
+
+#: fortran/decl.cc:7773
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a BLOCK DATA"
+msgstr ""
+
+#: fortran/decl.cc:7777 fortran/decl.cc:7822
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within an INTERFACE"
+msgstr ""
+
+#: fortran/decl.cc:7781
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a STRUCTURE block"
+msgstr ""
+
+#: fortran/decl.cc:7785
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block"
+msgstr ""
+
+#: fortran/decl.cc:7789
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within an IF-THEN block"
+msgstr ""
+
+#: fortran/decl.cc:7794
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a DO block"
+msgstr ""
+
+#: fortran/decl.cc:7798
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a SELECT block"
+msgstr ""
+
+#: fortran/decl.cc:7802
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a FORALL block"
+msgstr ""
+
+#: fortran/decl.cc:7806
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a WHERE block"
+msgstr ""
+
+#: fortran/decl.cc:7810
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear within a contained subprogram"
+msgstr ""
+
+#: fortran/decl.cc:7814
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected ENTRY statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:7835
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %C cannot appear in a contained procedure"
+msgstr ""
+
+#: fortran/decl.cc:7886 fortran/decl.cc:8110
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing required parentheses before BIND(C) at %C"
+msgstr ""
+
+#: fortran/decl.cc:7980
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY statement at %L with BIND(C) prohibited in an elemental procedure"
+msgstr ""
+
+#: fortran/decl.cc:8137
+#, gcc-internal-format, gfc-internal-format
+msgid "Alternate return dummy argument cannot appear in a SUBROUTINE with the BIND(C) attribute at %L"
+msgstr ""
+
+#: fortran/decl.cc:8200 fortran/decl.cc:8207
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid C identifier in NAME= specifier at %C"
+msgstr ""
+
+#: fortran/decl.cc:8247
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in NAME= specifier for binding label at %C"
+msgstr ""
+
+#: fortran/decl.cc:8263
+#, gcc-internal-format, gfc-internal-format
+msgid "NAME= specifier at %C should be a constant expression"
+msgstr ""
+
+#: fortran/decl.cc:8271
+#, gcc-internal-format, gfc-internal-format
+msgid "NAME= specifier at %C should be a scalar of default character kind"
+msgstr ""
+
+#: fortran/decl.cc:8290
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing closing paren for binding label at %C"
+msgstr ""
+
+#: fortran/decl.cc:8296
+#, gcc-internal-format, gfc-internal-format
+msgid "No binding name is allowed in BIND(C) at %C"
+msgstr ""
+
+#: fortran/decl.cc:8302
+#, gcc-internal-format, gfc-internal-format
+msgid "For dummy procedure %s, no binding name is allowed in BIND(C) at %C"
+msgstr ""
+
+#: fortran/decl.cc:8331
+#, gcc-internal-format, gfc-internal-format
+msgid "NAME not allowed on BIND(C) for ABSTRACT INTERFACE at %C"
+msgstr ""
+
+#: fortran/decl.cc:8578
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected END statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:8587
+#, gcc-internal-format, gfc-internal-format
+msgid "END statement instead of %s statement at %L"
+msgstr ""
+
+#. We would have required END [something].
+#: fortran/decl.cc:8596
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement expected at %L"
+msgstr ""
+
+#: fortran/decl.cc:8607
+#, gcc-internal-format, gfc-internal-format
+msgid "Expecting %s statement at %L"
+msgstr ""
+
+#: fortran/decl.cc:8627
+#, gcc-internal-format
+msgid "Expected block name of %qs in %s statement at %L"
+msgstr ""
+
+#: fortran/decl.cc:8644
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected terminating name at %C"
+msgstr ""
+
+#: fortran/decl.cc:8658 fortran/decl.cc:8666
+#, gcc-internal-format
+msgid "Expected label %qs for %s statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:8765
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing array specification at %L in DIMENSION statement"
+msgstr ""
+
+#: fortran/decl.cc:8773
+#, gcc-internal-format, gfc-internal-format
+msgid "Dimensions specified for %s at %L after its initialization"
+msgstr ""
+
+#: fortran/decl.cc:8781
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing array specification at %L in CODIMENSION statement"
+msgstr ""
+
+#: fortran/decl.cc:8790
+#, gcc-internal-format, gfc-internal-format
+msgid "Array specification must be deferred at %L"
+msgstr ""
+
+#: fortran/decl.cc:8895
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected character in variable list at %C"
+msgstr ""
+
+#: fortran/decl.cc:8932
+#, gcc-internal-format
+msgid "Expected %<(%> at %C"
+msgstr ""
+
+#: fortran/decl.cc:8946 fortran/decl.cc:8986
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected variable name at %C"
+msgstr ""
+
+#: fortran/decl.cc:8962
+#, gcc-internal-format, gfc-internal-format
+msgid "Cray pointer at %C must be an integer"
+msgstr ""
+
+#: fortran/decl.cc:8966
+#, gcc-internal-format, gfc-internal-format
+msgid "Cray pointer at %C has %d bytes of precision; memory addresses require %d bytes"
+msgstr ""
+
+#: fortran/decl.cc:8972
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected \",\" at %C"
+msgstr ""
+
+#: fortran/decl.cc:9011
+#, gcc-internal-format
+msgid "Cannot set Cray pointee array spec."
+msgstr ""
+
+#: fortran/decl.cc:9035
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected \")\" at %C"
+msgstr ""
+
+#: fortran/decl.cc:9047
+#, gcc-internal-format
+msgid "Expected %<,%> or end of statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9073
+#, gcc-internal-format, gfc-internal-format
+msgid "INTENT is not allowed inside of BLOCK at %C"
+msgstr ""
+
+#: fortran/decl.cc:9105
+#, gcc-internal-format, gfc-internal-format
+msgid "OPTIONAL is not allowed inside of BLOCK at %C"
+msgstr ""
+
+#: fortran/decl.cc:9124
+#, gcc-internal-format
+msgid "Cray pointer declaration at %C requires %<-fcray-pointer%> flag"
+msgstr ""
+
+#: fortran/decl.cc:9163
+#, gcc-internal-format, gfc-internal-format
+msgid "CONTIGUOUS statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9261
+#, gcc-internal-format, gfc-internal-format
+msgid "Access specification of the %s operator at %C has already been specified"
+msgstr ""
+
+#: fortran/decl.cc:9277
+#, gcc-internal-format, gfc-internal-format
+msgid "Access specification of the .%s. operator at %C has already been specified"
+msgstr ""
+
+#: fortran/decl.cc:9325
+#, gcc-internal-format, gfc-internal-format
+msgid "PROTECTED statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9359
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in PROTECTED statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9386 fortran/decl.cc:9411
+#, gcc-internal-format, gfc-internal-format
+msgid "PRIVATE statement at %C is only allowed in the specification part of a module"
+msgstr ""
+
+#: fortran/decl.cc:9432 fortran/decl.cc:9452
+#, gcc-internal-format, gfc-internal-format
+msgid "PUBLIC statement at %C is only allowed in the specification part of a module"
+msgstr ""
+
+#: fortran/decl.cc:9474
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected variable name at %C in PARAMETER statement"
+msgstr ""
+
+#: fortran/decl.cc:9481
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected = sign in PARAMETER statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9487
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected expression at %C in PARAMETER statement"
+msgstr ""
+
+#: fortran/decl.cc:9507
+#, gcc-internal-format, gfc-internal-format
+msgid "Initializing already initialized variable at %C"
+msgstr ""
+
+#. With legacy PARAMETER statements, don't expect a terminating ')'.
+#: fortran/decl.cc:9532
+#, gcc-internal-format, gfc-internal-format
+msgid "PARAMETER without '()' at %C"
+msgstr ""
+
+#: fortran/decl.cc:9548
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected characters in PARAMETER statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9567 fortran/decl.cc:9623
+#, gcc-internal-format
+msgid "%s at %C is a DEC extension, enable with %<-fdec-static%>"
+msgstr ""
+
+#: fortran/decl.cc:9602
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected entity-list in AUTOMATIC statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9609
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in AUTOMATIC statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9658
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected entity-list in STATIC statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9665
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in STATIC statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9684
+#, gcc-internal-format, gfc-internal-format
+msgid "Blanket SAVE statement at %C follows previous SAVE statement"
+msgstr ""
+
+#: fortran/decl.cc:9695
+#, gcc-internal-format, gfc-internal-format
+msgid "SAVE statement at %C follows blanket SAVE statement"
+msgstr ""
+
+#: fortran/decl.cc:9743
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in SAVE statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9760
+#, gcc-internal-format, gfc-internal-format
+msgid "VALUE is not allowed inside of BLOCK at %C"
+msgstr ""
+
+#: fortran/decl.cc:9764
+#, gcc-internal-format, gfc-internal-format
+msgid "VALUE statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9802
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in VALUE statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9814
+#, gcc-internal-format, gfc-internal-format
+msgid "VOLATILE statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9841
+#, gcc-internal-format
+msgid "Specifying VOLATILE for coarray variable %qs at %C, which is use-/host-associated"
+msgstr ""
+
+#: fortran/decl.cc:9866
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in VOLATILE statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9878
+#, gcc-internal-format, gfc-internal-format
+msgid "ASYNCHRONOUS statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9922
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in ASYNCHRONOUS statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:9947
+#, gcc-internal-format, gfc-internal-format
+msgid "MODULE PROCEDURE declaration at %C"
+msgstr ""
+
+#: fortran/decl.cc:10058
+#, gcc-internal-format, gfc-internal-format
+msgid "MODULE PROCEDURE at %C must be in a generic module interface"
+msgstr ""
+
+#: fortran/decl.cc:10116
+#, gcc-internal-format, gfc-internal-format
+msgid "Intrinsic procedure at %L cannot be a MODULE PROCEDURE"
+msgstr ""
+
+#: fortran/decl.cc:10165
+#, gcc-internal-format, gfc-internal-format
+msgid "Ambiguous symbol in TYPE definition at %C"
+msgstr ""
+
+#: fortran/decl.cc:10174
+#, gcc-internal-format
+msgid "Symbol %qs at %C has not been previously defined"
+msgstr ""
+
+#: fortran/decl.cc:10180
+#, gcc-internal-format
+msgid "%qs in EXTENDS expression at %C is not a derived type"
+msgstr ""
+
+#: fortran/decl.cc:10187
+#, gcc-internal-format
+msgid "%qs cannot be extended at %C because it is BIND(C)"
+msgstr ""
+
+#: fortran/decl.cc:10194
+#, gcc-internal-format
+msgid "%qs cannot be extended at %C because it is a SEQUENCE type"
+msgstr ""
+
+#: fortran/decl.cc:10217
+#, gcc-internal-format, gfc-internal-format
+msgid "Derived type at %C can only be PRIVATE in the specification part of a module"
+msgstr ""
+
+#: fortran/decl.cc:10229
+#, gcc-internal-format, gfc-internal-format
+msgid "Derived type at %C can only be PUBLIC in the specification part of a module"
+msgstr ""
+
+#: fortran/decl.cc:10250
+#, gcc-internal-format, gfc-internal-format
+msgid "ABSTRACT type at %C"
+msgstr ""
+
+#: fortran/decl.cc:10296
+#, gcc-internal-format, gfc-internal-format
+msgid "Failed to create structure type '%s' at %C"
+msgstr ""
+
+#: fortran/decl.cc:10302
+#, gcc-internal-format
+msgid "Type definition of %qs at %C was already defined at %L"
+msgstr ""
+
+#: fortran/decl.cc:10349
+#, gcc-internal-format, gfc-internal-format
+msgid "Junk after MAP statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:10382
+#, gcc-internal-format, gfc-internal-format
+msgid "Junk after UNION statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:10417
+#, gcc-internal-format
+msgid "%s at %C is a DEC extension, enable with %<-fdec-structure%>"
+msgstr ""
+
+#: fortran/decl.cc:10431
+#, gcc-internal-format, gfc-internal-format
+msgid "Structure name expected in non-nested structure declaration at %C"
+msgstr ""
+
+#: fortran/decl.cc:10449
+#, gcc-internal-format, gfc-internal-format
+msgid "Junk after non-nested STRUCTURE statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:10456
+#, gcc-internal-format
+msgid "Structure name %qs at %C cannot be the same as an intrinsic type"
+msgstr ""
+
+#: fortran/decl.cc:10619
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected :: in TYPE definition at %C"
+msgstr ""
+
+#: fortran/decl.cc:10632
+#, gcc-internal-format, gfc-internal-format
+msgid "Mangled derived type definition at %C"
+msgstr ""
+
+#: fortran/decl.cc:10661
+#, gcc-internal-format
+msgid "Type name %qs at %C cannot be the same as an intrinsic type"
+msgstr ""
+
+#: fortran/decl.cc:10672
+#, gcc-internal-format
+msgid "Derived type name %qs at %C already has a basic type of %s"
+msgstr ""
+
+#: fortran/decl.cc:10675
+#, gcc-internal-format
+msgid "Derived type name %qs at %C already has a basic type"
+msgstr ""
+
+#: fortran/decl.cc:10690
+#, gcc-internal-format
+msgid "Dummy argument %qs at %L cannot be a derived type at %C"
+msgstr ""
+
+#: fortran/decl.cc:10699
+#, gcc-internal-format
+msgid "Derived type definition of %qs at %C has already been defined"
+msgstr ""
+
+#: fortran/decl.cc:10762
+#, gcc-internal-format, gfc-internal-format
+msgid "Garbage after PARAMETERIZED TYPE declaration at %C"
+msgstr ""
+
+#: fortran/decl.cc:10845
+#, gcc-internal-format, gfc-internal-format
+msgid "Cray Pointee at %C cannot be assumed shape array"
+msgstr ""
+
+#: fortran/decl.cc:10865
+#, gcc-internal-format, gfc-internal-format
+msgid "ENUM and ENUMERATOR at %C"
+msgstr ""
+
+#: fortran/decl.cc:10897
+#, gcc-internal-format, gfc-internal-format
+msgid "Enumerator exceeds the C integer type at %C"
+msgstr ""
+
+#: fortran/decl.cc:10976
+#, gcc-internal-format, gfc-internal-format
+msgid "ENUMERATOR %L not initialized with integer expression"
+msgstr ""
+
+#: fortran/decl.cc:11024
+#, gcc-internal-format, gfc-internal-format
+msgid "ENUM definition statement expected before %C"
+msgstr ""
+
+#: fortran/decl.cc:11060
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in ENUMERATOR definition at %C"
+msgstr ""
+
+#: fortran/decl.cc:11107 fortran/decl.cc:11122
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate access-specifier at %C"
+msgstr ""
+
+#: fortran/decl.cc:11142
+#, gcc-internal-format, gfc-internal-format
+msgid "Binding attributes already specify passing, illegal NOPASS at %C"
+msgstr ""
+
+#: fortran/decl.cc:11162
+#, gcc-internal-format, gfc-internal-format
+msgid "Binding attributes already specify passing, illegal PASS at %C"
+msgstr ""
+
+#: fortran/decl.cc:11189
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate POINTER attribute at %C"
+msgstr ""
+
+#: fortran/decl.cc:11207
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate NON_OVERRIDABLE at %C"
+msgstr ""
+
+#: fortran/decl.cc:11223
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate DEFERRED at %C"
+msgstr ""
+
+#: fortran/decl.cc:11236
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected access-specifier at %C"
+msgstr ""
+
+#: fortran/decl.cc:11238
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected binding attribute at %C"
+msgstr ""
+
+#: fortran/decl.cc:11246
+#, gcc-internal-format, gfc-internal-format
+msgid "NON_OVERRIDABLE and DEFERRED cannot both appear at %C"
+msgstr ""
+
+#: fortran/decl.cc:11259
+#, gcc-internal-format, gfc-internal-format
+msgid "POINTER attribute is required for procedure pointer component at %C"
+msgstr ""
+
+#: fortran/decl.cc:11301
+#, gcc-internal-format
+msgid "Interface-name expected after %<(%> at %C"
+msgstr ""
+
+#: fortran/decl.cc:11307
+#, gcc-internal-format
+msgid "%<)%> expected at %C"
+msgstr ""
+
+#: fortran/decl.cc:11327
+#, gcc-internal-format, gfc-internal-format
+msgid "Interface must be specified for DEFERRED binding at %C"
+msgstr ""
+
+#: fortran/decl.cc:11332
+#, gcc-internal-format, gfc-internal-format
+msgid "PROCEDURE(interface) at %C should be declared DEFERRED"
+msgstr ""
+
+#: fortran/decl.cc:11355
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected binding name at %C"
+msgstr ""
+
+#: fortran/decl.cc:11359
+#, gcc-internal-format, gfc-internal-format
+msgid "PROCEDURE list at %C"
+msgstr ""
+
+#: fortran/decl.cc:11371
+#, gcc-internal-format
+msgid "%<=> target%> is invalid for DEFERRED binding at %C"
+msgstr ""
+
+#: fortran/decl.cc:11377
+#, gcc-internal-format
+msgid "%<::%> needed in PROCEDURE binding with explicit target at %C"
+msgstr ""
+
+#: fortran/decl.cc:11387
+#, gcc-internal-format
+msgid "Expected binding target after %<=>%> at %C"
+msgstr ""
+
+#: fortran/decl.cc:11404
+#, gcc-internal-format
+msgid "Type %qs containing DEFERRED binding at %C is not ABSTRACT"
+msgstr ""
+
+#: fortran/decl.cc:11415
+#, gcc-internal-format
+msgid "There is already a procedure with binding name %qs for the derived type %qs at %C"
+msgstr ""
+
+#: fortran/decl.cc:11466
+#, gcc-internal-format, gfc-internal-format
+msgid "GENERIC at %C must be inside a derived-type CONTAINS"
+msgstr ""
+
+#: fortran/decl.cc:11486
+#, gcc-internal-format
+msgid "Expected %<::%> at %C"
+msgstr ""
+
+#: fortran/decl.cc:11498
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected generic name or operator descriptor at %C"
+msgstr ""
+
+#: fortran/decl.cc:11519
+#, gcc-internal-format, gfc-internal-format
+msgid "Malformed GENERIC statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:11530
+#, gcc-internal-format
+msgid "Expected %<=>%> at %C"
+msgstr ""
+
+#: fortran/decl.cc:11566
+#, gcc-internal-format
+msgid "There's already a non-generic procedure with binding name %qs for the derived type %qs at %C"
+msgstr ""
+
+#: fortran/decl.cc:11574
+#, gcc-internal-format
+msgid "Binding at %C must have the same access as already defined binding %qs"
+msgstr ""
+
+#: fortran/decl.cc:11622
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected specific binding name at %C"
+msgstr ""
+
+#: fortran/decl.cc:11632
+#, gcc-internal-format
+msgid "%qs already defined as specific binding for the generic %qs at %C"
+msgstr ""
+
+#: fortran/decl.cc:11650
+#, gcc-internal-format, gfc-internal-format
+msgid "Junk after GENERIC binding at %C"
+msgstr ""
+
+#: fortran/decl.cc:11685
+#, gcc-internal-format, gfc-internal-format
+msgid "FINAL declaration at %C must be inside a derived type CONTAINS section"
+msgstr ""
+
+#: fortran/decl.cc:11697
+#, gcc-internal-format, gfc-internal-format
+msgid "Derived type declaration with FINAL at %C must be in the specification part of a MODULE"
+msgstr ""
+
+#: fortran/decl.cc:11719
+#, gcc-internal-format, gfc-internal-format
+msgid "Empty FINAL at %C"
+msgstr ""
+
+#: fortran/decl.cc:11726
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected module procedure name at %C"
+msgstr ""
+
+#: fortran/decl.cc:11736
+#, gcc-internal-format
+msgid "Expected %<,%> at %C"
+msgstr ""
+
+#: fortran/decl.cc:11742
+#, gcc-internal-format
+msgid "Unknown procedure name %qs at %C"
+msgstr ""
+
+#: fortran/decl.cc:11755
+#, gcc-internal-format
+msgid "%qs at %C is already defined as FINAL procedure"
+msgstr ""
+
+#: fortran/decl.cc:11829
+#, gcc-internal-format, gfc-internal-format
+msgid "Unknown attribute in !GCC$ ATTRIBUTES statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:11875
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C"
+msgstr ""
+
+#: fortran/decl.cc:11896
+#, gcc-internal-format
+msgid "%<GCC unroll%> directive requires a non-negative integral constant less than or equal to %u at %C"
+msgstr ""
+
+#: fortran/decl.cc:11910
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in !GCC$ UNROLL directive at %C"
+msgstr ""
+
+#: fortran/decl.cc:11974
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in !GCC$ IVDEP directive at %C"
+msgstr ""
+
+#: fortran/decl.cc:11991
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in !GCC$ VECTOR directive at %C"
+msgstr ""
+
+#: fortran/decl.cc:12008
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in !GCC$ NOVECTOR directive at %C"
+msgstr ""
+
+#: fortran/dependency.cc:106
+#, gcc-internal-format
+msgid "identical_array_ref(): inconsistent dimensions"
+msgstr ""
+
+#: fortran/dependency.cc:199
+#, gcc-internal-format
+msgid "are_identical_variables: Bad type"
+msgstr ""
+
+#: fortran/dependency.cc:1021
+#, gcc-internal-format, gfc-internal-format
+msgid "INTENT(%s) actual argument at %L might interfere with actual argument at %L."
+msgstr ""
+
+#: fortran/dependency.cc:1325
+#, gcc-internal-format
+msgid "gfc_check_dependency: expecting an EXPR_VARIABLE"
+msgstr ""
+
+#: fortran/dump-parse-tree.cc:296
+#, gcc-internal-format
+msgid "show_array_spec(): Unhandled array shape type."
+msgstr ""
+
+#: fortran/dump-parse-tree.cc:375
+#, gcc-internal-format
+msgid "show_array_ref(): Unknown array reference"
+msgstr ""
+
+#: fortran/dump-parse-tree.cc:449
+#, gcc-internal-format
+msgid "show_ref(): Bad component code"
+msgstr ""
+
+#: fortran/dump-parse-tree.cc:722
+#, gcc-internal-format
+msgid "show_expr(): Bad intrinsic in expression"
+msgstr ""
+
+#: fortran/dump-parse-tree.cc:765
+#, gcc-internal-format
+msgid "show_expr(): Don't know how to show expr"
+msgstr ""
+
+#: fortran/dump-parse-tree.cc:3567
+#, gcc-internal-format
+msgid "show_code_node(): Bad statement code"
+msgstr ""
+
+#: fortran/dump-parse-tree.cc:3903 fortran/dump-parse-tree.cc:4008
+#, gcc-internal-format
+msgid "Cannot convert %qs to interoperable type at %L"
+msgstr ""
+
+#: fortran/error.cc:388
+#, gcc-internal-format, gfc-internal-format
+msgid "    Included at %s:%d:"
+msgstr ""
+
+#: fortran/error.cc:474
+#, gcc-internal-format
+msgid "<During initialization>\n"
+msgstr ""
+
+#: fortran/expr.cc:149
+#, gcc-internal-format
+msgid "gfc_get_constant_expr(): locus %<where%> cannot be NULL"
+msgstr ""
+
+#: fortran/expr.cc:357
+#, gcc-internal-format
+msgid "gfc_copy_expr(): Bad expr node"
+msgstr ""
+
+#: fortran/expr.cc:514
+#, gcc-internal-format
+msgid "free_expr0(): Bad expr type"
+msgstr ""
+
+#: fortran/expr.cc:669 fortran/expr.cc:671 fortran/expr.cc:722
+#: fortran/expr.cc:724
+#, gcc-internal-format, gfc-internal-format
+msgid "Constant expression required at %C"
+msgstr ""
+
+#: fortran/expr.cc:678 fortran/expr.cc:680 fortran/expr.cc:731
+#: fortran/expr.cc:733
+#, gcc-internal-format, gfc-internal-format
+msgid "Integer expression required at %C"
+msgstr ""
+
+#: fortran/expr.cc:688 fortran/expr.cc:690 fortran/expr.cc:744
+#: fortran/expr.cc:746
+#, gcc-internal-format, gfc-internal-format
+msgid "Integer value too large in expression at %C"
+msgstr ""
+
+#: fortran/expr.cc:1117
+#, gcc-internal-format
+msgid "gfc_is_constant_expr(): Unknown expression type"
+msgstr ""
+
+#: fortran/expr.cc:1312
+#, gcc-internal-format
+msgid "simplify_intrinsic_op(): Bad operator"
+msgstr ""
+
+#: fortran/expr.cc:1417
+#, gcc-internal-format, gfc-internal-format
+msgid "Index in dimension %d is out of bounds at %L"
+msgstr ""
+
+#: fortran/expr.cc:1616 fortran/expr.cc:1667
+#, gcc-internal-format, gfc-internal-format
+msgid "index in dimension %d is out of bounds at %L"
+msgstr ""
+
+#: fortran/expr.cc:1742
+#, gcc-internal-format
+msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit.  See %<-fmax-array-constructor%> option"
+msgstr ""
+
+#: fortran/expr.cc:1753
+#, gcc-internal-format, gfc-internal-format
+msgid "Error in array constructor referenced at %L"
+msgstr ""
+
+#: fortran/expr.cc:1861 fortran/primary.cc:2398 fortran/primary.cc:2575
+#, gcc-internal-format, gfc-internal-format
+msgid "LEN part_ref at %C"
+msgstr ""
+
+#: fortran/expr.cc:1886 fortran/primary.cc:2393 fortran/primary.cc:2590
+#, gcc-internal-format, gfc-internal-format
+msgid "KIND part_ref at %C"
+msgstr ""
+
+#: fortran/expr.cc:1897
+#, gcc-internal-format, gfc-internal-format
+msgid "RE part_ref at %C"
+msgstr ""
+
+#: fortran/expr.cc:1909
+#, gcc-internal-format, gfc-internal-format
+msgid "IM part_ref at %C"
+msgstr ""
+
+#: fortran/expr.cc:2559
+#, gcc-internal-format, gfc-internal-format
+msgid "elemental function arguments at %C are not compliant"
+msgstr ""
+
+#: fortran/expr.cc:2603
+#, gcc-internal-format, gfc-internal-format
+msgid "Numeric or CHARACTER operands are required in expression at %L"
+msgstr ""
+
+#: fortran/expr.cc:2628
+#, gcc-internal-format, gfc-internal-format
+msgid "Concatenation operator in expression at %L must have two CHARACTER operands"
+msgstr ""
+
+#: fortran/expr.cc:2635
+#, gcc-internal-format, gfc-internal-format
+msgid "Concat operator at %L must concatenate strings of the same kind"
+msgstr ""
+
+#: fortran/expr.cc:2645
+#, gcc-internal-format, gfc-internal-format
+msgid ".NOT. operator in expression at %L must have a LOGICAL operand"
+msgstr ""
+
+#: fortran/expr.cc:2661
+#, gcc-internal-format, gfc-internal-format
+msgid "LOGICAL operands are required in expression at %L"
+msgstr ""
+
+#: fortran/expr.cc:2672
+#, gcc-internal-format, gfc-internal-format
+msgid "Only intrinsic operators can be used in expression at %L"
+msgstr ""
+
+#: fortran/expr.cc:2680
+#, gcc-internal-format, gfc-internal-format
+msgid "Numeric operands are required in expression at %L"
+msgstr ""
+
+#: fortran/expr.cc:2703
+#, gcc-internal-format
+msgid "Invalid initialization expression for ALLOCATABLE component %qs in structure constructor at %L"
+msgstr ""
+
+#: fortran/expr.cc:2840
+#, gcc-internal-format
+msgid "Assumed or deferred character length variable %qs in constant expression at %L"
+msgstr ""
+
+#: fortran/expr.cc:2915
+#, gcc-internal-format
+msgid "transformational intrinsic %qs at %L is not permitted in an initialization expression"
+msgstr ""
+
+#: fortran/expr.cc:2946
+#, gcc-internal-format, gfc-internal-format
+msgid "Evaluation of nonstandard initialization expression at %L"
+msgstr ""
+
+#: fortran/expr.cc:3023 fortran/resolve.cc:2862
+#, gcc-internal-format
+msgid "Function %qs in initialization expression at %L must be an intrinsic function"
+msgstr ""
+
+#: fortran/expr.cc:3035
+#, gcc-internal-format
+msgid "Intrinsic function %qs at %L is not permitted in an initialization expression"
+msgstr ""
+
+#: fortran/expr.cc:3074
+#, gcc-internal-format
+msgid "PARAMETER %qs is used at %L before its definition is complete"
+msgstr ""
+
+#: fortran/expr.cc:3094
+#, gcc-internal-format
+msgid "Assumed size array %qs at %L is not permitted in an initialization expression"
+msgstr ""
+
+#: fortran/expr.cc:3100
+#, gcc-internal-format
+msgid "Assumed shape array %qs at %L is not permitted in an initialization expression"
+msgstr ""
+
+#: fortran/expr.cc:3109
+#, gcc-internal-format
+msgid "Assumed-shape array %qs at %L is not permitted in an initialization expression"
+msgstr ""
+
+#: fortran/expr.cc:3113
+#, gcc-internal-format
+msgid "Deferred array %qs at %L is not permitted in an initialization expression"
+msgstr ""
+
+#: fortran/expr.cc:3119
+#, gcc-internal-format
+msgid "Array %qs at %L is a variable, which does not reduce to a constant expression"
+msgstr ""
+
+#: fortran/expr.cc:3125
+#, gcc-internal-format
+msgid "Assumed-rank array %qs at %L is not permitted in an initialization expression"
+msgstr ""
+
+#: fortran/expr.cc:3135
+#, gcc-internal-format
+msgid "Parameter %qs at %L has not been declared or is a variable, which does not reduce to a constant expression"
+msgstr ""
+
+#: fortran/expr.cc:3189
+#, gcc-internal-format
+msgid "check_init_expr(): Unknown expression type"
+msgstr ""
+
+#: fortran/expr.cc:3329
+#, gcc-internal-format
+msgid "Specification function %qs at %L cannot be a statement function"
+msgstr ""
+
+#: fortran/expr.cc:3336
+#, gcc-internal-format
+msgid "Specification function %qs at %L cannot be an internal function"
+msgstr ""
+
+#: fortran/expr.cc:3343
+#, gcc-internal-format
+msgid "Specification function %qs at %L must be PURE"
+msgstr ""
+
+#: fortran/expr.cc:3351
+#, gcc-internal-format
+msgid "Specification function %qs at %L cannot be RECURSIVE"
+msgstr ""
+
+#: fortran/expr.cc:3498
+#, gcc-internal-format
+msgid "Dummy argument %qs not allowed in expression at %L"
+msgstr ""
+
+#: fortran/expr.cc:3506
+#, gcc-internal-format
+msgid "Dummy argument %qs at %L cannot be OPTIONAL"
+msgstr ""
+
+#: fortran/expr.cc:3513
+#, gcc-internal-format
+msgid "Dummy argument %qs at %L cannot be INTENT(OUT)"
+msgstr ""
+
+#: fortran/expr.cc:3535
+#, gcc-internal-format
+msgid "Variable %qs cannot appear in the expression at %L"
+msgstr ""
+
+#: fortran/expr.cc:3566
+#, gcc-internal-format
+msgid "check_restricted(): Unknown expression type"
+msgstr ""
+
+#: fortran/expr.cc:3586
+#, gcc-internal-format, gfc-internal-format
+msgid "Expression at %L must be of INTEGER type, found %s"
+msgstr ""
+
+#: fortran/expr.cc:3598
+#, gcc-internal-format
+msgid "Function %qs at %L must be PURE"
+msgstr ""
+
+#: fortran/expr.cc:3607
+#, gcc-internal-format, gfc-internal-format
+msgid "Expression at %L must be scalar"
+msgstr ""
+
+#. Reject truncation.
+#: fortran/expr.cc:3639
+#, gcc-internal-format, gfc-internal-format
+msgid "optype_msgid overflow: %d"
+msgstr ""
+
+#: fortran/expr.cc:3643
+#, gcc-internal-format, gfc-internal-format
+msgid "Incompatible ranks in %s (%d and %d) at %L"
+msgstr ""
+
+#: fortran/expr.cc:3657
+#, gcc-internal-format, gfc-internal-format
+msgid "Different shape for %s at %L on dimension %d (%d and %d)"
+msgstr ""
+
+#: fortran/expr.cc:3705
+#, gcc-internal-format, gfc-internal-format
+msgid "Assignment to a LEN or KIND part_ref at %L is not allowed"
+msgstr ""
+
+#: fortran/expr.cc:3761
+#, gcc-internal-format
+msgid "%qs at %L is not a VALUE"
+msgstr ""
+
+#: fortran/expr.cc:3772
+#, gcc-internal-format, gfc-internal-format
+msgid "Illegal assignment to external procedure at %L"
+msgstr ""
+
+#: fortran/expr.cc:3780
+#, gcc-internal-format, gfc-internal-format
+msgid "Incompatible ranks %d and %d in assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:3787
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable type is UNKNOWN in assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:3799
+#, gcc-internal-format, gfc-internal-format
+msgid "NULL appears on right-hand side in assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:3809
+#, gcc-internal-format, gfc-internal-format
+msgid "POINTER-valued function appears on right-hand side of assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:3852
+#, gcc-internal-format
+msgid "BOZ literal constant near %L cannot be assigned to a %qs variable"
+msgstr ""
+
+#: fortran/expr.cc:3859
+#, gcc-internal-format, gfc-internal-format
+msgid "The assignment to a KIND or LEN component of a parameterized type at %L is not allowed"
+msgstr ""
+
+#: fortran/expr.cc:3889
+#, gcc-internal-format, gfc-internal-format
+msgid "Incompatible types in DATA statement at %L; attempted conversion of %s to %s"
+msgstr ""
+
+#: fortran/expr.cc:3933
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer assignment target is not a POINTER at %L"
+msgstr ""
+
+#: fortran/expr.cc:3941
+#, gcc-internal-format
+msgid "%qs in the pointer assignment at %L cannot be an l-value since it is a procedure"
+msgstr ""
+
+#: fortran/expr.cc:3965
+#, gcc-internal-format
+msgid "Expected bounds specification for %qs at %L"
+msgstr ""
+
+#: fortran/expr.cc:3970
+#, gcc-internal-format
+msgid "Bounds specification for %qs in pointer assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:3999
+#, gcc-internal-format, gfc-internal-format
+msgid "Stride must not be present at %L"
+msgstr ""
+
+#: fortran/expr.cc:4005 fortran/expr.cc:4025
+#, gcc-internal-format
+msgid "Rank remapping requires a list of %<lower-bound : upper-bound%> specifications at %L"
+msgstr ""
+
+#: fortran/expr.cc:4013 fortran/expr.cc:4032
+#, gcc-internal-format
+msgid "Expected list of %<lower-bound :%> or list of %<lower-bound : upper-bound%> specifications at %L"
+msgstr ""
+
+#: fortran/expr.cc:4059
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer object at %L shall not have a coindex"
+msgstr ""
+
+#: fortran/expr.cc:4080
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid procedure pointer assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:4105
+#, gcc-internal-format
+msgid "Function result %qs is invalid as proc-target in procedure pointer assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:4114
+#, gcc-internal-format
+msgid "Abstract interface %qs is invalid in procedure pointer assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:4124
+#, gcc-internal-format
+msgid "Statement function %qs is invalid in procedure pointer assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:4130
+#, gcc-internal-format
+msgid "Internal procedure %qs is invalid in procedure pointer assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:4137
+#, gcc-internal-format
+msgid "Intrinsic %qs at %L is invalid in procedure pointer assignment"
+msgstr ""
+
+#: fortran/expr.cc:4145
+#, gcc-internal-format
+msgid "Nonintrinsic elemental procedure %qs is invalid in procedure pointer assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:4168
+#, gcc-internal-format, gfc-internal-format
+msgid "Mismatch in the procedure pointer assignment at %L: mismatch in the calling convention"
+msgstr ""
+
+#: fortran/expr.cc:4221
+#, gcc-internal-format
+msgid "Interface mismatch in procedure pointer assignment at %L: %qs is not a subroutine"
+msgstr ""
+
+#: fortran/expr.cc:4231 fortran/expr.cc:4246
+#, gcc-internal-format
+msgid "Explicit interface required for component %qs at %L: %s"
+msgstr ""
+
+#: fortran/expr.cc:4237 fortran/expr.cc:4252 fortran/resolve.cc:2742
+#, gcc-internal-format
+msgid "Explicit interface required for %qs at %L: %s"
+msgstr ""
+
+#: fortran/expr.cc:4264
+#, gcc-internal-format, gfc-internal-format
+msgid "Interface mismatch in procedure pointer assignment at %L: %s"
+msgstr ""
+
+#: fortran/expr.cc:4273
+#, gcc-internal-format
+msgid "Procedure pointer target %qs at %L must be either an intrinsic, host or use associated, referenced or have the EXTERNAL attribute"
+msgstr ""
+
+#: fortran/expr.cc:4286
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer assignment target cannot be a constant at %L"
+msgstr ""
+
+#: fortran/expr.cc:4300
+#, gcc-internal-format, gfc-internal-format
+msgid "Data-pointer-object at %L must be unlimited polymorphic, or of a type with the BIND or SEQUENCE attribute, to be compatible with an unlimited polymorphic target"
+msgstr ""
+
+#: fortran/expr.cc:4305
+#, gcc-internal-format, gfc-internal-format
+msgid "Different types in pointer assignment at %L; attempted assignment of %s to %s"
+msgstr ""
+
+#: fortran/expr.cc:4313
+#, gcc-internal-format, gfc-internal-format
+msgid "Different kind type parameters in pointer assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:4320
+#, gcc-internal-format, gfc-internal-format
+msgid "Different ranks in pointer assignment at %L"
+msgstr ""
+
+#: fortran/expr.cc:4339
+#, gcc-internal-format, gfc-internal-format
+msgid "Rank remapping target is smaller than size of the pointer (%ld < %ld) at %L"
+msgstr ""
+
+#: fortran/expr.cc:4352
+#, gcc-internal-format, gfc-internal-format
+msgid "Rank remapping target must be rank 1 or simply contiguous at %L"
+msgstr ""
+
+#: fortran/expr.cc:4356
+#, gcc-internal-format, gfc-internal-format
+msgid "Rank remapping target is not rank 1 at %L"
+msgstr ""
+
+#. The test above might need to be extend when F08, Note 5.4 has to be
+#. interpreted in the way that target and pointer with the same coindex
+#. are allowed.
+#: fortran/expr.cc:4381 fortran/expr.cc:4507
+#, gcc-internal-format, gfc-internal-format
+msgid "Data target at %L shall not have a coindex"
+msgstr ""
+
+#: fortran/expr.cc:4384
+#, gcc-internal-format, gfc-internal-format
+msgid "Target expression in pointer assignment at %L must deliver a pointer result"
+msgstr ""
+
+#: fortran/expr.cc:4398
+#, gcc-internal-format, gfc-internal-format
+msgid "Zero-sized array detected at %L where an entity with the TARGET attribute is expected"
+msgstr ""
+
+#: fortran/expr.cc:4404 fortran/expr.cc:4419
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer assignment target in initialization expression does not have the TARGET attribute at %L"
+msgstr ""
+
+#: fortran/expr.cc:4435
+#, gcc-internal-format, gfc-internal-format
+msgid "Every subscript of target specification at %L must be a constant expression"
+msgstr ""
+
+#: fortran/expr.cc:4446
+#, gcc-internal-format, gfc-internal-format
+msgid "Substring starting and ending points of target specification at %L must be constant expressions"
+msgstr ""
+
+#: fortran/expr.cc:4462
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer assignment target is neither TARGET nor POINTER at %L"
+msgstr ""
+
+#: fortran/expr.cc:4477
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad target in pointer assignment in PURE procedure at %L"
+msgstr ""
+
+#: fortran/expr.cc:4486
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer assignment with vector subscript on rhs at %L"
+msgstr ""
+
+#: fortran/expr.cc:4494
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer assignment target has PROTECTED attribute at %L"
+msgstr ""
+
+#: fortran/expr.cc:4522 fortran/expr.cc:4527
+#, gcc-internal-format, gfc-internal-format
+msgid "Assignment to contiguous pointer from non-contiguous target at %L"
+msgstr ""
+
+#: fortran/expr.cc:4567
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer at %L in pointer assignment might outlive the pointer target"
+msgstr ""
+
+#: fortran/expr.cc:4643 fortran/resolve.cc:1565
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer initialization target at %L must not be ALLOCATABLE"
+msgstr ""
+
+#: fortran/expr.cc:4649
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer initialization target at %L must have the TARGET attribute"
+msgstr ""
+
+#: fortran/expr.cc:4664 fortran/resolve.cc:1571
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer initialization target at %L must have the SAVE attribute"
+msgstr ""
+
+#: fortran/expr.cc:4676
+#, gcc-internal-format, gfc-internal-format
+msgid "Procedure pointer initialization target at %L may not be a procedure pointer"
+msgstr ""
+
+#: fortran/expr.cc:4682
+#, gcc-internal-format
+msgid "Internal procedure %qs is invalid in procedure pointer initialization at %L"
+msgstr ""
+
+#: fortran/expr.cc:4689
+#, gcc-internal-format
+msgid "Dummy procedure %qs is invalid in procedure pointer initialization at %L"
+msgstr ""
+
+#: fortran/expr.cc:5157
+#, gcc-internal-format
+msgid "generate_isocbinding_initializer(): bad iso_c_binding type, expected %<c_ptr%> or %<c_funptr%>"
+msgstr ""
+
+#: fortran/expr.cc:6272
+#, gcc-internal-format, gfc-internal-format
+msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6280
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-variable expression in variable definition context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6288
+#, gcc-internal-format
+msgid "Named constant %qs in variable definition context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6299
+#, gcc-internal-format
+msgid "%qs in variable definition context (%s) at %L is not a variable"
+msgstr ""
+
+#: fortran/expr.cc:6310
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-POINTER in pointer association context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6319
+#, gcc-internal-format, gfc-internal-format
+msgid "Type inaccessible in variable definition context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6332
+#, gcc-internal-format, gfc-internal-format
+msgid "LOCK_TYPE in variable definition context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6345
+#, gcc-internal-format, gfc-internal-format
+msgid "LOCK_EVENT in variable definition context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6376
+#, gcc-internal-format
+msgid "%qs parameter inquiry for %qs in variable definition context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6393
+#, gcc-internal-format
+msgid "Dummy argument %qs with INTENT(IN) in pointer association context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6403
+#, gcc-internal-format
+msgid "Dummy argument %qs with INTENT(IN) in variable definition context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6416
+#, gcc-internal-format
+msgid "Variable %qs is PROTECTED and cannot appear in a pointer association context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6424
+#, gcc-internal-format
+msgid "Variable %qs is PROTECTED and cannot appear in a variable definition context (%s) at %L"
+msgstr ""
+
+#: fortran/expr.cc:6439
+#, gcc-internal-format
+msgid "Variable %qs cannot appear in a variable definition context (%s) at %L in PURE procedure"
+msgstr ""
+
+#: fortran/expr.cc:6499 fortran/expr.cc:6520
+#, gcc-internal-format
+msgid "%qs at %L associated to vector-indexed target cannot be used in a variable definition context (%s)"
+msgstr ""
+
+#: fortran/expr.cc:6504
+#, gcc-internal-format
+msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
+msgstr ""
+
+#: fortran/expr.cc:6513
+#, gcc-internal-format
+msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
+msgstr ""
+
+#: fortran/expr.cc:6532
+#, gcc-internal-format
+msgid "Associate-name %qs cannot appear in a variable definition context (%s) at %L because its target at %L cannot, either"
+msgstr ""
+
+#: fortran/expr.cc:6574
+#, gcc-internal-format, gfc-internal-format
+msgid "Elements with the same value at %L and %L in vector subscript in a variable definition context (%s)"
+msgstr ""
+
+#: fortran/frontend-passes.cc:195
+#, gcc-internal-format
+msgid "Inconsistent internal state: No location in statement"
+msgstr ""
+
+#: fortran/frontend-passes.cc:211
+#, gcc-internal-format, gfc-internal-format
+msgid "Inconsistent internal state: No location in expression near %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:419
+#, gcc-internal-format
+msgid "Illegal id in copy_walk_reduction_arg"
+msgstr ""
+
+#: fortran/frontend-passes.cc:870 fortran/trans-array.cc:1514
+#: fortran/trans-array.cc:7206 fortran/trans-array.cc:8880
+#: fortran/trans-intrinsic.cc:8502
+#, gcc-internal-format, gfc-internal-format
+msgid "Creating array temporary at %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:897
+#, gcc-internal-format
+msgid "Removing call to impure function %qs at %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:901
+#, gcc-internal-format, gfc-internal-format
+msgid "Removing call to impure function at %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:1356 fortran/frontend-passes.cc:1395
+#, gcc-internal-format
+msgid "bad expression"
+msgstr ""
+
+#: fortran/frontend-passes.cc:1391
+#, gcc-internal-format
+msgid "bad op"
+msgstr ""
+
+#: fortran/frontend-passes.cc:2175
+#, gcc-internal-format
+msgid "illegal OP in optimize_comparison"
+msgstr ""
+
+#: fortran/frontend-passes.cc:2352
+#, gcc-internal-format
+msgid "Index variable %qs set to undefined as INTENT(OUT) argument at %L in procedure %qs called from within DO loop at %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:2361
+#, gcc-internal-format
+msgid "Index variable %qs not definable as INTENT(INOUT) argument at %L in procedure %qs called from within DO loop at %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:2499
+#, gcc-internal-format
+msgid "Index variable %qs set to undefined as INTENT(OUT) argument at %L in subroutine %qs called from within DO loop at %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:2508
+#, gcc-internal-format
+msgid "Index variable %qs not definable as INTENT(INOUT) argument at %L in subroutine %qs called from within DO loop at %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:2661
+#, gcc-internal-format
+msgid "Variable %qs at %L set to undefined value inside loop beginning at %L as INTENT(OUT) argument to subroutine %qs"
+msgstr ""
+
+#: fortran/frontend-passes.cc:2668
+#, gcc-internal-format
+msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to subroutine %qs"
+msgstr ""
+
+#: fortran/frontend-passes.cc:2931 fortran/frontend-passes.cc:2957
+#, gcc-internal-format, gfc-internal-format
+msgid "Array reference at %L out of bounds (%ld < %ld) in loop beginning at %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:2941 fortran/frontend-passes.cc:2967
+#, gcc-internal-format, gfc-internal-format
+msgid "Array reference at %L out of bounds (%ld > %ld) in loop beginning at %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:3059
+#, gcc-internal-format
+msgid "Variable %qs at %L set to undefined value inside loop beginning at %L as INTENT(OUT) argument to function %qs"
+msgstr ""
+
+#: fortran/frontend-passes.cc:3065
+#, gcc-internal-format
+msgid "Variable %qs at %L not definable inside loop beginning at %L as INTENT(INOUT) argument to function %qs"
+msgstr ""
+
+#: fortran/frontend-passes.cc:3481 fortran/trans-expr.cc:1938
+#, gcc-internal-format, gfc-internal-format
+msgid "Code for reallocating the allocatable array at %L will be added"
+msgstr ""
+
+#: fortran/frontend-passes.cc:4006
+#, gcc-internal-format
+msgid "Scalarization using DIMEN_RANGE unimplemented"
+msgstr ""
+
+#: fortran/frontend-passes.cc:5215
+#, gcc-internal-format, gfc-internal-format
+msgid "Interchanging loops at %L"
+msgstr ""
+
+#: fortran/frontend-passes.cc:5855
+#, gcc-internal-format, gfc-internal-format
+msgid "%s between %L and %L"
+msgstr ""
+
+#: fortran/gfortranspec.cc:146 m2/gm2spec.cc:250
+#, gcc-internal-format
+msgid "overflowed output argument list for %qs"
+msgstr ""
+
+#: fortran/gfortranspec.cc:301
+#, gcc-internal-format
+msgid "no input files; unwilling to write output files"
+msgstr ""
+
+#: fortran/interface.cc:254
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in generic specification at %C"
+msgstr ""
+
+#: fortran/interface.cc:281
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error: Trailing garbage in INTERFACE statement at %C"
+msgstr ""
+
+#: fortran/interface.cc:301
+#, gcc-internal-format
+msgid "Dummy procedure %qs at %C cannot have a generic interface"
+msgstr ""
+
+#: fortran/interface.cc:334
+#, gcc-internal-format, gfc-internal-format
+msgid "ABSTRACT INTERFACE at %C"
+msgstr ""
+
+#: fortran/interface.cc:341
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in ABSTRACT INTERFACE statement at %C"
+msgstr ""
+
+#: fortran/interface.cc:372
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error: Trailing garbage in END INTERFACE statement at %C"
+msgstr ""
+
+#: fortran/interface.cc:385
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected a nameless interface at %C"
+msgstr ""
+
+#: fortran/interface.cc:398
+#, gcc-internal-format
+msgid "Expected %<END INTERFACE ASSIGNMENT (=)%> at %C"
+msgstr ""
+
+#: fortran/interface.cc:429
+#, gcc-internal-format
+msgid "Expecting %<END INTERFACE OPERATOR (%s)%> at %C"
+msgstr ""
+
+#: fortran/interface.cc:432
+#, gcc-internal-format
+msgid "Expecting %<END INTERFACE OPERATOR (%s)%> at %C, but got %qs"
+msgstr ""
+
+#: fortran/interface.cc:446
+#, gcc-internal-format
+msgid "Expecting %<END INTERFACE OPERATOR (.%s.)%> at %C"
+msgstr ""
+
+#: fortran/interface.cc:458
+#, gcc-internal-format
+msgid "Expecting %<END INTERFACE %s%> at %C"
+msgstr ""
+
+#: fortran/interface.cc:648
+#, gcc-internal-format
+msgid "gfc_compare_derived_types: invalid derived type"
+msgstr ""
+
+#: fortran/interface.cc:936
+#, gcc-internal-format, gfc-internal-format
+msgid "Alternate return cannot appear in operator interface at %L"
+msgstr ""
+
+#: fortran/interface.cc:965
+#, gcc-internal-format, gfc-internal-format
+msgid "Assignment operator interface at %L must have two arguments"
+msgstr ""
+
+#: fortran/interface.cc:968
+#, gcc-internal-format, gfc-internal-format
+msgid "Operator interface at %L has the wrong number of arguments"
+msgstr ""
+
+#: fortran/interface.cc:981
+#, gcc-internal-format, gfc-internal-format
+msgid "Assignment operator interface at %L must be a SUBROUTINE"
+msgstr ""
+
+#: fortran/interface.cc:999
+#, gcc-internal-format, gfc-internal-format
+msgid "Assignment operator interface at %L must not redefine an INTRINSIC type assignment"
+msgstr ""
+
+#: fortran/interface.cc:1008
+#, gcc-internal-format, gfc-internal-format
+msgid "Intrinsic operator interface at %L must be a FUNCTION"
+msgstr ""
+
+#: fortran/interface.cc:1019
+#, gcc-internal-format, gfc-internal-format
+msgid "First argument of defined assignment at %L must be INTENT(OUT) or INTENT(INOUT)"
+msgstr ""
+
+#: fortran/interface.cc:1026
+#, gcc-internal-format, gfc-internal-format
+msgid "Second argument of defined assignment at %L must be INTENT(IN)"
+msgstr ""
+
+#: fortran/interface.cc:1035 fortran/resolve.cc:18237
+#, gcc-internal-format, gfc-internal-format
+msgid "First argument of operator interface at %L must be INTENT(IN)"
+msgstr ""
+
+#: fortran/interface.cc:1042 fortran/resolve.cc:18255
+#, gcc-internal-format, gfc-internal-format
+msgid "Second argument of operator interface at %L must be INTENT(IN)"
+msgstr ""
+
+#: fortran/interface.cc:1147
+#, gcc-internal-format, gfc-internal-format
+msgid "Operator interface at %L conflicts with intrinsic interface"
+msgstr ""
+
+#: fortran/interface.cc:1511 fortran/interface.cc:1583
+#, gcc-internal-format, gfc-internal-format
+msgid "check_dummy_characteristics: Unexpected result %i of gfc_dep_compare_expr"
+msgstr ""
+
+#: fortran/interface.cc:1696
+#, gcc-internal-format, gfc-internal-format
+msgid "check_result_characteristics (1): Unexpected result %i of gfc_dep_compare_expr"
+msgstr ""
+
+#: fortran/interface.cc:1743
+#, gcc-internal-format, gfc-internal-format
+msgid "check_result_characteristics (2): Unexpected result %i of gfc_dep_compare_expr"
+msgstr ""
+
+#: fortran/interface.cc:1940
+#, gcc-internal-format
+msgid "Procedure %qs in %s at %L has no explicit interface; did you mean %qs?"
+msgstr ""
+
+#: fortran/interface.cc:1945
+#, gcc-internal-format
+msgid "Procedure %qs in %s at %L has no explicit interface"
+msgstr ""
+
+#: fortran/interface.cc:1949
+#, gcc-internal-format
+msgid "Procedure %qs in %s at %L is neither function nor subroutine; did you mean %qs?"
+msgstr ""
+
+#: fortran/interface.cc:1953
+#, gcc-internal-format
+msgid "Procedure %qs in %s at %L is neither function nor subroutine"
+msgstr ""
+
+#: fortran/interface.cc:1965
+#, gcc-internal-format, gfc-internal-format
+msgid "In %s at %L procedures must be either all SUBROUTINEs or all FUNCTIONs"
+msgstr ""
+
+#: fortran/interface.cc:1969
+#, gcc-internal-format, gfc-internal-format
+msgid "In %s at %L procedures must be all FUNCTIONs as the generic name is also the name of a derived type"
+msgstr ""
+
+#: fortran/interface.cc:1977
+#, gcc-internal-format
+msgid "Internal procedure %qs in %s at %L"
+msgstr ""
+
+#: fortran/interface.cc:2034 fortran/interface.cc:2039
+#, gcc-internal-format
+msgid "Ambiguous interfaces in %s for %qs at %L and %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:2044
+#, gcc-internal-format
+msgid "Although not referenced, %qs has ambiguous interfaces at %L"
+msgstr ""
+
+#: fortran/interface.cc:2082
+#, gcc-internal-format
+msgid "%qs at %L is not a module procedure"
+msgstr ""
+
+#: fortran/interface.cc:2287
+#, gcc-internal-format
+msgid "The assumed-rank array at %L requires that the dummy argument %qs has assumed-rank"
+msgstr ""
+
+#: fortran/interface.cc:2290
+#, gcc-internal-format
+msgid "Rank mismatch in argument %qs at %L (scalar and rank-%d)"
+msgstr ""
+
+#: fortran/interface.cc:2293
+#, gcc-internal-format
+msgid "Rank mismatch in argument %qs at %L (rank-%d and scalar)"
+msgstr ""
+
+#: fortran/interface.cc:2296
+#, gcc-internal-format
+msgid "Rank mismatch in argument %qs at %L (rank-%d and rank-%d)"
+msgstr ""
+
+#: fortran/interface.cc:2308
+#, gcc-internal-format, gfc-internal-format
+msgid "Rank mismatch between actual argument at %L and actual argument at %L (scalar and rank-%d)"
+msgstr ""
+
+#: fortran/interface.cc:2312
+#, gcc-internal-format, gfc-internal-format
+msgid "Rank mismatch between actual argument at %L and actual argument at %L (rank-%d and scalar)"
+msgstr ""
+
+#: fortran/interface.cc:2316
+#, gcc-internal-format, gfc-internal-format
+msgid "Rank mismatch between actual argument at %L and actual argument at %L (rank-%d and rank-%d)"
+msgstr ""
+
+#: fortran/interface.cc:2439
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid procedure argument at %L"
+msgstr ""
+
+#: fortran/interface.cc:2448 fortran/interface.cc:2457
+#: fortran/interface.cc:2484
+#, gcc-internal-format
+msgid "Interface mismatch in dummy procedure %qs at %L: %s"
+msgstr ""
+
+#: fortran/interface.cc:2495
+#, gcc-internal-format
+msgid "Actual argument to contiguous pointer dummy %qs at %L must be simply contiguous"
+msgstr ""
+
+#: fortran/interface.cc:2518
+#, gcc-internal-format, gfc-internal-format
+msgid "Type mismatch between actual argument at %L and actual argument at %L (%s/%s)."
+msgstr ""
+
+#: fortran/interface.cc:2528
+#, gcc-internal-format
+msgid "Type mismatch in argument %qs at %L; passed %s to %s"
+msgstr ""
+
+#: fortran/interface.cc:2538
+#, gcc-internal-format
+msgid "Assumed-type actual argument at %L requires that dummy argument %qs is of assumed type"
+msgstr ""
+
+#: fortran/interface.cc:2552
+#, gcc-internal-format
+msgid "Assumed-type actual argument at %L corresponding to assumed-rank dummy argument %qs must be assumed-shape or assumed-rank"
+msgstr ""
+
+#: fortran/interface.cc:2569
+#, gcc-internal-format
+msgid "Actual argument to %qs at %L must be polymorphic"
+msgstr ""
+
+#: fortran/interface.cc:2579
+#, gcc-internal-format
+msgid "Actual argument to %qs at %L must have the same declared type"
+msgstr ""
+
+#: fortran/interface.cc:2594
+#, gcc-internal-format
+msgid "Actual argument to %qs at %L must be unlimited polymorphic since the formal argument is a pointer or allocatable unlimited polymorphic entity [F2008: 12.5.2.5]"
+msgstr ""
+
+#: fortran/interface.cc:2610
+#, gcc-internal-format
+msgid "Actual argument to %qs at %L must be a coarray"
+msgstr ""
+
+#: fortran/interface.cc:2632
+#, gcc-internal-format
+msgid "Corank mismatch in argument %qs at %L (%d and %d)"
+msgstr ""
+
+#: fortran/interface.cc:2650
+#, gcc-internal-format
+msgid "Actual argument to %qs at %L must be simply contiguous or an element of such an array"
+msgstr ""
+
+#: fortran/interface.cc:2665
+#, gcc-internal-format
+msgid "Actual argument to non-INTENT(INOUT) dummy %qs at %L, which is LOCK_TYPE or has a LOCK_TYPE component"
+msgstr ""
+
+#: fortran/interface.cc:2680
+#, gcc-internal-format
+msgid "Actual argument to non-INTENT(INOUT) dummy %qs at %L, which is EVENT_TYPE or has a EVENT_TYPE component"
+msgstr ""
+
+#: fortran/interface.cc:2699
+#, gcc-internal-format
+msgid "Dummy argument %qs has to be a pointer, assumed-shape or assumed-rank array without CONTIGUOUS attribute - as actual argument at %L is not simply contiguous and both are ASYNCHRONOUS or VOLATILE"
+msgstr ""
+
+#: fortran/interface.cc:2712
+#, gcc-internal-format
+msgid "Passing coarray at %L to allocatable, noncoarray, INTENT(OUT) dummy argument %qs"
+msgstr ""
+
+#: fortran/interface.cc:2719
+#, gcc-internal-format
+msgid "Passing coarray at %L to allocatable, noncoarray dummy argument %qs, which is invalid if the allocation status is modified"
+msgstr ""
+
+#: fortran/interface.cc:2805
+#, gcc-internal-format
+msgid "Polymorphic scalar passed to array dummy argument %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:2816
+#, gcc-internal-format, gfc-internal-format
+msgid "Element of assumed-shape or pointer array as actual argument at %L cannot correspond to actual argument at %L"
+msgstr ""
+
+#: fortran/interface.cc:2821
+#, gcc-internal-format
+msgid "Element of assumed-shape or pointer array passed to array dummy argument %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:2834
+#, gcc-internal-format
+msgid "Extension: Scalar non-default-kind, non-C_CHAR-kind CHARACTER actual argument with array dummy argument %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:2842
+#, gcc-internal-format
+msgid "Fortran 2003: Scalar CHARACTER actual argument with array dummy argument %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:3230
+#, gcc-internal-format
+msgid "Keyword argument %qs at %L is invalid in a statement function"
+msgstr ""
+
+#: fortran/interface.cc:3253
+#, gcc-internal-format
+msgid "Keyword argument %qs at %L is not in the procedure; did you mean %qs?"
+msgstr ""
+
+#: fortran/interface.cc:3257
+#, gcc-internal-format
+msgid "Keyword argument %qs at %L is not in the procedure"
+msgstr ""
+
+#: fortran/interface.cc:3266
+#, gcc-internal-format
+msgid "Keyword argument %qs at %L is already associated with another actual argument"
+msgstr ""
+
+#: fortran/interface.cc:3276
+#, gcc-internal-format, gfc-internal-format
+msgid "More actual than formal arguments in procedure call at %L"
+msgstr ""
+
+#: fortran/interface.cc:3289
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing alternate return specifier in subroutine call at %L"
+msgstr ""
+
+#: fortran/interface.cc:3303
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected alternate return specifier in subroutine call at %L"
+msgstr ""
+
+#: fortran/interface.cc:3326
+#, gcc-internal-format
+msgid "Intrinsic %<NULL()%> without %<MOLD%> argument at %L passed to assumed-rank dummy %qs"
+msgstr ""
+
+#: fortran/interface.cc:3340
+#, gcc-internal-format
+msgid "Intrinsic %<NULL()%> without %<MOLD%> argument at %L passed to assumed-length dummy %qs"
+msgstr ""
+
+#: fortran/interface.cc:3362
+#, gcc-internal-format
+msgid "Unexpected NULL() intrinsic at %L to dummy %qs"
+msgstr ""
+
+#: fortran/interface.cc:3365
+#, gcc-internal-format
+msgid "Fortran 2008: Null pointer at %L to non-pointer dummy %qs"
+msgstr ""
+
+#: fortran/interface.cc:3391
+#, gcc-internal-format, gfc-internal-format
+msgid "Actual argument at %L to assumed-type dummy has type parameters or is of derived type with type-bound or FINAL procedures"
+msgstr ""
+
+#: fortran/interface.cc:3403
+#, gcc-internal-format, gfc-internal-format
+msgid "Unlimited polymorphic actual argument at %L is not matched with either an unlimited polymorphic or assumed type dummy argument"
+msgstr ""
+
+#: fortran/interface.cc:3427
+#, gcc-internal-format
+msgid "Character length mismatch (%ld/%ld) between actual argument and pointer or allocatable dummy argument %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:3434
+#, gcc-internal-format
+msgid "Character length mismatch (%ld/%ld) between actual argument and assumed-shape dummy argument %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:3449
+#, gcc-internal-format
+msgid "Actual argument at %L to allocatable or pointer dummy argument %qs must have a deferred length type parameter if and only if the dummy has one"
+msgstr ""
+
+#: fortran/interface.cc:3472
+#, gcc-internal-format
+msgid "Character length of actual argument shorter than of dummy argument %qs (%lu/%lu) at %L"
+msgstr ""
+
+#: fortran/interface.cc:3482 fortran/interface.cc:3487
+#, gcc-internal-format
+msgid "Actual argument contains too few elements for dummy argument %qs (%lu/%lu) at %L"
+msgstr ""
+
+#: fortran/interface.cc:3508
+#, gcc-internal-format
+msgid "Expected a procedure pointer for argument %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:3525
+#, gcc-internal-format
+msgid "Expected a procedure for argument %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:3590
+#, gcc-internal-format
+msgid "Actual argument for %qs cannot be an assumed-size array at %L"
+msgstr ""
+
+#: fortran/interface.cc:3619
+#, gcc-internal-format
+msgid "Actual argument to assumed-rank INTENT(OUT) dummy %qs at %L cannot be of unknown size"
+msgstr ""
+
+#: fortran/interface.cc:3634
+#, gcc-internal-format
+msgid "Actual argument for %qs at %L must be a pointer"
+msgstr ""
+
+#: fortran/interface.cc:3643
+#, gcc-internal-format
+msgid "Fortran 2008: Non-pointer actual argument at %L to pointer dummy %qs"
+msgstr ""
+
+#: fortran/interface.cc:3652
+#, gcc-internal-format
+msgid "Actual argument for %qs at %L must be a pointer or a valid target for the dummy pointer in a pointer assignment statement"
+msgstr ""
+
+#: fortran/interface.cc:3666
+#, gcc-internal-format
+msgid "Coindexed actual argument at %L to pointer dummy %qs"
+msgstr ""
+
+#: fortran/interface.cc:3680
+#, gcc-internal-format
+msgid "Coindexed actual argument at %L to allocatable dummy %qs requires INTENT(IN)"
+msgstr ""
+
+#: fortran/interface.cc:3695
+#, gcc-internal-format
+msgid "Coindexed ASYNCHRONOUS or VOLATILE actual argument at %L requires that dummy %qs has neither ASYNCHRONOUS nor VOLATILE"
+msgstr ""
+
+#: fortran/interface.cc:3710
+#, gcc-internal-format
+msgid "Coindexed actual argument at %L with allocatable ultimate component to dummy %qs requires either VALUE or INTENT(IN)"
+msgstr ""
+
+#: fortran/interface.cc:3723
+#, gcc-internal-format
+msgid "Actual CLASS array argument for %qs must be a full array at %L"
+msgstr ""
+
+#: fortran/interface.cc:3734
+#, gcc-internal-format
+msgid "Actual argument for %qs must be ALLOCATABLE at %L"
+msgstr ""
+
+#: fortran/interface.cc:3745
+#, gcc-internal-format
+msgid "Actual argument for %qs at %L is a function result and the dummy argument is ALLOCATABLE"
+msgstr ""
+
+#: fortran/interface.cc:3783
+#, gcc-internal-format
+msgid "Array-section actual argument with vector subscripts at %L is incompatible with INTENT(OUT), INTENT(INOUT), VOLATILE or ASYNCHRONOUS attribute of the dummy argument %qs"
+msgstr ""
+
+#: fortran/interface.cc:3803
+#, gcc-internal-format
+msgid "Assumed-shape actual argument at %L is incompatible with the non-assumed-shape dummy argument %qs due to VOLATILE attribute"
+msgstr ""
+
+#: fortran/interface.cc:3821
+#, gcc-internal-format
+msgid "Array-section actual argument at %L is incompatible with the non-assumed-shape dummy argument %qs due to VOLATILE attribute"
+msgstr ""
+
+#: fortran/interface.cc:3842
+#, gcc-internal-format
+msgid "Pointer-array actual argument at %L requires an assumed-shape or pointer-array dummy argument %qs due to VOLATILE attribute"
+msgstr ""
+
+#: fortran/interface.cc:3870
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing alternate return spec in subroutine call at %L"
+msgstr ""
+
+#: fortran/interface.cc:3883
+#, gcc-internal-format
+msgid "Missing actual argument for argument %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:4011
+#, gcc-internal-format
+msgid "compare_actual_expr(): Bad component code"
+msgstr ""
+
+#: fortran/interface.cc:4040
+#, gcc-internal-format
+msgid "check_some_aliasing(): List mismatch"
+msgstr ""
+
+#: fortran/interface.cc:4066
+#, gcc-internal-format
+msgid "check_some_aliasing(): corrupted data"
+msgstr ""
+
+#: fortran/interface.cc:4076
+#, gcc-internal-format
+msgid "Same actual argument associated with INTENT(%s) argument %qs and INTENT(%s) argument %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:4106
+#, gcc-internal-format
+msgid "check_intents(): List mismatch"
+msgstr ""
+
+#: fortran/interface.cc:4126
+#, gcc-internal-format, gfc-internal-format
+msgid "Procedure argument at %L is local to a PURE procedure and has the POINTER attribute"
+msgstr ""
+
+#: fortran/interface.cc:4138
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindexed actual argument at %L in PURE procedure is passed to an INTENT(%s) argument"
+msgstr ""
+
+#: fortran/interface.cc:4148
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindexed actual argument at %L in PURE procedure is passed to a POINTER dummy argument"
+msgstr ""
+
+#: fortran/interface.cc:4159
+#, gcc-internal-format
+msgid "Coindexed polymorphic actual argument at %L is passed polymorphic dummy argument %qs"
+msgstr ""
+
+#: fortran/interface.cc:4201
+#, gcc-internal-format
+msgid "Procedure %qs called at %L is not explicitly declared; did you mean %qs?"
+msgstr ""
+
+#: fortran/interface.cc:4205 fortran/interface.cc:4215
+#, gcc-internal-format
+msgid "Procedure %qs called at %L is not explicitly declared"
+msgstr ""
+
+#: fortran/interface.cc:4211
+#, gcc-internal-format
+msgid "Procedure %qs called with an implicit interface at %L"
+msgstr ""
+
+#: fortran/interface.cc:4224
+#, gcc-internal-format
+msgid "The pointer object %qs at %L must have an explicit function interface or be declared as array"
+msgstr ""
+
+#: fortran/interface.cc:4232
+#, gcc-internal-format
+msgid "The allocatable object %qs at %L must have an explicit function interface or be declared as array"
+msgstr ""
+
+#: fortran/interface.cc:4240
+#, gcc-internal-format
+msgid "Allocatable function %qs at %L must have an explicit function interface"
+msgstr ""
+
+#: fortran/interface.cc:4257
+#, gcc-internal-format, gfc-internal-format
+msgid "Explicit interface required for polymorphic argument at %L"
+msgstr ""
+
+#: fortran/interface.cc:4266
+#, gcc-internal-format
+msgid "Keyword argument requires explicit interface for procedure %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:4275
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type argument %s at %L requires an explicit interface"
+msgstr ""
+
+#: fortran/interface.cc:4290
+#, gcc-internal-format
+msgid "Actual argument of LOCK_TYPE or with LOCK_TYPE component at %L requires an explicit interface for procedure %qs"
+msgstr ""
+
+#: fortran/interface.cc:4305
+#, gcc-internal-format
+msgid "Actual argument of EVENT_TYPE or with EVENT_TYPE component at %L requires an explicit interface for procedure %qs"
+msgstr ""
+
+#: fortran/interface.cc:4315
+#, gcc-internal-format, gfc-internal-format
+msgid "MOLD argument to NULL required at %L"
+msgstr ""
+
+#: fortran/interface.cc:4323
+#, gcc-internal-format, gfc-internal-format
+msgid "Passing intrinsic NULL as actual argument at %L requires an explicit interface"
+msgstr ""
+
+#: fortran/interface.cc:4333
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank argument requires an explicit interface at %L"
+msgstr ""
+
+#: fortran/interface.cc:4375
+#, gcc-internal-format
+msgid "Procedure pointer component %qs called with an implicit interface at %L"
+msgstr ""
+
+#: fortran/interface.cc:4386
+#, gcc-internal-format
+msgid "Keyword argument requires explicit interface for procedure pointer component %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:4471
+#, gcc-internal-format, gfc-internal-format
+msgid "MOLD= required in NULL() argument at %L: Ambiguity between specific functions %s and %s"
+msgstr ""
+
+#: fortran/interface.cc:4541
+#, gcc-internal-format
+msgid "Unable to find symbol %qs"
+msgstr ""
+
+#: fortran/interface.cc:4925
+#, gcc-internal-format
+msgid "Entity %qs at %L is already present in the interface"
+msgstr ""
+
+#: fortran/interface.cc:5042
+#, gcc-internal-format
+msgid "gfc_add_interface(): Bad interface type"
+msgstr ""
+
+#: fortran/interface.cc:5136
+#, gcc-internal-format
+msgid "Cannot overwrite GENERIC %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:5148
+#, gcc-internal-format
+msgid "%qs at %L overrides a procedure binding declared NON_OVERRIDABLE"
+msgstr ""
+
+#: fortran/interface.cc:5156
+#, gcc-internal-format
+msgid "%qs at %L must not be DEFERRED as it overrides a non-DEFERRED binding"
+msgstr ""
+
+#: fortran/interface.cc:5164
+#, gcc-internal-format
+msgid "%qs at %L overrides a PURE procedure and must also be PURE"
+msgstr ""
+
+#: fortran/interface.cc:5173
+#, gcc-internal-format
+msgid "%qs at %L overrides an ELEMENTAL procedure and must also be ELEMENTAL"
+msgstr ""
+
+#: fortran/interface.cc:5179
+#, gcc-internal-format
+msgid "%qs at %L overrides a non-ELEMENTAL procedure and must not be ELEMENTAL, either"
+msgstr ""
+
+#: fortran/interface.cc:5188
+#, gcc-internal-format
+msgid "%qs at %L overrides a SUBROUTINE and must also be a SUBROUTINE"
+msgstr ""
+
+#: fortran/interface.cc:5199
+#, gcc-internal-format
+msgid "%qs at %L overrides a FUNCTION and must also be a FUNCTION"
+msgstr ""
+
+#: fortran/interface.cc:5207
+#, gcc-internal-format
+msgid "Result mismatch for the overriding procedure %qs at %L: %s"
+msgstr ""
+
+#: fortran/interface.cc:5218
+#, gcc-internal-format
+msgid "%qs at %L overrides a PUBLIC procedure and must not be PRIVATE"
+msgstr ""
+
+#: fortran/interface.cc:5248
+#, gcc-internal-format
+msgid "Dummy argument %qs of %qs at %L should be named %qs as to match the corresponding argument of the overridden procedure"
+msgstr ""
+
+#: fortran/interface.cc:5259
+#, gcc-internal-format
+msgid "Argument mismatch for the overriding procedure %qs at %L: %s"
+msgstr ""
+
+#: fortran/interface.cc:5268
+#, gcc-internal-format
+msgid "%qs at %L must have the same number of formal arguments as the overridden procedure"
+msgstr ""
+
+#: fortran/interface.cc:5277
+#, gcc-internal-format
+msgid "%qs at %L overrides a NOPASS binding and must also be NOPASS"
+msgstr ""
+
+#: fortran/interface.cc:5288
+#, gcc-internal-format
+msgid "%qs at %L overrides a binding with PASS and must also be PASS"
+msgstr ""
+
+#: fortran/interface.cc:5295
+#, gcc-internal-format
+msgid "Passed-object dummy argument of %qs at %L must be at the same position as the passed-object dummy argument of the overridden procedure"
+msgstr ""
+
+#: fortran/interface.cc:5316
+#, gcc-internal-format, gfc-internal-format
+msgid "DTIO dummy argument at %L must be of type %s"
+msgstr ""
+
+#: fortran/interface.cc:5323
+#, gcc-internal-format, gfc-internal-format
+msgid "DTIO dummy argument at %L must be of KIND = %d"
+msgstr ""
+
+#: fortran/interface.cc:5330
+#, gcc-internal-format, gfc-internal-format
+msgid "DTIO dummy argument at %L must be a scalar"
+msgstr ""
+
+#: fortran/interface.cc:5334
+#, gcc-internal-format, gfc-internal-format
+msgid "DTIO dummy argument at %L must be an ASSUMED SHAPE ARRAY"
+msgstr ""
+
+#: fortran/interface.cc:5338
+#, gcc-internal-format, gfc-internal-format
+msgid "DTIO character argument at %L must have assumed length"
+msgstr ""
+
+#: fortran/interface.cc:5342
+#, gcc-internal-format, gfc-internal-format
+msgid "DTIO dummy argument at %L must have INTENT %s"
+msgstr ""
+
+#: fortran/interface.cc:5400 fortran/interface.cc:5446
+#, gcc-internal-format, gfc-internal-format
+msgid "Alternate return at %L is not permitted in a DTIO procedure"
+msgstr ""
+
+#: fortran/interface.cc:5412
+#, gcc-internal-format
+msgid "DTIO procedure %qs at %L must be a subroutine"
+msgstr ""
+
+#: fortran/interface.cc:5424
+#, gcc-internal-format
+msgid "Too few dummy arguments in DTIO procedure %qs at %L"
+msgstr ""
+
+#: fortran/interface.cc:5431
+#, gcc-internal-format
+msgid "Too many dummy arguments in DTIO procedure %qs at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:261
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable with NO_ARG_CHECK attribute at %L is only permitted as argument to the intrinsic functions C_LOC and PRESENT"
+msgstr ""
+
+#: fortran/intrinsic.cc:277
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type argument at %L is not permitted as actual argument to the intrinsic %s"
+msgstr ""
+
+#: fortran/intrinsic.cc:284
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type argument at %L is only permitted as first actual argument to the intrinsic %s"
+msgstr ""
+
+#: fortran/intrinsic.cc:291
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank argument at %L is only permitted as actual argument to intrinsic inquiry functions"
+msgstr ""
+
+#: fortran/intrinsic.cc:298
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank argument at %L is only permitted as first actual argument to the intrinsic inquiry function %s"
+msgstr ""
+
+#: fortran/intrinsic.cc:346
+#, gcc-internal-format
+msgid "do_check(): too many args"
+msgstr ""
+
+#: fortran/intrinsic.cc:426
+#, gcc-internal-format
+msgid "add_sym(): Bad sizing mode"
+msgstr ""
+
+#: fortran/intrinsic.cc:1186
+#, gcc-internal-format
+msgid "The intrinsic %qs at %L is not included in the selected standard but %s and %qs will be treated as if declared EXTERNAL.  Use an appropriate %<-std=%> option or define %<-fall-intrinsics%> to allow this intrinsic."
+msgstr ""
+
+#: fortran/intrinsic.cc:1221
+#, gcc-internal-format
+msgid "make_generic(): Cannot find generic symbol %qs"
+msgstr ""
+
+#: fortran/intrinsic.cc:4316
+#, gcc-internal-format, gfc-internal-format
+msgid "ALLOCATED intrinsic at %L requires an array or scalar allocatable entity"
+msgstr ""
+
+#: fortran/intrinsic.cc:4329
+#, gcc-internal-format, gfc-internal-format
+msgid "Scalar entity required at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4340
+#, gcc-internal-format, gfc-internal-format
+msgid "Array entity required at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4347
+#, gcc-internal-format
+msgid "Invalid keyword %qs in %qs intrinsic function at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4374
+#, gcc-internal-format
+msgid "Too many arguments in call to %qs at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4390
+#, gcc-internal-format, gfc-internal-format
+msgid "The argument list functions %%VAL, %%LOC or %%REF are not allowed in this context at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4393
+#, gcc-internal-format
+msgid "Cannot find keyword named %qs in call to %qs at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4400
+#, gcc-internal-format
+msgid "Argument %qs appears twice in call to %qs at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4414
+#, gcc-internal-format
+msgid "Missing actual argument %qs in call to %qs at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4430
+#, gcc-internal-format, gfc-internal-format
+msgid "ALTERNATE RETURN not permitted at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4484
+#, gcc-internal-format
+msgid "In call to %qs at %L, type mismatch in argument %qs; pass %qs to %qs"
+msgstr ""
+
+#: fortran/intrinsic.cc:4612
+#, gcc-internal-format
+msgid "resolve_intrinsic(): Too many args for intrinsic"
+msgstr ""
+
+#: fortran/intrinsic.cc:4707
+#, gcc-internal-format
+msgid "do_simplify(): Too many args for intrinsic"
+msgstr ""
+
+#: fortran/intrinsic.cc:4719
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot simplify expression at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4752
+#, gcc-internal-format
+msgid "init_arglist(): too many arguments"
+msgstr ""
+
+#: fortran/intrinsic.cc:4908
+#, gcc-internal-format
+msgid "Invalid standard code on intrinsic %qs (%d)"
+msgstr ""
+
+#: fortran/intrinsic.cc:4917
+#, gcc-internal-format
+msgid "Intrinsic %qs (%s) used at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:4989
+#, gcc-internal-format
+msgid "Function %qs as initialization expression at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:5007
+#, gcc-internal-format
+msgid "Transformational function %qs at %L is invalid in an initialization expression"
+msgstr ""
+
+#: fortran/intrinsic.cc:5083
+#, gcc-internal-format, gfc-internal-format
+msgid "Elemental function as initialization expression with non-integer/non-character arguments at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:5174
+#, gcc-internal-format
+msgid "Subroutine call to intrinsic %qs in DO CONCURRENT block at %L is not PURE"
+msgstr ""
+
+#: fortran/intrinsic.cc:5181
+#, gcc-internal-format
+msgid "Subroutine call to intrinsic %qs at %L is not PURE"
+msgstr ""
+
+#: fortran/intrinsic.cc:5284
+#, gcc-internal-format, gfc-internal-format
+msgid "Extension: Conversion from %s to %s at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:5305
+#, gcc-internal-format, gfc-internal-format
+msgid "Nonstandard conversion from %s to %s at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:5322 fortran/intrinsic.cc:5339
+#, gcc-internal-format, gfc-internal-format
+msgid "Possible change of value in conversion from %s to %s at %L"
+msgstr ""
+
+#. If HOLLERITH is involved, all bets are off.
+#: fortran/intrinsic.cc:5327 fortran/intrinsic.cc:5347
+#, gcc-internal-format, gfc-internal-format
+msgid "Conversion from %s to %s at %L"
+msgstr ""
+
+#. Use of -fdec-char-conversions allows assignment of character data
+#. to non-character variables.  This not permitted for nonconstant
+#. strings.
+#: fortran/intrinsic.cc:5413 fortran/resolve.cc:11520
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot convert %s to %s at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:5418
+#, gcc-internal-format
+msgid "Cannot convert %qs to %qs at %L"
+msgstr ""
+
+#: fortran/intrinsic.cc:5510
+#, gcc-internal-format
+msgid "%qs declared at %L may shadow the intrinsic of the same name.  In order to call the intrinsic, explicit INTRINSIC declarations may be required."
+msgstr ""
+
+#: fortran/intrinsic.cc:5516
+#, gcc-internal-format
+msgid "%qs declared at %L is also the name of an intrinsic.  It can only be called via an explicit interface or if declared EXTERNAL."
+msgstr ""
+
+#: fortran/io.cc:176 fortran/primary.cc:940
+#, gcc-internal-format, gfc-internal-format
+msgid "Extension: backslash character at %C"
+msgstr ""
+
+#: fortran/io.cc:210
+#, gcc-internal-format, gfc-internal-format
+msgid "Nonconforming tab character in format at %C"
+msgstr ""
+
+#: fortran/io.cc:453
+#, gcc-internal-format, gfc-internal-format
+msgid "DP format specifier not allowed at %C"
+msgstr ""
+
+#: fortran/io.cc:460
+#, gcc-internal-format, gfc-internal-format
+msgid "DC format specifier not allowed at %C"
+msgstr ""
+
+#: fortran/io.cc:467
+#, gcc-internal-format, gfc-internal-format
+msgid "Fortran 2003: DT format specifier not allowed at %C"
+msgstr ""
+
+#: fortran/io.cc:596
+#, gcc-internal-format, gfc-internal-format
+msgid "Positive width required in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:598
+#, gcc-internal-format, gfc-internal-format
+msgid "Nonnegative width required in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:600
+#, gcc-internal-format
+msgid "Unexpected element %qc in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:602
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected end of format string in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:604
+#, gcc-internal-format, gfc-internal-format
+msgid "Zero width in format descriptor in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:624
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing leading left parenthesis in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:653
+#, gcc-internal-format
+msgid "Left parenthesis required after %<*%> in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:685
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected P edit descriptor in format string at %L"
+msgstr ""
+
+#. P requires a prior number.
+#: fortran/io.cc:693
+#, gcc-internal-format, gfc-internal-format
+msgid "P descriptor requires leading scale factor in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:701
+#, gcc-internal-format, gfc-internal-format
+msgid "X descriptor requires leading space count at %L"
+msgstr ""
+
+#: fortran/io.cc:730
+#, gcc-internal-format, gfc-internal-format
+msgid "$ descriptor at %L"
+msgstr ""
+
+#: fortran/io.cc:734
+#, gcc-internal-format, gfc-internal-format
+msgid "$ should be the last specifier in format at %L"
+msgstr ""
+
+#: fortran/io.cc:766
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing item in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:797 fortran/io.cc:812
+#, gcc-internal-format, gfc-internal-format
+msgid "Comma required after P descriptor in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:827
+#, gcc-internal-format, gfc-internal-format
+msgid "Positive width required with T descriptor in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:846 fortran/io.cc:850
+#, gcc-internal-format, gfc-internal-format
+msgid "Extension: Zero width after L descriptor at %L"
+msgstr ""
+
+#: fortran/io.cc:862
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing positive width after L descriptor at %L"
+msgstr ""
+
+#: fortran/io.cc:893
+#, gcc-internal-format
+msgid "%<G0%> in format at %L"
+msgstr ""
+
+#: fortran/io.cc:911
+#, gcc-internal-format, gfc-internal-format
+msgid "E specifier not allowed with g0 descriptor in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:931
+#, gcc-internal-format, gfc-internal-format
+msgid "Positive width required in format specifier %s at %L"
+msgstr ""
+
+#: fortran/io.cc:941
+#, gcc-internal-format, gfc-internal-format
+msgid "positive width required at %L"
+msgstr ""
+
+#: fortran/io.cc:964 fortran/io.cc:971
+#, gcc-internal-format, gfc-internal-format
+msgid "Period required in format specifier %s at %L"
+msgstr ""
+
+#: fortran/io.cc:1009 fortran/io.cc:1018
+#, gcc-internal-format, gfc-internal-format
+msgid "Positive exponent width required in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:1066
+#, gcc-internal-format, gfc-internal-format
+msgid "Right parenthesis expected at %C in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:1108
+#, gcc-internal-format, gfc-internal-format
+msgid "Period required in format specifier in format string at %L"
+msgstr ""
+
+#: fortran/io.cc:1114
+#, gcc-internal-format, gfc-internal-format
+msgid "Period required in format specifier at %L"
+msgstr ""
+
+#: fortran/io.cc:1136
+#, gcc-internal-format, gfc-internal-format
+msgid "The H format specifier at %L is a Fortran 95 deleted feature"
+msgstr ""
+
+#: fortran/io.cc:1231 fortran/io.cc:1293
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing comma at %L"
+msgstr ""
+
+#: fortran/io.cc:1349
+#, gcc-internal-format, gfc-internal-format
+msgid "Extraneous characters in format at %L"
+msgstr ""
+
+#: fortran/io.cc:1371
+#, gcc-internal-format, gfc-internal-format
+msgid "Format statement in module main block at %C"
+msgstr ""
+
+#: fortran/io.cc:1380
+#, gcc-internal-format, gfc-internal-format
+msgid "FORMAT statement at %C cannot appear within an INTERFACE"
+msgstr ""
+
+#: fortran/io.cc:1386
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing format label at %C"
+msgstr ""
+
+#: fortran/io.cc:1441 fortran/io.cc:1472 fortran/io.cc:1552
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid value for %s specification at %C"
+msgstr ""
+
+#: fortran/io.cc:1447 fortran/io.cc:1478 fortran/io.cc:1634 fortran/io.cc:1647
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate %s specification at %C"
+msgstr ""
+
+#: fortran/io.cc:1489
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s cannot be INTENT(IN) at %C"
+msgstr ""
+
+#: fortran/io.cc:1497
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s cannot be assigned in PURE procedure at %C"
+msgstr ""
+
+#: fortran/io.cc:1527
+#, gcc-internal-format, gfc-internal-format
+msgid "Expecting a variable at %L"
+msgstr ""
+
+#: fortran/io.cc:1558
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate %s label specification at %C"
+msgstr ""
+
+#: fortran/io.cc:1578 fortran/io.cc:1595 fortran/io.cc:1616
+#, gcc-internal-format
+msgid "%s at %C is a DEC extension, enable with %<-fdec%>"
+msgstr ""
+
+#: fortran/io.cc:1669
+#, gcc-internal-format, gfc-internal-format
+msgid "Constant expression in FORMAT tag at %L must be of type default CHARACTER"
+msgstr ""
+
+#: fortran/io.cc:1694
+#, gcc-internal-format, gfc-internal-format
+msgid "FORMAT tag at %L cannot be a zero-sized array"
+msgstr ""
+
+#: fortran/io.cc:1735
+#, gcc-internal-format, gfc-internal-format
+msgid "FORMAT tag at %L must be of type default-kind CHARACTER or of INTEGER"
+msgstr ""
+
+#: fortran/io.cc:1741
+#, gcc-internal-format, gfc-internal-format
+msgid "ASSIGNED variable in FORMAT tag at %L"
+msgstr ""
+
+#: fortran/io.cc:1746
+#, gcc-internal-format
+msgid "Variable %qs at %L has not been assigned a format label"
+msgstr ""
+
+#: fortran/io.cc:1753
+#, gcc-internal-format
+msgid "Scalar %qs in FORMAT tag at %L is not an ASSIGNED variable"
+msgstr ""
+
+#: fortran/io.cc:1768
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-character non-Hollerith in FORMAT tag at %L"
+msgstr ""
+
+#: fortran/io.cc:1772
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-character in FORMAT tag at %L"
+msgstr ""
+
+#: fortran/io.cc:1778
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-character assumed shape array element in FORMAT tag at %L"
+msgstr ""
+
+#: fortran/io.cc:1785
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-character assumed size array element in FORMAT tag at %L"
+msgstr ""
+
+#: fortran/io.cc:1792
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-character pointer array element in FORMAT tag at %L"
+msgstr ""
+
+#: fortran/io.cc:1818
+#, gcc-internal-format, gfc-internal-format
+msgid "%s tag at %L must be of type %s"
+msgstr ""
+
+#: fortran/io.cc:1825
+#, gcc-internal-format, gfc-internal-format
+msgid "%s tag at %L must be a character string of default kind"
+msgstr ""
+
+#: fortran/io.cc:1832
+#, gcc-internal-format, gfc-internal-format
+msgid "%s tag at %L must be scalar"
+msgstr ""
+
+#: fortran/io.cc:1838
+#, gcc-internal-format, gfc-internal-format
+msgid "IOMSG tag at %L"
+msgstr ""
+
+#: fortran/io.cc:1846
+#, gcc-internal-format, gfc-internal-format
+msgid "Fortran 95 requires default INTEGER in %s tag at %L"
+msgstr ""
+
+#: fortran/io.cc:1855
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-default LOGICAL kind in %s tag at %L"
+msgstr ""
+
+#: fortran/io.cc:1862
+#, gcc-internal-format, gfc-internal-format
+msgid "NEWUNIT specifier at %L"
+msgstr ""
+
+#: fortran/io.cc:1880
+#, gcc-internal-format, gfc-internal-format
+msgid "CONVERT tag at %L"
+msgstr ""
+
+#: fortran/io.cc:2096
+#, gcc-internal-format
+msgid "Fortran 2003: %s specifier in %s statement at %L has value %qs"
+msgstr ""
+
+#: fortran/io.cc:2104 fortran/io.cc:2131
+#, gcc-internal-format
+msgid "%s specifier in %s statement at %L has value %qs"
+msgstr ""
+
+#: fortran/io.cc:2123
+#, gcc-internal-format
+msgid "Extension: %s specifier in %s statement at %L has value %qs"
+msgstr ""
+
+#: fortran/io.cc:2145 fortran/io.cc:2153
+#, gcc-internal-format
+msgid "%s specifier in %s statement at %L has invalid value %qs"
+msgstr ""
+
+#: fortran/io.cc:2210
+#, gcc-internal-format, gfc-internal-format
+msgid "ACTION type conflicts with READONLY specifier at %L"
+msgstr ""
+
+#: fortran/io.cc:2226
+#, gcc-internal-format, gfc-internal-format
+msgid "ASYNCHRONOUS= at %L not allowed in Fortran 95"
+msgstr ""
+
+#: fortran/io.cc:2245 fortran/io.cc:3919
+#, gcc-internal-format, gfc-internal-format
+msgid "BLANK= at %L not allowed in Fortran 95"
+msgstr ""
+
+#: fortran/io.cc:2273 fortran/io.cc:3897
+#, gcc-internal-format, gfc-internal-format
+msgid "DECIMAL= at %L not allowed in Fortran 95"
+msgstr ""
+
+#: fortran/io.cc:2305
+#, gcc-internal-format, gfc-internal-format
+msgid "ENCODING= at %L not allowed in Fortran 95"
+msgstr ""
+
+#: fortran/io.cc:2356 fortran/io.cc:3964
+#, gcc-internal-format, gfc-internal-format
+msgid "ROUND= at %L not allowed in Fortran 95"
+msgstr ""
+
+#: fortran/io.cc:2386
+#, gcc-internal-format, gfc-internal-format
+msgid "SIGN= at %L not allowed in Fortran 95"
+msgstr ""
+
+#: fortran/io.cc:2407
+#, gcc-internal-format, gfc-internal-format
+msgid "RECL in OPEN statement at %L must be positive"
+msgstr ""
+
+#: fortran/io.cc:2432
+#, gcc-internal-format
+msgid "The STATUS specified in OPEN statement at %L is %qs and no FILE specifier is present"
+msgstr ""
+
+#: fortran/io.cc:2443
+#, gcc-internal-format, gfc-internal-format
+msgid "The STATUS specified in OPEN statement at %L cannot have the value SCRATCH if a FILE specifier is present"
+msgstr ""
+
+#: fortran/io.cc:2454
+#, gcc-internal-format, gfc-internal-format
+msgid "UNIT specifier not allowed with NEWUNIT at %L"
+msgstr ""
+
+#: fortran/io.cc:2465
+#, gcc-internal-format, gfc-internal-format
+msgid "NEWUNIT specifier must have FILE= or STATUS='scratch' at %L"
+msgstr ""
+
+#: fortran/io.cc:2472
+#, gcc-internal-format, gfc-internal-format
+msgid "OPEN statement at %L must have UNIT or NEWUNIT specified"
+msgstr ""
+
+#: fortran/io.cc:2507
+#, gcc-internal-format, gfc-internal-format
+msgid "%sspecifier at %L not allowed in OPEN statement for unformatted I/O"
+msgstr ""
+
+#: fortran/io.cc:2515
+#, gcc-internal-format, gfc-internal-format
+msgid "RECL specifier not allowed in OPEN statement at %L for stream I/O"
+msgstr ""
+
+#: fortran/io.cc:2528
+#, gcc-internal-format, gfc-internal-format
+msgid "POSITION specifier in OPEN statement at %L only allowed for stream or sequential ACCESS"
+msgstr ""
+
+#: fortran/io.cc:2581
+#, gcc-internal-format, gfc-internal-format
+msgid "OPEN statement not allowed in PURE procedure at %C"
+msgstr ""
+
+#: fortran/io.cc:2689
+#, gcc-internal-format, gfc-internal-format
+msgid "CLOSE statement not allowed in PURE procedure at %C"
+msgstr ""
+
+#: fortran/io.cc:2715
+#, gcc-internal-format, gfc-internal-format
+msgid "CLOSE statement at %L requires a UNIT number"
+msgstr ""
+
+#: fortran/io.cc:2723
+#, gcc-internal-format, gfc-internal-format
+msgid "UNIT number in CLOSE statement at %L must be non-negative"
+msgstr ""
+
+#: fortran/io.cc:2846 fortran/match.cc:3131
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement not allowed in PURE procedure at %C"
+msgstr ""
+
+#: fortran/io.cc:2876
+#, gcc-internal-format, gfc-internal-format
+msgid "UNIT number missing in statement at %L"
+msgstr ""
+
+#: fortran/io.cc:2887 fortran/io.cc:3377
+#, gcc-internal-format, gfc-internal-format
+msgid "UNIT number in statement at %L must be non-negative"
+msgstr ""
+
+#: fortran/io.cc:2920
+#, gcc-internal-format, gfc-internal-format
+msgid "FLUSH statement at %C"
+msgstr ""
+
+#: fortran/io.cc:2961
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing format with default unit at %C"
+msgstr ""
+
+#: fortran/io.cc:2981
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate UNIT specification at %C"
+msgstr ""
+
+#: fortran/io.cc:3055
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate format specification at %C"
+msgstr ""
+
+#: fortran/io.cc:3096
+#, gcc-internal-format
+msgid "Symbol %qs in namelist %qs is INTENT(IN) at %C"
+msgstr ""
+
+#: fortran/io.cc:3132
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate NML specification at %C"
+msgstr ""
+
+#: fortran/io.cc:3141
+#, gcc-internal-format
+msgid "Symbol %qs at %C must be a NAMELIST group name"
+msgstr ""
+
+#: fortran/io.cc:3207
+#, gcc-internal-format, gfc-internal-format
+msgid "END tag at %C not allowed in output statement"
+msgstr ""
+
+#: fortran/io.cc:3303
+#, gcc-internal-format, gfc-internal-format
+msgid "UNIT not specified at %L"
+msgstr ""
+
+#: fortran/io.cc:3310
+#, gcc-internal-format, gfc-internal-format
+msgid "UNIT specification at %L must not be a character PARAMETER"
+msgstr ""
+
+#: fortran/io.cc:3323
+#, gcc-internal-format, gfc-internal-format
+msgid "UNIT specification at %L must be an INTEGER expression or a CHARACTER variable"
+msgstr ""
+
+#: fortran/io.cc:3345
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid form of WRITE statement at %L, UNIT required"
+msgstr ""
+
+#: fortran/io.cc:3356
+#, gcc-internal-format, gfc-internal-format
+msgid "Internal unit with vector subscript at %L"
+msgstr ""
+
+#: fortran/io.cc:3370
+#, gcc-internal-format, gfc-internal-format
+msgid "External IO UNIT cannot be an array at %L"
+msgstr ""
+
+#: fortran/io.cc:3400
+#, gcc-internal-format
+msgid "NAMELIST %qs in READ statement at %L contains the symbol %qs which may not appear in a variable definition context"
+msgstr ""
+
+#: fortran/io.cc:3412
+#, gcc-internal-format
+msgid "NAMELIST object %qs in namelist %qs at %L is polymorphic and requires a defined input/output procedure"
+msgstr ""
+
+#: fortran/io.cc:3422 fortran/resolve.cc:16065
+#, gcc-internal-format
+msgid "NAMELIST object %qs in namelist %qs at %L with ALLOCATABLE or POINTER components"
+msgstr ""
+
+#: fortran/io.cc:3430
+#, gcc-internal-format
+msgid "NAMELIST object %qs in namelist %qs at %L has ALLOCATABLE or POINTER components and thus requires a defined input/output procedure"
+msgstr ""
+
+#: fortran/io.cc:3441
+#, gcc-internal-format, gfc-internal-format
+msgid "Comma before i/o item list at %L"
+msgstr ""
+
+#: fortran/io.cc:3451
+#, gcc-internal-format, gfc-internal-format
+msgid "ERR tag label %d at %L not defined"
+msgstr ""
+
+#: fortran/io.cc:3463
+#, gcc-internal-format, gfc-internal-format
+msgid "END tag label %d at %L not defined"
+msgstr ""
+
+#: fortran/io.cc:3475
+#, gcc-internal-format, gfc-internal-format
+msgid "EOR tag label %d at %L not defined"
+msgstr ""
+
+#: fortran/io.cc:3485
+#, gcc-internal-format, gfc-internal-format
+msgid "FORMAT label %d at %L not defined"
+msgstr ""
+
+#: fortran/io.cc:3516
+#, gcc-internal-format
+msgid "io_kind_name(): bad I/O-kind"
+msgstr ""
+
+#: fortran/io.cc:3605
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in I/O iterator at %C"
+msgstr ""
+
+#: fortran/io.cc:3637
+#, gcc-internal-format, gfc-internal-format
+msgid "Expecting variable in READ statement at %C"
+msgstr ""
+
+#: fortran/io.cc:3643
+#, gcc-internal-format, gfc-internal-format
+msgid "Expecting variable or io-implied-do in READ statement at %L"
+msgstr ""
+
+#: fortran/io.cc:3652
+#, gcc-internal-format, gfc-internal-format
+msgid "Expecting variable or io-implied-do at %L"
+msgstr ""
+
+#: fortran/io.cc:3661
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected expression in %s statement at %C"
+msgstr ""
+
+#: fortran/io.cc:3666
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ literal constant at %L cannot appear in an output IO list"
+msgstr ""
+
+#: fortran/io.cc:3814
+#, gcc-internal-format, gfc-internal-format
+msgid "Internal file at %L with namelist"
+msgstr ""
+
+#: fortran/io.cc:3829
+#, gcc-internal-format, gfc-internal-format
+msgid "IO UNIT in %s statement at %L must be an internal file in a PURE procedure"
+msgstr ""
+
+#: fortran/io.cc:3942
+#, gcc-internal-format, gfc-internal-format
+msgid "PAD= at %L not allowed in Fortran 95"
+msgstr ""
+
+#: fortran/io.cc:4011
+#, gcc-internal-format, gfc-internal-format
+msgid "DELIM= at %L not allowed in Fortran 95"
+msgstr ""
+
+#: fortran/io.cc:4185
+#, gcc-internal-format, gfc-internal-format
+msgid "PRINT namelist at %C is an extension"
+msgstr ""
+
+#: fortran/io.cc:4207
+#, gcc-internal-format, gfc-internal-format
+msgid "Comma after * at %C not allowed without I/O list"
+msgstr ""
+
+#: fortran/io.cc:4380
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected comma in I/O list at %C"
+msgstr ""
+
+#: fortran/io.cc:4447
+#, gcc-internal-format, gfc-internal-format
+msgid "PRINT statement at %C not allowed within PURE procedure"
+msgstr ""
+
+#: fortran/io.cc:4609
+#, gcc-internal-format, gfc-internal-format
+msgid "NULL() near %L cannot appear in INQUIRE statement"
+msgstr ""
+
+#: fortran/io.cc:4621 fortran/io.cc:4683
+#, gcc-internal-format, gfc-internal-format
+msgid "INQUIRE statement not allowed in PURE procedure at %C"
+msgstr ""
+
+#: fortran/io.cc:4649
+#, gcc-internal-format, gfc-internal-format
+msgid "IOLENGTH tag invalid in INQUIRE statement at %C"
+msgstr ""
+
+#: fortran/io.cc:4659 fortran/trans-io.cc:1358
+#, gcc-internal-format, gfc-internal-format
+msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers"
+msgstr ""
+
+#: fortran/io.cc:4666
+#, gcc-internal-format, gfc-internal-format
+msgid "INQUIRE statement at %L requires either FILE or UNIT specifier"
+msgstr ""
+
+#: fortran/io.cc:4676
+#, gcc-internal-format, gfc-internal-format
+msgid "UNIT number in INQUIRE statement at %L cannot be %d"
+msgstr ""
+
+#: fortran/io.cc:4691
+#, gcc-internal-format, gfc-internal-format
+msgid "INQUIRE statement at %L requires a PENDING= specifier with the ID= specifier"
+msgstr ""
+
+#: fortran/io.cc:4867
+#, gcc-internal-format, gfc-internal-format
+msgid "WAIT at %C not allowed in Fortran 95"
+msgstr ""
+
+#: fortran/io.cc:4873
+#, gcc-internal-format, gfc-internal-format
+msgid "WAIT statement not allowed in PURE procedure at %C"
+msgstr ""
+
+#. Reject truncation.
+#: fortran/iresolve.cc:70
+#, gcc-internal-format, gfc-internal-format
+msgid "identifier overflow: %d"
+msgstr ""
+
+#: fortran/iresolve.cc:102
+#, gcc-internal-format
+msgid "check_charlen_present(): length not set"
+msgstr ""
+
+#: fortran/iresolve.cc:3029
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
+msgstr ""
+
+#: fortran/match.cc:118
+#, gcc-internal-format
+msgid "gfc_op2string(): Bad code"
+msgstr ""
+
+#: fortran/match.cc:195
+#, gcc-internal-format
+msgid "Expected structure component or operator name after %<.%> at %C"
+msgstr ""
+
+#: fortran/match.cc:227
+#, gcc-internal-format
+msgid "%qs is neither a defined operator nor a structure component in dotted string at %C"
+msgstr ""
+
+#: fortran/match.cc:298
+#, gcc-internal-format
+msgid "Missing %qs in statement at or before %L"
+msgstr ""
+
+#: fortran/match.cc:498
+#, gcc-internal-format, gfc-internal-format
+msgid "Integer too large at %C"
+msgstr ""
+
+#: fortran/match.cc:553 fortran/parse.cc:1499
+#, gcc-internal-format, gfc-internal-format
+msgid "Too many digits in statement label at %C"
+msgstr ""
+
+#: fortran/match.cc:559
+#, gcc-internal-format, gfc-internal-format
+msgid "Statement label at %C is zero"
+msgstr ""
+
+#: fortran/match.cc:592
+#, gcc-internal-format
+msgid "Label name %qs at %C is ambiguous"
+msgstr ""
+
+#: fortran/match.cc:598
+#, gcc-internal-format
+msgid "Duplicate construct label %qs at %C"
+msgstr ""
+
+#: fortran/match.cc:634
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid character in name at %C"
+msgstr ""
+
+#: fortran/match.cc:647
+#, gcc-internal-format, gfc-internal-format
+msgid "Name at %C is too long"
+msgstr ""
+
+#: fortran/match.cc:658
+#, gcc-internal-format
+msgid "Invalid character %<$%> at %L. Use %<-fdollar-ok%> to allow it as an extension"
+msgstr ""
+
+#: fortran/match.cc:934
+#, gcc-internal-format, gfc-internal-format
+msgid ".XOR. operator at %C"
+msgstr ""
+
+#: fortran/match.cc:989
+#, gcc-internal-format, gfc-internal-format
+msgid "Loop variable at %C cannot be an array"
+msgstr ""
+
+#: fortran/match.cc:996
+#, gcc-internal-format, gfc-internal-format
+msgid "Loop variable at %C cannot be a coarray"
+msgstr ""
+
+#: fortran/match.cc:1002
+#, gcc-internal-format, gfc-internal-format
+msgid "Loop variable at %C cannot be a sub-component"
+msgstr ""
+
+#: fortran/match.cc:1036
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected a step value in iterator at %C"
+msgstr ""
+
+#: fortran/match.cc:1048
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in iterator at %C"
+msgstr ""
+
+#: fortran/match.cc:1221
+#, gcc-internal-format, gfc-internal-format
+msgid "gfc_match(): Bad match code %c"
+msgstr ""
+
+#: fortran/match.cc:1295
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid form of PROGRAM statement at %C"
+msgstr ""
+
+#: fortran/match.cc:1339
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ literal constant at %L is neither a DATA statement value nor an actual argument of INT/REAL/DBLE/CMPLX intrinsic subprogram"
+msgstr ""
+
+#: fortran/match.cc:1348
+#, gcc-internal-format, gfc-internal-format
+msgid "Assignment to a constant expression at %C"
+msgstr ""
+
+#: fortran/match.cc:1452 fortran/match.cc:1543
+#, gcc-internal-format, gfc-internal-format
+msgid "Arithmetic IF statement at %C"
+msgstr ""
+
+#: fortran/match.cc:1499
+#, gcc-internal-format
+msgid "Missing %<(%> in IF-expression at %C"
+msgstr ""
+
+#: fortran/match.cc:1517
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in IF-expression at %C"
+msgstr ""
+
+#: fortran/match.cc:1528
+#, gcc-internal-format, gfc-internal-format
+msgid "Block label not appropriate for arithmetic IF statement at %C"
+msgstr ""
+
+#: fortran/match.cc:1566
+#, gcc-internal-format, gfc-internal-format
+msgid "Block label is not appropriate for IF statement at %C"
+msgstr ""
+
+#: fortran/match.cc:1659 fortran/match.cc:1666
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in IF-clause after %C"
+msgstr ""
+
+#: fortran/match.cc:1709
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid character(s) in ELSE statement after %C"
+msgstr ""
+
+#: fortran/match.cc:1715
+#, gcc-internal-format
+msgid "Label %qs at %C doesn't match IF label %qs"
+msgstr ""
+
+#: fortran/match.cc:1736
+#, gcc-internal-format
+msgid "Missing %<(%> in ELSE IF expression at %C"
+msgstr ""
+
+#: fortran/match.cc:1746
+#, gcc-internal-format
+msgid "Missing %<)%> in ELSE IF expression at %C"
+msgstr ""
+
+#: fortran/match.cc:1761
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing THEN in ELSE IF statement after %L"
+msgstr ""
+
+#: fortran/match.cc:1769
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in ELSE IF statement after %L"
+msgstr ""
+
+#: fortran/match.cc:1775
+#, gcc-internal-format
+msgid "Label %qs after %L doesn't match IF label %qs"
+msgstr ""
+
+#: fortran/match.cc:1836
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement CRITICAL at %C in PURE procedure"
+msgstr ""
+
+#: fortran/match.cc:1842
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement CRITICAL at %C in DO CONCURRENT block"
+msgstr ""
+
+#: fortran/match.cc:1849
+#, gcc-internal-format, gfc-internal-format
+msgid "CRITICAL statement at %C"
+msgstr ""
+
+#: fortran/match.cc:1861
+#, gcc-internal-format, gfc-internal-format
+msgid "Nested CRITICAL block at %C"
+msgstr ""
+
+#: fortran/match.cc:1913
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected association list at %C"
+msgstr ""
+
+#: fortran/match.cc:1925
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected association at %C"
+msgstr ""
+
+#: fortran/match.cc:1935
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid association target at %C"
+msgstr ""
+
+#: fortran/match.cc:1946
+#, gcc-internal-format
+msgid "Duplicate name %qs in association at %C"
+msgstr ""
+
+#: fortran/match.cc:1954
+#, gcc-internal-format, gfc-internal-format
+msgid "Association target at %C must not be coindexed"
+msgstr ""
+
+#: fortran/match.cc:1961
+#, gcc-internal-format, gfc-internal-format
+msgid "Association target at %L cannot be a BOZ literal constant"
+msgstr ""
+
+#: fortran/match.cc:1980
+#, gcc-internal-format
+msgid "Expected %<)%> or %<,%> at %C"
+msgstr ""
+
+#: fortran/match.cc:1998
+#, gcc-internal-format, gfc-internal-format
+msgid "Junk after ASSOCIATE statement at %C"
+msgstr ""
+
+#: fortran/match.cc:2120
+#, gcc-internal-format
+msgid "Derived type %qs at %L may not be ABSTRACT"
+msgstr ""
+
+#: fortran/match.cc:2192 fortran/match.cc:2264 fortran/match.cc:2287
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid type-spec at %C"
+msgstr ""
+
+#: fortran/match.cc:2382
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in FORALL iterator at %C"
+msgstr ""
+
+#: fortran/match.cc:2647
+#, gcc-internal-format, gfc-internal-format
+msgid "DO CONCURRENT construct at %C"
+msgstr ""
+
+#: fortran/match.cc:2772
+#, gcc-internal-format
+msgid "Name %qs in %s statement at %C is unknown"
+msgstr ""
+
+#: fortran/match.cc:2780
+#, gcc-internal-format
+msgid "Name %qs in %s statement at %C is not a construct name"
+msgstr ""
+
+#: fortran/match.cc:2792
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement at %C leaves CRITICAL construct"
+msgstr ""
+
+#. F2008, C821 & C845.
+#: fortran/match.cc:2800
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement at %C leaves DO CONCURRENT construct"
+msgstr ""
+
+#: fortran/match.cc:2812
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement at %C is not within a construct"
+msgstr ""
+
+#: fortran/match.cc:2815
+#, gcc-internal-format
+msgid "%s statement at %C is not within construct %qs"
+msgstr ""
+
+#: fortran/match.cc:2841
+#, gcc-internal-format
+msgid "CYCLE statement at %C is not applicable to non-loop construct %qs"
+msgstr ""
+
+#: fortran/match.cc:2846
+#, gcc-internal-format, gfc-internal-format
+msgid "EXIT statement with no do-construct-name at %C"
+msgstr ""
+
+#: fortran/match.cc:2852
+#, gcc-internal-format
+msgid "%s statement at %C is not applicable to construct %qs"
+msgstr ""
+
+#: fortran/match.cc:2860
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement at %C leaving OpenACC structured block"
+msgstr ""
+
+#: fortran/match.cc:2861
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement at %C leaving OpenMP structured block"
+msgstr ""
+
+#: fortran/match.cc:2901
+#, gcc-internal-format, gfc-internal-format
+msgid "EXIT statement at %C terminating !$ACC LOOP loop"
+msgstr ""
+
+#: fortran/match.cc:2907
+#, gcc-internal-format, gfc-internal-format
+msgid "CYCLE statement at %C to non-innermost tiled !$ACC LOOP loop"
+msgstr ""
+
+#: fortran/match.cc:2909
+#, gcc-internal-format, gfc-internal-format
+msgid "CYCLE statement at %C to non-innermost collapsed !$ACC LOOP loop"
+msgstr ""
+
+#: fortran/match.cc:2956
+#, gcc-internal-format, gfc-internal-format
+msgid "EXIT statement at %C terminating !$OMP DO loop"
+msgstr ""
+
+#: fortran/match.cc:2961
+#, gcc-internal-format, gfc-internal-format
+msgid "CYCLE statement at %C to non-innermost collapsed !$OMP DO loop"
+msgstr ""
+
+#: fortran/match.cc:3066
+#, gcc-internal-format, gfc-internal-format
+msgid "Blank required in %s statement near %C"
+msgstr ""
+
+#: fortran/match.cc:3089
+#, gcc-internal-format, gfc-internal-format
+msgid "STOP code at %C cannot be negative"
+msgstr ""
+
+#: fortran/match.cc:3095
+#, gcc-internal-format, gfc-internal-format
+msgid "STOP code at %C contains too many digits"
+msgstr ""
+
+#: fortran/match.cc:3111
+#, gcc-internal-format, gfc-internal-format
+msgid "QUIET= specifier for %s at %L"
+msgstr ""
+
+#: fortran/match.cc:3125
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement at %C in PURE procedure"
+msgstr ""
+
+#: fortran/match.cc:3141
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement STOP at %C in CRITICAL block"
+msgstr ""
+
+#: fortran/match.cc:3146
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement STOP at %C in DO CONCURRENT block"
+msgstr ""
+
+#: fortran/match.cc:3158
+#, gcc-internal-format, gfc-internal-format
+msgid "STOP code at %L must be a scalar CHARACTER constant or digit[digit[digit[digit[digit]]]]"
+msgstr ""
+
+#: fortran/match.cc:3170
+#, gcc-internal-format, gfc-internal-format
+msgid "STOP code at %L must be a scalar default CHARACTER or INTEGER constant expression"
+msgstr ""
+
+#: fortran/match.cc:3177
+#, gcc-internal-format, gfc-internal-format
+msgid "STOP code at %L must be either INTEGER or CHARACTER type"
+msgstr ""
+
+#: fortran/match.cc:3184
+#, gcc-internal-format, gfc-internal-format
+msgid "STOP code at %L must be scalar"
+msgstr ""
+
+#: fortran/match.cc:3191
+#, gcc-internal-format, gfc-internal-format
+msgid "STOP code at %L must be default character KIND=%d"
+msgstr ""
+
+#: fortran/match.cc:3198
+#, gcc-internal-format, gfc-internal-format
+msgid "STOP code at %L must be default integer KIND=%d"
+msgstr ""
+
+#: fortran/match.cc:3210 fortran/resolve.cc:12659
+#, gcc-internal-format, gfc-internal-format
+msgid "QUIET specifier at %L must be a scalar LOGICAL"
+msgstr ""
+
+#: fortran/match.cc:3260
+#, gcc-internal-format, gfc-internal-format
+msgid "PAUSE statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3281
+#, gcc-internal-format, gfc-internal-format
+msgid "ERROR STOP statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3307
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement EVENT %s at %C in PURE procedure"
+msgstr ""
+
+#: fortran/match.cc:3322
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement EVENT %s at %C in CRITICAL block"
+msgstr ""
+
+#: fortran/match.cc:3329
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement EVENT %s at %C in DO CONCURRENT block"
+msgstr ""
+
+#: fortran/match.cc:3359 fortran/match.cc:3701 fortran/match.cc:3913
+#: fortran/match.cc:4465 fortran/match.cc:4836
+#, gcc-internal-format, gfc-internal-format
+msgid "Redundant STAT tag found at %L"
+msgstr ""
+
+#: fortran/match.cc:3380 fortran/match.cc:3722 fortran/match.cc:3933
+#: fortran/match.cc:4497 fortran/match.cc:4861
+#, gcc-internal-format, gfc-internal-format
+msgid "Redundant ERRMSG tag found at %L"
+msgstr ""
+
+#: fortran/match.cc:3401
+#, gcc-internal-format, gfc-internal-format
+msgid "Redundant UNTIL_COUNT tag found at %L"
+msgstr ""
+
+#: fortran/match.cc:3467
+#, gcc-internal-format, gfc-internal-format
+msgid "EVENT POST statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3477
+#, gcc-internal-format, gfc-internal-format
+msgid "EVENT WAIT statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3489
+#, gcc-internal-format, gfc-internal-format
+msgid "FAIL IMAGE statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3513
+#, gcc-internal-format, gfc-internal-format
+msgid "FORM TEAM statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3552
+#, gcc-internal-format, gfc-internal-format
+msgid "CHANGE TEAM statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3582
+#, gcc-internal-format, gfc-internal-format
+msgid "END TEAM statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3606
+#, gcc-internal-format, gfc-internal-format
+msgid "SYNC TEAM statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3649
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement %s at %C in PURE procedure"
+msgstr ""
+
+#: fortran/match.cc:3664
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement %s at %C in CRITICAL block"
+msgstr ""
+
+#: fortran/match.cc:3671
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement %s at %C in DO CONCURRENT block"
+msgstr ""
+
+#: fortran/match.cc:3743
+#, gcc-internal-format, gfc-internal-format
+msgid "Redundant ACQUIRED_LOCK tag found at %L"
+msgstr ""
+
+#: fortran/match.cc:3808
+#, gcc-internal-format, gfc-internal-format
+msgid "LOCK statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3818
+#, gcc-internal-format, gfc-internal-format
+msgid "UNLOCK statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3843
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement SYNC at %C in PURE procedure"
+msgstr ""
+
+#: fortran/match.cc:3849
+#, gcc-internal-format, gfc-internal-format
+msgid "SYNC statement at %C"
+msgstr ""
+
+#: fortran/match.cc:3861
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement SYNC at %C in CRITICAL block"
+msgstr ""
+
+#: fortran/match.cc:3867
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement SYNC at %C in DO CONCURRENT block"
+msgstr ""
+
+#: fortran/match.cc:4047
+#, gcc-internal-format, gfc-internal-format
+msgid "ASSIGN statement at %C"
+msgstr ""
+
+#: fortran/match.cc:4091
+#, gcc-internal-format, gfc-internal-format
+msgid "Assigned GOTO statement at %C"
+msgstr ""
+
+#: fortran/match.cc:4135 fortran/match.cc:4186
+#, gcc-internal-format, gfc-internal-format
+msgid "Statement label list in GOTO at %C cannot be empty"
+msgstr ""
+
+#: fortran/match.cc:4196
+#, gcc-internal-format, gfc-internal-format
+msgid "Computed GOTO at %C"
+msgstr ""
+
+#: fortran/match.cc:4271
+#, gcc-internal-format, gfc-internal-format
+msgid "Error in type-spec at %L"
+msgstr ""
+
+#: fortran/match.cc:4284
+#, gcc-internal-format, gfc-internal-format
+msgid "typespec in ALLOCATE at %L"
+msgstr ""
+
+#: fortran/match.cc:4307
+#, gcc-internal-format, gfc-internal-format
+msgid "The type parameter spec list in the type-spec at %L cannot contain DEFERRED parameters"
+msgstr ""
+
+#: fortran/match.cc:4337 fortran/match.cc:4774
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected constant at %C"
+msgstr ""
+
+#: fortran/match.cc:4347
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad allocate-object at %C for a PURE procedure"
+msgstr ""
+
+#: fortran/match.cc:4362
+#, gcc-internal-format, gfc-internal-format
+msgid "Incompatible allocate-object at %C for CHARACTER type-spec at %L"
+msgstr ""
+
+#: fortran/match.cc:4384
+#, gcc-internal-format, gfc-internal-format
+msgid "ALLOCATE of coarray at %C in DO CONCURRENT block"
+msgstr ""
+
+#: fortran/match.cc:4389
+#, gcc-internal-format, gfc-internal-format
+msgid "ALLOCATE of coarray at %C in CRITICAL block"
+msgstr ""
+
+#: fortran/match.cc:4411
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocate-object at %L is neither a data pointer nor an allocatable variable"
+msgstr ""
+
+#: fortran/match.cc:4423
+#, gcc-internal-format, gfc-internal-format
+msgid "Type of entity at %L is type incompatible with typespec"
+msgstr ""
+
+#: fortran/match.cc:4431
+#, gcc-internal-format, gfc-internal-format
+msgid "Kind type parameter for entity at %L differs from the kind type parameter of the typespec"
+msgstr ""
+
+#: fortran/match.cc:4448
+#, gcc-internal-format, gfc-internal-format
+msgid "Shape specification for allocatable scalar at %C"
+msgstr ""
+
+#: fortran/match.cc:4475
+#, gcc-internal-format, gfc-internal-format
+msgid "STAT tag at %L cannot be a constant"
+msgstr ""
+
+#: fortran/match.cc:4491
+#, gcc-internal-format, gfc-internal-format
+msgid "ERRMSG tag at %L"
+msgstr ""
+
+#: fortran/match.cc:4514
+#, gcc-internal-format, gfc-internal-format
+msgid "SOURCE tag at %L"
+msgstr ""
+
+#: fortran/match.cc:4520
+#, gcc-internal-format, gfc-internal-format
+msgid "Redundant SOURCE tag found at %L"
+msgstr ""
+
+#: fortran/match.cc:4527
+#, gcc-internal-format, gfc-internal-format
+msgid "SOURCE tag at %L conflicts with the typespec at %L"
+msgstr ""
+
+#: fortran/match.cc:4533
+#, gcc-internal-format, gfc-internal-format
+msgid "SOURCE tag at %L with more than a single allocate object"
+msgstr ""
+
+#: fortran/match.cc:4551
+#, gcc-internal-format, gfc-internal-format
+msgid "MOLD tag at %L"
+msgstr ""
+
+#: fortran/match.cc:4557
+#, gcc-internal-format, gfc-internal-format
+msgid "Redundant MOLD tag found at %L"
+msgstr ""
+
+#: fortran/match.cc:4564
+#, gcc-internal-format, gfc-internal-format
+msgid "MOLD tag at %L conflicts with the typespec at %L"
+msgstr ""
+
+#: fortran/match.cc:4590
+#, gcc-internal-format, gfc-internal-format
+msgid "MOLD tag at %L conflicts with SOURCE tag at %L"
+msgstr ""
+
+#: fortran/match.cc:4598
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocate-object at %L with a deferred type parameter requires either a type-spec or SOURCE tag or a MOLD tag"
+msgstr ""
+
+#: fortran/match.cc:4610
+#, gcc-internal-format, gfc-internal-format
+msgid "Unlimited polymorphic allocate-object at %L requires either a type-spec or SOURCE tag or a MOLD tag"
+msgstr ""
+
+#: fortran/match.cc:4677
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer object at %C shall not be coindexed"
+msgstr ""
+
+#: fortran/match.cc:4692
+#, gcc-internal-format, gfc-internal-format
+msgid "NULLIFY does not allow bounds remapping for pointer object at %C"
+msgstr ""
+
+#: fortran/match.cc:4786
+#, gcc-internal-format, gfc-internal-format
+msgid "Illegal allocate-object at %C for a PURE procedure"
+msgstr ""
+
+#: fortran/match.cc:4796
+#, gcc-internal-format, gfc-internal-format
+msgid "DEALLOCATE of coarray at %C in DO CONCURRENT block"
+msgstr ""
+
+#: fortran/match.cc:4803
+#, gcc-internal-format, gfc-internal-format
+msgid "DEALLOCATE of coarray at %C in CRITICAL block"
+msgstr ""
+
+#: fortran/match.cc:4819
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocate-object at %C is not a nonprocedure pointer nor an allocatable variable"
+msgstr ""
+
+#: fortran/match.cc:4856
+#, gcc-internal-format, gfc-internal-format
+msgid "ERRMSG at %L"
+msgstr ""
+
+#: fortran/match.cc:4913
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement RETURN at %C in CRITICAL block"
+msgstr ""
+
+#: fortran/match.cc:4919
+#, gcc-internal-format, gfc-internal-format
+msgid "Image control statement RETURN at %C in DO CONCURRENT block"
+msgstr ""
+
+#: fortran/match.cc:4928
+#, gcc-internal-format, gfc-internal-format
+msgid "Alternate RETURN statement at %C is only allowed within a SUBROUTINE"
+msgstr ""
+
+#: fortran/match.cc:4959
+#, gcc-internal-format, gfc-internal-format
+msgid "RETURN statement in main program at %C"
+msgstr ""
+
+#: fortran/match.cc:4987
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected component reference at %C"
+msgstr ""
+
+#: fortran/match.cc:4996
+#, gcc-internal-format, gfc-internal-format
+msgid "Junk after CALL at %C"
+msgstr ""
+
+#: fortran/match.cc:5007
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected type-bound procedure or procedure pointer component at %C"
+msgstr ""
+
+#: fortran/match.cc:5105
+#, gcc-internal-format, gfc-internal-format
+msgid "A BOZ literal constant at %L cannot appear as an actual argument in a subroutine reference"
+msgstr ""
+
+#: fortran/match.cc:5246
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in common block name at %C"
+msgstr ""
+
+#. If we find an error, just print it and continue,
+#. cause it's just semantic, and we can see if there
+#. are more errors.
+#: fortran/match.cc:5321
+#, gcc-internal-format
+msgid "Variable %qs at %L in common block %qs at %C must be declared with a C interoperable kind since common block %qs is bind(c)"
+msgstr ""
+
+#: fortran/match.cc:5330
+#, gcc-internal-format
+msgid "Variable %qs in common block %qs at %C cannot be bind(c) since it is not global"
+msgstr ""
+
+#: fortran/match.cc:5337
+#, gcc-internal-format
+msgid "Symbol %qs at %C is already in a COMMON block"
+msgstr ""
+
+#: fortran/match.cc:5345
+#, gcc-internal-format
+msgid "Initialized symbol %qs at %C can only be COMMON in BLOCK DATA"
+msgstr ""
+
+#: fortran/match.cc:5356
+#, gcc-internal-format
+msgid "Symbol %qs at %C is USE associated from module %qs and cannot occur in COMMON"
+msgstr ""
+
+#: fortran/match.cc:5371
+#, gcc-internal-format
+msgid "Array specification for symbol %qs in COMMON at %C must be explicit"
+msgstr ""
+
+#: fortran/match.cc:5378
+#, gcc-internal-format
+msgid "Symbol %qs in COMMON at %C cannot be a coarray"
+msgstr ""
+
+#: fortran/match.cc:5388
+#, gcc-internal-format
+msgid "Symbol %qs in COMMON at %C cannot be a POINTER array"
+msgstr ""
+
+#: fortran/match.cc:5434
+#, gcc-internal-format
+msgid "Symbol %qs, in COMMON block %qs at %C is being indirectly equivalenced to another COMMON block %qs"
+msgstr ""
+
+#: fortran/match.cc:5496
+#, gcc-internal-format, gfc-internal-format
+msgid "BLOCK DATA construct at %L"
+msgstr ""
+
+#: fortran/match.cc:5599
+#, gcc-internal-format
+msgid "Namelist group name %qs at %C already has a basic type of %s"
+msgstr ""
+
+#: fortran/match.cc:5607
+#, gcc-internal-format
+msgid "Namelist group name %qs at %C already is USE associated and cannot be respecified."
+msgstr ""
+
+#. It is required that members of a namelist be declared
+#. before the namelist.  We check this by checking if the
+#. symbol has a defined type for IMPLICIT NONE.
+#: fortran/match.cc:5632
+#, gcc-internal-format
+msgid "Symbol %qs in namelist %qs at %C must be declared before the namelist is declared."
+msgstr ""
+
+#: fortran/match.cc:5652
+#, gcc-internal-format
+msgid "Derived type %qs at %L conflicts with namelist object %qs at %C"
+msgstr ""
+
+#: fortran/match.cc:5672
+#, gcc-internal-format
+msgid "Assumed size array %qs in namelist %qs at %C is not allowed"
+msgstr ""
+
+#: fortran/match.cc:5815
+#, gcc-internal-format, gfc-internal-format
+msgid "Derived type component %C is not a permitted EQUIVALENCE member"
+msgstr ""
+
+#: fortran/match.cc:5823
+#, gcc-internal-format, gfc-internal-format
+msgid "Array reference in EQUIVALENCE at %C cannot be an array section"
+msgstr ""
+
+#: fortran/match.cc:5856
+#, gcc-internal-format, gfc-internal-format
+msgid "EQUIVALENCE at %C requires two or more objects"
+msgstr ""
+
+#: fortran/match.cc:5870
+#, gcc-internal-format, gfc-internal-format
+msgid "Attempt to indirectly overlap COMMON blocks %s and %s by EQUIVALENCE at %C"
+msgstr ""
+
+#: fortran/match.cc:5883
+#, gcc-internal-format, gfc-internal-format
+msgid "Expecting a comma in EQUIVALENCE at %C"
+msgstr ""
+
+#: fortran/match.cc:5888
+#, gcc-internal-format, gfc-internal-format
+msgid "EQUIVALENCE statement at %C"
+msgstr ""
+
+#: fortran/match.cc:5981
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid use of statement function argument at %L"
+msgstr ""
+
+#: fortran/match.cc:6048
+#, gcc-internal-format, gfc-internal-format
+msgid "Statement function at %L is recursive"
+msgstr ""
+
+#: fortran/match.cc:6054
+#, gcc-internal-format
+msgid "Statement function %qs at %L conflicts with function name"
+msgstr ""
+
+#: fortran/match.cc:6068
+#, gcc-internal-format, gfc-internal-format
+msgid "Statement function at %L cannot appear within an INTERFACE"
+msgstr ""
+
+#: fortran/match.cc:6073
+#, gcc-internal-format, gfc-internal-format
+msgid "Statement function at %C"
+msgstr ""
+
+#: fortran/match.cc:6198 fortran/match.cc:6214 fortran/match.cc:6233
+#, gcc-internal-format, gfc-internal-format
+msgid "Expression in CASE selector at %L cannot be %s"
+msgstr ""
+
+#: fortran/match.cc:6243 fortran/match.cc:6249
+#, gcc-internal-format, gfc-internal-format
+msgid "Expression in CASE selector at %L must be scalar"
+msgstr ""
+
+#: fortran/match.cc:6258
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected initialization expression in CASE at %C"
+msgstr ""
+
+#: fortran/match.cc:6290
+#, gcc-internal-format
+msgid "Expected block name %qs of SELECT construct at %C"
+msgstr ""
+
+#: fortran/match.cc:6654
+#, gcc-internal-format, gfc-internal-format
+msgid "SELECT TYPE at %C cannot appear in this scope"
+msgstr ""
+
+#: fortran/match.cc:6682
+#, gcc-internal-format, gfc-internal-format
+msgid "parse error in SELECT TYPE statement at %C"
+msgstr ""
+
+#: fortran/match.cc:6707
+#, gcc-internal-format, gfc-internal-format
+msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>"
+msgstr ""
+
+#: fortran/match.cc:6895
+#, gcc-internal-format, gfc-internal-format
+msgid "SELECT RANK statement at %C"
+msgstr ""
+
+#: fortran/match.cc:6936 fortran/match.cc:6990
+#, gcc-internal-format, gfc-internal-format
+msgid "The SELECT RANK selector at %C must be an assumed rank variable"
+msgstr ""
+
+#: fortran/match.cc:7000
+#, gcc-internal-format, gfc-internal-format
+msgid "parse error in SELECT RANK statement at %C"
+msgstr ""
+
+#: fortran/match.cc:7036
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected CASE statement at %C"
+msgstr ""
+
+#: fortran/match.cc:7088
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in CASE specification at %C"
+msgstr ""
+
+#: fortran/match.cc:7106
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected TYPE IS statement at %C"
+msgstr ""
+
+#: fortran/match.cc:7138
+#, gcc-internal-format, gfc-internal-format
+msgid "The type-spec shall not specify a sequence derived type or a type with the BIND attribute in SELECT TYPE at %C [F2003:C815]"
+msgstr ""
+
+#: fortran/match.cc:7149
+#, gcc-internal-format, gfc-internal-format
+msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
+msgstr ""
+
+#: fortran/match.cc:7160
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in TYPE IS specification at %C"
+msgstr ""
+
+#: fortran/match.cc:7236
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in CLASS IS specification at %C"
+msgstr ""
+
+#: fortran/match.cc:7256
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected RANK statement at %C"
+msgstr ""
+
+#: fortran/match.cc:7302
+#, gcc-internal-format, gfc-internal-format
+msgid "The SELECT RANK CASE expression at %C must be a scalar, integer constant"
+msgstr ""
+
+#: fortran/match.cc:7311
+#, gcc-internal-format, gfc-internal-format
+msgid "The value of the SELECT RANK CASE expression at %C must not be less than zero or greater than %d"
+msgstr ""
+
+#: fortran/match.cc:7338
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in RANK specification at %C"
+msgstr ""
+
+#: fortran/match.cc:7460
+#, gcc-internal-format, gfc-internal-format
+msgid "ELSEWHERE statement at %C not enclosed in WHERE block"
+msgstr ""
+
+#: fortran/match.cc:7498
+#, gcc-internal-format
+msgid "Label %qs at %C doesn't match WHERE label %qs"
+msgstr ""
+
+#: fortran/matchexp.cc:72
+#, gcc-internal-format
+msgid "Bad character %qc in OPERATOR name at %C"
+msgstr ""
+
+#: fortran/matchexp.cc:80
+#, gcc-internal-format
+msgid "The name %qs cannot be used as a defined operator at %C"
+msgstr ""
+
+#: fortran/matchexp.cc:173
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected a right parenthesis in expression at %C"
+msgstr ""
+
+#: fortran/matchexp.cc:281
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected exponent in expression at %C"
+msgstr ""
+
+#: fortran/matchexp.cc:319 fortran/matchexp.cc:324 fortran/matchexp.cc:428
+#: fortran/matchexp.cc:433
+#, gcc-internal-format, gfc-internal-format
+msgid "Extension: Unary operator following arithmetic operator (use parentheses) at %C"
+msgstr ""
+
+#: fortran/matchexp.cc:665
+#, gcc-internal-format
+msgid "match_level_4(): Bad operator"
+msgstr ""
+
+#: fortran/misc.cc:113
+#, gcc-internal-format
+msgid "gfc_basic_typename(): Undefined type"
+msgstr ""
+
+#: fortran/misc.cc:212
+#, gcc-internal-format
+msgid "gfc_typename(): Undefined type"
+msgstr ""
+
+#: fortran/misc.cc:316
+#, gcc-internal-format
+msgid "gfc_code2string(): Bad code"
+msgstr ""
+
+#: fortran/module.cc:243
+#, gcc-internal-format
+msgid "free_pi_tree(): Unresolved fixup"
+msgstr ""
+
+#: fortran/module.cc:460
+#, gcc-internal-format
+msgid "associate_integer_pointer(): Already associated"
+msgstr ""
+
+#: fortran/module.cc:544
+#, gcc-internal-format, gfc-internal-format
+msgid "module nature in USE statement at %C"
+msgstr ""
+
+#: fortran/module.cc:556
+#, gcc-internal-format, gfc-internal-format
+msgid "Module nature in USE statement at %C shall be either INTRINSIC or NON_INTRINSIC"
+msgstr ""
+
+#: fortran/module.cc:569
+#, gcc-internal-format, gfc-internal-format
+msgid "\"::\" was expected after module nature at %C but was not found"
+msgstr ""
+
+#: fortran/module.cc:579
+#, gcc-internal-format, gfc-internal-format
+msgid "\"USE :: module\" at %C"
+msgstr ""
+
+#: fortran/module.cc:638
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing generic specification in USE statement at %C"
+msgstr ""
+
+#: fortran/module.cc:649
+#, gcc-internal-format, gfc-internal-format
+msgid "Renaming operators in USE statements at %C"
+msgstr ""
+
+#: fortran/module.cc:693
+#, gcc-internal-format
+msgid "Symbol %qs at %L conflicts with the rename symbol at %L"
+msgstr ""
+
+#: fortran/module.cc:696
+#, gcc-internal-format
+msgid "Symbol %qs at %L conflicts with the symbol at %L"
+msgstr ""
+
+#: fortran/module.cc:704
+#, gcc-internal-format
+msgid "The name %qs at %C has already been used as an external module name"
+msgstr ""
+
+#: fortran/module.cc:767
+#, gcc-internal-format, gfc-internal-format
+msgid "SUBMODULE declaration at %C"
+msgstr ""
+
+#: fortran/module.cc:772
+#, gcc-internal-format, gfc-internal-format
+msgid "SUBMODULE declaration at %C cannot appear within another scoping unit"
+msgstr ""
+
+#: fortran/module.cc:847
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in SUBMODULE statement at %C"
+msgstr ""
+
+#: fortran/module.cc:1207
+#, gcc-internal-format
+msgid "Reading module %qs at line %d column %d: %s"
+msgstr ""
+
+#: fortran/module.cc:1211
+#, gcc-internal-format
+msgid "Writing module %qs at line %d column %d: %s"
+msgstr ""
+
+#: fortran/module.cc:1215
+#, gcc-internal-format
+msgid "Module %qs at line %d column %d: %s"
+msgstr ""
+
+#: fortran/module.cc:1648
+#, gcc-internal-format
+msgid "require_atom(): bad atom type required"
+msgstr ""
+
+#: fortran/module.cc:1697
+#, gcc-internal-format, gfc-internal-format
+msgid "Error writing modules file: %s"
+msgstr ""
+
+#: fortran/module.cc:1747
+#, gcc-internal-format
+msgid "write_atom(): Trying to write dab atom"
+msgstr ""
+
+#: fortran/module.cc:1968
+#, gcc-internal-format
+msgid "unquote_string(): got bad string"
+msgstr ""
+
+#: fortran/module.cc:2984
+#, gcc-internal-format
+msgid "mio_array_ref(): Unknown array ref"
+msgstr ""
+
+#: fortran/module.cc:5119
+#, gcc-internal-format, gfc-internal-format
+msgid "Ambiguous !$OMP DECLARE REDUCTION from module %s at %L"
+msgstr ""
+
+#: fortran/module.cc:5122
+#, gcc-internal-format, gfc-internal-format
+msgid "Previous !$OMP DECLARE REDUCTION from module %s at %L"
+msgstr ""
+
+#: fortran/module.cc:5316
+#, gcc-internal-format
+msgid "%qs of module %qs, imported at %C, is also the name of the current program unit"
+msgstr ""
+
+#: fortran/module.cc:5453
+#, gcc-internal-format
+msgid "Mismatch in components of derived type %qs from %qs at %C: expecting %qs, but got %qs"
+msgstr ""
+
+#: fortran/module.cc:5732
+#, gcc-internal-format
+msgid "Symbol %qs referenced at %L not found in module %qs"
+msgstr ""
+
+#: fortran/module.cc:5739
+#, gcc-internal-format
+msgid "User operator %qs referenced at %L not found in module %qs"
+msgstr ""
+
+#: fortran/module.cc:5744
+#, gcc-internal-format
+msgid "Intrinsic operator %qs referenced at %L not found in module %qs"
+msgstr ""
+
+#: fortran/module.cc:5980
+#, gcc-internal-format
+msgid "write_symbol(): bad module symbol %qs"
+msgstr ""
+
+#: fortran/module.cc:6324
+#, gcc-internal-format
+msgid "write_symtree(): Symbol not written"
+msgstr ""
+
+#: fortran/module.cc:6514
+#, gcc-internal-format
+msgid "Cannot open module file %qs for writing at %C: %s"
+msgstr ""
+
+#: fortran/module.cc:6535
+#, gcc-internal-format
+msgid "Error writing module file %qs for writing: %s"
+msgstr ""
+
+#: fortran/module.cc:6546
+#, gcc-internal-format
+msgid "Cannot delete module file %qs: %s"
+msgstr ""
+
+#: fortran/module.cc:6549
+#, gcc-internal-format
+msgid "Cannot rename module file %qs to %qs: %s"
+msgstr ""
+
+#: fortran/module.cc:6555
+#, gcc-internal-format
+msgid "Cannot delete temporary module file %qs: %s"
+msgstr ""
+
+#: fortran/module.cc:6612
+#, gcc-internal-format
+msgid "Symbol %qs at %C already declared"
+msgstr ""
+
+#: fortran/module.cc:6683
+#, gcc-internal-format, gfc-internal-format
+msgid "import_iso_c_binding_module(): Unable to create symbol for %s"
+msgstr ""
+
+#: fortran/module.cc:6791 fortran/module.cc:7135
+#, gcc-internal-format
+msgid "The symbol %qs, referenced at %L, is not in the selected standard"
+msgstr ""
+
+#: fortran/module.cc:6919
+#, gcc-internal-format
+msgid "Symbol %qs referenced at %L not found in intrinsic module ISO_C_BINDING"
+msgstr ""
+
+#: fortran/module.cc:6940 fortran/module.cc:6973 fortran/module.cc:7015
+#, gcc-internal-format
+msgid "Symbol %qs already declared"
+msgstr ""
+
+#: fortran/module.cc:7120
+#, gcc-internal-format
+msgid "Use of intrinsic module %qs at %C conflicts with non-intrinsic module name used previously"
+msgstr ""
+
+#: fortran/module.cc:7142
+#, gcc-internal-format
+msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %L is incompatible with option %qs"
+msgstr ""
+
+#: fortran/module.cc:7210
+#, gcc-internal-format, gfc-internal-format
+msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %C is incompatible with option %s"
+msgstr ""
+
+#: fortran/module.cc:7264
+#, gcc-internal-format
+msgid "Symbol %qs referenced at %L not found in intrinsic module ISO_FORTRAN_ENV"
+msgstr ""
+
+#: fortran/module.cc:7290
+#, gcc-internal-format, gfc-internal-format
+msgid "USE statement at %C has no ONLY qualifier"
+msgstr ""
+
+#: fortran/module.cc:7319
+#, gcc-internal-format, gfc-internal-format
+msgid "ISO_FORTRAN_ENV intrinsic module at %C"
+msgstr ""
+
+#: fortran/module.cc:7331
+#, gcc-internal-format, gfc-internal-format
+msgid "ISO_C_BINDING module at %C"
+msgstr ""
+
+#: fortran/module.cc:7344
+#, gcc-internal-format
+msgid "Cannot find an intrinsic module named %qs at %C"
+msgstr ""
+
+#: fortran/module.cc:7350
+#, gcc-internal-format, gfc-internal-format
+msgid "IEEE_FEATURES module at %C"
+msgstr ""
+
+#: fortran/module.cc:7356
+#, gcc-internal-format, gfc-internal-format
+msgid "IEEE_EXCEPTIONS module at %C"
+msgstr ""
+
+#: fortran/module.cc:7362
+#, gcc-internal-format, gfc-internal-format
+msgid "IEEE_ARITHMETIC module at %C"
+msgstr ""
+
+#: fortran/module.cc:7372
+#, gcc-internal-format
+msgid "Cannot open module file %qs for reading at %C: %s"
+msgstr ""
+
+#: fortran/module.cc:7375
+#, gcc-internal-format
+msgid "Module file %qs has not been generated, either because the module does not contain a MODULE PROCEDURE or there is an error in the module."
+msgstr ""
+
+#: fortran/module.cc:7386
+#, gcc-internal-format
+msgid "Use of non-intrinsic module %qs at %C conflicts with intrinsic module name used previously"
+msgstr ""
+
+#: fortran/module.cc:7409
+#, gcc-internal-format
+msgid "File %qs opened at %C is not a GNU Fortran module file"
+msgstr ""
+
+#: fortran/module.cc:7417
+#, gcc-internal-format
+msgid "Cannot read module file %qs opened at %C, because it was created by a different version of GNU Fortran"
+msgstr ""
+
+#: fortran/module.cc:7434
+#, gcc-internal-format
+msgid "Cannot USE a submodule that is currently built"
+msgstr ""
+
+#: fortran/module.cc:7436
+#, gcc-internal-format
+msgid "Cannot USE a module that is currently built"
+msgstr ""
+
+#: fortran/openmp.cc:150 fortran/openmp.cc:7113
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk at %C"
+msgstr ""
+
+#: fortran/openmp.cc:429
+#, gcc-internal-format
+msgid "%<omp_all_memory%> at %C not permitted in this clause"
+msgstr ""
+
+#: fortran/openmp.cc:474
+#, gcc-internal-format, gfc-internal-format
+msgid "List item shall not be coindexed at %C"
+msgstr ""
+
+#: fortran/openmp.cc:493
+#, gcc-internal-format
+msgid "%qs at %L is part of the common block %</%s/%> and may only be specificed implicitly via the named common block"
+msgstr ""
+
+#: fortran/openmp.cc:518 fortran/openmp.cc:619 fortran/openmp.cc:949
+#: fortran/openmp.cc:6165
+#, gcc-internal-format, gfc-internal-format
+msgid "COMMON block /%s/ not found at %C"
+msgstr ""
+
+#: fortran/openmp.cc:557 fortran/openmp.cc:647
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in OpenMP variable list at %C"
+msgstr ""
+
+#: fortran/openmp.cc:674
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in OpenMP detach clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:703
+#, gcc-internal-format
+msgid "%<omp_all_memory%> used with dependence-type other than OUT or INOUT at %C"
+msgstr ""
+
+#: fortran/openmp.cc:756
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in OpenMP SINK dependence-type list at %C"
+msgstr ""
+
+#: fortran/openmp.cc:818
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in OpenACC expression list at %C"
+msgstr ""
+
+#: fortran/openmp.cc:885
+#, gcc-internal-format
+msgid "Unexpected OpenACC parallelism."
+msgstr ""
+
+#: fortran/openmp.cc:917
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable at %C is an element of a COMMON block"
+msgstr ""
+
+#: fortran/openmp.cc:977
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after !$ACC DECLARE at %C"
+msgstr ""
+
+#: fortran/openmp.cc:987
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in !$ACC DECLARE list at %C"
+msgstr ""
+
+#: fortran/openmp.cc:1242
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected INTEGER type at %L"
+msgstr ""
+
+#: fortran/openmp.cc:1256
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected identifier at %C"
+msgstr ""
+
+#: fortran/openmp.cc:1261
+#, gcc-internal-format
+msgid "Same identifier %qs specified again at %C"
+msgstr ""
+
+#: fortran/openmp.cc:1288
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected range-specification at %C"
+msgstr ""
+
+#: fortran/openmp.cc:1398
+#, gcc-internal-format, gfc-internal-format
+msgid "Comma expected at %C"
+msgstr ""
+
+#: fortran/openmp.cc:1510
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP DECLARE REDUCTION %s not found at %L"
+msgstr ""
+
+#: fortran/openmp.cc:1570
+#, gcc-internal-format, gfc-internal-format
+msgid "Unknown directive at %L"
+msgstr ""
+
+#: fortran/openmp.cc:1572
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid combined or composite directive at %L"
+msgstr ""
+
+#: fortran/openmp.cc:1580
+#, gcc-internal-format
+msgid "Invalid %qs directive at %L in %s clause: declarative, informational and meta directives not permitted"
+msgstr ""
+
+#: fortran/openmp.cc:1612
+#, gcc-internal-format
+msgid "Expected %<,%> or %<)%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:1638 fortran/openmp.cc:1648
+#, gcc-internal-format
+msgid "%qs directive mentioned multiple times in %s clause in %s directive at %L"
+msgstr ""
+
+#: fortran/openmp.cc:1656
+#, gcc-internal-format
+msgid "%qs directive mentioned both times in ABSENT and CONTAINS clauses in %s directive at %L"
+msgstr ""
+
+#: fortran/openmp.cc:1746
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate %s modifier at %L in USES_ALLOCATORS clause"
+msgstr ""
+
+#: fortran/openmp.cc:1780
+#, gcc-internal-format
+msgid "Unexpected %<(%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:1827
+#, gcc-internal-format
+msgid "Duplicated %qs clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:1834
+#, gcc-internal-format
+msgid "Expected %<(%> after %qs at %C"
+msgstr ""
+
+#: fortran/openmp.cc:1841
+#, gcc-internal-format
+msgid "Invalid expression after %<%s(%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:1902
+#, gcc-internal-format, gfc-internal-format
+msgid "Clause expected at %C after trailing comma"
+msgstr ""
+
+#: fortran/openmp.cc:1972 fortran/openmp.cc:2008 fortran/openmp.cc:2418
+#: fortran/openmp.cc:2443
+#, gcc-internal-format
+msgid "Expected %<:%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2032
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected variable list at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2056
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected COMPILATION or EXECUTION in AT clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2117
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected TEAMS, PARALLEL or THREAD as binding in BIND at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2148
+#, gcc-internal-format, gfc-internal-format
+msgid "COLLAPSE clause argument not constant positive integer at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2251
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected ALLOC, TO, FROM, TOFROM, FIRSTPRIVATE, PRESENT, NONE or DEFAULT at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2273
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected SCALAR, AGGREGATE, ALLOCATABLE, POINTER or ALL at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2306
+#, gcc-internal-format, gfc-internal-format
+msgid "DEFAULTMAP at %C but prior DEFAULTMAP with unspecified category"
+msgstr ""
+
+#: fortran/openmp.cc:2309
+#, gcc-internal-format, gfc-internal-format
+msgid "DEFAULTMAP at %C but prior DEFAULTMAP for category %s"
+msgstr ""
+
+#: fortran/openmp.cc:2345
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected NONE or PRESENT in DEFAULT clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2348
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected NONE, FIRSTPRIVATE, PRIVATE or SHARED in DEFAULT clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2398
+#, gcc-internal-format, gfc-internal-format
+msgid "ITERATOR may not be combined with SOURCE at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2404
+#, gcc-internal-format, gfc-internal-format
+msgid "SOURCE at %C not permitted as dependence-type for this directive"
+msgstr ""
+
+#: fortran/openmp.cc:2410
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicated clause with SOURCE dependence-type at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2425
+#, gcc-internal-format
+msgid "Expected %<)%> or %<omp_cur_iteration)%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2437
+#, gcc-internal-format, gfc-internal-format
+msgid "SINK at %C not permitted as dependence-type for this directive"
+msgstr ""
+
+#: fortran/openmp.cc:2448
+#, gcc-internal-format, gfc-internal-format
+msgid "ITERATOR may not be combined with SINK at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2462
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected dependence-type SINK or SOURCE at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2479
+#, gcc-internal-format
+msgid "%<omp_all_memory%> used with DEPEND kind other than OUT or INOUT at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2517 fortran/openmp.cc:2552
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected integer expression at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2533
+#, gcc-internal-format
+msgid "%<ancestor%> device modifier not preceded by %<requires%> directive with %<reverse_offload%> clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2545
+#, gcc-internal-format
+msgid "the %<device%> clause expression must evaluate to %<1%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2558
+#, gcc-internal-format
+msgid "Expected integer expression or a single device-modifier %<device_num%> or %<ancestor%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2588
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected HOST, NOHOST or ANY at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2643
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected SEQ_CST, ACQUIRE or RELAXED at %C"
+msgstr ""
+
+#: fortran/openmp.cc:2831
+#, gcc-internal-format, gfc-internal-format
+msgid "INDIRECT clause at %C requires a constant logical expression"
+msgstr ""
+
+#: fortran/openmp.cc:3018
+#, gcc-internal-format
+msgid "Multiple %qs modifiers specified at %C"
+msgstr ""
+
+#: fortran/openmp.cc:3128
+#, gcc-internal-format
+msgid "too many %<always%> modifiers at %L"
+msgstr ""
+
+#: fortran/openmp.cc:3134
+#, gcc-internal-format
+msgid "too many %<close%> modifiers at %L"
+msgstr ""
+
+#: fortran/openmp.cc:3140
+#, gcc-internal-format
+msgid "too many %<present%> modifiers at %L"
+msgstr ""
+
+#: fortran/openmp.cc:3331
+#, gcc-internal-format
+msgid "Expected ORDER(CONCURRENT) at %C with optional %<reproducible%> or %<unconstrained%> modifier"
+msgstr ""
+
+#: fortran/openmp.cc:3356
+#, gcc-internal-format, gfc-internal-format
+msgid "ORDERED clause argument not constant positive integer at %C"
+msgstr ""
+
+#: fortran/openmp.cc:3646
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected FATAL or WARNING in SEVERITY clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:3839
+#, gcc-internal-format, gfc-internal-format
+msgid "Failed to match clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4022
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid clause in module with !$ACC DECLARE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:4032
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable is USE-associated with !$ACC DECLARE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:4041
+#, gcc-internal-format
+msgid "Variable %qs shall be declared in the same scoping unit as !$ACC DECLARE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:4049
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-size dummy array with !$ACC DECLARE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:4098
+#, gcc-internal-format
+msgid "%<acc update%> must contain at least one %<device%> or %<host%> or %<self%> clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:4146
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid argument to !$ACC WAIT at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4153
+#, gcc-internal-format, gfc-internal-format
+msgid "WAIT clause at %L requires a scalar INTEGER expression"
+msgstr ""
+
+#: fortran/openmp.cc:4201
+#, gcc-internal-format, gfc-internal-format
+msgid "ACC CACHE directive must be inside of loop %C"
+msgstr ""
+
+#: fortran/openmp.cc:4270
+#, gcc-internal-format, gfc-internal-format
+msgid "Only the !$ACC ROUTINE form without list is allowed in interface block at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4304
+#, gcc-internal-format
+msgid "Invalid NAME %qs in !$ACC ROUTINE ( NAME ) at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4312
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in !$ACC ROUTINE ( NAME ) at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4319
+#, gcc-internal-format
+msgid "Syntax error in !$ACC ROUTINE ( NAME ) at %C, expecting %<)%> after NAME"
+msgstr ""
+
+#: fortran/openmp.cc:4334
+#, gcc-internal-format, gfc-internal-format
+msgid "Multiple loop axes specified for routine at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4345
+#, gcc-internal-format, gfc-internal-format
+msgid "Intrinsic symbol specified in !$ACC ROUTINE ( NAME ) at %C marked with incompatible GANG, WORKER, or VECTOR clause"
+msgstr ""
+
+#: fortran/openmp.cc:4353
+#, gcc-internal-format, gfc-internal-format
+msgid "Intrinsic symbol specified in !$ACC ROUTINE ( NAME ) at %C marked with incompatible NOHOST clause"
+msgstr ""
+
+#: fortran/openmp.cc:4374 fortran/openmp.cc:4402
+#, gcc-internal-format, gfc-internal-format
+msgid "!$ACC ROUTINE already applied at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4419
+#, gcc-internal-format, gfc-internal-format
+msgid "!$ACC ROUTINE with GANG, WORKER, or VECTOR clause is not permitted in PURE procedure at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4598
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected ALIGN or ALLOCATOR clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4606
+#, gcc-internal-format, gfc-internal-format
+msgid "Sorry, structure-element list item at %L in ALLOCATE directive is not yet supported"
+msgstr ""
+
+#: fortran/openmp.cc:4609
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected expression as list item at %L in ALLOCATE directive"
+msgstr ""
+
+#: fortran/openmp.cc:4680
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ASSUMES at %C must be in the specification part of a subprogram or module"
+msgstr ""
+
+#: fortran/openmp.cc:4747
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after $OMP CRITICAL statement at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4769
+#, gcc-internal-format
+msgid "Expected %<( depobj )%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4787
+#, gcc-internal-format
+msgid "Expected IN, OUT, INOUT, INOUTSET or MUTEXINOUTSET followed by %<)%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4801
+#, gcc-internal-format, gfc-internal-format
+msgid "The same depend object should be used as DEPOBJ argument at %L and as DESTROY argument at %L"
+msgstr ""
+
+#: fortran/openmp.cc:4815
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected DEPEND, UPDATE, or DESTROY clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:4820
+#, gcc-internal-format, gfc-internal-format
+msgid "DEPEND clause at %L of OMP DEPOBJ construct shall not have dependence-type DEPOBJ"
+msgstr ""
+
+#: fortran/openmp.cc:4828
+#, gcc-internal-format, gfc-internal-format
+msgid "DEPEND clause at %L of OMP DEPOBJ construct shall have only a single locator"
+msgstr ""
+
+#: fortran/openmp.cc:4954 fortran/openmp.cc:9206
+#, gcc-internal-format, gfc-internal-format
+msgid "MESSAGE clause at %L requires a scalar default-kind CHARACTER expression"
+msgstr ""
+
+#: fortran/openmp.cc:4961
+#, gcc-internal-format, gfc-internal-format
+msgid "Constant character expression required in MESSAGE clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:4967
+#, gcc-internal-format, gfc-internal-format
+msgid "$OMP ERROR encountered at %L: %s"
+msgstr ""
+
+#: fortran/openmp.cc:4986
+#, gcc-internal-format, gfc-internal-format
+msgid "$OMP ERROR encountered at %L"
+msgstr ""
+
+#: fortran/openmp.cc:5014
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected SEQ_CST, AQC_REL, RELEASE, or ACQUIRE at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5023
+#, gcc-internal-format, gfc-internal-format
+msgid "List specified together with memory order clause in FLUSH directive at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5031
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after $OMP FLUSH statement at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5431 fortran/openmp.cc:11778
+#, gcc-internal-format, gfc-internal-format
+msgid "Redefinition of predefined %s !$OMP DECLARE REDUCTION at %L"
+msgstr ""
+
+#: fortran/openmp.cc:5435 fortran/openmp.cc:11782
+#, gcc-internal-format, gfc-internal-format
+msgid "Redefinition of predefined !$OMP DECLARE REDUCTION at %L"
+msgstr ""
+
+#: fortran/openmp.cc:5440
+#, gcc-internal-format, gfc-internal-format
+msgid "Redefinition of !$OMP DECLARE REDUCTION at %L"
+msgstr ""
+
+#: fortran/openmp.cc:5442
+#, gcc-internal-format, gfc-internal-format
+msgid "Previous !$OMP DECLARE REDUCTION at %L"
+msgstr ""
+
+#: fortran/openmp.cc:5462
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after !$OMP DECLARE REDUCTION at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5499
+#, gcc-internal-format, gfc-internal-format
+msgid "Only the !$OMP DECLARE TARGET form without clauses is allowed in interface block at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5514
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after !$OMP DECLARE TARGET at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5539
+#, gcc-internal-format, gfc-internal-format
+msgid "OMP DECLARE TARGET variable at %L is an element of a COMMON block"
+msgstr ""
+
+#: fortran/openmp.cc:5542
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable at %L mentioned multiple times in clauses of the same OMP DECLARE TARGET directive"
+msgstr ""
+
+#: fortran/openmp.cc:5548
+#, gcc-internal-format, gfc-internal-format
+msgid "OMP DECLARE TARGET variable at %L previously mentioned in LINK clause and later in %s clause"
+msgstr ""
+
+#: fortran/openmp.cc:5554
+#, gcc-internal-format, gfc-internal-format
+msgid "OMP DECLARE TARGET variable at %L previously mentioned in TO or ENTER clause and later in LINK clause"
+msgstr ""
+
+#: fortran/openmp.cc:5568 fortran/openmp.cc:5623
+#, gcc-internal-format
+msgid "List item %qs at %L set in previous OMP DECLARE TARGET directive to a different DEVICE_TYPE"
+msgstr ""
+
+#: fortran/openmp.cc:5577 fortran/openmp.cc:5631
+#, gcc-internal-format, gfc-internal-format
+msgid "DEVICE_TYPE must be ANY when used with INDIRECT at %L"
+msgstr ""
+
+#: fortran/openmp.cc:5587
+#, gcc-internal-format, gfc-internal-format
+msgid "OMP DECLARE TARGET COMMON at %L previously mentioned in LINK clause and later in %s clause"
+msgstr ""
+
+#: fortran/openmp.cc:5593
+#, gcc-internal-format, gfc-internal-format
+msgid "OMP DECLARE TARGET COMMON at %L previously mentioned in TO or ENTER clause and later in LINK clause"
+msgstr ""
+
+#: fortran/openmp.cc:5597
+#, gcc-internal-format, gfc-internal-format
+msgid "COMMON at %L mentioned multiple times in clauses of the same OMP DECLARE TARGET directive"
+msgstr ""
+
+#: fortran/openmp.cc:5606
+#, gcc-internal-format, gfc-internal-format
+msgid "COMMON at %L set in previous OMP DECLARE TARGET directive to a different DEVICE_TYPE"
+msgstr ""
+
+#: fortran/openmp.cc:5641
+#, gcc-internal-format, gfc-internal-format
+msgid "OMP DECLARE TARGET directive at %L with only DEVICE_TYPE or INDIRECT clauses is ignored"
+msgstr ""
+
+#: fortran/openmp.cc:5652
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in !$OMP DECLARE TARGET list at %C"
+msgstr ""
+
+#. FIXME: constant integer expressions.
+#: fortran/openmp.cc:5691
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected trait-property-extension at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5706 fortran/openmp.cc:5803 fortran/openmp.cc:5934
+#: fortran/openmp.cc:6084 fortran/openmp.cc:6112
+#, gcc-internal-format
+msgid "expected %<)%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5728
+#, gcc-internal-format, gfc-internal-format
+msgid "expected trait selector name at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5747
+#, gcc-internal-format
+msgid "unknown selector %qs for context selector set %qs at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5765
+#, gcc-internal-format
+msgid "selector %qs does not accept any properties at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5774
+#, gcc-internal-format
+msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5781 fortran/openmp.cc:5944 fortran/openmp.cc:6036
+#: fortran/openmp.cc:6103
+#, gcc-internal-format
+msgid "expected %<(%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5789
+#, gcc-internal-format
+msgid "%<score%> argument must be constant integer expression at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5797
+#, gcc-internal-format
+msgid "%<score%> argument must be non-negative at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5809
+#, gcc-internal-format, gfc-internal-format
+msgid "expected : at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5831
+#, gcc-internal-format, gfc-internal-format
+msgid "expected identifier at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5850
+#, gcc-internal-format, gfc-internal-format
+msgid "expected identifier or string literal at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5871
+#, gcc-internal-format, gfc-internal-format
+msgid "expected expression at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5883
+#, gcc-internal-format, gfc-internal-format
+msgid "property must be a constant logical expression at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5886
+#, gcc-internal-format, gfc-internal-format
+msgid "property must be a constant integer expression at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5898
+#, gcc-internal-format, gfc-internal-format
+msgid "property must be a conforming device number at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5912
+#, gcc-internal-format, gfc-internal-format
+msgid "expected simd clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5985
+#, gcc-internal-format, gfc-internal-format
+msgid "expected context selector set name at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5992
+#, gcc-internal-format
+msgid "expected %<=%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:5999
+#, gcc-internal-format
+msgid "expected %<{%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6014
+#, gcc-internal-format
+msgid "expected %<}%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6043
+#, gcc-internal-format, gfc-internal-format
+msgid "expected name at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6054
+#, gcc-internal-format, gfc-internal-format
+msgid "expected variant name at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6094
+#, gcc-internal-format
+msgid "expected %<match%> at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6145
+#, gcc-internal-format, gfc-internal-format
+msgid "Threadprivate variable at %C is an element of a COMMON block"
+msgstr ""
+
+#: fortran/openmp.cc:6182
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after OMP THREADPRIVATE at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6189
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in !$OMP THREADPRIVATE list at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6295
+#, gcc-internal-format, gfc-internal-format
+msgid "Program unit at %L has OpenMP device constructs/routines but does not set !$OMP REQUIRES REVERSE_OFFLOAD but other program units do"
+msgstr ""
+
+#: fortran/openmp.cc:6300
+#, gcc-internal-format, gfc-internal-format
+msgid "Program unit at %L has OpenMP device constructs/routines but does not set !$OMP REQUIRES UNIFIED_ADDRESS but other program units do"
+msgstr ""
+
+#: fortran/openmp.cc:6305
+#, gcc-internal-format, gfc-internal-format
+msgid "Program unit at %L has OpenMP device constructs/routines but does not set !$OMP REQUIRES UNIFIED_SHARED_MEMORY but other program units do"
+msgstr ""
+
+#: fortran/openmp.cc:6331
+#, gcc-internal-format
+msgid "!$OMP REQUIRES clause %qs specified via module %qs use at %L comes after using a device construct/routine"
+msgstr ""
+
+#: fortran/openmp.cc:6335
+#, gcc-internal-format
+msgid "!$OMP REQUIRES clause %qs specified at %L comes after using a device construct/routine"
+msgstr ""
+
+#: fortran/openmp.cc:6358
+#, gcc-internal-format
+msgid "!$OMP REQUIRES clause %<atomic_default_mem_order(%s)%> specified via module %qs use at %L overrides a previous %<atomic_default_mem_order(%s)%> (which might be through using a module)"
+msgstr ""
+
+#: fortran/openmp.cc:6363
+#, gcc-internal-format
+msgid "!$OMP REQUIRES clause %<atomic_default_mem_order(%s)%> specified at %L overrides a previous %<atomic_default_mem_order(%s)%> (which might be through using a module)"
+msgstr ""
+
+#: fortran/openmp.cc:6374
+#, gcc-internal-format
+msgid "!$OMP REQUIRES clause %<atomic_default_mem_order(%s)%> specified via module %qs use at %L but same clause is not specified for the program unit"
+msgstr ""
+
+#: fortran/openmp.cc:6379
+#, gcc-internal-format
+msgid "!$OMP REQUIRES clause %qs specified via module %qs use at %L but same clause is not specified for the program unit"
+msgstr ""
+
+#: fortran/openmp.cc:6408
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP REQUIRES at %C must appear in the specification part of a program unit"
+msgstr ""
+
+#: fortran/openmp.cc:6486
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected ACQ_REL, ACQUIRE, RELAXED, RELEASE or SEQ_CST for ATOMIC_DEFAULT_MEM_ORDER clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6502
+#, gcc-internal-format, gfc-internal-format
+msgid "Clause expected at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6508
+#, gcc-internal-format
+msgid "%qs clause at %L specified more than once"
+msgstr ""
+
+#: fortran/openmp.cc:6511
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected UNIFIED_ADDRESS, UNIFIED_SHARED_MEMORY, DYNAMIC_ALLOCATORS, REVERSE_OFFLOAD, or ATOMIC_DEFAULT_MEM_ORDER clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:6537
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected INCLUSIVE or EXCLUSIVE clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6543
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after !$OMP SCAN at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6742
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after TASKYIELD clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6830
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after $OMP MASTER statement at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6862
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after $OMP NOTHING statement at %C"
+msgstr ""
+
+#: fortran/openmp.cc:6897 fortran/openmp.cc:6900 fortran/openmp.cc:6903
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC at %L with %s clause is incompatible with READ or WRITE"
+msgstr ""
+
+#: fortran/openmp.cc:6907
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC at %L with %s clause requires %s clause"
+msgstr ""
+
+#: fortran/openmp.cc:6937
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC WRITE at %L incompatible with ACQUIRES clause implicitly provided by a REQUIRES directive"
+msgstr ""
+
+#: fortran/openmp.cc:6948
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC READ at %L incompatible with RELEASE clause implicitly provided by a REQUIRES directive"
+msgstr ""
+
+#: fortran/openmp.cc:6966
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC READ at %L incompatible with RELEASE clause"
+msgstr ""
+
+#: fortran/openmp.cc:6976
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC WRITE at %L incompatible with ACQUIRE clause"
+msgstr ""
+
+#: fortran/openmp.cc:7013
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after !$ACC ATOMIC statement at %C"
+msgstr ""
+
+#: fortran/openmp.cc:7028
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after $OMP BARRIER statement at %C"
+msgstr ""
+
+#: fortran/openmp.cc:7084
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected construct-type PARALLEL, SECTIONS, DO or TASKGROUP in $OMP CANCELLATION POINT statement at %C"
+msgstr ""
+
+#: fortran/openmp.cc:7090
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after $OMP CANCELLATION POINT statement at %C"
+msgstr ""
+
+#: fortran/openmp.cc:7111
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected junk after NOWAIT clause at %C"
+msgstr ""
+
+#: fortran/openmp.cc:7150
+#, gcc-internal-format, gfc-internal-format
+msgid "%s clause at %L requires a scalar INTEGER expression"
+msgstr ""
+
+#: fortran/openmp.cc:7162
+#, gcc-internal-format, gfc-internal-format
+msgid "INTEGER expression of %s clause at %L must be positive"
+msgstr ""
+
+#: fortran/openmp.cc:7174
+#, gcc-internal-format, gfc-internal-format
+msgid "INTEGER expression of %s clause at %L must be non-negative"
+msgstr ""
+
+#: fortran/openmp.cc:7185
+#, gcc-internal-format
+msgid "Cray pointer object %qs of derived type in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7188
+#, gcc-internal-format
+msgid "Cray pointee object %qs of derived type in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7194 fortran/openmp.cc:9074
+#, gcc-internal-format
+msgid "POINTER object %qs of polymorphic type in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7199
+#, gcc-internal-format
+msgid "Cray pointer object %qs of polymorphic type in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7204
+#, gcc-internal-format
+msgid "Cray pointee object %qs of polymorphic type in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7214 fortran/openmp.cc:8559 fortran/openmp.cc:8836
+#, gcc-internal-format
+msgid "Assumed size array %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7217
+#, gcc-internal-format
+msgid "Assumed rank array %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7233 fortran/openmp.cc:8823
+#, gcc-internal-format
+msgid "POINTER object %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7238 fortran/openmp.cc:9078
+#, gcc-internal-format
+msgid "Cray pointer object %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7243 fortran/openmp.cc:9081
+#, gcc-internal-format
+msgid "Cray pointee object %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7248 fortran/openmp.cc:9069
+#, gcc-internal-format
+msgid "ALLOCATABLE object %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7251
+#, gcc-internal-format
+msgid "VALUE object %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7294
+#, gcc-internal-format, gfc-internal-format
+msgid "Implicitly declared function %s used in !$OMP DECLARE REDUCTION at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7343
+#, gcc-internal-format, gfc-internal-format
+msgid "Implicitly declared subroutine %s used in !$OMP DECLARE REDUCTION at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7379
+#, gcc-internal-format
+msgid "Unexpected function-result variable %qs at %L in declarative !$OMP ALLOCATE"
+msgstr ""
+
+#: fortran/openmp.cc:7385
+#, gcc-internal-format
+msgid "Procedure pointer %qs not supported with !$OMP ALLOCATE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7391
+#, gcc-internal-format
+msgid "Argument %qs at %L to declarative !$OMP ALLOCATE directive must be a variable"
+msgstr ""
+
+#: fortran/openmp.cc:7398
+#, gcc-internal-format
+msgid "Argument %qs at %L to declarative !$OMP ALLOCATE shall be in the same scope as the variable declaration"
+msgstr ""
+
+#: fortran/openmp.cc:7405
+#, gcc-internal-format
+msgid "Unexpected dummy argument %qs as argument at %L to declarative !$OMP ALLOCATE"
+msgstr ""
+
+#: fortran/openmp.cc:7411
+#, gcc-internal-format
+msgid "Unexpected coarray argument %qs as argument at %L to declarative !$OMP ALLOCATE"
+msgstr ""
+
+#: fortran/openmp.cc:7419
+#, gcc-internal-format
+msgid "Duplicated common block %</%s/%> in !$OMP ALLOCATE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7426
+#, gcc-internal-format
+msgid "Duplicated variable %qs in !$OMP ALLOCATE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7437
+#, gcc-internal-format
+msgid "Sorry, EQUIVALENCE object %qs not supported with !$OMP ALLOCATE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7446
+#, gcc-internal-format
+msgid "Sorry, Cray pointers and pointees such as %qs are not supported with !$OMP ALLOCATE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7455
+#, gcc-internal-format
+msgid "Unexpected allocatable variable %qs at %L in declarative !$OMP ALLOCATE directive"
+msgstr ""
+
+#: fortran/openmp.cc:7460
+#, gcc-internal-format
+msgid "Unexpected pointer variable %qs at %L in declarative !$OMP ALLOCATE directive"
+msgstr ""
+
+#: fortran/openmp.cc:7471 fortran/openmp.cc:8026
+#, gcc-internal-format, gfc-internal-format
+msgid "ALIGN requires a scalar positive constant integer alignment expression at %L that is a power of two"
+msgstr ""
+
+#: fortran/openmp.cc:7486
+#, gcc-internal-format
+msgid "An ALLOCATOR clause is required as the list item %<%s%s%s%> at %L has the SAVE attribute"
+msgstr ""
+
+#: fortran/openmp.cc:7491
+#, gcc-internal-format
+msgid "Predefined allocator required in ALLOCATOR clause at %L as the list item %<%s%s%s%> at %L has the SAVE attribute"
+msgstr ""
+
+#: fortran/openmp.cc:7505 fortran/openmp.cc:8010
+#, gcc-internal-format
+msgid "Expected integer expression of the %<omp_allocator_handle_kind%> kind at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7521
+#, gcc-internal-format, gfc-internal-format
+msgid "HOLDS expression at %L must be a scalar logical expression"
+msgstr ""
+
+#: fortran/openmp.cc:7557
+#, gcc-internal-format, gfc-internal-format
+msgid "ORDERED clause parameter is less than COLLAPSE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7560
+#, gcc-internal-format, gfc-internal-format
+msgid "ORDER clause must not be used together ORDERED at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7567 fortran/openmp.cc:7578 fortran/resolve.cc:11318
+#: fortran/resolve.cc:12887
+#, gcc-internal-format, gfc-internal-format
+msgid "IF clause at %L requires a scalar LOGICAL expression"
+msgstr ""
+
+#: fortran/openmp.cc:7582
+#, gcc-internal-format, gfc-internal-format
+msgid "IF clause without modifier at %L used together with IF clauses with modifiers"
+msgstr ""
+
+#: fortran/openmp.cc:7707
+#, gcc-internal-format, gfc-internal-format
+msgid "IF clause modifier %s at %L not appropriate for the current OpenMP construct"
+msgstr ""
+
+#: fortran/openmp.cc:7717
+#, gcc-internal-format, gfc-internal-format
+msgid "SELF clause at %L requires a scalar LOGICAL expression"
+msgstr ""
+
+#: fortran/openmp.cc:7726
+#, gcc-internal-format, gfc-internal-format
+msgid "FINAL clause at %L requires a scalar LOGICAL expression"
+msgstr ""
+
+#: fortran/openmp.cc:7736
+#, gcc-internal-format, gfc-internal-format
+msgid "SCHEDULE clause's chunk_size at %L requires a scalar INTEGER expression"
+msgstr ""
+
+#: fortran/openmp.cc:7741
+#, gcc-internal-format, gfc-internal-format
+msgid "INTEGER expression of SCHEDULE clause's chunk_size at %L must be positive"
+msgstr ""
+
+#: fortran/openmp.cc:7748
+#, gcc-internal-format, gfc-internal-format
+msgid "Both MONOTONIC and NONMONOTONIC schedule modifiers specified at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7751
+#, gcc-internal-format, gfc-internal-format
+msgid "NONMONOTONIC schedule modifier specified with ORDERED clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7760
+#, gcc-internal-format, gfc-internal-format
+msgid "DEPOBJ in DEPOBJ construct at %L shall be a scalar integer of OMP_DEPEND_KIND kind"
+msgstr ""
+
+#: fortran/openmp.cc:7781
+#, gcc-internal-format
+msgid "Variable %qs is not a dummy argument at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7816
+#, gcc-internal-format
+msgid "Object %qs is not a variable at %L; parameters cannot be and need not be copied"
+msgstr ""
+
+#: fortran/openmp.cc:7820
+#, gcc-internal-format
+msgid "Object %qs is not a variable at %L; parameters cannot be and need not be mapped"
+msgstr ""
+
+#: fortran/openmp.cc:7825 fortran/openmp.cc:11441
+#, gcc-internal-format
+msgid "Object %qs is not a variable at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7836
+#, gcc-internal-format
+msgid "%<inscan%> REDUCTION clause on construct other than DO, SIMD, DO SIMD, PARALLEL DO, PARALLEL DO SIMD at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7840
+#, gcc-internal-format
+msgid "ORDERED clause specified together with %<inscan%> REDUCTION clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7843
+#, gcc-internal-format
+msgid "SCHEDULE clause specified together with %<inscan%> REDUCTION clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7874 fortran/openmp.cc:7886 fortran/openmp.cc:7907
+#: fortran/openmp.cc:7919 fortran/openmp.cc:7942 fortran/openmp.cc:7950
+#: fortran/openmp.cc:7971 fortran/openmp.cc:7982 fortran/openmp.cc:7994
+#: fortran/openmp.cc:8229 fortran/openmp.cc:11465
+#, gcc-internal-format
+msgid "Symbol %qs present on multiple clauses at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7915
+#, gcc-internal-format
+msgid "Symbol %qs has mixed component and non-component accesses at %L"
+msgstr ""
+
+#: fortran/openmp.cc:7965
+#, gcc-internal-format
+msgid "Symbol %qs present on both data and map clauses at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8051
+#, gcc-internal-format
+msgid "%qs appears more than once in %<allocate%> at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8093
+#, gcc-internal-format
+msgid "%qs specified in %<allocate%> clause at %L but not in an explicit privatization clause"
+msgstr ""
+
+#: fortran/openmp.cc:8121
+#, gcc-internal-format
+msgid "Unexpected coarray %qs in %<allocate%> at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8135
+#, gcc-internal-format
+msgid "%qs specified in %<allocate%> at %L but not in the associated ALLOCATE statement"
+msgstr ""
+
+#: fortran/openmp.cc:8169
+#, gcc-internal-format
+msgid "%qs listed in %<allocate%> statement at %L but it is neither explicitly in listed in the %<!$OMP ALLOCATE%> directive nor exists a directive without argument list"
+msgstr ""
+
+#: fortran/openmp.cc:8180
+#, gcc-internal-format
+msgid "Unexpected coarray %qs in %<allocate%> at %L, implicitly listed in %<!$OMP ALLOCATE%> at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8205
+#, gcc-internal-format
+msgid "ALLOCATORS directive at %L inside a target region must specify an ALLOCATOR modifier for %qs"
+msgstr ""
+
+#: fortran/openmp.cc:8209
+#, gcc-internal-format
+msgid "ALLOCATE directive at %L inside a target region must specify an ALLOCATOR clause for %qs"
+msgstr ""
+
+#: fortran/openmp.cc:8213
+#, gcc-internal-format, gfc-internal-format
+msgid "ALLOCATE directive at %L inside a target region must specify an ALLOCATOR clause"
+msgstr ""
+
+#: fortran/openmp.cc:8236
+#, gcc-internal-format
+msgid "Array %qs is not permitted in reduction at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8249
+#, gcc-internal-format
+msgid "Symbol %qs present on both FROM and TO clauses at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8267
+#, gcc-internal-format
+msgid "Non-THREADPRIVATE object %qs in COPYIN clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8273
+#, gcc-internal-format, gfc-internal-format
+msgid "NOWAIT clause must not be used with COPYPRIVATE clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8278
+#, gcc-internal-format
+msgid "Assumed size array %qs in COPYPRIVATE clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8281
+#, gcc-internal-format
+msgid "INTENT(IN) POINTER %qs in COPYPRIVATE clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8289
+#, gcc-internal-format
+msgid "THREADPRIVATE object %qs in SHARED clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8292
+#, gcc-internal-format
+msgid "Cray pointee %qs in SHARED clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8295
+#, gcc-internal-format
+msgid "Associate name %qs in SHARED clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8301
+#, gcc-internal-format
+msgid "DETACH event handle %qs in SHARED clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8316
+#, gcc-internal-format
+msgid "%qs in ALIGNED clause must be POINTER, ALLOCATABLE, Cray pointer or C_PTR at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8326
+#, gcc-internal-format
+msgid "%qs in ALIGNED clause at %L requires a scalar positive constant integer alignment expression"
+msgstr ""
+
+#: fortran/openmp.cc:8352
+#, gcc-internal-format, gfc-internal-format
+msgid "Scalar integer expression for range begin expected at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8358
+#, gcc-internal-format, gfc-internal-format
+msgid "Scalar integer expression for range end expected at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8364
+#, gcc-internal-format, gfc-internal-format
+msgid "Scalar integer expression for range step expected at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8369
+#, gcc-internal-format, gfc-internal-format
+msgid "Nonzero range step expected at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8382
+#, gcc-internal-format, gfc-internal-format
+msgid "Dependence-type SINK used together with SOURCE on the same construct at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8392
+#, gcc-internal-format, gfc-internal-format
+msgid "SINK addend not a constant integer at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8398
+#, gcc-internal-format
+msgid "omp_cur_iteration at %L requires %<-1%> as logical offset"
+msgstr ""
+
+#: fortran/openmp.cc:8408
+#, gcc-internal-format
+msgid "Locator %qs at %L in DEPEND clause of depobj type shall be a scalar integer of OMP_DEPEND_KIND kind"
+msgstr ""
+
+#: fortran/openmp.cc:8419
+#, gcc-internal-format, gfc-internal-format
+msgid "Locator at %L in DEPEND clause of depobj type shall be a scalar integer of OMP_DEPEND_KIND kind"
+msgstr ""
+
+#: fortran/openmp.cc:8463
+#, gcc-internal-format, gfc-internal-format
+msgid "Array is not contiguous at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8478
+#, gcc-internal-format
+msgid "%qs clause argument must be ALLOCATABLE or a POINTER at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8490
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected substring reference in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8498
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected complex-parts designator reference in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8507 fortran/openmp.cc:8525
+#, gcc-internal-format
+msgid "%qs in %s clause at %L is not a proper array section"
+msgstr ""
+
+#: fortran/openmp.cc:8517
+#, gcc-internal-format, gfc-internal-format
+msgid "Stride should not be specified for array section in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8539
+#, gcc-internal-format
+msgid "%qs in %s clause at %L is a zero size array section"
+msgstr ""
+
+#: fortran/openmp.cc:8565
+#, gcc-internal-format
+msgid "List item %qs with allocatable components is not permitted in map clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8591
+#, gcc-internal-format, gfc-internal-format
+msgid "TARGET%s with map-type other than TO, FROM, TOFROM, or ALLOC on MAP clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8622
+#, gcc-internal-format, gfc-internal-format
+msgid "TARGET ENTER DATA with map-type other than TO, TOFROM or ALLOC on MAP clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8651
+#, gcc-internal-format, gfc-internal-format
+msgid "TARGET EXIT DATA with map-type other than FROM, TOFROM, RELEASE, or DELETE on MAP clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8667 fortran/openmp.cc:8807
+#, gcc-internal-format
+msgid "THREADPRIVATE object %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8670 fortran/openmp.cc:8810
+#, gcc-internal-format
+msgid "Cray pointee %qs in %s clause at %L"
+msgstr ""
+
+#. Non-TARGET (i.e. DISPATCH) requires a C_PTR.
+#: fortran/openmp.cc:8682
+#, gcc-internal-format
+msgid "List item %qs in %s clause at %L must be of TYPE(C_PTR)"
+msgstr ""
+
+#: fortran/openmp.cc:8739
+#, gcc-internal-format
+msgid "Memspace %qs at %L in USES_ALLOCATORS must be a predefined memory space"
+msgstr ""
+
+#: fortran/openmp.cc:8747
+#, gcc-internal-format
+msgid "Allocator %qs at %L in USES_ALLOCATORS must be a scalar integer of kind %<omp_allocator_handle_kind%>"
+msgstr ""
+
+#: fortran/openmp.cc:8755
+#, gcc-internal-format
+msgid "Allocator %qs at %L in USES_ALLOCATORS must either a variable or a predefined allocator"
+msgstr ""
+
+#: fortran/openmp.cc:8760
+#, gcc-internal-format
+msgid "A memory space or traits array may not be specified for predefined allocator %qs at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8771
+#, gcc-internal-format
+msgid "Traits array %qs in USES_ALLOCATORS %L must be a one-dimensional named constant array of type %<omp_alloctrait%>"
+msgstr ""
+
+#: fortran/openmp.cc:8801
+#, gcc-internal-format
+msgid "%<inscan%> and non-%<inscan%> %<reduction%> clauses on the same construct at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8813
+#, gcc-internal-format
+msgid "Associate name %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8820
+#, gcc-internal-format
+msgid "Procedure pointer %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8826
+#, gcc-internal-format
+msgid "Cray pointer %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8839
+#, gcc-internal-format
+msgid "Variable %qs in %s clause is used in NAMELIST statement at %L"
+msgstr ""
+
+#. case OMP_LIST_REDUCTION:
+#: fortran/openmp.cc:8849
+#, gcc-internal-format
+msgid "INTENT(IN) POINTER %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8860
+#, gcc-internal-format
+msgid "DETACH event handle %qs in %s clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8884
+#, gcc-internal-format, gfc-internal-format
+msgid "Only DEFAULT permitted as reduction-modifier in REDUCTION clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:8977
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP DECLARE REDUCTION %s not found for type %s at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9005
+#, gcc-internal-format, gfc-internal-format
+msgid "LINEAR clause modifier used on DO or SIMD construct at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9011
+#, gcc-internal-format, gfc-internal-format
+msgid "LINEAR clause modifier other than VAL used on DO or SIMD construct at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9019
+#, gcc-internal-format
+msgid "LINEAR variable %qs must be INTEGER at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9024
+#, gcc-internal-format
+msgid "LINEAR dummy argument %qs with VALUE attribute with %s modifier at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9035
+#, gcc-internal-format
+msgid "%qs in LINEAR clause at %L requires a scalar integer linear-step expression"
+msgstr ""
+
+#: fortran/openmp.cc:9052
+#, gcc-internal-format
+msgid "%qs in LINEAR clause at %L requires a constant integer linear-step expression or dummy argument specified in UNIFORM clause"
+msgstr ""
+
+#: fortran/openmp.cc:9086
+#, gcc-internal-format
+msgid "%s clause variable %qs at %L is neither a POINTER nor an array"
+msgstr ""
+
+#: fortran/openmp.cc:9146
+#, gcc-internal-format, gfc-internal-format
+msgid "NUM_TEAMS lower bound at %L larger than upper bound at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9159
+#, gcc-internal-format, gfc-internal-format
+msgid "Value of HINT clause at %L shall be a valid constant hint expression"
+msgstr ""
+
+#: fortran/openmp.cc:9169
+#, gcc-internal-format, gfc-internal-format
+msgid "DIST_SCHEDULE clause's chunk_size at %L requires a scalar INTEGER expression"
+msgstr ""
+
+#: fortran/openmp.cc:9199
+#, gcc-internal-format, gfc-internal-format
+msgid "Incompatible use of TILE and COLLAPSE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9223
+#, gcc-internal-format, gfc-internal-format
+msgid "TARGET DATA must contain at least one MAP, USE_DEVICE_PTR, or USE_DEVICE_ADDR clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9226
+#, gcc-internal-format, gfc-internal-format
+msgid "%s must contain at least one MAP clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9236
+#, gcc-internal-format
+msgid "%qs at %L should be a scalar of type integer(kind=omp_event_handle_kind)"
+msgstr ""
+
+#: fortran/openmp.cc:9241
+#, gcc-internal-format, gfc-internal-format
+msgid "The event handle at %L must not be an array element"
+msgstr ""
+
+#: fortran/openmp.cc:9245
+#, gcc-internal-format, gfc-internal-format
+msgid "The event handle at %L must not be part of a derived type or class"
+msgstr ""
+
+#: fortran/openmp.cc:9249
+#, gcc-internal-format
+msgid "%<DETACH%> clause at %L must not be used together with %<MERGEABLE%> clause"
+msgstr ""
+
+#: fortran/openmp.cc:9256
+#, gcc-internal-format
+msgid "%<host_data%> construct at %L requires %<use_device%> clause"
+msgstr ""
+
+#: fortran/openmp.cc:9410
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected IF at %L in atomic compare capture"
+msgstr ""
+
+#: fortran/openmp.cc:9418
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected ELSE at %L in atomic compare capture"
+msgstr ""
+
+#: fortran/openmp.cc:9530
+#, gcc-internal-format
+msgid "Expected %<==%>, %<.EQ.%> or %<.EQV.%> atomic comparison expression at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9536
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected scalar intrinsic variable at %L in atomic comparison"
+msgstr ""
+
+#: fortran/openmp.cc:9544
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected scalar intrinsic expression at %L in atomic comparison"
+msgstr ""
+
+#: fortran/openmp.cc:9552
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC statement must set a scalar variable of intrinsic type at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9561
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC statement must assign an expression of intrinsic type at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9568
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC with ALLOCATABLE variable at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9585
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC READ statement must read from a scalar variable of intrinsic type at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9590
+#, gcc-internal-format, gfc-internal-format
+msgid "expr in !$OMP ATOMIC WRITE assignment var = expr must be scalar and cannot reference var at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9602
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC capture-statement must set a scalar variable of intrinsic type at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9610
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC capture-statement requires a scalar variable of intrinsic type at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9620
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC CAPTURE capture statement reads from different variable than update statement writes into at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9636
+#, gcc-internal-format
+msgid "For !$OMP ATOMIC COMPARE, the first operand in comparison at %L must be the variable %qs that the update statement writes into at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9644
+#, gcc-internal-format, gfc-internal-format
+msgid "expr in !$OMP ATOMIC COMPARE assignment var = expr must be scalar and cannot reference var at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9662
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC UPDATE at %L with FAIL clause requiries either the COMPARE clause or using the intrinsic MIN/MAX procedure"
+msgstr ""
+
+#: fortran/openmp.cc:9689
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC assignment operator must be binary +, *, -, /, .AND., .OR., .EQV. or .NEQV. at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9737
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC assignment must be var = var op expr or var = expr op var at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9751
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC var = var op expr not mathematically equivalent to var = var op (expr) at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9784
+#, gcc-internal-format, gfc-internal-format
+msgid "expr in !$OMP ATOMIC assignment var = var op expr must be scalar and cannot reference var at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9808
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC assignment intrinsic IAND, IOR or IEOR must have two arguments at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9815
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC assignment intrinsic must be MIN, MAX, IAND, IOR or IEOR at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9838
+#, gcc-internal-format
+msgid "!$OMP ATOMIC intrinsic arguments except one must not reference %qs at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9845
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC intrinsic arguments must be scalar at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9853
+#, gcc-internal-format
+msgid "First or last !$OMP ATOMIC intrinsic argument must be %qs at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9871
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP ATOMIC assignment must have an operator or intrinsic on right hand side at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9876
+#, gcc-internal-format, gfc-internal-format
+msgid "unexpected !$OMP ATOMIC expression at %L"
+msgstr ""
+
+#: fortran/openmp.cc:9978
+#, gcc-internal-format, gfc-internal-format
+msgid "With INSCAN at %L, expected loop body with !$OMP SCAN between two structured block sequences"
+msgstr ""
+
+#: fortran/openmp.cc:9985
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP SCAN at %L with zero executable statements in preceding structured block sequence"
+msgstr ""
+
+#: fortran/openmp.cc:9992
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP SCAN at %L with zero executable statements in succeeding structured block sequence"
+msgstr ""
+
+#: fortran/openmp.cc:10206
+#, gcc-internal-format, gfc-internal-format
+msgid "%s cannot contain loop in intervening code at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10286
+#, gcc-internal-format, gfc-internal-format
+msgid "%s cannot contain OpenMP directive in intervening code at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10298 fortran/openmp.cc:10324
+#, gcc-internal-format, gfc-internal-format
+msgid "%s cannot contain OpenMP API call in intervening code at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10852
+#, gcc-internal-format, gfc-internal-format
+msgid "%s cannot be a DO WHILE or DO without loop control at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10858
+#, gcc-internal-format, gfc-internal-format
+msgid "%s cannot be a DO CONCURRENT loop at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10865
+#, gcc-internal-format, gfc-internal-format
+msgid "%s iteration variable must be of type integer at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10872
+#, gcc-internal-format, gfc-internal-format
+msgid "%s iteration variable must not be THREADPRIVATE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10887
+#, gcc-internal-format, gfc-internal-format
+msgid "%s iteration variable present on clause other than PRIVATE, LASTPRIVATE or ALLOCATE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10891
+#, gcc-internal-format, gfc-internal-format
+msgid "%s iteration variable present on clause other than PRIVATE, LASTPRIVATE, ALLOCATE or LINEAR at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10898
+#, gcc-internal-format, gfc-internal-format
+msgid "%s iteration variable used in more than one loop at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10904
+#, gcc-internal-format, gfc-internal-format
+msgid "%s iteration variable at %L is bound in intervening code"
+msgstr ""
+
+#: fortran/openmp.cc:10913
+#, gcc-internal-format, gfc-internal-format
+msgid "%s loop start expression not in canonical form at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10920
+#, gcc-internal-format, gfc-internal-format
+msgid "%s loop start expression at %L uses variable bound in intervening code"
+msgstr ""
+
+#: fortran/openmp.cc:10929
+#, gcc-internal-format, gfc-internal-format
+msgid "%s loop end expression not in canonical form at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10936
+#, gcc-internal-format, gfc-internal-format
+msgid "%s loop end expression at %L uses variable bound in intervening code"
+msgstr ""
+
+#: fortran/openmp.cc:10943
+#, gcc-internal-format, gfc-internal-format
+msgid "%s loop bounds reference different iteration variables at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10949
+#, gcc-internal-format, gfc-internal-format
+msgid "%s loop increment not in canonical form at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10956
+#, gcc-internal-format, gfc-internal-format
+msgid "%s loop increment expression at %L uses variable bound in intervening code"
+msgstr ""
+
+#. Parse error, can't recover from this.
+#: fortran/openmp.cc:10974
+#, gcc-internal-format, gfc-internal-format
+msgid "not enough DO loops for collapsed %s (level %d) at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10986
+#, gcc-internal-format, gfc-internal-format
+msgid "%s inner loops must be perfectly nested with ORDERED clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:10993
+#, gcc-internal-format, gfc-internal-format
+msgid "%s inner loops must be perfectly nested with REDUCTION INSCAN clause at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11220 fortran/openmp.cc:11233
+#, gcc-internal-format, gfc-internal-format
+msgid "The %s directive cannot be specified within a %s region at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11252
+#, gcc-internal-format, gfc-internal-format
+msgid "!$ACC LOOP cannot be a DO WHILE or DO without loop control at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11258
+#, gcc-internal-format, gfc-internal-format
+msgid "!$ACC LOOP cannot be a DO CONCURRENT loop at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11264
+#, gcc-internal-format, gfc-internal-format
+msgid "!$ACC LOOP iteration variable must be of type integer at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11280
+#, gcc-internal-format, gfc-internal-format
+msgid "!$ACC LOOP %s loops don't form rectangular iteration space at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11292
+#, gcc-internal-format, gfc-internal-format
+msgid "%s !$ACC LOOP loops not perfectly nested at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11302 fortran/openmp.cc:11311
+#, gcc-internal-format, gfc-internal-format
+msgid "not enough DO loops for %s !$ACC LOOP at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11327
+#, gcc-internal-format, gfc-internal-format
+msgid "Tiled loop cannot be parallelized across gangs, workers and vectors at the same time at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11348
+#, gcc-internal-format, gfc-internal-format
+msgid "TILE requires constant expression at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11448
+#, gcc-internal-format
+msgid "Array sections: %qs not allowed in !$ACC DECLARE at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11495
+#, gcc-internal-format
+msgid "NAME %qs does not refer to a subroutine or function in !$ACC ROUTINE ( NAME ) at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11501
+#, gcc-internal-format
+msgid "NAME %qs invalid in !$ACC ROUTINE ( NAME ) at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11569
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP TARGET region at %L with a nested TEAMS at %L may not contain any other statement, declaration or directive outside of the single TEAMS construct"
+msgstr ""
+
+#: fortran/openmp.cc:11573
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP TARGET region at %L with a nested TEAMS may not contain any other statement, declaration or directive outside of the single TEAMS construct"
+msgstr ""
+
+#: fortran/openmp.cc:11667
+#, gcc-internal-format, gfc-internal-format
+msgid "OMP TARGET UPDATE at %L requires at least one TO or FROM clause"
+msgstr ""
+
+#: fortran/openmp.cc:11681
+#, gcc-internal-format, gfc-internal-format
+msgid "OMP CRITICAL at %L with HINT clause requires a NAME, except when omp_sync_hint_none is used"
+msgstr ""
+
+#: fortran/openmp.cc:11687
+#, gcc-internal-format
+msgid "Unexpected !$OMP SCAN at %L outside loop construct with %<inscan%> REDUCTION clause"
+msgstr ""
+
+#: fortran/openmp.cc:11708
+#, gcc-internal-format
+msgid "!$OMP DECLARE SIMD should refer to containing procedure %qs at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11732
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable other than OMP_PRIV or OMP_ORIG used in INITIALIZER clause of !$OMP DECLARE REDUCTION at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11740
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable other than OMP_OUT or OMP_IN used in combiner of !$OMP DECLARE REDUCTION at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11769
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid operator for !$OMP DECLARE REDUCTION %s at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11791
+#, gcc-internal-format, gfc-internal-format
+msgid "CHARACTER length in !$OMP DECLARE REDUCTION %s not constant at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11807
+#, gcc-internal-format, gfc-internal-format
+msgid "Subroutine call with alternate returns in combiner of !$OMP DECLARE REDUCTION at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11822
+#, gcc-internal-format, gfc-internal-format
+msgid "Subroutine call with alternate returns in INITIALIZER clause of !$OMP DECLARE REDUCTION at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11832
+#, gcc-internal-format, gfc-internal-format
+msgid "One of actual subroutine arguments in INITIALIZER clause of !$OMP DECLARE REDUCTION must be OMP_PRIV at %L"
+msgstr ""
+
+#: fortran/openmp.cc:11840
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing INITIALIZER clause for !$OMP DECLARE REDUCTION of derived type without default initializer at %L"
+msgstr ""
+
+#: fortran/options.cc:290
+#, gcc-internal-format
+msgid "%<-fexcess-precision=standard%> for Fortran"
+msgstr ""
+
+#: fortran/options.cc:292
+#, gcc-internal-format
+msgid "%<-fexcess-precision=16%> for Fortran"
+msgstr ""
+
+#: fortran/options.cc:386
+#, gcc-internal-format
+msgid "Reading file %qs as free form"
+msgstr ""
+
+#: fortran/options.cc:396
+#, gcc-internal-format
+msgid "%<-fd-lines-as-comments%> has no effect in free form"
+msgstr ""
+
+#: fortran/options.cc:399
+#, gcc-internal-format
+msgid "%<-fd-lines-as-code%> has no effect in free form"
+msgstr ""
+
+#: fortran/options.cc:436
+#, gcc-internal-format
+msgid "Flag %<-fno-automatic%> overwrites %<-fmax-stack-var-size=%d%>"
+msgstr ""
+
+#: fortran/options.cc:439
+#, gcc-internal-format
+msgid "Flag %<-fno-automatic%> overwrites %<-frecursive%>"
+msgstr ""
+
+#: fortran/options.cc:442
+#, gcc-internal-format
+msgid "Flag %<-fno-automatic%> overwrites %<-frecursive%> implied by %qs"
+msgstr ""
+
+#: fortran/options.cc:445
+#, gcc-internal-format
+msgid "Flag %<-frecursive%> overwrites %<-fmax-stack-var-size=%d%>"
+msgstr ""
+
+#: fortran/options.cc:448
+#, gcc-internal-format
+msgid "Flag %<-fmax-stack-var-size=%d%> overwrites %<-frecursive%> implied by %qs"
+msgstr ""
+
+#: fortran/options.cc:507
+#, gcc-internal-format
+msgid "Fixed line length must be at least seven"
+msgstr ""
+
+#: fortran/options.cc:510
+#, gcc-internal-format
+msgid "Free line length must be at least three"
+msgstr ""
+
+#: fortran/options.cc:513
+#, gcc-internal-format, gfc-internal-format
+msgid "Maximum subrecord length cannot exceed %d"
+msgstr ""
+
+#: fortran/options.cc:532
+#, gcc-internal-format
+msgid "gfortran: Only one %<-J%> option allowed"
+msgstr ""
+
+#: fortran/options.cc:607
+#, gcc-internal-format
+msgid "Argument to %<-ffpe-trap%> is not valid: %s"
+msgstr ""
+
+#: fortran/options.cc:609
+#, gcc-internal-format
+msgid "Argument to %<-ffpe-summary%> is not valid: %s"
+msgstr ""
+
+#: fortran/options.cc:658
+#, gcc-internal-format
+msgid "Argument to %<-fcheck%> is not valid: %s"
+msgstr ""
+
+#: fortran/options.cc:723
+#, gcc-internal-format, gfc-internal-format
+msgid "Maximum supported identifier length is %d"
+msgstr ""
+
+#: fortran/options.cc:738
+#, gcc-internal-format
+msgid "Unrecognized option to %<-finit-logical%>: %s"
+msgstr ""
+
+#: fortran/options.cc:754
+#, gcc-internal-format
+msgid "The value of n in %<-finit-character=n%> must be between 0 and 127"
+msgstr ""
+
+#: fortran/parse.cc:655
+#, gcc-internal-format, gfc-internal-format
+msgid "Unclassifiable statement at %C"
+msgstr ""
+
+#: fortran/parse.cc:719
+#, gcc-internal-format, gfc-internal-format
+msgid "OpenACC directives other than ROUTINE may not appear in PURE procedures at %C"
+msgstr ""
+
+#: fortran/parse.cc:785
+#, gcc-internal-format, gfc-internal-format
+msgid "Unclassifiable OpenACC directive at %C"
+msgstr ""
+
+#: fortran/parse.cc:817
+#, gcc-internal-format
+msgid "%qs directive at %L must either have a variable argument or, if associated with an ALLOCATE stmt, must be preceded by an executable statement or OpenMP construct"
+msgstr ""
+
+#: fortran/parse.cc:829
+#, gcc-internal-format
+msgid "Structure-component expression at %L in %qs directive not permitted in declarative directive; as directive associated with an ALLOCATE stmt it must be preceded by an executable statement or OpenMP construct"
+msgstr ""
+
+#: fortran/parse.cc:855
+#, gcc-internal-format
+msgid "%qs directive at %L associated with an ALLOCATE stmt must be preceded by an executable statement or OpenMP construct; note the variables in the list all have the allocatable or pointer attribute"
+msgstr ""
+
+#: fortran/parse.cc:1023 fortran/parse.cc:1325
+#, gcc-internal-format, gfc-internal-format
+msgid "OpenMP directive at %C is not pure and thus may not appear in a PURE procedure"
+msgstr ""
+
+#: fortran/parse.cc:1296
+#, gcc-internal-format, gfc-internal-format
+msgid "Unclassifiable OpenMP directive at %C"
+msgstr ""
+
+#: fortran/parse.cc:1312
+#, gcc-internal-format
+msgid "OpenMP ERROR directive at %L with %<at(execution)%> clause in a PURE procedure"
+msgstr ""
+
+#: fortran/parse.cc:1440
+#, gcc-internal-format, gfc-internal-format
+msgid "Unclassifiable GCC directive at %C"
+msgstr ""
+
+#: fortran/parse.cc:1442
+#, gcc-internal-format, gfc-internal-format
+msgid "Unclassifiable GCC directive at %C, ignored"
+msgstr ""
+
+#: fortran/parse.cc:1502 fortran/parse.cc:1729
+#, gcc-internal-format, gfc-internal-format
+msgid "Zero is not a valid statement label at %C"
+msgstr ""
+
+#: fortran/parse.cc:1509 fortran/parse.cc:1721
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-numeric character in statement label at %C"
+msgstr ""
+
+#: fortran/parse.cc:1521 fortran/parse.cc:1770
+#, gcc-internal-format, gfc-internal-format
+msgid "Semicolon at %C needs to be preceded by statement"
+msgstr ""
+
+#: fortran/parse.cc:1528 fortran/parse.cc:1785
+#, gcc-internal-format, gfc-internal-format
+msgid "Statement label without statement at %L"
+msgstr ""
+
+#: fortran/parse.cc:1591 fortran/parse.cc:1772
+#, gcc-internal-format, gfc-internal-format
+msgid "Fortran 2008: Semicolon at %C without preceding statement"
+msgstr ""
+
+#: fortran/parse.cc:1614 fortran/parse.cc:1748
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad continuation line at %C"
+msgstr ""
+
+#: fortran/parse.cc:2060
+#, gcc-internal-format, gfc-internal-format
+msgid "FORMAT statement at %L does not have a statement label"
+msgstr ""
+
+#: fortran/parse.cc:2975
+#, gcc-internal-format
+msgid "gfc_ascii_statement(): Bad statement code"
+msgstr ""
+
+#: fortran/parse.cc:3124
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected %s statement at %C"
+msgstr ""
+
+#: fortran/parse.cc:3281
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement at %C cannot follow %s statement at %L"
+msgstr ""
+
+#: fortran/parse.cc:3298
+#, gcc-internal-format
+msgid "Unexpected end of file in %qs"
+msgstr ""
+
+#: fortran/parse.cc:3333
+#, gcc-internal-format
+msgid "Derived-type %qs with SEQUENCE must not have a CONTAINS section at %C"
+msgstr ""
+
+#: fortran/parse.cc:3336
+#, gcc-internal-format
+msgid "Derived-type %qs with BIND(C) must not have a CONTAINS section at %C"
+msgstr ""
+
+#: fortran/parse.cc:3356
+#, gcc-internal-format, gfc-internal-format
+msgid "Components in TYPE at %C must precede CONTAINS"
+msgstr ""
+
+#: fortran/parse.cc:3360
+#, gcc-internal-format, gfc-internal-format
+msgid "Type-bound procedure at %C"
+msgstr ""
+
+#: fortran/parse.cc:3368
+#, gcc-internal-format, gfc-internal-format
+msgid "GENERIC binding at %C"
+msgstr ""
+
+#: fortran/parse.cc:3376
+#, gcc-internal-format, gfc-internal-format
+msgid "FINAL procedure declaration at %C"
+msgstr ""
+
+#: fortran/parse.cc:3388
+#, gcc-internal-format, gfc-internal-format
+msgid "Derived type definition at %C with empty CONTAINS section"
+msgstr ""
+
+#: fortran/parse.cc:3398 fortran/parse.cc:3853
+#, gcc-internal-format, gfc-internal-format
+msgid "PRIVATE statement in TYPE at %C must be inside a MODULE"
+msgstr ""
+
+#: fortran/parse.cc:3405
+#, gcc-internal-format, gfc-internal-format
+msgid "PRIVATE statement at %C must precede procedure bindings"
+msgstr ""
+
+#: fortran/parse.cc:3412 fortran/parse.cc:3866
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate PRIVATE statement at %C"
+msgstr ""
+
+#: fortran/parse.cc:3422
+#, gcc-internal-format, gfc-internal-format
+msgid "SEQUENCE statement at %C must precede CONTAINS"
+msgstr ""
+
+#: fortran/parse.cc:3426
+#, gcc-internal-format, gfc-internal-format
+msgid "Already inside a CONTAINS block at %C"
+msgstr ""
+
+#: fortran/parse.cc:3545
+#, gcc-internal-format, gfc-internal-format
+msgid "Component %s at %L of type LOCK_TYPE must have a codimension or be a subcomponent of a coarray, which is not possible as the component has the pointer attribute"
+msgstr ""
+
+#: fortran/parse.cc:3551
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer component %s at %L has a noncoarray subcomponent of type LOCK_TYPE, which must have a codimension or be a subcomponent of a coarray"
+msgstr ""
+
+#: fortran/parse.cc:3556
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocatable component %s at %L of type LOCK_TYPE must have a codimension"
+msgstr ""
+
+#: fortran/parse.cc:3560
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocatable component %s at %L must have a codimension as it has a noncoarray subcomponent of type LOCK_TYPE"
+msgstr ""
+
+#: fortran/parse.cc:3565
+#, gcc-internal-format, gfc-internal-format
+msgid "Noncoarray component %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must have a codimension or be a subcomponent of a coarray. (Variables of type %s may not have a codimension as already a coarray subcomponent exists)"
+msgstr ""
+
+#: fortran/parse.cc:3572
+#, gcc-internal-format, gfc-internal-format
+msgid "Noncoarray component %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must have a codimension or be a subcomponent of a coarray. (Variables of type %s may not have a codimension as %s at %L has a codimension or a coarray subcomponent)"
+msgstr ""
+
+#: fortran/parse.cc:3582
+#, gcc-internal-format, gfc-internal-format
+msgid "Component %s at %L of type EVENT_TYPE must have a codimension or be a subcomponent of a coarray, which is not possible as the component has the pointer attribute"
+msgstr ""
+
+#: fortran/parse.cc:3588
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer component %s at %L has a noncoarray subcomponent of type EVENT_TYPE, which must have a codimension or be a subcomponent of a coarray"
+msgstr ""
+
+#: fortran/parse.cc:3593
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocatable component %s at %L of type EVENT_TYPE must have a codimension"
+msgstr ""
+
+#: fortran/parse.cc:3597
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocatable component %s at %L must have a codimension as it has a noncoarray subcomponent of type EVENT_TYPE"
+msgstr ""
+
+#: fortran/parse.cc:3602
+#, gcc-internal-format, gfc-internal-format
+msgid "Noncoarray component %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must have a codimension or be a subcomponent of a coarray. (Variables of type %s may not have a codimension as already a coarray subcomponent exists)"
+msgstr ""
+
+#: fortran/parse.cc:3609
+#, gcc-internal-format, gfc-internal-format
+msgid "Noncoarray component %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must have a codimension or be a subcomponent of a coarray. (Variables of type %s may not have a codimension as %s at %L has a codimension or a coarray subcomponent)"
+msgstr ""
+
+#: fortran/parse.cc:3661
+#, gcc-internal-format, gfc-internal-format
+msgid "failed to create map component '%s'"
+msgstr ""
+
+#: fortran/parse.cc:3694
+#, gcc-internal-format, gfc-internal-format
+msgid "failed to create union component '%s'"
+msgstr ""
+
+#: fortran/parse.cc:3749
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in nested structure declaration at %C"
+msgstr ""
+
+#: fortran/parse.cc:3836
+#, gcc-internal-format, gfc-internal-format
+msgid "FINAL declaration at %C must be inside CONTAINS"
+msgstr ""
+
+#: fortran/parse.cc:3844
+#, gcc-internal-format, gfc-internal-format
+msgid "Derived type definition at %C without components"
+msgstr ""
+
+#: fortran/parse.cc:3860
+#, gcc-internal-format, gfc-internal-format
+msgid "PRIVATE statement at %C must precede structure components"
+msgstr ""
+
+#: fortran/parse.cc:3877
+#, gcc-internal-format, gfc-internal-format
+msgid "SEQUENCE statement at %C must precede structure components"
+msgstr ""
+
+#: fortran/parse.cc:3883
+#, gcc-internal-format, gfc-internal-format
+msgid "SEQUENCE attribute at %C already specified in TYPE statement"
+msgstr ""
+
+#: fortran/parse.cc:3888
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate SEQUENCE statement at %C"
+msgstr ""
+
+#: fortran/parse.cc:3898
+#, gcc-internal-format, gfc-internal-format
+msgid "CONTAINS block in derived type definition at %C"
+msgstr ""
+
+#: fortran/parse.cc:3956
+#, gcc-internal-format, gfc-internal-format
+msgid "ENUM declaration at %C has no ENUMERATORS"
+msgstr ""
+
+#: fortran/parse.cc:4043
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected %s statement in INTERFACE block at %C"
+msgstr ""
+
+#: fortran/parse.cc:4068
+#, gcc-internal-format
+msgid "Name %qs of ABSTRACT INTERFACE at %C cannot be the same as an intrinsic type"
+msgstr ""
+
+#: fortran/parse.cc:4099
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected %s statement at %C in INTERFACE body"
+msgstr ""
+
+#: fortran/parse.cc:4117
+#, gcc-internal-format
+msgid "INTERFACE procedure %qs at %L has the same name as the enclosing procedure"
+msgstr ""
+
+#: fortran/parse.cc:4256
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement is not allowed inside of BLOCK at %C"
+msgstr ""
+
+#: fortran/parse.cc:4288
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement is not allowed inside of BLOCK DATA at %C"
+msgstr ""
+
+#: fortran/parse.cc:4372
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement must appear in a MODULE"
+msgstr ""
+
+#: fortran/parse.cc:4380
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement at %C follows another accessibility specification"
+msgstr ""
+
+#: fortran/parse.cc:4432
+#, gcc-internal-format
+msgid "Bad kind expression for function %qs at %L"
+msgstr ""
+
+#: fortran/parse.cc:4436
+#, gcc-internal-format
+msgid "The type for function %qs at %L is not accessible"
+msgstr ""
+
+#: fortran/parse.cc:4496
+#, gcc-internal-format, gfc-internal-format
+msgid "ELSEWHERE statement at %C follows previous unmasked ELSEWHERE"
+msgstr ""
+
+#: fortran/parse.cc:4518
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected %s statement in WHERE block at %C"
+msgstr ""
+
+#: fortran/parse.cc:4577
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected %s statement in FORALL block at %C"
+msgstr ""
+
+#: fortran/parse.cc:4628
+#, gcc-internal-format, gfc-internal-format
+msgid "ELSE IF statement at %C cannot follow ELSE statement at %L"
+msgstr ""
+
+#: fortran/parse.cc:4646
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate ELSE statements at %L and %C"
+msgstr ""
+
+#: fortran/parse.cc:4707
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected a CASE or END SELECT statement following SELECT CASE at %C"
+msgstr ""
+
+#: fortran/parse.cc:4791
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected TYPE IS, CLASS IS or END SELECT statement following SELECT TYPE at %C"
+msgstr ""
+
+#: fortran/parse.cc:4867
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected RANK or RANK DEFAULT following SELECT RANK at %C"
+msgstr ""
+
+#: fortran/parse.cc:4931
+#, gcc-internal-format
+msgid "Variable %qs at %C cannot be redefined inside loop beginning at %L"
+msgstr ""
+
+#: fortran/parse.cc:4964
+#, gcc-internal-format, gfc-internal-format
+msgid "End of nonblock DO statement at %C is within another block"
+msgstr ""
+
+#: fortran/parse.cc:4974
+#, gcc-internal-format, gfc-internal-format
+msgid "End of nonblock DO statement at %C is interwoven with another DO loop"
+msgstr ""
+
+#: fortran/parse.cc:5000
+#, gcc-internal-format, gfc-internal-format
+msgid "CRITICAL block inside of OpenACC region at %C"
+msgstr ""
+
+#: fortran/parse.cc:5001
+#, gcc-internal-format, gfc-internal-format
+msgid "CRITICAL block inside of OpenMP region at %C"
+msgstr ""
+
+#: fortran/parse.cc:5027
+#, gcc-internal-format, gfc-internal-format
+msgid "Statement label in END CRITICAL at %C does not match CRITICAL label"
+msgstr ""
+
+#: fortran/parse.cc:5096 fortran/parse.cc:5977
+#, gcc-internal-format, gfc-internal-format
+msgid "BLOCK construct at %C"
+msgstr ""
+
+#: fortran/parse.cc:5131
+#, gcc-internal-format, gfc-internal-format
+msgid "ASSOCIATE construct at %C"
+msgstr ""
+
+#: fortran/parse.cc:5410
+#, gcc-internal-format, gfc-internal-format
+msgid "Statement label in ENDDO at %C doesn't match DO label"
+msgstr ""
+
+#: fortran/parse.cc:5426
+#, gcc-internal-format, gfc-internal-format
+msgid "Named block DO at %L requires matching ENDDO name"
+msgstr ""
+
+#: fortran/parse.cc:5583 fortran/parse.cc:6135 fortran/parse.cc:6153
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicated NOWAIT clause on %s and %s at %C"
+msgstr ""
+
+#: fortran/parse.cc:5684 fortran/parse.cc:5746
+#, gcc-internal-format, gfc-internal-format
+msgid "OpenACC directive inside of CRITICAL block at %C"
+msgstr ""
+
+#: fortran/parse.cc:5721
+#, gcc-internal-format, gfc-internal-format
+msgid "Expecting %s at %C"
+msgstr ""
+
+#: fortran/parse.cc:5765
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected DO loop at %C"
+msgstr ""
+
+#: fortran/parse.cc:5785
+#, gcc-internal-format, gfc-internal-format
+msgid "Redundant !$ACC END LOOP at %C"
+msgstr ""
+
+#: fortran/parse.cc:5835
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statements at %L and %L have both no list item but only one may"
+msgstr ""
+
+#: fortran/parse.cc:5855
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected %s at %C; expected ALLOCATE or %s statement"
+msgstr ""
+
+#: fortran/parse.cc:5858
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected %s at %C; expected ALLOCATE statement after %s"
+msgstr ""
+
+#: fortran/parse.cc:6146
+#, gcc-internal-format, gfc-internal-format
+msgid "Name after !$omp critical and !$omp end critical does not match at %C"
+msgstr ""
+
+#: fortran/parse.cc:6221
+#, gcc-internal-format, gfc-internal-format
+msgid "%s statement at %C cannot terminate a non-block DO loop"
+msgstr ""
+
+#: fortran/parse.cc:6235
+#, gcc-internal-format, gfc-internal-format
+msgid "DATA statement at %C after the first executable statement"
+msgstr ""
+
+#: fortran/parse.cc:6391
+#, gcc-internal-format
+msgid "%<GCC unroll%> directive not at the start of a loop at %C"
+msgstr ""
+
+#: fortran/parse.cc:6394
+#, gcc-internal-format
+msgid "%<GCC ivdep%> directive not at the start of a loop at %C"
+msgstr ""
+
+#: fortran/parse.cc:6397
+#, gcc-internal-format
+msgid "%<GCC vector%> directive not at the start of a loop at %C"
+msgstr ""
+
+#: fortran/parse.cc:6400
+#, gcc-internal-format
+msgid "%<GCC novector%> directive not at the start of a loop at %C"
+msgstr ""
+
+#: fortran/parse.cc:6516
+#, gcc-internal-format
+msgid "Contained procedure %qs at %C is already ambiguous"
+msgstr ""
+
+#: fortran/parse.cc:6573
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected %s statement in CONTAINS section at %C"
+msgstr ""
+
+#: fortran/parse.cc:6598
+#, gcc-internal-format, gfc-internal-format
+msgid "CONTAINS statement without FUNCTION or SUBROUTINE statement at %L"
+msgstr ""
+
+#: fortran/parse.cc:6712
+#, gcc-internal-format, gfc-internal-format
+msgid "CONTAINS statement at %C is already in a contained program unit"
+msgstr ""
+
+#: fortran/parse.cc:6764
+#, gcc-internal-format
+msgid "Global binding name %qs at %L is already being used as a %s at %L"
+msgstr ""
+
+#: fortran/parse.cc:6768
+#, gcc-internal-format
+msgid "Global name %qs at %L is already being used as a %s at %L"
+msgstr ""
+
+#: fortran/parse.cc:6774
+#, gcc-internal-format
+msgid "Global binding name %qs at %L is already being used at %L"
+msgstr ""
+
+#: fortran/parse.cc:6777
+#, gcc-internal-format
+msgid "Global name %qs at %L is already being used at %L"
+msgstr ""
+
+#: fortran/parse.cc:6799
+#, gcc-internal-format, gfc-internal-format
+msgid "Blank BLOCK DATA at %C conflicts with prior BLOCK DATA at %L"
+msgstr ""
+
+#: fortran/parse.cc:6825
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected %s statement in BLOCK DATA at %C"
+msgstr ""
+
+#: fortran/parse.cc:6928
+#, gcc-internal-format, gfc-internal-format
+msgid "Unexpected %s statement in MODULE at %C"
+msgstr ""
+
+#. If we see a duplicate main program, shut down.  If the second
+#. instance is an implied main program, i.e. data decls or executable
+#. statements, we're in for lots of errors.
+#: fortran/parse.cc:7429
+#, gcc-internal-format, gfc-internal-format
+msgid "Two main PROGRAMs at %L and %C"
+msgstr ""
+
+#: fortran/primary.cc:103
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing kind-parameter at %C"
+msgstr ""
+
+#: fortran/primary.cc:136
+#, gcc-internal-format
+msgid "gfc_check_digit(): bad radix"
+msgstr ""
+
+#: fortran/primary.cc:279
+#, gcc-internal-format, gfc-internal-format
+msgid "Integer kind %d at %C not available"
+msgstr ""
+
+#: fortran/primary.cc:288
+#, gcc-internal-format
+msgid "Integer too big for its kind at %C. This check can be disabled with the option %<-fno-range-check%>"
+msgstr ""
+
+#: fortran/primary.cc:316
+#, gcc-internal-format, gfc-internal-format
+msgid "Hollerith constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:323
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid Hollerith constant: %L must contain at least one character"
+msgstr ""
+
+#: fortran/primary.cc:329
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid Hollerith constant: Integer kind at %L should be default"
+msgstr ""
+
+#: fortran/primary.cc:349
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid Hollerith constant at %L contains a wide character"
+msgstr ""
+
+#: fortran/primary.cc:435
+#, gcc-internal-format, gfc-internal-format
+msgid "Hexadecimal constant at %L uses nonstandard X instead of Z"
+msgstr ""
+
+#: fortran/primary.cc:444
+#, gcc-internal-format, gfc-internal-format
+msgid "Empty set of digits in BOZ constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:450
+#, gcc-internal-format, gfc-internal-format
+msgid "Illegal character in BOZ constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:473
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ constant at %C uses nonstandard postfix syntax"
+msgstr ""
+
+#: fortran/primary.cc:498
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ used outside a DATA statement at %L"
+msgstr ""
+
+#: fortran/primary.cc:589
+#, gcc-internal-format
+msgid "exponent-letter %<q%> in real-literal-constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:594
+#, gcc-internal-format
+msgid "Extension: exponent-letter %<q%> in real-literal-constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:615
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing exponent in real number at %C"
+msgstr ""
+
+#: fortran/primary.cc:693
+#, gcc-internal-format
+msgid "Real number at %C has a %<d%> exponent and an explicit kind"
+msgstr ""
+
+#: fortran/primary.cc:703
+#, gcc-internal-format
+msgid "Real number at %C has a %<q%> exponent and an explicit kind"
+msgstr ""
+
+#: fortran/primary.cc:717
+#, gcc-internal-format
+msgid "Invalid exponent-letter %<q%> in real-literal-constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:730
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid real kind %d at %C"
+msgstr ""
+
+#: fortran/primary.cc:745
+#, gcc-internal-format, gfc-internal-format
+msgid "Real constant overflows its kind at %C"
+msgstr ""
+
+#: fortran/primary.cc:750
+#, gcc-internal-format, gfc-internal-format
+msgid "Real constant underflows its kind at %C"
+msgstr ""
+
+#: fortran/primary.cc:755
+#, gcc-internal-format
+msgid "gfc_range_check() returned bad value"
+msgstr ""
+
+#: fortran/primary.cc:803
+#, gcc-internal-format
+msgid "Non-significant digits in %qs number at %C, maybe incorrect KIND"
+msgstr ""
+
+#: fortran/primary.cc:895
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in SUBSTRING specification at %C"
+msgstr ""
+
+#: fortran/primary.cc:1095
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid kind %d for CHARACTER constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:1116
+#, gcc-internal-format, gfc-internal-format
+msgid "Unterminated character constant beginning at %C"
+msgstr ""
+
+#: fortran/primary.cc:1146
+#, gcc-internal-format
+msgid "Character %qs in string at %C is not representable in character kind %d"
+msgstr ""
+
+#: fortran/primary.cc:1159
+#, gcc-internal-format
+msgid "match_string_constant(): Delimiter not found"
+msgstr ""
+
+#: fortran/primary.cc:1193
+msgid "Substring start index (%td) at %L below 1"
+msgstr ""
+
+#: fortran/primary.cc:1199
+msgid "Substring end index (%td) at %L exceeds string length"
+msgstr ""
+
+#: fortran/primary.cc:1284
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad kind for logical constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:1328
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected PARAMETER symbol in complex constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:1339
+#, gcc-internal-format, gfc-internal-format
+msgid "Numeric PARAMETER required in complex constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:1345
+#, gcc-internal-format, gfc-internal-format
+msgid "Scalar PARAMETER required in complex constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:1349
+#, gcc-internal-format, gfc-internal-format
+msgid "PARAMETER symbol in complex constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:1372
+#, gcc-internal-format
+msgid "gfc_match_sym_complex_part(): Bad type"
+msgstr ""
+
+#: fortran/primary.cc:1379
+#, gcc-internal-format, gfc-internal-format
+msgid "Error converting PARAMETER constant in complex constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:1511
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in COMPLEX constant at %C"
+msgstr ""
+
+#: fortran/primary.cc:1638
+#, gcc-internal-format
+msgid "Namelist %qs cannot be an argument at %L"
+msgstr ""
+
+#: fortran/primary.cc:1740
+#, gcc-internal-format
+msgid "Keyword %qs at %C has already appeared in the current argument list"
+msgstr ""
+
+#: fortran/primary.cc:1807
+#, gcc-internal-format, gfc-internal-format
+msgid "argument list function at %C"
+msgstr ""
+
+#: fortran/primary.cc:1881
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected alternate return label at %C"
+msgstr ""
+
+#: fortran/primary.cc:1928
+#, gcc-internal-format, gfc-internal-format
+msgid "Missing keyword name in actual argument list at %C"
+msgstr ""
+
+#: fortran/primary.cc:1974
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in argument list at %C"
+msgstr ""
+
+#: fortran/primary.cc:1995
+#, gcc-internal-format
+msgid "extend_ref(): Bad tail"
+msgstr ""
+
+#: fortran/primary.cc:2097
+#, gcc-internal-format
+msgid "Array section designator, e.g. %<(:)%>, is required besides the coarray designator %<[...]%> at %C"
+msgstr ""
+
+#: fortran/primary.cc:2105
+#, gcc-internal-format
+msgid "Coarray designator at %C but %qs is not a coarray"
+msgstr ""
+
+#: fortran/primary.cc:2338
+#, gcc-internal-format
+msgid "Symbol %qs at %C has no IMPLICIT type"
+msgstr ""
+
+#: fortran/primary.cc:2345
+#, gcc-internal-format
+msgid "Unexpected %<%c%> for nonderived-type variable %qs at %C"
+msgstr ""
+
+#: fortran/primary.cc:2366
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected structure component name at %C"
+msgstr ""
+
+#: fortran/primary.cc:2387 fortran/primary.cc:2562
+#, gcc-internal-format, gfc-internal-format
+msgid "RE or IM part_ref at %C"
+msgstr ""
+
+#: fortran/primary.cc:2439 fortran/primary.cc:2567
+#, gcc-internal-format, gfc-internal-format
+msgid "The RE or IM part_ref at %C must be applied to a COMPLEX expression"
+msgstr ""
+
+#: fortran/primary.cc:2446 fortran/primary.cc:2580
+#, gcc-internal-format, gfc-internal-format
+msgid "The LEN part_ref at %C must be applied to a CHARACTER expression"
+msgstr ""
+
+#: fortran/primary.cc:2505
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected argument list at %C"
+msgstr ""
+
+#: fortran/primary.cc:2523
+#, gcc-internal-format
+msgid "%qs at %C is not an inquiry reference to an intrinsic type component %qs"
+msgstr ""
+
+#: fortran/primary.cc:2526
+#, gcc-internal-format
+msgid "%qs at %C is not an inquiry reference to an intrinsic type component"
+msgstr ""
+
+#: fortran/primary.cc:2596
+#, gcc-internal-format, gfc-internal-format
+msgid "The KIND part_ref at %C must be applied to an expression of intrinsic type"
+msgstr ""
+
+#: fortran/primary.cc:2624
+#, gcc-internal-format
+msgid "Procedure pointer component %qs requires an argument list at %C"
+msgstr ""
+
+#: fortran/primary.cc:2727
+#, gcc-internal-format, gfc-internal-format
+msgid "Nonpolymorphic reference to abstract type at %C"
+msgstr ""
+
+#: fortran/primary.cc:2734
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindexed procedure-pointer component at %C"
+msgstr ""
+
+#: fortran/primary.cc:2772
+#, gcc-internal-format
+msgid "gfc_variable_attr(): Expression isn't a variable"
+msgstr ""
+
+#: fortran/primary.cc:2990
+#, gcc-internal-format
+msgid "gfc_caf_attr(): Expression isn't a variable"
+msgstr ""
+
+#: fortran/primary.cc:3047
+#, gcc-internal-format
+msgid "gfc_caf_attr(): Bad array reference"
+msgstr ""
+
+#: fortran/primary.cc:3226
+#, gcc-internal-format
+msgid "No initializer for allocatable component %qs given in the structure constructor at %C"
+msgstr ""
+
+#: fortran/primary.cc:3237
+#, gcc-internal-format, gfc-internal-format
+msgid "Structure constructor with missing optional arguments at %C"
+msgstr ""
+
+#: fortran/primary.cc:3246
+#, gcc-internal-format
+msgid "No initializer for component %qs given in the structure constructor at %C"
+msgstr ""
+
+#: fortran/primary.cc:3294
+#, gcc-internal-format
+msgid "Cannot construct ABSTRACT type %qs at %L"
+msgstr ""
+
+#: fortran/primary.cc:3314
+#, gcc-internal-format, gfc-internal-format
+msgid "Structure constructor with named arguments at %C"
+msgstr ""
+
+#: fortran/primary.cc:3329
+#, gcc-internal-format, gfc-internal-format
+msgid "Component initializer without name after component named %s at %L"
+msgstr ""
+
+#: fortran/primary.cc:3334
+#, gcc-internal-format, gfc-internal-format
+msgid "Too many components in structure constructor at %L"
+msgstr ""
+
+#: fortran/primary.cc:3393
+msgid "CHARACTER expression will be truncated in constructor (%td/%td) at %L"
+msgstr ""
+
+#: fortran/primary.cc:3411
+#, gcc-internal-format
+msgid "Component %qs is initialized twice in the structure constructor at %L"
+msgstr ""
+
+#: fortran/primary.cc:3423
+#, gcc-internal-format
+msgid "Coindexed expression to pointer component %qs in structure constructor at %L"
+msgstr ""
+
+#: fortran/primary.cc:3477
+#, gcc-internal-format
+msgid "component %qs at %L has already been set by a parent derived type constructor"
+msgstr ""
+
+#: fortran/primary.cc:3642
+#, gcc-internal-format, gfc-internal-format
+msgid "%%LOC() as an rvalue at %C"
+msgstr ""
+
+#: fortran/primary.cc:3701
+#, gcc-internal-format
+msgid "%qs at %C is the name of a recursive function and so refers to the result variable. Use an explicit RESULT variable for direct recursion (12.5.2.1)"
+msgstr ""
+
+#: fortran/primary.cc:3732 fortran/primary.cc:4134
+#, gcc-internal-format, gfc-internal-format
+msgid "Symbol at %C is not appropriate for an expression"
+msgstr ""
+
+#: fortran/primary.cc:3837
+#, gcc-internal-format
+msgid "Unexpected use of subroutine name %qs at %C"
+msgstr ""
+
+#: fortran/primary.cc:3869
+#, gcc-internal-format
+msgid "Statement function %qs requires argument list at %C"
+msgstr ""
+
+#: fortran/primary.cc:3872
+#, gcc-internal-format
+msgid "Function %qs requires an argument list at %C"
+msgstr ""
+
+#: fortran/primary.cc:3922
+#, gcc-internal-format
+msgid "Missing argument to %qs at %C"
+msgstr ""
+
+#: fortran/primary.cc:3935
+#, gcc-internal-format, gfc-internal-format
+msgid "The leftmost part-ref in a data-ref cannot be a function reference at %C"
+msgstr ""
+
+#: fortran/primary.cc:4090
+#, gcc-internal-format
+msgid "Missing argument list in function %qs at %C"
+msgstr ""
+
+#: fortran/primary.cc:4204
+#, gcc-internal-format
+msgid "Derived type %qs cannot be used as a variable at %C"
+msgstr ""
+
+#: fortran/primary.cc:4245
+#, gcc-internal-format, gfc-internal-format
+msgid "Named constant at %C in an EQUIVALENCE"
+msgstr ""
+
+#: fortran/primary.cc:4250
+#, gcc-internal-format
+msgid "PARAMETER %qs shall not appear in a DATA statement at %C"
+msgstr ""
+
+#: fortran/primary.cc:4286
+#, gcc-internal-format
+msgid "%qs at %C is not a variable"
+msgstr ""
+
+#: fortran/resolve.cc:114
+#, gcc-internal-format
+msgid "%qs at %L is of the ABSTRACT type %qs"
+msgstr ""
+
+#: fortran/resolve.cc:117
+#, gcc-internal-format
+msgid "ABSTRACT type %qs used at %L"
+msgstr ""
+
+#: fortran/resolve.cc:134
+#, gcc-internal-format
+msgid "Interface %qs at %L is declared in a later PROCEDURE statement"
+msgstr ""
+
+#: fortran/resolve.cc:147
+#, gcc-internal-format
+msgid "Interface %qs at %L may not be generic"
+msgstr ""
+
+#: fortran/resolve.cc:154
+#, gcc-internal-format
+msgid "Interface %qs at %L may not be a statement function"
+msgstr ""
+
+#: fortran/resolve.cc:163
+#, gcc-internal-format
+msgid "Intrinsic procedure %qs not allowed in PROCEDURE statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:169
+#, gcc-internal-format
+msgid "Interface %qs at %L must be explicit"
+msgstr ""
+
+#: fortran/resolve.cc:191
+#, gcc-internal-format
+msgid "PROCEDURE %qs at %L may not be used as its own interface"
+msgstr ""
+
+#: fortran/resolve.cc:292
+#, gcc-internal-format
+msgid "Alternate return specifier in elemental subroutine %qs at %L is not allowed"
+msgstr ""
+
+#: fortran/resolve.cc:296
+#, gcc-internal-format
+msgid "Alternate return specifier in function %qs at %L is not allowed"
+msgstr ""
+
+#: fortran/resolve.cc:308
+#, gcc-internal-format
+msgid "Self-referential argument %qs at %L is not allowed"
+msgstr ""
+
+#: fortran/resolve.cc:380
+#, gcc-internal-format
+msgid "Dummy procedure %qs of PURE procedure at %L must also be PURE"
+msgstr ""
+
+#: fortran/resolve.cc:390
+#, gcc-internal-format
+msgid "Argument %qs of pure function %qs at %L with VALUE attribute but without INTENT(IN)"
+msgstr ""
+
+#: fortran/resolve.cc:395
+#, gcc-internal-format
+msgid "Argument %qs of pure function %qs at %L must be INTENT(IN) or VALUE"
+msgstr ""
+
+#: fortran/resolve.cc:403
+#, gcc-internal-format
+msgid "Argument %qs of pure subroutine %qs at %L with VALUE attribute but without INTENT"
+msgstr ""
+
+#: fortran/resolve.cc:408
+#, gcc-internal-format
+msgid "Argument %qs of pure subroutine %qs at %L must have its INTENT specified or have the VALUE attribute"
+msgstr ""
+
+#: fortran/resolve.cc:418
+#, gcc-internal-format
+msgid "INTENT(OUT) argument %qs of pure procedure %qs at %L may not be polymorphic"
+msgstr ""
+
+#: fortran/resolve.cc:451
+#, gcc-internal-format
+msgid "Coarray dummy argument %qs at %L to elemental procedure"
+msgstr ""
+
+#: fortran/resolve.cc:459
+#, gcc-internal-format
+msgid "Argument %qs of elemental procedure at %L must be scalar"
+msgstr ""
+
+#: fortran/resolve.cc:468
+#, gcc-internal-format
+msgid "Argument %qs of elemental procedure at %L cannot have the ALLOCATABLE attribute"
+msgstr ""
+
+#: fortran/resolve.cc:478
+#, gcc-internal-format
+msgid "Argument %qs of elemental procedure at %L cannot have the POINTER attribute"
+msgstr ""
+
+#: fortran/resolve.cc:486
+#, gcc-internal-format
+msgid "Dummy procedure %qs not allowed in elemental procedure %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:495
+#, gcc-internal-format
+msgid "Argument %qs of elemental procedure %qs at %L must have its INTENT specified or have the VALUE attribute"
+msgstr ""
+
+#. F03:C1263 (R1238) The function-name and each dummy-arg-name
+#. shall be specified, explicitly or implicitly, to be scalar.
+#: fortran/resolve.cc:510
+#, gcc-internal-format
+msgid "Argument %qs of statement function %qs at %L must be scalar"
+msgstr ""
+
+#: fortran/resolve.cc:521
+#, gcc-internal-format
+msgid "Character-valued argument %qs of statement function at %L must have constant length"
+msgstr ""
+
+#: fortran/resolve.cc:571
+#, gcc-internal-format
+msgid "Contained procedure %qs at %L has the same name as its encompassing procedure"
+msgstr ""
+
+#: fortran/resolve.cc:591
+#, gcc-internal-format
+msgid "Contained function %qs at %L has no IMPLICIT type"
+msgstr ""
+
+#: fortran/resolve.cc:594
+#, gcc-internal-format
+msgid "Result %qs of contained function %qs at %L has no IMPLICIT type"
+msgstr ""
+
+#: fortran/resolve.cc:620
+#, gcc-internal-format
+msgid "Character-valued module procedure %qs at %L must not be assumed length"
+msgstr ""
+
+#: fortran/resolve.cc:622
+#, gcc-internal-format
+msgid "Character-valued internal function %qs at %L must not be assumed length"
+msgstr ""
+
+#: fortran/resolve.cc:795
+#, gcc-internal-format, gfc-internal-format
+msgid "Function %s at %L has entries with mismatched array specifications"
+msgstr ""
+
+#: fortran/resolve.cc:806
+#, gcc-internal-format, gfc-internal-format
+msgid "Function %s at %L has entry %s with mismatched characteristics"
+msgstr ""
+
+#: fortran/resolve.cc:821
+#, gcc-internal-format, gfc-internal-format
+msgid "Function %s at %L with entries returning variables of different string lengths"
+msgstr ""
+
+#: fortran/resolve.cc:853
+#, gcc-internal-format, gfc-internal-format
+msgid "FUNCTION result %s cannot be an array in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:857
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY result %s cannot be an array in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:864
+#, gcc-internal-format, gfc-internal-format
+msgid "FUNCTION result %s cannot be a POINTER in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:868
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY result %s cannot be a POINTER in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:875
+#, gcc-internal-format, gfc-internal-format
+msgid "FUNCTION result %s cannot be ALLOCATABLE in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:879
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY result %s cannot be ALLOCATABLE in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:917
+#, gcc-internal-format, gfc-internal-format
+msgid "FUNCTION result %s cannot be of type %s in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:922
+#, gcc-internal-format, gfc-internal-format
+msgid "ENTRY result %s cannot be of type %s in FUNCTION %s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:973
+#, gcc-internal-format
+msgid "Global entity %qs at %L cannot appear in a COMMON block at %L"
+msgstr ""
+
+#: fortran/resolve.cc:977
+#, gcc-internal-format
+msgid "Global entity %qs at %L cannot appear in a COMMON block"
+msgstr ""
+
+#: fortran/resolve.cc:987
+#, gcc-internal-format, gfc-internal-format
+msgid "COMMON block at %L"
+msgstr ""
+
+#: fortran/resolve.cc:994
+#, gcc-internal-format
+msgid "Variable %qs at %L is in COMMON but only in BLOCK DATA initialization is allowed"
+msgstr ""
+
+#: fortran/resolve.cc:998
+#, gcc-internal-format
+msgid "Initialized variable %qs at %L is in a blank COMMON but initialization is only allowed in named common blocks"
+msgstr ""
+
+#: fortran/resolve.cc:1005
+#, gcc-internal-format
+msgid "%qs at %L cannot appear in COMMON [F2008:C5100]"
+msgstr ""
+
+#: fortran/resolve.cc:1010
+#, gcc-internal-format
+msgid "Automatic object %qs at %L cannot appear in COMMON at %L"
+msgstr ""
+
+#: fortran/resolve.cc:1022
+#, gcc-internal-format
+msgid "Derived type variable %qs in COMMON at %L has neither the SEQUENCE nor the BIND(C) attribute"
+msgstr ""
+
+#: fortran/resolve.cc:1026
+#, gcc-internal-format
+msgid "Derived type variable %qs in COMMON at %L has an ultimate component that is allocatable"
+msgstr ""
+
+#: fortran/resolve.cc:1030
+#, gcc-internal-format
+msgid "Derived type variable %qs in COMMON at %L may not have default initializer"
+msgstr ""
+
+#: fortran/resolve.cc:1074
+#, gcc-internal-format
+msgid "In Fortran 2003 COMMON %qs block at %L is a global identifier and must thus have the same binding name as the same-named COMMON block at %L: %s vs %s"
+msgstr ""
+
+#: fortran/resolve.cc:1088
+#, gcc-internal-format
+msgid "COMMON block %qs at %L uses the same global identifier as entity at %L"
+msgstr ""
+
+#: fortran/resolve.cc:1096
+#, gcc-internal-format
+msgid "Fortran 2008: COMMON block %qs with binding label at %L sharing the identifier with global non-COMMON-block entity at %L"
+msgstr ""
+
+#: fortran/resolve.cc:1118
+#, gcc-internal-format
+msgid "COMMON block at %L with binding label %qs uses the same global identifier as entity at %L"
+msgstr ""
+
+#: fortran/resolve.cc:1139
+#, gcc-internal-format
+msgid "COMMON block %qs at %L is used as PARAMETER at %L"
+msgstr ""
+
+#: fortran/resolve.cc:1143
+#, gcc-internal-format
+msgid "COMMON block %qs at %L cannot have the EXTERNAL attribute"
+msgstr ""
+
+#: fortran/resolve.cc:1147
+#, gcc-internal-format
+msgid "COMMON block %qs at %L is also an intrinsic procedure"
+msgstr ""
+
+#: fortran/resolve.cc:1151
+#, gcc-internal-format
+msgid "COMMON block %qs at %L that is also a function result"
+msgstr ""
+
+#: fortran/resolve.cc:1156
+#, gcc-internal-format
+msgid "COMMON block %qs at %L that is also a global procedure"
+msgstr ""
+
+#: fortran/resolve.cc:1223
+#, gcc-internal-format
+msgid "The KIND parameter %qs in the PDT constructor at %C has no value"
+msgstr ""
+
+#: fortran/resolve.cc:1366
+#, gcc-internal-format, gfc-internal-format
+msgid "The rank of the element in the structure constructor at %L does not match that of the component (%d/%d)"
+msgstr ""
+
+#: fortran/resolve.cc:1387
+#, gcc-internal-format
+msgid "The element in the structure constructor at %L, for pointer component %qs, is %s but should be %s"
+msgstr ""
+
+#: fortran/resolve.cc:1422
+#, gcc-internal-format
+msgid "Unequal character lengths (%wd/%wd) for pointer component %qs in constructor at %L"
+msgstr ""
+
+#: fortran/resolve.cc:1467
+#, gcc-internal-format
+msgid "The NULL in the structure constructor at %L is being applied to component %qs, which is neither a POINTER nor ALLOCATABLE"
+msgstr ""
+
+#: fortran/resolve.cc:1501
+#, gcc-internal-format
+msgid "Interface mismatch for procedure-pointer component %qs in structure constructor at %L: %s"
+msgstr ""
+
+#: fortran/resolve.cc:1520
+#, gcc-internal-format
+msgid "Bad array spec of component %qs referenced in structure constructor at %L"
+msgstr ""
+
+#: fortran/resolve.cc:1533
+#, gcc-internal-format
+msgid "The shape of component %qs in the structure constructor at %L differs from the shape of the declared component for dimension %d (%ld/%ld)"
+msgstr ""
+
+#: fortran/resolve.cc:1554
+#, gcc-internal-format
+msgid "The element in the structure constructor at %L, for pointer component %qs should be a POINTER or a TARGET"
+msgstr ""
+
+#: fortran/resolve.cc:1583
+#, gcc-internal-format
+msgid "Invalid expression in the structure constructor for pointer component %qs at %L in PURE procedure"
+msgstr ""
+
+#: fortran/resolve.cc:1709
+#, gcc-internal-format
+msgid "The upper bound in the last dimension must appear in the reference to the assumed size array %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:1771
+#, gcc-internal-format
+msgid "%qs at %L is ambiguous"
+msgstr ""
+
+#: fortran/resolve.cc:1775
+#, gcc-internal-format
+msgid "GENERIC procedure %qs is not allowed as an actual argument at %L"
+msgstr ""
+
+#: fortran/resolve.cc:1896
+#, gcc-internal-format
+msgid "Type specified for intrinsic function %qs at %L is ignored"
+msgstr ""
+
+#: fortran/resolve.cc:1909
+#, gcc-internal-format
+msgid "Intrinsic subroutine %qs at %L shall not have a type specifier"
+msgstr ""
+
+#: fortran/resolve.cc:1920
+#, gcc-internal-format
+msgid "%qs declared INTRINSIC at %L does not exist"
+msgstr ""
+
+#: fortran/resolve.cc:1933
+#, gcc-internal-format
+msgid "The intrinsic %qs declared INTRINSIC at %L is not available in the current standard settings but %s. Use an appropriate %<-std=*%> option or enable %<-fall-intrinsics%> in order to use it."
+msgstr ""
+
+#: fortran/resolve.cc:1971
+#, gcc-internal-format
+msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
+msgstr ""
+
+#: fortran/resolve.cc:1976 fortran/resolve.cc:6852
+#, gcc-internal-format
+msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
+msgstr ""
+
+#: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
+#, gcc-internal-format, gfc-internal-format
+msgid "Label %d referenced at %L is never defined"
+msgstr ""
+
+#: fortran/resolve.cc:2067
+#, gcc-internal-format
+msgid "Derived type %qs is used as an actual argument at %L"
+msgstr ""
+
+#: fortran/resolve.cc:2085
+#, gcc-internal-format
+msgid "Statement function %qs at %L is not allowed as an actual argument"
+msgstr ""
+
+#: fortran/resolve.cc:2093
+#, gcc-internal-format
+msgid "Intrinsic %qs at %L is not allowed as an actual argument"
+msgstr ""
+
+#: fortran/resolve.cc:2100
+#, gcc-internal-format
+msgid "Internal procedure %qs is used as actual argument at %L"
+msgstr ""
+
+#: fortran/resolve.cc:2108
+#, gcc-internal-format
+msgid "ELEMENTAL non-INTRINSIC procedure %qs is not allowed as an actual argument at %L"
+msgstr ""
+
+#: fortran/resolve.cc:2135
+#, gcc-internal-format
+msgid "Unable to find a specific INTRINSIC procedure for the reference %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:2157
+#, gcc-internal-format
+msgid "Symbol %qs at %L is ambiguous"
+msgstr ""
+
+#: fortran/resolve.cc:2220
+#, gcc-internal-format, gfc-internal-format
+msgid "By-value argument at %L is not of numeric type"
+msgstr ""
+
+#: fortran/resolve.cc:2227
+#, gcc-internal-format, gfc-internal-format
+msgid "By-value argument at %L cannot be an array or an array section"
+msgstr ""
+
+#: fortran/resolve.cc:2241
+#, gcc-internal-format, gfc-internal-format
+msgid "By-value argument at %L is not allowed in this context"
+msgstr ""
+
+#: fortran/resolve.cc:2253
+#, gcc-internal-format, gfc-internal-format
+msgid "Passing internal procedure at %L by location not allowed"
+msgstr ""
+
+#: fortran/resolve.cc:2264
+#, gcc-internal-format
+msgid "ELEMENTAL procedure pointer component %qs is not allowed as an actual argument at %L"
+msgstr ""
+
+#: fortran/resolve.cc:2273
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindexed actual argument at %L with ultimate pointer component"
+msgstr ""
+
+#: fortran/resolve.cc:2420
+#, gcc-internal-format
+msgid "%qs at %L is an array and OPTIONAL; If it is not present, then it cannot be the actual argument of an ELEMENTAL procedure unless there is a non-optional argument with the same rank (Fortran 2018, 15.5.2.12)"
+msgstr ""
+
+#: fortran/resolve.cc:2459
+#, gcc-internal-format
+msgid "Actual argument at %L for INTENT(%s) dummy %qs of ELEMENTAL subroutine %qs is a scalar, but another actual argument is an array"
+msgstr ""
+
+#: fortran/resolve.cc:2733
+#, gcc-internal-format
+msgid "Return type mismatch of function %qs at %L (%s/%s)"
+msgstr ""
+
+#: fortran/resolve.cc:2760
+#, gcc-internal-format
+msgid "Interface mismatch in global procedure %qs at %L: %s"
+msgstr ""
+
+#: fortran/resolve.cc:2866
+#, gcc-internal-format
+msgid "There is no specific function for the generic %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:2886
+#, gcc-internal-format
+msgid "Generic function %qs at %L is not consistent with a specific intrinsic interface"
+msgstr ""
+
+#: fortran/resolve.cc:2924
+#, gcc-internal-format
+msgid "Function %qs at %L is INTRINSIC but is not compatible with an intrinsic"
+msgstr ""
+
+#: fortran/resolve.cc:2979
+#, gcc-internal-format
+msgid "Unable to resolve the specific function %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:3056
+#, gcc-internal-format
+msgid "Missing explicit declaration with EXTERNAL attribute for symbol %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:3088
+#, gcc-internal-format
+msgid "Function %qs at %L has no IMPLICIT type; did you mean %qs?"
+msgstr ""
+
+#: fortran/resolve.cc:3092 fortran/resolve.cc:18167
+#, gcc-internal-format
+msgid "Function %qs at %L has no IMPLICIT type"
+msgstr ""
+
+#: fortran/resolve.cc:3216
+#, gcc-internal-format
+msgid "Reference to impure function %qs at %L inside a FORALL %s"
+msgstr ""
+
+#: fortran/resolve.cc:3223
+#, gcc-internal-format
+msgid "Reference to impure function %qs at %L inside a DO CONCURRENT %s"
+msgstr ""
+
+#: fortran/resolve.cc:3230
+#, gcc-internal-format
+msgid "Reference to impure function %qs at %L within a PURE procedure"
+msgstr ""
+
+#: fortran/resolve.cc:3297
+#, gcc-internal-format
+msgid "Unexpected junk after %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:3308
+#, gcc-internal-format
+msgid "%qs at %L is not a function"
+msgstr ""
+
+#: fortran/resolve.cc:3316 fortran/resolve.cc:3831
+#, gcc-internal-format
+msgid "ABSTRACT INTERFACE %qs must not be referenced at %L"
+msgstr ""
+
+#: fortran/resolve.cc:3328
+#, gcc-internal-format
+msgid "ABSTRACT INTERFACE %qs at %L must not have an assumed character length result (F2008: C418)"
+msgstr ""
+
+#. Internal procedures are taken care of in resolve_contained_fntype.
+#: fortran/resolve.cc:3371
+#, gcc-internal-format
+msgid "Function %qs is declared CHARACTER(*) and cannot be used at %L since it is not a dummy argument"
+msgstr ""
+
+#: fortran/resolve.cc:3405
+#, gcc-internal-format
+msgid "resolve_function(): bad function type"
+msgstr ""
+
+#: fortran/resolve.cc:3419
+#, gcc-internal-format, gfc-internal-format
+msgid "A BOZ literal constant at %L cannot appear as an actual argument in a function reference"
+msgstr ""
+
+#: fortran/resolve.cc:3435
+#, gcc-internal-format
+msgid "User defined non-ELEMENTAL function %qs at %L not allowed in WORKSHARE construct"
+msgstr ""
+
+#: fortran/resolve.cc:3497
+#, gcc-internal-format
+msgid "ENTRY %qs at %L cannot be called recursively, as function %qs is not RECURSIVE"
+msgstr ""
+
+#: fortran/resolve.cc:3501
+#, gcc-internal-format
+msgid "Function %qs at %L cannot be called recursively, as it is not RECURSIVE"
+msgstr ""
+
+#: fortran/resolve.cc:3559
+#, gcc-internal-format
+msgid "Using function %qs at %L is deprecated"
+msgstr ""
+
+#: fortran/resolve.cc:3575
+#, gcc-internal-format
+msgid "Subroutine call to %qs in FORALL block at %L is not PURE"
+msgstr ""
+
+#: fortran/resolve.cc:3581
+#, gcc-internal-format
+msgid "Subroutine call to %qs in DO CONCURRENT block at %L is not PURE"
+msgstr ""
+
+#: fortran/resolve.cc:3587
+#, gcc-internal-format
+msgid "Subroutine call to %qs at %L is not PURE"
+msgstr ""
+
+#: fortran/resolve.cc:3655
+#, gcc-internal-format
+msgid "There is no specific subroutine for the generic %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:3664
+#, gcc-internal-format
+msgid "Generic subroutine %qs at %L is not consistent with an intrinsic subroutine interface"
+msgstr ""
+
+#: fortran/resolve.cc:3699
+#, gcc-internal-format
+msgid "Subroutine %qs at %L is INTRINSIC but is not compatible with an intrinsic"
+msgstr ""
+
+#: fortran/resolve.cc:3744
+#, gcc-internal-format
+msgid "Unable to resolve the specific subroutine %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:3802
+#, gcc-internal-format
+msgid "%qs at %L has a type, which is not consistent with the CALL at %L"
+msgstr ""
+
+#: fortran/resolve.cc:3841
+#, gcc-internal-format
+msgid "ENTRY %qs at %L cannot be called recursively, as subroutine %qs is not RECURSIVE"
+msgstr ""
+
+#: fortran/resolve.cc:3845
+#, gcc-internal-format
+msgid "SUBROUTINE %qs at %L cannot be called recursively, as it is not RECURSIVE"
+msgstr ""
+
+#: fortran/resolve.cc:3890
+#, gcc-internal-format
+msgid "resolve_subroutine(): bad function type"
+msgstr ""
+
+#: fortran/resolve.cc:3907
+#, gcc-internal-format
+msgid "Using subroutine %qs at %L is deprecated"
+msgstr ""
+
+#: fortran/resolve.cc:3934
+#, gcc-internal-format, gfc-internal-format
+msgid "Shapes for operands at %L and %L are not conformable"
+msgstr ""
+
+#: fortran/resolve.cc:3986
+#, gcc-internal-format
+msgid "logical_to_bitwise(): Bad intrinsic"
+msgstr ""
+
+#: fortran/resolve.cc:4089
+#, gcc-internal-format
+msgid "Impure function %qs at %L might not be evaluated"
+msgstr ""
+
+#: fortran/resolve.cc:4093
+#, gcc-internal-format, gfc-internal-format
+msgid "Impure function at %L might not be evaluated"
+msgstr ""
+
+#: fortran/resolve.cc:4180
+#, gcc-internal-format
+msgid "BOZ literal constant at %L cannot be an operand of unary operator %qs"
+msgstr ""
+
+#: fortran/resolve.cc:4204
+#, gcc-internal-format
+msgid "Operands at %L and %L cannot appear as operands of binary operator %qs"
+msgstr ""
+
+#: fortran/resolve.cc:4389 fortran/resolve.cc:4404
+#, gcc-internal-format, gfc-internal-format
+msgid "BOZ literal constant near %L cannot appear as an operand of a relational operator"
+msgstr ""
+
+#: fortran/resolve.cc:4454
+#, gcc-internal-format, gfc-internal-format
+msgid "Equality comparison for %s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:4456
+#, gcc-internal-format, gfc-internal-format
+msgid "Inequality comparison for %s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:4516
+#, gcc-internal-format
+msgid "resolve_operator(): Bad intrinsic"
+msgstr ""
+
+#: fortran/resolve.cc:4802
+#, gcc-internal-format, gfc-internal-format
+msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d"
+msgstr ""
+
+#: fortran/resolve.cc:4807
+#, gcc-internal-format, gfc-internal-format
+msgid "Array reference at %L is out of bounds (%ld < %ld) in codimension %d"
+msgstr ""
+
+#: fortran/resolve.cc:4817
+#, gcc-internal-format, gfc-internal-format
+msgid "Array reference at %L is out of bounds (%ld > %ld) in dimension %d"
+msgstr ""
+
+#: fortran/resolve.cc:4822
+#, gcc-internal-format, gfc-internal-format
+msgid "Array reference at %L is out of bounds (%ld > %ld) in codimension %d"
+msgstr ""
+
+#: fortran/resolve.cc:4843
+#, gcc-internal-format, gfc-internal-format
+msgid "Illegal stride of zero at %L"
+msgstr ""
+
+#: fortran/resolve.cc:4860
+#, gcc-internal-format, gfc-internal-format
+msgid "Lower array reference at %L is out of bounds (%ld < %ld) in dimension %d"
+msgstr ""
+
+#: fortran/resolve.cc:4868
+#, gcc-internal-format, gfc-internal-format
+msgid "Lower array reference at %L is out of bounds (%ld > %ld) in dimension %d"
+msgstr ""
+
+#: fortran/resolve.cc:4884
+#, gcc-internal-format, gfc-internal-format
+msgid "Upper array reference at %L is out of bounds (%ld < %ld) in dimension %d"
+msgstr ""
+
+#: fortran/resolve.cc:4893
+#, gcc-internal-format, gfc-internal-format
+msgid "Upper array reference at %L is out of bounds (%ld > %ld) in dimension %d"
+msgstr ""
+
+#: fortran/resolve.cc:4909
+#, gcc-internal-format
+msgid "check_dimension(): Bad array reference"
+msgstr ""
+
+#: fortran/resolve.cc:4932
+#, gcc-internal-format, gfc-internal-format
+msgid "Rightmost upper bound of assumed size array section not specified at %L"
+msgstr ""
+
+#: fortran/resolve.cc:4942
+#, gcc-internal-format, gfc-internal-format
+msgid "Rank mismatch in array reference at %L (%d/%d)"
+msgstr ""
+
+#: fortran/resolve.cc:4950
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindex rank mismatch in array reference at %L (%d/%d)"
+msgstr ""
+
+#: fortran/resolve.cc:4966
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindex of codimension %d must be a scalar at %L"
+msgstr ""
+
+#: fortran/resolve.cc:4994
+#, gcc-internal-format, gfc-internal-format
+msgid "Array index at %L must be scalar"
+msgstr ""
+
+#: fortran/resolve.cc:5000
+#, gcc-internal-format, gfc-internal-format
+msgid "Array index at %L must be of INTEGER type, found %s"
+msgstr ""
+
+#: fortran/resolve.cc:5006
+#, gcc-internal-format, gfc-internal-format
+msgid "REAL array index at %L"
+msgstr ""
+
+#: fortran/resolve.cc:5046
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument dim at %L must be scalar"
+msgstr ""
+
+#: fortran/resolve.cc:5053
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument dim at %L must be of INTEGER type"
+msgstr ""
+
+#: fortran/resolve.cc:5113
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid array reference of a non-array entity at %L"
+msgstr ""
+
+#: fortran/resolve.cc:5127
+#, gcc-internal-format
+msgid "find_array_spec(): unused as(1)"
+msgstr ""
+
+#: fortran/resolve.cc:5139
+#, gcc-internal-format
+msgid "find_array_spec(): unused as(2)"
+msgstr ""
+
+#: fortran/resolve.cc:5184
+#, gcc-internal-format, gfc-internal-format
+msgid "Array index at %L is an array of rank %d"
+msgstr ""
+
+#: fortran/resolve.cc:5282
+#, gcc-internal-format, gfc-internal-format
+msgid "Substring start index at %L must be of type INTEGER"
+msgstr ""
+
+#: fortran/resolve.cc:5289
+#, gcc-internal-format, gfc-internal-format
+msgid "Substring start index at %L must be scalar"
+msgstr ""
+
+#: fortran/resolve.cc:5311
+#, gcc-internal-format, gfc-internal-format
+msgid "Substring end index at %L must be of type INTEGER"
+msgstr ""
+
+#: fortran/resolve.cc:5318
+#, gcc-internal-format, gfc-internal-format
+msgid "Substring end index at %L must be scalar"
+msgstr ""
+
+#: fortran/resolve.cc:5338
+#, gcc-internal-format, gfc-internal-format
+msgid "Substring end index at %L is too large"
+msgstr ""
+
+#: fortran/resolve.cc:5529
+#, gcc-internal-format
+msgid "resolve_ref(): Bad array reference"
+msgstr ""
+
+#: fortran/resolve.cc:5543
+#, gcc-internal-format, gfc-internal-format
+msgid "Component to the right of a part reference with nonzero rank must not have the POINTER attribute at %L"
+msgstr ""
+
+#: fortran/resolve.cc:5553
+#, gcc-internal-format, gfc-internal-format
+msgid "Component to the right of a part reference with nonzero rank must not have the ALLOCATABLE attribute at %L"
+msgstr ""
+
+#: fortran/resolve.cc:5601
+#, gcc-internal-format, gfc-internal-format
+msgid "Two or more part references with nonzero rank must not be specified at %L"
+msgstr ""
+
+#: fortran/resolve.cc:5693
+#, gcc-internal-format
+msgid "gfc_expression_rank(): Two array specs"
+msgstr ""
+
+#: fortran/resolve.cc:5790
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s at %L with NO_ARG_CHECK attribute may only be used as actual argument"
+msgstr ""
+
+#: fortran/resolve.cc:5800
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type variable %s at %L may only be used as actual argument"
+msgstr ""
+
+#. FIXME: It doesn't work reliably as inquiry_argument is not set
+#. for all inquiry functions in resolve_function; the reason is
+#. that the function-name resolution happens too late in that
+#. function.
+#: fortran/resolve.cc:5810
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type variable %s at %L as actual argument to an inquiry function shall be the first argument"
+msgstr ""
+
+#: fortran/resolve.cc:5829
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank variable %s at %L may only be used as actual argument"
+msgstr ""
+
+#. FIXME: It doesn't work reliably as inquiry_argument is not set
+#. for all inquiry functions in resolve_function; the reason is
+#. that the function-name resolution happens too late in that
+#. function.
+#: fortran/resolve.cc:5839
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank variable %s at %L as actual argument to an inquiry function shall be the first argument"
+msgstr ""
+
+#: fortran/resolve.cc:5850
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s at %L with NO_ARG_CHECK attribute shall not have a subobject reference"
+msgstr ""
+
+#: fortran/resolve.cc:5859
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type variable %s at %L shall not have a subobject reference"
+msgstr ""
+
+#: fortran/resolve.cc:5875
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
+msgstr ""
+
+#: fortran/resolve.cc:5935
+#, gcc-internal-format
+msgid "Scalar variable %qs has an array reference at %L"
+msgstr ""
+
+#: fortran/resolve.cc:6080
+#, gcc-internal-format
+msgid "Variable %qs, used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter"
+msgstr ""
+
+#: fortran/resolve.cc:6085
+#, gcc-internal-format
+msgid "Variable %qs is used at %L before the ENTRY statement in which it is a parameter"
+msgstr ""
+
+#: fortran/resolve.cc:6155
+#, gcc-internal-format, gfc-internal-format
+msgid "Polymorphic subobject of coindexed object at %L"
+msgstr ""
+
+#: fortran/resolve.cc:6168
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindexed object with polymorphic allocatable subcomponent at %L"
+msgstr ""
+
+#: fortran/resolve.cc:6184
+#, gcc-internal-format
+msgid "Using variable %qs at %L is deprecated"
+msgstr ""
+
+#: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid array reference at %L"
+msgstr ""
+
+#: fortran/resolve.cc:6433
+#, gcc-internal-format
+msgid "%qs at %L is host associated at %L into a contained procedure with an internal procedure of the same name"
+msgstr ""
+
+#: fortran/resolve.cc:6611 fortran/resolve.cc:6763
+#, gcc-internal-format, gfc-internal-format
+msgid "Error in typebound call at %L"
+msgstr ""
+
+#: fortran/resolve.cc:6727
+#, gcc-internal-format, gfc-internal-format
+msgid "Passed-object at %L must be scalar"
+msgstr ""
+
+#: fortran/resolve.cc:6734
+#, gcc-internal-format
+msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type %qs"
+msgstr ""
+
+#: fortran/resolve.cc:6773
+#, gcc-internal-format
+msgid "Base object for type-bound procedure call at %L is of ABSTRACT type %qs"
+msgstr ""
+
+#: fortran/resolve.cc:6782
+#, gcc-internal-format, gfc-internal-format
+msgid "Base object for NOPASS type-bound procedure call at %L must be scalar"
+msgstr ""
+
+#. Nothing matching found!
+#: fortran/resolve.cc:6977
+#, gcc-internal-format
+msgid "Found no matching specific binding for the call to the GENERIC %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:7011
+#, gcc-internal-format
+msgid "%qs at %L should be a SUBROUTINE"
+msgstr ""
+
+#: fortran/resolve.cc:7063
+#, gcc-internal-format
+msgid "%qs at %L should be a FUNCTION"
+msgstr ""
+
+#: fortran/resolve.cc:7598
+#, gcc-internal-format
+msgid "gfc_resolve_expr(): Bad expression type"
+msgstr ""
+
+#: fortran/resolve.cc:7631
+#, gcc-internal-format, gfc-internal-format
+msgid "%s at %L must be a scalar"
+msgstr ""
+
+#: fortran/resolve.cc:7641
+#, gcc-internal-format, gfc-internal-format
+msgid "%s at %L must be integer"
+msgstr ""
+
+#: fortran/resolve.cc:7645 fortran/resolve.cc:7652
+#, gcc-internal-format, gfc-internal-format
+msgid "%s at %L must be INTEGER"
+msgstr ""
+
+#: fortran/resolve.cc:7707
+#, gcc-internal-format, gfc-internal-format
+msgid "Step expression in DO loop at %L cannot be zero"
+msgstr ""
+
+#: fortran/resolve.cc:7730
+#, gcc-internal-format, gfc-internal-format
+msgid "DO loop at %L will be executed zero times"
+msgstr ""
+
+#: fortran/resolve.cc:7747
+#, gcc-internal-format, gfc-internal-format
+msgid "DO loop at %L is undefined as it overflows"
+msgstr ""
+
+#: fortran/resolve.cc:7753
+#, gcc-internal-format, gfc-internal-format
+msgid "DO loop at %L is undefined as it underflows"
+msgstr ""
+
+#: fortran/resolve.cc:7814
+#, gcc-internal-format, gfc-internal-format
+msgid "FORALL index-name at %L must be a scalar INTEGER"
+msgstr ""
+
+#: fortran/resolve.cc:7819
+#, gcc-internal-format, gfc-internal-format
+msgid "FORALL start expression at %L must be a scalar INTEGER"
+msgstr ""
+
+#: fortran/resolve.cc:7826
+#, gcc-internal-format, gfc-internal-format
+msgid "FORALL end expression at %L must be a scalar INTEGER"
+msgstr ""
+
+#: fortran/resolve.cc:7834
+#, gcc-internal-format, gfc-internal-format
+msgid "FORALL stride expression at %L must be a scalar %s"
+msgstr ""
+
+#: fortran/resolve.cc:7839
+#, gcc-internal-format, gfc-internal-format
+msgid "FORALL stride expression at %L cannot be zero"
+msgstr ""
+
+#: fortran/resolve.cc:7852
+#, gcc-internal-format
+msgid "FORALL index %qs may not appear in triplet specification at %L"
+msgstr ""
+
+#: fortran/resolve.cc:7957 fortran/resolve.cc:8255
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER"
+msgstr ""
+
+#: fortran/resolve.cc:7965 fortran/resolve.cc:8218
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindexed allocatable object at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8075
+#, gcc-internal-format, gfc-internal-format
+msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8106
+#, gcc-internal-format, gfc-internal-format
+msgid "Source-expr at %L and allocate-object at %L must have the same shape"
+msgstr ""
+
+#: fortran/resolve.cc:8266
+#, gcc-internal-format, gfc-internal-format
+msgid "Type of entity at %L is type incompatible with source-expr at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8278
+#, gcc-internal-format, gfc-internal-format
+msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter"
+msgstr ""
+
+#: fortran/resolve.cc:8292
+#, gcc-internal-format, gfc-internal-format
+msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray"
+msgstr ""
+
+#: fortran/resolve.cc:8317
+#, gcc-internal-format, gfc-internal-format
+msgid "The source-expr at %L shall neither be of type EVENT_TYPE nor have a EVENT_TYPE component if allocate-object at %L is a coarray"
+msgstr ""
+
+#: fortran/resolve.cc:8330
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr"
+msgstr ""
+
+#: fortran/resolve.cc:8348
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration"
+msgstr ""
+
+#: fortran/resolve.cc:8432 fortran/resolve.cc:8447
+#, gcc-internal-format, gfc-internal-format
+msgid "Array specification required in ALLOCATE statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8439
+#, gcc-internal-format, gfc-internal-format
+msgid "Array specification or array-valued SOURCE= expression required in ALLOCATE statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8464
+#, gcc-internal-format, gfc-internal-format
+msgid "Coarray specification required in ALLOCATE statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8474 fortran/resolve.cc:8576
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad coarray specification in ALLOCATE statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8480
+#, gcc-internal-format, gfc-internal-format
+msgid "Upper cobound is less than lower cobound at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8492
+#, gcc-internal-format, gfc-internal-format
+msgid "Upper cobound is less than lower cobound of 1 at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8503 fortran/resolve.cc:8531
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad array specification in ALLOCATE statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8550
+#, gcc-internal-format
+msgid "%qs must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated"
+msgstr ""
+
+#: fortran/resolve.cc:8565
+#, gcc-internal-format
+msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8607
+#, gcc-internal-format, gfc-internal-format
+msgid "Stat-variable at %L must be a scalar INTEGER variable"
+msgstr ""
+
+#: fortran/resolve.cc:8636
+#, gcc-internal-format, gfc-internal-format
+msgid "Stat-variable at %L shall not be %sd within the same %s statement"
+msgstr ""
+
+#: fortran/resolve.cc:8649
+#, gcc-internal-format, gfc-internal-format
+msgid "ERRMSG at %L is useless without a STAT tag"
+msgstr ""
+
+#: fortran/resolve.cc:8663
+#, gcc-internal-format, gfc-internal-format
+msgid "ERRMSG variable at %L shall be a scalar default CHARACTER variable"
+msgstr ""
+
+#: fortran/resolve.cc:8692
+#, gcc-internal-format, gfc-internal-format
+msgid "Errmsg-variable at %L shall not be %sd within the same %s statement"
+msgstr ""
+
+#: fortran/resolve.cc:8724
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocate-object at %L also appears at %L"
+msgstr ""
+
+#: fortran/resolve.cc:8730 fortran/resolve.cc:8736
+#, gcc-internal-format, gfc-internal-format
+msgid "Allocate-object at %L is subobject of object at %L"
+msgstr ""
+
+#. The cases overlap, or they are the same
+#. element in the list.  Either way, we must
+#. issue an error and get the next case from P.
+#. FIXME: Sort P and Q by line number.
+#: fortran/resolve.cc:8964
+#, gcc-internal-format, gfc-internal-format
+msgid "CASE label at %L overlaps with CASE label at %L"
+msgstr ""
+
+#: fortran/resolve.cc:9015
+#, gcc-internal-format, gfc-internal-format
+msgid "Expression in CASE statement at %L must be of type %s"
+msgstr ""
+
+#: fortran/resolve.cc:9026
+#, gcc-internal-format, gfc-internal-format
+msgid "Expression in CASE statement at %L must be of kind %d"
+msgstr ""
+
+#: fortran/resolve.cc:9039
+#, gcc-internal-format, gfc-internal-format
+msgid "Expression in CASE statement at %L must be scalar"
+msgstr ""
+
+#: fortran/resolve.cc:9085
+#, gcc-internal-format, gfc-internal-format
+msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression"
+msgstr ""
+
+#: fortran/resolve.cc:9104
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of SELECT statement at %L cannot be %s"
+msgstr ""
+
+#: fortran/resolve.cc:9114
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of SELECT statement at %L must be a scalar expression"
+msgstr ""
+
+#: fortran/resolve.cc:9132 fortran/resolve.cc:9140
+#, gcc-internal-format, gfc-internal-format
+msgid "Expression in CASE statement at %L is not in the range of %s"
+msgstr ""
+
+#: fortran/resolve.cc:9202 fortran/resolve.cc:9966
+#, gcc-internal-format, gfc-internal-format
+msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L"
+msgstr ""
+
+#: fortran/resolve.cc:9228
+#, gcc-internal-format, gfc-internal-format
+msgid "Logical range in CASE statement at %L is not allowed"
+msgstr ""
+
+#: fortran/resolve.cc:9241
+#, gcc-internal-format, gfc-internal-format
+msgid "Constant logical value in CASE statement is repeated at %L"
+msgstr ""
+
+#: fortran/resolve.cc:9256
+#, gcc-internal-format, gfc-internal-format
+msgid "Range specification at %L can never be matched"
+msgstr ""
+
+#: fortran/resolve.cc:9359
+#, gcc-internal-format, gfc-internal-format
+msgid "Logical SELECT CASE block at %L has more that two cases"
+msgstr ""
+
+#: fortran/resolve.cc:9421
+#, gcc-internal-format
+msgid "Associating entity %qs at %L is a procedure pointer"
+msgstr ""
+
+#: fortran/resolve.cc:9430
+#, gcc-internal-format
+msgid "Derived type %qs cannot be used as a variable at %L"
+msgstr ""
+
+#: fortran/resolve.cc:9447
+#, gcc-internal-format
+msgid "Associating entity %qs at %L is a procedure name"
+msgstr ""
+
+#: fortran/resolve.cc:9463
+#, gcc-internal-format, gfc-internal-format
+msgid "Associating selector-expression at %L yields a procedure"
+msgstr ""
+
+#: fortran/resolve.cc:9517
+#, gcc-internal-format, gfc-internal-format
+msgid "Selector at %L cannot be NULL()"
+msgstr ""
+
+#: fortran/resolve.cc:9522
+#, gcc-internal-format, gfc-internal-format
+msgid "Selector at %L has no type"
+msgstr ""
+
+#: fortran/resolve.cc:9580
+#, gcc-internal-format
+msgid "Associate-name %qs at %L is used as array"
+msgstr ""
+
+#: fortran/resolve.cc:9591
+#, gcc-internal-format, gfc-internal-format
+msgid "CLASS selector at %L needs a temporary which is not yet implemented"
+msgstr ""
+
+#: fortran/resolve.cc:9830
+#, gcc-internal-format, gfc-internal-format
+msgid "Selector shall be polymorphic in SELECT TYPE statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:9874 fortran/resolve.cc:9886
+#, gcc-internal-format, gfc-internal-format
+msgid "Selector at %L must not be coindexed"
+msgstr ""
+
+#: fortran/resolve.cc:9915
+#, gcc-internal-format, gfc-internal-format
+msgid "TYPE IS at %L overlaps with TYPE IS at %L"
+msgstr ""
+
+#: fortran/resolve.cc:9928
+#, gcc-internal-format
+msgid "Derived type %qs at %L must be extensible"
+msgstr ""
+
+#: fortran/resolve.cc:9941
+#, gcc-internal-format
+msgid "Derived type %qs at %L must be an extension of %qs"
+msgstr ""
+
+#: fortran/resolve.cc:9944
+#, gcc-internal-format
+msgid "Unexpected intrinsic type %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:9954
+#, gcc-internal-format, gfc-internal-format
+msgid "The type-spec at %L shall specify that each length type parameter is assumed"
+msgstr ""
+
+#: fortran/resolve.cc:10201
+#, gcc-internal-format, gfc-internal-format
+msgid "Double CLASS IS block in SELECT TYPE statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:10334
+#, gcc-internal-format, gfc-internal-format
+msgid "RANK DEFAULT at %L is repeated at %L"
+msgstr ""
+
+#: fortran/resolve.cc:10343
+#, gcc-internal-format, gfc-internal-format
+msgid "RANK (*) at %L is repeated at %L"
+msgstr ""
+
+#: fortran/resolve.cc:10346
+#, gcc-internal-format, gfc-internal-format
+msgid "RANK (%i) at %L is repeated at %L"
+msgstr ""
+
+#: fortran/resolve.cc:10356
+#, gcc-internal-format, gfc-internal-format
+msgid "RANK (*) at %L cannot be used with the pointer or allocatable selector at %L"
+msgstr ""
+
+#: fortran/resolve.cc:10465
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid context for NULL () intrinsic at %L"
+msgstr ""
+
+#: fortran/resolve.cc:10519
+#, gcc-internal-format, gfc-internal-format
+msgid "DTIO %s procedure at %L must be recursive"
+msgstr ""
+
+#: fortran/resolve.cc:10529
+#, gcc-internal-format, gfc-internal-format
+msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure"
+msgstr ""
+
+#: fortran/resolve.cc:10542
+#, gcc-internal-format, gfc-internal-format
+msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure"
+msgstr ""
+
+#: fortran/resolve.cc:10551
+#, gcc-internal-format, gfc-internal-format
+msgid "Data transfer element at %L cannot have procedure pointer components"
+msgstr ""
+
+#: fortran/resolve.cc:10558
+#, gcc-internal-format, gfc-internal-format
+msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure"
+msgstr ""
+
+#: fortran/resolve.cc:10569
+#, gcc-internal-format, gfc-internal-format
+msgid "Data transfer element at %L cannot have PRIVATE components"
+msgstr ""
+
+#: fortran/resolve.cc:10575
+#, gcc-internal-format, gfc-internal-format
+msgid "Data transfer element at %L cannot have PRIVATE components unless it is processed by a defined input/output procedure"
+msgstr ""
+
+#: fortran/resolve.cc:10593
+#, gcc-internal-format, gfc-internal-format
+msgid "Data transfer element at %L cannot be a full reference to an assumed-size array"
+msgstr ""
+
+#: fortran/resolve.cc:10650
+#, gcc-internal-format, gfc-internal-format
+msgid "Lock variable at %L must be a scalar of type LOCK_TYPE"
+msgstr ""
+
+#: fortran/resolve.cc:10660
+#, gcc-internal-format, gfc-internal-format
+msgid "Event variable at %L must be a scalar of type EVENT_TYPE"
+msgstr ""
+
+#: fortran/resolve.cc:10664
+#, gcc-internal-format, gfc-internal-format
+msgid "Event variable argument at %L must be a coarray or coindexed"
+msgstr ""
+
+#: fortran/resolve.cc:10667
+#, gcc-internal-format, gfc-internal-format
+msgid "Event variable argument at %L must be a coarray but not coindexed"
+msgstr ""
+
+#: fortran/resolve.cc:10674 fortran/resolve.cc:10796
+#, gcc-internal-format, gfc-internal-format
+msgid "STAT= argument at %L must be a scalar INTEGER variable"
+msgstr ""
+
+#: fortran/resolve.cc:10686 fortran/resolve.cc:10808
+#, gcc-internal-format, gfc-internal-format
+msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable"
+msgstr ""
+
+#: fortran/resolve.cc:10698
+#, gcc-internal-format, gfc-internal-format
+msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable"
+msgstr ""
+
+#: fortran/resolve.cc:10711
+#, gcc-internal-format, gfc-internal-format
+msgid "UNTIL_COUNT= argument at %L must be a scalar INTEGER expression"
+msgstr ""
+
+#: fortran/resolve.cc:10772
+#, gcc-internal-format, gfc-internal-format
+msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression"
+msgstr ""
+
+#: fortran/resolve.cc:10776 fortran/resolve.cc:10786
+#, gcc-internal-format, gfc-internal-format
+msgid "Imageset argument at %L must between 1 and num_images()"
+msgstr ""
+
+#: fortran/resolve.cc:10839
+#, gcc-internal-format, gfc-internal-format
+msgid "Statement at %L is not a valid branch target statement for the branch statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:10849
+#, gcc-internal-format, gfc-internal-format
+msgid "Branch at %L may result in an infinite loop"
+msgstr ""
+
+#. Note: A label at END CRITICAL does not leave the CRITICAL
+#. construct as END CRITICAL is still part of it.
+#: fortran/resolve.cc:10866 fortran/resolve.cc:10889
+#, gcc-internal-format, gfc-internal-format
+msgid "GOTO statement at %L leaves CRITICAL construct for label at %L"
+msgstr ""
+
+#: fortran/resolve.cc:10870 fortran/resolve.cc:10895
+#, gcc-internal-format, gfc-internal-format
+msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L"
+msgstr ""
+
+#. The label is not in an enclosing block, so illegal.  This was
+#. allowed in Fortran 66, so we allow it as extension.  No
+#. further checks are necessary in this case.
+#: fortran/resolve.cc:10910
+#, gcc-internal-format, gfc-internal-format
+msgid "Label at %L is not in the same block as the GOTO statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:10982
+#, gcc-internal-format, gfc-internal-format
+msgid "WHERE mask at %L has inconsistent shape"
+msgstr ""
+
+#: fortran/resolve.cc:10998
+#, gcc-internal-format, gfc-internal-format
+msgid "WHERE assignment target at %L has inconsistent shape"
+msgstr ""
+
+#: fortran/resolve.cc:11011 fortran/resolve.cc:11103
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L"
+msgstr ""
+
+#: fortran/resolve.cc:11021 fortran/resolve.cc:11113
+#, gcc-internal-format, gfc-internal-format
+msgid "Unsupported statement inside WHERE at %L"
+msgstr ""
+
+#: fortran/resolve.cc:11052
+#, gcc-internal-format, gfc-internal-format
+msgid "Assignment to a FORALL index variable at %L"
+msgstr ""
+
+#: fortran/resolve.cc:11061
+#, gcc-internal-format
+msgid "The FORALL with index %qs is not used on the left side of the assignment at %L and so might cause multiple assignment to this object"
+msgstr ""
+
+#: fortran/resolve.cc:11218
+#, gcc-internal-format, gfc-internal-format
+msgid "FORALL construct at %L"
+msgstr ""
+
+#: fortran/resolve.cc:11239
+#, gcc-internal-format, gfc-internal-format
+msgid "FORALL index-name at %L must be a scalar variable of type integer"
+msgstr ""
+
+#: fortran/resolve.cc:11249
+#, gcc-internal-format, gfc-internal-format
+msgid "An outer FORALL construct already has an index with this name %L"
+msgstr ""
+
+#: fortran/resolve.cc:11326
+#, gcc-internal-format, gfc-internal-format
+msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array"
+msgstr ""
+
+#: fortran/resolve.cc:11444
+#, gcc-internal-format
+msgid "gfc_resolve_blocks(): Bad block type"
+msgstr ""
+
+#: fortran/resolve.cc:11507
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
+msgstr ""
+
+#: fortran/resolve.cc:11568
+#, gcc-internal-format
+msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
+msgstr ""
+
+#: fortran/resolve.cc:11600
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure"
+msgstr ""
+
+#. F2008, C1283 (4).
+#: fortran/resolve.cc:11606
+#, gcc-internal-format, gfc-internal-format
+msgid "In a pure subprogram an INTENT(IN) dummy argument shall not be used as the expr at %L of an intrinsic assignment statement in which the variable is of a derived type if the derived type has a pointer component at any level of component selection."
+msgstr ""
+
+#: fortran/resolve.cc:11618
+#, gcc-internal-format, gfc-internal-format
+msgid "Assignment to coindexed variable at %L in a PURE procedure"
+msgstr ""
+
+#: fortran/resolve.cc:11650
+#, gcc-internal-format, gfc-internal-format
+msgid "Assignment to polymorphic coarray at %L is not permitted"
+msgstr ""
+
+#: fortran/resolve.cc:11654
+#, gcc-internal-format, gfc-internal-format
+msgid "Assignment to an allocatable polymorphic variable at %L"
+msgstr ""
+
+#: fortran/resolve.cc:11659
+#, gcc-internal-format
+msgid "Assignment to an allocatable polymorphic variable at %L requires %<-frealloc-lhs%>"
+msgstr ""
+
+#: fortran/resolve.cc:11666
+#, gcc-internal-format
+msgid "Nonallocatable variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for %<=%> operator"
+msgstr ""
+
+#: fortran/resolve.cc:11677
+#, gcc-internal-format, gfc-internal-format
+msgid "Coindexed variable must not have an allocatable ultimate component in assignment at %L"
+msgstr ""
+
+#: fortran/resolve.cc:12100
+#, gcc-internal-format, gfc-internal-format
+msgid "TODO: type-bound defined assignment(s) at %L not done because multiple part array references would occur in intermediate expressions."
+msgstr ""
+
+#. Even if standard does not support this feature, continue to build
+#. the two statements to avoid upsetting frontend_passes.c.
+#: fortran/resolve.cc:12404
+#, gcc-internal-format, gfc-internal-format
+msgid "Pointer procedure assignment at %L"
+msgstr ""
+
+#: fortran/resolve.cc:12416
+#, gcc-internal-format, gfc-internal-format
+msgid "The function result on the lhs of the assignment at %L must have the pointer attribute."
+msgstr ""
+
+#: fortran/resolve.cc:12501
+#, gcc-internal-format
+msgid "TEAM argument to %qs at %L must be a scalar expression of type TEAM_TYPE"
+msgstr ""
+
+#: fortran/resolve.cc:12692
+#, gcc-internal-format, gfc-internal-format
+msgid "TEAM NUMBER argument to FORM TEAM at %L must be a scalar INTEGER"
+msgstr ""
+
+#: fortran/resolve.cc:12728
+#, gcc-internal-format, gfc-internal-format
+msgid "ASSIGNED GOTO statement at %L requires a scalar INTEGER variable"
+msgstr ""
+
+#: fortran/resolve.cc:12732
+#, gcc-internal-format
+msgid "Variable %qs has not been assigned a target label at %L"
+msgstr ""
+
+#: fortran/resolve.cc:12743
+#, gcc-internal-format, gfc-internal-format
+msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier"
+msgstr ""
+
+#: fortran/resolve.cc:12781
+#, gcc-internal-format, gfc-internal-format
+msgid "Expected intrinsic assignment in OMP WORKSHARE at %L"
+msgstr ""
+
+#: fortran/resolve.cc:12823
+#, gcc-internal-format, gfc-internal-format
+msgid "ASSIGN statement at %L requires a scalar default INTEGER variable"
+msgstr ""
+
+#: fortran/resolve.cc:12870
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid NULL at %L"
+msgstr ""
+
+#: fortran/resolve.cc:12874
+#, gcc-internal-format, gfc-internal-format
+msgid "Arithmetic IF statement at %L requires a scalar REAL or INTEGER expression"
+msgstr ""
+
+#: fortran/resolve.cc:12935
+#, gcc-internal-format
+msgid "gfc_resolve_code(): No expression on DO WHILE"
+msgstr ""
+
+#: fortran/resolve.cc:12940
+#, gcc-internal-format, gfc-internal-format
+msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression"
+msgstr ""
+
+#: fortran/resolve.cc:13024
+#, gcc-internal-format, gfc-internal-format
+msgid "FORALL mask clause at %L requires a scalar LOGICAL expression"
+msgstr ""
+
+#: fortran/resolve.cc:13128
+#, gcc-internal-format
+msgid "gfc_resolve_code(): Bad statement code"
+msgstr ""
+
+#: fortran/resolve.cc:13149
+#, gcc-internal-format
+msgid "Using parameter %qs declared at %L is deprecated"
+msgstr ""
+
+#: fortran/resolve.cc:13243
+#, gcc-internal-format
+msgid "Variable %qs with binding label %qs at %L uses the same global identifier as entity at %L"
+msgstr ""
+
+#. This can only happen if the variable is defined in a module - if it
+#. isn't the same module, reject it.
+#: fortran/resolve.cc:13257
+#, gcc-internal-format
+msgid "Variable %qs from module %qs with binding label %qs at %L uses the same global identifier as entity at %L from module %qs"
+msgstr ""
+
+#. Print an error if the procedure is defined multiple times; we have to
+#. exclude references to the same procedure via module association or
+#. multiple checks for the same procedure.
+#: fortran/resolve.cc:13276
+#, gcc-internal-format
+msgid "Procedure %qs with binding label %qs at %L uses the same global identifier as entity at %L"
+msgstr ""
+
+#: fortran/resolve.cc:13362
+#, gcc-internal-format, gfc-internal-format
+msgid "String length at %L is too large"
+msgstr ""
+
+#: fortran/resolve.cc:13600
+#, gcc-internal-format
+msgid "Allocatable array %qs at %L must have a deferred shape or assumed rank"
+msgstr ""
+
+#: fortran/resolve.cc:13604
+#, gcc-internal-format
+msgid "Scalar object %qs at %L may not be ALLOCATABLE"
+msgstr ""
+
+#: fortran/resolve.cc:13612
+#, gcc-internal-format
+msgid "Array pointer %qs at %L must have a deferred shape or assumed rank"
+msgstr ""
+
+#: fortran/resolve.cc:13623
+#, gcc-internal-format
+msgid "Array %qs at %L cannot have a deferred shape"
+msgstr ""
+
+#: fortran/resolve.cc:13641
+#, gcc-internal-format
+msgid "Type %qs of CLASS variable %qs at %L is not extensible"
+msgstr ""
+
+#: fortran/resolve.cc:13653
+#, gcc-internal-format
+msgid "CLASS variable %qs at %L must be dummy, allocatable or pointer"
+msgstr ""
+
+#: fortran/resolve.cc:13686
+#, gcc-internal-format
+msgid "The type %qs cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L"
+msgstr ""
+
+#: fortran/resolve.cc:13708
+#, gcc-internal-format
+msgid "Implied SAVE for module variable %qs at %L, needed due to the default initialization"
+msgstr ""
+
+#: fortran/resolve.cc:13741
+#, gcc-internal-format
+msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
+msgstr ""
+
+#. F08:C541. The shape of an array defined in a main program or module
+#. * needs to be constant.
+#: fortran/resolve.cc:13777
+#, gcc-internal-format
+msgid "The module or main program array %qs at %L must have constant shape"
+msgstr ""
+
+#: fortran/resolve.cc:13802
+#, gcc-internal-format, gfc-internal-format
+msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER"
+msgstr ""
+
+#: fortran/resolve.cc:13823
+#, gcc-internal-format
+msgid "%qs at %L must have constant character length in this context"
+msgstr ""
+
+#: fortran/resolve.cc:13830
+#, gcc-internal-format
+msgid "COMMON variable %qs at %L must have constant character length"
+msgstr ""
+
+#: fortran/resolve.cc:13878
+#, gcc-internal-format
+msgid "Allocatable %qs at %L cannot have an initializer"
+msgstr ""
+
+#: fortran/resolve.cc:13881
+#, gcc-internal-format
+msgid "External %qs at %L cannot have an initializer"
+msgstr ""
+
+#: fortran/resolve.cc:13884
+#, gcc-internal-format
+msgid "Dummy %qs at %L cannot have an initializer"
+msgstr ""
+
+#: fortran/resolve.cc:13887
+#, gcc-internal-format
+msgid "Intrinsic %qs at %L cannot have an initializer"
+msgstr ""
+
+#: fortran/resolve.cc:13890
+#, gcc-internal-format
+msgid "Function result %qs at %L cannot have an initializer"
+msgstr ""
+
+#: fortran/resolve.cc:13893
+#, gcc-internal-format
+msgid "Automatic array %qs at %L cannot have an initializer"
+msgstr ""
+
+#: fortran/resolve.cc:13935
+#, gcc-internal-format, gfc-internal-format
+msgid "%s at %L"
+msgstr ""
+
+#: fortran/resolve.cc:13967
+#, gcc-internal-format
+msgid "Character-valued statement function %qs at %L must have constant length"
+msgstr ""
+
+#: fortran/resolve.cc:13990
+#, gcc-internal-format
+msgid "%qs is of a PRIVATE type and cannot be a dummy argument of %qs, which is PUBLIC at %L"
+msgstr ""
+
+#: fortran/resolve.cc:14012
+#, gcc-internal-format
+msgid "Procedure %qs in PUBLIC interface %qs at %L takes dummy arguments of %qs which is PRIVATE"
+msgstr ""
+
+#: fortran/resolve.cc:14030
+#, gcc-internal-format
+msgid "Function %qs at %L cannot have an initializer"
+msgstr ""
+
+#: fortran/resolve.cc:14042
+#, gcc-internal-format
+msgid "External object %qs at %L may not have an initializer"
+msgstr ""
+
+#: fortran/resolve.cc:14052
+#, gcc-internal-format
+msgid "ELEMENTAL function %qs at %L must have a scalar result"
+msgstr ""
+
+#: fortran/resolve.cc:14062
+#, gcc-internal-format
+msgid "Statement function %qs at %L may not have pointer or allocatable attribute"
+msgstr ""
+
+#: fortran/resolve.cc:14081
+#, gcc-internal-format
+msgid "CHARACTER(*) function %qs at %L cannot be array-valued"
+msgstr ""
+
+#: fortran/resolve.cc:14085
+#, gcc-internal-format
+msgid "CHARACTER(*) function %qs at %L cannot be pointer-valued"
+msgstr ""
+
+#: fortran/resolve.cc:14089
+#, gcc-internal-format
+msgid "CHARACTER(*) function %qs at %L cannot be pure"
+msgstr ""
+
+#: fortran/resolve.cc:14093
+#, gcc-internal-format
+msgid "CHARACTER(*) function %qs at %L cannot be recursive"
+msgstr ""
+
+#: fortran/resolve.cc:14106
+#, gcc-internal-format
+msgid "CHARACTER(*) function %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:14117
+#, gcc-internal-format
+msgid "Procedure pointer %qs at %L shall not be elemental"
+msgstr ""
+
+#: fortran/resolve.cc:14123
+#, gcc-internal-format
+msgid "Dummy procedure %qs at %L shall not be elemental"
+msgstr ""
+
+#: fortran/resolve.cc:14143
+#, gcc-internal-format
+msgid "Function result variable %qs at %L of elemental function %qs shall not have an ALLOCATABLE or POINTER attribute"
+msgstr ""
+
+#: fortran/resolve.cc:14200
+#, gcc-internal-format
+msgid "PROCEDURE attribute conflicts with SAVE attribute in %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:14206
+#, gcc-internal-format
+msgid "PROCEDURE attribute conflicts with INTENT attribute in %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:14212
+#, gcc-internal-format
+msgid "PROCEDURE attribute conflicts with RESULT attribute in %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:14220
+#, gcc-internal-format
+msgid "EXTERNAL attribute conflicts with FUNCTION attribute in %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:14226
+#, gcc-internal-format
+msgid "Procedure pointer result %qs at %L is missing the pointer attribute"
+msgstr ""
+
+#: fortran/resolve.cc:14269
+#, gcc-internal-format, gfc-internal-format
+msgid "Mismatch in ELEMENTAL attribute between MODULE PROCEDURE at %L and its interface in %s"
+msgstr ""
+
+#: fortran/resolve.cc:14277
+#, gcc-internal-format, gfc-internal-format
+msgid "Mismatch in PURE attribute between MODULE PROCEDURE at %L and its interface in %s"
+msgstr ""
+
+#: fortran/resolve.cc:14285
+#, gcc-internal-format, gfc-internal-format
+msgid "Mismatch in RECURSIVE attribute between MODULE PROCEDURE at %L and its interface in %s"
+msgstr ""
+
+#: fortran/resolve.cc:14294
+#, gcc-internal-format
+msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
+msgstr ""
+
+#: fortran/resolve.cc:14318
+#, gcc-internal-format
+msgid "Interface of %qs at %L must be explicit"
+msgstr ""
+
+#: fortran/resolve.cc:14388
+#, gcc-internal-format
+msgid "FINAL procedure %qs at %L is not a SUBROUTINE"
+msgstr ""
+
+#: fortran/resolve.cc:14397
+#, gcc-internal-format, gfc-internal-format
+msgid "FINAL procedure at %L must have exactly one argument"
+msgstr ""
+
+#: fortran/resolve.cc:14405 fortran/resolve.cc:14422
+#, gcc-internal-format
+msgid "Argument of FINAL procedure at %L must be of type %qs"
+msgstr ""
+
+#: fortran/resolve.cc:14413
+#, gcc-internal-format, gfc-internal-format
+msgid "FINAL procedure at %L with assumed rank argument must be the only finalizer with the same kind/type (F2018: C790)"
+msgstr ""
+
+#: fortran/resolve.cc:14430
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of FINAL procedure at %L must not be a POINTER"
+msgstr ""
+
+#: fortran/resolve.cc:14436
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE"
+msgstr ""
+
+#: fortran/resolve.cc:14442
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of FINAL procedure at %L must not be OPTIONAL"
+msgstr ""
+
+#: fortran/resolve.cc:14450
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)"
+msgstr ""
+
+#: fortran/resolve.cc:14459
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-scalar FINAL procedure at %L should have assumed shape argument"
+msgstr ""
+
+#: fortran/resolve.cc:14481
+#, gcc-internal-format
+msgid "FINAL procedure %qs declared at %L has the same rank (%d) as %qs"
+msgstr ""
+
+#: fortran/resolve.cc:14518
+#, gcc-internal-format
+msgid "Only array FINAL procedures declared for derived type %qs defined at %L, suggest also scalar one unless an assumed rank finalizer has been declared"
+msgstr ""
+
+#: fortran/resolve.cc:14559
+#, gcc-internal-format
+msgid "%qs and %qs cannot be mixed FUNCTION/SUBROUTINE for GENERIC %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:14595
+#, gcc-internal-format
+msgid "%qs and %qs for GENERIC %qs at %L are ambiguous"
+msgstr ""
+
+#: fortran/resolve.cc:14654
+#, gcc-internal-format
+msgid "Undefined specific binding %qs as target of GENERIC %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:14666
+#, gcc-internal-format
+msgid "GENERIC %qs at %L must target a specific binding, %qs is GENERIC, too"
+msgstr ""
+
+#: fortran/resolve.cc:14694
+#, gcc-internal-format
+msgid "GENERIC %qs at %L cannot overwrite specific binding with the same name"
+msgstr ""
+
+#: fortran/resolve.cc:14750
+#, gcc-internal-format, gfc-internal-format
+msgid "Type-bound operator at %L cannot be NOPASS"
+msgstr ""
+
+#: fortran/resolve.cc:14962
+#, gcc-internal-format
+msgid "%qs must be a module procedure or an external procedure with an explicit interface at %L"
+msgstr ""
+
+#: fortran/resolve.cc:15005
+#, gcc-internal-format
+msgid "Procedure %qs with PASS(%s) at %L has no argument %qs"
+msgstr ""
+
+#: fortran/resolve.cc:15019
+#, gcc-internal-format
+msgid "Procedure %qs with PASS at %L must have at least one argument"
+msgstr ""
+
+#: fortran/resolve.cc:15033 fortran/resolve.cc:15575
+#, gcc-internal-format
+msgid "Non-polymorphic passed-object dummy argument of %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:15042
+#, gcc-internal-format
+msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
+msgstr ""
+
+#: fortran/resolve.cc:15052
+#, gcc-internal-format
+msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
+msgstr ""
+
+#: fortran/resolve.cc:15094
+#, gcc-internal-format
+msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
+msgstr ""
+
+#: fortran/resolve.cc:15104
+#, gcc-internal-format
+msgid "Passed-object dummy argument of %qs at %L must be scalar"
+msgstr ""
+
+#: fortran/resolve.cc:15110
+#, gcc-internal-format
+msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
+msgstr ""
+
+#: fortran/resolve.cc:15116
+#, gcc-internal-format
+msgid "Passed-object dummy argument of %qs at %L must not be POINTER"
+msgstr ""
+
+#: fortran/resolve.cc:15145
+#, gcc-internal-format
+msgid "Procedure %qs at %L has the same name as a component of %qs"
+msgstr ""
+
+#: fortran/resolve.cc:15155
+#, gcc-internal-format
+msgid "Procedure %qs at %L has the same name as an inherited component of %qs"
+msgstr ""
+
+#: fortran/resolve.cc:15250
+#, gcc-internal-format
+msgid "Derived-type %qs declared at %L must be ABSTRACT because %qs is DEFERRED and not overridden"
+msgstr ""
+
+#: fortran/resolve.cc:15355
+#, gcc-internal-format
+msgid "Coarray component %qs at %L must be allocatable with deferred shape"
+msgstr ""
+
+#: fortran/resolve.cc:15364
+#, gcc-internal-format
+msgid "Component %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
+msgstr ""
+
+#: fortran/resolve.cc:15374
+#, gcc-internal-format
+msgid "Component %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar"
+msgstr ""
+
+#: fortran/resolve.cc:15399
+#, gcc-internal-format
+msgid "Component %qs at %L has the CONTIGUOUS attribute but is not an array pointer"
+msgstr ""
+
+#: fortran/resolve.cc:15410
+#, gcc-internal-format
+msgid "Component %qs of BIND(C) type at %L must have length one"
+msgstr ""
+
+#: fortran/resolve.cc:15508
+#, gcc-internal-format
+msgid "Procedure pointer component %qs with PASS(%s) at %L has no argument %qs"
+msgstr ""
+
+#: fortran/resolve.cc:15522
+#, gcc-internal-format
+msgid "Procedure pointer component %qs with PASS at %L must have at least one argument"
+msgstr ""
+
+#: fortran/resolve.cc:15538
+#, gcc-internal-format
+msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived type %qs"
+msgstr ""
+
+#: fortran/resolve.cc:15548
+#, gcc-internal-format
+msgid "Argument %qs of %qs with PASS(%s) at %L must be scalar"
+msgstr ""
+
+#: fortran/resolve.cc:15557
+#, gcc-internal-format
+msgid "Argument %qs of %qs with PASS(%s) at %L may not have the POINTER attribute"
+msgstr ""
+
+#: fortran/resolve.cc:15566
+#, gcc-internal-format
+msgid "Argument %qs of %qs with PASS(%s) at %L may not be ALLOCATABLE"
+msgstr ""
+
+#: fortran/resolve.cc:15608
+#, gcc-internal-format
+msgid "Component %qs of %qs at %L has the same name as an inherited type-bound procedure"
+msgstr ""
+
+#: fortran/resolve.cc:15621
+#, gcc-internal-format
+msgid "Character length of component %qs needs to be a constant specification expression at %L"
+msgstr ""
+
+#: fortran/resolve.cc:15632
+#, gcc-internal-format
+msgid "Character length expression of component %qs at %L must be of INTEGER type, found %s"
+msgstr ""
+
+#: fortran/resolve.cc:15645
+#, gcc-internal-format
+msgid "Character component %qs of %qs at %L with deferred length must be a POINTER or ALLOCATABLE"
+msgstr ""
+
+#: fortran/resolve.cc:15678
+#, gcc-internal-format
+msgid "the component %qs is a PRIVATE type and cannot be a component of %qs, which is PUBLIC at %L"
+msgstr ""
+
+#: fortran/resolve.cc:15686
+#, gcc-internal-format, gfc-internal-format
+msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s"
+msgstr ""
+
+#: fortran/resolve.cc:15695
+#, gcc-internal-format, gfc-internal-format
+msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute"
+msgstr ""
+
+#: fortran/resolve.cc:15781
+#, gcc-internal-format, gfc-internal-format
+msgid "Conflicting initializers in union at %L and %L"
+msgstr ""
+
+#: fortran/resolve.cc:15826
+#, gcc-internal-format
+msgid "As extending type %qs at %L has a coarray component, parent type %qs shall also have one"
+msgstr ""
+
+#: fortran/resolve.cc:15839
+#, gcc-internal-format
+msgid "Non-extensible derived-type %qs at %L must not be ABSTRACT"
+msgstr ""
+
+#: fortran/resolve.cc:15903
+#, gcc-internal-format
+msgid "Parameterized type %qs does not have a component corresponding to parameter %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:15936
+#, gcc-internal-format
+msgid "Generic name %qs of function %qs at %L being the same name as derived type at %L"
+msgstr ""
+
+#: fortran/resolve.cc:15950
+#, gcc-internal-format
+msgid "Derived type %qs at %L has not been declared"
+msgstr ""
+
+#: fortran/resolve.cc:16018
+#, gcc-internal-format
+msgid "Assumed size array %qs in namelist %qs at %L is not allowed"
+msgstr ""
+
+#: fortran/resolve.cc:16024
+#, gcc-internal-format
+msgid "NAMELIST array object %qs with assumed shape in namelist %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16030
+#, gcc-internal-format
+msgid "NAMELIST array object %qs with nonconstant shape in namelist %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16038
+#, gcc-internal-format
+msgid "NAMELIST object %qs with nonconstant character length in namelist %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16055
+#, gcc-internal-format
+msgid "NAMELIST object %qs was declared PRIVATE and cannot be member of PUBLIC namelist %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16077
+#, gcc-internal-format
+msgid "NAMELIST object %qs has use-associated PRIVATE components and cannot be member of namelist %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16088
+#, gcc-internal-format
+msgid "NAMELIST object %qs has PRIVATE components and cannot be a member of PUBLIC namelist %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16115
+#, gcc-internal-format
+msgid "PROCEDURE attribute conflicts with NAMELIST attribute in %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16134
+#, gcc-internal-format
+msgid "Parameter array %qs at %L cannot be automatic or of deferred shape"
+msgstr ""
+
+#: fortran/resolve.cc:16150
+#, gcc-internal-format
+msgid "Implicitly typed PARAMETER %qs at %L doesn't match a later IMPLICIT type"
+msgstr ""
+
+#: fortran/resolve.cc:16161
+#, gcc-internal-format, gfc-internal-format
+msgid "Incompatible derived type in PARAMETER at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16169
+#, gcc-internal-format
+msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
+msgstr ""
+
+#: fortran/resolve.cc:16221
+#, gcc-internal-format
+msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
+msgstr ""
+
+#: fortran/resolve.cc:16233
+#, gcc-internal-format
+msgid "The AUTOMATIC object %qs at %L must not have the SAVE attribute or be a variable declared in the main program, a module or a submodule(F08/C513)"
+msgstr ""
+
+#: fortran/resolve.cc:16240
+#, gcc-internal-format
+msgid "The object %qs at %L with ASSUMED type parameters must be a dummy or a SELECT TYPE selector(F08/4.2)"
+msgstr ""
+
+#: fortran/resolve.cc:16299
+#, gcc-internal-format, gfc-internal-format
+msgid "Sorry, allocatable/pointer components in polymorphic (CLASS) type coarrays at %L are unsupported"
+msgstr ""
+
+#: fortran/resolve.cc:16312
+#, gcc-internal-format
+msgid "%<omp_all_memory%>, declared at %L, may only be used in the OpenMP DEPEND clause"
+msgstr ""
+
+#: fortran/resolve.cc:16370
+#, gcc-internal-format, gfc-internal-format
+msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16373
+#, gcc-internal-format, gfc-internal-format
+msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16470
+#, gcc-internal-format
+msgid "%qs at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array"
+msgstr ""
+
+#: fortran/resolve.cc:16491
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad specification for assumed size array at %L"
+msgstr ""
+
+#: fortran/resolve.cc:16505
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed size array at %L must be a dummy argument"
+msgstr ""
+
+#: fortran/resolve.cc:16508
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed shape array at %L must be a dummy argument"
+msgstr ""
+
+#: fortran/resolve.cc:16518
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank array at %L must be a dummy argument"
+msgstr ""
+
+#: fortran/resolve.cc:16525
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-rank array at %L may not have the VALUE or CODIMENSION attribute"
+msgstr ""
+
+#: fortran/resolve.cc:16538
+#, gcc-internal-format, gfc-internal-format
+msgid "Symbol at %L is not a DUMMY variable"
+msgstr ""
+
+#: fortran/resolve.cc:16544
+#, gcc-internal-format
+msgid "%qs at %L cannot have the VALUE attribute because it is not a dummy argument"
+msgstr ""
+
+#: fortran/resolve.cc:16554
+#, gcc-internal-format
+msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
+msgstr ""
+
+#: fortran/resolve.cc:16563
+#, gcc-internal-format
+msgid "C interoperable character dummy variable %qs at %L with VALUE attribute must have length one"
+msgstr ""
+
+#: fortran/resolve.cc:16576 fortran/resolve.cc:16753
+#, gcc-internal-format
+msgid "The derived type %qs at %L is of type %qs, which has not been defined"
+msgstr ""
+
+#: fortran/resolve.cc:16590
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be a dummy argument"
+msgstr ""
+
+#: fortran/resolve.cc:16599
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s at %L with NO_ARG_CHECK attribute shall be of type TYPE(*) or of an numeric intrinsic type"
+msgstr ""
+
+#: fortran/resolve.cc:16608
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
+msgstr ""
+
+#: fortran/resolve.cc:16616
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s at %L with NO_ARG_CHECK attribute may not have the INTENT(OUT) attribute"
+msgstr ""
+
+#: fortran/resolve.cc:16623
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s at %L with NO_ARG_CHECK attribute shall either be a scalar or an assumed-size array"
+msgstr ""
+
+#: fortran/resolve.cc:16643
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed type of variable %s at %L is only permitted for dummy variables"
+msgstr ""
+
+#: fortran/resolve.cc:16650
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type variable %s at %L may not have the ALLOCATABLE, CODIMENSION, POINTER or VALUE attribute"
+msgstr ""
+
+#: fortran/resolve.cc:16657
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type variable %s at %L may not have the INTENT(OUT) attribute"
+msgstr ""
+
+#: fortran/resolve.cc:16664
+#, gcc-internal-format, gfc-internal-format
+msgid "Assumed-type variable %s at %L shall not be an explicit-shape array"
+msgstr ""
+
+#: fortran/resolve.cc:16690
+#, gcc-internal-format
+msgid "Variable %qs at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope"
+msgstr ""
+
+#: fortran/resolve.cc:16700
+#, gcc-internal-format
+msgid "BIND(C) Variable %qs at %L must have length one"
+msgstr ""
+
+#: fortran/resolve.cc:16779
+#, gcc-internal-format
+msgid "PUBLIC %s %qs at %L of PRIVATE derived type %qs"
+msgstr ""
+
+#: fortran/resolve.cc:16794
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray"
+msgstr ""
+
+#: fortran/resolve.cc:16807
+#, gcc-internal-format, gfc-internal-format
+msgid "Variable %s at %L of type EVENT_TYPE or with subcomponent of type EVENT_TYPE must be a coarray"
+msgstr ""
+
+#: fortran/resolve.cc:16825
+#, gcc-internal-format
+msgid "The INTENT(OUT) dummy argument %qs at %L is ASSUMED SIZE and so cannot have a default initializer"
+msgstr ""
+
+#: fortran/resolve.cc:16837
+#, gcc-internal-format
+msgid "Dummy argument %qs at %L of LOCK_TYPE shall not be INTENT(OUT)"
+msgstr ""
+
+#: fortran/resolve.cc:16846
+#, gcc-internal-format
+msgid "Dummy argument %qs at %L of EVENT_TYPE shall not be INTENT(OUT)"
+msgstr ""
+
+#: fortran/resolve.cc:16859
+#, gcc-internal-format
+msgid "Function result %qs at %L shall not be a coarray or have a coarray component"
+msgstr ""
+
+#: fortran/resolve.cc:16868
+#, gcc-internal-format
+msgid "Variable %qs at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray"
+msgstr ""
+
+#: fortran/resolve.cc:16881
+#, gcc-internal-format
+msgid "Variable %qs at %L with coarray component shall be a nonpointer, nonallocatable scalar, which is not a coarray"
+msgstr ""
+
+#: fortran/resolve.cc:16897
+#, gcc-internal-format
+msgid "Variable %qs at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument"
+msgstr ""
+
+#: fortran/resolve.cc:16905
+#, gcc-internal-format
+msgid "Coarray variable %qs at %L shall not have codimensions with deferred shape"
+msgstr ""
+
+#: fortran/resolve.cc:16912
+#, gcc-internal-format
+msgid "Allocatable coarray variable %qs at %L must have deferred shape"
+msgstr ""
+
+#: fortran/resolve.cc:16925
+#, gcc-internal-format
+msgid "Variable %qs at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components"
+msgstr ""
+
+#: fortran/resolve.cc:16934
+#, gcc-internal-format
+msgid "Coarray dummy variable %qs at %L not allowed in BIND(C) procedure %qs"
+msgstr ""
+
+#: fortran/resolve.cc:16950
+#, gcc-internal-format
+msgid "LOGICAL dummy argument %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
+msgstr ""
+
+#: fortran/resolve.cc:16956
+#, gcc-internal-format
+msgid "LOGICAL result variable %qs at %L with non-C_Bool kind in BIND(C) procedure %qs"
+msgstr ""
+
+#: fortran/resolve.cc:16981
+#, gcc-internal-format
+msgid "Namelist %qs cannot be an argument to subroutine or function at %L"
+msgstr ""
+
+#: fortran/resolve.cc:17041
+#, gcc-internal-format, gfc-internal-format
+msgid "Threadprivate at %L isn't SAVEd"
+msgstr ""
+
+#: fortran/resolve.cc:17053
+#, gcc-internal-format
+msgid "!$OMP DECLARE TARGET variable %qs at %L isn't SAVEd"
+msgstr ""
+
+#: fortran/resolve.cc:17160
+#, gcc-internal-format, gfc-internal-format
+msgid "Expecting definable entity near %L"
+msgstr ""
+
+#: fortran/resolve.cc:17168
+#, gcc-internal-format
+msgid "BLOCK DATA element %qs at %L must be in COMMON"
+msgstr ""
+
+#: fortran/resolve.cc:17175
+#, gcc-internal-format
+msgid "DATA array %qs at %L must be specified in a previous declaration"
+msgstr ""
+
+#: fortran/resolve.cc:17182
+#, gcc-internal-format
+msgid "DATA element %qs at %L cannot have a coindex"
+msgstr ""
+
+#: fortran/resolve.cc:17198
+#, gcc-internal-format
+msgid "DATA element %qs at %L is a pointer and so must be a full array"
+msgstr ""
+
+#: fortran/resolve.cc:17205
+#, gcc-internal-format, gfc-internal-format
+msgid "DATA object near %L has the pointer attribute and the corresponding DATA value is not a valid initial-data-target"
+msgstr ""
+
+#: fortran/resolve.cc:17214
+#, gcc-internal-format
+msgid "DATA element %qs at %L cannot have the ALLOCATABLE attribute"
+msgstr ""
+
+#: fortran/resolve.cc:17276
+#, gcc-internal-format, gfc-internal-format
+msgid "Nonconstant array section at %L in DATA statement"
+msgstr ""
+
+#: fortran/resolve.cc:17289
+#, gcc-internal-format, gfc-internal-format
+msgid "DATA statement at %L has more variables than values"
+msgstr ""
+
+#: fortran/resolve.cc:17365
+#, gcc-internal-format, gfc-internal-format
+msgid "Non-constant character length at %L in DATA statement"
+msgstr ""
+
+#: fortran/resolve.cc:17393
+#, gcc-internal-format, gfc-internal-format
+msgid "start of implied-do loop at %L could not be simplified to a constant value"
+msgstr ""
+
+#: fortran/resolve.cc:17401
+#, gcc-internal-format, gfc-internal-format
+msgid "end of implied-do loop at %L could not be simplified to a constant value"
+msgstr ""
+
+#: fortran/resolve.cc:17409
+#, gcc-internal-format, gfc-internal-format
+msgid "step of implied-do loop at %L could not be simplified to a constant value"
+msgstr ""
+
+#: fortran/resolve.cc:17416
+#, gcc-internal-format, gfc-internal-format
+msgid "step of implied-do loop at %L shall not be zero"
+msgstr ""
+
+#: fortran/resolve.cc:17541
+#, gcc-internal-format, gfc-internal-format
+msgid "DATA statement at %L has more values than variables"
+msgstr ""
+
+#: fortran/resolve.cc:17707
+#, gcc-internal-format, gfc-internal-format
+msgid "Label %d at %L defined but not used"
+msgstr ""
+
+#: fortran/resolve.cc:17713
+#, gcc-internal-format, gfc-internal-format
+msgid "Label %d at %L defined but cannot be used"
+msgstr ""
+
+#: fortran/resolve.cc:17797
+#, gcc-internal-format
+msgid "Derived type variable %qs at %L must have SEQUENCE attribute to be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.cc:17806
+#, gcc-internal-format
+msgid "Derived type variable %qs at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.cc:17814
+#, gcc-internal-format
+msgid "Derived type variable %qs at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON"
+msgstr ""
+
+#: fortran/resolve.cc:17830
+#, gcc-internal-format
+msgid "Derived type variable %qs at %L with pointer component(s) cannot be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.cc:17933
+#, gcc-internal-format, gfc-internal-format
+msgid "Syntax error in EQUIVALENCE statement at %L"
+msgstr ""
+
+#: fortran/resolve.cc:17948
+#, gcc-internal-format, gfc-internal-format
+msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute"
+msgstr ""
+
+#: fortran/resolve.cc:17973
+#, gcc-internal-format
+msgid "COMMON block member %qs at %L cannot be an EQUIVALENCE object in the pure procedure %qs"
+msgstr ""
+
+#: fortran/resolve.cc:17982
+#, gcc-internal-format
+msgid "Named constant %qs at %L cannot be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.cc:18057
+#, gcc-internal-format
+msgid "Array %qs at %L with non-constant bounds cannot be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.cc:18068
+#, gcc-internal-format
+msgid "Structure component %qs at %L cannot be an EQUIVALENCE object"
+msgstr ""
+
+#: fortran/resolve.cc:18079
+#, gcc-internal-format, gfc-internal-format
+msgid "Substring at %L has length zero"
+msgstr ""
+
+#: fortran/resolve.cc:18110
+#, gcc-internal-format
+msgid "Self reference in character length expression for %qs at %L"
+msgstr ""
+
+#: fortran/resolve.cc:18177
+#, gcc-internal-format
+msgid "PUBLIC function %qs at %L of PRIVATE type %qs"
+msgstr ""
+
+#: fortran/resolve.cc:18190
+#, gcc-internal-format
+msgid "ENTRY %qs at %L has no IMPLICIT type"
+msgstr ""
+
+#: fortran/resolve.cc:18212
+#, gcc-internal-format
+msgid "User operator procedure %qs at %L must be a FUNCTION"
+msgstr ""
+
+#: fortran/resolve.cc:18222
+#, gcc-internal-format
+msgid "User operator procedure %qs at %L cannot be assumed character length"
+msgstr ""
+
+#: fortran/resolve.cc:18230
+#, gcc-internal-format
+msgid "User operator procedure %qs at %L must have at least one argument"
+msgstr ""
+
+#: fortran/resolve.cc:18244
+#, gcc-internal-format, gfc-internal-format
+msgid "First argument of operator interface at %L cannot be optional"
+msgstr ""
+
+#: fortran/resolve.cc:18262
+#, gcc-internal-format, gfc-internal-format
+msgid "Second argument of operator interface at %L cannot be optional"
+msgstr ""
+
+#: fortran/resolve.cc:18269
+#, gcc-internal-format, gfc-internal-format
+msgid "Operator interface at %L must have, at most, two arguments"
+msgstr ""
+
+#: fortran/resolve.cc:18351
+#, gcc-internal-format
+msgid "Contained procedure %qs at %L of a PURE procedure must also be PURE"
+msgstr ""
+
+#: fortran/scanner.cc:309
+#, gcc-internal-format
+msgid "Include directory %qs: %s"
+msgstr ""
+
+#: fortran/scanner.cc:313
+#, gcc-internal-format
+msgid "Nonexistent include directory %qs"
+msgstr ""
+
+#: fortran/scanner.cc:318
+#, gcc-internal-format
+msgid "%qs is not a directory"
+msgstr ""
+
+#: fortran/scanner.cc:792
+#, gcc-internal-format, gfc-internal-format
+msgid "!$ACC at %C starts a commented line as it neither is followed by a space nor is a continuation line"
+msgstr ""
+
+#: fortran/scanner.cc:832
+#, gcc-internal-format, gfc-internal-format
+msgid "!$OMP at %C starts a commented line as it neither is followed by a space nor is a continuation line"
+msgstr ""
+
+#: fortran/scanner.cc:1011
+#, gcc-internal-format, gfc-internal-format
+msgid "Ignoring '!$omx' vendor-extension sentinel at %C"
+msgstr ""
+
+#: fortran/scanner.cc:1323 fortran/scanner.cc:1526
+#, gcc-internal-format, gfc-internal-format
+msgid "Line truncated at %L"
+msgstr ""
+
+#: fortran/scanner.cc:1387 fortran/scanner.cc:1616
+#, gcc-internal-format, gfc-internal-format
+msgid "Limit of %d continuations exceeded in statement at %C"
+msgstr ""
+
+#: fortran/scanner.cc:1466 fortran/scanner.cc:1575
+#, gcc-internal-format, gfc-internal-format
+msgid "Wrong OpenACC continuation at %C: expected !$ACC, got !$OMP"
+msgstr ""
+
+#: fortran/scanner.cc:1468 fortran/scanner.cc:1577
+#, gcc-internal-format, gfc-internal-format
+msgid "Wrong OpenMP continuation at %C: expected !$OMP, got !$ACC"
+msgstr ""
+
+#: fortran/scanner.cc:1481
+#, gcc-internal-format
+msgid "Missing %<&%> in continued character constant at %C"
+msgstr ""
+
+#: fortran/scanner.cc:1767
+#, gcc-internal-format, gfc-internal-format
+msgid "Nonconforming tab character at %C"
+msgstr ""
+
+#: fortran/scanner.cc:1778
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid character 0x%s at %C"
+msgstr ""
+
+#: fortran/scanner.cc:1867 fortran/scanner.cc:1870
+#, gcc-internal-format
+msgid "%<&%> not allowed by itself in line %d"
+msgstr ""
+
+#: fortran/scanner.cc:1960
+#, gcc-internal-format, gfc-internal-format
+msgid "Nonconforming tab character in column %d of line %d"
+msgstr ""
+
+#: fortran/scanner.cc:2189
+#, gcc-internal-format
+msgid "file %qs left but not entered"
+msgstr ""
+
+#: fortran/scanner.cc:2231
+#, gcc-internal-format
+msgid "Illegal preprocessor directive"
+msgstr ""
+
+#: fortran/scanner.cc:2554
+#, gcc-internal-format
+msgid "File %qs is being included recursively"
+msgstr ""
+
+#: fortran/scanner.cc:2566
+#, gcc-internal-format
+msgid "Cannot open file %qs"
+msgstr ""
+
+#: fortran/scanner.cc:2576
+#, gcc-internal-format
+msgid "Cannot open included file %qs"
+msgstr ""
+
+#: fortran/scanner.cc:2578
+#, gcc-internal-format
+msgid "Cannot open pre-included file %qs"
+msgstr ""
+
+#: fortran/scanner.cc:2586 fortran/scanner.cc:2588
+#, gcc-internal-format
+msgid "Included file %qs is not a regular file"
+msgstr ""
+
+#: fortran/simplify.cc:92
+#, gcc-internal-format, gfc-internal-format
+msgid "Result of %s overflows its kind at %L"
+msgstr ""
+
+#: fortran/simplify.cc:97
+#, gcc-internal-format, gfc-internal-format
+msgid "Result of %s underflows its kind at %L"
+msgstr ""
+
+#: fortran/simplify.cc:102
+#, gcc-internal-format, gfc-internal-format
+msgid "Result of %s is NaN at %L"
+msgstr ""
+
+#: fortran/simplify.cc:106
+#, gcc-internal-format, gfc-internal-format
+msgid "Result of %s gives range error for its kind at %L"
+msgstr ""
+
+#: fortran/simplify.cc:129
+#, gcc-internal-format, gfc-internal-format
+msgid "KIND parameter of %s at %L must be an initialization expression"
+msgstr ""
+
+#: fortran/simplify.cc:137
+#, gcc-internal-format, gfc-internal-format
+msgid "Invalid KIND parameter of %s at %L"
+msgstr ""
+
+#: fortran/simplify.cc:788
+#, gcc-internal-format
+msgid "gfc_simplify_abs(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:809
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of %s function at %L is negative"
+msgstr ""
+
+#: fortran/simplify.cc:816
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of %s function at %L outside of range [0,127]"
+msgstr ""
+
+#: fortran/simplify.cc:834
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of %s function at %L is too large for the collating sequence of kind %d"
+msgstr ""
+
+#: fortran/simplify.cc:871
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of ACOS at %L must be between -1 and 1"
+msgstr ""
+
+#: fortran/simplify.cc:885
+#, gcc-internal-format
+msgid "in gfc_simplify_acos(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:904
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of ACOSH at %L must not be less than 1"
+msgstr ""
+
+#: fortran/simplify.cc:919
+#, gcc-internal-format
+msgid "in gfc_simplify_acosh(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:1148
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of ASIN at %L must be between -1 and 1"
+msgstr ""
+
+#: fortran/simplify.cc:1162
+#, gcc-internal-format
+msgid "in gfc_simplify_asin(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:1197
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of ACOSD at %L must be between -1 and 1"
+msgstr ""
+
+#: fortran/simplify.cc:1223
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of ASIND at %L must be between -1 and 1"
+msgstr ""
+
+#: fortran/simplify.cc:1275
+#, gcc-internal-format
+msgid "in gfc_simplify_asinh(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:1303
+#, gcc-internal-format
+msgid "in gfc_simplify_atan(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:1324
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of ATANH at %L must be inside the range -1 to 1"
+msgstr ""
+
+#: fortran/simplify.cc:1338
+#, gcc-internal-format
+msgid "in gfc_simplify_atanh(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:1355
+#, gcc-internal-format, gfc-internal-format
+msgid "If first argument of ATAN2 at %L is zero, then the second argument must not be zero"
+msgstr ""
+
+#: fortran/simplify.cc:1447
+#, gcc-internal-format, gfc-internal-format
+msgid "Result of BESSEL_YN is -INF at %L"
+msgstr ""
+
+#: fortran/simplify.cc:1813
+#, gcc-internal-format
+msgid "gfc_simplify_dcmplx(): Bad type (x)"
+msgstr ""
+
+#: fortran/simplify.cc:1832
+#, gcc-internal-format
+msgid "gfc_simplify_dcmplx(): Bad type (y)"
+msgstr ""
+
+#: fortran/simplify.cc:1899
+#, gcc-internal-format, gfc-internal-format
+msgid "If first argument of ATAN2D at %L is zero, then the second argument must not be zero"
+msgstr ""
+
+#: fortran/simplify.cc:1934
+#, gcc-internal-format
+msgid "in gfc_simplify_cos(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:2402
+#, gcc-internal-format
+msgid "gfc_simplify_dim(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:2976
+#, gcc-internal-format
+msgid "in gfc_simplify_exp(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:3194
+#, gcc-internal-format
+msgid "gfc_simplify_floor(): Bad kind"
+msgstr ""
+
+#: fortran/simplify.cc:3307
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of IACHAR at %L must be of length one"
+msgstr ""
+
+#: fortran/simplify.cc:3315
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of IACHAR function at %L outside of range 0..127"
+msgstr ""
+
+#: fortran/simplify.cc:3443
+#, gcc-internal-format, gfc-internal-format
+msgid "Sum of second and third arguments of IBITS exceeds bit size at %L"
+msgstr ""
+
+#: fortran/simplify.cc:3467
+#, gcc-internal-format
+msgid "IBITS: Bad bit"
+msgstr ""
+
+#: fortran/simplify.cc:3528
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of ICHAR at %L must be of length one"
+msgstr ""
+
+#. Left shift, as in SHIFTL.
+#: fortran/simplify.cc:3840 fortran/simplify.cc:3848
+#, gcc-internal-format, gfc-internal-format
+msgid "Second argument of %s is negative at %L"
+msgstr ""
+
+#: fortran/simplify.cc:3860
+#, gcc-internal-format, gfc-internal-format
+msgid "Magnitude of second argument of %s exceeds bit size at %L"
+msgstr ""
+
+#: fortran/simplify.cc:3988
+#, gcc-internal-format, gfc-internal-format
+msgid "Magnitude of second argument of ISHFTC exceeds BIT_SIZE of first argument at %C"
+msgstr ""
+
+#: fortran/simplify.cc:3991
+#, gcc-internal-format, gfc-internal-format
+msgid "Absolute value of SHIFT shall be less than or equal to SIZE at %C"
+msgstr ""
+
+#: fortran/simplify.cc:4338 fortran/simplify.cc:4471
+#, gcc-internal-format, gfc-internal-format
+msgid "DIM argument at %L is out of bounds"
+msgstr ""
+
+#: fortran/simplify.cc:4729
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of LOG at %L cannot be less than or equal to zero"
+msgstr ""
+
+#: fortran/simplify.cc:4742
+#, gcc-internal-format, gfc-internal-format
+msgid "Complex argument of LOG at %L cannot be zero"
+msgstr ""
+
+#: fortran/simplify.cc:4753
+#, gcc-internal-format
+msgid "gfc_simplify_log: bad type"
+msgstr ""
+
+#: fortran/simplify.cc:4770
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of LOG10 at %L cannot be less than or equal to zero"
+msgstr ""
+
+#: fortran/simplify.cc:5123
+#, gcc-internal-format
+msgid "simplify_min_max(): Bad type in arglist"
+msgstr ""
+
+#: fortran/simplify.cc:6045 fortran/simplify.cc:6053
+#, gcc-internal-format
+msgid "Argument %qs of MOD at %L shall not be zero"
+msgstr ""
+
+#: fortran/simplify.cc:6059
+#, gcc-internal-format
+msgid "gfc_simplify_mod(): Bad arguments"
+msgstr ""
+
+#: fortran/simplify.cc:6097 fortran/simplify.cc:6105
+#, gcc-internal-format
+msgid "Argument %qs of MODULO at %L shall not be zero"
+msgstr ""
+
+#: fortran/simplify.cc:6111
+#, gcc-internal-format
+msgid "gfc_simplify_modulo(): Bad arguments"
+msgstr ""
+
+#: fortran/simplify.cc:6183
+#, gcc-internal-format, gfc-internal-format
+msgid "Result of NEAREST is NaN at %L"
+msgstr ""
+
+#: fortran/simplify.cc:6760
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument NCOPIES of REPEAT intrinsic is negative at %L"
+msgstr ""
+
+#: fortran/simplify.cc:6816
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument NCOPIES of REPEAT intrinsic is too large at %L"
+msgstr ""
+
+#: fortran/simplify.cc:6853
+#, gcc-internal-format, gfc-internal-format
+msgid "Evaluation of string longer than 2**28 at %L deferred to runtime, expect bugs"
+msgstr ""
+
+#: fortran/simplify.cc:6911
+#, gcc-internal-format, gfc-internal-format
+msgid "The SHAPE array for the RESHAPE intrinsic at %L has a negative value %d for dimension %d"
+msgstr ""
+
+#: fortran/simplify.cc:6936
+#, gcc-internal-format, gfc-internal-format
+msgid "Shapes of ORDER at %L and SHAPE at %L are different"
+msgstr ""
+
+#: fortran/simplify.cc:6950
+#, gcc-internal-format, gfc-internal-format
+msgid "Sizes of ORDER at %L and SHAPE at %L are different"
+msgstr ""
+
+#: fortran/simplify.cc:6965
+#, gcc-internal-format, gfc-internal-format
+msgid "Element with a value of %d in ORDER at %L must be in the range [1, ..., %d] for the RESHAPE intrinsic near %L"
+msgstr ""
+
+#: fortran/simplify.cc:6976
+#, gcc-internal-format, gfc-internal-format
+msgid "ORDER at %L is not a permutation of the size of SHAPE at %L"
+msgstr ""
+
+#: fortran/simplify.cc:7038
+#, gcc-internal-format, gfc-internal-format
+msgid "Reshaped array too large at %C"
+msgstr ""
+
+#: fortran/simplify.cc:7159
+#, gcc-internal-format, gfc-internal-format
+msgid "Result of SCALE overflows its kind at %L"
+msgstr ""
+
+#: fortran/simplify.cc:7634
+#, gcc-internal-format, gfc-internal-format
+msgid "DIM argument (%d) to intrinsic SIZE at %L out of range (1:%d)"
+msgstr ""
+
+#: fortran/simplify.cc:7759
+#, gcc-internal-format
+msgid "Bad type in gfc_simplify_sign"
+msgstr ""
+
+#: fortran/simplify.cc:7788
+#, gcc-internal-format
+msgid "in gfc_simplify_sin(): Bad type"
+msgstr ""
+
+#: fortran/simplify.cc:7926 fortran/simplify.cc:8209
+#, gcc-internal-format
+msgid "Failure getting length of a constant array."
+msgstr ""
+
+#: fortran/simplify.cc:7936
+#, gcc-internal-format
+msgid "The number of elements (%d) in the array constructor at %L requires an increase of the allowed %d upper limit.  See %<-fmax-array-constructor%> option."
+msgstr ""
+
+#: fortran/simplify.cc:8003
+#, gcc-internal-format, gfc-internal-format
+msgid "Simplification of SPREAD at %C not yet implemented"
+msgstr ""
+
+#: fortran/simplify.cc:8027
+#, gcc-internal-format, gfc-internal-format
+msgid "Argument of SQRT at %L has a negative value"
+msgstr ""
+
+#: fortran/simplify.cc:8043
+#, gcc-internal-format, gfc-internal-format
+msgid "invalid argument of SQRT at %L"
+msgstr ""
+
+#: fortran/simplify.cc:8390
+#, gcc-internal-format, gfc-internal-format
+msgid "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY lower bound is %ld)"
+msgstr ""
+
+#: fortran/simplify.cc:8413
+#, gcc-internal-format, gfc-internal-format
+msgid "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY upper bound is %ld)"
+msgstr ""
+
+#: fortran/simplify.cc:8913
+#, gcc-internal-format
+msgid "Character %qs in string at %L cannot be converted into character kind %d"
+msgstr ""
+
+#: fortran/st.cc:303
+#, gcc-internal-format
+msgid "gfc_free_statement(): Bad statement"
+msgstr ""
+
+#: fortran/symbol.cc:141
+#, gcc-internal-format, gfc-internal-format
+msgid "IMPLICIT NONE (type) statement at %L following an IMPLICIT statement"
+msgstr ""
+
+#: fortran/symbol.cc:178
+#, gcc-internal-format
+msgid "Letter %qc already set in IMPLICIT statement at %C"
+msgstr ""
+
+#: fortran/symbol.cc:200
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot specify IMPLICIT at %C after IMPLICIT NONE"
+msgstr ""
+
+#: fortran/symbol.cc:210
+#, gcc-internal-format
+msgid "Letter %qc already has an IMPLICIT type at %C"
+msgstr ""
+
+#: fortran/symbol.cc:234
+#, gcc-internal-format
+msgid "Option %<-fallow-leading-underscore%> is for use only by gfortran developers, and should not be used for implicitly typed variables"
+msgstr ""
+
+#: fortran/symbol.cc:239
+#, gcc-internal-format
+msgid "gfc_get_default_type(): Bad symbol %qs"
+msgstr ""
+
+#: fortran/symbol.cc:309
+#, gcc-internal-format
+msgid "gfc_set_default_type(): symbol already has a type"
+msgstr ""
+
+#: fortran/symbol.cc:319
+#, gcc-internal-format
+msgid "Symbol %qs at %L has no IMPLICIT type; did you mean %qs?"
+msgstr ""
+
+#: fortran/symbol.cc:323
+#, gcc-internal-format
+msgid "Symbol %qs at %L has no IMPLICIT type"
+msgstr ""
+
+#. BIND(C) variables should not be implicitly declared.
+#: fortran/symbol.cc:343
+#, gcc-internal-format
+msgid "Implicitly declared BIND(C) variable %qs at %L may not be C interoperable"
+msgstr ""
+
+#. Dummy args to a BIND(C) routine may not be interoperable if
+#. they are implicitly typed.
+#: fortran/symbol.cc:359
+#, gcc-internal-format
+msgid "Implicitly declared variable %qs at %L may not be C interoperable but it is a dummy argument to the BIND(C) procedure %qs at %L"
+msgstr ""
+
+#: fortran/symbol.cc:400
+#, gcc-internal-format
+msgid "Function result %qs at %L has no IMPLICIT type"
+msgstr ""
+
+#: fortran/symbol.cc:420 fortran/symbol.cc:925 fortran/symbol.cc:1802
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute conflicts with %s attribute at %L"
+msgstr ""
+
+#: fortran/symbol.cc:426 fortran/symbol.cc:928
+#, gcc-internal-format
+msgid "%s attribute conflicts with %s attribute in %qs at %L"
+msgstr ""
+
+#: fortran/symbol.cc:508
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute not allowed in BLOCK DATA program unit at %L"
+msgstr ""
+
+#: fortran/symbol.cc:533
+#, gcc-internal-format, gfc-internal-format
+msgid "Namelist group name at %L cannot have the SAVE attribute"
+msgstr ""
+
+#: fortran/symbol.cc:552
+#, gcc-internal-format
+msgid "internal procedure %qs at %L conflicts with DUMMY argument"
+msgstr ""
+
+#: fortran/symbol.cc:585
+#, gcc-internal-format, gfc-internal-format
+msgid "Procedure pointer at %C"
+msgstr ""
+
+#: fortran/symbol.cc:797
+#, gcc-internal-format, gfc-internal-format
+msgid "%s attribute applied to %s %s at %L"
+msgstr ""
+
+#: fortran/symbol.cc:804
+#, gcc-internal-format, gfc-internal-format
+msgid "BIND(C) applied to %s %s at %L"
+msgstr ""
+
+#: fortran/symbol.cc:972
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot change attributes of USE-associated symbol at %L"
+msgstr ""
+
+#: fortran/symbol.cc:975
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot change attributes of USE-associated symbol %s at %L"
+msgstr ""
+
+#: fortran/symbol.cc:991
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate %s attribute specified at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1033
+#, gcc-internal-format, gfc-internal-format
+msgid "ALLOCATABLE specified outside of INTERFACE body at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1050
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate AUTOMATIC attribute specified at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1074
+#, gcc-internal-format
+msgid "CODIMENSION specified for %qs outside its INTERFACE body at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1100
+#, gcc-internal-format
+msgid "DIMENSION specified for %qs outside its INTERFACE body at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1263
+#, gcc-internal-format, gfc-internal-format
+msgid "Cray Pointee at %L appears in multiple pointer() statements"
+msgstr ""
+
+#: fortran/symbol.cc:1282
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate PROTECTED attribute specified at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1315
+#, gcc-internal-format, gfc-internal-format
+msgid "SAVE attribute at %L cannot be specified in a PURE procedure"
+msgstr ""
+
+#: fortran/symbol.cc:1327
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate SAVE attribute specified at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1347
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate VALUE attribute specified at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1366
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate VOLATILE attribute specified at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1378
+#, gcc-internal-format, gfc-internal-format
+msgid "VOLATILE attribute at %L cannot be specified in a PURE procedure"
+msgstr ""
+
+#: fortran/symbol.cc:1399
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate ASYNCHRONOUS attribute specified at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1798
+#, gcc-internal-format
+msgid "%s attribute of %qs conflicts with %s attribute at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1835
+#, gcc-internal-format, gfc-internal-format
+msgid ""
+"%s procedure at %L is already declared as %s procedure. \n"
+"F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block. Please add any other kind of executable statement before it. FIXME"
+msgstr ""
+
+#: fortran/symbol.cc:1843
+#, gcc-internal-format, gfc-internal-format
+msgid "%s procedure at %L is already declared as %s procedure"
+msgstr ""
+
+#: fortran/symbol.cc:1878
+#, gcc-internal-format, gfc-internal-format
+msgid "INTENT (%s) conflicts with INTENT(%s) at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1902
+#, gcc-internal-format, gfc-internal-format
+msgid "ACCESS specification at %L was already specified"
+msgstr ""
+
+#: fortran/symbol.cc:1919
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate BIND attribute specified at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1926
+#, gcc-internal-format, gfc-internal-format
+msgid "BIND(C) at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1942
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate EXTENDS attribute specified at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1946
+#, gcc-internal-format, gfc-internal-format
+msgid "EXTENDS at %L"
+msgstr ""
+
+#: fortran/symbol.cc:1972
+#, gcc-internal-format
+msgid "Symbol %qs at %L already has an explicit interface"
+msgstr ""
+
+#: fortran/symbol.cc:1979
+#, gcc-internal-format
+msgid "%qs at %L has attributes specified outside its INTERFACE body"
+msgstr ""
+
+#: fortran/symbol.cc:2017
+#, gcc-internal-format
+msgid "Symbol %qs at %L conflicts with symbol from module %qs, use-associated at %L"
+msgstr ""
+
+#: fortran/symbol.cc:2021 fortran/symbol.cc:2024
+#, gcc-internal-format
+msgid "Symbol %qs at %L already has basic type of %s"
+msgstr ""
+
+#: fortran/symbol.cc:2031
+#, gcc-internal-format
+msgid "Procedure %qs at %L may not have basic type of %s"
+msgstr ""
+
+#: fortran/symbol.cc:2043
+#, gcc-internal-format
+msgid "Symbol %qs at %L cannot have a type"
+msgstr ""
+
+#: fortran/symbol.cc:2288
+#, gcc-internal-format
+msgid "Component %qs at %C already in the parent type at %L"
+msgstr ""
+
+#: fortran/symbol.cc:2373
+#, gcc-internal-format
+msgid "Symbol %qs at %C is ambiguous"
+msgstr ""
+
+#: fortran/symbol.cc:2405
+#, gcc-internal-format
+msgid "Derived type %qs at %C is being used before it is defined"
+msgstr ""
+
+#: fortran/symbol.cc:2615
+#, gcc-internal-format
+msgid "Component %qs at %C is a PRIVATE component of %qs"
+msgstr ""
+
+#: fortran/symbol.cc:2636
+#, gcc-internal-format
+msgid "%qs at %C is not a member of the %qs structure; did you mean %qs?"
+msgstr ""
+
+#: fortran/symbol.cc:2640
+#, gcc-internal-format
+msgid "%qs at %C is not a member of the %qs structure"
+msgstr ""
+
+#: fortran/symbol.cc:2804
+#, gcc-internal-format, gfc-internal-format
+msgid "Duplicate statement label %d at %L and %L"
+msgstr ""
+
+#: fortran/symbol.cc:2815
+#, gcc-internal-format, gfc-internal-format
+msgid "Label %d at %C already referenced as branch target"
+msgstr ""
+
+#: fortran/symbol.cc:2825
+#, gcc-internal-format, gfc-internal-format
+msgid "Label %d at %C already referenced as a format label"
+msgstr ""
+
+#: fortran/symbol.cc:2832
+#, gcc-internal-format, gfc-internal-format
+msgid "DO termination statement which is not END DO or CONTINUE with label %d at %C"
+msgstr ""
+
+#: fortran/symbol.cc:2873
+#, gcc-internal-format, gfc-internal-format
+msgid "Label %d at %C previously used as a FORMAT label"
+msgstr ""
+
+#: fortran/symbol.cc:2882
+#, gcc-internal-format, gfc-internal-format
+msgid "Label %d at %C previously used as branch target"
+msgstr ""
+
+#: fortran/symbol.cc:2889
+#, gcc-internal-format, gfc-internal-format
+msgid "Shared DO termination label %d at %C"
+msgstr ""
+
+#: fortran/symbol.cc:2893
+#, gcc-internal-format, gfc-internal-format
+msgid "Labeled DO statement at %L"
+msgstr ""
+
+#: fortran/symbol.cc:3284
+#, gcc-internal-format
+msgid "Name %qs at %C is an ambiguous reference to %qs from module %qs"
+msgstr ""
+
+#: fortran/symbol.cc:3287
+#, gcc-internal-format
+msgid "Name %qs at %C is an ambiguous reference to %qs from current program unit"
+msgstr ""
+
+#. Symbol is from another namespace.
+#: fortran/symbol.cc:3532
+#, gcc-internal-format
+msgid "Symbol %qs at %C has already been host associated"
+msgstr ""
+
+#: fortran/symbol.cc:4586
+#, gcc-internal-format
+msgid "verify_bind_c_derived_type(): Given symbol is unexpectedly NULL"
+msgstr ""
+
+#: fortran/symbol.cc:4599
+#, gcc-internal-format
+msgid "Derived type %qs declared at %L must have the BIND attribute to be C interoperable"
+msgstr ""
+
+#: fortran/symbol.cc:4617
+#, gcc-internal-format
+msgid "Derived type %qs with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor"
+msgstr ""
+
+#: fortran/symbol.cc:4638
+#, gcc-internal-format
+msgid "Component %qs at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type %qs at %L"
+msgstr ""
+
+#: fortran/symbol.cc:4648
+#, gcc-internal-format
+msgid "Procedure pointer component %qs at %L cannot be a member of the BIND(C) derived type %qs at %L"
+msgstr ""
+
+#: fortran/symbol.cc:4659
+#, gcc-internal-format
+msgid "Component %qs at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type %qs at %L"
+msgstr ""
+
+#: fortran/symbol.cc:4698
+#, gcc-internal-format
+msgid "Component %qs in derived type %qs at %L may not be C interoperable, even though derived type %qs is BIND(C)"
+msgstr ""
+
+#: fortran/symbol.cc:4708
+#, gcc-internal-format
+msgid "Component %qs in derived type %qs at %L may not be C interoperable"
+msgstr ""
+
+#: fortran/symbol.cc:4720
+#, gcc-internal-format
+msgid "Derived type %qs at %L cannot have the SEQUENCE attribute because it is BIND(C)"
+msgstr ""
+
+#: fortran/symbol.cc:5224 fortran/symbol.cc:5229
+#, gcc-internal-format
+msgid "Symbol %qs is used before it is typed at %L"
+msgstr ""
+
+#: fortran/target-memory.cc:137
+#, gcc-internal-format
+msgid "Invalid expression in gfc_element_size."
+msgstr ""
+
+#: fortran/target-memory.cc:361
+#, gcc-internal-format
+msgid "Invalid expression in gfc_target_encode_expr."
+msgstr ""
+
+#: fortran/target-memory.cc:637
+#, gcc-internal-format
+msgid "Invalid expression in gfc_target_interpret_expr."
+msgstr ""
+
+#: fortran/target-memory.cc:710
+#, gcc-internal-format, gfc-internal-format
+msgid "Overlapping unequal initializers in EQUIVALENCE at %L"
+msgstr ""
+
+#: fortran/target-memory.cc:713
+#, gcc-internal-format, gfc-internal-format
+msgid "Overlapping unequal initializers in EQUIVALENCE at %C"
+msgstr ""
+
+#: fortran/trans-array.cc:2340 fortran/trans-expr.cc:9859
+#, gcc-internal-format, gfc-internal-format
+msgid "The structure constructor at %C has been finalized. This feature was removed by f08/0011. Use -std=f2018 or -std=gnu to eliminate the finalization."
+msgstr ""
+
+#. Problems occur when we get something like
+#. integer :: a(lots) = (/(i, i=1, lots)/)
+#: fortran/trans-array.cc:6620
+#, gcc-internal-format
+msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See %<-fmax-array-constructor%> option"
+msgstr ""
+
+#: fortran/trans-array.cc:8876
+#, gcc-internal-format
+msgid "Creating array temporary at %L for argument %qs"
+msgstr ""
+
+#: fortran/trans-array.cc:12255
+#, gcc-internal-format, gfc-internal-format
+msgid "bad expression type during walk (%d)"
+msgstr ""
+
+#: fortran/trans-common.cc:411
+#, gcc-internal-format
+msgid "Named COMMON block %qs at %L shall be of the same size as elsewhere (%wu vs %wu bytes)"
+msgstr ""
+
+#: fortran/trans-common.cc:819
+#, gcc-internal-format
+msgid "get_mpz(): Not an integer constant"
+msgstr ""
+
+#: fortran/trans-common.cc:847
+#, gcc-internal-format
+msgid "element_number(): Bad dimension type"
+msgstr ""
+
+#: fortran/trans-common.cc:917
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad array reference at %L"
+msgstr ""
+
+#: fortran/trans-common.cc:925
+#, gcc-internal-format, gfc-internal-format
+msgid "Illegal reference type at %L as EQUIVALENCE object"
+msgstr ""
+
+#: fortran/trans-common.cc:965
+#, gcc-internal-format
+msgid "Inconsistent equivalence rules involving %qs at %L and %qs at %L"
+msgstr ""
+
+#. Aligning this field would misalign a previous field.
+#: fortran/trans-common.cc:1154
+#, gcc-internal-format
+msgid "The equivalence set for variable %qs declared at %L violates alignment requirements"
+msgstr ""
+
+#: fortran/trans-common.cc:1219
+#, gcc-internal-format
+msgid "Equivalence for %qs does not match ordering of COMMON %qs at %L"
+msgstr ""
+
+#: fortran/trans-common.cc:1234
+#, gcc-internal-format
+msgid "The equivalence set for %qs cause an invalid extension to COMMON %qs at %L"
+msgstr ""
+
+#: fortran/trans-common.cc:1250
+#, gcc-internal-format
+msgid "Padding of %d bytes required before %qs in COMMON %qs at %L; reorder elements or use %<-fno-align-commons%>"
+msgstr ""
+
+#: fortran/trans-common.cc:1256
+#, gcc-internal-format
+msgid "Padding of %d bytes required before %qs in COMMON at %L; reorder elements or use %<-fno-align-commons%>"
+msgstr ""
+
+#: fortran/trans-common.cc:1277
+#, gcc-internal-format
+msgid "COMMON %qs at %L does not exist"
+msgstr ""
+
+#: fortran/trans-common.cc:1286
+#, gcc-internal-format
+msgid "COMMON %qs at %L requires %d bytes of padding; reorder elements or use %<-fno-align-commons%>"
+msgstr ""
+
+#: fortran/trans-common.cc:1291
+#, gcc-internal-format
+msgid "COMMON at %L requires %d bytes of padding; reorder elements or use %<-fno-align-commons%>"
+msgstr ""
+
+#: fortran/trans-const.cc:336
+#, gcc-internal-format, gfc-internal-format
+msgid "Assigning value other than 0 or 1 to LOGICAL has undefined result at %L"
+msgstr ""
+
+#: fortran/trans-const.cc:402
+#, gcc-internal-format, gfc-internal-format
+msgid "non-constant initialization expression at %L"
+msgstr ""
+
+#: fortran/trans-decl.cc:763
+#, gcc-internal-format
+msgid "Array %qs at %L is larger than limit set by %<-fmax-stack-var-size=%>, moved from stack to static storage. This makes the procedure unsafe when called recursively, or concurrently from multiple threads. Consider increasing the %<-fmax-stack-var-size=%> limit (or use %<-frecursive%>, which implies unlimited %<-fmax-stack-var-size%>) - or change the code to use an ALLOCATABLE array. If the variable is never accessed concurrently, this warning can be ignored, and the variable could also be declared with the SAVE attribute."
+msgstr ""
+
+#: fortran/trans-decl.cc:1800
+#, gcc-internal-format, gfc-internal-format
+msgid "%s at %L has no default type"
+msgstr ""
+
+#: fortran/trans-decl.cc:1804
+#, gcc-internal-format
+msgid "intrinsic variable which isn't a procedure"
+msgstr ""
+
+#: fortran/trans-decl.cc:4565 fortran/trans-decl.cc:7958
+#, gcc-internal-format
+msgid "Return value of function %qs at %L not set"
+msgstr ""
+
+#: fortran/trans-decl.cc:5110
+#, gcc-internal-format
+msgid "Deferred type parameter not yet supported"
+msgstr ""
+
+#: fortran/trans-decl.cc:5225
+#, gcc-internal-format
+msgid "Sorry, !$OMP allocate for COMMON block variable %qs at %L not supported"
+msgstr ""
+
+#: fortran/trans-decl.cc:5232
+#, gcc-internal-format
+msgid "Sorry, !$OMP allocate for variable %qs at %L with SAVE attribute not yet implemented"
+msgstr ""
+
+#: fortran/trans-decl.cc:5438
+#, gcc-internal-format
+msgid "backend decl for module variable %qs already exists"
+msgstr ""
+
+#: fortran/trans-decl.cc:5451
+#, gcc-internal-format
+msgid "Unused PRIVATE module variable %qs declared at %L"
+msgstr ""
+
+#: fortran/trans-decl.cc:6073
+#, gcc-internal-format
+msgid "Symbol %qs at %L has the WEAK attribute but is a dummy argument"
+msgstr ""
+
+#: fortran/trans-decl.cc:6076
+#, gcc-internal-format
+msgid "Symbol %qs at %L has the WEAK attribute but is a local variable"
+msgstr ""
+
+#: fortran/trans-decl.cc:6091
+#, gcc-internal-format
+msgid "Dummy argument %qs at %L was declared INTENT(OUT) but was not set"
+msgstr ""
+
+#: fortran/trans-decl.cc:6097
+#, gcc-internal-format
+msgid "Derived-type dummy argument %qs at %L was declared INTENT(OUT) but was not set and does not have a default initializer"
+msgstr ""
+
+#: fortran/trans-decl.cc:6108 fortran/trans-decl.cc:6259
+#, gcc-internal-format
+msgid "Unused dummy argument %qs at %L"
+msgstr ""
+
+#: fortran/trans-decl.cc:6124
+#, gcc-internal-format
+msgid "Unused module variable %qs which has been explicitly imported at %L"
+msgstr ""
+
+#: fortran/trans-decl.cc:6143
+#, gcc-internal-format
+msgid "Unused variable %qs declared at %L"
+msgstr ""
+
+#: fortran/trans-decl.cc:6192
+#, gcc-internal-format
+msgid "Unused parameter %qs declared at %L"
+msgstr ""
+
+#: fortran/trans-decl.cc:6196
+#, gcc-internal-format
+msgid "Unused parameter %qs which has been explicitly imported at %L"
+msgstr ""
+
+#: fortran/trans-decl.cc:6226
+#, gcc-internal-format
+msgid "Return value %qs of function %qs declared at %L not set"
+msgstr ""
+
+#: fortran/trans-decl.cc:6823
+#, gcc-internal-format, gfc-internal-format
+msgid "Sorry, !$ACC DECLARE at %L is not allowed in BLOCK construct"
+msgstr ""
+
+#: fortran/trans-expr.cc:1134
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot compute the length of the char array at %L."
+msgstr ""
+
+#: fortran/trans-expr.cc:1942
+#, gcc-internal-format, gfc-internal-format
+msgid "Code for reallocating the allocatable variable at %L will be added"
+msgstr ""
+
+#: fortran/trans-expr.cc:2278
+#, gcc-internal-format, gfc-internal-format
+msgid "Sorry, coindexed access to an unlimited polymorphic object at %L is not supported"
+msgstr ""
+
+#: fortran/trans-expr.cc:2287
+#, gcc-internal-format, gfc-internal-format
+msgid "Sorry, coindexed access to an unlimited polymorphic component at %L is not supported"
+msgstr ""
+
+#: fortran/trans-expr.cc:3986
+#, gcc-internal-format
+msgid "Unknown intrinsic op"
+msgstr ""
+
+#: fortran/trans-expr.cc:5505
+#, gcc-internal-format, gfc-internal-format
+msgid "Unknown argument list function at %L"
+msgstr ""
+
+#: fortran/trans-expr.cc:10437
+#, gcc-internal-format, gfc-internal-format
+msgid "If bounds remapping is specified at %L, the pointer target shall not be NULL"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:944
+#, gcc-internal-format
+msgid "Intrinsic function %qs (%d) not recognized"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:2449 fortran/trans-intrinsic.cc:2998
+#: fortran/trans-intrinsic.cc:3201
+#, gcc-internal-format
+msgid "%<dim%> argument of %s intrinsic at %L is not a valid dimension index"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:12383 fortran/trans-stmt.cc:1104
+#, gcc-internal-format, gfc-internal-format
+msgid "Sorry, the event component of derived type at %L is not yet supported"
+msgstr ""
+
+#: fortran/trans-intrinsic.cc:12390
+#, gcc-internal-format, gfc-internal-format
+msgid "The event variable at %L shall not be coindexed"
+msgstr ""
+
+#: fortran/trans-io.cc:1993
+#, gcc-internal-format
+msgid "build_dt: format with namelist"
+msgstr ""
+
+#: fortran/trans-io.cc:2534
+#, gcc-internal-format, gfc-internal-format
+msgid "Bad IO basetype (%d)"
+msgstr ""
+
+#: fortran/trans-openmp.cc:881 fortran/trans-openmp.cc:1398
+#, gcc-internal-format
+msgid "Sorry, polymorphic arrays not yet supported for firstprivate"
+msgstr ""
+
+#: fortran/trans-openmp.cc:1552
+#, gcc-internal-format
+msgid "implicit mapping of assumed size array %qD"
+msgstr ""
+
+#: fortran/trans-openmp.cc:3296
+#, gcc-internal-format
+msgid "optional class parameter"
+msgstr ""
+
+#: fortran/trans-openmp.cc:3712
+#, gcc-internal-format
+msgid "unhandled expression type"
+msgstr ""
+
+#: fortran/trans-openmp.cc:3992
+#, gcc-internal-format
+msgid "unhandled expression"
+msgstr ""
+
+#: fortran/trans-openmp.cc:4114
+#, gcc-internal-format
+msgid "%<uses_allocators%> clause with traits and memory spaces"
+msgstr ""
+
+#: fortran/trans-openmp.cc:5038
+#, gcc-internal-format
+msgid "%<!$OMP %s%> at %L requires %<-fopenmp-allocators%>"
+msgstr ""
+
+#: fortran/trans-openmp.cc:5041
+#, gcc-internal-format
+msgid "All files that might deallocate such a variable must be compiled with %<-fopenmp-allocators%>"
+msgstr ""
+
+#: fortran/trans-openmp.cc:5044
+#, gcc-internal-format
+msgid "This includes explicit DEALLOCATE, reallocation on intrinsic assignment, INTENT(OUT) for allocatable dummy arguments, and reallocation of allocatable components allocated with an OpenMP allocator"
+msgstr ""
+
+#: fortran/trans-openmp.cc:5621 fortran/trans-openmp.cc:5641
+#, gcc-internal-format
+msgid "non-rectangular loop nest with non-constant step for %qs"
+msgstr ""
+
+#: fortran/trans-openmp.cc:5643
+#, gcc-internal-format
+msgid "Used here"
+msgstr ""
+
+#: fortran/trans-openmp.cc:7165
+#, gcc-internal-format
+msgid "%qs specified in 'allocate' clause at %L but not in an explicit privatization clause"
+msgstr ""
+
+#: fortran/trans-openmp.cc:8065
+#, gcc-internal-format
+msgid "gfc_trans_omp_workshare(): Bad statement code"
+msgstr ""
+
+#: fortran/trans-openmp.cc:8368
+#, gcc-internal-format, gfc-internal-format
+msgid "The base name for 'declare variant' must be specified at %L "
+msgstr ""
+
+#: fortran/trans-openmp.cc:8378
+#, gcc-internal-format, gfc-internal-format
+msgid "The base name at %L does not match the name of the current procedure"
+msgstr ""
+
+#: fortran/trans-openmp.cc:8381
+#, gcc-internal-format, gfc-internal-format
+msgid "The base name at %L must not be an entry name"
+msgstr ""
+
+#: fortran/trans-openmp.cc:8384
+#, gcc-internal-format, gfc-internal-format
+msgid "The base name at %L must not be a generic name"
+msgstr ""
+
+#: fortran/trans-openmp.cc:8387
+#, gcc-internal-format, gfc-internal-format
+msgid "The base name at %L must not be a procedure pointer"
+msgstr ""
+
+#: fortran/trans-openmp.cc:8390
+#, gcc-internal-format, gfc-internal-format
+msgid "The base procedure at %L must have an explicit interface"
+msgstr ""
+
+#: fortran/trans-openmp.cc:8503
+#, gcc-internal-format
+msgid "Cannot find symbol %qs"
+msgstr ""
+
+#: fortran/trans-openmp.cc:8514
+#, gcc-internal-format
+msgid "variant %qs at %L is not a function or subroutine"
+msgstr ""
+
+#: fortran/trans-openmp.cc:8528
+#, gcc-internal-format
+msgid "variant %qs and base %qs at %L have incompatible types: %s"
+msgstr ""
+
+#: fortran/trans-stmt.cc:576
+#, gcc-internal-format, gfc-internal-format
+msgid "An alternate return at %L without a * dummy argument"
+msgstr ""
+
+#: fortran/trans-stmt.cc:908
+#, gcc-internal-format, gfc-internal-format
+msgid "Sorry, the lock component of derived type at %L is not yet supported"
+msgstr ""
+
+#: fortran/trans-stmt.cc:1367
+#, gcc-internal-format, gfc-internal-format
+msgid "Sorry, only support for integer kind %d implemented for image-set at %L"
+msgstr ""
+
+#: fortran/trans-stmt.cc:3710
+#, gcc-internal-format
+msgid "gfc_trans_select(): Bad type for case expr."
+msgstr ""
+
+#: fortran/trans-types.cc:537
+#, gcc-internal-format
+msgid "%<-fconvert=r16_ieee%> or %<-fconvert=r16_ibm%> not supported on this architecture"
+msgstr ""
+
+#: fortran/trans-types.cc:550
+#, gcc-internal-format
+msgid "INTEGER(KIND=8) is not available for %<-fdefault-integer-8%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:559
+#, gcc-internal-format
+msgid "INTEGER(KIND=8) is not available for %<-finteger-4-integer-8%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:578
+#, gcc-internal-format
+msgid "REAL(KIND=8) is not available for %<-fdefault-real-8%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:586
+#, gcc-internal-format
+msgid "REAL(KIND=10) is not available for %<-fdefault-real-10%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:594
+#, gcc-internal-format
+msgid "REAL(KIND=16) is not available for %<-fdefault-real-16%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:602
+#, gcc-internal-format
+msgid "REAL(KIND=8) is not available for %<-freal-4-real-8%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:610
+#, gcc-internal-format
+msgid "REAL(KIND=10) is not available for %<-freal-4-real-10%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:618
+#, gcc-internal-format
+msgid "REAL(KIND=16) is not available for %<-freal-4-real-16%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:649
+#, gcc-internal-format
+msgid "REAL(KIND=4) is not available for %<-freal-8-real-4%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:657
+#, gcc-internal-format
+msgid "REAL(KIND=10) is not available for %<-freal-8-real-10%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:665
+#, gcc-internal-format
+msgid "REAL(KIND=10) is not available for %<-freal-8-real-16%> option"
+msgstr ""
+
+#: fortran/trans-types.cc:807
+#, gcc-internal-format
+msgid "gfc_validate_kind(): Got bad type"
+msgstr ""
+
+#: fortran/trans-types.cc:811
+#, gcc-internal-format
+msgid "gfc_validate_kind(): Got bad kind"
+msgstr ""
+
+#: fortran/trans.cc:2683
+#, gcc-internal-format
+msgid "gfc_trans_code(): Bad statement code"
+msgstr ""
+
+#: go/gofrontend/embed.cc:278
+#, gcc-internal-format
+msgid "invalid embedcfg: not a JSON object"
+msgstr ""
+
+#: go/gofrontend/embed.cc:285
+#, gcc-internal-format
+msgid "invalid embedcfg: missing Patterns"
+msgstr ""
+
+#: go/gofrontend/embed.cc:290
+#, gcc-internal-format
+msgid "invalid embedcfg: Patterns is not a JSON object"
+msgstr ""
+
+#: go/gofrontend/embed.cc:297
+#, gcc-internal-format
+msgid "invalid embedcfg: missing Files"
+msgstr ""
+
+#: go/gofrontend/embed.cc:302
+#, gcc-internal-format
+msgid "invalid embedcfg: Files is not a JSON object"
+msgstr ""
+
+#: go/gofrontend/embed.cc:312
+#, gcc-internal-format
+msgid "invalid embedcfg: Patterns entry is not an array"
+msgstr ""
+
+#: go/gofrontend/embed.cc:324
+#, gcc-internal-format
+msgid "invalid embedcfg: duplicate Patterns entry"
+msgstr ""
+
+#: go/gofrontend/embed.cc:336
+#, gcc-internal-format
+msgid "invalid embedcfg: Files entry is not a string"
+msgstr ""
+
+#: go/gofrontend/embed.cc:354
+#, gcc-internal-format
+msgid "empty file"
+msgstr ""
+
+#: go/gofrontend/embed.cc:392 go/gofrontend/embed.cc:521
+#, gcc-internal-format
+msgid "expected %<\"%>"
+msgstr ""
+
+#: go/gofrontend/embed.cc:475
+#, gcc-internal-format
+msgid "expected %<,%> or %<]%>"
+msgstr ""
+
+#: go/gofrontend/embed.cc:507
+#, gcc-internal-format
+msgid "invalid JSON syntax"
+msgstr ""
+
+#: go/gofrontend/embed.cc:539 go/gofrontend/embed.cc:582
+#: go/gofrontend/embed.cc:616
+#, gcc-internal-format
+msgid "unterminated string"
+msgstr "დაუსრულებელი სტრიქონი"
+
+#: go/gofrontend/embed.cc:596
+#, gcc-internal-format
+msgid "invalid hex digit"
+msgstr ""
+
+#: go/gofrontend/embed.cc:605
+#, gcc-internal-format
+msgid "unrecognized string escape"
+msgstr ""
+
+#: go/gofrontend/embed.cc:626
+#, gcc-internal-format
+msgid "extraneous data at end of file"
+msgstr ""
+
+#: go/gofrontend/embed.cc:646
+#, gcc-internal-format
+msgid "unexpected EOF"
+msgstr ""
+
+#: lto/lto-common.cc:2030
+#, gcc-internal-format
+msgid "bytecode stream: garbage at the end of symbols section"
+msgstr ""
+
+#: lto/lto-common.cc:2057
+#, gcc-internal-format
+msgid "could not parse hex number"
+msgstr ""
+
+#: lto/lto-common.cc:2089
+#, gcc-internal-format, gfc-internal-format
+msgid "unexpected file name %s in linker resolution file. Expected %s"
+msgstr ""
+
+#: lto/lto-common.cc:2098
+#, gcc-internal-format
+msgid "could not parse file offset"
+msgstr ""
+
+#: lto/lto-common.cc:2101
+#, gcc-internal-format
+msgid "unexpected offset"
+msgstr ""
+
+#: lto/lto-common.cc:2122
+#, gcc-internal-format
+msgid "invalid line in the resolution file"
+msgstr ""
+
+#: lto/lto-common.cc:2144
+#, gcc-internal-format
+msgid "invalid resolution in the resolution file"
+msgstr ""
+
+#: lto/lto-common.cc:2150
+#, gcc-internal-format
+msgid "resolution sub id %wx not in object file"
+msgstr ""
+
+#: lto/lto-common.cc:2267
+#, gcc-internal-format
+msgid "bytecode stream in file %qs generated with GCC compiler older than 10.0"
+msgstr ""
+
+#: lto/lto-common.cc:2287
+#, gcc-internal-format
+msgid "cannot read %<LTO_section_decls%> from %s"
+msgstr ""
+
+#: lto/lto-common.cc:2408
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot open %s"
+msgstr ""
+
+#: lto/lto-common.cc:2429
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot map %s"
+msgstr ""
+
+#: lto/lto-common.cc:2440
+#, gcc-internal-format, gfc-internal-format
+msgid "Cannot read %s"
+msgstr ""
+
+#: lto/lto-common.cc:2757
+#, gcc-internal-format
+msgid "could not open symbol resolution file: %m"
+msgstr ""
+
+#: lto/lto-common.cc:2882
+#, gcc-internal-format, gfc-internal-format
+msgid "missing resolution data for %s"
+msgstr ""
+
+#: lto/lto-common.cc:2919
+#, gcc-internal-format
+msgid "errors during merging of translation units"
+msgstr ""
+
+#: lto/lto-dump.cc:256
+#, gcc-internal-format
+msgid "Level not found, use none, slim, blocks, vops."
+msgstr ""
+
+#: lto/lto-dump.cc:270
+#, gcc-internal-format
+msgid "Function not found."
+msgstr ""
+
+#: lto/lto-dump.cc:349 lto/lto-dump.cc:359
+#, gcc-internal-format
+msgid "Not configured with %<--enable-gather-detailed-mem-stats%>."
+msgstr ""
+
+#: lto/lto-lang.cc:324
+#, gcc-internal-format
+msgid "%s:%s: %E: %E"
+msgstr ""
+
+#: lto/lto-lang.cc:879
+#, gcc-internal-format
+msgid "%<-fwpa%> and %<-fltrans%> are mutually exclusive"
+msgstr ""
+
+#: lto/lto-lang.cc:913
+#, gcc-internal-format
+msgid "%<-flinker-output=rel%> and %<-fltrans%> are mutually exclusive"
+msgstr ""
+
+#: lto/lto-object.cc:106
+#, gcc-internal-format, gfc-internal-format
+msgid "open %s failed: %s"
+msgstr ""
+
+#: lto/lto-object.cc:150
+#, gcc-internal-format, gfc-internal-format
+msgid "%s: %s: %s"
+msgstr ""
+
+#: lto/lto-object.cc:191
+#, gcc-internal-format, gfc-internal-format
+msgid "close: %s"
+msgstr ""
+
+#: lto/lto-object.cc:247
+#, gcc-internal-format, gfc-internal-format
+msgid "two or more sections for %s"
+msgstr ""
+
+#: lto/lto-partition.cc:535
+#, gcc-internal-format
+msgid "min partition size cannot be greater than max partition size"
+msgstr ""
+
+#: lto/lto-symtab.cc:169
+#, gcc-internal-format
+msgid "%qD is defined with tls model %s"
+msgstr ""
+
+#: lto/lto-symtab.cc:171
+#, gcc-internal-format, gfc-internal-format
+msgid "previously defined here as %s"
+msgstr ""
+
+#: lto/lto-symtab.cc:474
+#, gcc-internal-format
+msgid "multiple prevailing defs for %qE"
+msgstr ""
+
+#: lto/lto-symtab.cc:492
+#, gcc-internal-format
+msgid "%qD has already been defined"
+msgstr ""
+
+#: lto/lto-symtab.cc:494
+#, gcc-internal-format
+msgid "previously defined here"
+msgstr "ადრე აქ იყო აღწერილი"
+
+#: lto/lto-symtab.cc:720
+#, gcc-internal-format
+msgid "%qD violates the C++ One Definition Rule"
+msgstr ""
+
+#: lto/lto-symtab.cc:726
+#, gcc-internal-format
+msgid "type of %qD does not match original declaration"
+msgstr ""
+
+#: lto/lto-symtab.cc:746
+#, gcc-internal-format
+msgid "alignment of %qD is bigger than original declaration"
+msgstr ""
+
+#: lto/lto-symtab.cc:752
+#, gcc-internal-format
+msgid "size of %qD differ from the size of original declaration"
+msgstr ""
+
+#: lto/lto-symtab.cc:757
+#, gcc-internal-format
+msgid "%qD was previously declared here"
+msgstr ""
+
+#: lto/lto-symtab.cc:760
+#, gcc-internal-format
+msgid "code may be misoptimized unless %<-fno-strict-aliasing%> is used"
+msgstr ""
+
+#: lto/lto-symtab.cc:846
+#, gcc-internal-format
+msgid "variable %qD redeclared as function"
+msgstr ""
+
+#: lto/lto-symtab.cc:853
+#, gcc-internal-format
+msgid "function %qD redeclared as variable"
+msgstr ""
+
+#: lto/lto-symtab.cc:865
+#, gcc-internal-format
+msgid "previously declared here"
+msgstr ""
+
+#: lto/lto.cc:174
+#, gcc-internal-format
+msgid "%<lto_obj_file_open()%> failed"
+msgstr ""
+
+#: lto/lto.cc:206
+#, gcc-internal-format
+msgid "waitpid failed"
+msgstr "waitpid -ის შეცდომა"
+
+#: lto/lto.cc:209
+#, gcc-internal-format
+msgid "streaming subprocess failed"
+msgstr ""
+
+#: lto/lto.cc:212
+#, gcc-internal-format
+msgid "streaming subprocess was killed by signal"
+msgstr ""
+
+#: lto/lto.cc:319
+#, gcc-internal-format
+msgid "no LTRANS output list filename provided"
+msgstr ""
+
+#: lto/lto.cc:427
+#, gcc-internal-format
+msgid "opening LTRANS output list %s: %m"
+msgstr ""
+
+#: lto/lto.cc:434
+#, gcc-internal-format
+msgid "writing to LTRANS output list %s: %m"
+msgstr ""
+
+#: lto/lto.cc:444
+#, gcc-internal-format
+msgid "closing LTRANS output list %s: %m"
+msgstr ""
+
+#: m2/gm2-lang.cc:1137
+#, gcc-internal-format
+msgid "cannot convert expression, only base types can be converted"
+msgstr ""
+
+#. Not found, probably a user typo.
+#: m2/gm2spec.cc:346
+#, gcc-internal-format
+msgid "%qs is not a valid Modula-2 system library name or abbreviation"
+msgstr ""
+
+#: m2/gm2spec.cc:724 m2/gm2spec.cc:732
+#, gcc-internal-format
+msgid "%qs and %qs cannot both be enabled"
+msgstr ""
+
+#: m2/gm2-gcc/m2assert.cc:40
+#, gcc-internal-format
+msgid "the location value is corrupt"
+msgstr ""
+
+#: m2/gm2-gcc/m2builtins.cc:46
+#, gcc-internal-format
+msgid "%s:%d:assertion of condition %qs failed"
+msgstr ""
+
+#: m2/gm2-gcc/m2builtins.cc:52
+#, gcc-internal-format, gfc-internal-format
+msgid "%s:%d:%s"
+msgstr ""
+
+#: m2/gm2-gcc/m2convert.cc:111
+#, gcc-internal-format
+msgid "negative integer implicitly converted to unsigned type"
+msgstr ""
+
+#: m2/gm2-gcc/m2convert.cc:118
+#, gcc-internal-format
+msgid "conversion of unsigned constant value to negative integer"
+msgstr ""
+
+#: m2/gm2-gcc/m2convert.cc:199 m2/gm2-gcc/m2convert.cc:203
+#, gcc-internal-format
+msgid "conversion to %qT alters %qT constant value"
+msgstr ""
+
+#: m2/gm2-gcc/m2convert.cc:224 m2/gm2-gcc/m2convert.cc:228
+#, gcc-internal-format
+msgid "conversion to %qT from %qT may alter its value"
+msgstr ""
+
+#: m2/gm2-gcc/m2convert.cc:260
+#, gcc-internal-format
+msgid "large integer implicitly truncated to unsigned type"
+msgstr ""
+
+#: m2/gm2-gcc/m2convert.cc:266 m2/gm2-gcc/m2convert.cc:272
+#: m2/gm2-gcc/m2convert.cc:281
+#, gcc-internal-format
+msgid "overflow in implicit constant conversion"
+msgstr ""
+
+#: m2/gm2-gcc/m2decl.cc:122
+#, gcc-internal-format
+msgid "storage size of %qD has not been resolved"
+msgstr ""
+
+#: m2/gm2-gcc/m2decl.cc:125
+#, gcc-internal-format
+msgid "inconsistent because %qs"
+msgstr ""
+
+#: m2/gm2-gcc/m2decl.cc:312
+#, gcc-internal-format
+msgid "constant %qs is too large"
+msgstr ""
+
+#: m2/gm2-gcc/m2expr.cc:2617
+#, gcc-internal-format
+msgid "not expecting different types to binary operator"
+msgstr ""
+
+#: m2/gm2-gcc/m2expr.cc:2875
+#, gcc-internal-format
+msgid "cannot take the address of this expression"
+msgstr ""
+
+#: m2/gm2-gcc/m2expr.cc:3642
+#, gcc-internal-format
+msgid "argument to CAP is not a constant or variable of type CHAR"
+msgstr ""
+
+#: m2/gm2-gcc/m2expr.cc:3922 m2/gm2-gcc/m2expr.cc:4028
+#: m2/gm2-gcc/m2expr.cc:4037
+#, gcc-internal-format
+msgid "constant literal %qs exceeds internal ZTYPE range"
+msgstr ""
+
+#: m2/gm2-gcc/m2expr.cc:3957
+#, gcc-internal-format
+msgid "constant literal %qs contains %qc, expected 0 or 1"
+msgstr ""
+
+#: m2/gm2-gcc/m2expr.cc:3972 m2/gm2-gcc/m2expr.cc:3984
+#, gcc-internal-format
+msgid "constant literal %qs contains %qc, expected %qs"
+msgstr ""
+
+#: m2/gm2-gcc/m2expr.cc:4003
+#, gcc-internal-format
+msgid "constant literal %qs contains %qc, expected %qs or %qs"
+msgstr ""
+
+#: m2/gm2-gcc/m2expr.cc:4069
+#, gcc-internal-format
+msgid "%qs applied to a void type"
+msgstr ""
+
+#: m2/gm2-gcc/m2expr.cc:4090 m2/gm2-gcc/m2expr.cc:4134
+#, gcc-internal-format
+msgid "%qs applied to an incomplete type"
+msgstr ""
+
+#: m2/gm2-gcc/m2linemap.cc:332
+#, gcc-internal-format
+msgid "memory allocation failed in vasprintf"
+msgstr ""
+
+#: m2/gm2-gcc/m2linemap.cc:364 rust/rust-diagnostics.cc:166
+#, gcc-internal-format, gfc-internal-format
+msgid "at %s, %s"
+msgstr ""
+
+#: m2/gm2-gcc/m2statement.cc:563
+#, gcc-internal-format
+msgid "internal error: not expecting operand1 to be a constant set"
+msgstr ""
+
+#: m2/gm2-gcc/m2statement.cc:957
+#, gcc-internal-format
+msgid "expecting one and only one label to be declared"
+msgstr ""
+
+#: m2/gm2-gcc/m2treelib.cc:286
+#, gcc-internal-format
+msgid "field number exceeds definition of set"
+msgstr ""
+
+#: m2/gm2-gcc/m2treelib.cc:291
+#, gcc-internal-format
+msgid "field number out of range trying to access set element"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:224
+#, gcc-internal-format
+msgid "array declaration canonicalization has failed"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:315
+#, gcc-internal-format
+msgid "low bound for the array is outside the ztype limits"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:317
+#, gcc-internal-format
+msgid "high bound for the array is outside the ztype limits"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:909
+#, gcc-internal-format
+msgid "set base type must be an ordinal type"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:938
+#, gcc-internal-format
+msgid "ordinal type expected"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:947
+#, gcc-internal-format
+msgid "range limits are not of the same type"
+msgstr ""
+
+#. This enum is a named one that has been declared already.
+#: m2/gm2-gcc/m2type.cc:1989
+#, gcc-internal-format
+msgid "redeclaration of enum %qs"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2055
+#, gcc-internal-format
+msgid "enumeration values exceed range of integer"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2289
+#, gcc-internal-format
+msgid "set type cannot be initialized with a %qs"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2296
+#, gcc-internal-format
+msgid "set type does not take another integer value"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2421
+#, gcc-internal-format
+msgid "array cannot be initialized with a %qs"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2427
+#, gcc-internal-format
+msgid "array type must be initialized"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2434
+#, gcc-internal-format
+msgid "array element value must be the same type as its declaration"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2497
+#, gcc-internal-format
+msgid "low bound for the subrange has overflowed"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2499
+#, gcc-internal-format
+msgid "high bound for the subrange has overflowed"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2796
+#, gcc-internal-format
+msgid "requested alignment is not a constant"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2798
+#, gcc-internal-format
+msgid "requested alignment is not a power of 2"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2800
+#, gcc-internal-format
+msgid "requested alignment is too large"
+msgstr ""
+
+#: m2/gm2-gcc/m2type.cc:2826
+#, gcc-internal-format
+msgid "alignment may not be specified for %qD"
+msgstr ""
+
+#: objc/objc-act.cc:426 objc/objc-act.cc:6965
+#, gcc-internal-format
+msgid "%<@end%> missing in implementation context"
+msgstr ""
+
+#: objc/objc-act.cc:579
+#, gcc-internal-format
+msgid "class attributes are not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:594
+#, gcc-internal-format
+msgid "category attributes are not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:597
+#, gcc-internal-format
+msgid "category attributes are not available in this version of the compiler, (ignored)"
+msgstr ""
+
+#: objc/objc-act.cc:603
+#, gcc-internal-format
+msgid "class extensions are not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:617
+#, gcc-internal-format
+msgid "class extension for class %qE declared after its %<@implementation%>"
+msgstr ""
+
+#: objc/objc-act.cc:632
+#, gcc-internal-format
+msgid "protocol attributes are not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:697
+#, gcc-internal-format
+msgid "%<@end%> must appear in an @implementation context"
+msgstr ""
+
+#: objc/objc-act.cc:706
+#, gcc-internal-format
+msgid "%<@package%> is not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:708
+#, gcc-internal-format
+msgid "%<@package%> presently has the same effect as %<@public%>"
+msgstr ""
+
+#: objc/objc-act.cc:719
+#, gcc-internal-format
+msgid "%<@optional%> is not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:721
+#, gcc-internal-format
+msgid "%<@required%> is not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:729
+#, gcc-internal-format
+msgid "%<@optional%> is allowed in @protocol context only"
+msgstr ""
+
+#: objc/objc-act.cc:731
+#, gcc-internal-format
+msgid "%<@required%> is allowed in @protocol context only"
+msgstr ""
+
+#. FIXME: we probably ought to bail out at this point.
+#: objc/objc-act.cc:854
+#, gcc-internal-format
+msgid "%<@property%> is not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:859
+#, gcc-internal-format
+msgid "property declaration not in %<@interface%>, %<@protocol%> or %<category%> context"
+msgstr ""
+
+#: objc/objc-act.cc:870
+#, gcc-internal-format
+msgid "properties must be named"
+msgstr ""
+
+#: objc/objc-act.cc:878
+#, gcc-internal-format
+msgid "property cannot be an array"
+msgstr ""
+
+#. A @property is not an actual variable, but it is a way to
+#. describe a pair of accessor methods, so its type (which is
+#. the type of the return value of the getter and the first
+#. argument of the setter) can't be a bitfield (as return values
+#. and arguments of functions cannot be bitfields).  The
+#. underlying instance variable could be a bitfield, but that is
+#. a different matter.
+#: objc/objc-act.cc:891
+#, gcc-internal-format
+msgid "property cannot be a bit-field"
+msgstr ""
+
+#: objc/objc-act.cc:915
+#, gcc-internal-format
+msgid "multiple property %qE methods specified, the latest one will be used"
+msgstr ""
+
+#: objc/objc-act.cc:917
+#, gcc-internal-format
+msgid "previous specification"
+msgstr ""
+
+#: objc/objc-act.cc:932
+#, gcc-internal-format
+msgid "%qE attribute conflicts with %qE attribute"
+msgstr ""
+
+#: objc/objc-act.cc:934
+#, gcc-internal-format
+msgid "%qE specified here"
+msgstr ""
+
+#: objc/objc-act.cc:940
+#, gcc-internal-format
+msgid "duplicate %qE attribute"
+msgstr ""
+
+#: objc/objc-act.cc:941
+#, gcc-internal-format
+msgid "first specified here"
+msgstr ""
+
+#: objc/objc-act.cc:968
+#, gcc-internal-format
+msgid "%<readonly%> attribute conflicts with %<setter%> attribute"
+msgstr ""
+
+#: objc/objc-act.cc:971
+#, gcc-internal-format
+msgid "%<setter%> specified here"
+msgstr ""
+
+#: objc/objc-act.cc:1050
+#, gcc-internal-format
+msgid "object property %qD has no %<assign%>, %<retain%> or %<copy%> attribute; assuming %<assign%>"
+msgstr ""
+
+#: objc/objc-act.cc:1053
+#, gcc-internal-format
+msgid "%<assign%> can be unsafe for Objective-C objects; please state explicitly if you need it"
+msgstr ""
+
+#: objc/objc-act.cc:1070
+#, gcc-internal-format
+msgid "%qE attribute is only valid for Objective-C objects"
+msgstr ""
+
+#: objc/objc-act.cc:1128
+#, gcc-internal-format
+msgid "redeclaration of property %qD"
+msgstr ""
+
+#: objc/objc-act.cc:1131 objc/objc-act.cc:1197 objc/objc-act.cc:1208
+#: objc/objc-act.cc:1222 objc/objc-act.cc:1233 objc/objc-act.cc:1245
+#: objc/objc-act.cc:1282 objc/objc-act.cc:7752 objc/objc-act.cc:7815
+#: objc/objc-act.cc:7838 objc/objc-act.cc:7852 objc/objc-act.cc:7870
+#: objc/objc-act.cc:7969
+#, gcc-internal-format
+msgid "originally specified here"
+msgstr ""
+
+#: objc/objc-act.cc:1193
+#, gcc-internal-format
+msgid "%<nonatomic%> attribute of property %qD conflicts with previous declaration"
+msgstr ""
+
+#: objc/objc-act.cc:1204
+#, gcc-internal-format
+msgid "%<getter%> attribute of property %qD conflicts with previous declaration"
+msgstr ""
+
+#: objc/objc-act.cc:1218
+#, gcc-internal-format
+msgid "%<setter%> attribute of property %qD conflicts with previous declaration"
+msgstr ""
+
+#: objc/objc-act.cc:1230
+#, gcc-internal-format
+msgid "assign semantics attributes of property %qD conflict with previous declaration"
+msgstr ""
+
+#: objc/objc-act.cc:1241
+#, gcc-internal-format
+msgid "%<readonly%> attribute of property %qD conflicts with previous declaration"
+msgstr ""
+
+#: objc/objc-act.cc:1280
+#, gcc-internal-format
+msgid "type of property %qD conflicts with previous declaration"
+msgstr ""
+
+#: objc/objc-act.cc:1323
+#, gcc-internal-format
+msgid "nullability specifier %qE cannot be applied to non-pointer type %qT"
+msgstr ""
+
+#: objc/objc-act.cc:1328
+#, gcc-internal-format
+msgid "nullability specifier %qE cannot be applied to multi-level pointer type %qT"
+msgstr ""
+
+#: objc/objc-act.cc:1781
+#, gcc-internal-format
+msgid "the dot syntax is not available in Objective-C 1.0"
+msgstr ""
+
+#. We know that 'class_name' is an Objective-C class name as the
+#. parser won't call this function if it is not.  This is only a
+#. double-check for safety.
+#: objc/objc-act.cc:1797
+#, gcc-internal-format
+msgid "could not find class %qE"
+msgstr ""
+
+#. Again, this should never happen, but we do check.
+#: objc/objc-act.cc:1805
+#, gcc-internal-format
+msgid "could not find interface for class %qE"
+msgstr ""
+
+#: objc/objc-act.cc:1811 objc/objc-act.cc:7147
+#, gcc-internal-format
+msgid "class %qE is unavailable"
+msgstr ""
+
+#: objc/objc-act.cc:1813 objc/objc-act.cc:7004 objc/objc-act.cc:7149
+#, gcc-internal-format
+msgid "class %qE is deprecated"
+msgstr ""
+
+#: objc/objc-act.cc:1842
+#, gcc-internal-format
+msgid "could not find setter/getter for %qE in class %qE"
+msgstr ""
+
+#: objc/objc-act.cc:1892
+#, gcc-internal-format
+msgid "%qs property cannot be set"
+msgstr ""
+
+#: objc/objc-act.cc:2160
+#, gcc-internal-format
+msgid "method declaration not in @interface context"
+msgstr ""
+
+#: objc/objc-act.cc:2164
+#, gcc-internal-format
+msgid "method attributes are not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:2184
+#, gcc-internal-format
+msgid "method definition not in @implementation context"
+msgstr ""
+
+#: objc/objc-act.cc:2197
+#, gcc-internal-format
+msgid "method attributes cannot be specified in @implementation context"
+msgstr ""
+
+#: objc/objc-act.cc:2427
+#, gcc-internal-format
+msgid "class %qs does not implement the %qE protocol"
+msgstr ""
+
+#: objc/objc-act.cc:2430
+#, gcc-internal-format
+msgid "type %qs does not conform to the %qE protocol"
+msgstr ""
+
+#: objc/objc-act.cc:2725
+#, gcc-internal-format
+msgid "comparison of distinct Objective-C types lacks a cast"
+msgstr ""
+
+#: objc/objc-act.cc:2729
+#, gcc-internal-format
+msgid "initialization from distinct Objective-C type"
+msgstr ""
+
+#: objc/objc-act.cc:2733
+#, gcc-internal-format
+msgid "assignment from distinct Objective-C type"
+msgstr ""
+
+#: objc/objc-act.cc:2737
+#, gcc-internal-format
+msgid "distinct Objective-C type in return"
+msgstr ""
+
+#: objc/objc-act.cc:2741
+#, gcc-internal-format
+msgid "passing argument %d of %qE from distinct Objective-C type"
+msgstr ""
+
+#: objc/objc-act.cc:2884
+#, gcc-internal-format
+msgid "statically allocated instance of Objective-C class %qE"
+msgstr ""
+
+#: objc/objc-act.cc:2893
+#, gcc-internal-format
+msgid "redeclaration of Objective-C class %qs"
+msgstr ""
+
+#. This case happens when we are given an 'interface' which
+#. is not a valid class name.  For example if a typedef was
+#. used, and 'interface' really is the identifier of the
+#. typedef, but when you resolve it you don't get an
+#. Objective-C class, but something else, such as 'int'.
+#. This is an error; protocols make no sense unless you use
+#. them with Objective-C objects.
+#: objc/objc-act.cc:2935
+#, gcc-internal-format
+msgid "only Objective-C object types can be qualified with a protocol"
+msgstr ""
+
+#: objc/objc-act.cc:2999
+#, gcc-internal-format
+msgid "protocol %qE has circular dependency"
+msgstr ""
+
+#: objc/objc-act.cc:3032 objc/objc-act.cc:5866
+#, gcc-internal-format
+msgid "cannot find protocol declaration for %qE"
+msgstr ""
+
+#: objc/objc-act.cc:3342 objc/objc-act.cc:3997 objc/objc-act.cc:6578
+#: objc/objc-act.cc:7055 objc/objc-act.cc:7140 objc/objc-act.cc:7195
+#, gcc-internal-format
+msgid "cannot find interface declaration for %qE"
+msgstr ""
+
+#: objc/objc-act.cc:3346
+#, gcc-internal-format
+msgid "interface %qE does not have valid constant string layout"
+msgstr ""
+
+#: objc/objc-act.cc:3351
+#, gcc-internal-format
+msgid "cannot find reference tag for class %qE"
+msgstr ""
+
+#: objc/objc-act.cc:3496
+#, gcc-internal-format
+msgid "%qE is not an Objective-C class name or alias"
+msgstr ""
+
+#: objc/objc-act.cc:3511 objc/objc-act.cc:3542 objc/objc-act.cc:6959
+#: objc/objc-act.cc:8305 objc/objc-act.cc:8361
+#, gcc-internal-format
+msgid "Objective-C declarations may only appear in global scope"
+msgstr ""
+
+#: objc/objc-act.cc:3516
+#, gcc-internal-format
+msgid "cannot find class %qE"
+msgstr ""
+
+#: objc/objc-act.cc:3518
+#, gcc-internal-format
+msgid "class %qE already exists"
+msgstr ""
+
+#: objc/objc-act.cc:3560 objc/objc-act.cc:7020
+#, gcc-internal-format
+msgid "%qE redeclared as different kind of symbol"
+msgstr ""
+
+#: objc/objc-act.cc:3562 objc/objc-act.cc:4148 objc/objc-act.cc:4176
+#: objc/objc-act.cc:4231 objc/objc-act.cc:7022
+#, gcc-internal-format
+msgid "previous declaration of %q+D"
+msgstr ""
+
+#: objc/objc-act.cc:3851
+#, gcc-internal-format
+msgid "strong-cast assignment has been intercepted"
+msgstr ""
+
+#: objc/objc-act.cc:3893
+#, gcc-internal-format
+msgid "strong-cast may possibly be needed"
+msgstr ""
+
+#: objc/objc-act.cc:3903
+#, gcc-internal-format
+msgid "instance variable assignment has been intercepted"
+msgstr ""
+
+#: objc/objc-act.cc:3922
+#, gcc-internal-format
+msgid "pointer arithmetic for garbage-collected objects not allowed"
+msgstr ""
+
+#: objc/objc-act.cc:3928
+#, gcc-internal-format
+msgid "global/static variable assignment has been intercepted"
+msgstr ""
+
+#: objc/objc-act.cc:4145 objc/objc-act.cc:4173 objc/objc-act.cc:4228
+#, gcc-internal-format
+msgid "duplicate instance variable %q+D"
+msgstr ""
+
+#: objc/objc-act.cc:4288
+#, gcc-internal-format
+msgid "%<-fobjc-exceptions%> is required to enable Objective-C exception syntax"
+msgstr ""
+
+#: objc/objc-act.cc:4372
+#, gcc-internal-format
+msgid "%<@catch%> parameter is not a known Objective-C class type"
+msgstr ""
+
+#: objc/objc-act.cc:4378
+#, gcc-internal-format
+msgid "%<@catch%> parameter cannot be protocol-qualified"
+msgstr ""
+
+#: objc/objc-act.cc:4423
+#, gcc-internal-format
+msgid "exception of type %<%T%> will be caught"
+msgstr ""
+
+#: objc/objc-act.cc:4425
+#, gcc-internal-format
+msgid "   by earlier handler for %<%T%>"
+msgstr ""
+
+#: objc/objc-act.cc:4472
+#, gcc-internal-format
+msgid "%<@try%> without %<@catch%> or %<@finally%>"
+msgstr ""
+
+#: objc/objc-act.cc:4501
+#, gcc-internal-format
+msgid "%<@throw%> (rethrow) used outside of a %<@catch%> block"
+msgstr ""
+
+#: objc/objc-act.cc:4514
+#, gcc-internal-format
+msgid "%<@throw%> argument is not an object"
+msgstr ""
+
+#: objc/objc-act.cc:4535
+#, gcc-internal-format
+msgid "%<@synchronized%> argument is not an object"
+msgstr ""
+
+#: objc/objc-act.cc:4745
+#, gcc-internal-format
+msgid "%s %qs"
+msgstr ""
+
+#: objc/objc-act.cc:4768 objc/objc-act.cc:4793
+#, gcc-internal-format
+msgid "inconsistent instance variable specification"
+msgstr ""
+
+#: objc/objc-act.cc:4848
+#, gcc-internal-format
+msgid "cannot use an object as parameter to a method"
+msgstr ""
+
+#: objc/objc-act.cc:4892
+#, gcc-internal-format
+msgid "method argument attributes are not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:5267
+#, gcc-internal-format
+msgid "multiple methods named %<%c%E%> found"
+msgstr ""
+
+#: objc/objc-act.cc:5270
+#, gcc-internal-format
+msgid "using %<%c%s%>"
+msgstr ""
+
+#: objc/objc-act.cc:5279
+#, gcc-internal-format
+msgid "multiple selectors named %<%c%E%> found"
+msgstr ""
+
+#: objc/objc-act.cc:5282
+#, gcc-internal-format
+msgid "found %<%c%s%>"
+msgstr ""
+
+#: objc/objc-act.cc:5291
+#, gcc-internal-format
+msgid "also found %<%c%s%>"
+msgstr ""
+
+#. If 'rtype' is NULL_TREE at this point it means that
+#. we have seen no @interface corresponding to that
+#. class name, only a @class declaration (alternatively,
+#. this was a call such as [objc_getClass("SomeClass")
+#. alloc], where we've never seen the @interface of
+#. SomeClass).  So, we have a class name (class_tree)
+#. but no actual details of the class methods.  We won't
+#. be able to check that the class responds to the
+#. method, and we will have to guess the method
+#. prototype.  Emit a warning, then keep going (this
+#. will use any method with a matching name, as if the
+#. receiver was of type 'Class').
+#. We could not find an @interface declaration, and
+#. there are no protocols attached to the receiver,
+#. so we can't complete the check that the receiver
+#. responds to the method, and we can't retrieve the
+#. method prototype.  But, because the receiver has
+#. a well-specified class, the programmer did want
+#. this check to be performed.  Emit a warning, then
+#. keep going as if it was an 'id'.  To remove the
+#. warning, either include an @interface for the
+#. class, or cast the receiver to 'id'.  Note that
+#. rtype is an IDENTIFIER_NODE at this point.
+#: objc/objc-act.cc:5579 objc/objc-act.cc:5714
+#, gcc-internal-format
+msgid "%<@interface%> of class %qE not found"
+msgstr ""
+
+#: objc/objc-act.cc:5588
+#, gcc-internal-format
+msgid "no super class declared in @interface for %qE"
+msgstr ""
+
+#: objc/objc-act.cc:5639
+#, gcc-internal-format
+msgid "found %<-%E%> instead of %<+%E%> in protocol(s)"
+msgstr ""
+
+#. We have a type, but it's not an Objective-C type (!).
+#: objc/objc-act.cc:5751
+#, gcc-internal-format
+msgid "invalid receiver type %qs"
+msgstr ""
+
+#: objc/objc-act.cc:5768
+#, gcc-internal-format
+msgid "%<%c%E%> not found in protocol(s)"
+msgstr ""
+
+#: objc/objc-act.cc:5782
+#, gcc-internal-format
+msgid "%qE may not respond to %<%c%E%>"
+msgstr ""
+
+#: objc/objc-act.cc:5790
+#, gcc-internal-format
+msgid "no %<%c%E%> method found"
+msgstr ""
+
+#: objc/objc-act.cc:5797
+#, gcc-internal-format
+msgid "(messages without a matching method signature will be assumed to return %<id%> and accept %<...%> as arguments)"
+msgstr ""
+
+#: objc/objc-act.cc:5915
+#, gcc-internal-format
+msgid "undeclared selector %qE"
+msgstr ""
+
+#. Historically, a class method that produced objects (factory
+#. method) would assign `self' to the instance that it
+#. allocated.  This would effectively turn the class method into
+#. an instance method.  Following this assignment, the instance
+#. variables could be accessed.  That practice, while safe,
+#. violates the simple rule that a class method should not refer
+#. to an instance variable.  It's better to catch the cases
+#. where this is done unknowingly than to support the above
+#. paradigm.
+#: objc/objc-act.cc:5939
+#, gcc-internal-format
+msgid "instance variable %qE accessed in class method"
+msgstr ""
+
+#: objc/objc-act.cc:6169 objc/objc-act.cc:6189
+#, gcc-internal-format
+msgid "method %<%c%E%> declared %<@optional%> and %<@required%> at the same time"
+msgstr ""
+
+#: objc/objc-act.cc:6173
+#, gcc-internal-format
+msgid "previous declaration of %<%c%E%> as %<@required%>"
+msgstr ""
+
+#: objc/objc-act.cc:6193
+#, gcc-internal-format
+msgid "previous declaration of %<%c%E%> as %<@optional%>"
+msgstr ""
+
+#: objc/objc-act.cc:6253
+#, gcc-internal-format
+msgid "duplicate declaration of method %<%c%E%> with conflicting types"
+msgstr ""
+
+#: objc/objc-act.cc:6257
+#, gcc-internal-format
+msgid "previous declaration of %<%c%E%>"
+msgstr ""
+
+#: objc/objc-act.cc:6294
+#, gcc-internal-format
+msgid "duplicate interface declaration for category %<%E(%E)%>"
+msgstr ""
+
+#: objc/objc-act.cc:6382
+#, gcc-internal-format
+msgid "illegal reference type specified for instance variable %qs"
+msgstr ""
+
+#: objc/objc-act.cc:6393
+#, gcc-internal-format
+msgid "instance variable %qs has unknown size"
+msgstr ""
+
+#: objc/objc-act.cc:6414
+#, gcc-internal-format
+msgid "instance variable %qs uses flexible array member"
+msgstr ""
+
+#: objc/objc-act.cc:6441
+#, gcc-internal-format
+msgid "type %qE has no default constructor to call"
+msgstr ""
+
+#: objc/objc-act.cc:6447
+#, gcc-internal-format
+msgid "destructor for %qE shall not be run either"
+msgstr ""
+
+#. Vtable pointers are Real Bad(tm), since Obj-C cannot
+#. initialize them.
+#: objc/objc-act.cc:6459
+#, gcc-internal-format
+msgid "type %qE has virtual member functions"
+msgstr ""
+
+#: objc/objc-act.cc:6460
+#, gcc-internal-format
+msgid "illegal aggregate type %qE specified for instance variable %qs"
+msgstr ""
+
+#: objc/objc-act.cc:6470
+#, gcc-internal-format
+msgid "type %qE has a user-defined constructor"
+msgstr ""
+
+#: objc/objc-act.cc:6472
+#, gcc-internal-format
+msgid "type %qE has a user-defined destructor"
+msgstr ""
+
+#: objc/objc-act.cc:6476
+#, gcc-internal-format
+msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
+msgstr ""
+
+#: objc/objc-act.cc:6607
+#, gcc-internal-format
+msgid "instance variable %qE is declared private"
+msgstr ""
+
+#: objc/objc-act.cc:6618
+#, gcc-internal-format
+msgid "instance variable %qE is %s; this will be a hard error in the future"
+msgstr ""
+
+#: objc/objc-act.cc:6625
+#, gcc-internal-format
+msgid "instance variable %qE is declared %s"
+msgstr ""
+
+#: objc/objc-act.cc:6736 objc/objc-act.cc:6851
+#, gcc-internal-format
+msgid "incomplete implementation of class %qE"
+msgstr ""
+
+#: objc/objc-act.cc:6740 objc/objc-act.cc:6855
+#, gcc-internal-format
+msgid "incomplete implementation of category %qE"
+msgstr ""
+
+#: objc/objc-act.cc:6749 objc/objc-act.cc:6863
+#, gcc-internal-format
+msgid "method definition for %<%c%E%> not found"
+msgstr ""
+
+#: objc/objc-act.cc:6904
+#, gcc-internal-format
+msgid "%s %qE does not fully implement the %qE protocol"
+msgstr ""
+
+#: objc/objc-act.cc:6994
+#, gcc-internal-format
+msgid "cannot find interface declaration for %qE, superclass of %qE"
+msgstr ""
+
+#: objc/objc-act.cc:7002
+#, gcc-internal-format
+msgid "class %qE is not available"
+msgstr ""
+
+#: objc/objc-act.cc:7035
+#, gcc-internal-format
+msgid "reimplementation of class %qE"
+msgstr ""
+
+#: objc/objc-act.cc:7068
+#, gcc-internal-format
+msgid "conflicting super class name %qE"
+msgstr ""
+
+#: objc/objc-act.cc:7071
+#, gcc-internal-format
+msgid "previous declaration of %qE"
+msgstr ""
+
+#: objc/objc-act.cc:7073
+#, gcc-internal-format
+msgid "previous declaration"
+msgstr "წინა დეკლარაცია"
+
+#: objc/objc-act.cc:7085
+#, gcc-internal-format
+msgid "class %qE defined without specifying a base class"
+msgstr ""
+
+#: objc/objc-act.cc:7092 objc/objc-act.cc:7094
+#, gcc-internal-format
+msgid "duplicate interface declaration for class %qE"
+msgstr ""
+
+#: objc/objc-act.cc:7419 objc/objc-act.cc:7615
+#, gcc-internal-format
+msgid "cannot find instance variable associated with property"
+msgstr ""
+
+#. TODO: This should be caught much earlier than this.
+#: objc/objc-act.cc:7581
+#, gcc-internal-format
+msgid "invalid setter, it must have one argument"
+msgstr ""
+
+#: objc/objc-act.cc:7745 objc/objc-act.cc:7962
+#, gcc-internal-format
+msgid "property %qs already specified in %<@dynamic%>"
+msgstr ""
+
+#: objc/objc-act.cc:7748 objc/objc-act.cc:7965
+#, gcc-internal-format
+msgid "property %qs already specified in %<@synthesize%>"
+msgstr ""
+
+#: objc/objc-act.cc:7762 objc/objc-act.cc:7979
+#, gcc-internal-format
+msgid "no declaration of property %qs found in the interface"
+msgstr ""
+
+#: objc/objc-act.cc:7789
+#, gcc-internal-format
+msgid "ivar %qs used by %<@synthesize%> declaration must be an existing ivar"
+msgstr ""
+
+#: objc/objc-act.cc:7810
+#, gcc-internal-format
+msgid "property %qs is using instance variable %qs of incompatible type"
+msgstr ""
+
+#: objc/objc-act.cc:7832
+#, gcc-internal-format
+msgid "%<assign%> property %qs is using bit-field instance variable %qs"
+msgstr ""
+
+#: objc/objc-act.cc:7846
+#, gcc-internal-format
+msgid "%<atomic%> property %qs is using bit-field instance variable %qs"
+msgstr ""
+
+#: objc/objc-act.cc:7865
+#, gcc-internal-format
+msgid "property %qs is using the same instance variable as property %qs"
+msgstr ""
+
+#: objc/objc-act.cc:7906
+#, gcc-internal-format
+msgid "%<@synthesize%> is not available in Objective-C 1.0"
+msgstr ""
+
+#. We can get here only in Objective-C; the Objective-C++ parser
+#. detects the problem while parsing, outputs the error
+#. "misplaced '@synthesize' Objective-C++ construct" and skips
+#. the declaration.
+#: objc/objc-act.cc:7917
+#, gcc-internal-format
+msgid "%<@synthesize%> not in @implementation context"
+msgstr ""
+
+#: objc/objc-act.cc:7923
+#, gcc-internal-format
+msgid "%<@synthesize%> cannot be used in categories"
+msgstr ""
+
+#: objc/objc-act.cc:7932
+#, gcc-internal-format
+msgid "%<@synthesize%> requires the @interface of the class to be available"
+msgstr ""
+
+#: objc/objc-act.cc:8015
+#, gcc-internal-format
+msgid "%<@dynamic%> is not available in Objective-C 1.0"
+msgstr ""
+
+#. We can get here only in Objective-C; the Objective-C++ parser
+#. detects the problem while parsing, outputs the error
+#. "misplaced '@dynamic' Objective-C++ construct" and skips the
+#. declaration.
+#: objc/objc-act.cc:8026
+#, gcc-internal-format
+msgid "%<@dynamic%> not in @implementation context"
+msgstr ""
+
+#: objc/objc-act.cc:8048
+#, gcc-internal-format
+msgid "%<@dynamic%> requires the @interface of the class to be available"
+msgstr ""
+
+#: objc/objc-act.cc:8248
+#, gcc-internal-format
+msgid "definition of protocol %qE not found"
+msgstr ""
+
+#: objc/objc-act.cc:8275
+#, gcc-internal-format
+msgid "protocol %qE is unavailable"
+msgstr ""
+
+#. It would be nice to use warn_deprecated_use() here, but
+#. we are using TREE_CHAIN (which is supposed to be the
+#. TYPE_STUB_DECL for a TYPE) for something different.
+#: objc/objc-act.cc:8281
+#, gcc-internal-format
+msgid "protocol %qE is deprecated"
+msgstr ""
+
+#: objc/objc-act.cc:8408
+#, gcc-internal-format
+msgid "duplicate declaration for protocol %qE"
+msgstr ""
+
+#: objc/objc-act.cc:8932
+#, gcc-internal-format
+msgid "conflicting types for %<%c%s%>"
+msgstr ""
+
+#: objc/objc-act.cc:8936
+#, gcc-internal-format
+msgid "previous declaration of %<%c%s%>"
+msgstr ""
+
+#: objc/objc-act.cc:9038
+#, gcc-internal-format
+msgid "no super class declared in interface for %qE"
+msgstr ""
+
+#: objc/objc-act.cc:9065
+#, gcc-internal-format
+msgid "%<[super ...]%> must appear in a method context"
+msgstr ""
+
+#: objc/objc-act.cc:9105
+#, gcc-internal-format
+msgid "method possibly missing a [super dealloc] call"
+msgstr ""
+
+#: objc/objc-act.cc:9573
+#, gcc-internal-format
+msgid "instance variable %qs is declared private"
+msgstr ""
+
+#: objc/objc-act.cc:9626
+#, gcc-internal-format
+msgid "local declaration of %qE hides instance variable"
+msgstr ""
+
+#. This can happen if DECL_ARTIFICIAL (*expr_p), but
+#. should be impossible for real properties, which always
+#. have a getter.
+#: objc/objc-act.cc:9670
+#, gcc-internal-format
+msgid "no %qs getter found"
+msgstr ""
+
+#: objc/objc-act.cc:9917
+#, gcc-internal-format
+msgid "fast enumeration is not available in Objective-C 1.0"
+msgstr ""
+
+#: objc/objc-act.cc:9927
+#, gcc-internal-format
+msgid "iterating variable in fast enumeration is not an object"
+msgstr ""
+
+#: objc/objc-act.cc:9933
+#, gcc-internal-format
+msgid "collection in fast enumeration is not an object"
+msgstr ""
+
+#: objc/objc-encoding.cc:130
+#, gcc-internal-format
+msgid "type %qT does not have a known size"
+msgstr ""
+
+#: objc/objc-encoding.cc:721
+#, gcc-internal-format
+msgid "unknown type %<%T%> found during Objective-C encoding"
+msgstr ""
+
+#. Do not do any encoding, produce an error and keep going.
+#: objc/objc-encoding.cc:804
+#, gcc-internal-format
+msgid "trying to encode non-integer type as a bit-field"
+msgstr ""
+
+#: objc/objc-gnu-runtime-abi-01.cc:134
+#, gcc-internal-format
+msgid "%<-fobjc-gc%> is ignored for %<-fgnu-runtime%>"
+msgstr ""
+
+#: objc/objc-gnu-runtime-abi-01.cc:142
+#, gcc-internal-format
+msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fgnu-runtime%>"
+msgstr ""
+
+#: objc/objc-gnu-runtime-abi-01.cc:2162 objc/objc-next-runtime-abi-01.cc:2822
+#: objc/objc-next-runtime-abi-02.cc:3840
+#, gcc-internal-format
+msgid "non-objective-c type %qT cannot be caught"
+msgstr ""
+
+#: objc/objc-next-runtime-abi-01.cc:146
+#, gcc-internal-format
+msgid "%<-fobjc-sjlj-exceptions%> is the only supported exceptions system for %<-fnext-runtime%> with %<-fobjc-abi-version%> argument less than 2"
+msgstr ""
+
+#: objc/objc-next-runtime-abi-02.cc:246
+#, gcc-internal-format
+msgid "%<-fobjc-sjlj-exceptions%> is ignored for %<-fnext-runtime%> when %<-fobjc-abi-version%> greater than 1"
+msgstr ""
+
+#: objc/objc-runtime-shared-support.cc:423
+#, gcc-internal-format
+msgid "creating selector for nonexistent method %qE"
+msgstr ""
+
+#: rust/backend/rust-constexpr.cc:1676
+#, gcc-internal-format
+msgid "array size expression is not supported yet"
+msgstr ""
+
+#: rust/backend/rust-constexpr.cc:1803
+#, gcc-internal-format
+msgid "constant folding not supported for this tree code"
+msgstr ""
+
+#: rust/backend/rust-constexpr.cc:2480
+#, gcc-internal-format
+msgid "cast from %qT is not allowed"
+msgstr ""
+
+#: rust/backend/rust-constexpr.cc:2753
+#, gcc-internal-format
+msgid "modification of %qE is not a constant expression"
+msgstr ""
+
+#: rust/backend/rust-constexpr.cc:6172
+#, gcc-internal-format
+msgid "%qD declared %<thread_local%> in %<constexpr%> context"
+msgstr ""
+
+#: rust/backend/rust-constexpr.cc:6181
+#, gcc-internal-format
+msgid "%qD declared %<static%> in %<constexpr%> context"
+msgstr ""
+
+#: rust/backend/rust-tree.cc:616
+#, gcc-internal-format
+msgid "ignoring return value of %qD, that must be used: %<%s%>"
+msgstr ""
+
+#: rust/backend/rust-tree.cc:617
+#, gcc-internal-format
+msgid "ignoring return value of %qD, that must be used"
+msgstr ""
+
+#: rust/backend/rust-tree.cc:633
+#, gcc-internal-format
+msgid "ignoring returned value of type %qT, that must be used: %<%s%>"
+msgstr ""
+
+#: rust/backend/rust-tree.cc:634
+#, gcc-internal-format
+msgid "ignoring returned value of type %qT, that must be used"
+msgstr ""
+
+#: rust/checks/lints/rust-lint-unused-var.cc:51
+#, gcc-internal-format
+msgid "unused name %qE"
+msgstr ""
+
+#: rust/resolve/rust-ast-resolve-expr.cc:167
+#, gcc-internal-format, gfc-internal-format
+msgid "are you trying to break %s? how dare you?"
+msgstr ""

commit d3c14d408664076014a225cbe7d69b7c2ee3e92d
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Aug 29 00:25:52 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 00e43a06f4d..0b8bcefbecd 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240828
+20240829
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 8ba0a78ce36..01dce13aa15 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2024-08-28  Joseph Myers  <josmyers@redhat.com>
+
+	* ka.po: New file.
+
 2024-08-27  Joseph Myers  <josmyers@redhat.com>
 
 	* zh_CN.po: Update.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a2ffda55dc8..d52ac026607 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,20 @@
+2024-08-28  Xi Ruoyao  <xry111@xry111.site>
+
+	Backported from master:
+	2024-08-10  Xi Ruoyao  <xry111@xry111.site>
+
+	PR testsuite/70150
+	* gcc.target/i386/fentryname3.c (dg-final): Revert r13-1614
+	change.
+
+2024-08-28  Xi Ruoyao  <xry111@xry111.site>
+
+	Backported from master:
+	2024-08-10  Xi Ruoyao  <xry111@xry111.site>
+
+	PR testsuite/70150
+	* gcc.target/i386/pr113689-1.c (dg-options): Add -no-pie.
+
 2024-08-22  liuhongt  <hongtao.liu@intel.com>
 
 	Backported from master:

commit 552c7c12e32e6f09269c794b5c2b053e40beeb41
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Aug 30 00:30:04 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 0b8bcefbecd..8021f79746d 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240829
+20240830

commit 5999dd8a610acbaff9dfb6bdeb67f33380336132
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Thu Aug 29 21:21:39 2024 +0200

    Fortran: fix ICE with use with rename of namelist member [PR116530]
    
    gcc/fortran/ChangeLog:
    
            PR fortran/116530
            * trans-io.cc (transfer_namelist_element): Prevent NULL pointer
            dereference.
    
    gcc/testsuite/ChangeLog:
    
            PR fortran/116530
            * gfortran.dg/use_rename_12.f90: New test.
    
    (cherry picked from commit 6bfeba12c86b4d0dae27d99b484f64774dd49398)

diff --git a/gcc/fortran/trans-io.cc b/gcc/fortran/trans-io.cc
index ee2cc560cdf..0c5a1714be6 100644
--- a/gcc/fortran/trans-io.cc
+++ b/gcc/fortran/trans-io.cc
@@ -1692,7 +1692,8 @@ transfer_namelist_element (stmtblock_t * block, const char * var_name,
   gcc_assert (sym || c);
 
   /* Build the namelist object name.  */
-  if (sym && !sym->attr.use_only && sym->attr.use_rename)
+  if (sym && !sym->attr.use_only && sym->attr.use_rename
+      && sym->ns->use_stmts->rename)
     string = gfc_build_cstring_const (sym->ns->use_stmts->rename->local_name);
   else
     string = gfc_build_cstring_const (var_name);
diff --git a/gcc/testsuite/gfortran.dg/use_rename_12.f90 b/gcc/testsuite/gfortran.dg/use_rename_12.f90
new file mode 100644
index 00000000000..0447d5fe150
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/use_rename_12.f90
@@ -0,0 +1,27 @@
+! { dg-do compile }
+! PR fortran/116530 - ICE with member of namelist renamed by use module
+!
+! Reported by philippe.wautelet at cnrs.fr 
+
+module mod_nml1
+  implicit none
+  logical :: ldiag
+  namelist /nam_nml1/ldiag
+end module mod_nml1
+
+module mod_interm
+  use mod_nml1
+end module mod_interm
+
+program ice_nml
+  use mod_nml1,        ldiag_nml1 => ldiag
+  use mod_nml1, only : ldiag_only => ldiag
+  use mod_interm
+  implicit none
+  integer :: ilu = 10
+  read(unit=ilu,nml=nam_nml1)
+  write(unit=*,nml=nam_nml1)
+  print *, ldiag
+  print *, ldiag_nml1
+  print *, ldiag_only
+end program ice_nml

commit 657bf4a01b45cd58fd4758c8b7a80e60d4ac4299
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Aug 31 00:22:43 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 8021f79746d..7036fab4770 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240830
+20240831
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index a16a51a786e..25c8473186e 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2024-08-30  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2024-08-29  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/116530
+	* trans-io.cc (transfer_namelist_element): Prevent NULL pointer
+	dereference.
+
 2024-08-06  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d52ac026607..682b6ca98e1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-08-30  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2024-08-29  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/116530
+	* gfortran.dg/use_rename_12.f90: New test.
+
 2024-08-28  Xi Ruoyao  <xry111@xry111.site>
 
 	Backported from master:

commit a2e32a8856e6b9870ba8a25bf62242c51cbdbf46
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Sep 1 00:36:10 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7036fab4770..42eedaf32c0 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240831
+20240901

commit db4d81090b4f61998c393376c68eb97e38f5ed21
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Sep 2 00:25:48 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 42eedaf32c0..18af8d7e288 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240901
+20240902

commit ba9a3f105ea552a22d08f2d54dfdbef16af7c99e
Author: liuhongt <hongtao.liu@intel.com>
Date:   Thu Aug 29 11:39:20 2024 +0800

    Check avx upper register for parallel.
    
    For function arguments/return, when it's BLK mode, it's put in a
    parallel with an expr_list, and the expr_list contains the real mode
    and registers.
    Current ix86_check_avx_upper_register only checked for SSE_REG_P, and
    failed to handle that. The patch extend the handle to each subrtx.
    
    gcc/ChangeLog:
    
            PR target/116512
            * config/i386/i386.cc (ix86_check_avx_upper_register): Iterate
            subrtx to scan for avx upper register.
            (ix86_check_avx_upper_stores): Inline old
            ix86_check_avx_upper_register.
            (ix86_avx_u128_mode_needed): Ditto, and replace
            FOR_EACH_SUBRTX with call to new
            ix86_check_avx_upper_register.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr116512.c: New test.
    
    (cherry picked from commit ab214ef734bfc3dcffcf79ff9e1dd651c2b40566)

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 288c69467d6..feefbe322de 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -15027,9 +15027,19 @@ ix86_dirflag_mode_needed (rtx_insn *insn)
 static bool
 ix86_check_avx_upper_register (const_rtx exp)
 {
-  return (SSE_REG_P (exp)
-	  && !EXT_REX_SSE_REG_P (exp)
-	  && GET_MODE_BITSIZE (GET_MODE (exp)) > 128);
+  /* construct_container may return a parallel with expr_list
+     which contains the real reg and mode  */
+  subrtx_iterator::array_type array;
+  FOR_EACH_SUBRTX (iter, array, exp, NONCONST)
+    {
+      const_rtx x = *iter;
+      if (SSE_REG_P (x)
+	  && !EXT_REX_SSE_REG_P (x)
+	  && GET_MODE_BITSIZE (GET_MODE (x)) > 128)
+	return true;
+    }
+
+  return false;
 }
 
 /* Check if a 256bit or 512bit AVX register is referenced in stores.   */
@@ -15037,7 +15047,9 @@ ix86_check_avx_upper_register (const_rtx exp)
 static void
 ix86_check_avx_upper_stores (rtx dest, const_rtx, void *data)
 {
-  if (ix86_check_avx_upper_register (dest))
+  if (SSE_REG_P (dest)
+      && !EXT_REX_SSE_REG_P (dest)
+      && GET_MODE_BITSIZE (GET_MODE (dest)) > 128)
     {
       bool *used = (bool *) data;
       *used = true;
@@ -15096,14 +15108,14 @@ ix86_avx_u128_mode_needed (rtx_insn *insn)
       return AVX_U128_CLEAN;
     }
 
-  subrtx_iterator::array_type array;
-
   rtx set = single_set (insn);
   if (set)
     {
       rtx dest = SET_DEST (set);
       rtx src = SET_SRC (set);
-      if (ix86_check_avx_upper_register (dest))
+      if (SSE_REG_P (dest)
+	  && !EXT_REX_SSE_REG_P (dest)
+	  && GET_MODE_BITSIZE (GET_MODE (dest)) > 128)
 	{
 	  /* This is an YMM/ZMM load.  Return AVX_U128_DIRTY if the
 	     source isn't zero.  */
@@ -15114,9 +15126,8 @@ ix86_avx_u128_mode_needed (rtx_insn *insn)
 	}
       else
 	{
-	  FOR_EACH_SUBRTX (iter, array, src, NONCONST)
-	    if (ix86_check_avx_upper_register (*iter))
-	      return AVX_U128_DIRTY;
+	  if (ix86_check_avx_upper_register (src))
+	    return AVX_U128_DIRTY;
 	}
 
       /* This isn't YMM/ZMM load/store.  */
@@ -15127,9 +15138,8 @@ ix86_avx_u128_mode_needed (rtx_insn *insn)
      Hardware changes state only when a 256bit register is written to,
      but we need to prevent the compiler from moving optimal insertion
      point above eventual read from 256bit or 512 bit register.  */
-  FOR_EACH_SUBRTX (iter, array, PATTERN (insn), NONCONST)
-    if (ix86_check_avx_upper_register (*iter))
-      return AVX_U128_DIRTY;
+  if (ix86_check_avx_upper_register (PATTERN (insn)))
+    return AVX_U128_DIRTY;
 
   return AVX_U128_ANY;
 }
diff --git a/gcc/testsuite/gcc.target/i386/pr116512.c b/gcc/testsuite/gcc.target/i386/pr116512.c
new file mode 100644
index 00000000000..c2bc6c91b64
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr116512.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-march=x86-64-v4 -O2" } */
+/* { dg-final { scan-assembler-not "vzeroupper" { target { ! ia32 } } } } */
+
+#include <immintrin.h>
+
+struct B {
+  union {
+    __m512 f;
+    __m512i s;
+  };
+};
+
+struct B foo(int n) {
+  struct B res;
+  res.s = _mm512_set1_epi32(n);
+
+  return res;
+}
+
+__m512i bar(int n) {
+  struct B res;
+  res.s = _mm512_set1_epi32(n);
+
+  return res.s;
+}

commit 2ac3806d5465db5eb333926e8341a14b6baa2496
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Sep 3 00:32:49 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6749e3e5f9a..eef1a754730 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2024-09-02  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-08-30  liuhongt  <hongtao.liu@intel.com>
+
+	PR target/116512
+	* config/i386/i386.cc (ix86_check_avx_upper_register): Iterate
+	subrtx to scan for avx upper register.
+	(ix86_check_avx_upper_stores): Inline old
+	ix86_check_avx_upper_register.
+	(ix86_avx_u128_mode_needed): Ditto, and replace
+	FOR_EACH_SUBRTX with call to new
+	ix86_check_avx_upper_register.
+
 2024-08-22  liuhongt  <hongtao.liu@intel.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 18af8d7e288..a1e4e7fb875 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240902
+20240903
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 682b6ca98e1..d158bd2f0ee 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2024-09-02  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-08-30  liuhongt  <hongtao.liu@intel.com>
+
+	* gcc.target/i386/pr116512.c: New test.
+
 2024-08-30  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:

commit 59157c038d683e91c419a1fadd5f91f15218f57b
Author: Haochen Jiang <haochen.jiang@intel.com>
Date:   Mon Sep 2 15:00:22 2024 +0800

    i386: Fix vfpclassph non-optimizied intrin
    
    The intrin for non-optimized got a typo in mask type, which will cause
    the high bits of __mmask32 being unexpectedly zeroed.
    
    The test does not fail under O0 with current 1b since the testcase is
    wrong. We need to include avx512-mask-type.h after SIZE is defined, or
    it will always be __mmask8. I will write a seperate patch to fix that
    on trunk ONLY.
    
    gcc/ChangeLog:
    
            * config/i386/avx512fp16intrin.h
            (_mm512_mask_fpclass_ph_mask): Correct mask type to __mmask32.
            (_mm512_fpclass_ph_mask): Ditto.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/avx512fp16-vfpclassph-1c.c: New test.

diff --git a/gcc/config/i386/avx512fp16intrin.h b/gcc/config/i386/avx512fp16intrin.h
index f86050b2087..e8baebd41d3 100644
--- a/gcc/config/i386/avx512fp16intrin.h
+++ b/gcc/config/i386/avx512fp16intrin.h
@@ -3961,11 +3961,11 @@ _mm512_fpclass_ph_mask (__m512h __A, const int __imm)
 #else
 #define _mm512_mask_fpclass_ph_mask(u, x, c)				\
   ((__mmask32) __builtin_ia32_fpclassph512_mask ((__v32hf) (__m512h) (x), \
-						 (int) (c),(__mmask8)(u)))
+						 (int) (c),(__mmask32)(u)))
 
 #define _mm512_fpclass_ph_mask(x, c)                                    \
   ((__mmask32) __builtin_ia32_fpclassph512_mask ((__v32hf) (__m512h) (x), \
-						 (int) (c),(__mmask8)-1))
+						 (int) (c),(__mmask32)-1))
 #endif /* __OPIMTIZE__ */
 
 /* Intrinsics vgetexpph.  */
diff --git a/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1c.c b/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1c.c
new file mode 100644
index 00000000000..4739f1228e3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx512fp16-vfpclassph-1c.c
@@ -0,0 +1,77 @@
+/* { dg-do run } */
+/* { dg-options "-O0 -mavx512fp16" } */
+/* { dg-require-effective-target avx512fp16 } */
+
+#define AVX512FP16
+#include "avx512f-helper.h"
+
+#include <math.h>
+#include <limits.h>
+#include <float.h>
+#define SIZE (AVX512F_LEN / 16)
+#include "avx512f-mask-type.h"
+
+#ifndef __FPCLASSPH__
+#define __FPCLASSPH__
+int check_fp_class_hp (_Float16 src, int imm)
+{
+  int qNaN_res = isnan (src);
+  int sNaN_res = isnan (src);
+  int Pzero_res = (src == 0.0);
+  int Nzero_res = (src == -0.0);
+  int PInf_res = (isinf (src) == 1);
+  int NInf_res = (isinf (src) == -1);
+  int Denorm_res = (fpclassify (src) == FP_SUBNORMAL);
+  int FinNeg_res = __builtin_finite (src) && (src < 0);
+
+  int result = (((imm & 1) && qNaN_res)
+		|| (((imm >> 1) & 1) && Pzero_res)
+		|| (((imm >> 2) & 1) && Nzero_res)
+		|| (((imm >> 3) & 1) && PInf_res)
+		|| (((imm >> 4) & 1) && NInf_res)
+		|| (((imm >> 5) & 1) && Denorm_res)
+		|| (((imm >> 6) & 1) && FinNeg_res)
+		|| (((imm >> 7) & 1) && sNaN_res));
+  return result;
+}
+#endif
+
+MASK_TYPE
+CALC (_Float16 *s1, int imm)
+{
+  int i;
+  MASK_TYPE res = 0;
+
+  for (i = 0; i < SIZE; i++)
+    if (check_fp_class_hp(s1[i], imm))
+      res = res | (1 << i);
+
+  return res;
+}
+
+void
+TEST (void)
+{
+  int i;
+  UNION_TYPE (AVX512F_LEN, h) src;
+  MASK_TYPE res1, res2, res_ref = 0;
+  MASK_TYPE mask = MASK_VALUE;
+
+  src.a[SIZE - 1] = NAN;
+  src.a[SIZE - 2] = 1.0 / 0.0;
+  for (i = 0; i < SIZE - 2; i++)
+    {
+      src.a[i] = -24.43 + 0.6 * i;
+    }
+
+  res1 = INTRINSIC (_fpclass_ph_mask) (src.x, 0xFF);
+  res2 = INTRINSIC (_mask_fpclass_ph_mask) (mask, src.x, 0xFF);
+
+  res_ref = CALC (src.a, 0xFF);
+
+  if (res_ref != res1)
+    abort ();
+
+  if ((mask & res_ref) != res2)
+    abort ();
+}

commit 5c1955f563a5776529841608bee03de2a45d19a1
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Sep 4 00:27:51 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index eef1a754730..a494e6dc39a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2024-09-03  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* config/i386/avx512fp16intrin.h
+	(_mm512_mask_fpclass_ph_mask): Correct mask type to __mmask32.
+	(_mm512_fpclass_ph_mask): Ditto.
+
 2024-09-02  liuhongt  <hongtao.liu@intel.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index a1e4e7fb875..301a37d563d 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240903
+20240904
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d158bd2f0ee..56d4aad7f9b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2024-09-03  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* gcc.target/i386/avx512fp16-vfpclassph-1c.c: New test.
+
 2024-09-02  liuhongt  <hongtao.liu@intel.com>
 
 	Backported from master:

commit 66eb7b752ab61c02348d6af10945af3ff92b6d77
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Aug 21 07:25:25 2024 -0700

    Update LDPT_REGISTER_CLAIM_FILE_HOOK_V2 linker plugin hook
    
    This hook allows the BFD linker plugin to distinguish calls to
    claim_file_handler that know the object is being used by the linker
    (from ldmain.c:add_archive_element), from calls that don't know it's
    being used by the linker (from elf_link_is_defined_archive_symbol); in
    the latter case, the plugin should avoid including the unused LTO archive
    members in link output.  To get the proper support for archives with LTO
    common symbols, the linker fix
    
    commit a6f8fe0a9e9cbe871652e46ba7c22d5e9fb86208
    Author: H.J. Lu <hjl.tools@gmail.com>
    Date:   Wed Aug 14 20:50:02 2024 -0700
    
        lto: Don't include unused LTO archive members in output
    
    is required.
    
            PR lto/116361
            * lto-plugin.c (claim_file_handler_v2): Rename claimed to
            can_be_claimed.  Include the LTO object only if it is known to
            be included in link output.
    
    Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
    (cherry picked from commit a98dd536b1017c2b814a3465206c6c01b2890998)

diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c
index 152648338b9..61b0de62f52 100644
--- a/lto-plugin/lto-plugin.c
+++ b/lto-plugin/lto-plugin.c
@@ -1191,16 +1191,19 @@ process_offload_section (void *data, const char *name, off_t offset, off_t len)
   return 1;
 }
 
-/* Callback used by a linker to check if the plugin will claim FILE. Writes
-   the result in CLAIMED.  If KNOWN_USED, the object is known by the linker
-   to be used, or an older API version is in use that does not provide that
-   information; otherwise, the linker is only determining whether this is
-   a plugin object and it should not be registered as having offload data if
-   not claimed by the plugin.  */
+/* Callback used by a linker to check if the plugin can claim FILE.
+   Writes the result in CAN_BE_CLAIMED.  If KNOWN_USED != 0, the object
+   is known by the linker to be included in link output, or an older API
+   version is in use that does not provide that information.  Otherwise,
+   the linker is only determining whether this is a plugin object and
+   only the symbol table is needed by the linker.  In this case, the
+   object should not be included in link output and this function will
+   be called by the linker again with KNOWN_USED != 0 after the linker
+   decides the object should be included in link output. */
 
 static enum ld_plugin_status
-claim_file_handler_v2 (const struct ld_plugin_input_file *file, int *claimed,
-		       int known_used)
+claim_file_handler_v2 (const struct ld_plugin_input_file *file,
+		       int *can_be_claimed, int known_used)
 {
   enum ld_plugin_status status;
   struct plugin_objfile obj;
@@ -1229,7 +1232,7 @@ claim_file_handler_v2 (const struct ld_plugin_input_file *file, int *claimed,
     }
   lto_file.handle = file->handle;
 
-  *claimed = 0;
+  *can_be_claimed = 0;
   obj.file = file;
   obj.found = 0;
   obj.offload = false;
@@ -1286,15 +1289,19 @@ claim_file_handler_v2 (const struct ld_plugin_input_file *file, int *claimed,
 			      lto_file.symtab.syms);
       check (status == LDPS_OK, LDPL_FATAL, "could not add symbols");
 
-      LOCK_SECTION;
-      num_claimed_files++;
-      claimed_files =
-	xrealloc (claimed_files,
-		  num_claimed_files * sizeof (struct plugin_file_info));
-      claimed_files[num_claimed_files - 1] = lto_file;
-      UNLOCK_SECTION;
+      /* Include it only if it is known to be used for link output.  */
+      if (known_used)
+	{
+	  LOCK_SECTION;
+	  num_claimed_files++;
+	  claimed_files =
+	    xrealloc (claimed_files,
+		      num_claimed_files * sizeof (struct plugin_file_info));
+	  claimed_files[num_claimed_files - 1] = lto_file;
+	  UNLOCK_SECTION;
+	}
 
-      *claimed = 1;
+      *can_be_claimed = 1;
     }
 
   LOCK_SECTION;
@@ -1310,10 +1317,10 @@ claim_file_handler_v2 (const struct ld_plugin_input_file *file, int *claimed,
   /* If this is an LTO file without offload, and it is the first LTO file, save
      the pointer to the last offload file in the list.  Further offload LTO
      files will be inserted after it, if any.  */
-  if (*claimed && !obj.offload && offload_files_last_lto == NULL)
+  if (*can_be_claimed && !obj.offload && offload_files_last_lto == NULL)
     offload_files_last_lto = offload_files_last;
 
-  if (obj.offload && (known_used || obj.found > 0))
+  if (obj.offload && known_used && obj.found > 0)
     {
       /* Add file to the list.  The order must be exactly the same as the final
 	 order after recompilation and linking, otherwise host and target tables
@@ -1324,7 +1331,9 @@ claim_file_handler_v2 (const struct ld_plugin_input_file *file, int *claimed,
       ofld->name = lto_file.name;
       ofld->next = NULL;
 
-      if (*claimed && offload_files_last_lto == NULL && file->offset != 0
+      if (*can_be_claimed
+	  && offload_files_last_lto == NULL
+	  && file->offset != 0
 	  && gold_version == -1)
 	{
 	  /* ld only: insert first LTO file from the archive after the last real
@@ -1341,7 +1350,7 @@ claim_file_handler_v2 (const struct ld_plugin_input_file *file, int *claimed,
 	      offload_files->next = ofld;
 	    }
 	}
-      else if (*claimed && offload_files_last_lto != NULL)
+      else if (*can_be_claimed && offload_files_last_lto != NULL)
 	{
 	  /* Insert LTO file after the last LTO file in the list.  */
 	  ofld->next = offload_files_last_lto->next;
@@ -1356,7 +1365,7 @@ claim_file_handler_v2 (const struct ld_plugin_input_file *file, int *claimed,
 	offload_files_last = ofld;
       if (file->offset == 0)
 	offload_files_last_obj = ofld;
-      if (*claimed)
+      if (*can_be_claimed)
 	offload_files_last_lto = ofld;
       num_offload_files++;
     }

commit 0562522e1290da08bc5a89182b9ae80c3cc9d1db
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Aug 23 05:36:45 2024 -0700

    lto: Don't check obj.found for offload section
    
    obj.found is the number of LTO symbols.  We should include the offload
    section when it is used by linker even if there are no LTO symbols.
    
            PR lto/116361
            * lto-plugin.c (claim_file_handler_v2): Don't check obj.found
            for the offload section.
    
    Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
    (cherry picked from commit cb51e0b236c7d492af2033582230e78d8b55290f)

diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c
index 61b0de62f52..c564b36eb92 100644
--- a/lto-plugin/lto-plugin.c
+++ b/lto-plugin/lto-plugin.c
@@ -1320,7 +1320,7 @@ claim_file_handler_v2 (const struct ld_plugin_input_file *file,
   if (*can_be_claimed && !obj.offload && offload_files_last_lto == NULL)
     offload_files_last_lto = offload_files_last;
 
-  if (obj.offload && known_used && obj.found > 0)
+  if (obj.offload && known_used)
     {
       /* Add file to the list.  The order must be exactly the same as the final
 	 order after recompilation and linking, otherwise host and target tables

commit c6e04d1f92fc3b4215e7c179da5d4a51356f69a8
Author: Andrew Carlotti <andrew.carlotti@arm.com>
Date:   Tue Aug 13 16:15:11 2024 +0100

    aarch64: Refactor check_required_extensions
    
    Replace TARGET_GENERAL_REGS_ONLY check with an explicit check that
    aarch64_isa_flags enables all required extensions.  This will be more
    flexible when repurposing this function for non-SVE intrinsics.
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64-sve-builtins.cc
            (check_required_registers): Remove target check and rename to...
            (report_missing_registers): ...this.
            (check_required_extensions): Refactor.

diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc
index f3983a123e3..46bd9bc5a35 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins.cc
@@ -1094,27 +1094,19 @@ report_missing_extension (location_t location, tree fndecl,
   reported_missing_extension_p = true;
 }
 
-/* Check whether the registers required by SVE function fndecl are available.
-   Report an error against LOCATION and return false if not.  */
-static bool
-check_required_registers (location_t location, tree fndecl)
+/* Report an error against LOCATION that the user has tried to use
+   function FNDECL when non-general registers are disabled.  */
+static void
+report_missing_registers (location_t location, tree fndecl)
 {
   /* Avoid reporting a slew of messages for a single oversight.  */
   if (reported_missing_registers_p)
-    return false;
-
-  if (TARGET_GENERAL_REGS_ONLY)
-    {
-      /* SVE registers are not usable when -mgeneral-regs-only option
-	 is specified.  */
-      error_at (location,
-		"ACLE function %qD is incompatible with the use of %qs",
-		fndecl, "-mgeneral-regs-only");
-      reported_missing_registers_p = true;
-      return false;
-    }
+    return;
 
-  return true;
+  error_at (location,
+	    "ACLE function %qD is incompatible with the use of %qs",
+	    fndecl, "-mgeneral-regs-only");
+  reported_missing_registers_p = true;
 }
 
 /* Check whether all the AARCH64_FL_* values in REQUIRED_EXTENSIONS are
@@ -1124,9 +1116,19 @@ static bool
 check_required_extensions (location_t location, tree fndecl,
 			   aarch64_feature_flags required_extensions)
 {
+  if ((required_extensions & ~aarch64_isa_flags) == 0)
+    return true;
+
   auto missing_extensions = required_extensions & ~aarch64_asm_isa_flags;
+
   if (missing_extensions == 0)
-    return check_required_registers (location, fndecl);
+    {
+      /* All required extensions are enabled in aarch64_asm_isa_flags, so the
+	 error must be the use of general-regs-only.  */
+      report_missing_registers (location, fndecl);
+      return false;
+    }
+
 
   if (missing_extensions & AARCH64_FL_SM_OFF)
     {

commit 422c3f1965d76a541385bdc419a4e1c46f007525
Author: Andrew Carlotti <andrew.carlotti@arm.com>
Date:   Tue Jul 18 16:40:58 2023 +0100

    aarch64: Move check_required_extensions
    
    Move SVE extension checking functionality to aarch64-builtins.cc, so
    that it can be shared by non-SVE intrinsics.
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64-sve-builtins.cc (check_builtin_call)
            (expand_builtin): Update calls to the below.
            (report_missing_extension, report_missing_registers)
            (check_required_extensions): Move out of aarch64_sve namespace,
            rename, and move into...
            * config/aarch64/aarch64-builtins.cc (aarch64_report_missing_extension)
            (aarch64_report_missing_registers)
            (aarch64_check_required_extensions) ...here.
            * config/aarch64/aarch64-protos.h (aarch64_check_required_extensions):
            Add prototype.

diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
index 75d21de1401..ad3986ce002 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -2098,6 +2098,106 @@ aarch64_general_builtin_decl (unsigned code, bool)
   return aarch64_builtin_decls[code];
 }
 
+/* True if we've already complained about attempts to use functions
+   when the required extension is disabled.  */
+static bool reported_missing_extension_p;
+
+/* True if we've already complained about attempts to use functions
+   which require registers that are missing.  */
+static bool reported_missing_registers_p;
+
+/* Report an error against LOCATION that the user has tried to use
+   function FNDECL when extension EXTENSION is disabled.  */
+static void
+aarch64_report_missing_extension (location_t location, tree fndecl,
+				  const char *extension)
+{
+  /* Avoid reporting a slew of messages for a single oversight.  */
+  if (reported_missing_extension_p)
+    return;
+
+  error_at (location, "ACLE function %qD requires ISA extension %qs",
+	    fndecl, extension);
+  inform (location, "you can enable %qs using the command-line"
+	  " option %<-march%>, or by using the %<target%>"
+	  " attribute or pragma", extension);
+  reported_missing_extension_p = true;
+}
+
+/* Report an error against LOCATION that the user has tried to use
+   function FNDECL when non-general registers are disabled.  */
+static void
+aarch64_report_missing_registers (location_t location, tree fndecl)
+{
+  /* Avoid reporting a slew of messages for a single oversight.  */
+  if (reported_missing_registers_p)
+    return;
+
+  error_at (location,
+	    "ACLE function %qD is incompatible with the use of %qs",
+	    fndecl, "-mgeneral-regs-only");
+  reported_missing_registers_p = true;
+}
+
+/* Check whether all the AARCH64_FL_* values in REQUIRED_EXTENSIONS are
+   enabled, given that those extensions are required for function FNDECL.
+   Report an error against LOCATION if not.  */
+bool
+aarch64_check_required_extensions (location_t location, tree fndecl,
+				   aarch64_feature_flags required_extensions)
+{
+  if ((required_extensions & ~aarch64_isa_flags) == 0)
+    return true;
+
+  auto missing_extensions = required_extensions & ~aarch64_asm_isa_flags;
+
+  if (missing_extensions == 0)
+    {
+      /* All required extensions are enabled in aarch64_asm_isa_flags, so the
+	 error must be the use of general-regs-only.  */
+      aarch64_report_missing_registers (location, fndecl);
+      return false;
+    }
+
+  if (missing_extensions & AARCH64_FL_SM_OFF)
+    {
+      error_at (location, "ACLE function %qD cannot be called when"
+		" SME streaming mode is enabled", fndecl);
+      return false;
+    }
+
+  if (missing_extensions & AARCH64_FL_SM_ON)
+    {
+      error_at (location, "ACLE function %qD can only be called when"
+		" SME streaming mode is enabled", fndecl);
+      return false;
+    }
+
+  if (missing_extensions & AARCH64_FL_ZA_ON)
+    {
+      error_at (location, "ACLE function %qD can only be called from"
+		" a function that has %qs state", fndecl, "za");
+      return false;
+    }
+
+  static const struct {
+    aarch64_feature_flags flag;
+    const char *name;
+  } extensions[] = {
+#define AARCH64_OPT_EXTENSION(EXT_NAME, IDENT, C, D, E, F) \
+    { AARCH64_FL_##IDENT, EXT_NAME },
+#include "aarch64-option-extensions.def"
+  };
+
+  for (unsigned int i = 0; i < ARRAY_SIZE (extensions); ++i)
+    if (missing_extensions & extensions[i].flag)
+      {
+	aarch64_report_missing_extension (location, fndecl, extensions[i].name);
+	return false;
+      }
+  gcc_unreachable ();
+}
+
 bool
 aarch64_general_check_builtin_call (location_t location, vec<location_t>,
 			    unsigned int code, tree fndecl,
diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
index 42639e9efcf..5d067cb64b4 100644
--- a/gcc/config/aarch64/aarch64-protos.h
+++ b/gcc/config/aarch64/aarch64-protos.h
@@ -1008,6 +1008,8 @@ tree aarch64_general_builtin_rsqrt (unsigned int);
 void handle_arm_acle_h (void);
 void handle_arm_neon_h (void);
 
+bool aarch64_check_required_extensions (location_t, tree,
+					aarch64_feature_flags);
 bool aarch64_general_check_builtin_call (location_t, vec<location_t>,
 					 unsigned int, tree, unsigned int,
 					 tree *);
diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc
index 46bd9bc5a35..e0458f7c1f6 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins.cc
@@ -947,14 +947,6 @@ static hash_table<registered_function_hasher> *function_table;
    are IDENTIFIER_NODEs.  */
 static GTY(()) hash_map<tree, registered_function *> *overload_names[2];
 
-/* True if we've already complained about attempts to use functions
-   when the required extension is disabled.  */
-static bool reported_missing_extension_p;
-
-/* True if we've already complained about attempts to use functions
-   which require registers that are missing.  */
-static bool reported_missing_registers_p;
-
 /* Record that TYPE is an ABI-defined SVE type that contains NUM_ZR SVE vectors
    and NUM_PR SVE predicates.  MANGLED_NAME, if nonnull, is the ABI-defined
    mangling of the type.  ACLE_NAME is the <arm_sve.h> name of the type.  */
@@ -1076,98 +1068,6 @@ lookup_fndecl (tree fndecl)
   return &(*registered_functions)[subcode]->instance;
 }
 
-/* Report an error against LOCATION that the user has tried to use
-   function FNDECL when extension EXTENSION is disabled.  */
-static void
-report_missing_extension (location_t location, tree fndecl,
-			  const char *extension)
-{
-  /* Avoid reporting a slew of messages for a single oversight.  */
-  if (reported_missing_extension_p)
-    return;
-
-  error_at (location, "ACLE function %qD requires ISA extension %qs",
-	    fndecl, extension);
-  inform (location, "you can enable %qs using the command-line"
-	  " option %<-march%>, or by using the %<target%>"
-	  " attribute or pragma", extension);
-  reported_missing_extension_p = true;
-}
-
-/* Report an error against LOCATION that the user has tried to use
-   function FNDECL when non-general registers are disabled.  */
-static void
-report_missing_registers (location_t location, tree fndecl)
-{
-  /* Avoid reporting a slew of messages for a single oversight.  */
-  if (reported_missing_registers_p)
-    return;
-
-  error_at (location,
-	    "ACLE function %qD is incompatible with the use of %qs",
-	    fndecl, "-mgeneral-regs-only");
-  reported_missing_registers_p = true;
-}
-
-/* Check whether all the AARCH64_FL_* values in REQUIRED_EXTENSIONS are
-   enabled, given that those extensions are required for function FNDECL.
-   Report an error against LOCATION if not.  */
-static bool
-check_required_extensions (location_t location, tree fndecl,
-			   aarch64_feature_flags required_extensions)
-{
-  if ((required_extensions & ~aarch64_isa_flags) == 0)
-    return true;
-
-  auto missing_extensions = required_extensions & ~aarch64_asm_isa_flags;
-
-  if (missing_extensions == 0)
-    {
-      /* All required extensions are enabled in aarch64_asm_isa_flags, so the
-	 error must be the use of general-regs-only.  */
-      report_missing_registers (location, fndecl);
-      return false;
-    }
-
-
-  if (missing_extensions & AARCH64_FL_SM_OFF)
-    {
-      error_at (location, "ACLE function %qD cannot be called when"
-		" SME streaming mode is enabled", fndecl);
-      return false;
-    }
-
-  if (missing_extensions & AARCH64_FL_SM_ON)
-    {
-      error_at (location, "ACLE function %qD can only be called when"
-		" SME streaming mode is enabled", fndecl);
-      return false;
-    }
-
-  if (missing_extensions & AARCH64_FL_ZA_ON)
-    {
-      error_at (location, "ACLE function %qD can only be called from"
-		" a function that has %qs state", fndecl, "za");
-      return false;
-    }
-
-  static const struct {
-    aarch64_feature_flags flag;
-    const char *name;
-  } extensions[] = {
-#define AARCH64_OPT_EXTENSION(EXT_NAME, IDENT, C, D, E, F) \
-    { AARCH64_FL_##IDENT, EXT_NAME },
-#include "aarch64-option-extensions.def"
-  };
-
-  for (unsigned int i = 0; i < ARRAY_SIZE (extensions); ++i)
-    if (missing_extensions & extensions[i].flag)
-      {
-	report_missing_extension (location, fndecl, extensions[i].name);
-	return false;
-      }
-  gcc_unreachable ();
-}
 
 /* Report that LOCATION has a call to FNDECL in which argument ARGNO
    was not an integer constant expression.  ARGNO counts from zero.  */
@@ -4763,7 +4663,8 @@ check_builtin_call (location_t location, vec<location_t>, unsigned int code,
 		    tree fndecl, unsigned int nargs, tree *args)
 {
   const registered_function &rfn = *(*registered_functions)[code];
-  if (!check_required_extensions (location, rfn.decl, rfn.required_extensions))
+  if (!aarch64_check_required_extensions (location, rfn.decl,
+					  rfn.required_extensions))
     return false;
   return function_checker (location, rfn.instance, fndecl,
 			   TREE_TYPE (rfn.decl), nargs, args).check ();
@@ -4786,8 +4687,8 @@ rtx
 expand_builtin (unsigned int code, tree exp, rtx target)
 {
   registered_function &rfn = *(*registered_functions)[code];
-  if (!check_required_extensions (EXPR_LOCATION (exp), rfn.decl,
-				  rfn.required_extensions))
+  if (!aarch64_check_required_extensions (EXPR_LOCATION (exp), rfn.decl,
+					  rfn.required_extensions))
     return target;
   return function_expander (rfn.instance, rfn.decl, exp, target).expand ();
 }

commit 0a3a0d4a5e32e9b914b5c5cc283ee485adc6cd11
Author: Andrew Carlotti <andrew.carlotti@arm.com>
Date:   Thu Oct 26 15:43:44 2023 +0100

    aarch64: Fix tme intrinsic availability
    
    The availability of tme intrinsics was previously gated at both
    initialisation time (using global target options) and usage time
    (accounting for function-specific target options).  This patch removes
    the check at initialisation time, and also moves the intrinsics out of
    the header file to allow for better error messages (matching the
    existing error messages for SVE intrinsics).
    
    gcc/ChangeLog:
    
            PR target/112108
            * config/aarch64/aarch64-builtins.cc (aarch64_init_tme_builtins):
            Define intrinsic names directly.
            (aarch64_general_init_builtins): Move tme initialisation...
            (handle_arm_acle_h): ...to here, and remove feature check.
            (aarch64_general_check_builtin_call): Check tme intrinsics.
            * config/aarch64/arm_acle.h (__tstart, __tcommit, __tcancel)
            (__ttest): Remove.
            (_TMFAILURE_*): Define unconditionally.
    
    gcc/testsuite/ChangeLog:
    
            PR target/112108
            * gcc.target/aarch64/acle/tme_guard-1.c: New test.
            * gcc.target/aarch64/acle/tme_guard-2.c: New test.
            * gcc.target/aarch64/acle/tme_guard-3.c: New test.
            * gcc.target/aarch64/acle/tme_guard-4.c: New test.

diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
index ad3986ce002..70437641219 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -1709,21 +1709,17 @@ aarch64_init_tme_builtins (void)
     = build_function_type_list (void_type_node, uint64_type_node, NULL);
 
   aarch64_builtin_decls[AARCH64_TME_BUILTIN_TSTART]
-    = aarch64_general_add_builtin ("__builtin_aarch64_tstart",
-				   ftype_uint64_void,
-				   AARCH64_TME_BUILTIN_TSTART);
+    = aarch64_general_simulate_builtin ("__tstart", ftype_uint64_void,
+					AARCH64_TME_BUILTIN_TSTART);
   aarch64_builtin_decls[AARCH64_TME_BUILTIN_TTEST]
-    = aarch64_general_add_builtin ("__builtin_aarch64_ttest",
-				   ftype_uint64_void,
-				   AARCH64_TME_BUILTIN_TTEST);
+    = aarch64_general_simulate_builtin ("__ttest", ftype_uint64_void,
+					AARCH64_TME_BUILTIN_TTEST);
   aarch64_builtin_decls[AARCH64_TME_BUILTIN_TCOMMIT]
-    = aarch64_general_add_builtin ("__builtin_aarch64_tcommit",
-				   ftype_void_void,
-				   AARCH64_TME_BUILTIN_TCOMMIT);
+    = aarch64_general_simulate_builtin ("__tcommit", ftype_void_void,
+					AARCH64_TME_BUILTIN_TCOMMIT);
   aarch64_builtin_decls[AARCH64_TME_BUILTIN_TCANCEL]
-    = aarch64_general_add_builtin ("__builtin_aarch64_tcancel",
-				   ftype_void_uint64,
-				   AARCH64_TME_BUILTIN_TCANCEL);
+    = aarch64_general_simulate_builtin ("__tcancel", ftype_void_uint64,
+					AARCH64_TME_BUILTIN_TCANCEL);
 }
 
 /* Add builtins for Random Number instructions.  */
@@ -1986,6 +1982,7 @@ handle_arm_acle_h (void)
 {
   if (TARGET_LS64)
     aarch64_init_ls64_builtins ();
+  aarch64_init_tme_builtins ();
 }
 
 /* Initialize fpsr fpcr getters and setters.  */
@@ -2078,9 +2075,6 @@ aarch64_general_init_builtins (void)
   if (!TARGET_ILP32)
     aarch64_init_pauth_hint_builtins ();
 
-  if (TARGET_TME)
-    aarch64_init_tme_builtins ();
-
   if (TARGET_MEMTAG)
     aarch64_init_memtag_builtins ();
 
@@ -2203,6 +2197,7 @@ aarch64_general_check_builtin_call (location_t location, vec<location_t>,
 			    unsigned int code, tree fndecl,
 			    unsigned int nargs ATTRIBUTE_UNUSED, tree *args)
 {
+  tree decl = aarch64_builtin_decls[code];
   switch (code)
     {
     case AARCH64_RSR:
@@ -2215,15 +2210,29 @@ aarch64_general_check_builtin_call (location_t location, vec<location_t>,
     case AARCH64_WSR64:
     case AARCH64_WSRF:
     case AARCH64_WSRF64:
-      tree addr = STRIP_NOPS (args[0]);
-      if (TREE_CODE (TREE_TYPE (addr)) != POINTER_TYPE
-	  || TREE_CODE (addr) != ADDR_EXPR
-	  || TREE_CODE (TREE_OPERAND (addr, 0)) != STRING_CST)
-	{
-	  error_at (location, "first argument to %qD must be a string literal",
-		    fndecl);
-	  return false;
-	}
+      {
+	tree addr = STRIP_NOPS (args[0]);
+	if (TREE_CODE (TREE_TYPE (addr)) != POINTER_TYPE
+	    || TREE_CODE (addr) != ADDR_EXPR
+	    || TREE_CODE (TREE_OPERAND (addr, 0)) != STRING_CST)
+	  {
+	    error_at (location,
+		      "first argument to %qD must be a string literal",
+		      fndecl);
+	    return false;
+	  }
+	break;
+      }
+
+    case AARCH64_TME_BUILTIN_TSTART:
+    case AARCH64_TME_BUILTIN_TCOMMIT:
+    case AARCH64_TME_BUILTIN_TTEST:
+    case AARCH64_TME_BUILTIN_TCANCEL:
+      return aarch64_check_required_extensions (location, decl,
+						AARCH64_FL_TME);
+
+    default:
+      break;
     }
   /* Default behavior.  */
   return true;
diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h
index 2aa681090fa..2d84ab1bd3f 100644
--- a/gcc/config/aarch64/arm_acle.h
+++ b/gcc/config/aarch64/arm_acle.h
@@ -252,10 +252,7 @@ __crc32d (uint32_t __a, uint64_t __b)
 
 #pragma GCC pop_options
 
-#ifdef __ARM_FEATURE_TME
-#pragma GCC push_options
-#pragma GCC target ("+nothing+tme")
-
+/* Constants for TME failure reason.  */
 #define _TMFAILURE_REASON     0x00007fffu
 #define _TMFAILURE_RTRY       0x00008000u
 #define _TMFAILURE_CNCL       0x00010000u
@@ -268,37 +265,6 @@ __crc32d (uint32_t __a, uint64_t __b)
 #define _TMFAILURE_INT        0x00800000u
 #define _TMFAILURE_TRIVIAL    0x01000000u
 
-__extension__ extern __inline uint64_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-__tstart (void)
-{
-  return __builtin_aarch64_tstart ();
-}
-
-__extension__ extern __inline void
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-__tcommit (void)
-{
-  __builtin_aarch64_tcommit ();
-}
-
-__extension__ extern __inline void
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-__tcancel (const uint64_t __reason)
-{
-  __builtin_aarch64_tcancel (__reason);
-}
-
-__extension__ extern __inline uint64_t
-__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
-__ttest (void)
-{
-  return __builtin_aarch64_ttest ();
-}
-
-#pragma GCC pop_options
-#endif
-
 #ifdef __ARM_FEATURE_LS64
 typedef __arm_data512_t data512_t;
 #endif
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c
new file mode 100644
index 00000000000..9894d3341f6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8-a" } */
+
+#include <arm_acle.h>
+
+void foo (void)
+{
+  __tcommit (); /* { dg-error {ACLE function '__tcommit' requires ISA extension 'tme'} } */
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c
new file mode 100644
index 00000000000..4e3d69712b1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8-a" } */
+
+#include <arm_acle.h>
+
+#pragma GCC target("arch=armv8-a+tme")
+void foo (void)
+{
+  __tcommit ();
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c
new file mode 100644
index 00000000000..5f480ebb820
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8-a+tme -mgeneral-regs-only" } */
+
+#include <arm_acle.h>
+
+void foo (void)
+{
+  __tcommit ();
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c
new file mode 100644
index 00000000000..bf4d368370c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8-a+tme" } */
+
+#include <arm_acle.h>
+
+#pragma GCC target("arch=armv8-a")
+void foo (void)
+{
+  __tcommit (); /* { dg-error {ACLE function '__tcommit' requires ISA extension 'tme'} } */
+}

commit 8485606056ed3ca0d0acf6e0d943975e9173e7cd
Author: Andrew Carlotti <andrew.carlotti@arm.com>
Date:   Tue Jul 18 20:09:38 2023 +0100

    aarch64: Fix memtag intrinsic availability
    
    The availability of memtag intrinsics and data types were determined
    solely by the globally specified architecture features, which did not
    reflect any changes specified in target pragmas or attributes.
    
    This patch removes the initialisation-time guards for the intrinsics,
    and replaces them with checks at use time. It also removes the macro
    indirection from the header file - this simplifies the header, and
    allows the missing extension error reporting to find the user-facing
    intrinsic names.
    
    gcc/ChangeLog:
    
            PR target/112108
            * config/aarch64/aarch64-builtins.cc (aarch64_init_memtag_builtins):
            Define intrinsic names directly.
            (aarch64_general_init_builtins): Move memtag intialisation...
            (handle_arm_acle_h): ...to here, and remove feature check.
            (aarch64_general_check_builtin_call): Check memtag intrinsics.
            * config/aarch64/arm_acle.h (__arm_mte_create_random_tag)
            (__arm_mte_exclude_tag, __arm_mte_ptrdiff)
            (__arm_mte_increment_tag, __arm_mte_set_tag, __arm_mte_get_tag):
            Remove.
    
    gcc/testsuite/ChangeLog:
    
            PR target/112108
            * gcc.target/aarch64/acle/memtag_guard-1.c: New test.
            * gcc.target/aarch64/acle/memtag_guard-2.c: New test.
            * gcc.target/aarch64/acle/memtag_guard-3.c: New test.
            * gcc.target/aarch64/acle/memtag_guard-4.c: New test.

diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
index 70437641219..ba04424645d 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -1850,27 +1850,27 @@ aarch64_init_memtag_builtins (void)
 
 #define AARCH64_INIT_MEMTAG_BUILTINS_DECL(F, N, I, T) \
   aarch64_builtin_decls[AARCH64_MEMTAG_BUILTIN_##F] \
-    = aarch64_general_add_builtin ("__builtin_aarch64_memtag_"#N, \
-				   T, AARCH64_MEMTAG_BUILTIN_##F); \
+    = aarch64_general_simulate_builtin ("__arm_mte_"#N, T, \
+					AARCH64_MEMTAG_BUILTIN_##F); \
   aarch64_memtag_builtin_data[AARCH64_MEMTAG_BUILTIN_##F - \
 			      AARCH64_MEMTAG_BUILTIN_START - 1] = \
 				{T, CODE_FOR_##I};
 
   fntype = build_function_type_list (ptr_type_node, ptr_type_node,
 				     uint64_type_node, NULL);
-  AARCH64_INIT_MEMTAG_BUILTINS_DECL (IRG, irg, irg, fntype);
+  AARCH64_INIT_MEMTAG_BUILTINS_DECL (IRG, create_random_tag, irg, fntype);
 
   fntype = build_function_type_list (uint64_type_node, ptr_type_node,
 				     uint64_type_node, NULL);
-  AARCH64_INIT_MEMTAG_BUILTINS_DECL (GMI, gmi, gmi, fntype);
+  AARCH64_INIT_MEMTAG_BUILTINS_DECL (GMI, exclude_tag, gmi, fntype);
 
   fntype = build_function_type_list (ptrdiff_type_node, ptr_type_node,
 				     ptr_type_node, NULL);
-  AARCH64_INIT_MEMTAG_BUILTINS_DECL (SUBP, subp, subp, fntype);
+  AARCH64_INIT_MEMTAG_BUILTINS_DECL (SUBP, ptrdiff, subp, fntype);
 
   fntype = build_function_type_list (ptr_type_node, ptr_type_node,
 				     unsigned_type_node, NULL);
-  AARCH64_INIT_MEMTAG_BUILTINS_DECL (INC_TAG, inc_tag, addg, fntype);
+  AARCH64_INIT_MEMTAG_BUILTINS_DECL (INC_TAG, increment_tag, addg, fntype);
 
   fntype = build_function_type_list (void_type_node, ptr_type_node, NULL);
   AARCH64_INIT_MEMTAG_BUILTINS_DECL (SET_TAG, set_tag, stg, fntype);
@@ -1983,6 +1983,7 @@ handle_arm_acle_h (void)
   if (TARGET_LS64)
     aarch64_init_ls64_builtins ();
   aarch64_init_tme_builtins ();
+  aarch64_init_memtag_builtins ();
 }
 
 /* Initialize fpsr fpcr getters and setters.  */
@@ -2075,9 +2076,6 @@ aarch64_general_init_builtins (void)
   if (!TARGET_ILP32)
     aarch64_init_pauth_hint_builtins ();
 
-  if (TARGET_MEMTAG)
-    aarch64_init_memtag_builtins ();
-
   if (in_lto_p)
     handle_arm_acle_h ();
 }
@@ -2234,7 +2232,12 @@ aarch64_general_check_builtin_call (location_t location, vec<location_t>,
     default:
       break;
     }
-  /* Default behavior.  */
+
+  if (code >= AARCH64_MEMTAG_BUILTIN_START
+      && code <= AARCH64_MEMTAG_BUILTIN_END)
+    return aarch64_check_required_extensions (location, decl,
+					      AARCH64_FL_MEMTAG);
+
   return true;
 }
 
diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h
index 2d84ab1bd3f..ab043267913 100644
--- a/gcc/config/aarch64/arm_acle.h
+++ b/gcc/config/aarch64/arm_acle.h
@@ -287,29 +287,6 @@ __rndrrs (uint64_t *__res)
 
 #pragma GCC pop_options
 
-#pragma GCC push_options
-#pragma GCC target ("+nothing+memtag")
-
-#define __arm_mte_create_random_tag(__ptr, __u64_mask) \
-  __builtin_aarch64_memtag_irg(__ptr, __u64_mask)
-
-#define __arm_mte_exclude_tag(__ptr, __u64_excluded) \
-  __builtin_aarch64_memtag_gmi(__ptr, __u64_excluded)
-
-#define __arm_mte_ptrdiff(__ptr_a, __ptr_b) \
-  __builtin_aarch64_memtag_subp(__ptr_a, __ptr_b)
-
-#define __arm_mte_increment_tag(__ptr, __u_offset) \
-  __builtin_aarch64_memtag_inc_tag(__ptr, __u_offset)
-
-#define __arm_mte_set_tag(__tagged_address) \
-  __builtin_aarch64_memtag_set_tag(__tagged_address)
-
-#define __arm_mte_get_tag(__address) \
-  __builtin_aarch64_memtag_get_tag(__address)
-
-#pragma GCC pop_options
-
 #define __arm_rsr(__regname) \
   __builtin_aarch64_rsr (__regname)
 
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-1.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-1.c
new file mode 100644
index 00000000000..4a34c37f44f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-1.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8.5-a" } */
+
+#include <arm_acle.h>
+
+void foo (int * p)
+{
+  __arm_mte_set_tag (p); /* { dg-error {ACLE function '__arm_mte_set_tag' requires ISA extension 'memtag'} } */
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-2.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-2.c
new file mode 100644
index 00000000000..bf06b284dad
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-2.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8.5-a" } */
+
+#include <arm_acle.h>
+
+#pragma GCC target("arch=armv8.5-a+memtag")
+void foo (int * p)
+{
+  __arm_mte_set_tag (p);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-3.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-3.c
new file mode 100644
index 00000000000..1f4ffa454a7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-3.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8.5-a+memtag -mgeneral-regs-only" } */
+
+#include <arm_acle.h>
+
+void foo (int * p)
+{
+  __arm_mte_set_tag (p);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-4.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-4.c
new file mode 100644
index 00000000000..a1cd45ec79d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-4.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8.5-a+memtag" } */
+
+#include <arm_acle.h>
+
+#pragma GCC target("arch=armv8.5-a")
+void foo (int * p)
+{
+  __arm_mte_set_tag (p); /* { dg-error {ACLE function '__arm_mte_set_tag' requires ISA extension 'memtag'} } */
+}

commit 9899be7d5380c732b56ba155d4a9e192a2c483b1
Author: Andrew Carlotti <andrew.carlotti@arm.com>
Date:   Thu Oct 26 15:45:15 2023 +0100

    aarch64: Fix ls64 intrinsic availability
    
    The availability of ls64 intrinsics and data types were determined
    solely by the globally specified architecture features, which did not
    reflect any changes specified in target pragmas or attributes.
    
    This patch removes the initialisation-time guards for the intrinsics,
    and replaces them with checks at use time. We also get better error
    messages when ls64 is not available (matching the existing error
    messages for SVE intrinsics).
    
    The data512_t type is made always available; this is consistent with the
    present behaviour for Neon fp16/bf16 types.
    
    gcc/ChangeLog:
    
            PR target/112108
            * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): Remove
            feature check at initialisation.
            (aarch64_general_check_builtin_call): Check ls64 intrinsics.
            * config/aarch64/arm_acle.h: (data512_t) Make always available.
    
    gcc/testsuite/ChangeLog:
    
            PR target/112108
            * gcc.target/aarch64/acle/ls64_guard-1.c: New test.
            * gcc.target/aarch64/acle/ls64_guard-2.c: New test.
            * gcc.target/aarch64/acle/ls64_guard-3.c: New test.
            * gcc.target/aarch64/acle/ls64_guard-4.c: New test.

diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
index ba04424645d..d5b5700d25d 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -1980,8 +1980,7 @@ aarch64_init_data_intrinsics (void)
 void
 handle_arm_acle_h (void)
 {
-  if (TARGET_LS64)
-    aarch64_init_ls64_builtins ();
+  aarch64_init_ls64_builtins ();
   aarch64_init_tme_builtins ();
   aarch64_init_memtag_builtins ();
 }
@@ -2229,6 +2228,13 @@ aarch64_general_check_builtin_call (location_t location, vec<location_t>,
       return aarch64_check_required_extensions (location, decl,
 						AARCH64_FL_TME);
 
+    case AARCH64_LS64_BUILTIN_LD64B:
+    case AARCH64_LS64_BUILTIN_ST64B:
+    case AARCH64_LS64_BUILTIN_ST64BV:
+    case AARCH64_LS64_BUILTIN_ST64BV0:
+      return aarch64_check_required_extensions (location, decl,
+						AARCH64_FL_LS64);
+
     default:
       break;
     }
diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h
index ab043267913..ab4e7e60e04 100644
--- a/gcc/config/aarch64/arm_acle.h
+++ b/gcc/config/aarch64/arm_acle.h
@@ -265,9 +265,7 @@ __crc32d (uint32_t __a, uint64_t __b)
 #define _TMFAILURE_INT        0x00800000u
 #define _TMFAILURE_TRIVIAL    0x01000000u
 
-#ifdef __ARM_FEATURE_LS64
 typedef __arm_data512_t data512_t;
-#endif
 
 #pragma GCC push_options
 #pragma GCC target ("+nothing+rng")
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-1.c b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-1.c
new file mode 100644
index 00000000000..7dfc193a293
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-1.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8.6-a" } */
+
+#include <arm_acle.h>
+
+data512_t foo (void * p)
+{
+  return __arm_ld64b (p); /* { dg-error {ACLE function '__arm_ld64b' requires ISA extension 'ls64'} } */
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-2.c b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-2.c
new file mode 100644
index 00000000000..3ede05a81f0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-2.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8.6-a" } */
+
+#include <arm_acle.h>
+
+#pragma GCC target("arch=armv8-a+ls64")
+data512_t foo (void * p)
+{
+  return __arm_ld64b (p);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-3.c b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-3.c
new file mode 100644
index 00000000000..e0fccdad7be
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-3.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8-a+ls64 -mgeneral-regs-only" } */
+
+#include <arm_acle.h>
+
+data512_t foo (void * p)
+{
+  return __arm_ld64b (p);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-4.c b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-4.c
new file mode 100644
index 00000000000..af1d9a4241f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-4.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=armv8-a+ls64" } */
+
+#include <arm_acle.h>
+
+#pragma GCC target("arch=armv8.6-a")
+data512_t foo (void * p)
+{
+  return __arm_ld64b (p); /* { dg-error {ACLE function '__arm_ld64b' requires ISA extension 'ls64'} } */
+}

commit 3b8a67b0cfc072f027eab24fb72d48d10cc890b4
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Aug 20 16:52:22 2024 +0100

    libstdc++: Fix std::variant to reject array types [PR116381]
    
    For the backport, rejecting array types is only done in strict modes.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116381
            * include/std/variant (variant): Fix conditions for
            static_assert to match the spec.
            * testsuite/20_util/variant/types_neg.cc: New test.
    
    (cherry picked from commit 1e10b3b8825ee398f077500af6ae1f5db180983a)

diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant
index 4e56134a6f7..834bb548f13 100644
--- a/libstdc++-v3/include/std/variant
+++ b/libstdc++-v3/include/std/variant
@@ -1374,10 +1374,13 @@ namespace __variant
 
       static_assert(sizeof...(_Types) > 0,
 		    "variant must have at least one alternative");
-      static_assert(!(std::is_reference_v<_Types> || ...),
-		    "variant must have no reference alternative");
-      static_assert(!(std::is_void_v<_Types> || ...),
-		    "variant must have no void alternative");
+#ifdef __STRICT_ANSI__
+      static_assert(((std::is_object_v<_Types> && !is_array_v<_Types>) && ...),
+		    "variant alternatives must be non-array object types");
+#else
+      static_assert((std::is_object_v<_Types> && ...),
+		    "variant alternatives must be object types");
+#endif
 
       using _Base = __detail::__variant::_Variant_base<_Types...>;
 
diff --git a/libstdc++-v3/testsuite/20_util/variant/types_neg.cc b/libstdc++-v3/testsuite/20_util/variant/types_neg.cc
new file mode 100644
index 00000000000..7d970e961c2
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/variant/types_neg.cc
@@ -0,0 +1,18 @@
+// { dg-do compile { target c++17 } }
+// { dg-add-options strict_std }
+
+# include <variant>
+
+std::variant<> v0; // { dg-error "here" }
+// { dg-error "must have at least one alternative" "" { target *-*-* } 0 }
+std::variant<int, void> v1; // { dg-error "here" }
+std::variant<int, const void> v2; // { dg-error "here" }
+std::variant<int, int&> v3; // { dg-error "here" }
+std::variant<int, void()> v4; // { dg-error "here" }
+std::variant<int, int[]> v5; // { dg-error "here" }
+std::variant<int, int[1]> v6; // { dg-error "here" }
+// { dg-error "must be non-array object types" "" { target *-*-* } 0 }
+
+// All of variant's base classes are instantiated before checking any
+// static_assert, so we get lots of errors before the expected errors above.
+// { dg-excess-errors "" }

commit 469602619d32c24382c6f1c3e3d95c3db606c770
Author: Dhruv Chawla <dhruvc@nvidia.com>
Date:   Mon Aug 26 11:09:19 2024 +0530

    libstdc++: Add missing feature-test macro in various headers
    
    version.syn#2 requires various headers to define
    __cpp_lib_allocator_traits_is_always_equal. Currently, only <memory> was
    defining this macro. Implement fixes for the other headers as well.
    
    Signed-off-by: Dhruv Chawla <dhruvc@nvidia.com>
    
    libstdc++-v3/ChangeLog:
    
            * include/std/deque: Define macro
            __glibcxx_want_allocator_traits_is_always_equal.
            * include/std/forward_list: Likewise.
            * include/std/list: Likewise.
            * include/std/map: Likewise.
            * include/std/scoped_allocator: Likewise.
            * include/std/set: Likewise.
            * include/std/string: Likewise.
            * include/std/unordered_map: Likewise.
            * include/std/unordered_set: Likewise.
            * include/std/vector: Likewise.
            * testsuite/20_util/headers/memory/version.cc: New test.
            * testsuite/20_util/scoped_allocator/version.cc: Likewise.
            * testsuite/21_strings/headers/string/version.cc: Likewise.
            * testsuite/23_containers/deque/version.cc: Likewise.
            * testsuite/23_containers/forward_list/version.cc: Likewise.
            * testsuite/23_containers/list/version.cc: Likewise.
            * testsuite/23_containers/map/version.cc: Likewise.
            * testsuite/23_containers/set/version.cc: Likewise.
            * testsuite/23_containers/unordered_map/version.cc: Likewise.
            * testsuite/23_containers/unordered_set/version.cc: Likewise.
            * testsuite/23_containers/vector/version.cc: Likewise.
    
    (cherry picked from commit efe6efb6f315c7f97be8a850e0a84ff7f6651d85)

diff --git a/libstdc++-v3/include/std/deque b/libstdc++-v3/include/std/deque
index 0bf8309c19a..69f8c0dcdcc 100644
--- a/libstdc++-v3/include/std/deque
+++ b/libstdc++-v3/include/std/deque
@@ -68,6 +68,7 @@
 #include <bits/range_access.h>
 #include <bits/deque.tcc>
 
+#define __glibcxx_want_allocator_traits_is_always_equal
 #define __glibcxx_want_erase_if
 #define __glibcxx_want_nonmember_container_access
 #include <bits/version.h>
diff --git a/libstdc++-v3/include/std/forward_list b/libstdc++-v3/include/std/forward_list
index 5ac74360808..dfd7d48d121 100644
--- a/libstdc++-v3/include/std/forward_list
+++ b/libstdc++-v3/include/std/forward_list
@@ -45,6 +45,7 @@
 # include <debug/forward_list>
 #endif
 
+#define __glibcxx_want_allocator_traits_is_always_equal
 #define __glibcxx_want_erase_if
 #define __glibcxx_want_incomplete_container_elements
 #define __glibcxx_want_list_remove_return_type
diff --git a/libstdc++-v3/include/std/list b/libstdc++-v3/include/std/list
index fce4e3d925b..ff632fc1ab2 100644
--- a/libstdc++-v3/include/std/list
+++ b/libstdc++-v3/include/std/list
@@ -69,6 +69,7 @@
 # include <debug/list>
 #endif
 
+#define __glibcxx_want_allocator_traits_is_always_equal
 #define __glibcxx_want_erase_if
 #define __glibcxx_want_incomplete_container_elements
 #define __glibcxx_want_list_remove_return_type
diff --git a/libstdc++-v3/include/std/map b/libstdc++-v3/include/std/map
index 4a96e59a5bc..6520d9f744f 100644
--- a/libstdc++-v3/include/std/map
+++ b/libstdc++-v3/include/std/map
@@ -69,6 +69,7 @@
 # include <debug/map>
 #endif
 
+#define __glibcxx_want_allocator_traits_is_always_equal
 #define __glibcxx_want_erase_if
 #define __glibcxx_want_generic_associative_lookup
 #define __glibcxx_want_map_try_emplace
diff --git a/libstdc++-v3/include/std/scoped_allocator b/libstdc++-v3/include/std/scoped_allocator
index dbe7bf3cbf6..532a44691ba 100644
--- a/libstdc++-v3/include/std/scoped_allocator
+++ b/libstdc++-v3/include/std/scoped_allocator
@@ -43,6 +43,9 @@
 # include <bits/uses_allocator_args.h>
 #endif
 
+#define __glibcxx_want_allocator_traits_is_always_equal
+#include <bits/version.h>
+
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/libstdc++-v3/include/std/set b/libstdc++-v3/include/std/set
index bf2474c7eb2..95cc8005a19 100644
--- a/libstdc++-v3/include/std/set
+++ b/libstdc++-v3/include/std/set
@@ -69,6 +69,7 @@
 # include <debug/set>
 #endif
 
+#define __glibcxx_want_allocator_traits_is_always_equal
 #define __glibcxx_want_erase_if
 #define __glibcxx_want_generic_associative_lookup
 #define __glibcxx_want_node_extract
diff --git a/libstdc++-v3/include/std/string b/libstdc++-v3/include/std/string
index 55144409cca..8db0802a282 100644
--- a/libstdc++-v3/include/std/string
+++ b/libstdc++-v3/include/std/string
@@ -54,6 +54,7 @@
 #include <bits/basic_string.h>
 #include <bits/basic_string.tcc>
 
+#define __glibcxx_want_allocator_traits_is_always_equal
 #define __glibcxx_want_constexpr_char_traits
 #define __glibcxx_want_constexpr_string
 #define __glibcxx_want_erase_if
diff --git a/libstdc++-v3/include/std/unordered_map b/libstdc++-v3/include/std/unordered_map
index ea6129d6494..f9a948c3873 100644
--- a/libstdc++-v3/include/std/unordered_map
+++ b/libstdc++-v3/include/std/unordered_map
@@ -46,6 +46,7 @@
 # include <debug/unordered_map>
 #endif
 
+#define __glibcxx_want_allocator_traits_is_always_equal
 #define __glibcxx_want_erase_if
 #define __glibcxx_want_generic_unordered_lookup
 #define __glibcxx_want_node_extract
diff --git a/libstdc++-v3/include/std/unordered_set b/libstdc++-v3/include/std/unordered_set
index a48fe0cd563..aa5b702ff4d 100644
--- a/libstdc++-v3/include/std/unordered_set
+++ b/libstdc++-v3/include/std/unordered_set
@@ -46,6 +46,7 @@
 # include <debug/unordered_set>
 #endif
 
+#define __glibcxx_want_allocator_traits_is_always_equal
 #define __glibcxx_want_erase_if
 #define __glibcxx_want_generic_unordered_lookup
 #define __glibcxx_want_node_extract
diff --git a/libstdc++-v3/include/std/vector b/libstdc++-v3/include/std/vector
index a1f7ef86824..906c1627935 100644
--- a/libstdc++-v3/include/std/vector
+++ b/libstdc++-v3/include/std/vector
@@ -76,6 +76,7 @@
 # include <debug/vector>
 #endif
 
+#define __glibcxx_want_allocator_traits_is_always_equal
 #define __glibcxx_want_constexpr_vector
 #define __glibcxx_want_erase_if
 #define __glibcxx_want_incomplete_container_elements
diff --git a/libstdc++-v3/testsuite/20_util/headers/memory/version.cc b/libstdc++-v3/testsuite/20_util/headers/memory/version.cc
new file mode 100644
index 00000000000..c82c9a018e0
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/headers/memory/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <memory>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/20_util/scoped_allocator/version.cc b/libstdc++-v3/testsuite/20_util/scoped_allocator/version.cc
new file mode 100644
index 00000000000..c5a1b11a739
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/scoped_allocator/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <scoped_allocator>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/21_strings/headers/string/version.cc b/libstdc++-v3/testsuite/21_strings/headers/string/version.cc
new file mode 100644
index 00000000000..a546b75b3fe
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/headers/string/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <string>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/deque/version.cc b/libstdc++-v3/testsuite/23_containers/deque/version.cc
new file mode 100644
index 00000000000..09d71cb935d
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/deque/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <deque>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/version.cc b/libstdc++-v3/testsuite/23_containers/forward_list/version.cc
new file mode 100644
index 00000000000..7a0203978f0
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <forward_list>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/list/version.cc b/libstdc++-v3/testsuite/23_containers/list/version.cc
new file mode 100644
index 00000000000..3ac63e06d90
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/list/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <list>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/map/version.cc b/libstdc++-v3/testsuite/23_containers/map/version.cc
new file mode 100644
index 00000000000..31a228d365d
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/map/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <map>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/set/version.cc b/libstdc++-v3/testsuite/23_containers/set/version.cc
new file mode 100644
index 00000000000..eb49b2353c3
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/set/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <set>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/version.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/version.cc
new file mode 100644
index 00000000000..946d7c295d5
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <unordered_map>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/version.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/version.cc
new file mode 100644
index 00000000000..d22adfb420e
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <unordered_set>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/23_containers/vector/version.cc b/libstdc++-v3/testsuite/23_containers/vector/version.cc
new file mode 100644
index 00000000000..0c8e4150abc
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/version.cc
@@ -0,0 +1,8 @@
+// { dg-do preprocess { target c++17 } }
+// { dg-add-options no_pch }
+
+#include <vector>
+
+#if __cpp_lib_allocator_traits_is_always_equal != 201411L
+# error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has wrong value in <version>"
+#endif

commit ee37d750262579a81799c5b56fe1ab936a840120
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Sep 2 11:29:13 2024 +0100

    libstdc++: Specialize std::disable_sized_sentinel_for for std::move_iterator [PR116549]
    
    LWG 3736 added a partial specialization of this variable template for
    two std::move_iterator types. This is needed for the case where the
    types satisfy std::sentinel_for and are subtractable, but do not model
    the semantics requirements of std::sized_sentinel_for.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116549
            * include/bits/stl_iterator.h (disable_sized_sentinel_for):
            Define specialization for two move_iterator types, as per LWG
            3736.
            * testsuite/24_iterators/move_iterator/lwg3736.cc: New test.
    
    (cherry picked from commit 819deae0a5bee079a7d5582fafaa098c26144ae8)

diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h
index d3823057270..20c0319f3a7 100644
--- a/libstdc++-v3/include/bits/stl_iterator.h
+++ b/libstdc++-v3/include/bits/stl_iterator.h
@@ -1822,6 +1822,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     { return _ReturnType(__i); }
 
 #if __cplusplus > 201703L && __glibcxx_concepts
+  // _GLIBCXX_RESOLVE_LIB_DEFECTS
+  // 3736.  move_iterator missing disable_sized_sentinel_for specialization
+  template<typename _Iterator1, typename _Iterator2>
+    requires (!sized_sentinel_for<_Iterator1, _Iterator2>)
+    inline constexpr bool
+    disable_sized_sentinel_for<move_iterator<_Iterator1>,
+			       move_iterator<_Iterator2>> = true;
+
   // [iterators.common] Common iterators
 
   namespace __detail
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3736.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3736.cc
new file mode 100644
index 00000000000..eaf791b3089
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3736.cc
@@ -0,0 +1,52 @@
+// { dg-do compile { target c++20 } }
+
+// 3736.  move_iterator missing disable_sized_sentinel_for specialization
+
+#include <iterator>
+
+template<typename Iter> using MoveIter = std::move_iterator<Iter>;
+
+using std::sized_sentinel_for;
+using std::disable_sized_sentinel_for;
+
+// These assertions always passed, even without LWG 3736:
+static_assert(sized_sentinel_for<MoveIter<int*>, MoveIter<int*>>);
+static_assert(sized_sentinel_for<MoveIter<int*>, MoveIter<const int*>>);
+static_assert(not sized_sentinel_for<MoveIter<int*>, MoveIter<long*>>);
+static_assert(not sized_sentinel_for<MoveIter<int*>, std::default_sentinel_t>);
+static_assert(not disable_sized_sentinel_for<MoveIter<int*>, MoveIter<int*>>);
+
+// These types don't satisfy sized_sentinel_for anyway (because the subtraction
+// is ill-formed) but LWG 3736 makes the variable template explicitly false:
+static_assert(disable_sized_sentinel_for<MoveIter<int*>, MoveIter<long*>>);
+
+struct Iter
+{
+  using iterator_category = std::random_access_iterator_tag;
+  using value_type = int;
+  using pointer = int*;
+  using reference = int&;
+  using difference_type = long;
+
+  Iter() = default;
+  Iter& operator++();
+  Iter operator++(int);
+  Iter& operator--();
+  Iter operator--(int);
+  reference operator*() const;
+  pointer operator->() const;
+  Iter& operator+=(difference_type);
+  Iter& operator-=(difference_type);
+  friend Iter operator+(Iter, difference_type);
+  friend Iter operator+(difference_type, Iter);
+  friend Iter operator-(Iter, difference_type);
+  friend difference_type operator-(Iter, Iter);
+  bool operator==(Iter) const;
+};
+
+// Specialize the variable template so that Iter is not its own sized sentinel:
+template<> constexpr bool std::disable_sized_sentinel_for<Iter, Iter> = true;
+static_assert( not sized_sentinel_for<Iter, Iter> );
+
+// LWG 3736 means that affects std::move_iterator<Iter> as well:
+static_assert( not sized_sentinel_for<MoveIter<Iter>, MoveIter<Iter>> );

commit ec1bcd176339d43fd1ab3211f65915824ba1f26b
Author: Lennox Shou Hao Ho <lennoxhoe@gmail.com>
Date:   Mon Jul 29 21:09:27 2024 +0100

    libstdc++: Fix fs::hard_link_count behaviour on MinGW [PR113663]
    
    std::filesystem::hard_link_count() always returns 1 on
    mingw-w64ucrt-11.0.1-r3 on Windows 10 19045
    
    hard_link_count() queries _wstat64() on MinGW-w64
    The MSFT documentation claims _wstat64() will always return 1 *non*-NTFS volumes
    https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/14h5k7ff(v=vs.120)
    
    My tests suggest that is not always true -
    hard_link_count()/_wstat64() still returns 1 on NTFS.
    GetFileInformationByHandle does return the correct result of 2.
    Please see the PR for a minimal repro.
    
    This patch changes the Windows implementation to always call
    GetFileInformationByHandle.
    
            PR libstdc++/113663
    
    libstdc++-v3/ChangeLog:
    
            * src/c++17/fs_ops.cc (fs::equivalent): Moved helper class
            auto_handle to anonymous namespace as auto_win_file_handle.
            (fs::hard_link_count): Changed Windows implementation to use
            information provided by GetFileInformationByHandle which is more
            reliable.
            * testsuite/27_io/filesystem/operations/hard_link_count.cc: New
            test.
    
    Signed-off-by: "Lennox" Shou Hao Ho <lennoxhoe@gmail.com>
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 658193658f05e9a8ebf0bce8bab15555f43bfee1)

diff --git a/libstdc++-v3/src/c++17/fs_ops.cc b/libstdc++-v3/src/c++17/fs_ops.cc
index 07bc2a0fa88..81227c49dfd 100644
--- a/libstdc++-v3/src/c++17/fs_ops.cc
+++ b/libstdc++-v3/src/c++17/fs_ops.cc
@@ -822,6 +822,34 @@ fs::equivalent(const path& p1, const path& p2)
   return result;
 }
 
+#if _GLIBCXX_FILESYSTEM_IS_WINDOWS
+namespace
+{
+  // An RAII type that opens a handle for an existing file.
+  struct auto_win_file_handle
+  {
+    explicit
+    auto_win_file_handle(const fs::path& p_)
+    : handle(CreateFileW(p_.c_str(), 0,
+			 FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
+			 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0))
+    { }
+
+    ~auto_win_file_handle()
+    { if (*this) CloseHandle(handle); }
+
+    explicit operator bool() const
+    { return handle != INVALID_HANDLE_VALUE; }
+
+    bool get_info()
+    { return GetFileInformationByHandle(handle, &info); }
+
+    HANDLE handle;
+    BY_HANDLE_FILE_INFORMATION info;
+  };
+}
+#endif
+
 bool
 fs::equivalent(const path& p1, const path& p2, error_code& ec) noexcept
 {
@@ -858,27 +886,8 @@ fs::equivalent(const path& p1, const path& p2, error_code& ec) noexcept
       if (st1.st_mode != st2.st_mode || st1.st_dev != st2.st_dev)
 	return false;
 
-      struct auto_handle {
-	explicit auto_handle(const path& p_)
-	: handle(CreateFileW(p_.c_str(), 0,
-	      FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
-	      0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0))
-	{ }
-
-	~auto_handle()
-	{ if (*this) CloseHandle(handle); }
-
-	explicit operator bool() const
-	{ return handle != INVALID_HANDLE_VALUE; }
-
-	bool get_info()
-	{ return GetFileInformationByHandle(handle, &info); }
-
-	HANDLE handle;
-	BY_HANDLE_FILE_INFORMATION info;
-      };
-      auto_handle h1(p1);
-      auto_handle h2(p2);
+      auto_win_file_handle h1(p1);
+      auto_win_file_handle h2(p2);
       if (!h1 || !h2)
 	{
 	  if (!h1 && !h2)
@@ -982,7 +991,13 @@ fs::hard_link_count(const path& p)
 std::uintmax_t
 fs::hard_link_count(const path& p, error_code& ec) noexcept
 {
-#ifdef _GLIBCXX_HAVE_SYS_STAT_H
+#if _GLIBCXX_FILESYSTEM_IS_WINDOWS
+  auto_win_file_handle h(p);
+  if (h && h.get_info())
+    return static_cast<uintmax_t>(h.info.nNumberOfLinks);
+  ec = __last_system_error();
+  return static_cast<uintmax_t>(-1);
+#elif defined _GLIBCXX_HAVE_SYS_STAT_H
   return do_stat(p, ec, std::mem_fn(&stat_type::st_nlink),
 		 static_cast<uintmax_t>(-1));
 #else
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/operations/hard_link_count.cc b/libstdc++-v3/testsuite/27_io/filesystem/operations/hard_link_count.cc
new file mode 100644
index 00000000000..8b2fb4f190e
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/filesystem/operations/hard_link_count.cc
@@ -0,0 +1,37 @@
+// { dg-do run { target c++17 } }
+// { dg-require-filesystem-ts "" }
+
+#include <filesystem>
+#include <testsuite_hooks.h>
+#include <testsuite_fs.h>
+
+namespace fs = std::filesystem;
+
+void test01()
+{
+  // PR libstdc++/113663
+
+  fs::path p1 = __gnu_test::nonexistent_path();
+  VERIFY( !fs::exists(p1) );
+
+  __gnu_test::scoped_file f1(p1);
+  VERIFY( fs::exists(p1) );
+
+  VERIFY( fs::hard_link_count(p1) == 1 );
+
+  fs::path p2 = __gnu_test::nonexistent_path();
+  VERIFY( !fs::exists(p2) );
+
+  fs::create_hard_link(p1, p2);
+  __gnu_test::scoped_file f2(p2, __gnu_test::scoped_file::adopt_file);
+  VERIFY( fs::exists(p2) );
+
+  VERIFY( fs::hard_link_count(p1) == 2 );
+  VERIFY( fs::hard_link_count(p2) == 2 );
+}
+
+int
+main()
+{
+  test01();
+}

commit 35c98149a5c7af9159fa7615d8d827b3aaa3cc97
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jul 30 10:55:55 2024 +0100

    libstdc++: Fix overwriting files with fs::copy_file on Windows
    
    There are no inode numbers on Windows filesystems, so stat_type::st_ino
    is always zero and the check for equivalent files in do_copy_file was
    incorrectly identifying distinct files as equivalent. This caused
    copy_file to incorrectly report errors when trying to overwrite existing
    files.
    
    The fs::equivalent function already does the right thing on Windows, so
    factor that logic out into a new function that can be reused by
    fs::copy_file.
    
    The tests for fs::copy_file were quite inadequate, so this also adds
    checks for that function's error conditions.
    
    libstdc++-v3/ChangeLog:
    
            * src/c++17/fs_ops.cc (auto_win_file_handle): Change constructor
            parameter from const path& to const wchar_t*.
            (fs::equiv_files): New function.
            (fs::equivalent): Use equiv_files.
            * src/filesystem/ops-common.h (fs::equiv_files): Declare.
            (do_copy_file): Use equiv_files.
            * src/filesystem/ops.cc (fs::equiv_files): Define.
            (fs::copy, fs::equivalent): Use equiv_files.
            * testsuite/27_io/filesystem/operations/copy.cc: Test
            overwriting directory contents recursively.
            * testsuite/27_io/filesystem/operations/copy_file.cc: Test
            overwriting existing files.
    
    (cherry picked from commit 017e3f89b081e4828a588a3bd27b5feacea042b7)

diff --git a/libstdc++-v3/src/c++17/fs_ops.cc b/libstdc++-v3/src/c++17/fs_ops.cc
index 81227c49dfd..9606afa9f1f 100644
--- a/libstdc++-v3/src/c++17/fs_ops.cc
+++ b/libstdc++-v3/src/c++17/fs_ops.cc
@@ -350,7 +350,7 @@ fs::copy(const path& from, const path& to, copy_options options,
   f = make_file_status(from_st);
 
   if (exists(t) && !is_other(t) && !is_other(f)
-      && to_st.st_dev == from_st.st_dev && to_st.st_ino == from_st.st_ino)
+      && fs::equiv_files(from.c_str(), from_st, to.c_str(), to_st, ec))
     {
       ec = std::make_error_code(std::errc::file_exists);
       return;
@@ -829,8 +829,8 @@ namespace
   struct auto_win_file_handle
   {
     explicit
-    auto_win_file_handle(const fs::path& p_)
-    : handle(CreateFileW(p_.c_str(), 0,
+    auto_win_file_handle(const wchar_t* p)
+    : handle(CreateFileW(p, 0,
 			 FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
 			 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0))
     { }
@@ -850,6 +850,44 @@ namespace
 }
 #endif
 
+#ifdef _GLIBCXX_HAVE_SYS_STAT_H
+#ifdef NEED_DO_COPY_FILE // Only define this once, not in cow-fs_ops.o too
+bool
+fs::equiv_files([[maybe_unused]] const char_type* p1, const stat_type& st1,
+		[[maybe_unused]] const char_type* p2, const stat_type& st2,
+		[[maybe_unused]] error_code& ec)
+{
+#if ! _GLIBCXX_FILESYSTEM_IS_WINDOWS
+  // For POSIX the device ID and inode number uniquely identify a file.
+  return st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino;
+#else
+  // For Windows st_ino is not set, so can't be used to distinguish files.
+  // We can compare modes and device IDs as a cheap initial check:
+  if (st1.st_mode != st2.st_mode || st1.st_dev != st2.st_dev)
+    return false;
+
+  // Need to use GetFileInformationByHandle to get more info about the files.
+  auto_win_file_handle h1(p1);
+  auto_win_file_handle h2(p2);
+  if (!h1 || !h2)
+    {
+      if (!h1 && !h2)
+	ec = __last_system_error();
+      return false;
+    }
+  if (!h1.get_info() || !h2.get_info())
+    {
+      ec = __last_system_error();
+      return false;
+    }
+  return h1.info.dwVolumeSerialNumber == h2.info.dwVolumeSerialNumber
+	   && h1.info.nFileIndexHigh == h2.info.nFileIndexHigh
+	   && h1.info.nFileIndexLow == h2.info.nFileIndexLow;
+#endif // _GLIBCXX_FILESYSTEM_IS_WINDOWS
+}
+#endif // NEED_DO_COPY_FILE
+#endif // _GLIBCXX_HAVE_SYS_STAT_H
+
 bool
 fs::equivalent(const path& p1, const path& p2, error_code& ec) noexcept
 {
@@ -881,30 +919,7 @@ fs::equivalent(const path& p1, const path& p2, error_code& ec) noexcept
       ec.clear();
       if (is_other(s1) || is_other(s2))
 	return false;
-#if _GLIBCXX_FILESYSTEM_IS_WINDOWS
-      // st_ino is not set, so can't be used to distinguish files
-      if (st1.st_mode != st2.st_mode || st1.st_dev != st2.st_dev)
-	return false;
-
-      auto_win_file_handle h1(p1);
-      auto_win_file_handle h2(p2);
-      if (!h1 || !h2)
-	{
-	  if (!h1 && !h2)
-	    ec = __last_system_error();
-	  return false;
-	}
-      if (!h1.get_info() || !h2.get_info())
-	{
-	  ec = __last_system_error();
-	  return false;
-	}
-      return h1.info.dwVolumeSerialNumber == h2.info.dwVolumeSerialNumber
-	&& h1.info.nFileIndexHigh == h2.info.nFileIndexHigh
-	&& h1.info.nFileIndexLow == h2.info.nFileIndexLow;
-#else
-      return st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino;
-#endif
+      return fs::equiv_files(p1.c_str(), st1, p2.c_str(), st2, ec);
     }
   else if (!exists(s1) || !exists(s2))
     ec = std::make_error_code(std::errc::no_such_file_or_directory);
@@ -992,7 +1007,7 @@ std::uintmax_t
 fs::hard_link_count(const path& p, error_code& ec) noexcept
 {
 #if _GLIBCXX_FILESYSTEM_IS_WINDOWS
-  auto_win_file_handle h(p);
+  auto_win_file_handle h(p.c_str());
   if (h && h.get_info())
     return static_cast<uintmax_t>(h.info.nNumberOfLinks);
   ec = __last_system_error();
diff --git a/libstdc++-v3/src/filesystem/ops-common.h b/libstdc++-v3/src/filesystem/ops-common.h
index d917fddbeb1..1be8d754d6f 100644
--- a/libstdc++-v3/src/filesystem/ops-common.h
+++ b/libstdc++-v3/src/filesystem/ops-common.h
@@ -303,7 +303,6 @@ namespace __gnu_posix
   {
     bool skip, update, overwrite;
   };
-
 #endif // _GLIBCXX_HAVE_SYS_STAT_H
 
 } // namespace filesystem
@@ -327,6 +326,12 @@ _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM
 	   std::error_code&);
 
 
+  // Test whether two files are the same file.
+  bool
+  equiv_files(const char_type*, const stat_type&,
+	      const char_type*, const stat_type&,
+	      error_code&);
+
   inline file_type
   make_file_type(const stat_type& st) noexcept
   {
@@ -400,6 +405,7 @@ _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM
     return true;
   }
 #endif
+
 #if defined _GLIBCXX_USE_SENDFILE && ! defined _GLIBCXX_FILESYSTEM_IS_WINDOWS
   bool
   copy_file_sendfile(int fd_in, int fd_out, size_t length) noexcept
@@ -428,6 +434,7 @@ _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM
     return true;
   }
 #endif
+
   bool
   do_copy_file(const char_type* from, const char_type* to,
 	       std::filesystem::copy_options_existing_file options,
@@ -489,8 +496,7 @@ _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM
 	    return false;
 	  }
 
-	if (to_st->st_dev == from_st->st_dev
-	    && to_st->st_ino == from_st->st_ino)
+	if (equiv_files(from, *from_st, to, *to_st, ec))
 	  {
 	    ec = std::make_error_code(std::errc::file_exists);
 	    return false;
diff --git a/libstdc++-v3/src/filesystem/ops.cc b/libstdc++-v3/src/filesystem/ops.cc
index 4d23a804da0..c430f58c47a 100644
--- a/libstdc++-v3/src/filesystem/ops.cc
+++ b/libstdc++-v3/src/filesystem/ops.cc
@@ -257,6 +257,20 @@ namespace
 
 } // namespace
 
+#ifdef _GLIBCXX_HAVE_SYS_STAT_H
+#ifdef NEED_DO_COPY_FILE // Only define this once, not in cow-ops.o too
+bool
+fs::equiv_files([[maybe_unused]] const char_type* p1, const stat_type& st1,
+		[[maybe_unused]] const char_type* p2, const stat_type& st2,
+		[[maybe_unused]] error_code& ec)
+{
+  // For POSIX the device ID and inode number uniquely identify a file.
+  // This doesn't work on Windows (see equiv_files in src/c++17/fs_ops.cc).
+  return st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino;
+}
+#endif
+#endif
+
 void
 fs::copy(const path& from, const path& to, copy_options options,
 	 error_code& ec) noexcept
@@ -293,7 +307,7 @@ fs::copy(const path& from, const path& to, copy_options options,
   f = make_file_status(from_st);
 
   if (exists(t) && !is_other(t) && !is_other(f)
-      && to_st.st_dev == from_st.st_dev && to_st.st_ino == from_st.st_ino)
+      && fs::equiv_files(from.c_str(), from_st, to.c_str(), to_st, ec))
     {
       ec = std::make_error_code(std::errc::file_exists);
       return;
@@ -763,7 +777,7 @@ fs::equivalent(const path& p1, const path& p2, error_code& ec) noexcept
       ec.clear();
       if (is_other(s1) || is_other(s2))
 	return false;
-      return st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino;
+      return fs::equiv_files(p1.c_str(), st1, p2.c_str(), st2, ec);
     }
   else if (!exists(s1) || !exists(s2))
     ec = std::make_error_code(std::errc::no_such_file_or_directory);
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc b/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
index 777a9b8402e..893f32297ae 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc
@@ -216,6 +216,15 @@ test_pr99290()
   }
 #endif
 
+  // https://github.com/msys2/MSYS2-packages/issues/1937
+  auto copy_opts
+    = fs::copy_options::overwrite_existing | fs::copy_options::recursive;
+  copy(source, dest, copy_opts, ec);
+  VERIFY( !ec );
+
+  auto ch = std::ifstream{dest/"file"}.get();
+  VERIFY( ch == 'a' );
+
   remove_all(dir);
 }
 
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc b/libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc
index e3a1219fa6e..af643151044 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc
@@ -76,8 +76,130 @@ test01()
   remove(to);
 }
 
+void
+test_directory()
+{
+  std::error_code ec;
+
+  auto dir = __gnu_test::nonexistent_path();
+  auto file = __gnu_test::nonexistent_path();
+
+  // error condition: is_regular_file(from) is false
+  create_directory(dir);
+  bool b = copy_file(dir, file, ec);
+  VERIFY( !b );
+  VERIFY( ec == std::errc::invalid_argument );
+  VERIFY( !exists(file) );
+  VERIFY( is_directory(dir) );
+
+  ec = std::make_error_code(std::errc::address_in_use);
+  // error condition: exists(to) is true and is_regular_file(to) is false
+  std::ofstream{file} << "regular file";
+  b = copy_file(file, dir, ec);
+  VERIFY( !b );
+  VERIFY( ec == std::errc::invalid_argument );
+  VERIFY( exists(file) );
+  VERIFY( is_directory(dir) );
+
+  remove(dir);
+  remove(file);
+}
+
+void
+test_existing()
+{
+  using std::filesystem::copy_options;
+  std::error_code ec;
+
+  auto from = __gnu_test::nonexistent_path();
+  auto to = from;
+
+  // error condition: exists(to) is true and equivalent(from, to) is true
+  std::ofstream{from} << "source";
+  bool b = copy_file(from, to, ec);
+  VERIFY( !b );
+  VERIFY( ec == std::errc::file_exists );
+
+  to = __gnu_test::nonexistent_path();
+  std::ofstream{to} << "overwrite me";
+
+  // error condition: exists(to) is true and options == copy_options::none
+  b = copy_file(from, to, ec);
+  VERIFY( !b );
+  VERIFY( ec == std::errc::file_exists );
+  VERIFY( file_size(to) != file_size(from) );
+
+#if __cpp_exceptions
+  try
+  {
+    (void) copy_file(from, to);
+    VERIFY(false);
+  }
+  catch (const std::filesystem::filesystem_error& e)
+  {
+    std::string_view msg = e.what();
+    VERIFY( msg.find(from.string()) != msg.npos );
+    VERIFY( msg.find(to.string()) != msg.npos );
+    VERIFY( e.code() == std::errc::file_exists );
+  }
+  VERIFY( file_size(to) == 12 );
+#endif
+
+  b = copy_file(from, to, copy_options::skip_existing, ec);
+  VERIFY( !b );
+  VERIFY( !ec );
+  VERIFY( file_size(to) != file_size(from) );
+
+  b = copy_file(from, to, copy_options::skip_existing); // doesn't throw
+  VERIFY( !b );
+  VERIFY( file_size(to) != file_size(from) );
+
+  b = copy_file(from, to, copy_options::overwrite_existing, ec);
+  VERIFY( b );
+  VERIFY( !ec );
+  VERIFY( file_size(to) == file_size(from) );
+
+  std::ofstream{to} << "overwrite me again";
+  b = copy_file(from, to, copy_options::overwrite_existing); // doesn't throw
+  VERIFY( b );
+  VERIFY( file_size(to) == file_size(from) );
+
+  ec = std::make_error_code(std::errc::address_in_use);
+  auto time = last_write_time(from);
+  std::ofstream{to} << "touched";
+  last_write_time(to, time + std::chrono::seconds(60));
+  b = copy_file(from, to, copy_options::update_existing, ec);
+  VERIFY( !b );
+  VERIFY( !ec );
+  VERIFY( file_size(to) != file_size(from) );
+
+  b = copy_file(from, to, copy_options::update_existing); // doesn't throw
+  VERIFY( !b );
+  VERIFY( file_size(to) != file_size(from) );
+
+  ec = std::make_error_code(std::errc::address_in_use);
+  time = last_write_time(to);
+  std::ofstream{from} << "touched more recently";
+  last_write_time(from, time + std::chrono::seconds(60));
+  b = copy_file(from, to, copy_options::update_existing, ec);
+  VERIFY( b );
+  VERIFY( !ec );
+  VERIFY( file_size(to) == file_size(from) );
+
+  time = last_write_time(to);
+  std::ofstream{from} << "touched even more recently";
+  last_write_time(from, time + std::chrono::seconds(60));
+  b = copy_file(from, to, copy_options::update_existing); // doesn't throw
+  VERIFY( b );
+  VERIFY( file_size(to) == file_size(from) );
+
+  remove(from);
+  remove(to);
+}
+
 int
 main()
 {
   test01();
+  test_existing();
 }

commit a054ba563bde3dc834c5efac72b91c2803e4e289
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Sep 2 12:16:49 2024 +0100

    libstdc++: Fix error handling in fs::hard_link_count for Windows
    
    The recent change to use auto_win_file_handle for
    std::filesystem::hard_link_count caused a regression. The
    std::error_code argument should be cleared if no error occurs, but this
    no longer happens. Add a call to ec.clear() in fs::hard_link_count to
    fix this.
    
    Also change the auto_win_file_handle class to take a reference to the
    std::error_code and set it if an error occurs, to slightly simplify the
    control flow in the fs::equiv_files function.
    
    libstdc++-v3/ChangeLog:
    
            * src/c++17/fs_ops.cc (auto_win_file_handle): Add error_code&
            member and set it if CreateFileW or GetFileInformationByHandle
            fails.
            (fs::equiv_files) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Simplify
            control flow.
            (fs::hard_link_count) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Clear ec
            on success.
            * testsuite/27_io/filesystem/operations/hard_link_count.cc:
            Check error handling.
    
    (cherry picked from commit 71b1639c67b91554420cc38eb4c82323e535c816)

diff --git a/libstdc++-v3/src/c++17/fs_ops.cc b/libstdc++-v3/src/c++17/fs_ops.cc
index 9606afa9f1f..946fefd9e44 100644
--- a/libstdc++-v3/src/c++17/fs_ops.cc
+++ b/libstdc++-v3/src/c++17/fs_ops.cc
@@ -829,23 +829,37 @@ namespace
   struct auto_win_file_handle
   {
     explicit
-    auto_win_file_handle(const wchar_t* p)
+    auto_win_file_handle(const wchar_t* p, std::error_code& ec) noexcept
     : handle(CreateFileW(p, 0,
 			 FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
-			 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0))
-    { }
+			 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)),
+      ec(ec)
+    {
+      if (handle == INVALID_HANDLE_VALUE)
+	ec = std::__last_system_error();
+    }
 
     ~auto_win_file_handle()
     { if (*this) CloseHandle(handle); }
 
-    explicit operator bool() const
+    explicit operator bool() const noexcept
     { return handle != INVALID_HANDLE_VALUE; }
 
-    bool get_info()
-    { return GetFileInformationByHandle(handle, &info); }
+    bool get_info() noexcept
+    {
+      if (GetFileInformationByHandle(handle, &info))
+	return true;
+      ec = std::__last_system_error();
+      return false;
+    }
 
     HANDLE handle;
     BY_HANDLE_FILE_INFORMATION info;
+    // Like errno, we only set this on error and never clear it.
+    // This propagates an error_code to the caller when something goes wrong,
+    // but the caller should not assume a non-zero ec means an error happened
+    // unless they explicitly cleared it before passing it to our constructor.
+    std::error_code& ec;
   };
 }
 #endif
@@ -866,23 +880,14 @@ fs::equiv_files([[maybe_unused]] const char_type* p1, const stat_type& st1,
   if (st1.st_mode != st2.st_mode || st1.st_dev != st2.st_dev)
     return false;
 
-  // Need to use GetFileInformationByHandle to get more info about the files.
-  auto_win_file_handle h1(p1);
-  auto_win_file_handle h2(p2);
-  if (!h1 || !h2)
-    {
-      if (!h1 && !h2)
-	ec = __last_system_error();
-      return false;
-    }
-  if (!h1.get_info() || !h2.get_info())
-    {
-      ec = __last_system_error();
-      return false;
-    }
-  return h1.info.dwVolumeSerialNumber == h2.info.dwVolumeSerialNumber
-	   && h1.info.nFileIndexHigh == h2.info.nFileIndexHigh
-	   && h1.info.nFileIndexLow == h2.info.nFileIndexLow;
+  // Use GetFileInformationByHandle to get more info about the files.
+  if (auto_win_file_handle h1{p1, ec})
+    if (auto_win_file_handle h2{p2, ec})
+      if (h1.get_info() && h2.get_info())
+	return h1.info.dwVolumeSerialNumber == h2.info.dwVolumeSerialNumber
+		 && h1.info.nFileIndexHigh == h2.info.nFileIndexHigh
+		 && h1.info.nFileIndexLow == h2.info.nFileIndexLow;
+  return false;
 #endif // _GLIBCXX_FILESYSTEM_IS_WINDOWS
 }
 #endif // NEED_DO_COPY_FILE
@@ -1007,10 +1012,12 @@ std::uintmax_t
 fs::hard_link_count(const path& p, error_code& ec) noexcept
 {
 #if _GLIBCXX_FILESYSTEM_IS_WINDOWS
-  auto_win_file_handle h(p.c_str());
+  auto_win_file_handle h(p.c_str(), ec);
   if (h && h.get_info())
-    return static_cast<uintmax_t>(h.info.nNumberOfLinks);
-  ec = __last_system_error();
+    {
+      ec.clear();
+      return static_cast<uintmax_t>(h.info.nNumberOfLinks);
+    }
   return static_cast<uintmax_t>(-1);
 #elif defined _GLIBCXX_HAVE_SYS_STAT_H
   return do_stat(p, ec, std::mem_fn(&stat_type::st_nlink),
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/operations/hard_link_count.cc b/libstdc++-v3/testsuite/27_io/filesystem/operations/hard_link_count.cc
index 8b2fb4f190e..4bff39ca308 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/operations/hard_link_count.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/operations/hard_link_count.cc
@@ -30,8 +30,32 @@ void test01()
   VERIFY( fs::hard_link_count(p2) == 2 );
 }
 
+void
+test02()
+{
+  std::error_code ec;
+  fs::path p1 = __gnu_test::nonexistent_path();
+  VERIFY( fs::hard_link_count(p1, ec) == -1 );
+  VERIFY( ec == std::errc::no_such_file_or_directory );
+
+#if __cpp_exceptions
+  try {
+    fs::hard_link_count(p1); // { dg-warning "ignoring return value" }
+    VERIFY( false );
+  } catch (const fs::filesystem_error& e) {
+    VERIFY( e.path1() == p1 );
+    VERIFY( e.path2().empty() );
+  }
+#endif
+
+  __gnu_test::scoped_file f1(p1);
+  fs::hard_link_count(f1.path, ec);  // { dg-warning "ignoring return value" }
+  VERIFY( !ec ); // Should be cleared on success.
+}
+
 int
 main()
 {
   test01();
+  test02();
 }

commit 0c4a95e9f51a4d7d68574579afe6de9dcea58db2
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Sep 5 00:22:17 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a494e6dc39a..8bc41ae0aaa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,56 @@
+2024-09-04  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	PR target/112108
+	* config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): Remove
+	feature check at initialisation.
+	(aarch64_general_check_builtin_call): Check ls64 intrinsics.
+	* config/aarch64/arm_acle.h: (data512_t) Make always available.
+
+2024-09-04  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	PR target/112108
+	* config/aarch64/aarch64-builtins.cc (aarch64_init_memtag_builtins):
+	Define intrinsic names directly.
+	(aarch64_general_init_builtins): Move memtag intialisation...
+	(handle_arm_acle_h): ...to here, and remove feature check.
+	(aarch64_general_check_builtin_call): Check memtag intrinsics.
+	* config/aarch64/arm_acle.h (__arm_mte_create_random_tag)
+	(__arm_mte_exclude_tag, __arm_mte_ptrdiff)
+	(__arm_mte_increment_tag, __arm_mte_set_tag, __arm_mte_get_tag):
+	Remove.
+
+2024-09-04  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	PR target/112108
+	* config/aarch64/aarch64-builtins.cc (aarch64_init_tme_builtins):
+	Define intrinsic names directly.
+	(aarch64_general_init_builtins): Move tme initialisation...
+	(handle_arm_acle_h): ...to here, and remove feature check.
+	(aarch64_general_check_builtin_call): Check tme intrinsics.
+	* config/aarch64/arm_acle.h (__tstart, __tcommit, __tcancel)
+	(__ttest): Remove.
+	(_TMFAILURE_*): Define unconditionally.
+
+2024-09-04  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	* config/aarch64/aarch64-sve-builtins.cc (check_builtin_call)
+	(expand_builtin): Update calls to the below.
+	(report_missing_extension, report_missing_registers)
+	(check_required_extensions): Move out of aarch64_sve namespace,
+	rename, and move into...
+	* config/aarch64/aarch64-builtins.cc (aarch64_report_missing_extension)
+	(aarch64_report_missing_registers)
+	(aarch64_check_required_extensions) ...here.
+	* config/aarch64/aarch64-protos.h (aarch64_check_required_extensions):
+	Add prototype.
+
+2024-09-04  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	* config/aarch64/aarch64-sve-builtins.cc
+	(check_required_registers): Remove target check and rename to...
+	(report_missing_registers): ...this.
+	(check_required_extensions): Refactor.
+
 2024-09-03  Haochen Jiang  <haochen.jiang@intel.com>
 
 	* config/i386/avx512fp16intrin.h
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 301a37d563d..c8bedcac256 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240904
+20240905
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 56d4aad7f9b..6f349aee248 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,27 @@
+2024-09-04  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	PR target/112108
+	* gcc.target/aarch64/acle/ls64_guard-1.c: New test.
+	* gcc.target/aarch64/acle/ls64_guard-2.c: New test.
+	* gcc.target/aarch64/acle/ls64_guard-3.c: New test.
+	* gcc.target/aarch64/acle/ls64_guard-4.c: New test.
+
+2024-09-04  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	PR target/112108
+	* gcc.target/aarch64/acle/memtag_guard-1.c: New test.
+	* gcc.target/aarch64/acle/memtag_guard-2.c: New test.
+	* gcc.target/aarch64/acle/memtag_guard-3.c: New test.
+	* gcc.target/aarch64/acle/memtag_guard-4.c: New test.
+
+2024-09-04  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	PR target/112108
+	* gcc.target/aarch64/acle/tme_guard-1.c: New test.
+	* gcc.target/aarch64/acle/tme_guard-2.c: New test.
+	* gcc.target/aarch64/acle/tme_guard-3.c: New test.
+	* gcc.target/aarch64/acle/tme_guard-4.c: New test.
+
 2024-09-03  Haochen Jiang  <haochen.jiang@intel.com>
 
 	* gcc.target/i386/avx512fp16-vfpclassph-1c.c: New test.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f05ec03c85e..fa511f0dc09 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,99 @@
+2024-09-04  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	* src/c++17/fs_ops.cc (auto_win_file_handle): Add error_code&
+	member and set it if CreateFileW or GetFileInformationByHandle
+	fails.
+	(fs::equiv_files) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Simplify
+	control flow.
+	(fs::hard_link_count) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Clear ec
+	on success.
+	* testsuite/27_io/filesystem/operations/hard_link_count.cc:
+	Check error handling.
+
+2024-09-04  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-07-30  Jonathan Wakely  <jwakely@redhat.com>
+
+	* src/c++17/fs_ops.cc (auto_win_file_handle): Change constructor
+	parameter from const path& to const wchar_t*.
+	(fs::equiv_files): New function.
+	(fs::equivalent): Use equiv_files.
+	* src/filesystem/ops-common.h (fs::equiv_files): Declare.
+	(do_copy_file): Use equiv_files.
+	* src/filesystem/ops.cc (fs::equiv_files): Define.
+	(fs::copy, fs::equivalent): Use equiv_files.
+	* testsuite/27_io/filesystem/operations/copy.cc: Test
+	overwriting directory contents recursively.
+	* testsuite/27_io/filesystem/operations/copy_file.cc: Test
+	overwriting existing files.
+
+2024-09-04  Lennox Shou Hao Ho  <lennoxhoe@gmail.com>
+
+	Backported from master:
+	2024-07-30  Lennox Shou Hao Ho  <lennoxhoe@gmail.com>
+
+	PR libstdc++/113663
+	* src/c++17/fs_ops.cc (fs::equivalent): Moved helper class
+	auto_handle to anonymous namespace as auto_win_file_handle.
+	(fs::hard_link_count): Changed Windows implementation to use
+	information provided by GetFileInformationByHandle which is more
+	reliable.
+	* testsuite/27_io/filesystem/operations/hard_link_count.cc: New
+	test.
+
+2024-09-04  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116549
+	* include/bits/stl_iterator.h (disable_sized_sentinel_for):
+	Define specialization for two move_iterator types, as per LWG
+	3736.
+	* testsuite/24_iterators/move_iterator/lwg3736.cc: New test.
+
+2024-09-04  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	Backported from master:
+	2024-09-03  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* include/std/deque: Define macro
+	__glibcxx_want_allocator_traits_is_always_equal.
+	* include/std/forward_list: Likewise.
+	* include/std/list: Likewise.
+	* include/std/map: Likewise.
+	* include/std/scoped_allocator: Likewise.
+	* include/std/set: Likewise.
+	* include/std/string: Likewise.
+	* include/std/unordered_map: Likewise.
+	* include/std/unordered_set: Likewise.
+	* include/std/vector: Likewise.
+	* testsuite/20_util/headers/memory/version.cc: New test.
+	* testsuite/20_util/scoped_allocator/version.cc: Likewise.
+	* testsuite/21_strings/headers/string/version.cc: Likewise.
+	* testsuite/23_containers/deque/version.cc: Likewise.
+	* testsuite/23_containers/forward_list/version.cc: Likewise.
+	* testsuite/23_containers/list/version.cc: Likewise.
+	* testsuite/23_containers/map/version.cc: Likewise.
+	* testsuite/23_containers/set/version.cc: Likewise.
+	* testsuite/23_containers/unordered_map/version.cc: Likewise.
+	* testsuite/23_containers/unordered_set/version.cc: Likewise.
+	* testsuite/23_containers/vector/version.cc: Likewise.
+
+2024-09-04  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-08-21  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116381
+	* include/std/variant (variant): Fix conditions for
+	static_assert to match the spec.
+	* testsuite/20_util/variant/types_neg.cc: New test.
+
 2024-08-03  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:
diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog
index 780225c49de..c4a59473f67 100644
--- a/lto-plugin/ChangeLog
+++ b/lto-plugin/ChangeLog
@@ -1,3 +1,22 @@
+2024-09-04  H.J. Lu  <hjl.tools@gmail.com>
+
+	Backported from master:
+	2024-08-23  H.J. Lu  <hjl.tools@gmail.com>
+
+	PR lto/116361
+	* lto-plugin.c (claim_file_handler_v2): Don't check obj.found
+	for the offload section.
+
+2024-09-04  H.J. Lu  <hjl.tools@gmail.com>
+
+	Backported from master:
+	2024-08-22  H.J. Lu  <hjl.tools@gmail.com>
+
+	PR lto/116361
+	* lto-plugin.c (claim_file_handler_v2): Rename claimed to
+	can_be_claimed.  Include the LTO object only if it is known to
+	be included in link output.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit 040b979a08843806ea930a8d839dd94301323ebe
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Thu Sep 5 10:36:02 2024 +0100

    testsuite: remove -fwrapv from signbit-5.c
    
    The meaning of the testcase was changed by passing it -fwrapv.  The reason for
    the test failures on some platform was because the test was testing some
    implementation defined behavior wrt INT_MIN in generic code.
    
    Instead of using -fwrapv this just removes the border case from the test so
    all the values now have a defined semantic.  It still relies on the handling of
    shifting a negative value right, but that wasn't changed with -fwrapv anyway.
    
    The -fwrapv case is being handled already by other testcases.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/signbit-5.c: Remove -fwrapv and change INT_MIN to INT_MIN+1.
    
    (cherry picked from commit 67eaf67360e434dd5969e1c66f043e3c751f9f52)

diff --git a/gcc/testsuite/gcc.dg/signbit-5.c b/gcc/testsuite/gcc.dg/signbit-5.c
index 2bca640f930..e778f91ca33 100644
--- a/gcc/testsuite/gcc.dg/signbit-5.c
+++ b/gcc/testsuite/gcc.dg/signbit-5.c
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O3 -fwrapv" } */
+/* { dg-options "-O3" } */
 
 /* This test does not work when the truth type does not match vector type.  */
 /* { dg-additional-options "-march=armv8-a" { target aarch64_sve } } */
@@ -44,8 +44,8 @@ int main ()
   TYPE a[N];
   TYPE b[N];
 
-  a[0] = INT_MIN;
-  b[0] = INT_MIN;
+  a[0] = INT_MIN+1;
+  b[0] = INT_MIN+1;
 
   for (int i = 1; i < N; ++i)
     {

commit 6fb41c27b62b5774108455d13f5b7a67c9cbdfa3
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Aug 7 20:14:31 2024 +0200

    Don't call clean_symbol_name in create_tmp_var_name [PR116219]
    
    SRA adds fancy names like offset$D94316$_M_impl$D93629$_M_start
    where the numbers in there are DECL_UIDs if there are unnamed
    FIELD_DECLs etc.
    Because -g0 vs. -g can cause differences between the exact DECL_UID
    values (add bigger gaps in between them, corresponding decls should
    still be ordered the same based on DECL_UID) we make sure such
    decls have DECL_NAMELESS set and depending on exact options either don't
    dump such names at all or dump_fancy_name sanitizes the D123456$ parts in
    there to Dxxxx$.
    Unfortunately in tons of places we then use get_name to grab either user
    names or these SRA created names and use that as argument to
    create_tmp_var{,_name,_raw} to base other artificial temporary names based
    on that.  Those are DECL_NAMELESS too, but unfortunately create_tmp_var_name
    starting with
    https://gcc.gnu.org/git/?p=gcc.git&a=commit;h=725494f6e4121eace43b7db1202f8ecbf52a8276
    calls clean_symbol_name which replaces the $s in there with _s and thus
    dump_fancy_name doesn't sanitize it anymore.
    
    I don't see any discussion of that commit (originally to TM branch, later
    merged) on the mailing list, but from
       DECL_NAME (new_decl)
         = create_tmp_var_name (IDENTIFIER_POINTER (DECL_NAME (old_decl)));
    -  SET_DECL_ASSEMBLER_NAME (new_decl, NULL_TREE);
    +  SET_DECL_ASSEMBLER_NAME (new_decl, DECL_NAME (new_decl));
    snippet elsewhere in that commit it seems create_tmp_var_name was used at
    that point also to determine function names of clones, so presumably the
    clean_symbol_name at that point was to ensure the symbol could be emitted
    into assembly, maybe in case DECL_NAME is something like C++ operators or
    whatever could have there undesirable characters.
    
    Anyway, we don't do that for years anymore, already GCC 4.5 uses for such
    purposes clone_function_name which starts of DECL_ASSEMBLER_NAME of the old
    function and appends based on supportable symbol suffix separators the
    separator and some suffix and/or number, so that part doesn't go through
    create_tmp_var_name.
    
    I don't see problems with having the $ and . etc. characters in the names
    intended just to make dumps more readable, after all, we already are using
    those in the SRA created names.  Those names shouldn't make it into the
    assembly in any way, neither debug info nor assembly labels.
    
    There is one theoretical case, where the gimplifier promotes automatic
    vars into TREE_STATIC ones and therefore those can then appear in assembly,
    just in case it would be on e.g. SRA created names and regimplified later.
    Because no cases of promotion of DECL_NAMELESS vars to static was observed in
    {x86_64,i686,powerpc64le}-linux bootstraps/regtests, the code simply uses
    C.NNN names for DECL_NAMELESS vars like it does for !DECL_NAME vars.
    
    Richi mentioned on IRC that the non-cleaned up names might make things
    harder to feed stuff back to the GIMPLE FE, but if so, I think it should be
    the dumping for GIMPLE FE purposes that cleans those up (but at that point
    it should also verify if some such cleaned up names don't collide with
    others and somehow deal with those).
    
    2024-08-07  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/116219
            * gimple-expr.cc (remove_suffix): Formatting fixes.
            (create_tmp_var_name): Don't call clean_symbol_name.
            * gimplify.cc (gimplify_init_constructor): When promoting automatic
            DECL_NAMELESS vars to static, don't preserve their DECL_NAME.
    
    (cherry picked from commit 165e3e7c3ba884345647c0f1c9a3a57a03383651)

diff --git a/gcc/gimple-expr.cc b/gcc/gimple-expr.cc
index f8d7185530c..0477c9d5f44 100644
--- a/gcc/gimple-expr.cc
+++ b/gcc/gimple-expr.cc
@@ -406,14 +406,12 @@ remove_suffix (char *name, int len)
 {
   int i;
 
-  for (i = 2;  i < 7 && len > i;  i++)
-    {
-      if (name[len - i] == '.')
-	{
-	  name[len - i] = '\0';
-	  break;
-	}
-    }
+  for (i = 2; i < 7 && len > i; i++)
+    if (name[len - i] == '.')
+      {
+	name[len - i] = '\0';
+	break;
+      }
 }
 
 /* Create a new temporary name with PREFIX.  Return an identifier.  */
@@ -430,8 +428,6 @@ create_tmp_var_name (const char *prefix)
       char *preftmp = ASTRDUP (prefix);
 
       remove_suffix (preftmp, strlen (preftmp));
-      clean_symbol_name (preftmp);
-
       prefix = preftmp;
     }
 
diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc
index 457b33a4293..5753eb90ff5 100644
--- a/gcc/gimplify.cc
+++ b/gcc/gimplify.cc
@@ -5598,7 +5598,7 @@ gimplify_init_constructor (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
 
 	    DECL_INITIAL (object) = ctor;
 	    TREE_STATIC (object) = 1;
-	    if (!DECL_NAME (object))
+	    if (!DECL_NAME (object) || DECL_NAMELESS (object))
 	      DECL_NAME (object) = create_tmp_var_name ("C");
 	    walk_tree (&DECL_INITIAL (object), force_labels_r, NULL, NULL);
 

commit 73afc3e47e235f3a68abb1c7ce52a9d82003bdab
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Sep 3 10:20:44 2024 +0200

    lower-bitint: Fix up __builtin_{add,sub}_overflow{,_p} bitint lowering [PR116501]
    
    The following testcase is miscompiled.  The problem is in the last_ovf step.
    The second operand has signed _BitInt(513) type but has the MSB clear,
    so range_to_prec returns 512 for it (i.e. it fits into unsigned
    _BitInt(512)).  Because of that the last step actually doesn't need to get
    the most significant bit from the second operand, but the code was deciding
    what to use purely from TYPE_UNSIGNED (type1) - if unsigned, use 0,
    otherwise sign-extend the last processed bit; but that in this case was set.
    We don't want to treat the positive operand as if it was negative regardless
    of the bit below that precision, and precN >= 0 indicates that the operand
    is in the [0, inf) range.
    
    2024-09-03  Jakub Jelinek  <jakub@redhat.com>
    
            PR tree-optimization/116501
            * gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
            In the last_ovf case, use build_zero_cst operand not just when
            TYPE_UNSIGNED (typeN), but also when precN >= 0.
    
            * gcc.dg/torture/bitint-73.c: New test.
    
    (cherry picked from commit d4d75a83007e884bfcd632ea3b3269704496f048)

diff --git a/gcc/gimple-lower-bitint.cc b/gcc/gimple-lower-bitint.cc
index b10593035c3..58deaf253e9 100644
--- a/gcc/gimple-lower-bitint.cc
+++ b/gcc/gimple-lower-bitint.cc
@@ -4192,7 +4192,7 @@ bitint_large_huge::lower_addsub_overflow (tree obj, gimple *stmt)
       else
 	{
 	  m_data_cnt = data_cnt;
-	  if (TYPE_UNSIGNED (type0))
+	  if (TYPE_UNSIGNED (type0) || prec0 >= 0)
 	    rhs1 = build_zero_cst (m_limb_type);
 	  else
 	    {
@@ -4210,7 +4210,7 @@ bitint_large_huge::lower_addsub_overflow (tree obj, gimple *stmt)
 		  rhs1 = add_cast (m_limb_type, gimple_assign_lhs (g));
 		}
 	    }
-	  if (TYPE_UNSIGNED (type1))
+	  if (TYPE_UNSIGNED (type1) || prec1 >= 0)
 	    rhs2 = build_zero_cst (m_limb_type);
 	  else
 	    {
diff --git a/gcc/testsuite/gcc.dg/torture/bitint-73.c b/gcc/testsuite/gcc.dg/torture/bitint-73.c
new file mode 100644
index 00000000000..1e15f391257
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/bitint-73.c
@@ -0,0 +1,20 @@
+/* PR tree-optimization/116501 */
+/* { dg-do run { target bitint575 } } */
+/* { dg-options "-std=c23" } */
+/* { dg-skip-if "" { ! run_expensive_tests }  { "*" } { "-O0" "-O2" } } */
+/* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
+
+_BitInt (4) a;
+
+int
+foo (_BitInt(513) b)
+{
+  return __builtin_sub_overflow_p (a, b, (_BitInt (511)) 0);
+}
+
+int
+main ()
+{
+  if (!foo (0xffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff0000000000000000wb))
+    __builtin_abort ();
+}

commit 24909512101d59807f6d23a9963d64390eca8f60
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Sep 5 12:20:57 2024 +0200

    libsanitizer: On aarch64 use hint #34 in prologue of libsanitizer functions
    
    When gcc is built with -mbranch-protection=standard, running sanitized
    programs doesn't work properly on bti enabled kernels.
    
    This has been fixed upstream with
    https://github.com/llvm/llvm-project/pull/84061
    
    The following patch cherry picks that from upstream.
    
    For trunk we should eventually do a full merge from upstream, but I'm hoping
    they will first fix up the _BitInt libubsan support mess.
    
    2024-09-05  Jakub Jelinek  <jakub@redhat.com>
    
            * sanitizer_common/sanitizer_asm.h: Cherry-pick llvm-project revision
            1c792d24e0a228ad49cc004a1c26bbd7cd87f030.
            * interception/interception.h: Likewise.
    
    (cherry picked from commit 2379cbb94b2668227c237c94c82e3c49fe39fd0f)

diff --git a/libsanitizer/interception/interception.h b/libsanitizer/interception/interception.h
index 58e969378a9..73135b34bee 100644
--- a/libsanitizer/interception/interception.h
+++ b/libsanitizer/interception/interception.h
@@ -204,11 +204,11 @@ const interpose_substitution substitution_##func_name[]             \
        ".type  " SANITIZER_STRINGIFY(TRAMPOLINE(func)) ", "                    \
          ASM_TYPE_FUNCTION_STR "\n"                                            \
        SANITIZER_STRINGIFY(TRAMPOLINE(func)) ":\n"                             \
-       SANITIZER_STRINGIFY(CFI_STARTPROC) "\n"                                 \
+       C_ASM_STARTPROC "\n"                                                    \
        C_ASM_TAIL_CALL(SANITIZER_STRINGIFY(TRAMPOLINE(func)),                  \
                        "__interceptor_"                                        \
                          SANITIZER_STRINGIFY(ASM_PREEMPTIBLE_SYM(func))) "\n"  \
-       SANITIZER_STRINGIFY(CFI_ENDPROC) "\n"                                   \
+       C_ASM_ENDPROC "\n"                                                      \
        ".size  " SANITIZER_STRINGIFY(TRAMPOLINE(func)) ", "                    \
             ".-" SANITIZER_STRINGIFY(TRAMPOLINE(func)) "\n"                    \
      );
diff --git a/libsanitizer/sanitizer_common/sanitizer_asm.h b/libsanitizer/sanitizer_common/sanitizer_asm.h
index 3af66a4e449..30e9d15184e 100644
--- a/libsanitizer/sanitizer_common/sanitizer_asm.h
+++ b/libsanitizer/sanitizer_common/sanitizer_asm.h
@@ -42,6 +42,16 @@
 # define CFI_RESTORE(reg)
 #endif
 
+#if defined(__aarch64__) && defined(__ARM_FEATURE_BTI_DEFAULT)
+# define ASM_STARTPROC CFI_STARTPROC; hint #34
+# define C_ASM_STARTPROC SANITIZER_STRINGIFY(CFI_STARTPROC) "\nhint #34"
+#else
+# define ASM_STARTPROC CFI_STARTPROC
+# define C_ASM_STARTPROC SANITIZER_STRINGIFY(CFI_STARTPROC)
+#endif
+#define ASM_ENDPROC CFI_ENDPROC
+#define C_ASM_ENDPROC SANITIZER_STRINGIFY(CFI_ENDPROC)
+
 #if defined(__x86_64__) || defined(__i386__) || defined(__sparc__)
 # define ASM_TAIL_CALL jmp
 #elif defined(__arm__) || defined(__aarch64__) || defined(__mips__) || \
@@ -114,9 +124,9 @@
          .globl __interceptor_trampoline_##name;                               \
          ASM_TYPE_FUNCTION(__interceptor_trampoline_##name);                   \
          __interceptor_trampoline_##name:                                      \
-                 CFI_STARTPROC;                                                \
+                 ASM_STARTPROC;                                                \
                  ASM_TAIL_CALL ASM_PREEMPTIBLE_SYM(__interceptor_##name);      \
-                 CFI_ENDPROC;                                                  \
+                 ASM_ENDPROC;                                                  \
          ASM_SIZE(__interceptor_trampoline_##name)
 #  define ASM_INTERCEPTOR_TRAMPOLINE_SUPPORT 1
 # endif  // Architecture supports interceptor trampoline

commit 6abedee0d4c8d40d412a358a3f6cb6090772d286
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 27 13:11:39 2024 -0700

    ipa: Don't disable function parameter analysis for fat LTO
    
    Update analyze_parms not to disable function parameter analysis for
    -ffat-lto-objects.  Tested on x86-64, there are no differences in zstd
    with "-O2 -flto=auto" -g "vs -O2 -flto=auto -g -ffat-lto-objects".
    
            PR ipa/116410
            * ipa-modref.cc (analyze_parms): Always analyze function parameter
            for LTO.
    
    Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
    (cherry picked from commit 2f1689ea8e631ebb4ff3720d56ef0362f5898ff6)

diff --git a/gcc/ipa-modref.cc b/gcc/ipa-modref.cc
index 37221215a65..10344fbb4b5 100644
--- a/gcc/ipa-modref.cc
+++ b/gcc/ipa-modref.cc
@@ -2969,7 +2969,7 @@ analyze_parms (modref_summary *summary, modref_summary_lto *summary_lto,
 		summary->arg_flags.safe_grow_cleared (count, true);
 	      summary->arg_flags[parm_index] = EAF_UNUSED;
 	    }
-	  else if (summary_lto)
+	  if (summary_lto)
 	    {
 	      if (parm_index >= summary_lto->arg_flags.length ())
 		summary_lto->arg_flags.safe_grow_cleared (count, true);
@@ -3028,7 +3028,7 @@ analyze_parms (modref_summary *summary, modref_summary_lto *summary_lto,
 		summary->arg_flags.safe_grow_cleared (count, true);
 	      summary->arg_flags[parm_index] = flags;
 	    }
-	  else if (summary_lto)
+	  if (summary_lto)
 	    {
 	      if (parm_index >= summary_lto->arg_flags.length ())
 		summary_lto->arg_flags.safe_grow_cleared (count, true);

commit fe668633f6b5819ba04d80f13343ee7f5bba1c5b
Author: Marek Polacek <polacek@redhat.com>
Date:   Thu Sep 5 13:01:59 2024 -0400

    c++: vtable referring to "unavailable" virtual fn [PR116606]
    
    mark_vtable_entries already has
    
       /* It's OK for the vtable to refer to deprecated virtual functions.  */
       warning_sentinel w(warn_deprecated_decl);
    
    but that doesn't cover __attribute__((unavailable)).  We can use the
    following override to cover both.
    
            PR c++/116606
    
    gcc/cp/ChangeLog:
    
            * decl2.cc (mark_vtable_entries): Temporarily override deprecated_state to
            UNAVAILABLE_DEPRECATED_SUPPRESS.  Remove a warning_sentinel.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/ext/attr-unavailable-13.C: New test.
    
    (cherry picked from commit d9d34f9a91371dea4bab0b54b2d7f762a6cc23e0)

diff --git a/gcc/cp/decl2.cc b/gcc/cp/decl2.cc
index af2e08c8a63..f6c760338cc 100644
--- a/gcc/cp/decl2.cc
+++ b/gcc/cp/decl2.cc
@@ -2172,7 +2172,8 @@ static void
 mark_vtable_entries (tree decl, vec<tree> &consteval_vtables)
 {
   /* It's OK for the vtable to refer to deprecated virtual functions.  */
-  warning_sentinel w(warn_deprecated_decl);
+  auto du = make_temp_override (deprecated_state,
+				UNAVAILABLE_DEPRECATED_SUPPRESS);
 
   bool consteval_seen = false;
 
diff --git a/gcc/testsuite/g++.dg/ext/attr-unavailable-13.C b/gcc/testsuite/g++.dg/ext/attr-unavailable-13.C
new file mode 100644
index 00000000000..9ca40005419
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/attr-unavailable-13.C
@@ -0,0 +1,8 @@
+// PR c++/116606
+// { dg-do compile }
+
+struct C {
+    __attribute__((unavailable)) virtual void f() {}
+};
+
+C c;

commit aedf6f810eee108d4b6c41dbd4bd113ca04c1b6c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Sep 6 00:22:34 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8bc41ae0aaa..4773a468197 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,33 @@
+2024-09-05  H.J. Lu  <hjl.tools@gmail.com>
+
+	Backported from master:
+	2024-09-03  H.J. Lu  <hjl.tools@gmail.com>
+
+	PR ipa/116410
+	* ipa-modref.cc (analyze_parms): Always analyze function parameter
+	for LTO.
+
+2024-09-05  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-03  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/116501
+	* gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
+	In the last_ovf case, use build_zero_cst operand not just when
+	TYPE_UNSIGNED (typeN), but also when precN >= 0.
+
+2024-09-05  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-08-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/116219
+	* gimple-expr.cc (remove_suffix): Formatting fixes.
+	(create_tmp_var_name): Don't call clean_symbol_name.
+	* gimplify.cc (gimplify_init_constructor): When promoting automatic
+	DECL_NAMELESS vars to static, don't preserve their DECL_NAME.
+
 2024-09-04  Andrew Carlotti  <andrew.carlotti@arm.com>
 
 	PR target/112108
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c8bedcac256..a2aca132dd9 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240905
+20240906
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ebb02354925..4fce475fab5 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,12 @@
+2024-09-05  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-05  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116606
+	* decl2.cc (mark_vtable_entries): Temporarily override deprecated_state to
+	UNAVAILABLE_DEPRECATED_SUPPRESS.  Remove a warning_sentinel.
+
 2024-08-19  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6f349aee248..736537b0cf0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,26 @@
+2024-09-05  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-05  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116606
+	* g++.dg/ext/attr-unavailable-13.C: New test.
+
+2024-09-05  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-03  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/116501
+	* gcc.dg/torture/bitint-73.c: New test.
+
+2024-09-05  Tamar Christina  <tamar.christina@arm.com>
+
+	Backported from master:
+	2024-09-05  Tamar Christina  <tamar.christina@arm.com>
+
+	* gcc.dg/signbit-5.c: Remove -fwrapv and change INT_MIN to INT_MIN+1.
+
 2024-09-04  Andrew Carlotti  <andrew.carlotti@arm.com>
 
 	PR target/112108
diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog
index 95f65b6d182..f858bb3f6bb 100644
--- a/libsanitizer/ChangeLog
+++ b/libsanitizer/ChangeLog
@@ -1,3 +1,12 @@
+2024-09-05  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-05  Jakub Jelinek  <jakub@redhat.com>
+
+	* sanitizer_common/sanitizer_asm.h: Cherry-pick llvm-project revision
+	1c792d24e0a228ad49cc004a1c26bbd7cd87f030.
+	* interception/interception.h: Likewise.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit d4d7c4e21984b2705a1c51cde9162c1b1a0e73f0
Author: Joseph Myers <josmyers@redhat.com>
Date:   Fri Sep 6 16:15:12 2024 +0000

    Update gcc uk.po
    
            * uk.po: Update.

diff --git a/gcc/po/uk.po b/gcc/po/uk.po
index 5c63b7eb8fa..c3f49a81439 100644
--- a/gcc/po/uk.po
+++ b/gcc/po/uk.po
@@ -3,14 +3,14 @@
 # This file is distributed under the same license as the gcc package.
 #
 # Yuri Chornoivan <yurchor@ukr.net>, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022.
-# Volodymyr M. Lisivka <vlisivka@gmail.com>, 2023.
+# Volodymyr M. Lisivka <vlisivka@gmail.com>, 2023. 2024.
 msgid ""
 msgstr ""
-"Project-Id-Version: gcc 13.2.0\n"
+"Project-Id-Version: gcc 14.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
 "POT-Creation-Date: 2024-07-25 16:23+0000\n"
-"PO-Revision-Date: 2023-07-28 15:23+0300\n"
-"Last-Translator: Volodymyr Lisivka <vlisivka@gmail.com>\n"
+"PO-Revision-Date: 2024-09-06 12:23+0300\n"
+"Last-Translator: Volodymyr M. Lisivka <vlisivka@gmail.com>\n"
 "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
 "Language: uk\n"
 "MIME-Version: 1.0\n"
@@ -317,10 +317,8 @@ msgid "-install_name only allowed with -dynamiclib"
 msgstr "-install_name дозволяється тільки з -dynamiclib"
 
 #: config/darwin.h:191
-#, fuzzy
-#| msgid "-bundle not allowed with -dynamiclib"
 msgid "-bundle not allowed with -shared"
-msgstr "-bundle не дозволяється з -dynamiclib"
+msgstr "-bundle не дозволено разом з -shared"
 
 #: config/darwin.h:192
 msgid "-bundle not allowed with -dynamiclib"
@@ -1024,7 +1022,7 @@ msgstr "Встановити приватний доступ за замовчу
 #: fortran/lang.opt:721
 #, no-c-format
 msgid "Handle OpenMP allocators for allocatables and pointers."
-msgstr ""
+msgstr "Обробляйте алокатори OpenMP для виділених та вказівників."
 
 #: fortran/lang.opt:725
 #, no-c-format
@@ -1179,10 +1177,9 @@ msgid "Conform to the ISO Fortran 2018 standard."
 msgstr "Відповідати стандарту ISO Fortran 2018."
 
 #: fortran/lang.opt:896
-#, fuzzy, no-c-format
-#| msgid "Conform to the ISO Fortran 2003 standard."
+#, no-c-format
 msgid "Conform to the ISO Fortran 2023 standard."
-msgstr "Відповідати стандарту ISO Fortran 2003."
+msgstr "Відповідати стандарту ISO Fortran 2023."
 
 #: fortran/lang.opt:900
 #, no-c-format
@@ -1222,7 +1219,7 @@ msgstr "-frust-crate=<імʼя>             Встановити назву кр
 #: rust/lang.opt:67
 #, no-c-format
 msgid "-frust-extern=              Specify where an external library is located"
-msgstr ""
+msgstr "-frust-extern=              Вкажіть, де розташована зовнішня бібліотека."
 
 #: rust/lang.opt:71
 #, no-c-format
@@ -1230,10 +1227,9 @@ msgid "Dump various Rust front end internals."
 msgstr "Вивести різні внутрішні елементи передньої частини Rust."
 
 #: rust/lang.opt:75
-#, fuzzy, no-c-format
-#| msgid "-frust-dump-<type>\tDump Rust frontend internal information."
+#, no-c-format
 msgid "-frust-dump-<type>              Dump Rust frontend internal information."
-msgstr "-frust-dump-<тип>\tВивести внутрішню інформацію передньої частини Rust."
+msgstr "-frust-dump-<тип>              Вивести внутрішню інформацію фронтенду Rust."
 
 #: rust/lang.opt:79
 #, no-c-format
@@ -1241,21 +1237,19 @@ msgid "Enable experimental compilation of Rust files at your own risk"
 msgstr "Увімкнути експериментальну компіляцію файлів Rust на власний ризик"
 
 #: rust/lang.opt:83
-#, fuzzy, no-c-format
-#| msgid "-frust-max-recursion-depth=integer"
+#, no-c-format
 msgid "-frust-max-recursion-depth=<integer>"
-msgstr "-frust-max-recursion-depth=ціле"
+msgstr "-frust-max-recursion-depth=<ціле число>"
 
 #: rust/lang.opt:87
 #, no-c-format
 msgid "-frust-crate-type=[bin|lib|rlib|dylib|cdylib|staticlib|proc-macro]     Crate type to emit"
-msgstr ""
+msgstr "-frust-crate-type=[bin|lib|rlib|dylib|cdylib|staticlib|proc-macro]     Тип крейту для випуску."
 
 #: rust/lang.opt:115
-#, fuzzy, no-c-format
-#| msgid "-frust-mangling=[legacy|v0]     Choose which version to use for name mangling"
+#, no-c-format
 msgid "-frust-mangling=[legacy|v0]     Version to use for name mangling"
-msgstr "-frust-mangling=[legacy|v0]     Виберіть, яку версію використовувати для декорування імен"
+msgstr "-frust-mangling=[legacy|v0]     Версія для використання при зміні імен"
 
 #: rust/lang.opt:128
 #, no-c-format
@@ -1263,16 +1257,14 @@ msgid "-frust-cfg=<name>             Set a config expansion option"
 msgstr "-frust-cfg=<імʼя>             Встановити параметр розширення конфігурації"
 
 #: rust/lang.opt:132
-#, fuzzy, no-c-format
-#| msgid "-frust-edition=[2015|2018|2021]             Choose which edition to use when compiling rust code"
+#, no-c-format
 msgid "-frust-edition=[2015|2018|2021]             Edition to use when compiling rust code"
-msgstr "-frust-edition=[2015|2018|2021]             Виберіть, яку редакцію використовувати при компіляції коду rust"
+msgstr "-frust-edition=[2015|2018|2021]             Видання, яке використовується при компіляції коду Rust."
 
 #: rust/lang.opt:148
-#, fuzzy, no-c-format
-#| msgid "Flag to enable embeding metadata directly into object files"
+#, no-c-format
 msgid "Enable embedding metadata directly into object files"
-msgstr "Прапорець для включення метаданих безпосередньо в обʼєктні файли"
+msgstr "Увімкнути вбудовування метаданих безпосередньо у файли об'єктів"
 
 #: rust/lang.opt:152
 #, no-c-format
@@ -1280,20 +1272,19 @@ msgid "-frust-metadata-output=<path.rox>  Path to output crate metadata"
 msgstr "-frust-metadata-output=<шлях.rox>  Шлях до вихідних метаданих ящика"
 
 #: rust/lang.opt:160
-#, fuzzy, no-c-format
-#| msgid "-frust-compile-until=[ast|attributecheck|expansion|nameresolution|lowering|typecheck|privacy|unsafety|const|copimlation|end]             When to stop in the pipeline when compiling Rust code"
+#, no-c-format
 msgid "-frust-compile-until=[ast|attributecheck|expansion|astvalidation|featuregating|nameresolution|lowering|typecheck|privacy|unsafety|const|borrowcheck|compilation|end]             The pipeline will run up until this stage when compiling Rust code"
-msgstr "-frust-compile-until=[ast|attributecheck|expansion|nameresolution|lowering|typecheck|privacy|unsafety|const|copimlation|end]             Коли зупинитися в конвеєрі під час компіляції коду Rust"
+msgstr "-frust-compile-until=[ast|attributecheck|expansion|astvalidation|featuregating|nameresolution|lowering|typecheck|privacy|unsafety|const|borrowcheck|compilation|end]             Конвеєр буде виконуватися до цього етапу під час компіляції коду Rust."
 
 #: rust/lang.opt:209
 #, no-c-format
 msgid "Use the temporary and experimental name resolution pipeline instead of the stable one"
-msgstr ""
+msgstr "Використовуйте тимчасовий та експериментальний конвеєр розв'язання імені замість стабільного конвеєра."
 
 #: rust/lang.opt:213
 #, no-c-format
 msgid "Use the WIP borrow checker."
-msgstr ""
+msgstr "Використовуйте перевірку позичання в розробці (WIP)."
 
 #: c-family/c.opt:182
 #, no-c-format
@@ -1388,18 +1379,17 @@ msgstr "-MT <ціль>\tДодати ціль, яка не вимагає цит
 #: c-family/c.opt:261
 #, no-c-format
 msgid "Structured format for output dependency information.  Supported (\"p1689r5\")."
-msgstr ""
+msgstr "Структурований формат для виведення інформації про залежності. Підтримується (\"p1689r5\")."
 
 #: c-family/c.opt:265
-#, fuzzy, no-c-format
-#| msgid "Generate C++ Module dependency information."
+#, no-c-format
 msgid "File for output dependency information."
-msgstr "Генерувати інформацію про залежності модулів C++."
+msgstr "Файл для виведення інформації про залежності."
 
 #: c-family/c.opt:269
 #, no-c-format
 msgid "-fdeps-target=obj.o Output file for the compile step."
-msgstr ""
+msgstr "-fdeps-target=obj.o Вихідний файл для кроку компіляції."
 
 #: c-family/c.opt:273
 #, no-c-format
@@ -1469,7 +1459,7 @@ msgstr "Попереджати про будь-яке використання a
 #: c-family/c.opt:340
 #, no-c-format
 msgid "Warn when allocating insufficient storage for the target type of the assigned pointer."
-msgstr ""
+msgstr "Попереджати при виділенні недостатньої пам'яті для типу призначення вказаного покажчика."
 
 #: c-family/c.opt:344
 #, no-c-format
@@ -1547,16 +1537,14 @@ msgid "Warn when a built-in preprocessor macro is undefined or redefined."
 msgstr "Попереджувати, коли вбудований макрос препроцесора не визначений або перевизначений."
 
 #: c-family/c.opt:438
-#, fuzzy, no-c-format
-#| msgid "Warn about features not present in ISO C11, but present in ISO C2X."
+#, no-c-format
 msgid "Warn about features not present in ISO C11, but present in ISO C23."
-msgstr "Попереджувати про функції, які відсутні в ISO C11, але присутні в ISO C2X."
+msgstr "Попереджати про функції, які відсутні в стандарті ISO C11, але присутні в стандарті ISO C23."
 
 #: c-family/c.opt:442
-#, fuzzy, no-c-format
-#| msgid "Deprecated in favor of -std=c11."
+#, no-c-format
 msgid "Deprecated in favor of -Wc11-c23-compat."
-msgstr "Застарілий на користь -std=c11."
+msgstr "Застаріле на користь -Wc11-c23-compat."
 
 #: c-family/c.opt:446
 #, no-c-format
@@ -1619,16 +1607,14 @@ msgid "Warn about C++23 constructs in code compiled with an older standard."
 msgstr "Попереджувати про використання конструкцій C++23 у коді, скомпільованому зі старішим стандартом."
 
 #: c-family/c.opt:503
-#, fuzzy, no-c-format
-#| msgid "Warn about C++20 constructs in code compiled with an older standard."
+#, no-c-format
 msgid "Warn about C++26 constructs in code compiled with an older standard."
-msgstr "Попереджувати про використання конструкцій C++20 у коді, скомпільованому зі старішим стандартом."
+msgstr "Попереджати про використання конструкцій C++26 у коді, який компілюється зі стандартом нижчої версії."
 
 #: c-family/c.opt:507
-#, fuzzy, no-c-format
-#| msgid "Warn about suspicious divisions of two sizeof expressions that don't work correctly with pointers."
+#, no-c-format
 msgid "Warn about suspicious calls to calloc-like functions where sizeof expression is the earlier size argument and not the latter."
-msgstr "Попереджувати про підозрілі ділення двох виразів sizeof, які не працюють правильно з вказівниками."
+msgstr "Попереджати про підозрілі виклики функцій подібних на calloc, де вираз sizeof є першим аргументом розміру, а не останнім."
 
 #: c-family/c.opt:511
 #, no-c-format
@@ -1643,7 +1629,7 @@ msgstr "Попереджувати про приведення, які відк
 #: c-family/c.opt:519
 #, no-c-format
 msgid "Warn about a cast to reference type that does not use a related user-defined conversion function."
-msgstr ""
+msgstr "Попереджати про приведення до типу посилання, яке не використовує пов'язану користувацьку функцію перетворення."
 
 #: c-family/c.opt:523 c-family/c.opt:527
 #, no-c-format
@@ -1753,10 +1739,9 @@ msgid "Warn when a declaration is found after a statement."
 msgstr "Попереджати, коли після оператора знайдено оголошення."
 
 #: c-family/c.opt:616
-#, fuzzy, no-c-format
-#| msgid "Warn about unprototyped function declarations."
+#, no-c-format
 msgid "Warn for missing parameter types in function declarations."
-msgstr "Попереджати про непрототиповані оголошення функцій."
+msgstr "Попереджати про відсутність типів параметрів у оголошеннях функцій."
 
 #: c-family/c.opt:620
 #, no-c-format
@@ -1836,7 +1821,7 @@ msgstr "Попереджувати про порушення правил сти
 #: c-family/c.opt:687
 #, no-c-format
 msgid "Warn if an additional enum-base is used in an elaborated-type-specifier."
-msgstr ""
+msgstr "Попереджати, якщо використовується додаткова база перерахування в уточненому визначенні типу."
 
 #: c-family/c.opt:691
 #, no-c-format
@@ -1886,7 +1871,7 @@ msgstr "Попереджувати про крапку з комою після
 #: c-family/c.opt:735
 #, no-c-format
 msgid "Warn when a structure containing a C99 flexible array member as the last field is not at the end of another structure."
-msgstr ""
+msgstr "Попереджати, якщо структура, з гнучким масивом C99 в останньому полі, не є останнім полем іншої структури."
 
 #: c-family/c.opt:740
 #, no-c-format
@@ -1969,10 +1954,9 @@ msgid "Warn when __builtin_frame_address or __builtin_return_address is used uns
 msgstr "Попереджувати, коли __builtin_frame_address або __builtin_return_address використовуються небезпечно."
 
 #: c-family/c.opt:811
-#, fuzzy, no-c-format
-#| msgid "global module fragment contents must be from preprocessor inclusion"
+#, no-c-format
 msgid "Warn about the global module fragment not containing only preprocessing directives."
-msgstr "вміст глобального фрагмента модуля повинен бути з препроцесорного включення"
+msgstr "Попереджати про глобальний фрагмент модуля, який містить не лише директиви препроцесора."
 
 #: c-family/c.opt:815
 #, no-c-format
@@ -2175,10 +2159,9 @@ msgid "Warn when the template keyword is missing after a member access token in
 msgstr "Попереджувати, коли ключове слово «template» відсутнє після токена доступу до члена в залежному виразі доступу до члена, якщо цей член є шаблоном."
 
 #: c-family/c.opt:1002
-#, fuzzy, no-c-format
-#| msgid "Warn about global functions without previous declarations."
+#, no-c-format
 msgid "Warn about global variables without previous declarations."
-msgstr "Попереджати про глобальні функції без попередніх оголошень."
+msgstr "Попереджати про глобальні змінні без попередніх оголошень."
 
 #: c-family/c.opt:1009
 #, no-c-format
@@ -2266,10 +2249,9 @@ msgid "Warn about potentially suboptimal choices related to OpenACC parallelism.
 msgstr "Попереджувати про потенційно неоптимальні вибори, повʼязані з паралелізмом OpenACC."
 
 #: c-family/c.opt:1109
-#, fuzzy, no-c-format
-#| msgid "Warn about \"suspicious\" constructs."
+#, no-c-format
 msgid "Warn about suspicious OpenMP code."
-msgstr "Попереджати про «підозрілі» конструкції."
+msgstr "Попереджати про підозрілий код OpenMP."
 
 #: c-family/c.opt:1113
 #, no-c-format
@@ -2299,7 +2281,7 @@ msgstr "Попереджати про перевизначення ініціа
 #: c-family/c.opt:1137
 #, no-c-format
 msgid "Warn if the named return value optimization is not performed although it is allowed."
-msgstr ""
+msgstr "Повідомляти, якщо оптимізація повернення значення за ім'ям не виконується, хоча це дозволено."
 
 #: c-family/c.opt:1141
 #, no-c-format
@@ -2409,7 +2391,7 @@ msgstr "Попереджувати, коли аргумент, передани
 #: c-family/c.opt:1234
 #, no-c-format
 msgid "Warn whenever void-returning functions return a non-void expressions, or a return expression is missing in a function not returning void."
-msgstr ""
+msgstr "Попереджати, коли функції, які не повертають значення, містяьт вираз повернення значення, або, навпаки, відсутній вираз повернення значення у функції, що має повернути значення."
 
 #: c-family/c.opt:1238
 #, no-c-format
@@ -2502,10 +2484,9 @@ msgid "Warn about suspicious length parameters to certain string functions if th
 msgstr "Попереджувати про підозрілі параметри довжини для деяких функцій рядків, якщо аргумент використовує sizeof."
 
 #: c-family/c.opt:1323
-#, fuzzy, no-c-format
-#| msgid "Warn about inproper usages of flexible array members according to the level of -fstrict-flex-arrays."
+#, no-c-format
 msgid "Warn about improper usages of flexible array members according to the level of -fstrict-flex-arrays."
-msgstr "Попереджувати про неправильне використання гнучких елементів масиву залежно від рівня -fstrict-flex-arrays."
+msgstr "Попереджати про неправильне використання гнучких масивів залежно від рівня -fstrict-flex-arrays."
 
 #: c-family/c.opt:1328
 #, no-c-format
@@ -2608,10 +2589,9 @@ msgid "Warn if a comparison always evaluates to true or false."
 msgstr "Попереджати, якщо порівняння завжди оцінюється як true або false."
 
 #: c-family/c.opt:1421
-#, fuzzy, no-c-format
-#| msgid "template-id not allowed for destructor"
+#, no-c-format
 msgid "Warn about simple-template-id in a constructor or destructor."
-msgstr "template-id не дозволено для деструктора"
+msgstr "Попереджати про simple-template-id у конструкторі або деструкторі."
 
 #: c-family/c.opt:1425
 #, no-c-format
@@ -2920,10 +2900,9 @@ msgid "Print hierarchical comparisons when template types are mismatched."
 msgstr "Друкувати ієрархічні порівняння, коли типи шаблонів не збігаються."
 
 #: c-family/c.opt:1826
-#, fuzzy, no-c-format
-#| msgid "default argument mismatch in overload resolution"
+#, no-c-format
 msgid "Note all candidates during overload resolution failure."
-msgstr "несумісність аргументу за замовчуванням при вирішенні перевантаження"
+msgstr "Зазначати всіх кандидатів під час невдачі розподілу перевантаження."
 
 #: c-family/c.opt:1830
 #, no-c-format
@@ -3013,7 +2992,7 @@ msgstr "Припускати нормальне середовище викон
 #: c-family/c.opt:1923
 #, no-c-format
 msgid "Implement P2564 for consteval propagation."
-msgstr ""
+msgstr "Реалізувати P2564 для розповсюдження consteval."
 
 #: c-family/c.opt:1927
 #, no-c-format
@@ -3086,10 +3065,9 @@ msgid "Warn about macros that have conflicting header units definitions."
 msgstr "Попереджати про макроси, які мають конфліктні визначення одиниць заголовка."
 
 #: c-family/c.opt:2000
-#, fuzzy, no-c-format
-#| msgid "Warn when a pointer is compared with a zero character constant."
+#, no-c-format
 msgid "Warn if pointers of distinct types are compared without a cast."
-msgstr "Попереджати, коли вказівник порівнюється з нульовою символьною константою."
+msgstr "Попереджати, якщо порівнюються вказівники різних типів без приведення типу."
 
 #: c-family/c.opt:2004
 #, no-c-format
@@ -3132,10 +3110,9 @@ msgid "Implement resolution of DR 150 for matching of template template argument
 msgstr "Реалізувати вирішення DR 150 для відповідності аргументів шаблону шаблону."
 
 #: c-family/c.opt:2051
-#, fuzzy, no-c-format
-#| msgid "Generate code for NeXT (Apple Mac OS X) runtime environment."
+#, no-c-format
 msgid "Generate code for NeXT (Apple macOS) runtime environment."
-msgstr "Генерувати код для середовища виконання NeXT (Apple Mac OS X)."
+msgstr "Генерувати код для середовища виконання NeXT (Apple macOS)."
 
 #: c-family/c.opt:2055
 #, no-c-format
@@ -3528,10 +3505,9 @@ msgid "Conform to the ISO 2023 C++ draft standard (experimental and incomplete s
 msgstr "Відповідати проекту стандарту C++ ISO 2023 (експериментальна та неповна підтримка)."
 
 #: c-family/c.opt:2488 c-family/c.opt:2492
-#, fuzzy, no-c-format
-#| msgid "Conform to the ISO 2023 C++ draft standard (experimental and incomplete support)."
+#, no-c-format
 msgid "Conform to the ISO 2026 C++ draft standard (experimental and incomplete support)."
-msgstr "Відповідати проекту стандарту C++ ISO 2023 (експериментальна та неповна підтримка)."
+msgstr "Відповідати чернетці стандарту ISO 2026 C++ (експериментальна та неповна підтримка)."
 
 #: c-family/c.opt:2496 c-family/c.opt:2650
 #, no-c-format
@@ -3550,16 +3526,14 @@ msgid "Conform to the ISO 2017 C standard (published in 2018)."
 msgstr "Відповідність стандарту C ISO 2017 (опубліковано в 2018 році)."
 
 #: c-family/c.opt:2512 c-family/c.opt:2662
-#, fuzzy, no-c-format
-#| msgid "Conform to the ISO 202X C standard draft (experimental and incomplete support)."
+#, no-c-format
 msgid "Conform to the ISO 2023 C standard draft (expected to be published in 2024) (experimental and incomplete support)."
-msgstr "Відповідність проекту стандарту C ISO 202X (експериментальна та неповна підтримка)."
+msgstr "Відповідати чернетці стандарту ISO 2023 C (очікується публікація у 2024 році) (експериментальна та неповна підтримка)."
 
 #: c-family/c.opt:2516
-#, fuzzy, no-c-format
-#| msgid "Deprecated in favor of -std=c11."
+#, no-c-format
 msgid "Deprecated in favor of -std=c23."
-msgstr "Застарілий на користь -std=c11."
+msgstr "Застарів на користь -std=c23."
 
 #: c-family/c.opt:2520 c-family/c.opt:2524 c-family/c.opt:2634
 #, no-c-format
@@ -3622,10 +3596,9 @@ msgid "Conform to the ISO 2023 C++ draft standard with GNU extensions (experimen
 msgstr "Відповідати проекту стандарту C++ ISO 2023 з розширеннями GNU (експериментальна та неповна підтримка)."
 
 #: c-family/c.opt:2586 c-family/c.opt:2590
-#, fuzzy, no-c-format
-#| msgid "Conform to the ISO 2023 C++ draft standard with GNU extensions (experimental and incomplete support)."
+#, no-c-format
 msgid "Conform to the ISO 2026 C++ draft standard with GNU extensions (experimental and incomplete support)."
-msgstr "Відповідати проекту стандарту C++ ISO 2023 з розширеннями GNU (експериментальна та неповна підтримка)."
+msgstr "Відповідати чернетці стандарту ISO 2026 C++ з розширеннями GNU (експериментальна та неповна підтримка)."
 
 #: c-family/c.opt:2594
 #, no-c-format
@@ -3643,16 +3616,14 @@ msgid "Conform to the ISO 2017 C standard (published in 2018) with GNU extension
 msgstr "Відповідати стандарту C ISO 2017 (опублікованому в 2018 році) з розширеннями GNU."
 
 #: c-family/c.opt:2610
-#, fuzzy, no-c-format
-#| msgid "Conform to the ISO 202X C standard draft with GNU extensions (experimental and incomplete support)."
+#, no-c-format
 msgid "Conform to the ISO 2023 C standard draft (expected to be published in 2024) with GNU extensions (experimental and incomplete support)."
-msgstr "Відповідати проекту стандарту C ISO 202X з розширеннями GNU (експериментальна та неповна підтримка)."
+msgstr "Відповідати чернетці стандарту ISO 2023 C (очікується публікація у 2024 році) з розширеннями GNU (експериментальна та неповна підтримка)."
 
 #: c-family/c.opt:2614
-#, fuzzy, no-c-format
-#| msgid "Deprecated in favor of -std=gnu11."
+#, no-c-format
 msgid "Deprecated in favor of -std=gnu23."
-msgstr "Застарілий на користь -std=gnu11."
+msgstr "Застарів на користь -std=gnu23."
 
 #: c-family/c.opt:2618 c-family/c.opt:2622
 #, no-c-format
@@ -4072,7 +4043,7 @@ msgstr "Звʼязати стандартну бібліотеку D динам
 #: m2/lang.opt:35
 #, no-c-format
 msgid "turns on case statement label compile time checking when using an expression of an enum type."
-msgstr ""
+msgstr "Увімкнути перевірку міток оператора case під час компіляції, коли використовується вираз типу enum."
 
 #: m2/lang.opt:39
 #, no-c-format
@@ -4097,12 +4068,12 @@ msgstr "додаткова перевірка семантики під час 
 #: m2/lang.opt:55
 #, no-c-format
 msgid "turns on compile time analysis in the first basic block of a procedure detecting access to uninitialized data."
-msgstr ""
+msgstr "Увімкнути аналіз під час компіляції в першому базовому блоці процедури для виявлення доступу до даних без початкового значення."
 
 #: m2/lang.opt:59
 #, no-c-format
 msgid "turns on compile time analysis to detect access to uninitialized variables, the checking can be specified by: known,cond,all."
-msgstr ""
+msgstr "Увімкнути аналіз коду під час компіляції для виявлення звернень до неініціалізованих змінних. Тип перевірки: known,cond,all."
 
 #: m2/lang.opt:63
 #, no-c-format
@@ -4140,16 +4111,14 @@ msgid "turn on internal debugging of the compiler (internal switch)"
 msgstr "увімкнути внутрішнє налагодження компілятора (внутрішній перемикач)"
 
 #: m2/lang.opt:95
-#, fuzzy, no-c-format
-#| msgid "turn on internal debugging of the compiler (internal switch)"
+#, no-c-format
 msgid "turn on tracing of procedure line numbers (internal switch)"
-msgstr "увімкнути внутрішнє налагодження компілятора (внутрішній перемикач)"
+msgstr "увімкнути трасування номерів рядків процедур (внутрішній перемикач)"
 
 #: m2/lang.opt:99
-#, fuzzy, no-c-format
-#| msgid "recognise the specified suffix as a definition module filename"
+#, no-c-format
 msgid "recognize the specified suffix as a definition module filename"
-msgstr "визнати вказаний суфікс як імʼя файлу модуля визначення"
+msgstr "розпізнавати вказаний суфікс як ім'я файлу модуля визначення"
 
 #: m2/lang.opt:103
 #, no-c-format
@@ -4192,10 +4161,9 @@ msgid "set all location values to a specific value (internal switch)"
 msgstr "встановити всі значення розташування на певне значення (внутрішній перемикач)"
 
 #: m2/lang.opt:135
-#, fuzzy, no-c-format
-#| msgid "turn on internal debugging of the compiler (internal switch)"
+#, no-c-format
 msgid "turn on internal debug tracing for quad,token,line,all (internal switch)"
-msgstr "увімкнути внутрішнє налагодження компілятора (внутрішній перемикач)"
+msgstr "увімкнути внутрішнє налагодження трасування для quad,token,line,all (внутрішній перемикач)"
 
 #: m2/lang.opt:139
 #, no-c-format
@@ -4238,10 +4206,9 @@ msgid "compile all implementation modules and program module at once"
 msgstr "компілювати всі модулі реалізації та модуль програми одночасно"
 
 #: m2/lang.opt:175
-#, fuzzy, no-c-format
-#| msgid "recognise the specified suffix as implementation and module filenames"
+#, no-c-format
 msgid "recognize the specified suffix as implementation and module filenames"
-msgstr "визнати вказаний суфікс як імена файлів реалізації та модуля"
+msgstr "розпізнавати вказаний суфікс як ім'я файлу реалізації та модуля"
 
 #: m2/lang.opt:179
 #, no-c-format
@@ -4344,10 +4311,9 @@ msgid "optimize non var unbounded parameters by passing it by reference, providi
 msgstr "оптимізувати незмінні незвʼязані параметри, передаючи їх за посиланням, за умови, що вони не змінюються у процедурі, яка їх викликає."
 
 #: m2/lang.opt:263
-#, fuzzy, no-c-format
-#| msgid "orders the initialization/finalializations for scaffold-static or force linking of modules if scaffold-dynamic"
+#, no-c-format
 msgid "orders the initialization/finalizations for scaffold-static or force linking of modules if scaffold-dynamic"
-msgstr "впорядковує ініціалізацію/фіналізацію для статичного риштування або примусового звʼязування модулів, якщо риштування динамічне"
+msgstr "впорядковує ініціалізацію/фіналізації для scaffold-static або примусове зв'язування модулів, якщо scaffold-dynamic"
 
 #: m2/lang.opt:271
 #, no-c-format
@@ -4402,7 +4368,7 @@ msgstr "-fgo-embedcfg=<файл>\tВивести списком вбудован
 #: go/lang.opt:66
 #, no-c-format
 msgid "-fgo-importcfg=<file>\tProvide file that tells where to find imports."
-msgstr ""
+msgstr "-fgo-importcfg=<файл>\tВкажіть файл, який вказує, де знайти імпорти."
 
 #: go/lang.opt:70
 #, no-c-format
@@ -4487,22 +4453,22 @@ msgstr "Максимальна глибина вибухнутих вузлів,
 #: analyzer/analyzer.opt:59
 #, no-c-format
 msgid "The number of bytes at which to ellipsize string literals in analyzer text art diagrams."
-msgstr ""
+msgstr "Кількість байтів для початку скорочення рядкових літералів у текстових діаграмах аналізатора."
 
 #: analyzer/analyzer.opt:63
 #, no-c-format
 msgid "The number of literal bytes to show at the head of a string literal in text art when ellipsizing it."
-msgstr ""
+msgstr "Кількість літеральних байтів для показу на початку рядкового літералу у текстовому мистецтві при його скороченні."
 
 #: analyzer/analyzer.opt:67
 #, no-c-format
 msgid "The number of literal bytes to show at the tail of a string literal in text art when ellipsizing it."
-msgstr ""
+msgstr "Кількість літеральних байтів для показу в кінці рядкового літералу у текстових схема при його скороченні (обрізанні)."
 
 #: analyzer/analyzer.opt:71
 #, no-c-format
 msgid "The ideal width in characters of text art diagrams generated by the analyzer."
-msgstr ""
+msgstr "Ідеальна ширина у символах текстових схем, згенерованих аналізатором."
 
 #: analyzer/analyzer.opt:75
 #, no-c-format
@@ -4585,10 +4551,9 @@ msgid "Warn about code paths in which floating-point arithmetic is used in locat
 msgstr "Попереджувати про шляхи коду, в яких використовується плаваюча точка арифметика в місцях, де потрібні точні обчислення."
 
 #: analyzer/analyzer.opt:139
-#, fuzzy, no-c-format
-#| msgid "Warn about code paths which appear to lead to infinite recursion."
+#, no-c-format
 msgid "Warn about code paths which appear to lead to an infinite loop."
-msgstr "Попереджувати про шляхи коду, які, здається, призводять до безкінечної рекурсії."
+msgstr "Попереджати про шляхи коду, які здаються ведуть до нескінченного циклу."
 
 #: analyzer/analyzer.opt:143
 #, no-c-format
@@ -4616,10 +4581,9 @@ msgid "Warn about code paths in which a write or read to a buffer is out-of-boun
 msgstr "Попереджувати про шляхи коду, в яких запис або читання в буфер виходить за межі."
 
 #: analyzer/analyzer.opt:163
-#, fuzzy, no-c-format
-#| msgid "Warn about code paths in which a write or read to a buffer is out-of-bounds."
+#, no-c-format
 msgid "Warn about code paths in which undefined behavior would occur due to overlapping buffers."
-msgstr "Попереджувати про шляхи коду, в яких запис або читання в буфер виходить за межі."
+msgstr "Попереджати про шляхи коду, в яких виникає невизначена поведінка через буфери які перекриваються."
 
 #: analyzer/analyzer.opt:167
 #, no-c-format
@@ -4697,10 +4661,9 @@ msgid "Warn about code paths in which an unsanitized value is used as a size."
 msgstr "Попереджувати про шляхи коду, в яких невідфільтроване значення використовується як розмір."
 
 #: analyzer/analyzer.opt:227
-#, fuzzy, no-c-format
-#| msgid "Warn about code paths in which a va_list is used after va_end."
+#, no-c-format
 msgid "Warn about code paths in which a call is made to strtok with undefined behavior."
-msgstr "Попереджувати про шляхи коду, в яких va_list використовується після va_end."
+msgstr "Попереджати про шляхи коду, в яких викликається strtok з невизначеною поведінкою."
 
 #: analyzer/analyzer.opt:231
 #, no-c-format
@@ -4748,10 +4711,9 @@ msgid "Warn about code paths in which an uninitialized value is used."
 msgstr "Попереджувати про шляхи коду, в яких використовується неініціалізоване значення."
 
 #: analyzer/analyzer.opt:267
-#, fuzzy, no-c-format
-#| msgid "Warn if the code is too complicated for the analyzer to fully explore."
+#, no-c-format
 msgid "Warn if expressions are too complicated for the analyzer to fully track."
-msgstr "Попереджувати, якщо код занадто складний для повного дослідження аналізатором."
+msgstr "Попереджати, якщо вирази занадто складні для повного відстеження аналізатором."
 
 #: analyzer/analyzer.opt:271
 #, no-c-format
@@ -4766,7 +4728,7 @@ msgstr "Обмежити роботу аналізатора лише вказа
 #: analyzer/analyzer.opt:279
 #, no-c-format
 msgid "Add extra annotations to diagrams."
-msgstr ""
+msgstr "Додати додаткові анотації до схем."
 
 #: analyzer/analyzer.opt:283
 #, no-c-format
@@ -4806,7 +4768,7 @@ msgstr "Увімкнути транзитивність обмежень під
 #: analyzer/analyzer.opt:311
 #, no-c-format
 msgid "Show events within system headers in analyzer execution paths."
-msgstr ""
+msgstr "Показати події всередині системних заголовків у шляхах виконання аналізатора."
 
 #: analyzer/analyzer.opt:315
 #, no-c-format
@@ -4879,10 +4841,9 @@ msgid "Dump various analyzer internals to SRCFILE.*.fg.dot and SRCFILE.*.tg.dot.
 msgstr "Зберегти різноманітні внутрішні дані аналізатора у файли SRCFILE.*.fg.dot та SRCFILE.*.tg.dot."
 
 #: analyzer/analyzer.opt:371
-#, fuzzy, no-c-format
-#| msgid "Dump various analyzer internals to SRCFILE.analyzer.txt."
+#, no-c-format
 msgid "Dump various analyzer internals to SRCFILE.*.infinite-loop.dot."
-msgstr "Вивантажте різні внутрішні частини аналізатора в SRCFILE.analyzer.txt."
+msgstr "Вивантажити різні внутрішні дані аналізатора до SRCFILE.*.infinite-loop.dot."
 
 #: analyzer/analyzer.opt:375
 #, no-c-format
@@ -5280,10 +5241,9 @@ msgid "-image_base <address>\tSpecify <address> as the base address for a dylib
 msgstr "-image_base <адреса>\tВказати <адресу> як базову адресу для dylib або пакету."
 
 #: config/darwin.opt:214
-#, fuzzy, no-c-format
-#| msgid "-init <symbol_name>\tThe symbol <symbol_name> will be used as the first initialiser for a dylib."
+#, no-c-format
 msgid "-init <symbol_name>\tThe symbol <symbol_name> will be used as the first initializer for a dylib."
-msgstr "-init <імʼя_символу>\tСимвол <імʼя_символу> буде використовуватися як перший ініціалізатор для dylib."
+msgstr "-init <symbol_name>\tСимвол <symbol_name> буде використовуватися як перший ініціалізатор для dylib."
 
 #: config/darwin.opt:218
 #, no-c-format
@@ -5321,10 +5281,9 @@ msgid "Do not add a default symbol exports to modules or dynamic libraries."
 msgstr "Не додавати експорт символів за замовчуванням до модулів або динамічних бібліотек."
 
 #: config/darwin.opt:246
-#, fuzzy, no-c-format
-#| msgid "Do not add a default symbol exports to modules or dynamic libraries."
+#, no-c-format
 msgid "Do not add default run paths (for the compiler library directories) to executables, modules or dynamic libraries."
-msgstr "Не додавати експорт символів за замовчуванням до модулів або динамічних бібліотек."
+msgstr "Не додавати шляхи за замовчуванням (для каталогів бібліотек компілятора) до виконуваних файлів, модулів або динамічних бібліотек."
 
 #: config/darwin.opt:250
 #, no-c-format
@@ -5872,7 +5831,7 @@ msgstr "-march=\tГенерувати код для заданої RISC-V ISA (
 #: config/riscv/riscv.opt:91
 #, no-c-format
 msgid "-march=help\tPrint supported -march extensions."
-msgstr ""
+msgstr "-march=help\tНадрукувати підтримувані розширення -march."
 
 #: config/riscv/riscv.opt:103 config/mips/mips.opt:430
 #, no-c-format
@@ -5927,10 +5886,9 @@ msgid "Take advantage of linker relaxations to reduce the number of instructions
 msgstr "Скористайтеся можливостями розслаблення звʼязувача, щоб зменшити кількість інструкцій, необхідних для матеріалізації адрес символів."
 
 #: config/riscv/riscv.opt:155
-#, fuzzy, no-c-format
-#| msgid "Enable the CSR checking for the ISA-dependent CRS and the read-only CSR. The ISA-dependent CSR are only valid when the specific ISA is set.  The read-only CSR can not be written by the CSR instructions."
+#, no-c-format
 msgid "Enable the CSR checking for the ISA-dependent CSR and the read-only CSR. The ISA-dependent CSR are only valid when the specific ISA is set.  The read-only CSR can not be written by the CSR instructions."
-msgstr "Увімкнути перевірку CSR для залежних від ISA CRS та для CSR, доступних тільки для читання. Залежні від ISA CRS є дійсними лише тоді, коли встановлено конкретний ISA. CSR, доступні тільки для читання, не можна записувати за допомогою інструкцій CSR."
+msgstr "Увімкнути перевірку CSR для ISA-залежних CSR та тільки для читання CSR. ISA-залежні CSR дійсні лише при встановленій конкретній ISA. Тільки для читання CSR не можуть бути записані інструкціями CSR."
 
 #: config/riscv/riscv.opt:161 config/aarch64/aarch64.opt:141
 #: config/i386/i386.opt:420
@@ -5989,10 +5947,9 @@ msgid "Set the version of RISC-V ISA spec."
 msgstr "Встановити версію специфікації RISC-V ISA."
 
 #: config/riscv/riscv.opt:511
-#, fuzzy, no-c-format
-#| msgid "Enable conditional move instruction usage."
+#, no-c-format
 msgid "Enable conditional moves unconditionally."
-msgstr "Увімкнути використання умовних команд переміщення."
+msgstr "Увімкнути умовні переміщення без умов."
 
 #: config/riscv/riscv.opt:515
 #, no-c-format
@@ -6000,48 +5957,44 @@ msgid "Always inline subword atomic operations."
 msgstr "Завжди вбудовувати під-словні атомні операції."
 
 #: config/riscv/riscv.opt:519
-#, fuzzy, no-c-format
-#| msgid "Use caller save register across calls if possible."
+#, no-c-format
 msgid "Inline strcmp calls if possible."
-msgstr "Використовувати реєстр збереження викликача під час викликів, якщо це можливо."
+msgstr "Використовувати вбудований strcmp, якщо це можливо."
 
 #: config/riscv/riscv.opt:523
-#, fuzzy, no-c-format
-#| msgid "Use caller save register across calls if possible."
+#, no-c-format
 msgid "Inline strncmp calls if possible."
-msgstr "Використовувати реєстр збереження викликача під час викликів, якщо це можливо."
+msgstr "Використовувати вбудований strncmp, якщо це можливо."
 
 #: config/riscv/riscv.opt:527
-#, fuzzy, no-c-format
-#| msgid "Reduce stack alignment on call sites if possible."
+#, no-c-format
 msgid "Inline strlen calls if possible."
-msgstr "Зменшити вирівнювання стеку на місцях виклику, якщо це можливо."
+msgstr "Використовувати вбудований strlen, якщо це можливо."
 
 #: config/riscv/riscv.opt:531
 #, no-c-format
 msgid "Max number of bytes to compare as part of inlined strcmp/strncmp routines (default: 64)."
-msgstr ""
+msgstr "Максимальна кількість байтів для порівняння як частини вбудованих функцій strcmp/strncmp (за замовчуванням: 64)."
 
 #: config/riscv/riscv.opt:535
 #, no-c-format
 msgid "The RVV possible LMUL (-mrvv-max-lmul=):"
-msgstr ""
+msgstr "Можливий LMUL для RVV (-mrvv-max-lmul=):"
 
 #: config/riscv/riscv.opt:554
 #, no-c-format
 msgid "-mrvv-max-lmul=<string>\tSet the RVV LMUL of auto-vectorization."
-msgstr ""
+msgstr "-mrvv-max-lmul=<значення>\tВстановити максимальний множник довжини вектора RVV (LMUL) для автовекторизації."
 
 #: config/riscv/riscv.opt:561
-#, fuzzy, no-c-format
-#| msgid "Valid arguments to -mstringop-strategy=:"
+#, no-c-format
 msgid "Valid arguments to -param=vsetvl-strategy=:"
-msgstr "Дійсні аргументи для -mstringop-strategy=."
+msgstr "Дійсні аргументи для -param=vsetvl-strategy=:"
 
 #: config/riscv/riscv.opt:574
 #, no-c-format
 msgid "-param=vsetvl-strategy=<string>\tSet the optimization level of VSETVL insert pass."
-msgstr ""
+msgstr "-param=vsetvl-strategy=<рядок>\tВстановити рівень оптимізації етапу вставки VSETVL."
 
 #: config/riscv/riscv.opt:578 config/i386/i386.opt:496
 #, no-c-format
@@ -6049,22 +6002,19 @@ msgid "Valid arguments to -mstringop-strategy=:"
 msgstr "Дійсні аргументи для -mstringop-strategy=."
 
 #: config/riscv/riscv.opt:594
-#, fuzzy, no-c-format
-#| msgid "Specify memset expansion strategy when expected size is known."
+#, no-c-format
 msgid "Specify stringop expansion strategy."
-msgstr "Вказати стратегію розширення memset, коли відомий очікуваний розмір."
+msgstr "Вказати стратегію розгортання операцій з рядками (stringop)."
 
 #: config/riscv/riscv.opt:598
-#, fuzzy, no-c-format
-#| msgid "The possible SVE vector lengths:"
+#, no-c-format
 msgid "The possible RVV vector register lengths:"
-msgstr "Можливі довжини векторів SVE:"
+msgstr "Можливі довжини регістрів векторів RVV:"
 
 #: config/riscv/riscv.opt:608
-#, fuzzy, no-c-format
-#| msgid "-msve-vector-bits=<number>\tSet the number of bits in an SVE vector register."
+#, no-c-format
 msgid "-mrvv-vector-bits=<string>\tSet the kind of bits for an RVV vector register."
-msgstr "-msve-vector-bits=<число>\tВстановити кількість бітів у регістрі вектора SVE."
+msgstr "-mrvv-vector-bits=<рядок>\tВстановити тип бітів для регістра вектора RVV."
 
 #: config/riscv/riscv.opt:612 config/aarch64/aarch64.opt:49
 #: config/loongarch/loongarch.opt:283
@@ -6224,16 +6174,14 @@ msgid "Workaround for ARM Cortex-A53 Erratum number 843419."
 msgstr "Обхід для помилки ARM Cortex-A53 з номером 843419."
 
 #: config/aarch64/aarch64.opt:102
-#, fuzzy, no-c-format
-#| msgid "Specify how to access the thread pointer."
+#, no-c-format
 msgid "The register used to access the thread pointer:"
-msgstr "Вказати, як отримати доступ до вказівника потоку."
+msgstr "Регістр, який використовується для доступу до вказівника потоку (thread pointer):"
 
 #: config/aarch64/aarch64.opt:133
-#, fuzzy, no-c-format
-#| msgid "Specify thread pointer register number."
+#, no-c-format
 msgid "Specify the thread pointer register."
-msgstr "Вказати номер реєстра вказівника потоку."
+msgstr "Вказати регістр вказівника потоку (thread pointer)."
 
 #: config/aarch64/aarch64.opt:137
 #, no-c-format
@@ -6313,7 +6261,7 @@ msgstr "Увімкнути наближення ділення. Увімкнен
 #: config/aarch64/aarch64.opt:254
 #, no-c-format
 msgid "Specify when to enable an early register allocation pass.  The possibilities are: all functions, functions that have access to strided multi-register instructions, and no functions."
-msgstr ""
+msgstr "Вкажіть, коли увімкнути ранній етап розподілу регістрів. Можливості: всі функції, функції, які мають доступ до інструкцій з кроковим доступом до пам'яті для багатореєстрових операцій, і жодні функції."
 
 #: config/aarch64/aarch64.opt:260
 #, no-c-format
@@ -6338,12 +6286,12 @@ msgstr "Генерувати код для відстеження, коли пр
 #: config/aarch64/aarch64.opt:294
 #, no-c-format
 msgid "Enable the copy of the AArch64 load/store pair fusion pass that runs before register allocation."
-msgstr ""
+msgstr "Увімкнути оптимізацію пари операцій завантаження/зберігання AArch64, яка виконується перед розподілом регістрів."
 
 #: config/aarch64/aarch64.opt:299
 #, no-c-format
 msgid "Enable the copy of the AArch64 load/store pair fusion pass that runs after register allocation."
-msgstr ""
+msgstr "Включити оптимізацію пари операцій завантаження/збереження для архітектури AArch64, яка виконується після розподілу регістрів."
 
 #: config/aarch64/aarch64.opt:318
 #, no-c-format
@@ -6363,7 +6311,7 @@ msgstr "Генерувати локальні виклики до атомних
 #: config/aarch64/aarch64.opt:337
 #, no-c-format
 msgid "When vectorizing, consider using multiple different approaches and use the cost model to choose the cheapest one."
-msgstr ""
+msgstr "При векторизації розглядайте можливість використання декількох різних підходів і використовуйте модель коштів для вибору найдешевшого."
 
 #: config/aarch64/aarch64.opt:342
 #, no-c-format
@@ -6398,22 +6346,22 @@ msgstr "Обмежити, наскільки далеко автовектори
 #: config/aarch64/aarch64.opt:372
 #, no-c-format
 msgid "--param=aarch64-ldp-policy=[default|always|never|aligned] Fine-grained policy for load pairs."
-msgstr ""
+msgstr "--param=aarch64-ldp-policy=[default|always|never|aligned] Деталізована політика для пар інструкцій завантаження в архітектурі ARM64."
 
 #: config/aarch64/aarch64.opt:376
 #, no-c-format
 msgid "--param=aarch64-stp-policy=[default|always|never|aligned] Fine-grained policy for store pairs."
-msgstr ""
+msgstr "--param=aarch64-stp-policy=[default|always|never|aligned] Деталізована політика для пар інструкцій збереження в архітектурі ARM64."
 
 #: config/aarch64/aarch64.opt:395
 #, no-c-format
 msgid "Limit on number of alias checks performed when attempting to form an ldp/stp."
-msgstr ""
+msgstr "Обмеження на кількість перевірок псевдонімів, які виконуються при спробі утворити ldp/stp."
 
 #: config/aarch64/aarch64.opt:399
 #, no-c-format
 msgid "Param to control which writeback opportunities we try to handle in the load/store pair fusion pass.  A value of zero disables writeback handling.  One means we try to form pairs involving one or more existing individual writeback accesses where possible.  A value of two means we also try to opportunistically form writeback opportunities by folding in trailing destructive updates of the base register used by a pair."
-msgstr ""
+msgstr "Параметр для керування тими можливостями запису, які ми намагаємося обробити на етапі злиття пар завантаження/збереження. Значення нуль вимкне обробку запису. Один означає, що ми намагаємося формувати пари, які включають один або кілька існуючих окремих доступів до запису, де це можливо. Значення два також означає, що ми намагаємося випадково формувати можливості запису шляхом згортання в кінці руйнівних оновлень регістра бази, який використовується парою."
 
 #: config/linux.opt:24
 #, no-c-format
@@ -6707,10 +6655,9 @@ msgid "Assume labels and symbols can be addressed using 16 bit absolute addresse
 msgstr "Припускається, що мітки та символи можуть бути адресовані за допомогою абсолютних адрес 16 біт."
 
 #: config/epiphany/epiphany.opt:108
-#, fuzzy, no-c-format
-#| msgid "A floatig point to integer truncation may be replaced with rounding to save mode switching."
+#, no-c-format
 msgid "A floating point to integer truncation may be replaced with rounding to save mode switching."
-msgstr "Обрізання з плаваючої точки до цілого числа може бути замінено округленням для збереження перемикання режимів."
+msgstr "Обрізання з плаваючої точки до цілого числа може бути замінено округленням для економії перемикання режимів."
 
 #: config/epiphany/epiphany.opt:112
 #, no-c-format
@@ -7017,7 +6964,7 @@ msgstr "Помістити переміщені дані тільки для ч
 #: config/i386/mingw.opt:23
 #, no-c-format
 msgid "Preprocess, compile or link with specified C RunTime DLL library."
-msgstr ""
+msgstr "Проходити попередню обробку, компілювати або з'єднувати з вказаною бібліотекою DLL C Runtime."
 
 #: config/i386/mingw.opt:33
 #, no-c-format
@@ -7112,10 +7059,9 @@ msgid "Branches are this expensive (arbitrary units)."
 msgstr "Гілки коштують так дорого (довільні одиниці)."
 
 #: config/i386/i386.opt:300
-#, fuzzy, no-c-format
-#| msgid "-mlarge-data-threshold=<number>\tData greater than given threshold will go into .ldata section in x86-64 medium model."
+#, no-c-format
 msgid "-mlarge-data-threshold=<number>\tData greater than given threshold will go into a large data section in x86-64 medium and large code models."
-msgstr "-mlarge-data-threshold=<число>\tДані, більші за вказаний поріг, будуть розміщені в розділі .ldata в середньому моделі x86-64."
+msgstr "-mlarge-data-threshold=<число>\tДані, розмір яких перевищує заданий поріг, будуть розміщені в секції великих даних у моделях коду x86-64 medium і large."
 
 #: config/i386/i386.opt:304
 #, no-c-format
@@ -7370,7 +7316,7 @@ msgstr "Відома бажана довжина вектора регістра
 #: config/i386/i386.opt:652
 #, no-c-format
 msgid "Enable floating-point status flags setting SSE vector operations on partial vectors."
-msgstr ""
+msgstr "Увімкнути встановлення прапорів статусу плаваючої точки для векторних операцій SSE на часткових векторах."
 
 #: config/i386/i386.opt:656
 #, no-c-format
@@ -7385,7 +7331,7 @@ msgstr "Максимальна кількість бітів, яку можна
 #: config/i386/i386.opt:664
 #, no-c-format
 msgid "Optimize noreturn functions by not saving callee-saved registers used in the function."
-msgstr ""
+msgstr "Оптимізувати функції без повернення шляхом не зберігання використовуваних у них регістрів, які зберігаються викликаними функціями."
 
 #: config/i386/i386.opt:670
 #, no-c-format
@@ -8053,74 +7999,64 @@ msgid "Support AMX-COMPLEX built-in functions and code generation."
 msgstr "Підтримка вбудованих функцій та генерація коду для AMX-COMPLEX."
 
 #: config/i386/i386.opt:1307
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVXVNNIINT8 built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVXVNNIINT16 built-in functions and code generation."
-msgstr "Підтримка вбудованих функцій та генерація коду для MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 та AVXVNNIINT8."
+msgstr "Підтримка вбудованих функцій та генерація коду для MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 і AVXVNNIINT16."
 
 #: config/i386/i386.opt:1312
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and SM3 built-in functions and code generation."
-msgstr "Підтримка вбудованих функцій і генерація коду для MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX і FMA."
+msgstr "Підтримка вбудованих функцій та генерація коду для MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX і SM3."
 
 #: config/i386/i386.opt:1317
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and SHA512 built-in functions and code generation."
-msgstr "Підтримка вбудованих функцій та генерація коду для MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX та AVX2."
+msgstr "Підтримка вбудованих функцій та генерація коду для MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX і SHA512."
 
 #: config/i386/i386.opt:1322
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and SM4 built-in functions and code generation."
-msgstr "Підтримка вбудованих функцій і генерація коду для MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX і FMA."
+msgstr "Підтримка вбудованих функцій та генерація коду для MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX і SM4."
 
 #: config/i386/i386.opt:1327
-#, fuzzy, no-c-format
-#| msgid "Enable vectorization on trees."
+#, no-c-format
 msgid "Enable vectorization for gather instruction."
-msgstr "Увімкнути векторизацію на деревах."
+msgstr "Увімкнути векторизацію для інструкції збору (gather)."
 
 #: config/i386/i386.opt:1331
-#, fuzzy, no-c-format
-#| msgid "Enable vectorization on trees."
+#, no-c-format
 msgid "Enable vectorization for scatter instruction."
-msgstr "Увімкнути векторизацію на деревах."
+msgstr "Увімкнути векторизацію для інструкції розсіювання (scatter)."
 
 #: config/i386/i386.opt:1335
 #, no-c-format
 msgid "Support code generation for APX features, including EGPR, PUSH2POP2, NDD and PPX."
-msgstr ""
+msgstr "Підтримка генерації коду для функцій APX, включаючи EGPR, PUSH2POP2, NDD та PPX."
 
 #: config/i386/i386.opt:1364
 #, no-c-format
 msgid "Enable GPR32 in inline asm when APX_F enabled."
-msgstr ""
+msgstr "Увімкнути GPR32 у встроєному асемблерному коді, коли включено APX_F."
 
 #: config/i386/i386.opt:1368
-#, fuzzy, no-c-format
-#| msgid "Support BMI2 built-in functions and code generation."
+#, no-c-format
 msgid "Support 512 bit vector built-in functions and code generation."
-msgstr "Підтримка вбудованих функцій BMI2 та генерація коду."
+msgstr "Підтримка вбудованих функцій та генерація коду для векторів довжиною 512 біт."
 
 #: config/i386/i386.opt:1372
-#, fuzzy, no-c-format
-#| msgid "Support AES built-in functions and code generation."
+#, no-c-format
 msgid "Support USER_MSR built-in functions and code generation."
-msgstr "Підтримка вбудованих функцій AES та генерація коду."
+msgstr "Підтримка вбудованих функцій та генерація коду для USER_MSR."
 
 #: config/i386/i386.opt:1376 config/i386/i386.opt:1386
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVX10.1 built-in functions and code generation."
-msgstr "Підтримка вбудованих функцій та генерація коду для MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 та AVX512F."
+msgstr "Підтримка вбудованих функцій MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 та AVX10.1 і генерація коду."
 
 #: config/i386/i386.opt:1381
-#, fuzzy, no-c-format
-#| msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 and AVX512F built-in functions and code generation."
+#, no-c-format
 msgid "Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, and AVX10.1-512 built-in functions and code generation."
-msgstr "Підтримка вбудованих функцій та генерація коду для MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 та AVX512F."
+msgstr "Підтримка вбудованих функцій MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2 та AVX10.1-512 і генерація коду."
 
 #: config/pa/pa64-hpux.opt:23
 #, no-c-format
@@ -8489,44 +8425,39 @@ msgid "Assume the VxWorks vThreads environment."
 msgstr "Припустимо середовище VxWorks vThreads."
 
 #: config/avr/avr.opt:23
-#, fuzzy, no-c-format
-#| msgid "Use subroutines for function prologues and epilogues."
+#, no-c-format
 msgid "Optimization. Use subroutines for function prologues and epilogues."
-msgstr "Використовуйте підпрограми для прологів та епілогів функцій."
+msgstr "Оптимізація. Використовувати підпрограми для прологів і епілогів функцій."
 
 #: config/avr/avr.opt:27
-#, fuzzy, no-c-format
-#| msgid "-mmcu=MCU\tSelect the target MCU."
+#, no-c-format
 msgid "-mmcu=<MCU>\tSelect the target MCU."
-msgstr "-mmcu=МКП\tВиберати цільовий МКП."
+msgstr "-mmcu=<MCU>\tВибрати цільовий мікроконтролер (MCU)."
 
 #: config/avr/avr.opt:31
-#, fuzzy, no-c-format
-#| msgid "Allow usage of __gcc_isr pseudo instructions in ISR prologues and epilogues."
+#, no-c-format
 msgid "Optimization. Allow usage of __gcc_isr pseudo instructions in ISR prologues and epilogues."
-msgstr "Дозволити використання псевдоінструкцій __gcc_isr в прологах та епілогах обробників переривань."
+msgstr "Оптимізація. Дозволяє використання псевдоінструкцій __gcc_isr у прологах і епілогах переривань (ISR)."
 
 #: config/avr/avr.opt:35
-#, fuzzy, no-c-format
-#| msgid "Set the number of 64 KiB flash segments."
+#, no-c-format
 msgid "This option is used internally. Set the number of 64 KiB flash segments."
-msgstr "Встановити кількість сегментів флеш-памʼяті розміром 64 Кб."
+msgstr "Ця опція використовується внутрішньо. Встановлює кількість сегментів флеш-пам'яті по 64 КіБ."
 
 #: config/avr/avr.opt:39
 #, no-c-format
 msgid "This option is used internally. Indicate presence of a processor erratum.  Do not skip 32-bit instructions."
-msgstr ""
+msgstr "Ця опція використовується внутрішньо. Вказує на присутність помилки процесора знайденої пізніше. Не пропускати 32 бітні інструкції."
 
 #: config/avr/avr.opt:43
-#, fuzzy, no-c-format
-#| msgid "Enable Read-Modify-Write (RMW) instructions support/use."
+#, no-c-format
 msgid "This option is used internally. Enable Read-Modify-Write (RMW) instructions support/use."
-msgstr "Увімкнути підтримку/використання інструкцій Read-Modify-Write (RMW)."
+msgstr "Ця опція використовується внутрішньо. Увімкнути підтримку/використання інструкцій читання-модифікації-запису (RMW)."
 
 #: config/avr/avr.opt:53
 #, no-c-format
 msgid "This option is used internally for multilib generation and selection.  Assume RJMP / RCALL can target all program memory."
-msgstr ""
+msgstr "Ця опція використовується внутрішньо для генерації та вибору мультибібліотек. Припустити, що RJMP / RCALL може адресувати всю програмну пам'ять."
 
 #: config/avr/avr.opt:57
 #, no-c-format
@@ -8539,16 +8470,14 @@ msgid "Change the stack pointer without disabling interrupts."
 msgstr "Змінити вказівник стеку без вимкнення переривань."
 
 #: config/avr/avr.opt:65
-#, fuzzy, no-c-format
-#| msgid "Set the branch costs for conditional branch instructions.  Reasonable values are small, non-negative integers.  The default branch cost is 0."
+#, no-c-format
 msgid "-mbranch-cost=<cost>\tOptimization. Set the branch costs for conditional branch instructions.  Reasonable values are small, non-negative integers.  The default branch cost is 0."
-msgstr "Встановити вартість гілок для умовних гілкових інструкцій. Розумні значення - це невеликі, не відʼємні цілі числа. За замовчуванням вартість гілки дорівнює 0."
+msgstr "-mbranch-cost=<вартість>\tОптимізація. Встановлює вартість для інструкцій умовних гілок. Розумні значення - це невеликі, невід'ємні цілі числа. Вартість гілки за замовчуванням дорівнює 0."
 
 #: config/avr/avr.opt:69
-#, fuzzy, no-c-format
-#| msgid "Treat main as if it had attribute OS_task."
+#, no-c-format
 msgid "Optimization. Treat main as if it had attribute OS_task."
-msgstr "Трактувати main так, ніби вона мала атрибут OS_task."
+msgstr "Оптимізація. Обробляти головну функцію так, ніби вона має атрибут OS_task."
 
 #: config/avr/avr.opt:79
 #, no-c-format
@@ -8556,10 +8485,9 @@ msgid "Change only the low 8 bits of the stack pointer."
 msgstr "Змінити лише нижні 8 біт вказівника стеку."
 
 #: config/avr/avr.opt:83
-#, fuzzy, no-c-format
-#| msgid "Relax branches."
+#, no-c-format
 msgid "Optimization. Relax branches."
-msgstr "Розслабити гілки."
+msgstr "Оптимізація. Розслаблення гілок."
 
 #: config/avr/avr.opt:87
 #, no-c-format
@@ -8567,41 +8495,39 @@ msgid "Make the linker relaxation machine assume that a program counter wrap-aro
 msgstr "Зробити машину розслаблення лінкера припускає, що відбувається обгортання лічильника програми."
 
 #: config/avr/avr.opt:91
-#, fuzzy, no-c-format
-#| msgid "Accumulate outgoing function arguments and acquire/release the needed stack space for outgoing function arguments in function prologue/epilogue.  Without this option, outgoing arguments are pushed before calling a function and popped afterwards.  This option can lead to reduced code size for functions that call many functions that get their arguments on the stack like, for example printf."
+#, no-c-format
 msgid "Optimization. Accumulate outgoing function arguments and acquire/release the needed stack space for outgoing function arguments in function prologue/epilogue.  Without this option, outgoing arguments are pushed before calling a function and popped afterwards.  This option can lead to reduced code size for functions that call many functions that get their arguments on the stack like, for example printf."
-msgstr "Накопичувати вихідні аргументи функції та здобудьте / звільніть необхідний простір стеку для вихідних аргументів функції в пролог / епілог функції. Без цієї опції вихідні аргументи викликаються перед викликом функції та видаляються після цього. Ця опція може призвести до зменшення розміру коду для функцій, які викликають багато функцій, які отримують свої аргументи зі стеку, наприклад, printf."
+msgstr "Оптимізація. Накопичувати вихідні аргументи функції та отримувати/звільняти необхідний стековий простір для вихідних аргументів функції в пролозі/епілозі функції. Без цієї опції вихідні аргументи поміщаються на стек перед викликом функції та знімаються після цього. Ця опція може призвести до зменшення розміру коду для функцій, які викликають багато функцій, які отримують свої аргументи зі стеку, наприклад printf."
 
 #: config/avr/avr.opt:95
-#, fuzzy, no-c-format
-#| msgid "When accessing RAM, use X as imposed by the hardware, i.e. just use pre-decrement, post-increment and indirect addressing with the X register.  Without this option, the compiler may assume that there is an addressing mode X+const similar to Y+const and Z+const and emit instructions to emulate such an addressing mode for X."
+#, no-c-format
 msgid "Optimization. When accessing RAM, use X as imposed by the hardware, i.e. just use pre-decrement, post-increment and indirect addressing with the X register.  Without this option, the compiler may assume that there is an addressing mode X+const similar to Y+const and Z+const and emit instructions to emulate such an addressing mode for X."
-msgstr "При доступі до ОЗП використовувати X, як вимагає апаратне забезпечення, тобто використовувати переддекремент, післяінкремент та непряме звертання з використанням регістра X. Без цієї опції компілятор може припустити, що існує режим адресації X+const, подібний до Y+const та Z+const, і генерувати інструкції для емуляції такого режиму адресації для X."
+msgstr "Оптимізація. При доступі до RAM використовувати X, як це вимагає апаратне забезпечення, тобто використовувати тільки перед-декремент, після-інкремент та непряме адресування з регістром X. Без цієї опції компілятор може припустити, що існує режим адресації X+const, схожий на Y+const і Z+const, і видавати інструкції для емуляції такого режиму адресації для X."
 
 #: config/avr/avr.opt:99
 #, no-c-format
 msgid "This option is used internally. The device has the bitfield NVMCTRL_CTRLB.FLMAP."
-msgstr ""
+msgstr "Ця опція використовується внутрішньо. Пристрій має бітове поле NVMCTRL_CTRLB.FLMAP."
 
 #: config/avr/avr.opt:103
 #, no-c-format
 msgid "The device has the .rodata section located in the RAM area."
-msgstr ""
+msgstr "Пристрій має секцію тільки для читання .rodata, розташовану у RAM-області."
 
 #: config/avr/avr.opt:108
 #, no-c-format
 msgid "This option is used internally for multilib generation and selection. The device has no SPH special function register."
-msgstr ""
+msgstr "Ця опція використовується внутрішньо для генерації та вибору мультибібліотек. Пристрій не має спеціального функціонального регістра SPH."
 
 #: config/avr/avr.opt:112
 #, no-c-format
 msgid "Optimization. Split register additions from load/store instructions. Most useful on Reduced Tiny."
-msgstr ""
+msgstr "Оптимізація. Розділити регістрові додавання від інструкцій завантаження/збереження. Найкорисніше на Reduced Tiny."
 
 #: config/avr/avr.opt:116
 #, no-c-format
 msgid "-mfuse-add=<0,2>\tOptimization. Split register additions from load/store instructions. Most useful on Reduced Tiny."
-msgstr ""
+msgstr "-mfuse-add=<0,2>\tОптимізація. Відділити регістрові додавання від інструкцій завантаження/збереження. Найкорисніше на Reduced Tiny."
 
 #: config/avr/avr.opt:120
 #, no-c-format
@@ -8619,10 +8545,9 @@ msgid "Allow to use truncation instead of rounding towards zero for fractional f
 msgstr "Дозволити використовувати обрізку замість округлення до нуля для дробових фіксованих типів."
 
 #: config/avr/avr.opt:132
-#, fuzzy, no-c-format
-#| msgid "Assume that all data in static storage can be accessed by LDS / STS.  This option is only useful for reduced Tiny devices."
+#, no-c-format
 msgid "Assume that all data in static storage can be accessed by LDS / STS instructions.  This option is only useful for reduced Tiny devices like ATtiny40."
-msgstr "Припускати, що всі дані у статичному сховищі можна отримати за допомогою LDS / STS. Ця опція корисна лише для зменшених пристроїв Tiny."
+msgstr "Припустити, що всі дані у статичному зберіганні можуть бути доступні інструкціями LDS / STS. Ця опція корисна тільки для зменшених пристроїв Tiny, таких як ATtiny40."
 
 #: config/avr/avr.opt:136
 #, no-c-format
@@ -8937,7 +8862,7 @@ msgstr "Зберігайте всі регістри аргументів у с
 #: config/s390/s390.opt:335
 #, no-c-format
 msgid "Assume external symbols, whose natural alignment would be 1, to be potentially unaligned.  By default all symbols without explicit alignment are assumed to reside on a 2 byte boundary as mandated by the IBM Z ABI."
-msgstr ""
+msgstr "Припустити, що зовнішні символи, які мають природнє вирівнювання 1, можуть бути невирівняними. За замовчуванням всі символи без явного вирівнювання вважаються розташованими на межі 2 байтів, як вимагається IBM Z ABI."
 
 #: config/rl78/rl78.opt:27 config/rx/elf.opt:26 config/csky/csky.opt:198
 #, no-c-format
@@ -10243,32 +10168,29 @@ msgid "Allow hardware floating-point instructions to cover both 32-bit and 64-bi
 msgstr "Дозволити апаратним інструкціям з плаваючою комою охоплювати як 32-бітні, так і 64-бітні операції."
 
 #: config/loongarch/loongarch.opt:81
-#, fuzzy, no-c-format
-#| msgid "FPU types of LoongArch:"
+#, no-c-format
 msgid "SIMD extension levels of LoongArch:"
-msgstr "Типи FPU LoongArch:"
+msgstr "Рівні розширень SIMD для LoongArch:"
 
 #: config/loongarch/loongarch.opt:94
-#, fuzzy, no-c-format
-#| msgid "-march=ISA\tGenerate code for the given ISA."
+#, no-c-format
 msgid "-msimd=SIMD\tGenerate code for the given SIMD extension."
-msgstr "-march=ISA\tГенерувати код для заданого ISA."
+msgstr "-msimd=SIMD\tГенерувати код для заданого розширення SIMD."
 
 #: config/loongarch/loongarch.opt:98
 #, no-c-format
 msgid "Enable LoongArch SIMD Extension (LSX, 128-bit)."
-msgstr ""
+msgstr "Увімкнути розширення LoongArch SIMD (LSX, 128 біт)."
 
 #: config/loongarch/loongarch.opt:102
 #, no-c-format
 msgid "Enable LoongArch Advanced SIMD Extension (LASX, 256-bit)."
-msgstr ""
+msgstr "Увімкнути розширення LoongArch Advanced SIMD (LASX, 256 біт)."
 
 #: config/loongarch/loongarch.opt:107
-#, fuzzy, no-c-format
-#| msgid "LoongArch CPU types:"
+#, no-c-format
 msgid "LoongArch ARCH presets:"
-msgstr "Типи процесорів LoongArch:"
+msgstr "Попередньо встановлені налаштування LoongArch ARCH:"
 
 #: config/loongarch/loongarch.opt:132
 #, no-c-format
@@ -10276,10 +10198,9 @@ msgid "-march=PROCESSOR\tGenerate code for the given PROCESSOR ISA."
 msgstr "-march=PROCESSOR\tГенерувати код для вказаного ISA процесора."
 
 #: config/loongarch/loongarch.opt:136
-#, fuzzy, no-c-format
-#| msgid "LoongArch CPU types:"
+#, no-c-format
 msgid "LoongArch TUNE presets:"
-msgstr "Типи процесорів LoongArch:"
+msgstr "Попередньо встановлені налаштування LoongArch TUNE:"
 
 #: config/loongarch/loongarch.opt:155
 #, no-c-format
@@ -10327,10 +10248,9 @@ msgid "-mmax-inline-memcpy-size=SIZE\tSet the max size of memcpy to inline, defa
 msgstr "-mmax-inline-memcpy-size=SIZE\tВстановити максимальний розмір memcpy для вбудовування, за замовчуванням 1024."
 
 #: config/loongarch/loongarch.opt:214 config/mips/mips.opt:150
-#, fuzzy, no-c-format
-#| msgid "The code model option names for -mcmodel:"
+#, no-c-format
 msgid "The code model option names for -mexplicit-relocs:"
-msgstr "Назви опцій моделі коду для -mcmodel:"
+msgstr "Назви опцій моделі коду для -mexplicit-relocs:"
 
 #: config/loongarch/loongarch.opt:227 config/mips/mips.opt:163
 #, no-c-format
@@ -10338,16 +10258,14 @@ msgid "Use %reloc() assembly operators."
 msgstr "Використовувати оператори збірки %reloc()."
 
 #: config/loongarch/loongarch.opt:231 config/mips/mips.opt:167
-#, fuzzy, no-c-format
-#| msgid "Use %reloc() assembly operators."
+#, no-c-format
 msgid "Use %reloc() assembly operators (for backward compatibility)."
-msgstr "Використовувати оператори збірки %reloc()."
+msgstr "Використовувати оператори асемблера %reloc() (для зворотньої сумісності)."
 
 #: config/loongarch/loongarch.opt:239
-#, fuzzy, no-c-format
-#| msgid "Generate software reciprocal divide and square root for better throughput."
+#, no-c-format
 msgid "Generate approximate reciprocal divide and square root for better throughput."
-msgstr "Генерувати програмне ділення зворотним значенням та квадратний корінь для кращої продуктивності."
+msgstr "Генерувати приблизне ділення зворотним значенням та квадратний корінь для кращої продуктивності."
 
 #: config/loongarch/loongarch.opt:270
 #, no-c-format
@@ -10355,44 +10273,39 @@ msgid "Avoid using the GOT to access external symbols."
 msgstr "Уникати використання GOT для доступу до зовнішніх символів."
 
 #: config/loongarch/loongarch.opt:279
-#, fuzzy, no-c-format
-#| msgid "Enable relaxing in the assembler."
+#, no-c-format
 msgid "Pass -mrelax or -mno-relax option to the assembler."
-msgstr "Увімкнути розслаблення в асемблері."
+msgstr "Передати опцію -mrelax або -mno-relax асемблеру."
 
 #: config/loongarch/loongarch.opt:297
-#, fuzzy, no-c-format
-#| msgid "Used to limit unroll factor which indicates how much the autovectorizer may unroll a loop.  The default value is 4."
+#, no-c-format
 msgid "Used to limit unroll factor which indicates how much the autovectorizer may unroll a loop.  The default value is 6."
-msgstr "Використовується для обмеження фактора розгортання, який вказує, наскільки автоматичний векторизатор може розгорнути цикл. Значення за замовчуванням - 4."
+msgstr "Використовується для обмеження фактора розгортання, який вказує на те, на скільки автовекторизатор може розгорнути цикл. Значення за замовчуванням дорівнює 6."
 
 #: config/loongarch/loongarch.opt:315
-#, fuzzy, no-c-format
-#| msgid "Support flag-preserving add-carry instructions."
+#, no-c-format
 msgid "Support frecipe.{s/d} and frsqrte.{s/d} instructions."
-msgstr "Підтримка інструкцій збереження прапорців при додаванні з переносом."
+msgstr "Підтримка інструкцій frecipe.{s/d} та frsqrte.{s/d}."
 
 #: config/loongarch/loongarch.opt:319
 #, no-c-format
 msgid "Support div.w[u] and mod.w[u] instructions with inputs not sign-extended."
-msgstr ""
+msgstr "Підтримка інструкцій div.w[u] та mod.w[u] з входами, які не розширені знаком."
 
 #: config/loongarch/loongarch.opt:323
-#, fuzzy, no-c-format
-#| msgid "Support XSAVEC instructions."
+#, no-c-format
 msgid "Support am{swap/add}[_db].{b/h} instructions."
-msgstr "Підтримка інструкцій XSAVEC."
+msgstr "Підтримка інструкцій am{swap/add}[_db].{b/h}."
 
 #: config/loongarch/loongarch.opt:327
-#, fuzzy, no-c-format
-#| msgid "Support XSAVEC instructions."
+#, no-c-format
 msgid "Support amcas[_db].{b/h/w/d} instructions."
-msgstr "Підтримка інструкцій XSAVEC."
+msgstr "Підтримка інструкцій amcas[_db].{b/h/w/d}."
 
 #: config/loongarch/loongarch.opt:331
 #, no-c-format
 msgid "Do not need load-load barriers (dbar 0x700)."
-msgstr ""
+msgstr "Не потрібні бар'єри завантаження-завантаження (dbar 0x700)."
 
 #: config/or1k/elf.opt:28
 #, no-c-format
@@ -12570,16 +12483,14 @@ msgid "Warn about invalid OpenACC dimensions."
 msgstr "Попереджати про недійсні розміри OpenACC."
 
 #: config/gcn/gcn.opt:101
-#, fuzzy, no-c-format
-#| msgid "SRAM-ECC modes:"
+#, no-c-format
 msgid "SRAM-ECC and XNACK modes:"
-msgstr "Режими SRAM-ECC:"
+msgstr "Режими SRAM-ECC та XNACK:"
 
 #: config/gcn/gcn.opt:117
-#, fuzzy, no-c-format
-#| msgid "Compile for devices requiring XNACK enabled. Default off."
+#, no-c-format
 msgid "Compile for devices requiring XNACK enabled. Default \"any\" if USM is supported."
-msgstr "Компілювати для пристроїв, які вимагають увімкнення XNACK. За замовчуванням вимкнено."
+msgstr "Скомпілювати для пристроїв, які вимагають включеного XNACK. За замовчуванням \"any\", якщо підтримується USM."
 
 #: config/gcn/gcn.opt:121
 #, no-c-format
@@ -12589,7 +12500,7 @@ msgstr "Компілювати для пристроїв з увімкненою
 #: config/gcn/gcn.opt:125
 #, no-c-format
 msgid "--param=gcn-preferred-vectorization-factor=[default,32,64]\tPreferred vectorization factor."
-msgstr ""
+msgstr "--param=gcn-preferred-vectorization-factor=[default,32,64]\tБажаний фактор векторизації."
 
 #: config/fr30/fr30.opt:23
 #, no-c-format
@@ -12637,50 +12548,44 @@ msgid "Enable 32-bit jump instructions."
 msgstr "Увімкнути 32-бітні інструкції переходу."
 
 #: config/bpf/bpf.opt:64
-#, fuzzy, no-c-format
-#| msgid "Enable asan store operations protection."
+#, no-c-format
 msgid "Enable general atomic operations introduced in v3 ISA."
-msgstr "Увімкнути захист операцій збереження asan."
+msgstr "Увімкнути загальні атомарні операції, введені у v3 ISA."
 
 #: config/bpf/bpf.opt:68
-#, fuzzy, no-c-format
-#| msgid "Enable 32-bit jump instructions."
+#, no-c-format
 msgid "Enable byte swap instructions."
-msgstr "Увімкнути 32-бітні інструкції переходу."
+msgstr "Увімкнути інструкції обміну байтів."
 
 #: config/bpf/bpf.opt:72
-#, fuzzy, no-c-format
-#| msgid "Enable divide and modulus instructions."
+#, no-c-format
 msgid "Enable signed division and modulus instructions."
-msgstr "Увімкнути інструкції ділення та залишку."
+msgstr "Увімкнути інструкції ділення та взяття залишку зі знаком."
 
 #: config/bpf/bpf.opt:76
-#, fuzzy, no-c-format
-#| msgid "Enable divide and modulus instructions."
+#, no-c-format
 msgid "Enable signed move and memory load instructions."
-msgstr "Увімкнути інструкції ділення та залишку."
+msgstr "Увімкнути інструкції переміщення та завантаження пам'яті зі знаком."
 
 #: config/bpf/bpf.opt:80
 #, no-c-format
 msgid "Select the eBPF ISA version to target in code generation."
-msgstr ""
+msgstr "Вибрати версію eBPF ISA для генерації коду."
 
 #: config/bpf/bpf.opt:84
-#, fuzzy, no-c-format
-#| msgid "Known PTX ISA versions (for use with the -mptx= option):"
+#, no-c-format
 msgid "Valid ISA versions (for use with the -mcpu= option)"
-msgstr "Відомі версії PTX ISA (для використання з опцією -mptx=):"
+msgstr "Дійсні версії ISA (для використання з опцією -mcpu=)"
 
 #: config/bpf/bpf.opt:104
-#, fuzzy, no-c-format
-#| msgid "Known assembler dialects (for use with the -masm= option):"
+#, no-c-format
 msgid "Known assembler dialects (for use with the -masm= option)"
-msgstr "Відомі діалекти асемблера (для використання з опцією -masm=):"
+msgstr "Відомі діалекти асемблера (для використання з опцією -masm=)"
 
 #: config/bpf/bpf.opt:114
 #, no-c-format
 msgid "-minline-memops-threshold=<number> Maximum size of memset/memmove/memcpy to inline, larger sizes will use a library call."
-msgstr ""
+msgstr "-minline-memops-threshold=<number> Максимальний розмір memset/memmove/memcpy для вбудовування, більші розміри будуть використовувати виклик бібліотеки."
 
 #: config/mips/mips.opt:32
 #, no-c-format
@@ -12763,10 +12668,9 @@ msgid "Use Enhanced Virtual Addressing instructions."
 msgstr "Використовуйте інструкції покращеного віртуального адресування."
 
 #: config/mips/mips.opt:171
-#, fuzzy, no-c-format
-#| msgid "Does nothing.  Preserved for backward compatibility."
+#, no-c-format
 msgid "Don't use %reloc() assembly operators (for backward compatibility)."
-msgstr "Нічого не робить. Зберігається для забезпечення сумісності з попередніми версіями."
+msgstr "Не використовувати оператори асемблера %reloc() (для зворотної сумісності)."
 
 #: config/mips/mips.opt:175
 #, no-c-format
@@ -13029,10 +12933,9 @@ msgid "Optimize lui/addiu address loads."
 msgstr "Оптимізуйте завантаження адреси lui/addiu."
 
 #: config/mips/mips.opt:406
-#, fuzzy, no-c-format
-#| msgid "Enable MUL instructions."
+#, no-c-format
 msgid "Enable the MIPS16e V2 instructions."
-msgstr "Увімкнути інструкції MUL."
+msgstr "Увімкнути інструкції MIPS16e V2."
 
 #: config/mips/mips.opt:410
 #, no-c-format
@@ -13055,22 +12958,19 @@ msgid "Use 4-operand madd.s/madd.d and related instructions where applicable."
 msgstr "Використовуйте 4-операндні інструкції madd.s/madd.d та повʼязані інструкції там, де це можливо."
 
 #: config/mips/mips.opt:434
-#, fuzzy, no-c-format
-#| msgid "Generate code with unaligned load store, valid for MIPS R6."
+#, no-c-format
 msgid "Don't generate code with unaligned load store, only valid for MIPS R6."
-msgstr "Генерувати код з незбалансованим завантаженням та зберіганням, дійсним для MIPS R6."
+msgstr "Не генерувати код з невирівняними завантаженням та збереженням, тільки дійсний для MIPS R6."
 
 #: config/mips/mips.opt:438
-#, fuzzy, no-c-format
-#| msgid "Generate code with unaligned load store, valid for MIPS R6."
+#, no-c-format
 msgid "Generate code with unaligned load store for R6 (alias of -mno-strict-align)."
-msgstr "Генерувати код з незбалансованим завантаженням та зберіганням, дійсним для MIPS R6."
+msgstr "Генерувати код з невирівняними завантаженням та збереженням для R6 (аліас -mno-strict-align)."
 
 #: config/mips/mips.opt:442
-#, fuzzy, no-c-format
-#| msgid "Generate code with unaligned load store, valid for MIPS R6."
+#, no-c-format
 msgid "Don't generate code with unaligned load store for R6 (alias of -mstrict-align)."
-msgstr "Генерувати код з незбалансованим завантаженням та зберіганням, дійсним для MIPS R6."
+msgstr "Не генерувати код з невирівняними завантаженням та збереженням для R6 (аліас -mstrict-align)."
 
 #: config/mips/mips.opt:450
 #, no-c-format
@@ -13520,7 +13420,7 @@ msgstr "Увімкнути опкоди ENTER_S та LEAVE_S для ARCv2."
 #: config/vxworks-smp.opt:25
 #, no-c-format
 msgid "Select VxWorks SMP C runtimes for linking."
-msgstr ""
+msgstr "Вибрати середовище виконання C для VxWorks SMP для зв'язування."
 
 #: lto/lang.opt:50
 #, no-c-format
@@ -13780,7 +13680,7 @@ msgstr "Попереджати, коли намагаєтесь звільнит
 #: common.opt:639
 #, no-c-format
 msgid "Warn when -fhardened did not enable an option from its set."
-msgstr ""
+msgstr "Попереджати, коли -fhardened не ввімкнув параметр з його набору."
 
 #: common.opt:650
 #, no-c-format
@@ -13923,10 +13823,9 @@ msgid "Warn about functions which might be candidates for __attribute__((malloc)
 msgstr "Попереджати про функції, які можуть бути кандидатами на __attribute__((malloc))."
 
 #: common.opt:790
-#, fuzzy, no-c-format
-#| msgid "Warn about functions which might be candidates for __attribute__((noreturn))."
+#, no-c-format
 msgid "Warn about functions which might be candidates for __attribute__((returns_nonnull))."
-msgstr "Попереджати про функції, які можуть бути кандидатами на __attribute__((noreturn))."
+msgstr "Попереджати про функції, які можуть бути кандидатами для __attribute__((returns_nonnull))."
 
 #: common.opt:794
 #, no-c-format
@@ -14026,7 +13925,7 @@ msgstr "Попереджувати, якщо функція закінчуєть
 #: common.opt:875
 #, no-c-format
 msgid "Warn when a conditional has too many terms and condition coverage profiling gives up instrumenting the expression."
-msgstr ""
+msgstr "Попереджати, коли умовна конструкція має занадто багато умов, і профілювання покриття умов припиняє інструментування виразу через надмірну складність."
 
 #: common.opt:880
 #, no-c-format
@@ -14271,7 +14170,7 @@ msgstr "Виконати оптимізацію копіювання реєст
 #: common.opt:1268
 #, no-c-format
 msgid "Fold instructions calculating memory offsets to the memory access instruction if possible."
-msgstr ""
+msgstr "Згорнути інструкції для обчислення зміщення пам'яті до інструкції доступу до пам'яті, якщо це можливо."
 
 #: common.opt:1272
 #, no-c-format
@@ -14384,10 +14283,9 @@ msgid "-fdiagnostics-color=[never|always|auto]\tColorize diagnostics."
 msgstr "-fdiagnostics-color=[never|always|auto]\tКолірувати діагностику."
 
 #: common.opt:1399
-#, fuzzy, no-c-format
-#| msgid "Enable verbose output."
+#, no-c-format
 msgid "Enable formatting of JSON output."
-msgstr "Увімкнути розширений вивід."
+msgstr "Увімкнути форматування вихідних даних у форматі JSON."
 
 #: common.opt:1403
 #, no-c-format
@@ -14462,7 +14360,7 @@ msgstr "Показати глибину стеку подій у шляхах."
 #: common.opt:1530
 #, no-c-format
 msgid "-fdiagnostics-text-art-charset=[none|ascii|unicode|emoji]\tDetermine which characters to use in text arg diagrams."
-msgstr ""
+msgstr "-fdiagnostics-text-art-charset=[none|ascii|unicode|emoji]\tВизначити, які символи використовувати в текстових схемах."
 
 #: common.opt:1549
 #, no-c-format
@@ -14727,7 +14625,7 @@ msgstr "Увімкнути вгадування ймовірностей гіл
 #: common.opt:1839
 #, no-c-format
 msgid "Enable various security-relevant flags."
-msgstr ""
+msgstr "Увімкнути різні прапори, що стосуються безпеки."
 
 #: common.opt:1843
 #, no-c-format
@@ -14740,31 +14638,29 @@ msgid "Harden conditional branches by checking reversed conditions."
 msgstr "Посилити умовні гілки, перевіряючи зворотні умови."
 
 #: common.opt:1851
-#, fuzzy, no-c-format
-#| msgid "Harden conditionals not used in branches, checking reversed conditions."
+#, no-c-format
 msgid "Harden control flow by recording and checking execution paths."
-msgstr "Посилити умови, які не використовуються в гілках, перевіряючи зворотні умови."
+msgstr "Затвердити потік керування, записуючи та перевіряючи шляхи виконання."
 
 #: common.opt:1855
-#, fuzzy, no-c-format
-#| msgid "disable pass %s for function %s"
+#, no-c-format
 msgid "Disable CFR in leaf functions."
-msgstr "вимкнути прохід %s для функції %s"
+msgstr "Вимкнути CFR у листкових функціях."
 
 #: common.opt:1859
 #, no-c-format
 msgid "Check CFR execution paths also before calls followed by returns of their results."
-msgstr ""
+msgstr "Також перевіряти шляхи виконання CFR перед викликами, за якими слідують повернення їх результатів."
 
 #: common.opt:1863
 #, no-c-format
 msgid "Check CFR execution paths also when exiting a function through an exception."
-msgstr ""
+msgstr "Також перевіряти шляхи виконання (CFR) при виході з функції через виняток."
 
 #: common.opt:1867
 #, no-c-format
 msgid "-fhardcfr-check-noreturn-calls=[always|no-xthrow|nothrow|never]\tCheck CFR execution paths also before calling noreturn functions."
-msgstr ""
+msgstr "-fhardcfr-check-noreturn-calls=[always|no-xthrow|nothrow|never]\tТакож перевіряти шляхи виконання (CFR) перед викликом функцій, які не повертають значення."
 
 #: common.opt:1890
 #, no-c-format
@@ -14834,7 +14730,7 @@ msgstr "Вбудовувати операції __atomic, коли є послі
 #: common.opt:1973
 #, no-c-format
 msgid "-finline-stringops[=memcmp|memcpy|memmove|memset] Expand supported mem/str operations inline, even if against optimization."
-msgstr ""
+msgstr "-finline-stringops[=memcmp|memcpy|memmove|memset] Розгортати підтримувані операції з пам'яттю та рядками вбудовано, навіть якщо це суперечить оптимізації."
 
 #: common.opt:2004
 #, no-c-format
@@ -15082,10 +14978,9 @@ msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per l
 msgstr "-fmessage-length=<кількість>\tОбмежити діагностику до <кількості> символів на рядок. 0 пригнічує перенесення рядків."
 
 #: common.opt:2284
-#, fuzzy, no-c-format
-#| msgid "Align the start of functions."
+#, no-c-format
 msgid "Align the start of every function."
-msgstr "Вирівняти початок функцій."
+msgstr "Вирівняти початок кожної функції."
 
 #: common.opt:2288
 #, no-c-format
@@ -15273,10 +15168,9 @@ msgid "Insert arc-based program profiling code."
 msgstr "Вставити код профілювання програми на основі дуг."
 
 #: common.opt:2474
-#, fuzzy, no-c-format
-#| msgid "Insert arc-based program profiling code."
+#, no-c-format
 msgid "Insert condition coverage profiling code."
-msgstr "Вставити код профілювання програми на основі дуг."
+msgstr "Вставити код профілювання покриття умов."
 
 #: common.opt:2478
 #, no-c-format
@@ -15726,34 +15620,32 @@ msgstr "Трактувати переповнення зі знаком як н
 #: common.opt:2940
 #, no-c-format
 msgid "Disable stack scrub entirely, disregarding strub attributes."
-msgstr ""
+msgstr "Вимикає повністю очищення стека, не враховуючи атрибути strub."
 
 #: common.opt:2944
 #, no-c-format
 msgid "Enable stack scrub as per attributes, with strict call checking."
-msgstr ""
+msgstr "Увімкнути очищення стека відповідно до атрибутів, з жорсткою перевіркою викликів."
 
 #: common.opt:2953
 #, no-c-format
 msgid "Restore default strub mode: as per attributes, with relaxed checking."
-msgstr ""
+msgstr "Відновити типовий режим strub: відповідно до атрибутів, з розслабленою перевіркою."
 
 #: common.opt:2957
-#, fuzzy, no-c-format
-#| msgid "Enable hwasan instrumentation of builtin functions."
+#, no-c-format
 msgid "Enable stack scrubbing for all viable functions."
-msgstr "Увімкнути інструментування вбудованих функцій hwasan."
+msgstr "Увімкнути очищення стеку для всіх придатних функцій."
 
 #: common.opt:2961
 #, no-c-format
 msgid "Enable at-calls stack scrubbing for all viable functions."
-msgstr ""
+msgstr "Увімкнути очищення стека при викликах для всіх придатних функцій."
 
 #: common.opt:2965
-#, fuzzy, no-c-format
-#| msgid "Enable interrupt stack instructions."
+#, no-c-format
 msgid "Enable internal stack scrubbing for all viable functions."
-msgstr "Увімкнути інструкції стеку переривань."
+msgstr "Увімкнути внутрішнє очищення стеку для всіх придатних функцій."
 
 #: common.opt:2969
 #, no-c-format
@@ -15808,7 +15700,7 @@ msgstr "Для цілей, які зазвичай потребують трам
 #: common.opt:3025
 #, no-c-format
 msgid "Whether trampolines are generated in executable memory rather than executable stack."
-msgstr ""
+msgstr "Чи генеруються трампліни в виконуваній пам'яті, а не виконуваному стеку."
 
 #: common.opt:3043
 #, no-c-format
@@ -16211,10 +16103,9 @@ msgid "Assume assembler support for view in (DWARF2+) .loc directives."
 msgstr "Припускати підтримку асемблером перегляду в директивах .loc (DWARF2+)."
 
 #: common.opt:3492
-#, fuzzy, no-c-format
-#| msgid "Generate debug information in VMS format."
+#, no-c-format
 msgid "Generate debug information in CodeView format."
-msgstr "Створити відлагоджувальну інформацію у форматі VMS."
+msgstr "Згенерувати інформацію про налагодження у форматі CodeView."
 
 #: common.opt:3512
 #, no-c-format
@@ -16544,7 +16435,7 @@ msgstr "Коефіцієнт масштабування, який застосо
 #: params.opt:139
 #, no-c-format
 msgid "Whether the target fully pipelines FMA instructions.  If non-zero, reassociation considers the benefit of parallelizing FMA's multiplication part and addition part, assuming FMUL and FMA use the same units that can also do FADD."
-msgstr ""
+msgstr "Чи повністю підтримує цільова платформа конвеєрну обробку інструкцій FMA? Якщо значення не нульове, переасоціація враховує вигоду від паралельного виконання множення та додавання в інструкції FMA, припускаючи, що FMUL і FMA використовують однакові блоки обчислення, які також можуть виконувати FADD."
 
 #: params.opt:146
 #, no-c-format
@@ -16599,12 +16490,12 @@ msgstr "Максимальна кількість параметрів в SCoP."
 #: params.opt:186
 #, no-c-format
 msgid "Maximum number of blocks for -fharden-control-flow-redundancy."
-msgstr ""
+msgstr "Максимальна кількість блоків для -fharden-control-flow-redundancy."
 
 #: params.opt:190
 #, no-c-format
 msgid "Maximum number of blocks for in-line -fharden-control-flow-redundancy."
-msgstr ""
+msgstr "Максимальна кількість блоків для вбудованого -fharden-control-flow-redundancy."
 
 #: params.opt:194
 #, no-c-format
@@ -16697,10 +16588,9 @@ msgid "Maximum size of a list of values associated with each parameter for inter
 msgstr "Максимальний розмір списку значень, повʼязаних з кожним параметром для міжпроцедурного поширення констант."
 
 #: params.opt:266
-#, fuzzy, no-c-format
-#| msgid "When using profile feedback, use the edge at this percentage position in frequncy histogram as the bases for IPA-CP heuristics."
+#, no-c-format
 msgid "When using profile feedback, use the edge at this percentage position in frequency histogram as the bases for IPA-CP heuristics."
-msgstr "При використанні профілю зворотного звʼязку, використовуйте ребро на цій відсотковій позиції в гістограмі частот як основу для евристик IPA-CP."
+msgstr "При використанні профілю зворотного зв'язку використовуйте ребро на цій позиції в гістограмі частоти як основу для евристик IPA-CP."
 
 #: params.opt:270
 #, no-c-format
@@ -17665,13 +17555,12 @@ msgstr "Максимальна кількість вкладених викли
 #: params.opt:1126
 #, no-c-format
 msgid "Maximum number of predicates anded for each predicate ored in the normalized predicate chain."
-msgstr ""
+msgstr "Максимальна кількість предикатів, об'єднаних AND для кожного предиката, об'єднаного OR у нормалізованому ланцюжку предикатів."
 
 #: params.opt:1131
-#, fuzzy, no-c-format
-#| msgid "Maximum number of bases stored in each modref tree."
+#, no-c-format
 msgid "Maximum number of predicates ored in the normalized predicate chain."
-msgstr "Максимальна кількість баз, збережених у кожному дереві modref."
+msgstr "Максимальна кількість предикатів, об'єднаних у нормалізованому ланцюжку предикатів."
 
 #: params.opt:1135
 #, no-c-format
@@ -17759,22 +17648,19 @@ msgid "Enable loop vectorization of floating point inductions."
 msgstr "Увімкнути векторизацію петлі для плаваючої точки."
 
 #: params.opt:1203
-#, fuzzy, no-c-format
-#| msgid "Maximum number of basic blocks before EVRP uses a sparse cache."
+#, no-c-format
 msgid "Maximum number of basic blocks before VRP uses a sparse bitmap cache."
-msgstr "Максимальна кількість базових блоків, перед тим як EVRP використовує розріджений кеш."
+msgstr "Максимальна кількість базових блоків перед тим, як VRP використовуватиме розріджений бітовий масив кешу."
 
 #: params.opt:1207
-#, fuzzy, no-c-format
-#| msgid "Maximum number of outgoing edges in a switch before EVRP will not process it."
+#, no-c-format
 msgid "Maximum number of outgoing edges in a switch before VRP will not process it."
-msgstr "Максимальна кількість вихідних ребер у перемикачі, перед тим як EVRP не буде обробляти його."
+msgstr "Максимальна кількість вихідних ребер у перемикачі, перед тим як VRP не обробить його."
 
 #: params.opt:1211
-#, fuzzy, no-c-format
-#| msgid "Maximum number of basic blocks before EVRP uses a sparse cache."
+#, no-c-format
 msgid "Maximum number of basic blocks for VRP to use a basic cache vector."
-msgstr "Максимальна кількість базових блоків, перед тим як EVRP використовує розріджений кеш."
+msgstr "Максимальна кількість базових блоків для використання VRP з базовим вектором кешу."
 
 #: cfgrtl.cc:2837
 msgid "flow control insn inside a basic block"
@@ -18596,10 +18482,9 @@ msgstr ""
 "\n"
 
 #: gcov-tool.cc:595
-#, fuzzy, c-format
-#| msgid "Copyright %s 2023 Free Software Foundation, Inc.\n"
+#, c-format
 msgid "Copyright %s 2024 Free Software Foundation, Inc.\n"
-msgstr "Авторське право %s 2023 Free Software Foundation, Inc.\n"
+msgstr "Авторське право %s 2024 Free Software Foundation, Inc.\n"
 
 #: gcov.cc:969
 #, c-format
@@ -18641,18 +18526,13 @@ msgstr ""
 "                                    а не відсотки\n"
 
 #: gcov.cc:975
-#, fuzzy, c-format
-#| msgid ""
-#| "  -c, --branch-counts             Output counts of branches taken\n"
-#| "                                    rather than percentages\n"
+#, c-format
 msgid ""
 "  -g, --conditions                Include modified condition/decision\n"
 "                                    coverage in output\n"
 msgstr ""
-"  -c, --branch-counts             Вивести кількість виконаних гілок\n"
-"                                    замість відсотків\n"
-"  -c, --branch-counts             Виводити кількість виконаних гілок,\n"
-"                                    а не відсотки\n"
+"  -g, --conditions                Включити змінене покриття умов/рішень\n"
+"                                    у виводі\n"
 
 #: gcov.cc:977
 #, c-format
@@ -18787,10 +18667,9 @@ msgid "gcov %s%s\n"
 msgstr "gcov %s%s\n"
 
 #: gcov.cc:1013
-#, fuzzy, c-format
-#| msgid "collect2 version %s\n"
+#, c-format
 msgid "JSON format version: %s\n"
-msgstr "версія collect2 %s\n"
+msgstr "Версія формату JSON: %s\n"
 
 #: gcov.cc:1454
 #, c-format
@@ -18858,10 +18737,9 @@ msgid "%s:already seen blocks for '%s'\n"
 msgstr "%s:вже бачені блоки для '%s'\n"
 
 #: gcov.cc:2064
-#, fuzzy, c-format
-#| msgid "%s:already seen blocks for '%s'\n"
+#, c-format
 msgid "%s:already seen conditions for '%s'\n"
-msgstr "%s:вже бачені блоки для '%s'\n"
+msgstr "%s: вже бачили умови для '%s'\n"
 
 #: gcov.cc:2115 gcov.cc:2244
 #, c-format
@@ -18964,16 +18842,14 @@ msgid "No calls\n"
 msgstr "Немає викликів\n"
 
 #: gcov.cc:2688
-#, fuzzy, c-format
-#| msgid "Lines executed:%s of %d\n"
+#, c-format
 msgid "Condition outcomes covered:%s of %d\n"
-msgstr "Виконано рядків:%s з %d\n"
+msgstr "Наслідки умов покриті:%s з %d\n"
 
 #: gcov.cc:2693
-#, fuzzy, c-format
-#| msgid "bad condition code"
+#, c-format
 msgid "No conditions\n"
-msgstr "неправильний код умови"
+msgstr "Немає умов\n"
 
 #: gcov.cc:2913
 #, c-format
@@ -18983,13 +18859,12 @@ msgstr "%s: немає рядків для '%s'\n"
 #: gcov.cc:3049
 #, c-format
 msgid "condition outcomes covered %d/%d\n"
-msgstr ""
+msgstr "наслідки умов покриті %d/%d\n"
 
 #: gcov.cc:3062
-#, fuzzy, c-format
-#| msgid "unconditional %2d taken %s\n"
+#, c-format
 msgid "condition %2u not covered (%s%s)\n"
-msgstr "безумовний %2d виконаний %s\n"
+msgstr "умова %2u не покрита (%s%s)\n"
 
 #: gcov.cc:3076
 #, c-format
@@ -19651,10 +19526,9 @@ msgid "incompatible floating point / vector register operand for '%%%c'"
 msgstr "несумісний операнд з регістром з плаваючою комою / векторним для '%%%c'"
 
 #: config/aarch64/aarch64.cc:12130
-#, fuzzy, c-format
-#| msgid "incompatible register operand for '%%%c'"
+#, c-format
 msgid "incompatible operand for '%%%c'"
-msgstr "несумісний операнд з регістром для '%%%c'"
+msgstr "несумісний операнд для '%%%c'"
 
 #: config/aarch64/aarch64.cc:12150
 #, c-format
@@ -19807,22 +19681,19 @@ msgid "invalid operand to %%p code"
 msgstr "недійсний операнд для коду %%p"
 
 #: config/arc/arc.cc:4941
-#, fuzzy, c-format
-#| msgid "invalid operand to %%s code"
+#, c-format
 msgid "invalid operand for %%s code"
 msgstr "недійсний операнд для коду %%s"
 
 #: config/arc/arc.cc:4959
-#, fuzzy, c-format
-#| msgid "invalid operand to %%N code"
+#, c-format
 msgid "invalid operand for %%N code"
-msgstr "неправильний операнд для коду %%N"
+msgstr "недійсний операнд для коду %%N"
 
 #: config/arc/arc.cc:4972
-#, fuzzy, c-format
-#| msgid "invalid operand to %%N code"
+#, c-format
 msgid "invalid operand for %%N or %%S code"
-msgstr "неправильний операнд для коду %%N"
+msgstr "недійсний операнд для коду %%N або %%S"
 
 #: config/arc/arc.cc:4994 config/m32r/m32r.cc:2081
 #, c-format
@@ -20389,40 +20260,28 @@ msgid "unknown insn mode"
 msgstr "невідомий режим інструкції"
 
 #: config/i386/i386.cc:23777
-#, fuzzy
-#| msgid "invalid conversion from type %<bfloat16_t%>"
 msgid "invalid conversion from type %<__bf16%> without option %<-msse2%>"
-msgstr "недійсне перетворення з типу %<bfloat16_t%>"
+msgstr "недійсне перетворення з типу %<__bf16%> без опції %<-msse2%>"
 
 #: config/i386/i386.cc:23780
-#, fuzzy
-#| msgid "invalid conversion from type %<bfloat16_t%>"
 msgid "invalid conversion from type %<_Float16%> without option %<-msse2%>"
-msgstr "недійсне перетворення з типу %<bfloat16_t%>"
+msgstr "недійсне перетворення з типу %<_Float16%> без опції %<-msse2%>"
 
 #: config/i386/i386.cc:23783
-#, fuzzy
-#| msgid "invalid conversion to type %<bfloat16_t%>"
 msgid "invalid conversion to type %<__bf16%> without option %<-msse2%>"
-msgstr "недійсне перетворення до типу %<bfloat16_t%>"
+msgstr "недійсне перетворення до типу %<__bf16%> без опції %<-msse2%>"
 
 #: config/i386/i386.cc:23786
-#, fuzzy
-#| msgid "invalid conversion to type %<bfloat16_t%>"
 msgid "invalid conversion to type %<_Float16%> without option %<-msse2%>"
-msgstr "недійсне перетворення до типу %<bfloat16_t%>"
+msgstr "недійсне перетворення до типу %<_Float16%> без опції %<-msse2%>"
 
 #: config/i386/i386.cc:23824 config/i386/i386.cc:23849
-#, fuzzy
-#| msgid "operation not permitted on type %<bfloat16_t%>"
 msgid "operation not permitted on type %<__bf16%> without option %<-msse2%>"
-msgstr "операція не дозволена для типу %<bfloat16_t%>"
+msgstr "операція не дозволена для типу %<__bf16%> без опції %<-msse2%>"
 
 #: config/i386/i386.cc:23827 config/i386/i386.cc:23853
-#, fuzzy
-#| msgid "operation not permitted on type %<bfloat16_t%>"
 msgid "operation not permitted on type %<_Float16%> without option %<-msse2%>"
-msgstr "операція не дозволена для типу %<bfloat16_t%>"
+msgstr "операція не дозволена для типу %<_Float16%> без опції %<-msse2%>"
 
 #: config/ia64/ia64.cc:5470
 #, c-format
@@ -21055,10 +20914,9 @@ msgid "'o' operand is not constant"
 msgstr "операнд 'o' не є константою"
 
 #: config/stormy16/stormy16.cc:1980
-#, fuzzy, c-format
-#| msgid "'B' operand is not constant"
+#, c-format
 msgid "'h' operand is not SImode register"
-msgstr "операнд 'B' не є константою"
+msgstr "Операнд 'h' не є регістром типу SImode"
 
 #: config/stormy16/stormy16.cc:1988
 #, c-format
@@ -21516,10 +21374,8 @@ msgid "In lambda function"
 msgstr "У функції-лямбді"
 
 #: cp/error.cc:3713
-#, fuzzy
-#| msgid "In static member function %qD"
 msgid "In explicit object member function %qD"
-msgstr "У статичній функції-члені %qD"
+msgstr "У явній членській функції об'єкта %qD"
 
 #: cp/error.cc:3715
 msgid "In member function %qD"
@@ -21718,16 +21574,12 @@ msgstr ""
 "\n"
 
 #: fortran/error.cc:1043
-#, fuzzy
-#| msgid "new in Fortran 2003"
 msgid "Prohibited in Fortran 2023:"
-msgstr "новий у Fortran 2003"
+msgstr "Заборонено в Fortran 2023:"
 
 #: fortran/error.cc:1045
-#, fuzzy
-#| msgid "Fortran 2018:"
 msgid "Fortran 2023:"
-msgstr "Fortran 2018:"
+msgstr "Fortran 2023:"
 
 #: fortran/error.cc:1047
 msgid "Fortran 2018 deleted feature:"
@@ -21823,10 +21675,8 @@ msgid "new in Fortran 2018"
 msgstr "новий у Fortran 2018"
 
 #: fortran/intrinsic.cc:4896
-#, fuzzy
-#| msgid "new in Fortran 2003"
 msgid "new in Fortran 2023"
-msgstr "новий у Fortran 2003"
+msgstr "нове в Fortran 2023"
 
 #: fortran/intrinsic.cc:4900
 msgid "a GNU Fortran extension"
@@ -22359,10 +22209,8 @@ msgid "value computed is not used"
 msgstr "обчислене значення не використовується"
 
 #: go/gofrontend/expressions.cc:1986
-#, fuzzy
-#| msgid "expected function name"
 msgid "unexpected reference to package"
-msgstr "мало бути вказано назву функції"
+msgstr "неочікуване посилання на пакет"
 
 #: go/gofrontend/expressions.cc:3840 go/gofrontend/expressions.cc:3856
 msgid "constant refers to itself"
@@ -22544,33 +22392,27 @@ msgstr "кількість результатів не відповідає кі
 
 #: go/gofrontend/expressions.cc:14671
 msgid "invalid 3-index slice of object that is not a slice"
-msgstr ""
+msgstr "Недійсний 3-індексний зріз об'єкта, який не є зрізом"
 
 #: go/gofrontend/expressions.cc:14674
 msgid "attempt to slice object that is not array, slice, or string"
-msgstr ""
+msgstr "Спроба використовувати зріз на об'єкті, який не є масивом, зрізом або рядком"
 
 #: go/gofrontend/expressions.cc:14677
 msgid "attempt to index object that is not array, slice, string, or map"
-msgstr ""
+msgstr "Спроба індексувати об'єкт, який не є масивом, зрізом, рядком або мапою"
 
 #: go/gofrontend/expressions.cc:14730
-#, fuzzy
-#| msgid "expected integer expression"
 msgid "attempt to index type expression"
-msgstr "очікувався цілочисельний вираз"
+msgstr "спроба індексувати вираз типу"
 
 #: go/gofrontend/expressions.cc:14757
-#, fuzzy
-#| msgid "invalid left hand side of assignment"
 msgid "invalid 3-index slice of string"
-msgstr "неприпустима ліва сторона присвоєння"
+msgstr "недійсний 3-індексний зріз рядка"
 
 #: go/gofrontend/expressions.cc:14770
-#, fuzzy
-#| msgid "invalid use of type"
 msgid "invalid slice of map"
-msgstr "неприпустиме використання типу"
+msgstr "недійсний зріз мапи"
 
 #: go/gofrontend/expressions.cc:14779 go/gofrontend/expressions.cc:15970
 msgid "incompatible type for map index"
@@ -22582,15 +22424,15 @@ msgstr "очікується інтерфейс або вказівник на 
 
 #: go/gofrontend/expressions.cc:18212
 msgid "may only omit types within composite literals of slice, array, or map type"
-msgstr ""
+msgstr "Тип можна пропускати лише в складних літералах типу зрізів, масивів або мап."
 
 #: go/gofrontend/expressions.cc:18306 go/gofrontend/expressions.cc:18618
 msgid "map composite literal must have keys"
-msgstr ""
+msgstr "Складний літерал мапи має містити ключі"
 
 #: go/gofrontend/expressions.cc:18651
 msgid "expected struct, slice, array, or map type for composite literal"
-msgstr ""
+msgstr "очікується тип структури, зрізу, масиву або мапи для складеного літералу"
 
 #: go/gofrontend/expressions.cc:19266 go/gofrontend/statements.cc:2121
 msgid "type assertion only valid for interface types"
@@ -22619,20 +22461,16 @@ msgid "cannot fallthrough final case in switch"
 msgstr "неможливо перейти до останнього випадку в операторі вибору"
 
 #: go/gofrontend/statements.cc:1288
-#, fuzzy
-#| msgid "cannot use %qs as a call-used register"
 msgid "cannot use %<_%> as value"
-msgstr "не можна використовувати %qs як регістр, що використовується при виклику"
+msgstr "неможливо використовувати %<_%> як значення"
 
 #: go/gofrontend/statements.cc:1300 go/gofrontend/statements.cc:2528
 msgid "invalid left hand side of assignment"
 msgstr "неприпустима ліва сторона присвоєння"
 
 #: go/gofrontend/statements.cc:1309
-#, fuzzy
-#| msgid "incompatible types in binary expression"
 msgid "incompatible type in binary expression"
-msgstr "несумісні типи в бінарному виразі"
+msgstr "несумісні типи у бінарному виразі"
 
 #: go/gofrontend/statements.cc:1555
 msgid "use of untyped nil"
@@ -22643,10 +22481,8 @@ msgid "expected map index on right hand side"
 msgstr "очікуваний індекс мапи на правій стороні"
 
 #: go/gofrontend/statements.cc:2534
-#, fuzzy
-#| msgid "no pre-increment operator for type"
 msgid "increment or decrement of non-numeric type"
-msgstr "немає оператора преінкремента для цього типу"
+msgstr "збільшення або зменшення нечислового типу"
 
 #: go/gofrontend/statements.cc:3449 go/gofrontend/statements.cc:3464
 msgid "not enough arguments to return"
@@ -22814,7 +22650,7 @@ msgstr "метод %s%s%s має позначку go:nointerface"
 #: rust/resolve/rust-ast-resolve-expr.cc:140
 #, c-format
 msgid "You have broken GCC Rust. This is a feature.\n"
-msgstr ""
+msgstr "Ви поламали GCC Rust. Це особливість.\n"
 
 #: lto-streamer.h:1033
 #, gcc-internal-format, gfc-internal-format
@@ -23127,10 +22963,9 @@ msgid "Unrecognized option: %qs"
 msgstr "Невідома опція: %qs"
 
 #: rust/lang.opt:90
-#, fuzzy, gcc-internal-format
-#| msgid "unknown lam type %qs"
+#, gcc-internal-format
 msgid "unknown crate type: '%qs'"
-msgstr "невідомий тип lam %qs"
+msgstr "невідомий тип крейту: '%qs'"
 
 #: rust/lang.opt:118
 #, gcc-internal-format
@@ -23179,16 +23014,14 @@ msgid "missing makefile target after %qs"
 msgstr "відсутня ціль makefile після %qs"
 
 #: c-family/c.opt:260
-#, fuzzy, gcc-internal-format
-#| msgid "missing path after %qs"
+#, gcc-internal-format
 msgid "missing format after %qs"
-msgstr "відсутній шлях після %qs"
+msgstr "відсутній формат після %qs"
 
 #: c-family/c.opt:264
-#, fuzzy, gcc-internal-format
-#| msgid "missing path after %qs"
+#, gcc-internal-format
 msgid "missing output path after %qs"
-msgstr "відсутній шлях після %qs"
+msgstr "відсутній шлях виводу після %qs"
 
 #: c-family/c.opt:311
 #, gcc-internal-format
@@ -23266,10 +23099,9 @@ msgid "unknown pointer size model %qs"
 msgstr "невідома модель розміру вказівника %qs"
 
 #: config/aarch64/aarch64.opt:379
-#, fuzzy, gcc-internal-format
-#| msgid "unknown TLS model %qs"
+#, gcc-internal-format
 msgid "unknown LDP/STP policy %qs"
-msgstr "невідома модель TLS %qs"
+msgstr "невідома політика LDP/STP %qs"
 
 #: config/i386/i386.opt:340
 #, gcc-internal-format
@@ -23289,27 +23121,27 @@ msgstr "%<-msse5%> було видалено"
 #: config/i386/i386.opt:745
 #, gcc-internal-format
 msgid "AVX512PF support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримку AVX512PF буде вилучено у GCC 15"
 
 #: config/i386/i386.opt:749
 #, gcc-internal-format
 msgid "AVX512ER support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримку AVX512ER буде вилучено у GCC 15"
 
 #: config/i386/i386.opt:777
 #, gcc-internal-format
 msgid "AVX5124FMAPS support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримку AVX5124FMAPS буде вилучено у GCC 15"
 
 #: config/i386/i386.opt:781
 #, gcc-internal-format
 msgid "AVX5124VNNIW support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримку AVX5124VNNIW буде вилучено у GCC 15"
 
 #: config/i386/i386.opt:976
 #, gcc-internal-format
 msgid "PREFETCHWT1 support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримку PREFETCHWT1 буде вилучено у GCC 15"
 
 #: config/i386/i386.opt:1290
 #, gcc-internal-format
@@ -23344,7 +23176,7 @@ msgstr "використання старого darwin ABI"
 #: config/rs6000/rs6000.opt:475
 #, gcc-internal-format
 msgid "Do not use %<-mpower8-internal%>; use %<-mcpu=power8%> instead"
-msgstr ""
+msgstr "Не використовуйте %<-mpower8-internal%>; використовуйте %<-mcpu=power8%>"
 
 #: config/fused-madd.opt:22
 #, gcc-internal-format
@@ -23390,10 +23222,9 @@ msgid "unknown floating point contraction style %qs"
 msgstr "невідомий стиль скорочення з плаваючою комою %qs"
 
 #: common.opt:1870
-#, fuzzy, gcc-internal-format
-#| msgid "unknown Live-Patching Level %qs"
+#, gcc-internal-format
 msgid "unknown hardcfr noreturn checking level %qs"
-msgstr "невідомий рівень живого латання %qs"
+msgstr "невідомий рівень перевірки hardcfr noreturn %qs"
 
 #: common.opt:1905
 #, gcc-internal-format
@@ -23403,7 +23234,7 @@ msgstr "невідомий рівень повторного використа
 #: common.opt:1977
 #, gcc-internal-format
 msgid "unavailable stringop for inlining %qs"
-msgstr ""
+msgstr "недоступний stringop для вбудовування %qs"
 
 #: common.opt:2008
 #, gcc-internal-format
@@ -23466,10 +23297,9 @@ msgid "unknown TLS model %qs"
 msgstr "невідома модель TLS %qs"
 
 #: common.opt:3029
-#, fuzzy, gcc-internal-format
-#| msgid "unknown rust mangling option %qs"
+#, gcc-internal-format
 msgid "unknown trampoline implementation %qs"
-msgstr "невідома опція декорування rust %qs"
+msgstr "невідома реалізація трампліну %qs"
 
 #: common.opt:3351
 #, gcc-internal-format
@@ -24962,10 +24792,9 @@ msgid "%<alias%> attribute ignored because function is defined"
 msgstr "атрибут %<alias%> ігнорується, оскільки функція визначена"
 
 #: cgraphunit.cc:923
-#, fuzzy, gcc-internal-format
-#| msgid "%<always_inline%> function might not be inlinable"
+#, gcc-internal-format
 msgid "%<always_inline%> function might not be inlinable unless also declared %<inline%>"
-msgstr "Функцію %<always_inline%> може бути неможливо вбудувати"
+msgstr "функція %<always_inline%> може не бути вбудованою, якщо також не оголошена як %<inline%>"
 
 #: cgraphunit.cc:949
 #, gcc-internal-format
@@ -25219,10 +25048,9 @@ msgid "pointer value used where a floating-point was expected"
 msgstr "значення вказівника використовується там, де очікувався дійсний числовий тип"
 
 #: convert.cc:338
-#, fuzzy, gcc-internal-format
-#| msgid "pointer value used where a floating-point was expected"
+#, gcc-internal-format
 msgid "vector value used where a floating-point was expected"
-msgstr "значення вказівника використовується там, де очікувався дійсний числовий тип"
+msgstr "використано векторне значення там, де очікується число з плаваючою точкою"
 
 #: convert.cc:342
 #, gcc-internal-format
@@ -25701,16 +25529,12 @@ msgid "cannot read spec file %qs: %m"
 msgstr "не вдалося прочитати файл специфікації %qs: %m"
 
 #: gcc.cc:2412 gcc.cc:2432
-#, fuzzy
-#| msgid "specs %%include syntax malformed after %ld characters"
 msgid "specs %%include syntax malformed after %td characters"
-msgstr "синтаксис %%include в специфікаціях неправильний після %ld символів"
+msgstr "синтаксис специфікацій %%include неправильно сформований після %td символів"
 
 #: gcc.cc:2458 gcc.cc:2467 gcc.cc:2477 gcc.cc:2487
-#, fuzzy
-#| msgid "specs %%rename syntax malformed after %ld characters"
 msgid "specs %%rename syntax malformed after %td characters"
-msgstr "синтаксис %%rename в специфікаціях неправильний після %ld символів"
+msgstr "синтаксис специфікацій %%rename неправильно сформований після %td символів"
 
 #: gcc.cc:2497
 #, gcc-internal-format, gfc-internal-format
@@ -25723,16 +25547,12 @@ msgid "%s: attempt to rename spec %qs to already defined spec %qs"
 msgstr "%s: спроба перейменувати специфікацію %qs на вже визначену специфікацію %qs"
 
 #: gcc.cc:2527
-#, fuzzy
-#| msgid "specs unknown %% command after %ld characters"
 msgid "specs unknown %% command after %td characters"
-msgstr "невідома команда %% в специфікаціях після %ld символів"
+msgstr "невідома команда специфікацій %% після %td символів"
 
 #: gcc.cc:2539 gcc.cc:2553
-#, fuzzy
-#| msgid "specs file malformed after %ld characters"
 msgid "specs file malformed after %td characters"
-msgstr "неправильний формат файлу специфікацій після %ld символів"
+msgstr "файл специфікацій неправильно сформований після %td символів"
 
 #: gcc.cc:2608
 #, gcc-internal-format
@@ -25808,7 +25628,7 @@ msgstr "%qs - невідома опція %<-save-temps%>"
 #: gcc.cc:5024
 #, gcc-internal-format
 msgid "linker hardening options not enabled by %<-fhardened%> because other link options were specified on the command line"
-msgstr ""
+msgstr "параметри захисту зв'язувача не ввімкнені через %<-fhardened%>, оскільки були вказані інші параметри зв'язування у командному рядку"
 
 #: gcc.cc:5048 toplev.cc:714
 #, gcc-internal-format
@@ -26359,17 +26179,17 @@ msgstr "%s не підтримується на цій цілі"
 #: gimple-harden-control-flow.cc:97
 #, gcc-internal-format
 msgid "%qD calls %<setjmp%> or similar, %<-fharden-control-flow-redundancy%> is not supported"
-msgstr ""
+msgstr "%qD викликає %<setjmp%> або щось подібне, %<-fharden-control-flow-redundancy%> не підтримується"
 
 #: gimple-harden-control-flow.cc:110
 #, gcc-internal-format
 msgid "%qD receives nonlocal gotos, %<-fharden-control-flow-redundancy%> is not supported"
-msgstr ""
+msgstr "%qD отримує нелокальнi переходи, %<-fharden-control-flow-redundancy%> не підтримується"
 
 #: gimple-harden-control-flow.cc:121
 #, gcc-internal-format
 msgid "%qD has more than %u blocks, the requested maximum for %<-fharden-control-flow-redundancy%>"
-msgstr ""
+msgstr "%qD має більше ніж %u блоків, максимум, який ви зазначили для %<-fharden-control-flow-redundancy%>"
 
 #: gimple-ssa-isolate-paths.cc:290
 #, gcc-internal-format
@@ -27866,10 +27686,9 @@ msgid "gimple check: expected %s(%s), have %s(%s) in %s, at %s:%d"
 msgstr "перевірка gimple: очікувалося %s(%s), отримано %s(%s) в %s, на %s:%d"
 
 #: gimplify.cc:1426
-#, fuzzy, gcc-internal-format
-#| msgid "%<allocate%> clause must specify an allocator here"
+#, gcc-internal-format
 msgid "%<allocate%> directive for %qD inside a target region must specify an %<allocator%> clause"
-msgstr "замикання %<allocate%> повинна вказувати алокатор тут"
+msgstr "Директива %<allocate%> для %qD всередині цільового регіону повинна вказати клаузу %<allocator%>"
 
 #: gimplify.cc:2298
 #, gcc-internal-format
@@ -27969,16 +27788,14 @@ msgid "%qE not specified in enclosing OpenACC %qs construct"
 msgstr "%qE не вказано в області %qs конструкції OpenACC"
 
 #: gimplify.cc:8154
-#, fuzzy, gcc-internal-format
-#| msgid "enclosing OpenACC %qs construct"
+#, gcc-internal-format
 msgid "enclosing OpenACC %qs construct and"
-msgstr "оточуюча область %qs конструкції OpenACC"
+msgstr "обмеження конструкції OpenACC %qs і"
 
 #: gimplify.cc:8157
-#, fuzzy, gcc-internal-format
-#| msgid "enclosing OpenACC %qs construct"
+#, gcc-internal-format
 msgid "enclosing OpenACC %qs construct with %qs clause"
-msgstr "оточуюча область %qs конструкції OpenACC"
+msgstr "обмеження конструкції OpenACC %qs з клаузою %qs"
 
 #: gimplify.cc:8227
 #, gcc-internal-format
@@ -28724,109 +28541,104 @@ msgid "function %qs, parameter %u, is used but does not have any certain IPA-SRA
 msgstr "функція %qs, параметр %u, використовується, але не має жодного визначеного доступу IPA-SRA"
 
 #: ipa-strub.cc:622
-#, fuzzy, gcc-internal-format
-#| msgid "pass %s does not support cloning"
+#, gcc-internal-format
 msgid "at-calls %<strub%> does not support call to %qD"
-msgstr "прохід %s не підтримує клонування"
+msgstr "at-calls %<strub%> не підтримує виклику до %qD"
 
 #: ipa-strub.cc:656
 #, gcc-internal-format
 msgid "%qD is not eligible for %<strub%> on the target system"
-msgstr ""
+msgstr "%qD не відповідає вимогам %<strub%> на системі призначення"
 
 #: ipa-strub.cc:660
-#, fuzzy, gcc-internal-format
-#| msgid "unsupported constant address:"
+#, gcc-internal-format
 msgid "unsupported %<strub%> call on the target system"
-msgstr "непідтримувана адреса константи:"
+msgstr "непідтримуваний виклик %<strub%> на цільовій системі"
 
 #: ipa-strub.cc:686
 #, gcc-internal-format
 msgid "%qD is not eligible for %<strub%> because %<-fsplit-stack%> is enabled"
-msgstr ""
+msgstr "%qD не відповідає вимогам для %<strub%>, оскільки ввімкнено %<-fsplit-stack%>"
 
 #: ipa-strub.cc:699
 #, gcc-internal-format
 msgid "%qD is not eligible for %<strub%> because of attribute %<noipa%>"
-msgstr ""
+msgstr "%qD не відповідає вимогам для %<strub%>, через атрибут %<noipa%>"
 
 #: ipa-strub.cc:714
 #, gcc-internal-format
 msgid "%qD is not eligible for %<strub%> because of attribute %<simd%>"
-msgstr ""
+msgstr "%qD не відповідає вимогам для %<strub%>, через атрибут %<simd%>"
 
 #: ipa-strub.cc:848
 #, gcc-internal-format
 msgid "%qD is not eligible for internal %<strub%> because of attribute %<noclone%>"
-msgstr ""
+msgstr "%qD не підходить для внутрішнього %<strub%>, через атрибут %<noclone%>"
 
 #: ipa-strub.cc:872
 #, gcc-internal-format
 msgid "%qD is not eligible for internal %<strub%> because it calls %qD"
-msgstr ""
+msgstr "%qD не підходить для внутрішнього %<strub%>, оскільки викликає %qD"
 
 #: ipa-strub.cc:886
 #, gcc-internal-format
 msgid "%qD is not eligible for internal %<strub%> because it contains a non-local goto target"
-msgstr ""
+msgstr "%qD не підходить для внутрішнього %<strub%>, оскільки містить нелокальну ціль goto"
 
 #: ipa-strub.cc:899
 #, gcc-internal-format
 msgid "%qD is not eligible for internal %<strub%> because the address of a local label escapes"
-msgstr ""
+msgstr "%qD не підходить для внутрішнього %<strub%>, оскільки адреса локальної мітки перевищує межі"
 
 #: ipa-strub.cc:938
-#, fuzzy, gcc-internal-format
-#| msgid "%s does not support force_nonfallthru"
+#, gcc-internal-format
 msgid "internal %<strub%> does not support forced labels"
-msgstr "%s не підтримує параметр force_nonfallthru"
+msgstr "внутрішній %<strub%> не підтримує примусові мітки"
 
 #: ipa-strub.cc:952
-#, fuzzy, gcc-internal-format
-#| msgid "too many arguments for format"
+#, gcc-internal-format
 msgid "%qD has too many arguments for internal %<strub%>"
-msgstr "забагато аргументів для формату"
+msgstr "%qD має забагато аргументів для внутрішнього %<strub%>"
 
 #: ipa-strub.cc:1229
 #, gcc-internal-format
 msgid "%qD requires %<strub%>, but no viable %<strub%> mode was found"
-msgstr ""
+msgstr "%qD вимагає %<strub%>, але не знайдено відповідного режиму %<strub%>"
 
 #: ipa-strub.cc:1325
 #, gcc-internal-format
 msgid "%<strub%> mode %qE selected for %qD, when %qE was requested"
-msgstr ""
+msgstr "Вибраний режим %<strub%> %qE для %qD, хоча було запитано %qE."
 
 #: ipa-strub.cc:1334
 #, gcc-internal-format
 msgid "the incompatible selection was determined by ultimate alias target %qD"
-msgstr ""
+msgstr "Несумісний вибір встановлено для кінцевої мети псевдоніма %qD"
 
 #: ipa-strub.cc:1681
 #, gcc-internal-format
 msgid "indirect non-%<strub%> call in %<strub%> context %qD"
-msgstr ""
+msgstr "Непрямий виклик не-%<strub%> у контексті %<strub%> %qD"
 
 #: ipa-strub.cc:1700
 #, gcc-internal-format
 msgid "calling %<always_inline%> %<strub%> %qD in non-%<strub%> context %qD"
-msgstr ""
+msgstr "Викликається %<always_inline%> %<strub%> %qD у контексті, який не є %<strub%> %qD"
 
 #: ipa-strub.cc:1710
 #, gcc-internal-format
 msgid "calling non-%<strub%> %qD in %<strub%> context %qD"
-msgstr ""
+msgstr "Викликається %qD, що не є %<strub%> у контексті %<strub%> %qD"
 
 #: ipa-strub.cc:1714
 #, gcc-internal-format
 msgid "calling %qD using non-%<strub%> type %qT in %<strub%> context %qD"
-msgstr ""
+msgstr "викликається %qD за допомогою не-%<strub%> типу %qT у контексті %<strub%> %qD"
 
 #: ipa-strub.cc:2839
-#, fuzzy, gcc-internal-format
-#| msgid "failed to load pendings for %<%E%s%E%>"
+#, gcc-internal-format
 msgid "failed to split %qD for %<strub%>"
-msgstr "не вдалося завантажити очікувані одиниці для %<%E%s%E%>"
+msgstr "не вдалося розділити %qD для %<strub%>"
 
 #: ira.cc:2441 ira.cc:2463
 #, gcc-internal-format
@@ -28869,10 +28681,9 @@ msgid "maximum number of generated reload insns per insn achieved (%d)"
 msgstr "досягнуто максимальну кількість згенерованих перезавантажень інструкцій на одну інструкцію (%d)"
 
 #: lra.cc:546
-#, fuzzy, gcc-internal-format
-#| msgid "%<asm%> operand has impossible constraints"
+#, gcc-internal-format
 msgid "%<asm%> operand has impossible constraints or there are not enough registers"
-msgstr "операнд %<asm%> має неможливі обмеження"
+msgstr "операнд %<asm%> має неможливі обмеження або недостатньо регістрів"
 
 #: lto-cgraph.cc:1171
 #, gcc-internal-format
@@ -29223,10 +29034,9 @@ msgid "invalid OpenMP non-rectangular loop step; %<(%E - %E) * %E%> is not a mul
 msgstr "недійсний не-прямокутний крок циклу OpenMP; %<(%E - %E) * %E%> не є кратним кроку %d циклу %qE"
 
 #: omp-general.cc:1283
-#, fuzzy, gcc-internal-format
-#| msgid "array size expression is not supported yet"
+#, gcc-internal-format
 msgid "%<target_device%> selector set is not supported yet"
-msgstr "вираз розміру масиву ще не підтримується"
+msgstr "набір селекторів %<target_device%> ще не підтримується"
 
 #: omp-general.cc:1288
 #, gcc-internal-format
@@ -29549,10 +29359,9 @@ msgid "OpenMP runtime API call %qD in a region with %<device(ancestor)%> clause"
 msgstr "Виклик API OpenMP %qD у регіоні з замиканням %<device(ancestor)%>"
 
 #: omp-low.cc:9791
-#, fuzzy, gcc-internal-format
-#| msgid "ignoring sink clause with offset that is not a multiple of the loop step"
+#, gcc-internal-format
 msgid "ignoring %<sink%> clause with offset that is not a multiple of the loop step"
-msgstr "ігнорування замикання sink з зміщенням, яке не є кратним кроку циклу"
+msgstr "ігнорування умови %<sink%> з зсувом, який не є кратним кроку циклу"
 
 #: omp-low.cc:9814
 #, gcc-internal-format
@@ -29912,12 +29721,12 @@ msgstr "якорі розділів повинні бути вимкнені, к
 #: opts.cc:1105
 #, gcc-internal-format
 msgid "%<-ftrivial-auto-var-init=zero%> is not enabled by %<-fhardened%> because it was specified on the command line"
-msgstr ""
+msgstr "%<-ftrivial-auto-var-init=zero%> не увімкнено %<-fhardened%>, оскільки було задано в командному рядку"
 
 #: opts.cc:1155
 #, gcc-internal-format
 msgid "%<-fstack-protector-strong%> is not enabled by %<-fhardened%> because it was specified on the command line"
-msgstr ""
+msgstr "%<-fstack-protector-strong%> не увімкнено %<-fhardened%>, оскільки було задано в командному рядку"
 
 #: opts.cc:1200
 #, gcc-internal-format
@@ -31064,16 +30873,14 @@ msgid "global destructors not supported on this target"
 msgstr "глобальні деструктори не підтримуються на цій платформі"
 
 #: targhooks.cc:1810
-#, fuzzy, gcc-internal-format
-#| msgid "target attribute is not supported on this machine"
+#, gcc-internal-format
 msgid "%<target%> attribute is not supported on this machine"
-msgstr "атрибут цільової платформи не підтримується на цій машині"
+msgstr "атрибут %<target%> не підтримується на цій машині"
 
 #: targhooks.cc:1822
-#, fuzzy, gcc-internal-format
-#| msgid "target attribute is not supported on this machine"
+#, gcc-internal-format
 msgid "%<target_version%> attribute is not supported on this machine"
-msgstr "атрибут цільової платформи не підтримується на цій машині"
+msgstr "атрибут %<target_version%> не підтримується на цій машині"
 
 #: targhooks.cc:1836
 #, gcc-internal-format
@@ -31221,10 +31028,9 @@ msgid "%<-fassociative-math%> disabled; other options take precedence"
 msgstr "%<-fassociative-math%> вимкнено; інші параметри мають пріоритет"
 
 #: toplev.cc:1578
-#, fuzzy, gcc-internal-format
-#| msgid "%<-fdata-sections%> not supported for this target"
+#, gcc-internal-format
 msgid "%<-fhardened%> not supported for this target"
-msgstr "%<-fdata-sections%> не підтримується для цільової системи"
+msgstr "%<-fhardened%> не підтримується для цієї мети"
 
 #: toplev.cc:1587
 #, gcc-internal-format
@@ -31234,7 +31040,7 @@ msgstr "%<-fstack-clash-protection%> не підтримується на ціл
 #: toplev.cc:1600
 #, gcc-internal-format
 msgid "%<-fstack-clash-protection%> is not enabled by %<-fhardened%> because %<-fstack-check%> was specified on the command line"
-msgstr ""
+msgstr "%<-fstack-clash-protection%> не увімкнено %<-fhardened%>, оскільки %<-fstack-check%> було вказано у командному рядку"
 
 #: toplev.cc:1610
 #, gcc-internal-format
@@ -31492,10 +31298,9 @@ msgid "%qs in gimple IL"
 msgstr "%qs в GIMPLE-IL"
 
 #: tree-cfg.cc:3361
-#, fuzzy, gcc-internal-format
-#| msgid "used struct type value where scalar is required"
+#, gcc-internal-format
 msgid "%qs as base where non-register is required"
-msgstr "використано значення типу «struct», де потрібний скаляр"
+msgstr "%qs як база, де потрібна нерегістрова змінна"
 
 #: tree-cfg.cc:3376
 #, gcc-internal-format
@@ -31769,10 +31574,9 @@ msgid "invalid operand in %qs"
 msgstr "недійсний операнд в %qs"
 
 #: tree-cfg.cc:4680
-#, fuzzy, gcc-internal-format
-#| msgid "invalid argument in option %qs"
+#, gcc-internal-format
 msgid "invalid %qs size argument in load"
-msgstr "недійсний аргумент в опції %qs"
+msgstr "недійсний розмір аргументу %qs у завантаженні"
 
 #: tree-cfg.cc:4699 tree-cfg.cc:4725
 #, gcc-internal-format
@@ -31990,33 +31794,29 @@ msgid "fallthru to exit from bb %d"
 msgstr "перехід до виходу з блоку бази %d"
 
 #: tree-cfg.cc:5711
-#, fuzzy, gcc-internal-format
-#| msgid "extra brace group at end of initializer"
+#, gcc-internal-format
 msgid "entry block count not initialized"
-msgstr "додаткова група фігурних дужок в кінці ініціалізатора"
+msgstr "кількість вхідних блоків не ініціалізована"
 
 #: tree-cfg.cc:5717
-#, fuzzy, gcc-internal-format
-#| msgid "extra brace group at end of initializer"
+#, gcc-internal-format
 msgid "exit block count not initialized"
-msgstr "додаткова група фігурних дужок в кінці ініціалізатора"
+msgstr "кількість вихідних блоків не ініціалізована"
 
 #: tree-cfg.cc:5724
 #, gcc-internal-format
 msgid "probability of edge from entry block not initialized"
-msgstr ""
+msgstr "Ймовірно не ініціалізоване ребро з блоку входу"
 
 #: tree-cfg.cc:5739
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "%qE is not initialized"
+#, gcc-internal-format, gfc-internal-format
 msgid "count of bb %d not initialized"
-msgstr "%qE не ініціалізовано"
+msgstr "кількість bb %d не ініціалізована"
 
 #: tree-cfg.cc:5745
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Uninitialized probability of edge %i->%i"
+#, gcc-internal-format, gfc-internal-format
 msgid "probability of edge %d->%d not initialized"
-msgstr "Незініціалізована ймовірність ребра %i->%i"
+msgstr "ймовірність ребра %d->%d не ініціалізована"
 
 #: tree-cfg.cc:5765
 #, gcc-internal-format
@@ -32049,16 +31849,14 @@ msgid "label %qD in the middle of basic block %d"
 msgstr "мітка %qD посередині базового блоку %d"
 
 #: tree-cfg.cc:5830
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "returns_twice call is %s in basic block %d"
+#, gcc-internal-format, gfc-internal-format
 msgid "returns_twice call is not last in basic block %d"
-msgstr "виклик returns_twice є %s в базовому блоку %d"
+msgstr "виклик returns_twice не є останнім в основному блоку %d"
 
 #: tree-cfg.cc:5839
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "returns_twice call is %s in basic block %d"
+#, gcc-internal-format, gfc-internal-format
 msgid "returns_twice call is not first in basic block %d"
-msgstr "виклик returns_twice є %s в базовому блоку %d"
+msgstr "виклик returns_twice не є першим в основному блоку %d"
 
 #: tree-cfg.cc:5871
 #, gcc-internal-format, gfc-internal-format
@@ -32305,7 +32103,7 @@ msgstr "%s з %s викликається в %s"
 #: tree-profile.cc:899
 #, gcc-internal-format, gfc-internal-format
 msgid "Too many conditions (found %u); giving up coverage"
-msgstr ""
+msgstr "Забагато умов (знайдено %u); відмова від тестування покриття"
 
 #: tree-profile.cc:1757
 #, gcc-internal-format
@@ -33344,10 +33142,9 @@ msgid "initializer for floating value is not a floating constant"
 msgstr "ініціалізатор для значення з плаваючою комою не є плаваючою константою"
 
 #: varasm.cc:5342
-#, fuzzy, gcc-internal-format
-#| msgid "initializer for floating value is not a floating constant"
+#, gcc-internal-format
 msgid "initializer for %<_BitInt(%d)%> value is not an integer constant"
-msgstr "ініціалізатор для значення з плаваючою комою не є плаваючою константою"
+msgstr "ініціалізатор для значення %<_BitInt(%d)%> не є константою типу цілого"
 
 #: varasm.cc:5725
 #, gcc-internal-format
@@ -33541,28 +33338,24 @@ msgid "%qE attribute with unsupported boolean precision"
 msgstr "Атрибут %qE з непідтримуваною точністю для булевого типу"
 
 #: c-family/c-attribs.cc:1059
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute only supported on boolean types"
+#, gcc-internal-format
 msgid "%qE attribute only supported in C"
-msgstr "Атрибут %qE підтримується лише для булевих типів"
+msgstr "атрибут %qE підтримується тільки в мові C"
 
 #: c-family/c-attribs.cc:1066
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute only supported on boolean types"
+#, gcc-internal-format
 msgid "%qE attribute only supported on integral types"
-msgstr "Атрибут %qE підтримується лише для булевих типів"
+msgstr "атрибут %qE підтримується тільки для цілочисельних типів"
 
 #: c-family/c-attribs.cc:1087 c-family/c-attribs.cc:1103
-#, fuzzy, gcc-internal-format
-#| msgid "overflow in conversion from %qT to %qT changes value from %qE to %qE"
+#, gcc-internal-format
 msgid "overflows in conversion from %qT to %qT changes value from %qE to %qE"
-msgstr "переповнення при перетворенні з %qT на %qT змінює значення з %qE на %qE"
+msgstr "переповнення при конверсії з %qT до %qT змінює значення з %qE на %qE"
 
 #: c-family/c-attribs.cc:1112
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute argument value %qE refers to parameter type %qT"
+#, gcc-internal-format
 msgid "%qE attribute requires different values for %<false%> and %<true%> for type %qT"
-msgstr "Значення аргументу атрибуту %qE %qE посилається на тип параметра %qT"
+msgstr "%qE атрибут вимагає різних значень для %<false%> та %<true%> для типу %qT"
 
 #: c-family/c-attribs.cc:1152
 #, gcc-internal-format
@@ -33581,28 +33374,24 @@ msgid "%qE argument not a string"
 msgstr "Аргумент %qE не є рядком"
 
 #: c-family/c-attribs.cc:1555 ada/gcc-interface/utils.cc:6793
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute ignored on objects of type %qT"
+#, gcc-internal-format
 msgid "%qE attribute ignored because of argument %qE"
-msgstr "Атрибут %qE ігнорується на обʼєктах типу %qT"
+msgstr "атрибут %qE ігнорується через аргумент %qE"
 
 #: c-family/c-attribs.cc:1576 ada/gcc-interface/utils.cc:6814
-#, fuzzy, gcc-internal-format
-#| msgid "ignoring attribute %qE because it conflicts with attribute %qs"
+#, gcc-internal-format
 msgid "ignoring attribute %qE because of excess arguments starting at %qE"
-msgstr "атрибут %qE ігнорується, оскільки він конфліктує з атрибутом %qs"
+msgstr "ігнорування атрибуту %qE через надлишкові аргументи, починаючи з %qE"
 
 #: c-family/c-attribs.cc:1590 ada/gcc-interface/utils.cc:6828
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute does not apply to types"
+#, gcc-internal-format
 msgid "attribute %qE does not apply to elements of non-scalar type %qT"
-msgstr "атрибут %qE не застосовується до типів"
+msgstr "атрибут %qE не застосовується до елементів нескалярного типу %qT"
 
 #: c-family/c-attribs.cc:1595 ada/gcc-interface/utils.cc:6833
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute does not apply to types"
+#, gcc-internal-format
 msgid "attribute %qE does not apply to fields of aggregate type %qT"
-msgstr "атрибут %qE не застосовується до типів"
+msgstr "атрибут %qE не застосовується до полів агрегатного типу %qT"
 
 #: c-family/c-attribs.cc:1661
 #, gcc-internal-format
@@ -34391,10 +34180,9 @@ msgid "%qE cannot be applied to non-pointer type %qT"
 msgstr "атрибут %qE не може бути застосований до типу %qT, який не є вказівником"
 
 #: c-family/c-attribs.cc:6247
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute argument %qE is not recognised"
+#, gcc-internal-format
 msgid "%qE attribute argument %qE is not recognized"
-msgstr "аргумент атрибута %qE, %qE, не розпізнано"
+msgstr "аргумент атрибуту %qE не розпізнається: %qE"
 
 #: c-family/c-attribs.cc:6262
 #, gcc-internal-format
@@ -34833,16 +34621,14 @@ msgid "argument %u in call to function %qE has pointer to %qs type (%qT)"
 msgstr "аргумент %u у виклику функції %qE є вказівником на тип %qs (%qT)"
 
 #: c-family/c-common.cc:6536 c-family/c-common.cc:6621
-#, fuzzy, gcc-internal-format
-#| msgid "argument 3 in call to function %qE has enumerated type"
+#, gcc-internal-format
 msgid "argument %u in call to function %qE has enumerated type"
-msgstr "аргумент 3 у виклику функції %qE є типом з перелічуванням"
+msgstr "аргумент %u у виклику функції %qE має перерахований тип"
 
 #: c-family/c-common.cc:6542 c-family/c-common.cc:6627
-#, fuzzy, gcc-internal-format
-#| msgid "argument 3 in call to function %qE has boolean type"
+#, gcc-internal-format
 msgid "argument %u in call to function %qE has boolean type"
-msgstr "аргумент 3 у виклику функції %qE має тип boolean"
+msgstr "аргумент %u у виклику функції %qE має булевий тип"
 
 #: c-family/c-common.cc:6555
 #, gcc-internal-format
@@ -34855,22 +34641,19 @@ msgid "argument %u in call to function %qE points to incomplete type"
 msgstr "аргумент %u у виклику функції %qE посилається на неповний тип"
 
 #: c-family/c-common.cc:6605
-#, fuzzy, gcc-internal-format
-#| msgid "argument %u in call to function %qE does not have pointer type"
+#, gcc-internal-format
 msgid "argument %u in call to function %qE does not have %<int%> type"
-msgstr "аргумент %u у виклику функції %qE не має типу вказівника"
+msgstr "аргумент %u у виклику функції %qE не має типу %<int%>"
 
 #: c-family/c-common.cc:6636
-#, fuzzy, gcc-internal-format
-#| msgid "argument 3 in call to function %qE has enumerated type"
+#, gcc-internal-format
 msgid "argument 1 in call to function %qE has unsigned type"
-msgstr "аргумент 3 у виклику функції %qE є типом з перелічуванням"
+msgstr "аргумент 1 у виклику функції %qE має беззнаковий тип"
 
 #: c-family/c-common.cc:6643
-#, fuzzy, gcc-internal-format
-#| msgid "argument 3 in call to function %qE has enumerated type"
+#, gcc-internal-format
 msgid "argument 1 in call to function %qE has signed type"
-msgstr "аргумент 3 у виклику функції %qE є типом з перелічуванням"
+msgstr "Аргумент 1 у виклику функції %qE має знаковий тип"
 
 #: c-family/c-common.cc:6906 rust/backend/rust-tree.cc:3601
 #, gcc-internal-format
@@ -35670,22 +35453,19 @@ msgid "stray %<\\%o%> in program"
 msgstr "зайвий %<\\%o%> в програмі"
 
 #: c-family/c-lex.cc:1034
-#, fuzzy, gcc-internal-format
-#| msgid "integer constant is too large for %<unsigned long%> type"
+#, gcc-internal-format
 msgid "integer constant is too large for %<unsigned _BitInt(%d)%> type"
-msgstr "цілочисельна константа занадто велика для типу %<unsigned long%>"
+msgstr "ціле число завелике для типу %<unsigned _BitInt(%d)%>"
 
 #: c-family/c-lex.cc:1037
-#, fuzzy, gcc-internal-format
-#| msgid "integer constant is too large for %<unsigned long%> type"
+#, gcc-internal-format
 msgid "integer constant is too large for %<_BitInt(%d)%> type"
-msgstr "цілочисельна константа занадто велика для типу %<unsigned long%>"
+msgstr "ціле число завелике для типу %<_BitInt(%d)%>"
 
 #: c-family/c-lex.cc:1045 c/c-decl.cc:12737
-#, fuzzy, gcc-internal-format
-#| msgid "%<__int%d%> is not supported on this target"
+#, gcc-internal-format
 msgid "%<_BitInt(%d)%> is not supported on this target"
-msgstr "%<__int%d%> не підтримується на цій платформі"
+msgstr "%<_BitInt(%d)%> не підтримується на цій платформі"
 
 #: c-family/c-lex.cc:1097
 #, gcc-internal-format
@@ -35723,10 +35503,9 @@ msgid "non-standard suffix on floating constant"
 msgstr "нестандартний суфікс на плаваючій константі"
 
 #: c-family/c-lex.cc:1243 c-family/c-lex.cc:1247 c-family/c-lex.cc:1252
-#, fuzzy, gcc-internal-format
-#| msgid "non-standard suffix on floating constant"
+#, gcc-internal-format
 msgid "non-standard suffix on floating constant before C23"
-msgstr "нестандартний суфікс на плаваючій константі"
+msgstr "нестандартний суфікс у плаваючій константі перед C23"
 
 #: c-family/c-lex.cc:1259
 #, gcc-internal-format
@@ -35906,24 +35685,22 @@ msgstr "два різних зовнішніх ітераційних змінн
 #: c-family/c-omp.cc:1820
 #, gcc-internal-format
 msgid "variable %qD used as loop variable is bound in intervening code"
-msgstr ""
+msgstr "змінна %qD, що використовується як змінна циклу, прив'язана в проміжному коді"
 
 #: c-family/c-omp.cc:1824
-#, fuzzy, gcc-internal-format
-#| msgid "variable %qD has initializer but incomplete type"
+#, gcc-internal-format
 msgid "variable %qD used in initializer is bound in intervening code"
-msgstr "змінна %qD має ініціалізатор, але неповний тип"
+msgstr "змінна %qD, використовувана в ініціалізаторі, прив'язана у проміжному коді"
 
 #: c-family/c-omp.cc:1828
-#, fuzzy, gcc-internal-format
-#| msgid "register variable %qD used in nested function"
+#, gcc-internal-format
 msgid "variable %qD used in end test is bound in intervening code"
-msgstr "зареєстрована змінна %qD використовується у вкладеній функції"
+msgstr "змінна %qD, використовувана в кінцевій перевірці, прив'язана у проміжному коді"
 
 #: c-family/c-omp.cc:1832
 #, gcc-internal-format
 msgid "variable %qD used in increment expression is bound in intervening code"
-msgstr ""
+msgstr "Змінна %qD, що використовується у виразі інкременту, прив'язана в проміжному коді"
 
 #: c-family/c-omp.cc:2436
 #, gcc-internal-format
@@ -35984,7 +35761,7 @@ msgstr "застаріла опція %<-I-%> використовується,
 #: c-family/c-opts.cc:373
 #, gcc-internal-format
 msgid "%<-fdeps-format=%> unknown format %<%s%>"
-msgstr ""
+msgstr "%<-fdeps-format=%> невідомий формат %<%s%>"
 
 #: c-family/c-opts.cc:455
 #, gcc-internal-format
@@ -36059,7 +35836,7 @@ msgstr "зовнішні функції ініціалізації TLS не пі
 #: c-family/c-opts.cc:1149
 #, gcc-internal-format
 msgid "%<-fconcepts-ts%> is deprecated and will be removed in GCC 15; please convert your code to C++20 concepts"
-msgstr ""
+msgstr "%<-fconcepts-ts%> застаріло і буде видалено в GCC 15; будь ласка, перепишіть ваш код на концепції C++20"
 
 #: c-family/c-opts.cc:1158
 #, gcc-internal-format
@@ -36084,7 +35861,7 @@ msgstr "не вдалося відкрити файл залежностей %s:
 #: c-family/c-opts.cc:1381
 #, gcc-internal-format
 msgid "%<-MF%> and %<-fdeps-file=%> cannot share an output file %s: %m"
-msgstr ""
+msgstr "%<-MF%> і %<-fdeps-file=%> не можуть писати в один вихідний файл %s: %m"
 
 #: c-family/c-opts.cc:1391
 #, gcc-internal-format
@@ -36119,17 +35896,17 @@ msgstr "%<-fdirectives-only%> несумісний з %<-traditional%>"
 #: c-family/c-opts.cc:1634
 #, gcc-internal-format
 msgid "%<_FORTIFY_SOURCE%> is not enabled by %<-fhardened%> because optimizations are turned off"
-msgstr ""
+msgstr "%<_FORTIFY_SOURCE%> не включено через %<-fhardened%>, оскільки оптимізації вимкнені"
 
 #: c-family/c-opts.cc:1638
 #, gcc-internal-format
 msgid "%<_FORTIFY_SOURCE%> is not enabled by %<-fhardened%> because it was specified in %<-D%> or %<-U%>"
-msgstr ""
+msgstr "%<_FORTIFY_SOURCE%> не включено через %<-fhardened%>, оскільки воно було вказано в %<-D%> або %<-U%>"
 
 #: c-family/c-opts.cc:1644
 #, gcc-internal-format
 msgid "%<_GLIBCXX_ASSERTIONS%> is not enabled by %<-fhardened%> because it was specified in %<-D%> or %<-U%>"
-msgstr ""
+msgstr "%<_GLIBCXX_ASSERTIONS%> не включено через %<-fhardened%>, оскільки воно було вказано в %<-D%> або %<-U%>"
 
 #: c-family/c-opts.cc:1768
 #, gcc-internal-format
@@ -36422,16 +36199,14 @@ msgid "%<#pragma GCC optimize%> string is badly formed"
 msgstr "Рядок %<#pragma GCC optimize%> має неправильний формат"
 
 #: c-family/c-pragma.cc:1211
-#, fuzzy, gcc-internal-format
-#| msgid "junk at end of %<#pragma push_options%>"
+#, gcc-internal-format
 msgid "junk at end of %<#pragma GCC push_options%>"
-msgstr "Сміття в кінці %<#pragma push_options%>"
+msgstr "непотрібний символ у кінці %<#pragma GCC push_options%>"
 
 #: c-family/c-pragma.cc:1248
-#, fuzzy, gcc-internal-format
-#| msgid "junk at end of %<#pragma pop_options%>"
+#, gcc-internal-format
 msgid "junk at end of %<#pragma GCC pop_options%>"
-msgstr "Сміття в кінці %<#pragma pop_options%>"
+msgstr "непотрібний символ у кінці %<#pragma GCC pop_options%>"
 
 #: c-family/c-pragma.cc:1255
 #, gcc-internal-format
@@ -37224,21 +36999,19 @@ msgid "%<memset%> used with length equal to number of elements without multiplic
 msgstr "%<memset%> використовується з довжиною, рівною кількості елементів без множення на розмір елемента"
 
 #: c-family/c-warn.cc:2290
-#, fuzzy, gcc-internal-format
-#| msgid "interrupt service routine can only have a pointer argument and an optional integer argument"
+#, gcc-internal-format
 msgid "%qD sizes specified with %<sizeof%> in the earlier argument and not in the later argument"
-msgstr "переривання службового режиму може мати лише аргумент вказівника та необовʼязковий аргумент цілого числа"
+msgstr "Розміри %qD, вказані з використанням %<sizeof%> у ранішому аргументі, не вказані у пізнішому аргументі"
 
 #: c-family/c-warn.cc:2292
 #, gcc-internal-format
 msgid "earlier argument should specify number of elements, later size of each element"
-msgstr ""
+msgstr "Раніший аргумент повинен вказувати кількість елементів, а пізніше - розмір кожного елемента"
 
 #: c-family/c-warn.cc:2331
-#, fuzzy, gcc-internal-format
-#| msgid "floating point overflow in expression %qE of type %qT results in %qE"
+#, gcc-internal-format
 msgid "allocation of insufficient size %qE for type %qT with size %qE"
-msgstr "переповнення числа з плаваючою комою в виразі %qE типу %qT призводить до %qE"
+msgstr "виділення недостатнього розміру %qE для типу %qT з розміром %qE"
 
 #: c-family/c-warn.cc:2408
 #, gcc-internal-format
@@ -37475,16 +37248,14 @@ msgid "comparison between two arrays"
 msgstr "порівняння між двома масивами"
 
 #: c-family/c-warn.cc:3832
-#, fuzzy, gcc-internal-format
-#| msgid "use unary %<+%> which decays operands to pointers or %<&%D[0] %s &%D[0]%> to compare the addresses"
+#, gcc-internal-format
 msgid "use unary %<+%> which decays operands to pointers or %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
-msgstr "використовуйте унарний оператор %<+%>, який перетворює операнди в вказівники, або %<&%D[0] %s &%D[0]%>, щоб порівняти адреси"
+msgstr "використовуйте унарний %<+%>, який розпадає операнди на вказівники, або %<&%s%E%s[0] %s &%s%E%s[0]%>, щоб порівняти адреси"
 
 #: c-family/c-warn.cc:3839
-#, fuzzy, gcc-internal-format
-#| msgid "use %<&%D[0] %s &%D[0]%> to compare the addresses"
+#, gcc-internal-format
 msgid "use %<&%s%E%s[0] %s &%s%E%s[0]%> to compare the addresses"
-msgstr "використовуйте %<&%D[0] %s &%D[0]%>, щоб порівняти адреси"
+msgstr "використовуйте %<&%s%E%s[0] %s &%s%E%s[0]%>, щоб порівняти адреси"
 
 #: c-family/c-warn.cc:3901
 #, gcc-internal-format
@@ -37522,10 +37293,9 @@ msgid "too many input files"
 msgstr "забагато вхідних файлів"
 
 #: c-family/known-headers.cc:322
-#, fuzzy, gcc-internal-format
-#| msgid "%qs is defined in header %qs; did you forget to %<#include %s%>?"
+#, gcc-internal-format
 msgid "%qs is defined in header %qs; this is probably fixable by adding %<#include %s%>"
-msgstr "%qs визначено в заголовку %qs; ви забули %<#include %s%>?"
+msgstr "%qs визначено в заголовку %qs; це, ймовірно, можна виправити додаванням %<#include %s%>"
 
 #: common/config/aarch64/aarch64-common.cc:415 config/aarch64/aarch64.cc:18539
 #, gcc-internal-format
@@ -37722,27 +37492,24 @@ msgid "%<-march=%s%>: extension %qs appear more than one time"
 msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
 
 #: common/config/riscv/riscv-common.cc:683
-#, fuzzy, gcc-internal-format
-#| msgid "%<-march=%s%>: extension %qs appear more than one time"
+#, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs is unsupported standard single letter extension"
-msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
+msgstr "%<-march=%s%>: розширення %qs є непідтримуваним стандартним однолітерним розширенням"
 
 #: common/config/riscv/riscv-common.cc:691
-#, fuzzy, gcc-internal-format
-#| msgid "%<-march=%s%>: extension %qs appear more than one time"
+#, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'z' but is unsupported standard extension"
-msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
+msgstr "%<-march=%s%>: розширення %qs починається з 'z', але є непідтримуваним стандартним розширенням"
 
 #: common/config/riscv/riscv-common.cc:699
 #, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 's' but is unsupported standard supervisor extension"
-msgstr ""
+msgstr "%<-march=%s%>: розширення %qs починається з 's', але це непідтримуване стандартне розширення супервізора"
 
 #: common/config/riscv/riscv-common.cc:707
-#, fuzzy, gcc-internal-format
-#| msgid "%<-march=%s%>: extension %qs appear more than one time"
+#, gcc-internal-format
 msgid "%<-march=%s%>: extension %qs starts with 'x' but is unsupported non-standard extension"
-msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
+msgstr "%<-march=%s%>: розширення %qs починається з 'x', але є непідтримуваним нестандартним розширенням"
 
 #: common/config/riscv/riscv-common.cc:955
 #, gcc-internal-format
@@ -37775,16 +37542,14 @@ msgid "%<-march=%s%>: first ISA subset must be %<e%>, %<i%> or %<g%>"
 msgstr "%<-march=%s%>: перший піднабір ISA повинен бути %<e%>, %<i%> або %<g%>"
 
 #: common/config/riscv/riscv-common.cc:1097
-#, fuzzy, gcc-internal-format
-#| msgid "%<-march=%s%>: expect number after %<%dp%>"
+#, gcc-internal-format
 msgid "%<-march=%s%>: Not single-letter extension. %<%c%>"
-msgstr "%<-march=%s%>: після %<%dp%> очікується число"
+msgstr "%<-march=%s%>: Не однолітерне розширення. %<%c%>"
 
 #: common/config/riscv/riscv-common.cc:1228
-#, fuzzy, gcc-internal-format
-#| msgid "%<-march=%s%>: extension %qs appear more than one time"
+#, gcc-internal-format
 msgid "%<-march=%s%>: zcf extension supports in rv32 only"
-msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
+msgstr "%<-march=%s%>: розширення zcf підтримується тільки в rv32"
 
 #: common/config/riscv/riscv-common.cc:1233
 #, gcc-internal-format
@@ -37792,28 +37557,24 @@ msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
 msgstr "%<-march=%s%>: конфлікт z*inx з розширеннями з плаваючою комою"
 
 #: common/config/riscv/riscv-common.cc:1239
-#, fuzzy, gcc-internal-format
-#| msgid "%<-march=%s%>: extension %qs appear more than one time"
+#, gcc-internal-format
 msgid "%<-march=%s%>: h extension requires i extension"
-msgstr "%<-march=%s%>: розширення %qs зустрічається більше одного разу"
+msgstr "%<-march=%s%>: розширення h вимагає розширення i"
 
 #: common/config/riscv/riscv-common.cc:1244
-#, fuzzy, gcc-internal-format
-#| msgid "%<-mcpu=%s%> conflicts with %<-march=%s%>"
+#, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmt"
-msgstr "%<-mcpu=%s%> конфліктує з %<-march=%s%>"
+msgstr "%<-march=%s%>: zcd конфліктує з zcmt"
 
 #: common/config/riscv/riscv-common.cc:1246
-#, fuzzy, gcc-internal-format
-#| msgid "%<-mcpu=%s%> conflicts with %<-march=%s%>"
+#, gcc-internal-format
 msgid "%<-march=%s%>: zcd conflicts with zcmp"
-msgstr "%<-mcpu=%s%> конфліктує з %<-march=%s%>"
+msgstr "%<-march=%s%>: zcd конфліктує з zcmp"
 
 #: common/config/riscv/riscv-common.cc:1255
-#, fuzzy, gcc-internal-format
-#| msgid "%<-march=%s%>: z*inx conflicts with floating-point extensions"
+#, gcc-internal-format
 msgid "%<-march=%s%>: xtheadvector conflicts with vector extension or its sub-extensions"
-msgstr "%<-march=%s%>: конфлікт z*inx з розширеннями з плаваючою комою"
+msgstr "%<-march=%s%>: xtheadvector конфліктує з векторним розширенням або його підрозширеннями"
 
 #: common/config/riscv/riscv-common.cc:1352
 #, gcc-internal-format
@@ -37826,10 +37587,9 @@ msgid "%<-march=%s%>: %s must separate with %<_%>"
 msgstr "%<-march=%s%>: %s повинно бути розділено знаком %<_%>"
 
 #: common/config/riscv/riscv-common.cc:1426
-#, fuzzy, gcc-internal-format
-#| msgid "%<-march=%s%>: name of %s must be more than 1 letter"
+#, gcc-internal-format
 msgid "%<-march=%s%>: i, e or g must be the first extension"
-msgstr "%<-march=%s%>: імʼя %s повинно бути більше, ніж 1 літера"
+msgstr "%<-march=%s%>: i, e або g повинні бути першим розширенням"
 
 #: common/config/riscv/riscv-common.cc:1759
 #, gcc-internal-format
@@ -38048,10 +37808,9 @@ msgid "%<-gsplit-dwarf%> is not supported on this platform, ignored"
 msgstr "%<-gsplit-dwarf%> не підтримується на цій платформі, проігноровано"
 
 #: config/darwin.cc:3449
-#, fuzzy, gcc-internal-format
-#| msgid "%qs is not supported, now cmodel is set to %qs"
+#, gcc-internal-format
 msgid "%<-g3%> is not supported by the debug linker in use (set to 2)"
-msgstr "%qs не підтримується, зараз cmodel встановлено на %qs"
+msgstr "%<-g3%> не підтримується використовуваним зв'язувачем налагоджувача (встановлено в 2)"
 
 #: config/darwin.cc:3541
 #, gcc-internal-format
@@ -38164,10 +37923,9 @@ msgid "PIC is only supported for RTPs"
 msgstr "PIC підтримується лише для RTP"
 
 #: config/aarch64/aarch64-builtins.cc:2123
-#, fuzzy, gcc-internal-format
-#| msgid "argument %d must be an unsigned literal"
+#, gcc-internal-format
 msgid "first argument to %qD must be a string literal"
-msgstr "аргумент %d повинен бути беззнаковим літералом"
+msgstr "перший аргумент для %qD повинен бути літералом рядка"
 
 #: config/aarch64/aarch64-builtins.cc:2254
 #: config/aarch64/aarch64-builtins.cc:2488 config/arm/arm-builtins.cc:3146
@@ -38193,31 +37951,27 @@ msgstr "аргумент повинен бути 16-бітною констан
 #: config/aarch64/aarch64-builtins.cc:2701
 #, gcc-internal-format
 msgid "128-bit system register support requires the %<d128%> extension"
-msgstr ""
+msgstr "Підтримка 128-бітних системних регістрів вимагає розширення %<d128%>"
 
 #: config/aarch64/aarch64-builtins.cc:2716
-#, fuzzy, gcc-internal-format
-#| msgid "invalid register name for %q+D"
+#, gcc-internal-format
 msgid "invalid system register name provided"
-msgstr "недійсне імʼя регістру для %q+D"
+msgstr "надано недійсну назву системного регістру"
 
 #: config/aarch64/aarch64-builtins.cc:2730
-#, fuzzy, gcc-internal-format
-#| msgid "invalid register name for %q+D"
+#, gcc-internal-format
 msgid "invalid system register name %qs"
-msgstr "недійсне імʼя регістру для %q+D"
+msgstr "недійсна назва системного регістра %qs"
 
 #: config/aarch64/aarch64-builtins.cc:2810
-#, fuzzy, gcc-internal-format
-#| msgid "for statement expected"
+#, gcc-internal-format
 msgid "Constant-type argument expected"
-msgstr "очікувалася конструкція for"
+msgstr "Очікується аргумент константного типу"
 
 #: config/aarch64/aarch64-builtins.cc:2816
-#, fuzzy, gcc-internal-format
-#| msgid "argument %d must be a constant immediate in range [0,15]"
+#, gcc-internal-format
 msgid "argument %d must be a constant immediate in range [%wd,%wd]"
-msgstr "аргумент %d повинен бути константою негайною в діапазоні [0,15]"
+msgstr "аргумент %d повинен бути константною негайною величиною в діапазоні [%wd,%wd]"
 
 #: config/aarch64/aarch64-builtins.cc:2895
 #, gcc-internal-format
@@ -38270,17 +38024,17 @@ msgstr "Функція ACLE %qD несумісна з використанням
 #: config/aarch64/aarch64-sve-builtins.cc:1133
 #, gcc-internal-format
 msgid "ACLE function %qD cannot be called when SME streaming mode is enabled"
-msgstr ""
+msgstr "ACLE функція %qD не може бути викликана коли включений потік SME"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1140
 #, gcc-internal-format
 msgid "ACLE function %qD can only be called when SME streaming mode is enabled"
-msgstr ""
+msgstr "ACLE функція %qD може бути викликана тільки коли включений потік SME."
 
 #: config/aarch64/aarch64-sve-builtins.cc:1147
 #, gcc-internal-format
 msgid "ACLE function %qD can only be called from a function that has %qs state"
-msgstr ""
+msgstr "ACLE функція %qD може бути викликана тільки з функції, яка має стан %qs"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1175
 #: config/arm/arm-mve-builtins.cc:571
@@ -38290,10 +38044,9 @@ msgid "argument %d of %qE must be an integer constant expression"
 msgstr "аргумент %d функції %qE повинен бути цілочисельним константним виразом"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1188
-#, fuzzy, gcc-internal-format
-#| msgid "passing %wd to argument %d of %qE, which expects either %wd or %wd"
+#, gcc-internal-format
 msgid "passing %wd to argument %d of %qE, which expects the value %wd"
-msgstr "передача %wd в аргумент %d %qE, який очікує або %wd або %wd"
+msgstr "передача %wd до аргументу %d функції %qE, яка очікує значення %wd"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1191
 #: config/arm/arm-mve-builtins.cc:583
@@ -38335,21 +38088,19 @@ msgstr[1] "передача одного вектора %qT в аргумент
 msgstr[2] "передача одного вектора %qT в аргумент %d %qE, який очікує кортеж з %d векторів"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1806
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT instead of the expected %qT to argument %d of %qE, after passing %qT to argument %d"
+#, gcc-internal-format
 msgid "passing tuple %qT to argument %d of %qE after passing single vector %qT to argument %d"
-msgstr "передача %qT замість очікуваного %qT до аргументу %d функції %qE, після передачі %qT до аргументу %d"
+msgstr "передача кортежу %qT до аргументу %d функції %qE після передачі одиничного вектора %qT до аргументу %d"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1811
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT instead of the expected %qT to argument %d of %qE, after passing %qT to argument %d"
+#, gcc-internal-format
 msgid "passing single vector %qT to argument %d of %qE after passing tuple %qT to argument %d"
-msgstr "передача %qT замість очікуваного %qT до аргументу %d функції %qE, після передачі %qT до аргументу %d"
+msgstr "передача одиничного вектора %qT до аргументу %d функції %qE після передачі кортежу %qT до аргументу %d"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1816
 #, gcc-internal-format
 msgid "passing mismatched tuple types %qT and %qT to arguments %d and %d of %qE"
-msgstr ""
+msgstr "передача несумісних типів кортежів %qT і %qT у якості аргументів %d і %d до %qE"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1827
 #: config/arm/arm-mve-builtins.cc:1104
@@ -38358,16 +38109,14 @@ msgid "%qE has no form that takes %qT arguments"
 msgstr "%qE не має форми, яка приймає аргументи %qT"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1888
-#, fuzzy, gcc-internal-format
-#| msgid "%qE has no form that takes %qT arguments"
+#, gcc-internal-format
 msgid "%qE has no form that takes %qT and %qT arguments"
-msgstr "%qE не має форми, яка приймає аргументи %qT"
+msgstr "у %qE немає форми, що приймає аргументи %qT і %qT"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1950
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects %qs or %qs"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which expects an %qs or %qs"
-msgstr "передача %qT в аргумент %d %qE, який очікує %qs або %qs"
+msgstr "передача %qT до аргументу %d функції %qE, яка очікує %qs або %qs"
 
 #: config/aarch64/aarch64-sve-builtins.cc:1981
 #, gcc-internal-format
@@ -38375,16 +38124,14 @@ msgid "passing %qT to argument %d of %qE, which expects a 32-bit or 64-bit integ
 msgstr "передача %qT в аргумент %d %qE, який очікує тип цілого числа 32 або 64 біт"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2000
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects a vector of %d-bit integers"
+#, gcc-internal-format
 msgid "passing %qT and %qT to arguments %d and %d of %qE, which expects a pair of 64-bit integers"
-msgstr "передача %qT в аргумент %d %qE, який очікує вектор цілочисельних %d біт"
+msgstr "передача %qT і %qT до аргументів %d і %d функції %qE, яка очікує пару 64-бітних цілих чисел"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2024
-#, fuzzy, gcc-internal-format
-#| msgid "size mismatch in argument %d of %qE"
+#, gcc-internal-format
 msgid "passing mismatched integer types %qT and %qT to arguments %d and %d of %qE"
-msgstr "невідповідність розміру в аргументі %d з %qE"
+msgstr "передача несумісних цілочисельних типів %qT і %qT до аргументів %d і %d функції %qE"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2045
 #: config/arm/arm-mve-builtins.cc:1157
@@ -38408,16 +38155,14 @@ msgid "passing %qT to argument %d of %qE, which expects a pointer to 32-bit or 6
 msgstr "передача %qT в аргумент %d %qE, який очікує вказівник на 32-бітні або 64-бітні елементи"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2107
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects a single SVE vector rather than a tuple"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which expects an SVE type rather than a scalar type"
-msgstr "передача %qT в аргумент %d %qE, який очікує один SVE вектор, а не кортеж"
+msgstr "передача %qT до аргументу %d функції %qE, яка очікує тип SVE замість скалярного типу"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2111
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects an SVE tuple type"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which expects an SVE type"
-msgstr "передача %qT в аргумент %d %qE, який очікує типу кортежу SVE"
+msgstr "передача %qT до аргументу %d функції %qE, яка очікує тип SVE"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2156
 #, gcc-internal-format
@@ -38425,10 +38170,9 @@ msgid "passing %qT to argument %d of %qE, which expects a vector of integers"
 msgstr "передача %qT в аргумент %d %qE, який очікує вектора цілочисельних"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2186
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects an SVE vector type"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which expects a 128 bit NEON vector type"
-msgstr "передача %qT в аргумент %d %qE, який очікує тип SVE вектора"
+msgstr "передача %qT до аргументу %d функції %qE, яка очікує тип вектора NEON з 128 біт"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2203
 #: config/aarch64/aarch64-sve-builtins.cc:2501
@@ -38445,12 +38189,12 @@ msgstr "передача %qT до аргументу %d функції %qE, як
 #: config/aarch64/aarch64-sve-builtins.cc:2266
 #, gcc-internal-format
 msgid "operations on multiple vectors must be predicated by %qs rather than %qs"
-msgstr ""
+msgstr "Операції над декількома векторами повинні визначатися за допомогою %qs, а не %qs"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2269
 #, gcc-internal-format
 msgid "operations on single vectors must be predicated by %qs rather than %qs"
-msgstr ""
+msgstr "операції над одиничними векторами повинні визначатися за допомогою %qs, а не %qs"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2285
 #: config/arm/arm-mve-builtins.cc:1248
@@ -38473,10 +38217,9 @@ msgid "passing %qT to argument %d of %qE, but argument %d had type %qT"
 msgstr "передача %qT до аргументу %d функції %qE, але аргумент %d має тип %qT"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2445
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, but argument %d had type %qT"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, but argument %d was a tuple of %qT"
-msgstr "передача %qT до аргументу %d функції %qE, але аргумент %d має тип %qT"
+msgstr "передача %qT до аргументу %d функції %qE, але аргумент %d був кортежем з %qT"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2469
 #: config/arm/arm-mve-builtins.cc:1384
@@ -38485,10 +38228,9 @@ msgid "passing %qT to argument %d of %qE, which expects a vector of %d-bit eleme
 msgstr "передача %qT до аргументу %d функції %qE, яка очікує вектор з елементів %d біт"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2474
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects a vector of %d-bit elements"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which expects vectors of %d-bit elements"
-msgstr "передача %qT до аргументу %d функції %qE, яка очікує вектор з елементів %d біт"
+msgstr "передача %qT до аргументу %d функції %qE, яка очікує вектори з елементів по %d біт"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2487
 #: config/arm/arm-mve-builtins.cc:1396
@@ -38499,18 +38241,16 @@ msgstr "передача %qT до аргументу %d функції %qE, як
 #. Translation note: could also be written "expects a tuple of
 #. signed integer vectors".
 #: config/aarch64/aarch64-sve-builtins.cc:2493
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects a vector of signed integers"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which expects vectors of signed integers"
-msgstr "передача %qT до аргументу %d функції %qE, яка очікує вектор зі знакових цілочисельних"
+msgstr "передача %qT до аргументу %d функції %qE, яка очікує вектори зі знакових цілих чисел"
 
 #. Translation note: could also be written "expects a tuple of
 #. unsigned integer vectors".
 #: config/aarch64/aarch64-sve-builtins.cc:2507
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects a vector of unsigned integers"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which expects vectors of unsigned integers"
-msgstr "передача %qT в аргумент %d функції %qE, яка очікує вектор беззнакових цілих чисел"
+msgstr "передача %qT в аргумент %d для %qE, який очікує вектори беззнакових цілих чисел"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2527
 #: config/arm/arm-mve-builtins.cc:1423
@@ -38537,10 +38277,9 @@ msgid "passing %qT to argument %d of %qE, which expects %qs"
 msgstr "передача %qT до аргументу %d функції %qE, яка очікує %qs"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2616
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects a scalar pointer"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which does not accept scalars for this combination of arguments"
-msgstr "передача %qT до аргументу %d функції %qE, яка очікує скалярний вказівник"
+msgstr "передача %qT в аргумент %d для %qE, який не приймає скаляри для цього поєднання аргументів"
 
 #: config/aarch64/aarch64-sve-builtins.cc:2632
 #: config/arm/arm-mve-builtins.cc:1556
@@ -38642,10 +38381,9 @@ msgid "passing %qT to argument %d of %qE, but its %qT form does not accept scala
 msgstr "передача %qT в аргумент %d %qE, але його форма %qT не приймає скаляри"
 
 #: config/aarch64/aarch64-sve-builtins.cc:3166
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, but its %qT form does not accept scalars"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, but its %qT form does not accept single vectors"
-msgstr "передача %qT в аргумент %d %qE, але його форма %qT не приймає скаляри"
+msgstr "передача %qT в аргумент %d для %qE, але його форма %qT не приймає одиничні вектори"
 
 #: config/aarch64/aarch64-sve-builtins.cc:4660
 #: config/arm/arm-mve-builtins.cc:466 config/arm/arm-mve-builtins.cc:491
@@ -38655,10 +38393,9 @@ msgid "duplicate definition of %qs"
 msgstr "подвійне визначення %qs"
 
 #: config/aarch64/aarch64-sve-builtins.cc:4717
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is defined with tls model %s"
+#, gcc-internal-format
 msgid "%qs defined without first defining %qs"
-msgstr "%qD визначено з моделлю tls %s"
+msgstr "%qs визначено без попереднього визначення %qs"
 
 #: config/aarch64/aarch64-sve-builtins.cc:4868
 #, gcc-internal-format
@@ -38742,16 +38479,14 @@ msgid "capture by copy of SVE type %qT"
 msgstr "захоплення копіюванням типу SVE %qT"
 
 #: config/aarch64/aarch64.cc:637
-#, fuzzy, gcc-internal-format
-#| msgid "third argument to function %qE must be a constant integer"
+#, gcc-internal-format
 msgid "the arguments to %qE must be constant strings"
-msgstr "третій аргумент функції %qE повинен бути цілою сталою"
+msgstr "аргументи для %qE повинні бути константними рядками"
 
 #: config/aarch64/aarch64.cc:645
-#, fuzzy, gcc-internal-format
-#| msgid "unrecognized string escape"
+#, gcc-internal-format
 msgid "unrecognized state string %qs"
-msgstr "нерозпізнаний рядковий екранування"
+msgstr "нерозпізнаний рядок стану %qs"
 
 #: config/aarch64/aarch64.cc:729
 #, gcc-internal-format
@@ -38761,19 +38496,17 @@ msgstr "атрибут %qE не може бути застосований до
 #: config/aarch64/aarch64.cc:756
 #, gcc-internal-format
 msgid "cannot create a new %qs scope since %qs is shared with callers"
-msgstr ""
+msgstr "неможливо створити новий обсяг %qs, оскільки %qs ділиться з викликами"
 
 #: config/aarch64/aarch64.cc:772
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute applies only to functions"
+#, gcc-internal-format
 msgid "%qE attribute applies only to function definitions"
-msgstr "атрибут %qE застосовується лише до функцій"
+msgstr "атрибут %qE застосовується тільки до визначень функцій"
 
 #: config/aarch64/aarch64.cc:818
-#, fuzzy, gcc-internal-format
-#| msgid "inconsistent because %qs"
+#, gcc-internal-format
 msgid "inconsistent attributes for state %qs"
-msgstr "неспівмірні через %qs"
+msgstr "несумісні атрибути для стану %qs"
 
 #: config/aarch64/aarch64.cc:1307
 #, gcc-internal-format
@@ -38825,10 +38558,9 @@ msgstr "передача параметра для аргументу типу %
 
 #: config/aarch64/aarch64.cc:7028 config/aarch64/aarch64.cc:7107
 #: config/aarch64/aarch64.cc:21328
-#, fuzzy, gcc-internal-format
-#| msgid "parameter passing for argument of type %qT changed in GCC 13.1"
+#, gcc-internal-format
 msgid "parameter passing for argument of type %qT changed in GCC 14.1"
-msgstr "передача параметра для аргументу типу %qT змінена в GCC 13.1"
+msgstr "передача параметрів для аргументу типу %qT змінилася в GCC 14.1"
 
 #: config/aarch64/aarch64.cc:7039 config/aarch64/aarch64.cc:7117
 #: config/aarch64/aarch64.cc:21336 config/arm/arm.cc:7342
@@ -38853,30 +38585,29 @@ msgid "stack probes for SVE frames"
 msgstr "перевірка стеку для фреймів SVE"
 
 #: config/aarch64/aarch64.cc:11149
-#, fuzzy, gcc-internal-format
-#| msgid "ACLE function %qD requires ISA extension %qs"
+#, gcc-internal-format
 msgid "calling a streaming function requires the ISA extension %qs"
-msgstr "Функція ACLE %qD вимагає розширення ISA %qs"
+msgstr "виклик потокової функції вимагає розширення ISA %qs"
 
 #: config/aarch64/aarch64.cc:11158 config/aarch64/aarch64.cc:11162
 #, gcc-internal-format
 msgid "call to a function that shares %qs state from a function that has no %qs state"
-msgstr ""
+msgstr "виклик функції, яка ділиться станом %qs, з функції, що не має стану %qs"
 
 #: config/aarch64/aarch64.cc:11165
 #, gcc-internal-format
 msgid "call to a function that shares SME state from a function that has no SME state"
-msgstr ""
+msgstr "виклик функції, яка ділиться станом SME, з функції, що не має стану SME"
 
 #: config/aarch64/aarch64.cc:11223
 #, gcc-internal-format
 msgid "call to a function that shares state other than %qs from a function that has %qs state"
-msgstr ""
+msgstr "виклик функції, яка ділиться станом, крім %qs, з функції, що має стан %qs"
 
 #: config/aarch64/aarch64.cc:11225
 #, gcc-internal-format
 msgid "use %<__arm_preserves(\"za\")%> if the callee preserves ZA"
-msgstr ""
+msgstr "використовуйте %<__arm_preserves(\"za\")%>, якщо функція, яку викликають, зберігає ZA."
 
 #: config/aarch64/aarch64.cc:17932
 #, gcc-internal-format
@@ -38936,16 +38667,14 @@ msgid "%<-fsanitize=shadow-call-stack%> requires %<-ffixed-x18%>"
 msgstr "%<-fsanitize=shadow-call-stack%> потребує %<-ffixed-x18%>"
 
 #: config/aarch64/aarch64.cc:18310
-#, fuzzy, gcc-internal-format
-#| msgid "ACLE function %qD requires ISA extension %qs"
+#, gcc-internal-format
 msgid "streaming functions require the ISA extension %qs"
-msgstr "Функція ACLE %qD вимагає розширення ISA %qs"
+msgstr "потокові функції вимагають розширення ISA %qs"
 
 #: config/aarch64/aarch64.cc:18312
-#, fuzzy, gcc-internal-format
-#| msgid "ACLE function %qD requires ISA extension %qs"
+#, gcc-internal-format
 msgid "functions with SME state require the ISA extension %qs"
-msgstr "Функція ACLE %qD вимагає розширення ISA %qs"
+msgstr "функції з станом SME вимагають розширення ISA %qs"
 
 #: config/aarch64/aarch64.cc:18406
 #, gcc-internal-format
@@ -38963,10 +38692,9 @@ msgid "missing cpu name in %<-mcpu=%s%>"
 msgstr "відсутнє імʼя процесора в %<-mcpu=%s%>"
 
 #: config/aarch64/aarch64.cc:18546
-#, fuzzy, gcc-internal-format
-#| msgid "did you mean %<-mcpu=%s%>?"
+#, gcc-internal-format
 msgid "did you mean %<-march=%s%>?"
-msgstr "ви мали на увазі %<-mcpu=%s%>?"
+msgstr "ви мали на увазі %<-march=%s%>?"
 
 #: config/aarch64/aarch64.cc:18549
 #, gcc-internal-format
@@ -39019,10 +38747,9 @@ msgid "unknown value %qs for %<-mtune%>"
 msgstr "невідоме значення %qs для %<-mtune%>"
 
 #: config/aarch64/aarch64.cc:18847
-#, fuzzy, gcc-internal-format
-#| msgid "switch %<-mcpu=%s%> conflicts with %<-march=%s%> switch"
+#, gcc-internal-format
 msgid "switch %<-mcpu=%s%> conflicts with %<-march=%s%> switch and resulted in options %<%s%> being added"
-msgstr "перемикач %<-mcpu=%s%> конфліктує з перемикачем %<-march=%s%>"
+msgstr "перемикач %<-mcpu=%s%> конфліктує з перемикачем %<-march=%s%> і призвело до додавання опцій %<%s%>"
 
 #: config/aarch64/aarch64.cc:18903
 #, gcc-internal-format
@@ -39045,10 +38772,9 @@ msgid "code model %qs not supported in ilp32 mode"
 msgstr "модель коду %qs не підтримується в режимі ilp32"
 
 #: config/aarch64/aarch64.cc:19084
-#, fuzzy, gcc-internal-format
-#| msgid "ACLE function %qD requires ISA extension %qs"
+#, gcc-internal-format
 msgid "functions with %qs state require the ISA extension %qs"
-msgstr "Функція ACLE %qD вимагає розширення ISA %qs"
+msgstr "функції з станом %qs вимагають розширення ISA %qs"
 
 #: config/aarch64/aarch64.cc:19187
 #, gcc-internal-format
@@ -39133,34 +38859,29 @@ msgid "malformed %<target(\"%s\")%> pragma or attribute"
 msgstr "некоректна прагма або атрибут %<target(\"%s\")%>"
 
 #: config/aarch64/aarch64.cc:19801
-#, fuzzy, gcc-internal-format
-#| msgid "attribute %<fallthrough%> specified multiple times"
+#, gcc-internal-format
 msgid "attribute %<target_version%> has multiple values"
-msgstr "атрибут %<fallthrough%> вказано кілька разів"
+msgstr "атрибут %<target_version%> має кілька значень"
 
 #: config/aarch64/aarch64.cc:19809
-#, fuzzy, gcc-internal-format
-#| msgid "attribute %<target%> argument not a string"
+#, gcc-internal-format
 msgid "attribute %<target_version%> argument not a string"
-msgstr "аргумент атрибуту %<target%> не є рядком"
+msgstr "аргумент атрибуту %<target_version%> не є рядком"
 
 #: config/aarch64/aarch64.cc:19831
-#, fuzzy, gcc-internal-format
-#| msgid "missing value in %<target()%> pragma or attribute"
+#, gcc-internal-format
 msgid "missing value in %<target_version%> attribute"
-msgstr "відсутнє значення в директиві або атрибуті %<target()%>"
+msgstr "відсутнє значення в атрибуті %<target_version%>"
 
 #: config/aarch64/aarch64.cc:19835
-#, fuzzy, gcc-internal-format
-#| msgid "invalid feature modifier %qs of value %qs in %<target()%> pragma or attribute"
+#, gcc-internal-format
 msgid "invalid feature modifier %qs of value %qs in %<target_version%> attribute"
-msgstr "недійсний модифікатор функції %qs зі значенням %qs в директиві або атрибуті %<target()%>"
+msgstr "недійсний модифікатор функції %qs з значенням %qs в атрибуті %<target_version%>"
 
 #: config/aarch64/aarch64.cc:19841
-#, fuzzy, gcc-internal-format
-#| msgid "invalid feature modifier %qs of value %qs in %<target()%> pragma or attribute"
+#, gcc-internal-format
 msgid "duplicate feature modifier %qs of value %qs in %<target_version%> attribute"
-msgstr "недійсний модифікатор функції %qs зі значенням %qs в директиві або атрибуті %<target()%>"
+msgstr "дублікат модифікатора функції %qs з значенням %qs в атрибуті %<target_version%>"
 
 #: config/aarch64/aarch64.cc:20420 config/i386/i386-features.cc:3521
 #: config/i386/i386-features.cc:3790
@@ -39200,10 +38921,9 @@ msgid "unsupported simdlen %wd"
 msgstr "непідтримувана simdlen %wd"
 
 #: config/aarch64/aarch64.cc:28763
-#, fuzzy, gcc-internal-format
-#| msgid "GCC does not currently support return type %qT for %<simd%> functions"
+#, gcc-internal-format
 msgid "GCC does not currently support return type %qT for simd"
-msgstr "GCC наразі не підтримує тип повернення %qT для функцій %<simd%>"
+msgstr "GCC наразі не підтримує тип повернення %qT для simd"
 
 #: config/aarch64/aarch64.cc:28767 config/i386/i386.cc:25315
 #, gcc-internal-format
@@ -39211,10 +38931,9 @@ msgid "unsupported return type %qT for simd"
 msgstr "непідтримуваний тип повернення %qT для simd"
 
 #: config/aarch64/aarch64.cc:28797
-#, fuzzy, gcc-internal-format
-#| msgid "GCC does not currently support argument type %qT for %<simd%> functions"
+#, gcc-internal-format
 msgid "GCC does not currently support argument type %qT for simd"
-msgstr "GCC наразі не підтримує тип аргументу %qT для функцій %<simd%>"
+msgstr "GCC наразі не підтримує тип аргументу %qT для simd"
 
 #: config/aarch64/aarch64.cc:28801 config/i386/i386.cc:25346
 #, gcc-internal-format
@@ -39227,32 +38946,29 @@ msgid "GCC does not currently support simdlen %wd for type %qT"
 msgstr "GCC наразі не підтримує simdlen %wd для типу %qT"
 
 #: config/aarch64/aarch64.cc:28871
-#, fuzzy, gcc-internal-format
-#| msgid "GCC does not currently support simdlen %wd for type %qT"
+#, gcc-internal-format
 msgid "GCC does not currently support a simdclone with simdlens %wd and %wd for these types."
-msgstr "GCC наразі не підтримує simdlen %wd для типу %qT"
+msgstr "GCC наразі не підтримує simdclone з simdlens %wd і %wd для цих типів."
 
 #: config/aarch64/aarch64.cc:28961
-#, fuzzy, gcc-internal-format
-#| msgid "type attributes ignored after type is already defined"
+#, gcc-internal-format
 msgid "cannot apply attribute %qs to %q+D after the function has been defined"
-msgstr "атрибути типу ігноруються після вже визначеного типу"
+msgstr "неможливо застосувати атрибут %qs до %q+D після того, як функція була визначена"
 
 #: config/aarch64/aarch64.cc:28963
-#, fuzzy, gcc-internal-format
-#| msgid "%qD defined here"
+#, gcc-internal-format
 msgid "%q+D defined here"
-msgstr "%qD визначено тут"
+msgstr "%q+D визначено тут"
 
 #: config/aarch64/aarch64.cc:29421
 #, gcc-internal-format
 msgid "non-local gotos in functions with SME state"
-msgstr ""
+msgstr "нелокальні переходи в функціях з станом SME"
 
 #: config/aarch64/aarch64.cc:29730
 #, gcc-internal-format
 msgid "catching non-call exceptions in functions with SME state"
-msgstr ""
+msgstr "перехоплення невикликових винятків у функціях з станом SME"
 
 #: config/alpha/alpha.cc:420
 #, gcc-internal-format
@@ -39597,21 +39313,19 @@ msgid "invalid type for %<asm%> flag output"
 msgstr "недійсний тип для виводу прапорця %<asm%>"
 
 #: config/arm/aarch-common.cc:714
-#, fuzzy, gcc-internal-format
-#| msgid "missing filename after %qs"
+#, gcc-internal-format
 msgid "missing feature or flag for %<%s%>"
-msgstr "відсутнє імʼя файлу після %qs"
+msgstr "відсутня функція або прапорець для %<%s%>"
 
 #: config/arm/aarch-common.cc:716
-#, fuzzy, gcc-internal-format
-#| msgid "invalid argument %<%s%> for %<-mharden-sls=%>"
+#, gcc-internal-format
 msgid "invalid argument %<%s%> for %<%s%>"
-msgstr "недійсний аргумент %<%s%> для %<-mharden-sls=%>"
+msgstr "недійсний аргумент %<%s%> для %<%s%>"
 
 #: config/arm/aarch-common.cc:727
 #, gcc-internal-format
 msgid "argument %<%s%> can only appear alone in %<%s%>"
-msgstr ""
+msgstr "аргумент %<%s%> може з'являтися тільки окремо в %<%s%>"
 
 #: config/arm/arm-builtins.cc:3125
 #, gcc-internal-format, gfc-internal-format
@@ -39726,10 +39440,9 @@ msgid "%<#pragma GCC arm%> requires a string parameter"
 msgstr "%<#pragma GCC arm%> потребує рядковий параметр"
 
 #: config/arm/arm-c.cc:156
-#, fuzzy, gcc-internal-format
-#| msgid "%<#pragma GCC arm%> requires a string parameter"
+#, gcc-internal-format
 msgid "%<#pragma GCC arm \"arm_mve.h\"%> requires a boolean parameter"
-msgstr "%<#pragma GCC arm%> потребує рядковий параметр"
+msgstr "Директива %<#pragma GCC arm \"arm_mve.h\"%> вимагає булевий параметр"
 
 #: config/arm/arm-c.cc:160
 #, gcc-internal-format
@@ -39742,34 +39455,29 @@ msgid "this definition requires the MVE ISA extension"
 msgstr "ця визначення потребує розширення MVE ISA"
 
 #: config/arm/arm-mve-builtins.cc:560
-#, fuzzy, gcc-internal-format
-#| msgid "you can enable %qs using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
+#, gcc-internal-format
 msgid "you can enable mve.fp by using the command-line option %<-march%>, or by using the %<target%> attribute or pragma"
-msgstr "Ви можете увімкнути %qs, використовуючи параметр командного рядка %<-march%>, або за допомогою атрибуту або pragma %<target%>"
+msgstr "ви можете увімкнути mve.fp, використовуючи опцію командного рядка %<-march%>, або за допомогою атрибута %<target%> або директиви pragma"
 
 #: config/arm/arm-mve-builtins.cc:1166
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, but %qT is not a valid SVE element type"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, but %qT is not a valid MVE element type"
-msgstr "передача %qT в аргумент %d %qE, але %qT не є дійсним типом елемента SVE"
+msgstr "передача %qT в аргумент %d функції %qE, але %qT не є дійсним типом елемента MVE"
 
 #: config/arm/arm-mve-builtins.cc:1200
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects a single SVE vector rather than a tuple"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which expects a single MVE vector rather than a tuple"
-msgstr "передача %qT в аргумент %d %qE, який очікує один SVE вектор, а не кортеж"
+msgstr "передача %qT в аргумент %d функції %qE, яка очікує один вектор MVE замість кортежу"
 
 #: config/arm/arm-mve-builtins.cc:1220
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects an SVE vector type"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which expects an MVE vector type"
-msgstr "передача %qT в аргумент %d %qE, який очікує тип SVE вектора"
+msgstr "передача %qT в аргумент %d функції %qE, яка очікує тип вектора MVE"
 
 #: config/arm/arm-mve-builtins.cc:1223
-#, fuzzy, gcc-internal-format
-#| msgid "passing %qT to argument %d of %qE, which expects an SVE tuple type"
+#, gcc-internal-format
 msgid "passing %qT to argument %d of %qE, which expects an MVE tuple type"
-msgstr "передача %qT в аргумент %d %qE, який очікує типу кортежу SVE"
+msgstr "передача %qT в аргумент %d функції %qE, яка очікує тип кортежу MVE"
 
 #: config/arm/arm-mve-builtins.cc:1290
 #, gcc-internal-format
@@ -40195,10 +39903,9 @@ msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/inter
 msgstr "%qs є зарезервованим ідентифікатором в AVR-LibC. Розгляньте %<#include <avr/interrupt.h>%> перед використанням макросу %qs"
 
 #: config/avr/avr.cc:1513
-#, fuzzy, gcc-internal-format
-#| msgid "%qs is a reserved identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> before using the %qs macro"
+#, gcc-internal-format
 msgid "%qs is a deprecated identifier in AVR-LibC.  Consider %<#include <avr/interrupt.h>%> or %<#include <compat/deprecated.h>%> before using the %qs macro"
-msgstr "%qs є зарезервованим ідентифікатором в AVR-LibC. Розгляньте %<#include <avr/interrupt.h>%> перед використанням макросу %qs"
+msgstr "%qs є застарілим ідентифікатором в AVR-LibC. Розгляньте можливість використання %<#include <avr/interrupt.h>%> або %<#include <compat/deprecated.h>%> перед використанням макросу %qs"
 
 #: config/avr/avr.cc:1734
 #, gcc-internal-format
@@ -40241,10 +39948,9 @@ msgid "%qE attribute only supported for reduced Tiny cores"
 msgstr "атрибут %qE підтримується тільки для зменшених ядер Tiny"
 
 #: config/avr/avr.cc:11355
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute address out of range"
+#, gcc-internal-format
 msgid "%qE attribute address out of range 0x%x%s0x%x"
-msgstr "адреса атрибуту %qE поза межами діапазону"
+msgstr "Адреса атрибуту %qE виходить за межі діапазону 0x%x%s0x%x"
 
 #: config/avr/avr.cc:11369
 #, gcc-internal-format
@@ -40277,10 +39983,9 @@ msgid "pointer targeting address space %qs must be const in %s %q+D"
 msgstr "Вказівник, що спрямовується на адресний простір %qs, повинен бути const в %s %q+D"
 
 #: config/avr/avr.cc:11666
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute only applies to variables in static storage"
+#, gcc-internal-format
 msgid "variable %q+D with attribute %qs must be located in static storage"
-msgstr "атрибут %qE застосовується тільки до змінних у статичному сховищі"
+msgstr "Змінна %q+D з атрибутом %qs повинна розташовуватися у статичному сховищі"
 
 #: config/avr/avr.cc:11717
 #, gcc-internal-format
@@ -40288,10 +39993,9 @@ msgid "variable %q+D must be const in order to be put into read-only section by
 msgstr "Змінна %q+D повинна бути константою, щоб бути поміщеною в розділ тільки для читання за допомогою %qs"
 
 #: config/avr/avr.cc:11878
-#, fuzzy, gcc-internal-format
-#| msgid "static IO declaration for %q+D needs an address"
+#, gcc-internal-format
 msgid "static attribute %qs declaration for %q+D needs an address"
-msgstr "Статичне оголошення IO для %q+D потребує адресу"
+msgstr "Оголошення статичного атрибуту %qs для %q+D потребує адреси"
 
 #: config/avr/avr.cc:11967
 #, gcc-internal-format
@@ -40314,10 +40018,9 @@ msgstr "Неініціалізована змінна %q+D поміщена в 
 #. address attribute are determined by the attribute, not by
 #. some initializer.
 #: config/avr/avr.cc:12120
-#, fuzzy, gcc-internal-format
-#| msgid "Allocatable %qs at %L cannot have an initializer"
+#, gcc-internal-format
 msgid "variable %q+D with attribute %qs must not have an initializer"
-msgstr "Змінна з можливістю виділення %qs у %L не може мати ініціалізатора"
+msgstr "змінна %q+D з атрибутом %qs не повинна мати ініціалізатора"
 
 #: config/avr/avr.cc:12173
 #, gcc-internal-format
@@ -40493,32 +40196,29 @@ msgid "invalid argument to built-in function"
 msgstr "недійсний аргумент вбудованої функції"
 
 #: config/bpf/bpf.cc:1065
-#, fuzzy, gcc-internal-format
-#| msgid "invalid argument to built-in function %s"
+#, gcc-internal-format
 msgid "invalid built-in function at expansion"
-msgstr "неприпустимий аргумент для вбудованої функції %s"
+msgstr "недійсна вбудована функція при розгортанні"
 
 #: config/bpf/bpf.cc:1287 config/bpf/bpf.cc:1290
-#, fuzzy, gcc-internal-format
-#| msgid "second argument to %<__builtin_prefetch%> must be a constant"
+#, gcc-internal-format
 msgid "could not inline call to %<__builtin_%s%>: size must be constant"
-msgstr "другий аргумент для %<__builtin_prefetch%> повинен бути константою"
+msgstr "неможливо вставити виклик до %<__builtin_%s%>: розмір повинен бути сталим"
 
 #: config/bpf/bpf.cc:1318 config/bpf/bpf.cc:1321
 #, gcc-internal-format
 msgid "could not inline call to %<__builtin_%s%>: too many bytes, use %<-minline-memops-threshold%>"
-msgstr ""
+msgstr "неможливо вбудувати виклик до %<__builtin_%s%>: забагато байтів, використовуйте %<-minline-memops-threshold%>"
 
 #: config/bpf/bpf.cc:1371 config/bpf/bpf.cc:1374
-#, fuzzy, gcc-internal-format
-#| msgid "second argument to %<__builtin_prefetch%> must be a constant"
+#, gcc-internal-format
 msgid "could not inline call to %<__builtin_memset%>: size must be constant"
-msgstr "другий аргумент для %<__builtin_prefetch%> повинен бути константою"
+msgstr "неможливо вставити виклик до %<__builtin_memset%>: розмір повинен бути сталим"
 
 #: config/bpf/bpf.cc:1402 config/bpf/bpf.cc:1405
 #, gcc-internal-format
 msgid "could not inline call to %<__builtin_memset%>: too many bytes, use %<-minline-memops-threshold%>"
-msgstr ""
+msgstr "неможливо вбудувати виклик до %<__builtin_memset%>: забагато байтів, використовуйте %<-minline-memops-threshold%>"
 
 #: config/c6x/c6x.cc:245
 #, gcc-internal-format
@@ -40732,10 +40432,9 @@ msgid "stack frame must be smaller than 64K"
 msgstr "рамка стеку повинна бути меншою за 64K"
 
 #: config/gcn/gcn.cc:175
-#, fuzzy, gcc-internal-format
-#| msgid "%<-msmart%> is incompatible with %<-mhigh-registers%>"
+#, gcc-internal-format
 msgid "%<-mxnack=on%> is incompatible with %<-march=%s%>"
-msgstr "%<-msmart%> несумісний з %<-mhigh-registers%>"
+msgstr "%<-mxnack=on%> несумісний з %<-march=%s%>"
 
 #: config/gcn/gcn.cc:292
 #, gcc-internal-format
@@ -40813,46 +40512,39 @@ msgid "%d bytes of gang-private data-share memory exhausted (increase with %<-mg
 msgstr "вичерпано %d байтів приватної памʼяті для обміну даними між групами (можна збільшити за допомогою %<-mgang-private-size=%d%>, наприклад)"
 
 #: config/gcn/mkoffload.cc:168
-#, fuzzy, gcc-internal-format
-#| msgid "deleting file %s: %m"
+#, gcc-internal-format
 msgid "deleting file %qs: %m"
-msgstr "видалення файлу %s: %m"
+msgstr "видалення файлу %qs: %m"
 
 #: config/gcn/mkoffload.cc:877
-#, fuzzy, gcc-internal-format
-#| msgid "unrecognized argument in option %qs"
+#, gcc-internal-format
 msgid "unrecognized argument in option %<-march=%s%>"
-msgstr "невпізнаний аргумент в опції %qs"
+msgstr "нерозпізнаний аргумент у опції %<-march=%s%>"
 
 #: config/gcn/mkoffload.cc:901
-#, fuzzy, gcc-internal-format
-#| msgid "valid arguments to %<-march=%> switch are: %s"
+#, gcc-internal-format
 msgid "valid arguments to %<-march=%> are: %s"
-msgstr "допустимі аргументи для перемикача %<-march=%> це: %s"
+msgstr "дійсні аргументи для %<-march=%> є: %s"
 
 #: config/gcn/mkoffload.cc:904
-#, fuzzy, gcc-internal-format
-#| msgid "valid arguments to %<-march=%> switch are: %s"
+#, gcc-internal-format
 msgid "valid argument to %<-march=%> is %qs"
-msgstr "допустимі аргументи для перемикача %<-march=%> це: %s"
+msgstr "дійсний аргумент для %<-march=%> є %qs"
 
 #: config/gcn/mkoffload.cc:940
-#, fuzzy, gcc-internal-format
-#| msgid "COLLECT_GCC must be set."
+#, gcc-internal-format
 msgid "%<COLLECT_GCC%> must be set"
-msgstr "необхідно встановити COLLECT_GCC."
+msgstr "%<COLLECT_GCC%> повинен бути встановлений"
 
 #: config/gcn/mkoffload.cc:986
-#, fuzzy, gcc-internal-format
-#| msgid "offload compiler %s not found"
+#, gcc-internal-format
 msgid "offload compiler %qs not found"
-msgstr "компілятор віддаленого виконання %s не знайдено"
+msgstr "компілятор для відкладеної обробки %qs не знайдено"
 
 #: config/gcn/mkoffload.cc:1008
-#, fuzzy, gcc-internal-format
-#| msgid "unrecognizable argument of option "
+#, gcc-internal-format
 msgid "unrecognizable argument of option %<"
-msgstr "нерозпізнаний аргумент опції "
+msgstr "нерозпізнаваний аргумент опції %<"
 
 #: config/gcn/mkoffload.cc:1060 config/nvptx/mkoffload.cc:753
 #, gcc-internal-format
@@ -40860,16 +40552,14 @@ msgid "either %<-fopenacc%> or %<-fopenmp%> must be set"
 msgstr "необхідно встановити або %<-fopenacc%>, або %<-fopenmp%>"
 
 #: config/gcn/mkoffload.cc:1112
-#, fuzzy, gcc-internal-format
-#| msgid "unhandled expression"
+#, gcc-internal-format
 msgid "unhandled architecture"
-msgstr "невідомий вираз"
+msgstr "необроблена архітектура"
 
 #: config/gcn/mkoffload.cc:1152 config/gcn/mkoffload.cc:1304
-#, fuzzy, gcc-internal-format
-#| msgid "cannot open %s"
+#, gcc-internal-format
 msgid "cannot open %qs"
-msgstr "не вдається відкрити %s"
+msgstr "неможливо відкрити %qs"
 
 #: config/gcn/mkoffload.cc:1290 config/nvptx/mkoffload.cc:843
 #, gcc-internal-format
@@ -41202,22 +40892,22 @@ msgstr "%<target(\"tune=x86-64\")%> застаріло; використовуй
 #: config/i386/i386-options.cc:2131
 #, gcc-internal-format
 msgid "%<-mtune=knl%> support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримка опції %<-mtune=knl%> буде вилучено в GCC 15"
 
 #: config/i386/i386-options.cc:2132
 #, gcc-internal-format
 msgid "%<target(\"tune=knl\")%> support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримка %<target(\"tune=knl\")%> буде вилучено в GCC 15"
 
 #: config/i386/i386-options.cc:2137
 #, gcc-internal-format
 msgid "%<-mtune=knm%> support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримка %<-mtune=knm%> буде вилучено в GCC 15"
 
 #: config/i386/i386-options.cc:2138
 #, gcc-internal-format
 msgid "%<target(\"tune=knm\")%> support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримка %<target(\"tune=knm\")%> буде вилучена в GCC 15"
 
 #. rep; movq isn't available in 32-bit code.
 #: config/i386/i386-options.cc:2165
@@ -41226,16 +40916,14 @@ msgid "%<-mstringop-strategy=rep_8byte%> not supported for 32-bit code"
 msgstr "%<-mstringop-strategy=rep_8byte%> не підтримується для 32-бітного коду"
 
 #: config/i386/i386-options.cc:2170
-#, fuzzy, gcc-internal-format
-#| msgid "%<-muintr%> not supported for 32-bit code"
+#, gcc-internal-format
 msgid "%<-mapxf%> is not supported for 32-bit code"
-msgstr "%<-muintr%> не підтримується для 32-бітного коду"
+msgstr "%<-mapxf%> не підтримується для 32-бітного коду"
 
 #: config/i386/i386-options.cc:2172
-#, fuzzy, gcc-internal-format
-#| msgid "%<-mlam=%> option: [u48|u57] not supported for 32-bit code"
+#, gcc-internal-format
 msgid "%<-mapx-features=%> option is not supported for 32-bit code"
-msgstr "Опція %<-mlam=%>: [u48|u57] не підтримується для 32-бітного коду"
+msgstr "Опція %<-mapx-features=%> не підтримується для 32-бітного коду"
 
 #: config/i386/i386-options.cc:2175
 #, gcc-internal-format
@@ -41275,7 +40963,7 @@ msgstr "%<-mabi=%s%> не підтримується з %<-fsanitize=thread%>"
 #: config/i386/i386-options.cc:2223
 #, gcc-internal-format
 msgid "%<-mlam=u48%> is not compatible with Hardware-assisted AddressSanitizer, override to %<-mlam=u57%>"
-msgstr ""
+msgstr "%<-mlam=u48%> не сумісний з Санітаром Адрес з апаратною підтримкою (Hardware-assisted AddressSanitizer), перевизначено на %<-mlam=u57%>"
 
 #: config/i386/i386-options.cc:2243 config/i386/i386-options.cc:2252
 #: config/i386/i386-options.cc:2264 config/i386/i386-options.cc:2275
@@ -41327,22 +41015,22 @@ msgstr "Вибраний вами процесор не підтримує на
 #: config/i386/i386-options.cc:2354
 #, gcc-internal-format
 msgid "%<-march=knl%> support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримка %<-march=knl%> буде вилучена в GCC 15"
 
 #: config/i386/i386-options.cc:2355
 #, gcc-internal-format
 msgid "%<target(\"arch=knl\")%> support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримка %<target(\"arch=knl\")%> буде вилучена в GCC 15"
 
 #: config/i386/i386-options.cc:2360
 #, gcc-internal-format
 msgid "%<-march=knm%> support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримка %<-march=knm%> буде вилучена в GCC 15"
 
 #: config/i386/i386-options.cc:2361
 #, gcc-internal-format
 msgid "%<target(\"arch=knm\")%> support will be removed in GCC 15"
-msgstr ""
+msgstr "Підтримка %<target(\"arch=knm\")%> буде вилучена в GCC 15"
 
 #: config/i386/i386-options.cc:2438
 #, gcc-internal-format
@@ -41437,7 +41125,7 @@ msgstr "%<target(\"rtd\")%> ігнорується в 64-бітному режи
 #: config/i386/i386-options.cc:2702
 #, gcc-internal-format
 msgid "%<-mno-evex512%> or %<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10.1-512 is available"
-msgstr ""
+msgstr "%<-mno-evex512%> або %<-mno-avx512XXX%> не може вимкнути інструкції AVX10, коли доступний AVX10.1-512"
 
 #. We should not emit 512 bit instructions under AVX10.1-256
 #. when EVEX512 is enabled w/o any AVX512 features enabled.
@@ -41445,22 +41133,22 @@ msgstr ""
 #: config/i386/i386-options.cc:2716
 #, gcc-internal-format
 msgid "Using %<-mevex512%> without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size"
-msgstr ""
+msgstr "Використання %<-mevex512%> без увімкнення інструкцій AVX512 разом з AVX10.1 не активує ні інструкції AVX512, ні інструкції AVX10.1-512. Максимальна довжина вектора - 256."
 
 #: config/i386/i386-options.cc:2723 config/i386/i386-options.cc:2729
 #, gcc-internal-format
 msgid "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size"
-msgstr ""
+msgstr "Довжина вектора конфліктує між AVX10.1 та AVX512, використовується 512 як максимальна довжина вектора."
 
 #: config/i386/i386-options.cc:2737
 #, gcc-internal-format
 msgid "%<-mno-avx512XXX%> cannot disable AVX10 instructions when AVX10 is available"
-msgstr ""
+msgstr "%<-mno-avx512XXX%> не може вимкнути інструкції AVX10, коли доступний AVX10"
 
 #: config/i386/i386-options.cc:2747
 #, gcc-internal-format
 msgid "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> cannot disable AVX512 instructions when %<-mavx512XXX%>"
-msgstr ""
+msgstr "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> не може вимкнути інструкції AVX512 при %<-mavx512XXX%>"
 
 #: config/i386/i386-options.cc:2802
 #, gcc-internal-format
@@ -41565,7 +41253,7 @@ msgstr "%qs не є дійсним базовим регістром в %<-mstac
 #: config/i386/i386-options.cc:3271
 #, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was specified on the command line"
-msgstr ""
+msgstr "%<-fcf-protection=full%> не увімкнено через %<-fhardened%>, оскільки було вказано на командному рядку"
 
 #: config/i386/i386-options.cc:3280
 #, gcc-internal-format
@@ -41810,10 +41498,9 @@ msgid "the ABI of passing C structures with zero-width bit-fields has changed in
 msgstr "ABI передачі C-структур з біт-полями нульової ширини змінився в GCC %{12.1%}"
 
 #: config/i386/i386.cc:2725 config/i386/i386.cc:4094 config/i386/i386.cc:4104
-#, fuzzy, gcc-internal-format
-#| msgid "SSE register return with SSE disabled"
+#, gcc-internal-format
 msgid "SSE register return with SSE2 disabled"
-msgstr "Повернення регістра SSE з вимкненим SSE"
+msgstr "Повернення регістру SSE з вимкненим SSE2"
 
 #: config/i386/i386.cc:2727
 #, gcc-internal-format
@@ -41821,10 +41508,9 @@ msgid "SSE register return with SSE disabled"
 msgstr "Повернення регістра SSE з вимкненим SSE"
 
 #: config/i386/i386.cc:2734
-#, fuzzy, gcc-internal-format
-#| msgid "SSE register argument with SSE disabled"
+#, gcc-internal-format
 msgid "SSE register argument with SSE2 disabled"
-msgstr "Аргумент регістра SSE з вимкненим SSE"
+msgstr "Регістр SSE аргументу з вимкненим SSE2"
 
 #: config/i386/i386.cc:2736
 #, gcc-internal-format
@@ -41928,10 +41614,9 @@ msgid "the alignment of %<_Atomic %T%> fields changed in %{GCC 11.1%}"
 msgstr "вирівнювання полів %<_Atomic %T%> змінилося в %{GCC 11.1%}"
 
 #: config/i386/i386.cc:22847
-#, fuzzy, gcc-internal-format
-#| msgid "no low registers available for popping high registers"
+#, gcc-internal-format
 msgid "no register available for profiling %<-mcmodel=large%s%>"
-msgstr "немає доступних нижніх регістрів для викидання високих регістрів"
+msgstr "Немає доступного регістру для профілювання %<-mcmodel=large%s%>"
 
 #: config/i386/i386.cc:22943
 #, gcc-internal-format
@@ -41939,10 +41624,9 @@ msgid "profiling %<-mcmodel=large%> with PIC is not supported"
 msgstr "профілювання %<-mcmodel=large%> з PIC не підтримується"
 
 #: config/i386/i386.cc:23802
-#, fuzzy, gcc-internal-format
-#| msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC V13, be careful of implicit conversion between %<__bf16%> and %<short%>; a explicit bitcast may be needed here"
+#, gcc-internal-format
 msgid "%<__bfloat16%> is redefined from typedef %<short%> to real %<__bf16%> since GCC 13.1, be careful of implicit conversion between %<__bf16%> and %<short%>; an explicit bitcast may be needed here"
-msgstr "%<__bfloat16%> переозначено з typedef %<short%> на real %<__bf16%> після версії GCC V13, будьте обережні з неявним перетворенням між %<__bf16%> та %<short%>; можливо, тут потрібне явне побітове приведення"
+msgstr "З версії GCC 13.1 тип %<__bfloat16%> перевизначено з typedef %<short%> на реальний %<__bf16%>, будьте обережні з неявним перетворенням між %<__bf16%> та %<short%>; можливо, тут потрібне явне перетворення бітів"
 
 #: config/i386/i386.cc:25252
 #, gcc-internal-format
@@ -42046,10 +41730,9 @@ msgid "failed to expand built-in function"
 msgstr "не вдалося розгорнути вбудовану функцію"
 
 #: config/loongarch/loongarch-builtins.cc:3116
-#, fuzzy, gcc-internal-format
-#| msgid "built-in function %qD takes one argument only"
+#, gcc-internal-format
 msgid "built-in function %qD is not enabled"
-msgstr "вбудована функція %qD приймає лише один аргумент"
+msgstr "Вбудована функція %qD не активована"
 
 #: config/loongarch/loongarch-cpu.cc:115
 #, gcc-internal-format
@@ -42057,31 +41740,29 @@ msgid "unknown processor ID %<0x%x%>, some tuning parameters will fall back to d
 msgstr "невідомий ідентифікатор процесора %<0x%x%>, деякі параметри налаштування будуть використовувати значення за замовчуванням"
 
 #: config/loongarch/loongarch-cpu.cc:144
-#, fuzzy, gcc-internal-format
-#| msgid "unknown base architecture %<0x%x%>, %qs failed"
+#, gcc-internal-format
 msgid "unknown native base architecture %<0x%x%>, %qs failed"
-msgstr "невідома базова архітектура %<0x%x%>, %qs не вдалося"
+msgstr "Невідома базова архітектура %<0x%x%>, операція %qs не вдалася"
 
 #: config/loongarch/loongarch-cpu.cc:173
-#, fuzzy, gcc-internal-format
-#| msgid "unknown FPU type %<0x%x%>, %qs failed"
+#, gcc-internal-format
 msgid "unknown native FPU type %<0x%x%>, %qs failed"
-msgstr "невідомий тип FPU %<0x%x%>, %qs не вдалося"
+msgstr "Невідомий тип вбудованої FPU %<0x%x%>, операція %qs не вдалася"
 
 #: config/loongarch/loongarch-cpu.cc:180
 #, gcc-internal-format
 msgid "floating-point unit %qs differs from PRID preset %qs"
-msgstr ""
+msgstr "одиниця з плаваючою комою %qs відрізняється від наперед заданого значення PRID %qs"
 
 #: config/loongarch/loongarch-cpu.cc:204
 #, gcc-internal-format
 msgid "unknown SIMD extension (%qs disabled while %qs is enabled), disabling SIMD"
-msgstr ""
+msgstr "невідоме розширення SIMD (%qs вимкнуто, тоді як %qs увімкнено), вимикаємо SIMD"
 
 #: config/loongarch/loongarch-cpu.cc:242
 #, gcc-internal-format
 msgid "detected base architecture %qs, but some of its features are not detected; the detected base architecture may be unreliable, only detected features will be enabled"
-msgstr ""
+msgstr "Виявлено базову архітектуру %qs, але деякі її функції не вдалося визначити. Виявлена архітектура може бути ненадійною, доступні лише виявлені функції."
 
 #: config/loongarch/loongarch-opts.cc:235
 #, gcc-internal-format
@@ -42102,18 +41783,17 @@ msgstr "%qs не працює на крос-компіляторі"
 #: config/loongarch/loongarch-opts.cc:375
 #, gcc-internal-format
 msgid "enabling %qs promotes %<%s%s%> to %<%s%s%>"
-msgstr ""
+msgstr "увімкнення %qs підвищує %<%s%s%> до %<%s%s%>"
 
 #: config/loongarch/loongarch-opts.cc:387
 #, gcc-internal-format
 msgid "%qs is disabled by %<-m%s%>, because it requires %<%s%s%>"
-msgstr ""
+msgstr "%qs вимкнено %<-m%s%>, тому що потребує %<%s%s%> "
 
 #: config/loongarch/loongarch-opts.cc:399
-#, fuzzy, gcc-internal-format
-#| msgid "switch %<-mcpu=%s%> conflicts with switch %<-march=%s%>"
+#, gcc-internal-format
 msgid "%<-m%s=%s%> conflicts with %qs, which requires %<%s%s%>"
-msgstr "перемикач %<-mcpu=%s%> конфліктує з перемикачем %<-march=%s%>"
+msgstr "Параметр %<-m%s=%s%> конфліктує з %qs, який вимагає %<%s%s%>"
 
 #: config/loongarch/loongarch-opts.cc:443
 #, gcc-internal-format
@@ -42333,10 +42013,9 @@ msgid "%qE attribute requires a string argument"
 msgstr "Атрибут %qE вимагає рядковий аргумент"
 
 #: config/mips/mips.cc:1340
-#, fuzzy, gcc-internal-format
-#| msgid "argument to %qE attribute is neither zero, nor one"
+#, gcc-internal-format
 msgid "argument to %qE attribute is neither no, pcrel nor yes"
-msgstr "Аргумент атрибуту %qE не є нулем або одиницею"
+msgstr "Аргумент атрибута %qE не є ні no, ні pcrel, ні yes"
 
 #: config/mips/mips.cc:1506 config/mips/mips.cc:1510
 #, gcc-internal-format
@@ -42431,10 +42110,9 @@ msgid "MSA MIPS16 code"
 msgstr "код MSA MIPS16"
 
 #: config/mips/mips.cc:20082
-#, fuzzy, gcc-internal-format
-#| msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>"
+#, gcc-internal-format
 msgid "MIPS16 requires %<-mexplicit-relocs%>"
-msgstr "%<-mno-gpopt%> потребує %<-mexplicit-relocs%>"
+msgstr "Для MIPS16 необхідно використовувати параметр %<-mexplicit-relocs%>"
 
 #: config/mips/mips.cc:20273 config/mips/mips.cc:20278
 #: config/mips/mips.cc:20368 config/mips/mips.cc:20370
@@ -43300,10 +42978,9 @@ msgid "PTX version (%<-mptx%>) needs to be at least %s to support selected %<-mi
 msgstr "версія PTX (%<-mptx%>) повинна бути не менше %s для підтримки вибраного %<-misa%> (sm_%s)"
 
 #: config/nvptx/nvptx.cc:340
-#, fuzzy, gcc-internal-format
-#| msgid "multiple %<-mcpu=%> options specified"
+#, gcc-internal-format
 msgid "%<-march=%> must be specified"
-msgstr "вказано кілька опцій %<-mcpu=%>"
+msgstr "Параметр %<-march=%> повинен бути вказаний"
 
 #: config/nvptx/nvptx.cc:363
 #, gcc-internal-format
@@ -43487,68 +43164,62 @@ msgstr "невідома опція %qs для %<#pragma riscv intrinsic%>"
 #: config/riscv/riscv-target-attr.cc:121
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: must start with + or rv"
-msgstr ""
+msgstr "неочікуваний arch для атрибута %<target()%>: повинен починатися з + або rv"
 
 #: config/riscv/riscv-target-attr.cc:132
 #, gcc-internal-format
 msgid "unexpected arch for %<target()%> attribute: bad string found %<%s%>"
-msgstr ""
+msgstr "несподівана архітектура для атрибута %<target()%>: знайдено некоректний рядок %<%s%>"
 
 #: config/riscv/riscv-target-attr.cc:159
 #, gcc-internal-format
 msgid "%<target()%> attribute: arch appears more than once"
-msgstr ""
+msgstr "Атрибут %<target()%>: arch повторюється"
 
 #: config/riscv/riscv-target-attr.cc:170
 #, gcc-internal-format
 msgid "%<target()%> attribute: cpu appears more than once"
-msgstr ""
+msgstr "Атрибут %<target()%>: cpu повторюється"
 
 #: config/riscv/riscv-target-attr.cc:177
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown CPU %qs"
-msgstr ""
+msgstr "Атрибут %<target()%>: нерозпізнаний CPU %qs"
 
 #: config/riscv/riscv-target-attr.cc:198
-#, fuzzy, gcc-internal-format
-#| msgid "target attribute is not supported on this machine"
+#, gcc-internal-format
 msgid "%<target()%> attribute: tune appears more than once"
-msgstr "атрибут цільової платформи не підтримується на цій машині"
+msgstr "Атрибут %<target()%>: параметр tune зустрічається більше одного разу"
 
 #: config/riscv/riscv-target-attr.cc:204
 #, gcc-internal-format
 msgid "%<target()%> attribute: unknown TUNE %qs"
-msgstr ""
+msgstr "Атрибут %<target()%>: невідомий TUNE %qs"
 
 #: config/riscv/riscv-target-attr.cc:253
-#, fuzzy, gcc-internal-format
-#| msgid "malformed %<target()%> pragma or attribute"
+#, gcc-internal-format
 msgid "malformed %<target()%> attribute"
-msgstr "некоректна директива або атрибут %<target()%>"
+msgstr "Неправильно сформований атрибут %<target()%>"
 
 #: config/riscv/riscv-target-attr.cc:267
-#, fuzzy, gcc-internal-format
-#| msgid "pragma or attribute %<target(\"%s\")%> does not accept an argument"
+#, gcc-internal-format
 msgid "attribute %<target(\"%s\")%> does not accept an argument"
-msgstr "директива або атрибут %<target(\"%s\")%> не приймає аргумент"
+msgstr "Атрибут %<target(\"%s\")%> не приймає аргументів"
 
 #: config/riscv/riscv-target-attr.cc:285
-#, fuzzy, gcc-internal-format
-#| msgid "unknown attribute %qs"
+#, gcc-internal-format
 msgid "Got unknown attribute %<target(\"%s\")%>"
-msgstr "невідомий атрибут %qs"
+msgstr "Отримано невідомий атрибут %<target(\"%s\")%>"
 
 #: config/riscv/riscv-target-attr.cc:368
-#, fuzzy, gcc-internal-format
-#| msgid "malformed %<target(\"%s\")%> pragma or attribute"
+#, gcc-internal-format
 msgid "malformed %<target(\"%s\")%> attribute"
-msgstr "некоректна прагма або атрибут %<target(\"%s\")%>"
+msgstr "Неправильно сформований атрибут %<target(\"%s\")%>"
 
 #: config/riscv/riscv-vector-builtins.cc:4276
-#, fuzzy, gcc-internal-format
-#| msgid "passing %wd to argument %d of %qE, which expects a value in the range [%wd, %wd]"
+#, gcc-internal-format
 msgid "passing %wd to argument %d of %qE, which expects a value in the range [%wd, %wd] or %wd"
-msgstr "передача %wd аргументу %d %qE, який очікує значення в діапазоні [%wd, %wd]"
+msgstr "Передача значення %wd в аргумент %d функції %qE, яка очікує значення в діапазоні [%wd, %wd] або %wd"
 
 #: config/riscv/riscv-vector-builtins.cc:4488
 #, gcc-internal-format
@@ -43601,40 +43272,34 @@ msgid "capture by copy of RVV type %qT"
 msgstr "захоплення копією типу RVV %qT"
 
 #: config/riscv/riscv-vector-builtins.cc:4645
-#, fuzzy, gcc-internal-format
-#| msgid "this definition requires the MVE ISA extension"
+#, gcc-internal-format
 msgid "built-in function %qE requires the zvfhmin or zvfh ISA extension"
-msgstr "ця визначення потребує розширення MVE ISA"
+msgstr "Вбудована функція %qE вимагає розширення ISA звфгмін або звфг"
 
 #: config/riscv/riscv-vector-builtins.cc:4655
-#, fuzzy, gcc-internal-format
-#| msgid "this definition requires the MVE ISA extension"
+#, gcc-internal-format
 msgid "built-in function %qE requires the zve32f, zve64f, zve64d or v ISA extension"
-msgstr "ця визначення потребує розширення MVE ISA"
+msgstr "Вбудована функція %qE вимагає розширення ISA зве32ф, зве64ф, зве64д або v"
 
 #: config/riscv/riscv-vector-builtins.cc:4665
-#, fuzzy, gcc-internal-format
-#| msgid "this definition requires the MVE ISA extension"
+#, gcc-internal-format
 msgid "built-in function %qE requires the zve64d or v ISA extension"
-msgstr "ця визначення потребує розширення MVE ISA"
+msgstr "Вбудована функція %qE вимагає розширення ISA зве64д або v"
 
 #: config/riscv/riscv-vector-builtins.cc:4674
-#, fuzzy, gcc-internal-format
-#| msgid "this definition requires the MVE ISA extension"
+#, gcc-internal-format
 msgid "built-in function %qE requires the zve64x, zve64f, zve64d or v ISA extension"
-msgstr "ця визначення потребує розширення MVE ISA"
+msgstr "Вбудована функція %qE вимагає розширення ISA зве64х, зве64ф, зве64д або v"
 
 #: config/riscv/riscv-vector-builtins.cc:4694
-#, fuzzy, gcc-internal-format
-#| msgid "this definition requires the MVE ISA extension"
+#, gcc-internal-format
 msgid "built-in function %qE requires the %qs ISA extension"
-msgstr "ця визначення потребує розширення MVE ISA"
+msgstr "вбудована функція %qE вимагає розширення %qs ISA"
 
 #: config/riscv/riscv-vector-builtins.cc:4747
-#, fuzzy, gcc-internal-format
-#| msgid "no matching function for call to %<%s(%A)%>"
+#, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
-msgstr "немає відповідної функції для виклику %<%s(%A)%>"
+msgstr "немає відповідного виклику функції до %qE з порожніми аргументами"
 
 #: config/riscv/riscv.cc:723
 #, gcc-internal-format
@@ -43657,52 +43322,44 @@ msgid "ABI for flattened struct with zero-length bit-fields changed in GCC 10"
 msgstr "ABI для структури зі згладженими полями нульової довжини змінився в GCC 10"
 
 #: config/riscv/riscv.cc:5370
-#, fuzzy, gcc-internal-format
-#| msgid "SVE type %qT cannot be passed to an unprototyped function"
+#, gcc-internal-format
 msgid "RVV type %qT cannot be passed to an unprototyped function"
-msgstr "Тип SVE %qT не може бути переданий у функцію без прототипу"
+msgstr "Тип RVV %qT не може бути переданий у функцію без прототипу"
 
 #: config/riscv/riscv.cc:5623
-#, fuzzy, gcc-internal-format
-#| msgid "%qE requires the SVE ISA extension"
+#, gcc-internal-format
 msgid "%s %qT requires the V ISA extension"
-msgstr "%qE вимагає розширення SVE ISA"
+msgstr "%s %qT вимагає розширення V ISA"
 
 #: config/riscv/riscv.cc:5635
-#, fuzzy, gcc-internal-format
-#| msgid "%qE requires the SVE ISA extension"
+#, gcc-internal-format
 msgid "%s %qT requires the zve64x, zve64f, zve64d or v ISA extension"
-msgstr "%qE вимагає розширення SVE ISA"
+msgstr "%s %qT вимагає розширення zve64x, zve64f, zve64d або v ISA"
 
 #: config/riscv/riscv.cc:5646
-#, fuzzy, gcc-internal-format
-#| msgid "%qE requires the SVE ISA extension"
+#, gcc-internal-format
 msgid "%s %qT requires the zvfhmin or zvfh ISA extension"
-msgstr "%qE вимагає розширення SVE ISA"
+msgstr "%s %qT вимагає розширення zvfhmin або zvfh ISA"
 
 #: config/riscv/riscv.cc:5655
-#, fuzzy, gcc-internal-format
-#| msgid "%qE requires the SVE ISA extension"
+#, gcc-internal-format
 msgid "%s %qT requires the zve32f, zve64f, zve64d or v ISA extension"
-msgstr "%qE вимагає розширення SVE ISA"
+msgstr "%s %qT вимагає розширення zve32f, zve64f, zve64d або v ISA"
 
 #: config/riscv/riscv.cc:5664
-#, fuzzy, gcc-internal-format
-#| msgid "%qE requires the SVE ISA extension"
+#, gcc-internal-format
 msgid "%s %qT requires the zve64d or v ISA extension"
-msgstr "%qE вимагає розширення SVE ISA"
+msgstr "%s %qT вимагає розширення zve64d або v ISA"
 
 #: config/riscv/riscv.cc:5674
-#, fuzzy, gcc-internal-format
-#| msgid "%qs requires the %qs option and either the %qs or %qs option"
+#, gcc-internal-format
 msgid "%s %qT requires the minimal vector length %qd but %qd is given"
-msgstr "%qs потребує опцію %qs, а також опцію %qs або %qs"
+msgstr "%s %qT вимагає мінімальної довжини вектора %qd, але задано %qd"
 
 #: config/riscv/riscv.cc:5729
-#, fuzzy, gcc-internal-format
-#| msgid "calls to functions of type %qT require the SVE ISA extension"
+#, gcc-internal-format
 msgid "function attribute %qs requires the V ISA extension"
-msgstr "виклики функцій типу %qT вимагають розширення SVE ISA"
+msgstr "атрибут функції %qs вимагає розширення V ISA"
 
 #: config/riscv/riscv.cc:5823
 #, gcc-internal-format
@@ -43712,24 +43369,22 @@ msgstr "аргумент атрибуту %qE не є %<\"user\"%>, %<\"supervis
 #: config/riscv/riscv.cc:5846
 #, gcc-internal-format
 msgid "%qs is only supported when %<-mrvv-vector-bits=zvl%> is specified"
-msgstr ""
+msgstr "%qs працює лише коли вказано %<-mrvv-vector-bits=zvl%>"
 
 #: config/riscv/riscv.cc:5855
-#, fuzzy, gcc-internal-format
-#| msgid "%qs applied to non-SVE type %qT"
+#, gcc-internal-format
 msgid "%qs applied to non-RVV type %qT"
-msgstr "%qs застосовується до не-SVE типу %qT"
+msgstr "%qs застосовано до не-RVV типу %qT"
 
 #: config/riscv/riscv.cc:5863
-#, fuzzy, gcc-internal-format
-#| msgid "%qs requires an integer constant expression"
+#, gcc-internal-format
 msgid "%qs requires an integer constant"
-msgstr "%qs вимагає цілочисловий константний вираз"
+msgstr "%qs вимагає цілочисельної константи"
 
 #: config/riscv/riscv.cc:5873
 #, gcc-internal-format
 msgid "invalid RVV vector size %qd, expected size is %qd based on LMUL of type and %qs"
-msgstr ""
+msgstr "Неправильний розмір вектора RVV %qd, очікуваний розмір %qd на основі LMUL типу і %qs"
 
 #: config/riscv/riscv.cc:9213
 #, gcc-internal-format
@@ -43739,19 +43394,17 @@ msgstr "%<-mdiv%> вимагає %<-march%>, щоб підкоритися ро
 #: config/riscv/riscv.cc:9255
 #, gcc-internal-format
 msgid "Current RISC-V GCC does not support VLEN greater than 4096bit for 'V' Extension"
-msgstr ""
+msgstr "Поточний RISC-V GCC не підтримує VLEN понад 4096 біт для розширення 'V'"
 
 #: config/riscv/riscv.cc:9261
-#, fuzzy, gcc-internal-format
-#| msgid "target CPU does not support ARM mode"
+#, gcc-internal-format
 msgid "Current RISC-V GCC does not support RVV in big-endian mode"
-msgstr "цільовий процесор не підтримує режим ARM"
+msgstr "Поточний RISC-V GCC не підтримує RVV у режимі великого кінця"
 
 #: config/riscv/riscv.cc:9287 config/riscv/riscv.cc:9290
-#, fuzzy, gcc-internal-format
-#| msgid "code model %qs with %<-f%s%>"
+#, gcc-internal-format
 msgid "code model %qs with %qs"
-msgstr "модель коду %qs з %<-f%s%>"
+msgstr "модель коду %qs з %qs"
 
 #: config/riscv/riscv.cc:9319
 #, gcc-internal-format
@@ -43764,16 +43417,14 @@ msgid "rv32e requires ilp32e ABI"
 msgstr "rv32e вимагає ABI ilp32e"
 
 #: config/riscv/riscv.cc:9328
-#, fuzzy, gcc-internal-format
-#| msgid "rv32e requires ilp32e ABI"
+#, gcc-internal-format
 msgid "rv64e requires lp64e ABI"
-msgstr "rv32e вимагає ABI ilp32e"
+msgstr "rv64e вимагає lp64e ABI"
 
 #: config/riscv/riscv.cc:9335
-#, fuzzy, gcc-internal-format
-#| msgid "z*inx requires ABI ilp32, ilp32e or lp64"
+#, gcc-internal-format
 msgid "z*inx requires ABI ilp32, ilp32e, lp64 or lp64e"
-msgstr "z*inx вимагає ABI ilp32, ilp32e або lp64"
+msgstr "z*inx вимагає ABI ilp32, ilp32e, lp64 або lp64e"
 
 #: config/riscv/riscv.cc:9339
 #, gcc-internal-format
@@ -44263,13 +43914,12 @@ msgstr "невідома опція для %<%s=%s%>"
 #: config/rs6000/rs6000.cc:4833
 #, gcc-internal-format
 msgid "%<-mrop-protect%> requires %<-mcpu=power8%> or later"
-msgstr ""
+msgstr "%<-mrop-protect%> вимагає %<-mcpu=power8%> або пізнішу версію"
 
 #: config/rs6000/rs6000.cc:4837
-#, fuzzy, gcc-internal-format
-#| msgid "%qs requires the ELFv2 ABI"
+#, gcc-internal-format
 msgid "%<-mrop-protect%> requires the ELFv2 ABI"
-msgstr "%qs потребує ELFv2 ABI"
+msgstr "%<-mrop-protect%> вимагає ELFv2 ABI"
 
 #: config/rs6000/rs6000.cc:4855
 #, gcc-internal-format
@@ -44690,28 +44340,24 @@ msgid "value %qs is not supported by attribute %<target%>"
 msgstr "значення %qs не підтримується атрибутом %<target%>"
 
 #: config/s390/s390.cc:17553
-#, fuzzy, gcc-internal-format
-#| msgid "invalid constraints"
+#, gcc-internal-format
 msgid "invalid cc output constraint: %qs"
-msgstr "недійсні обмеження"
+msgstr "неприпустиме обмеження виводу cc: %qs"
 
 #: config/s390/s390.cc:17558
-#, fuzzy, gcc-internal-format
-#| msgid "double constants not supported"
+#, gcc-internal-format
 msgid "multiple cc output constraints not supported"
-msgstr "подвійні константи не підтримуються"
+msgstr "багатократні обмеження виводу cc не підтримуються"
 
 #: config/s390/s390.cc:17563
-#, fuzzy, gcc-internal-format
-#| msgid "%<asm%> specifier for variable %qE conflicts with %<asm%> clobber list"
+#, gcc-internal-format
 msgid "%<asm%> specifier for cc output conflicts with %<asm%> clobber list"
-msgstr "специфікатор %<asm%> для змінної %qE конфліктує зі списком %<asm%> clobber"
+msgstr "специфікатор %<asm%> для виводу cc конфліктує з %<asm%> списком забруднення"
 
 #: config/s390/s390.cc:17569
-#, fuzzy, gcc-internal-format
-#| msgid "invalid type for make function"
+#, gcc-internal-format
 msgid "invalid type for cc output constraint"
-msgstr "недійсний тип для функції make"
+msgstr "неприпустимий тип для обмеження виводу cc"
 
 #: config/sh/sh.cc:936
 #, gcc-internal-format
@@ -45274,10 +44920,9 @@ msgid "declaration of %q+D shadows a built-in function"
 msgstr "оголошення %q+D затіняє вбудовану функцію"
 
 #: c/c-decl.cc:2153
-#, fuzzy, gcc-internal-format
-#| msgid "redeclaration of enumerator %q+D"
+#, gcc-internal-format
 msgid "conflicting redeclaration of enumerator %q+D"
-msgstr "перевизначення перелічування %q+D"
+msgstr "конфліктна повторна декларація елемента перерахування %q+D"
 
 #: c/c-decl.cc:2160
 #, gcc-internal-format
@@ -45527,7 +45172,7 @@ msgstr "перехід до області видимості ідентифік
 #: c/c-decl.cc:4093
 #, gcc-internal-format
 msgid "jump skips OpenMP %<allocate%> allocation"
-msgstr ""
+msgstr "стрибок пропускає виділення пам'яті OpenMP %<allocate%>"
 
 #: c/c-decl.cc:4096
 #, gcc-internal-format
@@ -45560,10 +45205,9 @@ msgid "traditional C lacks a separate namespace for labels, identifier %qE confl
 msgstr "традиційна мова C не має окремого простору імен для міток, ідентифікатор %qE конфліктує"
 
 #: c/c-decl.cc:4379
-#, fuzzy, gcc-internal-format
-#| msgid "switch jumps over variable initialization"
+#, gcc-internal-format
 msgid "switch jumps over OpenMP %<allocate%> allocation"
-msgstr "перехід у switch пропускає ініціалізацію змінної"
+msgstr "перемикання перескакує через виділення пам'яті OpenMP %<allocate%>"
 
 #: c/c-decl.cc:4385
 #, gcc-internal-format
@@ -45733,10 +45377,9 @@ msgid "%<[*]%> not allowed in other than function prototype scope"
 msgstr "%<[*]%> дозволено тільки в області прототипу функції"
 
 #: c/c-decl.cc:5477 cp/decl2.cc:1852 cp/name-lookup.cc:8861
-#, fuzzy, gcc-internal-format
-#| msgid "%<omp::%E%> not allowed to be specified in this context"
+#, gcc-internal-format
 msgid "%<omp::%s%> not allowed to be specified in this context"
-msgstr "%<omp::%E%> не може бути вказано в цьому контексті"
+msgstr "%<omp::%s%> не дозволяється вказувати в цьому контексті"
 
 #: c/c-decl.cc:5557
 #, gcc-internal-format
@@ -46361,10 +46004,9 @@ msgid "ISO C90 does not support %<_Noreturn%>"
 msgstr "ISO C90 не підтримує %<_Noreturn%>"
 
 #: c/c-decl.cc:8206
-#, fuzzy, gcc-internal-format
-#| msgid "variable previously declared %<static%> redeclared %<extern%>"
+#, gcc-internal-format
 msgid "function previously declared %<static%> redeclared %<extern%>"
-msgstr "змінна, яка раніше була оголошена як %<static%>, знову оголошена як %<extern%>"
+msgstr "функція раніше оголошена як %<static%>, повторно оголошена як %<extern%>"
 
 #: c/c-decl.cc:8224
 #, gcc-internal-format
@@ -46572,10 +46214,9 @@ msgid "flexible array member in a struct with no named members"
 msgstr "гнучкий масив як член структури без іменованих членів"
 
 #: c/c-decl.cc:9599
-#, fuzzy, gcc-internal-format
-#| msgid "flexible array member not at end of struct"
+#, gcc-internal-format
 msgid "structure containing a flexible array member is not at the end of another structure"
-msgstr "гнучкий масив не є останнім членом структури"
+msgstr "структура, що містить гнучкий елемент масиву, не знаходиться в кінці іншої структури"
 
 #: c/c-decl.cc:9622
 #, gcc-internal-format
@@ -46593,16 +46234,14 @@ msgid "union cannot be made transparent"
 msgstr "обʼєднання не може бути зроблене прозорим"
 
 #: c/c-decl.cc:9766
-#, fuzzy, gcc-internal-format
-#| msgid "redefinition of typedef %q+D with variably modified type"
+#, gcc-internal-format
 msgid "redefinition of struct or union %qT with variably modified type"
-msgstr "перевизначення typedef %q+D зі зміненим типом"
+msgstr "повторно визначена структура або об'єднання %qT зі змінним типом модифікації"
 
 #: c/c-decl.cc:9769
-#, fuzzy, gcc-internal-format
-#| msgid "redefinition of %<struct %E%>"
+#, gcc-internal-format
 msgid "redefinition of struct or union %qT"
-msgstr "перевизначення %<struct %E%>"
+msgstr "повторно визначена структура або об'єднання %qT"
 
 #: c/c-decl.cc:9938
 #, gcc-internal-format
@@ -46635,10 +46274,9 @@ msgid "enumeration values exceed range of %qs"
 msgstr "значення перелічування перевищують діапазон %qs"
 
 #: c/c-decl.cc:10219
-#, fuzzy, gcc-internal-format
-#| msgid "nested redefinition of %<enum %E%>"
+#, gcc-internal-format
 msgid "conflicting redefinition of enum %qT"
-msgstr "вкладене перевизначення %<enum %E%>"
+msgstr "конфліктне повторення визначення перерахування %qT"
 
 #: c/c-decl.cc:10251 c/c-decl.cc:10267
 #, gcc-internal-format
@@ -46666,10 +46304,9 @@ msgid "enumerator value outside the range of %qs"
 msgstr "значення перелічування поза діапазоном %qs"
 
 #: c/c-decl.cc:10327
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C restricts enumerator values to range of %<int%> before C2X"
+#, gcc-internal-format
 msgid "ISO C restricts enumerator values to range of %<int%> before C23"
-msgstr "ISO C обмежує значення перелічування діапазоном %<int%> до C2X"
+msgstr "Мова ISO C обмежує значення перерахувань діапазоном %<int%> до стандарту C23"
 
 #: c/c-decl.cc:10528 cp/decl.cc:5990 cp/decl.cc:17806
 #, gcc-internal-format
@@ -46732,10 +46369,9 @@ msgid "traditional C rejects ISO C style function definitions"
 msgstr "традиційне C відкидає визначення функцій у стилі ISO C"
 
 #: c/c-decl.cc:10782
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C does not support omitting parameter names in function definitions before C2X"
+#, gcc-internal-format
 msgid "ISO C does not support omitting parameter names in function definitions before C23"
-msgstr "ISO C не підтримує пропуск імен параметрів у визначеннях функцій до C2X"
+msgstr "Мова ISO C не підтримує пропуск імен параметрів у визначенні функцій до стандарту C23"
 
 #: c/c-decl.cc:10822 c/c-decl.cc:10826
 #, gcc-internal-format
@@ -46940,10 +46576,9 @@ msgid "ISO C90 does not support boolean types"
 msgstr "ISO C90 не підтримує булеві типи"
 
 #: c/c-decl.cc:12537
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C does not support the %<_Float%d%s%> type"
+#, gcc-internal-format
 msgid "ISO C does not support the %<_Float%d%s%> type before C23"
-msgstr "ISO C не підтримує тип %<_Float%d%s%>"
+msgstr "Мова ISO C не підтримує тип %<_Float%d%s%> до стандарту C23"
 
 #: c/c-decl.cc:12588 cp/parser.cc:20288
 #, gcc-internal-format
@@ -46951,10 +46586,9 @@ msgid "%<_Float%d%s%> is not supported on this target"
 msgstr "%<_Float%d%s%> не підтримується для цільової платформи"
 
 #: c/c-decl.cc:12659
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C does not support decimal floating-point before C2X"
+#, gcc-internal-format
 msgid "ISO C does not support decimal floating-point before C23"
-msgstr "ISO C не підтримує десяткові дробові числа до C2X"
+msgstr "Мова ISO C не підтримує десяткові дробові числа до стандарту C23"
 
 #: c/c-decl.cc:12683 c/c-decl.cc:13060 c/c-parser.cc:10626
 #, gcc-internal-format
@@ -46967,21 +46601,19 @@ msgid "ISO C does not support fixed-point types"
 msgstr "ISO C не підтримує типи з фіксованою комою"
 
 #: c/c-decl.cc:12714
-#, fuzzy, gcc-internal-format
-#| msgid "case label is not an integer constant expression"
+#, gcc-internal-format
 msgid "%<_BitInt%> argument is not an integer constant expression"
-msgstr "мітка case не є цілочисельним константним виразом"
+msgstr "Аргумент %<_BitInt%> не є цілочисельним константним виразом"
 
 #: c/c-decl.cc:12720
-#, fuzzy, gcc-internal-format
-#| msgid "enumerator value for %qE is not an integer constant expression"
+#, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is not a positive integer constant expression"
-msgstr "значення перелічування для %qE не є цілочисельним константним виразом"
+msgstr "Аргумент %<_BitInt%> %qE не є додатним цілочисельним константним виразом"
 
 #: c/c-decl.cc:12727
 #, gcc-internal-format
 msgid "%<_BitInt%> argument %qE is larger than %<BITINT_MAXWIDTH%> %qd"
-msgstr ""
+msgstr "Аргумент %<_BitInt%> %qE перевищує %<BITINT_MAXWIDTH%> %qd"
 
 #: c/c-decl.cc:12775
 #, gcc-internal-format
@@ -47081,10 +46713,9 @@ msgid "ISO C does not support plain %<complex%> meaning %<double complex%>"
 msgstr "ISO C не підтримує просте значення %<complex%>, що означає %<double complex%>"
 
 #: c/c-decl.cc:13083
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C does not support %<auto%> type deduction before C2X"
+#, gcc-internal-format
 msgid "ISO C does not support %<auto%> type deduction before C23"
-msgstr "ISO C не підтримує виведення типу %<auto%> до C2X"
+msgstr "Мова ISO C не підтримує визначення типу за допомогою %<auto%> до стандарту C23"
 
 #: c/c-decl.cc:13112
 #, gcc-internal-format
@@ -47097,16 +46728,14 @@ msgid "ISO C does not support complex integer types"
 msgstr "ISO C не підтримує комплексні цілі типи"
 
 #: c/c-decl.cc:13323
-#, fuzzy, gcc-internal-format
-#| msgid "Fixed line length must be at least seven"
+#, gcc-internal-format
 msgid "%<signed _BitInt%> argument must be at least 2"
-msgstr "Фіксована довжина рядка повинна бути щонайменше сім"
+msgstr "Аргумент %<signed _BitInt%> має бути щонайменше 2"
 
 #: c/c-decl.cc:13332
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C++ does not support %<__int%d%> for %qs"
+#, gcc-internal-format
 msgid "ISO C does not support %<%s_BitInt(%d)%> before C23"
-msgstr "ISO C++ не підтримує %<__int%d%> для %qs"
+msgstr "Мова ISO C не підтримує %<%s_BitInt(%d)%> до стандарту C23"
 
 #: c/c-decl.cc:13631 cp/semantics.cc:6387
 #, gcc-internal-format
@@ -47393,10 +47022,9 @@ msgid "%<__GIMPLE%> only valid with %<-fgimple%>"
 msgstr "%<__GIMPLE%> дійсний лише з %<-fgimple%>"
 
 #: c/c-parser.cc:3699
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C does not support specifying %<enum%> underlying types before C2X"
+#, gcc-internal-format
 msgid "ISO C does not support specifying %<enum%> underlying types before C23"
-msgstr "ISO C не підтримує вказування підставних типів %<enum%> до C2X"
+msgstr "Мова ISO C не підтримує вказання базових типів для %<enum%> до стандарту C23"
 
 #: c/c-parser.cc:3708
 #, gcc-internal-format
@@ -47503,10 +47131,9 @@ msgid "expected identifier or %<(%>"
 msgstr "очікується ідентифікатор або %<(%>"
 
 #: c/c-parser.cc:4920
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C requires a named argument before %<...%> before C2X"
+#, gcc-internal-format
 msgid "ISO C requires a named argument before %<...%> before C23"
-msgstr "ISO C вимагає іменованого аргументу перед %<...%> до C2X"
+msgstr "ISO C вимагає іменованого аргументу перед %<...%> перед C23"
 
 #: c/c-parser.cc:5045
 #, gcc-internal-format
@@ -47539,10 +47166,9 @@ msgid "%qE attribute does not take any arguments"
 msgstr "атрибут %qE не приймає жодних аргументів"
 
 #: c/c-parser.cc:5891
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C does not support %<[[]]%> attributes before C2X"
+#, gcc-internal-format
 msgid "ISO C does not support %<[[]]%> attributes before C23"
-msgstr "ISO C не підтримує атрибути %<[[]]%> до C2X"
+msgstr "ISO C не підтримує атрибути %<[[]]%> перед C23"
 
 #: c/c-parser.cc:6104 c/c-parser.cc:6167 c/c-typeck.cc:8824
 #, gcc-internal-format
@@ -47550,10 +47176,9 @@ msgid "variable-sized object may not be initialized except with an empty initial
 msgstr "обʼєкт змінної розмірності може бути ініціалізований лише з порожнім ініціалізатором"
 
 #: c/c-parser.cc:6161
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C forbids empty initializer braces before C2X"
+#, gcc-internal-format
 msgid "ISO C forbids empty initializer braces before C23"
-msgstr "ISO C забороняє порожні фігурні дужки ініціалізатора до C2X"
+msgstr "ISO C забороняє пусті фігурні дужки ініціалізатора перед C23"
 
 #: c/c-parser.cc:6225
 #, gcc-internal-format
@@ -47576,22 +47201,19 @@ msgid "obsolete use of designated initializer without %<=%>"
 msgstr "застаріле використання призначеного ініціалізатора без %<=%>"
 
 #: c/c-parser.cc:6565 cp/parser.cc:13308
-#, fuzzy, gcc-internal-format
-#| msgid "no valid clauses specified in %<#pragma acc declare%>"
+#, gcc-internal-format
 msgid "inner loops must be perfectly nested in %<#pragma acc loop%>"
-msgstr "не вказано жодних дійсних замикань в %<#pragma acc declare%>"
+msgstr "внутрішні цикли повинні бути ідеально вкладені в %<#pragma acc loop%>"
 
 #: c/c-parser.cc:6572 cp/parser.cc:13315
-#, fuzzy, gcc-internal-format
-#| msgid "%<ordered%> region must be closely nested inside a loop region with an %<ordered%> clause"
+#, gcc-internal-format
 msgid "inner loops must be perfectly nested with %<ordered%> clause"
-msgstr "%<ordered%> область повинна бути тісно вкладена всередині області циклу з %<ordered%> замиканням"
+msgstr "внутрішні цикли повинні бути ідеально вкладені з клаузою %<ordered%>"
 
 #: c/c-parser.cc:6579 cp/parser.cc:13322
-#, fuzzy, gcc-internal-format
-#| msgid "%<nogroup%> clause must not be used together with %<reduction%> clause"
+#, gcc-internal-format
 msgid "inner loops must be perfectly nested with %<reduction%> %<inscan%> clause"
-msgstr "умову %<nogroup%> не слід використовувати разом з умовою %<reduction%>"
+msgstr "внутрішні цикли повинні бути ідеально вкладені з клаузою %<reduction%> %<inscan%>"
 
 #: c/c-parser.cc:6636 c/c-parser.cc:6791 cp/parser.cc:12240 cp/parser.cc:12390
 #: cp/parser.cc:48620
@@ -47600,17 +47222,15 @@ msgid "mixing OpenMP directives with attribute and pragma syntax on the same sta
 msgstr "змішування директив OpenMP з атрибутами та синтаксисом pragma в одному операторі"
 
 #: c/c-parser.cc:6644 cp/parser.cc:12248
-#, fuzzy, gcc-internal-format
-#| msgid "%<omp::%E%> attribute requires argument"
+#, gcc-internal-format
 msgid "OpenMP %<omp::decl%> attribute on a statement"
-msgstr "атрибут %<omp::%E%> вимагає аргумент"
+msgstr "Атрибут OpenMP %<omp::decl%> для оператора"
 
 #: c/c-parser.cc:6668 c/c-parser.cc:6887 c/c-parser.cc:25086 cp/parser.cc:12272
 #: cp/parser.cc:48600 cp/parser.cc:48740
-#, fuzzy, gcc-internal-format
-#| msgid "unknown OpenMP directive name in %qs clause argument"
+#, gcc-internal-format
 msgid "unknown OpenMP directive name in %qs attribute argument"
-msgstr "невідома назва директиви OpenMP в аргументі замикання %qs"
+msgstr "невідома назва директиви OpenMP у аргументі атрибуту %qs"
 
 #: c/c-parser.cc:6760 cp/parser.cc:12359
 #, gcc-internal-format
@@ -47716,7 +47336,7 @@ msgstr "рекомендується використовувати явні ф
 #: c/c-parser.cc:8120 c/c-parser.cc:8185 c/c-parser.cc:8304 cp/parser.cc:14614
 #, gcc-internal-format
 msgid "loop not permitted in intervening code in OpenMP loop body"
-msgstr ""
+msgstr "Цикл не дозволений у проміжному коді тіла циклу OpenMP"
 
 #: c/c-parser.cc:8193
 #, gcc-internal-format
@@ -48079,34 +47699,29 @@ msgid "wrong number of arguments to %<__builtin_shuffle%>"
 msgstr "неправильна кількість аргументів для %<__builtin_shuffle%>"
 
 #: c/c-parser.cc:11849
-#, fuzzy, gcc-internal-format
-#| msgid "wrong number of arguments"
+#, gcc-internal-format
 msgid "wrong number of arguments to %qs"
-msgstr "неправильна кількість аргументів"
+msgstr "неправильна кількість аргументів для %qs"
 
 #: c/c-parser.cc:11858
-#, fuzzy, gcc-internal-format
-#| msgid "%qD does not have integral type"
+#, gcc-internal-format
 msgid "%qs operand not an integral type"
-msgstr "%qD не має цілочисельного типу"
+msgstr "операнд %qs не є цілочисельним типом"
 
 #: c/c-parser.cc:11864
-#, fuzzy, gcc-internal-format
-#| msgid "argument 3 in call to function %qE has enumerated type"
+#, gcc-internal-format
 msgid "argument %u in call to function %qs has enumerated type"
-msgstr "аргумент 3 у виклику функції %qE є типом з перелічуванням"
+msgstr "аргумент %u у виклику функції %qs має перерахований тип"
 
 #: c/c-parser.cc:11871
-#, fuzzy, gcc-internal-format
-#| msgid "argument 3 in call to function %qE has boolean type"
+#, gcc-internal-format
 msgid "argument %u in call to function %qs has boolean type"
-msgstr "аргумент 3 у виклику функції %qE має тип boolean"
+msgstr "аргумент %u у виклику функції %qs має булевий тип"
 
 #: c/c-parser.cc:11878
-#, fuzzy, gcc-internal-format
-#| msgid "argument 3 in call to function %qE has enumerated type"
+#, gcc-internal-format
 msgid "argument 1 in call to function %qs has signed type"
-msgstr "аргумент 3 у виклику функції %qE є типом з перелічуванням"
+msgstr "аргумент 1 у виклику функції %qs має знаковий тип"
 
 #: c/c-parser.cc:12142 cp/parser.cc:6134
 #, gcc-internal-format
@@ -48114,10 +47729,9 @@ msgid "%<omp_all_memory%> may only be used in OpenMP %<depend%> clause"
 msgstr "%<omp_all_memory%> може використовуватися тільки в замиканні OpenMP %<depend%>"
 
 #: c/c-parser.cc:12152
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C does not support %qs before C2X"
+#, gcc-internal-format
 msgid "ISO C does not support %qs before C23"
-msgstr "ISO C не підтримує %qs до C2X"
+msgstr "ISO C не підтримує %qs перед C23"
 
 #: c/c-parser.cc:12240
 #, gcc-internal-format
@@ -48150,10 +47764,9 @@ msgid "ISO C90 forbids compound literals"
 msgstr "ISO C90 забороняє складені літерали"
 
 #: c/c-parser.cc:12303
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C forbids storage class specifiers in compound literals before C2X"
+#, gcc-internal-format
 msgid "ISO C forbids storage class specifiers in compound literals before C23"
-msgstr "ISO C забороняє специфікатори класу сховища в складених літералах до C2X"
+msgstr "ISO C забороняє специфікатори класу зберігання в складених літералах перед C23"
 
 #: c/c-parser.cc:12317
 #, gcc-internal-format
@@ -48223,7 +47836,7 @@ msgstr "функція модуля %qD отримала аргумент тип
 #: c/c-parser.cc:12625 cp/parser.cc:8164
 #, gcc-internal-format
 msgid "calls to the OpenMP runtime API are not permitted in intervening code"
-msgstr ""
+msgstr "Виклики до OpenMP runtime API не дозволені в проміжному коді"
 
 #: c/c-parser.cc:12999
 #, gcc-internal-format
@@ -48303,7 +47916,7 @@ msgstr "%<#pragma GCC unroll%> вимагає виразу присвоєння,
 #: c/c-parser.cc:14489 cp/parser.cc:50798
 #, gcc-internal-format
 msgid "intervening code must not contain OpenMP directives"
-msgstr ""
+msgstr "Проміжний код не повинен містити директив OpenMP"
 
 #: c/c-parser.cc:14509 c/c-parser.cc:23629 c/c-parser.cc:23938
 #: c/c-parser.cc:24001 c/c-parser.cc:24111 cp/parser.cc:46426
@@ -48394,10 +48007,9 @@ msgid "expected %<none%>, %<shared%>, %<private%> or %<firstprivate%>"
 msgstr "очікувався %<none%>, %<shared%>, %<private%> або %<firstprivate%>"
 
 #: c/c-parser.cc:15974 cp/parser.cc:39147
-#, fuzzy, gcc-internal-format
-#| msgid "expected goto expression"
+#, gcc-internal-format
 msgid "expected constant logical expression"
-msgstr "очікуваний вираз «goto»"
+msgstr "очікується константне логічне вираження"
 
 #: c/c-parser.cc:16051 cp/parser.cc:39229
 #, gcc-internal-format
@@ -48469,10 +48081,9 @@ msgid "expected %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<non
 msgstr "очікується %<alloc%>, %<to%>, %<from%>, %<tofrom%>, %<firstprivate%>, %<none%> або %<default%>"
 
 #: c/c-parser.cc:16601
-#, fuzzy, gcc-internal-format
-#| msgid "expected %<scalar%>, %<aggregate%> or %<pointer%>"
+#, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<pointer%> or %<all%>"
-msgstr "очікується %<scalar%>, %<aggregate%> або %<pointer%>"
+msgstr "очікується %<scalar%>, %<aggregate%>, %<pointer%> або %<all%>"
 
 #: c/c-parser.cc:16678 cp/parser.cc:39765
 #, gcc-internal-format
@@ -48511,10 +48122,9 @@ msgid "%<tile%> argument needs positive integral constant"
 msgstr "аргумент %<tile%> повинен бути додатньою цілочисельною константою"
 
 #: c/c-parser.cc:17108 cp/parser.cc:41876
-#, fuzzy, gcc-internal-format
-#| msgid "too many %<if%> clauses"
+#, gcc-internal-format
 msgid "too many %<self%> clauses"
-msgstr "занадто багато %<if%> замиканнь"
+msgstr "занадто багато клауз %<self%>"
 
 #: c/c-parser.cc:17150 cp/parser.cc:39818
 #, gcc-internal-format
@@ -48658,16 +48268,14 @@ msgid "too many %<close%> modifiers"
 msgstr "Забагато модифікаторів %<close%>"
 
 #: c/c-parser.cc:18841 cp/parser.cc:41503
-#, fuzzy, gcc-internal-format
-#| msgid "too many %<close%> modifiers"
+#, gcc-internal-format
 msgid "too many %<present%> modifiers"
-msgstr "Забагато модифікаторів %<close%>"
+msgstr "занадто багато модифікаторів %<present%>"
 
 #: c/c-parser.cc:18849 cp/parser.cc:41514
-#, fuzzy, gcc-internal-format
-#| msgid "%<#pragma omp target%> with modifier other than %<always%> or %<close%> on %<map%> clause"
+#, gcc-internal-format
 msgid "%<map%> clause with map-type modifier other than %<always%>, %<close%> or %<present%>"
-msgstr "%<#pragma omp target%> з модифікатором, відмінним від %<always%> або %<close%>, на замиканні %<map%>"
+msgstr "%<map%> клауза з модифікатором типу мапи, відмінним від %<always%>, %<close%> або %<present%>"
 
 #: c/c-parser.cc:18887 cp/parser.cc:41554
 #, gcc-internal-format
@@ -48710,10 +48318,9 @@ msgid "%<detach%> clause event handle has type %qT rather than %<omp_event_handl
 msgstr "тип обробника події в замиканні %<detach%> - %qT, а не %<omp_event_handle_t%>"
 
 #: c/c-parser.cc:19440 cp/parser.cc:42092
-#, fuzzy, gcc-internal-format
-#| msgid "expected assumption clause"
+#, gcc-internal-format
 msgid "expected an OpenACC clause"
-msgstr "очікується замикання припущення"
+msgstr "очікується клауза OpenACC"
 
 #: c/c-parser.cc:19451 c/c-parser.cc:19816 cp/parser.cc:42103
 #: cp/parser.cc:42511
@@ -48732,10 +48339,9 @@ msgid "%qs must be the first clause of %qs"
 msgstr "%qs повинен бути першою замиканням %qs"
 
 #: c/c-parser.cc:19805 cp/parser.cc:42500
-#, fuzzy, gcc-internal-format
-#| msgid "expected assumption clause"
+#, gcc-internal-format
 msgid "expected an OpenMP clause"
-msgstr "очікується замикання припущення"
+msgstr "очікується клауза OpenMP"
 
 #: c/c-parser.cc:19964 cp/parser.cc:47349
 #, gcc-internal-format
@@ -48790,7 +48396,7 @@ msgstr "%<#pragma acc %s data%> не має замикання переміще
 #: c/c-parser.cc:20182 cp/parser.cc:47309
 #, gcc-internal-format
 msgid "%<host_data%> construct requires %<use_device%> clause"
-msgstr ""
+msgstr "конструкція %<host_data%> вимагає клаузи %<use_device%>"
 
 #: c/c-parser.cc:20411 cp/parser.cc:3367
 #, gcc-internal-format
@@ -48833,27 +48439,24 @@ msgid "%<#pragma acc update%> must contain at least one %<device%> or %<host%> o
 msgstr "%<#pragma acc update%> повинен містити принаймні одну замикання %<device%> або %<host%> або %<self%>"
 
 #: c/c-parser.cc:20631
-#, fuzzy, gcc-internal-format
-#| msgid "variables in %<__regio_symbol%> address space must be declared %<extern%>"
+#, gcc-internal-format
 msgid "variable %qD used in the %<allocator%> clause must be declared before %qD"
-msgstr "Змінні в адресному просторі %<__regio_symbol%> повинні бути оголошені як %<extern%>"
+msgstr "Змінну %qD, використовувану в клаузі %<allocator%>, потрібно оголосити перед %qD"
 
 #: c/c-parser.cc:20635 c/c-parser.cc:20658
-#, fuzzy, gcc-internal-format
-#| msgid "template parameter %qD declared here"
+#, gcc-internal-format
 msgid "to be allocated variable declared here"
-msgstr "параметр шаблона %qD оголошений тут"
+msgstr "змінна, яка має бути виділена пам'яті, оголошена тут"
 
 #: c/c-parser.cc:20653
 #, gcc-internal-format
 msgid "variable %qD used in the %<allocator%> clause must not be modified between declaration of %qD and its %<allocate%> directive"
-msgstr ""
+msgstr "Змінну %qD в клаузі %<allocator%> не можна змінювати між оголошенням %qD і його директивою %<allocate%>"
 
 #: c/c-parser.cc:20656
-#, fuzzy, gcc-internal-format
-#| msgid "defined here"
+#, gcc-internal-format
 msgid "modified here"
-msgstr "визначено тут"
+msgstr "змінено тут"
 
 #: c/c-parser.cc:20724 cp/parser.cc:42625 cp/parser.cc:42640
 #, gcc-internal-format
@@ -48866,39 +48469,34 @@ msgid "%<allocator%> clause allocator expression has type %qT rather than %<omp_
 msgstr "вираз алокатора в замиканні %<allocator%> має тип %qT, а не %<omp_allocator_handle_t%>"
 
 #: c/c-parser.cc:20765
-#, fuzzy, gcc-internal-format
-#| msgid "parameter %qD may not appear in this context"
+#, gcc-internal-format
 msgid "function parameter %qD may not appear as list item in an %<allocate%> directive"
-msgstr "параметр %qD не може зʼявлятися в цьому контексті"
+msgstr "Параметр функції %qD не може з'явитися як елемент списку у директиві %<allocate%>"
 
 #: c/c-parser.cc:20772
-#, fuzzy, gcc-internal-format
-#| msgid "deduction guide %qD must be declared in the same scope as %qT"
+#, gcc-internal-format
 msgid "%<allocate%> directive must be in the same scope as %qD"
-msgstr "посібник з виведення %qD повинен бути оголошений в тому ж області видимості, що й %qT"
+msgstr "Директива %<allocate%> повинна бути в тому самому області видимості, що і %qD"
 
 #: c/c-parser.cc:20780
-#, fuzzy, gcc-internal-format
-#| msgid "%qD appears more than once in %<allocate%> clauses"
+#, gcc-internal-format
 msgid "%qD already appeared as list item in an %<allocate%> directive"
-msgstr "%qD зустрічається більше одного разу в замиканнях %<allocate%>"
+msgstr "%qD вже з'явився як елемент списку у директиві %<allocate%>"
 
 #: c/c-parser.cc:20787
 #, gcc-internal-format
 msgid "%<allocator%> clause required for static variable %qD"
-msgstr ""
+msgstr "Для статичної змінної %qD потрібна клауза %<allocator%>"
 
 #: c/c-parser.cc:20794
-#, fuzzy, gcc-internal-format
-#| msgid "%<allocate%> clause must specify an allocator here"
+#, gcc-internal-format
 msgid "%<allocator%> clause requires a predefined allocator as %qD is static"
-msgstr "замикання %<allocate%> повинна вказувати алокатор тут"
+msgstr "Клауза %<allocator%> вимагає вказати попередньо визначений аллокатор, оскільки %qD є статичним"
 
 #: c/c-parser.cc:20798
-#, fuzzy, gcc-internal-format
-#| msgid "%<#pragma omp allocate%> not yet supported"
+#, gcc-internal-format
 msgid "%<#pragma omp allocate%> for static variables like %qD not yet supported"
-msgstr "%<#pragma omp allocate%> ще не підтримується"
+msgstr "%<#pragma omp allocate%> для статичних змінних, таких як %qD, ще не підтримується"
 
 #: c/c-parser.cc:20949 cp/parser.cc:42805
 #, gcc-internal-format
@@ -48938,16 +48536,14 @@ msgid "%qs clause requires %qs clause"
 msgstr "замикання %qs потребує замикання %qs"
 
 #: c/c-parser.cc:21113 cp/parser.cc:42974
-#, fuzzy, gcc-internal-format
-#| msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause"
+#, gcc-internal-format
 msgid "%<#pragma omp atomic write%> incompatible with %<acquire%> clause implicitly provided by a %<requires%> directive"
-msgstr "%<#pragma omp atomic write%> несумісний з замиканням %<acquire%>"
+msgstr "%<#pragma omp atomic write%> несумісний з неявно наданою директивою %<requires%> клаузою %<acquire%>"
 
 #: c/c-parser.cc:21124 cp/parser.cc:42985
-#, fuzzy, gcc-internal-format
-#| msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause"
+#, gcc-internal-format
 msgid "%<#pragma omp atomic read%> incompatible with %<release%> clause implicitly provided by a %<requires%> directive"
-msgstr "%<#pragma omp atomic read%> несумісний з замиканням %<release%>"
+msgstr "%<#pragma omp atomic read%> несумісний з неявно наданою директивою %<requires%> клаузою %<release%>"
 
 #: c/c-parser.cc:21156 cp/parser.cc:43017
 #, gcc-internal-format
@@ -49011,15 +48607,14 @@ msgid "%<depobj%> expression is not lvalue expression"
 msgstr "Вираз %<depobj%> не є виразом lvalue"
 
 #: c/c-parser.cc:21918
-#, fuzzy, gcc-internal-format
-#| msgid "%<depobj%> expression is not lvalue expression"
+#, gcc-internal-format
 msgid "%<destroy%> expression is not lvalue expression"
-msgstr "Вираз %<depobj%> не є виразом lvalue"
+msgstr "Вираз %<destroy%> не є виразом lvalue"
 
 #: c/c-parser.cc:21924 cp/parser.cc:43791
 #, gcc-internal-format
 msgid "the %<destroy%> expression %qE should be the same as the %<depobj%> argument %qE"
-msgstr ""
+msgstr "вираз %<destroy%> %qE має бути ідентичним аргументу %<depobj%> %qE"
 
 #: c/c-parser.cc:21955 cp/parser.cc:43827
 #, gcc-internal-format
@@ -49052,10 +48647,9 @@ msgid "%<[[omp::directive(%s)]]%> must be the only specified attribute on a stat
 msgstr "%<[[omp::directive(%s)]]%> повинен бути єдиним вказаним атрибутом в операторі"
 
 #: c/c-parser.cc:22159 cp/parser.cc:44664
-#, fuzzy, gcc-internal-format
-#| msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
+#, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero preceding executable statements"
-msgstr "%<#pragma omp ordered%> з %qs замиканням може використовуватися лише в складних операторах"
+msgstr "%<#pragma omp scan%> з відсутністю попередніх виконуваних операторів"
 
 #: c/c-parser.cc:22193 cp/parser.cc:44697
 #, gcc-internal-format
@@ -49068,10 +48662,9 @@ msgid "expected %<#pragma omp scan%>"
 msgstr "очікується %<#pragma omp scan%>"
 
 #: c/c-parser.cc:22207 cp/parser.cc:44712
-#, fuzzy, gcc-internal-format
-#| msgid "%<#pragma omp ordered%> with %qs clause may only be used in compound statements"
+#, gcc-internal-format
 msgid "%<#pragma omp scan%> with zero succeeding executable statements"
-msgstr "%<#pragma omp ordered%> з %qs замиканням може використовуватися лише в складних операторах"
+msgstr "%<#pragma omp scan%> з відсутністю наступних виконуваних операторів"
 
 #: c/c-parser.cc:22325 cp/semantics.cc:10805 cp/semantics.cc:10890
 #, gcc-internal-format
@@ -49080,10 +48673,9 @@ msgstr "очікувалася оголошення або ініціаліза
 
 #: c/c-parser.cc:22411 c/c-parser.cc:22426 cp/parser.cc:45055
 #: cp/parser.cc:45070
-#, fuzzy, gcc-internal-format
-#| msgid "not enough perfectly nested loops"
+#, gcc-internal-format
 msgid "not enough nested loops"
-msgstr "недостатньо добре вкладених циклів"
+msgstr "Недостатньо вкладених циклів"
 
 #: c/c-parser.cc:22526 cp/parser.cc:45342
 #, gcc-internal-format
@@ -49171,10 +48763,9 @@ msgid "expected trait selector name"
 msgstr "очікуване імʼя селектора ознаки"
 
 #: c/c-parser.cc:24613 cp/parser.cc:47925
-#, fuzzy, gcc-internal-format
-#| msgid "selector %qs not allowed for context selector set %qs"
+#, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs"
-msgstr "селектор %qs не дозволений для набору селекторів контексту %qs"
+msgstr "Невідомий селектор %qs для набору селекторів контексту %qs"
 
 #: c/c-parser.cc:24641 cp/parser.cc:47954
 #, gcc-internal-format
@@ -49182,22 +48773,19 @@ msgid "selector %qs does not accept any properties"
 msgstr "селектор %qs не приймає жодних властивостей"
 
 #: c/c-parser.cc:24663 cp/parser.cc:47986
-#, fuzzy, gcc-internal-format
-#| msgid "%<friend%> can only be specified inside a class"
+#, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set"
-msgstr "%<friend%> може бути вказано лише всередині класу"
+msgstr "%<score%> не може бути вказано у властивостях для селектора властивостей %qs"
 
 #: c/c-parser.cc:24672 cp/parser.cc:47996
-#, fuzzy, gcc-internal-format
-#| msgid "score argument must be constant integer expression"
+#, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression"
-msgstr "аргумент score повинен бути цілим сталим виразом"
+msgstr "аргумент %<score%> повинен бути сталим цілочисельним виразом"
 
 #: c/c-parser.cc:24675 cp/parser.cc:47999
-#, fuzzy, gcc-internal-format
-#| msgid "score argument must be non-negative"
+#, gcc-internal-format
 msgid "%<score%> argument must be non-negative"
-msgstr "аргумент score повинен бути не відʼємним"
+msgstr "аргумент %<score%> повинен бути невід'ємним"
 
 #: c/c-parser.cc:24716 cp/parser.cc:48045
 #, gcc-internal-format
@@ -49218,16 +48806,14 @@ msgstr "властивості для селектора %<simd%> не можу
 #. Currently only the now-deprecated syntax
 #. from OpenMP 5.0 is supported.
 #: c/c-parser.cc:24776 cp/parser.cc:48100 fortran/openmp.cc:5921
-#, fuzzy, gcc-internal-format
-#| msgid "%<-fpie%> is not supported"
+#, gcc-internal-format
 msgid "%<requires%> selector is not supported yet"
-msgstr "%<-fpie%> не підтримується"
+msgstr "селектор %<requires%> ще не підтримується"
 
 #: c/c-parser.cc:24835 cp/parser.cc:48163
-#, fuzzy, gcc-internal-format
-#| msgid "expected trait selector name"
+#, gcc-internal-format
 msgid "expected context selector set name"
-msgstr "очікуване імʼя селектора ознаки"
+msgstr "очікується ім'я набору селектора контексту"
 
 #: c/c-parser.cc:24912 cp/parser.cc:48478
 #, gcc-internal-format
@@ -49270,16 +48856,14 @@ msgid "%qD specified both in declare target %<link%> and %<to%> or %<enter%> cla
 msgstr "%qD вказано як у замиканні declare target %<link%>, так і в замиканні %<to%> або %<enter%>"
 
 #: c/c-parser.cc:25270 cp/parser.cc:48947
-#, fuzzy, gcc-internal-format
-#| msgid "directive with only %<device_type%> clause"
+#, gcc-internal-format
 msgid "directive with only %<device_type%> or %<indirect%> clauses"
-msgstr "директива з замиканням %<device_type%>"
+msgstr "директива тільки з клаузами %<device_type%> або %<indirect%>"
 
 #: c/c-parser.cc:25273 cp/parser.cc:48950
-#, fuzzy, gcc-internal-format
-#| msgid "%<detach%> clause must not be used together with %<mergeable%> clause"
+#, gcc-internal-format
 msgid "%<device_type%> clause must specify 'any' when used with an %<indirect%> clause"
-msgstr "умову %<detach%> не слід використовувати разом з умовою %<mergeable%>"
+msgstr "клауза %<device_type%> повинна вказувати 'any', коли використовується з клаузою %<indirect%>"
 
 #: c/c-parser.cc:25322 c/c-parser.cc:25364 cp/parser.cc:49005
 #: cp/parser.cc:49052
@@ -49370,10 +48954,9 @@ msgid "expected %<simd%>, %<reduction%>, %<target%> or %<variant%>"
 msgstr "очікується %<simd%>, %<reduction%>, %<target%> або %<variant%>"
 
 #: c/c-parser.cc:25908 cp/parser.cc:49654
-#, fuzzy, gcc-internal-format
-#| msgid "expected %<seq_cst%>, %<acq_rel%>, %<release%> or %<acquire%>"
+#, gcc-internal-format
 msgid "expected %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> or %<seq_cst%>"
-msgstr "очікується %<seq_cst%>, %<acq_rel%>, %<release%> або %<acquire%>"
+msgstr "очікується %<acq_rel%>, %<acquire%>, %<relaxed%>, %<release%> або %<seq_cst%>"
 
 #: c/c-parser.cc:25937 cp/parser.cc:49689
 #, gcc-internal-format
@@ -49574,13 +49157,12 @@ msgstr "не можна змішувати операнди десяткових
 #: c/c-typeck.cc:928
 #, gcc-internal-format
 msgid "%<_Complex _BitInt(%d)%> unsupported"
-msgstr ""
+msgstr "%<_Complex _BitInt(%d)%> не підтримується"
 
 #: c/c-typeck.cc:1474
-#, fuzzy, gcc-internal-format
-#| msgid "invalid use of pointers to arrays with different qualifiers in ISO C before C2X"
+#, gcc-internal-format
 msgid "invalid use of pointers to arrays with different qualifiers in ISO C before C23"
-msgstr "неприпустиме використання вказівників на масиви з різними кваліфікаторами в ISO C до C2X"
+msgstr "неправильне використання вказівників на масиви з різними кваліфікаторами в ISO C до C23"
 
 #: c/c-typeck.cc:1478
 #, gcc-internal-format
@@ -49598,10 +49180,9 @@ msgid "function return types not compatible due to %<volatile%>"
 msgstr "типи повернення функцій несумісні через %<volatile%>"
 
 #: c/c-typeck.cc:1907
-#, fuzzy, gcc-internal-format
-#| msgid "converting an array compound literal to a pointer is ill-formed in C++"
+#, gcc-internal-format
 msgid "converting an array compound literal to a pointer leads to a dangling pointer in C++"
-msgstr "перетворення складного літерала масиву на вказівник є неправильним у C++"
+msgstr "перетворення складеного літерала масиву на вказівник призводить до висячого вказівника в C++"
 
 #: c/c-typeck.cc:2601 c/c-typeck.cc:9854
 #, gcc-internal-format
@@ -49977,10 +49558,9 @@ msgid "pointer to array loses qualifier in conditional expression"
 msgstr "вказівник на масив втрачає кваліфікатор в умовному виразі"
 
 #: c/c-typeck.cc:5667
-#, fuzzy, gcc-internal-format
-#| msgid "pointer to array loses qualifier in conditional expression in ISO C before C2X"
+#, gcc-internal-format
 msgid "pointer to array loses qualifier in conditional expression in ISO C before C23"
-msgstr "вказівник на масив втрачає кваліфікатор в умовному виразі в ISO C до C2X"
+msgstr "вказівник на масив втрачає кваліфікатор у умовному виразі в ISO C до C23"
 
 #: c/c-typeck.cc:5672
 #, gcc-internal-format
@@ -49993,16 +49573,14 @@ msgid "pointer type mismatch in conditional expression"
 msgstr "несумісні типи вказівників в умовному виразі"
 
 #: c/c-typeck.cc:5697
-#, fuzzy, gcc-internal-format
-#| msgid "Expected expression type"
+#, gcc-internal-format
 msgid "first expression has type %qT"
-msgstr "Очікуваний тип виразу"
+msgstr "перший вираз має тип %qT"
 
 #: c/c-typeck.cc:5698
-#, fuzzy, gcc-internal-format
-#| msgid "Expected expression type"
+#, gcc-internal-format
 msgid "second expression has type %qT"
-msgstr "Очікуваний тип виразу"
+msgstr "другий вираз має тип %qT"
 
 #: c/c-typeck.cc:5709 c/c-typeck.cc:5722
 #, gcc-internal-format
@@ -50078,10 +49656,9 @@ msgid "ISO C forbids casting nonscalar to the same type"
 msgstr "ISO C забороняє приведення нескалярного типу до того ж типу"
 
 #: c/c-typeck.cc:6201
-#, fuzzy, gcc-internal-format
-#| msgid "useless cast to type %q#T"
+#, gcc-internal-format
 msgid "useless cast to type %qT"
-msgstr "непотрібне приведення до типу %q#T"
+msgstr "безглузде перетворення типу на %qT"
 
 #: c/c-typeck.cc:6221
 #, gcc-internal-format
@@ -50341,10 +49918,9 @@ msgid "ISO C forbids return between function pointer and %<void *%>"
 msgstr "ISO C забороняє повернення між вказівником на функцію та %<void *%>"
 
 #: c/c-typeck.cc:7771
-#, fuzzy, gcc-internal-format
-#| msgid "array with qualifier on the element is not qualified before C2X"
+#, gcc-internal-format
 msgid "array with qualifier on the element is not qualified before C23"
-msgstr "масив з кваліфікатором на елементі не має кваліфікатора перед C2X"
+msgstr "масив з кваліфікатором на елементі не має кваліфікатора до C23"
 
 #: c/c-typeck.cc:7788
 #, gcc-internal-format
@@ -50633,10 +50209,9 @@ msgid "enum conversion in initialization is invalid in C++"
 msgstr "перетворення перелічування при ініціалізації недійсне в C++"
 
 #: c/c-typeck.cc:10836
-#, fuzzy, gcc-internal-format
-#| msgid "excess elements in union initializer"
+#, gcc-internal-format
 msgid "excess elements in %qT initializer"
-msgstr "зайві елементи в ініціалізаторі обʼєднання"
+msgstr "зайві елементи в ініціалізаторі %qT"
 
 #: c/c-typeck.cc:10848 c/c-typeck.cc:10925
 #, gcc-internal-format
@@ -51237,10 +50812,9 @@ msgstr "секція масиву не має відображального т
 
 #: c/c-typeck.cc:15567 c/c-typeck.cc:15643 c/c-typeck.cc:15679
 #: cp/semantics.cc:8397 cp/semantics.cc:8476 cp/semantics.cc:8512
-#, fuzzy, gcc-internal-format
-#| msgid "unsupported memory expression:"
+#, gcc-internal-format
 msgid "unsupported map expression %qE"
-msgstr "непідтримуваний вираз памʼяті:"
+msgstr "непідтримуваний вираз мапи %qE"
 
 #: c/c-typeck.cc:15607 c/c-typeck.cc:15784 cp/semantics.cc:8438
 #: cp/semantics.cc:8656
@@ -51502,16 +51076,14 @@ msgid "invalid type of %<__MEM%> operand"
 msgstr "недійсний тип операнда %<__MEM%>"
 
 #: c/gimple-parser.cc:1563
-#, fuzzy, gcc-internal-format
-#| msgid "expected constant offset"
+#, gcc-internal-format
 msgid "expected constant offset for %<__MEM%> operand"
-msgstr "очікуваний сталий зсув"
+msgstr "очікується стале зміщення для операнда %<__MEM%>"
 
 #: c/gimple-parser.cc:1574
-#, fuzzy, gcc-internal-format
-#| msgid "invalid type of %<__MEM%> operand"
+#, gcc-internal-format
 msgid "expected constant step for %<__MEM%> operand"
-msgstr "недійсний тип операнда %<__MEM%>"
+msgstr "очікується стала величина кроку для операнда %<__MEM__>"
 
 #: c/gimple-parser.cc:1627
 #, gcc-internal-format
@@ -51585,10 +51157,9 @@ msgid "expected case label"
 msgstr "очікувана мітка «case»"
 
 #: cp/call.cc:2041
-#, fuzzy, gcc-internal-format
-#| msgid "casting %qT to %qT does not dereference pointer"
+#, gcc-internal-format
 msgid "casting %qT to %qT does not use %qD"
-msgstr "приведення типу %qT до %qT не розіменовує вказівник"
+msgstr "перетворення з %qT на %qT не використовує %qD"
 
 #. A bad conversion for 'this' must be discarding cv-quals.
 #: cp/call.cc:3888
@@ -51656,10 +51227,9 @@ msgid "%s%#qD (near match)"
 msgstr "%s%#qD (близьке співпадіння)"
 
 #: cp/call.cc:3977
-#, fuzzy, gcc-internal-format
-#| msgid "%s%#qD (reversed)"
+#, gcc-internal-format
 msgid "%s%#qD (ignored)"
-msgstr "%s%#qD (зворотнє)"
+msgstr "%s%#qD (ігнорується)"
 
 #: cp/call.cc:3979
 #, gcc-internal-format
@@ -51720,7 +51290,7 @@ msgstr "  успадкований конструктор не є кандида
 #: cp/call.cc:4132
 #, gcc-internal-format
 msgid "some candidates omitted; use %<-fdiagnostics-all-candidates%> to display them"
-msgstr ""
+msgstr "деякі кандидати опущені; використовуйте %<-fdiagnostics-all-candidates%>, щоб відобразити їх"
 
 #: cp/call.cc:4213 cp/call.cc:4758
 #, gcc-internal-format
@@ -51909,16 +51479,14 @@ msgid "enumerated mismatch in conditional expression: %qT vs %qT"
 msgstr "несумісність перелічування в умовному виразі: %qT проти %qT"
 
 #: cp/call.cc:6286
-#, fuzzy, gcc-internal-format
-#| msgid "conditional expression between enumeration type %qT and floating-point type %qT is deprecated"
+#, gcc-internal-format
 msgid "conditional expression between enumeration type %qT and floating-point type %qT"
-msgstr "умовний вираз між перелічуванням типу %qT та типом з плаваючою точкою %qT є застарілим"
+msgstr "умовний вираз між типом перерахування %qT та типом з плаваючою комою %qT"
 
 #: cp/call.cc:6290
-#, fuzzy, gcc-internal-format
-#| msgid "conditional expression between floating-point type %qT and enumeration type %qT is deprecated"
+#, gcc-internal-format
 msgid "conditional expression between floating-point type %qT and enumeration type %qT"
-msgstr "умовний вираз між типом з плаваючою точкою %qT та перелічуванням типу %qT є застарілим"
+msgstr "умовний вираз між типом з плаваючою комою %qT та типом перерахування %qT"
 
 #: cp/call.cc:6294
 #, gcc-internal-format
@@ -52076,16 +51644,12 @@ msgid "converting to %qH from %qI requires direct-initialization"
 msgstr "конвертація в %qH з %qI вимагає прямої ініціалізації"
 
 #: cp/call.cc:8471
-#, fuzzy
-#| msgid "converting to %qH from %qI with greater conversion rank"
 msgid "ISO C++ does not allow converting to %qH from %qI with greater conversion rank"
-msgstr "конвертація в %qH з %qI з більшим рангом конвертації"
+msgstr "ISO C++ не дозволяє конвертувати з %qH на %qI з більшим рангом конверсії"
 
 #: cp/call.cc:8479
-#, fuzzy
-#| msgid "converting to %qH from %qI with unordered conversion ranks"
 msgid "ISO C++ does not allow converting to %qH from %qI with unordered conversion rank"
-msgstr "перетворення на %qH з %qI з неупорядкованими рангами конверсії"
+msgstr "ISO C++ не дозволяє конвертувати з %qH на %qI з невпорядкованим рангом конверсії"
 
 #: cp/call.cc:8495
 msgid "invalid user-defined conversion from %qH to %qI"
@@ -52192,7 +51756,7 @@ msgstr "використання функції з багатьма версія
 #: cp/call.cc:10021
 #, gcc-internal-format
 msgid "use %<-fdiagnostics-all-candidates%> to display considered candidates"
-msgstr ""
+msgstr "Використовуйте %<-fdiagnostics-all-candidates%>, щоб відобразити кандидати, взяті до уваги"
 
 #: cp/call.cc:10144
 #, gcc-internal-format
@@ -52488,7 +52052,7 @@ msgstr "тимчасовий обʼєкт був знищений в кінці
 #: cp/call.cc:14599
 #, gcc-internal-format
 msgid "explicit conversion function was not considered"
-msgstr ""
+msgstr "явна функція конверсії не була розглянута"
 
 #: cp/class.cc:322
 #, gcc-internal-format
@@ -52780,7 +52344,7 @@ msgstr "член-вказівник %q+D оголошений тут"
 #: cp/class.cc:4316
 #, gcc-internal-format
 msgid "layout of %qs member of type %qT changes in %qs"
-msgstr ""
+msgstr "Розташування члена %qs типу %qT змінюється в %qs"
 
 #: cp/class.cc:4709
 #, gcc-internal-format
@@ -53013,16 +52577,14 @@ msgid "converting overloaded function %qD to type %q#T is ambiguous"
 msgstr "Перетворення перевантаженої функції %qD на тип %q#T є неоднозначним"
 
 #: cp/class.cc:8979
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
+#, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function."
-msgstr "ISO C++ забороняє взяти адресу некваліфікованої або укладеної нестатичної член-функції для створення вказівника на член-функцію. Скажіть %<&%T::%D%>"
+msgstr "ISO C++ забороняє брати адресу некваліфікованої або дужкової нестатичної функції-члена для створення вказівника на явну функцію-член об'єкта."
 
 #: cp/class.cc:8984
-#, fuzzy, gcc-internal-format
-#| msgid "(a pointer to member can only be formed with %<&%E%>)"
+#, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%E%>"
-msgstr "(вказівник на член може бути створений лише з %<&%E%>)"
+msgstr "вказівник на явну функцію-член об'єкта можна створити тільки з %<&%E%>"
 
 #: cp/class.cc:8994
 #, gcc-internal-format
@@ -53129,7 +52691,7 @@ msgstr "%qD не може бути використана як функція з
 #: cp/constexpr.cc:1315 cp/constexpr.cc:6364
 #, gcc-internal-format
 msgid "destroying %qE outside its lifetime"
-msgstr ""
+msgstr "знищення %qE поза його часом життя"
 
 #: cp/constexpr.cc:1606 cp/constexpr.cc:3317
 #: rust/backend/rust-constexpr.cc:3326 rust/backend/rust-constexpr.cc:3589
@@ -53281,21 +52843,19 @@ msgid "%<constexpr%> evaluation depth exceeds maximum of %d (use %<-fconstexpr-d
 msgstr "глибина оцінки %<constexpr%> перевищує максимальне значення %d (використовуйте %<-fconstexpr-depth=%>, щоб збільшити максимальне значення)"
 
 #: cp/constexpr.cc:3547
-#, fuzzy, gcc-internal-format
-#| msgid "expression %qE is not a constant expression"
+#, gcc-internal-format
 msgid "reference to %qD is not a constant expression"
-msgstr "Вираз %qE не є константним виразом"
+msgstr "посилання на %qD не є константним виразом"
 
 #: cp/constexpr.cc:3550
-#, fuzzy, gcc-internal-format
-#| msgid "%qE is not a constant expression"
+#, gcc-internal-format
 msgid "pointer to %qD is not a constant expression"
-msgstr "%qE не є константним виразом"
+msgstr "вказівник на %qD не є константним виразом"
 
 #: cp/constexpr.cc:3556
 #, gcc-internal-format
 msgid "address of non-static constexpr variable %qD may differ on each invocation of the enclosing function; add %<static%> to give it a constant address"
-msgstr ""
+msgstr "адреса константного значення змінної %qD може відрізнятися при кожному виклику оточуючої функції; додайте  %<static%>, щоб дати їй сталу адресу."
 
 #: cp/constexpr.cc:3632
 #, gcc-internal-format
@@ -53471,10 +53031,9 @@ msgid "allocated here"
 msgstr "виділено тут"
 
 #: cp/constexpr.cc:5996
-#, fuzzy, gcc-internal-format
-#| msgid "Access terminates outside of its parent"
+#, gcc-internal-format
 msgid "accessing %qE outside its lifetime"
-msgstr "Доступ закінчується за межами батьківського обʼєкту"
+msgstr "доступ до %qE поза його терміном існування"
 
 #: cp/constexpr.cc:6016
 #, gcc-internal-format
@@ -53517,44 +53076,39 @@ msgid "%qD does not have integral or enumeration type"
 msgstr "%qD не має цілочисельного або перелічувального типу"
 
 #: cp/constexpr.cc:6357
-#, fuzzy, gcc-internal-format
-#| msgid "use of allocated storage after deallocation in a constant expression"
+#, gcc-internal-format
 msgid "modification of allocated storage after deallocation is not a constant expression"
-msgstr "використання виділеного сховища після звільнення в константному виразі"
+msgstr "модифікація виділеної пам'яті після її звільнення не є константним виразом"
 
 #: cp/constexpr.cc:6366
-#, fuzzy, gcc-internal-format
-#| msgid "modification of %qE is not a constant expression"
+#, gcc-internal-format
 msgid "modification of %qE outside its lifetime is not a constant expression"
-msgstr "зміна %qE не є константним виразом"
+msgstr "модифікація %qE поза його терміном існування не є константним виразом"
 
 #: cp/constexpr.cc:6373
-#, fuzzy, gcc-internal-format
-#| msgid "%<reinterpret_cast%> is not a constant expression"
+#, gcc-internal-format
 msgid "destroying %qE from outside current evaluation is not a constant expression"
-msgstr "%<reinterpret_cast%> не є константним виразом"
+msgstr "знищення %qE поза поточним оцінюванням не є константним виразом"
 
 #: cp/constexpr.cc:6376
-#, fuzzy, gcc-internal-format
-#| msgid "modification of %qE is not a constant expression"
+#, gcc-internal-format
 msgid "modification of %qE from outside current evaluation is not a constant expression"
-msgstr "зміна %qE не є константним виразом"
+msgstr "модифікація %qE поза поточним оцінюванням не є константним виразом"
 
 #: cp/constexpr.cc:6503
-#, fuzzy, gcc-internal-format
-#| msgid "change of the active member of a union from %qD to %qD during initialization"
+#, gcc-internal-format
 msgid "change of the active member of a union from %qD to %qD is not a constant expression before C++20"
-msgstr "зміна активного члена обʼєднання з %qD на %qD під час ініціалізації"
+msgstr "зміна активного члена об'єднання з %qD на %qD не є константним виразом до C++20"
 
 #: cp/constexpr.cc:6532
 #, gcc-internal-format
 msgid "%qD does not implicitly begin its lifetime because %qT does not have a non-deleted trivial default constructor, use %<std::construct_at%> instead"
-msgstr ""
+msgstr "%qD не починає свій термін існування неявно, оскільки %qT не має невидаленого тривіального конструктора за замовчуванням, використовуйте %<std::construct_at%> замість цього"
 
 #: cp/constexpr.cc:6539
 #, gcc-internal-format
 msgid "initializing %qD requires a member access expression as the left operand of the assignment"
-msgstr ""
+msgstr "ініціалізація %qD вимагає виразу доступу до члена як лівого операнда присвоювання"
 
 #: cp/constexpr.cc:6551 rust/backend/rust-constexpr.cc:2822
 #, gcc-internal-format
@@ -53644,28 +53198,24 @@ msgid "conversion from pointer type %qT to arithmetic type %qT in a constant exp
 msgstr "перетворення з типу вказівника %qT до арифметичного типу %qT в константному виразі"
 
 #: cp/constexpr.cc:8181
-#, fuzzy, gcc-internal-format
-#| msgid "%qE is not a constant expression because it refers to mutable subobjects of %qT"
+#, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because pointed-to type %qT is not similar to %qT"
-msgstr "%qE не є константним виразом, оскільки він посилається на змінні підобʼєкти %qT"
+msgstr "Приведення типів з %qT не дозволено в константному виразі, оскільки тип, на який вказує %qT, не схожий на %qT"
 
 #: cp/constexpr.cc:8188
-#, fuzzy, gcc-internal-format
-#| msgid "pointer member %q+D declared here"
+#, gcc-internal-format
 msgid "pointed-to object declared here"
-msgstr "член-вказівник %q+D оголошений тут"
+msgstr "Вказаний об'єкт оголошено тут"
 
 #: cp/constexpr.cc:8193
-#, fuzzy, gcc-internal-format
-#| msgid "%qs is not a constant expression because %qT is a pointer to member type"
+#, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression because %qE does not point to an object"
-msgstr "%qs не є константним виразом, оскільки %qT є типом вказівника на член"
+msgstr "Приведення типів з %qT не дозволено в константному виразі, оскільки %qE не вказує на об'єкт"
 
 #: cp/constexpr.cc:8205
-#, fuzzy, gcc-internal-format
-#| msgid "modifying a const object %qE is not allowed in a constant expression"
+#, gcc-internal-format
 msgid "cast from %qT is not allowed in a constant expression before C++26"
-msgstr "зміна константного обʼєкту %qE не дозволена в константному виразі"
+msgstr "Приведення типів з %qT не дозволено в константному виразі перед C++26"
 
 #: cp/constexpr.cc:8219
 #, gcc-internal-format
@@ -53739,10 +53289,9 @@ msgid "immediate evaluation returns address of immediate function %qD"
 msgstr "негайна оцінка повертає адресу негайної функції %qD"
 
 #: cp/constexpr.cc:8941
-#, fuzzy, gcc-internal-format
-#| msgid "immediate evaluation returns address of immediate function %qD"
+#, gcc-internal-format
 msgid "constant evaluation returns address of immediate function %qD"
-msgstr "негайна оцінка повертає адресу негайної функції %qD"
+msgstr "Оцінка константи повертає адресу негайної функції %qD"
 
 #: cp/constexpr.cc:9579 rust/backend/rust-constexpr.cc:5667
 #, gcc-internal-format
@@ -54052,10 +53601,9 @@ msgid "  %qT is not an aggregate"
 msgstr "  %qT не є агрегатом"
 
 #: cp/constraint.cc:3757
-#, fuzzy, gcc-internal-format
-#| msgid "  %qT is not an aggregate"
+#, gcc-internal-format
 msgid "  %qT is not an array"
-msgstr "  %qT не є агрегатом"
+msgstr "  %qT не є масивом"
 
 #: cp/constraint.cc:3760
 #, gcc-internal-format
@@ -54068,10 +53616,9 @@ msgid "  %qT is not a base of %qT"
 msgstr "  %qT не є базовим класом для %qT"
 
 #: cp/constraint.cc:3766
-#, fuzzy, gcc-internal-format
-#| msgid "  %qT is not an aggregate"
+#, gcc-internal-format
 msgid "  %qT is not a bounded array"
-msgstr "  %qT не є агрегатом"
+msgstr "  %qT не є обмеженим масивом"
 
 #: cp/constraint.cc:3769
 #, gcc-internal-format
@@ -54109,10 +53656,9 @@ msgid "  %qT is not a final class"
 msgstr "  %qT не є заключним класом"
 
 #: cp/constraint.cc:3790
-#, fuzzy, gcc-internal-format
-#| msgid "  %qT is not a union"
+#, gcc-internal-format
 msgid "  %qT is not a function"
-msgstr "  %qT не є обʼєднанням"
+msgstr "  %qT не є функцією"
 
 #: cp/constraint.cc:3793
 #, gcc-internal-format
@@ -54125,22 +53671,19 @@ msgid "  %qT is not a literal type"
 msgstr "  %qT не є літеральним типом"
 
 #: cp/constraint.cc:3799
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is not a member template function"
+#, gcc-internal-format
 msgid "  %qT is not a member function pointer"
-msgstr "%qD не є шаблонною функцією-членом"
+msgstr "  %qT не є вказівником на член-функцію"
 
 #: cp/constraint.cc:3802
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a member of %qT"
+#, gcc-internal-format
 msgid "  %qT is not a member object pointer"
-msgstr "%qT не є членом %qT"
+msgstr "  %qT не є вказівником на член-об'єкт"
 
 #: cp/constraint.cc:3805
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a member of %qT"
+#, gcc-internal-format
 msgid "  %qT is not a member pointer"
-msgstr "%qT не є членом %qT"
+msgstr "  %qT не є вказівником на член"
 
 #: cp/constraint.cc:3808
 #, gcc-internal-format
@@ -54158,10 +53701,9 @@ msgid "  %qT is not nothrow convertible from %qE"
 msgstr "  %qT не може бути безпечно перетворений з %qE"
 
 #: cp/constraint.cc:3820
-#, fuzzy, gcc-internal-format
-#| msgid "  %qT is not a POD type"
+#, gcc-internal-format
 msgid "  %qT is not an object type"
-msgstr "  %qT не є типом POD (Plain Old Data)"
+msgstr "  %qT не є типом об'єкта"
 
 #: cp/constraint.cc:3823
 #, gcc-internal-format
@@ -54179,10 +53721,9 @@ msgid "  %qT is not a polymorphic type"
 msgstr "  %qT не є поліморфним типом"
 
 #: cp/constraint.cc:3833
-#, fuzzy, gcc-internal-format
-#| msgid "  %qT is not an enum"
+#, gcc-internal-format
 msgid "  %qT is not a reference"
-msgstr "  %qT не є перелічуванням"
+msgstr "  %qT не є посиланням"
 
 #: cp/constraint.cc:3836
 #, gcc-internal-format
@@ -54190,10 +53731,9 @@ msgid "  %qT is not the same as %qT"
 msgstr "  %qT не є таким самим, як %qT"
 
 #: cp/constraint.cc:3839
-#, fuzzy, gcc-internal-format
-#| msgid "  %qT is not an enum"
+#, gcc-internal-format
 msgid "  %qT is not a scoped enum"
-msgstr "  %qT не є перелічуванням"
+msgstr "  %qT не є обмеженим перерахуванням"
 
 #: cp/constraint.cc:3842
 #, gcc-internal-format
@@ -54602,13 +54142,12 @@ msgstr "обидва гілки оператора %<if%> позначені я
 #: cp/cp-gimplify.cc:536
 #, gcc-internal-format
 msgid "%qD was promoted to an immediate function because its body contains an immediate-escalating expression %qE"
-msgstr ""
+msgstr "%qD було підвищено до негайної функції, оскільки її тіло містить вираз з негайним ескалюванням %qE"
 
 #: cp/cp-gimplify.cc:539
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is not a template function"
+#, gcc-internal-format
 msgid "%qD was promoted to an immediate function"
-msgstr "%qD не є шаблонною функцією"
+msgstr "%qD було підвищено до негайної функції"
 
 #: cp/cp-gimplify.cc:1174
 #, gcc-internal-format
@@ -54616,10 +54155,9 @@ msgid "taking address of an immediate function %qD"
 msgstr "береться адреса негайної функції %qD"
 
 #: cp/cp-gimplify.cc:1273
-#, fuzzy, gcc-internal-format
-#| msgid "address of a call to %qs is not a constant expression"
+#, gcc-internal-format
 msgid "call to consteval function %qE is not a constant expression"
-msgstr "адреса виклику %qs не є константним виразом"
+msgstr "Виклик функції consteval %qE не є константним виразом"
 
 #: cp/cp-gimplify.cc:2012
 #, gcc-internal-format
@@ -55243,51 +54781,44 @@ msgid "%q#D previously declared here"
 msgstr "%q#D раніше оголошено тут"
 
 #: cp/decl.cc:2097
-#, fuzzy, gcc-internal-format
-#| msgid "method declaration not in @interface context"
+#, gcc-internal-format
 msgid "parameter declaration is not name-independent"
-msgstr "оголошення методу не в контексті @interface"
+msgstr "Оголошення параметра не є іменем незалежним"
 
 #: cp/decl.cc:2102
-#, fuzzy, gcc-internal-format
-#| msgid "structured binding declaration set but not used"
+#, gcc-internal-format
 msgid "structured binding at namespace scope is not name-independent"
-msgstr "встановлено декларацію структурованого звʼязування, але не використовується"
+msgstr "Структуроване прив'язування в області видимості простору імен не є іменем незалежним"
 
 #: cp/decl.cc:2106
-#, fuzzy, gcc-internal-format
-#| msgid "structured binding has incomplete type %qT"
+#, gcc-internal-format
 msgid "static structured binding is not name-independent"
-msgstr "структуроване привʼязування має неповний тип %qT"
+msgstr "Статичне структуроване прив'язування не є іменем незалежним"
 
 #: cp/decl.cc:2110
-#, fuzzy, gcc-internal-format
-#| msgid "structured binding has incomplete type %qT"
+#, gcc-internal-format
 msgid "extern structured binding is not name-independent"
-msgstr "структуроване привʼязування має неповний тип %qT"
+msgstr "Зовнішнє структуроване прив'язування не є іменем незалежним"
 
 #: cp/decl.cc:2117
-#, fuzzy, gcc-internal-format
-#| msgid "static data member %qD in unnamed class"
+#, gcc-internal-format
 msgid "static data member is not name-independent"
-msgstr "статичний член даних %qD в безіменному класі"
+msgstr "Статичний член даних не є іменем незалежним"
 
 #: cp/decl.cc:2120
 #, gcc-internal-format
 msgid "variable at namespace scope is not name-independent"
-msgstr ""
+msgstr "змінна в області видимості простору імен залежить від назви"
 
 #: cp/decl.cc:2123
-#, fuzzy, gcc-internal-format
-#| msgid "%qs variable is not a pointer"
+#, gcc-internal-format
 msgid "static variable is not name-independent"
-msgstr "змінна %qs не є вказівником"
+msgstr "статична змінна не є незалежною від імені"
 
 #: cp/decl.cc:2126
-#, fuzzy, gcc-internal-format
-#| msgid "environment variable %qs not defined"
+#, gcc-internal-format
 msgid "extern variable is not name-independent"
-msgstr "змінна середовища %qs не визначена"
+msgstr "змінна extern не є незалежною від імені"
 
 #: cp/decl.cc:2138
 #, gcc-internal-format
@@ -55320,16 +54851,14 @@ msgid "previous specification in %q#D here"
 msgstr "попередня специфікація в %q#D тут"
 
 #: cp/decl.cc:2300 cp/decl.cc:16654
-#, fuzzy, gcc-internal-format
-#| msgid "conflicting exporting declaration %qD"
+#, gcc-internal-format
 msgid "conflicting exporting for declaration %qD"
-msgstr "конфліктна експортна декларація %qD"
+msgstr "конфліктний експорт для оголошення %qD"
 
 #: cp/decl.cc:2302 cp/decl.cc:16656
-#, fuzzy, gcc-internal-format
-#| msgid "previously declared here"
+#, gcc-internal-format
 msgid "previously declared here without exporting"
-msgstr "раніше оголошено тут"
+msgstr "попередньо оголошено тут без експортування"
 
 #: cp/decl.cc:2330
 #, gcc-internal-format
@@ -55459,7 +54988,7 @@ msgstr "перехід до мітки case"
 #: cp/decl.cc:3703
 #, gcc-internal-format
 msgid "  as a possible target of computed goto"
-msgstr ""
+msgstr "  як можлива мітка для обчисленого переходу goto"
 
 #: cp/decl.cc:3705
 #, gcc-internal-format
@@ -55512,16 +55041,14 @@ msgid "  enters %<consteval if%> statement"
 msgstr "  входить у інструкцію %<consteval if%>"
 
 #: cp/decl.cc:3838 cp/decl.cc:4012
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C99 does not support %qE"
+#, gcc-internal-format
 msgid "  does not destroy %qD"
-msgstr "ISO C99 не підтримує %qE"
+msgstr "  не знищує %qD"
 
 #: cp/decl.cc:3840 cp/decl.cc:3995
-#, fuzzy, gcc-internal-format
-#| msgid "%s does not take any feature options"
+#, gcc-internal-format
 msgid "  does not clean up handled exception"
-msgstr "%s не приймає жодних опцій функцій"
+msgstr "  не очищає оброблену виняткову ситуацію"
 
 #: cp/decl.cc:3931
 #, gcc-internal-format
@@ -55785,10 +55312,9 @@ msgid "declaration of %q#D outside of class is not definition"
 msgstr "декларація %q#D поза класом не є визначенням"
 
 #: cp/decl.cc:6106
-#, fuzzy, gcc-internal-format
-#| msgid "block-scope extern declaration %q#D not permitted in module purview"
+#, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
-msgstr "екстерна декларація %q#D з областю видимості блоку не дозволена в модульному контексті"
+msgstr "оголошення зовнішньої області блоку %q#D не повинно бути прикріпленим до іменованого модуля"
 
 #: cp/decl.cc:6142
 #, gcc-internal-format
@@ -56366,15 +55892,14 @@ msgid "constraints on a non-templated function"
 msgstr "обмеження на функцію без шаблону"
 
 #: cp/decl.cc:10604
-#, fuzzy, gcc-internal-format
-#| msgid "friend declaration not in class definition"
+#, gcc-internal-format
 msgid "constrained non-template friend declaration must be a definition"
-msgstr "Оголошення друзів не визначено в описі класу"
+msgstr "обмежений оголошення друга, який не є шаблоном, повинен бути визначенням"
 
 #: cp/decl.cc:10611
 #, gcc-internal-format
 msgid "friend function template with constraints that depend on outer template parameters must be a definition"
-msgstr ""
+msgstr "шаблон дружньої функції з обмеженнями, що залежать від зовнішніх параметрів шаблону, повинен бути визначенням"
 
 #: cp/decl.cc:10660
 #, gcc-internal-format
@@ -56432,10 +55957,9 @@ msgid "static member function %qD cannot have cv-qualifier"
 msgstr "статична функція-член %qD не може мати cv-кваліфікатор"
 
 #: cp/decl.cc:10838
-#, fuzzy, gcc-internal-format
-#| msgid "static member function %qD cannot have cv-qualifier"
+#, gcc-internal-format
 msgid "explicit object member function %qD cannot have cv-qualifier"
-msgstr "статична функція-член %qD не може мати cv-кваліфікатор"
+msgstr "явна функція-член об'єкта %qD не може мати cv-кваліфікатора"
 
 #: cp/decl.cc:10843
 #, gcc-internal-format
@@ -56448,16 +55972,14 @@ msgid "static member function %qD cannot have ref-qualifier"
 msgstr "статичний метод класу %qD не може мати кваліфікатор посилання"
 
 #: cp/decl.cc:10846
-#, fuzzy, gcc-internal-format
-#| msgid "static member function %qD cannot have ref-qualifier"
+#, gcc-internal-format
 msgid "explicit object member function %qD cannot have ref-qualifier"
-msgstr "статичний метод класу %qD не може мати кваліфікатор посилання"
+msgstr "явна функція-член об'єкта %qD не може мати ref-кваліфікатора"
 
 #: cp/decl.cc:10852 cp/decl.cc:13735 cp/decl.cc:13745 cp/parser.cc:11972
-#, fuzzy, gcc-internal-format
-#| msgid "template parameter %qD declared here"
+#, gcc-internal-format
 msgid "explicit object parameter declared here"
-msgstr "параметр шаблона %qD оголошений тут"
+msgstr "явний параметр об'єкта оголошено тут"
 
 #: cp/decl.cc:10864
 #, gcc-internal-format
@@ -57042,50 +56564,44 @@ msgid "remove parentheses"
 msgstr "видалити дужки"
 
 #: cp/decl.cc:13365
-#, fuzzy, gcc-internal-format
-#| msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
+#, gcc-internal-format
 msgid "explicit object member function only available with %<-std=c++23%> or %<-std=gnu++23%>"
-msgstr "виведення псевдоніма шаблону доступне лише з %<-std=c++20%> або %<-std=gnu++20%>"
+msgstr "явна функція-член об'єкта доступна тільки з %<-std=c++23%> або %<-std=gnu++23%>"
 
 #: cp/decl.cc:13379
-#, fuzzy, gcc-internal-format
-#| msgid "Function %qs at %L cannot have an initializer"
+#, gcc-internal-format
 msgid "a function type cannot have an explicit object parameter"
-msgstr "Функція %qs на %L не може мати ініціалізатора"
+msgstr "тип функції не може мати явного параметра об'єкта"
 
 #: cp/decl.cc:13385
-#, fuzzy, gcc-internal-format
-#| msgid "a conversion function cannot have a trailing return type"
+#, gcc-internal-format
 msgid "a pointer to function type cannot have an explicit object parameter"
-msgstr "Функція перетворення не може мати приєднаний тип повернення"
+msgstr "вказівник на тип функції не може мати явного параметра об'єкта"
 
 #: cp/decl.cc:13389
-#, fuzzy, gcc-internal-format
-#| msgid "  member function type %qT is not a valid template argument"
+#, gcc-internal-format
 msgid "a pointer to member function type cannot have an explicit object parameter"
-msgstr "  тип функції-члена %qT не є допустимим аргументом шаблона"
+msgstr "вказівник на тип функції-члена не може мати явного параметра об'єкта"
 
 #: cp/decl.cc:13397
 #, gcc-internal-format
 msgid "the type of a pointer to explicit object member function is a regular pointer to function type"
-msgstr ""
+msgstr "тип вказівника на явну членську функцію об'єкта є звичайним вказівником на тип функції"
 
 #: cp/decl.cc:13401
-#, fuzzy, gcc-internal-format
-#| msgid "typedef may not be a member function definition"
+#, gcc-internal-format
 msgid "the type of an explicit object member function is a regular function type"
-msgstr "typedef не може бути визначенням методу класу"
+msgstr "тип явної функції-члена об'єкта є звичайним типом функції"
 
 #: cp/decl.cc:13422
 #, gcc-internal-format
 msgid "only the first parameter of a member function can be declared as an explicit object parameter"
-msgstr ""
+msgstr "тільки перший параметр членської функції може бути оголошений як явний об'єктний параметр"
 
 #: cp/decl.cc:13427
-#, fuzzy, gcc-internal-format
-#| msgid "template parameter %qD declared here"
+#, gcc-internal-format
 msgid "valid explicit object parameter declared here"
-msgstr "параметр шаблона %qD оголошений тут"
+msgstr "дійсний явний параметр об'єкта оголошено тут"
 
 #: cp/decl.cc:13431
 #, gcc-internal-format
@@ -57233,27 +56749,24 @@ msgid "friend function definition %qs cannot have a name qualified with %<%D::%>
 msgstr "визначення friend-функції %qs не може мати імені, яке кваліфіковане з %<%D::%>"
 
 #: cp/decl.cc:13724
-#, fuzzy, gcc-internal-format
-#| msgid "non-member function %qD cannot have cv-qualifier"
+#, gcc-internal-format
 msgid "a non-member function cannot have an explicit object parameter"
-msgstr "функція, не є членом %qD, не може мати cv-кваліфікатор"
+msgstr "не-членська функція не може мати явного параметра об'єкта"
 
 #: cp/decl.cc:13732
-#, fuzzy, gcc-internal-format
-#| msgid "implicit templates may not be %<virtual%>"
+#, gcc-internal-format
 msgid "an explicit object member function cannot be %<virtual%>"
-msgstr "імпліцитні шаблони не можуть бути %<virtual%>"
+msgstr "явна функція-член об'єкта не може бути %<віртуальною%>"
 
 #: cp/decl.cc:13742
 #, gcc-internal-format
 msgid "an explicit object member function cannot be %<static%>"
-msgstr ""
+msgstr "явна членська функція об'єкта не може бути %<static%%>"
 
 #: cp/decl.cc:13751
-#, fuzzy, gcc-internal-format
-#| msgid "%qD must be a member function"
+#, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
-msgstr "%qD повинна бути функцією-членом"
+msgstr "%qD не може бути явною членською функцією об'єкта"
 
 #: cp/decl.cc:13774
 #, gcc-internal-format
@@ -57637,10 +57150,9 @@ msgid "storage class %<thread_local%> invalid for function %qs"
 msgstr "клас зберігання %<thread_local%> недійсний для функції %qs"
 
 #: cp/decl.cc:15041
-#, fuzzy, gcc-internal-format
-#| msgid "alignment specified for function %qE"
+#, gcc-internal-format
 msgid "%<constinit%> specifier invalid for function %qs"
-msgstr "вказано вирівнювання для функції %qE"
+msgstr "специфікатор %<constinit%> недійсний для функції %qs"
 
 #: cp/decl.cc:15044
 #, gcc-internal-format
@@ -58414,16 +57926,14 @@ msgid "%qT declared with greater visibility than its base %qT"
 msgstr "%qT оголошено з більшою видимістю, ніж його база %qT"
 
 #: cp/decl2.cc:4714
-#, fuzzy, gcc-internal-format
-#| msgid "%q#D, declared using unnamed type, is used but never defined"
+#, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but never defined"
-msgstr "%q#D, оголошений за допомогою безіменного типу, використовується, але ніколи не визначений"
+msgstr "%q#D, оголошений за допомогою безіменного типу, використовується, але ніколи не визначено"
 
 #: cp/decl2.cc:4718
-#, fuzzy, gcc-internal-format
-#| msgid "%q#D, declared using unnamed type, is used but never defined"
+#, gcc-internal-format
 msgid "%q#D, declared using an unnamed type, is used but not defined"
-msgstr "%q#D, оголошений за допомогою безіменного типу, використовується, але ніколи не визначений"
+msgstr "%q#D, оголошений за допомогою безіменного типу, використовується, але не визначено"
 
 #. DRs 132, 319 and 389 seem to indicate types with
 #. no linkage can only be used to declare extern "C"
@@ -58450,10 +57960,9 @@ msgid "%q#D, declared using local type %qT, is used but never defined"
 msgstr "%q#D, оголошений за допомогою локального типу %qT, використовується, але ніколи не визначений"
 
 #: cp/decl2.cc:4758
-#, fuzzy, gcc-internal-format
-#| msgid "%q#D, declared using local type %qT, is used but never defined"
+#, gcc-internal-format
 msgid "%q#D, declared using local type %qT, is used but not defined here"
-msgstr "%q#D, оголошений за допомогою локального типу %qT, використовується, але ніколи не визначений"
+msgstr "%q#D, оголошений за допомогою локального типу %qT, використовується, але не визначено тут"
 
 #: cp/decl2.cc:4766
 #, gcc-internal-format
@@ -59802,52 +59311,44 @@ msgid "declaration %qD conflicts with builtin"
 msgstr "декларація %qD конфліктує з вбудованою функцією"
 
 #: cp/module.cc:19122
-#, fuzzy, gcc-internal-format
-#| msgid "declaration %qD conflicts with import"
+#, gcc-internal-format
 msgid "redeclaring %qD in module %qs conflicts with import"
-msgstr "декларація %qD конфліктує з імпортом"
+msgstr "повторне оголошення %qD у модулі %qs конфліктує з імпортом"
 
 #: cp/module.cc:19125
-#, fuzzy, gcc-internal-format
-#| msgid "declaration %qD conflicts with import"
+#, gcc-internal-format
 msgid "redeclaring %qD in global module conflicts with import"
-msgstr "декларація %qD конфліктує з імпортом"
+msgstr "повторне оголошення %qD у глобальному модулі конфліктує з імпортом"
 
 #: cp/module.cc:19130
-#, fuzzy, gcc-internal-format
-#| msgid "import declared %q#D here"
+#, gcc-internal-format
 msgid "import declared attached to module %qs"
-msgstr "імпорт оголошено %q#D тут"
+msgstr "імпорт оголошений прикріплений до модуля %qs"
 
 #: cp/module.cc:19134
-#, fuzzy, gcc-internal-format
-#| msgid "import-declaration must be at global scope"
+#, gcc-internal-format
 msgid "import declared in global module"
-msgstr "Декларація імпорту повинна бути в глобальному контексті"
+msgstr "імпорт оголошений у глобальному модулі"
 
 #: cp/module.cc:19140
-#, fuzzy, gcc-internal-format
-#| msgid "conflicting declaration of template %q#D"
+#, gcc-internal-format
 msgid "conflicting declaration of %qD in module %qs"
-msgstr "конфліктна декларація шаблону %q#D"
+msgstr "конфліктне оголошення %qD у модулі %qs"
 
 #: cp/module.cc:19143
-#, fuzzy, gcc-internal-format
-#| msgid "conflicting declaration of %q#D with %qL linkage"
+#, gcc-internal-format
 msgid "conflicting declaration of %qD in global module"
-msgstr "конфліктуюче оголошення %q#D з %qL звʼязком"
+msgstr "конфліктне оголошення %qD у глобальному модулі"
 
 #: cp/module.cc:19148
-#, fuzzy, gcc-internal-format
-#| msgid "previously declared as %s"
+#, gcc-internal-format
 msgid "previously declared in module %qs"
-msgstr "раніше оголошено як %s"
+msgstr "раніше оголошений у модулі %qs"
 
 #: cp/module.cc:19152
-#, fuzzy, gcc-internal-format
-#| msgid "previously declared as %s"
+#, gcc-internal-format
 msgid "previously declared in global module"
-msgstr "раніше оголошено як %s"
+msgstr "раніше оголошений у глобальному модулі"
 
 #: cp/module.cc:19404
 #, gcc-internal-format
@@ -59992,10 +59493,9 @@ msgid "unknown header kind %qs"
 msgstr "невідомий тип заголовка %qs"
 
 #: cp/name-lookup.cc:2860 cp/name-lookup.cc:3936 cp/name-lookup.cc:4033
-#, fuzzy, gcc-internal-format
-#| msgid "alias template deduction only available with %<-std=c++20%> or %<-std=gnu++20%>"
+#, gcc-internal-format
 msgid "name-independent declarations only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
-msgstr "виведення псевдоніма шаблону доступне лише з %<-std=c++20%> або %<-std=gnu++20%>"
+msgstr "оголошення незалежні від імені доступні тільки з %<-std=c++2c%> або %<-std=gnu++2c%>"
 
 #: cp/name-lookup.cc:2891
 #, gcc-internal-format
@@ -60053,28 +59553,24 @@ msgid "%s %s %p %d"
 msgstr "%s %s %p %d"
 
 #: cp/name-lookup.cc:5158
-#, fuzzy, gcc-internal-format
-#| msgid "%q#D does not have external linkage"
+#, gcc-internal-format
 msgid "exporting %q#D that does not have external linkage"
-msgstr "%q#D не має зовнішнього звʼязку"
+msgstr "експортування %q#D, яке не має зовнішнього посилання"
 
 #: cp/name-lookup.cc:5163
-#, fuzzy, gcc-internal-format
-#| msgid "%q#D declared here"
+#, gcc-internal-format
 msgid "%q#D declared here with no linkage"
-msgstr "%q#D оголошений тут"
+msgstr "%q#D оголошений тут без посилання"
 
 #: cp/name-lookup.cc:5166
-#, fuzzy, gcc-internal-format
-#| msgid "%q#D does not have external linkage"
+#, gcc-internal-format
 msgid "%q#D declared here with internal linkage"
-msgstr "%q#D не має зовнішнього звʼязку"
+msgstr "%q#D оголошений тут з внутрішнім посиланням"
 
 #: cp/name-lookup.cc:5169
-#, fuzzy, gcc-internal-format
-#| msgid "%q#D declared here"
+#, gcc-internal-format
 msgid "%q#D declared here with module linkage"
-msgstr "%q#D оголошений тут"
+msgstr "%q#D оголошений тут з посиланням на модуль"
 
 #: cp/name-lookup.cc:5968
 #, gcc-internal-format
@@ -60200,10 +59696,9 @@ msgid "  %qE"
 msgstr "  %qE"
 
 #: cp/name-lookup.cc:7176
-#, fuzzy, gcc-internal-format
-#| msgid "%<std::%s%> is defined in header %qs; did you forget to %<#include %s%>?"
+#, gcc-internal-format
 msgid "%<std::%s%> is defined in header %qs; this is probably fixable by adding %<#include %s%>"
-msgstr "%<std::%s%> визначено в заголовку %qs; ви забули %<#include %s%>?"
+msgstr "%<std::%s%> визначено в заголовку %qs; це, ймовірно, можна виправити додаванням %<#include %s%>"
 
 #: cp/name-lookup.cc:7182
 #, gcc-internal-format
@@ -60783,16 +60278,14 @@ msgid "%<~auto%> only available with %<-std=c++14%> or %<-std=gnu++14%>"
 msgstr "%<~auto%> доступний лише з %<-std=c++14%> або %<-std=gnu++14%>"
 
 #: cp/parser.cc:6729 cp/parser.cc:6733
-#, fuzzy, gcc-internal-format
-#| msgid "template-id not allowed for destructor"
+#, gcc-internal-format
 msgid "template-id not allowed for destructor in C++20"
-msgstr "template-id не дозволено для деструктора"
+msgstr "шаблонний ідентифікатор не дозволено для деструктора в C++20"
 
 #: cp/parser.cc:6735 cp/parser.cc:32586
-#, fuzzy, gcc-internal-format
-#| msgid "remove parentheses"
+#, gcc-internal-format
 msgid "remove the %qs"
-msgstr "видалити дужки"
+msgstr "видаліть %qs"
 
 #: cp/parser.cc:6843
 #, gcc-internal-format
@@ -60885,15 +60378,14 @@ msgid "two consecutive %<[%> shall only introduce an attribute"
 msgstr "два підряд %<[%> можуть вводити лише атрибут"
 
 #: cp/parser.cc:8017
-#, fuzzy, gcc-internal-format
-#| msgid "types may not be defined within %<__builtin_offsetof%>"
+#, gcc-internal-format
 msgid "types may not be defined in %<__builtin_classify_type%> calls"
-msgstr "Типи не можуть бути визначені всередині %<__builtin_offsetof%>"
+msgstr "типи не можуть бути визначені у викликах %<__builtin_classify_type%>"
 
 #: cp/parser.cc:8400 cp/parser.cc:8429
 #, gcc-internal-format
 msgid "cannot use multidimensional subscript in OpenMP array section"
-msgstr ""
+msgstr "неможливо використовувати індекс з декількома вимірами у секції масиву OpenMP"
 
 #: cp/parser.cc:8687 cp/typeck.cc:3049
 #, gcc-internal-format
@@ -60998,7 +60490,7 @@ msgstr "Типи не можуть бути визначені всередин
 #: cp/parser.cc:11229
 #, gcc-internal-format
 msgid "trailing argument to %<__type_pack_element%> is not a type"
-msgstr ""
+msgstr "наступний аргумент для %<__type_pack_element%> не є типом"
 
 #: cp/parser.cc:11329
 #, gcc-internal-format
@@ -61114,34 +60606,32 @@ msgstr "Оголошення параметра перед специфікат
 #: cp/parser.cc:11932 cp/pt.cc:14783
 #, gcc-internal-format
 msgid "a lambda with captures may not have an explicit object parameter of an unrelated type"
-msgstr ""
+msgstr "лямбда-функція з захопленнями не може мати явного об'єктного параметра непов'язаного типу"
 
 #: cp/parser.cc:11945
-#, fuzzy, gcc-internal-format
-#| msgid "%<static%> lambda specifier with lambda capture"
+#, gcc-internal-format
 msgid "%<mutable%> lambda specifier with explicit object parameter"
-msgstr "Специфікатор лямбди %<static%> з захопленням лямбди"
+msgstr "специфікатор %<mutable%> для лямбда-функції з явним об'єктним параметром"
 
 #: cp/parser.cc:11954
 #, gcc-internal-format
 msgid "the passed in closure object will not be mutated because it is taken by value"
-msgstr ""
+msgstr "Об'єкт замикання, що передається, не буде змінено, оскільки він приймається по значенню"
 
 #: cp/parser.cc:11958
 #, gcc-internal-format
 msgid "declare the explicit object parameter as non-const reference instead"
-msgstr ""
+msgstr "Оголосіть явний об'єктний параметр як неконстантне посилання замість цього"
 
 #: cp/parser.cc:11962
 #, gcc-internal-format
 msgid "explicit object parameter is already a mutable reference"
-msgstr ""
+msgstr "явний об'єктний параметр вже є змінабельним посиланням"
 
 #: cp/parser.cc:11969
-#, fuzzy, gcc-internal-format
-#| msgid "%<static%> lambda specifier with lambda capture"
+#, gcc-internal-format
 msgid "%<static%> lambda specifier with explicit object parameter"
-msgstr "Специфікатор лямбди %<static%> з захопленням лямбди"
+msgstr "специфікатор %<static%> для лямбда-функції з явним об'єктним параметром"
 
 #: cp/parser.cc:11987
 #, gcc-internal-format
@@ -61332,10 +60822,9 @@ msgid "expected jump-statement"
 msgstr "очікується оператор переходу"
 
 #: cp/parser.cc:15090
-#, fuzzy, gcc-internal-format
-#| msgid "expected module-name"
+#, gcc-internal-format
 msgid "expected module-partition"
-msgstr "очікується імʼя модуля"
+msgstr "очікується module-partition"
 
 #: cp/parser.cc:15092
 #, gcc-internal-format
@@ -61381,7 +60870,7 @@ msgstr "Декларація імпорту повинна бути в глоб
 #: cp/parser.cc:15241
 #, gcc-internal-format
 msgid "import specifying a module-partition must appear after a named module-declaration"
-msgstr ""
+msgstr "імпортування, що вказує на модуль-розділ, повинно з'являтися після іменованого оголошення модуля"
 
 #: cp/parser.cc:15253
 #, gcc-internal-format
@@ -61479,10 +60968,9 @@ msgid "invalid initializer for structured binding declaration"
 msgstr "недійсний ініціалізатор для оголошення структурованої привʼязки"
 
 #: cp/parser.cc:16371
-#, fuzzy, gcc-internal-format
-#| msgid "DATA array %qs at %L must be specified in a previous declaration"
+#, gcc-internal-format
 msgid "%<this%> must be the first specifier in a parameter declaration"
-msgstr "Масив DATA %qs на %L повинен бути вказаний в попередньому оголошенні"
+msgstr "%<this%> має бути першим специфікатором у декларації параметра"
 
 #: cp/parser.cc:16394
 #, gcc-internal-format
@@ -61570,10 +61058,9 @@ msgid "%<static_assert%> without a message only available with %<-std=c++17%> or
 msgstr "%<static_assert%> без повідомлення доступний лише з %<-std=c++17%> або %<-std=gnu++17%>"
 
 #: cp/parser.cc:16974
-#, fuzzy, gcc-internal-format
-#| msgid "%<static_assert%> without a message only available with %<-std=c++17%> or %<-std=gnu++17%>"
+#, gcc-internal-format
 msgid "%<static_assert%> with non-string message only available with %<-std=c++2c%> or %<-std=gnu++2c%>"
-msgstr "%<static_assert%> без повідомлення доступний лише з %<-std=c++17%> або %<-std=gnu++17%>"
+msgstr "%<static_assert%> з повідомленням, що не є рядком, доступний лише з %<-std=c++2c%> або %<-std=gnu++2c%>"
 
 #: cp/parser.cc:17172
 #, gcc-internal-format
@@ -61798,10 +61285,9 @@ msgid "use of %<auto%> in lambda parameter declaration only available with %<-st
 msgstr "використання %<auto%> у оголошенні параметра лямбди доступно лише з %<-std=c++14%> або %<-std=gnu++14%>"
 
 #: cp/parser.cc:20356
-#, fuzzy, gcc-internal-format
-#| msgid "use of %<auto%> in parameter declaration only available with %<-std=c++20%> or %<-fconcepts%>"
+#, gcc-internal-format
 msgid "use of %<auto%> in template argument only available with %<-fconcepts-ts%>"
-msgstr "використання %<auto%> у оголошенні параметра доступно лише з %<-std=c++20%> або %<-fconcepts%>"
+msgstr "використання %<auto%> у аргументі шаблону доступне лише з %<-fconcepts-ts%>"
 
 #: cp/parser.cc:20360
 #, gcc-internal-format
@@ -61896,7 +61382,7 @@ msgstr "типи не можуть бути визначені в основі 
 #: cp/parser.cc:21618
 #, gcc-internal-format
 msgid "declaration of enumeration with fixed underlying type and no enumerator list is only permitted as a standalone declaration"
-msgstr ""
+msgstr "оголошення перерахування з фіксованим типом основи та без списку елементів можливе лише як окреме оголошення."
 
 #: cp/parser.cc:21622
 #, gcc-internal-format
@@ -62024,10 +61510,9 @@ msgid "comma-separated list in using-declaration only available with %<-std=c++1
 msgstr "розділений комами список у використанні-оголошенні доступний лише з %<-std=c++17%> або %<-std=gnu++17%>"
 
 #: cp/parser.cc:22408
-#, fuzzy, gcc-internal-format
-#| msgid "access declarations are deprecated in favour of using-declarations; suggestion: add the %<using%> keyword"
+#, gcc-internal-format
 msgid "access declarations are deprecated in favor of using-declarations; suggestion: add the %<using%> keyword"
-msgstr "оголошення доступу застарілі на користь оголошень «using»; пропозиція: додайте ключове слово %<using%>"
+msgstr "оголошення доступу застарілі на користь using-декларацій; пропозиція: додайте ключове слово %<using%>"
 
 #: cp/parser.cc:22454
 #, gcc-internal-format
@@ -62090,10 +61575,9 @@ msgid "%<asm%> qualifier outside of function body"
 msgstr "вказівник %<asm%> поза тілом функції"
 
 #: cp/parser.cc:22948
-#, fuzzy, gcc-internal-format
-#| msgid "attribute ignored in declaration of %q#T"
+#, gcc-internal-format
 msgid "attributes ignored on %<asm%> declaration"
-msgstr "атрибут ігнорується в оголошенні %q#T"
+msgstr "атрибути ігноруються на оголошенні %<asm%>"
 
 #: cp/parser.cc:23035
 #, gcc-internal-format
@@ -62288,16 +61772,14 @@ msgid "types may not be defined in parameter types"
 msgstr "типи не можуть бути визначені в типах параметрів"
 
 #: cp/parser.cc:25732
-#, fuzzy, gcc-internal-format
-#| msgid "too few template parameter lists in declaration of %qD"
+#, gcc-internal-format
 msgid "%<this%> specifier in template parameter declaration"
-msgstr "занадто мало списків параметрів шаблону в оголошенні %qD"
+msgstr "специфікатор %<this%> у декларації шаблону параметра"
 
 #: cp/parser.cc:25792
-#, fuzzy, gcc-internal-format
-#| msgid "non-parameter %qs cannot be a parameter pack"
+#, gcc-internal-format
 msgid "an explicit object parameter cannot be a function parameter pack"
-msgstr "непараметр %qs не може бути пакетом параметрів"
+msgstr "явний об'єктний параметр не може бути пакунком параметрів функції"
 
 #: cp/parser.cc:25839
 #, gcc-internal-format
@@ -62320,10 +61802,9 @@ msgid "parameter pack cannot have a default argument"
 msgstr "параметр пакету не може мати значення за замовчуванням"
 
 #: cp/parser.cc:25888
-#, fuzzy, gcc-internal-format
-#| msgid "template parameter pack cannot have a default argument"
+#, gcc-internal-format
 msgid "an explicit object parameter may not have a default argument"
-msgstr "параметр пакету шаблону не може мати значення за замовчуванням"
+msgstr "явний об'єктний параметр може не мати значення за замовчуванням"
 
 #: cp/parser.cc:26012
 #, gcc-internal-format
@@ -62605,10 +62086,9 @@ msgid "expected attribute before %<...%>"
 msgstr "очікується атрибут перед %<...%>"
 
 #: cp/parser.cc:30221
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute without arguments on a non-prototype"
+#, gcc-internal-format
 msgid "attribute with no arguments contains no parameter packs"
-msgstr "Атрибут %qE без аргументів на не-прототипі"
+msgstr "атрибут без аргументів не містить параметрів пакунків"
 
 #: cp/parser.cc:30267
 #, gcc-internal-format
@@ -62691,10 +62171,9 @@ msgid "too many template-parameter-lists"
 msgstr "занадто багато списків параметрів шаблону"
 
 #: cp/parser.cc:32585
-#, fuzzy, gcc-internal-format
-#| msgid "template-id not allowed for destructor"
+#, gcc-internal-format
 msgid "template-id not allowed for constructor in C++20"
-msgstr "template-id не дозволено для деструктора"
+msgstr "template-id не дозволено для конструктора в C++20"
 
 #: cp/parser.cc:32696
 #, gcc-internal-format
@@ -63107,10 +62586,9 @@ msgid "%<wait%> expression must be integral"
 msgstr "Вираз %<wait%> повинен бути цілочисельним"
 
 #: cp/parser.cc:39685
-#, fuzzy, gcc-internal-format
-#| msgid "expected %<scalar%>, %<aggregate%> or %<pointer%>"
+#, gcc-internal-format
 msgid "expected %<scalar%>, %<aggregate%>, %<all%>"
-msgstr "очікується %<scalar%>, %<aggregate%> або %<pointer%>"
+msgstr "очікується %<scalar%>, %<aggregate%>, %<all%>"
 
 #: cp/parser.cc:40076
 #, gcc-internal-format
@@ -63248,10 +62726,9 @@ msgid "%<#pragma omp assumes%> may only be used at file or namespace scope"
 msgstr "%<#pragma omp assumes%> може використовуватися тільки на рівні файлу або простору імен"
 
 #: cp/parser.cc:51118
-#, fuzzy, gcc-internal-format
-#| msgid "%<#pragma GCC ivdep%> must be inside a function"
+#, gcc-internal-format
 msgid "%<#pragma GCC %s%> must be inside a function"
-msgstr "%<#pragma GCC ivdep%> повинен бути всередині функції"
+msgstr "%<#pragma GCC %s%> має бути всередині функції"
 
 #: cp/parser.cc:51260
 #, gcc-internal-format
@@ -64819,16 +64296,14 @@ msgid "  since %q+#D declared in base class"
 msgstr "  оскільки %q+#D оголошено в базовому класі"
 
 #: cp/search.cc:2292
-#, fuzzy, gcc-internal-format
-#| msgid "virtual function %q+D overriding final function"
+#, gcc-internal-format
 msgid "explicit object member function overrides virtual function"
-msgstr "віртуальна функція %q+D перевизначає фінальну функцію"
+msgstr "явний член-функція об'єкта перевизначає віртуальну функцію"
 
 #: cp/search.cc:2295
-#, fuzzy, gcc-internal-format
-#| msgid "resolver indirect function declared here"
+#, gcc-internal-format
 msgid "virtual function declared here"
-msgstr "розвʼязувач індиректної функції оголошено тут"
+msgstr "тут оголошена віртуальна функція"
 
 #: cp/semantics.cc:1114
 #, gcc-internal-format
@@ -64836,16 +64311,14 @@ msgid "%<std::is_constant_evaluated%> always evaluates to true in %<if constexpr
 msgstr "%<std::is_constant_evaluated%> завжди оцінюється як true в %<if constexpr%>"
 
 #: cp/semantics.cc:1120
-#, fuzzy, gcc-internal-format
-#| msgid "%<std::is_constant_evaluated%> always evaluates to true in a %<consteval%> function"
+#, gcc-internal-format
 msgid "%<std::is_constant_evaluated%> evaluates to true when checking if trivially empty iteration statement is trivial infinite loop"
-msgstr "%<std::is_constant_evaluated%> завжди видає значення true в функції %<consteval%>"
+msgstr "%<std::is_constant_evaluated%> оцінюється як істина при перевірці, чи є тривіально порожнім оператором ітерації тривіальним нескінченним циклом"
 
 #: cp/semantics.cc:1125
-#, fuzzy, gcc-internal-format
-#| msgid "%<std::is_constant_evaluated%> always evaluates to false in a non-%<constexpr%> function"
+#, gcc-internal-format
 msgid "and evaluates to false when actually evaluating the condition in non-%<constexpr%> function"
-msgstr "%<std::is_constant_evaluated%> завжди видає значення false в неконстантній функції"
+msgstr "і оцінюється як хиба при фактичній оцінці умови в не-%<constexpr%> функції"
 
 #: cp/semantics.cc:1130
 #, gcc-internal-format
@@ -64923,22 +64396,19 @@ msgid "arguments to destructor are not allowed"
 msgstr "аргументи до деструктора не допускаються"
 
 #: cp/semantics.cc:3246
-#, fuzzy, gcc-internal-format
-#| msgid "%<this%> is unavailable for static member functions"
+#, gcc-internal-format
 msgid "%<this%> is unavailable for explicit object member functions"
-msgstr "%<this%> недоступний для статичних методів-членів"
+msgstr "%<this%> недоступний для членських функцій явних об'єктів"
 
 #: cp/semantics.cc:3258
-#, fuzzy, gcc-internal-format
-#| msgid "use the apostrophe directive %qs instead"
+#, gcc-internal-format
 msgid "use explicit object parameter %qs instead"
-msgstr "використовуйте директиву апострофа %qs замість цього"
+msgstr "замість цього використовуйте явний об'єктний параметр %qs"
 
 #: cp/semantics.cc:3262
-#, fuzzy, gcc-internal-format
-#| msgid "invalid template non-type parameter"
+#, gcc-internal-format
 msgid "name the explicit object parameter"
-msgstr "недійсний не-типізований параметр шаблону"
+msgstr "назвіть явний об'єктний параметр"
 
 #: cp/semantics.cc:3267
 #, gcc-internal-format
@@ -65097,21 +64567,19 @@ msgid "%qT is not an enumeration type"
 msgstr "%qT не є перелічувальним типом"
 
 #: cp/semantics.cc:4717
-#, fuzzy, gcc-internal-format
-#| msgid "requested alignment is not an integer constant"
+#, gcc-internal-format
 msgid "%<__type_pack_element%> index is not an integral constant"
-msgstr "запитане вирівнювання не є цілочисельною константою"
+msgstr "індекс %<__type_pack_element%> не є цілочисельною сталою"
 
 #: cp/semantics.cc:4723
 #, gcc-internal-format
 msgid "%<__type_pack_element%> index is negative"
-msgstr ""
+msgstr "Індекс %<__type_pack_element%> негативний"
 
 #: cp/semantics.cc:4729
-#, fuzzy, gcc-internal-format
-#| msgid "Reference statement index out of range"
+#, gcc-internal-format
 msgid "%<__type_pack_element%> index is out of range"
-msgstr "індекс заяви про посилання поза діапазоном"
+msgstr "індекс %<__type_pack_element%> виходить за межі діапазону"
 
 #. Parameter packs can only be used in templates
 #: cp/semantics.cc:4852
@@ -65145,10 +64613,9 @@ msgid "%<offsetof%> within non-standard-layout type %qT is conditionally-support
 msgstr "%<offsetof%> в межах типу %qT, який не відповідає стандартному розташуванню, підтримується умовно"
 
 #: cp/semantics.cc:6117
-#, fuzzy, gcc-internal-format
-#| msgid "constructor priorities are not supported"
+#, gcc-internal-format
 msgid "pointer-to-member mapping %qE not supported"
-msgstr "Пріоритети конструкторів не підтримуються"
+msgstr "відповідність вказівника на член %qE не підтримується"
 
 #: cp/semantics.cc:6311
 #, gcc-internal-format
@@ -65419,46 +64886,42 @@ msgstr "%<#pragma omp atomic update%> використовує два різни
 #: cp/semantics.cc:11580
 #, gcc-internal-format
 msgid "%<static_assert%> message must be a string literal or object with %<size%> and %<data%> members"
-msgstr ""
+msgstr "Повідомлення %<static_assert%> має бути рядком або об'єктом з членами %<size%> і %<data%>"
 
 #: cp/semantics.cc:11596
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be implicitly convertible to %<std::size_t%>"
-msgstr ""
+msgstr "Повідомлення %<static_assert%>: розмір %<size()%> має бути неявно перетворюваним у %<std::size_t%>"
 
 #: cp/semantics.cc:11605
 #, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be implicitly convertible to %<const char*%>"
-msgstr ""
+msgstr "Повідомлення %<static_assert%>: %<data()%> має автоматично перетворюватися на %<const char*%>"
 
 #: cp/semantics.cc:11663
-#, fuzzy, gcc-internal-format
-#| msgid "%<hint%> expression must be constant integer expression"
+#, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> must be a constant expression"
-msgstr "вираз %<hint%> повинен бути сталим цілочисельним виразом"
+msgstr "повідомлення %<static_assert%> %<size()%> повинно бути сталим виразом"
 
 #: cp/semantics.cc:11671
 #, gcc-internal-format
 msgid "%<static_assert%> message %<size()%> %qE too large"
-msgstr ""
+msgstr "Розмір повідомлення %<static_assert%> завеликий: %<size()%> %qE "
 
 #: cp/semantics.cc:11698
-#, fuzzy, gcc-internal-format
-#| msgid "%<reinterpret_cast<%T>(%E)%> is not a constant expression"
+#, gcc-internal-format
 msgid "%<static_assert%> message %<data()[%d]%> must be a constant expression"
-msgstr "%<reinterpret_cast<%T>(%E)%> не є константним виразом"
+msgstr "повідомлення %<static_assert%> %<data()[%d]%> повинно бути сталим виразом"
 
 #: cp/semantics.cc:11725
-#, fuzzy, gcc-internal-format
-#| msgid "argument %d of %qE must be an integer constant expression"
+#, gcc-internal-format
 msgid "%<static_assert%> message %<data()%> must be a core constant expression"
-msgstr "аргумент %d функції %qE повинен бути цілочисельним константним виразом"
+msgstr "повідомлення %<static_assert%> %<data()%> повинно бути основним сталим виразом"
 
 #: cp/semantics.cc:11751
-#, fuzzy, gcc-internal-format
-#| msgid "static assertion failed: %s"
+#, gcc-internal-format
 msgid "static assertion failed: %.*s"
-msgstr "статичне твердження не вдалося: %s"
+msgstr "статична перевірка не пройдена: %.*s"
 
 #: cp/semantics.cc:11759
 #, gcc-internal-format
@@ -65719,10 +65182,9 @@ msgid "%qE attribute applied to extern \"C\" declaration %qD"
 msgstr "атрибут %qE застосовується до зовнішньої «C»-декларації %qD"
 
 #: cp/tree.cc:5420
-#, fuzzy, gcc-internal-format
-#| msgid "%qE attribute argument must be a string constant"
+#, gcc-internal-format
 msgid "%qE attribute argument must be an expression that evaluates to true or false"
-msgstr "Аргумент атрибуту %qE повинен бути рядковою константою"
+msgstr "аргумент атрибуту %qE повинен бути виразом, який оцінюється як істина або хиба"
 
 #: cp/tree.cc:6290
 #, gcc-internal-format
@@ -66061,10 +65523,9 @@ msgid "the compiler can assume that the address of %qD will never be NULL"
 msgstr "компілятор може припустити, що адреса %qD ніколи не буде NULL"
 
 #: cp/typeck.cc:5052
-#, fuzzy, gcc-internal-format
-#| msgid "bitwise operation between different enumeration types %qT and %qT is deprecated"
+#, gcc-internal-format
 msgid "bitwise operation between different enumeration types %qT and %qT"
-msgstr "операція побітового І або АБО між різними типами перелічування %qT та %qT застаріла"
+msgstr "бітові операції між різними перераховуваними типами %qT та %qT"
 
 #: cp/typeck.cc:5055
 #, gcc-internal-format
@@ -66072,10 +65533,9 @@ msgid "bitwise operation between different enumeration types %qT and %qT is depr
 msgstr "операція побітового І або АБО між різними типами перелічування %qT та %qT застаріла"
 
 #: cp/typeck.cc:5061
-#, fuzzy, gcc-internal-format
-#| msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
+#, gcc-internal-format
 msgid "arithmetic between different enumeration types %qT and %qT"
-msgstr "арифметична операція між різними типами перелічування %qT та %qT застаріла"
+msgstr "арифметичні операції між різними перераховуваними типами %qT та %qT"
 
 #: cp/typeck.cc:5064
 #, gcc-internal-format
@@ -66083,16 +65543,14 @@ msgid "arithmetic between different enumeration types %qT and %qT is deprecated"
 msgstr "арифметична операція між різними типами перелічування %qT та %qT застаріла"
 
 #: cp/typeck.cc:5101
-#, fuzzy, gcc-internal-format
-#| msgid "comparison of enumeration type %qT with floating-point type %qT is deprecated"
+#, gcc-internal-format
 msgid "comparison of enumeration type %qT with floating-point type %qT"
-msgstr "Порівняння перелічувального типу %qT з типом з плаваючою комою %qT є застарілим"
+msgstr "порівняння перераховуваного типу %qT з типом з плаваючою комою %qT"
 
 #: cp/typeck.cc:5104
-#, fuzzy, gcc-internal-format
-#| msgid "comparison of floating-point type %qT with enumeration type %qT is deprecated"
+#, gcc-internal-format
 msgid "comparison of floating-point type %qT with enumeration type %qT"
-msgstr "Порівняння типу з плаваючою комою %qT з перелічувальним типом %qT є застарілим"
+msgstr "порівняння типу з плаваючою комою %qT з перераховуваним типом %qT"
 
 #: cp/typeck.cc:5107
 #, gcc-internal-format
@@ -66105,16 +65563,14 @@ msgid "comparison of floating-point type %qT with enumeration type %qT is deprec
 msgstr "Порівняння типу з плаваючою комою %qT з перелічувальним типом %qT є застарілим"
 
 #: cp/typeck.cc:5120
-#, fuzzy, gcc-internal-format
-#| msgid "arithmetic between enumeration type %qT and floating-point type %qT is deprecated"
+#, gcc-internal-format
 msgid "arithmetic between enumeration type %qT and floating-point type %qT"
-msgstr "Арифметика між перелічувальним типом %qT та типом з плаваючою комою %qT є застарілою"
+msgstr "арифметичні операції між перерахуванням типу %qT і типом з плаваючою комою %qT"
 
 #: cp/typeck.cc:5123
-#, fuzzy, gcc-internal-format
-#| msgid "arithmetic between floating-point type %qT and enumeration type %qT is deprecated"
+#, gcc-internal-format
 msgid "arithmetic between floating-point type %qT and enumeration type %qT"
-msgstr "Арифметика між типом з плаваючою комою %qT та перелічувальним типом %qT є застарілою"
+msgstr "арифметичні операції між типом з плаваючою комою %qT і перерахуванням типу %qT"
 
 #: cp/typeck.cc:5126
 #, gcc-internal-format
@@ -66221,10 +65677,9 @@ msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non
 msgstr "ISO C++ забороняє взяти адресу некваліфікованої або укладеної нестатичної член-функції для створення вказівника на член-функцію. Скажіть %<&%T::%D%>"
 
 #: cp/typeck.cc:7152
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function.  Say %<&%T::%D%>"
+#, gcc-internal-format
 msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to explicit object member function"
-msgstr "ISO C++ забороняє взяти адресу некваліфікованої або укладеної нестатичної член-функції для створення вказівника на член-функцію. Скажіть %<&%T::%D%>"
+msgstr "ISO C++ забороняє брати адресу некваліфікованої або дужкової нестатичної функції-члена для формування вказівника на явну функцію-член об'єкта"
 
 #: cp/typeck.cc:7158
 #, gcc-internal-format
@@ -66232,16 +65687,14 @@ msgid "ISO C++ forbids taking the address of a bound member function to form a p
 msgstr "ISO C++ забороняє взяти адресу привʼязаної член-функції для створення вказівника на член-функцію. Скажіть %<&%T::%D%>"
 
 #: cp/typeck.cc:7164
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function.  Say %<&%T::%D%>"
+#, gcc-internal-format
 msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to explicit object member function"
-msgstr "ISO C++ забороняє взяти адресу привʼязаної член-функції для створення вказівника на член-функцію. Скажіть %<&%T::%D%>"
+msgstr "ISO C++ забороняє брати адресу прив'язаної функції-члена для формування вказівника на явну функцію-член об'єкта"
 
 #: cp/typeck.cc:7169
-#, fuzzy, gcc-internal-format
-#| msgid "(a pointer to member can only be formed with %<&%E%>)"
+#, gcc-internal-format
 msgid "a pointer to explicit object member function can only be formed with %<&%T::%D%>"
-msgstr "(вказівник на член може бути створений лише з %<&%E%>)"
+msgstr "вказівник на явну функцію-член об'єкта може бути сформований тільки з %<&%T::%D%>"
 
 #. Make this a permerror because we used to accept it.
 #: cp/typeck.cc:7202
@@ -66581,10 +66034,9 @@ msgid "returning reference to temporary"
 msgstr "повернення посилання на тимчасовий обʼєкт"
 
 #: cp/typeck.cc:10633
-#, fuzzy, gcc-internal-format
-#| msgid "returning reference to temporary"
+#, gcc-internal-format
 msgid "returning pointer to temporary"
-msgstr "повернення посилання на тимчасовий обʼєкт"
+msgstr "повертається вказівник на тимчасовий об'єкт"
 
 #: cp/typeck.cc:10636
 #, gcc-internal-format
@@ -66681,15 +66133,14 @@ msgid "%<operator new%> must not return NULL unless it is declared %<throw()%> (
 msgstr "%<operator new%> не повинен повертати NULL, якщо він не оголошений %<throw()%> (або %<-fcheck-new%> активований)"
 
 #: cp/typeck.cc:11299
-#, fuzzy, gcc-internal-format
-#| msgid "invalid covariant return type for %q#D"
+#, gcc-internal-format
 msgid "not eliding copy on return from %qD"
-msgstr "недійсний коваріантний тип повернення для %q#D"
+msgstr "не проводиться оптимізація копіювання при поверненні з %qD"
 
 #: cp/typeck.cc:11311
 #, gcc-internal-format
 msgid "not eliding copy on return in %qD"
-msgstr ""
+msgstr "не скорочуємо копіювання при поверненні в %qD"
 
 #: cp/typeck.cc:11898
 #, gcc-internal-format
@@ -67195,21 +66646,19 @@ msgid "cast from %qs to %qs will produce zero result"
 msgstr "приведення типу з %qs до %qs призведе до нульового результату"
 
 #: d/d-convert.cc:748
-#, fuzzy, gcc-internal-format
-#| msgid "cannot convert %qE from type %qT to type %qT"
+#, gcc-internal-format
 msgid "cannot convert parameter %qs from type %qs to type %qs in assignment"
-msgstr "не можливо перетворити %qE з типу %qT в тип %qT"
+msgstr "неможливо конвертувати параметр %qs з типу %qs до типу %qs при присвоюванні"
 
 #: d/d-convert.cc:754
-#, fuzzy, gcc-internal-format
-#| msgid "cannot convert %qH to %qI in argument passing"
+#, gcc-internal-format
 msgid "cannot convert parameter %qs from type %qs to type %qs in argument passing"
-msgstr "не можна перетворити %qH на %qI при передачі аргументу"
+msgstr "неможливо конвертувати параметр %qs з типу %qs до типу %qs при передачі аргументів"
 
 #: d/d-convert.cc:759
 #, gcc-internal-format
 msgid "parameters of type %<va_list%> {aka %qs} are decayed to pointer types, and require %<va_copy%> to be converted back into a static array type"
-msgstr ""
+msgstr "параметри типу %<va_list%> {також відомі як %qs} розпадаються до вказівників і вимагають використання %<va_copy%>, щоб перетворитися назад у статичний масив"
 
 #: d/d-lang.cc:463
 #, gcc-internal-format
@@ -67232,28 +66681,24 @@ msgid "bad argument for %<-fversion%>: %qs"
 msgstr "невірний аргумент для %<-fversion%>: %qs"
 
 #: d/d-lang.cc:968
-#, fuzzy, gcc-internal-format
-#| msgid "error: unable to open '%s' for writing: %s\n"
+#, gcc-internal-format
 msgid "unable to open %s for writing: %m"
-msgstr "помилка: неможливо відкрити '%s' для запису: %s\n"
+msgstr "не вдалося відкрити %s для запису: %m"
 
 #: d/d-lang.cc:975
-#, fuzzy, gcc-internal-format
-#| msgid "opening output file %s: %m"
+#, gcc-internal-format
 msgid "writing output file %s: %m"
-msgstr "не вдалося відкрити вихідний файл %s: %m"
+msgstr "запис вихідного файлу %s: %m"
 
 #: d/d-lang.cc:995
-#, fuzzy, gcc-internal-format
-#| msgid "error: unable to open '%s' for writing: %s\n"
+#, gcc-internal-format
 msgid "unable to open %s for reading: %m"
-msgstr "помилка: неможливо відкрити '%s' для запису: %s\n"
+msgstr "не вдалося відкрити %s для читання: %m"
 
 #: d/d-lang.cc:1020
-#, fuzzy, gcc-internal-format
-#| msgid "opening json file %s: %m"
+#, gcc-internal-format
 msgid "reading ddoc file %s: %m"
-msgstr "відкриття json-файлу %s: %m"
+msgstr "читання файлу ddoc %s: %m"
 
 #: d/d-lang.cc:1079
 #, gcc-internal-format
@@ -67332,16 +66777,14 @@ msgid "cannot handle comparison of type %<%s == %s%>"
 msgstr "не можу обробити порівняння типу %<%s == %s%>"
 
 #: d/expr.cc:717
-#, fuzzy, gcc-internal-format
-#| msgid "expression %qs requires %<object.TypeInfo%> and cannot be used with %<-fno-rtti%>"
+#, gcc-internal-format
 msgid "array concatenation of expression %qs requires the GC and cannot be used with %<-fno-druntime%>"
-msgstr "вираз %qs потребує %<object.TypeInfo%> і не може використовуватися з %<-fno-rtti%>"
+msgstr "конкатенація масиву виразу %qs вимагає GC і не може бути використано з %<-fno-druntime%>"
 
 #: d/expr.cc:811
-#, fuzzy, gcc-internal-format
-#| msgid "expression %qs requires %<object.TypeInfo%> and cannot be used with %<-fno-rtti%>"
+#, gcc-internal-format
 msgid "appending to array in %qs requires the GC and cannot be used with %<-fno-druntime%>"
-msgstr "вираз %qs потребує %<object.TypeInfo%> і не може використовуватися з %<-fno-rtti%>"
+msgstr "додавання елементів до масиву в %qs вимагає GC і не може бути використано з %<-fno-druntime%>"
 
 #. Static arrays have already been handled by the front-end.
 #: d/expr.cc:1286
@@ -67426,10 +66869,9 @@ msgstr "несумісність при виклику вбудованої фу
 
 #. It's a D language intrinsic with no library implementation.
 #: d/intrinsics.cc:1479
-#, fuzzy, gcc-internal-format
-#| msgid "built-in function %qE must be directly called"
+#, gcc-internal-format
 msgid "intrinsic function %qE must be directly called"
-msgstr "вбудовану функцію %qE потрібно викликати безпосередньо"
+msgstr "вбудована функція %qE повинна бути безпосередньо викликаною"
 
 #: d/modules.cc:417
 #, gcc-internal-format
@@ -67439,7 +66881,7 @@ msgstr "%<-fmoduleinfo%> не підтримується на цій цілі"
 #: d/toir.cc:245
 #, gcc-internal-format
 msgid "calling %qE without side effects discards return value of type %qT; prepend a %<cast(void)%> if intentional"
-msgstr ""
+msgstr "Виклик %qE без побічних ефектів відкидає значення типу %qT; додайте %<cast(void)%>, якщо це намірне"
 
 #: d/toir.cc:419 d/toir.cc:444
 #, gcc-internal-format
@@ -67992,10 +67434,9 @@ msgid "Array constructor value at %L shall not be unlimited polymorphic [F2008:
 msgstr "Значення конструктора масиву на %L не може бути необмежено поліморфним [F2008: C4106]"
 
 #: fortran/array.cc:2215
-#, fuzzy, gcc-internal-format
-#| msgid "Different CHARACTER lengths (%ld/%ld) in array constructor at %L"
+#, gcc-internal-format
 msgid "Different CHARACTER lengths (%wd/%wd) in array constructor at %L"
-msgstr "Різні довжини CHARACTER (%ld/%ld) в конструкторі масиву на %L"
+msgstr "різні довжини символів (%wd/%wd) у конструкторі масиву в %L"
 
 #: fortran/array.cc:2333
 #, gcc-internal-format
@@ -68219,10 +67660,9 @@ msgid "Unequal character lengths (%ld/%ld) in %s at %L"
 msgstr "Нерівні довжини символів (%ld/%ld) в %s на %L"
 
 #: fortran/check.cc:1269
-#, fuzzy, gcc-internal-format
-#| msgid "Size of %qs argument of %qs intrinsic at %L too small (%i/%i)"
+#, gcc-internal-format
 msgid "Size of %qs argument of %qs intrinsic at %L too small (%wd/%ld)"
-msgstr "Розмір аргументу %qs вбудованої функції %qs на %L занадто малий (%i/%i)"
+msgstr "Розмір аргументу %qs для вбудованої функції %qs у %L занадто малий (%wd/%ld)"
 
 #: fortran/check.cc:1332
 #, gcc-internal-format, gfc-internal-format
@@ -68856,16 +68296,14 @@ msgid "Polymorphic FPTR at %L to C_F_POINTER"
 msgstr "Поліморфний FPTR на %L до C_F_POINTER"
 
 #: fortran/check.cc:5476
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "%qE attribute on a function not returning a pointer"
+#, gcc-internal-format, gfc-internal-format
 msgid "FPTR argument to C_F_POINTER at %L is a function returning a pointer"
-msgstr "атрибут %qE на функції, яка не повертає вказівник"
+msgstr "Аргумент FPTR для C_F_POINTER у %L є функцією, яка повертає вказівник"
 
 #: fortran/check.cc:5483
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Noninteroperable array FPTR at %L to C_F_POINTER: %s"
+#, gcc-internal-format, gfc-internal-format
 msgid "Noninteroperable array FPTR argument to C_F_POINTER at %L: %s"
-msgstr "Несумісний масив FPTR на %L до C_F_POINTER: %s"
+msgstr "Несумісний з інтерфейсом масив FPTR аргумент для C_F_POINTER у %L: %s"
 
 #: fortran/check.cc:5499
 #, gcc-internal-format, gfc-internal-format
@@ -69038,10 +68476,8 @@ msgid "%<MOLD%> argument of %<TRANSFER%> intrinsic at %L must not be %s"
 msgstr "Аргумент %<MOLD%> вбудованої функції %<TRANSFER%> на %L не повинен бути %s"
 
 #: fortran/check.cc:6307
-#, fuzzy
-#| msgid "Intrinsic TRANSFER at %L has partly undefined result: source size %ld < result size %ld"
 msgid "Intrinsic TRANSFER at %L has partly undefined result: source size %zd < result size %zd"
-msgstr "Вбудована функція TRANSFER на %L має частково невизначений результат: розмір джерела %ld < розмір результату %ld"
+msgstr "Вбудована функція TRANSFER у %L має частково невизначений результат: розмір джерела %zd < розмір результату %zd"
 
 #: fortran/check.cc:6431
 #, gcc-internal-format
@@ -69054,16 +68490,14 @@ msgid "%qs and %qs arguments of %qs intrinsic at %L must have identical shape."
 msgstr "Аргументи %qs і %qs інтринсичної функції %qs на %L повинні мати однакову форму."
 
 #: fortran/check.cc:6580
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "COUNT argument to SYSTEM_CLOCK at %L has non-default kind"
+#, gcc-internal-format, gfc-internal-format
 msgid "VALUES argument of DATE_AND_TIME at %L has non-default kind"
-msgstr "Аргумент COUNT для SYSTEM_CLOCK на %L має нестандартний тип"
+msgstr "Аргумент VALUES для DATE_AND_TIME у %L має тип, відмінний від стандартного"
 
 #: fortran/check.cc:6592
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Argument of ATANH at %L must be inside the range -1 to 1"
+#, gcc-internal-format, gfc-internal-format
 msgid "VALUES argument of DATE_AND_TIME at %L must have a decimal exponent range of at least four"
-msgstr "Аргументом ATANH у %L має бути число у діапазоні від -1 до 1"
+msgstr "Аргумент VALUES для DATE_AND_TIME у %L повинен мати діапазон десяткового експонента не менше чотирьох"
 
 #: fortran/check.cc:6731 fortran/check.cc:6763
 #, gcc-internal-format
@@ -69091,10 +68525,9 @@ msgid "COUNT argument to SYSTEM_CLOCK at %L has non-default kind"
 msgstr "Аргумент COUNT для SYSTEM_CLOCK на %L має нестандартний тип"
 
 #: fortran/check.cc:6850
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "COUNT argument to SYSTEM_CLOCK at %L has non-default kind"
+#, gcc-internal-format, gfc-internal-format
 msgid "COUNT argument to SYSTEM_CLOCK at %L with kind smaller than default integer"
-msgstr "Аргумент COUNT для SYSTEM_CLOCK на %L має нестандартний тип"
+msgstr "Аргумент COUNT для SYSTEM_CLOCK у %L з типом меншим за стандартний цілий"
 
 #: fortran/check.cc:6871
 #, gcc-internal-format, gfc-internal-format
@@ -69107,10 +68540,9 @@ msgid "COUNT_RATE argument to SYSTEM_CLOCK at %L has non-default kind"
 msgstr "Аргумент COUNT_RATE для SYSTEM_CLOCK на %L має нестандартний тип"
 
 #: fortran/check.cc:6888
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "COUNT_RATE argument to SYSTEM_CLOCK at %L has non-default kind"
+#, gcc-internal-format, gfc-internal-format
 msgid "COUNT_RATE argument to SYSTEM_CLOCK at %L with kind smaller than default integer"
-msgstr "Аргумент COUNT_RATE для SYSTEM_CLOCK на %L має нестандартний тип"
+msgstr "Аргумент COUNT_RATE для SYSTEM_CLOCK у %L з типом меншим за стандартний цілий"
 
 #: fortran/check.cc:6908
 #, gcc-internal-format, gfc-internal-format
@@ -69118,16 +68550,14 @@ msgid "COUNT_MAX argument to SYSTEM_CLOCK at %L has non-default kind"
 msgstr "Аргумент COUNT_MAX для SYSTEM_CLOCK на %L має нестандартний тип"
 
 #: fortran/check.cc:6918
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "COUNT_MAX argument to SYSTEM_CLOCK at %L has non-default kind"
+#, gcc-internal-format, gfc-internal-format
 msgid "COUNT_MAX argument to SYSTEM_CLOCK at %L with kind smaller than default integer"
-msgstr "Аргумент COUNT_MAX для SYSTEM_CLOCK на %L має нестандартний тип"
+msgstr "Аргумент COUNT_MAX для SYSTEM_CLOCK у %L з типом меншим за стандартний цілий"
 
 #: fortran/check.cc:6933 fortran/check.cc:6940
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "COUNT argument to SYSTEM_CLOCK at %L has non-default kind"
+#, gcc-internal-format, gfc-internal-format
 msgid "integer arguments to SYSTEM_CLOCK at %L with different kind parameters"
-msgstr "Аргумент COUNT для SYSTEM_CLOCK на %L має нестандартний тип"
+msgstr "Цілочисельні аргументи для SYSTEM_CLOCK у %L з різними параметрами типу"
 
 #: fortran/check.cc:7154
 #, gcc-internal-format
@@ -69177,16 +68607,14 @@ msgid "non-constant array in DATA statement %L"
 msgstr "неконстантний масив у операторі DATA %L"
 
 #: fortran/data.cc:78
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d"
+#, gcc-internal-format, gfc-internal-format
 msgid "Subscript at %L below array lower bound (%ld < %ld) in dimension %d"
-msgstr "Посилання на масив на %L виходить за межі (%ld < %ld) в розмірності %d"
+msgstr "Індекс у %L нижче нижньої межі масиву (%ld < %ld) у розмірності %d"
 
 #: fortran/data.cc:89
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Lower array reference at %L is out of bounds (%ld > %ld) in dimension %d"
+#, gcc-internal-format, gfc-internal-format
 msgid "Subscript at %L above array upper bound (%ld > %ld) in dimension %d"
-msgstr "Нижнє посилання на масив на %L виходить за межі (%ld > %ld) в розмірності %d"
+msgstr "Індекс у %L вище верхньої межі масиву (%ld > %ld) у розмірності %d"
 
 #: fortran/data.cc:172
 #, gcc-internal-format, gfc-internal-format
@@ -69199,10 +68627,9 @@ msgid "Unused initialization string at %L because variable has zero length"
 msgstr "Невикористана рядок ініціалізації на %L, оскільки змінна має нульову довжину"
 
 #: fortran/data.cc:211
-#, fuzzy, gcc-internal-format
-#| msgid "Initialization string at %L was truncated to fit the variable (%ld/%ld)"
+#, gcc-internal-format
 msgid "Initialization string at %L was truncated to fit the variable (%wd/%wd)"
-msgstr "Рядок ініціалізації на %L був обрізаний, щоб відповідати змінній (%ld/%ld)"
+msgstr "Рядок ініціалізації у %L був скорочений, щоб вміститися у змінну (%wd/%wd)"
 
 #: fortran/data.cc:220 fortran/resolve.cc:5298
 #, gcc-internal-format, gfc-internal-format
@@ -70301,15 +69728,14 @@ msgid "Duplicate symbol %qs in formal argument list at %C"
 msgstr "Повторний символ %qs у списку формальних аргументів на %C"
 
 #: fortran/decl.cc:6823
-#, fuzzy, gcc-internal-format
-#| msgid "Mismatch in MODULE PROCEDURE formal argument names (%s/%s) at %C"
+#, gcc-internal-format
 msgid "MODULE PROCEDURE formal argument %qs conflicts with alternate return at %C"
-msgstr "Неспівпадіння імен формальних аргументів MODULE PROCEDURE (%s/%s) на %C"
+msgstr "Формальний аргумент MODULE PROCEDURE %qs конфліктує з альтернативним поверненням у %C"
 
 #: fortran/decl.cc:6827
 #, gcc-internal-format
 msgid "MODULE PROCEDURE formal argument is alternate return and conflicts with %qs in the separate declaration at %C"
-msgstr ""
+msgstr "Формальний аргумент MODULE PROCEDURE є альтернативним поверненням і конфліктує з %qs у окремому оголошенні на рядку %C"
 
 #: fortran/decl.cc:6832
 #, gcc-internal-format, gfc-internal-format
@@ -71912,10 +71338,9 @@ msgid "%qs at %L associated to expression cannot be used in a variable definitio
 msgstr "%qs на %L, повʼязаний з виразом, не може бути використаний в контексті визначення змінної (%s)"
 
 #: fortran/expr.cc:6513
-#, fuzzy, gcc-internal-format
-#| msgid "%qs at %L associated to expression cannot be used in a variable definition context (%s)"
+#, gcc-internal-format
 msgid "%qs at %L associated to pointer function target being used in a variable definition context (%s)"
-msgstr "%qs на %L, повʼязаний з виразом, не може бути використаний в контексті визначення змінної (%s)"
+msgstr "%qs у %L пов'язаний з цільовою функцією вказівника, яка використовується у контексті визначення змінної (%s)"
 
 #: fortran/expr.cc:6532
 #, gcc-internal-format
@@ -72428,12 +71853,12 @@ msgstr "Неочікувана альтернативна специфікаці
 #: fortran/interface.cc:3326
 #, gcc-internal-format
 msgid "Intrinsic %<NULL()%> without %<MOLD%> argument at %L passed to assumed-rank dummy %qs"
-msgstr ""
+msgstr "Внутрішня функція %<NULL()%> без аргументу %<MOLD%> на рядку %L передається в формальний аргумент з припущеним рангом %qs"
 
 #: fortran/interface.cc:3340
 #, gcc-internal-format
 msgid "Intrinsic %<NULL()%> without %<MOLD%> argument at %L passed to assumed-length dummy %qs"
-msgstr ""
+msgstr "Вбудована функція %<NULL()%> без аргументу %<MOLD%> на рядку %L передається в формальний аргумент з припущеною довжиною %qs"
 
 #: fortran/interface.cc:3362
 #, gcc-internal-format
@@ -72451,10 +71876,9 @@ msgid "Actual argument at %L to assumed-type dummy has type parameters or is of
 msgstr "Фактичний аргумент на %L для припущеного типу фіктивного має параметри типу або є похідним типом з типовими або FINAL процедурами"
 
 #: fortran/interface.cc:3403
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Coindexed polymorphic actual argument at %L is passed polymorphic dummy argument %qs"
+#, gcc-internal-format, gfc-internal-format
 msgid "Unlimited polymorphic actual argument at %L is not matched with either an unlimited polymorphic or assumed type dummy argument"
-msgstr "Коіндексований поліморфний фактичний аргумент на %L передається поліморфному фіктивному аргументу %qs"
+msgstr "Необмежений поліморфний фактичний аргумент у %L не відповідає ні необмеженому поліморфному, ні припущеному типу формального аргументу"
 
 #: fortran/interface.cc:3427
 #, gcc-internal-format
@@ -72549,7 +71973,7 @@ msgstr "Фактичний аргумент для %qs повинен бути A
 #: fortran/interface.cc:3745
 #, gcc-internal-format
 msgid "Actual argument for %qs at %L is a function result and the dummy argument is ALLOCATABLE"
-msgstr ""
+msgstr "Фактичний аргумент для %qs на рядку %L є результатом функції, а формальний аргумент має властивість ALLOCATABLE"
 
 #: fortran/interface.cc:3783
 #, gcc-internal-format
@@ -73755,7 +73179,7 @@ msgstr "помилка: check_charlen_present(): довжина не встан
 #: fortran/iresolve.cc:3029
 #, gcc-internal-format, gfc-internal-format
 msgid "TODO: unlimited polymorphic MOLD in TRANSFER intrinsic at %L"
-msgstr ""
+msgstr "ЗРОБИТИ: необмежений поліморфний MOLD у вбудованій функції TRANSFER на рядку %L"
 
 #: fortran/match.cc:118
 #, gcc-internal-format
@@ -74582,10 +74006,9 @@ msgid "Symbol %qs in namelist %qs at %C must be declared before the namelist is
 msgstr "Символ %qs у списку імен %qs у %C повинен бути оголошений до оголошення списку імен."
 
 #: fortran/match.cc:5652
-#, fuzzy, gcc-internal-format
-#| msgid "Symbol %qs at %L conflicts with the symbol at %L"
+#, gcc-internal-format
 msgid "Derived type %qs at %L conflicts with namelist object %qs at %C"
-msgstr "Символ %qs у %L конфліктує з символом у %L"
+msgstr "Похідний тип %qs у %L конфліктує з об'єктом списку імені %qs у %C"
 
 #: fortran/match.cc:5672
 #, gcc-internal-format
@@ -75121,7 +74544,7 @@ msgstr "Елемент списку не може бути співіндекс
 #: fortran/openmp.cc:493
 #, gcc-internal-format
 msgid "%qs at %L is part of the common block %</%s/%> and may only be specificed implicitly via the named common block"
-msgstr ""
+msgstr "%qs у %L є частиною блоку спільних даних %</%s/%> і може бути вказаний неявно через іменований блок спільних даних"
 
 #: fortran/openmp.cc:518 fortran/openmp.cc:619 fortran/openmp.cc:949
 #: fortran/openmp.cc:6165
@@ -75237,13 +74660,12 @@ msgstr "Директива %qs згадується як в ABSENT, так і в
 #: fortran/openmp.cc:1746
 #, gcc-internal-format, gfc-internal-format
 msgid "Duplicate %s modifier at %L in USES_ALLOCATORS clause"
-msgstr ""
+msgstr "Дубльований модифікатор %s у %L у клаузі USES_ALLOCATORS"
 
 #: fortran/openmp.cc:1780
-#, fuzzy, gcc-internal-format
-#| msgid "expected %<(%> at %C"
+#, gcc-internal-format
 msgid "Unexpected %<(%> at %C"
-msgstr "очікується %<(%> на %C"
+msgstr "Неочікуваний %<(%> у %C"
 
 #: fortran/openmp.cc:1827
 #, gcc-internal-format
@@ -75292,16 +74714,14 @@ msgid "COLLAPSE clause argument not constant positive integer at %C"
 msgstr "Аргумент COLLAPSE-замикання не є сталим додатнім цілочисельним у %C"
 
 #: fortran/openmp.cc:2251
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Expected ALLOC, TO, FROM, TOFROM, FIRSTPRIVATE, NONE or DEFAULT at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "Expected ALLOC, TO, FROM, TOFROM, FIRSTPRIVATE, PRESENT, NONE or DEFAULT at %C"
-msgstr "Очікувалася ALLOC, TO, FROM, TOFROM, FIRSTPRIVATE, NONE або DEFAULT у %C"
+msgstr "Очікується ALLOC, TO, FROM, TOFROM, FIRSTPRIVATE, PRESENT, NONE або DEFAULT у %C"
 
 #: fortran/openmp.cc:2273
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Expected SCALAR, AGGREGATE, ALLOCATABLE or POINTER at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "Expected SCALAR, AGGREGATE, ALLOCATABLE, POINTER or ALL at %C"
-msgstr "Очікувався тип SCALAR, AGGREGATE, ALLOCATABLE або POINTER у %C"
+msgstr "Очікується SCALAR, AGGREGATE, ALLOCATABLE, POINTER або ALL у %C"
 
 #: fortran/openmp.cc:2306
 #, gcc-internal-format, gfc-internal-format
@@ -75394,10 +74814,9 @@ msgid "Expected SEQ_CST, ACQUIRE or RELAXED at %C"
 msgstr "Очікується SEQ_CST, ACQUIRE або RELAXED на %C"
 
 #: fortran/openmp.cc:2831
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "WAIT clause at %L requires a scalar INTEGER expression"
+#, gcc-internal-format, gfc-internal-format
 msgid "INDIRECT clause at %C requires a constant logical expression"
-msgstr "Замикання WAIT у %L вимагає скалярний цілочисельний вираз"
+msgstr "Клауза INDIRECT у %C вимагає сталого логічного виразу"
 
 #: fortran/openmp.cc:3018
 #, gcc-internal-format
@@ -75415,10 +74834,9 @@ msgid "too many %<close%> modifiers at %L"
 msgstr "забагато модифікаторів %<close%> в %L"
 
 #: fortran/openmp.cc:3140
-#, fuzzy, gcc-internal-format
-#| msgid "too many %<close%> modifiers at %L"
+#, gcc-internal-format
 msgid "too many %<present%> modifiers at %L"
-msgstr "забагато модифікаторів %<close%> в %L"
+msgstr "забагато модифікаторів %<present%> у %L"
 
 #: fortran/openmp.cc:3331
 #, gcc-internal-format
@@ -75526,22 +74944,19 @@ msgid "!$ACC ROUTINE with GANG, WORKER, or VECTOR clause is not permitted in PUR
 msgstr "!$ACC ROUTINE з замиканням GANG, WORKER або VECTOR не дозволяється в чистій процедурі на %C"
 
 #: fortran/openmp.cc:4598
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Expected COMPILATION or EXECUTION in AT clause at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "Expected ALIGN or ALLOCATOR clause at %C"
-msgstr "Очікувалася COMPILATION або EXECUTION у AT-замиканні у %C"
+msgstr "Очікується клауза ALIGN або ALLOCATOR у %C"
 
 #: fortran/openmp.cc:4606
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Sorry, the event component of derived type at %L is not yet supported"
+#, gcc-internal-format, gfc-internal-format
 msgid "Sorry, structure-element list item at %L in ALLOCATE directive is not yet supported"
-msgstr "Вибачте, компонент події похідного типу на %L ще не підтримується"
+msgstr "Вибачте, елемент списку структури у %L в директиві ALLOCATE ще не підтримується"
 
 #: fortran/openmp.cc:4609
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Expected expression in %s statement at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "Unexpected expression as list item at %L in ALLOCATE directive"
-msgstr "Очікується вираз у %s операторі на %C"
+msgstr "Неочікуваний вираз як елемент списку у %L в директиві ALLOCATE"
 
 #: fortran/openmp.cc:4680
 #, gcc-internal-format, gfc-internal-format
@@ -75566,7 +74981,7 @@ msgstr "Очікувався IN, OUT, INOUT, INOUTSET або MUTEXINOUTSET, за
 #: fortran/openmp.cc:4801
 #, gcc-internal-format, gfc-internal-format
 msgid "The same depend object should be used as DEPOBJ argument at %L and as DESTROY argument at %L"
-msgstr ""
+msgstr "Один і той самий об'єкт залежності повинен бути використаний як аргумент DEPOBJ у %L і як аргумент DESTROY у %L"
 
 #: fortran/openmp.cc:4815
 #, gcc-internal-format, gfc-internal-format
@@ -75681,7 +75096,7 @@ msgstr "Елемент списку %qs у %L встановлено в попе
 #: fortran/openmp.cc:5577 fortran/openmp.cc:5631
 #, gcc-internal-format, gfc-internal-format
 msgid "DEVICE_TYPE must be ANY when used with INDIRECT at %L"
-msgstr ""
+msgstr "DEVICE_TYPE повинен бути ANY при використанні з INDIRECT у %L"
 
 #: fortran/openmp.cc:5587
 #, gcc-internal-format, gfc-internal-format
@@ -75704,10 +75119,9 @@ msgid "COMMON at %L set in previous OMP DECLARE TARGET directive to a different
 msgstr "COMMON на %L встановлено в попередній директиві OMP DECLARE TARGET на інший DEVICE_TYPE"
 
 #: fortran/openmp.cc:5641
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "OMP DECLARE TARGET directive at %L with only DEVICE_TYPE clause is ignored"
+#, gcc-internal-format, gfc-internal-format
 msgid "OMP DECLARE TARGET directive at %L with only DEVICE_TYPE or INDIRECT clauses is ignored"
-msgstr "Директива OMP DECLARE TARGET на %L зі зазначенням тільки DEVICE_TYPE ігнорується"
+msgstr "Директива OMP DECLARE TARGET у %L з тільки DEVICE_TYPE або INDIRECT клаузами ігнорується"
 
 #: fortran/openmp.cc:5652
 #, gcc-internal-format, gfc-internal-format
@@ -75716,10 +75130,9 @@ msgstr "Синтаксична помилка в списку !$OMP DECLARE TARG
 
 #. FIXME: constant integer expressions.
 #: fortran/openmp.cc:5691
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Expected integer expression at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "Expected trait-property-extension at %C"
-msgstr "Очікувався цілочисельний вираз на %C"
+msgstr "Очікується розширення властивості трактування у %C"
 
 #: fortran/openmp.cc:5706 fortran/openmp.cc:5803 fortran/openmp.cc:5934
 #: fortran/openmp.cc:6084 fortran/openmp.cc:6112
@@ -75733,10 +75146,9 @@ msgid "expected trait selector name at %C"
 msgstr "очікується імʼя селектора риси на %C"
 
 #: fortran/openmp.cc:5747
-#, fuzzy, gcc-internal-format
-#| msgid "selector %qs not allowed for context selector set %qs at %C"
+#, gcc-internal-format
 msgid "unknown selector %qs for context selector set %qs at %C"
-msgstr "селектор %qs не дозволений для набору селекторів контексту %qs на %C"
+msgstr "невідомий селектор %qs для набору селекторів контексту %qs у %C"
 
 #: fortran/openmp.cc:5765
 #, gcc-internal-format
@@ -75744,10 +75156,9 @@ msgid "selector %qs does not accept any properties at %C"
 msgstr "селектор %qs не приймає жодних властивостей на %C"
 
 #: fortran/openmp.cc:5774
-#, fuzzy, gcc-internal-format
-#| msgid "The %s directive cannot be specified within a %s region at %L"
+#, gcc-internal-format
 msgid "%<score%> cannot be specified in traits in the %qs trait-selector-set at %C"
-msgstr "Директива %s не може бути вказана всередині області %s на %L"
+msgstr "%<score%> не може бути вказано в властивостях у наборі селекторів %qs властивостей у %C"
 
 #: fortran/openmp.cc:5781 fortran/openmp.cc:5944 fortran/openmp.cc:6036
 #: fortran/openmp.cc:6103
@@ -75756,16 +75167,14 @@ msgid "expected %<(%> at %C"
 msgstr "очікується %<(%> на %C"
 
 #: fortran/openmp.cc:5789
-#, fuzzy, gcc-internal-format
-#| msgid "score argument must be constant integer expression at %C"
+#, gcc-internal-format
 msgid "%<score%> argument must be constant integer expression at %C"
-msgstr "аргумент score повинен бути сталим цілим виразом на %C"
+msgstr "аргумент %<score%> повинен бути сталою цілочисельним виразом у %C"
 
 #: fortran/openmp.cc:5797
-#, fuzzy, gcc-internal-format
-#| msgid "score argument must be non-negative at %C"
+#, gcc-internal-format
 msgid "%<score%> argument must be non-negative at %C"
-msgstr "аргумент 'score' повинен бути не відʼємним на %C"
+msgstr "аргумент %<score%> повинен бути невід'ємним у %C"
 
 #: fortran/openmp.cc:5809
 #, gcc-internal-format, gfc-internal-format
@@ -75788,22 +75197,19 @@ msgid "expected expression at %C"
 msgstr "очікується вираз у %C"
 
 #: fortran/openmp.cc:5883
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "property must be constant integer or logical expression at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "property must be a constant logical expression at %C"
-msgstr "властивість повинна бути константним цілочисельним або логічним виразом у %C"
+msgstr "властивість повинна бути сталою логічною виразом у %C"
 
 #: fortran/openmp.cc:5886
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "property must be constant integer expression"
+#, gcc-internal-format, gfc-internal-format
 msgid "property must be a constant integer expression at %C"
-msgstr "властивість повинна бути цілим сталим виразом"
+msgstr "властивість повинна бути сталим цілочисельним виразом в %C"
 
 #: fortran/openmp.cc:5898
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "property must be constant integer or logical expression at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "property must be a conforming device number at %C"
-msgstr "властивість повинна бути константним цілочисельним або логічним виразом у %C"
+msgstr "властивість повинна бути відповідним номером пристрою в %C"
 
 #: fortran/openmp.cc:5912
 #, gcc-internal-format, gfc-internal-format
@@ -75811,10 +75217,9 @@ msgid "expected simd clause at %C"
 msgstr "очікується замикання 'simd' у %C"
 
 #: fortran/openmp.cc:5985
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "expected trait selector name at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "expected context selector set name at %C"
-msgstr "очікується імʼя селектора риси на %C"
+msgstr "очікується ім'я набору селектора контексту в %C"
 
 #: fortran/openmp.cc:5992
 #, gcc-internal-format
@@ -75912,10 +75317,9 @@ msgid "!$OMP REQUIRES at %C must appear in the specification part of a program u
 msgstr "Замикання !$OMP REQUIRES в %C повинна зʼявлятися в частині специфікації програмного блоку"
 
 #: fortran/openmp.cc:6486
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Expected SEQ_CST, ACQ_REL or RELAXED for ATOMIC_DEFAULT_MEM_ORDER clause at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "Expected ACQ_REL, ACQUIRE, RELAXED, RELEASE or SEQ_CST for ATOMIC_DEFAULT_MEM_ORDER clause at %C"
-msgstr "Очікується SEQ_CST, ACQ_REL або RELAXED для замикання ATOMIC_DEFAULT_MEM_ORDER в %C"
+msgstr "Очікується ACQ_REL, ACQUIRE, RELAXED, RELEASE або SEQ_CST для клаузи ATOMIC_DEFAULT_MEM_ORDER в %C"
 
 #: fortran/openmp.cc:6502
 #, gcc-internal-format, gfc-internal-format
@@ -75968,16 +75372,14 @@ msgid "!$OMP ATOMIC at %L with %s clause requires %s clause"
 msgstr "!$OMP ATOMIC на %L з замиканням %s вимагає замикання %s"
 
 #: fortran/openmp.cc:6937
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "!$OMP ATOMIC WRITE at %L incompatible with ACQUIRE clause"
+#, gcc-internal-format, gfc-internal-format
 msgid "!$OMP ATOMIC WRITE at %L incompatible with ACQUIRES clause implicitly provided by a REQUIRES directive"
-msgstr "!$OMP АТОМНИЙ ЗАПИС на %L несумісний з ACQUIRE-замиканням"
+msgstr "!$OMP ATOMIC WRITE в %L несумісний з клаузою ACQUIRES, яка надається неявно директивою REQUIRES"
 
 #: fortran/openmp.cc:6948
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "!$OMP ATOMIC READ at %L incompatible with RELEASE clause"
+#, gcc-internal-format, gfc-internal-format
 msgid "!$OMP ATOMIC READ at %L incompatible with RELEASE clause implicitly provided by a REQUIRES directive"
-msgstr "!$OMP ATOMIC READ на %L несумісний з RELEASE-замиканням"
+msgstr "!$OMP ATOMIC READ в %L несумісний з клаузою RELEASE, яка надається неявно директивою REQUIRES"
 
 #: fortran/openmp.cc:6966
 #, gcc-internal-format, gfc-internal-format
@@ -76102,80 +75504,77 @@ msgstr "Неявно оголошена підпрограма %s викорис
 #: fortran/openmp.cc:7379
 #, gcc-internal-format
 msgid "Unexpected function-result variable %qs at %L in declarative !$OMP ALLOCATE"
-msgstr ""
+msgstr "Несподівана змінна-результат функції %qs у %L у декларативному !$OMP ALLOCATE"
 
 #: fortran/openmp.cc:7385
-#, fuzzy, gcc-internal-format
-#| msgid "Procedure pointer %qs in %s clause at %L"
+#, gcc-internal-format
 msgid "Procedure pointer %qs not supported with !$OMP ALLOCATE at %L"
-msgstr "Вказівник на процедуру %qs в замиканні %s на %L"
+msgstr "Вказівник на процедуру %qs не підтримується з !$OMP ALLOCATE в %L"
 
 #: fortran/openmp.cc:7391
 #, gcc-internal-format
 msgid "Argument %qs at %L to declarative !$OMP ALLOCATE directive must be a variable"
-msgstr ""
+msgstr "Аргумент %qs у %L до декларативної директиви !$OMP ALLOCATE повинен бути змінною"
 
 #: fortran/openmp.cc:7398
 #, gcc-internal-format
 msgid "Argument %qs at %L to declarative !$OMP ALLOCATE shall be in the same scope as the variable declaration"
-msgstr ""
+msgstr "Аргумент %qs у %L до декларативної директиви !$OMP ALLOCATE формально повинен бути в тому самому контексті, що і оголошення змінної"
 
 #: fortran/openmp.cc:7405
-#, fuzzy, gcc-internal-format
-#| msgid "Passed-object dummy argument of %qs at %L must not be ALLOCATABLE"
+#, gcc-internal-format
 msgid "Unexpected dummy argument %qs as argument at %L to declarative !$OMP ALLOCATE"
-msgstr "Фіктивний аргумент переданого обʼєкту %qs на %L не може бути ALLOCATABLE"
+msgstr "Неочікуваний аргумент-заглушка %qs як аргумент в %L до декларативного !$OMP ALLOCATE"
 
 #: fortran/openmp.cc:7411
 #, gcc-internal-format
 msgid "Unexpected coarray argument %qs as argument at %L to declarative !$OMP ALLOCATE"
-msgstr ""
+msgstr "Неочікуваний аргумент масиву з розподіленою пам'яттю %qs у %L для декларативного !$OMP ALLOCATE"
 
 #: fortran/openmp.cc:7419
 #, gcc-internal-format
 msgid "Duplicated common block %</%s/%> in !$OMP ALLOCATE at %L"
-msgstr ""
+msgstr "Дубльований спільний блок %</%s/%> у !$OMP ALLOCATE у %L"
 
 #: fortran/openmp.cc:7426
 #, gcc-internal-format
 msgid "Duplicated variable %qs in !$OMP ALLOCATE at %L"
-msgstr ""
+msgstr "Дубльована змінна %qs у !$OMP ALLOCATE у %L"
 
 #: fortran/openmp.cc:7437
 #, gcc-internal-format
 msgid "Sorry, EQUIVALENCE object %qs not supported with !$OMP ALLOCATE at %L"
-msgstr ""
+msgstr "Вибачте, але об'єкт EQUIVALENCE %qs не підтримується з !$OMP ALLOCATE у %L"
 
 #: fortran/openmp.cc:7446
 #, gcc-internal-format
 msgid "Sorry, Cray pointers and pointees such as %qs are not supported with !$OMP ALLOCATE at %L"
-msgstr ""
+msgstr "Вибачте, але покажчики Cray та їхні вказівники, такі як %qs, не підтримуються з !$OMP ALLOCATE у %L"
 
 #: fortran/openmp.cc:7455
 #, gcc-internal-format
 msgid "Unexpected allocatable variable %qs at %L in declarative !$OMP ALLOCATE directive"
-msgstr ""
+msgstr "Неочікувана змінна для аллокації %qs у %L у декларативній директиві !$OMP ALLOCATE"
 
 #: fortran/openmp.cc:7460
 #, gcc-internal-format
 msgid "Unexpected pointer variable %qs at %L in declarative !$OMP ALLOCATE directive"
-msgstr ""
+msgstr "Неочікувана змінна-вказівник %qs у %L у декларативній директиві !$OMP ALLOCATE"
 
 #: fortran/openmp.cc:7471 fortran/openmp.cc:8026
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "ALIGN modifier requires at %L a scalar positive constant integer alignment expression that is a power of two"
+#, gcc-internal-format, gfc-internal-format
 msgid "ALIGN requires a scalar positive constant integer alignment expression at %L that is a power of two"
-msgstr "Модифікатор ALIGN вимагає на %L скалярний додатний цілочисельний вираз, що є степенем двійки"
+msgstr "ALIGN вимагає скалярний додатній сталий цілочисельний вираз вирівнювання в %L, який є степенем двійки"
 
 #: fortran/openmp.cc:7486
 #, gcc-internal-format
 msgid "An ALLOCATOR clause is required as the list item %<%s%s%s%> at %L has the SAVE attribute"
-msgstr ""
+msgstr "Необхідно вказати клаузу ALLOCATOR, оскільки елемент списку %<%s%s%s%> у %L має атрибут SAVE"
 
 #: fortran/openmp.cc:7491
 #, gcc-internal-format
 msgid "Predefined allocator required in ALLOCATOR clause at %L as the list item %<%s%s%s%> at %L has the SAVE attribute"
-msgstr ""
+msgstr "Превизначений алокатор потрібен у клаузі ALLOCATOR в %L, оскільки елемент списку %<%s%s%s%> в %L має атрибут SAVE"
 
 #: fortran/openmp.cc:7505 fortran/openmp.cc:8010
 #, gcc-internal-format
@@ -76214,10 +75613,9 @@ msgid "IF clause modifier %s at %L not appropriate for the current OpenMP constr
 msgstr "Модифікатор замикання IF %s на %L не підходить для поточної конструкції OpenMP"
 
 #: fortran/openmp.cc:7717
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "IF clause at %L requires a scalar LOGICAL expression"
+#, gcc-internal-format, gfc-internal-format
 msgid "SELF clause at %L requires a scalar LOGICAL expression"
-msgstr "Замикання IF на рядку %L вимагає скалярний логічний вираз"
+msgstr "Клауза SELF в %L вимагає скалярного логічного виразу"
 
 #: fortran/openmp.cc:7726
 #, gcc-internal-format, gfc-internal-format
@@ -76303,10 +75701,9 @@ msgid "Symbol %qs present on both data and map clauses at %L"
 msgstr "Символ %qs присутній як у замиканні data, так і у замиканні map на %L"
 
 #: fortran/openmp.cc:8051
-#, fuzzy, gcc-internal-format
-#| msgid "%qs appears more than once in %<allocate%> clauses at %L"
+#, gcc-internal-format
 msgid "%qs appears more than once in %<allocate%> at %L"
-msgstr "%qs зʼявляється більше одного разу в замиканнях %<allocate%> на %L"
+msgstr "%qs з'являється більше одного разу в %<allocate%> в %L"
 
 #: fortran/openmp.cc:8093
 #, gcc-internal-format
@@ -76314,41 +75711,39 @@ msgid "%qs specified in %<allocate%> clause at %L but not in an explicit privati
 msgstr "%qs вказано в замиканні %<allocate%> на %L, але не в явному замиканні приватизації"
 
 #: fortran/openmp.cc:8121
-#, fuzzy, gcc-internal-format
-#| msgid "Unexpected coarray designator at %C"
+#, gcc-internal-format
 msgid "Unexpected coarray %qs in %<allocate%> at %L"
-msgstr "Неочікуваний ідентифікатор комасиву у %C"
+msgstr "Неочікуваний комасив %qs у %<allocate%> в %L"
 
 #: fortran/openmp.cc:8135
-#, fuzzy, gcc-internal-format
-#| msgid "%qs specified in %<allocate%> clause at %L but not in an explicit privatization clause"
+#, gcc-internal-format
 msgid "%qs specified in %<allocate%> at %L but not in the associated ALLOCATE statement"
-msgstr "%qs вказано в замиканні %<allocate%> на %L, але не в явному замиканні приватизації"
+msgstr "%qs вказано в %<allocate%> в %L, але не в пов'язаному операторі ALLOCATE"
 
 #: fortran/openmp.cc:8169
 #, gcc-internal-format
 msgid "%qs listed in %<allocate%> statement at %L but it is neither explicitly in listed in the %<!$OMP ALLOCATE%> directive nor exists a directive without argument list"
-msgstr ""
+msgstr "%qs згадано в операторі %<allocate%> на %L, але він не явно зазначений у директиві %<!$OMP ALLOCATE%> і не існує директиви без списку аргументів"
 
 #: fortran/openmp.cc:8180
 #, gcc-internal-format
 msgid "Unexpected coarray %qs in %<allocate%> at %L, implicitly listed in %<!$OMP ALLOCATE%> at %L"
-msgstr ""
+msgstr "Неочікуваний комасив %qs у %<allocate%> в %L, неявно перерахований у %<!$OMP ALLOCATE%> в %L"
 
 #: fortran/openmp.cc:8205
 #, gcc-internal-format
 msgid "ALLOCATORS directive at %L inside a target region must specify an ALLOCATOR modifier for %qs"
-msgstr ""
+msgstr "Директива ALLOCATORS у %L всередині цільового регіону повинна вказувати модифікатор ALLOCATOR для %qs"
 
 #: fortran/openmp.cc:8209
 #, gcc-internal-format
 msgid "ALLOCATE directive at %L inside a target region must specify an ALLOCATOR clause for %qs"
-msgstr ""
+msgstr "Директива ALLOCATE у %L всередині цільового регіону повинна вказувати клаузу ALLOCATOR для %qs"
 
 #: fortran/openmp.cc:8213
 #, gcc-internal-format, gfc-internal-format
 msgid "ALLOCATE directive at %L inside a target region must specify an ALLOCATOR clause"
-msgstr ""
+msgstr "Директива ALLOCATE у %L всередині цільового регіону повинна вказувати клаузу ALLOCATOR"
 
 #: fortran/openmp.cc:8236
 #, gcc-internal-format
@@ -76529,28 +75924,27 @@ msgstr "Елемент списку %qs в замиканні %s на %L пов
 #: fortran/openmp.cc:8739
 #, gcc-internal-format
 msgid "Memspace %qs at %L in USES_ALLOCATORS must be a predefined memory space"
-msgstr ""
+msgstr "Простір пам'яті %qs у %L в USES_ALLOCATORS повинен бути превизначеним простором пам'яті"
 
 #: fortran/openmp.cc:8747
-#, fuzzy, gcc-internal-format
-#| msgid "%qs at %L should be a scalar of type integer(kind=omp_event_handle_kind)"
+#, gcc-internal-format
 msgid "Allocator %qs at %L in USES_ALLOCATORS must be a scalar integer of kind %<omp_allocator_handle_kind%>"
-msgstr "%qs на %L повинно бути скаляром типу integer(kind=omp_event_handle_kind)"
+msgstr "Аллокатор %qs в %L в USES_ALLOCATORS повинен бути скаляром цілого числа типу %<omp_allocator_handle_kind%>"
 
 #: fortran/openmp.cc:8755
 #, gcc-internal-format
 msgid "Allocator %qs at %L in USES_ALLOCATORS must either a variable or a predefined allocator"
-msgstr ""
+msgstr "Алокатор %qs у %L в USES_ALLOCATORS повинен бути або змінною, або превизначеним алокатором"
 
 #: fortran/openmp.cc:8760
 #, gcc-internal-format
 msgid "A memory space or traits array may not be specified for predefined allocator %qs at %L"
-msgstr ""
+msgstr "Простір пам'яті або масив властивостей не може бути вказаний для превизначеного алокатора %qs у %L"
 
 #: fortran/openmp.cc:8771
 #, gcc-internal-format
 msgid "Traits array %qs in USES_ALLOCATORS %L must be a one-dimensional named constant array of type %<omp_alloctrait%>"
-msgstr ""
+msgstr "Масив властивостей %qs у USES_ALLOCATORS %L повинен бути іменованим одновимірним масивом констант типу %<omp_alloctrait%>"
 
 #: fortran/openmp.cc:8801
 #, gcc-internal-format
@@ -76686,7 +76080,7 @@ msgstr "Замикання %<DETACH%> на %L не слід використов
 #: fortran/openmp.cc:9256
 #, gcc-internal-format
 msgid "%<host_data%> construct at %L requires %<use_device%> clause"
-msgstr ""
+msgstr "Конструкція %<host_data%> у %L вимагає клаузи %<use_device%>"
 
 #: fortran/openmp.cc:9410
 #, gcc-internal-format, gfc-internal-format
@@ -76824,35 +76218,34 @@ msgid "unexpected !$OMP ATOMIC expression at %L"
 msgstr "неочікуваний вираз !$OMP ATOMIC на %L"
 
 #: fortran/openmp.cc:9978
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "With INSCAN at %L, expected loop body with !$OMP SCAN between two structured-block-sequences"
+#, gcc-internal-format, gfc-internal-format
 msgid "With INSCAN at %L, expected loop body with !$OMP SCAN between two structured block sequences"
-msgstr "З INSCAN на %L очікується тіло циклу з !$OMP SCAN між двома послідовностями структурованих блоків"
+msgstr "З INSCAN в %L очікується тіло циклу з !$OMP SCAN між двома послідовностями структурованих блоків"
 
 #: fortran/openmp.cc:9985
 #, gcc-internal-format, gfc-internal-format
 msgid "!$OMP SCAN at %L with zero executable statements in preceding structured block sequence"
-msgstr ""
+msgstr "!$OMP SCAN на %L без інструкцій у попередній структурованій послідовності блоків"
 
 #: fortran/openmp.cc:9992
 #, gcc-internal-format, gfc-internal-format
 msgid "!$OMP SCAN at %L with zero executable statements in succeeding structured block sequence"
-msgstr ""
+msgstr "!$OMP SCAN в %L з нулем виконуваних інструкцій у наступній структурованій послідовності блоків"
 
 #: fortran/openmp.cc:10206
 #, gcc-internal-format, gfc-internal-format
 msgid "%s cannot contain loop in intervening code at %L"
-msgstr ""
+msgstr "%s не може містити цикл у проміжному коді в %L"
 
 #: fortran/openmp.cc:10286
 #, gcc-internal-format, gfc-internal-format
 msgid "%s cannot contain OpenMP directive in intervening code at %L"
-msgstr ""
+msgstr "%s не може містити директиву OpenMP в проміжному коді в %L"
 
 #: fortran/openmp.cc:10298 fortran/openmp.cc:10324
 #, gcc-internal-format, gfc-internal-format
 msgid "%s cannot contain OpenMP API call in intervening code at %L"
-msgstr ""
+msgstr "%s не може містити виклик OpenMP API в проміжному коді в %L"
 
 #: fortran/openmp.cc:10852
 #, gcc-internal-format, gfc-internal-format
@@ -76890,10 +76283,9 @@ msgid "%s iteration variable used in more than one loop at %L"
 msgstr "Змінна ітерації %s використовується в більш ніж одній петлі на %L"
 
 #: fortran/openmp.cc:10904
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "iteration variable %qE should not be reduction"
+#, gcc-internal-format, gfc-internal-format
 msgid "%s iteration variable at %L is bound in intervening code"
-msgstr "ітераційна змінна %qE не повинна бути зменшуваною"
+msgstr "Змінна ітерації %s в %L є зв'язаною в проміжному коді"
 
 #: fortran/openmp.cc:10913
 #, gcc-internal-format, gfc-internal-format
@@ -76901,10 +76293,9 @@ msgid "%s loop start expression not in canonical form at %L"
 msgstr "Вираз початку петлі %s не знаходиться в канонічній формі на %L"
 
 #: fortran/openmp.cc:10920
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "%s loop start expression not in canonical form at %L"
+#, gcc-internal-format, gfc-internal-format
 msgid "%s loop start expression at %L uses variable bound in intervening code"
-msgstr "Вираз початку петлі %s не знаходиться в канонічній формі на %L"
+msgstr "Вираз початку циклу %s в %L використовує зв'язану змінну в проміжному коді"
 
 #: fortran/openmp.cc:10929
 #, gcc-internal-format, gfc-internal-format
@@ -76914,7 +76305,7 @@ msgstr "Вираз кінця петлі %s не знаходиться в ка
 #: fortran/openmp.cc:10936
 #, gcc-internal-format, gfc-internal-format
 msgid "%s loop end expression at %L uses variable bound in intervening code"
-msgstr ""
+msgstr "Вираз кінця циклу %s на %L використовує змінну, визначену в проміжному коді"
 
 #: fortran/openmp.cc:10943
 #, gcc-internal-format, gfc-internal-format
@@ -76929,25 +76320,23 @@ msgstr "Приріст петлі %s не знаходиться в каноні
 #: fortran/openmp.cc:10956
 #, gcc-internal-format, gfc-internal-format
 msgid "%s loop increment expression at %L uses variable bound in intervening code"
-msgstr ""
+msgstr "Вираз інкременту циклу %s на %L використовує змінну, визначену в проміжному коді"
 
 #. Parse error, can't recover from this.
 #: fortran/openmp.cc:10974
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "not enough DO loops for collapsed %s at %L"
+#, gcc-internal-format, gfc-internal-format
 msgid "not enough DO loops for collapsed %s (level %d) at %L"
-msgstr "Недостатньо DO-циклів для згорнутого %s на %L"
+msgstr "недостатньо циклів DO для згорнутого %s (рівень %d) в %L"
 
 #: fortran/openmp.cc:10986
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "%s !$ACC LOOP loops not perfectly nested at %L"
+#, gcc-internal-format, gfc-internal-format
 msgid "%s inner loops must be perfectly nested with ORDERED clause at %L"
-msgstr "Цикли %s !$ACC LOOP не є ідеально вкладеними на %L"
+msgstr "Внутрішні цикли %s повинні бути ідеально вкладені з клаузою ORDERED в %L"
 
 #: fortran/openmp.cc:10993
 #, gcc-internal-format, gfc-internal-format
 msgid "%s inner loops must be perfectly nested with REDUCTION INSCAN clause at %L"
-msgstr ""
+msgstr "Внутрішні цикли %s повинні бути правильно вкладені з клаузою REDUCTION INSCAN в %L"
 
 #: fortran/openmp.cc:11220 fortran/openmp.cc:11233
 #, gcc-internal-format, gfc-internal-format
@@ -77012,12 +76401,12 @@ msgstr "Імʼя %qs недійсне в !$ACC ROUTINE ( ІМʼЯ ) на %L"
 #: fortran/openmp.cc:11569
 #, gcc-internal-format, gfc-internal-format
 msgid "!$OMP TARGET region at %L with a nested TEAMS at %L may not contain any other statement, declaration or directive outside of the single TEAMS construct"
-msgstr ""
+msgstr "Область !$OMP TARGET в %L з вкладеними TEAMS в %L не може містити жодної іншої інструкції, декларації або директиви, крім одного конструкту TEAMS."
 
 #: fortran/openmp.cc:11573
 #, gcc-internal-format, gfc-internal-format
 msgid "!$OMP TARGET region at %L with a nested TEAMS may not contain any other statement, declaration or directive outside of the single TEAMS construct"
-msgstr ""
+msgstr "Область !$OMP TARGET в %L з вкладеними TEAMS не може містити жодної іншої інструкції, декларації або директиви поза одним конструктом TEAMS"
 
 #: fortran/openmp.cc:11667
 #, gcc-internal-format, gfc-internal-format
@@ -77197,23 +76586,22 @@ msgstr "Некласифікована директива OpenACC у %C"
 #: fortran/parse.cc:817
 #, gcc-internal-format
 msgid "%qs directive at %L must either have a variable argument or, if associated with an ALLOCATE stmt, must be preceded by an executable statement or OpenMP construct"
-msgstr ""
+msgstr "Директива %qs в %L повинна мати змінний аргумент або, якщо пов'язана з інструкцією ALLOCATE, то перед нею має бути блок коду або конструкція OpenMP."
 
 #: fortran/parse.cc:829
 #, gcc-internal-format
 msgid "Structure-component expression at %L in %qs directive not permitted in declarative directive; as directive associated with an ALLOCATE stmt it must be preceded by an executable statement or OpenMP construct"
-msgstr ""
+msgstr "Вираз компонента структури в %L директиві %qs не дозволений у декларативній директиві; якщо директива пов'язана з інструкцією ALLOCATE, то вона повинна бути перед іншою виконуваною інструкцією або конструкцією OpenMP"
 
 #: fortran/parse.cc:855
 #, gcc-internal-format
 msgid "%qs directive at %L associated with an ALLOCATE stmt must be preceded by an executable statement or OpenMP construct; note the variables in the list all have the allocatable or pointer attribute"
-msgstr ""
+msgstr "Директива %qs в %L, пов'язана з оператором ALLOCATE, має передувати виконуваному оператору або конструкції OpenMP. Зверніть увагу: усі змінні у списку мають атрибут allocatable або pointer"
 
 #: fortran/parse.cc:1023 fortran/parse.cc:1325
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "OpenACC directives other than ROUTINE may not appear in PURE procedures at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "OpenMP directive at %C is not pure and thus may not appear in a PURE procedure"
-msgstr "Директиви OpenACC, крім ROUTINE, не можуть зʼявлятися в PURE процедурах у %C"
+msgstr "Директива OpenMP в %C не є чистою і тому не може з'явитися в чистій процедурі"
 
 #: fortran/parse.cc:1296
 #, gcc-internal-format, gfc-internal-format
@@ -77223,7 +76611,7 @@ msgstr "Некласифікована директива OpenMP у %C"
 #: fortran/parse.cc:1312
 #, gcc-internal-format
 msgid "OpenMP ERROR directive at %L with %<at(execution)%> clause in a PURE procedure"
-msgstr ""
+msgstr "Директива OpenMP ERROR в %L з клаузою %<at(execution)%> у чистій процедурі"
 
 #: fortran/parse.cc:1440
 #, gcc-internal-format, gfc-internal-format
@@ -77633,19 +77021,17 @@ msgstr "Зайвий !$ACC END LOOP на %C"
 #: fortran/parse.cc:5835
 #, gcc-internal-format, gfc-internal-format
 msgid "%s statements at %L and %L have both no list item but only one may"
-msgstr ""
+msgstr "Вирази %s в %L і %L пусті, але тільки один може"
 
 #: fortran/parse.cc:5855
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Expected expression at %C in PARAMETER statement"
+#, gcc-internal-format, gfc-internal-format
 msgid "Unexpected %s at %C; expected ALLOCATE or %s statement"
-msgstr "Очікувано вираз в операторі PARAMETER в %C"
+msgstr "Неочікуваний %s в %C; очікується оператор ALLOCATE або %s"
 
 #: fortran/parse.cc:5858
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Expected %<*%> in coindex specification in ALLOCATE statement at %L"
+#, gcc-internal-format, gfc-internal-format
 msgid "Unexpected %s at %C; expected ALLOCATE statement after %s"
-msgstr "Очікується %<*%> в специфікації коіндексу в операторі ALLOCATE на %L"
+msgstr "Неочікуваний %s в %C; очікується оператор ALLOCATE після %s"
 
 #: fortran/parse.cc:6146
 #, gcc-internal-format, gfc-internal-format
@@ -77891,16 +77277,12 @@ msgid "match_string_constant(): Delimiter not found"
 msgstr "match_string_constant(): Роздільник не знайдено"
 
 #: fortran/primary.cc:1193
-#, fuzzy
-#| msgid "Substring start index (%ld) at %L below 1"
 msgid "Substring start index (%td) at %L below 1"
-msgstr "Початковий індекс підстрічки (%ld) на %L менше 1"
+msgstr "Початковий індекс підрядка (%td) в %L менше 1"
 
 #: fortran/primary.cc:1199
-#, fuzzy
-#| msgid "Substring end index (%ld) at %L exceeds string length"
 msgid "Substring end index (%td) at %L exceeds string length"
-msgstr "Кінцевий індекс підстрічки (%ld) на %L перевищує довжину рядка"
+msgstr "Кінцевий індекс підрядка (%td) в %L перевищує довжину рядка"
 
 #: fortran/primary.cc:1284
 #, gcc-internal-format, gfc-internal-format
@@ -78103,10 +77485,8 @@ msgid "Too many components in structure constructor at %L"
 msgstr "Занадто багато компонентів у конструкторі структури на %L"
 
 #: fortran/primary.cc:3393
-#, fuzzy
-#| msgid "CHARACTER expression will be truncated in constructor (%ld/%ld) at %L"
 msgid "CHARACTER expression will be truncated in constructor (%td/%td) at %L"
-msgstr "Вираз CHARACTER буде обрізаний у конструкторі (%ld/%ld) на %L"
+msgstr "Вираз CHARACTER буде скорочено в конструкторі (%td/%td) в %L"
 
 #: fortran/primary.cc:3411
 #, gcc-internal-format
@@ -78426,10 +77806,9 @@ msgid "%qs at %L cannot appear in COMMON [F2008:C5100]"
 msgstr "%qs на %L не може зʼявлятися в COMMON [F2008:C5100]"
 
 #: fortran/resolve.cc:1010
-#, fuzzy, gcc-internal-format
-#| msgid "Global entity %qs at %L cannot appear in a COMMON block at %L"
+#, gcc-internal-format
 msgid "Automatic object %qs at %L cannot appear in COMMON at %L"
-msgstr "Глобальна сутність %qs на %L не може зʼявлятися в блоку COMMON на %L"
+msgstr "Автоматичний об'єкт %qs в %L не може з'явитися в COMMON в %L"
 
 #: fortran/resolve.cc:1022
 #, gcc-internal-format
@@ -78577,15 +77956,14 @@ msgid "The intrinsic %qs declared INTRINSIC at %L is not available in the curren
 msgstr "Вбудована функція %qs, оголошена як INTRINSIC у %L, недоступна в поточних налаштуваннях стандарту, але %s. Використовуйте відповідну опцію %<-std=*%> або увімкніть %<-fall-intrinsics%>, щоб використовувати її."
 
 #: fortran/resolve.cc:1971
-#, fuzzy, gcc-internal-format
-#| msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
+#, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs from module %qs is  possibly calling itself recursively in procedure %qs.  Declare it RECURSIVE or use %<-frecursive%>"
-msgstr "Можливо, нерекурсивна процедура %qs у %L викликається рекурсивно сама себе. Оголосіть її як RECURSIVE або використовуйте %<-frecursive%>"
+msgstr "Нерекурсивна процедура %qs з модуля %qs можливо викликає рекурсивно сама себе у процедурі %qs. Оголосіть її як RECURSIVE або використовуйте %<-frecursive%>"
 
 #: fortran/resolve.cc:1976 fortran/resolve.cc:6852
 #, gcc-internal-format
 msgid "Non-RECURSIVE procedure %qs at %L is possibly calling itself recursively.  Declare it RECURSIVE or use %<-frecursive%>"
-msgstr "Можливо, нерекурсивна процедура %qs у %L викликається рекурсивно сама себе. Оголосіть її як RECURSIVE або використовуйте %<-frecursive%>"
+msgstr "Можливо, нерекурсивна процедура %qs у %L викликає рекурсивно сама себе. Оголосіть її як RECURSIVE або використовуйте %<-frecursive%>"
 
 #: fortran/resolve.cc:2035 fortran/resolve.cc:10832 fortran/resolve.cc:12814
 #, gcc-internal-format, gfc-internal-format
@@ -79107,10 +78485,9 @@ msgid "Assumed-rank variable %s at %L shall not have a subobject reference"
 msgstr "Припущена змінна рангу %s на %L не повинна мати посилання на підобʼєкт"
 
 #: fortran/resolve.cc:5935
-#, fuzzy, gcc-internal-format
-#| msgid "Bad array reference at %L"
+#, gcc-internal-format
 msgid "Scalar variable %qs has an array reference at %L"
-msgstr "Погана посилання на масив на %L"
+msgstr "Скалярна змінна %qs має посилання на масив в %L"
 
 #: fortran/resolve.cc:6080
 #, gcc-internal-format
@@ -79138,10 +78515,9 @@ msgid "Using variable %qs at %L is deprecated"
 msgstr "Використання змінної %qs у %L є застарілим"
 
 #: fortran/resolve.cc:6239 fortran/resolve.cc:6324 fortran/resolve.cc:6348
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Bad array reference at %L"
+#, gcc-internal-format, gfc-internal-format
 msgid "Invalid array reference at %L"
-msgstr "Погана посилання на масив на %L"
+msgstr "Неправильне посилання на масив в %L"
 
 #: fortran/resolve.cc:6433
 #, gcc-internal-format
@@ -79739,16 +79115,14 @@ msgid "gfc_resolve_blocks(): Bad block type"
 msgstr "gfc_resolve_blocks(): Неправильний тип блоку"
 
 #: fortran/resolve.cc:11507
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Data transfer element at %L cannot have procedure pointer components"
+#, gcc-internal-format, gfc-internal-format
 msgid "Variable in the ordinary assignment at %L is a procedure pointer component"
-msgstr "Елемент передачі даних на %L не може мати компоненти вказівника на процедуру"
+msgstr "Змінна в звичайному присвоєнні в %L є компонентом вказівника на процедуру"
 
 #: fortran/resolve.cc:11568
-#, fuzzy, gcc-internal-format
-#| msgid "CHARACTER expression will be truncated in assignment (%ld/%ld) at %L"
+#, gcc-internal-format
 msgid "CHARACTER expression will be truncated in assignment (%wd/%wd) at %L"
-msgstr "Вираз CHARACTER буде обрізаний при присвоєнні (%ld/%ld) на %L"
+msgstr "Вираз CHARACTER буде скорочено в присвоєнні (%wd/%wd) в %L"
 
 #: fortran/resolve.cc:11600
 #, gcc-internal-format, gfc-internal-format
@@ -80241,16 +79615,14 @@ msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
 msgstr "Аргумент %qs функції %qs з PASS(%s) на %L повинен бути похідним типом %qs"
 
 #: fortran/resolve.cc:15052
-#, fuzzy, gcc-internal-format
-#| msgid "Argument %qs of %qs with PASS(%s) at %L must be of the derived-type %qs"
+#, gcc-internal-format
 msgid "Argument %qs of %qs with PASS(%s) at %L must be of the parametric derived-type %qs"
-msgstr "Аргумент %qs функції %qs з PASS(%s) на %L повинен бути похідним типом %qs"
+msgstr "Аргумент %qs для %qs з PASS(%s) в %L повинен бути типу параметричного похідного типу %qs"
 
 #: fortran/resolve.cc:15094
-#, fuzzy, gcc-internal-format
-#| msgid "All the LEN type parameters in the TYPE IS statement at %C must be ASSUMED"
+#, gcc-internal-format
 msgid "All LEN type parameters of the passed dummy argument %qs of %qs at %L must be ASSUMED."
-msgstr "Усі параметри типу LEN в інструкції TYPE IS на %C повинні бути ПРИПУЩЕНІ"
+msgstr "Всі параметри типу LEN переданого формального аргументу %qs для %qs на %L повинні бути позначені як ASSUMED."
 
 #: fortran/resolve.cc:15104
 #, gcc-internal-format
@@ -80463,10 +79835,9 @@ msgid "CLASS variable %qs at %L cannot have the PARAMETER attribute"
 msgstr "Змінна CLASS %qs у %L не може мати атрибут PARAMETER"
 
 #: fortran/resolve.cc:16221
-#, fuzzy, gcc-internal-format
-#| msgid "Entity %qs at %L has a deferred type parameter and requires either the POINTER or ALLOCATABLE attribute"
+#, gcc-internal-format
 msgid "Entity %qs at %L has a deferred LEN parameter %qs and requires either the POINTER or ALLOCATABLE attribute"
-msgstr "Сутність %qs на %L має відкладений параметр типу і вимагає атрибут POINTER або ALLOCATABLE"
+msgstr "Об'єкт %qs на %L має відкладений параметр LEN %qs і вимагає атрибут POINTER або ALLOCATABLE"
 
 #: fortran/resolve.cc:16233
 #, gcc-internal-format
@@ -80749,10 +80120,9 @@ msgid "DATA statement at %L has more variables than values"
 msgstr "Інструкція DATA у %L має більше змінних, ніж значень"
 
 #: fortran/resolve.cc:17365
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Nonconstant array section at %L in DATA statement"
+#, gcc-internal-format, gfc-internal-format
 msgid "Non-constant character length at %L in DATA statement"
-msgstr "Неконстантний розділ масиву у %L в інструкції DATA"
+msgstr "Неконстантна довжина символу на %L у операторі DATA"
 
 #: fortran/resolve.cc:17393
 #, gcc-internal-format, gfc-internal-format
@@ -81311,10 +80681,9 @@ msgid "Result of SCALE overflows its kind at %L"
 msgstr "Результат масштабування перевищує його тип на %L"
 
 #: fortran/simplify.cc:7634
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "%qs argument of %qs intrinsic at %L must be of rank %d"
+#, gcc-internal-format, gfc-internal-format
 msgid "DIM argument (%d) to intrinsic SIZE at %L out of range (1:%d)"
-msgstr "Аргумент %qs вбудованої функції %qs на %L повинен мати ранг %d"
+msgstr "Аргумент DIM (%d) для вбудованої функції SIZE на %L поза діапазоном (1:%d)"
 
 #: fortran/simplify.cc:7759
 #, gcc-internal-format
@@ -81812,10 +81181,9 @@ msgid "bad expression type during walk (%d)"
 msgstr "поганий тип виразу під час обходу (%d)"
 
 #: fortran/trans-common.cc:411
-#, fuzzy, gcc-internal-format
-#| msgid "Named COMMON block %qs at %L shall be of the same size as elsewhere (%lu vs %lu bytes)"
+#, gcc-internal-format
 msgid "Named COMMON block %qs at %L shall be of the same size as elsewhere (%wu vs %wu bytes)"
-msgstr "Зазначений загальний блок %qs на %L повинен мати такий самий розмір, як і в інших місцях (%lu проти %lu байтів)"
+msgstr "Іменований блок COMMON %qs на %L повинен мати такий же розмір, як і в іншому місці (%wu проти %wu байтів)"
 
 #: fortran/trans-common.cc:819
 #, gcc-internal-format
@@ -81899,10 +81267,9 @@ msgid "Array %qs at %L is larger than limit set by %<-fmax-stack-var-size=%>, mo
 msgstr "Масив %qs у %L більший за обмеження, встановлене за допомогою %<-fmax-stack-var-size=%>, перенесений зі стеку в статичне сховище. Це робить процедуру небезпечною при рекурсивному виклику або одночасному виклику з кількох потоків. Розгляньте можливість збільшення обмеження %<-fmax-stack-var-size=%> (або використання %<-frecursive%>, що позначає необмежене %<-fmax-stack-var-size%>) - або змініть код для використання масиву типу ALLOCATABLE. Якщо змінна ніколи не використовується одночасно, це попередження можна ігнорувати, і змінну також можна оголосити з атрибутом SAVE."
 
 #: fortran/trans-decl.cc:1800
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "%s at %C has no default type"
+#, gcc-internal-format, gfc-internal-format
 msgid "%s at %L has no default type"
-msgstr "%s у %C не має типу за замовчуванням"
+msgstr "%s на %L не має типу за замовчуванням"
 
 #: fortran/trans-decl.cc:1804
 #, gcc-internal-format
@@ -81922,13 +81289,12 @@ msgstr "Відкладений параметр типу ще не підтри
 #: fortran/trans-decl.cc:5225
 #, gcc-internal-format
 msgid "Sorry, !$OMP allocate for COMMON block variable %qs at %L not supported"
-msgstr ""
+msgstr "Вибачте, !$OMP allocate для змінної блоку COMMON %qs в %L не підтримується"
 
 #: fortran/trans-decl.cc:5232
-#, fuzzy, gcc-internal-format
-#| msgid "Character dummy variable %qs at %L with VALUE attribute must have constant length"
+#, gcc-internal-format
 msgid "Sorry, !$OMP allocate for variable %qs at %L with SAVE attribute not yet implemented"
-msgstr "Фіктивна змінна символьного типу %qs на %L з атрибутом VALUE повинна мати сталу довжину"
+msgstr "Вибачте, виділення пам'яті !$OMP для змінної %qs у %L з атрибутом SAVE ще не реалізовано"
 
 #: fortran/trans-decl.cc:5438
 #, gcc-internal-format
@@ -82089,28 +81455,27 @@ msgstr "невідомий вираз"
 #: fortran/trans-openmp.cc:4114
 #, gcc-internal-format
 msgid "%<uses_allocators%> clause with traits and memory spaces"
-msgstr ""
+msgstr "Клауза %<uses_allocators%> з ознаками та областями пам’яті"
 
 #: fortran/trans-openmp.cc:5038
 #, gcc-internal-format
 msgid "%<!$OMP %s%> at %L requires %<-fopenmp-allocators%>"
-msgstr ""
+msgstr "%<!$OMP %s%> в %L вимагає %<-fopenmp-allocators%>"
 
 #: fortran/trans-openmp.cc:5041
 #, gcc-internal-format
 msgid "All files that might deallocate such a variable must be compiled with %<-fopenmp-allocators%>"
-msgstr ""
+msgstr "Всі файли, які можуть звільнити виділену пам'ять такої змінної, повинні бути скомпільовані з %<-fopenmp-allocators%>"
 
 #: fortran/trans-openmp.cc:5044
 #, gcc-internal-format
 msgid "This includes explicit DEALLOCATE, reallocation on intrinsic assignment, INTENT(OUT) for allocatable dummy arguments, and reallocation of allocatable components allocated with an OpenMP allocator"
-msgstr ""
+msgstr "Це включає явне звільнення пам'яті (DEALLOCATE), перевиділення під час внутрішнього присвоювання, INTENT(OUT) для виділених аргументів-заступників та перевиділення виділених компонентів, які були виділені за допомогою OpenMP allocator"
 
 #: fortran/trans-openmp.cc:5621 fortran/trans-openmp.cc:5641
-#, fuzzy, gcc-internal-format
-#| msgid "non-rectangular loop nest with step other than constant 1 or -1 for %qs"
+#, gcc-internal-format
 msgid "non-rectangular loop nest with non-constant step for %qs"
-msgstr "не-прямокутне вкладення циклу з кроком, відмінним від сталого 1 або -1 для %qs"
+msgstr "непрямокутна вкладеність циклів з неконстантним кроком для %qs"
 
 #: fortran/trans-openmp.cc:5643
 #, gcc-internal-format
@@ -82694,24 +82059,22 @@ msgstr "аргумент для CAP не є константою або змін
 #: m2/gm2-gcc/m2expr.cc:4037
 #, gcc-internal-format
 msgid "constant literal %qs exceeds internal ZTYPE range"
-msgstr ""
+msgstr "літерал константи %qs перевищує внутрішній діапазон ZTYPE"
 
 #: m2/gm2-gcc/m2expr.cc:3957
 #, gcc-internal-format
 msgid "constant literal %qs contains %qc, expected 0 or 1"
-msgstr ""
+msgstr "літерал константи %qs містить %qc, а очікувалося 0 або 1"
 
 #: m2/gm2-gcc/m2expr.cc:3972 m2/gm2-gcc/m2expr.cc:3984
-#, fuzzy, gcc-internal-format
-#| msgid "language dialect differs %qs, expected %qs"
+#, gcc-internal-format
 msgid "constant literal %qs contains %qc, expected %qs"
-msgstr "Діалект мови відрізняється %qs, очікувався %qs"
+msgstr "константний літерал %qs містить %qc, очікується %qs"
 
 #: m2/gm2-gcc/m2expr.cc:4003
-#, fuzzy, gcc-internal-format
-#| msgid "target & host is %qs:%qs, expected %qs:%qs"
+#, gcc-internal-format
 msgid "constant literal %qs contains %qc, expected %qs or %qs"
-msgstr "ціль та хост - %qs:%qs, очікувалося %qs:%qs"
+msgstr "константний літерал %qs містить %qc, очікується %qs або %qs"
 
 #: m2/gm2-gcc/m2expr.cc:4069
 #, gcc-internal-format
@@ -83875,335 +83238,4 @@ msgstr "невикористане імʼя %qE"
 #: rust/resolve/rust-ast-resolve-expr.cc:167
 #, gcc-internal-format, gfc-internal-format
 msgid "are you trying to break %s? how dare you?"
-msgstr ""
-
-#~ msgid "to generate dependencies you must specify '-fcpp' "
-#~ msgstr "для генерації залежностей потрібно вказати '-fcpp'"
-
-#, no-c-format
-#~ msgid "turn on quadruple tracing (internal switch)"
-#~ msgstr "увімкнути чотирикратне відстеження (внутрішній перемикач)"
-
-#, no-c-format
-#~ msgid "turn on the Modula-2 api tracing (internal switch)"
-#~ msgstr "увімкнути відстеження api Modula-2 (внутрішній перемикач)"
-
-#, no-c-format
-#~ msgid "turn on the Modula-2 function line number generation (internal switch)"
-#~ msgstr "увімкнути генерацію номерів рядків функцій Modula-2 (внутрішній перемикач)"
-
-#, no-c-format
-#~ msgid "When vectorizing for SVE, consider using unpacked vectors for smaller elements and use the cost model to pick the cheapest approach.  Also use the cost model to choose between SVE and Advanced SIMD vectorization."
-#~ msgstr "При векторизації для SVE розгляньте використання розпакованих векторів для менших елементів та використовуйте модель вартості для вибору найбільш економного підходу. Також використовуйте модель вартості для вибору між векторизацією SVE та Advanced SIMD."
-
-#, no-c-format
-#~ msgid "Indicate presence of a processor erratum."
-#~ msgstr "Вказати наявність помилки процесора."
-
-#, no-c-format
-#~ msgid "Use RJMP / RCALL even though CALL / JMP are available."
-#~ msgstr "Використовуйте RJMP / RCALL, навіть якщо доступні CALL / JMP."
-
-#, no-c-format
-#~ msgid "The device has no SPH special function register. This option will be overridden by the compiler driver with the correct setting if presence/absence of SPH can be deduced from -mmcu=MCU."
-#~ msgstr "Пристрій не має спеціального регістра функцій SPH. Ця опція буде перезаписана компілятором з правильним налаштуванням, якщо наявність/відсутність SPH може бути виведена з -mmcu=МКП."
-
-#, no-c-format
-#~ msgid "Generate eBPF for the given Linux kernel version."
-#~ msgstr "Створити eBPF для вказаної версії ядра Linux."
-
-#, no-c-format
-#~ msgid "Use NewABI-style %reloc() assembly operators."
-#~ msgstr "Використовуйте оператори збірки %reloc() у стилі NewABI."
-
-#, no-c-format
-#~ msgid "Explain what alignment considerations lead to the decision to make an insn short or long."
-#~ msgstr "Пояснити, які врахування вирівнювання призводять до рішення зробити інструкцію короткою або довгою."
-
-#, no-c-format
-#~ msgid "Enable bbit peephole2."
-#~ msgstr "Увімкнути bbit peephole2."
-
-#~ msgid "invalid use of %<...%> with builtin function"
-#~ msgstr "неприпустиме використання %<...%> з вбудованою функцією"
-
-#~ msgid "type conversion result count mismatch"
-#~ msgstr "невідповідність кількості результатів при конвертації типу"
-
-#~ msgid "multiple-value argument in single-value context"
-#~ msgstr "аргумент з кількома значеннями в контексті з одним значенням"
-
-#~ msgid "invalid use of %<...%> with non-slice"
-#~ msgstr "неприпустиме використання %<...%> з не-зрізом"
-
-#~ msgid "invalid use of %<...%> calling non-variadic function"
-#~ msgstr "неприпустиме використання %<...%> при виклику неваріативної функції"
-
-#~ msgid "index must be integer"
-#~ msgstr "індекс повинен бути цілочисельним"
-
-#~ msgid "slice end must be integer"
-#~ msgstr "кінець зрізу повинен бути цілочисельним"
-
-#~ msgid "slice capacity must be integer"
-#~ msgstr "ємність зрізу повинна бути цілочисельним"
-
-#~ msgid "inverted slice range"
-#~ msgstr "обернений діапазон зрізу"
-
-#~ msgid "slice of unaddressable value"
-#~ msgstr "зріз незадовільного значення"
-
-#~ msgid "too many expressions for struct"
-#~ msgstr "занадто багато виразів для структури"
-
-#~ msgid "too few expressions for struct"
-#~ msgstr "замало виразів для структури"
-
-#, gcc-internal-format, gfc-internal-format
-#~ msgid "argument %i of variable length array %s is null but the corresponding bound argument %i value is %s"
-#~ msgstr "аргумент %i змінної довжини масиву %s є нульовим, але відповідне значення звʼязаного аргументу %i є %s"
-
-#, gcc-internal-format
-#~ msgid "argument %i to %<%T[static %E]%> is null where non-null expected"
-#~ msgstr "аргумент %i до %<%T[static %E]%> є нульовим, де очікується ненульове значення"
-
-#, gcc-internal-format
-#~ msgid "%qs RHS in assignment statement"
-#~ msgstr "%qs на правій стороні оператора присвоєння"
-
-#, gcc-internal-format
-#~ msgid "assuming signed overflow does not occur when simplifying %</%> or %<%%%> to %<>>%> or %<&%>"
-#~ msgstr "припускаючи, що підписаний переповнення не відбувається при спрощенні %</%> або %<%%%> до %<>>%> або %<&%>"
-
-#, gcc-internal-format
-#~ msgid "assuming signed overflow does not occur when simplifying %<min/max (X,Y)%> to %<X%> or %<Y%>"
-#~ msgstr "припускаючи, що підписаний переповнення не відбувається при спрощенні %<min/max (X,Y)%> до %<X%> або %<Y%>"
-
-#, gcc-internal-format
-#~ msgid "assuming signed overflow does not occur when simplifying %<abs (X)%> to %<X%> or %<-X%>"
-#~ msgstr "припускаючи, що підписаний переповнення не відбувається при спрощенні %<abs (X)%> до %<X%> або %<-X%>"
-
-#, gcc-internal-format
-#~ msgid "%qE attribute ignored due to conflict with attribute %qs"
-#~ msgstr "Атрибут %qE ігнорується через конфлікт з атрибутом %qs"
-
-#, gcc-internal-format
-#~ msgid "%qE attribute ignored due to conflict with %qs attribute"
-#~ msgstr "Атрибут %qE ігнорується через конфлікт з атрибутом %qs"
-
-#, gcc-internal-format
-#~ msgid "converting a packed %qT pointer (alignment %d) to a %qT pointer (alignment %d) may result in an unaligned pointer value"
-#~ msgstr "перетворення упакованого вказівника %qT (вирівнювання %d) на вказівник %qT (вирівнювання %d) може призвести до невирівняного значення вказівника"
-
-#, gcc-internal-format
-#~ msgid "%<-march=%s%>: unsupported ISA subset %<%c%>"
-#~ msgstr "%<-march=%s%>: непідтримуваний піднабір ISA %<%c%>"
-
-#, gcc-internal-format
-#~ msgid "%<-march=%s%>: ISA string is not in canonical order. %<%c%>"
-#~ msgstr "%<-march=%s%>: рядок ISA не в канонічному порядку. %<%c%>"
-
-#, gcc-internal-format
-#~ msgid "%<-march=%s%>: unexpected ISA string at end: %qs"
-#~ msgstr "%<-march=%s%>: неочікуваний рядок ISA в кінці: %qs"
-
-#, gcc-internal-format
-#~ msgid "missing argument to %<target(\"branch-protection=\")%> pragma or attribute"
-#~ msgstr "відсутній аргумент в прагмі або атрибуті %<target(\"branch-protection=\")%>"
-
-#, gcc-internal-format
-#~ msgid "invalid protection type %qs in %<target(\"branch-protection=\")%> pragma or attribute"
-#~ msgstr "неприпустимий тип захисту %qs в прагмі або атрибуті %<target(\"branch-protection=\")%>"
-
-#, gcc-internal-format
-#~ msgid "GCC does not currently support mixed size types for %<simd%> functions"
-#~ msgstr "GCC наразі не підтримує типи змішаного розміру для функцій %<simd%>"
-
-#, gcc-internal-format
-#~ msgid "unsupported return type %qT for %<simd%> functions"
-#~ msgstr "непідтримуваний тип повернення %qT для функцій %<simd%>"
-
-#, gcc-internal-format
-#~ msgid "unexpected %<%s%> after %<%s%>"
-#~ msgstr "неочікуване %<%s%> після %<%s%>"
-
-#, gcc-internal-format
-#~ msgid "invalid argument %<%s%> for %<-mbranch-protection=%>"
-#~ msgstr "некоректний аргумент %<%s%> %<-mbranch-protection=%>"
-
-#, gcc-internal-format
-#~ msgid "missing argument for %<-mbranch-protection=%>"
-#~ msgstr "відсутній аргумент для %<-mbranch-protection=%>"
-
-#, gcc-internal-format
-#~ msgid "invalid key type for %<-mbranch-protection=%>"
-#~ msgstr "недійсний тип ключа для %<-mbranch-protection=%>"
-
-#, gcc-internal-format
-#~ msgid "IO definition for %q+D needs an address"
-#~ msgstr "Визначення IO для %q+D потребує адресу"
-
-#, gcc-internal-format
-#~ msgid "unsupported variable field offset"
-#~ msgstr "непідтримуваний зміщення змінної поля"
-
-#, gcc-internal-format
-#~ msgid "unsupported variable size field access"
-#~ msgstr "непідтримуваний доступ до поля змінної розміру"
-
-#, gcc-internal-format
-#~ msgid "unsupported field expression"
-#~ msgstr "непідтримуваний вираз поля"
-
-#, gcc-internal-format
-#~ msgid "field size too large"
-#~ msgstr "розмір поля занадто великий"
-
-#, gcc-internal-format
-#~ msgid "invalid second argument to built-in function"
-#~ msgstr "недійсний другий аргумент вбудованої функції"
-
-#, gcc-internal-format
-#~ msgid "argument is not a field access"
-#~ msgstr "аргумент не є доступом до поля"
-
-#, gcc-internal-format
-#~ msgid "XNACK support"
-#~ msgstr "підтримка XNACK"
-
-#, gcc-internal-format
-#~ msgid "either -fopenacc or -fopenmp must be set"
-#~ msgstr "необхідно встановити або -fopenacc, або -fopenmp"
-
-#, gcc-internal-format
-#~ msgid "code model %qs needs %s"
-#~ msgstr "модель коду %qs потребує %s"
-
-#, gcc-internal-format
-#~ msgid "%qE attribute requires %s"
-#~ msgstr "атрибут %qE вимагає %s"
-
-#, gcc-internal-format
-#~ msgid "%<#pragma riscv intrinsic%> option %qs needs 'V' extension enabled"
-#~ msgstr "опція %qs для %<#pragma riscv intrinsic%> потребує включеної розширення 'V'"
-
-#, gcc-internal-format
-#~ msgid "expected %<#pragma acc%> clause"
-#~ msgstr "очікується замикання %<#pragma acc%>"
-
-#, gcc-internal-format
-#~ msgid "expected %<#pragma omp%> clause"
-#~ msgstr "очікується замикання %<#pragma omp%>"
-
-#, gcc-internal-format
-#~ msgid "collapsed loops not perfectly nested"
-#~ msgstr "згорнуті цикли не є добре вкладеними"
-
-#, gcc-internal-format
-#~ msgid "expected %<construct%>, %<device%>, %<implementation%> or %<user%>"
-#~ msgstr "очікується %<construct%>, %<device%>, %<implementation%> або %<user%>"
-
-#, gcc-internal-format
-#~ msgid "expected %<seq_cst%>, %<relaxed%> or %<acq_rel%>"
-#~ msgstr "очікувався %<seq_cst%>, %<relaxed%> або %<acq_rel%>"
-
-#, gcc-internal-format
-#~ msgid "pointer type mismatch between %qT and %qT of %qD and %qD in conditional expression"
-#~ msgstr "несумісні типи вказівників %qT та %qT з %qD та %qD в умовному виразі"
-
-#, gcc-internal-format
-#~ msgid "excess elements in %<char%> array initializer"
-#~ msgstr "зайві елементи в ініціалізаторі масиву %<char%>"
-
-#, gcc-internal-format
-#~ msgid "cannot dereference %qE in %qs clause"
-#~ msgstr "не можна розіменувати %qE в замиканні %qs"
-
-#, gcc-internal-format
-#~ msgid "change of the active member of a union from %qD to %qD"
-#~ msgstr "зміна активного члена обʼєднання з %qD на %qD"
-
-#, gcc-internal-format
-#~ msgid "previous declaration %q#D here"
-#~ msgstr "попередня декларація %q#D тут"
-
-#, gcc-internal-format
-#~ msgid "deduction guide %q+D redeclared"
-#~ msgstr "посібник з виведення %q+D повторно оголошено"
-
-#, gcc-internal-format
-#~ msgid "  enters scope of %q#D, which has non-trivial destructor"
-#~ msgstr "  входить в область видимості %q#D, яка має нелінійний деструктор"
-
-#, gcc-internal-format
-#~ msgid "  enters scope of %q#D which has non-trivial destructor"
-#~ msgstr "  входить у область видимості %q#D, яка має незвичайний деструктор"
-
-#, gcc-internal-format
-#~ msgid "cannot declare %qD in a different module"
-#~ msgstr "не можна оголосити %qD в іншому модулі"
-
-#, gcc-internal-format
-#~ msgid "cannot define %qD in different module"
-#~ msgstr "не можна визначити %qD в іншому модулі"
-
-#, gcc-internal-format
-#~ msgid "lambda templates are only available with %<-std=c++14%> or %<-std=gnu++14%>"
-#~ msgstr "шаблони лямбди доступні лише з %<-std=c++14%> або %<-std=gnu++14%>"
-
-#, gcc-internal-format
-#~ msgid "unknown OpenMP directive name in %<omp::directive%> attribute argument"
-#~ msgstr "невідома назва директиви OpenMP в аргументі атрибуту %<omp::directive%>"
-
-#, gcc-internal-format
-#~ msgid "not enough for loops to collapse"
-#~ msgstr "недостатньо циклів для згортання"
-
-#, gcc-internal-format
-#~ msgid "%<#pragma GCC unroll%> must be inside a function"
-#~ msgstr "%<#pragma GCC unroll%> повинен бути всередині функції"
-
-#, gcc-internal-format
-#~ msgid "taking address of temporary array"
-#~ msgstr "взяття адреси тимчасового масиву"
-
-#, gcc-internal-format
-#~ msgid "closing json file %s: %m"
-#~ msgstr "закриття json-файлу %s: %m"
-
-#, gcc-internal-format
-#~ msgid "closing mixin file %s: %m"
-#~ msgstr "закриття файлу mixin %s: %m"
-
-#, gcc-internal-format
-#~ msgid "opening mixin file %s: %m"
-#~ msgstr "відкриття файлу mixin %s: %m"
-
-#, gcc-internal-format
-#~ msgid "TODO: Vector sections in data statements"
-#~ msgstr "TODO: Векторні секції в операторах DATA"
-
-#, gcc-internal-format, gfc-internal-format
-#~ msgid "property must be constant integer expression or string literal at %C"
-#~ msgstr "властивість повинна бути константним цілочисельним виразом або літералом рядка у %C"
-
-#, gcc-internal-format
-#~ msgid "expected %<construct%>, %<device%>, %<implementation%> or %<user%> at %C"
-#~ msgstr "очікується %<construct%>, %<device%>, %<implementation%> або %<user%> у %C"
-
-#, gcc-internal-format, gfc-internal-format
-#~ msgid "collapsed %s loops not perfectly nested at %L"
-#~ msgstr "Злиті %s петлі не є ідеально вкладеними на %L"
-
-#, gcc-internal-format, gfc-internal-format
-#~ msgid "OpenMP directives other than SIMD or DECLARE TARGET at %C may not appear in PURE procedures"
-#~ msgstr "Директиви OpenMP, крім SIMD або DECLARE TARGET, не можуть зʼявлятися в PURE процедурах у %C"
-
-#, gcc-internal-format
-#~ msgid "The object %qs at %L has a deferred LEN parameter %qs and is neither allocatable nor a pointer"
-#~ msgstr "Обʼєкт %qs у %L має відкладений параметр LEN %qs і не є алокованим або вказівником"
-
-#, gcc-internal-format
-#~ msgid "TODO"
-#~ msgstr "ВИКОНАТИ"
+msgstr "Ти намагаєшся зламати %s? Як ти смієш?"

commit 1e79541bed12a11318dbc37f09de95c99bc8ad70
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Sep 7 00:21:14 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index a2aca132dd9..346d3ce6907 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240906
+20240907
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 01dce13aa15..2b19ee75537 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2024-09-06  Joseph Myers  <josmyers@redhat.com>
+
+	* uk.po: Update.
+
 2024-08-28  Joseph Myers  <josmyers@redhat.com>
 
 	* ka.po: New file.

commit 0c80216b7bb0938bff7db230cbefa5bc3e8b3034
Author: Patrick Palka <ppalka@redhat.com>
Date:   Sat Sep 7 14:10:09 2024 -0400

    c++: template depth of lambda in default targ [PR116567]
    
    For GCC 14, let's narrowly fix this bug by just pruning the result of
    add_extra_args after the fact to get rid of any unwanted outer levels.
    
            PR c++/116567
    
    gcc/cp/ChangeLog:
    
            * pt.cc (tsubst_lambda_expr): For a deferred-substitution lambda,
            trim the augmented template arguments to match the template depth
            of the lambda.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/lambda-targ7.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 8e6a7d1a64a..7135105fc37 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -19679,6 +19679,18 @@ tsubst_lambda_expr (tree t, tree args, tsubst_flags_t complain, tree in_decl)
       LAMBDA_EXPR_EXTRA_ARGS (t) = build_extra_args (t, args, complain);
       return t;
     }
+  if (LAMBDA_EXPR_EXTRA_ARGS (t))
+    {
+      /* If we deferred substitution into this lambda, then its original
+	 context (e.g. default template argument context) might be unrelated
+	 to the current context it's embedded in.  After add_extra_args though,
+	 the innermost levels of 'args' will correspond to the lambda context,
+	 so get rid of all unrelated levels.  */
+      tree ctx_parms = DECL_TEMPLATE_PARMS (DECL_TI_TEMPLATE (oldfn));
+      if (generic_lambda_fn_p (oldfn))
+	ctx_parms = TREE_CHAIN (ctx_parms);
+      args = get_innermost_template_args (args, TMPL_PARMS_DEPTH (ctx_parms));
+    }
 
   tree r = build_lambda_expr ();
 
diff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-targ7.C b/gcc/testsuite/g++.dg/cpp2a/lambda-targ7.C
new file mode 100644
index 00000000000..97b42d6ed0c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/lambda-targ7.C
@@ -0,0 +1,42 @@
+// PR c++/116567
+// { dg-do compile { target c++20 } }
+
+struct X { int n; };
+
+template<auto N, auto F = []{ return N; }>
+auto v1 = F;
+
+template<auto N, auto F = [](auto y){ return decltype(N){N.n + y}; }>
+auto v1g = F;
+
+template<class T>
+struct A {
+  template<auto N, auto F = []{ return N; }>
+  static inline auto v2 = F;
+
+  template<auto N, auto F = [](auto y){ return decltype(N){N.n + y}; }>
+  static inline auto v2g = F;
+
+  template<class U>
+  struct B {
+    template<auto N, auto F = []{ return N; }>
+    static inline auto v3 = F;
+
+    template<auto N, auto F = [](auto y){ return decltype(N){N.n + y}; }>
+    static inline auto v3g = F;
+
+    template<class V>
+    static void f() {
+      static_assert(v1<X{1}>().n == 1);
+      static_assert(v1g<X{1}>(42).n == 1 + 42);
+      static_assert(v2<X{2}>().n == 2);
+      static_assert(v2g<X{2}>(42).n == 2 + 42);
+      static_assert(v3<X{3}>().n == 3);
+      static_assert(v3g<X{3}>(42).n == 3 + 42);
+    }
+  };
+};
+
+int main() {
+  A<int>::B<int>::f<int>();
+}

commit 7e0649ac0fab8e0673e3eba8d357f1a21463ae0f
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Sep 8 00:30:07 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 346d3ce6907..e8f2bd3ba1b 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240907
+20240908
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 4fce475fab5..5eb401ffb82 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,10 @@
+2024-09-07  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116567
+	* pt.cc (tsubst_lambda_expr): For a deferred-substitution lambda,
+	trim the augmented template arguments to match the template depth
+	of the lambda.
+
 2024-09-05  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 736537b0cf0..2c0a0302e93 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2024-09-07  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116567
+	* g++.dg/cpp2a/lambda-targ7.C: New test.
+
 2024-09-05  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:

commit 140aab25a4865433d987d73c57f4ddf11fdac1e2
Author: Patrick Palka <ppalka@redhat.com>
Date:   Sat Aug 3 09:05:05 2024 -0400

    libstdc++: use concrete return type for std::forward_like
    
    Inspired by https://github.com/llvm/llvm-project/issues/101614 this
    inverts the relationship between forward_like and __like_t so that
    forward_like is defined in terms of __like_t and with a concrete return
    type.  __like_t in turn is defined via partial specializations that
    pattern match on the const- and reference-ness of T.
    
    This turns out to be more SFINAE friendly and significantly cheaper
    to compile than the previous implementation.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/move.h (__like_impl): New metafunction.
            (__like_t): Redefine in terms of __like_impl.
            (forward_like): Redefine in terms of __like_t.
            * testsuite/20_util/forward_like/2_neg.cc: Don't expect
            error outside the immediate context anymore.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 8256d5c0097dff00f9bdf9ee0c9d53bd7cec2802)

diff --git a/libstdc++-v3/include/bits/move.h b/libstdc++-v3/include/bits/move.h
index bb200c95964..8397a01b632 100644
--- a/libstdc++-v3/include/bits/move.h
+++ b/libstdc++-v3/include/bits/move.h
@@ -88,31 +88,32 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 #if __glibcxx_forward_like // C++ >= 23
   template<typename _Tp, typename _Up>
-  [[nodiscard]]
-  constexpr decltype(auto)
-  forward_like(_Up&& __x) noexcept
-  {
-    constexpr bool __as_rval = is_rvalue_reference_v<_Tp&&>;
-
-    if constexpr (is_const_v<remove_reference_t<_Tp>>)
-      {
-	using _Up2 = remove_reference_t<_Up>;
-	if constexpr (__as_rval)
-	  return static_cast<const _Up2&&>(__x);
-	else
-	  return static_cast<const _Up2&>(__x);
-      }
-    else
-      {
-	if constexpr (__as_rval)
-	  return static_cast<remove_reference_t<_Up>&&>(__x);
-	else
-	  return static_cast<_Up&>(__x);
-      }
-  }
+  struct __like_impl; // _Tp must be a reference and _Up an lvalue reference
+
+  template<typename _Tp, typename _Up>
+  struct __like_impl<_Tp&, _Up&>
+  { using type = _Up&; };
+
+  template<typename _Tp, typename _Up>
+  struct __like_impl<const _Tp&, _Up&>
+  { using type = const _Up&; };
+
+  template<typename _Tp, typename _Up>
+  struct __like_impl<_Tp&&, _Up&>
+  { using type = _Up&&; };
+
+  template<typename _Tp, typename _Up>
+  struct __like_impl<const _Tp&&, _Up&>
+  { using type = const _Up&&; };
 
   template<typename _Tp, typename _Up>
-    using __like_t = decltype(std::forward_like<_Tp>(std::declval<_Up>()));
+    using __like_t = typename __like_impl<_Tp&&, _Up&>::type;
+
+  template<typename _Tp, typename _Up>
+  [[nodiscard]]
+  constexpr __like_t<_Tp, _Up>
+  forward_like(_Up&& __x) noexcept
+  { return static_cast<__like_t<_Tp, _Up>>(__x); }
 #endif
 
   /**
diff --git a/libstdc++-v3/testsuite/20_util/forward_like/2_neg.cc b/libstdc++-v3/testsuite/20_util/forward_like/2_neg.cc
index ff835af1915..5dafa419a7e 100644
--- a/libstdc++-v3/testsuite/20_util/forward_like/2_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/forward_like/2_neg.cc
@@ -2,9 +2,7 @@
 
 #include <utility>
 
-auto x1 = std::forward_like<void>(1); // { dg-error "here" }
+auto x1 = std::forward_like<void>(1); // { dg-error "no match" }
 // { dg-error "forming reference to void" "" { target *-*-* } 0 }
-auto x2 = std::forward_like<void()const>(1); // { dg-error "here" }
+auto x2 = std::forward_like<void()const>(1); // { dg-error "no match" }
 // { dg-error "forming reference to qualified function" "" { target *-*-* } 0 }
-
-// { dg-prune-output "inconsistent deduction for auto return type" } // PR111484

commit b5ed381d05e0ed9edf2f320b71f8775ea96a4866
Author: Patrick Palka <ppalka@redhat.com>
Date:   Fri Aug 9 21:15:25 2024 -0400

    c++: inherited CTAD fixes [PR116276]
    
    This implements the overlooked inherited vs non-inherited guide
    tiebreaker from P2582R1.  This requires tracking inherited-ness of a
    guide, for which it seems natural to reuse the lang_decl_fn::context
    field which for a constructor tracks its inherited-ness.
    
    This patch also works around CLASSTYPE_CONSTRUCTORS not reliably
    returning all inherited constructors (due to some using-decl handling
    quirks in in push_class_level_binding) by iterating over TYPE_FIELDS
    instead.
    
    This patch also makes us recognize another written form of inherited
    constructor, 'using Base<T>::Base::Base' whose USING_DECL_SCOPE is a
    TYPENAME_TYPE.
    
            PR c++/116276
    
    gcc/cp/ChangeLog:
    
            * call.cc (joust): Implement P2582R1 inherited vs non-inherited
            guide tiebreaker.
            * cp-tree.h (lang_decl_fn::context): Document usage in
            deduction_guide_p FUNCTION_DECLs.
            (inherited_guide_p): Declare.
            * pt.cc (inherited_guide_p): Define.
            (set_inherited_guide_context): Define.
            (alias_ctad_tweaks): Use set_inherited_guide_context.
            (inherited_ctad_tweaks): Recognize some inherited constructors
            whose scope is a TYPENAME_TYPE.
            (ctor_deduction_guides_for): For C++23 inherited CTAD, iterate
            over TYPE_FIELDS instead of CLASSTYPE_CONSTRUCTORS to recognize
            all inherited constructors.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp23/class-deduction-inherited4.C: Remove an xfail.
            * g++.dg/cpp23/class-deduction-inherited5.C: New test.
            * g++.dg/cpp23/class-deduction-inherited6.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 8cc67b520968ca9a13fd96896522aa66e39a99e2)

diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc
index 793b9834712..0f4eeeb5395 100644
--- a/gcc/cp/call.cc
+++ b/gcc/cp/call.cc
@@ -13226,10 +13226,35 @@ joust (struct z_candidate *cand1, struct z_candidate *cand2, bool warn,
   else if (cand2->rewritten ())
     return 1;
 
-  /* F1 is generated from a deduction-guide (13.3.1.8) and F2 is not */
   if (deduction_guide_p (cand1->fn))
     {
       gcc_assert (deduction_guide_p (cand2->fn));
+
+      /* F1 and F2 are generated from class template argument deduction for a
+	 class D, and F2 is generated from inheriting constructors from a base
+	 class of D while F1 is not, and for each explicit function argument,
+	 the corresponding parameters of F1 and F2 are either both ellipses or
+	 have the same type.  */
+      bool inherited1 = inherited_guide_p (cand1->fn);
+      bool inherited2 = inherited_guide_p (cand2->fn);
+      if (int diff = inherited2 - inherited1)
+	{
+	  for (i = 0; i < len; ++i)
+	    {
+	      conversion *t1 = cand1->convs[i + off1];
+	      conversion *t2 = cand2->convs[i + off2];
+	      /* ??? It seems the ellipses part of this tiebreaker isn't
+		 needed since a mismatch should have broken the tie earlier
+		 during ICS comparison.  */
+	      gcc_checking_assert (t1->ellipsis_p == t2->ellipsis_p);
+	      if (!same_type_p (t1->type, t2->type))
+		break;
+	    }
+	  if (i == len)
+	    return diff;
+	}
+
+      /* F1 is generated from a deduction-guide (13.3.1.8) and F2 is not */
       /* We distinguish between candidates from an explicit deduction guide and
 	 candidates built from a constructor based on DECL_ARTIFICIAL.  */
       int art1 = DECL_ARTIFICIAL (cand1->fn);
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 3f607313db6..ab2b0904ed6 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -2981,9 +2981,10 @@ struct GTY(()) lang_decl_fn {
      this pointer and result pointer adjusting thunks are
      chained here.  This pointer thunks to return pointer thunks
      will be chained on the return pointer thunk.
-     For a DECL_CONSTUCTOR_P FUNCTION_DECL, this is the base from
-     whence we inherit.  Otherwise, it is the class in which a
-     (namespace-scope) friend is defined (if any).   */
+     For a DECL_CONSTRUCTOR_P or deduction_guide_p FUNCTION_DECL,
+     this is the base from whence we inherit.
+     Otherwise, it is the class in which a (namespace-scope) friend
+     is defined (if any).  */
   tree context;
 
   union lang_decl_u5
@@ -7651,6 +7652,7 @@ extern bool deduction_guide_p			(const_tree);
 extern bool copy_guide_p			(const_tree);
 extern bool template_guide_p			(const_tree);
 extern bool builtin_guide_p			(const_tree);
+extern bool inherited_guide_p			(const_tree);
 extern void store_explicit_specifier		(tree, tree);
 extern tree lookup_explicit_specifier		(tree);
 extern tree lookup_imported_hidden_friend	(tree);
diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 7135105fc37..6695e4ff49f 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -29797,6 +29797,25 @@ builtin_guide_p (const_tree fn)
   return true;
 }
 
+/* True if FN is a C++23 inherited guide.  */
+
+bool
+inherited_guide_p (const_tree fn)
+{
+  gcc_assert (deduction_guide_p (fn));
+  return LANG_DECL_FN_CHECK (fn)->context != NULL_TREE;
+}
+
+/* Set the base class BASE from which the transformed guide FN
+   was inherited as part of C++23 inherited CTAD.  */
+
+static void
+set_inherited_guide_context (const_tree fn, tree base)
+{
+  gcc_assert (deduction_guide_p (fn));
+  LANG_DECL_FN_CHECK (fn)->context = base;
+}
+
 /* OLDDECL is a _DECL for a template parameter.  Return a similar parameter at
    LEVEL:INDEX, using tsubst_args and complain for substitution into non-type
    template parameter types.  Note that the handling of template template
@@ -30565,6 +30584,7 @@ alias_ctad_tweaks (tree tmpl, tree uguides)
 	  TREE_TYPE (fprime) = fntype;
 	  if (TREE_CODE (fprime) == TEMPLATE_DECL)
 	    TREE_TYPE (DECL_TEMPLATE_RESULT (fprime)) = fntype;
+	  set_inherited_guide_context (fprime, utype);
 	}
 
       aguides = lookup_add (fprime, aguides);
@@ -30596,11 +30616,14 @@ inherited_ctad_tweaks (tree tmpl, tree ctor, tsubst_flags_t complain)
      template specialization with the template argument list of A but with C as
      the template.  */
 
-  /* FIXME: Also recognize inherited constructors of the form 'using C::B::B',
-     which seem to be represented with TYPENAME_TYPE C::B as USING_DECL_SCOPE?
-     And recognize constructors inherited from a non-dependent base class, which
-     seem to be missing from the overload set entirely?  */
   tree scope = USING_DECL_SCOPE (ctor);
+  if (TREE_CODE (scope) == TYPENAME_TYPE
+      && (TYPE_IDENTIFIER (TYPE_CONTEXT (scope))
+	  == TYPENAME_TYPE_FULLNAME (scope)))
+    /* Recognize using B<T>::B::B as an inherited constructor.  */
+    /* FIXME: Also recognize using C::B::B?  We might have to call
+       resolve_typename_type for that.  */
+    scope = TYPE_CONTEXT (scope);
   if (!CLASS_TYPE_P (scope)
       || !CLASSTYPE_TEMPLATE_INFO (scope)
       || !PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (scope)))
@@ -30734,10 +30757,14 @@ ctor_deduction_guides_for (tree tmpl, tsubst_flags_t complain)
     }
 
   if (cxx_dialect >= cxx23)
-    for (tree ctor : ovl_range (CLASSTYPE_CONSTRUCTORS (type)))
-      if (TREE_CODE (ctor) == USING_DECL)
-	{
-	  tree uguides = inherited_ctad_tweaks (tmpl, ctor, complain);
+    /* FIXME: CLASSTYPE_CONSTRUCTORS doesn't contain inherited constructors if
+       e.g. the class also has a user-defined constructor.  So instead iterate
+       over TYPE_FIELDS manually to robustly find all relevant using-decls.  */
+    for (tree field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field))
+      if (TREE_CODE (field) == USING_DECL
+	  && DECL_NAME (field) == ctor_identifier)
+	{
+	  tree uguides = inherited_ctad_tweaks (tmpl, field, complain);
 	  if (uguides)
 	    cands = lookup_add (uguides, cands);
 	}
diff --git a/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited4.C b/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited4.C
index 5e3a7f42919..806f0167a4e 100644
--- a/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited4.C
+++ b/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited4.C
@@ -13,10 +13,10 @@ using ty1 = B<int>;
 
 template<class T=void>
 struct C : A<int> {
-  using A<int>::A; // FIXME: we don't notice this one either
+  using A<int>::A;
 };
 
-using ty2 = decltype(C(0)); // { dg-bogus "" "" { xfail *-*-* } }
+using ty2 = decltype(C(0));
 using ty2 = C<void>;
 
 template<class T>
diff --git a/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited5.C b/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited5.C
new file mode 100644
index 00000000000..d835acb0b79
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited5.C
@@ -0,0 +1,25 @@
+// PR c++/116276
+// { dg-do compile { target c++20 } }
+
+template<class T>
+struct Base1 { };
+
+template<class T>
+struct Base2 { };
+
+template<class T = int>
+struct Derived : public Base1<T>, Base2<T> {
+  using Base1<T>::Base1;
+  using Base2<T>::Base2;
+};
+
+Derived d;
+
+template<class T = int>
+struct Derived2 : public Base1<T>, Base2<T> {
+  using Base1<T>::Base1::Base1;
+  using Base2<T>::Base2::Base2;
+  Derived2();
+};
+
+Derived2 d2;
diff --git a/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited6.C b/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited6.C
new file mode 100644
index 00000000000..df8199cd3e4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited6.C
@@ -0,0 +1,46 @@
+// PR c++/116276
+// { dg-do compile { target c++23 } }
+
+template<class T>
+struct Base1 {
+  Base1();
+  Base1(T);
+};
+
+template<class T>
+struct Base2 {
+  Base2();
+  Base2(T*);
+};
+
+template<class T = int>
+struct Derived : public Base1<T>, Base2<T> {
+  using Base1<T>::Base1;
+  using Base2<T>::Base2;
+};
+
+using ty1 = decltype(Derived{});
+using ty1 = Derived<int>;
+
+using ty2 = decltype(Derived{true});
+using ty2 = Derived<bool>;
+
+using ty3 = decltype(Derived{(char*)nullptr});
+using ty3 = Derived<char>;
+
+template<class T = int>
+struct Derived2 : public Base1<T>, Base2<T> {
+  using Base1<T>::Base1;
+  using Base2<T>::Base2;
+  Derived2();
+  Derived2(T);
+};
+
+using ty4 = decltype(Derived2{});
+using ty4 = Derived2<int>;
+
+using ty5 = decltype(Derived2{true});
+using ty5 = Derived2<bool>;
+
+using ty6 = decltype(Derived2{(char*)nullptr});
+using ty6 = Derived2<char>;

commit 149d87fbe661da29d8a0aa671b42bd532206a8b8
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Aug 15 10:23:54 2024 -0400

    c++: c->B::m access resolved through current inst [PR116320]
    
    Here when checking the access of (the injected-class-name) B in c->B::m
    at parse time, we notice its context B (now the type) is a base of the
    object type C<T>, so we proceed to use C<T> as the effective qualifying
    type.  But this C<T> is the dependent specialization not the primary
    template type, so it has empty TYPE_BINFO, which leads to a segfault later
    from perform_or_defer_access_check.
    
    The reason the DERIVED_FROM_P (B, C<T>) test guarding this code path works
    despite C<T> having empty TYPE_BINFO is because of its currently_open_class
    logic (added in r9-713-gd9338471b91bbe) which replaces a dependent
    specialization with the primary template type if we're inside it.  So the
    safest fix seems to be to call currently_open_class in the caller as well.
    
            PR c++/116320
    
    gcc/cp/ChangeLog:
    
            * semantics.cc (check_accessibility_of_qualified_id): Try
            currently_open_class when using the object type as the
            effective qualifying type.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/template/access42.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 484f139ccd3b631a777802e810a632678b42ffab)

diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc
index b5569066708..ceeac82fa08 100644
--- a/gcc/cp/semantics.cc
+++ b/gcc/cp/semantics.cc
@@ -2497,9 +2497,14 @@ check_accessibility_of_qualified_id (tree decl,
 	 OBJECT_TYPE.  */
       && CLASS_TYPE_P (object_type)
       && DERIVED_FROM_P (scope, object_type))
-    /* If we are processing a `->' or `.' expression, use the type of the
-       left-hand side.  */
-    qualifying_type = object_type;
+    {
+      /* If we are processing a `->' or `.' expression, use the type of the
+	 left-hand side.  */
+      if (tree open = currently_open_class (object_type))
+	qualifying_type = open;
+      else
+	qualifying_type = object_type;
+    }
   else if (nested_name_specifier)
     {
       /* If the reference is to a non-static member of the
diff --git a/gcc/testsuite/g++.dg/template/access42.C b/gcc/testsuite/g++.dg/template/access42.C
new file mode 100644
index 00000000000..f1dcbce80c2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/access42.C
@@ -0,0 +1,17 @@
+// PR c++/116320
+// { dg-do compile { target c++11 } }
+
+template<class T> struct C;
+template<class T> using C_ptr = C<T>*;
+
+struct B { int m; using B_typedef = B; };
+
+template<class T>
+struct C : B {
+  void f(C_ptr<T> c) {
+    c->B::m;
+    c->B_typedef::m;
+  }
+};
+
+template struct C<int>;

commit 936694079375daf027a8417ea577da676b7a7462
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Sep 9 00:21:22 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e8f2bd3ba1b..94bd4791818 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240908
+20240909
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 5eb401ffb82..c54bdfddd51 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,33 @@
+2024-09-08  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-08-15  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116320
+	* semantics.cc (check_accessibility_of_qualified_id): Try
+	currently_open_class when using the object type as the
+	effective qualifying type.
+
+2024-09-08  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-08-10  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116276
+	* call.cc (joust): Implement P2582R1 inherited vs non-inherited
+	guide tiebreaker.
+	* cp-tree.h (lang_decl_fn::context): Document usage in
+	deduction_guide_p FUNCTION_DECLs.
+	(inherited_guide_p): Declare.
+	* pt.cc (inherited_guide_p): Define.
+	(set_inherited_guide_context): Define.
+	(alias_ctad_tweaks): Use set_inherited_guide_context.
+	(inherited_ctad_tweaks): Recognize some inherited constructors
+	whose scope is a TYPENAME_TYPE.
+	(ctor_deduction_guides_for): For C++23 inherited CTAD, iterate
+	over TYPE_FIELDS instead of CLASSTYPE_CONSTRUCTORS to recognize
+	all inherited constructors.
+
 2024-09-07  Patrick Palka  <ppalka@redhat.com>
 
 	PR c++/116567
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2c0a0302e93..a2096eaa0c9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,21 @@
+2024-09-08  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-08-15  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116320
+	* g++.dg/template/access42.C: New test.
+
+2024-09-08  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-08-10  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116276
+	* g++.dg/cpp23/class-deduction-inherited4.C: Remove an xfail.
+	* g++.dg/cpp23/class-deduction-inherited5.C: New test.
+	* g++.dg/cpp23/class-deduction-inherited6.C: New test.
+
 2024-09-07  Patrick Palka  <ppalka@redhat.com>
 
 	PR c++/116567
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index fa511f0dc09..eb925c39b0f 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,14 @@
+2024-09-08  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-08-03  Patrick Palka  <ppalka@redhat.com>
+
+	* include/bits/move.h (__like_impl): New metafunction.
+	(__like_t): Redefine in terms of __like_impl.
+	(forward_like): Redefine in terms of __like_t.
+	* testsuite/20_util/forward_like/2_neg.cc: Don't expect
+	error outside the immediate context anymore.
+
 2024-09-04  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit 3951efed1cce970a5c61eacbad7e5f5314a9fc17
Author: Haochen Jiang <haochen.jiang@intel.com>
Date:   Fri Sep 6 11:19:26 2024 +0800

    doc: Enhance Intel CPU documentation
    
    This patch will add those recent aliased CPU names into documentation
    for clearness.
    
    gcc/ChangeLog:
    
            PR target/116617
            * doc/invoke.texi: Add meteorlake, raptorlake and lunarlake.

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 80476bcf37a..176851baf61 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -34484,12 +34484,14 @@ UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512-FP16 and AVX512BF16
 instruction set support.
 
 @item alderlake
-Intel Alderlake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
-SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES,
-XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B,
-CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU,
-VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL and AVX-VNNI instruction set
-support.
+@itemx raptorlake
+@itemx meteorlake
+Intel Alderlake/Raptorlake/Meteorlake CPU with 64-bit extensions, MOVBE, MMX,
+SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND,
+XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB,
+MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
+LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL and
+AVX-VNNI instruction set support.
 
 @item rocketlake
 Intel Rocketlake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3
@@ -34531,11 +34533,12 @@ UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT and CMPCCXADD instruction set
 support.
 
 @item arrowlake-s
-Intel Arrow Lake S CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
-SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
-XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
-MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
-PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
+@itemx lunarlake
+Intel Arrow Lake S/Lunarlake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2,
+SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE,
+XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB,
+MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
+LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
 UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512,
 SM3 and SM4 instruction set support.
 

commit 8a0f0fca63d18cd4a1421181f29b8659d97c6bc3
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Sep 10 00:33:01 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4773a468197..a8749a23960 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2024-09-09  Haochen Jiang  <haochen.jiang@intel.com>
+
+	PR target/116617
+	* doc/invoke.texi: Add meteorlake, raptorlake and lunarlake.
+
 2024-09-05  H.J. Lu  <hjl.tools@gmail.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 94bd4791818..83b31cda118 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240909
+20240910

commit ab884fffe3fc82a710bea66ad651720d71c938b8
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Apr 30 09:52:13 2024 +0100

    libstdc++: Fix std::chrono::tzdb to work with vanguard format
    
    I found some issues in the std::chrono::tzdb parser by testing the
    tzdata "vanguard" format, which uses new features that aren't enabled in
    the "main" and "rearguard" data formats.
    
    Since 2024a the keyword "minimum" is no longer valid for the FROM and TO
    fields in a Rule line, which means that "m" is now a valid abbreviation
    for "maximum". Previously we expected either "mi" or "ma". For backwards
    compatibility, a FROM field beginning with "mi" is still supported and
    is treated as 1900. The "maximum" keyword is only allowed in TO now,
    because it makes no sense in FROM. To support these changes the
    minmax_year and minmax_year2 classes for parsing FROM and TO are
    replaced with a single years_from_to class that reads both fields.
    
    The vanguard format makes use of %z in Zone FORMAT fields, which caused
    an exception to be thrown from ZoneInfo::set_abbrev because no % or /
    characters were expected when a Zone doesn't use a named Rule. The
    ZoneInfo::to(sys_info&) function now uses format_abbrev_str to replace
    any %z with the current offset. Although format_abbrev_str also checks
    for %s and STD/DST formats, those only make sense when a named Rule is
    in effect, so won't occur when ZoneInfo::to(sys_info&) is used.
    
    Since making this change on trunk, the tzdata-2024b release started
    using %z in the main format, not just vanguard. This makes a backport to
    release branches necessary (see PR 116657).
    
    This change also implements a feature that has always been missing from
    time_zone::_M_get_sys_info: finding the Rule that is active before the
    specified time point, so that we can correctly handle %s in the FORMAT
    for the first new sys_info that gets created. This requires implementing
    a poorly documented feature of zic, to get the LETTERS field from a
    later transition, as described at
    https://mm.icann.org/pipermail/tz/2024-April/058891.html
    In order for this to work we need to be able to distinguish an empty
    letters field (as used by CE%sT where the variable part is either empty
    or "S") from "the letters field is not known for this transition". The
    tzdata file uses "-" for an empty letters field, which libstdc++ was
    previously replacing with "" when the Rule was parsed. Instead, we now
    preserve the "-" in the Rule object, so that "" can be used for the case
    where we don't know the letters (and so need to decide it).
    
    libstdc++-v3/ChangeLog:
    
            * src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove.
            (years_from_to): New class replacing minmax_year and
            minmax_year2.
            (format_abbrev_str, select_std_or_dst_abbrev): Move earlier in
            the file. Handle "-" for letters.
            (ZoneInfo::to): Use format_abbrev_str to expand %z.
            (ZoneInfo::set_abbrev): Remove exception. Change parameter from
            reference to value.
            (operator>>(istream&, Rule&)): Do not clear letters when it
            contains "-".
            (time_zone::_M_get_sys_info): Add missing logic to find the Rule
            in effect before the time point.
            * testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using
            "GMT" as the Zone name, not as a Link to "Etc/GMT".
            * testsuite/std/time/time_zone/sys_info_abbrev.cc: New test.
    
    (cherry picked from commit 0ca8d56f2085715f27ee536c6c344bc47af49cdd)

diff --git a/libstdc++-v3/src/c++20/tzdb.cc b/libstdc++-v3/src/c++20/tzdb.cc
index c7c7cc9deee..7e8cce7ce8c 100644
--- a/libstdc++-v3/src/c++20/tzdb.cc
+++ b/libstdc++-v3/src/c++20/tzdb.cc
@@ -342,51 +342,103 @@ namespace std::chrono
       friend istream& operator>>(istream&, on_day&);
     };
 
-    // Wrapper for chrono::year that reads a year, or one of the keywords
-    // "minimum" or "maximum", or an unambiguous prefix of a keyword.
-    struct minmax_year
+    // Wrapper for two chrono::year values, which reads the FROM and TO
+    // fields of a Rule line. The FROM field is a year and TO is a year or
+    // one of the keywords "maximum" or "only" (or an abbreviation of those).
+    // For backwards compatibility, the keyword "minimum" is recognized
+    // for FROM and interpreted as 1900.
+    struct years_from_to
     {
-      year& y;
+      year& from;
+      year& to;
 
-      friend istream& operator>>(istream& in, minmax_year&& y)
+      friend istream& operator>>(istream& in, years_from_to&& yy)
       {
-	if (ws(in).peek() == 'm') // keywords "minimum" or "maximum"
+	string s;
+	auto c = ws(in).peek();
+	if (c == 'm') [[unlikely]] // keyword "minimum"
 	  {
-	    string s;
-	    in >> s; // extract the rest of the word, but only look at s[1]
-	    if (s[1] == 'a')
-	      y.y = year::max();
-	    else if (s[1] == 'i')
-	      y.y = year::min();
-	    else
-	      in.setstate(ios::failbit);
+	    in >> s; // extract the rest of the word
+	    yy.from = year(1900);
+	  }
+	else if (int num = 0; in >> num) [[likely]]
+	  yy.from = year{num};
+
+	c = ws(in).peek();
+	if (c == 'm') // keyword "maximum"
+	  {
+	    in >> s; // extract the rest of the word
+	    yy.to = year::max();
+	  }
+	else if (c == 'o') // keyword "only"
+	  {
+	    in >> s; // extract the rest of the word
+	    yy.to = yy.from;
 	  }
 	else if (int num = 0; in >> num)
-	  y.y = year{num};
+	  yy.to = year{num};
+
 	return in;
       }
     };
 
-    // As above for minmax_year, but also supports the keyword "only",
-    // meaning that the TO year is the same as the FROM year.
-    struct minmax_year2
+    bool
+    select_std_or_dst_abbrev(string& abbrev, minutes save)
     {
-      minmax_year to;
-      year from;
+      if (size_t pos = abbrev.find('/'); pos != string::npos)
+	{
+	  // Select one of "STD/DST" for standard or daylight.
+	  if (save == 0min)
+	    abbrev.erase(pos);
+	  else
+	    abbrev.erase(0, pos + 1);
+	  return true;
+	}
+      return false;
+    }
 
-      friend istream& operator>>(istream& in, minmax_year2&& y)
-      {
-	if (ws(in).peek() == 'o') // keyword "only"
-	  {
-	    string s;
-	    in >> s; // extract the whole keyword
-	    y.to.y = y.from;
-	  }
-	else
-	  in >> std::move(y.to);
-	return in;
-      }
-    };
+    // Set the sys_info::abbrev string by expanding any placeholders.
+    void
+    format_abbrev_str(sys_info& info, string_view letters = {})
+    {
+      if (size_t pos = info.abbrev.find('%'); pos != string::npos)
+	{
+	  if (info.abbrev[pos + 1] == 's')
+	    {
+	      // Expand "%s" to the variable part, given by Rule::letters.
+	      if (letters == "-")
+		info.abbrev.erase(pos, 2);
+	      else
+		info.abbrev.replace(pos, 2, letters);
+	    }
+	  else if (info.abbrev[pos + 1] == 'z')
+	    {
+	      // Expand "%z" to the UT offset as +/-hh, +/-hhmm, or +/-hhmmss.
+	      hh_mm_ss<seconds> t(info.offset);
+	      string z(1, "+-"[t.is_negative()]);
+	      long val = t.hours().count();
+	      int digits = 2;
+	      if (int m = t.minutes().count())
+		{
+		  digits = 4;
+		  val *= 100;
+		  val += m;
+		  if (int s = t.seconds().count())
+		    {
+		      digits = 6;
+		      val *= 100;
+		      val += s;
+		    }
+		}
+	      auto sval = std::to_string(val);
+	      z += string(digits - sval.size(), '0');
+	      z += sval;
+	      info.abbrev.replace(pos, 2, z);
+	    }
+	}
+      else
+	select_std_or_dst_abbrev(info.abbrev, info.save);
+    }
 
     // A time zone information record.
     // Zone  NAME        STDOFF  RULES   FORMAT  [UNTIL]
@@ -462,6 +514,7 @@ namespace std::chrono
 	info.offset = offset();
 	info.save = minutes(m_save);
 	info.abbrev = format();
+	format_abbrev_str(info); // expand %z
 	return true;
       }
 
@@ -469,12 +522,9 @@ namespace std::chrono
       friend class time_zone;
 
       void
-      set_abbrev(const string& abbrev)
+      set_abbrev(string abbrev)
       {
-	// In practice, the FORMAT field never needs expanding here.
-	if (abbrev.find_first_of("/%") != abbrev.npos)
-	  __throw_runtime_error("std::chrono::time_zone: invalid data");
-	m_buf = abbrev;
+	m_buf = std::move(abbrev);
 	m_pos = 0;
 	m_expanded = true;
       }
@@ -544,9 +594,7 @@ namespace std::chrono
 
 	// Rule  NAME  FROM  TO  TYPE  IN  ON  AT  SAVE  LETTER/S
 
-	in >> quoted(rule.name)
-	   >> minmax_year{rule.from}
-	   >> minmax_year2{rule.to, rule.from};
+	in >> quoted(rule.name) >> years_from_to{rule.from, rule.to};
 
 	if (char type; in >> type && type != '-')
 	  in.setstate(ios::failbit);
@@ -557,7 +605,7 @@ namespace std::chrono
 	if (save_time.indicator != at_time::Wall)
 	  {
 	    // We don't actually store the save_time.indicator, because we
-	    // assume that it's always deducable from the actual offset value.
+	    // assume that it's always deducible from the offset value.
 	    auto expected = save_time.time == 0s
 			      ? at_time::Standard
 			      : at_time::Daylight;
@@ -567,8 +615,6 @@ namespace std::chrono
 	rule.save = save_time.time;
 
 	in >> rule.letters;
-	if (rule.letters == "-")
-	  rule.letters.clear();
 	return in;
       }
 
@@ -719,58 +765,6 @@ namespace std::chrono
 #endif // TZDB_DISABLED
   };
 
-#ifndef TZDB_DISABLED
-  namespace
-  {
-    bool
-    select_std_or_dst_abbrev(string& abbrev, minutes save)
-    {
-      if (size_t pos = abbrev.find('/'); pos != string::npos)
-	{
-	  // Select one of "STD/DST" for standard or daylight.
-	  if (save == 0min)
-	    abbrev.erase(pos);
-	  else
-	    abbrev.erase(0, pos + 1);
-	  return true;
-	}
-      return false;
-    }
-
-    // Set the sys_info::abbrev string by expanding any placeholders.
-    void
-    format_abbrev_str(sys_info& info, string_view letters = {})
-    {
-      if (size_t pos = info.abbrev.find("%s"); pos != string::npos)
-	{
-	  // Expand "%s" to the variable part, given by Rule::letters.
-	  info.abbrev.replace(pos, 2, letters);
-	}
-      else if (size_t pos = info.abbrev.find("%z"); pos != string::npos)
-	{
-	  // Expand "%z" to the UT offset as +/-hh, +/-hhmm, or +/-hhmmss.
-	  hh_mm_ss<seconds> t(info.offset);
-	  string z(1, "+-"[t.is_negative()]);
-	  long val = t.hours().count();
-	  if (minutes m = t.minutes(); m != m.zero())
-	    {
-	      val *= 100;
-	      val += m.count();
-	      if (seconds s = t.seconds(); s != s.zero())
-		{
-		  val *= 100;
-		  val += s.count();
-		}
-	    }
-	  z += std::to_string(val);
-	  info.abbrev.replace(pos, 2, z);
-	}
-      else
-	select_std_or_dst_abbrev(info.abbrev, info.save);
-    }
-  }
-#endif // TZDB_DISABLED
-
   // Implementation of std::chrono::time_zone::get_info(const sys_time<D>&)
   sys_info
   time_zone::_M_get_sys_info(sys_seconds tp) const
@@ -839,12 +833,72 @@ namespace std::chrono
     info.abbrev = ri.format();
 
     string_view letters;
-    if (i != infos.begin())
+    if (i != infos.begin() && i[-1].expanded())
+      letters = i[-1].next_letters();
+
+    if (letters.empty())
       {
-	if (i[-1].expanded())
-	  letters = i[-1].next_letters();
-	// XXX else need to find Rule active before this time and use it
-	// to know the initial offset, save, and letters.
+	sys_seconds t = info.begin - seconds(1);
+	const year_month_day date(chrono::floor<days>(t));
+
+	// Try to find a Rule active before this time, to get initial
+	// SAVE and LETTERS values. There may not be a Rule for the period
+	// before the first DST transition, so find the earliest DST->STD
+	// transition and use the LETTERS from that.
+	const Rule* active_rule = nullptr;
+	sys_seconds active_rule_start = sys_seconds::min();
+	const Rule* first_std = nullptr;
+	for (const auto& rule : rules)
+	  {
+	    if (rule.save == minutes(0))
+	      {
+		if (!first_std)
+		  first_std = &rule;
+		else if (rule.from < first_std->from)
+		  first_std = &rule;
+		else if (rule.from == first_std->from)
+		  {
+		    if (rule.start_time(rule.from, {})
+			  < first_std->start_time(first_std->from, {}))
+		      first_std = &rule;
+		  }
+	      }
+
+	    year y = date.year();
+
+	    if (y > rule.to) // rule no longer applies at time t
+	      continue;
+	    if (y < rule.from) // rule doesn't apply yet at time t
+	      continue;
+
+	    sys_seconds rule_start;
+
+	    seconds offset{}; // appropriate for at_time::Universal
+	    if (rule.when.indicator == at_time::Wall)
+	      offset = info.offset;
+	    else if (rule.when.indicator == at_time::Standard)
+	      offset = ri.offset();
+
+	    // Time the rule takes effect this year:
+	    rule_start = rule.start_time(y, offset);
+
+	    if (rule_start >= t && rule.from < y)
+	      {
+		// Try this rule in the previous year.
+		rule_start = rule.start_time(--y, offset);
+	      }
+
+	    if (active_rule_start < rule_start && rule_start < t)
+	      {
+		active_rule_start = rule_start;
+		active_rule = &rule;
+	      }
+	  }
+
+	if (active_rule)
+	  letters = active_rule->letters;
+	else if (first_std)
+	  letters = first_std->letters;
       }
 
     const Rule* curr_rule = nullptr;
@@ -2069,9 +2123,11 @@ namespace std::chrono
 	      istringstream in2(std::move(rules));
 	      in2 >> rules_time;
 	      inf.m_save = duration_cast<minutes>(rules_time.time);
+	      // If the FORMAT is "STD/DST" then we can choose the right one
+	      // now, so that we store a shorter string.
 	      select_std_or_dst_abbrev(fmt, inf.m_save);
 	    }
-	  inf.set_abbrev(fmt);
+	  inf.set_abbrev(std::move(fmt));
 	}
 
       // YEAR [MONTH [DAY [TIME]]]
@@ -2082,7 +2138,12 @@ namespace std::chrono
 	  abbrev_month m{January};
 	  int d = 1;
 	  at_time t{};
+	  // XXX DAY should support ON format, e.g. lastSun or Sun>=8
 	  in >> m >> d >> t;
+	  // XXX UNTIL field should be interpreted
+	  // "using the rules in effect just before the transition"
+	  // so might need to store as year_month_day and hh_mm_ss and only
+	  // convert to a sys_time once we know the offset in effect.
 	  inf.m_until = sys_days(year(y)/m.m/day(d)) + seconds(t.time);
 	}
       else
diff --git a/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc b/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
new file mode 100644
index 00000000000..f1a8fff02f5
--- /dev/null
+++ b/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
@@ -0,0 +1,106 @@
+// { dg-do run { target c++20 } }
+// { dg-require-effective-target tzdb }
+// { dg-require-effective-target cxx11_abi }
+// { dg-xfail-run-if "no weak override on AIX" { powerpc-ibm-aix* } }
+
+#include <chrono>
+#include <fstream>
+#include <testsuite_hooks.h>
+
+static bool override_used = false;
+
+namespace __gnu_cxx
+{
+  const char* zoneinfo_dir_override() {
+    override_used = true;
+    return "./";
+  }
+}
+
+using namespace std::chrono;
+
+void
+test_format()
+{
+  std::ofstream("tzdata.zi") << R"(# version test_1
+Zone Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u
+                   -1      - %z  1975
+                   0       - GMT
+Zon Some/Zone 1:2:3   - %z 1900
+              1:23:45 - %z 1950
+Zo Another/Zone 1:2:3 -     AZ0     1901
+                1     Roolz A%sZ    2000
+                1     Roolz SAZ/DAZ 2005
+                1     Roolz %z
+Rule Roolz 1950 max - April 1 2 1 D
+Rul  Roolz 1950 max - Oct   1 1 0 S
+Z Strange/Zone 1       - X%sX    1980
+               1       - FOO/BAR 1990
+               2:00    - %zzz    1995
+               0:9     - %zzz    1996
+               0:8:7   - %zzz    1997
+               0:6:5.5 - %zzz    1998
+)";
+
+  const auto& db = reload_tzdb();
+  VERIFY( override_used ); // If this fails then XFAIL for the target.
+  VERIFY( db.version == "test_1" );
+
+  // Test formatting %z as
+  auto tz = locate_zone("Africa/Bissau");
+  auto inf = tz->get_info(sys_days(1974y/1/1));
+  VERIFY( inf.abbrev == "-01" );
+
+  tz = locate_zone("Some/Zone");
+  inf = tz->get_info(sys_days(1899y/1/1));
+  VERIFY( inf.abbrev == "+010203" );
+  inf = tz->get_info(sys_days(1955y/1/1));
+  VERIFY( inf.abbrev == "+012345" );
+
+  tz = locate_zone("Another/Zone");
+  // Test formatting %s as the LETTER/S field from the active Rule.
+  inf = tz->get_info(sys_days(1910y/January/1));
+  VERIFY( inf.abbrev == "ASZ" );
+  inf = tz->get_info(sys_days(1950y/January/1));
+  VERIFY( inf.abbrev == "ASZ" );
+  inf = tz->get_info(sys_days(1950y/June/1));
+  VERIFY( inf.abbrev == "ADZ" );
+  inf = tz->get_info(sys_days(1999y/January/1));
+  VERIFY( inf.abbrev == "ASZ" );
+  inf = tz->get_info(sys_days(1999y/July/1));
+  VERIFY( inf.abbrev == "ADZ" );
+  // Test formatting STD/DST according to the active Rule.
+  inf = tz->get_info(sys_days(2000y/January/2));
+  VERIFY( inf.abbrev == "SAZ" );
+  inf = tz->get_info(sys_days(2001y/January/1));
+  VERIFY( inf.abbrev == "SAZ" );
+  inf = tz->get_info(sys_days(2001y/July/1));
+  VERIFY( inf.abbrev == "DAZ" );
+  // Test formatting %z as the offset determined by the active Rule.
+  inf = tz->get_info(sys_days(2005y/January/2));
+  VERIFY( inf.abbrev == "+01" );
+  inf = tz->get_info(sys_days(2006y/January/1));
+  VERIFY( inf.abbrev == "+01" );
+  inf = tz->get_info(sys_days(2006y/July/1));
+  VERIFY( inf.abbrev == "+02" );
+
+  // Test formatting %z, %s and S/D for a Zone with no associated Rules.
+  tz = locate_zone("Strange/Zone");
+  inf = tz->get_info(sys_days(1979y/January/1));
+  VERIFY( inf.abbrev == "XX" ); // No Rule means nothing to use for %s.
+  inf = tz->get_info(sys_days(1981y/July/1));
+  VERIFY( inf.abbrev == "FOO" ); // Always standard time means first string.
+  inf = tz->get_info(sys_days(1994y/July/1));
+  VERIFY( inf.abbrev == "+02zz" );
+  inf = tz->get_info(sys_days(1995y/July/1));
+  VERIFY( inf.abbrev == "+0009zz" );
+  inf = tz->get_info(sys_days(1996y/July/1));
+  VERIFY( inf.abbrev == "+000807zz" );
+  inf = tz->get_info(sys_days(1997y/July/1));
+  VERIFY( inf.abbrev == "+000606zz" );
+}
+
+int main()
+{
+  test_format();
+}
diff --git a/libstdc++-v3/testsuite/std/time/tzdb/1.cc b/libstdc++-v3/testsuite/std/time/tzdb/1.cc
index 796f3a8b425..7a31c1c20ba 100644
--- a/libstdc++-v3/testsuite/std/time/tzdb/1.cc
+++ b/libstdc++-v3/testsuite/std/time/tzdb/1.cc
@@ -39,11 +39,15 @@ test_locate()
   const tzdb& db = get_tzdb();
   const time_zone* tz = db.locate_zone("GMT");
   VERIFY( tz != nullptr );
-  VERIFY( tz->name() == "Etc/GMT" );
   VERIFY( tz == std::chrono::locate_zone("GMT") );
   VERIFY( tz == db.locate_zone("Etc/GMT") );
   VERIFY( tz == db.locate_zone("Etc/GMT+0") );
 
+  // Since 2022f GMT is now a Zone and Etc/GMT a link instead of vice versa,
+  // but only when using the vanguard format. As of 2024a, the main and
+  // rearguard formats still have Etc/GMT as a Zone and GMT as a link.
+  VERIFY( tz->name() == "GMT" || tz->name() == "Etc/GMT" );
+
   VERIFY( db.locate_zone(db.current_zone()->name()) == db.current_zone() );
 }
 

commit f0f00c44eb86cc3f5e371fcd4931e1219893351c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Sep 11 00:23:02 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 83b31cda118..2abf40291e6 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240910
+20240911
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index eb925c39b0f..6c100031e4c 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,24 @@
+2024-09-10  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
+
+	* src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove.
+	(years_from_to): New class replacing minmax_year and
+	minmax_year2.
+	(format_abbrev_str, select_std_or_dst_abbrev): Move earlier in
+	the file. Handle "-" for letters.
+	(ZoneInfo::to): Use format_abbrev_str to expand %z.
+	(ZoneInfo::set_abbrev): Remove exception. Change parameter from
+	reference to value.
+	(operator>>(istream&, Rule&)): Do not clear letters when it
+	contains "-".
+	(time_zone::_M_get_sys_info): Add missing logic to find the Rule
+	in effect before the time point.
+	* testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using
+	"GMT" as the Zone name, not as a Link to "Etc/GMT".
+	* testsuite/std/time/time_zone/sys_info_abbrev.cc: New test.
+
 2024-09-08  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:

commit d5d6d3ff43c5166ead1787c4334553be26cc84da
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Sep 10 14:25:41 2024 +0100

    libstdc++: std::string move assignment should not use POCCA trait [PR116641]
    
    The changes to implement LWG 2579 (r10-327-gdb33efde17932f) made
    std::string::assign use the propagate_on_container_copy_assignment
    (POCCA) trait, for consistency with operator=(const basic_string&).
    However, this also unintentionally affected operator=(basic_string&&)
    which calls assign(str) to make a deep copy when performing a move is
    not possible. The fix is for the move assignment operator to call
    _M_assign(str) instead of assign(str), as this just does the deep copy
    and doesn't check the POCCA trait first.
    
    The bug only affects the unlikely/useless combination of POCCA==true and
    POCMA==false, but we should fix it for correctness anyway. it should
    also make move assignment slightly cheaper to compile and execute,
    because we skip the extra code in assign(const basic_string&).
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116641
            * include/bits/basic_string.h (operator=(basic_string&&)): Call
            _M_assign instead of assign.
            * testsuite/21_strings/basic_string/allocator/116641.cc: New
            test.
    
    (cherry picked from commit c07cf418fdde0c192e370a8d76a991cc7215e9c4)

diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h
index 8a695a494ef..2794ec6419a 100644
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -912,7 +912,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
 	      __str._M_data(__str._M_use_local_data());
 	  }
 	else // Need to do a deep copy
-	  assign(__str);
+	  _M_assign(__str);
 	__str.clear();
 	return *this;
       }
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/allocator/116641.cc b/libstdc++-v3/testsuite/21_strings/basic_string/allocator/116641.cc
new file mode 100644
index 00000000000..a1a411b87fa
--- /dev/null
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/allocator/116641.cc
@@ -0,0 +1,53 @@
+// { dg-do run { target c++11 } }
+// { dg-require-effective-target cxx11_abi }
+
+// Bug 116641 - std::string move assignment incorrectly depends on POCCA
+
+#include <string>
+#include <testsuite_hooks.h>
+
+template<typename T>
+struct Alloc
+{
+  using value_type = T;
+  using propagate_on_container_swap = std::false_type;
+  using propagate_on_container_copy_assignment = std::true_type;
+  using propagate_on_container_move_assignment = std::false_type;
+
+  Alloc(int id) : id(id) { }
+
+  template<typename U>
+    Alloc(const Alloc<U>& a) : id(a.id) { }
+
+  T* allocate(unsigned long n)
+  { return std::allocator<T>().allocate(n); }
+
+  void deallocate(T* p, unsigned long n)
+  { std::allocator<T>().deallocate(p, n); }
+
+  Alloc& operator=(const Alloc&) { throw; }
+
+  bool operator==(const Alloc& a) const { return id == a.id; }
+  bool operator!=(const Alloc& a) const { return id != a.id; }
+
+  int id;
+};
+
+void
+test_pr116641()
+{
+  Alloc<char> a1(1), a2(2);
+  std::basic_string<char, std::char_traits<char>, Alloc<char>> s1(a1), s2(a2);
+
+  s1 = "allocator should not propagate on move assignment";
+  VERIFY( s1.get_allocator() == a1 );
+  VERIFY( s2.get_allocator() == a2 );
+  s2 = std::move(s1);
+  VERIFY( s1.get_allocator() == a1 );
+  VERIFY( s2.get_allocator() == a2 );
+}
+
+int main()
+{
+  test_pr116641();
+}

commit 2003f890b13b8ec35b6112fc13c7e69e61cd9162
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Sep 10 14:36:26 2024 +0100

    libstdc++: Only use std::ios_base_library_init() for ELF [PR116159]
    
    The undefined std::ios_base_library_init() symbol that is referenced by
    <iostream> is only supposed to be used for targets where symbol
    versioning is supported.
    
    The mingw-w64 target defaults to --enable-symvers=gnu due to using GNU
    ld but doesn't actually support symbol versioning. This means it tries
    to emit references to the std::ios_base_library_init() symbol, which
    isn't really defined in the library. This causes problems when using lld
    to link user binaries.
    
    Disable the undefined symbol reference for non-ELF targets.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116159
            * include/std/iostream (ios_base_library_init): Only define for
            ELF targets.
            * src/c++98/ios_init.cc (ios_base_library_init): Likewise.
    
    (cherry picked from commit fc7a1fb0238e379d466316aa219734ac61f4bc0e)

diff --git a/libstdc++-v3/include/std/iostream b/libstdc++-v3/include/std/iostream
index 0c6a2d8a4b3..208fd1d5138 100644
--- a/libstdc++-v3/include/std/iostream
+++ b/libstdc++-v3/include/std/iostream
@@ -78,7 +78,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #if !(_GLIBCXX_USE_INIT_PRIORITY_ATTRIBUTE \
       && __has_attribute(__init_priority__))
   static ios_base::Init __ioinit;
-#elif defined(_GLIBCXX_SYMVER_GNU)
+#elif defined(_GLIBCXX_SYMVER_GNU) && defined(__ELF__)
   __extension__ __asm (".globl _ZSt21ios_base_library_initv");
 #endif
 
diff --git a/libstdc++-v3/src/c++98/ios_init.cc b/libstdc++-v3/src/c++98/ios_init.cc
index 1422e20d940..6e2e5014cf0 100644
--- a/libstdc++-v3/src/c++98/ios_init.cc
+++ b/libstdc++-v3/src/c++98/ios_init.cc
@@ -199,7 +199,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     return __ret;
   }
 
-#ifdef _GLIBCXX_SYMVER_GNU
+#if defined(_GLIBCXX_SYMVER_GNU) && defined(__ELF__)
 #pragma GCC diagnostic ignored "-Wattribute-alias"
 
   void ios_base_library_init (void)

commit 78a08bf4a16cdb610b83fcf97249bfe567fa169b
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Sep 12 00:20:49 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 2abf40291e6..8dcf10768ee 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240911
+20240912
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 6c100031e4c..c30ae1757cf 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,24 @@
+2024-09-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-10  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116159
+	* include/std/iostream (ios_base_library_init): Only define for
+	ELF targets.
+	* src/c++98/ios_init.cc (ios_base_library_init): Likewise.
+
+2024-09-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-10  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116641
+	* include/bits/basic_string.h (operator=(basic_string&&)): Call
+	_M_assign instead of assign.
+	* testsuite/21_strings/basic_string/allocator/116641.cc: New
+	test.
+
 2024-09-10  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit c9fd43a8df0e30109794e2480e2d8d05d00763c0
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Sep 7 09:36:53 2024 +0200

    libiberty: Fix up > 64K section handling in simple_object_elf_copy_lto_debug_section [PR116614]
    
    cat abc.C
      #define A(n) struct T##n {} t##n;
      #define B(n) A(n##0) A(n##1) A(n##2) A(n##3) A(n##4) A(n##5) A(n##6) A(n##7) A(n##8) A(n##9)
      #define C(n) B(n##0) B(n##1) B(n##2) B(n##3) B(n##4) B(n##5) B(n##6) B(n##7) B(n##8) B(n##9)
      #define D(n) C(n##0) C(n##1) C(n##2) C(n##3) C(n##4) C(n##5) C(n##6) C(n##7) C(n##8) C(n##9)
      #define E(n) D(n##0) D(n##1) D(n##2) D(n##3) D(n##4) D(n##5) D(n##6) D(n##7) D(n##8) D(n##9)
      E(1) E(2) E(3)
      int main () { return 0; }
    ./xg++ -B ./ -o abc{.o,.C} -flto -flto-partition=1to1 -O2 -g -fdebug-types-section -c
    ./xgcc -B ./ -o abc{,.o} -flto -flto-partition=1to1 -O2
    (not included in testsuite as it takes a while to compile) FAILs with
    lto-wrapper: fatal error: Too many copied sections: Operation not supported
    compilation terminated.
    /usr/bin/ld: error: lto-wrapper failed
    collect2: error: ld returned 1 exit status
    
    The following patch fixes that.  Most of the 64K+ section support for
    reading and writing was already there years ago (and especially reading used
    quite often already) and a further bug fixed in it in the PR104617 fix.
    
    Yet, the fix isn't solely about removing the
      if (new_i - 1 >= SHN_LORESERVE)
        {
          *err = ENOTSUP;
          return "Too many copied sections";
        }
    5 lines, the missing part was that the function only handled reading of
    the .symtab_shndx section but not copying/updating of it.
    If the result has less than 64K-epsilon sections, that actually wasn't
    needed, but e.g. with -fdebug-types-section one can exceed that pretty
    easily (reported to us on WebKitGtk build on ppc64le).
    Updating the section is slightly more complicated, because it basically
    needs to be done in lock step with updating the .symtab section, if one
    doesn't need to use SHN_XINDEX in there, the section should (or should be
    updated to) contain SHN_UNDEF entry, otherwise needs to have whatever would
    be overwise stored but couldn't fit.  But repeating due to that all the
    symtab decisions what to discard and how to rewrite it would be ugly.
    
    So, the patch instead emits the .symtab_shndx section (or sections) last
    and prepares the content during the .symtab processing and in a second
    pass when going just through .symtab_shndx sections just uses the saved
    content.
    
    2024-09-07  Jakub Jelinek  <jakub@redhat.com>
    
            PR lto/116614
            * simple-object-elf.c (SHN_COMMON): Align comment with neighbouring
            comments.
            (SHN_HIRESERVE): Use uppercase hex digits instead of lowercase for
            consistency.
            (simple_object_elf_find_sections): Formatting fixes.
            (simple_object_elf_fetch_attributes): Likewise.
            (simple_object_elf_attributes_merge): Likewise.
            (simple_object_elf_start_write): Likewise.
            (simple_object_elf_write_ehdr): Likewise.
            (simple_object_elf_write_shdr): Likewise.
            (simple_object_elf_write_to_file): Likewise.
            (simple_object_elf_copy_lto_debug_section): Likewise.  Don't fail for
            new_i - 1 >= SHN_LORESERVE, instead arrange in that case to copy
            over .symtab_shndx sections, though emit those last and compute their
            section content when processing associated .symtab sections.  Handle
            simple_object_internal_read failure even in the .symtab_shndx reading
            case.
    
    (cherry picked from commit bb8dd0980b39cfd601f88703fd356055727ef24d)

diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c
index c09c216656c..5e95297b2fc 100644
--- a/libiberty/simple-object-elf.c
+++ b/libiberty/simple-object-elf.c
@@ -128,9 +128,9 @@ typedef struct {
 
 #define SHN_UNDEF	0		/* Undefined section */
 #define SHN_LORESERVE	0xFF00		/* Begin range of reserved indices */
-#define SHN_COMMON	0xFFF2	/* Associated symbol is in common */
+#define SHN_COMMON	0xFFF2		/* Associated symbol is in common */
 #define SHN_XINDEX	0xFFFF		/* Section index is held elsewhere */
-#define SHN_HIRESERVE	0xffff		/* End of reserved indices */
+#define SHN_HIRESERVE	0xFFFF		/* End of reserved indices */
 
 
 /* 32-bit ELF program header.  */
@@ -569,8 +569,8 @@ simple_object_elf_find_sections (simple_object_read *sobj,
 				 void *data,
 				 int *err)
 {
-  struct simple_object_elf_read *eor =
-    (struct simple_object_elf_read *) sobj->data;
+  struct simple_object_elf_read *eor
+    = (struct simple_object_elf_read *) sobj->data;
   const struct elf_type_functions *type_functions = eor->type_functions;
   unsigned char ei_class = eor->ei_class;
   size_t shdr_size;
@@ -662,8 +662,8 @@ simple_object_elf_fetch_attributes (simple_object_read *sobj,
 				    const char **errmsg ATTRIBUTE_UNUSED,
 				    int *err ATTRIBUTE_UNUSED)
 {
-  struct simple_object_elf_read *eor =
-    (struct simple_object_elf_read *) sobj->data;
+  struct simple_object_elf_read *eor
+    = (struct simple_object_elf_read *) sobj->data;
   struct simple_object_elf_attributes *ret;
 
   ret = XNEW (struct simple_object_elf_attributes);
@@ -689,10 +689,10 @@ simple_object_elf_release_read (void *data)
 static const char *
 simple_object_elf_attributes_merge (void *todata, void *fromdata, int *err)
 {
-  struct simple_object_elf_attributes *to =
-    (struct simple_object_elf_attributes *) todata;
-  struct simple_object_elf_attributes *from =
-    (struct simple_object_elf_attributes *) fromdata;
+  struct simple_object_elf_attributes *to
+    = (struct simple_object_elf_attributes *) todata;
+  struct simple_object_elf_attributes *from
+    = (struct simple_object_elf_attributes *) fromdata;
 
   if (to->ei_data != from->ei_data || to->ei_class != from->ei_class)
     {
@@ -751,8 +751,8 @@ simple_object_elf_start_write (void *attributes_data,
 			       const char **errmsg ATTRIBUTE_UNUSED,
 			       int *err ATTRIBUTE_UNUSED)
 {
-  struct simple_object_elf_attributes *attrs =
-    (struct simple_object_elf_attributes *) attributes_data;
+  struct simple_object_elf_attributes *attrs
+    = (struct simple_object_elf_attributes *) attributes_data;
   struct simple_object_elf_write *ret;
 
   /* We're just going to record the attributes, but we need to make a
@@ -769,8 +769,8 @@ static int
 simple_object_elf_write_ehdr (simple_object_write *sobj, int descriptor,
 			      const char **errmsg, int *err)
 {
-  struct simple_object_elf_attributes *attrs =
-    (struct simple_object_elf_attributes *) sobj->data;
+  struct simple_object_elf_attributes *attrs
+    = (struct simple_object_elf_attributes *) sobj->data;
   const struct elf_type_functions* fns;
   unsigned char cl;
   size_t ehdr_size;
@@ -852,8 +852,8 @@ simple_object_elf_write_shdr (simple_object_write *sobj, int descriptor,
 			      size_t sh_entsize,
 			      const char **errmsg, int *err)
 {
-  struct simple_object_elf_attributes *attrs =
-    (struct simple_object_elf_attributes *) sobj->data;
+  struct simple_object_elf_attributes *attrs
+    = (struct simple_object_elf_attributes *) sobj->data;
   const struct elf_type_functions* fns;
   unsigned char cl;
   size_t shdr_size;
@@ -894,8 +894,8 @@ static const char *
 simple_object_elf_write_to_file (simple_object_write *sobj, int descriptor,
 				 int *err)
 {
-  struct simple_object_elf_write *eow =
-    (struct simple_object_elf_write *) sobj->data;
+  struct simple_object_elf_write *eow
+    = (struct simple_object_elf_write *) sobj->data;
   struct simple_object_elf_attributes *attrs = &eow->attrs;
   unsigned char cl;
   size_t ehdr_size;
@@ -1088,11 +1088,11 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 					   char *(*pfn) (const char *),
 					   int *err)
 {
-  struct simple_object_elf_read *eor =
-    (struct simple_object_elf_read *) sobj->data;
+  struct simple_object_elf_read *eor
+    = (struct simple_object_elf_read *) sobj->data;
   const struct elf_type_functions *type_functions = eor->type_functions;
-  struct simple_object_elf_write *eow =
-    (struct simple_object_elf_write *) dobj->data;
+  struct simple_object_elf_write *eow
+    = (struct simple_object_elf_write *) dobj->data;
   unsigned char ei_class = eor->ei_class;
   size_t shdr_size;
   unsigned int shnum;
@@ -1106,10 +1106,13 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
   int changed;
   int *pfnret;
   const char **pfnname;
-  unsigned new_i;
+  unsigned new_i, new_count;
   unsigned *sh_map;
   unsigned first_shndx = 0;
   unsigned int *symtab_indices_shndx;
+  int pass_symtab_indices_shndx;
+  unsigned int first_symtab_indices_shndx;
+  unsigned char **symtab_indices_shndx_buf;
 
   shdr_size = (ei_class == ELFCLASS32
 	       ? sizeof (Elf32_External_Shdr)
@@ -1179,8 +1182,7 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
       ret = (*pfn) (name);
       pfnret[i - 1] = ret == NULL ? -1 : 0;
       pfnname[i - 1] = ret == NULL ? name : ret;
-      if (first_shndx == 0
-	  && pfnret[i - 1] == 0)
+      if (first_shndx == 0 && pfnret[i - 1] == 0)
 	first_shndx = i;
 
       /* Remember the indexes of existing SHT_SYMTAB_SHNDX sections.  */
@@ -1191,11 +1193,12 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 	  unsigned int sh_link;
 	  sh_link = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
 				     shdr, sh_link, Elf_Word);
-	  symtab_indices_shndx[sh_link - 1] = i - 1;
-	  /* Always discard the extended index sections, after
-	     copying it will not be needed.  This way we don't need to
-	     update it and deal with the ordering constraints of
-	     processing the existing symtab and changing the index.  */
+	  symtab_indices_shndx[sh_link - 1] = i;
+	  /* Discard the extended index sections, after copying it will not
+	     be needed, unless we need more than SHN_LORESERVE - 1 sections
+	     in the output.  This way we don't need to update it and deal with
+	     the ordering constraints of processing the existing symtab and
+	     changing the index.  */
 	  pfnret[i - 1] = -1;
 	}
     }
@@ -1291,16 +1294,25 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
       else
 	sh_map[i] = new_i++;
     }
+  first_symtab_indices_shndx = new_i;
+  symtab_indices_shndx_buf = NULL;
   if (new_i - 1 >= SHN_LORESERVE)
-    {
-      *err = ENOTSUP;
-      return "Too many copied sections";
-    }
-  eow->shdrs = XNEWVEC (unsigned char, shdr_size * (new_i - 1));
+    for (i = 1; i < shnum; ++i)
+      if (pfnret[i - 1] == 0 && symtab_indices_shndx[i - 1] != 0)
+	{
+	  pfnret[symtab_indices_shndx[i - 1] - 1] = 0;
+	  sh_map[symtab_indices_shndx[i - 1]] = new_i++;
+	}
+  new_count = new_i;
+  if (new_count != first_symtab_indices_shndx)
+    symtab_indices_shndx_buf
+      = XNEWVEC (unsigned char *, new_count - first_symtab_indices_shndx);
+  eow->shdrs = XNEWVEC (unsigned char, shdr_size * (new_count - 1));
 
   /* Then perform the actual copying.  */
   new_i = 0;
-  for (i = 1; i < shnum; ++i)
+  pass_symtab_indices_shndx = 0;
+  for (i = 1; i <= shnum; ++i)
     {
       unsigned char *shdr;
       unsigned int sh_name, sh_type;
@@ -1311,11 +1323,30 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
       off_t flags;
       unsigned char *buf;
 
+      if (i == shnum)
+	{
+	  if (new_count - 1 < SHN_LORESERVE || pass_symtab_indices_shndx)
+	    break;
+	  i = 0;
+	  pass_symtab_indices_shndx = 1;
+	  continue;
+	}
+
       if (pfnret[i - 1])
 	continue;
 
-      new_i++;
       shdr = shdrs + (i - 1) * shdr_size;
+      sh_type = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+				 shdr, sh_type, Elf_Word);
+      if (sh_type == SHT_SYMTAB_SHNDX)
+	{
+	  if (!pass_symtab_indices_shndx)
+	    continue;
+	}
+      else if (pass_symtab_indices_shndx)
+	continue;
+
+      new_i++;
       sh_name = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
 				 shdr, sh_name, Elf_Word);
       if (sh_name >= name_size)
@@ -1324,6 +1355,7 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 	  XDELETEVEC (names);
 	  XDELETEVEC (shdrs);
 	  XDELETEVEC (symtab_indices_shndx);
+	  XDELETEVEC (symtab_indices_shndx_buf);
 	  return "ELF section name out of range";
 	}
 
@@ -1332,16 +1364,14 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 				shdr, sh_offset, Elf_Addr);
       length = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
 				shdr, sh_size, Elf_Addr);
-      sh_type = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
-				 shdr, sh_type, Elf_Word);
 
-      dest = simple_object_write_create_section (dobj, pfnname[i - 1],
-						 0, &errmsg, err);
+      dest = simple_object_write_create_section (dobj, name, 0, &errmsg, err);
       if (dest == NULL)
 	{
 	  XDELETEVEC (names);
 	  XDELETEVEC (shdrs);
 	  XDELETEVEC (symtab_indices_shndx);
+	  XDELETEVEC (symtab_indices_shndx_buf);
 	  return errmsg;
 	}
 
@@ -1363,6 +1393,7 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 	  XDELETEVEC (names);
 	  XDELETEVEC (shdrs);
 	  XDELETEVEC (symtab_indices_shndx);
+	  XDELETEVEC (symtab_indices_shndx_buf);
 	  return errmsg;
 	}
 
@@ -1378,7 +1409,8 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 	  /* Read the section index table if present.  */
 	  if (symtab_indices_shndx[i - 1] != 0)
 	    {
-	      unsigned char *sidxhdr = shdrs + symtab_indices_shndx[i - 1] * shdr_size;
+	      unsigned char *sidxhdr
+		= shdrs + (symtab_indices_shndx[i - 1] - 1) * shdr_size;
 	      off_t sidxoff = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
 					       sidxhdr, sh_offset, Elf_Addr);
 	      size_t sidxsz = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
@@ -1388,11 +1420,20 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 				   sidxhdr, sh_type, Elf_Word);
 	      if (shndx_type != SHT_SYMTAB_SHNDX)
 		return "Wrong section type of a SYMTAB SECTION INDICES section";
-	      shndx_table = (unsigned *)XNEWVEC (char, sidxsz);
-	      simple_object_internal_read (sobj->descriptor,
-					   sobj->offset + sidxoff,
-					   (unsigned char *)shndx_table,
-					   sidxsz, &errmsg, err);
+	      shndx_table = (unsigned *) XNEWVEC (char, sidxsz);
+	      if (!simple_object_internal_read (sobj->descriptor,
+						sobj->offset + sidxoff,
+						(unsigned char *) shndx_table,
+						sidxsz, &errmsg, err))
+		{
+		  XDELETEVEC (buf);
+		  XDELETEVEC (names);
+		  XDELETEVEC (shdrs);
+		  XDELETEVEC (symtab_indices_shndx);
+		  XDELETEVEC (shndx_table);
+		  XDELETEVEC (symtab_indices_shndx_buf);
+		  return errmsg;
+		}
 	    }
 
 	  /* Find a WEAK HIDDEN symbol which name we will use for removed
@@ -1407,17 +1448,20 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 	      unsigned char *st_other;
 	      if (ei_class == ELFCLASS32)
 		{
-		  st_info = &((Elf32_External_Sym *)ent)->st_info;
-		  st_other = &((Elf32_External_Sym *)ent)->st_other;
+		  st_info = &((Elf32_External_Sym *) ent)->st_info;
+		  st_other = &((Elf32_External_Sym *) ent)->st_other;
 		}
 	      else
 		{
-		  st_info = &((Elf64_External_Sym *)ent)->st_info;
-		  st_other = &((Elf64_External_Sym *)ent)->st_other;
+		  st_info = &((Elf64_External_Sym *) ent)->st_info;
+		  st_other = &((Elf64_External_Sym *) ent)->st_other;
 		}
 	      if (st_shndx == SHN_XINDEX)
-		st_shndx = type_functions->fetch_Elf_Word
-		    ((unsigned char *)(shndx_table + (ent - buf) / entsize));
+		{
+		  unsigned char *ndx_ptr
+		    = (unsigned char *) (shndx_table + (ent - buf) / entsize);
+		  st_shndx = type_functions->fetch_Elf_Word (ndx_ptr);
+		}
 
 	      if (st_shndx != SHN_COMMON
 		  && !(st_shndx != SHN_UNDEF
@@ -1442,19 +1486,26 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 	      unsigned char *st_info;
 	      unsigned char *st_other;
 	      int discard = 0;
+	      unsigned char *ndx_ptr = NULL;
 	      if (ei_class == ELFCLASS32)
 		{
-		  st_info = &((Elf32_External_Sym *)ent)->st_info;
-		  st_other = &((Elf32_External_Sym *)ent)->st_other;
+		  st_info = &((Elf32_External_Sym *) ent)->st_info;
+		  st_other = &((Elf32_External_Sym *) ent)->st_other;
 		}
 	      else
 		{
-		  st_info = &((Elf64_External_Sym *)ent)->st_info;
-		  st_other = &((Elf64_External_Sym *)ent)->st_other;
+		  st_info = &((Elf64_External_Sym *) ent)->st_info;
+		  st_other = &((Elf64_External_Sym *) ent)->st_other;
 		}
+	      if (shndx_table)
+		ndx_ptr
+		  = (unsigned char *) (shndx_table + (ent - buf) / entsize);
+
 	      if (st_shndx == SHN_XINDEX)
-		st_shndx = type_functions->fetch_Elf_Word
-		    ((unsigned char *)(shndx_table + (ent - buf) / entsize));
+		{
+		  st_shndx = type_functions->fetch_Elf_Word (ndx_ptr);
+		  type_functions->set_Elf_Word (ndx_ptr, SHN_UNDEF);
+		}
 	      /* Eliminate all COMMONs - this includes __gnu_lto_slim
 		 which otherwise cause endless LTO plugin invocation.
 		 FIXME: remove the condition once we remove emission
@@ -1488,9 +1539,14 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 			 defined in the first prevailing section.  */
 		      ELF_SET_FIELD (type_functions, ei_class, Sym,
 				     ent, st_name, Elf_Word, 0);
+		      st_shndx = sh_map[first_shndx];
+		      if (st_shndx >= SHN_LORESERVE)
+			{
+			  type_functions->set_Elf_Word (ndx_ptr, st_shndx);
+			  st_shndx = SHN_XINDEX;
+			}
 		      ELF_SET_FIELD (type_functions, ei_class, Sym,
-				     ent, st_shndx, Elf_Half,
-				     sh_map[first_shndx]);
+				     ent, st_shndx, Elf_Half, st_shndx);
 		    }
 		  else
 		    {
@@ -1514,11 +1570,24 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 		}
 	      else if (raw_st_shndx < SHN_LORESERVE
 		       || raw_st_shndx == SHN_XINDEX)
-		/* Remap the section reference.  */
-		ELF_SET_FIELD (type_functions, ei_class, Sym,
-			       ent, st_shndx, Elf_Half, sh_map[st_shndx]);
+		{
+		  /* Remap the section reference.  */
+		  st_shndx = sh_map[st_shndx];
+		  if (st_shndx >= SHN_LORESERVE)
+		    {
+		      type_functions->set_Elf_Word (ndx_ptr, st_shndx);
+		      st_shndx = SHN_XINDEX;
+		    }
+		  ELF_SET_FIELD (type_functions, ei_class, Sym,
+				 ent, st_shndx, Elf_Half, st_shndx);
+		}
 	    }
-	  XDELETEVEC (shndx_table);
+	  if (symtab_indices_shndx_buf)
+	    symtab_indices_shndx_buf[sh_map[symtab_indices_shndx[i - 1]]
+				     - first_symtab_indices_shndx]
+	      = (unsigned char *) shndx_table;
+	  else
+	    XDELETEVEC (shndx_table);
 	}
       else if (sh_type == SHT_GROUP)
 	{
@@ -1538,15 +1607,21 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
 	  /* Adjust the length.  */
 	  length = dst - buf;
 	}
+      else if (sh_type == SHT_SYMTAB_SHNDX)
+	{
+	  XDELETEVEC (buf);
+	  buf = symtab_indices_shndx_buf[new_i - first_symtab_indices_shndx];
+	  symtab_indices_shndx_buf[new_i - first_symtab_indices_shndx] = NULL;
+	}
 
-      errmsg = simple_object_write_add_data (dobj, dest,
-					     buf, length, 1, err);
+      errmsg = simple_object_write_add_data (dobj, dest, buf, length, 1, err);
       XDELETEVEC (buf);
       if (errmsg)
 	{
 	  XDELETEVEC (names);
 	  XDELETEVEC (shdrs);
 	  XDELETEVEC (symtab_indices_shndx);
+	  XDELETEVEC (symtab_indices_shndx_buf);
 	  return errmsg;
 	}
 
@@ -1586,6 +1661,7 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj,
   XDELETEVEC (pfnname);
   XDELETEVEC (symtab_indices_shndx);
   XDELETEVEC (sh_map);
+  XDELETEVEC (symtab_indices_shndx_buf);
 
   return NULL;
 }

commit 90a9c36dc3ba341cf662ba1d60c939027487fe9a
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Sep 10 18:32:58 2024 +0200

    c++: Fix get_member_function_from_ptrfunc with -fsanitize=bounds [PR116449]
    
    The following testcase is miscompiled, because
    get_member_function_from_ptrfunc
    emits something like
    (((FUNCTION.__pfn & 1) != 0)
     ? ptr + FUNCTION.__delta + FUNCTION.__pfn - 1
     : FUNCTION.__pfn) (ptr + FUNCTION.__delta, ...)
    or so, so FUNCTION tree is used there 5 times.  There is
    if (TREE_SIDE_EFFECTS (function)) function = save_expr (function);
    but in this case function doesn't have side-effects, just nested ARRAY_REFs.
    Now, if all the FUNCTION trees would be shared, it would work fine,
    FUNCTION is evaluated in the first operand of COND_EXPR; but unfortunately
    that isn't the case, both the BIT_AND_EXPR shortening and conversion to
    bool done for build_conditional_expr actually unshare_expr that first
    expression, but none of the other 4 are unshared.  With -fsanitize=bounds,
    .UBSAN_BOUNDS calls are added to the ARRAY_REFs and use save_expr to avoid
    evaluating the argument multiple times, but because that FUNCTION tree is
    first used in the second argument of COND_EXPR (i.e. conditionally), the
    SAVE_EXPR initialization is done just there and then the third argument
    of COND_EXPR just uses the uninitialized temporary and so does the first
    argument computation as well.
    
    The following patch fixes that by doing save_expr even if !TREE_SIDE_EFFECTS,
    but to avoid doing that too often only if !nonvirtual and if the expression
    isn't a simple decl.
    
    2024-09-10  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/116449
            * typeck.cc (get_member_function_from_ptrfunc): Use save_expr
            on instance_ptr and function even if it doesn't have side-effects,
            as long as it isn't a decl.
    
            * g++.dg/ubsan/pr116449.C: New test.
    
    (cherry picked from commit 0008050b9d6046ba4e811a03b406fb5d98707cae)

diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc
index 21436f836fa..3d62943f864 100644
--- a/gcc/cp/typeck.cc
+++ b/gcc/cp/typeck.cc
@@ -4175,10 +4175,23 @@ get_member_function_from_ptrfunc (tree *instance_ptrptr, tree function,
       if (!nonvirtual && is_dummy_object (instance_ptr))
 	nonvirtual = true;
 
-      if (TREE_SIDE_EFFECTS (instance_ptr))
-	instance_ptr = instance_save_expr = save_expr (instance_ptr);
+      /* Use save_expr even when instance_ptr doesn't have side-effects,
+	 unless it is a simple decl (save_expr won't do anything on
+	 constants), so that we don't ubsan instrument the expression
+	 multiple times.  See PR116449.  */
+      if (TREE_SIDE_EFFECTS (instance_ptr)
+	  || (!nonvirtual && !DECL_P (instance_ptr)))
+	{
+	  instance_save_expr = save_expr (instance_ptr);
+	  if (instance_save_expr == instance_ptr)
+	    instance_save_expr = NULL_TREE;
+	  else
+	    instance_ptr = instance_save_expr;
+	}
 
-      if (TREE_SIDE_EFFECTS (function))
+      /* See above comment.  */
+      if (TREE_SIDE_EFFECTS (function)
+	  || (!nonvirtual && !DECL_P (function)))
 	function = save_expr (function);
 
       /* Start by extracting all the information from the PMF itself.  */
diff --git a/gcc/testsuite/g++.dg/ubsan/pr116449.C b/gcc/testsuite/g++.dg/ubsan/pr116449.C
new file mode 100644
index 00000000000..f13368a51b0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ubsan/pr116449.C
@@ -0,0 +1,14 @@
+// PR c++/116449
+// { dg-do compile }
+// { dg-options "-O2 -Wall -fsanitize=undefined" }
+
+struct C { void foo (int); void bar (); int c[16]; };
+typedef void (C::*P) ();
+struct D { P d; };
+static D e[1] = { { &C::bar } };
+
+void
+C::foo (int x)
+{
+  (this->*e[c[x]].d) ();
+}

commit 5609246b561ab929b24eeb32965911884b58b0df
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Sep 12 18:22:21 2024 +0200

    c++: Disable deprecated/unavailable diagnostics when creating thunks for methods with such attributes [PR116636]
    
    On the following testcase, we emit false positive warnings/errors about using
    the deprecated or unavailable methods when creating thunks for them, even
    when nothing (in the testcase so far) actually used those.
    
    The following patch temporarily disables that diagnostics when creating
    the thunks.
    
    2024-09-12  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/116636
            * method.cc: Include decl.h.
            (use_thunk): Temporarily change deprecated_state to
            UNAVAILABLE_DEPRECATED_SUPPRESS.
    
            * g++.dg/warn/deprecated-19.C: New test.
    
    (cherry picked from commit 4026d89d623e322920b052f7ac0d940ef267dc0f)

diff --git a/gcc/cp/method.cc b/gcc/cp/method.cc
index 08a3d34fb01..a2ca83ce354 100644
--- a/gcc/cp/method.cc
+++ b/gcc/cp/method.cc
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "coretypes.h"
 #include "target.h"
 #include "cp-tree.h"
+#include "decl.h"
 #include "stringpool.h"
 #include "cgraph.h"
 #include "varasm.h"
@@ -283,6 +284,11 @@ use_thunk (tree thunk_fndecl, bool emit_p)
   /* Thunks are always addressable; they only appear in vtables.  */
   TREE_ADDRESSABLE (thunk_fndecl) = 1;
 
+  /* Don't diagnose deprecated or unavailable functions just because they
+     have thunks emitted for them.  */
+  auto du = make_temp_override (deprecated_state,
+                                UNAVAILABLE_DEPRECATED_SUPPRESS);
+
   /* Figure out what function is being thunked to.  It's referenced in
      this translation unit.  */
   TREE_ADDRESSABLE (function) = 1;
diff --git a/gcc/testsuite/g++.dg/warn/deprecated-19.C b/gcc/testsuite/g++.dg/warn/deprecated-19.C
new file mode 100644
index 00000000000..e49af4f74d0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/deprecated-19.C
@@ -0,0 +1,22 @@
+// PR c++/116636
+// { dg-do compile { target c++11 } }
+// { dg-options "-pedantic -Wdeprecated" }
+
+struct A {
+  virtual int foo () = 0;
+};
+struct B : virtual A {
+  [[deprecated]] int foo () { return 0; }	// { dg-message "declared here" }
+};
+struct C : virtual A {
+  [[gnu::unavailable]] int foo () { return 0; }	// { dg-message "declared here" }
+};
+
+void
+bar ()
+{
+  B b;
+  b.foo ();					// { dg-warning "'virtual int B::foo\\\(\\\)' is deprecated" }
+  C c;
+  c.foo ();					// { dg-error "'virtual int C::foo\\\(\\\)' is unavailable" }
+}

commit 4088319e7ce98f813988a36f98a18ee30ff7f1d8
Author: Marek Polacek <polacek@redhat.com>
Date:   Tue Sep 3 17:01:48 2024 -0400

    c++: ICE with TTP [PR96097]
    
    We crash when dependent_type_p gets a TEMPLATE_TYPE_PARM outside
    a template.  That happens here because in
    
      template <template <typename T, typename T::type TT> typename X>
      void func() {}
      template <typename U, int I>
      struct Y {};
      void g() { func<Y>(); }
    
    when performing overload resolution for func<Y>() we have to check
    if U matches T and I matches TT.  So we wind up in
    coerce_template_template_parm/PARM_DECL.  TREE_TYPE (arg) is int
    so we try to substitute TT's type, which is T::type.  But we have
    nothing to substitute T with.  And we call make_typename_type where
    ctx is still T, which checks dependent_scope_p and we trip the assert.
    
    It should work to always perform the substitution in a template context.
    If the result still contains template parameters, we cannot say if they
    match.
    
            PR c++/96097
    
    gcc/cp/ChangeLog:
    
            * pt.cc (coerce_template_template_parm): Increment
            processing_template_decl before calling tsubst.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/template/ttp44.C: New test.
    
    (cherry picked from commit 25ac2bb57ae400621050a7e0845994336ca83b99)

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 6695e4ff49f..85228b9f943 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -7933,7 +7933,9 @@ coerce_template_template_parm (tree parm,
 	 i.e. the parameter list of TT depends on earlier parameters.  */
       if (!uses_template_parms (TREE_TYPE (arg)))
 	{
+	  ++processing_template_decl;
 	  tree t = tsubst (TREE_TYPE (parm), outer_args, complain, in_decl);
+	  --processing_template_decl;
 	  if (!uses_template_parms (t)
 	      && !same_type_p (t, TREE_TYPE (arg)))
 	    return 0;
diff --git a/gcc/testsuite/g++.dg/template/ttp44.C b/gcc/testsuite/g++.dg/template/ttp44.C
new file mode 100644
index 00000000000..2a412975243
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/ttp44.C
@@ -0,0 +1,13 @@
+// PR c++/96097
+// { dg-do compile }
+
+template <template <typename T, typename T::type TT> class X>
+void func() {}
+
+template <typename U, int I>
+struct Y {};
+
+void test()
+{
+  func<Y>();
+}

commit 890a26bb95c7db41c99dbb6695a661b6d3675e9d
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Sep 13 00:21:45 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 8dcf10768ee..bc240099074 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240912
+20240913
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c54bdfddd51..b1ef6d1bf3b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,32 @@
+2024-09-12  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-12  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/96097
+	* pt.cc (coerce_template_template_parm): Increment
+	processing_template_decl before calling tsubst.
+
+2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/116636
+	* method.cc: Include decl.h.
+	(use_thunk): Temporarily change deprecated_state to
+	UNAVAILABLE_DEPRECATED_SUPPRESS.
+
+2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-10  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/116449
+	* typeck.cc (get_member_function_from_ptrfunc): Use save_expr
+	on instance_ptr and function even if it doesn't have side-effects,
+	as long as it isn't a decl.
+
 2024-09-08  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a2096eaa0c9..bc0576f02bb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,27 @@
+2024-09-12  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-12  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/96097
+	* g++.dg/template/ttp44.C: New test.
+
+2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/116636
+	* g++.dg/warn/deprecated-19.C: New test.
+
+2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-10  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/116449
+	* g++.dg/ubsan/pr116449.C: New test.
+
 2024-09-08  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 8f4eca39bda..205fd58759a 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,27 @@
+2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR lto/116614
+	* simple-object-elf.c (SHN_COMMON): Align comment with neighbouring
+	comments.
+	(SHN_HIRESERVE): Use uppercase hex digits instead of lowercase for
+	consistency.
+	(simple_object_elf_find_sections): Formatting fixes.
+	(simple_object_elf_fetch_attributes): Likewise.
+	(simple_object_elf_attributes_merge): Likewise.
+	(simple_object_elf_start_write): Likewise.
+	(simple_object_elf_write_ehdr): Likewise.
+	(simple_object_elf_write_shdr): Likewise.
+	(simple_object_elf_write_to_file): Likewise.
+	(simple_object_elf_copy_lto_debug_section): Likewise.  Don't fail for
+	new_i - 1 >= SHN_LORESERVE, instead arrange in that case to copy
+	over .symtab_shndx sections, though emit those last and compute their
+	section content when processing associated .symtab sections.  Handle
+	simple_object_internal_read failure even in the .symtab_shndx reading
+	case.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit 03b4c7599ed9c3056d9f76d89b1b59262107986f
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Sep 14 00:20:48 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index bc240099074..84c2c89a522 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240913
+20240914

commit f79535a8f1b909dba5c9b80db49c91cb33e412fd
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Sep 15 00:20:29 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 84c2c89a522..5cbbe5defc0 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240914
+20240915

commit 3f3f546bf830d019224aaf6cd349a1b9b738de1a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Sep 6 05:24:07 2024 -0700

    x86-64: Don't use temp for argument in a TImode register
    
    Don't use temp for a PARALLEL BLKmode argument of an EXPR_LIST expression
    in a TImode register.  Otherwise, the TImode variable will be put in
    the GPR save area which guarantees only 8-byte alignment.
    
    gcc/
    
            PR target/116621
            * config/i386/i386.cc (ix86_gimplify_va_arg): Don't use temp for
            a PARALLEL BLKmode container of an EXPR_LIST expression in a
            TImode register.
    
    gcc/testsuite/
    
            PR target/116621
            * gcc.target/i386/pr116621.c: New test.
    
    Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
    (cherry picked from commit fa7bbb065c63aa802e0bbb04d605407dad58cf94)

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index feefbe322de..8f1c1f9ccd0 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -4893,13 +4893,31 @@ ix86_gimplify_va_arg (tree valist, tree type, gimple_seq *pre_p,
 
       examine_argument (nat_mode, type, 0, &needed_intregs, &needed_sseregs);
 
-      need_temp = (!REG_P (container)
+      bool container_in_reg = false;
+      if (REG_P (container))
+	container_in_reg = true;
+      else if (GET_CODE (container) == PARALLEL
+	       && GET_MODE (container) == BLKmode
+	       && XVECLEN (container, 0) == 1)
+	{
+	  /* Check if it is a PARALLEL BLKmode container of an EXPR_LIST
+	     expression in a TImode register.  In this case, temp isn't
+	     needed.  Otherwise, the TImode variable will be put in the
+	     GPR save area which guarantees only 8-byte alignment.   */
+	  rtx x = XVECEXP (container, 0, 0);
+	  if (GET_CODE (x) == EXPR_LIST
+	      && REG_P (XEXP (x, 0))
+	      && XEXP (x, 1) == const0_rtx)
+	    container_in_reg = true;
+	}
+
+      need_temp = (!container_in_reg
 		   && ((needed_intregs && TYPE_ALIGN (type) > 64)
 		       || TYPE_ALIGN (type) > 128));
 
       /* In case we are passing structure, verify that it is consecutive block
          on the register save area.  If not we need to do moves.  */
-      if (!need_temp && !REG_P (container))
+      if (!need_temp && !container_in_reg)
 	{
 	  /* Verify that all registers are strictly consecutive  */
 	  if (SSE_REGNO_P (REGNO (XEXP (XVECEXP (container, 0, 0), 0))))
diff --git a/gcc/testsuite/gcc.target/i386/pr116621.c b/gcc/testsuite/gcc.target/i386/pr116621.c
new file mode 100644
index 00000000000..704266458a8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr116621.c
@@ -0,0 +1,43 @@
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+#include <stdarg.h>
+#include <string.h>
+
+union S8302
+{
+  union
+  {
+    double b;
+    int c;
+  } a;
+  long double d;
+  unsigned short int f[5];
+};
+
+union S8302 s8302;
+extern void check8302va (int i, ...);
+
+int
+main (void)
+{
+  memset (&s8302, '\0', sizeof (s8302));
+  s8302.a.b = -221438.250000;
+  check8302va (1, s8302);
+  return 0;
+}
+
+__attribute__((noinline, noclone))
+void
+check8302va (int z, ...)
+{
+  union S8302 arg, *p;
+  va_list ap;
+
+  __builtin_va_start (ap, z);
+  p = &s8302;
+  arg = __builtin_va_arg (ap, union S8302);
+  if (p->a.b != arg.a.b)
+    __builtin_abort ();
+  __builtin_va_end (ap);
+}

commit 122794cb52223adb86c8c64d0dd36cd335b5ec32
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Sep 16 00:21:15 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a8749a23960..4acf17e3bc6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2024-09-15  H.J. Lu  <hjl.tools@gmail.com>
+
+	Backported from master:
+	2024-09-08  H.J. Lu  <hjl.tools@gmail.com>
+
+	PR target/116621
+	* config/i386/i386.cc (ix86_gimplify_va_arg): Don't use temp for
+	a PARALLEL BLKmode container of an EXPR_LIST expression in a
+	TImode register.
+
 2024-09-09  Haochen Jiang  <haochen.jiang@intel.com>
 
 	PR target/116617
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 5cbbe5defc0..657376e5779 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240915
+20240916
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bc0576f02bb..1345557071a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-09-15  H.J. Lu  <hjl.tools@gmail.com>
+
+	Backported from master:
+	2024-09-08  H.J. Lu  <hjl.tools@gmail.com>
+
+	PR target/116621
+	* gcc.target/i386/pr116621.c: New test.
+
 2024-09-12  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:

commit bee69e5306bfc8ffae9b12584ddcd3a4de4ef8a4
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Sep 17 00:21:27 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 657376e5779..9fc61c92b8c 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240916
+20240917

commit f1dc18250d82cd123fcf9aef0a95608e4ec63d58
Author: Marek Polacek <polacek@redhat.com>
Date:   Mon Sep 16 16:42:38 2024 -0400

    c++: crash with anon VAR_DECL [PR116676]
    
    r12-3495 added maybe_warn_about_constant_value which will crash if
    it gets a nameless VAR_DECL, which is what happens in this PR.
    
    We created this VAR_DECL in cp_parser_decomposition_declaration.
    
            PR c++/116676
    
    gcc/cp/ChangeLog:
    
            * constexpr.cc (maybe_warn_about_constant_value): Check DECL_NAME.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp1z/constexpr-116676.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit dfe0d4389a3ce43179563a63046ad3e74d615a08)

diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc
index 9b36f7628f3..853694d78a5 100644
--- a/gcc/cp/constexpr.cc
+++ b/gcc/cp/constexpr.cc
@@ -7225,6 +7225,7 @@ maybe_warn_about_constant_value (location_t loc, tree decl)
       && warn_interference_size
       && !OPTION_SET_P (param_destruct_interfere_size)
       && DECL_CONTEXT (decl) == std_node
+      && DECL_NAME (decl)
       && id_equal (DECL_NAME (decl), "hardware_destructive_interference_size")
       && (LOCATION_FILE (input_location) != main_input_filename
 	  || module_exporting_p ())
diff --git a/gcc/testsuite/g++.dg/cpp1z/constexpr-116676.C b/gcc/testsuite/g++.dg/cpp1z/constexpr-116676.C
new file mode 100644
index 00000000000..1cb65f10a1d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/constexpr-116676.C
@@ -0,0 +1,57 @@
+// PR c++/116676
+// { dg-do compile { target c++17 } }
+
+namespace std {
+typedef __SIZE_TYPE__ size_t;
+
+  template<typename _Tp>
+    struct remove_reference
+    { typedef _Tp type; };
+
+  template<typename _Tp>
+    struct remove_reference<_Tp&>
+    { typedef _Tp type; };
+
+  template<typename _Tp>
+    struct remove_reference<_Tp&&>
+    { typedef _Tp type; };
+
+template <typename _Tp>
+constexpr typename std::remove_reference<_Tp>::type &&
+move(_Tp &&__t) noexcept {
+  return static_cast<typename std::remove_reference<_Tp>::type &&>(__t);
+}
+template <typename _Tp> struct tuple_size;
+template <size_t __i, typename _Tp> struct tuple_element;
+template <typename _U1, typename _U2> class __pair_base {};
+template <typename _T1, typename _T2>
+struct pair {
+  _T1 first;
+  _T2 second;
+  template <typename _U1 = _T1, typename _U2 = _T2>
+  explicit constexpr pair(const _T1 &__a, const _T2 &__b)
+      : first(__a), second(__b) {}
+};
+template <class _Tp1, class _Tp2>
+struct tuple_size<pair<_Tp1, _Tp2>>
+{
+static constexpr size_t value = 2;
+};
+template <class _Tp1, class _Tp2>
+struct tuple_element<0, pair<_Tp1, _Tp2>> {
+  typedef _Tp1 type;
+};
+template <class _Tp1, class _Tp2>
+struct tuple_element<1, pair<_Tp1, _Tp2>> {
+  typedef _Tp2 type;
+};
+
+template <size_t _Int, class _Tp1, class _Tp2>
+constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type &
+get(pair<_Tp1, _Tp2> &&__in) noexcept {
+  return (std::move(__in).first);
+}
+int t;
+auto [a, b] = std::pair<int&, int>{t, 1};
+}
+

commit 0043ac20598e1b9a20d0845927b2800577d98bc3
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Sep 18 00:22:28 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 9fc61c92b8c..6d5458fa160 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240917
+20240918
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index b1ef6d1bf3b..b2e61deeb1a 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,11 @@
+2024-09-17  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-17  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116676
+	* constexpr.cc (maybe_warn_about_constant_value): Check DECL_NAME.
+
 2024-09-12  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1345557071a..0077c58998b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-09-17  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-17  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116676
+	* g++.dg/cpp1z/constexpr-116676.C: New test.
+
 2024-09-15  H.J. Lu  <hjl.tools@gmail.com>
 
 	Backported from master:

commit 98dc0471d5409701ae700cd7aba8716fdc500401
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Jul 18 13:35:33 2024 +0200

    middle-end/115641 - invalid address construction
    
    fold_truth_andor_1 via make_bit_field_ref builds an address of
    a CALL_EXPR which isn't valid GENERIC and later causes an ICE.
    The following simply avoids the folding for f ().a != 1 || f ().b != 2
    as it is a premature optimization anyway.  The alternative would
    have been to build a TARGET_EXPR around the call.  To get this far
    f () has to be const as otherwise the two calls are not semantically
    equivalent for the optimization.
    
            PR middle-end/115641
            * fold-const.cc (decode_field_reference): If the inner
            reference isn't something we can take the address of, fail.
    
            * gcc.dg/torture/pr115641.c: New testcase.
    
    (cherry picked from commit 3670c70c561656a19f6bff36dd229f18120af127)

diff --git a/gcc/fold-const.cc b/gcc/fold-const.cc
index f496b3436df..644a3945689 100644
--- a/gcc/fold-const.cc
+++ b/gcc/fold-const.cc
@@ -4992,6 +4992,9 @@ decode_field_reference (location_t loc, tree *exp_, HOST_WIDE_INT *pbitsize,
       || *pbitsize < 0
       || offset != 0
       || TREE_CODE (inner) == PLACEHOLDER_EXPR
+      /* We eventually want to build a larger reference and need to take
+	 the address of this.  */
+      || (!REFERENCE_CLASS_P (inner) && !DECL_P (inner))
       /* Reject out-of-bound accesses (PR79731).  */
       || (! AGGREGATE_TYPE_P (TREE_TYPE (inner))
 	  && compare_tree_int (TYPE_SIZE (TREE_TYPE (inner)),
diff --git a/gcc/testsuite/gcc.dg/torture/pr115641.c b/gcc/testsuite/gcc.dg/torture/pr115641.c
new file mode 100644
index 00000000000..65fb09ca64f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr115641.c
@@ -0,0 +1,29 @@
+/* { dg-do run } */
+
+typedef struct {
+  char hours, day, month;
+  short year;
+} T;
+
+T g (void)
+{
+  T now;
+  now.hours = 1;
+  now.day = 2;
+  now.month = 3;
+  now.year = 4;
+  return now;
+}
+
+__attribute__((const)) T f (void)
+{
+  T virk = g ();
+  return virk;
+}
+
+int main ()
+{
+  if (f ().hours != 1 || f ().day != 2 || f ().month != 3 || f ().year != 4)
+    __builtin_abort ();
+  return 0;
+}

commit 05db1bea8c1d61d8d9cdb8ede5e305766869d136
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Aug 7 13:54:53 2024 +0200

    tree-optimization/116258 - do not lower PAREN_EXPR of vectors
    
    The following avoids lowering of PAREN_EXPR of vectors as unsupported
    to scalars.  Instead PAREN_EXPR is like a plain move or a VIEW_CONVERT.
    
            PR tree-optimization/116258
            * tree-vect-generic.cc (expand_vector_operations_1): Do not
            lower PAREN_EXPR.
    
            * gcc.target/i386/pr116258.c: New testcase.
    
    (cherry picked from commit 5b999997d1a2102dca57918947d7e40a6ca68871)

diff --git a/gcc/testsuite/gcc.target/i386/pr116258.c b/gcc/testsuite/gcc.target/i386/pr116258.c
new file mode 100644
index 00000000000..bd7d3a97b2c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr116258.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -msse2" } */
+
+#define vect16 __attribute__((vector_size(16)))
+#define h(a) __builtin_assoc_barrier((a))
+
+ vect16 float  f( vect16 float  x, vect16 float vconstants0)
+{
+  vect16 float  t = (x * (vconstants0[0]));
+  return (x + h(t));
+}
+
+/* { dg-final { scan-assembler-times "shufps" 1 } } */
+/* { dg-final { scan-assembler-not "unpck" } } */
diff --git a/gcc/tree-vect-generic.cc b/gcc/tree-vect-generic.cc
index ab640096ca2..86d273923bb 100644
--- a/gcc/tree-vect-generic.cc
+++ b/gcc/tree-vect-generic.cc
@@ -2190,10 +2190,15 @@ expand_vector_operations_1 (gimple_stmt_iterator *gsi,
 	}
     }
 
+  /* Plain moves do not need lowering.  */
+  if (code == SSA_NAME
+      || code == VIEW_CONVERT_EXPR
+      || code == PAREN_EXPR)
+    return;
+
   if (CONVERT_EXPR_CODE_P (code)
       || code == FLOAT_EXPR
-      || code == FIX_TRUNC_EXPR
-      || code == VIEW_CONVERT_EXPR)
+      || code == FIX_TRUNC_EXPR)
     return;
 
   /* The signedness is determined from input argument.  */

commit 198b13e248e7adfea2d28c4e66ac9f5006b8f825
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Aug 8 09:35:42 2024 +0200

    tree-optimization/116258 - fix i386 testcase
    
    With -march=cascadelake we use vpermilps instead of shufps.
    
            PR tree-optimization/116258
            * gcc.target/i386/pr116258.c: Also allow vpermilps.
    
    (cherry picked from commit 5aa4cd913e48cfce3ca0ab58cf6f80f55dbb0f58)

diff --git a/gcc/testsuite/gcc.target/i386/pr116258.c b/gcc/testsuite/gcc.target/i386/pr116258.c
index bd7d3a97b2c..cb67e4085c5 100644
--- a/gcc/testsuite/gcc.target/i386/pr116258.c
+++ b/gcc/testsuite/gcc.target/i386/pr116258.c
@@ -10,5 +10,5 @@
   return (x + h(t));
 }
 
-/* { dg-final { scan-assembler-times "shufps" 1 } } */
+/* { dg-final { scan-assembler-times "shufps|permilps" 1 } } */
 /* { dg-final { scan-assembler-not "unpck" } } */

commit 090926ba817bee6de7ee210efeea5d43d5335868
Author: Andrew Pinski <quic_apinski@quicinc.com>
Date:   Wed Aug 7 09:36:38 2024 -0700

    aarch64/testsuite: Add testcases for recently fixed PRs
    
    The commit for PR 116258, added a x86_64 specific testcase,
    I thought it would be a good idea to add an aarch64 testcase too.
    And since it also fixed VLA vectors too so add a SVE testcase.
    
    Pushed as obvious after a test for aarch64-linux-gnu.
    
            PR middle-end/116258
            PR middle-end/116259
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/aarch64/pr116258.c: New test.
            * gcc.target/aarch64/sve/pr116259-1.c: New test.
    
    Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
    (cherry picked from commit 2c6174402ea315ecf618cfcba741e8cb18bc5282)

diff --git a/gcc/testsuite/gcc.target/aarch64/pr116258.c b/gcc/testsuite/gcc.target/aarch64/pr116258.c
new file mode 100644
index 00000000000..e727ad4b72a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/pr116258.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+#pragma GCC target "+nosve"
+
+#define vect16 __attribute__((vector_size(16)))
+#define h(a) __builtin_assoc_barrier((a))
+
+ vect16 float  f( vect16 float  x, vect16 float vconstants0)
+{
+  vect16 float  t = (x * (vconstants0[0]));
+  return (x + h(t));
+}
+
+/* { dg-final { scan-assembler-times "\\\[0\\\]" 1 } } */
+/* { dg-final { scan-assembler-not "dup\t" } } */
+/* { dg-final { scan-assembler-not "ins\t" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pr116259-1.c b/gcc/testsuite/gcc.target/aarch64/sve/pr116259-1.c
new file mode 100644
index 00000000000..bb2eed4728c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pr116259-1.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* PR middle-end/116259 */
+
+#include <arm_sve.h>
+
+/* PAREN_EXPR lowering for VLA vectors was ICEing.
+   It should not be lowered in a similar way as moves
+   are not lowered.  */
+svfloat64_t f(svfloat64_t x)
+{
+  return __builtin_assoc_barrier(x);
+}

commit d5d4f3bae5a9478dc2189e53da933175a6d7b197
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Aug 8 11:36:43 2024 +0200

    tree-optimization/116274 - overzealous SLP vectorization
    
    The following tries to address that the vectorizer fails to have
    precise knowledge of argument and return calling conventions and
    views some accesses as loads and stores that are not.
    This is mainly important when doing basic-block vectorization as
    otherwise loop indexing would force such arguments to memory.
    
    On x86 the reduction in the number of apparent loads and stores
    often dominates cost analysis so the following tries to mitigate
    this aggressively by adjusting only the scalar load and store
    cost, reducing them to the cost of a simple scalar statement,
    but not touching the vector access cost which would be much
    harder to estimate.  Thereby we error on the side of not performing
    basic-block vectorization.
    
            PR tree-optimization/116274
            * tree-vect-slp.cc (vect_bb_slp_scalar_cost): Cost scalar loads
            and stores as simple scalar stmts when they access a non-global,
            not address-taken variable that doesn't have BLKmode assigned.
    
            * gcc.target/i386/pr116274-2.c: New testcase.
    
    (cherry picked from commit b8ea13ebf1211714503fd72f25c04376483bfa53)

diff --git a/gcc/testsuite/gcc.target/i386/pr116274-2.c b/gcc/testsuite/gcc.target/i386/pr116274-2.c
new file mode 100644
index 00000000000..d5811344b93
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr116274-2.c
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-slp2-optimized" } */
+
+struct a { long x,y; };
+long test(struct a a) { return a.x+a.y; }
+
+/* { dg-final { scan-tree-dump-not "basic block part vectorized" "slp2" } } */
+/* { dg-final { scan-assembler-times "addl|leaq" 1 } } */
+/* { dg-final { scan-assembler-not "padd" } } */
diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc
index 0795605ec52..d0635b7a146 100644
--- a/gcc/tree-vect-slp.cc
+++ b/gcc/tree-vect-slp.cc
@@ -7102,7 +7102,17 @@ next_lane:
       vect_cost_for_stmt kind;
       if (STMT_VINFO_DATA_REF (orig_stmt_info))
 	{
-	  if (DR_IS_READ (STMT_VINFO_DATA_REF (orig_stmt_info)))
+	  data_reference_p dr = STMT_VINFO_DATA_REF (orig_stmt_info);
+	  tree base = get_base_address (DR_REF (dr));
+	  /* When the scalar access is to a non-global not address-taken
+	     decl that is not BLKmode assume we can access it with a single
+	     non-load/store instruction.  */
+	  if (DECL_P (base)
+	      && !is_global_var (base)
+	      && !TREE_ADDRESSABLE (base)
+	      && DECL_MODE (base) != BLKmode)
+	    kind = scalar_stmt;
+	  else if (DR_IS_READ (STMT_VINFO_DATA_REF (orig_stmt_info)))
 	    kind = scalar_load;
 	  else
 	    kind = scalar_store;

commit 8f8a7e1f1904e389e736c0265b4f515f3ce13659
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Aug 21 13:56:40 2024 +0200

    tree-optimization/116380 - bogus SSA update with loop distribution
    
    When updating LC PHIs after copying loops we have to handle defs
    defined outside of the loop appropriately (by not setting them to
    NULL ...).  This mimics how we handle this in the SSA updating
    code of the vectorizer.
    
            PR tree-optimization/116380
            * tree-loop-distribution.cc (copy_loop_before): Handle
            out-of-loop defs appropriately.
    
            * gcc.dg/torture/pr116380.c: New testcase.
    
    (cherry picked from commit af0d2d95a5f767d92bd64f959679fb4612247b0b)

diff --git a/gcc/testsuite/gcc.dg/torture/pr116380.c b/gcc/testsuite/gcc.dg/torture/pr116380.c
new file mode 100644
index 00000000000..5ffd99459d2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr116380.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-fno-tree-scev-cprop" } */
+
+int a[3], d[3], c;
+int f(int e, int b)
+{
+  for (; e < 3; e++)
+    {
+      a[0] = 0;
+      if (b)
+	c = b;
+      d[e] = 0;
+      a[e] = 0;
+    }
+  return e;
+}
diff --git a/gcc/tree-loop-distribution.cc b/gcc/tree-loop-distribution.cc
index c5a05ee151d..cb804ba48ff 100644
--- a/gcc/tree-loop-distribution.cc
+++ b/gcc/tree-loop-distribution.cc
@@ -980,6 +980,9 @@ copy_loop_before (class loop *loop, bool redirect_lc_phi_defs)
 	  if (TREE_CODE (USE_FROM_PTR (use_p)) == SSA_NAME)
 	    {
 	      tree new_def = get_current_def (USE_FROM_PTR (use_p));
+	      if (!new_def)
+		/* Something defined outside of the loop.  */
+		continue;
 	      SET_USE (use_p, new_def);
 	    }
 	}

commit 12c00048d9f3598e57b98ec7723f7356bd255d04
Author: Andrew Pinski <quic_apinski@quicinc.com>
Date:   Wed Aug 21 17:41:38 2024 -0700

    fold: Fix `a * 1j` if a has side effects [PR116454]
    
    The problem here was a missing save_expr around arg0 since
    it is used twice, once in REALPART_EXPR and once in IMAGPART_EXPR.
    Thia adds the save_expr and reformats the code slightly so it is a
    little easier to understand.  It excludes the case when arg0 is
    a COMPLEX_EXPR since in that case we'll end up with the distinct
    real and imaginary parts.  This is important to retain early
    optimization in some testcases.
    
    Bootstapped and tested on x86_64-linux-gnu with no regressions.
    
            PR middle-end/116454
    
    gcc/ChangeLog:
    
            * fold-const.cc (fold_binary_loc): Fix `a * +-1i`
            by wrapping arg0 with save_expr when it is not COMPLEX_EXPR.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/torture/pr116454-1.c: New test.
            * gcc.dg/torture/pr116454-2.c: New test.
    
    Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
    Co-Authored-By: Richard Biener  <rguenther@suse.de>
    (cherry picked from commit b07f8a301158e53717b8688cc8ea430b6f02574c)

diff --git a/gcc/fold-const.cc b/gcc/fold-const.cc
index 644a3945689..869f6363560 100644
--- a/gcc/fold-const.cc
+++ b/gcc/fold-const.cc
@@ -12081,17 +12081,29 @@ fold_binary_loc (location_t loc, enum tree_code code, tree type,
 	    {
 	      tree rtype = TREE_TYPE (TREE_TYPE (arg0));
 	      if (real_onep (TREE_IMAGPART (arg1)))
-		return
-		  fold_build2_loc (loc, COMPLEX_EXPR, type,
-			       negate_expr (fold_build1_loc (loc, IMAGPART_EXPR,
-							     rtype, arg0)),
-			       fold_build1_loc (loc, REALPART_EXPR, rtype, arg0));
+		{
+		  if (TREE_CODE (arg0) != COMPLEX_EXPR)
+		    arg0 = save_expr (arg0);
+		  tree iarg0 = fold_build1_loc (loc, IMAGPART_EXPR,
+						rtype, arg0);
+		  tree rarg0 = fold_build1_loc (loc, REALPART_EXPR,
+						rtype, arg0);
+		  return fold_build2_loc (loc, COMPLEX_EXPR, type,
+					  negate_expr (iarg0),
+					  rarg0);
+		}
 	      else if (real_minus_onep (TREE_IMAGPART (arg1)))
-		return
-		  fold_build2_loc (loc, COMPLEX_EXPR, type,
-			       fold_build1_loc (loc, IMAGPART_EXPR, rtype, arg0),
-			       negate_expr (fold_build1_loc (loc, REALPART_EXPR,
-							     rtype, arg0)));
+		{
+		  if (TREE_CODE (arg0) != COMPLEX_EXPR)
+		    arg0 = save_expr (arg0);
+		  tree iarg0 = fold_build1_loc (loc, IMAGPART_EXPR,
+						rtype, arg0);
+		  tree rarg0 = fold_build1_loc (loc, REALPART_EXPR,
+						rtype, arg0);
+		  return fold_build2_loc (loc, COMPLEX_EXPR, type,
+					  iarg0,
+					  negate_expr (rarg0));
+		}
 	    }
 
 	  /* Optimize z * conj(z) for floating point complex numbers.
diff --git a/gcc/testsuite/gcc.dg/torture/pr116454-1.c b/gcc/testsuite/gcc.dg/torture/pr116454-1.c
new file mode 100644
index 00000000000..6210dcce4a4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr116454-1.c
@@ -0,0 +1,16 @@
+/* { dg-do run } */
+/* { dg-additional-options "-ffast-math" } */
+
+static int t = 0;
+_Complex float f()
+{
+        t++;
+        return 0;
+}
+int main() {
+	t = 0;
+	/* Would cause f() to be incorrectly invoked twice. */
+	f() * 1j;
+	if (t != 1)
+          __builtin_abort();
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr116454-2.c b/gcc/testsuite/gcc.dg/torture/pr116454-2.c
new file mode 100644
index 00000000000..a1e1604e616
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr116454-2.c
@@ -0,0 +1,12 @@
+/* { dg-do run } */
+/* { dg-additional-options "-ffast-math" } */
+_Complex float arr[2];
+
+int main() {
+  _Complex float *ptr;
+  ptr = arr;
+  *++ptr * 1j; 
+  /* ptr should only increment once, not twice. */
+  if (ptr != arr + 1)
+    __builtin_abort ();
+}

commit cacc976a71027e7da8e3438b60da76ecdf990d38
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Sep 5 11:18:57 2024 +0200

    tree-optimization/116610 - wrong SLP induction bias for mask peeling
    
    The following fixes a mistake when applying the bias for peeling via
    masking to the inital value of SLP inductions.
    
    This resolves gcc.target/aarch64/sve/peel_ind_1.c (a scan-assembler
    only unfortunately) when forcing single-lane SLP for it.
    
            PR tree-optimization/116610
            * tree-vect-loop.cc (vectorizable_induction): Use MINUS_EXPR
            to apply a mask peeling adjustment.
    
    (cherry picked from commit 6a1a856ba78589f7f5285b00ecd40ba2bbeef8b0)

diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index acc6b75fb17..dcd61292caf 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -10228,7 +10228,7 @@ vectorizable_induction (loop_vec_info loop_vinfo,
 	  vec_steps.safe_push (vec_step);
 	  tree step_mul = gimple_build_vector (&init_stmts, &mul_elts);
 	  if (peel_mul)
-	    step_mul = gimple_build (&init_stmts, PLUS_EXPR, step_vectype,
+	    step_mul = gimple_build (&init_stmts, MINUS_EXPR, step_vectype,
 				     step_mul, peel_mul);
 	  if (!init_node)
 	    vec_init = gimple_build_vector (&init_stmts, &init_elts);

commit 5b264a4b95b8f27c3c73892892d5c2030d3c8ea7
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Jun 11 13:11:08 2024 +0200

    middle-end/115426 - wrong gimplification of "rm" asm output operand
    
    When the operand is gimplified to an extract of a register or a
    register we have to disallow memory as we otherwise fail to
    gimplify it properly.  Instead of
    
      __asm__("" : "=rm" __imag <r>);
    
    we want
    
      __asm__("" : "=rm" D.2772);
      _1 = REALPART_EXPR <r>;
      r = COMPLEX_EXPR <_1, D.2772>;
    
    otherwise SSA rewrite will fail and generate wrong code with 'r'
    left bare in the asm output.
    
            PR middle-end/115426
            * gimplify.cc (gimplify_asm_expr): Handle "rm" output
            constraint gimplified to a register (operation).
    
            * gcc.dg/pr115426.c: New testcase.
    
    (cherry picked from commit a4bbdec2be1c9f8fb49276b8a54ee86024ceac17)

diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc
index 5753eb90ff5..401b663591f 100644
--- a/gcc/gimplify.cc
+++ b/gcc/gimplify.cc
@@ -7035,6 +7035,14 @@ gimplify_asm_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
 	  ret = tret;
 	}
 
+      /* If the gimplified operand is a register we do not allow memory.  */
+      if (allows_reg
+	  && allows_mem
+	  && (is_gimple_reg (TREE_VALUE (link))
+	      || (handled_component_p (TREE_VALUE (link))
+		  && is_gimple_reg (TREE_OPERAND (TREE_VALUE (link), 0)))))
+	allows_mem = 0;
+
       /* If the constraint does not allow memory make sure we gimplify
          it to a register if it is not already but its base is.  This
 	 happens for complex and vector components.  */
diff --git a/gcc/testsuite/gcc.dg/pr115426.c b/gcc/testsuite/gcc.dg/pr115426.c
new file mode 100644
index 00000000000..02bfc3f21fa
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr115426.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-std=gnu11" } */
+
+_Complex int fcs (_Complex int r)
+{
+  __asm__("" : "=rm" (__imag__ r));
+  return r;
+}
+
+_Complex int fcs2 (_Complex int r)
+{
+  __asm__("" : "=m" (__imag__ r));
+  return r;
+}

commit a308afb455d648d54430355cb07345a338501348
Author: Joern Rennecke <joern.rennecke@riscy-ip.com>
Date:   Wed Aug 7 02:48:45 2024 +0100

    Fix vect/pr115278.cc for targets where uint32_t is distinct from unsigned.
    
    gcc/testsuite/
            * g++.dg/vect/pr115278.cc: Make cast's type agree with
            assignment destination WRITE.
    
    (cherry picked from commit b844775283a620b8826adf734ecfc97d820c3611)

diff --git a/gcc/testsuite/g++.dg/vect/pr115278.cc b/gcc/testsuite/g++.dg/vect/pr115278.cc
index 331075fb278..df521e43a97 100644
--- a/gcc/testsuite/g++.dg/vect/pr115278.cc
+++ b/gcc/testsuite/g++.dg/vect/pr115278.cc
@@ -21,7 +21,7 @@ union BitfieldStructUnion {
         BitfieldStructUnion(uint32_t value_low, uint32_t value_high) : value_low(value_low), value_high(value_high) {}
 };
 
-volatile uint32_t *WRITE = (volatile unsigned*)0x42;
+volatile uint32_t *WRITE = (volatile uint32_t *)0x42;
 
 void buggy() {
         for (int i = 0; i < runs; i++) {

commit bdc5937df68a197032e800fc27361037d016cbf1
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Aug 26 13:50:00 2024 +0200

    tree-optimization/116460 - ICE with DCE in forwprop
    
    The following avoids removing stmts with defs that might still have
    uses in the IL before calling simple_dce_from_worklist which might
    remove those as that will wreck debug stmt generation.  Instead first
    perform use-based DCE and then remove stmts which may have uses in
    code that CFG cleanup will remove.  This requires tracking stmts
    in to_remove by their SSA def so we can check whether it was removed
    before without running into the issue that PHIs can be ggc_free()d
    upon removal.  So this adds to_remove_defs in addition to to_remove
    which has to stay to track GIMPLE_NOPs we want to elide.
    
            PR tree-optimization/116460
            * tree-ssa-forwprop.cc (pass_forwprop::execute): First do
            simple_dce_from_worklist and then remove stmts in to_remove.
            Track defs to be removed in to_remove_defs.
    
            * g++.dg/torture/pr116460.C: New testcase.
    
    (cherry picked from commit 172637cf0d9b7b2798f83b9c5f9598b449675cb0)

diff --git a/gcc/testsuite/g++.dg/torture/pr116460.C b/gcc/testsuite/g++.dg/torture/pr116460.C
new file mode 100644
index 00000000000..3c7d6372fba
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr116460.C
@@ -0,0 +1,609 @@
+// { dg-do compile }
+// { dg-additional-options "-g" }
+
+namespace std {
+typedef __SIZE_TYPE__ size_t;
+typedef __PTRDIFF_TYPE__ ptrdiff_t;
+void __throw_length_error(const char *) __attribute__((__noreturn__, __cold__));
+}
+extern "C++" {
+namespace std __attribute__((__visibility__("default"))) {
+  template <typename _Tp> struct __is_integer {
+    enum { __value = 1 };
+  };
+  template <typename _Tp> struct __is_nonvolatile_trivially_copyable {
+    enum { __value = __is_trivially_copyable(_Tp) };
+  };
+  template <typename _OutputIter, typename _InputIter> struct __memcpyable {};
+  template <typename _Tp>
+  struct __memcpyable<_Tp *, _Tp *> : __is_nonvolatile_trivially_copyable<_Tp> {
+  };
+  template <typename _Tp>
+  struct __memcpyable<_Tp *, const _Tp *>
+      : __is_nonvolatile_trivially_copyable<_Tp> {};
+  template <typename _Tp> struct __is_move_iterator {
+    enum { __value = 0 };
+  };
+  template <typename _Iterator> inline _Iterator __miter_base(_Iterator __it) {
+    return __it;
+  }
+} // namespace )
+}
+namespace __gnu_cxx __attribute__((__visibility__("default"))) {
+  template <typename _Tp>
+  struct __is_integer_nonstrict : public std::__is_integer<_Tp> {
+    using std::__is_integer<_Tp>::__value;
+    enum { __width = __value ? sizeof(_Tp) * 8 : 0 };
+  };
+  template <typename _Value> struct __numeric_traits_integer {
+    static const bool __is_signed = (_Value)(-1) < 0;
+    static const int __digits =
+        __is_integer_nonstrict<_Value>::__width - __is_signed;
+    static const _Value __max =
+        __is_signed ? (((((_Value)1 << (__digits - 1)) - 1) << 1) + 1)
+                    : ~(_Value)0;
+  };
+  template <typename _Value>
+  struct __numeric_traits : public __numeric_traits_integer<_Value> {};
+} // namespace )
+namespace std __attribute__((__visibility__("default"))) {
+  template <typename _Tp, _Tp __v> struct integral_constant {
+    static constexpr _Tp value = __v;
+    using type = integral_constant<_Tp, __v>;
+  };
+  template <bool __v> using __bool_constant = integral_constant<bool, __v>;
+  using true_type = __bool_constant<true>;
+  using false_type = __bool_constant<false>;
+  template <bool, typename _Tp = void> struct enable_if {};
+  template <typename _Tp> struct enable_if<true, _Tp> { using type = _Tp; };
+  template <bool _Cond, typename _Tp = void>
+  using __enable_if_t = typename enable_if<_Cond, _Tp>::type;
+  template <bool> struct __conditional {
+    template <typename _Tp, typename> using type = _Tp;
+  };
+  template <bool _Cond, typename _If, typename _Else>
+  using __conditional_t =
+      typename __conditional<_Cond>::template type<_If, _Else>;
+  namespace __detail {
+  template <typename... _Bn> auto __and_fn(...) -> false_type;
+  }
+  template <typename... _Bn>
+  struct __and_ : decltype(__detail::__and_fn<_Bn...>(0)) {};
+  template <typename _Pp> struct __not_ : __bool_constant<!bool(_Pp::value)> {};
+  template <typename...> using __void_t = void;
+  template <typename _Tp>
+  struct is_trivial : public __bool_constant<__is_trivial(_Tp)> {};
+  template <typename _Tp, typename _Up = _Tp &&> _Up __declval(int);
+  template <typename _Tp> auto declval() noexcept->decltype(__declval<_Tp>(0));
+  template <typename _Tp, typename... _Args>
+  using __is_constructible_impl =
+      __bool_constant<__is_constructible(_Tp, _Args...)>;
+  template <typename _Tp, typename = void>
+  struct __add_lvalue_reference_helper {
+    using type = _Tp &;
+  };
+  template <typename _Tp>
+  using __add_lval_ref_t = typename __add_lvalue_reference_helper<_Tp>::type;
+  template <typename _Tp>
+  struct is_copy_constructible
+      : public __is_constructible_impl<_Tp, __add_lval_ref_t<const _Tp>> {};
+  template <typename _Tp, typename = void>
+  struct __add_rvalue_reference_helper {
+    using type = _Tp;
+  };
+  template <typename _Tp>
+  using __add_rval_ref_t = typename __add_rvalue_reference_helper<_Tp>::type;
+  template <typename _Tp>
+  struct is_move_constructible
+      : public __is_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> {};
+  template <typename _Tp, typename... _Args>
+  using __is_nothrow_constructible_impl =
+      __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>;
+  template <typename _Tp>
+  struct is_nothrow_default_constructible
+      : public __is_nothrow_constructible_impl<_Tp> {};
+  template <typename _Tp>
+  struct is_nothrow_copy_constructible
+      : public __is_nothrow_constructible_impl<_Tp,
+                                               __add_lval_ref_t<const _Tp>> {};
+  template <typename _Tp>
+  struct is_nothrow_move_constructible
+      : public __is_nothrow_constructible_impl<_Tp, __add_rval_ref_t<_Tp>> {};
+  template <typename _Tp> struct remove_reference {
+    using type = __remove_reference(_Tp);
+  };
+  template <typename _Tp>
+  [[__nodiscard__]] constexpr _Tp &&forward(
+      typename std::remove_reference<_Tp>::type & __t) noexcept {
+    return static_cast<_Tp &&>(__t);
+  }
+  template <typename _Tp>
+  [[__nodiscard__]] constexpr typename std::remove_reference<_Tp>::type &&move(
+      _Tp && __t) noexcept {
+    return static_cast<typename std::remove_reference<_Tp>::type &&>(__t);
+  }
+  template <typename _Tp>
+  struct __move_if_noexcept_cond
+      : public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
+                      is_copy_constructible<_Tp>>::type {};
+  struct input_iterator_tag {};
+  struct forward_iterator_tag : public input_iterator_tag {};
+  struct bidirectional_iterator_tag : public forward_iterator_tag {};
+  struct random_access_iterator_tag : public bidirectional_iterator_tag {};
+  template <typename _Iterator, typename = __void_t<>>
+  struct __iterator_traits {
+    typedef typename _Iterator::value_type value_type;
+  };
+  template <typename _Iterator>
+  struct iterator_traits : public __iterator_traits<_Iterator> {};
+  template <typename _Tp> struct iterator_traits<_Tp *> {
+    typedef random_access_iterator_tag iterator_category;
+    typedef _Tp value_type;
+    typedef ptrdiff_t difference_type;
+    typedef _Tp &reference;
+  };
+  template <typename _Iter>
+  typename iterator_traits<_Iter>::iterator_category __iterator_category(
+      const _Iter &) {
+    return typename iterator_traits<_Iter>::iterator_category();
+  }
+  template <typename _RandomAccessIterator>
+  typename iterator_traits<_RandomAccessIterator>::difference_type __distance(
+      _RandomAccessIterator __first, _RandomAccessIterator __last,
+      random_access_iterator_tag) {
+    return __last - __first;
+  }
+  template <typename _InputIterator>
+  typename iterator_traits<_InputIterator>::difference_type distance(
+      _InputIterator __first, _InputIterator __last) {
+    return std::__distance(__first, __last, std::__iterator_category(__first));
+  }
+} // namespace )
+namespace __gnu_cxx __attribute__((__visibility__("default"))) {
+  template <typename _Iterator, typename _Container> class __normal_iterator {
+    _Iterator _M_current;
+    typedef std::iterator_traits<_Iterator> __traits_type;
+  public:
+    typedef typename __traits_type::value_type value_type;
+    typedef typename __traits_type::difference_type difference_type;
+    typedef typename __traits_type::reference reference;
+    explicit __normal_iterator(const _Iterator &__i) noexcept
+        : _M_current(__i) {}
+    reference operator*() const noexcept { return *_M_current; }
+    __normal_iterator &operator++() noexcept {
+      ++_M_current;
+      return *this;
+    }
+    __normal_iterator &operator--() noexcept {
+      --_M_current;
+      return *this;
+    }
+    __normal_iterator operator+(difference_type __n) const noexcept {
+      return __normal_iterator(_M_current + __n);
+    }
+    __normal_iterator operator-(difference_type __n) const noexcept {
+      return __normal_iterator(_M_current - __n);
+    }
+    const _Iterator &base() const noexcept { return _M_current; }
+  };
+  template <typename _IteratorL, typename _IteratorR, typename _Container>
+  [[__nodiscard__]] inline bool operator!=(
+      const __normal_iterator<_IteratorL, _Container> &__lhs,
+      const __normal_iterator<_IteratorR, _Container> &__rhs) noexcept {
+    return __lhs.base() != __rhs.base();
+  }
+  template <typename _Iterator, typename _Container>
+  typename __normal_iterator<_Iterator, _Container>::difference_type operator-(
+      const __normal_iterator<_Iterator, _Container> &__lhs,
+      const __normal_iterator<_Iterator, _Container> &__rhs) noexcept {
+    return __lhs.base() - __rhs.base();
+  }
+} // namespace )
+namespace std __attribute__((__visibility__("default"))) {
+} // namespace )
+namespace __gnu_cxx {
+namespace __ops {
+template <typename _Compare> struct _Iter_comp_iter {
+  _Compare _M_comp;
+  explicit constexpr _Iter_comp_iter(_Compare __comp)
+      : _M_comp(std::move(__comp)) {}
+  template <typename _Iterator1, typename _Iterator2>
+  constexpr bool operator()(_Iterator1 __it1, _Iterator2 __it2) {
+    return bool(_M_comp(*__it1, *__it2));
+  }
+};
+template <typename _Compare>
+constexpr inline _Iter_comp_iter<_Compare> __iter_comp_iter(_Compare __comp) {
+  return _Iter_comp_iter<_Compare>(std::move(__comp));
+}
+template <typename _Compare> struct _Val_comp_iter {
+  _Compare _M_comp;
+  explicit _Val_comp_iter(const _Iter_comp_iter<_Compare> &__comp)
+      : _M_comp(std::move(__comp._M_comp)) {}
+  template <typename _Value, typename _Iterator>
+  bool operator()(_Value &__val, _Iterator __it) {
+    return bool(_M_comp(__val, *__it));
+  }
+};
+template <typename _Compare>
+inline _Val_comp_iter<_Compare>
+__val_comp_iter(_Iter_comp_iter<_Compare> __comp) {
+  return _Val_comp_iter<_Compare>(std::move(__comp));
+}
+} // namespace __ops
+} // namespace __gnu_cxx
+namespace std __attribute__((__visibility__("default"))) {
+  template <typename _Tp>
+  [[__nodiscard__]] constexpr inline const _Tp &min(const _Tp &__a,
+                                                    const _Tp &__b) {
+    return __a;
+  }
+  template <typename _Tp>
+  [[__nodiscard__]] constexpr inline const _Tp &max(const _Tp &__a,
+                                                    const _Tp &__b) {
+    return __b;
+  }
+  template <typename _Iterator>
+  inline _Iterator __niter_base(_Iterator __it) noexcept(
+      std::is_nothrow_copy_constructible<_Iterator>::value) {
+    return __it;
+  }
+  template <typename _Iterator>
+  inline _Iterator __niter_wrap(const _Iterator &, _Iterator __res) {
+    return __res;
+  }
+  template <bool _IsMove, bool _IsSimple, typename _Category>
+  struct __copy_move {
+    template <typename _Tp, typename _Up>
+    static _Up *__copy_m(_Tp *__first, _Tp *__last, _Up *__result) {
+      const ptrdiff_t _Num = __last - __first;
+      return __result + _Num;
+    }
+  };
+  template <bool _IsMove, typename _II, typename _OI>
+  inline _OI __copy_move_a2(_II __first, _II __last, _OI __result) {
+    typedef typename iterator_traits<_II>::iterator_category _Category;
+    return std::__copy_move<_IsMove, __memcpyable<_OI, _II>::__value,
+                            _Category>::__copy_m(__first, __last, __result);
+  }
+  template <bool _IsMove, typename _II, typename _OI>
+  inline _OI __copy_move_a1(_II __first, _II __last, _OI __result) {
+    return std::__copy_move_a2<_IsMove>(__first, __last, __result);
+  }
+  template <bool _IsMove, typename _II, typename _OI>
+  inline _OI __copy_move_a(_II __first, _II __last, _OI __result) {
+    return std::__niter_wrap(
+        __result, std::__copy_move_a1<_IsMove>(std::__niter_base(__first),
+                                               std::__niter_base(__last),
+                                               std::__niter_base(__result)));
+  }
+  template <typename _II, typename _OI>
+  inline _OI copy(_II __first, _II __last, _OI __result) {
+    return std::__copy_move_a<__is_move_iterator<_II>::__value>(
+        std::__miter_base(__first), std::__miter_base(__last), __result);
+  }
+  template <typename _Tp> class __new_allocator {
+  public:
+    typedef _Tp value_type;
+    typedef std::size_t size_type;
+    __attribute__((__always_inline__)) [[__nodiscard__]] _Tp *
+    allocate(size_type __n, const void * = static_cast<const void *>(0)) {
+      return static_cast<_Tp *>(::operator new(__n * sizeof(_Tp)));
+    }
+    __attribute__((__always_inline__)) size_type max_size() const noexcept {
+      return _M_max_size();
+    }
+    __attribute__((__always_inline__)) constexpr size_type
+    _M_max_size() const noexcept {
+      return std::size_t(0x7fffffffffffffffL) / sizeof(_Tp);
+    }
+  };
+  template <typename _Tp> using __allocator_base = __new_allocator<_Tp>;
+  template <typename> struct allocator_traits;
+  template <typename _Tp> class allocator : public __allocator_base<_Tp> {};
+  template <typename _Tp> struct allocator_traits<allocator<_Tp>> {
+    using allocator_type = allocator<_Tp>;
+    using value_type = _Tp;
+    using pointer = _Tp *;
+    using size_type = std::size_t;
+    template <typename _Up> using rebind_alloc = allocator<_Up>;
+    [[__nodiscard__, __gnu__::__always_inline__]] static pointer
+    allocate(allocator_type &__a, size_type __n) {
+      return __a.allocate(__n);
+    }
+    [[__gnu__::__always_inline__]] static size_type
+    max_size(const allocator_type &__a __attribute__((__unused__))) noexcept {
+      return __a.max_size();
+    }
+  };
+  template <typename _Alloc, typename _Tp, typename = void>
+  struct __is_alloc_insertable_impl : false_type {};
+  template <typename _Alloc>
+  struct __is_move_insertable
+      : __is_alloc_insertable_impl<_Alloc, typename _Alloc::value_type>::type {
+  };
+  template <typename _Tp>
+  struct __is_move_insertable<allocator<_Tp>> : is_move_constructible<_Tp> {};
+} // namespace )
+namespace __gnu_cxx __attribute__((__visibility__("default"))) {
+  template <typename _Alloc, typename = typename _Alloc::value_type>
+  struct __alloc_traits : std::allocator_traits<_Alloc> {
+    typedef std::allocator_traits<_Alloc> _Base_type;
+    typedef typename _Base_type::value_type value_type;
+    typedef value_type &reference;
+    template <typename _Tp> struct rebind {
+      typedef typename _Base_type::template rebind_alloc<_Tp> other;
+    };
+  };
+} // namespace )
+namespace std __attribute__((__visibility__("default"))) {
+  template <typename _ValueType, typename _Tp>
+  constexpr bool __check_constructible() {
+    return true;
+  }
+  template <bool _TrivialValueTypes> struct __uninitialized_copy {
+    template <typename _InputIterator, typename _ForwardIterator>
+    static _ForwardIterator __uninit_copy(_InputIterator __first,
+                                          _InputIterator __last,
+                                          _ForwardIterator __result) {
+      return std::copy(__first, __last, __result);
+    }
+  };
+  template <typename _InputIterator, typename _ForwardIterator>
+  inline _ForwardIterator uninitialized_copy(_InputIterator __first,
+                                             _InputIterator __last,
+                                             _ForwardIterator __result) {
+    typedef typename iterator_traits<_InputIterator>::value_type _ValueType1;
+    typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType2;
+    const bool __can_memmove = __is_trivial(_ValueType1);
+    using _From = decltype(*__first);
+    const bool __assignable = __is_trivial(_ValueType2) &&
+                              std::__check_constructible<_ValueType2, _From>();
+    return std::__uninitialized_copy < __can_memmove &&
+           __assignable > ::__uninit_copy(__first, __last, __result);
+  }
+  template <typename _InputIterator, typename _ForwardIterator, typename _Tp>
+  inline _ForwardIterator __uninitialized_copy_a(
+      _InputIterator __first, _InputIterator __last, _ForwardIterator __result,
+      allocator<_Tp> &) {
+    return std::uninitialized_copy(__first, __last, __result);
+  }
+  template <typename _InputIterator, typename _ForwardIterator,
+            typename _Allocator>
+  inline _ForwardIterator __uninitialized_move_if_noexcept_a(
+      _InputIterator __first, _InputIterator __last, _ForwardIterator __result,
+      _Allocator & __alloc) {
+    return std::__uninitialized_copy_a(
+        __first,
+        __last, __result, __alloc);
+  }
+  template <typename _Tp, typename = void>
+  struct __is_bitwise_relocatable : is_trivial<_Tp> {};
+  template <typename _Tp, typename _Up>
+  inline __enable_if_t<std::__is_bitwise_relocatable<_Tp>::value, _Tp *>
+  __relocate_a_1(_Tp * __first, _Tp * __last, _Tp * __result,
+                 [[__maybe_unused__]] allocator<_Up> & __alloc) noexcept {}
+  template <typename _InputIterator, typename _ForwardIterator,
+            typename _Allocator>
+  inline _ForwardIterator __relocate_a(
+      _InputIterator __first, _InputIterator __last, _ForwardIterator __result,
+      _Allocator &
+          __alloc) noexcept(noexcept(__relocate_a_1(std::__niter_base(__first),
+                                                    std::__niter_base(__last),
+                                                    std::__niter_base(__result),
+                                                    __alloc))) {}
+  template <class _E> class initializer_list {
+    typedef size_t size_type;
+    typedef const _E *iterator;
+    typedef const _E *const_iterator;
+    iterator _M_array;
+    size_type _M_len;
+  public:
+    constexpr size_type size() const noexcept { return _M_len; }
+    constexpr const_iterator begin() const noexcept { return _M_array; }
+    constexpr const_iterator end() const noexcept { return begin() + size(); }
+  };
+  template <typename _Tp, typename _Alloc> struct _Vector_base {
+    typedef
+        typename __gnu_cxx::__alloc_traits<_Alloc>::template rebind<_Tp>::other
+            _Tp_alloc_type;
+    typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer pointer;
+    struct _Vector_impl_data {
+      pointer _M_start;
+      pointer _M_finish;
+      pointer _M_end_of_storage;
+      _Vector_impl_data() noexcept
+          : _M_start(), _M_finish(), _M_end_of_storage() {}
+    };
+    struct _Vector_impl : public _Tp_alloc_type, public _Vector_impl_data {
+      _Vector_impl() noexcept(
+          is_nothrow_default_constructible<_Tp_alloc_type>::value)
+          : _Tp_alloc_type() {}
+      _Vector_impl(_Tp_alloc_type const &__a) noexcept : _Tp_alloc_type(__a) {}
+      _Vector_impl(_Tp_alloc_type &&__a, _Vector_impl &&__rv) noexcept
+          : _Tp_alloc_type(std::move(__a)), _Vector_impl_data(std::move(__rv)) {
+      }
+    };
+    typedef _Alloc allocator_type;
+    _Tp_alloc_type &_M_get_Tp_allocator() noexcept { return this->_M_impl; }
+    const _Tp_alloc_type &_M_get_Tp_allocator() const noexcept {
+      return this->_M_impl;
+    }
+    _Vector_base() = default;
+    _Vector_base(const allocator_type &__a) noexcept : _M_impl(__a) {}
+    _Vector_impl _M_impl;
+    pointer _M_allocate(size_t __n) {
+      typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr;
+      return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer();
+    }
+  };
+  template <typename _Tp, typename _Alloc = std::allocator<_Tp>>
+  class vector : protected _Vector_base<_Tp, _Alloc> {
+    typedef _Vector_base<_Tp, _Alloc> _Base;
+    typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
+    typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits;
+    typedef _Tp value_type;
+    typedef typename _Base::pointer pointer;
+    typedef typename _Alloc_traits::reference reference;
+    typedef __gnu_cxx::__normal_iterator<pointer, vector> iterator;
+    typedef size_t size_type;
+    typedef _Alloc allocator_type;
+    static constexpr bool _S_nothrow_relocate(true_type) {
+      return noexcept(std::__relocate_a(
+          std::declval<pointer>(), std::declval<pointer>(),
+          std::declval<pointer>(), std::declval<_Tp_alloc_type &>()));
+    }
+    static constexpr bool _S_use_relocate() {
+      return _S_nothrow_relocate(__is_move_insertable<_Tp_alloc_type>{});
+    }
+    using _Base::_M_get_Tp_allocator;
+  public:
+    vector() = default;
+    vector(initializer_list<value_type> __l,
+           const allocator_type &__a = allocator_type())
+        : _Base(__a) {
+      _M_range_initialize(__l.begin(), __l.end(), random_access_iterator_tag());
+    }
+    [[__nodiscard__]] iterator begin() noexcept {
+      return iterator(this->_M_impl._M_start);
+    }
+    [[__nodiscard__]] iterator end() noexcept {
+      return iterator(this->_M_impl._M_finish);
+    }
+    [[__nodiscard__]] size_type size() const noexcept {
+      return size_type(this->_M_impl._M_finish - this->_M_impl._M_start);
+    }
+    [[__nodiscard__]] size_type max_size() const noexcept {
+      return _S_max_size(_M_get_Tp_allocator());
+    }
+    [[__nodiscard__]] reference back() noexcept { return *(end() - 1); }
+    void push_back(value_type &&__x) { emplace_back(std::move(__x)); }
+    template <typename... _Args> reference emplace_back(_Args &&...__args);
+    template <typename _ForwardIterator>
+    void _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last,
+                             std::forward_iterator_tag) {
+      const size_type __n = std::distance(__first, __last);
+      this->_M_allocate(_S_check_init_len(__n, _M_get_Tp_allocator()));
+      this->_M_impl._M_finish = std::__uninitialized_copy_a(
+          __first, __last, this->_M_impl._M_start, _M_get_Tp_allocator());
+    }
+    template <typename... _Args> void _M_realloc_append(_Args &&...__args);
+    size_type _M_check_len(size_type __n, const char *__s) const {
+      const size_type __len = size() + (std::max)(size(), __n);
+      return (__len < size() || __len > max_size()) ? max_size() : __len;
+    }
+    static size_type _S_check_init_len(size_type __n,
+                                       const allocator_type &__a) {
+      if (__n > _S_max_size(_Tp_alloc_type(__a)))
+        __throw_length_error(
+            ("cannot create std::vector larger than max_size()"));
+      return __n;
+    }
+    static size_type _S_max_size(const _Tp_alloc_type &__a) noexcept {
+      const size_t __diffmax =
+          __gnu_cxx::__numeric_traits<ptrdiff_t>::__max / sizeof(_Tp);
+      return __diffmax;
+    }
+  };
+
+  template <typename _Tp>
+  struct greater  {
+    constexpr bool operator()(const _Tp &__x, const _Tp &__y) const {
+      return __x > __y;
+    }
+  };
+  template <typename _Tp, typename _Alloc>
+  template <typename... _Args>
+  typename vector<_Tp, _Alloc>::reference vector<_Tp, _Alloc>::emplace_back(
+      _Args && ...__args) {
+    if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) {
+      ++this->_M_impl._M_finish;
+    } else
+      _M_realloc_append(std::forward<_Args>(__args)...);
+    return back();
+  }
+  template <typename _Tp, typename _Alloc>
+  template <typename... _Args>
+  void vector<_Tp, _Alloc>::_M_realloc_append(_Args && ...__args) {
+    const size_type __len = _M_check_len(1u, "vector::_M_realloc_append");
+    pointer __old_start = this->_M_impl._M_start;
+    pointer __old_finish = this->_M_impl._M_finish;
+    pointer __new_start(this->_M_allocate(__len));
+    pointer __new_finish(__new_start);
+    {
+      if constexpr (_S_use_relocate()) {
+        __new_finish = std::__uninitialized_move_if_noexcept_a(
+            __old_start, __old_finish, __new_start, _M_get_Tp_allocator());
+      }
+    }
+    this->_M_impl._M_start = __new_start;
+    this->_M_impl._M_finish = __new_finish;
+    this->_M_impl._M_end_of_storage = __new_start + __len;
+  }
+  template <typename _RandomAccessIterator, typename _Compare>
+  void __unguarded_linear_insert(_RandomAccessIterator __last,
+                                 _Compare __comp) {
+    typename iterator_traits<_RandomAccessIterator>::value_type __val =
+        std::move(*__last);
+    _RandomAccessIterator __next = __last;
+    --__next;
+    while (__comp(__val, __next)) {
+      *__last = std::move(*__next);
+      __last = __next;
+    }
+  }
+  template <typename _RandomAccessIterator, typename _Compare>
+  void __insertion_sort(_RandomAccessIterator __first,
+                        _RandomAccessIterator __last, _Compare __comp) {
+    for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) {
+      std::__unguarded_linear_insert(__i,
+                                     __gnu_cxx::__ops::__val_comp_iter(__comp));
+    }
+  }
+  template <typename _RandomAccessIterator, typename _Compare>
+  inline void __unguarded_insertion_sort(_RandomAccessIterator __first,
+                                         _RandomAccessIterator __last,
+                                         _Compare __comp) {
+    for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
+      std::__unguarded_linear_insert(__i,
+                                     __gnu_cxx::__ops::__val_comp_iter(__comp));
+  }
+  enum { _S_threshold = 16 };
+  template <typename _RandomAccessIterator, typename _Compare>
+  void __final_insertion_sort(_RandomAccessIterator __first,
+                              _RandomAccessIterator __last, _Compare __comp) {
+    if (__last - __first > int(_S_threshold)) {
+      std::__insertion_sort(__first, __first + int(_S_threshold), __comp);
+      std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,
+                                      __comp);
+    }
+  }
+  template <typename _RandomAccessIterator, typename _Compare>
+  inline void __sort(_RandomAccessIterator __first,
+                     _RandomAccessIterator __last, _Compare __comp) {
+    if (__first != __last) {
+      std::__final_insertion_sort(__first, __last, __comp);
+    }
+  }
+  template <typename _RandomAccessIterator, typename _Compare>
+  inline void sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
+                   _Compare __comp) {
+    std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp));
+  }
+}
+
+
+void g();
+
+void f(int nBands, double maxZErr) {
+  for (int iBand = 0; iBand < nBands; iBand++)
+   {
+    g();
+    std::vector<signed char> noDataCandVec;
+    std::vector<signed char> distCandVec = {0, 1, 10, 100, 5, 6};
+    for (signed char dist : distCandVec)
+      noDataCandVec.push_back(1);
+    std::sort(noDataCandVec.begin(), noDataCandVec.end(),
+              std::greater<double>());
+  }
+}
diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc
index 692e96604b8..1f49084246f 100644
--- a/gcc/tree-ssa-forwprop.cc
+++ b/gcc/tree-ssa-forwprop.cc
@@ -3514,6 +3514,7 @@ pass_forwprop::execute (function *fun)
     |= EDGE_EXECUTABLE;
   auto_vec<gimple *, 4> to_fixup;
   auto_vec<gimple *, 32> to_remove;
+  auto_vec<unsigned, 32> to_remove_defs;
   auto_bitmap simple_dce_worklist;
   auto_bitmap need_ab_cleanup;
   to_purge = BITMAP_ALLOC (NULL);
@@ -3590,7 +3591,7 @@ pass_forwprop::execute (function *fun)
 	  if (all_same)
 	    {
 	      if (may_propagate_copy (res, first))
-		to_remove.safe_push (phi);
+		to_remove_defs.safe_push (SSA_NAME_VERSION (res));
 	      fwprop_set_lattice_val (res, first);
 	    }
 	}
@@ -4081,7 +4082,7 @@ pass_forwprop::execute (function *fun)
 		     stmt for removal.  */
 		  if (val != lhs
 		      && may_propagate_copy (lhs, val))
-		    to_remove.safe_push (stmt);
+		    to_remove_defs.safe_push (SSA_NAME_VERSION (lhs));
 		  fwprop_set_lattice_val (lhs, val);
 		}
 	    }
@@ -4123,14 +4124,11 @@ pass_forwprop::execute (function *fun)
   free (bb_to_rpo);
   lattice.release ();
 
-  /* Remove stmts in reverse order to make debug stmt creation possible.  */
-  while (!to_remove.is_empty())
+  /* First remove chains of stmts where we check no uses remain.  */
+  simple_dce_from_worklist (simple_dce_worklist, to_purge);
+
+  auto remove = [](gimple *stmt)
     {
-      gimple *stmt = to_remove.pop ();
-      /* For example remove_prop_source_from_use can remove stmts queued
-	 for removal.  Deal with this gracefully.  */
-      if (!gimple_bb (stmt))
-	continue;
       if (dump_file && (dump_flags & TDF_DETAILS))
 	{
 	  fprintf (dump_file, "Removing dead stmt ");
@@ -4146,8 +4144,28 @@ pass_forwprop::execute (function *fun)
 	  gsi_remove (&gsi, true);
 	  release_defs (stmt);
 	}
+    };
+
+  /* Then remove stmts we know we can remove even though we did not
+     substitute in dead code regions, so uses can remain.  Do so in reverse
+     order to make debug stmt creation possible.  */
+  while (!to_remove_defs.is_empty())
+    {
+      tree def = ssa_name (to_remove_defs.pop ());
+      /* For example remove_prop_source_from_use can remove stmts queued
+	 for removal.  Deal with this gracefully.  */
+      if (!def)
+	continue;
+      gimple *stmt = SSA_NAME_DEF_STMT (def);
+      remove (stmt);
+    }
+
+  /* Wipe other queued stmts that do not have SSA defs.  */
+  while (!to_remove.is_empty())
+    {
+      gimple *stmt = to_remove.pop ();
+      remove (stmt);
     }
-  simple_dce_from_worklist (simple_dce_worklist, to_purge);
 
   /* Fixup stmts that became noreturn calls.  This may require splitting
      blocks and thus isn't possible during the walk.  Do this

commit 646b5650a563bb505b4d3b52b8fa1ffd8eaa1a9c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Sep 19 00:23:52 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4acf17e3bc6..0558f2f8297 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,78 @@
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-08-27  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116460
+	* tree-ssa-forwprop.cc (pass_forwprop::execute): First do
+	simple_dce_from_worklist and then remove stmts in to_remove.
+	Track defs to be removed in to_remove_defs.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-07-04  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/115426
+	* gimplify.cc (gimplify_asm_expr): Handle "rm" output
+	constraint gimplified to a register (operation).
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-09-06  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116610
+	* tree-vect-loop.cc (vectorizable_induction): Use MINUS_EXPR
+	to apply a mask peeling adjustment.
+
+2024-09-18  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	Backported from master:
+	2024-08-22  Andrew Pinski  <quic_apinski@quicinc.com>
+		    Richard Biener   <rguenther@suse.de>
+
+	PR middle-end/116454
+	* fold-const.cc (fold_binary_loc): Fix `a * +-1i`
+	by wrapping arg0 with save_expr when it is not COMPLEX_EXPR.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-08-21  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116380
+	* tree-loop-distribution.cc (copy_loop_before): Handle
+	out-of-loop defs appropriately.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-08-20  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116274
+	* tree-vect-slp.cc (vect_bb_slp_scalar_cost): Cost scalar loads
+	and stores as simple scalar stmts when they access a non-global,
+	not address-taken variable that doesn't have BLKmode assigned.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-08-07  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116258
+	* tree-vect-generic.cc (expand_vector_operations_1): Do not
+	lower PAREN_EXPR.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-07-18  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/115641
+	* fold-const.cc (decode_field_reference): If the inner
+	reference isn't something we can take the address of, fail.
+
 2024-09-15  H.J. Lu  <hjl.tools@gmail.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 6d5458fa160..f2530dded09 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240918
+20240919
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0077c58998b..acb099f0009 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,87 @@
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-08-27  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116460
+	* g++.dg/torture/pr116460.C: New testcase.
+
+2024-09-18  Joern Rennecke  <joern.rennecke@riscy-ip.com>
+
+	Backported from master:
+	2024-08-07  Joern Rennecke  <joern.rennecke@riscy-ip.com>
+
+	* g++.dg/vect/pr115278.cc: Make cast's type agree with
+	assignment destination WRITE.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-07-04  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/115426
+	* gcc.dg/pr115426.c: New testcase.
+
+2024-09-18  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	Backported from master:
+	2024-08-22  Andrew Pinski  <quic_apinski@quicinc.com>
+		    Richard Biener   <rguenther@suse.de>
+
+	PR middle-end/116454
+	* gcc.dg/torture/pr116454-1.c: New test.
+	* gcc.dg/torture/pr116454-2.c: New test.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-08-21  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116380
+	* gcc.dg/torture/pr116380.c: New testcase.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-08-20  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116274
+	* gcc.target/i386/pr116274-2.c: New testcase.
+
+2024-09-18  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	Backported from master:
+	2024-08-07  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	PR middle-end/116258
+	PR middle-end/116259
+	* gcc.target/aarch64/pr116258.c: New test.
+	* gcc.target/aarch64/sve/pr116259-1.c: New test.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-08-08  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116258
+	* gcc.target/i386/pr116258.c: Also allow vpermilps.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-08-07  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116258
+	* gcc.target/i386/pr116258.c: New testcase.
+
+2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-07-18  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/115641
+	* gcc.dg/torture/pr115641.c: New testcase.
+
 2024-09-17  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:

commit a3efd2ff9db0545d0f504153a6a0195e1c92e5cf
Author: Haochen Jiang <haochen.jiang@intel.com>
Date:   Wed Sep 18 11:20:15 2024 +0800

    doc: Add more alias option and reorder Intel CPU -march documentation
    
    This patch is backported from GCC15 with some tweaks.
    
    Since r15-3539, there are requests coming in to add other alias option
    documentation. This patch will add all ot them, including corei7, corei7-avx,
    core-avx-i, core-avx2, atom, slm, gracemont and emerarldrapids.
    
    Also in the patch, I reordered that part of documentation, currently all
    the CPUs/products are just all over the place. I regrouped them by
    date-to-now products (since the very first CPU to latest Panther Lake), P-core
    (since the clients become hybrid cores, starting from Sapphire Rapids) and
    E-core (since Bonnell to latest Clearwater Forest). In GCC14 and
    eariler GCC, Xeon Phi CPUs are still there, I put them after E-core
    CPUs.
    
    And in the patch, I refined the product names in documentation.
    
    gcc/ChangeLog:
    
            * doc/invoke.texi: Add corei7, corei7-avx, core-avx-i,
            core-avx2, atom, slm, gracemont and emerarldrapids. Reorder
            the -march documentation by splitting them into date-to-now
            products, P-core, E-core and Xeon Phi. Refine the product names in
            documentation.

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 176851baf61..a12d1bdc55e 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -34315,6 +34315,7 @@ Intel Core 2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, CX16,
 SAHF and FXSR instruction set support.
 
 @item nehalem
+@itemx corei7
 Intel Nehalem CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3,
 SSE4.1, SSE4.2, POPCNT, CX16, SAHF and FXSR instruction set support.
 
@@ -34323,17 +34324,20 @@ Intel Westmere CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3,
 SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR and PCLMUL instruction set support.
 
 @item sandybridge
+@itemx corei7-avx
 Intel Sandy Bridge CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3,
 SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE and PCLMUL instruction set
 support.
 
 @item ivybridge
+@itemx core-avx-i
 Intel Ivy Bridge CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3,
 SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND
 and F16C instruction set support.
 
 @item haswell
-Intel Haswell CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
+@itemx core-avx2
+Intel Haswell CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3,
 SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
 F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE and HLE instruction set support.
 
@@ -34349,74 +34353,6 @@ SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
 F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES,
 CLFLUSHOPT, XSAVEC, XSAVES and SGX instruction set support.
 
-@item bonnell
-Intel Bonnell CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3 and SSSE3
-instruction set support.
-
-@item silvermont
-Intel Silvermont CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
-SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, PCLMUL, PREFETCHW and RDRND
-instruction set support.
-
-@item goldmont
-Intel Goldmont CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
-SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, PCLMUL, PREFETCHW, RDRND, AES, SHA,
-RDSEED, XSAVE, XSAVEC, XSAVES, XSAVEOPT, CLFLUSHOPT and FSGSBASE instruction
-set support.
-
-@item goldmont-plus
-Intel Goldmont Plus CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
-SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, PCLMUL, PREFETCHW, RDRND, AES,
-SHA, RDSEED, XSAVE, XSAVEC, XSAVES, XSAVEOPT, CLFLUSHOPT, FSGSBASE, PTWRITE,
-RDPID and SGX instruction set support.
-
-@item tremont
-Intel Tremont CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
-SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, PCLMUL, PREFETCHW, RDRND, AES, SHA,
-RDSEED, XSAVE, XSAVEC, XSAVES, XSAVEOPT, CLFLUSHOPT, FSGSBASE, PTWRITE, RDPID,
-SGX, CLWB, GFNI-SSE, MOVDIRI, MOVDIR64B, CLDEMOTE and WAITPKG instruction set
-support.
-
-@item sierraforest
-Intel Sierra Forest CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
-SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
-XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
-MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
-PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
-AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, ENQCMD and UINTR instruction set
-support.
-
-@item grandridge
-Intel Grand Ridge CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
-SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
-XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
-MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
-PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
-AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, ENQCMD and UINTR instruction set
-support.
-
-@item clearwaterforest
-Intel Clearwater Forest CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2,
-SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE,
-XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB,
-MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
-LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
-ENQCMD, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16,
-SHA512, SM3, SM4, USER_MSR and PREFETCHI instruction set support.
-
-@item knl
-Intel Knight's Landing CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
-SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
-RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
-AVX512PF, AVX512ER, AVX512F, AVX512CD and PREFETCHWT1 instruction set support.
-
-@item knm
-Intel Knights Mill CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
-SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
-RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
-AVX512PF, AVX512ER, AVX512F, AVX512CD and PREFETCHWT1, AVX5124VNNIW,
-AVX5124FMAPS and AVX512VPOPCNTDQ instruction set support.
-
 @item skylake-avx512
 Intel Skylake Server CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
 SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
@@ -34424,16 +34360,30 @@ RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
 AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, CLWB, AVX512VL, AVX512BW,
 AVX512DQ and AVX512CD instruction set support.
 
+@item cascadelake
+Intel Cascade Lake CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3,
+SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
+F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES,
+CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ,
+AVX512CD and AVX512VNNI instruction set support.
+
 @item cannonlake
-Intel Cannonlake Server CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2,
+Intel Cannon Lake Server CPU with 64-bit extensions, MMX, SSE, SSE2,
 SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL,
 FSGSBASE, RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX,
 PREFETCHW, AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW,
 AVX512DQ, AVX512CD, PKU, AVX512VBMI, AVX512IFMA and SHA instruction set
 support.
 
+@item cooperlake
+Intel Cooper Lake CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3,
+SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
+F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES,
+CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ,
+AVX512CD, AVX512VNNI and AVX512BF16 instruction set support.
+
 @item icelake-client
-Intel Icelake Client CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+Intel Ice Lake Client CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3,
 SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
 RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
 AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
@@ -34441,7 +34391,7 @@ AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2
 , VPCLMULQDQ, AVX512BITALG, RDPID and AVX512VPOPCNTDQ instruction set support.
 
 @item icelake-server
-Intel Icelake Server CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+Intel Ice Lake Server CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3,
 SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
 RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
 AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
@@ -34449,22 +34399,8 @@ AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2
 , VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, PCONFIG, WBNOINVD and CLWB
 instruction set support.
 
-@item cascadelake
-Intel Cascadelake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
-SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
-F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES,
-CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ,
-AVX512CD and AVX512VNNI instruction set support.
-
-@item cooperlake
-Intel cooperlake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
-SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
-F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES,
-CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ,
-AVX512CD, AVX512VNNI and AVX512BF16 instruction set support.
-
 @item tigerlake
-Intel Tigerlake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
+Intel Tiger Lake CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3,
 SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
 F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES,
 CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD
@@ -34472,37 +34408,67 @@ PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2,
 VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, MOVDIRI, MOVDIR64B, CLWB,
 AVX512VP2INTERSECT and KEYLOCKER instruction set support.
 
-@item sapphirerapids
-Intel sapphirerapids CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
-SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
-RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
-AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
-AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2,
-VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, PCONFIG, WBNOINVD, CLWB,
-MOVDIRI, MOVDIR64B, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK,
-UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512-FP16 and AVX512BF16
-instruction set support.
+@item rocketlake
+Intel Rocket Lake CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3,
+SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
+F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES,
+CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD
+PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2,
+VPCLMULQDQ, AVX512BITALG, RDPID and AVX512VPOPCNTDQ instruction set support.
 
 @item alderlake
 @itemx raptorlake
 @itemx meteorlake
-Intel Alderlake/Raptorlake/Meteorlake CPU with 64-bit extensions, MOVBE, MMX,
-SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND,
+@itemx gracemont
+Intel Alder Lake/Raptor Lake/Meteor Lake/Gracemont CPU with 64-bit extensions,
+MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW,
+PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX,
+GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI,
+BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL,
+WIDEKL and AVX-VNNI instruction set support.
+
+@item arrowlake
+Intel Arrow Lake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
+XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
+MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
+PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
+UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT and CMPCCXADD instruction set
+support.
+
+@item arrowlake-s
+@itemx lunarlake
+Intel Arrow Lake S/Lunar Lake CPU with 64-bit extensions, MOVBE, MMX, SSE,
+SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND,
 XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB,
 MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
-LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL and
-AVX-VNNI instruction set support.
+LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
+UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512,
+SM3 and SM4 instruction set support.
 
-@item rocketlake
-Intel Rocketlake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3
-, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
-F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES,
-CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD
-PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES, AVX512VBMI2,
-VPCLMULQDQ, AVX512BITALG, RDPID and AVX512VPOPCNTDQ instruction set support.
+@item pantherlake
+Intel Panther Lake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
+XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
+MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
+PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
+UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512,
+SM3, SM4 and PREFETCHI instruction set support.
+
+@item sapphirerapids
+@itemx emeraldrapids
+Intel Sapphire Rapids/Emerald Rapids CPU with 64-bit extensions, MMX, SSE,
+SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL,
+FSGSBASE, RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX,
+PREFETCHW, AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW,
+AVX512DQ, AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES,
+AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, PCONFIG,
+WBNOINVD, CLWB, MOVDIRI, MOVDIR64B, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG,
+SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512-FP16
+and AVX512BF16 instruction set support.
 
 @item graniterapids
-Intel graniterapids CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+Intel Granite Rapids CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3,
 SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
 RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
 AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
@@ -34513,7 +34479,7 @@ UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512-FP16, AVX512BF16, AMX-FP16
 and PREFETCHI instruction set support.
 
 @item graniterapids-d
-Intel graniterapids D CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+Intel Granite Rapids D CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3,
 SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
 RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
 AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
@@ -34523,33 +34489,75 @@ MOVDIRI, MOVDIR64B, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK,
 UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512FP16, AVX512BF16, AMX-FP16,
 PREFETCHI and AMX-COMPLEX instruction set support.
 
-@item arrowlake
-Intel Arrow Lake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+@item bonnell
+@itemx atom
+Intel Bonnell CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3 and SSSE3
+instruction set support.
+
+@item silvermont
+@itemx slm
+Intel Silvermont CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
+SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, PCLMUL, PREFETCHW and RDRND
+instruction set support.
+
+@item goldmont
+Intel Goldmont CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
+SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, PCLMUL, PREFETCHW, RDRND, AES, SHA,
+RDSEED, XSAVE, XSAVEC, XSAVES, XSAVEOPT, CLFLUSHOPT and FSGSBASE instruction
+set support.
+
+@item goldmont-plus
+Intel Goldmont Plus CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, PCLMUL, PREFETCHW, RDRND, AES,
+SHA, RDSEED, XSAVE, XSAVEC, XSAVES, XSAVEOPT, CLFLUSHOPT, FSGSBASE, PTWRITE,
+RDPID and SGX instruction set support.
+
+@item tremont
+Intel Tremont CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
+SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, PCLMUL, PREFETCHW, RDRND, AES, SHA,
+RDSEED, XSAVE, XSAVEC, XSAVES, XSAVEOPT, CLFLUSHOPT, FSGSBASE, PTWRITE, RDPID,
+SGX, CLWB, GFNI-SSE, MOVDIRI, MOVDIR64B, CLDEMOTE and WAITPKG instruction set
+support.
+
+@item sierraforest
+Intel Sierra Forest CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
 SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
 XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
 MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
 PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
-UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT and CMPCCXADD instruction set
+AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, ENQCMD and UINTR instruction set
 support.
 
-@item arrowlake-s
-@itemx lunarlake
-Intel Arrow Lake S/Lunarlake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2,
+@item grandridge
+Intel Grand Ridge CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
+XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
+MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
+PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
+AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, ENQCMD and UINTR instruction set
+support.
+
+@item clearwaterforest
+Intel Clearwater Forest CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2,
 SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE,
 XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB,
 MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
 LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
-UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512,
-SM3 and SM4 instruction set support.
+ENQCMD, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16,
+SHA512, SM3, SM4, USER_MSR and PREFETCHI instruction set support.
 
-@item pantherlake
-Intel Panther Lake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
-SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
-XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
-MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
-PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
-UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512,
-SM3, SM4 and PREFETCHI instruction set support.
+@item knl
+Intel Knights Landing CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
+RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
+AVX512PF, AVX512ER, AVX512F, AVX512CD and PREFETCHWT1 instruction set support.
+
+@item knm
+Intel Knights Mill CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
+SSSE3, SSE4.1, SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE,
+RDRND, F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
+AVX512PF, AVX512ER, AVX512F, AVX512CD and PREFETCHWT1, AVX5124VNNIW,
+AVX5124FMAPS and AVX512VPOPCNTDQ instruction set support.
 
 @item k6
 AMD K6 CPU with MMX instruction set support.

commit 37c9b3ab1750c596d8447b6360c3c9634f271f90
Author: Joseph Myers <josmyers@redhat.com>
Date:   Thu Sep 19 21:07:08 2024 +0000

    Update gcc zh_CN.po
    
            * zh_CN.po: Update.

diff --git a/gcc/po/zh_CN.po b/gcc/po/zh_CN.po
index b80a0281e24..c03d3f290a9 100644
--- a/gcc/po/zh_CN.po
+++ b/gcc/po/zh_CN.po
@@ -36,7 +36,7 @@ msgstr ""
 "Project-Id-Version: gcc 14.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
 "POT-Creation-Date: 2024-07-25 16:23+0000\n"
-"PO-Revision-Date: 2024-08-27 16:17+0800\n"
+"PO-Revision-Date: 2024-09-15 10:21+0800\n"
 "Last-Translator: Zhanhaoxiang Zhang <zzhx2006@outlook.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
@@ -351,10 +351,8 @@ msgid "-install_name only allowed with -dynamiclib"
 msgstr "-install_name 只能和 -dynamiclib 一起使用"
 
 #: config/darwin.h:191
-#, fuzzy
-#| msgid "-bundle not allowed with -dynamiclib"
 msgid "-bundle not allowed with -shared"
-msgstr "-bundle 不允许与 -dynamiclib 一起使用"
+msgstr "-bundle 不允许与 -shared 一起使用"
 
 #: config/darwin.h:192
 msgid "-bundle not allowed with -dynamiclib"
@@ -781,10 +779,9 @@ msgid "Produce a backtrace when a runtime error is encountered."
 msgstr "遇到运行时错误时打印函数调用回溯"
 
 #: fortran/lang.opt:418
-#, fuzzy, no-c-format
-#| msgid "-fblas-matmul-limit=<n>\tSize of the smallest matrix for which matmul will use BLAS"
+#, no-c-format
 msgid "-fblas-matmul-limit=<n>\tSize of the smallest matrix for which matmul will use BLAS."
-msgstr "-fblas-matmul-limit=<n>\t使用 BLAS 进行矩阵乘法的矩阵大小下限"
+msgstr "-fblas-matmul-limit=<n>\t使用 BLAS 进行矩阵乘法的矩阵大小下限。"
 
 #: fortran/lang.opt:425
 #, fuzzy, no-c-format
@@ -1204,10 +1201,9 @@ msgid "-fcoarray=<none|single|lib>\tSpecify which coarray parallelization should
 msgstr "-fcoarray=[...]\t指定要使用的集合数组并行化"
 
 #: fortran/lang.opt:805
-#, fuzzy, no-c-format
-#| msgid "-fcheck=[...]\tSpecify which runtime checks are to be performed"
+#, no-c-format
 msgid "-fcheck=[...]\tSpecify which runtime checks are to be performed."
-msgstr "-fcheck=[...]\t指定要进行哪种运行时检查"
+msgstr "-fcheck=[...]\t指定要进行哪种运行时检查。"
 
 #: fortran/lang.opt:809
 #, fuzzy, no-c-format
@@ -1395,10 +1391,9 @@ msgid "Use the WIP borrow checker."
 msgstr ""
 
 #: c-family/c.opt:182
-#, fuzzy, no-c-format
-#| msgid "-A<question>=<answer>\tAssert the <answer> to <question>.  Putting '-' before <question> disables the <answer> to <question>"
+#, no-c-format
 msgid "-A<question>=<answer>\tAssert the <answer> to <question>.  Putting '-' before <question> disables the <answer> to <question>."
-msgstr "-A<问题>=<答案>\t给出问题的答案。在问题前加一个‘-’将禁用其答案"
+msgstr "-A<问题>=<答案>\t给出问题的答案。在问题前加一个‘-’将禁用其答案。"
 
 #: c-family/c.opt:186
 #, no-c-format
@@ -1411,16 +1406,14 @@ msgid "Do not discard comments in macro expansions."
 msgstr "展开宏时不丢弃注释。"
 
 #: c-family/c.opt:194
-#, fuzzy, no-c-format
-#| msgid "-D<macro>[=<val>]\tDefine a <macro> with <val> as its value.  If just <macro> is given, <val> is taken to be 1"
+#, no-c-format
 msgid "-D<macro>[=<val>]\tDefine a <macro> with <val> as its value.  If just <macro> is given, <val> is taken to be 1."
-msgstr "-D<宏>[=<值>]\t将宏定义为值。如果只给出了宏，值将被定为 1"
+msgstr "-D<宏>[=<值>]\t将宏定义为值。如果只给出了宏，值将被定为 1。"
 
 #: c-family/c.opt:201
-#, fuzzy, no-c-format
-#| msgid "-F <dir>\tAdd <dir> to the end of the main framework include path"
+#, no-c-format
 msgid "-F <dir>\tAdd <dir> to the end of the main framework include path."
-msgstr "-F <目录>\t将目录添加至主框架包含路径的末尾"
+msgstr "-F <目录>\t将目录添加至主框架包含路径的末尾。"
 
 #: c-family/c.opt:205
 #, fuzzy, no-c-format
@@ -1435,10 +1428,9 @@ msgid "Print the name of header files as they are used."
 msgstr "打印使用到的头文件名"
 
 #: c-family/c.opt:213
-#, fuzzy, no-c-format
-#| msgid "-I <dir>\tAdd <dir> to the end of the main include path"
+#, no-c-format
 msgid "-I <dir>\tAdd <dir> to the end of the main include path."
-msgstr "-I <目录>\t将目录添加至主包含路径末尾"
+msgstr "-I <目录>\t将目录添加至主包含路径末尾。"
 
 #: c-family/c.opt:217
 #, no-c-format
@@ -1451,10 +1443,9 @@ msgid "Generate make dependencies and compile."
 msgstr "生成 make 依赖规则并编译。"
 
 #: c-family/c.opt:225
-#, fuzzy, no-c-format
-#| msgid "-MF <file>\tWrite dependency output to the given file"
+#, no-c-format
 msgid "-MF <file>\tWrite dependency output to the given file."
-msgstr "-MF <文件>\t将依赖项输出到给定文件"
+msgstr "-MF <文件>\t将依赖项输出到给定文件。"
 
 #: c-family/c.opt:229
 #, no-c-format
@@ -3035,10 +3026,9 @@ msgid "Allow the arguments of the '?' operator to have different types."
 msgstr "允许‘?’运算符的参数有不同的类型"
 
 #: c-family/c.opt:1737
-#, fuzzy, no-c-format
-#| msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
+#, no-c-format
 msgid "-fconst-string-class=<name>\tUse class <name> for constant strings."
-msgstr "-fconst-string-class=<名字>\t使用名字作为常量字符串类的名称"
+msgstr "-fconst-string-class=<名字>\t使用<名字>作为常量字符串类的名称。"
 
 #: c-family/c.opt:1741
 #, fuzzy, no-c-format
@@ -3667,64 +3657,54 @@ msgid "Interpret imaginary, fixed-point, or other gnu number suffix as the corre
 msgstr ""
 
 #: c-family/c.opt:2370
-#, fuzzy, no-c-format
-#| msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
+#, no-c-format
 msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path."
-msgstr "-idirafter <目录>\t将目录添加至系统包含路径末尾"
+msgstr "-idirafter <目录>\t将目录添加至系统包含路径末尾。"
 
 #: c-family/c.opt:2374
-#, fuzzy, no-c-format
-#| msgid "-imacros <file>\tAccept definition of macros in <file>"
+#, no-c-format
 msgid "-imacros <file>\tAccept definition of macros in <file>."
-msgstr "-imacros <文件>\t接受文件中定义的宏"
+msgstr "-imacros <文件>\t接受文件中定义的宏。"
 
 #: c-family/c.opt:2378
-#, fuzzy, no-c-format
-#| msgid "-imultilib <dir>\tSet <dir> to be the multilib include subdirectory"
+#, no-c-format
 msgid "-imultilib <dir>\tSet <dir> to be the multilib include subdirectory."
-msgstr "-imultilib <目录>\t将目录设定为 multilib 的包含子目录"
+msgstr "-imultilib <目录>\t将目录设定为 multilib 的包含子目录。"
 
 #: c-family/c.opt:2382
-#, fuzzy, no-c-format
-#| msgid "-include <file>\tInclude the contents of <file> before other files"
+#, no-c-format
 msgid "-include <file>\tInclude the contents of <file> before other files."
-msgstr "-include <文件>\t在包含其它文件之前先包含该文件的内容"
+msgstr "-include <文件>\t在包含其它文件之前先包含该文件的内容。"
 
 #: c-family/c.opt:2386
-#, fuzzy, no-c-format
-#| msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
+#, no-c-format
 msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options."
-msgstr "-iprefix <路径>\t将路径指定为下两个选项的前缀"
+msgstr "-iprefix <路径>\t将路径指定为下两个选项的前缀。"
 
 #: c-family/c.opt:2390
-#, fuzzy, no-c-format
-#| msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
+#, no-c-format
 msgid "-isysroot <dir>\tSet <dir> to be the system root directory."
-msgstr "-isysroot <目录>\t将目录设为系统根目录"
+msgstr "-isysroot <目录>\t将目录设为系统根目录。"
 
 #: c-family/c.opt:2394
-#, fuzzy, no-c-format
-#| msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
+#, no-c-format
 msgid "-isystem <dir>\tAdd <dir> to the start of the system include path."
-msgstr "-isystem <目录>\t将目录添加至系统包含路径开头"
+msgstr "-isystem <目录>\t将目录添加至系统包含路径开头。"
 
 #: c-family/c.opt:2398
-#, fuzzy, no-c-format
-#| msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path"
+#, no-c-format
 msgid "-iquote <dir>\tAdd <dir> to the end of the quote include path."
-msgstr "-iquote <目录>\t将目录添加至括起的包含路径末尾"
+msgstr "-iquote <目录>\t将目录添加至括起的包含路径末尾。"
 
 #: c-family/c.opt:2402
-#, fuzzy, no-c-format
-#| msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
+#, no-c-format
 msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path."
-msgstr "-iwithprefix <目录>\t将目录添加至系统包含路径末尾"
+msgstr "-iwithprefix <目录>\t将目录添加至系统包含路径末尾。"
 
 #: c-family/c.opt:2406
-#, fuzzy, no-c-format
-#| msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
+#, no-c-format
 msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path."
-msgstr "-iwithprefixbefore <目录>\t将目录添加至主包含路径末尾"
+msgstr "-iwithprefixbefore <目录>\t将目录添加至主包含路径末尾。"
 
 #: c-family/c.opt:2416
 #, no-c-format
@@ -5432,10 +5412,9 @@ msgid "Generate compile-time CFString objects."
 msgstr "生成编译时 CFString 对象"
 
 #: config/darwin.opt:42
-#, fuzzy, no-c-format
-#| msgid "-iframework <dir>\tAdd <dir> to the end of the system framework include path"
+#, no-c-format
 msgid "-iframework <dir>\tAdd <dir> to the end of the system framework include path."
-msgstr "-iframework <目录>\t将目录添加至系统框架包含路径的末尾"
+msgstr "-iframework <目录>\t将目录添加至系统框架包含路径的末尾。"
 
 #: config/darwin.opt:50
 #, fuzzy, no-c-format
@@ -6265,10 +6244,9 @@ msgid "-march=help\tPrint supported -march extensions."
 msgstr ""
 
 #: config/riscv/riscv.opt:103 config/mips/mips.opt:430
-#, fuzzy, no-c-format
-#| msgid "-mtune=PROCESSOR\tOptimize the output for PROCESSOR"
+#, no-c-format
 msgid "-mtune=PROCESSOR\tOptimize the output for PROCESSOR."
-msgstr "-mtune=处理器\t为指定的处理器优化输出"
+msgstr "-mtune=处理器\t为指定的处理器优化输出。"
 
 #: config/riscv/riscv.opt:107
 #, fuzzy, no-c-format
@@ -6475,34 +6453,29 @@ msgid "-msim\tUse simulator runtime."
 msgstr "-msim\t使用仿真器运行时。"
 
 #: config/m32c/m32c.opt:27
-#, fuzzy, no-c-format
-#| msgid "-mcpu=r8c\tCompile code for R8C variants"
+#, no-c-format
 msgid "-mcpu=r8c\tCompile code for R8C variants."
-msgstr "-mcpu=r8c\t为 R8C 变种编译代码"
+msgstr "-mcpu=r8c\t为 R8C 变种编译代码。"
 
 #: config/m32c/m32c.opt:31
-#, fuzzy, no-c-format
-#| msgid "-mcpu=m16c\tCompile code for M16C variants"
+#, no-c-format
 msgid "-mcpu=m16c\tCompile code for M16C variants."
-msgstr "-mcpu=m16c\t为 M16C 变种编译代码"
+msgstr "-mcpu=m16c\t为 M16C 变种编译代码。"
 
 #: config/m32c/m32c.opt:35
-#, fuzzy, no-c-format
-#| msgid "-mcpu=m32cm\tCompile code for M32CM variants"
+#, no-c-format
 msgid "-mcpu=m32cm\tCompile code for M32CM variants."
-msgstr "-mcpu=m32cm\t为 M32CM 变种编译代码"
+msgstr "-mcpu=m32cm\t为 M32CM 变种编译代码。"
 
 #: config/m32c/m32c.opt:39
-#, fuzzy, no-c-format
-#| msgid "-mcpu=m32c\tCompile code for M32C variants"
+#, no-c-format
 msgid "-mcpu=m32c\tCompile code for M32C variants."
-msgstr "-mcpu=m32c\t为 M32C 变种编译代码"
+msgstr "-mcpu=m32c\t为 M32C 变种编译代码。"
 
 #: config/m32c/m32c.opt:43
-#, fuzzy, no-c-format
-#| msgid "-memregs=\tNumber of memreg bytes (default: 16, range: 0..16)"
+#, no-c-format
 msgid "-memregs=\tNumber of memreg bytes (default: 16, range: 0..16)."
-msgstr "-memregs=\tmemreg 字节数(默认：16，范围：0..16)"
+msgstr "-memregs=\tmemreg 字节数(默认：16，范围：0..16)。"
 
 #: config/msp430/msp430.opt:7
 #, no-c-format
@@ -8992,10 +8965,9 @@ msgid "Optimization. Use subroutines for function prologues and epilogues."
 msgstr "使用子程序完成函数前言/尾声"
 
 #: config/avr/avr.opt:27
-#, fuzzy, no-c-format
-#| msgid "-mmcu=MCU\tSelect the target MCU"
+#, no-c-format
 msgid "-mmcu=<MCU>\tSelect the target MCU."
-msgstr "-mmcu=MCU\t选择目标 MCU"
+msgstr "-mmcu=MCU\t选择目标 MCU。"
 
 #: config/avr/avr.opt:31
 #, fuzzy, no-c-format
@@ -10309,16 +10281,14 @@ msgid "Use the ELFv2 ABI."
 msgstr "使用 ELFv2 ABI。"
 
 #: config/rs6000/rs6000.opt:392
-#, fuzzy, no-c-format
-#| msgid "-mcpu=\tUse features of and schedule code for given CPU"
+#, no-c-format
 msgid "-mcpu=\tUse features of and schedule code for given CPU."
-msgstr "-mcpu=\t使用指定 CPU 的特性和调度代码"
+msgstr "-mcpu=\t使用指定 CPU 的特性和调度代码。"
 
 #: config/rs6000/rs6000.opt:396
-#, fuzzy, no-c-format
-#| msgid "-mtune=\tSchedule code for given CPU"
+#, no-c-format
 msgid "-mtune=\tSchedule code for given CPU."
-msgstr "-mtune=\t为指定的 CPU 调度代码"
+msgstr "-mtune=\t为指定的 CPU 调度代码。"
 
 #: config/rs6000/rs6000.opt:400
 #, fuzzy, no-c-format
@@ -10871,10 +10841,9 @@ msgid "FPU types of LoongArch:"
 msgstr "LoongArch 的 FPU 类型："
 
 #: config/loongarch/loongarch.opt:62
-#, fuzzy, no-c-format
-#| msgid "-march=ISA\tGenerate code for the given ISA"
+#, no-c-format
 msgid "-mfpu=FPU\tGenerate code for the given FPU."
-msgstr "-march=ISA\t为给定的 ISA 生成代码"
+msgstr "-mfpu=FPU\t为给定的 FPU 生成代码."
 
 #: config/loongarch/loongarch.opt:69 config/mips/mips.opt:398
 #, fuzzy, no-c-format
@@ -10923,10 +10892,9 @@ msgid "LoongArch ARCH presets:"
 msgstr "LoongArch CPU 类型："
 
 #: config/loongarch/loongarch.opt:132
-#, fuzzy, no-c-format
-#| msgid "-march=ISA\tGenerate code for the given ISA"
+#, no-c-format
 msgid "-march=PROCESSOR\tGenerate code for the given PROCESSOR ISA."
-msgstr "-march=ISA\t为给定的 ISA 生成代码"
+msgstr "-march=PROCESSOR\t为给定的 PROCESSOR ISA 生成代码。"
 
 #: config/loongarch/loongarch.opt:136
 #, fuzzy, no-c-format
@@ -10936,9 +10904,8 @@ msgstr "LoongArch CPU 类型："
 
 #: config/loongarch/loongarch.opt:155
 #, fuzzy, no-c-format
-#| msgid "-mtune=PROCESSOR\tOptimize the output for PROCESSOR"
 msgid "-mtune=PROCESSOR\tGenerate optimized code for PROCESSOR."
-msgstr "-mtune=处理器\t为指定的处理器优化输出"
+msgstr "-mtune=处理器\t为指定的处理器优化输出。"
 
 #: config/loongarch/loongarch.opt:164
 #, no-c-format
@@ -10946,10 +10913,9 @@ msgid "Base ABI types for LoongArch:"
 msgstr ""
 
 #: config/loongarch/loongarch.opt:177
-#, fuzzy, no-c-format
-#| msgid "-mabi=ABI\tGenerate code that conforms to the given ABI"
+#, no-c-format
 msgid "-mabi=BASEABI\tGenerate code that conforms to the given BASEABI."
-msgstr "-mabi=ABI\t生成遵循给定 ABI 的代码"
+msgstr "-mabi=BASEABI\t生成遵循给定 BASEABI 的代码。"
 
 #: config/loongarch/loongarch.opt:186 config/mips/mips.opt:71
 #, fuzzy, no-c-format
@@ -12079,10 +12045,9 @@ msgid "Use table lookup optimization for small signed integer divisions."
 msgstr "在树级别进行循环优化"
 
 #: config/microblaze/microblaze.opt:52
-#, fuzzy, no-c-format
-#| msgid "-mcpu=PROCESSOR\t\tUse features of and schedule code for given CPU"
+#, no-c-format
 msgid "-mcpu=PROCESSOR\t\tUse features of and schedule code for given CPU."
-msgstr "-mcpu=处理器\t使用指定 CPU 的特性并为其调度代码"
+msgstr "-mcpu=处理器\t\t使用指定 CPU 的特性并为其调度代码。"
 
 #: config/microblaze/microblaze.opt:56
 #, fuzzy, no-c-format
@@ -13031,22 +12996,19 @@ msgid "Override -mbest-lib-options."
 msgstr "覆盖 -mbest-lib-options"
 
 #: config/cris/cris.opt:165
-#, fuzzy, no-c-format
-#| msgid "-march=ARCH\tGenerate code for the specified chip or CPU version"
+#, no-c-format
 msgid "-march=ARCH\tGenerate code for the specified chip or CPU version."
-msgstr "-march=ARCH\t为指定的芯片或 CPU 版本生成代码"
+msgstr "-march=ARCH\t为指定的芯片或 CPU 版本生成代码。"
 
 #: config/cris/cris.opt:169
-#, fuzzy, no-c-format
-#| msgid "-mtune=ARCH\tTune alignment for the specified chip or CPU version"
+#, no-c-format
 msgid "-mtune=ARCH\tTune alignment for the specified chip or CPU version."
-msgstr "-mtune=ARCH\t为指定的芯片或 CPU 版本调整对齐"
+msgstr "-mtune=ARCH\t为指定的芯片或 CPU 版本调整对齐。"
 
 #: config/cris/cris.opt:173
-#, fuzzy, no-c-format
-#| msgid "-mmax-stackframe=SIZE\tWarn when a stackframe is larger than the specified size"
+#, no-c-format
 msgid "-mmax-stackframe=SIZE\tWarn when a stackframe is larger than the specified size."
-msgstr "-mmax-stackframe=N\t当栈帧大于指定值时给出警告"
+msgstr "-mmax-stackframe=N\t当栈帧大于指定值时给出警告。"
 
 #: config/cris/cris.opt:180
 #, no-c-format
@@ -13572,10 +13534,9 @@ msgid "-minline-memops-threshold=<number> Maximum size of memset/memmove/memcpy
 msgstr ""
 
 #: config/mips/mips.opt:32
-#, fuzzy, no-c-format
-#| msgid "-mabi=ABI\tGenerate code that conforms to the given ABI"
+#, no-c-format
 msgid "-mabi=ABI\tGenerate code that conforms to the given ABI."
-msgstr "-mabi=ABI\t生成遵循给定 ABI 的代码"
+msgstr "-mabi=ABI\t生成遵循给定 ABI 的代码。"
 
 #: config/mips/mips.opt:36
 #, no-c-format
@@ -13601,10 +13562,9 @@ msgid "Use integer madd/msub instructions."
 msgstr "使用整数乘加/减指令"
 
 #: config/mips/mips.opt:67
-#, fuzzy, no-c-format
-#| msgid "-march=ISA\tGenerate code for the given ISA"
+#, no-c-format
 msgid "-march=ISA\tGenerate code for the given ISA."
-msgstr "-march=ISA\t为给定的 ISA 生成代码"
+msgstr "-march=ISA\t为给定的 ISA 生成代码。"
 
 #: config/mips/mips.opt:75
 #, fuzzy, no-c-format
@@ -13819,10 +13779,9 @@ msgid "An alias for minterlink-compressed provided for backward-compatibility."
 msgstr "不起作用。为向前兼容保留的选项。"
 
 #: config/mips/mips.opt:285
-#, fuzzy, no-c-format
-#| msgid "-mipsN\tGenerate code for ISA level N"
+#, no-c-format
 msgid "-mipsN\tGenerate code for ISA level N."
-msgstr "-mipsN\t为级别 N 的 ISA 生成代码"
+msgstr "-mipsN\t为级别 N 的 ISA 生成代码。"
 
 #: config/mips/mips.opt:289
 #, no-c-format
@@ -14272,10 +14231,9 @@ msgid "Enable generation of ARC SIMD instructions via target-specific builtins."
 msgstr ""
 
 #: config/arc/arc.opt:234
-#, fuzzy, no-c-format
-#| msgid "-mcpu=CPU\tCompile code for ARC variant CPU"
+#, no-c-format
 msgid "-mcpu=CPU\tCompile code for ARC variant CPU."
-msgstr "-mcpu=CPU\t为 ARC 变种 CPU 编译代码"
+msgstr "-mcpu=CPU\t为 ARC 变种 CPU 编译代码。"
 
 #: config/arc/arc.opt:238
 #, no-c-format
@@ -14289,9 +14247,8 @@ msgstr "为乘法指令设定的开销"
 
 #: config/arc/arc.opt:250
 #, fuzzy, no-c-format
-#| msgid "-mcpu=CPU\tCompile code for ARC variant CPU"
 msgid "-mtune=TUNE\tTune code for given ARC variant."
-msgstr "-mcpu=CPU\t为 ARC 变种 CPU 编译代码"
+msgstr "-mtune=TUNE\t为 ARC 变种 CPU 编译代码"
 
 #: config/arc/arc.opt:284
 #, fuzzy, no-c-format
@@ -14610,10 +14567,9 @@ msgid "Display target specific command line options (including assembler and lin
 msgstr ""
 
 #: common.opt:466
-#, fuzzy, no-c-format
-#| msgid "-O<number>\tSet optimization level to <number>"
+#, no-c-format
 msgid "-O<number>\tSet optimization level to <number>."
-msgstr "-O<N>\t将优化等级设为 N"
+msgstr "-O<N>\t将优化等级设为 N。"
 
 #: common.opt:470
 #, fuzzy, no-c-format
@@ -15058,22 +15014,19 @@ msgid "Warn about unsupported features in ThreadSanitizer."
 msgstr "使用了非原型的函数声明时给出警告"
 
 #: common.opt:904
-#, fuzzy, no-c-format
-#| msgid "-aux-info <file>\tEmit declaration information into <file>"
+#, no-c-format
 msgid "-aux-info <file>\tEmit declaration information into <file>."
-msgstr "-aux-info <文件>\t将声明信息写入文件"
+msgstr "-aux-info <文件>\t将声明信息写入文件。"
 
 #: common.opt:917
-#, fuzzy, no-c-format
-#| msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
+#, no-c-format
 msgid "-d<letters>\tEnable dumps from specific passes of the compiler."
-msgstr "-d<字母>\t为指定的某趟汇译启用内存转储"
+msgstr "-d<字母>\t为指定的某趟汇译启用内存转储。"
 
 #: common.opt:921
-#, fuzzy, no-c-format
-#| msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
+#, no-c-format
 msgid "-dumpbase <file>\tSet the file basename to be used for dumps."
-msgstr "-dumpbase <文件>\t设定内存转储使用的文件基本名"
+msgstr "-dumpbase <文件>\t设定内存转储使用的文件基本名。"
 
 #: common.opt:925
 #, no-c-format
@@ -15081,10 +15034,9 @@ msgid "-dumpbase-ext .<ext>    Drop a trailing .<ext> from the dump basename to
 msgstr ""
 
 #: common.opt:929
-#, fuzzy, no-c-format
-#| msgid "-dumpdir <dir>\tSet the directory name to be used for dumps"
+#, no-c-format
 msgid "-dumpdir <dir>\tSet the directory name to be used for dumps."
-msgstr "-dumpdir <目录>\t设定内存转储使用的目录名"
+msgstr "-dumpdir <目录>\t设定内存转储使用的目录名。"
 
 #: common.opt:1035
 #, fuzzy, no-c-format
@@ -15222,16 +15174,14 @@ msgid "Output callgraph information on a per-file basis with decorations."
 msgstr "为每个函数重用 r30"
 
 #: common.opt:1197
-#, fuzzy, no-c-format
-#| msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
+#, no-c-format
 msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions."
-msgstr "-fcall-saved-<寄存器>\t认为寄存器在函数调用后值不变"
+msgstr "-fcall-saved-<寄存器>\t认为寄存器在函数调用后值不变。"
 
 #: common.opt:1201
-#, fuzzy, no-c-format
-#| msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
+#, no-c-format
 msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls."
-msgstr "-fcall-used-<寄存器>\t认为寄存器的值将被函数调用所改变"
+msgstr "-fcall-used-<寄存器>\t认为寄存器的值将被函数调用所改变。"
 
 #: common.opt:1208
 #, fuzzy, no-c-format
@@ -15279,10 +15229,9 @@ msgid "Put uninitialized globals in the common section."
 msgstr "不将未初始化的全局数据放在公共节中"
 
 #: common.opt:1248
-#, fuzzy, no-c-format
-#| msgid "-fcompare-debug[=<opts>]\tCompile with and without e.g. -gtoggle, and compare the final-insns dump"
+#, no-c-format
 msgid "-fcompare-debug[=<opts>]\tCompile with and without e.g. -gtoggle, and compare the final-insns dump."
-msgstr "-fcompare-debug[=<选项>]\t分别在带与不带“选项”，例如 -gtoggle，的情况下编译，然后比较最后的指令输出"
+msgstr "-fcompare-debug[=<选项>]\t分别在带与不带“选项”，例如 -gtoggle，的情况下编译，然后比较最后的指令输出。"
 
 #: common.opt:1252
 #, fuzzy, no-c-format
@@ -17604,10 +17553,9 @@ msgid "-gz=<format>\tGenerate compressed debug sections in format <format>."
 msgstr "生成默认格式的调试信息"
 
 #: common.opt:3649
-#, fuzzy, no-c-format
-#| msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory"
+#, no-c-format
 msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory."
-msgstr "-iplugindir=<目录>\t将目录设定为默认的插件子目录"
+msgstr "-iplugindir=<目录>\t将目录设定为默认的插件子目录。"
 
 #: common.opt:3653
 #, fuzzy, no-c-format
@@ -17615,10 +17563,9 @@ msgid "-imultiarch <dir>\tSet <dir> to be the multiarch include subdirectory."
 msgstr "-imultilib <目录>\t将目录设定为 multilib 的包含子目录"
 
 #: common.opt:3681
-#, fuzzy, no-c-format
-#| msgid "-o <file>\tPlace output into <file>"
+#, no-c-format
 msgid "-o <file>\tPlace output into <file>."
-msgstr "-o <文件>\t将输出写入文件"
+msgstr "-o <文件>\t将输出写入文件。"
 
 #: common.opt:3685
 #, fuzzy, no-c-format
@@ -19320,10 +19267,8 @@ msgid "compilation terminated.\n"
 msgstr "编译中断。\n"
 
 #: diagnostic.cc:881
-#, fuzzy
-#| msgid "          %s"
 msgid "                 from"
-msgstr "          %s"
+msgstr "          从"
 
 #: diagnostic.cc:882
 msgid "In file included from"
@@ -19331,10 +19276,8 @@ msgstr ""
 
 #. 2
 #: diagnostic.cc:883
-#, fuzzy
-#| msgid "    inlined from %qs"
 msgid "        included from"
-msgstr "    内联自%qs"
+msgstr "        包含自"
 
 #: diagnostic.cc:884
 msgid "In module"
@@ -20087,18 +20030,16 @@ msgid "  -h, --help                      Print this help, then exit\n"
 msgstr "  -h, --help                      打印此帮助并退出\n"
 
 #: gcov.cc:981
-#, fuzzy, c-format
-#| msgid "  -i, --json-format               Output JSON intermediate format into .gcov.json.gz file\n"
+#, c-format
 msgid ""
 "  -j, --json-format               Output JSON intermediate format\n"
 "                                    into .gcov.json.gz file\n"
-msgstr "  -i, --json-format               以 JSON 中间格式输出至 .gcov.json.gz 文件\n"
+msgstr "  -j, --json-format               以 JSON 中间格式输出至 .gcov.json.gz 文件\n"
 
 #: gcov.cc:983
-#, fuzzy, c-format
-#| msgid "  -j, --human-readable            Output human readable numbers\n"
+#, c-format
 msgid "  -H, --human-readable            Output human readable numbers\n"
-msgstr "  -j, --human-readable            输出人类可读的数字\n"
+msgstr "  -H, --human-readable            输出人类可读的数字\n"
 
 #: gcov.cc:984
 #, c-format
@@ -22922,9 +22863,8 @@ msgid "{anonymous}"
 msgstr ""
 
 #: cp/error.cc:1352
-#, fuzzy
 msgid "(anonymous namespace)"
-msgstr "%qT有一个基类%qT使用匿名命名空间"
+msgstr "(匿名命名空间)"
 
 #: cp/error.cc:1452
 #, fuzzy
@@ -22988,22 +22928,16 @@ msgid "At global scope:"
 msgstr "在全局域："
 
 #: cp/error.cc:3665
-#, fuzzy
-#| msgid "    inlined from %qs at %r%s:%d:%d%R"
 msgid "    inlined from %qD at %r%s:%d:%d%R"
-msgstr "    内联自%qs于 %r%s:%d:%d%R"
+msgstr "    内联自%qD于 %r%s:%d:%d%R"
 
 #: cp/error.cc:3670
-#, fuzzy
-#| msgid "    inlined from %qs at %r%s:%d%R"
 msgid "    inlined from %qD at %r%s:%d%R"
-msgstr "    内联自%qs于 %r%s:%d%R"
+msgstr "    内联自%qD于 %r%s:%d%R"
 
 #: cp/error.cc:3676
-#, fuzzy
-#| msgid "    inlined from %qs"
 msgid "    inlined from %qD"
-msgstr "    内联自%qs"
+msgstr "    内联自%qD"
 
 #: cp/error.cc:3703
 #, fuzzy
@@ -24652,10 +24586,9 @@ msgid "%<soft-float%> and long-double-128 are incompatible"
 msgstr "soft-float 与 long-double-128 互不兼容"
 
 #: config/rs6000/rtems.h:121 config/rs6000/rs6000.cc:3471
-#, fuzzy, gcc-internal-format
-#| msgid "-m64 requires a PowerPC64 cpu"
+#, gcc-internal-format
 msgid "%<-m64%> requires a PowerPC64 cpu"
-msgstr "-m64 需要 PowerPC64 CPU"
+msgstr "%<-m64%> 需要 PowerPC64 CPU"
 
 #. The macro SUBTARGET_OVERRIDE_OPTIONS is provided for subtargets, to
 #. get control in TARGET_OPTION_OVERRIDE.
@@ -31882,10 +31815,9 @@ msgid "invalid number of arguments for %<-falign-%s%> option: %qs"
 msgstr "提供给函数%qE的实参太多"
 
 #: opts.cc:2435
-#, fuzzy, gcc-internal-format
-#| msgid "-malign-loops=%d is not between 0 and %d"
+#, gcc-internal-format
 msgid "%<-falign-%s%> is not between 0 and %d"
-msgstr "-malign-loops=%d 不在 0 和 %d 之间"
+msgstr "%<-falign-%s%> 不在 0 和 %d 之间"
 
 #: opts.cc:2494
 #, fuzzy, gcc-internal-format
@@ -33017,27 +32949,24 @@ msgid "Graphite loop optimizations cannot be used (isl is not available) (%<-fgr
 msgstr "石墨循环最佳化无法使用 (-fgraphite，-fgraphite-identity，-floop-block，-floop-flatten，-floop-interchange，-floop-strip-mine，-floop-parallelize-all，而-ftree-loop-linear)"
 
 #: toplev.cc:1297
-#, fuzzy, gcc-internal-format
-#| msgid "-fstack-protector not supported for this target"
+#, gcc-internal-format
 msgid "%<-fcf-protection=full%> is not supported for this target"
-msgstr "-fstack-protector 在此目标机上不受支持"
+msgstr "%<-fcf-protection=full%> 在此目标机上不受支持"
 
 #: toplev.cc:1304
-#, fuzzy, gcc-internal-format
-#| msgid "-fstack-protector not supported for this target"
+#, gcc-internal-format
 msgid "%<-fcf-protection=branch%> is not supported for this target"
-msgstr "-fstack-protector 在此目标机上不受支持"
+msgstr "%<-fcf-protection=branch%> 在此目标机上不受支持"
 
 #: toplev.cc:1311
-#, fuzzy, gcc-internal-format
-#| msgid "-fstack-protector not supported for this target"
+#, gcc-internal-format
 msgid "%<-fcf-protection=return%> is not supported for this target"
-msgstr "-fstack-protector 在此目标机上不受支持"
+msgstr "%<-fcf-protection=return%> 在此目标机上不受支持"
 
 #: toplev.cc:1326
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%<-fabi-version=1%> is no longer supported"
-msgstr "开关%qs不再被支持"
+msgstr "%<-fabi-version=1%> 不再被支持"
 
 #: toplev.cc:1342
 #, gcc-internal-format
@@ -33093,10 +33022,9 @@ msgid "%<-ffunction-sections%> not supported for this target"
 msgstr "-ffunction-sections 在此目标机上不受支持"
 
 #: toplev.cc:1534
-#, fuzzy, gcc-internal-format
-#| msgid "-fdata-sections not supported for this target"
+#, gcc-internal-format
 msgid "%<-fdata-sections%> not supported for this target"
-msgstr "-fdata-sections 在此目标机上不受支持"
+msgstr "%<-fdata-sections%> 在此目标机上不受支持"
 
 #: toplev.cc:1542
 #, fuzzy, gcc-internal-format
@@ -33117,10 +33045,9 @@ msgid "%<-fprefetch-loop-arrays%> is not supported with %<-Os%>"
 msgstr "-fprefetch-loop-arrays 不支持与 -Os 并用"
 
 #: toplev.cc:1570
-#, fuzzy, gcc-internal-format
-#| msgid "-fassociative-math disabled; other options take precedence"
+#, gcc-internal-format
 msgid "%<-fassociative-math%> disabled; other options take precedence"
-msgstr "-fassociative-math 为其他选项所禁用"
+msgstr "%<-fassociative-math%> 为其他选项所禁用"
 
 #: toplev.cc:1578
 #, fuzzy, gcc-internal-format
@@ -38078,10 +38005,9 @@ msgid "%qE is a member of a union"
 msgstr "%qD不是一个成员模板函数"
 
 #: c-family/c-opts.cc:343
-#, fuzzy, gcc-internal-format
-#| msgid "-I- specified twice"
+#, gcc-internal-format
 msgid "%<-I-%> specified twice"
-msgstr "-I- 指定了两次"
+msgstr "%<-I-%> 指定了两次"
 
 #: c-family/c-opts.cc:346
 #, fuzzy, gcc-internal-format
@@ -38225,16 +38151,14 @@ msgid "%<-MG%> may only be used with %<-M%> or %<-MM%>"
 msgstr "-MG 只能与 -M 或 -MM 一起使用"
 
 #: c-family/c-opts.cc:1529
-#, fuzzy, gcc-internal-format
-#| msgid "-fdirectives-only is incompatible with -Wunused_macros"
+#, gcc-internal-format
 msgid "%<-fdirectives-only%> is incompatible with %<-Wunused-macros%>"
-msgstr "-fdirectives-only 与 -Wunused_macros 不兼容"
+msgstr "%<-fdirectives-only%> 与 %<-Wunused-macros%> 不兼容"
 
 #: c-family/c-opts.cc:1532
-#, fuzzy, gcc-internal-format
-#| msgid "-fdirectives-only is incompatible with -traditional"
+#, gcc-internal-format
 msgid "%<-fdirectives-only%> is incompatible with %<-traditional%>"
-msgstr "-fdirectives-only 与 -traditional 不兼容"
+msgstr "%<-fdirectives-only%> 与 %<-traditional%> 不兼容"
 
 #: c-family/c-opts.cc:1634
 #, gcc-internal-format
@@ -42070,10 +41994,9 @@ msgid "enabling callee interworking support is only meaningful when compiling fo
 msgstr "被调用者协作只在为 Thumb 编译时有意义"
 
 #: config/arm/arm.cc:3001
-#, fuzzy, gcc-internal-format
-#| msgid "-g with -mno-apcs-frame may not give sensible debugging"
+#, gcc-internal-format
 msgid "%<-g%> with %<-mno-apcs-frame%> may not give sensible debugging"
-msgstr "-g 与 -mno-apcs-frame 并用可能不能给出有意义的调试信息"
+msgstr "%<-g%> 与 %<-mno-apcs-frame%> 并用可能不能给出有意义的调试信息"
 
 #: config/arm/arm.cc:3006
 #, gcc-internal-format
@@ -42142,10 +42065,9 @@ msgid "%<-mapcs-stack-check%> incompatible with %<-mno-apcs-frame%>"
 msgstr "-mapcs-stack-check 和 -mno-apcs-frame 互不兼容"
 
 #: config/arm/arm.cc:3652
-#, fuzzy, gcc-internal-format
-#| msgid "-fpic and -mapcs-reent are incompatible"
+#, gcc-internal-format
 msgid "%<-fpic%> and %<-mapcs-reent%> are incompatible"
-msgstr "-fpic 和 -mapcs-reent 互不兼容"
+msgstr "%<-fpic%> 和 %<-mapcs-reent%> 互不兼容"
 
 #: config/arm/arm.cc:3655
 #, gcc-internal-format
@@ -42453,26 +42375,24 @@ msgid "unknown core architecture %qs specified with %qs"
 msgstr "不能为%q+D指定对齐"
 
 #: config/avr/avr.cc:1150 config/pru/pru.cc:601 config/visium/visium.cc:422
-#, fuzzy, gcc-internal-format
-#| msgid "-fpic is not supported"
+#, gcc-internal-format
 msgid "%<-fpic%> is not supported"
-msgstr "不支持 -fpic"
+msgstr "不支持 %<-fpic%>"
 
 #: config/avr/avr.cc:1152 config/pru/pru.cc:603 config/visium/visium.cc:424
-#, fuzzy, gcc-internal-format
-#| msgid "-fPIC is not supported"
+#, gcc-internal-format
 msgid "%<-fPIC%> is not supported"
-msgstr "不支持 -fPIC"
+msgstr "不支持 %<-fPIC%>"
 
 #: config/avr/avr.cc:1154 config/pru/pru.cc:605
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%<-fpie%> is not supported"
-msgstr "不支持"
+msgstr "不支持 %<-fpie%>"
 
 #: config/avr/avr.cc:1156 config/pru/pru.cc:607
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%<-fPIE%> is not supported"
-msgstr "不支持"
+msgstr "不支持 %<-fPIE%>"
 
 #: config/avr/avr.cc:1452 config/avr/avr.cc:1457 config/riscv/riscv.cc:9730
 #, fuzzy, gcc-internal-format
@@ -43947,10 +43867,9 @@ msgid "%<-fcf-protection=full%> is not enabled by %<-fhardened%> because it was
 msgstr ""
 
 #: config/i386/i386-options.cc:3280
-#, fuzzy, gcc-internal-format
-#| msgid "-mnop-mcount is not compatible with this target"
+#, gcc-internal-format
 msgid "%<-fcf-protection%> is not compatible with this target"
-msgstr "-mnop-mcount 与此目标不兼容"
+msgstr "%<-fcf-protection%> 与此目标不兼容"
 
 #: config/i386/i386-options.cc:3447
 #, fuzzy, gcc-internal-format
@@ -44678,16 +44597,14 @@ msgid "%<-mpcrel%> %<-fPIC%> is not currently supported on selected cpu"
 msgstr "-mpcrel -fPIC 目前在所选的 CPU 上不受支持"
 
 #: config/m68k/m68k.cc:670
-#, fuzzy, gcc-internal-format
-#| msgid "-falign-labels=%d is not supported"
+#, gcc-internal-format
 msgid "%<-falign-labels=%d%> is not supported"
-msgstr "不支持 -falign-labels=%d"
+msgstr "不支持 %<-falign-labels=%d%>"
 
 #: config/m68k/m68k.cc:677
-#, fuzzy, gcc-internal-format
-#| msgid "-falign-loops=%d is not supported"
+#, gcc-internal-format
 msgid "%<-falign-loops=%d%> is not supported"
-msgstr "不支持 -falign-loops=%d"
+msgstr "不支持 %<-falign-loops=%d%>"
 
 #: config/m68k/m68k.cc:685
 #, fuzzy, gcc-internal-format
@@ -45849,16 +45766,14 @@ msgid "PIC code generation is not compatible with fast indirect calls"
 msgstr "PIC 代码生成与快速间接调用不兼容"
 
 #: config/pa/pa.cc:547
-#, fuzzy, gcc-internal-format
-#| msgid "-g is only supported when using GAS on this processor,"
+#, gcc-internal-format
 msgid "%<-g%> is only supported when using GAS on this processor"
-msgstr "此处理器只有使用 GAS 时才支持 -g"
+msgstr "此处理器只有使用 GAS 时才支持 %<-g%>"
 
 #: config/pa/pa.cc:548
-#, fuzzy, gcc-internal-format
-#| msgid "-g option disabled"
+#, gcc-internal-format
 msgid "%<-g%> option disabled"
-msgstr "-g 选项已被禁用"
+msgstr "%<-g%> 选项已被禁用"
 
 #: config/pru/pru-passes.cc:111
 #, fuzzy, gcc-internal-format
@@ -47592,10 +47507,9 @@ msgid "%<-fexcess-precision=standard%> for Ada"
 msgstr "对 Ada 而言 -fexcess-precision=standard"
 
 #: ada/gcc-interface/misc.cc:260
-#, fuzzy, gcc-internal-format
-#| msgid "-fexcess-precision=standard for Ada"
+#, gcc-internal-format
 msgid "%<-fexcess-precision=16%> for Ada"
-msgstr "对 Ada 而言 -fexcess-precision=standard"
+msgstr "对 Ada 而言 %<-fexcess-precision=16%>"
 
 #: ada/gcc-interface/trans.cc:348
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -55261,10 +55175,8 @@ msgid "choosing %qD over %qD"
 msgstr "选择%qD而不是%qD"
 
 #: cp/call.cc:13104
-#, fuzzy
-#| msgid "  for conversion from %qT to %qT"
 msgid "  for conversion from %qH to %qI"
-msgstr "以从%qT转换为%qT"
+msgstr "以从%qH转换为%qI"
 
 #: cp/call.cc:13107
 #, gcc-internal-format
@@ -55277,16 +55189,14 @@ msgid "default argument mismatch in overload resolution"
 msgstr "重载解决时默认参数不匹配"
 
 #: cp/call.cc:13395
-#, fuzzy, gcc-internal-format
-#| msgid " candidate 1: %q+#F"
+#, gcc-internal-format
 msgid " candidate 1: %q#F"
-msgstr "备选 1: %q+#F"
+msgstr "备选 1: %q#F"
 
 #: cp/call.cc:13397
-#, fuzzy, gcc-internal-format
-#| msgid " candidate 2: %q+#F"
+#, gcc-internal-format
 msgid " candidate 2: %q#F"
-msgstr "备选 2: %q+#F"
+msgstr "备选 2: %q#F"
 
 #: cp/call.cc:13443
 #, gcc-internal-format
@@ -55484,10 +55394,9 @@ msgid "%qD was hidden"
 msgstr "%q+D为"
 
 #: cp/class.cc:3304
-#, fuzzy, gcc-internal-format
-#| msgid "  by %q+D"
+#, gcc-internal-format
 msgid "  by %qD"
-msgstr "%q+D所隐藏"
+msgstr "%qD所隐藏"
 
 #: cp/class.cc:3516
 #, fuzzy, gcc-internal-format
@@ -58479,10 +58388,9 @@ msgid "  enters synchronized or atomic statement"
 msgstr "  进入了同步化或原子化语句"
 
 #: cp/decl.cc:3794 cp/decl.cc:3947
-#, fuzzy, gcc-internal-format
-#| msgid "jump into statement expression"
+#, gcc-internal-format
 msgid "  enters statement expression"
-msgstr "跳转至语句表达式中"
+msgstr "进入了语句表达式"
 
 #: cp/decl.cc:3801 cp/decl.cc:3943
 #, gcc-internal-format
@@ -61281,10 +61189,9 @@ msgid "no functions named %qD"
 msgstr "在函数%qs中"
 
 #: cp/decl2.cc:925
-#, fuzzy, gcc-internal-format
-#| msgid "label %qD defined here"
+#, gcc-internal-format
 msgid "%#qT defined here"
-msgstr "标号%qD在此定义"
+msgstr "%#qT在此定义"
 
 #: cp/decl2.cc:985
 #, gcc-internal-format
@@ -62010,10 +61917,9 @@ msgid "base %qT will be initialized after"
 msgstr "基类%qT将在"
 
 #: cp/init.cc:1358
-#, fuzzy, gcc-internal-format
-#| msgid "  %q+#D"
+#, gcc-internal-format
 msgid "  %q#D"
-msgstr "%q+#D"
+msgstr "  %q+#D"
 
 #: cp/init.cc:1360
 #, gcc-internal-format
@@ -66557,10 +66463,9 @@ msgid "specialization of %qD in different namespace"
 msgstr "在不同命名空间内对%qD的特例化"
 
 #: cp/pt.cc:891
-#, fuzzy, gcc-internal-format
-#| msgid "  from definition of %q+#D"
+#, gcc-internal-format
 msgid "  from definition of %q#D"
-msgstr "  从%q+#D的定义"
+msgstr "  从%q#D的定义"
 
 #: cp/pt.cc:908
 #, gcc-internal-format
@@ -66810,10 +66715,9 @@ msgid "        %qD"
 msgstr "       %qD"
 
 #: cp/pt.cc:4364
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "          %s"
+#, gcc-internal-format, gfc-internal-format
 msgid "        %s"
-msgstr "          %s"
+msgstr "        %s"
 
 #: cp/pt.cc:4490
 #, fuzzy, gcc-internal-format
@@ -70216,10 +70120,9 @@ msgid "  because the following virtual functions are pure within %qT:"
 msgstr "因为下列虚函数在%qT中为纯虚函数："
 
 #: cp/typeck2.cc:242
-#, fuzzy, gcc-internal-format
-#| msgid "        %qD"
+#, gcc-internal-format
 msgid "    %#qD"
-msgstr "       %qD"
+msgstr "       %#qD"
 
 #: cp/typeck2.cc:282
 #, fuzzy, gcc-internal-format
@@ -80683,10 +80586,9 @@ msgid "%<-fexcess-precision=standard%> for Fortran"
 msgstr "对 Fortran 而言 -fexcess-precision=standard"
 
 #: fortran/options.cc:292
-#, fuzzy, gcc-internal-format
-#| msgid "-fexcess-precision=standard for Fortran"
+#, gcc-internal-format
 msgid "%<-fexcess-precision=16%> for Fortran"
-msgstr "对 Fortran 而言 -fexcess-precision=standard"
+msgstr "对 Fortran 而言 %<-fexcess-precision=16%>"
 
 #: fortran/options.cc:386
 #, fuzzy, gcc-internal-format
@@ -85854,10 +85756,9 @@ msgid "gfc_trans_select(): Bad type for case expr."
 msgstr "gfc_trans_code()：错误的语句代码"
 
 #: fortran/trans-types.cc:537
-#, fuzzy, gcc-internal-format
-#| msgid "-freorder-blocks-and-partition not supported on this architecture"
+#, gcc-internal-format
 msgid "%<-fconvert=r16_ieee%> or %<-fconvert=r16_ibm%> not supported on this architecture"
-msgstr "-freorder-blocks-and-partition 不能在此架构下工作"
+msgstr "%<-fconvert=r16_ieee%> 或 %<-fconvert=r16_ibm%> 不能在此架构下工作"
 
 #: fortran/trans-types.cc:550
 #, fuzzy, gcc-internal-format

commit 164a4a57139cd33c650cbe2f3cf2daafda521727
Author: Joseph Myers <josmyers@redhat.com>
Date:   Thu Sep 19 21:10:19 2024 +0000

    Update cpplib zh_CN.po
    
            * zh_CN.po: Update.

diff --git a/libcpp/po/zh_CN.po b/libcpp/po/zh_CN.po
index 7c7c4d9cdf7..bc9c734331f 100644
--- a/libcpp/po/zh_CN.po
+++ b/libcpp/po/zh_CN.po
@@ -2,22 +2,22 @@
 # Copyright (C) 2005 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gcc package.
 # Meng Jie <zuxy.meng@gmail.com>, 2005-2010.
+# Zhanhaoxiang Zhang <zzhx2006@outlook.com>, 2024.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: cpplib 4.6.0\n"
+"Project-Id-Version: cpplib 14.1-b20240218\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
 "POT-Creation-Date: 2024-02-16 21:34+0000\n"
-"PO-Revision-Date: 2011-05-12 17:23+0800\n"
-"Last-Translator: Meng Jie <zuxy.meng@gmail.com>\n"
+"PO-Revision-Date: 2024-09-16 08:23+0800\n"
+"Last-Translator: Zhanhaoxiang Zhang <zzhx2006@outlook.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Poedit-Language: Chinese\n"
-"X-Poedit-Country: CHINA\n"
+"X-Generator: Poedit 3.4.2\n"
 
 #: charset.cc:759
 #, c-format
@@ -52,10 +52,8 @@ msgid "universal character names are only valid in C++ and C99"
 msgstr "Unicode 字符名只在 C++ 和 C99 中有效"
 
 #: charset.cc:1553
-#, fuzzy
-#| msgid "universal character names are only valid in C++ and C99"
 msgid "C99's universal character names are incompatible with C90"
-msgstr "Unicode 字符名只在 C++ 和 C99 中有效"
+msgstr "C99 的 Unicode 字符名与 C90 不兼容"
 
 #: charset.cc:1556
 #, c-format
@@ -63,53 +61,45 @@ msgid "the meaning of '\\%c' is different in traditional C"
 msgstr "‘\\%c’的意义与在传统 C 中不同"
 
 #: charset.cc:1595
-#, fuzzy
-#| msgid "'?' without following ':'"
 msgid "'\\N' not followed by '{'"
-msgstr "‘?’后没有‘:’"
+msgstr "‘\\N’后没有‘{’"
 
 #: charset.cc:1625
 msgid "empty named universal character escape sequence; treating it as separate tokens"
-msgstr ""
+msgstr "空的命名 Unicode 字符转义序列；将其视为独立 token 处理"
 
 #: charset.cc:1632
-#, fuzzy
-#| msgid "incomplete universal character name %.*s"
 msgid "empty named universal character escape sequence"
-msgstr "不完全的 Unicode 字符名 %.*s"
+msgstr "空的命名 Unicode 字符转义序列"
 
 #: charset.cc:1637
-#, fuzzy
-#| msgid "universal character names are only valid in C++ and C99"
 msgid "named universal character escapes are only valid in C++23"
-msgstr "Unicode 字符名只在 C++ 和 C99 中有效"
+msgstr "命名 Unicode 字符转义序列(named universal character escapes)仅在 C++23 中有效"
 
 #: charset.cc:1657
-#, fuzzy, c-format
-#| msgid "%.*s is not a valid universal character"
+#, c-format
 msgid "\\N{%.*s} is not a valid universal character; treating it as separate tokens"
-msgstr "%.*s 不是一个有效的 Unicode 字符"
+msgstr "\\N{%.*s} 不是一个有效的 Unicode 字符；将其视为独立 token 处理"
 
 #: charset.cc:1663
-#, fuzzy, c-format
-#| msgid "%.*s is not a valid universal character"
+#, c-format
 msgid "\\N{%.*s} is not a valid universal character"
-msgstr "%.*s 不是一个有效的 Unicode 字符"
+msgstr "\\N{%.*s} 不是一个有效的 Unicode 字符"
 
 #: charset.cc:1673
 #, c-format
 msgid "did you mean \\N{%s}?"
-msgstr ""
+msgstr "你是说 \\N{%s} 吗？"
 
 #: charset.cc:1691
 #, c-format
 msgid "'\\N{' not terminated with '}' after %.*s; treating it as separate tokens"
-msgstr ""
+msgstr "在 %.*s 之后 '\\N{' 未以 '}' 结束；将其视为独立 token 处理"
 
 #: charset.cc:1700
 #, c-format
 msgid "'\\N{' not terminated with '}' after %.*s"
-msgstr ""
+msgstr "在 %.*s 之后 '\\N{' 未以 '}' 结束"
 
 #: charset.cc:1708
 msgid "In _cpp_valid_ucn but not a UCN"
@@ -117,22 +107,20 @@ msgstr "在 _cpp_valid_ucn 中但不是一个 UCN"
 
 #: charset.cc:1750
 msgid "empty delimited escape sequence; treating it as separate tokens"
-msgstr ""
+msgstr "空的带分隔符的转义序列；将其视为独立 token 处理"
 
 #: charset.cc:1757 charset.cc:2124 charset.cc:2227
 msgid "empty delimited escape sequence"
-msgstr ""
+msgstr "空的带分隔符的转义序列"
 
 #: charset.cc:1761 charset.cc:2130 charset.cc:2233
-#, fuzzy
-#| msgid "universal character names are only valid in C++ and C99"
 msgid "delimited escape sequences are only valid in C++23"
-msgstr "Unicode 字符名只在 C++ 和 C99 中有效"
+msgstr "带分隔符的转义序列仅在 C++23 中有效"
 
 #: charset.cc:1775
 #, c-format
 msgid "'\\u{' not terminated with '}' after %.*s; treating it as separate tokens"
-msgstr ""
+msgstr "在 %.*s 之后 '\\u{' 未以 '}' 结束；将其视为独立 token 处理"
 
 #: charset.cc:1787
 #, c-format
@@ -142,7 +130,7 @@ msgstr "不完全的 Unicode 字符名 %.*s"
 #: charset.cc:1791
 #, c-format
 msgid "'\\u{' not terminated with '}' after %.*s"
-msgstr ""
+msgstr "在 %.*s 之后 '\\u{' 未以 '}' 结束"
 
 #: charset.cc:1806
 #, c-format
@@ -166,7 +154,7 @@ msgstr "Unicode 字符 %.*s 在标识符开头无效"
 #: charset.cc:1837
 #, c-format
 msgid "%.*s is outside the UCS codespace"
-msgstr ""
+msgstr "%.*s 超出了 UCS 码空间"
 
 #: charset.cc:1881 charset.cc:3037
 msgid "converting UCN to source character set"
@@ -177,16 +165,14 @@ msgid "converting UCN to execution character set"
 msgstr "将 UCN 转换到执行字符集"
 
 #: charset.cc:1952
-#, fuzzy, c-format
-#| msgid "universal character %.*s is not valid in an identifier"
+#, c-format
 msgid "extended character %.*s is not valid in an identifier"
-msgstr "Unicode 字符 %.*s 在标识符中无效"
+msgstr "扩展字符 %.*s 在标识符中无效"
 
 #: charset.cc:1969
-#, fuzzy, c-format
-#| msgid "universal character %.*s is not valid at the start of an identifier"
+#, c-format
 msgid "extended character %.*s is not valid at the start of an identifier"
-msgstr "Unicode 字符 %.*s 在标识符开头无效"
+msgstr "扩展字符 %.*s 在标识符开头无效"
 
 #: charset.cc:2091
 msgid "the meaning of '\\x' is different in traditional C"
@@ -199,22 +185,20 @@ msgstr "\\x 后没有 16 进制数字"
 #: charset.cc:2144
 #, c-format
 msgid "'\\x{' not terminated with '}' after %.*s"
-msgstr ""
+msgstr "在 %.*s 之后 '\\x{' 未以 '}' 结束"
 
 #: charset.cc:2152
 msgid "hex escape sequence out of range"
 msgstr "16 进制转义序列越界"
 
 #: charset.cc:2195
-#, fuzzy
-#| msgid "'?' without following ':'"
 msgid "'\\o' not followed by '{'"
-msgstr "‘?’后没有‘:’"
+msgstr "‘\\o’后没有‘{’"
 
 #: charset.cc:2239
 #, c-format
 msgid "'\\o{' not terminated with '}' after %.*s"
-msgstr ""
+msgstr "在 %.*s 之后 '\\o{' 未以 '}' 结束"
 
 #: charset.cc:2248
 msgid "octal escape sequence out of range"
@@ -223,7 +207,7 @@ msgstr "8 进制转义序列越界"
 #: charset.cc:2300 charset.cc:2310
 #, c-format
 msgid "numeric escape sequence in unevaluated string: '\\%c'"
-msgstr ""
+msgstr "数值转义序列在未求值的字符串中：‘%c’"
 
 #: charset.cc:2338
 msgid "the meaning of '\\a' is different in traditional C"
@@ -250,30 +234,28 @@ msgstr "将转义序列转换到执行字符集"
 
 #: charset.cc:2511
 msgid "missing open quote"
-msgstr ""
+msgstr "缺少开引号"
 
 #: charset.cc:2772
-#, fuzzy
-#| msgid "character 0x%lx is not unibyte in execution character set"
 msgid "character not encodable in a single execution character code unit"
-msgstr "字符 0x%lx 在执行字符集中不是单字节的"
+msgstr "字符无法在单个执行字符码元中编码"
 
 #: charset.cc:2777
 msgid "at least one character in a multi-character literal not encodable in a single execution character code unit"
-msgstr ""
+msgstr "在多字符字面量中至少有一个字符无法在一个单独的执行字符码元中编码"
 
 #: charset.cc:2795
 #, c-format
 msgid "multi-character literal with %ld characters exceeds 'int' size of %ld bytes"
-msgstr ""
+msgstr "带有 %ld 个字符的多字符字面量超过了 ‘int’ 的大小，即 %ld 字节"
 
 #: charset.cc:2799 charset.cc:2894
 msgid "multi-character literal cannot have an encoding prefix"
-msgstr ""
+msgstr "多字符字面量不能有编码前缀"
 
 #: charset.cc:2802 charset.cc:2897
 msgid "character not encodable in a single code unit"
-msgstr ""
+msgstr "字符无法在单个码元中编码"
 
 #: charset.cc:2806
 msgid "multi-character character constant"
@@ -299,16 +281,14 @@ msgid "#%s is a GCC extension"
 msgstr "#%s 是一个 GCC 扩展"
 
 #: directives.cc:394 directives.cc:2163 directives.cc:2202
-#, fuzzy, c-format
-#| msgid "#%s is a GCC extension"
+#, c-format
 msgid "#%s before C++23 is a GCC extension"
-msgstr "#%s 是一个 GCC 扩展"
+msgstr "#%s 在C++23以前是一个 GCC 扩展"
 
 #: directives.cc:397 directives.cc:401 directives.cc:2167 directives.cc:2206
-#, fuzzy, c-format
-#| msgid "#%s is a GCC extension"
+#, c-format
 msgid "#%s before C23 is a GCC extension"
-msgstr "#%s 是一个 GCC 扩展"
+msgstr "#%s 在C23以前是一个 GCC 扩展"
 
 #: directives.cc:407
 #, c-format
@@ -338,10 +318,9 @@ msgid "style of line directive is a GCC extension"
 msgstr "line 指示的风格是一个 GCC 扩展"
 
 #: directives.cc:556
-#, fuzzy, c-format
-#| msgid "invalid preprocessing directive #%s"
+#, c-format
 msgid "invalid preprocessing directive #%s; did you mean #%s?"
-msgstr "无效的预处理指示 #%s"
+msgstr "无效的预处理指令 #%s；你是说 #%s 吗？"
 
 #: directives.cc:562
 #, c-format
@@ -349,10 +328,9 @@ msgid "invalid preprocessing directive #%s"
 msgstr "无效的预处理指示 #%s"
 
 #: directives.cc:632
-#, fuzzy, c-format
-#| msgid "\"defined\" cannot be used as a macro name"
+#, c-format
 msgid "\"%s\" cannot be used as a macro name"
-msgstr "“defined”不能被用作宏名"
+msgstr "“%s”不能被用作宏名"
 
 #: directives.cc:639
 #, c-format
@@ -390,7 +368,7 @@ msgstr "#%s 中文件名为空"
 #: directives.cc:873
 #, c-format
 msgid "#include nested depth %u exceeds maximum of %u (use -fmax-include-depth=DEPTH to increase the maximum)"
-msgstr ""
+msgstr "#include 嵌套深度 %u 超出了最大值 %u（使用 -fmax-include-depth=DEPTH 来增加最大值）"
 
 #: directives.cc:918
 msgid "#include_next in primary source file"
@@ -427,7 +405,7 @@ msgstr "# 后的“%s”不是一个正整数"
 #: directives.cc:1143
 #, c-format
 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
-msgstr ""
+msgstr "文件 “%s” 中的行标记因嵌套不正确而被忽略"
 
 #: directives.cc:1221 directives.cc:1223 directives.cc:1225 directives.cc:1816
 #, c-format
@@ -504,10 +482,9 @@ msgid "current file is older than %s"
 msgstr "当前文件早于 %s"
 
 #: directives.cc:1811
-#, fuzzy, c-format
-#| msgid "invalid #pragma GCC poison directive"
+#, c-format
 msgid "invalid \"#pragma GCC %s\" directive"
-msgstr "无效的 #pragma GCC poison 指示"
+msgstr "无效的 #pragma GCC %s 指示"
 
 #: directives.cc:2019
 msgid "_Pragma takes a parenthesized string literal"
@@ -526,16 +503,14 @@ msgid "the conditional began here"
 msgstr "条件自此开始"
 
 #: directives.cc:2135
-#, fuzzy, c-format
-#| msgid "#else without #if"
+#, c-format
 msgid "#%s without #if"
-msgstr "#else 没有匹配的 #if"
+msgstr "#%s 没有匹配的 #if"
 
 #: directives.cc:2140
-#, fuzzy, c-format
-#| msgid "#else after #else"
+#, c-format
 msgid "#%s after #else"
-msgstr "#else 出现在 #else 后"
+msgstr "#%s 出现在 #else 后"
 
 #: directives.cc:2242
 msgid "#endif without #if"
@@ -589,10 +564,8 @@ msgid "invalid prefix \"0b\" for floating constant"
 msgstr "浮点常量的“0b”前缀无效"
 
 #: expr.cc:705
-#, fuzzy
-#| msgid "use of C99 hexadecimal floating constant"
 msgid "use of C++17 hexadecimal floating constant"
-msgstr "使用 C99 式的 16 进制浮点常量"
+msgstr "使用 C++17 式的 16 进制浮点常量"
 
 #: expr.cc:708
 msgid "use of C99 hexadecimal floating constant"
@@ -618,10 +591,8 @@ msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
 msgstr "十六进制浮点常量的“%.*s”后缀无效"
 
 #: expr.cc:790 expr.cc:794
-#, fuzzy
-#| msgid "decimal float constants are a GCC extension"
 msgid "decimal float constants are a C23 feature"
-msgstr "十进制浮点常量是一个 GCC 扩展"
+msgstr "十进制浮点常量是一个 C23 特性"
 
 #: expr.cc:813
 #, c-format
@@ -629,52 +600,40 @@ msgid "invalid suffix \"%.*s\" on integer constant"
 msgstr "整数常量的“%.*s”后缀无效"
 
 #: expr.cc:838
-#, fuzzy
-#| msgid "use of C++0x long long integer constant"
 msgid "use of C++11 long long integer constant"
-msgstr "使用 C++0x long long 整数常量"
+msgstr "使用 C++11 long long 整数常量"
 
 #: expr.cc:839
 msgid "use of C99 long long integer constant"
 msgstr "使用 C99 long long 整数常量"
 
 #: expr.cc:853
-#, fuzzy
-#| msgid "use of C++0x long long integer constant"
 msgid "use of C++23 %<size_t%> integer constant"
-msgstr "使用 C++0x long long 整数常量"
+msgstr "使用 C++23 %<size_t%> 整数常量"
 
 #: expr.cc:854
-#, fuzzy
-#| msgid "use of C++0x long long integer constant"
 msgid "use of C++23 %<make_signed_t<size_t>%> integer constant"
-msgstr "使用 C++0x long long 整数常量"
+msgstr "使用 C++23 %<make_signed_t<size_t>%> 整数常量"
 
 #: expr.cc:864 expr.cc:875
 msgid "ISO C does not support literal %<wb%> suffixes before C23"
-msgstr ""
+msgstr "在 C23 之前，ISO C 不支持字面量 %<wb%> 后缀"
 
 #: expr.cc:888
 msgid "imaginary constants are a GCC extension"
 msgstr "虚数常量是一个 GCC 扩展"
 
 #: expr.cc:895
-#, fuzzy
-#| msgid "binary constants are a GCC extension"
 msgid "binary constants are a C++14 feature or GCC extension"
-msgstr "二进制常量是一个 GCC 扩展"
+msgstr "二进制常量是一个 C++14 特性或 GCC 扩展"
 
 #: expr.cc:897
-#, fuzzy
-#| msgid "binary constants are a GCC extension"
 msgid "binary constants are a C23 feature or GCC extension"
-msgstr "二进制常量是一个 GCC 扩展"
+msgstr "二进制常量是一个 C23 特性或 GCC 扩展"
 
 #: expr.cc:902
-#, fuzzy
-#| msgid "binary constants are a GCC extension"
 msgid "binary constants are a C23 feature"
-msgstr "二进制常量是一个 GCC 扩展"
+msgstr "二进制常量是一个 C23 特性"
 
 #: expr.cc:998
 msgid "integer constant is too large for its type"
@@ -702,10 +661,8 @@ msgid "this use of \"defined\" may not be portable"
 msgstr "使用“defined”可能不利于移植"
 
 #: expr.cc:1197
-#, fuzzy
-#| msgid "integer overflow in preprocessor expression"
 msgid "user-defined literal in preprocessor expression"
-msgstr "预处理表达式中整数溢出"
+msgstr "预处理表达式中的用户定义字面量"
 
 #: expr.cc:1202
 msgid "floating constant in preprocessor expression"
@@ -716,10 +673,9 @@ msgid "imaginary number in preprocessor expression"
 msgstr "预处理表达式中出现虚数"
 
 #: expr.cc:1257
-#, fuzzy, c-format
-#| msgid "\"%s\" is not defined"
+#, c-format
 msgid "\"%s\" is not defined, evaluates to 0"
-msgstr "“%s”未定义"
+msgstr "\"%s\" 未定义，计算结果为 0"
 
 #: expr.cc:1270
 msgid "assertions are a GCC extension"
@@ -867,50 +823,50 @@ msgstr "三元符 ??%c 被忽略，请使用 -trigraphs 来启用"
 
 #: lex.cc:1610
 msgid "end of bidirectional context"
-msgstr ""
+msgstr "双向上下文的结束"
 
 #: lex.cc:1651
 msgid "unpaired UTF-8 bidirectional control characters detected"
-msgstr ""
+msgstr "检测到未配对的 UTF-8 双向控制字符"
 
 #: lex.cc:1655
 msgid "unpaired UTF-8 bidirectional control character detected"
-msgstr ""
+msgstr "检测到未配对的 UTF-8 双向控制字符"
 
 #: lex.cc:1693
 #, c-format
 msgid "UTF-8 vs UCN mismatch when closing a context by \"%s\""
-msgstr ""
+msgstr "通过 “%s” 关闭上下文时，UTF-8 与 UCN 不匹配"
 
 #: lex.cc:1702
 #, c-format
 msgid "\"%s\" is closing an unopened context"
-msgstr ""
+msgstr "“%s” 正在关闭一个未打开的上下文"
 
 #: lex.cc:1706
 #, c-format
 msgid "found problematic Unicode character \"%s\""
-msgstr ""
+msgstr "发现了有问题的 Unicode 字符 “%s”"
 
 #: lex.cc:1736 lex.cc:1742
 #, c-format
 msgid "invalid UTF-8 character <%x>"
-msgstr ""
+msgstr "无效的 UTF-8 字符 <%x>"
 
 #: lex.cc:1752 lex.cc:1758
 #, c-format
 msgid "invalid UTF-8 character <%x><%x>"
-msgstr ""
+msgstr "无效的 UTF-8 字符 <%x><%x>"
 
 #: lex.cc:1768 lex.cc:1774
 #, c-format
 msgid "invalid UTF-8 character <%x><%x><%x>"
-msgstr ""
+msgstr "无效的 UTF-8 字符 <%x><%x><%x>"
 
 #: lex.cc:1784 lex.cc:1790
 #, c-format
 msgid "invalid UTF-8 character <%x><%x><%x><%x>"
-msgstr ""
+msgstr "无效的 UTF-8 字符 <%x><%x><%x><%x>"
 
 #: lex.cc:1872
 msgid "\"/*\" within comment"
@@ -937,17 +893,15 @@ msgstr "‘%.*s’不在 NFC 中"
 
 #: lex.cc:2144
 msgid "__VA_OPT__ is not available until C++20"
-msgstr ""
+msgstr "__VA_OPT__ 直到 C++20 才可用"
 
 #: lex.cc:2147
 msgid "__VA_OPT__ is not available until C23"
-msgstr ""
+msgstr "__VA_OPT__ 直到 C23 才可用"
 
 #: lex.cc:2155
-#, fuzzy
-#| msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
 msgid "__VA_OPT__ can only appear in the expansion of a C++20 variadic macro"
-msgstr "__VA_ARGS__ 只能出现在 C99 可变参数宏的展开中"
+msgstr "__VA_OPT__ 只能出现在 C++20 可变参数宏的展开中"
 
 #: lex.cc:2172
 #, c-format
@@ -956,13 +910,11 @@ msgstr "试图使用有毒的“%s”"
 
 #: lex.cc:2177
 msgid "poisoned here"
-msgstr ""
+msgstr "在此处被毒化"
 
 #: lex.cc:2187
-#, fuzzy
-#| msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
 msgid "__VA_ARGS__ can only appear in the expansion of a C++11 variadic macro"
-msgstr "__VA_ARGS__ 只能出现在 C99 可变参数宏的展开中"
+msgstr "__VA_ARGS__ 只能出现在 C++11 可变参数宏的展开中"
 
 #: lex.cc:2191
 msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
@@ -975,21 +927,19 @@ msgstr "标识符“%s”是 C++ 中的一个特殊操作符"
 
 #: lex.cc:2372
 msgid "adjacent digit separators"
-msgstr ""
+msgstr "相邻的数字分隔符"
 
 #: lex.cc:2521
 msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
-msgstr ""
+msgstr "字面量后缀无效；C++11 要求字面量和字符串宏之间必须有空格"
 
 #: lex.cc:2729
 msgid "raw string delimiter longer than 16 characters"
 msgstr "原始字符串分隔符长过 16 个字符"
 
 #: lex.cc:2733
-#, fuzzy
-#| msgid "invalid character '%c' in raw string delimiter"
 msgid "invalid new-line in raw string delimiter"
-msgstr "原始字符串分隔符中有无效字符‘%c’"
+msgstr "原始字符串分隔符中有无效的换行符"
 
 #: lex.cc:2737 lex.cc:5576
 #, c-format
@@ -1011,16 +961,16 @@ msgstr "缺少结尾的 %c 字符"
 
 #: lex.cc:2991
 msgid "C++11 requires a space between string literal and macro"
-msgstr ""
+msgstr "C++11 要求字符串字面量和宏之间必须有空格"
 
 #: lex.cc:3584
 msgid "module control-line cannot be in included file"
-msgstr ""
+msgstr "模块控制行不能位于被包含的文件中"
 
 #: lex.cc:3598
 #, c-format
 msgid "module control-line \"%s\" cannot be an object-like macro"
-msgstr ""
+msgstr "模块控制行 “%s” 不能是一个对象宏"
 
 #: lex.cc:4004 lex.cc:5409 traditional.cc:174
 msgid "unterminated comment"
@@ -1035,10 +985,8 @@ msgid "(this will be reported only once per input file)"
 msgstr "(此警告为每个输入文件只报告一次)"
 
 #: lex.cc:4029
-#, fuzzy
-#| msgid "C++ style comments are not allowed in ISO C90"
 msgid "C++ style comments are incompatible with C90"
-msgstr "C++ 风格的注释在 ISO C90 中不被允许"
+msgstr "C++ 风格的注释与 C90 不兼容"
 
 #: lex.cc:4061
 msgid "multi-line comment"
@@ -1050,60 +998,49 @@ msgid "unspellable token %s"
 msgstr "无法拼出的标识符 %s"
 
 #: lex.cc:5564
-#, fuzzy, c-format
-#| msgid "raw string delimiter longer than 16 characters"
+#, c-format
 msgid "raw string delimiter longer than %d characters"
-msgstr "原始字符串分隔符长过 16 个字符"
+msgstr "原始字符串分隔符长过 %d 个字符"
 
 #: lex.cc:5634
-#, fuzzy
-#| msgid "unterminated #%s"
 msgid "unterminated literal"
-msgstr "未终止的 #%s"
+msgstr "未终止的字面量"
 
 #: macro.cc:94
-#, fuzzy
-#| msgid "'##' cannot appear at either end of a macro expansion"
 msgid "'##' cannot appear at either end of __VA_OPT__"
-msgstr "‘##’不能出现在宏展开的两端"
+msgstr "‘##’不能出现在__VA_OPT__的两端"
 
 #: macro.cc:144
 msgid "__VA_OPT__ may not appear in a __VA_OPT__"
-msgstr ""
+msgstr "__VA_OPT__ 不能出现在另一个 __VA_OPT__ 中"
 
 #: macro.cc:157
 msgid "__VA_OPT__ must be followed by an open parenthesis"
-msgstr ""
+msgstr "__VA_OPT__ 后面必须跟一个开括号"
 
 #: macro.cc:235
-#, fuzzy
-#| msgid "unterminated #%s"
 msgid "unterminated __VA_OPT__"
-msgstr "未终止的 #%s"
+msgstr "未终止的 __VA_OPT__"
 
 #: macro.cc:397
-#, fuzzy, c-format
-#| msgid "%s in preprocessing directive"
+#, c-format
 msgid "\"%s\" used outside of preprocessing directive"
-msgstr "预处理指示中出现 %s"
+msgstr "\"%s\" 在预处理指令外部使用"
 
 #: macro.cc:407
-#, fuzzy, c-format
-#| msgid "missing '(' in expression"
+#, c-format
 msgid "missing '(' before \"%s\" operand"
-msgstr "表达式中缺少‘(’"
+msgstr "操作数“%s”之前缺少 ‘(’"
 
 #: macro.cc:422
-#, fuzzy, c-format
-#| msgid "operator \"defined\" requires an identifier"
+#, c-format
 msgid "operator \"%s\" requires a header-name"
-msgstr "操作符“defined”需要一个标识符"
+msgstr "运算符 “%s” 需要一个头文件名"
 
 #: macro.cc:439
-#, fuzzy, c-format
-#| msgid "missing ')' after \"defined\""
+#, c-format
 msgid "missing ')' after \"%s\" operand"
-msgstr "“defined” 后出现‘)’"
+msgstr "操作数“%s”之后缺少 ‘)’"
 
 #: macro.cc:459
 #, c-format
@@ -1118,7 +1055,7 @@ msgstr "无效的内建宏“%s”"
 #: macro.cc:505 macro.cc:613
 #, c-format
 msgid "macro \"%s\" might prevent reproducible builds"
-msgstr ""
+msgstr "宏 “%s” 可能会阻止可重现构建"
 
 #: macro.cc:536
 msgid "could not determine file timestamp"
@@ -1137,20 +1074,17 @@ msgid "invalid string literal, ignoring final '\\'"
 msgstr "无效的字面字符串，忽略最后的‘\\’"
 
 #: macro.cc:986
-#, fuzzy, c-format
-#| msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+#, c-format
 msgid "pasting \"%.*s\" and \"%.*s\" does not give a valid preprocessing token"
-msgstr "毗连“%s”和“%s”不能给出一个有效的预处理标识符"
+msgstr "毗连“%.*s”和“%.*s”不能给出一个有效的预处理标识符"
 
 #: macro.cc:1118
 msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
-msgstr ""
+msgstr "ISO C++11 要求在可变参数宏中的 “...” 至少有一个参数"
 
 #: macro.cc:1122
-#, fuzzy
-#| msgid "ISO C99 requires rest arguments to be used"
 msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
-msgstr "ISO C99 需要使用剩余的参数"
+msgstr "ISO C99 要求在可变参数宏中的 “...” 至少有一个参数"
 
 #: macro.cc:1129
 #, c-format
@@ -1163,10 +1097,9 @@ msgid "macro \"%s\" passed %u arguments, but takes just %u"
 msgstr "宏“%s”传递了 %u 个参数，但只需要 %u 个"
 
 #: macro.cc:1138
-#, fuzzy, c-format
-#| msgid "macro \"%s\" is not used"
+#, c-format
 msgid "macro \"%s\" defined here"
-msgstr "宏“%s”未被使用"
+msgstr "宏“%s”在此被定义"
 
 #: macro.cc:1332 traditional.cc:822
 #, c-format
@@ -1179,16 +1112,14 @@ msgid "function-like macro \"%s\" must be used with arguments in traditional C"
 msgstr "类似函数的宏“%s”在传统 C 中必须与参数一起使用"
 
 #: macro.cc:2313
-#, fuzzy, c-format
-#| msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+#, c-format
 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
-msgstr "调用宏 %s 的参数 %d：空的宏参数未被 ISO C90 和 ISO C++98 定义"
+msgstr "调用宏 %s 的参数 %d：空的宏参数未被 ISO C++98 定义"
 
 #: macro.cc:2321 macro.cc:2330
-#, fuzzy, c-format
-#| msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+#, c-format
 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
-msgstr "调用宏 %s 的参数 %d：空的宏参数未被 ISO C90 和 ISO C++98 定义"
+msgstr "调用宏 %s 的参数 %d：空的宏参数未被 ISO C90 定义"
 
 #: macro.cc:3381
 #, c-format
@@ -1198,42 +1129,36 @@ msgstr "重复的宏参数“%s”"
 #: macro.cc:3463
 #, c-format
 msgid "expected parameter name, found \"%s\""
-msgstr ""
+msgstr "预期为参数名称，却发现了 “%s”"
 
 #: macro.cc:3464
 #, c-format
 msgid "expected ',' or ')', found \"%s\""
-msgstr ""
+msgstr "预期为 ‘,’ 或 ‘)’, 却发现了 “%s”"
 
 #: macro.cc:3465
 msgid "expected parameter name before end of line"
-msgstr ""
+msgstr "在行末之前预期为参数名称"
 
 #: macro.cc:3466
-#, fuzzy
-#| msgid "unexpected end of file after #line"
 msgid "expected ')' before end of line"
-msgstr "#line 后未预期的文件结束"
+msgstr "在行末之前预期为 ‘)’"
 
 #: macro.cc:3467
 msgid "expected ')' after \"...\""
-msgstr ""
+msgstr "在 “...” 之后预期为 ‘)’"
 
 #: macro.cc:3524
-#, fuzzy
-#| msgid "anonymous variadic macros were introduced in C99"
 msgid "anonymous variadic macros were introduced in C++11"
-msgstr "匿名可变参数宏在 C99 中被引入"
+msgstr "匿名可变参数宏在 C++11 中被引入"
 
 #: macro.cc:3525 macro.cc:3529
 msgid "anonymous variadic macros were introduced in C99"
 msgstr "匿名可变参数宏在 C99 中被引入"
 
 #: macro.cc:3535
-#, fuzzy
-#| msgid "ISO C does not permit named variadic macros"
 msgid "ISO C++ does not permit named variadic macros"
-msgstr "ISO C 不允许有名的可变参数宏"
+msgstr "ISO C++ 不允许有名的可变参数宏"
 
 #: macro.cc:3536
 msgid "ISO C does not permit named variadic macros"
@@ -1244,10 +1169,8 @@ msgid "'##' cannot appear at either end of a macro expansion"
 msgstr "‘##’不能出现在宏展开的两端"
 
 #: macro.cc:3620
-#, fuzzy
-#| msgid "ISO C99 requires whitespace after the macro name"
 msgid "ISO C++11 requires whitespace after the macro name"
-msgstr "ISO C99 要求宏名后必须有空白"
+msgstr "ISO C++11 要求宏名后必须有空白"
 
 #: macro.cc:3621
 msgid "ISO C99 requires whitespace after the macro name"

commit bff6e5667d6a8bf8060e550bdcb40e094d00af41
Author: Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
Date:   Fri Sep 20 14:06:42 2024 +0200

    s390: Fix strict_low_part generation
    
    In s390_expand_insv(), if generating code for ICM et al. src is a MEM
    and gen_lowpart might force src into a register such that we end up with
    patterns which do not match anymore.  Use adjust_address() instead in
    order to preserve a MEM.
    
    Furthermore, it is not straight forward to enforce a subreg.  For
    example, in case of a paradoxical subreg, gen_lowpart() may return a
    register.  In order to compensate this, s390_gen_lowpart_subreg() emits
    a reference to a pseudo which does not coincide with its definition
    which is wrong.  Additionally, if dest is a paradoxical subreg, then do
    not try to emit a strict_low_part since it could mean that dest was not
    initialized even though this might be fixed up later by init-regs.
    
    Splitter for insn *get_tp_64, *zero_extendhisi2_31,
    *zero_extendqisi2_31, *zero_extendqihi2_31 are applied after reload.
    Thus, operands[0] is a hard register and gen_lowpart (m, operands[0])
    just returns the hard register for mode m which is fine to use as an
    argument for strict_low_part, i.e., we do not need to enforce subregs
    here since after reload subregs are supposed to be eliminated anyway.
    
    This fixes gcc.dg/torture/pr111821.c.
    
    gcc/ChangeLog:
    
            * config/s390/s390-protos.h (s390_gen_lowpart_subreg): Remove.
            * config/s390/s390.cc (s390_gen_lowpart_subreg): Remove.
            (s390_expand_insv): Use adjust_address() and emit a
            strict_low_part only in case of a natural subreg.
            * config/s390/s390.md: Use gen_lowpart() instead of
            s390_gen_lowpart_subreg().
    
    (cherry picked from commit 9ebc9fbdddfe1ec85355b068354315a4da8e1ca0)

diff --git a/gcc/config/s390/s390-protos.h b/gcc/config/s390/s390-protos.h
index 8c2985a79c4..4bda36e01ec 100644
--- a/gcc/config/s390/s390-protos.h
+++ b/gcc/config/s390/s390-protos.h
@@ -50,7 +50,6 @@ extern void s390_set_has_landing_pad_p (bool);
 extern bool s390_hard_regno_rename_ok (unsigned int, unsigned int);
 extern int s390_class_max_nregs (enum reg_class, machine_mode);
 extern bool s390_return_addr_from_memory(void);
-extern rtx s390_gen_lowpart_subreg (machine_mode, rtx);
 extern bool s390_fma_allowed_p (machine_mode);
 #if S390_USE_TARGET_ATTRIBUTE
 extern tree s390_valid_target_attribute_tree (tree args,
diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc
index ec836ec3cd4..4be95788094 100644
--- a/gcc/config/s390/s390.cc
+++ b/gcc/config/s390/s390.cc
@@ -516,31 +516,6 @@ s390_return_addr_from_memory ()
   return cfun_gpr_save_slot(RETURN_REGNUM) == SAVE_SLOT_STACK;
 }
 
-/* Generate a SUBREG for the MODE lowpart of EXPR.
-
-   In contrast to gen_lowpart it will always return a SUBREG
-   expression.  This is useful to generate STRICT_LOW_PART
-   expressions.  */
-rtx
-s390_gen_lowpart_subreg (machine_mode mode, rtx expr)
-{
-  rtx lowpart = gen_lowpart (mode, expr);
-
-  /* There might be no SUBREG in case it could be applied to the hard
-     REG rtx or it could be folded with a paradoxical subreg.  Bring
-     it back.  */
-  if (!SUBREG_P (lowpart))
-    {
-      machine_mode reg_mode = TARGET_ZARCH ? DImode : SImode;
-      gcc_assert (REG_P (lowpart));
-      lowpart = gen_lowpart_SUBREG (mode,
-				    gen_rtx_REG (reg_mode,
-						 REGNO (lowpart)));
-    }
-
-  return lowpart;
-}
-
 /* Return nonzero if it's OK to use fused multiply-add for MODE.  */
 bool
 s390_fma_allowed_p (machine_mode mode)
@@ -6982,15 +6957,21 @@ s390_expand_insv (rtx dest, rtx op1, rtx op2, rtx src)
       /* Emit a strict_low_part pattern if possible.  */
       if (smode_bsize == bitsize && bitpos == mode_bsize - smode_bsize)
 	{
-	  rtx low_dest = s390_gen_lowpart_subreg (smode, dest);
-	  rtx low_src = gen_lowpart (smode, src);
-
-	  switch (smode)
+	  rtx low_dest = gen_lowpart (smode, dest);
+	  if (SUBREG_P (low_dest) && !paradoxical_subreg_p (low_dest))
 	    {
-	    case E_QImode: emit_insn (gen_movstrictqi (low_dest, low_src)); return true;
-	    case E_HImode: emit_insn (gen_movstricthi (low_dest, low_src)); return true;
-	    case E_SImode: emit_insn (gen_movstrictsi (low_dest, low_src)); return true;
-	    default: break;
+	      poly_int64 offset = GET_MODE_SIZE (mode) - GET_MODE_SIZE (smode);
+	      rtx low_src = adjust_address (src, smode, offset);
+	      switch (smode)
+		{
+		case E_QImode: emit_insn (gen_movstrictqi (low_dest, low_src));
+			       return true;
+		case E_HImode: emit_insn (gen_movstricthi (low_dest, low_src));
+			       return true;
+		case E_SImode: emit_insn (gen_movstrictsi (low_dest, low_src));
+			       return true;
+		default: break;
+		}
 	    }
 	}
 
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 41715f938b3..17d31643dbc 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -1967,12 +1967,11 @@
   "TARGET_ZARCH"
   "#"
   "&& reload_completed"
-  [(set (match_dup 2) (match_dup 4))
+  [(set (match_dup 2) (match_dup 3))
    (set (match_dup 0) (ashift:DI (match_dup 0) (const_int 32)))
-   (set (strict_low_part (match_dup 3)) (match_dup 5))]
+   (set (strict_low_part (match_dup 2)) (match_dup 4))]
   "operands[2] = gen_lowpart (SImode, operands[0]);
-   operands[3] = s390_gen_lowpart_subreg (SImode, operands[0]);
-   s390_split_access_reg (operands[1], &operands[5], &operands[4]);")
+   s390_split_access_reg (operands[1], &operands[4], &operands[3]);")
 
 ; Splitters for storing TLS pointer to %a0:DI.
 
@@ -5061,7 +5060,7 @@
    (parallel
     [(set (strict_low_part (match_dup 2)) (match_dup 1))
      (clobber (reg:CC CC_REGNUM))])]
-  "operands[2] = s390_gen_lowpart_subreg (HImode, operands[0]);")
+  "operands[2] = gen_lowpart (HImode, operands[0]);")
 
 (define_insn_and_split "*zero_extendqisi2_31"
   [(set (match_operand:SI 0 "register_operand" "=&d")
@@ -5071,7 +5070,7 @@
   "&& reload_completed"
   [(set (match_dup 0) (const_int 0))
    (set (strict_low_part (match_dup 2)) (match_dup 1))]
-  "operands[2] = s390_gen_lowpart_subreg (QImode, operands[0]);")
+  "operands[2] = gen_lowpart (QImode, operands[0]);")
 
 ;
 ; zero_extendqihi2 instruction pattern(s).
@@ -5103,7 +5102,7 @@
   "&& reload_completed"
   [(set (match_dup 0) (const_int 0))
    (set (strict_low_part (match_dup 2)) (match_dup 1))]
-  "operands[2] = s390_gen_lowpart_subreg (QImode, operands[0]);")
+  "operands[2] = gen_lowpart (QImode, operands[0]);")
 
 ;
 ; fixuns_trunc(dd|td|sf|df|tf)(si|di)2 expander

commit adab597af288d6e1e0b7c3414517147995b03cc9
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Sep 20 12:32:13 2024 +0200

    Fix small thinko in IPA mod/ref pass
    
    When a memory copy operation is analyzed by analyze_ssa_name, if both the
    load and store are made through the same SSA name, the store is overlooked.
    
    gcc/
            * ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Always
            process both the load and the store of a memory copy operation.
    
    gcc/testsuite/
            * gcc.dg/ipa/modref-4.c: New test.

diff --git a/gcc/ipa-modref.cc b/gcc/ipa-modref.cc
index 10344fbb4b5..ccf788e6398 100644
--- a/gcc/ipa-modref.cc
+++ b/gcc/ipa-modref.cc
@@ -2604,8 +2604,9 @@ modref_eaf_analysis::analyze_ssa_name (tree name, bool deferred)
 		 is used arbitrarily.  */
 	      if (memory_access_to (gimple_assign_rhs1 (assign), name))
 		m_lattice[index].merge (deref_flags (0, false));
+
 	      /* Handle *name = *exp.  */
-	      else if (memory_access_to (gimple_assign_lhs (assign), name))
+	      if (memory_access_to (gimple_assign_lhs (assign), name))
 		m_lattice[index].merge_direct_store ();
 	    }
 	  /* Handle lhs = *name.  */
diff --git a/gcc/testsuite/gcc.dg/ipa/modref-4.c b/gcc/testsuite/gcc.dg/ipa/modref-4.c
new file mode 100644
index 00000000000..71ed1ca5f5b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ipa/modref-4.c
@@ -0,0 +1,34 @@
+/* { dg-options "-O"  } */
+/* { dg-do run } */
+
+static __attribute__((noipa)) int foo (void)
+{
+  return 1;
+}
+
+int main (void)
+{
+  struct S { int a; int b; };
+  struct T { struct S s; };
+
+  struct T t = { { 0, 0 } };
+  struct T u;
+
+  __attribute__((noinline)) void bar (void)
+  {
+    if (foo ())
+      {
+	u = t;
+        /* OK with u.s.a = 0; */
+      }
+  }
+
+  u.s.a = 1;
+
+  bar ();
+
+  if (u.s.a != 0)
+    __builtin_abort ();
+
+  return 0;
+}

commit 9f8f721607aac02435d4677360bdd957800f07a7
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Sep 20 17:41:07 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0558f2f8297..2a8fc67b50a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,28 @@
+2024-09-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Always
+	process both the load and the store of a memory copy operation.
+
+2024-09-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	Backported from master:
+	2024-09-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	* config/s390/s390-protos.h (s390_gen_lowpart_subreg): Remove.
+	* config/s390/s390.cc (s390_gen_lowpart_subreg): Remove.
+	(s390_expand_insv): Use adjust_address() and emit a
+	strict_low_part only in case of a natural subreg.
+	* config/s390/s390.md: Use gen_lowpart() instead of
+	s390_gen_lowpart_subreg().
+
+2024-09-19  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* doc/invoke.texi: Add corei7, corei7-avx, core-avx-i,
+	core-avx2, atom, slm, gracemont and emerarldrapids. Reorder
+	the -march documentation by splitting them into date-to-now
+	products, P-core, E-core and Xeon Phi. Refine the product names in
+	documentation.
+
 2024-09-18  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f2530dded09..09a8fff25e6 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240919
+20240920
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 2b19ee75537..335d8effda5 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2024-09-19  Joseph Myers  <josmyers@redhat.com>
+
+	* zh_CN.po: Update.
+
 2024-09-06  Joseph Myers  <josmyers@redhat.com>
 
 	* uk.po: Update.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index acb099f0009..1c261ae5e74 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2024-09-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* gcc.dg/ipa/modref-4.c: New test.
+
 2024-09-18  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:
diff --git a/libcpp/po/ChangeLog b/libcpp/po/ChangeLog
index 8a672182b2a..5110823a132 100644
--- a/libcpp/po/ChangeLog
+++ b/libcpp/po/ChangeLog
@@ -1,3 +1,7 @@
+2024-09-19  Joseph Myers  <josmyers@redhat.com>
+
+	* zh_CN.po: Update.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit cf8f6aa2a0e4378cec0f9bdbde8cd9a2ea3fb3e5
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Thu Sep 5 21:30:25 2024 +0200

    Fortran: fix ICE in gfc_create_module_variable [PR100273]
    
    gcc/fortran/ChangeLog:
    
            PR fortran/100273
            * trans-decl.cc (gfc_create_module_variable): Handle module
            variable also when it is needed for the result specification
            of a contained function.
    
    gcc/testsuite/ChangeLog:
    
            PR fortran/100273
            * gfortran.dg/pr100273.f90: New test.
    
    (cherry picked from commit 1f462b5072a5e82c35921f7e3bdf3959c4a49dc9)

diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc
index 1a319b27449..7a381519999 100644
--- a/gcc/fortran/trans-decl.cc
+++ b/gcc/fortran/trans-decl.cc
@@ -5459,7 +5459,8 @@ gfc_create_module_variable (gfc_symbol * sym)
   /* Create the variable.  */
   pushdecl (decl);
   gcc_assert (sym->ns->proc_name->attr.flavor == FL_MODULE
-	      || (sym->ns->parent->proc_name->attr.flavor == FL_MODULE
+	      || ((sym->ns->parent->proc_name->attr.flavor == FL_MODULE
+		   || sym->ns->parent->proc_name->attr.flavor == FL_PROCEDURE)
 		  && sym->fn_result_spec));
   DECL_CONTEXT (decl) = sym->ns->proc_name->backend_decl;
   rest_of_decl_compilation (decl, 1, 0);
diff --git a/gcc/testsuite/gfortran.dg/pr100273.f90 b/gcc/testsuite/gfortran.dg/pr100273.f90
new file mode 100644
index 00000000000..f71947ad802
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr100273.f90
@@ -0,0 +1,26 @@
+! { dg-do compile }
+! PR fortran/100273 - ICE in gfc_create_module_variable
+!
+! Contributed by G.Steinmetz
+
+module m
+  implicit none
+contains
+  character(4) function g(k)
+    integer :: k
+    g = f(k)
+  contains
+    function f(n)
+      character(3), parameter :: a(2) = ['1  ', '123']
+      integer :: n
+      character(len_trim(a(n))) :: f
+      f = 'abc'
+    end
+  end
+end
+program p
+  use m 
+  implicit none
+  print *, '>>' // g(1) // '<<'
+  print *, '>>' // g(2) // '<<'
+end

commit 659f32ea9de57661f8a37dcfb0b9a01bfe29acce
Author: Patrick Palka <ppalka@redhat.com>
Date:   Fri Sep 20 17:37:03 2024 -0400

    c++: CWG 2789 and usings [PR116492]
    
    For GCC 14, narrowly fix this PR by implementing the missing
    
      - if they are member functions, both are direct members of the same
        class, and
    
    part of CWG 2789 for constructors only.
    
            PR c++/116492
            DR 2789
    
    gcc/cp/ChangeLog:
    
            * call.cc (cand_parms_match): Return false for constructors that
            come from different classes.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/concepts-inherit-ctor12.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>

diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc
index 0f4eeeb5395..492d17b1744 100644
--- a/gcc/cp/call.cc
+++ b/gcc/cp/call.cc
@@ -12826,6 +12826,14 @@ cand_parms_match (z_candidate *c1, z_candidate *c2, pmatch match_kind)
 	&& DECL_FUNCTION_MEMBER_P (fn2)))
     /* Early escape.  */;
 
+  else if ((DECL_INHERITED_CTOR (fn1) || DECL_INHERITED_CTOR (fn2))
+	   && (DECL_CONTEXT (strip_inheriting_ctors (fn1))
+	       != DECL_CONTEXT (strip_inheriting_ctors (fn2))))
+    /* This should really be checked for all member functions as per
+       CWG2789, but for GCC 14 we check this only for constructors since
+       without r15-3740 doing so would result in inconsistent handling
+       of object parameters (such as in concepts-memfun4.C).  */
+    return false;
   /* CWG2789 is not adequate, it should specify corresponding object
      parameters, not same typed object parameters.  */
   else if (!object_parms_correspond (c1, fn1, c2, fn2))
diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor12.C b/gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor12.C
new file mode 100644
index 00000000000..3e5dbfc37ad
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor12.C
@@ -0,0 +1,16 @@
+// PR c++/116492
+// CWG 2789
+// { dg-do compile { target c++20 } }
+
+template<class T>
+struct A {
+  A() requires true = delete;
+};
+
+struct B : A<int> {
+  B();
+  using A<int>::A;
+};
+
+B b; // OK, selects the non-inherited constructor over the more constrained
+     // inherited constructor.

commit abdea396e12e66185d810435bbc363845cf4664a
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Sep 12 12:45:03 2024 -0400

    c++: decltype(auto) deduction of statement-expression [PR116418]
    
    r8-7538 for PR84968 made strip_typedefs_expr diagnose STATEMENT_LIST
    so that we reject statement-expressions in noexcept-specifiers to
    match our behavior in template arguments (which the parser diagnoses
    directly).
    
    Later r11-7452 made decltype(auto) deduction canonicalize the expression
    (as an implementation detail) which in turn calls strip_typedefs_expr,
    and so ever since we inadvertently reject decltype(auto) deduction of a
    statement-expression.
    
    This patch just removes the diagnostic in strip_typedefs_expr and instead
    treats statement-expressions similar to lambda-expressions.  The function
    doesn't seem like the right place for such a diagnostic and so it seems
    easier to just accept rather than try to reject them in a suitable place.
    
            PR c++/116418
    
    gcc/cp/ChangeLog:
    
            * tree.cc (strip_typedefs_expr) <case STATEMENT_LIST>: Replace
            this error path with ...
            <case STMT_EXPR>: ... this, returning the original tree.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/eh/pr84968.C: No longer expect an ahead of time diagnostic
            for the statement-expresssion.  Instantiate the template and expect
            an incomplete type error instead.
            * g++.dg/ext/stmtexpr26.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 12bdcc3d7970860b9d66ed4dea203bde8fd68d4d)

diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc
index d90244609c8..a056237e866 100644
--- a/gcc/cp/tree.cc
+++ b/gcc/cp/tree.cc
@@ -2008,12 +2008,9 @@ strip_typedefs_expr (tree t, bool *remove_attributes, unsigned int flags)
       }
 
     case LAMBDA_EXPR:
+    case STMT_EXPR:
       return t;
 
-    case STATEMENT_LIST:
-      error ("statement-expression in a constant expression");
-      return error_mark_node;
-
     default:
       break;
     }
diff --git a/gcc/testsuite/g++.dg/eh/pr84968.C b/gcc/testsuite/g++.dg/eh/pr84968.C
index 23c49f477a8..a6e21914eed 100644
--- a/gcc/testsuite/g++.dg/eh/pr84968.C
+++ b/gcc/testsuite/g++.dg/eh/pr84968.C
@@ -9,7 +9,9 @@ struct S {
   void a()
     try {
     } catch (int ()
-	     noexcept (({ union b a; true; }))) // { dg-error "constant" }
+	     noexcept (({ union b a; true; }))) // { dg-error "'b a' has incomplete type" }
   {
   }
 };
+
+template void S::a<int>(); // { dg-message "required from here" }
diff --git a/gcc/testsuite/g++.dg/ext/stmtexpr26.C b/gcc/testsuite/g++.dg/ext/stmtexpr26.C
new file mode 100644
index 00000000000..2250df550d4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/stmtexpr26.C
@@ -0,0 +1,10 @@
+// PR c++/116418
+// { dg-do compile { target c++14 } }
+// { dg-options "" }
+
+void foo ();
+template <typename>
+void bar ()
+{
+  decltype(auto) v = ({ foo (); 3; });
+}

commit 99e640b1e1735f07c03f5be923f211be4200ee4d
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Sep 21 00:22:06 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 09a8fff25e6..6df304d1af8 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240920
+20240921
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index b2e61deeb1a..b864fdaa8a7 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,20 @@
+2024-09-20  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-09-12  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116418
+	* tree.cc (strip_typedefs_expr) <case STATEMENT_LIST>: Replace
+	this error path with ...
+	<case STMT_EXPR>: ... this, returning the original tree.
+
+2024-09-20  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116492
+	DR 2789
+	* call.cc (cand_parms_match): Return false for constructors that
+	come from different classes.
+
 2024-09-17  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 25c8473186e..2c67dd5e0c7 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,13 @@
+2024-09-20  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2024-09-05  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/100273
+	* trans-decl.cc (gfc_create_module_variable): Handle module
+	variable also when it is needed for the result specification
+	of a contained function.
+
 2024-08-30  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1c261ae5e74..dcfef8afde0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,28 @@
+2024-09-20  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-09-12  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116418
+	* g++.dg/eh/pr84968.C: No longer expect an ahead of time diagnostic
+	for the statement-expresssion.  Instantiate the template and expect
+	an incomplete type error instead.
+	* g++.dg/ext/stmtexpr26.C: New test.
+
+2024-09-20  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/116492
+	DR 2789
+	* g++.dg/cpp2a/concepts-inherit-ctor12.C: New test.
+
+2024-09-20  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2024-09-05  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/100273
+	* gfortran.dg/pr100273.f90: New test.
+
 2024-09-20  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* gcc.dg/ipa/modref-4.c: New test.

commit a0abcea3b09315b34eff8452f3b1e0e531df3230
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Sep 22 00:23:21 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 6df304d1af8..c43582073d8 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240921
+20240922

commit cf4086628dd5546cc0efdd5afa102fee6b16385d
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Wed Sep 18 11:02:32 2024 -0400

    hppa: Add peephole2 optimizations for REG+D loads and stores
    
    The PA 1.x architecture only supports long displacements in
    integer loads and stores.  Floating-point loads and stores
    only support short displacements.  As a result, we have to
    wait until reload is complete before generating insns with
    long displacements.
    
    The PA 2.0 architecture supports long displacements in both
    integer and floating-point loads and stores.
    
    The peephole2 optimizations added in this change are only
    enabled when 14-bit long displacements aren't supported for
    floating-point loads and stores.
    
    2024-09-18  John David Anglin  <danglin@gcc.gnu.org>
    
    gcc/ChangeLog:
    
            * config/pa/pa.h (GENERAL_REGNO_P): Define.
            * config/pa/pa.md: Add SImode and SFmode peephole2
            patterns to generate loads and stores with long
            displacements.

diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 127a0d1966d..49c798e4933 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -480,6 +480,9 @@ extern rtx hppa_pic_save_rtx (void);
 #define INDEX_REG_CLASS GENERAL_REGS
 #define BASE_REG_CLASS GENERAL_REGS
 
+/* True if register is a general register.  */
+#define GENERAL_REGNO_P(N) ((N) >= 1 && (N) <= 31)
+
 #define FP_REG_CLASS_P(CLASS) \
   ((CLASS) == FP_REGS || (CLASS) == FPUPPER_REGS)
 
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index 9e410f43052..c0333276144 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -2280,6 +2280,58 @@
    (set_attr "pa_combine_type" "addmove")
    (set_attr "length" "4")])
 
+; Rewrite RTL using a REG+D store.  This will allow the insn that
+; computes the address to be deleted if the register it sets is dead.
+(define_peephole2
+  [(set (match_operand:SI 0 "register_operand" "")
+	(plus:SI (match_operand:SI 1 "register_operand" "")
+		 (match_operand:SI 2 "const_int_operand" "")))
+   (set (mem:SI (match_dup 0))
+	(match_operand:SI 3 "register_operand" ""))]
+  "!TARGET_64BIT
+   && !INT14_OK_STRICT
+   && GENERAL_REGNO_P (REGNO (operands[0]))
+   && GENERAL_REGNO_P (REGNO (operands[3]))
+   && REGNO (operands[0]) != REGNO (operands[3])
+   && base14_operand (operands[2], E_SImode)"
+  [(set (mem:SI (plus:SI (match_dup 1) (match_dup 2))) (match_dup 3))
+   (set (match_dup 0) (plus:SI (match_dup 1) (match_dup 2)))]
+  "")
+
+; Rewrite RTL using a REG+D load.  This will allow the insn that
+; computes the address to be deleted if the register it sets is dead.
+(define_peephole2
+  [(set (match_operand:SI 0 "register_operand" "")
+	(plus:SI (match_operand:SI 1 "register_operand" "")
+		 (match_operand:SI 2 "const_int_operand" "")))
+   (set (match_operand:SI 3 "register_operand" "")
+	(mem:SI (match_dup 0)))]
+  "!TARGET_64BIT
+   && !INT14_OK_STRICT
+   && GENERAL_REGNO_P (REGNO (operands[0]))
+   && GENERAL_REGNO_P (REGNO (operands[3]))
+   && REGNO (operands[0]) != REGNO (operands[3])
+   && REGNO (operands[1]) != REGNO (operands[3])
+   && base14_operand (operands[2], E_SImode)"
+  [(set (match_dup 3) (mem:SI (plus:SI (match_dup 1) (match_dup 2))))
+   (set (match_dup 0) (plus:SI (match_dup 1) (match_dup 2)))]
+  "")
+
+(define_peephole2
+  [(set (match_operand:SI 0 "register_operand" "")
+	(plus:SI (match_operand:SI 1 "register_operand" "")
+		 (match_operand:SI 2 "const_int_operand" "")))
+   (set (match_operand:SI 3 "register_operand" "")
+	(mem:SI (match_dup 0)))]
+  "!TARGET_64BIT
+   && !INT14_OK_STRICT
+   && GENERAL_REGNO_P (REGNO (operands[0]))
+   && GENERAL_REGNO_P (REGNO (operands[3]))
+   && REGNO (operands[0]) == REGNO (operands[3])
+   && base14_operand (operands[2], E_SImode)"
+  [(set (match_dup 3) (mem:SI (plus:SI (match_dup 1) (match_dup 2))))]
+  "")
+
 ; Rewrite RTL using an indexed store.  This will allow the insn that
 ; computes the address to be deleted if the register it sets is dead.
 (define_peephole2
@@ -4507,6 +4559,54 @@
    (set_attr "pa_combine_type" "addmove")
    (set_attr "length" "4")])
 
+(define_peephole2
+  [(set (match_operand:SI 0 "register_operand" "")
+	(plus:SI (match_operand:SI 1 "register_operand" "")
+		 (match_operand:SI 2 "const_int_operand" "")))
+   (set (mem:SF (match_dup 0))
+	(match_operand:SF 3 "register_operand" ""))]
+  "!TARGET_64BIT
+   && !INT14_OK_STRICT
+   && GENERAL_REGNO_P (REGNO (operands[0]))
+   && GENERAL_REGNO_P (REGNO (operands[3]))
+   && REGNO (operands[0]) != REGNO (operands[3])
+   && base14_operand (operands[2], E_SImode)"
+  [(set (mem:SF (plus:SI (match_dup 1) (match_dup 2))) (match_dup 3))
+   (set (match_dup 0) (plus:SI (match_dup 1) (match_dup 2)))]
+  "")
+
+(define_peephole2
+  [(set (match_operand:SI 0 "register_operand" "")
+	(plus:SI (match_operand:SI 1 "register_operand" "")
+		 (match_operand:SI 2 "const_int_operand" "")))
+   (set (match_operand:SF 3 "register_operand" "")
+	(mem:SF (match_dup 0)))]
+  "!TARGET_64BIT
+   && !INT14_OK_STRICT
+   && GENERAL_REGNO_P (REGNO (operands[0]))
+   && GENERAL_REGNO_P (REGNO (operands[3]))
+   && REGNO (operands[0]) != REGNO (operands[3])
+   && REGNO (operands[1]) != REGNO (operands[3])
+   && base14_operand (operands[2], E_SImode)"
+  [(set (match_dup 3) (mem:SF (plus:DI (match_dup 1) (match_dup 2))))
+   (set (match_dup 0) (plus:SI (match_dup 1) (match_dup 2)))]
+  "")
+
+(define_peephole2
+  [(set (match_operand:SI 0 "register_operand" "")
+	(plus:SI (match_operand:SI 1 "register_operand" "")
+		 (match_operand:SI 2 "const_int_operand" "")))
+   (set (match_operand:SF 3 "register_operand" "")
+	(mem:SF (match_dup 0)))]
+  "!TARGET_64BIT
+   && !INT14_OK_STRICT
+   && GENERAL_REGNO_P (REGNO (operands[0]))
+   && GENERAL_REGNO_P (REGNO (operands[3]))
+   && REGNO (operands[0]) == REGNO (operands[3])
+   && base14_operand (operands[2], E_SImode)"
+  [(set (match_dup 3) (mem:SF (plus:DI (match_dup 1) (match_dup 2))))]
+  "")
+
 (define_peephole2
   [(set (match_operand:SI 0 "register_operand" "")
 	(plus:SI (ashift:SI (match_operand:SI 1 "register_operand" "")

commit 2a8f362c3ef6acaed5af8140b9e36854231c96e9
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Sep 23 00:22:16 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2a8fc67b50a..ea929e906bf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2024-09-22  John David Anglin  <danglin@gcc.gnu.org>
+
+	* config/pa/pa.h (GENERAL_REGNO_P): Define.
+	* config/pa/pa.md: Add SImode and SFmode peephole2
+	patterns to generate loads and stores with long
+	displacements.
+
 2024-09-20  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Always
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c43582073d8..37e5425b64e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240922
+20240923

commit b292b6b9e104c2418b4b19c8495fef9effe9369f
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Mon Aug 5 13:19:28 2024 +0100

    Darwin: Recognise -weak_framework in the driver [PR116237].
    
    XCode compilers recognise the weak_framework linker option in the driver
    and forward it.  This patch makes GCC adopt the same behaviour.
    
            PR target/116237
    
    gcc/ChangeLog:
    
            * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Add a spec for
            weak_framework.
            * config/darwin.opt: Handle weak_framework driver option.
    
    Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
    (cherry picked from commit 4cec7bc79db52bae159c3c60a415e2aea48051d8)

diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index c09b9e9dc94..377599074a7 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -264,6 +264,8 @@ extern GTY(()) int darwin_ms_struct;
   "%{weak_reference_mismatches*:\
     -Xlinker -weak_reference_mismatches -Xlinker %*} \
     %<weak_reference_mismatches*",					\
+  "%{weak_framework*: -Xlinker -weak_framework -Xlinker %*} \
+    %<weak_framework*",							\
   "%{whyload:-Xlinker -whyload} %<whyload",				\
   "%{whatsloaded:-Xlinker -whatsloaded} %<whatsloaded",			\
   "%{w:-Xlinker -w}",							\
diff --git a/gcc/config/darwin.opt b/gcc/config/darwin.opt
index 307a760629b..114048045b9 100644
--- a/gcc/config/darwin.opt
+++ b/gcc/config/darwin.opt
@@ -381,6 +381,10 @@ unexported_symbols_list
 Driver RejectNegative Separate
 -unexported_symbols_list <filename>	Do not export the global symbols listed in <filename>.
 
+weak_framework
+Driver RejectNegative Separate
+-weak_framework <framework>	Make a weak link to the specified framework.
+
 weak_reference_mismatches
 Driver RejectNegative Separate
 -weak_reference_mismatches <treatment>	Specifies what to do if a symbol import conflicts between file (weak in one and not in another) the default is to treat the symbol as non-weak.

commit 59fa909de87d3658462e6f8220b545c285581e78
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Wed Sep 18 17:46:32 2024 +0100

    Darwin: Allow for as versions that need '-' for std in.
    
    Recent versions of Xcode as require a dash to read from standard
    input.  We can use this on all supported OS versions so make it
    unconditional.  Patch from Mark Mentovai.
    
    gcc/ChangeLog:
    
            * config/darwin.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): New.
    
    Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
    (cherry picked from commit 33ccc1314dcdb0b988a9276ca6b6ce9b07bea21e)

diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 377599074a7..0d8886c026c 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -648,6 +648,8 @@ extern GTY(()) int darwin_ms_struct;
 #define ASM_OPTIONS "%{v} %{w:-W} %{I*}"
 #endif
 
+#define AS_NEEDS_DASH_FOR_PIPED_INPUT
+
 /* Default Darwin ASM_SPEC, very simple. */
 #define ASM_SPEC \
 "%{static} -arch %(darwin_arch) " \

commit 7eba5b286e991d3e16321791805704815a02ee92
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Sun Sep 22 14:30:30 2024 +0100

    libgcc, Darwin: From macOS 11, make that the earliest supported.
    
    For libgcc, we have (so far) supported building a DSO that supports
    earlier versions of the OS than the target.  From macOS 11, there are
    APIs that do not exist on earlier OS versions, so limit the libgcc
    range to macOS11..current.
    
    libgcc/ChangeLog:
    
            * config.host: From macOS 11, limit earliest macOS support
            to macOS 11.
            * config/t-darwin-min-11: New file.
    
    Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
    (cherry picked from commit 43eab54939d37d4e634a692910d31adafc053e38)

diff --git a/libgcc/config.host b/libgcc/config.host
index e75a7af647f..73329037044 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -236,7 +236,10 @@ case ${host} in
   esac
   tmake_file="$tmake_file t-slibgcc-darwin"
   case ${host} in
-    *-*-darwin1[89]* | *-*-darwin2* )
+    *-*-darwin2*)
+      tmake_file="t-darwin-min-11 $tmake_file"
+      ;;
+    *-*-darwin1[89]*)
       tmake_file="t-darwin-min-8 $tmake_file"
       ;;
     *-*-darwin9* | *-*-darwin1[0-7]*)
diff --git a/libgcc/config/t-darwin-min-11 b/libgcc/config/t-darwin-min-11
new file mode 100644
index 00000000000..4009d41addb
--- /dev/null
+++ b/libgcc/config/t-darwin-min-11
@@ -0,0 +1,3 @@
+# Support building with -mmacosx-version-min back to macOS 11.
+DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=11
+DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=11

commit 1be3e4e43839d313364ffa99012ada41b4fae8da
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jul 10 23:14:19 2024 +0100

    libstdc++: Fix std::allocator_traits::construct constraints [PR108619]
    
    Using std::is_constructible in the constraints introduces a spurious
    dependency on the type being destructible, which should not be required
    for constructing with an allocator. The test case shows a case where the
    type has a private destructor, which can be destroyed by the allocator,
    but std::is_destructible and std::is_constructible are false.
    
    Similarly, using is_nothrow_constructible in the noexcept-specifiers
    for the construct members of allocator_traits and std::allocator,
    __gnu_cxx::__new_allocator, and __gnu_cxx::__malloc_allocator gives the
    wrong answer if the type isn't destructible.
    We need a new type trait to define those correctly, so that we only
    check if the placement new-expression is nothrow after using
    is_constructible to check that it would be well-formed.
    
    On trunk all members of std::allocator_traits were rewritten in terms of
    'if constexpr' using variable templates and the detection idiom. For the
    release branch this backport only changes the 'construct' member.
    
    Although we can use 'if constexpr' and variable templates in C++11 with
    appropriate uses of diagnostic pragmas, we can't have constexpr
    functions with multiple return statements. This means that in C++11 mode
    the _S_nothrow_construct helper used for noexcept-specifiers still needs
    to be a pair of overloads using enable_if.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/108619
            * include/bits/alloc_traits.h (__allocator_traits_base): Add
            variable templates for detecting whether the allocator has a
            construct member, or if placement new can be used instead.
            (allocator_traits::__construct_helper): Remove.
            (allocator_traits::__has_construct): Remove.
            (allocator_traits::construct): Use 'if constexpr' instead of
            dispatching to overloads constrained with enable_if.
            (allocator_traits<allocator<T>>::construct): Use _Construct if
            construct_at is not supported. Use
            __is_nothrow_new_constructible for noexcept-specifier.
            (allocator_traits<allocator<void>>::construct): Use
            __is_nothrow_new_constructible for noexcept-specifier.
            * include/bits/new_allocator.h (construct): Likewise.
            * include/ext/malloc_allocator.h (construct): Likewise.
            * include/std/type_traits (__is_nothrow_new_constructible): New
            variable template.
            * testsuite/20_util/allocator/89510.cc: Adjust expected results.
            * testsuite/ext/malloc_allocator/89510.cc: Likewise.
            * testsuite/ext/new_allocator/89510.cc: Likewise.
            * testsuite/20_util/allocator_traits/members/108619.cc: New test.
    
    (cherry picked from commit 8cf51d7516b92b352c358c14ab4e456ae53c3371)

diff --git a/libstdc++-v3/include/bits/alloc_traits.h b/libstdc++-v3/include/bits/alloc_traits.h
index 82fc79c7b9f..a81b286eee7 100644
--- a/libstdc++-v3/include/bits/alloc_traits.h
+++ b/libstdc++-v3/include/bits/alloc_traits.h
@@ -48,6 +48,11 @@ namespace std _GLIBCXX_VISIBILITY(default)
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 #if __cplusplus >= 201103L
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++14-extensions" // for variable templates
+#pragma GCC diagnostic ignored "-Wc++17-extensions" // for if-constexpr
+
   /// @cond undocumented
   struct __allocator_traits_base
   {
@@ -89,6 +94,39 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       using __pocs = typename _Tp::propagate_on_container_swap;
     template<typename _Tp>
       using __equal = __type_identity<typename _Tp::is_always_equal>;
+
+    // __has_construct is true if a.construct(p, args...) is well-formed.
+    // __can_construct is true if either __has_construct is true, or if
+    // a placement new-expression for T(args...) is well-formed. We use this
+    // to constrain allocator_traits::construct, as a libstdc++ extension.
+    template<typename _Alloc, typename _Tp, typename... _Args>
+      using __construct_t
+	= decltype(std::declval<_Alloc&>().construct(std::declval<_Tp*>(),
+						     std::declval<_Args>()...));
+    template<typename _Alloc, typename _Tp, typename, typename... _Args>
+      static constexpr bool __has_construct_impl = false;
+    template<typename _Alloc, typename _Tp, typename... _Args>
+      static constexpr bool
+      __has_construct_impl<_Alloc, _Tp,
+			   __void_t<__construct_t<_Alloc, _Tp, _Args...>>,
+			   _Args...>
+	= true;
+    template<typename _Alloc, typename _Tp, typename... _Args>
+      static constexpr bool __has_construct
+	= __has_construct_impl<_Alloc, _Tp, void, _Args...>;
+    template<typename _Tp, typename... _Args>
+      using __new_expr_t
+	= decltype(::new((void*)0) _Tp(std::declval<_Args>()...));
+    template<typename _Tp, typename, typename... _Args>
+      static constexpr bool __has_new_expr = false;
+    template<typename _Tp, typename... _Args>
+      static constexpr bool
+      __has_new_expr<_Tp, __void_t<__new_expr_t<_Tp, _Args...>>, _Args...>
+	= true;
+    template<typename _Alloc, typename _Tp, typename... _Args>
+      static constexpr bool __can_construct
+	= __has_construct<_Alloc, _Tp, _Args...>
+	    || __has_new_expr<_Tp, void, _Args...>;
   };
 
   template<typename _Alloc, typename _Up>
@@ -242,43 +280,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	_S_allocate(_Alloc2& __a, size_type __n, const_void_pointer, ...)
 	{ return __a.allocate(__n); }
 
-      template<typename _Tp, typename... _Args>
-	struct __construct_helper
-	{
-	  template<typename _Alloc2,
-	    typename = decltype(std::declval<_Alloc2*>()->construct(
-		  std::declval<_Tp*>(), std::declval<_Args>()...))>
-	    static true_type __test(int);
-
-	  template<typename>
-	    static false_type __test(...);
-
-	  using type = decltype(__test<_Alloc>(0));
-	};
-
-      template<typename _Tp, typename... _Args>
-	using __has_construct
-	  = typename __construct_helper<_Tp, _Args...>::type;
-
-      template<typename _Tp, typename... _Args>
-	static _GLIBCXX14_CONSTEXPR _Require<__has_construct<_Tp, _Args...>>
-	_S_construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
-	noexcept(noexcept(__a.construct(__p, std::forward<_Args>(__args)...)))
-	{ __a.construct(__p, std::forward<_Args>(__args)...); }
-
-      template<typename _Tp, typename... _Args>
-	static _GLIBCXX14_CONSTEXPR
-	_Require<__and_<__not_<__has_construct<_Tp, _Args...>>,
-			       is_constructible<_Tp, _Args...>>>
-	_S_construct(_Alloc&, _Tp* __p, _Args&&... __args)
-	noexcept(std::is_nothrow_constructible<_Tp, _Args...>::value)
-	{
-#if __cplusplus <= 201703L
-	  ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
-#else
-	  std::construct_at(__p, std::forward<_Args>(__args)...);
-#endif
-	}
 
       template<typename _Alloc2, typename _Tp>
 	static _GLIBCXX14_CONSTEXPR auto
@@ -372,12 +373,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        *  arguments @a __args...
       */
       template<typename _Tp, typename... _Args>
-	static _GLIBCXX20_CONSTEXPR auto
+	static _GLIBCXX20_CONSTEXPR
+	__enable_if_t<__can_construct<_Alloc, _Tp, _Args...>>
 	construct(_Alloc& __a, _Tp* __p, _Args&&... __args)
-	noexcept(noexcept(_S_construct(__a, __p,
-				       std::forward<_Args>(__args)...)))
-	-> decltype(_S_construct(__a, __p, std::forward<_Args>(__args)...))
-	{ _S_construct(__a, __p, std::forward<_Args>(__args)...); }
+	noexcept(_S_nothrow_construct<_Tp, _Args...>())
+	{
+	  if constexpr (__has_construct<_Alloc, _Tp, _Args...>)
+	    __a.construct(__p, std::forward<_Args>(__args)...);
+	  else
+	    std::_Construct(__p, std::forward<_Args>(__args)...);
+	}
 
       /**
        *  @brief  Destroy an object of type @a _Tp
@@ -416,7 +421,33 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       static _GLIBCXX20_CONSTEXPR _Alloc
       select_on_container_copy_construction(const _Alloc& __rhs)
       { return _S_select(__rhs, 0); }
+
+    private:
+#if __cpp_constexpr >= 201304 // >= C++14
+      template<typename _Tp, typename... _Args>
+	static constexpr bool
+	_S_nothrow_construct(_Alloc* __a = nullptr, _Tp* __p = nullptr)
+	{
+	  if constexpr (__has_construct<_Alloc, _Tp, _Args...>)
+	    return noexcept(__a->construct(__p, std::declval<_Args>()...));
+	  else
+	    return __is_nothrow_new_constructible<_Tp, _Args...>;
+	}
+#else
+      template<typename _Tp, typename... _Args>
+	static constexpr
+	__enable_if_t<__has_construct<_Alloc, _Tp, _Args...>, bool>
+	_S_nothrow_construct(_Alloc* __a = nullptr, _Tp* __p = nullptr)
+	{ return noexcept(__a->construct(__p, std::declval<_Args>()...)); }
+
+      template<typename _Tp, typename... _Args>
+	static constexpr
+	__enable_if_t<!__has_construct<_Alloc, _Tp, _Args...>, bool>
+	_S_nothrow_construct(_Alloc* = nullptr, _Tp* __p = nullptr)
+	{ return __is_nothrow_new_constructible<_Tp, _Args...>; }
+#endif
     };
+#pragma GCC diagnostic pop
 
 #if _GLIBCXX_HOSTED
   /// Partial specialization for std::allocator.
@@ -526,14 +557,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       template<typename _Up, typename... _Args>
 	[[__gnu__::__always_inline__]]
 	static _GLIBCXX20_CONSTEXPR void
-	construct(allocator_type& __a __attribute__((__unused__)), _Up* __p,
-		  _Args&&... __args)
-	noexcept(std::is_nothrow_constructible<_Up, _Args...>::value)
+	construct(allocator_type& __a __attribute__((__unused__)),
+		  _Up* __p, _Args&&... __args)
+#if __cplusplus <= 201703L
+	noexcept(noexcept(__a.construct(__p, std::forward<_Args>(__args)...)))
+#else
+	noexcept(__is_nothrow_new_constructible<_Up, _Args...>)
+#endif
 	{
 #if __cplusplus <= 201703L
 	  __a.construct(__p, std::forward<_Args>(__args)...);
-#else
+#elif __cpp_constexpr_dynamic_alloc // >= C++20
 	  std::construct_at(__p, std::forward<_Args>(__args)...);
+#else
+	  std::_Construct(__p, std::forward<_Args>(__args)...);
 #endif
 	}
 
@@ -653,7 +690,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	[[__gnu__::__always_inline__]]
 	static _GLIBCXX20_CONSTEXPR void
 	construct(allocator_type&, _Up* __p, _Args&&... __args)
-	noexcept(std::is_nothrow_constructible<_Up, _Args...>::value)
+	noexcept(__is_nothrow_new_constructible<_Up, _Args...>)
 	{ std::_Construct(__p, std::forward<_Args>(__args)...); }
 
       /**
diff --git a/libstdc++-v3/include/bits/new_allocator.h b/libstdc++-v3/include/bits/new_allocator.h
index 0e90c8819ac..21e7e22cae0 100644
--- a/libstdc++-v3/include/bits/new_allocator.h
+++ b/libstdc++-v3/include/bits/new_allocator.h
@@ -187,7 +187,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	__attribute__((__always_inline__))
 	void
 	construct(_Up* __p, _Args&&... __args)
-	noexcept(std::is_nothrow_constructible<_Up, _Args...>::value)
+	noexcept(__is_nothrow_new_constructible<_Up, _Args...>)
 	{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
 
       template<typename _Up>
diff --git a/libstdc++-v3/include/ext/malloc_allocator.h b/libstdc++-v3/include/ext/malloc_allocator.h
index b0a87b62d5a..cde06d83241 100644
--- a/libstdc++-v3/include/ext/malloc_allocator.h
+++ b/libstdc++-v3/include/ext/malloc_allocator.h
@@ -161,7 +161,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       template<typename _Up, typename... _Args>
         void
         construct(_Up* __p, _Args&&... __args)
-	noexcept(std::is_nothrow_constructible<_Up, _Args...>::value)
+	noexcept(std::__is_nothrow_new_constructible<_Up, _Args...>)
 	{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
 
       template<typename _Up>
diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits
index b441bf9908f..fe5f4ee1bad 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -1597,6 +1597,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #endif
 #endif // __cpp_lib_is_nothrow_convertible
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++14-extensions" // for variable templates
+  template<typename _Tp, typename... _Args>
+    struct __is_nothrow_new_constructible_impl
+    : __bool_constant<
+	noexcept(::new(std::declval<void*>()) _Tp(std::declval<_Args>()...))
+      >
+    { };
+
+  template<typename _Tp, typename... _Args>
+    _GLIBCXX17_INLINE constexpr bool __is_nothrow_new_constructible
+      = __and_<is_constructible<_Tp, _Args...>,
+	       __is_nothrow_new_constructible_impl<_Tp, _Args...>>::value;
+#pragma GCC diagnostic pop
+
   // Const-volatile modifications.
 
   /// remove_const
diff --git a/libstdc++-v3/testsuite/20_util/allocator/89510.cc b/libstdc++-v3/testsuite/20_util/allocator/89510.cc
index 95c85d2634e..91526462a09 100644
--- a/libstdc++-v3/testsuite/20_util/allocator/89510.cc
+++ b/libstdc++-v3/testsuite/20_util/allocator/89510.cc
@@ -136,13 +136,11 @@ struct Z
 };
 
 Z* zp;
-// These construct calls should be noexcept, but they are false because
-// they use is_nothrow_constructible which depends on is_nothrow_destructible.
 #if __cplusplus <= 201703L
-static_assert( ! noexcept(a.construct(zp)), "wrong" );
-static_assert( ! noexcept(a.construct(zp, 1)), "wrong" );
-static_assert( ! noexcept(a.destroy(zp)), "" );
+static_assert( noexcept(a.construct(zp)), "" );
+static_assert( noexcept(a.construct(zp, 1)), "" );
+static_assert( ! noexcept(a.destroy(zp)), "~Z is noexcept(false)" );
 #endif
-static_assert( ! noexcept(AT::construct(a, zp)), "" );
-static_assert( ! noexcept(AT::construct(a, zp, 1)), "" );
-static_assert( ! noexcept(AT::destroy(a, zp)), "" );
+static_assert( noexcept(AT::construct(a, zp)), "" );
+static_assert( noexcept(AT::construct(a, zp, 1)), "" );
+static_assert( ! noexcept(AT::destroy(a, zp)), "~Z is noexcept(false)" );
diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/members/108619.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/members/108619.cc
new file mode 100644
index 00000000000..01bf611b804
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/allocator_traits/members/108619.cc
@@ -0,0 +1,35 @@
+// { dg-do compile { target c++11 } }
+
+#include <memory>
+
+template<typename T>
+struct Alloc
+{
+  Alloc() = default;
+
+  template<typename U> Alloc(const Alloc<U>&) { }
+
+  using value_type = T;
+
+  T* allocate(unsigned n)
+  { return std::allocator<T>().allocate(n); }
+
+  void deallocate(T* p, unsigned n)
+  { return std::allocator<T>().deallocate(p, n); }
+
+  template<typename U> void destroy(U* p){ p->~U(); }
+};
+
+
+class S
+{
+  ~S() = default;
+
+  friend Alloc<S>;
+};
+
+void
+test_pr108619(Alloc<int> a, S* p)
+{
+  std::allocator_traits<Alloc<int>>::construct(a, p);
+}
diff --git a/libstdc++-v3/testsuite/ext/malloc_allocator/89510.cc b/libstdc++-v3/testsuite/ext/malloc_allocator/89510.cc
index 1889c88d6e5..771facbdf74 100644
--- a/libstdc++-v3/testsuite/ext/malloc_allocator/89510.cc
+++ b/libstdc++-v3/testsuite/ext/malloc_allocator/89510.cc
@@ -137,13 +137,11 @@ struct Z
 };
 
 Z* zp;
-// These construct calls should be noexcept, but they are false because
-// they use is_nothrow_constructible which depends on is_nothrow_destructible.
 #if __cplusplus <= 201703L
-static_assert( ! noexcept(a.construct(zp)), "wrong" );
-static_assert( ! noexcept(a.construct(zp, 1)), "wrong" );
-static_assert( ! noexcept(a.destroy(zp)), "" );
+static_assert( noexcept(a.construct(zp)), "" );
+static_assert( noexcept(a.construct(zp, 1)), "" );
+static_assert( ! noexcept(a.destroy(zp)), "~Z is noexcept(false)" );
 #endif
-static_assert( ! noexcept(AT::construct(a, zp)), "" );
-static_assert( ! noexcept(AT::construct(a, zp, 1)), "" );
-static_assert( ! noexcept(AT::destroy(a, zp)), "" );
+static_assert( noexcept(AT::construct(a, zp)), "" );
+static_assert( noexcept(AT::construct(a, zp, 1)), "" );
+static_assert( ! noexcept(AT::destroy(a, zp)), "~Z is noexcept(false)" );
diff --git a/libstdc++-v3/testsuite/ext/new_allocator/89510.cc b/libstdc++-v3/testsuite/ext/new_allocator/89510.cc
index 06384ae5570..7fc443831c9 100644
--- a/libstdc++-v3/testsuite/ext/new_allocator/89510.cc
+++ b/libstdc++-v3/testsuite/ext/new_allocator/89510.cc
@@ -137,13 +137,11 @@ struct Z
 };
 
 Z* zp;
-// These construct calls should be noexcept, but they are false because
-// they use is_nothrow_constructible which depends on is_nothrow_destructible.
 #if __cplusplus <= 201703L
-static_assert( ! noexcept(a.construct(zp)), "wrong" );
-static_assert( ! noexcept(a.construct(zp, 1)), "wrong" );
-static_assert( ! noexcept(a.destroy(zp)), "" );
+static_assert( noexcept(a.construct(zp)), "" );
+static_assert( noexcept(a.construct(zp, 1)), "" );
+static_assert( ! noexcept(a.destroy(zp)), "~Z is noexcept(false)" );
 #endif
-static_assert( ! noexcept(AT::construct(a, zp)), "" );
-static_assert( ! noexcept(AT::construct(a, zp, 1)), "" );
-static_assert( ! noexcept(AT::destroy(a, zp)), "" );
+static_assert( noexcept(AT::construct(a, zp)), "" );
+static_assert( noexcept(AT::construct(a, zp, 1)), "" );
+static_assert( ! noexcept(AT::destroy(a, zp)), "~Z is noexcept(false)" );

commit 74f67ba3dcfd09209bed6265772d5fd9007ea605
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Sep 20 17:35:48 2024 +0100

    libstdc++: Document missing features for old std:string ABI [PR116777]
    
    There are several features that are not supported when using the old
    std::string ABI. It's possible that PR 81967 will get fixed, but the
    missing C++20 features almost certainly won't be. Document this in the
    manual.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116777
            * doc/xml/manual/using.xml: Document features that are not
            supported for the gcc4-compatible ABI.
            * doc/html/manual/using_dual_abi.html: Regenerate.
    
    (cherry picked from commit 82309222300acf68e345b32155df21e1b876144e)

diff --git a/libstdc++-v3/doc/html/manual/using_dual_abi.html b/libstdc++-v3/doc/html/manual/using_dual_abi.html
index 916ac575f64..939eedae362 100644
--- a/libstdc++-v3/doc/html/manual/using_dual_abi.html
+++ b/libstdc++-v3/doc/html/manual/using_dual_abi.html
@@ -22,7 +22,7 @@
   of the macro is <code class="literal">1</code> which causes the new ABI to be active,
   so to use the old ABI you must explicitly define the macro to
   <code class="literal">0</code> before including any library headers.
-  (Be aware that some GNU/Linux distributions configure GCC 5 differently so
+  (Be aware that some GNU/Linux distributions configured GCC 5 differently so
   that the default value of the macro is <code class="literal">0</code> and users must
   define it to <code class="literal">1</code> to enable the new ABI.)
 </p><p> Although the changes were made for C++11 conformance, the choice of ABI
@@ -72,6 +72,22 @@
   Handlers for <code class="classname">std::exception</code> will always catch
   iostreams exceptions, because the old and new type both inherit from
   <code class="classname">std::exception</code>.
+</p><p>
+  Some features are not supported when using the old ABI, including:
+  </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+    Using <code class="classname">std::string::const_iterator</code> for
+    positional arguments to member functions such as
+    <code class="function">std::string::erase</code>.
+  </li><li class="listitem">
+    Allocator propagation in <code class="classname">std::string</code>.
+  </li><li class="listitem">
+    Using <code class="classname">std::string</code> at compile-time in
+    <code class="code">constexpr</code> functions.
+  </li><li class="listitem">
+    Class <code class="classname">std::chrono::time_zone</code> and all related APIs.
+  </li><li class="listitem">
+    The <code class="filename">&lt;syncstream&gt;</code> header.
+  </li></ul></div><p>
 </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.abi.trouble"></a>Troubleshooting</h3></div></div></div><p> If you get linker errors about undefined references to symbols
   that involve types in the <code class="code">std::__cxx11</code> namespace or the tag
   <code class="code">[abi:cxx11]</code> then it probably indicates that you are trying to
diff --git a/libstdc++-v3/doc/xml/manual/using.xml b/libstdc++-v3/doc/xml/manual/using.xml
index 2baa9920517..92d3c0ed6b8 100644
--- a/libstdc++-v3/doc/xml/manual/using.xml
+++ b/libstdc++-v3/doc/xml/manual/using.xml
@@ -1356,7 +1356,7 @@ g++ -Winvalid-pch -I. -include stdc++.h -H -g -O2 hello.cc -o test.exe
   of the macro is <literal>1</literal> which causes the new ABI to be active,
   so to use the old ABI you must explicitly define the macro to
   <literal>0</literal> before including any library headers.
-  (Be aware that some GNU/Linux distributions configure GCC 5 differently so
+  (Be aware that some GNU/Linux distributions configured GCC 5 differently so
   that the default value of the macro is <literal>0</literal> and users must
   define it to <literal>1</literal> to enable the new ABI.)
 </para>
@@ -1416,6 +1416,30 @@ g++ -Winvalid-pch -I. -include stdc++.h -H -g -O2 hello.cc -o test.exe
   <classname>std::exception</classname>.
 </para>
 
+<para>
+  Some features are not supported when using the old ABI, including:
+  <itemizedlist>
+  <listitem>
+    Using <classname>std::string::const_iterator</classname> for
+    positional arguments to member functions such as
+    <function>std::string::erase</function>.
+  </listitem>
+  <listitem>
+    Allocator propagation in <classname>std::string</classname>.
+  </listitem>
+  <listitem>
+    Using <classname>std::string</classname> at compile-time in
+    <code>constexpr</code> functions.
+  </listitem>
+  <listitem>
+    Class <classname>std::chrono::time_zone</classname> and all related APIs.
+  </listitem>
+  <listitem>
+    The <filename class="headerfile">&lt;syncstream&gt;</filename> header.
+  </listitem>
+  </itemizedlist>
+</para>
+
 <section xml:id="manual.intro.using.abi.trouble" xreflabel="Dual ABI Troubleshooting"><info><title>Troubleshooting</title></info>
 
 <para> If you get linker errors about undefined references to symbols

commit f4fc6d2aa809d0c4b5b1825af17bed4a601a3d7f
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Sep 18 17:47:49 2024 +0100

    libstdc++: Fix condition for ranges::copy to use memmove [PR116754]
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116754
            * include/bits/ranges_algobase.h (__copy_or_move): Fix order of
            arguments to __memcpyable.
    
    (cherry picked from commit 83c6fe130a00c6c28cfffcc787a0a719966adfaf)

diff --git a/libstdc++-v3/include/bits/ranges_algobase.h b/libstdc++-v3/include/bits/ranges_algobase.h
index e26a73a27d6..7387f616d36 100644
--- a/libstdc++-v3/include/bits/ranges_algobase.h
+++ b/libstdc++-v3/include/bits/ranges_algobase.h
@@ -252,7 +252,7 @@ namespace ranges
 	{
 	  if (!std::__is_constant_evaluated())
 	    {
-	      if constexpr (__memcpyable<_Iter, _Out>::__value)
+	      if constexpr (__memcpyable<_Out, _Iter>::__value)
 		{
 		  using _ValueTypeI = iter_value_t<_Iter>;
 		  static_assert(_IsMove

commit 4d88724c2d804e126d63aed77fa8c2c333e99396
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Aug 29 13:47:15 2024 +0100

    libstdc++: Avoid forming T* in unique_ptr(auto_ptr<U>&&) constraints [PR116529]
    
    PR 116529 shows that std::unique_ptr<X&, D> is currently unusable
    because the constructor taking std::auto_ptr (which is a non-standard
    extension since C++17) tries to form the invalid type X&* during
    overload resolution. We can use the `pointer` type in the constructor
    constraints, instead of trying to form an invalid type. The
    std::auto_ptr constructor can never actually match for the case where
    element_type is a reference, so we just need it to produce a
    substitution failure instead of being ill-formed.
    
    LWG 4144 might make std::unique_ptr<X&, D> ill-formed, which would
    invalidate this new test. We would have to remove this test in that
    case. Using `pointer` in the constructor from std::auto_ptr would not be
    needed to support the std::unique_ptr<X&, D> case, but would not cause
    any harm either.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116529
            * include/bits/unique_ptr.h (unique_ptr(auto_ptr<U>&&)):
            Use pointer instead of T*.
            * testsuite/20_util/unique_ptr/creation/116529.cc: New test.
    
    (cherry picked from commit a001d515059ba4647169f8c17967d08bbe41cb7a)

diff --git a/libstdc++-v3/include/bits/unique_ptr.h b/libstdc++-v3/include/bits/unique_ptr.h
index 0f600db32f9..edcff78bff9 100644
--- a/libstdc++-v3/include/bits/unique_ptr.h
+++ b/libstdc++-v3/include/bits/unique_ptr.h
@@ -379,8 +379,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
       /// Converting constructor from @c auto_ptr
-      template<typename _Up, typename = _Require<
-	       is_convertible<_Up*, _Tp*>, is_same<_Dp, default_delete<_Tp>>>>
+      template<typename _Up,
+	       typename = _Require<is_convertible<_Up*, pointer>,
+				   is_same<_Dp, default_delete<_Tp>>>>
 	unique_ptr(auto_ptr<_Up>&& __u) noexcept;
 #pragma GCC diagnostic pop
 #endif
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/116529.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/116529.cc
new file mode 100644
index 00000000000..323fc7cb27c
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/116529.cc
@@ -0,0 +1,35 @@
+// { dg-do run { target c++11 } }
+
+// Bug libstdc++/116529 - Construction of unique_ptr with reference type
+// is rejected because of auto_ptr constructor
+
+#include <memory>
+#include <testsuite_hooks.h>
+
+int count = 0;
+
+struct X
+{
+  ~X() { ++count; }
+};
+
+struct deleter : std::default_delete<X>
+{
+  using pointer = X*;
+};
+
+void
+test01()
+{
+  {
+    std::unique_ptr<X&, deleter> up(new X);
+    // { dg-bogus "forming pointer to reference" "" { target *-*-* } 0 }
+    VERIFY( count == 0 );
+  }
+  VERIFY( count == 1 );
+}
+
+int main()
+{
+  test01();
+}

commit 335e10a88ffea50d60cc9518074844972c64c916
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Sep 24 00:22:27 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ea929e906bf..07e92531120 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2024-09-23  Iain Sandoe  <iain@sandoe.co.uk>
+
+	Backported from master:
+	2024-09-20  Iain Sandoe  <iain@sandoe.co.uk>
+
+	* config/darwin.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): New.
+
+2024-09-23  Iain Sandoe  <iain@sandoe.co.uk>
+
+	Backported from master:
+	2024-08-07  Iain Sandoe  <iain@sandoe.co.uk>
+
+	PR target/116237
+	* config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Add a spec for
+	weak_framework.
+	* config/darwin.opt: Handle weak_framework driver option.
+
 2024-09-22  John David Anglin  <danglin@gcc.gnu.org>
 
 	* config/pa/pa.h (GENERAL_REGNO_P): Define.
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 37e5425b64e..f4255371a62 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240923
+20240924
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index e7c752c7e7a..177a9108960 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,12 @@
+2024-09-23  Iain Sandoe  <iain@sandoe.co.uk>
+
+	Backported from master:
+	2024-09-22  Iain Sandoe  <iain@sandoe.co.uk>
+
+	* config.host: From macOS 11, limit earliest macOS support
+	to macOS 11.
+	* config/t-darwin-min-11: New file.
+
 2024-08-27  YunQiang Su  <syq@gcc.gnu.org>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c30ae1757cf..e0e79ed50bd 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,59 @@
+2024-09-23  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-20  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116529
+	* include/bits/unique_ptr.h (unique_ptr(auto_ptr<U>&&)):
+	Use pointer instead of T*.
+	* testsuite/20_util/unique_ptr/creation/116529.cc: New test.
+
+2024-09-23  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-22  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116754
+	* include/bits/ranges_algobase.h (__copy_or_move): Fix order of
+	arguments to __memcpyable.
+
+2024-09-23  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-20  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116777
+	* doc/xml/manual/using.xml: Document features that are not
+	supported for the gcc4-compatible ABI.
+	* doc/html/manual/using_dual_abi.html: Regenerate.
+
+2024-09-23  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-08-23  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/108619
+	* include/bits/alloc_traits.h (__allocator_traits_base): Add
+	variable templates for detecting whether the allocator has a
+	construct member, or if placement new can be used instead.
+	(allocator_traits::__construct_helper): Remove.
+	(allocator_traits::__has_construct): Remove.
+	(allocator_traits::construct): Use 'if constexpr' instead of
+	dispatching to overloads constrained with enable_if.
+	(allocator_traits<allocator<T>>::construct): Use _Construct if
+	construct_at is not supported. Use
+	__is_nothrow_new_constructible for noexcept-specifier.
+	(allocator_traits<allocator<void>>::construct): Use
+	__is_nothrow_new_constructible for noexcept-specifier.
+	* include/bits/new_allocator.h (construct): Likewise.
+	* include/ext/malloc_allocator.h (construct): Likewise.
+	* include/std/type_traits (__is_nothrow_new_constructible): New
+	variable template.
+	* testsuite/20_util/allocator/89510.cc: Adjust expected results.
+	* testsuite/ext/malloc_allocator/89510.cc: Likewise.
+	* testsuite/ext/new_allocator/89510.cc: Likewise.
+	* testsuite/20_util/allocator_traits/members/108619.cc: New test.
+
 2024-09-11  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit 10d8060e779323620c9b10d8b507055b80814a3a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Sep 25 00:22:29 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f4255371a62..e6fc5ab9d83 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240924
+20240925

commit 54780d29c90d0c27769002b6473b4c50aac8301e
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Sep 26 00:22:51 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e6fc5ab9d83..6444ce3348b 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240925
+20240926

commit 1670d3259dec8abf445ed4f282dcbf3a1e0d3032
Author: Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
Date:   Thu Sep 26 19:38:02 2024 +0200

    s390: Fix AQ and AR constraints
    
    Ensure for AQ and AR constraints that the resulting displacement after
    adding any positive offset less than the size of the object being
    referenced is still valid.
    
    gcc/ChangeLog:
    
            * config/s390/s390.cc (s390_mem_constraint): Check displacement
            for AQ and AR constraints.
    
    (cherry picked from commit 1a71ff3b89aadc7fa0af0bca269d74bb23c1a957)

diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc
index 4be95788094..2619a9ac986 100644
--- a/gcc/config/s390/s390.cc
+++ b/gcc/config/s390/s390.cc
@@ -3552,6 +3552,18 @@ s390_mem_constraint (const char *str, rtx op)
       if ((reload_completed || reload_in_progress)
 	  ? !offsettable_memref_p (op) : !offsettable_nonstrict_memref_p (op))
 	return 0;
+      /* offsettable_memref_p ensures only that any positive offset added to
+	 the address forms a valid general address.  For AQ and AR constraints
+	 we also have to verify that the resulting displacement after adding
+	 any positive offset less than the size of the object being referenced
+	 is still valid.  */
+      if (str[1] == 'Q' || str[1] == 'R')
+	{
+	  int o = GET_MODE_SIZE (GET_MODE (op)) - 1;
+	  rtx tmp = adjust_address (op, QImode, o);
+	  if (!s390_check_qrst_address (str[1], XEXP (tmp, 0), true))
+	    return 0;
+	}
       return s390_check_qrst_address (str[1], XEXP (op, 0), true);
     case 'B':
       /* Check for non-literal-pool variants of memory constraints.  */

commit 3eb3fbc89c638a72611efdc54110b8113f79ee8d
Author: Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
Date:   Thu Sep 26 19:38:02 2024 +0200

    s390: Fix TF to FPRX2 conversion [PR115860]
    
    Currently subregs originating from *tf_to_fprx2_0 and *tf_to_fprx2_1
    survive register allocation.  This in turn leads to wrong register
    renaming.  Keeping the current approach would mean we need two insns for
    *tf_to_fprx2_0 and *tf_to_fprx2_1, respectively.  Something along the
    lines
    
    (define_insn "*tf_to_fprx2_0"
      [(set (subreg:DF (match_operand:FPRX2 0 "nonimmediate_operand" "=f") 0)
            (unspec:DF [(match_operand:TF 1 "general_operand" "v")]
                       UNSPEC_TF_TO_FPRX2_0))]
      "TARGET_VXE"
      "#")
    
    (define_insn "*tf_to_fprx2_0"
      [(set (match_operand:DF 0 "nonimmediate_operand" "=f")
            (unspec:DF [(match_operand:TF 1 "general_operand" "v")]
                       UNSPEC_TF_TO_FPRX2_0))]
      "TARGET_VXE"
      "vpdi\t%v0,%v1,%v0,1
      [(set_attr "op_type" "VRR")])
    
    and similar for *tf_to_fprx2_1.  Note, pre register allocation operand 0
    has mode FPRX2 and afterwards DF once subregs have been eliminated.
    
    Since we always copy a whole vector register into a floating-point
    register pair, another way to fix this is to merge *tf_to_fprx2_0 and
    *tf_to_fprx2_1 into a single insn which means we don't have to use
    subregs at all.  The downside of this is that the assembler template
    contains two instructions, now.  The upside is that we don't have to
    come up with some artificial insn before RA which might be more
    readable/maintainable.  That is implemented by this patch.
    
    In commit r11-4872-ge627cda5686592, the output operand specifier %V was
    introduced which is used in tf_to_fprx2 only, now.  Instead of coming up
    with its counterpart %F for floating-point registers, which would also
    only be used in tf_to_fprx2, I print the operands directly.  This
    renders %V unused which is why it is removed by this patch.
    
    gcc/ChangeLog:
    
            PR target/115860
            * config/s390/s390.cc (print_operand): Remove operand specifier
            %V.
            * config/s390/s390.md (UNSPEC_TF_TO_FPRX2): New.
            * config/s390/vector.md (*tf_to_fprx2_0): Remove.
            (*tf_to_fprx2_1): Remove.
            (tf_to_fprx2): New.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/s390/vector/long-double-asm-abi.c: Adapt
            scan-assembler directive.
            * gcc.target/s390/vector/long-double-to-i64.c: Adapt
            scan-assembler directive.
            * gcc.target/s390/pr115860-1.c: New test.
    
    (cherry picked from commit 46c2538435dfc50dd5c67c4e03ce387d1f6ebe9b)

diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc
index 2619a9ac986..a1c0a57a795 100644
--- a/gcc/config/s390/s390.cc
+++ b/gcc/config/s390/s390.cc
@@ -8466,7 +8466,6 @@ print_operand_address (FILE *file, rtx addr)
 	 CONST_VECTOR: Generate a bitmask for vgbm instruction.
     'x': print integer X as if it's an unsigned halfword.
     'v': print register number as vector register (v1 instead of f1).
-    'V': print the second word of a TFmode operand as vector register.
 */
 
 void
@@ -8659,13 +8658,13 @@ print_operand (FILE *file, rtx x, int code)
     case REG:
       /* Print FP regs as fx instead of vx when they are accessed
 	 through non-vector mode.  */
-      if ((code == 'v' || code == 'V')
+      if (code == 'v'
 	  || VECTOR_NOFP_REG_P (x)
 	  || (FP_REG_P (x) && VECTOR_MODE_P (GET_MODE (x)))
 	  || (VECTOR_REG_P (x)
 	      && (GET_MODE_SIZE (GET_MODE (x)) /
 		  s390_class_max_nregs (FP_REGS, GET_MODE (x))) > 8))
-	fprintf (file, "%%v%s", reg_names[REGNO (x) + (code == 'V')] + 2);
+	fprintf (file, "%%v%s", reg_names[REGNO (x)] + 2);
       else
 	fprintf (file, "%s", reg_names[REGNO (x)]);
       break;
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 17d31643dbc..72e05be9b18 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -241,6 +241,8 @@
    UNSPEC_VEC_VFMIN
    UNSPEC_VEC_VFMAX
 
+   UNSPEC_TF_TO_FPRX2
+
    UNSPEC_NNPA_VCLFNHS_V8HI
    UNSPEC_NNPA_VCLFNLS_V8HI
    UNSPEC_NNPA_VCRNFS_V8HI
diff --git a/gcc/config/s390/vector.md b/gcc/config/s390/vector.md
index 55dc35a71bf..35defb7043a 100644
--- a/gcc/config/s390/vector.md
+++ b/gcc/config/s390/vector.md
@@ -917,36 +917,45 @@
   "vmrlg\t%0,%1,%2";
   [(set_attr "op_type" "VRR")])
 
-
-(define_insn "*tf_to_fprx2_0"
-  [(set (subreg:DF (match_operand:FPRX2 0 "nonimmediate_operand" "+f") 0)
-	(subreg:DF (match_operand:TF    1 "general_operand"       "v") 0))]
-  "TARGET_VXE"
-  ; M4 == 1 corresponds to %v0[0] = %v1[0]; %v0[1] = %v0[1];
-  "vpdi\t%v0,%v1,%v0,1"
-  [(set_attr "op_type" "VRR")])
-
-(define_insn "*tf_to_fprx2_1"
-  [(set (subreg:DF (match_operand:FPRX2 0 "nonimmediate_operand" "+f") 8)
-	(subreg:DF (match_operand:TF    1 "general_operand"       "v") 8))]
+(define_insn "tf_to_fprx2"
+  [(set (match_operand:FPRX2             0 "register_operand" "=f,f ,f")
+	(unspec:FPRX2 [(match_operand:TF 1 "general_operand"   "v,AR,AT")]
+		      UNSPEC_TF_TO_FPRX2))]
   "TARGET_VXE"
-  ; M4 == 5 corresponds to %V0[0] = %v1[1]; %V0[1] = %V0[1];
-  "vpdi\t%V0,%v1,%V0,5"
-  [(set_attr "op_type" "VRR")])
-
-(define_insn_and_split "tf_to_fprx2"
-  [(set (match_operand:FPRX2            0 "nonimmediate_operand" "=f,f")
-	(subreg:FPRX2 (match_operand:TF 1 "general_operand"       "v,AR") 0))]
-  "TARGET_VXE"
-  "#"
-  "!(MEM_P (operands[1]) && MEM_VOLATILE_P (operands[1]))"
-  [(set (match_dup 2) (match_dup 3))
-   (set (match_dup 4) (match_dup 5))]
 {
-  operands[2] = simplify_gen_subreg (DFmode, operands[0], FPRX2mode, 0);
-  operands[3] = simplify_gen_subreg (DFmode, operands[1], TFmode, 0);
-  operands[4] = simplify_gen_subreg (DFmode, operands[0], FPRX2mode, 8);
-  operands[5] = simplify_gen_subreg (DFmode, operands[1], TFmode, 8);
+  char buf[64];
+  const char *reg_pair = reg_names[REGNO (operands[0]) + 1];
+  switch (which_alternative)
+    {
+    case 0:
+      if (REGNO (operands[0]) == REGNO (operands[1]))
+	{
+	  reg_pair += 2;  // get rid of prefix %f
+	  snprintf (buf, sizeof (buf), "vpdi\t%%%%v%s,%%v1,%%%%v%s,5", reg_pair, reg_pair);
+	  output_asm_insn (buf, operands);
+	  return "";
+	}
+      else
+	{
+	  reg_pair += 2;  // get rid of prefix %f
+	  snprintf (buf, sizeof (buf), "ldr\t%%f0,%%f1;vpdi\t%%%%v%s,%%v1,%%%%v%s,5", reg_pair, reg_pair);
+	  output_asm_insn (buf, operands);
+	  return "";
+	}
+    case 1:
+      {
+	snprintf (buf, sizeof (buf), "ld\t%%f0,%%1;ld\t%%%s,8+%%1", reg_pair);
+	output_asm_insn (buf, operands);
+	return "";
+      }
+    case 2:
+      {
+	snprintf (buf, sizeof (buf), "ldy\t%%f0,%%1;ldy\t%%%s,8+%%1", reg_pair);
+	output_asm_insn (buf, operands);
+	return "";
+      }
+    default: gcc_unreachable ();
+    }
 })
 
 ;; VECTOR REVERSE ELEMENTS V16QI
@@ -2725,9 +2734,8 @@
 ; There is no instruction for rounding an extended BFP operand in a VR into
 ; a signed integer, therefore copy it into a FPR pair first.
 (define_expand "fix_trunctf<mode>2_vr"
-  [(set (subreg:DF (match_dup 2) 0)
-	(subreg:DF (match_operand:TF 1 "register_operand" "") 0))
-   (set (subreg:DF (match_dup 2) 8) (subreg:DF (match_dup 1) 8))
+  [(set (match_dup 2)
+	(unspec:FPRX2 [(match_operand:TF 1 "register_operand")] UNSPEC_TF_TO_FPRX2))
    (parallel [(set (match_operand:GPR 0 "register_operand" "")
 		   (fix:GPR (match_dup 2)))
 	      (unspec:GPR [(const_int BFP_RND_TOWARD_0)] UNSPEC_ROUND)
@@ -2758,9 +2766,8 @@
 ; There is no instruction for rounding an extended BFP operand in a VR into
 ; an unsigned integer, therefore copy it into a FPR pair first.
 (define_expand "fixuns_trunctf<mode>2_vr"
-  [(set (subreg:DF (match_dup 2) 0)
-	(subreg:DF (match_operand:TF 1 "register_operand" "") 0))
-   (set (subreg:DF (match_dup 2) 8) (subreg:DF (match_dup 1) 8))
+  [(set (match_dup 2)
+	(unspec:FPRX2 [(match_operand:TF 1 "register_operand")] UNSPEC_TF_TO_FPRX2))
    (parallel [(set (match_operand:GPR 0 "register_operand" "")
 		   (unsigned_fix:GPR (match_dup 2)))
 	      (unspec:GPR [(const_int BFP_RND_TOWARD_0)] UNSPEC_ROUND)
diff --git a/gcc/testsuite/gcc.target/s390/pr115860-1.c b/gcc/testsuite/gcc.target/s390/pr115860-1.c
new file mode 100644
index 00000000000..abcddeaed95
--- /dev/null
+++ b/gcc/testsuite/gcc.target/s390/pr115860-1.c
@@ -0,0 +1,26 @@
+/* { dg-do run } */
+/* { dg-require-effective-target s390_vxe } */
+/* { dg-options "-O2 -march=z14 -mzarch" } */
+
+__attribute__ ((noipa))
+long long trunctf (long double x)
+{
+  /* Ensure via ++x that x is in a register.  */
+  ++x;
+  return x;
+}
+
+__attribute__ ((noipa))
+long long trunctf_from_mem (long double x)
+{
+  return x;
+}
+
+int main (void)
+{
+  if (trunctf (0x7ffffffffffffffeLL) != 0x7fffffffffffffffLL)
+    __builtin_abort ();
+  if (trunctf_from_mem (0x7fffffffffffffffLL) != 0x7fffffffffffffffLL)
+    __builtin_abort ();
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.target/s390/vector/long-double-asm-abi.c b/gcc/testsuite/gcc.target/s390/vector/long-double-asm-abi.c
index f9f2d1286e2..ac3576801f0 100644
--- a/gcc/testsuite/gcc.target/s390/vector/long-double-asm-abi.c
+++ b/gcc/testsuite/gcc.target/s390/vector/long-double-asm-abi.c
@@ -14,7 +14,7 @@ xsqrt (long double x)
 
 /* Check that the generated code is very small and straightforward.  In
    particular, there must be no unnecessary copying and no stack frame.  */
-/* { dg-final { scan-assembler {\n\tld\t[^\n]*\n\tld\t[^\n]*\n(#[^\n]*\n)*\tsqxbr\t.*\n(#[^\n]*\n)*\tstd\t[^\n]*\n\tstd\t[^\n]*\n\tbr\t%r14\n} } } */
+/* { dg-final { scan-assembler {\n\tld\t[^\n]*;ld\t[^\n]*\n(#[^\n]*\n)*\tsqxbr\t.*\n(#[^\n]*\n)*\tstd\t[^\n]*\n\tstd\t[^\n]*\n\tbr\t%r14\n} } } */
 
 int
 main (void)
diff --git a/gcc/testsuite/gcc.target/s390/vector/long-double-to-i64.c b/gcc/testsuite/gcc.target/s390/vector/long-double-to-i64.c
index 2dbbb5d1c03..ed47fd9b858 100644
--- a/gcc/testsuite/gcc.target/s390/vector/long-double-to-i64.c
+++ b/gcc/testsuite/gcc.target/s390/vector/long-double-to-i64.c
@@ -10,8 +10,6 @@ long_double_to_i64 (long double x)
   return x;
 }
 
-/* { dg-final { scan-assembler-times {\n\tvpdi\t%v\d+,%v\d+,%v\d+,1\n} 1 } } */
-/* { dg-final { scan-assembler-times {\n\tvpdi\t%v\d+,%v\d+,%v\d+,5\n} 1 } } */
 /* { dg-final { scan-assembler-times {\n\tcgxbr\t} 1 } } */
 
 int

commit 37a302fb72105d335bdd254e44e06903c320eb40
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Sep 27 00:22:39 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 07e92531120..ad8f8d4714e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,24 @@
+2024-09-26  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	Backported from master:
+	2024-09-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	PR target/115860
+	* config/s390/s390.cc (print_operand): Remove operand specifier
+	%V.
+	* config/s390/s390.md (UNSPEC_TF_TO_FPRX2): New.
+	* config/s390/vector.md (*tf_to_fprx2_0): Remove.
+	(*tf_to_fprx2_1): Remove.
+	(tf_to_fprx2): New.
+
+2024-09-26  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	Backported from master:
+	2024-09-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	* config/s390/s390.cc (s390_mem_constraint): Check displacement
+	for AQ and AR constraints.
+
 2024-09-23  Iain Sandoe  <iain@sandoe.co.uk>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 6444ce3348b..b84faf4bb87 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240926
+20240927
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dcfef8afde0..5c08a47f315 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2024-09-26  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	Backported from master:
+	2024-09-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	* gcc.target/s390/vector/long-double-asm-abi.c: Adapt
+	scan-assembler directive.
+	* gcc.target/s390/vector/long-double-to-i64.c: Adapt
+	scan-assembler directive.
+	* gcc.target/s390/pr115860-1.c: New test.
+
 2024-09-20  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:

commit cd8ba194c511f0b816074db7cbdea07bb951cc65
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Sep 28 00:23:51 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index b84faf4bb87..d1c17555461 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240927
+20240928

commit 25cb153f93bb9ff3543ba8e31bbe7be4f6168aa4
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Sep 25 16:39:04 2024 +0800

    x86: Don't use address override with segment regsiter
    
    Address override only applies to the (reg32) part in the thread address
    fs:(reg32).  Don't rewrite thread address like
    
    (set (reg:CCZ 17 flags)
        (compare:CCZ (reg:SI 98 [ __gmpfr_emax.0_1 ])
            (mem/c:SI (plus:SI (plus:SI (unspec:SI [
                                (const_int 0 [0])
                            ] UNSPEC_TP)
                        (reg:SI 107))
                    (const:SI (unspec:SI [
                                (symbol_ref:SI ("previous_emax") [flags 0x1a] <var_decl 0x7fffe9a11cf0 previous_emax>)
                            ] UNSPEC_DTPOFF))) [1 previous_emax+0 S4 A32])))
    
    if address override is used to avoid the invalid memory operand like
    
            cmpl    %fs:previous_emax@dtpoff(%eax), %r12d
    
    gcc/
    
            PR target/116839
            * config/i386/i386.cc (ix86_rewrite_tls_address_1): Make it
            static.  Return if TLS address is thread register plus an integer
            register.
    
    gcc/testsuite/
    
            PR target/116839
            * gcc.target/i386/pr116839.c: New file.
    
    Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
    (cherry picked from commit c79cc30862d7255ca15884aa956d1ccfa279d86a)

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 8f1c1f9ccd0..93d05a301c9 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -12458,7 +12458,7 @@ ix86_tls_address_pattern_p (rtx op)
 }
 
 /* Rewrite *LOC so that it refers to a default TLS address space.  */
-void
+static void
 ix86_rewrite_tls_address_1 (rtx *loc)
 {
   subrtx_ptr_iterator::array_type array;
@@ -12480,6 +12480,13 @@ ix86_rewrite_tls_address_1 (rtx *loc)
 		  if (GET_CODE (u) == UNSPEC
 		      && XINT (u, 1) == UNSPEC_TP)
 		    {
+		      /* NB: Since address override only applies to the
+			 (reg32) part in fs:(reg32), return if address
+			 override is used.  */
+		      if (Pmode != word_mode
+			  && REG_P (XEXP (*x, 1 - i)))
+			return;
+
 		      addr_space_t as = DEFAULT_TLS_SEG_REG;
 
 		      *x = XEXP (*x, 1 - i);
diff --git a/gcc/testsuite/gcc.target/i386/pr116839.c b/gcc/testsuite/gcc.target/i386/pr116839.c
new file mode 100644
index 00000000000..e5df8256251
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr116839.c
@@ -0,0 +1,48 @@
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-require-effective-target maybe_x32 } */
+/* { dg-options "-mx32 -O2 -fPIC -mtls-dialect=gnu2" } */
+/* { dg-final { scan-assembler-not "cmpl\[ \t\]+%fs:previous_emax@dtpoff\\(%eax\\)" } } */
+
+typedef long mpfr_prec_t;
+typedef long mpfr_exp_t;
+typedef struct {
+  mpfr_prec_t _mpfr_prec;
+} __mpfr_struct;
+typedef __mpfr_struct mpfr_t[1];
+extern _Thread_local mpfr_exp_t __gmpfr_emax;
+static _Thread_local mpfr_exp_t previous_emax;
+static _Thread_local mpfr_t bound_emax;
+extern const mpfr_t __gmpfr_const_log2_RNDD;
+extern const mpfr_t __gmpfr_const_log2_RNDU;
+
+typedef enum {
+  MPFR_RNDN=0,
+  MPFR_RNDZ,
+  MPFR_RNDU,
+  MPFR_RNDD,
+  MPFR_RNDA,
+  MPFR_RNDF,
+  MPFR_RNDNA=-1
+} mpfr_rnd_t;
+typedef __mpfr_struct *mpfr_ptr;
+typedef const __mpfr_struct *mpfr_srcptr;
+void mpfr_mul (mpfr_ptr, mpfr_srcptr, mpfr_rnd_t);
+
+void
+foo (void)
+{
+  mpfr_exp_t saved_emax;
+
+  if (__gmpfr_emax != previous_emax)
+    {
+      saved_emax = __gmpfr_emax;
+
+      bound_emax->_mpfr_prec = 32;
+
+      mpfr_mul (bound_emax, saved_emax < 0 ?
+                __gmpfr_const_log2_RNDD : __gmpfr_const_log2_RNDU,
+                MPFR_RNDU);
+      previous_emax = saved_emax;
+      __gmpfr_emax = saved_emax;
+    }
+}

commit fce2fe0406aa66c5d6f6465984a6af9ccc63370d
Author: Jan Hubicka <jh@suse.cz>
Date:   Tue Sep 3 13:38:33 2024 +0200

    Zen5 tuning part 1: avoid FMA chains
    
    testing matrix multiplication benchmarks shows that FMA on a critical chain
    is a perofrmance loss over separate multiply and add. While the latency of 4
    is lower than multiply + add (3+2) the problem is that all values needs to
    be ready before computation starts.
    
    While on znver4 AVX512 code fared well with FMA, it was because of the split
    registers. Znver5 benefits from avoding FMA on all widths.  This may be different
    with the mobile version though.
    
    On naive matrix multiplication benchmark the difference is 8% with -O3
    only since with -Ofast loop interchange solves the problem differently.
    It is 30% win, for example, on S323 from TSVC:
    
    real_t s323(struct args_t * func_args)
    {
    
    //    recurrences
    //    coupled recurrence
    
        initialise_arrays(__func__);
        gettimeofday(&func_args->t1, NULL);
    
        for (int nl = 0; nl < iterations/2; nl++) {
            for (int i = 1; i < LEN_1D; i++) {
                a[i] = b[i-1] + c[i] * d[i];
                b[i] = a[i] + c[i] * e[i];
            }
            dummy(a, b, c, d, e, aa, bb, cc, 0.);
        }
    
        gettimeofday(&func_args->t2, NULL);
        return calc_checksum(__func__);
    }
    
    gcc/ChangeLog:
    
            * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): Enable for
            znver5.
            (X86_TUNE_AVOID_256FMA_CHAINS): Likewise.
            (X86_TUNE_AVOID_512FMA_CHAINS): Likewise.
    
    (cherry picked from commit d6360b4083695970789fd65b9c515c11a5ce25b4)

diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def
index 1ab2f444b56..4a3bd15d0ad 100644
--- a/gcc/config/i386/x86-tune.def
+++ b/gcc/config/i386/x86-tune.def
@@ -515,17 +515,18 @@ DEF_TUNE (X86_TUNE_USE_SCATTER_8PARTS, "use_scatter_8parts",
 
 /* X86_TUNE_AVOID_128FMA_CHAINS: Avoid creating loops with tight 128bit or
    smaller FMA chain.  */
-DEF_TUNE (X86_TUNE_AVOID_128FMA_CHAINS, "avoid_fma_chains", m_ZNVER1 | m_ZNVER2 | m_ZNVER3 | m_ZNVER4
+DEF_TUNE (X86_TUNE_AVOID_128FMA_CHAINS, "avoid_fma_chains", m_ZNVER
           | m_YONGFENG | m_GENERIC)
 
 /* X86_TUNE_AVOID_256FMA_CHAINS: Avoid creating loops with tight 256bit or
    smaller FMA chain.  */
-DEF_TUNE (X86_TUNE_AVOID_256FMA_CHAINS, "avoid_fma256_chains", m_ZNVER2 | m_ZNVER3 | m_ZNVER4
-	  | m_CORE_HYBRID | m_SAPPHIRERAPIDS | m_CORE_ATOM | m_GENERIC)
+DEF_TUNE (X86_TUNE_AVOID_256FMA_CHAINS, "avoid_fma256_chains",
+	  m_ZNVER2 | m_ZNVER3 | m_ZNVER4 | m_ZNVER5 | m_CORE_HYBRID
+	  | m_SAPPHIRERAPIDS | m_CORE_ATOM | m_GENERIC)
 
 /* X86_TUNE_AVOID_512FMA_CHAINS: Avoid creating loops with tight 512bit or
    smaller FMA chain.  */
-DEF_TUNE (X86_TUNE_AVOID_512FMA_CHAINS, "avoid_fma512_chains", m_NONE)
+DEF_TUNE (X86_TUNE_AVOID_512FMA_CHAINS, "avoid_fma512_chains", m_ZNVER5)
 
 /* X86_TUNE_V2DF_REDUCTION_PREFER_PHADDPD: Prefer haddpd
    for v2df vector reduction.  */

commit 3d0a91130eceaf428387ba314cfdfceb99b51709
Author: Jan Hubicka <jh@suse.cz>
Date:   Tue Sep 3 15:07:41 2024 +0200

    Zen5 tuning part 2: disable gather and scatter
    
    We disable gathers for zen4.  It seems that gather has improved a bit compared
    to zen4 and Zen5 optimization manual suggests "Avoid GATHER instructions when
    the indices are known ahead of time. Vector loads followed by shuffles result
    in a higher load bandwidth." however the situation seems to be more
    complicated.
    
    gather is 5-10% loss on parest benchmark as well as 30% loss on sparse dot
    products in TSVC. Curiously enough breaking these out into microbenchmark
    reversed the situation and it turns out that the performance depends on
    how indices are distributed.  gather is loss if indices are sequential,
    neutral if they are random and win for some strides (4, 8).
    
    This seems to be similar to earlier zens, so I think (especially for
    backporting znver5 support) that it makes sense to be conistent and disable
    gather unless we work out a good heuristics on when to use it. Since we
    typically do not know the indices in advance, I don't see how that can be done.
    
    I opened PR116582 with some examples of wins and loses
    
    gcc/ChangeLog:
    
            * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Disable for
            ZNVER5.
            (X86_TUNE_USE_SCATTER_2PARTS): Disable for ZNVER5.
            (X86_TUNE_USE_GATHER_4PARTS): Disable for ZNVER5.
            (X86_TUNE_USE_SCATTER_4PARTS): Disable for ZNVER5.
            (X86_TUNE_USE_GATHER_8PARTS): Disable for ZNVER5.
            (X86_TUNE_USE_SCATTER_8PARTS): Disable for ZNVER5.
    
    (cherry picked from commit d82edbe92eed53a479736fcbbe6d54d0fb42daa4)

diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def
index 4a3bd15d0ad..01324a88a3b 100644
--- a/gcc/config/i386/x86-tune.def
+++ b/gcc/config/i386/x86-tune.def
@@ -483,35 +483,35 @@ DEF_TUNE (X86_TUNE_AVOID_4BYTE_PREFIXES, "avoid_4byte_prefixes",
 /* X86_TUNE_USE_GATHER_2PARTS: Use gather instructions for vectors with 2
    elements.  */
 DEF_TUNE (X86_TUNE_USE_GATHER_2PARTS, "use_gather_2parts",
-	  ~(m_ZNVER1 | m_ZNVER2 | m_ZNVER3 | m_ZNVER4 | m_CORE_HYBRID
+	  ~(m_ZNVER | m_CORE_HYBRID
 	    | m_YONGFENG | m_CORE_ATOM | m_GENERIC | m_GDS))
 
 /* X86_TUNE_USE_SCATTER_2PARTS: Use scater instructions for vectors with 2
    elements.  */
 DEF_TUNE (X86_TUNE_USE_SCATTER_2PARTS, "use_scatter_2parts",
-	  ~(m_ZNVER4))
+	  ~(m_ZNVER4 | m_ZNVER5))
 
 /* X86_TUNE_USE_GATHER_4PARTS: Use gather instructions for vectors with 4
    elements.  */
 DEF_TUNE (X86_TUNE_USE_GATHER_4PARTS, "use_gather_4parts",
-	  ~(m_ZNVER1 | m_ZNVER2 | m_ZNVER3 | m_ZNVER4 | m_CORE_HYBRID
+	  ~(m_ZNVER | m_CORE_HYBRID
 	    | m_YONGFENG | m_CORE_ATOM | m_GENERIC | m_GDS))
 
 /* X86_TUNE_USE_SCATTER_4PARTS: Use scater instructions for vectors with 4
    elements.  */
 DEF_TUNE (X86_TUNE_USE_SCATTER_4PARTS, "use_scatter_4parts",
-	  ~(m_ZNVER4))
+	  ~(m_ZNVER4 | m_ZNVER5))
 
 /* X86_TUNE_USE_GATHER: Use gather instructions for vectors with 8 or more
    elements.  */
 DEF_TUNE (X86_TUNE_USE_GATHER_8PARTS, "use_gather_8parts",
-	  ~(m_ZNVER1 | m_ZNVER2 | m_ZNVER4 | m_CORE_HYBRID | m_CORE_ATOM
+	  ~(m_ZNVER1 | m_ZNVER2 | m_ZNVER4 | m_ZNVER5 | m_CORE_HYBRID | m_CORE_ATOM
 	    | m_YONGFENG | m_GENERIC | m_GDS))
 
 /* X86_TUNE_USE_SCATTER: Use scater instructions for vectors with 8 or more
    elements.  */
 DEF_TUNE (X86_TUNE_USE_SCATTER_8PARTS, "use_scatter_8parts",
-	  ~(m_ZNVER4))
+	  ~(m_ZNVER4 | m_ZNVER5))
 
 /* X86_TUNE_AVOID_128FMA_CHAINS: Avoid creating loops with tight 128bit or
    smaller FMA chain.  */

commit 2c01292411044adbd67f79355c1e24decd2fd3c0
Author: Jan Hubicka <jh@suse.cz>
Date:   Tue Sep 3 16:26:16 2024 +0200

    Zen5 tuning part 3: scheduler tweaks
    
    this patch adds support for new fussion in znver5 documented in the
    optimization manual:
    
       The Zen5 microarchitecture adds support to fuse reg-reg MOV Instructions
       with certain ALU instructions. The following conditions need to be met for
       fusion to happen:
         - The MOV should be reg-reg mov with Opcode 0x89 or 0x8B
         - The MOV is followed by an ALU instruction where the MOV and ALU destination register match.
         - The ALU instruction may source only registers or immediate data. There cannot be any memory source.
         - The ALU instruction sources either the source or dest of MOV instruction.
         - If ALU instruction has 2 reg sources, they should be different.
         - The following ALU instructions can fuse with an older qualified MOV instruction:
           ADD ADC AND XOR OP SUB SBB INC DEC NOT SAL / SHL SHR SAR
           (I assume OP is OR)
    
    I also increased issue rate from 4 to 6.  Theoretically znver5 can do more, but
    with our model we can't realy use it.
    Increasing issue rate to 8 leads to infinite loop in scheduler.
    
    Finally, I also enabled fuse_alu_and_branch since it is supported by
    znver5 (I think by earlier zens too).
    
    New fussion pattern moves quite few instructions around in common code:
    @@ -2210,13 +2210,13 @@
            .cfi_offset 3, -32
            leaq    63(%rsi), %rbx
            movq    %rbx, %rbp
    +       shrq    $6, %rbp
    +       salq    $3, %rbp
            subq    $16, %rsp
            .cfi_def_cfa_offset 48
            movq    %rdi, %r12
    -       shrq    $6, %rbp
    -       movq    %rsi, 8(%rsp)
    -       salq    $3, %rbp
            movq    %rbp, %rdi
    +       movq    %rsi, 8(%rsp)
            call    _Znwm
            movq    8(%rsp), %rsi
            movl    $0, 8(%r12)
    @@ -2224,8 +2224,8 @@
            movq    %rax, (%r12)
            movq    %rbp, 32(%r12)
            testq   %rsi, %rsi
    -       movq    %rsi, %rdx
            cmovns  %rsi, %rbx
    +       movq    %rsi, %rdx
            sarq    $63, %rdx
            shrq    $58, %rdx
            sarq    $6, %rbx
    which should help decoder bandwidth and perhaps also cache, though I was not
    able to measure off-noise effect on SPEC.
    
    gcc/ChangeLog:
    
            * config/i386/i386.h (TARGET_FUSE_MOV_AND_ALU): New tune.
            * config/i386/x86-tune-sched.cc (ix86_issue_rate): Updat for znver5.
            (ix86_adjust_cost): Add TODO about znver5 memory latency.
            (ix86_fuse_mov_alu_p): New.
            (ix86_macro_fusion_pair_p): Use it.
            * config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): Add ZNVER5.
            (X86_TUNE_FUSE_MOV_AND_ALU): New tune;
    
    (cherry picked from commit e2125a600552bc6e0329e3f1224eea14804db8d3)

diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 26e15d2677f..2de838ef15c 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -427,6 +427,8 @@ extern unsigned char ix86_tune_features[X86_TUNE_LAST];
 	ix86_tune_features[X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS]
 #define TARGET_FUSE_ALU_AND_BRANCH \
 	ix86_tune_features[X86_TUNE_FUSE_ALU_AND_BRANCH]
+#define TARGET_FUSE_MOV_AND_ALU \
+	ix86_tune_features[X86_TUNE_FUSE_MOV_AND_ALU]
 #define TARGET_OPT_AGU ix86_tune_features[X86_TUNE_OPT_AGU]
 #define TARGET_AVOID_LEA_FOR_ADDR \
 	ix86_tune_features[X86_TUNE_AVOID_LEA_FOR_ADDR]
diff --git a/gcc/config/i386/x86-tune-sched.cc b/gcc/config/i386/x86-tune-sched.cc
index 578ba57e6b2..07b79876c36 100644
--- a/gcc/config/i386/x86-tune-sched.cc
+++ b/gcc/config/i386/x86-tune-sched.cc
@@ -69,7 +69,6 @@ ix86_issue_rate (void)
     case PROCESSOR_ZNVER2:
     case PROCESSOR_ZNVER3:
     case PROCESSOR_ZNVER4:
-    case PROCESSOR_ZNVER5:
     case PROCESSOR_CORE2:
     case PROCESSOR_NEHALEM:
     case PROCESSOR_SANDYBRIDGE:
@@ -92,6 +91,13 @@ ix86_issue_rate (void)
       return 5;
 
     case PROCESSOR_SAPPHIRERAPIDS:
+    /* For znver5 decoder can handle 4 or 8 instructions per cycle,
+       op cache 12 instruction/cycle, dispatch 8 instructions
+       integer rename 8 instructions and Fp 6 instructions.
+
+       The scheduler, without understanding out of order nature of the CPU
+       is unlikely going to be able to fill all of these.  */
+    case PROCESSOR_ZNVER5:
       return 6;
 
     default:
@@ -435,6 +441,8 @@ ix86_adjust_cost (rtx_insn *insn, int dep_type, rtx_insn *dep_insn, int cost,
 	  enum attr_unit unit = get_attr_unit (insn);
 	  int loadcost;
 
+	  /* TODO: On znver5 complex addressing modes have
+	     greater latency.  */
 	  if (unit == UNIT_INTEGER || unit == UNIT_UNKNOWN)
 	    loadcost = 4;
 	  else
@@ -565,6 +573,60 @@ ix86_macro_fusion_p ()
   return TARGET_FUSE_CMP_AND_BRANCH;
 }
 
+static bool
+ix86_fuse_mov_alu_p (rtx_insn *mov, rtx_insn *alu)
+{
+  /* Validate mov:
+      - It should be reg-reg move with opcode 0x89 or 0x8B.  */
+  rtx set1 = PATTERN (mov);
+  if (GET_CODE (set1) != SET
+      || !GENERAL_REG_P (SET_SRC (set1))
+      || !GENERAL_REG_P (SET_DEST (set1)))
+    return false;
+  rtx reg = SET_DEST (set1);
+  /*  - it should have 0x89 or 0x8B opcode.  */
+  if (!INTEGRAL_MODE_P (GET_MODE (reg))
+      || GET_MODE_SIZE (GET_MODE (reg)) < 2
+      || GET_MODE_SIZE (GET_MODE (reg)) > 8)
+    return false;
+  /* Validate ALU.  */
+  if (GET_CODE (PATTERN (alu)) != PARALLEL)
+    return false;
+  rtx set2 = XVECEXP (PATTERN (alu), 0, 0);
+  if (GET_CODE (set2) != SET)
+    return false;
+  /* Match one of:
+     ADD ADC AND XOR OR SUB SBB INC DEC NOT SAL SHL SHR SAR
+     We also may add insn attribute to handle some of sporadic
+     case we output those with different RTX expressions.  */
+
+  if (GET_CODE (SET_SRC (set2)) != PLUS
+      && GET_CODE (SET_SRC (set2)) != MINUS
+      && GET_CODE (SET_SRC (set2)) != XOR
+      && GET_CODE (SET_SRC (set2)) != AND
+      && GET_CODE (SET_SRC (set2)) != IOR
+      && GET_CODE (SET_SRC (set2)) != NOT
+      && GET_CODE (SET_SRC (set2)) != ASHIFT
+      && GET_CODE (SET_SRC (set2)) != ASHIFTRT
+      && GET_CODE (SET_SRC (set2)) != LSHIFTRT)
+    return false;
+  rtx op0 = XEXP (SET_SRC (set2), 0);
+  rtx op1 = GET_CODE (SET_SRC (set2)) != NOT ? XEXP (SET_SRC (set2), 1) : NULL;
+  /* One of operands should be register.  */
+  if (op1 && (!REG_P (op0) || REGNO (op0) != REGNO (reg)))
+    std::swap (op0, op1);
+  if (!REG_P (op0) || REGNO (op1) != REGNO (reg))
+    return false;
+  if (op1
+      && !REG_P (op1)
+      && !x86_64_immediate_operand (op1, VOIDmode))
+    return false;
+  /* Only one of two paramters must be move destination.  */
+  if (op1 && REG_P (op1) && REGNO (op1) == REGNO (reg))
+    return false;
+  return true;
+}
+
 /* Check whether current microarchitecture support macro fusion
    for insn pair "CONDGEN + CONDJMP". Refer to
    "Intel Architectures Optimization Reference Manual". */
@@ -572,6 +634,9 @@ ix86_macro_fusion_p ()
 bool
 ix86_macro_fusion_pair_p (rtx_insn *condgen, rtx_insn *condjmp)
 {
+  if (TARGET_FUSE_MOV_AND_ALU
+      && ix86_fuse_mov_alu_p (condgen, condjmp))
+    return true;
   rtx src, dest;
   enum rtx_code ccode;
   rtx compare_set = NULL_RTX, test_if, cond;
diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def
index 01324a88a3b..6d56e702dc3 100644
--- a/gcc/config/i386/x86-tune.def
+++ b/gcc/config/i386/x86-tune.def
@@ -143,10 +143,17 @@ DEF_TUNE (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, "fuse_cmp_and_branch_soflags",
 
 /* X86_TUNE_FUSE_ALU_AND_BRANCH: Fuse alu with a subsequent conditional
    jump instruction when the alu instruction produces the CCFLAG consumed by
-   the conditional jump instruction. */
+   the conditional jump instruction.
+
+   TODO: znver5 supports fusing with SUB, ADD, INC, DEC, OR, AND,
+   There is also limitation for immediate and displacement supported.  */
 DEF_TUNE (X86_TUNE_FUSE_ALU_AND_BRANCH, "fuse_alu_and_branch",
-		  m_SANDYBRIDGE | m_CORE_AVX2 | m_ZHAOXIN | m_GENERIC)
+	  m_SANDYBRIDGE | m_CORE_AVX2 | m_ZHAOXIN | m_GENERIC | m_ZNVER5)
 
+/* X86_TUNE_FUSE_MOV_AND_ALU: mov and alu in case mov is reg-reg mov
+   and the destination is used by alu.  alu must be one of
+   ADD, ADC, AND, XOR, OR, SUB, SBB, INC, DEC, NOT, SAL, SHL, SHR, SAR.  */
+DEF_TUNE (X86_TUNE_FUSE_MOV_AND_ALU, "fuse_mov_and_alu", m_ZNVER5)
 
 /*****************************************************************************/
 /* Function prologue, epilogue and function calling sequences.               */

commit 2eade72b0e2ac9dd18ef517bc3b868157f1ddf48
Author: Jan Hubicka <jh@suse.cz>
Date:   Tue Sep 3 17:25:05 2024 +0200

    Zen5 tuning part 3: fix typo in previous patch
    
    gcc/ChangeLog:
    
            * config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Fix
            typo.
    
    (cherry picked from commit 910e1769a0653ac32bd8c1d6aabb39c797d5d773)

diff --git a/gcc/config/i386/x86-tune-sched.cc b/gcc/config/i386/x86-tune-sched.cc
index 07b79876c36..746f23b3cbc 100644
--- a/gcc/config/i386/x86-tune-sched.cc
+++ b/gcc/config/i386/x86-tune-sched.cc
@@ -615,7 +615,7 @@ ix86_fuse_mov_alu_p (rtx_insn *mov, rtx_insn *alu)
   /* One of operands should be register.  */
   if (op1 && (!REG_P (op0) || REGNO (op0) != REGNO (reg)))
     std::swap (op0, op1);
-  if (!REG_P (op0) || REGNO (op1) != REGNO (reg))
+  if (!REG_P (op0) || REGNO (op0) != REGNO (reg))
     return false;
   if (op1
       && !REG_P (op1)

commit b17cb7ed709ea7250eaa4ddc4a713ebbb6b94b37
Author: Jan Hubicka <jh@suse.cz>
Date:   Tue Sep 3 18:20:34 2024 +0200

    Zen5 tuning part 4: update reassocation width
    
    Zen5 has 6 instead of 4 ALUs and the integer multiplication can now execute in
    3 of them.  FP units can do 2 additions and 2 multiplications with latency 2
    and 3.  This patch updates reassociation width accordingly.  This has potential
    of increasing register pressure but unlike while benchmarking znver1 tuning
    I did not noticed this actually causing problem on spec, so this patch bumps
    up reassociation width to 6 for everything except for integer vectors, where
    there are 4 units with typical latency of 1.
    
    Bootstrapped/regtested x86_64-linux, comitted.
    
    gcc/ChangeLog:
    
            * config/i386/i386.cc (ix86_reassociation_width): Update for Znver5.
            * config/i386/x86-tune-costs.h (znver5_costs): Update reassociation
            widths.
    
    (cherry picked from commit f0ab3de6ec0e3540f2e57f3f5628005f0a4e3fa5)

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 93d05a301c9..2a0a79888be 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -24537,13 +24537,17 @@ ix86_reassociation_width (unsigned int op, machine_mode mode)
       if (width == 1)
 	return 1;
 
-      /* Integer vector instructions execute in FP unit
+      /* Znver1-4 Integer vector instructions execute in FP unit
 	 and can execute 3 additions and one multiplication per cycle.  */
       if ((ix86_tune == PROCESSOR_ZNVER1 || ix86_tune == PROCESSOR_ZNVER2
-	   || ix86_tune == PROCESSOR_ZNVER3 || ix86_tune == PROCESSOR_ZNVER4
-	   || ix86_tune == PROCESSOR_ZNVER5)
+	   || ix86_tune == PROCESSOR_ZNVER3 || ix86_tune == PROCESSOR_ZNVER4)
    	  && INTEGRAL_MODE_P (mode) && op != PLUS && op != MINUS)
 	return 1;
+      /* Znver5 can do 2 integer multiplications per cycle with latency
+	 of 3.  */
+      if (ix86_tune == PROCESSOR_ZNVER5
+	  && INTEGRAL_MODE_P (mode) && op != PLUS && op != MINUS)
+	width = 6;
 
       /* Account for targets that splits wide vectors into multiple parts.  */
       if (TARGET_AVX512_SPLIT_REGS && GET_MODE_BITSIZE (mode) > 256)
diff --git a/gcc/config/i386/x86-tune-costs.h b/gcc/config/i386/x86-tune-costs.h
index 8348ab8230a..da36d2adfec 100644
--- a/gcc/config/i386/x86-tune-costs.h
+++ b/gcc/config/i386/x86-tune-costs.h
@@ -2100,16 +2100,19 @@ struct processor_costs znver5_cost = {
   COSTS_N_INSNS (13),			/* cost of DIVSD instruction.  */
   COSTS_N_INSNS (14),			/* cost of SQRTSS instruction.  */
   COSTS_N_INSNS (20),			/* cost of SQRTSD instruction.  */
-  /* Zen can execute 4 integer operations per cycle.  FP operations
-     take 3 cycles and it can execute 2 integer additions and 2
-     multiplications thus reassociation may make sense up to with of 6.
-     SPEC2k6 bencharks suggests
-     that 4 works better than 6 probably due to register pressure.
-
-     Integer vector operations are taken by FP unit and execute 3 vector
-     plus/minus operations per cycle but only one multiply.  This is adjusted
-     in ix86_reassociation_width.  */
-  4, 4, 3, 6,				/* reassoc int, fp, vec_int, vec_fp.  */
+  /* Zen5 can execute:
+      - integer ops: 6 per cycle, at most 3 multiplications.
+	latency 1 for additions, 3 for multiplications (pipelined)
+
+	Setting width of 9 for multiplication is probably excessive
+	for register pressure.
+      - fp ops: 2 additions per cycle, latency 2-3
+		2 multiplicaitons per cycle, latency 3
+      - vector intger ops: 4 additions, latency 1
+			   2 multiplications, latency 4
+	We increase width to 6 for multiplications
+	in ix86_reassociation_width.  */
+  6, 6, 4, 6,				/* reassoc int, fp, vec_int, vec_fp.  */
   znver2_memcpy,
   znver2_memset,
   COSTS_N_INSNS (4),			/* cond_taken_branch_cost.  */

commit e0f131c87942a0ea9b072750d670d57e1f2c4d34
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Sep 29 00:22:12 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ad8f8d4714e..456aff01cb4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,66 @@
+2024-09-28  Jan Hubicka  <jh@suse.cz>
+
+	Backported from master:
+	2024-09-03  Jan Hubicka  <jh@suse.cz>
+
+	* config/i386/i386.cc (ix86_reassociation_width): Update for Znver5.
+	* config/i386/x86-tune-costs.h (znver5_costs): Update reassociation
+	widths.
+
+2024-09-28  Jan Hubicka  <jh@suse.cz>
+
+	Backported from master:
+	2024-09-03  Jan Hubicka  <jh@suse.cz>
+
+	* config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Fix
+	typo.
+
+2024-09-28  Jan Hubicka  <jh@suse.cz>
+
+	Backported from master:
+	2024-09-03  Jan Hubicka  <jh@suse.cz>
+
+	* config/i386/i386.h (TARGET_FUSE_MOV_AND_ALU): New tune.
+	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Updat for znver5.
+	(ix86_adjust_cost): Add TODO about znver5 memory latency.
+	(ix86_fuse_mov_alu_p): New.
+	(ix86_macro_fusion_pair_p): Use it.
+	* config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): Add ZNVER5.
+	(X86_TUNE_FUSE_MOV_AND_ALU): New tune;
+
+2024-09-28  Jan Hubicka  <jh@suse.cz>
+
+	Backported from master:
+	2024-09-03  Jan Hubicka  <jh@suse.cz>
+
+	* config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Disable for
+	ZNVER5.
+	(X86_TUNE_USE_SCATTER_2PARTS): Disable for ZNVER5.
+	(X86_TUNE_USE_GATHER_4PARTS): Disable for ZNVER5.
+	(X86_TUNE_USE_SCATTER_4PARTS): Disable for ZNVER5.
+	(X86_TUNE_USE_GATHER_8PARTS): Disable for ZNVER5.
+	(X86_TUNE_USE_SCATTER_8PARTS): Disable for ZNVER5.
+
+2024-09-28  Jan Hubicka  <jh@suse.cz>
+
+	Backported from master:
+	2024-09-03  Jan Hubicka  <jh@suse.cz>
+
+	* config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): Enable for
+	znver5.
+	(X86_TUNE_AVOID_256FMA_CHAINS): Likewise.
+	(X86_TUNE_AVOID_512FMA_CHAINS): Likewise.
+
+2024-09-28  H.J. Lu  <hjl.tools@gmail.com>
+
+	Backported from master:
+	2024-09-25  H.J. Lu  <hjl.tools@gmail.com>
+
+	PR target/116839
+	* config/i386/i386.cc (ix86_rewrite_tls_address_1): Make it
+	static.  Return if TLS address is thread register plus an integer
+	register.
+
 2024-09-26  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index d1c17555461..3745c09494a 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240928
+20240929
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5c08a47f315..aa7f591527d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-09-28  H.J. Lu  <hjl.tools@gmail.com>
+
+	Backported from master:
+	2024-09-25  H.J. Lu  <hjl.tools@gmail.com>
+
+	PR target/116839
+	* gcc.target/i386/pr116839.c: New file.
+
 2024-09-26  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
 
 	Backported from master:

commit 4697543b765dbfaa9dc12be0537861e586e48202
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Fri Sep 27 15:58:17 2024 +0200

    i386: Modernize AMD processor types
    
    Use iterative PTA definitions for members of the same AMD processor family.
    
    Also, fix a couple of related M_CPU_TYPE/M_CPU_SUBTYPE inconsistencies.
    
    No functional changes intended.
    
    gcc/ChangeLog:
    
            * config/i386/i386.h: Add PTA_BDVER1, PTA_BDVER2, PTA_BDVER3,
            PTA_BDVER4, PTA_BTVER1 and PTA_BTVER2.
            * common/config/i386/i386-common.cc (processor_alias_table)
            <"bdver1">: Use PTA_BDVER1.
            <"bdver2">: Use PTA_BDVER2.
            <"bdver3">: Use PTA_BDVER3.
            <"bdver4">: Use PTA_BDVER4.
            <"btver1">: Use PTA_BTVER1.  Use M_CPU_TYPE (AMD_BTVER1).
            <"btver2">: Use PTA_BTVER2.
            <"shanghai>: Use M_CPU_SUBTYPE (AMDFAM10H_SHANGHAI).
            <"istanbul>: Use M_CPU_SUBTYPE (AMDFAM10H_ISTANBUL).
    
    (cherry picked from commit a72108920805a024b6bbee5acdd32914382c47a1)

diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc
index d578918dfb7..e535a3d516d 100644
--- a/gcc/common/config/i386/i386-common.cc
+++ b/gcc/common/config/i386/i386-common.cc
@@ -2395,34 +2395,16 @@ const pta processor_alias_table[] =
       | PTA_SSE3 | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_PRFCHW | PTA_FXSR,
     M_CPU_SUBTYPE (AMDFAM10H_BARCELONA), P_PROC_DYNAMIC},
   {"bdver1", PROCESSOR_BDVER1, CPU_BDVER1,
-    PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
-      | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
-      | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_FMA4
-      | PTA_XOP | PTA_LWP | PTA_PRFCHW | PTA_FXSR | PTA_XSAVE,
-    M_CPU_TYPE (AMDFAM15H_BDVER1), P_PROC_XOP},
+    PTA_BDVER1,
+    M_CPU_SUBTYPE (AMDFAM15H_BDVER1), P_PROC_XOP},
   {"bdver2", PROCESSOR_BDVER2, CPU_BDVER2,
-    PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
-      | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
-      | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_FMA4
-      | PTA_XOP | PTA_LWP | PTA_BMI | PTA_TBM | PTA_F16C
-      | PTA_FMA | PTA_PRFCHW | PTA_FXSR | PTA_XSAVE,
-    M_CPU_TYPE (AMDFAM15H_BDVER2), P_PROC_FMA},
+    PTA_BDVER2,
+    M_CPU_SUBTYPE (AMDFAM15H_BDVER2), P_PROC_FMA},
   {"bdver3", PROCESSOR_BDVER3, CPU_BDVER3,
-    PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
-      | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
-      | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_FMA4
-      | PTA_XOP | PTA_LWP | PTA_BMI | PTA_TBM | PTA_F16C
-      | PTA_FMA | PTA_PRFCHW | PTA_FXSR | PTA_XSAVE
-      | PTA_XSAVEOPT | PTA_FSGSBASE,
+    PTA_BDVER3,
     M_CPU_SUBTYPE (AMDFAM15H_BDVER3), P_PROC_FMA},
   {"bdver4", PROCESSOR_BDVER4, CPU_BDVER4,
-    PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
-      | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
-      | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_AVX2
-      | PTA_FMA4 | PTA_XOP | PTA_LWP | PTA_BMI | PTA_BMI2
-      | PTA_TBM | PTA_F16C | PTA_FMA | PTA_PRFCHW | PTA_FXSR
-      | PTA_XSAVE | PTA_XSAVEOPT | PTA_FSGSBASE | PTA_RDRND
-      | PTA_MOVBE | PTA_MWAITX,
+    PTA_BDVER4,
     M_CPU_SUBTYPE (AMDFAM15H_BDVER4), P_PROC_AVX2},
   {"znver1", PROCESSOR_ZNVER1, CPU_ZNVER1,
     PTA_ZNVER1,
@@ -2440,16 +2422,10 @@ const pta processor_alias_table[] =
     PTA_ZNVER5,
     M_CPU_SUBTYPE (AMDFAM1AH_ZNVER5), P_PROC_AVX512F},
   {"btver1", PROCESSOR_BTVER1, CPU_GENERIC,
-    PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
-      | PTA_SSSE3 | PTA_SSE4A | PTA_ABM | PTA_CX16 | PTA_PRFCHW
-      | PTA_FXSR | PTA_XSAVE,
-   M_CPU_SUBTYPE (AMDFAM15H_BDVER1), P_PROC_SSE4_A},
+    PTA_BTVER1,
+    M_CPU_TYPE (AMD_BTVER1), P_PROC_SSE4_A},
   {"btver2", PROCESSOR_BTVER2, CPU_BTVER2,
-    PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
-      | PTA_SSSE3 | PTA_SSE4A | PTA_ABM | PTA_CX16 | PTA_SSE4_1
-      | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX
-      | PTA_BMI | PTA_F16C | PTA_MOVBE | PTA_PRFCHW
-      | PTA_FXSR | PTA_XSAVE | PTA_XSAVEOPT,
+    PTA_BTVER2,
     M_CPU_TYPE (AMD_BTVER2), P_PROC_BMI},
 
   {"generic", PROCESSOR_GENERIC, CPU_GENERIC,
@@ -2468,9 +2444,9 @@ const pta processor_alias_table[] =
   {"amdfam19h", PROCESSOR_GENERIC, CPU_GENERIC, 0,
     M_CPU_TYPE (AMDFAM19H), P_NONE},
   {"shanghai", PROCESSOR_GENERIC, CPU_GENERIC, 0,
-    M_CPU_TYPE (AMDFAM10H_SHANGHAI), P_NONE},
+    M_CPU_SUBTYPE (AMDFAM10H_SHANGHAI), P_NONE},
   {"istanbul", PROCESSOR_GENERIC, CPU_GENERIC, 0,
-    M_CPU_TYPE (AMDFAM10H_ISTANBUL), P_NONE},
+    M_CPU_SUBTYPE (AMDFAM10H_ISTANBUL), P_NONE},
 };
 
 /* NB: processor_alias_table stops at the "generic" entry.  */
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 2de838ef15c..6272d40bcc5 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -2432,6 +2432,18 @@ constexpr wide_int_bitmask PTA_CLEARWATERFOREST = PTA_SIERRAFOREST
 constexpr wide_int_bitmask PTA_PANTHERLAKE = PTA_ARROWLAKE_S | PTA_PREFETCHI;
 constexpr wide_int_bitmask PTA_KNM = PTA_KNL | PTA_AVX5124VNNIW
   | PTA_AVX5124FMAPS | PTA_AVX512VPOPCNTDQ;
+
+constexpr wide_int_bitmask PTA_BDVER1 = PTA_64BIT | PTA_MMX | PTA_SSE
+  | PTA_SSE2 | PTA_SSE3 | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3
+  | PTA_SSE4_1 | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_FMA4
+  | PTA_XOP | PTA_LWP | PTA_PRFCHW | PTA_FXSR | PTA_XSAVE;
+constexpr wide_int_bitmask PTA_BDVER2 = PTA_BDVER1 | PTA_BMI | PTA_TBM
+  | PTA_F16C | PTA_FMA;
+constexpr wide_int_bitmask PTA_BDVER3 = PTA_BDVER2 | PTA_XSAVEOPT
+  | PTA_FSGSBASE;
+constexpr wide_int_bitmask PTA_BDVER4 = PTA_BDVER3 | PTA_AVX2 | PTA_BMI2
+  | PTA_RDRND | PTA_MOVBE | PTA_MWAITX;
+
 constexpr wide_int_bitmask PTA_ZNVER1 = PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2
   | PTA_SSE3 | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
   | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_AVX2 | PTA_BMI | PTA_BMI2
@@ -2449,13 +2461,21 @@ constexpr wide_int_bitmask PTA_ZNVER4 = PTA_ZNVER3 | PTA_AVX512F | PTA_AVX512DQ
   | PTA_AVX512VNNI | PTA_AVX512BITALG | PTA_AVX512VPOPCNTDQ | PTA_EVEX512;
 constexpr wide_int_bitmask PTA_ZNVER5 = PTA_ZNVER4 | PTA_AVXVNNI
   | PTA_MOVDIRI | PTA_MOVDIR64B | PTA_AVX512VP2INTERSECT | PTA_PREFETCHI;
-constexpr wide_int_bitmask PTA_LUJIAZUI = PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2
-  | PTA_SSE3 | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1 | PTA_SSE4_2 | PTA_AES
-  | PTA_PCLMUL | PTA_BMI | PTA_BMI2 | PTA_PRFCHW | PTA_FXSR | PTA_XSAVE | PTA_XSAVEOPT
-  | PTA_FSGSBASE | PTA_RDRND | PTA_MOVBE | PTA_ADX | PTA_RDSEED | PTA_POPCNT;
 
-constexpr wide_int_bitmask PTA_YONGFENG = PTA_LUJIAZUI | PTA_AVX | PTA_AVX2 | PTA_F16C
-  | PTA_FMA | PTA_SHA | PTA_LZCNT;
+constexpr wide_int_bitmask PTA_BTVER1 = PTA_64BIT | PTA_MMX | PTA_SSE
+  | PTA_SSE2 | PTA_SSE3 | PTA_SSSE3 | PTA_SSE4A | PTA_ABM | PTA_CX16
+  | PTA_PRFCHW | PTA_FXSR | PTA_XSAVE;
+constexpr wide_int_bitmask PTA_BTVER2 = PTA_BTVER1 | PTA_SSE4_1 | PTA_SSE4_2
+  | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_BMI | PTA_F16C | PTA_MOVBE
+  | PTA_XSAVEOPT;
+
+constexpr wide_int_bitmask PTA_LUJIAZUI = PTA_64BIT | PTA_MMX | PTA_SSE
+  | PTA_SSE2 | PTA_SSE3 | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
+  | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_BMI | PTA_BMI2 | PTA_PRFCHW
+  | PTA_FXSR | PTA_XSAVE | PTA_XSAVEOPT | PTA_FSGSBASE | PTA_RDRND | PTA_MOVBE
+  | PTA_ADX | PTA_RDSEED | PTA_POPCNT;
+constexpr wide_int_bitmask PTA_YONGFENG = PTA_LUJIAZUI | PTA_AVX | PTA_AVX2
+  | PTA_F16C | PTA_FMA | PTA_SHA | PTA_LZCNT;
 
 #ifndef GENERATOR_FILE
 

commit 129914854e66dac1068def7f14b491463e6683e4
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Sep 30 00:21:54 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 456aff01cb4..cd44be798e1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2024-09-29  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2024-09-27  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.h: Add PTA_BDVER1, PTA_BDVER2, PTA_BDVER3,
+	PTA_BDVER4, PTA_BTVER1 and PTA_BTVER2.
+	* common/config/i386/i386-common.cc (processor_alias_table)
+	<"bdver1">: Use PTA_BDVER1.
+	<"bdver2">: Use PTA_BDVER2.
+	<"bdver3">: Use PTA_BDVER3.
+	<"bdver4">: Use PTA_BDVER4.
+	<"btver1">: Use PTA_BTVER1.  Use M_CPU_TYPE (AMD_BTVER1).
+	<"btver2">: Use PTA_BTVER2.
+	<"shanghai>: Use M_CPU_SUBTYPE (AMDFAM10H_SHANGHAI).
+	<"istanbul>: Use M_CPU_SUBTYPE (AMDFAM10H_ISTANBUL).
+
 2024-09-28  Jan Hubicka  <jh@suse.cz>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 3745c09494a..bd531cb5559 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240929
+20240930

commit be06962b343dfb81bf5ea6b52d20d24e4080df1c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Oct 1 00:24:22 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index bd531cb5559..76549858b25 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20240930
+20241001

commit 7232bc180632f0ccce260bd33598faf6297d4fe6
Author: Marek Polacek <polacek@redhat.com>
Date:   Wed Jul 31 17:33:55 2024 -0400

    c++: fix -Wdangling-reference false positive [PR115987]
    
    This fixes another false positive.  When a function is taking a
    temporary of scalar type that couldn't be bound to the return type
    of the function, don't warn, such a program would be ill-formed.
    
    Thanks to Jonathan for reporting the problem.
    
            PR c++/115987
    
    gcc/cp/ChangeLog:
    
            * call.cc (do_warn_dangling_reference): Don't consider a
            temporary with a scalar type that cannot bind to the return type.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/ext/attr-no-dangling6.C: Adjust.
            * g++.dg/ext/attr-no-dangling7.C: Likewise.
            * g++.dg/warn/Wdangling-reference22.C: New test.

diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc
index 492d17b1744..a210ea5cd6a 100644
--- a/gcc/cp/call.cc
+++ b/gcc/cp/call.cc
@@ -14288,8 +14288,18 @@ do_warn_dangling_reference (tree expr, bool arg_p)
 	    /* Recurse to see if the argument is a temporary.  It could also
 	       be another call taking a temporary and returning it and
 	       initializing this reference parameter.  */
-	    if (do_warn_dangling_reference (arg, /*arg_p=*/true))
-	      return expr;
+	    if ((arg = do_warn_dangling_reference (arg, /*arg_p=*/true)))
+	      {
+		/* If we know the temporary could not bind to the return type,
+		   don't warn.  This is for scalars only because for classes
+		   we can't be sure we are not returning its sub-object.  */
+		if (SCALAR_TYPE_P (TREE_TYPE (arg))
+		    && TYPE_REF_P (rettype)
+		    && !reference_related_p (TREE_TYPE (arg),
+					     TREE_TYPE (rettype)))
+		  continue;
+		return expr;
+	      }
 	  /* Don't warn about member functions like:
 	      std::any a(...);
 	      S& s = a.emplace<S>({0}, 0);
diff --git a/gcc/testsuite/g++.dg/ext/attr-no-dangling6.C b/gcc/testsuite/g++.dg/ext/attr-no-dangling6.C
index 235a5fd86c5..5b349e8e682 100644
--- a/gcc/testsuite/g++.dg/ext/attr-no-dangling6.C
+++ b/gcc/testsuite/g++.dg/ext/attr-no-dangling6.C
@@ -12,26 +12,26 @@ struct SF { static constexpr bool value = false; };
 
 template<typename T>
 [[gnu::no_dangling(T::value)]]
-const X& get (const int& i)
+const X& get (const int& i, const X&)
 {
    return i == 0 ? x1 : x2;
 }
 
 template<bool B = true>
 [[gnu::no_dangling(B)]]
-const X& foo (const int& i)
+const X& foo (const int& i, const X&)
 {
    return i == 0 ? x1 : x2;
 }
 
 [[gnu::no_dangling(val ())]]
-const X& bar (const int& i)
+const X& bar (const int& i, const X&)
 {
    return i == 0 ? x1 : x2;
 }
 
 [[gnu::no_dangling(!val ())]]
-const X& baz (const int& i)
+const X& baz (const int& i, const X&)
 {
    return i == 0 ? x1 : x2;
 }
@@ -52,13 +52,13 @@ auto gety() -> Span<SF>;
 void
 test ()
 {
-  [[maybe_unused]] const X& x1 = get<ST> (10);	  // { dg-bogus "dangling" }
-  [[maybe_unused]] const X& x2 = get<SF> (10);	  // { dg-warning "dangling" }
-  [[maybe_unused]] const X& x3 = foo<true> (10);  // { dg-bogus "dangling" }
-  [[maybe_unused]] const X& x4 = foo<false> (10); // { dg-warning "dangling" }
-  [[maybe_unused]] const X& x7 = foo<> (10);	  // { dg-bogus "dangling" }
-  [[maybe_unused]] const X& x5 = bar (10);	  // { dg-bogus "dangling" }
-  [[maybe_unused]] const X& x6 = baz (10);	  // { dg-warning "dangling" }
+  [[maybe_unused]] const X& x1 = get<ST> (10, X{});	  // { dg-bogus "dangling" }
+  [[maybe_unused]] const X& x2 = get<SF> (10, X{});	  // { dg-warning "dangling" }
+  [[maybe_unused]] const X& x3 = foo<true> (10, X{});  // { dg-bogus "dangling" }
+  [[maybe_unused]] const X& x4 = foo<false> (10, X{}); // { dg-warning "dangling" }
+  [[maybe_unused]] const X& x7 = foo<> (10, X{});	  // { dg-bogus "dangling" }
+  [[maybe_unused]] const X& x5 = bar (10, X{});	  // { dg-bogus "dangling" }
+  [[maybe_unused]] const X& x6 = baz (10, X{});	  // { dg-warning "dangling" }
 
   [[maybe_unused]] const auto &b1 = geti()[0];	  // { dg-bogus "dangling" }
   [[maybe_unused]] const auto &b2 = gety()[0];	  // { dg-warning "dangling" }
diff --git a/gcc/testsuite/g++.dg/ext/attr-no-dangling7.C b/gcc/testsuite/g++.dg/ext/attr-no-dangling7.C
index 3c392ed409f..a5fb809e6bd 100644
--- a/gcc/testsuite/g++.dg/ext/attr-no-dangling7.C
+++ b/gcc/testsuite/g++.dg/ext/attr-no-dangling7.C
@@ -16,16 +16,16 @@ const X& foo(const int& i);
 bool val () { return true; }
 
 [[gnu::no_dangling(val ())]]   // { dg-error "call" }
-const X& bar (const int& i);
+const X& bar (const int& i, const X&);
 
-[[gnu::no_dangling(20)]] const X& fn1 (const int &);
+[[gnu::no_dangling(20)]] const X& fn1 (const int &, const X&);
 
 void
 test ()
 {
-  [[maybe_unused]] const X& x1 = bar (10);	  // { dg-warning "dangling" }
+  [[maybe_unused]] const X& x1 = bar (10, X{});	  // { dg-warning "dangling" }
   [[maybe_unused]] const X& x2 = foo<int> (10);	  // { dg-error "no matching" }
   [[maybe_unused]] const X& x3			  // { dg-warning "dangling" }
-    = fn1 (10);					  // { dg-error "narrowing" }
+    = fn1 (10, X{});				  // { dg-error "narrowing" }
 }
 
diff --git a/gcc/testsuite/g++.dg/warn/Wdangling-reference22.C b/gcc/testsuite/g++.dg/warn/Wdangling-reference22.C
new file mode 100644
index 00000000000..0381f9313fb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wdangling-reference22.C
@@ -0,0 +1,19 @@
+// PR c++/115987
+// { dg-do compile { target c++11 } }
+// { dg-options "-Wdangling-reference" }
+
+template <typename T>
+struct Wrapper {
+    T val;
+};
+
+template <typename T, typename FUNC>
+    const T& unwrap_2(const Wrapper<T>& r, FUNC&&) {
+  return r.val;
+}
+
+int main(int, char**) {
+  const Wrapper<int> w{1234};
+  const auto& u = unwrap_2(w, 1L);  // { dg-bogus "dangling reference" }
+  __builtin_printf("Unwrapped value : %d\n", u);
+}

commit 47b205b4dcca8be98bff96ea6b6f80682c65a0b1
Author: Jason Merrill <jason@redhat.com>
Date:   Sun Sep 15 13:50:04 2024 +0200

    c++: -Wdangling-reference and empty class [PR115361]
    
    We can't have a dangling reference to an empty class unless it's
    specifically to that class or one of its bases.  This was giving a
    false positive on the _ExtractKey pattern in libstdc++ hashtable.h.
    
    This also adjusts the order of arguments to reference_related_p, which
    is relevant for empty classes (unlike scalars).
    
    Several of the classes in the testsuite needed to gain data members to
    continue to warn.
    
            PR c++/115361
    
    gcc/cp/ChangeLog:
    
            * call.cc (do_warn_dangling_reference): Check is_empty_class.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/ext/attr-no-dangling6.C
            * g++.dg/ext/attr-no-dangling7.C
            * g++.dg/ext/attr-no-dangling8.C
            * g++.dg/ext/attr-no-dangling9.C
            * g++.dg/warn/Wdangling-reference1.C
            * g++.dg/warn/Wdangling-reference2.C
            * g++.dg/warn/Wdangling-reference3.C: Make classes non-empty.
            * g++.dg/warn/Wdangling-reference23.C: New test.

diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc
index a210ea5cd6a..423285caada 100644
--- a/gcc/cp/call.cc
+++ b/gcc/cp/call.cc
@@ -14291,12 +14291,14 @@ do_warn_dangling_reference (tree expr, bool arg_p)
 	    if ((arg = do_warn_dangling_reference (arg, /*arg_p=*/true)))
 	      {
 		/* If we know the temporary could not bind to the return type,
-		   don't warn.  This is for scalars only because for classes
-		   we can't be sure we are not returning its sub-object.  */
-		if (SCALAR_TYPE_P (TREE_TYPE (arg))
+		   don't warn.  This is for scalars and empty classes only
+		   because for other classes we can't be sure we are not
+		   returning its sub-object.  */
+		if ((SCALAR_TYPE_P (TREE_TYPE (arg))
+		     || is_empty_class (TREE_TYPE (arg)))
 		    && TYPE_REF_P (rettype)
-		    && !reference_related_p (TREE_TYPE (arg),
-					     TREE_TYPE (rettype)))
+		    && !reference_related_p (TREE_TYPE (rettype),
+					     TREE_TYPE (arg)))
 		  continue;
 		return expr;
 	      }
diff --git a/gcc/testsuite/g++.dg/ext/attr-no-dangling6.C b/gcc/testsuite/g++.dg/ext/attr-no-dangling6.C
index 5b349e8e682..1fc426d20d3 100644
--- a/gcc/testsuite/g++.dg/ext/attr-no-dangling6.C
+++ b/gcc/testsuite/g++.dg/ext/attr-no-dangling6.C
@@ -2,9 +2,9 @@
 // { dg-do compile { target c++20 } }
 // { dg-options "-Wdangling-reference" }
 
-class X { };
-const X x1;
-const X x2;
+class X { int i; };
+const X x1 {};
+const X x2 {};
 
 constexpr bool val () { return true; }
 struct ST { static constexpr bool value = true; };
diff --git a/gcc/testsuite/g++.dg/ext/attr-no-dangling7.C b/gcc/testsuite/g++.dg/ext/attr-no-dangling7.C
index a5fb809e6bd..04c6badf0b6 100644
--- a/gcc/testsuite/g++.dg/ext/attr-no-dangling7.C
+++ b/gcc/testsuite/g++.dg/ext/attr-no-dangling7.C
@@ -2,9 +2,9 @@
 // { dg-do compile { target c++20 } }
 // { dg-options "-Wdangling-reference" }
 
-class X { };
-const X x1;
-const X x2;
+class X { int i; };
+const X x1 {};
+const X x2 {};
 
 template<bool... N>
 [[gnu::no_dangling(N)]] const X& get(const int& i); // { dg-error "parameter packs not expanded" }
diff --git a/gcc/testsuite/g++.dg/ext/attr-no-dangling8.C b/gcc/testsuite/g++.dg/ext/attr-no-dangling8.C
index 8208d751a4b..aa196315a38 100644
--- a/gcc/testsuite/g++.dg/ext/attr-no-dangling8.C
+++ b/gcc/testsuite/g++.dg/ext/attr-no-dangling8.C
@@ -8,6 +8,7 @@ template<class T> constexpr bool is_reference_v<T&&> = true;
 
 template <typename T>
 struct [[gnu::no_dangling(is_reference_v<T>)]] S {
+  int i;
   int &foo (const int &);
 };
 
@@ -15,6 +16,7 @@ template <typename T1, typename T2>
 struct X {
   template <typename U1 = T1, typename U2 = T2>
   struct [[gnu::no_dangling(is_reference_v<U1> && is_reference_v<U2>)]] Y {
+    int i;
     int &foo (const int &);
   };
 };
diff --git a/gcc/testsuite/g++.dg/ext/attr-no-dangling9.C b/gcc/testsuite/g++.dg/ext/attr-no-dangling9.C
index 65b4f7145a9..d7fd897de53 100644
--- a/gcc/testsuite/g++.dg/ext/attr-no-dangling9.C
+++ b/gcc/testsuite/g++.dg/ext/attr-no-dangling9.C
@@ -12,6 +12,7 @@ using true_type = bool_constant<true>;
 using false_type = bool_constant<false>;
 
 struct S {
+  int i;
   template<bool B>
   [[gnu::no_dangling(B)]] int &foo (const int &);
 };
diff --git a/gcc/testsuite/g++.dg/warn/Wdangling-reference1.C b/gcc/testsuite/g++.dg/warn/Wdangling-reference1.C
index 1718c28165e..a184317dd5c 100644
--- a/gcc/testsuite/g++.dg/warn/Wdangling-reference1.C
+++ b/gcc/testsuite/g++.dg/warn/Wdangling-reference1.C
@@ -131,6 +131,7 @@ int n = 1;
 const int& refmax = max(n - 1, n + 1); // { dg-warning "dangling reference" }
 
 struct Y {
+  int i;
   operator int&();
   operator int&&();
   const int& foo(const int&);
diff --git a/gcc/testsuite/g++.dg/warn/Wdangling-reference2.C b/gcc/testsuite/g++.dg/warn/Wdangling-reference2.C
index dafdb43f1b9..a3d5ad6d867 100644
--- a/gcc/testsuite/g++.dg/warn/Wdangling-reference2.C
+++ b/gcc/testsuite/g++.dg/warn/Wdangling-reference2.C
@@ -3,7 +3,7 @@
 // { dg-options "-Wdangling-reference" }
 
 namespace std {
-struct any {};
+struct any { void *p; ~any(); };
 template <typename _ValueType> _ValueType any_cast(any &&);
 template <typename _Tp> struct remove_reference { using type = _Tp; };
 template <typename _Tp> _Tp forward(typename remove_reference<_Tp>::type);
diff --git a/gcc/testsuite/g++.dg/warn/Wdangling-reference23.C b/gcc/testsuite/g++.dg/warn/Wdangling-reference23.C
new file mode 100644
index 00000000000..e59ccc5057b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wdangling-reference23.C
@@ -0,0 +1,14 @@
+// PR c++/115361
+// { dg-additional-options -Wdangling-reference }
+
+struct B { int i; };
+
+struct A {
+  const int & operator()(const B& b) { return b.i; }
+};
+
+int main()
+{
+  B b = {};
+  const int &r = A()(b);
+}
diff --git a/gcc/testsuite/g++.dg/warn/Wdangling-reference3.C b/gcc/testsuite/g++.dg/warn/Wdangling-reference3.C
index 4bc20c13b3f..7db1dc86855 100644
--- a/gcc/testsuite/g++.dg/warn/Wdangling-reference3.C
+++ b/gcc/testsuite/g++.dg/warn/Wdangling-reference3.C
@@ -18,6 +18,7 @@ struct G {
 };
 
 struct F {
+  int i;
   G& f();
 };
 

commit 91417c778ae42af342c1f6e924be39616421a860
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Oct 1 10:58:35 2024 -0400

    c++: don't advertise C++20 concepts in C++14
    
    There have been various problems with -std=c++14 -fconcepts; let's stop
    defining the feature test macro in that case.
    
    gcc/c-family/ChangeLog:
    
            * c-cppbuiltin.cc (c_cpp_builtins): Don't define __cpp_concepts
            before C++17.

diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
index 38f32032982..d4aadc7666b 100644
--- a/gcc/c-family/c-cppbuiltin.cc
+++ b/gcc/c-family/c-cppbuiltin.cc
@@ -1093,10 +1093,10 @@ c_cpp_builtins (cpp_reader *pfile)
 	}
       if (flag_concepts)
         {
-	  if (cxx_dialect >= cxx20 || !flag_concepts_ts)
-	    cpp_define (pfile, "__cpp_concepts=202002L");
-          else
+	  if (flag_concepts_ts && cxx_dialect < cxx20)
             cpp_define (pfile, "__cpp_concepts=201507L");
+	  else if (cxx_dialect > cxx14)
+	    cpp_define (pfile, "__cpp_concepts=202002L");
         }
       if (flag_contracts)
 	{

commit 8b1df6344eb15efa8b355b22f8512a2c953f3d99
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Oct 2 00:20:53 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 76549858b25..f464e65124d 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241001
+20241002
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 46445dfdacc..85a2145b8e2 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,8 @@
+2024-10-01  Jason Merrill  <jason@redhat.com>
+
+	* c-cppbuiltin.cc (c_cpp_builtins): Don't define __cpp_concepts
+	before C++17.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index b864fdaa8a7..ac5dd8c49e5 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,14 @@
+2024-10-01  Jason Merrill  <jason@redhat.com>
+
+	PR c++/115361
+	* call.cc (do_warn_dangling_reference): Check is_empty_class.
+
+2024-10-01  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/115987
+	* call.cc (do_warn_dangling_reference): Don't consider a
+	temporary with a scalar type that cannot bind to the return type.
+
 2024-09-20  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index aa7f591527d..3c43c238f0a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,22 @@
+2024-10-01  Jason Merrill  <jason@redhat.com>
+
+	PR c++/115361
+	* g++.dg/ext/attr-no-dangling6.C
+	* g++.dg/ext/attr-no-dangling7.C
+	* g++.dg/ext/attr-no-dangling8.C
+	* g++.dg/ext/attr-no-dangling9.C
+	* g++.dg/warn/Wdangling-reference1.C
+	* g++.dg/warn/Wdangling-reference2.C
+	* g++.dg/warn/Wdangling-reference3.C: Make classes non-empty.
+	* g++.dg/warn/Wdangling-reference23.C: New test.
+
+2024-10-01  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/115987
+	* g++.dg/ext/attr-no-dangling6.C: Adjust.
+	* g++.dg/ext/attr-no-dangling7.C: Likewise.
+	* g++.dg/warn/Wdangling-reference22.C: New test.
+
 2024-09-28  H.J. Lu  <hjl.tools@gmail.com>
 
 	Backported from master:

commit e69c03971aa50fda96b3382bfded54da3d087c32
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Sep 18 09:52:55 2024 +0200

    tree-optimization/116585 - SSA corruption with split_constant_offset
    
    split_constant_offset when looking through SSA defs can end up
    picking SSA leafs that are subject to abnormal coalescing.  This
    can lead to downstream consumers to insert code based on the
    result (like from dataref analysis) in places that violate constraints
    for abnormal coalescing.  It's best to not expand defs whose operands
    are subject to abnormal coalescing - and not either do something when
    a subexpression has operands like that already.
    
            PR tree-optimization/116585
            * tree-data-ref.cc (split_constant_offset_1): When either
            operand is subject to abnormal coalescing do no further
            processing.
    
            * gcc.dg/torture/pr116585.c: New testcase.
    
    (cherry picked from commit 1d0cb3b5fca69b81e69cfdb4aea0eebc1ac04750)

diff --git a/gcc/testsuite/gcc.dg/torture/pr116585.c b/gcc/testsuite/gcc.dg/torture/pr116585.c
new file mode 100644
index 00000000000..108c481e104
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr116585.c
@@ -0,0 +1,32 @@
+/* { dg-do compile } */
+
+char *s1, *s2;
+extern int* my_alloc (int);
+extern int _setjmp ();
+extern void bar();
+void foo(int s1len, int s2len)
+{
+  int e;
+  e = _setjmp ();
+    {
+      int l, i;
+      int *md = my_alloc(((sizeof(int)) * (s1len + 1) * (s2len)));
+      s1len++;
+      for (; s1len; l)
+	for (; s2len; l)
+	  for (; s1len; i)
+	    {
+	      int j = 1;
+	      for (; j < s2len; j++)
+		{
+		  int cost;
+		  if (s1[1] == s2[1])
+		    cost = 0;
+		  else
+		    cost = 1;
+		  md[j * s1len ] = ((cost));
+		}
+	    }
+      bar();
+    }
+}
diff --git a/gcc/tree-data-ref.cc b/gcc/tree-data-ref.cc
index 654a8220214..69b421f3c94 100644
--- a/gcc/tree-data-ref.cc
+++ b/gcc/tree-data-ref.cc
@@ -765,6 +765,14 @@ split_constant_offset_1 (tree type, tree op0, enum tree_code code, tree op1,
   if (INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_TRAPS (type))
     return false;
 
+  if (TREE_CODE (op0) == SSA_NAME
+      && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (op0))
+    return false;
+  if (op1
+      && TREE_CODE (op1) == SSA_NAME
+      && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (op1))
+    return false;
+
   switch (code)
     {
     case INTEGER_CST:
@@ -860,9 +868,6 @@ split_constant_offset_1 (tree type, tree op0, enum tree_code code, tree op1,
 
     case SSA_NAME:
       {
-	if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (op0))
-	  return false;
-
 	gimple *def_stmt = SSA_NAME_DEF_STMT (op0);
 	enum tree_code subcode;
 

commit eed6e6e4dbf8b679967ef5831c76e48752217ecc
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Oct 3 00:22:10 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cd44be798e1..49ff8fbf6cd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2024-10-02  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116585
+	* tree-data-ref.cc (split_constant_offset_1): When either
+	operand is subject to abnormal coalescing do no further
+	processing.
+
 2024-09-29  Uros Bizjak  <ubizjak@gmail.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f464e65124d..aab92d459f7 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241002
+20241003
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3c43c238f0a..70dd394aad6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-10-02  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-09-18  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116585
+	* gcc.dg/torture/pr116585.c: New testcase.
+
 2024-10-01  Jason Merrill  <jason@redhat.com>
 
 	PR c++/115361

commit aeb54d0f3a9eb9363157a040beaddd4939bd4774
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Sep 18 17:20:29 2024 +0100

    libstdc++: Fix formatting of most negative chrono::duration [PR116755]
    
    When formatting chrono::duration<signed-integer-type, P>::min() we were
    causing undefined behaviour by trying to form the negative of the most
    negative value. If we convert negative durations with integer rep to the
    corresponding unsigned integer rep then we can safely represent all
    values.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116755
            * include/bits/chrono_io.h (formatter<duration<R,P>>::format):
            Cast negative integral durations to unsigned rep.
            * testsuite/20_util/duration/io.cc: Test the most negative
            integer durations.
    
    (cherry picked from commit 482e651f5750e4648ade90e32ed45b094538e7f8)

diff --git a/libstdc++-v3/include/bits/chrono_io.h b/libstdc++-v3/include/bits/chrono_io.h
index 72c66a0fef0..f8b78daedc6 100644
--- a/libstdc++-v3/include/bits/chrono_io.h
+++ b/libstdc++-v3/include/bits/chrono_io.h
@@ -1608,8 +1608,20 @@ namespace __format
 	       basic_format_context<_Out, _CharT>& __fc) const
 	{
 	  if constexpr (numeric_limits<_Rep>::is_signed)
-	    if (__d < __d.zero())
-	      return _M_f._M_format(-__d, __fc, true);
+	    if (__d < __d.zero()) [[unlikely]]
+	      {
+		if constexpr (is_integral_v<_Rep>)
+		  {
+		    // -d is undefined for the most negative integer.
+		    // Convert duration to corresponding unsigned rep.
+		    using _URep = make_unsigned_t<_Rep>;
+		    auto __ucnt = -static_cast<_URep>(__d.count());
+		    auto __ud = chrono::duration<_URep, _Period>(__ucnt);
+		    return _M_f._M_format(__ud, __fc, true);
+		  }
+		else
+		  return _M_f._M_format(-__d, __fc, true);
+	      }
 	  return _M_f._M_format(__d, __fc, false);
 	}
 
diff --git a/libstdc++-v3/testsuite/20_util/duration/io.cc b/libstdc++-v3/testsuite/20_util/duration/io.cc
index 6b00689672c..57020f4f953 100644
--- a/libstdc++-v3/testsuite/20_util/duration/io.cc
+++ b/libstdc++-v3/testsuite/20_util/duration/io.cc
@@ -106,6 +106,14 @@ test_format()
   VERIFY( s == "500ms" );
   s = std::format("{:%Q %q}", u);
   VERIFY( s == "500 ms" );
+
+  // PR libstdc++/116755 extra minus sign for most negative value
+  auto minsec = std::chrono::seconds::min();
+  s = std::format("{}", minsec);
+  auto expected = std::format("{}s", minsec.count());
+  VERIFY( s == expected );
+  s = std::format("{:%Q%q}", minsec);
+  VERIFY( s == expected );
 }
 
 void

commit 98ae5227a3e475e2c7d54d01fb5ee06cf0885ccc
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Sep 20 17:26:35 2024 +0100

    libstdc++: Disable std::formatter<char8_t, C> specialization
    
    I noticed that char8_t was missing from the list of types that were
    prevented from using the std::formatter partial specialization for
    integer types. That partial specialization was also matching
    cv-qualified integer types, because std::integral<const int> is true.
    
    This change simplifies the constraints by introducing a new variable
    template which is only true for cv-unqualified integer types, with
    explicit specializations to exclude the character types. This should be
    slightly more efficient than the previous constraints that checked
    std::integral<T> and (!__is_one_of<T, char, wchar_t, ...>). It also
    avoids the need for a separate std::formatter specialization for 128-bit
    integers, as they can be handled by the new variable template too.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/format (__format::__is_formattable_integer): New
            variable template and specializations.
            (template<integral, __char> struct formatter): Replace
            constraints on first arg with __is_formattable_integer.
            * testsuite/std/format/formatter/requirements.cc: Check that
            std::formatter specializations for char8_t and const int are
            disabled.
    
    (cherry picked from commit 0f52a92ab249bde64b7570d4cf549437a3283520)

diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
index 8f6a82a1fd4..95c2991765c 100644
--- a/libstdc++-v3/include/std/format
+++ b/libstdc++-v3/include/std/format
@@ -1394,8 +1394,9 @@ namespace __format
 
   // We can format a floating-point type iff it is usable with to_chars.
   template<typename _Tp>
-    concept __formattable_float = requires (_Tp __t, char* __p)
-    { __format::to_chars(__p, __p, __t, chars_format::scientific, 6); };
+    concept __formattable_float
+      = is_same_v<remove_cv_t<_Tp>, _Tp> && requires (_Tp __t, char* __p)
+      { __format::to_chars(__p, __p, __t, chars_format::scientific, 6); };
 
   template<__char _CharT>
     struct __formatter_fp
@@ -2103,32 +2104,33 @@ namespace __format
 #endif // USE_WCHAR_T
   /// @}
 
-  /// Format an integer.
-  template<integral _Tp, __format::__char _CharT>
-    requires (!__is_one_of<_Tp, char, wchar_t, char16_t, char32_t>::value)
-    struct formatter<_Tp, _CharT>
-    {
-      formatter() = default;
-
-      [[__gnu__::__always_inline__]]
-      constexpr typename basic_format_parse_context<_CharT>::iterator
-      parse(basic_format_parse_context<_CharT>& __pc)
-      {
-	return _M_f.template _M_parse<_Tp>(__pc);
-      }
+/// @cond undocumented
+namespace __format
+{
+  // each cv-unqualified arithmetic type ArithmeticT other than
+  // char, wchar_t, char8_t, char16_t, or char32_t
+  template<typename _Tp>
+    constexpr bool __is_formattable_integer = __is_integer<_Tp>::__value;
 
-      template<typename _Out>
-	typename basic_format_context<_Out, _CharT>::iterator
-	format(_Tp __u, basic_format_context<_Out, _CharT>& __fc) const
-	{ return _M_f.format(__u, __fc); }
+#if defined __SIZEOF_INT128__
+  template<> inline constexpr bool __is_formattable_integer<__int128>  = true;
+  template<> inline constexpr bool __is_formattable_integer<unsigned __int128>
+      = true;
+#endif
 
-    private:
-      __format::__formatter_int<_CharT> _M_f;
-    };
+  template<> inline constexpr bool __is_formattable_integer<char> = false;
+  template<> inline constexpr bool __is_formattable_integer<wchar_t> = false;
+#ifdef _GLIBCXX_USE_CHAR8_T
+  template<> inline constexpr bool __is_formattable_integer<char8_t> = false;
+#endif
+  template<> inline constexpr bool __is_formattable_integer<char16_t> = false;
+  template<> inline constexpr bool __is_formattable_integer<char32_t> = false;
+}
+/// ~endcond
 
-#if defined __SIZEOF_INT128__ && defined __STRICT_ANSI__
+  /// Format an integer.
   template<typename _Tp, __format::__char _CharT>
-    requires (__is_one_of<_Tp, __int128, unsigned __int128>::value)
+    requires __format::__is_formattable_integer<_Tp>
     struct formatter<_Tp, _CharT>
     {
       formatter() = default;
@@ -2148,7 +2150,6 @@ namespace __format
     private:
       __format::__formatter_int<_CharT> _M_f;
     };
-#endif
 
 #if defined __glibcxx_to_chars
   /// Format a floating-point value.
@@ -2541,6 +2542,8 @@ namespace __format
 } // namespace __format
 /// @endcond
 
+// Concept std::formattable was introduced by P2286R8 "Formatting Ranges",
+// but we can't guard it with __cpp_lib_format_ranges until we define that!
 #if __cplusplus > 202002L
   // [format.formattable], concept formattable
   template<typename _Tp, typename _CharT>
diff --git a/libstdc++-v3/testsuite/std/format/formatter/requirements.cc b/libstdc++-v3/testsuite/std/format/formatter/requirements.cc
index bde67e586ef..416b9a8ede5 100644
--- a/libstdc++-v3/testsuite/std/format/formatter/requirements.cc
+++ b/libstdc++-v3/testsuite/std/format/formatter/requirements.cc
@@ -26,6 +26,16 @@ test_specializations() // [format.formatter.spec]
   static_assert( std::is_copy_assignable_v<Fi> );
   static_assert( std::is_move_assignable_v<Fi> );
 
+#ifdef _GLIBCXX_USE_CHAR8_T
+  // std::string s0 = std::format("{}", u8'a'); // error: disabled formatter
+  using Fc8 = std::format_context::formatter_type<char8_t>;
+  static_assert( ! std::is_default_constructible_v<Fc8> );
+  static_assert( ! std::is_copy_constructible_v<Fc8> );
+  static_assert( ! std::is_move_constructible_v<Fc8> );
+  static_assert( ! std::is_copy_assignable_v<Fc8> );
+  static_assert( ! std::is_move_assignable_v<Fc8> );
+#endif
+
   // std::string s1 = std::format("{}", L"foo"); // error: disabled formatter
   using Fw = std::format_context::formatter_type<wchar_t>;
   static_assert( ! std::is_default_constructible_v<Fw> );
@@ -34,6 +44,13 @@ test_specializations() // [format.formatter.spec]
   static_assert( ! std::is_copy_assignable_v<Fw> );
   static_assert( ! std::is_move_assignable_v<Fw> );
 
+  using Fic = std::format_context::formatter_type<const int>; // disabled
+  static_assert( ! std::is_default_constructible_v<Fic> );
+  static_assert( ! std::is_copy_constructible_v<Fic> );
+  static_assert( ! std::is_move_constructible_v<Fic> );
+  static_assert( ! std::is_copy_assignable_v<Fic> );
+  static_assert( ! std::is_move_assignable_v<Fic> );
+
   std::string s2 = std::format("{}", red);  // OK, user-provided formatter
   VERIFY( s2 == "red" );
   using Fc = std::format_context::formatter_type<color>;

commit 61584f377ceee868c73a994e4d9d7b7bee5fb443
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Jun 6 11:50:06 2024 +0100

    libstdc++: Work around some PSTL test failures for debug mode [PR90276]
    
    This addresses one known failure due to a bug in the upstream tests, and
    a number of timeouts due to the algorithms running much more slowly with
    debug mode checks enabled.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/90276
            * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
            [_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode.
            * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
            [_GLIBCXX_DEBUG]: Reduce size of test data.
            * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
            Likewise.
            * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
            Likewise.
    
    (cherry picked from commit 003ce8a6c4c28f8d285134afa9a423d0e234cf2e)

diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
index 61bbca758b4..63e6abe2ea4 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
@@ -133,7 +133,11 @@ void
 test_by_type(Generator1 generator1, Generator2 generator2, Compare comp)
 {
     using namespace std;
+#ifdef _GLIBCXX_DEBUG
+    size_t max_size = 1000;
+#else
     size_t max_size = 10000;
+#endif
     Sequence<T> in1(max_size, [](size_t v) { return T(v); });
     Sequence<T> exp(max_size, [](size_t v) { return T(v); });
     size_t m;
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc
index ed07810618d..1567c369c4c 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc
@@ -77,7 +77,11 @@ void
 test_includes(Compare compare)
 {
 
+#ifdef _GLIBCXX_DEBUG
+    const std::size_t n_max = 10000;
+#else
     const std::size_t n_max = 1000000;
+#endif
 
     // The rand()%(2*n+1) encourages generation of some duplicates.
     std::srand(42);
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
index 6d441cc3ae9..797d0ee9340 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
@@ -3,6 +3,7 @@
 // { dg-do run { target c++17 } }
 // { dg-timeout-factor 3 }
 // { dg-require-effective-target tbb_backend }
+// { dg-xfail-run-if "see PR 90276" { debug_mode } }
 
 //===-- partial_sort.pass.cpp ---------------------------------------------===//
 //
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h
index ecf5cd1c89d..214e3452aa7 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_util.h
@@ -51,7 +51,11 @@ namespace TestUtils
     void
     test_set_op(Compare compare)
     {
+#ifdef _GLIBCXX_DEBUG
+        const std::size_t n_max = 1000;
+#else
         const std::size_t n_max = 100000;
+#endif
 
         // The rand()%(2*n+1) encourages generation of some duplicates.
         std::srand(4200);

commit 2f9585392da2f8c570fe879adbd08a6b0bfdc496
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Sep 26 23:36:46 2024 +0100

    libstdc++: Add missing 'inline' to always_inline function
    
    This fixes a -Wattributes warning for the COW std::string which was
    previously suppressed due to being in a system header.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/cow_string.h (__resize_for_overwrite): Add
            inline keyword to function with always_inline attribute.
    
    (cherry picked from commit 48e1b89f14f5eab9eb3f61830f608d92c4ee54b6)

diff --git a/libstdc++-v3/include/bits/cow_string.h b/libstdc++-v3/include/bits/cow_string.h
index 5d81bfc1230..36599a20423 100644
--- a/libstdc++-v3/include/bits/cow_string.h
+++ b/libstdc++-v3/include/bits/cow_string.h
@@ -3755,7 +3755,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   template<typename _CharT, typename _Traits, typename _Alloc>
   template<typename _Operation>
     [[__gnu__::__always_inline__]]
-    void
+    inline void
     basic_string<_CharT, _Traits, _Alloc>::
     __resize_and_overwrite(const size_type __n, _Operation __op)
     { resize_and_overwrite<_Operation&>(__n, __op); }

commit c5bdd24abac34382c6d503c1265649f65e750b54
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Sep 24 23:20:56 2024 +0100

    libstdc++: Populate std::time_get::get's %c format for C locale
    
    We were using the empty string "" for D_T_FMT and ERA_D_T_FMT in the C
    locale, instead of "%a %b %e %T %Y" as the C standard requires. Set it
    correctly for each locale implementation that defines time_members.cc.
    
    We can also explicitly set the _M_era_xxx pointers to the same values as
    the corresponding _M_xxx ones, rather than setting them to point to
    identical string literals. This doesn't rely on the compiler merging
    string literals, and makes it more explicit that they're the same in the
    C locale.
    
    libstdc++-v3/ChangeLog:
    
            * config/locale/dragonfly/time_members.cc
            (__timepunct<char>::_M_initialize_timepunc)
            (__timepunct<wchar_t>::_M_initialize_timepunc): Set
            _M_date_time_format for C locale. Set %Ex formats to the same
            values as the %x formats.
            * config/locale/generic/time_members.cc: Likewise.
            * config/locale/gnu/time_members.cc: Likewise.
            * testsuite/22_locale/time_get/get/char/5.cc: New test.
            * testsuite/22_locale/time_get/get/wchar_t/5.cc: New test.
    
    (cherry picked from commit c534e37faccf481afa9bc28f0605ca0ec3846c89)

diff --git a/libstdc++-v3/config/locale/dragonfly/time_members.cc b/libstdc++-v3/config/locale/dragonfly/time_members.cc
index 0c96928135e..069b2ddd26b 100644
--- a/libstdc++-v3/config/locale/dragonfly/time_members.cc
+++ b/libstdc++-v3/config/locale/dragonfly/time_members.cc
@@ -67,11 +67,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  _M_c_locale_timepunct = _S_get_c_locale();
 
 	  _M_data->_M_date_format = "%m/%d/%y";
-	  _M_data->_M_date_era_format = "%m/%d/%y";
+	  _M_data->_M_date_era_format = _M_data->_M_date_format;
 	  _M_data->_M_time_format = "%H:%M:%S";
-	  _M_data->_M_time_era_format = "%H:%M:%S";
-	  _M_data->_M_date_time_format = "";
-	  _M_data->_M_date_time_era_format = "";
+	  _M_data->_M_time_era_format = _M_data->_M_time_format;
+	  _M_data->_M_date_time_format = "%a %b %e %T %Y";
+	  _M_data->_M_date_time_era_format = _M_data->_M_date_time_format;
 	  _M_data->_M_am = "AM";
 	  _M_data->_M_pm = "PM";
 	  _M_data->_M_am_pm_format = "%I:%M:%S %p";
@@ -224,11 +224,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  _M_c_locale_timepunct = _S_get_c_locale();
 
 	  _M_data->_M_date_format = L"%m/%d/%y";
-	  _M_data->_M_date_era_format = L"%m/%d/%y";
+	  _M_data->_M_date_era_format = _M_data->_M_date_format;
 	  _M_data->_M_time_format = L"%H:%M:%S";
-	  _M_data->_M_time_era_format = L"%H:%M:%S";
-	  _M_data->_M_date_time_format = L"";
-	  _M_data->_M_date_time_era_format = L"";
+	  _M_data->_M_time_era_format = _M_data->_M_time_format;
+	  _M_data->_M_date_time_format = L"%a %b %e %T %Y";
+	  _M_data->_M_date_time_era_format = _M_data->_M_date_time_format;
 	  _M_data->_M_am = L"AM";
 	  _M_data->_M_pm = L"PM";
 	  _M_data->_M_am_pm_format = L"%I:%M:%S %p";
diff --git a/libstdc++-v3/config/locale/generic/time_members.cc b/libstdc++-v3/config/locale/generic/time_members.cc
index 68395820fef..6619f0ca881 100644
--- a/libstdc++-v3/config/locale/generic/time_members.cc
+++ b/libstdc++-v3/config/locale/generic/time_members.cc
@@ -65,11 +65,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	_M_data = new __timepunct_cache<char>;
 
       _M_data->_M_date_format = "%m/%d/%y";
-      _M_data->_M_date_era_format = "%m/%d/%y";
+      _M_data->_M_date_era_format = _M_data->_M_date_format;
       _M_data->_M_time_format = "%H:%M:%S";
-      _M_data->_M_time_era_format = "%H:%M:%S";
-      _M_data->_M_date_time_format = "";
-      _M_data->_M_date_time_era_format = "";
+      _M_data->_M_time_era_format = _M_data->_M_time_format;
+      _M_data->_M_date_time_format = "%a %b %e %T %Y";
+      _M_data->_M_date_time_era_format = _M_data->_M_date_time_format;
       _M_data->_M_am = "AM";
       _M_data->_M_pm = "PM";
       _M_data->_M_am_pm_format = "%I:%M:%S %p";
diff --git a/libstdc++-v3/config/locale/gnu/time_members.cc b/libstdc++-v3/config/locale/gnu/time_members.cc
index 1e3b87488fa..88c8ab70080 100644
--- a/libstdc++-v3/config/locale/gnu/time_members.cc
+++ b/libstdc++-v3/config/locale/gnu/time_members.cc
@@ -73,11 +73,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  _M_c_locale_timepunct = _S_get_c_locale();
 
 	  _M_data->_M_date_format = "%m/%d/%y";
-	  _M_data->_M_date_era_format = "%m/%d/%y";
+	  _M_data->_M_date_era_format = _M_data->_M_date_format;
 	  _M_data->_M_time_format = "%H:%M:%S";
-	  _M_data->_M_time_era_format = "%H:%M:%S";
-	  _M_data->_M_date_time_format = "";
-	  _M_data->_M_date_time_era_format = "";
+	  _M_data->_M_time_era_format = _M_data->_M_time_format;
+	  _M_data->_M_date_time_format = "%a %b %e %T %Y";
+	  _M_data->_M_date_time_era_format = _M_data->_M_date_time_format;
 	  _M_data->_M_am = "AM";
 	  _M_data->_M_pm = "PM";
 	  _M_data->_M_am_pm_format = "%I:%M:%S %p";
@@ -229,11 +229,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  _M_c_locale_timepunct = _S_get_c_locale();
 
 	  _M_data->_M_date_format = L"%m/%d/%y";
-	  _M_data->_M_date_era_format = L"%m/%d/%y";
+	  _M_data->_M_date_era_format = _M_data->_M_date_format;
 	  _M_data->_M_time_format = L"%H:%M:%S";
-	  _M_data->_M_time_era_format = L"%H:%M:%S";
-	  _M_data->_M_date_time_format = L"";
-	  _M_data->_M_date_time_era_format = L"";
+	  _M_data->_M_time_era_format = _M_data->_M_time_format;
+	  _M_data->_M_date_time_format = L"%a %b %e %T %Y";
+	  _M_data->_M_date_time_era_format = _M_data->_M_date_time_format;
 	  _M_data->_M_am = L"AM";
 	  _M_data->_M_pm = L"PM";
 	  _M_data->_M_am_pm_format = L"%I:%M:%S %p";
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/char/5.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/char/5.cc
new file mode 100644
index 00000000000..61fc329cf3c
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/char/5.cc
@@ -0,0 +1,37 @@
+// { dg-do run { target c++11} }
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+int main()
+{
+  using Facet = std::time_get<char>;
+  const Facet& fac = std::use_facet<Facet>(std::locale::classic());
+  std::istringstream ss("Fri Jul 5 14:58:21 2019");
+  std::ios::iostate err = std::ios::goodbit;
+  std::tm tm = {};
+  fac.get(ss, Facet::iter_type(), ss, err, &tm, 'c');
+  VERIFY( err == std::ios::eofbit );
+  VERIFY( tm.tm_year == 119 );
+  VERIFY( tm.tm_mon == 6 );
+  VERIFY( tm.tm_mday == 5 );
+  VERIFY( tm.tm_wday == 5 );
+  VERIFY( tm.tm_hour == 14 );
+  VERIFY( tm.tm_min == 58 );
+  VERIFY( tm.tm_sec == 21 );
+  ss.clear();
+  ss.seekg(0);
+  ss.str(ss.str() + " non-whitespace after the datetime");
+  err = std::ios::goodbit;
+  tm = std::tm();
+  fac.get(ss, Facet::iter_type(), ss, err, &tm, 'c', 'E');
+  VERIFY( err == std::ios::goodbit );
+  VERIFY( tm.tm_year == 119 );
+  VERIFY( tm.tm_mon == 6 );
+  VERIFY( tm.tm_mday == 5 );
+  VERIFY( tm.tm_wday == 5 );
+  VERIFY( tm.tm_hour == 14 );
+  VERIFY( tm.tm_min == 58 );
+  VERIFY( tm.tm_sec == 21 );
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/5.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/5.cc
new file mode 100644
index 00000000000..5f350b043d9
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/5.cc
@@ -0,0 +1,37 @@
+// { dg-do run { target c++11} }
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+int main()
+{
+  using Facet = std::time_get<wchar_t>;
+  const Facet& fac = std::use_facet<Facet>(std::locale::classic());
+  std::wistringstream ss(L"Fri Jul 5 14:58:21 2019");
+  std::ios::iostate err = std::ios::goodbit;
+  std::tm tm = {};
+  fac.get(ss, Facet::iter_type(), ss, err, &tm, 'c');
+  VERIFY( err == std::ios::eofbit );
+  VERIFY( tm.tm_year == 119 );
+  VERIFY( tm.tm_mon == 6 );
+  VERIFY( tm.tm_mday == 5 );
+  VERIFY( tm.tm_wday == 5 );
+  VERIFY( tm.tm_hour == 14 );
+  VERIFY( tm.tm_min == 58 );
+  VERIFY( tm.tm_sec == 21 );
+  ss.clear();
+  ss.seekg(0);
+  ss.str(ss.str() + L" non-whitespace after the datetime");
+  err = std::ios::goodbit;
+  tm = std::tm();
+  fac.get(ss, Facet::iter_type(), ss, err, &tm, 'c', 'E');
+  VERIFY( err == std::ios::goodbit );
+  VERIFY( tm.tm_year == 119 );
+  VERIFY( tm.tm_mon == 6 );
+  VERIFY( tm.tm_mday == 5 );
+  VERIFY( tm.tm_wday == 5 );
+  VERIFY( tm.tm_hour == 14 );
+  VERIFY( tm.tm_min == 58 );
+  VERIFY( tm.tm_sec == 21 );
+}

commit c4253d6a170f40725ce3a11ce7a3e236b6e4842f
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jun 11 16:45:43 2024 +0100

    libstdc++: Fix std::codecvt<wchar_t, char, mbstate_t> for empty dest [PR37475]
    
    For the GNU locale model, codecvt::do_out and codecvt::do_in incorrectly
    return 'ok' when the destination range is empty. That happens because
    detecting incomplete output is done in the loop body, and the loop is
    never even entered if to == to_end.
    
    By restructuring the loop condition so that we check the output range
    separately, we can ensure that for a non-empty source range, we always
    enter the loop at least once, and detect if the destination range is too
    small.
    
    The loops also seem easier to reason about if we return immediately on
    any error, instead of checking the result twice on every iteration. We
    can use an RAII type to restore the locale before returning, which also
    simplifies all the other member functions.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/37475
            * config/locale/gnu/codecvt_members.cc (Guard): New RAII type.
            (do_out, do_in): Return partial if the destination is empty but
            the source is not. Use Guard to restore locale on scope exit.
            Return immediately on any conversion error.
            (do_encoding, do_max_length, do_length): Use Guard.
            * testsuite/22_locale/codecvt/in/char/37475.cc: New test.
            * testsuite/22_locale/codecvt/in/wchar_t/37475.cc: New test.
            * testsuite/22_locale/codecvt/out/char/37475.cc: New test.
            * testsuite/22_locale/codecvt/out/wchar_t/37475.cc: New test.
    
    (cherry picked from commit 73ad57c244c283bf6da0c16630212f11b945eda5)

diff --git a/libstdc++-v3/config/locale/gnu/codecvt_members.cc b/libstdc++-v3/config/locale/gnu/codecvt_members.cc
index 034713d236e..794f25a5f35 100644
--- a/libstdc++-v3/config/locale/gnu/codecvt_members.cc
+++ b/libstdc++-v3/config/locale/gnu/codecvt_members.cc
@@ -37,8 +37,23 @@ namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
-  // Specializations.
 #ifdef _GLIBCXX_USE_WCHAR_T
+namespace
+{
+  // RAII type for changing and restoring the current thread's locale.
+  struct Guard
+  {
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+    explicit Guard(__c_locale loc) : old(__uselocale(loc)) { }
+    ~Guard() { __uselocale(old); }
+#else
+    explicit Guard(__c_locale) { }
+#endif
+    __c_locale old;
+  };
+}
+
+  // Specializations.
   codecvt_base::result
   codecvt<wchar_t, char, mbstate_t>::
   do_out(state_type& __state, const intern_type* __from,
@@ -46,22 +61,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	 extern_type* __to, extern_type* __to_end,
 	 extern_type*& __to_next) const
   {
-    result __ret = ok;
     state_type __tmp_state(__state);
-
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-#endif
+    Guard g(_M_c_locale_codecvt);
 
     // wcsnrtombs is *very* fast but stops if encounters NUL characters:
     // in case we fall back to wcrtomb and then continue, in a loop.
     // NB: wcsnrtombs is a GNU extension
-    for (__from_next = __from, __to_next = __to;
-	 __from_next < __from_end && __to_next < __to_end
-	 && __ret == ok;)
+    __from_next = __from;
+    __to_next = __to;
+    while (__from_next < __from_end)
       {
-	const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0',
-						      __from_end - __from_next);
+	if (__to_next >= __to_end)
+	  return partial;
+
+	const intern_type* __from_chunk_end
+	  = wmemchr(__from_next, L'\0', __from_end - __from_next);
 	if (!__from_chunk_end)
 	  __from_chunk_end = __from_end;
 
@@ -77,12 +91,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	    for (; __from < __from_next; ++__from)
 	      __to_next += wcrtomb(__to_next, *__from, &__tmp_state);
 	    __state = __tmp_state;
-	    __ret = error;
+	    return error;
 	  }
 	else if (__from_next && __from_next < __from_chunk_end)
 	  {
 	    __to_next += __conv;
-	    __ret = partial;
+	    return partial;
 	  }
 	else
 	  {
@@ -90,13 +104,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	    __to_next += __conv;
 	  }
 
-	if (__from_next < __from_end && __ret == ok)
+	if (__from_next < __from_end)
 	  {
 	    extern_type __buf[MB_LEN_MAX];
 	    __tmp_state = __state;
 	    const size_t __conv2 = wcrtomb(__buf, *__from_next, &__tmp_state);
 	    if (__conv2 > static_cast<size_t>(__to_end - __to_next))
-	      __ret = partial;
+	      return partial;
 	    else
 	      {
 		memcpy(__to_next, __buf, __conv2);
@@ -107,11 +121,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  }
       }
 
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-    __uselocale(__old);
-#endif
-
-    return __ret;
+    return ok;
   }
 
   codecvt_base::result
@@ -121,24 +131,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	intern_type* __to, intern_type* __to_end,
 	intern_type*& __to_next) const
   {
-    result __ret = ok;
     state_type __tmp_state(__state);
-
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-#endif
+    Guard g(_M_c_locale_codecvt);
 
     // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
     // in case we store a L'\0' and then continue, in a loop.
     // NB: mbsnrtowcs is a GNU extension
-    for (__from_next = __from, __to_next = __to;
-	 __from_next < __from_end && __to_next < __to_end
-	 && __ret == ok;)
+    __from_next = __from;
+    __to_next = __to;
+    while (__from_next < __from_end)
       {
-	const extern_type* __from_chunk_end;
-	__from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0',
-								  __from_end
-								  - __from_next));
+	if (__to_next >= __to_end)
+	  return partial;
+
+	const extern_type* __from_chunk_end
+	  = static_cast<const extern_type*>(memchr(__from_next, '\0',
+						   __from_end - __from_next));
 	if (!__from_chunk_end)
 	  __from_chunk_end = __from_end;
 
@@ -161,13 +169,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	      }
 	    __from_next = __from;
 	    __state = __tmp_state;
-	    __ret = error;
+	    return error;
 	  }
 	else if (__from_next && __from_next < __from_chunk_end)
 	  {
 	    // It is unclear what to return in this case (see DR 382).
 	    __to_next += __conv;
-	    __ret = partial;
+	    return partial;
 	  }
 	else
 	  {
@@ -175,7 +183,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	    __to_next += __conv;
 	  }
 
-	if (__from_next < __from_end && __ret == ok)
+	if (__from_next < __from_end)
 	  {
 	    if (__to_next < __to_end)
 	      {
@@ -185,48 +193,30 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 		*__to_next++ = L'\0';
 	      }
 	    else
-	      __ret = partial;
+	      return partial;
 	  }
       }
 
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-    __uselocale(__old);
-#endif
-
-    return __ret;
+    return ok;
   }
 
   int
   codecvt<wchar_t, char, mbstate_t>::
   do_encoding() const throw()
   {
+    Guard g(_M_c_locale_codecvt);
     // XXX This implementation assumes that the encoding is
     // stateless and is either single-byte or variable-width.
-    int __ret = 0;
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-#endif
-    if (MB_CUR_MAX == 1)
-      __ret = 1;
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-    __uselocale(__old);
-#endif
-    return __ret;
+    return MB_CUR_MAX == 1;
   }
 
   int
   codecvt<wchar_t, char, mbstate_t>::
   do_max_length() const throw()
   {
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-#endif
+    Guard g(_M_c_locale_codecvt);
     // XXX Probably wrong for stateful encodings.
-    int __ret = MB_CUR_MAX;
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-    __uselocale(__old);
-#endif
-    return __ret;
+    return MB_CUR_MAX;
   }
 
   int
@@ -236,10 +226,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   {
     int __ret = 0;
     state_type __tmp_state(__state);
-
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-#endif
+    Guard g(_M_c_locale_codecvt);
 
     // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
     // in case we advance past it and then continue, in a loop.
@@ -295,10 +282,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  }
       }
 
-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-    __uselocale(__old);
-#endif
-
     return __ret;
   }
 #endif
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/in/char/37475.cc b/libstdc++-v3/testsuite/22_locale/codecvt/in/char/37475.cc
new file mode 100644
index 00000000000..6184c3280cb
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/in/char/37475.cc
@@ -0,0 +1,23 @@
+#include <locale>
+#include <testsuite_hooks.h>
+
+void
+test_pr37475()
+{
+  typedef std::codecvt<char, char, std::mbstate_t> test_type;
+  const test_type& cvt = std::use_facet<test_type>(std::locale::classic());
+  const char from = 'a';
+  const char* from_next;
+  char to = 0;
+  char* to_next;
+  std::mbstate_t st = std::mbstate_t();
+  std::codecvt_base::result res
+    = cvt.in(st, &from, &from+1, from_next, &to, &to, to_next);
+
+  VERIFY( res == std::codecvt_base::noconv );
+}
+
+int main()
+{
+  test_pr37475();
+}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/37475.cc b/libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/37475.cc
new file mode 100644
index 00000000000..a0e64847ea9
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/37475.cc
@@ -0,0 +1,23 @@
+#include <locale>
+#include <testsuite_hooks.h>
+
+void
+test_pr37475()
+{
+  typedef std::codecvt<wchar_t, char, std::mbstate_t> test_type;
+  const test_type& cvt = std::use_facet<test_type>(std::locale::classic());
+  const char from = 'a';
+  const char* from_next;
+  wchar_t to = 0;
+  wchar_t* to_next;
+  std::mbstate_t st = std::mbstate_t();
+  std::codecvt_base::result res
+    = cvt.in(st, &from, &from+1, from_next, &to, &to, to_next);
+
+  VERIFY( res == std::codecvt_base::partial );
+}
+
+int main()
+{
+  test_pr37475();
+}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/out/char/37475.cc b/libstdc++-v3/testsuite/22_locale/codecvt/out/char/37475.cc
new file mode 100644
index 00000000000..8736e4b7f3f
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/out/char/37475.cc
@@ -0,0 +1,23 @@
+#include <locale>
+#include <assert.h>
+
+void
+test_pr37475()
+{
+  typedef std::codecvt<char, char, std::mbstate_t> test_type;
+  const test_type& cvt = std::use_facet<test_type>(std::locale::classic());
+  const char from = 'a';
+  const char* from_next;
+  char to;
+  char* to_next;
+  std::mbstate_t st = std::mbstate_t();
+  std::codecvt_base::result res
+    = cvt.out(st, &from, &from+1, from_next, &to, &to, to_next);
+
+  assert( res == std::codecvt_base::noconv );
+}
+
+int main()
+{
+  test_pr37475();
+}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/37475.cc b/libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/37475.cc
new file mode 100644
index 00000000000..2cd2edb7404
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/37475.cc
@@ -0,0 +1,23 @@
+#include <locale>
+#include <assert.h>
+
+void
+test_pr37475()
+{
+  typedef std::codecvt<wchar_t, char, std::mbstate_t> test_type;
+  const test_type& cvt = std::use_facet<test_type>(std::locale::classic());
+  const wchar_t from = L'a';
+  const wchar_t* from_next;
+  char to;
+  char* to_next;
+  std::mbstate_t st = std::mbstate_t();
+  std::codecvt_base::result res
+    = cvt.out(st, &from, &from+1, from_next, &to, &to, to_next);
+
+  assert( res == std::codecvt_base::partial );
+}
+
+int main()
+{
+  test_pr37475();
+}

commit 1b09baab8c751c6d14c1028dcaf9497a5c39b695
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Sep 26 12:12:13 2024 +0100

    libstdc++: Remove noexcept-specifier from MCF __cxa_guard_acquire [PR116857]
    
    This function definition should not be marked as non-throwing, because
    the declaration in <cxxabi.h> is potentially throwing.
    
    Also fix whitespace.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/116857
            * libsupc++/guard.cc (__cxa_guard_acquire): Remove
            _GLIBCXX_NOTHROW to match declaration in <cxxabi.h>.
    
    (cherry picked from commit efdda203f52b9b55ef9acc8ad668bbd0570a8de6)

diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc
index 364797817f7..707083e09d0 100644
--- a/libstdc++-v3/libsupc++/guard.cc
+++ b/libstdc++-v3/libsupc++/guard.cc
@@ -36,22 +36,22 @@
 namespace __cxxabiv1 {
 
 extern "C" int
-__cxa_guard_acquire (__guard* g) _GLIBCXX_NOTHROW
-  {
-    return __MCF_cxa_guard_acquire(g);
-  }
+__cxa_guard_acquire (__guard* g)
+{
+  return __MCF_cxa_guard_acquire(g);
+}
 
 extern "C" void
 __cxa_guard_release (__guard* g) _GLIBCXX_NOTHROW
-  {
-    __MCF_cxa_guard_release(g);
-  }
+{
+  __MCF_cxa_guard_release(g);
+}
 
 extern "C" void
 __cxa_guard_abort (__guard* g) _GLIBCXX_NOTHROW
-  {
-    __MCF_cxa_guard_abort(g);
-  }
+{
+  __MCF_cxa_guard_abort(g);
+}
 
 }  // namespace __cxxabiv1
 

commit 1982bd34cf63beef4d86a048bc16aab11a1ad71b
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Aug 28 12:38:18 2024 +0100

    libstdc++: Fix autoconf check for O_NONBLOCK in <fcntl.h>
    
    I misused the AC_CHECK_DECL macro, assuming that it behaved like
    AC_CHECK_DECLS and always defined a HAVE_xxx macro if the decl was
    found. Instead, the [action-if-found] shell commands are needed to
    defined HAVE_O_NONBLOCK explicitly.
    
    libstdc++-v3/ChangeLog:
    
            * configure.ac: Fix check for O_NONBLOCK.
            * config.h.in: Regenerate.
            * configure: Regenerate.
    
    (cherry picked from commit b68561dd7925dfee1836f75d3fa8d33fff5c2498)

diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in
index 906e0143099..9cba3d9c8ee 100644
--- a/libstdc++-v3/config.h.in
+++ b/libstdc++-v3/config.h.in
@@ -302,6 +302,9 @@
 /* Define if openat is available in <fcntl.h>. */
 #undef HAVE_OPENAT
 
+/* Define if O_NONBLOCK is defined in <fcntl.h> */
+#undef HAVE_O_NONBLOCK
+
 /* Define if poll is available in <poll.h>. */
 #undef HAVE_POLL
 
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 21abaeb0778..18053ab7eae 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -54085,6 +54085,8 @@ if test "$ac_cv_have_decl_F_GETFL$ac_cv_have_decl_F_SETFL" = yesyes ; then
 "
 if test "x$ac_cv_have_decl_O_NONBLOCK" = xyes; then :
 
+$as_echo "#define HAVE_O_NONBLOCK 1" >>confdefs.h
+
 fi
 
 fi
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index 37396bd6ebb..a6525a9d3e4 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -539,7 +539,10 @@ AC_CHECK_HEADERS([fcntl.h sys/ioctl.h sys/socket.h sys/uio.h poll.h netdb.h arpa
 AC_CHECK_DECL(F_GETFL,,,[#include <fcntl.h>])
 AC_CHECK_DECL(F_SETFL,,,[#include <fcntl.h>])
 if test "$ac_cv_have_decl_F_GETFL$ac_cv_have_decl_F_SETFL" = yesyes ; then
-  AC_CHECK_DECL(O_NONBLOCK,,,[#include <fcntl.h>])
+  AC_CHECK_DECL(O_NONBLOCK,
+    AC_DEFINE(HAVE_O_NONBLOCK,1,[Define if O_NONBLOCK is defined in <fcntl.h>]),
+    [],
+    [#include <fcntl.h>])
 fi
 
 # For Transactional Memory TS

commit 09f789660e9bedc8ecdc5add9afdfced4d68dcd0
Author: Kim Gräsman <kim.grasman@gmail.com>
Date:   Tue Aug 27 17:11:29 2024 +0100

    libstdc++: Fix @file for target-specific opt_random.h
    
    A few of these files self-identified as ext/random.tcc, update to use
    the actual basename.
    
    libstdc++-v3/ChangeLog:
    
            * config/cpu/aarch64/opt/ext/opt_random.h: Improve doxygen file
            docs.
            * config/cpu/i486/opt/ext/opt_random.h: Likewise.
    
    (cherry picked from commit c2ad7b2d5247cf2ddee98d7f46274775a3fa1268)

diff --git a/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h b/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
index ae78aced27e..7f756d1572f 100644
--- a/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
+++ b/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h
@@ -22,7 +22,7 @@
 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 // <http://www.gnu.org/licenses/>.
 
-/** @file ext/random.tcc
+/** @file ext/opt_random.h
  *  This is an internal header file, included by other library headers.
  *  Do not attempt to use it directly. @headername{ext/random}
  */
diff --git a/libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h b/libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h
index 0947197af7b..3a3e892e7c3 100644
--- a/libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h
+++ b/libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h
@@ -22,7 +22,7 @@
 // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 // <http://www.gnu.org/licenses/>.
 
-/** @file ext/random.tcc
+/** @file ext/opt_random.h
  *  This is an internal header file, included by other library headers.
  *  Do not attempt to use it directly. @headername{ext/random}
  */

commit ab9ab537b11a6a82f283b08898b67f83f4a19e57
Author: Kim Gräsman <kim.grasman@gmail.com>
Date:   Tue Aug 27 17:08:47 2024 +0100

    libstdc++: Fix @headername for bits/cpp_type_traits.h
    
    There is no file ext/type_traits, point it to ext/type_traits.h instead.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/cpp_type_traits.h: Improve doxygen file docs.
    
    (cherry picked from commit f6ed7a61a7c906f8fb7f8059132225c9bc41f3b2)

diff --git a/libstdc++-v3/include/bits/cpp_type_traits.h b/libstdc++-v3/include/bits/cpp_type_traits.h
index 59f1a1875eb..0cb482f54b4 100644
--- a/libstdc++-v3/include/bits/cpp_type_traits.h
+++ b/libstdc++-v3/include/bits/cpp_type_traits.h
@@ -24,7 +24,7 @@
 
 /** @file bits/cpp_type_traits.h
  *  This is an internal header file, included by other library headers.
- *  Do not attempt to use it directly. @headername{ext/type_traits}
+ *  Do not attempt to use it directly. @headername{ext/type_traits.h}
  */
 
 // Written by Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>

commit 4ef6b95d5dabba0a907d9545f901c77f0a5cb42d
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Aug 21 12:29:32 2024 +0100

    libstdc++: Make debug sequence members mutable [PR116369]
    
    We need to be able to attach debug mode iterators to const containers,
    so the safe iterator constructor uses const_cast to get a modifiable
    pointer to the container. If the container was defined as const, that
    const_cast to access its members results in undefined behaviour.  PR
    116369 shows a case where it results in a segfault because the container
    is in a rodata section (which shouldn't have happened, but the undefined
    behaviour in the library still exists in any case).
    
    This makes the _M_iterators and _M_const_iterators data members mutable,
    so that it's safe to modify them even if the declared type of the
    container is a const type.
    
    Ideally we would not need the const_cast at all. Instead, the _M_attach
    member (and everything it calls) should be const-qualified. That would
    work fine now, because the members that it ends up modifying are
    mutable. Making that change would require a number of new exports from
    the shared library, and would require retaining the old non-const member
    functions (maybe as symbol aliases) for backwards compatibility. That
    might be worth changing at some point, but isn't done here.
    
    libstdc++-v3/ChangeLog:
    
            PR c++/116369
            * include/debug/safe_base.h (_Safe_sequence_base::_M_iterators):
            Add mutable specifier.
            (_Safe_sequence_base::_M_const_iterators): Likewise.
    
    (cherry picked from commit a35dd276cbf6236e08bcf6e56e62c2be41cf6e3c)

diff --git a/libstdc++-v3/include/debug/safe_base.h b/libstdc++-v3/include/debug/safe_base.h
index d5fbe4b1320..88d7f0b05c8 100644
--- a/libstdc++-v3/include/debug/safe_base.h
+++ b/libstdc++-v3/include/debug/safe_base.h
@@ -205,10 +205,10 @@ namespace __gnu_debug
 
   public:
     /// The list of mutable iterators that reference this container
-    _Safe_iterator_base* _M_iterators;
+    mutable _Safe_iterator_base* _M_iterators;
 
     /// The list of constant iterators that reference this container
-    _Safe_iterator_base* _M_const_iterators;
+    mutable _Safe_iterator_base* _M_const_iterators;
 
     /// The container version number. This number may never be 0.
     mutable unsigned int _M_version;

commit 83bd0d99714bf2b91c2b00ecec8201b7e6264a44
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Oct 4 00:23:08 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index aab92d459f7..ec7372fbdf8 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241003
+20241004
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index e0e79ed50bd..c5c29a0c106 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,125 @@
+2024-10-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-08-23  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR c++/116369
+	* include/debug/safe_base.h (_Safe_sequence_base::_M_iterators):
+	Add mutable specifier.
+	(_Safe_sequence_base::_M_const_iterators): Likewise.
+
+2024-10-03  Kim Gräsman  <kim.grasman@gmail.com>
+
+	Backported from master:
+	2024-08-28  Kim Gräsman  <kim.grasman@gmail.com>
+
+	* include/bits/cpp_type_traits.h: Improve doxygen file docs.
+
+2024-10-03  Kim Gräsman  <kim.grasman@gmail.com>
+
+	Backported from master:
+	2024-08-28  Kim Gräsman  <kim.grasman@gmail.com>
+
+	* config/cpu/aarch64/opt/ext/opt_random.h: Improve doxygen file
+	docs.
+	* config/cpu/i486/opt/ext/opt_random.h: Likewise.
+
+2024-10-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-08-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	* configure.ac: Fix check for O_NONBLOCK.
+	* config.h.in: Regenerate.
+	* configure: Regenerate.
+
+2024-10-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-26  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116857
+	* libsupc++/guard.cc (__cxa_guard_acquire): Remove
+	_GLIBCXX_NOTHROW to match declaration in <cxxabi.h>.
+
+2024-10-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-27  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/37475
+	* config/locale/gnu/codecvt_members.cc (Guard): New RAII type.
+	(do_out, do_in): Return partial if the destination is empty but
+	the source is not. Use Guard to restore locale on scope exit.
+	Return immediately on any conversion error.
+	(do_encoding, do_max_length, do_length): Use Guard.
+	* testsuite/22_locale/codecvt/in/char/37475.cc: New test.
+	* testsuite/22_locale/codecvt/in/wchar_t/37475.cc: New test.
+	* testsuite/22_locale/codecvt/out/char/37475.cc: New test.
+	* testsuite/22_locale/codecvt/out/wchar_t/37475.cc: New test.
+
+2024-10-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	* config/locale/dragonfly/time_members.cc
+	(__timepunct<char>::_M_initialize_timepunc)
+	(__timepunct<wchar_t>::_M_initialize_timepunc): Set
+	_M_date_time_format for C locale. Set %Ex formats to the same
+	values as the %x formats.
+	* config/locale/generic/time_members.cc: Likewise.
+	* config/locale/gnu/time_members.cc: Likewise.
+	* testsuite/22_locale/time_get/get/char/5.cc: New test.
+	* testsuite/22_locale/time_get/get/wchar_t/5.cc: New test.
+
+2024-10-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-26  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/cow_string.h (__resize_for_overwrite): Add
+	inline keyword to function with always_inline attribute.
+
+2024-10-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/90276
+	* testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
+	[_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode.
+	* testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
+	[_GLIBCXX_DEBUG]: Reduce size of test data.
+	* testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
+	Likewise.
+
+2024-10-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-22  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/format (__format::__is_formattable_integer): New
+	variable template and specializations.
+	(template<integral, __char> struct formatter): Replace
+	constraints on first arg with __is_formattable_integer.
+	* testsuite/std/format/formatter/requirements.cc: Check that
+	std::formatter specializations for char8_t and const int are
+	disabled.
+
+2024-10-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-22  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/116755
+	* include/bits/chrono_io.h (formatter<duration<R,P>>::format):
+	Cast negative integral durations to unsigned rep.
+	* testsuite/20_util/duration/io.cc: Test the most negative
+	integer durations.
+
 2024-09-23  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit 7363d73e26351f42406f7ae31e985768e9a1109a
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Oct 4 11:27:33 2024 +0200

    Fix crash with subunit of local package
    
    This is a regression present on the 14 branch only: the expander gets
    confused when trying to insert the finalizer of a procedure that contains
    a package as a subunit.  The offending code no longer exists on the
    mainline so this adds the minimal fix to address the issue.
    
    gcc/ada
            PR ada/116430
            * exp_ch7.adb (Build_Finalizer.Create_Finalizer): For the insertion
            point of the finalizer, deal with package bodies that are subunits.

diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb
index e594a534244..123abb63289 100644
--- a/gcc/ada/exp_ch7.adb
+++ b/gcc/ada/exp_ch7.adb
@@ -2051,6 +2051,12 @@ package body Exp_Ch7 is
                     and then List_Containing (Finalizer_Insert_Nod) = Stmts)
                then
                   Finalizer_Insert_Nod := Last_Top_Level_Ctrl_Construct;
+                  if Nkind (Finalizer_Insert_Nod) = N_Package_Body
+                    and then Nkind (Parent (Finalizer_Insert_Nod)) = N_Subunit
+                  then
+                     Finalizer_Insert_Nod :=
+                        Corresponding_Stub (Parent (Finalizer_Insert_Nod));
+                  end if;
                end if;
 
                Insert_After (Finalizer_Insert_Nod, Fin_Body);

commit 93a6fab364343218e58fd7618e87e5202ae18542
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Thu Oct 3 09:34:08 2024 +0200

    AVR: target/116953 - ICE due to operands clobber in avr_out_sbxx_branch.
    
            PR target/116953
    gcc/
            * config/avr/avr.cc (avr_out_sbxx_branch): Work on a copy of
            the operands rather than on operands itself, which is just
            recog_data.operand and may be clobbered by jump_over_one_insn_p.
    gcc/testsuite/
            * gcc.target/avr/torture/pr116953.c: New test.
    
    (cherry picked from commit 58b9024c996951f8d768f1c83a74e5f3eef8a1c7)

diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index c6f29fd48f9..5891465cd27 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -14409,8 +14409,12 @@ avr_hard_regno_rename_ok (unsigned int old_reg, unsigned int new_reg)
    Operand 3: label to jump to if the test is true.  */
 
 const char *
-avr_out_sbxx_branch (rtx_insn *insn, rtx operands[])
+avr_out_sbxx_branch (rtx_insn *insn, rtx xop[])
 {
+  // jump_over_one_insn_p may call extract on the next insn, clobbering
+  // recog_data.operand.  Hence make a copy of the operands (PR116953).
+  rtx operands[] = { xop[0], xop[1], xop[2], xop[3] };
+
   enum rtx_code comp = GET_CODE (operands[0]);
   bool long_jump = get_attr_length (insn) >= 4;
   bool reverse = long_jump || jump_over_one_insn_p (insn, operands[3]);
diff --git a/gcc/testsuite/gcc.target/avr/torture/pr116953.c b/gcc/testsuite/gcc.target/avr/torture/pr116953.c
new file mode 100644
index 00000000000..f8e5a38ec65
--- /dev/null
+++ b/gcc/testsuite/gcc.target/avr/torture/pr116953.c
@@ -0,0 +1,7 @@
+unsigned foo (unsigned x, unsigned y)
+{
+  int i;
+  for (i = 8; i--; x <<= 1)
+    y ^= (x ^ y) & 0x80 ? 79U : 0U;
+  return y;
+}

commit 1032b72548c47a199e0407c69d6740d6c3341f43
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Oct 4 16:21:15 2024 +0800

    x86: Disable stack protector for naked functions
    
    Since naked functions should not enable stack protector, define
    TARGET_STACK_PROTECT_RUNTIME_ENABLED_P to disable stack protector
    for naked functions.
    
    gcc/
    
            PR target/116962
            * config/i386/i386.cc (ix86_stack_protect_runtime_enabled_p): New
            function.
            (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): New.
    
    gcc/testsuite/
    
            PR target/116962
            * gcc.target/i386/pr116962.c: New file.
    
    Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
    (cherry picked from commit 7d2845da112214f064e7b24531cc67e256b5177e)

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 2a0a79888be..f8ab1893985 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -24265,6 +24265,13 @@ ix86_stack_protect_guard (void)
   return default_stack_protect_guard ();
 }
 
+static bool
+ix86_stack_protect_runtime_enabled_p (void)
+{
+  /* Naked functions should not enable stack protector.  */
+  return !ix86_function_naked (current_function_decl);
+}
+
 /* For 32-bit code we can save PIC register setup by using
    __stack_chk_fail_local hidden function instead of calling
    __stack_chk_fail directly.  64-bit code doesn't need to setup any PIC
@@ -26582,6 +26589,10 @@ ix86_libgcc_floating_mode_supported_p
 #undef TARGET_STACK_PROTECT_GUARD
 #define TARGET_STACK_PROTECT_GUARD ix86_stack_protect_guard
 
+#undef TARGET_STACK_PROTECT_RUNTIME_ENABLED_P
+#define TARGET_STACK_PROTECT_RUNTIME_ENABLED_P \
+  ix86_stack_protect_runtime_enabled_p
+
 #if !TARGET_MACHO
 #undef TARGET_STACK_PROTECT_FAIL
 #define TARGET_STACK_PROTECT_FAIL ix86_stack_protect_fail
diff --git a/gcc/testsuite/gcc.target/i386/pr116962.c b/gcc/testsuite/gcc.target/i386/pr116962.c
new file mode 100644
index 00000000000..ced16eee746
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr116962.c
@@ -0,0 +1,10 @@
+/* { dg-do compile { target fstack_protector } } */
+/* { dg-options "-O2 -fstack-protector-all" } */
+/* { dg-final { scan-assembler-not "__stack_chk_fail" } } */
+
+__attribute__ ((naked))
+void
+foo (void)
+{
+  asm ("ret");
+}

commit 6722ebb95f850b8a4c48cf83ba885f3d4308ede1
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Oct 5 00:21:50 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 49ff8fbf6cd..4493e727c76 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,23 @@
+2024-10-04  H.J. Lu  <hjl.tools@gmail.com>
+
+	Backported from master:
+	2024-10-04  H.J. Lu  <hjl.tools@gmail.com>
+
+	PR target/116962
+	* config/i386/i386.cc (ix86_stack_protect_runtime_enabled_p): New
+	function.
+	(TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): New.
+
+2024-10-04  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-10-04  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/116953
+	* config/avr/avr.cc (avr_out_sbxx_branch): Work on a copy of
+	the operands rather than on operands itself, which is just
+	recog_data.operand and may be clobbered by jump_over_one_insn_p.
+
 2024-10-02  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index ec7372fbdf8..21c32c43dc9 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241004
+20241005
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 4ece0b973c5..ba090322650 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2024-10-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/116430
+	* exp_ch7.adb (Build_Finalizer.Create_Finalizer): For the insertion
+	point of the finalizer, deal with package bodies that are subunits.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 70dd394aad6..9af343129d2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,19 @@
+2024-10-04  H.J. Lu  <hjl.tools@gmail.com>
+
+	Backported from master:
+	2024-10-04  H.J. Lu  <hjl.tools@gmail.com>
+
+	PR target/116962
+	* gcc.target/i386/pr116962.c: New file.
+
+2024-10-04  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-10-04  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/116953
+	* gcc.target/avr/torture/pr116953.c: New test.
+
 2024-10-02  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:

commit 27582d4a68f8fb79955f1261a19ef6a8c1f9f71b
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Sat Oct 5 18:18:31 2024 -0400

    hppa: Fix indirect_goto constraint
    
    Noticed testing LRA.
    
    2024-10-05  John David Anglin  <danglin@gcc.gnu.org>
    
    gcc/ChangeLog:
    
            * config/pa/pa.md: Fix indirect_got constraint.

diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index c0333276144..f5e7d67c69f 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -7426,7 +7426,7 @@
 })
 
 (define_insn "indirect_goto"
-  [(unspec [(match_operand 0 "register_operand" "=r")] UNSPEC_GOTO)]
+  [(unspec [(match_operand 0 "register_operand" "r")] UNSPEC_GOTO)]
   "GET_MODE (operands[0]) == word_mode"
   "bv%* %%r0(%0)"
   [(set_attr "type" "branch")

commit f70e2910e31072f331860968b242ac22ef2ec24f
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Oct 6 00:26:10 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4493e727c76..db667e1f2a7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2024-10-05  John David Anglin  <danglin@gcc.gnu.org>
+
+	* config/pa/pa.md: Fix indirect_got constraint.
+
 2024-10-04  H.J. Lu  <hjl.tools@gmail.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 21c32c43dc9..c7126e3e1a9 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241005
+20241006

commit 4af44f2cf7d281f3e4f3957efce10e8b2ccb2ad3
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Oct 7 00:21:34 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c7126e3e1a9..09c64f0d788 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241006
+20241007

commit 5779e040886fa12a609711ce308706331fc0dbe9
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Oct 8 00:22:43 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 09c64f0d788..4eb153b60d2 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241007
+20241008

commit 965ee6a8221de5f69fce4b8097e77c3c19ab31eb
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue Oct 8 16:05:33 2024 +0200

    x86/{,V}AES: adjust when to force EVEX encoding
    
    Commit a79d13a01f8c ("i386: Fix aes/vaes patterns [PR114576]") correctly
    said "..., but we need to emit {evex} prefix in the assembly if AES ISA
    is not enabled". Yet it did so only for the TARGET_AES insns. Going from
    the alternative chosen in the TARGET_VAES insns isn't quite right: If
    AES is (also) enabled, EVEX encoding would needlessly be forced.
    
    gcc/
    
            * config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>,
            vaesenc_<mode>, vaesenclast_<mode>): Replace which_alternative
            check by TARGET_AES one.

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 1b6f7c1d6c5..40880f2cd58 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -30258,7 +30258,7 @@
 	  UNSPEC_VAESDEC))]
   "TARGET_VAES"
 {
-  if (which_alternative == 0 && <MODE>mode == V16QImode)
+  if (!TARGET_AES && <MODE>mode == V16QImode)
     return "%{evex%} vaesdec\t{%2, %1, %0|%0, %1, %2}";
   else
     return "vaesdec\t{%2, %1, %0|%0, %1, %2}";
@@ -30272,7 +30272,7 @@
 	  UNSPEC_VAESDECLAST))]
   "TARGET_VAES"
 {
-  if (which_alternative == 0 && <MODE>mode == V16QImode)
+  if (!TARGET_AES && <MODE>mode == V16QImode)
     return "%{evex%} vaesdeclast\t{%2, %1, %0|%0, %1, %2}";
   else
     return "vaesdeclast\t{%2, %1, %0|%0, %1, %2}";
@@ -30286,7 +30286,7 @@
 	  UNSPEC_VAESENC))]
   "TARGET_VAES"
 {
-  if (which_alternative == 0 && <MODE>mode == V16QImode)
+  if (!TARGET_AES && <MODE>mode == V16QImode)
     return "%{evex%} vaesenc\t{%2, %1, %0|%0, %1, %2}";
   else
     return "vaesenc\t{%2, %1, %0|%0, %1, %2}";
@@ -30300,7 +30300,7 @@
 	  UNSPEC_VAESENCLAST))]
   "TARGET_VAES"
 {
-  if (which_alternative == 0 && <MODE>mode == V16QImode)
+  if (!TARGET_AES && <MODE>mode == V16QImode)
     return "%{evex%} vaesenclast\t{%2, %1, %0|%0, %1, %2}";
   else
     return "vaesenclast\t{%2, %1, %0|%0, %1, %2}";

commit 89d2007d211947c0085c6852749a7d348cb458fd
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Sep 11 19:42:03 2024 +0200

    ada: Fix bogus error in instantiation with formal package
    
    The compiler reports that an actual does not match the formal when there
    is a defaulted formal discrete type because Check_Formal_Package_Instance
    fails to skip the implicit base type generated by the compiler.
    
    gcc/ada/ChangeLog:
            PR ada/114636
            * sem_ch12.adb (Check_Formal_Package_Instance): For a defaulted
            formal discrete type, skip the generated implicit base type.

diff --git a/gcc/ada/sem_ch12.adb b/gcc/ada/sem_ch12.adb
index e7b759c4e88..c06377ab4c9 100644
--- a/gcc/ada/sem_ch12.adb
+++ b/gcc/ada/sem_ch12.adb
@@ -6696,8 +6696,12 @@ package body Sem_Ch12 is
          then
             --  If the formal is a tagged type the corresponding class-wide
             --  type has been generated as well, and it must be skipped.
+            --  Likewise, for a formal discrete type, the base type has been
+            --  generated as well (see Analyze_Formal_Discrete_Type).
 
-            if Is_Type (E2) and then Is_Tagged_Type (E2) then
+            if Is_Type (E2)
+              and then (Is_Tagged_Type (E2) or else Is_Enumeration_Type (E2))
+            then
                Next_Entity (E2);
             end if;
 

commit 932d1c3adb5759a0f37779ed027e96647bdb8b60
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Oct 8 15:08:15 2024 +0200

    Add regression test
    
    gcc/testsuite/
            PR ada/114636
            * gnat.dg/specs/generic_inst1.ads: New test.

diff --git a/gcc/testsuite/gnat.dg/specs/generic_inst1.ads b/gcc/testsuite/gnat.dg/specs/generic_inst1.ads
new file mode 100644
index 00000000000..fdf48c020b0
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/generic_inst1.ads
@@ -0,0 +1,32 @@
+-- { dg-do compile }
+
+package Generic_Inst1 is
+
+   generic
+      type Terminals is (<>);
+      type Nonterminals is (<>);
+   package Types is
+      type Action is record
+         data : Integer;
+      end record;
+   end Types;
+
+   generic
+      type States is (<>);
+      type Input_T is (<>);
+      type Action_T is private;
+   package FSM is
+   end FSM;
+
+   generic
+      with package Typs is new Types (<>);
+      with package SMs is new FSM
+        (States => <>, Input_T => Typs.Terminals, Action_T => Typs.Action);
+   package Gen is
+   end Gen;
+
+   package Typs is new Types (Natural, Integer);
+   package SMs is new FSM (Integer, Natural, Typs.Action);
+   package Generator is new Gen (Typs, SMs);
+
+end Generic_Inst1;

commit c9fe4eae41c0e05ef213b9a47c611d5fc704006a
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Sep 11 19:26:18 2024 +0200

    ada: Fix internal error on elsif part of if-statement containing if-expression
    
    The problem occurs when the compiler is trying to find a context to which
    it can hoist finalization actions coming from the if-expression, because
    Find_Hook_Context incorrectly returns the N_Elsif_Part node.
    
    gcc/ada/ChangeLog:
            PR ada/114640
            * exp_util.adb (Find_Hook_Context): For a node present within a
            conditional expression, do not return an N_Elsif_Part node.

diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
index 47a928a6a40..f81380846e0 100644
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -6555,6 +6555,7 @@ package body Exp_Util is
                                         | N_Aggregate
                                         | N_Delta_Aggregate
                                         | N_Extension_Aggregate
+                                        | N_Elsif_Part
               and then Nkind (Parent (Par)) not in N_Function_Call
                                                  | N_Procedure_Call_Statement
                                                  | N_Entry_Call_Statement

commit f45fc31bd618154c270fa5a7b354d2025800862b
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Sep 11 19:37:08 2024 +0200

    ada: Fix negative value returned by 'Image for array with nonnegative component
    
    The problem is that Exp_Put_Image.Build_Elementary_Put_Image_Call uses the
    signedness of the base type but the size of the first subtype, hence the
    discrepancy between them.
    
    gcc/ada/ChangeLog:
            PR ada/115535
            * exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the size
            of the underlying type to find the support type.

diff --git a/gcc/ada/exp_put_image.adb b/gcc/ada/exp_put_image.adb
index c298163f36f..b7327f1f067 100644
--- a/gcc/ada/exp_put_image.adb
+++ b/gcc/ada/exp_put_image.adb
@@ -293,10 +293,9 @@ package body Exp_Put_Image is
       Loc     : constant Source_Ptr := Sloc (N);
       P_Type  : constant Entity_Id  := Entity (Prefix (N));
       U_Type  : constant Entity_Id  := Underlying_Type (P_Type);
-      FST     : constant Entity_Id  := First_Subtype (U_Type);
       Sink    : constant Node_Id    := First (Expressions (N));
       Item    : constant Node_Id    := Next (Sink);
-      P_Size  : constant Uint       := Esize (FST);
+      P_Size  : constant Uint       := Esize (U_Type);
       Lib_RE  : RE_Id;
 
    begin

commit 4390e95fa5304110562777292c6d3e3dc97de8f6
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Oct 8 15:15:26 2024 +0200

    Add regression test
    
    gcc/testsuite/
            PR ada/115535
            * gnat.dg/put_image1.adb: New test

diff --git a/gcc/testsuite/gnat.dg/put_image1.adb b/gcc/testsuite/gnat.dg/put_image1.adb
new file mode 100644
index 00000000000..396967ce115
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/put_image1.adb
@@ -0,0 +1,21 @@
+-- { dg-do run }
+-- { dg-options "-gnat2022" }
+
+with Ada.Text_IO; use Ada.Text_IO;
+
+procedure Put_Image1 is
+
+  type Client_ID_Part is range 0 .. 2**32 - 1 with Size => 32;
+
+  type Client_ID is array (1 .. 2) of Client_ID_Part;
+
+  A : Client_ID := (1479222903, 3163714999);
+
+begin
+   Put_Line (A'Image);
+   -- { dg-output ".* 1479222903,  3163714999.*\n" }
+   Put_Line (A (1)'Image);
+   -- { dg-output " 1479222903.*\n" }
+   Put_Line (A (2)'Image);
+   -- { dg-output " 3163714999.*\n" }
+end;

commit f8e9c36aa3daf9782cf9b887d4f3f28766642b37
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Sep 5 00:19:25 2024 +0200

    ada: Fix wrong finalization of anonymous array aggregate
    
    The issue arises when the aggregate consists only of iterated associations
    because, in this case, its expansion uses a 2-pass mechanism which creates
    a temporary that needs a fully-fledged initialization, thus running afoul
    of the optimization that avoids building the initialization procedure in
    the anonymous array case.
    
    gcc/ada/ChangeLog:
            * exp_aggr.ads (Is_Two_Pass_Aggregate): New function declaration.
            * exp_aggr.adb (Is_Two_Pass_Aggregate): New function body.
            (Expand_Array_Aggregate): Call Is_Two_Pass_Aggregate to detect the
            aggregates that need the 2-pass expansion.
            * exp_ch3.adb (Expand_Freeze_Array_Type): In the anonymous array
            case, build the initialization procedure if the initial value in
            the object declaration is a 2-pass aggregate.

diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
index 950f310b58c..a20ca7bb938 100644
--- a/gcc/ada/exp_aggr.adb
+++ b/gcc/ada/exp_aggr.adb
@@ -5908,12 +5908,7 @@ package body Exp_Aggr is
       then
          return;
 
-      elsif Present (Component_Associations (N))
-        and then Nkind (First (Component_Associations (N))) =
-                 N_Iterated_Component_Association
-        and then
-          Present (Iterator_Specification (First (Component_Associations (N))))
-      then
+      elsif Is_Two_Pass_Aggregate (N) then
          Two_Pass_Aggregate_Expansion (N);
          return;
 
@@ -8710,6 +8705,21 @@ package body Exp_Aggr is
         and then C in Uint_1 | Uint_2 | Uint_4; -- False if No_Uint
    end Is_Two_Dim_Packed_Array;
 
+   ---------------------------
+   -- Is_Two_Pass_Aggregate --
+   ---------------------------
+
+   function Is_Two_Pass_Aggregate (N : Node_Id) return Boolean is
+   begin
+      return Nkind (N) = N_Aggregate
+        and then Present (Component_Associations (N))
+        and then Nkind (First (Component_Associations (N))) =
+                   N_Iterated_Component_Association
+        and then
+          Present
+            (Iterator_Specification (First (Component_Associations (N))));
+   end Is_Two_Pass_Aggregate;
+
    --------------------
    -- Late_Expansion --
    --------------------
diff --git a/gcc/ada/exp_aggr.ads b/gcc/ada/exp_aggr.ads
index 8db0a020663..bed54ecddea 100644
--- a/gcc/ada/exp_aggr.ads
+++ b/gcc/ada/exp_aggr.ads
@@ -35,6 +35,10 @@ package Exp_Aggr is
    --  Returns True if N is an aggregate of some kind whose Expansion_Delayed
    --  flag is set (see sinfo for meaning of flag).
 
+   function Is_Two_Pass_Aggregate (N : Node_Id) return Boolean;
+   --  Return True if N is an aggregate that is to be expanded in two passes.
+   --  This is the case if it consists only of iterated associations.
+
    procedure Convert_Aggr_In_Object_Decl (N : Node_Id);
    --  N is a N_Object_Declaration with an expression which must be an
    --  N_Aggregate or N_Extension_Aggregate with Expansion_Delayed.
diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb
index fdedf3294fe..f8324369b33 100644
--- a/gcc/ada/exp_ch3.adb
+++ b/gcc/ada/exp_ch3.adb
@@ -4889,17 +4889,22 @@ package body Exp_Ch3 is
 
          if No (Init_Proc (Base)) then
 
-            --  If this is an anonymous array created for a declaration with
-            --  an initial value, its init_proc will never be called. The
+            --  If this is an anonymous array built for an object declaration
+            --  with an initial value, its Init_Proc will never be called. The
             --  initial value itself may have been expanded into assignments,
-            --  in which case the object declaration is carries the
-            --  No_Initialization flag.
+            --  in which case the declaration has the No_Initialization flag.
+            --  The exception is when the initial value is a 2-pass aggregate,
+            --  because the special expansion used for it creates a temporary
+            --  that needs a fully-fledged initialization.
 
             if Is_Itype (Base)
               and then Nkind (Associated_Node_For_Itype (Base)) =
                                                     N_Object_Declaration
               and then
-                (Present (Expression (Associated_Node_For_Itype (Base)))
+                ((Present (Expression (Associated_Node_For_Itype (Base)))
+                    and then not
+                      Is_Two_Pass_Aggregate
+                        (Expression (Associated_Node_For_Itype (Base))))
                   or else No_Initialization (Associated_Node_For_Itype (Base)))
             then
                null;

commit 70c46d8e455144cf5968d38b932692cbe0cfa2e1
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Oct 8 15:17:27 2024 +0200

    Add regression test
    
    gcc/testsuite/
            PR ada/116190
            * gnat.dg/aggr31.adb: New test.

diff --git a/gcc/testsuite/gnat.dg/aggr31.adb b/gcc/testsuite/gnat.dg/aggr31.adb
new file mode 100644
index 00000000000..8e95f808d88
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/aggr31.adb
@@ -0,0 +1,17 @@
+-- { dg-do run }
+-- { dg-options "-gnat2022" }
+
+with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
+
+procedure Aggr31 is
+
+  My_Array : constant array (1 .. 5) of Unbounded_String :=
+    [others => To_Unbounded_String ("Test")];
+
+  This_Crashes : constant array (Natural range <>) of Unbounded_String :=
+    [for I of My_Array => I];
+
+begin
+  null;
+end;
+

commit f14b608614dc8ca428282486cdd62536d41f5754
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Oct 9 00:23:40 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index db667e1f2a7..5f08248cd7a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2024-10-08  Jan Beulich  <jbeulich@suse.com>
+
+	* config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>,
+	vaesenc_<mode>, vaesenclast_<mode>): Replace which_alternative
+	check by TARGET_AES one.
+
 2024-10-05  John David Anglin  <danglin@gcc.gnu.org>
 
 	* config/pa/pa.md: Fix indirect_got constraint.
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 4eb153b60d2..6d0d2e77043 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241008
+20241009
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index ba090322650..efec09ceb27 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,31 @@
+2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* exp_aggr.ads (Is_Two_Pass_Aggregate): New function declaration.
+	* exp_aggr.adb (Is_Two_Pass_Aggregate): New function body.
+	(Expand_Array_Aggregate): Call Is_Two_Pass_Aggregate to detect the
+	aggregates that need the 2-pass expansion.
+	* exp_ch3.adb (Expand_Freeze_Array_Type): In the anonymous array
+	case, build the initialization procedure if the initial value in
+	the object declaration is a 2-pass aggregate.
+
+2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/115535
+	* exp_put_image.adb (Build_Elementary_Put_Image_Call): Use the size
+	of the underlying type to find the support type.
+
+2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/114640
+	* exp_util.adb (Find_Hook_Context): For a node present within a
+	conditional expression, do not return an N_Elsif_Part node.
+
+2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/114636
+	* sem_ch12.adb (Check_Formal_Package_Instance): For a defaulted
+	formal discrete type, skip the generated implicit base type.
+
 2024-10-04  Eric Botcazou  <ebotcazou@adacore.com>
 
 	PR ada/116430
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9af343129d2..2da8d553243 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,18 @@
+2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/116190
+	* gnat.dg/aggr31.adb: New test.
+
+2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/115535
+	* gnat.dg/put_image1.adb: New test
+
+2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/114636
+	* gnat.dg/specs/generic_inst1.ads: New test.
+
 2024-10-04  H.J. Lu  <hjl.tools@gmail.com>
 
 	Backported from master:

commit 4123f546d77c42287d2fcae6fb04df7b87193454
Author: Martin Uecker <uecker@tugraz.at>
Date:   Tue Sep 17 11:37:29 2024 +0200

    c: fix crash when checking for compatibility of structures [PR116726]
    
    When checking for compatibility of structure or union types in
    tagged_types_tu_compatible_p, restore the old value of the pointer to
    the top of the temporary cache after recursively calling comptypes_internal
    when looping over the members of a structure of union.  While the next
    iteration of the loop overwrites the pointer, I missed the fact that it can
    be accessed again when types of function arguments are compared as part
    of recursive type checking and the function is entered again.
    
            PR c/116726
    
    gcc/c/ChangeLog:
    
            * c-typeck.cc (tagged_types_tu_compatible_p): Restore value
            of the cache after recursing into comptypes_internal.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/pr116726.c: New test.
    
    (cherry picked from commit 9227a64495d5594613604573b72422e8e3722fc5)

diff --git a/gcc/c/c-typeck.cc b/gcc/c/c-typeck.cc
index 4567b114734..ebc2c288f98 100644
--- a/gcc/c/c-typeck.cc
+++ b/gcc/c/c-typeck.cc
@@ -1611,8 +1611,11 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
 
 	    data->anon_field = !DECL_NAME (s1);
 
+	    const struct tagged_tu_seen_cache *cache = data->cache;
 	    data->cache = &entry;
-	    if (!comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2), data))
+	    bool ret = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2), data);
+	    data->cache = cache;
+	    if (!ret)
 	      return false;
 
 	    tree st1 = TYPE_SIZE (TREE_TYPE (s1));
diff --git a/gcc/testsuite/gcc.dg/pr116726.c b/gcc/testsuite/gcc.dg/pr116726.c
new file mode 100644
index 00000000000..bb25efca586
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr116726.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-std=c23" } */
+
+struct s1 {
+  int f1;
+};
+struct s2 {
+  int f2;
+};
+struct s1 f(struct s2 *);
+
+struct s1 {
+  int f1;
+};
+struct s2 {
+  int f2;
+};
+struct s1 f(struct s2 *);

commit c6c8455e59b3a22dfbd567b7e5336fc4cb5dc257
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Oct 10 00:23:39 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 6d0d2e77043..7f0f80c6439 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241009
+20241010
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 4358e76db18..a3e75e9794a 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,12 @@
+2024-10-09  Martin Uecker  <uecker@tugraz.at>
+
+	Backported from master:
+	2024-09-20  Martin Uecker  <uecker@tugraz.at>
+
+	PR c/116726
+	* c-typeck.cc (tagged_types_tu_compatible_p): Restore value
+	of the cache after recursing into comptypes_internal.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2da8d553243..c02a59eb506 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-10-09  Martin Uecker  <uecker@tugraz.at>
+
+	Backported from master:
+	2024-09-20  Martin Uecker  <uecker@tugraz.at>
+
+	PR c/116726
+	* gcc.dg/pr116726.c: New test.
+
 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
 
 	PR ada/116190

commit 44dc46415ce8fafc1f6a46bac123b430ae5aba4d
Author: Richard Ball <richard.ball@arm.com>
Date:   Thu Oct 10 19:16:39 2024 +0100

    aarch64: Alter pr116258.c test to correct for big endian.
    
    The test at pr116258.c fails on big endian targets,
    this is because the test checks that the index of a floating
    point multiply is 0, which is correct only for little endian.
    
    gcc/testsuite/ChangeLog:
    
            PR tree-optimization/116258
            * gcc.target/aarch64/pr116258.c:
            Alter test to add big-endian support.
    
    (cherry picked from commit a17a9bdcb3f749b895abf1fbf4f62859df9e8184)

diff --git a/gcc/testsuite/gcc.target/aarch64/pr116258.c b/gcc/testsuite/gcc.target/aarch64/pr116258.c
index e727ad4b72a..5b63de25b7b 100644
--- a/gcc/testsuite/gcc.target/aarch64/pr116258.c
+++ b/gcc/testsuite/gcc.target/aarch64/pr116258.c
@@ -12,6 +12,7 @@
   return (x + h(t));
 }
 
-/* { dg-final { scan-assembler-times "\\\[0\\\]" 1 } } */
+/* { dg-final { scan-assembler-times "\\\[0\\\]" 1 { target { aarch64_little_endian } } } } */
+/* { dg-final { scan-assembler-times "\\\[3\\\]" 1 { target { aarch64_big_endian } } } } */
 /* { dg-final { scan-assembler-not "dup\t" } } */
 /* { dg-final { scan-assembler-not "ins\t" } } */

commit 8794e5b19cb37baddfacc2d15fc176302c7b7c95
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Oct 11 00:23:22 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7f0f80c6439..1c5e89a4845 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241010
+20241011
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c02a59eb506..cfadd1742c0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2024-10-10  Richard Ball  <richard.ball@arm.com>
+
+	Backported from master:
+	2024-10-10  Richard Ball  <richard.ball@arm.com>
+
+	PR tree-optimization/116258
+	* gcc.target/aarch64/pr116258.c:
+	Alter test to add big-endian support.
+
 2024-10-09  Martin Uecker  <uecker@tugraz.at>
 
 	Backported from master:

commit f15b8c925a7f71b4e489fa4c645b4f4a1d346072
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Oct 12 00:23:39 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 1c5e89a4845..4c61f9c24a3 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241011
+20241012

commit 17ec4636f24322f246428b626f34a577b7d5ebd2
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Oct 13 00:22:13 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 4c61f9c24a3..dcf1ca303e9 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241012
+20241013

commit 3ae40fa0add409282ece0ccaaa615bfa91f374d4
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Sep 13 16:13:01 2024 +0200

    c++: Don't emit deprecated/unavailable attribute diagnostics when creating cdtor thunks [PR116678]
    
    Another spot where we mark_used a function (in this case ctor or dtor)
    even when it is just artificially used inside of thunks (emitted on mingw
    with -Os for the testcase).
    
    2024-09-13  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/116678
            * optimize.cc: Include decl.h.
            (maybe_thunk_body): Temporarily change deprecated_state to
            UNAVAILABLE_DEPRECATED_SUPPRESS.
    
            * g++.dg/warn/deprecated-20.C: New test.
    
    (cherry picked from commit b7b67732e20217196f2a13a10fc3df4605b2b2ab)

diff --git a/gcc/cp/optimize.cc b/gcc/cp/optimize.cc
index 7147f5e00f1..74ec0011285 100644
--- a/gcc/cp/optimize.cc
+++ b/gcc/cp/optimize.cc
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "coretypes.h"
 #include "target.h"
 #include "cp-tree.h"
+#include "decl.h"
 #include "stringpool.h"
 #include "cgraph.h"
 #include "debug.h"
@@ -289,6 +290,11 @@ maybe_thunk_body (tree fn, bool force)
   if (ctor_omit_inherited_parms (fns[0]))
     return 0;
 
+  /* Don't diagnose deprecated or unavailable cdtors just because they
+     have thunks emitted for them.  */
+  auto du = make_temp_override (deprecated_state,
+				UNAVAILABLE_DEPRECATED_SUPPRESS);
+
   DECL_ABSTRACT_P (fn) = false;
   if (!DECL_WEAK (fn))
     {
diff --git a/gcc/testsuite/g++.dg/warn/deprecated-20.C b/gcc/testsuite/g++.dg/warn/deprecated-20.C
new file mode 100644
index 00000000000..99b6e40fd0b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/deprecated-20.C
@@ -0,0 +1,16 @@
+// PR c++/116678
+// { dg-do compile { target c++11 } }
+// { dg-options "-Os -pedantic" }
+
+struct S
+{
+  [[deprecated]] S () { s = 1; }	// { dg-bogus "'S::S\\\(\\\)' is deprecated" }
+  S (int x) { s = x; }
+  ~S () {}
+  int s;
+};
+
+int
+main ()
+{
+}

commit 11195a9e0a46f5204f2506caaea815830d1d9491
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Sep 20 09:14:29 2024 +0200

    i386: Fix up _mm_min_ss etc. handling of zeros and NaNs [PR116738]
    
    min/max patterns for intrinsics which on x86 result in the second
    input operand if the two operands are both zeros or one or both of them
    are a NaN shouldn't use SMIN/SMAX RTL, because that is similarly to
    MIN_EXPR/MAX_EXPR undefined what will be the result in those cases.
    
    The following patch adds an expander which uses either a new pattern with
    UNSPEC_IEEE_M{AX,IN} or use the S{MIN,MAX} representation of the same.
    
    2024-09-20  Uros Bizjak  <ubizjak@gmail.com>
                Jakub Jelinek  <jakub@redhat.com>
    
            PR target/116738
            * config/i386/subst.md (mask_scalar_operand_arg34,
            mask_scalar_expand_op3, round_saeonly_scalar_mask_arg3): New
            subst attributes.
            * config/i386/sse.md
            (<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
            Change from define_insn to define_expand, rename the old define_insn
            to ...
            (*<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
            ... this.
            (<sse>_ieee_vm<ieee_maxmin><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
            New define_insn.
    
            * gcc.target/i386/sse-pr116738.c: New test.
    
    (cherry picked from commit 624d3af025e820ede7ec4334f7a2d5d4731c99a9)

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 40880f2cd58..c91a7e07bc7 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -3047,7 +3047,27 @@
 	   (const_string "*")))
    (set_attr "mode" "<ssescalarmode>")])
 
-(define_insn "<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>"
+(define_expand "<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>"
+  [(set (match_operand:VFH_128 0 "register_operand")
+	(vec_merge:VFH_128
+	  (smaxmin:VFH_128
+	    (match_operand:VFH_128 1 "register_operand")
+	    (match_operand:VFH_128 2 "nonimmediate_operand"))
+	 (match_dup 1)
+	 (const_int 1)))]
+  "TARGET_SSE"
+{
+  if (!flag_finite_math_only || flag_signed_zeros)
+    {
+      emit_insn (gen_<sse>_ieee_vm<maxmin_float><mode>3<mask_scalar_name><round_saeonly_scalar_name>
+		 (operands[0], operands[1], operands[2]
+		  <mask_scalar_operand_arg34>
+		  <round_saeonly_scalar_mask_arg3>));
+      DONE;
+    }
+})
+
+(define_insn "*<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>"
   [(set (match_operand:VFH_128 0 "register_operand" "=x,v")
 	(vec_merge:VFH_128
 	  (smaxmin:VFH_128
@@ -3065,6 +3085,25 @@
    (set_attr "prefix" "<round_saeonly_scalar_prefix>")
    (set_attr "mode" "<ssescalarmode>")])
 
+(define_insn "<sse>_ieee_vm<ieee_maxmin><mode>3<mask_scalar_name><round_saeonly_scalar_name>"
+  [(set (match_operand:VFH_128 0 "register_operand" "=x,v")
+	(vec_merge:VFH_128
+	  (unspec:VFH_128
+	    [(match_operand:VFH_128 1 "register_operand" "0,v")
+	     (match_operand:VFH_128 2 "nonimmediate_operand" "xm,<round_saeonly_scalar_constraint>")]
+	    IEEE_MAXMIN)
+	 (match_dup 1)
+	 (const_int 1)))]
+  "TARGET_SSE"
+  "@
+   <ieee_maxmin><ssescalarmodesuffix>\t{%2, %0|%0, %<iptr>2}
+   v<ieee_maxmin><ssescalarmodesuffix>\t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1, %<iptr>2<round_saeonly_scalar_mask_op3>}"
+  [(set_attr "isa" "noavx,avx")
+   (set_attr "type" "sse")
+   (set_attr "btver2_sse_attr" "maxmin")
+   (set_attr "prefix" "<round_saeonly_scalar_prefix>")
+   (set_attr "mode" "<ssescalarmode>")])
+
 (define_mode_attr addsub_cst [(V4DF "5") (V2DF "1")
                               (V4SF "5") (V8SF "85")])
 
diff --git a/gcc/config/i386/subst.md b/gcc/config/i386/subst.md
index 7a9b697e0f6..763e4a8de69 100644
--- a/gcc/config/i386/subst.md
+++ b/gcc/config/i386/subst.md
@@ -345,6 +345,8 @@
 (define_subst_attr "mask_scalarcz_operand4" "mask_scalarcz" "" "%{%5%}%N4")
 (define_subst_attr "mask_scalar4_dest_false_dep_for_glc_cond" "mask_scalar" "1" "operands[4] == CONST0_RTX(<MODE>mode)")
 (define_subst_attr "mask_scalarc_dest_false_dep_for_glc_cond" "mask_scalarc" "1" "operands[3] == CONST0_RTX(V8HFmode)")
+(define_subst_attr "mask_scalar_operand_arg34" "mask_scalar" "" ", operands[3], operands[4]")
+(define_subst_attr "mask_scalar_expand_op3" "mask_scalar" "3" "5")
 
 (define_subst "mask_scalar"
   [(set (match_operand:SUBST_V 0)
@@ -452,6 +454,7 @@
 (define_subst_attr "round_saeonly_scalar_constraint" "round_saeonly_scalar" "vm" "v")
 (define_subst_attr "round_saeonly_scalar_prefix" "round_saeonly_scalar" "vex" "evex")
 (define_subst_attr "round_saeonly_scalar_nimm_predicate" "round_saeonly_scalar" "nonimmediate_operand" "register_operand")
+(define_subst_attr "round_saeonly_scalar_mask_arg3" "round_saeonly_scalar" "" ", operands[<mask_scalar_expand_op3>]")
 
 (define_subst "round_saeonly_scalar"
   [(set (match_operand:SUBST_V 0)
diff --git a/gcc/testsuite/gcc.target/i386/sse-pr116738.c b/gcc/testsuite/gcc.target/i386/sse-pr116738.c
new file mode 100644
index 00000000000..5b31bf24748
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/sse-pr116738.c
@@ -0,0 +1,28 @@
+/* PR target/116738 */
+/* { dg-do run } */
+/* { dg-options "-O2 -msse" } */
+/* { dg-require-effective-target sse } */
+
+#include "sse-check.h"
+
+static inline float
+clamp (float f)
+{
+  __m128 v = _mm_set_ss (f);
+  __m128 zero = _mm_setzero_ps ();
+  __m128 greatest = _mm_set_ss (__FLT_MAX__);
+  v = _mm_min_ss (v, greatest);
+  v = _mm_max_ss (v, zero);
+  return _mm_cvtss_f32 (v);
+}
+
+static void
+sse_test (void)
+{
+  float f = clamp (-0.0f);
+  if (f != 0.0f || __builtin_signbitf (f))
+    abort ();
+  f = clamp (__builtin_nanf (""));
+  if (__builtin_isnanf (f) || f != __FLT_MAX__)
+    abort ();
+}

commit 31c8b82bd7a0a350801f14c2f5f258381eafa295
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sun Sep 29 21:52:32 2024 +0200

    cselib: Discard useless locs of preserved VALUEs [PR116627]
    
    remove_useless_values iteratively discards useless locs (locs of
    cselib_val which refer to non-preserved VALUEs with no locations),
    which in turn can make further values useless until no further VALUEs
    are made useless and then discards the useless VALUEs.
    
    Preserved VALUEs (something done during var-tracking only I think)
    live in a different hash table, cselib_preserved_hash_table rather
    than cselib_hash_table.  cselib_find_slot first looks up slot in
    cselib_preserved_hash_table and only if not found looks it up in
    cselib_hash_table (and INSERTs only into the latter), whereas preservation
    of a VALUE results in move of a cselib_val from the latter to the former
    hash table.
    
    The testcase in the PR (apparently too fragile, it only reproduces on 14
    branch with various flags on a single arch, not on trunk) ICEs, because
    we have a preserved VALUE (QImode with (const_int 0) as one of the locs).
    In a different BB SImode r2 is looked up, a non-preserved VALUE is created
    for it, and the r13-2916 added code attempts to lookup also SUBREGs of that
    in narrower modes, among those QImode, so adds to that SImode r2
    non-preserve VALUE a new loc of (subreg:QI (value:SI) 0).  That SImode
    value is considered useless, so remove_useless_value discards it, but
    nothing discarded it from the preserved VALUE's loc_list, so when looking
    something up in the hash table we ICE trying to derevence CSELIB_VAL
    of the discarded VALUE.
    
    I think we need to discuard useless locs even from the preserved VALUEs.
    That IMHO shouldn't create any further useless VALUEs, the preserved
    VALUEs are never useless, so we don't need to iterate with it, can do it
    just once, but IMHO it needs to be done because actually
    discard_useless_values.
    
    The following patch does that.
    
    2024-09-29  Jakub Jelinek  <jakub@redhat.com>
    
            PR target/116627
            * cselib.cc (remove_useless_values): Discard useless locs
            even from preserved cselib_vals in cselib_preserved_hash_table
            hash table.
    
    (cherry picked from commit 73726725ae03995ef8b61622c954f7ca70416f79)

diff --git a/gcc/cselib.cc b/gcc/cselib.cc
index cbaab7d515c..212d8a6c485 100644
--- a/gcc/cselib.cc
+++ b/gcc/cselib.cc
@@ -751,6 +751,11 @@ remove_useless_values (void)
       }
   *p = &dummy_val;
 
+  if (cselib_preserve_constants)
+    cselib_preserved_hash_table->traverse <void *,
+					   discard_useless_locs> (NULL);
+  gcc_assert (!values_became_useless);
+
   n_useless_values += n_useless_debug_values;
   n_debug_values -= n_useless_debug_values;
   n_useless_debug_values = 0;

commit 3df53e5554c86bfbf7f7dbfd3052678eb03afcdb
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Oct 1 09:49:49 2024 +0200

    range-cache: Fix ICE on SSA_NAME with def_stmt not yet in the IL [PR116898]
    
    Some passes like the bitint lowering queue some statements on edges and only
    commit them at the end of the pass.  If they use ranger at the same time,
    the ranger might see such SSA_NAMEs and ICE on those.  The following patch
    instead just punts on them.
    
    2024-10-01  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/116898
            * gimple-range-cache.cc (ranger_cache::block_range): If a SSA_NAME
            with NULL def_bb isn't SSA_NAME_IS_DEFAULT_DEF, return false instead
            of failing assertion.  Formatting fix.
    
            * gcc.dg/bitint-110.c: New test.
    
    (cherry picked from commit bdbd0607d5933cdecbf7e009a42f1d9486dddf44)

diff --git a/gcc/gimple-range-cache.cc b/gcc/gimple-range-cache.cc
index a33b7a73872..0a575413930 100644
--- a/gcc/gimple-range-cache.cc
+++ b/gcc/gimple-range-cache.cc
@@ -1239,13 +1239,16 @@ ranger_cache::block_range (vrange &r, basic_block bb, tree name, bool calc)
       gimple *def_stmt = SSA_NAME_DEF_STMT (name);
       basic_block def_bb = NULL;
       if (def_stmt)
-	def_bb = gimple_bb (def_stmt);;
+	def_bb = gimple_bb (def_stmt);
       if (!def_bb)
 	{
 	  // If we get to the entry block, this better be a default def
 	  // or range_on_entry was called for a block not dominated by
-	  // the def.  
-	  gcc_checking_assert (SSA_NAME_IS_DEFAULT_DEF (name));
+	  // the def.  But it could be also SSA_NAME defined by a statement
+	  // not yet in the IL (such as queued edge insertion), in that case
+	  // just punt.
+	  if (!SSA_NAME_IS_DEFAULT_DEF (name))
+	    return false;
 	  def_bb = ENTRY_BLOCK_PTR_FOR_FN (cfun);
 	}
 
diff --git a/gcc/testsuite/gcc.dg/bitint-110.c b/gcc/testsuite/gcc.dg/bitint-110.c
new file mode 100644
index 00000000000..4ba2f93856e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bitint-110.c
@@ -0,0 +1,20 @@
+/* PR middle-end/116898 */
+/* { dg-do compile { target bitint575 } } */
+/* { dg-options "-O -finstrument-functions -fnon-call-exceptions" } */
+
+_BitInt(127) a;
+_BitInt(511) b;
+
+void
+foo (_BitInt(31) c)
+{
+  do
+    {
+      c %= b;
+again:
+    }
+  while (c);
+  a /= 0;		/* { dg-warning "division by zero" } */
+  c -= a;
+  goto again;
+}

commit 80f13430350276a8c932d068c971cc00d5e43b78
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Oct 1 09:52:20 2024 +0200

    range-cache: Fix ranger ICE if number of bbs increases [PR116899]
    
    Ranger cache during initialization reserves number of basic block slots
    in the m_workback vector (in an inefficient way by doing create (0)
    and safe_grow_cleared (n) and truncate (0) rather than say create (n)
    or reserve (n) after create).  The problem is that some passes split bbs and/or
    create new basic blocks and so when one is unlucky, the quick_push into that
    vector can ICE.
    
    The following patch replaces those 4 quick_push calls with safe_push.
    
    I've also gathered some statistics from compiling 63 gcc sources (picked those
    that dependent on gimple-range-cache.h just because I had to rebuild them once
    for the instrumentation), and that showed that in 81% of cases nothing has
    been pushed into the vector at all (and note, not everything was small, there
    were even cases with 10000+ basic blocks), another 18.5% of cases had just 1-4
    elements in the vector at most, 0.08% had 5-8 and 19 out of 305386 cases
    had at most 9-11 elements, nothing more.  So, IMHO reserving number of basic
    block in the vector is a waste of compile time memory and with the safe_push
    calls, the patch just initializes the vector to vNULL.
    
    2024-10-01  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/116899
            * gimple-range-cache.cc (ranger_cache::ranger_cache): Set m_workback
            to vNULL instead of creating it, growing and then truncating.
            (ranger_cache::fill_block_cache): Use safe_push rather than quick_push
            on m_workback.
            (ranger_cache::range_from_dom): Likewise.
    
            * gcc.dg/bitint-111.c: New test.
    
    (cherry picked from commit de25f1729d212c11d6e2955130f4eb1d272b5ce7)

diff --git a/gcc/gimple-range-cache.cc b/gcc/gimple-range-cache.cc
index 0a575413930..73fc178b30c 100644
--- a/gcc/gimple-range-cache.cc
+++ b/gcc/gimple-range-cache.cc
@@ -953,9 +953,7 @@ ranger_cache::ranger_cache (int not_executable_flag, bool use_imm_uses)
 						: m_gori (not_executable_flag),
 						  m_exit (use_imm_uses)
 {
-  m_workback.create (0);
-  m_workback.safe_grow_cleared (last_basic_block_for_fn (cfun));
-  m_workback.truncate (0);
+  m_workback = vNULL;
   m_temporal = new temporal_cache;
   // If DOM info is available, spawn an oracle as well.
   if (dom_info_available_p (CDI_DOMINATORS))
@@ -1510,7 +1508,7 @@ ranger_cache::fill_block_cache (tree name, basic_block bb, basic_block def_bb)
   // Visit each block back to the DEF.  Initialize each one to UNDEFINED.
   // m_visited at the end will contain all the blocks that we needed to set
   // the range_on_entry cache for.
-  m_workback.quick_push (bb);
+  m_workback.safe_push (bb);
   undefined.set_undefined ();
   m_on_entry.set_bb_range (name, bb, undefined);
   gcc_checking_assert (m_update->empty_p ());
@@ -1584,7 +1582,7 @@ ranger_cache::fill_block_cache (tree name, basic_block bb, basic_block def_bb)
 	  // the list.
 	  gcc_checking_assert (!m_on_entry.bb_range_p (name, pred));
 	  m_on_entry.set_bb_range (name, pred, undefined);
-	  m_workback.quick_push (pred);
+	  m_workback.safe_push (pred);
 	}
     }
 
@@ -1679,7 +1677,7 @@ ranger_cache::range_from_dom (vrange &r, tree name, basic_block start_bb,
 
       // This block has an outgoing range.
       if (m_gori.has_edge_range_p (name, bb))
-	m_workback.quick_push (prev_bb);
+	m_workback.safe_push (prev_bb);
       else
 	{
 	  // Normally join blocks don't carry any new range information on
@@ -1703,7 +1701,7 @@ ranger_cache::range_from_dom (vrange &r, tree name, basic_block start_bb,
 		    break;
 		  }
 	      if (all_dom)
-		m_workback.quick_push (prev_bb);
+		m_workback.safe_push (prev_bb);
 	    }
 	}
 
diff --git a/gcc/testsuite/gcc.dg/bitint-111.c b/gcc/testsuite/gcc.dg/bitint-111.c
new file mode 100644
index 00000000000..3cc23684c84
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bitint-111.c
@@ -0,0 +1,16 @@
+/* PR middle-end/116899 */
+/* { dg-do compile { target bitint575 } } */
+/* { dg-options "-O2" } */
+
+float f;
+_BitInt(255) b;
+
+void
+foo (signed char c)
+{
+  for (;;)
+    {
+      c %= (unsigned _BitInt(512)) 0;	/* { dg-warning "division by zero" } */
+      f /= b >= c;
+    }
+}

commit 68316afcb5028bc127f82f26dcaae5b0d3846a6c
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Oct 4 13:12:45 2024 +0200

    i386: Fix up ix86_expand_int_compare with TImode comparisons of SUBREGs from V8{H,B}Fmode against zero [PR116921]
    
    The following testcase ICEs, because the ix86_expand_int_compare
    optimization to use {,v}ptest assumes there are instructions for all
    16-byte vector modes.  That isn't the case, we only have one for
    V16QI, V8HI, V4SI, V2DI, V1TI, V4SF and V2DF, not for
    V8HF nor V8BF.
    
    The following patch fixes that by using the V8HI instruction instead
    for those 2 modes.  tmp can't be a SUBREG, because it is SUBREG_REG
    of another SUBREG, so we don't need to worry about gen_lowpart
    failing.
    
    2024-10-04  Jakub Jelinek  <jakub@redhat.com>
    
            PR target/116921
            * config/i386/i386-expand.cc (ix86_expand_int_compare): Add a SUBREG
            to V8HImode from V8HFmode or V8BFmode before generating a ptest.
    
            * gcc.target/i386/pr116921.c: New test.
    
    (cherry picked from commit 92e9e971ced90af5a825ae4b35ad6c98c9ab86da)

diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index 51efe6fdd7d..1a15388d909 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -3063,6 +3063,8 @@ ix86_expand_int_compare (enum rtx_code code, rtx op0, rtx op1)
       && GET_MODE_SIZE (GET_MODE (SUBREG_REG (op0))) == 16)
     {
       tmp = SUBREG_REG (op0);
+      if (GET_MODE (tmp) == V8HFmode || GET_MODE (tmp) == V8BFmode)
+	tmp = gen_lowpart (V8HImode, tmp);
       tmp = gen_rtx_UNSPEC (CCZmode, gen_rtvec (2, tmp, tmp), UNSPEC_PTEST);
     }
   else
diff --git a/gcc/testsuite/gcc.target/i386/pr116921.c b/gcc/testsuite/gcc.target/i386/pr116921.c
new file mode 100644
index 00000000000..8cd4cf93b76
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr116921.c
@@ -0,0 +1,12 @@
+/* PR target/116921 */
+/* { dg-do compile { target int128 } } */
+/* { dg-options "-O2 -msse4" } */
+
+long x;
+_Float16 __attribute__((__vector_size__ (16))) f;
+
+void
+foo (void)
+{
+  x -= !(__int128) (f / 2);
+}

commit 987a7b58bf2a00936ee2f418ace7c596450a17cb
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Aug 6 14:56:26 2024 +0200

    tree-optimization/116166 - forward jump-threading going wild
    
    Currently the forward threader isn't limited as to the search space
    it explores and with it now using path-ranger for simplifying
    conditions it runs into it became pretty slow for degenerate cases
    like compiling insn-emit.cc for RISC-V esp. when compiling for
    a host with LOGICAL_OP_NON_SHORT_CIRCUIT disabled.
    
    The following makes the forward threader honor the search space
    limit I introduced for the backward threader.  This reduces
    compile-time from minutes to seconds for the testcase in PR116166.
    
    Note this wasn't necessary before we had ranger but with ranger
    the work we do is quadatic in the length of the threading path
    we build up (the same is true for the backwards threader).
    
            PR tree-optimization/116166
            * tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
            Add limit parameter.
            (jump_threader::thread_through_normal_block): Likewise.
            * tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
            Honor and decrement limit parameter.
            (jump_threader::thread_through_normal_block): Likewise.
            (jump_threader::thread_across_edge): Initialize limit from
            param_max_jump_thread_paths and pass it down to workers.
    
    (cherry picked from commit 2cf89ae83225f932b226cd57ef2d083a59bcf8a3)

diff --git a/gcc/tree-ssa-threadedge.cc b/gcc/tree-ssa-threadedge.cc
index 2bae82a074b..50d49092f1c 100644
--- a/gcc/tree-ssa-threadedge.cc
+++ b/gcc/tree-ssa-threadedge.cc
@@ -786,13 +786,17 @@ propagate_threaded_block_debug_into (basic_block dest, basic_block src)
 bool
 jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
 					   edge taken_edge,
-					   bitmap visited)
+					   bitmap visited, unsigned &limit)
 {
   basic_block bb = taken_edge->dest;
   gimple_stmt_iterator gsi;
   gimple *stmt;
   tree cond;
 
+  if (limit == 0)
+    return false;
+  --limit;
+
   /* The key property of these blocks is that they need not be duplicated
      when threading.  Thus they cannot have visible side effects such
      as PHI nodes.  */
@@ -830,7 +834,8 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
 	      m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
 	      m_state->append_path (taken_edge->dest);
 	      bitmap_set_bit (visited, taken_edge->dest->index);
-	      return thread_around_empty_blocks (path, taken_edge, visited);
+	      return thread_around_empty_blocks (path, taken_edge, visited,
+						 limit);
 	    }
 	}
 
@@ -872,7 +877,7 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
       m_registry->push_edge (path, taken_edge, EDGE_NO_COPY_SRC_BLOCK);
       m_state->append_path (taken_edge->dest);
 
-      thread_around_empty_blocks (path, taken_edge, visited);
+      thread_around_empty_blocks (path, taken_edge, visited, limit);
       return true;
     }
 
@@ -899,8 +904,13 @@ jump_threader::thread_around_empty_blocks (vec<jump_thread_edge *> *path,
 
 int
 jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
-					    edge e, bitmap visited)
+					    edge e, bitmap visited,
+					    unsigned &limit)
 {
+  if (limit == 0)
+    return 0;
+  limit--;
+
   m_state->register_equivs_edge (e);
 
   /* PHIs create temporary equivalences.
@@ -989,7 +999,7 @@ jump_threader::thread_through_normal_block (vec<jump_thread_edge *> *path,
  	     visited.  This may be overly conservative.  */
 	  bitmap_set_bit (visited, dest->index);
 	  bitmap_set_bit (visited, e->dest->index);
-	  thread_around_empty_blocks (path, taken_edge, visited);
+	  thread_around_empty_blocks (path, taken_edge, visited, limit);
 	  return 1;
 	}
     }
@@ -1075,9 +1085,12 @@ jump_threader::thread_across_edge (edge e)
   bitmap_set_bit (visited, e->src->index);
   bitmap_set_bit (visited, e->dest->index);
 
+  /* Limit search space.  */
+  unsigned limit = param_max_jump_thread_paths;
+
   int threaded = 0;
   if ((e->flags & EDGE_DFS_BACK) == 0)
-    threaded = thread_through_normal_block (path, e, visited);
+    threaded = thread_through_normal_block (path, e, visited, limit);
 
   if (threaded > 0)
     {
@@ -1148,11 +1161,12 @@ jump_threader::thread_across_edge (edge e)
 	m_registry->push_edge (path, e, EDGE_START_JUMP_THREAD);
 	m_registry->push_edge (path, taken_edge, EDGE_COPY_SRC_JOINER_BLOCK);
 
-	found = thread_around_empty_blocks (path, taken_edge, visited);
+	found = thread_around_empty_blocks (path, taken_edge, visited, limit);
 
 	if (!found)
 	  found = thread_through_normal_block (path,
-					       path->last ()->e, visited) > 0;
+					       path->last ()->e, visited,
+					       limit) > 0;
 
 	/* If we were able to thread through a successor of E->dest, then
 	   record the jump threading opportunity.  */
diff --git a/gcc/tree-ssa-threadedge.h b/gcc/tree-ssa-threadedge.h
index 9f6cbfe9330..245b3506a55 100644
--- a/gcc/tree-ssa-threadedge.h
+++ b/gcc/tree-ssa-threadedge.h
@@ -101,9 +101,9 @@ private:
 					  unsigned limit);
 
   bool thread_around_empty_blocks (vec<class jump_thread_edge *> *path,
-				   edge, bitmap visited);
+				   edge, bitmap visited, unsigned &limit);
   int thread_through_normal_block (vec<jump_thread_edge *> *path,
-				   edge, bitmap visited);
+				   edge, bitmap visited, unsigned &limit);
   void thread_across_edge (edge);
   bool record_temporary_equivalences_from_phis (edge);
   gimple *record_temporary_equivalences_from_stmts_at_dest (edge);

commit 18bc415ae28643d07c3d7116d3cf8484c1a9c1ba
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Sep 19 14:58:18 2024 +0200

    tree-optimization/116768 - wrong dependence analysis
    
    The following reverts a bogus fix done for PR101009 and instead makes
    sure we get into the same_access_functions () case when computing
    the distance vector for g[1] and g[1] where the constants ended up
    having different types.  The generic code doesn't seem to handle
    loop invariant dependences.  The special case gets us both
    ( 0 ) and ( 1 ) as distance vectors while formerly we got ( 1 ),
    which the PR101009 fix changed to ( 0 ) with bad effects on other
    cases as shown in this PR.
    
            PR tree-optimization/116768
            * tree-data-ref.cc (build_classic_dist_vector_1): Revert
            PR101009 change.
            * tree-chrec.cc (eq_evolutions_p): Make sure (sizetype)1
            and (int)1 compare equal.
    
            * gcc.dg/torture/pr116768.c: New testcase.
    
    (cherry picked from commit 5b5a36b122e1205449f1512bf39521b669e713ef)

diff --git a/gcc/testsuite/gcc.dg/torture/pr116768.c b/gcc/testsuite/gcc.dg/torture/pr116768.c
new file mode 100644
index 00000000000..57b5d00e7b7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr116768.c
@@ -0,0 +1,32 @@
+/* { dg-do run } */
+
+#define numwords 2
+
+typedef struct {
+  unsigned words[numwords];
+} Child;
+
+typedef struct {
+  Child child;
+} Parent;
+
+Parent my_or(Parent x, const Parent *y) {
+  const Child *y_child = &y->child;
+  for (int i = 0; i < numwords; i++) {
+    x.child.words[i] |= y_child->words[i];
+  }
+  return x;
+}
+
+int main() {
+  Parent bs[4];
+  __builtin_memset(bs, 0, sizeof(bs));
+
+  bs[0].child.words[0] = 1;
+  for (int i = 1; i <= 3; i++) {
+    bs[i] = my_or(bs[i], &bs[i - 1]);
+  }
+  if (bs[2].child.words[0] != 1)
+    __builtin_abort ();
+  return 0;
+}
diff --git a/gcc/tree-chrec.cc b/gcc/tree-chrec.cc
index 8b7982a2dbe..9b272074a2e 100644
--- a/gcc/tree-chrec.cc
+++ b/gcc/tree-chrec.cc
@@ -1716,7 +1716,7 @@ eq_evolutions_p (const_tree chrec0, const_tree chrec1)
       || TREE_CODE (chrec0) != TREE_CODE (chrec1))
     return false;
 
-  if (chrec0 == chrec1)
+  if (operand_equal_p (chrec0, chrec1, 0))
     return true;
 
   if (! types_compatible_p (TREE_TYPE (chrec0), TREE_TYPE (chrec1)))
@@ -1743,7 +1743,7 @@ eq_evolutions_p (const_tree chrec0, const_tree chrec1)
 			      TREE_OPERAND (chrec1, 0));
 
     default:
-      return operand_equal_p (chrec0, chrec1, 0);
+      return false;
     }
 }
 
diff --git a/gcc/tree-data-ref.cc b/gcc/tree-data-ref.cc
index 69b421f3c94..c9982e2b43d 100644
--- a/gcc/tree-data-ref.cc
+++ b/gcc/tree-data-ref.cc
@@ -5200,8 +5200,6 @@ build_classic_dist_vector_1 (struct data_dependence_relation *ddr,
 	  non_affine_dependence_relation (ddr);
 	  return false;
 	}
-      else
-	*init_b = true;
     }
 
   return true;

commit 32bc20d326dda7f9789de31b391b2a57bcf01358
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Sep 26 15:41:59 2024 +0200

    tree-optimization/116850 - corrupt post-dom info
    
    Path isolation computes post-dominators on demand but can end up
    splitting blocks after that, wrecking it.  We can delay splitting
    of blocks until we no longer need the post-dom info which is what
    the following patch does to solve the issue.
    
            PR tree-optimization/116850
            * gimple-ssa-isolate-paths.cc (bb_split_points): New global.
            (insert_trap): Delay BB splitting if post-doms are computed.
            (find_explicit_erroneous_behavior): Process delayed BB
            splitting after releasing post dominators.
            (gimple_ssa_isolate_erroneous_paths): Do not free post-dom
            info here.
    
            * gcc.dg/pr116850.c: New testcase.
    
    (cherry picked from commit 64163657ba7e70347087a63bb2b32d83b52ea7d9)

diff --git a/gcc/gimple-ssa-isolate-paths.cc b/gcc/gimple-ssa-isolate-paths.cc
index fae18db0c1d..55a516987db 100644
--- a/gcc/gimple-ssa-isolate-paths.cc
+++ b/gcc/gimple-ssa-isolate-paths.cc
@@ -62,6 +62,8 @@ check_loadstore (gimple *stmt, tree op, tree, void *data)
   return false;
 }
 
+static vec<gimple *> *bb_split_points;
+
 /* Insert a trap after SI and split the block after the trap.  */
 
 static void
@@ -104,14 +106,20 @@ insert_trap (gimple_stmt_iterator *si_p, tree op)
       gsi_insert_after (si_p, seq, GSI_NEW_STMT);
       if (stmt_ends_bb_p (stmt))
 	{
-	  split_block (gimple_bb (stmt), stmt);
+	  if (dom_info_available_p (CDI_POST_DOMINATORS))
+	    bb_split_points->safe_push (stmt);
+	  else
+	    split_block (gimple_bb (stmt), stmt);
 	  return;
 	}
     }
   else
     gsi_insert_before (si_p, seq, GSI_NEW_STMT);
 
-  split_block (gimple_bb (new_stmt), new_stmt);
+  if (dom_info_available_p (CDI_POST_DOMINATORS))
+    bb_split_points->safe_push (new_stmt);
+  else
+    split_block (gimple_bb (new_stmt), new_stmt);
   *si_p = gsi_for_stmt (stmt);
 }
 
@@ -842,6 +850,8 @@ static void
 find_explicit_erroneous_behavior (void)
 {
   basic_block bb;
+  auto_vec<gimple *> local_bb_split_points;
+  bb_split_points = &local_bb_split_points;
 
   FOR_EACH_BB_FN (bb, cfun)
     {
@@ -883,6 +893,14 @@ find_explicit_erroneous_behavior (void)
 	    warn_return_addr_local (bb, return_stmt);
 	}
     }
+
+  free_dominance_info (CDI_POST_DOMINATORS);
+
+  /* Perform delayed splitting of blocks.  */
+  for (gimple *stmt : local_bb_split_points)
+    split_block (gimple_bb (stmt), stmt);
+
+  bb_split_points = NULL;
 }
 
 /* Search the function for statements which, if executed, would cause
@@ -939,7 +957,6 @@ gimple_ssa_isolate_erroneous_paths (void)
   /* We scramble the CFG and loop structures a bit, clean up
      appropriately.  We really should incrementally update the
      loop structures, in theory it shouldn't be that hard.  */
-  free_dominance_info (CDI_POST_DOMINATORS);
   if (cfg_altered)
     {
       free_dominance_info (CDI_DOMINATORS);
diff --git a/gcc/testsuite/gcc.dg/pr116850.c b/gcc/testsuite/gcc.dg/pr116850.c
new file mode 100644
index 00000000000..7ab5da1848b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr116850.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-Os -w" } */
+
+int a, b;
+int *c()
+{
+  int d, *e = 0, *f = &d, *g = &a;
+  if (b)
+    g = 0;
+  *e = *g;
+  return f;
+}

commit ae4b9dcff314644d8d6660b7d8649a4911cb88f8
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Sep 30 13:38:28 2024 +0200

    tree-optimization/116879 - failure to recognize non-empty latch
    
    When we relaxed the vectorizers constraint on loop structure verifying
    the emptiness of the latch became too lose as can be seen in the case
    for PR116879 where the latch effectively contains two basic-blocks
    which one being an unmerged forwarder that's not empty.
    
            PR tree-optimization/116879
            * tree-vect-loop.cc (vect_analyze_loop_form): Scan all
            blocks that form the latch.
    
            * gcc.dg/pr116879.c: New testcase.
    
    (cherry picked from commit 18e905b461a7138185cf4f0efde4a4e1214fb798)

diff --git a/gcc/testsuite/gcc.dg/pr116879.c b/gcc/testsuite/gcc.dg/pr116879.c
new file mode 100644
index 00000000000..73ddb2b658c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr116879.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -ftree-vectorize -fallow-store-data-races -fno-tree-ch -ftree-loop-distribution" } */
+
+static int b;
+int *a, c, *d = &c;
+int main() {
+  int e = 0;
+  for (; e < 8; e = (char)(e + 1)) {
+    int *f = &b, g[8], h = 0;
+    for (; h < 8; h++)
+      g[h] = 0;
+    --*f != (*d = g[0] || a);
+  }
+  return 0;
+}
diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index dcd61292caf..d5504930a99 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -1848,10 +1848,17 @@ vect_analyze_loop_form (class loop *loop, vect_loop_form_info *info)
 				   " too many incoming edges.\n");
 
   /* We assume that the latch is empty.  */
-  if (!empty_block_p (loop->latch)
-      || !gimple_seq_empty_p (phi_nodes (loop->latch)))
-    return opt_result::failure_at (vect_location,
-				   "not vectorized: latch block not empty.\n");
+  basic_block latch = loop->latch;
+  do
+    {
+      if (!empty_block_p (latch)
+	  || !gimple_seq_empty_p (phi_nodes (latch)))
+	return opt_result::failure_at (vect_location,
+				       "not vectorized: latch block not "
+				       "empty.\n");
+      latch = single_pred (latch);
+    }
+  while (single_succ_p (latch));
 
   /* Make sure there is no abnormal exit.  */
   auto_vec<edge> exits = get_loop_exit_edges (loop);

commit 50d0fda4905b01bce87a6a733fe23c70cee3860a
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Oct 7 11:24:12 2024 +0200

    tree-optimization/116990 - missed control flow check in vect_analyze_loop_form
    
    The following fixes checking for unsupported control flow in
    vectorization to also cover the outer loop body.
    
            PR tree-optimization/116990
            * tree-vect-loop.cc (vect_analyze_loop_form): Check the current
            loop body for control flow.
    
    (cherry picked from commit b0b71618157ddac52266909978f331406f98f3a2)

diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index d5504930a99..744044735d3 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -1751,9 +1751,8 @@ vect_analyze_loop_form (class loop *loop, vect_loop_form_info *info)
 		       exit_e->src->index, exit_e->dest->index, exit_e->aux);
 
   /* Check if we have any control flow that doesn't leave the loop.  */
-  class loop *v_loop = loop->inner ? loop->inner : loop;
-  basic_block *bbs = get_loop_body (v_loop);
-  for (unsigned i = 0; i < v_loop->num_nodes; i++)
+  basic_block *bbs = get_loop_body (loop);
+  for (unsigned i = 0; i < loop->num_nodes; i++)
     if (EDGE_COUNT (bbs[i]->succs) != 1
 	&& (EDGE_COUNT (bbs[i]->succs) != 2
 	    || !loop_exits_from_bb_p (bbs[i]->loop_father, bbs[i])))

commit 6638d6ed0f1ce04d6a5a20317b457fa4e3a1c740
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Oct 11 11:46:45 2024 +0200

    middle-end/117086 - fixup vec_cond simplifications
    
    The following adds missing checks for a vector type result type
    to simplifications that end up creating a vec_cond.
    
            PR middle-end/117086
            * match.pd ((op (vec_cond ...) ..) -> (vec_cond ...)): Add
            missing checks for VECTOR_TYPE_P (type).
    
            * gcc.dg/torture/pr117086.c: New testcase.
    
    (cherry picked from commit c64ae8377210bde44714d265311ee7bfa2733df9)

diff --git a/gcc/match.pd b/gcc/match.pd
index 4a0aa80cee1..41afdfbe59d 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -5165,35 +5165,38 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
 /* (c ? a : b) op (c ? d : e)  -->  c ? (a op d) : (b op e) */
  (simplify
   (op (vec_cond:s @0 @1 @2) (vec_cond:s @0 @3 @4))
-  (if (TREE_CODE_CLASS (op) != tcc_comparison
-       || types_match (type, TREE_TYPE (@1))
-       || expand_vec_cond_expr_p (type, TREE_TYPE (@0), ERROR_MARK)
-       || (optimize_vectors_before_lowering_p ()
-	   /* The following is optimistic on the side of non-support, we are
-	      missing the legacy vcond{,u,eq} cases.  Do this only when
-	      lowering will be able to fixup..  */
-	   && !expand_vec_cond_expr_p (TREE_TYPE (@1),
-				       TREE_TYPE (@0), ERROR_MARK)))
+  (if (VECTOR_TYPE_P (type)
+       && (TREE_CODE_CLASS (op) != tcc_comparison
+	   || types_match (type, TREE_TYPE (@1))
+	   || expand_vec_cond_expr_p (type, TREE_TYPE (@0), ERROR_MARK)
+	   || (optimize_vectors_before_lowering_p ()
+	       /* The following is optimistic on the side of non-support, we are
+		  missing the legacy vcond{,u,eq} cases.  Do this only when
+		  lowering will be able to fixup..  */
+	       && !expand_vec_cond_expr_p (TREE_TYPE (@1),
+					   TREE_TYPE (@0), ERROR_MARK))))
    (vec_cond @0 (op! @1 @3) (op! @2 @4))))
 
 /* (c ? a : b) op d  -->  c ? (a op d) : (b op d) */
  (simplify
   (op (vec_cond:s @0 @1 @2) @3)
-  (if (TREE_CODE_CLASS (op) != tcc_comparison
-       || types_match (type, TREE_TYPE (@1))
-       || expand_vec_cond_expr_p (type, TREE_TYPE (@0), ERROR_MARK)
-       || (optimize_vectors_before_lowering_p ()
-	   && !expand_vec_cond_expr_p (TREE_TYPE (@1),
-				       TREE_TYPE (@0), ERROR_MARK)))
+  (if (VECTOR_TYPE_P (type)
+       && (TREE_CODE_CLASS (op) != tcc_comparison
+	   || types_match (type, TREE_TYPE (@1))
+	   || expand_vec_cond_expr_p (type, TREE_TYPE (@0), ERROR_MARK)
+	   || (optimize_vectors_before_lowering_p ()
+	       && !expand_vec_cond_expr_p (TREE_TYPE (@1),
+					   TREE_TYPE (@0), ERROR_MARK))))
    (vec_cond @0 (op! @1 @3) (op! @2 @3))))
  (simplify
   (op @3 (vec_cond:s @0 @1 @2))
-  (if (TREE_CODE_CLASS (op) != tcc_comparison
-       || types_match (type, TREE_TYPE (@1))
-       || expand_vec_cond_expr_p (type, TREE_TYPE (@0), ERROR_MARK)
-       || (optimize_vectors_before_lowering_p ()
-	   && !expand_vec_cond_expr_p (TREE_TYPE (@1),
-				       TREE_TYPE (@0), ERROR_MARK)))
+  (if (VECTOR_TYPE_P (type)
+       && (TREE_CODE_CLASS (op) != tcc_comparison
+	   || types_match (type, TREE_TYPE (@1))
+	   || expand_vec_cond_expr_p (type, TREE_TYPE (@0), ERROR_MARK)
+	   || (optimize_vectors_before_lowering_p ()
+	       && !expand_vec_cond_expr_p (TREE_TYPE (@1),
+					   TREE_TYPE (@0), ERROR_MARK))))
    (vec_cond @0 (op! @3 @1) (op! @3 @2)))))
 
 #if GIMPLE
diff --git a/gcc/testsuite/gcc.dg/torture/pr117086.c b/gcc/testsuite/gcc.dg/torture/pr117086.c
new file mode 100644
index 00000000000..cee19c91de2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr117086.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=znver5" { target { x86_64-*-* i?86-*-* } } } */
+
+void fancy_abort(const char *, int, const char *);
+int usage_insns_0_0;
+void inherit_in_ebb() {
+  int abis = 0;
+  for (int i = 0; i < 8; ++i)
+    if (i > usage_insns_0_0)
+      abis |= i;
+  abis ? fancy_abort("", 0, __FUNCTION__), 0 : 0;
+}

commit 81fd5bfdcbcaa5e2a841d793e1eecb045da02551
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Oct 9 11:42:59 2024 +0200

    tree-optimization/117041 - fix load classification of former grouped load
    
    When we first detect a grouped load but later dis-associate it we
    only set DR_GROUP_FIRST_ELEMENT to NULL, indicating it is not a
    STMT_VINFO_GROUPED_ACCESS but leave DR_GROUP_NEXT_ELEMENT set.  This
    causes a stray DR_GROUP_NEXT_ELEMENT access in get_group_load_store_type
    to go wrong, indicating a load isn't single_element_p when it actually
    is, leading to wrong classification and an ICE.
    
            PR tree-optimization/117041
            * tree-vect-stmts.cc (get_group_load_store_type): Only
            check DR_GROUP_NEXT_ELEMENT for STMT_VINFO_GROUPED_ACCESS.
    
            * gcc.dg/torture/pr117041.c: New testcase.
    
    (cherry picked from commit 72c83f644dea755b4eba427aabde45f5d3694d9b)

diff --git a/gcc/testsuite/gcc.dg/torture/pr117041.c b/gcc/testsuite/gcc.dg/torture/pr117041.c
new file mode 100644
index 00000000000..09dbbf4c00f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr117041.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+
+unsigned short a;
+int b, c[7][6];
+int main() {
+  for (a = 0; a < 6; a++)
+    for (b = 5; b; b--)
+      c[a][b] = c[a+1][b];
+  return 0;
+}
diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index a25ac53a4cd..a78f1d0e2cc 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -1993,21 +1993,23 @@ get_group_load_store_type (vec_info *vinfo, stmt_vec_info stmt_info,
   stmt_vec_info first_stmt_info;
   unsigned int group_size;
   unsigned HOST_WIDE_INT gap;
+  bool single_element_p;
   if (STMT_VINFO_GROUPED_ACCESS (stmt_info))
     {
       first_stmt_info = DR_GROUP_FIRST_ELEMENT (stmt_info);
       group_size = DR_GROUP_SIZE (first_stmt_info);
       gap = DR_GROUP_GAP (first_stmt_info);
+      single_element_p = (stmt_info == first_stmt_info
+			  && !DR_GROUP_NEXT_ELEMENT (stmt_info));
     }
   else
     {
       first_stmt_info = stmt_info;
       group_size = 1;
       gap = 0;
+      single_element_p = true;
     }
   dr_vec_info *first_dr_info = STMT_VINFO_DR_INFO (first_stmt_info);
-  bool single_element_p = (stmt_info == first_stmt_info
-			   && !DR_GROUP_NEXT_ELEMENT (stmt_info));
   poly_uint64 nunits = TYPE_VECTOR_SUBPARTS (vectype);
 
   /* True if the vectorized statements would access beyond the last

commit d8ac855f796b0cf47d80c713d2f01943dffec0b7
Author: Sam James <sam@gentoo.org>
Date:   Mon Jul 29 21:47:16 2024 +0100

    testsuite: fix PR111613 test
    
            PR ipa/111613
            * gcc.c-torture/pr111613.c: Rename to..
            * gcc.c-torture/execute/pr111613.c: ...this.
    
    (cherry picked from commit 5e5d7a88932b132437069f716160f8b20862890b)

diff --git a/gcc/testsuite/gcc.c-torture/pr111613.c b/gcc/testsuite/gcc.c-torture/execute/pr111613.c
similarity index 100%
rename from gcc/testsuite/gcc.c-torture/pr111613.c
rename to gcc/testsuite/gcc.c-torture/execute/pr111613.c

commit 20131c1cb58418432326a5f6464050e83af409ec
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Oct 14 00:22:05 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5f08248cd7a..633560a0c6f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,138 @@
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-09  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117041
+	* tree-vect-stmts.cc (get_group_load_store_type): Only
+	check DR_GROUP_NEXT_ELEMENT for STMT_VINFO_GROUPED_ACCESS.
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-11  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/117086
+	* match.pd ((op (vec_cond ...) ..) -> (vec_cond ...)): Add
+	missing checks for VECTOR_TYPE_P (type).
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-07  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116990
+	* tree-vect-loop.cc (vect_analyze_loop_form): Check the current
+	loop body for control flow.
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-09-30  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116879
+	* tree-vect-loop.cc (vect_analyze_loop_form): Scan all
+	blocks that form the latch.
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-09-30  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116850
+	* gimple-ssa-isolate-paths.cc (bb_split_points): New global.
+	(insert_trap): Delay BB splitting if post-doms are computed.
+	(find_explicit_erroneous_behavior): Process delayed BB
+	splitting after releasing post dominators.
+	(gimple_ssa_isolate_erroneous_paths): Do not free post-dom
+	info here.
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-09-19  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116768
+	* tree-data-ref.cc (build_classic_dist_vector_1): Revert
+	PR101009 change.
+	* tree-chrec.cc (eq_evolutions_p): Make sure (sizetype)1
+	and (int)1 compare equal.
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-08-07  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116166
+	* tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
+	Add limit parameter.
+	(jump_threader::thread_through_normal_block): Likewise.
+	* tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
+	Honor and decrement limit parameter.
+	(jump_threader::thread_through_normal_block): Likewise.
+	(jump_threader::thread_across_edge): Initialize limit from
+	param_max_jump_thread_paths and pass it down to workers.
+
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-04  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/116921
+	* config/i386/i386-expand.cc (ix86_expand_int_compare): Add a SUBREG
+	to V8HImode from V8HFmode or V8BFmode before generating a ptest.
+
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/116899
+	* gimple-range-cache.cc (ranger_cache::ranger_cache): Set m_workback
+	to vNULL instead of creating it, growing and then truncating.
+	(ranger_cache::fill_block_cache): Use safe_push rather than quick_push
+	on m_workback.
+	(ranger_cache::range_from_dom): Likewise.
+
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/116898
+	* gimple-range-cache.cc (ranger_cache::block_range): If a SSA_NAME
+	with NULL def_bb isn't SSA_NAME_IS_DEFAULT_DEF, return false instead
+	of failing assertion.  Formatting fix.
+
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-29  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/116627
+	* cselib.cc (remove_useless_values): Discard useless locs
+	even from preserved cselib_vals in cselib_preserved_hash_table
+	hash table.
+
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-20  Uros Bizjak  <ubizjak@gmail.com>
+		    Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/116738
+	* config/i386/subst.md (mask_scalar_operand_arg34,
+	mask_scalar_expand_op3, round_saeonly_scalar_mask_arg3): New
+	subst attributes.
+	* config/i386/sse.md
+	(<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
+	Change from define_insn to define_expand, rename the old define_insn
+	to ...
+	(*<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
+	... this.
+	(<sse>_ieee_vm<ieee_maxmin><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
+	New define_insn.
+
 2024-10-08  Jan Beulich  <jbeulich@suse.com>
 
 	* config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>,
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index dcf1ca303e9..d04e3ab9041 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241013
+20241014
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ac5dd8c49e5..f78430172e3 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,13 @@
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-13  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/116678
+	* optimize.cc: Include decl.h.
+	(maybe_thunk_body): Temporarily change deprecated_state to
+	UNAVAILABLE_DEPRECATED_SUPPRESS.
+
 2024-10-01  Jason Merrill  <jason@redhat.com>
 
 	PR c++/115361
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cfadd1742c0..654b2eaaf3a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,93 @@
+2024-10-13  Sam James  <sam@gentoo.org>
+
+	Backported from master:
+	2024-07-29  Sam James  <sam@gentoo.org>
+
+	PR ipa/111613
+	* gcc.c-torture/pr111613.c: Rename to..
+	* gcc.c-torture/execute/pr111613.c: ...this.
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-09  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117041
+	* gcc.dg/torture/pr117041.c: New testcase.
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-11  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/117086
+	* gcc.dg/torture/pr117086.c: New testcase.
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-09-30  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116879
+	* gcc.dg/pr116879.c: New testcase.
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-09-30  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116850
+	* gcc.dg/pr116850.c: New testcase.
+
+2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-09-19  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116768
+	* gcc.dg/torture/pr116768.c: New testcase.
+
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-04  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/116921
+	* gcc.target/i386/pr116921.c: New test.
+
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/116899
+	* gcc.dg/bitint-111.c: New test.
+
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-01  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/116898
+	* gcc.dg/bitint-110.c: New test.
+
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-20  Uros Bizjak  <ubizjak@gmail.com>
+		    Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/116738
+	* gcc.target/i386/sse-pr116738.c: New test.
+
+2024-10-13  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-09-13  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/116678
+	* g++.dg/warn/deprecated-20.C: New test.
+
 2024-10-10  Richard Ball  <richard.ball@arm.com>
 
 	Backported from master:

commit fe0692f689a18c432d6f59f404d4cd020cbebef2
Author: liuhongt <hongtao.liu@intel.com>
Date:   Tue Sep 24 15:53:14 2024 +0800

    Add new microarchitecture tune for SRF/GRR/CWF.
    
    For Crestmont, 4-operand vex blendv instructions come from MSROM and
    is slower than 3-instructions sequence (op1 & mask) | (op2 & ~mask).
    legacy blendv instruction can still be handled by the decoder.
    
    The patch add a new tune which is enabled for all processors except
    for SRF/CWF. It will use vpand + vpandn + vpor instead of
    vpblendvb(similar for vblendvps/vblendvpd) for SRF/CWF.
    
    gcc/ChangeLog:
    
            * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Guard
            instruction blendv generation under new tune.
            * config/i386/i386.h (TARGET_SSE_MOVCC_USE_BLENDV): New Macro.
            * config/i386/x86-tune.def (X86_TUNE_SSE_MOVCC_USE_BLENDV):
            New tune.
    
    (cherry picked from commit 9c8cea8feb6cd54ef73113a0b74f1df7b60d09dc)

diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index 1a15388d909..cad8b6d5884 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -4222,23 +4222,23 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp, rtx op_true, rtx op_false)
   switch (mode)
     {
     case E_V2SFmode:
-      if (TARGET_SSE4_1)
+      if (TARGET_SSE_MOVCC_USE_BLENDV && TARGET_SSE4_1)
 	gen = gen_mmx_blendvps;
       break;
     case E_V4SFmode:
-      if (TARGET_SSE4_1)
+      if (TARGET_SSE_MOVCC_USE_BLENDV && TARGET_SSE4_1)
 	gen = gen_sse4_1_blendvps;
       break;
     case E_V2DFmode:
-      if (TARGET_SSE4_1)
+      if (TARGET_SSE_MOVCC_USE_BLENDV && TARGET_SSE4_1)
 	gen = gen_sse4_1_blendvpd;
       break;
     case E_SFmode:
-      if (TARGET_SSE4_1)
+      if (TARGET_SSE_MOVCC_USE_BLENDV && TARGET_SSE4_1)
 	gen = gen_sse4_1_blendvss;
       break;
     case E_DFmode:
-      if (TARGET_SSE4_1)
+      if (TARGET_SSE_MOVCC_USE_BLENDV && TARGET_SSE4_1)
 	gen = gen_sse4_1_blendvsd;
       break;
     case E_V8QImode:
@@ -4246,7 +4246,7 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp, rtx op_true, rtx op_false)
     case E_V4HFmode:
     case E_V4BFmode:
     case E_V2SImode:
-      if (TARGET_SSE4_1)
+      if (TARGET_SSE_MOVCC_USE_BLENDV && TARGET_SSE4_1)
 	{
 	  gen = gen_mmx_pblendvb_v8qi;
 	  blend_mode = V8QImode;
@@ -4256,14 +4256,14 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp, rtx op_true, rtx op_false)
     case E_V2HImode:
     case E_V2HFmode:
     case E_V2BFmode:
-      if (TARGET_SSE4_1)
+      if (TARGET_SSE_MOVCC_USE_BLENDV && TARGET_SSE4_1)
 	{
 	  gen = gen_mmx_pblendvb_v4qi;
 	  blend_mode = V4QImode;
 	}
       break;
     case E_V2QImode:
-      if (TARGET_SSE4_1)
+      if (TARGET_SSE_MOVCC_USE_BLENDV && TARGET_SSE4_1)
 	gen = gen_mmx_pblendvb_v2qi;
       break;
     case E_V16QImode:
@@ -4273,18 +4273,18 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp, rtx op_true, rtx op_false)
     case E_V4SImode:
     case E_V2DImode:
     case E_V1TImode:
-      if (TARGET_SSE4_1)
+      if (TARGET_SSE_MOVCC_USE_BLENDV && TARGET_SSE4_1)
 	{
 	  gen = gen_sse4_1_pblendvb;
 	  blend_mode = V16QImode;
 	}
       break;
     case E_V8SFmode:
-      if (TARGET_AVX)
+      if (TARGET_AVX && TARGET_SSE_MOVCC_USE_BLENDV)
 	gen = gen_avx_blendvps256;
       break;
     case E_V4DFmode:
-      if (TARGET_AVX)
+      if (TARGET_AVX && TARGET_SSE_MOVCC_USE_BLENDV)
 	gen = gen_avx_blendvpd256;
       break;
     case E_V32QImode:
@@ -4293,7 +4293,7 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp, rtx op_true, rtx op_false)
     case E_V16BFmode:
     case E_V8SImode:
     case E_V4DImode:
-      if (TARGET_AVX2)
+      if (TARGET_AVX2 && TARGET_SSE_MOVCC_USE_BLENDV)
 	{
 	  gen = gen_avx2_pblendvb;
 	  blend_mode = V32QImode;
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 6272d40bcc5..89bc894fcd1 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -461,6 +461,8 @@ extern unsigned char ix86_tune_features[X86_TUNE_LAST];
 	ix86_tune_features[X86_TUNE_DEST_FALSE_DEP_FOR_GLC]
 #define TARGET_SLOW_STC ix86_tune_features[X86_TUNE_SLOW_STC]
 #define TARGET_USE_RCR ix86_tune_features[X86_TUNE_USE_RCR]
+#define TARGET_SSE_MOVCC_USE_BLENDV \
+	ix86_tune_features[X86_TUNE_SSE_MOVCC_USE_BLENDV]
 
 /* Feature tests against the various architecture variations.  */
 enum ix86_arch_indices {
diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def
index 6d56e702dc3..58d11a066c5 100644
--- a/gcc/config/i386/x86-tune.def
+++ b/gcc/config/i386/x86-tune.def
@@ -540,6 +540,14 @@ DEF_TUNE (X86_TUNE_AVOID_512FMA_CHAINS, "avoid_fma512_chains", m_ZNVER5)
 DEF_TUNE (X86_TUNE_V2DF_REDUCTION_PREFER_HADDPD,
 	  "v2df_reduction_prefer_haddpd", m_NONE)
 
+/* X86_TUNE_SSE_MOVCC_USE_BLENDV: Prefer blendv instructions to
+   3-instruction sequence (op1 & mask) | (op2 & ~mask)
+   for vector condition move.
+   For Crestmont, 4-operand vex blendv instructions come from MSROM
+   which is slow.  */
+DEF_TUNE (X86_TUNE_SSE_MOVCC_USE_BLENDV,
+	  "sse_movcc_use_blendv", ~m_CORE_ATOM)
+
 /*****************************************************************************/
 /* AVX instruction selection tuning (some of SSE flags affects AVX, too)     */
 /*****************************************************************************/
diff --git a/gcc/testsuite/gcc.target/i386/sse_movcc_use_blendv.c b/gcc/testsuite/gcc.target/i386/sse_movcc_use_blendv.c
new file mode 100644
index 00000000000..ac9f1524949
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/sse_movcc_use_blendv.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-march=sierraforest -O2" } */
+/* { dg-final { scan-assembler-not {(?n)vp?blendv(b|ps|pd)} } } */
+
+void
+foo (int* a, int* b, int* __restrict c)
+{
+  for (int i = 0; i != 200; i++)
+    {
+      c[i] += a[i] > b[i] ? 1 : -1;
+    }
+}

commit 9b7d5ecbecfbd193899648e411f1a9b2a77471e2
Author: liuhongt <hongtao.liu@intel.com>
Date:   Wed Sep 25 13:11:11 2024 +0800

    Add a new tune avx256_avoid_vec_perm for SRF.
    
    According to Intel SOM[1], For Crestmont,  most 256-bit Intel AVX2
    instructions can be decomposed into two independent 128-bit
    micro-operations, except for a subset of Intel AVX2 instructions,
    known as cross-lane operations, can only compute the result for an
    element by utilizing one or more sources belonging to other elements.
    
    The 256-bit instructions listed below use more operand sources than
    can be natively supported by a single reservation station within these
    microarchitectures. They are decomposed into two μops, where the first
    μop resolves a subset of operand dependencies across two cycles. The
    dependent second μop executes the 256-bit operation by using a single
    128-bit execution port for two consecutive cycles with a five-cycle
    latency for a total latency of seven cycles.
    
    VPERM2I128 ymm1, ymm2, ymm3/m256, imm8
    VPERM2F128 ymm1, ymm2, ymm3/m256, imm8
    VPERMPD ymm1, ymm2/m256, imm8
    VPERMPS ymm1, ymm2, ymm3/m256
    VPERMD ymm1, ymm2, ymm3/m256
    VPERMQ ymm1, ymm2/m256, imm8
    
    Instead of setting tune avx128_optimal for SRF, the patch add a new
    tune avx256_avoid_vec_perm for it. so by default, vectorizer still
    uses 256-bit VF if cost is profitable, but lowers to 128-bit whenever
    256-bit vec_perm is needed for auto-vectorization. w/o vec_perm,
    performance of 256-bit vectorization should be similar as 128-bit
    ones(some benchmark results show it's even better than 128-bit
    vectorization since it enables more parallelism for convert cases.)
    
    [1] https://www.intel.com/content/www/us/en/content-details/814198/intel-64-and-ia-32-architectures-optimization-reference-manual-volume-1.html
    
    gcc/ChangeLog:
    
            * config/i386/i386.cc (ix86_vector_costs::ix86_vector_costs):
            Add new member m_num_avx256_vec_perm.
            (ix86_vector_costs::add_stmt_cost): Record 256-bit vec_perm.
            (ix86_vector_costs::finish_cost): Prevent vectorization for
            TAREGT_AVX256_AVOID_VEC_PERM when there's 256-bit vec_perm
            instruction.
            * config/i386/i386.h (TARGET_AVX256_AVOID_VEC_PERM): New
            Macro.
            * config/i386/x86-tune.def (X86_TUNE_AVX256_SPLIT_REGS): Add
            m_CORE_ATOM.
            (X86_TUNE_AVX256_AVOID_VEC_PERM): New tune.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/avx256_avoid_vec_perm.c: New test.
    
    (cherry picked from commit 9eaecce3d8c1d9349adbf8c2cdaf8d87672ed29c)

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index f8ab1893985..48921d422cf 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -24829,12 +24829,15 @@ private:
      where we know it's not loaded from memory.  */
   unsigned m_num_gpr_needed[3];
   unsigned m_num_sse_needed[3];
+  /* Number of 256-bit vector permutation.  */
+  unsigned m_num_avx256_vec_perm[3];
 };
 
 ix86_vector_costs::ix86_vector_costs (vec_info* vinfo, bool costing_for_scalar)
   : vector_costs (vinfo, costing_for_scalar),
     m_num_gpr_needed (),
-    m_num_sse_needed ()
+    m_num_sse_needed (),
+    m_num_avx256_vec_perm ()
 {
 }
 
@@ -25068,6 +25071,10 @@ ix86_vector_costs::add_stmt_cost (int count, vect_cost_for_stmt kind,
   if (stmt_cost == -1)
     stmt_cost = ix86_builtin_vectorization_cost (kind, vectype, misalign);
 
+  if (kind == vec_perm && vectype
+      && GET_MODE_SIZE (TYPE_MODE (vectype)) == 32)
+    m_num_avx256_vec_perm[where]++;
+
   /* Penalize DFmode vector operations for Bonnell.  */
   if (TARGET_CPU_P (BONNELL) && kind == vector_stmt
       && vectype && GET_MODE_INNER (TYPE_MODE (vectype)) == DFmode)
@@ -25137,6 +25144,11 @@ ix86_vector_costs::finish_cost (const vector_costs *scalar_costs)
 
   ix86_vect_estimate_reg_pressure ();
 
+  for (int i = 0; i != 3; i++)
+    if (m_num_avx256_vec_perm[i]
+	&& TARGET_AVX256_AVOID_VEC_PERM)
+      m_costs[i] = INT_MAX;
+
   vector_costs::finish_cost (scalar_costs);
 }
 
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 89bc894fcd1..1c6e323d655 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -436,6 +436,8 @@ extern unsigned char ix86_tune_features[X86_TUNE_LAST];
 	ix86_tune_features[X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL]
 #define TARGET_AVX256_SPLIT_REGS \
 	ix86_tune_features[X86_TUNE_AVX256_SPLIT_REGS]
+#define TARGET_AVX256_AVOID_VEC_PERM \
+	ix86_tune_features[X86_TUNE_AVX256_AVOID_VEC_PERM]
 #define TARGET_AVX512_SPLIT_REGS \
 	ix86_tune_features[X86_TUNE_AVX512_SPLIT_REGS]
 #define TARGET_GENERAL_REGS_SSE_SPILL \
diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def
index 58d11a066c5..ec8de3144a8 100644
--- a/gcc/config/i386/x86-tune.def
+++ b/gcc/config/i386/x86-tune.def
@@ -564,7 +564,7 @@ DEF_TUNE (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL, "256_unaligned_store_optimal"
 
 /* X86_TUNE_AVX256_SPLIT_REGS: if true, AVX256 ops are split into two AVX128 ops.  */
 DEF_TUNE (X86_TUNE_AVX256_SPLIT_REGS, "avx256_split_regs",m_BDVER | m_BTVER2
-	  | m_ZNVER1)
+	  | m_ZNVER1 | m_CORE_ATOM)
 
 /* X86_TUNE_AVX128_OPTIMAL: Enable 128-bit AVX instruction generation for
    the auto-vectorizer.  */
@@ -575,6 +575,11 @@ DEF_TUNE (X86_TUNE_AVX128_OPTIMAL, "avx128_optimal", m_BDVER | m_BTVER2
    instructions in the auto-vectorizer.  */
 DEF_TUNE (X86_TUNE_AVX256_OPTIMAL, "avx256_optimal", m_CORE_AVX512)
 
+/* X86_TUNE_AVX256_AVOID_VEC_PERM: Avoid using 256-bit cross-lane
+   vector permutation instructions in the auto-vectorizer.  */
+DEF_TUNE (X86_TUNE_AVX256_AVOID_VEC_PERM,
+	 "avx256_avoid_vec_perm", m_CORE_ATOM)
+
 /* X86_TUNE_AVX256_SPLIT_REGS: if true, AVX512 ops are split into two AVX256 ops.  */
 DEF_TUNE (X86_TUNE_AVX512_SPLIT_REGS, "avx512_split_regs", m_ZNVER4)
 
diff --git a/gcc/testsuite/gcc.target/i386/avx256_avoid_vec_perm.c b/gcc/testsuite/gcc.target/i386/avx256_avoid_vec_perm.c
new file mode 100644
index 00000000000..d4f00b3fb52
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/avx256_avoid_vec_perm.c
@@ -0,0 +1,22 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=sierraforest -fdump-tree-vect-details" } */
+/* { dg-final { scan-tree-dump "loop vectorized using 16 byte vectors" "vect" } } */
+
+int a[256], b[256];
+
+void __attribute__((noinline))
+foo (void)
+{
+  int i;
+  for (i = 0; i < 32; ++i)
+    {
+      b[i*8+0] = a[i*8+0];
+      b[i*8+1] = a[i*8+0];
+      b[i*8+2] = a[i*8+3];
+      b[i*8+3] = a[i*8+3];
+      b[i*8+4] = a[i*8+4];
+      b[i*8+5] = a[i*8+6];
+      b[i*8+6] = a[i*8+4];
+      b[i*8+7] = a[i*8+6];
+    }
+}

commit aff061f0f51e2547b04c8d24c3b0dc713a6d62a3
Author: Steve Baird <baird@adacore.com>
Date:   Mon Jul 8 14:45:55 2024 -0700

    ada: Type conversion in instance incorrectly rejected.
    
    In some cases, a legal type conversion in a generic package is correctly
    accepted but the corresponding type conversion in an instance of the generic
    is incorrectly rejected.
    
    gcc/ada/
            PR ada/114593
            * sem_res.adb (Valid_Conversion): Test In_Instance instead of
            In_Instance_Body.

diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index 075c0d85ccd..a1d5fe4ff54 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -14621,7 +14621,7 @@ package body Sem_Res is
 
       --  If it was legal in the generic, it's legal in the instance
 
-      elsif In_Instance_Body then
+      elsif In_Instance then
          return True;
 
       --  If both are tagged types, check legality of view conversions

commit b62c956f775408b9058a3c9b738462e5d67d8df7
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon Oct 14 11:57:57 2024 +0200

    Add regression test
    
    gcc/testsuite/
            PR ada/114593
            * gnat.dg/specs/generic_inst2-child2.ads: New test.
            * gnat.dg/specs/generic_inst2.ads: New helper.
            * gnat.dg/specs/generic_inst2-child1.ads: Likewise.

diff --git a/gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads b/gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads
new file mode 100644
index 00000000000..18e212b2e58
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads
@@ -0,0 +1,17 @@
+generic
+package Generic_Inst2.Child1 is
+
+   function Get_Custom return Custom_Type;
+
+private
+
+   type Dummy is null record;
+
+   Placeholder : constant Dummy := (null record);
+
+   -- This type conversion fails (though only when
+   -- instantiated in the other package)
+   function Get_Custom return Custom_Type is 
+      (Custom_Type(Placeholder'Address));
+
+end Generic_Inst2.Child1;
diff --git a/gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads b/gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads
new file mode 100644
index 00000000000..3bb5b0aca10
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads
@@ -0,0 +1,10 @@
+-- { dg-do compile }
+
+with Generic_Inst2.Child1;
+
+generic
+package Generic_Inst2.Child2 is
+
+   package Second is new Generic_Inst2.Child1;
+
+end Generic_Inst2.Child2;
diff --git a/gcc/testsuite/gnat.dg/specs/generic_inst2.ads b/gcc/testsuite/gnat.dg/specs/generic_inst2.ads
new file mode 100644
index 00000000000..0a74e36273b
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/generic_inst2.ads
@@ -0,0 +1,11 @@
+private with System;
+
+package Generic_Inst2 is
+
+   type Custom_Type is private;
+
+private
+
+   type Custom_Type is new System.Address;
+
+end Generic_Inst2;

commit a9ab9b6450fba50d41dcdb2e7531d45e1280ae95
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Mon Oct 14 13:29:34 2024 +0100

    aarch64: Fix caller saves of VNx2QI [PR116238]
    
    The testcase contains a VNx2QImode pseudo that is live across a call
    and that cannot be allocated a call-preserved register.  LRA quite
    reasonably tried to save it before the call and restore it afterwards.
    Unfortunately, the target told it to do that in SImode, even though
    punning between SImode and VNx2QImode is disallowed by both
    TARGET_CAN_CHANGE_MODE_CLASS and TARGET_MODES_TIEABLE_P.
    
    The natural class to use for SImode is GENERAL_REGS, so this led
    to an unsalvageable situation in which we had:
    
      (set (subreg:VNx2QI (reg:SI A) 0) (reg:VNx2QI B))
    
    where A needed GENERAL_REGS and B needed FP_REGS.  We therefore ended
    up in a reload loop.
    
    The hooks above should ensure that this situation can never occur
    for incoming subregs.  It only happened here because the target
    explicitly forced it.
    
    The decision to use SImode for modes smaller than 4 bytes dates
    back to the beginning of the port, before 16-bit floating-point
    modes existed.  I'm not sure whether promoting to SImode really
    makes sense for any FPR, but that's a separate performance/QoI
    discussion.  For now, this patch just disallows using SImode
    when it is wrong for correctness reasons, since that should be
    safer to backport.
    
    gcc/
            PR testsuite/116238
            * config/aarch64/aarch64.cc (aarch64_hard_regno_caller_save_mode):
            Only return SImode if we can convert to and from it.
    
    gcc/testsuite/
            PR testsuite/116238
            * gcc.target/aarch64/sve/pr116238.c: New test.
    
    (cherry picked from commit ec9d6d45191f639482344362d048294e74587ca3)

diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index 1beec94629d..e9bca8bbd08 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -2505,10 +2505,11 @@ aarch64_hard_regno_caller_save_mode (unsigned regno, unsigned,
      unnecessarily significant.  */
   if (PR_REGNUM_P (regno))
     return mode;
-  if (known_ge (GET_MODE_SIZE (mode), 4))
-    return mode;
-  else
+  if (known_lt (GET_MODE_SIZE (mode), 4)
+      && REG_CAN_CHANGE_MODE_P (regno, mode, SImode)
+      && REG_CAN_CHANGE_MODE_P (regno, SImode, mode))
     return SImode;
+  return mode;
 }
 
 /* Return true if I's bits are consecutive ones from the MSB.  */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pr116238.c b/gcc/testsuite/gcc.target/aarch64/sve/pr116238.c
new file mode 100644
index 00000000000..fe66b198107
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pr116238.c
@@ -0,0 +1,13 @@
+/* { dg-additional-options "-O2 -msve-vector-bits=128" } */
+
+void foo();
+typedef unsigned char v2qi __attribute__((vector_size(2)));
+void f(v2qi *ptr)
+{
+  v2qi x = *ptr;
+  asm volatile ("" :: "w" (x));
+  asm volatile ("" ::: "d8", "d9", "d10", "d11", "d12", "d13", "d14", "d15");
+  foo();
+  asm volatile ("" :: "w" (x));
+  *ptr = x;
+}

commit f0629e32278ef3966c00e889d0c6dce1de6115cc
Author: Jan Hubicka <hubicka@ucw.cz>
Date:   Mon Jul 22 23:01:50 2024 +0200

    Fix handling of ICF_NOVOPS in ipa-modref
    
    As shown in somewhat convoluted testcase, ipa-modref is mistreating
    ECF_NOVOPS as "having no side effects".  This come from time when
    modref cared only about memory accesses and thus it was possible to
    shortcut on it.
    
    This patch removes (hopefully) all those bad shortcuts.
    Bootstrapped/regtested x86_64-linux, comitted.
    
    gcc/ChangeLog:
    
            PR ipa/109985
    
            * ipa-modref.cc (modref_summary::useful_p): Fix handling of ECF_NOVOPS.
            (modref_access_analysis::process_fnspec): Likevise.
            (modref_access_analysis::analyze_call): Likevise.
            (propagate_unknown_call): Likevise.
            (modref_propagate_in_scc): Likevise.
            (modref_propagate_flags_in_scc): Likewise.
            (ipa_merge_modref_summary_after_inlining): Likewise.
    
    (cherry picked from commit efcbe7b985e24ac002a863afd609c44a67761195)

diff --git a/gcc/ipa-modref.cc b/gcc/ipa-modref.cc
index ccf788e6398..400a8856de2 100644
--- a/gcc/ipa-modref.cc
+++ b/gcc/ipa-modref.cc
@@ -334,7 +334,7 @@ modref_summary::useful_p (int ecf_flags, bool check_flags)
   if (check_flags
       && remove_useless_eaf_flags (static_chain_flags, ecf_flags, false))
     return true;
-  if (ecf_flags & (ECF_CONST | ECF_NOVOPS))
+  if (ecf_flags & ECF_CONST)
     return ((!side_effects || !nondeterministic)
 	    && (ecf_flags & ECF_LOOPING_CONST_OR_PURE));
   if (loads && !loads->every_base)
@@ -1263,7 +1263,7 @@ modref_access_analysis::merge_call_side_effects
   int flags = gimple_call_flags (call);
 
   /* Nothing to do for non-looping cont functions.  */
-  if ((flags & (ECF_CONST | ECF_NOVOPS))
+  if ((flags & ECF_CONST)
       && !(flags & ECF_LOOPING_CONST_OR_PURE))
     return false;
 
@@ -1276,7 +1276,7 @@ modref_access_analysis::merge_call_side_effects
   /* Merge side effects and non-determinism.
      PURE/CONST flags makes functions deterministic and if there is
      no LOOPING_CONST_OR_PURE they also have no side effects.  */
-  if (!(flags & (ECF_CONST | ECF_NOVOPS | ECF_PURE))
+  if (!(flags & (ECF_CONST | ECF_PURE))
       || (flags & ECF_LOOPING_CONST_OR_PURE))
     {
       if (!m_summary->side_effects && callee_summary->side_effects)
@@ -1465,7 +1465,7 @@ modref_access_analysis::process_fnspec (gcall *call)
 
   /* PURE/CONST flags makes functions deterministic and if there is
      no LOOPING_CONST_OR_PURE they also have no side effects.  */
-  if (!(flags & (ECF_CONST | ECF_NOVOPS | ECF_PURE))
+  if (!(flags & (ECF_CONST | ECF_PURE))
       || (flags & ECF_LOOPING_CONST_OR_PURE)
       || (cfun->can_throw_non_call_exceptions
 	  && stmt_could_throw_p (cfun, call)))
@@ -1604,12 +1604,12 @@ modref_access_analysis::analyze_call (gcall *stmt)
       print_gimple_stmt (dump_file, stmt, 0);
     }
 
-  if ((flags & (ECF_CONST | ECF_NOVOPS))
+  if ((flags & ECF_CONST)
       && !(flags & ECF_LOOPING_CONST_OR_PURE))
     {
       if (dump_file)
 	fprintf (dump_file,
-		 " - ECF_CONST | ECF_NOVOPS, ignoring all stores and all loads "
+		 " - ECF_CONST, ignoring all stores and all loads "
 		 "except for args.\n");
       return;
     }
@@ -1624,7 +1624,13 @@ modref_access_analysis::analyze_call (gcall *stmt)
       if (dump_file)
 	fprintf (dump_file, gimple_call_internal_p (stmt)
 		 ? " - Internal call" : " - Indirect call.\n");
-      process_fnspec (stmt);
+      if (flags & ECF_NOVOPS)
+        {
+	  set_side_effects ();
+	  set_nondeterministic ();
+        }
+      else
+	process_fnspec (stmt);
       return;
     }
   /* We only need to handle internal calls in IPA mode.  */
@@ -4570,7 +4576,7 @@ propagate_unknown_call (cgraph_node *node,
       return changed;
     }
 
-  if (!(ecf_flags & (ECF_CONST | ECF_NOVOPS | ECF_PURE))
+  if (!(ecf_flags & (ECF_CONST | ECF_PURE))
       || (ecf_flags & ECF_LOOPING_CONST_OR_PURE)
       || nontrivial_scc)
     {
@@ -4784,7 +4790,7 @@ modref_propagate_in_scc (cgraph_node *component_node)
 	      struct cgraph_node *callee;
 
 	      if (!callee_edge->inline_failed
-		 || ((flags & (ECF_CONST | ECF_NOVOPS))
+		 || ((flags & ECF_CONST)
 		     && !(flags & ECF_LOOPING_CONST_OR_PURE)))
 		continue;
 
@@ -5207,8 +5213,8 @@ modref_propagate_flags_in_scc (cgraph_node *component_node)
 	    {
 	      escape_summary *sum = escape_summaries->get (e);
 
-	      if (!sum || (e->indirect_info->ecf_flags
-			   & (ECF_CONST | ECF_NOVOPS)))
+	      if (!sum || ((e->indirect_info->ecf_flags & ECF_CONST)
+		  && !(e->indirect_info->ecf_flags & ECF_LOOPING_CONST_OR_PURE)))
 		continue;
 
 	      changed |= modref_merge_call_site_flags
@@ -5233,8 +5239,8 @@ modref_propagate_flags_in_scc (cgraph_node *component_node)
 	      modref_summary_lto *callee_summary_lto = NULL;
 	      struct cgraph_node *callee;
 
-	      if (ecf_flags & (ECF_CONST | ECF_NOVOPS)
-		  || !callee_edge->inline_failed)
+	      if ((ecf_flags & ECF_CONST)
+		  && !(ecf_flags & ECF_LOOPING_CONST_OR_PURE))
 		continue;
 
 	      /* Get the callee and its summary.  */
@@ -5332,7 +5338,7 @@ ipa_merge_modref_summary_after_inlining (cgraph_edge *edge)
 
   if (!callee_info && to_info)
     {
-      if (!(flags & (ECF_CONST | ECF_NOVOPS)))
+      if (!(flags & (ECF_CONST | ECF_PURE | ECF_NOVOPS)))
 	to_info->loads->collapse ();
       if (!ignore_stores)
 	to_info->stores->collapse ();
@@ -5347,7 +5353,7 @@ ipa_merge_modref_summary_after_inlining (cgraph_edge *edge)
   /* Merge side effects and non-determinism.
      PURE/CONST flags makes functions deterministic and if there is
      no LOOPING_CONST_OR_PURE they also have no side effects.  */
-  if (!(flags & (ECF_CONST | ECF_NOVOPS | ECF_PURE))
+  if (!(flags & (ECF_CONST | ECF_PURE))
       || (flags & ECF_LOOPING_CONST_OR_PURE))
     {
       if (to_info)

commit abbfe1e2616d8f18ccd7f9ea65d92aecec7258ea
Author: Victor Do Nascimento <victor.donascimento@arm.com>
Date:   Mon Sep 23 17:10:18 2024 +0100

    middle-end: Fix ifcvt predicate generation for masked function calls
    
    Up until now, due to a latent bug in the code for the ifcvt pass,
    irrespective of the branch taken in a conditional statement, the
    original condition for the if statement was used in masking the
    function call.
    
    Thus, for code such as:
    
      if (a[i] > limit)
        b[i] = fixed_const;
      else
        b[i] = fn (a[i]);
    
    we would generate the following (wrong) if-converted tree code:
    
      _1 = a[i_1];
      _2 = _1 > limit;
      _3 = .MASK_CALL (fn, _1, _2);
      cstore_4 = _2 ? fixed_const : _3;
    
    as opposed to the correct expected sequence:
    
      _1 = a[i_1];
      _2 = _1 > limit;
      _3 = ~_2;
      _4 = .MASK_CALL (fn, _1, _3);
      cstore_5 = _2 ? fixed_const : _4;
    
    This patch ensures that the correct predicate mask generation is
    carried out such that, upon autovectorization, the correct vector
    lanes are selected in the vectorized function call.
    
    gcc/ChangeLog:
    
            * tree-if-conv.cc (predicate_statements): Fix handling of
            predicated function calls.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/vect/vect-fncall-mask.c: New.

diff --git a/gcc/testsuite/gcc.dg/vect/vect-fncall-mask.c b/gcc/testsuite/gcc.dg/vect/vect-fncall-mask.c
new file mode 100644
index 00000000000..554488e0630
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-fncall-mask.c
@@ -0,0 +1,31 @@
+/* { dg-do compile { target { aarch64*-*-* } } } */
+/* { dg-additional-options "-march=armv8.2-a+sve -fdump-tree-ifcvt-raw -Ofast" { target { aarch64*-*-* } } } */
+
+extern int __attribute__ ((simd, const)) fn (int);
+
+const int N = 20;
+const float lim = 101.0;
+const float cst =  -1.0;
+float tot =   0.0;
+
+float b[20];
+float a[20] = { [0 ... 9] = 1.7014118e39, /* If branch. */
+		[10 ... 19] = 100.0 };    /* Else branch.  */
+
+int main (void)
+{
+  #pragma omp simd
+  for (int i = 0; i < N; i += 1)
+    {
+      if (a[i] > lim)
+	b[i] = cst;
+      else
+	b[i] = fn (a[i]);
+      tot += b[i];
+    }
+  return (0);
+}
+
+/* { dg-final { scan-tree-dump {gimple_assign <gt_expr, _12, _1, 1.01e\+2, NULL>} ifcvt } } */
+/* { dg-final { scan-tree-dump {gimple_assign <bit_not_expr, _34, _12, NULL, NULL>} ifcvt } } */
+/* { dg-final { scan-tree-dump {gimple_call <.MASK_CALL, _3, fn, _2, _34>} ifcvt } } */
diff --git a/gcc/tree-if-conv.cc b/gcc/tree-if-conv.cc
index c4c3ed41a44..873a5c66629 100644
--- a/gcc/tree-if-conv.cc
+++ b/gcc/tree-if-conv.cc
@@ -2827,6 +2827,7 @@ predicate_statements (loop_p loop)
 		 This will cause the vectorizer to match the "in branch"
 		 clone variants, and serves to build the mask vector
 		 in a natural way.  */
+	      tree mask = cond;
 	      gcall *call = dyn_cast <gcall *> (gsi_stmt (gsi));
 	      tree orig_fn = gimple_call_fn (call);
 	      int orig_nargs = gimple_call_num_args (call);
@@ -2834,7 +2835,18 @@ predicate_statements (loop_p loop)
 	      args.safe_push (orig_fn);
 	      for (int i = 0; i < orig_nargs; i++)
 		args.safe_push (gimple_call_arg (call, i));
-	      args.safe_push (cond);
+	      /* If `swap', we invert the mask used for the if branch for use
+		 when masking the function call.  */
+	      if (swap)
+		{
+		  gimple_seq stmts = NULL;
+		  tree true_val
+		    = constant_boolean_node (true, TREE_TYPE (mask));
+		  mask = gimple_build (&stmts, BIT_XOR_EXPR,
+				       TREE_TYPE (mask), mask, true_val);
+		  gsi_insert_seq_before (&gsi, stmts, GSI_SAME_STMT);
+		}
+	      args.safe_push (mask);
 
 	      /* Replace the call with a IFN_MASK_CALL that has the extra
 		 condition parameter. */

commit cbb1814ffa29acc390bb0de46be49a24d09948d1
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Sun Oct 13 22:48:43 2024 +0100

    libstdc++: Use std::move for iterator in ranges::fill [PR117094]
    
    Input iterators aren't required to be copyable.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/117094
            * include/bits/ranges_algobase.h (__fill_fn): Use std::move for
            iterator that might not be copyable.
            * testsuite/25_algorithms/fill/constrained.cc: Check
            non-copyable iterator with sized sentinel.
    
    (cherry picked from commit 03623fa91ff36ecb9faa3b55f7842a39b759594e)

diff --git a/libstdc++-v3/include/bits/ranges_algobase.h b/libstdc++-v3/include/bits/ranges_algobase.h
index 7387f616d36..caced9f26ba 100644
--- a/libstdc++-v3/include/bits/ranges_algobase.h
+++ b/libstdc++-v3/include/bits/ranges_algobase.h
@@ -567,7 +567,7 @@ namespace ranges
 	if constexpr (sized_sentinel_for<_Sent, _Out>)
 	  {
 	    const auto __len = __last - __first;
-	    return ranges::fill_n(__first, __len, __value);
+	    return ranges::fill_n(std::move(__first), __len, __value);
 	  }
 	else if constexpr (is_scalar_v<_Tp>)
 	  {
diff --git a/libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
index 126515eddca..7cae99f2d5c 100644
--- a/libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
@@ -83,9 +83,43 @@ test02()
   return ok;
 }
 
+void
+test03()
+{
+  // Bug libstdc++/117094 - ranges::fill misses std::move for output_iterator
+
+  // Move-only output iterator
+  struct Iterator
+  {
+    using difference_type = long;
+    Iterator(int* p) : p(p) { }
+    Iterator(Iterator&&) = default;
+    Iterator& operator=(Iterator&&) = default;
+    int& operator*() const { return *p; }
+    Iterator& operator++() { ++p; return *this; }
+    Iterator operator++(int) { return Iterator(p++ ); }
+    int* p;
+
+    struct Sentinel
+    {
+      const int* p;
+      bool operator==(const Iterator& i) const { return p == i.p; }
+      long operator-(const Iterator& i) const { return p - i.p; }
+    };
+
+    long operator-(Sentinel s) const { return p - s.p; }
+  };
+  static_assert(std::sized_sentinel_for<Iterator::Sentinel, Iterator>);
+  int a[2];
+  std::ranges::fill(Iterator(a), Iterator::Sentinel{a+2}, 999);
+  VERIFY( a[0] == 999 );
+  VERIFY( a[1] == 999 );
+}
+
 int
 main()
 {
   test01();
   static_assert(test02());
+  test03();
 }

commit 8f181a2f878e8b97a91d68214161cb968888a2b7
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Sep 24 23:20:56 2024 +0100

    libstdc++: Populate generic std::time_get's wide %c format [PR117135]
    
    I missed out the __timepunct<wchar_t> specialization for the "generic"
    implementation when defining the %c format in r15-4016-gc534e37faccf48.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/117135
            * config/locale/generic/time_members.cc
            (__timepunct<wchar_t>::_M_initialize_timepunc): Set
            _M_date_time_format for C locale. Set %Ex formats to the same
            values as the %x formats.
    
    (cherry picked from commit 707d84efee7f7eb5a336935f386e094402f267a6)

diff --git a/libstdc++-v3/config/locale/generic/time_members.cc b/libstdc++-v3/config/locale/generic/time_members.cc
index 6619f0ca881..5012a270dd1 100644
--- a/libstdc++-v3/config/locale/generic/time_members.cc
+++ b/libstdc++-v3/config/locale/generic/time_members.cc
@@ -150,11 +150,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	_M_data = new __timepunct_cache<wchar_t>;
 
       _M_data->_M_date_format = L"%m/%d/%y";
-      _M_data->_M_date_era_format = L"%m/%d/%y";
+      _M_data->_M_date_era_format = _M_data->_M_date_format;
       _M_data->_M_time_format = L"%H:%M:%S";
-      _M_data->_M_time_era_format = L"%H:%M:%S";
-      _M_data->_M_date_time_format = L"";
-      _M_data->_M_date_time_era_format = L"";
+      _M_data->_M_time_era_format = _M_data->_M_time_format;
+      _M_data->_M_date_time_format = L"%a %b %e %T %Y";
+      _M_data->_M_date_time_era_format = _M_data->_M_date_time_format;
       _M_data->_M_am = L"AM";
       _M_data->_M_pm = L"PM";
       _M_data->_M_am_pm_format = L"%I:%M:%S %p";

commit 7836113ff4726e96c2ecf34e6954e657c0e84602
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Sep 27 16:54:31 2024 +0100

    libstdc++: Tweak %c formatting for chrono types
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/chrono_io.h (__formatter_chrono::_M_c): Add
            [[unlikely]] attribute to condition for missing %c format in
            locale. Use %T instead of %H:%M:%S in fallback.
    
    (cherry picked from commit ce89d2f3170e0d6474cee2c5cb9d478426a5b2f6)

diff --git a/libstdc++-v3/include/bits/chrono_io.h b/libstdc++-v3/include/bits/chrono_io.h
index f8b78daedc6..eaa864b0bdc 100644
--- a/libstdc++-v3/include/bits/chrono_io.h
+++ b/libstdc++-v3/include/bits/chrono_io.h
@@ -799,8 +799,8 @@ namespace __format
 	  const _CharT* __formats[2];
 	  __tp._M_date_time_formats(__formats);
 	  const _CharT* __rep = __formats[__mod];
-	  if (!*__rep)
-	    __rep = _GLIBCXX_WIDEN("%a %b %e %H:%M:%S %Y");
+	  if (!*__rep) [[unlikely]]
+	    __rep = _GLIBCXX_WIDEN("%a %b %e %T %Y");
 	  basic_string<_CharT> __fmt(_S_empty_spec);
 	  __fmt.insert(1u, 1u, _S_colon);
 	  __fmt.insert(2u, __rep);

commit f1436fde43215659554418220aa45830a5e7ae61
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Oct 11 09:40:38 2024 +0100

    libstdc++: Fix localized %c formatting for <chrono> [PR117085]
    
    When formatting a time point with %c we call std::vformat_to using the
    formatting locale's D_T_FMT string, but we weren't adding the L option
    to the format string. This meant we always interpreted D_T_FMT in the C
    locale, instead of using the formatting locale as obviously intended
    when %c is used.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/117085
            * include/bits/chrono_io.h (__formatter_chrono::_M_c): Add L
            option to format string.
            * testsuite/std/time/format.cc: Move to...
            * testsuite/std/time/format/format.cc: ...here.
            * testsuite/std/time/format/pr117085.cc: New test.
    
    (cherry picked from commit 4ad697bb7f1aad252e1398c6f13eed3fa6d0ca5b)

diff --git a/libstdc++-v3/include/bits/chrono_io.h b/libstdc++-v3/include/bits/chrono_io.h
index eaa864b0bdc..6c813bf439d 100644
--- a/libstdc++-v3/include/bits/chrono_io.h
+++ b/libstdc++-v3/include/bits/chrono_io.h
@@ -793,17 +793,19 @@ namespace __format
 	  // %c  Locale's date and time representation.
 	  // %Ec Locale's alternate date and time representation.
 
+	  basic_string<_CharT> __fmt;
 	  auto __t = _S_floor_seconds(__tt);
 	  locale __loc = _M_locale(__ctx);
 	  const auto& __tp = use_facet<__timepunct<_CharT>>(__loc);
 	  const _CharT* __formats[2];
 	  __tp._M_date_time_formats(__formats);
-	  const _CharT* __rep = __formats[__mod];
-	  if (!*__rep) [[unlikely]]
-	    __rep = _GLIBCXX_WIDEN("%a %b %e %T %Y");
-	  basic_string<_CharT> __fmt(_S_empty_spec);
-	  __fmt.insert(1u, 1u, _S_colon);
-	  __fmt.insert(2u, __rep);
+	  if (*__formats[__mod]) [[likely]]
+	    {
+	      __fmt = _GLIBCXX_WIDEN("{:L}");
+	      __fmt.insert(3u, __formats[__mod]);
+	    }
+	  else
+	    __fmt = _GLIBCXX_WIDEN("{:L%a %b %e %T %Y}");
 	  return std::vformat_to(std::move(__out), __loc, __fmt,
 				 std::make_format_args<_FormatContext>(__t));
 	}
diff --git a/libstdc++-v3/testsuite/std/time/format.cc b/libstdc++-v3/testsuite/std/time/format/format.cc
similarity index 100%
rename from libstdc++-v3/testsuite/std/time/format.cc
rename to libstdc++-v3/testsuite/std/time/format/format.cc
diff --git a/libstdc++-v3/testsuite/std/time/format/pr117085.cc b/libstdc++-v3/testsuite/std/time/format/pr117085.cc
new file mode 100644
index 00000000000..99ef8389995
--- /dev/null
+++ b/libstdc++-v3/testsuite/std/time/format/pr117085.cc
@@ -0,0 +1,19 @@
+// { dg-do run { target c++20 } }
+// { dg-require-namedlocale "fr_FR.ISO8859-1" }
+
+#include <chrono>
+#include <locale>
+#include <testsuite_hooks.h>
+
+void
+test_c()
+{
+  std::locale::global(std::locale(ISO_8859(1,fr_FR)));
+  auto s = std::format("{:L%c}", std::chrono::sys_seconds());
+  VERIFY( ! s.starts_with("Thu") );
+}
+
+int main()
+{
+  test_c();
+}

commit 4d8a55ac552627ebf9bf50d28a35459cba58d8c6
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Sun Oct 13 21:47:14 2024 +0100

    libstdc++: Implement LWG 3564 for ranges::transform_view
    
    The _Iterator<true> type returned by begin() const uses const F& to
    transform the elements, so it should use const F& to determine the
    iterator's value_type and iterator_category as well.
    
    This was accepted into the WP in July 2022.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/ranges (transform_view:_Iterator): Use const F&
            to determine value_type and iterator_category of
            _Iterator<true>, as per LWG 3564.
            * testsuite/std/ranges/adaptors/transform.cc: Check value_type
            and iterator_category.
    
    Reviewed-by: Patrick Palka <ppalka@redhat.com>
    (cherry picked from commit dde19c600c3c8a1d765c9b4961d2556e89edad14)

diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index 59a25153620..2c8a8535d39 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -1870,8 +1870,12 @@ namespace views::__adaptor
 	  static auto
 	  _S_iter_cat()
 	  {
+	    // _GLIBCXX_RESOLVE_LIB_DEFECTS
+	    // 3564. transform_view::iterator<true>::value_type and
+	    // iterator_category should use const F&
 	    using _Base = transform_view::_Base<_Const>;
-	    using _Res = invoke_result_t<_Fp&, range_reference_t<_Base>>;
+	    using _Res = invoke_result_t<__maybe_const_t<_Const, _Fp>&,
+					 range_reference_t<_Base>>;
 	    if constexpr (is_lvalue_reference_v<_Res>)
 	      {
 		using _Cat
@@ -1920,7 +1924,8 @@ namespace views::__adaptor
 	  using iterator_concept = decltype(_S_iter_concept());
 	  // iterator_category defined in __transform_view_iter_cat
 	  using value_type
-	    = remove_cvref_t<invoke_result_t<_Fp&, range_reference_t<_Base>>>;
+	    = remove_cvref_t<invoke_result_t<__maybe_const_t<_Const, _Fp>&,
+					     range_reference_t<_Base>>>;
 	  using difference_type = range_difference_t<_Base>;
 
 	  _Iterator() requires default_initializable<_Base_iter> = default;
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
index bcb18a3fc6c..ca695349650 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
@@ -196,6 +196,24 @@ test09()
 #endif
 }
 
+void
+test10()
+{
+  struct F {
+    short operator()(int) { return 0; }
+    const int& operator()(const int& i) const { return i; }
+  };
+
+  int x[] {2, 4};
+  const auto xform = x | views::transform(F{});
+  using const_iterator = decltype(xform.begin());
+  // LWG 3564. transform_view::iterator<true>::value_type and iterator_category
+  // should use const F&
+  static_assert(std::same_as<std::iter_value_t<const_iterator>, int>);
+  using cat = std::iterator_traits<const_iterator>::iterator_category;
+  static_assert(std::same_as<cat, std::random_access_iterator_tag>);
+}
+
 int
 main()
 {
@@ -208,4 +226,5 @@ main()
   test07();
   test08();
   test09();
+  test10();
 }

commit f1cee9d1a049a3bc7cae24245fcc3c415fd12764
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jun 12 17:11:23 2024 +0100

    libstdc++: Increase timeouts for PSTL tests in debug mode [PR90276]
    
    These tests compile very slowly in debug mode.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/90276
            * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
            Increase timeout for debug mode.
            * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
            Likewise.
            * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
            Likewise.
            * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
            Likewise.
            * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
            Likewise.
            * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
            Likewise.
    
    (cherry picked from commit e65b6627a36869b01bbe128a5324e4b415b28880)

diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc
index ea647c6c23a..1b788e1b7ee 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc
@@ -2,6 +2,7 @@
 // { dg-options "-ltbb" }
 // { dg-do run { target c++17 } }
 // { dg-timeout-factor 3 }
+// { dg-timeout-factor 5 { target debug_mode } }
 // { dg-require-effective-target tbb_backend }
 
 //===-- rotate_copy.pass.cpp ----------------------------------------------===//
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc
index 1f5f239a94b..16b815c5d51 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc
@@ -2,6 +2,7 @@
 // { dg-options "-ltbb" }
 // { dg-do run { target c++17 } }
 // { dg-timeout-factor 3 }
+// { dg-timeout-factor 5 { target debug_mode } }
 // { dg-require-effective-target tbb_backend }
 
 //===-- transform_binary.pass.cpp -----------------------------------------===//
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc
index 1173186f65c..441f5d1e378 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc
@@ -2,6 +2,7 @@
 // { dg-options "-ltbb" }
 // { dg-do run { target c++17 } }
 // { dg-timeout-factor 3 }
+// { dg-timeout-factor 5 { target debug_mode } }
 // { dg-require-effective-target tbb_backend }
 
 //===-- mismatch.pass.cpp -------------------------------------------------===//
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc
index 924aa78652e..78edeb025d7 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc
@@ -2,6 +2,7 @@
 // { dg-options "-ltbb" }
 // { dg-do run { target c++17 } }
 // { dg-timeout-factor 3 }
+// { dg-timeout-factor 5 { target debug_mode } }
 // { dg-require-effective-target tbb_backend }
 
 //===-- lexicographical_compare.pass.cpp ----------------------------------===//
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc
index 0a9f41ca179..e4bd435d192 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc
@@ -2,6 +2,7 @@
 // { dg-options "-ltbb" }
 // { dg-do run { target c++17 } }
 // { dg-timeout-factor 3 }
+// { dg-timeout-factor 5 { target debug_mode } }
 // { dg-require-effective-target tbb_backend }
 
 //===-- minmax_element.pass.cpp -------------------------------------------===//
diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc
index 1cc59856086..ad3befcb690 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc
@@ -2,6 +2,7 @@
 // { dg-options "-ltbb" }
 // { dg-do run { target c++17 } }
 // { dg-timeout-factor 3 }
+// { dg-timeout-factor 5 { target debug_mode } }
 // { dg-require-effective-target tbb_backend }
 
 //===-- set.pass.cpp ------------------------------------------------------===//

commit 23480efbab9212adb3a0147a3e5dd93d53e1843b
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Oct 16 09:22:37 2024 +0100

    libstdc++: Fix Python deprecation warning in printers.py
    
    python/libstdcxx/v6/printers.py:1355: DeprecationWarning: 'count' is passed as positional argument
    
    The Python docs say:
    
      Deprecated since version 3.13: Passing count and flags as positional
      arguments is deprecated. In future Python versions they will be
      keyword-only parameters.
    
    Using a keyword argument for count only became possible with Python 3.1
    so introduce a new function to do the substitution.
    
    libstdc++-v3/ChangeLog:
    
            * python/libstdcxx/v6/printers.py (strip_fundts_namespace): New.
            (StdExpAnyPrinter, StdExpOptionalPrinter): Use it.
    
    (cherry picked from commit b9e98bb9919fa9f07782f23f79b3d35abb9ff542)

diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py
index a6c2ed4599f..3026de35bbd 100644
--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
+++ b/libstdc++-v3/python/libstdcxx/v6/printers.py
@@ -220,6 +220,16 @@ def strip_versioned_namespace(typename):
     return typename.replace(_versioned_namespace, '')
 
 
+def strip_fundts_namespace(typ):
+    """Remove "fundamentals_vN" inline namespace from qualified type name."""
+    pattern = r'^std::experimental::fundamentals_v\d::'
+    repl = 'std::experimental::'
+    if sys.version_info[0] == 2:
+        return re.sub(pattern, repl, typ, 1)
+    else: # Technically this needs Python 3.1 but nobody should be using 3.0
+        return re.sub(pattern, repl, typ, count=1)
+
+
 def strip_inline_namespaces(type_str):
     """Remove known inline namespaces from the canonical name of a type."""
     type_str = strip_versioned_namespace(type_str)
@@ -1352,8 +1362,7 @@ class StdExpAnyPrinter(SingleObjContainerPrinter):
 
     def __init__(self, typename, val):
         self._typename = strip_versioned_namespace(typename)
-        self._typename = re.sub(r'^std::experimental::fundamentals_v\d::',
-                                'std::experimental::', self._typename, 1)
+        self._typename = strip_fundts_namespace(self._typename)
         self._val = val
         self._contained_type = None
         contained_value = None
@@ -1446,10 +1455,8 @@ class StdExpOptionalPrinter(SingleObjContainerPrinter):
     """Print a std::optional or std::experimental::optional."""
 
     def __init__(self, typename, val):
-        typename = strip_versioned_namespace(typename)
-        self._typename = re.sub(
-            r'^std::(experimental::|)(fundamentals_v\d::|)(.*)',
-            r'std::\1\3', typename, 1)
+        self._typename = strip_versioned_namespace(typename)
+        self._typename = strip_fundts_namespace(self._typename)
         payload = val['_M_payload']
         if self._typename.startswith('std::experimental'):
             engaged = val['_M_engaged']

commit ed664f8d76cefdf40ddfa7d7473f48b6ce2d850d
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Oct 16 11:42:29 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 633560a0c6f..b41bbb931d2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,59 @@
+2024-10-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+
+	* tree-if-conv.cc (predicate_statements): Fix handling of
+	predicated function calls.
+
+2024-10-15  Jan Hubicka  <hubicka@ucw.cz>
+
+	Backported from master:
+	2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
+
+	PR ipa/109985
+	* ipa-modref.cc (modref_summary::useful_p): Fix handling of ECF_NOVOPS.
+	(modref_access_analysis::process_fnspec): Likevise.
+	(modref_access_analysis::analyze_call): Likevise.
+	(propagate_unknown_call): Likevise.
+	(modref_propagate_in_scc): Likevise.
+	(modref_propagate_flags_in_scc): Likewise.
+	(ipa_merge_modref_summary_after_inlining): Likewise.
+
+2024-10-14  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-08-21  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR testsuite/116238
+	* config/aarch64/aarch64.cc (aarch64_hard_regno_caller_save_mode):
+	Only return SImode if we can convert to and from it.
+
+2024-10-14  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-10-10  liuhongt  <hongtao.liu@intel.com>
+
+	* config/i386/i386.cc (ix86_vector_costs::ix86_vector_costs):
+	Add new member m_num_avx256_vec_perm.
+	(ix86_vector_costs::add_stmt_cost): Record 256-bit vec_perm.
+	(ix86_vector_costs::finish_cost): Prevent vectorization for
+	TAREGT_AVX256_AVOID_VEC_PERM when there's 256-bit vec_perm
+	instruction.
+	* config/i386/i386.h (TARGET_AVX256_AVOID_VEC_PERM): New
+	Macro.
+	* config/i386/x86-tune.def (X86_TUNE_AVX256_SPLIT_REGS): Add
+	m_CORE_ATOM.
+	(X86_TUNE_AVX256_AVOID_VEC_PERM): New tune.
+
+2024-10-14  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-10-10  liuhongt  <hongtao.liu@intel.com>
+
+	* config/i386/i386-expand.cc (ix86_expand_sse_movcc): Guard
+	instruction blendv generation under new tune.
+	* config/i386/i386.h (TARGET_SSE_MOVCC_USE_BLENDV): New Macro.
+	* config/i386/x86-tune.def (X86_TUNE_SSE_MOVCC_USE_BLENDV):
+	New tune.
+
 2024-10-13  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index d04e3ab9041..f776b88810d 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241014
+20241016
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index efec09ceb27..d6808032cc3 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2024-10-14  Steve Baird  <baird@adacore.com>
+
+	PR ada/114593
+	* sem_res.adb (Valid_Conversion): Test In_Instance instead of
+	In_Instance_Body.
+
 2024-10-08  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* exp_aggr.ads (Is_Two_Pass_Aggregate): New function declaration.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 654b2eaaf3a..d6134648f3c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,36 @@
+2024-10-15  Victor Do Nascimento  <victor.donascimento@arm.com>
+
+	* gcc.dg/vect/vect-fncall-mask.c: New.
+
+2024-10-14  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-08-21  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR testsuite/116238
+	* gcc.target/aarch64/sve/pr116238.c: New test.
+
+2024-10-14  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/114593
+	* gnat.dg/specs/generic_inst2-child2.ads: New test.
+	* gnat.dg/specs/generic_inst2.ads: New helper.
+	* gnat.dg/specs/generic_inst2-child1.ads: Likewise.
+
+2024-10-14  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-10-10  liuhongt  <hongtao.liu@intel.com>
+
+	* gcc.target/i386/avx256_avoid_vec_perm.c: New test.
+
+2024-10-14  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-10-10  liuhongt  <hongtao.liu@intel.com>
+
+	* gcc.target/i386/sse_movcc_use_blendv.c: New file.
+
 2024-10-13  Sam James  <sam@gentoo.org>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c5c29a0c106..1f9067aa79b 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,84 @@
+2024-10-16  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-16  Jonathan Wakely  <jwakely@redhat.com>
+
+	* python/libstdcxx/v6/printers.py (strip_fundts_namespace): New.
+	(StdExpAnyPrinter, StdExpOptionalPrinter): Use it.
+
+2024-10-16  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-26  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/90276
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
+	Increase timeout for debug mode.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
+	Likewise.
+
+2024-10-15  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-14  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/ranges (transform_view:_Iterator): Use const F&
+	to determine value_type and iterator_category of
+	_Iterator<true>, as per LWG 3564.
+	* testsuite/std/ranges/adaptors/transform.cc: Check value_type
+	and iterator_category.
+
+2024-10-15  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/117085
+	* include/bits/chrono_io.h (__formatter_chrono::_M_c): Add L
+	option to format string.
+	* testsuite/std/time/format.cc: Move to...
+	* testsuite/std/time/format/format.cc: ...here.
+	* testsuite/std/time/format/pr117085.cc: New test.
+
+2024-10-15  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/chrono_io.h (__formatter_chrono::_M_c): Add
+	[[unlikely]] attribute to condition for missing %c format in
+	locale. Use %T instead of %H:%M:%S in fallback.
+
+2024-10-15  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-14  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/117135
+	* config/locale/generic/time_members.cc
+	(__timepunct<wchar_t>::_M_initialize_timepunc): Set
+	_M_date_time_format for C locale. Set %Ex formats to the same
+	values as the %x formats.
+
+2024-10-15  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-14  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/117094
+	* include/bits/ranges_algobase.h (__fill_fn): Use std::move for
+	iterator that might not be copyable.
+	* testsuite/25_algorithms/fill/constrained.cc: Check
+	non-copyable iterator with sized sentinel.
+
 2024-10-03  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit 8be94d5643176ecd2dcdceaf4448c3b89318037c
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Tue Oct 15 16:51:33 2024 +0200

    i386: Fix expand_vector_set for VEC_MERGE/VEC_DUPLICATE RTX [PR117116]
    
    Middle end can generate SYMBOL_REF RTX as a value "val" in the call
    to expand_vector_set, but SYMBOL_REF RTX is not accepted in
    <sse2p4_1>_pinsr<ssemodesuffix> insn pattern, generated via
    VEC_MERGE/VEC_DUPLICATE RTX path.
    
    Force the value into a register before VEC_MERGE/VEC_DUPLICATE RTX
    is generated if it doesn't satisfy nonimmediate_operand predicate.
    
            PR target/117116
    
    gcc/ChangeLog:
    
            * config/i386/i386-expand.cc (expand_vector_set): Force "val"
            into a register before VEC_MERGE/VEC_DUPLICATE RTX is generated
            if it doesn't satisfy nonimmediate_operand predicate.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr117116.c: New test.
    
    (cherry picked from commit 80d7032067a3a5b76aecd657d9b35b0a8f5a941d)

diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index cad8b6d5884..7019116fcac 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -17627,6 +17627,8 @@ quarter:
   else if (use_vec_merge)
     {
 do_vec_merge:
+      if (!nonimmediate_operand (val, inner_mode))
+	val = force_reg (inner_mode, val);
       tmp = gen_rtx_VEC_DUPLICATE (mode, val);
       tmp = gen_rtx_VEC_MERGE (mode, tmp, target,
 			       GEN_INT (HOST_WIDE_INT_1U << elt));
diff --git a/gcc/testsuite/gcc.target/i386/pr117116.c b/gcc/testsuite/gcc.target/i386/pr117116.c
new file mode 100644
index 00000000000..d6e28848a4b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117116.c
@@ -0,0 +1,18 @@
+/* PR target/117116 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -mavx2" } */
+
+typedef void (*StmFct)();
+typedef struct {
+  StmFct fct_getc;
+  StmFct fct_putc;
+  StmFct fct_flush;
+  StmFct fct_close;
+} StmInf;
+
+StmInf TTY_Getc_pstm;
+
+void TTY_Getc() {
+  TTY_Getc_pstm.fct_getc = TTY_Getc;
+  TTY_Getc_pstm.fct_putc = TTY_Getc_pstm.fct_flush = TTY_Getc_pstm.fct_close = (StmFct)1;
+}

commit 420e17e642e0b1e9ebf1502613ea1c0acfa8a0e1
Author: Marek Polacek <polacek@redhat.com>
Date:   Tue Aug 27 18:25:17 2024 -0400

    c++: ICE with ()-init and TARGET_EXPR eliding [PR116424]
    
    Here we crash on a cp_gimplify_expr/TARGET_EXPR assert:
    
          gcc_checking_assert (!TARGET_EXPR_ELIDING_P (*expr_p)
                               || !TREE_ADDRESSABLE (TREE_TYPE (*expr_p)));
    
    We cannot elide the TARGET_EXPR because we're taking its address.
    
    It is set as eliding in massage_init_elt.  I've tried to not set
    TARGET_EXPR_ELIDING_P when the context is not direct-initialization.
    That didn't work: even when it's not direct-initialization now, it
    can become one later, for instance, after split_nonconstant_init.
    One problem is that replace_placeholders_for_class_temp_r will replace
    placeholders in non-eliding TARGET_EXPRs with the slot, but if we then
    elide the TARGET_EXPR, we end up with a "stray" VAR_DECL and crash.
    (Only some TARGET_EXPRs are handled by replace_decl.)
    
    I thought I'd have to go back to
    <https://gcc.gnu.org/pipermail/gcc-patches/2024-May/651163.html> but
    then I realized that this problem occurrs only with ()-init but not
    {}-init.  With {}-init, there is no problem, because we are clearing
    TARGET_EXPR_ELIDING_P in process_init_constructor_record:
    
           /* We can't actually elide the temporary when initializing a
              potentially-overlapping field from a function that returns by
              value.  */
           if (ce->index
               && TREE_CODE (next) == TARGET_EXPR
               && unsafe_copy_elision_p (ce->index, next))
             TARGET_EXPR_ELIDING_P (next) = false;
    
    But that does not happen for ()-init because we have no ce->index.
    ()-init doesn't allow brace elision so we don't really reshape them.
    
    But I can just move the clearing a few lines down and then it handles
    both ()-init and {}-init.
    
            PR c++/116424
    
    gcc/cp/ChangeLog:
    
            * typeck2.cc (process_init_constructor_record): Move the clearing of
            TARGET_EXPR_ELIDING_P down.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/paren-init38.C: New test.
    
    (cherry picked from commit 15f857af2943a4aa282d04ff71f860352ad3291b)

diff --git a/gcc/cp/typeck2.cc b/gcc/cp/typeck2.cc
index 06bad4d3303..b04ec559aa0 100644
--- a/gcc/cp/typeck2.cc
+++ b/gcc/cp/typeck2.cc
@@ -1774,13 +1774,6 @@ process_init_constructor_record (tree type, tree init, int nested, int flags,
 	    {
 	      gcc_assert (ce->value);
 	      next = massage_init_elt (fldtype, next, nested, flags, complain);
-	      /* We can't actually elide the temporary when initializing a
-		 potentially-overlapping field from a function that returns by
-		 value.  */
-	      if (ce->index
-		  && TREE_CODE (next) == TARGET_EXPR
-		  && unsafe_copy_elision_p (ce->index, next))
-		TARGET_EXPR_ELIDING_P (next) = false;
 	      ++idx;
 	    }
 	}
@@ -1873,6 +1866,13 @@ process_init_constructor_record (tree type, tree init, int nested, int flags,
 	    }
 	}
 
+      /* We can't actually elide the temporary when initializing a
+	 potentially-overlapping field from a function that returns by
+	 value.  */
+      if (TREE_CODE (next) == TARGET_EXPR
+	  && unsafe_copy_elision_p (field, next))
+	TARGET_EXPR_ELIDING_P (next) = false;
+
       if (is_empty_field (field)
 	  && !TREE_SIDE_EFFECTS (next))
 	/* Don't add trivial initialization of an empty base/field to the
diff --git a/gcc/testsuite/g++.dg/cpp2a/paren-init38.C b/gcc/testsuite/g++.dg/cpp2a/paren-init38.C
new file mode 100644
index 00000000000..58743e051da
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/paren-init38.C
@@ -0,0 +1,20 @@
+// PR c++/116424
+// { dg-do compile { target c++20 } }
+
+struct dd {
+  char *ptr;
+  dd();
+  dd(dd &&__str);
+};
+struct v {
+  dd n{};
+  int f = -1;
+  v operator|(const v &other) const;
+};
+struct cc : v {};
+static const cc a;
+static const cc b;
+static const cc c1(a | b);
+static const cc c2{a | b};
+static const cc c3 = cc(a | b);
+static const cc c4 = cc{a | b};

commit 0784e8934e96187e17c1b02dce1e0ed35d2229dd
Author: Marek Polacek <polacek@redhat.com>
Date:   Wed Aug 28 15:45:49 2024 -0400

    c++: wrong error due to std::initializer_list opt [PR116476]
    
    Here maybe_init_list_as_array gets elttype=field, init={NON_LVALUE_EXPR <2>}
    and it tries to convert the init's element type (int) to field
    using implicit_conversion, which works, so overall maybe_init_list_as_array
    is successful.
    
    But it constifies init_elttype so we end up with "const int".  Later,
    when we actually perform the conversion and invoke field::field(T&&),
    we end up with this error:
    
      error: binding reference of type 'int&&' to 'const int' discards qualifiers
    
    So I think maybe_init_list_as_array should try to perform the conversion,
    like it does below with fc.
    
            PR c++/116476
    
    gcc/cp/ChangeLog:
    
            * call.cc (maybe_init_list_as_array): Try convert_like and see if it
            worked.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/initlist-opt2.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 9f79c7ddff5f1b004803931406ad17eaba095fff)

diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc
index 423285caada..efc9072ab98 100644
--- a/gcc/cp/call.cc
+++ b/gcc/cp/call.cc
@@ -4318,6 +4318,7 @@ maybe_init_list_as_array (tree elttype, tree init)
   /* Check with a stub expression to weed out special cases, and check whether
      we call the same function for direct-init as copy-list-init.  */
   conversion_obstack_sentinel cos;
+  init_elttype = cp_build_qualified_type (init_elttype, TYPE_QUAL_CONST);
   tree arg = build_stub_object (init_elttype);
   conversion *c = implicit_conversion (elttype, init_elttype, arg, false,
 				       LOOKUP_NORMAL, tf_none);
@@ -4325,6 +4326,10 @@ maybe_init_list_as_array (tree elttype, tree init)
     c = next_conversion (c);
   if (!c || c->kind != ck_user)
     return NULL_TREE;
+  /* Check that we actually can perform the conversion.  */
+  if (convert_like (c, arg, tf_none) == error_mark_node)
+    /* Let the normal code give the error.  */
+    return NULL_TREE;
 
   tree first = CONSTRUCTOR_ELT (init, 0)->value;
   conversion *fc = implicit_conversion (elttype, init_elttype, first, false,
@@ -4357,7 +4362,6 @@ maybe_init_list_as_array (tree elttype, tree init)
   if (!is_xible (INIT_EXPR, elttype, copy_argtypes))
     return NULL_TREE;
 
-  init_elttype = cp_build_qualified_type (init_elttype, TYPE_QUAL_CONST);
   tree arr = build_array_of_n_type (init_elttype, CONSTRUCTOR_NELTS (init));
   arr = finish_compound_literal (arr, init, tf_none);
   DECL_MERGEABLE (TARGET_EXPR_SLOT (arr)) = true;
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist-opt2.C b/gcc/testsuite/g++.dg/cpp0x/initlist-opt2.C
new file mode 100644
index 00000000000..6c71857daab
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist-opt2.C
@@ -0,0 +1,21 @@
+// PR c++/116476
+// { dg-do compile { target c++11 } }
+
+namespace std {
+template <typename T>
+class initializer_list {
+  T *_M_len;
+  __SIZE_TYPE__ size;
+};
+} // namespace std
+
+
+template <class T>
+struct field {
+    field(T &&) {}
+};
+struct vector {
+  vector(std::initializer_list<field<int>>) { }
+};
+
+vector fields_normal{2};

commit 36de56d3d643e7b8131fa6671b9e85258a1d1ca1
Author: Marek Polacek <polacek@redhat.com>
Date:   Thu Aug 29 10:40:50 2024 -0400

    c++: ICE with -Wtautological-compare in template [PR116534]
    
    Pre r14-4793, we'd call warn_tautological_cmp -> operand_equal_p
    with operands wrapped in NON_DEPENDENT_EXPR, which works, since
    o_e_p bails for codes it doesn't know.  But now we pass operands
    not encapsulated in NON_DEPENDENT_EXPR, and crash, because the
    template tree for &a[x] has null DECL_FIELD_OFFSET.
    
    This patch extends r12-7797 to cover the case when DECL_FIELD_OFFSET
    is null.
    
            PR c++/116534
    
    gcc/ChangeLog:
    
            * fold-const.cc (operand_compare::operand_equal_p): If either
            field's DECL_FIELD_OFFSET is null, compare the fields with ==.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/warn/Wtautological-compare4.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 7ca486889b1b1c7e7bcbbca3b6caa103294ec07d)

diff --git a/gcc/fold-const.cc b/gcc/fold-const.cc
index 869f6363560..1e6b573ca01 100644
--- a/gcc/fold-const.cc
+++ b/gcc/fold-const.cc
@@ -3578,9 +3578,15 @@ operand_compare::operand_equal_p (const_tree arg0, const_tree arg1,
 
 		    /* Non-FIELD_DECL operands can appear in C++ templates.  */
 		    if (TREE_CODE (field0) != FIELD_DECL
-			|| TREE_CODE (field1) != FIELD_DECL
-			|| !operand_equal_p (DECL_FIELD_OFFSET (field0),
-					     DECL_FIELD_OFFSET (field1), flags)
+			|| TREE_CODE (field1) != FIELD_DECL)
+		      return false;
+
+		    if (!DECL_FIELD_OFFSET (field0)
+			|| !DECL_FIELD_OFFSET (field1))
+		      return field0 == field1;
+
+		    if (!operand_equal_p (DECL_FIELD_OFFSET (field0),
+					  DECL_FIELD_OFFSET (field1), flags)
 			|| !operand_equal_p (DECL_FIELD_BIT_OFFSET (field0),
 					     DECL_FIELD_BIT_OFFSET (field1),
 					     flags))
diff --git a/gcc/testsuite/g++.dg/warn/Wtautological-compare4.C b/gcc/testsuite/g++.dg/warn/Wtautological-compare4.C
new file mode 100644
index 00000000000..96308f49a42
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wtautological-compare4.C
@@ -0,0 +1,21 @@
+// PR c++/116534
+// { dg-do compile }
+// { dg-options "-Wall" }
+
+template <class A>
+struct Test {
+    bool foo(unsigned x, unsigned y) {
+        bool test = &a[x] == &b[y];
+	return test;
+    }
+    unsigned *a;
+    unsigned *b;
+};
+
+void
+g ()
+{
+  Test<int> t;
+  t.foo (0u, 1u);
+  t.foo (0u, 0u);
+}

commit c468a0051a5ff3f91498d955edb8f684d27afe0d
Author: Patrick Palka <ppalka@redhat.com>
Date:   Tue Oct 15 13:13:15 2024 -0400

    c++: checking ICE w/ constexpr if and lambda as def targ [PR117054]
    
    Here we're tripping over the assert in extract_locals_r which enforces
    that an extra-args tree appearing inside another extra-args tree doesn't
    actually have extra args.  This invariant doesn't always hold for lambdas
    (which recently gained the extra-args mechanism) but that should be
    harmless since cp_walk_subtrees doesn't walk LAMBDA_EXPR_EXTRA_ARGS and
    so should be immune to the PR114303 issue for now.  So let's just disable
    this assert for lambdas.
    
            PR c++/117054
    
    gcc/cp/ChangeLog:
    
            * pt.cc (extract_locals_r): Disable tree_extra_args assert
            for LAMBDA_EXPR.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/lambda-targ9.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit bb2bfdb2048aed18ef7dc01b51816a800e83ce54)

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 85228b9f943..818d5b65edc 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -13364,7 +13364,12 @@ extract_locals_r (tree *tp, int *walk_subtrees, void *data_)
        outermost tree.  Nested *_EXTRA_ARGS should naturally be empty since
        the outermost (extra-args) tree will intercept any substitution before
        a nested tree can.  */
-    gcc_checking_assert (tree_extra_args (*tp) == NULL_TREE);
+    gcc_checking_assert (tree_extra_args (*tp) == NULL_TREE
+			/* Except a lambda nested inside an extra-args tree
+			   can have extra args if we deferred partial
+			   substitution into it at template parse time.  But
+			   we don't walk LAMBDA_EXPR_EXTRA_ARGS anyway.  */
+			 || TREE_CODE (*tp) == LAMBDA_EXPR);
 
   if (TREE_CODE (*tp) == DECL_EXPR)
     {
diff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-targ9.C b/gcc/testsuite/g++.dg/cpp2a/lambda-targ9.C
new file mode 100644
index 00000000000..41f8526184a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/lambda-targ9.C
@@ -0,0 +1,16 @@
+// PR c++/117054
+// { dg-do compile { target c++20 } }
+
+template<auto = []{}>
+constexpr bool v = true;
+
+template<typename>
+void f() {
+  [](auto) {
+    if constexpr (v<>) { }
+  }(0);
+}
+
+int main() {
+  f<int>();
+}

commit ab465ce3a948cf57a315ea5b0c71780def0c8425
Author: Li Xu <xuli1@eswincomputing.com>
Date:   Thu Oct 10 08:51:19 2024 -0600

    RISC-V:Bugfix for C++ code compilation failure with rv32imafc_zve32f[pr116883]
    
    From: xuli <xuli1@eswincomputing.com>
    
    Example as follows:
    
    int main()
    {
      unsigned long arraya[128], arrayb[128], arrayc[128];
      for (int i = 0; i < 128; i++)
       {
          arraya[i] = arrayb[i] + arrayc[i];
       }
      return 0;
    }
    
    Compiled with -march=rv32imafc_zve32f -mabi=ilp32f, it will cause a compilation issue:
    
    riscv_vector.h:40:25: error: ambiguating new declaration of 'vint64m4_t __riscv_vle64(vbool16_t, const long long int*, unsigned int)'
       40 | #pragma riscv intrinsic "vector"
          |                         ^~~~~~~~
    riscv_vector.h:40:25: note: old declaration 'vint64m1_t __riscv_vle64(vbool64_t, const long long int*, unsigned int)'
    
    With zvl=32b, vbool16_t is registered in init_builtins() with
    type_common.precision=0x101 (nunits=2), mode_nunits[E_RVVMF16BI]=[2,2].
    
    Normally, vbool64_t is only valid when TARGET_MIN_VLEN > 32, so vbool64_t
    is not registered in init_builtins(), meaning vbool64_t=null.
    
    In order to implement __attribute__((target("arch=+v"))), we must register
    all vector types and all RVV intrinsics. Therefore, vbool64_t will be registered
    by default with zvl=128b in reinit_builtins(), resulting in
    type_common.precision=0x101 (nunits=2) and mode_nunits[E_RVVMF64BI]=[2,2].
    
    We then get TYPE_VECTOR_SUBPARTS(vbool16_t) == TYPE_VECTOR_SUBPARTS(vbool64_t),
    calculated using type_common.precision, resulting in 2. Since vbool16_t and
    vbool64_t have the same element type (boolean_type), the compiler treats them
    as the same type, leading to a re-declaration conflict.
    
    After all types and intrinsics have been registered, processing
    __attribute__((target("arch=+v"))) will update the parameters option and
    init_adjust_machine_modes. Therefore, to avoid conflicts, we can choose
    zvl=4096b for the null type reinit_builtins().
    
    command option zvl=32b
      type         nunits
      vbool64_t => null
      vbool32_t=> [1,1]
      vbool16_t=> [2,2]
      vbool8_t=>  [4,4]
      vbool4_t=>  [8,8]
      vbool2_t=>  [16,16]
      vbool1_t=>  [32,32]
    
    reinit zvl=128b
      vbool64_t => [2,2] conflict with zvl32b vbool16_t=> [2,2]
    reinit zvl=256b
      vbool64_t => [4,4] conflict with zvl32b vbool8_t=>  [4,4]
    reinit zvl=512b
      vbool64_t => [8,8] conflict with zvl32b vbool4_t=>  [8,8]
    reinit zvl=1024b
      vbool64_t => [16,16] conflict with zvl32b vbool2_t=>  [16,16]
    reinit zvl=2048b
      vbool64_t => [32,32] conflict with zvl32b vbool1_t=>  [32,32]
    reinit zvl=4096b
      vbool64_t => [64,64] zvl=4096b is ok
    
    Signed-off-by: xuli <xuli1@eswincomputing.com>
    
            PR target/116883
    
    gcc/ChangeLog:
    
            * config/riscv/riscv-c.cc (riscv_pragma_intrinsic_flags_pollute): Choose zvl4096b
            to initialize null type.
    
    gcc/testsuite/ChangeLog:
    
            * g++.target/riscv/rvv/base/pr116883.C: New test.
    
    (cherry picked from commit fd8e590ff11266598d8f9b3d03d72ba7a6100512)

diff --git a/gcc/config/riscv/riscv-c.cc b/gcc/config/riscv/riscv-c.cc
index 71112d9c66d..c59f408d3a8 100644
--- a/gcc/config/riscv/riscv-c.cc
+++ b/gcc/config/riscv/riscv-c.cc
@@ -59,7 +59,12 @@ riscv_pragma_intrinsic_flags_pollute (struct pragma_intrinsic_flags *flags)
   riscv_zvl_flags = riscv_zvl_flags
     | MASK_ZVL32B
     | MASK_ZVL64B
-    | MASK_ZVL128B;
+    | MASK_ZVL128B
+    | MASK_ZVL256B
+    | MASK_ZVL512B
+    | MASK_ZVL1024B
+    | MASK_ZVL2048B
+    | MASK_ZVL4096B;
 
   riscv_vector_elen_flags = riscv_vector_elen_flags
     | MASK_VECTOR_ELEN_32
diff --git a/gcc/testsuite/g++.target/riscv/rvv/base/pr116883.C b/gcc/testsuite/g++.target/riscv/rvv/base/pr116883.C
new file mode 100644
index 00000000000..15bbec40bdd
--- /dev/null
+++ b/gcc/testsuite/g++.target/riscv/rvv/base/pr116883.C
@@ -0,0 +1,15 @@
+/* Test that we do not have ice when compile */
+/* { dg-do compile } */
+/* { dg-options "-march=rv32imafc_zve32f -mabi=ilp32f" } */
+
+#include <riscv_vector.h>
+
+int main()
+{
+  unsigned long arraya[128], arrayb[128], arrayc[128];
+  for (int i; i < 128; i++)
+   {
+      arraya[i] = arrayb[i] + arrayc[i];
+   }
+  return 0;
+}

commit f057e958732cd2627b6db127fa6d4d882b61dd5f
Author: Martin Jambor <mjambor@suse.cz>
Date:   Fri Oct 18 21:32:16 2024 +0200

    ipa: Treat static constructors and destructors as non-local (PR 115815)
    
    In PR 115815, IPA-SRA thought it had control over all invocations of a
    (recursive) static destructor but it did not see the implied
    invocation which led to the original being left behind and the
    clean-up code encountering uses of SSAs that definitely should have
    been dead.
    
    Fixed by teaching cgraph_node::can_be_local_p about static
    constructors and destructors.  Similar test is missing in
    cgraph_node::local_p so I added the check there as well.
    
    In addition to the commit with the fix, this backport also contains
    squashed commit 1a458bdeb223ffa501bac8e76182115681967094 which fixes
    dejagnu directives in the testcase.
    
    gcc/ChangeLog:
    
    2024-07-25  Martin Jambor  <mjambor@suse.cz>
    
            PR ipa/115815
            * cgraph.cc (cgraph_node_cannot_be_local_p_1): Also check
            DECL_STATIC_CONSTRUCTOR and DECL_STATIC_DESTRUCTOR.
            * ipa-visibility.cc (non_local_p): Likewise.
            (cgraph_node::local_p): Delete extraneous line of tabs.
    
    gcc/testsuite/ChangeLog:
    
    2024-07-25  Martin Jambor  <mjambor@suse.cz>
    
            PR ipa/115815
            * gcc.dg/lto/pr115815_0.c: New test.
    
    (cherry picked from commit e98ad6a049c96c21cf641954584c2f5b7df0ce93)

diff --git a/gcc/cgraph.cc b/gcc/cgraph.cc
index 473d8410bc9..39a3adbc7c3 100644
--- a/gcc/cgraph.cc
+++ b/gcc/cgraph.cc
@@ -2434,7 +2434,9 @@ cgraph_node_cannot_be_local_p_1 (cgraph_node *node, void *)
 		&& !node->forced_by_abi
 		&& !node->used_from_object_file_p ()
 		&& !node->same_comdat_group)
-	       || !node->externally_visible));
+	       || !node->externally_visible)
+	   && !DECL_STATIC_CONSTRUCTOR (node->decl)
+	   && !DECL_STATIC_DESTRUCTOR (node->decl));
 }
 
 /* Return true if cgraph_node can be made local for API change.
diff --git a/gcc/ipa-visibility.cc b/gcc/ipa-visibility.cc
index 501d3c304aa..21f0c47f388 100644
--- a/gcc/ipa-visibility.cc
+++ b/gcc/ipa-visibility.cc
@@ -102,7 +102,9 @@ non_local_p (struct cgraph_node *node, void *data ATTRIBUTE_UNUSED)
 	   && !node->externally_visible
 	   && !node->used_from_other_partition
 	   && !node->in_other_partition
-	   && node->get_availability () >= AVAIL_AVAILABLE);
+	   && node->get_availability () >= AVAIL_AVAILABLE
+	   && !DECL_STATIC_CONSTRUCTOR (node->decl)
+	   && !DECL_STATIC_DESTRUCTOR (node->decl));
 }
 
 /* Return true when function can be marked local.  */
@@ -116,7 +118,6 @@ cgraph_node::local_p (void)
      return n->callees->callee->local_p ();
    return !n->call_for_symbol_thunks_and_aliases (non_local_p,
 						  NULL, true);
-					
 }
 
 /* A helper for comdat_can_be_unshared_p.  */
diff --git a/gcc/testsuite/gcc.dg/lto/pr115815_0.c b/gcc/testsuite/gcc.dg/lto/pr115815_0.c
new file mode 100644
index 00000000000..ade91def55b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/pr115815_0.c
@@ -0,0 +1,22 @@
+/* { dg-lto-options {{-O2 -flto}} }  */
+/* { dg-lto-do link } */
+/* { dg-require-effective-target global_constructor } */
+
+int a;
+volatile int v;
+volatile int w;
+
+int __attribute__((destructor))
+b() {
+  if (v)
+    return a + b();
+  v = 5;
+  return 0;
+}
+
+int
+main (int argc, char **argv)
+{
+  w = 1;
+  return 0;
+}

commit e2df2ca340c6baf966d69770c7c092f037728886
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Oct 19 00:24:39 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b41bbb931d2..7bc56373953 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,42 @@
+2024-10-18  Martin Jambor  <mjambor@suse.cz>
+
+	Backported from master:
+	2024-09-06  Martin Jambor  <mjambor@suse.cz>
+
+	PR ipa/115815
+	* cgraph.cc (cgraph_node_cannot_be_local_p_1): Also check
+	DECL_STATIC_CONSTRUCTOR and DECL_STATIC_DESTRUCTOR.
+	* ipa-visibility.cc (non_local_p): Likewise.
+	(cgraph_node::local_p): Delete extraneous line of tabs.
+
+2024-10-18  Li Xu  <xuli1@eswincomputing.com>
+
+	Backported from master:
+	2024-10-10  Li Xu  <xuli1@eswincomputing.com>
+
+	PR target/116883
+	* config/riscv/riscv-c.cc (riscv_pragma_intrinsic_flags_pollute): Choose zvl4096b
+	to initialize null type.
+
+2024-10-17  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-17  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116534
+	* fold-const.cc (operand_compare::operand_equal_p): If either
+	field's DECL_FIELD_OFFSET is null, compare the fields with ==.
+
+2024-10-16  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2024-10-15  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/117116
+	* config/i386/i386-expand.cc (expand_vector_set): Force "val"
+	into a register before VEC_MERGE/VEC_DUPLICATE RTX is generated
+	if it doesn't satisfy nonimmediate_operand predicate.
+
 2024-10-15  Victor Do Nascimento  <victor.donascimento@arm.com>
 
 	* tree-if-conv.cc (predicate_statements): Fix handling of
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f776b88810d..c8d7d3442a8 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241016
+20241019
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index f78430172e3..4c5c4fe3253 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,30 @@
+2024-10-17  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-10-15  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/117054
+	* pt.cc (extract_locals_r): Disable tree_extra_args assert
+	for LAMBDA_EXPR.
+
+2024-10-17  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-08-28  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116476
+	* call.cc (maybe_init_list_as_array): Try convert_like and see if it
+	worked.
+
+2024-10-17  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-08-28  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116424
+	* typeck2.cc (process_init_constructor_record): Move the clearing of
+	TARGET_EXPR_ELIDING_P down.
+
 2024-10-13  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d6134648f3c..7b1c30e109c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,59 @@
+2024-10-18  Martin Jambor  <mjambor@suse.cz>
+
+	Backported from master:
+	2024-09-06  Martin Jambor  <mjambor@suse.cz>
+
+	PR ipa/115815
+	* gcc.dg/lto/pr115815_0.c: New test.
+
+2024-10-18  Li Xu  <xuli1@eswincomputing.com>
+
+	Backported from master:
+	2024-10-10  Li Xu  <xuli1@eswincomputing.com>
+
+	PR target/116883
+	* g++.target/riscv/rvv/base/pr116883.C: New test.
+
+2024-10-17  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-10-15  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/117054
+	* g++.dg/cpp2a/lambda-targ9.C: New test.
+
+2024-10-17  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-17  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116534
+	* g++.dg/warn/Wtautological-compare4.C: New test.
+
+2024-10-17  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-08-28  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116476
+	* g++.dg/cpp0x/initlist-opt2.C: New test.
+
+2024-10-17  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-08-28  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116424
+	* g++.dg/cpp2a/paren-init38.C: New test.
+
+2024-10-16  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2024-10-15  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/117116
+	* gcc.target/i386/pr117116.c: New test.
+
 2024-10-15  Victor Do Nascimento  <victor.donascimento@arm.com>
 
 	* gcc.dg/vect/vect-fncall-mask.c: New.

commit 2eb68180aac4d275537e3bdcbc39f2aa7b477d9e
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Oct 20 00:23:05 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c8d7d3442a8..f616e4b768b 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241019
+20241020

commit 809a58229a00d087341a8ae9c185e204c5124799
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Oct 21 00:23:25 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f616e4b768b..18b2d489abc 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241020
+20241021

commit 79e7e02b7cc578d03eab2b50c029f44409ef8e26
Author: liuhongt <hongtao.liu@intel.com>
Date:   Wed Oct 16 13:43:48 2024 +0800

    Refine splitters related to "combine vpcmpuw + zero_extend to vpcmpuw"
    
    r12-6103-g1a7ce8570997eb combines vpcmpuw + zero_extend to vpcmpuw
    with the pre_reload splitter, but the splitter transforms the
    zero_extend into a subreg which make reload think the upper part is
    garbage, it's not correct.
    
    The patch adjusts the zero_extend define_insn_and_split to
    define_insn to keep zero_extend.
    
    gcc/ChangeLog:
    
            PR target/117159
            * config/i386/sse.md
            (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
            Change from define_insn_and_split to define_insn.
            (*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
            Ditto.
            (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
            Ditto.
            (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
            Ditto.
            (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
            Split to the zero_extend pattern.
            (*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
            Ditto.
            (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
            Ditto.
            (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
            Ditto.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr117159.c: New test.
            * gcc.target/i386/avx512bw-pr103750-1.c: Remove xfail.
            * gcc.target/i386/avx512bw-pr103750-2.c: Remove xfail.
    
    (cherry picked from commit 5259d3927c1c8e3a15b4b844adef59b48c241233)

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index c91a7e07bc7..e186b6ad452 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -4006,32 +4006,19 @@
 
 ;; Since vpcmpd implicitly clear the upper bits of dest, transform
 ;; vpcmpd + zero_extend to vpcmpd since the instruction
-(define_insn_and_split "*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>"
-  [(set (match_operand:SWI248x 0 "register_operand")
+(define_insn "*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>"
+  [(set (match_operand:SWI248x 0 "register_operand" "=k")
 	(zero_extend:SWI248x
 	  (unspec:<V48H_AVX512VL:avx512fmaskmode>
-	    [(match_operand:V48H_AVX512VL 1 "nonimmediate_operand")
-	     (match_operand:V48H_AVX512VL 2 "nonimmediate_operand")
-	     (match_operand:SI 3 "const_0_to_7_operand")]
+	    [(match_operand:V48H_AVX512VL 1 "nonimmediate_operand" "v")
+	     (match_operand:V48H_AVX512VL 2 "nonimmediate_operand" "vm")
+	     (match_operand:SI 3 "const_0_to_7_operand" "n")]
 	    UNSPEC_PCMP)))]
   "TARGET_AVX512F
    && (!VALID_MASK_AVX512BW_MODE (<SWI248x:MODE>mode) || TARGET_AVX512BW)
-   && ix86_pre_reload_split ()
    && (GET_MODE_NUNITS (<V48H_AVX512VL:MODE>mode)
       < GET_MODE_PRECISION (<SWI248x:MODE>mode))"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-	(unspec:<V48H_AVX512VL:avx512fmaskmode>
-	  [(match_dup 1)
-	   (match_dup 2)
-	   (match_dup 3)]
-	  UNSPEC_PCMP))]
-{
-  operands[1] = force_reg (<V48H_AVX512VL:MODE>mode, operands[1]);
-  operands[0] = lowpart_subreg (<V48H_AVX512VL:avx512fmaskmode>mode,
-				 operands[0], <SWI248x:MODE>mode);
-}
+  "v<ssecmpintprefix>cmp<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
   [(set_attr "type" "ssecmp")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "evex")
@@ -4059,21 +4046,22 @@
   "#"
   "&& 1"
   [(set (match_dup 0)
-	(unspec:<V48H_AVX512VL:avx512fmaskmode>
-	  [(match_dup 1)
-	   (match_dup 2)
-	   (match_dup 3)]
-	  UNSPEC_PCMP))
-   (set (match_dup 4) (match_dup 0))]
+    (zero_extend:SWI248x
+	  (unspec:<V48H_AVX512VL:avx512fmaskmode>
+	    [(match_dup 1)
+	     (match_dup 2)
+	     (match_dup 3)]
+	    UNSPEC_PCMP)))
+   (set (match_dup 4) (match_dup 5))]
 {
-  operands[1] = force_reg (<V48H_AVX512VL:MODE>mode, operands[1]);
-  operands[0] = lowpart_subreg (<V48H_AVX512VL:avx512fmaskmode>mode,
+  operands[5] = lowpart_subreg (<V48H_AVX512VL:avx512fmaskmode>mode,
 				operands[0], <SWI248x:MODE>mode);
-}
-  [(set_attr "type" "ssecmp")
-   (set_attr "length_immediate" "1")
-   (set_attr "prefix" "evex")
-   (set_attr "mode" "<V48H_AVX512VL:sseinsnmode>")])
+  if (SUBREG_P (operands[5]))
+    {
+      SUBREG_PROMOTED_VAR_P (operands[5]) = 1;
+      SUBREG_PROMOTED_SET (operands[5], 1);
+    }
+})
 
 (define_insn_and_split "*<avx512>_cmp<mode>3"
   [(set (match_operand:<avx512fmaskmode> 0 "register_operand")
@@ -4108,31 +4096,18 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "<sseinsnmode>")])
 
-(define_insn_and_split "*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>"
-  [(set (match_operand:SWI248x 0 "register_operand")
+(define_insn "*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>"
+  [(set (match_operand:SWI248x 0 "register_operand" "=k")
 	(zero_extend:SWI248x
 	  (unspec:<VI12_AVX512VL:avx512fmaskmode>
-	    [(match_operand:VI12_AVX512VL 1 "nonimmediate_operand")
-	     (match_operand:VI12_AVX512VL 2 "nonimmediate_operand")
-	     (match_operand:SI 3 "const_0_to_7_operand")]
+	    [(match_operand:VI12_AVX512VL 1 "nonimmediate_operand" "v")
+	     (match_operand:VI12_AVX512VL 2 "nonimmediate_operand" "vm")
+	     (match_operand:SI 3 "const_0_to_7_operand" "n")]
 	    UNSPEC_PCMP)))]
   "TARGET_AVX512BW
-  && ix86_pre_reload_split ()
-  && (GET_MODE_NUNITS (<VI12_AVX512VL:MODE>mode)
-      < GET_MODE_PRECISION (<SWI248x:MODE>mode))"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-	(unspec:<VI12_AVX512VL:avx512fmaskmode>
-	  [(match_dup 1)
-	   (match_dup 2)
-	   (match_dup 3)]
-	  UNSPEC_PCMP))]
-{
-  operands[1] = force_reg (<VI12_AVX512VL:MODE>mode, operands[1]);
-  operands[0] = lowpart_subreg (<VI12_AVX512VL:avx512fmaskmode>mode,
-				operands[0], <SWI248x:MODE>mode);
-}
+   && (GET_MODE_NUNITS (<VI12_AVX512VL:MODE>mode)
+       < GET_MODE_PRECISION (<SWI248x:MODE>mode))"
+  "vpcmp<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
   [(set_attr "type" "ssecmp")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "evex")
@@ -4159,16 +4134,21 @@
   "#"
   "&& 1"
   [(set (match_dup 0)
-	(unspec:<VI12_AVX512VL:avx512fmaskmode>
-	  [(match_dup 1)
-	   (match_dup 2)
-	   (match_dup 3)]
-	  UNSPEC_PCMP))
-   (set (match_dup 4) (match_dup 0))]
+	(zero_extend:SWI248x
+	  (unspec:<VI12_AVX512VL:avx512fmaskmode>
+	   [(match_dup 1)
+		(match_dup 2)
+		(match_dup 3)]
+	   UNSPEC_PCMP)))
+   (set (match_dup 4) (match_dup 5))]
 {
-  operands[1] = force_reg (<VI12_AVX512VL:MODE>mode, operands[1]);
-  operands[0] = lowpart_subreg (<VI12_AVX512VL:avx512fmaskmode>mode,
+  operands[5] = lowpart_subreg (<VI12_AVX512VL:avx512fmaskmode>mode,
 				operands[0], <SWI248x:MODE>mode);
+  if (SUBREG_P (operands[5]))
+    {
+      SUBREG_PROMOTED_VAR_P (operands[5]) = 1;
+      SUBREG_PROMOTED_SET (operands[5], 1);
+    }
 }
   [(set_attr "type" "ssecmp")
    (set_attr "length_immediate" "1")
@@ -4226,31 +4206,18 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "<sseinsnmode>")])
 
-(define_insn_and_split "*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>"
-  [(set (match_operand:SWI248x 0 "register_operand")
+(define_insn "*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>"
+  [(set (match_operand:SWI248x 0 "register_operand" "=k")
 	(zero_extend:SWI248x
 	  (unspec:<VI12_AVX512VL:avx512fmaskmode>
-	    [(match_operand:VI12_AVX512VL 1 "nonimmediate_operand")
-	     (match_operand:VI12_AVX512VL 2 "nonimmediate_operand")
-	     (match_operand:SI 3 "const_0_to_7_operand")]
+	    [(match_operand:VI12_AVX512VL 1 "nonimmediate_operand" "v")
+	     (match_operand:VI12_AVX512VL 2 "nonimmediate_operand" "vm")
+	     (match_operand:SI 3 "const_0_to_7_operand" "n")]
 	    UNSPEC_UNSIGNED_PCMP)))]
   "TARGET_AVX512BW
-  && ix86_pre_reload_split ()
   && (GET_MODE_NUNITS (<VI12_AVX512VL:MODE>mode)
       < GET_MODE_PRECISION (<SWI248x:MODE>mode))"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-	(unspec:<VI12_AVX512VL:avx512fmaskmode>
-	  [(match_dup 1)
-	   (match_dup 2)
-	   (match_dup 3)]
-	  UNSPEC_UNSIGNED_PCMP))]
-{
-  operands[1] = force_reg (<VI12_AVX512VL:MODE>mode, operands[1]);
-  operands[0] = lowpart_subreg (<VI12_AVX512VL:avx512fmaskmode>mode,
-				operands[0], <SWI248x:MODE>mode);
-}
+  "vpcmpu<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
   [(set_attr "type" "ssecmp")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "evex")
@@ -4278,16 +4245,21 @@
   "#"
   "&& 1"
   [(set (match_dup 0)
-	(unspec:<VI12_AVX512VL:avx512fmaskmode>
-	  [(match_dup 1)
-	   (match_dup 2)
-	   (match_dup 3)]
-	  UNSPEC_UNSIGNED_PCMP))
-   (set (match_dup 4) (match_dup 0))]
-{
-  operands[1] = force_reg (<VI12_AVX512VL:MODE>mode, operands[1]);
-  operands[0] = lowpart_subreg (<VI12_AVX512VL:avx512fmaskmode>mode,
+	(zero_extend:SWI248x
+	 (unspec:<VI12_AVX512VL:avx512fmaskmode>
+	   [(match_dup 1)
+		(match_dup 2)
+		(match_dup 3)]
+	   UNSPEC_UNSIGNED_PCMP)))
+   (set (match_dup 4) (match_dup 5))]
+{
+  operands[5] = lowpart_subreg (<VI12_AVX512VL:avx512fmaskmode>mode,
 				operands[0], <SWI248x:MODE>mode);
+  if (SUBREG_P (operands[5]))
+    {
+      SUBREG_PROMOTED_VAR_P (operands[5]) = 1;
+      SUBREG_PROMOTED_SET (operands[5], 1);
+    }
 }
   [(set_attr "type" "ssecmp")
    (set_attr "length_immediate" "1")
@@ -4323,32 +4295,19 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "<sseinsnmode>")])
 
-(define_insn_and_split "*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>"
-  [(set (match_operand:SWI248x 0 "register_operand")
+(define_insn "*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>"
+  [(set (match_operand:SWI248x 0 "register_operand" "=k")
 	(zero_extend:SWI248x
 	  (unspec:<VI48_AVX512VL:avx512fmaskmode>
-	    [(match_operand:VI48_AVX512VL 1 "nonimmediate_operand")
-	     (match_operand:VI48_AVX512VL 2 "nonimmediate_operand")
-	     (match_operand:SI 3 "const_0_to_7_operand")]
+	    [(match_operand:VI48_AVX512VL 1 "nonimmediate_operand" "v")
+	     (match_operand:VI48_AVX512VL 2 "nonimmediate_operand" "vm")
+	     (match_operand:SI 3 "const_0_to_7_operand" "n")]
 	    UNSPEC_UNSIGNED_PCMP)))]
   "TARGET_AVX512F
    && (!VALID_MASK_AVX512BW_MODE (<SWI248x:MODE>mode) || TARGET_AVX512BW)
-   && ix86_pre_reload_split ()
    && (GET_MODE_NUNITS (<VI48_AVX512VL:MODE>mode)
       < GET_MODE_PRECISION (<SWI248x:MODE>mode))"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-	(unspec:<VI48_AVX512VL:avx512fmaskmode>
-	  [(match_dup 1)
-	   (match_dup 2)
-	   (match_dup 3)]
-	  UNSPEC_UNSIGNED_PCMP))]
-{
-  operands[1] = force_reg (<VI48_AVX512VL:MODE>mode, operands[1]);
-  operands[0] = lowpart_subreg (<VI48_AVX512VL:avx512fmaskmode>mode,
-				operands[0], <SWI248x:MODE>mode);
-}
+  "vpcmpu<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
   [(set_attr "type" "ssecmp")
    (set_attr "length_immediate" "1")
    (set_attr "prefix" "evex")
@@ -4376,16 +4335,21 @@
   "#"
   "&& 1"
   [(set (match_dup 0)
-	(unspec:<VI48_AVX512VL:avx512fmaskmode>
-	  [(match_dup 1)
-	   (match_dup 2)
-	   (match_dup 3)]
-	  UNSPEC_UNSIGNED_PCMP))
-   (set (match_dup 4) (match_dup 0))]
-{
-  operands[1] = force_reg (<VI48_AVX512VL:MODE>mode, operands[1]);
-  operands[0] = lowpart_subreg (<VI48_AVX512VL:avx512fmaskmode>mode,
+	(zero_extend:SWI248x
+	 (unspec:<VI48_AVX512VL:avx512fmaskmode>
+	   [(match_dup 1)
+		(match_dup 2)
+		(match_dup 3)]
+	   UNSPEC_UNSIGNED_PCMP)))
+   (set (match_dup 4) (match_dup 5))]
+{
+  operands[5] = lowpart_subreg (<VI48_AVX512VL:avx512fmaskmode>mode,
 				operands[0], <SWI248x:MODE>mode);
+  if (SUBREG_P (operands[5]))
+    {
+      SUBREG_PROMOTED_VAR_P (operands[5]) = 1;
+      SUBREG_PROMOTED_SET (operands[5], 1);
+    }
 }
   [(set_attr "type" "ssecmp")
    (set_attr "length_immediate" "1")
diff --git a/gcc/testsuite/gcc.target/i386/avx512bw-pr103750-1.c b/gcc/testsuite/gcc.target/i386/avx512bw-pr103750-1.c
index b1165f069bb..e7d6183232b 100644
--- a/gcc/testsuite/gcc.target/i386/avx512bw-pr103750-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx512bw-pr103750-1.c
@@ -1,8 +1,7 @@
 /* PR target/103750 */
 /* { dg-do compile }  */
 /* { dg-options "-O2 -mavx512bw -mavx512vl" } */
-/* { dg-final { scan-assembler-not "kmov" { xfail ia32 } } } */
-/* xfail need to be fixed.  */
+/* { dg-final { scan-assembler-not "kmov" } } */
 
 #include <immintrin.h>
 extern __m128i* pi128;
diff --git a/gcc/testsuite/gcc.target/i386/avx512bw-pr103750-2.c b/gcc/testsuite/gcc.target/i386/avx512bw-pr103750-2.c
index 7303f5403ba..3392e193222 100644
--- a/gcc/testsuite/gcc.target/i386/avx512bw-pr103750-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx512bw-pr103750-2.c
@@ -1,8 +1,7 @@
 /* PR target/103750 */
 /* { dg-do compile }  */
 /* { dg-options "-O2 -mavx512dq -mavx512bw -mavx512vl" } */
-/* { dg-final { scan-assembler-not "kmov" { xfail ia32 } } } */
-/* xfail need to be fixed.  */
+/* { dg-final { scan-assembler-not "kmov" } } */
 
 #include <immintrin.h>
 extern __m128i* pi128;
diff --git a/gcc/testsuite/gcc.target/i386/pr117159.c b/gcc/testsuite/gcc.target/i386/pr117159.c
new file mode 100644
index 00000000000..b67d682ecef
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117159.c
@@ -0,0 +1,42 @@
+/* { dg-do run } */
+/* { dg-options "-Os -mavx512bw" } */
+/* { dg-require-effective-target avx512bw } */
+
+typedef __attribute__((__vector_size__ (4))) unsigned char W;
+typedef __attribute__((__vector_size__ (64))) int V;
+typedef __attribute__((__vector_size__ (64))) long long Vq;
+
+W w;
+V v;
+Vq vq;
+
+static inline W
+foo (short m)
+{
+  unsigned k = __builtin_ia32_pcmpgtq512_mask ((Vq) { }, vq, m);
+  W r = (W) k + w;
+  return r;
+}
+
+static inline W
+foo1 (short m)
+{
+  unsigned k = __builtin_ia32_pcmpgtd512_mask ((V) {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, v, m);
+  W r = (W) k + w;
+  return r;
+}
+
+int
+main ()
+{
+  if (!__builtin_cpu_supports ("avx512bw"))
+    return 0;
+  W y = foo1 (65535);
+  if (!y[0] || !y[1] || y[2] || y[3])
+    __builtin_abort();
+  W x = foo (65535);
+  if (x[0] || x[1] || x[2] || x[3])
+    __builtin_abort();
+
+  return 0;
+}

commit 17f1277d78c51d64a222ade218796837f9153f42
Author: Jeevitha <jeevitha@linux.ibm.com>
Date:   Mon Oct 21 03:54:03 2024 -0500

    rs6000: Correct the function code for _AMO_LD_DEC_BOUNDED
    
    Corrected the function code for the Atomic Memory Operation "Fetch and Decrement
    Bounded", changing it from 0x1A to 0x1C.
    
    2024-10-11 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
    
    gcc/
    
            * config/rs6000/amo.h (enum _AMO_LD): Correct the function code for
            _AMO_LD_DEC_BOUNDED.
    
    (cherry picked from commit 1a4c5643a5911d130dfab9a064222baeeb7f9be7)

diff --git a/gcc/config/rs6000/amo.h b/gcc/config/rs6000/amo.h
index 6b9e4e088b9..1303c9d9dab 100644
--- a/gcc/config/rs6000/amo.h
+++ b/gcc/config/rs6000/amo.h
@@ -46,7 +46,7 @@ enum _AMO_LD {
   _AMO_LD_CS_NE		= 0x10,		/* Compare and Swap Not Equal.  */
   _AMO_LD_INC_BOUNDED	= 0x18,		/* Fetch and Increment Bounded.  */
   _AMO_LD_INC_EQUAL	= 0x19,		/* Fetch and Increment Equal.  */
-  _AMO_LD_DEC_BOUNDED	= 0x1A		/* Fetch and Decrement Bounded.  */
+  _AMO_LD_DEC_BOUNDED	= 0x1C		/* Fetch and Decrement Bounded.  */
 };
 
 /* Implementation of the simple LWAT/LDAT operations that take one register and

commit 2ac6159f8b5119e75a19f70f3c4578895f59cb53
Author: Richard Biener <rguenther@suse.de>
Date:   Fri May 17 11:02:29 2024 +0200

    middle-end/115110 - Fix view_converted_memref_p
    
    view_converted_memref_p was checking the reference type against the
    pointer type of the offset operand rather than its pointed-to type
    which leads to all refs being subject to view-convert treatment
    in get_alias_set causing numerous testsuite fails but with its
    new uses from r15-512-g9b7cad5884f21c is also a wrong-code issue.
    
            PR middle-end/115110
            * tree-ssa-alias.cc (view_converted_memref_p): Fix.
    
    (cherry picked from commit a5b3721c06646bf5b9b50a22964e8e2bd4d03f5f)

diff --git a/gcc/tree-ssa-alias.cc b/gcc/tree-ssa-alias.cc
index e7c1c1aa624..72af21c0213 100644
--- a/gcc/tree-ssa-alias.cc
+++ b/gcc/tree-ssa-alias.cc
@@ -2049,8 +2049,9 @@ view_converted_memref_p (tree base)
 {
   if (TREE_CODE (base) != MEM_REF && TREE_CODE (base) != TARGET_MEM_REF)
     return false;
-  return same_type_for_tbaa (TREE_TYPE (base),
-			     TREE_TYPE (TREE_OPERAND (base, 1))) != 1;
+  return (same_type_for_tbaa (TREE_TYPE (base),
+			      TREE_TYPE (TREE_TYPE (TREE_OPERAND (base, 1))))
+	  != 1);
 }
 
 /* Return true if an indirect reference based on *PTR1 constrained

commit 69934cb171fdd9d58dd64bb1811afaf43f6f7e44
Author: Richard Biener <rguenther@suse.de>
Date:   Sun Oct 13 15:12:44 2024 +0200

    tree-optimization/116290 - fix compare-debug issue in ldist
    
    Loop distribution does different analysis with -g0/-g due to counting
    a debug stmt starting a BB against a limit which will everntually
    lead to different IVOPTs choices.  I've fixed a possible IVOPTs
    issue on the way even though it doesn't make a difference here.
    
            PR tree-optimization/116290
            * tree-loop-distribution.cc (determine_reduction_stmt_1): PHIs
            have no debug variants.  Start with first non-debug real stmt.
            * tree-ssa-loop-ivopts.cc (find_givs_in_bb): Do not analyze
            debug stmts.
    
            * gcc.dg/pr116290.c: New testcase.
    
    (cherry picked from commit 566740013b3445162b8c4bc2205e4e568d014968)

diff --git a/gcc/testsuite/gcc.dg/pr116290.c b/gcc/testsuite/gcc.dg/pr116290.c
new file mode 100644
index 00000000000..97b946bda89
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr116290.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-g -O2 -fcompare-debug" } */
+
+char *camel_message_info_class_intern_init_part;
+void g_once_init_enter();
+void camel_message_info_class_intern_init() {
+  int ii;
+  char *label;
+  for (; camel_message_info_class_intern_init_part[ii]; ii++)
+    if (camel_message_info_class_intern_init_part) {
+      if (label && *label)
+        g_once_init_enter();
+      label = &camel_message_info_class_intern_init_part[ii + 1];
+      camel_message_info_class_intern_init_part[ii] = ' ';
+    }
+  if (label)
+    g_once_init_enter();
+}
diff --git a/gcc/tree-loop-distribution.cc b/gcc/tree-loop-distribution.cc
index cb804ba48ff..2bbd8da33e8 100644
--- a/gcc/tree-loop-distribution.cc
+++ b/gcc/tree-loop-distribution.cc
@@ -3551,7 +3551,7 @@ determine_reduction_stmt_1 (const loop_p loop, const basic_block *bbs)
       basic_block bb = bbs[i];
 
       for (gphi_iterator bsi = gsi_start_phis (bb); !gsi_end_p (bsi);
-	   gsi_next_nondebug (&bsi))
+	   gsi_next (&bsi))
 	{
 	  gphi *phi = bsi.phi ();
 	  if (virtual_operand_p (gimple_phi_result (phi)))
@@ -3564,8 +3564,8 @@ determine_reduction_stmt_1 (const loop_p loop, const basic_block *bbs)
 	    }
 	}
 
-      for (gimple_stmt_iterator bsi = gsi_start_bb (bb); !gsi_end_p (bsi);
-	   gsi_next_nondebug (&bsi), ++ninsns)
+      for (gimple_stmt_iterator bsi = gsi_start_nondebug_bb (bb);
+	   !gsi_end_p (bsi); gsi_next_nondebug (&bsi), ++ninsns)
 	{
 	  /* Bail out early for loops which are unlikely to match.  */
 	  if (ninsns > 16)
diff --git a/gcc/tree-ssa-loop-ivopts.cc b/gcc/tree-ssa-loop-ivopts.cc
index 7cae5bdefea..a904910999f 100644
--- a/gcc/tree-ssa-loop-ivopts.cc
+++ b/gcc/tree-ssa-loop-ivopts.cc
@@ -1460,7 +1460,8 @@ find_givs_in_bb (struct ivopts_data *data, basic_block bb)
   gimple_stmt_iterator bsi;
 
   for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi); gsi_next (&bsi))
-    find_givs_in_stmt (data, gsi_stmt (bsi));
+    if (!is_gimple_debug (gsi_stmt (bsi)))
+      find_givs_in_stmt (data, gsi_stmt (bsi));
 }
 
 /* Finds general ivs.  */

commit 8d8b8ed7835a1a03932a8c90c7c725f9903450d5
Author: Richard Biener <rguenther@suse.de>
Date:   Sun Oct 13 11:42:27 2024 +0200

    tree-optimization/116481 - avoid building function_type[]
    
    The following avoids building an array type with function or method
    element type during diagnosing an array bound violation as this
    will result in an error, rejecting a program with a not too useful
    error message.  Instead build such array type manually.
    
            PR tree-optimization/116481
            * pointer-query.cc (build_printable_array_type):
            Build an array types with function or method element type
            manually to avoid bogus diagnostic.
    
            * gcc.dg/pr116481.c: New testcase.
    
    (cherry picked from commit 1506027347776a2f6ec5b92d56ef192e85944e2e)

diff --git a/gcc/pointer-query.cc b/gcc/pointer-query.cc
index ccf9d823870..002c8ed2162 100644
--- a/gcc/pointer-query.cc
+++ b/gcc/pointer-query.cc
@@ -2587,6 +2587,17 @@ array_elt_at_offset (tree artype, HOST_WIDE_INT off,
 tree
 build_printable_array_type (tree eltype, unsigned HOST_WIDE_INT nelts)
 {
+  /* Cannot build an array type of functions or methods without
+     an error diagnostic.  */
+  if (FUNC_OR_METHOD_TYPE_P (eltype))
+    {
+      tree arrtype = make_node (ARRAY_TYPE);
+      TREE_TYPE (arrtype) = eltype;
+      TYPE_SIZE (arrtype) = bitsize_zero_node;
+      TYPE_SIZE_UNIT (arrtype) = size_zero_node;
+      return arrtype;
+    }
+
   if (TYPE_SIZE_UNIT (eltype)
       && TREE_CODE (TYPE_SIZE_UNIT (eltype)) == INTEGER_CST
       && !integer_zerop (TYPE_SIZE_UNIT (eltype))
diff --git a/gcc/testsuite/gcc.dg/pr116481.c b/gcc/testsuite/gcc.dg/pr116481.c
new file mode 100644
index 00000000000..3ee6d747087
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr116481.c
@@ -0,0 +1,13 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -Warray-bounds" } */
+
+extern void tramp ();
+
+int is_trampoline (void* function) /* { dg-bogus "arrays of functions are not meaningful" } */
+{
+  void* tramp_address = tramp;
+  if (!(((unsigned long)function & 3) == 2))
+    return 0;
+  return (((long *) ((char*)function - 2))[0]
+	  == ((long *) ((char*)tramp_address-2))[0]); /* { dg-warning "outside array bounds" } */
+}

commit a4744558b6a1d0a1c203acc827b6ad0cfe039212
Author: Richard Biener <rguenther@suse.de>
Date:   Sun Oct 13 12:44:04 2024 +0200

    tree-optimization/116907 - stale BLOCK reference from DECL_VALUE_EXPR
    
    When we remove unused BLOCKs we fail to clean references to them
    from DECL_VALUE_EXPRs of variables in other BLOCKs which in the
    PR causes LTO streaming to walk into pointers to GGC freed blocks.
    
    There's the question of whether such DECL_VALUE_EXPRs should keep
    variables and blocks referenced live (it doesn't seem to do that)
    and whether such DECL_VALUE_EXPRs should have survived in the
    first place.
    
            PR tree-optimization/116907
            * tree-ssa-live.cc (clear_unused_block_pointer_in_block): New
            helper.
            (clear_unused_block_pointer): Call it.
    
    (cherry picked from commit 7d15248d41dc45a4ba2d38ff532b672a5c0651d0)

diff --git a/gcc/tree-ssa-live.cc b/gcc/tree-ssa-live.cc
index 122d8e245dd..8b559f2dbd8 100644
--- a/gcc/tree-ssa-live.cc
+++ b/gcc/tree-ssa-live.cc
@@ -609,6 +609,22 @@ clear_unused_block_pointer_1 (tree *tp, int *, void *)
   return NULL_TREE;
 }
 
+/* Clear references to unused BLOCKs from DECL_VALUE_EXPRs of variables
+   in BLOCK.  */
+
+static void
+clear_unused_block_pointer_in_block (tree block)
+{
+  for (tree t = BLOCK_VARS (block); t; t = DECL_CHAIN (t))
+    if (VAR_P (t) && DECL_HAS_VALUE_EXPR_P (t))
+      {
+	tree val = DECL_VALUE_EXPR (t);
+	walk_tree (&val, clear_unused_block_pointer_1, NULL, NULL);
+      }
+  for (tree t = BLOCK_SUBBLOCKS (block); t; t = BLOCK_CHAIN (t))
+    clear_unused_block_pointer_in_block (t);
+}
+
 /* Set all block pointer in debug or clobber stmt to NULL if the block
    is unused, so that they will not be streamed out.  */
 
@@ -664,6 +680,10 @@ clear_unused_block_pointer (void)
 	  walk_tree (gimple_op_ptr (stmt, i), clear_unused_block_pointer_1,
 		     NULL, NULL);
       }
+
+  /* Walk all variables mentioned in the functions BLOCK tree and clear
+     DECL_VALUE_EXPR from unused blocks where present.  */
+  clear_unused_block_pointer_in_block (DECL_INITIAL (current_function_decl));
 }
 
 /* Dump scope blocks starting at SCOPE to FILE.  INDENT is the

commit 1d11536881e60f36a2b8ad9919169ac7a8bc0e3e
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Oct 7 11:05:17 2024 +0200

    tree-optimization/116982 - analyze scalar loop exit early
    
    The following makes sure to discover the scalar loop IV exit during
    analysis as failure to do so (if DCE and friends are disabled this
    can happen due to if-conversion doing DCE and FRE on the if-converted
    loop) would ICE later.
    
    I refrained from larger refactoring to be able to eventually backport.
    
            PR tree-optimization/116982
            * tree-vectorizer.h (vect_analyze_loop): Pass in .LOOP_VECTORIZED
            call.
            (vect_analyze_loop_form): Likewise.
            * tree-vect-loop.cc (vect_analyze_loop_form): Reject loops where we
            cannot determine a IV exit for the scalar loop.
            (vect_analyze_loop): Adjust.
            * tree-vectorizer.cc (try_vectorize_loop_1): Likewise.
            * tree-parloops.cc (gather_scalar_reductions): Likewise.
    
    (cherry picked from commit 9b86efd5210101954bd187c3aa8bb909610a5746)

diff --git a/gcc/tree-parloops.cc b/gcc/tree-parloops.cc
index 888a834faf9..4d7a4ec9437 100644
--- a/gcc/tree-parloops.cc
+++ b/gcc/tree-parloops.cc
@@ -3304,7 +3304,7 @@ gather_scalar_reductions (loop_p loop, reduction_info_table_type *reduction_list
 
   vec_info_shared shared;
   vect_loop_form_info info;
-  if (!vect_analyze_loop_form (loop, &info))
+  if (!vect_analyze_loop_form (loop, NULL, &info))
     goto gather_done;
 
   simple_loop_info = vect_create_loop_vinfo (loop, &shared, &info);
@@ -3346,7 +3346,7 @@ gather_scalar_reductions (loop_p loop, reduction_info_table_type *reduction_list
     {
       vec_info_shared shared;
       vect_loop_form_info info;
-      if (vect_analyze_loop_form (loop->inner, &info))
+      if (vect_analyze_loop_form (loop->inner, NULL, &info))
 	{
 	  simple_loop_info
 	    = vect_create_loop_vinfo (loop->inner, &shared, &info);
diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index 744044735d3..dfb9d1be667 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -1734,7 +1734,8 @@ vect_compute_single_scalar_iteration_cost (loop_vec_info loop_vinfo)
      niter could be analyzed under some assumptions.  */
 
 opt_result
-vect_analyze_loop_form (class loop *loop, vect_loop_form_info *info)
+vect_analyze_loop_form (class loop *loop, gimple *loop_vectorized_call,
+			vect_loop_form_info *info)
 {
   DUMP_VECT_SCOPE ("vect_analyze_loop_form");
 
@@ -1744,6 +1745,18 @@ vect_analyze_loop_form (class loop *loop, vect_loop_form_info *info)
 				   "not vectorized:"
 				   " could not determine main exit from"
 				   " loop with multiple exits.\n");
+  if (loop_vectorized_call)
+    {
+      tree arg = gimple_call_arg (loop_vectorized_call, 1);
+      class loop *scalar_loop = get_loop (cfun, tree_to_shwi (arg));
+      edge scalar_exit_e = vec_init_loop_exit_info (scalar_loop);
+      if (!scalar_exit_e)
+	return opt_result::failure_at (vect_location,
+				       "not vectorized:"
+				       " could not determine main exit from"
+				       " loop with multiple exits.\n");
+    }
+
   info->loop_exit = exit_e;
   if (dump_enabled_p ())
       dump_printf_loc (MSG_NOTE, vect_location,
@@ -1815,7 +1828,7 @@ vect_analyze_loop_form (class loop *loop, vect_loop_form_info *info)
 
       /* Analyze the inner-loop.  */
       vect_loop_form_info inner;
-      opt_result res = vect_analyze_loop_form (loop->inner, &inner);
+      opt_result res = vect_analyze_loop_form (loop->inner, NULL, &inner);
       if (!res)
 	{
 	  if (dump_enabled_p ())
@@ -3570,7 +3583,8 @@ vect_analyze_loop_1 (class loop *loop, vec_info_shared *shared,
    for it.  The different analyses will record information in the
    loop_vec_info struct.  */
 opt_loop_vec_info
-vect_analyze_loop (class loop *loop, vec_info_shared *shared)
+vect_analyze_loop (class loop *loop, gimple *loop_vectorized_call,
+		   vec_info_shared *shared)
 {
   DUMP_VECT_SCOPE ("analyze_loop_nest");
 
@@ -3588,7 +3602,8 @@ vect_analyze_loop (class loop *loop, vec_info_shared *shared)
 
   /* Analyze the loop form.  */
   vect_loop_form_info loop_form_info;
-  opt_result res = vect_analyze_loop_form (loop, &loop_form_info);
+  opt_result res = vect_analyze_loop_form (loop, loop_vectorized_call,
+					   &loop_form_info);
   if (!res)
     {
       if (dump_enabled_p ())
diff --git a/gcc/tree-vectorizer.cc b/gcc/tree-vectorizer.cc
index 9001b738bf3..6062355b781 100644
--- a/gcc/tree-vectorizer.cc
+++ b/gcc/tree-vectorizer.cc
@@ -1063,7 +1063,8 @@ try_vectorize_loop_1 (hash_table<simduid_to_vf> *&simduid_to_vf_htab,
 		 LOCATION_LINE (vect_location.get_location_t ()));
 
   /* Try to analyze the loop, retaining an opt_problem if dump_enabled_p.  */
-  opt_loop_vec_info loop_vinfo = vect_analyze_loop (loop, &shared);
+  opt_loop_vec_info loop_vinfo = vect_analyze_loop (loop, loop_vectorized_call,
+						    &shared);
   loop->aux = loop_vinfo;
 
   if (!loop_vinfo)
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index c076cb648f4..de7ed5758a6 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -2392,7 +2392,8 @@ extern bool check_reduction_path (dump_user_location_t, loop_p, gphi *, tree,
 				  enum tree_code);
 extern bool needs_fold_left_reduction_p (tree, code_helper);
 /* Drive for loop analysis stage.  */
-extern opt_loop_vec_info vect_analyze_loop (class loop *, vec_info_shared *);
+extern opt_loop_vec_info vect_analyze_loop (class loop *, gimple *,
+					    vec_info_shared *);
 extern tree vect_build_loop_niters (loop_vec_info, bool * = NULL);
 extern void vect_gen_vector_loop_niters (loop_vec_info, tree, tree *,
 					 tree *, bool);
@@ -2423,7 +2424,8 @@ struct vect_loop_form_info
   gcond *inner_loop_cond;
   edge loop_exit;
 };
-extern opt_result vect_analyze_loop_form (class loop *, vect_loop_form_info *);
+extern opt_result vect_analyze_loop_form (class loop *, gimple *,
+					  vect_loop_form_info *);
 extern loop_vec_info vect_create_loop_vinfo (class loop *, vec_info_shared *,
 					     const vect_loop_form_info *,
 					     loop_vec_info = nullptr);

commit 44c3eba2dfa71cb7cd9f8c3e7f33ef2b08132a51
Author: Richard Biener <rguenther@suse.de>
Date:   Sat Oct 12 14:51:37 2024 +0200

    tree-optimization/117104 - add missed guards to max(a,b) != a simplification
    
    For vector types we have to make sure the comparison result is a vector
    type and the resulting compare operation is supported.  As the resulting
    compare is never an equality compare I didn't bother to check for the
    cbranch case.
    
            PR tree-optimization/117104
            * match.pd ((cmp:c (minmax:c @0 @1) @0) -> (out @0 @1)): Properly
            guard the vector case.
    
            * gcc.dg/pr117104.c: New testcase.
    
    (cherry picked from commit f54d42e00007e7a558b273d87f95b3e5b1938f5a)

diff --git a/gcc/match.pd b/gcc/match.pd
index 41afdfbe59d..62edaf1267e 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -4167,7 +4167,11 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
      out    (le  gt  gt  le  ge  lt  lt  ge )
  (simplify
   (cmp:c (minmax:c @0 @1) @0)
-  (if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)))
+  (if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0))
+       && (!VECTOR_TYPE_P (TREE_TYPE (@0))
+	   || (VECTOR_TYPE_P (type)
+	       && (!expand_vec_cmp_expr_p (TREE_TYPE (@0), type, cmp)
+		   || expand_vec_cmp_expr_p (TREE_TYPE (@0), type, out)))))
    (out @0 @1))))
 /* MIN (X, 5) == 0 -> X == 0
    MIN (X, 5) == 7 -> false  */
diff --git a/gcc/testsuite/gcc.dg/pr117104.c b/gcc/testsuite/gcc.dg/pr117104.c
new file mode 100644
index 00000000000..9aa5734f792
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr117104.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fno-vect-cost-model" } */
+/* { dg-additional-options "-mavx" { target { x86_64-*-* i?86-*-* } } } */
+
+void g();
+void f(long *a)
+{
+  long b0 = a[0] > 0 ? a[0] : 0;
+  long b1 = a[1] > 0 ? a[1] : 0;
+  if ((b0|b1) == 0)
+    g();
+}

commit 04c9cbe49faf7397cac910459cfc1a514d310c7d
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Oct 22 00:26:16 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7bc56373953..74eefc2fe78 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,98 @@
+2024-10-21  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-12  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117104
+	* match.pd ((cmp:c (minmax:c @0 @1) @0) -> (out @0 @1)): Properly
+	guard the vector case.
+
+2024-10-21  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-07  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116982
+	* tree-vectorizer.h (vect_analyze_loop): Pass in .LOOP_VECTORIZED
+	call.
+	(vect_analyze_loop_form): Likewise.
+	* tree-vect-loop.cc (vect_analyze_loop_form): Reject loops where we
+	cannot determine a IV exit for the scalar loop.
+	(vect_analyze_loop): Adjust.
+	* tree-vectorizer.cc (try_vectorize_loop_1): Likewise.
+	* tree-parloops.cc (gather_scalar_reductions): Likewise.
+
+2024-10-21  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-15  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116907
+	* tree-ssa-live.cc (clear_unused_block_pointer_in_block): New
+	helper.
+	(clear_unused_block_pointer): Call it.
+
+2024-10-21  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116481
+	* pointer-query.cc (build_printable_array_type):
+	Build an array types with function or method element type
+	manually to avoid bogus diagnostic.
+
+2024-10-21  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-14  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116290
+	* tree-loop-distribution.cc (determine_reduction_stmt_1): PHIs
+	have no debug variants.  Start with first non-debug real stmt.
+	* tree-ssa-loop-ivopts.cc (find_givs_in_bb): Do not analyze
+	debug stmts.
+
+2024-10-21  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-05-17  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/115110
+	* tree-ssa-alias.cc (view_converted_memref_p): Fix.
+
+2024-10-21  Jeevitha  <jeevitha@linux.ibm.com>
+
+	Backported from master:
+	2024-10-21  Jeevitha  <jeevitha@linux.ibm.com>
+
+	* config/rs6000/amo.h (enum _AMO_LD): Correct the function code for
+	_AMO_LD_DEC_BOUNDED.
+
+2024-10-21  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-10-21  liuhongt  <hongtao.liu@intel.com>
+
+	PR target/117159
+	* config/i386/sse.md
+	(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
+	Change from define_insn_and_split to define_insn.
+	(*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
+	Ditto.
+	(*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
+	Ditto.
+	(*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
+	Ditto.
+	(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
+	Split to the zero_extend pattern.
+	(*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
+	Ditto.
+	(*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
+	Ditto.
+	(*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
+	Ditto.
+
 2024-10-18  Martin Jambor  <mjambor@suse.cz>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 18b2d489abc..cf7fc14e4ea 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241021
+20241022
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7b1c30e109c..cf68245cecb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,36 @@
+2024-10-21  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-12  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117104
+	* gcc.dg/pr117104.c: New testcase.
+
+2024-10-21  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-13  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116481
+	* gcc.dg/pr116481.c: New testcase.
+
+2024-10-21  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-14  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116290
+	* gcc.dg/pr116290.c: New testcase.
+
+2024-10-21  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-10-21  liuhongt  <hongtao.liu@intel.com>
+
+	* gcc.target/i386/pr117159.c: New test.
+	* gcc.target/i386/avx512bw-pr103750-1.c: Remove xfail.
+	* gcc.target/i386/avx512bw-pr103750-2.c: Remove xfail.
+
 2024-10-18  Martin Jambor  <mjambor@suse.cz>
 
 	Backported from master:

commit 3795ac860bc6f24d0ef222045dff7b2a6350a8c4
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Aug 22 09:24:11 2024 -0400

    libstdc++: Implement P2609R3 changes to the indirect invocability concepts
    
    This implements the changes of this C++23 paper as a DR against C++20.
    
    Note that after the later P2538R1 "ADL-proof std::projected" (which we
    already implement), we can't use a simple partial specialization to match
    specializations of the 'projected' alias template.  So instead we identify
    such specializations using a pair of distinguishing member aliases.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/iterator_concepts.h (__detail::__indirect_value):
            Define.
            (__indirect_value_t): Define as per P2609R3.
            (iter_common_reference_t): Adjust as per P2609R3.
            (indirectly_unary_invocable): Likewise.
            (indirectly_regular_unary_invocable): Likewise.
            (indirect_unary_predicate): Likewise.
            (indirect_binary_predicate): Likewise.
            (indirect_equivalence_relation): Likewise.
            (indirect_strict_weak_order): Likewise.
            (__detail::__projected::__type): Define member aliases
            __projected_Iter and __projected_Proj providing the
            template arguments of the current specialization.
            * include/bits/version.def (ranges): Update value.
            * include/bits/version.h: Regenerate.
            * testsuite/24_iterators/indirect_callable/p2609r3.cc: New test.
            * testsuite/std/ranges/version_c++23.cc: Update expected value
            of __cpp_lib_ranges macro.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit b552730faf36f1eae1dc6e73ccc93a016dec5401)

diff --git a/libstdc++-v3/include/bits/iterator_concepts.h b/libstdc++-v3/include/bits/iterator_concepts.h
index ce0b8a10f88..9306b7bd194 100644
--- a/libstdc++-v3/include/bits/iterator_concepts.h
+++ b/libstdc++-v3/include/bits/iterator_concepts.h
@@ -552,9 +552,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     concept indirectly_readable
       = __detail::__indirectly_readable_impl<remove_cvref_t<_In>>;
 
+  namespace __detail
+  {
+    template<typename _Tp>
+      struct __indirect_value
+      { using type = iter_value_t<_Tp>&; };
+
+    // __indirect_value<projected<_Iter, _Proj>> is defined later.
+  } // namespace __detail
+
+  template<typename _Tp>
+    using __indirect_value_t = typename __detail::__indirect_value<_Tp>::type;
+
   template<indirectly_readable _Tp>
     using iter_common_reference_t
-      = common_reference_t<iter_reference_t<_Tp>, iter_value_t<_Tp>&>;
+      = common_reference_t<iter_reference_t<_Tp>, __indirect_value_t<_Tp>>;
 
   /// Requirements for writing a value into an iterator's referenced object.
   template<typename _Out, typename _Tp>
@@ -710,24 +722,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   template<typename _Fn, typename _Iter>
     concept indirectly_unary_invocable = indirectly_readable<_Iter>
-      && copy_constructible<_Fn> && invocable<_Fn&, iter_value_t<_Iter>&>
+      && copy_constructible<_Fn> && invocable<_Fn&, __indirect_value_t<_Iter>>
       && invocable<_Fn&, iter_reference_t<_Iter>>
       && invocable<_Fn&, iter_common_reference_t<_Iter>>
-      && common_reference_with<invoke_result_t<_Fn&, iter_value_t<_Iter>&>,
+      && common_reference_with<invoke_result_t<_Fn&, __indirect_value_t<_Iter>>,
 			       invoke_result_t<_Fn&, iter_reference_t<_Iter>>>;
 
   template<typename _Fn, typename _Iter>
     concept indirectly_regular_unary_invocable = indirectly_readable<_Iter>
       && copy_constructible<_Fn>
-      && regular_invocable<_Fn&, iter_value_t<_Iter>&>
+      && regular_invocable<_Fn&, __indirect_value_t<_Iter>>
       && regular_invocable<_Fn&, iter_reference_t<_Iter>>
       && regular_invocable<_Fn&, iter_common_reference_t<_Iter>>
-      && common_reference_with<invoke_result_t<_Fn&, iter_value_t<_Iter>&>,
+      && common_reference_with<invoke_result_t<_Fn&, __indirect_value_t<_Iter>>,
 			       invoke_result_t<_Fn&, iter_reference_t<_Iter>>>;
 
   template<typename _Fn, typename _Iter>
     concept indirect_unary_predicate = indirectly_readable<_Iter>
-      && copy_constructible<_Fn> && predicate<_Fn&, iter_value_t<_Iter>&>
+      && copy_constructible<_Fn> && predicate<_Fn&, __indirect_value_t<_Iter>>
       && predicate<_Fn&, iter_reference_t<_Iter>>
       && predicate<_Fn&, iter_common_reference_t<_Iter>>;
 
@@ -735,9 +747,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     concept indirect_binary_predicate
       = indirectly_readable<_I1> && indirectly_readable<_I2>
       && copy_constructible<_Fn>
-      && predicate<_Fn&, iter_value_t<_I1>&, iter_value_t<_I2>&>
-      && predicate<_Fn&, iter_value_t<_I1>&, iter_reference_t<_I2>>
-      && predicate<_Fn&, iter_reference_t<_I1>, iter_value_t<_I2>&>
+      && predicate<_Fn&, __indirect_value_t<_I1>, __indirect_value_t<_I2>>
+      && predicate<_Fn&, __indirect_value_t<_I1>, iter_reference_t<_I2>>
+      && predicate<_Fn&, iter_reference_t<_I1>, __indirect_value_t<_I2>>
       && predicate<_Fn&, iter_reference_t<_I1>, iter_reference_t<_I2>>
       && predicate<_Fn&, iter_common_reference_t<_I1>,
 		   iter_common_reference_t<_I2>>;
@@ -746,9 +758,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     concept indirect_equivalence_relation
       = indirectly_readable<_I1> && indirectly_readable<_I2>
       && copy_constructible<_Fn>
-      && equivalence_relation<_Fn&, iter_value_t<_I1>&, iter_value_t<_I2>&>
-      && equivalence_relation<_Fn&, iter_value_t<_I1>&, iter_reference_t<_I2>>
-      && equivalence_relation<_Fn&, iter_reference_t<_I1>, iter_value_t<_I2>&>
+      && equivalence_relation<_Fn&, __indirect_value_t<_I1>, __indirect_value_t<_I2>>
+      && equivalence_relation<_Fn&, __indirect_value_t<_I1>, iter_reference_t<_I2>>
+      && equivalence_relation<_Fn&, iter_reference_t<_I1>, __indirect_value_t<_I2>>
       && equivalence_relation<_Fn&, iter_reference_t<_I1>,
 			      iter_reference_t<_I2>>
       && equivalence_relation<_Fn&, iter_common_reference_t<_I1>,
@@ -758,9 +770,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     concept indirect_strict_weak_order
       = indirectly_readable<_I1> && indirectly_readable<_I2>
       && copy_constructible<_Fn>
-      && strict_weak_order<_Fn&, iter_value_t<_I1>&, iter_value_t<_I2>&>
-      && strict_weak_order<_Fn&, iter_value_t<_I1>&, iter_reference_t<_I2>>
-      && strict_weak_order<_Fn&, iter_reference_t<_I1>, iter_value_t<_I2>&>
+      && strict_weak_order<_Fn&, __indirect_value_t<_I1>, __indirect_value_t<_I2>>
+      && strict_weak_order<_Fn&, __indirect_value_t<_I1>, iter_reference_t<_I2>>
+      && strict_weak_order<_Fn&, iter_reference_t<_I1>, __indirect_value_t<_I2>>
       && strict_weak_order<_Fn&, iter_reference_t<_I1>, iter_reference_t<_I2>>
       && strict_weak_order<_Fn&, iter_common_reference_t<_I1>,
 			   iter_common_reference_t<_I2>>;
@@ -779,6 +791,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	{
 	  using value_type = remove_cvref_t<indirect_result_t<_Proj&, _Iter>>;
 	  indirect_result_t<_Proj&, _Iter> operator*() const; // not defined
+
+	  // These are used to identify and obtain the template arguments of a
+	  // specialization of the 'projected' alias template below.
+	  using __projected_Iter = _Iter;
+	  using __projected_Proj = _Proj;
 	};
       };
 
@@ -790,6 +807,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  using value_type = remove_cvref_t<indirect_result_t<_Proj&, _Iter>>;
 	  using difference_type = iter_difference_t<_Iter>;
 	  indirect_result_t<_Proj&, _Iter> operator*() const; // not defined
+
+	  using __projected_Iter = _Iter;
+	  using __projected_Proj = _Proj;
 	};
       };
   } // namespace __detail
@@ -799,6 +819,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	   indirectly_regular_unary_invocable<_Iter> _Proj>
     using projected = typename __detail::__projected<_Iter, _Proj>::__type;
 
+  // Matches specializations of the 'projected' alias template.
+  template<typename _Tp>
+    requires same_as<_Tp, projected<typename _Tp::__projected_Iter,
+				    typename _Tp::__projected_Proj>>
+    struct __detail::__indirect_value<_Tp>
+    {
+      using _Iter = typename _Tp::__projected_Iter;
+      using _Proj = typename _Tp::__projected_Proj;
+      using type = invoke_result_t<_Proj&, __indirect_value_t<_Iter>>;
+    };
+
   // [alg.req], common algorithm requirements
 
   /// [alg.req.ind.move], concept `indirectly_movable`
diff --git a/libstdc++-v3/include/bits/version.def b/libstdc++-v3/include/bits/version.def
index 72e38d4d712..36a4cc23800 100644
--- a/libstdc++-v3/include/bits/version.def
+++ b/libstdc++-v3/include/bits/version.def
@@ -1067,7 +1067,7 @@ ftms = {
 ftms = {
   name = ranges;
   values = {
-    v = 202211;
+    v = 202302;
     cxxmin = 23;
     extra_cond = "__glibcxx_concepts";
   };
diff --git a/libstdc++-v3/include/bits/version.h b/libstdc++-v3/include/bits/version.h
index f6b265d8ffb..6681f059e39 100644
--- a/libstdc++-v3/include/bits/version.h
+++ b/libstdc++-v3/include/bits/version.h
@@ -1200,9 +1200,9 @@
 
 #if !defined(__cpp_lib_ranges)
 # if (__cplusplus >= 202100L) && (__glibcxx_concepts)
-#  define __glibcxx_ranges 202211L
+#  define __glibcxx_ranges 202302L
 #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
-#   define __cpp_lib_ranges 202211L
+#   define __cpp_lib_ranges 202302L
 #  endif
 # elif (__cplusplus >= 202002L) && (__glibcxx_concepts)
 #  define __glibcxx_ranges 202110L
diff --git a/libstdc++-v3/testsuite/24_iterators/indirect_callable/p2609r3.cc b/libstdc++-v3/testsuite/24_iterators/indirect_callable/p2609r3.cc
new file mode 100644
index 00000000000..fe7839d73f8
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/indirect_callable/p2609r3.cc
@@ -0,0 +1,27 @@
+// Verify the P2609R3 "Relaxing Ranges Just A Smidge" changes.
+// { dg-do compile { target c++20 } }
+
+#include <iterator>
+#include <algorithm>
+#include <memory>
+#include <ranges>
+
+int
+main()
+{
+  auto v = std::views::iota(0, 5);
+  auto proj = [](int v) { return std::make_unique<int>(v); };
+  using it = std::projected<std::ranges::iterator_t<decltype(v)>, decltype(proj)>;
+
+  auto f = [](auto) { return false; };
+  static_assert(std::indirectly_unary_invocable<decltype(f), it>);
+  static_assert(std::indirectly_regular_unary_invocable<decltype(f), it>);
+  static_assert(std::indirect_unary_predicate<decltype(f), it>);
+
+  auto g = [](auto, auto) { return false; };
+  static_assert(std::indirect_binary_predicate<decltype(g), it, it>);
+  static_assert(std::indirect_equivalence_relation<decltype(g), it, it>);
+  static_assert(std::indirect_strict_weak_order<decltype(g), it, it>);
+
+  std::ranges::for_each(v, f, proj);
+}
diff --git a/libstdc++-v3/testsuite/std/ranges/version_c++23.cc b/libstdc++-v3/testsuite/std/ranges/version_c++23.cc
index d475d3dc114..01871156a75 100644
--- a/libstdc++-v3/testsuite/std/ranges/version_c++23.cc
+++ b/libstdc++-v3/testsuite/std/ranges/version_c++23.cc
@@ -4,7 +4,7 @@
 #include <version>
 
 #if __STDC_HOSTED__
-# if __cpp_lib_ranges != 202211L
+# if __cpp_lib_ranges != 202302L
 #  error "Feature-test macro __cpp_lib_ranges has wrong value in <version>"
 # endif
 #endif

commit 0b2f2a7e126cf8017626793446110aac892b00f6
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Aug 22 09:24:20 2024 -0400

    libstdc++: Implement P2997R1 changes to the indirect invocability concepts
    
    This implements the changes of this C++26 paper as a DR against C++20.
    
    In passing this patch removes the std/ranges/version_c++23.cc test which
    is now mostly obsolete after the version.def FTM refactoring, and instead
    expands the __cpp_lib_ranges checks in another test so that it verifies
    the exact value of the FTM on a per language version basis.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/iterator_concepts.h (indirectly_unary_invocable):
            Relax as per P2997R1.
            (indirectly_regular_unary_invocable): Likewise.
            (indirect_unary_predicate): Likewise.
            (indirect_binary_predicate): Likewise.
            (indirect_equivalence_relation): Likewise.
            (indirect_strict_weak_order): Likewise.
            * include/bits/version.def (ranges): Update value for C++26.
            * include/bits/version.h: Regenerate.
            * testsuite/24_iterators/indirect_callable/p2997r1.cc: New test.
            * testsuite/std/ranges/version_c++23.cc: Remove.
            * testsuite/std/ranges/headers/ranges/synopsis.cc: Refine the
            __cpp_lib_ranges checks.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 620232426bd83a79c81cd2be6f485834c618e920)

diff --git a/libstdc++-v3/include/bits/iterator_concepts.h b/libstdc++-v3/include/bits/iterator_concepts.h
index 9306b7bd194..d849ddc32fc 100644
--- a/libstdc++-v3/include/bits/iterator_concepts.h
+++ b/libstdc++-v3/include/bits/iterator_concepts.h
@@ -724,7 +724,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     concept indirectly_unary_invocable = indirectly_readable<_Iter>
       && copy_constructible<_Fn> && invocable<_Fn&, __indirect_value_t<_Iter>>
       && invocable<_Fn&, iter_reference_t<_Iter>>
-      && invocable<_Fn&, iter_common_reference_t<_Iter>>
       && common_reference_with<invoke_result_t<_Fn&, __indirect_value_t<_Iter>>,
 			       invoke_result_t<_Fn&, iter_reference_t<_Iter>>>;
 
@@ -733,15 +732,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       && copy_constructible<_Fn>
       && regular_invocable<_Fn&, __indirect_value_t<_Iter>>
       && regular_invocable<_Fn&, iter_reference_t<_Iter>>
-      && regular_invocable<_Fn&, iter_common_reference_t<_Iter>>
       && common_reference_with<invoke_result_t<_Fn&, __indirect_value_t<_Iter>>,
 			       invoke_result_t<_Fn&, iter_reference_t<_Iter>>>;
 
   template<typename _Fn, typename _Iter>
     concept indirect_unary_predicate = indirectly_readable<_Iter>
       && copy_constructible<_Fn> && predicate<_Fn&, __indirect_value_t<_Iter>>
-      && predicate<_Fn&, iter_reference_t<_Iter>>
-      && predicate<_Fn&, iter_common_reference_t<_Iter>>;
+      && predicate<_Fn&, iter_reference_t<_Iter>>;
 
   template<typename _Fn, typename _I1, typename _I2>
     concept indirect_binary_predicate
@@ -750,9 +747,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       && predicate<_Fn&, __indirect_value_t<_I1>, __indirect_value_t<_I2>>
       && predicate<_Fn&, __indirect_value_t<_I1>, iter_reference_t<_I2>>
       && predicate<_Fn&, iter_reference_t<_I1>, __indirect_value_t<_I2>>
-      && predicate<_Fn&, iter_reference_t<_I1>, iter_reference_t<_I2>>
-      && predicate<_Fn&, iter_common_reference_t<_I1>,
-		   iter_common_reference_t<_I2>>;
+      && predicate<_Fn&, iter_reference_t<_I1>, iter_reference_t<_I2>>;
 
   template<typename _Fn, typename _I1, typename _I2 = _I1>
     concept indirect_equivalence_relation
@@ -762,9 +757,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       && equivalence_relation<_Fn&, __indirect_value_t<_I1>, iter_reference_t<_I2>>
       && equivalence_relation<_Fn&, iter_reference_t<_I1>, __indirect_value_t<_I2>>
       && equivalence_relation<_Fn&, iter_reference_t<_I1>,
-			      iter_reference_t<_I2>>
-      && equivalence_relation<_Fn&, iter_common_reference_t<_I1>,
-			      iter_common_reference_t<_I2>>;
+			      iter_reference_t<_I2>>;
 
   template<typename _Fn, typename _I1, typename _I2 = _I1>
     concept indirect_strict_weak_order
@@ -773,9 +766,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       && strict_weak_order<_Fn&, __indirect_value_t<_I1>, __indirect_value_t<_I2>>
       && strict_weak_order<_Fn&, __indirect_value_t<_I1>, iter_reference_t<_I2>>
       && strict_weak_order<_Fn&, iter_reference_t<_I1>, __indirect_value_t<_I2>>
-      && strict_weak_order<_Fn&, iter_reference_t<_I1>, iter_reference_t<_I2>>
-      && strict_weak_order<_Fn&, iter_common_reference_t<_I1>,
-			   iter_common_reference_t<_I2>>;
+      && strict_weak_order<_Fn&, iter_reference_t<_I1>, iter_reference_t<_I2>>;
 
   template<typename _Fn, typename... _Is>
     requires (indirectly_readable<_Is> && ...)
diff --git a/libstdc++-v3/include/bits/version.def b/libstdc++-v3/include/bits/version.def
index 36a4cc23800..91c144cc4f0 100644
--- a/libstdc++-v3/include/bits/version.def
+++ b/libstdc++-v3/include/bits/version.def
@@ -1066,6 +1066,11 @@ ftms = {
 
 ftms = {
   name = ranges;
+  values = {
+    v = 202406;
+    cxxmin = 26;
+    extra_cond = "__glibcxx_concepts";
+  };
   values = {
     v = 202302;
     cxxmin = 23;
diff --git a/libstdc++-v3/include/bits/version.h b/libstdc++-v3/include/bits/version.h
index 6681f059e39..82901af2ad6 100644
--- a/libstdc++-v3/include/bits/version.h
+++ b/libstdc++-v3/include/bits/version.h
@@ -1199,7 +1199,12 @@
 #undef __glibcxx_want_shift
 
 #if !defined(__cpp_lib_ranges)
-# if (__cplusplus >= 202100L) && (__glibcxx_concepts)
+# if (__cplusplus >  202302L) && (__glibcxx_concepts)
+#  define __glibcxx_ranges 202406L
+#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
+#   define __cpp_lib_ranges 202406L
+#  endif
+# elif (__cplusplus >= 202100L) && (__glibcxx_concepts)
 #  define __glibcxx_ranges 202302L
 #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
 #   define __cpp_lib_ranges 202302L
diff --git a/libstdc++-v3/testsuite/24_iterators/indirect_callable/p2997r1.cc b/libstdc++-v3/testsuite/24_iterators/indirect_callable/p2997r1.cc
new file mode 100644
index 00000000000..6a66b0f2a96
--- /dev/null
+++ b/libstdc++-v3/testsuite/24_iterators/indirect_callable/p2997r1.cc
@@ -0,0 +1,37 @@
+// Test the example from P2997R1 "Removing the common reference requirement
+// from the indirectly invocable concepts".
+// { dg-do compile { target c++20 } }
+
+#include <algorithm>
+#include <ranges>
+
+struct C {
+    auto f() -> void;
+};
+
+struct Iterator {
+    using value_type = C;
+    using difference_type = std::ptrdiff_t;
+    using iterator_category = std::input_iterator_tag;
+
+    auto operator*() const -> C&&;
+    auto operator++() -> Iterator&;
+    auto operator++(int) -> void;
+    auto operator==(Iterator const&) const -> bool;
+};
+
+static_assert(std::input_iterator<Iterator>);
+static_assert(std::same_as<std::iter_value_t<Iterator>, C>);
+static_assert(std::same_as<std::iter_reference_t<Iterator>, C&&>);
+
+struct R {
+    auto begin() -> Iterator;
+    auto end() -> Iterator;
+};
+
+static_assert(std::ranges::range<R>);
+static_assert(std::same_as<std::ranges::range_reference_t<R>, C&&>);
+
+auto f(R r) -> void {
+    std::ranges::for_each(r, [](auto&& c){ c.f(); });
+}
diff --git a/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc b/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
index 48f53b63f40..d359039da3f 100644
--- a/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
+++ b/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
@@ -22,7 +22,11 @@
 
 #ifndef __cpp_lib_ranges
 # error "Feature test macro for ranges is missing in <ranges>"
-#elif __cpp_lib_ranges < 201911L
+#elif __cplusplus > 202302L && __cpp_lib_ranges != 202406L
+# error "Feature test macro for ranges has wrong value in <ranges>"
+#elif __cplusplus == 202302L && __cpp_lib_ranges != 202302L
+# error "Feature test macro for ranges has wrong value in <ranges>"
+#elif __cplusplus == 202002L && __cpp_lib_ranges != 202110L
 # error "Feature test macro for ranges has wrong value in <ranges>"
 #endif
 
diff --git a/libstdc++-v3/testsuite/std/ranges/version_c++23.cc b/libstdc++-v3/testsuite/std/ranges/version_c++23.cc
deleted file mode 100644
index 01871156a75..00000000000
--- a/libstdc++-v3/testsuite/std/ranges/version_c++23.cc
+++ /dev/null
@@ -1,70 +0,0 @@
-// { dg-do preprocess { target c++23 } }
-// { dg-add-options no_pch }
-
-#include <version>
-
-#if __STDC_HOSTED__
-# if __cpp_lib_ranges != 202302L
-#  error "Feature-test macro __cpp_lib_ranges has wrong value in <version>"
-# endif
-#endif
-
-#if __cpp_lib_ranges_zip != 202110L
-# error "Feature-test macro __cpp_lib_ranges_zip has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_chunk != 202202L
-# error "Feature-test macro __cpp_lib_ranges_chunk has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_slide != 202202L
-# error "Feature-test macro __cpp_lib_ranges_slide has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_chunk_by != 202202L
-# error "Feature-test macro __cpp_lib_ranges_chunk_by has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_join_with != 202202L
-# error "Feature-test macro __cpp_lib_ranges_join_with has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_repeat != 202207L
-# error "Feature-test macro __cpp_lib_ranges_repeat has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_stride != 202207L
-# error "Feature-test macro __cpp_lib_ranges_stride has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_cartesian_product != 202207L
-# error "Feature-test macro __cpp_lib_ranges_cartesian_product has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_as_rvalue != 202207L
-# error "Feature-test macro __cpp_lib_ranges_as_rvalue has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_as_const != 202311L
-# error "Feature-test macro __cpp_lib_ranges_as_const has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_enumerate != 202302L
-# error "Feature-test macro __cpp_lib_ranges_enumerate has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_contains != 202207L
-# error "Feature-test macro __cpp_lib_ranges_contains has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_iota != 202202L
-# error "Feature-test macro __cpp_lib_ranges_iota has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_find_last != 202207L
-# error "Feature-test macro __cpp_lib_ranges_find_last has wrong value in <version>"
-#endif
-
-#if __cpp_lib_ranges_fold != 202207L
-# error "Feature-test macro __cpp_lib_ranges_fold has wrong value in <version>"
-#endif

commit be56fee60a62014709605af19a84a48b7aa0835a
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Aug 22 11:25:10 2024 -0400

    libstdc++: Add some missing ranges feature-test macro tests
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/25_algorithms/contains/1.cc: Verify value of
            __cpp_lib_ranges_contains.
            * testsuite/25_algorithms/find_last/1.cc: Verify value of
            __cpp_lib_ranges_find_last.
            * testsuite/25_algorithms/iota/1.cc: Verify value of
            __cpp_lib_ranges_iota.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 8e0da56f18b3678beee9d2bae27e08a0e122573a)

diff --git a/libstdc++-v3/testsuite/25_algorithms/contains/1.cc b/libstdc++-v3/testsuite/25_algorithms/contains/1.cc
index 7d3fa048ef6..b44c06032e8 100644
--- a/libstdc++-v3/testsuite/25_algorithms/contains/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/contains/1.cc
@@ -4,6 +4,10 @@
 #include <testsuite_hooks.h>
 #include <testsuite_iterators.h>
 
+#if __cpp_lib_ranges_contains != 202207L
+# error "Feature-test macro __cpp_lib_ranges_contains has wrong value in <algorithm>"
+#endif
+
 namespace ranges = std::ranges;
 
 void
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_last/1.cc b/libstdc++-v3/testsuite/25_algorithms/find_last/1.cc
index 911e22887d1..8a40bb1a6b3 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_last/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_last/1.cc
@@ -4,6 +4,10 @@
 #include <testsuite_hooks.h>
 #include <testsuite_iterators.h>
 
+#if __cpp_lib_ranges_find_last != 202207L
+# error "Feature-test macro __cpp_lib_ranges_find_last has wrong value in <algorithm>"
+#endif
+
 namespace ranges = std::ranges;
 
 constexpr bool
diff --git a/libstdc++-v3/testsuite/25_algorithms/iota/1.cc b/libstdc++-v3/testsuite/25_algorithms/iota/1.cc
index 61bf418b4da..ebadeee79a1 100644
--- a/libstdc++-v3/testsuite/25_algorithms/iota/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/iota/1.cc
@@ -1,9 +1,14 @@
 // { dg-do run { target c++23 } }
 
 #include <algorithm>
+#include <numeric>
 #include <testsuite_hooks.h>
 #include <testsuite_iterators.h>
 
+#if __cpp_lib_ranges_iota != 202202L
+# error "Feature-test macro __cpp_lib_ranges_iota has wrong value in <numeric>"
+#endif
+
 namespace ranges = std::ranges;
 
 void

commit 07ee6874963d2f8a787ba48341a5392ee8b6ba56
Author: Patrick Palka <ppalka@redhat.com>
Date:   Fri Oct 4 10:01:39 2024 -0400

    libstdc++/ranges: Implement various small LWG issues
    
    This implements the following small LWG issues:
    
      3848. adjacent_view, adjacent_transform_view and slide_view missing base accessor
      3851. chunk_view::inner-iterator missing custom iter_move and iter_swap
      3947. Unexpected constraints on adjacent_transform_view::base()
      4001. iota_view should provide empty
      4012. common_view::begin/end are missing the simple-view check
      4013. lazy_split_view::outer-iterator::value_type should not provide default constructor
      4035. single_view should provide empty
      4053. Unary call to std::views::repeat does not decay the argument
      4054. Repeating a repeat_view should repeat the view
    
    libstdc++-v3/ChangeLog:
    
            * include/std/ranges (single_view::empty): Define as per LWG 4035.
            (iota_view::empty): Define as per LWG 4001.
            (lazy_split_view::_OuterIter::value_type): Remove default
            constructor and make other constructor private as per LWG 4013.
            (common_view::begin): Disable non-const overload for simple
            views as per LWG 4012.
            (common_view::end): Likewise.
            (adjacent_view::base): Define as per LWG 3848.
            (adjacent_transform_view::base): Likewise.
            (chunk_view::_InnerIter::iter_move): Define as per LWG 3851.
            (chunk_view::_InnerIter::itep_swap): Likewise.
            (slide_view::base): Define as per LWG 3848.
            (repeat_view): Adjust deduction guide as per LWG 4053.
            (_Repeat::operator()): Adjust single-parameter overload as per
            LWG 4054.
            * testsuite/std/ranges/adaptors/adjacent/1.cc: Verify existence
            of base member function.
            * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Likewise.
            * testsuite/std/ranges/adaptors/chunk/1.cc: Test LWG 3851 example.
            * testsuite/std/ranges/adaptors/slide/1.cc: Verify existence of
            base member function.
            * testsuite/std/ranges/iota/iota_view.cc: Test LWG 4001 example.
            * testsuite/std/ranges/repeat/1.cc: Test LWG 4053/4054 examples.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 20165d0107abd0f839f2519818b904f029f4ae55)

diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index 2c8a8535d39..c94463c83e5 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -331,6 +331,12 @@ namespace ranges
       end() const noexcept
       { return data() + 1; }
 
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 4035. single_view should provide empty
+      static constexpr bool
+      empty() noexcept
+      { return false; }
+
       static constexpr size_t
       size() noexcept
       { return 1; }
@@ -691,6 +697,12 @@ namespace ranges
       end() const requires same_as<_Winc, _Bound>
       { return _Iterator{_M_bound}; }
 
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 4001. iota_view should provide empty
+      constexpr bool
+      empty() const
+      { return _M_value == _M_bound; }
+
       constexpr auto
       size() const
       requires (same_as<_Winc, _Bound> && __detail::__advanceable<_Winc>)
@@ -3350,14 +3362,17 @@ namespace views::__adaptor
 	  private:
 	    _OuterIter _M_i = _OuterIter();
 
-	  public:
-	    value_type() = default;
-
+	    // _GLIBCXX_RESOLVE_LIB_DEFECTS
+	    // 4013. lazy_split_view::outer-iterator::value_type should not
+	    // provide default constructor
 	    constexpr explicit
 	    value_type(_OuterIter __i)
 	      : _M_i(std::move(__i))
 	    { }
 
+	    friend _OuterIter;
+
+	  public:
 	    constexpr _InnerIter<_Const>
 	    begin() const
 	    { return _InnerIter<_Const>{_M_i}; }
@@ -3949,8 +3964,10 @@ namespace views::__adaptor
       base() &&
       { return std::move(_M_base); }
 
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 4012. common_view::begin/end are missing the simple-view check
       constexpr auto
-      begin()
+      begin() requires (!__detail::__simple_view<_Vp>)
       {
 	if constexpr (random_access_range<_Vp> && sized_range<_Vp>)
 	  return ranges::begin(_M_base);
@@ -3970,7 +3987,7 @@ namespace views::__adaptor
       }
 
       constexpr auto
-      end()
+      end() requires (!__detail::__simple_view<_Vp>)
       {
 	if constexpr (random_access_range<_Vp> && sized_range<_Vp>)
 	  return ranges::begin(_M_base) + ranges::size(_M_base);
@@ -5317,6 +5334,16 @@ namespace views::__adaptor
       : _M_base(std::move(__base))
     { }
 
+    // _GLIBCXX_RESOLVE_LIB_DEFECTS
+    // 3848. adjacent_view, adjacent_transform_view and slide_view missing base accessor
+    constexpr _Vp
+    base() const & requires copy_constructible<_Vp>
+    { return _M_base; }
+
+    constexpr _Vp
+    base() &&
+    { return std::move(_M_base); }
+
     constexpr auto
     begin() requires (!__detail::__simple_view<_Vp>)
     { return _Iterator<false>(ranges::begin(_M_base), ranges::end(_M_base)); }
@@ -5710,6 +5737,17 @@ namespace views::__adaptor
       : _M_fun(std::move(__fun)), _M_inner(std::move(__base))
     { }
 
+    // _GLIBCXX_RESOLVE_LIB_DEFECTS
+    // 3848. adjacent_view, adjacent_transform_view and slide_view missing base accessor
+    // 3947. Unexpected constraints on adjacent_transform_view::base()
+    constexpr _Vp
+    base() const & requires copy_constructible<_Vp>
+    { return _M_inner.base(); }
+
+    constexpr _Vp
+    base() &&
+    { return std::move(_M_inner.base()); }
+
     constexpr auto
     begin()
     { return _Iterator<false>(*this, _M_inner.begin()); }
@@ -6237,6 +6275,20 @@ namespace views::__adaptor
     operator-(const _InnerIter& __x, default_sentinel_t __y)
       requires sized_sentinel_for<sentinel_t<_Vp>, iterator_t<_Vp>>
     { return -(__y - __x); }
+
+    // _GLIBCXX_RESOLVE_LIB_DEFECTS
+    // 3851. chunk_view::inner-iterator missing custom iter_move and iter_swap
+    friend constexpr range_rvalue_reference_t<_Vp>
+    iter_move(const _InnerIter& __i)
+    noexcept(noexcept(ranges::iter_move(*__i._M_parent->_M_current)))
+    { return ranges::iter_move(*__i._M_parent->_M_current); }
+
+    friend constexpr void
+    iter_swap(const _InnerIter& __x, const _InnerIter& __y)
+    noexcept(noexcept(ranges::iter_swap(*__x._M_parent->_M_current,
+					*__x._M_parent->_M_current)))
+    requires indirectly_swappable<iterator_t<_Vp>>
+    { return ranges::iter_swap(*__x._M_parent->_M_current, *__y._M_parent->_M_current); }
   };
 
   template<view _Vp>
@@ -6578,6 +6630,16 @@ namespace views::__adaptor
     : _M_base(std::move(__base)), _M_n(__n)
     { __glibcxx_assert(__n > 0); }
 
+    // _GLIBCXX_RESOLVE_LIB_DEFECTS
+    // 3848. adjacent_view, adjacent_transform_view and slide_view missing base accessor
+    constexpr _Vp
+    base() const & requires copy_constructible<_Vp>
+    { return _M_base; }
+
+    constexpr _Vp
+    base() &&
+    { return std::move(_M_base); }
+
     constexpr auto
     begin() requires (!(__detail::__simple_view<_Vp>
 			&& __detail::__slide_caches_nothing<const _Vp>))
@@ -7693,8 +7755,10 @@ namespace views::__adaptor
     { return __detail::__to_unsigned_like(_M_bound); }
   };
 
-  template<typename _Tp, typename _Bound>
-    repeat_view(_Tp, _Bound) -> repeat_view<_Tp, _Bound>;
+  // _GLIBCXX_RESOLVE_LIB_DEFECTS
+  // 4053. Unary call to std::views::repeat does not decay the argument
+  template<typename _Tp, typename _Bound = unreachable_sentinel_t>
+    repeat_view(_Tp, _Bound = _Bound()) -> repeat_view<_Tp, _Bound>;
 
   template<move_constructible _Tp, semiregular _Bound>
     requires is_object_v<_Tp> && same_as<_Tp, remove_cv_t<_Tp>>
@@ -7841,7 +7905,11 @@ namespace views::__adaptor
 	requires __detail::__can_repeat_view<_Tp>
       constexpr auto
       operator() [[nodiscard]] (_Tp&& __value) const
-      { return repeat_view(std::forward<_Tp>(__value)); }
+      {
+	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+	// 4054. Repeating a repeat_view should repeat the view
+	return repeat_view<decay_t<_Tp>>(std::forward<_Tp>(__value));
+      }
 
       template<typename _Tp, typename _Bound>
 	requires __detail::__can_bounded_repeat_view<_Tp, _Bound>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
index b83743a745c..085cd4a8c54 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
@@ -47,6 +47,9 @@ test01()
       VERIFY( &std::get<2>(v3[i]) == &y[i] + 2 );
     }
 
+  // LWG 3848 - adjacent_view etc missing base accessor
+  v3.base();
+
   const auto v5 = y | views::adjacent<5>;
   VERIFY( ranges::equal(v5, views::single(std::make_tuple(1, 2, 3, 4, 5))) );
 
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
index 6aeedbaa648..a5791b3da70 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
@@ -39,6 +39,9 @@ test01()
   VERIFY( ranges::size(v3) == 4 );
   VERIFY( ranges::equal(v3, (int[]){3, 4, 5, 6}) );
 
+  // LWG 3848 - adjacent_transform_view etc missing base accessor
+  v3.base();
+
   const auto v6 = y | views::adjacent_transform<6>([](auto...) { return 0; });
   VERIFY( ranges::equal(v6, (int[]){0}) );
 
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
index 90eb608ca5e..82f9f1b674c 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
@@ -8,6 +8,7 @@
 #endif
 
 #include <algorithm>
+#include <sstream>
 #include <vector>
 #include <testsuite_hooks.h>
 #include <testsuite_iterators.h>
@@ -76,10 +77,24 @@ test02()
     VERIFY( ranges::equal(wrapper(x) | views::chunk(i) | views::join, x) );
 }
 
+void
+test03()
+{
+  // LWG 3851 - chunk_view::inner-iterator missing custom iter_move and iter_swap
+  auto ints = std::istringstream{"0 1 2 3 4"};
+  std::vector<std::string> vs{"the", "quick", "brown", "fox"};
+  auto r = views::zip(vs, views::istream<int>(ints)) | views::chunk(2) | views::join;
+  std::vector<std::tuple<std::string, int>> res;
+  ranges::copy(std::move_iterator(r.begin()), std::move_sentinel(r.end()),
+	       std::back_inserter(res));
+  VERIFY( vs.front().empty() );
+}
+
 int
 main()
 {
   static_assert(test01());
   test02<__gnu_test::test_input_range<int>>();
   test02<__gnu_test::test_forward_range<int>>();
+  test03();
 }
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
index bafe9fbc4bf..a5d94ea6406 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
@@ -50,6 +50,9 @@ test01()
       VERIFY( &v3[i][2] == &y[i] + 2 );
     }
 
+  // LWG 3848 - slide_view etc missing base accessor
+  v3.base();
+
   const auto v5 = y | views::slide(5);
   VERIFY( ranges::size(v5) == 1 );
   VERIFY( ranges::equal(v5 | views::join, y) );
diff --git a/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc b/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
index bec4174a3da..9db61a76596 100644
--- a/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
+++ b/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
@@ -19,6 +19,7 @@
 
 #include <algorithm>
 #include <ranges>
+#include <vector>
 #include <testsuite_hooks.h>
 
 void
@@ -118,6 +119,16 @@ test07()
   static_assert(!requires { iota(nullptr, nullptr); });
 }
 
+void
+test08()
+{
+  // LWC 4001 - iota_view should provide empty
+  std::vector<int> v;
+  auto it = std::back_inserter(v);
+  auto r = std::views::iota(it);
+  VERIFY( !r.empty() );
+}
+
 int
 main()
 {
@@ -128,4 +139,5 @@ main()
   test05();
   test06();
   test07();
+  test08();
 }
diff --git a/libstdc++-v3/testsuite/std/ranges/repeat/1.cc b/libstdc++-v3/testsuite/std/ranges/repeat/1.cc
index cad8c8dcbe7..eb0c848e9ce 100644
--- a/libstdc++-v3/testsuite/std/ranges/repeat/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/repeat/1.cc
@@ -151,6 +151,27 @@ test07()
   auto d2 = std::views::repeat(std::make_unique<int>(5), 4) | std::views::drop(2);
 }
 
+void
+test08()
+{
+  // LWG 4053 - Unary call to std::views::repeat does not decay the argument
+  using type = ranges::repeat_view<const char*>;
+  using type = decltype(views::repeat("foo", std::unreachable_sentinel));
+  using type = decltype(views::repeat(+"foo", std::unreachable_sentinel));
+  using type = decltype(views::repeat("foo"));
+  using type = decltype(views::repeat(+"foo"));
+}
+
+void
+test09()
+{
+  // LWG 4054 - Repeating a repeat_view should repeat the view
+  auto v = views::repeat(views::repeat(5));
+  using type = decltype(v);
+  using type = ranges::repeat_view<ranges::repeat_view<int>>;
+  VERIFY( v[0][0] == 5 );
+}
+
 int
 main()
 {
@@ -161,4 +182,6 @@ main()
   test05();
   test06();
   test07();
+  test08();
+  test09();
 }

commit f381a217e9b6c8276bb580a22d12445ed7a7dc8c
Author: Patrick Palka <ppalka@redhat.com>
Date:   Sat Oct 5 13:48:06 2024 -0400

    libstdc++: Implement LWG 3664 changes to ranges::distance
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/ranges_base.h (__distance_fn::operator()):
            Adjust iterator/sentinel overloads as per LWG 3664.
            * testsuite/24_iterators/range_operations/distance.cc:
            Test LWG 3664 example.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 7c0d1e9f2a2f1d41d9eb755c36c871d92638c4b7)

diff --git a/libstdc++-v3/include/bits/ranges_base.h b/libstdc++-v3/include/bits/ranges_base.h
index 23c0b56ff22..67ac8db8b46 100644
--- a/libstdc++-v3/include/bits/ranges_base.h
+++ b/libstdc++-v3/include/bits/ranges_base.h
@@ -930,7 +930,9 @@ namespace ranges
 
   struct __distance_fn final
   {
-    template<input_or_output_iterator _It, sentinel_for<_It> _Sent>
+    // _GLIBCXX_RESOLVE_LIB_DEFECTS
+    // 3664. LWG 3392 broke std::ranges::distance(a, a+3)
+    template<typename _It, sentinel_for<_It> _Sent>
       requires (!sized_sentinel_for<_Sent, _It>)
       constexpr iter_difference_t<_It>
       operator()[[nodiscard]](_It __first, _Sent __last) const
@@ -944,13 +946,11 @@ namespace ranges
 	return __n;
       }
 
-    template<input_or_output_iterator _It, sized_sentinel_for<_It> _Sent>
+    template<typename _It, sized_sentinel_for<decay_t<_It>> _Sent>
       [[nodiscard]]
-      constexpr iter_difference_t<_It>
-      operator()(const _It& __first, const _Sent& __last) const
-      {
-	return __last - __first;
-      }
+      constexpr iter_difference_t<decay_t<_It>>
+      operator()(_It&& __first, _Sent __last) const
+      { return __last - static_cast<const decay_t<_It>&>(__first); }
 
     template<range _Range>
       [[nodiscard]]
diff --git a/libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc b/libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
index 9a1d0c3efe8..336956936c2 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
@@ -144,6 +144,16 @@ test05()
   VERIFY( std::ranges::distance(c4) == 5 );
 }
 
+void
+test06()
+{
+  // LWG 3664 - LWG 3392 broke std::ranges::distance(a, a+3)
+  int a[] = {1, 2, 3};
+  VERIFY( std::ranges::distance(a, a+3) == 3 );
+  VERIFY( std::ranges::distance(a, a) == 0 );
+  VERIFY( std::ranges::distance(a+3, a) == -3 );
+}
+
 int
 main()
 {
@@ -152,4 +162,5 @@ main()
   test03();
   test04();
   test05();
+  test06();
 }

commit 1ab90810dcaf79491f2803cdbf90f618a6821544
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Tue Oct 22 12:49:35 2024 +0100

    testsuite: Skip pr112305.c for -O[01] on simulators
    
    gcc.dg/torture/pr112305.c contains an inner loop that executes
    0x8000_0014 times and an outer loop that executes 5 times, giving about
    10 billion total executions of the inner loop body.  At -O2 and above we
    are able to remove the inner loop, but at -O1 we keep a no-op loop:
    
            dls     lr, r3
    .L3:
            subs    r3, r3, #1
            le      lr, .L3
    
    and at -O0 we of course don't optimise.
    
    This can lead to long execution times on simulators, possibly
    triggering a timeout.
    
    gcc/testsuite
            * gcc.dg/torture/pr112305.c: Skip at -O0 and -O1 for simulators.
    
    (cherry picked from commit 4e80432c52a18b92899244e8ce3c243f560766a6)

diff --git a/gcc/testsuite/gcc.dg/torture/pr112305.c b/gcc/testsuite/gcc.dg/torture/pr112305.c
index 9d363aaac9d..ea6e044529d 100644
--- a/gcc/testsuite/gcc.dg/torture/pr112305.c
+++ b/gcc/testsuite/gcc.dg/torture/pr112305.c
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-require-effective-target int32plus } */
+/* { dg-skip-if "long-running loop" { simulator } { "-O0" "-O1" } } */
 
 int a;
 void b()

commit 47c66c56d7404c949e83e31fa37ccbcc362712d9
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Sun Oct 20 11:20:43 2024 +0200

    testsuite: arm: Use check-function-bodies in cmse-5 tests
    
    Converted the tests to use check-function-bodies in order to ensure that
    the sequence is correct.
    This also allows both APSR_nzcvq and APSR_nzcvqg as target selector does
    not work when the -march and/or -mcpu overrides the target to test.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c: Use
            check-function-bodies.
            * gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c: Likewise.
            * gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c: Likewise.
            * gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c: Likewise.
            * gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c: Likewise.
            * gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-5.c: Likewise.
            * gcc.target/arm/cmse/mainline/8_1m/hard/cmse-5.c: Likewise.
            * gcc.target/arm/cmse/mainline/8_1m/soft/cmse-5.c: Likewise.
            * gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-5.c:
            Likewise.
            * gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-5.c: Likewise.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 835ad52fbb9c8a0bb4e713deb6c99679d8b77d60)

diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-5.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-5.c
index dc62b742ba5..58fd8884422 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-5.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-5.c
@@ -2,11 +2,16 @@
 /* { dg-options "-mcmse -mfloat-abi=hard -mfpu=fpv5-sp-d16" }  */
 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
 /* { dg-skip-if "Skip these if testing double precision" {*-*-*} {"-mfpu=fpv[4-5]-d16"} {""} } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "../../../cmse-5.x"
 
-/* { dg-final { scan-assembler "vstr\tFPCXTNS, \\\[sp, #-4\\\]!" } } */
-/* { dg-final { scan-assembler "vscclrm\t\{s1-s15, VPR\}" } } */
-/* { dg-final { scan-assembler "clrm\t\{r0, r1, r2, r3, ip, APSR\}" } } */
-/* { dg-final { scan-assembler "vldr\tFPCXTNS, \\\[sp\\\], #4" } } */
-/* { dg-final { scan-assembler "bxns" } } */
+/*
+** __acle_se_foo:
+**	vstr	FPCXTNS, \[sp, #-4\]!
+** ...
+**	vscclrm	\{s1-s15, VPR\}
+**	clrm	\{r0, r1, r2, r3, ip, APSR\}
+**	vldr	FPCXTNS, \[sp\], #4
+**	bxns	lr
+*/
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-5.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-5.c
index 55e7a4f7ae0..44ed6fbb8ed 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-5.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-5.c
@@ -2,11 +2,16 @@
 /* { dg-options "-mcmse -mfloat-abi=hard -mfpu=fpv5-d16" }  */
 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
 /* { dg-skip-if "Skip these if testing single precision" {*-*-*} {"-mfpu=*-sp-*"} {""} } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "../../../cmse-5.x"
 
-/* { dg-final { scan-assembler "vstr\tFPCXTNS, \\\[sp, #-4\\\]!" } } */
-/* { dg-final { scan-assembler "vscclrm\t\{s1-s15, VPR\}" } } */
-/* { dg-final { scan-assembler "clrm\t\{r0, r1, r2, r3, ip, APSR\}" } } */
-/* { dg-final { scan-assembler "vldr\tFPCXTNS, \\\[sp\\\], #4" } } */
-/* { dg-final { scan-assembler "bxns" } } */
+/*
+** __acle_se_foo:
+**	vstr	FPCXTNS, \[sp, #-4\]!
+** ...
+**	vscclrm	\{s1-s15, VPR\}
+**	clrm	\{r0, r1, r2, r3, ip, APSR\}
+**	vldr	FPCXTNS, \[sp\], #4
+**	bxns	lr
+*/
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-5.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-5.c
index d3a3a742b8b..5bb55e2489f 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-5.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-5.c
@@ -1,13 +1,19 @@
 /* { dg-do compile } */
 /* { dg-options "-mcmse -mfloat-abi=soft" }  */
 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=soft" } } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "../../../cmse-5.x"
 
-/* { dg-final { scan-assembler "vstr\tFPCXTNS, \\\[sp, #-4\\\]!" } } */
+/*
+** __acle_se_foo:
+**	vstr	FPCXTNS, \[sp, #-4\]!
+** ...
+**	vscclrm	\{s0-s15, VPR\}
+**	clrm	\{r1, r2, r3, ip, APSR\}
+**	vldr	FPCXTNS, \[sp\], #4
+**	bxns	lr
+*/
+
 /* { dg-final { scan-assembler-not "vmov" } } */
 /* { dg-final { scan-assembler-not "vmsr" } } */
-/* { dg-final { scan-assembler "vscclrm\t\{s0-s15, VPR\}" } } */
-/* { dg-final { scan-assembler "clrm\t\{r1, r2, r3, ip, APSR\}" } } */
-/* { dg-final { scan-assembler "vldr\tFPCXTNS, \\\[sp\\\], #4" } } */
-/* { dg-final { scan-assembler "bxns" } } */
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-5.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-5.c
index bbe16cee9c2..55f067d46c0 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-5.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-5.c
@@ -2,13 +2,18 @@
 /* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-sp-d16" }  */
 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
 /* { dg-skip-if "Skip these if testing double precision" {*-*-*} {"-mfpu=fpv[4-5]-d16"} {""} } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "../../../cmse-5.x"
 
-/* { dg-final { scan-assembler "__acle_se_foo:" } } */
-/* { dg-final { scan-assembler "vstr\tFPCXTNS, \\\[sp, #-4\\\]!" } } */
+/*
+** __acle_se_foo:
+**	vstr	FPCXTNS, \[sp, #-4\]!
+** ...
+**	vscclrm	\{s0-s15, VPR\}
+**	clrm	\{r1, r2, r3, ip, APSR\}
+**	vldr	FPCXTNS, \[sp\], #4
+**	bxns	lr
+*/
+
 /* { dg-final { scan-assembler-not "mov\tr0, lr" } } */
-/* { dg-final { scan-assembler "vscclrm\t\{s0-s15, VPR\}" } } */
-/* { dg-final { scan-assembler "clrm\t\{r1, r2, r3, ip, APSR\}" } } */
-/* { dg-final { scan-assembler "vldr\tFPCXTNS, \\\[sp\\\], #4" } } */
-/* { dg-final { scan-assembler "bxns" } } */
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-5.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-5.c
index c7dda6a3d60..97881de43b2 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-5.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-5.c
@@ -2,12 +2,16 @@
 /* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-d16" }  */
 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
 /* { dg-skip-if "Skip these if testing single precision" {*-*-*} {"-mfpu=*-sp-*"} {""} } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "../../../cmse-5.x"
 
-/* { dg-final { scan-assembler "__acle_se_foo:" } } */
-/* { dg-final { scan-assembler "vstr\tFPCXTNS, \\\[sp, #-4\\\]!" } } */
-/* { dg-final { scan-assembler "vscclrm\t\{s0-s15, VPR\}" } } */
-/* { dg-final { scan-assembler "clrm\t\{r1, r2, r3, ip, APSR\}" } } */
-/* { dg-final { scan-assembler "vldr\tFPCXTNS, \\\[sp\\\], #4" } } */
-/* { dg-final { scan-assembler "bxns" } } */
+/*
+** __acle_se_foo:
+**	vstr	FPCXTNS, \[sp, #-4\]!
+** ...
+**	vscclrm	\{s0-s15, VPR\}
+**	clrm	\{r1, r2, r3, ip, APSR\}
+**	vldr	FPCXTNS, \[sp\], #4
+**	bxns	lr
+*/
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c
index 3b73c0ee2fb..bf635a8863c 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c
@@ -2,37 +2,66 @@
 /* { dg-options "-mcmse -mfloat-abi=hard -mfpu=fpv5-sp-d16" }  */
 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
 /* { dg-skip-if "Skip these if testing double precision" {*-*-*} {"-mfpu=fpv[4-5]-d16"} {""} } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "../../../cmse-5.x"
 
-/* { dg-final { scan-assembler "mov\tr0, lr" } } */
-/* { dg-final { scan-assembler "mov\tr1, lr" } } */
-/* { dg-final { scan-assembler "mov\tr2, lr" } } */
-/* { dg-final { scan-assembler "mov\tr3, lr" } } */
-/* { dg-final { scan-assembler-not "vmov\.f32\ts0, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts1, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts2, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts3, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts4, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts5, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts6, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts7, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts8, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts9, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts10, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts11, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts12, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts13, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts14, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts15, #1\.0" } } */
-/* { dg-final { scan-assembler "msr\tAPSR_nzcvq, lr" { target { ! arm_dsp } } } } */
-/* { dg-final { scan-assembler "msr\tAPSR_nzcvqg, lr" { target arm_dsp } } } */
-/* { dg-final { scan-assembler "push\t{r4}" } } */
-/* { dg-final { scan-assembler "vmrs\tip, fpscr" } } */
-/* { dg-final { scan-assembler "movw\tr4, #65376" } } */
-/* { dg-final { scan-assembler "movt\tr4, #4095" } } */
-/* { dg-final { scan-assembler "and\tip, r4" } } */
-/* { dg-final { scan-assembler "vmsr\tfpscr, ip" } } */
-/* { dg-final { scan-assembler "pop\t{r4}" } } */
-/* { dg-final { scan-assembler "mov\tip, lr" } } */
-/* { dg-final { scan-assembler "bxns" } } */
+/*
+** __acle_se_foo:
+**...
+** (
+**	mov	r0, lr
+**	mov	r1, lr
+**	mov	r2, lr
+**	mov	r3, lr
+** ...
+**	vmov.f32	s1, #1\.0e\+0
+**	vmov.f32	s2, #1\.0e\+0
+**	vmov.f32	s3, #1\.0e\+0
+**	vmov.f32	s4, #1\.0e\+0
+**	vmov.f32	s5, #1\.0e\+0
+**	vmov.f32	s6, #1\.0e\+0
+**	vmov.f32	s7, #1\.0e\+0
+**	vmov.f32	s8, #1\.0e\+0
+**	vmov.f32	s9, #1\.0e\+0
+**	vmov.f32	s10, #1\.0e\+0
+**	vmov.f32	s11, #1\.0e\+0
+**	vmov.f32	s12, #1\.0e\+0
+**	vmov.f32	s13, #1\.0e\+0
+**	vmov.f32	s14, #1\.0e\+0
+**	vmov.f32	s15, #1\.0e\+0
+** |
+**	vmov.f32	s1, #1\.0e\+0
+**	vmov.f32	s2, #1\.0e\+0
+**	vmov.f32	s3, #1\.0e\+0
+**	vmov.f32	s4, #1\.0e\+0
+**	vmov.f32	s5, #1\.0e\+0
+**	vmov.f32	s6, #1\.0e\+0
+**	vmov.f32	s7, #1\.0e\+0
+**	vmov.f32	s8, #1\.0e\+0
+**	vmov.f32	s9, #1\.0e\+0
+**	vmov.f32	s10, #1\.0e\+0
+**	vmov.f32	s11, #1\.0e\+0
+**	vmov.f32	s12, #1\.0e\+0
+**	vmov.f32	s13, #1\.0e\+0
+**	vmov.f32	s14, #1\.0e\+0
+**	vmov.f32	s15, #1\.0e\+0
+** ...
+**	mov	r0, lr
+**	mov	r1, lr
+**	mov	r2, lr
+**	mov	r3, lr
+** )
+**	msr	APSR_nzcvqg?, lr
+**	push	(\{r4\})
+**	vmrs	ip, fpscr
+**	movw	r4, #65376
+**	movt	r4, #4095
+**	and	ip, r4
+**	vmsr	fpscr, ip
+**	pop	\1
+**	mov	ip, lr
+**	bxns	lr
+*/
+
+/* { dg-final { scan-assembler-not "vmov\.f32\ts0, #1\.0e\+0" } } */
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c
index d6e758cc98e..d8ac7c961cc 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c
@@ -2,30 +2,53 @@
 /* { dg-options "-mcmse -mfloat-abi=hard -mfpu=fpv5-d16" }  */
 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
 /* { dg-skip-if "Skip these if testing single precision" {*-*-*} {"-mfpu=*-sp-*"} {""} } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "../../../cmse-5.x"
 
-/* { dg-final { scan-assembler "mov\tr0, lr" } } */
-/* { dg-final { scan-assembler "mov\tr1, lr" } } */
-/* { dg-final { scan-assembler "mov\tr2, lr" } } */
-/* { dg-final { scan-assembler "mov\tr3, lr" } } */
-/* { dg-final { scan-assembler-not "vmov\.f32\ts0, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts1, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td1, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td2, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td3, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td4, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td5, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td6, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td7, #1\.0" } } */
-/* { dg-final { scan-assembler "msr\tAPSR_nzcvq, lr" { target { ! arm_dsp } } } } */
-/* { dg-final { scan-assembler "msr\tAPSR_nzcvqg, lr" { target arm_dsp } } } */
-/* { dg-final { scan-assembler "push\t{r4}" } } */
-/* { dg-final { scan-assembler "vmrs\tip, fpscr" } } */
-/* { dg-final { scan-assembler "movw\tr4, #65376" } } */
-/* { dg-final { scan-assembler "movt\tr4, #4095" } } */
-/* { dg-final { scan-assembler "and\tip, r4" } } */
-/* { dg-final { scan-assembler "vmsr\tfpscr, ip" } } */
-/* { dg-final { scan-assembler "pop\t{r4}" } } */
-/* { dg-final { scan-assembler "mov\tip, lr" } } */
-/* { dg-final { scan-assembler "bxns" } } */
+/*
+** __acle_se_foo:
+** ...
+** (
+**	mov	r0, lr
+**	mov	r1, lr
+**	mov	r2, lr
+**	mov	r3, lr
+** ...
+**	vmov.f32	s1, #1\.0e\+0
+**	vmov.f64	d1, #1\.0e\+0
+**	vmov.f64	d2, #1\.0e\+0
+**	vmov.f64	d3, #1\.0e\+0
+**	vmov.f64	d4, #1\.0e\+0
+**	vmov.f64	d5, #1\.0e\+0
+**	vmov.f64	d6, #1\.0e\+0
+**	vmov.f64	d7, #1\.0e\+0
+** |
+**	vmov.f32	s1, #1\.0e\+0
+**	vmov.f64	d1, #1\.0e\+0
+**	vmov.f64	d2, #1\.0e\+0
+**	vmov.f64	d3, #1\.0e\+0
+**	vmov.f64	d4, #1\.0e\+0
+**	vmov.f64	d5, #1\.0e\+0
+**	vmov.f64	d6, #1\.0e\+0
+**	vmov.f64	d7, #1\.0e\+0
+** ...
+**	mov	r0, lr
+**	mov	r1, lr
+**	mov	r2, lr
+**	mov	r3, lr
+** )
+**	msr	APSR_nzcvqg?, lr
+**	push	(\{r4\})
+**	vmrs	ip, fpscr
+**	movw	r4, #65376
+**	movt	r4, #4095
+**	and	ip, r4
+**	vmsr	fpscr, ip
+**	pop	\1
+**	mov	ip, lr
+**	bxns	lr
+*/
+
+/* { dg-final { scan-assembler-not "vmov\.f64\td0, #1\.0e\+0" } } */
+/* { dg-final { scan-assembler-not "vmov\.f32\ts0, #1\.0e\+0" } } */
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c
index 71971b094c0..9a28d555b04 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c
@@ -1,15 +1,19 @@
 /* { dg-do compile } */
 /* { dg-options "-mcmse -mfloat-abi=soft" }  */
 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=soft" } } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "../../../cmse-5.x"
 
-/* { dg-final { scan-assembler "mov\tr1, lr" } } */
-/* { dg-final { scan-assembler "mov\tr2, lr" } } */
-/* { dg-final { scan-assembler "mov\tr3, lr" } } */
-/* { dg-final { scan-assembler "mov\tip, lr" } } */
-/* { dg-final { scan-assembler-not "vmov" } } */
-/* { dg-final { scan-assembler-not "vmsr" } } */
-/* { dg-final { scan-assembler "msr\tAPSR_nzcvq, lr" { target { ! arm_dsp } } } } */
-/* { dg-final { scan-assembler "msr\tAPSR_nzcvqg, lr" { target arm_dsp } } } */
-/* { dg-final { scan-assembler "bxns" } } */
+/*
+** __acle_se_foo:
+**...
+**	mov	r1, lr
+**	mov	r2, lr
+**	mov	r3, lr
+**	mov	ip, lr
+**	msr	APSR_nzcvqg?, lr
+**	bxns	lr
+*/
+
+/* { dg-final { scan-assembler-not "mov\tr0, lr" } } */
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c
index f550b77f616..881d17f720c 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c
@@ -2,38 +2,66 @@
 /* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-sp-d16" }  */
 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
 /* { dg-skip-if "Skip these if testing double precision" {*-*-*} {"-mfpu=fpv[4-5]-d16"} {""} } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "../../../cmse-5.x"
 
-/* { dg-final { scan-assembler "__acle_se_foo:" } } */
+/*
+** __acle_se_foo:
+** ...
+** (
+**	mov	r1, lr
+**	mov	r2, lr
+**	mov	r3, lr
+** ...
+**	vmov.f32	s0, #1\.0e\+0
+**	vmov.f32	s1, #1\.0e\+0
+**	vmov.f32	s2, #1\.0e\+0
+**	vmov.f32	s3, #1\.0e\+0
+**	vmov.f32	s4, #1\.0e\+0
+**	vmov.f32	s5, #1\.0e\+0
+**	vmov.f32	s6, #1\.0e\+0
+**	vmov.f32	s7, #1\.0e\+0
+**	vmov.f32	s8, #1\.0e\+0
+**	vmov.f32	s9, #1\.0e\+0
+**	vmov.f32	s10, #1\.0e\+0
+**	vmov.f32	s11, #1\.0e\+0
+**	vmov.f32	s12, #1\.0e\+0
+**	vmov.f32	s13, #1\.0e\+0
+**	vmov.f32	s14, #1\.0e\+0
+**	vmov.f32	s15, #1\.0e\+0
+** |
+**	vmov.f32	s0, #1\.0e\+0
+**	vmov.f32	s1, #1\.0e\+0
+**	vmov.f32	s2, #1\.0e\+0
+**	vmov.f32	s3, #1\.0e\+0
+**	vmov.f32	s4, #1\.0e\+0
+**	vmov.f32	s5, #1\.0e\+0
+**	vmov.f32	s6, #1\.0e\+0
+**	vmov.f32	s7, #1\.0e\+0
+**	vmov.f32	s8, #1\.0e\+0
+**	vmov.f32	s9, #1\.0e\+0
+**	vmov.f32	s10, #1\.0e\+0
+**	vmov.f32	s11, #1\.0e\+0
+**	vmov.f32	s12, #1\.0e\+0
+**	vmov.f32	s13, #1\.0e\+0
+**	vmov.f32	s14, #1\.0e\+0
+**	vmov.f32	s15, #1\.0e\+0
+** ...
+**	mov	r1, lr
+**	mov	r2, lr
+**	mov	r3, lr
+** )
+**	msr	APSR_nzcvqg?, lr
+**	push	(\{r4\})
+**	vmrs	ip, fpscr
+**	movw	r4, #65376
+**	movt	r4, #4095
+**	and	ip, r4
+**	vmsr	fpscr, ip
+**	pop	\1
+**	mov	ip, lr
+**	bxns	lr
+*/
+
 /* { dg-final { scan-assembler-not "mov\tr0, lr" } } */
-/* { dg-final { scan-assembler "mov\tr1, lr" } } */
-/* { dg-final { scan-assembler "mov\tr2, lr" } } */
-/* { dg-final { scan-assembler "mov\tr3, lr" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts0, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts1, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts2, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts3, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts4, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts5, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts6, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts7, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts8, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts9, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts10, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts11, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts12, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts13, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts14, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f32\ts15, #1\.0" } } */
-/* { dg-final { scan-assembler "msr\tAPSR_nzcvq, lr" { target { ! arm_dsp } } } } */
-/* { dg-final { scan-assembler "msr\tAPSR_nzcvqg, lr" { target arm_dsp } } } */
-/* { dg-final { scan-assembler "push\t{r4}" } } */
-/* { dg-final { scan-assembler "vmrs\tip, fpscr" } } */
-/* { dg-final { scan-assembler "movw\tr4, #65376" } } */
-/* { dg-final { scan-assembler "movt\tr4, #4095" } } */
-/* { dg-final { scan-assembler "and\tip, r4" } } */
-/* { dg-final { scan-assembler "vmsr\tfpscr, ip" } } */
-/* { dg-final { scan-assembler "pop\t{r4}" } } */
-/* { dg-final { scan-assembler "mov\tip, lr" } } */
-/* { dg-final { scan-assembler "bxns" } } */
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c
index cf8f3ab135a..5167a7babb3 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c
@@ -2,30 +2,50 @@
 /* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-d16" }  */
 /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
 /* { dg-skip-if "Skip these if testing single precision" {*-*-*} {"-mfpu=*-sp-*"} {""} } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "../../../cmse-5.x"
 
-/* { dg-final { scan-assembler "__acle_se_foo:" } } */
+/*
+** __acle_se_foo:
+**...
+** (
+**	vmov.f64	d0, #1\.0e\+0
+**	vmov.f64	d1, #1\.0e\+0
+**	vmov.f64	d2, #1\.0e\+0
+**	vmov.f64	d3, #1\.0e\+0
+**	vmov.f64	d4, #1\.0e\+0
+**	vmov.f64	d5, #1\.0e\+0
+**	vmov.f64	d6, #1\.0e\+0
+**	vmov.f64	d7, #1\.0e\+0
+** ...
+**	mov	r1, lr
+**	mov	r2, lr
+**	mov	r3, lr
+** |
+**	mov	r1, lr
+**	mov	r2, lr
+**	mov	r3, lr
+** ...
+**	vmov.f64	d0, #1\.0e\+0
+**	vmov.f64	d1, #1\.0e\+0
+**	vmov.f64	d2, #1\.0e\+0
+**	vmov.f64	d3, #1\.0e\+0
+**	vmov.f64	d4, #1\.0e\+0
+**	vmov.f64	d5, #1\.0e\+0
+**	vmov.f64	d6, #1\.0e\+0
+**	vmov.f64	d7, #1\.0e\+0
+** )
+**	msr	APSR_nzcvqg?, lr
+**	push	\{r4\}
+**	vmrs	ip, fpscr
+**	movw	r4, #65376
+**	movt	r4, #4095
+**	and	ip, r4
+**	vmsr	fpscr, ip
+**	pop	\{r4\}
+**	mov	ip, lr
+**	bxns	lr
+*/
+
 /* { dg-final { scan-assembler-not "mov\tr0, lr" } } */
-/* { dg-final { scan-assembler "mov\tr1, lr" } } */
-/* { dg-final { scan-assembler "mov\tr2, lr" } } */
-/* { dg-final { scan-assembler "mov\tr3, lr" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td0, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td1, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td2, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td3, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td4, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td5, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td6, #1\.0" } } */
-/* { dg-final { scan-assembler "vmov\.f64\td7, #1\.0" } } */
-/* { dg-final { scan-assembler "msr\tAPSR_nzcvq, lr" { target { ! arm_dsp } } } } */
-/* { dg-final { scan-assembler "msr\tAPSR_nzcvqg, lr" { target arm_dsp } } } */
-/* { dg-final { scan-assembler "push\t{r4}" } } */
-/* { dg-final { scan-assembler "vmrs\tip, fpscr" } } */
-/* { dg-final { scan-assembler "movw\tr4, #65376" } } */
-/* { dg-final { scan-assembler "movt\tr4, #4095" } } */
-/* { dg-final { scan-assembler "and\tip, r4" } } */
-/* { dg-final { scan-assembler "vmsr\tfpscr, ip" } } */
-/* { dg-final { scan-assembler "pop\t{r4}" } } */
-/* { dg-final { scan-assembler "mov\tip, lr" } } */
-/* { dg-final { scan-assembler "bxns" } } */

commit cc1e6053c3c69fc3cd72a21d35ab4da575c37dbe
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Sun Oct 20 10:28:32 2024 +0200

    testsuite: arm: Relax expected asm in bitfield* and union-2 tests
    
    Below -O2, lsls/lsrs are prefered. For -O2 and above, lsl/lsr are
    prefered.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c: Allow lsl and
            lsr instructions.
            * gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c: Likewise.
            * gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c: Likewise.
            * gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c: Likewise.
            * gcc.target/arm/cmse/mainline/8_1m/union-2.c: Likewise.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit a79ca49b5ce0ad4738062572948e52485aa2da2b)

diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c
index ff34edb21c3..4bdc09c0eab 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c
@@ -11,8 +11,8 @@
 /* { dg-final { scan-assembler "mov\tip, #3" } } */
 /* { dg-final { scan-assembler "and\tr2, r2, ip" } } */
 /* Shift on the same register as blxns.  */
-/* { dg-final { scan-assembler "lsrs\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
-/* { dg-final { scan-assembler "lsls\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
+/* { dg-final { scan-assembler "lsrs?\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
+/* { dg-final { scan-assembler "lsls?\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
 /* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
 /* Check the right registers are cleared and none appears twice.  */
 /* { dg-final { scan-assembler "clrm\t\{(r3, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c
index 9b1227adfdc..717b0e886c8 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c
@@ -12,8 +12,8 @@
 /* { dg-final { scan-assembler "mov\tip, #255" } } */
 /* { dg-final { scan-assembler "and\tr2, r2, ip" } } */
 /* Shift on the same register as blxns.  */
-/* { dg-final { scan-assembler "lsrs\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
-/* { dg-final { scan-assembler "lsls\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
+/* { dg-final { scan-assembler "lsrs?\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
+/* { dg-final { scan-assembler "lsls?\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
 /* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
 /* Check the right registers are cleared and none appears twice.  */
 /* { dg-final { scan-assembler "clrm\t\{(r3, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c
index ae039e292d5..03abd3e9542 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c
@@ -12,8 +12,8 @@
 /* { dg-final { scan-assembler "movt\tip, 31" } } */
 /* { dg-final { scan-assembler "and\tr2, r2, ip" } } */
 /* Shift on the same register as blxns.  */
-/* { dg-final { scan-assembler "lsrs\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
-/* { dg-final { scan-assembler "lsls\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
+/* { dg-final { scan-assembler "lsrs?\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
+/* { dg-final { scan-assembler "lsls?\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
 /* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
 /* Check the right registers are cleared and none appears twice.  */
 /* { dg-final { scan-assembler "clrm\t\{(r3, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
index 3e76364c404..635189d77e5 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c
@@ -16,8 +16,8 @@
 /* { dg-final { scan-assembler "movt\tip, 31" } } */
 /* { dg-final { scan-assembler "and\tr3, r3, ip" } } */
 /* Shift on the same register as blxns.  */
-/* { dg-final { scan-assembler "lsrs\t(r\[4-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
-/* { dg-final { scan-assembler "lsls\t(r\[4-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
+/* { dg-final { scan-assembler "lsrs?\t(r\[4-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
+/* { dg-final { scan-assembler "lsls?\t(r\[4-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
 /* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
 /* Check the right registers are cleared and none appears twice.  */
 /* { dg-final { scan-assembler "clrm\t\{(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */
diff --git a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-2.c b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-2.c
index 95de458b501..90948610122 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-2.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-2.c
@@ -13,8 +13,8 @@
 /* { dg-final { scan-assembler "movt\tip, 31" } } */
 /* { dg-final { scan-assembler "and\tr2, r2, ip" } } */
 /* Shift on the same register as blxns.  */
-/* { dg-final { scan-assembler "lsrs\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
-/* { dg-final { scan-assembler "lsls\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
+/* { dg-final { scan-assembler "lsrs?\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
+/* { dg-final { scan-assembler "lsls?\t(r\[3-9\]|r10|fp|ip), \\1, #1.*blxns\t\\1" } } */
 /* { dg-final { scan-assembler "push\t\{r4, r5, r6, r7, r8, r9, r10, fp\}" } } */
 /* Check the right registers are cleared and none appears twice.  */
 /* { dg-final { scan-assembler "clrm\t\{(r3, )?(r4, )?(r5, )?(r6, )?(r7, )?(r8, )?(r9, )?(r10, )?(fp, )?(ip, )?APSR\}" } } */

commit 8b1146fe46e62f8b03bd9ddee48995794e192e82
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Sun Oct 20 11:48:42 2024 +0200

    testsuite: arm: Use check-function-bodies in fp16-aapcs-* tests
    
    Converted the tests to use check-function-bodies in order to ensure that
    the sequence is correct.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/fp16-aapcs-1.c: Use check-function-bodies.
            * gcc.target/arm/fp16-aapcs-2.c: Likewise.
            * gcc.target/arm/fp16-aapcs-3.c: Likewise.
            * gcc.target/arm/fp16-aapcs-4.c: Likewise.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 205515da82a2914d765e74ba73fd2765e1254112)

diff --git a/gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c b/gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c
index 0a0a60f3503..b18d7cda65c 100644
--- a/gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c
+++ b/gcc/testsuite/gcc.target/arm/fp16-aapcs-1.c
@@ -3,20 +3,63 @@
 /* { dg-require-effective-target arm_fp16_ok } */
 /* { dg-options "-O2" }  */
 /* { dg-add-options arm_fp16_ieee } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 /* Test __fp16 arguments and return value in registers (hard-float).  */
 
 void
 swap (__fp16, __fp16);
 
+/*
+** F:
+** ...
+** (
+
+Below block is for non-armv8.1
+** (
+**	vmov\.f32	(s[3-9]|s1[0-5]), s0
+** ...
+**	vmov\.f32	s0, s1
+** ...
+**	vmov\.f32	s1, \1
+** |
+**	vmov\.f32	(s[3-9]|s1[0-5]), s1
+** ...
+**	vmov\.f32	s1, s0
+** ...
+**	vmov\.f32	s0, \2
+** )
+**	vstr\.32	s2, \[sp, #4\]	@ int
+**	bl	swap
+**	vldr\.32	s2, \[sp, #4\]	@ int
+**	vmov\.f32	s0, s2
+
+** |
+
+Below block is for armv8.1
+** (
+**	vmov	(s[3-9]|s1[0-5]), s0	@ __fp16
+** ...
+**	vmov	s0, s1	@ __fp16
+** ...
+**	vmov	s1, \3	@ __fp16
+** |
+**	vmov	(s[3-9]|s1[0-5]), s1	@ __fp16
+** ...
+**	vmov	s1, s0	@ __fp16
+** ...
+**	vmov	s0, \4	@ __fp16
+** )
+**	vstr\.32	s2, \[sp, #4\]	@ int
+**	bl	swap
+**	vldr\.16	s0, \[sp, #4\]
+
+** )
+** ...
+*/
 __fp16
 F (__fp16 a, __fp16 b, __fp16 c)
 {
   swap (b, a);
   return c;
 }
-
-/* { dg-final { scan-assembler {vmov\.f32\ts[0-9]+, s1} } }  */
-/* { dg-final { scan-assembler {vmov\.f32\ts1, s0} } }  */
-/* { dg-final { scan-assembler {vmov\.f32\ts[0-9]+, s2+} } }  */
-/* { dg-final { scan-assembler-times {vmov\.f32\ts0, s[0-9]+} 2 } }  */
diff --git a/gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c b/gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c
index c34387f5782..48510e89536 100644
--- a/gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c
+++ b/gcc/testsuite/gcc.target/arm/fp16-aapcs-2.c
@@ -3,19 +3,42 @@
 /* { dg-options "-mfloat-abi=softfp -O2 -mno-long-calls" }  */
 /* { dg-add-options arm_fp16_ieee } */
 /* { dg-skip-if "incompatible float-abi" { arm*-*-* } { "-mfloat-abi=hard" } } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 /* Test __fp16 arguments and return value in registers (softfp).  */
 
 void
 swap (__fp16, __fp16);
 
+/*
+** F:
+** ...
+** (
+**	mov	r3, r0	@ __fp16
+** ...
+**	mov	r0, r1	@ __fp16
+** ...
+**	mov	r1, r3	@ __fp16
+** |
+**	mov	r3, r1	@ __fp16
+** ...
+**	mov	r1, r0	@ __fp16
+** ...
+**	mov	r0, r3	@ __fp16
+** )
+** ...
+*/
+/*
+** F: { target arm_little_endian }
+** ...
+**	str	r2, \[sp, #4\]
+**	bl	swap
+**	ldrh	r0, \[sp, #4\]	@ __fp16
+** ...
+*/
 __fp16
 F (__fp16 a, __fp16 b, __fp16 c)
 {
   swap (b, a);
   return c;
 }
-
-/* { dg-final { scan-assembler-times {mov\tr[0-9]+, r[0-2]} 3 } }  */
-/* { dg-final { scan-assembler-times {mov\tr1, r[03]} 1 } }  */
-/* { dg-final { scan-assembler-times {mov\tr0, r[0-9]+} 2 } }  */
diff --git a/gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c b/gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c
index 56a3ae26184..7238ef3a02e 100644
--- a/gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c
+++ b/gcc/testsuite/gcc.target/arm/fp16-aapcs-3.c
@@ -3,21 +3,63 @@
 /* { dg-require-effective-target arm_fp16_alternative_ok } */
 /* { dg-options "-O2" }  */
 /* { dg-add-options arm_fp16_alternative } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 /* Test __fp16 arguments and return value in registers (hard-float).  */
 
 void
 swap (__fp16, __fp16);
 
+/*
+** F:
+** ...
+** (
+
+Below block is for non-armv8.1
+** (
+**	vmov\.f32	(s[3-9]|s1[0-5]), s0
+** ...
+**	vmov\.f32	s0, s1
+** ...
+**	vmov\.f32	s1, \1
+** |
+**	vmov\.f32	(s[3-9]|s1[0-5]), s1
+** ...
+**	vmov\.f32	s1, s0
+** ...
+**	vmov\.f32	s0, \2
+** )
+**	vstr\.32	s2, \[sp, #4\]	@ int
+**	bl	swap
+**	vldr\.32	s2, \[sp, #4\]	@ int
+**	vmov\.f32	s0, s2
+
+** |
+
+Below block is for armv8.1
+** (
+**	vmov	(s[3-9]|s1[0-5]), s0
+** ...
+**	vmov	s0, s1
+** ...
+**	vmov	s1, \3
+** |
+**	vmov	(s[3-9]|s1[0-5]), s1
+** ...
+**	vmov	s1, s0
+** ...
+**	vmov	s0, \4
+** )
+**	vstr\.32	s2, \[sp, #4\]	@ int
+**	bl	swap
+**	vldr\.16	s0, \[sp, #4\]
+
+** )
+** ...
+*/
 __fp16
 F (__fp16 a, __fp16 b, __fp16 c)
 {
   swap (b, a);
   return c;
 }
-
-/* { dg-final { scan-assembler {vmov\.f32\ts[0-9]+, s1} } }  */
-/* { dg-final { scan-assembler {vmov\.f32\ts1, s0} } }  */
-/* { dg-final { scan-assembler {vmov\.f32\ts[0-9]+, s2+} } }  */
-/* { dg-final { scan-assembler-times {vmov\.f32\ts0, s[0-9]+} 2 } }  */
-
diff --git a/gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c b/gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c
index daac29137ae..13f08d8afa3 100644
--- a/gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c
+++ b/gcc/testsuite/gcc.target/arm/fp16-aapcs-4.c
@@ -3,19 +3,42 @@
 /* { dg-options "-mfloat-abi=softfp -O2" }  */
 /* { dg-add-options arm_fp16_alternative } */
 /* { dg-skip-if "incompatible float-abi" { arm*-*-* } { "-mfloat-abi=hard" } } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
 
 /* Test __fp16 arguments and return value in registers (softfp).  */
 
 void
 swap (__fp16, __fp16);
 
+/*
+** F:
+** ...
+** (
+**	mov	r3, r0	@ __fp16
+** ...
+**	mov	r0, r1	@ __fp16
+** ...
+**	mov	r1, r3	@ __fp16
+** |
+**	mov	r3, r1	@ __fp16
+** ...
+**	mov	r1, r0	@ __fp16
+** ...
+**	mov	r0, r3	@ __fp16
+** )
+** ...
+*/
+/*
+** F: { target arm_little_endian }
+** ...
+**	str	r2, \[sp, #4\]
+**	bl	swap
+**	ldrh	r0, \[sp, #4\]	@ __fp16
+** ...
+*/
 __fp16
 F (__fp16 a, __fp16 b, __fp16 c)
 {
   swap (b, a);
   return c;
 }
-
-/* { dg-final { scan-assembler-times {mov\tr[0-9]+, r[0-2]} 3 } }  */
-/* { dg-final { scan-assembler-times {mov\tr1, r[03]} 1 } }  */
-/* { dg-final { scan-assembler-times {mov\tr0, r[0-9]+} 2 } }  */

commit 01d3a974fe3474c37cd52b595c29dddafad954dc
Author: Nathaniel Shead <nathanieloshead@gmail.com>
Date:   Thu May 23 22:50:58 2024 +1000

    c++/modules: Fix treatment of unnamed types [PR116929]
    
    In r14-9530 we relaxed "depending on type with no-linkage" errors for
    declarations that could actually be accessed from different TUs anyway.
    However, this also enabled it for unnamed types, which never work.
    
    In a normal module interface, an unnamed type is TU-local by
    [basic.link] p15.2, and so cannot be exposed or the program is
    ill-formed.  We don't yet implement this checking but we should assume
    that we will later; currently supporting this actually causes ICEs when
    attempting to create the mangled name in some situations.
    
    For a header unit, by [module.import] p5.3 it is unspecified whether two
    TUs importing a header unit providing such a declaration are importing
    the same header unit.  In this case, we would require name mangling
    changes to somehow allow the (anonymous) type exported by such a header
    unit to correspond across different TUs in the presence of other
    anonymous declarations, so for this patch just assume that this case
    would be an ODR violation instead.
    
            PR c++/116929
    
    gcc/cp/ChangeLog:
    
            * tree.cc (no_linkage_check): Anonymous types can't be accessed
            in a different TU.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/modules/linkage-1_a.C: Remove anonymous type test.
            * g++.dg/modules/linkage-1_b.C: Likewise.
            * g++.dg/modules/linkage-1_c.C: Likewise.
            * g++.dg/modules/linkage-2.C: Add note about anonymous types.
    
    Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
    Reviewed-by: Jason Merrill <jason@redhat.com>
    
    (cherry picked from commit 0173dcce92baa62a74929814a75edb75eeab1a54)

diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc
index a056237e866..01e6c1cb892 100644
--- a/gcc/cp/tree.cc
+++ b/gcc/cp/tree.cc
@@ -3020,15 +3020,7 @@ no_linkage_check (tree t, bool relaxed_p)
       /* Only treat unnamed types as having no linkage if they're at
 	 namespace scope.  This is core issue 966.  */
       if (TYPE_UNNAMED_P (t) && TYPE_NAMESPACE_SCOPE_P (t))
-	{
-	  if (relaxed_p
-	      && TREE_PUBLIC (CP_TYPE_CONTEXT (t))
-	      && module_maybe_has_cmi_p ())
-	    /* This type could possibly be accessed outside this TU.  */
-	    return NULL_TREE;
-	  else
-	    return t;
-	}
+	return t;
 
       for (r = CP_TYPE_CONTEXT (t); ; )
 	{
diff --git a/gcc/testsuite/g++.dg/modules/enum-14.C b/gcc/testsuite/g++.dg/modules/enum-14.C
new file mode 100644
index 00000000000..636d797afdc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/enum-14.C
@@ -0,0 +1,6 @@
+// PR c++/116929
+// { dg-additional-options "-flto -fmodules-ts -Wno-global-module" }
+
+module;
+enum { e };
+void hexdump() {}
diff --git a/gcc/testsuite/g++.dg/modules/linkage-1_a.C b/gcc/testsuite/g++.dg/modules/linkage-1_a.C
index 750e31ff347..1d81312e94f 100644
--- a/gcc/testsuite/g++.dg/modules/linkage-1_a.C
+++ b/gcc/testsuite/g++.dg/modules/linkage-1_a.C
@@ -9,7 +9,3 @@ auto f() {
 }
 decltype(f()) g();  // { dg-warning "used but not defined" "" { target c++17_down } }
 export auto x = g();
-
-struct {} s;
-decltype(s) h();  // { dg-warning "used but not defined" "" { target c++17_down } }
-export auto y = h();
diff --git a/gcc/testsuite/g++.dg/modules/linkage-1_b.C b/gcc/testsuite/g++.dg/modules/linkage-1_b.C
index f23962d76b7..5bc0d1b888d 100644
--- a/gcc/testsuite/g++.dg/modules/linkage-1_b.C
+++ b/gcc/testsuite/g++.dg/modules/linkage-1_b.C
@@ -3,4 +3,3 @@
 module M;
 
 decltype(f()) g() { return {}; }
-decltype(s) h() { return {}; }
diff --git a/gcc/testsuite/g++.dg/modules/linkage-1_c.C b/gcc/testsuite/g++.dg/modules/linkage-1_c.C
index f1406b99032..9ff1491b67e 100644
--- a/gcc/testsuite/g++.dg/modules/linkage-1_c.C
+++ b/gcc/testsuite/g++.dg/modules/linkage-1_c.C
@@ -5,5 +5,4 @@ import M;
 
 int main() {
   auto a = x;
-  auto b = y;
 }
diff --git a/gcc/testsuite/g++.dg/modules/linkage-2.C b/gcc/testsuite/g++.dg/modules/linkage-2.C
index eb4d7b051af..d913d6a30fc 100644
--- a/gcc/testsuite/g++.dg/modules/linkage-2.C
+++ b/gcc/testsuite/g++.dg/modules/linkage-2.C
@@ -23,4 +23,10 @@ export void use() {
   h();
 }
 
+// Additionally, unnamed types have no linkage but are also TU-local, and thus
+// cannot be exposed in a module interface unit.  The non-TU-local entity 's'
+// here is an exposure of this type, so this should be an error; we don't yet
+// implement this checking however.
+struct {} s;  // { dg-error "TU-local" "" { xfail *-*-* } }
+
 // { dg-prune-output "not writing module" }

commit 7de78f7353f125663a22f5514159ea966a120049
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Oct 22 16:37:49 2024 -0400

    c++: non-dep structured binding decltype again [PR117107]
    
    The patch for PR92687 handled the usual case of a decomp variable not being
    in the table, but missed the case of there being nothing in the table yet.
    
            PR c++/117107
            PR c++/92687
    
    gcc/cp/ChangeLog:
    
            * decl.cc (lookup_decomp_type): Handle null table.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/decomp10.C: New test.
    
    (cherry picked from commit 71e13ea134b04562f8f2cdd9c4a55dbb0905f96a)

diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc
index ca00e9aea20..d5cef069fce 100644
--- a/gcc/cp/decl.cc
+++ b/gcc/cp/decl.cc
@@ -9271,8 +9271,9 @@ static GTY((cache)) decl_tree_cache_map *decomp_type_table;
 tree
 lookup_decomp_type (tree v)
 {
-  if (tree *slot = decomp_type_table->get (v))
-    return *slot;
+  if (decomp_type_table)
+    if (tree *slot = decomp_type_table->get (v))
+      return *slot;
   return NULL_TREE;
 }
 
diff --git a/gcc/testsuite/g++.dg/cpp2a/decomp10.C b/gcc/testsuite/g++.dg/cpp2a/decomp10.C
new file mode 100644
index 00000000000..8fe425b5d01
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/decomp10.C
@@ -0,0 +1,21 @@
+// PR c++/117107
+// { dg-do compile { target c++11 } }
+// { dg-options "" }
+
+template <typename, typename>
+constexpr bool is_same = false;	// { dg-warning "variable template" "" { target c++11_down } }
+template <typename T>
+constexpr bool is_same<T, T> = true; // { dg-warning "variable template" "" { target c++11_down } }
+
+struct tuple {
+  template <unsigned long I>
+  void check_tuple_like() {
+    tuple t;
+    auto [v, r] = t; // { dg-warning "structured bindings" "" { target c++14_down } }
+    (void)[v, r] {   // { dg-warning "captured structured" "" { target c++17_down } }
+        decltype(v) x;
+    };
+  }
+  int a = 0;
+  int &b = a;
+};

commit 608486e67863606d6447a1b9448c23bb1e784f53
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Oct 23 00:24:19 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index cf7fc14e4ea..c961d1b391e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241022
+20241023
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 4c5c4fe3253..76d7de531e2 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,21 @@
+2024-10-22  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-10-22  Jason Merrill  <jason@redhat.com>
+
+	PR c++/117107
+	PR c++/92687
+	* decl.cc (lookup_decomp_type): Handle null table.
+
+2024-10-22  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	Backported from master:
+	2024-05-24  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/116929
+	* tree.cc (no_linkage_check): Anonymous types can't be accessed
+	in a different TU.
+
 2024-10-17  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cf68245cecb..7cd453bf7a3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,71 @@
+2024-10-22  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-10-22  Jason Merrill  <jason@redhat.com>
+
+	PR c++/117107
+	PR c++/92687
+	* g++.dg/cpp2a/decomp10.C: New test.
+
+2024-10-22  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	Backported from master:
+	2024-05-24  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/116929
+	* g++.dg/modules/linkage-1_a.C: Remove anonymous type test.
+	* g++.dg/modules/linkage-1_b.C: Likewise.
+	* g++.dg/modules/linkage-1_c.C: Likewise.
+	* g++.dg/modules/linkage-2.C: Add note about anonymous types.
+	* g++.dg/modules/enum-14.C: New file.
+
+2024-10-22  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-10-22  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/fp16-aapcs-1.c: Use check-function-bodies.
+	* gcc.target/arm/fp16-aapcs-2.c: Likewise.
+	* gcc.target/arm/fp16-aapcs-3.c: Likewise.
+	* gcc.target/arm/fp16-aapcs-4.c: Likewise.
+
+2024-10-22  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-10-22  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c: Allow lsl and
+	lsr instructions.
+	* gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/bitfield-8.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/bitfield-and-union.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/union-2.c: Likewise.
+
+2024-10-22  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-10-22  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/cmse/mainline/8m/hard-sp/cmse-5.c: Use
+	check-function-bodies.
+	* gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/hard-sp/cmse-5.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/hard/cmse-5.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/soft/cmse-5.c: Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-5.c:
+	Likewise.
+	* gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-5.c: Likewise.
+
+2024-10-22  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-10-22  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* gcc.dg/torture/pr112305.c: Skip at -O0 and -O1 for simulators.
+
 2024-10-21  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 1f9067aa79b..e74e5459adf 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,97 @@
+2024-10-22  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-10-05  Patrick Palka  <ppalka@redhat.com>
+
+	* include/bits/ranges_base.h (__distance_fn::operator()):
+	Adjust iterator/sentinel overloads as per LWG 3664.
+	* testsuite/24_iterators/range_operations/distance.cc:
+	Test LWG 3664 example.
+
+2024-10-22  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-10-04  Patrick Palka  <ppalka@redhat.com>
+
+	* include/std/ranges (single_view::empty): Define as per LWG 4035.
+	(iota_view::empty): Define as per LWG 4001.
+	(lazy_split_view::_OuterIter::value_type): Remove default
+	constructor and make other constructor private as per LWG 4013.
+	(common_view::begin): Disable non-const overload for simple
+	views as per LWG 4012.
+	(common_view::end): Likewise.
+	(adjacent_view::base): Define as per LWG 3848.
+	(adjacent_transform_view::base): Likewise.
+	(chunk_view::_InnerIter::iter_move): Define as per LWG 3851.
+	(chunk_view::_InnerIter::itep_swap): Likewise.
+	(slide_view::base): Define as per LWG 3848.
+	(repeat_view): Adjust deduction guide as per LWG 4053.
+	(_Repeat::operator()): Adjust single-parameter overload as per
+	LWG 4054.
+	* testsuite/std/ranges/adaptors/adjacent/1.cc: Verify existence
+	of base member function.
+	* testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Likewise.
+	* testsuite/std/ranges/adaptors/chunk/1.cc: Test LWG 3851 example.
+	* testsuite/std/ranges/adaptors/slide/1.cc: Verify existence of
+	base member function.
+	* testsuite/std/ranges/iota/iota_view.cc: Test LWG 4001 example.
+	* testsuite/std/ranges/repeat/1.cc: Test LWG 4053/4054 examples.
+
+2024-10-22  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-08-22  Patrick Palka  <ppalka@redhat.com>
+
+	* testsuite/25_algorithms/contains/1.cc: Verify value of
+	__cpp_lib_ranges_contains.
+	* testsuite/25_algorithms/find_last/1.cc: Verify value of
+	__cpp_lib_ranges_find_last.
+	* testsuite/25_algorithms/iota/1.cc: Verify value of
+	__cpp_lib_ranges_iota.
+
+2024-10-22  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-08-22  Patrick Palka  <ppalka@redhat.com>
+
+	* include/bits/iterator_concepts.h (indirectly_unary_invocable):
+	Relax as per P2997R1.
+	(indirectly_regular_unary_invocable): Likewise.
+	(indirect_unary_predicate): Likewise.
+	(indirect_binary_predicate): Likewise.
+	(indirect_equivalence_relation): Likewise.
+	(indirect_strict_weak_order): Likewise.
+	* include/bits/version.def (ranges): Update value for C++26.
+	* include/bits/version.h: Regenerate.
+	* testsuite/24_iterators/indirect_callable/p2997r1.cc: New test.
+	* testsuite/std/ranges/version_c++23.cc: Remove.
+	* testsuite/std/ranges/headers/ranges/synopsis.cc: Refine the
+	__cpp_lib_ranges checks.
+
+2024-10-22  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-08-22  Patrick Palka  <ppalka@redhat.com>
+
+	* include/bits/iterator_concepts.h (__detail::__indirect_value):
+	Define.
+	(__indirect_value_t): Define as per P2609R3.
+	(iter_common_reference_t): Adjust as per P2609R3.
+	(indirectly_unary_invocable): Likewise.
+	(indirectly_regular_unary_invocable): Likewise.
+	(indirect_unary_predicate): Likewise.
+	(indirect_binary_predicate): Likewise.
+	(indirect_equivalence_relation): Likewise.
+	(indirect_strict_weak_order): Likewise.
+	(__detail::__projected::__type): Define member aliases
+	__projected_Iter and __projected_Proj providing the
+	template arguments of the current specialization.
+	* include/bits/version.def (ranges): Update value.
+	* include/bits/version.h: Regenerate.
+	* testsuite/24_iterators/indirect_callable/p2609r3.cc: New test.
+	* testsuite/std/ranges/version_c++23.cc: Update expected value
+	of __cpp_lib_ranges macro.
+
 2024-10-16  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit ffce44e8be1fda467ea7aea02f40c22d03fdd206
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Oct 14 08:11:22 2024 +0200

    middle-end/116891 - fix (negate (IFN_FNMS@3 @0 @1 @2)) -> (IFN_FMA @0 @1 @2)
    
    Transforming -fma (-a, b, -c) to fma (a, b, c) is only valid when
    not rounding towards -inf or +inf as the sign of the multiplication
    changes.
    
            PR middle-end/116891
            * match.pd ((negate (IFN_FNMS@3 @0 @1 @2)) -> (IFN_FMA @0 @1 @2)):
            Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING.
    
    (cherry picked from commit c53bd48c6920bc1f4039b6682aafbf414a600e47)

diff --git a/gcc/match.pd b/gcc/match.pd
index 62edaf1267e..449a56c43b3 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -8710,7 +8710,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
   (IFN_FMA @0 @1 @2))
  (simplify
   (negate (IFN_FNMS@3 @0 @1 @2))
-  (if (single_use (@3))
+  (if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (@3))
    (IFN_FMA @0 @1 @2))))
 
 /* CLZ simplifications.  */

commit 6603ec4d113dba8dc286140cb440a89dcb411a6e
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Oct 15 19:38:46 2024 +0200

    match.pd: Further fma negation fixes [PR116891]
    
    On Mon, Oct 14, 2024 at 08:53:29AM +0200, Jakub Jelinek wrote:
    > >     PR middle-end/116891
    > >     * match.pd ((negate (IFN_FNMS@3 @0 @1 @2)) -> (IFN_FMA @0 @1 @2)):
    > >     Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING.
    >
    > Guess it would be nice to have a testcase which FAILs without the patch and
    > PASSes with it, but it can be added later.
    
    I've added such a testcase now, and additionally found the fix only fixed
    one of the 4 problematic similar cases.
    
    Here is a patch which fixes the others too and adds the testcases.
    fma-pr116891.c FAILed without your patch, FAILs with your patch too (but
    only due to the bar/baz/qux checks) and PASSes with the patch.
    
    2024-10-15  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/116891
            * match.pd ((negate (fmas@3 @0 @1 @2)) -> (IFN_FNMS @0 @1 @2)):
            Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING.
            ((negate (IFN_FMS@3 @0 @1 @2)) -> (IFN_FNMA @0 @1 @2)): Likewise.
            ((negate (IFN_FNMA@3 @0 @1 @2)) -> (IFN_FMS @0 @1 @2)): Likewise.
    
            * gcc.dg/pr116891.c: New test.
            * gcc.target/i386/fma-pr116891.c: New test.
    
    (cherry picked from commit 4366f0c7e296ea0d7279343c9b0a1d597588a1da)

diff --git a/gcc/match.pd b/gcc/match.pd
index 449a56c43b3..f16fdd2d776 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -8668,7 +8668,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
    (IFN_FNMS @0 @1 @2))
   (simplify
    (negate (fmas@3 @0 @1 @2))
-   (if (single_use (@3))
+   (if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (@3))
     (IFN_FNMS @0 @1 @2))))
 
  (simplify
@@ -8682,7 +8682,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
   (IFN_FNMA @0 @1 @2))
  (simplify
   (negate (IFN_FMS@3 @0 @1 @2))
-   (if (single_use (@3))
+   (if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (@3))
     (IFN_FNMA @0 @1 @2)))
 
  (simplify
@@ -8696,7 +8696,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
   (IFN_FMS @0 @1 @2))
  (simplify
   (negate (IFN_FNMA@3 @0 @1 @2))
-  (if (single_use (@3))
+  (if (!HONOR_SIGN_DEPENDENT_ROUNDING (type) && single_use (@3))
    (IFN_FMS @0 @1 @2)))
 
  (simplify
diff --git a/gcc/testsuite/gcc.dg/pr116891.c b/gcc/testsuite/gcc.dg/pr116891.c
new file mode 100644
index 00000000000..446e5ec5a4a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr116891.c
@@ -0,0 +1,47 @@
+/* PR middle-end/116891 */
+/* { dg-do run } */
+/* { dg-require-effective-target fenv } */
+/* { dg-require-effective-target hard_float } */
+/* { dg-require-effective-target c99_runtime } */
+/* { dg-options "-O2 -frounding-math" } */
+
+#include <fenv.h>
+
+__attribute__((noipa)) double
+foo (double x, double y, double z)
+{
+  return -__builtin_fma (-x, y, -z);
+}
+
+__attribute__((noipa)) double
+bar (double x, double y, double z)
+{
+  return -__builtin_fma (-x, y, z);
+}
+
+__attribute__((noipa)) double
+baz (double x, double y, double z)
+{
+  return -__builtin_fma (x, y, -z);
+}
+
+__attribute__((noipa)) double
+qux (double x, double y, double z)
+{
+  return -__builtin_fma (x, y, z);
+}
+
+int
+main ()
+{
+#if defined (FE_DOWNWARD) && __DBL_MANT_DIG__ == 53 && __DBL_MAX_EXP__ == 1024
+  fesetround (FE_DOWNWARD);
+  double a = foo (-0x1.p256, 0x1.p256, 0x1.p-256);
+  if (a != -__builtin_nextafter (0x1p256 * 0x1p256, 0.))
+    __builtin_abort ();
+  if (a != bar (-0x1.p256, 0x1.p256, -0x1.p-256)
+      || a != baz (0x1.p256, 0x1.p256, 0x1.p-256)
+      || a != qux (0x1.p256, 0x1.p256, -0x1.p-256))
+    __builtin_abort ();
+#endif
+}
diff --git a/gcc/testsuite/gcc.target/i386/fma-pr116891.c b/gcc/testsuite/gcc.target/i386/fma-pr116891.c
new file mode 100644
index 00000000000..34689f44c41
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/fma-pr116891.c
@@ -0,0 +1,19 @@
+/* PR middle-end/116891 */
+/* { dg-do run } */
+/* { dg-require-effective-target fenv } */
+/* { dg-require-effective-target hard_float } */
+/* { dg-require-effective-target c99_runtime } */
+/* { dg-require-effective-target fma } */
+/* { dg-options "-O2 -mfma -frounding-math" } */
+
+#include <fenv.h>
+#include "fma-check.h"
+
+#define main() do_main ()
+#include "../../gcc.dg/pr116891.c"
+
+static void
+fma_test (void)
+{
+  do_main ();
+}

commit 20c180cf65e81257d40d6e0f3d798b5ec5364b11
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Oct 22 20:30:41 2024 +0200

    c-family: Fix up -Wsizeof-pointer-memaccess ICEs [PR117230]
    
    In the following testcases, we ICE on all 4 function calls.
    The problem is using TYPE_PRECISION on vector types (but guess it
    would be similarly problematic on structures/unions/arrays).
    The test only differentiates between suggestion what to do, whether
    to supply explicit size because sizeof (*p) for
    {,{,un}signed }char *p is not very likely what the user want, or
    dereferencing the pointer, so I think limiting that suggestion
    to integral types is ok.
    
    2024-10-22  Jakub Jelinek  <jakub@redhat.com>
    
            PR c/117230
            * c-warn.cc (sizeof_pointer_memaccess_warning): Only compare
            TYPE_PRECISION of TREE_TYPE (type) to precision of char if
            TREE_TYPE (type) is integral type.
    
            * c-c++-common/Wsizeof-pointer-memaccess5.c: New test.
    
    (cherry picked from commit 5fd1c0c1b6968d55e3f997d67a4c149edf20c012)

diff --git a/gcc/c-family/c-warn.cc b/gcc/c-family/c-warn.cc
index 8fc0d8a53b3..63c8187c4e5 100644
--- a/gcc/c-family/c-warn.cc
+++ b/gcc/c-family/c-warn.cc
@@ -944,8 +944,9 @@ sizeof_pointer_memaccess_warning (location_t *sizeof_arg_loc, tree callee,
 			"argument to %<sizeof%> in %qD call is the same "
 			"expression as the destination; did you mean to "
 			"remove the addressof?", callee);
-	  else if ((TYPE_PRECISION (TREE_TYPE (type))
-		    == TYPE_PRECISION (char_type_node))
+	  else if ((INTEGRAL_TYPE_P (TREE_TYPE (type))
+		    && (TYPE_PRECISION (TREE_TYPE (type))
+			== TYPE_PRECISION (char_type_node)))
 		   || strop)
 	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
 			"argument to %<sizeof%> in %qD call is the same "
@@ -984,8 +985,9 @@ sizeof_pointer_memaccess_warning (location_t *sizeof_arg_loc, tree callee,
 			"argument to %<sizeof%> in %qD call is the same "
 			"expression as the source; did you mean to "
 			"remove the addressof?", callee);
-	  else if ((TYPE_PRECISION (TREE_TYPE (type))
-		    == TYPE_PRECISION (char_type_node))
+	  else if ((INTEGRAL_TYPE_P (TREE_TYPE (type))
+		    && (TYPE_PRECISION (TREE_TYPE (type))
+			== TYPE_PRECISION (char_type_node)))
 		   || strop)
 	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
 			"argument to %<sizeof%> in %qD call is the same "
@@ -1024,8 +1026,9 @@ sizeof_pointer_memaccess_warning (location_t *sizeof_arg_loc, tree callee,
 			"argument to %<sizeof%> in %qD call is the same "
 			"expression as the first source; did you mean to "
 			"remove the addressof?", callee);
-	  else if ((TYPE_PRECISION (TREE_TYPE (type))
-		    == TYPE_PRECISION (char_type_node))
+	  else if ((INTEGRAL_TYPE_P (TREE_TYPE (type))
+		    && (TYPE_PRECISION (TREE_TYPE (type))
+			== TYPE_PRECISION (char_type_node)))
 		   || strop)
 	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
 			"argument to %<sizeof%> in %qD call is the same "
@@ -1064,8 +1067,9 @@ sizeof_pointer_memaccess_warning (location_t *sizeof_arg_loc, tree callee,
 			"argument to %<sizeof%> in %qD call is the same "
 			"expression as the second source; did you mean to "
 			"remove the addressof?", callee);
-	  else if ((TYPE_PRECISION (TREE_TYPE (type))
-		    == TYPE_PRECISION (char_type_node))
+	  else if ((INTEGRAL_TYPE_P (TREE_TYPE (type))
+		    && (TYPE_PRECISION (TREE_TYPE (type))
+			== TYPE_PRECISION (char_type_node)))
 		   || strop)
 	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
 			"argument to %<sizeof%> in %qD call is the same "
diff --git a/gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess5.c b/gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess5.c
new file mode 100644
index 00000000000..aaa7da04a2c
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess5.c
@@ -0,0 +1,29 @@
+/* PR c/117230 */
+/* { dg-do compile } */
+/* { dg-options "-Wsizeof-pointer-memaccess" } */
+
+typedef int V __attribute__((vector_size (sizeof (int))));
+
+void
+foo (V *a, char *b)
+{
+  __builtin_memcpy (b, a, sizeof (a));		/* { dg-warning "argument to 'sizeof' in '\[^\n\r]*__builtin_memcpy\[^\n\r]*' call is the same expression as the source; did you mean to dereference it\\\?" } */
+}
+
+void
+bar (V *a, char *b)
+{
+  __builtin_memcpy (a, b, sizeof (a));		/* { dg-warning "argument to 'sizeof' in '\[^\n\r]*__builtin_memcpy\[^\n\r]*' call is the same expression as the destination; did you mean to dereference it\\\?" } */
+}
+
+int
+baz (V *a, char *b)
+{
+  return __builtin_memcmp (a, b, sizeof (a));	/* { dg-warning "argument to 'sizeof' in '\[^\n\r]*__builtin_memcmp\[^\n\r]*' call is the same expression as the first source; did you mean to dereference it\\\?" } */
+}
+
+int
+qux (V *a, char *b)
+{
+  return __builtin_memcmp (b, a, sizeof (a));	/* { dg-warning "argument to 'sizeof' in '\[^\n\r]*__builtin_memcmp\[^\n\r]*' call is the same expression as the second source; did you mean to dereference it\\\?" } */
+}

commit b718f6ec1674c0db30f26c65b7a9215e9388dd6c
Author: liuhongt <hongtao.liu@intel.com>
Date:   Tue Oct 22 01:54:40 2024 -0700

    Fix ICE due to isa mismatch for the builtins.
    
    gcc/ChangeLog:
    
            PR target/117240
            * config/i386/i386-builtin.def: Add avx/avx512f to vaes
            ymm/zmm builtins.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr117240_avx.c: New test.
            * gcc.target/i386/pr117240_avx512f.c: New test.
    
    (cherry picked from commit 403e361d5aa620e77c9832578b2409a0fdd79d96)

diff --git a/gcc/config/i386/i386-builtin.def b/gcc/config/i386/i386-builtin.def
index ab73e20121a..fdd9dba6e54 100644
--- a/gcc/config/i386/i386-builtin.def
+++ b/gcc/config/i386/i386-builtin.def
@@ -2832,17 +2832,17 @@ BDESC (0, OPTION_MASK_ISA2_RDPID, CODE_FOR_rdpid, "__builtin_ia32_rdpid", IX86_B
 
 /* VAES.  */
 BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesdec_v16qi, "__builtin_ia32_vaesdec_v16qi", IX86_BUILTIN_VAESDEC16, UNKNOWN, (int) V16QI_FTYPE_V16QI_V16QI)
-BDESC (0, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesdec_v32qi, "__builtin_ia32_vaesdec_v32qi", IX86_BUILTIN_VAESDEC32, UNKNOWN, (int) V32QI_FTYPE_V32QI_V32QI)
-BDESC (0, OPTION_MASK_ISA2_VAES | OPTION_MASK_ISA2_EVEX512, CODE_FOR_vaesdec_v64qi, "__builtin_ia32_vaesdec_v64qi", IX86_BUILTIN_VAESDEC64, UNKNOWN, (int) V64QI_FTYPE_V64QI_V64QI)
+BDESC (OPTION_MASK_ISA_AVX, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesdec_v32qi, "__builtin_ia32_vaesdec_v32qi", IX86_BUILTIN_VAESDEC32, UNKNOWN, (int) V32QI_FTYPE_V32QI_V32QI)
+BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_VAES | OPTION_MASK_ISA2_EVEX512, CODE_FOR_vaesdec_v64qi, "__builtin_ia32_vaesdec_v64qi", IX86_BUILTIN_VAESDEC64, UNKNOWN, (int) V64QI_FTYPE_V64QI_V64QI)
 BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesdeclast_v16qi, "__builtin_ia32_vaesdeclast_v16qi", IX86_BUILTIN_VAESDECLAST16, UNKNOWN, (int) V16QI_FTYPE_V16QI_V16QI)
-BDESC (0, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesdeclast_v32qi, "__builtin_ia32_vaesdeclast_v32qi", IX86_BUILTIN_VAESDECLAST32, UNKNOWN, (int) V32QI_FTYPE_V32QI_V32QI)
-BDESC (0, OPTION_MASK_ISA2_VAES | OPTION_MASK_ISA2_EVEX512, CODE_FOR_vaesdeclast_v64qi, "__builtin_ia32_vaesdeclast_v64qi", IX86_BUILTIN_VAESDECLAST64, UNKNOWN, (int) V64QI_FTYPE_V64QI_V64QI)
+BDESC (OPTION_MASK_ISA_AVX, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesdeclast_v32qi, "__builtin_ia32_vaesdeclast_v32qi", IX86_BUILTIN_VAESDECLAST32, UNKNOWN, (int) V32QI_FTYPE_V32QI_V32QI)
+BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_VAES | OPTION_MASK_ISA2_EVEX512, CODE_FOR_vaesdeclast_v64qi, "__builtin_ia32_vaesdeclast_v64qi", IX86_BUILTIN_VAESDECLAST64, UNKNOWN, (int) V64QI_FTYPE_V64QI_V64QI)
 BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesenc_v16qi, "__builtin_ia32_vaesenc_v16qi", IX86_BUILTIN_VAESENC16, UNKNOWN, (int) V16QI_FTYPE_V16QI_V16QI)
-BDESC (0, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesenc_v32qi, "__builtin_ia32_vaesenc_v32qi", IX86_BUILTIN_VAESENC32, UNKNOWN, (int) V32QI_FTYPE_V32QI_V32QI)
-BDESC (0, OPTION_MASK_ISA2_VAES | OPTION_MASK_ISA2_EVEX512, CODE_FOR_vaesenc_v64qi, "__builtin_ia32_vaesenc_v64qi", IX86_BUILTIN_VAESENC64, UNKNOWN, (int) V64QI_FTYPE_V64QI_V64QI)
+BDESC (OPTION_MASK_ISA_AVX, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesenc_v32qi, "__builtin_ia32_vaesenc_v32qi", IX86_BUILTIN_VAESENC32, UNKNOWN, (int) V32QI_FTYPE_V32QI_V32QI)
+BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_VAES | OPTION_MASK_ISA2_EVEX512, CODE_FOR_vaesenc_v64qi, "__builtin_ia32_vaesenc_v64qi", IX86_BUILTIN_VAESENC64, UNKNOWN, (int) V64QI_FTYPE_V64QI_V64QI)
 BDESC (OPTION_MASK_ISA_AVX512VL, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesenclast_v16qi, "__builtin_ia32_vaesenclast_v16qi", IX86_BUILTIN_VAESENCLAST16, UNKNOWN, (int) V16QI_FTYPE_V16QI_V16QI)
-BDESC (0, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesenclast_v32qi, "__builtin_ia32_vaesenclast_v32qi", IX86_BUILTIN_VAESENCLAST32, UNKNOWN, (int) V32QI_FTYPE_V32QI_V32QI)
-BDESC (0, OPTION_MASK_ISA2_VAES | OPTION_MASK_ISA2_EVEX512, CODE_FOR_vaesenclast_v64qi, "__builtin_ia32_vaesenclast_v64qi", IX86_BUILTIN_VAESENCLAST64, UNKNOWN, (int) V64QI_FTYPE_V64QI_V64QI)
+BDESC (OPTION_MASK_ISA_AVX, OPTION_MASK_ISA2_VAES, CODE_FOR_vaesenclast_v32qi, "__builtin_ia32_vaesenclast_v32qi", IX86_BUILTIN_VAESENCLAST32, UNKNOWN, (int) V32QI_FTYPE_V32QI_V32QI)
+BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_VAES | OPTION_MASK_ISA2_EVEX512, CODE_FOR_vaesenclast_v64qi, "__builtin_ia32_vaesenclast_v64qi", IX86_BUILTIN_VAESENCLAST64, UNKNOWN, (int) V64QI_FTYPE_V64QI_V64QI)
 
 /* BF16 */
 BDESC (0, OPTION_MASK_ISA2_AVX512BF16 | OPTION_MASK_ISA2_EVEX512, CODE_FOR_avx512f_cvtne2ps2bf16_v32bf, "__builtin_ia32_cvtne2ps2bf16_v32bf", IX86_BUILTIN_CVTNE2PS2BF16_V32BF, UNKNOWN, (int) V32BF_FTYPE_V16SF_V16SF)
diff --git a/gcc/testsuite/gcc.target/i386/pr117240_avx.c b/gcc/testsuite/gcc.target/i386/pr117240_avx.c
new file mode 100644
index 00000000000..88e83085315
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117240_avx.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mvaes -mno-xsave -Wno-psabi" } */
+
+typedef __attribute__((__vector_size__(32))) char V;
+
+V
+foo(V v)
+{
+  return __builtin_ia32_vaesenc_v32qi(v, v);/* { dg-error "needs isa option" } */
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr117240_avx512f.c b/gcc/testsuite/gcc.target/i386/pr117240_avx512f.c
new file mode 100644
index 00000000000..c2d616a05e3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117240_avx512f.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mvaes -mevex512 -mno-xsave -Wno-psabi" } */
+
+typedef __attribute__((__vector_size__(64))) char V;
+
+V
+foo(V v)
+{
+  return __builtin_ia32_vaesenc_v64qi(v, v);/* { dg-error "needs isa option" } */
+}

commit 9eb9686766d2d9bff1c00f59067a3a54a651f95b
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Oct 24 00:24:41 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 74eefc2fe78..b89cc4d3d04 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,32 @@
+2024-10-23  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-10-23  liuhongt  <hongtao.liu@intel.com>
+
+	PR target/117240
+	* config/i386/i386-builtin.def: Add avx/avx512f to vaes
+	ymm/zmm builtins.
+
+2024-10-23  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-15  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/116891
+	* match.pd ((negate (fmas@3 @0 @1 @2)) -> (IFN_FNMS @0 @1 @2)):
+	Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING.
+	((negate (IFN_FMS@3 @0 @1 @2)) -> (IFN_FNMA @0 @1 @2)): Likewise.
+	((negate (IFN_FNMA@3 @0 @1 @2)) -> (IFN_FMS @0 @1 @2)): Likewise.
+
+2024-10-23  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-14  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/116891
+	* match.pd ((negate (IFN_FNMS@3 @0 @1 @2)) -> (IFN_FMA @0 @1 @2)):
+	Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING.
+
 2024-10-21  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c961d1b391e..7f899e9ca4b 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241023
+20241024
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 85a2145b8e2..f316462d2f4 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,13 @@
+2024-10-23  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/117230
+	* c-warn.cc (sizeof_pointer_memaccess_warning): Only compare
+	TYPE_PRECISION of TREE_TYPE (type) to precision of char if
+	TREE_TYPE (type) is integral type.
+
 2024-10-01  Jason Merrill  <jason@redhat.com>
 
 	* c-cppbuiltin.cc (c_cpp_builtins): Don't define __cpp_concepts
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7cd453bf7a3..11dddf15ab1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,28 @@
+2024-10-23  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-10-23  liuhongt  <hongtao.liu@intel.com>
+
+	* gcc.target/i386/pr117240_avx.c: New test.
+	* gcc.target/i386/pr117240_avx512f.c: New test.
+
+2024-10-23  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/117230
+	* c-c++-common/Wsizeof-pointer-memaccess5.c: New test.
+
+2024-10-23  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-15  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/116891
+	* gcc.dg/pr116891.c: New test.
+	* gcc.target/i386/fma-pr116891.c: New test.
+
 2024-10-22  Jason Merrill  <jason@redhat.com>
 
 	Backported from master:

commit 2d47645cd47c9a84a69343b641a6ee741a85dc75
Author: Jason Merrill <jason@redhat.com>
Date:   Thu Oct 24 11:13:30 2024 -0400

    c++: remove dg-warning [PR117274]
    
    This warning was added for GCC 15, don't expect it.
    
            PR c++/117274
            PR c++/117107
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/decomp10.C: Remove captured binding warning.

diff --git a/gcc/testsuite/g++.dg/cpp2a/decomp10.C b/gcc/testsuite/g++.dg/cpp2a/decomp10.C
index 8fe425b5d01..cadeee347b4 100644
--- a/gcc/testsuite/g++.dg/cpp2a/decomp10.C
+++ b/gcc/testsuite/g++.dg/cpp2a/decomp10.C
@@ -12,7 +12,7 @@ struct tuple {
   void check_tuple_like() {
     tuple t;
     auto [v, r] = t; // { dg-warning "structured bindings" "" { target c++14_down } }
-    (void)[v, r] {   // { dg-warning "captured structured" "" { target c++17_down } }
+    (void)[v, r] {
         decltype(v) x;
     };
   }

commit 944d585d8a566e50a287eb64caf9af0e90daf5dd
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Tue Jul 16 15:56:44 2024 +0100

    Fortran: Simplify len_trim with array ref and fix mapping bug[PR84868].
    
    2024-07-16  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/84868
            * simplify.cc (gfc_simplify_len_trim): If the argument is an
            element of a parameter array, simplify all the elements and
            build a new parameter array to hold the result, after checking
            that it doesn't already exist.
            * trans-expr.cc (gfc_get_interface_mapping_array) if a string
            length is available, use it for the typespec.
            (gfc_add_interface_mapping): Supply the se string length.
    
    gcc/testsuite/
            PR fortran/84868
            * gfortran.dg/pr84868.f90: New test.
    
    (cherry picked from commit 9f966b6a8ff0244dd6f8bf36d876799d5f9bbaee)

diff --git a/gcc/fortran/simplify.cc b/gcc/fortran/simplify.cc
index 3043483daa9..cc2ccfe13af 100644
--- a/gcc/fortran/simplify.cc
+++ b/gcc/fortran/simplify.cc
@@ -4637,6 +4637,81 @@ gfc_simplify_len_trim (gfc_expr *e, gfc_expr *kind)
   if (k == -1)
     return &gfc_bad_expr;
 
+  /* If the expression is either an array element or section, an array
+     parameter must be built so that the reference can be applied. Constant
+     references should have already been simplified away. All other cases
+     can proceed to translation, where kind conversion will occur silently.  */
+  if (e->expr_type == EXPR_VARIABLE
+      && e->ts.type == BT_CHARACTER
+      && e->symtree->n.sym->attr.flavor == FL_PARAMETER
+      && e->ref && e->ref->type == REF_ARRAY
+      && e->ref->u.ar.type != AR_FULL
+      && e->symtree->n.sym->value)
+    {
+      char name[2*GFC_MAX_SYMBOL_LEN + 12];
+      gfc_namespace *ns = e->symtree->n.sym->ns;
+      gfc_symtree *st;
+      gfc_expr *expr;
+      gfc_expr *p;
+      gfc_constructor *c;
+      int cnt = 0;
+
+      sprintf (name, "_len_trim_%s_%s", e->symtree->n.sym->name,
+	       ns->proc_name->name);
+      st = gfc_find_symtree (ns->sym_root, name);
+      if (st)
+	goto already_built;
+
+      /* Recursively call this fcn to simplify the constructor elements.  */
+      expr = gfc_copy_expr (e->symtree->n.sym->value);
+      expr->ts.type = BT_INTEGER;
+      expr->ts.kind = k;
+      expr->ts.u.cl = NULL;
+      c = gfc_constructor_first (expr->value.constructor);
+      for (; c; c = gfc_constructor_next (c))
+	{
+	  if (c->iterator)
+	    continue;
+
+	  if (c->expr && c->expr->ts.type == BT_CHARACTER)
+	    {
+	      p = gfc_simplify_len_trim (c->expr, kind);
+	      if (p == NULL)
+		goto clean_up;
+	      gfc_replace_expr (c->expr, p);
+	      cnt++;
+	    }
+	}
+
+      if (cnt)
+	{
+	  /* Build a new parameter to take the result.  */
+	  st = gfc_new_symtree (&ns->sym_root, name);
+	  st->n.sym = gfc_new_symbol (st->name, ns);
+	  st->n.sym->value = expr;
+	  st->n.sym->ts = expr->ts;
+	  st->n.sym->attr.dimension = 1;
+	  st->n.sym->attr.save = SAVE_IMPLICIT;
+	  st->n.sym->attr.flavor = FL_PARAMETER;
+	  st->n.sym->as = gfc_copy_array_spec (e->symtree->n.sym->as);
+	  gfc_set_sym_referenced (st->n.sym);
+	  st->n.sym->refs++;
+	  gfc_commit_symbol (st->n.sym);
+
+already_built:
+	  /* Build a return expression.  */
+	  expr = gfc_copy_expr (e);
+	  expr->ts = st->n.sym->ts;
+	  expr->symtree = st;
+	  gfc_expression_rank (expr);
+	  return expr;
+	}
+
+clean_up:
+      gfc_free_expr (expr);
+      return NULL;
+    }
+
   if (e->expr_type != EXPR_CONSTANT)
     return NULL;
 
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index dfc5b8e9b4a..3a5a4140185 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -4424,12 +4424,15 @@ gfc_get_interface_mapping_charlen (gfc_interface_mapping * mapping,
 
 static tree
 gfc_get_interface_mapping_array (stmtblock_t * block, gfc_symbol * sym,
-				 gfc_packed packed, tree data)
+				 gfc_packed packed, tree data, tree len)
 {
   tree type;
   tree var;
 
-  type = gfc_typenode_for_spec (&sym->ts);
+  if (len != NULL_TREE && (TREE_CONSTANT (len) || VAR_P (len)))
+    type = gfc_get_character_type_len (sym->ts.kind, len);
+  else
+    type = gfc_typenode_for_spec (&sym->ts);
   type = gfc_get_nodesc_array_type (type, sym->as, packed,
 				    !sym->attr.target && !sym->attr.pointer
 				    && !sym->attr.proc_pointer);
@@ -4576,7 +4579,8 @@ gfc_add_interface_mapping (gfc_interface_mapping * mapping,
      convert it to a boundless character type.  */
   else if (!sym->attr.dimension && sym->ts.type == BT_CHARACTER)
     {
-      tmp = gfc_get_character_type_len (sym->ts.kind, NULL);
+      se->string_length = gfc_evaluate_now (se->string_length, &se->pre);
+      tmp = gfc_get_character_type_len (sym->ts.kind, se->string_length);
       tmp = build_pointer_type (tmp);
       if (sym->attr.pointer)
         value = build_fold_indirect_ref_loc (input_location,
@@ -4595,7 +4599,7 @@ gfc_add_interface_mapping (gfc_interface_mapping * mapping,
   /* For character(*), use the actual argument's descriptor.  */
   else if (sym->ts.type == BT_CHARACTER && !new_sym->ts.u.cl->length)
     value = build_fold_indirect_ref_loc (input_location,
-				     se->expr);
+					 se->expr);
 
   /* If the argument is an array descriptor, use it to determine
      information about the actual argument's shape.  */
@@ -4609,7 +4613,8 @@ gfc_add_interface_mapping (gfc_interface_mapping * mapping,
       /* Create the replacement variable.  */
       tmp = gfc_conv_descriptor_data_get (desc);
       value = gfc_get_interface_mapping_array (&se->pre, sym,
-					       PACKED_NO, tmp);
+					       PACKED_NO, tmp,
+					       se->string_length);
 
       /* Use DESC to work out the upper bounds, strides and offset.  */
       gfc_set_interface_mapping_bounds (&se->pre, TREE_TYPE (value), desc);
@@ -4617,7 +4622,8 @@ gfc_add_interface_mapping (gfc_interface_mapping * mapping,
   else
     /* Otherwise we have a packed array.  */
     value = gfc_get_interface_mapping_array (&se->pre, sym,
-					     PACKED_FULL, se->expr);
+					     PACKED_FULL, se->expr,
+					     se->string_length);
 
   new_sym->backend_decl = value;
 }
diff --git a/gcc/testsuite/gfortran.dg/pr84868.f90 b/gcc/testsuite/gfortran.dg/pr84868.f90
new file mode 100644
index 00000000000..459a1c3c8b5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr84868.f90
@@ -0,0 +1,84 @@
+! { dg-do run }
+!
+! Test the fix for PR84868. Module 'orig' and the call to 'f_orig' is the
+! original bug. The rest tests variants and the fix for a gimplifier ICE.
+!
+! Subroutine 'h' and calls to it were introduced to check the corrections
+! needed to fix additional problems, noted in the review of the patch by
+! Harald Anlauf
+!
+! Contributed by Gerhard Steinmetz  <gscfq@t-online.de>
+!
+module orig
+   character(:), allocatable :: c
+   integer :: ans1(3,3), ans2(3), ans3(2)
+contains
+   function f_orig(n) result(z)
+      character(2), parameter :: c(3) = ['x1', 'y ', 'z2']
+      integer, intent(in) :: n
+      character(len_trim(c(n))) :: z
+      z = c(n)
+   end
+   function h(n) result(z)
+     integer,  intent(in) :: n
+     character(2), parameter :: c(3,3) = &
+           reshape (['ab','c ','de','f ','gh','i ','jk','l ','mn'],[3,3])
+     character(4), parameter :: chr(3) = ['ab  ','  cd','e f ']
+     character(len_trim(c(n,n)))  :: z
+     z = c(n,n)
+! Make sure that full arrays are correctly scalarized both having been previously
+! used with an array reference and not previously referenced.
+     ans1 = len_trim (c)
+     ans2 = len_trim (chr)
+! Finally check a slightly more complicated array reference
+     ans3 = len_trim (c(1:n+1:2,n-1))
+   end
+end module orig
+
+module m
+   character(:), allocatable :: c
+contains
+   function f(n, c) result(z)
+      character (2) :: c(:)
+      integer, intent(in) :: n
+      character(len_trim(c(n))) :: z
+      z = c(n)
+   end
+   subroutine foo (pc)
+     character(2) :: pc(:)
+     if (any ([(len (f(i, pc)), i = 1,3)] .ne. [2,1,2])) stop 1
+   end
+end
+program p
+   use m
+   use orig
+   character (2) :: pc(3) = ['x1', 'y ', 'z2']
+   integer :: i
+
+   if (any ([(len (f_orig(i)), i = 1,3)] .ne. [2,1,2])) stop 2 ! ICE
+
+   call foo (pc)
+   if (any ([(len (g(i, pc)), i = 1,3)] .ne. [2,1,2])) stop 3
+   if (any ([(bar1(i), i = 1,3)] .ne. [2,1,2])) stop 4
+   if (any ([(bar2(i), i = 1,3)] .ne. [2,1,2])) stop 5
+
+   if (h(2) .ne. 'gh') stop 6
+   if (any (ans1 .ne. reshape ([2,1,2,1,2,1,2,1,2],[3,3]))) stop 7
+   if (any (ans2 .ne. [2,4,3])) stop 8
+   if (any (ans3 .ne. [2,2])) stop 9
+contains
+   function g(n, c) result(z)
+      character (2) :: c(:)
+      integer, intent(in) :: n
+      character(len_trim(c(n))) :: z
+      z = c(n)
+   end
+   integer function bar1 (i)
+     integer :: i
+     bar1 = len (f(i, pc))  ! ICE in is_gimple_min_invariant
+   end
+   integer function bar2 (i)
+     integer :: i
+     bar2 = len (g(i, pc))
+   end
+end

commit ddba8434cbf0ddf07a48a8b68942b4c78b5567c7
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Tue Oct 22 11:51:44 2024 +0200

    AVR: target/116953 - Restore recog_data after calling jump_over_one_insn_p.
    
    The previous fix for PR116953 is incomplete because references to
    recog_data are escaping avr_out_sbxx_branch() in the form of %-operands
    in the returned asm code template.  This patch reverts the previous fix,
    and re-extracts the operands by means of extract_constrain_insn_cached()
    after the call of jump_over_one_insn_p().
    
            PR target/116953
    gcc/
            * config/avr/avr.cc (avr_out_sbxx_branch): Revert previous fix
            for PR116953 (r15-4078).  Run extract_constrain_insn_cached
            on the current insn after calling jump_over_one_insn_p.
    
    (cherry picked from commit ca0ab7a0ac18911181e9161cfb8b87fb90039612)

diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index 5891465cd27..ab1163af984 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -14409,16 +14409,16 @@ avr_hard_regno_rename_ok (unsigned int old_reg, unsigned int new_reg)
    Operand 3: label to jump to if the test is true.  */
 
 const char *
-avr_out_sbxx_branch (rtx_insn *insn, rtx xop[])
+avr_out_sbxx_branch (rtx_insn *insn, rtx operands[])
 {
-  // jump_over_one_insn_p may call extract on the next insn, clobbering
-  // recog_data.operand.  Hence make a copy of the operands (PR116953).
-  rtx operands[] = { xop[0], xop[1], xop[2], xop[3] };
-
   enum rtx_code comp = GET_CODE (operands[0]);
   bool long_jump = get_attr_length (insn) >= 4;
   bool reverse = long_jump || jump_over_one_insn_p (insn, operands[3]);
 
+  // PR116953: jump_over_one_insn_p may call extract on the next insn,
+  // clobbering recog_data.operand.  Thus, restore recog_data.
+  extract_constrain_insn_cached (insn);
+
   if (comp == GE)
     comp = EQ;
   else if (comp == LT)

commit d587da263188eb81741e432de70bccf8c53c3d97
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Sep 11 19:53:12 2024 +0200

    ada: Fix internal error on bit-packed array type with Volatile_Full_Access
    
    The problem occurs when the component type is a record type with default
    values for the initialization procedure of the (base) array type, because
    the compiler is trying to generate a full access for a parameter of the
    base array type, which does not make sense.
    
    gcc/ada/ChangeLog:
    
            PR ada/116551
            * gcc-interface/trans.cc (node_is_atomic) <N_Identifier>: Return
            false if the type of the entity is an unconstrained array type.
            (node_is_volatile_full_access) <N_Identifier>: Likewise.

diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc
index 8c7ffbf5687..86183e2ba3d 100644
--- a/gcc/ada/gcc-interface/trans.cc
+++ b/gcc/ada/gcc-interface/trans.cc
@@ -4230,7 +4230,10 @@ node_is_atomic (Node_Id gnat_node)
       if (!Is_Object (gnat_entity))
 	break;
       return Is_Atomic (gnat_entity)
+	     /* Disregard the flag on unconstrained arrays or simple constants
+		since we cannot or need not generate an atomic access.  */
 	     || (Is_Atomic (Etype (gnat_entity))
+		 && Ekind (Etype (gnat_entity)) != E_Array_Type
 		 && !simple_constant_p (gnat_entity));
 
     case N_Selected_Component:
@@ -4270,7 +4273,10 @@ node_is_volatile_full_access (Node_Id gnat_node)
       if (!Is_Object (gnat_entity))
 	break;
       return Is_Volatile_Full_Access (gnat_entity)
+	     /* Disregard the flag on unconstrained arrays or simple constants
+		since we cannot or need not generate a full access.  */
 	     || (Is_Volatile_Full_Access (Etype (gnat_entity))
+		 && Ekind (Etype (gnat_entity)) != E_Array_Type
 		 && !simple_constant_p (gnat_entity));
 
     case N_Selected_Component:

commit 11b51284290b2e369fcab8d74735bf3cc017894f
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Oct 25 13:14:22 2024 +0200

    Add regression test
    
    gcc/testsuite
            PR ada/116551
            * gnat.dg/specs/vfa3.ads: New test.

diff --git a/gcc/testsuite/gnat.dg/specs/vfa3.ads b/gcc/testsuite/gnat.dg/specs/vfa3.ads
new file mode 100644
index 00000000000..200e294e140
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/vfa3.ads
@@ -0,0 +1,25 @@
+-- { dg-do compile }
+
+package VFA3 is
+
+   type Bit is mod 2**1
+     with Size => 1;
+
+   type Intr_Level_Field is record
+      Level_Low  : Bit := 0;
+      Level_High : Bit := 0;
+      Edge_Low   : Bit := 0;
+      Edge_High  : Bit := 0;
+   end record with Pack, Size => 4;
+   for Intr_Level_Field use record
+      Level_Low  at 0 range 0 .. 0;
+      Level_High at 0 range 1 .. 1;
+      Edge_Low   at 0 range 2 .. 2;
+      Edge_High  at 0 range 3 .. 3;
+   end record;
+
+   type Intr_Level_Cluster is array (0 .. 7) of Intr_Level_Field
+     with Volatile_Full_Access, Pack, Object_Size => 32;
+   --  There are 8 Fields in a 32-bit word.
+
+end VFA3;

commit 85221c95e3458de903ca9eeef76345e8326d3ec2
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Oct 24 12:45:34 2024 +0200

    asan: Fix up build_check_stmt gsi handling [PR117209]
    
    gsi_safe_insert_before properly updates gsi_bb in gimple_stmt_iterator
    in case it splits objects, but unfortunately build_check_stmt was in
    some places (but not others) using a copy of the iterator rather than
    the iterator passed from callers and so didn't propagate that to callers.
    I guess it didn't matter much before when it was just using
    gsi_insert_before as that really didn't change the iterator.
    The !before_p case is apparently dead code, nothing is calling it with
    before_p=false since around 4.9.
    
    2024-10-24  Jakub Jelinek  <jakub@redhat.com>
    
            PR sanitizer/117209
            * asan.cc (maybe_cast_to_ptrmode): Formatting fix.
            (build_check_stmt): Don't copy *iter into gsi, perform all
            the updates on iter directly.
    
            * gcc.dg/asan/pr117209.c: New test.
    
    (cherry picked from commit 885143fa77599c44bfdd4e8e6b6987b7824db6ba)

diff --git a/gcc/asan.cc b/gcc/asan.cc
index 9e0f51b1477..386aeec8155 100644
--- a/gcc/asan.cc
+++ b/gcc/asan.cc
@@ -2610,7 +2610,7 @@ maybe_cast_to_ptrmode (location_t loc, tree len, gimple_stmt_iterator *iter,
   if (ptrofftype_p (len))
     return len;
   gimple *g = gimple_build_assign (make_ssa_name (pointer_sized_int_node),
-				  NOP_EXPR, len);
+				   NOP_EXPR, len);
   gimple_set_location (g, loc);
   if (before_p)
     gsi_safe_insert_before (iter, g);
@@ -2644,16 +2644,13 @@ build_check_stmt (location_t loc, tree base, tree len,
 		  bool is_non_zero_len, bool before_p, bool is_store,
 		  bool is_scalar_access, unsigned int align = 0)
 {
-  gimple_stmt_iterator gsi = *iter;
   gimple *g;
 
   gcc_assert (!(size_in_bytes > 0 && !is_non_zero_len));
   gcc_assert (size_in_bytes == -1 || size_in_bytes >= 1);
 
-  gsi = *iter;
-
   base = unshare_expr (base);
-  base = maybe_create_ssa_name (loc, base, &gsi, before_p);
+  base = maybe_create_ssa_name (loc, base, iter, before_p);
 
   if (len)
     {
@@ -2704,12 +2701,11 @@ build_check_stmt (location_t loc, tree base, tree len,
 						 align / BITS_PER_UNIT));
   gimple_set_location (g, loc);
   if (before_p)
-    gsi_safe_insert_before (&gsi, g);
+    gsi_safe_insert_before (iter, g);
   else
     {
-      gsi_insert_after (&gsi, g, GSI_NEW_STMT);
-      gsi_next (&gsi);
-      *iter = gsi;
+      gsi_insert_after (iter, g, GSI_NEW_STMT);
+      gsi_next (iter);
     }
 }
 
diff --git a/gcc/testsuite/gcc.dg/asan/pr117209.c b/gcc/testsuite/gcc.dg/asan/pr117209.c
new file mode 100644
index 00000000000..34c71ba260b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/asan/pr117209.c
@@ -0,0 +1,15 @@
+/* PR sanitizer/117209 */
+/* { dg-do compile } */
+/* { dg-options "-fsanitize=address" } */
+
+struct A { char a; };
+void foo (void);
+__attribute__((returns_twice, const)) int bar (struct A);
+
+void
+baz (struct A *x, int *y, int z)
+{
+  if (z)
+    foo (); 
+  *y = bar (*x);
+}

commit 8bd4f104ff9cd4d47b301698ae29010924a0fe9d
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Oct 24 12:56:19 2024 +0200

    c++: Further fix for get_member_function_from_ptrfunc [PR117259]
    
    The following testcase shows that the previous get_member_function_from_ptrfunc
    changes weren't sufficient and we still have cases where
    -fsanitize=undefined with pointers to member functions can cause wrong code
    being generated and related false positive warnings.
    
    The problem is that save_expr doesn't always create SAVE_EXPR, it can skip
    some invariant arithmetics and in the end it could be really large
    expressions which would be evaluated several times (and what is worse, with
    -fsanitize=undefined those expressions then can have SAVE_EXPRs added to
    their subparts for -fsanitize=bounds or -fsanitize=null or
    -fsanitize=alignment instrumentation).  Tried to just build1 a SAVE_EXPR
    + add TREE_SIDE_EFFECTS instead of save_expr, but that doesn't work either,
    because cp_fold happily optimizes those SAVE_EXPRs away when it sees
    SAVE_EXPR operand is tree_invariant_p.
    
    So, the following patch instead of using save_expr or building SAVE_EXPR
    manually builds a TARGET_EXPR.  Both types are pointers, so it doesn't need
    to be destroyed in any way, but TARGET_EXPR is what doesn't get optimized
    away immediately.
    
    2024-10-24  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/117259
            * typeck.cc (get_member_function_from_ptrfunc): Use force_target_expr
            rather than save_expr for instance_ptr and function.  Don't call it
            for TREE_CONSTANT.
    
            * g++.dg/ubsan/pr117259.C: New test.
    
    (cherry picked from commit b25d3201b6338d9f71c64f524ca2974d9a1f38e8)

diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc
index 3d62943f864..a72599bc153 100644
--- a/gcc/cp/typeck.cc
+++ b/gcc/cp/typeck.cc
@@ -4175,24 +4175,27 @@ get_member_function_from_ptrfunc (tree *instance_ptrptr, tree function,
       if (!nonvirtual && is_dummy_object (instance_ptr))
 	nonvirtual = true;
 
-      /* Use save_expr even when instance_ptr doesn't have side-effects,
-	 unless it is a simple decl (save_expr won't do anything on
-	 constants), so that we don't ubsan instrument the expression
-	 multiple times.  See PR116449.  */
+      /* Use force_target_expr even when instance_ptr doesn't have
+	 side-effects, unless it is a simple decl or constant, so
+	 that we don't ubsan instrument the expression multiple times.
+	 Don't use save_expr, as save_expr can avoid building a SAVE_EXPR
+	 and building a SAVE_EXPR manually can be optimized away during
+	 cp_fold.  See PR116449 and PR117259.  */
       if (TREE_SIDE_EFFECTS (instance_ptr)
-	  || (!nonvirtual && !DECL_P (instance_ptr)))
-	{
-	  instance_save_expr = save_expr (instance_ptr);
-	  if (instance_save_expr == instance_ptr)
-	    instance_save_expr = NULL_TREE;
-	  else
-	    instance_ptr = instance_save_expr;
-	}
+	  || (!nonvirtual
+	      && !DECL_P (instance_ptr)
+	      && !TREE_CONSTANT (instance_ptr)))
+	instance_ptr = instance_save_expr
+	  = force_target_expr (TREE_TYPE (instance_ptr), instance_ptr,
+			       complain);
 
       /* See above comment.  */
       if (TREE_SIDE_EFFECTS (function)
-	  || (!nonvirtual && !DECL_P (function)))
-	function = save_expr (function);
+	  || (!nonvirtual
+	      && !DECL_P (function)
+	      && !TREE_CONSTANT (function)))
+	function
+	  = force_target_expr (TREE_TYPE (function), function, complain);
 
       /* Start by extracting all the information from the PMF itself.  */
       e3 = pfn_from_ptrmemfunc (function);
diff --git a/gcc/testsuite/g++.dg/ubsan/pr117259.C b/gcc/testsuite/g++.dg/ubsan/pr117259.C
new file mode 100644
index 00000000000..2b7ba56c2a3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ubsan/pr117259.C
@@ -0,0 +1,13 @@
+// PR c++/117259
+// { dg-do compile }
+// { dg-options "-Wuninitialized -fsanitize=undefined" }
+
+struct A { void foo () {} };
+struct B { void (A::*b) (); B (void (A::*x) ()) : b(x) {}; };
+const B c[1] = { &A::foo };
+
+void
+foo (A *x, int y)
+{
+  (x->*c[y].b) ();
+}

commit 7965062f9e9ba634247b1dab22e1d83f446337ab
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Oct 25 14:09:42 2024 +0200

    Assorted --disable-checking fixes [PR117249]
    
    We have currently 3 different definitions of gcc_assert macro, one used most
    of the time (unless --disable-checking) which evaluates the condition at
    runtime and also checks it at runtime, then one for --disable-checking GCC 4.5+
    which looks like
    ((void)(UNLIKELY (!(EXPR)) ? __builtin_unreachable (), 0 : 0))
    and a fallback one
    ((void)(0 && (EXPR)))
    Now, the last one actually doesn't evaluate any of the side-effects in the
    argument, just quiets up unused var/parameter warnings.
    I've tried to replace the middle definition with
    ({ [[assume (EXPR)]]; (void) 0; })
    for compilers which support assume attribute and statement expressions
    (surprisingly quite a few spots use gcc_assert inside of comma expressions),
    but ran into PR117287, so for now such a change isn't being proposed.
    
    The following patch attempts to move important side-effects from gcc_assert
    arguments.
    
    Bootstrapped/regtested on x86_64-linux and i686-linux with normal
    --enable-checking=yes,rtl,extra, plus additionally I've attempted to do
    x86_64-linux bootstrap with --disable-checking and gcc_assert changed to the
    ((void)(0 && (EXPR)))
    version when --disable-checking.  That version ran into spurious middle-end
    warnings
    ../../gcc/../include/libiberty.h:733:36: error: argument to ‘alloca’ is too large [-Werror=alloca-larger-than=]
    ../../gcc/tree-ssa-reassoc.cc:5659:20: note: in expansion of macro ‘XALLOCAVEC’
      int op_num = ops.length ();
      int op_normal_num = op_num;
      gcc_assert (op_num > 0);
      int stmt_num = op_num - 1;
      gimple **stmts = XALLOCAVEC (gimple *, stmt_num);
    where we have gcc_assert exactly to work-around middle-end warnings.
    Guess I'd need to also disable -Werror for this experiment, which actually
    isn't a problem with unmodified system.h, because even for
    --disable-checking we use the __builtin_unreachable at least in
    stage2/stage3 and so the warnings aren't emitted, and even if it used
    [[assume ()]]; it would work too because in stage2/stage3 we could again
    rely on assume and statement expression support.
    
    2024-10-25  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/117249
            * tree-ssa-structalias.cc (insert_vi_for_tree): Move put calls out of
            gcc_assert.
            * lto-cgraph.cc (lto_symtab_encoder_delete_node): Likewise.
            * gimple-ssa-strength-reduction.cc (get_alternative_base,
            add_cand_for_stmt): Likewise.
            * tree-eh.cc (add_stmt_to_eh_lp_fn): Likewise.
            * except.cc (duplicate_eh_regions_1): Likewise.
            * tree-ssa-reassoc.cc (insert_operand_rank): Likewise.
            * config/nvptx/nvptx.cc (nvptx_expand_call): Use == rather than = in
            gcc_assert.
            * opts-common.cc (jobserver_info::disconnect): Call close outside of
            gcc_assert and only check result in it.
            (jobserver_info::return_token): Call write outside of gcc_assert and
            only check result in it.
            * genautomata.cc (output_default_latencies): Move j++ side-effect
            outside of gcc_assert.
            * tree-ssa-loop-ivopts.cc (get_alias_ptr_type_for_ptr_address): Use
            == rather than = in gcc_assert.
            * cgraph.cc (symbol_table::create_edge): Move ++edges_max_uid
            side-effect outside of gcc_assert.
    
    (cherry picked from commit e2a8772c9328960c625f5b95091d4312efa0e284)

diff --git a/gcc/cgraph.cc b/gcc/cgraph.cc
index 39a3adbc7c3..8226c7d96e0 100644
--- a/gcc/cgraph.cc
+++ b/gcc/cgraph.cc
@@ -894,7 +894,8 @@ symbol_table::create_edge (cgraph_node *caller, cgraph_node *callee,
   edge->m_summary_id = -1;
   edges_count++;
 
-  gcc_assert (++edges_max_uid != 0);
+  ++edges_max_uid;
+  gcc_assert (edges_max_uid != 0);
   edge->m_uid = edges_max_uid;
   edge->aux = NULL;
   edge->caller = caller;
diff --git a/gcc/config/nvptx/nvptx.cc b/gcc/config/nvptx/nvptx.cc
index 2a8f713c680..f88d7965bd3 100644
--- a/gcc/config/nvptx/nvptx.cc
+++ b/gcc/config/nvptx/nvptx.cc
@@ -1900,7 +1900,7 @@ nvptx_expand_call (rtx retval, rtx address)
   if (varargs)
     XVECEXP (pat, 0, vec_pos++) = gen_rtx_USE (VOIDmode, varargs);
 
-  gcc_assert (vec_pos = XVECLEN (pat, 0));
+  gcc_assert (vec_pos == XVECLEN (pat, 0));
 
   nvptx_emit_forking (parallel, true);
   emit_call_insn (pat);
diff --git a/gcc/except.cc b/gcc/except.cc
index 2080fcc22e6..c6c9c80d286 100644
--- a/gcc/except.cc
+++ b/gcc/except.cc
@@ -541,7 +541,8 @@ duplicate_eh_regions_1 (struct duplicate_eh_regions_data *data,
   eh_region new_r;
 
   new_r = gen_eh_region (old_r->type, outer);
-  gcc_assert (!data->eh_map->put (old_r, new_r));
+  bool existed = data->eh_map->put (old_r, new_r);
+  gcc_assert (!existed);
 
   switch (old_r->type)
     {
@@ -586,7 +587,8 @@ duplicate_eh_regions_1 (struct duplicate_eh_regions_data *data,
 	continue;
 
       new_lp = gen_eh_landing_pad (new_r);
-      gcc_assert (!data->eh_map->put (old_lp, new_lp));
+      bool existed = data->eh_map->put (old_lp, new_lp);
+      gcc_assert (!existed);
 
       new_lp->post_landing_pad
 	= data->label_map (old_lp->post_landing_pad, data->label_map_data);
diff --git a/gcc/genautomata.cc b/gcc/genautomata.cc
index ec1e5331a4b..19531cdc4f7 100644
--- a/gcc/genautomata.cc
+++ b/gcc/genautomata.cc
@@ -8348,7 +8348,8 @@ output_default_latencies (void)
 	if ((col = (col+1) % 8) == 0)
 	  fputs ("\n     ", output_file);
 	decl = description->decls[i];
-	gcc_assert (j++ == DECL_INSN_RESERV (decl)->insn_num);
+	gcc_assert (j == DECL_INSN_RESERV (decl)->insn_num);
+	++j;
 	fprintf (output_file, "% 4d,",
 		 DECL_INSN_RESERV (decl)->default_latency);
       }
diff --git a/gcc/gimple-ssa-strength-reduction.cc b/gcc/gimple-ssa-strength-reduction.cc
index 1cb3625c7eb..b7577bb17b8 100644
--- a/gcc/gimple-ssa-strength-reduction.cc
+++ b/gcc/gimple-ssa-strength-reduction.cc
@@ -473,7 +473,8 @@ get_alternative_base (tree base)
       aff.offset = 0;
       expr = aff_combination_to_tree (&aff);
 
-      gcc_assert (!alt_base_map->put (base, base == expr ? NULL : expr));
+      bool existed = alt_base_map->put (base, base == expr ? NULL : expr);
+      gcc_assert (!existed);
 
       return expr == base ? NULL : expr;
     }
@@ -791,7 +792,8 @@ base_cand_from_table (tree base_in)
 static void
 add_cand_for_stmt (gimple *gs, slsr_cand_t c)
 {
-  gcc_assert (!stmt_cand_map->put (gs, c));
+  bool existed = stmt_cand_map->put (gs, c);
+  gcc_assert (!existed);
 }
 
 /* Given PHI which contains a phi statement, determine whether it
diff --git a/gcc/lto-cgraph.cc b/gcc/lto-cgraph.cc
index 6395033ab9d..9ddcb6204d9 100644
--- a/gcc/lto-cgraph.cc
+++ b/gcc/lto-cgraph.cc
@@ -155,7 +155,8 @@ lto_symtab_encoder_delete_node (lto_symtab_encoder_t encoder,
   last_node = encoder->nodes.pop ();
   if (last_node.node != node)
     {
-      gcc_assert (encoder->map->put (last_node.node, index + 1));
+      bool existed = encoder->map->put (last_node.node, index + 1);
+      gcc_assert (existed);
 
       /* Move the last element to the original spot of NODE.  */
       encoder->nodes[index] = last_node;
diff --git a/gcc/opts-common.cc b/gcc/opts-common.cc
index 9bc03e01e87..f68a9b95ee3 100644
--- a/gcc/opts-common.cc
+++ b/gcc/opts-common.cc
@@ -2145,7 +2145,8 @@ jobserver_info::disconnect ()
 {
   if (!pipe_path.empty ())
     {
-      gcc_assert (close (pipefd) == 0);
+      int res = close (pipefd);
+      gcc_assert (res == 0);
       pipefd = -1;
     }
 }
@@ -2170,5 +2171,6 @@ jobserver_info::return_token ()
 {
   int fd = pipe_path.empty () ? wfd : pipefd;
   char c = 'G';
-  gcc_assert (write (fd, &c, 1) == 1);
+  int res = write (fd, &c, 1);
+  gcc_assert (res == 1);
 }
diff --git a/gcc/tree-eh.cc b/gcc/tree-eh.cc
index 9609bdc0d9b..199b6d5d005 100644
--- a/gcc/tree-eh.cc
+++ b/gcc/tree-eh.cc
@@ -76,7 +76,8 @@ add_stmt_to_eh_lp_fn (struct function *ifun, gimple *t, int num)
   if (!get_eh_throw_stmt_table (ifun))
     set_eh_throw_stmt_table (ifun, hash_map<gimple *, int>::create_ggc (31));
 
-  gcc_assert (!get_eh_throw_stmt_table (ifun)->put (t, num));
+  bool existed = get_eh_throw_stmt_table (ifun)->put (t, num);
+  gcc_assert (!existed);
 }
 
 /* Add statement T in the current function (cfun) to EH landing pad NUM.  */
diff --git a/gcc/tree-ssa-loop-ivopts.cc b/gcc/tree-ssa-loop-ivopts.cc
index a904910999f..3bd0d90e776 100644
--- a/gcc/tree-ssa-loop-ivopts.cc
+++ b/gcc/tree-ssa-loop-ivopts.cc
@@ -7611,7 +7611,7 @@ get_alias_ptr_type_for_ptr_address (iv_use *use)
     case IFN_MASK_LEN_LOAD:
     case IFN_MASK_LEN_STORE:
       /* The second argument contains the correct alias type.  */
-      gcc_assert (use->op_p = gimple_call_arg_ptr (call, 0));
+      gcc_assert (use->op_p == gimple_call_arg_ptr (call, 0));
       return TREE_TYPE (gimple_call_arg (call, 1));
 
     default:
diff --git a/gcc/tree-ssa-reassoc.cc b/gcc/tree-ssa-reassoc.cc
index 556ecdebe2d..377ab6f4b97 100644
--- a/gcc/tree-ssa-reassoc.cc
+++ b/gcc/tree-ssa-reassoc.cc
@@ -404,7 +404,8 @@ static inline void
 insert_operand_rank (tree e, int64_t rank)
 {
   gcc_assert (rank > 0);
-  gcc_assert (!operand_rank->put (e, rank));
+  bool existed = operand_rank->put (e, rank);
+  gcc_assert (!existed);
 }
 
 /* Given an expression E, return the rank of the expression.  */
diff --git a/gcc/tree-ssa-structalias.cc b/gcc/tree-ssa-structalias.cc
index 9c63305063c..c6e3361d9e1 100644
--- a/gcc/tree-ssa-structalias.cc
+++ b/gcc/tree-ssa-structalias.cc
@@ -2915,7 +2915,8 @@ static void
 insert_vi_for_tree (tree t, varinfo_t vi)
 {
   gcc_assert (vi);
-  gcc_assert (!vi_for_tree->put (t, vi));
+  bool existed = vi_for_tree->put (t, vi);
+  gcc_assert (!existed);
 }
 
 /* Find the variable info for tree T in VI_FOR_TREE.  If T does not

commit e44d4b7647c6b9c9a147b13de588b14e5a54354a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Oct 26 00:23:24 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b89cc4d3d04..cd71472cf6e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,50 @@
+2024-10-25  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-25  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/117249
+	* tree-ssa-structalias.cc (insert_vi_for_tree): Move put calls out of
+	gcc_assert.
+	* lto-cgraph.cc (lto_symtab_encoder_delete_node): Likewise.
+	* gimple-ssa-strength-reduction.cc (get_alternative_base,
+	add_cand_for_stmt): Likewise.
+	* tree-eh.cc (add_stmt_to_eh_lp_fn): Likewise.
+	* except.cc (duplicate_eh_regions_1): Likewise.
+	* tree-ssa-reassoc.cc (insert_operand_rank): Likewise.
+	* config/nvptx/nvptx.cc (nvptx_expand_call): Use == rather than = in
+	gcc_assert.
+	* opts-common.cc (jobserver_info::disconnect): Call close outside of
+	gcc_assert and only check result in it.
+	(jobserver_info::return_token): Call write outside of gcc_assert and
+	only check result in it.
+	* genautomata.cc (output_default_latencies): Move j++ side-effect
+	outside of gcc_assert.
+	* tree-ssa-loop-ivopts.cc (get_alias_ptr_type_for_ptr_address): Use
+	== rather than = in gcc_assert.
+	* cgraph.cc (symbol_table::create_edge): Move ++edges_max_uid
+	side-effect outside of gcc_assert.
+
+2024-10-25  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-24  Jakub Jelinek  <jakub@redhat.com>
+
+	PR sanitizer/117209
+	* asan.cc (maybe_cast_to_ptrmode): Formatting fix.
+	(build_check_stmt): Don't copy *iter into gsi, perform all
+	the updates on iter directly.
+
+2024-10-25  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-10-24  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/116953
+	* config/avr/avr.cc (avr_out_sbxx_branch): Revert previous fix
+	for PR116953 (r15-4078).  Run extract_constrain_insn_cached
+	on the current insn after calling jump_over_one_insn_p.
+
 2024-10-23  liuhongt  <hongtao.liu@intel.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7f899e9ca4b..7125d77c104 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241024
+20241026
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index d6808032cc3..872520e2e31 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/116551
+	* gcc-interface/trans.cc (node_is_atomic) <N_Identifier>: Return
+	false if the type of the entity is an unconstrained array type.
+	(node_is_volatile_full_access) <N_Identifier>: Likewise.
+
 2024-10-14  Steve Baird  <baird@adacore.com>
 
 	PR ada/114593
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 76d7de531e2..be0a8ad9b0b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,13 @@
+2024-10-25  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-24  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/117259
+	* typeck.cc (get_member_function_from_ptrfunc): Use force_target_expr
+	rather than save_expr for instance_ptr and function.  Don't call it
+	for TREE_CONSTANT.
+
 2024-10-22  Jason Merrill  <jason@redhat.com>
 
 	Backported from master:
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 2c67dd5e0c7..c804cc2f3a7 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,17 @@
+2024-10-25  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-07-16  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/84868
+	* simplify.cc (gfc_simplify_len_trim): If the argument is an
+	element of a parameter array, simplify all the elements and
+	build a new parameter array to hold the result, after checking
+	that it doesn't already exist.
+	* trans-expr.cc (gfc_get_interface_mapping_array) if a string
+	length is available, use it for the typespec.
+	(gfc_add_interface_mapping): Supply the se string length.
+
 2024-09-20  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 11dddf15ab1..91ed5fe6b1d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,38 @@
+2024-10-25  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-24  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/117259
+	* g++.dg/ubsan/pr117259.C: New test.
+
+2024-10-25  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-24  Jakub Jelinek  <jakub@redhat.com>
+
+	PR sanitizer/117209
+	* gcc.dg/asan/pr117209.c: New test.
+
+2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/116551
+	* gnat.dg/specs/vfa3.ads: New test.
+
+2024-10-25  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-07-16  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/84868
+	* gfortran.dg/pr84868.f90: New test.
+
+2024-10-24  Jason Merrill  <jason@redhat.com>
+
+	PR c++/117274
+	PR c++/117107
+	* g++.dg/cpp2a/decomp10.C: Remove captured binding warning.
+
 2024-10-23  liuhongt  <hongtao.liu@intel.com>
 
 	Backported from master:

commit 77bf8aa8f20f4d0b705e62fbd1f75352b27391de
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Oct 27 00:23:03 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7125d77c104..484ce9b3e42 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241026
+20241027

commit ec9bd14144a9e536e450b9fb98f26dab40ee75d8
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Tue Sep 3 11:23:57 2024 +0200

    testsuite: Sanitize pacbti test cases for Cortex-M
    
    Some of the test cases were scanning for "bti", but it would,
    incorrectly, match the ".arch_extenssion pacbti".
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/bti-1.c: Check for asm instructions starting
            with a tab.
            * gcc.target/arm/bti-2.c: Likewise.
            * gcc.target/arm/pac-1.c: Likewise.
            * gcc.target/arm/pac-2.c: Likewise.
            * gcc.target/arm/pac-3.c: Likewise.
            * gcc.target/arm/pac-4.c: Likewise.
            * gcc.target/arm/pac-6.c: Likewise.
            * gcc.target/arm/pac-7.c: Likewise.
            * gcc.target/arm/pac-8.c: Likewise.
            * gcc.target/arm/pac-9.c: Likewise.
            * gcc.target/arm/pac-10.c: Likewise.
            * gcc.target/arm/pac-11.c: Likewise.
            * gcc.target/arm/pac-15.c: Likewise.
            * gcc.target/arm/pac-sibcall.c: Likewise.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    Co-authored-by: Yvan ROUX <yvan.roux@foss.st.com>
    (cherry picked from commit 6ad29a858bac7cf9e765925cf5f6945e20f085be)

diff --git a/gcc/testsuite/gcc.target/arm/bti-1.c b/gcc/testsuite/gcc.target/arm/bti-1.c
index 79dd8010d2d..54a733d9f20 100644
--- a/gcc/testsuite/gcc.target/arm/bti-1.c
+++ b/gcc/testsuite/gcc.target/arm/bti-1.c
@@ -9,4 +9,4 @@ main (void)
   return 0;
 }
 
-/* { dg-final { scan-assembler "bti" } } */
+/* { dg-final { scan-assembler "\tbti" } } */
diff --git a/gcc/testsuite/gcc.target/arm/bti-2.c b/gcc/testsuite/gcc.target/arm/bti-2.c
index 33910563849..645ad369424 100644
--- a/gcc/testsuite/gcc.target/arm/bti-2.c
+++ b/gcc/testsuite/gcc.target/arm/bti-2.c
@@ -55,4 +55,4 @@ lab2:
   return 2;
 }
 
-/* { dg-final { scan-assembler-times "bti" 15 } } */
+/* { dg-final { scan-assembler-times "\tbti" 14 } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-1.c b/gcc/testsuite/gcc.target/arm/pac-1.c
index 9b26f62b65f..e0eea0858e0 100644
--- a/gcc/testsuite/gcc.target/arm/pac-1.c
+++ b/gcc/testsuite/gcc.target/arm/pac-1.c
@@ -6,6 +6,6 @@
 
 #include "pac.h"
 
-/* { dg-final { scan-assembler-times "pac\tip, lr, sp" 2 } } */
-/* { dg-final { scan-assembler-times "aut\tip, lr, sp" 2 } } */
+/* { dg-final { scan-assembler-times "\tpac\tip, lr, sp" 2 } } */
+/* { dg-final { scan-assembler-times "\taut\tip, lr, sp" 2 } } */
 /* { dg-final { scan-assembler-not "\tbti" } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-10.c b/gcc/testsuite/gcc.target/arm/pac-10.c
index a794195e8f6..6da8434aeaf 100644
--- a/gcc/testsuite/gcc.target/arm/pac-10.c
+++ b/gcc/testsuite/gcc.target/arm/pac-10.c
@@ -5,6 +5,6 @@
 
 #include "pac.h"
 
-/* { dg-final { scan-assembler "pac\tip, lr, sp" } } */
-/* { dg-final { scan-assembler "aut\tip, lr, sp" } } */
+/* { dg-final { scan-assembler "\tpac\tip, lr, sp" } } */
+/* { dg-final { scan-assembler "\taut\tip, lr, sp" } } */
 /* { dg-final { scan-assembler-not "\tbti" } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-11.c b/gcc/testsuite/gcc.target/arm/pac-11.c
index 37ffc93b41b..0bb727c2c80 100644
--- a/gcc/testsuite/gcc.target/arm/pac-11.c
+++ b/gcc/testsuite/gcc.target/arm/pac-11.c
@@ -5,6 +5,6 @@
 
 #include "pac.h"
 
-/* { dg-final { scan-assembler-times "pacbti\tip, lr, sp" 2 } } */
-/* { dg-final { scan-assembler-times "aut\tip, lr, sp" 2 } } */
+/* { dg-final { scan-assembler-times "\tpacbti\tip, lr, sp" 2 } } */
+/* { dg-final { scan-assembler-times "\taut\tip, lr, sp" 2 } } */
 /* { dg-final { scan-assembler-not "\tbti" } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-15.c b/gcc/testsuite/gcc.target/arm/pac-15.c
index e1054902955..979941492d3 100644
--- a/gcc/testsuite/gcc.target/arm/pac-15.c
+++ b/gcc/testsuite/gcc.target/arm/pac-15.c
@@ -24,7 +24,7 @@ int main (void)
 }
 
 /* { dg-final { scan-assembler-times "\.pacspval" 1 } } */
-/* { dg-final { scan-assembler-times "pac	ip, lr, sp" 3 } } */
+/* { dg-final { scan-assembler-times "\tpac\tip, lr, sp" 3 } } */
 /* { dg-final { scan-assembler-times "\.cfi_register 143, 12" 3 } } */
 /* { dg-final { scan-assembler-times "\.save {r7, ra_auth_code, lr}" 2 } } */
 /* { dg-final { scan-assembler-times "\.cfi_offset 143, -8" 2 } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-2.c b/gcc/testsuite/gcc.target/arm/pac-2.c
index 945ce938592..5eb1062043c 100644
--- a/gcc/testsuite/gcc.target/arm/pac-2.c
+++ b/gcc/testsuite/gcc.target/arm/pac-2.c
@@ -6,6 +6,6 @@
 
 #include "pac.h"
 
-/* { dg-final { scan-assembler "pac\tip, lr, sp" } } */
-/* { dg-final { scan-assembler "aut\tip, lr, sp" } } */
+/* { dg-final { scan-assembler "\tpac\tip, lr, sp" } } */
+/* { dg-final { scan-assembler "\taut\tip, lr, sp" } } */
 /* { dg-final { scan-assembler-not "\tbti" } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-3.c b/gcc/testsuite/gcc.target/arm/pac-3.c
index 47e290a5840..50453dd8ec4 100644
--- a/gcc/testsuite/gcc.target/arm/pac-3.c
+++ b/gcc/testsuite/gcc.target/arm/pac-3.c
@@ -6,6 +6,6 @@
 
 #include "pac.h"
 
-/* { dg-final { scan-assembler-times "pacbti\tip, lr, sp" 2 } } */
-/* { dg-final { scan-assembler-times "aut\tip, lr, sp" 2 } } */
+/* { dg-final { scan-assembler-times "\tpacbti\tip, lr, sp" 2 } } */
+/* { dg-final { scan-assembler-times "\taut\tip, lr, sp" 2 } } */
 /* { dg-final { scan-assembler-not "\tbti" } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-4.c b/gcc/testsuite/gcc.target/arm/pac-4.c
index cf915cdba50..81907079d77 100644
--- a/gcc/testsuite/gcc.target/arm/pac-4.c
+++ b/gcc/testsuite/gcc.target/arm/pac-4.c
@@ -5,6 +5,6 @@
 
 #include "pac.h"
 
-/* { dg-final { scan-assembler-not "\tbti\t" } } */
+/* { dg-final { scan-assembler-not "\tbti" } } */
 /* { dg-final { scan-assembler-not "\tpac\t" } } */
 /* { dg-final { scan-assembler-not "\tpacbti\t" } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-6.c b/gcc/testsuite/gcc.target/arm/pac-6.c
index c5329f0ef48..a8e3067f825 100644
--- a/gcc/testsuite/gcc.target/arm/pac-6.c
+++ b/gcc/testsuite/gcc.target/arm/pac-6.c
@@ -13,6 +13,6 @@ int bar()
   return 0;
 }
 
-/* { dg-final { scan-assembler "pac\tip, lr, sp" } } */
-/* { dg-final { scan-assembler "aut\tip, lr, sp" } } */
-/* { dg-final { scan-assembler-not "bti" } } */
+/* { dg-final { scan-assembler "\tpac\tip, lr, sp" } } */
+/* { dg-final { scan-assembler "\taut\tip, lr, sp" } } */
+/* { dg-final { scan-assembler-not "\tbti" } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-7.c b/gcc/testsuite/gcc.target/arm/pac-7.c
index cdaebca5cfa..6b4ad1450ce 100644
--- a/gcc/testsuite/gcc.target/arm/pac-7.c
+++ b/gcc/testsuite/gcc.target/arm/pac-7.c
@@ -27,6 +27,6 @@ main (void)
   return 0;
 }
 
-/* { dg-final { scan-assembler-times "pac\tip, lr, sp" 3 } } */
-/* { dg-final { scan-assembler-times "aut\tip, lr, sp" 3 } } */
+/* { dg-final { scan-assembler-times "\tpac\tip, lr, sp" 3 } } */
+/* { dg-final { scan-assembler-times "\taut\tip, lr, sp" 3 } } */
 /* { dg-final { scan-assembler-not "\tbti" } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-8.c b/gcc/testsuite/gcc.target/arm/pac-8.c
index 3f37dcfa5c8..84208bfda4f 100644
--- a/gcc/testsuite/gcc.target/arm/pac-8.c
+++ b/gcc/testsuite/gcc.target/arm/pac-8.c
@@ -29,6 +29,6 @@ int main()
   return 0;
 }
 
-/* { dg-final { scan-assembler-times "pac\tip, lr, sp" 2 } } */
-/* { dg-final { scan-assembler-times "aut\tip, lr, sp" 2 } } */
+/* { dg-final { scan-assembler-times "\tpac\tip, lr, sp" 2 } } */
+/* { dg-final { scan-assembler-times "\taut\tip, lr, sp" 2 } } */
 /* { dg-final { scan-assembler-not "\tbti" } } */
diff --git a/gcc/testsuite/gcc.target/arm/pac-9.c b/gcc/testsuite/gcc.target/arm/pac-9.c
index ee2fad290b5..588b7ffb8d2 100644
--- a/gcc/testsuite/gcc.target/arm/pac-9.c
+++ b/gcc/testsuite/gcc.target/arm/pac-9.c
@@ -5,7 +5,7 @@
 
 #include "pac.h"
 
-/* { dg-final { scan-assembler-times "pac\tip, lr, sp" 2 } } */
-/* { dg-final { scan-assembler-times "aut\tip, lr, sp" 2 } } */
+/* { dg-final { scan-assembler-times "\tpac\tip, lr, sp" 2 } } */
+/* { dg-final { scan-assembler-times "\taut\tip, lr, sp" 2 } } */
 /* { dg-final { scan-assembler-not "\tbti" } } */
 
diff --git a/gcc/testsuite/gcc.target/arm/pac-sibcall.c b/gcc/testsuite/gcc.target/arm/pac-sibcall.c
index e15bd2f478d..205099d177e 100644
--- a/gcc/testsuite/gcc.target/arm/pac-sibcall.c
+++ b/gcc/testsuite/gcc.target/arm/pac-sibcall.c
@@ -11,4 +11,4 @@ void fail(void (*f)(int, int, int, int))
   f(1, 2, 3, 4);
 }
 
-/* { dg-final { scan-assembler-not "bx\tip\t@ indirect register sibling call" } } */
+/* { dg-final { scan-assembler-not "\tbx\tip\t@ indirect register sibling call" } } */

commit c79acf623f7ae18735d875610b73b22199af72de
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Oct 28 00:22:21 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 484ce9b3e42..0dda5574ec7 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241027
+20241028
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 91ed5fe6b1d..90e5acc0c30 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,25 @@
+2024-10-27  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-10-27  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+		    Yvan ROUX  <yvan.roux@foss.st.com>
+
+	* gcc.target/arm/bti-1.c: Check for asm instructions starting
+	with a tab.
+	* gcc.target/arm/bti-2.c: Likewise.
+	* gcc.target/arm/pac-1.c: Likewise.
+	* gcc.target/arm/pac-2.c: Likewise.
+	* gcc.target/arm/pac-3.c: Likewise.
+	* gcc.target/arm/pac-4.c: Likewise.
+	* gcc.target/arm/pac-6.c: Likewise.
+	* gcc.target/arm/pac-7.c: Likewise.
+	* gcc.target/arm/pac-8.c: Likewise.
+	* gcc.target/arm/pac-9.c: Likewise.
+	* gcc.target/arm/pac-10.c: Likewise.
+	* gcc.target/arm/pac-11.c: Likewise.
+	* gcc.target/arm/pac-15.c: Likewise.
+	* gcc.target/arm/pac-sibcall.c: Likewise.
+
 2024-10-25  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:

commit 2f0d109bd871d11b5b93468f271aa6dc34ef88d8
Author: Sam James <sam@gentoo.org>
Date:   Mon Oct 21 12:11:42 2024 +0100

    testsuite: add testcase for fixed PR107467
    
    PR107467 ended up being fixed by the fix for PR115110, but let's
    add the testcase on top.
    
    gcc/testsuite/ChangeLog:
            PR tree-optimization/107467
            PR middle-end/115110
    
            * g++.dg/lto/pr107467_0.C: New test.

diff --git a/gcc/testsuite/g++.dg/lto/pr107467_0.C b/gcc/testsuite/g++.dg/lto/pr107467_0.C
new file mode 100644
index 00000000000..a871aca8245
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lto/pr107467_0.C
@@ -0,0 +1,52 @@
+/* { dg-lto-do run } */
+/* { dg-lto-options {{ -O2 -fno-strict-aliasing -flto }} } */
+
+template <class T>
+struct pair
+{
+    int first;
+    T second;
+};
+
+template <typename C>
+[[gnu::optimize("strict-aliasing")]]
+bool __attribute__((noinline))
+compare_pairs(const pair<C> &lhs, const pair<C> &rhs) {
+  return lhs.first == rhs.first && lhs.second == rhs.second;
+}
+
+template <typename B> struct Combined {
+  pair<B *> 
+__attribute__((noinline)) get_const() {
+    return pair<B *>{123, nullptr};
+  }
+[[gnu::optimize("strict-aliasing")]]
+  bool 
+__attribute__((noinline)) clashy() {
+    return compare_pairs(get_const(), get_const());
+  }
+};
+
+class SomeClass {};
+class OtherClass {};
+
+[[gnu::optimize("strict-aliasing")]]
+[[gnu::used]]
+void some_func() {
+  Combined<SomeClass> myvar;
+  __builtin_printf("%i\n", myvar.clashy());
+}
+
+[[gnu::optimize("strict-aliasing")]]
+void other_func() {
+  Combined<OtherClass> myvar;
+  int t = myvar.clashy();
+  if (!t)
+  __builtin_abort();
+}
+
+[[gnu::optimize("O0")]]
+int main()
+{
+  other_func();
+}

commit ed8fb9b285d7706426ca54f7ffbf9d04f346af16
Author: Sam James <sam@gentoo.org>
Date:   Mon Oct 28 17:06:37 2024 +0000

    Revert "testsuite: add testcase for fixed PR107467"
    
    This reverts commit 2f0d109bd871d11b5b93468f271aa6dc34ef88d8.

diff --git a/gcc/testsuite/g++.dg/lto/pr107467_0.C b/gcc/testsuite/g++.dg/lto/pr107467_0.C
deleted file mode 100644
index a871aca8245..00000000000
--- a/gcc/testsuite/g++.dg/lto/pr107467_0.C
+++ /dev/null
@@ -1,52 +0,0 @@
-/* { dg-lto-do run } */
-/* { dg-lto-options {{ -O2 -fno-strict-aliasing -flto }} } */
-
-template <class T>
-struct pair
-{
-    int first;
-    T second;
-};
-
-template <typename C>
-[[gnu::optimize("strict-aliasing")]]
-bool __attribute__((noinline))
-compare_pairs(const pair<C> &lhs, const pair<C> &rhs) {
-  return lhs.first == rhs.first && lhs.second == rhs.second;
-}
-
-template <typename B> struct Combined {
-  pair<B *> 
-__attribute__((noinline)) get_const() {
-    return pair<B *>{123, nullptr};
-  }
-[[gnu::optimize("strict-aliasing")]]
-  bool 
-__attribute__((noinline)) clashy() {
-    return compare_pairs(get_const(), get_const());
-  }
-};
-
-class SomeClass {};
-class OtherClass {};
-
-[[gnu::optimize("strict-aliasing")]]
-[[gnu::used]]
-void some_func() {
-  Combined<SomeClass> myvar;
-  __builtin_printf("%i\n", myvar.clashy());
-}
-
-[[gnu::optimize("strict-aliasing")]]
-void other_func() {
-  Combined<OtherClass> myvar;
-  int t = myvar.clashy();
-  if (!t)
-  __builtin_abort();
-}
-
-[[gnu::optimize("O0")]]
-int main()
-{
-  other_func();
-}

commit 6247aae35faaf04de48c5f3d9c4e4af6f7e3789c
Author: Sam James <sam@gentoo.org>
Date:   Mon Oct 21 12:11:42 2024 +0100

    testsuite: add testcase for fixed PR107467
    
    PR107467 ended up being fixed by the fix for PR115110, but let's
    add the testcase on top.
    
    gcc/testsuite/ChangeLog:
            PR tree-optimization/107467
            PR middle-end/115110
    
            * g++.dg/lto/pr107467_0.C: New test.
    
    (cherry picked from commit 4e09ae37dbe0a10f48490214f50ff733cc92280a)

diff --git a/gcc/testsuite/g++.dg/lto/pr107467_0.C b/gcc/testsuite/g++.dg/lto/pr107467_0.C
new file mode 100644
index 00000000000..a871aca8245
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lto/pr107467_0.C
@@ -0,0 +1,52 @@
+/* { dg-lto-do run } */
+/* { dg-lto-options {{ -O2 -fno-strict-aliasing -flto }} } */
+
+template <class T>
+struct pair
+{
+    int first;
+    T second;
+};
+
+template <typename C>
+[[gnu::optimize("strict-aliasing")]]
+bool __attribute__((noinline))
+compare_pairs(const pair<C> &lhs, const pair<C> &rhs) {
+  return lhs.first == rhs.first && lhs.second == rhs.second;
+}
+
+template <typename B> struct Combined {
+  pair<B *> 
+__attribute__((noinline)) get_const() {
+    return pair<B *>{123, nullptr};
+  }
+[[gnu::optimize("strict-aliasing")]]
+  bool 
+__attribute__((noinline)) clashy() {
+    return compare_pairs(get_const(), get_const());
+  }
+};
+
+class SomeClass {};
+class OtherClass {};
+
+[[gnu::optimize("strict-aliasing")]]
+[[gnu::used]]
+void some_func() {
+  Combined<SomeClass> myvar;
+  __builtin_printf("%i\n", myvar.clashy());
+}
+
+[[gnu::optimize("strict-aliasing")]]
+void other_func() {
+  Combined<OtherClass> myvar;
+  int t = myvar.clashy();
+  if (!t)
+  __builtin_abort();
+}
+
+[[gnu::optimize("O0")]]
+int main()
+{
+  other_func();
+}

commit f675f1b738328a7d5e0be29b14ef7cf4a7dde52e
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Oct 29 00:23:02 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 0dda5574ec7..03377a986ad 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241028
+20241029
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 90e5acc0c30..254d765ad10 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,27 @@
+2024-10-28  Sam James  <sam@gentoo.org>
+
+	Backported from master:
+	2024-10-28  Sam James  <sam@gentoo.org>
+
+	PR tree-optimization/107467
+	PR middle-end/115110
+	* g++.dg/lto/pr107467_0.C: New test.
+
+2024-10-28  Sam James  <sam@gentoo.org>
+
+	Revert:
+	2024-10-28  Sam James  <sam@gentoo.org>
+
+	PR tree-optimization/107467
+	PR middle-end/115110
+	* g++.dg/lto/pr107467_0.C: New test.
+
+2024-10-28  Sam James  <sam@gentoo.org>
+
+	PR tree-optimization/107467
+	PR middle-end/115110
+	* g++.dg/lto/pr107467_0.C: New test.
+
 2024-10-27  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
 
 	Backported from master:

commit ab74b2d86471cdb5b8a327e734630f1288125d9e
Author: Peter Bergner <bergner@linux.ibm.com>
Date:   Fri Aug 23 11:45:40 2024 -0500

    rs6000: Fix PTImode handling in power8 swap optimization pass [PR116415]
    
    Our power8 swap optimization pass has some special handling for optimizing
    swaps of TImode variables.  The test case reported in bugzilla uses a call
    to  __atomic_compare_exchange, which introduces a variable of PTImode and
    that does not get the same treatment as TImode leading to wrong code
    generation.  The simple fix is to treat PTImode identically to TImode.
    
    2024-08-23  Peter Bergner  <bergner@linux.ibm.com>
    
    gcc/
            PR target/116415
            * config/rs6000/rs6000.h (TI_OR_PTI_MODE): New define.
            * config/rs6000/rs6000-p8swap.cc (rs6000_analyze_swaps): Use it to
            handle PTImode identically to TImode.
    
    gcc/testsuite/
            PR target/116415
            * gcc.target/powerpc/pr116415.c: New test.
    
    (cherry picked from commit 6e68c3df1540c5bafbb47343698bf4e270333fdb)

diff --git a/gcc/config/rs6000/rs6000-p8swap.cc b/gcc/config/rs6000/rs6000-p8swap.cc
index 639f477d782..05fb76057f9 100644
--- a/gcc/config/rs6000/rs6000-p8swap.cc
+++ b/gcc/config/rs6000/rs6000-p8swap.cc
@@ -2469,10 +2469,10 @@ rs6000_analyze_swaps (function *fun)
 		    mode = V4SImode;
 		}
 
-	      if (ALTIVEC_OR_VSX_VECTOR_MODE (mode) || mode == TImode)
+	      if (ALTIVEC_OR_VSX_VECTOR_MODE (mode) || TI_OR_PTI_MODE (mode))
 		{
 		  insn_entry[uid].is_relevant = 1;
-		  if (mode == TImode || mode == V1TImode
+		  if (TI_OR_PTI_MODE (mode) || mode == V1TImode
 		      || FLOAT128_VECTOR_P (mode))
 		    insn_entry[uid].is_128_int = 1;
 		  if (DF_REF_INSN_INFO (mention))
@@ -2497,10 +2497,10 @@ rs6000_analyze_swaps (function *fun)
 		  && ALTIVEC_OR_VSX_VECTOR_MODE (GET_MODE (SET_DEST (insn))))
 		mode = GET_MODE (SET_DEST (insn));
 
-	      if (ALTIVEC_OR_VSX_VECTOR_MODE (mode) || mode == TImode)
+	      if (ALTIVEC_OR_VSX_VECTOR_MODE (mode) || TI_OR_PTI_MODE (mode))
 		{
 		  insn_entry[uid].is_relevant = 1;
-		  if (mode == TImode || mode == V1TImode
+		  if (TI_OR_PTI_MODE (mode) || mode == V1TImode
 		      || FLOAT128_VECTOR_P (mode))
 		    insn_entry[uid].is_128_int = 1;
 		  if (DF_REF_INSN_INFO (mention))
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 197922fbb84..9b5cf321876 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1005,6 +1005,8 @@ enum data_align { align_abi, align_opt, align_both };
   (ALTIVEC_VECTOR_MODE (MODE) || VSX_VECTOR_MODE (MODE)			\
    || (MODE) == V2DImode || (MODE) == V1TImode)
 
+#define TI_OR_PTI_MODE(mode) ((mode) == TImode || (mode) == PTImode)
+
 /* Post-reload, we can't use any new AltiVec registers, as we already
    emitted the vrsave mask.  */
 
diff --git a/gcc/testsuite/gcc.target/powerpc/pr116415.c b/gcc/testsuite/gcc.target/powerpc/pr116415.c
new file mode 100644
index 00000000000..08cc282e2c2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr116415.c
@@ -0,0 +1,42 @@
+/* { dg-do run } */
+/* { dg-require-effective-target p8vector_hw } */
+/* { dg-require-effective-target int128 } */
+/* { dg-options "-O2 -mdejagnu-cpu=power8" } */
+
+/* PR 116415: Verify our Power8 swap optimization pass doesn't incorrectly swap
+   PTImode values.  They should be handled identically to TImode values.  */
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+typedef union {
+  struct {
+    uint64_t a;
+    uint64_t b;
+  } t;
+  __uint128_t data;
+} Value;
+Value value, next;
+
+void
+bug (Value *val, Value *nxt)
+{
+  for (;;) {
+    nxt->t.a = val->t.a + 1;
+    nxt->t.b = val->t.b + 2;
+    if (__atomic_compare_exchange (&val->data, &val->data, &nxt->data,
+				   0, __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE))
+      break;
+  }
+}
+
+int
+main (void)
+{
+  bug (&value, &next);
+  printf ("%lu %lu\n", value.t.a, value.t.b);
+  if (value.t.a != 1 || value.t.b != 2)
+    abort ();
+  return 0;
+}

commit 0ea3dca7946a1bce072ae5f732a873ce6f207bee
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Tue Oct 29 21:40:34 2024 +0100

    Fix miscompilation of function containing __builtin_unreachable
    
    This is a wrong-code generation on the SPARC for a function containing
    a call to __builtin_unreachable caused by the delay slot scheduling pass,
    and more specifically the find_end_label function which has these lines:
    
      /* Otherwise, see if there is a label at the end of the function. If there
         is, it must be that RETURN insns aren't needed, so that is our return
         label and we don't have to do anything else.  */
    
    The comment was correct 20 years ago but no longer is nowadays in the
    presence of RTL epilogues and calls to __builtin_unreachable, so the
    patch just removes the associated two lines of code:
    
      else if (LABEL_P (insn))
        *plabel = as_a <rtx_code_label *> (insn);
    
    and otherwise contains just adjustments to the commentary.
    
    gcc/
            PR rtl-optimization/117327
            * reorg.cc (find_end_label): Do not return a dangling label at the
            end of the function and adjust commentary.
    
    gcc/testsuite/
            * gcc.c-torture/execute/20241029-1.c: New test.

diff --git a/gcc/reorg.cc b/gcc/reorg.cc
index 99228a22c69..ffbd9c20525 100644
--- a/gcc/reorg.cc
+++ b/gcc/reorg.cc
@@ -336,13 +336,14 @@ insn_sets_resource_p (rtx insn, struct resources *res,
   return resource_conflicts_p (&insn_sets, res);
 }
 
-/* Find a label at the end of the function or before a RETURN.  If there
-   is none, try to make one.  If that fails, returns 0.
+/* Find a label before a RETURN.  If there is none, try to make one; if this
+   fails, return 0.  KIND is either ret_rtx or simple_return_rtx, indicating
+   which type of RETURN we're looking for.
 
-   The property of such a label is that it is placed just before the
-   epilogue or a bare RETURN insn, so that another bare RETURN can be
-   turned into a jump to the label unconditionally.  In particular, the
-   label cannot be placed before a RETURN insn with a filled delay slot.
+   The property of the label is that it is placed just before a bare RETURN
+   insn, so that another bare RETURN can be turned into a jump to the label
+   unconditionally.  In particular, the label cannot be placed before a
+   RETURN insn with a filled delay slot.
 
    ??? There may be a problem with the current implementation.  Suppose
    we start with a bare RETURN insn and call find_end_label.  It may set
@@ -353,9 +354,7 @@ insn_sets_resource_p (rtx insn, struct resources *res,
    Note that this is probably mitigated by the following observation:
    once function_return_label is made, it is very likely the target of
    a jump, so filling the delay slot of the RETURN will be much more
-   difficult.
-   KIND is either simple_return_rtx or ret_rtx, indicating which type of
-   return we're looking for.  */
+   difficult.  */
 
 static rtx_code_label *
 find_end_label (rtx kind)
@@ -375,10 +374,7 @@ find_end_label (rtx kind)
   if (*plabel)
     return *plabel;
 
-  /* Otherwise, see if there is a label at the end of the function.  If there
-     is, it must be that RETURN insns aren't needed, so that is our return
-     label and we don't have to do anything else.  */
-
+  /* Otherwise, scan the insns backward from the end of the function.  */
   insn = get_last_insn ();
   while (NOTE_P (insn)
 	 || (NONJUMP_INSN_P (insn)
@@ -386,9 +382,8 @@ find_end_label (rtx kind)
 		 || GET_CODE (PATTERN (insn)) == CLOBBER)))
     insn = PREV_INSN (insn);
 
-  /* When a target threads its epilogue we might already have a
-     suitable return insn.  If so put a label before it for the
-     function_return_label.  */
+  /* First, see if there is a RETURN at the end of the function.  If so,
+     put the label before it.  */
   if (BARRIER_P (insn)
       && JUMP_P (PREV_INSN (insn))
       && PATTERN (PREV_INSN (insn)) == kind)
@@ -397,8 +392,8 @@ find_end_label (rtx kind)
       rtx_code_label *label = gen_label_rtx ();
       LABEL_NUSES (label) = 0;
 
-      /* Put the label before any USE insns that may precede the RETURN
-	 insn.  */
+      /* Put the label before any USE insns that may precede the
+	 RETURN insn.  */
       while (GET_CODE (temp) == USE)
 	temp = PREV_INSN (temp);
 
@@ -406,15 +401,12 @@ find_end_label (rtx kind)
       *plabel = label;
     }
 
-  else if (LABEL_P (insn))
-    *plabel = as_a <rtx_code_label *> (insn);
+  /* If the basic block reordering pass has moved the return insn to some
+     other place, try to locate it again and put the label there.  */
   else
     {
       rtx_code_label *label = gen_label_rtx ();
       LABEL_NUSES (label) = 0;
-      /* If the basic block reorder pass moves the return insn to
-	 some other place try to locate it again and put our
-	 function_return_label there.  */
       while (insn && ! (JUMP_P (insn) && (PATTERN (insn) == kind)))
 	insn = PREV_INSN (insn);
       if (insn)
diff --git a/gcc/testsuite/gcc.c-torture/execute/20241029-1.c b/gcc/testsuite/gcc.c-torture/execute/20241029-1.c
new file mode 100644
index 00000000000..1090edd9c7c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20241029-1.c
@@ -0,0 +1,23 @@
+/* PR rtl-optimization/117327 */
+/* Testcase by Brad Moody <brad.moody@oracle.com> */
+
+__attribute__((noinline))
+void foo(int *self, int *x)
+{
+    __builtin_puts ("foo\n");
+
+    if (x) {
+        while (1) {
+            ++*self;
+            if (*self == 6) break;
+            if (*self == 7) __builtin_unreachable();
+        }
+    }
+}
+
+int main (void)
+{
+    int y = 0;
+    foo (&y, 0);
+    return 0;
+}

commit f2805039e48f9d2cbe69b791e5040d47c2d23337
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Oct 30 00:23:39 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cd71472cf6e..831611f878a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,19 @@
+2024-10-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR rtl-optimization/117327
+	* reorg.cc (find_end_label): Do not return a dangling label at the
+	end of the function and adjust commentary.
+
+2024-10-29  Peter Bergner  <bergner@linux.ibm.com>
+
+	Backported from master:
+	2024-08-23  Peter Bergner  <bergner@linux.ibm.com>
+
+	PR target/116415
+	* config/rs6000/rs6000.h (TI_OR_PTI_MODE): New define.
+	* config/rs6000/rs6000-p8swap.cc (rs6000_analyze_swaps): Use it to
+	handle PTImode identically to TImode.
+
 2024-10-25  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 03377a986ad..d334905e040 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241029
+20241030
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 254d765ad10..84b10e1306e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,15 @@
+2024-10-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* gcc.c-torture/execute/20241029-1.c: New test.
+
+2024-10-29  Peter Bergner  <bergner@linux.ibm.com>
+
+	Backported from master:
+	2024-08-23  Peter Bergner  <bergner@linux.ibm.com>
+
+	PR target/116415
+	* gcc.target/powerpc/pr116415.c: New test.
+
 2024-10-28  Sam James  <sam@gentoo.org>
 
 	Backported from master:

commit 71a0cf699b6a2dc03abec53aeafab8b70db2bb07
Author: liuhongt <hongtao.liu@intel.com>
Date:   Tue Oct 29 02:09:39 2024 -0700

    Fix ICE due to subreg:us_truncate.
    
    Force_operand issues an ICE when input
    is (subreg:DI (us_truncate:V8QI)), it's probably because it's an
    invalid rtx, So refine backend patterns for that.
    
    gcc/ChangeLog:
    
            PR target/117318
            * config/i386/sse.md (*avx512vl_<code>v2div2qi2_mask_store_1):
            Rename to ..
            (avx512vl_<code>v2div2qi2_mask_store_1): .. this.
            (avx512vl_<code>v2div2qi2_mask_store_2): Change to
            define_expand.
            (*avx512vl_<code><mode>v4qi2_mask_store_1): Rename to ..
            (avx512vl_<code><mode>v4qi2_mask_store_1): .. this.
            (avx512vl_<code><mode>v4qi2_mask_store_2): Change to
            define_expand.
            (*avx512vl_<code><mode>v8qi2_mask_store_1): Rename to ..
            (avx512vl_<code><mode>v8qi2_mask_store_1): .. this.
            (avx512vl_<code><mode>v8qi2_mask_store_2): Change to
            define_expand.
            (*avx512vl_<code><mode>v4hi2_mask_store_1): Rename to ..
            (avx512vl_<code><mode>v4hi2_mask_store_1): .. this.
            (avx512vl_<code><mode>v4hi2_mask_store_2): Change to
            define_expand.
            (*avx512vl_<code>v2div2hi2_mask_store_1): Rename to ..
            (avx512vl_<code>v2div2hi2_mask_store_1): .. this.
            (avx512vl_<code>v2div2hi2_mask_store_2): Change to
            define_expand.
            (*avx512vl_<code>v2div2si2_mask_store_1): Rename to ..
            (avx512vl_<code>v2div2si2_mask_store_1): .. this.
            (avx512vl_<code>v2div2si2_mask_store_2): Change to
            define_expand.
            (*avx512f_<code>v8div16qi2_mask_store_1): Rename to ..
            (avx512f_<code>v8div16qi2_mask_store_1): .. this.
            (avx512f_<code>v8div16qi2_mask_store_2): Change to
            define_expand.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr117318.c: New test.
    
    (cherry picked from commit bc0eeccf27a084461a2d5661e23468350acb43da)

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index e186b6ad452..436c1574d23 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -14590,7 +14590,7 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn "*avx512vl_<code>v2div2qi2_mask_store_1"
+(define_insn "avx512vl_<code>v2div2qi2_mask_store_1"
   [(set (match_operand:V2QI 0 "memory_operand" "=m")
 	  (vec_merge:V2QI
 	    (any_truncate:V2QI
@@ -14604,28 +14604,19 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn_and_split "avx512vl_<code>v2div2qi2_mask_store_2"
-  [(set (match_operand:HI 0 "memory_operand")
-	(subreg:HI
-	  (vec_merge:V2QI
-	    (any_truncate:V2QI
-	      (match_operand:V2DI 1 "register_operand"))
-	    (vec_select:V2QI
-	      (subreg:V4QI
-		(vec_concat:V2HI
-		  (match_dup 0)
-		  (const_int 0)) 0)
-	      (parallel [(const_int 0) (const_int 1)]))
-	    (match_operand:QI 2 "register_operand")) 0))]
-  "TARGET_AVX512VL && ix86_pre_reload_split ()"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-	(vec_merge:V2QI
-	  (any_truncate:V2QI (match_dup 1))
-	  (match_dup 0)
-	  (match_dup 2)))]
-  "operands[0] = adjust_address_nv (operands[0], V2QImode, 0);")
+(define_expand "avx512vl_<code>v2div2qi2_mask_store_2"
+  [(match_operand:HI 0 "memory_operand")
+   (any_truncate:V2QI
+     (match_operand:V2DI 1 "register_operand"))
+   (match_operand:QI 2 "register_operand")]
+  "TARGET_AVX512VL"
+{
+  operands[0] = adjust_address_nv (operands[0], V2QImode, 0);
+  emit_insn (gen_avx512vl_<code>v2div2qi2_mask_store_1 (operands[0],
+							operands[1],
+							operands[2]));
+  DONE;
+})
 
 (define_insn "*avx512vl_<code><mode>v4qi2_store_1"
   [(set (match_operand:V4QI 0 "memory_operand" "=m")
@@ -14694,7 +14685,7 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn "*avx512vl_<code><mode>v4qi2_mask_store_1"
+(define_insn "avx512vl_<code><mode>v4qi2_mask_store_1"
   [(set (match_operand:V4QI 0 "memory_operand" "=m")
 	(vec_merge:V4QI
 	  (any_truncate:V4QI
@@ -14708,29 +14699,19 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn_and_split "avx512vl_<code><mode>v4qi2_mask_store_2"
-  [(set (match_operand:SI 0 "memory_operand")
-	(subreg:SI
-	  (vec_merge:V4QI
-	    (any_truncate:V4QI
-	      (match_operand:VI4_128_8_256 1 "register_operand"))
-	    (vec_select:V4QI
-	      (subreg:V8QI
-		(vec_concat:V2SI
-		  (match_dup 0)
-		  (const_int 0)) 0)
-	      (parallel [(const_int 0) (const_int 1)
-			 (const_int 2) (const_int 3)]))
-	    (match_operand:QI 2 "register_operand")) 0))]
-  "TARGET_AVX512VL && ix86_pre_reload_split ()"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-	(vec_merge:V4QI
-	  (any_truncate:V4QI (match_dup 1))
-	  (match_dup 0)
-	  (match_dup 2)))]
-  "operands[0] = adjust_address_nv (operands[0], V4QImode, 0);")
+(define_expand "avx512vl_<code><mode>v4qi2_mask_store_2"
+  [(match_operand:SI 0 "memory_operand")
+   (any_truncate:V4QI
+     (match_operand:VI4_128_8_256 1 "register_operand"))
+   (match_operand:QI 2 "register_operand")]
+  "TARGET_AVX512VL"
+{
+  operands[0] = adjust_address_nv (operands[0], V4QImode, 0);
+  emit_insn (gen_avx512vl_<code><mode>v4qi2_mask_store_1 (operands[0],
+							  operands[1],
+							  operands[2]));
+  DONE;
+})
 
 (define_mode_iterator VI2_128_BW_4_256
   [(V8HI "TARGET_AVX512BW") V8SI])
@@ -14802,7 +14783,7 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn "*avx512vl_<code><mode>v8qi2_mask_store_1"
+(define_insn "avx512vl_<code><mode>v8qi2_mask_store_1"
   [(set (match_operand:V8QI 0 "memory_operand" "=m")
 	(vec_merge:V8QI
 	  (any_truncate:V8QI
@@ -14816,31 +14797,19 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn_and_split "avx512vl_<code><mode>v8qi2_mask_store_2"
-  [(set (match_operand:DI 0 "memory_operand")
-	(subreg:DI
-	  (vec_merge:V8QI
-	    (any_truncate:V8QI
-	      (match_operand:VI2_128_BW_4_256 1 "register_operand"))
-	    (vec_select:V8QI
-	      (subreg:V16QI
-		(vec_concat:V2DI
-		  (match_dup 0)
-		  (const_int 0)) 0)
-	      (parallel [(const_int 0) (const_int 1)
-			 (const_int 2) (const_int 3)
-			 (const_int 4) (const_int 5)
-			 (const_int 6) (const_int 7)]))
-	    (match_operand:QI 2 "register_operand")) 0))]
-  "TARGET_AVX512VL && ix86_pre_reload_split ()"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-	(vec_merge:V8QI
-	  (any_truncate:V8QI (match_dup 1))
-	  (match_dup 0)
-	  (match_dup 2)))]
-  "operands[0] = adjust_address_nv (operands[0], V8QImode, 0);")
+(define_expand "avx512vl_<code><mode>v8qi2_mask_store_2"
+  [(match_operand:DI 0 "memory_operand")
+   (any_truncate:V8QI
+     (match_operand:VI2_128_BW_4_256 1 "register_operand"))
+   (match_operand:QI 2 "register_operand")]
+  "TARGET_AVX512VL"
+{
+  operands[0] = adjust_address_nv (operands[0], V8QImode, 0);
+  emit_insn (gen_avx512vl_<code><mode>v8qi2_mask_store_1 (operands[0],
+							  operands[1],
+							  operands[2]));
+  DONE;
+})
 
 (define_mode_iterator PMOV_SRC_MODE_4 [V4DI V2DI V4SI])
 (define_mode_attr pmov_dst_4
@@ -14962,7 +14931,7 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn "*avx512vl_<code><mode>v4hi2_mask_store_1"
+(define_insn "avx512vl_<code><mode>v4hi2_mask_store_1"
   [(set (match_operand:V4HI 0 "memory_operand" "=m")
 	(vec_merge:V4HI
 	  (any_truncate:V4HI
@@ -14980,30 +14949,19 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn_and_split "avx512vl_<code><mode>v4hi2_mask_store_2"
-  [(set (match_operand:DI 0 "memory_operand")
-	(subreg:DI
-	  (vec_merge:V4HI
-	    (any_truncate:V4HI
-	      (match_operand:VI4_128_8_256 1 "register_operand"))
-	    (vec_select:V4HI
-	      (subreg:V8HI
-		(vec_concat:V2DI
-		  (match_dup 0)
-		  (const_int 0)) 0)
-	      (parallel [(const_int 0) (const_int 1)
-			 (const_int 2) (const_int 3)]))
-	    (match_operand:QI 2 "register_operand")) 0))]
-  "TARGET_AVX512VL && ix86_pre_reload_split ()"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-	(vec_merge:V4HI
-	  (any_truncate:V4HI (match_dup 1))
-	  (match_dup 0)
-	  (match_dup 2)))]
-  "operands[0] = adjust_address_nv (operands[0], V4HImode, 0);")
-
+(define_expand "avx512vl_<code><mode>v4hi2_mask_store_2"
+  [(match_operand:DI 0 "memory_operand")
+   (any_truncate:V4HI
+     (match_operand:VI4_128_8_256 1 "register_operand"))
+   (match_operand:QI 2 "register_operand")]
+  "TARGET_AVX512VL"
+{
+  operands[0] = adjust_address_nv (operands[0], V4HImode, 0);
+  emit_insn (gen_avx512vl_<code><mode>v4hi2_mask_store_1 (operands[0],
+							  operands[1],
+							  operands[2]));
+  DONE;
+})
 
 (define_insn "*avx512vl_<code>v2div2hi2_store_1"
   [(set (match_operand:V2HI 0 "memory_operand" "=m")
@@ -15064,7 +15022,7 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn "*avx512vl_<code>v2div2hi2_mask_store_1"
+(define_insn "avx512vl_<code>v2div2hi2_mask_store_1"
   [(set (match_operand:V2HI 0 "memory_operand" "=m")
 	(vec_merge:V2HI
 	  (any_truncate:V2HI
@@ -15078,28 +15036,19 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn_and_split "avx512vl_<code>v2div2hi2_mask_store_2"
-  [(set (match_operand:SI 0 "memory_operand")
-	(subreg:SI
-	  (vec_merge:V2HI
-	    (any_truncate:V2HI
-	      (match_operand:V2DI 1 "register_operand"))
-	    (vec_select:V2HI
-	      (subreg:V4HI
-		(vec_concat:V2SI
-		  (match_dup 0)
-		  (const_int 0)) 0)
-	      (parallel [(const_int 0) (const_int 1)]))
-	    (match_operand:QI 2 "register_operand")) 0))]
-  "TARGET_AVX512VL && ix86_pre_reload_split ()"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-	(vec_merge:V2HI
-	  (any_truncate:V2HI (match_dup 1))
-	  (match_dup 0)
-	  (match_dup 2)))]
-  "operands[0] = adjust_address_nv (operands[0], V2HImode, 0);")
+(define_expand "avx512vl_<code>v2div2hi2_mask_store_2"
+  [(match_operand:SI 0 "memory_operand")
+   (any_truncate:V2HI
+    (match_operand:V2DI 1 "register_operand"))
+   (match_operand:QI 2 "register_operand")]
+  "TARGET_AVX512VL"
+{
+  operands[0] = adjust_address_nv (operands[0], V2HImode, 0);
+  emit_insn (gen_avx512vl_<code>v2div2hi2_mask_store_1 (operands[0],
+							operands[1],
+							operands[2]));
+  DONE;
+})
 
 (define_expand "truncv2div2si2"
   [(set (match_operand:V2SI 0 "register_operand")
@@ -15207,7 +15156,7 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn "*avx512vl_<code>v2div2si2_mask_store_1"
+(define_insn "avx512vl_<code>v2div2si2_mask_store_1"
   [(set (match_operand:V2SI 0 "memory_operand" "=m")
 	(vec_merge:V2SI
 	  (any_truncate:V2SI
@@ -15221,28 +15170,19 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn_and_split "avx512vl_<code>v2div2si2_mask_store_2"
-  [(set (match_operand:DI 0 "memory_operand")
-	(subreg:DI
-	  (vec_merge:V2SI
-	    (any_truncate:V2SI
-	      (match_operand:V2DI 1 "register_operand"))
-	    (vec_select:V2SI
-	      (subreg:V4SI
-		(vec_concat:V2DI
-		  (match_dup 0)
-		  (const_int 0)) 0)
-	      (parallel [(const_int 0) (const_int 1)]))
-	    (match_operand:QI 2 "register_operand")) 0))]
-  "TARGET_AVX512VL && ix86_pre_reload_split ()"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-  	(vec_merge:V2SI
-	  (any_truncate:V2SI (match_dup 1))
-	  (match_dup 0)
-	  (match_dup 2)))]
-  "operands[0] = adjust_address_nv (operands[0], V2SImode, 0);")
+(define_expand "avx512vl_<code>v2div2si2_mask_store_2"
+  [(match_operand:DI 0 "memory_operand")
+   (any_truncate:V2SI
+    (match_operand:V2DI 1 "register_operand"))
+   (match_operand:QI 2 "register_operand")]
+  "TARGET_AVX512VL"
+{
+  operands[0] = adjust_address_nv (operands[0], V2SImode, 0);
+  emit_insn (gen_avx512vl_<code>v2div2si2_mask_store_1 (operands[0],
+							operands[1],
+							operands[2]));
+  DONE;
+})
 
 (define_expand "truncv8div8qi2"
   [(set (match_operand:V8QI 0 "register_operand")
@@ -15341,7 +15281,7 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn "*avx512f_<code>v8div16qi2_mask_store_1"
+(define_insn "avx512f_<code>v8div16qi2_mask_store_1"
   [(set (match_operand:V8QI 0 "memory_operand" "=m")
 	(vec_merge:V8QI
 	  (any_truncate:V8QI
@@ -15355,31 +15295,19 @@
    (set_attr "prefix" "evex")
    (set_attr "mode" "TI")])
 
-(define_insn_and_split "avx512f_<code>v8div16qi2_mask_store_2"
-  [(set (match_operand:DI 0 "memory_operand")
-	(subreg:DI
-	  (vec_merge:V8QI
-	  (any_truncate:V8QI
-	    (match_operand:V8DI 1 "register_operand"))
-	  (vec_select:V8QI
-	    (subreg:V16QI
-	      (vec_concat:V2DI
-		(match_dup 0)
-		(const_int 0)) 0)
-	    (parallel [(const_int 0) (const_int 1)
-		       (const_int 2) (const_int 3)
-		       (const_int 4) (const_int 5)
-		       (const_int 6) (const_int 7)]))
-	  (match_operand:QI 2 "register_operand")) 0))]
-  "TARGET_AVX512F && TARGET_EVEX512 && ix86_pre_reload_split ()"
-  "#"
-  "&& 1"
-  [(set (match_dup 0)
-	(vec_merge:V8QI
-	  (any_truncate:V8QI (match_dup 1))
-	  (match_dup 0)
-	  (match_dup 2)))]
-  "operands[0] = adjust_address_nv (operands[0], V8QImode, 0);")
+(define_expand "avx512f_<code>v8div16qi2_mask_store_2"
+  [(match_operand:DI 0 "memory_operand")
+   (any_truncate:V8QI
+    (match_operand:V8DI 1 "register_operand"))
+   (match_operand:QI 2 "register_operand")]
+  "TARGET_AVX512F && TARGET_EVEX512"
+{
+  operands[0] = adjust_address_nv (operands[0], V8QImode, 0);
+  emit_insn (gen_avx512f_<code>v8div16qi2_mask_store_1 (operands[0],
+							operands[1],
+							operands[2]));
+  DONE;
+})
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
diff --git a/gcc/testsuite/gcc.target/i386/pr117318.c b/gcc/testsuite/gcc.target/i386/pr117318.c
new file mode 100644
index 00000000000..3d316ad04cf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117318.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-mavx512f -O" } */
+
+typedef __attribute__((__vector_size__ (64))) long long V;
+unsigned long long x;
+
+unsigned long long
+foo()
+{
+  __builtin_ia32_pmovusqb512mem_mask (&x, (V){8000000000000000}, 255);
+  return x;
+}

commit 434483ac32a08d1f3608c26fe2da302f0e09d6a2
Author: Alex Coplan <alex.coplan@arm.com>
Date:   Wed Oct 30 13:46:12 2024 +0000

    aarch64: Assume alias conflict if common address reg changes [PR116783]
    
    As the PR shows, pair fusion was tricking memory_modified_in_insn_p into
    returning false when a common base register (in this case, x1) was
    modified between the mem and the store insn.  This lead to wrong code as
    the accesses really did alias.
    
    To avoid this sort of problem, this patch avoids invoking RTL alias
    analysis altogether (and assume an alias conflict) if the two insns to
    be compared share a common address register R, and the insns see different
    definitions of R (i.e. it was modified in between).
    
    This is a backport (but not a straight cherry pick) of
    r15-4518-gc0e54ce1999ccf2241f74c5188b11b92e5aedc1f.
    
    gcc/ChangeLog:
    
            PR rtl-optimization/116783
            * config/aarch64/aarch64-ldp-fusion.cc
            (def_walker::cand_addr_uses): New.
            (def_walker::def_walker): Add parameter for candidate address
            uses.
            (def_walker::alias_conflict_p): Declare.
            (def_walker::addr_reg_conflict_p): New.
            (def_walker::conflict_p): New.
            (store_walker::store_walker): Add parameter for candidate
            address uses and pass to base ctor.
            (store_walker::conflict_p): Rename to ...
            (store_walker::alias_conflict_p): ... this.
            (load_walker::load_walker): Add parameter for candidate
            address uses and pass to base ctor.
            (load_walker::conflict_p): Rename to ...
            (load_walker::alias_conflict_p): ... this.
            (ldp_bb_info::try_fuse_pair): Collect address register
            uses for candidate insns and pass down to alias walkers.
    
    gcc/testsuite/ChangeLog:
    
            PR rtl-optimization/116783
            * g++.dg/torture/pr116783.C: New test.

diff --git a/gcc/config/aarch64/aarch64-ldp-fusion.cc b/gcc/config/aarch64/aarch64-ldp-fusion.cc
index 1fc25e389cf..f32d30d54c5 100644
--- a/gcc/config/aarch64/aarch64-ldp-fusion.cc
+++ b/gcc/config/aarch64/aarch64-ldp-fusion.cc
@@ -2173,11 +2173,80 @@ protected:
 
   def_iter_t def_iter;
   insn_info *limit;
-  def_walker (def_info *def, insn_info *limit) :
-    def_iter (def), limit (limit) {}
+
+  // Array of register uses from the candidate insn which occur in MEMs.
+  use_array cand_addr_uses;
+
+  def_walker (def_info *def, insn_info *limit, use_array addr_uses) :
+    def_iter (def), limit (limit), cand_addr_uses (addr_uses) {}
 
   virtual bool iter_valid () const { return *def_iter; }
 
+  // Implemented in {load,store}_walker.
+  virtual bool alias_conflict_p (int &budget) const = 0;
+
+  // Return true if the current (walking) INSN () uses a register R inside a
+  // MEM, where R is also used inside a MEM by the (static) candidate insn, and
+  // those uses see different definitions of that register.  In this case we
+  // can't rely on RTL alias analysis, and for now we conservatively assume that
+  // there is an alias conflict.  See PR116783.
+  bool addr_reg_conflict_p () const
+  {
+    use_array curr_insn_uses = insn ()->uses ();
+    auto cand_use_iter = cand_addr_uses.begin ();
+    auto insn_use_iter = curr_insn_uses.begin ();
+    while (cand_use_iter != cand_addr_uses.end ()
+	   && insn_use_iter != curr_insn_uses.end ())
+      {
+	auto insn_use = *insn_use_iter;
+	auto cand_use = *cand_use_iter;
+	if (insn_use->regno () > cand_use->regno ())
+	  cand_use_iter++;
+	else if (insn_use->regno () < cand_use->regno ())
+	  insn_use_iter++;
+	else
+	  {
+	    // As it stands I believe the alias code (memory_modified_in_insn_p)
+	    // doesn't look at insn notes such as REG_EQU{IV,AL}, so it should
+	    // be safe to skip over uses that only occur in notes.
+	    if (insn_use->includes_address_uses ()
+		&& !insn_use->only_occurs_in_notes ()
+		&& insn_use->def () != cand_use->def ())
+	      {
+		if (dump_file)
+		  {
+		    fprintf (dump_file,
+			     "assuming aliasing of cand i%d and i%d:\n"
+			     "-> insns see different defs of common addr reg r%u\n"
+			     "-> ",
+			     cand_use->insn ()->uid (), insn_use->insn ()->uid (),
+			     insn_use->regno ());
+
+		    // Note that while the following sequence could be made more
+		    // concise by eliding pp_string calls into the pp_printf
+		    // calls, doing so triggers -Wformat-diag.
+		    pretty_printer pp;
+		    pp_string (&pp, "[");
+		    pp_access (&pp, cand_use, 0);
+		    pp_string (&pp, "] in ");
+		    pp_printf (&pp, "i%d", cand_use->insn ()->uid ());
+		    pp_string (&pp, " vs [");
+		    pp_access (&pp, insn_use, 0);
+		    pp_string (&pp, "] in ");
+		    pp_printf (&pp, "i%d", insn_use->insn ()->uid ());
+		    fprintf (dump_file, "%s\n", pp_formatted_text (&pp));
+		  }
+		return true;
+	      }
+
+	    cand_use_iter++;
+	    insn_use_iter++;
+	  }
+      }
+
+    return false;
+  }
+
 public:
   insn_info *insn () const override { return (*def_iter)->insn (); }
   void advance () override { def_iter++; }
@@ -2191,6 +2260,14 @@ public:
     else
       return *(insn ()) < *limit;
   }
+
+  bool conflict_p (int &budget) const override final
+  {
+    if (addr_reg_conflict_p ())
+      return true;
+
+    return alias_conflict_p (budget);
+  }
 };
 
 // alias_walker that iterates over stores.
@@ -2201,12 +2278,14 @@ class store_walker : public def_walker<reverse>
   InsnPredicate tombstone_p;
 
 public:
-  store_walker (def_info *mem_def, rtx mem, insn_info *limit_insn,
+  store_walker (def_info *mem_def, rtx mem,
+		use_array addr_uses,
+		insn_info *limit_insn,
 		InsnPredicate tombstone_fn) :
-    def_walker<reverse> (mem_def, limit_insn),
+    def_walker<reverse> (mem_def, limit_insn, addr_uses),
     cand_mem (mem), tombstone_p (tombstone_fn) {}
 
-  bool conflict_p (int &budget) const override final
+  bool alias_conflict_p (int &budget) const override final
   {
     if (tombstone_p (this->insn ()))
       return false;
@@ -2243,13 +2322,14 @@ public:
     return (*use_iter)->insn ();
   }
 
-  bool conflict_p (int &budget) const override final
+  bool alias_conflict_p (int &budget) const override final
   {
     return load_modified_by_store_p (insn (), cand_store, budget);
   }
 
-  load_walker (def_info *def, insn_info *store, insn_info *limit_insn)
-    : Base (def, limit_insn),
+  load_walker (def_info *def, insn_info *store, use_array addr_uses,
+	       insn_info *limit_insn)
+    : Base (def, limit_insn, addr_uses),
       use_iter (Base::start_use_chain (this->def_iter)),
       cand_store (store) {}
 };
@@ -2628,11 +2708,32 @@ ldp_bb_info::try_fuse_pair (bool load_p, unsigned access_size,
 	   && bitmap_bit_p (&m_tombstone_bitmap, insn->uid ());
   };
 
+  auto_vec<access_info *, 2> addr_use_vec[2];
+  use_array addr_uses[2];
+
+  // Collect the lists of register uses that occur in the candidate MEMs.
+  for (int i = 0; i < 2; i++)
+    {
+      // N.B. it's safe for us to ignore uses that only occur in notes
+      // here (e.g. in a REG_EQUIV expression) since we only pass the
+      // MEM down to the alias machinery, so it can't see any insn-level
+      // notes.
+      for (auto use : insns[i]->uses ())
+	if (use->is_reg ()
+	    && use->includes_address_uses ()
+	    && !use->only_occurs_in_notes ())
+	  addr_use_vec[i].safe_push (use);
+
+      addr_uses[i] = use_array (addr_use_vec[i]);
+    }
+
   store_walker<false, decltype(tombstone_p)>
-    forward_store_walker (mem_defs[0], cand_mems[0], insns[1], tombstone_p);
+    forward_store_walker (mem_defs[0], cand_mems[0], addr_uses[0], insns[1],
+			  tombstone_p);
 
   store_walker<true, decltype(tombstone_p)>
-    backward_store_walker (mem_defs[1], cand_mems[1], insns[0], tombstone_p);
+    backward_store_walker (mem_defs[1], cand_mems[1], addr_uses[1], insns[0],
+			   tombstone_p);
 
   alias_walker *walkers[4] = {};
   if (mem_defs[0])
@@ -2646,8 +2747,10 @@ ldp_bb_info::try_fuse_pair (bool load_p, unsigned access_size,
     {
       // We want to find any loads hanging off the first store.
       mem_defs[0] = memory_access (insns[0]->defs ());
-      load_walker<false> forward_load_walker (mem_defs[0], insns[0], insns[1]);
-      load_walker<true> backward_load_walker (mem_defs[1], insns[1], insns[0]);
+      load_walker<false> forward_load_walker (mem_defs[0], insns[0],
+					      addr_uses[0], insns[1]);
+      load_walker<true> backward_load_walker (mem_defs[1], insns[1],
+					      addr_uses[1], insns[0]);
       walkers[2] = &forward_load_walker;
       walkers[3] = &backward_load_walker;
       do_alias_analysis (alias_hazards, walkers, load_p);
diff --git a/gcc/testsuite/g++.dg/torture/pr116783.C b/gcc/testsuite/g++.dg/torture/pr116783.C
new file mode 100644
index 00000000000..53dc67f942f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr116783.C
@@ -0,0 +1,98 @@
+// { dg-do run }
+// { dg-additional-options "-fstack-protector-strong" }
+// { dg-require-effective-target fstack_protector }
+// { dg-require-effective-target c++11 }
+
+struct Private {
+  char data[24]{};
+  long moved_from : 4;
+  Private() : moved_from (0) {}
+};
+
+struct QVariant {
+  __attribute__((noipa))
+  ~QVariant() {
+    if (!d.moved_from && d.data[0] != 42)
+      __builtin_abort ();
+  }
+  __attribute__((noipa))
+  QVariant() {
+    d.data[0] = 42;
+  }
+  __attribute__((noipa))
+  QVariant(QVariant &other) : d(other.d) {}
+  QVariant(QVariant &&other) : d(other.d) {
+    other.d = Private();
+    other.d.moved_from = true;
+  }
+  QVariant &operator=(QVariant);
+  Private d;
+};
+
+QVariant id (QVariant v) { return v; }
+QVariant &QVariant::operator=(QVariant other)
+{
+  id(other);
+  return *this;
+}
+
+template <typename T> struct QList {
+  T d;
+  struct const_iterator {
+    T *ptr;
+    T &operator*() { return *ptr; }
+    __attribute__((noipa))
+    bool operator!=(const_iterator other) { return ptr != other.ptr; }
+    void operator++() { ptr++; }
+  };
+  __attribute__((noipa))
+  T at() { return d; }
+  const_iterator begin() { return const_iterator { &d }; }
+  const_iterator end() { return const_iterator { &d }; }
+};
+struct QArrayDataPointer {
+  int d;
+  int *ptr;
+  long size;
+};
+
+QArrayDataPointer null_qadp;
+
+struct QString {
+  __attribute__((noipa))
+  QList<QString> split() const {
+    return QList<QString> {null_qadp};
+  }
+  __attribute__((noipa))
+  friend bool operator==(QString, QString) { return true; }
+
+  __attribute__((noipa))
+  QString(QArrayDataPointer dp) : d(dp) {}
+  QArrayDataPointer d;
+};
+
+__attribute__((noipa))
+QString as_qstr (QVariant *v)
+{
+  return QString (null_qadp);
+}
+
+int *getNode(const QString &tagContent) {
+  auto expr = tagContent.split();
+  auto blockName = expr.at();
+  auto loadedBlocksVariant = QVariant ();
+  QList<QVariant> blockVariantList;
+  for (auto &item : blockVariantList) {
+    auto blockNodeName = as_qstr (&item);
+    blockNodeName == blockName;
+    QString q(null_qadp);
+  }
+  loadedBlocksVariant = QVariant();
+  return nullptr;
+}
+
+int main(void)
+{
+  QString foo(null_qadp);
+  getNode(foo);
+}

commit 771873f0a95162236ab6a237db1b142a39b2f9b9
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Wed Oct 30 16:11:40 2024 -0400

    testsuite, jit: fix test-error-pr63969-missing-driver.c
    
    jit.dg/test-error-pr63969-missing-driver.c tries to break PATH and
    verify that an error is generated when using an external driver.
    
    However it does this by unsetting PATH, and so the test could
    accidentally find the driver if the system supplies a default and the
    driver happens to be installed in that path (reported as rhbz#2318021).
    
    Fix the test by instead setting PATH to a bogus value.
    
    gcc/testsuite/ChangeLog:
            * jit.dg/test-error-pr63969-missing-driver.c (create_code): When
            breaking PATH, use setenv with a bogus value, rather than
            unsetenv, in case the system uses a default path that contains
            the driver binary.
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>
    (cherry picked from commit f8dcb559e615dbb4557a23363f9532a3544a7241)
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>

diff --git a/gcc/testsuite/jit.dg/test-error-pr63969-missing-driver.c b/gcc/testsuite/jit.dg/test-error-pr63969-missing-driver.c
index 733522310de..152e236443c 100644
--- a/gcc/testsuite/jit.dg/test-error-pr63969-missing-driver.c
+++ b/gcc/testsuite/jit.dg/test-error-pr63969-missing-driver.c
@@ -28,7 +28,7 @@ create_code (gcc_jit_context *ctxt, void *user_data)
   /* Break PATH, so that the driver can't be found
      by gcc::jit::playback::context::compile ()
      within gcc_jit_context_compile.  */
-  unsetenv ("PATH");
+  setenv ("PATH", "/this/is/not/a/valid/path", 1);
 }
 
 void

commit 70f911bf547326a7b9ae6e116c65c22ce0cd0e65
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Wed Oct 30 16:11:40 2024 -0400

    jit: reset state in varasm.cc [PR117275]
    
    PR jit/117275 reports various jit test failures seen on
    powerpc64le-unknown-linux-gnu due to hitting this assertion
    in varasm.cc on the 2nd compilation in a process:
    
    #2  0x00007ffff63e67d0 in assemble_external_libcall (fun=0x7ffff2a4b1d8)
        at ../../src/gcc/varasm.cc:2650
    2650          gcc_assert (!pending_assemble_externals_processed);
    (gdb) p pending_assemble_externals_processed
    $1 = true
    
    We're not properly resetting state in varasm.cc after a compile
    for libgccjit.
    
    Fixed thusly.
    
    gcc/ChangeLog:
            PR jit/117275
            * toplev.cc (toplev::finalize): Call varasm_cc_finalize.
            * varasm.cc (varasm_cc_finalize): New.
            * varasm.h (varasm_cc_finalize): New decl.
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>
    (cherry picked from commit 779c0390e3b57d1eebd41bbfe43d1f329c91de6c)
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>

diff --git a/gcc/toplev.cc b/gcc/toplev.cc
index 2cd4096558e..01c72a5e3af 100644
--- a/gcc/toplev.cc
+++ b/gcc/toplev.cc
@@ -2374,6 +2374,7 @@ toplev::finalize (void)
   ira_costs_cc_finalize ();
   tree_cc_finalize ();
   reginfo_cc_finalize ();
+  varasm_cc_finalize ();
 
   /* save_decoded_options uses opts_obstack, so these must
      be cleaned up together.  */
diff --git a/gcc/varasm.cc b/gcc/varasm.cc
index b67a0b524db..75f7694f03d 100644
--- a/gcc/varasm.cc
+++ b/gcc/varasm.cc
@@ -8709,4 +8709,57 @@ handle_vtv_comdat_section (section *sect, const_tree decl ATTRIBUTE_UNUSED)
   switch_to_comdat_section(sect, DECL_NAME (decl));
 }
 
+void
+varasm_cc_finalize ()
+{
+  first_global_object_name = nullptr;
+  weak_global_object_name = nullptr;
+
+  const_labelno = 0;
+  size_directive_output = 0;
+
+  last_assemble_variable_decl = NULL_TREE;
+  first_function_block_is_cold = false;
+  saw_no_split_stack = false;
+  text_section = nullptr;
+  data_section = nullptr;
+  readonly_data_section = nullptr;
+  sdata_section = nullptr;
+  ctors_section = nullptr;
+  dtors_section = nullptr;
+  bss_section = nullptr;
+  sbss_section = nullptr;
+  tls_comm_section = nullptr;
+  comm_section = nullptr;
+  lcomm_section = nullptr;
+  bss_noswitch_section = nullptr;
+  exception_section = nullptr;
+  eh_frame_section = nullptr;
+  in_section = nullptr;
+  in_cold_section_p = false;
+  cold_function_name = NULL_TREE;
+  unnamed_sections = nullptr;
+  section_htab = nullptr;
+  object_block_htab = nullptr;
+  anchor_labelno = 0;
+  shared_constant_pool = nullptr;
+  pending_assemble_externals = NULL_TREE;
+  pending_libcall_symbols = nullptr;
+
+#ifdef ASM_OUTPUT_EXTERNAL
+  pending_assemble_externals_processed = false;
+  pending_assemble_externals_set = nullptr;
+#endif
+
+  weak_decls = NULL_TREE;
+  initial_trampoline = nullptr;
+  const_desc_htab = nullptr;
+  weakref_targets = NULL_TREE;
+  alias_pairs = nullptr;
+  tm_clone_hash = nullptr;
+  trampolines_created = 0;
+  elf_init_array_section = nullptr;
+  elf_fini_array_section = nullptr;
+}
+
 #include "gt-varasm.h"
diff --git a/gcc/varasm.h b/gcc/varasm.h
index d9311dc370b..f00ac7f3e5c 100644
--- a/gcc/varasm.h
+++ b/gcc/varasm.h
@@ -81,4 +81,6 @@ extern rtx assemble_trampoline_template (void);
 
 extern void switch_to_comdat_section (section *, tree);
 
+extern void varasm_cc_finalize ();
+
 #endif  // GCC_VARASM_H

commit acc0b9ff9cf1bcfed63812ca223251485b6471b7
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Wed Oct 30 16:11:41 2024 -0400

    jit: fix leak of pending_assemble_externals_set [PR117275]
    
    My recent r15-4580-g779c0390e3b57d fix for resetting state in
    varasm.cc introduced some noise to "make selftest-valgrind" and,
    presumably, a memory leak in libgccjit:
    
    ==2462086== 160 (56 direct, 104 indirect) bytes in 1 blocks are definitely lost in loss record 248 of 352
    ==2462086==    at 0x5270E7D: operator new(unsigned long) (vg_replace_malloc.c:342)
    ==2462086==    by 0x1D1EB89: init_varasm_once() (varasm.cc:6806)
    ==2462086==    by 0x181C845: backend_init() (toplev.cc:1826)
    ==2462086==    by 0x181D41A: do_compile() (toplev.cc:2193)
    ==2462086==    by 0x181D99C: toplev::main(int, char**) (toplev.cc:2371)
    ==2462086==    by 0x378391D: main (main.cc:39)
    
    Fixed thusly.
    
    gcc/ChangeLog:
            PR jit/117275
            * varasm.cc (process_pending_assemble_externals): Reset
            pending_assemble_externals_set to nullptr after deleting it.
            (varasm_cc_finalize): Delete pending_assemble_externals_set.
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>
    (cherry picked from commit 7f41203f08b9948c1c636dc9d66571121c6c7793)
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>

diff --git a/gcc/varasm.cc b/gcc/varasm.cc
index 75f7694f03d..0a0da8c142e 100644
--- a/gcc/varasm.cc
+++ b/gcc/varasm.cc
@@ -2567,6 +2567,7 @@ process_pending_assemble_externals (void)
   pending_assemble_externals_processed = true;
   pending_libcall_symbols = NULL_RTX;
   delete pending_assemble_externals_set;
+  pending_assemble_externals_set = nullptr;
 #endif
 }
 
@@ -8748,6 +8749,7 @@ varasm_cc_finalize ()
 
 #ifdef ASM_OUTPUT_EXTERNAL
   pending_assemble_externals_processed = false;
+  delete pending_assemble_externals_set;
   pending_assemble_externals_set = nullptr;
 #endif
 

commit 0e132a3b9510de32f4ad9a90cf9a1a482a20c95a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Oct 31 00:22:52 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 831611f878a..011b5c1b21f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,80 @@
+2024-10-30  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-10-29  David Malcolm  <dmalcolm@redhat.com>
+
+	PR jit/117275
+	* varasm.cc (process_pending_assemble_externals): Reset
+	pending_assemble_externals_set to nullptr after deleting it.
+	(varasm_cc_finalize): Delete pending_assemble_externals_set.
+
+2024-10-30  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-10-23  David Malcolm  <dmalcolm@redhat.com>
+
+	PR jit/117275
+	* toplev.cc (toplev::finalize): Call varasm_cc_finalize.
+	* varasm.cc (varasm_cc_finalize): New.
+	* varasm.h (varasm_cc_finalize): New decl.
+
+2024-10-30  Alex Coplan  <alex.coplan@arm.com>
+
+	PR rtl-optimization/116783
+	* config/aarch64/aarch64-ldp-fusion.cc
+	(def_walker::cand_addr_uses): New.
+	(def_walker::def_walker): Add parameter for candidate address
+	uses.
+	(def_walker::alias_conflict_p): Declare.
+	(def_walker::addr_reg_conflict_p): New.
+	(def_walker::conflict_p): New.
+	(store_walker::store_walker): Add parameter for candidate
+	address uses and pass to base ctor.
+	(store_walker::conflict_p): Rename to ...
+	(store_walker::alias_conflict_p): ... this.
+	(load_walker::load_walker): Add parameter for candidate
+	address uses and pass to base ctor.
+	(load_walker::conflict_p): Rename to ...
+	(load_walker::alias_conflict_p): ... this.
+	(ldp_bb_info::try_fuse_pair): Collect address register
+	uses for candidate insns and pass down to alias walkers.
+
+2024-10-30  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-10-30  liuhongt  <hongtao.liu@intel.com>
+
+	PR target/117318
+	* config/i386/sse.md (*avx512vl_<code>v2div2qi2_mask_store_1):
+	Rename to ..
+	(avx512vl_<code>v2div2qi2_mask_store_1): .. this.
+	(avx512vl_<code>v2div2qi2_mask_store_2): Change to
+	define_expand.
+	(*avx512vl_<code><mode>v4qi2_mask_store_1): Rename to ..
+	(avx512vl_<code><mode>v4qi2_mask_store_1): .. this.
+	(avx512vl_<code><mode>v4qi2_mask_store_2): Change to
+	define_expand.
+	(*avx512vl_<code><mode>v8qi2_mask_store_1): Rename to ..
+	(avx512vl_<code><mode>v8qi2_mask_store_1): .. this.
+	(avx512vl_<code><mode>v8qi2_mask_store_2): Change to
+	define_expand.
+	(*avx512vl_<code><mode>v4hi2_mask_store_1): Rename to ..
+	(avx512vl_<code><mode>v4hi2_mask_store_1): .. this.
+	(avx512vl_<code><mode>v4hi2_mask_store_2): Change to
+	define_expand.
+	(*avx512vl_<code>v2div2hi2_mask_store_1): Rename to ..
+	(avx512vl_<code>v2div2hi2_mask_store_1): .. this.
+	(avx512vl_<code>v2div2hi2_mask_store_2): Change to
+	define_expand.
+	(*avx512vl_<code>v2div2si2_mask_store_1): Rename to ..
+	(avx512vl_<code>v2div2si2_mask_store_1): .. this.
+	(avx512vl_<code>v2div2si2_mask_store_2): Change to
+	define_expand.
+	(*avx512f_<code>v8div16qi2_mask_store_1): Rename to ..
+	(avx512f_<code>v8div16qi2_mask_store_1): .. this.
+	(avx512f_<code>v8div16qi2_mask_store_2): Change to
+	define_expand.
+
 2024-10-29  Eric Botcazou  <ebotcazou@adacore.com>
 
 	PR rtl-optimization/117327
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index d334905e040..bf9a843b29c 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241030
+20241031
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 84b10e1306e..80833e9394f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,25 @@
+2024-10-30  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-10-15  David Malcolm  <dmalcolm@redhat.com>
+
+	* jit.dg/test-error-pr63969-missing-driver.c (create_code): When
+	breaking PATH, use setenv with a bogus value, rather than
+	unsetenv, in case the system uses a default path that contains
+	the driver binary.
+
+2024-10-30  Alex Coplan  <alex.coplan@arm.com>
+
+	PR rtl-optimization/116783
+	* g++.dg/torture/pr116783.C: New test.
+
+2024-10-30  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-10-30  liuhongt  <hongtao.liu@intel.com>
+
+	* gcc.target/i386/pr117318.c: New test.
+
 2024-10-29  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* gcc.c-torture/execute/20241029-1.c: New test.

commit 4e174ac8ee96a484be97313a90d2e831e978e27e
Author: Yangyu Chen <cyy@cyyself.name>
Date:   Thu Oct 31 19:52:45 2024 +0000

    Fix function multiversioning dispatcher link error with LTO
    
    We forgot to apply DECL_EXTERNAL to __init_cpu_features_resolver decl. When
    building with LTO, the linker cannot find the
    __init_cpu_features_resolver.lto_priv* symbol, causing the link error.
    
    This patch gets this fixed by adding DECL_EXTERNAL to the decl. To avoid used
    but never defined warning for this symbol, we also mark TREE_PUBLIC to the decl.
    We should also mark the decl having hidden visibility. And fix the attribute in
    the same way for __aarch64_cpu_features identifier.
    
    Minimal steps to reproduce the bug:
    
    echo '__attribute__((target_clones("default", "aes"))) void func1() { }' > 1.c
    echo '__attribute__((target_clones("default", "aes"))) void func2() { }' > 2.c
    echo 'void func1();void func2();int main(){func1();func2();return 0;}' > main.c
    gcc -flto -c 1.c 2.c
    gcc -flto main.c 1.o 2.o
    
    Fixes: 0cfde688e213 ("[aarch64] Add function multiversioning support")
    Signed-off-by: Yangyu Chen <cyy@cyyself.name>
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64.cc (dispatch_function_versions): Adding
            DECL_EXTERNAL, TREE_PUBLIC and hidden DECL_VISIBILITY to
            __init_cpu_features_resolver and __aarch64_cpu_features.
    
    (cherry picked from commit 875279ff3ee3b4135401286b8378087a24fd0f8d)

diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index e9bca8bbd08..33a46c9eabe 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -20283,6 +20283,10 @@ dispatch_function_versions (tree dispatch_decl,
   tree init_fn_id = get_identifier ("__init_cpu_features_resolver");
   tree init_fn_decl = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL,
 				  init_fn_id, init_fn_type);
+  DECL_EXTERNAL (init_fn_decl) = 1;
+  TREE_PUBLIC (init_fn_decl) = 1;
+  DECL_VISIBILITY (init_fn_decl) = VISIBILITY_HIDDEN;
+  DECL_VISIBILITY_SPECIFIED (init_fn_decl) = 1;
   tree arg1 = DECL_ARGUMENTS (dispatch_decl);
   tree arg2 = TREE_CHAIN (arg1);
   ifunc_cpu_init_stmt = gimple_build_call (init_fn_decl, 2, arg1, arg2);
@@ -20302,6 +20306,9 @@ dispatch_function_versions (tree dispatch_decl,
 				get_identifier ("__aarch64_cpu_features"),
 				global_type);
   DECL_EXTERNAL (global_var) = 1;
+  TREE_PUBLIC (global_var) = 1;
+  DECL_VISIBILITY (global_var) = VISIBILITY_HIDDEN;
+  DECL_VISIBILITY_SPECIFIED (global_var) = 1;
   tree mask_var = create_tmp_var (long_long_unsigned_type_node);
 
   tree component_expr = build3 (COMPONENT_REF, long_long_unsigned_type_node,

commit 8ac2f3ce09c23fda8cc4657805648a07a210a885
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Thu Oct 31 19:52:46 2024 +0000

    aarch64: Forbid F64MM permutes in streaming mode
    
    The current code was based on an early version of the SME spec,
    which allowed the .Q forms of TRN1, TRN2, UZP1, UZP2, ZIP1, and ZIP2
    to be used in streaming mode.  We should now forbid them instead;
    see https://developer.arm.com/documentation/ddi0602/2024-09/SVE-Instructions/TRN1--TRN2--vectors---Interleave-even-or-odd-elements-from-two-vectors-?lang=en
    and the corresponding entries for the others.
    
    gcc/
            * config/aarch64/aarch64-sve-builtins-base.def (svtrn1q, svtrn2q)
            (svuzp1q, svuzp2q, svzip1q, svzip2q): Require SM_OFF.
    
    gcc/testsuite/
            * g++.target/aarch64/sve/aarch64-ssve.exp: Add tests for trn[12]q,
            uzp[12].c, and zip[12]q.
            * gcc.target/aarch64/sve/acle/asm/trn1q_bf16.c: Skip for
            STREAMING_COMPATIBLE.
            * gcc.target/aarch64/sve/acle/asm/trn1q_f16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn1q_f32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn1q_f64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn1q_s16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn1q_s32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn1q_s64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn1q_s8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn1q_u16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn1q_u32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn1q_u64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn1q_u8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_bf16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_f16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_f32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_f64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_s16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_s32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_s64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_s8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_u16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_u32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_u64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/trn2q_u8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_bf16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_f16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_f32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_f64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_s16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_s32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_s64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_s8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_u16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_u32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_u64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp1q_u8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_bf16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_f16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_f32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_f64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_s16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_s32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_s64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_s8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_u16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_u32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_u64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/uzp2q_u8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_bf16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_f16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_f32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_f64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_s16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_s32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_s64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_s8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_u16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_u32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_u64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip1q_u8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_bf16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_f16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_f32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_f64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_s16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_s32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_s64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_s8.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_u16.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_u32.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_u64.c: Likewise.
            * gcc.target/aarch64/sve/acle/asm/zip2q_u8.c: Likewise.
    
    (cherry picked from commit e8fa15ea01439bccf15ae9b9a4d63ac92586c2c5)

diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.def b/gcc/config/aarch64/aarch64-sve-builtins-base.def
index 65fcba91586..e69ca398658 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-base.def
+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.def
@@ -364,7 +364,11 @@ DEF_SVE_FUNCTION (svusmmla, ternary_uintq_intq, s_signed, none)
 DEF_SVE_FUNCTION (svmmla, mmla, s_float, none)
 #undef REQUIRED_EXTENSIONS
 
-#define REQUIRED_EXTENSIONS AARCH64_FL_SVE | AARCH64_FL_F64MM
+#define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
+			     | AARCH64_FL_F64MM \
+			     | AARCH64_FL_SM_OFF)
+DEF_SVE_FUNCTION (svld1ro, load_replicate, all_data, implicit)
+DEF_SVE_FUNCTION (svmmla, mmla, d_float, none)
 DEF_SVE_FUNCTION (svtrn1q, binary, all_data, none)
 DEF_SVE_FUNCTION (svtrn2q, binary, all_data, none)
 DEF_SVE_FUNCTION (svuzp1q, binary, all_data, none)
@@ -372,10 +376,3 @@ DEF_SVE_FUNCTION (svuzp2q, binary, all_data, none)
 DEF_SVE_FUNCTION (svzip1q, binary, all_data, none)
 DEF_SVE_FUNCTION (svzip2q, binary, all_data, none)
 #undef REQUIRED_EXTENSIONS
-
-#define REQUIRED_EXTENSIONS (AARCH64_FL_SVE \
-			     | AARCH64_FL_F64MM \
-			     | AARCH64_FL_SM_OFF)
-DEF_SVE_FUNCTION (svld1ro, load_replicate, all_data, implicit)
-DEF_SVE_FUNCTION (svmmla, mmla, d_float, none)
-#undef REQUIRED_EXTENSIONS
diff --git a/gcc/testsuite/g++.target/aarch64/sve/aarch64-ssve.exp b/gcc/testsuite/g++.target/aarch64/sve/aarch64-ssve.exp
index 23ba15a4dba..c92a266f4d1 100644
--- a/gcc/testsuite/g++.target/aarch64/sve/aarch64-ssve.exp
+++ b/gcc/testsuite/g++.target/aarch64/sve/aarch64-ssve.exp
@@ -301,7 +301,13 @@ set nonstreaming_only {
     svstnt1w_scatter_offset (pred, u64, 1, u64)
     svstnt1_scatter_offset (pred, u32_ptr, u32, u32)
     svstnt1_scatter_offset (pred, u32, 1, u32)
+    u8 = svtrn1q (u8, u8)
+    u8 = svtrn2q (u8, u8)
     u32 = svmmla (u32, u8, u8)
+    u8 = svuzp1q (u8, u8)
+    u8 = svuzp2q (u8, u8)
+    u8 = svzip1q (u8, u8)
+    u8 = svzip2q (u8, u8)
     s32 = svusmmla (s32, u8, s8)
     svwrffr (pred)
 }
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_bf16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_bf16.c
index f1810da9ec4..a85734a94fb 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_bf16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_bf16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f16.c
index 6420d0f0aca..045a9a75ea6 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f32.c
index 6fb2eecf5d8..286bcdee3a2 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f64.c
index e786a8d049b..abfa5818631 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_f64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s16.c
index 548360719a6..92912aac010 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s32.c
index ccb8319f7ab..0d5a17eb203 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s64.c
index fe8125a8a16..e3142b3c827 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s8.c
index 48040c1ad36..71ef5b0342a 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_s8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u16.c
index 3657f919eed..fef20681594 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u32.c
index cc5ea2878ca..84156895fc4 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u64.c
index 4435b53d03e..61b6483abeb 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u8.c
index 4ebfedbea5f..829c92008e3 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn1q_u8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_bf16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_bf16.c
index 5623b54f035..e01deee6653 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_bf16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_bf16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f16.c
index db219092978..837f3783f35 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f32.c
index 1367a1e0680..11076cd8375 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f64.c
index 54325e705ea..6c849de9cae 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_f64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s16.c
index a0b6412783d..ba97cd7ca08 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s32.c
index 7c128c6effc..671998352e2 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s64.c
index f22222525b9..118469c480e 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s8.c
index bd5243f35ce..d65449f7a6b 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_s8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u16.c
index 8da8563b201..cfd6a2840d0 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u32.c
index 6c0af02da8f..17f172d351e 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u64.c
index 857595cbbf2..2377de48b12 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u8.c
index 1fb85b249f7..d898ee16c77 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/trn2q_u8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_bf16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_bf16.c
index 30a19924167..28097e1dbb6 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_bf16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_bf16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f16.c
index c11e5bdc46b..f238b34e297 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f32.c
index d0ac94543d0..4c01d5fd4c1 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f64.c
index ac2e5c5cf14..59aacca1445 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_f64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s16.c
index aa200b24ea5..057d0d1f1d7 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s32.c
index eb849df74bb..3802e1b19bc 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s64.c
index e1049761caf..ffe8be203f5 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s8.c
index 8aa5921992a..f81e038c554 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_s8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u16.c
index 00ffaab06d6..13db57ee9b9 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u32.c
index cd2e4db26b3..8a12c274054 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u64.c
index 7d8823329a2..6f198158ba1 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u8.c
index 701a1d5751c..0d0d99b8524 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp1q_u8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_bf16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_bf16.c
index bbac53a7acb..d889e3eef4d 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_bf16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_bf16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f16.c
index e19d118fb83..246350849f9 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f32.c
index af7112b150d..257f703fc9e 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f64.c
index 4109b843cc7..c987aae728f 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_f64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s16.c
index 0c6ab25cf99..f9ff09f0364 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s32.c
index 9b914e704a6..d4ad34905a5 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s64.c
index 697e37d7883..6baa8d9592d 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s8.c
index 576262c5d35..60e9467fd95 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_s8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u16.c
index f2debc28fb4..0b4d0212a98 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u32.c
index ad6a4bcc099..bad4270e1c3 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u64.c
index a846aa29590..9414f741ef5 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u8.c
index 163c22659bb..15bf6057d2a 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/uzp2q_u8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_bf16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_bf16.c
index aabf7c0e1b6..ac66ab4f492 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_bf16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_bf16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f16.c
index 1170cc5e721..cf4902af293 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f32.c
index 09666da1b37..ade08097c7a 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f64.c
index d77fb1c903e..d3b1240810b 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_f64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s16.c
index 92a6b5514cb..8449ca590ce 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s32.c
index a918d2d4c5a..93e27009672 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s64.c
index be3524fd525..0d892292454 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s8.c
index 24ea2399cb0..c85ed599273 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_s8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u16.c
index 65caf9706ac..4df90c4720b 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u32.c
index abd76b74f17..56ffdc47596 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u64.c
index 0e91929b7e6..361afe4b8c4 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u8.c
index 07d484b0bfc..f0705a1c6fe 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip1q_u8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_bf16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_bf16.c
index 6d79136cf87..3d1f7b45c83 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_bf16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_bf16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f16.c
index 984240e1999..a39d4041d21 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f32.c
index 0f8ccd80486..82f04daac03 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f64.c
index b5411cff731..5594f062f8b 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_f64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s16.c
index 66751fc7fb9..292cc156354 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s32.c
index 830de33112c..40855382530 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s64.c
index 917be4f4054..2825355ffd4 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s8.c
index dff6e2d7b0d..58d35648aff 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_s8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u16.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u16.c
index 9e194425cfe..114f18ff27a 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u16.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u32.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u32.c
index 89de27f6bd2..aa729114a44 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u32.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u64.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u64.c
index f2c9852acc3..4feb9f0f1c6 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u64.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u8.c
index a129055866d..083a0046ce9 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/zip2q_u8.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "" { *-*-* } { "-DSTREAMING_COMPATIBLE" } { "" } } */
 /* { dg-require-effective-target aarch64_asm_f64mm_ok } */
 /* { dg-additional-options "-march=armv8.2-a+f64mm" } */
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */

commit b4d4b86aebe1314a145732150d59a7b9ba066032
Author: Peter Bergner <bergner@linux.ibm.com>
Date:   Tue Jun 18 17:42:45 2024 -0500

    rs6000: ROP - Do not disable shrink-wrapping for leaf functions [PR114759]
    
    Only disable shrink-wrapping when using -mrop-protect when we know we
    will be emitting the ROP-protect hash instructions (ie, non-leaf functions).
    
    2024-06-17  Peter Bergner  <bergner@linux.ibm.com>
    
    gcc/
            PR target/114759
            * config/rs6000/rs6000.cc (rs6000_override_options_after_change): Move
            the disabling of shrink-wrapping from here....
            * config/rs6000/rs6000-logue.cc (rs6000_emit_prologue): ...to here.
    
    gcc/testsuite/
            PR target/114759
            * gcc.target/powerpc/pr114759-1.c: New test.
    
    (cherry picked from commit 0451bc503da9c858e9f1ddfb8faec367c2e032c8)

diff --git a/gcc/config/rs6000/rs6000-logue.cc b/gcc/config/rs6000/rs6000-logue.cc
index edc0d6c8f52..fdb6414f486 100644
--- a/gcc/config/rs6000/rs6000-logue.cc
+++ b/gcc/config/rs6000/rs6000-logue.cc
@@ -3012,6 +3012,11 @@ rs6000_emit_prologue (void)
                            && (lookup_attribute ("no_split_stack",
                                                  DECL_ATTRIBUTES (cfun->decl))
                                == NULL));
+  /* If we are inserting ROP-protect hash instructions, disable shrink-wrap
+     until the bug where the hashst insn is emitted in the wrong location
+     is fixed.  See PR101324 for details.  */
+  if (info->rop_hash_size)
+    flag_shrink_wrap = 0;
 
   frame_pointer_needed_indeed
     = frame_pointer_needed && df_regs_ever_live_p (HARD_FRAME_POINTER_REGNUM);
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index 5fd31bf8242..80f03809ff6 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -3424,10 +3424,6 @@ rs6000_override_options_after_change (void)
     }
   else if (!OPTION_SET_P (flag_cunroll_grow_size))
     flag_cunroll_grow_size = flag_peel_loops || optimize >= 3;
-
-  /* If we are inserting ROP-protect instructions, disable shrink wrap.  */
-  if (rs6000_rop_protect)
-    flag_shrink_wrap = 0;
 }
 
 #ifdef TARGET_USES_LINUX64_OPT
diff --git a/gcc/testsuite/gcc.target/powerpc/pr114759-1.c b/gcc/testsuite/gcc.target/powerpc/pr114759-1.c
new file mode 100644
index 00000000000..579e08e920f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr114759-1.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mdejagnu-cpu=power10 -mrop-protect -fdump-rtl-pro_and_epilogue" } */
+/* { dg-require-effective-target rop_ok } Only enable on supported ABIs. */
+
+/* Verify we still attempt shrink-wrapping when using -mrop-protect
+   and there are no function calls.  */
+
+long
+foo (long arg)
+{
+  if (arg)
+    asm ("" ::: "r20");
+  return 0;
+}
+
+/* { dg-final { scan-rtl-dump-times "Performing shrink-wrapping" 1 "pro_and_epilogue" } } */

commit ea1f03fc6e8fed4b65c6c9748092d6b75e9e7162
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Nov 1 00:24:47 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 011b5c1b21f..c5ec42d4ff9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,30 @@
+2024-10-31  Peter Bergner  <bergner@linux.ibm.com>
+
+	Backported from master:
+	2024-08-12  Peter Bergner  <bergner@linux.ibm.com>
+
+	PR target/114759
+	* config/rs6000/rs6000.cc (rs6000_override_options_after_change): Move
+	the disabling of shrink-wrapping from here....
+	* config/rs6000/rs6000-logue.cc (rs6000_emit_prologue): ...to here.
+
+2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* config/aarch64/aarch64-sve-builtins-base.def (svtrn1q, svtrn2q)
+	(svuzp1q, svuzp2q, svzip1q, svzip2q): Require SM_OFF.
+
+2024-10-31  Yangyu Chen  <cyy@cyyself.name>
+
+	Backported from master:
+	2024-10-30  Yangyu Chen  <cyy@cyyself.name>
+
+	* config/aarch64/aarch64.cc (dispatch_function_versions): Adding
+	DECL_EXTERNAL, TREE_PUBLIC and hidden DECL_VISIBILITY to
+	__init_cpu_features_resolver and __aarch64_cpu_features.
+
 2024-10-30  David Malcolm  <dmalcolm@redhat.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index bf9a843b29c..c47a8c6250a 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241031
+20241101
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 80833e9394f..0cb1829df13 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,92 @@
+2024-10-31  Peter Bergner  <bergner@linux.ibm.com>
+
+	Backported from master:
+	2024-08-12  Peter Bergner  <bergner@linux.ibm.com>
+
+	PR target/114759
+	* gcc.target/powerpc/pr114759-1.c: New test.
+
+2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* g++.target/aarch64/sve/aarch64-ssve.exp: Add tests for trn[12]q,
+	uzp[12].c, and zip[12]q.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_bf16.c: Skip for
+	STREAMING_COMPATIBLE.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_f16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_f32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_f64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_s16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_s32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_s64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_s8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_u16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_u32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_u64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn1q_u8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_bf16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_f16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_f32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_f64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_s16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_s32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_s64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_s8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_u16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_u32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_u64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/trn2q_u8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_bf16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_f16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_f32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_f64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_s16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_s32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_s64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_s8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_u16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_u32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_u64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp1q_u8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_bf16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_f16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_f32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_f64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_s16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_s32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_s64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_s8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_u16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_u32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_u64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/uzp2q_u8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_bf16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_f16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_f32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_f64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_s16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_s32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_s64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_s8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_u16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_u32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_u64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip1q_u8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_bf16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_f16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_f32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_f64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_s16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_s32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_s64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_s8.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_u16.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_u32.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_u64.c: Likewise.
+	* gcc.target/aarch64/sve/acle/asm/zip2q_u8.c: Likewise.
+
 2024-10-30  David Malcolm  <dmalcolm@redhat.com>
 
 	Backported from master:

commit df542909224a7ff88b204534ad035a0b216a98bf
Author: Hongyu Wang <hongyu.wang@intel.com>
Date:   Wed Feb 7 14:42:58 2024 +0800

    [APX PPX] Avoid generating unmatched pushp/popp in pro/epilogue
    
    According to APX spec, the pushp/popp pairs should be matched,
    otherwise the PPX hint cannot take effect and cause performance loss.
    
    In the ix86_expand_epilogue, there are several optimizations that may
    cause the epilogue using mov to restore the regs. Check if PPX applied
    and prevent usage of mov/leave in the epilogue. Also do not use PPX
    for eh_return.
    
    gcc/ChangeLog:
    
            * config/i386/i386.cc (ix86_expand_prologue): Set apx_ppx_used
            flag in m.fs with TARGET_APX_PPX && !crtl->calls_eh_return.
            (ix86_emit_save_regs): Emit ppx is available only when
            TARGET_APX_PPX && !crtl->calls_eh_return.
            (ix86_expand_epilogue): Don't restore reg using mov when
            apx_ppx_used flag is true.
            * config/i386/i386.h (struct machine_frame_state):
            Add apx_ppx_used flag.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/apx-ppx-2.c: New test.
            * gcc.target/i386/apx-ppx-3.c: Likewise.
    
    (cherry picked from commit 8e72b1bb3896f6e8d4f4679cbcfbc2a8212d04f9)

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 48921d422cf..dde4ba5ca19 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -7435,6 +7435,7 @@ ix86_emit_save_regs (void)
 {
   int regno;
   rtx_insn *insn;
+  bool use_ppx = TARGET_APX_PPX && !crtl->calls_eh_return;
 
   if (!TARGET_APX_PUSH2POP2
       || !ix86_can_use_push2pop2 ()
@@ -7444,7 +7445,7 @@ ix86_emit_save_regs (void)
 	if (GENERAL_REGNO_P (regno) && ix86_save_reg (regno, true, true))
 	  {
 	    insn = emit_insn (gen_push (gen_rtx_REG (word_mode, regno),
-					TARGET_APX_PPX));
+					use_ppx));
 	    RTX_FRAME_RELATED_P (insn) = 1;
 	  }
     }
@@ -7475,7 +7476,7 @@ ix86_emit_save_regs (void)
 							      regno_list[0]),
 						 gen_rtx_REG (word_mode,
 							      regno_list[1]),
-						 TARGET_APX_PPX));
+						 use_ppx));
 		    RTX_FRAME_RELATED_P (insn) = 1;
 		    rtx dwarf = gen_rtx_SEQUENCE (VOIDmode, rtvec_alloc (3));
 
@@ -7508,7 +7509,7 @@ ix86_emit_save_regs (void)
 	    else
 	      {
 		insn = emit_insn (gen_push (gen_rtx_REG (word_mode, regno),
-					    TARGET_APX_PPX));
+					    use_ppx));
 		RTX_FRAME_RELATED_P (insn) = 1;
 		aligned = true;
 	      }
@@ -7517,7 +7518,7 @@ ix86_emit_save_regs (void)
 	{
 	  insn = emit_insn (gen_push (gen_rtx_REG (word_mode,
 						   regno_list[0]),
-				      TARGET_APX_PPX));
+				      use_ppx));
 	  RTX_FRAME_RELATED_P (insn) = 1;
 	}
     }
@@ -8991,6 +8992,7 @@ ix86_expand_prologue (void)
       if (!frame.save_regs_using_mov)
 	{
 	  ix86_emit_save_regs ();
+	  m->fs.apx_ppx_used = TARGET_APX_PPX && !crtl->calls_eh_return;
 	  int_registers_saved = true;
 	  gcc_assert (m->fs.sp_offset == frame.reg_save_offset);
 	}
@@ -9876,6 +9878,9 @@ ix86_expand_epilogue (int style)
   /* SEH requires the use of pops to identify the epilogue.  */
   else if (TARGET_SEH)
     restore_regs_via_mov = false;
+  /* If we already save reg with pushp, don't use move at epilogue.  */
+  else if (m->fs.apx_ppx_used)
+    restore_regs_via_mov = false;
   /* If we're only restoring one register and sp cannot be used then
      using a move instruction to restore the register since it's
      less work than reloading sp and popping the register.  */
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 1c6e323d655..1c456c3422f 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -2727,6 +2727,10 @@ struct GTY(()) machine_frame_state
      The flags realigned and sp_realigned are mutually exclusive.  */
   BOOL_BITFIELD sp_realigned : 1;
 
+  /* When APX_PPX used in prologue, force epilogue to emit
+  popp instead of move and leave.  */
+  BOOL_BITFIELD apx_ppx_used : 1;
+
   /* If sp_realigned is set, this is the last valid offset from the CFA
      that can be used for access with the frame pointer.  */
   HOST_WIDE_INT sp_realigned_fp_last;
diff --git a/gcc/testsuite/gcc.target/i386/apx-ppx-2.c b/gcc/testsuite/gcc.target/i386/apx-ppx-2.c
new file mode 100644
index 00000000000..42a95340b55
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/apx-ppx-2.c
@@ -0,0 +1,14 @@
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-O1 -mapx-features=ppx -fno-omit-frame-pointer" } */
+
+/* { dg-final { scan-assembler "pushp" } } */
+/* { dg-final { scan-assembler "popp" } } */
+/* { dg-final { scan-assembler-not "leave" } } */
+
+extern int bar (int a);
+extern int *q;
+
+void foo (int *a)
+{
+  q[2] = bar (q[1]);
+}
diff --git a/gcc/testsuite/gcc.target/i386/apx-ppx-3.c b/gcc/testsuite/gcc.target/i386/apx-ppx-3.c
new file mode 100644
index 00000000000..76931fbe294
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/apx-ppx-3.c
@@ -0,0 +1,7 @@
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-O2 -mapx-features=ppx" } */
+
+/* { dg-final { scan-assembler-not "pushp" } } */
+/* { dg-final { scan-assembler-not "popp" } } */
+
+#include "eh_return-2.c"

commit 9a5ee8da09b705fc2a4197453789db0749387db3
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Fri Oct 25 17:59:03 2024 +0100

    Fortran: Fix ICE with structure constructor in data statement [PR79685]
    
    2024-10-25  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/79685
            * decl.cc (match_data_constant): Find the symtree instead of
            the symbol so the use renamed symbols are found. Pass this and
            the derived type to gfc_match_structure_constructor.
            * match.h: Update prototype of gfc_match_structure_contructor.
            * primary.cc (gfc_match_structure_constructor): Remove call to
            gfc_get_ha_sym_tree and use caller supplied symtree instead.
    
    gcc/testsuite/
            PR fortran/79685
            * gfortran.dg/use_rename_13.f90: New test.
    
    (cherry picked from commit 6cb1da72cac166bd3b005c0430557b68b9761da5)

diff --git a/gcc/fortran/decl.cc b/gcc/fortran/decl.cc
index b8308aeee55..119c9dffa03 100644
--- a/gcc/fortran/decl.cc
+++ b/gcc/fortran/decl.cc
@@ -376,6 +376,7 @@ match_data_constant (gfc_expr **result)
   gfc_expr *expr;
   match m;
   locus old_loc;
+  gfc_symtree *symtree;
 
   m = gfc_match_literal_constant (&expr, 1);
   if (m == MATCH_YES)
@@ -436,9 +437,11 @@ match_data_constant (gfc_expr **result)
   if (m != MATCH_YES)
     return m;
 
-  if (gfc_find_symbol (name, NULL, 1, &sym))
+  if (gfc_find_sym_tree (name, NULL, 1, &symtree))
     return MATCH_ERROR;
 
+  sym = symtree->n.sym;
+
   if (sym && sym->attr.generic)
     dt_sym = gfc_find_dt_in_generic (sym);
 
@@ -452,7 +455,7 @@ match_data_constant (gfc_expr **result)
       return MATCH_ERROR;
     }
   else if (dt_sym && gfc_fl_struct (dt_sym->attr.flavor))
-    return gfc_match_structure_constructor (dt_sym, result);
+    return gfc_match_structure_constructor (dt_sym, symtree, result);
 
   /* Check to see if the value is an initialization array expression.  */
   if (sym->value->expr_type == EXPR_ARRAY)
diff --git a/gcc/fortran/match.h b/gcc/fortran/match.h
index b09921357fd..e84ec913f78 100644
--- a/gcc/fortran/match.h
+++ b/gcc/fortran/match.h
@@ -300,7 +300,7 @@ match gfc_match_bind_c_stmt (void);
 match gfc_match_bind_c (gfc_symbol *, bool);
 
 /* primary.cc.  */
-match gfc_match_structure_constructor (gfc_symbol *, gfc_expr **);
+match gfc_match_structure_constructor (gfc_symbol *, gfc_symtree *, gfc_expr **);
 match gfc_match_variable (gfc_expr **, int);
 match gfc_match_equiv_variable (gfc_expr **);
 match gfc_match_actual_arglist (int, gfc_actual_arglist **, bool = false);
diff --git a/gcc/fortran/primary.cc b/gcc/fortran/primary.cc
index c4821030ebb..478fbe2be61 100644
--- a/gcc/fortran/primary.cc
+++ b/gcc/fortran/primary.cc
@@ -3520,18 +3520,16 @@ gfc_convert_to_structure_constructor (gfc_expr *e, gfc_symbol *sym, gfc_expr **c
 
 
 match
-gfc_match_structure_constructor (gfc_symbol *sym, gfc_expr **result)
+gfc_match_structure_constructor (gfc_symbol *sym, gfc_symtree *symtree,
+				 gfc_expr **result)
 {
   match m;
   gfc_expr *e;
-  gfc_symtree *symtree;
   bool t = true;
 
-  gfc_get_ha_sym_tree (sym->name, &symtree);
-
   e = gfc_get_expr ();
-  e->symtree = symtree;
   e->expr_type = EXPR_FUNCTION;
+  e->symtree = symtree;
   e->where = gfc_current_locus;
 
   gcc_assert (gfc_fl_struct (sym->attr.flavor)
diff --git a/gcc/testsuite/gfortran.dg/use_rename_13.f90 b/gcc/testsuite/gfortran.dg/use_rename_13.f90
new file mode 100644
index 00000000000..97f26f42f76
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/use_rename_13.f90
@@ -0,0 +1,37 @@
+! { dg-do compile }
+!
+! Test the fix for pr79685, which failed as in the comments below.
+!
+! Contributed by Juergen Reuter  <juergen.reuter@desy.de>
+!
+module omega_color
+  implicit none
+
+  type omega_color_factor
+     integer :: i
+  end type
+
+  type(omega_color_factor), parameter :: op = omega_color_factor (199)
+
+end module
+
+module foo
+  use omega_color, ocf => omega_color_factor, ocfp => op
+  implicit none
+
+  type(ocf) :: table_color_factors1 = ocf(42)
+  type(ocf) :: table_color_factors2
+  type(ocf) :: table_color_factors3 (2)
+  type(ocf) :: table_color_factors4
+  data table_color_factors2 / ocf(99) /        ! This failed in gfc_match_structure_constructor.
+  data table_color_factors3 / ocf(1), ocf(2) / ! ditto.
+  data table_color_factors4 / ocfp /
+end module
+
+  use foo
+  if (table_color_factors1%i .ne. 42) stop 1
+  if (table_color_factors2%i .ne. 99) stop 2
+  if (any (table_color_factors3%i .ne. [1,2])) stop 3
+  if (table_color_factors4%i .ne. 199) stop 4
+end
+

commit 82bfb6c5ba6d1f84472271f367221988cd50f478
Author: Haochen Jiang <haochen.jiang@intel.com>
Date:   Fri Nov 1 15:59:47 2024 +0800

    i386: Do not allow pointer conversion for CMPccXADD intrin under -O0
    
    The pointer conversion to wider type under macro would not consider
    whether the higher bit is cleaned or not. It will lead to unexpected
    cmp result.
    
    After this change, it will throw an incompatible pointer type error just
    like -O2 does currently.
    
    gcc/ChangeLog:
    
            * config/i386/cmpccxaddintrin.h (_cmpccxadd_epi32): Do not do
            type conversion for pointer.
            (_cmpccxadd_epi64): Ditto.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/cmpccxadd-1b.c: New test.

diff --git a/gcc/config/i386/cmpccxaddintrin.h b/gcc/config/i386/cmpccxaddintrin.h
index 39f368ffc08..9349fb00c1b 100644
--- a/gcc/config/i386/cmpccxaddintrin.h
+++ b/gcc/config/i386/cmpccxaddintrin.h
@@ -72,11 +72,11 @@ _cmpccxadd_epi64 (long long *__A, long long __B, long long __C,
 }
 #else
 #define _cmpccxadd_epi32(A,B,C,D) \
-  __builtin_ia32_cmpccxadd ((int *) (A), (int) (B), (int) (C), \
+  __builtin_ia32_cmpccxadd ((A), (int) (B), (int) (C), \
 			    (_CMPCCX_ENUM) (D))
 #define _cmpccxadd_epi64(A,B,C,D) \
-  __builtin_ia32_cmpccxadd64 ((long long *) (A), (long long) (B), \
-			      (long long) (C), (_CMPCCX_ENUM) (D))
+  __builtin_ia32_cmpccxadd64 ((A), (long long) (B), (long long) (C), \
+			      (_CMPCCX_ENUM) (D))
 #endif
 
 #ifdef __DISABLE_CMPCCXADD__
diff --git a/gcc/testsuite/gcc.target/i386/cmpccxadd-1b.c b/gcc/testsuite/gcc.target/i386/cmpccxadd-1b.c
new file mode 100644
index 00000000000..7d20325da50
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/cmpccxadd-1b.c
@@ -0,0 +1,15 @@
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-O0 -mcmpccxadd" } */
+#include <x86gprintrin.h>
+
+short *a;
+int b, c;
+int *d;
+long long e, f;
+
+void extern
+cmpccxadd_test(void)
+{
+  b = _cmpccxadd_epi32 (a, b, c, _CMPCCX_O); /* { dg-error "incompatible pointer type" } */
+  e = _cmpccxadd_epi64 (d, e, f, _CMPCCX_O); /* { dg-error "incompatible pointer type" } */
+}

commit 9b1f15e1e141a6bf478deb2f8818fa3b555fa772
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Nov 2 00:25:44 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c5ec42d4ff9..52840d998b9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,23 @@
+2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* config/i386/cmpccxaddintrin.h (_cmpccxadd_epi32): Do not do
+	type conversion for pointer.
+	(_cmpccxadd_epi64): Ditto.
+
+2024-11-01  Hongyu Wang  <hongyu.wang@intel.com>
+
+	Backported from master:
+	2024-07-04  Hongyu Wang  <hongyu.wang@intel.com>
+
+	* config/i386/i386.cc (ix86_expand_prologue): Set apx_ppx_used
+	flag in m.fs with TARGET_APX_PPX && !crtl->calls_eh_return.
+	(ix86_emit_save_regs): Emit ppx is available only when
+	TARGET_APX_PPX && !crtl->calls_eh_return.
+	(ix86_expand_epilogue): Don't restore reg using mov when
+	apx_ppx_used flag is true.
+	* config/i386/i386.h (struct machine_frame_state):
+	Add apx_ppx_used flag.
+
 2024-10-31  Peter Bergner  <bergner@linux.ibm.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c47a8c6250a..0ffe82a8a48 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241101
+20241102
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index c804cc2f3a7..9e06becb4b8 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,16 @@
+2024-11-01  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-10-25  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/79685
+	* decl.cc (match_data_constant): Find the symtree instead of
+	the symbol so the use renamed symbols are found. Pass this and
+	the derived type to gfc_match_structure_constructor.
+	* match.h: Update prototype of gfc_match_structure_contructor.
+	* primary.cc (gfc_match_structure_constructor): Remove call to
+	gfc_get_ha_sym_tree and use caller supplied symtree instead.
+
 2024-10-25  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0cb1829df13..8f1cb0c027d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,23 @@
+2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* gcc.target/i386/cmpccxadd-1b.c: New test.
+
+2024-11-01  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-10-25  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/79685
+	* gfortran.dg/use_rename_13.f90: New test.
+
+2024-11-01  Hongyu Wang  <hongyu.wang@intel.com>
+
+	Backported from master:
+	2024-07-04  Hongyu Wang  <hongyu.wang@intel.com>
+
+	* gcc.target/i386/apx-ppx-2.c: New test.
+	* gcc.target/i386/apx-ppx-3.c: Likewise.
+
 2024-10-31  Peter Bergner  <bergner@linux.ibm.com>
 
 	Backported from master:

commit e455f398ca0253c73869ced309c9c8b386c06087
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Nov 3 00:22:12 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 0ffe82a8a48..e99b9656d62 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241102
+20241103

commit 09033ae194aa3451d88f972bd87b9bc20022e99c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Nov 4 00:22:56 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e99b9656d62..9a7f1aceb27 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241103
+20241104

commit 4f563063f93af3ecad5ee8e8a0c61c1753087dac
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Aug 16 16:03:30 2024 +0200

    ada: Fix internal error on concatenation of discriminant-dependent component
    
    This only occurs with optimization enabled, but the expanded code is always
    wrong because it reuses the formal parameter of an initialization procedure
    associated with a discriminant (a discriminal in GNAT parlance) outside of
    the initialization procedure.
    
    gcc/ada/
    
            * checks.adb (Selected_Length_Checks.Get_E_Length): For a
            component of a record with discriminants and if the expression is
            a selected component, try to build an actual subtype from its
            prefix instead of from the discriminal.

diff --git a/gcc/ada/checks.adb b/gcc/ada/checks.adb
index c81482a7b05..9c3c2fdd66c 100644
--- a/gcc/ada/checks.adb
+++ b/gcc/ada/checks.adb
@@ -9800,7 +9800,15 @@ package body Checks is
          if Ekind (Scope (E)) = E_Record_Type
            and then Has_Discriminants (Scope (E))
          then
-            N := Build_Discriminal_Subtype_Of_Component (E);
+            --  If the expression is a selected component, in other words,
+            --  has a prefix, then build an actual subtype from the prefix.
+            --  Otherwise, build an actual subtype from the discriminal.
+
+            if Nkind (Expr) = N_Selected_Component then
+               N := Build_Actual_Subtype_Of_Component (E, Expr);
+            else
+               N := Build_Discriminal_Subtype_Of_Component (E);
+            end if;
 
             if Present (N) then
                Insert_Action (Expr, N);

commit 0bcca04f0947783df93386bbe22253092f3b0d52
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon Nov 4 11:15:15 2024 +0100

    Add regression test
    
    This is for the latest fix made to Selected_Length_Checks in Checks.
    
    gcc/testsuite
            * gnat.dg/specs/array7.ads: New test.

diff --git a/gcc/testsuite/gnat.dg/specs/array7.ads b/gcc/testsuite/gnat.dg/specs/array7.ads
new file mode 100644
index 00000000000..643ec3bb9ce
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/array7.ads
@@ -0,0 +1,14 @@
+-- { dg-do compile }
+-- { dg-options "-O" }
+
+package Array7 is
+
+  type I is interface;
+
+  type Rec (Name_Len : Natural) is new I with record
+    Input : String (1 .. Name_Len);
+  end record;
+
+  function Image (R : Rec) return String is ("I" & String (R.Input));
+
+end Array7;

commit ec43369c7e2c4b930a501252fa048df51c141970
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Oct 29 11:14:12 2024 +0100

    libstdc++: Use if consteval rather than if (std::__is_constant_evaluated()) for {,b}float16_t nextafter [PR117321]
    
    The nextafter_c++23.cc testcase fails to link at -O0.
    The problem is that eventhough std::__is_constant_evaluated() has
    always_inline attribute, that at -O0 just means that we inline the
    call, but its result is still assigned to a temporary which is tested
    later, nothing at -O0 propagates that false into the if and optimizes
    away the if body.  And the __builtin_nextafterf16{,b} calls are meant
    to be used solely for constant evaluation, the C libraries don't
    define nextafterf16 these days.
    
    As __STDCPP_FLOAT16_T__ and __STDCPP_BFLOAT16_T__ are predefined right
    now only by GCC, not by clang which doesn't implement the extended floating
    point types paper, and as they are predefined in C++23 and later modes only,
    I think we can just use if consteval which is folded already during the FE
    and the body isn't included even at -O0.  I've added a feature test for
    that just in case clang implements those and implements those in some weird
    way.  Note, if (__builtin_is_constant_evaluted()) would work correctly too,
    that is also folded to false at gimplification time and the corresponding
    if block not emitted at all.  But for -O0 it can't be wrapped into a helper
    inline function.
    
    2024-10-29  Jakub Jelinek  <jakub@redhat.com>
    
            PR libstdc++/117321
            * include/c_global/cmath (nextafter(_Float16, _Float16)): Use
            if consteval rather than if (std::__is_constant_evaluated()) around
            the __builtin_nextafterf16 call.
            (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): Use
            if consteval rather than if (std::__is_constant_evaluated()) around
            the __builtin_nextafterf16b call.
            * testsuite/26_numerics/headers/cmath/117321.cc: New test.
    
    (cherry picked from commit 5e247ac0c28b9a2662f99c4a5420c5f7c2d0c6bd)

diff --git a/libstdc++-v3/include/c_global/cmath b/libstdc++-v3/include/c_global/cmath
index dd0174f1987..c5ebebd6b86 100644
--- a/libstdc++-v3/include/c_global/cmath
+++ b/libstdc++-v3/include/c_global/cmath
@@ -2873,8 +2873,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   constexpr _Float16
   nextafter(_Float16 __x, _Float16 __y)
   {
-    if (std::__is_constant_evaluated())
-      return __builtin_nextafterf16(__x, __y);
+#if __cpp_if_consteval >= 202106L
+    // Can't use if (std::__is_constant_evaluated()) here, as it
+    // doesn't guarantee optimizing the body away at -O0 and
+    // nothing defines nextafterf16.
+    if consteval { return __builtin_nextafterf16(__x, __y); }
+#endif
 #ifdef __INT16_TYPE__
     using __float16_int_type = __INT16_TYPE__;
 #else
@@ -3591,8 +3595,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   constexpr __gnu_cxx::__bfloat16_t
   nextafter(__gnu_cxx::__bfloat16_t __x, __gnu_cxx::__bfloat16_t __y)
   {
-    if (std::__is_constant_evaluated())
-      return __builtin_nextafterf16b(__x, __y);
+#if __cpp_if_consteval >= 202106L
+    // Can't use if (std::__is_constant_evaluated()) here, as it
+    // doesn't guarantee optimizing the body away at -O0 and
+    // nothing defines nextafterf16b.
+    if consteval { return __builtin_nextafterf16b(__x, __y); }
+#endif
 #ifdef __INT16_TYPE__
     using __bfloat16_int_type = __INT16_TYPE__;
 #else
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/117321.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/117321.cc
new file mode 100644
index 00000000000..18d108c6a3e
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/117321.cc
@@ -0,0 +1,5 @@
+// { dg-do run { target c++23 } }
+// { dg-require-cmath "" }
+// { dg-additional-options "-O0" }
+
+#include "nextafter_c++23.cc"

commit 82285392ab5cd1d83b8f4a92f521d3323c5996e7
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Oct 30 09:59:22 2024 +0100

    function: Call do_pending_stack_adjust in assign_parms [PR117296]
    
    Functions called by assign_parms call emit_block_move in two places,
    so on some targets can be expanded as calls and can result in pending
    stack adjustment.
    
    Now, during expansion we normally call do_pending_stack_adjust at the end
    of expansion of each basic block or before emitting code that will branch
    and/or has labels, and when emitting labels we assert that there are no
    pending stack adjustments.
    
    assign_parms is expanded before the first basic block and if the first
    basic block starts with a label and at least one of those emit_block_move
    calls resulted in the need of pending stack adjustments, we ICE when
    emitting that label.
    
    The following patch fixes that by calling do_pending_stack_adjust after
    after the assign_parms potential emit_block_move calls.
    
    2024-10-30  Jakub Jelinek  <jakub@redhat.com>
    
            PR target/117296
            * function.cc (assign_parms): Call do_pending_stack_adjust.
    
            * gcc.target/i386/pr117296.c: New test.
    
    (cherry picked from commit fccef0c4ed0119ac53940bdb3838052339cf14a2)

diff --git a/gcc/function.cc b/gcc/function.cc
index 4edd4da1247..05aa52d8f6a 100644
--- a/gcc/function.cc
+++ b/gcc/function.cc
@@ -3746,6 +3746,8 @@ assign_parms (tree fndecl)
      now that all parameters have been copied out of hard registers.  */
   emit_insn (all.first_conversion_insn);
 
+  do_pending_stack_adjust ();
+
   /* Estimate reload stack alignment from scalar return mode.  */
   if (SUPPORTS_STACK_ALIGNMENT)
     {
diff --git a/gcc/testsuite/gcc.target/i386/pr117296.c b/gcc/testsuite/gcc.target/i386/pr117296.c
new file mode 100644
index 00000000000..1b4f6e80691
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117296.c
@@ -0,0 +1,12 @@
+/* PR target/117296 */
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+/* { dg-additional-options "-mtune=k6 -mstringop-strategy=libcall -ffloat-store" { target ia32 } } */
+
+int x;
+
+void
+foo (_Complex double c)
+{
+ lab:;
+}

commit 1553e4094207cfe87e98980752a88a49e1b6626d
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Oct 31 10:52:56 2024 +0100

    expand: Fix up expansion of VIEW_CONVERT_EXPR to BITINT_TYPE [PR117354]
    
    The following testcase ICEs, because when trying to expand the
    VIEW_CONVERT_EXPR operand which is SSA_NAME defined to
    V32QI or V4DI MEM_REF which is aligned just to 8 bytes we force
    it as unaligned into a register, but then try to call extract_bit_field
    from the V32QI or V4DI register to BLKmode.  extract_bit_field doesn't
    obviously support BLKmode extraction and so ICEs.
    
    The second hunk fixes the ICE by not calling extract_bit_field when
    it can't handle it, the last if will handle it properly by storing
    it to memory and using BLKmode access to the copy.
    
    The first hunk is an optimization, if mode is BLKmode, by setting
    inner_reference_p argument to expand_expr_real we avoid the
    expand_misaligned_mem_ref calls which load it from memory into a register.
    
    2024-10-31  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/117354
            * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Pass
            true as inner_reference_p argument to expand_expr_real if
            mode is BLKmode.  Don't call extract_bit_field if mode is BLKmode.
    
            * gcc.dg/bitint-113.c: New test.
    
    (cherry picked from commit b39f62ff739e9ffea0e6485667f15b985f8cd63d)

diff --git a/gcc/expr.cc b/gcc/expr.cc
index 9f66d479445..414b7fda754 100644
--- a/gcc/expr.cc
+++ b/gcc/expr.cc
@@ -12427,7 +12427,7 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode,
 
       if (!op0)
 	op0 = expand_expr_real (treeop0, NULL_RTX, VOIDmode, modifier,
-				NULL, inner_reference_p);
+				NULL, inner_reference_p || mode == BLKmode);
 
       /* If the input and output modes are both the same, we are done.  */
       if (mode == GET_MODE (op0))
@@ -12464,7 +12464,7 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode,
 	op0 = convert_modes (mode, GET_MODE (op0), op0,
 			     TYPE_UNSIGNED (TREE_TYPE (treeop0)));
       /* If the output type is a bit-field type, do an extraction.  */
-      else if (reduce_bit_field)
+      else if (reduce_bit_field && mode != BLKmode)
 	return extract_bit_field (op0, TYPE_PRECISION (type), 0,
 				  TYPE_UNSIGNED (type), NULL_RTX,
 				  mode, mode, false, NULL);
diff --git a/gcc/testsuite/gcc.dg/bitint-113.c b/gcc/testsuite/gcc.dg/bitint-113.c
new file mode 100644
index 00000000000..3c934a62fb4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bitint-113.c
@@ -0,0 +1,40 @@
+/* PR middle-end/117354 */
+/* { dg-do compile { target bitint } } */
+/* { dg-options "-O2" } */
+/* { dg-additional-options "-mavx2" { target x86_64-*-* i?86-*-* } } */
+
+#if __BITINT_MAXWIDTH__ >= 256
+#define N 256
+#else
+#define N 64
+#endif
+
+struct S {
+  unsigned char y;
+  _BitInt(N) x;
+} s;
+
+__attribute__((noipa)) static void
+foo (const char *, _BitInt(N))
+{
+}
+
+__attribute__((noipa)) static void
+bar (_BitInt(N))
+{
+}
+
+static void
+baz (void *p)
+{
+  foo ("bazbazbazb", s.x);
+  __builtin_memcpy (p, &s.x, sizeof s.x);
+}
+
+int
+main ()
+{
+  void *ptr = &s.x;
+  baz (&s.x);
+  bar (*(_BitInt(N) *) ptr);
+}

commit 377f81a60ba78dde6c59bc40af46ef8ad3569693
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Nov 2 18:48:54 2024 +0100

    libstdc++: Fix up std::{,b}float16_t std::{ilogb,l{,l}r{ound,int}} [PR117406]
    
    These overloads incorrectly cast the result of the float __builtin_*
    to _Float or __gnu_cxx::__bfloat16_t.  For std::ilogb that changes
    behavior for the INT_MAX return because that isn't representable in
    either of the floating point formats, for the others it is I think
    just a very inefficient hop from int/long/long long to std::{,b}float16_t
    and back.  I mean for the round/rint cases, either the argument is small
    and then the return value should be representable in the floating point
    format too, or it is too large that the argument is already integral
    and then it should just return the argument with the round trips.
    Too large value is unspecified unlike ilogb.
    
    2024-11-02  Jakub Jelinek  <jakub@redhat.com>
    
            PR libstdc++/117406
            * include/c_global/cmath (std::ilogb(_Float16), std::llrint(_Float16),
            std::llround(_Float16), std::lrint(_Float16), std::lround(_Float16)):
            Don't cast __builtin_* return to _Float16.
            (std::ilogb(__gnu_cxx::__bfloat16_t),
            std::llrint(__gnu_cxx::__bfloat16_t),
            std::llround(__gnu_cxx::__bfloat16_t),
            std::lrint(__gnu_cxx::__bfloat16_t),
            std::lround(__gnu_cxx::__bfloat16_t)): Don't cast __builtin_* return to
            __gnu_cxx::__bfloat16_t.
            * testsuite/26_numerics/headers/cmath/117406.cc: New test.
    
    (cherry picked from commit 36a9e2b22596711455e702ea5a5a3f26e145321c)

diff --git a/libstdc++-v3/include/c_global/cmath b/libstdc++-v3/include/c_global/cmath
index c5ebebd6b86..114b0693151 100644
--- a/libstdc++-v3/include/c_global/cmath
+++ b/libstdc++-v3/include/c_global/cmath
@@ -2831,7 +2831,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   constexpr int
   ilogb(_Float16 __x)
-  { return _Float16(__builtin_ilogbf(__x)); }
+  { return __builtin_ilogbf(__x); }
 
   constexpr _Float16
   lgamma(_Float16 __x)
@@ -2839,11 +2839,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   constexpr long long
   llrint(_Float16 __x)
-  { return _Float16(__builtin_llrintf(__x)); }
+  { return __builtin_llrintf(__x); }
 
   constexpr long long
   llround(_Float16 __x)
-  { return _Float16(__builtin_llroundf(__x)); }
+  { return __builtin_llroundf(__x); }
 
   constexpr _Float16
   log1p(_Float16 __x)
@@ -2860,11 +2860,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   constexpr long
   lrint(_Float16 __x)
-  { return _Float16(__builtin_lrintf(__x)); }
+  { return __builtin_lrintf(__x); }
 
   constexpr long
   lround(_Float16 __x)
-  { return _Float16(__builtin_lroundf(__x)); }
+  { return __builtin_lroundf(__x); }
 
   constexpr _Float16
   nearbyint(_Float16 __x)
@@ -3553,7 +3553,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   constexpr int
   ilogb(__gnu_cxx::__bfloat16_t __x)
-  { return __gnu_cxx::__bfloat16_t(__builtin_ilogbf(__x)); }
+  { return __builtin_ilogbf(__x); }
 
   constexpr __gnu_cxx::__bfloat16_t
   lgamma(__gnu_cxx::__bfloat16_t __x)
@@ -3561,11 +3561,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   constexpr long long
   llrint(__gnu_cxx::__bfloat16_t __x)
-  { return __gnu_cxx::__bfloat16_t(__builtin_llrintf(__x)); }
+  { return __builtin_llrintf(__x); }
 
   constexpr long long
   llround(__gnu_cxx::__bfloat16_t __x)
-  { return __gnu_cxx::__bfloat16_t(__builtin_llroundf(__x)); }
+  { return __builtin_llroundf(__x); }
 
   constexpr __gnu_cxx::__bfloat16_t
   log1p(__gnu_cxx::__bfloat16_t __x)
@@ -3582,11 +3582,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   constexpr long
   lrint(__gnu_cxx::__bfloat16_t __x)
-  { return __gnu_cxx::__bfloat16_t(__builtin_lrintf(__x)); }
+  { return __builtin_lrintf(__x); }
 
   constexpr long
   lround(__gnu_cxx::__bfloat16_t __x)
-  { return __gnu_cxx::__bfloat16_t(__builtin_lroundf(__x)); }
+  { return __builtin_lroundf(__x); }
 
   constexpr __gnu_cxx::__bfloat16_t
   nearbyint(__gnu_cxx::__bfloat16_t __x)
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/117406.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/117406.cc
new file mode 100644
index 00000000000..8966c71ecdc
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/117406.cc
@@ -0,0 +1,59 @@
+// Copyright (C) 2024 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do run { target c++23 } }
+// { dg-require-cmath "" }
+
+#include <stdfloat>
+#include <cmath>
+#include <limits>
+#include <testsuite_hooks.h>
+
+template <typename T>
+void
+test ()
+{
+  using lim = std::numeric_limits<T>;
+  int t0 = std::ilogb(T(4.0));
+  VERIFY( t0 == 2 );
+  int t1 = std::ilogb(lim::infinity());
+  VERIFY( t1 == INT_MAX );
+  int t2 = std::ilogb(-lim::infinity());
+  VERIFY( t2 == INT_MAX );
+}
+
+int
+main ()
+{
+#if defined(__STDCPP_FLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
+  test <std::float16_t>();
+#endif
+#if defined(__STDCPP_FLOAT32_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
+  test <std::float32_t>();
+#endif
+#if defined(__STDCPP_FLOAT64_T__) && defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64)
+  test <std::float64_t>();
+#endif
+#if defined(__STDCPP_FLOAT128_T__) \
+    && (defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128) \
+	|| defined(_GLIBCXX_HAVE_FLOAT128_MATH))
+  test <std::float128_t>();
+#endif
+#if defined(__STDCPP_BFLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
+  test <std::bfloat16_t>();
+#endif
+}

commit 72b7bbf9d4482fac6bac81508833e407201e0733
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Mon Nov 4 12:29:01 2024 +0100

    libstdc++: Fix up 117406.cc test [PR117406]
    
    Christophe mentioned in bugzilla that the test FAILs on aarch64,
    I'm not including <climits> and use INT_MAX.
    Apparently during my testing I got it because the test preinclude
    -include bits/stdc++.h
    and that includes <climits>, dunno why that didn't happen on aarch64.
    In any case, either I can add #include <climits>, or because the
    test already has #include <limits> I've changed uses of INT_MAX
    with std::numeric_limits<int>::max(), that should be the same thing.
    But if you prefer
     #include <climits>
    I can surely add that instead.
    
    2024-11-04  Jakub Jelinek  <jakub@redhat.com>
    
            PR libstdc++/117406
            * testsuite/26_numerics/headers/cmath/117406.cc: Use
            std::numeric_limits<int>::max() instead of INT_MAX.
    
    (cherry picked from commit afcbf4dd27c147eb7d8f84e1a41c021eddec777e)

diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/117406.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/117406.cc
index 8966c71ecdc..59a5ed83beb 100644
--- a/libstdc++-v3/testsuite/26_numerics/headers/cmath/117406.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/117406.cc
@@ -31,9 +31,9 @@ test ()
   int t0 = std::ilogb(T(4.0));
   VERIFY( t0 == 2 );
   int t1 = std::ilogb(lim::infinity());
-  VERIFY( t1 == INT_MAX );
+  VERIFY( t1 == std::numeric_limits<int>::max() );
   int t2 = std::ilogb(-lim::infinity());
-  VERIFY( t2 == INT_MAX );
+  VERIFY( t2 == std::numeric_limits<int>::max() );
 }
 
 int

commit 08054021c88d028ce313ec80c034d42a84ee8276
Author: Andrew MacLeod <amacleod@redhat.com>
Date:   Fri Nov 1 10:56:54 2024 -0400

    Make fur_edge accessible.
    
    Move the decl of fur_edge out of the source file into the header file.
    
            * gimple-range-fold.cc (class fur_edge): Relocate from here.
            (fur_edge::fur_edge): Also move to:
            * gimple-range-fold.h (class fur_edge): Relocate to here.
            (fur_edge::fur_edge): Likewise.

diff --git a/gcc/gimple-range-fold.cc b/gcc/gimple-range-fold.cc
index 9c4ad1ee7b9..8020a1a3c63 100644
--- a/gcc/gimple-range-fold.cc
+++ b/gcc/gimple-range-fold.cc
@@ -108,26 +108,6 @@ fur_source::register_relation (edge e ATTRIBUTE_UNUSED,
 {
 }
 
-// This version of fur_source will pick a range up off an edge.
-
-class fur_edge : public fur_source
-{
-public:
-  fur_edge (edge e, range_query *q = NULL);
-  virtual bool get_operand (vrange &r, tree expr) override;
-  virtual bool get_phi_operand (vrange &r, tree expr, edge e) override;
-private:
-  edge m_edge;
-};
-
-// Instantiate an edge based fur_source.
-
-inline
-fur_edge::fur_edge (edge e, range_query *q) : fur_source (q)
-{
-  m_edge = e;
-}
-
 // Get the value of EXPR on edge m_edge.
 
 bool
diff --git a/gcc/gimple-range-fold.h b/gcc/gimple-range-fold.h
index 7cbe15d05e5..a619a530769 100644
--- a/gcc/gimple-range-fold.h
+++ b/gcc/gimple-range-fold.h
@@ -142,6 +142,20 @@ protected:
   relation_oracle *m_oracle;
 };
 
+
+// This version of fur_source will pick a range up off an edge.
+
+class fur_edge : public fur_source
+{
+public:
+  fur_edge (edge e, range_query *q = NULL) : fur_source (q)
+    { m_edge = e; }
+  virtual bool get_operand (vrange &r, tree expr) override;
+  virtual bool get_phi_operand (vrange &r, tree expr, edge e) override;
+private:
+  edge m_edge;
+};
+
 // This class uses ranges to fold a gimple statement producing a range for
 // the LHS.  The source of all operands is supplied via the fur_source class
 // which provides a range_query as well as a source location and any other

commit 393ee6b64579ea5ae5ae88079d271d3a237c7d9f
Author: Andrew MacLeod <amacleod@redhat.com>
Date:   Fri Nov 1 12:46:39 2024 -0400

    Reimplement 'assume' processing pass.
    
    Rework the assume pass to work properly and fail conservatively when it
    does.  Also move it to its own file.
    
            PR tree-optimization/117287
            gcc/
            * Makefile.in (IBJS): Add tree-assume.o
            * gimple-range.cc (assume_query::assume_range_p): Remove.
            (assume_query::range_of_expr): Remove.
            (assume_query::assume_query): Move to tree-assume.cc.
            (assume_query::~assume_query): Remove.
            (assume_query::calculate_op): Move to tree-assume.cc.
            (assume_query::calculate_phi): Likewise.
            (assume_query::check_taken_edge): Remove.
            (assume_query::calculate_stmt): Move to tree-assume.cc.
            (assume_query::dump): Remove.
            * gimple-range.h (class assume_query): Move to tree-assume.cc
            * tree-assume.cc: New
            * tree-vrp.cc (struct pass_data_assumptions): Move to tree-assume.cc.
            (class pass_assumptions): Likewise.
            (make_pass_assumptions): Likewise.
    
            gcc/testsuite/
            * g++.dg/cpp23/pr117287-attr.C: New.

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index a74761b7ab3..d475bf1c32e 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1697,6 +1697,7 @@ OBJS = \
 	ubsan.o \
 	sanopt.o \
 	sancov.o \
+	tree-assume.o \
 	tree-call-cdce.o \
 	tree-cfg.o \
 	tree-cfgcleanup.o \
diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc
index 4d3b1ce8588..5ad658cab39 100644
--- a/gcc/gimple-range.cc
+++ b/gcc/gimple-range.cc
@@ -711,194 +711,6 @@ disable_ranger (struct function *fun)
   bitmap_obstack_release (NULL);
 }
 
-// ------------------------------------------------------------------------
-
-// If there is a non-varying value associated with NAME, return true and the
-// range in R.
-
-bool
-assume_query::assume_range_p (vrange &r, tree name)
-{
-  if (global.get_range (r, name))
-    return !r.varying_p ();
-  return false;
-}
-
-// Query used by GORI to pick up any known value on entry to a block.
-
-bool
-assume_query::range_of_expr (vrange &r, tree expr, gimple *stmt)
-{
-  if (!gimple_range_ssa_p (expr))
-    return get_tree_range (r, expr, stmt);
-
-  if (!global.get_range (r, expr))
-    r.set_varying (TREE_TYPE (expr));
-  return true;
-}
-
-// If the current function returns an integral value, and has a single return
-// statement, it will calculate any SSA_NAMES it can determine ranges for
-// assuming the function returns 1.
-
-assume_query::assume_query ()
-{
-  basic_block exit_bb = EXIT_BLOCK_PTR_FOR_FN (cfun);
-  if (single_pred_p (exit_bb))
-    {
-      basic_block bb = single_pred (exit_bb);
-      gimple_stmt_iterator gsi = gsi_last_nondebug_bb (bb);
-      if (gsi_end_p (gsi))
-	return;
-      gimple *s = gsi_stmt (gsi);
-      if (!is_a<greturn *> (s))
-	return;
-      greturn *gret = as_a<greturn *> (s);
-      tree op = gimple_return_retval (gret);
-      if (!gimple_range_ssa_p (op))
-	return;
-      tree lhs_type = TREE_TYPE (op);
-      if (!irange::supports_p (lhs_type))
-	return;
-
-      unsigned prec = TYPE_PRECISION (lhs_type);
-      int_range<2> lhs_range (lhs_type, wi::one (prec), wi::one (prec));
-      global.set_range (op, lhs_range);
-
-      gimple *def = SSA_NAME_DEF_STMT (op);
-      if (!def || gimple_get_lhs (def) != op)
-	return;
-      fur_stmt src (gret, this);
-      calculate_stmt (def, lhs_range, src);
-    }
-}
-
-// Evaluate operand OP on statement S, using the provided LHS range.
-// If successful, set the range in the global table, then visit OP's def stmt.
-
-void
-assume_query::calculate_op (tree op, gimple *s, vrange &lhs, fur_source &src)
-{
-  Value_Range op_range (TREE_TYPE (op));
-  if (m_gori.compute_operand_range (op_range, s, lhs, op, src)
-      && !op_range.varying_p ())
-    {
-      // Set the global range, merging if there is already a range.
-      global.merge_range (op, op_range);
-      gimple *def_stmt = SSA_NAME_DEF_STMT (op);
-      if (def_stmt && gimple_get_lhs (def_stmt) == op)
-	calculate_stmt (def_stmt, op_range, src);
-    }
-}
-
-// Evaluate PHI statement, using the provided LHS range.
-// Check each constant argument predecessor if it can be taken
-// provide LHS to any symbolic arguments, and process their def statements.
-
-void
-assume_query::calculate_phi (gphi *phi, vrange &lhs_range, fur_source &src)
-{
-  for (unsigned x= 0; x < gimple_phi_num_args (phi); x++)
-    {
-      tree arg = gimple_phi_arg_def (phi, x);
-      Value_Range arg_range (TREE_TYPE (arg));
-      if (gimple_range_ssa_p (arg))
-	{
-	  // A symbol arg will be the LHS value.
-	  arg_range = lhs_range;
-	  range_cast (arg_range, TREE_TYPE (arg));
-	  if (!global.get_range (arg_range, arg))
-	    {
-	      global.set_range (arg, arg_range);
-	      gimple *def_stmt = SSA_NAME_DEF_STMT (arg);
-	      if (def_stmt && gimple_get_lhs (def_stmt) == arg)
-		calculate_stmt (def_stmt, arg_range, src);
-	    }
-	}
-      else if (get_tree_range (arg_range, arg, NULL))
-	{
-	  // If this is a constant value that differs from LHS, this
-	  // edge cannot be taken.
-	  arg_range.intersect (lhs_range);
-	  if (arg_range.undefined_p ())
-	    continue;
-	  // Otherwise check the condition feeding this edge.
-	  edge e = gimple_phi_arg_edge (phi, x);
-	  check_taken_edge (e, src);
-	}
-    }
-}
-
-// If an edge is known to be taken, examine the outgoing edge to see
-// if it carries any range information that can also be evaluated.
-
-void
-assume_query::check_taken_edge (edge e, fur_source &src)
-{
-  gimple *stmt = gimple_outgoing_range_stmt_p (e->src);
-  if (stmt && is_a<gcond *> (stmt))
-    {
-      int_range<2> cond;
-      gcond_edge_range (cond, e);
-      calculate_stmt (stmt, cond, src);
-    }
-}
-
-// Evaluate statement S which produces range LHS_RANGE.
-
-void
-assume_query::calculate_stmt (gimple *s, vrange &lhs_range, fur_source &src)
-{
-  gimple_range_op_handler handler (s);
-  if (handler)
-    {
-      tree op = gimple_range_ssa_p (handler.operand1 ());
-      if (op)
-	calculate_op (op, s, lhs_range, src);
-      op = gimple_range_ssa_p (handler.operand2 ());
-      if (op)
-	calculate_op (op, s, lhs_range, src);
-    }
-  else if (is_a<gphi *> (s))
-    {
-      calculate_phi (as_a<gphi *> (s), lhs_range, src);
-      // Don't further check predecessors of blocks with PHIs.
-      return;
-    }
-
-  // Even if the walk back terminates before the top, if this is a single
-  // predecessor block, see if the predecessor provided any ranges to get here.
-  if (single_pred_p (gimple_bb (s)))
-    check_taken_edge (single_pred_edge (gimple_bb (s)), src);
-}
-
-// Show everything that was calculated.
-
-void
-assume_query::dump (FILE *f)
-{
-  fprintf (f, "Assumption details calculated:\n");
-  for (unsigned i = 0; i < num_ssa_names; i++)
-    {
-      tree name = ssa_name (i);
-      if (!name || !gimple_range_ssa_p (name))
-	continue;
-      tree type = TREE_TYPE (name);
-      if (!Value_Range::supports_type_p (type))
-	continue;
-
-      Value_Range assume_range (type);
-      if (assume_range_p (assume_range, name))
-	{
-	  print_generic_expr (f, name, TDF_SLIM);
-	  fprintf (f, " -> ");
-	  assume_range.dump (f);
-	  fputc ('\n', f);
-	}
-    }
-  fprintf (f, "------------------------------\n");
-}
-
 // ---------------------------------------------------------------------------
 
 
diff --git a/gcc/gimple-range.h b/gcc/gimple-range.h
index 8739ab6a2ef..6e926c23f51 100644
--- a/gcc/gimple-range.h
+++ b/gcc/gimple-range.h
@@ -83,23 +83,6 @@ extern gimple_ranger *enable_ranger (struct function *m,
 				     bool use_imm_uses = true);
 extern void disable_ranger (struct function *);
 
-class assume_query : public range_query
-{
-public:
-  assume_query ();
-  bool assume_range_p (vrange &r, tree name);
-  virtual bool range_of_expr (vrange &r, tree expr, gimple * = NULL);
-  void dump (FILE *f);
-protected:
-  void calculate_stmt (gimple *s, vrange &lhs_range, fur_source &src);
-  void calculate_op (tree op, gimple *s, vrange &lhs, fur_source &src);
-  void calculate_phi (gphi *phi, vrange &lhs_range, fur_source &src);
-  void check_taken_edge (edge e, fur_source &src);
-
-  ssa_lazy_cache global;
-  gori_compute m_gori;
-};
-
 // DOM based ranger for fast VRP.
 // This must be processed in DOM order, and does only basic range operations.
 
diff --git a/gcc/testsuite/g++.dg/cpp23/pr117287-attr.C b/gcc/testsuite/g++.dg/cpp23/pr117287-attr.C
new file mode 100644
index 00000000000..759c21dc283
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp23/pr117287-attr.C
@@ -0,0 +1,38 @@
+// P1774R8 - Portable assumptions
+// { dg-do run { target c++23 } }
+// { dg-options "-O2 --param=logical-op-non-short-circuit=0" }
+// Test the we can optimize based on conditions in assume.
+
+static inline bool
+foo (unsigned x)
+{
+  return x == 4 || x == 5 || x == 9 || x == 10;
+}
+
+int v;
+
+[[gnu::noipa]] void
+bar (const char *p)
+{
+  if (p[0] != (v ? 'a' : 'b') || p[1])
+    __builtin_abort ();
+}
+
+[[gnu::noipa]] void
+baz (unsigned x)
+{
+  bool a = x == 5;
+  [[assume (foo (x))]];
+  bar (a ? "a" : "b");
+}
+
+int
+main ()
+{
+  baz (4);
+  v = 1;
+  baz (5);
+  v = 0;
+  baz (9);
+  baz (10);
+}
diff --git a/gcc/tree-assume.cc b/gcc/tree-assume.cc
new file mode 100644
index 00000000000..897b5ce3baf
--- /dev/null
+++ b/gcc/tree-assume.cc
@@ -0,0 +1,384 @@
+/* Support for C++23 ASSUME keyword functionailty.
+   Copyright (C) 2023-2024 Free Software Foundation, Inc.
+   Contributed by Andrew MacLeod <amacleod@redhat.com>.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "basic-block.h"
+#include "bitmap.h"
+#include "options.h"
+#include "function.h"
+#include "cfg.h"
+#include "tree.h"
+#include "gimple.h"
+#include "tree-pass.h"
+#include "ssa.h"
+#include "gimple-iterator.h"
+#include "gimple-range.h"
+#include "tree-dfa.h"
+#include "gimple-pretty-print.h"
+#include "tree-cfg.h"
+
+// An assume query utilizes the current range query to implelemtn the assume
+// keyword.
+// For any return value of 1 from the function, it attempts to determine
+// which paths leads to a 1 value being returned. On those paths, what
+// the ranges of any ssa_names listed in bitmap P (usually the parm list for
+// the function) are, and combined them all.
+// These ranges are then set as the global ranges for those parms in this
+// function.
+// Other functions which then refer to this function in an assume builtin
+// will then pick up these ranges for the paramters via the inferred range
+// mechanism.
+//   See gimple-range-infer.cc::gimple_infer_range::check_assume_func ()
+//
+// my_func (int x)
+// {
+//   <...>
+//   assume [[(x == 1 || x ==4))]]
+//   if (x ==3)
+//
+// a small temporary assume function consisting of
+// assume_f1 (int x) { return x == 1 || x == 4; }
+// is constructed by the front end, and optimzed, at the very end of
+// optimization, instead of generating code, we instead invoke the assume pass
+// which uses this query to set the the global value of parm x to [1,1][4,4]
+//
+// Meanwhile., my_Fund has been rewritten to be:
+//
+// my_func (int x_2)
+// {
+//   <...>
+//   assume_builtin_call  assume_f1 (x_2);
+//   if (x_2 == 3)
+//
+// When ranger is processing the assume_builtin_call, it looks up the global
+// value of the paramter in assume_f1, which is [1,1][4,4].  It then registers
+// and inferred range at this statement setting the value x_2 to [1,1][4,4]
+//
+// Any uses of x_2 after this statement will now utilzie this inferred range.
+//
+// When VRP precoesses if (x_2 == 3), it picks up the inferred range, and
+// determines that x_2 can never be 3, and will rewrite the branch to
+//   if (0 != 0)
+
+class assume_query
+{
+public:
+  assume_query (gimple_ranger *ranger, function *f, bitmap p);
+protected:
+  inline void process_stmts (gimple *s, vrange &lhs_range)
+  {
+    fur_depend src (s, &(m_ranger->gori ()), m_ranger);
+    calculate_stmt (s, lhs_range, src);
+    update_parms (src);
+  }
+  void update_parms (fur_source &src);
+  void calculate_stmt (gimple *s, vrange &lhs_range, fur_source &src);
+  void calculate_op (tree op, gimple *s, vrange &lhs, fur_source &src);
+  void calculate_phi (gphi *phi, vrange &lhs_range);
+
+  ssa_lazy_cache m_path;   // Values found on path
+  ssa_lazy_cache m_parms;  // Cumulative parameter value calculated
+  gimple_ranger *m_ranger;
+  bitmap &m_parm_list;	   // Parameter ssa-names list.
+  function *m_func;
+};
+
+// If function F returns a integral value, and has a single return
+// statement, try to calculate the range of each value in P that leads
+// to the return statement returning TRUE.
+
+assume_query::assume_query (gimple_ranger *ranger, function *f, bitmap p)
+  : m_ranger (ranger), m_parm_list (p), m_func (f)
+{
+  basic_block exit_bb = EXIT_BLOCK_PTR_FOR_FN (f);
+  // If there is more than one precessor to the exit block, bail.
+  if (!single_pred_p (exit_bb))
+    return;
+
+  basic_block bb = single_pred (exit_bb);
+  gimple_stmt_iterator gsi = gsi_last_nondebug_bb (bb);
+  if (gsi_end_p (gsi))
+    return;
+  gimple *s = gsi_stmt (gsi);
+  if (!is_a<greturn *> (s))
+    return;
+
+  // Check if the single return value is a symbolic and supported type.
+  greturn *gret = as_a<greturn *> (s);
+  tree op = gimple_return_retval (gret);
+  if (!gimple_range_ssa_p (op))
+    return;
+  tree lhs_type = TREE_TYPE (op);
+  if (!irange::supports_p (lhs_type))
+    return;
+
+  // Only values of interest are when the return value is 1.  The defintion
+  // of the return value must be in the same block, or we have
+  // complicated flow control we don't understand, and just return.
+  unsigned prec = TYPE_PRECISION (lhs_type);
+  int_range<2> lhs_range (lhs_type, wi::one (prec), wi::one (prec));
+
+  gimple *def = SSA_NAME_DEF_STMT (op);
+  if (!def || gimple_get_lhs (def) != op || gimple_bb (def) != bb)
+    return;
+
+  // Determine if this is a PHI or a linear sequence to deal with.
+  if (is_a<gphi *> (def))
+    calculate_phi (as_a<gphi *> (def), lhs_range);
+  else
+    process_stmts (def, lhs_range);
+
+  if (dump_file)
+    fprintf (dump_file, "Assumptions :\n--------------\n");
+
+  // Now export any interesting values that were found.
+  bitmap_iterator bi;
+  unsigned x;
+  EXECUTE_IF_SET_IN_BITMAP (m_parm_list, 0, x, bi)
+    {
+      tree name = ssa_name (x);
+      tree type = TREE_TYPE (name);
+      Value_Range assume_range (type);
+      // Set the global range of NAME to anything calculated.
+      if (m_parms.get_range (assume_range, name) && !assume_range.varying_p ())
+	{
+	  set_range_info (name, assume_range);
+	  if (dump_file)
+	    {
+	      print_generic_expr (dump_file, name, TDF_SLIM);
+	      fprintf (dump_file, " -> ");
+	      assume_range.dump (dump_file);
+	      fputc ('\n', dump_file);
+	    }
+	}
+    }
+}
+
+// This function Will update all the current value of interesting parameters.
+// It tries, in order:
+//    a) a range found via path calculations.
+//    b) range of the parm at SRC point in the IL. (either edge or stmt)
+//    c) VARYING if those options fail.
+//  The value is then unioned with any existing value, allowing for the
+//  cumulation of all ranges leading to the return that return 1.
+
+void
+assume_query::update_parms (fur_source &src)
+{
+  // Merge any parameter values.
+  bitmap_iterator bi;
+  unsigned x;
+  EXECUTE_IF_SET_IN_BITMAP (m_parm_list, 0, x, bi)
+    {
+      tree name = ssa_name (x);
+      tree type = TREE_TYPE (name);
+
+      // Find a valu efrom calculations.
+      Value_Range glob_range (type);
+      if (!m_path.get_range (glob_range, name)
+	  && !src.get_operand (glob_range, name))
+	glob_range.set_varying (type);
+
+      // Find any current value of parm, and combine them.
+      Value_Range parm_range (type);
+      if (m_parms.get_range (parm_range, name))
+	glob_range.union_ (parm_range);
+
+      // Set this new value.
+      m_parms.set_range (name, glob_range);
+    }
+  // Now reset the path values for the next path.
+  m_path.clear ();
+}
+
+
+// Evaluate PHI statement, using the provided LHS range.
+// Only process edge that are both taken and returns the LHS of the PHI.
+
+void
+assume_query::calculate_phi (gphi *phi, vrange &lhs_range)
+{
+  for (unsigned x= 0; x < gimple_phi_num_args (phi); x++)
+    {
+      tree arg = gimple_phi_arg_def (phi, x);
+      Value_Range arg_range (TREE_TYPE (arg));
+      edge e = gimple_phi_arg_edge (phi, x);
+      Value_Range edge_range (TREE_TYPE (arg));
+      // If we can't get an edge range, be conservative and assume the
+      // edge can be taken.
+      // NOte this can be either an ssa_name or a constant.
+      if (m_ranger->range_on_edge (edge_range, e, arg))
+	{
+	  if (gimple_range_ssa_p (arg))
+	    {
+	      arg_range = lhs_range;
+	      range_cast (arg_range, TREE_TYPE (arg));
+
+	      // An SSA_NAME arg will start with the LHS value.
+	      // Check the range of ARG on the edge leading here.  If that range
+	      // cannot be any value from the LHS of the PHI, then this branch
+	      // will not  be taken to return the LHS value and can be ignored.
+	      arg_range.intersect (edge_range);
+	      if (arg_range.undefined_p ())
+		continue;
+
+	      // If the def is in the immediate preceeding block, process it
+	      // with GORI to determine what values can produce this
+	      // argument value.  Otherwise there is more flow, so just query
+	      // the edge for parm ranges and be conservative.
+	      gimple *def_stmt = SSA_NAME_DEF_STMT (arg);
+	      if (def_stmt && gimple_get_lhs (def_stmt) == arg
+		  && gimple_bb (def_stmt) == e->src)
+		{
+		  process_stmts (def_stmt, arg_range);
+		  continue;
+		}
+	      // Fall through to process the edge.
+	    }
+	  else
+	    {
+	      // If this is a constant value that differs from LHS, this
+	      // edge cannot be taken and we can ignore it. Otherwise fall
+	      // thorugh and process the edge.
+	      edge_range.intersect (lhs_range);
+	      if (edge_range.undefined_p ())
+		continue;
+	    }
+	}
+      // If this point is reached the edge needs processing.
+      fur_edge src (e, m_ranger);
+      update_parms (src);
+    }
+}
+
+// Evaluate operand OP on statement S, using the provided LHS range.
+// If successful, set the range in path table, then visit OP's def stmt
+// if it is in the same BB.
+
+void
+assume_query::calculate_op (tree op, gimple *s, vrange &lhs, fur_source &src)
+{
+  basic_block bb = gimple_bb (s);
+  Value_Range op_range (TREE_TYPE (op));
+  if (src.gori () &&
+      src.gori ()->compute_operand_range (op_range, s, lhs, op, src)
+      && !op_range.varying_p ())
+    {
+      // Set the global range, merging if there is already a range.
+      m_path.merge_range (op, op_range);
+      gimple *def_stmt = SSA_NAME_DEF_STMT (op);
+      // Terminate if the patway leads to a different block as we
+      // are not analyzing flow.
+      if (def_stmt && gimple_get_lhs (def_stmt) == op
+	  && gimple_bb (def_stmt) == bb)
+	calculate_stmt (def_stmt, op_range, src);
+    }
+}
+
+
+// Evaluate statement S which produces range LHS_RANGE.  Use GORI to
+// determine what values the operands can have to produce the LHS,
+// and set these in the M_PATH table.
+
+void
+assume_query::calculate_stmt (gimple *s, vrange &lhs_range, fur_source &src)
+{
+  gimple_range_op_handler handler (s);
+  if (handler)
+    {
+      tree op = gimple_range_ssa_p (handler.operand1 ());
+      if (op)
+	calculate_op (op, s, lhs_range, src);
+      op = gimple_range_ssa_p (handler.operand2 ());
+      if (op)
+	calculate_op (op, s, lhs_range, src);
+    }
+}
+
+namespace {
+
+const pass_data pass_data_assumptions =
+{
+  GIMPLE_PASS, /* type */
+  "assumptions", /* name */
+  OPTGROUP_NONE, /* optinfo_flags */
+  TV_TREE_ASSUMPTIONS, /* tv_id */
+  PROP_ssa, /* properties_required */
+  PROP_assumptions_done, /* properties_provided */
+  0, /* properties_destroyed */
+  0, /* todo_flags_start */
+  0, /* todo_flags_end */
+};
+
+
+class pass_assumptions : public gimple_opt_pass
+{
+public:
+  pass_assumptions (gcc::context *ctxt)
+    : gimple_opt_pass (pass_data_assumptions, ctxt)
+  {}
+
+  /* opt_pass methods: */
+  bool gate (function *fun) final override { return fun->assume_function; }
+  unsigned int execute (function *fun) final override
+    {
+      // Create a bitmap of all the paramters in this function.
+      // Invoke the assume_query to detemine what values these parameters
+      // have when the function returns TRUE, and set the globals value of
+      // those parameters in this function based on that.  This will later be
+      // utilized by ranger when prcessing the builtin_assumer function.
+      auto_bitmap decls;
+      for (tree arg = DECL_ARGUMENTS (fun->decl); arg; arg = DECL_CHAIN (arg))
+	{
+	  tree name = ssa_default_def (fun, arg);
+	  if (!name || !gimple_range_ssa_p (name))
+	    continue;
+	  tree type = TREE_TYPE (name);
+	  if (!Value_Range::supports_type_p (type))
+	    continue;
+	  bitmap_set_bit (decls, SSA_NAME_VERSION (name));
+	}
+      // If there are no parameters to map, simply return;
+      if (bitmap_empty_p (decls))
+	return TODO_discard_function;
+
+      gimple_ranger *ranger = enable_ranger (fun);
+
+      // This assume query will set any global values required.
+      assume_query query (ranger, fun, decls);
+
+      disable_ranger (fun);
+      if (dump_file)
+	gimple_dump_cfg (dump_file, dump_flags & ~TDF_DETAILS);
+
+      return TODO_discard_function;
+    }
+
+}; // class pass_assumptions
+
+} // anon namespace
+
+gimple_opt_pass *
+make_pass_assumptions (gcc::context *ctx)
+{
+  return new pass_assumptions (ctx);
+}
diff --git a/gcc/tree-vrp.cc b/gcc/tree-vrp.cc
index a36c08f469a..252a43427f8 100644
--- a/gcc/tree-vrp.cc
+++ b/gcc/tree-vrp.cc
@@ -1315,68 +1315,6 @@ public:
   bool final_p;
 }; // class pass_vrp
 
-const pass_data pass_data_assumptions =
-{
-  GIMPLE_PASS, /* type */
-  "assumptions", /* name */
-  OPTGROUP_NONE, /* optinfo_flags */
-  TV_TREE_ASSUMPTIONS, /* tv_id */
-  PROP_ssa, /* properties_required */
-  PROP_assumptions_done, /* properties_provided */
-  0, /* properties_destroyed */
-  0, /* todo_flags_start */
-  0, /* todo_flags_end */
-};
-
-class pass_assumptions : public gimple_opt_pass
-{
-public:
-  pass_assumptions (gcc::context *ctxt)
-    : gimple_opt_pass (pass_data_assumptions, ctxt)
-  {}
-
-  /* opt_pass methods: */
-  bool gate (function *fun) final override { return fun->assume_function; }
-  unsigned int execute (function *) final override
-    {
-      assume_query query;
-      if (dump_file)
-	fprintf (dump_file, "Assumptions :\n--------------\n");
-
-      for (tree arg = DECL_ARGUMENTS (cfun->decl); arg; arg = DECL_CHAIN (arg))
-	{
-	  tree name = ssa_default_def (cfun, arg);
-	  if (!name || !gimple_range_ssa_p (name))
-	    continue;
-	  tree type = TREE_TYPE (name);
-	  if (!Value_Range::supports_type_p (type))
-	    continue;
-	  Value_Range assume_range (type);
-	  if (query.assume_range_p (assume_range, name))
-	    {
-	      // Set the global range of NAME to anything calculated.
-	      set_range_info (name, assume_range);
-	      if (dump_file)
-		{
-		  print_generic_expr (dump_file, name, TDF_SLIM);
-		  fprintf (dump_file, " -> ");
-		  assume_range.dump (dump_file);
-		  fputc ('\n', dump_file);
-		}
-	    }
-	}
-      if (dump_file)
-	{
-	  fputc ('\n', dump_file);
-	  gimple_dump_cfg (dump_file, dump_flags & ~TDF_DETAILS);
-	  if (dump_flags & TDF_DETAILS)
-	    query.dump (dump_file);
-	}
-      return TODO_discard_function;
-    }
-
-}; // class pass_assumptions
-
 } // anon namespace
 
 gimple_opt_pass *
@@ -1396,9 +1334,3 @@ make_pass_fast_vrp (gcc::context *ctxt)
 {
   return new pass_vrp (ctxt, pass_data_fast_vrp, false);
 }
-
-gimple_opt_pass *
-make_pass_assumptions (gcc::context *ctx)
-{
-  return new pass_assumptions (ctx);
-}

commit 2a9fbe1920779b65eb817db7ce0c60096b0cea9e
Author: Andrew MacLeod <amacleod@redhat.com>
Date:   Thu Oct 31 14:07:00 2024 -0400

    Update bitwise_or op_range.
    
    If the LHS of a bitwise OR is positive, then so are both operands when
    using op1_range or op2_range.
    
            gcc/
            * range-op.cc (operator_bitwise_or::op1_range): If LHS is signed
            positive, so are both operands.
    
            gcc/testsuite
            * g++.dg/cpp23/attr-assume-opt.C (f2b): Alternate flow test.

diff --git a/gcc/range-op.cc b/gcc/range-op.cc
index 4ccb86ef0ba..d1a1cd73687 100644
--- a/gcc/range-op.cc
+++ b/gcc/range-op.cc
@@ -3738,6 +3738,19 @@ operator_bitwise_or::op1_range (irange &r, tree type,
       r.set_zero (type);
       return true;
     }
+
+  //   if (A < 0 && B < 0)
+  // Sometimes gets translated to
+  //   _1 = A | B
+  //   if (_1 < 0))
+  // It is useful for ranger to recognize a positive LHS means the RHS
+  // operands are also positive when dealing with the ELSE range..
+  if (TYPE_SIGN (type) == SIGNED && wi::ge_p (lhs.lower_bound (), 0, SIGNED))
+    {
+      unsigned prec = TYPE_PRECISION (type);
+      r.set (type, wi::zero (prec), wi::max_value (prec, SIGNED));
+      return true;
+    }
   r.set_varying (type);
   return true;
 }
diff --git a/gcc/testsuite/g++.dg/cpp23/attr-assume-opt.C b/gcc/testsuite/g++.dg/cpp23/attr-assume-opt.C
index 88d5e78dbba..e61ba7a27e0 100644
--- a/gcc/testsuite/g++.dg/cpp23/attr-assume-opt.C
+++ b/gcc/testsuite/g++.dg/cpp23/attr-assume-opt.C
@@ -38,5 +38,40 @@ f3 (int x, int y, int z)
   return 1;
 }
 
+// This is the same as f2, except there is more complicated flow and 
+// required a range-op update to bitwise or.
+
+void barn(int x);
+// assume (x+12 == 14 && y >= 0 && y + 10 < 13 && z + 4 >= 4 && z - 2 < 18)
+// in different order and form with function calls to cause branches.
+bool assume_func (int x, int y, int z)
+{
+  if (z - 2 >= 18)
+    return false;
+  if (x+12 != 14)
+    return false;
+  barn (x);
+  if (y < 0)
+    return false;
+  if (z + 4 < 4)
+    return false;
+  barn (y);
+  if (y + 10 >= 13)
+    return false;
+  barn (z);
+  return true;
+}
+
+int
+f2b (int x, int y, int z)
+{
+  [[assume (assume_func (x, y, z))]];
+  unsigned q = x + y + z;
+  if (q*2 > 46)
+    return 0;
+  return 1;
+}
+
+
 /* { dg-final { scan-tree-dump-times "return 0" 0 "vrp2" } } */
-/* { dg-final { scan-tree-dump-times "return 1" 3 "vrp2" } } */
+/* { dg-final { scan-tree-dump-times "return 1" 4 "vrp2" } } */

commit 3ed8c16f618461670336c84d1fbc713f086f30bd
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon May 20 14:33:14 2024 +0200

    ada: Fix crash on real literal in declare expression of expression function
    
    The problem is that the freeze node of the type to which the real literal
    is resolved is placed inside the expression function instead of outside.
    
    gcc/ada/
    
            * freeze.adb (Freeze_Expression): Also attach pending freeze nodes
            to the parent in the case of an internal block in a spec expression.

diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index d032b75f1f2..4c3c45d7975 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -8701,7 +8701,8 @@ package body Freeze is
             end if;
 
             --  The current scope may be that of a constrained component of
-            --  an enclosing record declaration, or of a loop of an enclosing
+            --  an enclosing record declaration, or a block of an enclosing
+            --  declare expression in Ada 2022, or of a loop of an enclosing
             --  quantified expression or aggregate with an iterated component
             --  in Ada 2022, which is above the current scope in the scope
             --  stack. Indeed in the context of a quantified expression or
@@ -8713,7 +8714,7 @@ package body Freeze is
 
             if not Is_Compilation_Unit (Current_Scope)
               and then (Is_Record_Type (Scope (Current_Scope))
-                         or else (Ekind (Current_Scope) = E_Loop
+                         or else (Ekind (Current_Scope) in E_Block | E_Loop
                                    and then Is_Internal (Current_Scope)))
             then
                Pos := Pos - 1;

commit eb929c391fe1e6c2e343abbf9464210554da415b
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Oct 16 09:05:55 2024 +0200

    ada: Fix crash on default value with nested iterated component associations
    
    The problem is that the freeze node for the type of the element ends up in
    the component list of the record type declared with the default value.
    
    gcc/ada/ChangeLog:
    
            PR ada/113036
            * freeze.adb (Freeze_Expression): Deal with freezing actions coming
            from within nested internal loops present in spec expressions.

diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb
index 4c3c45d7975..6da4460c130 100644
--- a/gcc/ada/freeze.adb
+++ b/gcc/ada/freeze.adb
@@ -8684,8 +8684,9 @@ package body Freeze is
         or else Ekind (Current_Scope) = E_Void
       then
          declare
-            Freeze_Nodes : List_Id := No_List;
-            Pos          : Int     := Scope_Stack.Last;
+            Freeze_Nodes : List_Id   := No_List;
+            Pos          : Int       := Scope_Stack.Last;
+            Scop         : Entity_Id := Current_Scope;
 
          begin
             if Present (Desig_Typ) then
@@ -8712,12 +8713,18 @@ package body Freeze is
             --  If the expression is within a top-level pragma, as for a pre-
             --  condition on a library-level subprogram, nothing to do.
 
-            if not Is_Compilation_Unit (Current_Scope)
-              and then (Is_Record_Type (Scope (Current_Scope))
-                         or else (Ekind (Current_Scope) in E_Block | E_Loop
-                                   and then Is_Internal (Current_Scope)))
-            then
-               Pos := Pos - 1;
+            if not Is_Compilation_Unit (Scop) then
+               if Is_Record_Type (Scope (Scop)) then
+                  Pos := Pos - 1;
+
+               else
+                  while Ekind (Scop) in E_Block | E_Loop
+                    and then Is_Internal (Scop)
+                  loop
+                     Pos  := Pos - 1;
+                     Scop := Scope (Scop);
+                  end loop;
+               end if;
             end if;
 
             if Is_Non_Empty_List (Freeze_Nodes) then

commit 8f2cc62785ea115212e70472956210835d0c8106
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Sat Oct 19 17:54:59 2024 +0200

    testsuite: arm: Relax cbranch tests to accept inverted branches
    
    Similar to PR113502, but for non-aarch64 test.
    The test started to fail after r14-7243-gafac1bd3365.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/vect-early-break-cbranch.c: Ignore exact
            branch.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit d56d2f3102ada3d68eaa318de4b6d1a17d9cd74d)

diff --git a/gcc/testsuite/gcc.target/arm/vect-early-break-cbranch.c b/gcc/testsuite/gcc.target/arm/vect-early-break-cbranch.c
index d5c6d56ec86..334e064a239 100644
--- a/gcc/testsuite/gcc.target/arm/vect-early-break-cbranch.c
+++ b/gcc/testsuite/gcc.target/arm/vect-early-break-cbranch.c
@@ -20,7 +20,7 @@ int b[N] = {0};
 **	cmp	r[0-9]+, #0
 **	bne	\.L[0-9]+
 ** |
-**	cbnz	r[0-9]+, \.L.+
+**	cbn?z	r[0-9]+, \.L.+
 ** )
 **	...
 */
@@ -45,7 +45,7 @@ void f1 ()
 **	cmp	r[0-9]+, #0
 **	bne	\.L[0-9]+
 ** |
-**	cbnz	r[0-9]+, \.L.+
+**	cbn?z	r[0-9]+, \.L.+
 ** )
 **	...
 */
@@ -70,7 +70,7 @@ void f2 ()
 **	cmp	r[0-9]+, #0
 **	bne	\.L[0-9]+
 ** |
-**	cbnz	r[0-9]+, \.L.+
+**	cbn?z	r[0-9]+, \.L.+
 ** )
 **	...
 */
@@ -96,7 +96,7 @@ void f3 ()
 **	cmp	r[0-9]+, #0
 **	bne	\.L[0-9]+
 ** |
-**	cbnz	r[0-9]+, \.L.+
+**	cbn?z	r[0-9]+, \.L.+
 ** )
 **	...
 */
@@ -121,7 +121,7 @@ void f4 ()
 **	cmp	r[0-9]+, #0
 **	bne	\.L[0-9]+
 ** |
-**	cbnz	r[0-9]+, \.L.+
+**	cbn?z	r[0-9]+, \.L.+
 ** )
 **	...
 */
@@ -146,7 +146,7 @@ void f5 ()
 **	cmp	r[0-9]+, #0
 **	bne	\.L[0-9]+
 ** |
-**	cbnz	r[0-9]+, \.L.+
+**	cbn?z	r[0-9]+, \.L.+
 ** )
 **	...
 */

commit 05ffc649504f1eff8cd044565997754a301aaf1d
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Sat Oct 19 19:55:51 2024 +0200

    testsuite: arm: Use effective-target for data-intrinsics-assembly test
    
    The expected assembler in the test case assumes -marm, so explicily
    require it.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/acle/data-intrinsics-assembly.c: Use
            effective-target arm_arch_v6_arm.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 7b2e6e6be6fdb3cbb2e21e190a981731b322bf4f)

diff --git a/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-assembly.c b/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-assembly.c
index 478cbde1600..f0f583734e8 100644
--- a/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-assembly.c
+++ b/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-assembly.c
@@ -1,9 +1,9 @@
 /* Test the ACLE data intrinsics get expanded to the correct instructions on a specific architecture  */
 /* { dg-do assemble } */
 /* { dg-require-effective-target arm_softfp_ok } */
-/* { dg-require-effective-target arm_arch_v6_ok } */
+/* { dg-require-effective-target arm_arch_v6_arm_ok } */
 /* { dg-additional-options "--save-temps -O1" } */
-/* { dg-add-options arm_arch_v6 } */
+/* { dg-add-options arm_arch_v6_arm } */
 /* { dg-final { check-function-bodies "**" "" "" } } */
 
 #include "arm_acle.h"

commit 7cc64ea49616b7bca4e7d950e25fd2cc9e4111ef
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Thu Oct 31 18:54:30 2024 +0100

    testsuite: arm: Force hard ABI for pr51534.c test
    
    The test case is written in a way that it should be using hard float
    ABI, but the use of -mfloat-abi=hard could be overriden by
    dg-add-options arm_neon. Ensure that -mfloat-abi=hard is always after.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/pr51534.c: Ensure -mfloat-abi=hard is used.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit e995866cff2866512cd3af24b6ca27a5782aca1f)

diff --git a/gcc/testsuite/gcc.target/arm/pr51534.c b/gcc/testsuite/gcc.target/arm/pr51534.c
index ba21259bee5..b68ecce2639 100644
--- a/gcc/testsuite/gcc.target/arm/pr51534.c
+++ b/gcc/testsuite/gcc.target/arm/pr51534.c
@@ -3,8 +3,9 @@
 
 /* { dg-do assemble { target { arm_hard_ok } } } */
 /* { dg-require-effective-target arm_neon_ok } */
-/* { dg-options "-save-temps -mfloat-abi=hard -O3" } */
+/* { dg-options "-save-temps -O3" } */
 /* { dg-add-options arm_neon } */
+/* { dg-additional-options "-mfloat-abi=hard" } */
 
 #include <arm_neon.h>
 

commit 66a3827379e8863d9025b7881543d2bffe771aee
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Thu Oct 24 10:40:27 2024 +0200

    testsuite: arm: Use effective-target for memset-inline* tests
    
    As these tests are set to execute and require neon hardware to do so,
    add the missing dg-require-effective-target arm_neon_hw.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/memset-inline-4.c: Use effective-target
            arm_neon_hw.
            * gcc.target/arm/memset-inline-5.c: Likewise.
            * gcc.target/arm/memset-inline-6.c: Likewise.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>

diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-4.c b/gcc/testsuite/gcc.target/arm/memset-inline-4.c
index 5d7223ef2c0..fc5f4aeed85 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-4.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-4.c
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
+/* { dg-require-effective-target arm_neon_hw } */
 /* { dg-options "-save-temps -O2 -fno-inline" } */
 /* { dg-add-options "arm_neon" } */
 
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-5.c b/gcc/testsuite/gcc.target/arm/memset-inline-5.c
index 6e7ae65eef4..683290771cf 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-5.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-5.c
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
+/* { dg-require-effective-target arm_neon_hw } */
 /* { dg-options "-save-temps -O2 -fno-inline" } */
 /* { dg-add-options "arm_neon" } */
 
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-6.c b/gcc/testsuite/gcc.target/arm/memset-inline-6.c
index ae226346d48..66c242eebbe 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-6.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-6.c
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
+/* { dg-require-effective-target arm_neon_hw } */
 /* { dg-options "-save-temps -O2 -fno-inline" } */
 /* { dg-add-options "arm_neon" } */
 

commit e1154e294b3d8f7267612afb2113b2572cb39e33
Author: Andrew MacLeod <amacleod@redhat.com>
Date:   Sat Nov 2 10:26:24 2024 -0400

    Don't call invert on VARYING.
    
    When all cases go to one label and resul in a VARYING value, we can't
    invert that value to remove all values from the default case. Simply
    check for this case and set the default to UNDEFINED.
    
            PR tree-optimization/117398
            gcc/
            * gimple-range-edge.cc (gimple_outgoing_range::calc_switch_ranges):
            Check for VARYING and don't call invert () on it.
    
            gcc/testsuite/
            * gcc.dg/pr117398.c: New.

diff --git a/gcc/gimple-range-edge.cc b/gcc/gimple-range-edge.cc
index 3811a0995aa..ad51c270d4b 100644
--- a/gcc/gimple-range-edge.cc
+++ b/gcc/gimple-range-edge.cc
@@ -147,8 +147,14 @@ gimple_outgoing_range::calc_switch_ranges (gswitch *sw)
       // Remove the case range from the default case.
       int_range_max def_range (type, low, high);
       range_cast (def_range, type);
-      def_range.invert ();
-      default_range.intersect (def_range);
+      // If all possible values are taken, set default_range to UNDEFINED.
+      if (def_range.varying_p ())
+	default_range.set_undefined ();
+      else
+	{
+	  def_range.invert ();
+	  default_range.intersect (def_range);
+	}
 
       // Create/union this case with anything on else on the edge.
       int_range_max case_range (type, low, high);
diff --git a/gcc/testsuite/gcc.dg/pr117398.c b/gcc/testsuite/gcc.dg/pr117398.c
new file mode 100644
index 00000000000..c43f2a3ed6b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr117398.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+int a;
+void c(void);
+int d(_Bool b) {
+  switch (b+0) {
+  case 0:
+    break;
+  case 1:
+    break;
+  default:
+    c();
+  }
+  if (b)
+    return a;
+}

commit d0fe096766139a068ba7030ce9d4b82e534abe22
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Nov 5 00:24:42 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 52840d998b9..0cc0c811e6b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,58 @@
+2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
+
+	PR tree-optimization/117398
+	* gimple-range-edge.cc (gimple_outgoing_range::calc_switch_ranges):
+	Check for VARYING and don't call invert () on it.
+
+2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
+
+	* range-op.cc (operator_bitwise_or::op1_range): If LHS is signed
+	positive, so are both operands.
+
+2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
+
+	PR tree-optimization/117287
+	* Makefile.in (IBJS): Add tree-assume.o
+	* gimple-range.cc (assume_query::assume_range_p): Remove.
+	(assume_query::range_of_expr): Remove.
+	(assume_query::assume_query): Move to tree-assume.cc.
+	(assume_query::~assume_query): Remove.
+	(assume_query::calculate_op): Move to tree-assume.cc.
+	(assume_query::calculate_phi): Likewise.
+	(assume_query::check_taken_edge): Remove.
+	(assume_query::calculate_stmt): Move to tree-assume.cc.
+	(assume_query::dump): Remove.
+	* gimple-range.h (class assume_query): Move to tree-assume.cc
+	* tree-assume.cc: New
+	* tree-vrp.cc (struct pass_data_assumptions): Move to tree-assume.cc.
+	(class pass_assumptions): Likewise.
+	(make_pass_assumptions): Likewise.
+
+2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
+
+	* gimple-range-fold.cc (class fur_edge): Relocate from here.
+	(fur_edge::fur_edge): Also move to:
+	* gimple-range-fold.h (class fur_edge): Relocate to here.
+	(fur_edge::fur_edge): Likewise.
+
+2024-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-31  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/117354
+	* expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Pass
+	true as inner_reference_p argument to expand_expr_real if
+	mode is BLKmode.  Don't call extract_bit_field if mode is BLKmode.
+
+2024-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-30  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/117296
+	* function.cc (assign_parms): Call do_pending_stack_adjust.
+
 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
 
 	* config/i386/cmpccxaddintrin.h (_cmpccxadd_epi32): Do not do
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 9a7f1aceb27..30cad970f74 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241104
+20241105
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 872520e2e31..100c9065d84 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,21 @@
+2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/113036
+	* freeze.adb (Freeze_Expression): Deal with freezing actions coming
+	from within nested internal loops present in spec expressions.
+
+2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* freeze.adb (Freeze_Expression): Also attach pending freeze nodes
+	to the parent in the case of an internal block in a spec expression.
+
+2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* checks.adb (Selected_Length_Checks.Get_E_Length): For a
+	component of a record with discriminants and if the expression is
+	a selected component, try to build an actual subtype from its
+	prefix instead of from the discriminal.
+
 2024-10-25  Eric Botcazou  <ebotcazou@adacore.com>
 
 	PR ada/116551
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8f1cb0c027d..350c7e42d15 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,67 @@
+2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
+
+	PR tree-optimization/117398
+	* gcc.dg/pr117398.c: New.
+
+2024-11-04  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/memset-inline-4.c: Use effective-target
+	arm_neon_hw.
+	* gcc.target/arm/memset-inline-5.c: Likewise.
+	* gcc.target/arm/memset-inline-6.c: Likewise.
+
+2024-11-04  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-04  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/pr51534.c: Ensure -mfloat-abi=hard is used.
+
+2024-11-04  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-04  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/acle/data-intrinsics-assembly.c: Use
+	effective-target arm_arch_v6_arm.
+
+2024-11-04  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-04  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/vect-early-break-cbranch.c: Ignore exact
+	branch.
+
+2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
+
+	* g++.dg/cpp23/attr-assume-opt.C (f2b): Alternate flow test.
+
+2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
+
+	PR tree-optimization/117287
+	* g++.dg/cpp23/pr117287-attr.C: New.
+
+2024-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-31  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/117354
+	* gcc.dg/bitint-113.c: New test.
+
+2024-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-30  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/117296
+	* gcc.target/i386/pr117296.c: New test.
+
+2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* gnat.dg/specs/array7.ads: New test.
+
 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
 
 	* gcc.target/i386/cmpccxadd-1b.c: New test.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index e74e5459adf..d89c61cb30f 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,43 @@
+2024-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+	PR libstdc++/117406
+	* testsuite/26_numerics/headers/cmath/117406.cc: Use
+	std::numeric_limits<int>::max() instead of INT_MAX.
+
+2024-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-02  Jakub Jelinek  <jakub@redhat.com>
+
+	PR libstdc++/117406
+	* include/c_global/cmath (std::ilogb(_Float16), std::llrint(_Float16),
+	std::llround(_Float16), std::lrint(_Float16), std::lround(_Float16)):
+	Don't cast __builtin_* return to _Float16.
+	(std::ilogb(__gnu_cxx::__bfloat16_t),
+	std::llrint(__gnu_cxx::__bfloat16_t),
+	std::llround(__gnu_cxx::__bfloat16_t),
+	std::lrint(__gnu_cxx::__bfloat16_t),
+	std::lround(__gnu_cxx::__bfloat16_t)): Don't cast __builtin_* return to
+	__gnu_cxx::__bfloat16_t.
+	* testsuite/26_numerics/headers/cmath/117406.cc: New test.
+
+2024-11-04  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-10-29  Jakub Jelinek  <jakub@redhat.com>
+
+	PR libstdc++/117321
+	* include/c_global/cmath (nextafter(_Float16, _Float16)): Use
+	if consteval rather than if (std::__is_constant_evaluated()) around
+	the __builtin_nextafterf16 call.
+	(nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): Use
+	if consteval rather than if (std::__is_constant_evaluated()) around
+	the __builtin_nextafterf16b call.
+	* testsuite/26_numerics/headers/cmath/117321.cc: New test.
+
 2024-10-22  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:

commit c16e4ecd8fdc2230a313fe795333fa97652ba19f
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Tue Nov 5 15:54:45 2024 +0000

    Fortran: Fix regressions with intent(out) class[PR115070, PR115348].
    
    2024-11-05  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/115070
            PR fortran/115348
            * trans-expr.cc (gfc_trans_class_init_assign): If all the
            components of the default initializer are null for a scalar,
            build an empty statement to prevent prior declarations from
            disappearing.
    
    gcc/testsuite/
            PR fortran/115070
            * gfortran.dg/ieee/pr115070.f90: New test.
    
            PR fortran/115348
            * gfortran.dg/pr115348.f90: New test.

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 3a5a4140185..f182ea2ee1c 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -1723,10 +1723,12 @@ gfc_trans_class_init_assign (gfc_code *code)
 {
   stmtblock_t block;
   tree tmp;
+  bool cmp_flag = true;
   gfc_se dst,src,memsz;
   gfc_expr *lhs, *rhs, *sz;
   gfc_component *cmp;
   gfc_symbol *sym;
+  gfc_ref *ref;
 
   gfc_start_block (&block);
 
@@ -1744,24 +1746,25 @@ gfc_trans_class_init_assign (gfc_code *code)
   rhs->rank = 0;
 
   /* Check def_init for initializers.  If this is an INTENT(OUT) dummy with all
-     default initializer components NULL, return NULL_TREE and use the passed
-     value as required by F2018(8.5.10).  */
+     default initializer components NULL, use the passed value even though
+     F2018(8.5.10) asserts that it should considered to be undefined. This is
+     needed for consistency with other brands.  */
   sym = code->expr1->expr_type == EXPR_VARIABLE ? code->expr1->symtree->n.sym
 						: NULL;
   if (code->op != EXEC_ALLOCATE
       && sym && sym->attr.dummy
       && sym->attr.intent == INTENT_OUT)
     {
-      if (!lhs->ref && lhs->symtree->n.sym->attr.dummy)
+      ref = rhs->ref;
+      while (ref && ref->next)
+	ref = ref->next;
+      cmp = ref->u.c.component->ts.u.derived->components;
+      for (; cmp; cmp = cmp->next)
 	{
-	  cmp = rhs->ref->next->u.c.component->ts.u.derived->components;
-	  for (; cmp; cmp = cmp->next)
-	    {
-	      if (cmp->initializer)
-		break;
-	      else if (!cmp->next)
-		return NULL_TREE;
-	    }
+	  if (cmp->initializer)
+	    break;
+	  else if (!cmp->next)
+	    cmp_flag = false;
 	}
     }
 
@@ -1775,7 +1778,7 @@ gfc_trans_class_init_assign (gfc_code *code)
       gfc_add_full_array_ref (lhs, tmparr);
       tmp = gfc_trans_class_array_init_assign (rhs, lhs, code->expr1);
     }
-  else
+  else if (cmp_flag)
     {
       /* Scalar initialization needs the _data component.  */
       gfc_add_data_component (lhs);
@@ -1805,6 +1808,8 @@ gfc_trans_class_init_assign (gfc_code *code)
 			    tmp, build_empty_stmt (input_location));
 	}
     }
+  else
+    tmp = build_empty_stmt (input_location);
 
   if (code->expr1->symtree->n.sym->attr.dummy
       && (code->expr1->symtree->n.sym->attr.optional
diff --git a/gcc/testsuite/gfortran.dg/ieee/pr115070.f90 b/gcc/testsuite/gfortran.dg/ieee/pr115070.f90
new file mode 100644
index 00000000000..9378f770e2c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/ieee/pr115070.f90
@@ -0,0 +1,28 @@
+! { dg-do compile }
+!
+! Test the fix for PR115070
+!
+! Contributed by Sebastien Bardeau  <bardeau@iram.fr>
+!
+module my_mod
+  type my_type
+    integer :: a
+  contains
+    final :: myfinal
+  end type my_type
+contains
+  subroutine my_sub(obs)
+    use ieee_arithmetic
+    class(my_type), intent(out) :: obs
+  end subroutine my_sub
+  subroutine myfinal (arg)
+    type (my_type) :: arg
+    print *, arg%a
+  end
+end module my_mod
+
+  use my_mod
+  type (my_type) :: z
+  z%a = 42
+  call my_sub (z)
+end
diff --git a/gcc/testsuite/gfortran.dg/pr115348.f90 b/gcc/testsuite/gfortran.dg/pr115348.f90
new file mode 100644
index 00000000000..bc644b2f1c0
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr115348.f90
@@ -0,0 +1,35 @@
+! { dg-do compile }
+! { dg-options "-fcheck=recursion" }
+!
+! Test the fix for pr115348.
+!
+! Contributed by Maxime van den Bossche  <maxime.vandenbossche@kuleuven.be>
+!
+module mymodule
+    implicit none
+
+    type mytype
+        integer :: mynumber
+        contains
+        procedure :: myroutine
+    end type mytype
+
+    contains
+
+    subroutine myroutine(self)
+        class(mytype), intent(out) :: self
+
+        self%mynumber = 1
+    end subroutine myroutine
+end module mymodule
+
+
+program myprogram
+    use mymodule, only: mytype
+    implicit none
+
+    type(mytype) :: myobject
+
+    call myobject%myroutine()
+    print *, myobject%mynumber
+end program myprogram

commit ce25ca4da198ebc269d41ee6a9ac880ae8f67ad6
Author: Jason Merrill <jason@redhat.com>
Date:   Mon Nov 4 17:48:46 2024 -0500

    c++: allow array mem-init with -fpermissive [PR116634]
    
    We've accidentally accepted this forever (at least as far back as 4.7), but
    it's always been ill-formed; this was PR59465.  And we didn't accept it for
    scalar types.  But rather than switch to a hard error for this code, let's
    give a permerror so affected code can continue to work with -fpermissive.
    
            PR c++/116634
    
    gcc/cp/ChangeLog:
    
            * init.cc (can_init_array_with_p): Allow PR59465 case with
            permerror.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/diagnostic/aggr-init1.C: Expect warning with -fpermissive.
            * g++.dg/init/array62.C: Adjust diagnostic.
            * g++.dg/init/array63.C: Adjust diagnostic.
            * g++.dg/init/array64.C: Adjust diagnostic.
    
    (cherry picked from commit 3545aab00152ed3db1d7ce6ca4e1671dde276980)

diff --git a/gcc/cp/init.cc b/gcc/cp/init.cc
index c5ba82c8664..5a994378451 100644
--- a/gcc/cp/init.cc
+++ b/gcc/cp/init.cc
@@ -962,7 +962,9 @@ can_init_array_with_p (tree type, tree init)
 	return true;
     }
 
-  return false;
+  permerror (input_location, "array must be initialized "
+	     "with a brace-enclosed initializer");
+  return true;
 }
 
 /* Initialize MEMBER, a FIELD_DECL, with INIT, a TREE_LIST of
diff --git a/gcc/testsuite/g++.dg/diagnostic/aggr-init1.C b/gcc/testsuite/g++.dg/diagnostic/aggr-init1.C
new file mode 100644
index 00000000000..b4b2d9e69e1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/diagnostic/aggr-init1.C
@@ -0,0 +1,37 @@
+// PR c++/116634
+// { dg-do compile { target c++11 } }
+// { dg-additional-options -fpermissive }
+
+namespace std {
+  using size_t = decltype(sizeof(42));
+}
+
+class ConstString final {
+public:
+    constexpr ConstString() noexcept: buf(), len(0) {}
+    template<int N>
+    constexpr ConstString(const char (&a)[N]): buf(a), len(N - 1) {}
+    constexpr ConstString(const ConstString &c1): buf(c1.buf), len(static_cast<int>(c1.len)) {}
+
+private:
+    const char* buf;
+    int len;
+};
+
+template<int N>
+struct Any final {
+    constexpr
+    Any(ConstString (&&_vec)[N]) noexcept: vec(_vec){} // { dg-warning "array" }
+
+    ConstString vec[N];
+};
+
+template<int... N1>
+constexpr static
+auto Any_of(const char (&...c1)[N1]) -> Any<static_cast<int>(sizeof...(N1))> {
+  return {{ConstString(c1)...}};
+}
+
+int main() {
+  constexpr static const auto aa1 = Any_of("abcd", "def");
+}
diff --git a/gcc/testsuite/g++.dg/init/array62.C b/gcc/testsuite/g++.dg/init/array62.C
index 2a786a36e4e..6d3935d7a66 100644
--- a/gcc/testsuite/g++.dg/init/array62.C
+++ b/gcc/testsuite/g++.dg/init/array62.C
@@ -4,7 +4,7 @@
 struct string {} a[1];
 struct pair {
   string s[1];
-  pair() : s(a) {} // { dg-error "invalid initializer for array member" }
+  pair() : s(a) {} // { dg-error "array must be initialized" }
 };
 
 struct S {
diff --git a/gcc/testsuite/g++.dg/init/array63.C b/gcc/testsuite/g++.dg/init/array63.C
index 57e98056168..96bc9a64b26 100644
--- a/gcc/testsuite/g++.dg/init/array63.C
+++ b/gcc/testsuite/g++.dg/init/array63.C
@@ -7,7 +7,7 @@ struct I {
 struct O {
     I a[2];
     static I const data[2];
-    O() : a(data){}  // { dg-error "invalid initializer for array member" }
+    O() : a(data){}  // { dg-error "array must be initialized" }
 };
 
 I const O::data[2] = {true, false};
diff --git a/gcc/testsuite/g++.dg/init/array64.C b/gcc/testsuite/g++.dg/init/array64.C
index e0afdfab39a..bbdd70c6df8 100644
--- a/gcc/testsuite/g++.dg/init/array64.C
+++ b/gcc/testsuite/g++.dg/init/array64.C
@@ -16,7 +16,7 @@ typedef UserType Array[my_size];
 class Foo
 {
 public:
-  Foo(Array& m) : m_(m) {};  // { dg-error "invalid initializer for array member" }
+  Foo(Array& m) : m_(m) {};  // { dg-error "array must be initialized" }
 private:
   Array m_;
 };

commit 232d539f25b35903db301e94270541baf063f157
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Fri Nov 1 11:11:26 2024 +0100

    testsuite: arm: Use effective-target for pr98636.c test
    
    The test case assumes that -mfp16-format=alternative is accepted for the
    target, but not all targets support this flag. One such target is
    Cortex-M85 that does support FP16, but not the alternative format.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/pr98636.c: Use effective-target
            arm_fp16_alternative.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 4602f628f723688a10c14ab20bd013ba7a825dab)

diff --git a/gcc/testsuite/gcc.target/arm/pr98636.c b/gcc/testsuite/gcc.target/arm/pr98636.c
index 559f9a26c1e..28f05322156 100644
--- a/gcc/testsuite/gcc.target/arm/pr98636.c
+++ b/gcc/testsuite/gcc.target/arm/pr98636.c
@@ -1,6 +1,8 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target arm_softfp_ok } */
-/* { dg-options "-mfp16-format=alternative -mfloat-abi=softfp" } */
+/* { dg-require-effective-target arm_fp16_alternative_ok } */
+/* { dg-options "-mfloat-abi=softfp" } */
+/* { dg-add-options arm_fp16_alternative } */
 
 #pragma GCC push_options
 # pragma GCC target ("arch=armv8.2-a+fp16") /* { dg-error "selected fp16 options are incompatible" } */

commit f23a894f3b5ea42f16c996c76130e0494b1ffff7
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Thu Oct 31 19:00:36 2024 +0100

    testsuite: arm: Use effective-target for pr68620 and pr78041 tests
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/pr68620.c: Use effective-target arm_neon.
            * gcc.target/arm/pr78041.c: Use effective-target arm_arch_v7a.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit c7518891483e2aa558390ffeab4a19ba747814d6)

diff --git a/gcc/testsuite/gcc.target/arm/pr68620.c b/gcc/testsuite/gcc.target/arm/pr68620.c
index 91878432b00..6e38671752f 100644
--- a/gcc/testsuite/gcc.target/arm/pr68620.c
+++ b/gcc/testsuite/gcc.target/arm/pr68620.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-skip-if "-mpure-code supports M-profile without Neon only" { *-*-* } { "-mpure-code" } } */
-/* { dg-require-effective-target arm_fp_ok } */
-/* { dg-options "-mfp16-format=ieee" } */
-/* { dg-add-options arm_fp } */
+/* { dg-require-effective-target arm_arch_v7a_ok } */
+/* { dg-options "-mfp16-format=ieee -mfpu=auto -mfloat-abi=softfp" } */
+/* { dg-add-options arm_arch_v7a } */
 
 #include "arm_neon.h"
 
diff --git a/gcc/testsuite/gcc.target/arm/pr78041.c b/gcc/testsuite/gcc.target/arm/pr78041.c
index 340ab5cb433..418b7e09fc4 100644
--- a/gcc/testsuite/gcc.target/arm/pr78041.c
+++ b/gcc/testsuite/gcc.target/arm/pr78041.c
@@ -1,6 +1,7 @@
 /* { dg-require-effective-target arm_thumb2_ok } */
 /* { dg-require-effective-target arm_neon_ok } */
-/* { dg-options "-fno-inline -mthumb -O1 -mfpu=neon -w" } */
+/* { dg-options "-fno-inline -mthumb -O1 -w" } */
+/* { dg-add-options arm_neon } */
 
 extern void abort (void);
 

commit 124f2f62e01c6f110279608ad09e0f1d378e4899
Author: Patrick Palka <ppalka@redhat.com>
Date:   Tue Nov 5 15:18:26 2024 -0500

    c++: reference variable as default targ [PR101463]
    
    Here during default template argument substitution we wrongly consider
    the (substituted) default arguments v and vt<int> as value-dependent
    which ultimately leads to deduction failure for the calls.
    
    The bogus value_dependent_expression_p result aside, I noticed
    type_unification_real during default targ substitution keeps track of
    whether all previous targs are known and non-dependent, as is the case
    for these calls.  And in such cases it should be safe to avoid checking
    dependence of the substituted default targ and just assume it's not.
    This patch implements this optimization for GCC 14, which lets us accept
    both testcases by sidestepping the value_dependent_expression_p issue
    altogether.  (Note that for GCC 15 we fixed this differently, see
    r15-3038-g5348e3cb9bc99d.)
    
            PR c++/101463
    
    gcc/cp/ChangeLog:
    
            * pt.cc (type_unification_real): Avoid checking dependence of
            a substituted default template argument if we can assume it's
            non-dependent.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp1z/nontype6.C: New test.
            * g++.dg/cpp1z/nontype6a.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 818d5b65edc..4f83426fb56 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -23651,12 +23651,14 @@ type_unification_real (tree tparms,
 		    /* We replaced all the tparms, substitute again out of
 		       template context.  */
 		    substed = NULL_TREE;
+		  else
+		    processing_template_decl = 1;
 		}
 	      if (!substed)
 		substed = tsubst_template_arg (arg, full_targs, complain,
 					       NULL_TREE);
 
-	      if (!uses_template_parms (substed))
+	      if (!processing_template_decl || !uses_template_parms (substed))
 		arg = convert_template_argument (parm, substed, full_targs,
 						 complain, i, NULL_TREE);
 	      else if (saw_undeduced == 1)
diff --git a/gcc/testsuite/g++.dg/cpp1z/nontype6.C b/gcc/testsuite/g++.dg/cpp1z/nontype6.C
new file mode 100644
index 00000000000..06cd234cc61
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/nontype6.C
@@ -0,0 +1,24 @@
+// PR c++/101463
+// { dg-do compile { target c++17 } }
+
+int a;
+
+int& v = a;
+
+template<const int& = v>
+void f(int) { }
+
+template<class T, int& = v>
+void g(T) { }
+
+template<class T>
+int& vt = a;
+
+template<class T, int& = vt<T>>
+void h(T) { }
+
+int main() {
+  f(0);
+  g(0);
+  h(0);
+}
diff --git a/gcc/testsuite/g++.dg/cpp1z/nontype6a.C b/gcc/testsuite/g++.dg/cpp1z/nontype6a.C
new file mode 100644
index 00000000000..8bc40a0505c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/nontype6a.C
@@ -0,0 +1,25 @@
+// PR c++/101463
+// A version of nontype6.C where v and vt are constexpr.
+// { dg-do compile { target c++17 } }
+
+int a;
+
+constexpr int& v = a;
+
+template<const int& = v>
+void f(int) { }
+
+template<class T, const int& = v>
+void g(T) { }
+
+template<class T>
+constexpr int& vt = a;
+
+template<class T, const int& = vt<T>>
+void h(T) { }
+
+int main() {
+  f(0);
+  g(0);
+  h(0);
+}

commit fa7273637e208c5990911376390e797f1c616f5d
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Nov 6 00:24:00 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 30cad970f74..e7bef9850f2 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241105
+20241106
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index be0a8ad9b0b..aab052c5588 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,19 @@
+2024-11-05  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/101463
+	* pt.cc (type_unification_real): Avoid checking dependence of
+	a substituted default template argument if we can assume it's
+	non-dependent.
+
+2024-11-05  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-11-05  Jason Merrill  <jason@redhat.com>
+
+	PR c++/116634
+	* init.cc (can_init_array_with_p): Allow PR59465 case with
+	permerror.
+
 2024-10-25  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 9e06becb4b8..4d778d02a88 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2024-11-05  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/115070
+	PR fortran/115348
+	* trans-expr.cc (gfc_trans_class_init_assign): If all the
+	components of the default initializer are null for a scalar,
+	build an empty statement to prevent prior declarations from
+	disappearing.
+
 2024-11-01  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 350c7e42d15..64cb1452237 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,43 @@
+2024-11-05  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/101463
+	* g++.dg/cpp1z/nontype6.C: New test.
+	* g++.dg/cpp1z/nontype6a.C: New test.
+
+2024-11-05  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-05  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/pr68620.c: Use effective-target arm_neon.
+	* gcc.target/arm/pr78041.c: Use effective-target arm_arch_v7a.
+
+2024-11-05  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-05  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/pr98636.c: Use effective-target
+	arm_fp16_alternative.
+
+2024-11-05  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-11-05  Jason Merrill  <jason@redhat.com>
+
+	PR c++/116634
+	* g++.dg/diagnostic/aggr-init1.C: Expect warning with -fpermissive.
+	* g++.dg/init/array62.C: Adjust diagnostic.
+	* g++.dg/init/array63.C: Adjust diagnostic.
+	* g++.dg/init/array64.C: Adjust diagnostic.
+
+2024-11-05  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/115070
+	PR fortran/115348
+	* gfortran.dg/ieee/pr115070.f90: New test.
+	* gfortran.dg/pr115348.f90: New test.
+
 2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
 
 	PR tree-optimization/117398

commit 951daf54174b88e30feaf413a4de0c8388a06d9d
Author: Simon Martin <simon@nasilyan.com>
Date:   Wed Nov 6 06:54:57 2024 +0100

    c++: Defer -fstrong-eval-order processing to template instantiation time [PR117158]
    
    Since r10-3793-g1a37b6d9a7e57c, we ICE upon the following valid code
    with -std=c++17 and above
    
    === cut here ===
    struct Base {
      unsigned int *intarray;
    };
    template <typename T> struct Sub : public Base {
      bool Get(int i) {
        return (Base::intarray[++i] == 0);
      }
    };
    === cut here ===
    
    The problem is that from c++17 on, we use -fstrong-eval-order and need
    to wrap the array access expression into a SAVE_EXPR. We do so at
    template declaration time, and end up calling contains_placeholder_p
    with a SCOPE_REF, that it does not handle well.
    
    This patch fixes this by deferring the wrapping into SAVE_EXPR to
    instantiation time for templates, when the SCOPE_REF will have been
    turned into a COMPONENT_REF.
    
            PR c++/117158
    
    gcc/cp/ChangeLog:
    
            * typeck.cc (cp_build_array_ref): Only wrap array expression
            into a SAVE_EXPR at template instantiation time.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp1z/eval-order13.C: New test.
            * g++.dg/parse/crash77.C: New test.
    
    (cherry picked from commit b1d92aeb8583c8d1491c97703680c5fb88ed1fe4)

diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc
index a72599bc153..6ca2cee682c 100644
--- a/gcc/cp/typeck.cc
+++ b/gcc/cp/typeck.cc
@@ -4073,7 +4073,8 @@ cp_build_array_ref (location_t loc, tree array, tree idx,
     tree ar = cp_default_conversion (array, complain);
     tree ind = cp_default_conversion (idx, complain);
 
-    if (!first && flag_strong_eval_order == 2 && TREE_SIDE_EFFECTS (ind))
+    if (!processing_template_decl
+	&& !first && flag_strong_eval_order == 2 && TREE_SIDE_EFFECTS (ind))
       ar = first = save_expr (ar);
 
     /* Put the integer in IND to simplify error checking.  */
diff --git a/gcc/testsuite/g++.dg/cpp1z/eval-order13.C b/gcc/testsuite/g++.dg/cpp1z/eval-order13.C
new file mode 100644
index 00000000000..6e8ebeb3096
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/eval-order13.C
@@ -0,0 +1,29 @@
+// PR c++/117158 - Similar to eval-order7.C, only with templates.
+// { dg-do run { target c++11 } }
+// { dg-options "-fstrong-eval-order" }
+
+int a[4] = { 1, 2, 3, 4 };
+int b[4] = { 5, 6, 7, 8 };
+
+struct Base {
+  int *intarray;
+};
+
+template <typename T>
+struct Sub : public Base {
+  int Get(int i) {
+    Base::intarray = a;
+    int r = Base::intarray[(Base::intarray = b, i)];
+    if (Base::intarray != b)
+      __builtin_abort ();
+    return r;
+  }
+};
+
+int
+main ()
+{
+  Sub<int> s;
+  if (s.Get (3) != 4)
+    __builtin_abort ();
+}
diff --git a/gcc/testsuite/g++.dg/parse/crash77.C b/gcc/testsuite/g++.dg/parse/crash77.C
new file mode 100644
index 00000000000..729362eb599
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/crash77.C
@@ -0,0 +1,13 @@
+// PR c++/117158
+// { dg-do "compile" }
+
+struct Base {
+  unsigned int *intarray;
+};
+
+template <typename T>
+struct Sub : public Base {
+  bool Get(int i) {
+    return (Base::intarray[++i] == 0);
+  }
+};

commit 97640e9632697b9f0ab31e4022d24d360d1ea2c9
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Mon Oct 14 13:58:09 2024 +0100

    AArch64: rename the SVE2 psel intrinsics to psel_lane [PR116371]
    
    The psel intrinsics. similar to the pext, should be name psel_lane.  This
    corrects the naming.
    
    gcc/ChangeLog:
    
            PR target/116371
            * config/aarch64/aarch64-sve-builtins-sve2.cc (class svpsel_impl):
            Renamed to ...
            (class svpsel_lane_impl): ... This and adjust initialization.
            * config/aarch64/aarch64-sve-builtins-sve2.def (svpsel): Renamed to ...
            (svpsel_lane): ... This.
            * config/aarch64/aarch64-sve-builtins-sve2.h (svpsel): Renamed to
            svpsel_lane.
    
    gcc/testsuite/ChangeLog:
    
            PR target/116371
            * gcc.target/aarch64/sme2/acle-asm/psel_b16.c,
            gcc.target/aarch64/sme2/acle-asm/psel_b32.c,
            gcc.target/aarch64/sme2/acle-asm/psel_b64.c,
            gcc.target/aarch64/sme2/acle-asm/psel_b8.c,
            gcc.target/aarch64/sme2/acle-asm/psel_c16.c,
            gcc.target/aarch64/sme2/acle-asm/psel_c32.c,
            gcc.target/aarch64/sme2/acle-asm/psel_c64.c,
            gcc.target/aarch64/sme2/acle-asm/psel_c8.c: Renamed to....
            * gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c,
            gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c,
            gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c,
            gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c,
            gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c,
            gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c,
            gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c,
            gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c: ... These.
    
    (cherry picked from commit 306834b7f74ab61160f205e04f5bf35b71f9ec52)

diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc b/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
index 4f25cc68028..06d4d22fc0b 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
@@ -234,7 +234,7 @@ public:
   }
 };
 
-class svpsel_impl : public function_base
+class svpsel_lane_impl : public function_base
 {
 public:
   rtx
@@ -625,7 +625,7 @@ FUNCTION (svpmullb, unspec_based_function, (-1, UNSPEC_PMULLB, -1))
 FUNCTION (svpmullb_pair, unspec_based_function, (-1, UNSPEC_PMULLB_PAIR, -1))
 FUNCTION (svpmullt, unspec_based_function, (-1, UNSPEC_PMULLT, -1))
 FUNCTION (svpmullt_pair, unspec_based_function, (-1, UNSPEC_PMULLT_PAIR, -1))
-FUNCTION (svpsel, svpsel_impl,)
+FUNCTION (svpsel_lane, svpsel_lane_impl,)
 FUNCTION (svqabs, rtx_code_function, (SS_ABS, UNKNOWN, UNKNOWN))
 FUNCTION (svqcadd, svqcadd_impl,)
 FUNCTION (svqcvt, integer_conversion, (UNSPEC_SQCVT, UNSPEC_SQCVTU,
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
index 4366925a971..ef677a74020 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
@@ -235,7 +235,7 @@ DEF_SVE_FUNCTION (svsm4ekey, binary, s_unsigned, none)
 			     | AARCH64_FL_SME \
 			     | AARCH64_FL_SM_ON)
 DEF_SVE_FUNCTION (svclamp, clamp, all_integer, none)
-DEF_SVE_FUNCTION (svpsel, select_pred, all_pred_count, none)
+DEF_SVE_FUNCTION (svpsel_lane, select_pred, all_pred_count, none)
 DEF_SVE_FUNCTION (svrevd, unary, all_data, mxz)
 #undef REQUIRED_EXTENSIONS
 
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.h b/gcc/config/aarch64/aarch64-sve-builtins-sve2.h
index a612ace9415..700ffc6d315 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.h
+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.h
@@ -106,7 +106,7 @@ namespace aarch64_sve
     extern const function_base *const svpmullb_pair;
     extern const function_base *const svpmullt;
     extern const function_base *const svpmullt_pair;
-    extern const function_base *const svpsel;
+    extern const function_base *const svpsel_lane;
     extern const function_base *const svqabs;
     extern const function_base *const svqcadd;
     extern const function_base *const svqcvt;
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b16.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b16.c
deleted file mode 100644
index 5df2aa0b596..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b16.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-**	mov	[wx](1[2-5]), #?0
-**	psel	p0, p2, p7\.h\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svbool_t,
-	       p0 = svpsel_b16 (p2, p7, 0),
-	       p0 = svpsel_b16 (p2, p7, 0))
-
-/*
-** psel_p2_p7_p8_w11:
-**	mov	[wx](1[2-5]), [wx]11
-**	psel	p2, p7, p8\.h\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p7_p8_w11, svbool_t,
-	       p2 = svpsel_b16 (p7, p8, w11),
-	       p2 = svpsel_b16 (p7, p8, w11))
-
-/*
-** psel_p7_p8_p13_w12:
-**	psel	p7, p8, p13\.h\[w12, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p7_p8_p13_w12, svbool_t,
-	       p7 = svpsel_b16 (p8, p13, w12),
-	       p7 = svpsel_b16 (p8, p13, w12))
-
-/*
-** psel_p8_p13_p15_w15:
-**	psel	p8, p13, p15\.h\[w15, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p8_p13_p15_w15, svbool_t,
-	       p8 = svpsel_b16 (p13, p15, w15),
-	       p8 = svpsel_b16 (p13, p15, w15))
-
-/*
-** psel_p13_p15_p0_w16:
-**	mov	[wx](1[2-5]), [wx]16
-**	psel	p13, p15, p0\.h\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p15_p0_w16, svbool_t,
-	       p13 = svpsel_b16 (p15, p0, w16),
-	       p13 = svpsel_b16 (p15, p0, w16))
-
-/*
-** psel_p15_p13_p8_w12p1:
-**	psel	p15, p13, p8\.h\[w12, 1\]
-**	ret
-*/
-TEST_SELECT_P (psel_p15_p13_p8_w12p1, svbool_t,
-	       p15 = svpsel_b16 (p13, p8, w12 + 1),
-	       p15 = svpsel_b16 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p8_p7_w12p7:
-**	psel	p13, p8, p7\.h\[w12, 7\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p8_p7_w12p7, svbool_t,
-	       p13 = svpsel_b16 (p8, p7, w12 + 7),
-	       p13 = svpsel_b16 (p8, p7, w12 + 7))
-
-/*
-** psel_p0_p0_p0_w12p8:
-**	add	(w[0-9]+), w12, #?8
-**	psel	p0, p0, p0\.h\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p0_p0_w12p8, svbool_t,
-	       p0 = svpsel_b16 (p0, p0, w12 + 8),
-	       p0 = svpsel_b16 (p0, p0, w12 + 8))
-
-/*
-** psel_p15_p15_p15_w12m1:
-**	sub	(w[0-9]+), w12, #?1
-**	psel	p15, p15, p15\.h\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p15_p15_p15_w12m1, svbool_t,
-	       p15 = svpsel_b16 (p15, p15, w12 - 1),
-	       p15 = svpsel_b16 (p15, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b32.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b32.c
deleted file mode 100644
index 8489dca0086..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b32.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-**	mov	[wx](1[2-5]), #?0
-**	psel	p0, p2, p7\.s\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svbool_t,
-	       p0 = svpsel_b32 (p2, p7, 0),
-	       p0 = svpsel_b32 (p2, p7, 0))
-
-/*
-** psel_p2_p7_p8_w11:
-**	mov	[wx](1[2-5]), [wx]11
-**	psel	p2, p7, p8\.s\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p7_p8_w11, svbool_t,
-	       p2 = svpsel_b32 (p7, p8, w11),
-	       p2 = svpsel_b32 (p7, p8, w11))
-
-/*
-** psel_p7_p8_p13_w12:
-**	psel	p7, p8, p13\.s\[w12, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p7_p8_p13_w12, svbool_t,
-	       p7 = svpsel_b32 (p8, p13, w12),
-	       p7 = svpsel_b32 (p8, p13, w12))
-
-/*
-** psel_p8_p13_p15_w15:
-**	psel	p8, p13, p15\.s\[w15, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p8_p13_p15_w15, svbool_t,
-	       p8 = svpsel_b32 (p13, p15, w15),
-	       p8 = svpsel_b32 (p13, p15, w15))
-
-/*
-** psel_p13_p15_p0_w16:
-**	mov	[wx](1[2-5]), [wx]16
-**	psel	p13, p15, p0\.s\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p15_p0_w16, svbool_t,
-	       p13 = svpsel_b32 (p15, p0, w16),
-	       p13 = svpsel_b32 (p15, p0, w16))
-
-/*
-** psel_p15_p13_p8_w12p1:
-**	psel	p15, p13, p8\.s\[w12, 1\]
-**	ret
-*/
-TEST_SELECT_P (psel_p15_p13_p8_w12p1, svbool_t,
-	       p15 = svpsel_b32 (p13, p8, w12 + 1),
-	       p15 = svpsel_b32 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p8_p7_w12p3:
-**	psel	p13, p8, p7\.s\[w12, 3\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p8_p7_w12p3, svbool_t,
-	       p13 = svpsel_b32 (p8, p7, w12 + 3),
-	       p13 = svpsel_b32 (p8, p7, w12 + 3))
-
-/*
-** psel_p0_p0_p0_w12p4:
-**	add	(w[0-9]+), w12, #?4
-**	psel	p0, p0, p0\.s\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p0_p0_w12p4, svbool_t,
-	       p0 = svpsel_b32 (p0, p0, w12 + 4),
-	       p0 = svpsel_b32 (p0, p0, w12 + 4))
-
-/*
-** psel_p15_p15_p15_w12m1:
-**	sub	(w[0-9]+), w12, #?1
-**	psel	p15, p15, p15\.s\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p15_p15_p15_w12m1, svbool_t,
-	       p15 = svpsel_b32 (p15, p15, w12 - 1),
-	       p15 = svpsel_b32 (p15, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b64.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b64.c
deleted file mode 100644
index 5d2d8b48f50..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b64.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-**	mov	[wx](1[2-5]), #?0
-**	psel	p0, p2, p7\.d\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svbool_t,
-	       p0 = svpsel_b64 (p2, p7, 0),
-	       p0 = svpsel_b64 (p2, p7, 0))
-
-/*
-** psel_p2_p7_p8_w11:
-**	mov	[wx](1[2-5]), [wx]11
-**	psel	p2, p7, p8\.d\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p7_p8_w11, svbool_t,
-	       p2 = svpsel_b64 (p7, p8, w11),
-	       p2 = svpsel_b64 (p7, p8, w11))
-
-/*
-** psel_p7_p8_p13_w12:
-**	psel	p7, p8, p13\.d\[w12, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p7_p8_p13_w12, svbool_t,
-	       p7 = svpsel_b64 (p8, p13, w12),
-	       p7 = svpsel_b64 (p8, p13, w12))
-
-/*
-** psel_p8_p13_p15_w15:
-**	psel	p8, p13, p15\.d\[w15, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p8_p13_p15_w15, svbool_t,
-	       p8 = svpsel_b64 (p13, p15, w15),
-	       p8 = svpsel_b64 (p13, p15, w15))
-
-/*
-** psel_p13_p15_p0_w16:
-**	mov	[wx](1[2-5]), [wx]16
-**	psel	p13, p15, p0\.d\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p15_p0_w16, svbool_t,
-	       p13 = svpsel_b64 (p15, p0, w16),
-	       p13 = svpsel_b64 (p15, p0, w16))
-
-/*
-** psel_p15_p13_p8_w12p1:
-**	psel	p15, p13, p8\.d\[w12, 1\]
-**	ret
-*/
-TEST_SELECT_P (psel_p15_p13_p8_w12p1, svbool_t,
-	       p15 = svpsel_b64 (p13, p8, w12 + 1),
-	       p15 = svpsel_b64 (p13, p8, w12 + 1))
-
-/*
-** psel_p0_p0_p0_w12p2:
-**	add	(w[0-9]+), w12, #?2
-**	psel	p0, p0, p0\.d\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p0_p0_w12p2, svbool_t,
-	       p0 = svpsel_b64 (p0, p0, w12 + 2),
-	       p0 = svpsel_b64 (p0, p0, w12 + 2))
-
-/*
-** psel_p15_p15_p15_w12m1:
-**	sub	(w[0-9]+), w12, #?1
-**	psel	p15, p15, p15\.d\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p15_p15_p15_w12m1, svbool_t,
-	       p15 = svpsel_b64 (p15, p15, w12 - 1),
-	       p15 = svpsel_b64 (p15, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b8.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b8.c
deleted file mode 100644
index 438735893c9..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_b8.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-**	mov	[wx](1[2-5]), #?0
-**	psel	p0, p2, p7\.b\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svbool_t,
-	       p0 = svpsel_b8 (p2, p7, 0),
-	       p0 = svpsel_b8 (p2, p7, 0))
-
-/*
-** psel_p2_p7_p8_w11:
-**	mov	[wx](1[2-5]), [wx]11
-**	psel	p2, p7, p8\.b\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p7_p8_w11, svbool_t,
-	       p2 = svpsel_b8 (p7, p8, w11),
-	       p2 = svpsel_b8 (p7, p8, w11))
-
-/*
-** psel_p7_p8_p13_w12:
-**	psel	p7, p8, p13\.b\[w12, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p7_p8_p13_w12, svbool_t,
-	       p7 = svpsel_b8 (p8, p13, w12),
-	       p7 = svpsel_b8 (p8, p13, w12))
-
-/*
-** psel_p8_p13_p15_w15:
-**	psel	p8, p13, p15\.b\[w15, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p8_p13_p15_w15, svbool_t,
-	       p8 = svpsel_b8 (p13, p15, w15),
-	       p8 = svpsel_b8 (p13, p15, w15))
-
-/*
-** psel_p13_p15_p0_w16:
-**	mov	[wx](1[2-5]), [wx]16
-**	psel	p13, p15, p0\.b\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p15_p0_w16, svbool_t,
-	       p13 = svpsel_b8 (p15, p0, w16),
-	       p13 = svpsel_b8 (p15, p0, w16))
-
-/*
-** psel_p15_p13_p8_w12p1:
-**	psel	p15, p13, p8\.b\[w12, 1\]
-**	ret
-*/
-TEST_SELECT_P (psel_p15_p13_p8_w12p1, svbool_t,
-	       p15 = svpsel_b8 (p13, p8, w12 + 1),
-	       p15 = svpsel_b8 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p8_p7_w12p15:
-**	psel	p13, p8, p7\.b\[w12, 15\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p8_p7_w12p15, svbool_t,
-	       p13 = svpsel_b8 (p8, p7, w12 + 15),
-	       p13 = svpsel_b8 (p8, p7, w12 + 15))
-
-/*
-** psel_p0_p0_p0_w12p16:
-**	add	(w[0-9]+), w12, #?16
-**	psel	p0, p0, p0\.b\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p0_p0_w12p16, svbool_t,
-	       p0 = svpsel_b8 (p0, p0, w12 + 16),
-	       p0 = svpsel_b8 (p0, p0, w12 + 16))
-
-/*
-** psel_p15_p15_p15_w12m1:
-**	sub	(w[0-9]+), w12, #?1
-**	psel	p15, p15, p15\.b\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p15_p15_p15_w12m1, svbool_t,
-	       p15 = svpsel_b8 (p15, p15, w12 - 1),
-	       p15 = svpsel_b8 (p15, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c16.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c16.c
deleted file mode 100644
index 1cf45e6c283..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c16.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-**	mov	[wx](1[2-5]), #?0
-**	psel	p0, p2, p7\.h\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svcount_t,
-	       p0 = svpsel_c16 (p2, p7, 0),
-	       p0 = svpsel_c16 (p2, p7, 0))
-
-/*
-** psel_p2_p0_p8_w11:
-**	mov	[wx](1[2-5]), [wx]11
-**	psel	p2, p0, p8\.h\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p0_p8_w11, svcount_t,
-	       p2 = svpsel_c16 (p0, p8, w11),
-	       p2 = svpsel_c16 (p0, p8, w11))
-
-/*
-** psel_p2_p13_p15_w12:
-**	psel	p2, p13, p15\.h\[w12, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p13_p15_w12, svcount_t,
-	       p2 = svpsel_c16 (p13, p15, w12),
-	       p2 = svpsel_c16 (p13, p15, w12))
-
-/*
-** psel_p0_p13_p15_w15:
-**	psel	p0, p13, p15\.h\[w15, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p13_p15_w15, svcount_t,
-	       p0 = svpsel_c16 (p13, p15, w15),
-	       p0 = svpsel_c16 (p13, p15, w15))
-
-/*
-** psel_p13_p0_p15_w16:
-**	mov	[wx](1[2-5]), [wx]16
-**	psel	p13, p0, p15\.h\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p0_p15_w16, svcount_t,
-	       p13 = svpsel_c16 (p0, p15, w16),
-	       p13 = svpsel_c16 (p0, p15, w16))
-
-/*
-** psel_p2_p13_p8_w12p1:
-**	psel	p2, p13, p8\.h\[w12, 1\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p13_p8_w12p1, svcount_t,
-	       p2 = svpsel_c16 (p13, p8, w12 + 1),
-	       p2 = svpsel_c16 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p0_p7_w12p7:
-**	psel	p13, p0, p7\.h\[w12, 7\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p0_p7_w12p7, svcount_t,
-	       p13 = svpsel_c16 (p0, p7, w12 + 7),
-	       p13 = svpsel_c16 (p0, p7, w12 + 7))
-
-/*
-** psel_p0_p0_p15_w12p8:
-**	add	(w[0-9]+), w12, #?8
-**	psel	p0, p0, p15\.h\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p0_p15_w12p8, svcount_t,
-	       p0 = svpsel_c16 (p0, p15, w12 + 8),
-	       p0 = svpsel_c16 (p0, p15, w12 + 8))
-
-/*
-** psel_p13_p13_p7_w12m1:
-**	sub	(w[0-9]+), w12, #?1
-**	psel	p13, p13, p7\.h\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p13_p7_w12m1, svcount_t,
-	       p13 = svpsel_c16 (p13, p7, w12 - 1),
-	       p13 = svpsel_c16 (p13, p7, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c32.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c32.c
deleted file mode 100644
index 5246a031595..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c32.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-**	mov	[wx](1[2-5]), #?0
-**	psel	p0, p2, p7\.s\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svcount_t,
-	       p0 = svpsel_c32 (p2, p7, 0),
-	       p0 = svpsel_c32 (p2, p7, 0))
-
-/*
-** psel_p2_p13_p8_w11:
-**	mov	[wx](1[2-5]), [wx]11
-**	psel	p2, p13, p8\.s\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p13_p8_w11, svcount_t,
-	       p2 = svpsel_c32 (p13, p8, w11),
-	       p2 = svpsel_c32 (p13, p8, w11))
-
-/*
-** psel_p0_p13_p15_w12:
-**	psel	p0, p13, p15\.s\[w12, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p13_p15_w12, svcount_t,
-	       p0 = svpsel_c32 (p13, p15, w12),
-	       p0 = svpsel_c32 (p13, p15, w12))
-
-/*
-** psel_p2_p0_p15_w15:
-**	psel	p2, p0, p15\.s\[w15, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p0_p15_w15, svcount_t,
-	       p2 = svpsel_c32 (p0, p15, w15),
-	       p2 = svpsel_c32 (p0, p15, w15))
-
-/*
-** psel_p13_p0_p7_w16:
-**	mov	[wx](1[2-5]), [wx]16
-**	psel	p13, p0, p7\.s\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p0_p7_w16, svcount_t,
-	       p13 = svpsel_c32 (p0, p7, w16),
-	       p13 = svpsel_c32 (p0, p7, w16))
-
-/*
-** psel_p2_p13_p8_w12p1:
-**	psel	p2, p13, p8\.s\[w12, 1\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p13_p8_w12p1, svcount_t,
-	       p2 = svpsel_c32 (p13, p8, w12 + 1),
-	       p2 = svpsel_c32 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p0_p7_w12p3:
-**	psel	p13, p0, p7\.s\[w12, 3\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p0_p7_w12p3, svcount_t,
-	       p13 = svpsel_c32 (p0, p7, w12 + 3),
-	       p13 = svpsel_c32 (p0, p7, w12 + 3))
-
-/*
-** psel_p0_p0_p7_w12p4:
-**	add	(w[0-9]+), w12, #?4
-**	psel	p0, p0, p7\.s\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p0_p7_w12p4, svcount_t,
-	       p0 = svpsel_c32 (p0, p7, w12 + 4),
-	       p0 = svpsel_c32 (p0, p7, w12 + 4))
-
-/*
-** psel_p13_p13_p15_w12m1:
-**	sub	(w[0-9]+), w12, #?1
-**	psel	p13, p13, p15\.s\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p13_p15_w12m1, svcount_t,
-	       p13 = svpsel_c32 (p13, p15, w12 - 1),
-	       p13 = svpsel_c32 (p13, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c64.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c64.c
deleted file mode 100644
index 97304fd1646..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c64.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-**	mov	[wx](1[2-5]), #?0
-**	psel	p0, p2, p7\.d\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svcount_t,
-	       p0 = svpsel_c64 (p2, p7, 0),
-	       p0 = svpsel_c64 (p2, p7, 0))
-
-/*
-** psel_p2_p13_p8_w11:
-**	mov	[wx](1[2-5]), [wx]11
-**	psel	p2, p13, p8\.d\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p13_p8_w11, svcount_t,
-	       p2 = svpsel_c64 (p13, p8, w11),
-	       p2 = svpsel_c64 (p13, p8, w11))
-
-/*
-** psel_p2_p0_p15_w12:
-**	psel	p2, p0, p15\.d\[w12, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p0_p15_w12, svcount_t,
-	       p2 = svpsel_c64 (p0, p15, w12),
-	       p2 = svpsel_c64 (p0, p15, w12))
-
-/*
-** psel_p0_p13_p15_w15:
-**	psel	p0, p13, p15\.d\[w15, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p13_p15_w15, svcount_t,
-	       p0 = svpsel_c64 (p13, p15, w15),
-	       p0 = svpsel_c64 (p13, p15, w15))
-
-/*
-** psel_p13_p0_p15_w16:
-**	mov	[wx](1[2-5]), [wx]16
-**	psel	p13, p0, p15\.d\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p0_p15_w16, svcount_t,
-	       p13 = svpsel_c64 (p0, p15, w16),
-	       p13 = svpsel_c64 (p0, p15, w16))
-
-/*
-** psel_p2_p13_p8_w12p1:
-**	psel	p2, p13, p8\.d\[w12, 1\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p13_p8_w12p1, svcount_t,
-	       p2 = svpsel_c64 (p13, p8, w12 + 1),
-	       p2 = svpsel_c64 (p13, p8, w12 + 1))
-
-/*
-** psel_p0_p0_p8_w12p2:
-**	add	(w[0-9]+), w12, #?2
-**	psel	p0, p0, p8\.d\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p0_p8_w12p2, svcount_t,
-	       p0 = svpsel_c64 (p0, p8, w12 + 2),
-	       p0 = svpsel_c64 (p0, p8, w12 + 2))
-
-/*
-** psel_p13_p13_p15_w12m1:
-**	sub	(w[0-9]+), w12, #?1
-**	psel	p13, p13, p15\.d\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p13_p15_w12m1, svcount_t,
-	       p13 = svpsel_c64 (p13, p15, w12 - 1),
-	       p13 = svpsel_c64 (p13, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c8.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c8.c
deleted file mode 100644
index 95973a17ebd..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_c8.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** psel_p0_p2_p7_0:
-**	mov	[wx](1[2-5]), #?0
-**	psel	p0, p2, p7\.b\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p2_p7_0, svcount_t,
-	       p0 = svpsel_c8 (p2, p7, 0),
-	       p0 = svpsel_c8 (p2, p7, 0))
-
-/*
-** psel_p2_p0_p8_w11:
-**	mov	[wx](1[2-5]), [wx]11
-**	psel	p2, p0, p8\.b\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p0_p8_w11, svcount_t,
-	       p2 = svpsel_c8 (p0, p8, w11),
-	       p2 = svpsel_c8 (p0, p8, w11))
-
-/*
-** psel_p0_p13_p15_w12:
-**	psel	p0, p13, p15\.b\[w12, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p13_p15_w12, svcount_t,
-	       p0 = svpsel_c8 (p13, p15, w12),
-	       p0 = svpsel_c8 (p13, p15, w12))
-
-/*
-** psel_p13_p0_p8_w15:
-**	psel	p13, p0, p8\.b\[w15, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p0_p8_w15, svcount_t,
-	       p13 = svpsel_c8 (p0, p8, w15),
-	       p13 = svpsel_c8 (p0, p8, w15))
-
-/*
-** psel_p2_p13_p7_w16:
-**	mov	[wx](1[2-5]), [wx]16
-**	psel	p2, p13, p7\.b\[w\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p2_p13_p7_w16, svcount_t,
-	       p2 = svpsel_c8 (p13, p7, w16),
-	       p2 = svpsel_c8 (p13, p7, w16))
-
-/*
-** psel_p0_p13_p8_w12p1:
-**	psel	p0, p13, p8\.b\[w12, 1\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p13_p8_w12p1, svcount_t,
-	       p0 = svpsel_c8 (p13, p8, w12 + 1),
-	       p0 = svpsel_c8 (p13, p8, w12 + 1))
-
-/*
-** psel_p13_p2_p7_w12p15:
-**	psel	p13, p2, p7\.b\[w12, 15\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p2_p7_w12p15, svcount_t,
-	       p13 = svpsel_c8 (p2, p7, w12 + 15),
-	       p13 = svpsel_c8 (p2, p7, w12 + 15))
-
-/*
-** psel_p0_p0_p15_w12p16:
-**	add	(w[0-9]+), w12, #?16
-**	psel	p0, p0, p15\.b\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p0_p0_p15_w12p16, svcount_t,
-	       p0 = svpsel_c8 (p0, p15, w12 + 16),
-	       p0 = svpsel_c8 (p0, p15, w12 + 16))
-
-/*
-** psel_p13_p13_p15_w12m1:
-**	sub	(w[0-9]+), w12, #?1
-**	psel	p13, p13, p15\.b\[\1, 0\]
-**	ret
-*/
-TEST_SELECT_P (psel_p13_p13_p15_w12m1, svcount_t,
-	       p13 = svpsel_c8 (p13, p15, w12 - 1),
-	       p13 = svpsel_c8 (p13, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c
new file mode 100644
index 00000000000..704e9e375f5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c
@@ -0,0 +1,89 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+**	mov	[wx](1[2-5]), #?0
+**	psel	p0, p2, p7\.h\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svbool_t,
+	       p0 = svpsel_lane_b16 (p2, p7, 0),
+	       p0 = svpsel_lane_b16 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p7_p8_w11:
+**	mov	[wx](1[2-5]), [wx]11
+**	psel	p2, p7, p8\.h\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p7_p8_w11, svbool_t,
+	       p2 = svpsel_lane_b16 (p7, p8, w11),
+	       p2 = svpsel_lane_b16 (p7, p8, w11))
+
+/*
+** psel_lane_p7_p8_p13_w12:
+**	psel	p7, p8, p13\.h\[w12, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p7_p8_p13_w12, svbool_t,
+	       p7 = svpsel_lane_b16 (p8, p13, w12),
+	       p7 = svpsel_lane_b16 (p8, p13, w12))
+
+/*
+** psel_lane_p8_p13_p15_w15:
+**	psel	p8, p13, p15\.h\[w15, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p8_p13_p15_w15, svbool_t,
+	       p8 = svpsel_lane_b16 (p13, p15, w15),
+	       p8 = svpsel_lane_b16 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p15_p0_w16:
+**	mov	[wx](1[2-5]), [wx]16
+**	psel	p13, p15, p0\.h\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p15_p0_w16, svbool_t,
+	       p13 = svpsel_lane_b16 (p15, p0, w16),
+	       p13 = svpsel_lane_b16 (p15, p0, w16))
+
+/*
+** psel_lane_p15_p13_p8_w12p1:
+**	psel	p15, p13, p8\.h\[w12, 1\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p15_p13_p8_w12p1, svbool_t,
+	       p15 = svpsel_lane_b16 (p13, p8, w12 + 1),
+	       p15 = svpsel_lane_b16 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p8_p7_w12p7:
+**	psel	p13, p8, p7\.h\[w12, 7\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p8_p7_w12p7, svbool_t,
+	       p13 = svpsel_lane_b16 (p8, p7, w12 + 7),
+	       p13 = svpsel_lane_b16 (p8, p7, w12 + 7))
+
+/*
+** psel_lane_p0_p0_p0_w12p8:
+**	add	(w[0-9]+), w12, #?8
+**	psel	p0, p0, p0\.h\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p0_w12p8, svbool_t,
+	       p0 = svpsel_lane_b16 (p0, p0, w12 + 8),
+	       p0 = svpsel_lane_b16 (p0, p0, w12 + 8))
+
+/*
+** psel_lane_p15_p15_p15_w12m1:
+**	sub	(w[0-9]+), w12, #?1
+**	psel	p15, p15, p15\.h\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p15_p15_p15_w12m1, svbool_t,
+	       p15 = svpsel_lane_b16 (p15, p15, w12 - 1),
+	       p15 = svpsel_lane_b16 (p15, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c
new file mode 100644
index 00000000000..7d9c7a129ea
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c
@@ -0,0 +1,89 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+**	mov	[wx](1[2-5]), #?0
+**	psel	p0, p2, p7\.s\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svbool_t,
+	       p0 = svpsel_lane_b32 (p2, p7, 0),
+	       p0 = svpsel_lane_b32 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p7_p8_w11:
+**	mov	[wx](1[2-5]), [wx]11
+**	psel	p2, p7, p8\.s\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p7_p8_w11, svbool_t,
+	       p2 = svpsel_lane_b32 (p7, p8, w11),
+	       p2 = svpsel_lane_b32 (p7, p8, w11))
+
+/*
+** psel_lane_p7_p8_p13_w12:
+**	psel	p7, p8, p13\.s\[w12, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p7_p8_p13_w12, svbool_t,
+	       p7 = svpsel_lane_b32 (p8, p13, w12),
+	       p7 = svpsel_lane_b32 (p8, p13, w12))
+
+/*
+** psel_lane_p8_p13_p15_w15:
+**	psel	p8, p13, p15\.s\[w15, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p8_p13_p15_w15, svbool_t,
+	       p8 = svpsel_lane_b32 (p13, p15, w15),
+	       p8 = svpsel_lane_b32 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p15_p0_w16:
+**	mov	[wx](1[2-5]), [wx]16
+**	psel	p13, p15, p0\.s\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p15_p0_w16, svbool_t,
+	       p13 = svpsel_lane_b32 (p15, p0, w16),
+	       p13 = svpsel_lane_b32 (p15, p0, w16))
+
+/*
+** psel_lane_p15_p13_p8_w12p1:
+**	psel	p15, p13, p8\.s\[w12, 1\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p15_p13_p8_w12p1, svbool_t,
+	       p15 = svpsel_lane_b32 (p13, p8, w12 + 1),
+	       p15 = svpsel_lane_b32 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p8_p7_w12p3:
+**	psel	p13, p8, p7\.s\[w12, 3\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p8_p7_w12p3, svbool_t,
+	       p13 = svpsel_lane_b32 (p8, p7, w12 + 3),
+	       p13 = svpsel_lane_b32 (p8, p7, w12 + 3))
+
+/*
+** psel_lane_p0_p0_p0_w12p4:
+**	add	(w[0-9]+), w12, #?4
+**	psel	p0, p0, p0\.s\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p0_w12p4, svbool_t,
+	       p0 = svpsel_lane_b32 (p0, p0, w12 + 4),
+	       p0 = svpsel_lane_b32 (p0, p0, w12 + 4))
+
+/*
+** psel_lane_p15_p15_p15_w12m1:
+**	sub	(w[0-9]+), w12, #?1
+**	psel	p15, p15, p15\.s\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p15_p15_p15_w12m1, svbool_t,
+	       p15 = svpsel_lane_b32 (p15, p15, w12 - 1),
+	       p15 = svpsel_lane_b32 (p15, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c
new file mode 100644
index 00000000000..a59032a57f6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c
@@ -0,0 +1,80 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+**	mov	[wx](1[2-5]), #?0
+**	psel	p0, p2, p7\.d\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svbool_t,
+	       p0 = svpsel_lane_b64 (p2, p7, 0),
+	       p0 = svpsel_lane_b64 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p7_p8_w11:
+**	mov	[wx](1[2-5]), [wx]11
+**	psel	p2, p7, p8\.d\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p7_p8_w11, svbool_t,
+	       p2 = svpsel_lane_b64 (p7, p8, w11),
+	       p2 = svpsel_lane_b64 (p7, p8, w11))
+
+/*
+** psel_lane_p7_p8_p13_w12:
+**	psel	p7, p8, p13\.d\[w12, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p7_p8_p13_w12, svbool_t,
+	       p7 = svpsel_lane_b64 (p8, p13, w12),
+	       p7 = svpsel_lane_b64 (p8, p13, w12))
+
+/*
+** psel_lane_p8_p13_p15_w15:
+**	psel	p8, p13, p15\.d\[w15, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p8_p13_p15_w15, svbool_t,
+	       p8 = svpsel_lane_b64 (p13, p15, w15),
+	       p8 = svpsel_lane_b64 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p15_p0_w16:
+**	mov	[wx](1[2-5]), [wx]16
+**	psel	p13, p15, p0\.d\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p15_p0_w16, svbool_t,
+	       p13 = svpsel_lane_b64 (p15, p0, w16),
+	       p13 = svpsel_lane_b64 (p15, p0, w16))
+
+/*
+** psel_lane_p15_p13_p8_w12p1:
+**	psel	p15, p13, p8\.d\[w12, 1\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p15_p13_p8_w12p1, svbool_t,
+	       p15 = svpsel_lane_b64 (p13, p8, w12 + 1),
+	       p15 = svpsel_lane_b64 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p0_p0_p0_w12p2:
+**	add	(w[0-9]+), w12, #?2
+**	psel	p0, p0, p0\.d\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p0_w12p2, svbool_t,
+	       p0 = svpsel_lane_b64 (p0, p0, w12 + 2),
+	       p0 = svpsel_lane_b64 (p0, p0, w12 + 2))
+
+/*
+** psel_lane_p15_p15_p15_w12m1:
+**	sub	(w[0-9]+), w12, #?1
+**	psel	p15, p15, p15\.d\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p15_p15_p15_w12m1, svbool_t,
+	       p15 = svpsel_lane_b64 (p15, p15, w12 - 1),
+	       p15 = svpsel_lane_b64 (p15, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c
new file mode 100644
index 00000000000..0dea85c4f1f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c
@@ -0,0 +1,89 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+**	mov	[wx](1[2-5]), #?0
+**	psel	p0, p2, p7\.b\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svbool_t,
+	       p0 = svpsel_lane_b8 (p2, p7, 0),
+	       p0 = svpsel_lane_b8 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p7_p8_w11:
+**	mov	[wx](1[2-5]), [wx]11
+**	psel	p2, p7, p8\.b\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p7_p8_w11, svbool_t,
+	       p2 = svpsel_lane_b8 (p7, p8, w11),
+	       p2 = svpsel_lane_b8 (p7, p8, w11))
+
+/*
+** psel_lane_p7_p8_p13_w12:
+**	psel	p7, p8, p13\.b\[w12, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p7_p8_p13_w12, svbool_t,
+	       p7 = svpsel_lane_b8 (p8, p13, w12),
+	       p7 = svpsel_lane_b8 (p8, p13, w12))
+
+/*
+** psel_lane_p8_p13_p15_w15:
+**	psel	p8, p13, p15\.b\[w15, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p8_p13_p15_w15, svbool_t,
+	       p8 = svpsel_lane_b8 (p13, p15, w15),
+	       p8 = svpsel_lane_b8 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p15_p0_w16:
+**	mov	[wx](1[2-5]), [wx]16
+**	psel	p13, p15, p0\.b\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p15_p0_w16, svbool_t,
+	       p13 = svpsel_lane_b8 (p15, p0, w16),
+	       p13 = svpsel_lane_b8 (p15, p0, w16))
+
+/*
+** psel_lane_p15_p13_p8_w12p1:
+**	psel	p15, p13, p8\.b\[w12, 1\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p15_p13_p8_w12p1, svbool_t,
+	       p15 = svpsel_lane_b8 (p13, p8, w12 + 1),
+	       p15 = svpsel_lane_b8 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p8_p7_w12p15:
+**	psel	p13, p8, p7\.b\[w12, 15\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p8_p7_w12p15, svbool_t,
+	       p13 = svpsel_lane_b8 (p8, p7, w12 + 15),
+	       p13 = svpsel_lane_b8 (p8, p7, w12 + 15))
+
+/*
+** psel_lane_p0_p0_p0_w12p16:
+**	add	(w[0-9]+), w12, #?16
+**	psel	p0, p0, p0\.b\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p0_w12p16, svbool_t,
+	       p0 = svpsel_lane_b8 (p0, p0, w12 + 16),
+	       p0 = svpsel_lane_b8 (p0, p0, w12 + 16))
+
+/*
+** psel_lane_p15_p15_p15_w12m1:
+**	sub	(w[0-9]+), w12, #?1
+**	psel	p15, p15, p15\.b\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p15_p15_p15_w12m1, svbool_t,
+	       p15 = svpsel_lane_b8 (p15, p15, w12 - 1),
+	       p15 = svpsel_lane_b8 (p15, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c
new file mode 100644
index 00000000000..039c72b83c8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c
@@ -0,0 +1,89 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+**	mov	[wx](1[2-5]), #?0
+**	psel	p0, p2, p7\.h\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svcount_t,
+	       p0 = svpsel_lane_c16 (p2, p7, 0),
+	       p0 = svpsel_lane_c16 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p0_p8_w11:
+**	mov	[wx](1[2-5]), [wx]11
+**	psel	p2, p0, p8\.h\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p0_p8_w11, svcount_t,
+	       p2 = svpsel_lane_c16 (p0, p8, w11),
+	       p2 = svpsel_lane_c16 (p0, p8, w11))
+
+/*
+** psel_lane_p2_p13_p15_w12:
+**	psel	p2, p13, p15\.h\[w12, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p15_w12, svcount_t,
+	       p2 = svpsel_lane_c16 (p13, p15, w12),
+	       p2 = svpsel_lane_c16 (p13, p15, w12))
+
+/*
+** psel_lane_p0_p13_p15_w15:
+**	psel	p0, p13, p15\.h\[w15, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p13_p15_w15, svcount_t,
+	       p0 = svpsel_lane_c16 (p13, p15, w15),
+	       p0 = svpsel_lane_c16 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p0_p15_w16:
+**	mov	[wx](1[2-5]), [wx]16
+**	psel	p13, p0, p15\.h\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p15_w16, svcount_t,
+	       p13 = svpsel_lane_c16 (p0, p15, w16),
+	       p13 = svpsel_lane_c16 (p0, p15, w16))
+
+/*
+** psel_lane_p2_p13_p8_w12p1:
+**	psel	p2, p13, p8\.h\[w12, 1\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p8_w12p1, svcount_t,
+	       p2 = svpsel_lane_c16 (p13, p8, w12 + 1),
+	       p2 = svpsel_lane_c16 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p0_p7_w12p7:
+**	psel	p13, p0, p7\.h\[w12, 7\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p7_w12p7, svcount_t,
+	       p13 = svpsel_lane_c16 (p0, p7, w12 + 7),
+	       p13 = svpsel_lane_c16 (p0, p7, w12 + 7))
+
+/*
+** psel_lane_p0_p0_p15_w12p8:
+**	add	(w[0-9]+), w12, #?8
+**	psel	p0, p0, p15\.h\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p15_w12p8, svcount_t,
+	       p0 = svpsel_lane_c16 (p0, p15, w12 + 8),
+	       p0 = svpsel_lane_c16 (p0, p15, w12 + 8))
+
+/*
+** psel_lane_p13_p13_p7_w12m1:
+**	sub	(w[0-9]+), w12, #?1
+**	psel	p13, p13, p7\.h\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p13_p7_w12m1, svcount_t,
+	       p13 = svpsel_lane_c16 (p13, p7, w12 - 1),
+	       p13 = svpsel_lane_c16 (p13, p7, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c
new file mode 100644
index 00000000000..eaf195d93d2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c
@@ -0,0 +1,89 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+**	mov	[wx](1[2-5]), #?0
+**	psel	p0, p2, p7\.s\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svcount_t,
+	       p0 = svpsel_lane_c32 (p2, p7, 0),
+	       p0 = svpsel_lane_c32 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p13_p8_w11:
+**	mov	[wx](1[2-5]), [wx]11
+**	psel	p2, p13, p8\.s\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p8_w11, svcount_t,
+	       p2 = svpsel_lane_c32 (p13, p8, w11),
+	       p2 = svpsel_lane_c32 (p13, p8, w11))
+
+/*
+** psel_lane_p0_p13_p15_w12:
+**	psel	p0, p13, p15\.s\[w12, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p13_p15_w12, svcount_t,
+	       p0 = svpsel_lane_c32 (p13, p15, w12),
+	       p0 = svpsel_lane_c32 (p13, p15, w12))
+
+/*
+** psel_lane_p2_p0_p15_w15:
+**	psel	p2, p0, p15\.s\[w15, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p0_p15_w15, svcount_t,
+	       p2 = svpsel_lane_c32 (p0, p15, w15),
+	       p2 = svpsel_lane_c32 (p0, p15, w15))
+
+/*
+** psel_lane_p13_p0_p7_w16:
+**	mov	[wx](1[2-5]), [wx]16
+**	psel	p13, p0, p7\.s\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p7_w16, svcount_t,
+	       p13 = svpsel_lane_c32 (p0, p7, w16),
+	       p13 = svpsel_lane_c32 (p0, p7, w16))
+
+/*
+** psel_lane_p2_p13_p8_w12p1:
+**	psel	p2, p13, p8\.s\[w12, 1\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p8_w12p1, svcount_t,
+	       p2 = svpsel_lane_c32 (p13, p8, w12 + 1),
+	       p2 = svpsel_lane_c32 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p0_p7_w12p3:
+**	psel	p13, p0, p7\.s\[w12, 3\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p7_w12p3, svcount_t,
+	       p13 = svpsel_lane_c32 (p0, p7, w12 + 3),
+	       p13 = svpsel_lane_c32 (p0, p7, w12 + 3))
+
+/*
+** psel_lane_p0_p0_p7_w12p4:
+**	add	(w[0-9]+), w12, #?4
+**	psel	p0, p0, p7\.s\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p7_w12p4, svcount_t,
+	       p0 = svpsel_lane_c32 (p0, p7, w12 + 4),
+	       p0 = svpsel_lane_c32 (p0, p7, w12 + 4))
+
+/*
+** psel_lane_p13_p13_p15_w12m1:
+**	sub	(w[0-9]+), w12, #?1
+**	psel	p13, p13, p15\.s\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p13_p15_w12m1, svcount_t,
+	       p13 = svpsel_lane_c32 (p13, p15, w12 - 1),
+	       p13 = svpsel_lane_c32 (p13, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c
new file mode 100644
index 00000000000..70cfeca4fc8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c
@@ -0,0 +1,80 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+**	mov	[wx](1[2-5]), #?0
+**	psel	p0, p2, p7\.d\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svcount_t,
+	       p0 = svpsel_lane_c64 (p2, p7, 0),
+	       p0 = svpsel_lane_c64 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p13_p8_w11:
+**	mov	[wx](1[2-5]), [wx]11
+**	psel	p2, p13, p8\.d\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p8_w11, svcount_t,
+	       p2 = svpsel_lane_c64 (p13, p8, w11),
+	       p2 = svpsel_lane_c64 (p13, p8, w11))
+
+/*
+** psel_lane_p2_p0_p15_w12:
+**	psel	p2, p0, p15\.d\[w12, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p0_p15_w12, svcount_t,
+	       p2 = svpsel_lane_c64 (p0, p15, w12),
+	       p2 = svpsel_lane_c64 (p0, p15, w12))
+
+/*
+** psel_lane_p0_p13_p15_w15:
+**	psel	p0, p13, p15\.d\[w15, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p13_p15_w15, svcount_t,
+	       p0 = svpsel_lane_c64 (p13, p15, w15),
+	       p0 = svpsel_lane_c64 (p13, p15, w15))
+
+/*
+** psel_lane_p13_p0_p15_w16:
+**	mov	[wx](1[2-5]), [wx]16
+**	psel	p13, p0, p15\.d\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p15_w16, svcount_t,
+	       p13 = svpsel_lane_c64 (p0, p15, w16),
+	       p13 = svpsel_lane_c64 (p0, p15, w16))
+
+/*
+** psel_lane_p2_p13_p8_w12p1:
+**	psel	p2, p13, p8\.d\[w12, 1\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p8_w12p1, svcount_t,
+	       p2 = svpsel_lane_c64 (p13, p8, w12 + 1),
+	       p2 = svpsel_lane_c64 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p0_p0_p8_w12p2:
+**	add	(w[0-9]+), w12, #?2
+**	psel	p0, p0, p8\.d\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p8_w12p2, svcount_t,
+	       p0 = svpsel_lane_c64 (p0, p8, w12 + 2),
+	       p0 = svpsel_lane_c64 (p0, p8, w12 + 2))
+
+/*
+** psel_lane_p13_p13_p15_w12m1:
+**	sub	(w[0-9]+), w12, #?1
+**	psel	p13, p13, p15\.d\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p13_p15_w12m1, svcount_t,
+	       p13 = svpsel_lane_c64 (p13, p15, w12 - 1),
+	       p13 = svpsel_lane_c64 (p13, p15, w12 - 1))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c
new file mode 100644
index 00000000000..b017962629f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c
@@ -0,0 +1,89 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** psel_lane_p0_p2_p7_0:
+**	mov	[wx](1[2-5]), #?0
+**	psel	p0, p2, p7\.b\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p2_p7_0, svcount_t,
+	       p0 = svpsel_lane_c8 (p2, p7, 0),
+	       p0 = svpsel_lane_c8 (p2, p7, 0))
+
+/*
+** psel_lane_p2_p0_p8_w11:
+**	mov	[wx](1[2-5]), [wx]11
+**	psel	p2, p0, p8\.b\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p0_p8_w11, svcount_t,
+	       p2 = svpsel_lane_c8 (p0, p8, w11),
+	       p2 = svpsel_lane_c8 (p0, p8, w11))
+
+/*
+** psel_lane_p0_p13_p15_w12:
+**	psel	p0, p13, p15\.b\[w12, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p13_p15_w12, svcount_t,
+	       p0 = svpsel_lane_c8 (p13, p15, w12),
+	       p0 = svpsel_lane_c8 (p13, p15, w12))
+
+/*
+** psel_lane_p13_p0_p8_w15:
+**	psel	p13, p0, p8\.b\[w15, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p0_p8_w15, svcount_t,
+	       p13 = svpsel_lane_c8 (p0, p8, w15),
+	       p13 = svpsel_lane_c8 (p0, p8, w15))
+
+/*
+** psel_lane_p2_p13_p7_w16:
+**	mov	[wx](1[2-5]), [wx]16
+**	psel	p2, p13, p7\.b\[w\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p2_p13_p7_w16, svcount_t,
+	       p2 = svpsel_lane_c8 (p13, p7, w16),
+	       p2 = svpsel_lane_c8 (p13, p7, w16))
+
+/*
+** psel_lane_p0_p13_p8_w12p1:
+**	psel	p0, p13, p8\.b\[w12, 1\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p13_p8_w12p1, svcount_t,
+	       p0 = svpsel_lane_c8 (p13, p8, w12 + 1),
+	       p0 = svpsel_lane_c8 (p13, p8, w12 + 1))
+
+/*
+** psel_lane_p13_p2_p7_w12p15:
+**	psel	p13, p2, p7\.b\[w12, 15\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p2_p7_w12p15, svcount_t,
+	       p13 = svpsel_lane_c8 (p2, p7, w12 + 15),
+	       p13 = svpsel_lane_c8 (p2, p7, w12 + 15))
+
+/*
+** psel_lane_p0_p0_p15_w12p16:
+**	add	(w[0-9]+), w12, #?16
+**	psel	p0, p0, p15\.b\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p0_p0_p15_w12p16, svcount_t,
+	       p0 = svpsel_lane_c8 (p0, p15, w12 + 16),
+	       p0 = svpsel_lane_c8 (p0, p15, w12 + 16))
+
+/*
+** psel_lane_p13_p13_p15_w12m1:
+**	sub	(w[0-9]+), w12, #?1
+**	psel	p13, p13, p15\.b\[\1, 0\]
+**	ret
+*/
+TEST_SELECT_P (psel_lane_p13_p13_p15_w12m1, svcount_t,
+	       p13 = svpsel_lane_c8 (p13, p15, w12 - 1),
+	       p13 = svpsel_lane_c8 (p13, p15, w12 - 1))

commit 9572024dd16ecf233b1632b3f9ba5387d9da148f
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Nov 7 00:24:55 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0cc0c811e6b..0a4b44f6414 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2024-11-06  Tamar Christina  <tamar.christina@arm.com>
+
+	Backported from master:
+	2024-10-14  Tamar Christina  <tamar.christina@arm.com>
+
+	PR target/116371
+	* config/aarch64/aarch64-sve-builtins-sve2.cc (class svpsel_impl):
+	Renamed to ...
+	(class svpsel_lane_impl): ... This and adjust initialization.
+	* config/aarch64/aarch64-sve-builtins-sve2.def (svpsel): Renamed to ...
+	(svpsel_lane): ... This.
+	* config/aarch64/aarch64-sve-builtins-sve2.h (svpsel): Renamed to
+	svpsel_lane.
+
 2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
 
 	PR tree-optimization/117398
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e7bef9850f2..6d8a676e763 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241106
+20241107
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index aab052c5588..875843c008c 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,12 @@
+2024-11-06  Simon Martin  <simon@nasilyan.com>
+
+	Backported from master:
+	2024-11-05  Simon Martin  <simon@nasilyan.com>
+
+	PR c++/117158
+	* typeck.cc (cp_build_array_ref): Only wrap array expression
+	into a SAVE_EXPR at template instantiation time.
+
 2024-11-05  Patrick Palka  <ppalka@redhat.com>
 
 	PR c++/101463
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 64cb1452237..be0ea3fc17d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,35 @@
+2024-11-06  Tamar Christina  <tamar.christina@arm.com>
+
+	Backported from master:
+	2024-10-14  Tamar Christina  <tamar.christina@arm.com>
+
+	PR target/116371
+	* gcc.target/aarch64/sme2/acle-asm/psel_b16.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_b32.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_b64.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_b8.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_c16.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_c32.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_c64.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_c8.c: Renamed to....
+	* gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c,
+	gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c: ... These.
+
+2024-11-06  Simon Martin  <simon@nasilyan.com>
+
+	Backported from master:
+	2024-11-05  Simon Martin  <simon@nasilyan.com>
+
+	PR c++/117158
+	* g++.dg/cpp1z/eval-order13.C: New test.
+	* g++.dg/parse/crash77.C: New test.
+
 2024-11-05  Patrick Palka  <ppalka@redhat.com>
 
 	PR c++/101463

commit 05fd99e3d5e9f00e4e23596ed15a3cec2aaba128
Author: Hu, Lin1 <lin1.hu@intel.com>
Date:   Tue Nov 5 15:49:57 2024 +0800

    i386: Add OPTION_MASK_ISA2_EVEX512 for some AVX512 instructions.
    
    gcc/ChangeLog:
    
            PR target/117304
            * config/i386/i386-builtin.def: Add OPTION_MASK_ISA2_EVEX512 for some
            AVX512 512-bits instructions.
    
    gcc/testsuite/ChangeLog:
    
            PR target/117304
            * gcc.target/i386/pr117304-1.c: New test.
    
    (cherry picked from commit 8ac694ae67e24a798dce368587bed4c40b90fbc0)

diff --git a/gcc/config/i386/i386-builtin.def b/gcc/config/i386/i386-builtin.def
index fdd9dba6e54..ee34e0a1497 100644
--- a/gcc/config/i386/i386-builtin.def
+++ b/gcc/config/i386/i386-builtin.def
@@ -3065,11 +3065,11 @@ BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_sse_cvtsi2ss_round, "__builtin_ia32_
 BDESC (OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_64BIT, 0, CODE_FOR_sse_cvtsi2ssq_round, "__builtin_ia32_cvtsi2ss64", IX86_BUILTIN_CVTSI2SS64, UNKNOWN, (int) V4SF_FTYPE_V4SF_INT64_INT)
 BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_sse2_cvtss2sd_round, "__builtin_ia32_cvtss2sd_round", IX86_BUILTIN_CVTSS2SD_ROUND, UNKNOWN, (int) V2DF_FTYPE_V2DF_V4SF_INT)
 BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_sse2_cvtss2sd_mask_round, "__builtin_ia32_cvtss2sd_mask_round", IX86_BUILTIN_CVTSS2SD_MASK_ROUND, UNKNOWN, (int) V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT)
-BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_fix_truncv8dfv8si2_mask_round, "__builtin_ia32_cvttpd2dq512_mask", IX86_BUILTIN_CVTTPD2DQ512, UNKNOWN, (int) V8SI_FTYPE_V8DF_V8SI_QI_INT)
-BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_fixuns_truncv8dfv8si2_mask_round, "__builtin_ia32_cvttpd2udq512_mask", IX86_BUILTIN_CVTTPD2UDQ512, UNKNOWN, (int) V8SI_FTYPE_V8DF_V8SI_QI_INT)
-BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_fix_truncv16sfv16si2_mask_round, "__builtin_ia32_cvttps2dq512_mask", IX86_BUILTIN_CVTTPS2DQ512, UNKNOWN, (int) V16SI_FTYPE_V16SF_V16SI_HI_INT)
-BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_fixuns_truncv16sfv16si2_mask_round, "__builtin_ia32_cvttps2udq512_mask", IX86_BUILTIN_CVTTPS2UDQ512, UNKNOWN, (int) V16SI_FTYPE_V16SF_V16SI_HI_INT)
-BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_floatunsv16siv16sf2_mask_round, "__builtin_ia32_cvtudq2ps512_mask", IX86_BUILTIN_CVTUDQ2PS512, UNKNOWN, (int) V16SF_FTYPE_V16SI_V16SF_HI_INT)
+BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_fix_truncv8dfv8si2_mask_round, "__builtin_ia32_cvttpd2dq512_mask", IX86_BUILTIN_CVTTPD2DQ512, UNKNOWN, (int) V8SI_FTYPE_V8DF_V8SI_QI_INT)
+BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_fixuns_truncv8dfv8si2_mask_round, "__builtin_ia32_cvttpd2udq512_mask", IX86_BUILTIN_CVTTPD2UDQ512, UNKNOWN, (int) V8SI_FTYPE_V8DF_V8SI_QI_INT)
+BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_fix_truncv16sfv16si2_mask_round, "__builtin_ia32_cvttps2dq512_mask", IX86_BUILTIN_CVTTPS2DQ512, UNKNOWN, (int) V16SI_FTYPE_V16SF_V16SI_HI_INT)
+BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_fixuns_truncv16sfv16si2_mask_round, "__builtin_ia32_cvttps2udq512_mask", IX86_BUILTIN_CVTTPS2UDQ512, UNKNOWN, (int) V16SI_FTYPE_V16SF_V16SI_HI_INT)
+BDESC (OPTION_MASK_ISA_AVX512F, OPTION_MASK_ISA2_EVEX512, CODE_FOR_floatunsv16siv16sf2_mask_round, "__builtin_ia32_cvtudq2ps512_mask", IX86_BUILTIN_CVTUDQ2PS512, UNKNOWN, (int) V16SF_FTYPE_V16SI_V16SF_HI_INT)
 BDESC (OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_64BIT, 0, CODE_FOR_cvtusi2sd64_round, "__builtin_ia32_cvtusi2sd64", IX86_BUILTIN_CVTUSI2SD64, UNKNOWN, (int) V2DF_FTYPE_V2DF_UINT64_INT)
 BDESC (OPTION_MASK_ISA_AVX512F, 0, CODE_FOR_cvtusi2ss32_round, "__builtin_ia32_cvtusi2ss32", IX86_BUILTIN_CVTUSI2SS32, UNKNOWN, (int) V4SF_FTYPE_V4SF_UINT_INT)
 BDESC (OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_64BIT, 0, CODE_FOR_cvtusi2ss64_round, "__builtin_ia32_cvtusi2ss64", IX86_BUILTIN_CVTUSI2SS64, UNKNOWN, (int) V4SF_FTYPE_V4SF_UINT64_INT)
diff --git a/gcc/testsuite/gcc.target/i386/pr117304-1.c b/gcc/testsuite/gcc.target/i386/pr117304-1.c
new file mode 100644
index 00000000000..da26f4bd1b7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117304-1.c
@@ -0,0 +1,28 @@
+/* PR target/117304 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -mavx512f -mno-evex512 -mavx512vl" } */
+
+typedef __attribute__((__vector_size__(32))) int __v8si;
+typedef __attribute__((__vector_size__(32))) unsigned int __v8su;
+typedef __attribute__((__vector_size__(64))) double __v8df;
+typedef __attribute__((__vector_size__(64))) int __v16si;
+typedef __attribute__((__vector_size__(64))) unsigned int __v16su;
+typedef __attribute__((__vector_size__(64))) float __v16sf;
+typedef float __m512 __attribute__ ((__vector_size__ (64), __may_alias__));
+
+volatile __v8df df;
+volatile __v16sf sf;
+volatile __v8si hi;
+volatile __v8su hui;
+volatile __v16si i;
+volatile __v16su ui;
+
+void
+foo()
+{
+  hi ^= __builtin_ia32_cvttpd2dq512_mask(df, hi, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttpd2dq512_mask'; did you mean '__builtin_ia32_cvttpd2dq128_mask'?" } */
+  hui ^= __builtin_ia32_cvttpd2udq512_mask(df, hui, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttpd2udq512_mask'; did you mean '__builtin_ia32_cvttpd2udq128_mask'?" } */
+  ui ^= __builtin_ia32_cvttps2dq512_mask(sf, ui, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttps2dq512_mask'; did you mean '__builtin_ia32_cvttps2dq128_mask'?" } */
+  ui ^= __builtin_ia32_cvttps2udq512_mask(sf, ui, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttps2udq512_mask'; did you mean '__builtin_ia32_cvttps2udq128_mask'?" } */
+  __builtin_ia32_cvtudq2ps512_mask(ui, sf, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvtudq2ps512_mask'; did you mean '__builtin_ia32_cvtudq2ps128_mask'?" } */
+}

commit 6a0e143a6449bcc250af13642263f671f756500b
Author: Hu, Lin1 <lin1.hu@intel.com>
Date:   Thu Nov 7 10:13:15 2024 +0800

    i386: Modify regexp of pr117304-1.c
    
    Since the test doesn't care if the hint is correct,
    modify the regexp of the hint part to avoid future
    changes to the hint that would cause the test to fail.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr117304-1.c: Modify regexp.
    
    (cherry picked from commit 4473cf8409f4db19ad91bd784e32dc54eccf02a3)

diff --git a/gcc/testsuite/gcc.target/i386/pr117304-1.c b/gcc/testsuite/gcc.target/i386/pr117304-1.c
index da26f4bd1b7..4f00ff7c92a 100644
--- a/gcc/testsuite/gcc.target/i386/pr117304-1.c
+++ b/gcc/testsuite/gcc.target/i386/pr117304-1.c
@@ -20,9 +20,9 @@ volatile __v16su ui;
 void
 foo()
 {
-  hi ^= __builtin_ia32_cvttpd2dq512_mask(df, hi, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttpd2dq512_mask'; did you mean '__builtin_ia32_cvttpd2dq128_mask'?" } */
-  hui ^= __builtin_ia32_cvttpd2udq512_mask(df, hui, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttpd2udq512_mask'; did you mean '__builtin_ia32_cvttpd2udq128_mask'?" } */
-  ui ^= __builtin_ia32_cvttps2dq512_mask(sf, ui, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttps2dq512_mask'; did you mean '__builtin_ia32_cvttps2dq128_mask'?" } */
-  ui ^= __builtin_ia32_cvttps2udq512_mask(sf, ui, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttps2udq512_mask'; did you mean '__builtin_ia32_cvttps2udq128_mask'?" } */
-  __builtin_ia32_cvtudq2ps512_mask(ui, sf, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvtudq2ps512_mask'; did you mean '__builtin_ia32_cvtudq2ps128_mask'?" } */
+  hi ^= __builtin_ia32_cvttpd2dq512_mask(df, hi, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttpd2dq512_mask'; did you mean '__builtin_ia32_\[^\n\r]*'?" } */
+  hui ^= __builtin_ia32_cvttpd2udq512_mask(df, hui, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttpd2udq512_mask'; did you mean '__builtin_ia32_\[^\n\r]*'?" } */
+  ui ^= __builtin_ia32_cvttps2dq512_mask(sf, ui, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttps2dq512_mask'; did you mean '__builtin_ia32_\[^\n\r]*'?" } */
+  ui ^= __builtin_ia32_cvttps2udq512_mask(sf, ui, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvttps2udq512_mask'; did you mean '__builtin_ia32_\[^\n\r]*'?" } */
+  __builtin_ia32_cvtudq2ps512_mask(ui, sf, 0, 4); /* { dg-error "implicit declaration of function '__builtin_ia32_cvtudq2ps512_mask'; did you mean '__builtin_ia32_\[^\n\r]*'?" } */
 }

commit 6bcd3935f05056f1ed777882a70c247dc637cf6d
Author: Yuta Mukai <mukai.yuta@fujitsu.com>
Date:   Thu Nov 7 22:09:39 2024 +0000

    aarch64: Add support for FUJITSU-MONAKA (-mcpu=fujitsu-monaka) CPU
    
    This patch adds initial support for FUJITSU-MONAKA CPU.
    The cost model will be corrected in the future.
    
    2024-11-07  Yuta Mukai  <mukai.yuta@fujitsu.com>
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add fujitsu-monaka.
            * config/aarch64/aarch64-tune.md: Regenerate.
            * config/aarch64/aarch64.cc: Include fujitsu-monaka tuning model.
            * doc/invoke.texi: Document -mcpu=fujitsu-monaka.
            * config/aarch64/tuning_models/fujitsu_monaka.h: New file.

diff --git a/gcc/config/aarch64/aarch64-cores.def b/gcc/config/aarch64/aarch64-cores.def
index f5536388f61..1ab09ea5f72 100644
--- a/gcc/config/aarch64/aarch64-cores.def
+++ b/gcc/config/aarch64/aarch64-cores.def
@@ -132,6 +132,7 @@ AARCH64_CORE("octeontx2f95mm", octeontx2f95mm, cortexa57, V8_2A,  (CRYPTO, PROFI
 
 /* Fujitsu ('F') cores. */
 AARCH64_CORE("a64fx", a64fx, a64fx, V8_2A,  (F16, SVE), a64fx, 0x46, 0x001, -1)
+AARCH64_CORE("fujitsu-monaka", fujitsu_monaka, cortexa57, V9_3A, (F16, LS64, RNG, CRYPTO, SVE2_AES, SVE2_BITPERM, SVE2_SHA3, SVE2_SM4), fujitsu_monaka, 0x46, 0x003, -1)
 
 /* HiSilicon ('H') cores. */
 AARCH64_CORE("tsv110",  tsv110, tsv110, V8_2A,  (CRYPTO, F16), tsv110,   0x48, 0xd01, -1)
diff --git a/gcc/config/aarch64/aarch64-tune.md b/gcc/config/aarch64/aarch64-tune.md
index 80254836e0e..06e8680607b 100644
--- a/gcc/config/aarch64/aarch64-tune.md
+++ b/gcc/config/aarch64/aarch64-tune.md
@@ -1,5 +1,5 @@
 ;; -*- buffer-read-only: t -*-
 ;; Generated automatically by gentune.sh from aarch64-cores.def
 (define_attr "tune"
-	"cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexx2,cortexx3,cortexx4,neoversen2,cobalt100,neoversev2,grace,demeter,generic,generic_armv8_a,generic_armv9_a"
+	"cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,fujitsu_monaka,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexx2,cortexx3,cortexx4,neoversen2,cobalt100,neoversev2,grace,demeter,generic,generic_armv8_a,generic_armv9_a"
 	(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index 33a46c9eabe..32adc2fa985 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -410,6 +410,7 @@ static const struct aarch64_flag_desc aarch64_tuning_flags[] =
 #include "tuning_models/neoversen2.h"
 #include "tuning_models/neoversev2.h"
 #include "tuning_models/a64fx.h"
+#include "tuning_models/fujitsu_monaka.h"
 
 /* Support for fine-grained override of the tuning structures.  */
 struct aarch64_tuning_override_function
diff --git a/gcc/config/aarch64/tuning_models/fujitsu_monaka.h b/gcc/config/aarch64/tuning_models/fujitsu_monaka.h
new file mode 100644
index 00000000000..c3a1e0620e2
--- /dev/null
+++ b/gcc/config/aarch64/tuning_models/fujitsu_monaka.h
@@ -0,0 +1,65 @@
+/* Tuning model description for FUJITSU-MONAKA.
+   Copyright (C) 2009-2024 Free Software Foundation, Inc.
+
+   This file is part of GCC.
+
+   GCC is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   GCC is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GCC; see the file COPYING3.  If not see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef GCC_AARCH64_H_FUJITSU_MONAKA
+#define GCC_AARCH64_H_FUJITSU_MONAKA
+
+#include "generic.h"
+#include "generic_armv9_a.h"
+
+/* Tuning parameters for FUJITSU-MONAKA processor.  It is copied from the
+   generic one except for the vector width for now.  */
+static const struct tune_params fujitsu_monaka_tunings =
+{
+  &cortexa76_extra_costs,
+  &generic_armv9_a_addrcost_table,
+  &generic_armv9_a_regmove_cost,
+  &generic_armv9_a_vector_cost,
+  &generic_branch_cost,
+  &generic_approx_modes,
+  SVE_256, /* sve_width.  */
+  { 4, /* load_int.  */
+    1, /* store_int.  */
+    6, /* load_fp.  */
+    2, /* store_fp.  */
+    6, /* load_pred.  */
+    1 /* store_pred.  */
+  }, /* memmov_cost.  */
+  3, /* issue_rate.  */
+  (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops.  */
+  "32:16",	/* function_align.  */
+  "4",		/* jump_align.  */
+  "32:16",	/* loop_align.  */
+  2,	/* int_reassoc_width.  */
+  4,	/* fp_reassoc_width.  */
+  2,	/* fma_reassoc_width.  */
+  2,	/* vec_reassoc_width.  */
+  2,	/* min_div_recip_mul_sf.  */
+  2,	/* min_div_recip_mul_df.  */
+  0,	/* max_case_values.  */
+  tune_params::AUTOPREFETCHER_WEAK,	/* autoprefetcher_model.  */
+  (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
+   | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
+   | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),	/* tune_flags.  */
+  &generic_prefetch_tune,
+  AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
+  AARCH64_LDP_STP_POLICY_ALWAYS	   /* stp_policy_model.  */
+};
+
+#endif /* GCC_AARCH64_H_FUJITSU_MONAKA.  */
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index a12d1bdc55e..06077b7684b 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -21330,7 +21330,7 @@ performance of the code.  Permissible values for this option are:
 @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96}
 @samp{octeontx2t93}, @samp{octeontx2f95}, @samp{octeontx2f95n},
 @samp{octeontx2f95mm},
-@samp{a64fx},
+@samp{a64fx}, @samp{fujitsu-monaka},
 @samp{thunderx}, @samp{thunderxt88},
 @samp{thunderxt88p1}, @samp{thunderxt81}, @samp{tsv110},
 @samp{thunderxt83}, @samp{thunderx2t99}, @samp{thunderx3t110}, @samp{zeus},

commit ef7719338423acd0bffc11895c8bb7c78e45c2f9
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Thu Oct 31 19:11:57 2024 +0100

    testsuite: arm: Use effective-target for nomve_fp_1 test
    
    Test uses MVE, so add effective-target arm_fp requirement.
    
    gcc/testsuite/ChangeLog:
    
            * g++.target/arm/mve/general-c++/nomve_fp_1.c: Use
            effective-target arm_fp.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit e8886406fac50f80a521a4100a80517e50e1c388)

diff --git a/gcc/testsuite/g++.target/arm/mve/general-c++/nomve_fp_1.c b/gcc/testsuite/g++.target/arm/mve/general-c++/nomve_fp_1.c
index e0692ceb8c8..a2069d353cf 100644
--- a/gcc/testsuite/g++.target/arm/mve/general-c++/nomve_fp_1.c
+++ b/gcc/testsuite/g++.target/arm/mve/general-c++/nomve_fp_1.c
@@ -1,9 +1,11 @@
 /* { dg-do compile } */
+/* { dg-require-effective-target arm_fp_ok } */
 /* { dg-require-effective-target arm_v8_1m_mve_ok } */
 /* Do not use dg-add-options arm_v8_1m_mve, because this might expand to "",
    which could imply mve+fp depending on the user settings. We want to make
    sure the '+fp' extension is not enabled.  */
 /* { dg-options "-mfpu=auto -march=armv8.1-m.main+mve" } */
+/* { dg-add-options arm_fp } */
 
 #include <arm_mve.h>
 

commit 8cf9b2657046421327956ff972e70d348c06ae1a
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Wed Nov 6 10:28:34 2024 +0100

    testsuite: arm: Use effective-target for pr84556.cc test
    
    Using "dg-do run" with a selector overrides the default selector set by
    vect.exp that picks between "dg-do run" and "dg-do compile" based on the
    target's support for simd operations for Arm targets.
    The actual selection of default operation is performed in
    check_vect_support_and_set_flags.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/vect/pr84556.cc: Change from "dg-do run" with selector
            to instead use dg-require-effective-target with the same
            selector.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 85c3d944800257248ab48cdc75c2c02fadf63c73)

diff --git a/gcc/testsuite/g++.dg/vect/pr84556.cc b/gcc/testsuite/g++.dg/vect/pr84556.cc
index 6b1c9cec515..c7e331628a8 100644
--- a/gcc/testsuite/g++.dg/vect/pr84556.cc
+++ b/gcc/testsuite/g++.dg/vect/pr84556.cc
@@ -1,5 +1,5 @@
 // PR c++/84556
-// { dg-do run { target c++11 } }
+// { dg-require-effective-target c++11 }
 // { dg-additional-options "-O2 -fopenmp-simd" }
 // { dg-additional-options "-mavx" { target avx_runtime } }
 

commit 82191dec727fdc4740a7fffce01002a2dcfb3b6f
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Thu Nov 7 18:05:19 2024 +0100

    testsuite: arm: Allow vst1.32 instruction in pr40457-2.c
    
    When building the test case with neon, the 'vst1.32' instruction is used
    instead of 'strd'. Allow both variants to make the test pass.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/pr40457-2.c: Add vst1.32 as an allowed
            instruction.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 636b8aeacd182351313381636ecbf8dcef1ee45a)

diff --git a/gcc/testsuite/gcc.target/arm/pr40457-2.c b/gcc/testsuite/gcc.target/arm/pr40457-2.c
index 31624d35127..5f742a3029a 100644
--- a/gcc/testsuite/gcc.target/arm/pr40457-2.c
+++ b/gcc/testsuite/gcc.target/arm/pr40457-2.c
@@ -7,4 +7,4 @@ void foo(int* p)
   p[1] = 0;
 }
 
-/* { dg-final { scan-assembler "strd|stm" } } */
+/* { dg-final { scan-assembler "strd|stm|vst1\\.32" } } */

commit 29284becc5cbfdf3a474b75087e71812c1e70de1
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Wed Nov 6 07:12:14 2024 +0100

    testsuite: arm: Use effective-target arm_libc_fp_abi for pr68620.c test
    
    This fixes reported regression at
    https://linaro.atlassian.net/browse/GNU-1407.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/pr68620.c: Use effective-target
            arm_libc_fp_abi.
            * lib/target-supports.exp: Define effective-target
            arm_libc_fp_abi.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    Co-authored-by: Richard Earnshaw <rearnsha@arm.com>
    (cherry picked from commit dc5d559494656c17c4faa99f398047b7d0c33adc)

diff --git a/gcc/testsuite/gcc.target/arm/pr68620.c b/gcc/testsuite/gcc.target/arm/pr68620.c
index 6e38671752f..3ffaa5c5a9c 100644
--- a/gcc/testsuite/gcc.target/arm/pr68620.c
+++ b/gcc/testsuite/gcc.target/arm/pr68620.c
@@ -1,8 +1,10 @@
 /* { dg-do compile } */
 /* { dg-skip-if "-mpure-code supports M-profile without Neon only" { *-*-* } { "-mpure-code" } } */
 /* { dg-require-effective-target arm_arch_v7a_ok } */
-/* { dg-options "-mfp16-format=ieee -mfpu=auto -mfloat-abi=softfp" } */
+/* { dg-require-effective-target arm_libc_fp_abi_ok } */
+/* { dg-options "-mfp16-format=ieee -mfpu=auto" } */
 /* { dg-add-options arm_arch_v7a } */
+/* { dg-add-options arm_libc_fp_abi } */
 
 #include "arm_neon.h"
 
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index d8b5a06a422..6b8603b1af8 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -4733,6 +4733,41 @@ proc add_options_for_arm_fp { flags } {
     return "$flags $et_arm_fp_flags"
 }
 
+# Some libc headers will only compile correctly if the correct ABI flags
+# are picked for the target environment.  Try to find an ABI setting
+# that works.  Glibc falls into this category.  This test is intended
+# to enable FP as far as possible, so does not try -mfloat-abi=soft.
+proc check_effective_target_arm_libc_fp_abi_ok_nocache { } {
+    global et_arm_libc_fp_abi_flags
+    set et_arm_libc_fp_abi_flags ""
+    if { [check_effective_target_arm32] } {
+	foreach flags {"-mfloat-abi=hard" "-mfloat-abi=softfp"} {
+	    if { [check_no_compiler_messages_nocache arm_libc_fp_abi_ok object {
+		#include <stdint.h>
+	    } "$flags"] } {
+		set et_arm_libc_fp_abi_flags $flags
+		return 1
+	    }
+	}
+    }
+    return 0
+}
+
+proc  check_effective_target_arm_libc_fp_abi_ok { } {
+    return [check_cached_effective_target arm_libc_fp_abi_ok \
+		check_effective_target_arm_libc_fp_abi_ok_nocache]
+}
+
+# Add flags that pick the right ABI for the supported libc headers on
+# this platform.
+proc add_options_for_arm_libc_fp_abi { flags } {
+    if { ! [check_effective_target_arm_libc_fp_abi_ok] } {
+	return "$flags"
+    }
+    global et_arm_libc_fp_abi_flags
+    return "$flags $et_arm_libc_fp_abi_flags"
+}
+
 # Return 1 if this is an ARM target defining __ARM_FP with
 # double-precision support. We may need -mfloat-abi=softfp or
 # equivalent options.  Some multilibs may be incompatible with these

commit 724446556e5cf2686a12076d282214f02119beb4
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Thu Nov 7 20:09:48 2024 +0100

    testsuite: arm: Use check-function-bodies in epilog-1.c test
    
    Update test case for armv8.1-m.main that supports conditional
    arithmetic.
    
    armv7-m:
            push    {r4, lr}
            ldr     r4, .L6
            ldr     r4, [r4]
            lsls    r4, r4, #29
            it      mi
            addmi   r2, r2, #1
            bl      bar
            movs    r0, #0
            pop     {r4, pc}
    
    armv8.1-m.main:
            push    {r3, r4, r5, lr}
            ldr     r4, .L5
            ldr     r5, [r4]
            tst     r5, #4
            csinc   r2, r2, r2, eq
            bl      bar
            movs    r0, #0
            pop     {r3, r4, r5, pc}
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/epilog-1.c: Use check-function-bodies.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit ec86e87439b4a5cf73da6f318757f3561f9f278a)

diff --git a/gcc/testsuite/gcc.target/arm/epilog-1.c b/gcc/testsuite/gcc.target/arm/epilog-1.c
index f97f1ebeaaf..a1516456460 100644
--- a/gcc/testsuite/gcc.target/arm/epilog-1.c
+++ b/gcc/testsuite/gcc.target/arm/epilog-1.c
@@ -2,16 +2,34 @@
 /* { dg-do compile } */
 /* { dg-options "-mthumb -Os" } */
 /* { dg-require-effective-target arm_thumb2_ok } */
+/* { dg-final { check-function-bodies "**" "" } } */
 
 volatile int g_k;
 extern void bar(int, int, int, int);
 
+/*
+** foo:
+** ...
+** (
+
+Below block is for non-armv8.1-m.main
+**	lsls	r[0-9]+, r[0-9]+, #29
+**	it	mi
+**	addmi	r2, r2, #1
+
+** |
+
+Below block is for armv8.1-m.main
+**	tst	r[0-9]+, #4
+**	csinc	r2, r2, r2, eq
+
+** )
+**	bl	bar
+** ...
+*/
 int foo(int a, int b, int c, int d)
 {
   if (g_k & 4) c++;
   bar (a, b, c, d);
   return 0;
 }
-
-/* { dg-final { scan-assembler-times "lsls.*#29" 1 } } */
-/* { dg-final { scan-assembler-not "tst" } } */

commit 66e611619b39b8383bfeafb4b27ef8553c4aab01
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Fri Nov 8 14:07:45 2024 +0000

    aarch64: Rename svpext to svpext_lane [PR116371]
    
    When implementing the SME2 ACLE, I somehow missed off the _lane
    suffix on svpext.
    
    gcc/
            PR target/116371
            * config/aarch64/aarch64-sve-builtins-sve2.h (svpext): Rename to...
            (svpext_lane): ...this.
            * config/aarch64/aarch64-sve-builtins-sve2.cc (svpext_impl): Rename
            to...
            (svpext_lane_impl): ...this and update instantiation accordingly.
            * config/aarch64/aarch64-sve-builtins-sve2.def (svpext): Rename to...
            (svpext_lane): ...this.
    
    gcc/testsuite/
            PR target/116371
            * gcc.target/aarch64/sme2/acle-asm/pext_c16.c,
            gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c,
            gcc.target/aarch64/sme2/acle-asm/pext_c32.c,
            gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c,
            gcc.target/aarch64/sme2/acle-asm/pext_c64.c,
            gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c,
            gcc.target/aarch64/sme2/acle-asm/pext_c8.c,
            gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c: Replace with...
            * gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c,
            gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c,
            gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c,
            gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c,
            gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c,
            gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c,
            gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c,
            gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c: ...these new tests,
            testing for svpext_lane instead of svpext.
    
    (cherry picked from commit cc2d29e5f4434a3fd4e0dd93ea4f9857a0309201)

diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc b/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
index 06d4d22fc0b..72fa0d633c5 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc
@@ -221,7 +221,7 @@ public:
   }
 };
 
-class svpext_impl : public function_base
+class svpext_lane_impl : public function_base
 {
 public:
   rtx
@@ -619,7 +619,7 @@ FUNCTION (svmullt_lane, unspec_based_lane_function, (UNSPEC_SMULLT,
 						     UNSPEC_UMULLT, -1))
 FUNCTION (svnbsl, CODE_FOR_MODE0 (aarch64_sve2_nbsl),)
 FUNCTION (svnmatch, svmatch_svnmatch_impl, (UNSPEC_NMATCH))
-FUNCTION (svpext, svpext_impl,)
+FUNCTION (svpext_lane, svpext_lane_impl,)
 FUNCTION (svpmul, CODE_FOR_MODE0 (aarch64_sve2_pmul),)
 FUNCTION (svpmullb, unspec_based_function, (-1, UNSPEC_PMULLB, -1))
 FUNCTION (svpmullb_pair, unspec_based_function, (-1, UNSPEC_PMULLB_PAIR, -1))
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
index ef677a74020..318dfff06f0 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
@@ -263,7 +263,7 @@ DEF_SVE_FUNCTION_GS (svmax, binary_opt_single_n, all_arith, x24, none)
 DEF_SVE_FUNCTION_GS (svmaxnm, binary_opt_single_n, all_float, x24, none)
 DEF_SVE_FUNCTION_GS (svmin, binary_opt_single_n, all_arith, x24, none)
 DEF_SVE_FUNCTION_GS (svminnm, binary_opt_single_n, all_float, x24, none)
-DEF_SVE_FUNCTION_GS (svpext, extract_pred, all_count, x12, none)
+DEF_SVE_FUNCTION_GS (svpext_lane, extract_pred, all_count, x12, none)
 DEF_SVE_FUNCTION (svptrue, inherent, all_count, none)
 DEF_SVE_FUNCTION_GS (svqcvt, unary_convertxn, qcvt_x2, x2, none)
 DEF_SVE_FUNCTION_GS (svqcvt, unary_convertxn, qcvt_x4, x4, none)
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.h b/gcc/config/aarch64/aarch64-sve-builtins-sve2.h
index 700ffc6d315..013a9dfc5fa 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.h
+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.h
@@ -100,7 +100,7 @@ namespace aarch64_sve
     extern const function_base *const svmullt_lane;
     extern const function_base *const svnbsl;
     extern const function_base *const svnmatch;
-    extern const function_base *const svpext;
+    extern const function_base *const svpext_lane;
     extern const function_base *const svpmul;
     extern const function_base *const svpmullb;
     extern const function_base *const svpmullb_pair;
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16.c
deleted file mode 100644
index b03a8aed994..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** pext_p2_pn0_0:
-**	mov	p([0-9]+)\.b, p0\.b
-**	pext	p2\.h, pn\1\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn0_0, svbool_t,
-		 p2 = svpext_c16 (pn0, 0),
-		 p2 = svpext_c16 (pn0, 0))
-
-/*
-** pext_p5_pn7_1:
-**	mov	p([0-9]+)\.b, p7\.b
-**	pext	p5\.h, pn\1\[1\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p5_pn7_1, svbool_t,
-		 p5 = svpext_c16 (pn7, 1),
-		 p5 = svpext_c16 (pn7, 1))
-
-/*
-** pext_p9_pn8_2:
-**	pext	p9\.h, pn8\[2\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p9_pn8_2, svbool_t,
-		 p9 = svpext_c16 (pn8, 2),
-		 p9 = svpext_c16 (pn8, 2))
-
-/*
-** pext_p12_pn11_3:
-**	pext	p12\.h, pn11\[3\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p12_pn11_3, svbool_t,
-		 p12 = svpext_c16 (pn11, 3),
-		 p12 = svpext_c16 (pn11, 3))
-
-/*
-** pext_p2_pn15_0:
-**	pext	p2\.h, pn15\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn15_0, svbool_t,
-		 p2 = svpext_c16 (pn15, 0),
-		 p2 = svpext_c16 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c
deleted file mode 100644
index c07d82038b1..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** pext_p2_pn0_0:
-**	mov	p([0-9]+)\.b, p0\.b
-**	pext	{p2\.h, p3\.h}, pn\1\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn0_0, svboolx2_t,
-		 p2 = svpext_c16_x2 (pn0, 0),
-		 p2 = svpext_c16_x2 (pn0, 0))
-
-/*
-** pext_p5_pn7_1:
-**	mov	p([0-9]+)\.b, p7\.b
-**	pext	{[^}]+}, pn\1\[1\]
-**	mov	[^\n]+
-**	mov	[^\n]+
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p5_pn7_1, svboolx2_t,
-		 p5 = svpext_c16_x2 (pn7, 1),
-		 p5 = svpext_c16_x2 (pn7, 1))
-
-/*
-** pext_p9_pn8_0:
-**	pext	{[^}]+}, pn8\[0\]
-**	mov	[^\n]+
-**	mov	[^\n]+
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p9_pn8_0, svboolx2_t,
-		 p9 = svpext_c16_x2 (pn8, 0),
-		 p9 = svpext_c16_x2 (pn8, 0))
-
-/*
-** pext_p12_pn11_1:
-**	pext	{p12\.h, p13\.h}, pn11\[1\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p12_pn11_1, svboolx2_t,
-		 p12 = svpext_c16_x2 (pn11, 1),
-		 p12 = svpext_c16_x2 (pn11, 1))
-
-/*
-** pext_p2_pn15_0:
-**	pext	{p2\.h, p3\.h}, pn15\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn15_0, svboolx2_t,
-		 p2 = svpext_c16_x2 (pn15, 0),
-		 p2 = svpext_c16_x2 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32.c
deleted file mode 100644
index 2a63942d8e8..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** pext_p2_pn0_0:
-**	mov	p([0-9]+)\.b, p0\.b
-**	pext	p2\.s, pn\1\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn0_0, svbool_t,
-		 p2 = svpext_c32 (pn0, 0),
-		 p2 = svpext_c32 (pn0, 0))
-
-/*
-** pext_p5_pn7_1:
-**	mov	p([0-9]+)\.b, p7\.b
-**	pext	p5\.s, pn\1\[1\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p5_pn7_1, svbool_t,
-		 p5 = svpext_c32 (pn7, 1),
-		 p5 = svpext_c32 (pn7, 1))
-
-/*
-** pext_p9_pn8_2:
-**	pext	p9\.s, pn8\[2\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p9_pn8_2, svbool_t,
-		 p9 = svpext_c32 (pn8, 2),
-		 p9 = svpext_c32 (pn8, 2))
-
-/*
-** pext_p12_pn11_3:
-**	pext	p12\.s, pn11\[3\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p12_pn11_3, svbool_t,
-		 p12 = svpext_c32 (pn11, 3),
-		 p12 = svpext_c32 (pn11, 3))
-
-/*
-** pext_p2_pn15_0:
-**	pext	p2\.s, pn15\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn15_0, svbool_t,
-		 p2 = svpext_c32 (pn15, 0),
-		 p2 = svpext_c32 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c
deleted file mode 100644
index 1629b440fab..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** pext_p2_pn0_0:
-**	mov	p([0-9]+)\.b, p0\.b
-**	pext	{p2\.s, p3\.s}, pn\1\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn0_0, svboolx2_t,
-		 p2 = svpext_c32_x2 (pn0, 0),
-		 p2 = svpext_c32_x2 (pn0, 0))
-
-/*
-** pext_p5_pn7_1:
-**	mov	p([0-9]+)\.b, p7\.b
-**	pext	{[^}]+}, pn\1\[1\]
-**	mov	[^\n]+
-**	mov	[^\n]+
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p5_pn7_1, svboolx2_t,
-		 p5 = svpext_c32_x2 (pn7, 1),
-		 p5 = svpext_c32_x2 (pn7, 1))
-
-/*
-** pext_p9_pn8_0:
-**	pext	{[^}]+}, pn8\[0\]
-**	mov	[^\n]+
-**	mov	[^\n]+
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p9_pn8_0, svboolx2_t,
-		 p9 = svpext_c32_x2 (pn8, 0),
-		 p9 = svpext_c32_x2 (pn8, 0))
-
-/*
-** pext_p12_pn11_1:
-**	pext	{p12\.s, p13\.s}, pn11\[1\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p12_pn11_1, svboolx2_t,
-		 p12 = svpext_c32_x2 (pn11, 1),
-		 p12 = svpext_c32_x2 (pn11, 1))
-
-/*
-** pext_p2_pn15_0:
-**	pext	{p2\.s, p3\.s}, pn15\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn15_0, svboolx2_t,
-		 p2 = svpext_c32_x2 (pn15, 0),
-		 p2 = svpext_c32_x2 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64.c
deleted file mode 100644
index 8c93d7b6f1f..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** pext_p2_pn0_0:
-**	mov	p([0-9]+)\.b, p0\.b
-**	pext	p2\.d, pn\1\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn0_0, svbool_t,
-		 p2 = svpext_c64 (pn0, 0),
-		 p2 = svpext_c64 (pn0, 0))
-
-/*
-** pext_p5_pn7_1:
-**	mov	p([0-9]+)\.b, p7\.b
-**	pext	p5\.d, pn\1\[1\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p5_pn7_1, svbool_t,
-		 p5 = svpext_c64 (pn7, 1),
-		 p5 = svpext_c64 (pn7, 1))
-
-/*
-** pext_p9_pn8_2:
-**	pext	p9\.d, pn8\[2\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p9_pn8_2, svbool_t,
-		 p9 = svpext_c64 (pn8, 2),
-		 p9 = svpext_c64 (pn8, 2))
-
-/*
-** pext_p12_pn11_3:
-**	pext	p12\.d, pn11\[3\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p12_pn11_3, svbool_t,
-		 p12 = svpext_c64 (pn11, 3),
-		 p12 = svpext_c64 (pn11, 3))
-
-/*
-** pext_p2_pn15_0:
-**	pext	p2\.d, pn15\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn15_0, svbool_t,
-		 p2 = svpext_c64 (pn15, 0),
-		 p2 = svpext_c64 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c
deleted file mode 100644
index ab12c8a9003..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** pext_p2_pn0_0:
-**	mov	p([0-9]+)\.b, p0\.b
-**	pext	{p2\.d, p3\.d}, pn\1\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn0_0, svboolx2_t,
-		 p2 = svpext_c64_x2 (pn0, 0),
-		 p2 = svpext_c64_x2 (pn0, 0))
-
-/*
-** pext_p5_pn7_1:
-**	mov	p([0-9]+)\.b, p7\.b
-**	pext	{[^}]+}, pn\1\[1\]
-**	mov	[^\n]+
-**	mov	[^\n]+
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p5_pn7_1, svboolx2_t,
-		 p5 = svpext_c64_x2 (pn7, 1),
-		 p5 = svpext_c64_x2 (pn7, 1))
-
-/*
-** pext_p9_pn8_0:
-**	pext	{[^}]+}, pn8\[0\]
-**	mov	[^\n]+
-**	mov	[^\n]+
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p9_pn8_0, svboolx2_t,
-		 p9 = svpext_c64_x2 (pn8, 0),
-		 p9 = svpext_c64_x2 (pn8, 0))
-
-/*
-** pext_p12_pn11_1:
-**	pext	{p12\.d, p13\.d}, pn11\[1\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p12_pn11_1, svboolx2_t,
-		 p12 = svpext_c64_x2 (pn11, 1),
-		 p12 = svpext_c64_x2 (pn11, 1))
-
-/*
-** pext_p2_pn15_0:
-**	pext	{p2\.d, p3\.d}, pn15\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn15_0, svboolx2_t,
-		 p2 = svpext_c64_x2 (pn15, 0),
-		 p2 = svpext_c64_x2 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8.c
deleted file mode 100644
index 8f882ce5a14..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** pext_p2_pn0_0:
-**	mov	p([0-9]+)\.b, p0\.b
-**	pext	p2\.b, pn\1\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn0_0, svbool_t,
-		 p2 = svpext_c8 (pn0, 0),
-		 p2 = svpext_c8 (pn0, 0))
-
-/*
-** pext_p5_pn7_1:
-**	mov	p([0-9]+)\.b, p7\.b
-**	pext	p5\.b, pn\1\[1\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p5_pn7_1, svbool_t,
-		 p5 = svpext_c8 (pn7, 1),
-		 p5 = svpext_c8 (pn7, 1))
-
-/*
-** pext_p9_pn8_2:
-**	pext	p9\.b, pn8\[2\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p9_pn8_2, svbool_t,
-		 p9 = svpext_c8 (pn8, 2),
-		 p9 = svpext_c8 (pn8, 2))
-
-/*
-** pext_p12_pn11_3:
-**	pext	p12\.b, pn11\[3\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p12_pn11_3, svbool_t,
-		 p12 = svpext_c8 (pn11, 3),
-		 p12 = svpext_c8 (pn11, 3))
-
-/*
-** pext_p2_pn15_0:
-**	pext	p2\.b, pn15\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn15_0, svbool_t,
-		 p2 = svpext_c8 (pn15, 0),
-		 p2 = svpext_c8 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c
deleted file mode 100644
index 814e36df094..00000000000
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
-
-#include "test_sme2_acle.h"
-
-/*
-** pext_p2_pn0_0:
-**	mov	p([0-9]+)\.b, p0\.b
-**	pext	{p2\.b, p3\.b}, pn\1\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn0_0, svboolx2_t,
-		 p2 = svpext_c8_x2 (pn0, 0),
-		 p2 = svpext_c8_x2 (pn0, 0))
-
-/*
-** pext_p5_pn7_1:
-**	mov	p([0-9]+)\.b, p7\.b
-**	pext	{[^}]+}, pn\1\[1\]
-**	mov	[^\n]+
-**	mov	[^\n]+
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p5_pn7_1, svboolx2_t,
-		 p5 = svpext_c8_x2 (pn7, 1),
-		 p5 = svpext_c8_x2 (pn7, 1))
-
-/*
-** pext_p9_pn8_0:
-**	pext	{[^}]+}, pn8\[0\]
-**	mov	[^\n]+
-**	mov	[^\n]+
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p9_pn8_0, svboolx2_t,
-		 p9 = svpext_c8_x2 (pn8, 0),
-		 p9 = svpext_c8_x2 (pn8, 0))
-
-/*
-** pext_p12_pn11_1:
-**	pext	{p12\.b, p13\.b}, pn11\[1\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p12_pn11_1, svboolx2_t,
-		 p12 = svpext_c8_x2 (pn11, 1),
-		 p12 = svpext_c8_x2 (pn11, 1))
-
-/*
-** pext_p2_pn15_0:
-**	pext	{p2\.b, p3\.b}, pn15\[0\]
-**	ret
-*/
-TEST_EXTRACT_PN (pext_p2_pn15_0, svboolx2_t,
-		 p2 = svpext_c8_x2 (pn15, 0),
-		 p2 = svpext_c8_x2 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c
new file mode 100644
index 00000000000..d06598f71ff
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c
@@ -0,0 +1,50 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** pext_lane_p2_pn0_0:
+**	mov	p([0-9]+)\.b, p0\.b
+**	pext	p2\.h, pn\1\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svbool_t,
+		 p2 = svpext_lane_c16 (pn0, 0),
+		 p2 = svpext_lane_c16 (pn0, 0))
+
+/*
+** pext_lane_p5_pn7_1:
+**	mov	p([0-9]+)\.b, p7\.b
+**	pext	p5\.h, pn\1\[1\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svbool_t,
+		 p5 = svpext_lane_c16 (pn7, 1),
+		 p5 = svpext_lane_c16 (pn7, 1))
+
+/*
+** pext_lane_p9_pn8_2:
+**	pext	p9\.h, pn8\[2\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p9_pn8_2, svbool_t,
+		 p9 = svpext_lane_c16 (pn8, 2),
+		 p9 = svpext_lane_c16 (pn8, 2))
+
+/*
+** pext_lane_p12_pn11_3:
+**	pext	p12\.h, pn11\[3\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p12_pn11_3, svbool_t,
+		 p12 = svpext_lane_c16 (pn11, 3),
+		 p12 = svpext_lane_c16 (pn11, 3))
+
+/*
+** pext_lane_p2_pn15_0:
+**	pext	p2\.h, pn15\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svbool_t,
+		 p2 = svpext_lane_c16 (pn15, 0),
+		 p2 = svpext_lane_c16 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c
new file mode 100644
index 00000000000..eb2621cda9a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c
@@ -0,0 +1,54 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** pext_lane_p2_pn0_0:
+**	mov	p([0-9]+)\.b, p0\.b
+**	pext	{p2\.h, p3\.h}, pn\1\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svboolx2_t,
+		 p2 = svpext_lane_c16_x2 (pn0, 0),
+		 p2 = svpext_lane_c16_x2 (pn0, 0))
+
+/*
+** pext_lane_p5_pn7_1:
+**	mov	p([0-9]+)\.b, p7\.b
+**	pext	{[^}]+}, pn\1\[1\]
+**	mov	[^\n]+
+**	mov	[^\n]+
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svboolx2_t,
+		 p5 = svpext_lane_c16_x2 (pn7, 1),
+		 p5 = svpext_lane_c16_x2 (pn7, 1))
+
+/*
+** pext_lane_p9_pn8_0:
+**	pext	{[^}]+}, pn8\[0\]
+**	mov	[^\n]+
+**	mov	[^\n]+
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p9_pn8_0, svboolx2_t,
+		 p9 = svpext_lane_c16_x2 (pn8, 0),
+		 p9 = svpext_lane_c16_x2 (pn8, 0))
+
+/*
+** pext_lane_p12_pn11_1:
+**	pext	{p12\.h, p13\.h}, pn11\[1\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p12_pn11_1, svboolx2_t,
+		 p12 = svpext_lane_c16_x2 (pn11, 1),
+		 p12 = svpext_lane_c16_x2 (pn11, 1))
+
+/*
+** pext_lane_p2_pn15_0:
+**	pext	{p2\.h, p3\.h}, pn15\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svboolx2_t,
+		 p2 = svpext_lane_c16_x2 (pn15, 0),
+		 p2 = svpext_lane_c16_x2 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c
new file mode 100644
index 00000000000..870e671852a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c
@@ -0,0 +1,50 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** pext_lane_p2_pn0_0:
+**	mov	p([0-9]+)\.b, p0\.b
+**	pext	p2\.s, pn\1\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svbool_t,
+		 p2 = svpext_lane_c32 (pn0, 0),
+		 p2 = svpext_lane_c32 (pn0, 0))
+
+/*
+** pext_lane_p5_pn7_1:
+**	mov	p([0-9]+)\.b, p7\.b
+**	pext	p5\.s, pn\1\[1\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svbool_t,
+		 p5 = svpext_lane_c32 (pn7, 1),
+		 p5 = svpext_lane_c32 (pn7, 1))
+
+/*
+** pext_lane_p9_pn8_2:
+**	pext	p9\.s, pn8\[2\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p9_pn8_2, svbool_t,
+		 p9 = svpext_lane_c32 (pn8, 2),
+		 p9 = svpext_lane_c32 (pn8, 2))
+
+/*
+** pext_lane_p12_pn11_3:
+**	pext	p12\.s, pn11\[3\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p12_pn11_3, svbool_t,
+		 p12 = svpext_lane_c32 (pn11, 3),
+		 p12 = svpext_lane_c32 (pn11, 3))
+
+/*
+** pext_lane_p2_pn15_0:
+**	pext	p2\.s, pn15\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svbool_t,
+		 p2 = svpext_lane_c32 (pn15, 0),
+		 p2 = svpext_lane_c32 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c
new file mode 100644
index 00000000000..1ed586de1ea
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c
@@ -0,0 +1,54 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** pext_lane_p2_pn0_0:
+**	mov	p([0-9]+)\.b, p0\.b
+**	pext	{p2\.s, p3\.s}, pn\1\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svboolx2_t,
+		 p2 = svpext_lane_c32_x2 (pn0, 0),
+		 p2 = svpext_lane_c32_x2 (pn0, 0))
+
+/*
+** pext_lane_p5_pn7_1:
+**	mov	p([0-9]+)\.b, p7\.b
+**	pext	{[^}]+}, pn\1\[1\]
+**	mov	[^\n]+
+**	mov	[^\n]+
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svboolx2_t,
+		 p5 = svpext_lane_c32_x2 (pn7, 1),
+		 p5 = svpext_lane_c32_x2 (pn7, 1))
+
+/*
+** pext_lane_p9_pn8_0:
+**	pext	{[^}]+}, pn8\[0\]
+**	mov	[^\n]+
+**	mov	[^\n]+
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p9_pn8_0, svboolx2_t,
+		 p9 = svpext_lane_c32_x2 (pn8, 0),
+		 p9 = svpext_lane_c32_x2 (pn8, 0))
+
+/*
+** pext_lane_p12_pn11_1:
+**	pext	{p12\.s, p13\.s}, pn11\[1\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p12_pn11_1, svboolx2_t,
+		 p12 = svpext_lane_c32_x2 (pn11, 1),
+		 p12 = svpext_lane_c32_x2 (pn11, 1))
+
+/*
+** pext_lane_p2_pn15_0:
+**	pext	{p2\.s, p3\.s}, pn15\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svboolx2_t,
+		 p2 = svpext_lane_c32_x2 (pn15, 0),
+		 p2 = svpext_lane_c32_x2 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c
new file mode 100644
index 00000000000..a3a0b299e88
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c
@@ -0,0 +1,50 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** pext_lane_p2_pn0_0:
+**	mov	p([0-9]+)\.b, p0\.b
+**	pext	p2\.d, pn\1\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svbool_t,
+		 p2 = svpext_lane_c64 (pn0, 0),
+		 p2 = svpext_lane_c64 (pn0, 0))
+
+/*
+** pext_lane_p5_pn7_1:
+**	mov	p([0-9]+)\.b, p7\.b
+**	pext	p5\.d, pn\1\[1\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svbool_t,
+		 p5 = svpext_lane_c64 (pn7, 1),
+		 p5 = svpext_lane_c64 (pn7, 1))
+
+/*
+** pext_lane_p9_pn8_2:
+**	pext	p9\.d, pn8\[2\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p9_pn8_2, svbool_t,
+		 p9 = svpext_lane_c64 (pn8, 2),
+		 p9 = svpext_lane_c64 (pn8, 2))
+
+/*
+** pext_lane_p12_pn11_3:
+**	pext	p12\.d, pn11\[3\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p12_pn11_3, svbool_t,
+		 p12 = svpext_lane_c64 (pn11, 3),
+		 p12 = svpext_lane_c64 (pn11, 3))
+
+/*
+** pext_lane_p2_pn15_0:
+**	pext	p2\.d, pn15\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svbool_t,
+		 p2 = svpext_lane_c64 (pn15, 0),
+		 p2 = svpext_lane_c64 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c
new file mode 100644
index 00000000000..3678912f5a0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c
@@ -0,0 +1,54 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** pext_lane_p2_pn0_0:
+**	mov	p([0-9]+)\.b, p0\.b
+**	pext	{p2\.d, p3\.d}, pn\1\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svboolx2_t,
+		 p2 = svpext_lane_c64_x2 (pn0, 0),
+		 p2 = svpext_lane_c64_x2 (pn0, 0))
+
+/*
+** pext_lane_p5_pn7_1:
+**	mov	p([0-9]+)\.b, p7\.b
+**	pext	{[^}]+}, pn\1\[1\]
+**	mov	[^\n]+
+**	mov	[^\n]+
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svboolx2_t,
+		 p5 = svpext_lane_c64_x2 (pn7, 1),
+		 p5 = svpext_lane_c64_x2 (pn7, 1))
+
+/*
+** pext_lane_p9_pn8_0:
+**	pext	{[^}]+}, pn8\[0\]
+**	mov	[^\n]+
+**	mov	[^\n]+
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p9_pn8_0, svboolx2_t,
+		 p9 = svpext_lane_c64_x2 (pn8, 0),
+		 p9 = svpext_lane_c64_x2 (pn8, 0))
+
+/*
+** pext_lane_p12_pn11_1:
+**	pext	{p12\.d, p13\.d}, pn11\[1\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p12_pn11_1, svboolx2_t,
+		 p12 = svpext_lane_c64_x2 (pn11, 1),
+		 p12 = svpext_lane_c64_x2 (pn11, 1))
+
+/*
+** pext_lane_p2_pn15_0:
+**	pext	{p2\.d, p3\.d}, pn15\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svboolx2_t,
+		 p2 = svpext_lane_c64_x2 (pn15, 0),
+		 p2 = svpext_lane_c64_x2 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c
new file mode 100644
index 00000000000..ca1767c7655
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c
@@ -0,0 +1,50 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** pext_lane_p2_pn0_0:
+**	mov	p([0-9]+)\.b, p0\.b
+**	pext	p2\.b, pn\1\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svbool_t,
+		 p2 = svpext_lane_c8 (pn0, 0),
+		 p2 = svpext_lane_c8 (pn0, 0))
+
+/*
+** pext_lane_p5_pn7_1:
+**	mov	p([0-9]+)\.b, p7\.b
+**	pext	p5\.b, pn\1\[1\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svbool_t,
+		 p5 = svpext_lane_c8 (pn7, 1),
+		 p5 = svpext_lane_c8 (pn7, 1))
+
+/*
+** pext_lane_p9_pn8_2:
+**	pext	p9\.b, pn8\[2\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p9_pn8_2, svbool_t,
+		 p9 = svpext_lane_c8 (pn8, 2),
+		 p9 = svpext_lane_c8 (pn8, 2))
+
+/*
+** pext_lane_p12_pn11_3:
+**	pext	p12\.b, pn11\[3\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p12_pn11_3, svbool_t,
+		 p12 = svpext_lane_c8 (pn11, 3),
+		 p12 = svpext_lane_c8 (pn11, 3))
+
+/*
+** pext_lane_p2_pn15_0:
+**	pext	p2\.b, pn15\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svbool_t,
+		 p2 = svpext_lane_c8 (pn15, 0),
+		 p2 = svpext_lane_c8 (pn15, 0))
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c
new file mode 100644
index 00000000000..d2ef31e5655
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c
@@ -0,0 +1,54 @@
+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
+
+#include "test_sme2_acle.h"
+
+/*
+** pext_lane_p2_pn0_0:
+**	mov	p([0-9]+)\.b, p0\.b
+**	pext	{p2\.b, p3\.b}, pn\1\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svboolx2_t,
+		 p2 = svpext_lane_c8_x2 (pn0, 0),
+		 p2 = svpext_lane_c8_x2 (pn0, 0))
+
+/*
+** pext_lane_p5_pn7_1:
+**	mov	p([0-9]+)\.b, p7\.b
+**	pext	{[^}]+}, pn\1\[1\]
+**	mov	[^\n]+
+**	mov	[^\n]+
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svboolx2_t,
+		 p5 = svpext_lane_c8_x2 (pn7, 1),
+		 p5 = svpext_lane_c8_x2 (pn7, 1))
+
+/*
+** pext_lane_p9_pn8_0:
+**	pext	{[^}]+}, pn8\[0\]
+**	mov	[^\n]+
+**	mov	[^\n]+
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p9_pn8_0, svboolx2_t,
+		 p9 = svpext_lane_c8_x2 (pn8, 0),
+		 p9 = svpext_lane_c8_x2 (pn8, 0))
+
+/*
+** pext_lane_p12_pn11_1:
+**	pext	{p12\.b, p13\.b}, pn11\[1\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p12_pn11_1, svboolx2_t,
+		 p12 = svpext_lane_c8_x2 (pn11, 1),
+		 p12 = svpext_lane_c8_x2 (pn11, 1))
+
+/*
+** pext_lane_p2_pn15_0:
+**	pext	{p2\.b, p3\.b}, pn15\[0\]
+**	ret
+*/
+TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svboolx2_t,
+		 p2 = svpext_lane_c8_x2 (pn15, 0),
+		 p2 = svpext_lane_c8_x2 (pn15, 0))

commit ffe00a011720c76f06d9fb2b59ba6f5ec509fab5
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Fri Nov 8 14:07:45 2024 +0000

    aarch64: Fix SVE ACLE gimple folds for C++ LTO [PR116629]
    
    The SVE ACLE code has two ways of handling overloaded functions.
    One, used by C, is to define a single dummy function for each unique
    overloaded name, with resolve_overloaded_builtin then resolving calls
    to real non-overloaded functions.  The other, used by C++, is to
    define a separate function for each individual overload.
    
    The builtins harness assigns integer function codes programmatically.
    However, LTO requires it to use the same assignment for every
    translation unit, regardless of language.  This means that C++ TUs
    need to create (unused) slots for the C overloads and that C TUs
    need to create (unused) slots for the C++ overloads.
    
    In many ways, it doesn't matter whether the LTO frontend itself
    uses the C approach or the C++ approach to defining overloaded
    functions, since the LTO frontend never has to resolve source-level
    overloading.  However, the C++ approach of defining a separate
    function for each overload means that C++ calls never need to
    be redirected to a different function.  Calls to an overload
    can appear in the LTO dump and survive until expand.  In contrast,
    calls to C's dummy overload functions are resolved by the front
    end and never survive to LTO (or expand).
    
    Some optimisations work by moving between sibling functions, such as _m
    to _x.  If the source function is an overload, the expected destination
    function is too.  The LTO frontend needs to define C++ overloads if it
    wants to do this optimisation properly for C++.
    
    The PR is about a tree checking failure caused by trying to use a
    stubbed-out C++ overload in LTO.  Dealing with that by detecting the
    stub (rather than changing which overloads are defined) would have
    turned this from an ice-on-valid to a missed optimisation.
    
    In future, it would probably make sense to redirect overloads to
    non-overloaded functions during gimple folding, in case that exposes
    more CSE opportunities.  But it'd probably be of limited benefit, since
    it should be rare for code to mix overloaded and non-overloaded uses of
    the same operation.  It also wouldn't be suitable for backports.
    
    gcc/
            PR target/116629
            * config/aarch64/aarch64-sve-builtins.cc
            (function_builder::function_builder): Use direct overloads for LTO.
    
    gcc/testsuite/
            PR target/116629
            * gcc.target/aarch64/sve/acle/general/pr106326_2.c: New test.
    
    (cherry picked from commit fee3adbac055c3ff2649fed866c66d44ebfcbe90)

diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc
index e0458f7c1f6..afc0c36e620 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins.cc
@@ -1259,7 +1259,7 @@ function_builder::function_builder (handle_pragma_index pragma_index,
 				    bool function_nulls)
 {
   m_overload_type = build_function_type (void_type_node, void_list_node);
-  m_direct_overloads = lang_GNU_CXX ();
+  m_direct_overloads = lang_GNU_CXX () || in_lto_p;
 
   if (initial_indexes[pragma_index] == 0)
     {
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr106326_2.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr106326_2.c
new file mode 100644
index 00000000000..d312d31f59c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr106326_2.c
@@ -0,0 +1,200 @@
+/* { dg-do link } */
+/* { dg-options "-O2 -flto -shared -fPIC --save-temps" } */
+/* { dg-require-effective-target shared } */
+/* { dg-require-effective-target fpic } */
+
+#include <arm_sve.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+svint32_t
+add1 (svint32_t x, svint32_t y)
+{
+  return svadd_z (svptrue_b8 (), x, y);
+}
+
+svint32_t
+add2 (svint32_t x, svint32_t y)
+{
+  return svadd_z (svptrue_b16 (), x, y);
+}
+
+svint32_t
+add3 (svint32_t x, svint32_t y)
+{
+  return svadd_z (svptrue_b32 (), x, y);
+}
+
+svint32_t
+add4 (svint32_t x, svint32_t y)
+{
+  return svadd_z (svptrue_b64 (), x, y);
+}
+
+svint32_t
+add5 (svint32_t x, svint32_t y)
+{
+  return svadd_m (svptrue_b8 (), x, y);
+}
+
+svint32_t
+add6 (svint32_t x, svint32_t y)
+{
+  return svadd_m (svptrue_b16 (), x, y);
+}
+
+svint32_t
+add7 (svint32_t x, svint32_t y)
+{
+  return svadd_m (svptrue_b32 (), x, y);
+}
+
+svint32_t
+add8 (svint32_t x, svint32_t y)
+{
+  return svadd_m (svptrue_b64 (), x, y);
+}
+
+svint16_t
+add9 (svint16_t x, svint16_t y)
+{
+  return svadd_m (svptrue_b32 (), x, y);
+}
+
+svint32_t
+and1 (svint32_t x)
+{
+  return svand_z (svptrue_b8 (), x, 1);
+}
+
+svint32_t
+and2 (svint32_t x)
+{
+  return svand_z (svptrue_b16 (), x, 1);
+}
+
+svint32_t
+and3 (svint32_t x)
+{
+  return svand_z (svptrue_b32 (), x, 1);
+}
+
+svint32_t
+and4 (svint32_t x)
+{
+  return svand_z (svptrue_b64 (), x, 1);
+}
+
+svint32_t
+and5 (svint32_t x)
+{
+  return svand_m (svptrue_b8 (), x, 1);
+}
+
+svint32_t
+and6 (svint32_t x)
+{
+  return svand_m (svptrue_b16 (), x, 1);
+}
+
+svint32_t
+and7 (svint32_t x)
+{
+  return svand_m (svptrue_b32 (), x, 1);
+}
+
+svint32_t
+and8 (svint32_t x)
+{
+  return svand_m (svptrue_b64 (), x, 1);
+}
+
+svbool_t
+and9 (svbool_t x, svbool_t y)
+{
+  return svand_z (svptrue_b8 (), x, y);
+}
+
+svint32_t
+not1 (svint32_t x, svint32_t y)
+{
+  return svnot_m (x, svptrue_b8 (), y);
+}
+
+svint32_t
+cvt1 (svfloat16_t x)
+{
+  return svcvt_s32_z (svptrue_b8 (), x);
+}
+
+svint32_t
+cvt2 (svfloat16_t x)
+{
+  return svcvt_s32_z (svptrue_b16 (), x);
+}
+
+svint32_t
+cvt3 (svfloat16_t x)
+{
+  return svcvt_s32_z (svptrue_b32 (), x);
+}
+
+svint32_t
+cvt4 (svfloat16_t x)
+{
+  return svcvt_s32_z (svptrue_b64 (), x);
+}
+
+svfloat16_t
+cvt5 (svfloat32_t x)
+{
+  return svcvt_f16_z (svptrue_b8 (), x);
+}
+
+svfloat16_t
+cvt6 (svfloat32_t x)
+{
+  return svcvt_f16_z (svptrue_b16 (), x);
+}
+
+svfloat16_t
+cvt7 (svfloat32_t x)
+{
+  return svcvt_f16_z (svptrue_b32 (), x);
+}
+
+svfloat16_t
+cvt8 (svfloat32_t x)
+{
+  return svcvt_f16_z (svptrue_b64 (), x);
+}
+
+svfloat16_t
+cvt9 (svint16_t x)
+{
+  return svcvt_f16_z (svptrue_b8 (), x);
+}
+
+svfloat16_t
+cvt10 (svint16_t x)
+{
+  return svcvt_f16_z (svptrue_b16 (), x);
+}
+
+svfloat16_t
+cvt11 (svint16_t x)
+{
+  return svcvt_f16_z (svptrue_b32 (), x);
+}
+
+svfloat16_t
+cvt12 (svint16_t x)
+{
+  return svcvt_f16_z (svptrue_b64 (), x);
+}
+
+#ifdef __cplusplus
+}
+#endif

commit e49c265c59d7ba73e50fb7fe2784eb2874037642
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Fri Nov 8 14:07:46 2024 +0000

    aarch64: Fix folding of degenerate svwhilele case [PR117045]
    
    The svwhilele folder mishandled the degenerate case in which
    the second argument is the maximum integer.  In that case,
    the result is all-true regardless of the first parameter:
    
      If the second scalar operand is equal to the maximum signed integer
      value then a condition which includes an equality test can never fail
      and the result will be an all-true predicate.
    
    This is because the conceptual "increment the first operand
    by 1 after each element" is done modulo the range of the operand.
    The GCC code was instead treating it as infinite precision.
    whilele_5.c even had a test for the incorrect behaviour.
    
    The easiest fix seemed to be to handle that case specially before
    doing constant folding.  This also copes with variable first operands.
    
    gcc/
            PR target/116999
            PR target/117045
            * config/aarch64/aarch64-sve-builtins-base.cc
            (svwhilelx_impl::fold): Check for WHILELTs of the minimum value
            and WHILELEs of the maximum value.  Fold them to all-false and
            all-true respectively.
    
    gcc/testsuite/
            PR target/116999
            PR target/117045
            * gcc.target/aarch64/sve/acle/general/whilele_5.c: Fix bogus
            expected result.
            * gcc.target/aarch64/sve/acle/general/whilele_11.c: New test.
            * gcc.target/aarch64/sve/acle/general/whilele_12.c: Likewise.
    
    (cherry picked from commit 50e7c51b0a0e9dc1d93f829016ae743b4f2e5070)

diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
index 241a249503f..2bd084fc75b 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc
@@ -2857,7 +2857,9 @@ public:
     : while_comparison (unspec_for_sint, unspec_for_uint), m_eq_p (eq_p)
   {}
 
-  /* Try to fold a call by treating its arguments as constants of type T.  */
+  /* Try to fold a call by treating its arguments as constants of type T.
+     We have already filtered out the degenerate cases of X .LT. MIN
+     and X .LE. MAX.  */
   template<typename T>
   gimple *
   fold_type (gimple_folder &f) const
@@ -2913,6 +2915,13 @@ public:
     if (f.vectors_per_tuple () > 1)
       return nullptr;
 
+    /* Filter out cases where the condition is always true or always false.  */
+    tree arg1 = gimple_call_arg (f.call, 1);
+    if (!m_eq_p && operand_equal_p (arg1, TYPE_MIN_VALUE (TREE_TYPE (arg1))))
+      return f.fold_to_pfalse ();
+    if (m_eq_p && operand_equal_p (arg1, TYPE_MAX_VALUE (TREE_TYPE (arg1))))
+      return f.fold_to_ptrue ();
+
     if (f.type_suffix (1).unsigned_p)
       return fold_type<poly_uint64> (f);
     else
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_11.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_11.c
new file mode 100644
index 00000000000..2be9dc5c534
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_11.c
@@ -0,0 +1,31 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+#include <arm_sve.h>
+#include <limits.h>
+
+svbool_t
+f1 (volatile int32_t *ptr)
+{
+  return svwhilelt_b8_s32 (*ptr, INT32_MIN);
+}
+
+svbool_t
+f2 (volatile uint32_t *ptr)
+{
+  return svwhilelt_b16_u32 (*ptr, 0);
+}
+
+svbool_t
+f3 (volatile int64_t *ptr)
+{
+  return svwhilelt_b32_s64 (*ptr, INT64_MIN);
+}
+
+svbool_t
+f4 (volatile uint64_t *ptr)
+{
+  return svwhilelt_b64_u64 (*ptr, 0);
+}
+
+/* { dg-final { scan-assembler-times {\tpfalse\tp[0-9]+\.b\n} 4 } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_12.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_12.c
new file mode 100644
index 00000000000..713065c3145
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_12.c
@@ -0,0 +1,34 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+#include <arm_sve.h>
+#include <limits.h>
+
+svbool_t
+f1 (volatile int32_t *ptr)
+{
+  return svwhilele_b8_s32 (*ptr, INT32_MAX);
+}
+
+svbool_t
+f2 (volatile uint32_t *ptr)
+{
+  return svwhilele_b16_u32 (*ptr, UINT32_MAX);
+}
+
+svbool_t
+f3 (volatile int64_t *ptr)
+{
+  return svwhilele_b32_s64 (*ptr, INT64_MAX);
+}
+
+svbool_t
+f4 (volatile uint64_t *ptr)
+{
+  return svwhilele_b64_u64 (*ptr, UINT64_MAX);
+}
+
+/* { dg-final { scan-assembler {\tptrue\tp[0-9]+\.b(?:, all)\n} } } */
+/* { dg-final { scan-assembler {\tptrue\tp[0-9]+\.h(?:, all)\n} } } */
+/* { dg-final { scan-assembler {\tptrue\tp[0-9]+\.s(?:, all)\n} } } */
+/* { dg-final { scan-assembler {\tptrue\tp[0-9]+\.d(?:, all)\n} } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_5.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_5.c
index 7c73aa5926b..79f0e64b2ae 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_5.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/whilele_5.c
@@ -28,7 +28,7 @@ test3 (svbool_t *ptr)
   *ptr = svwhilele_b16_s32 (0x7ffffffb, 0x7fffffff);
 }
 
-/* { dg-final { scan-assembler {\tptrue\tp[0-9]+\.h, vl5\n} } } */
+/* { dg-final { scan-assembler {\tptrue\tp[0-9]+\.h(?:, all)\n} } } */
 
 void
 test4 (svbool_t *ptr)

commit d228af5cbc2f635d0837ed67fe95641d6e567aff
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Fri Nov 8 14:07:46 2024 +0000

    aarch64: Restrict FCLAMP to SME2
    
    There are two sets of patterns for FCLAMP: one set for single registers
    and one set for multiple registers.  The multiple-register set was
    correctly gated on SME2, but the single-register set only required SME.
    This doesn't matter for ACLE usage, since the intrinsic definitions
    are correctly gated.  But it does matter for automatic generation of
    FCLAMP from separate minimum and maximum operations (either ACLE
    intrinsics or autovectorised code).
    
    gcc/
            * config/aarch64/aarch64-sve2.md (@aarch64_sve_fclamp<mode>)
            (*aarch64_sve_fclamp<mode>_x): Require TARGET_STREAMING_SME2
            rather than TARGET_STREAMING_SME.
    
    gcc/testsuite/
            * gcc.target/aarch64/sme/clamp_3.c: Force sme2
            * gcc.target/aarch64/sme/clamp_4.c: Likewise.
            * gcc.target/aarch64/sme/clamp_5.c: New test.
    
    (cherry picked from commit f5962839d6e0c3115931e68d938d9a0cd7a383b1)

diff --git a/gcc/config/aarch64/aarch64-sve2.md b/gcc/config/aarch64/aarch64-sve2.md
index 934e57055d3..bae153b2c8c 100644
--- a/gcc/config/aarch64/aarch64-sve2.md
+++ b/gcc/config/aarch64/aarch64-sve2.md
@@ -1117,7 +1117,7 @@
 	     UNSPEC_FMAXNM)
 	   (match_operand:SVE_FULL_F 3 "register_operand")]
 	  UNSPEC_FMINNM))]
-  "TARGET_STREAMING_SME"
+  "TARGET_STREAMING_SME2"
   {@ [cons: =0,  1, 2, 3; attrs: movprfx]
      [       w, %0, w, w; *             ] fclamp\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
      [     ?&w,  w, w, w; yes           ] movprfx\t%0, %1\;fclamp\t%0.<Vetype>, %2.<Vetype>, %3.<Vetype>
@@ -1137,7 +1137,7 @@
 	     UNSPEC_COND_FMAXNM)
 	   (match_operand:SVE_FULL_F 3 "register_operand")]
 	  UNSPEC_COND_FMINNM))]
-  "TARGET_STREAMING_SME"
+  "TARGET_STREAMING_SME2"
   {@ [cons: =0,  1, 2, 3; attrs: movprfx]
      [       w, %0, w, w; *             ] #
      [     ?&w,  w, w, w; yes           ] #
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/clamp_3.c b/gcc/testsuite/gcc.target/aarch64/sme/clamp_3.c
index 44959f79490..162de6224d5 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/clamp_3.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/clamp_3.c
@@ -2,6 +2,8 @@
 
 #include <arm_sme.h>
 
+#pragma GCC target "+sme2"
+
 #define TEST(TYPE)							\
   TYPE									\
   tied1_##TYPE(TYPE a, TYPE b, TYPE c) __arm_streaming			\
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/clamp_4.c b/gcc/testsuite/gcc.target/aarch64/sme/clamp_4.c
index 643b2635b90..453c82cd860 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/clamp_4.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/clamp_4.c
@@ -2,6 +2,8 @@
 
 #include <arm_sme.h>
 
+#pragma GCC target "+sme2"
+
 #define TEST(TYPE)							\
   TYPE									\
   untied_##TYPE(TYPE a, TYPE b, TYPE c, TYPE d) __arm_streaming		\
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/clamp_5.c b/gcc/testsuite/gcc.target/aarch64/sme/clamp_5.c
new file mode 100644
index 00000000000..7c5464bdc36
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sme/clamp_5.c
@@ -0,0 +1,24 @@
+// { dg-options "-O" }
+
+#include <arm_sme.h>
+
+#pragma GCC target "+nosme2"
+
+#define TEST(TYPE)							\
+  TYPE									\
+  tied1_##TYPE(TYPE a, TYPE b, TYPE c) __arm_streaming			\
+  {									\
+    return svminnm_x(svptrue_b8(), svmaxnm_x(svptrue_b8(), a, b), c);	\
+  }									\
+									\
+  TYPE									\
+  tied2_##TYPE(TYPE a, TYPE b, TYPE c) __arm_streaming			\
+  {									\
+    return svminnm_x(svptrue_b8(), svmaxnm_x(svptrue_b8(), b, a), c);	\
+  }
+
+TEST(svfloat16_t)
+TEST(svfloat32_t)
+TEST(svfloat64_t)
+
+/* { dg-final { scan-assembler-not {\tfclamp\t} } } */

commit 8681e1ed812e2a59c5512fe8cda383682bc648f1
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Fri Nov 8 14:07:47 2024 +0000

    aarch64: Make PSEL dependent on SME rather than SME2
    
    The svpsel_lane intrinsics were wrongly classified as SME2+ only,
    rather than as base SME intrinsics.  They should always be available
    in streaming mode.
    
    gcc/
            * config/aarch64/aarch64-sve2.md (@aarch64_sve_psel<BHSD_BITS>)
            (*aarch64_sve_psel<BHSD_BITS>_plus): Require TARGET_STREAMING
            rather than TARGET_STREAMING_SME2.
    
    gcc/testsuite/
            * gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c: Move to...
            * gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c: ...here.
            * gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c: Move to...
            * gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c: ...here.
            * gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c: Move to...
            * gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c: ...here.
            * gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c: Move to...
            * gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c: ...here.
            * gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c: Move to...
            * gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c: ...here.
            * gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c: Move to...
            * gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c: ...here.
            * gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c: Move to...
            * gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c: ...here.
            * gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c: Move to...
            * gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c: ...here.
    
    (cherry picked from commit afd3887262edbdd5d7be5f34658432fd3046a168)

diff --git a/gcc/config/aarch64/aarch64-sve2.md b/gcc/config/aarch64/aarch64-sve2.md
index bae153b2c8c..b0bdce1b0c4 100644
--- a/gcc/config/aarch64/aarch64-sve2.md
+++ b/gcc/config/aarch64/aarch64-sve2.md
@@ -418,7 +418,7 @@
 	   (match_operand:SI 3 "register_operand" "Ucj")
 	   (const_int BHSD_BITS)]
 	  UNSPEC_PSEL))]
-  "TARGET_STREAMING_SME2"
+  "TARGET_STREAMING"
   "psel\t%0, %1, %2.<bits_etype>[%w3, 0]"
 )
 
@@ -432,7 +432,7 @@
 	     (match_operand:SI 4 "const_int_operand"))
 	   (const_int BHSD_BITS)]
 	  UNSPEC_PSEL))]
-  "TARGET_STREAMING_SME2
+  "TARGET_STREAMING
    && UINTVAL (operands[4]) < 128 / <BHSD_BITS>"
   "psel\t%0, %1, %2.<bits_etype>[%w3, %4]"
 )
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c
index 704e9e375f5..45dda808d2a 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c
@@ -1,6 +1,6 @@
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
 
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
 
 /*
 ** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c
index 7d9c7a129ea..d3d1b7b42ca 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c
@@ -1,6 +1,6 @@
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
 
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
 
 /*
 ** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c
index a59032a57f6..8c1e014db65 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c
@@ -1,6 +1,6 @@
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
 
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
 
 /*
 ** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c
index 0dea85c4f1f..aadfd3515ad 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c
@@ -1,6 +1,6 @@
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
 
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
 
 /*
 ** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c
index 039c72b83c8..68c875eccf5 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c
@@ -1,6 +1,6 @@
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
 
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
 
 /*
 ** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c
index eaf195d93d2..af044fb34ec 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c
@@ -1,6 +1,6 @@
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
 
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
 
 /*
 ** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c
index 70cfeca4fc8..911336900b7 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c
@@ -1,6 +1,6 @@
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
 
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
 
 /*
 ** psel_lane_p0_p2_p7_0:
diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c
similarity index 98%
rename from gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c
rename to gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c
index b017962629f..31f95408a67 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c
@@ -1,6 +1,6 @@
 /* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
 
-#include "test_sme2_acle.h"
+#include "test_sme_acle.h"
 
 /*
 ** psel_lane_p0_p2_p7_0:

commit 998d05a7b650ae71f8a952e8503e8b5dbe6b4909
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Fri Nov 8 14:07:47 2024 +0000

    aarch64: Fix gcc.target/aarch64/sme2/acle-asm/bfmlslb_f32.c
    
    I missed a search-and-replace on this test, meaning that it was
    duplicating bfmlalb_f32.c.
    
    gcc/testsuite/
            * gcc.target/aarch64/sme2/acle-asm/bfmlslb_f32.c: Replace bfmla*
            with bfmls*
    
    (cherry picked from commit 156f536d54b2f6f41de4719f9b3a8a33273a51a9)

diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslb_f32.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslb_f32.c
index f67316cd33c..946af545141 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslb_f32.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/bfmlslb_f32.c
@@ -3,63 +3,63 @@
 #include "test_sme2_acle.h"
 
 /*
-** bfmlalb_f32_tied1:
-**	bfmlalb	z0\.s, z4\.h, z5\.h
+** bfmlslb_f32_tied1:
+**	bfmlslb	z0\.s, z4\.h, z5\.h
 **	ret
 */
-TEST_DUAL_Z (bfmlalb_f32_tied1, svfloat32_t, svbfloat16_t,
-	     z0 = svbfmlalb_f32 (z0, z4, z5),
-	     z0 = svbfmlalb (z0, z4, z5))
+TEST_DUAL_Z (bfmlslb_f32_tied1, svfloat32_t, svbfloat16_t,
+	     z0 = svbfmlslb_f32 (z0, z4, z5),
+	     z0 = svbfmlslb (z0, z4, z5))
 
 /*
-** bfmlalb_f32_tied2:
+** bfmlslb_f32_tied2:
 **	mov	(z[0-9]+)\.d, z0\.d
 **	movprfx	z0, z4
-**	bfmlalb	z0\.s, \1\.h, z1\.h
+**	bfmlslb	z0\.s, \1\.h, z1\.h
 **	ret
 */
-TEST_DUAL_Z_REV (bfmlalb_f32_tied2, svfloat32_t, svbfloat16_t,
-		 z0_res = svbfmlalb_f32 (z4, z0, z1),
-		 z0_res = svbfmlalb (z4, z0, z1))
+TEST_DUAL_Z_REV (bfmlslb_f32_tied2, svfloat32_t, svbfloat16_t,
+		 z0_res = svbfmlslb_f32 (z4, z0, z1),
+		 z0_res = svbfmlslb (z4, z0, z1))
 
 /*
-** bfmlalb_f32_tied3:
+** bfmlslb_f32_tied3:
 **	mov	(z[0-9]+)\.d, z0\.d
 **	movprfx	z0, z4
-**	bfmlalb	z0\.s, z1\.h, \1\.h
+**	bfmlslb	z0\.s, z1\.h, \1\.h
 **	ret
 */
-TEST_DUAL_Z_REV (bfmlalb_f32_tied3, svfloat32_t, svbfloat16_t,
-		 z0_res = svbfmlalb_f32 (z4, z1, z0),
-		 z0_res = svbfmlalb (z4, z1, z0))
+TEST_DUAL_Z_REV (bfmlslb_f32_tied3, svfloat32_t, svbfloat16_t,
+		 z0_res = svbfmlslb_f32 (z4, z1, z0),
+		 z0_res = svbfmlslb (z4, z1, z0))
 
 /*
-** bfmlalb_f32_untied:
+** bfmlslb_f32_untied:
 **	movprfx	z0, z1
-**	bfmlalb	z0\.s, z4\.h, z5\.h
+**	bfmlslb	z0\.s, z4\.h, z5\.h
 **	ret
 */
-TEST_DUAL_Z (bfmlalb_f32_untied, svfloat32_t, svbfloat16_t,
-	     z0 = svbfmlalb_f32 (z1, z4, z5),
-	     z0 = svbfmlalb (z1, z4, z5))
+TEST_DUAL_Z (bfmlslb_f32_untied, svfloat32_t, svbfloat16_t,
+	     z0 = svbfmlslb_f32 (z1, z4, z5),
+	     z0 = svbfmlslb (z1, z4, z5))
 
 /*
-** bfmlalb_h7_f32_tied1:
+** bfmlslb_h7_f32_tied1:
 **	mov	(z[0-9]+\.h), h7
-**	bfmlalb	z0\.s, z4\.h, \1
+**	bfmlslb	z0\.s, z4\.h, \1
 **	ret
 */
-TEST_DUAL_ZD (bfmlalb_h7_f32_tied1, svfloat32_t, svbfloat16_t, bfloat16_t,
-	      z0 = svbfmlalb_n_f32 (z0, z4, d7),
-	      z0 = svbfmlalb (z0, z4, d7))
+TEST_DUAL_ZD (bfmlslb_h7_f32_tied1, svfloat32_t, svbfloat16_t, bfloat16_t,
+	      z0 = svbfmlslb_n_f32 (z0, z4, d7),
+	      z0 = svbfmlslb (z0, z4, d7))
 
 /*
-** bfmlalb_h7_f32_untied:
+** bfmlslb_h7_f32_untied:
 **	mov	(z[0-9]+\.h), h7
 **	movprfx	z0, z1
-**	bfmlalb	z0\.s, z4\.h, \1
+**	bfmlslb	z0\.s, z4\.h, \1
 **	ret
 */
-TEST_DUAL_ZD (bfmlalb_h7_f32_untied, svfloat32_t, svbfloat16_t, bfloat16_t,
-	      z0 = svbfmlalb_n_f32 (z1, z4, d7),
-	      z0 = svbfmlalb (z1, z4, d7))
+TEST_DUAL_ZD (bfmlslb_h7_f32_untied, svfloat32_t, svbfloat16_t, bfloat16_t,
+	      z0 = svbfmlslb_n_f32 (z1, z4, d7),
+	      z0 = svbfmlslb (z1, z4, d7))

commit 05d54bcdc5395a9d3df36c8b640579a0558c89f0
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Fri Nov 8 18:12:32 2024 +0000

    AArch64: backport Neoverse and Cortex CPU definitions
    
    This is a conservative backport of a few core definitions backporting only the
    core definitions and mapping them to their closest cost model that exist on the
    branches.
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64-cores.def (cortex-a725, cortex-x925,
            neoverse-n3, neoverse-v3, neoverse-v3ae): New.
            * config/aarch64/aarch64-tune.md: Regenerate
            * doc/invoke.texi: Document them.

diff --git a/gcc/config/aarch64/aarch64-cores.def b/gcc/config/aarch64/aarch64-cores.def
index 1ab09ea5f72..a919ab7d8a5 100644
--- a/gcc/config/aarch64/aarch64-cores.def
+++ b/gcc/config/aarch64/aarch64-cores.def
@@ -179,6 +179,7 @@ AARCH64_CORE("cortex-a710",  cortexa710, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG,
 AARCH64_CORE("cortex-a715",  cortexa715, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd4d, -1)
 
 AARCH64_CORE("cortex-a720",  cortexa720, cortexa57, V9_2A,  (SVE2_BITPERM, MEMTAG, PROFILE), neoversen2, 0x41, 0xd81, -1)
+AARCH64_CORE("cortex-a725",  cortexa725, cortexa57, V9_2A, (SVE2_BITPERM, MEMTAG, PROFILE), neoversen2, 0x41, 0xd87, -1)
 
 AARCH64_CORE("cortex-x2",  cortexx2, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd48, -1)
 
@@ -186,11 +187,16 @@ AARCH64_CORE("cortex-x3",  cortexx3, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8M
 
 AARCH64_CORE("cortex-x4",  cortexx4, cortexa57, V9_2A,  (SVE2_BITPERM, MEMTAG, PROFILE), neoversen2, 0x41, 0xd81, -1)
 
+AARCH64_CORE("cortex-x925", cortexx925, cortexa57, V9_2A,  (SVE2_BITPERM, MEMTAG, PROFILE), neoversen2, 0x41, 0xd85, -1)
+
 AARCH64_CORE("neoverse-n2", neoversen2, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversen2, 0x41, 0xd49, -1)
 AARCH64_CORE("cobalt-100",   cobalt100, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversen2, 0x6d, 0xd49, -1)
+AARCH64_CORE("neoverse-n3", neoversen3, cortexa57, V9_2A, (SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversen2, 0x41, 0xd8e, -1)
 
 AARCH64_CORE("neoverse-v2", neoversev2, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversev2, 0x41, 0xd4f, -1)
 AARCH64_CORE("grace", grace, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, SVE2_AES, SVE2_SHA3, SVE2_SM4, PROFILE), neoversev2, 0x41, 0xd4f, -1)
+AARCH64_CORE("neoverse-v3", neoversev3, cortexa57, V9_2A, (SVE2_BITPERM, RNG, LS64, MEMTAG, PROFILE), neoversev2, 0x41, 0xd84, -1)
+AARCH64_CORE("neoverse-v3ae", neoversev3ae, cortexa57, V9_2A, (SVE2_BITPERM, RNG, LS64, MEMTAG, PROFILE), neoversev2, 0x41, 0xd83, -1)
 
 AARCH64_CORE("demeter", demeter, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversev2, 0x41, 0xd4f, -1)
 
diff --git a/gcc/config/aarch64/aarch64-tune.md b/gcc/config/aarch64/aarch64-tune.md
index 06e8680607b..35b27ddb883 100644
--- a/gcc/config/aarch64/aarch64-tune.md
+++ b/gcc/config/aarch64/aarch64-tune.md
@@ -1,5 +1,5 @@
 ;; -*- buffer-read-only: t -*-
 ;; Generated automatically by gentune.sh from aarch64-cores.def
 (define_attr "tune"
-	"cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,fujitsu_monaka,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexx2,cortexx3,cortexx4,neoversen2,cobalt100,neoversev2,grace,demeter,generic,generic_armv8_a,generic_armv9_a"
+	"cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,ampere1b,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,fujitsu_monaka,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexa725,cortexx2,cortexx3,cortexx4,cortexx925,neoversen2,cobalt100,neoversen3,neoversev2,grace,neoversev3,neoversev3ae,demeter,generic,generic_armv8_a,generic_armv9_a"
 	(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 06077b7684b..b14ad30cdf2 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -21324,7 +21324,8 @@ performance of the code.  Permissible values for this option are:
 @samp{cortex-a78}, @samp{cortex-a78ae}, @samp{cortex-a78c},
 @samp{ares}, @samp{exynos-m1}, @samp{emag}, @samp{falkor},
 @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1},
-@samp{neoverse-n2}, @samp{neoverse-v1}, @samp{neoverse-v2}, @samp{grace},
+@samp{neoverse-n2}, @samp{neoverse-n3}, @samp{neoverse-v1}, @samp{neoverse-v2},
+@samp{neoverse-v3}, @samp{neoverse-v3ae}, @samp{grace},
 @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan},
 @samp{octeontx}, @samp{octeontx81},  @samp{octeontx83},
 @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96}
@@ -21338,9 +21339,10 @@ performance of the code.  Permissible values for this option are:
 @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53},
 @samp{cortex-a75.cortex-a55}, @samp{cortex-a76.cortex-a55},
 @samp{cortex-r82}, @samp{cortex-x1}, @samp{cortex-x1c}, @samp{cortex-x2},
-@samp{cortex-x3}, @samp{cortex-x4}, @samp{cortex-a510}, @samp{cortex-a520},
-@samp{cortex-a710}, @samp{cortex-a715}, @samp{cortex-a720}, @samp{ampere1},
-@samp{ampere1a}, @samp{ampere1b}, @samp{cobalt-100} and @samp{native}.
+@samp{cortex-x3}, @samp{cortex-x4}, @samp{cortex-x925}, @samp{cortex-a510},
+@samp{cortex-a520}, @samp{cortex-a710}, @samp{cortex-a715}, @samp{cortex-a720},
+@samp{cortex-a725}, @samp{ampere1}, @samp{ampere1a}, @samp{ampere1b},
+@samp{cobalt-100} and @samp{native}.
 
 The values @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53},
 @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53},

commit 4b30972e5171093c472ef344297994dd00bf5e97
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Fri Nov 8 16:34:41 2024 -0500

    hppa: Fix handling of secondary reloads involving a SUBREG
    
    This is fairly subtle.
    
    When handling spills for SUBREG arguments in pa_emit_move_sequence,
    alter_subreg may be called.  It in turn calls adjust_address_1 and
    change_address_1.  change_address_1 calls pa_legitimate_address_p
    to validate the new spill address.  change_address_1 generates an
    internal compiler error if the address is not valid.  We need to
    allow 14-bit displacements for all modes when reload_in_progress
    is true and strict is false to prevent the internal compiler error.
    
    SUBREGs are only used with the general registers, so the spill
    should result in an integer access.  14-bit displacements are okay
    for integer loads and stores but not for floating-point loads and
    stores.
    
    Potentially, the change could break the handling of spills for the
    floating point-registers but I believe these are handled separately
    in pa_emit_move_sequence.
    
    This change fixes the build of symmetrica-3.0.1+ds.
    
    2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
    
    gcc/ChangeLog:
    
            PR target/117443
            * config/pa/pa.cc (pa_legitimate_address_p): Allow any
            14-bit displacement when reload is in progress and strict
            is false.

diff --git a/gcc/config/pa/pa.cc b/gcc/config/pa/pa.cc
index b24434628fa..d72946f6c19 100644
--- a/gcc/config/pa/pa.cc
+++ b/gcc/config/pa/pa.cc
@@ -10983,6 +10983,7 @@ pa_legitimate_address_p (machine_mode mode, rtx x, bool strict, code_helper)
 	  /* Long 14-bit displacements always okay for these cases.  */
 	  if (INT14_OK_STRICT
 	      || reload_completed
+	      || (reload_in_progress && !strict)
 	      || mode == QImode
 	      || mode == HImode)
 	    return true;

commit 3bc7af0e2b06131465b8de560692c7011b45cf22
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Fri Nov 8 16:54:48 2024 -0500

    hppa: Don't use '%' operator in base14_operand
    
    Division is slow on hppa and mode sizes are powers of 2.  So, we
    can use '&' operator to check displacement alignment.
    
    2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
    
    gcc/ChangeLog:
    
            * config/pa/predicates.md (base14_operand): Use '&' operator
            instead of '%' to check displacement alignment.

diff --git a/gcc/config/pa/predicates.md b/gcc/config/pa/predicates.md
index 50dffa1138c..74f75770676 100644
--- a/gcc/config/pa/predicates.md
+++ b/gcc/config/pa/predicates.md
@@ -285,7 +285,7 @@
       return false;
 
     default:
-      return (INTVAL (op) % GET_MODE_SIZE (mode)) == 0;
+      return (INTVAL (op) & (GET_MODE_SIZE (mode) - 1)) == 0;
     }
 
   return false;

commit e277e1082a86efa7e8649e2664c109eacf8dccb9
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Fri Nov 1 17:47:48 2024 +0100

    arm: Fix ICE on arm_mve.h pragma without MVE types [PR117408]
    
    Starting with r14-435-g00d97bf3b5a, doing `#pragma arm "arm_mve.h"
    false` or `#pragma arm "arm_mve.h" true` without first doing
    `#pragma arm "arm_mve_types.h"` causes GCC to ICE.
    
    gcc/ChangeLog:
    
            PR target/117408
            * config/arm/arm-mve-builtins.cc(handle_arm_mve_h): Detect if MVE
            types is missing and if so, return error.
    
    gcc/testsuite/ChangeLog:
    
            PR target/117408
            * gcc.target/arm/mve/pr117408-1.c: New test.
            * gcc.target/arm/mve/pr117408-2.c: Likewise.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 8b04f60f88079c41b5cb1bf3b7c798703cceea18)

diff --git a/gcc/config/arm/arm-mve-builtins.cc b/gcc/config/arm/arm-mve-builtins.cc
index 7e8217666fe..e1826ae4052 100644
--- a/gcc/config/arm/arm-mve-builtins.cc
+++ b/gcc/config/arm/arm-mve-builtins.cc
@@ -492,6 +492,13 @@ handle_arm_mve_h (bool preserve_user_namespace)
       return;
     }
 
+  if (!handle_arm_mve_types_p)
+    {
+      error ("this definition requires MVE types, please include %qs",
+	     "arm_mve_types.h");
+      return;
+    }
+
   /* Define MVE functions.  */
   function_table = new hash_table<registered_function_hasher> (1023);
   function_builder builder;
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr117408-1.c b/gcc/testsuite/gcc.target/arm/mve/pr117408-1.c
new file mode 100644
index 00000000000..25eaf67e297
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/mve/pr117408-1.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_v8_1m_mve_ok } */
+/* { dg-add-options arm_v8_1m_mve } */
+
+/* It doesn't really matter if this produces errors missing types,
+      but it mustn't trigger an ICE.  */
+#pragma GCC arm "arm_mve.h" false /* { dg-error "this definition requires MVE types, please include 'arm_mve_types.h'" } */
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr117408-2.c b/gcc/testsuite/gcc.target/arm/mve/pr117408-2.c
new file mode 100644
index 00000000000..c3a0af25f77
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/mve/pr117408-2.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_v8_1m_mve_ok } */
+/* { dg-add-options arm_v8_1m_mve } */
+
+/* It doesn't really matter if this produces errors missing types,
+      but it mustn't trigger an ICE.  */
+#pragma GCC arm "arm_mve.h" true /* { dg-error "this definition requires MVE types, please include 'arm_mve_types.h'" } */

commit bb21d80e3d6e5e91e2d3c6636e3f667a0a44d3e1
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Nov 9 16:07:50 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0a4b44f6414..bab76bdd4cf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,101 @@
+2024-11-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	PR target/117408
+	* config/arm/arm-mve-builtins.cc(handle_arm_mve_h): Detect if MVE
+	types is missing and if so, return error.
+
+2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
+
+	* config/pa/predicates.md (base14_operand): Use '&' operator
+	instead of '%' to check displacement alignment.
+
+2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
+
+	PR target/117443
+	* config/pa/pa.cc (pa_legitimate_address_p): Allow any
+	14-bit displacement when reload is in progress and strict
+	is false.
+
+2024-11-08  Tamar Christina  <tamar.christina@arm.com>
+
+	* config/aarch64/aarch64-cores.def (cortex-a725, cortex-x925,
+	neoverse-n3, neoverse-v3, neoverse-v3ae): New.
+	* config/aarch64/aarch64-tune.md: Regenerate
+	* doc/invoke.texi: Document them.
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* config/aarch64/aarch64-sve2.md (@aarch64_sve_psel<BHSD_BITS>)
+	(*aarch64_sve_psel<BHSD_BITS>_plus): Require TARGET_STREAMING
+	rather than TARGET_STREAMING_SME2.
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* config/aarch64/aarch64-sve2.md (@aarch64_sve_fclamp<mode>)
+	(*aarch64_sve_fclamp<mode>_x): Require TARGET_STREAMING_SME2
+	rather than TARGET_STREAMING_SME.
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-10-14  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/116999
+	PR target/117045
+	* config/aarch64/aarch64-sve-builtins-base.cc
+	(svwhilelx_impl::fold): Check for WHILELTs of the minimum value
+	and WHILELEs of the maximum value.  Fold them to all-false and
+	all-true respectively.
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-10-09  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/116629
+	* config/aarch64/aarch64-sve-builtins.cc
+	(function_builder::function_builder): Use direct overloads for LTO.
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-08-15  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/116371
+	* config/aarch64/aarch64-sve-builtins-sve2.h (svpext): Rename to...
+	(svpext_lane): ...this.
+	* config/aarch64/aarch64-sve-builtins-sve2.cc (svpext_impl): Rename
+	to...
+	(svpext_lane_impl): ...this and update instantiation accordingly.
+	* config/aarch64/aarch64-sve-builtins-sve2.def (svpext): Rename to...
+	(svpext_lane): ...this.
+
+2024-11-07  Yuta Mukai  <mukai.yuta@fujitsu.com>
+
+	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add fujitsu-monaka.
+	* config/aarch64/aarch64-tune.md: Regenerate.
+	* config/aarch64/aarch64.cc: Include fujitsu-monaka tuning model.
+	* doc/invoke.texi: Document -mcpu=fujitsu-monaka.
+	* config/aarch64/tuning_models/fujitsu_monaka.h: New file.
+
+2024-11-07  Hu, Lin1  <lin1.hu@intel.com>
+
+	Backported from master:
+	2024-11-06  Hu, Lin1  <lin1.hu@intel.com>
+
+	PR target/117304
+	* config/i386/i386-builtin.def: Add OPTION_MASK_ISA2_EVEX512 for some
+	AVX512 512-bits instructions.
+
 2024-11-06  Tamar Christina  <tamar.christina@arm.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 6d8a676e763..7731736334d 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241107
+20241109
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index be0ea3fc17d..7a30f55c0de 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,153 @@
+2024-11-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	PR target/117408
+	* gcc.target/arm/mve/pr117408-1.c: New test.
+	* gcc.target/arm/mve/pr117408-2.c: Likewise.
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* gcc.target/aarch64/sme2/acle-asm/bfmlslb_f32.c: Replace bfmla*
+	with bfmls*
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* gcc.target/aarch64/sme2/acle-asm/psel_lane_b16.c: Move to...
+	* gcc.target/aarch64/sme/acle-asm/psel_lane_b16.c: ...here.
+	* gcc.target/aarch64/sme2/acle-asm/psel_lane_b32.c: Move to...
+	* gcc.target/aarch64/sme/acle-asm/psel_lane_b32.c: ...here.
+	* gcc.target/aarch64/sme2/acle-asm/psel_lane_b64.c: Move to...
+	* gcc.target/aarch64/sme/acle-asm/psel_lane_b64.c: ...here.
+	* gcc.target/aarch64/sme2/acle-asm/psel_lane_b8.c: Move to...
+	* gcc.target/aarch64/sme/acle-asm/psel_lane_b8.c: ...here.
+	* gcc.target/aarch64/sme2/acle-asm/psel_lane_c16.c: Move to...
+	* gcc.target/aarch64/sme/acle-asm/psel_lane_c16.c: ...here.
+	* gcc.target/aarch64/sme2/acle-asm/psel_lane_c32.c: Move to...
+	* gcc.target/aarch64/sme/acle-asm/psel_lane_c32.c: ...here.
+	* gcc.target/aarch64/sme2/acle-asm/psel_lane_c64.c: Move to...
+	* gcc.target/aarch64/sme/acle-asm/psel_lane_c64.c: ...here.
+	* gcc.target/aarch64/sme2/acle-asm/psel_lane_c8.c: Move to...
+	* gcc.target/aarch64/sme/acle-asm/psel_lane_c8.c: ...here.
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* gcc.target/aarch64/sme/clamp_3.c: Force sme2
+	* gcc.target/aarch64/sme/clamp_4.c: Likewise.
+	* gcc.target/aarch64/sme/clamp_5.c: New test.
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-10-14  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/116999
+	PR target/117045
+	* gcc.target/aarch64/sve/acle/general/whilele_5.c: Fix bogus
+	expected result.
+	* gcc.target/aarch64/sve/acle/general/whilele_11.c: New test.
+	* gcc.target/aarch64/sve/acle/general/whilele_12.c: Likewise.
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-10-09  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/116629
+	* gcc.target/aarch64/sve/acle/general/pr106326_2.c: New test.
+
+2024-11-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2024-08-15  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/116371
+	* gcc.target/aarch64/sme2/acle-asm/pext_c16.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_c32.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_c64.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_c8.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c: Replace with...
+	* gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c,
+	gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c: ...these new tests,
+	testing for svpext_lane instead of svpext.
+
+2024-11-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/epilog-1.c: Use check-function-bodies.
+
+2024-11-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+		    Richard Earnshaw  <rearnsha@arm.com>
+
+	* gcc.target/arm/pr68620.c: Use effective-target
+	arm_libc_fp_abi.
+	* lib/target-supports.exp: Define effective-target
+	arm_libc_fp_abi.
+
+2024-11-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/pr40457-2.c: Add vst1.32 as an allowed
+	instruction.
+
+2024-11-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* g++.dg/vect/pr84556.cc: Change from "dg-do run" with selector
+	to instead use dg-require-effective-target with the same
+	selector.
+
+2024-11-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-11-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* g++.target/arm/mve/general-c++/nomve_fp_1.c: Use
+	effective-target arm_fp.
+
+2024-11-07  Hu, Lin1  <lin1.hu@intel.com>
+
+	Backported from master:
+	2024-11-07  Hu, Lin1  <lin1.hu@intel.com>
+
+	* gcc.target/i386/pr117304-1.c: Modify regexp.
+
+2024-11-07  Hu, Lin1  <lin1.hu@intel.com>
+
+	Backported from master:
+	2024-11-06  Hu, Lin1  <lin1.hu@intel.com>
+
+	PR target/117304
+	* gcc.target/i386/pr117304-1.c: New test.
+
 2024-11-06  Tamar Christina  <tamar.christina@arm.com>
 
 	Backported from master:

commit c273df1c35dd9cc8a64a1e915fdd174d1992c6c9
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Nov 10 00:22:20 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7731736334d..ac00abcae8e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241109
+20241110

commit 75dbfb7e0a804b97449a1312e34c580695c63dec
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Nov 11 00:21:46 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index ac00abcae8e..31b8ebf7ebe 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241110
+20241111

commit 4380d6f8acc878fbdeb6ce86f4be64d340bdfd4b
Author: Haochen Jiang <haochen.jiang@intel.com>
Date:   Mon Nov 11 10:52:33 2024 +0800

    i386: Add new model number for Arrow Lake
    
    gcc/ChangeLog:
    
            * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model
            number for Arrow Lake.

diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
index 56427474b7b..e2f1e2f5f46 100644
--- a/gcc/common/config/i386/cpuinfo.h
+++ b/gcc/common/config/i386/cpuinfo.h
@@ -606,6 +606,7 @@ get_intel_cpu (struct __processor_model *cpu_model,
       CHECK___builtin_cpu_is ("grandridge");
       cpu_model->__cpu_type = INTEL_GRANDRIDGE;
       break;
+    case 0xb5:
     case 0xc5:
       /* Arrow Lake.  */
       cpu = "arrowlake";

commit 2f744df601b298e31dcdb49316da93f0ce1f00b7
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Nov 8 13:58:23 2024 +0000

    libstdc++: Do not define _Insert_base::try_emplace before C++17
    
    This is not a reserved name in C++11 and C++14, so must not be defined.
    
    Also use the appropriate feature test macros for the try_emplace members
    of the Debug Mode maps.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/hashtable_policy.h (_Insert_base::try_emplace):
            Do not define for C++11 and C++14.
            * include/debug/map.h (try_emplace): Use feature test macro.
            * include/debug/unordered_map (try_emplace): Likewise.
            * testsuite/17_intro/names.cc: Define try_emplace before C++17.
    
    (cherry picked from commit b66a57c0ad300b293ebd366bc29f44f2ddb65c69)

diff --git a/libstdc++-v3/include/bits/hashtable_policy.h b/libstdc++-v3/include/bits/hashtable_policy.h
index 26def24f24e..68ec8d9470a 100644
--- a/libstdc++-v3/include/bits/hashtable_policy.h
+++ b/libstdc++-v3/include/bits/hashtable_policy.h
@@ -966,6 +966,7 @@ namespace __detail
 	return __h._M_insert(__hint, __v, __node_gen, __unique_keys{});
       }
 
+#ifdef __glibcxx_unordered_map_try_emplace // C++ >= 17 && HOSTED
       template<typename _KType, typename... _Args>
 	std::pair<iterator, bool>
 	try_emplace(const_iterator, _KType&& __k, _Args&&... __args)
@@ -987,6 +988,7 @@ namespace __detail
 	  __node._M_node = nullptr;
 	  return { __it, true };
 	}
+#endif
 
       void
       insert(initializer_list<value_type> __l)
diff --git a/libstdc++-v3/include/debug/map.h b/libstdc++-v3/include/debug/map.h
index d0e398f0fd9..5323a2b0d95 100644
--- a/libstdc++-v3/include/debug/map.h
+++ b/libstdc++-v3/include/debug/map.h
@@ -344,7 +344,7 @@ namespace __debug
 	}
 
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_map_try_emplace // C++ >= 17 && HOSTED
       template <typename... _Args>
         pair<iterator, bool>
         try_emplace(const key_type& __k, _Args&&... __args)
diff --git a/libstdc++-v3/include/debug/unordered_map b/libstdc++-v3/include/debug/unordered_map
index 8a969d81740..1700da16c0f 100644
--- a/libstdc++-v3/include/debug/unordered_map
+++ b/libstdc++-v3/include/debug/unordered_map
@@ -440,7 +440,7 @@ namespace __debug
 	  _M_check_rehashed(__bucket_count);
 	}
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_unordered_map_try_emplace // C++ >= 17 && HOSTED
       template <typename... _Args>
 	pair<iterator, bool>
 	try_emplace(const key_type& __k, _Args&&... __args)
diff --git a/libstdc++-v3/testsuite/17_intro/names.cc b/libstdc++-v3/testsuite/17_intro/names.cc
index 9b0ffcb50b2..ab12641b14d 100644
--- a/libstdc++-v3/testsuite/17_intro/names.cc
+++ b/libstdc++-v3/testsuite/17_intro/names.cc
@@ -136,6 +136,8 @@
 // <charconv> defines to_chars_result::ptr and to_chars_result::ec
 #define ec (
 #define ptr (
+// <map> and <unordered_map> define try_emplace
+#define try_emplace (
 #endif
 
 // These clash with newlib so don't use them.

commit 4358c5c519db29c3afe9a7703ef6eb69cb2103ab
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Nov 12 00:23:41 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bab76bdd4cf..5d50340c805 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2024-11-11  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* common/config/i386/cpuinfo.h (get_intel_cpu): Add new model
+	number for Arrow Lake.
+
 2024-11-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 31b8ebf7ebe..353869c3cba 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241111
+20241112
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index d89c61cb30f..94837d69d55 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,14 @@
+2024-11-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-08  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/hashtable_policy.h (_Insert_base::try_emplace):
+	Do not define for C++11 and C++14.
+	* include/debug/map.h (try_emplace): Use feature test macro.
+	* include/debug/unordered_map (try_emplace): Likewise.
+	* testsuite/17_intro/names.cc: Define try_emplace before C++17.
+
 2024-11-04  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:

commit 17ff72651dbba6790ce4c492aa2df78f1dbdaf3e
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Nov 11 11:54:00 2024 +0000

    libstdc++: Fix typos in iterator increment for std::text_encoding [PR117520]
    
    The intended behaviour for std::text_encoding::aliases_view's iterator
    is that it incrementing or decrementing too far sets it to a
    value-initialized state, or fails an assertion when those are enabled.
    There were typos that used == instead of = which meant that instead of
    becoming singular or aborting, an out-of-range increment just did
    nothing. This meant erroneous operations were well-defined and didn't
    produce any undefined behaviour, but were not diagnosed with assertions
    enabled, as had been intended.
    
    This change fixes the bugs and adds more tests to verify the intended
    behaviour.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/117520
            * include/std/text_encoding (aliases_view:_Iterator::operator+=):
            Fix typos that caused == to be used instead of =.
            (aliases_view::_Iterator): Fix friend declaration.
            * testsuite/std/text_encoding/members.cc: Adjust expected
            behaviour of invalid subscript. Add tests for other erroneous
            operations on iterators.

diff --git a/libstdc++-v3/include/std/text_encoding b/libstdc++-v3/include/std/text_encoding
index 83d023bc71b..515f6e52345 100644
--- a/libstdc++-v3/include/std/text_encoding
+++ b/libstdc++-v3/include/std/text_encoding
@@ -573,7 +573,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 			  && _M_rep[__n - 1]._M_id == _M_id) [[likely]]
 		 _M_rep += __n;
 	      else
-		*this == _Iterator{};
+		*this = _Iterator{};
 	    }
 	  else if (__n < 0)
 	    {
@@ -581,7 +581,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 		    && _M_rep[__n]._M_id == _M_id) [[likely]]
 		 _M_rep += __n;
 	      else
-		*this == _Iterator{};
+		*this = _Iterator{};
 	    }
 	}
       if (__n != 0)
@@ -643,7 +643,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     }
 
   private:
-    friend class text_encoding;
+    friend struct text_encoding;
 
     constexpr explicit
     _Iterator(const _Rep* __r) noexcept
diff --git a/libstdc++-v3/testsuite/std/text_encoding/members.cc b/libstdc++-v3/testsuite/std/text_encoding/members.cc
index adbd74ab85e..253653250c8 100644
--- a/libstdc++-v3/testsuite/std/text_encoding/members.cc
+++ b/libstdc++-v3/testsuite/std/text_encoding/members.cc
@@ -70,10 +70,25 @@ test_every_id()
     auto end = aliases.end();
     VERIFY( (begin + std::ranges::distance(aliases)) == end );
 #ifndef _GLIBCXX_ASSERTIONS
-    // This is an error, but with assertions disabled is guaranteed safe:
+    // These ops violate preconditions, but as libstdc++ extensions they are
+    // guaranteed to either assert or have well-defined behaviour.
+
+    // This erroneously returns ""sv:
     VERIFY( begin[std::ranges::distance(aliases)] == ""sv );
     // Likewise:
-    VERIFY( begin[999999] == *begin );
+    VERIFY( begin[999999] == ""sv );
+
+    auto iter = begin;
+    std::ranges::advance(iter, end);
+    // Erroneously sets iter to a value-initialized state.
+    ++iter;
+    VERIFY( iter == decltype(iter){} );
+    VERIFY( *iter == ""sv );
+
+    iter = begin;
+    // Erroneously sets iter to a value-initialized state.
+    --iter;
+    VERIFY( iter == decltype(iter){} );
 #endif
   }
 }

commit 6d5f550231b57b0fa9d8ec53cc6354961ead358b
Author: Andrew Carlotti <andrew.carlotti@arm.com>
Date:   Fri Nov 1 17:27:38 2024 +0000

    testsuite: Adjust jump threading test expectation
    
    This test started failing on aarch64 after 0cfc9c95 in 2023 ("Phi
    analyzer - Initialize with range instead of a tree.").
    
    The only change visible in the pass dumps prior to thread2 is the upper
    bounds of some ranges are reduced from +INF to 7, consistent with the
    bitamsk information.  After thread2, there are changes in the control
    flow, but only affecting edges that are obviously never taken (from
    basic blocks 6 through 12).  These are cleaned up in the following pass,
    but the final codegen remains different.
    
    There isn't anything obviously wrong with the change in dump output, so
    let's just update the test expectations (as has happened previously
    here).
    
    gcc/testsuite/ChangeLog:
    
            PR tree-optimization/112376
            * gcc.dg/tree-ssa/ssa-dom-thread-7.c: Update expectation.

diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c
index 47b8fdfa29a..d84aceebc5d 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c
@@ -12,7 +12,7 @@
    jump threading opportunities.  Skip the later tests on aarch64.  */
 /* { dg-final { scan-tree-dump-not "Jumps threaded"  "dom3" { target { ! aarch64*-*-* } } } } */
 /* { dg-final { scan-tree-dump "Jumps threaded: 9"  "thread2" { target { ! aarch64*-*-* } } } } */
-/* { dg-final { scan-tree-dump "Jumps threaded: 18"  "thread2" { target { aarch64*-*-* } } } } */
+/* { dg-final { scan-tree-dump "Jumps threaded: 17"  "thread2" { target { aarch64*-*-* } } } } */
 
 enum STATE {
   S0=0,

commit 061d18d7bd4862ff3110d497d42655efbc62ca95
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Nov 11 11:23:08 2024 +0000

    libstdc++: Add parentheses around operand of |
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/unicode.h (_Utf_iterator::_M_read_utf16): Add
            parentheses.

diff --git a/libstdc++-v3/include/bits/unicode.h b/libstdc++-v3/include/bits/unicode.h
index a14a17c5dfc..4b408948d72 100644
--- a/libstdc++-v3/include/bits/unicode.h
+++ b/libstdc++-v3/include/bits/unicode.h
@@ -377,7 +377,7 @@ namespace __unicode
 	      {
 		++_M_curr();
 		__to_incr = 2;
-		uint32_t __x = (__u & 0x3F) << 10 | __u2 & 0x3FF;
+		uint32_t __x = (__u & 0x3F) << 10 | (__u2 & 0x3FF);
 		uint32_t __w = (__u >> 6) & 0x1F;
 		__c = (__w + 1) << 16 | __x;
 	      }

commit 89f21c18af96a3b994595081939e19d8b042c963
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Mon Oct 28 09:30:07 2024 +0100

    ada: Fix bogus error for delta aggregate as expression function
    
    The compiler correctly accepts the other forms of aggregates.
    
    gcc/ada/ChangeLog:
    
            PR ada/113868
            * par-ch6.adb (P_Subprogram) <Scan_Body_Or_Expression_Function>:
            Add delta aggregate alongside the other forms of aggregates.

diff --git a/gcc/ada/par-ch6.adb b/gcc/ada/par-ch6.adb
index 2ce23e1eb05..79658551098 100644
--- a/gcc/ada/par-ch6.adb
+++ b/gcc/ada/par-ch6.adb
@@ -884,6 +884,7 @@ package body Ch6 is
 
                      if not (Paren_Count (Expr) /= 0
                               or else Nkind (Expr) in N_Aggregate
+                                                    | N_Delta_Aggregate
                                                     | N_Extension_Aggregate
                                                     | N_Quantified_Expression)
                      then

commit 4d1e1f947d5dade8474cb39516b60422bcc3c245
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Wed Oct 30 11:22:12 2024 +0100

    ada: Fix spurious error on iterated component association with large index type
    
    This is only for the Ada 2022 form of the iterated component association.
    
    gcc/ada/ChangeLog:
    
            PR ada/117328
            * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use a type sized
            from the index type to compute the length.  Simplify and remove
            useless calls to New_Copy_Tree for this computation.

diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
index a20ca7bb938..26b279701e9 100644
--- a/gcc/ada/exp_aggr.adb
+++ b/gcc/ada/exp_aggr.adb
@@ -5705,6 +5705,9 @@ package body Exp_Aggr is
          Index_Id   : constant Entity_Id := Make_Temporary (Loc, 'I', N);
          Index_Type : constant Entity_Id := Etype (First_Index (Etype (N)));
          Size_Id    : constant Entity_Id := Make_Temporary (Loc, 'I', N);
+         Size_Type  : constant Entity_Id :=
+                        Integer_Type_For
+                          (Esize (Index_Type), Is_Unsigned_Type (Index_Type));
          TmpE       : constant Entity_Id := Make_Temporary (Loc, 'A', N);
 
          Assoc    : Node_Id := First (Component_Associations (N));
@@ -5720,7 +5723,7 @@ package body Exp_Aggr is
          Size_Expr_Code := New_List (
            Make_Object_Declaration (Loc,
              Defining_Identifier => Size_Id,
-             Object_Definition   => New_Occurrence_Of (Standard_Integer, Loc),
+             Object_Definition   => New_Occurrence_Of (Size_Type, Loc),
              Expression          => Make_Integer_Literal (Loc, 0)));
 
          --  First pass: execute the iterators to count the number of elements
@@ -5747,32 +5750,35 @@ package body Exp_Aggr is
 
          Insert_Actions (N, Size_Expr_Code);
 
-         --  Build a constrained subtype with the calculated length
-         --  and declare the proper bounded aggregate object.
+         --  Build a constrained subtype with the bounds deduced from
+         --  the size computed above and declare the aggregate object.
          --  The index type is some discrete type, so the bounds of the
-         --  constructed array are computed as T'Val (T'Pos (ineger bound));
+         --  constrained subtype are computed as T'Val (integer bounds).
 
          declare
+            --  Pos_Lo := Index_Type'Pos (Index_Type'First)
+
             Pos_Lo : constant Node_Id :=
               Make_Attribute_Reference (Loc,
-                Prefix => New_Occurrence_Of (Index_Type, Loc),
+                Prefix         => New_Occurrence_Of (Index_Type, Loc),
                 Attribute_Name => Name_Pos,
-                Expressions => New_List (
+                Expressions    => New_List (
                   Make_Attribute_Reference (Loc,
                     Prefix => New_Occurrence_Of (Index_Type, Loc),
                     Attribute_Name => Name_First)));
 
+            --  Corresponding index value, i.e. Index_Type'First
+
             Aggr_Lo : constant Node_Id :=
                Make_Attribute_Reference (Loc,
-                 Prefix => New_Occurrence_Of (Index_Type, Loc),
-                 Attribute_Name => Name_Val,
-                 Expressions => New_List (New_Copy_Tree (Pos_Lo)));
+                 Prefix         => New_Occurrence_Of (Index_Type, Loc),
+                 Attribute_Name => Name_First);
 
-            --  Hi = Index_type'Pos (Lo + Size -1).
+            --  Pos_Hi := Pos_Lo + Size - 1
 
             Pos_Hi : constant Node_Id :=
                Make_Op_Add (Loc,
-                 Left_Opnd => New_Copy_Tree (Pos_Lo),
+                 Left_Opnd  => Pos_Lo,
                  Right_Opnd =>
                    Make_Op_Subtract (Loc,
                      Left_Opnd  => New_Occurrence_Of (Size_Id, Loc),
@@ -5784,7 +5790,7 @@ package body Exp_Aggr is
                Make_Attribute_Reference (Loc,
                  Prefix => New_Occurrence_Of (Index_Type, Loc),
                  Attribute_Name => Name_Val,
-                 Expressions => New_List (New_Copy_Tree (Pos_Hi)));
+                 Expressions    => New_List (Pos_Hi));
 
             SubE : constant Entity_Id := Make_Temporary (Loc, 'T');
             SubD : constant Node_Id :=
@@ -5807,6 +5813,7 @@ package body Exp_Aggr is
                  Make_Object_Declaration (Loc,
                    Defining_Identifier => TmpE,
                    Object_Definition   => New_Occurrence_Of (SubE, Loc));
+
          begin
             Insert_Actions (N, New_List (SubD, TmpD));
          end;

commit 2a41d31fa8c2d025854e9459c135c45633936fc3
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Tue Nov 12 14:26:08 2024 -0500

    hppa: Fix decrement_and_branch_until_zero constraint
    
    The third alternative for argument 4 needs to be an early clobber
    constraint.  Noticed testing LRA.
    
    2024-11-12  John David Anglin  <danglin@gcc.gnu.org>
    
    gcc/ChangeLog:
    
            * config/pa/pa.md (decrement_and_branch_until_zero): Fix
            constraint.

diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index f5e7d67c69f..a72edc76f06 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -9561,7 +9561,7 @@ add,l %2,%3,%3\;bv,n %%r0(%3)"
 	  (pc)))
    (set (match_dup 0)
 	(plus:SI (match_dup 0) (match_dup 1)))
-   (clobber (match_scratch:SI 4 "=X,r,r"))]
+   (clobber (match_scratch:SI 4 "=X,r,&r"))]
   ""
   "* return pa_output_dbra (operands, insn, which_alternative); "
 ;; Do not expect to understand this the first time through.

commit 164768b7425b8a2efde0e34b9251a00652bdf6b5
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Nov 13 00:23:07 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5d50340c805..6095810a432 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2024-11-12  John David Anglin  <danglin@gcc.gnu.org>
+
+	* config/pa/pa.md (decrement_and_branch_until_zero): Fix
+	constraint.
+
 2024-11-11  Haochen Jiang  <haochen.jiang@intel.com>
 
 	* common/config/i386/cpuinfo.h (get_intel_cpu): Add new model
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 353869c3cba..8a225a1f705 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241112
+20241113
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 100c9065d84..fb0c40b0114 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,16 @@
+2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/117328
+	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use a type sized
+	from the index type to compute the length.  Simplify and remove
+	useless calls to New_Copy_Tree for this computation.
+
+2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/113868
+	* par-ch6.adb (P_Subprogram) <Scan_Body_Or_Expression_Function>:
+	Add delta aggregate alongside the other forms of aggregates.
+
 2024-11-04  Eric Botcazou  <ebotcazou@adacore.com>
 
 	PR ada/113036
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7a30f55c0de..1ff7f88465f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2024-11-12  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	PR tree-optimization/112376
+	* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Update expectation.
+
 2024-11-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 94837d69d55..08c79d41730 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,18 @@
+2024-11-12  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/unicode.h (_Utf_iterator::_M_read_utf16): Add
+	parentheses.
+
+2024-11-12  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/117520
+	* include/std/text_encoding (aliases_view:_Iterator::operator+=):
+	Fix typos that caused == to be used instead of =.
+	(aliases_view::_Iterator): Fix friend declaration.
+	* testsuite/std/text_encoding/members.cc: Adjust expected
+	behaviour of invalid subscript. Add tests for other erroneous
+	operations on iterators.
+
 2024-11-11  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit 39b0fb9bbcf49fc7a7c97c9efbc4453e1593b536
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Wed Nov 13 09:40:42 2024 -0500

    hppa: Remove inner `fix:SF/DF` from fixed-point patterns
    
    2024-11-13  John David Anglin  <danglin@gcc.gnu.org>
    
    gcc/ChangeLog:
    
            PR target/117525
            * config/pa/pa.md (fix_truncsfsi2): Remove inner `fix:SF`.
            (fix_truncdfsi2, fix_truncsfdi2, fix_truncdfdi2,
            fixuns_truncsfsi2, fixuns_truncdfsi2, fixuns_truncsfdi2,
            fixuns_truncdfdi2): Likewise.

diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index a72edc76f06..aa2d9956bd2 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -5018,7 +5018,7 @@
 
 (define_insn "fix_truncsfsi2"
   [(set (match_operand:SI 0 "register_operand" "=f")
-	(fix:SI (fix:SF (match_operand:SF 1 "register_operand" "f"))))]
+	(fix:SI (match_operand:SF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT"
   "{fcnvfxt,sgl,sgl|fcnv,t,sgl,w} %1,%0"
   [(set_attr "type" "fpalu")
@@ -5026,7 +5026,7 @@
 
 (define_insn "fix_truncdfsi2"
   [(set (match_operand:SI 0 "register_operand" "=f")
-	(fix:SI (fix:DF (match_operand:DF 1 "register_operand" "f"))))]
+	(fix:SI (match_operand:DF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT"
   "{fcnvfxt,dbl,sgl|fcnv,t,dbl,w} %1,%0"
   [(set_attr "type" "fpalu")
@@ -5034,7 +5034,7 @@
 
 (define_insn "fix_truncsfdi2"
   [(set (match_operand:DI 0 "register_operand" "=f")
-	(fix:DI (fix:SF (match_operand:SF 1 "register_operand" "f"))))]
+	(fix:DI (match_operand:SF 1 "register_operand" "f")))]
   "TARGET_PA_11 && ! TARGET_SOFT_FLOAT"
   "{fcnvfxt,sgl,dbl|fcnv,t,sgl,dw} %1,%0"
   [(set_attr "type" "fpalu")
@@ -5042,7 +5042,7 @@
 
 (define_insn "fix_truncdfdi2"
   [(set (match_operand:DI 0 "register_operand" "=f")
-	(fix:DI (fix:DF (match_operand:DF 1 "register_operand" "f"))))]
+	(fix:DI (match_operand:DF 1 "register_operand" "f")))]
   "TARGET_PA_11 && ! TARGET_SOFT_FLOAT"
   "{fcnvfxt,dbl,dbl|fcnv,t,dbl,dw} %1,%0"
   [(set_attr "type" "fpalu")
@@ -5082,7 +5082,7 @@
 
 (define_insn "fixuns_truncsfsi2"
   [(set (match_operand:SI 0 "register_operand" "=f")
-	(unsigned_fix:SI (fix:SF (match_operand:SF 1 "register_operand" "f"))))]
+	(unsigned_fix:SI (match_operand:SF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT && TARGET_PA_20"
   "fcnv,t,sgl,uw %1,%0"
   [(set_attr "type" "fpalu")
@@ -5090,7 +5090,7 @@
 
 (define_insn "fixuns_truncdfsi2"
   [(set (match_operand:SI 0 "register_operand" "=f")
-	(unsigned_fix:SI (fix:DF (match_operand:DF 1 "register_operand" "f"))))]
+	(unsigned_fix:SI (match_operand:DF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT && TARGET_PA_20"
   "fcnv,t,dbl,uw %1,%0"
   [(set_attr "type" "fpalu")
@@ -5098,7 +5098,7 @@
 
 (define_insn "fixuns_truncsfdi2"
   [(set (match_operand:DI 0 "register_operand" "=f")
-	(unsigned_fix:DI (fix:SF (match_operand:SF 1 "register_operand" "f"))))]
+	(unsigned_fix:DI (match_operand:SF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT && TARGET_PA_20"
   "fcnv,t,sgl,udw %1,%0"
   [(set_attr "type" "fpalu")
@@ -5106,7 +5106,7 @@
 
 (define_insn "fixuns_truncdfdi2"
   [(set (match_operand:DI 0 "register_operand" "=f")
-	(unsigned_fix:DI (fix:DF (match_operand:DF 1 "register_operand" "f"))))]
+	(unsigned_fix:DI (match_operand:DF 1 "register_operand" "f")))]
   "! TARGET_SOFT_FLOAT && TARGET_PA_20"
   "fcnv,t,dbl,udw %1,%0"
   [(set_attr "type" "fpalu")

commit caa2b2038dadcb545f825d5c736cc50d90245bbc
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Thu Oct 31 07:22:36 2024 +0000

    Fortran: Fix problem with substring selectors in ASSOCIATE [PR115700]
    
    2024-10-31  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/115700
            * resolve.cc (resolve_variable): The typespec of an expression,
            which is not a substring, can be shared with a deferred length
            associate name.
            (resolve_assoc_var): Extract a substring reference with non-
            constant start or end. Use it to flag up the need for array
            associate name to be a pointer.
            (resolve_block_construct): Change comment from past to future
            tense.
    
    gcc/testsuite/
            PR fortran/115700
            * gfortran.dg/associate_70.f90: New test.
    
    (cherry picked from commit 159fb203231c503418e7ab9f45282957e40cb195)

diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index d7a0856fcca..50427f7450b 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -6011,6 +6011,15 @@ resolve_variable (gfc_expr *e)
 	  e->ref = newref;
 	}
     }
+  else if (sym->assoc && sym->ts.type == BT_CHARACTER && sym->ts.deferred)
+    {
+      gfc_ref *ref;
+      for (ref = e->ref; ref; ref = ref->next)
+	if (ref->type == REF_SUBSTRING)
+	  break;
+      if (ref == NULL)
+	e->ts = sym->ts;
+    }
 
   if (e->ref && !gfc_resolve_ref (e))
     return false;
@@ -9676,6 +9685,15 @@ resolve_assoc_var (gfc_symbol* sym, bool resolve_target)
   /* Fix up the type-spec for CHARACTER types.  */
   if (sym->ts.type == BT_CHARACTER && !sym->attr.select_type_temporary)
     {
+      gfc_ref *ref;
+      for (ref = target->ref; ref; ref = ref->next)
+	if (ref->type == REF_SUBSTRING
+	    && ((ref->u.ss.start
+		 && ref->u.ss.start->expr_type != EXPR_CONSTANT)
+		|| (ref->u.ss.end
+		    && ref->u.ss.end->expr_type != EXPR_CONSTANT)))
+	  break;
+
       if (!sym->ts.u.cl)
 	sym->ts.u.cl = target->ts.u.cl;
 
@@ -9694,9 +9712,10 @@ resolve_assoc_var (gfc_symbol* sym, bool resolve_target)
 		gfc_get_int_expr (gfc_charlen_int_kind, NULL,
 				  target->value.character.length);
 	}
-      else if ((!sym->ts.u.cl->length
-		|| sym->ts.u.cl->length->expr_type != EXPR_CONSTANT)
+      else if (((!sym->ts.u.cl->length
+		 || sym->ts.u.cl->length->expr_type != EXPR_CONSTANT)
 		&& target->expr_type != EXPR_VARIABLE)
+	       || ref)
 	{
 	  if (!sym->ts.deferred)
 	    {
@@ -9706,7 +9725,10 @@ resolve_assoc_var (gfc_symbol* sym, bool resolve_target)
 
 	  /* This is reset in trans-stmt.cc after the assignment
 	     of the target expression to the associate name.  */
-	  sym->attr.allocatable = 1;
+	  if (ref && sym->as)
+	    sym->attr.pointer = 1;
+	  else
+	    sym->attr.allocatable = 1;
 	}
     }
 
@@ -11290,8 +11312,9 @@ resolve_block_construct (gfc_code* code)
 {
   gfc_namespace *ns = code->ext.block.ns;
 
-  /* For an ASSOCIATE block, the associations (and their targets) are already
-     resolved during resolve_symbol. Resolve the BLOCK's namespace.  */
+  /* For an ASSOCIATE block, the associations (and their targets) will be
+     resolved by gfc_resolve_symbol, during resolution of the BLOCK's
+     namespace.  */
   gfc_resolve (ns);
 }
 
diff --git a/gcc/testsuite/gfortran.dg/associate_70.f90 b/gcc/testsuite/gfortran.dg/associate_70.f90
new file mode 100644
index 00000000000..b8916f4c70f
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/associate_70.f90
@@ -0,0 +1,40 @@
+! { dg-do run }
+! ( dg-options "-Wuninitialized" )
+!
+! Test fix for PR115700 comment 5, in which ‘.tmp1’ is used uninitialized and
+! both normal and scalarized array references did not work correctly.
+!
+! Contributed by Harald Anlauf  <anlauf@gcc.gnu.org>
+!
+  character(4), dimension(3) :: chr = ['abcd', 'efgh', 'ijkl']
+  call mvce (chr)
+  if (any (chr /= ['ABcd', 'EFgh', 'IJkl'])) stop 1
+contains
+  subroutine mvce(x)
+    implicit none
+    character(len=*), dimension(:), intent(inOUT), target :: x
+    integer :: i
+    i = len(x)
+
+! This was broken
+    associate (tmp1 => x(:)(1:i/2))
+      if (len (tmp1) /= i/2) stop 2
+      if (tmp1(2) /= 'ef') stop 3
+      if (any (tmp1 /= ['ab', 'ef', 'ij'])) stop 4
+      tmp1 = ['AB','EF','IJ']
+    end associate
+
+! Retest things that worked previously.
+    associate (tmp2 => x(:)(1:2))
+      if (len (tmp2) /= i/2) stop 5
+      if (tmp2(2) /= 'EF') stop 6
+      if (any (tmp2 /= ['AB','EF','IJ'])) stop 7
+    end associate
+
+    associate (tmp3 => x(3)(1:i/2))
+      if (len (tmp3) /= i/2) stop 8
+      if (tmp3 /= 'IJ') stop 9
+    end associate
+
+  end subroutine mvce
+end

commit 58708cc6a599aa80f6b0422bd6aa33396f26077c
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Fri Nov 1 07:45:00 2024 +0000

    Fortran: Fix problems with substring selectors in ASSOCIATE [PR115700]
    
    2024-11-01  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/115700
            * resolve.cc (resolve_assoc_var): Extract a substring reference
            with missing as well as non-constant start or end.
    
    gcc/testsuite/
            PR fortran/115700
            * gfortran.dg/associate_69.f90: Activate commented out tests.
            * gfortran.dg/associate_70.f90: Test correct functioning of
            references in associate_69.f90 tests.
    
    (cherry picked from commit 7f93910a8b5d606ad742a3594750f0c2b20d8bda)

diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index 50427f7450b..1488e9e3823 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -9688,10 +9688,10 @@ resolve_assoc_var (gfc_symbol* sym, bool resolve_target)
       gfc_ref *ref;
       for (ref = target->ref; ref; ref = ref->next)
 	if (ref->type == REF_SUBSTRING
-	    && ((ref->u.ss.start
-		 && ref->u.ss.start->expr_type != EXPR_CONSTANT)
-		|| (ref->u.ss.end
-		    && ref->u.ss.end->expr_type != EXPR_CONSTANT)))
+	    && (ref->u.ss.start == NULL
+		|| ref->u.ss.start->expr_type != EXPR_CONSTANT
+		|| ref->u.ss.end == NULL
+		|| ref->u.ss.end->expr_type != EXPR_CONSTANT))
 	  break;
 
       if (!sym->ts.u.cl)
diff --git a/gcc/testsuite/gfortran.dg/associate_69.f90 b/gcc/testsuite/gfortran.dg/associate_69.f90
index 28f488bb274..35db417867d 100644
--- a/gcc/testsuite/gfortran.dg/associate_69.f90
+++ b/gcc/testsuite/gfortran.dg/associate_69.f90
@@ -2,10 +2,14 @@
 ! { dg-options "-Og -Wuninitialized -Wmaybe-uninitialized -fdump-tree-optimized" }
 !
 ! PR fortran/115700 - Bogus warning for associate with assumed-length character array
+! This testcase checks for the suppression of the bogus error and associate_70 for
+! correct results.
 !
 subroutine mvce(x)
   implicit none
   character(len=*), dimension(:), intent(in)  :: x
+  integer :: i
+  i = len(x)
 
   associate (tmp1 => x)
     if (len (tmp1) /= len (x)) stop 1
@@ -19,15 +23,18 @@ subroutine mvce(x)
     if (len (tmp3) /= len (x)) stop 3
   end associate
 
-! The following associate blocks still produce bogus warnings:
+  associate (tmp4 => x(:)(1:))
+    if (len (tmp4) /= len (x)) stop 4
+  end associate
 
-! associate (tmp4 => x(:)(1:))
-!   if (len (tmp4) /= len (x)) stop 4
-! end associate
-!
-! associate (tmp5 => x(1:)(1:))
-!   if (len (tmp5) /= len (x)) stop 5
-! end associate
+  associate (tmp5 => x(1:)(1:))
+    if (len (tmp5) /= len (x)) stop 5
+  end associate
+
+  associate (temp6 => x(:)(1:i/2))
+    if (len (temp6) /= i/2) stop 6
+  end associate
 end
 
 ! { dg-final { scan-tree-dump-not " \\.tmp" "optimized" } }
+! { dg-final { scan-tree-dump-times " \\.temp6" 7 "optimized" } }
diff --git a/gcc/testsuite/gfortran.dg/associate_70.f90 b/gcc/testsuite/gfortran.dg/associate_70.f90
index b8916f4c70f..ddb38b84c4b 100644
--- a/gcc/testsuite/gfortran.dg/associate_70.f90
+++ b/gcc/testsuite/gfortran.dg/associate_70.f90
@@ -3,37 +3,57 @@
 !
 ! Test fix for PR115700 comment 5, in which ‘.tmp1’ is used uninitialized and
 ! both normal and scalarized array references did not work correctly.
+! This testcase checks for correct results and associate_69 for suppression
+! of the bogus error.
 !
 ! Contributed by Harald Anlauf  <anlauf@gcc.gnu.org>
 !
   character(4), dimension(3) :: chr = ['abcd', 'efgh', 'ijkl']
   call mvce (chr)
   if (any (chr /= ['ABcd', 'EFgh', 'IJkl'])) stop 1
+
 contains
   subroutine mvce(x)
     implicit none
-    character(len=*), dimension(:), intent(inOUT), target :: x
+    character(len=*), dimension(:), intent(inOUT) :: x
     integer :: i
     i = len(x)
 
-! This was broken
-    associate (tmp1 => x(:)(1:i/2))
-      if (len (tmp1) /= i/2) stop 2
-      if (tmp1(2) /= 'ef') stop 3
-      if (any (tmp1 /= ['ab', 'ef', 'ij'])) stop 4
-      tmp1 = ['AB','EF','IJ']
+    associate (tmp1 => x)
+      if (len (tmp1) /= len (x)) stop 2
+      tmp1(2)(3:4) = '12'
+    end associate
+    if (any (x /= ['abcd', 'ef12', 'ijkl'])) stop 3
+
+    associate (tmp2 => x(1:))
+      if (len (tmp2) /= len (x)) stop 4
+      tmp2(2)(1:2) = '34'
+    end associate
+    if (any (x /= ['abcd', '3412', 'ijkl'])) stop 5
+
+    associate (tmp3 => x(1:)(:))
+      if (len (tmp3) /= len (x)) stop 6
+      tmp3(3)(3:4) = '56'
+    end associate
+    if (any (x /= ['abcd', '3412', 'ij56'])) stop 7
+
+    associate (tmp4 => x(:)(1:))
+      if (len (tmp4) /= len (x)) stop 8
+      tmp4(3)(1:2) = '78'
     end associate
+    if (any (x /= ['abcd', '3412', '7856'])) stop 9
 
-! Retest things that worked previously.
-    associate (tmp2 => x(:)(1:2))
-      if (len (tmp2) /= i/2) stop 5
-      if (tmp2(2) /= 'EF') stop 6
-      if (any (tmp2 /= ['AB','EF','IJ'])) stop 7
+    associate (tmp5 => x(1:)(1:))
+      if (len (tmp5) /= len (x)) stop 10
+      tmp5 = ['abcd', 'efgh', 'ijkl']
     end associate
+    if (any (x /= ['abcd', 'efgh', 'ijkl'])) stop 11
 
-    associate (tmp3 => x(3)(1:i/2))
-      if (len (tmp3) /= i/2) stop 8
-      if (tmp3 /= 'IJ') stop 9
+    associate (tmp6 => x(:)(1:i/2))
+      if (len (tmp6) /= i/2) stop 11
+      if (tmp6(2) /= 'ef') stop 12
+      if (any (tmp6 /= ['ab', 'ef', 'ij'])) stop 13
+      tmp6 = ['AB','EF','IJ']
     end associate
 
   end subroutine mvce

commit 2b93936a122eaf5549c013cfdd27a1a164635ad7
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Sun Nov 3 18:02:16 2024 +0000

    Fortran: Fix associate_69.f90 that fails on some platforms [PR115700]
    
    2024-11-03  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/testsuite/
            PR fortran/115700
            * gfortran.dg/associate_69.f90: Remove the test that produces a
            variable string length because the optimized count depends on
            the platform. This is tested in associate_70.f90.
    
    (cherry picked from commit 4ed02814c2191d5febe0972c3e43c80c004f4799)

diff --git a/gcc/testsuite/gfortran.dg/associate_69.f90 b/gcc/testsuite/gfortran.dg/associate_69.f90
index 35db417867d..3839718e7f0 100644
--- a/gcc/testsuite/gfortran.dg/associate_69.f90
+++ b/gcc/testsuite/gfortran.dg/associate_69.f90
@@ -30,11 +30,6 @@ subroutine mvce(x)
   associate (tmp5 => x(1:)(1:))
     if (len (tmp5) /= len (x)) stop 5
   end associate
-
-  associate (temp6 => x(:)(1:i/2))
-    if (len (temp6) /= i/2) stop 6
-  end associate
 end
 
 ! { dg-final { scan-tree-dump-not " \\.tmp" "optimized" } }
-! { dg-final { scan-tree-dump-times " \\.temp6" 7 "optimized" } }

commit 066d8b8c3b6f073d8519ff9cf15aa34bfb10656a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Nov 14 17:24:28 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6095810a432..4ec9bfb6f3e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2024-11-13  John David Anglin  <danglin@gcc.gnu.org>
+
+	PR target/117525
+	* config/pa/pa.md (fix_truncsfsi2): Remove inner `fix:SF`.
+	(fix_truncdfsi2, fix_truncsfdi2, fix_truncdfdi2,
+	fixuns_truncsfsi2, fixuns_truncdfsi2, fixuns_truncsfdi2,
+	fixuns_truncdfdi2): Likewise.
+
 2024-11-12  John David Anglin  <danglin@gcc.gnu.org>
 
 	* config/pa/pa.md (decrement_and_branch_until_zero): Fix
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 8a225a1f705..97867f47cfd 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241113
+20241114
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 4d778d02a88..1381ce3c655 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,27 @@
+2024-11-14  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-01  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/115700
+	* resolve.cc (resolve_assoc_var): Extract a substring reference
+	with missing as well as non-constant start or end.
+
+2024-11-14  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-10-31  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/115700
+	* resolve.cc (resolve_variable): The typespec of an expression,
+	which is not a substring, can be shared with a deferred length
+	associate name.
+	(resolve_assoc_var): Extract a substring reference with non-
+	constant start or end. Use it to flag up the need for array
+	associate name to be a pointer.
+	(resolve_block_construct): Change comment from past to future
+	tense.
+
 2024-11-05  Paul Thomas  <pault@gcc.gnu.org>
 
 	PR fortran/115070
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1ff7f88465f..96ca0053545 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,31 @@
+2024-11-14  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-03  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/115700
+	* gfortran.dg/associate_69.f90: Remove the test that produces a
+	variable string length because the optimized count depends on
+	the platform. This is tested in associate_70.f90.
+
+2024-11-14  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-01  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/115700
+	* gfortran.dg/associate_69.f90: Activate commented out tests.
+	* gfortran.dg/associate_70.f90: Test correct functioning of
+	references in associate_69.f90 tests.
+
+2024-11-14  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-10-31  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/115700
+	* gfortran.dg/associate_70.f90: New test.
+
 2024-11-12  Andrew Carlotti  <andrew.carlotti@arm.com>
 
 	PR tree-optimization/112376

commit d9752ab92b6a55c89de64f1b03cdf94e3abc29aa
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Nov 15 00:23:15 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 97867f47cfd..1bcb5dd5f30 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241114
+20241115

commit 878b3354859ace887c0613fda6b79e96d6d5024b
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Fri Nov 15 11:05:58 2024 -0500

    hppa: Fix typos in 32-bit SFmode peephole2 patterns
    
    2024-11-15  John David Anglin  <danglin@gcc.gnu.org>
    
    gcc/ChangeLog:
    
            PR target/117564
            * config/pa/pa.md: Fix typos in 32-bit SFmode peephole2 patterns.

diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index aa2d9956bd2..6a661b4980c 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -4588,7 +4588,7 @@
    && REGNO (operands[0]) != REGNO (operands[3])
    && REGNO (operands[1]) != REGNO (operands[3])
    && base14_operand (operands[2], E_SImode)"
-  [(set (match_dup 3) (mem:SF (plus:DI (match_dup 1) (match_dup 2))))
+  [(set (match_dup 3) (mem:SF (plus:SI (match_dup 1) (match_dup 2))))
    (set (match_dup 0) (plus:SI (match_dup 1) (match_dup 2)))]
   "")
 
@@ -4604,7 +4604,7 @@
    && GENERAL_REGNO_P (REGNO (operands[3]))
    && REGNO (operands[0]) == REGNO (operands[3])
    && base14_operand (operands[2], E_SImode)"
-  [(set (match_dup 3) (mem:SF (plus:DI (match_dup 1) (match_dup 2))))]
+  [(set (match_dup 3) (mem:SF (plus:SI (match_dup 1) (match_dup 2))))]
   "")
 
 (define_peephole2

commit 03af3c1ad6a0728bc90b3c0173722273482af55f
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Nov 16 00:23:28 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4ec9bfb6f3e..82c8068e197 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2024-11-15  John David Anglin  <danglin@gcc.gnu.org>
+
+	PR target/117564
+	* config/pa/pa.md: Fix typos in 32-bit SFmode peephole2 patterns.
+
 2024-11-13  John David Anglin  <danglin@gcc.gnu.org>
 
 	PR target/117525
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 1bcb5dd5f30..af4dbe513ab 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241115
+20241116

commit 74bfca7360910ae640c2c9c362fe9a4c0ebcc3ba
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Sat Nov 9 12:40:48 2024 +0100

    AVR: target/117500 - Use output_operand_lossage in avr_print_operand.
    
            PR target/117500
    gcc/
            * config/avr/avr.cc (avr_print_operand) [code = 'i']: Use
            output_operand_lossage on bad operands instead of fatal_insn.
    
    (cherry picked from commit 02d7370966ac19af966b827b4c984e8a38fdf728)

diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index ab1163af984..269a22b71a2 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -3812,6 +3812,69 @@ avr_print_operand (FILE *file, rtx x, int code)
       rtx op = XEXP (XEXP (x, 0), 0);
       fprintf (file, "%s", reg_names[REGNO (op) + ij]);
     }
+  else if (code == 'i')
+    {
+      const int sfr0 = avr_arch->sfr_offset;
+      bool lossage_p = false;
+
+      switch (GET_CODE (x))
+	{
+	default:
+	  lossage_p = true;
+	  break;
+
+	case CONST_INT:
+	  {
+	    const auto ival = INTVAL (x);
+
+	    if (io_address_operand (x, VOIDmode))
+	      {
+		if (AVR_HAVE_RAMPZ && ival == avr_addr.rampz)
+		  fprintf (file, "__RAMPZ__");
+		else if (AVR_HAVE_RAMPY && ival == avr_addr.rampy)
+		  fprintf (file, "__RAMPY__");
+		else if (AVR_HAVE_RAMPX && ival == avr_addr.rampx)
+		  fprintf (file, "__RAMPX__");
+		else if (AVR_HAVE_RAMPD && ival == avr_addr.rampd)
+		  fprintf (file, "__RAMPD__");
+		else if ((AVR_XMEGA || AVR_TINY) && ival == avr_addr.ccp)
+		  fprintf (file, "__CCP__");
+		else if (ival == avr_addr.sreg)   fprintf (file, "__SREG__");
+		else if (ival == avr_addr.sp_l)   fprintf (file, "__SP_L__");
+		else if (ival == avr_addr.sp_h)   fprintf (file, "__SP_H__");
+		else
+		  fprintf (file, HOST_WIDE_INT_PRINT_HEX, ival - sfr0);
+	      }
+	    else
+	      output_operand_lossage
+		("bad I/O address 0x" HOST_WIDE_INT_PRINT_HEX_PURE
+		 " outside of valid range [0x%x, 0x%x] for %%i operand",
+		 ival, sfr0, sfr0 + 0x3f);
+	  }
+	  break; // CONST_INT
+
+	case MEM:
+	  if (io_address_operand (XEXP (x, 0), VOIDmode))
+	    avr_print_operand (file, XEXP (x, 0), 'i');
+	  else
+	    lossage_p = true;
+	  break;
+
+	case SYMBOL_REF:
+	  if (io_address_operand (x, VOIDmode))
+	    {
+	      rtx addr = plus_constant (HImode, x, -sfr0);
+	      avr_print_operand_address (file, VOIDmode, addr);
+	    }
+	  else
+	    lossage_p = true;
+	  break;
+	} // switch code
+
+      if (lossage_p)
+	output_operand_lossage ("%s operand cannot be used as %%i I/O "
+				"address operand", rtx_name[GET_CODE (x)]);
+    } // code = i
   else if (REG_P (x))
     {
       if (x == zero_reg_rtx)
@@ -3823,34 +3886,7 @@ avr_print_operand (FILE *file, rtx x, int code)
     }
   else if (CONST_INT_P (x))
     {
-      HOST_WIDE_INT ival = INTVAL (x);
-
-      if ('i' != code)
-	fprintf (file, HOST_WIDE_INT_PRINT_DEC, ival + abcd);
-      else if (low_io_address_operand (x, VOIDmode)
-	       || high_io_address_operand (x, VOIDmode))
-	{
-	  if (AVR_HAVE_RAMPZ && ival == avr_addr.rampz)
-	    fprintf (file, "__RAMPZ__");
-	  else if (AVR_HAVE_RAMPY && ival == avr_addr.rampy)
-	    fprintf (file, "__RAMPY__");
-	  else if (AVR_HAVE_RAMPX && ival == avr_addr.rampx)
-	    fprintf (file, "__RAMPX__");
-	  else if (AVR_HAVE_RAMPD && ival == avr_addr.rampd)
-	    fprintf (file, "__RAMPD__");
-	  else if ((AVR_XMEGA || AVR_TINY) && ival == avr_addr.ccp)
-	    fprintf (file, "__CCP__");
-	  else if (ival == avr_addr.sreg)   fprintf (file, "__SREG__");
-	  else if (ival == avr_addr.sp_l)   fprintf (file, "__SP_L__");
-	  else if (ival == avr_addr.sp_h)   fprintf (file, "__SP_H__");
-	  else
-	    {
-	      fprintf (file, HOST_WIDE_INT_PRINT_HEX,
-		       ival - avr_arch->sfr_offset);
-	    }
-	}
-      else
-	fatal_insn ("bad address, not an I/O address:", x);
+      fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x) + abcd);
     }
   else if (MEM_P (x))
     {
@@ -3870,10 +3906,6 @@ avr_print_operand (FILE *file, rtx x, int code)
 	      }
 	  output_addr_const (file, addr);
 	}
-      else if (code == 'i')
-	{
-	  avr_print_operand (file, addr, 'i');
-	}
       else if (code == 'o')
 	{
 	  if (GET_CODE (addr) != PLUS)
@@ -3911,14 +3943,6 @@ avr_print_operand (FILE *file, rtx x, int code)
       else
 	avr_print_operand_address (file, VOIDmode, addr);
     }
-  else if (code == 'i')
-    {
-      if (SYMBOL_REF_P (x) && (SYMBOL_REF_FLAGS (x) & SYMBOL_FLAG_IO))
-	avr_print_operand_address
-	  (file, VOIDmode, plus_constant (HImode, x, -avr_arch->sfr_offset));
-      else
-	fatal_insn ("bad address, not an I/O address:", x);
-    }
   else if (code == 'x')
     {
       /* Constant progmem address - like used in jmp or call */

commit fe0da4dce7908a8fe15cd37e2ba87b14ad3997c1
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Nov 17 00:32:22 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 82c8068e197..bccf1aae915 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2024-11-16  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-11-16  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/117500
+	* config/avr/avr.cc (avr_print_operand) [code = 'i']: Use
+	output_operand_lossage on bad operands instead of fatal_insn.
+
 2024-11-15  John David Anglin  <danglin@gcc.gnu.org>
 
 	PR target/117564
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index af4dbe513ab..b57dfce74e2 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241116
+20241117

commit a6699802d5c5f6f9583fe58b9e0e8b9151cb7807
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Nov 18 00:25:08 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index b57dfce74e2..7d15800c874 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241117
+20241118

commit 8b4bb54e6c45411845ec559c49f594a6239c3969
Author: Hu, Lin1 <lin1.hu@intel.com>
Date:   Wed Nov 6 15:42:13 2024 +0800

    i386: Zero extend 32-bit address to 64-bit with option -mx32 -maddress-mode=long. [PR 117418]
    
    -maddress-mode=long let Pmode = DI_mode, so zero extend 32-bit address to
    64-bit and uses a 64-bit register as a pointer for avoid raise an ICE.
    
    gcc/ChangeLog:
    
            PR target/117418
            * config/i386/i386-expand.cc (ix86_expand_builtin): Convert
            pointer's mode according to Pmode.
    
    gcc/testsuite/ChangeLog:
    
            PR target/117418
            * gcc.target/i386/pr117418-1.c: New test.
    
    (cherry picked from commit 2272cd2508f1854c880082f792de15e76ec09a99)

diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index 7019116fcac..8e9dde145cf 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -13477,6 +13477,9 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
       op1 = expand_normal (arg1);
       op2 = expand_normal (arg2);
 
+      if (GET_MODE (op1) != Pmode)
+	op1 = convert_to_mode (Pmode, op1, 1);
+
       if (!address_operand (op2, VOIDmode))
 	{
 	  op2 = convert_memory_address (Pmode, op2);
@@ -13512,6 +13515,9 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
       emit_label (ok_label);
       emit_insn (gen_rtx_SET (target, pat));
 
+      if (GET_MODE (op0) != Pmode)
+	op0 = convert_to_mode (Pmode, op0, 1);
+
       for (i = 0; i < 8; i++)
 	{
 	  op = gen_rtx_MEM (V2DImode,
@@ -13536,6 +13542,9 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
 	if (!REG_P (op0))
 	  op0 = copy_to_mode_reg (SImode, op0);
 
+	if (GET_MODE (op2) != Pmode)
+	  op2 = convert_to_mode (Pmode, op2, 1);
+
 	op = gen_rtx_REG (V2DImode, GET_SSE_REGNO (0));
 	emit_move_insn (op, op1);
 
@@ -13573,6 +13582,9 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
 	if (!REG_P (op0))
 	  op0 = copy_to_mode_reg (SImode, op0);
 
+	if (GET_MODE (op3) != Pmode)
+	  op3 = convert_to_mode (Pmode, op3, 1);
+
 	/* Force to use xmm0, xmm1 for keylow, keyhi*/
 	op = gen_rtx_REG (V2DImode, GET_SSE_REGNO (0));
 	emit_move_insn (op, op1);
diff --git a/gcc/testsuite/gcc.target/i386/pr117418-1.c b/gcc/testsuite/gcc.target/i386/pr117418-1.c
new file mode 100644
index 00000000000..4839b139b79
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117418-1.c
@@ -0,0 +1,24 @@
+/* PR target/117418 */
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-maddress-mode=long -mwidekl -mx32" } */
+/* { dg-require-effective-target maybe_x32  } */
+/* { dg-final { scan-assembler-times "aesdec128kl" 1 } } */
+/* { dg-final { scan-assembler-times "aesdec256kl" 1 } } */
+/* { dg-final { scan-assembler-times "aesenc128kl" 1 } } */
+/* { dg-final { scan-assembler-times "aesenc256kl" 1 } } */
+/* { dg-final { scan-assembler-times "encodekey128" 1 } } */
+/* { dg-final { scan-assembler-times "encodekey256" 1 } } */
+
+typedef __attribute__((__vector_size__(16))) long long V;
+V a;
+
+void
+foo()
+{
+    __builtin_ia32_aesdec128kl_u8 (&a, a, &a);
+    __builtin_ia32_aesdec256kl_u8 (&a, a, &a);
+    __builtin_ia32_aesenc128kl_u8 (&a, a, &a);
+    __builtin_ia32_aesenc256kl_u8 (&a, a, &a);
+    __builtin_ia32_encodekey128_u32 (0, a, &a); 
+    __builtin_ia32_encodekey256_u32 (0, a, a, &a); 
+}

commit b51b45eaf7131ec97b7fa180ffa6e8dedc24e74f
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Date:   Mon Oct 14 16:24:07 2024 +0100

    fold-const: Fix BIT_INSERT_EXPR folding for BYTES_BIG_ENDIAN [PR116997]
    
    Fix constant folding of BIT_INSER_EXPR for BYTES_BIG_ENDIAN targets.
    
    gcc/ChangeLog:
    
            PR middle-end/116997
            * fold-const.cc (fold_ternary_loc): Fix BIT_INSERT_EXPR constant folding
            for BYTES_BIG_ENDIAN targets.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/vect/pr116997.c: New test.
    
    Co-authored-by: Andrew Pinski <quic_apinski@quicinc.com>
    (cherry picked from commit 2e30e90a0c2bf8147a6d24854aa653c332c8f84f)

diff --git a/gcc/fold-const.cc b/gcc/fold-const.cc
index 1e6b573ca01..89df178c696 100644
--- a/gcc/fold-const.cc
+++ b/gcc/fold-const.cc
@@ -13652,6 +13652,8 @@ fold_ternary_loc (location_t loc, enum tree_code code, tree type,
 	{
 	  unsigned HOST_WIDE_INT bitpos = tree_to_uhwi (op2);
 	  unsigned bitsize = TYPE_PRECISION (TREE_TYPE (arg1));
+	  if (BYTES_BIG_ENDIAN)
+	    bitpos = TYPE_PRECISION (type) - bitpos - bitsize;
 	  wide_int tem = (wi::to_wide (arg0)
 			  & wi::shifted_mask (bitpos, bitsize, true,
 					      TYPE_PRECISION (type)));
diff --git a/gcc/testsuite/gcc.dg/vect/pr116997.c b/gcc/testsuite/gcc.dg/vect/pr116997.c
new file mode 100644
index 00000000000..4563fc2bfb6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr116997.c
@@ -0,0 +1,18 @@
+/* PR 116997.  */
+struct S0
+{
+  unsigned f0;
+  signed f2 : 11;
+  signed : 6;
+} GlobS, *Ptr = &GlobS;
+
+const struct S0 Initializer = {7, 3};
+
+int main (void)
+{
+  for (unsigned i = 0; i <= 2; i++)
+    *Ptr = Initializer;
+  if (GlobS.f2 != 3)
+    __builtin_abort ();
+  return 0;
+}

commit 3cb7ac6f02d35eda5d9e52834d06f50d0c929ecc
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Mon Nov 18 18:12:38 2024 +0100

    AVR: target/117659 - Fix wrong code for u24 << 16.
    
    gcc/
            PR target/117659
            * config/avr/avr.cc (avr_out_ashlpsi3) [case 16]: Use %A1 as
            input (instead of bogus %A0).
    
    (cherry picked from commit bba27015f2815a8fa6fae46a29a70644e868341c)

diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index 269a22b71a2..f17438d9708 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -7851,7 +7851,7 @@ avr_out_ashlpsi3 (rtx_insn *insn, rtx *op, int *plen)
 	    int reg1 = REGNO (op[1]);
 
 	    if (reg0 + 2 != reg1)
-	      avr_asm_len ("mov %C0,%A0", op, plen, 1);
+	      avr_asm_len ("mov %C0,%A1", op, plen, 1);
 
 	    return avr_asm_len ("clr %B0"  CR_TAB
 				"clr %A0", op, plen, 2);

commit fee461613856c98946e15ef55d813831a73d2485
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Mon Nov 18 22:38:46 2024 +0100

    i386: Enable *rsqrtsf2_sse without TARGET_SSE_MATH [PR117357]
    
    __builtin_ia32_rsqrtsf2 expander generates UNSPEC_RSQRT insn pattern
    also when TARGET_SSE_MATH is not set.  Enable *rsqrtsf2_sse without
    TARGET_SSE_MATH to avoid ICE with unrecognizable insn.
    
            PR target/117357
    
    gcc/ChangeLog:
    
            * config/i386/i386.md (*rsqrtsf2_sse):
            Also enable for !TARGET_SSE_MATH.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr117357.c: New test.
    
    (cherry picked from commit 344356f781ddb7bf0abb11edf9bdd13f6802dea8)

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index f9757433687..a72f6687296 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -21865,7 +21865,7 @@
   [(set (match_operand:SF 0 "register_operand" "=x,x,x,x")
 	(unspec:SF [(match_operand:SF 1 "nonimmediate_operand" "0,x,m,ja")]
 		   UNSPEC_RSQRT))]
-  "TARGET_SSE && TARGET_SSE_MATH"
+  "TARGET_SSE"
   "@
    %vrsqrtss\t{%d1, %0|%0, %d1}
    %vrsqrtss\t{%d1, %0|%0, %d1}
diff --git a/gcc/testsuite/gcc.target/i386/pr117357.c b/gcc/testsuite/gcc.target/i386/pr117357.c
new file mode 100644
index 00000000000..7a27691a977
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117357.c
@@ -0,0 +1,7 @@
+/* { dg-do compile } */
+/* { dg-options "-msse -mfpmath=387" } */
+
+float foo (float f)
+{
+  return __builtin_ia32_rsqrtf (f);
+}

commit 4d27dd15c4433194d22238a9c931c6d2c5f12db0
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Nov 19 00:22:54 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bccf1aae915..2d3ebab72b0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,40 @@
+2024-11-18  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2024-11-18  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/117357
+	* config/i386/i386.md (*rsqrtsf2_sse):
+	Also enable for !TARGET_SSE_MATH.
+
+2024-11-18  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-11-18  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/117659
+	* config/avr/avr.cc (avr_out_ashlpsi3) [case 16]: Use %A1 as
+	input (instead of bogus %A0).
+
+2024-11-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+	Backported from master:
+	2024-10-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+		    Andrew Pinski  <quic_apinski@quicinc.com>
+
+	PR middle-end/116997
+	* fold-const.cc (fold_ternary_loc): Fix BIT_INSERT_EXPR constant folding
+	for BYTES_BIG_ENDIAN targets.
+
+2024-11-18  Hu, Lin1  <lin1.hu@intel.com>
+
+	Backported from master:
+	2024-11-13  Hu, Lin1  <lin1.hu@intel.com>
+
+	PR target/117418
+	* config/i386/i386-expand.cc (ix86_expand_builtin): Convert
+	pointer's mode according to Pmode.
+
 2024-11-16  Georg-Johann Lay  <avr@gjlay.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7d15800c874..6d3c9325db8 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241118
+20241119
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 96ca0053545..1759eca3bf1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,27 @@
+2024-11-18  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2024-11-18  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/117357
+	* gcc.target/i386/pr117357.c: New test.
+
+2024-11-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+	Backported from master:
+	2024-10-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+		    Andrew Pinski  <quic_apinski@quicinc.com>
+
+	* gcc.dg/vect/pr116997.c: New test.
+
+2024-11-18  Hu, Lin1  <lin1.hu@intel.com>
+
+	Backported from master:
+	2024-11-13  Hu, Lin1  <lin1.hu@intel.com>
+
+	PR target/117418
+	* gcc.target/i386/pr117418-1.c: New test.
+
 2024-11-14  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:

commit 112d184348163d02d49789c3a7453e2ef86a493c
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 19 15:32:02 2024 +0000

    [PATCH] PR modula2/115003 exporting a symbol to outer scope with a name clash causes ICE
    
    An ICE will occur if an unknown symbol is exported and causes a name
    clash.  The error mechanism attempts to find the scope of an unknown
    symbol.  This patch adds a missing case clause to GetScope and returns
    NulSym if the scope is an unknown symbol.
    
    gcc/m2/ChangeLog:
    
            PR modula2/115003
            * gm2-compiler/SymbolTable.mod (GetScope): Add UndefinedSym
            case clause and return NulSym.
    
    (cherry picked from commit bc5afdf14ccf8375f7fb3de2be1121aaf550f8aa)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/SymbolTable.mod b/gcc/m2/gm2-compiler/SymbolTable.mod
index f5890ec684f..f206a47dff7 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.mod
+++ b/gcc/m2/gm2-compiler/SymbolTable.mod
@@ -12449,6 +12449,7 @@ BEGIN
       ConstLitSym        : RETURN( ConstLit.Scope ) |
       ConstStringSym     : RETURN( ConstString.Scope ) |
       ConstVarSym        : RETURN( ConstVar.Scope ) |
+      UndefinedSym       : RETURN( NulSym ) |
       PartialUnboundedSym: InternalError ('should not be requesting the scope of a PartialUnbounded symbol')
 
       ELSE

commit 399065ea44219d08ca28238cba0fc1fef422628b
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 19 18:30:10 2024 +0000

    [PATCH] PR modula2/115057 TextIO.ReadRestLine raises an exception when buffer is exceeded
    
    TextIO.ReadRestLine will raise an "attempting to read beyond end of file"
    exception if the buffer is exceeded.  This bug is caused by the
    TextIO.ReadRestLine calling IOChan.Skip without a preceeding IOChan.Look.
    The Look procedure will update the status result whereas
    Skip always sets read result to allRight.
    
    gcc/m2/ChangeLog:
    
            PR modula2/115057
            * gm2-libs-iso/TextIO.mod (ReadRestLine): Use ReadChar to
            skip unwanted characters as this calls IOChan.Look and updates
            the cid result status.  A Skip without a Look does not update
            the status.  Skip always sets read result to allRight.
            * gm2-libs-iso/TextUtil.def (SkipSpaces): Improve comments.
            (CharAvailable): Improve comments.
            * gm2-libs-iso/TextUtil.mod (SkipSpaces): Improve comments.
            (CharAvailable): Improve comments.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/115057
            * gm2/isolib/run/pass/testrestline.mod: New test.
            * gm2/isolib/run/pass/testrestline2.mod: New test.
            * gm2/isolib/run/pass/testrestline3.mod: New test.
    
    (cherry picked from commit 680af0e1e90d4b80260d173636dfe15654fd470d)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-libs-iso/TextIO.mod b/gcc/m2/gm2-libs-iso/TextIO.mod
index 78d67187b79..5204467b192 100644
--- a/gcc/m2/gm2-libs-iso/TextIO.mod
+++ b/gcc/m2/gm2-libs-iso/TextIO.mod
@@ -114,13 +114,19 @@ PROCEDURE ReadRestLine (cid: IOChan.ChanId; VAR s: ARRAY OF CHAR);
   *)
 VAR
    i, h    : CARDINAL ;
+   ignore  : CHAR ;
    finished: BOOLEAN ;
 BEGIN
    h := HIGH(s) ;
    i := 0 ;
    finished := FALSE ;
-   WHILE (i<=h) AND CharAvailable (cid) AND (NOT finished) DO
-      ReadChar (cid, s[i]) ;
+   WHILE CharAvailable (cid) AND (NOT finished) DO
+      IF i <= h
+      THEN
+         ReadChar (cid, s[i])
+      ELSE
+         ReadChar (cid, ignore)
+      END ;
       IF EofOrEoln (cid)
       THEN
          finished := TRUE
@@ -128,9 +134,6 @@ BEGIN
          INC (i)
       END
    END ;
-   WHILE CharAvailable (cid) DO
-      IOChan.Skip (cid)
-   END ;
    SetNul (cid, i, s, TRUE)
 END ReadRestLine ;
 
diff --git a/gcc/m2/gm2-libs-iso/TextUtil.def b/gcc/m2/gm2-libs-iso/TextUtil.def
index ead04561723..7e6b3ed07dc 100644
--- a/gcc/m2/gm2-libs-iso/TextUtil.def
+++ b/gcc/m2/gm2-libs-iso/TextUtil.def
@@ -45,11 +45,15 @@ IMPORT IOChan ;
 PROCEDURE SkipSpaces (cid: IOChan.ChanId) ;
 
 
-(* The following procedures do not read past line marks.  *)
+(* CharAvailable returns TRUE if IOChan.ReadResult is notKnown or
+   allRight.  *)
 
 PROCEDURE CharAvailable (cid: IOChan.ChanId) : BOOLEAN ;
 
 
+(* EofOrEoln returns TRUE if IOChan.ReadResult is endOfLine or
+   endOfInput.  *)
+
 PROCEDURE EofOrEoln (cid: IOChan.ChanId) : BOOLEAN ;
 
 
diff --git a/gcc/m2/gm2-libs-iso/TextUtil.mod b/gcc/m2/gm2-libs-iso/TextUtil.mod
index 44dbd1c69f8..ad5786ca2fb 100644
--- a/gcc/m2/gm2-libs-iso/TextUtil.mod
+++ b/gcc/m2/gm2-libs-iso/TextUtil.mod
@@ -23,7 +23,8 @@ BEGIN
 END SkipSpaces ;
 
 
-(* The following procedures do not read past line marks.  *)
+(* CharAvailable returns TRUE if IOChan.ReadResult is notKnown or
+   allRight.  *)
 
 PROCEDURE CharAvailable (cid: IOChan.ChanId) : BOOLEAN ;
 BEGIN
@@ -32,6 +33,9 @@ BEGIN
 END CharAvailable ;
 
 
+(* EofOrEoln returns TRUE if IOChan.ReadResult is endOfLine or
+   endOfInput.  *)
+
 PROCEDURE EofOrEoln (cid: IOChan.ChanId) : BOOLEAN ;
 BEGIN
    RETURN( (IOChan.ReadResult (cid) = IOConsts.endOfLine) OR
diff --git a/gcc/testsuite/gm2/isolib/run/pass/testrestline.mod b/gcc/testsuite/gm2/isolib/run/pass/testrestline.mod
new file mode 100644
index 00000000000..7702e88bdd9
--- /dev/null
+++ b/gcc/testsuite/gm2/isolib/run/pass/testrestline.mod
@@ -0,0 +1,20 @@
+MODULE testrestline ;
+
+IMPORT SeqFile, TextIO ;
+
+VAR
+   chan    : SeqFile.ChanId ;
+   line    : ARRAY [0..5] OF CHAR ;
+   results : SeqFile.OpenResults ;
+BEGIN
+   SeqFile.OpenWrite (chan, "test.input", SeqFile.write, results) ;
+   TextIO.WriteString (chan, "a line of text exceeding 6 chars") ;
+   TextIO.WriteLn (chan) ;
+   TextIO.WriteString (chan, "a second lineline of text exceeding 6 chars") ;
+   TextIO.WriteLn (chan) ;
+   SeqFile.Close (chan) ;
+
+   (* Now see if we can read the first line.  *)
+   SeqFile.OpenRead (chan, "test.input", SeqFile.read, results) ;
+   TextIO.ReadRestLine (chan, line)
+END testrestline.
\ No newline at end of file
diff --git a/gcc/testsuite/gm2/isolib/run/pass/testrestline2.mod b/gcc/testsuite/gm2/isolib/run/pass/testrestline2.mod
new file mode 100644
index 00000000000..00e5c8091e1
--- /dev/null
+++ b/gcc/testsuite/gm2/isolib/run/pass/testrestline2.mod
@@ -0,0 +1,17 @@
+MODULE testrestline2 ;
+
+IMPORT SeqFile, TextIO ;
+
+VAR
+   chan    : SeqFile.ChanId ;
+   line    : ARRAY [0..5] OF CHAR ;
+   results : SeqFile.OpenResults ;
+BEGIN
+   SeqFile.OpenWrite (chan, "test.input", SeqFile.write, results) ;
+   TextIO.WriteString (chan, "a line of text exceeding 6 chars") ;
+   TextIO.WriteLn (chan) ;
+
+   (* Now see if we can read the first line.  *)
+   SeqFile.OpenRead (chan, "test.input", SeqFile.read, results) ;
+   TextIO.ReadRestLine (chan, line)
+END testrestline2.
\ No newline at end of file
diff --git a/gcc/testsuite/gm2/isolib/run/pass/testrestline3.mod b/gcc/testsuite/gm2/isolib/run/pass/testrestline3.mod
new file mode 100644
index 00000000000..04fbad42f2d
--- /dev/null
+++ b/gcc/testsuite/gm2/isolib/run/pass/testrestline3.mod
@@ -0,0 +1,16 @@
+MODULE testrestline3 ;
+
+IMPORT SeqFile, TextIO ;
+
+VAR
+   chan    : SeqFile.ChanId ;
+   line    : ARRAY [0..5] OF CHAR ;
+   results : SeqFile.OpenResults ;
+BEGIN
+   SeqFile.OpenWrite (chan, "test.input", SeqFile.write, results) ;
+   TextIO.WriteString (chan, "a line of text exceeding 6 chars") ;
+
+   (* Now see if we can read the first line.  *)
+   SeqFile.OpenRead (chan, "test.input", SeqFile.read, results) ;
+   TextIO.ReadRestLine (chan, line)
+END testrestline3.
\ No newline at end of file

commit aefb47144465c620141daf46e0ce576a5b0a389e
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 19 19:33:18 2024 +0000

    [PATCH] PR modula2/115164 initial test code highlighting the problem
    
    This patch includes some trivial testcode which highlights
    PR 115164.  Expect future test code to perform runtime checks
    for a series of trailing zeros.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/115164
            * gm2/isolib/run/pass/testlowread.mod: New test.
            * gm2/isolib/run/pass/testwritereal.mod: New test.
    
    (cherry picked from commit d642b66a298ece7394e786a6a2d14a4f0b561d9a)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/testsuite/gm2/isolib/run/pass/testlowread.mod b/gcc/testsuite/gm2/isolib/run/pass/testlowread.mod
new file mode 100644
index 00000000000..fefbcb0b372
--- /dev/null
+++ b/gcc/testsuite/gm2/isolib/run/pass/testlowread.mod
@@ -0,0 +1,9 @@
+MODULE testlowread ;
+
+FROM LowReal IMPORT places ;
+FROM STextIO IMPORT WriteString, WriteLn ;
+FROM SWholeIO IMPORT WriteCard ;
+
+BEGIN
+   WriteString ('value of places = ') ; WriteCard (places, 0) ; WriteLn
+END testlowread.
diff --git a/gcc/testsuite/gm2/isolib/run/pass/testwritereal.mod b/gcc/testsuite/gm2/isolib/run/pass/testwritereal.mod
new file mode 100644
index 00000000000..025d684175c
--- /dev/null
+++ b/gcc/testsuite/gm2/isolib/run/pass/testwritereal.mod
@@ -0,0 +1,9 @@
+MODULE testwritereal ;
+
+FROM STextIO IMPORT WriteString, WriteLn ;
+FROM SRealIO IMPORT WriteFloat ;
+FROM RealMath IMPORT pi ;
+
+BEGIN
+   WriteString ('value of pi = ') ; WriteFloat (pi, 0, 0) ; WriteLn
+END testwritereal.

commit b1d2c143e8004535ee205eb374cf96d592f2f445
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 19 22:28:04 2024 +0000

    [PATCH] modula2: Pass --destdir for dir index during install of m2.info.
    
    This patch adds DESTDIR to the infodir when installing m2.info.
    
    gcc/m2/ChangeLog
    
            * Make-lang.in (m2.install-info): Pass --destdir for dir index.
    
    (cherry picked from commit 232a86f9640cde6908d0875b8df52c36030c5b5e)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index 0abd8ce1455..da4226123df 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -425,7 +425,7 @@ m2.install-info: installdirs
 	else true; fi
 	-if [ -f gm2$(exeext) ] && [ -f $(DESTDIR)$(infodir)/m2.info ]; then \
 	  if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
-	    install-info --dir-file=$(infodir)/dir $(DESTDIR)$(infodir)/m2.info; \
+	    install-info --dir-file=$(DESTDIR)$(infodir)/dir $(DESTDIR)$(infodir)/m2.info; \
 	  else true; fi; \
 	else true; fi
 

commit 9a23dff4f8eb92150074223098af30ea91a4d3da
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Wed Nov 20 00:17:23 2024 +0000

    [PATCH] modula2: use groups in the type resolver of the bootstrap tool mc
    
    This patch introduces groups to maintain the lists used when resolving
    types in the bootstrap tool mc.  The groups and type resolver are very
    similar to that used in cc1gm2.  Specifically the resolver uses the group
    to detect any change to any element in any list within a group.  This is
    much cleaner and safer than the previous list length comparisons.
    
    gcc/m2/ChangeLog:
    
            * Make-lang.in (MC_EXTENDED_OPAQUE): New definition.
            * mc-boot/GDynamicStrings.cc: Rebuild.
            * mc-boot/GDynamicStrings.h: Rebuild.
            * mc-boot/Galists.cc: Rebuild.
            * mc-boot/Galists.h: Rebuild.
            * mc-boot/Gdecl.cc: Rebuild.
            * mc/alists.def (equalList): New procedure.
            * mc/alists.mod (equalList): New procedure implementation.
            * mc/decl.mod (group): New type.
            (freeGroup): New variable.
            (globalGroup): Ditto.
            (todoQ): Remove declaration and prefix all occurances with globalGroup^.
            (partialQ): Ditto.
            (doneQ): Ditto.
            (newGroup): New procedure.
            (initGroup): Ditto.
            (killGroup): Ditto.
            (dupGroup): Ditto.
            (equalGroup): Ditto.
            (topologicallyOut): Rewrite.
    
    (cherry picked from commit 20e6f36771df7e3a8857628dd367eecfe77ba4fc)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index da4226123df..83d592f35d8 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -505,6 +505,7 @@ MC_ARGS= --olang=c++ \
  $(MC_COPYRIGHT) \
  --gcc-config-system
 
+MC_EXTENDED_OPAQUE=--extended-opaque
 MCDEPS=m2/boot-bin/mc$(exeext)
 
 MC=m2/boot-bin/mc$(exeext) $(MC_ARGS)
@@ -1539,7 +1540,7 @@ m2/gm2-libs-boot/SysStorage.o: $(srcdir)/m2/gm2-libs/SysStorage.mod $(MCDEPS) $(
 
 m2/gm2-compiler-boot/M2GCCDeclare.o: $(srcdir)/m2/gm2-compiler/M2GCCDeclare.mod $(MCDEPS) $(BUILD-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(MC) --extended-opaque -o=m2/gm2-compiler-boot/M2GCCDeclare.c $<
+	$(MC) $(MC_EXTENDED_OPAQUE) -o=m2/gm2-compiler-boot/M2GCCDeclare.c $<
 	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
             -I. -I$(srcdir)/../include -I$(srcdir) \
             -I. -Im2/gm2-libs-boot -Im2/gm2-compiler-boot \
@@ -1548,7 +1549,7 @@ m2/gm2-compiler-boot/M2GCCDeclare.o: $(srcdir)/m2/gm2-compiler/M2GCCDeclare.mod
 
 m2/gm2-compiler-boot/M2Error.o: $(srcdir)/m2/gm2-compiler/M2Error.mod $(MCDEPS) $(BUILD-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(MC) --extended-opaque -o=m2/gm2-compiler-boot/M2Error.c $<
+	$(MC) $(MC_EXTENDED_OPAQUE) -o=m2/gm2-compiler-boot/M2Error.c $<
 	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
             -I. -I$(srcdir)/../include -I$(srcdir) \
             -I. -Im2/gm2-libs-boot -Im2/gm2-compiler-boot \
diff --git a/gcc/m2/mc-boot/GDynamicStrings.cc b/gcc/m2/mc-boot/GDynamicStrings.cc
index 7f61778af64..a1cb88c03b7 100644
--- a/gcc/m2/mc-boot/GDynamicStrings.cc
+++ b/gcc/m2/mc-boot/GDynamicStrings.cc
@@ -255,12 +255,25 @@ extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned
 
 /*
    RIndex - returns the indice of the last occurance of, ch,
-            in String, s. The search starts at position, o.
-            -1 is returned if, ch, is not found.
+            in String, s.  The search starts at position, o.
+            -1 is returned if, ch, is not found.  The search
+            is performed left to right.
 */
 
 extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o);
 
+/*
+   ReverseIndex - returns the indice of the last occurance of ch
+                  in String s.  The search starts at position o
+                  and searches from right to left.  The start position
+                  may be indexed negatively from the right (-1 is the
+                  last index).
+                  The return value if ch is found will always be positive.
+                  -1 is returned if ch is not found.
+*/
+
+extern "C" int DynamicStrings_ReverseIndex (DynamicStrings_String s, char ch, int o);
+
 /*
    RemoveComment - assuming that, comment, is a comment delimiter
                    which indicates anything to its right is a comment
@@ -2177,8 +2190,9 @@ extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned
 
 /*
    RIndex - returns the indice of the last occurance of, ch,
-            in String, s. The search starts at position, o.
-            -1 is returned if, ch, is not found.
+            in String, s.  The search starts at position, o.
+            -1 is returned if, ch, is not found.  The search
+            is performed left to right.
 */
 
 extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o)
@@ -2227,6 +2241,52 @@ extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned
 }
 
 
+/*
+   ReverseIndex - returns the indice of the last occurance of ch
+                  in String s.  The search starts at position o
+                  and searches from right to left.  The start position
+                  may be indexed negatively from the right (-1 is the
+                  last index).
+                  The return value if ch is found will always be positive.
+                  -1 is returned if ch is not found.
+*/
+
+extern "C" int DynamicStrings_ReverseIndex (DynamicStrings_String s, char ch, int o)
+{
+  unsigned int c;
+
+  if (PoisonOn)
+    {
+      s = CheckPoisoned (s);
+    }
+  if (o < 0)
+    {
+      o = ((int ) (DynamicStrings_Length (s)))+o;
+      if (o < 0)
+        {
+          return -1;
+        }
+    }
+  if (((unsigned int ) (o)) < (DynamicStrings_Length (s)))
+    {
+      while (o >= 0)
+        {
+          if ((DynamicStrings_char (s, o)) == ch)
+            {
+              return o;
+            }
+          else
+            {
+              o -= 1;
+            }
+        }
+    }
+  return -1;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
 /*
    RemoveComment - assuming that, comment, is a comment delimiter
                    which indicates anything to its right is a comment
@@ -2251,7 +2311,7 @@ extern "C" DynamicStrings_String DynamicStrings_RemoveComment (DynamicStrings_St
     }
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1534, (const char *) "RemoveComment", 13);
+      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1576, (const char *) "RemoveComment", 13);
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2276,7 +2336,7 @@ extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePrefix (DynamicString
   s = DynamicStrings_Slice (s, (int ) (i), 0);
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1646, (const char *) "RemoveWhitePrefix", 17);
+      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1688, (const char *) "RemoveWhitePrefix", 17);
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2301,7 +2361,7 @@ extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePostfix (DynamicStrin
   s = DynamicStrings_Slice (s, 0, i+1);
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1668, (const char *) "RemoveWhitePostfix", 18);
+      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1710, (const char *) "RemoveWhitePostfix", 18);
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
diff --git a/gcc/m2/mc-boot/GDynamicStrings.h b/gcc/m2/mc-boot/GDynamicStrings.h
index 76f4cea6c81..e0652a7d3bd 100644
--- a/gcc/m2/mc-boot/GDynamicStrings.h
+++ b/gcc/m2/mc-boot/GDynamicStrings.h
@@ -194,12 +194,25 @@ EXTERN int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned int
 
 /*
    RIndex - returns the indice of the last occurance of, ch,
-            in String, s. The search starts at position, o.
-            -1 is returned if, ch, is not found.
+            in String, s.  The search starts at position, o.
+            -1 is returned if ch is not found.  The search
+            is performed left to right.
 */
 
 EXTERN int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o);
 
+/*
+   ReverseIndex - returns the indice of the last occurance of ch
+                  in String s.  The search starts at position o
+                  and searches from right to left.  The start position
+                  may be indexed negatively from the right (-1 is the
+                  last index).
+                  The return value if ch is found will always be positive.
+                  -1 is returned if ch is not found.
+*/
+
+EXTERN int DynamicStrings_ReverseIndex (DynamicStrings_String s, char ch, int o);
+
 /*
    RemoveComment - assuming that, comment, is a comment delimiter
                    which indicates anything to its right is a comment
diff --git a/gcc/m2/mc-boot/Galists.cc b/gcc/m2/mc-boot/Galists.cc
index 2505ab13361..238bcc87d50 100644
--- a/gcc/m2/mc-boot/Galists.cc
+++ b/gcc/m2/mc-boot/Galists.cc
@@ -137,6 +137,12 @@ extern "C" void alists_foreachItemInListDo (alists_alist l, alists_performOperat
 
 extern "C" alists_alist alists_duplicateList (alists_alist l);
 
+/*
+   equalList - returns TRUE if left contains the same information as right.
+*/
+
+extern "C" bool alists_equalList (alists_alist left, alists_alist right);
+
 /*
    removeItem - remove an element at index, i, from the alist data type.
 */
@@ -432,6 +438,43 @@ extern "C" alists_alist alists_duplicateList (alists_alist l)
   __builtin_unreachable ();
 }
 
+
+/*
+   equalList - returns TRUE if left contains the same information as right.
+*/
+
+extern "C" bool alists_equalList (alists_alist left, alists_alist right)
+{
+  unsigned int leftn;
+  unsigned int rightn;
+  unsigned int i;
+
+  leftn = alists_noOfItemsInList (left);
+  rightn = alists_noOfItemsInList (right);
+  if (leftn == rightn)
+    {
+      i = 1;
+      while (i <= leftn)
+        {
+          if (alists_isItemInList (right, alists_getItemFromList (left, i)))
+            {
+              i += 1;
+            }
+          else
+            {
+              return false;
+            }
+        }
+    }
+  else
+    {
+      return false;
+    }
+  return true;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
 extern "C" void _M2_alists_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Galists.h b/gcc/m2/mc-boot/Galists.h
index bd4557b6a51..3ed524152f4 100644
--- a/gcc/m2/mc-boot/Galists.h
+++ b/gcc/m2/mc-boot/Galists.h
@@ -124,6 +124,12 @@ EXTERN void alists_foreachItemInListDo (alists_alist l, alists_performOperation
 */
 
 EXTERN alists_alist alists_duplicateList (alists_alist l);
+
+/*
+   equalList - returns TRUE if left contains the same information as right.
+*/
+
+EXTERN bool alists_equalList (alists_alist left, alists_alist right);
 #   ifdef __cplusplus
 }
 #   endif
diff --git a/gcc/m2/mc-boot/Gdecl.cc b/gcc/m2/mc-boot/Gdecl.cc
index 654cb0f3120..bd43faebeac 100644
--- a/gcc/m2/mc-boot/Gdecl.cc
+++ b/gcc/m2/mc-boot/Gdecl.cc
@@ -46,12 +46,12 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 typedef unsigned int nameKey_Name;
 
 #   define nameKey_NulName 0
-typedef struct mcPretty_writeProc_p mcPretty_writeProc;
-
 typedef struct symbolKey__T8_r symbolKey__T8;
 
 typedef symbolKey__T8 *symbolKey_symbolTree;
 
+typedef struct mcPretty_writeProc_p mcPretty_writeProc;
+
 typedef struct mcPretty_writeLnProc_p mcPretty_writeLnProc;
 
 typedef unsigned int FIO_File;
@@ -61,12 +61,6 @@ extern FIO_File FIO_StdOut;
 typedef struct symbolKey_performOperation_p symbolKey_performOperation;
 
 #   define ASCII_tab ASCII_ht
-typedef struct alists__T13_r alists__T13;
-
-typedef alists__T13 *alists_alist;
-
-typedef struct alists__T14_a alists__T14;
-
 #   define ASCII_ht (char) 011
 #   define ASCII_lf ASCII_nl
 #   define ASCII_nl (char) 012
@@ -270,6 +264,10 @@ typedef struct decl_nodeProcedure_p decl_nodeProcedure;
 
 typedef struct decl_cnameT_r decl_cnameT;
 
+typedef struct decl__T15_r decl__T15;
+
+typedef decl__T15 *decl_group;
+
 #   define MaxBuf 127
 #   define maxNoOfElements 5
 typedef enum {decl_explist, decl_funccall, decl_exit, decl_return, decl_stmtseq, decl_comment, decl_halt, decl_new, decl_dispose, decl_inc, decl_dec, decl_incl, decl_excl, decl_length, decl_nil, decl_true, decl_false, decl_address, decl_loc, decl_byte, decl_word, decl_csizet, decl_cssizet, decl_char, decl_cardinal, decl_longcard, decl_shortcard, decl_integer, decl_longint, decl_shortint, decl_real, decl_longreal, decl_shortreal, decl_bitset, decl_boolean, decl_proc, decl_ztype, decl_rtype, decl_complex, decl_longcomplex, decl_shortcomplex, decl_type, decl_record, decl_varient, decl_var, decl_enumeration, decl_subrange, decl_array, decl_subscript, decl_string, decl_const, decl_literal, decl_varparam, decl_param, decl_varargs, decl_optarg, decl_pointer, decl_recordfield, decl_varientfield, decl_enumerationfield, decl_set, decl_proctype, decl_procedure, decl_def, decl_imp, decl_module, decl_loop, decl_while, decl_for, decl_repeat, decl_case, decl_caselabellist, decl_caselist, decl_range, decl_assignment, decl_if, decl_elsif, decl_constexp, decl_neg, decl_cast, decl_val, decl_plus, decl_sub, decl_div, decl_mod, decl_mult, decl_divide, decl_in, decl_adr, decl_size, decl_tsize, decl_ord, decl_float, decl_trunc, decl_chr, decl_abs, decl_cap, decl_high, decl_throw, decl_unreachable, decl_cmplx, decl_re, decl_im, decl_min, decl_max, decl_componentref, decl_pointerref, decl_arrayref, decl_deref, decl_equal, decl_notequal, decl_less, decl_greater, decl_greequal, decl_lessequal, decl_lsl, decl_lsr, decl_lor, decl_land, decl_lnot, decl_lxor, decl_and, decl_or, decl_not, decl_identlist, decl_vardecl, decl_setvalue} decl_nodeT;
@@ -298,13 +296,17 @@ typedef struct DynamicStrings_Contents_r DynamicStrings_Contents;
 
 typedef struct wlists__T9_r wlists__T9;
 
+typedef struct alists__T13_r alists__T13;
+
 typedef struct mcPretty__T12_r mcPretty__T12;
 
 typedef struct wlists__T10_a wlists__T10;
 
+typedef Indexing__T5 *Indexing_Index;
+
 typedef struct DynamicStrings__T7_a DynamicStrings__T7;
 
-typedef Indexing__T5 *Indexing_Index;
+typedef struct alists__T14_a alists__T14;
 
 typedef mcComment__T6 *mcComment_commentDesc;
 
@@ -314,10 +316,9 @@ typedef DynamicStrings_stringRecord *DynamicStrings_String;
 
 typedef wlists__T9 *wlists_wlist;
 
-typedef mcPretty__T12 *mcPretty_pretty;
+typedef alists__T13 *alists_alist;
 
-typedef void (*mcPretty_writeProc_t) (char);
-struct mcPretty_writeProc_p { mcPretty_writeProc_t proc; };
+typedef mcPretty__T12 *mcPretty_pretty;
 
 struct symbolKey__T8_r {
                          nameKey_Name name;
@@ -326,13 +327,15 @@ struct symbolKey__T8_r {
                          symbolKey_symbolTree right;
                        };
 
+typedef void (*mcPretty_writeProc_t) (char);
+struct mcPretty_writeProc_p { mcPretty_writeProc_t proc; };
+
 typedef void (*mcPretty_writeLnProc_t) (void);
 struct mcPretty_writeLnProc_p { mcPretty_writeLnProc_t proc; };
 
 typedef void (*symbolKey_performOperation_t) (void *);
 struct symbolKey_performOperation_p { symbolKey_performOperation_t proc; };
 
-struct alists__T14_a { void * array[MaxnoOfelements-1+1]; };
 typedef void (*Indexing_IndexProcedure_t) (void *);
 struct Indexing_IndexProcedure_p { Indexing_IndexProcedure_t proc; };
 
@@ -649,6 +652,13 @@ struct decl_cnameT_r {
                        bool init;
                      };
 
+struct decl__T15_r {
+                     alists_alist todoQ;
+                     alists_alist partialQ;
+                     alists_alist doneQ;
+                     decl_group next;
+                   };
+
 struct Indexing__T5_r {
                         void *ArrayStart;
                         unsigned int ArraySize;
@@ -668,12 +678,7 @@ struct mcComment__T6_r {
 
 struct wlists__T10_a { unsigned int array[maxNoOfElements-1+1]; };
 struct DynamicStrings__T7_a { char array[(MaxBuf-1)+1]; };
-struct alists__T13_r {
-                       unsigned int noOfelements;
-                       alists__T14 elements;
-                       alists_alist next;
-                     };
-
+struct alists__T14_a { void * array[MaxnoOfelements-1+1]; };
 struct decl_intrinsicT_r {
                            decl_node args;
                            unsigned int noArgs;
@@ -843,6 +848,12 @@ struct wlists__T9_r {
                       wlists_wlist next;
                     };
 
+struct alists__T13_r {
+                       unsigned int noOfelements;
+                       alists__T14 elements;
+                       alists_alist next;
+                     };
+
 struct mcPretty__T12_r {
                          mcPretty_writeProc write_;
                          mcPretty_writeLnProc writeln;
@@ -943,6 +954,8 @@ struct DynamicStrings_stringRecord_r {
                                        DynamicStrings_DebugInfo debug;
                                      };
 
+static decl_group freeGroup;
+static decl_group globalGroup;
 static FIO_File outputFile;
 static decl_language lang;
 static decl_node bitsperunitN;
@@ -1015,9 +1028,6 @@ static symbolKey_symbolTree defUniverse;
 static symbolKey_symbolTree baseSymbols;
 static decl_outputStates outputState;
 static mcPretty_pretty doP;
-static alists_alist todoQ;
-static alists_alist partialQ;
-static alists_alist doneQ;
 static bool mustVisitScope;
 static bool simplified;
 static unsigned int tempCount;
@@ -2584,12 +2594,25 @@ extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned
 
 /*
    RIndex - returns the indice of the last occurance of, ch,
-            in String, s. The search starts at position, o.
-            -1 is returned if, ch, is not found.
+            in String, s.  The search starts at position, o.
+            -1 is returned if, ch, is not found.  The search
+            is performed left to right.
 */
 
 extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o);
 
+/*
+   ReverseIndex - returns the indice of the last occurance of ch
+                  in String s.  The search starts at position o
+                  and searches from right to left.  The start position
+                  may be indexed negatively from the right (-1 is the
+                  last index).
+                  The return value if ch is found will always be positive.
+                  -1 is returned if ch is not found.
+*/
+
+extern "C" int DynamicStrings_ReverseIndex (DynamicStrings_String s, char ch, int o);
+
 /*
    RemoveComment - assuming that, comment, is a comment delimiter
                    which indicates anything to its right is a comment
@@ -3251,6 +3274,12 @@ extern "C" void alists_foreachItemInListDo (alists_alist l, alists_performOperat
 
 extern "C" alists_alist alists_duplicateList (alists_alist l);
 
+/*
+   equalList - returns TRUE if left contains the same information as right.
+*/
+
+extern "C" bool alists_equalList (alists_alist left, alists_alist right);
+
 /*
    initList - creates a new wlist, l.
 */
@@ -3432,6 +3461,37 @@ static decl_node newNode (decl_nodeT k);
 
 static void disposeNode (decl_node *n);
 
+/*
+   newGroup -
+*/
+
+static void newGroup (decl_group *g);
+
+/*
+   initGroup - returns a group which with all lists initialized.
+*/
+
+static decl_group initGroup (void);
+
+/*
+   killGroup - deallocate the group and place the group record into the freeGroup list.
+*/
+
+static void killGroup (decl_group *g);
+
+/*
+   dupGroup - If g is not NIL then destroy g.
+              Return a duplicate of GlobalGroup (not g).
+*/
+
+static decl_group dupGroup (decl_group g);
+
+/*
+   equalGroup - return TRUE if group left = right.
+*/
+
+static bool equalGroup (decl_group left, decl_group right);
+
 /*
    isLocal - returns TRUE if symbol, n, is locally declared in a procedure.
 */
@@ -6215,7 +6275,8 @@ static void addEnumConst (decl_node n);
 static void populateTodo (decl_nodeProcedure p);
 
 /*
-   topologicallyOut -
+   topologicallyOut - keep trying to resolve the todoQ and partialQ
+                      until there is no change from the global group.
 */
 
 static void topologicallyOut (decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v, decl_nodeProcedure tp, decl_nodeProcedure pc, decl_nodeProcedure pt, decl_nodeProcedure pv);
@@ -6721,6 +6782,93 @@ static void disposeNode (decl_node *n)
 }
 
 
+/*
+   newGroup -
+*/
+
+static void newGroup (decl_group *g)
+{
+  if (freeGroup == NULL)
+    {
+      Storage_ALLOCATE ((void **) &(*g), sizeof (decl__T15));
+    }
+  else
+    {
+      (*g) = freeGroup;
+      freeGroup = freeGroup->next;
+    }
+}
+
+
+/*
+   initGroup - returns a group which with all lists initialized.
+*/
+
+static decl_group initGroup (void)
+{
+  decl_group g;
+
+  newGroup (&g);
+  g->todoQ = alists_initList ();
+  g->partialQ = alists_initList ();
+  g->doneQ = alists_initList ();
+  g->next = NULL;
+  return g;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
+/*
+   killGroup - deallocate the group and place the group record into the freeGroup list.
+*/
+
+static void killGroup (decl_group *g)
+{
+  alists_killList (&(*g)->todoQ);
+  alists_killList (&(*g)->partialQ);
+  alists_killList (&(*g)->doneQ);
+  (*g)->next = freeGroup;
+  freeGroup = (*g);
+}
+
+
+/*
+   dupGroup - If g is not NIL then destroy g.
+              Return a duplicate of GlobalGroup (not g).
+*/
+
+static decl_group dupGroup (decl_group g)
+{
+  if (g != NULL)
+    {
+      /* Kill old group.  */
+      killGroup (&g);
+    }
+  newGroup (&g);
+  /* Copy all lists.  */
+  g->todoQ = alists_duplicateList (globalGroup->todoQ);
+  g->partialQ = alists_duplicateList (globalGroup->partialQ);
+  g->doneQ = alists_duplicateList (globalGroup->doneQ);
+  g->next = NULL;
+  return g;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
+/*
+   equalGroup - return TRUE if group left = right.
+*/
+
+static bool equalGroup (decl_group left, decl_group right)
+{
+  return (left == right) || (((alists_equalList (left->todoQ, right->todoQ)) && (alists_equalList (left->partialQ, right->partialQ))) && (alists_equalList (left->doneQ, right->doneQ)));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
 /*
    isLocal - returns TRUE if symbol, n, is locally declared in a procedure.
 */
@@ -9531,14 +9679,14 @@ static void doNothing (decl_node n)
 
 static void doConstC (decl_node n)
 {
-  if (! (alists_isItemInList (doneQ, reinterpret_cast<void *> (n))))
+  if (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n))))
     {
       mcPretty_print (doP, (const char *) "#   define ", 11);
       doFQNameC (doP, n);
       mcPretty_setNeedSpace (doP);
       doExprC (doP, n->constF.value);
       mcPretty_print (doP, (const char *) "\\n", 2);
-      alists_includeItemIntoList (doneQ, reinterpret_cast<void *> (n));
+      alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (n));
     }
 }
 
@@ -13554,12 +13702,12 @@ static void doPrototypeC (decl_node n)
 
 static void addTodo (decl_node n)
 {
-  if (((n != NULL) && (! (alists_isItemInList (partialQ, reinterpret_cast<void *> (n))))) && (! (alists_isItemInList (doneQ, reinterpret_cast<void *> (n)))))
+  if (((n != NULL) && (! (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (n))))) && (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n)))))
     {
       mcDebug_assert (! (decl_isVarient (n)));
       mcDebug_assert (! (decl_isVarientField (n)));
       mcDebug_assert (! (decl_isDef (n)));
-      alists_includeItemIntoList (todoQ, reinterpret_cast<void *> (n));
+      alists_includeItemIntoList (globalGroup->todoQ, reinterpret_cast<void *> (n));
     }
 }
 
@@ -17320,7 +17468,7 @@ static decl_dependentState allDependants (decl_node n)
 
 static decl_dependentState walkDependants (alists_alist l, decl_node n)
 {
-  if ((n == NULL) || (alists_isItemInList (doneQ, reinterpret_cast<void *> (n))))
+  if ((n == NULL) || (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n))))
     {
       return decl_completed;
     }
@@ -17349,11 +17497,11 @@ static decl_dependentState walkType (alists_alist l, decl_node n)
   decl_node t;
 
   t = decl_getType (n);
-  if (alists_isItemInList (doneQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t)))
     {
       return decl_completed;
     }
-  else if (alists_isItemInList (partialQ, reinterpret_cast<void *> (t)))
+  else if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {
       /* avoid dangling else.  */
       return decl_blocked;
@@ -17458,18 +17606,18 @@ static void dbq (decl_node n)
   if (mcOptions_getDebugTopological ())
     {
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-      if (alists_isItemInList (todoQ, reinterpret_cast<void *> (n)))
+      if (alists_isItemInList (globalGroup->todoQ, reinterpret_cast<void *> (n)))
         {
           db ((const char *) "{T", 2, n);
           outText (doP, (const char *) "}", 1);
         }
-      else if (alists_isItemInList (partialQ, reinterpret_cast<void *> (n)))
+      else if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (n)))
         {
           /* avoid dangling else.  */
           db ((const char *) "{P", 2, n);
           outText (doP, (const char *) "}", 1);
         }
-      else if (alists_isItemInList (doneQ, reinterpret_cast<void *> (n)))
+      else if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n)))
         {
           /* avoid dangling else.  */
           db ((const char *) "{D", 2, n);
@@ -17577,7 +17725,7 @@ static decl_dependentState walkVarient (alists_alist l, decl_node n)
 
 static void queueBlocked (decl_node n)
 {
-  if (! ((alists_isItemInList (doneQ, reinterpret_cast<void *> (n))) || (alists_isItemInList (partialQ, reinterpret_cast<void *> (n)))))
+  if (! ((alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n))) || (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (n)))))
     {
       addTodo (n);
     }
@@ -17593,7 +17741,7 @@ static decl_dependentState walkVar (alists_alist l, decl_node n)
   decl_node t;
 
   t = decl_getType (n);
-  if (alists_isItemInList (doneQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t)))
     {
       return decl_completed;
     }
@@ -17700,7 +17848,7 @@ static decl_dependentState walkPointer (alists_alist l, decl_node n)
 
   /* if the type of, n, is done or partial then we can output pointer.  */
   t = decl_getType (n);
-  if ((alists_isItemInList (partialQ, reinterpret_cast<void *> (t))) || (alists_isItemInList (doneQ, reinterpret_cast<void *> (t))))
+  if ((alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t))) || (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t))))
     {
       /* pointer to partial can always generate a complete type.  */
       return decl_completed;
@@ -17720,7 +17868,7 @@ static decl_dependentState walkArray (alists_alist l, decl_node n)
   decl_dependentState s;
 
   /* an array can only be declared if its data type has already been emitted.  */
-  if (! (alists_isItemInList (doneQ, reinterpret_cast<void *> (n->arrayF.type))))
+  if (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n->arrayF.type))))
     {
       s = walkDependants (l, n->arrayF.type);
       queueBlocked (n->arrayF.type);
@@ -17773,7 +17921,7 @@ static decl_dependentState walkVarParam (alists_alist l, decl_node n)
   decl_node t;
 
   t = decl_getType (n);
-  if (alists_isItemInList (partialQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {
       /* parameter can be issued from a partial.  */
       return decl_completed;
@@ -17793,7 +17941,7 @@ static decl_dependentState walkParam (alists_alist l, decl_node n)
   decl_node t;
 
   t = decl_getType (n);
-  if (alists_isItemInList (partialQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {
       /* parameter can be issued from a partial.  */
       return decl_completed;
@@ -17813,7 +17961,7 @@ static decl_dependentState walkOptarg (alists_alist l, decl_node n)
   decl_node t;
 
   t = decl_getType (n);
-  if (alists_isItemInList (partialQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {
       /* parameter can be issued from a partial.  */
       return decl_completed;
@@ -17835,12 +17983,12 @@ static decl_dependentState walkRecordField (alists_alist l, decl_node n)
 
   mcDebug_assert (decl_isRecordField (n));
   t = decl_getType (n);
-  if (alists_isItemInList (partialQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {
       dbs (decl_partial, n);
       return decl_partial;
     }
-  else if (alists_isItemInList (doneQ, reinterpret_cast<void *> (t)))
+  else if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t)))
     {
       /* avoid dangling else.  */
       dbs (decl_completed, n);
@@ -17928,7 +18076,7 @@ static decl_dependentState walkProcType (alists_alist l, decl_node n)
   decl_node t;
 
   t = decl_getType (n);
-  if (alists_isItemInList (partialQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {}  /* empty.  */
   else
     {
@@ -18377,7 +18525,7 @@ static bool tryCompleteFromPartial (decl_node n, decl_nodeProcedure t)
 {
   if ((((decl_isType (n)) && ((decl_getType (n)) != NULL)) && (decl_isPointer (decl_getType (n)))) && ((allDependants (decl_getType (n))) == decl_completed))
     {
-      /* alists.includeItemIntoList (partialQ, getType (n)) ;  */
+      /* alists.includeItemIntoList (globalGroup^.partialQ, getType (n)) ;  */
       outputHiddenComplete (n);
       return true;
     }
@@ -19854,9 +20002,9 @@ static void dumpLists (void)
     {
       m = FormatStrings_Sprintf0 (DynamicStrings_InitString ((const char *) "\\n", 2));
       m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, m));
-      dumpQ ((const char *) "todo", 4, todoQ);
-      dumpQ ((const char *) "partial", 7, partialQ);
-      dumpQ ((const char *) "done", 4, doneQ);
+      dumpQ ((const char *) "todo", 4, globalGroup->todoQ);
+      dumpQ ((const char *) "partial", 7, globalGroup->partialQ);
+      dumpQ ((const char *) "done", 4, globalGroup->doneQ);
     }
 }
 
@@ -20011,21 +20159,21 @@ static void tryOutputTodo (decl_nodeProcedure c, decl_nodeProcedure t, decl_node
   decl_node d;
 
   i = 1;
-  n = alists_noOfItemsInList (todoQ);
+  n = alists_noOfItemsInList (globalGroup->todoQ);
   while (i <= n)
     {
-      d = static_cast<decl_node> (alists_getItemFromList (todoQ, i));
+      d = static_cast<decl_node> (alists_getItemFromList (globalGroup->todoQ, i));
       if (tryComplete (d, c, t, v))
         {
-          alists_removeItemFromList (todoQ, reinterpret_cast<void *> (d));
-          alists_includeItemIntoList (doneQ, reinterpret_cast<void *> (d));
+          alists_removeItemFromList (globalGroup->todoQ, reinterpret_cast<void *> (d));
+          alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (d));
           i = 1;
         }
       else if (tryPartial (d, pt))
         {
           /* avoid dangling else.  */
-          alists_removeItemFromList (todoQ, reinterpret_cast<void *> (d));
-          alists_includeItemIntoList (partialQ, reinterpret_cast<void *> (d));
+          alists_removeItemFromList (globalGroup->todoQ, reinterpret_cast<void *> (d));
+          alists_includeItemIntoList (globalGroup->partialQ, reinterpret_cast<void *> (d));
           i = 1;
         }
       else
@@ -20033,7 +20181,7 @@ static void tryOutputTodo (decl_nodeProcedure c, decl_nodeProcedure t, decl_node
           /* avoid dangling else.  */
           i += 1;
         }
-      n = alists_noOfItemsInList (todoQ);
+      n = alists_noOfItemsInList (globalGroup->todoQ);
     }
 }
 
@@ -20049,14 +20197,14 @@ static void tryOutputPartial (decl_nodeProcedure t)
   decl_node d;
 
   i = 1;
-  n = alists_noOfItemsInList (partialQ);
+  n = alists_noOfItemsInList (globalGroup->partialQ);
   while (i <= n)
     {
-      d = static_cast<decl_node> (alists_getItemFromList (partialQ, i));
+      d = static_cast<decl_node> (alists_getItemFromList (globalGroup->partialQ, i));
       if (tryCompleteFromPartial (d, t))
         {
-          alists_removeItemFromList (partialQ, reinterpret_cast<void *> (d));
-          alists_includeItemIntoList (doneQ, reinterpret_cast<void *> (d));
+          alists_removeItemFromList (globalGroup->partialQ, reinterpret_cast<void *> (d));
+          alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (d));
           i = 1;
           n -= 1;
         }
@@ -20105,8 +20253,8 @@ static void debugLists (void)
 {
   if (mcOptions_getDebugTopological ())
     {
-      debugList ((const char *) "todo", 4, todoQ);
-      debugList ((const char *) "partial", 7, partialQ);
+      debugList ((const char *) "todo", 4, globalGroup->todoQ);
+      debugList ((const char *) "partial", 7, globalGroup->partialQ);
     }
 }
 
@@ -20137,47 +20285,39 @@ static void populateTodo (decl_nodeProcedure p)
   unsigned int h;
   alists_alist l;
 
-  h = alists_noOfItemsInList (todoQ);
+  h = alists_noOfItemsInList (globalGroup->todoQ);
   i = 1;
   while (i <= h)
     {
-      n = static_cast<decl_node> (alists_getItemFromList (todoQ, i));
+      n = static_cast<decl_node> (alists_getItemFromList (globalGroup->todoQ, i));
       l = alists_initList ();
       visitNode (l, n, p);
       alists_killList (&l);
-      h = alists_noOfItemsInList (todoQ);
+      h = alists_noOfItemsInList (globalGroup->todoQ);
       i += 1;
     }
 }
 
 
 /*
-   topologicallyOut -
+   topologicallyOut - keep trying to resolve the todoQ and partialQ
+                      until there is no change from the global group.
 */
 
 static void topologicallyOut (decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v, decl_nodeProcedure tp, decl_nodeProcedure pc, decl_nodeProcedure pt, decl_nodeProcedure pv)
 {
-  unsigned int tol;
-  unsigned int pal;
-  unsigned int to;
-  unsigned int pa;
+  decl_group before;
 
   populateTodo ((decl_nodeProcedure) {(decl_nodeProcedure_t) addEnumConst});
-  tol = 0;
-  pal = 0;
-  to = alists_noOfItemsInList (todoQ);
-  pa = alists_noOfItemsInList (partialQ);
-  while ((tol != to) || (pal != pa))
-    {
-      dumpLists ();
-      tryOutputTodo (c, t, v, tp);
-      dumpLists ();
-      tryOutputPartial (pt);
-      tol = to;
-      pal = pa;
-      to = alists_noOfItemsInList (todoQ);
-      pa = alists_noOfItemsInList (partialQ);
-    }
+  before = NULL;
+  do {
+    before = dupGroup (before);  /* Get a copy of the globalGroup and free before.  */
+    dumpLists ();  /* Get a copy of the globalGroup and free before.  */
+    tryOutputTodo (c, t, v, tp);
+    dumpLists ();
+    tryOutputPartial (pt);
+  } while (! (equalGroup (before, globalGroup)));
+  killGroup (&before);
   dumpLists ();
   debugLists ();
 }
@@ -21414,7 +21554,7 @@ static void outM2 (mcPretty_pretty p, decl_node n)
 
 static void addDone (decl_node n)
 {
-  alists_includeItemIntoList (doneQ, reinterpret_cast<void *> (n));
+  alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (n));
 }
 
 
@@ -21430,7 +21570,7 @@ static void addDoneDef (decl_node n)
       addDone (n);
       return ;
     }
-  if ((! (decl_isDef (n))) && ((decl_lookupImp (decl_getSymName (decl_getScope (n)))) == (decl_getMainModule ())))
+  if (false && ((decl_lookupImp (decl_getSymName (decl_getScope (n)))) == (decl_getMainModule ())))
     {
       mcMetaError_metaError1 ((const char *) "cyclic dependancy found between another module using {%1ad} from the definition module of the implementation main being compiled, use the --extended-opaque option to compile", 173, (const unsigned char *) &n, (sizeof (n)-1));
       mcError_flushErrors ();
@@ -22409,9 +22549,8 @@ static void init (void)
   lang = decl_ansiC;
   outputFile = FIO_StdOut;
   doP = mcPretty_initPretty ((mcPretty_writeProc) {(mcPretty_writeProc_t) write_}, (mcPretty_writeLnProc) {(mcPretty_writeLnProc_t) writeln});
-  todoQ = alists_initList ();
-  partialQ = alists_initList ();
-  doneQ = alists_initList ();
+  freeGroup = NULL;
+  globalGroup = initGroup ();
   modUniverse = symbolKey_initTree ();
   defUniverse = symbolKey_initTree ();
   modUniverseI = Indexing_InitIndex (1);
diff --git a/gcc/m2/mc/alists.def b/gcc/m2/mc/alists.def
index 878fc88d6dc..93bc56d1e78 100644
--- a/gcc/m2/mc/alists.def
+++ b/gcc/m2/mc/alists.def
@@ -109,4 +109,11 @@ PROCEDURE foreachItemInListDo (l: alist; p: performOperation) ;
 PROCEDURE duplicateList (l: alist) : alist ;
 
 
+(*
+   equalList - returns TRUE if left contains the same information as right.
+*)
+
+PROCEDURE equalList (left, right: alist) : BOOLEAN ;
+
+
 END alists.
diff --git a/gcc/m2/mc/alists.mod b/gcc/m2/mc/alists.mod
index 048ce1f7978..5a56ec03c2b 100644
--- a/gcc/m2/mc/alists.mod
+++ b/gcc/m2/mc/alists.mod
@@ -302,4 +302,32 @@ BEGIN
 END duplicateList ;
 
 
+(*
+   equalList - returns TRUE if left contains the same information as right.
+*)
+
+PROCEDURE equalList (left, right: alist) : BOOLEAN ;
+VAR
+   leftn, rightn, i: CARDINAL ;
+BEGIN
+   leftn := noOfItemsInList (left) ;
+   rightn := noOfItemsInList (right) ;
+   IF leftn = rightn
+   THEN
+      i := 1 ;
+      WHILE i <= leftn DO
+         IF isItemInList (right, getItemFromList (left, i))
+         THEN
+            INC (i)
+         ELSE
+            RETURN FALSE
+         END
+      END
+   ELSE
+      RETURN FALSE
+   END ;
+   RETURN TRUE
+END equalList ;
+
+
 END alists.
diff --git a/gcc/m2/mc/decl.mod b/gcc/m2/mc/decl.mod
index 3d1b57fb4ae..c3ee646caaf 100644
--- a/gcc/m2/mc/decl.mod
+++ b/gcc/m2/mc/decl.mod
@@ -682,7 +682,17 @@ TYPE
                    init :  BOOLEAN ;
                 END ;
 
+       group = POINTER TO RECORD
+                             todoQ,
+                             partialQ,
+                             doneQ   : alist ;
+                             next    : group ;
+                          END ;
+
+
 VAR
+   freeGroup,
+   globalGroup   : group ;    (* The global group of all alists.  *)
    outputFile    : File ;
    lang          : language ;
    bitsperunitN,
@@ -755,9 +765,6 @@ VAR
    baseSymbols   : symbolTree ;
    outputState   : outputStates ;
    doP           : pretty ;
-   todoQ,
-   partialQ,
-   doneQ         : alist ;
    mustVisitScope,
    simplified    : BOOLEAN ;
    tempCount     : CARDINAL ;
@@ -800,6 +807,92 @@ BEGIN
 END disposeNode ;
 
 
+(*
+   newGroup -
+*)
+
+PROCEDURE newGroup (VAR g: group) ;
+BEGIN
+   IF freeGroup = NIL
+   THEN
+      NEW (g)
+   ELSE
+      g := freeGroup ;
+      freeGroup := freeGroup^.next
+   END
+END newGroup ;
+
+
+(*
+   initGroup - returns a group which with all lists initialized.
+*)
+
+PROCEDURE initGroup () : group ;
+VAR
+   g: group ;
+BEGIN
+   newGroup (g) ;
+   WITH g^ DO
+      todoQ := alists.initList () ;
+      partialQ := alists.initList () ;
+      doneQ := alists.initList () ;
+      next := NIL
+   END ;
+   RETURN g
+END initGroup ;
+
+
+(*
+   killGroup - deallocate the group and place the group record into the freeGroup list.
+*)
+
+PROCEDURE killGroup (VAR g: group) ;
+BEGIN
+   alists.killList (g^.todoQ) ;
+   alists.killList (g^.partialQ) ;
+   alists.killList (g^.doneQ) ;
+   g^.next := freeGroup ;
+   freeGroup := g ;
+END killGroup ;
+
+
+(*
+   dupGroup - If g is not NIL then destroy g.
+              Return a duplicate of GlobalGroup (not g).
+*)
+
+PROCEDURE dupGroup (g: group) : group ;
+BEGIN
+   IF g # NIL
+   THEN
+      (* Kill old group.  *)
+      killGroup (g)
+   END ;
+   newGroup (g) ;
+   WITH g^ DO
+      (* Copy all lists.  *)
+      todoQ := alists.duplicateList (globalGroup^.todoQ) ;
+      partialQ := alists.duplicateList (globalGroup^.partialQ) ;
+      doneQ := alists.duplicateList (globalGroup^.doneQ) ;
+      next := NIL
+   END ;
+   RETURN g
+END dupGroup ;
+
+
+(*
+   equalGroup - return TRUE if group left = right.
+*)
+
+PROCEDURE equalGroup (left, right: group) : BOOLEAN ;
+BEGIN
+   RETURN ((left = right) OR
+           (alists.equalList (left^.todoQ, right^.todoQ) AND
+            alists.equalList (left^.partialQ, right^.partialQ) AND
+            alists.equalList (left^.doneQ, right^.doneQ)))
+END equalGroup ;
+
+
 (*
    getDeclaredDef - returns the token number associated with the nodes declaration
                     in the definition module.
@@ -5659,14 +5752,14 @@ END doNothing ;
 
 PROCEDURE doConstC (n: node) ;
 BEGIN
-   IF NOT alists.isItemInList (doneQ, n)
+   IF NOT alists.isItemInList (globalGroup^.doneQ, n)
    THEN
       print (doP, "#   define ") ;
       doFQNameC (doP, n) ;
       setNeedSpace (doP) ;
       doExprC (doP, n^.constF.value) ;
       print (doP, '\n') ;
-      alists.includeItemIntoList (doneQ, n)
+      alists.includeItemIntoList (globalGroup^.doneQ, n)
    END
 END doConstC ;
 
@@ -8602,13 +8695,13 @@ END doPrototypeC ;
 PROCEDURE addTodo (n: node) ;
 BEGIN
    IF (n#NIL) AND
-      (NOT alists.isItemInList (partialQ, n)) AND
-      (NOT alists.isItemInList (doneQ, n))
+      (NOT alists.isItemInList (globalGroup^.partialQ, n)) AND
+      (NOT alists.isItemInList (globalGroup^.doneQ, n))
    THEN
       assert (NOT isVarient (n)) ;
       assert (NOT isVarientField (n)) ;
       assert (NOT isDef (n)) ;
-      alists.includeItemIntoList (todoQ, n)
+      alists.includeItemIntoList (globalGroup^.todoQ, n)
    END
 END addTodo ;
 
@@ -11932,7 +12025,7 @@ END allDependants ;
 
 PROCEDURE walkDependants (l: alist; n: node) : dependentState ;
 BEGIN
-   IF (n=NIL) OR alists.isItemInList (doneQ, n)
+   IF (n=NIL) OR alists.isItemInList (globalGroup^.doneQ, n)
    THEN
       RETURN completed
    ELSIF alists.isItemInList (l, n)
@@ -11954,10 +12047,10 @@ VAR
    t: node ;
 BEGIN
    t := getType (n) ;
-   IF alists.isItemInList (doneQ, t)
+   IF alists.isItemInList (globalGroup^.doneQ, t)
    THEN
       RETURN completed
-   ELSIF alists.isItemInList (partialQ, t)
+   ELSIF alists.isItemInList (globalGroup^.partialQ, t)
    THEN
       RETURN blocked
    ELSE
@@ -12030,13 +12123,13 @@ PROCEDURE dbq (n: node) ;
 BEGIN
    IF getDebugTopological ()
    THEN
-      IF alists.isItemInList (todoQ, n)
+      IF alists.isItemInList (globalGroup^.todoQ, n)
       THEN
          db ('{T', n) ; outText (doP, '}')
-      ELSIF alists.isItemInList (partialQ, n)
+      ELSIF alists.isItemInList (globalGroup^.partialQ, n)
       THEN
          db ('{P', n) ; outText (doP, '}')
-      ELSIF alists.isItemInList (doneQ, n)
+      ELSIF alists.isItemInList (globalGroup^.doneQ, n)
       THEN
          db ('{D', n) ; outText (doP, '}')
       END
@@ -12129,7 +12222,8 @@ END walkVarient ;
 
 PROCEDURE queueBlocked (n: node) ;
 BEGIN
-   IF NOT (alists.isItemInList (doneQ, n) OR alists.isItemInList (partialQ, n))
+   IF NOT (alists.isItemInList (globalGroup^.doneQ, n) OR
+           alists.isItemInList (globalGroup^.partialQ, n))
    THEN
       addTodo (n)
    END
@@ -12145,7 +12239,7 @@ VAR
    t: node ;
 BEGIN
    t := getType (n) ;
-   IF alists.isItemInList (doneQ, t)
+   IF alists.isItemInList (globalGroup^.doneQ, t)
    THEN
       RETURN completed
    ELSE
@@ -12244,7 +12338,8 @@ VAR
 BEGIN
    (* if the type of, n, is done or partial then we can output pointer.  *)
    t := getType (n) ;
-   IF alists.isItemInList (partialQ, t) OR alists.isItemInList (doneQ, t)
+   IF alists.isItemInList (globalGroup^.partialQ, t) OR
+      alists.isItemInList (globalGroup^.doneQ, t)
    THEN
       (* pointer to partial can always generate a complete type.  *)
       RETURN completed
@@ -12270,7 +12365,7 @@ BEGIN
       END ;
 *)
       (* an array can only be declared if its data type has already been emitted.  *)
-      IF NOT alists.isItemInList (doneQ, type)
+      IF NOT alists.isItemInList (globalGroup^.doneQ, type)
       THEN
          s := walkDependants (l, type) ;
          queueBlocked (type) ;
@@ -12320,7 +12415,7 @@ VAR
    t: node ;
 BEGIN
    t := getType (n) ;
-   IF alists.isItemInList (partialQ, t)
+   IF alists.isItemInList (globalGroup^.partialQ, t)
    THEN
       (* parameter can be issued from a partial.  *)
       RETURN completed
@@ -12338,7 +12433,7 @@ VAR
    t: node ;
 BEGIN
    t := getType (n) ;
-   IF alists.isItemInList (partialQ, t)
+   IF alists.isItemInList (globalGroup^.partialQ, t)
    THEN
       (* parameter can be issued from a partial.  *)
       RETURN completed
@@ -12356,7 +12451,7 @@ VAR
    t: node ;
 BEGIN
    t := getType (n) ;
-   IF alists.isItemInList (partialQ, t)
+   IF alists.isItemInList (globalGroup^.partialQ, t)
    THEN
       (* parameter can be issued from a partial.  *)
       RETURN completed
@@ -12376,11 +12471,11 @@ VAR
 BEGIN
    assert (isRecordField (n)) ;
    t := getType (n) ;
-   IF alists.isItemInList (partialQ, t)
+   IF alists.isItemInList (globalGroup^.partialQ, t)
    THEN
       dbs (partial, n) ;
       RETURN partial
-   ELSIF alists.isItemInList (doneQ, t)
+   ELSIF alists.isItemInList (globalGroup^.doneQ, t)
    THEN
       dbs (completed, n) ;
       RETURN completed
@@ -12454,7 +12549,7 @@ VAR
    t: node ;
 BEGIN
    t := getType (n) ;
-   IF alists.isItemInList (partialQ, t)
+   IF alists.isItemInList (globalGroup^.partialQ, t)
    THEN
       (* proctype can be generated from partial types.  *)
    ELSE
@@ -12787,7 +12882,7 @@ PROCEDURE tryCompleteFromPartial (n: node; t: nodeProcedure) : BOOLEAN ;
 BEGIN
    IF isType (n) AND (getType (n)#NIL) AND isPointer (getType (n)) AND (allDependants (getType (n)) = completed)
    THEN
-      (* alists.includeItemIntoList (partialQ, getType (n)) ; *)
+      (* alists.includeItemIntoList (globalGroup^.partialQ, getType (n)) ; *)
       outputHiddenComplete (n) ;
       RETURN TRUE
    ELSIF allDependants (n) = completed
@@ -13824,9 +13919,9 @@ BEGIN
    THEN
       m := Sprintf0 (InitString ('\n')) ;
       m := KillString (WriteS (StdOut, m)) ;
-      dumpQ ('todo', todoQ) ;
-      dumpQ ('partial', partialQ) ;
-      dumpQ ('done', doneQ)
+      dumpQ ('todo', globalGroup^.todoQ) ;
+      dumpQ ('partial', globalGroup^.partialQ) ;
+      dumpQ ('done', globalGroup^.doneQ)
    END
 END dumpLists ;
 
@@ -13885,7 +13980,8 @@ BEGIN
             pt (n) ;
             addTodo (q) ;
             RETURN TRUE
-         ELSIF isArray (q) AND (seenPointer OR alists.isItemInList (doneQ, getType (q)))
+         ELSIF isArray (q) AND (seenPointer OR
+                                alists.isItemInList (globalGroup^.doneQ, getType (q)))
          THEN
             pt (n) ;
             addTodo (q) ;
@@ -13997,23 +14093,23 @@ VAR
    d   : node ;
 BEGIN
    i := 1 ;
-   n := alists.noOfItemsInList (todoQ) ;
+   n := alists.noOfItemsInList (globalGroup^.todoQ) ;
    WHILE i<=n DO
-      d := alists.getItemFromList (todoQ, i) ;
+      d := alists.getItemFromList (globalGroup^.todoQ, i) ;
       IF tryComplete (d, c, t, v)
       THEN
-         alists.removeItemFromList (todoQ, d) ;
-	 alists.includeItemIntoList (doneQ, d) ;
+         alists.removeItemFromList (globalGroup^.todoQ, d) ;
+	 alists.includeItemIntoList (globalGroup^.doneQ, d) ;
          i := 1
       ELSIF tryPartial (d, pt)
       THEN
-         alists.removeItemFromList (todoQ, d) ;
-         alists.includeItemIntoList (partialQ, d) ;
+         alists.removeItemFromList (globalGroup^.todoQ, d) ;
+         alists.includeItemIntoList (globalGroup^.partialQ, d) ;
          i := 1
       ELSE
          INC (i)
       END ;
-      n := alists.noOfItemsInList (todoQ)
+      n := alists.noOfItemsInList (globalGroup^.todoQ)
    END
 END tryOutputTodo ;
 
@@ -14028,13 +14124,13 @@ VAR
    d   : node ;
 BEGIN
    i := 1 ;
-   n := alists.noOfItemsInList (partialQ) ;
+   n := alists.noOfItemsInList (globalGroup^.partialQ) ;
    WHILE i<=n DO
-      d := alists.getItemFromList (partialQ, i) ;
+      d := alists.getItemFromList (globalGroup^.partialQ, i) ;
       IF tryCompleteFromPartial (d, t)
       THEN
-         alists.removeItemFromList (partialQ, d) ;
-         alists.includeItemIntoList (doneQ, d) ;
+         alists.removeItemFromList (globalGroup^.partialQ, d) ;
+         alists.includeItemIntoList (globalGroup^.doneQ, d) ;
          i := 1 ;
          DEC (n)
       ELSE
@@ -14076,8 +14172,8 @@ PROCEDURE debugLists ;
 BEGIN
    IF getDebugTopological ()
    THEN
-      debugList ('todo', todoQ) ;
-      debugList ('partial', partialQ)
+      debugList ('todo', globalGroup^.todoQ) ;
+      debugList ('partial', globalGroup^.partialQ)
    END
 END debugLists ;
 
@@ -14107,44 +14203,39 @@ VAR
    i, h: CARDINAL ;
    l   : alist ;
 BEGIN
-   h := alists.noOfItemsInList (todoQ) ;
+   h := alists.noOfItemsInList (globalGroup^.todoQ) ;
    i := 1 ;
    WHILE i <= h DO
-      n := alists.getItemFromList (todoQ, i) ;
+      n := alists.getItemFromList (globalGroup^.todoQ, i) ;
       l := alists.initList () ;
       visitNode (l, n, p) ;
       alists.killList (l) ;
-      h := alists.noOfItemsInList (todoQ) ;
+      h := alists.noOfItemsInList (globalGroup^.todoQ) ;
       INC (i)
    END
 END populateTodo ;
 
 
 (*
-   topologicallyOut -
+   topologicallyOut - keep trying to resolve the todoQ and partialQ
+                      until there is no change from the global group.
 *)
 
 PROCEDURE topologicallyOut (c, t, v, tp,
                             pc, pt, pv: nodeProcedure) ;
 VAR
-   tol, pal,
-   to,  pa : CARDINAL ;
+   before: group ;
 BEGIN
    populateTodo (addEnumConst) ;
-   tol := 0 ;
-   pal := 0 ;
-   to := alists.noOfItemsInList (todoQ) ;
-   pa := alists.noOfItemsInList (partialQ) ;
-   WHILE (tol#to) OR (pal#pa) DO
+   before := NIL ;
+   REPEAT
+      before := dupGroup (before) ;  (* Get a copy of the globalGroup and free before.  *)
       dumpLists ;
       tryOutputTodo (c, t, v, tp) ;
       dumpLists ;
-      tryOutputPartial (pt) ;
-      tol := to ;
-      pal := pa ;
-      to := alists.noOfItemsInList (todoQ) ;
-      pa := alists.noOfItemsInList (partialQ)
-   END ;
+      tryOutputPartial (pt)
+   UNTIL equalGroup (before, globalGroup) ;
+   killGroup (before) ;
    dumpLists ;
    debugLists
 END topologicallyOut ;
@@ -15352,7 +15443,7 @@ END setLangM2 ;
 
 PROCEDURE addDone (n: node) ;
 BEGIN
-   alists.includeItemIntoList (doneQ, n)
+   alists.includeItemIntoList (globalGroup^.doneQ, n)
 END addDone ;
 
 
@@ -15368,7 +15459,7 @@ BEGIN
       addDone (n) ;
       RETURN
    END ;
-   IF (NOT isDef (n)) AND (lookupImp (getSymName (getScope (n))) = getMainModule ())
+   IF FALSE AND (lookupImp (getSymName (getScope (n))) = getMainModule ())
    THEN
       metaError1 ('cyclic dependancy found between another module using {%1ad} from the definition module of the implementation main being compiled, use the --extended-opaque option to compile', n) ;
       flushErrors ;
@@ -16977,9 +17068,8 @@ BEGIN
    lang := ansiC ;
    outputFile := StdOut ;
    doP := initPretty (write, writeln) ;
-   todoQ := alists.initList () ;
-   partialQ := alists.initList () ;
-   doneQ := alists.initList () ;
+   freeGroup := NIL ;
+   globalGroup := initGroup () ;
    modUniverse := initTree () ;
    defUniverse := initTree () ;
    modUniverseI := InitIndex (1) ;

commit 84198cba689b60b5171028ca741c6b1179800875
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Nov 20 00:23:31 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 6d3c9325db8..837c3849695 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241119
+20241120
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index e093ced562d..1d350b4c19a 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,60 @@
+2024-11-20  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-05-21  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* Make-lang.in (MC_EXTENDED_OPAQUE): New definition.
+	* mc-boot/GDynamicStrings.cc: Rebuild.
+	* mc-boot/GDynamicStrings.h: Rebuild.
+	* mc-boot/Galists.cc: Rebuild.
+	* mc-boot/Galists.h: Rebuild.
+	* mc-boot/Gdecl.cc: Rebuild.
+	* mc/alists.def (equalList): New procedure.
+	* mc/alists.mod (equalList): New procedure implementation.
+	* mc/decl.mod (group): New type.
+	(freeGroup): New variable.
+	(globalGroup): Ditto.
+	(todoQ): Remove declaration and prefix all occurances with globalGroup^.
+	(partialQ): Ditto.
+	(doneQ): Ditto.
+	(newGroup): New procedure.
+	(initGroup): Ditto.
+	(killGroup): Ditto.
+	(dupGroup): Ditto.
+	(equalGroup): Ditto.
+	(topologicallyOut): Rewrite.
+
+2024-11-19  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-05-21  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* Make-lang.in (m2.install-info): Pass --destdir for dir index.
+
+2024-11-19  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-05-15  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115057
+	* gm2-libs-iso/TextIO.mod (ReadRestLine): Use ReadChar to
+	skip unwanted characters as this calls IOChan.Look and updates
+	the cid result status.  A Skip without a Look does not update
+	the status.  Skip always sets read result to allRight.
+	* gm2-libs-iso/TextUtil.def (SkipSpaces): Improve comments.
+	(CharAvailable): Improve comments.
+	* gm2-libs-iso/TextUtil.mod (SkipSpaces): Improve comments.
+	(CharAvailable): Improve comments.
+
+2024-11-19  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-05-09  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115003
+	* gm2-compiler/SymbolTable.mod (GetScope): Add UndefinedSym
+	case clause and return NulSym.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1759eca3bf1..f102f04379c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,22 @@
+2024-11-19  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-05-21  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115164
+	* gm2/isolib/run/pass/testlowread.mod: New test.
+	* gm2/isolib/run/pass/testwritereal.mod: New test.
+
+2024-11-19  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-05-15  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115057
+	* gm2/isolib/run/pass/testrestline.mod: New test.
+	* gm2/isolib/run/pass/testrestline2.mod: New test.
+	* gm2/isolib/run/pass/testrestline3.mod: New test.
+
 2024-11-18  Uros Bizjak  <ubizjak@gmail.com>
 
 	Backported from master:

commit a6ee740ff3412baa85f7ec7a99da5d74d7a6a575
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Wed Nov 20 08:14:10 2024 +0000

    [PATCH] modula2: fix xref fourth parameter in documentation, change from gm2 to m2
    
    This patch corrects the gm2.texi xref for the modula-2 documentation.
    
    gcc/ChangeLog:
    
            * doc/gm2.texi: Replace all occurrences of xref {, , , gm2}
            with xref {, , , m2}.
    
    (cherry picked from commit 5833e5b8ef40367764325f4f3c80cfa129fbe1da)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/doc/gm2.texi b/gcc/doc/gm2.texi
index 19b864573c1..14a9e2b1e3c 100644
--- a/gcc/doc/gm2.texi
+++ b/gcc/doc/gm2.texi
@@ -291,7 +291,7 @@ This manual only documents the options specific to @command{gm2}.
 
 This section describes how to compile and link a simple hello world
 program.  It provides a few examples of using the different options
-mentioned in @pxref{Compiler options, , ,gm2}.  Assuming that you have
+mentioned in @pxref{Compiler options, , ,m2}.  Assuming that you have
 a file called @file{hello.mod} in your current directory which
 contains:
 
@@ -442,7 +442,7 @@ turn on ISO standard features.  Currently this enables the ISO
 @code{SYSTEM} module and alters the default library search path so
 that the ISO libraries are searched before the PIM libraries.  It also
 effects the behavior of @code{DIV} and @code{MOD} operators.
-@xref{Dialect, , ,gm2}.
+@xref{Dialect, , ,m2}.
 
 @item -flibs=
 modifies the default library search path.  The libraries supplied are:
@@ -529,30 +529,30 @@ turn on PIM standard features.  Currently this enables the PIM
 @code{SYSTEM} module and determines which identifiers are pervasive
 (declared in the base module).  If no other @samp{-fpim[234]} switch is
 used then division and modulus operators behave as defined in PIM4.
-@xref{Dialect, , ,gm2}.
+@xref{Dialect, , ,m2}.
 
 @item -fpim2
 turn on PIM-2 standard features.  Currently this removes @code{SIZE}
 from being a pervasive identifier (declared in the base module).  It
 places @code{SIZE} in the @code{SYSTEM} module.  It also effects the
 behavior of @code{DIV} and @code{MOD} operators.
-@xref{Dialect, , ,gm2}.
+@xref{Dialect, , ,m2}.
 
 @item -fpim3
 turn on PIM-3 standard features.  Currently this only effects the
 behavior of @code{DIV} and @code{MOD} operators.
-@xref{Dialect, , ,gm2}.
+@xref{Dialect, , ,m2}.
 
 @item -fpim4
 turn on PIM-4 standard features.  Currently this only effects the
 behavior of @code{DIV} and @code{MOD} operators.
-@xref{Dialect, , ,gm2}.
+@xref{Dialect, , ,m2}.
 
 @item -fpositive-mod-floor-div
 forces the @code{DIV} and @code{MOD} operators to behave as defined by PIM4.
 All modulus results are positive and the results from the division are
 rounded to the floor.
-@xref{Dialect, , ,gm2}.
+@xref{Dialect, , ,m2}.
 
 @item -fpthread
 link against the pthread library.  By default this option is on.  It
@@ -847,8 +847,8 @@ LONGCOMPLEX               complex long double
 
 Note that GNU Modula-2 also supports fixed sized data types which are
 exported from the @code{SYSTEM} module.
-@xref{The PIM system module, , ,gm2}.
-@xref{The ISO system module, , ,gm2}.
+@xref{The PIM system module, , ,m2}.
+@xref{The ISO system module, , ,m2}.
 
 @node Standard procedures, High procedure function, Elementary data types, Using
 @section Permanently accessible base procedures.
@@ -1599,7 +1599,7 @@ This section introduces the GNU Modula-2 language extensions.
 The GNU Modula-2 compiler allows abstract data types to be any type,
 not just restricted to a pointer type providing the
 @samp{-fextended-opaque} option is supplied
-@xref{Compiler options, , ,gm2}.
+@xref{Compiler options, , ,m2}.
 
 Declarations can be made in any order, whether they are
 types, constants, procedures, nested modules or variables.
@@ -1800,8 +1800,8 @@ program module.
 
 GNU Modula-2 also provides additional fixed sized data types which
 are all exported from the @code{SYSTEM} module.
-@xref{The PIM system module, , ,gm2}.
-@xref{The ISO system module, , ,gm2}.
+@xref{The PIM system module, , ,m2}.
+@xref{The ISO system module, , ,m2}.
 
 @node Type compatibility, Unbounded by reference, Extensions, Using
 @section Type compatibility
@@ -2176,7 +2176,7 @@ $ python3 testnum.py
 1234 x 2 = 2468
 @end example
 
-@xref{Producing a Python module, , ,gm2} for another example which
+@xref{Producing a Python module, , ,m2} for another example which
 uses the @code{UNQUALIFIED} keyword to reduce the module name clutter
 from the viewport of Python3.
 

commit 83c51f98e726026bce717b7130f55f3bcfe303f2
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Wed Nov 20 08:15:45 2024 +0000

    [PATCH] modula2: simplify xref usage in documentation, remove external ref to gm2.
    
    This patch simplifies all the xref usage for gm2 nodes in the
    modula-2 documentation.
    
    gcc/ChangeLog:
    
            * doc/gm2.texi: Replace all occurrences of xref
            {foo, , , gm2} with xref {foo}.
    
    (cherry picked from commit a209f219b862def8fed166b31984b8c6c3bb74a0)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/doc/gm2.texi b/gcc/doc/gm2.texi
index 14a9e2b1e3c..72b659bdde0 100644
--- a/gcc/doc/gm2.texi
+++ b/gcc/doc/gm2.texi
@@ -291,7 +291,7 @@ This manual only documents the options specific to @command{gm2}.
 
 This section describes how to compile and link a simple hello world
 program.  It provides a few examples of using the different options
-mentioned in @pxref{Compiler options, , ,m2}.  Assuming that you have
+mentioned in @pxref{Compiler options}.  Assuming that you have
 a file called @file{hello.mod} in your current directory which
 contains:
 
@@ -442,7 +442,7 @@ turn on ISO standard features.  Currently this enables the ISO
 @code{SYSTEM} module and alters the default library search path so
 that the ISO libraries are searched before the PIM libraries.  It also
 effects the behavior of @code{DIV} and @code{MOD} operators.
-@xref{Dialect, , ,m2}.
+@xref{Dialect}.
 
 @item -flibs=
 modifies the default library search path.  The libraries supplied are:
@@ -529,30 +529,30 @@ turn on PIM standard features.  Currently this enables the PIM
 @code{SYSTEM} module and determines which identifiers are pervasive
 (declared in the base module).  If no other @samp{-fpim[234]} switch is
 used then division and modulus operators behave as defined in PIM4.
-@xref{Dialect, , ,m2}.
+@xref{Dialect}.
 
 @item -fpim2
 turn on PIM-2 standard features.  Currently this removes @code{SIZE}
 from being a pervasive identifier (declared in the base module).  It
 places @code{SIZE} in the @code{SYSTEM} module.  It also effects the
 behavior of @code{DIV} and @code{MOD} operators.
-@xref{Dialect, , ,m2}.
+@xref{Dialect}.
 
 @item -fpim3
 turn on PIM-3 standard features.  Currently this only effects the
 behavior of @code{DIV} and @code{MOD} operators.
-@xref{Dialect, , ,m2}.
+@xref{Dialect}.
 
 @item -fpim4
 turn on PIM-4 standard features.  Currently this only effects the
 behavior of @code{DIV} and @code{MOD} operators.
-@xref{Dialect, , ,m2}.
+@xref{Dialect}.
 
 @item -fpositive-mod-floor-div
 forces the @code{DIV} and @code{MOD} operators to behave as defined by PIM4.
 All modulus results are positive and the results from the division are
 rounded to the floor.
-@xref{Dialect, , ,m2}.
+@xref{Dialect}.
 
 @item -fpthread
 link against the pthread library.  By default this option is on.  It
@@ -847,8 +847,8 @@ LONGCOMPLEX               complex long double
 
 Note that GNU Modula-2 also supports fixed sized data types which are
 exported from the @code{SYSTEM} module.
-@xref{The PIM system module, , ,m2}.
-@xref{The ISO system module, , ,m2}.
+@xref{The PIM system module}.
+@xref{The ISO system module}.
 
 @node Standard procedures, High procedure function, Elementary data types, Using
 @section Permanently accessible base procedures.
@@ -1599,7 +1599,7 @@ This section introduces the GNU Modula-2 language extensions.
 The GNU Modula-2 compiler allows abstract data types to be any type,
 not just restricted to a pointer type providing the
 @samp{-fextended-opaque} option is supplied
-@xref{Compiler options, , ,m2}.
+@xref{Compiler options}.
 
 Declarations can be made in any order, whether they are
 types, constants, procedures, nested modules or variables.
@@ -1800,8 +1800,8 @@ program module.
 
 GNU Modula-2 also provides additional fixed sized data types which
 are all exported from the @code{SYSTEM} module.
-@xref{The PIM system module, , ,m2}.
-@xref{The ISO system module, , ,m2}.
+@xref{The PIM system module}.
+@xref{The ISO system module}.
 
 @node Type compatibility, Unbounded by reference, Extensions, Using
 @section Type compatibility
@@ -2176,7 +2176,7 @@ $ python3 testnum.py
 1234 x 2 = 2468
 @end example
 
-@xref{Producing a Python module, , ,m2} for another example which
+@xref{Producing a Python module} for another example which
 uses the @code{UNQUALIFIED} keyword to reduce the module name clutter
 from the viewport of Python3.
 

commit 0e3e2cc03e6a9d8d48fa5269070976f3d7d0a750
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Wed Nov 20 09:22:53 2024 +0000

    [PATCH] PR modula2/115276 bugfix libgm2 wraptime.InitTM returns NIL
    
    This patch fixes libgm2/libm2iso/wraptime.cc:InitTM so that
    it does not always return NULL.  The incorrect autoconf macro
    was used (inside InitTM) and the function short circuited
    to return NULL.  The fix is to use HAVE_SYS_TIME_H and use
    AC_HEADER_TIME in libgm2/configure.ac.
    
    libgm2/ChangeLog:
    
            PR modula2/115276
            * config.h.in: Regenerate.
            * configure: Regenerate.
            * configure.ac: Use AC_HEADER_TIME.
            * libm2iso/wraptime.cc (InitTM): Check HAVE_SYS_TIME_H
            before using struct tm to obtain the size.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/115276
            * gm2/isolib/run/pass/testinittm.mod: New test.
    
    (cherry picked from commit d1a1f7e9f0bedea55c558ab95127679bc3e9ff72)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/testsuite/gm2/isolib/run/pass/testinittm.mod b/gcc/testsuite/gm2/isolib/run/pass/testinittm.mod
new file mode 100644
index 00000000000..dfe041140f1
--- /dev/null
+++ b/gcc/testsuite/gm2/isolib/run/pass/testinittm.mod
@@ -0,0 +1,17 @@
+MODULE testinittm ;
+
+FROM wraptime IMPORT InitTM, tm ;
+FROM libc IMPORT printf, exit ;
+
+VAR
+   m: tm ;
+BEGIN
+   m := InitTM () ;
+   IF m = NIL
+   THEN
+      printf ("InitTM failed\n");
+      exit (1)
+   ELSE
+      printf ("InitTM passed\n")
+   END
+END testinittm.
diff --git a/libgm2/config.h.in b/libgm2/config.h.in
index 7426cb26cf8..321ef3b807f 100644
--- a/libgm2/config.h.in
+++ b/libgm2/config.h.in
@@ -335,6 +335,9 @@
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#undef TIME_WITH_SYS_TIME
+
 /* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
diff --git a/libgm2/configure b/libgm2/configure
index 13861f0ff93..c36fd7d4cac 100755
--- a/libgm2/configure
+++ b/libgm2/configure
@@ -6837,6 +6837,41 @@ $as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
 
 fi
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
+$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
+if ${ac_cv_header_time+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+
+int
+main ()
+{
+if ((struct tm *) 0)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_time=yes
+else
+  ac_cv_header_time=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
+$as_echo "$ac_cv_header_time" >&6; }
+if test $ac_cv_header_time = yes; then
+
+$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
+
+fi
+
 ac_fn_c_check_header_mongrel "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default"
 if test "x$ac_cv_header_math_h" = xyes; then :
 
@@ -14544,7 +14579,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 14547 "configure"
+#line 14582 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -14650,7 +14685,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 14653 "configure"
+#line 14688 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
diff --git a/libgm2/configure.ac b/libgm2/configure.ac
index 9563831ddc5..1e6b82305ff 100644
--- a/libgm2/configure.ac
+++ b/libgm2/configure.ac
@@ -88,6 +88,7 @@ AC_ARG_WITH(cross-host,
 # Checks for header files.
 AC_HEADER_STDC
 AC_HEADER_SYS_WAIT
+AC_HEADER_TIME
 AC_CHECK_HEADER([math.h],
 	       [AC_DEFINE([HAVE_MATH_H], [1], [have math.h])])
 
diff --git a/libgm2/libm2iso/wraptime.cc b/libgm2/libm2iso/wraptime.cc
index 158086b75cc..4bbd5f9701d 100644
--- a/libgm2/libm2iso/wraptime.cc
+++ b/libgm2/libm2iso/wraptime.cc
@@ -113,7 +113,7 @@ EXPORT(KillTimezone) (struct timezone *tv)
 
 /* InitTM - returns a newly created opaque type.  */
 
-#if defined(HAVE_STRUCT_TM) && defined(HAVE_MALLOC_H)
+#if defined(HAVE_SYS_TIME_H) && defined(HAVE_MALLOC_H)
 extern "C" struct tm *
 EXPORT(InitTM) (void)
 {

commit 156051d083d91f31caf15a70f2d85d65fde3ff08
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Fri May 3 09:05:29 2024 -0400

    testsuite: fix analyzer C++ failures on Solaris [PR111475]
    
    As part of PR analyzer/96395, these patches moved testcases from
    gcc.dg/analyzer to c-c++-common/analyzer:
    - r14-3503-g55f6a7d949abc7
    - r14-3823-g50b5199cff6908
    - r14-6564-gae034b9106fbdd
    
    Unfortunately this led to numerous g++ testsuite failures on Solaris,
    tracked as PR analyzer/111475.
    
    Almost all of the failures are due to standard library differences where
    including a C standard library on C++ e.g. <stdlib.h> leads to the plain
    symbols referencing the symbols "std::" via a "using" declaration,
    whereas I had written the code expecting them to use symbols in the root
    namespace.
    
    The analyzer has special-case handling of many functions by name.
    This patch generalizes such handling to also match against functions
    in "std::" for all of the cases I found in the testsuite (via manual
    inspection of the preprocessed test cases against Solaris headers).
    This fixes cases where the analyzer was failing to "know about" the
    behavior of such functions.
    
    Other such failures are due to "std::" prefixes appearing in names of
    functions in the output, leading to mismatches against expected output.
    The patch adds regexes to some cases, and moves some other cases back
    from c-c++-common to gcc.dg where the dg-multiline syntax isn't
    expressive enough.
    
    Various "fd-*.c" failures relate to Solaris's socket-handling functions
    not being marked with "noexcept", where due to PR analyzer/97111 we
    mishandle the exception-handling edges in the CFG, leading to leak
    false positives.  The patch works around this by adding -fno-exceptions
    to these cases, pending a proper fix for PR analyzer/97111.
    
    gcc/analyzer/ChangeLog:
            PR analyzer/111475
            * analyzer.cc (is_special_named_call_p): Add "look_in_std" param.
            (is_std_function_p): Make non-static.
            * analyzer.h (is_special_named_call_p): Add optional "look_in_std"
            param.
            (is_std_function_p): New decl.
            * engine.cc (stmt_requires_new_enode_p): Look for both "signal"
            and "std::signal".
            * kf.cc (register_known_functions): Add various "std::" copies
            of the known functions.
            * known-function-manager.cc
            (known_function_manager::~known_function_manager): Clean up
            m_std_ns_map_id_to_kf.
            (known_function_manager::add_std_ns): New.
            (known_function_manager::get_match): Also look for known "std::"
            functions.
            (known_function_manager::get_by_identifier_in_std_ns): New.
            * known-function-manager.h
            (known_function_manager::add_std_ns): New decl.
            (known_function_manager::get_by_identifier_in_std_ns): New decl.
            (known_function_manager::m_std_ns_map_id_to_kf): New field.
            * sm-file.cc (register_known_file_functions): Add various "std::"
            copies of the known functions.
            * sm-malloc.cc (malloc_state_machine::on_stmt): Handle
            "std::realloc".
            * sm-signal.cc (signal_unsafe_p): Consider "std::" copies of the
            functions as also being async-signal-unsafe.
            (signal_state_machine::on_stmt): Consider "std::signal".
    
    gcc/testsuite/ChangeLog:
            PR analyzer/111475
            * c-c++-common/analyzer/fd-glibc-byte-stream-socket.c: Add
            -fno-exceptions for now.
            * c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c: Likewise.
            * c-c++-common/analyzer/fd-mappage-getaddrinfo-server.c: Rename to...
            * c-c++-common/analyzer/fd-manpage-getaddrinfo-server.c: ...this, and
            add -fno-exceptions for now.
            * c-c++-common/analyzer/fd-socket-meaning.c: Add -fno-exceptions
            for now.
            * c-c++-common/analyzer/fd-symbolic-socket.c: Likewise.
            * c-c++-common/analyzer/flexible-array-member-1.c: Use regexp to
            handle C vs C++ differences in spelling of function name, which
            could have a "std::" prefix on some targets.
            * c-c++-common/analyzer/pr106539.c: Likewise.
            * c-c++-common/analyzer/malloc-ipa-8-unchecked.c: Move back to...
            * gcc.dg/analyzer/malloc-ipa-8-unchecked.c: ...here, dropping
            attempt to generalize output for C vs C++.
            * c-c++-common/analyzer/signal-4a.c: Move back to...
            * gcc.dg/analyzer/signal-4a.c: ...here, dropping attempt to
            generalize output for C vs C++.
            * c-c++-common/analyzer/signal-4b.c: Move back to...
            * gcc.dg/analyzer/signal-4b.c: ...here, dropping attempt to
            generalize output for C vs C++.
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>
    (cherry picked from commit 5219414f3cde3c1037e289a6654cd722cfa75dea)

diff --git a/gcc/analyzer/analyzer.cc b/gcc/analyzer/analyzer.cc
index 7f5d3d56d33..2a15a3a9ad7 100644
--- a/gcc/analyzer/analyzer.cc
+++ b/gcc/analyzer/analyzer.cc
@@ -293,11 +293,13 @@ get_ssa_default_def (const function &fun, tree var)
    is_named_call_p should be used instead, using a fndecl from
    get_fndecl_for_call; this function should only be used for special cases
    where it's not practical to get at the region model, or for special
-   analyzer functions such as __analyzer_dump.  */
+   analyzer functions such as __analyzer_dump.
+
+   If LOOK_IN_STD is true, then also look for within std:: for the name.  */
 
 bool
 is_special_named_call_p (const gcall *call, const char *funcname,
-			 unsigned int num_args)
+			 unsigned int num_args, bool look_in_std)
 {
   gcc_assert (funcname);
 
@@ -305,7 +307,12 @@ is_special_named_call_p (const gcall *call, const char *funcname,
   if (!fndecl)
     return false;
 
-  return is_named_call_p (fndecl, funcname, call, num_args);
+  if (is_named_call_p (fndecl, funcname, call, num_args))
+    return true;
+  if (look_in_std)
+    if (is_std_named_call_p (fndecl, funcname, call, num_args))
+      return true;
+  return false;
 }
 
 /* Helper function for checkers.  Is FNDECL an extern fndecl at file scope
@@ -344,7 +351,7 @@ is_named_call_p (const_tree fndecl, const char *funcname)
    Compare with cp/typeck.cc: decl_in_std_namespace_p, but this doesn't
    rely on being the C++ FE (or handle inline namespaces inside of std).  */
 
-static inline bool
+bool
 is_std_function_p (const_tree fndecl)
 {
   tree name_decl = DECL_NAME (fndecl);
diff --git a/gcc/analyzer/analyzer.h b/gcc/analyzer/analyzer.h
index d43812e3963..334b0d32bd0 100644
--- a/gcc/analyzer/analyzer.h
+++ b/gcc/analyzer/analyzer.h
@@ -448,10 +448,12 @@ extern tree remove_ssa_names (tree expr);
 } // namespace ana
 
 extern bool is_special_named_call_p (const gcall *call, const char *funcname,
-				     unsigned int num_args);
+				     unsigned int num_args,
+				     bool look_in_std = false);
 extern bool is_named_call_p (const_tree fndecl, const char *funcname);
 extern bool is_named_call_p (const_tree fndecl, const char *funcname,
 			     const gcall *call, unsigned int num_args);
+extern bool is_std_function_p (const_tree fndecl);
 extern bool is_std_named_call_p (const_tree fndecl, const char *funcname);
 extern bool is_std_named_call_p (const_tree fndecl, const char *funcname,
 				 const gcall *call, unsigned int num_args);
diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc
index e0dc0e66e88..556e8a1c828 100644
--- a/gcc/analyzer/engine.cc
+++ b/gcc/analyzer/engine.cc
@@ -3768,7 +3768,7 @@ stmt_requires_new_enode_p (const gimple *stmt,
 	 regular next state, which defeats the "detect state change" logic
 	 in process_node.  Work around this via special-casing, to ensure
 	 we split the enode immediately before any "signal" call.  */
-      if (is_special_named_call_p (call, "signal", 2))
+      if (is_special_named_call_p (call, "signal", 2, true))
 	return true;
     }
 
diff --git a/gcc/analyzer/kf.cc b/gcc/analyzer/kf.cc
index 6931f07bd75..c60e220dd1b 100644
--- a/gcc/analyzer/kf.cc
+++ b/gcc/analyzer/kf.cc
@@ -2344,6 +2344,28 @@ register_known_functions (known_function_manager &kfm,
 
   /* Language-specific support functions.  */
   register_known_functions_lang_cp (kfm);
+
+  /* Some C++ implementations use the std:: copies of these functions
+     from <cstdlib> etc for the C spellings of these headers (e.g. <stdlib.h>),
+     so we must match against these too.  */
+  {
+    kfm.add_std_ns ("malloc", make_unique<kf_malloc> ());
+    kfm.add_std_ns ("free", make_unique<kf_free> ());
+    kfm.add_std_ns ("realloc", make_unique<kf_realloc> ());
+    kfm.add_std_ns ("calloc", make_unique<kf_calloc> ());
+    kfm.add_std_ns
+      ("memcpy",
+       make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMCPY));
+    kfm.add_std_ns
+      ("memmove",
+       make_unique<kf_memcpy_memmove> (kf_memcpy_memmove::KF_MEMMOVE));
+    kfm.add_std_ns ("memset", make_unique<kf_memset> (false));
+    kfm.add_std_ns ("strcat", make_unique<kf_strcat> (2, false));
+    kfm.add_std_ns ("strcpy", make_unique<kf_strcpy> (2, false));
+    kfm.add_std_ns ("strlen", make_unique<kf_strlen> ());
+    kfm.add_std_ns ("strncpy", make_unique<kf_strncpy> ());
+    kfm.add_std_ns ("strtok", make_unique<kf_strtok> (rmm));
+  }
 }
 
 } // namespace ana
diff --git a/gcc/analyzer/known-function-manager.cc b/gcc/analyzer/known-function-manager.cc
index 9f7aeb86d09..d24e5b8f407 100644
--- a/gcc/analyzer/known-function-manager.cc
+++ b/gcc/analyzer/known-function-manager.cc
@@ -50,6 +50,8 @@ known_function_manager::~known_function_manager ()
   /* Delete all owned kfs.  */
   for (auto iter : m_map_id_to_kf)
     delete iter.second;
+  for (auto iter : m_std_ns_map_id_to_kf)
+    delete iter.second;
   for (auto iter : m_combined_fns_arr)
     delete iter;
 }
@@ -63,6 +65,15 @@ known_function_manager::add (const char *name,
   m_map_id_to_kf.put (id, kf.release ());
 }
 
+void
+known_function_manager::add_std_ns (const char *name,
+			     std::unique_ptr<known_function> kf)
+{
+  LOG_FUNC_1 (get_logger (), "registering std::%s", name);
+  tree id = get_identifier (name);
+  m_std_ns_map_id_to_kf.put (id, kf.release ());
+}
+
 void
 known_function_manager::add (enum built_in_function name,
 			     std::unique_ptr<known_function> kf)
@@ -104,7 +115,16 @@ known_function_manager::get_match (tree fndecl, const call_details &cd) const
 
   /* Look for a match by name.  */
 
-  /* Reject fndecls that aren't in the root namespace.  */
+  if (is_std_function_p (fndecl))
+    {
+      if (tree identifier = DECL_NAME (fndecl))
+	if (const known_function *candidate
+	      = get_by_identifier_in_std_ns (identifier))
+	  if (candidate->matches_call_types_p (cd))
+	    return candidate;
+      return nullptr;
+    }
+
   if (DECL_CONTEXT (fndecl)
       && TREE_CODE (DECL_CONTEXT (fndecl)) != TRANSLATION_UNIT_DECL)
     return NULL;
@@ -158,6 +178,22 @@ known_function_manager::get_by_identifier (tree identifier) const
     return NULL;
 }
 
+/* Get any known_function in C++ std:: namespace matching IDENTIFIER, without
+   type-checking.
+   Return nullptr if there isn't one.  */
+
+const known_function *
+known_function_manager::get_by_identifier_in_std_ns (tree identifier) const
+{
+  known_function_manager *mut_this = const_cast<known_function_manager *>(this);
+  known_function **slot = mut_this->m_std_ns_map_id_to_kf.get (identifier);
+  if (slot)
+    return *slot;
+  else
+    return nullptr;
+}
+
+
 } // namespace ana
 
 #endif /* #if ENABLE_ANALYZER */
diff --git a/gcc/analyzer/known-function-manager.h b/gcc/analyzer/known-function-manager.h
index 81e42e157b7..cf931936873 100644
--- a/gcc/analyzer/known-function-manager.h
+++ b/gcc/analyzer/known-function-manager.h
@@ -44,6 +44,7 @@ public:
   ~known_function_manager ();
 
   void add (const char *name, std::unique_ptr<known_function> kf);
+  void add_std_ns (const char *name, std::unique_ptr<known_function> kf);
   void add (enum built_in_function name, std::unique_ptr<known_function> kf);
   void add (enum internal_fn ifn, std::unique_ptr<known_function> kf);
 
@@ -57,11 +58,15 @@ private:
   const known_function *
   get_normal_builtin (const builtin_known_function *builtin_kf) const;
   const known_function *get_by_identifier (tree identifier) const;
+  const known_function *get_by_identifier_in_std_ns (tree identifier) const;
 
   /* Map from identifier to known_function instance.
      Has ownership of the latter.  */
   hash_map<tree, known_function *> m_map_id_to_kf;
 
+  /* Likewise for C++'s std:: namespace.  */
+  hash_map<tree, known_function *> m_std_ns_map_id_to_kf;
+
   /* Array of known builtins.  */
   known_function *m_combined_fns_arr[CFN_LAST];
 };
diff --git a/gcc/analyzer/sm-file.cc b/gcc/analyzer/sm-file.cc
index 6739c31c22b..f85b4004969 100644
--- a/gcc/analyzer/sm-file.cc
+++ b/gcc/analyzer/sm-file.cc
@@ -648,6 +648,14 @@ register_known_file_functions (known_function_manager &kfm)
   kfm.add ("fread", make_unique<kf_fread> ());
   kfm.add ("getc", make_unique<kf_getc> ());
   kfm.add ("getchar", make_unique<kf_getchar> ());
+
+  /* Some C++ implementations use the std:: copies of these functions
+     from <cstdio> for <stdio.h>, so we must match against these too.  */
+  kfm.add_std_ns ("ferror", make_unique<kf_ferror> ());
+  kfm.add_std_ns ("fgets", make_unique<kf_fgets> ());
+  kfm.add_std_ns ("fread", make_unique<kf_fread> ());
+  kfm.add_std_ns ("getc", make_unique<kf_getc> ());
+  kfm.add_std_ns ("getchar", make_unique<kf_getchar> ());
 }
 
 #if CHECKING_P
diff --git a/gcc/analyzer/sm-malloc.cc b/gcc/analyzer/sm-malloc.cc
index 4e11d6dfc63..fc6718ad74b 100644
--- a/gcc/analyzer/sm-malloc.cc
+++ b/gcc/analyzer/sm-malloc.cc
@@ -1983,6 +1983,7 @@ malloc_state_machine::on_stmt (sm_context *sm_ctxt,
 	  }
 
 	if (is_named_call_p (callee_fndecl, "realloc", call, 2)
+	    || is_std_named_call_p (callee_fndecl, "realloc", call, 2)
 	    || is_named_call_p (callee_fndecl, "__builtin_realloc", call, 2))
 	  {
 	    on_realloc_call (sm_ctxt, node, call);
diff --git a/gcc/analyzer/sm-signal.cc b/gcc/analyzer/sm-signal.cc
index 93269caa0dc..84603c5b77b 100644
--- a/gcc/analyzer/sm-signal.cc
+++ b/gcc/analyzer/sm-signal.cc
@@ -320,7 +320,13 @@ static bool
 signal_unsafe_p (tree fndecl)
 {
   function_set fs = get_async_signal_unsafe_fns ();
-  return fs.contains_decl_p (fndecl);
+  if (fs.contains_decl_p (fndecl))
+    return true;
+  if (is_std_function_p (fndecl)
+      && fs.contains_name_p (IDENTIFIER_POINTER (DECL_NAME (fndecl))))
+    return true;
+
+  return false;
 }
 
 /* Implementation of state_machine::on_stmt vfunc for signal_state_machine.  */
@@ -335,7 +341,8 @@ signal_state_machine::on_stmt (sm_context *sm_ctxt,
     {
       if (const gcall *call = dyn_cast <const gcall *> (stmt))
 	if (tree callee_fndecl = sm_ctxt->get_fndecl_for_call (call))
-	  if (is_named_call_p (callee_fndecl, "signal", call, 2))
+	  if (is_named_call_p (callee_fndecl, "signal", call, 2)
+	      || is_std_named_call_p (callee_fndecl, "signal", call, 2))
 	    {
 	      tree handler = gimple_call_arg (call, 1);
 	      if (TREE_CODE (handler) == ADDR_EXPR
diff --git a/gcc/testsuite/c-c++-common/analyzer/fd-glibc-byte-stream-socket.c b/gcc/testsuite/c-c++-common/analyzer/fd-glibc-byte-stream-socket.c
index fab8426acb9..fd57d3b0894 100644
--- a/gcc/testsuite/c-c++-common/analyzer/fd-glibc-byte-stream-socket.c
+++ b/gcc/testsuite/c-c++-common/analyzer/fd-glibc-byte-stream-socket.c
@@ -1,5 +1,9 @@
 /* Example from glibc manual (16.9.6).  */
 /* { dg-require-effective-target sockets } */
+
+/* Needed on some targets until we have exception-handling working (PR 111475).  */
+/* { dg-additional-options "-fno-exceptions" } */
+
 /* { dg-skip-if "" { hppa*-*-hpux* powerpc*-*-aix* } } */
 
 #include <stdio.h>
diff --git a/gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c b/gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c
index 21dfe977db8..ee7e4b496c1 100644
--- a/gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c
+++ b/gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c
@@ -28,6 +28,10 @@ the source, must acknowledge the copyright and authors of this work.
 
 /* { dg-require-effective-target sockets } */
 /* { dg-additional-options "-Wno-analyzer-too-complex" } */
+
+/* Needed on some targets until we have exception-handling working (PR 111475).  */
+/* { dg-additional-options "-fno-exceptions" } */
+
 /* { dg-skip-if "" { hppa*-*-hpux* powerpc*-*-aix* } } */
 
 #include <sys/types.h>
diff --git a/gcc/testsuite/c-c++-common/analyzer/fd-mappage-getaddrinfo-server.c b/gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-server.c
similarity index 96%
rename from gcc/testsuite/c-c++-common/analyzer/fd-mappage-getaddrinfo-server.c
rename to gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-server.c
index 2e9cec4abf0..7bc45680096 100644
--- a/gcc/testsuite/c-c++-common/analyzer/fd-mappage-getaddrinfo-server.c
+++ b/gcc/testsuite/c-c++-common/analyzer/fd-manpage-getaddrinfo-server.c
@@ -27,6 +27,10 @@ the source, must acknowledge the copyright and authors of this work.
 */
 
 /* { dg-require-effective-target sockets } */
+
+/* Needed on some targets until we have exception-handling working (PR 111475).  */
+/* { dg-additional-options "-fno-exceptions" } */
+
 /* { dg-skip-if "" { hppa*-*-hpux* powerpc*-*-aix* } } */
 
 #include <sys/types.h>
diff --git a/gcc/testsuite/c-c++-common/analyzer/fd-socket-meaning.c b/gcc/testsuite/c-c++-common/analyzer/fd-socket-meaning.c
index 82a199f83b0..995d3a1d684 100644
--- a/gcc/testsuite/c-c++-common/analyzer/fd-socket-meaning.c
+++ b/gcc/testsuite/c-c++-common/analyzer/fd-socket-meaning.c
@@ -1,4 +1,8 @@
 /* { dg-require-effective-target sockets } */
+
+/* Needed on some targets until we have exception-handling working (PR 111475).  */
+/* { dg-additional-options "-fno-exceptions" } */
+
 /* { dg-additional-options "-fanalyzer-verbose-state-changes" } */
 
 #include <sys/socket.h>
diff --git a/gcc/testsuite/c-c++-common/analyzer/fd-symbolic-socket.c b/gcc/testsuite/c-c++-common/analyzer/fd-symbolic-socket.c
index 32264fd9701..c6af0a6487f 100644
--- a/gcc/testsuite/c-c++-common/analyzer/fd-symbolic-socket.c
+++ b/gcc/testsuite/c-c++-common/analyzer/fd-symbolic-socket.c
@@ -1,4 +1,8 @@
 /* { dg-require-effective-target sockets } */
+
+/* Needed on some targets until we have exception-handling working (PR 111475).  */
+/* { dg-additional-options "-fno-exceptions" } */
+
 /* { dg-skip-if "" { hppa*-*-hpux* powerpc*-*-aix* } } */
 
 #include <string.h>
diff --git a/gcc/testsuite/c-c++-common/analyzer/flexible-array-member-1.c b/gcc/testsuite/c-c++-common/analyzer/flexible-array-member-1.c
index 82dbcec5359..d794336198b 100644
--- a/gcc/testsuite/c-c++-common/analyzer/flexible-array-member-1.c
+++ b/gcc/testsuite/c-c++-common/analyzer/flexible-array-member-1.c
@@ -27,8 +27,7 @@ test_const_size_oob_1 (void)
   if (str) {
     str->len = 10;
     memset(str->data, 'x', 10); /* { dg-warning "heap-based buffer overflow" "Wanalyzer-out-of-bounds" } */
-    /* { dg-warning "'memset' writing 10 bytes into a region of size 0 overflows the destination" "Wstringop-overflow" { target c } .-1 } */
-    /* { dg-warning "'void\\* memset\\(void\\*, int, size_t\\)' writing 10 bytes into a region of size 0 overflows the destination" "Wstringop-overflow" { target c++ } .-2 } */
+    /* { dg-warning "'\[^\n\r\]*memset\[^\n\r\]*' writing 10 bytes into a region of size 0 overflows the destination" "Wstringop-overflow" { target *-*-* } .-1 } */
     return str;
   }
   return NULL;
@@ -42,8 +41,7 @@ test_const_size_oob_2 (void)
     str->len = 10;
     /* Using the wrong size here.  */
     memset(str->data, 'x', 11); /* { dg-warning "heap-based buffer overflow" "Wanalyzer-out-of-bounds" } */
-    /* { dg-warning "'memset' writing 11 bytes into a region of size 10 overflows the destination" "Wstringop-overflow" { target c } .-1 } */
-    /* { dg-warning "'void\\* memset\\(void\\*, int, size_t\\)' writing 11 bytes into a region of size 10 overflows the destination" "Wstringop-overflow" { target c++ } .-2 } */
+    /* { dg-warning "'\[^\n\r\]*memset\[^\n\r\]*' writing 11 bytes into a region of size 10 overflows the destination" "Wstringop-overflow" { target *-*-* } .-1 } */
 
     return str;
   }
diff --git a/gcc/testsuite/c-c++-common/analyzer/pr106539.c b/gcc/testsuite/c-c++-common/analyzer/pr106539.c
index fd270868e36..8745c1de09a 100644
--- a/gcc/testsuite/c-c++-common/analyzer/pr106539.c
+++ b/gcc/testsuite/c-c++-common/analyzer/pr106539.c
@@ -7,7 +7,7 @@ void *test (void)
     return NULL;
   p[0] = malloc(10);
   p[1] = malloc(20); /* { dg-message "allocated here" }  */
-  void *q = realloc (p, sizeof (void *)); /* { dg-message "when 'realloc' succeeds, moving buffer" } */
+  void *q = realloc (p, sizeof (void *)); /* { dg-message "when '\[^\n\r\]*realloc\[^\n\r\]*' succeeds, moving buffer" } */
   if (!q)
   /* { dg-warning "leak of '<unknown>'" "leak of unknown" { target *-*-* } .-1 } */
     return p;
diff --git a/gcc/testsuite/c-c++-common/analyzer/malloc-ipa-8-unchecked.c b/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-unchecked.c
similarity index 55%
rename from gcc/testsuite/c-c++-common/analyzer/malloc-ipa-8-unchecked.c
rename to gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-unchecked.c
index 5bc8e57827b..f2c10dd3b75 100644
--- a/gcc/testsuite/c-c++-common/analyzer/malloc-ipa-8-unchecked.c
+++ b/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-unchecked.c
@@ -3,6 +3,9 @@
 /* { dg-additional-options "-fdiagnostics-show-line-numbers -fdiagnostics-path-format=inline-events -fanalyzer-checker=malloc -fdiagnostics-show-caret" } */
 /* { dg-enable-nn-line-numbers "" } */
 
+/* C only; attempting to generalize it for C++ leads
+   to an explosion of possibilities for the multiline output.  */
+
 #include <stdlib.h>
 
 void *wrapped_malloc (size_t size)
@@ -64,45 +67,4 @@ make_boxed_int (int i)
     |      |             |
     |      |             (6) 'result' could be NULL: unchecked value from (4)
     |
-  { dg-end-multiline-output "" { target c } } */
-/* { dg-begin-multiline-output "" }
-   NN |   result->i = i;
-      |   ~~~~~~~~~~^~~
-  'boxed_int* make_boxed_int(int)': events 1-2
-    |
-    |   NN | make_boxed_int (int i)
-    |      | ^~~~~~~~~~~~~~
-    |      | |
-    |      | (1) entry to 'make_boxed_int'
-    |   NN | {
-    |   NN |   boxed_int *result = (boxed_int *)wrapped_malloc (sizeof (boxed_int));
-    |      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    |      |                                                   |
-    |      |                                                   (2) calling 'wrapped_malloc' from 'make_boxed_int'
-    |
-    +--> 'void* wrapped_malloc(size_t)': events 3-4
-           |
-           |   NN | void *wrapped_malloc (size_t size)
-           |      |       ^~~~~~~~~~~~~~
-           |      |       |
-           |      |       (3) entry to 'wrapped_malloc'
-           |   NN | {
-           |   NN |   return malloc (size);
-           |      |          ~~~~~~~~~~~~~
-           |      |                 |
-           |      |                 (4) this call could return NULL
-           |
-    <------+
-    |
-  'boxed_int* make_boxed_int(int)': events 5-6
-    |
-    |   NN |   boxed_int *result = (boxed_int *)wrapped_malloc (sizeof (boxed_int));
-    |      |                                    ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
-    |      |                                                   |
-    |      |                                                   (5) possible return of NULL to 'make_boxed_int' from 'wrapped_malloc'
-    |   NN |   result->i = i;
-    |      |   ~~~~~~~~~~~~~                     
-    |      |             |
-    |      |             (6) 'result' could be NULL: unchecked value from (4)
-    |
-  { dg-end-multiline-output "" { target c++ } } */
+  { dg-end-multiline-output "" } */
diff --git a/gcc/testsuite/c-c++-common/analyzer/signal-4a.c b/gcc/testsuite/gcc.dg/analyzer/signal-4a.c
similarity index 53%
rename from gcc/testsuite/c-c++-common/analyzer/signal-4a.c
rename to gcc/testsuite/gcc.dg/analyzer/signal-4a.c
index b5c6012ec2e..538adaea6ee 100644
--- a/gcc/testsuite/c-c++-common/analyzer/signal-4a.c
+++ b/gcc/testsuite/gcc.dg/analyzer/signal-4a.c
@@ -1,5 +1,8 @@
 /* Verify how paths are printed for signal-handler diagnostics.  */
 
+/* C only; attempting to generalize it for C++ leads
+   to an explosion of possibilities for the multiline output.  */
+
 /* { dg-options "-fanalyzer -fdiagnostics-show-line-numbers -fdiagnostics-path-format=inline-events -fdiagnostics-show-caret" } */
 /* { dg-enable-nn-line-numbers "" } */
 /* { dg-require-effective-target signal } */
@@ -12,8 +15,7 @@ extern void body_of_program(void);
 
 void custom_logger(const char *msg)
 {
-  fprintf(stderr, "LOG: %s", msg); /* { dg-warning "call to 'fprintf' from within signal handler" "" { target c } } */
-  /* { dg-warning "call to 'int fprintf\\(FILE\\*, const char\\*, ...\\)' from within signal handler" "" { target c++ } .-1 } */
+  fprintf(stderr, "LOG: %s", msg); /* { dg-warning "call to 'fprintf' from within signal handler" } */
 }
 
 static void int_handler(int signum)
@@ -74,49 +76,4 @@ void test (void)
                   |      |   |
                   |      |   (7) call to 'fprintf' from within signal handler
                   |
-  { dg-end-multiline-output "" { target c } } */
-/* { dg-begin-multiline-output "" }
-   NN |   fprintf(stderr, "LOG: %s", msg);
-      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
-  'void test()': events 1-2
-    |
-    |   NN | void test (void)
-    |      |      ^~~~
-    |      |      |
-    |      |      (1) entry to 'test'
-    |......
-    |   NN |   signal(SIGINT, int_handler);
-    |      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    |      |         |
-    |      |         (2) registering 'void int_handler(int)' as signal handler
-    |
-  event 3
-    |
-    |cc1plus:
-    | (3): later on, when the signal is delivered to the process
-    |
-    +--> 'void int_handler(int)': events 4-5
-           |
-           |   NN | static void int_handler(int signum)
-           |      |             ^~~~~~~~~~~
-           |      |             |
-           |      |             (4) entry to 'int_handler'
-           |   NN | {
-           |   NN |   custom_logger("got signal");
-           |      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-           |      |                |
-           |      |                (5) calling 'custom_logger' from 'int_handler'
-           |
-           +--> 'void custom_logger(const char*)': events 6-7
-                  |
-                  |   NN | void custom_logger(const char *msg)
-                  |      |      ^~~~~~~~~~~~~
-                  |      |      |
-                  |      |      (6) entry to 'custom_logger'
-                  |   NN | {
-                  |   NN |   fprintf(stderr, "LOG: %s", msg);
-                  |      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-                  |      |          |
-                  |      |          (7) call to 'int fprintf(FILE*, const char*, ...)' from within signal handler
-                  |
-  { dg-end-multiline-output "" { target c++ } } */
+  { dg-end-multiline-output "" } */
diff --git a/gcc/testsuite/c-c++-common/analyzer/signal-4b.c b/gcc/testsuite/gcc.dg/analyzer/signal-4b.c
similarity index 52%
rename from gcc/testsuite/c-c++-common/analyzer/signal-4b.c
rename to gcc/testsuite/gcc.dg/analyzer/signal-4b.c
index d2b5db7b276..5bf8c823ef9 100644
--- a/gcc/testsuite/c-c++-common/analyzer/signal-4b.c
+++ b/gcc/testsuite/gcc.dg/analyzer/signal-4b.c
@@ -1,5 +1,8 @@
 /* Verify how paths are printed for signal-handler diagnostics.  */
 
+/* C only; attempting to generalize it for C++ leads
+   to an explosion of possibilities for the multiline output.  */
+
 /* { dg-options "-fanalyzer -fdiagnostics-show-line-numbers -fdiagnostics-path-format=inline-events -fdiagnostics-show-caret" } */
 /* { dg-enable-nn-line-numbers "" } */
 /* { dg-require-effective-target signal } */
@@ -12,8 +15,7 @@ extern void body_of_program(void);
 
 void custom_logger(const char *msg)
 {
-  fprintf(stderr, "LOG: %s", msg); /* { dg-warning "call to 'fprintf' from within signal handler" "" { target c } } */
-  /* { dg-warning "call to 'int fprintf\\(FILE\\*, const char\\*, ...\\)' from within signal handler" "" { target c++ } .-1 } */
+  fprintf(stderr, "LOG: %s", msg); /* { dg-warning "call to 'fprintf' from within signal handler" } */
 }
 
 static void int_handler(int signum)
@@ -89,61 +91,4 @@ void test (void)
                   |      |   |
                   |      |   (9) call to 'fprintf' from within signal handler
                   |
-  { dg-end-multiline-output "" { target c } } */
-/* { dg-begin-multiline-output "" }
-   NN |   fprintf(stderr, "LOG: %s", msg);
-      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
-  'void test()': events 1-2
-    |
-    |   NN | void test (void)
-    |      |      ^~~~
-    |      |      |
-    |      |      (1) entry to 'test'
-    |   NN | {
-    |   NN |   __analyzer_register_handler ();
-    |      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    |      |                               |
-    |      |                               (2) calling '__analyzer_register_handler' from 'test'
-    |
-    +--> 'void __analyzer_register_handler()': events 3-4
-           |
-           |   NN | static void __analyzer_register_handler ()
-           |      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
-           |      |             |
-           |      |             (3) entry to '__analyzer_register_handler'
-           |   NN | {
-           |   NN |   signal(SIGINT, int_handler);
-           |      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-           |      |         |
-           |      |         (4) registering 'void int_handler(int)' as signal handler
-           |
-  event 5
-    |
-    |cc1plus:
-    | (5): later on, when the signal is delivered to the process
-    |
-    +--> 'void int_handler(int)': events 6-7
-           |
-           |   NN | static void int_handler(int signum)
-           |      |             ^~~~~~~~~~~
-           |      |             |
-           |      |             (6) entry to 'int_handler'
-           |   NN | {
-           |   NN |   custom_logger("got signal");
-           |      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-           |      |                |
-           |      |                (7) calling 'custom_logger' from 'int_handler'
-           |
-           +--> 'void custom_logger(const char*)': events 8-9
-                  |
-                  |   NN | void custom_logger(const char *msg)
-                  |      |      ^~~~~~~~~~~~~
-                  |      |      |
-                  |      |      (8) entry to 'custom_logger'
-                  |   NN | {
-                  |   NN |   fprintf(stderr, "LOG: %s", msg);
-                  |      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-                  |      |          |
-                  |      |          (9) call to 'int fprintf(FILE*, const char*, ...)' from within signal handler
-                  |
-  { dg-end-multiline-output "" { target c++ } } */
+  { dg-end-multiline-output "" } */

commit 54504e8c704f4c99275fcaced15a0944345ea31c
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Tue May 28 15:47:38 2024 -0400

    regenerate-opt-urls.py: fix transposed values for "vax" and "v850"
    
    gcc/ChangeLog:
            * config/v850/v850.opt.urls: Regenerate, with fix.
            * config/vax/vax.opt.urls: Likewise.
            * regenerate-opt-urls.py (TARGET_SPECIFIC_PAGES): Fix transposed
            values for "vax" and "v850".
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>
    (cherry picked from commit 7cc529fe514cc64e88208a6a7acfc6fe6419a453)

diff --git a/gcc/config/v850/v850.opt.urls b/gcc/config/v850/v850.opt.urls
index dc5a83107b3..a06f4833f47 100644
--- a/gcc/config/v850/v850.opt.urls
+++ b/gcc/config/v850/v850.opt.urls
@@ -1,60 +1,87 @@
 ; Autogenerated by regenerate-opt-urls.py from gcc/config/v850/v850.opt and generated HTML
 
-; skipping UrlSuffix for 'mapp-regs' due to finding no URLs
+mapp-regs
+UrlSuffix(gcc/V850-Options.html#index-mapp-regs-1)
 
-; skipping UrlSuffix for 'mbig-switch' due to finding no URLs
+mbig-switch
+UrlSuffix(gcc/V850-Options.html#index-mbig-switch-1)
 
 ; skipping UrlSuffix for 'mdebug' due to finding no URLs
 
-; skipping UrlSuffix for 'mdisable-callt' due to finding no URLs
+mdisable-callt
+UrlSuffix(gcc/V850-Options.html#index-mdisable-callt)
 
-; skipping UrlSuffix for 'mep' due to finding no URLs
+mep
+UrlSuffix(gcc/V850-Options.html#index-mep)
 
-; skipping UrlSuffix for 'mghs' due to finding no URLs
+mghs
+UrlSuffix(gcc/V850-Options.html#index-mghs)
 
-; skipping UrlSuffix for 'mlong-calls' due to finding no URLs
+mlong-calls
+UrlSuffix(gcc/V850-Options.html#index-mlong-calls-7)
 
-; skipping UrlSuffix for 'mprolog-function' due to finding no URLs
+mprolog-function
+UrlSuffix(gcc/V850-Options.html#index-mprolog-function)
 
-; skipping UrlSuffix for 'msda=' due to finding no URLs
+msda=
+UrlSuffix(gcc/V850-Options.html#index-msda)
 
-; skipping UrlSuffix for 'mspace' due to finding no URLs
+mspace
+UrlSuffix(gcc/V850-Options.html#index-mspace)
 
-; skipping UrlSuffix for 'mtda=' due to finding no URLs
+mtda=
+UrlSuffix(gcc/V850-Options.html#index-mtda)
 
 ; skipping UrlSuffix for 'mno-strict-align' due to finding no URLs
 
-; skipping UrlSuffix for 'mv850' due to finding no URLs
+mv850
+UrlSuffix(gcc/V850-Options.html#index-mv850)
 
-; skipping UrlSuffix for 'mv850e' due to finding no URLs
+mv850e
+UrlSuffix(gcc/V850-Options.html#index-mv850e)
 
-; skipping UrlSuffix for 'mv850e1' due to finding no URLs
+mv850e1
+UrlSuffix(gcc/V850-Options.html#index-mv850e1)
 
-; skipping UrlSuffix for 'mv850es' due to finding no URLs
+mv850es
+UrlSuffix(gcc/V850-Options.html#index-mv850es)
 
-; skipping UrlSuffix for 'mv850e2' due to finding no URLs
+mv850e2
+UrlSuffix(gcc/V850-Options.html#index-mv850e2)
 
-; skipping UrlSuffix for 'mv850e2v3' due to finding no URLs
+mv850e2v3
+UrlSuffix(gcc/V850-Options.html#index-mv850e2v3)
 
-; skipping UrlSuffix for 'mv850e3v5' due to finding no URLs
+mv850e3v5
+UrlSuffix(gcc/V850-Options.html#index-mv850e3v5)
 
-; skipping UrlSuffix for 'mv850e2v4' due to finding no URLs
+mv850e2v4
+UrlSuffix(gcc/V850-Options.html#index-mv850e2v4)
 
-; skipping UrlSuffix for 'mloop' due to finding no URLs
+mloop
+UrlSuffix(gcc/V850-Options.html#index-mloop-1)
 
-; skipping UrlSuffix for 'mzda=' due to finding no URLs
+mzda=
+UrlSuffix(gcc/V850-Options.html#index-mzda)
 
-; skipping UrlSuffix for 'mrelax' due to finding no URLs
+mrelax
+UrlSuffix(gcc/V850-Options.html#index-mrelax-9)
 
-; skipping UrlSuffix for 'mlong-jumps' due to finding no URLs
+mlong-jumps
+UrlSuffix(gcc/V850-Options.html#index-mlong-jumps)
 
-; skipping UrlSuffix for 'msoft-float' due to finding no URLs
+msoft-float
+UrlSuffix(gcc/V850-Options.html#index-msoft-float-14)
 
-; skipping UrlSuffix for 'mhard-float' due to finding no URLs
+mhard-float
+UrlSuffix(gcc/V850-Options.html#index-mhard-float-9)
 
-; skipping UrlSuffix for 'mrh850-abi' due to finding no URLs
+mrh850-abi
+UrlSuffix(gcc/V850-Options.html#index-mrh850-abi)
 
-; skipping UrlSuffix for 'mgcc-abi' due to finding no URLs
+mgcc-abi
+UrlSuffix(gcc/V850-Options.html#index-mgcc-abi)
 
-; skipping UrlSuffix for 'm8byte-align' due to finding no URLs
+m8byte-align
+UrlSuffix(gcc/V850-Options.html#index-m8byte-align)
 
diff --git a/gcc/config/vax/vax.opt.urls b/gcc/config/vax/vax.opt.urls
index c6b1c418b61..10bee25d833 100644
--- a/gcc/config/vax/vax.opt.urls
+++ b/gcc/config/vax/vax.opt.urls
@@ -1,10 +1,23 @@
 ; Autogenerated by regenerate-opt-urls.py from gcc/config/vax/vax.opt and generated HTML
 
-; skipping UrlSuffix for 'mg' due to finding no URLs
+md
+UrlSuffix(gcc/VAX-Options.html#index-md)
 
-; skipping UrlSuffix for 'mgnu' due to finding no URLs
+md-float
+UrlSuffix(gcc/VAX-Options.html#index-md-float)
 
-; skipping UrlSuffix for 'munix' due to finding no URLs
+mg
+UrlSuffix(gcc/VAX-Options.html#index-mg)
 
-; skipping UrlSuffix for 'mlra' due to finding no URLs
+mg-float
+UrlSuffix(gcc/VAX-Options.html#index-mg-float)
+
+mgnu
+UrlSuffix(gcc/VAX-Options.html#index-mgnu)
+
+munix
+UrlSuffix(gcc/VAX-Options.html#index-munix)
+
+mlra
+UrlSuffix(gcc/VAX-Options.html#index-mlra-4)
 
diff --git a/gcc/regenerate-opt-urls.py b/gcc/regenerate-opt-urls.py
index 50f1fa04bc9..666993ea0b9 100755
--- a/gcc/regenerate-opt-urls.py
+++ b/gcc/regenerate-opt-urls.py
@@ -260,8 +260,8 @@ TARGET_SPECIFIC_PAGES = {
     'gcc/SH-Options.html' : 'gcc/config/sh/',
     'gcc/SPARC-Options.html' : 'gcc/config/sparc/',
     'gcc/S_002f390-and-zSeries-Options.html' : 'gcc/config/s390',
-    'gcc/V850-Options.html' : 'gcc/config/vax/',
-    'gcc/VAX-Options.html' : 'gcc/config/v850/',
+    'gcc/V850-Options.html' : 'gcc/config/v850/',
+    'gcc/VAX-Options.html' : 'gcc/config/vax/',
     'gcc/Visium-Options.html' : 'gcc/config/visium/',
     'gcc/Xstormy16-Options.html' : 'gcc/config/stormy16/',
     'gcc/Xtensa-Options.html' : 'gcc/config/xtensa/',

commit 07485ccd31935b1f82d321f91c677840bd05247c
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Fri Jun 21 08:46:13 2024 -0400

    diagnostics: fixes to SARIF output [PR109360]
    
    When adding validation of .sarif files against the schema
    (PR testsuite/109360) I discovered various issues where we were
    generating invalid .sarif files.
    
    Specifically, in
      c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c
    the relatedLocations for the "note" diagnostics were missing column
    numbers, leading to validation failure due to non-unique elements,
    such as multiple:
            "message": {"text": "invalid UTF-8 character <bf>"}},
    on line 25 with no column information.
    
    Root cause is that for some diagnostics in libcpp we have a location_t
    representing the line as a whole, setting a column_override on the
    rich_location (since the line hasn't been fully read yet).  We were
    handling this column override for plain text output, but not for .sarif
    output.
    
    Similarly, in diagnostic-format-sarif-file-pr111700.c there is a warning
    emitted on "line 0" of the file, whereas SARIF requires line numbers to
    be positive.
    
    We also use column == 0 internally to mean "the line as a whole",
    whereas SARIF required column numbers to be positive.
    
    This patch fixes these various issues.
    
    gcc/ChangeLog:
            PR testsuite/109360
            * diagnostic-format-sarif.cc
            (sarif_builder::make_location_object): Pass any column override
            from rich_loc to maybe_make_physical_location_object.
            (sarif_builder::maybe_make_physical_location_object): Add
            "column_override" param and pass it to maybe_make_region_object.
            (sarif_builder::maybe_make_region_object): Add "column_override"
            param and use it when the location has 0 for a column.  Don't
            add "startLine", "startColumn", "endLine", or "endColumn" if
            the values aren't positive.
            (sarif_builder::maybe_make_region_object_for_context): Don't
            add "startLine" or "endLine" if the values aren't positive.
    
    libcpp/ChangeLog:
            PR testsuite/109360
            * include/rich-location.h (rich_location::get_column_override):
            New accessor.
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>
    (cherry picked from commit 9f4fdc3acebcf6b045edea1361570658da4bc0ab)

diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc
index 97c5943cd33..d27614d6c87 100644
--- a/gcc/diagnostic-format-sarif.cc
+++ b/gcc/diagnostic-format-sarif.cc
@@ -189,11 +189,14 @@ private:
   make_thread_flow_location_object (const diagnostic_event &event,
 				    int path_event_idx);
   json::array *maybe_make_kinds_array (diagnostic_event::meaning m) const;
-  json::object *maybe_make_physical_location_object (location_t loc);
+  json::object *
+  maybe_make_physical_location_object (location_t loc,
+				       int column_override);
   json::object *make_artifact_location_object (location_t loc);
   json::object *make_artifact_location_object (const char *filename);
   json::object *make_artifact_location_object_for_pwd () const;
-  json::object *maybe_make_region_object (location_t loc) const;
+  json::object *maybe_make_region_object (location_t loc,
+					  int column_override) const;
   json::object *maybe_make_region_object_for_context (location_t loc) const;
   json::object *make_region_object_for_hint (const fixit_hint &hint) const;
   json::object *make_multiformat_message_string (const char *msg) const;
@@ -771,7 +774,9 @@ sarif_builder::make_location_object (const rich_location &rich_loc,
   location_t loc = rich_loc.get_loc ();
 
   /* "physicalLocation" property (SARIF v2.1.0 section 3.28.3).  */
-  if (json::object *phs_loc_obj = maybe_make_physical_location_object (loc))
+  if (json::object *phs_loc_obj
+	= maybe_make_physical_location_object (loc,
+					       rich_loc.get_column_override ()))
     location_obj->set ("physicalLocation", phs_loc_obj);
 
   /* "logicalLocations" property (SARIF v2.1.0 section 3.28.4).  */
@@ -790,7 +795,8 @@ sarif_builder::make_location_object (const diagnostic_event &event)
 
   /* "physicalLocation" property (SARIF v2.1.0 section 3.28.3).  */
   location_t loc = event.get_location ();
-  if (json::object *phs_loc_obj = maybe_make_physical_location_object (loc))
+  if (json::object *phs_loc_obj
+	= maybe_make_physical_location_object (loc, 0))
     location_obj->set ("physicalLocation", phs_loc_obj);
 
   /* "logicalLocations" property (SARIF v2.1.0 section 3.28.4).  */
@@ -805,12 +811,15 @@ sarif_builder::make_location_object (const diagnostic_event &event)
   return location_obj;
 }
 
-/* Make a physicalLocation object (SARIF v2.1.0 section 3.29) for LOC,
-   or return NULL;
-   Add any filename to the m_artifacts.  */
+/* Make a physicalLocation object (SARIF v2.1.0 section 3.29) for LOC.
+
+   If COLUMN_OVERRIDE is non-zero, then use it as the column number
+   if LOC has no column information.  */
 
 json::object *
-sarif_builder::maybe_make_physical_location_object (location_t loc)
+sarif_builder::
+maybe_make_physical_location_object (location_t loc,
+				     int column_override)
 {
   if (loc <= BUILTINS_LOCATION || LOCATION_FILE (loc) == NULL)
     return NULL;
@@ -823,7 +832,8 @@ sarif_builder::maybe_make_physical_location_object (location_t loc)
   m_filenames.add (LOCATION_FILE (loc));
 
   /* "region" property (SARIF v2.1.0 section 3.29.4).  */
-  if (json::object *region_obj = maybe_make_region_object (loc))
+  if (json::object *region_obj = maybe_make_region_object (loc,
+							   column_override))
     phys_loc_obj->set ("region", region_obj);
 
   /* "contextRegion" property (SARIF v2.1.0 section 3.29.5).  */
@@ -929,10 +939,14 @@ sarif_builder::get_sarif_column (expanded_location exploc) const
 }
 
 /* Make a region object (SARIF v2.1.0 section 3.30) for LOC,
-   or return NULL.  */
+   or return NULL.
+
+   If COLUMN_OVERRIDE is non-zero, then use it as the column number
+   if LOC has no column information.  */
 
 json::object *
-sarif_builder::maybe_make_region_object (location_t loc) const
+sarif_builder::maybe_make_region_object (location_t loc,
+					 int column_override) const
 {
   location_t caret_loc = get_pure_location (loc);
 
@@ -954,21 +968,40 @@ sarif_builder::maybe_make_region_object (location_t loc) const
   json::object *region_obj = new json::object ();
 
   /* "startLine" property (SARIF v2.1.0 section 3.30.5) */
-  region_obj->set_integer ("startLine", exploc_start.line);
+  if (exploc_start.line > 0)
+    region_obj->set_integer ("startLine", exploc_start.line);
 
-  /* "startColumn" property (SARIF v2.1.0 section 3.30.6) */
-  region_obj->set_integer ("startColumn", get_sarif_column (exploc_start));
+  /* "startColumn" property (SARIF v2.1.0 section 3.30.6).
+
+     We use column == 0 to mean the whole line, so omit the column
+     information for this case, unless COLUMN_OVERRIDE is non-zero,
+     (for handling certain awkward lexer diagnostics)  */
+
+  if (exploc_start.column == 0 && column_override)
+    /* Use the provided column number.  */
+    exploc_start.column = column_override;
+
+  if (exploc_start.column > 0)
+    {
+      int start_column = get_sarif_column (exploc_start);
+      region_obj->set_integer ("startColumn", start_column);
+    }
 
   /* "endLine" property (SARIF v2.1.0 section 3.30.7) */
-  if (exploc_finish.line != exploc_start.line)
+  if (exploc_finish.line != exploc_start.line
+      && exploc_finish.line > 0)
     region_obj->set_integer ("endLine", exploc_finish.line);
 
   /* "endColumn" property (SARIF v2.1.0 section 3.30.8).
-     This expresses the column immediately beyond the range.  */
-  {
-    int next_column = sarif_builder::get_sarif_column (exploc_finish) + 1;
-    region_obj->set_integer ("endColumn", next_column);
-  }
+     This expresses the column immediately beyond the range.
+
+     We use column == 0 to mean the whole line, so omit the column
+     information for this case.  */
+  if (exploc_finish.column > 0)
+    {
+      int next_column = get_sarif_column (exploc_finish) + 1;
+      region_obj->set_integer ("endColumn", next_column);
+    }
 
   return region_obj;
 }
@@ -1004,10 +1037,12 @@ sarif_builder::maybe_make_region_object_for_context (location_t loc) const
   json::object *region_obj = new json::object ();
 
   /* "startLine" property (SARIF v2.1.0 section 3.30.5) */
-  region_obj->set_integer ("startLine", exploc_start.line);
+  if (exploc_start.line > 0)
+    region_obj->set_integer ("startLine", exploc_start.line);
 
   /* "endLine" property (SARIF v2.1.0 section 3.30.7) */
-  if (exploc_finish.line != exploc_start.line)
+  if (exploc_finish.line != exploc_start.line
+      && exploc_finish.line > 0)
     region_obj->set_integer ("endLine", exploc_finish.line);
 
   /* "snippet" property (SARIF v2.1.0 section 3.30.13).  */
diff --git a/libcpp/include/rich-location.h b/libcpp/include/rich-location.h
index 94c6e440053..d5c343defcd 100644
--- a/libcpp/include/rich-location.h
+++ b/libcpp/include/rich-location.h
@@ -511,6 +511,8 @@ class rich_location
 
   const line_maps *get_line_table () const { return m_line_table; }
 
+  int get_column_override () const { return m_column_override; }
+
 private:
   bool reject_impossible_fixit (location_t where);
   void stop_supporting_fixits ();

commit bf01dcd117ceabff839bb002b9eba4494656fd02
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Fri Jun 21 08:46:14 2024 -0400

    testsuite: check that generated .sarif files validate against the SARIF schema [PR109360]
    
    This patch extends the dg directive verify-sarif-file so that if
    the "jsonschema" tool is available, it will be used to validate the
    generated .sarif file.
    
    Tested with jsonschema 3.2 with Python 3.8
    
    gcc/ChangeLog:
            PR testsuite/109360
            * doc/install.texi: Mention optional usage of "jsonschema" tool.
    
    gcc/testsuite/ChangeLog:
            PR testsuite/109360
            * lib/sarif-schema-2.1.0.json: New file, downloaded from
            https://docs.oasis-open.org/sarif/sarif/v2.1.0/os/schemas/sarif-schema-2.1.0.json
            Licensing information can be seen at
            https://github.com/oasis-tcs/sarif-spec/issues/583
            which states "They are free to incorporate it into their
            implementation. No need for special permission or paperwork from
            OASIS."
            * lib/scansarif.exp (verify-sarif-file): If "jsonschema" is
            available, use it to verify that the .sarif file complies with the
            SARIF schema.
            * lib/target-supports.exp (check_effective_target_jsonschema):
            New.
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>
    (cherry picked from commit a84fe222029ff21903283cc8ee4bc760ebf80ec2)

diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 9f2e427be68..0d93e6c428f 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -463,6 +463,11 @@ is shown below:
 @item g++ testsuite
 @code{gcov}, @code{gzip}, @code{json}, @code{os} and @code{pytest}.
 
+@item SARIF testsuite
+Tests of SARIF output will use the @code{jsonschema} program from the
+@code{jsonschema} module (if available) to validate generated .sarif files.
+If this tool is not found, the validation parts of those tests are skipped.
+
 @item c++ cxx api generation
 @code{csv}, @code{os}, @code{sys} and @code{time}.
 
diff --git a/gcc/testsuite/lib/sarif-schema-2.1.0.json b/gcc/testsuite/lib/sarif-schema-2.1.0.json
new file mode 100644
index 00000000000..e0b65245710
--- /dev/null
+++ b/gcc/testsuite/lib/sarif-schema-2.1.0.json
@@ -0,0 +1,3370 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "title": "Static Analysis Results Format (SARIF) Version 2.1.0 JSON Schema",
+  "$id": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
+  "description": "Static Analysis Results Format (SARIF) Version 2.1.0 JSON Schema: a standard format for the output of static analysis tools.",
+  "additionalProperties": false,
+  "type": "object",
+  "properties": {
+
+    "$schema": {
+      "description": "The URI of the JSON schema corresponding to the version.",
+      "type": "string",
+      "format": "uri"
+    },
+
+    "version": {
+      "description": "The SARIF format version of this log file.",
+      "enum": [ "2.1.0" ]
+    },
+
+    "runs": {
+      "description": "The set of runs contained in this log file.",
+      "type": "array",
+      "minItems": 0,
+      "uniqueItems": false,
+      "items": {
+        "$ref": "#/definitions/run"
+      }
+    },
+
+    "inlineExternalProperties": {
+      "description": "References to external property files that share data between runs.",
+      "type": "array",
+      "minItems": 0,
+      "uniqueItems": true,
+      "items": {
+        "$ref": "#/definitions/externalProperties"
+      }
+    },
+
+    "properties": {
+      "description": "Key/value pairs that provide additional information about the log file.",
+      "$ref": "#/definitions/propertyBag"
+    }
+  },
+
+  "required": [ "version", "runs" ],
+
+  "definitions": {
+
+    "address": {
+      "description": "A physical or virtual address, or a range of addresses, in an 'addressable region' (memory or a binary file).",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "absoluteAddress": {
+          "description": "The address expressed as a byte offset from the start of the addressable region.",
+          "type": "integer",
+          "minimum": -1,
+          "default": -1
+
+        },
+
+        "relativeAddress": {
+          "description": "The address expressed as a byte offset from the absolute address of the top-most parent object.",
+          "type": "integer"
+
+        },
+
+        "length": {
+          "description": "The number of bytes in this range of addresses.",
+          "type": "integer"
+        },
+
+        "kind": {
+          "description": "An open-ended string that identifies the address kind. 'data', 'function', 'header','instruction', 'module', 'page', 'section', 'segment', 'stack', 'stackFrame', 'table' are well-known values.",
+          "type": "string"
+        },
+
+        "name": {
+          "description": "A name that is associated with the address, e.g., '.text'.",
+          "type": "string"
+        },
+
+        "fullyQualifiedName": {
+          "description": "A human-readable fully qualified name that is associated with the address.",
+          "type": "string"
+        },
+
+        "offsetFromParent": {
+          "description": "The byte offset of this address from the absolute or relative address of the parent object.",
+          "type": "integer"
+        },
+
+        "index": {
+          "description": "The index within run.addresses of the cached object for this address.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "parentIndex": {
+          "description": "The index within run.addresses of the parent object.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the address.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "artifact": {
+      "description": "A single artifact. In some cases, this artifact might be nested within another artifact.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "description": {
+          "description": "A short description of the artifact.",
+          "$ref": "#/definitions/message"
+        },
+
+        "location": {
+          "description": "The location of the artifact.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "parentIndex": {
+          "description": "Identifies the index of the immediate parent of the artifact, if this artifact is nested.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "offset": {
+          "description": "The offset in bytes of the artifact within its containing artifact.",
+          "type": "integer",
+          "minimum": 0
+        },
+
+        "length": {
+          "description": "The length of the artifact in bytes.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "roles": {
+          "description": "The role or roles played by the artifact in the analysis.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "enum": [
+              "analysisTarget",
+              "attachment",
+              "responseFile",
+              "resultFile",
+              "standardStream",
+              "tracedFile",
+              "unmodified",
+              "modified",
+              "added",
+              "deleted",
+              "renamed",
+              "uncontrolled",
+              "driver",
+              "extension",
+              "translation",
+              "taxonomy",
+              "policy",
+              "referencedOnCommandLine",
+              "memoryContents",
+              "directory",
+              "userSpecifiedConfiguration",
+              "toolSpecifiedConfiguration",
+              "debugOutputFile"
+            ]
+          }
+        },
+
+        "mimeType": {
+          "description": "The MIME type (RFC 2045) of the artifact.",
+          "type": "string",
+          "pattern": "[^/]+/.+"
+        },
+
+        "contents": {
+          "description": "The contents of the artifact.",
+          "$ref": "#/definitions/artifactContent"
+        },
+
+        "encoding": {
+          "description": "Specifies the encoding for an artifact object that refers to a text file.",
+          "type": "string"
+        },
+
+        "sourceLanguage": {
+          "description": "Specifies the source language for any artifact object that refers to a text file that contains source code.",
+          "type": "string"
+        },
+
+        "hashes": {
+          "description": "A dictionary, each of whose keys is the name of a hash function and each of whose values is the hashed value of the artifact produced by the specified hash function.",
+          "type": "object",
+          "additionalProperties": {
+            "type": "string"
+          }
+        },
+
+        "lastModifiedTimeUtc": {
+          "description": "The Coordinated Universal Time (UTC) date and time at which the artifact was most recently modified. See \"Date/time properties\" in the SARIF spec for the required format.",
+          "type": "string",
+          "format": "date-time"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the artifact.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "artifactChange": {
+      "description": "A change to a single artifact.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "artifactLocation": {
+          "description": "The location of the artifact to change.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "replacements": {
+          "description": "An array of replacement objects, each of which represents the replacement of a single region in a single artifact specified by 'artifactLocation'.",
+          "type": "array",
+          "minItems": 1,
+          "uniqueItems": false,
+          "items": {
+            "$ref": "#/definitions/replacement"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the change.",
+          "$ref": "#/definitions/propertyBag"
+        }
+
+      },
+
+      "required": [ "artifactLocation", "replacements" ]
+    },
+
+    "artifactContent": {
+      "description": "Represents the contents of an artifact.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "text": {
+          "description": "UTF-8-encoded content from a text artifact.",
+          "type": "string"
+        },
+
+        "binary": {
+          "description": "MIME Base64-encoded content from a binary artifact, or from a text artifact in its original encoding.",
+          "type": "string"
+        },
+
+        "rendered": {
+          "description": "An alternate rendered representation of the artifact (e.g., a decompiled representation of a binary region).",
+          "$ref": "#/definitions/multiformatMessageString"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the artifact content.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "artifactLocation": {
+      "description": "Specifies the location of an artifact.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "uri": {
+          "description": "A string containing a valid relative or absolute URI.",
+          "type": "string",
+          "format": "uri-reference"
+        },
+
+        "uriBaseId": {
+          "description": "A string which indirectly specifies the absolute URI with respect to which a relative URI in the \"uri\" property is interpreted.",
+          "type": "string"
+        },
+
+        "index": {
+          "description": "The index within the run artifacts array of the artifact object associated with the artifact location.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "description": {
+          "description": "A short description of the artifact location.",
+          "$ref": "#/definitions/message"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the artifact location.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "attachment": {
+      "description": "An artifact relevant to a result.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "description": {
+          "description": "A message describing the role played by the attachment.",
+          "$ref": "#/definitions/message"
+        },
+
+        "artifactLocation": {
+          "description": "The location of the attachment.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "regions": {
+          "description": "An array of regions of interest within the attachment.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/region"
+          }
+        },
+
+        "rectangles": {
+          "description": "An array of rectangles specifying areas of interest within the image.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/rectangle"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the attachment.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "artifactLocation" ]
+    },
+
+    "codeFlow": {
+      "description": "A set of threadFlows which together describe a pattern of code execution relevant to detecting a result.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "message": {
+          "description": "A message relevant to the code flow.",
+          "$ref": "#/definitions/message"
+        },
+
+        "threadFlows": {
+          "description": "An array of one or more unique threadFlow objects, each of which describes the progress of a program through a thread of execution.",
+          "type": "array",
+          "minItems": 1,
+          "uniqueItems": false,
+          "items": {
+            "$ref": "#/definitions/threadFlow"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the code flow.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "threadFlows" ]
+    },
+
+    "configurationOverride": {
+      "description": "Information about how a specific rule or notification was reconfigured at runtime.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "configuration": {
+          "description": "Specifies how the rule or notification was configured during the scan.",
+          "$ref": "#/definitions/reportingConfiguration"
+        },
+
+        "descriptor": {
+          "description": "A reference used to locate the descriptor whose configuration was overridden.",
+          "$ref": "#/definitions/reportingDescriptorReference"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the configuration override.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "configuration", "descriptor" ]
+    },
+
+    "conversion": {
+      "description": "Describes how a converter transformed the output of a static analysis tool from the analysis tool's native output format into the SARIF format.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "tool": {
+          "description": "A tool object that describes the converter.",
+          "$ref": "#/definitions/tool"
+        },
+
+        "invocation": {
+          "description": "An invocation object that describes the invocation of the converter.",
+          "$ref": "#/definitions/invocation"
+        },
+
+        "analysisToolLogFiles": {
+          "description": "The locations of the analysis tool's per-run log files.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/artifactLocation"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the conversion.",
+          "$ref": "#/definitions/propertyBag"
+        }
+
+      },
+
+      "required": [ "tool" ]
+    },
+
+    "edge": {
+      "description": "Represents a directed edge in a graph.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "id": {
+          "description": "A string that uniquely identifies the edge within its graph.",
+          "type": "string"
+        },
+
+        "label": {
+          "description": "A short description of the edge.",
+          "$ref": "#/definitions/message"
+        },
+
+        "sourceNodeId": {
+          "description": "Identifies the source node (the node at which the edge starts).",
+          "type": "string"
+        },
+
+        "targetNodeId": {
+          "description": "Identifies the target node (the node at which the edge ends).",
+          "type": "string"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the edge.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "id", "sourceNodeId", "targetNodeId" ]
+    },
+
+    "edgeTraversal": {
+      "description": "Represents the traversal of a single edge during a graph traversal.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "edgeId": {
+          "description": "Identifies the edge being traversed.",
+          "type": "string"
+        },
+
+        "message": {
+          "description": "A message to display to the user as the edge is traversed.",
+          "$ref": "#/definitions/message"
+        },
+
+        "finalState": {
+          "description": "The values of relevant expressions after the edge has been traversed.",
+          "type": "object",
+          "additionalProperties": {
+            "$ref": "#/definitions/multiformatMessageString"
+          }
+        },
+
+        "stepOverEdgeCount": {
+          "description": "The number of edge traversals necessary to return from a nested graph.",
+          "type": "integer",
+          "minimum": 0
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the edge traversal.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "edgeId" ]
+    },
+
+    "exception": {
+      "description": "Describes a runtime exception encountered during the execution of an analysis tool.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "kind": {
+          "type": "string",
+          "description": "A string that identifies the kind of exception, for example, the fully qualified type name of an object that was thrown, or the symbolic name of a signal."
+        },
+
+        "message": {
+          "description": "A message that describes the exception.",
+          "type": "string"
+        },
+
+        "stack": {
+          "description": "The sequence of function calls leading to the exception.",
+          "$ref": "#/definitions/stack"
+        },
+
+        "innerExceptions": {
+          "description": "An array of exception objects each of which is considered a cause of this exception.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/exception"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the exception.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "externalProperties": {
+      "description": "The top-level element of an external property file.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "schema": {
+          "description": "The URI of the JSON schema corresponding to the version of the external property file format.",
+          "type": "string",
+          "format": "uri"
+        },
+
+        "version": {
+          "description": "The SARIF format version of this external properties object.",
+          "enum": [ "2.1.0" ]
+        },
+
+        "guid": {
+          "description": "A stable, unique identifer for this external properties object, in the form of a GUID.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "runGuid": {
+          "description": "A stable, unique identifer for the run associated with this external properties object, in the form of a GUID.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "conversion": {
+          "description": "A conversion object that will be merged with a separate run.",
+          "$ref": "#/definitions/conversion"
+        },
+
+        "graphs": {
+          "description": "An array of graph objects that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "default": [],
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/graph"
+          }
+        },
+
+        "externalizedProperties": {
+          "description": "Key/value pairs that provide additional information that will be merged with a separate run.",
+          "$ref": "#/definitions/propertyBag"
+        },
+
+        "artifacts": {
+          "description": "An array of artifact objects that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/artifact"
+          }
+        },
+
+        "invocations": {
+          "description": "Describes the invocation of the analysis tool that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/invocation"
+          }
+        },
+
+        "logicalLocations": {
+          "description": "An array of logical locations such as namespaces, types or functions that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/logicalLocation"
+          }
+        },
+
+        "threadFlowLocations": {
+          "description": "An array of threadFlowLocation objects that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/threadFlowLocation"
+          }
+        },
+
+        "results": {
+          "description": "An array of result objects that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/result"
+          }
+        },
+
+        "taxonomies": {
+          "description": "Tool taxonomies that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/toolComponent"
+          }
+        },
+
+        "driver": {
+          "description": "The analysis tool object that will be merged with a separate run.",
+          "$ref": "#/definitions/toolComponent"
+        },
+
+        "extensions": {
+          "description": "Tool extensions that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/toolComponent"
+          }
+        },
+
+        "policies": {
+          "description": "Tool policies that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/toolComponent"
+          }
+        },
+
+        "translations": {
+          "description": "Tool translations that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/toolComponent"
+          }
+        },
+
+        "addresses": {
+          "description": "Addresses that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/address"
+          }
+        },
+
+        "webRequests": {
+          "description": "Requests that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/webRequest"
+          }
+        },
+
+        "webResponses": {
+          "description": "Responses that will be merged with a separate run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/webResponse"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the external properties.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "externalPropertyFileReference": {
+      "description": "Contains information that enables a SARIF consumer to locate the external property file that contains the value of an externalized property associated with the run.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "location": {
+          "description": "The location of the external property file.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "guid": {
+          "description": "A stable, unique identifer for the external property file in the form of a GUID.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "itemCount": {
+          "description": "A non-negative integer specifying the number of items contained in the external property file.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the external property file.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "anyOf": [
+        { "required": [ "location" ] },
+        { "required": [ "guid" ] }
+      ]
+    },
+
+    "externalPropertyFileReferences": {
+      "description": "References to external property files that should be inlined with the content of a root log file.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "conversion": {
+          "description": "An external property file containing a run.conversion object to be merged with the root log file.",
+          "$ref": "#/definitions/externalPropertyFileReference"
+        },
+
+        "graphs": {
+          "description": "An array of external property files containing a run.graphs object to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "externalizedProperties": {
+          "description": "An external property file containing a run.properties object to be merged with the root log file.",
+          "$ref": "#/definitions/externalPropertyFileReference"
+        },
+
+        "artifacts": {
+          "description": "An array of external property files containing run.artifacts arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "invocations": {
+          "description": "An array of external property files containing run.invocations arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "logicalLocations": {
+          "description": "An array of external property files containing run.logicalLocations arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "threadFlowLocations": {
+          "description": "An array of external property files containing run.threadFlowLocations arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "results": {
+          "description": "An array of external property files containing run.results arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "taxonomies": {
+          "description": "An array of external property files containing run.taxonomies arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "addresses": {
+          "description": "An array of external property files containing run.addresses arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "driver": {
+          "description": "An external property file containing a run.driver object to be merged with the root log file.",
+          "$ref": "#/definitions/externalPropertyFileReference"
+        },
+
+        "extensions": {
+          "description": "An array of external property files containing run.extensions arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "policies": {
+          "description": "An array of external property files containing run.policies arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "translations": {
+          "description": "An array of external property files containing run.translations arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "webRequests": {
+          "description": "An array of external property files containing run.requests arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "webResponses": {
+          "description": "An array of external property files containing run.responses arrays to be merged with the root log file.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/externalPropertyFileReference"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the external property files.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "fix": {
+      "description": "A proposed fix for the problem represented by a result object. A fix specifies a set of artifacts to modify. For each artifact, it specifies a set of bytes to remove, and provides a set of new bytes to replace them.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "description": {
+          "description": "A message that describes the proposed fix, enabling viewers to present the proposed change to an end user.",
+          "$ref": "#/definitions/message"
+        },
+
+        "artifactChanges": {
+          "description": "One or more artifact changes that comprise a fix for a result.",
+          "type": "array",
+          "minItems": 1,
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/artifactChange"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the fix.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "artifactChanges" ]
+    },
+
+    "graph": {
+      "description": "A network of nodes and directed edges that describes some aspect of the structure of the code (for example, a call graph).",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "description": {
+          "description": "A description of the graph.",
+          "$ref": "#/definitions/message"
+        },
+
+        "nodes": {
+          "description": "An array of node objects representing the nodes of the graph.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/node"
+          }
+        },
+
+        "edges": {
+          "description": "An array of edge objects representing the edges of the graph.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/edge"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the graph.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "graphTraversal": {
+      "description": "Represents a path through a graph.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "runGraphIndex": {
+          "description": "The index within the run.graphs to be associated with the result.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "resultGraphIndex": {
+          "description": "The index within the result.graphs to be associated with the result.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "description": {
+          "description": "A description of this graph traversal.",
+          "$ref": "#/definitions/message"
+        },
+
+        "initialState": {
+          "description": "Values of relevant expressions at the start of the graph traversal that may change during graph traversal.",
+          "type": "object",
+          "additionalProperties": {
+            "$ref": "#/definitions/multiformatMessageString"
+          }
+        },
+
+        "immutableState": {
+          "description": "Values of relevant expressions at the start of the graph traversal that remain constant for the graph traversal.",
+          "type": "object",
+          "additionalProperties": {
+            "$ref": "#/definitions/multiformatMessageString"
+          }
+        },
+
+        "edgeTraversals": {
+          "description": "The sequences of edges traversed by this graph traversal.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/edgeTraversal"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the graph traversal.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "oneOf": [
+        { "required": [ "runGraphIndex" ] },
+        { "required": [ "resultGraphIndex" ] }
+      ]
+    },
+
+    "invocation": {
+      "description": "The runtime environment of the analysis tool run.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "commandLine": {
+          "description": "The command line used to invoke the tool.",
+          "type": "string"
+        },
+
+        "arguments": {
+          "description": "An array of strings, containing in order the command line arguments passed to the tool from the operating system.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "items": {
+            "type": "string"
+          }
+        },
+
+        "responseFiles": {
+          "description": "The locations of any response files specified on the tool's command line.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/artifactLocation"
+          }
+        },
+
+        "startTimeUtc": {
+          "description": "The Coordinated Universal Time (UTC) date and time at which the invocation started. See \"Date/time properties\" in the SARIF spec for the required format.",
+          "type": "string",
+          "format": "date-time"
+        },
+
+        "endTimeUtc": {
+          "description": "The Coordinated Universal Time (UTC) date and time at which the invocation ended. See \"Date/time properties\" in the SARIF spec for the required format.",
+          "type": "string",
+          "format": "date-time"
+        },
+
+        "exitCode": {
+          "description": "The process exit code.",
+          "type": "integer"
+        },
+
+        "ruleConfigurationOverrides": {
+          "description": "An array of configurationOverride objects that describe rules related runtime overrides.",
+          "type": "array",
+          "minItems": 0,
+          "default": [],
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/configurationOverride"
+          }
+        },
+
+        "notificationConfigurationOverrides": {
+          "description": "An array of configurationOverride objects that describe notifications related runtime overrides.",
+          "type": "array",
+          "minItems": 0,
+          "default": [],
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/configurationOverride"
+          }
+        },
+
+        "toolExecutionNotifications": {
+          "description": "A list of runtime conditions detected by the tool during the analysis.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/notification"
+          }
+        },
+
+        "toolConfigurationNotifications": {
+          "description": "A list of conditions detected by the tool that are relevant to the tool's configuration.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/notification"
+          }
+        },
+
+        "exitCodeDescription": {
+          "description": "The reason for the process exit.",
+          "type": "string"
+        },
+
+        "exitSignalName": {
+          "description": "The name of the signal that caused the process to exit.",
+          "type": "string"
+        },
+
+        "exitSignalNumber": {
+          "description": "The numeric value of the signal that caused the process to exit.",
+          "type": "integer"
+        },
+
+        "processStartFailureMessage": {
+          "description": "The reason given by the operating system that the process failed to start.",
+          "type": "string"
+        },
+
+        "executionSuccessful": {
+          "description": "Specifies whether the tool's execution completed successfully.",
+          "type": "boolean"
+        },
+
+        "machine": {
+          "description": "The machine on which the invocation occurred.",
+          "type": "string"
+        },
+
+        "account": {
+          "description": "The account under which the invocation occurred.",
+          "type": "string"
+        },
+
+        "processId": {
+          "description": "The id of the process in which the invocation occurred.",
+          "type": "integer"
+        },
+
+        "executableLocation": {
+          "description": "An absolute URI specifying the location of the executable that was invoked.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "workingDirectory": {
+          "description": "The working directory for the invocation.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "environmentVariables": {
+          "description": "The environment variables associated with the analysis tool process, expressed as key/value pairs.",
+          "type": "object",
+          "additionalProperties": {
+            "type": "string"
+          }
+        },
+
+        "stdin": {
+          "description": "A file containing the standard input stream to the process that was invoked.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "stdout": {
+          "description": "A file containing the standard output stream from the process that was invoked.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "stderr": {
+          "description": "A file containing the standard error stream from the process that was invoked.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "stdoutStderr": {
+          "description": "A file containing the interleaved standard output and standard error stream from the process that was invoked.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the invocation.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "executionSuccessful" ]
+    },
+
+    "location": {
+      "description": "A location within a programming artifact.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "id": {
+          "description": "Value that distinguishes this location from all other locations within a single result object.",
+          "type": "integer",
+          "minimum": -1,
+          "default": -1
+        },
+
+        "physicalLocation": {
+          "description": "Identifies the artifact and region.",
+          "$ref": "#/definitions/physicalLocation"
+        },
+
+        "logicalLocations": {
+          "description": "The logical locations associated with the result.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/logicalLocation"
+          }
+        },
+
+        "message": {
+          "description": "A message relevant to the location.",
+          "$ref": "#/definitions/message"
+        },
+
+        "annotations": {
+          "description": "A set of regions relevant to the location.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/region"
+          }
+        },
+
+        "relationships": {
+          "description": "An array of objects that describe relationships between this location and others.",
+          "type": "array",
+          "default": [],
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/locationRelationship"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the location.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "locationRelationship": {
+      "description": "Information about the relation of one location to another.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "target": {
+          "description": "A reference to the related location.",
+          "type": "integer",
+          "minimum": 0
+        },
+
+        "kinds": {
+          "description": "A set of distinct strings that categorize the relationship. Well-known kinds include 'includes', 'isIncludedBy' and 'relevant'.",
+          "type": "array",
+          "default": [ "relevant" ],
+          "uniqueItems": true,
+          "items": {
+            "type": "string"
+          }
+        },
+
+        "description": {
+          "description": "A description of the location relationship.",
+          "$ref": "#/definitions/message"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the location relationship.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "target" ]
+    },
+
+    "logicalLocation": {
+      "description": "A logical location of a construct that produced a result.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "name": {
+          "description": "Identifies the construct in which the result occurred. For example, this property might contain the name of a class or a method.",
+          "type": "string"
+        },
+
+        "index": {
+          "description": "The index within the logical locations array.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "fullyQualifiedName": {
+          "description": "The human-readable fully qualified name of the logical location.",
+          "type": "string"
+        },
+
+        "decoratedName": {
+          "description": "The machine-readable name for the logical location, such as a mangled function name provided by a C++ compiler that encodes calling convention, return type and other details along with the function name.",
+          "type": "string"
+        },
+
+        "parentIndex": {
+          "description": "Identifies the index of the immediate parent of the construct in which the result was detected. For example, this property might point to a logical location that represents the namespace that holds a type.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "kind": {
+          "description": "The type of construct this logical location component refers to. Should be one of 'function', 'member', 'module', 'namespace', 'parameter', 'resource', 'returnType', 'type', 'variable', 'object', 'array', 'property', 'value', 'element', 'text', 'attribute', 'comment', 'declaration', 'dtd' or 'processingInstruction', if any of those accurately describe the construct.",
+          "type": "string"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the logical location.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "message": {
+      "description": "Encapsulates a message intended to be read by the end user.",
+      "type": "object",
+      "additionalProperties": false,
+
+      "properties": {
+
+        "text": {
+          "description": "A plain text message string.",
+          "type": "string"
+        },
+
+        "markdown": {
+          "description": "A Markdown message string.",
+          "type": "string"
+        },
+
+        "id": {
+          "description": "The identifier for this message.",
+          "type": "string"
+        },
+
+        "arguments": {
+          "description": "An array of strings to substitute into the message string.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "type": "string"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the message.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "anyOf": [
+        { "required": [ "text" ] },
+        { "required": [ "id" ] }
+      ]
+    },
+
+    "multiformatMessageString": {
+      "description": "A message string or message format string rendered in multiple formats.",
+      "type": "object",
+      "additionalProperties": false,
+
+      "properties": {
+
+        "text": {
+          "description": "A plain text message string or format string.",
+          "type": "string"
+        },
+
+        "markdown": {
+          "description": "A Markdown message string or format string.",
+          "type": "string"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the message.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "text" ]
+    },
+
+    "node": {
+      "description": "Represents a node in a graph.",
+      "type": "object",
+      "additionalProperties": false,
+
+      "properties": {
+
+        "id": {
+          "description": "A string that uniquely identifies the node within its graph.",
+          "type": "string"
+        },
+
+        "label": {
+          "description": "A short description of the node.",
+          "$ref": "#/definitions/message"
+        },
+
+        "location": {
+          "description": "A code location associated with the node.",
+          "$ref": "#/definitions/location"
+        },
+
+        "children": {
+          "description": "Array of child nodes.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/node"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the node.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "id" ]
+    },
+
+    "notification": {
+      "description": "Describes a condition relevant to the tool itself, as opposed to being relevant to a target being analyzed by the tool.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "locations": {
+          "description": "The locations relevant to this notification.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/location"
+          }
+        },
+
+        "message": {
+          "description": "A message that describes the condition that was encountered.",
+          "$ref": "#/definitions/message"
+        },
+
+        "level": {
+          "description": "A value specifying the severity level of the notification.",
+          "default": "warning",
+          "enum": [ "none", "note", "warning", "error" ]
+        },
+
+        "threadId": {
+          "description": "The thread identifier of the code that generated the notification.",
+          "type": "integer"
+        },
+
+        "timeUtc": {
+          "description": "The Coordinated Universal Time (UTC) date and time at which the analysis tool generated the notification.",
+          "type": "string",
+          "format": "date-time"
+        },
+
+        "exception": {
+          "description": "The runtime exception, if any, relevant to this notification.",
+          "$ref": "#/definitions/exception"
+        },
+
+        "descriptor": {
+          "description": "A reference used to locate the descriptor relevant to this notification.",
+          "$ref": "#/definitions/reportingDescriptorReference"
+        },
+
+        "associatedRule": {
+          "description": "A reference used to locate the rule descriptor associated with this notification.",
+          "$ref": "#/definitions/reportingDescriptorReference"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the notification.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "message" ]
+    },
+
+    "physicalLocation": {
+      "description": "A physical location relevant to a result. Specifies a reference to a programming artifact together with a range of bytes or characters within that artifact.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "address": {
+          "description": "The address of the location.",
+          "$ref": "#/definitions/address"
+        },
+
+        "artifactLocation": {
+          "description": "The location of the artifact.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "region": {
+          "description": "Specifies a portion of the artifact.",
+          "$ref": "#/definitions/region"
+        },
+
+        "contextRegion": {
+          "description": "Specifies a portion of the artifact that encloses the region. Allows a viewer to display additional context around the region.",
+          "$ref": "#/definitions/region"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the physical location.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "anyOf": [
+        {
+          "required": [ "address" ]
+        },
+        {
+          "required": [ "artifactLocation" ]
+        }
+      ]
+    },
+
+    "propertyBag": {
+      "description": "Key/value pairs that provide additional information about the object.",
+      "type": "object",
+      "additionalProperties": true,
+      "properties": {
+        "tags": {
+
+          "description": "A set of distinct strings that provide additional information.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "type": "string"
+          }
+        }
+      }
+    },
+
+    "rectangle": {
+      "description": "An area within an image.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "top": {
+          "description": "The Y coordinate of the top edge of the rectangle, measured in the image's natural units.",
+          "type": "number"
+        },
+
+        "left": {
+          "description": "The X coordinate of the left edge of the rectangle, measured in the image's natural units.",
+          "type": "number"
+        },
+
+        "bottom": {
+          "description": "The Y coordinate of the bottom edge of the rectangle, measured in the image's natural units.",
+          "type": "number"
+        },
+
+        "right": {
+          "description": "The X coordinate of the right edge of the rectangle, measured in the image's natural units.",
+          "type": "number"
+        },
+
+        "message": {
+          "description": "A message relevant to the rectangle.",
+          "$ref": "#/definitions/message"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the rectangle.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "region": {
+      "description": "A region within an artifact where a result was detected.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "startLine": {
+          "description": "The line number of the first character in the region.",
+          "type": "integer",
+          "minimum": 1
+        },
+
+        "startColumn": {
+          "description": "The column number of the first character in the region.",
+          "type": "integer",
+          "minimum": 1
+        },
+
+        "endLine": {
+          "description": "The line number of the last character in the region.",
+          "type": "integer",
+          "minimum": 1
+        },
+
+        "endColumn": {
+          "description": "The column number of the character following the end of the region.",
+          "type": "integer",
+          "minimum": 1
+        },
+
+        "charOffset": {
+          "description": "The zero-based offset from the beginning of the artifact of the first character in the region.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "charLength": {
+          "description": "The length of the region in characters.",
+          "type": "integer",
+          "minimum": 0
+        },
+
+        "byteOffset": {
+          "description": "The zero-based offset from the beginning of the artifact of the first byte in the region.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "byteLength": {
+          "description": "The length of the region in bytes.",
+          "type": "integer",
+          "minimum": 0
+        },
+
+        "snippet": {
+          "description": "The portion of the artifact contents within the specified region.",
+          "$ref": "#/definitions/artifactContent"
+        },
+
+        "message": {
+          "description": "A message relevant to the region.",
+          "$ref": "#/definitions/message"
+        },
+
+        "sourceLanguage": {
+          "description": "Specifies the source language, if any, of the portion of the artifact specified by the region object.",
+          "type": "string"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the region.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "replacement": {
+      "description": "The replacement of a single region of an artifact.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "deletedRegion": {
+          "description": "The region of the artifact to delete.",
+          "$ref": "#/definitions/region"
+        },
+
+        "insertedContent": {
+          "description": "The content to insert at the location specified by the 'deletedRegion' property.",
+          "$ref": "#/definitions/artifactContent"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the replacement.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "deletedRegion" ]
+    },
+
+    "reportingDescriptor": {
+      "description": "Metadata that describes a specific report produced by the tool, as part of the analysis it provides or its runtime reporting.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "id": {
+          "description": "A stable, opaque identifier for the report.",
+          "type": "string"
+        },
+
+        "deprecatedIds": {
+          "description": "An array of stable, opaque identifiers by which this report was known in some previous version of the analysis tool.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "type": "string"
+          }
+        },
+
+        "guid": {
+          "description": "A unique identifer for the reporting descriptor in the form of a GUID.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "deprecatedGuids": {
+          "description": "An array of unique identifies in the form of a GUID by which this report was known in some previous version of the analysis tool.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "type": "string",
+            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+          }
+        },
+
+        "name": {
+          "description": "A report identifier that is understandable to an end user.",
+          "type": "string"
+        },
+
+        "deprecatedNames": {
+          "description": "An array of readable identifiers by which this report was known in some previous version of the analysis tool.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "type": "string"
+          }
+        },
+
+        "shortDescription": {
+          "description": "A concise description of the report. Should be a single sentence that is understandable when visible space is limited to a single line of text.",
+          "$ref": "#/definitions/multiformatMessageString"
+        },
+
+        "fullDescription": {
+          "description": "A description of the report. Should, as far as possible, provide details sufficient to enable resolution of any problem indicated by the result.",
+          "$ref": "#/definitions/multiformatMessageString"
+        },
+
+        "messageStrings": {
+          "description": "A set of name/value pairs with arbitrary names. Each value is a multiformatMessageString object, which holds message strings in plain text and (optionally) Markdown format. The strings can include placeholders, which can be used to construct a message in combination with an arbitrary number of additional string arguments.",
+          "type": "object",
+          "additionalProperties": {
+            "$ref": "#/definitions/multiformatMessageString"
+          }
+        },
+
+        "defaultConfiguration": {
+          "description": "Default reporting configuration information.",
+          "$ref": "#/definitions/reportingConfiguration"
+        },
+
+        "helpUri": {
+          "description": "A URI where the primary documentation for the report can be found.",
+          "type": "string",
+          "format": "uri"
+        },
+
+        "help": {
+          "description": "Provides the primary documentation for the report, useful when there is no online documentation.",
+          "$ref": "#/definitions/multiformatMessageString"
+        },
+
+        "relationships": {
+          "description": "An array of objects that describe relationships between this reporting descriptor and others.",
+          "type": "array",
+          "default": [],
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/reportingDescriptorRelationship"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the report.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "id" ]
+    },
+
+    "reportingConfiguration": {
+      "description": "Information about a rule or notification that can be configured at runtime.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "enabled": {
+          "description": "Specifies whether the report may be produced during the scan.",
+          "type": "boolean",
+          "default": true
+        },
+
+        "level": {
+          "description": "Specifies the failure level for the report.",
+          "default": "warning",
+          "enum": [ "none", "note", "warning", "error" ]
+        },
+
+        "rank": {
+          "description": "Specifies the relative priority of the report. Used for analysis output only.",
+          "type": "number",
+          "default": -1.0,
+          "minimum": -1.0,
+          "maximum": 100.0
+        },
+
+        "parameters": {
+          "description": "Contains configuration information specific to a report.",
+          "$ref": "#/definitions/propertyBag"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the reporting configuration.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "reportingDescriptorReference": {
+      "description": "Information about how to locate a relevant reporting descriptor.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "id": {
+          "description": "The id of the descriptor.",
+          "type": "string"
+        },
+
+        "index": {
+          "description": "The index into an array of descriptors in toolComponent.ruleDescriptors, toolComponent.notificationDescriptors, or toolComponent.taxonomyDescriptors, depending on context.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "guid": {
+          "description": "A guid that uniquely identifies the descriptor.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "toolComponent": {
+          "description": "A reference used to locate the toolComponent associated with the descriptor.",
+          "$ref": "#/definitions/toolComponentReference"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the reporting descriptor reference.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "anyOf": [
+        { "required": [ "index" ] },
+        { "required": [ "guid" ] },
+        { "required": [ "id" ] }
+      ]
+    },
+
+    "reportingDescriptorRelationship": {
+      "description": "Information about the relation of one reporting descriptor to another.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "target": {
+          "description": "A reference to the related reporting descriptor.",
+          "$ref": "#/definitions/reportingDescriptorReference"
+        },
+
+        "kinds": {
+          "description": "A set of distinct strings that categorize the relationship. Well-known kinds include 'canPrecede', 'canFollow', 'willPrecede', 'willFollow', 'superset', 'subset', 'equal', 'disjoint', 'relevant', and 'incomparable'.",
+          "type": "array",
+          "default": [ "relevant" ],
+          "uniqueItems": true,
+          "items": {
+            "type": "string"
+          }
+        },
+
+        "description": {
+          "description": "A description of the reporting descriptor relationship.",
+          "$ref": "#/definitions/message"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the reporting descriptor reference.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "target" ]
+    },
+
+    "result": {
+      "description": "A result produced by an analysis tool.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "ruleId": {
+          "description": "The stable, unique identifier of the rule, if any, to which this result is relevant.",
+          "type": "string"
+        },
+
+        "ruleIndex": {
+          "description": "The index within the tool component rules array of the rule object associated with this result.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "rule": {
+          "description": "A reference used to locate the rule descriptor relevant to this result.",
+          "$ref": "#/definitions/reportingDescriptorReference"
+        },
+
+        "kind": {
+          "description": "A value that categorizes results by evaluation state.",
+          "default": "fail",
+          "enum": [ "notApplicable", "pass", "fail", "review", "open", "informational" ]
+        },
+
+        "level": {
+          "description": "A value specifying the severity level of the result.",
+          "default": "warning",
+          "enum": [ "none", "note", "warning", "error" ]
+        },
+
+        "message": {
+          "description": "A message that describes the result. The first sentence of the message only will be displayed when visible space is limited.",
+          "$ref": "#/definitions/message"
+        },
+
+        "analysisTarget": {
+          "description": "Identifies the artifact that the analysis tool was instructed to scan. This need not be the same as the artifact where the result actually occurred.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "locations": {
+          "description": "The set of locations where the result was detected. Specify only one location unless the problem indicated by the result can only be corrected by making a change at every specified location.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/location"
+          }
+        },
+
+        "guid": {
+          "description": "A stable, unique identifer for the result in the form of a GUID.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "correlationGuid": {
+          "description": "A stable, unique identifier for the equivalence class of logically identical results to which this result belongs, in the form of a GUID.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "occurrenceCount": {
+          "description": "A positive integer specifying the number of times this logically unique result was observed in this run.",
+          "type": "integer",
+          "minimum": 1
+        },
+
+        "partialFingerprints": {
+          "description": "A set of strings that contribute to the stable, unique identity of the result.",
+          "type": "object",
+          "additionalProperties": {
+            "type": "string"
+          }
+        },
+
+        "fingerprints": {
+          "description": "A set of strings each of which individually defines a stable, unique identity for the result.",
+          "type": "object",
+          "additionalProperties": {
+            "type": "string"
+          }
+        },
+
+        "stacks": {
+          "description": "An array of 'stack' objects relevant to the result.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/stack"
+          }
+        },
+
+        "codeFlows": {
+          "description": "An array of 'codeFlow' objects relevant to the result.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/codeFlow"
+          }
+        },
+
+        "graphs": {
+          "description": "An array of zero or more unique graph objects associated with the result.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/graph"
+          }
+        },
+
+        "graphTraversals": {
+          "description": "An array of one or more unique 'graphTraversal' objects.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/graphTraversal"
+          }
+        },
+
+        "relatedLocations": {
+          "description": "A set of locations relevant to this result.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/location"
+          }
+        },
+
+        "suppressions": {
+          "description": "A set of suppressions relevant to this result.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/suppression"
+          }
+        },
+
+        "baselineState": {
+          "description": "The state of a result relative to a baseline of a previous run.",
+          "enum": [
+            "new",
+            "unchanged",
+            "updated",
+            "absent"
+          ]
+        },
+
+        "rank": {
+          "description": "A number representing the priority or importance of the result.",
+          "type": "number",
+          "default": -1.0,
+          "minimum": -1.0,
+          "maximum": 100.0
+        },
+
+        "attachments": {
+          "description": "A set of artifacts relevant to the result.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/attachment"
+          }
+        },
+
+        "hostedViewerUri": {
+          "description": "An absolute URI at which the result can be viewed.",
+          "type": "string",
+          "format": "uri"
+        },
+
+        "workItemUris": {
+          "description": "The URIs of the work items associated with this result.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "type": "string",
+            "format": "uri"
+          }
+        },
+
+        "provenance": {
+          "description": "Information about how and when the result was detected.",
+          "$ref": "#/definitions/resultProvenance"
+        },
+
+        "fixes": {
+          "description": "An array of 'fix' objects, each of which represents a proposed fix to the problem indicated by the result.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/fix"
+          }
+        },
+
+        "taxa": {
+          "description": "An array of references to taxonomy reporting descriptors that are applicable to the result.",
+          "type": "array",
+          "default": [],
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/reportingDescriptorReference"
+          }
+        },
+
+        "webRequest": {
+          "description": "A web request associated with this result.",
+          "$ref": "#/definitions/webRequest"
+        },
+
+        "webResponse": {
+          "description": "A web response associated with this result.",
+          "$ref": "#/definitions/webResponse"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the result.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "message" ]
+    },
+
+    "resultProvenance": {
+      "description": "Contains information about how and when a result was detected.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "firstDetectionTimeUtc": {
+          "description": "The Coordinated Universal Time (UTC) date and time at which the result was first detected. See \"Date/time properties\" in the SARIF spec for the required format.",
+          "type": "string",
+          "format": "date-time"
+        },
+
+        "lastDetectionTimeUtc": {
+          "description": "The Coordinated Universal Time (UTC) date and time at which the result was most recently detected. See \"Date/time properties\" in the SARIF spec for the required format.",
+          "type": "string",
+          "format": "date-time"
+        },
+
+        "firstDetectionRunGuid": {
+          "description": "A GUID-valued string equal to the automationDetails.guid property of the run in which the result was first detected.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "lastDetectionRunGuid": {
+          "description": "A GUID-valued string equal to the automationDetails.guid property of the run in which the result was most recently detected.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "invocationIndex": {
+          "description": "The index within the run.invocations array of the invocation object which describes the tool invocation that detected the result.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "conversionSources": {
+          "description": "An array of physicalLocation objects which specify the portions of an analysis tool's output that a converter transformed into the result.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/physicalLocation"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the result.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "run": {
+      "description": "Describes a single run of an analysis tool, and contains the reported output of that run.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "tool": {
+          "description": "Information about the tool or tool pipeline that generated the results in this run. A run can only contain results produced by a single tool or tool pipeline. A run can aggregate results from multiple log files, as long as context around the tool run (tool command-line arguments and the like) is identical for all aggregated files.",
+          "$ref": "#/definitions/tool"
+        },
+
+        "invocations": {
+          "description": "Describes the invocation of the analysis tool.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/invocation"
+          }
+        },
+
+        "conversion": {
+          "description": "A conversion object that describes how a converter transformed an analysis tool's native reporting format into the SARIF format.",
+          "$ref": "#/definitions/conversion"
+        },
+
+        "language": {
+          "description": "The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase culture code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).",
+          "type": "string",
+          "default": "en-US",
+          "pattern": "^[a-zA-Z]{2}|^[a-zA-Z]{2}-[a-zA-Z]{2}]?$"
+        },
+
+        "versionControlProvenance": {
+          "description": "Specifies the revision in version control of the artifacts that were scanned.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/versionControlDetails"
+          }
+        },
+
+        "originalUriBaseIds": {
+          "description": "The artifact location specified by each uriBaseId symbol on the machine where the tool originally ran.",
+          "type": "object",
+          "additionalProperties": {
+            "$ref": "#/definitions/artifactLocation"
+          }
+        },
+
+        "artifacts": {
+          "description": "An array of artifact objects relevant to the run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/artifact"
+          }
+        },
+
+        "logicalLocations": {
+          "description": "An array of logical locations such as namespaces, types or functions.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/logicalLocation"
+          }
+        },
+
+        "graphs": {
+          "description": "An array of zero or more unique graph objects associated with the run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/graph"
+          }
+        },
+
+        "results": {
+          "description": "The set of results contained in an SARIF log. The results array can be omitted when a run is solely exporting rules metadata. It must be present (but may be empty) if a log file represents an actual scan.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "items": {
+            "$ref": "#/definitions/result"
+          }
+        },
+
+        "automationDetails": {
+          "description": "Automation details that describe this run.",
+          "$ref": "#/definitions/runAutomationDetails"
+        },
+
+        "runAggregates": {
+          "description": "Automation details that describe the aggregate of runs to which this run belongs.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/runAutomationDetails"
+          }
+        },
+
+        "baselineGuid": {
+          "description": "The 'guid' property of a previous SARIF 'run' that comprises the baseline that was used to compute result 'baselineState' properties for the run.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "redactionTokens": {
+          "description": "An array of strings used to replace sensitive information in a redaction-aware property.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "type": "string"
+          }
+        },
+
+        "defaultEncoding": {
+          "description": "Specifies the default encoding for any artifact object that refers to a text file.",
+          "type": "string"
+        },
+
+        "defaultSourceLanguage": {
+          "description": "Specifies the default source language for any artifact object that refers to a text file that contains source code.",
+          "type": "string"
+        },
+
+        "newlineSequences": {
+          "description": "An ordered list of character sequences that were treated as line breaks when computing region information for the run.",
+          "type": "array",
+          "minItems": 1,
+          "uniqueItems": true,
+          "default": [ "\r\n", "\n" ],
+          "items": {
+            "type": "string"
+          }
+        },
+
+        "columnKind": {
+          "description": "Specifies the unit in which the tool measures columns.",
+          "enum": [ "utf16CodeUnits", "unicodeCodePoints" ]
+        },
+
+        "externalPropertyFileReferences": {
+          "description": "References to external property files that should be inlined with the content of a root log file.",
+          "$ref": "#/definitions/externalPropertyFileReferences"
+        },
+
+        "threadFlowLocations": {
+          "description": "An array of threadFlowLocation objects cached at run level.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/threadFlowLocation"
+          }
+        },
+
+        "taxonomies": {
+          "description": "An array of toolComponent objects relevant to a taxonomy in which results are categorized.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/toolComponent"
+          }
+        },
+
+        "addresses": {
+          "description": "Addresses associated with this run instance, if any.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/address"
+          }
+        },
+
+        "translations": {
+          "description": "The set of available translations of the localized data provided by the tool.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/toolComponent"
+          }
+        },
+
+        "policies": {
+          "description": "Contains configurations that may potentially override both reportingDescriptor.defaultConfiguration (the tool's default severities) and invocation.configurationOverrides (severities established at run-time from the command line).",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/toolComponent"
+          }
+        },
+
+        "webRequests": {
+          "description": "An array of request objects cached at run level.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/webRequest"
+          }
+        },
+
+        "webResponses": {
+          "description": "An array of response objects cached at run level.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/webResponse"
+          }
+        },
+
+        "specialLocations": {
+          "description": "A specialLocations object that defines locations of special significance to SARIF consumers.",
+          "$ref": "#/definitions/specialLocations"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the run.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "tool" ]
+    },
+
+    "runAutomationDetails": {
+      "description": "Information that describes a run's identity and role within an engineering system process.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "description": {
+          "description": "A description of the identity and role played within the engineering system by this object's containing run object.",
+          "$ref": "#/definitions/message"
+        },
+
+        "id": {
+          "description": "A hierarchical string that uniquely identifies this object's containing run object.",
+          "type": "string"
+        },
+
+        "guid": {
+          "description": "A stable, unique identifer for this object's containing run object in the form of a GUID.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "correlationGuid": {
+          "description": "A stable, unique identifier for the equivalence class of runs to which this object's containing run object belongs in the form of a GUID.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the run automation details.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "specialLocations": {
+      "description": "Defines locations of special significance to SARIF consumers.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "displayBase": {
+          "description": "Provides a suggestion to SARIF consumers to display file paths relative to the specified location.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the special locations.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "stack": {
+      "description": "A call stack that is relevant to a result.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "message": {
+          "description": "A message relevant to this call stack.",
+          "$ref": "#/definitions/message"
+        },
+
+        "frames": {
+          "description": "An array of stack frames that represents a sequence of calls, rendered in reverse chronological order, that comprise the call stack.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "items": {
+            "$ref": "#/definitions/stackFrame"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the stack.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "frames" ]
+    },
+
+    "stackFrame": {
+      "description": "A function call within a stack trace.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "location": {
+          "description": "The location to which this stack frame refers.",
+          "$ref": "#/definitions/location"
+        },
+
+        "module": {
+          "description": "The name of the module that contains the code of this stack frame.",
+          "type": "string"
+        },
+
+        "threadId": {
+          "description": "The thread identifier of the stack frame.",
+          "type": "integer"
+        },
+
+        "parameters": {
+          "description": "The parameters of the call that is executing.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": false,
+          "default": [],
+          "items": {
+            "type": "string",
+            "default": []
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the stack frame.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "suppression": {
+      "description": "A suppression that is relevant to a result.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "guid": {
+          "description": "A stable, unique identifer for the suprression in the form of a GUID.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "kind": {
+          "description": "A string that indicates where the suppression is persisted.",
+          "enum": [
+            "inSource",
+            "external"
+          ]
+        },
+
+        "status": {
+          "description": "A string that indicates the review status of the suppression.",
+          "enum": [
+            "accepted",
+            "underReview",
+            "rejected"
+          ]
+        },
+
+        "justification": {
+          "description": "A string representing the justification for the suppression.",
+          "type": "string"
+        },
+
+        "location": {
+          "description": "Identifies the location associated with the suppression.",
+          "$ref": "#/definitions/location"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the suppression.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "kind" ]
+    },
+
+    "threadFlow": {
+      "description": "Describes a sequence of code locations that specify a path through a single thread of execution such as an operating system or fiber.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "id": {
+          "description": "An string that uniquely identifies the threadFlow within the codeFlow in which it occurs.",
+          "type": "string"
+        },
+
+        "message": {
+          "description": "A message relevant to the thread flow.",
+          "$ref": "#/definitions/message"
+        },
+
+
+        "initialState": {
+          "description": "Values of relevant expressions at the start of the thread flow that may change during thread flow execution.",
+          "type": "object",
+          "additionalProperties": {
+            "$ref": "#/definitions/multiformatMessageString"
+          }
+        },
+
+        "immutableState": {
+          "description": "Values of relevant expressions at the start of the thread flow that remain constant.",
+          "type": "object",
+          "additionalProperties": {
+            "$ref": "#/definitions/multiformatMessageString"
+          }
+        },
+
+        "locations": {
+          "description": "A temporally ordered array of 'threadFlowLocation' objects, each of which describes a location visited by the tool while producing the result.",
+          "type": "array",
+          "minItems": 1,
+          "uniqueItems": false,
+          "items": {
+            "$ref": "#/definitions/threadFlowLocation"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the thread flow.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "locations" ]
+    },
+
+    "threadFlowLocation": {
+      "description": "A location visited by an analysis tool while simulating or monitoring the execution of a program.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "index": {
+          "description": "The index within the run threadFlowLocations array.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "location": {
+          "description": "The code location.",
+          "$ref": "#/definitions/location"
+        },
+
+        "stack": {
+          "description": "The call stack leading to this location.",
+          "$ref": "#/definitions/stack"
+        },
+
+        "kinds": {
+          "description": "A set of distinct strings that categorize the thread flow location. Well-known kinds include 'acquire', 'release', 'enter', 'exit', 'call', 'return', 'branch', 'implicit', 'false', 'true', 'caution', 'danger', 'unknown', 'unreachable', 'taint', 'function', 'handler', 'lock', 'memory', 'resource', 'scope' and 'value'.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "type": "string"
+          }
+        },
+
+        "taxa": {
+          "description": "An array of references to rule or taxonomy reporting descriptors that are applicable to the thread flow location.",
+          "type": "array",
+          "default": [],
+          "minItems": 0,
+          "uniqueItems": true,
+          "items": {
+            "$ref": "#/definitions/reportingDescriptorReference"
+          }
+        },
+
+        "module": {
+          "description": "The name of the module that contains the code that is executing.",
+          "type": "string"
+        },
+
+        "state": {
+          "description": "A dictionary, each of whose keys specifies a variable or expression, the associated value of which represents the variable or expression value. For an annotation of kind 'continuation', for example, this dictionary might hold the current assumed values of a set of global variables.",
+          "type": "object",
+          "additionalProperties": {
+            "$ref": "#/definitions/multiformatMessageString"
+          }
+        },
+
+        "nestingLevel": {
+          "description": "An integer representing a containment hierarchy within the thread flow.",
+          "type": "integer",
+          "minimum": 0
+        },
+
+        "executionOrder": {
+          "description": "An integer representing the temporal order in which execution reached this location.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "executionTimeUtc": {
+          "description": "The Coordinated Universal Time (UTC) date and time at which this location was executed.",
+          "type": "string",
+          "format": "date-time"
+        },
+
+        "importance": {
+          "description": "Specifies the importance of this location in understanding the code flow in which it occurs. The order from most to least important is \"essential\", \"important\", \"unimportant\". Default: \"important\".",
+          "enum": [ "important", "essential", "unimportant" ],
+          "default": "important"
+        },
+
+        "webRequest": {
+          "description": "A web request associated with this thread flow location.",
+          "$ref": "#/definitions/webRequest"
+        },
+
+        "webResponse": {
+          "description": "A web response associated with this thread flow location.",
+          "$ref": "#/definitions/webResponse"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the threadflow location.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "tool": {
+      "description": "The analysis tool that was run.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "driver": {
+          "description": "The analysis tool that was run.",
+          "$ref": "#/definitions/toolComponent"
+        },
+
+        "extensions": {
+          "description": "Tool extensions that contributed to or reconfigured the analysis tool that was run.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/toolComponent"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the tool.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "driver" ]
+    },
+
+    "toolComponent": {
+      "description": "A component, such as a plug-in or the driver, of the analysis tool that was run.",
+      "additionalProperties": false,
+      "type": "object",
+      "properties": {
+
+        "guid": {
+          "description": "A unique identifer for the tool component in the form of a GUID.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "name": {
+          "description": "The name of the tool component.",
+          "type": "string"
+        },
+
+        "organization": {
+          "description": "The organization or company that produced the tool component.",
+          "type": "string"
+        },
+
+        "product": {
+          "description": "A product suite to which the tool component belongs.",
+          "type": "string"
+        },
+
+        "productSuite": {
+          "description": "A localizable string containing the name of the suite of products to which the tool component belongs.",
+          "type": "string"
+        },
+
+        "shortDescription": {
+          "description": "A brief description of the tool component.",
+          "$ref": "#/definitions/multiformatMessageString"
+        },
+
+        "fullDescription": {
+          "description": "A comprehensive description of the tool component.",
+          "$ref": "#/definitions/multiformatMessageString"
+        },
+
+        "fullName": {
+          "description": "The name of the tool component along with its version and any other useful identifying information, such as its locale.",
+          "type": "string"
+        },
+
+        "version": {
+          "description": "The tool component version, in whatever format the component natively provides.",
+          "type": "string"
+        },
+
+        "semanticVersion": {
+          "description": "The tool component version in the format specified by Semantic Versioning 2.0.",
+          "type": "string"
+        },
+
+        "dottedQuadFileVersion": {
+          "description": "The binary version of the tool component's primary executable file expressed as four non-negative integers separated by a period (for operating systems that express file versions in this way).",
+          "type": "string",
+          "pattern": "[0-9]+(\\.[0-9]+){3}"
+        },
+
+        "releaseDateUtc": {
+          "description": "A string specifying the UTC date (and optionally, the time) of the component's release.",
+          "type": "string"
+        },
+
+        "downloadUri": {
+          "description": "The absolute URI from which the tool component can be downloaded.",
+          "type": "string",
+          "format": "uri"
+        },
+
+        "informationUri": {
+          "description": "The absolute URI at which information about this version of the tool component can be found.",
+          "type": "string",
+          "format": "uri"
+        },
+
+        "globalMessageStrings": {
+          "description": "A dictionary, each of whose keys is a resource identifier and each of whose values is a multiformatMessageString object, which holds message strings in plain text and (optionally) Markdown format. The strings can include placeholders, which can be used to construct a message in combination with an arbitrary number of additional string arguments.",
+          "type": "object",
+          "additionalProperties": {
+            "$ref": "#/definitions/multiformatMessageString"
+          }
+        },
+
+        "notifications": {
+          "description": "An array of reportingDescriptor objects relevant to the notifications related to the configuration and runtime execution of the tool component.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/reportingDescriptor"
+          }
+        },
+
+        "rules": {
+          "description": "An array of reportingDescriptor objects relevant to the analysis performed by the tool component.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/reportingDescriptor"
+          }
+        },
+
+        "taxa": {
+          "description": "An array of reportingDescriptor objects relevant to the definitions of both standalone and tool-defined taxonomies.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/reportingDescriptor"
+          }
+        },
+
+        "locations": {
+          "description": "An array of the artifactLocation objects associated with the tool component.",
+          "type": "array",
+          "minItems": 0,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/artifactLocation"
+          }
+        },
+
+        "language": {
+          "description": "The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase language code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).",
+          "type": "string",
+          "default": "en-US",
+          "pattern": "^[a-zA-Z]{2}|^[a-zA-Z]{2}-[a-zA-Z]{2}]?$"
+        },
+
+        "contents": {
+          "description": "The kinds of data contained in this object.",
+          "type": "array",
+          "uniqueItems": true,
+          "default": [ "localizedData", "nonLocalizedData" ],
+          "items": {
+            "enum": [
+              "localizedData",
+              "nonLocalizedData"
+            ]
+          }
+        },
+
+        "isComprehensive": {
+          "description": "Specifies whether this object contains a complete definition of the localizable and/or non-localizable data for this component, as opposed to including only data that is relevant to the results persisted to this log file.",
+          "type": "boolean",
+          "default": false
+        },
+
+        "localizedDataSemanticVersion": {
+          "description": "The semantic version of the localized strings defined in this component; maintained by components that provide translations.",
+          "type": "string"
+        },
+
+        "minimumRequiredLocalizedDataSemanticVersion": {
+          "description": "The minimum value of localizedDataSemanticVersion required in translations consumed by this component; used by components that consume translations.",
+          "type": "string"
+        },
+
+        "associatedComponent": {
+          "description": "The component which is strongly associated with this component. For a translation, this refers to the component which has been translated. For an extension, this is the driver that provides the extension's plugin model.",
+          "$ref": "#/definitions/toolComponentReference"
+        },
+
+        "translationMetadata": {
+          "description": "Translation metadata, required for a translation, not populated by other component types.",
+          "$ref": "#/definitions/translationMetadata"
+        },
+
+        "supportedTaxonomies": {
+          "description": "An array of toolComponentReference objects to declare the taxonomies supported by the tool component.",
+          "type": "array",
+          "minItems": 0,
+          "uniqueItems": true,
+          "default": [],
+          "items": {
+            "$ref": "#/definitions/toolComponentReference"
+          }
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the tool component.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "name" ]
+    },
+
+    "toolComponentReference": {
+      "description": "Identifies a particular toolComponent object, either the driver or an extension.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "name": {
+          "description": "The 'name' property of the referenced toolComponent.",
+          "type": "string"
+        },
+
+        "index": {
+          "description": "An index into the referenced toolComponent in tool.extensions.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "guid": {
+          "description": "The 'guid' property of the referenced toolComponent.",
+          "type": "string",
+          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the toolComponentReference.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "translationMetadata": {
+      "description": "Provides additional metadata related to translation.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "name": {
+          "description": "The name associated with the translation metadata.",
+          "type": "string"
+        },
+
+        "fullName": {
+          "description": "The full name associated with the translation metadata.",
+          "type": "string"
+        },
+
+        "shortDescription": {
+          "description": "A brief description of the translation metadata.",
+          "$ref": "#/definitions/multiformatMessageString"
+        },
+
+        "fullDescription": {
+          "description": "A comprehensive description of the translation metadata.",
+          "$ref": "#/definitions/multiformatMessageString"
+        },
+
+        "downloadUri": {
+          "description": "The absolute URI from which the translation metadata can be downloaded.",
+          "type": "string",
+          "format": "uri"
+        },
+
+        "informationUri": {
+          "description": "The absolute URI from which information related to the translation metadata can be downloaded.",
+          "type": "string",
+          "format": "uri"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the translation metadata.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+      "required": [ "name" ]
+    },
+
+    "versionControlDetails": {
+      "description": "Specifies the information necessary to retrieve a desired revision from a version control system.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "repositoryUri": {
+          "description": "The absolute URI of the repository.",
+          "type": "string",
+          "format": "uri"
+        },
+
+        "revisionId": {
+          "description": "A string that uniquely and permanently identifies the revision within the repository.",
+          "type": "string"
+        },
+
+        "branch": {
+          "description": "The name of a branch containing the revision.",
+          "type": "string"
+        },
+
+        "revisionTag": {
+          "description": "A tag that has been applied to the revision.",
+          "type": "string"
+        },
+
+        "asOfTimeUtc": {
+          "description": "A Coordinated Universal Time (UTC) date and time that can be used to synchronize an enlistment to the state of the repository at that time.",
+          "type": "string",
+          "format": "date-time"
+        },
+
+        "mappedTo": {
+          "description": "The location in the local file system to which the root of the repository was mapped at the time of the analysis.",
+          "$ref": "#/definitions/artifactLocation"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the version control details.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      },
+
+      "required": [ "repositoryUri" ]
+    },
+
+    "webRequest": {
+      "description": "Describes an HTTP request.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "index": {
+          "description": "The index within the run.webRequests array of the request object associated with this result.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+
+        },
+
+        "protocol": {
+          "description": "The request protocol. Example: 'http'.",
+          "type": "string"
+        },
+
+        "version": {
+          "description": "The request version. Example: '1.1'.",
+          "type": "string"
+        },
+
+        "target": {
+          "description": "The target of the request.",
+          "type": "string"
+        },
+
+        "method": {
+          "description": "The HTTP method. Well-known values are 'GET', 'PUT', 'POST', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS', 'TRACE', 'CONNECT'.",
+          "type": "string"
+        },
+
+        "headers": {
+          "description": "The request headers.",
+          "type": "object",
+          "additionalProperties": {
+            "type": "string"
+          }
+        },
+
+        "parameters": {
+          "description": "The request parameters.",
+          "type": "object",
+          "additionalProperties": {
+            "type": "string"
+          }
+        },
+
+        "body": {
+          "description": "The body of the request.",
+          "$ref": "#/definitions/artifactContent"
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the request.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    },
+
+    "webResponse": {
+      "description": "Describes the response to an HTTP request.",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+
+        "index": {
+          "description": "The index within the run.webResponses array of the response object associated with this result.",
+          "type": "integer",
+          "default": -1,
+          "minimum": -1
+        },
+
+        "protocol": {
+          "description": "The response protocol. Example: 'http'.",
+          "type": "string"
+        },
+
+        "version": {
+          "description": "The response version. Example: '1.1'.",
+          "type": "string"
+        },
+
+        "statusCode": {
+          "description": "The response status code. Example: 451.",
+          "type": "integer"
+        },
+
+        "reasonPhrase": {
+          "description": "The response reason. Example: 'Not found'.",
+          "type": "string"
+        },
+
+        "headers": {
+          "description": "The response headers.",
+          "type": "object",
+          "additionalProperties": {
+            "type": "string"
+          }
+        },
+
+        "body": {
+          "description": "The body of the response.",
+          "$ref": "#/definitions/artifactContent"
+        },
+
+        "noResponseReceived": {
+          "description": "Specifies whether a response was received from the server.",
+          "type": "boolean",
+          "default": false
+        },
+
+        "properties": {
+          "description": "Key/value pairs that provide additional information about the response.",
+          "$ref": "#/definitions/propertyBag"
+        }
+      }
+    }
+  }
+}
diff --git a/gcc/testsuite/lib/scansarif.exp b/gcc/testsuite/lib/scansarif.exp
index 1f7b20610b7..3eb38b8102e 100644
--- a/gcc/testsuite/lib/scansarif.exp
+++ b/gcc/testsuite/lib/scansarif.exp
@@ -56,6 +56,9 @@ proc scan-sarif-file-not { args } {
 #
 # Assuming python3 is available, use verify-sarif-file.py to check
 # that the .sarif file is UTF-8 encoded and is parseable as JSON.
+#
+# Assuming "jsonschema" is available, use it to verify that the .sarif
+# file complies with the SARIF schema.
 
 proc verify-sarif-file { args } {
     global srcdir subdir
@@ -79,4 +82,24 @@ proc verify-sarif-file { args } {
     } else {
 	pass "$what"
     }
+
+    # Verify that the file complies with the SARIF schema.
+
+    # Check that jsonschema is installed.
+    if { ![check_effective_target_jsonschema] } {
+	unsupported "$testcase verify-sarif-file: jsonschema is missing"
+	return	
+    }
+
+    set schema_file $srcdir/lib/sarif-schema-2.1.0.json
+    verbose "schema_file: $schema_file" 2
+
+    set what "$testcase (test .sarif output against SARIF schema)"
+    if [catch {exec jsonschema --instance $output_file $schema_file} res ] {
+	verbose "verify-sarif-file: res: $res" 2
+	fail "$what"
+	return
+    } else {
+	pass "$what"
+    }
 }
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 6b8603b1af8..2e44d6cdff6 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -13587,3 +13587,15 @@ proc check_effective_target_heap_trampoline {} {
     }
     return 0
 }
+
+# Return 1 if jsonschema is available.
+
+proc check_effective_target_jsonschema { } {
+    set result [remote_exec host "jsonschema --version"]
+    set status [lindex $result 0]
+    if { $status == 0 } then {
+        return 1;
+    } else {
+        return 0;
+    }
+}

commit d5d62a38493be4c4923cacf2e9cd2c93d4216001
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Tue Jun 25 20:26:21 2024 -0400

    testsuite: use check-jsonschema for validating .sarif files [PR109360]
    
    As reported here:
      https://gcc.gnu.org/pipermail/gcc-patches/2024-June/655434.html
    the schema validation I added for generated .sarif files in
    r15-1541-ga84fe222029ff2 used the "jsonschema" command line tool, which
    has been deprecated by more recent versions of the Python 3 "jsonschema"
    module.
    
    This patch updates the validation to use the more recent
    "check-jsonschema" command line tool, from the Python 3 "check-jsonschema"
    module, fixing the testsuite FAILs due to the deprecation message.
    
    As an added bonus, the output on validation failures is *much* nicer, e.g.
    if I undo r15-1540-g9f4fdc3acebcf6, the error messages begin like this:
    verify-sarif-file: res: Schema validation errors were encountered.
      diagnostic-format-sarif-file-bad-utf8-pr109098-1.c.sarif::$.runs[0].results[0].locations[0].physicalLocation.region.startColumn: 0 is less than the minimum of 1
      diagnostic-format-sarif-file-bad-utf8-pr109098-1.c.sarif::$.runs[0].results[0].relatedLocations[0].physicalLocation.region.startColumn: 0 is less than the minimum of 1
      diagnostic-format-sarif-file-bad-utf8-pr109098-1.c.sarif::$.runs[0].results[0].relatedLocations[1].physicalLocation.region.startColumn: 0 is less than the minimum of 1
      diagnostic-format-sarif-file-bad-utf8-pr109098-1.c.sarif::$.runs[0].results[0].relatedLocations[2].physicalLocation.region.startColumn: 0 is less than the minimum of 1
    child process exited abnormally
    FAIL: c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c  -Wc++-compat   (test .sarif output against SARIF schema)
    
    Tested with Python 3.8 with check_jsonschema 0.28.6
    
    gcc/ChangeLog:
            PR testsuite/109360
            * doc/install.texi (Python3 modules): Update SARIF validation
            requirement to use check-jsonschema rather than jsonschema.
    
    gcc/testsuite/ChangeLog:
            PR testsuite/109360
            * lib/scansarif.exp (verify-sarif-file): Use check-jsonschema
            rather than jsonschema, updating the invocation accordingly.
            * lib/target-supports.exp (check_effective_target_jsonschema): Convert
            to...
            (check_effective_target_check_jsonschema): ...this.
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>
    (cherry picked from commit 17967907102099806dc80c71ee7665ffb22ffa23)

diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 0d93e6c428f..f20336c2062 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -464,9 +464,10 @@ is shown below:
 @code{gcov}, @code{gzip}, @code{json}, @code{os} and @code{pytest}.
 
 @item SARIF testsuite
-Tests of SARIF output will use the @code{jsonschema} program from the
-@code{jsonschema} module (if available) to validate generated .sarif files.
-If this tool is not found, the validation parts of those tests are skipped.
+Tests of SARIF output will use the @code{check-jsonschema} program from
+the @code{check-jsonschema} module (if available) to validate generated
+.sarif files.  If this tool is not found, the validation parts of those
+tests are skipped.
 
 @item c++ cxx api generation
 @code{csv}, @code{os}, @code{sys} and @code{time}.
diff --git a/gcc/testsuite/lib/scansarif.exp b/gcc/testsuite/lib/scansarif.exp
index 3eb38b8102e..cc0890ef5d8 100644
--- a/gcc/testsuite/lib/scansarif.exp
+++ b/gcc/testsuite/lib/scansarif.exp
@@ -57,7 +57,7 @@ proc scan-sarif-file-not { args } {
 # Assuming python3 is available, use verify-sarif-file.py to check
 # that the .sarif file is UTF-8 encoded and is parseable as JSON.
 #
-# Assuming "jsonschema" is available, use it to verify that the .sarif
+# Assuming "check-jsonschema" is available, use it to verify that the .sarif
 # file complies with the SARIF schema.
 
 proc verify-sarif-file { args } {
@@ -86,8 +86,8 @@ proc verify-sarif-file { args } {
     # Verify that the file complies with the SARIF schema.
 
     # Check that jsonschema is installed.
-    if { ![check_effective_target_jsonschema] } {
-	unsupported "$testcase verify-sarif-file: jsonschema is missing"
+    if { ![check_effective_target_check_jsonschema] } {
+	unsupported "$testcase verify-sarif-file: check-jsonschema is missing"
 	return	
     }
 
@@ -95,7 +95,7 @@ proc verify-sarif-file { args } {
     verbose "schema_file: $schema_file" 2
 
     set what "$testcase (test .sarif output against SARIF schema)"
-    if [catch {exec jsonschema --instance $output_file $schema_file} res ] {
+    if [catch {exec check-jsonschema --schemafile $schema_file $output_file} res ] {
 	verbose "verify-sarif-file: res: $res" 2
 	fail "$what"
 	return
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 2e44d6cdff6..be303e300dc 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -13588,10 +13588,10 @@ proc check_effective_target_heap_trampoline {} {
     return 0
 }
 
-# Return 1 if jsonschema is available.
+# Return 1 if check-jsonschema is available.
 
-proc check_effective_target_jsonschema { } {
-    set result [remote_exec host "jsonschema --version"]
+proc check_effective_target_check_jsonschema { } {
+    set result [remote_exec host "check-jsonschema --version"]
     set status [lindex $result 0]
     if { $status == 0 } then {
         return 1;

commit 0f26f4f76961cdc7ebf7f07bec0b370fd1a04972
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Thu Jul 4 14:44:51 2024 -0400

    analyzer: handle <error.h> at -O0 [PR115724]
    
    At -O0, glibc's:
    
    __extern_always_inline void
    error (int __status, int __errnum, const char *__format, ...)
    {
      if (__builtin_constant_p (__status) && __status != 0)
        __error_noreturn (__status, __errnum, __format, __builtin_va_arg_pack ());
      else
        __error_alias (__status, __errnum, __format, __builtin_va_arg_pack ());
    }
    
    becomes just:
    
    __extern_always_inline void
    error (int __status, int __errnum, const char *__format, ...)
    {
      if (0)
        __error_noreturn (__status, __errnum, __format, __builtin_va_arg_pack ());
      else
        __error_alias (__status, __errnum, __format, __builtin_va_arg_pack ());
    }
    
    and thus calls to "error" are calls to "__error_alias" by the
    time -fanalyzer "sees" them.
    
    Handle them with more special-casing in kf.cc.
    
    gcc/analyzer/ChangeLog:
            PR analyzer/115724
            * kf.cc (register_known_functions): Add __error_alias and
            __error_at_line_alias.
    
    gcc/testsuite/ChangeLog:
            PR analyzer/115724
            * c-c++-common/analyzer/error-pr115724.c: New test.
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>
    (cherry picked from commit a6fdb1a2a2906103afd70fa68cf7c45e896b8fbb)

diff --git a/gcc/analyzer/kf.cc b/gcc/analyzer/kf.cc
index c60e220dd1b..e47786d0bcb 100644
--- a/gcc/analyzer/kf.cc
+++ b/gcc/analyzer/kf.cc
@@ -2324,6 +2324,10 @@ register_known_functions (known_function_manager &kfm,
     kfm.add ("__errno_location", make_unique<kf_errno_location> ());
     kfm.add ("error", make_unique<kf_error> (3));
     kfm.add ("error_at_line", make_unique<kf_error> (5));
+    /* Variants of "error" and "error_at_line" seen by the
+       analyzer at -O0 (PR analyzer/115724).  */
+    kfm.add ("__error_alias", make_unique<kf_error> (3));
+    kfm.add ("__error_at_line_alias", make_unique<kf_error> (5));
   }
 
   /* Other implementations of C standard library.  */
diff --git a/gcc/testsuite/c-c++-common/analyzer/error-pr115724.c b/gcc/testsuite/c-c++-common/analyzer/error-pr115724.c
new file mode 100644
index 00000000000..ae606ad89d6
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/analyzer/error-pr115724.c
@@ -0,0 +1,86 @@
+/* Verify that the analyzer handles the no-optimization case in
+   glibc's <error.h> when error,error_at_line calls become
+   __error_alias and __error_at_line_alias.  */
+
+typedef __SIZE_TYPE__ size_t;
+#define EXIT_FAILURE 1
+#define __extern_always_inline  extern inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__))
+
+int errno;
+
+/* Adapted from glibc's bits/error.h.  */
+
+extern void __error_alias (int __status, int __errnum,
+			   const char *__format, ...)
+  __attribute__ ((__format__ (__printf__, 3, 4)));
+extern void __error_noreturn (int __status, int __errnum,
+			       const char *__format, ...)
+  __attribute__ ((__noreturn__, __format__ (__printf__, 3, 4)));
+
+/* If we know the function will never return make sure the compiler
+   realizes that, too.  */
+__extern_always_inline void
+error (int __status, int __errnum, const char *__format, ...)
+{
+  if (__builtin_constant_p (__status) && __status != 0)
+    __error_noreturn (__status, __errnum, __format, __builtin_va_arg_pack ());
+  else
+    __error_alias (__status, __errnum, __format, __builtin_va_arg_pack ());
+}
+
+extern void __error_at_line_alias (int __status, int __errnum,
+				   const char *__fname,
+				   unsigned int __line,
+				   const char *__format, ...)
+  __attribute__ ((__format__ (__printf__, 5, 6)));
+extern void __error_at_line_noreturn (int __status, int __errnum,
+				      const char *__fname,
+				      unsigned int __line,
+				      const char *__format,
+				      ...)
+  __attribute__ ((__noreturn__, __format__ (__printf__, 5, 6)));
+
+/* If we know the function will never return make sure the compiler
+   realizes that, too.  */
+__extern_always_inline void
+error_at_line (int __status, int __errnum, const char *__fname,
+	       unsigned int __line, const char *__format, ...)
+{
+  if (__builtin_constant_p (__status) && __status != 0)
+    __error_at_line_noreturn (__status, __errnum, __fname, __line, __format,
+			      __builtin_va_arg_pack ());
+  else
+    __error_at_line_alias (__status, __errnum, __fname, __line,
+			   __format, __builtin_va_arg_pack ());
+}
+
+
+struct list {
+        size_t size;
+        void (*destroy)(void *data);
+        struct list_node *head;
+        struct list_node *tail;
+};
+
+struct list *list_create(void (*destroy)(void *data))
+{
+        struct list *result = (struct list *)__builtin_calloc(1, sizeof(*result));
+        if (!result)
+                error(EXIT_FAILURE,errno,"%s:%d %s()",__FILE__,__LINE__,__func__);
+
+        result->destroy = destroy; /* { dg-bogus "dereference of NULL 'result'" } */
+
+        return result;
+}
+
+struct list *list_create_using_at_line(void (*destroy)(void *data))
+{
+        struct list *result = (struct list *)__builtin_calloc(1, sizeof(*result));
+        if (!result)
+		error_at_line(EXIT_FAILURE,errno,__FILE__,__LINE__,
+			      "%s()", __func__);
+
+        result->destroy = destroy; /* { dg-bogus "dereference of NULL 'result'" } */
+
+        return result;
+}

commit 41344d6077953bf1d16883bea638d31d355b96fd
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Mon Sep 9 19:38:11 2024 -0400

    SARIF output: fix schema URL [§3.13.3, PR116603]
    
    We were using
      https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json
    as the URL for the SARIF 2.1 schema, but this is now a 404.
    
    Update it to the URL listed in the spec (§3.13.3 "$schema property"),
    which is:
      https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/schemas/sarif-schema-2.1.0.json
    and update the copy in
      gcc/testsuite/lib/sarif-schema-2.1.0.json
    used by the "verify-sarif-file" DejaGnu directive to the version found at
    that latter URL; the sha256 sum changes
    from: 2b19d2358baef0251d7d24e208d05ffabf1b2a3ab5e1b3a816066fc57fd4a7e8
      to: c3b4bb2d6093897483348925aaa73af03b3e3f4bd4ca38cef26dcb4212a2682e
    
    Doing so added a validation error on
      c-c++-common/diagnostic-format-sarif-file-pr111700.c
    for which we emit this textual output:
      this-file-does-not-exist.c: warning: #warning message [-Wcpp]
    with no line number, and these invalid SARIF regions within the
    physical location of the warning:
      "region": {"startColumn": 2,
                 "endColumn": 9},
      "contextRegion": {}
    
    This is due to this directive:
      # 0 "this-file-does-not-exist.c"
    with line number 0.
    
    The patch fixes this by not creating regions that have startLine <= 0.
    
    gcc/ChangeLog:
            PR other/116603
            * diagnostic-format-sarif.cc (SARIF_SCHEMA): Update URL.
            (sarif_builder::maybe_make_region_object): Don't create regions
            with startLine <= 0.
            (sarif_builder::maybe_make_region_object_for_context): Likewise.
    
    gcc/testsuite/ChangeLog:
            PR other/116603
            * lib/sarif-schema-2.1.0.json: Update with copy downloaded from
            https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/schemas/sarif-schema-2.1.0.json
    
    Signed-off-by: David Malcolm <dmalcolm@redhat.com>
    (cherry picked from commit 38dc2c64710aa0e6a03c0c1201477e3e75b1a0b0)

diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc
index d27614d6c87..d651913be8b 100644
--- a/gcc/diagnostic-format-sarif.cc
+++ b/gcc/diagnostic-format-sarif.cc
@@ -942,7 +942,10 @@ sarif_builder::get_sarif_column (expanded_location exploc) const
    or return NULL.
 
    If COLUMN_OVERRIDE is non-zero, then use it as the column number
-   if LOC has no column information.  */
+   if LOC has no column information.
+
+   We only support text properties of regions ("text regions"),
+   not binary properties ("binary regions"); see 3.30.1.  */
 
 json::object *
 sarif_builder::maybe_make_region_object (location_t loc,
@@ -965,11 +968,16 @@ sarif_builder::maybe_make_region_object (location_t loc,
   if (exploc_finish.file !=exploc_caret.file)
     return NULL;
 
+  /* We can have line == 0 in the presence of "#" lines.
+     SARIF requires lines > 0, so if we hit this case we don't have a
+     way of validly representing the region as SARIF; bail out.  */
+  if (exploc_start.line <= 0)
+    return nullptr;
+
   json::object *region_obj = new json::object ();
 
   /* "startLine" property (SARIF v2.1.0 section 3.30.5) */
-  if (exploc_start.line > 0)
-    region_obj->set_integer ("startLine", exploc_start.line);
+  region_obj->set_integer ("startLine", exploc_start.line);
 
   /* "startColumn" property (SARIF v2.1.0 section 3.30.6).
 
@@ -1034,11 +1042,16 @@ sarif_builder::maybe_make_region_object_for_context (location_t loc) const
   if (exploc_finish.file !=exploc_caret.file)
     return NULL;
 
+  /* We can have line == 0 in the presence of "#" lines.
+     SARIF requires lines > 0, so if we hit this case we don't have a
+     way of validly representing the region as SARIF; bail out.  */
+  if (exploc_start.line <= 0)
+    return nullptr;
+
   json::object *region_obj = new json::object ();
 
   /* "startLine" property (SARIF v2.1.0 section 3.30.5) */
-  if (exploc_start.line > 0)
-    region_obj->set_integer ("startLine", exploc_start.line);
+  region_obj->set_integer ("startLine", exploc_start.line);
 
   /* "endLine" property (SARIF v2.1.0 section 3.30.7) */
   if (exploc_finish.line != exploc_start.line
@@ -1308,7 +1321,7 @@ sarif_builder::make_multiformat_message_string (const char *msg) const
   return message_obj;
 }
 
-#define SARIF_SCHEMA "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json"
+#define SARIF_SCHEMA "https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/schemas/sarif-schema-2.1.0.json"
 #define SARIF_VERSION "2.1.0"
 
 /* Make a top-level sarifLog object (SARIF v2.1.0 section 3.13).
diff --git a/gcc/testsuite/lib/sarif-schema-2.1.0.json b/gcc/testsuite/lib/sarif-schema-2.1.0.json
index e0b65245710..0f58372b548 100644
--- a/gcc/testsuite/lib/sarif-schema-2.1.0.json
+++ b/gcc/testsuite/lib/sarif-schema-2.1.0.json
@@ -1,7 +1,7 @@
 {
-  "$schema": "http://json-schema.org/draft-07/schema#",
+  "$schema": "http://json-schema.org/draft-04/schema#",
   "title": "Static Analysis Results Format (SARIF) Version 2.1.0 JSON Schema",
-  "$id": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
+  "id": "https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/schemas/sarif-schema-2.1.0.json",
   "description": "Static Analysis Results Format (SARIF) Version 2.1.0 JSON Schema: a standard format for the output of static analysis tools.",
   "additionalProperties": false,
   "type": "object",
@@ -15,12 +15,13 @@
 
     "version": {
       "description": "The SARIF format version of this log file.",
-      "enum": [ "2.1.0" ]
+      "enum": [ "2.1.0" ],
+      "type": "string"
     },
 
     "runs": {
       "description": "The set of runs contained in this log file.",
-      "type": "array",
+      "type": [ "array", "null" ],
       "minItems": 0,
       "uniqueItems": false,
       "items": {
@@ -181,7 +182,8 @@
               "userSpecifiedConfiguration",
               "toolSpecifiedConfiguration",
               "debugOutputFile"
-            ]
+            ],
+            "type": "string"
           }
         },
 
@@ -587,17 +589,18 @@
 
         "version": {
           "description": "The SARIF format version of this external properties object.",
-          "enum": [ "2.1.0" ]
+          "enum": [ "2.1.0" ],
+          "type": "string"
         },
 
         "guid": {
-          "description": "A stable, unique identifer for this external properties object, in the form of a GUID.",
+          "description": "A stable, unique identifier for this external properties object, in the form of a GUID.",
           "type": "string",
           "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
         },
 
         "runGuid": {
-          "description": "A stable, unique identifer for the run associated with this external properties object, in the form of a GUID.",
+          "description": "A stable, unique identifier for the run associated with this external properties object, in the form of a GUID.",
           "type": "string",
           "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
         },
@@ -778,7 +781,7 @@
         },
 
         "guid": {
-          "description": "A stable, unique identifer for the external property file in the form of a GUID.",
+          "description": "A stable, unique identifier for the external property file in the form of a GUID.",
           "type": "string",
           "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
         },
@@ -1563,7 +1566,8 @@
         "level": {
           "description": "A value specifying the severity level of the notification.",
           "default": "warning",
-          "enum": [ "none", "note", "warning", "error" ]
+          "enum": [ "none", "note", "warning", "error" ],
+          "type": "string"
         },
 
         "threadId": {
@@ -1775,7 +1779,13 @@
           "description": "Key/value pairs that provide additional information about the region.",
           "$ref": "#/definitions/propertyBag"
         }
-      }
+      },
+
+      "anyOf": [
+        { "required": [ "startLine" ] },
+        { "required": [ "charOffset" ] },
+        { "required": [ "byteOffset" ] }
+      ]
     },
 
     "replacement": {
@@ -1825,7 +1835,7 @@
         },
 
         "guid": {
-          "description": "A unique identifer for the reporting descriptor in the form of a GUID.",
+          "description": "A unique identifier for the reporting descriptor in the form of a GUID.",
           "type": "string",
           "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
         },
@@ -1924,7 +1934,8 @@
         "level": {
           "description": "Specifies the failure level for the report.",
           "default": "warning",
-          "enum": [ "none", "note", "warning", "error" ]
+          "enum": [ "none", "note", "warning", "error" ],
+          "type": "string"
         },
 
         "rank": {
@@ -2048,13 +2059,15 @@
         "kind": {
           "description": "A value that categorizes results by evaluation state.",
           "default": "fail",
-          "enum": [ "notApplicable", "pass", "fail", "review", "open", "informational" ]
+          "enum": [ "notApplicable", "pass", "fail", "review", "open", "informational" ],
+          "type": "string"
         },
 
         "level": {
           "description": "A value specifying the severity level of the result.",
           "default": "warning",
-          "enum": [ "none", "note", "warning", "error" ]
+          "enum": [ "none", "note", "warning", "error" ],
+          "type": "string"
         },
 
         "message": {
@@ -2079,7 +2092,7 @@
         },
 
         "guid": {
-          "description": "A stable, unique identifer for the result in the form of a GUID.",
+          "description": "A stable, unique identifier for the result in the form of a GUID.",
           "type": "string",
           "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
         },
@@ -2184,7 +2197,8 @@
             "unchanged",
             "updated",
             "absent"
-          ]
+          ],
+          "type": "string"
         },
 
         "rank": {
@@ -2354,7 +2368,7 @@
           "description": "The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase culture code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).",
           "type": "string",
           "default": "en-US",
-          "pattern": "^[a-zA-Z]{2}|^[a-zA-Z]{2}-[a-zA-Z]{2}]?$"
+          "pattern": "^[a-zA-Z]{2}(-[a-zA-Z]{2})?$"
         },
 
         "versionControlProvenance": {
@@ -2474,7 +2488,8 @@
 
         "columnKind": {
           "description": "Specifies the unit in which the tool measures columns.",
-          "enum": [ "utf16CodeUnits", "unicodeCodePoints" ]
+          "enum": [ "utf16CodeUnits", "unicodeCodePoints" ],
+          "type": "string"
         },
 
         "externalPropertyFileReferences": {
@@ -2590,7 +2605,7 @@
         },
 
         "guid": {
-          "description": "A stable, unique identifer for this object's containing run object in the form of a GUID.",
+          "description": "A stable, unique identifier for this object's containing run object in the form of a GUID.",
           "type": "string",
           "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
         },
@@ -2702,7 +2717,7 @@
       "properties": {
 
         "guid": {
-          "description": "A stable, unique identifer for the suprression in the form of a GUID.",
+          "description": "A stable, unique identifier for the suprression in the form of a GUID.",
           "type": "string",
           "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
         },
@@ -2712,7 +2727,8 @@
           "enum": [
             "inSource",
             "external"
-          ]
+          ],
+          "type": "string"
         },
 
         "status": {
@@ -2721,7 +2737,8 @@
             "accepted",
             "underReview",
             "rejected"
-          ]
+          ],
+          "type": "string"
         },
 
         "justification": {
@@ -2874,7 +2891,8 @@
         "importance": {
           "description": "Specifies the importance of this location in understanding the code flow in which it occurs. The order from most to least important is \"essential\", \"important\", \"unimportant\". Default: \"important\".",
           "enum": [ "important", "essential", "unimportant" ],
-          "default": "important"
+          "default": "important",
+          "type": "string"
         },
 
         "webRequest": {
@@ -2932,7 +2950,7 @@
       "properties": {
 
         "guid": {
-          "description": "A unique identifer for the tool component in the form of a GUID.",
+          "description": "A unique identifier for the tool component in the form of a GUID.",
           "type": "string",
           "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
         },
@@ -3060,7 +3078,7 @@
           "description": "The language of the messages emitted into the log file during this run (expressed as an ISO 639-1 two-letter lowercase language code) and an optional region (expressed as an ISO 3166-1 two-letter uppercase subculture code associated with a country or region). The casing is recommended but not required (in order for this data to conform to RFC5646).",
           "type": "string",
           "default": "en-US",
-          "pattern": "^[a-zA-Z]{2}|^[a-zA-Z]{2}-[a-zA-Z]{2}]?$"
+          "pattern": "^[a-zA-Z]{2}(-[a-zA-Z]{2})?$"
         },
 
         "contents": {
@@ -3072,7 +3090,8 @@
             "enum": [
               "localizedData",
               "nonLocalizedData"
-            ]
+            ],
+            "type": "string"
           }
         },
 

commit 7f0f9f83a304100404994f7dbd3693e5b6b7eeb4
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Nov 21 00:26:12 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2d3ebab72b0..79005918ab4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,75 @@
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-09-09  David Malcolm  <dmalcolm@redhat.com>
+
+	PR other/116603
+	* diagnostic-format-sarif.cc (SARIF_SCHEMA): Update URL.
+	(sarif_builder::maybe_make_region_object): Don't create regions
+	with startLine <= 0.
+	(sarif_builder::maybe_make_region_object_for_context): Likewise.
+
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-06-26  David Malcolm  <dmalcolm@redhat.com>
+
+	PR testsuite/109360
+	* doc/install.texi (Python3 modules): Update SARIF validation
+	requirement to use check-jsonschema rather than jsonschema.
+
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-06-21  David Malcolm  <dmalcolm@redhat.com>
+
+	PR testsuite/109360
+	* doc/install.texi: Mention optional usage of "jsonschema" tool.
+
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-06-21  David Malcolm  <dmalcolm@redhat.com>
+
+	PR testsuite/109360
+	* diagnostic-format-sarif.cc
+	(sarif_builder::make_location_object): Pass any column override
+	from rich_loc to maybe_make_physical_location_object.
+	(sarif_builder::maybe_make_physical_location_object): Add
+	"column_override" param and pass it to maybe_make_region_object.
+	(sarif_builder::maybe_make_region_object): Add "column_override"
+	param and use it when the location has 0 for a column.  Don't
+	add "startLine", "startColumn", "endLine", or "endColumn" if
+	the values aren't positive.
+	(sarif_builder::maybe_make_region_object_for_context): Don't
+	add "startLine" or "endLine" if the values aren't positive.
+
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-05-28  David Malcolm  <dmalcolm@redhat.com>
+
+	* config/v850/v850.opt.urls: Regenerate, with fix.
+	* config/vax/vax.opt.urls: Likewise.
+	* regenerate-opt-urls.py (TARGET_SPECIFIC_PAGES): Fix transposed
+	values for "vax" and "v850".
+
+2024-11-20  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-05-27  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* doc/gm2.texi: Replace all occurrences of xref
+	{foo, , , gm2} with xref {foo}.
+
+2024-11-20  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-05-24  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* doc/gm2.texi: Replace all occurrences of xref {, , , gm2}
+	with xref {, , , m2}.
+
 2024-11-18  Uros Bizjak  <ubizjak@gmail.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 837c3849695..5116abdc66f 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241120
+20241121
diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog
index d22350f9cff..48060c31b17 100644
--- a/gcc/analyzer/ChangeLog
+++ b/gcc/analyzer/ChangeLog
@@ -1,3 +1,46 @@
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-07-04  David Malcolm  <dmalcolm@redhat.com>
+
+	PR analyzer/115724
+	* kf.cc (register_known_functions): Add __error_alias and
+	__error_at_line_alias.
+
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-05-03  David Malcolm  <dmalcolm@redhat.com>
+
+	PR analyzer/111475
+	* analyzer.cc (is_special_named_call_p): Add "look_in_std" param.
+	(is_std_function_p): Make non-static.
+	* analyzer.h (is_special_named_call_p): Add optional "look_in_std"
+	param.
+	(is_std_function_p): New decl.
+	* engine.cc (stmt_requires_new_enode_p): Look for both "signal"
+	and "std::signal".
+	* kf.cc (register_known_functions): Add various "std::" copies
+	of the known functions.
+	* known-function-manager.cc
+	(known_function_manager::~known_function_manager): Clean up
+	m_std_ns_map_id_to_kf.
+	(known_function_manager::add_std_ns): New.
+	(known_function_manager::get_match): Also look for known "std::"
+	functions.
+	(known_function_manager::get_by_identifier_in_std_ns): New.
+	* known-function-manager.h
+	(known_function_manager::add_std_ns): New decl.
+	(known_function_manager::get_by_identifier_in_std_ns): New decl.
+	(known_function_manager::m_std_ns_map_id_to_kf): New field.
+	* sm-file.cc (register_known_file_functions): Add various "std::"
+	copies of the known functions.
+	* sm-malloc.cc (malloc_state_machine::on_stmt): Handle
+	"std::realloc".
+	* sm-signal.cc (signal_unsafe_p): Consider "std::" copies of the
+	functions as also being async-signal-unsafe.
+	(signal_state_machine::on_stmt): Consider "std::signal".
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f102f04379c..d861eb1e44d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,88 @@
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-09-09  David Malcolm  <dmalcolm@redhat.com>
+
+	PR other/116603
+	* lib/sarif-schema-2.1.0.json: Update with copy downloaded from
+	https://docs.oasis-open.org/sarif/sarif/v2.1.0/errata01/os/schemas/sarif-schema-2.1.0.json
+
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-07-04  David Malcolm  <dmalcolm@redhat.com>
+
+	PR analyzer/115724
+	* c-c++-common/analyzer/error-pr115724.c: New test.
+
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-06-26  David Malcolm  <dmalcolm@redhat.com>
+
+	PR testsuite/109360
+	* lib/scansarif.exp (verify-sarif-file): Use check-jsonschema
+	rather than jsonschema, updating the invocation accordingly.
+	* lib/target-supports.exp (check_effective_target_jsonschema): Convert
+	to...
+	(check_effective_target_check_jsonschema): ...this.
+
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-06-21  David Malcolm  <dmalcolm@redhat.com>
+
+	PR testsuite/109360
+	* lib/sarif-schema-2.1.0.json: New file, downloaded from
+	https://docs.oasis-open.org/sarif/sarif/v2.1.0/os/schemas/sarif-schema-2.1.0.json
+	Licensing information can be seen at
+	https://github.com/oasis-tcs/sarif-spec/issues/583
+	which states "They are free to incorporate it into their
+	implementation. No need for special permission or paperwork from
+	OASIS."
+	* lib/scansarif.exp (verify-sarif-file): If "jsonschema" is
+	available, use it to verify that the .sarif file complies with the
+	SARIF schema.
+	* lib/target-supports.exp (check_effective_target_jsonschema):
+	New.
+
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-05-03  David Malcolm  <dmalcolm@redhat.com>
+
+	PR analyzer/111475
+	* c-c++-common/analyzer/fd-glibc-byte-stream-socket.c: Add
+	-fno-exceptions for now.
+	* c-c++-common/analyzer/fd-manpage-getaddrinfo-client.c: Likewise.
+	* c-c++-common/analyzer/fd-mappage-getaddrinfo-server.c: Rename to...
+	* c-c++-common/analyzer/fd-manpage-getaddrinfo-server.c: ...this, and
+	add -fno-exceptions for now.
+	* c-c++-common/analyzer/fd-socket-meaning.c: Add -fno-exceptions
+	for now.
+	* c-c++-common/analyzer/fd-symbolic-socket.c: Likewise.
+	* c-c++-common/analyzer/flexible-array-member-1.c: Use regexp to
+	handle C vs C++ differences in spelling of function name, which
+	could have a "std::" prefix on some targets.
+	* c-c++-common/analyzer/pr106539.c: Likewise.
+	* c-c++-common/analyzer/malloc-ipa-8-unchecked.c: Move back to...
+	* gcc.dg/analyzer/malloc-ipa-8-unchecked.c: ...here, dropping
+	attempt to generalize output for C vs C++.
+	* c-c++-common/analyzer/signal-4a.c: Move back to...
+	* gcc.dg/analyzer/signal-4a.c: ...here, dropping attempt to
+	generalize output for C vs C++.
+	* c-c++-common/analyzer/signal-4b.c: Move back to...
+	* gcc.dg/analyzer/signal-4b.c: ...here, dropping attempt to
+	generalize output for C vs C++.
+
+2024-11-20  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-05-29  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115276
+	* gm2/isolib/run/pass/testinittm.mod: New test.
+
 2024-11-19  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 470cea69959..6a650999eb0 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,12 @@
+2024-11-20  David Malcolm  <dmalcolm@redhat.com>
+
+	Backported from master:
+	2024-06-21  David Malcolm  <dmalcolm@redhat.com>
+
+	PR testsuite/109360
+	* include/rich-location.h (rich_location::get_column_override):
+	New accessor.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/libgm2/ChangeLog b/libgm2/ChangeLog
index c2ddcf6df66..1963087068d 100644
--- a/libgm2/ChangeLog
+++ b/libgm2/ChangeLog
@@ -1,3 +1,15 @@
+2024-11-20  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-05-29  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115276
+	* config.h.in: Regenerate.
+	* configure: Regenerate.
+	* configure.ac: Use AC_HEADER_TIME.
+	* libm2iso/wraptime.cc (InitTM): Check HAVE_SYS_TIME_H
+	before using struct tm to obtain the size.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit f39a9609679e55d47d116973a487f6801b256f3e
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Nov 22 00:25:21 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 5116abdc66f..e1e2985b305 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241121
+20241122

commit bd82a141ee45589e3fc85cb25bc7c45a07449d7a
Author: Xi Ruoyao <xry111@xry111.site>
Date:   Thu Oct 31 23:58:23 2024 +0800

    LoongArch: Make __builtin_lsx_vorn_v and __builtin_lasx_xvorn_v arguments and return values unsigned
    
    Align them with other vector bitwise builtins.
    
    This may break programs directly invoking __builtin_lsx_vorn_v or
    __builtin_lasx_xvorn_v, but doing so is not supported (as builtins are
    not documented, only intrinsics are documented and users should use them
    instead).
    
    gcc/ChangeLog:
    
            * config/loongarch/loongarch-builtins.cc (vorn_v, xvorn_v): Use
            unsigned vector modes.
            * config/loongarch/lsxintrin.h (__lsx_vorn_v): Cast arguments to
            v16u8.
            * config/loongarch/lasxintrin.h (__lasx_xvorn_v): Cast arguments
            to v32u8.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/loongarch/vector/lsx/lsx-builtin.c (__lsx_vorn_v):
            Change arguments and return value to v16u8.
            * gcc.target/loongarch/vector/lasx/lasx-builtin.c
            (__lasx_xvorn_v): Change arguments and return value to v32u8.
    
    (cherry picked from commit ae7e25662f3f1255786f6bc13428d95b4ace6839)

diff --git a/gcc/config/loongarch/lasxintrin.h b/gcc/config/loongarch/lasxintrin.h
index 16b21455d81..82ab625c58c 100644
--- a/gcc/config/loongarch/lasxintrin.h
+++ b/gcc/config/loongarch/lasxintrin.h
@@ -3564,11 +3564,11 @@ __m256i __lasx_xvssrln_w_d (__m256i _1, __m256i _2)
 }
 
 /* Assembly instruction format:	xd, xj, xk.  */
-/* Data types in instruction templates:  V32QI, V32QI, V32QI.  */
+/* Data types in instruction templates:  UV32QI, UV32QI, UV32QI.  */
 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __m256i __lasx_xvorn_v (__m256i _1, __m256i _2)
 {
-  return (__m256i)__builtin_lasx_xvorn_v ((v32i8)_1, (v32i8)_2);
+  return (__m256i)__builtin_lasx_xvorn_v ((v32u8)_1, (v32u8)_2);
 }
 
 /* Assembly instruction format:	xd, i13.  */
diff --git a/gcc/config/loongarch/loongarch-builtins.cc b/gcc/config/loongarch/loongarch-builtins.cc
index fbe46833c9b..8a635938dee 100644
--- a/gcc/config/loongarch/loongarch-builtins.cc
+++ b/gcc/config/loongarch/loongarch-builtins.cc
@@ -1568,7 +1568,7 @@ static const struct loongarch_builtin_description loongarch_builtins[] = {
   LSX_BUILTIN (vssrln_b_h, LARCH_V16QI_FTYPE_V8HI_V8HI),
   LSX_BUILTIN (vssrln_h_w, LARCH_V8HI_FTYPE_V4SI_V4SI),
   LSX_BUILTIN (vssrln_w_d, LARCH_V4SI_FTYPE_V2DI_V2DI),
-  LSX_BUILTIN (vorn_v, LARCH_V16QI_FTYPE_V16QI_V16QI),
+  LSX_BUILTIN (vorn_v, LARCH_UV16QI_FTYPE_UV16QI_UV16QI),
   LSX_BUILTIN (vldi, LARCH_V2DI_FTYPE_HI),
   LSX_BUILTIN (vshuf_b, LARCH_V16QI_FTYPE_V16QI_V16QI_V16QI),
   LSX_BUILTIN (vldx, LARCH_V16QI_FTYPE_CVPOINTER_DI),
@@ -2118,7 +2118,7 @@ static const struct loongarch_builtin_description loongarch_builtins[] = {
   LASX_BUILTIN (xvssrln_b_h, LARCH_V32QI_FTYPE_V16HI_V16HI),
   LASX_BUILTIN (xvssrln_h_w, LARCH_V16HI_FTYPE_V8SI_V8SI),
   LASX_BUILTIN (xvssrln_w_d, LARCH_V8SI_FTYPE_V4DI_V4DI),
-  LASX_BUILTIN (xvorn_v, LARCH_V32QI_FTYPE_V32QI_V32QI),
+  LASX_BUILTIN (xvorn_v, LARCH_UV32QI_FTYPE_UV32QI_UV32QI),
   LASX_BUILTIN (xvldi, LARCH_V4DI_FTYPE_HI),
   LASX_BUILTIN (xvldx, LARCH_V32QI_FTYPE_CVPOINTER_DI),
   LASX_NO_TARGET_BUILTIN (xvstx, LARCH_VOID_FTYPE_V32QI_CVPOINTER_DI),
diff --git a/gcc/config/loongarch/lsxintrin.h b/gcc/config/loongarch/lsxintrin.h
index 9ab8269db70..0f47b5929d1 100644
--- a/gcc/config/loongarch/lsxintrin.h
+++ b/gcc/config/loongarch/lsxintrin.h
@@ -4745,11 +4745,11 @@ __m128i __lsx_vssrln_w_d (__m128i _1, __m128i _2)
 }
 
 /* Assembly instruction format:	vd, vj, vk.  */
-/* Data types in instruction templates:  V16QI, V16QI, V16QI.  */
+/* Data types in instruction templates:  UV16QI, UV16QI, UV16QI.  */
 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 __m128i __lsx_vorn_v (__m128i _1, __m128i _2)
 {
-  return (__m128i)__builtin_lsx_vorn_v ((v16i8)_1, (v16i8)_2);
+  return (__m128i)__builtin_lsx_vorn_v ((v16u8)_1, (v16u8)_2);
 }
 
 /* Assembly instruction format:	vd, i13.  */
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c
index b1a903b4a2b..64ff870a4c5 100644
--- a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c
@@ -3178,8 +3178,8 @@ __lasx_xvssrln_w_d (v4i64 _1, v4i64 _2)
 {
   return __builtin_lasx_xvssrln_w_d (_1, _2);
 }
-v32i8
-__lasx_xvorn_v (v32i8 _1, v32i8 _2)
+v32u8
+__lasx_xvorn_v (v32u8 _1, v32u8 _2)
 {
   return __builtin_lasx_xvorn_v (_1, _2);
 }
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c
index 13013114d49..1c9f384e39e 100644
--- a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c
@@ -4006,8 +4006,8 @@ __lsx_vssrln_w_d (v2i64 _1, v2i64 _2)
 {
   return __builtin_lsx_vssrln_w_d (_1, _2);
 }
-v16i8
-__lsx_vorn_v (v16i8 _1, v16i8 _2)
+v16u8
+__lsx_vorn_v (v16u8 _1, v16u8 _2)
 {
   return __builtin_lsx_vorn_v (_1, _2);
 }

commit 8cf47ce60cb02fa63e13ea0d5443906aa039101f
Author: Lulu Cheng <chenglulu@loongson.cn>
Date:   Sat Nov 2 15:30:40 2024 +0800

    LoongArch: Fix clerical errors in lasx_xvreplgr2vr_* and lsx_vreplgr2vr_*.
    
    [x]vldi.{b/h/w/d} is not implemented in LoongArch.
    Use the macro [x]vrepli.{b/h/w/d} to replace.
    
    gcc/ChangeLog:
    
            * config/loongarch/lasx.md: Fixed.
            * config/loongarch/lsx.md: Fixed.
    
    (cherry picked from commit f0cb64fb3f9d8e6f765007d4d62f1f5df73dc498)

diff --git a/gcc/config/loongarch/lasx.md b/gcc/config/loongarch/lasx.md
index 7bd61f8ed5b..94bbd0c26bb 100644
--- a/gcc/config/loongarch/lasx.md
+++ b/gcc/config/loongarch/lasx.md
@@ -1439,7 +1439,7 @@
   "ISA_HAS_LASX"
 {
   if (which_alternative == 1)
-    return "xvldi.b\t%u0,0" ;
+    return "xvrepli.b\t%u0,0";
 
   return "xvreplgr2vr.<lasxfmt>\t%u0,%z1";
 }
diff --git a/gcc/config/loongarch/lsx.md b/gcc/config/loongarch/lsx.md
index 454cda47876..5ee5845e84b 100644
--- a/gcc/config/loongarch/lsx.md
+++ b/gcc/config/loongarch/lsx.md
@@ -1306,7 +1306,7 @@
   "ISA_HAS_LSX"
 {
   if (which_alternative == 1)
-    return "vldi.<lsxfmt>\t%w0,0";
+    return "vrepli.b\t%w0,0";
 
   return "vreplgr2vr.<lsxfmt>\t%w0,%z1";
 }

commit 6bae5e6fef530f6af6e305b0e7d41e0800074ff8
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Nov 22 10:32:05 2024 +0000

    [PATCH] modula2: Simplify REAL/LONGREAL/SHORTREAL node creation.
    
    This patch simplifies the real type build functions by using
    the default float_type_node, double_type_node rather than create
    new nodes.  It also uses the default GCC long_double_type_node
    or float128_type_nodes for longreal.
    
    gcc/m2/ChangeLog:
    
            * gm2-gcc/m2type.cc (build_m2_short_real_node): Rewrite
            to use the default float_type_node.
            (build_m2_real_node): Rewrite to use the default
            double_type_node.
            (build_m2_long_real_node): Rewrite to use the default
            long_double_type_node or float128_type_node.
    
    Co-Authored-By: Kewen.Lin  <linkw@linux.ibm.com>
    (cherry picked from commit 30ce9dfcc665b6088e5898cfa766b57556ebb90e)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-gcc/m2type.cc b/gcc/m2/gm2-gcc/m2type.cc
index 571923c08ef..5773a5cbd19 100644
--- a/gcc/m2/gm2-gcc/m2type.cc
+++ b/gcc/m2/gm2-gcc/m2type.cc
@@ -1415,45 +1415,29 @@ build_m2_char_node (void)
 static tree
 build_m2_short_real_node (void)
 {
-  tree c;
-
-  /* Define `REAL'.  */
-
-  c = make_node (REAL_TYPE);
-  TYPE_PRECISION (c) = FLOAT_TYPE_SIZE;
-  layout_type (c);
-  return c;
+  /* Define `SHORTREAL'.  */
+  ASSERT_CONDITION (TYPE_PRECISION (float_type_node) == FLOAT_TYPE_SIZE);
+  return float_type_node;
 }
 
 static tree
 build_m2_real_node (void)
 {
-  tree c;
-
   /* Define `REAL'.  */
-
-  c = make_node (REAL_TYPE);
-  TYPE_PRECISION (c) = DOUBLE_TYPE_SIZE;
-  layout_type (c);
-  return c;
+  ASSERT_CONDITION (TYPE_PRECISION (double_type_node) == DOUBLE_TYPE_SIZE);  
+  return double_type_node;
 }
 
 static tree
 build_m2_long_real_node (void)
 {
   tree longreal;
-
+  
   /* Define `LONGREAL'.  */
-  if (M2Options_GetIBMLongDouble ())
-    {
-      longreal = make_node (REAL_TYPE);
-      TYPE_PRECISION (longreal) = LONG_DOUBLE_TYPE_SIZE;
-    }
-  else if (M2Options_GetIEEELongDouble ())
+  if (M2Options_GetIEEELongDouble ())
     longreal = float128_type_node;
   else
     longreal = long_double_type_node;
-  layout_type (longreal);
   return longreal;
 }
 

commit 53b0e42ac425efc6aafc73108adb030060a145ff
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Nov 22 11:39:26 2024 +0000

    [PATCH] modula2: Fix typos, grammar, and a link
    
    gcc:
            * doc/gm2.texi (Documentation): Fix typos, grammar, and a link.
    (cherry picked from commit ec0865623fc555086f96bdf52ec59f60b213be36)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/doc/gm2.texi b/gcc/doc/gm2.texi
index 72b659bdde0..08b09a7e6f0 100644
--- a/gcc/doc/gm2.texi
+++ b/gcc/doc/gm2.texi
@@ -2906,9 +2906,9 @@ you wish to see something different please email
 @node Documentation, Regression tests, Release map, Using
 @section Documentation
 
-The GNU Modula-2 documentation is available on line
-@url{https://gcc.gnu.org/onlinedocs}
-or in the pdf, info, html file format.
+The GNU Modula-2 documentation is available online at
+@url{https://gcc.gnu.org/onlinedocs/}
+in the PDF, info, and HTML file formats.
 
 @node Regression tests, Limitations, Documentation, Using
 @section Regression tests for gm2 in the repository

commit 0750bda126602ee356743b0e8b4c735a42b33065
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Nov 22 16:05:27 2024 +0000

    [PATCH] PR modula2/114529 Avoid ODR violations in bootstrap translated sources
    
    This patch changes the bootstrap tool mc to avoid redefining any data
    types and therefore preventing ODR violations.  All exported opaque type
    usages are implemented as void *.  Local opaque type usages (static
    functions containing opaque type parameters) use the full declaration.
    mc casts usages between void * and full opaque type as necessary.
    The --extended-opaque option in mc has been disabled, as this generated
    ODR violations.  The extended-opaque option inlined all declarations in
    the translated implementation module.  As this is no longer used there
    is now a .h file for each .def file and a .cc file for every .mod file.
    This results in more Makefile rules for the ppg tool in Make-maintainer.in.
    
    gcc/m2/ChangeLog:
    
            PR modula2/114529
            * Make-lang.in (MC_EXTENDED_OPAQUE): Assign to nothing.
            * Make-maintainer.in (mc-basetest): New rule.
            (mc-devel-basetest): New rule.
            (mc-clean): Remove mc.
            (m2/mc-boot-gen/$(SRC_PREFIX)decl.cc): Replace --extended-opaque
            with $(EXTENDED_OPAQUE).
            (PG-SRC): Move define before generic rules.
            (PGE-DEF): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)%.h): New rule.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)libc.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)mcrts.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)UnixArgs.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)Selective.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)termios.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)SysExceptions.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)ldtoa.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)wrapc.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)SYSTEM.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)errno.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.h): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.h): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)Output.h): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.h): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.h): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.h): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.o): Ditto.
            (m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.
            (m2/ppg$(exeext)): Ditto.
            (m2/gm2-ppg-boot/main.o): Ditto.
            (m2/gm2-auto): Ditto.
            (c-family/m2pp.o): Ditto.
            (BUILD-BOOT-PG-H): Correct macro definition.
            (m2/gm2-pg-boot/$(SRC_PREFIX)%.h): New rule.
            (m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.h): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.o): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)Lists.h): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)Lists.o): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)Output.h): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)Output.o): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.h): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.o): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)RTco.h): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.h): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)RTco.o): Ditto.
            (m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.o): Ditto.
            (BUILD-BOOT-PGE-H): Correct macro definition.
            (m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.h): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)Lists.h): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)Output.h): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.h): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)RTco.h): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)RTco.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.
            (mc-basetest): Ditto.
            (mc-devel-basetest): Ditto.
            * gm2-compiler/M2Options.def (SetM2Dump): Add BOOLEAN return.
            * gm2-compiler/M2Quads.def (BuildAlignment): Add tokno parameter.
            (BuildBitLength): Ditto.
            * gm2-compiler/P3Build.bnf (ByteAlignment): Move tokpos assignment
            to the start of the block.
            * gm2-compiler/PCBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.
            (SetOrDesignatorOrFunction): Ditto.
            * gm2-compiler/PHBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.
            (SetOrDesignatorOrFunction): Ditto.
            (ByteAlignment): Ditto.
            * gm2-libs/dtoa.def (dtoa): Change mode to INTEGER.
            * gm2-libs/ldtoa.def (ldtoa): Ditto.
            * mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_init): Correct parameter list.
            (_M2_SYSTEM_fini): Ditto.
            * mc-boot-ch/Gdtoa.cc (dtoa_calcsign): Return bool.
            (dtoa_dtoa): Return void * and use bool in the fifth parameter.
            (_M2_dtoa_init): Correct parameter list.
            (_M2_dtoa_fini): Ditto.
            * mc-boot-ch/Gerrno.cc (_M2_errno_init): Ditto.
            (_M2_errno_fini): Ditto.
            * mc-boot-ch/Gldtoa.cc (dtoa_calcsign): Return bool.
            (ldtoa_ldtoa): Return void * and use bool in the fifth parameter.
            (_M2_ldtoa_init): Correct parameter list.
            (_M2_ldtoa_fini): Ditto.
            * mc-boot-ch/Glibc.c (tracedb_zresult): New function.
            (libc_read): Return size_t and use size_t in parameter three.
            (libc_write): Return size_t and use size_t in parameter three.
            (libc_printf): Add const to the format specifier.
            Change declaration of c to use const.
            (libc_snprintf): Add const to the format specifier.
            Change declaration of c to use const.
            (libc_malloc): Use size_t.
            (libc_memcpy): Ditto.
            * mc-boot/GASCII.cc: Regenerate.
            * mc-boot/GArgs.cc: Ditto.
            * mc-boot/GAssertion.cc: Ditto.
            * mc-boot/GBreak.cc: Ditto.
            * mc-boot/GCmdArgs.cc: Ditto.
            * mc-boot/GDebug.cc: Ditto.
            * mc-boot/GDynamicStrings.cc: Ditto.
            * mc-boot/GEnvironment.cc: Ditto.
            * mc-boot/GFIO.cc: Ditto.
            * mc-boot/GFormatStrings.cc: Ditto.
            * mc-boot/GFpuIO.cc: Ditto.
            * mc-boot/GIO.cc: Ditto.
            * mc-boot/GIndexing.cc: Ditto.
            * mc-boot/GM2Dependent.cc: Ditto.
            * mc-boot/GM2EXCEPTION.cc: Ditto.
            * mc-boot/GM2RTS.cc: Ditto.
            * mc-boot/GMemUtils.cc: Ditto.
            * mc-boot/GNumberIO.cc: Ditto.
            * mc-boot/GPushBackInput.cc: Ditto.
            * mc-boot/GRTExceptions.cc: Ditto.
            * mc-boot/GRTint.cc: Ditto.
            * mc-boot/GSArgs.cc: Ditto.
            * mc-boot/GSFIO.cc: Ditto.
            * mc-boot/GStdIO.cc: Ditto.
            * mc-boot/GStorage.cc: Ditto.
            * mc-boot/GStrCase.cc: Ditto.
            * mc-boot/GStrIO.cc: Ditto.
            * mc-boot/GStrLib.cc: Ditto.
            * mc-boot/GStringConvert.cc: Ditto.
            * mc-boot/GSysStorage.cc: Ditto.
            * mc-boot/GTimeString.cc: Ditto.
            * mc-boot/Galists.cc: Ditto.
            * mc-boot/Gdecl.cc: Ditto.
            * mc-boot/Gkeyc.cc: Ditto.
            * mc-boot/Glists.cc: Ditto.
            * mc-boot/GmcComment.cc: Ditto.
            * mc-boot/GmcComp.cc: Ditto.
            * mc-boot/GmcDebug.cc: Ditto.
            * mc-boot/GmcError.cc: Ditto.
            * mc-boot/GmcFileName.cc: Ditto.
            * mc-boot/GmcLexBuf.cc: Ditto.
            * mc-boot/GmcMetaError.cc: Ditto.
            * mc-boot/GmcOptions.cc: Ditto.
            * mc-boot/GmcPreprocess.cc: Ditto.
            * mc-boot/GmcPretty.cc: Ditto.
            * mc-boot/GmcPrintf.cc: Ditto.
            * mc-boot/GmcQuiet.cc: Ditto.
            * mc-boot/GmcReserved.cc: Ditto.
            * mc-boot/GmcSearch.cc: Ditto.
            * mc-boot/GmcStack.cc: Ditto.
            * mc-boot/GmcStream.cc: Ditto.
            * mc-boot/Gmcp1.cc: Ditto.
            * mc-boot/Gmcp2.cc: Ditto.
            * mc-boot/Gmcp3.cc: Ditto.
            * mc-boot/Gmcp4.cc: Ditto.
            * mc-boot/Gmcp5.cc: Ditto.
            * mc-boot/GnameKey.cc: Ditto.
            * mc-boot/GsymbolKey.cc: Ditto.
            * mc-boot/Gvarargs.cc: Ditto.
            * mc-boot/Gwlists.cc: Ditto.
            * mc-boot/Gdecl.h: Ditto.
            * mc-boot/Gldtoa.h: Ditto.
            * mc-boot/Glibc.h: Ditto.
            * mc/decl.def (putTypeOpaque): New procedure.
            (isTypeOpaque): New procedure function.
            * mc/decl.mod (debugOpaque): New constant.
            (nodeT): New enumeration field opaquecast.
            (node): New record field opaquecastF.
            (opaqueCastState): New record.
            (opaquecastT): New record.
            (typeT): New field isOpaque.
            (varT): New field opaqueState.
            (arrayT): Ditto.
            (varparamT): Ditto.
            (paramT): Ditto.
            (pointerT): Ditto.
            (recordfieldT): Ditto.
            (componentrefT): Ditto.
            (pointerrefT): Ditto.
            (arrayrefT): Ditto.
            (procedureT): Ditto.
            (proctypeT): Ditto.
            (makeType): Initialize field isOpaque.
            (makeTypeImp): Initialize field isOpaque.
            (putVar): Call initNodeOpaqueCastState.
            (putReturnType): Ditto.
            (makeProcType): Ditto.
            (putProcTypeReturn): Ditto.
            (makeVarParameter): Ditto.
            (makeNonVarParameter): Ditto.
            (makeFuncCall): Ditto.
            (putTypeOpaque): New procedure.
            (isTypeOpaque): New procedure function.
            (doMakeComponentRef): Call initNodeOpaqueCastState.
            (makePointerRef): Call initNodeOpaqueCastState.
            (doGetFuncType): Call initNodeOpaqueCastState.
            (doBinary): Add FALSE parameter to doExprCup.
            (doDeRefC): Rewrite.
            (doComponentRefC): Call flushOpaque.
            (doPointerRefC): Call flushOpaque.
            (doArrayRefC): Add const_cast for unbounded array.
            (doExprCup): Rewrite.
            (doTypeAliasC): Remove.
            (isDeclType): New procedure function.
            (doEnumerationC): New procedure function.
            (doParamTypeEmit): Ditto.
            (doParamTypeNameModifier): Ditto.
            (initOpaqueCastState): Ditto.
            (initNodeOpaqueCastState): Ditto.
            (setOpaqueCastState): Ditto.
            (setNodeOpaqueVoidStar): Ditto.
            (nodeUsesOpaque): Ditto.
            (getNodeOpaqueVoidStar): Ditto.
            (getOpaqueFlushNecessary): Ditto.
            (makeOpaqueCast): Ditto.
            (flushOpaque): Ditto.
            (castOpaque): Ditto.
            (isTypeOpaqueDefImp): Ditto.
            (isParamVoidStar): Ditto.
            (isRefVoidStar): Ditto.
            (isReturnVoidStar): Ditto.
            (isVarVoidStar): Ditto.
            (initNodeOpaqueState): Ditto.
            (assignNodeOpaqueCastState): Ditto.
            (assignNodeOpaqueCastFalse): Ditto.
            (dumpOpaqueState): Ditto.
            (doProcTypeC): Rewrite.
            (isDeclInImp): New procedure function.
            (doTypeNameModifier): Ditto.
            (doTypeC): Emit typedef if enum is declared in this module.
            (doCompletePartialProcType): Rewrite.
            (outputCompletePartialProcType): New procedure.
            (doOpaqueModifier): Ditto.
            (doVarC): Ditto.
            (doProcedureHeadingC): Add opaque modifier to return type if
            necessary.
            (doReturnC): Cast opaque type for return if necessary.
            (forceCastOpaque): New procedure.
            (forceReintCastOpaque): New procedure.
            (doUnConstCastUnbounded): New procedure.
            (doAssignmentC): Cast opaque for both des and expr if necessary.
            (doAdrExprC): Use static_cast for void * casting.
            (doFuncVarParam): New procedure.
            (doFuncParamC): Rewrite.
            (doAdrArgC): Rewrite.
            (getFunction): New procedure function.
            (stop): Rename to ...
            (localstop): ... this.
            (dupFunccall): Call assignNodeOpaqueCastState.
            (dbg): Rewrite.
            (addDone): Rewrite.
            (addDoneDef): Do not add opaque types to the doneQ when declared in
            the definition module.
            * mc/mc.flex (openSource): Return bool.
            (_M2_mcflex_init): Correct parameter list.
            (_M2_mcflex_fini): Ditto.
            * mc/mcComment.h (stdbool.h): Include.
            (mcComment_initComment): Change unsigned int to bool.
            * mc/mcOptions.mod (handleOption): Disable --extended-opaque
            and issue warning.
            * mc/mcp1.bnf (DefTypeDeclaration): Call putTypeOpaque.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/114529
            * gm2/base-lang/pass/SYSTEM.def: New test.
            * gm2/base-lang/pass/base-lang-test.sh: New test.
            * gm2/base-lang/pass/globalproctype.def: New test.
            * gm2/base-lang/pass/globalproctype.mod: New test.
            * gm2/base-lang/pass/globalvar.def: New test.
            * gm2/base-lang/pass/globalvar.mod: New test.
            * gm2/base-lang/pass/globalvarassign.def: New test.
            * gm2/base-lang/pass/globalvarassign.mod: New test.
            * gm2/base-lang/pass/localproctype.def: New test.
            * gm2/base-lang/pass/localproctype.mod: New test.
            * gm2/base-lang/pass/localvar.def: New test.
            * gm2/base-lang/pass/localvar.mod: New test.
            * gm2/base-lang/pass/localvarassign.def: New test.
            * gm2/base-lang/pass/localvarassign.mod: New test.
            * gm2/base-lang/pass/opaquefield.def: New test.
            * gm2/base-lang/pass/opaquefield.mod: New test.
            * gm2/base-lang/pass/opaquenew.def: New test.
            * gm2/base-lang/pass/opaquenew.mod: New test.
            * gm2/base-lang/pass/opaqueparam.def: New test.
            * gm2/base-lang/pass/opaqueparam.mod: New test.
            * gm2/base-lang/pass/opaquestr.def: New test.
            * gm2/base-lang/pass/opaqueuse.def: New test.
            * gm2/base-lang/pass/opaqueuse.mod: New test.
            * gm2/base-lang/pass/opaqueusestr.def: New test.
            * gm2/base-lang/pass/opaqueusestr.mod: New test.
            * gm2/base-lang/pass/opaquevariant.def: New test.
            * gm2/base-lang/pass/opaquevariant.mod: New test.
            * gm2/base-lang/pass/opaquevarparam.def: New test.
            * gm2/base-lang/pass/opaquevarparam.mod: New test.
            * gm2/base-lang/pass/simplelist.def: New test.
            * gm2/base-lang/pass/simplelist.mod: New test.
            * gm2/base-lang/pass/simplelistiter.def: New test.
            * gm2/base-lang/pass/simplelistiter.mod: New test.
            * gm2/base-lang/pass/simpleopaque.def: New test.
            * gm2/base-lang/pass/simpleopaque.mod: New test.
            * gm2/base-lang/pass/straddress.def: New test.
            * gm2/base-lang/pass/straddress.mod: New test.
            * gm2/base-lang/pass/straddressexport.def: New test.
            * gm2/base-lang/pass/straddressexport.mod: New test.
            * gm2/base-lang/pass/unboundedarray.def: New test.
            * gm2/base-lang/pass/unboundedarray.mod: New test.
    
    (cherry picked from commit a0004feb87efbe41fb1e9cd77f1c9af06e98ccb5)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index 83d592f35d8..daa7ef6747a 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -505,7 +505,7 @@ MC_ARGS= --olang=c++ \
  $(MC_COPYRIGHT) \
  --gcc-config-system
 
-MC_EXTENDED_OPAQUE=--extended-opaque
+MC_EXTENDED_OPAQUE=
 MCDEPS=m2/boot-bin/mc$(exeext)
 
 MC=m2/boot-bin/mc$(exeext) $(MC_ARGS)
diff --git a/gcc/m2/Make-maintainer.in b/gcc/m2/Make-maintainer.in
index 52f35f30e5a..6fa58975c58 100644
--- a/gcc/m2/Make-maintainer.in
+++ b/gcc/m2/Make-maintainer.in
@@ -77,90 +77,14 @@ PPG-LIB-MODS     = ASCII.mod \
 
 PPG-SRC          = ppg.mod
 
-BUILD-PPG-O = $(PPG-INTERFACE-C:%.c=m2/gm2-ppg-boot/$(SRC_PREFIX)%.o) \
-              $(PPG-INTERFACE-CC:%.cc=m2/gm2-ppg-boot/$(SRC_PREFIX)%.o) \
-              $(PPG-MODS:%.mod=m2/gm2-ppg-boot/$(SRC_PREFIX)%.o) \
-              $(PPG-LIB-MODS:%.mod=m2/gm2-ppg-boot/$(SRC_PREFIX)%.o) \
-              $(PPG-SRC:%.mod=m2/gm2-ppg-boot/$(SRC_PREFIX)%.o)
-
-MCC_ARGS= --olang=c++ \
- --quiet \
- --h-file-prefix=$(SRC_PREFIX) \
- -I$(srcdir)/m2/gm2-libs \
- -I$(srcdir)/m2/gm2-compiler \
- -I$(srcdir)/m2/gm2-libiberty \
- -I$(srcdir)/m2/gm2-gcc
-
-MCC=m2/boot-bin/mc$(exeext) $(MCC_ARGS)
-
-BUILD-PPG-LIBS-H = $(PPG-LIB-DEFS:%.def=m2/gm2-ppg-boot/$(SRC_PREFIX)%.h)
-
-BUILD-PPG-H = m2/boot-bin/mc$(exeext) $(BUILD-PPG-LIBS-H)
-
-BUILD-BOOT-PPG-H: $(BUILD-BOOT-H) \
-                 m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.h \
-                 m2/gm2-ppg-boot/$(SRC_PREFIX)M2Dependent.h \
-		 $(PPG-DEFS:%.def=m2/gm2-ppg-boot/$(SRC_PREFIX)%.h)
-
-m2/gm2-ppg-boot/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-libs/%.def $(MCDEPS)
-	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
-	$(MCC) -o=$@ $(srcdir)/m2/gm2-libs/$*.def
-
-m2/gm2-ppg-boot/$(SRC_PREFIX)%.o: m2/mc-boot-ch/$(SRC_PREFIX)%.c m2/gm2-libs/gm2-libs-host.h $(BUILD-BOOT-PPG-H)
-	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs $(INCLUDES) -g -c $< -o $@
-
-m2/gm2-ppg-boot/$(SRC_PREFIX)%.o: m2/mc-boot-ch/$(SRC_PREFIX)%.cc m2/gm2-libs/gm2-libs-host.h $(BUILD-BOOT-PPG-H)
-	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs $(INCLUDES) -g -c $< -o $@
-
-m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o: $(srcdir)/m2/gm2-libs/M2RTS.mod $(MCDEPS) $(BUILD-BOOT-PPG-H)
-	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
-	$(MCC) --suppress-noreturn -o=m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.cc $(srcdir)/m2/gm2-libs/M2RTS.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) \
-              -Im2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot -Im2/gm2-libs-boot \
-              -I$(srcdir)/m2/mc-boot-ch $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.cc -o $@
-
-m2/gm2-ppg-boot/$(SRC_PREFIX)%.o: $(srcdir)/m2/gm2-libs/%.mod $(MCDEPS) $(BUILD-BOOT-PPG-H)
-	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
-	$(MCC) -o=m2/gm2-ppg-boot/$(SRC_PREFIX)$*.cc $(srcdir)/m2/gm2-libs/$*.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) \
-              -Im2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot -Im2/gm2-libs-boot \
-              -I$(srcdir)/m2/mc-boot-ch $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)$*.cc -o $@
-
-m2/gm2-ppg-boot/$(SRC_PREFIX)%.o: $(srcdir)/m2/gm2-compiler/%.mod $(MCDEPS) $(BUILD-BOOT-PPG-H)
-	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
-	$(MCC) -o=m2/gm2-ppg-boot/$(SRC_PREFIX)$*.cc $(srcdir)/m2/gm2-compiler/$*.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) \
-              -Im2/mc-boot -Im2/gm2-compiler-boot -Im2/gm2-libs-boot \
-              -I$(srcdir)/m2/mc-boot-ch $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)$*.cc -o $@
-
-m2/ppg$(exeext): m2/boot-bin/mc $(BUILD-PPG-O) $(BUILD-MC-INTERFACE-O) m2/gm2-ppg-boot/main.o \
-                 m2/gm2-libs-boot/RTcodummy.o m2/mc-boot-ch/$(SRC_PREFIX)abort.o
-	-test -d m2 || $(mkinstalldirs) m2
-	+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(BUILD-PPG-O) m2/gm2-ppg-boot/main.o \
-                 m2/gm2-libs-boot/RTcodummy.o m2/mc-boot-ch/$(SRC_PREFIX)abort.o -lm
-
-m2/gm2-ppg-boot/main.o: $(M2LINK) $(srcdir)/m2/init/mcinit
-	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
-	unset CC ; $(M2LINK) -s --langc++ --exit --name mainppginit.cc $(srcdir)/m2/init/ppginit
-	mv mainppginit.cc m2/gm2-ppg-boot/main.cc
-	$(CXX) $(INCLUDES) -g -c -o $@ m2/gm2-ppg-boot/main.cc
-
-m2/gm2-auto:
-	-test -d $@ || $(mkinstalldirs) $@
-
-c-family/m2pp.o : $(srcdir)/m2/m2pp.cc $(GCC_HEADER_DEPENDENCIES_FOR_M2)
-	$(COMPILER) -c -g $(ALL_COMPILERFLAGS) \
-            $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
-
-# m2/pg$(exext) is the 2nd generation parser generator built from ebnf
-# without error recovery
+# m2/pg$(exext) is the 2nd generation parser generator built from the
+# ebnf src without error recovery
 
 PG-SRC = pg.mod
 PGE-DEF = ASCII.def \
    Args.def \
    Assertion.def \
+   bnflex.def \
    Break.def  \
    COROUTINES.def \
    CmdArgs.def \
@@ -176,6 +100,7 @@ PGE-DEF = ASCII.def \
    M2RTS.def \
    MemUtils.def \
    NumberIO.def \
+   Output.def \
    PushBackInput.def \
    RTExceptions.def \
    RTco.def \
@@ -191,6 +116,7 @@ PGE-DEF = ASCII.def \
    StrIO.def \
    StrLib.def \
    StringConvert.def \
+   SymbolKey.def \
    SysExceptions.def \
    SysStorage.def \
    TimeString.def \
@@ -260,6 +186,9 @@ PGE-DEPS = Gabort.cc \
    GPushBackInput.cc \
    GPushBackInput.h \
    GRTco.cc \
+   GRTco.h \
+   GRTentity.cc \
+   GRTentity.h \
    GRTExceptions.cc \
    GRTExceptions.h \
    GSArgs.h \
@@ -295,19 +224,320 @@ PGE-DEPS = Gabort.cc \
    Gwrapc.cc \
    Gwrapc.h
 
+BUILD-PPG-O = $(PPG-INTERFACE-C:%.c=m2/gm2-ppg-boot/$(SRC_PREFIX)%.o) \
+              $(PPG-INTERFACE-CC:%.cc=m2/gm2-ppg-boot/$(SRC_PREFIX)%.o) \
+              $(PPG-MODS:%.mod=m2/gm2-ppg-boot/$(SRC_PREFIX)%.o) \
+              $(PPG-LIB-MODS:%.mod=m2/gm2-ppg-boot/$(SRC_PREFIX)%.o) \
+              $(PPG-SRC:%.mod=m2/gm2-ppg-boot/$(SRC_PREFIX)%.o)
+
+MCC_ARGS= --olang=c++ \
+ --quiet \
+ --h-file-prefix=$(SRC_PREFIX) \
+ -I$(srcdir)/m2/gm2-libs \
+ -I$(srcdir)/m2/gm2-compiler \
+ -I$(srcdir)/m2/gm2-libiberty \
+ -I$(srcdir)/m2/gm2-gcc
+
+MCC=m2/boot-bin/mc$(exeext) $(MCC_ARGS)
+
+BUILD-PPG-LIBS-H = $(PPG-LIB-DEFS:%.def=m2/gm2-ppg-boot/$(SRC_PREFIX)%.h)
+
+BUILD-PPG-H = m2/boot-bin/mc$(exeext) $(BUILD-PPG-LIBS-H)
+
+BUILD-BOOT-PPG-H = $(BUILD-BOOT-H) \
+                   m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.h \
+                   m2/gm2-ppg-boot/$(SRC_PREFIX)M2Dependent.h \
+                   $(PGE-DEF:%.def=m2/gm2-ppg-boot/$(SRC_PREFIX)%.h) \
+                   $(PPG-DEFS:%.def=m2/gm2-ppg-boot/$(SRC_PREFIX)%.h) \
+                   $(PPG-LIB-DEFS:%.def=m2/gm2-ppg-boot/$(SRC_PREFIX)%.h)
+
+# BUILD-BOOT-PPG-H = $(BUILD-BOOT-H) $(PGE-DEF:%.def=m2/gm2-ppg-boot/$(SRC_PREFIX)%.h)
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-libs/%.def $(MCDEPS)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-libs/$*.def
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)libc.o: $(srcdir)/m2/mc-boot-ch/Glibc.c m2/gm2-libs/gm2-libs-host.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) $(INCLUDES) -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)mcrts.o:  $(srcdir)/m2/mc-boot-ch/Gmcrts.c m2/gm2-libs/gm2-libs-host.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) $(INCLUDES) -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)UnixArgs.o:  $(srcdir)/m2/mc-boot-ch/GUnixArgs.cc
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)Selective.o:  $(srcdir)/m2/mc-boot-ch/GSelective.c m2/gm2-libs/gm2-libs-host.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch $(INCLUDES) -Im2/gm2-libs -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)termios.o:  $(srcdir)/m2/mc-boot-ch/Gtermios.cc m2/gm2-libs/gm2-libs-host.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)SysExceptions.o:  $(srcdir)/m2/mc-boot-ch/GSysExceptions.c m2/gm2-libs/gm2-libs-host.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)ldtoa.o:  $(srcdir)/m2/mc-boot-ch/Gldtoa.cc m2/gm2-libs/gm2-libs-host.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)dtoa.o:  $(srcdir)/m2/mc-boot-ch/Gdtoa.cc m2/gm2-libs/gm2-libs-host.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)wrapc.o:  $(srcdir)/m2/mc-boot-ch/Gwrapc.c m2/gm2-libs/gm2-libs-host.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)SYSTEM.o:  $(srcdir)/m2/mc-boot-ch/GSYSTEM.c $(BUILD-BOOT-PPG-H)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)errno.o:  $(srcdir)/m2/mc-boot-ch/Gerrno.cc
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot-ch $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o: $(srcdir)/m2/gm2-libs/M2RTS.mod $(MCDEPS) $(BUILD-BOOT-PPG-H)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.cc $(srcdir)/m2/gm2-libs/M2RTS.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.cc -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.h: $(srcdir)/m2/gm2-compiler/SymbolKey.def $(MCDEPS)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/SymbolKey.def
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.o: $(srcdir)/m2/gm2-compiler/SymbolKey.mod \
+                                          $(MCDEPS) $(BUILD-BOOT-PPG-H) \
+                                          m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.cc $(srcdir)/m2/gm2-compiler/SymbolKey.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.cc -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.h: $(srcdir)/m2/gm2-compiler/NameKey.def $(MCDEPS)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/NameKey.def
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.o: $(srcdir)/m2/gm2-compiler/NameKey.mod \
+                                        $(MCDEPS) $(BUILD-BOOT-PPG-H) \
+                                        m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.cc $(srcdir)/m2/gm2-compiler/NameKey.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.cc -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.h: $(srcdir)/m2/gm2-compiler/Lists.def $(MCDEPS)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/Lists.def
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.o: $(srcdir)/m2/gm2-compiler/Lists.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PPG-H) \
+                                      m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.cc $(srcdir)/m2/gm2-compiler/Lists.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.cc -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)Output.h: $(srcdir)/m2/gm2-compiler/Output.def $(MCDEPS)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/Output.def
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)Output.o: $(srcdir)/m2/gm2-compiler/Output.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PPG-H) \
+                                      m2/gm2-ppg-boot/$(SRC_PREFIX)Output.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-ppg-boot/$(SRC_PREFIX)Output.cc $(srcdir)/m2/gm2-compiler/Output.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)Output.cc -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.h: $(srcdir)/m2/gm2-compiler/bnflex.def $(MCDEPS)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/bnflex.def
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.o: $(srcdir)/m2/gm2-compiler/bnflex.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PPG-H) \
+                                      m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.cc $(srcdir)/m2/gm2-compiler/bnflex.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.cc -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.h: $(srcdir)/m2/gm2-libs-iso/RTco.def $(MCDEPS)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) -o=$@ -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-libs $(srcdir)/m2/gm2-libs-iso/RTco.def
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.h: $(srcdir)/m2/gm2-libs-iso/RTentity.def $(MCDEPS)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) -o=$@ -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-libs $(srcdir)/m2/gm2-libs-iso/RTentity.def
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.o: $(srcdir)/m2/gm2-libs-iso/RTcodummy.c
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.o: $(srcdir)/m2/gm2-libs-iso/RTentity.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PPG-H) \
+                                      m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.h
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.cc $(srcdir)/m2/gm2-libs-iso/RTentity.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.cc -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)%.o: $(srcdir)/m2/gm2-libs/%.mod $(MCDEPS) $(BUILD-BOOT-PPG-H)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) -o=m2/gm2-ppg-boot/$(SRC_PREFIX)$*.cc $(srcdir)/m2/gm2-libs/$*.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-ppg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)$*.cc -o $@
+
+m2/gm2-ppg-boot/$(SRC_PREFIX)%.o: $(srcdir)/m2/gm2-compiler/%.mod $(MCDEPS) $(BUILD-BOOT-PPG-H)
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	$(MCC) -o=m2/gm2-ppg-boot/$(SRC_PREFIX)$*.cc $(srcdir)/m2/gm2-compiler/$*.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/mc-boot -Im2/gm2-compiler-boot \
+              -Im2/gm2-libs-boot -Im2/gm2-ppg-boot \
+              -I$(srcdir)/m2/mc-boot-ch $(INCLUDES) -g -c m2/gm2-ppg-boot/$(SRC_PREFIX)$*.cc -o $@
+
+m2/ppg$(exeext): m2/boot-bin/mc $(BUILD-PPG-O) $(BUILD-MC-INTERFACE-O) m2/gm2-ppg-boot/main.o \
+                 m2/gm2-libs-boot/RTcodummy.o m2/mc-boot-ch/$(SRC_PREFIX)abort.o
+	-test -d m2 || $(mkinstalldirs) m2
+	+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(BUILD-PPG-O) m2/gm2-ppg-boot/main.o \
+                 m2/gm2-libs-boot/RTcodummy.o m2/mc-boot-ch/$(SRC_PREFIX)abort.o -lm
+
+m2/gm2-ppg-boot/main.o: $(M2LINK) $(srcdir)/m2/init/mcinit
+	-test -d m2/gm2-ppg-boot || $(mkinstalldirs) m2/gm2-ppg-boot
+	unset CC ; $(M2LINK) -s --langc++ --exit --name mainppginit.cc $(srcdir)/m2/init/ppginit
+	mv mainppginit.cc m2/gm2-ppg-boot/main.cc
+	$(CXX) $(INCLUDES) -g -c -o $@ m2/gm2-ppg-boot/main.cc
+
+m2/gm2-auto:
+	-test -d $@ || $(mkinstalldirs) $@
+
+c-family/m2pp.o : $(srcdir)/m2/m2pp.cc $(GCC_HEADER_DEPENDENCIES_FOR_M2)
+	$(COMPILER) -c -g $(ALL_COMPILERFLAGS) \
+            $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
+
+
 BUILD-PG-O = $(PPG-INTERFACE-C:%.c=m2/gm2-pg-boot/$(SRC_PREFIX)%.o) \
              $(PPG-INTERFACE-CC:%.cc=m2/gm2-pg-boot/$(SRC_PREFIX)%.o) \
              $(PPG-MODS:%.mod=m2/gm2-pg-boot/$(SRC_PREFIX)%.o) \
              $(PPG-LIB-MODS:%.mod=m2/gm2-pg-boot/$(SRC_PREFIX)%.o) \
              $(PG-SRC:%.mod=m2/gm2-pg-boot/$(SRC_PREFIX)%.o)
 
-BUILD-BOOT-PG-H: $(BUILD-BOOT-H) \
+BUILD-BOOT-PG-H = $(BUILD-BOOT-H) \
                  m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.h \
-                 m2/gm2-pg-boot/$(SRC_PREFIX)M2Dependent.h
+                 m2/gm2-pg-boot/$(SRC_PREFIX)M2Dependent.h \
+                 $(PGE-DEF:%.def=m2/gm2-pg-boot/$(SRC_PREFIX)%.h) \
+                 $(PPG-DEFS:%.def=m2/gm2-pg-boot/$(SRC_PREFIX)%.h) \
+                 $(PPG-LIB-DEFS:%.def=m2/gm2-pg-boot/$(SRC_PREFIX)%.h)
 
 m2/gm2-pg-boot/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-libs/%.def $(MCDEPS)
 	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
-	$(MCC) -o=$@ $(srcdir)/m2/gm2-libs/$*.def
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-libs/$*.def $<
+
+m2/gm2-pg-boot/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-compiler/%.def $(MCDEPS)
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) -o=$@ -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-compiler $<
+
+m2/gm2-pg-boot/$(SRC_PREFIX)SymbolKey.h: $(srcdir)/m2/gm2-compiler/SymbolKey.def $(MCDEPS)
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/SymbolKey.def
+
+m2/gm2-pg-boot/$(SRC_PREFIX)SymbolKey.o: $(srcdir)/m2/gm2-compiler/SymbolKey.mod \
+                                          $(MCDEPS) $(BUILD-BOOT-PG-H) \
+                                          m2/gm2-pg-boot/$(SRC_PREFIX)SymbolKey.h
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pg-boot/$(SRC_PREFIX)SymbolKey.cc $(srcdir)/m2/gm2-compiler/SymbolKey.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pg-boot/$(SRC_PREFIX)SymbolKey.cc -o $@
+
+m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.h: $(srcdir)/m2/gm2-compiler/NameKey.def $(MCDEPS)
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/NameKey.def
+
+m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.o: $(srcdir)/m2/gm2-compiler/NameKey.mod \
+                                        $(MCDEPS) $(BUILD-BOOT-PG-H) \
+                                        m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.h
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.cc $(srcdir)/m2/gm2-compiler/NameKey.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.cc -o $@
+
+m2/gm2-pg-boot/$(SRC_PREFIX)Lists.h: $(srcdir)/m2/gm2-compiler/Lists.def $(MCDEPS)
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/Lists.def
+
+m2/gm2-pg-boot/$(SRC_PREFIX)Lists.o: $(srcdir)/m2/gm2-compiler/Lists.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PG-H) \
+                                      m2/gm2-pg-boot/$(SRC_PREFIX)Lists.h
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pg-boot/$(SRC_PREFIX)Lists.cc $(srcdir)/m2/gm2-compiler/Lists.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pg-boot/$(SRC_PREFIX)Lists.cc -o $@
+
+m2/gm2-pg-boot/$(SRC_PREFIX)Output.h: $(srcdir)/m2/gm2-compiler/Output.def $(MCDEPS)
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/Output.def
+
+m2/gm2-pg-boot/$(SRC_PREFIX)Output.o: $(srcdir)/m2/gm2-compiler/Output.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PG-H) \
+                                      m2/gm2-pg-boot/$(SRC_PREFIX)Output.h
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pg-boot/$(SRC_PREFIX)Output.cc $(srcdir)/m2/gm2-compiler/Output.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pg-boot/$(SRC_PREFIX)Output.cc -o $@
+
+m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.h: $(srcdir)/m2/gm2-compiler/bnflex.def $(MCDEPS)
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/bnflex.def
+
+m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.o: $(srcdir)/m2/gm2-compiler/bnflex.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PG-H) \
+                                      m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.h
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.cc $(srcdir)/m2/gm2-compiler/bnflex.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.cc -o $@
+
+m2/gm2-pg-boot/$(SRC_PREFIX)RTco.h: $(srcdir)/m2/gm2-libs-iso/RTco.def $(MCDEPS)
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) -o=$@ -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-libs $(srcdir)/m2/gm2-libs-iso/RTco.def
+
+m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.h: $(srcdir)/m2/gm2-libs-iso/RTentity.def $(MCDEPS)
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) -o=$@ -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-libs $(srcdir)/m2/gm2-libs-iso/RTentity.def
+
+m2/gm2-pg-boot/$(SRC_PREFIX)RTco.o: $(srcdir)/m2/gm2-libs-iso/RTcodummy.c
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.o: $(srcdir)/m2/gm2-libs-iso/RTentity.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PG-H) \
+                                      m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.h
+	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.cc $(srcdir)/m2/gm2-libs-iso/RTentity.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.cc -o $@
 
 m2/gm2-pg-boot/$(SRC_PREFIX)%.o: m2/mc-boot-ch/$(SRC_PREFIX)%.c m2/gm2-libs/gm2-libs-host.h $(BUILD-BOOT-PG-H)
 	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
@@ -319,16 +549,15 @@ m2/gm2-pg-boot/$(SRC_PREFIX)%.o: m2/mc-boot-ch/$(SRC_PREFIX)%.cc m2/gm2-libs/gm2
 
 m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.o: $(srcdir)/m2/gm2-libs/M2RTS.mod $(MCDEPS) $(BUILD-BOOT-PG-H)
 	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
-	$(MCC) --suppress-noreturn -o=m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.c $(srcdir)/m2/gm2-libs/M2RTS.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -Im2/gm2-pg-boot	-I$(srcdir)/m2/mc-boot \
-               -I$(srcdir)/m2/mc-boot-ch \
-               -Im2/gm2-libs-boot $(INCLUDES) \
-              -g -c m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.c -o $@
+	$(MCC) --suppress-noreturn -o=m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.cc $(srcdir)/m2/gm2-libs/M2RTS.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pg-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pg-boot/$(SRC_PREFIX)M2RTS.cc -o $@
 
 m2/gm2-pg-boot/$(SRC_PREFIX)%.o: $(srcdir)/m2/gm2-libs/%.mod $(MCDEPS) $(BUILD-BOOT-PG-H)
 	-test -d m2/gm2-pg-boot || $(mkinstalldirs) m2/gm2-pg-boot
 	$(MCC) -o=m2/gm2-pg-boot/$(SRC_PREFIX)$*.c $(srcdir)/m2/gm2-libs/$*.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -Im2/gm2-pg-boot	-I$(srcdir)/m2/mc-boot \
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -Im2/gm2-pg-boot -I$(srcdir)/m2/mc-boot \
                -I$(srcdir)/m2/mc-boot-ch \
                -Im2/gm2-libs-boot $(INCLUDES) \
               -g -c m2/gm2-pg-boot/$(SRC_PREFIX)$*.c -o $@
@@ -390,8 +619,7 @@ BUILD-PGE-O = $(PPG-INTERFACE-C:%.c=m2/gm2-pge-boot/$(SRC_PREFIX)%.o) \
               $(PPG-LIB-MODS:%.mod=m2/gm2-pge-boot/$(SRC_PREFIX)%.o) \
               $(PGE-SRC:%.mod=m2/gm2-pge-boot/$(SRC_PREFIX)%.o)
 
-BUILD-BOOT-PGE-H: $(BUILD-BOOT-H) $(PGE-DEF:%.def=m2/gm2-pge-boot/$(SRC_PREFIX)%.h) \
-                  m2/gm2-pge-boot/GM2RTS.h m2/gm2-pge-boot/GM2Dependent.h
+BUILD-BOOT-PGE-H = $(BUILD-BOOT-H) $(PGE-DEF:%.def=m2/gm2-pge-boot/$(SRC_PREFIX)%.h)
 
 m2/gm2-auto/pge.mod: m2/pg$(exeext)
 	-test -d m2/gm2-auto || $(mkinstalldirs) m2/gm2-auto
@@ -453,6 +681,94 @@ m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o: $(srcdir)/m2/gm2-libs/M2RTS.mod $(MCDEPS)
               -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
               $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.cc -o $@
 
+m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.h: $(srcdir)/m2/gm2-compiler/SymbolKey.def $(MCDEPS)
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/SymbolKey.def
+
+m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o: $(srcdir)/m2/gm2-compiler/SymbolKey.mod \
+                                          $(MCDEPS) $(BUILD-BOOT-PGE-H) \
+                                          m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.h
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.cc $(srcdir)/m2/gm2-compiler/SymbolKey.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.cc -o $@
+
+m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.h: $(srcdir)/m2/gm2-compiler/NameKey.def $(MCDEPS)
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/NameKey.def
+
+m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o: $(srcdir)/m2/gm2-compiler/NameKey.mod \
+                                        $(MCDEPS) $(BUILD-BOOT-PGE-H) \
+                                        m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.h
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.cc $(srcdir)/m2/gm2-compiler/NameKey.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.cc -o $@
+
+m2/gm2-pge-boot/$(SRC_PREFIX)Lists.h: $(srcdir)/m2/gm2-compiler/Lists.def $(MCDEPS)
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/Lists.def
+
+m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o: $(srcdir)/m2/gm2-compiler/Lists.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PGE-H) \
+                                      m2/gm2-pge-boot/$(SRC_PREFIX)Lists.h
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)Lists.cc $(srcdir)/m2/gm2-compiler/Lists.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)Lists.cc -o $@
+
+m2/gm2-pge-boot/$(SRC_PREFIX)Output.h: $(srcdir)/m2/gm2-compiler/Output.def $(MCDEPS)
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/Output.def
+
+m2/gm2-pge-boot/$(SRC_PREFIX)Output.o: $(srcdir)/m2/gm2-compiler/Output.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PGE-H) \
+                                      m2/gm2-pge-boot/$(SRC_PREFIX)Output.h
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)Output.cc $(srcdir)/m2/gm2-compiler/Output.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)Output.cc -o $@
+
+m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.h: $(srcdir)/m2/gm2-compiler/bnflex.def $(MCDEPS)
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) -o=$@ $(srcdir)/m2/gm2-compiler/bnflex.def
+
+m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o: $(srcdir)/m2/gm2-compiler/bnflex.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PGE-H) \
+                                      m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.h
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.cc $(srcdir)/m2/gm2-compiler/bnflex.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.cc -o $@
+
+m2/gm2-pge-boot/$(SRC_PREFIX)RTco.h: $(srcdir)/m2/gm2-libs-iso/RTco.def $(MCDEPS)
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) -o=$@ -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-libs $(srcdir)/m2/gm2-libs-iso/RTco.def
+
+m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h: $(srcdir)/m2/gm2-libs-iso/RTentity.def $(MCDEPS)
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) -o=$@ -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-libs $(srcdir)/m2/gm2-libs-iso/RTentity.def
+
+m2/gm2-pge-boot/$(SRC_PREFIX)RTco.o: $(srcdir)/m2/gm2-libs-iso/RTcodummy.c
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c $< -o $@
+
+m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o: $(srcdir)/m2/gm2-libs-iso/RTentity.mod \
+                                      $(MCDEPS) $(BUILD-BOOT-PGE-H) \
+                                      m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h
+	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
+	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.cc $(srcdir)/m2/gm2-libs-iso/RTentity.mod
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+              -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
+              $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.cc -o $@
+
 m2/gm2-pge-boot/$(SRC_PREFIX)%.o: $(srcdir)/m2/gm2-libs/%.mod $(MCDEPS) $(BUILD-BOOT-PGE-H)
 	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
 	$(MCC) -o=m2/gm2-pge-boot/$(SRC_PREFIX)$*.cc $(srcdir)/m2/gm2-libs/$*.mod
@@ -586,7 +902,6 @@ MCLINK=-g     # use -g -fmodules -c if you are debugging and wish to see missing
 # This is only needed in maintainer mode by 'make mc-maintainer' when regenerating the C
 # version of mc.  We need a working Modula-2 compiler to run mc-maintainer.
 
-# GM2SYS=${HOME}/opt/lib/gcc/x86_64-pc-linux-gnu/13.0.0/m2/m2pim
 GM2PATH=-I$(srcdir)/m2/mc \
         -I$(srcdir)/m2 -Im2/gm2-auto \
         -fm2-pathname=m2pim -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-ch \
@@ -594,12 +909,18 @@ GM2PATH=-I$(srcdir)/m2/mc \
 
 mc: mc-clean mc-devel
 
+mc-basetest: force
+	$(SHELL) $(srcdir)/testsuite/gm2/base-lang/pass/base-lang-test.sh ./mc $(srcdir) `pwd` $(COMPILER)
+
+mc-devel-basetest: force
+	$(SHELL) $(srcdir)/testsuite/gm2/base-lang/pass/base-lang-test.sh m2/boot-bin/mc-devel$(exeext) $(srcdir) `pwd` $(COMPILER)
+
 mc-push: force
 	cp -p m2/mc-boot-gen/*.cc $(srcdir)/m2/mc-boot/
 	cp -p m2/mc-boot-gen/*.h $(srcdir)/m2/mc-boot/
 
 mc-clean: force m2/mc-obj
-	$(RM) m2/mc-boot-gen/*.{cc,h} m2/boot-bin/* m2/mc-boot/* m2/mc-boot-ch/*
+	$(RM) m2/mc-boot-gen/*.{cc,h} m2/boot-bin/* m2/mc-boot/* m2/mc-boot-ch/* mc
 
 mc-maintainer: mc-clean mc-autogen mc-push mc-clean mc-bootstrap
 
@@ -765,7 +1086,7 @@ m2/mc-boot-gen/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-libs/%.def
 
 m2/mc-boot-gen/$(SRC_PREFIX)decl.cc: $(srcdir)/m2/mc/decl.mod
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
-	./mc $(MC_OPTIONS) --extended-opaque -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+	./mc $(MC_OPTIONS) $(EXTENDED_OPAQUE) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
 
 m2/mc-boot-gen/$(SRC_PREFIX)%.cc: $(srcdir)/m2/mc/%.mod
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
diff --git a/gcc/m2/gm2-compiler/M2Options.def b/gcc/m2/gm2-compiler/M2Options.def
index a3d112c0cdf..d2d7e68fc35 100644
--- a/gcc/m2/gm2-compiler/M2Options.def
+++ b/gcc/m2/gm2-compiler/M2Options.def
@@ -1061,7 +1061,7 @@ PROCEDURE GetM2DumpFilter () : ADDRESS ;
    SetM2Dump - sets the dump via a comma separated list: quad,decl,gimple,all.
 *)
 
-PROCEDURE SetM2Dump (value: BOOLEAN; filter: ADDRESS) ;
+PROCEDURE SetM2Dump (value: BOOLEAN; filter: ADDRESS) : BOOLEAN ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/M2Quads.def b/gcc/m2/gm2-compiler/M2Quads.def
index 6175d8d1cb2..304c8dd6eab 100644
--- a/gcc/m2/gm2-compiler/M2Quads.def
+++ b/gcc/m2/gm2-compiler/M2Quads.def
@@ -1012,7 +1012,7 @@ PROCEDURE BuildAssignConstant (equalsTokNo: CARDINAL) ;
                             |---------------|       empty
 *)
 
-PROCEDURE BuildAlignment ;
+PROCEDURE BuildAlignment (tokno: CARDINAL) ;
 
 
 (*
@@ -1030,7 +1030,7 @@ PROCEDURE BuildAlignment ;
                            |------------|          empty
 *)
 
-PROCEDURE BuildBitLength ;
+PROCEDURE BuildBitLength (tokno: CARDINAL) ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/P3Build.bnf b/gcc/m2/gm2-compiler/P3Build.bnf
index d5eddc7e98e..643309424a7 100644
--- a/gcc/m2/gm2-compiler/P3Build.bnf
+++ b/gcc/m2/gm2-compiler/P3Build.bnf
@@ -790,8 +790,10 @@ ConstAttributeExpression :=
                                                               ">"
                           =:
 
-ByteAlignment := '<*'                                                      % PushAutoOn %
-                      AttributeExpression                                  % BuildAlignment %
+ByteAlignment :=                                                           % VAR tokpos: CARDINAL ; %
+                 '<*'                                                      % PushAutoOn %
+                                                                           % tokpos := GetTokenNo () %
+                      AttributeExpression                                  % BuildAlignment (tokpos) %
                                           '*>'                             % PopAuto %
                =:
 
diff --git a/gcc/m2/gm2-compiler/PCBuild.bnf b/gcc/m2/gm2-compiler/PCBuild.bnf
index b983cc8b852..46f46af73ff 100644
--- a/gcc/m2/gm2-compiler/PCBuild.bnf
+++ b/gcc/m2/gm2-compiler/PCBuild.bnf
@@ -704,7 +704,8 @@ ConstructorOrConstActualParameters := Constructor | ConstActualParameters  % Pus
 
 ConstSetOrQualidentOrFunction :=                                           % PushAutoOff %
                                                                            % VAR tokpos: CARDINAL ; %
-                                 (                                         % tokpos := GetTokenNo () %
+                                                                           % tokpos := GetTokenNo () %
+                                 (
                                    PushQualident
                                    ( ConstructorOrConstActualParameters |  % PushConstType %
                                                                            % PopNothing %
@@ -1008,8 +1009,8 @@ ConstructorOrSimpleDes := Constructor |                                    % Pop
 
 SetOrDesignatorOrFunction :=                                              % PushAutoOff %
                                                                           % VAR tokpos: CARDINAL ; %
-
-                             (                                            % tokpos := GetTokenNo () %
+                                                                          % tokpos := GetTokenNo () %
+                             (
                                PushQualident
                                ( ConstructorOrSimpleDes |                 % PopNothing %
                                                           )
diff --git a/gcc/m2/gm2-compiler/PHBuild.bnf b/gcc/m2/gm2-compiler/PHBuild.bnf
index 52214894d0a..776601d3b1c 100644
--- a/gcc/m2/gm2-compiler/PHBuild.bnf
+++ b/gcc/m2/gm2-compiler/PHBuild.bnf
@@ -664,7 +664,8 @@ Constructor :=                                                             % VAR
 
 ConstSetOrQualidentOrFunction :=                                           % PushAutoOn %
                                                                            % VAR tokpos: CARDINAL ; %
-                                 (                                         % tokpos := GetTokenNo () %
+                                                                           % tokpos := GetTokenNo () %
+                                 (
                                     Qualident
                                     [ Constructor |
                                        ConstActualParameters               % BuildConstFunctionCall %
@@ -678,8 +679,10 @@ ConstAttribute := "__ATTRIBUTE__" "__BUILTIN__" "(" "(" ConstAttributeExpression
 
 ConstAttributeExpression := Ident | "<" Qualident ',' Ident ">" =:
 
-ByteAlignment := '<*'                                                      % PushAutoOn %
-                      AttributeExpression                                  % BuildAlignment %
+ByteAlignment :=                                                           % VAR tokpos: CARDINAL ; %
+                 '<*'                                                      % PushAutoOn %
+                                                                           % tokpos := GetTokenNo () %
+                      AttributeExpression                                  % BuildAlignment (tokpos) %
                                           '*>'                             % PopAuto %
                =:
 
diff --git a/gcc/m2/gm2-libs/dtoa.def b/gcc/m2/gm2-libs/dtoa.def
index 0d19bc3d593..a8f6509526c 100644
--- a/gcc/m2/gm2-libs/dtoa.def
+++ b/gcc/m2/gm2-libs/dtoa.def
@@ -50,7 +50,7 @@ PROCEDURE strtod (s: ADDRESS; VAR error: BOOLEAN) : REAL ;
 *)
 
 PROCEDURE dtoa (d        : REAL;
-                mode     : Mode;
+                mode     : INTEGER;
                 ndigits  : INTEGER;
 	        VAR decpt: INTEGER;
 	        VAR sign : BOOLEAN) : ADDRESS ;
diff --git a/gcc/m2/gm2-libs/ldtoa.def b/gcc/m2/gm2-libs/ldtoa.def
index 7e712f37b85..4a0f1dfacd2 100644
--- a/gcc/m2/gm2-libs/ldtoa.def
+++ b/gcc/m2/gm2-libs/ldtoa.def
@@ -50,7 +50,7 @@ PROCEDURE strtold (s: ADDRESS; VAR error: BOOLEAN) : LONGREAL ;
 *)
 
 PROCEDURE ldtoa (d        : LONGREAL;
-                 mode     : Mode;
+                 mode     : INTEGER;
                  ndigits  : INTEGER;
                  VAR decpt: INTEGER;
                  VAR sign : BOOLEAN) : ADDRESS ;
diff --git a/gcc/m2/mc-boot-ch/GSYSTEM.c b/gcc/m2/mc-boot-ch/GSYSTEM.c
index 0492483ee09..46340a56558 100644
--- a/gcc/m2/mc-boot-ch/GSYSTEM.c
+++ b/gcc/m2/mc-boot-ch/GSYSTEM.c
@@ -27,12 +27,12 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 EXTERN
 void
-_M2_SYSTEM_init (int argc, char *p)
+_M2_SYSTEM_init (int argc, char *argv[], char *envp[])
 {
 }
 
 EXTERN
 void
-_M2_SYSTEM_fini (int argc, char *p)
+_M2_SYSTEM_fini (int argc, char *argv[], char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot-ch/Gdtoa.cc b/gcc/m2/mc-boot-ch/Gdtoa.cc
index 94f4488c13f..b608c6b79dd 100644
--- a/gcc/m2/mc-boot-ch/Gdtoa.cc
+++ b/gcc/m2/mc-boot-ch/Gdtoa.cc
@@ -123,21 +123,21 @@ dtoa_calcdecimal (char *p, int str_size, int ndigits)
 }
 
 
-int
+bool
 dtoa_calcsign (char *p, int str_size)
 {
   if (p[0] == '-')
     {
       memmove (p, p + 1, str_size - 1);
-      return TRUE;
+      return true;
     }
   else
-    return FALSE;
+    return false;
 }
 
 
-char *
-dtoa_dtoa (double d, int mode, int ndigits, int *decpt, int *sign)
+void *
+dtoa_dtoa (double d, int mode, int ndigits, int *decpt, bool *sign)
 {
   char format[50];
   char *p;
@@ -169,12 +169,12 @@ dtoa_dtoa (double d, int mode, int ndigits, int *decpt, int *sign)
 /* GNU Modula-2 hooks */
 
 void
-_M2_dtoa_init (void)
+_M2_dtoa_init (int argc, char *argv[], char *envp[])
 {
 }
 
 void
-_M2_dtoa_fini (void)
+_M2_dtoa_fini (int argc, char *argv[], char *envp[])
 {
 }
 #endif
diff --git a/gcc/m2/mc-boot-ch/Gerrno.cc b/gcc/m2/mc-boot-ch/Gerrno.cc
index 4b507288852..af46002ed78 100644
--- a/gcc/m2/mc-boot-ch/Gerrno.cc
+++ b/gcc/m2/mc-boot-ch/Gerrno.cc
@@ -38,14 +38,14 @@ errno_geterrno (void)
 /* init constructor for the module.  */
 
 void
-_M2_errno_init (int argc, char *p)
+_M2_errno_init (int argc, char *argv[], char *envp[])
 {
 }
 
 /* finish deconstructor for the module.  */
 
 void
-_M2_errno_fini (int argc, char *p)
+_M2_errno_fini (int argc, char *argv[], char *envp[])
 {
 }
 
diff --git a/gcc/m2/mc-boot-ch/Gldtoa.cc b/gcc/m2/mc-boot-ch/Gldtoa.cc
index 2a266cf2108..1e7acb7ad40 100644
--- a/gcc/m2/mc-boot-ch/Gldtoa.cc
+++ b/gcc/m2/mc-boot-ch/Gldtoa.cc
@@ -34,7 +34,7 @@ typedef enum Mode { maxsignicant, decimaldigits } Mode;
 
 extern int dtoa_calcmaxsig (char *p, int ndigits);
 extern int dtoa_calcdecimal (char *p, int str_size, int ndigits);
-extern int dtoa_calcsign (char *p, int str_size);
+extern bool dtoa_calcsign (char *p, int str_size);
 
 /* maxsignicant: return a string containing max(1,ndigits)
    significant digits.  The return string contains the string
@@ -62,8 +62,8 @@ ldtoa_strtold (const char *s, int *error)
   return d;
 }
 
-char *
-ldtoa_ldtoa (long double d, int mode, int ndigits, int *decpt, int *sign)
+void *
+ldtoa_ldtoa (long double d, int mode, int ndigits, int *decpt, bool *sign)
 {
   char format[50];
   char *p;
@@ -94,12 +94,12 @@ ldtoa_ldtoa (long double d, int mode, int ndigits, int *decpt, int *sign)
 /* GNU Modula-2 hooks */
 
 void
-_M2_ldtoa_init (void)
+_M2_ldtoa_init (int argc, char *argv[], char *envp[])
 {
 }
 
 void
-_M2_ldtoa_fini (void)
+_M2_ldtoa_fini (int argc, char *argv[], char *envp[])
 {
 }
 #   ifdef __cplusplus
diff --git a/gcc/m2/mc-boot-ch/Glibc.c b/gcc/m2/mc-boot-ch/Glibc.c
index 23a490571ff..e53a76a0f13 100644
--- a/gcc/m2/mc-boot-ch/Glibc.c
+++ b/gcc/m2/mc-boot-ch/Glibc.c
@@ -110,23 +110,35 @@ tracedb_result (int result)
 #endif
 }
 
+static
+void
+tracedb_zresult (size_t result)
+{
+#if defined(BUILD_MC_LIBC_TRACE)
+  tracedb (" result = %zd", result);
+  if (result == -1)
+    tracedb (", errno = %s", strerror (errno));
+  tracedb ("\n");
+#endif
+}
+
 EXTERN
-int
-libc_read (int fd, void *a, int nbytes)
+size_t
+libc_read (int fd, void *a, size_t nbytes)
 {
-  tracedb ("libc_read (%d, %p, %d)\n", fd, a, nbytes);
-  int result = read (fd, a, nbytes);
-  tracedb_result (result);
+  tracedb ("libc_read (%d, %p, %zd)\n", fd, a, nbytes);
+  size_t result = read (fd, a, nbytes);
+  tracedb_zresult (result);
   return result;
 }
 
 EXTERN
-int
-libc_write (int fd, void *a, int nbytes)
+size_t
+libc_write (int fd, void *a, size_t nbytes)
 {
-  tracedb ("libc_write (%d, %p, %d)\n", fd, a, nbytes);
-  int result = write (fd, a, nbytes);
-  tracedb_result (result);
+  tracedb ("libc_write (%d, %p, %zd)\n", fd, a, nbytes);
+  size_t result = write (fd, a, nbytes);
+  tracedb_zresult (result);
   return result;
 }
 
@@ -162,7 +174,7 @@ libc_abort ()
 }
 
 EXTERN
-int
+size_t
 libc_strlen (char *s)
 {
   return strlen (s);
@@ -184,14 +196,14 @@ libc_localtime (time_t *epochtime)
 
 EXTERN
 int
-libc_printf (char *_format, unsigned int _format_high, ...)
+libc_printf (const char *_format, unsigned int _format_high, ...)
 {
   va_list arg;
   int done;
   char format[_format_high + 1];
   unsigned int i = 0;
   unsigned int j = 0;
-  char *c;
+  const char *c;
 
   do
     {
@@ -221,14 +233,14 @@ libc_printf (char *_format, unsigned int _format_high, ...)
 
 EXTERN
 int
-libc_snprintf (char *dest, size_t length, char *_format, unsigned int _format_high, ...)
+libc_snprintf (char *dest, size_t length, const char *_format, unsigned int _format_high, ...)
 {
   va_list arg;
   int done;
   char format[_format_high + 1];
   unsigned int i = 0;
   unsigned int j = 0;
-  char *c;
+  const char *c;
 
   do
     {
@@ -258,7 +270,7 @@ libc_snprintf (char *dest, size_t length, char *_format, unsigned int _format_hi
 
 EXTERN
 void *
-libc_malloc (unsigned int size)
+libc_malloc (size_t size)
 {
   return malloc (size);
 }
@@ -300,7 +312,7 @@ libc_system (char *command)
 
 EXTERN
 void *
-libc_memcpy (void *dest, void *src, int n)
+libc_memcpy (void *dest, void *src, size_t n)
 {
   return memcpy (dest, src, n);
 }
diff --git a/gcc/m2/mc-boot/GASCII.cc b/gcc/m2/mc-boot/GASCII.cc
index 83c58666670..a5c59fd3c4b 100644
--- a/gcc/m2/mc-boot/GASCII.cc
+++ b/gcc/m2/mc-boot/GASCII.cc
@@ -34,9 +34,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _ASCII_H
 #define _ASCII_C
 
+#include "GASCII.h"
 
 #   define ASCII_nul (char) 000
 #   define ASCII_soh (char) 001
@@ -78,10 +78,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   define ASCII_del (char) 0177
 #   define ASCII_EOL ASCII_nl
 
-extern "C" void _M2_ASCII_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_ASCII_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_ASCII_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_ASCII_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GArgs.cc b/gcc/m2/mc-boot/GArgs.cc
index c6a2bcab65a..182def800ea 100644
--- a/gcc/m2/mc-boot/GArgs.cc
+++ b/gcc/m2/mc-boot/GArgs.cc
@@ -34,9 +34,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _Args_H
 #define _Args_C
 
+#include "GArgs.h"
 #   include "GUnixArgs.h"
 #   include "GASCII.h"
 
@@ -86,13 +86,13 @@ extern "C" bool Args_GetArg (char *a, unsigned int _a_high, unsigned int n)
       Source = static_cast<Args__T1> (UnixArgs_GetArgV ());
       while ((j < High) && ((*(*Source).array[i]).array[j] != ASCII_nul))
         {
-          a[j] = (*(*Source).array[i]).array[j];
+          const_cast<char *>(a)[j] = (*(*Source).array[i]).array[j];
           j += 1;
         }
     }
   if (j <= High)
     {
-      a[j] = ASCII_nul;
+      const_cast<char *>(a)[j] = ASCII_nul;
     }
   return i < (UnixArgs_GetArgC ());
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -112,10 +112,10 @@ extern "C" unsigned int Args_Narg (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_Args_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Args_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_Args_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Args_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GAssertion.cc b/gcc/m2/mc-boot/GAssertion.cc
index fdebf020b61..b6b47952108 100644
--- a/gcc/m2/mc-boot/GAssertion.cc
+++ b/gcc/m2/mc-boot/GAssertion.cc
@@ -34,9 +34,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _Assertion_H
 #define _Assertion_C
 
+#include "GAssertion.h"
 #   include "GStrIO.h"
 #   include "GM2RTS.h"
 
@@ -63,10 +63,10 @@ extern "C" void Assertion_Assert (bool Condition)
     }
 }
 
-extern "C" void _M2_Assertion_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Assertion_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_Assertion_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Assertion_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GBreak.cc b/gcc/m2/mc-boot/GBreak.cc
index 23104d66ba0..4fea839214b 100644
--- a/gcc/m2/mc-boot/GBreak.cc
+++ b/gcc/m2/mc-boot/GBreak.cc
@@ -34,15 +34,15 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _Break_H
 #define _Break_C
 
+#include "GBreak.h"
 
 
-extern "C" void _M2_Break_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Break_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_Break_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Break_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GCmdArgs.cc b/gcc/m2/mc-boot/GCmdArgs.cc
index 0b7d587e1eb..cb8fa8ace58 100644
--- a/gcc/m2/mc-boot/GCmdArgs.cc
+++ b/gcc/m2/mc-boot/GCmdArgs.cc
@@ -34,9 +34,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _CmdArgs_H
 #define _CmdArgs_C
 
+#include "GCmdArgs.h"
 #   include "GASCII.h"
 #   include "GStrLib.h"
 
@@ -149,7 +149,7 @@ static bool GetNextArg (const char *CmdLine_, unsigned int _CmdLine_high, unsign
     }
   if (ArgIndex < HighA)
     {
-      Arg[ArgIndex] = ASCII_nul;
+      const_cast<char *>(Arg)[ArgIndex] = ASCII_nul;
     }
   return (*CmdIndex) < HighC;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -216,7 +216,7 @@ static void CopyChar (const char *From_, unsigned int _From_high, unsigned int *
       if ((*FromIndex) < FromHigh)
         {
           /* Copy Normal Character  */
-          To[(*ToIndex)] = From[(*FromIndex)];
+          const_cast<char *>(To)[(*ToIndex)] = From[(*FromIndex)];
           (*ToIndex) += 1;
           (*FromIndex) += 1;
         }
@@ -314,10 +314,10 @@ extern "C" unsigned int CmdArgs_Narg (const char *CmdLine_, unsigned int _CmdLin
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_CmdArgs_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_CmdArgs_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_CmdArgs_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_CmdArgs_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GDebug.cc b/gcc/m2/mc-boot/GDebug.cc
index c1daa670b88..3f0ec51507e 100644
--- a/gcc/m2/mc-boot/GDebug.cc
+++ b/gcc/m2/mc-boot/GDebug.cc
@@ -34,9 +34,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _Debug_H
 #define _Debug_C
 
+#include "GDebug.h"
 #   include "GASCII.h"
 #   include "GNumberIO.h"
 #   include "GStdIO.h"
@@ -165,10 +165,10 @@ extern "C" void Debug_DebugString (const char *a_, unsigned int _a_high)
     }
 }
 
-extern "C" void _M2_Debug_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Debug_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_Debug_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Debug_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GDynamicStrings.cc b/gcc/m2/mc-boot/GDynamicStrings.cc
index a1cb88c03b7..32969692985 100644
--- a/gcc/m2/mc-boot/GDynamicStrings.cc
+++ b/gcc/m2/mc-boot/GDynamicStrings.cc
@@ -47,9 +47,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _DynamicStrings_H
 #define _DynamicStrings_C
 
+#include "GDynamicStrings.h"
 #   include "Glibc.h"
 #   include "GStrLib.h"
 #   include "GStorage.h"
@@ -81,27 +81,27 @@ typedef struct DynamicStrings__T3_a DynamicStrings__T3;
 
 typedef enum {DynamicStrings_inuse, DynamicStrings_marked, DynamicStrings_onlist, DynamicStrings_poisoned} DynamicStrings_desState;
 
-typedef DynamicStrings_stringRecord *DynamicStrings_String;
+typedef DynamicStrings_stringRecord *DynamicStrings_String__opaque;
 
 struct DynamicStrings_DebugInfo_r {
-                                    DynamicStrings_String next;
-                                    void *file;
+                                    DynamicStrings_String__opaque next;
+                                    void * file;
                                     unsigned int line;
-                                    void *proc;
+                                    void * proc;
                                   };
 
 struct DynamicStrings_descriptor_r {
                                      bool charStarUsed;
-                                     void *charStar;
+                                     void * charStar;
                                      unsigned int charStarSize;
                                      bool charStarValid;
                                      DynamicStrings_desState state;
-                                     DynamicStrings_String garbage;
+                                     DynamicStrings_String__opaque garbage;
                                    };
 
 struct DynamicStrings_frameRec_r {
-                                   DynamicStrings_String alloc;
-                                   DynamicStrings_String dealloc;
+                                   DynamicStrings_String__opaque alloc;
+                                   DynamicStrings_String__opaque dealloc;
                                    DynamicStrings_frame next;
                                  };
 
@@ -109,7 +109,7 @@ struct DynamicStrings__T3_a { char array[(MaxBuf-1)+1]; };
 struct DynamicStrings_Contents_r {
                                    DynamicStrings__T3 buf;
                                    unsigned int len;
-                                   DynamicStrings_String next;
+                                   DynamicStrings_String__opaque next;
                                  };
 
 struct DynamicStrings_stringRecord_r {
@@ -120,7 +120,7 @@ struct DynamicStrings_stringRecord_r {
 
 static bool Initialized;
 static DynamicStrings_frame frameHead;
-static DynamicStrings_String captured;
+static DynamicStrings_String__opaque captured;
 
 /*
    InitString - creates and returns a String type object.
@@ -400,7 +400,7 @@ extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (bool hal
 /*
  writeStringDesc write out debugging information about string, s.  */
 
-static void writeStringDesc (DynamicStrings_String s);
+static void writeStringDesc (DynamicStrings_String__opaque s);
 
 /*
    writeNspace -
@@ -412,7 +412,7 @@ static void writeNspace (unsigned int n);
    DumpStringInfo -
 */
 
-static void DumpStringInfo (DynamicStrings_String s, unsigned int i);
+static void DumpStringInfo (DynamicStrings_String__opaque s, unsigned int i);
 
 /*
    DumpStringInfo -
@@ -430,7 +430,7 @@ static void doDSdbEnter (void);
    doDSdbExit -
 */
 
-static void doDSdbExit (DynamicStrings_String s);
+static void doDSdbExit (DynamicStrings_String__opaque s);
 
 /*
    DSdbEnter -
@@ -442,8 +442,8 @@ static void DSdbEnter (void);
    DSdbExit -
 */
 
-static void DSdbExit (DynamicStrings_String s);
-static unsigned int Capture (DynamicStrings_String s);
+static void DSdbExit (DynamicStrings_String__opaque s);
+static unsigned int Capture (DynamicStrings_String__opaque s);
 
 /*
    Min -
@@ -497,73 +497,73 @@ static void writeLn (void);
    AssignDebug - assigns, file, and, line, information to string, s.
 */
 
-static DynamicStrings_String AssignDebug (DynamicStrings_String s, const char *file_, unsigned int _file_high, unsigned int line, const char *proc_, unsigned int _proc_high);
+static DynamicStrings_String__opaque AssignDebug (DynamicStrings_String__opaque s, const char *file_, unsigned int _file_high, unsigned int line, const char *proc_, unsigned int _proc_high);
 
 /*
    IsOn - returns TRUE if, s, is on one of the debug lists.
 */
 
-static bool IsOn (DynamicStrings_String list, DynamicStrings_String s);
+static bool IsOn (DynamicStrings_String__opaque list, DynamicStrings_String__opaque s);
 
 /*
    AddTo - adds string, s, to, list.
 */
 
-static void AddTo (DynamicStrings_String *list, DynamicStrings_String s);
+static void AddTo (DynamicStrings_String__opaque *list, DynamicStrings_String__opaque s);
 
 /*
    SubFrom - removes string, s, from, list.
 */
 
-static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s);
+static void SubFrom (DynamicStrings_String__opaque *list, DynamicStrings_String__opaque s);
 
 /*
    AddAllocated - adds string, s, to the head of the allocated list.
 */
 
-static void AddAllocated (DynamicStrings_String s);
+static void AddAllocated (DynamicStrings_String__opaque s);
 
 /*
    AddDeallocated - adds string, s, to the head of the deallocated list.
 */
 
-static void AddDeallocated (DynamicStrings_String s);
+static void AddDeallocated (DynamicStrings_String__opaque s);
 
 /*
    IsOnAllocated - returns TRUE if the string, s, has ever been allocated.
 */
 
-static bool IsOnAllocated (DynamicStrings_String s);
+static bool IsOnAllocated (DynamicStrings_String__opaque s);
 
 /*
    IsOnDeallocated - returns TRUE if the string, s, has ever been deallocated.
 */
 
-static bool IsOnDeallocated (DynamicStrings_String s);
+static bool IsOnDeallocated (DynamicStrings_String__opaque s);
 
 /*
    SubAllocated - removes string, s, from the list of allocated strings.
 */
 
-static void SubAllocated (DynamicStrings_String s);
+static void SubAllocated (DynamicStrings_String__opaque s);
 
 /*
    SubDeallocated - removes string, s, from the list of deallocated strings.
 */
 
-static void SubDeallocated (DynamicStrings_String s);
+static void SubDeallocated (DynamicStrings_String__opaque s);
 
 /*
    SubDebugInfo - removes string, s, from the list of allocated strings.
 */
 
-static void SubDebugInfo (DynamicStrings_String s);
+static void SubDebugInfo (DynamicStrings_String__opaque s);
 
 /*
    AddDebugInfo - adds string, s, to the list of allocated strings.
 */
 
-static void AddDebugInfo (DynamicStrings_String s);
+static void AddDebugInfo (DynamicStrings_String__opaque s);
 
 /*
    ConcatContents - add the contents of string, a, where, h, is the
@@ -576,19 +576,19 @@ static void ConcatContents (DynamicStrings_Contents *c, const char *a_, unsigned
    DeallocateCharStar - deallocates any charStar.
 */
 
-static void DeallocateCharStar (DynamicStrings_String s);
+static void DeallocateCharStar (DynamicStrings_String__opaque s);
 
 /*
    CheckPoisoned - checks for a poisoned string, s.
 */
 
-static DynamicStrings_String CheckPoisoned (DynamicStrings_String s);
+static DynamicStrings_String__opaque CheckPoisoned (DynamicStrings_String__opaque s);
 
 /*
    MarkInvalid - marks the char * version of String, s, as invalid.
 */
 
-static void MarkInvalid (DynamicStrings_String s);
+static void MarkInvalid (DynamicStrings_String__opaque s);
 
 /*
    ConcatContentsAddress - concatenate the string, a, where, h, is the
@@ -603,13 +603,13 @@ static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigne
                   onlist.  String, a, is returned.
 */
 
-static DynamicStrings_String AddToGarbage (DynamicStrings_String a, DynamicStrings_String b);
+static DynamicStrings_String__opaque AddToGarbage (DynamicStrings_String__opaque a, DynamicStrings_String__opaque b);
 
 /*
    IsOnGarbage - returns TRUE if, s, is on string, e, garbage list.
 */
 
-static bool IsOnGarbage (DynamicStrings_String e, DynamicStrings_String s);
+static bool IsOnGarbage (DynamicStrings_String__opaque e, DynamicStrings_String__opaque s);
 
 /*
    IsWhite - returns TRUE if, ch, is a space or a tab.
@@ -621,19 +621,19 @@ static bool IsWhite (char ch);
    DumpState -
 */
 
-static void DumpState (DynamicStrings_String s);
+static void DumpState (DynamicStrings_String__opaque s);
 
 /*
    DumpStringSynopsis -
 */
 
-static void DumpStringSynopsis (DynamicStrings_String s);
+static void DumpStringSynopsis (DynamicStrings_String__opaque s);
 
 /*
    DumpString - displays the contents of string, s.
 */
 
-static void DumpString (DynamicStrings_String s);
+static void DumpString (DynamicStrings_String__opaque s);
 
 /*
    Init - initialize the module.
@@ -645,7 +645,7 @@ static void Init (void);
 /*
  writeStringDesc write out debugging information about string, s.  */
 
-static void writeStringDesc (DynamicStrings_String s)
+static void writeStringDesc (DynamicStrings_String__opaque s)
 {
   writeCstring (s->debug.file);
   writeString ((const char *) ":", 1);
@@ -701,7 +701,7 @@ static void writeNspace (unsigned int n)
    DumpStringInfo -
 */
 
-static void DumpStringInfo (DynamicStrings_String s, unsigned int i)
+static void DumpStringInfo (DynamicStrings_String__opaque s, unsigned int i)
 {
   if (s != NULL)
     {
@@ -749,11 +749,11 @@ static void doDSdbEnter (void)
    doDSdbExit -
 */
 
-static void doDSdbExit (DynamicStrings_String s)
+static void doDSdbExit (DynamicStrings_String__opaque s)
 {
   if (CheckOn)
     {
-      s = DynamicStrings_PopAllocationExemption (true, s);
+      s = static_cast<DynamicStrings_String__opaque> (DynamicStrings_PopAllocationExemption (true, static_cast<DynamicStrings_String> (s)));
     }
 }
 
@@ -771,11 +771,11 @@ static void DSdbEnter (void)
    DSdbExit -
 */
 
-static void DSdbExit (DynamicStrings_String s)
+static void DSdbExit (DynamicStrings_String__opaque s)
 {
 }
 
-static unsigned int Capture (DynamicStrings_String s)
+static unsigned int Capture (DynamicStrings_String__opaque s)
 {
   /* 
  *   #undef GM2_DEBUG_DYNAMICSTINGS
@@ -843,7 +843,7 @@ static void writeString (const char *a_, unsigned int _a_high)
   /* make a local copy of each unbounded array.  */
   memcpy (a, a_, _a_high+1);
 
-  i = static_cast<int> (libc_write (1, &a, static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
+  i = static_cast<int> (libc_write (1, const_cast<void*> (static_cast<const void*>(a)), static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
 }
 
 
@@ -951,7 +951,7 @@ static void writeLn (void)
    AssignDebug - assigns, file, and, line, information to string, s.
 */
 
-static DynamicStrings_String AssignDebug (DynamicStrings_String s, const char *file_, unsigned int _file_high, unsigned int line, const char *proc_, unsigned int _proc_high)
+static DynamicStrings_String__opaque AssignDebug (DynamicStrings_String__opaque s, const char *file_, unsigned int _file_high, unsigned int line, const char *proc_, unsigned int _proc_high)
 {
   void * f;
   void * p;
@@ -962,8 +962,8 @@ static DynamicStrings_String AssignDebug (DynamicStrings_String s, const char *f
   memcpy (file, file_, _file_high+1);
   memcpy (proc, proc_, _proc_high+1);
 
-  f = &file;
-  p = &proc;
+  f = const_cast<void*> (static_cast<const void*>(file));
+  p = const_cast<void*> (static_cast<const void*>(proc));
   Storage_ALLOCATE (&s->debug.file, (StrLib_StrLen ((const char *) file, _file_high))+1);
   if ((libc_strncpy (s->debug.file, f, (StrLib_StrLen ((const char *) file, _file_high))+1)) == NULL)
     {}  /* empty.  */
@@ -981,7 +981,7 @@ static DynamicStrings_String AssignDebug (DynamicStrings_String s, const char *f
    IsOn - returns TRUE if, s, is on one of the debug lists.
 */
 
-static bool IsOn (DynamicStrings_String list, DynamicStrings_String s)
+static bool IsOn (DynamicStrings_String__opaque list, DynamicStrings_String__opaque s)
 {
   while ((list != s) && (list != NULL))
     {
@@ -997,12 +997,12 @@ static bool IsOn (DynamicStrings_String list, DynamicStrings_String s)
    AddTo - adds string, s, to, list.
 */
 
-static void AddTo (DynamicStrings_String *list, DynamicStrings_String s)
+static void AddTo (DynamicStrings_String__opaque *list, DynamicStrings_String__opaque s)
 {
   if ((*list) == NULL)
     {
       (*list) = s;
-      s->debug.next = NULL;
+      s->debug.next = static_cast<DynamicStrings_String__opaque> (NULL);
     }
   else
     {
@@ -1016,9 +1016,9 @@ static void AddTo (DynamicStrings_String *list, DynamicStrings_String s)
    SubFrom - removes string, s, from, list.
 */
 
-static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s)
+static void SubFrom (DynamicStrings_String__opaque *list, DynamicStrings_String__opaque s)
 {
-  DynamicStrings_String p;
+  DynamicStrings_String__opaque p;
 
   if ((*list) == s)
     {
@@ -1038,10 +1038,10 @@ static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s)
       else
         {
           /* not found, quit  */
-          return ;
+          return;
         }
     }
-  s->debug.next = NULL;
+  s->debug.next = static_cast<DynamicStrings_String__opaque> (NULL);
 }
 
 
@@ -1049,7 +1049,7 @@ static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s)
    AddAllocated - adds string, s, to the head of the allocated list.
 */
 
-static void AddAllocated (DynamicStrings_String s)
+static void AddAllocated (DynamicStrings_String__opaque s)
 {
   Init ();
   AddTo (&frameHead->alloc, s);
@@ -1060,7 +1060,7 @@ static void AddAllocated (DynamicStrings_String s)
    AddDeallocated - adds string, s, to the head of the deallocated list.
 */
 
-static void AddDeallocated (DynamicStrings_String s)
+static void AddDeallocated (DynamicStrings_String__opaque s)
 {
   Init ();
   AddTo (&frameHead->dealloc, s);
@@ -1071,7 +1071,7 @@ static void AddDeallocated (DynamicStrings_String s)
    IsOnAllocated - returns TRUE if the string, s, has ever been allocated.
 */
 
-static bool IsOnAllocated (DynamicStrings_String s)
+static bool IsOnAllocated (DynamicStrings_String__opaque s)
 {
   DynamicStrings_frame f;
 
@@ -1097,7 +1097,7 @@ static bool IsOnAllocated (DynamicStrings_String s)
    IsOnDeallocated - returns TRUE if the string, s, has ever been deallocated.
 */
 
-static bool IsOnDeallocated (DynamicStrings_String s)
+static bool IsOnDeallocated (DynamicStrings_String__opaque s)
 {
   DynamicStrings_frame f;
 
@@ -1123,7 +1123,7 @@ static bool IsOnDeallocated (DynamicStrings_String s)
    SubAllocated - removes string, s, from the list of allocated strings.
 */
 
-static void SubAllocated (DynamicStrings_String s)
+static void SubAllocated (DynamicStrings_String__opaque s)
 {
   DynamicStrings_frame f;
 
@@ -1133,7 +1133,7 @@ static void SubAllocated (DynamicStrings_String s)
     if (IsOn (f->alloc, s))
       {
         SubFrom (&f->alloc, s);
-        return ;
+        return;
       }
     else
       {
@@ -1147,7 +1147,7 @@ static void SubAllocated (DynamicStrings_String s)
    SubDeallocated - removes string, s, from the list of deallocated strings.
 */
 
-static void SubDeallocated (DynamicStrings_String s)
+static void SubDeallocated (DynamicStrings_String__opaque s)
 {
   DynamicStrings_frame f;
 
@@ -1157,7 +1157,7 @@ static void SubDeallocated (DynamicStrings_String s)
     if (IsOn (f->dealloc, s))
       {
         SubFrom (&f->dealloc, s);
-        return ;
+        return;
       }
     else
       {
@@ -1171,13 +1171,13 @@ static void SubDeallocated (DynamicStrings_String s)
    SubDebugInfo - removes string, s, from the list of allocated strings.
 */
 
-static void SubDebugInfo (DynamicStrings_String s)
+static void SubDebugInfo (DynamicStrings_String__opaque s)
 {
   if (IsOnDeallocated (s))
     {
       Assertion_Assert (! DebugOn);
       /* string has already been deallocated  */
-      return ;
+      return;
     }
   if (IsOnAllocated (s))
     {
@@ -1196,9 +1196,9 @@ static void SubDebugInfo (DynamicStrings_String s)
    AddDebugInfo - adds string, s, to the list of allocated strings.
 */
 
-static void AddDebugInfo (DynamicStrings_String s)
+static void AddDebugInfo (DynamicStrings_String__opaque s)
 {
-  s->debug.next = NULL;
+  s->debug.next = static_cast<DynamicStrings_String__opaque> (NULL);
   s->debug.file = NULL;
   s->debug.line = 0;
   s->debug.proc = NULL;
@@ -1235,7 +1235,7 @@ static void ConcatContents (DynamicStrings_Contents *c, const char *a_, unsigned
       Storage_ALLOCATE ((void **) &(*c).next, sizeof (DynamicStrings_stringRecord));
       (*c).next->head = NULL;
       (*c).next->contents.len = 0;
-      (*c).next->contents.next = NULL;
+      (*c).next->contents.next = static_cast<DynamicStrings_String__opaque> (NULL);
       ConcatContents (&(*c).next->contents, (const char *) a, _a_high, h, o);
       AddDebugInfo ((*c).next);
       (*c).next = AssignDebug ((*c).next, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 722, (const char *) "ConcatContents", 14);
@@ -1251,7 +1251,7 @@ static void ConcatContents (DynamicStrings_Contents *c, const char *a_, unsigned
    DeallocateCharStar - deallocates any charStar.
 */
 
-static void DeallocateCharStar (DynamicStrings_String s)
+static void DeallocateCharStar (DynamicStrings_String__opaque s)
 {
   if ((s != NULL) && (s->head != NULL))
     {
@@ -1271,7 +1271,7 @@ static void DeallocateCharStar (DynamicStrings_String s)
    CheckPoisoned - checks for a poisoned string, s.
 */
 
-static DynamicStrings_String CheckPoisoned (DynamicStrings_String s)
+static DynamicStrings_String__opaque CheckPoisoned (DynamicStrings_String__opaque s)
 {
   if (((PoisonOn && (s != NULL)) && (s->head != NULL)) && (s->head->state == DynamicStrings_poisoned))
     {
@@ -1288,7 +1288,7 @@ static DynamicStrings_String CheckPoisoned (DynamicStrings_String s)
    MarkInvalid - marks the char * version of String, s, as invalid.
 */
 
-static void MarkInvalid (DynamicStrings_String s)
+static void MarkInvalid (DynamicStrings_String__opaque s)
 {
   if (PoisonOn)
     {
@@ -1331,7 +1331,7 @@ static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigne
       Storage_ALLOCATE ((void **) &(*c).next, sizeof (DynamicStrings_stringRecord));
       (*c).next->head = NULL;
       (*c).next->contents.len = 0;
-      (*c).next->contents.next = NULL;
+      (*c).next->contents.next = static_cast<DynamicStrings_String__opaque> (NULL);
       ConcatContentsAddress (&(*c).next->contents, reinterpret_cast<void *> (p), h-j);
       AddDebugInfo ((*c).next);
       if (TraceOn)
@@ -1342,7 +1342,7 @@ static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigne
   else
     {
       (*c).len = i;
-      (*c).next = NULL;
+      (*c).next = static_cast<DynamicStrings_String__opaque> (NULL);
     }
 }
 
@@ -1353,9 +1353,9 @@ static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigne
                   onlist.  String, a, is returned.
 */
 
-static DynamicStrings_String AddToGarbage (DynamicStrings_String a, DynamicStrings_String b)
+static DynamicStrings_String__opaque AddToGarbage (DynamicStrings_String__opaque a, DynamicStrings_String__opaque b)
 {
-  DynamicStrings_String c;
+  DynamicStrings_String__opaque c;
 
   if (PoisonOn)
     {
@@ -1392,7 +1392,7 @@ static DynamicStrings_String AddToGarbage (DynamicStrings_String a, DynamicStrin
    IsOnGarbage - returns TRUE if, s, is on string, e, garbage list.
 */
 
-static bool IsOnGarbage (DynamicStrings_String e, DynamicStrings_String s)
+static bool IsOnGarbage (DynamicStrings_String__opaque e, DynamicStrings_String__opaque s)
 {
   if ((e != NULL) && (s != NULL))
     {
@@ -1430,7 +1430,7 @@ static bool IsWhite (char ch)
    DumpState -
 */
 
-static void DumpState (DynamicStrings_String s)
+static void DumpState (DynamicStrings_String__opaque s)
 {
   switch (s->head->state)
     {
@@ -1464,7 +1464,7 @@ static void DumpState (DynamicStrings_String s)
    DumpStringSynopsis -
 */
 
-static void DumpStringSynopsis (DynamicStrings_String s)
+static void DumpStringSynopsis (DynamicStrings_String__opaque s)
 {
   writeCstring (s->debug.file);
   writeString ((const char *) ":", 1);
@@ -1497,9 +1497,9 @@ static void DumpStringSynopsis (DynamicStrings_String s)
    DumpString - displays the contents of string, s.
 */
 
-static void DumpString (DynamicStrings_String s)
+static void DumpString (DynamicStrings_String__opaque s)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (s != NULL)
     {
@@ -1541,7 +1541,7 @@ static void Init (void)
 
 extern "C" DynamicStrings_String DynamicStrings_InitString (const char *a_, unsigned int _a_high)
 {
-  DynamicStrings_String s;
+  DynamicStrings_String__opaque s;
   char a[_a_high+1];
 
   /* make a local copy of each unbounded array.  */
@@ -1549,21 +1549,21 @@ extern "C" DynamicStrings_String DynamicStrings_InitString (const char *a_, unsi
 
   Storage_ALLOCATE ((void **) &s, sizeof (DynamicStrings_stringRecord));
   s->contents.len = 0;
-  s->contents.next = NULL;
+  s->contents.next = static_cast<DynamicStrings_String__opaque> (NULL);
   ConcatContents (&s->contents, (const char *) a, _a_high, StrLib_StrLen ((const char *) a, _a_high), 0);
   Storage_ALLOCATE ((void **) &s->head, sizeof (DynamicStrings_descriptor));
   s->head->charStarUsed = false;
   s->head->charStar = NULL;
   s->head->charStarSize = 0;
   s->head->charStarValid = false;
-  s->head->garbage = NULL;
+  s->head->garbage = static_cast<DynamicStrings_String__opaque> (NULL);
   s->head->state = DynamicStrings_inuse;
   AddDebugInfo (s);
   if (TraceOn)
     {
       s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 758, (const char *) "InitString", 10);
     }
-  return s;
+  return static_cast<DynamicStrings_String> (s);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1576,48 +1576,48 @@ extern "C" DynamicStrings_String DynamicStrings_InitString (const char *a_, unsi
 
 extern "C" DynamicStrings_String DynamicStrings_KillString (DynamicStrings_String s)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (s != NULL)
     {
       if (CheckOn)
         {
           /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-          if (IsOnAllocated (s))
+          if (IsOnAllocated (static_cast<DynamicStrings_String__opaque> (s)))
             {
-              SubAllocated (s);
+              SubAllocated (static_cast<DynamicStrings_String__opaque> (s));
             }
-          else if (IsOnDeallocated (s))
+          else if (IsOnDeallocated (static_cast<DynamicStrings_String__opaque> (s)))
             {
               /* avoid dangling else.  */
-              SubDeallocated (s);
+              SubDeallocated (static_cast<DynamicStrings_String__opaque> (s));
             }
         }
-      if (s->head != NULL)
+      if (static_cast<DynamicStrings_String__opaque> (s)->head != NULL)
         {
-          s->head->state = DynamicStrings_poisoned;
-          s->head->garbage = DynamicStrings_KillString (s->head->garbage);
+          static_cast<DynamicStrings_String__opaque> (s)->head->state = DynamicStrings_poisoned;
+          static_cast<DynamicStrings_String__opaque> (s)->head->garbage = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->head->garbage)));
           if (! PoisonOn)
             {
-              DeallocateCharStar (s);
+              DeallocateCharStar (static_cast<DynamicStrings_String__opaque> (s));
             }
           if (! PoisonOn)
             {
-              Storage_DEALLOCATE ((void **) &s->head, sizeof (DynamicStrings_descriptor));
-              s->head = NULL;
+              Storage_DEALLOCATE ((void **) &static_cast<DynamicStrings_String__opaque> (s)->head, sizeof (DynamicStrings_descriptor));
+              static_cast<DynamicStrings_String__opaque> (s)->head = NULL;
             }
         }
-      t = DynamicStrings_KillString (s->contents.next);
+      t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next)));
       if (! PoisonOn)
         {
           Storage_DEALLOCATE ((void **) &s, sizeof (DynamicStrings_stringRecord));
         }
     }
-  return NULL;
+  return static_cast<DynamicStrings_String> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1645,11 +1645,11 @@ extern "C" void DynamicStrings_Fin (DynamicStrings_String s)
 
 extern "C" DynamicStrings_String DynamicStrings_InitStringCharStar (void * a)
 {
-  DynamicStrings_String s;
+  DynamicStrings_String__opaque s;
 
   Storage_ALLOCATE ((void **) &s, sizeof (DynamicStrings_stringRecord));
   s->contents.len = 0;
-  s->contents.next = NULL;
+  s->contents.next = static_cast<DynamicStrings_String__opaque> (NULL);
   if (a != NULL)
     {
       ConcatContentsAddress (&s->contents, a, static_cast<unsigned int> (libc_strlen (a)));
@@ -1659,14 +1659,14 @@ extern "C" DynamicStrings_String DynamicStrings_InitStringCharStar (void * a)
   s->head->charStar = NULL;
   s->head->charStarSize = 0;
   s->head->charStarValid = false;
-  s->head->garbage = NULL;
+  s->head->garbage = static_cast<DynamicStrings_String__opaque> (NULL);
   s->head->state = DynamicStrings_inuse;
   AddDebugInfo (s);
   if (TraceOn)
     {
       s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 957, (const char *) "InitStringCharStar", 18);
     }
-  return s;
+  return static_cast<DynamicStrings_String> (s);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1682,16 +1682,16 @@ extern "C" DynamicStrings_String DynamicStrings_InitStringChar (char ch)
 
   struct InitStringChar__T5_a { char array[1+1]; };
   InitStringChar__T5 a;
-  DynamicStrings_String s;
+  DynamicStrings_String__opaque s;
 
   a.array[0] = ch;
   a.array[1] = ASCII_nul;
-  s = DynamicStrings_InitString ((const char *) &a.array[0], 1);
+  s = static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitString ((const char *) &a.array[0], 1));
   if (TraceOn)
     {
       s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 977, (const char *) "InitStringChar", 14);
     }
-  return s;
+  return static_cast<DynamicStrings_String> (s);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1705,11 +1705,11 @@ extern "C" DynamicStrings_String DynamicStrings_Mark (DynamicStrings_String s)
 {
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
-  if ((s != NULL) && (s->head->state == DynamicStrings_inuse))
+  if ((s != NULL) && (static_cast<DynamicStrings_String__opaque> (s)->head->state == DynamicStrings_inuse))
     {
-      s->head->state = DynamicStrings_marked;
+      static_cast<DynamicStrings_String__opaque> (s)->head->state = DynamicStrings_marked;
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1729,7 +1729,7 @@ extern "C" unsigned int DynamicStrings_Length (DynamicStrings_String s)
     }
   else
     {
-      return s->contents.len+(DynamicStrings_Length (s->contents.next));
+      return static_cast<DynamicStrings_String__opaque> (s)->contents.len+(DynamicStrings_Length (static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next)));
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -1742,12 +1742,12 @@ extern "C" unsigned int DynamicStrings_Length (DynamicStrings_String s)
 
 extern "C" DynamicStrings_String DynamicStrings_ConCat (DynamicStrings_String a, DynamicStrings_String b)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (PoisonOn)
     {
-      a = CheckPoisoned (a);
-      b = CheckPoisoned (b);
+      a = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (a)));
+      b = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (b)));
     }
   if (a == b)
     {
@@ -1756,17 +1756,17 @@ extern "C" DynamicStrings_String DynamicStrings_ConCat (DynamicStrings_String a,
   else if (a != NULL)
     {
       /* avoid dangling else.  */
-      a = AddToGarbage (a, b);
-      MarkInvalid (a);
-      t = a;
+      a = static_cast<DynamicStrings_String> (AddToGarbage (static_cast<DynamicStrings_String__opaque> (a), static_cast<DynamicStrings_String__opaque> (b)));
+      MarkInvalid (static_cast<DynamicStrings_String__opaque> (a));
+      t = static_cast<DynamicStrings_String__opaque> (a);
       while (b != NULL)
         {
           while ((t->contents.len == MaxBuf) && (t->contents.next != NULL))
             {
               t = t->contents.next;
             }
-          ConcatContents (&t->contents, (const char *) &b->contents.buf.array[0], (MaxBuf-1), b->contents.len, 0);
-          b = b->contents.next;
+          ConcatContents (&t->contents, (const char *) &static_cast<DynamicStrings_String__opaque> (b)->contents.buf.array[0], (MaxBuf-1), static_cast<DynamicStrings_String__opaque> (b)->contents.len, 0);
+          b = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (b)->contents.next);
         }
     }
   if ((a == NULL) && (b != NULL))
@@ -1790,16 +1790,16 @@ extern "C" DynamicStrings_String DynamicStrings_ConCatChar (DynamicStrings_Strin
 
   struct ConCatChar__T6_a { char array[1+1]; };
   ConCatChar__T6 b;
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (PoisonOn)
     {
-      a = CheckPoisoned (a);
+      a = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (a)));
     }
   b.array[0] = ch;
   b.array[1] = ASCII_nul;
-  t = a;
-  MarkInvalid (a);
+  t = static_cast<DynamicStrings_String__opaque> (a);
+  MarkInvalid (static_cast<DynamicStrings_String__opaque> (a));
   while ((t->contents.len == MaxBuf) && (t->contents.next != NULL))
     {
       t = t->contents.next;
@@ -1820,13 +1820,13 @@ extern "C" DynamicStrings_String DynamicStrings_Assign (DynamicStrings_String a,
 {
   if (PoisonOn)
     {
-      a = CheckPoisoned (a);
-      b = CheckPoisoned (b);
+      a = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (a)));
+      b = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (b)));
     }
   if ((a != NULL) && (b != NULL))
     {
-      a->contents.next = DynamicStrings_KillString (a->contents.next);
-      a->contents.len = 0;
+      static_cast<DynamicStrings_String__opaque> (a)->contents.next = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (a)->contents.next)));
+      static_cast<DynamicStrings_String__opaque> (a)->contents.len = 0;
     }
   return DynamicStrings_ConCat (a, b);
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1840,10 +1840,10 @@ extern "C" DynamicStrings_String DynamicStrings_Assign (DynamicStrings_String a,
 
 extern "C" DynamicStrings_String DynamicStrings_ReplaceChar (DynamicStrings_String s, char from, char to)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
   unsigned int i;
 
-  t = s;
+  t = static_cast<DynamicStrings_String__opaque> (s);
   while (t != NULL)
     {
       i = 0;
@@ -1871,12 +1871,12 @@ extern "C" DynamicStrings_String DynamicStrings_Dup (DynamicStrings_String s)
 {
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   s = DynamicStrings_Assign (DynamicStrings_InitString ((const char *) "", 0), s);
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1198, (const char *) "Dup", 3);
+      s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (s), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1198, (const char *) "Dup", 3));
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1892,13 +1892,13 @@ extern "C" DynamicStrings_String DynamicStrings_Add (DynamicStrings_String a, Dy
 {
   if (PoisonOn)
     {
-      a = CheckPoisoned (a);
-      b = CheckPoisoned (b);
+      a = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (a)));
+      b = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (b)));
     }
   a = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_InitString ((const char *) "", 0), a), b);
   if (TraceOn)
     {
-      a = AssignDebug (a, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1218, (const char *) "Add", 3);
+      a = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (a), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1218, (const char *) "Add", 3));
     }
   return a;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1916,25 +1916,25 @@ extern "C" bool DynamicStrings_Equal (DynamicStrings_String a, DynamicStrings_St
 
   if (PoisonOn)
     {
-      a = CheckPoisoned (a);
-      b = CheckPoisoned (b);
+      a = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (a)));
+      b = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (b)));
     }
   if ((DynamicStrings_Length (a)) == (DynamicStrings_Length (b)))
     {
       while ((a != NULL) && (b != NULL))
         {
           i = 0;
-          Assertion_Assert (a->contents.len == b->contents.len);
-          while (i < a->contents.len)
+          Assertion_Assert (static_cast<DynamicStrings_String__opaque> (a)->contents.len == static_cast<DynamicStrings_String__opaque> (b)->contents.len);
+          while (i < static_cast<DynamicStrings_String__opaque> (a)->contents.len)
             {
-              if (a->contents.buf.array[i] != b->contents.buf.array[i])
+              if (static_cast<DynamicStrings_String__opaque> (a)->contents.buf.array[i] != static_cast<DynamicStrings_String__opaque> (b)->contents.buf.array[i])
                 {
                   return false;
                 }
               i += 1;
             }
-          a = a->contents.next;
-          b = b->contents.next;
+          a = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (a)->contents.next);
+          b = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (b)->contents.next);
         }
       return true;
     }
@@ -1954,26 +1954,26 @@ extern "C" bool DynamicStrings_Equal (DynamicStrings_String a, DynamicStrings_St
 
 extern "C" bool DynamicStrings_EqualCharStar (DynamicStrings_String s, void * a)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
-  t = DynamicStrings_InitStringCharStar (a);
+  t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitStringCharStar (a));
   if (TraceOn)
     {
       t = AssignDebug (t, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1275, (const char *) "EqualCharStar", 13);
     }
-  t = AddToGarbage (t, s);
-  if (DynamicStrings_Equal (t, s))
+  t = AddToGarbage (t, static_cast<DynamicStrings_String__opaque> (s));
+  if (DynamicStrings_Equal (static_cast<DynamicStrings_String> (t), s))
     {
-      t = DynamicStrings_KillString (t);
+      t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (t)));
       return true;
     }
   else
     {
-      t = DynamicStrings_KillString (t);
+      t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (t)));
       return false;
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1988,7 +1988,7 @@ extern "C" bool DynamicStrings_EqualCharStar (DynamicStrings_String s, void * a)
 
 extern "C" bool DynamicStrings_EqualArray (DynamicStrings_String s, const char *a_, unsigned int _a_high)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
   char a[_a_high+1];
 
   /* make a local copy of each unbounded array.  */
@@ -1996,22 +1996,22 @@ extern "C" bool DynamicStrings_EqualArray (DynamicStrings_String s, const char *
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
-  t = DynamicStrings_InitString ((const char *) a, _a_high);
+  t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitString ((const char *) a, _a_high));
   if (TraceOn)
     {
       t = AssignDebug (t, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1305, (const char *) "EqualArray", 10);
     }
-  t = AddToGarbage (t, s);
-  if (DynamicStrings_Equal (t, s))
+  t = AddToGarbage (t, static_cast<DynamicStrings_String__opaque> (s));
+  if (DynamicStrings_Equal (static_cast<DynamicStrings_String> (t), s))
     {
-      t = DynamicStrings_KillString (t);
+      t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (t)));
       return true;
     }
   else
     {
-      t = DynamicStrings_KillString (t);
+      t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (t)));
       return false;
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2027,11 +2027,11 @@ extern "C" DynamicStrings_String DynamicStrings_Mult (DynamicStrings_String s, u
 {
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (n <= 0)
     {
-      s = AddToGarbage (DynamicStrings_InitString ((const char *) "", 0), s);
+      s = static_cast<DynamicStrings_String> (AddToGarbage (static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitString ((const char *) "", 0)), static_cast<DynamicStrings_String__opaque> (s)));
     }
   else
     {
@@ -2039,7 +2039,7 @@ extern "C" DynamicStrings_String DynamicStrings_Mult (DynamicStrings_String s, u
     }
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1337, (const char *) "Mult", 4);
+      s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (s), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1337, (const char *) "Mult", 4));
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2061,15 +2061,15 @@ extern "C" DynamicStrings_String DynamicStrings_Mult (DynamicStrings_String s, u
 
 extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s, int low, int high)
 {
-  DynamicStrings_String d;
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque d;
+  DynamicStrings_String__opaque t;
   int start;
   int end;
   int o;
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (low < 0)
     {
@@ -2084,17 +2084,17 @@ extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s,
       /* make sure high is <= Length (s)  */
       high = Min (DynamicStrings_Length (s), static_cast<unsigned int> (high));
     }
-  d = DynamicStrings_InitString ((const char *) "", 0);
-  d = AddToGarbage (d, s);
+  d = static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitString ((const char *) "", 0));
+  d = AddToGarbage (d, static_cast<DynamicStrings_String__opaque> (s));
   o = 0;
   t = d;
   while (s != NULL)
     {
-      if (low < (o+((int ) (s->contents.len))))
+      if (low < (o+((int ) (static_cast<DynamicStrings_String__opaque> (s)->contents.len))))
         {
           if (o > high)
             {
-              s = NULL;
+              s = static_cast<DynamicStrings_String> (NULL);
             }
           else
             {
@@ -2123,22 +2123,22 @@ extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s,
                     }
                   t = t->contents.next;
                 }
-              ConcatContentsAddress (&t->contents, &s->contents.buf.array[start], static_cast<unsigned int> (end-start));
-              o += s->contents.len;
-              s = s->contents.next;
+              ConcatContentsAddress (&t->contents, &static_cast<DynamicStrings_String__opaque> (s)->contents.buf.array[start], static_cast<unsigned int> (end-start));
+              o += static_cast<DynamicStrings_String__opaque> (s)->contents.len;
+              s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
             }
         }
       else
         {
-          o += s->contents.len;
-          s = s->contents.next;
+          o += static_cast<DynamicStrings_String__opaque> (s)->contents.len;
+          s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
         }
     }
   if (TraceOn)
     {
       d = AssignDebug (d, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1422, (const char *) "Slice", 5);
     }
-  return d;
+  return static_cast<DynamicStrings_String> (d);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2157,21 +2157,21 @@ extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   k = 0;
   while (s != NULL)
     {
-      if ((k+s->contents.len) < o)
+      if ((k+static_cast<DynamicStrings_String__opaque> (s)->contents.len) < o)
         {
-          k += s->contents.len;
+          k += static_cast<DynamicStrings_String__opaque> (s)->contents.len;
         }
       else
         {
           i = o-k;
-          while (i < s->contents.len)
+          while (i < static_cast<DynamicStrings_String__opaque> (s)->contents.len)
             {
-              if (s->contents.buf.array[i] == ch)
+              if (static_cast<DynamicStrings_String__opaque> (s)->contents.buf.array[i] == ch)
                 {
                   return k+i;
                 }
@@ -2180,7 +2180,7 @@ extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned
           k += i;
           o = k;
         }
-      s = s->contents.next;
+      s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
     }
   return -1;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2203,15 +2203,15 @@ extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   j = -1;
   k = 0;
   while (s != NULL)
     {
-      if ((k+s->contents.len) < o)
+      if ((k+static_cast<DynamicStrings_String__opaque> (s)->contents.len) < o)
         {
-          k += s->contents.len;
+          k += static_cast<DynamicStrings_String__opaque> (s)->contents.len;
         }
       else
         {
@@ -2223,9 +2223,9 @@ extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned
             {
               i = o-k;
             }
-          while (i < s->contents.len)
+          while (i < static_cast<DynamicStrings_String__opaque> (s)->contents.len)
             {
-              if (s->contents.buf.array[i] == ch)
+              if (static_cast<DynamicStrings_String__opaque> (s)->contents.buf.array[i] == ch)
                 {
                   j = k;
                 }
@@ -2233,7 +2233,7 @@ extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned
               i += 1;
             }
         }
-      s = s->contents.next;
+      s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
     }
   return j;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2257,7 +2257,7 @@ extern "C" int DynamicStrings_ReverseIndex (DynamicStrings_String s, char ch, in
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (o < 0)
     {
@@ -2311,7 +2311,7 @@ extern "C" DynamicStrings_String DynamicStrings_RemoveComment (DynamicStrings_St
     }
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1576, (const char *) "RemoveComment", 13);
+      s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (s), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1576, (const char *) "RemoveComment", 13));
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2336,7 +2336,7 @@ extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePrefix (DynamicString
   s = DynamicStrings_Slice (s, (int ) (i), 0);
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1688, (const char *) "RemoveWhitePrefix", 17);
+      s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (s), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1688, (const char *) "RemoveWhitePrefix", 17));
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2361,7 +2361,7 @@ extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePostfix (DynamicStrin
   s = DynamicStrings_Slice (s, 0, i+1);
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1710, (const char *) "RemoveWhitePostfix", 18);
+      s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (s), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1710, (const char *) "RemoveWhitePostfix", 18));
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2379,12 +2379,12 @@ extern "C" DynamicStrings_String DynamicStrings_ToUpper (DynamicStrings_String s
 {
   char ch;
   unsigned int i;
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (s != NULL)
     {
-      MarkInvalid (s);
-      t = s;
+      MarkInvalid (static_cast<DynamicStrings_String__opaque> (s));
+      t = static_cast<DynamicStrings_String__opaque> (s);
       while (t != NULL)
         {
           i = 0;
@@ -2416,12 +2416,12 @@ extern "C" DynamicStrings_String DynamicStrings_ToLower (DynamicStrings_String s
 {
   char ch;
   unsigned int i;
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (s != NULL)
     {
-      MarkInvalid (s);
-      t = s;
+      MarkInvalid (static_cast<DynamicStrings_String__opaque> (s));
+      t = static_cast<DynamicStrings_String__opaque> (s);
       while (t != NULL)
         {
           i = 0;
@@ -2456,12 +2456,12 @@ extern "C" void DynamicStrings_CopyOut (char *a, unsigned int _a_high, DynamicSt
   i = 0;
   while (i < l)
     {
-      a[i] = DynamicStrings_char (s, static_cast<int> (i));
+      const_cast<char *>(a)[i] = DynamicStrings_char (s, static_cast<int> (i));
       i += 1;
     }
   if (i <= _a_high)
     {
-      a[i] = ASCII_nul;
+      const_cast<char *>(a)[i] = ASCII_nul;
     }
 }
 
@@ -2476,7 +2476,7 @@ extern "C" char DynamicStrings_char (DynamicStrings_String s, int i)
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (i < 0)
     {
@@ -2486,18 +2486,18 @@ extern "C" char DynamicStrings_char (DynamicStrings_String s, int i)
     {
       c = i;
     }
-  while ((s != NULL) && (c >= s->contents.len))
+  while ((s != NULL) && (c >= static_cast<DynamicStrings_String__opaque> (s)->contents.len))
     {
-      c -= s->contents.len;
-      s = s->contents.next;
+      c -= static_cast<DynamicStrings_String__opaque> (s)->contents.len;
+      s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
     }
-  if ((s == NULL) || (c >= s->contents.len))
+  if ((s == NULL) || (c >= static_cast<DynamicStrings_String__opaque> (s)->contents.len))
     {
       return ASCII_nul;
     }
   else
     {
-      return s->contents.buf.array[c];
+      return static_cast<DynamicStrings_String__opaque> (s)->contents.buf.array[c];
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -2512,14 +2512,14 @@ extern "C" void * DynamicStrings_string (DynamicStrings_String s)
 {
   typedef char *string__T2;
 
-  DynamicStrings_String a;
+  DynamicStrings_String__opaque a;
   unsigned int l;
   unsigned int i;
   string__T2 p;
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (s == NULL)
     {
@@ -2527,18 +2527,18 @@ extern "C" void * DynamicStrings_string (DynamicStrings_String s)
     }
   else
     {
-      if (! s->head->charStarValid)
+      if (! static_cast<DynamicStrings_String__opaque> (s)->head->charStarValid)
         {
           l = DynamicStrings_Length (s);
-          if (! (s->head->charStarUsed && (s->head->charStarSize > l)))
+          if (! (static_cast<DynamicStrings_String__opaque> (s)->head->charStarUsed && (static_cast<DynamicStrings_String__opaque> (s)->head->charStarSize > l)))
             {
-              DeallocateCharStar (s);
-              Storage_ALLOCATE (&s->head->charStar, l+1);
-              s->head->charStarSize = l+1;
-              s->head->charStarUsed = true;
+              DeallocateCharStar (static_cast<DynamicStrings_String__opaque> (s));
+              Storage_ALLOCATE (&static_cast<DynamicStrings_String__opaque> (s)->head->charStar, l+1);
+              static_cast<DynamicStrings_String__opaque> (s)->head->charStarSize = l+1;
+              static_cast<DynamicStrings_String__opaque> (s)->head->charStarUsed = true;
             }
-          p = static_cast<string__T2> (s->head->charStar);
-          a = s;
+          p = static_cast<string__T2> (static_cast<DynamicStrings_String__opaque> (s)->head->charStar);
+          a = static_cast<DynamicStrings_String__opaque> (s);
           while (a != NULL)
             {
               i = 0;
@@ -2551,9 +2551,9 @@ extern "C" void * DynamicStrings_string (DynamicStrings_String s)
               a = a->contents.next;
             }
           (*p) = ASCII_nul;
-          s->head->charStarValid = true;
+          static_cast<DynamicStrings_String__opaque> (s)->head->charStarValid = true;
         }
-      return s->head->charStar;
+      return static_cast<DynamicStrings_String__opaque> (s)->head->charStar;
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -2573,7 +2573,7 @@ extern "C" DynamicStrings_String DynamicStrings_InitStringDB (const char *a_, un
   memcpy (a, a_, _a_high+1);
   memcpy (file, file_, _file_high+1);
 
-  return AssignDebug (DynamicStrings_InitString ((const char *) a, _a_high), (const char *) file, _file_high, line, (const char *) "InitString", 10);
+  return static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitString ((const char *) a, _a_high)), (const char *) file, _file_high, line, (const char *) "InitString", 10));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2590,7 +2590,7 @@ extern "C" DynamicStrings_String DynamicStrings_InitStringCharStarDB (void * a,
   /* make a local copy of each unbounded array.  */
   memcpy (file, file_, _file_high+1);
 
-  return AssignDebug (DynamicStrings_InitStringCharStar (a), (const char *) file, _file_high, line, (const char *) "InitStringCharStar", 18);
+  return static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitStringCharStar (a)), (const char *) file, _file_high, line, (const char *) "InitStringCharStar", 18));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2607,7 +2607,7 @@ extern "C" DynamicStrings_String DynamicStrings_InitStringCharDB (char ch, const
   /* make a local copy of each unbounded array.  */
   memcpy (file, file_, _file_high+1);
 
-  return AssignDebug (DynamicStrings_InitStringChar (ch), (const char *) file, _file_high, line, (const char *) "InitStringChar", 14);
+  return static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitStringChar (ch)), (const char *) file, _file_high, line, (const char *) "InitStringChar", 14));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2624,7 +2624,7 @@ extern "C" DynamicStrings_String DynamicStrings_MultDB (DynamicStrings_String s,
   /* make a local copy of each unbounded array.  */
   memcpy (file, file_, _file_high+1);
 
-  return AssignDebug (DynamicStrings_Mult (s, n), (const char *) file, _file_high, line, (const char *) "Mult", 4);
+  return static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_Mult (s, n)), (const char *) file, _file_high, line, (const char *) "Mult", 4));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2641,7 +2641,7 @@ extern "C" DynamicStrings_String DynamicStrings_DupDB (DynamicStrings_String s,
   /* make a local copy of each unbounded array.  */
   memcpy (file, file_, _file_high+1);
 
-  return AssignDebug (DynamicStrings_Dup (s), (const char *) file, _file_high, line, (const char *) "Dup", 3);
+  return static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_Dup (s)), (const char *) file, _file_high, line, (const char *) "Dup", 3));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2659,8 +2659,8 @@ extern "C" DynamicStrings_String DynamicStrings_SliceDB (DynamicStrings_String s
   memcpy (file, file_, _file_high+1);
 
   DSdbEnter ();
-  s = AssignDebug (DynamicStrings_Slice (s, low, high), (const char *) file, _file_high, line, (const char *) "Slice", 5);
-  DSdbExit (s);
+  s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_Slice (s, low, high)), (const char *) file, _file_high, line, (const char *) "Slice", 5));
+  DSdbExit (static_cast<DynamicStrings_String__opaque> (s));
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -2680,8 +2680,8 @@ extern "C" void DynamicStrings_PushAllocation (void)
       Init ();
       Storage_ALLOCATE ((void **) &f, sizeof (DynamicStrings_frameRec));
       f->next = frameHead;
-      f->alloc = NULL;
-      f->dealloc = NULL;
+      f->alloc = static_cast<DynamicStrings_String__opaque> (NULL);
+      f->dealloc = static_cast<DynamicStrings_String__opaque> (NULL);
       frameHead = f;
     }
 }
@@ -2700,7 +2700,7 @@ extern "C" void DynamicStrings_PopAllocation (bool halt)
 {
   if (CheckOn)
     {
-      if ((DynamicStrings_PopAllocationExemption (halt, NULL)) == NULL)
+      if ((DynamicStrings_PopAllocationExemption (halt, static_cast<DynamicStrings_String> (NULL))) == NULL)
         {}  /* empty.  */
     }
 }
@@ -2718,7 +2718,7 @@ extern "C" void DynamicStrings_PopAllocation (bool halt)
 
 extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (bool halt, DynamicStrings_String e)
 {
-  DynamicStrings_String s;
+  DynamicStrings_String__opaque s;
   bool b;
 
   Init ();
@@ -2739,7 +2739,7 @@ extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (bool hal
               s = frameHead->alloc;
               while (s != NULL)
                 {
-                  if (! (((e == s) || (IsOnGarbage (e, s))) || (IsOnGarbage (s, e))))
+                  if (! (((e == s) || (IsOnGarbage (static_cast<DynamicStrings_String__opaque> (e), s))) || (IsOnGarbage (s, static_cast<DynamicStrings_String__opaque> (e)))))
                     {
                       if (! b)
                         {
@@ -2764,12 +2764,12 @@ extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (bool hal
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_DynamicStrings_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_DynamicStrings_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   Initialized = false;
   Init ();
 }
 
-extern "C" void _M2_DynamicStrings_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_DynamicStrings_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GEnvironment.cc b/gcc/m2/mc-boot/GEnvironment.cc
index 3916428a108..aad1bb46c01 100644
--- a/gcc/m2/mc-boot/GEnvironment.cc
+++ b/gcc/m2/mc-boot/GEnvironment.cc
@@ -38,9 +38,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _Environment_H
 #define _Environment_C
 
+#include "GEnvironment.h"
 #   include "GSYSTEM.h"
 #   include "Glibc.h"
 #   include "GASCII.h"
@@ -86,16 +86,16 @@ extern "C" bool Environment_GetEnvironment (const char *Env_, unsigned int _Env_
 
   i = 0;
   High = _dest_high;
-  Addr = static_cast<GetEnvironment__T1> (libc_getenv (&Env));
+  Addr = static_cast<GetEnvironment__T1> (libc_getenv (const_cast<void*> (static_cast<const void*>(Env))));
   while (((i < High) && (Addr != NULL)) && ((*Addr) != ASCII_nul))
     {
-      dest[i] = (*Addr);
+      const_cast<char *>(dest)[i] = (*Addr);
       Addr += 1;
       i += 1;
     }
   if (i < High)
     {
-      dest[i] = ASCII_nul;
+      const_cast<char *>(dest)[i] = ASCII_nul;
     }
   return Addr != NULL;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -116,15 +116,15 @@ extern "C" bool Environment_PutEnvironment (const char *EnvDef_, unsigned int _E
   /* make a local copy of each unbounded array.  */
   memcpy (EnvDef, EnvDef_, _EnvDef_high+1);
 
-  return (libc_putenv (&EnvDef)) == 0;
+  return (libc_putenv (const_cast<void*> (static_cast<const void*>(EnvDef)))) == 0;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_Environment_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Environment_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_Environment_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Environment_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GFIO.cc b/gcc/m2/mc-boot/GFIO.cc
index 3f05b35e6e2..229dc175e75 100644
--- a/gcc/m2/mc-boot/GFIO.cc
+++ b/gcc/m2/mc-boot/GFIO.cc
@@ -48,9 +48,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _FIO_H
 #define _FIO_C
 
+#include "GFIO.h"
 #   include "GSYSTEM.h"
 #   include "GASCII.h"
 #   include "GStrLib.h"
@@ -63,9 +63,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 typedef unsigned int FIO_File;
 
-FIO_File FIO_StdErr;
-FIO_File FIO_StdOut;
-FIO_File FIO_StdIn;
 #   define MaxBufferLength (1024*16)
 #   define MaxErrorString (1024*8)
 #   define CreatePermissions 0666
@@ -88,7 +85,7 @@ typedef enum {FIO_successful, FIO_outofmemory, FIO_toomanyfilesopen, FIO_failed,
 typedef enum {FIO_unused, FIO_openedforread, FIO_openedforwrite, FIO_openedforrandom} FIO_FileUsage;
 
 struct FIO_NameInfo_r {
-                        void *address;
+                        void * address;
                         unsigned int size;
                       };
 
@@ -96,11 +93,11 @@ struct FIO_buf_r {
                    bool valid;
                    long int bufstart;
                    unsigned int position;
-                   void *address;
+                   void * address;
                    unsigned int filled;
                    unsigned int size;
                    unsigned int left;
-                   FIO__T7 *contents;
+                   FIO__T7 * contents;
                  };
 
 struct FIO__T7_a { char array[MaxBufferLength+1]; };
@@ -639,7 +636,7 @@ static FIO_File InitializeFile (FIO_File f, void * fname, unsigned int flength,
             {
               fd->buffer->left = 0;
             }
-          fd->buffer->contents = reinterpret_cast<FIO__T7 *> (fd->buffer->address);  /* provides easy access for reading characters  */
+          fd->buffer->contents = static_cast<FIO__T7 *> (fd->buffer->address);  /* provides easy access for reading characters  */
           fd->state = fstate;  /* provides easy access for reading characters  */
         }
     }
@@ -913,7 +910,7 @@ static void HandleEscape (char *dest, unsigned int _dest_high, const char *src_,
       if (src[(*i)+1] == 'n')
         {
           /* requires a newline  */
-          dest[(*j)] = ASCII_nl;
+          const_cast<char *>(dest)[(*j)] = ASCII_nl;
           (*j) += 1;
           (*i) += 2;
         }
@@ -921,7 +918,7 @@ static void HandleEscape (char *dest, unsigned int _dest_high, const char *src_,
         {
           /* avoid dangling else.  */
           /* requires a tab (yuck) tempted to fake this but I better not..  */
-          dest[(*j)] = ASCII_tab;
+          const_cast<char *>(dest)[(*j)] = ASCII_tab;
           (*j) += 1;
           (*i) += 2;
         }
@@ -930,7 +927,7 @@ static void HandleEscape (char *dest, unsigned int _dest_high, const char *src_,
           /* avoid dangling else.  */
           /* copy escaped character  */
           (*i) += 1;
-          dest[(*j)] = src[(*i)];
+          const_cast<char *>(dest)[(*j)] = src[(*i)];
           (*j) += 1;
           (*i) += 1;
         }
@@ -954,7 +951,7 @@ static void Cast (unsigned char *a, unsigned int _a_high, const unsigned char *b
     {
       for (i=0; i<=_a_high; i++)
         {
-          a[i] = b[i];
+          const_cast<unsigned char *>(a)[i] = b[i];
         }
     }
   else
@@ -1004,7 +1001,7 @@ static void StringFormat1 (char *dest, unsigned int _dest_high, const char *src_
         }
       else
         {
-          dest[j] = src[i];
+          const_cast<char *>(dest)[j] = src[i];
           i += 1;
           j += 1;
         }
@@ -1017,13 +1014,13 @@ static void StringFormat1 (char *dest, unsigned int _dest_high, const char *src_
           Cast ((unsigned char *) &p, (sizeof (p)-1), (const unsigned char *) w, _w_high);
           while ((j < HighDest) && ((*p) != ASCII_nul))
             {
-              dest[j] = (*p);
+              const_cast<char *>(dest)[j] = (*p);
               j += 1;
               p += 1;
             }
           if (j < HighDest)
             {
-              dest[j] = ASCII_nul;
+              const_cast<char *>(dest)[j] = ASCII_nul;
             }
           j = StrLib_StrLen ((const char *) dest, _dest_high);
           i += 2;
@@ -1031,7 +1028,7 @@ static void StringFormat1 (char *dest, unsigned int _dest_high, const char *src_
       else if (src[i+1] == 'd')
         {
           /* avoid dangling else.  */
-          dest[j] = ASCII_nul;
+          const_cast<char *>(dest)[j] = ASCII_nul;
           Cast ((unsigned char *) &c, (sizeof (c)-1), (const unsigned char *) w, _w_high);
           NumberIO_CardToStr (c, 0, (char *) &str.array[0], MaxErrorString);
           StrLib_StrConCat ((const char *) dest, _dest_high, (const char *) &str.array[0], MaxErrorString, (char *) dest, _dest_high);
@@ -1041,7 +1038,7 @@ static void StringFormat1 (char *dest, unsigned int _dest_high, const char *src_
       else
         {
           /* avoid dangling else.  */
-          dest[j] = src[i];
+          const_cast<char *>(dest)[j] = src[i];
           i += 1;
           j += 1;
         }
@@ -1055,14 +1052,14 @@ static void StringFormat1 (char *dest, unsigned int _dest_high, const char *src_
         }
       else
         {
-          dest[j] = src[i];
+          const_cast<char *>(dest)[j] = src[i];
           i += 1;
           j += 1;
         }
     }
   if (j < HighDest)
     {
-      dest[j] = ASCII_nul;
+      const_cast<char *>(dest)[j] = ASCII_nul;
     }
 }
 
@@ -1312,7 +1309,7 @@ static void PreInitialize (FIO_File f, const char *fname_, unsigned int _fname_h
   /* make a local copy of each unbounded array.  */
   memcpy (fname, fname_, _fname_high+1);
 
-  if ((InitializeFile (f, &fname, StrLib_StrLen ((const char *) fname, _fname_high), state, use, towrite, bufsize)) == f)
+  if ((InitializeFile (f, const_cast<void*> (static_cast<const void*>(fname)), StrLib_StrLen ((const char *) fname, _fname_high), state, use, towrite, bufsize)) == f)
     {
       fd = static_cast<FIO_FileDescriptor> (Indexing_GetIndice (FileInfo, f));
       if (f == Error)
@@ -1414,7 +1411,7 @@ extern "C" bool FIO_Exists (const char *fname_, unsigned int _fname_high)
   /* 
    The following functions are wrappers for the above.
   */
-  return FIO_exists (&fname, StrLib_StrLen ((const char *) fname, _fname_high));
+  return FIO_exists (const_cast<void*> (static_cast<const void*>(fname)), StrLib_StrLen ((const char *) fname, _fname_high));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1426,7 +1423,7 @@ extern "C" FIO_File FIO_OpenToRead (const char *fname_, unsigned int _fname_high
   /* make a local copy of each unbounded array.  */
   memcpy (fname, fname_, _fname_high+1);
 
-  return FIO_openToRead (&fname, StrLib_StrLen ((const char *) fname, _fname_high));
+  return FIO_openToRead (const_cast<void*> (static_cast<const void*>(fname)), StrLib_StrLen ((const char *) fname, _fname_high));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1438,7 +1435,7 @@ extern "C" FIO_File FIO_OpenToWrite (const char *fname_, unsigned int _fname_hig
   /* make a local copy of each unbounded array.  */
   memcpy (fname, fname_, _fname_high+1);
 
-  return FIO_openToWrite (&fname, StrLib_StrLen ((const char *) fname, _fname_high));
+  return FIO_openToWrite (const_cast<void*> (static_cast<const void*>(fname)), StrLib_StrLen ((const char *) fname, _fname_high));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1450,7 +1447,7 @@ extern "C" FIO_File FIO_OpenForRandom (const char *fname_, unsigned int _fname_h
   /* make a local copy of each unbounded array.  */
   memcpy (fname, fname_, _fname_high+1);
 
-  return FIO_openForRandom (&fname, StrLib_StrLen ((const char *) fname, _fname_high), towrite, newfile);
+  return FIO_openForRandom (const_cast<void*> (static_cast<const void*>(fname)), StrLib_StrLen ((const char *) fname, _fname_high), towrite, newfile);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1966,7 +1963,7 @@ extern "C" void FIO_WriteString (FIO_File f, const char *a_, unsigned int _a_hig
   memcpy (a, a_, _a_high+1);
 
   l = StrLib_StrLen ((const char *) a, _a_high);
-  if ((FIO_WriteNBytes (f, l, &a)) != l)
+  if ((FIO_WriteNBytes (f, l, const_cast<void*> (static_cast<const void*>(a)))) != l)
     {}  /* empty.  */
 }
 
@@ -1993,12 +1990,12 @@ extern "C" void FIO_ReadString (FIO_File f, char *a, unsigned int _a_high)
         /* avoid gcc warning by using compound statement even if not strictly necessary.  */
         if (((ch == ASCII_nl) || (! (FIO_IsNoError (f)))) || (FIO_EOF (f)))
           {
-            a[i] = ASCII_nul;
+            const_cast<char *>(a)[i] = ASCII_nul;
             i += 1;
           }
         else
           {
-            a[i] = ch;
+            const_cast<char *>(a)[i] = ch;
             i += 1;
           }
       }
@@ -2222,7 +2219,7 @@ extern "C" void FIO_GetFileName (FIO_File f, char *a, unsigned int _a_high)
               i = 0;
               while (((*p) != ASCII_nul) && (i <= _a_high))
                 {
-                  a[i] = (*p);
+                  const_cast<char *>(a)[i] = (*p);
                   p += 1;
                   i += 1;
                 }
@@ -2307,12 +2304,12 @@ extern "C" void FIO_FlushOutErr (void)
     }
 }
 
-extern "C" void _M2_FIO_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_FIO_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   Init ();
 }
 
-extern "C" void _M2_FIO_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_FIO_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   FIO_FlushOutErr ();
 }
diff --git a/gcc/m2/mc-boot/GFormatStrings.cc b/gcc/m2/mc-boot/GFormatStrings.cc
index 6966ac6c635..d3acec3bc6c 100644
--- a/gcc/m2/mc-boot/GFormatStrings.cc
+++ b/gcc/m2/mc-boot/GFormatStrings.cc
@@ -46,9 +46,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _FormatStrings_H
 #define _FormatStrings_C
 
+#include "GFormatStrings.h"
 #   include "GDynamicStrings.h"
 #   include "GStringConvert.h"
 #   include "GSYSTEM.h"
@@ -254,7 +254,7 @@ static void Cast (unsigned char *a, unsigned int _a_high, const unsigned char *b
     {
       for (i=0; i<=_a_high; i++)
         {
-          a[i] = b[i];
+          const_cast<unsigned char *>(a)[i] = b[i];
         }
     }
   else
@@ -835,10 +835,10 @@ extern "C" DynamicStrings_String FormatStrings_HandleEscape (DynamicStrings_Stri
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_FormatStrings_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_FormatStrings_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_FormatStrings_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_FormatStrings_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GFpuIO.cc b/gcc/m2/mc-boot/GFpuIO.cc
index 97d64254dae..09fd4fb95cd 100644
--- a/gcc/m2/mc-boot/GFpuIO.cc
+++ b/gcc/m2/mc-boot/GFpuIO.cc
@@ -42,9 +42,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #      define FALSE (1==0)
 #   endif
 
-#define _FpuIO_H
 #define _FpuIO_C
 
+#include "GFpuIO.h"
 #   include "GStrIO.h"
 #   include "GStrLib.h"
 #   include "GASCII.h"
@@ -328,10 +328,10 @@ extern "C" void FpuIO_LongIntToStr (long int x, unsigned int n, char *a, unsigne
   s = DynamicStrings_KillString (s);
 }
 
-extern "C" void _M2_FpuIO_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_FpuIO_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_FpuIO_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_FpuIO_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GIO.cc b/gcc/m2/mc-boot/GIO.cc
index 0699c4cb0d7..4b76ed6bc80 100644
--- a/gcc/m2/mc-boot/GIO.cc
+++ b/gcc/m2/mc-boot/GIO.cc
@@ -42,9 +42,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #      define FALSE (1==0)
 #   endif
 
-#define _IO_H
 #define _IO_C
 
+#include "GIO.h"
 #   include "GStrLib.h"
 #   include "GSYSTEM.h"
 #   include "Glibc.h"
@@ -177,7 +177,7 @@ static void doWrite (int fd, FIO_File f, char ch)
             r = static_cast<int> (libc_write (FIO_GetUnixFileDescriptor (f), &ch, static_cast<size_t> (1)));
             if (r == 1)
               {
-                return ;
+                return;
               }
             else if (r == -1)
               {
@@ -186,7 +186,7 @@ static void doWrite (int fd, FIO_File f, char ch)
                 if ((r != errno_EAGAIN) && (r != errno_EINTR))
                   {
                     fdState.array[fd].IsEof = true;
-                    return ;
+                    return;
                   }
               }
           }
@@ -319,7 +319,7 @@ extern "C" void IO_Read (char *ch)
             r = static_cast<int> (libc_read (FIO_GetUnixFileDescriptor (FIO_StdIn), ch, static_cast<size_t> (1)));
             if (r == 1)
               {
-                return ;
+                return;
               }
             else if (r == -1)
               {
@@ -329,7 +329,7 @@ extern "C" void IO_Read (char *ch)
                   {
                     fdState.array[0].IsEof = true;
                     (*ch) = ASCII_eof;
-                    return ;
+                    return;
                   }
               }
           }
@@ -471,11 +471,11 @@ extern "C" void IO_EchoOff (int fd, bool input)
   term = termios_KillTermios (term);
 }
 
-extern "C" void _M2_IO_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_IO_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   Init ();
 }
 
-extern "C" void _M2_IO_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_IO_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GIndexing.cc b/gcc/m2/mc-boot/GIndexing.cc
index 894b8cbea1f..3da42f68d71 100644
--- a/gcc/m2/mc-boot/GIndexing.cc
+++ b/gcc/m2/mc-boot/GIndexing.cc
@@ -42,9 +42,9 @@ Boston, MA 02110-1301, USA.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _Indexing_H
 #define _Indexing_C
 
+#include "GIndexing.h"
 #   include "Glibc.h"
 #   include "GStorage.h"
 #   include "GSYSTEM.h"
@@ -58,15 +58,12 @@ typedef struct Indexing__T2_r Indexing__T2;
 
 typedef void * *Indexing_PtrToAddress;
 
-typedef Indexing__T2 *Indexing_Index;
+typedef Indexing__T2 *Indexing_Index__opaque;
 
 typedef unsigned char *Indexing_PtrToByte;
 
-typedef void (*Indexing_IndexProcedure_t) (void *);
-struct Indexing_IndexProcedure_p { Indexing_IndexProcedure_t proc; };
-
 struct Indexing__T2_r {
-                        void *ArrayStart;
+                        void * ArrayStart;
                         unsigned int ArraySize;
                         unsigned int Used;
                         unsigned int Low;
@@ -163,7 +160,7 @@ extern "C" void Indexing_ForeachIndiceInIndexDo (Indexing_Index i, Indexing_Inde
 
 extern "C" Indexing_Index Indexing_InitIndex (unsigned int low)
 {
-  Indexing_Index i;
+  Indexing_Index__opaque i;
 
   Storage_ALLOCATE ((void **) &i, sizeof (Indexing__T2));
   i->Low = low;
@@ -174,7 +171,7 @@ extern "C" Indexing_Index Indexing_InitIndex (unsigned int low)
   i->Debug = false;
   i->Used = 0;
   i->Map = (unsigned int) 0;
-  return i;
+  return static_cast<Indexing_Index> (i);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -186,9 +183,9 @@ extern "C" Indexing_Index Indexing_InitIndex (unsigned int low)
 
 extern "C" Indexing_Index Indexing_KillIndex (Indexing_Index i)
 {
-  Storage_DEALLOCATE (&i->ArrayStart, i->ArraySize);
+  Storage_DEALLOCATE (&static_cast<Indexing_Index__opaque> (i)->ArrayStart, static_cast<Indexing_Index__opaque> (i)->ArraySize);
   Storage_DEALLOCATE ((void **) &i, sizeof (Indexing__T2));
-  return NULL;
+  return static_cast<Indexing_Index> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -200,7 +197,7 @@ extern "C" Indexing_Index Indexing_KillIndex (Indexing_Index i)
 
 extern "C" Indexing_Index Indexing_DebugIndex (Indexing_Index i)
 {
-  i->Debug = true;
+  static_cast<Indexing_Index__opaque> (i)->Debug = true;
   return i;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -221,7 +218,7 @@ extern "C" bool Indexing_InBounds (Indexing_Index i, unsigned int n)
     }
   else
     {
-      return (n >= i->Low) && (n <= i->High);
+      return (n >= static_cast<Indexing_Index__opaque> (i)->Low) && (n <= static_cast<Indexing_Index__opaque> (i)->High);
     }
   ReturnException ("../../gcc/m2/mc/Indexing.def", 20, 1);
   __builtin_unreachable ();
@@ -241,7 +238,7 @@ extern "C" unsigned int Indexing_HighIndice (Indexing_Index i)
     }
   else
     {
-      return i->High;
+      return static_cast<Indexing_Index__opaque> (i)->High;
     }
   ReturnException ("../../gcc/m2/mc/Indexing.def", 20, 1);
   __builtin_unreachable ();
@@ -261,7 +258,7 @@ extern "C" unsigned int Indexing_LowIndice (Indexing_Index i)
     }
   else
     {
-      return i->Low;
+      return static_cast<Indexing_Index__opaque> (i)->Low;
     }
   ReturnException ("../../gcc/m2/mc/Indexing.def", 20, 1);
   __builtin_unreachable ();
@@ -283,19 +280,19 @@ extern "C" void Indexing_PutIndice (Indexing_Index i, unsigned int n, void * a)
   if (! (Indexing_InBounds (i, n)))
     {
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-      if (n < i->Low)
+      if (n < static_cast<Indexing_Index__opaque> (i)->Low)
         {
           M2RTS_HALT (-1);
           __builtin_unreachable ();
         }
       else
         {
-          oldSize = i->ArraySize;
-          while (((n-i->Low)*sizeof (void *)) >= i->ArraySize)
+          oldSize = static_cast<Indexing_Index__opaque> (i)->ArraySize;
+          while (((n-static_cast<Indexing_Index__opaque> (i)->Low)*sizeof (void *)) >= static_cast<Indexing_Index__opaque> (i)->ArraySize)
             {
-              i->ArraySize = i->ArraySize*2;
+              static_cast<Indexing_Index__opaque> (i)->ArraySize = static_cast<Indexing_Index__opaque> (i)->ArraySize*2;
             }
-          if (oldSize != i->ArraySize)
+          if (oldSize != static_cast<Indexing_Index__opaque> (i)->ArraySize)
             {
               /* 
                IF Debug
@@ -305,25 +302,25 @@ extern "C" void Indexing_PutIndice (Indexing_Index i, unsigned int n, void * a)
                           oldSize, ArraySize)
                END ;
   */
-              Storage_REALLOCATE (&i->ArrayStart, i->ArraySize);
+              Storage_REALLOCATE (&static_cast<Indexing_Index__opaque> (i)->ArrayStart, static_cast<Indexing_Index__opaque> (i)->ArraySize);
               /* and initialize the remainder of the array to NIL  */
-              b = i->ArrayStart;
+              b = static_cast<Indexing_Index__opaque> (i)->ArrayStart;
               b = reinterpret_cast<void *> (reinterpret_cast<char *> (b)+oldSize);
-              b = libc_memset (b, 0, static_cast<size_t> (i->ArraySize-oldSize));
+              b = libc_memset (b, 0, static_cast<size_t> (static_cast<Indexing_Index__opaque> (i)->ArraySize-oldSize));
             }
-          i->High = n;
+          static_cast<Indexing_Index__opaque> (i)->High = n;
         }
     }
-  b = i->ArrayStart;
-  b = reinterpret_cast<void *> (reinterpret_cast<char *> (b)+(n-i->Low)*sizeof (void *));
+  b = static_cast<Indexing_Index__opaque> (i)->ArrayStart;
+  b = reinterpret_cast<void *> (reinterpret_cast<char *> (b)+(n-static_cast<Indexing_Index__opaque> (i)->Low)*sizeof (void *));
   p = static_cast<PutIndice__T1> (b);
-  (*p) = reinterpret_cast<unsigned int *> (a);
-  i->Used += 1;
-  if (i->Debug)
+  (*p) = static_cast<unsigned int *> (a);
+  static_cast<Indexing_Index__opaque> (i)->Used += 1;
+  if (static_cast<Indexing_Index__opaque> (i)->Debug)
     {
       if (n < 32)
         {
-          i->Map |= (1 << (n ));
+          static_cast<Indexing_Index__opaque> (i)->Map |= (1 << (n ));
         }
     }
 }
@@ -343,12 +340,12 @@ extern "C" void * Indexing_GetIndice (Indexing_Index i, unsigned int n)
       M2RTS_HALT (-1);
       __builtin_unreachable ();
     }
-  b = static_cast<Indexing_PtrToByte> (i->ArrayStart);
-  b += (n-i->Low)*sizeof (void *);
+  b = static_cast<Indexing_PtrToByte> (static_cast<Indexing_Index__opaque> (i)->ArrayStart);
+  b += (n-static_cast<Indexing_Index__opaque> (i)->Low)*sizeof (void *);
   p = (Indexing_PtrToAddress) (b);
-  if (i->Debug)
+  if (static_cast<Indexing_Index__opaque> (i)->Debug)
     {
-      if (((n < 32) && (! ((((1 << (n)) & (i->Map)) != 0)))) && ((*p) != NULL))
+      if (((n < 32) && (! ((((1 << (n)) & (static_cast<Indexing_Index__opaque> (i)->Map)) != 0)))) && ((*p) != NULL))
         {
           M2RTS_HALT (-1);
           __builtin_unreachable ();
@@ -370,9 +367,9 @@ extern "C" bool Indexing_IsIndiceInIndex (Indexing_Index i, void * a)
   Indexing_PtrToByte b;
   Indexing_PtrToAddress p;
 
-  j = i->Low;
-  b = static_cast<Indexing_PtrToByte> (i->ArrayStart);
-  while (j <= i->High)
+  j = static_cast<Indexing_Index__opaque> (i)->Low;
+  b = static_cast<Indexing_PtrToByte> (static_cast<Indexing_Index__opaque> (i)->ArrayStart);
+  while (j <= static_cast<Indexing_Index__opaque> (i)->High)
     {
       p = (Indexing_PtrToAddress) (b);
       if ((*p) == a)
@@ -400,9 +397,9 @@ extern "C" void Indexing_RemoveIndiceFromIndex (Indexing_Index i, void * a)
   Indexing_PtrToAddress p;
   Indexing_PtrToByte b;
 
-  j = i->Low;
-  b = static_cast<Indexing_PtrToByte> (i->ArrayStart);
-  while (j <= i->High)
+  j = static_cast<Indexing_Index__opaque> (i)->Low;
+  b = static_cast<Indexing_PtrToByte> (static_cast<Indexing_Index__opaque> (i)->ArrayStart);
+  while (j <= static_cast<Indexing_Index__opaque> (i)->High)
     {
       p = (Indexing_PtrToAddress) (b);
       b += sizeof (void *);
@@ -426,13 +423,13 @@ extern "C" void Indexing_DeleteIndice (Indexing_Index i, unsigned int j)
 
   if (Indexing_InBounds (i, j))
     {
-      b = static_cast<Indexing_PtrToByte> (i->ArrayStart);
-      b += sizeof (void *)*(j-i->Low);
+      b = static_cast<Indexing_PtrToByte> (static_cast<Indexing_Index__opaque> (i)->ArrayStart);
+      b += sizeof (void *)*(j-static_cast<Indexing_Index__opaque> (i)->Low);
       p = (Indexing_PtrToAddress) (b);
       b += sizeof (void *);
-      p = static_cast<Indexing_PtrToAddress> (libc_memmove (reinterpret_cast<void *> (p), reinterpret_cast<void *> (b), static_cast<size_t> ((i->High-j)*sizeof (void *))));
-      i->High -= 1;
-      i->Used -= 1;
+      p = static_cast<Indexing_PtrToAddress> (libc_memmove (reinterpret_cast<void *> (p), reinterpret_cast<void *> (b), static_cast<size_t> ((static_cast<Indexing_Index__opaque> (i)->High-j)*sizeof (void *))));
+      static_cast<Indexing_Index__opaque> (i)->High -= 1;
+      static_cast<Indexing_Index__opaque> (i)->Used -= 1;
     }
   else
     {
@@ -452,7 +449,7 @@ extern "C" void Indexing_IncludeIndiceIntoIndex (Indexing_Index i, void * a)
   if (! (Indexing_IsIndiceInIndex (i, a)))
     {
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-      if (i->Used == 0)
+      if (static_cast<Indexing_Index__opaque> (i)->Used == 0)
         {
           Indexing_PutIndice (i, Indexing_LowIndice (i), a);
         }
@@ -483,10 +480,10 @@ extern "C" void Indexing_ForeachIndiceInIndexDo (Indexing_Index i, Indexing_Inde
     }
 }
 
-extern "C" void _M2_Indexing_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Indexing_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_Indexing_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Indexing_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GM2Dependent.cc b/gcc/m2/mc-boot/GM2Dependent.cc
index bf0daab4563..25b47b35e21 100644
--- a/gcc/m2/mc-boot/GM2Dependent.cc
+++ b/gcc/m2/mc-boot/GM2Dependent.cc
@@ -47,9 +47,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _M2Dependent_H
 #define _M2Dependent_C
 
+#include "GM2Dependent.h"
 #   include "Glibc.h"
 #   include "GASCII.h"
 #   include "GSYSTEM.h"
@@ -76,9 +76,6 @@ typedef struct M2Dependent__T4_a M2Dependent__T4;
 
 typedef enum {M2Dependent_unregistered, M2Dependent_unordered, M2Dependent_started, M2Dependent_ordered, M2Dependent_user} M2Dependent_DependencyState;
 
-typedef void (*M2Dependent_ArgCVEnvP_t) (int, void *, void *);
-struct M2Dependent_ArgCVEnvP_p { M2Dependent_ArgCVEnvP_t proc; };
-
 struct M2Dependent_DependencyList_r {
                                       PROC proc;
                                       bool forced;
@@ -100,8 +97,8 @@ struct M2Dependent__T3_r {
 
 struct M2Dependent__T4_a { M2Dependent_ModuleChain array[M2Dependent_user-M2Dependent_unregistered+1]; };
 struct M2Dependent__T2_r {
-                           void *name;
-                           void *libname;
+                           void * name;
+                           void * libname;
                            M2Dependent_ArgCVEnvP init;
                            M2Dependent_ArgCVEnvP fini;
                            M2Dependent_DependencyList dependency;
@@ -638,11 +635,11 @@ static void toCString (char *str, unsigned int _str_high)
         {
           if (str[i+1] == 'n')
             {
-              str[i] = ASCII_nl;
+              const_cast<char *>(str)[i] = ASCII_nl;
               j = i+1;
               while (j < high)
                 {
-                  str[j] = str[j+1];
+                  const_cast<char *>(str)[j] = str[j+1];
                   j += 1;
                 }
             }
@@ -962,7 +959,7 @@ static void DisplayModuleInfo (M2Dependent_DependencyState state, const char *de
 
   if (Modules.array[state-M2Dependent_unregistered] != NULL)
     {
-      libc_printf ((const char *) "%s modules\\n", 12, &desc);
+      libc_printf ((const char *) "%s modules\\n", 12, const_cast<void*> (static_cast<const void*>(desc)));
       mptr = Modules.array[state-M2Dependent_unregistered];
       count = 0;
       do {
@@ -1211,7 +1208,7 @@ static bool equal (void * cstr, const char *str_, unsigned int _str_high)
   /* make a local copy of each unbounded array.  */
   memcpy (str, str_, _str_high+1);
 
-  return (strncmp (reinterpret_cast<M2Dependent_PtrToChar> (cstr), reinterpret_cast<M2Dependent_PtrToChar> (&str), StrLib_StrLen ((const char *) str, _str_high))) == 0;
+  return (strncmp (reinterpret_cast<M2Dependent_PtrToChar> (cstr), reinterpret_cast<M2Dependent_PtrToChar> (const_cast<void*> (static_cast<const void*>(str))), StrLib_StrLen ((const char *) str, _str_high))) == 0;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1249,7 +1246,7 @@ static void SetupDebugFlags (void)
   ForceTrace = false;
   HexTrace = false;
   WarningTrace = false;
-  pc = static_cast<SetupDebugFlags__T1> (libc_getenv (const_cast<void*> (reinterpret_cast<const void*>("GCC_M2LINK_RTFLAG"))));
+  pc = static_cast<SetupDebugFlags__T1> (libc_getenv (const_cast<void*> (static_cast<const void*>("GCC_M2LINK_RTFLAG"))));
   while ((pc != NULL) && ((*pc) != ASCII_nul))
     {
       if (equal (reinterpret_cast<void *> (pc), (const char *) "all", 3))
@@ -1586,11 +1583,11 @@ extern "C" void M2Dependent_ExecuteTerminationProcedures (void)
   ExecuteReverse (TerminateProc.tail);
 }
 
-extern "C" void _M2_M2Dependent_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_M2Dependent_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   CheckInitialized ();
 }
 
-extern "C" void _M2_M2Dependent_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_M2Dependent_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GM2EXCEPTION.cc b/gcc/m2/mc-boot/GM2EXCEPTION.cc
index 2e268317765..97417cf6c82 100644
--- a/gcc/m2/mc-boot/GM2EXCEPTION.cc
+++ b/gcc/m2/mc-boot/GM2EXCEPTION.cc
@@ -35,14 +35,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   endif
 
 #   include "Gmcrts.h"
-#define _M2EXCEPTION_H
 #define _M2EXCEPTION_C
 
+#include "GM2EXCEPTION.h"
 #   include "GSYSTEM.h"
 #   include "GRTExceptions.h"
 
-typedef enum {M2EXCEPTION_indexException, M2EXCEPTION_rangeException, M2EXCEPTION_caseSelectException, M2EXCEPTION_invalidLocation, M2EXCEPTION_functionException, M2EXCEPTION_wholeValueException, M2EXCEPTION_wholeDivException, M2EXCEPTION_realValueException, M2EXCEPTION_realDivException, M2EXCEPTION_complexValueException, M2EXCEPTION_complexDivException, M2EXCEPTION_protException, M2EXCEPTION_sysException, M2EXCEPTION_coException, M2EXCEPTION_exException} M2EXCEPTION_M2Exceptions;
-
 extern "C" M2EXCEPTION_M2Exceptions M2EXCEPTION_M2Exception (void);
 extern "C" bool M2EXCEPTION_IsM2Exception (void);
 
@@ -58,7 +56,7 @@ extern "C" M2EXCEPTION_M2Exceptions M2EXCEPTION_M2Exception (void)
   n = RTExceptions_GetNumber (e);
   if (n == (UINT_MAX))
     {
-      RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_exException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/M2EXCEPTION.mod")), 47, 6, const_cast<void*> (reinterpret_cast<const void*>("M2Exception")), const_cast<void*> (reinterpret_cast<const void*>("current coroutine is not in the exceptional execution state")));
+      RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_exException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/M2EXCEPTION.mod")), 47, 6, const_cast<void*> (static_cast<const void*>("M2Exception")), const_cast<void*> (static_cast<const void*>("current coroutine is not in the exceptional execution state")));
     }
   else
     {
@@ -80,11 +78,11 @@ extern "C" bool M2EXCEPTION_IsM2Exception (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_M2EXCEPTION_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_M2EXCEPTION_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   RTExceptions_SetExceptionBlock (RTExceptions_InitExceptionBlock ());
 }
 
-extern "C" void _M2_M2EXCEPTION_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_M2EXCEPTION_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GM2RTS.cc b/gcc/m2/mc-boot/GM2RTS.cc
index d529a788007..ef5f7cf5ce1 100644
--- a/gcc/m2/mc-boot/GM2RTS.cc
+++ b/gcc/m2/mc-boot/GM2RTS.cc
@@ -42,9 +42,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #      define FALSE (1==0)
 #   endif
 
-#define _M2RTS_H
 #define _M2RTS_C
 
+#include "GM2RTS.h"
 #   include "Glibc.h"
 #   include "GNumberIO.h"
 #   include "GStrLib.h"
@@ -60,9 +60,6 @@ typedef struct M2RTS_ArgCVEnvP_p M2RTS_ArgCVEnvP;
 #   define stderrFd 2
 typedef char *M2RTS_PtrToChar;
 
-typedef void (*M2RTS_ArgCVEnvP_t) (int, void *, void *);
-struct M2RTS_ArgCVEnvP_p { M2RTS_ArgCVEnvP_t proc; };
-
 static int ExitValue;
 static bool isHalting;
 static bool CallExit;
@@ -257,7 +254,7 @@ static void ErrorString (const char *a_, unsigned int _a_high)
   /* make a local copy of each unbounded array.  */
   memcpy (a, a_, _a_high+1);
 
-  n = static_cast<int> (libc_write (stderrFd, &a, static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
+  n = static_cast<int> (libc_write (stderrFd, const_cast<void*> (static_cast<const void*>(a)), static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
 }
 
 
@@ -712,11 +709,11 @@ extern "C" void M2RTS_NoException (void * filename, unsigned int line, unsigned
   RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_exException)), filename, line, column, scope, message);
 }
 
-extern "C" void _M2_M2RTS_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_M2RTS_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   CheckInitialized ();
 }
 
-extern "C" void _M2_M2RTS_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_M2RTS_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GMemUtils.cc b/gcc/m2/mc-boot/GMemUtils.cc
index 19b5b42f85e..1d9feed27d6 100644
--- a/gcc/m2/mc-boot/GMemUtils.cc
+++ b/gcc/m2/mc-boot/GMemUtils.cc
@@ -34,9 +34,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _MemUtils_H
 #define _MemUtils_C
 
+#include "GMemUtils.h"
 #   include "GSYSTEM.h"
 
 
@@ -118,10 +118,10 @@ extern "C" void MemUtils_MemZero (void * a, unsigned int length)
     }
 }
 
-extern "C" void _M2_MemUtils_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_MemUtils_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_MemUtils_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_MemUtils_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GNumberIO.cc b/gcc/m2/mc-boot/GNumberIO.cc
index 366d30e121b..75720dd85e6 100644
--- a/gcc/m2/mc-boot/GNumberIO.cc
+++ b/gcc/m2/mc-boot/GNumberIO.cc
@@ -42,9 +42,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #      define FALSE (1==0)
 #   endif
 
-#define _NumberIO_H
 #define _NumberIO_C
 
+#include "GNumberIO.h"
 #   include "GASCII.h"
 #   include "GStrIO.h"
 #   include "GStrLib.h"
@@ -172,19 +172,19 @@ extern "C" void NumberIO_CardToStr (unsigned int x, unsigned int n, char *a, uns
   Higha = _a_high;
   while ((n > i) && (j <= Higha))
     {
-      a[j] = ' ';
+      const_cast<char *>(a)[j] = ' ';
       j += 1;
       n -= 1;
     }
   while ((i > 0) && (j <= Higha))
     {
-      a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
+      const_cast<char *>(a)[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
       j += 1;
       i -= 1;
     }
   if (j <= Higha)
     {
-      a[j] = ASCII_nul;
+      const_cast<char *>(a)[j] = ASCII_nul;
     }
 }
 
@@ -270,7 +270,7 @@ extern "C" void NumberIO_HexToStr (unsigned int x, unsigned int n, char *a, unsi
   Higha = _a_high;
   while ((n > i) && (j <= Higha))
     {
-      a[j] = '0';
+      const_cast<char *>(a)[j] = '0';
       j += 1;
       n -= 1;
     }
@@ -278,18 +278,18 @@ extern "C" void NumberIO_HexToStr (unsigned int x, unsigned int n, char *a, unsi
     {
       if (buf.array[i-1] < 10)
         {
-          a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
+          const_cast<char *>(a)[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
         }
       else
         {
-          a[j] = ((char) ((buf.array[i-1]+ ((unsigned int) ('A')))-10));
+          const_cast<char *>(a)[j] = ((char) ((buf.array[i-1]+ ((unsigned int) ('A')))-10));
         }
       j += 1;
       i -= 1;
     }
   if (j <= Higha)
     {
-      a[j] = ASCII_nul;
+      const_cast<char *>(a)[j] = ASCII_nul;
     }
 }
 
@@ -349,24 +349,24 @@ extern "C" void NumberIO_IntToStr (int x, unsigned int n, char *a, unsigned int
   Higha = _a_high;
   while ((n > i) && (j <= Higha))
     {
-      a[j] = ' ';
+      const_cast<char *>(a)[j] = ' ';
       j += 1;
       n -= 1;
     }
   if (Negative)
     {
-      a[j] = '-';
+      const_cast<char *>(a)[j] = '-';
       j += 1;
     }
   while ((i != 0) && (j <= Higha))
     {
-      a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
+      const_cast<char *>(a)[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
       j += 1;
       i -= 1;
     }
   if (j <= Higha)
     {
-      a[j] = ASCII_nul;
+      const_cast<char *>(a)[j] = ASCII_nul;
     }
 }
 
@@ -490,19 +490,19 @@ extern "C" void NumberIO_OctToStr (unsigned int x, unsigned int n, char *a, unsi
   Higha = _a_high;
   while ((n > i) && (j <= Higha))
     {
-      a[j] = ' ';
+      const_cast<char *>(a)[j] = ' ';
       j += 1;
       n -= 1;
     }
   while ((i > 0) && (j <= Higha))
     {
-      a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
+      const_cast<char *>(a)[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
       j += 1;
       i -= 1;
     }
   if (j <= Higha)
     {
-      a[j] = ASCII_nul;
+      const_cast<char *>(a)[j] = ASCII_nul;
     }
 }
 
@@ -567,19 +567,19 @@ extern "C" void NumberIO_BinToStr (unsigned int x, unsigned int n, char *a, unsi
   Higha = _a_high;
   while ((n > i) && (j <= Higha))
     {
-      a[j] = ' ';
+      const_cast<char *>(a)[j] = ' ';
       j += 1;
       n -= 1;
     }
   while ((i > 0) && (j <= Higha))
     {
-      a[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
+      const_cast<char *>(a)[j] = ((char) (buf.array[i-1]+ ((unsigned int) ('0'))));
       j += 1;
       i -= 1;
     }
   if (j <= Higha)
     {
-      a[j] = ASCII_nul;
+      const_cast<char *>(a)[j] = ASCII_nul;
     }
 }
 
@@ -768,10 +768,10 @@ extern "C" void NumberIO_StrToOctInt (const char *a_, unsigned int _a_high, int
     }
 }
 
-extern "C" void _M2_NumberIO_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_NumberIO_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_NumberIO_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_NumberIO_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GPushBackInput.cc b/gcc/m2/mc-boot/GPushBackInput.cc
index 4e0b41e491e..9bc2a83abd4 100644
--- a/gcc/m2/mc-boot/GPushBackInput.cc
+++ b/gcc/m2/mc-boot/GPushBackInput.cc
@@ -42,9 +42,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _PushBackInput_H
 #define _PushBackInput_C
 
+#include "GPushBackInput.h"
 #   include "GFIO.h"
 #   include "GDynamicStrings.h"
 #   include "GASCII.h"
@@ -478,12 +478,12 @@ extern "C" unsigned int PushBackInput_GetCurrentLine (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_PushBackInput_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_PushBackInput_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   PushBackInput_SetDebug (false);
   Init ();
 }
 
-extern "C" void _M2_PushBackInput_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_PushBackInput_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GRTExceptions.cc b/gcc/m2/mc-boot/GRTExceptions.cc
index e7b35cfeed8..a0eff3ecc8a 100644
--- a/gcc/m2/mc-boot/GRTExceptions.cc
+++ b/gcc/m2/mc-boot/GRTExceptions.cc
@@ -47,9 +47,9 @@ extern void throw (unsigned int);
 #   undef NULL
 #   define NULL 0
 #endif
-#define _RTExceptions_H
 #define _RTExceptions_C
 
+#include "GRTExceptions.h"
 #   include "GASCII.h"
 #   include "GStrLib.h"
 #   include "GStorage.h"
@@ -72,17 +72,14 @@ typedef struct RTExceptions__T3_r RTExceptions__T3;
 
 typedef RTExceptions__T3 *RTExceptions_Handler;
 
-typedef RTExceptions__T1 *RTExceptions_EHBlock;
-
-typedef void (*RTExceptions_ProcedureHandler_t) (void);
-struct RTExceptions_ProcedureHandler_p { RTExceptions_ProcedureHandler_t proc; };
+typedef RTExceptions__T1 *RTExceptions_EHBlock__opaque;
 
 struct RTExceptions__T2_a { char array[MaxBuffer+1]; };
 struct RTExceptions__T1_r {
                             RTExceptions__T2 buffer;
                             unsigned int number;
                             RTExceptions_Handler handlers;
-                            RTExceptions_EHBlock right;
+                            RTExceptions_EHBlock__opaque right;
                           };
 
 struct RTExceptions__T3_r {
@@ -95,8 +92,8 @@ struct RTExceptions__T3_r {
 
 static bool inException;
 static RTExceptions_Handler freeHandler;
-static RTExceptions_EHBlock freeEHB;
-static RTExceptions_EHBlock currentEHB;
+static RTExceptions_EHBlock__opaque freeEHB;
+static RTExceptions_EHBlock__opaque currentEHB;
 static void * currentSource;
 
 /*
@@ -233,7 +230,7 @@ static void ErrorString (const char *a_, unsigned int _a_high);
    findHandler -
 */
 
-static RTExceptions_Handler findHandler (RTExceptions_EHBlock e, unsigned int number);
+static RTExceptions_Handler findHandler (RTExceptions_EHBlock__opaque e, unsigned int number);
 
 /*
    InvokeHandler - invokes the associated handler for the current
@@ -286,7 +283,7 @@ static void addNum (unsigned int n, unsigned int *i);
    New - returns a new EHBlock.
 */
 
-static RTExceptions_EHBlock New (void);
+static RTExceptions_EHBlock__opaque New (void);
 
 /*
    NewHandler - returns a new handler.
@@ -322,7 +319,7 @@ static void SubHandler (RTExceptions_Handler h);
    AddHandler - add, e, to the end of the list of handlers.
 */
 
-static void AddHandler (RTExceptions_EHBlock e, RTExceptions_Handler h);
+static void AddHandler (RTExceptions_EHBlock__opaque e, RTExceptions_Handler h);
 
 /*
    indexf - raise an index out of bounds exception.
@@ -439,7 +436,7 @@ static void ErrorString (const char *a_, unsigned int _a_high)
   /* make a local copy of each unbounded array.  */
   memcpy (a, a_, _a_high+1);
 
-  n = static_cast<int> (libc_write (2, &a, static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
+  n = static_cast<int> (libc_write (2, const_cast<void*> (static_cast<const void*>(a)), static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
 }
 
 
@@ -447,7 +444,7 @@ static void ErrorString (const char *a_, unsigned int _a_high)
    findHandler -
 */
 
-static RTExceptions_Handler findHandler (RTExceptions_EHBlock e, unsigned int number)
+static RTExceptions_Handler findHandler (RTExceptions_EHBlock__opaque e, unsigned int number)
 {
   RTExceptions_Handler h;
 
@@ -540,7 +537,7 @@ static void * stripPath (void * s)
           p += 1;
         }
     }
-  return reinterpret_cast<void *> (f);
+  return static_cast<void *> (f);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -605,9 +602,9 @@ static void addNum (unsigned int n, unsigned int *i)
    New - returns a new EHBlock.
 */
 
-static RTExceptions_EHBlock New (void)
+static RTExceptions_EHBlock__opaque New (void)
 {
-  RTExceptions_EHBlock e;
+  RTExceptions_EHBlock__opaque e;
 
   if (freeEHB == NULL)
     {
@@ -707,7 +704,7 @@ static void SubHandler (RTExceptions_Handler h)
    AddHandler - add, e, to the end of the list of handlers.
 */
 
-static void AddHandler (RTExceptions_EHBlock e, RTExceptions_Handler h)
+static void AddHandler (RTExceptions_EHBlock__opaque e, RTExceptions_Handler h)
 {
   h->right = e->handlers;
   h->left = e->handlers->left;
@@ -722,7 +719,7 @@ static void AddHandler (RTExceptions_EHBlock e, RTExceptions_Handler h)
 
 static void indexf (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_indexException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 614, 9, const_cast<void*> (reinterpret_cast<const void*>("indexf")), const_cast<void*> (reinterpret_cast<const void*>("array index out of bounds")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_indexException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 614, 9, const_cast<void*> (static_cast<const void*>("indexf")), const_cast<void*> (static_cast<const void*>("array index out of bounds")));
 }
 
 
@@ -732,7 +729,7 @@ static void indexf (void * a)
 
 static void range (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 626, 9, const_cast<void*> (reinterpret_cast<const void*>("range")), const_cast<void*> (reinterpret_cast<const void*>("assignment out of range")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_rangeException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 626, 9, const_cast<void*> (static_cast<const void*>("range")), const_cast<void*> (static_cast<const void*>("assignment out of range")));
 }
 
 
@@ -742,7 +739,7 @@ static void range (void * a)
 
 static void casef (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_caseSelectException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 638, 9, const_cast<void*> (reinterpret_cast<const void*>("casef")), const_cast<void*> (reinterpret_cast<const void*>("case selector out of range")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_caseSelectException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 638, 9, const_cast<void*> (static_cast<const void*>("casef")), const_cast<void*> (static_cast<const void*>("case selector out of range")));
 }
 
 
@@ -752,7 +749,7 @@ static void casef (void * a)
 
 static void invalidloc (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_invalidLocation)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 650, 9, const_cast<void*> (reinterpret_cast<const void*>("invalidloc")), const_cast<void*> (reinterpret_cast<const void*>("invalid address referenced")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_invalidLocation)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 650, 9, const_cast<void*> (static_cast<const void*>("invalidloc")), const_cast<void*> (static_cast<const void*>("invalid address referenced")));
 }
 
 
@@ -762,7 +759,7 @@ static void invalidloc (void * a)
 
 static void function (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_functionException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 662, 9, const_cast<void*> (reinterpret_cast<const void*>("function")), const_cast<void*> (reinterpret_cast<const void*>("... function ... ")));  /* --fixme-- what has happened ?  */
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_functionException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 662, 9, const_cast<void*> (static_cast<const void*>("function")), const_cast<void*> (static_cast<const void*>("... function ... ")));  /* --fixme-- what has happened ?  */
 }
 
 
@@ -772,7 +769,7 @@ static void function (void * a)
 
 static void wholevalue (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeValueException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 674, 9, const_cast<void*> (reinterpret_cast<const void*>("wholevalue")), const_cast<void*> (reinterpret_cast<const void*>("illegal whole value exception")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeValueException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 674, 9, const_cast<void*> (static_cast<const void*>("wholevalue")), const_cast<void*> (static_cast<const void*>("illegal whole value exception")));
 }
 
 
@@ -782,7 +779,7 @@ static void wholevalue (void * a)
 
 static void wholediv (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeDivException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 686, 9, const_cast<void*> (reinterpret_cast<const void*>("wholediv")), const_cast<void*> (reinterpret_cast<const void*>("illegal whole value exception")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_wholeDivException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 686, 9, const_cast<void*> (static_cast<const void*>("wholediv")), const_cast<void*> (static_cast<const void*>("illegal whole value exception")));
 }
 
 
@@ -792,7 +789,7 @@ static void wholediv (void * a)
 
 static void realvalue (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_realValueException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 698, 9, const_cast<void*> (reinterpret_cast<const void*>("realvalue")), const_cast<void*> (reinterpret_cast<const void*>("illegal real value exception")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_realValueException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 698, 9, const_cast<void*> (static_cast<const void*>("realvalue")), const_cast<void*> (static_cast<const void*>("illegal real value exception")));
 }
 
 
@@ -802,7 +799,7 @@ static void realvalue (void * a)
 
 static void realdiv (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_realDivException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 710, 9, const_cast<void*> (reinterpret_cast<const void*>("realdiv")), const_cast<void*> (reinterpret_cast<const void*>("real number division by zero exception")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_realDivException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 710, 9, const_cast<void*> (static_cast<const void*>("realdiv")), const_cast<void*> (static_cast<const void*>("real number division by zero exception")));
 }
 
 
@@ -812,7 +809,7 @@ static void realdiv (void * a)
 
 static void complexvalue (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_complexValueException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 722, 9, const_cast<void*> (reinterpret_cast<const void*>("complexvalue")), const_cast<void*> (reinterpret_cast<const void*>("illegal complex value exception")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_complexValueException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 722, 9, const_cast<void*> (static_cast<const void*>("complexvalue")), const_cast<void*> (static_cast<const void*>("illegal complex value exception")));
 }
 
 
@@ -822,7 +819,7 @@ static void complexvalue (void * a)
 
 static void complexdiv (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_complexDivException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 734, 9, const_cast<void*> (reinterpret_cast<const void*>("complexdiv")), const_cast<void*> (reinterpret_cast<const void*>("complex number division by zero exception")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_complexDivException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 734, 9, const_cast<void*> (static_cast<const void*>("complexdiv")), const_cast<void*> (static_cast<const void*>("complex number division by zero exception")));
 }
 
 
@@ -832,7 +829,7 @@ static void complexdiv (void * a)
 
 static void protection (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_protException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 746, 9, const_cast<void*> (reinterpret_cast<const void*>("protection")), const_cast<void*> (reinterpret_cast<const void*>("protection exception")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_protException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 746, 9, const_cast<void*> (static_cast<const void*>("protection")), const_cast<void*> (static_cast<const void*>("protection exception")));
 }
 
 
@@ -842,7 +839,7 @@ static void protection (void * a)
 
 static void systemf (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_sysException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 758, 9, const_cast<void*> (reinterpret_cast<const void*>("systemf")), const_cast<void*> (reinterpret_cast<const void*>("system exception")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_sysException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 758, 9, const_cast<void*> (static_cast<const void*>("systemf")), const_cast<void*> (static_cast<const void*>("system exception")));
 }
 
 
@@ -852,7 +849,7 @@ static void systemf (void * a)
 
 static void coroutine (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_coException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 770, 9, const_cast<void*> (reinterpret_cast<const void*>("coroutine")), const_cast<void*> (reinterpret_cast<const void*>("coroutine exception")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_coException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 770, 9, const_cast<void*> (static_cast<const void*>("coroutine")), const_cast<void*> (static_cast<const void*>("coroutine exception")));
 }
 
 
@@ -862,7 +859,7 @@ static void coroutine (void * a)
 
 static void exception (void * a)
 {
-  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_exException)), const_cast<void*> (reinterpret_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 782, 9, const_cast<void*> (reinterpret_cast<const void*>("exception")), const_cast<void*> (reinterpret_cast<const void*>("exception exception")));
+  RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_exException)), const_cast<void*> (static_cast<const void*>("../../gcc/m2/gm2-libs/RTExceptions.mod")), 782, 9, const_cast<void*> (static_cast<const void*>("exception")), const_cast<void*> (static_cast<const void*>("exception exception")));
 }
 
 
@@ -874,8 +871,8 @@ static void Init (void)
 {
   inException = false;
   freeHandler = NULL;
-  freeEHB = NULL;
-  currentEHB = RTExceptions_InitExceptionBlock ();
+  freeEHB = static_cast<RTExceptions_EHBlock__opaque> (NULL);
+  currentEHB = static_cast<RTExceptions_EHBlock__opaque> (RTExceptions_InitExceptionBlock ());
   currentSource = NULL;
   RTExceptions_BaseExceptionsThrow ();
   SysExceptions_InitExceptionHandlers ((SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) indexf}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) range}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) casef}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) invalidloc}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) function}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) wholevalue}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) wholediv}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) realvalue}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) realdiv}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) complexvalue}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) complexdiv}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) protection}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) systemf}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) coroutine}, (SysExceptions_PROCEXCEPTION) {(SysExceptions_PROCEXCEPTION_t) exception});
@@ -889,11 +886,11 @@ static void Init (void)
 static void TidyUp (void)
 {
   RTExceptions_Handler f;
-  RTExceptions_EHBlock e;
+  RTExceptions_EHBlock__opaque e;
 
   if (currentEHB != NULL)
     {
-      currentEHB = RTExceptions_KillExceptionBlock (currentEHB);
+      currentEHB = static_cast<RTExceptions_EHBlock__opaque> (RTExceptions_KillExceptionBlock (static_cast<RTExceptions_EHBlock> (currentEHB)));
     }
   while (freeHandler != NULL)
     {
@@ -953,7 +950,7 @@ extern "C" void RTExceptions_Raise (unsigned int number, void * file, unsigned i
 
 extern "C" void RTExceptions_SetExceptionBlock (RTExceptions_EHBlock source)
 {
-  currentEHB = source;
+  currentEHB = static_cast<RTExceptions_EHBlock__opaque> (source);
 }
 
 
@@ -963,7 +960,7 @@ extern "C" void RTExceptions_SetExceptionBlock (RTExceptions_EHBlock source)
 
 extern "C" RTExceptions_EHBlock RTExceptions_GetExceptionBlock (void)
 {
-  return currentEHB;
+  return static_cast<RTExceptions_EHBlock> (currentEHB);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -975,7 +972,7 @@ extern "C" RTExceptions_EHBlock RTExceptions_GetExceptionBlock (void)
 
 extern "C" void * RTExceptions_GetTextBuffer (RTExceptions_EHBlock e)
 {
-  return &e->buffer;
+  return &static_cast<RTExceptions_EHBlock__opaque> (e)->buffer;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -987,7 +984,7 @@ extern "C" void * RTExceptions_GetTextBuffer (RTExceptions_EHBlock e)
 
 extern "C" unsigned int RTExceptions_GetTextBufferSize (RTExceptions_EHBlock e)
 {
-  return sizeof (e->buffer);
+  return sizeof (static_cast<RTExceptions_EHBlock__opaque> (e)->buffer);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1000,7 +997,7 @@ extern "C" unsigned int RTExceptions_GetTextBufferSize (RTExceptions_EHBlock e)
 
 extern "C" unsigned int RTExceptions_GetNumber (RTExceptions_EHBlock source)
 {
-  return source->number;
+  return static_cast<RTExceptions_EHBlock__opaque> (source)->number;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1012,7 +1009,7 @@ extern "C" unsigned int RTExceptions_GetNumber (RTExceptions_EHBlock source)
 
 extern "C" RTExceptions_EHBlock RTExceptions_InitExceptionBlock (void)
 {
-  RTExceptions_EHBlock e;
+  RTExceptions_EHBlock__opaque e;
 
   e = New ();
   e->number = UINT_MAX;
@@ -1020,7 +1017,7 @@ extern "C" RTExceptions_EHBlock RTExceptions_InitExceptionBlock (void)
   e->handlers->right = e->handlers;  /* add the dummy onto the head  */
   e->handlers->left = e->handlers;
   e->right = e;
-  return e;
+  return static_cast<RTExceptions_EHBlock> (e);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1032,10 +1029,10 @@ extern "C" RTExceptions_EHBlock RTExceptions_InitExceptionBlock (void)
 
 extern "C" RTExceptions_EHBlock RTExceptions_KillExceptionBlock (RTExceptions_EHBlock e)
 {
-  e->handlers = KillHandlers (e->handlers);
-  e->right = freeEHB;
-  freeEHB = e;
-  return NULL;
+  static_cast<RTExceptions_EHBlock__opaque> (e)->handlers = KillHandlers (static_cast<RTExceptions_EHBlock__opaque> (e)->handlers);
+  static_cast<RTExceptions_EHBlock__opaque> (e)->right = freeEHB;
+  freeEHB = static_cast<RTExceptions_EHBlock__opaque> (e);
+  return static_cast<RTExceptions_EHBlock> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1050,7 +1047,7 @@ extern "C" void RTExceptions_PushHandler (RTExceptions_EHBlock e, unsigned int n
   RTExceptions_Handler h;
   RTExceptions_Handler i;
 
-  h = findHandler (e, number);
+  h = findHandler (static_cast<RTExceptions_EHBlock__opaque> (e), number);
   if (h == NULL)
     {
       i = InitHandler (NewHandler (), NULL, NULL, NULL, number, p);
@@ -1063,7 +1060,7 @@ extern "C" void RTExceptions_PushHandler (RTExceptions_EHBlock e, unsigned int n
       i = InitHandler (NewHandler (), NULL, NULL, h, number, p);
     }
   /* add new handler  */
-  AddHandler (e, i);
+  AddHandler (static_cast<RTExceptions_EHBlock__opaque> (e), i);
 }
 
 
@@ -1076,14 +1073,14 @@ extern "C" void RTExceptions_PopHandler (RTExceptions_EHBlock e, unsigned int nu
 {
   RTExceptions_Handler h;
 
-  h = findHandler (e, number);
+  h = findHandler (static_cast<RTExceptions_EHBlock__opaque> (e), number);
   if (h != NULL)
     {
       /* remove, h,  */
       SubHandler (h);
       if (h->stack != NULL)
         {
-          AddHandler (e, h->stack);
+          AddHandler (static_cast<RTExceptions_EHBlock__opaque> (e), h->stack);
         }
       h = KillHandler (h);
     }
@@ -1098,11 +1095,11 @@ extern "C" void RTExceptions_PopHandler (RTExceptions_EHBlock e, unsigned int nu
 
 extern "C" void RTExceptions_DefaultErrorCatch (void)
 {
-  RTExceptions_EHBlock e;
+  RTExceptions_EHBlock__opaque e;
   int n;
 
-  e = RTExceptions_GetExceptionBlock ();
-  n = static_cast<int> (libc_write (2, RTExceptions_GetTextBuffer (e), libc_strlen (RTExceptions_GetTextBuffer (e))));
+  e = static_cast<RTExceptions_EHBlock__opaque> (RTExceptions_GetExceptionBlock ());
+  n = static_cast<int> (libc_write (2, RTExceptions_GetTextBuffer (static_cast<RTExceptions_EHBlock> (e)), libc_strlen (RTExceptions_GetTextBuffer (static_cast<RTExceptions_EHBlock> (e)))));
   M2RTS_HALT (-1);
   __builtin_unreachable ();
 }
@@ -1184,7 +1181,7 @@ extern "C" RTExceptions_EHBlock RTExceptions_GetBaseExceptionBlock (void)
     }
   else
     {
-      return currentEHB;
+      return static_cast<RTExceptions_EHBlock> (currentEHB);
     }
   ReturnException ("../../gcc/m2/gm2-libs/RTExceptions.def", 25, 1);
   __builtin_unreachable ();
@@ -1212,12 +1209,12 @@ extern "C" void * RTExceptions_GetExceptionSource (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_RTExceptions_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_RTExceptions_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   Init ();
 }
 
-extern "C" void _M2_RTExceptions_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_RTExceptions_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   TidyUp ();
 }
diff --git a/gcc/m2/mc-boot/GRTint.cc b/gcc/m2/mc-boot/GRTint.cc
index 236dbf4af65..11b4228074a 100644
--- a/gcc/m2/mc-boot/GRTint.cc
+++ b/gcc/m2/mc-boot/GRTint.cc
@@ -48,9 +48,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _RTint_H
 #define _RTint_C
 
+#include "GRTint.h"
 #   include "GM2RTS.h"
 #   include "GStorage.h"
 #   include "GRTco.h"
@@ -72,13 +72,10 @@ typedef struct RTint__T2_a RTint__T2;
 
 typedef enum {RTint_input, RTint_output, RTint_time} RTint_VectorType;
 
-typedef void (*RTint_DispatchVector_t) (unsigned int, unsigned int, void *);
-struct RTint_DispatchVector_p { RTint_DispatchVector_t proc; };
-
 struct RTint__T1_r {
                      RTint_VectorType type;
                      unsigned int priority;
-                     void *arg;
+                     void * arg;
                      RTint_Vector pending;
                      RTint_Vector exists;
                      unsigned int no;
@@ -354,7 +351,7 @@ static void AddFd (Selective_SetOfFd *set, int *max, int fd)
 {
   if (fd < 0)
     {
-      return ;
+      return;
     }
   (*max) = Max (fd, (*max));
   if ((*set) == NULL)
@@ -1011,7 +1008,7 @@ extern "C" void RTint_Listen (bool untilInterrupt, RTint_DispatchVector call, un
           /* no file descriptors to be selected upon.  */
           timeval = Selective_KillTime (timeval);
           RTco_signal (lock);
-          return ;
+          return;
         }
       else
         {
@@ -1140,11 +1137,11 @@ extern "C" void RTint_Init (void)
     }
 }
 
-extern "C" void _M2_RTint_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_RTint_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   RTint_Init ();
 }
 
-extern "C" void _M2_RTint_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_RTint_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GSArgs.cc b/gcc/m2/mc-boot/GSArgs.cc
index 3424fbcc998..042dbe3fb3f 100644
--- a/gcc/m2/mc-boot/GSArgs.cc
+++ b/gcc/m2/mc-boot/GSArgs.cc
@@ -46,9 +46,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _SArgs_H
 #define _SArgs_C
 
+#include "GSArgs.h"
 #   include "GSYSTEM.h"
 #   include "GUnixArgs.h"
 #   include "GDynamicStrings.h"
@@ -119,10 +119,10 @@ extern "C" unsigned int SArgs_Narg (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_SArgs_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_SArgs_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_SArgs_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_SArgs_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GSFIO.cc b/gcc/m2/mc-boot/GSFIO.cc
index 3c59d50f0d3..b568cce23eb 100644
--- a/gcc/m2/mc-boot/GSFIO.cc
+++ b/gcc/m2/mc-boot/GSFIO.cc
@@ -38,9 +38,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _SFIO_H
 #define _SFIO_C
 
+#include "GSFIO.h"
 #   include "GASCII.h"
 #   include "GDynamicStrings.h"
 #   include "GFIO.h"
@@ -207,10 +207,10 @@ extern "C" DynamicStrings_String SFIO_ReadS (FIO_File file)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_SFIO_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_SFIO_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_SFIO_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_SFIO_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GStdIO.cc b/gcc/m2/mc-boot/GStdIO.cc
index bf25ba25ee3..c9d3774ec06 100644
--- a/gcc/m2/mc-boot/GStdIO.cc
+++ b/gcc/m2/mc-boot/GStdIO.cc
@@ -35,9 +35,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   endif
 
 #   include "Gmcrts.h"
-#define _StdIO_H
 #define _StdIO_C
 
+#include "GStdIO.h"
 #   include "GIO.h"
 #   include "GM2RTS.h"
 
@@ -50,12 +50,6 @@ typedef struct StdIO__T1_a StdIO__T1;
 
 typedef struct StdIO__T2_a StdIO__T2;
 
-typedef void (*StdIO_ProcWrite_t) (char);
-struct StdIO_ProcWrite_p { StdIO_ProcWrite_t proc; };
-
-typedef void (*StdIO_ProcRead_t) (char *);
-struct StdIO_ProcRead_p { StdIO_ProcRead_t proc; };
-
 struct StdIO__T1_a { StdIO_ProcWrite array[MaxStack+1]; };
 struct StdIO__T2_a { StdIO_ProcRead array[MaxStack+1]; };
 static StdIO__T1 StackW;
@@ -257,7 +251,7 @@ extern "C" StdIO_ProcRead StdIO_GetCurrentInput (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_StdIO_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_StdIO_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   StackWPtr = 0;
   StackRPtr = 0;
@@ -265,6 +259,6 @@ extern "C" void _M2_StdIO_init (__attribute__((unused)) int argc,__attribute__((
   StdIO_PushInput ((StdIO_ProcRead) {(StdIO_ProcRead_t) IO_Read});
 }
 
-extern "C" void _M2_StdIO_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_StdIO_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GStorage.cc b/gcc/m2/mc-boot/GStorage.cc
index c5657cf5a07..67e7a8b7274 100644
--- a/gcc/m2/mc-boot/GStorage.cc
+++ b/gcc/m2/mc-boot/GStorage.cc
@@ -34,9 +34,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _Storage_H
 #define _Storage_C
 
+#include "GStorage.h"
 #   include "GSysStorage.h"
 
 extern "C" void Storage_ALLOCATE (void * *a, unsigned int Size);
@@ -66,10 +66,10 @@ extern "C" bool Storage_Available (unsigned int Size)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_Storage_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Storage_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_Storage_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_Storage_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GStrCase.cc b/gcc/m2/mc-boot/GStrCase.cc
index 5e756b1e0e4..9492774596b 100644
--- a/gcc/m2/mc-boot/GStrCase.cc
+++ b/gcc/m2/mc-boot/GStrCase.cc
@@ -34,9 +34,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _StrCase_H
 #define _StrCase_C
 
+#include "GStrCase.h"
 #   include "GASCII.h"
 #   include "GStrLib.h"
 
@@ -92,12 +92,12 @@ extern "C" void StrCase_StrToUpperCase (const char *a_, unsigned int _a_high, ch
   i = 0;
   while (((i < higha) && (a[i] != ASCII_nul)) && (i < highb))
     {
-      b[i] = StrCase_Cap (a[i]);
+      const_cast<char *>(b)[i] = StrCase_Cap (a[i]);
       i += 1;
     }
   if (i < highb)
     {
-      b[i] = ASCII_nul;
+      const_cast<char *>(b)[i] = ASCII_nul;
     }
 }
 
@@ -122,12 +122,12 @@ extern "C" void StrCase_StrToLowerCase (const char *a_, unsigned int _a_high, ch
   i = 0;
   while (((i < higha) && (a[i] != ASCII_nul)) && (i < highb))
     {
-      b[i] = StrCase_Lower (a[i]);
+      const_cast<char *>(b)[i] = StrCase_Lower (a[i]);
       i += 1;
     }
   if (i < highb)
     {
-      b[i] = ASCII_nul;
+      const_cast<char *>(b)[i] = ASCII_nul;
     }
 }
 
@@ -167,10 +167,10 @@ extern "C" char StrCase_Lower (char ch)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_StrCase_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_StrCase_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_StrCase_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_StrCase_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GStrIO.cc b/gcc/m2/mc-boot/GStrIO.cc
index 46e433349bb..d0c6e2085cd 100644
--- a/gcc/m2/mc-boot/GStrIO.cc
+++ b/gcc/m2/mc-boot/GStrIO.cc
@@ -38,9 +38,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #      define FALSE (1==0)
 #   endif
 
-#define _StrIO_H
 #define _StrIO_C
 
+#include "GStrIO.h"
 #   include "GASCII.h"
 #   include "GStdIO.h"
 #   include "Glibc.h"
@@ -204,16 +204,16 @@ extern "C" void StrIO_ReadString (char *a, unsigned int _a_high)
         /* avoid dangling else.  */
         if ((ch == ASCII_cr) || (ch == ASCII_lf))
           {
-            a[n] = ASCII_nul;
+            const_cast<char *>(a)[n] = ASCII_nul;
             n += 1;
           }
         else if (ch == ASCII_ff)
           {
             /* avoid dangling else.  */
-            a[0] = ch;
+            const_cast<char *>(a)[0] = ch;
             if (high > 0)
               {
-                a[1] = ASCII_nul;
+                const_cast<char *>(a)[1] = ASCII_nul;
               }
             ch = ASCII_cr;
           }
@@ -221,18 +221,18 @@ extern "C" void StrIO_ReadString (char *a, unsigned int _a_high)
           {
             /* avoid dangling else.  */
             Echo (ch);
-            a[n] = ch;
+            const_cast<char *>(a)[n] = ch;
             n += 1;
           }
         else if (ch == ASCII_eof)
           {
             /* avoid dangling else.  */
-            a[n] = ch;
+            const_cast<char *>(a)[n] = ch;
             n += 1;
             ch = ASCII_cr;
             if (n <= high)
               {
-                a[n] = ASCII_nul;
+                const_cast<char *>(a)[n] = ASCII_nul;
               }
           }
       }
@@ -267,12 +267,12 @@ extern "C" void StrIO_WriteString (const char *a_, unsigned int _a_high)
     }
 }
 
-extern "C" void _M2_StrIO_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_StrIO_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   /* IsATTY := isatty()  */
   IsATTY = false;
 }
 
-extern "C" void _M2_StrIO_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_StrIO_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GStrLib.cc b/gcc/m2/mc-boot/GStrLib.cc
index 8e976b9056d..dc6d0ff2aa0 100644
--- a/gcc/m2/mc-boot/GStrLib.cc
+++ b/gcc/m2/mc-boot/GStrLib.cc
@@ -42,9 +42,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #      define FALSE (1==0)
 #   endif
 
-#define _StrLib_H
 #define _StrLib_C
 
+#include "GStrLib.h"
 #   include "GASCII.h"
 
 
@@ -127,13 +127,13 @@ extern "C" void StrLib_StrConCat (const char *a_, unsigned int _a_high, const ch
   j = 0;
   while ((j < Highb) && (i <= Highc))
     {
-      c[i] = b[j];
+      const_cast<char *>(c)[i] = b[j];
       i += 1;
       j += 1;
     }
   if (i <= Highc)
     {
-      c[i] = ASCII_nul;
+      const_cast<char *>(c)[i] = ASCII_nul;
     }
 }
 
@@ -247,12 +247,12 @@ extern "C" void StrLib_StrCopy (const char *src_, unsigned int _src_high, char *
   HighDest = _dest_high;
   while ((n < HighSrc) && (n <= HighDest))
     {
-      dest[n] = src[n];
+      const_cast<char *>(dest)[n] = src[n];
       n += 1;
     }
   if (n <= HighDest)
     {
-      dest[n] = ASCII_nul;
+      const_cast<char *>(dest)[n] = ASCII_nul;
     }
 }
 
@@ -328,20 +328,20 @@ extern "C" void StrLib_StrRemoveWhitePrefix (const char *a_, unsigned int _a_hig
     }
   while ((i < higha) && (j <= highb))
     {
-      b[j] = a[i];
+      const_cast<char *>(b)[j] = a[i];
       i += 1;
       j += 1;
     }
   if (j <= highb)
     {
-      b[j] = ASCII_nul;
+      const_cast<char *>(b)[j] = ASCII_nul;
     }
 }
 
-extern "C" void _M2_StrLib_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_StrLib_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_StrLib_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_StrLib_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GStringConvert.cc b/gcc/m2/mc-boot/GStringConvert.cc
index 5d07bd133ba..5ab4b00a2b7 100644
--- a/gcc/m2/mc-boot/GStringConvert.cc
+++ b/gcc/m2/mc-boot/GStringConvert.cc
@@ -46,9 +46,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _StringConvert_H
 #define _StringConvert_C
 
+#include "GStringConvert.h"
 #   include "GSYSTEM.h"
 #   include "Glibc.h"
 #   include "Glibm.h"
@@ -1995,10 +1995,10 @@ extern "C" DynamicStrings_String StringConvert_ToDecimalPlaces (DynamicStrings_S
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_StringConvert_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_StringConvert_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_StringConvert_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_StringConvert_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GSysStorage.cc b/gcc/m2/mc-boot/GSysStorage.cc
index d1d958df779..1ef723074d4 100644
--- a/gcc/m2/mc-boot/GSysStorage.cc
+++ b/gcc/m2/mc-boot/GSysStorage.cc
@@ -46,9 +46,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _SysStorage_H
 #define _SysStorage_C
 
+#include "GSysStorage.h"
 #   include "Glibc.h"
 #   include "GDebug.h"
 #   include "GSYSTEM.h"
@@ -224,12 +224,12 @@ extern "C" void SysStorage_Init (void)
 {
 }
 
-extern "C" void _M2_SysStorage_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_SysStorage_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   callno = 0;
   if (enableTrace)
     {
-      trace = (libc_getenv (const_cast<void*> (reinterpret_cast<const void*>("M2DEBUG_SYSSTORAGE_trace")))) != NULL;
+      trace = (libc_getenv (const_cast<void*> (static_cast<const void*>("M2DEBUG_SYSSTORAGE_trace")))) != NULL;
     }
   else
     {
@@ -237,7 +237,7 @@ extern "C" void _M2_SysStorage_init (__attribute__((unused)) int argc,__attribut
     }
   if (enableZero)
     {
-      zero = (libc_getenv (const_cast<void*> (reinterpret_cast<const void*>("M2DEBUG_SYSSTORAGE_zero")))) != NULL;
+      zero = (libc_getenv (const_cast<void*> (static_cast<const void*>("M2DEBUG_SYSSTORAGE_zero")))) != NULL;
     }
   else
     {
@@ -245,6 +245,6 @@ extern "C" void _M2_SysStorage_init (__attribute__((unused)) int argc,__attribut
     }
 }
 
-extern "C" void _M2_SysStorage_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_SysStorage_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GTimeString.cc b/gcc/m2/mc-boot/GTimeString.cc
index 66b15233df9..af7b7e40814 100644
--- a/gcc/m2/mc-boot/GTimeString.cc
+++ b/gcc/m2/mc-boot/GTimeString.cc
@@ -38,9 +38,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _TimeString_H
 #define _TimeString_C
 
+#include "GTimeString.h"
 #   include "Gwrapc.h"
 #   include "GASCII.h"
 #   include "GSYSTEM.h"
@@ -72,21 +72,21 @@ extern "C" void TimeString_GetTimeString (char *a, unsigned int _a_high)
     {
       while ((i < _a_high) && ((*Addr) != ASCII_nul))
         {
-          a[i] = (*Addr);
+          const_cast<char *>(a)[i] = (*Addr);
           i += 1;
           Addr += 1;
         }
     }
   if (i < _a_high)
     {
-      a[i] = ASCII_nul;
+      const_cast<char *>(a)[i] = ASCII_nul;
     }
 }
 
-extern "C" void _M2_TimeString_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_TimeString_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_TimeString_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_TimeString_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Galists.cc b/gcc/m2/mc-boot/Galists.cc
index 238bcc87d50..ca582f3ce43 100644
--- a/gcc/m2/mc-boot/Galists.cc
+++ b/gcc/m2/mc-boot/Galists.cc
@@ -42,9 +42,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _alists_H
 #define _alists_C
 
+#include "Galists.h"
 #   include "GStorage.h"
 
 typedef struct alists_performOperation_p alists_performOperation;
@@ -54,16 +54,13 @@ typedef struct alists__T1_r alists__T1;
 
 typedef struct alists__T2_a alists__T2;
 
-typedef alists__T1 *alists_alist;
-
-typedef void (*alists_performOperation_t) (void *);
-struct alists_performOperation_p { alists_performOperation_t proc; };
+typedef alists__T1 *alists_alist__opaque;
 
 struct alists__T2_a { void * array[MaxnoOfelements-1+1]; };
 struct alists__T1_r {
                       unsigned int noOfelements;
                       alists__T2 elements;
-                      alists_alist next;
+                      alists_alist__opaque next;
                     };
 
 
@@ -147,14 +144,14 @@ extern "C" bool alists_equalList (alists_alist left, alists_alist right);
    removeItem - remove an element at index, i, from the alist data type.
 */
 
-static void removeItem (alists_alist p, alists_alist l, unsigned int i);
+static void removeItem (alists_alist__opaque p, alists_alist__opaque l, unsigned int i);
 
 
 /*
    removeItem - remove an element at index, i, from the alist data type.
 */
 
-static void removeItem (alists_alist p, alists_alist l, unsigned int i)
+static void removeItem (alists_alist__opaque p, alists_alist__opaque l, unsigned int i)
 {
   l->noOfelements -= 1;
   while (i <= l->noOfelements)
@@ -176,12 +173,12 @@ static void removeItem (alists_alist p, alists_alist l, unsigned int i)
 
 extern "C" alists_alist alists_initList (void)
 {
-  alists_alist l;
+  alists_alist__opaque l;
 
   Storage_ALLOCATE ((void **) &l, sizeof (alists__T1));
   l->noOfelements = 0;
-  l->next = NULL;
-  return l;
+  l->next = static_cast<alists_alist__opaque> (NULL);
+  return static_cast<alists_alist> (l);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -195,9 +192,9 @@ extern "C" void alists_killList (alists_alist *l)
 {
   if ((*l) != NULL)
     {
-      if ((*l)->next != NULL)
+      if (static_cast<alists_alist__opaque> ((*l))->next != NULL)
         {
-          alists_killList (&(*l)->next);
+          alists_killList (reinterpret_cast<alists_alist *> (&static_cast<alists_alist__opaque> ((*l))->next));
         }
       Storage_DEALLOCATE ((void **) &(*l), sizeof (alists__T1));
     }
@@ -210,21 +207,21 @@ extern "C" void alists_killList (alists_alist *l)
 
 extern "C" void alists_putItemIntoList (alists_alist l, void * c)
 {
-  if (l->noOfelements < MaxnoOfelements)
+  if (static_cast<alists_alist__opaque> (l)->noOfelements < MaxnoOfelements)
     {
-      l->noOfelements += 1;
-      l->elements.array[l->noOfelements-1] = c;
+      static_cast<alists_alist__opaque> (l)->noOfelements += 1;
+      static_cast<alists_alist__opaque> (l)->elements.array[static_cast<alists_alist__opaque> (l)->noOfelements-1] = c;
     }
-  else if (l->next != NULL)
+  else if (static_cast<alists_alist__opaque> (l)->next != NULL)
     {
       /* avoid dangling else.  */
-      alists_putItemIntoList (l->next, c);
+      alists_putItemIntoList (static_cast<alists_alist> (static_cast<alists_alist__opaque> (l)->next), c);
     }
   else
     {
       /* avoid dangling else.  */
-      l->next = alists_initList ();
-      alists_putItemIntoList (l->next, c);
+      static_cast<alists_alist__opaque> (l)->next = static_cast<alists_alist__opaque> (alists_initList ());
+      alists_putItemIntoList (static_cast<alists_alist> (static_cast<alists_alist__opaque> (l)->next), c);
     }
 }
 
@@ -237,17 +234,17 @@ extern "C" void * alists_getItemFromList (alists_alist l, unsigned int n)
 {
   while (l != NULL)
     {
-      if (n <= l->noOfelements)
+      if (n <= static_cast<alists_alist__opaque> (l)->noOfelements)
         {
-          return l->elements.array[n-1];
+          return static_cast<alists_alist__opaque> (l)->elements.array[n-1];
         }
       else
         {
-          n -= l->noOfelements;
+          n -= static_cast<alists_alist__opaque> (l)->noOfelements;
         }
-      l = l->next;
+      l = static_cast<alists_alist> (static_cast<alists_alist__opaque> (l)->next);
     }
-  return reinterpret_cast<void *> (0);
+  return static_cast<void *> (0);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -270,9 +267,9 @@ extern "C" unsigned int alists_getIndexOfList (alists_alist l, void * c)
   else
     {
       i = 1;
-      while (i <= l->noOfelements)
+      while (i <= static_cast<alists_alist__opaque> (l)->noOfelements)
         {
-          if (l->elements.array[i-1] == c)
+          if (static_cast<alists_alist__opaque> (l)->elements.array[i-1] == c)
             {
               return i;
             }
@@ -281,7 +278,7 @@ extern "C" unsigned int alists_getIndexOfList (alists_alist l, void * c)
               i += 1;
             }
         }
-      return l->noOfelements+(alists_getIndexOfList (l->next, c));
+      return static_cast<alists_alist__opaque> (l)->noOfelements+(alists_getIndexOfList (static_cast<alists_alist> (static_cast<alists_alist__opaque> (l)->next), c));
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -304,8 +301,8 @@ extern "C" unsigned int alists_noOfItemsInList (alists_alist l)
     {
       t = 0;
       do {
-        t += l->noOfelements;
-        l = l->next;
+        t += static_cast<alists_alist__opaque> (l)->noOfelements;
+        l = static_cast<alists_alist> (static_cast<alists_alist__opaque> (l)->next);
       } while (! (l == NULL));
       return t;
     }
@@ -335,33 +332,33 @@ extern "C" void alists_includeItemIntoList (alists_alist l, void * c)
 
 extern "C" void alists_removeItemFromList (alists_alist l, void * c)
 {
-  alists_alist p;
+  alists_alist__opaque p;
   unsigned int i;
   bool found;
 
   if (l != NULL)
     {
       found = false;
-      p = NULL;
+      p = static_cast<alists_alist__opaque> (NULL);
       do {
         i = 1;
-        while ((i <= l->noOfelements) && (l->elements.array[i-1] != c))
+        while ((i <= static_cast<alists_alist__opaque> (l)->noOfelements) && (static_cast<alists_alist__opaque> (l)->elements.array[i-1] != c))
           {
             i += 1;
           }
-        if ((i <= l->noOfelements) && (l->elements.array[i-1] == c))
+        if ((i <= static_cast<alists_alist__opaque> (l)->noOfelements) && (static_cast<alists_alist__opaque> (l)->elements.array[i-1] == c))
           {
             found = true;
           }
         else
           {
-            p = l;
-            l = l->next;
+            p = static_cast<alists_alist__opaque> (l);
+            l = static_cast<alists_alist> (static_cast<alists_alist__opaque> (l)->next);
           }
       } while (! ((l == NULL) || found));
       if (found)
         {
-          removeItem (p, l, i);
+          removeItem (p, static_cast<alists_alist__opaque> (l), i);
         }
     }
 }
@@ -377,9 +374,9 @@ extern "C" bool alists_isItemInList (alists_alist l, void * c)
 
   do {
     i = 1;
-    while (i <= l->noOfelements)
+    while (i <= static_cast<alists_alist__opaque> (l)->noOfelements)
       {
-        if (l->elements.array[i-1] == c)
+        if (static_cast<alists_alist__opaque> (l)->elements.array[i-1] == c)
           {
             return true;
           }
@@ -388,7 +385,7 @@ extern "C" bool alists_isItemInList (alists_alist l, void * c)
             i += 1;
           }
       }
-    l = l->next;
+    l = static_cast<alists_alist> (static_cast<alists_alist__opaque> (l)->next);
   } while (! (l == NULL));
   return false;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -421,19 +418,19 @@ extern "C" void alists_foreachItemInListDo (alists_alist l, alists_performOperat
 
 extern "C" alists_alist alists_duplicateList (alists_alist l)
 {
-  alists_alist m;
+  alists_alist__opaque m;
   unsigned int n;
   unsigned int i;
 
-  m = alists_initList ();
+  m = static_cast<alists_alist__opaque> (alists_initList ());
   n = alists_noOfItemsInList (l);
   i = 1;
   while (i <= n)
     {
-      alists_putItemIntoList (m, alists_getItemFromList (l, i));
+      alists_putItemIntoList (static_cast<alists_alist> (m), alists_getItemFromList (l, i));
       i += 1;
     }
-  return m;
+  return static_cast<alists_alist> (m);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -475,10 +472,10 @@ extern "C" bool alists_equalList (alists_alist left, alists_alist right)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_alists_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_alists_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_alists_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_alists_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Gdecl.cc b/gcc/m2/mc-boot/Gdecl.cc
index bd43faebeac..183d671c8b3 100644
--- a/gcc/m2/mc-boot/Gdecl.cc
+++ b/gcc/m2/mc-boot/Gdecl.cc
@@ -43,99 +43,36 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   undef NULL
 #   define NULL 0
 #endif
-typedef unsigned int nameKey_Name;
+#define _decl_C
 
-#   define nameKey_NulName 0
-typedef struct symbolKey__T8_r symbolKey__T8;
-
-typedef symbolKey__T8 *symbolKey_symbolTree;
-
-typedef struct mcPretty_writeProc_p mcPretty_writeProc;
-
-typedef struct mcPretty_writeLnProc_p mcPretty_writeLnProc;
-
-typedef unsigned int FIO_File;
-
-extern FIO_File FIO_StdOut;
-#   define symbolKey_NulKey NULL
-typedef struct symbolKey_performOperation_p symbolKey_performOperation;
-
-#   define ASCII_tab ASCII_ht
-#   define ASCII_ht (char) 011
-#   define ASCII_lf ASCII_nl
-#   define ASCII_nl (char) 012
-typedef struct Indexing_IndexProcedure_p Indexing_IndexProcedure;
+#include "Gdecl.h"
+#   include "GASCII.h"
+#   include "GsymbolKey.h"
+#   include "GmcDebug.h"
+#   include "GStorage.h"
+#   include "GnameKey.h"
+#   include "GSFIO.h"
+#   include "GFIO.h"
+#   include "GDynamicStrings.h"
+#   include "GStringConvert.h"
+#   include "GmcOptions.h"
+#   include "GFormatStrings.h"
+#   include "Glibc.h"
+#   include "GmcMetaError.h"
+#   include "GmcError.h"
+#   include "GmcLexBuf.h"
+#   include "GmcComment.h"
+#   include "GStrLib.h"
+#   include "GmcPretty.h"
+#   include "GIndexing.h"
+#   include "Galists.h"
+#   include "Gwlists.h"
+#   include "Gkeyc.h"
+#   include "GmcStream.h"
+#   include "GM2RTS.h"
 
 typedef struct decl_isNodeF_p decl_isNodeF;
 
-#   define SYSTEM_BITSPERBYTE 8
-#   define SYSTEM_BYTESPERWORD 4
-typedef struct M2RTS_ArgCVEnvP_p M2RTS_ArgCVEnvP;
-
-typedef struct symbolKey_isSymbol_p symbolKey_isSymbol;
-
-#   define ASCII_nul (char) 000
-#   define ASCII_soh (char) 001
-#   define ASCII_stx (char) 002
-#   define ASCII_etx (char) 003
-#   define ASCII_eot (char) 004
-#   define ASCII_enq (char) 005
-#   define ASCII_ack (char) 006
-#   define ASCII_bel (char) 007
-#   define ASCII_bs (char) 010
-#   define ASCII_vt (char) 013
-#   define ASCII_np (char) 014
-#   define ASCII_cr (char) 015
-#   define ASCII_so (char) 016
-#   define ASCII_si (char) 017
-#   define ASCII_dle (char) 020
-#   define ASCII_dc1 (char) 021
-#   define ASCII_dc2 (char) 022
-#   define ASCII_dc3 (char) 023
-#   define ASCII_dc4 (char) 024
-#   define ASCII_nak (char) 025
-#   define ASCII_syn (char) 026
-#   define ASCII_etb (char) 027
-#   define ASCII_can (char) 030
-#   define ASCII_em (char) 031
-#   define ASCII_sub (char) 032
-#   define ASCII_esc (char) 033
-#   define ASCII_fs (char) 034
-#   define ASCII_gs (char) 035
-#   define ASCII_rs (char) 036
-#   define ASCII_us (char) 037
-#   define ASCII_sp (char) 040
-#   define ASCII_ff ASCII_np
-#   define ASCII_eof ASCII_eot
-#   define ASCII_del (char) 0177
-#   define ASCII_EOL ASCII_nl
-extern FIO_File FIO_StdErr;
-extern FIO_File FIO_StdIn;
-typedef long int libc_time_t;
-
-typedef struct libc_tm_r libc_tm;
-
-typedef libc_tm *libc_ptrToTM;
-
-typedef struct libc_timeb_r libc_timeb;
-
-typedef struct libc_exitP_p libc_exitP;
-
-typedef struct mcError__T11_r mcError__T11;
-
-typedef mcError__T11 *mcError_error;
-
-extern int mcLexBuf_currentinteger;
-extern unsigned int mcLexBuf_currentcolumn;
-extern void * mcLexBuf_currentstring;
-typedef struct alists_performOperation_p alists_performOperation;
-
-typedef struct wlists_performOperation_p wlists_performOperation;
-
-typedef struct StdIO_ProcWrite_p StdIO_ProcWrite;
-
-typedef struct StdIO_ProcRead_p StdIO_ProcRead;
-
 #   define indentation 3
 #   define indentationC 2
 #   define debugScopes false
@@ -146,8 +83,13 @@ typedef struct StdIO_ProcRead_p StdIO_ProcRead;
 #   define enableDefForCStrings false
 #   define enableMemsetOnAllocation true
 #   define forceQualified true
+#   define debugOpaque false
 typedef struct decl_nodeRec_r decl_nodeRec;
 
+typedef struct decl_opaqueCastState_r decl_opaqueCastState;
+
+typedef struct decl_opaquecastT_r decl_opaquecastT;
+
 typedef struct decl_intrinsicT_r decl_intrinsicT;
 
 typedef struct decl_fixupInfo_r decl_fixupInfo;
@@ -264,136 +206,24 @@ typedef struct decl_nodeProcedure_p decl_nodeProcedure;
 
 typedef struct decl_cnameT_r decl_cnameT;
 
-typedef struct decl__T15_r decl__T15;
+typedef struct decl__T1_r decl__T1;
 
-typedef decl__T15 *decl_group;
+typedef decl__T1 *decl_group;
 
-#   define MaxBuf 127
-#   define maxNoOfElements 5
-typedef enum {decl_explist, decl_funccall, decl_exit, decl_return, decl_stmtseq, decl_comment, decl_halt, decl_new, decl_dispose, decl_inc, decl_dec, decl_incl, decl_excl, decl_length, decl_nil, decl_true, decl_false, decl_address, decl_loc, decl_byte, decl_word, decl_csizet, decl_cssizet, decl_char, decl_cardinal, decl_longcard, decl_shortcard, decl_integer, decl_longint, decl_shortint, decl_real, decl_longreal, decl_shortreal, decl_bitset, decl_boolean, decl_proc, decl_ztype, decl_rtype, decl_complex, decl_longcomplex, decl_shortcomplex, decl_type, decl_record, decl_varient, decl_var, decl_enumeration, decl_subrange, decl_array, decl_subscript, decl_string, decl_const, decl_literal, decl_varparam, decl_param, decl_varargs, decl_optarg, decl_pointer, decl_recordfield, decl_varientfield, decl_enumerationfield, decl_set, decl_proctype, decl_procedure, decl_def, decl_imp, decl_module, decl_loop, decl_while, decl_for, decl_repeat, decl_case, decl_caselabellist, decl_caselist, decl_range, decl_assignment, decl_if, decl_elsif, decl_constexp, decl_neg, decl_cast, decl_val, decl_plus, decl_sub, decl_div, decl_mod, decl_mult, decl_divide, decl_in, decl_adr, decl_size, decl_tsize, decl_ord, decl_float, decl_trunc, decl_chr, decl_abs, decl_cap, decl_high, decl_throw, decl_unreachable, decl_cmplx, decl_re, decl_im, decl_min, decl_max, decl_componentref, decl_pointerref, decl_arrayref, decl_deref, decl_equal, decl_notequal, decl_less, decl_greater, decl_greequal, decl_lessequal, decl_lsl, decl_lsr, decl_lor, decl_land, decl_lnot, decl_lxor, decl_and, decl_or, decl_not, decl_identlist, decl_vardecl, decl_setvalue} decl_nodeT;
+typedef enum {decl_explist, decl_funccall, decl_exit, decl_return, decl_stmtseq, decl_comment, decl_halt, decl_new, decl_dispose, decl_inc, decl_dec, decl_incl, decl_excl, decl_length, decl_nil, decl_true, decl_false, decl_address, decl_loc, decl_byte, decl_word, decl_csizet, decl_cssizet, decl_char, decl_cardinal, decl_longcard, decl_shortcard, decl_integer, decl_longint, decl_shortint, decl_real, decl_longreal, decl_shortreal, decl_bitset, decl_boolean, decl_proc, decl_ztype, decl_rtype, decl_complex, decl_longcomplex, decl_shortcomplex, decl_type, decl_record, decl_varient, decl_var, decl_enumeration, decl_subrange, decl_array, decl_subscript, decl_string, decl_const, decl_literal, decl_varparam, decl_param, decl_varargs, decl_optarg, decl_pointer, decl_recordfield, decl_varientfield, decl_enumerationfield, decl_set, decl_proctype, decl_procedure, decl_def, decl_imp, decl_module, decl_loop, decl_while, decl_for, decl_repeat, decl_case, decl_caselabellist, decl_caselist, decl_range, decl_assignment, decl_if, decl_elsif, decl_constexp, decl_neg, decl_cast, decl_val, decl_plus, decl_sub, decl_div, decl_mod, decl_mult, decl_divide, decl_in, decl_adr, decl_size, decl_tsize, decl_ord, decl_float, decl_trunc, decl_chr, decl_abs, decl_cap, decl_high, decl_throw, decl_unreachable, decl_cmplx, decl_re, decl_im, decl_min, decl_max, decl_componentref, decl_pointerref, decl_arrayref, decl_deref, decl_equal, decl_notequal, decl_less, decl_greater, decl_greequal, decl_lessequal, decl_lsl, decl_lsr, decl_lor, decl_land, decl_lnot, decl_lxor, decl_and, decl_or, decl_not, decl_identlist, decl_vardecl, decl_setvalue, decl_opaquecast} decl_nodeT;
 
-#   define MaxnoOfelements 5
-typedef enum {mcReserved_eoftok, mcReserved_plustok, mcReserved_minustok, mcReserved_timestok, mcReserved_dividetok, mcReserved_becomestok, mcReserved_ambersandtok, mcReserved_periodtok, mcReserved_commatok, mcReserved_semicolontok, mcReserved_lparatok, mcReserved_rparatok, mcReserved_lsbratok, mcReserved_rsbratok, mcReserved_lcbratok, mcReserved_rcbratok, mcReserved_uparrowtok, mcReserved_singlequotetok, mcReserved_equaltok, mcReserved_hashtok, mcReserved_lesstok, mcReserved_greatertok, mcReserved_lessgreatertok, mcReserved_lessequaltok, mcReserved_greaterequaltok, mcReserved_ldirectivetok, mcReserved_rdirectivetok, mcReserved_periodperiodtok, mcReserved_colontok, mcReserved_doublequotestok, mcReserved_bartok, mcReserved_andtok, mcReserved_arraytok, mcReserved_begintok, mcReserved_bytok, mcReserved_casetok, mcReserved_consttok, mcReserved_definitiontok, mcReserved_divtok, mcReserved_dotok, mcReserved_elsetok, mcReserved_elsiftok, mcReserved_endtok, mcReserved_excepttok, mcReserved_exittok, mcReserved_exporttok, mcReserved_finallytok, mcReserved_fortok, mcReserved_fromtok, mcReserved_iftok, mcReserved_implementationtok, mcReserved_importtok, mcReserved_intok, mcReserved_looptok, mcReserved_modtok, mcReserved_moduletok, mcReserved_nottok, mcReserved_oftok, mcReserved_ortok, mcReserved_packedsettok, mcReserved_pointertok, mcReserved_proceduretok, mcReserved_qualifiedtok, mcReserved_unqualifiedtok, mcReserved_recordtok, mcReserved_remtok, mcReserved_repeattok, mcReserved_retrytok, mcReserved_returntok, mcReserved_settok, mcReserved_thentok, mcReserved_totok, mcReserved_typetok, mcReserved_untiltok, mcReserved_vartok, mcReserved_whiletok, mcReserved_withtok, mcReserved_asmtok, mcReserved_volatiletok, mcReserved_periodperiodperiodtok, mcReserved_datetok, mcReserved_linetok, mcReserved_filetok, mcReserved_attributetok, mcReserved_builtintok, mcReserved_inlinetok, mcReserved_integertok, mcReserved_identtok, mcReserved_realtok, mcReserved_stringtok, mcReserved_commenttok} mcReserved_toktype;
-
-extern mcReserved_toktype mcLexBuf_currenttoken;
 typedef enum {decl_ansiC, decl_ansiCP, decl_pim4} decl_language;
 
 typedef enum {decl_completed, decl_blocked, decl_partial, decl_recursive} decl_dependentState;
 
 typedef enum {decl_text, decl_punct, decl_space} decl_outputStates;
 
-typedef decl_nodeRec *decl_node;
-
-typedef struct Indexing__T5_r Indexing__T5;
-
-typedef struct mcComment__T6_r mcComment__T6;
-
-typedef enum {mcComment_unknown, mcComment_procedureHeading, mcComment_inBody, mcComment_afterStatement} mcComment_commentType;
-
-typedef struct DynamicStrings_stringRecord_r DynamicStrings_stringRecord;
-
-typedef struct DynamicStrings_Contents_r DynamicStrings_Contents;
-
-typedef struct wlists__T9_r wlists__T9;
-
-typedef struct alists__T13_r alists__T13;
-
-typedef struct mcPretty__T12_r mcPretty__T12;
-
-typedef struct wlists__T10_a wlists__T10;
-
-typedef Indexing__T5 *Indexing_Index;
-
-typedef struct DynamicStrings__T7_a DynamicStrings__T7;
-
-typedef struct alists__T14_a alists__T14;
-
-typedef mcComment__T6 *mcComment_commentDesc;
-
-extern mcComment_commentDesc mcLexBuf_currentcomment;
-extern mcComment_commentDesc mcLexBuf_lastcomment;
-typedef DynamicStrings_stringRecord *DynamicStrings_String;
-
-typedef wlists__T9 *wlists_wlist;
-
-typedef alists__T13 *alists_alist;
-
-typedef mcPretty__T12 *mcPretty_pretty;
-
-struct symbolKey__T8_r {
-                         nameKey_Name name;
-                         void *key;
-                         symbolKey_symbolTree left;
-                         symbolKey_symbolTree right;
-                       };
-
-typedef void (*mcPretty_writeProc_t) (char);
-struct mcPretty_writeProc_p { mcPretty_writeProc_t proc; };
-
-typedef void (*mcPretty_writeLnProc_t) (void);
-struct mcPretty_writeLnProc_p { mcPretty_writeLnProc_t proc; };
-
-typedef void (*symbolKey_performOperation_t) (void *);
-struct symbolKey_performOperation_p { symbolKey_performOperation_t proc; };
-
-typedef void (*Indexing_IndexProcedure_t) (void *);
-struct Indexing_IndexProcedure_p { Indexing_IndexProcedure_t proc; };
-
-typedef bool (*decl_isNodeF_t) (decl_node);
-struct decl_isNodeF_p { decl_isNodeF_t proc; };
-
-typedef void (*M2RTS_ArgCVEnvP_t) (int, void *, void *);
-struct M2RTS_ArgCVEnvP_p { M2RTS_ArgCVEnvP_t proc; };
-
-typedef bool (*symbolKey_isSymbol_t) (void *);
-struct symbolKey_isSymbol_p { symbolKey_isSymbol_t proc; };
-
-struct libc_tm_r {
-                   int tm_sec;
-                   int tm_min;
-                   int tm_hour;
-                   int tm_mday;
-                   int tm_mon;
-                   int tm_year;
-                   int tm_wday;
-                   int tm_yday;
-                   int tm_isdst;
-                   long int tm_gmtoff;
-                   void *tm_zone;
-                 };
-
-struct libc_timeb_r {
-                      libc_time_t time_;
-                      short unsigned int millitm;
-                      short unsigned int timezone;
-                      short unsigned int dstflag;
-                    };
-
-typedef int (*libc_exitP_t) (void);
-typedef libc_exitP_t libc_exitP_C;
-
-struct libc_exitP_p { libc_exitP_t proc; };
-
-struct mcError__T11_r {
-                        mcError_error parent;
-                        mcError_error child;
-                        mcError_error next;
-                        bool fatal;
-                        DynamicStrings_String s;
-                        unsigned int token;
-                      };
-
-typedef void (*alists_performOperation_t) (void *);
-struct alists_performOperation_p { alists_performOperation_t proc; };
-
-typedef void (*wlists_performOperation_t) (unsigned int);
-struct wlists_performOperation_p { wlists_performOperation_t proc; };
-
-typedef void (*StdIO_ProcWrite_t) (char);
-struct StdIO_ProcWrite_p { StdIO_ProcWrite_t proc; };
+typedef decl_nodeRec *decl_node__opaque;
 
-typedef void (*StdIO_ProcRead_t) (char *);
-struct StdIO_ProcRead_p { StdIO_ProcRead_t proc; };
+struct decl_opaqueCastState_r {
+                                bool opaque;
+                                bool voidStar;
+                              };
 
 struct decl_fixupInfo_r {
                           unsigned int count;
@@ -405,7 +235,7 @@ struct decl_explistT_r {
                        };
 
 struct decl_setvalueT_r {
-                          decl_node type;
+                          decl_node__opaque type;
                           Indexing_Index values;
                         };
 
@@ -423,19 +253,20 @@ struct decl_stmtT_r {
                     };
 
 struct decl_exitT_r {
-                      decl_node loop;
+                      decl_node__opaque loop;
                     };
 
 struct decl_vardeclT_r {
                          wlists_wlist names;
-                         decl_node type;
-                         decl_node scope;
+                         decl_node__opaque type;
+                         decl_node__opaque scope;
                        };
 
 struct decl_typeT_r {
                       nameKey_Name name;
-                      decl_node type;
-                      decl_node scope;
+                      decl_node__opaque type;
+                      decl_node__opaque scope;
+                      bool isOpaque;
                       bool isHidden;
                       bool isInternal;
                     };
@@ -443,44 +274,37 @@ struct decl_typeT_r {
 struct decl_recordT_r {
                         symbolKey_symbolTree localSymbols;
                         Indexing_Index listOfSons;
-                        decl_node scope;
+                        decl_node__opaque scope;
                       };
 
 struct decl_varientT_r {
                          Indexing_Index listOfSons;
-                         decl_node varient;
-                         decl_node tag;
-                         decl_node scope;
+                         decl_node__opaque varient;
+                         decl_node__opaque tag;
+                         decl_node__opaque scope;
                        };
 
 struct decl_enumerationT_r {
                              unsigned int noOfElements;
                              symbolKey_symbolTree localSymbols;
                              Indexing_Index listOfSons;
-                             decl_node low;
-                             decl_node high;
-                             decl_node scope;
+                             decl_node__opaque low;
+                             decl_node__opaque high;
+                             decl_node__opaque scope;
                            };
 
 struct decl_subrangeT_r {
-                          decl_node low;
-                          decl_node high;
-                          decl_node type;
-                          decl_node scope;
+                          decl_node__opaque low;
+                          decl_node__opaque high;
+                          decl_node__opaque type;
+                          decl_node__opaque scope;
                         };
 
 struct decl_subscriptT_r {
-                           decl_node type;
-                           decl_node expr;
+                           decl_node__opaque type;
+                           decl_node__opaque expr;
                          };
 
-struct decl_arrayT_r {
-                       decl_node subr;
-                       decl_node type;
-                       decl_node scope;
-                       bool isUnbounded;
-                     };
-
 struct decl_stringT_r {
                         nameKey_Name name;
                         unsigned int length;
@@ -492,101 +316,60 @@ struct decl_stringT_r {
 
 struct decl_literalT_r {
                          nameKey_Name name;
-                         decl_node type;
+                         decl_node__opaque type;
                        };
 
 struct decl_constT_r {
                        nameKey_Name name;
-                       decl_node type;
-                       decl_node value;
-                       decl_node scope;
-                     };
-
-struct decl_varparamT_r {
-                          decl_node namelist;
-                          decl_node type;
-                          decl_node scope;
-                          bool isUnbounded;
-                          bool isForC;
-                          bool isUsed;
-                        };
-
-struct decl_paramT_r {
-                       decl_node namelist;
-                       decl_node type;
-                       decl_node scope;
-                       bool isUnbounded;
-                       bool isForC;
-                       bool isUsed;
+                       decl_node__opaque type;
+                       decl_node__opaque value;
+                       decl_node__opaque scope;
                      };
 
 struct decl_varargsT_r {
-                         decl_node scope;
+                         decl_node__opaque scope;
                        };
 
 struct decl_optargT_r {
-                        decl_node namelist;
-                        decl_node type;
-                        decl_node scope;
-                        decl_node init;
+                        decl_node__opaque namelist;
+                        decl_node__opaque type;
+                        decl_node__opaque scope;
+                        decl_node__opaque init;
                       };
 
-struct decl_pointerT_r {
-                         decl_node type;
-                         decl_node scope;
-                       };
-
 struct decl_varientfieldT_r {
                               nameKey_Name name;
-                              decl_node parent;
-                              decl_node varient;
+                              decl_node__opaque parent;
+                              decl_node__opaque varient;
                               bool simple;
                               Indexing_Index listOfSons;
-                              decl_node scope;
+                              decl_node__opaque scope;
                             };
 
 struct decl_setT_r {
-                     decl_node type;
-                     decl_node scope;
+                     decl_node__opaque type;
+                     decl_node__opaque scope;
                    };
 
-struct decl_componentrefT_r {
-                              decl_node rec;
-                              decl_node field;
-                              decl_node resultType;
-                            };
-
-struct decl_pointerrefT_r {
-                            decl_node ptr;
-                            decl_node field;
-                            decl_node resultType;
-                          };
-
-struct decl_arrayrefT_r {
-                          decl_node array;
-                          decl_node index;
-                          decl_node resultType;
-                        };
-
 struct decl_commentPair_r {
-                            decl_node after;
-                            decl_node body;
+                            decl_node__opaque after;
+                            decl_node__opaque body;
                           };
 
 struct decl_loopT_r {
-                      decl_node statements;
+                      decl_node__opaque statements;
                       unsigned int labelno;
                     };
 
 struct decl_caseT_r {
-                      decl_node expression;
+                      decl_node__opaque expression;
                       Indexing_Index caseLabelList;
-                      decl_node else_;
+                      decl_node__opaque else_;
                     };
 
 struct decl_caselabellistT_r {
-                               decl_node caseList;
-                               decl_node statements;
+                               decl_node__opaque caseList;
+                               decl_node__opaque statements;
                              };
 
 struct decl_caselistT_r {
@@ -594,16 +377,16 @@ struct decl_caselistT_r {
                         };
 
 struct decl_rangeT_r {
-                       decl_node lo;
-                       decl_node hi;
+                       decl_node__opaque lo;
+                       decl_node__opaque hi;
                      };
 
 struct decl_forT_r {
-                     decl_node des;
-                     decl_node start;
-                     decl_node end;
-                     decl_node increment;
-                     decl_node statements;
+                     decl_node__opaque des;
+                     decl_node__opaque start;
+                     decl_node__opaque end;
+                     decl_node__opaque increment;
+                     decl_node__opaque statements;
                    };
 
 struct decl_statementT_r {
@@ -618,24 +401,15 @@ struct decl_scopeT_r {
                        Indexing_Index variables;
                      };
 
-struct decl_proctypeT_r {
-                          Indexing_Index parameters;
-                          bool returnopt;
-                          bool vararg;
-                          decl_node optarg_;
-                          decl_node scope;
-                          decl_node returnType;
-                        };
-
 struct decl_binaryT_r {
-                        decl_node left;
-                        decl_node right;
-                        decl_node resultType;
+                        decl_node__opaque left;
+                        decl_node__opaque right;
+                        decl_node__opaque resultType;
                       };
 
 struct decl_unaryT_r {
-                       decl_node arg;
-                       decl_node resultType;
+                       decl_node__opaque arg;
+                       decl_node__opaque resultType;
                      };
 
 struct decl_where_r {
@@ -652,118 +426,161 @@ struct decl_cnameT_r {
                        bool init;
                      };
 
-struct decl__T15_r {
-                     alists_alist todoQ;
-                     alists_alist partialQ;
-                     alists_alist doneQ;
-                     decl_group next;
-                   };
-
-struct Indexing__T5_r {
-                        void *ArrayStart;
-                        unsigned int ArraySize;
-                        unsigned int Used;
-                        unsigned int Low;
-                        unsigned int High;
-                        bool Debug;
-                        unsigned int Map;
-                      };
+struct decl__T1_r {
+                    alists_alist todoQ;
+                    alists_alist partialQ;
+                    alists_alist doneQ;
+                    decl_group next;
+                  };
 
-struct mcComment__T6_r {
-                         mcComment_commentType type;
-                         DynamicStrings_String content;
-                         nameKey_Name procName;
-                         bool used;
-                       };
+struct decl_opaquecastT_r {
+                            decl_node__opaque exp;
+                            decl_opaqueCastState opaqueState;
+                          };
 
-struct wlists__T10_a { unsigned int array[maxNoOfElements-1+1]; };
-struct DynamicStrings__T7_a { char array[(MaxBuf-1)+1]; };
-struct alists__T14_a { void * array[MaxnoOfelements-1+1]; };
 struct decl_intrinsicT_r {
-                           decl_node args;
+                           decl_node__opaque args;
                            unsigned int noArgs;
-                           decl_node type;
+                           decl_node__opaque type;
                            decl_commentPair intrinsicComment;
                            bool postUnreachable;
                          };
 
 struct decl_funccallT_r {
-                          decl_node function;
-                          decl_node args;
-                          decl_node type;
+                          decl_node__opaque function;
+                          decl_node__opaque args;
+                          decl_node__opaque type;
                           decl_commentPair funccallComment;
+                          decl_opaqueCastState opaqueState;
                         };
 
 struct decl_returnT_r {
-                        decl_node exp;
-                        decl_node scope;
+                        decl_node__opaque exp;
+                        decl_node__opaque scope;
                         decl_commentPair returnComment;
                       };
 
 struct decl_varT_r {
                      nameKey_Name name;
-                     decl_node type;
-                     decl_node decl;
-                     decl_node scope;
+                     decl_node__opaque type;
+                     decl_node__opaque decl;
+                     decl_node__opaque scope;
                      bool isInitialised;
                      bool isParameter;
                      bool isVarParameter;
                      bool isUsed;
                      decl_cnameT cname;
+                     decl_opaqueCastState opaqueState;
                    };
 
+struct decl_arrayT_r {
+                       decl_node__opaque subr;
+                       decl_node__opaque type;
+                       decl_node__opaque scope;
+                       bool isUnbounded;
+                       decl_opaqueCastState opaqueState;
+                     };
+
+struct decl_varparamT_r {
+                          decl_node__opaque namelist;
+                          decl_node__opaque type;
+                          decl_node__opaque scope;
+                          bool isUnbounded;
+                          bool isForC;
+                          bool isUsed;
+                          decl_opaqueCastState opaqueState;
+                        };
+
+struct decl_paramT_r {
+                       decl_node__opaque namelist;
+                       decl_node__opaque type;
+                       decl_node__opaque scope;
+                       bool isUnbounded;
+                       bool isForC;
+                       bool isUsed;
+                       decl_opaqueCastState opaqueState;
+                     };
+
+struct decl_pointerT_r {
+                         decl_node__opaque type;
+                         decl_node__opaque scope;
+                         decl_opaqueCastState opaqueState;
+                       };
+
 struct decl_recordfieldT_r {
                              nameKey_Name name;
-                             decl_node type;
+                             decl_node__opaque type;
                              bool tag;
-                             decl_node parent;
-                             decl_node varient;
-                             decl_node scope;
+                             decl_node__opaque parent;
+                             decl_node__opaque varient;
+                             decl_node__opaque scope;
                              decl_cnameT cname;
+                             decl_opaqueCastState opaqueState;
                            };
 
 struct decl_enumerationfieldT_r {
                                   nameKey_Name name;
-                                  decl_node type;
-                                  decl_node scope;
+                                  decl_node__opaque type;
+                                  decl_node__opaque scope;
                                   unsigned int value;
                                   decl_cnameT cname;
                                 };
 
+struct decl_componentrefT_r {
+                              decl_node__opaque rec;
+                              decl_node__opaque field;
+                              decl_node__opaque resultType;
+                              decl_opaqueCastState opaqueState;
+                            };
+
+struct decl_pointerrefT_r {
+                            decl_node__opaque ptr;
+                            decl_node__opaque field;
+                            decl_node__opaque resultType;
+                            decl_opaqueCastState opaqueState;
+                          };
+
+struct decl_arrayrefT_r {
+                          decl_node__opaque array;
+                          decl_node__opaque index;
+                          decl_node__opaque resultType;
+                          decl_opaqueCastState opaqueState;
+                        };
+
 struct decl_assignmentT_r {
-                            decl_node des;
-                            decl_node expr;
+                            decl_node__opaque des;
+                            decl_node__opaque expr;
                             decl_commentPair assignComment;
                           };
 
 struct decl_ifT_r {
-                    decl_node expr;
-                    decl_node elsif;
-                    decl_node then;
-                    decl_node else_;
+                    decl_node__opaque expr;
+                    decl_node__opaque elsif;
+                    decl_node__opaque then;
+                    decl_node__opaque else_;
                     decl_commentPair ifComment;
                     decl_commentPair elseComment;
                     decl_commentPair endComment;
                   };
 
 struct decl_elsifT_r {
-                       decl_node expr;
-                       decl_node elsif;
-                       decl_node then;
-                       decl_node else_;
+                       decl_node__opaque expr;
+                       decl_node__opaque elsif;
+                       decl_node__opaque then;
+                       decl_node__opaque else_;
                        decl_commentPair elseComment;
                      };
 
 struct decl_whileT_r {
-                       decl_node expr;
-                       decl_node statements;
+                       decl_node__opaque expr;
+                       decl_node__opaque statements;
                        decl_commentPair doComment;
                        decl_commentPair endComment;
                      };
 
 struct decl_repeatT_r {
-                        decl_node expr;
-                        decl_node statements;
+                        decl_node__opaque expr;
+                        decl_node__opaque statements;
                         decl_commentPair repeatComment;
                         decl_commentPair untilComment;
                       };
@@ -771,7 +588,7 @@ struct decl_repeatT_r {
 struct decl_procedureT_r {
                            nameKey_Name name;
                            decl_scopeT decls;
-                           decl_node scope;
+                           decl_node__opaque scope;
                            Indexing_Index parameters;
                            bool isForC;
                            bool built;
@@ -781,14 +598,25 @@ struct decl_procedureT_r {
                            bool noreturnused;
                            bool noreturn;
                            unsigned int paramcount;
-                           decl_node optarg_;
-                           decl_node returnType;
-                           decl_node beginStatements;
+                           decl_node__opaque optarg_;
+                           decl_node__opaque returnType;
+                           decl_node__opaque beginStatements;
                            decl_cnameT cname;
                            mcComment_commentDesc defComment;
                            mcComment_commentDesc modComment;
+                           decl_opaqueCastState opaqueState;
                          };
 
+struct decl_proctypeT_r {
+                          Indexing_Index parameters;
+                          bool returnopt;
+                          bool vararg;
+                          decl_node__opaque optarg_;
+                          decl_node__opaque scope;
+                          decl_node__opaque returnType;
+                          decl_opaqueCastState opaqueState;
+                        };
+
 struct decl_moduleT_r {
                         nameKey_Name name;
                         nameKey_Name source;
@@ -796,8 +624,8 @@ struct decl_moduleT_r {
                         decl_fixupInfo constFixup;
                         decl_fixupInfo enumFixup;
                         decl_scopeT decls;
-                        decl_node beginStatements;
-                        decl_node finallyStatements;
+                        decl_node__opaque beginStatements;
+                        decl_node__opaque finallyStatements;
                         bool enumsComplete;
                         bool constsComplete;
                         bool visited;
@@ -826,9 +654,9 @@ struct decl_impT_r {
                      Indexing_Index importedModules;
                      decl_fixupInfo constFixup;
                      decl_fixupInfo enumFixup;
-                     decl_node beginStatements;
-                     decl_node finallyStatements;
-                     decl_node definitionModule;
+                     decl_node__opaque beginStatements;
+                     decl_node__opaque finallyStatements;
+                     decl_node__opaque definitionModule;
                      decl_scopeT decls;
                      bool enumsComplete;
                      bool constsComplete;
@@ -836,60 +664,6 @@ struct decl_impT_r {
                      decl_commentPair com;
                    };
 
-struct DynamicStrings_Contents_r {
-                                   DynamicStrings__T7 buf;
-                                   unsigned int len;
-                                   DynamicStrings_String next;
-                                 };
-
-struct wlists__T9_r {
-                      unsigned int noOfElements;
-                      wlists__T10 elements;
-                      wlists_wlist next;
-                    };
-
-struct alists__T13_r {
-                       unsigned int noOfelements;
-                       alists__T14 elements;
-                       alists_alist next;
-                     };
-
-struct mcPretty__T12_r {
-                         mcPretty_writeProc write_;
-                         mcPretty_writeLnProc writeln;
-                         bool needsSpace;
-                         bool needsIndent;
-                         unsigned int seekPos;
-                         unsigned int curLine;
-                         unsigned int curPos;
-                         unsigned int indent;
-                         mcPretty_pretty stacked;
-                       };
-
-typedef struct DynamicStrings_descriptor_r DynamicStrings_descriptor;
-
-typedef DynamicStrings_descriptor *DynamicStrings_Descriptor;
-
-typedef struct DynamicStrings_DebugInfo_r DynamicStrings_DebugInfo;
-
-typedef enum {DynamicStrings_inuse, DynamicStrings_marked, DynamicStrings_onlist, DynamicStrings_poisoned} DynamicStrings_desState;
-
-struct DynamicStrings_descriptor_r {
-                                     bool charStarUsed;
-                                     void *charStar;
-                                     unsigned int charStarSize;
-                                     bool charStarValid;
-                                     DynamicStrings_desState state;
-                                     DynamicStrings_String garbage;
-                                   };
-
-struct DynamicStrings_DebugInfo_r {
-                                    DynamicStrings_String next;
-                                    void *file;
-                                    unsigned int line;
-                                    void *proc;
-                                  };
-
 struct decl_nodeRec_r {
                         decl_nodeT kind;  /* case tag */
                         union {
@@ -944,82 +718,77 @@ struct decl_nodeRec_r {
                                 decl_vardeclT vardeclF;
                                 decl_funccallT funccallF;
                                 decl_setvalueT setvalueF;
+                                decl_opaquecastT opaquecastF;
                               };
                         decl_where at;
                       };
 
-struct DynamicStrings_stringRecord_r {
-                                       DynamicStrings_Contents contents;
-                                       DynamicStrings_Descriptor head;
-                                       DynamicStrings_DebugInfo debug;
-                                     };
-
 static decl_group freeGroup;
 static decl_group globalGroup;
 static FIO_File outputFile;
 static decl_language lang;
-static decl_node bitsperunitN;
-static decl_node bitsperwordN;
-static decl_node bitspercharN;
-static decl_node unitsperwordN;
-static decl_node mainModule;
-static decl_node currentModule;
-static decl_node defModule;
-static decl_node systemN;
-static decl_node addressN;
-static decl_node locN;
-static decl_node byteN;
-static decl_node wordN;
-static decl_node csizetN;
-static decl_node cssizetN;
-static decl_node adrN;
-static decl_node sizeN;
-static decl_node tsizeN;
-static decl_node newN;
-static decl_node disposeN;
-static decl_node lengthN;
-static decl_node incN;
-static decl_node decN;
-static decl_node inclN;
-static decl_node exclN;
-static decl_node highN;
-static decl_node m2rtsN;
-static decl_node haltN;
-static decl_node throwN;
-static decl_node chrN;
-static decl_node capN;
-static decl_node absN;
-static decl_node floatN;
-static decl_node truncN;
-static decl_node ordN;
-static decl_node valN;
-static decl_node minN;
-static decl_node maxN;
-static decl_node booleanN;
-static decl_node procN;
-static decl_node charN;
-static decl_node integerN;
-static decl_node cardinalN;
-static decl_node longcardN;
-static decl_node shortcardN;
-static decl_node longintN;
-static decl_node shortintN;
-static decl_node bitsetN;
-static decl_node bitnumN;
-static decl_node ztypeN;
-static decl_node rtypeN;
-static decl_node complexN;
-static decl_node longcomplexN;
-static decl_node shortcomplexN;
-static decl_node cmplxN;
-static decl_node reN;
-static decl_node imN;
-static decl_node realN;
-static decl_node longrealN;
-static decl_node shortrealN;
-static decl_node nilN;
-static decl_node trueN;
-static decl_node falseN;
+static decl_node__opaque bitsperunitN;
+static decl_node__opaque bitsperwordN;
+static decl_node__opaque bitspercharN;
+static decl_node__opaque unitsperwordN;
+static decl_node__opaque mainModule;
+static decl_node__opaque currentModule;
+static decl_node__opaque defModule;
+static decl_node__opaque systemN;
+static decl_node__opaque addressN;
+static decl_node__opaque locN;
+static decl_node__opaque byteN;
+static decl_node__opaque wordN;
+static decl_node__opaque csizetN;
+static decl_node__opaque cssizetN;
+static decl_node__opaque adrN;
+static decl_node__opaque sizeN;
+static decl_node__opaque tsizeN;
+static decl_node__opaque newN;
+static decl_node__opaque disposeN;
+static decl_node__opaque lengthN;
+static decl_node__opaque incN;
+static decl_node__opaque decN;
+static decl_node__opaque inclN;
+static decl_node__opaque exclN;
+static decl_node__opaque highN;
+static decl_node__opaque m2rtsN;
+static decl_node__opaque haltN;
+static decl_node__opaque throwN;
+static decl_node__opaque chrN;
+static decl_node__opaque capN;
+static decl_node__opaque absN;
+static decl_node__opaque floatN;
+static decl_node__opaque truncN;
+static decl_node__opaque ordN;
+static decl_node__opaque valN;
+static decl_node__opaque minN;
+static decl_node__opaque maxN;
+static decl_node__opaque booleanN;
+static decl_node__opaque procN;
+static decl_node__opaque charN;
+static decl_node__opaque integerN;
+static decl_node__opaque cardinalN;
+static decl_node__opaque longcardN;
+static decl_node__opaque shortcardN;
+static decl_node__opaque longintN;
+static decl_node__opaque shortintN;
+static decl_node__opaque bitsetN;
+static decl_node__opaque bitnumN;
+static decl_node__opaque ztypeN;
+static decl_node__opaque rtypeN;
+static decl_node__opaque complexN;
+static decl_node__opaque longcomplexN;
+static decl_node__opaque shortcomplexN;
+static decl_node__opaque cmplxN;
+static decl_node__opaque reN;
+static decl_node__opaque imN;
+static decl_node__opaque realN;
+static decl_node__opaque longrealN;
+static decl_node__opaque shortrealN;
+static decl_node__opaque nilN;
+static decl_node__opaque trueN;
+static decl_node__opaque falseN;
 static Indexing_Index scopeStack;
 static Indexing_Index defUniverseI;
 static Indexing_Index modUniverseI;
@@ -1031,52 +800,7 @@ static mcPretty_pretty doP;
 static bool mustVisitScope;
 static bool simplified;
 static unsigned int tempCount;
-static decl_node globalNode;
-extern "C" void SYSTEM_ShiftVal (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, int ShiftCount);
-extern "C" void SYSTEM_ShiftLeft (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, unsigned int ShiftCount);
-extern "C" void SYSTEM_ShiftRight (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, unsigned int ShiftCount);
-extern "C" void SYSTEM_RotateVal (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, int RotateCount);
-extern "C" void SYSTEM_RotateLeft (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, unsigned int RotateCount);
-extern "C" void SYSTEM_RotateRight (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, unsigned int RotateCount);
-extern "C" void M2RTS_ConstructModules (void * applicationmodule, void * libname, void * overrideliborder, int argc, void * argv, void * envp);
-extern "C" void M2RTS_DeconstructModules (void * applicationmodule, void * libname, int argc, void * argv, void * envp);
-extern "C" void M2RTS_RegisterModule (void * name, void * libname, M2RTS_ArgCVEnvP init, M2RTS_ArgCVEnvP fini, PROC dependencies);
-extern "C" void M2RTS_RequestDependant (void * modulename, void * libname, void * dependantmodule, void * dependantlibname);
-extern "C" bool M2RTS_InstallTerminationProcedure (PROC p);
-extern "C" void M2RTS_ExecuteInitialProcedures (void);
-extern "C" bool M2RTS_InstallInitialProcedure (PROC p);
-extern "C" void M2RTS_ExecuteTerminationProcedures (void);
-extern "C" void M2RTS_Terminate (void) __attribute__ ((noreturn));
-extern "C" void M2RTS_HALT (int exitcode) __attribute__ ((noreturn));
-extern "C" void M2RTS_Halt (const char *description_, unsigned int _description_high, const char *filename_, unsigned int _filename_high, const char *function_, unsigned int _function_high, unsigned int line) __attribute__ ((noreturn));
-extern "C" void M2RTS_HaltC (void * description, void * filename, void * function, unsigned int line) __attribute__ ((noreturn));
-extern "C" void M2RTS_ExitOnHalt (int e);
-extern "C" void M2RTS_ErrorMessage (const char *message_, unsigned int _message_high, const char *filename_, unsigned int _filename_high, unsigned int line, const char *function_, unsigned int _function_high) __attribute__ ((noreturn));
-extern "C" unsigned int M2RTS_Length (const char *a_, unsigned int _a_high);
-extern "C" void M2RTS_AssignmentException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_ReturnException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_IncException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_DecException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_InclException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_ExclException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_ShiftException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_RotateException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_StaticArraySubscriptException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_DynamicArraySubscriptException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_ForLoopBeginException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_ForLoopToException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_ForLoopEndException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_PointerNilException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_NoReturnException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_CaseException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_WholeNonPosDivException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_WholeNonPosModException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_WholeZeroDivException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_WholeZeroRemException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_WholeValueException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_RealValueException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_ParameterException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
-extern "C" void M2RTS_NoException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+static decl_node__opaque globalNode;
 
 /*
    getDeclaredMod - returns the token number associated with the nodes declaration
@@ -1266,6 +990,19 @@ extern "C" bool decl_isTypeHidden (decl_node n);
 
 extern "C" bool decl_hasHidden (decl_node n);
 
+/*
+   putTypeOpaque - marks type, des, as being an opaque type.
+                   TYPE des ;
+*/
+
+extern "C" void decl_putTypeOpaque (decl_node des);
+
+/*
+   isTypeOpaque - returns TRUE if type, n, is an opaque type.
+*/
+
+extern "C" bool decl_isTypeOpaque (decl_node n);
+
 /*
    isVar - returns TRUE if node, n, is a type.
 */
@@ -1681,7 +1418,7 @@ extern "C" void decl_putCommentModProcedure (decl_node n);
 extern "C" decl_node decl_makeProcType (void);
 
 /*
-   putReturnType - sets the return type of procedure or proctype, proc, to, type.
+   putReturnType - sets the return type of procedure or proctype proc to type.
 */
 
 extern "C" void decl_putReturnType (decl_node proc, decl_node type);
@@ -2295,5261 +2032,5457 @@ extern "C" void decl_setLangM2 (void);
 */
 
 extern "C" void decl_out (void);
-extern "C" nameKey_Name nameKey_makeKey (const char *a_, unsigned int _a_high);
-extern "C" nameKey_Name nameKey_makekey (void * a);
-extern "C" void nameKey_getKey (nameKey_Name key, char *a, unsigned int _a_high);
-extern "C" unsigned int nameKey_lengthKey (nameKey_Name key);
-extern "C" bool nameKey_isKey (const char *a_, unsigned int _a_high);
-extern "C" void nameKey_writeKey (nameKey_Name key);
-extern "C" bool nameKey_isSameExcludingCase (nameKey_Name key1, nameKey_Name key2);
-extern "C" void * nameKey_keyToCharStar (nameKey_Name key);
-extern "C" symbolKey_symbolTree symbolKey_initTree (void);
-extern "C" void symbolKey_killTree (symbolKey_symbolTree *t);
-extern "C" void * symbolKey_getSymKey (symbolKey_symbolTree t, nameKey_Name name);
-extern "C" void symbolKey_putSymKey (symbolKey_symbolTree t, nameKey_Name name, void * key);
 
 /*
-   delSymKey - deletes an entry in the binary tree.
-
-               NB in order for this to work we must ensure that the InitTree sets
-               both left and right to NIL.
+   newNode - create and return a new node of kind k.
 */
 
-extern "C" void symbolKey_delSymKey (symbolKey_symbolTree t, nameKey_Name name);
+static decl_node__opaque newNode (decl_nodeT k);
 
 /*
-   isEmptyTree - returns true if symbolTree, t, is empty.
+   disposeNode - dispose node, n.
 */
 
-extern "C" bool symbolKey_isEmptyTree (symbolKey_symbolTree t);
+static void disposeNode (decl_node__opaque *n);
 
 /*
-   doesTreeContainAny - returns true if symbolTree, t, contains any
-                        symbols which in turn return true when procedure,
-                        p, is called with a symbol as its parameter.
-                        The symbolTree root is empty apart from the field,
-                        left, hence we need two procedures.
+   newGroup -
 */
 
-extern "C" bool symbolKey_doesTreeContainAny (symbolKey_symbolTree t, symbolKey_isSymbol p);
+static void newGroup (decl_group *g);
 
 /*
-   foreachNodeDo - for each node in symbolTree, t, a procedure, p,
-                   is called with the node symbol as its parameter.
-                   The tree root node only contains a legal left pointer,
-                   therefore we need two procedures to examine this tree.
+   initGroup - returns a group which with all lists initialized.
 */
 
-extern "C" void symbolKey_foreachNodeDo (symbolKey_symbolTree t, symbolKey_performOperation p);
+static decl_group initGroup (void);
 
 /*
-   initComment - the start of a new comment has been seen by the lexical analyser.
-                 A new comment block is created and all addText contents are placed
-                 in this block.  onlySpaces indicates whether we have only seen
-                 spaces on this line.
+   killGroup - deallocate the group and place the group record into the freeGroup list.
 */
 
-extern "C" mcComment_commentDesc mcComment_initComment (bool onlySpaces);
+static void killGroup (decl_group *g);
 
 /*
-   addText - cs is a C string (null terminated) which contains comment text.
-             This is appended to the comment, cd.
+   dupGroup - If g is not NIL then destroy g.
+              Return a duplicate of GlobalGroup (not g).
 */
 
-extern "C" void mcComment_addText (mcComment_commentDesc cd, void * cs);
+static decl_group dupGroup (decl_group g);
 
 /*
-   getContent - returns the content of comment, cd.
+   equalGroup - return TRUE if group left = right.
 */
 
-extern "C" DynamicStrings_String mcComment_getContent (mcComment_commentDesc cd);
+static bool equalGroup (decl_group left, decl_group right);
 
 /*
-   getCommentCharStar - returns the C string content of comment, cd.
+   isLocal - returns TRUE if symbol, n, is locally declared in a procedure.
 */
 
-extern "C" void * mcComment_getCommentCharStar (mcComment_commentDesc cd);
+static bool isLocal (decl_node__opaque n);
 
 /*
-   setProcedureComment - changes the type of comment, cd, to a
-                         procedure heading comment,
-                         providing it has the procname as the first word.
+   importEnumFields - if, n, is an enumeration type import the all fields into module, m.
 */
 
-extern "C" void mcComment_setProcedureComment (mcComment_commentDesc cd, nameKey_Name procname);
+static void importEnumFields (decl_node__opaque m, decl_node__opaque n);
 
 /*
-   getProcedureComment - returns the current procedure comment if available.
+   isComplex - returns TRUE if, n, is the complex type.
 */
 
-extern "C" DynamicStrings_String mcComment_getProcedureComment (mcComment_commentDesc cd);
+static bool isComplex (decl_node__opaque n);
 
 /*
-   getAfterStatementComment - returns the current statement after comment if available.
+   isLongComplex - returns TRUE if, n, is the longcomplex type.
 */
 
-extern "C" DynamicStrings_String mcComment_getAfterStatementComment (mcComment_commentDesc cd);
+static bool isLongComplex (decl_node__opaque n);
 
 /*
-   getInbodyStatementComment - returns the current statement after comment if available.
+   isShortComplex - returns TRUE if, n, is the shortcomplex type.
 */
 
-extern "C" DynamicStrings_String mcComment_getInbodyStatementComment (mcComment_commentDesc cd);
+static bool isShortComplex (decl_node__opaque n);
 
 /*
-   isProcedureComment - returns TRUE if, cd, is a procedure comment.
+   isAProcType - returns TRUE if, n, is a proctype or proc node.
 */
 
-extern "C" bool mcComment_isProcedureComment (mcComment_commentDesc cd);
+static bool isAProcType (decl_node__opaque n);
 
 /*
-   isBodyComment - returns TRUE if, cd, is a body comment.
+   initFixupInfo - initialize the fixupInfo record.
 */
 
-extern "C" bool mcComment_isBodyComment (mcComment_commentDesc cd);
+static decl_fixupInfo initFixupInfo (void);
 
 /*
-   isAfterComment - returns TRUE if, cd, is an after comment.
+   makeDef - returns a definition module node named, n.
 */
 
-extern "C" bool mcComment_isAfterComment (mcComment_commentDesc cd);
-extern "C" void mcDebug_assert (bool q);
-extern "C" void mcDebug_writeDebug (const char *a_, unsigned int _a_high);
-extern "C" void Storage_ALLOCATE (void * *a, unsigned int Size);
-extern "C" void Storage_DEALLOCATE (void * *a, unsigned int Size);
-extern "C" void Storage_REALLOCATE (void * *a, unsigned int Size);
-extern "C" bool Storage_Available (unsigned int Size);
-extern "C" bool SFIO_Exists (DynamicStrings_String fname);
-extern "C" FIO_File SFIO_OpenToRead (DynamicStrings_String fname);
-extern "C" FIO_File SFIO_OpenToWrite (DynamicStrings_String fname);
-extern "C" FIO_File SFIO_OpenForRandom (DynamicStrings_String fname, bool towrite, bool newfile);
-extern "C" DynamicStrings_String SFIO_WriteS (FIO_File file, DynamicStrings_String s);
-extern "C" DynamicStrings_String SFIO_ReadS (FIO_File file);
-extern "C" bool FIO_IsNoError (FIO_File f);
-extern "C" bool FIO_IsActive (FIO_File f);
-extern "C" bool FIO_Exists (const char *fname_, unsigned int _fname_high);
-extern "C" FIO_File FIO_OpenToRead (const char *fname_, unsigned int _fname_high);
-extern "C" FIO_File FIO_OpenToWrite (const char *fname_, unsigned int _fname_high);
-extern "C" FIO_File FIO_OpenForRandom (const char *fname_, unsigned int _fname_high, bool towrite, bool newfile);
-extern "C" void FIO_Close (FIO_File f);
-extern "C" bool FIO_exists (void * fname, unsigned int flength);
-extern "C" FIO_File FIO_openToRead (void * fname, unsigned int flength);
-extern "C" FIO_File FIO_openToWrite (void * fname, unsigned int flength);
-extern "C" FIO_File FIO_openForRandom (void * fname, unsigned int flength, bool towrite, bool newfile);
-extern "C" void FIO_FlushBuffer (FIO_File f);
-extern "C" unsigned int FIO_ReadNBytes (FIO_File f, unsigned int nBytes, void * dest);
-extern "C" void FIO_ReadAny (FIO_File f, unsigned char *a, unsigned int _a_high);
-extern "C" unsigned int FIO_WriteNBytes (FIO_File f, unsigned int nBytes, void * src);
-extern "C" void FIO_WriteAny (FIO_File f, unsigned char *a, unsigned int _a_high);
-extern "C" void FIO_WriteChar (FIO_File f, char ch);
-extern "C" bool FIO_EOF (FIO_File f);
-extern "C" bool FIO_EOLN (FIO_File f);
-extern "C" bool FIO_WasEOLN (FIO_File f);
-extern "C" char FIO_ReadChar (FIO_File f);
-extern "C" void FIO_UnReadChar (FIO_File f, char ch);
-extern "C" void FIO_WriteLine (FIO_File f);
-extern "C" void FIO_WriteString (FIO_File f, const char *a_, unsigned int _a_high);
-extern "C" void FIO_ReadString (FIO_File f, char *a, unsigned int _a_high);
-extern "C" void FIO_WriteCardinal (FIO_File f, unsigned int c);
-extern "C" unsigned int FIO_ReadCardinal (FIO_File f);
-extern "C" int FIO_GetUnixFileDescriptor (FIO_File f);
-extern "C" void FIO_SetPositionFromBeginning (FIO_File f, long int pos);
-extern "C" void FIO_SetPositionFromEnd (FIO_File f, long int pos);
-extern "C" long int FIO_FindPosition (FIO_File f);
-extern "C" void FIO_GetFileName (FIO_File f, char *a, unsigned int _a_high);
-extern "C" void * FIO_getFileName (FIO_File f);
-extern "C" unsigned int FIO_getFileNameLength (FIO_File f);
-extern "C" void FIO_FlushOutErr (void);
+static decl_node__opaque makeDef (nameKey_Name n);
 
 /*
-   InitString - creates and returns a String type object.
-                Initial contents are, a.
+   makeImp - returns an implementation module node named, n.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_InitString (const char *a_, unsigned int _a_high);
+static decl_node__opaque makeImp (nameKey_Name n);
 
 /*
-   KillString - frees String, s, and its contents.
-                NIL is returned.
+   makeModule - returns a module node named, n.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_KillString (DynamicStrings_String s);
+static decl_node__opaque makeModule (nameKey_Name n);
 
 /*
-   Fin - finishes with a string, it calls KillString with, s.
-         The purpose of the procedure is to provide a short cut
-         to calling KillString and then testing the return result.
+   isDefForC - returns TRUE if the definition module was defined FOR "C".
 */
 
-extern "C" void DynamicStrings_Fin (DynamicStrings_String s);
+static bool isDefForC (decl_node__opaque n);
 
 /*
-   InitStringCharStar - initializes and returns a String to contain the C string.
+   initDecls - initialize the decls, scopeT.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_InitStringCharStar (void * a);
+static void initDecls (decl_scopeT *decls);
 
 /*
-   InitStringChar - initializes and returns a String to contain the single character, ch.
+   addTo - adds node, d, to scope decls and returns, d.
+           It stores, d, in the symbols tree associated with decls.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_InitStringChar (char ch);
+static decl_node__opaque addTo (decl_scopeT *decls, decl_node__opaque d);
 
 /*
-   Mark - marks String, s, ready for garbage collection.
+   export - export node, n, from definition module, d.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_Mark (DynamicStrings_String s);
+static void export_ (decl_node__opaque d, decl_node__opaque n);
 
 /*
-   Length - returns the length of the String, s.
+   addToScope - adds node, n, to the current scope and returns, n.
 */
 
-extern "C" unsigned int DynamicStrings_Length (DynamicStrings_String s);
+static decl_node__opaque addToScope (decl_node__opaque n);
 
 /*
-   ConCat - returns String, a, after the contents of, b, have been appended.
+   addModuleToScope - adds module, i, to module, m, scope.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_ConCat (DynamicStrings_String a, DynamicStrings_String b);
+static void addModuleToScope (decl_node__opaque m, decl_node__opaque i);
 
 /*
-   ConCatChar - returns String, a, after character, ch, has been appended.
+   completedEnum - assign boolean enumsComplete to TRUE if a definition,
+                   implementation or module symbol.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_ConCatChar (DynamicStrings_String a, char ch);
+static void completedEnum (decl_node__opaque n);
 
 /*
-   Assign - assigns the contents of, b, into, a.
-            String, a, is returned.
+   setUnary - sets a unary node to contain, arg, a, and type, t.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_Assign (DynamicStrings_String a, DynamicStrings_String b);
+static void setUnary (decl_node__opaque u, decl_nodeT k, decl_node__opaque a, decl_node__opaque t);
 
 /*
-   ReplaceChar - returns string s after it has changed all occurances of from to to.
+   putVarBool - assigns the four booleans associated with a variable.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_ReplaceChar (DynamicStrings_String s, char from, char to);
+static void putVarBool (decl_node__opaque v, bool init, bool param, bool isvar, bool isused);
 
 /*
-   Dup - duplicate a String, s, returning the copy of s.
+   checkPtr - in C++ we need to create a typedef for a pointer
+              in case we need to use reinterpret_cast.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_Dup (DynamicStrings_String s);
+static decl_node__opaque checkPtr (decl_node__opaque n);
 
 /*
-   Add - returns a new String which contains the contents of a and b.
+   isVarDecl - returns TRUE if, n, is a vardecl node.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_Add (DynamicStrings_String a, DynamicStrings_String b);
+static bool isVarDecl (decl_node__opaque n);
 
 /*
-   Equal - returns TRUE if String, a, and, b, are equal.
+   makeVariablesFromParameters - creates variables which are really parameters.
 */
 
-extern "C" bool DynamicStrings_Equal (DynamicStrings_String a, DynamicStrings_String b);
+static void makeVariablesFromParameters (decl_node__opaque proc, decl_node__opaque id, decl_node__opaque type, bool isvar, bool isused);
 
 /*
-   EqualCharStar - returns TRUE if contents of String, s, is the same as the
-                   string, a.
+   addProcedureToScope - add a procedure name n and node d to the
+                         current scope.
 */
 
-extern "C" bool DynamicStrings_EqualCharStar (DynamicStrings_String s, void * a);
+static decl_node__opaque addProcedureToScope (decl_node__opaque d, nameKey_Name n);
 
 /*
-   EqualArray - returns TRUE if contents of String, s, is the same as the
-                string, a.
+   putProcTypeReturn - sets the return type of, proc, to, type.
 */
 
-extern "C" bool DynamicStrings_EqualArray (DynamicStrings_String s, const char *a_, unsigned int _a_high);
+static void putProcTypeReturn (decl_node__opaque proc, decl_node__opaque type);
 
 /*
-   Mult - returns a new string which is n concatenations of String, s.
+   putProcTypeOptReturn - sets, proc, to have an optional return type.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_Mult (DynamicStrings_String s, unsigned int n);
+static void putProcTypeOptReturn (decl_node__opaque proc);
 
 /*
-   Slice - returns a new string which contains the elements
-           low..high-1
-
-           strings start at element 0
-           Slice(s, 0, 2)  will return elements 0, 1 but not 2
-           Slice(s, 1, 3)  will return elements 1, 2 but not 3
-           Slice(s, 2, 0)  will return elements 2..max
-           Slice(s, 3, -1) will return elements 3..max-1
-           Slice(s, 4, -2) will return elements 4..max-2
+   makeOptParameter - creates and returns an optarg.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s, int low, int high);
+static decl_node__opaque makeOptParameter (decl_node__opaque l, decl_node__opaque type, decl_node__opaque init);
 
 /*
-   Index - returns the indice of the first occurance of, ch, in
-           String, s. -1 is returned if, ch, does not exist.
-           The search starts at position, o.
+   setwatch - assign the globalNode to n.
 */
 
-extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned int o);
+static bool setwatch (decl_node__opaque n);
 
 /*
-   RIndex - returns the indice of the last occurance of, ch,
-            in String, s.  The search starts at position, o.
-            -1 is returned if, ch, is not found.  The search
-            is performed left to right.
+   runwatch - set the globalNode to an identlist.
 */
 
-extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o);
+static bool runwatch (void);
 
 /*
-   ReverseIndex - returns the indice of the last occurance of ch
-                  in String s.  The search starts at position o
-                  and searches from right to left.  The start position
-                  may be indexed negatively from the right (-1 is the
-                  last index).
-                  The return value if ch is found will always be positive.
-                  -1 is returned if ch is not found.
+   isIdentList - returns TRUE if, n, is an identlist.
 */
 
-extern "C" int DynamicStrings_ReverseIndex (DynamicStrings_String s, char ch, int o);
+static bool isIdentList (decl_node__opaque n);
 
 /*
-   RemoveComment - assuming that, comment, is a comment delimiter
-                   which indicates anything to its right is a comment
-                   then strip off the comment and also any white space
-                   on the remaining right hand side.
-                   It leaves any white space on the left hand side alone.
+   identListLen - returns the length of identlist.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_RemoveComment (DynamicStrings_String s, char comment);
+static unsigned int identListLen (decl_node__opaque n);
 
 /*
-   RemoveWhitePrefix - removes any leading white space from String, s.
-                       A new string is returned.
+   checkParameters - placeholder for future parameter checking.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePrefix (DynamicStrings_String s);
+static void checkParameters (decl_node__opaque p, decl_node__opaque i, decl_node__opaque type, bool isvar, bool isused);
 
 /*
-   RemoveWhitePostfix - removes any leading white space from String, s.
-                        A new string is returned.
+   checkMakeVariables - create shadow local variables for parameters providing that
+                        procedure n has not already been built and we are compiling
+                        a module or an implementation module.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePostfix (DynamicStrings_String s);
+static void checkMakeVariables (decl_node__opaque n, decl_node__opaque i, decl_node__opaque type, bool isvar, bool isused);
 
 /*
-   ToUpper - returns string, s, after it has had its lower case characters
-             replaced by upper case characters.
-             The string, s, is not duplicated.
+   makeVarientField - create a varient field within varient, v,
+                      The new varient field is returned.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_ToUpper (DynamicStrings_String s);
+static decl_node__opaque makeVarientField (decl_node__opaque v, decl_node__opaque p);
 
 /*
-   ToLower - returns string, s, after it has had its upper case characters
-             replaced by lower case characters.
-             The string, s, is not duplicated.
+   putFieldVarient - places the field varient, f, as a brother to, the
+                     varient symbol, v, and also tells, f, that its varient
+                     parent is, v.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_ToLower (DynamicStrings_String s);
+static void putFieldVarient (decl_node__opaque f, decl_node__opaque v);
 
 /*
-   CopyOut - copies string, s, to a.
+   putFieldRecord - create a new recordfield and place it into record r.
+                    The new field has a tagname and type and can have a
+                    variant field v.
 */
 
-extern "C" void DynamicStrings_CopyOut (char *a, unsigned int _a_high, DynamicStrings_String s);
+static decl_node__opaque putFieldRecord (decl_node__opaque r, nameKey_Name tag, decl_node__opaque type, decl_node__opaque v);
 
 /*
-   char - returns the character, ch, at position, i, in String, s.
+   ensureOrder - ensures that, a, and, b, exist in, i, and also
+                 ensure that, a, is before, b.
 */
 
-extern "C" char DynamicStrings_char (DynamicStrings_String s, int i);
+static void ensureOrder (Indexing_Index i, decl_node__opaque a, decl_node__opaque b);
 
 /*
-   string - returns the C style char * of String, s.
+   putVarientTag - places tag into variant v.
 */
 
-extern "C" void * DynamicStrings_string (DynamicStrings_String s);
+static void putVarientTag (decl_node__opaque v, decl_node__opaque tag);
 
 /*
-   InitStringDB - the debug version of InitString.
+   getParent - returns the parent field of recordfield or varientfield symbol, n.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_InitStringDB (const char *a_, unsigned int _a_high, const char *file_, unsigned int _file_high, unsigned int line);
+static decl_node__opaque getParent (decl_node__opaque n);
 
 /*
-   InitStringCharStarDB - the debug version of InitStringCharStar.
+   getRecord - returns the record associated with node, n.
+               (Parental record).
 */
 
-extern "C" DynamicStrings_String DynamicStrings_InitStringCharStarDB (void * a, const char *file_, unsigned int _file_high, unsigned int line);
+static decl_node__opaque getRecord (decl_node__opaque n);
 
 /*
-   InitStringCharDB - the debug version of InitStringChar.
+   isConstExp - return TRUE if the node kind is a constexp.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_InitStringCharDB (char ch, const char *file_, unsigned int _file_high, unsigned int line);
+static bool isConstExp (decl_node__opaque c);
 
 /*
-   MultDB - the debug version of MultDB.
+   addEnumToModule - adds enumeration type, e, into the list of enums
+                     in module, m.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_MultDB (DynamicStrings_String s, unsigned int n, const char *file_, unsigned int _file_high, unsigned int line);
+static void addEnumToModule (decl_node__opaque m, decl_node__opaque e);
 
 /*
-   DupDB - the debug version of Dup.
+   getNextFixup - return the next fixup from from f.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_DupDB (DynamicStrings_String s, const char *file_, unsigned int _file_high, unsigned int line);
+static decl_node__opaque getNextFixup (decl_fixupInfo *f);
 
 /*
-   SliceDB - debug version of Slice.
+   doMakeEnum - create an enumeration type and add it to the current module.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_SliceDB (DynamicStrings_String s, int low, int high, const char *file_, unsigned int _file_high, unsigned int line);
+static decl_node__opaque doMakeEnum (void);
 
 /*
-   PushAllocation - pushes the current allocation/deallocation lists.
+   doMakeEnumField - create an enumeration field name and add it to enumeration e.
+                     Return the new field.
 */
 
-extern "C" void DynamicStrings_PushAllocation (void);
+static decl_node__opaque doMakeEnumField (decl_node__opaque e, nameKey_Name n);
 
 /*
-   PopAllocation - test to see that all strings are deallocated since
-                   the last push.  Then it pops to the previous
-                   allocation/deallocation lists.
-
-                   If halt is true then the application terminates
-                   with an exit code of 1.
+   getExpList - returns the, n, th argument in an explist.
 */
 
-extern "C" void DynamicStrings_PopAllocation (bool halt);
+static decl_node__opaque getExpList (decl_node__opaque p, unsigned int n);
 
 /*
-   PopAllocationExemption - test to see that all strings are deallocated, except
-                            string e since the last push.
-                            Post-condition: it pops to the previous allocation/deallocation
-                            lists.
-
-                            If halt is true then the application terminates
-                            with an exit code of 1.
+   expListLen - returns the length of explist, p.
 */
 
-extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (bool halt, DynamicStrings_String e);
-extern "C" DynamicStrings_String StringConvert_IntegerToString (int i, unsigned int width, char padding, bool sign, unsigned int base, bool lower);
-extern "C" DynamicStrings_String StringConvert_CardinalToString (unsigned int c, unsigned int width, char padding, unsigned int base, bool lower);
-extern "C" int StringConvert_StringToInteger (DynamicStrings_String s, unsigned int base, bool *found);
-extern "C" unsigned int StringConvert_StringToCardinal (DynamicStrings_String s, unsigned int base, bool *found);
-extern "C" DynamicStrings_String StringConvert_LongIntegerToString (long int i, unsigned int width, char padding, bool sign, unsigned int base, bool lower);
-extern "C" long int StringConvert_StringToLongInteger (DynamicStrings_String s, unsigned int base, bool *found);
-extern "C" DynamicStrings_String StringConvert_LongCardinalToString (long unsigned int c, unsigned int width, char padding, unsigned int base, bool lower);
-extern "C" long unsigned int StringConvert_StringToLongCardinal (DynamicStrings_String s, unsigned int base, bool *found);
-extern "C" DynamicStrings_String StringConvert_ShortCardinalToString (short unsigned int c, unsigned int width, char padding, unsigned int base, bool lower);
-extern "C" short unsigned int StringConvert_StringToShortCardinal (DynamicStrings_String s, unsigned int base, bool *found);
-extern "C" int StringConvert_stoi (DynamicStrings_String s);
-extern "C" DynamicStrings_String StringConvert_itos (int i, unsigned int width, char padding, bool sign);
-extern "C" DynamicStrings_String StringConvert_ctos (unsigned int c, unsigned int width, char padding);
-extern "C" unsigned int StringConvert_stoc (DynamicStrings_String s);
-extern "C" int StringConvert_hstoi (DynamicStrings_String s);
-extern "C" int StringConvert_ostoi (DynamicStrings_String s);
-extern "C" int StringConvert_bstoi (DynamicStrings_String s);
-extern "C" unsigned int StringConvert_hstoc (DynamicStrings_String s);
-extern "C" unsigned int StringConvert_ostoc (DynamicStrings_String s);
-extern "C" unsigned int StringConvert_bstoc (DynamicStrings_String s);
-extern "C" long double StringConvert_StringToLongreal (DynamicStrings_String s, bool *found);
-extern "C" DynamicStrings_String StringConvert_LongrealToString (long double x, unsigned int TotalWidth, unsigned int FractionWidth);
-extern "C" double StringConvert_stor (DynamicStrings_String s);
-extern "C" long double StringConvert_stolr (DynamicStrings_String s);
-extern "C" DynamicStrings_String StringConvert_ToSigFig (DynamicStrings_String s, unsigned int n);
-extern "C" DynamicStrings_String StringConvert_ToDecimalPlaces (DynamicStrings_String s, unsigned int n);
-extern "C" DynamicStrings_String mcOptions_handleOptions (void);
-extern "C" bool mcOptions_getQuiet (void);
-extern "C" bool mcOptions_getVerbose (void);
-extern "C" bool mcOptions_getInternalDebugging (void);
-extern "C" DynamicStrings_String mcOptions_getCppCommandLine (void);
-extern "C" DynamicStrings_String mcOptions_getOutputFile (void);
-extern "C" bool mcOptions_getExtendedOpaque (void);
-extern "C" void mcOptions_setDebugTopological (bool value);
-extern "C" bool mcOptions_getDebugTopological (void);
-extern "C" DynamicStrings_String mcOptions_getHPrefix (void);
-extern "C" bool mcOptions_getIgnoreFQ (void);
-extern "C" bool mcOptions_getGccConfigSystem (void);
-extern "C" bool mcOptions_getScaffoldDynamic (void);
-extern "C" bool mcOptions_getScaffoldMain (void);
-extern "C" void mcOptions_writeGPLheader (FIO_File f);
-extern "C" void mcOptions_setSuppressNoReturn (bool value);
-extern "C" bool mcOptions_getSuppressNoReturn (void);
-extern "C" bool mcOptions_useBool (void);
-extern "C" DynamicStrings_String mcOptions_getCRealType (void);
-extern "C" DynamicStrings_String mcOptions_getCLongRealType (void);
-extern "C" DynamicStrings_String mcOptions_getCShortRealType (void);
-extern "C" DynamicStrings_String FormatStrings_Sprintf0 (DynamicStrings_String fmt);
-extern "C" DynamicStrings_String FormatStrings_Sprintf1 (DynamicStrings_String fmt, const unsigned char *w_, unsigned int _w_high);
-extern "C" DynamicStrings_String FormatStrings_Sprintf2 (DynamicStrings_String fmt, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high);
-extern "C" DynamicStrings_String FormatStrings_Sprintf3 (DynamicStrings_String fmt, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high, const unsigned char *w3_, unsigned int _w3_high);
-extern "C" DynamicStrings_String FormatStrings_Sprintf4 (DynamicStrings_String fmt, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high, const unsigned char *w3_, unsigned int _w3_high, const unsigned char *w4_, unsigned int _w4_high);
-extern "C" DynamicStrings_String FormatStrings_HandleEscape (DynamicStrings_String s);
-extern "C" ssize_t libc_write (int d, void * buf, size_t nbytes);
-extern "C" ssize_t libc_read (int d, void * buf, size_t nbytes);
-extern "C" int libc_system (void * a);
-extern "C" void libc_abort (void) __attribute__ ((noreturn));
-extern "C" void * libc_malloc (size_t size);
-extern "C" void libc_free (void * ptr);
-extern "C" void * libc_realloc (void * ptr, size_t size);
-extern "C" int libc_isatty (int fd);
-extern "C" void libc_exit (int r) __attribute__ ((noreturn));
-extern "C" void * libc_getenv (void * s);
-extern "C" int libc_putenv (void * s);
-extern "C" int libc_getpid (void);
-extern "C" int libc_dup (int d);
-extern "C" int libc_close (int d);
-extern "C" int libc_open (void * filename, int oflag, ...);
-extern "C" int libc_creat (void * filename, unsigned int mode);
-extern "C" ssize_t libc_lseek (int fd, ssize_t offset, int whence);
-extern "C" void libc_perror (const char *string_, unsigned int _string_high);
-extern "C" int libc_readv (int fd, void * v, int n);
-extern "C" int libc_writev (int fd, void * v, int n);
-extern "C" void * libc_getcwd (void * buf, size_t size);
-extern "C" int libc_chown (void * filename, int uid, int gid);
-extern "C" size_t libc_strlen (void * a);
-extern "C" void * libc_strcpy (void * dest, void * src);
-extern "C" void * libc_strncpy (void * dest, void * src, unsigned int n);
-extern "C" int libc_unlink (void * file);
-extern "C" void * libc_memcpy (void * dest, void * src, size_t size);
-extern "C" void * libc_memset (void * s, int c, size_t size);
-extern "C" void * libc_memmove (void * dest, void * src, size_t size);
-extern "C" int libc_printf (const char *format_, unsigned int _format_high, ...);
-extern "C" int libc_snprintf (void * dest, size_t size, const char *format_, unsigned int _format_high, ...);
-extern "C" int libc_setenv (void * name, void * value, int overwrite);
-extern "C" void libc_srand (int seed);
-extern "C" int libc_rand (void);
-extern "C" libc_time_t libc_time (void * a);
-extern "C" void * libc_localtime (libc_time_t *t);
-extern "C" int libc_ftime (libc_timeb *t);
-extern "C" int libc_shutdown (int s, int how);
-extern "C" int libc_rename (void * oldpath, void * newpath);
-extern "C" int libc_setjmp (void * env);
-extern "C" void libc_longjmp (void * env, int val);
-extern "C" int libc_atexit (libc_exitP_C proc);
-extern "C" void * libc_ttyname (int filedes);
-extern "C" unsigned int libc_sleep (unsigned int seconds);
-extern "C" int libc_execv (void * pathname, void * argv);
-extern "C" void mcMetaError_metaError1 (const char *m_, unsigned int _m_high, const unsigned char *s_, unsigned int _s_high);
-extern "C" void mcMetaError_metaError2 (const char *m_, unsigned int _m_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high);
-extern "C" void mcMetaError_metaError3 (const char *m_, unsigned int _m_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high);
-extern "C" void mcMetaError_metaError4 (const char *m_, unsigned int _m_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high, const unsigned char *s4_, unsigned int _s4_high);
-extern "C" void mcMetaError_metaErrors1 (const char *m1_, unsigned int _m1_high, const char *m2_, unsigned int _m2_high, const unsigned char *s_, unsigned int _s_high);
-extern "C" void mcMetaError_metaErrors2 (const char *m1_, unsigned int _m1_high, const char *m2_, unsigned int _m2_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high);
-extern "C" void mcMetaError_metaErrors3 (const char *m1_, unsigned int _m1_high, const char *m2_, unsigned int _m2_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high);
-extern "C" void mcMetaError_metaErrors4 (const char *m1_, unsigned int _m1_high, const char *m2_, unsigned int _m2_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high, const unsigned char *s4_, unsigned int _s4_high);
-extern "C" void mcMetaError_metaErrorT1 (unsigned int tok, const char *m_, unsigned int _m_high, const unsigned char *s_, unsigned int _s_high);
-extern "C" void mcMetaError_metaErrorT2 (unsigned int tok, const char *m_, unsigned int _m_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high);
-extern "C" void mcMetaError_metaErrorT3 (unsigned int tok, const char *m_, unsigned int _m_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high);
-extern "C" void mcMetaError_metaErrorT4 (unsigned int tok, const char *m_, unsigned int _m_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high, const unsigned char *s4_, unsigned int _s4_high);
-extern "C" void mcMetaError_metaErrorsT1 (unsigned int tok, const char *m1_, unsigned int _m1_high, const char *m2_, unsigned int _m2_high, const unsigned char *s_, unsigned int _s_high);
-extern "C" void mcMetaError_metaErrorsT2 (unsigned int tok, const char *m1_, unsigned int _m1_high, const char *m2_, unsigned int _m2_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high);
-extern "C" void mcMetaError_metaErrorsT3 (unsigned int tok, const char *m1_, unsigned int _m1_high, const char *m2_, unsigned int _m2_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high);
-extern "C" void mcMetaError_metaErrorsT4 (unsigned int tok, const char *m1_, unsigned int _m1_high, const char *m2_, unsigned int _m2_high, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high, const unsigned char *s4_, unsigned int _s4_high);
-extern "C" void mcMetaError_metaErrorString1 (DynamicStrings_String m, const unsigned char *s_, unsigned int _s_high);
-extern "C" void mcMetaError_metaErrorString2 (DynamicStrings_String m, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high);
-extern "C" void mcMetaError_metaErrorString3 (DynamicStrings_String m, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high);
-extern "C" void mcMetaError_metaErrorString4 (DynamicStrings_String m, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high, const unsigned char *s4_, unsigned int _s4_high);
-extern "C" void mcMetaError_metaErrorStringT1 (unsigned int tok, DynamicStrings_String m, const unsigned char *s_, unsigned int _s_high);
-extern "C" void mcMetaError_metaErrorStringT2 (unsigned int tok, DynamicStrings_String m, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high);
-extern "C" void mcMetaError_metaErrorStringT3 (unsigned int tok, DynamicStrings_String m, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high);
-extern "C" void mcMetaError_metaErrorStringT4 (unsigned int tok, DynamicStrings_String m, const unsigned char *s1_, unsigned int _s1_high, const unsigned char *s2_, unsigned int _s2_high, const unsigned char *s3_, unsigned int _s3_high, const unsigned char *s4_, unsigned int _s4_high);
+static unsigned int expListLen (decl_node__opaque p);
 
 /*
-   internalError - displays an internal error message together with the compiler source
-                   file and line number.
-                   This function is not buffered and is used when the compiler is about
-                   to give up.
+   getConstExpComplete - gets the field from the def or imp or module, n.
 */
 
-extern "C" void mcError_internalError (const char *a_, unsigned int _a_high, const char *file_, unsigned int _file_high, unsigned int line);
+static bool getConstExpComplete (decl_node__opaque n);
 
 /*
-   writeFormat0 - displays the source module and line together
-                  with the encapsulated format string.
-                  Used for simple error messages tied to the current token.
+   addConstToModule - adds const exp, e, into the list of constant
+                      expressions in module, m.
 */
 
-extern "C" void mcError_writeFormat0 (const char *a_, unsigned int _a_high);
+static void addConstToModule (decl_node__opaque m, decl_node__opaque e);
 
 /*
-   writeFormat1 - displays the source module and line together
-                  with the encapsulated format string.
-                  Used for simple error messages tied to the current token.
+   doMakeConstExp - create a constexp node and add it to the current module.
 */
 
-extern "C" void mcError_writeFormat1 (const char *a_, unsigned int _a_high, const unsigned char *w_, unsigned int _w_high);
+static decl_node__opaque doMakeConstExp (void);
 
 /*
-   writeFormat2 - displays the module and line together with the encapsulated
-                  format strings.
-                  Used for simple error messages tied to the current token.
+   isAnyType - return TRUE if node n is any type kind.
 */
 
-extern "C" void mcError_writeFormat2 (const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high);
+static bool isAnyType (decl_node__opaque n);
 
 /*
-   writeFormat3 - displays the module and line together with the encapsulated
-                  format strings.
-                  Used for simple error messages tied to the current token.
+   makeVal - creates a VAL (type, expression) node.
 */
 
-extern "C" void mcError_writeFormat3 (const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high, const unsigned char *w3_, unsigned int _w3_high);
+static decl_node__opaque makeVal (decl_node__opaque params);
 
 /*
-   newError - creates and returns a new error handle.
+   makeCast - creates a cast node TYPENAME (expr).
 */
 
-extern "C" mcError_error mcError_newError (unsigned int atTokenNo);
+static decl_node__opaque makeCast (decl_node__opaque c, decl_node__opaque p);
+static decl_node__opaque makeIntrinsicProc (decl_nodeT k, unsigned int noArgs, decl_node__opaque p);
 
 /*
-   newWarning - creates and returns a new error handle suitable for a warning.
-                A warning will not stop compilation.
+   makeIntrinsicUnaryType - create an intrisic unary type.
 */
 
-extern "C" mcError_error mcError_newWarning (unsigned int atTokenNo);
+static decl_node__opaque makeIntrinsicUnaryType (decl_nodeT k, decl_node__opaque paramList, decl_node__opaque returnType);
 
 /*
-   chainError - creates and returns a new error handle, this new error
-                is associated with, e, and is chained onto the end of, e.
-                If, e, is NIL then the result to NewError is returned.
+   makeIntrinsicBinaryType - create an intrisic binary type.
 */
 
-extern "C" mcError_error mcError_chainError (unsigned int atTokenNo, mcError_error e);
-extern "C" void mcError_errorFormat0 (mcError_error e, const char *a_, unsigned int _a_high);
-extern "C" void mcError_errorFormat1 (mcError_error e, const char *a_, unsigned int _a_high, const unsigned char *w_, unsigned int _w_high);
-extern "C" void mcError_errorFormat2 (mcError_error e, const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high);
-extern "C" void mcError_errorFormat3 (mcError_error e, const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high, const unsigned char *w3_, unsigned int _w3_high);
-extern "C" void mcError_errorString (mcError_error e, DynamicStrings_String str);
+static decl_node__opaque makeIntrinsicBinaryType (decl_nodeT k, decl_node__opaque paramList, decl_node__opaque returnType);
 
 /*
-   errorStringAt - given an error string, s, it places this
-                   string at token position, tok.
-                   The string is consumed.
+   checkIntrinsic - checks to see if the function call to, c, with
+                    parameter list, n, is really an intrinic.  If it
+                    is an intrinic then an intrinic node is created
+                    and returned.  Otherwise NIL is returned.
 */
 
-extern "C" void mcError_errorStringAt (DynamicStrings_String s, unsigned int tok);
+static decl_node__opaque checkIntrinsic (decl_node__opaque c, decl_node__opaque n);
 
 /*
-   errorStringAt2 - given an error string, s, it places this
-                    string at token positions, tok1 and tok2, respectively.
-                    The string is consumed.
+   checkCHeaders - check to see if the function is a C system function and
+                   requires a header file included.
 */
 
-extern "C" void mcError_errorStringAt2 (DynamicStrings_String s, unsigned int tok1, unsigned int tok2);
+static void checkCHeaders (decl_node__opaque c);
 
 /*
-   errorStringsAt2 - given error strings, s1, and, s2, it places these
-                     strings at token positions, tok1 and tok2, respectively.
-                     Both strings are consumed.
+   isFuncCall - returns TRUE if, n, is a function/procedure call.
 */
 
-extern "C" void mcError_errorStringsAt2 (DynamicStrings_String s1, DynamicStrings_String s2, unsigned int tok1, unsigned int tok2);
+static bool isFuncCall (decl_node__opaque n);
 
 /*
-   warnStringAt - given an error string, s, it places this
-                  string at token position, tok.
-                  The string is consumed.
+   putTypeInternal - marks type, des, as being an internally generated type.
 */
 
-extern "C" void mcError_warnStringAt (DynamicStrings_String s, unsigned int tok);
+static void putTypeInternal (decl_node__opaque des);
 
 /*
-   warnStringAt2 - given an warning string, s, it places this
-                   string at token positions, tok1 and tok2, respectively.
-                   The string is consumed.
+   isTypeInternal - returns TRUE if type, n, is internal.
 */
 
-extern "C" void mcError_warnStringAt2 (DynamicStrings_String s, unsigned int tok1, unsigned int tok2);
+static bool isTypeInternal (decl_node__opaque n);
 
 /*
-   warnStringsAt2 - given warning strings, s1, and, s2, it places these
-                    strings at token positions, tok1 and tok2, respectively.
-                    Both strings are consumed.
+   lookupBase - return node named n from the base symbol scope.
 */
 
-extern "C" void mcError_warnStringsAt2 (DynamicStrings_String s1, DynamicStrings_String s2, unsigned int tok1, unsigned int tok2);
-extern "C" void mcError_warnFormat0 (const char *a_, unsigned int _a_high);
+static decl_node__opaque lookupBase (nameKey_Name n);
 
 /*
-   warnFormat1 - displays the source module and line together
-                 with the encapsulated format string.
-                 Used for simple warning messages tied to the current token.
+   dumpScopes - display the names of all the scopes stacked.
 */
 
-extern "C" void mcError_warnFormat1 (const char *a_, unsigned int _a_high, const unsigned char *w_, unsigned int _w_high);
+static void dumpScopes (void);
 
 /*
-   flushErrors - switches the output channel to the error channel
-                 and then writes out all errors.
+   out0 - write string a to StdOut.
 */
 
-extern "C" void mcError_flushErrors (void);
+static void out0 (const char *a_, unsigned int _a_high);
 
 /*
-   flushWarnings - switches the output channel to the error channel
-                   and then writes out all warnings.
-                   If an error is present the compilation is terminated,
-                   if warnings only were emitted then compilation will
-                   continue.
+   out1 - write string a to StdOut using format specifier a.
 */
 
-extern "C" void mcError_flushWarnings (void);
+static void out1 (const char *a_, unsigned int _a_high, decl_node__opaque s);
 
 /*
-   errorAbort0 - aborts compiling, it flushes all warnings and errors before aborting.
+   out2 - write string a to StdOut using format specifier a.
 */
 
-extern "C" void mcError_errorAbort0 (const char *a_, unsigned int _a_high);
-extern "C" mcComment_commentDesc mcLexBuf_getProcedureComment (void);
-extern "C" mcComment_commentDesc mcLexBuf_getBodyComment (void);
-extern "C" mcComment_commentDesc mcLexBuf_getAfterComment (void);
-extern "C" bool mcLexBuf_openSource (DynamicStrings_String s);
-extern "C" void mcLexBuf_closeSource (void);
-extern "C" void mcLexBuf_reInitialize (void);
-extern "C" void mcLexBuf_resetForNewPass (void);
-extern "C" void mcLexBuf_getToken (void);
-extern "C" void mcLexBuf_insertToken (mcReserved_toktype token);
-extern "C" void mcLexBuf_insertTokenAndRewind (mcReserved_toktype token);
-extern "C" unsigned int mcLexBuf_getPreviousTokenLineNo (void);
-extern "C" unsigned int mcLexBuf_getLineNo (void);
-extern "C" unsigned int mcLexBuf_getTokenNo (void);
-extern "C" unsigned int mcLexBuf_tokenToLineNo (unsigned int tokenNo, unsigned int depth);
-extern "C" unsigned int mcLexBuf_getColumnNo (void);
-extern "C" unsigned int mcLexBuf_tokenToColumnNo (unsigned int tokenNo, unsigned int depth);
-extern "C" DynamicStrings_String mcLexBuf_findFileNameFromToken (unsigned int tokenNo, unsigned int depth);
-extern "C" DynamicStrings_String mcLexBuf_getFileName (void);
-extern "C" void mcLexBuf_addTok (mcReserved_toktype t);
-extern "C" void mcLexBuf_addTokCharStar (mcReserved_toktype t, void * s);
-extern "C" void mcLexBuf_addTokInteger (mcReserved_toktype t, int i);
-extern "C" void mcLexBuf_addTokComment (mcReserved_toktype t, mcComment_commentDesc com);
-extern "C" void mcLexBuf_setFile (void * filename);
-extern "C" void mcLexBuf_pushFile (void * filename);
-extern "C" void mcLexBuf_popFile (void * filename);
-extern "C" void StrLib_StrConCat (const char *a_, unsigned int _a_high, const char *b_, unsigned int _b_high, char *c, unsigned int _c_high);
-extern "C" bool StrLib_StrLess (const char *a_, unsigned int _a_high, const char *b_, unsigned int _b_high);
-extern "C" bool StrLib_StrEqual (const char *a_, unsigned int _a_high, const char *b_, unsigned int _b_high);
-extern "C" unsigned int StrLib_StrLen (const char *a_, unsigned int _a_high);
-extern "C" void StrLib_StrCopy (const char *src_, unsigned int _src_high, char *dest, unsigned int _dest_high);
-extern "C" bool StrLib_IsSubString (const char *a_, unsigned int _a_high, const char *b_, unsigned int _b_high);
-extern "C" void StrLib_StrRemoveWhitePrefix (const char *a_, unsigned int _a_high, char *b, unsigned int _b_high);
+static void out2 (const char *a_, unsigned int _a_high, unsigned int c, decl_node__opaque s);
 
 /*
-   initPretty - initialise a pretty print data structure.
+   out3 - write string a to StdOut using format specifier a.
 */
 
-extern "C" mcPretty_pretty mcPretty_initPretty (mcPretty_writeProc w, mcPretty_writeLnProc l);
+static void out3 (const char *a_, unsigned int _a_high, unsigned int l, nameKey_Name n, decl_node__opaque s);
 
 /*
-   dupPretty - duplicate a pretty print data structure.
+   isUnary - returns TRUE if, n, is an unary node.
 */
 
-extern "C" mcPretty_pretty mcPretty_dupPretty (mcPretty_pretty p);
+static bool isUnary (decl_node__opaque n);
 
 /*
-   killPretty - destroy a pretty print data structure.
-                Post condition:  p is assigned to NIL.
+   isBinary - returns TRUE if, n, is an binary node.
 */
 
-extern "C" void mcPretty_killPretty (mcPretty_pretty *p);
+static bool isBinary (decl_node__opaque n);
 
 /*
-   pushPretty - duplicate, p.  Push, p, and return the duplicate.
+   makeUnary - create a unary expression node with, e, as the argument
+               and res as the return type.
 */
 
-extern "C" mcPretty_pretty mcPretty_pushPretty (mcPretty_pretty p);
+static decl_node__opaque makeUnary (decl_nodeT k, decl_node__opaque e, decl_node__opaque res);
 
 /*
-   popPretty - pops the pretty object from the stack.
+   isLeafString - returns TRUE if n is a leaf node which is a string constant.
 */
 
-extern "C" mcPretty_pretty mcPretty_popPretty (mcPretty_pretty p);
+static bool isLeafString (decl_node__opaque n);
 
 /*
-   getindent - returns the current indent value.
+   getLiteralStringContents - return the contents of a literal node as a string.
 */
 
-extern "C" unsigned int mcPretty_getindent (mcPretty_pretty p);
+static DynamicStrings_String getLiteralStringContents (decl_node__opaque n);
 
 /*
-   setindent - sets the current indent to, n.
+   getStringContents - return the string contents of a constant, literal,
+                       string or a constexp node.
 */
 
-extern "C" void mcPretty_setindent (mcPretty_pretty p, unsigned int n);
+static DynamicStrings_String getStringContents (decl_node__opaque n);
 
 /*
-   getcurpos - returns the current cursor position.
+   addNames -
 */
 
-extern "C" unsigned int mcPretty_getcurpos (mcPretty_pretty s);
+static nameKey_Name addNames (decl_node__opaque a, decl_node__opaque b);
 
 /*
-   getseekpos - returns the seek position.
+   resolveString -
 */
 
-extern "C" unsigned int mcPretty_getseekpos (mcPretty_pretty s);
+static decl_node__opaque resolveString (decl_node__opaque n);
 
 /*
-   getcurline - returns the current line number.
+   foldBinary -
 */
 
-extern "C" unsigned int mcPretty_getcurline (mcPretty_pretty s);
-extern "C" void mcPretty_setNeedSpace (mcPretty_pretty s);
+static decl_node__opaque foldBinary (decl_nodeT k, decl_node__opaque l, decl_node__opaque r, decl_node__opaque res);
 
 /*
-   noSpace - unset needsSpace.
+   makeBinary - create a binary node with left/right/result type:  l, r and resultType.
 */
 
-extern "C" void mcPretty_noSpace (mcPretty_pretty s);
+static decl_node__opaque makeBinary (decl_nodeT k, decl_node__opaque l, decl_node__opaque r, decl_node__opaque resultType);
 
 /*
-   print - print a string using, p.
+   doMakeBinary - returns a binary node containing left/right/result values
+                  l, r, res, with a node operator, k.
 */
 
-extern "C" void mcPretty_print (mcPretty_pretty p, const char *a_, unsigned int _a_high);
+static decl_node__opaque doMakeBinary (decl_nodeT k, decl_node__opaque l, decl_node__opaque r, decl_node__opaque res);
 
 /*
-   prints - print a string using, p.
+   doMakeComponentRef -
 */
 
-extern "C" void mcPretty_prints (mcPretty_pretty p, DynamicStrings_String s);
+static decl_node__opaque doMakeComponentRef (decl_node__opaque rec, decl_node__opaque field);
 
 /*
-   raw - print out string, s, without any translation of
-         escape sequences.
+   isComponentRef -
 */
 
-extern "C" void mcPretty_raw (mcPretty_pretty p, DynamicStrings_String s);
+static bool isComponentRef (decl_node__opaque n);
 
 /*
-   InitIndex - creates and returns an Index.
+   isArrayRef - returns TRUE if the node was an arrayref.
 */
 
-extern "C" Indexing_Index Indexing_InitIndex (unsigned int low);
+static bool isArrayRef (decl_node__opaque n);
 
 /*
-   KillIndex - returns Index to free storage.
+   isDeref - returns TRUE if, n, is a deref node.
 */
 
-extern "C" Indexing_Index Indexing_KillIndex (Indexing_Index i);
+static bool isDeref (decl_node__opaque n);
 
 /*
-   DebugIndex - turns on debugging within an index.
+   makeBase - create a base type or constant.
+              It only supports the base types and constants
+              enumerated below.
 */
 
-extern "C" Indexing_Index Indexing_DebugIndex (Indexing_Index i);
+static decl_node__opaque makeBase (decl_nodeT k);
 
 /*
-   InBounds - returns TRUE if indice, n, is within the bounds
-              of the dynamic array.
+   isOrdinal - returns TRUE if, n, is an ordinal type.
 */
 
-extern "C" bool Indexing_InBounds (Indexing_Index i, unsigned int n);
+static bool isOrdinal (decl_node__opaque n);
 
 /*
-   HighIndice - returns the last legally accessible indice of this array.
+   mixTypes -
 */
 
-extern "C" unsigned int Indexing_HighIndice (Indexing_Index i);
+static decl_node__opaque mixTypes (decl_node__opaque a, decl_node__opaque b);
 
 /*
-   LowIndice - returns the first legally accessible indice of this array.
+   doSetExprType -
 */
 
-extern "C" unsigned int Indexing_LowIndice (Indexing_Index i);
+static decl_node__opaque doSetExprType (decl_node__opaque *t, decl_node__opaque n);
 
 /*
-   PutIndice - places, a, into the dynamic array at position i[n]
+   getMaxMinType -
 */
 
-extern "C" void Indexing_PutIndice (Indexing_Index i, unsigned int n, void * a);
+static decl_node__opaque getMaxMinType (decl_node__opaque n);
 
 /*
-   GetIndice - retrieves, element i[n] from the dynamic array.
+   doGetFuncType -
 */
 
-extern "C" void * Indexing_GetIndice (Indexing_Index i, unsigned int n);
+static decl_node__opaque doGetFuncType (decl_node__opaque n);
 
 /*
-   IsIndiceInIndex - returns TRUE if, a, is in the index, i.
+   doGetExprType - works out the type which is associated with node, n.
 */
 
-extern "C" bool Indexing_IsIndiceInIndex (Indexing_Index i, void * a);
+static decl_node__opaque doGetExprType (decl_node__opaque n);
 
 /*
-   RemoveIndiceFromIndex - removes, a, from Index, i.
+   getExprType - return the expression type.
 */
 
-extern "C" void Indexing_RemoveIndiceFromIndex (Indexing_Index i, void * a);
+static decl_node__opaque getExprType (decl_node__opaque n);
 
 /*
-   DeleteIndice - delete i[j] from the array.
+   openOutput -
 */
 
-extern "C" void Indexing_DeleteIndice (Indexing_Index i, unsigned int j);
+static void openOutput (void);
 
 /*
-   IncludeIndiceIntoIndex - if the indice is not in the index, then
-                            add it at the end.
+   closeOutput -
 */
 
-extern "C" void Indexing_IncludeIndiceIntoIndex (Indexing_Index i, void * a);
+static void closeOutput (void);
 
 /*
-   ForeachIndiceInIndexDo - for each j indice of i, call procedure p(i[j])
+   write - outputs a single char, ch.
 */
 
-extern "C" void Indexing_ForeachIndiceInIndexDo (Indexing_Index i, Indexing_IndexProcedure p);
+static void write_ (char ch);
 
 /*
-   initList - creates a new alist, l.
+   writeln -
 */
 
-extern "C" alists_alist alists_initList (void);
+static void writeln (void);
 
 /*
-   killList - deletes the complete alist, l.
+   doIncludeC - include header file for definition module, n.
 */
 
-extern "C" void alists_killList (alists_alist *l);
+static void doIncludeC (decl_node__opaque n);
 
 /*
-   putItemIntoList - places an ADDRESS, c, into alist, l.
+   getSymScope - returns the scope where node, n, was declared.
 */
 
-extern "C" void alists_putItemIntoList (alists_alist l, void * c);
+static decl_node__opaque getSymScope (decl_node__opaque n);
 
 /*
-   getItemFromList - retrieves the nth WORD from alist, l.
+   isQualifiedForced - should the node be written with a module prefix?
 */
 
-extern "C" void * alists_getItemFromList (alists_alist l, unsigned int n);
+static bool isQualifiedForced (decl_node__opaque n);
 
 /*
-   getIndexOfList - returns the index for WORD, c, in alist, l.
-                    If more than one WORD, c, exists the index
-                    for the first is returned.
+   getFQstring -
 */
 
-extern "C" unsigned int alists_getIndexOfList (alists_alist l, void * c);
+static DynamicStrings_String getFQstring (decl_node__opaque n);
 
 /*
-   noOfItemsInList - returns the number of items in alist, l.
+   getFQDstring -
 */
 
-extern "C" unsigned int alists_noOfItemsInList (alists_alist l);
+static DynamicStrings_String getFQDstring (decl_node__opaque n, bool scopes);
 
 /*
-   includeItemIntoList - adds an ADDRESS, c, into a alist providing
-                         the value does not already exist.
+   getString - returns the name as a string.
 */
 
-extern "C" void alists_includeItemIntoList (alists_alist l, void * c);
+static DynamicStrings_String getString (decl_node__opaque n);
 
 /*
-   removeItemFromList - removes a ADDRESS, c, from a alist.
-                        It assumes that this value only appears once.
+   doNone - call HALT.
 */
 
-extern "C" void alists_removeItemFromList (alists_alist l, void * c);
+static void doNone (decl_node__opaque n);
 
 /*
-   isItemInList - returns true if a ADDRESS, c, was found in alist, l.
+   doNothing - does nothing!
 */
 
-extern "C" bool alists_isItemInList (alists_alist l, void * c);
+static void doNothing (decl_node__opaque n);
 
 /*
-   foreachItemInListDo - calls procedure, P, foreach item in alist, l.
+   doConstC -
 */
 
-extern "C" void alists_foreachItemInListDo (alists_alist l, alists_performOperation p);
+static void doConstC (decl_node__opaque n);
 
 /*
-   duplicateList - returns a duplicate alist derived from, l.
+   needsParen - returns TRUE if expression, n, needs to be enclosed in ().
 */
 
-extern "C" alists_alist alists_duplicateList (alists_alist l);
+static bool needsParen (decl_node__opaque n);
 
 /*
-   equalList - returns TRUE if left contains the same information as right.
+   doUnary -
 */
 
-extern "C" bool alists_equalList (alists_alist left, alists_alist right);
+static void doUnary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node__opaque expr, decl_node__opaque type, bool l, bool r);
 
 /*
-   initList - creates a new wlist, l.
+   doSetSub - perform  l & (~ r)
 */
 
-extern "C" wlists_wlist wlists_initList (void);
+static void doSetSub (mcPretty_pretty p, decl_node__opaque left, decl_node__opaque right);
 
 /*
-   killList - deletes the complete wlist, l.
+   doPolyBinary -
 */
 
-extern "C" void wlists_killList (wlists_wlist *l);
+static void doPolyBinary (mcPretty_pretty p, decl_nodeT op, decl_node__opaque left, decl_node__opaque right, bool l, bool r);
 
 /*
-   putItemIntoList - places an WORD, c, into wlist, l.
+   doBinary -
 */
 
-extern "C" void wlists_putItemIntoList (wlists_wlist l, unsigned int c);
+static void doBinary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node__opaque left, decl_node__opaque right, bool l, bool r, bool unpackProc);
 
 /*
-   getItemFromList - retrieves the nth WORD from wlist, l.
+   doPostUnary -
 */
 
-extern "C" unsigned int wlists_getItemFromList (wlists_wlist l, unsigned int n);
+static void doPostUnary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node__opaque expr);
 
 /*
-   getIndexOfList - returns the index for WORD, c, in wlist, l.
-                    If more than one WORD, c, exists the index
-                    for the first is returned.
+   doDeRefC -
 */
 
-extern "C" unsigned int wlists_getIndexOfList (wlists_wlist l, unsigned int c);
+static decl_node__opaque doDeRefC (mcPretty_pretty p, decl_node__opaque expr);
 
 /*
-   noOfItemsInList - returns the number of items in wlist, l.
+   doGetLastOp - returns, a, if b is a terminal otherwise walk right.
 */
 
-extern "C" unsigned int wlists_noOfItemsInList (wlists_wlist l);
+static decl_node__opaque doGetLastOp (decl_node__opaque a, decl_node__opaque b);
 
 /*
-   includeItemIntoList - adds an WORD, c, into a wlist providing
-                         the value does not already exist.
+   doComponentRefC -
 */
 
-extern "C" void wlists_includeItemIntoList (wlists_wlist l, unsigned int c);
+static void doComponentRefC (mcPretty_pretty p, decl_node__opaque l, decl_node__opaque r);
 
 /*
-   removeItemFromList - removes a WORD, c, from a wlist.
-                        It assumes that this value only appears once.
+   doPointerRefC -
 */
 
-extern "C" void wlists_removeItemFromList (wlists_wlist l, unsigned int c);
+static void doPointerRefC (mcPretty_pretty p, decl_node__opaque l, decl_node__opaque r);
 
 /*
-   replaceItemInList - replace the nth WORD in wlist, l.
-                       The first item in a wlists is at index, 1.
-                       If the index, n, is out of range nothing is changed.
+   doPreBinary -
 */
 
-extern "C" void wlists_replaceItemInList (wlists_wlist l, unsigned int n, unsigned int w);
+static void doPreBinary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node__opaque left, decl_node__opaque right, bool l, bool r);
 
 /*
-   isItemInList - returns true if a WORD, c, was found in wlist, l.
+   doConstExpr -
 */
 
-extern "C" bool wlists_isItemInList (wlists_wlist l, unsigned int c);
+static void doConstExpr (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   foreachItemInListDo - calls procedure, P, foreach item in wlist, l.
+   doEnumerationField -
 */
 
-extern "C" void wlists_foreachItemInListDo (wlists_wlist l, wlists_performOperation p);
+static void doEnumerationField (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   duplicateList - returns a duplicate wlist derived from, l.
+   isZero - returns TRUE if node, n, is zero.
 */
 
-extern "C" wlists_wlist wlists_duplicateList (wlists_wlist l);
-extern "C" void keyc_useUnistd (void);
-extern "C" void keyc_useThrow (void);
-extern "C" void keyc_useStorage (void);
-extern "C" void keyc_useFree (void);
-extern "C" void keyc_useMalloc (void);
-extern "C" void keyc_useProc (void);
-extern "C" void keyc_useTrue (void);
-extern "C" void keyc_useFalse (void);
-extern "C" void keyc_useNull (void);
-extern "C" void keyc_useMemcpy (void);
-extern "C" void keyc_useIntMin (void);
-extern "C" void keyc_useUIntMin (void);
-extern "C" void keyc_useLongMin (void);
-extern "C" void keyc_useULongMin (void);
-extern "C" void keyc_useCharMin (void);
-extern "C" void keyc_useUCharMin (void);
-extern "C" void keyc_useIntMax (void);
-extern "C" void keyc_useUIntMax (void);
-extern "C" void keyc_useLongMax (void);
-extern "C" void keyc_useULongMax (void);
-extern "C" void keyc_useCharMax (void);
-extern "C" void keyc_useUCharMax (void);
-extern "C" void keyc_useSize_t (void);
-extern "C" void keyc_useSSize_t (void);
-extern "C" void keyc_useLabs (void);
-extern "C" void keyc_useAbs (void);
-extern "C" void keyc_useFabs (void);
-extern "C" void keyc_useFabsl (void);
-extern "C" void keyc_useException (void);
-extern "C" void keyc_useComplex (void);
-extern "C" void keyc_useM2RTS (void);
-extern "C" void keyc_useStrlen (void);
-extern "C" void keyc_useCtype (void);
-extern "C" void keyc_genDefs (mcPretty_pretty p);
-extern "C" void keyc_genConfigSystem (mcPretty_pretty p);
-extern "C" void keyc_enterScope (decl_node n);
-extern "C" void keyc_leaveScope (decl_node n);
-extern "C" DynamicStrings_String keyc_cname (nameKey_Name n, bool scopes);
-extern "C" nameKey_Name keyc_cnamen (nameKey_Name n, bool scopes);
-extern "C" void keyc_cp (void);
-extern "C" FIO_File mcStream_openFrag (unsigned int id);
-extern "C" void mcStream_setDest (FIO_File f);
-extern "C" FIO_File mcStream_combine (void);
-extern "C" void mcStream_removeFiles (void);
-extern "C" void StrIO_WriteLn (void);
-extern "C" void StrIO_ReadString (char *a, unsigned int _a_high);
-extern "C" void StrIO_WriteString (const char *a_, unsigned int _a_high);
-extern "C" void NumberIO_ReadCard (unsigned int *x);
-extern "C" void NumberIO_WriteCard (unsigned int x, unsigned int n);
-extern "C" void NumberIO_ReadHex (unsigned int *x);
-extern "C" void NumberIO_WriteHex (unsigned int x, unsigned int n);
-extern "C" void NumberIO_ReadInt (int *x);
-extern "C" void NumberIO_WriteInt (int x, unsigned int n);
-extern "C" void NumberIO_CardToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high);
-extern "C" void NumberIO_StrToCard (const char *a_, unsigned int _a_high, unsigned int *x);
-extern "C" void NumberIO_HexToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high);
-extern "C" void NumberIO_StrToHex (const char *a_, unsigned int _a_high, unsigned int *x);
-extern "C" void NumberIO_IntToStr (int x, unsigned int n, char *a, unsigned int _a_high);
-extern "C" void NumberIO_StrToInt (const char *a_, unsigned int _a_high, int *x);
-extern "C" void NumberIO_ReadOct (unsigned int *x);
-extern "C" void NumberIO_WriteOct (unsigned int x, unsigned int n);
-extern "C" void NumberIO_OctToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high);
-extern "C" void NumberIO_StrToOct (const char *a_, unsigned int _a_high, unsigned int *x);
-extern "C" void NumberIO_ReadBin (unsigned int *x);
-extern "C" void NumberIO_WriteBin (unsigned int x, unsigned int n);
-extern "C" void NumberIO_BinToStr (unsigned int x, unsigned int n, char *a, unsigned int _a_high);
-extern "C" void NumberIO_StrToBin (const char *a_, unsigned int _a_high, unsigned int *x);
-extern "C" void NumberIO_StrToBinInt (const char *a_, unsigned int _a_high, int *x);
-extern "C" void NumberIO_StrToHexInt (const char *a_, unsigned int _a_high, int *x);
-extern "C" void NumberIO_StrToOctInt (const char *a_, unsigned int _a_high, int *x);
-extern "C" void Debug_Halt (const char *Message_, unsigned int _Message_high, const char *Module_, unsigned int _Module_high, const char *Function_, unsigned int _Function_high, unsigned int LineNo);
-extern "C" void Debug_DebugString (const char *a_, unsigned int _a_high);
-extern "C" void Assertion_Assert (bool Condition);
-extern "C" void StdIO_Read (char *ch);
-extern "C" void StdIO_Write (char ch);
-extern "C" void StdIO_PushOutput (StdIO_ProcWrite p);
-extern "C" void StdIO_PopOutput (void);
-extern "C" StdIO_ProcWrite StdIO_GetCurrentOutput (void);
-extern "C" void StdIO_PushInput (StdIO_ProcRead p);
-extern "C" void StdIO_PopInput (void);
-extern "C" StdIO_ProcRead StdIO_GetCurrentInput (void);
-extern "C" void mcPrintf_printf0 (const char *a_, unsigned int _a_high);
-extern "C" void mcPrintf_printf1 (const char *a_, unsigned int _a_high, const unsigned char *w_, unsigned int _w_high);
-extern "C" void mcPrintf_printf2 (const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high);
-extern "C" void mcPrintf_printf3 (const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high, const unsigned char *w3_, unsigned int _w3_high);
-extern "C" void mcPrintf_printf4 (const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high, const unsigned char *w3_, unsigned int _w3_high, const unsigned char *w4_, unsigned int _w4_high);
-extern "C" void mcPrintf_fprintf0 (FIO_File file, const char *a_, unsigned int _a_high);
-extern "C" void mcPrintf_fprintf1 (FIO_File file, const char *a_, unsigned int _a_high, const unsigned char *w_, unsigned int _w_high);
-extern "C" void mcPrintf_fprintf2 (FIO_File file, const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high);
-extern "C" void mcPrintf_fprintf3 (FIO_File file, const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high, const unsigned char *w3_, unsigned int _w3_high);
-extern "C" void mcPrintf_fprintf4 (FIO_File file, const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high, const unsigned char *w3_, unsigned int _w3_high, const unsigned char *w4_, unsigned int _w4_high);
+static bool isZero (decl_node__opaque n);
 
 /*
-   newNode - create and return a new node of kind k.
+   doArrayRef - perform an array reference.  If constCast
+                then an unbounded array access will be const_cast
+                (the constCast should be TRUE if an assignment to
+                the array is required).
 */
 
-static decl_node newNode (decl_nodeT k);
+static void doArrayRef (mcPretty_pretty p, decl_node__opaque n, bool constCast);
 
 /*
-   disposeNode - dispose node, n.
+   doProcedure -
 */
 
-static void disposeNode (decl_node *n);
+static void doProcedure (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   newGroup -
+   doRecordfield -
 */
 
-static void newGroup (decl_group *g);
+static void doRecordfield (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   initGroup - returns a group which with all lists initialized.
+   doCastC -
 */
 
-static decl_group initGroup (void);
+static void doCastC (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque e);
 
 /*
-   killGroup - deallocate the group and place the group record into the freeGroup list.
+   doSetValueC -
 */
 
-static void killGroup (decl_group *g);
+static void doSetValueC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   dupGroup - If g is not NIL then destroy g.
-              Return a duplicate of GlobalGroup (not g).
+   getSetLow - returns the low value of the set type from
+               expression, n.
 */
 
-static decl_group dupGroup (decl_group g);
+static decl_node__opaque getSetLow (decl_node__opaque n);
 
 /*
-   equalGroup - return TRUE if group left = right.
+   doInC - performs (((1 << (l)) & (r)) != 0)
 */
 
-static bool equalGroup (decl_group left, decl_group right);
+static void doInC (mcPretty_pretty p, decl_node__opaque l, decl_node__opaque r);
 
 /*
-   isLocal - returns TRUE if symbol, n, is locally declared in a procedure.
+   doThrowC -
 */
 
-static bool isLocal (decl_node n);
+static void doThrowC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   importEnumFields - if, n, is an enumeration type import the all fields into module, m.
+   doUnreachableC -
 */
 
-static void importEnumFields (decl_node m, decl_node n);
+static void doUnreachableC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   isComplex - returns TRUE if, n, is the complex type.
+   outNull -
 */
 
-static bool isComplex (decl_node n);
+static void outNull (mcPretty_pretty p);
 
 /*
-   isLongComplex - returns TRUE if, n, is the longcomplex type.
+   outTrue -
 */
 
-static bool isLongComplex (decl_node n);
+static void outTrue (mcPretty_pretty p);
 
 /*
-   isShortComplex - returns TRUE if, n, is the shortcomplex type.
+   outFalse -
 */
 
-static bool isShortComplex (decl_node n);
+static void outFalse (mcPretty_pretty p);
 
 /*
-   isAProcType - returns TRUE if, n, is a proctype or proc node.
+   doExprC -
 */
 
-static bool isAProcType (decl_node n);
+static void doExprC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   initFixupInfo - initialize the fixupInfo record.
+   doExprCup -
 */
 
-static decl_fixupInfo initFixupInfo (void);
+static decl_node__opaque doExprCup (mcPretty_pretty p, decl_node__opaque n, bool unpackProc, bool uncastConst);
 
 /*
-   makeDef - returns a definition module node named, n.
+   doExprM2 -
 */
 
-static decl_node makeDef (nameKey_Name n);
+static void doExprM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   makeImp - returns an implementation module node named, n.
+   doVar -
 */
 
-static decl_node makeImp (nameKey_Name n);
+static void doVar (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   makeModule - returns a module node named, n.
+   doLiteralC -
 */
 
-static decl_node makeModule (nameKey_Name n);
+static void doLiteralC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   isDefForC - returns TRUE if the definition module was defined FOR "C".
+   doLiteral -
 */
 
-static bool isDefForC (decl_node n);
+static void doLiteral (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   initDecls - initialize the decls, scopeT.
+   isString - returns TRUE if node, n, is a string.
 */
 
-static void initDecls (decl_scopeT *decls);
+static bool isString (decl_node__opaque n);
 
 /*
-   addTo - adds node, d, to scope decls and returns, d.
-           It stores, d, in the symbols tree associated with decls.
+   doString -
 */
 
-static decl_node addTo (decl_scopeT *decls, decl_node d);
+static void doString (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   export - export node, n, from definition module, d.
+   replaceChar - replace every occurance of, ch, by, a and return modified string, s.
 */
 
-static void export_ (decl_node d, decl_node n);
+static DynamicStrings_String replaceChar (DynamicStrings_String s, char ch, const char *a_, unsigned int _a_high);
 
 /*
-   addToScope - adds node, n, to the current scope and returns, n.
+   toCstring - translates string, n, into a C string
+               and returns the new String.
 */
 
-static decl_node addToScope (decl_node n);
+static DynamicStrings_String toCstring (nameKey_Name n);
 
 /*
-   addModuleToScope - adds module, i, to module, m, scope.
+   toCchar -
 */
 
-static void addModuleToScope (decl_node m, decl_node i);
+static DynamicStrings_String toCchar (nameKey_Name n);
 
 /*
-   completedEnum - assign boolean enumsComplete to TRUE if a definition,
-                   implementation or module symbol.
+   countChar -
 */
 
-static void completedEnum (decl_node n);
+static unsigned int countChar (DynamicStrings_String s, char ch);
 
 /*
-   setUnary - sets a unary node to contain, arg, a, and type, t.
+   lenCstring -
 */
 
-static void setUnary (decl_node u, decl_nodeT k, decl_node a, decl_node t);
+static unsigned int lenCstring (DynamicStrings_String s);
 
 /*
-   putVarBool - assigns the four booleans associated with a variable.
+   outCstring -
 */
 
-static void putVarBool (decl_node v, bool init, bool param, bool isvar, bool isused);
+static void outCstring (mcPretty_pretty p, decl_node__opaque s, bool aString);
 
 /*
-   checkPtr - in C++ we need to create a typedef for a pointer
-              in case we need to use reinterpret_cast.
+   doStringC -
 */
 
-static decl_node checkPtr (decl_node n);
+static void doStringC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   isVarDecl - returns TRUE if, n, is a vardecl node.
+   isPunct -
 */
 
-static bool isVarDecl (decl_node n);
+static bool isPunct (char ch);
 
 /*
-   makeVariablesFromParameters - creates variables which are really parameters.
+   isWhite -
 */
 
-static void makeVariablesFromParameters (decl_node proc, decl_node id, decl_node type, bool isvar, bool isused);
+static bool isWhite (char ch);
 
 /*
-   addProcedureToScope - add a procedure name n and node d to the
-                         current scope.
+   outText -
 */
 
-static decl_node addProcedureToScope (decl_node d, nameKey_Name n);
+static void outText (mcPretty_pretty p, const char *a_, unsigned int _a_high);
 
 /*
-   putProcTypeReturn - sets the return type of, proc, to, type.
+   outRawS -
 */
 
-static void putProcTypeReturn (decl_node proc, decl_node type);
+static void outRawS (mcPretty_pretty p, DynamicStrings_String s);
 
 /*
-   putProcTypeOptReturn - sets, proc, to have an optional return type.
+   outKm2 -
 */
 
-static void putProcTypeOptReturn (decl_node proc);
+static mcPretty_pretty outKm2 (mcPretty_pretty p, const char *a_, unsigned int _a_high);
 
 /*
-   makeOptParameter - creates and returns an optarg.
+   outKc -
 */
 
-static decl_node makeOptParameter (decl_node l, decl_node type, decl_node init);
+static mcPretty_pretty outKc (mcPretty_pretty p, const char *a_, unsigned int _a_high);
 
 /*
-   setwatch - assign the globalNode to n.
+   outTextS -
 */
 
-static bool setwatch (decl_node n);
+static void outTextS (mcPretty_pretty p, DynamicStrings_String s);
 
 /*
-   runwatch - set the globalNode to an identlist.
+   outCard -
 */
 
-static bool runwatch (void);
+static void outCard (mcPretty_pretty p, unsigned int c);
 
 /*
-   isIdentList - returns TRUE if, n, is an identlist.
+   outTextN -
 */
 
-static bool isIdentList (decl_node n);
+static void outTextN (mcPretty_pretty p, nameKey_Name n);
 
 /*
-   identListLen - returns the length of identlist.
+   outputEnumerationC -
 */
 
-static unsigned int identListLen (decl_node n);
+static void outputEnumerationC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   checkParameters - placeholder for future parameter checking.
+   isDeclType - return TRUE if the current module should declare type.
 */
 
-static void checkParameters (decl_node p, decl_node i, decl_node type, bool isvar, bool isused);
+static bool isDeclType (decl_node__opaque type);
 
 /*
-   checkMakeVariables - create shadow local variables for parameters providing that
-                        procedure n has not already been built and we are compiling
-                        a module or an implementation module.
+   doEnumerationC -
 */
 
-static void checkMakeVariables (decl_node n, decl_node i, decl_node type, bool isvar, bool isused);
+static void doEnumerationC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   makeVarientField - create a varient field within varient, v,
-                      The new varient field is returned.
+   doNamesC -
 */
 
-static decl_node makeVarientField (decl_node v, decl_node p);
+static void doNamesC (mcPretty_pretty p, nameKey_Name n);
 
 /*
-   putFieldVarient - places the field varient, f, as a brother to, the
-                     varient symbol, v, and also tells, f, that its varient
-                     parent is, v.
+   doNameC -
 */
 
-static void putFieldVarient (decl_node f, decl_node v);
+static void doNameC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   putFieldRecord - create a new recordfield and place it into record r.
-                    The new field has a tagname and type and can have a
-                    variant field v.
+   initCname -
 */
 
-static decl_node putFieldRecord (decl_node r, nameKey_Name tag, decl_node type, decl_node v);
+static void initCname (decl_cnameT *c);
 
 /*
-   ensureOrder - ensures that, a, and, b, exist in, i, and also
-                 ensure that, a, is before, b.
+   doCname -
 */
 
-static void ensureOrder (Indexing_Index i, decl_node a, decl_node b);
+static nameKey_Name doCname (nameKey_Name n, decl_cnameT *c, bool scopes);
 
 /*
-   putVarientTag - places tag into variant v.
+   getDName -
 */
 
-static void putVarientTag (decl_node v, decl_node tag);
+static nameKey_Name getDName (decl_node__opaque n, bool scopes);
 
 /*
-   getParent - returns the parent field of recordfield or varientfield symbol, n.
+   doDNameC -
 */
 
-static decl_node getParent (decl_node n);
+static void doDNameC (mcPretty_pretty p, decl_node__opaque n, bool scopes);
 
 /*
-   getRecord - returns the record associated with node, n.
-               (Parental record).
+   doFQDNameC -
 */
 
-static decl_node getRecord (decl_node n);
+static void doFQDNameC (mcPretty_pretty p, decl_node__opaque n, bool scopes);
 
 /*
-   isConstExp - return TRUE if the node kind is a constexp.
+   doFQNameC -
 */
 
-static bool isConstExp (decl_node c);
+static void doFQNameC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   addEnumToModule - adds enumeration type, e, into the list of enums
-                     in module, m.
+   doNameM2 -
 */
 
-static void addEnumToModule (decl_node m, decl_node e);
+static void doNameM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   getNextFixup - return the next fixup from from f.
+   doUsed -
 */
 
-static decl_node getNextFixup (decl_fixupInfo *f);
+static void doUsed (mcPretty_pretty p, bool used);
 
 /*
-   doMakeEnum - create an enumeration type and add it to the current module.
+   doHighC -
 */
 
-static decl_node doMakeEnum (void);
+static void doHighC (mcPretty_pretty p, decl_node__opaque a, nameKey_Name n, bool isused);
 
 /*
-   doMakeEnumField - create an enumeration field name and add it to enumeration e.
-                     Return the new field.
+   doParamConstCast -
 */
 
-static decl_node doMakeEnumField (decl_node e, nameKey_Name n);
+static void doParamConstCast (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   getExpList - returns the, n, th argument in an explist.
+   getParameterVariable - returns the variable which shadows the parameter
+                          named, m, in parameter block, n.
 */
 
-static decl_node getExpList (decl_node p, unsigned int n);
+static decl_node__opaque getParameterVariable (decl_node__opaque n, nameKey_Name m);
 
 /*
-   expListLen - returns the length of explist, p.
+   doParamTypeEmit - emit parameter type for C/C++.  It checks to see if the
+                     parameter type is a procedure type and if it were declared
+                     in a definition module for "C" and if so it uses the "C"
+                     definition for a procedure type, rather than the mc
+                     C++ version.
 */
 
-static unsigned int expListLen (decl_node p);
+static void doParamTypeEmit (mcPretty_pretty p, decl_node__opaque paramnode, decl_node__opaque paramtype);
 
 /*
-   getConstExpComplete - gets the field from the def or imp or module, n.
+   doParamTypeNameModifier - Add an _ to an unbounded parameter which is non var.
 */
 
-static bool getConstExpComplete (decl_node n);
+static void doParamTypeNameModifier (mcPretty_pretty p, decl_node__opaque ptype, bool varparam);
 
 /*
-   addConstToModule - adds const exp, e, into the list of constant
-                      expressions in module, m.
+   initOpaqueCastState - assign fields opaque and voidstar in opaquestate.
 */
 
-static void addConstToModule (decl_node m, decl_node e);
+static void initOpaqueCastState (decl_opaqueCastState *opaquestate, bool opaque, bool voidstar);
 
 /*
-   doMakeConstExp - create a constexp node and add it to the current module.
+   initNodeOpaqueCastState - assign opaque and currentvoidstar
 */
 
-static decl_node doMakeConstExp (void);
+static void initNodeOpaqueCastState (decl_node__opaque n, bool opaque, bool voidstar);
 
 /*
-   isAnyType - return TRUE if node n is any type kind.
+   setOpaqueCastState - set the voidStar field in opaquestate.
 */
 
-static bool isAnyType (decl_node n);
+static void setOpaqueCastState (decl_opaqueCastState *opaquestate, bool voidstar);
 
 /*
-   makeVal - creates a VAL (type, expression) node.
+   setNodeOpaqueVoidStar - sets the voidStar field in node to voidstar.
 */
 
-static decl_node makeVal (decl_node params);
+static void setNodeOpaqueVoidStar (decl_node__opaque n, bool voidstar);
 
 /*
-   makeCast - creates a cast node TYPENAME (expr).
+   nodeUsesOpaque - return TRUE if node n uses an opaque type.
 */
 
-static decl_node makeCast (decl_node c, decl_node p);
-static decl_node makeIntrinsicProc (decl_nodeT k, unsigned int noArgs, decl_node p);
+static bool nodeUsesOpaque (decl_node__opaque n);
 
 /*
-   makeIntrinsicUnaryType - create an intrisic unary type.
+   getNodeOpaqueVoidStar - return TRUE if the opaque type used by node n is a void *.
 */
 
-static decl_node makeIntrinsicUnaryType (decl_nodeT k, decl_node paramList, decl_node returnType);
+static bool getNodeOpaqueVoidStar (decl_node__opaque n);
 
 /*
-   makeIntrinsicBinaryType - create an intrisic binary type.
+   getOpaqueFlushNecessary - return TRUE if the value next differs from the opaque state.
 */
 
-static decl_node makeIntrinsicBinaryType (decl_nodeT k, decl_node paramList, decl_node returnType);
+static bool getOpaqueFlushNecessary (decl_opaqueCastState state, bool next);
 
 /*
-   checkIntrinsic - checks to see if the function call to, c, with
-                    parameter list, n, is really an intrinic.  If it
-                    is an intrinic then an intrinic node is created
-                    and returned.  Otherwise NIL is returned.
+   getNodeOpaqueFlushNecessary - return TRUE if the value of next requires a cast.
 */
 
-static decl_node checkIntrinsic (decl_node c, decl_node n);
+static bool getNodeOpaqueFlushNecessary (decl_node__opaque n, bool next);
 
 /*
-   checkCHeaders - check to see if the function is a C system function and
-                   requires a header file included.
+   makeOpaqueCast - wrap node n with an opaquecast node and assign
+                    voidstar into the new opaque state.
 */
 
-static void checkCHeaders (decl_node c);
+static decl_node__opaque makeOpaqueCast (decl_node__opaque n, bool voidstar);
 
 /*
-   isFuncCall - returns TRUE if, n, is a function/procedure call.
+   flushOpaque - perform a cast to voidstar (if necessary) and ignore the new
+                 node which could be created.
 */
 
-static bool isFuncCall (decl_node n);
+static void flushOpaque (mcPretty_pretty p, decl_node__opaque n, bool toVoidStar);
 
 /*
-   putTypeInternal - marks type, des, as being an internally generated type.
+   castOpaque - flushes the opaque type casts if necessary and changes the
+                voidstar boolean value.   If necessary it creates a opaquecast
+                and returns the new node otherwise return n.
 */
 
-static void putTypeInternal (decl_node des);
+static decl_node__opaque castOpaque (mcPretty_pretty p, decl_node__opaque n, bool toVoidStar);
 
 /*
-   isTypeInternal - returns TRUE if type, n, is internal.
+   isTypeOpaqueDefImp - returns TRUE if type is an opaque type by checking
+                        the def/imp pair of modules or fall back to the
+                        definition module.
 */
 
-static bool isTypeInternal (decl_node n);
+static bool isTypeOpaqueDefImp (decl_node__opaque type);
 
 /*
-   lookupBase - return node named n from the base symbol scope.
+   isParamVoidStar - return TRUE if the procedure or proctype opaque type
+                     parameter should be implemented as a (void * ).
 */
 
-static decl_node lookupBase (nameKey_Name n);
+static bool isParamVoidStar (decl_node__opaque n);
 
 /*
-   dumpScopes - display the names of all the scopes stacked.
+   isRefVoidStar - returns TRUE if the ref node uses an opaque type which
+                   is represented as a (void * ).
 */
 
-static void dumpScopes (void);
+static bool isRefVoidStar (decl_node__opaque n);
 
 /*
-   out0 - write string a to StdOut.
+   isReturnVoidStar - return TRUE if the procedure or proctype opaque type
+                      return type should be implemented as a (void * ).
 */
 
-static void out0 (const char *a_, unsigned int _a_high);
+static bool isReturnVoidStar (decl_node__opaque proc, decl_node__opaque type);
 
 /*
-   out1 - write string a to StdOut using format specifier a.
+   isVarVoidStar - return TRUE if the variable using an opaque type should
+                   be implemented as a (void * ).
 */
 
-static void out1 (const char *a_, unsigned int _a_high, decl_node s);
+static bool isVarVoidStar (decl_node__opaque n);
 
 /*
-   out2 - write string a to StdOut using format specifier a.
+   initNodeOpaqueState - initialize the node opaque state.
 */
 
-static void out2 (const char *a_, unsigned int _a_high, unsigned int c, decl_node s);
+static void initNodeOpaqueState (decl_node__opaque n);
 
 /*
-   out3 - write string a to StdOut using format specifier a.
+   assignNodeOpaqueCastState - copy the opaqueCastState from src into dest.
 */
 
-static void out3 (const char *a_, unsigned int _a_high, unsigned int l, nameKey_Name n, decl_node s);
+static void assignNodeOpaqueCastState (decl_node__opaque dest, decl_node__opaque src);
 
 /*
-   isUnary - returns TRUE if, n, is an unary node.
+   assignNodeOpaqueCastFalse - assign the voidstar field of dest to false.
+                               It assigns the opaque field of dest to the value
+                               of the src opaque field.
 */
 
-static bool isUnary (decl_node n);
+static void assignNodeOpaqueCastFalse (decl_node__opaque dest, decl_node__opaque src);
 
 /*
-   isBinary - returns TRUE if, n, is an binary node.
+   dumpOpaqueState -
 */
 
-static bool isBinary (decl_node n);
+static void dumpOpaqueState (decl_node__opaque n);
 
 /*
-   makeUnary - create a unary expression node with, e, as the argument
-               and res as the return type.
+   doParamC - emit parameter for C/C++.
 */
 
-static decl_node makeUnary (decl_nodeT k, decl_node e, decl_node res);
+static void doParamC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   isLeafString - returns TRUE if n is a leaf node which is a string constant.
+   doVarParamC - emit a VAR parameter for C/C++.
 */
 
-static bool isLeafString (decl_node n);
+static void doVarParamC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   getLiteralStringContents - return the contents of a literal node as a string.
+   doOptargC -
 */
 
-static DynamicStrings_String getLiteralStringContents (decl_node n);
+static void doOptargC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   getStringContents - return the string contents of a constant, literal,
-                       string or a constexp node.
+   doParameterC -
 */
 
-static DynamicStrings_String getStringContents (decl_node n);
+static void doParameterC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   addNames -
+   doProcTypeC -
 */
 
-static nameKey_Name addNames (decl_node a, decl_node b);
+static void doProcTypeC (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque n);
 
 /*
-   resolveString -
+   isDeclInImp - returns TRUE if node type is declared as an opaque and
+                 is declared fully in the current implementation module.
+                 This should only be called if isType (type).  Its purpose
+                 is specific to a type checking whether it is an opaque type
+                 declared in the .def/.mod pair of the current imp module.
 */
 
-static decl_node resolveString (decl_node n);
+static bool isDeclInImp (decl_node__opaque type);
 
 /*
-   foldBinary -
+   doTypeNameModifier - adds the __opaque modifier to the type n provided
+                        it is an opaque type which is being declared in the
+                        implementation module.
 */
 
-static decl_node foldBinary (decl_nodeT k, decl_node l, decl_node r, decl_node res);
+static void doTypeNameModifier (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   makeBinary - create a binary node with left/right/result type:  l, r and resultType.
+   doTypesC -
 */
 
-static decl_node makeBinary (decl_nodeT k, decl_node l, decl_node r, decl_node resultType);
+static void doTypesC (decl_node__opaque n);
 
 /*
-   doMakeBinary - returns a binary node containing left/right/result values
-                  l, r, res, with a node operator, k.
+   doCompletePartialC -
 */
 
-static decl_node doMakeBinary (decl_nodeT k, decl_node l, decl_node r, decl_node res);
+static void doCompletePartialC (decl_node__opaque n);
 
 /*
-   doMakeComponentRef -
+   doCompletePartialRecord -
 */
 
-static decl_node doMakeComponentRef (decl_node rec, decl_node field);
+static void doCompletePartialRecord (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque r);
 
 /*
-   isComponentRef -
+   doCompletePartialArray -
 */
 
-static bool isComponentRef (decl_node n);
+static void doCompletePartialArray (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque r);
 
 /*
-   isArrayRef - returns TRUE if the node was an arrayref.
+   lookupConst -
 */
 
-static bool isArrayRef (decl_node n);
+static decl_node__opaque lookupConst (decl_node__opaque type, nameKey_Name n);
 
 /*
-   isDeref - returns TRUE if, n, is a deref node.
+   doMin -
 */
 
-static bool isDeref (decl_node n);
+static decl_node__opaque doMin (decl_node__opaque n);
 
 /*
-   makeBase - create a base type or constant.
-              It only supports the base types and constants
-              enumerated below.
+   doMax -
 */
 
-static decl_node makeBase (decl_nodeT k);
+static decl_node__opaque doMax (decl_node__opaque n);
 
 /*
-   isOrdinal - returns TRUE if, n, is an ordinal type.
+   getMax -
 */
 
-static bool isOrdinal (decl_node n);
+static decl_node__opaque getMax (decl_node__opaque n);
 
 /*
-   mixTypes -
+   getMin -
 */
 
-static decl_node mixTypes (decl_node a, decl_node b);
+static decl_node__opaque getMin (decl_node__opaque n);
 
 /*
-   doSetExprType -
+   doSubtractC -
 */
 
-static decl_node doSetExprType (decl_node *t, decl_node n);
+static void doSubtractC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   getMaxMinType -
+   doSubrC -
 */
 
-static decl_node getMaxMinType (decl_node n);
+static void doSubrC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doGetFuncType -
+   doCompletePartialProcType -
 */
 
-static decl_node doGetFuncType (decl_node n);
+static void doCompletePartialProcType (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque n);
 
 /*
-   doGetExprType - works out the type which is associated with node, n.
+   outputCompletePartialProcType -
 */
 
-static decl_node doGetExprType (decl_node n);
+static void outputCompletePartialProcType (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque n);
 
 /*
-   getExprType - return the expression type.
+   isBase -
 */
 
-static decl_node getExprType (decl_node n);
+static bool isBase (decl_node__opaque n);
 
 /*
-   openOutput -
+   doBoolC -
 */
 
-static void openOutput (void);
+static void doBoolC (mcPretty_pretty p);
 
 /*
-   closeOutput -
+   doBaseC -
 */
 
-static void closeOutput (void);
+static void doBaseC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   write - outputs a single char, ch.
+   isSystem -
 */
 
-static void write_ (char ch);
+static bool isSystem (decl_node__opaque n);
 
 /*
-   writeln -
+   doSystemC -
 */
 
-static void writeln (void);
+static void doSystemC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doIncludeC - include header file for definition module, n.
+   doArrayC -
 */
 
-static void doIncludeC (decl_node n);
+static void doArrayC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   getSymScope - returns the scope where node, n, was declared.
+   doPointerC -
 */
 
-static decl_node getSymScope (decl_node n);
+static void doPointerC (mcPretty_pretty p, decl_node__opaque n, decl_node__opaque *m);
 
 /*
-   isQualifiedForced - should the node be written with a module prefix?
+   doRecordFieldC -
 */
 
-static bool isQualifiedForced (decl_node n);
+static void doRecordFieldC (mcPretty_pretty p, decl_node__opaque f);
 
 /*
-   getFQstring -
+   doVarientFieldC -
 */
 
-static DynamicStrings_String getFQstring (decl_node n);
+static void doVarientFieldC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   getFQDstring -
+   doVarientC -
 */
 
-static DynamicStrings_String getFQDstring (decl_node n, bool scopes);
+static void doVarientC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   getString - returns the name as a string.
+   doRecordC -
 */
 
-static DynamicStrings_String getString (decl_node n);
+static void doRecordC (mcPretty_pretty p, decl_node__opaque n, decl_node__opaque *m);
 
 /*
-   doNone - call HALT.
+   isBitset -
 */
 
-static void doNone (decl_node n);
+static bool isBitset (decl_node__opaque n);
 
 /*
-   doNothing - does nothing!
+   isNegative - returns TRUE if expression, n, is negative.
 */
 
-static void doNothing (decl_node n);
+static bool isNegative (decl_node__opaque n);
 
 /*
-   doConstC -
+   doSubrangeC -
 */
 
-static void doConstC (decl_node n);
+static void doSubrangeC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   needsParen - returns TRUE if expression, n, needs to be enclosed in ().
+   doSetC - generates a C type which holds the set.
+            Currently we only support sets of size WORD.
 */
 
-static bool needsParen (decl_node n);
+static void doSetC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doUnary -
+   doTypeC -
 */
 
-static void doUnary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node expr, decl_node type, bool l, bool r);
+static void doTypeC (mcPretty_pretty p, decl_node__opaque n, decl_node__opaque *m);
 
 /*
-   doSetSub - perform  l & (~ r)
+   doArrayNameC - it displays the array declaration (it might be an unbounded).
 */
 
-static void doSetSub (mcPretty_pretty p, decl_node left, decl_node right);
+static void doArrayNameC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doPolyBinary -
+   doRecordNameC - emit the C/C++ record name <name of n>"_r".
 */
 
-static void doPolyBinary (mcPretty_pretty p, decl_nodeT op, decl_node left, decl_node right, bool l, bool r);
+static void doRecordNameC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doBinary -
+   doPointerNameC - emit the C/C++ pointer type <name of n>*.
 */
 
-static void doBinary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node left, decl_node right, bool l, bool r, bool unpackProc);
+static void doPointerNameC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doPostUnary -
+   doTypeNameC -
 */
 
-static void doPostUnary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node expr);
+static void doTypeNameC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doDeRefC -
+   isExternal - returns TRUE if symbol, n, was declared in another module.
 */
 
-static void doDeRefC (mcPretty_pretty p, decl_node expr);
+static bool isExternal (decl_node__opaque n);
 
 /*
-   doGetLastOp - returns, a, if b is a terminal otherwise walk right.
+   doOpaqueModifier - adds postfix __opaque providing n uses an opaque type which is
+                      not represented by ( void * ).  n is a non type node which might
+                      be using an opaque type.  For example a var or param node.
 */
 
-static decl_node doGetLastOp (decl_node a, decl_node b);
+static void doOpaqueModifier (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doComponentRefC -
+   doDeclareVarC -
 */
 
-static void doComponentRefC (mcPretty_pretty p, decl_node l, decl_node r);
+static void doDeclareVarC (decl_node__opaque n);
 
 /*
-   doPointerRefC -
+   doVarC - output a variable declaration.  Note that we do not generate
+            a declaration if we are translating the implementation module
+            and a variable is exported as the variable will be in the .h
+            file to avoid all -Wodr issues.
 */
 
-static void doPointerRefC (mcPretty_pretty p, decl_node l, decl_node r);
+static void doVarC (decl_node__opaque n);
 
 /*
-   doPreBinary -
+   doExternCP -
 */
 
-static void doPreBinary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node left, decl_node right, bool l, bool r);
+static void doExternCP (mcPretty_pretty p);
 
 /*
-   doConstExpr -
+   doProcedureCommentText -
 */
 
-static void doConstExpr (mcPretty_pretty p, decl_node n);
+static void doProcedureCommentText (mcPretty_pretty p, DynamicStrings_String s);
 
 /*
-   doEnumerationField -
+   doProcedureComment -
 */
 
-static void doEnumerationField (mcPretty_pretty p, decl_node n);
+static void doProcedureComment (mcPretty_pretty p, DynamicStrings_String s);
 
 /*
-   isZero - returns TRUE if node, n, is zero.
+   doProcedureHeadingC -
 */
 
-static bool isZero (decl_node n);
+static void doProcedureHeadingC (decl_node__opaque n, bool prototype);
 
 /*
-   doArrayRef -
+   checkDeclareUnboundedParamCopyC -
 */
 
-static void doArrayRef (mcPretty_pretty p, decl_node n);
+static bool checkDeclareUnboundedParamCopyC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doProcedure -
+   checkUnboundedParamCopyC -
 */
 
-static void doProcedure (mcPretty_pretty p, decl_node n);
+static void checkUnboundedParamCopyC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doRecordfield -
+   doUnboundedParamCopyC -
 */
 
-static void doRecordfield (mcPretty_pretty p, decl_node n);
+static void doUnboundedParamCopyC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doCastC -
+   doPrototypeC -
 */
 
-static void doCastC (mcPretty_pretty p, decl_node t, decl_node e);
+static void doPrototypeC (decl_node__opaque n);
 
 /*
-   doSetValueC -
+   addTodo - adds, n, to the todo list.
 */
 
-static void doSetValueC (mcPretty_pretty p, decl_node n);
+static void addTodo (decl_node__opaque n);
 
 /*
-   getSetLow - returns the low value of the set type from
-               expression, n.
+   addVariablesTodo -
 */
 
-static decl_node getSetLow (decl_node n);
+static void addVariablesTodo (decl_node__opaque n);
 
 /*
-   doInC - performs (((1 << (l)) & (r)) != 0)
+   addTypesTodo -
 */
 
-static void doInC (mcPretty_pretty p, decl_node l, decl_node r);
+static void addTypesTodo (decl_node__opaque n);
 
 /*
-   doThrowC -
+   tempName -
 */
 
-static void doThrowC (mcPretty_pretty p, decl_node n);
+static DynamicStrings_String tempName (void);
 
 /*
-   doUnreachableC -
+   makeIntermediateType -
 */
 
-static void doUnreachableC (mcPretty_pretty p, decl_node n);
+static decl_node__opaque makeIntermediateType (DynamicStrings_String s, decl_node__opaque p);
 
 /*
-   outNull -
+   simplifyType -
 */
 
-static void outNull (mcPretty_pretty p);
+static void simplifyType (alists_alist l, decl_node__opaque *p);
 
 /*
-   outTrue -
+   simplifyVar -
 */
 
-static void outTrue (mcPretty_pretty p);
+static void simplifyVar (alists_alist l, decl_node__opaque n);
 
 /*
-   outFalse -
+   simplifyRecord -
 */
 
-static void outFalse (mcPretty_pretty p);
+static void simplifyRecord (alists_alist l, decl_node__opaque n);
 
 /*
-   doExprC -
+   simplifyVarient -
 */
 
-static void doExprC (mcPretty_pretty p, decl_node n);
+static void simplifyVarient (alists_alist l, decl_node__opaque n);
 
 /*
-   doExprCup -
+   simplifyVarientField -
 */
 
-static void doExprCup (mcPretty_pretty p, decl_node n, bool unpackProc);
+static void simplifyVarientField (alists_alist l, decl_node__opaque n);
 
 /*
-   doExprM2 -
+   doSimplifyNode -
 */
 
-static void doExprM2 (mcPretty_pretty p, decl_node n);
+static void doSimplifyNode (alists_alist l, decl_node__opaque n);
 
 /*
-   doVar -
+   simplifyNode -
 */
 
-static void doVar (mcPretty_pretty p, decl_node n);
+static void simplifyNode (alists_alist l, decl_node__opaque n);
 
 /*
-   doLiteralC -
+   doSimplify -
 */
 
-static void doLiteralC (mcPretty_pretty p, decl_node n);
+static void doSimplify (decl_node__opaque n);
 
 /*
-   doLiteral -
+   simplifyTypes -
 */
 
-static void doLiteral (mcPretty_pretty p, decl_node n);
+static void simplifyTypes (decl_scopeT s);
 
 /*
-   isString - returns TRUE if node, n, is a string.
+   outDeclsDefC -
 */
 
-static bool isString (decl_node n);
+static void outDeclsDefC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doString -
+   includeConstType -
 */
 
-static void doString (mcPretty_pretty p, decl_node n);
+static void includeConstType (decl_scopeT s);
 
 /*
-   replaceChar - replace every occurance of, ch, by, a and return modified string, s.
+   includeVarProcedure -
 */
 
-static DynamicStrings_String replaceChar (DynamicStrings_String s, char ch, const char *a_, unsigned int _a_high);
+static void includeVarProcedure (decl_scopeT s);
 
 /*
-   toCstring - translates string, n, into a C string
-               and returns the new String.
+   includeVar -
 */
 
-static DynamicStrings_String toCstring (nameKey_Name n);
+static void includeVar (decl_scopeT s);
 
 /*
-   toCchar -
+   includeExternals -
 */
 
-static DynamicStrings_String toCchar (nameKey_Name n);
+static void includeExternals (decl_node__opaque n);
 
 /*
-   countChar -
+   checkSystemInclude -
 */
 
-static unsigned int countChar (DynamicStrings_String s, char ch);
+static void checkSystemInclude (decl_node__opaque n);
 
 /*
-   lenCstring -
+   addExported -
 */
 
-static unsigned int lenCstring (DynamicStrings_String s);
+static void addExported (decl_node__opaque n);
 
 /*
-   outCstring -
+   addExternal - only adds, n, if this symbol is external to the
+                 implementation module and is not a hidden type.
 */
 
-static void outCstring (mcPretty_pretty p, decl_node s, bool aString);
+static void addExternal (decl_node__opaque n);
 
 /*
-   doStringC -
+   includeDefConstType -
 */
 
-static void doStringC (mcPretty_pretty p, decl_node n);
+static void includeDefConstType (decl_node__opaque n);
 
 /*
-   isPunct -
+   runIncludeDefConstType -
 */
 
-static bool isPunct (char ch);
+static void runIncludeDefConstType (decl_node__opaque n);
 
 /*
-   isWhite -
+   joinProcedures - copies procedures from definition module,
+                    d, into implementation module, i.
 */
 
-static bool isWhite (char ch);
+static void joinProcedures (decl_node__opaque i, decl_node__opaque d);
 
 /*
-   outText -
+   includeDefVarProcedure -
 */
 
-static void outText (mcPretty_pretty p, const char *a_, unsigned int _a_high);
+static void includeDefVarProcedure (decl_node__opaque n);
 
 /*
-   outRawS -
+   foreachModuleDo -
 */
 
-static void outRawS (mcPretty_pretty p, DynamicStrings_String s);
+static void foreachModuleDo (decl_node__opaque n, symbolKey_performOperation p);
 
 /*
-   outKm2 -
+   outDeclsImpC -
 */
 
-static mcPretty_pretty outKm2 (mcPretty_pretty p, const char *a_, unsigned int _a_high);
+static void outDeclsImpC (mcPretty_pretty p, decl_scopeT s);
 
 /*
-   outKc -
+   doStatementSequenceC -
 */
 
-static mcPretty_pretty outKc (mcPretty_pretty p, const char *a_, unsigned int _a_high);
+static void doStatementSequenceC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   outTextS -
+   isStatementSequenceEmpty -
 */
 
-static void outTextS (mcPretty_pretty p, DynamicStrings_String s);
+static bool isStatementSequenceEmpty (decl_node__opaque s);
 
 /*
-   outCard -
+   isSingleStatement - returns TRUE if the statement sequence, s, has
+                       only one statement.
 */
 
-static void outCard (mcPretty_pretty p, unsigned int c);
+static bool isSingleStatement (decl_node__opaque s);
 
 /*
-   outTextN -
+   doCommentC -
 */
 
-static void outTextN (mcPretty_pretty p, nameKey_Name n);
+static void doCommentC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doTypeAliasC -
+   doAfterCommentC - emit an after comment, c, or a newline if, c, is empty.
 */
 
-static void doTypeAliasC (mcPretty_pretty p, decl_node n, decl_node *m);
+static void doAfterCommentC (mcPretty_pretty p, decl_node__opaque c);
 
 /*
-   doEnumerationC -
+   doReturnC - issue a return statement and also place in an after comment if one exists.
 */
 
-static void doEnumerationC (mcPretty_pretty p, decl_node n);
+static void doReturnC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doNamesC -
+   isZtypeEquivalent -
 */
 
-static void doNamesC (mcPretty_pretty p, nameKey_Name n);
+static bool isZtypeEquivalent (decl_node__opaque type);
 
 /*
-   doNameC -
+   isEquivalentType - returns TRUE if type1 and type2 are equivalent.
 */
 
-static void doNameC (mcPretty_pretty p, decl_node n);
+static bool isEquivalentType (decl_node__opaque type1, decl_node__opaque type2);
 
 /*
-   initCname -
+   doExprCastC - build a cast if necessary.
 */
 
-static void initCname (decl_cnameT *c);
+static void doExprCastC (mcPretty_pretty p, decl_node__opaque e, decl_node__opaque type);
 
 /*
-   doCname -
+   requiresUnpackProc - returns TRUE if either the expr is a procedure or the proctypes differ.
 */
 
-static nameKey_Name doCname (nameKey_Name n, decl_cnameT *c, bool scopes);
+static bool requiresUnpackProc (decl_node__opaque s);
 
 /*
-   getDName -
+   forceCastOpaque -
 */
 
-static nameKey_Name getDName (decl_node n, bool scopes);
+static void forceCastOpaque (mcPretty_pretty p, decl_node__opaque des, decl_node__opaque expr, bool toVoidStar);
 
 /*
-   doDNameC -
+   forceReintCastOpaque -
 */
 
-static void doDNameC (mcPretty_pretty p, decl_node n, bool scopes);
+static void forceReintCastOpaque (mcPretty_pretty p, decl_node__opaque des, decl_node__opaque expr, bool toVoidStar);
 
 /*
-   doFQDNameC -
+   doUnConstCastUnbounded - if node n type is an unbounded array then
+                            use const_cast to remove the const parameter
+                            to allow the unbounded array to be modified.
 */
 
-static void doFQDNameC (mcPretty_pretty p, decl_node n, bool scopes);
+static void doUnConstCastUnbounded (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doFQNameC -
+   doAssignmentC -
 */
 
-static void doFQNameC (mcPretty_pretty p, decl_node n);
+static void doAssignmentC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doNameM2 -
+   containsStatement -
 */
 
-static void doNameM2 (mcPretty_pretty p, decl_node n);
+static bool containsStatement (decl_node__opaque s);
 
 /*
-   doUsed -
+   doCompoundStmt -
 */
 
-static void doUsed (mcPretty_pretty p, bool used);
+static void doCompoundStmt (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doHighC -
+   doElsifC -
 */
 
-static void doHighC (mcPretty_pretty p, decl_node a, nameKey_Name n, bool isused);
+static void doElsifC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doParamConstCast -
+   noIfElse -
 */
 
-static void doParamConstCast (mcPretty_pretty p, decl_node n);
+static bool noIfElse (decl_node__opaque n);
 
 /*
-   getParameterVariable - returns the variable which shadows the parameter
-                          named, m, in parameter block, n.
+   noIfElseChained - returns TRUE if, n, is an IF statement which
+                     has no associated ELSE statement.  An IF with an
+                     ELSIF is also checked for no ELSE and will result
+                     in a return value of TRUE.
 */
 
-static decl_node getParameterVariable (decl_node n, nameKey_Name m);
+static bool noIfElseChained (decl_node__opaque n);
 
 /*
-   doParamTypeEmit - emit parameter type for C/C++.  It checks to see if the
-                     parameter type is a procedure type and if it were declared
-                     in a definition module for "C" and if so it uses the "C"
-                     definition for a procedure type, rather than the mc
-                     C++ version.
+   hasIfElse -
 */
 
-static void doParamTypeEmit (mcPretty_pretty p, decl_node paramnode, decl_node paramtype);
+static bool hasIfElse (decl_node__opaque n);
 
 /*
-   doParamC - emit parameter for C/C++.
+   isIfElse -
 */
 
-static void doParamC (mcPretty_pretty p, decl_node n);
+static bool isIfElse (decl_node__opaque n);
 
 /*
-   doVarParamC - emit a VAR parameter for C/C++.
+   hasIfAndNoElse - returns TRUE if statement, n, is a single statement
+                    which is an IF and it has no else statement.
 */
 
-static void doVarParamC (mcPretty_pretty p, decl_node n);
+static bool hasIfAndNoElse (decl_node__opaque n);
 
 /*
-   doOptargC -
+   doIfC - issue an if statement and also place in an after comment if one exists.
+           The if statement might contain an else or elsif which are also handled.
 */
 
-static void doOptargC (mcPretty_pretty p, decl_node n);
+static void doIfC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doParameterC -
+   doForIncCP -
 */
 
-static void doParameterC (mcPretty_pretty p, decl_node n);
+static void doForIncCP (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doProcTypeC -
+   doForIncC -
 */
 
-static void doProcTypeC (mcPretty_pretty p, decl_node t, decl_node n);
+static void doForIncC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doTypesC -
+   doForInc -
 */
 
-static void doTypesC (decl_node n);
+static void doForInc (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doCompletePartialC -
+   doForC -
 */
 
-static void doCompletePartialC (decl_node n);
+static void doForC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doCompletePartialRecord -
+   doRepeatC -
 */
 
-static void doCompletePartialRecord (mcPretty_pretty p, decl_node t, decl_node r);
+static void doRepeatC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doCompletePartialArray -
+   doWhileC -
 */
 
-static void doCompletePartialArray (mcPretty_pretty p, decl_node t, decl_node r);
+static void doWhileC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   lookupConst -
+   doFuncHighC -
 */
 
-static decl_node lookupConst (decl_node type, nameKey_Name n);
+static void doFuncHighC (mcPretty_pretty p, decl_node__opaque a);
 
 /*
-   doMin -
+   doMultiplyBySize -
 */
 
-static decl_node doMin (decl_node n);
+static void doMultiplyBySize (mcPretty_pretty p, decl_node__opaque a);
 
 /*
-   doMax -
+   doTotype -
 */
 
-static decl_node doMax (decl_node n);
+static void doTotype (mcPretty_pretty p, decl_node__opaque a, decl_node__opaque t);
 
 /*
-   getMax -
+   doFuncUnbounded -
 */
 
-static decl_node getMax (decl_node n);
+static void doFuncUnbounded (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formalParam, decl_node__opaque formal, decl_node__opaque func);
 
 /*
-   getMin -
+   doProcedureParamC -
 */
 
-static decl_node getMin (decl_node n);
+static void doProcedureParamC (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formal);
 
 /*
-   doSubtractC -
+   doAdrExprC -
 */
 
-static void doSubtractC (mcPretty_pretty p, decl_node s);
+static void doAdrExprC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doSubrC -
+   typePair -
 */
 
-static void doSubrC (mcPretty_pretty p, decl_node s);
+static bool typePair (decl_node__opaque a, decl_node__opaque b, decl_node__opaque x, decl_node__opaque y);
 
 /*
-   doCompletePartialProcType -
+   needsCast - return TRUE if the actual type parameter needs to be cast to
+               the formal type.
 */
 
-static void doCompletePartialProcType (mcPretty_pretty p, decl_node t, decl_node n);
+static bool needsCast (decl_node__opaque at, decl_node__opaque ft);
 
 /*
-   isBase -
+   checkSystemCast - checks to see if we are passing to/from
+                     a system generic type (WORD, BYTE, ADDRESS)
+                     and if so emit a cast.  It returns the number of
+                     open parenthesis.
 */
 
-static bool isBase (decl_node n);
+static unsigned int checkSystemCast (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formal);
 
 /*
-   doBoolC -
+   emitN -
 */
 
-static void doBoolC (mcPretty_pretty p);
+static void emitN (mcPretty_pretty p, const char *a_, unsigned int _a_high, unsigned int n);
 
 /*
-   doBaseC -
+   isForC - return true if node n is a varparam, param or procedure
+            which was declared inside a definition module for "C".
 */
 
-static void doBaseC (mcPretty_pretty p, decl_node n);
+static bool isForC (decl_node__opaque n);
 
 /*
-   isSystem -
+   isDefForCNode - return TRUE if node n was declared inside a definition module for "C".
 */
 
-static bool isSystem (decl_node n);
+static bool isDefForCNode (decl_node__opaque n);
 
 /*
-   doSystemC -
+   doFuncVarParam - detect whether the formal uses an opaque and ensure that the address of
+                    the actual parameter is cast to the formal type.
 */
 
-static void doSystemC (mcPretty_pretty p, decl_node n);
+static void doFuncVarParam (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formal);
 
 /*
-   doArrayC -
+   doFuncParamC -
 */
 
-static void doArrayC (mcPretty_pretty p, decl_node n);
+static void doFuncParamC (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formal, decl_node__opaque func);
 
 /*
-   doPointerC -
+   getNthParamType - return the type of parameter, i, in list, l.
+                     If the parameter is a vararg NIL is returned.
 */
 
-static void doPointerC (mcPretty_pretty p, decl_node n, decl_node *m);
+static decl_node__opaque getNthParamType (Indexing_Index l, unsigned int i);
 
 /*
-   doRecordFieldC -
+   getNthParam - return the parameter, i, in list, l.
+                 If the parameter is a vararg NIL is returned.
 */
 
-static void doRecordFieldC (mcPretty_pretty p, decl_node f);
+static decl_node__opaque getNthParam (Indexing_Index l, unsigned int i);
 
 /*
-   doVarientFieldC -
+   doFuncArgsC -
 */
 
-static void doVarientFieldC (mcPretty_pretty p, decl_node n);
+static void doFuncArgsC (mcPretty_pretty p, decl_node__opaque s, Indexing_Index l, bool needParen);
 
 /*
-   doVarientC -
+   doProcTypeArgsC -
 */
 
-static void doVarientC (mcPretty_pretty p, decl_node n);
+static void doProcTypeArgsC (mcPretty_pretty p, decl_node__opaque s, Indexing_Index args, bool needParen);
 
 /*
-   doRecordC -
+   doAdrArgC -
 */
 
-static void doRecordC (mcPretty_pretty p, decl_node n, decl_node *m);
+static void doAdrArgC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   isBitset -
+   doAdrC -
 */
 
-static bool isBitset (decl_node n);
+static void doAdrC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   isNegative - returns TRUE if expression, n, is negative.
+   doInc -
 */
 
-static bool isNegative (decl_node n);
+static void doInc (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doSubrangeC -
+   doDec -
 */
 
-static void doSubrangeC (mcPretty_pretty p, decl_node n);
+static void doDec (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doSetC - generates a C type which holds the set.
-            Currently we only support sets of size WORD.
+   doIncDecC -
 */
 
-static void doSetC (mcPretty_pretty p, decl_node n);
+static void doIncDecC (mcPretty_pretty p, decl_node__opaque n, const char *op_, unsigned int _op_high);
 
 /*
-   doTypeC -
+   doIncDecCP -
 */
 
-static void doTypeC (mcPretty_pretty p, decl_node n, decl_node *m);
+static void doIncDecCP (mcPretty_pretty p, decl_node__opaque n, const char *op_, unsigned int _op_high);
 
 /*
-   doArrayNameC - it displays the array declaration (it might be an unbounded).
+   doInclC -
 */
 
-static void doArrayNameC (mcPretty_pretty p, decl_node n);
+static void doInclC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doRecordNameC - emit the C/C++ record name <name of n>"_r".
+   doExclC -
 */
 
-static void doRecordNameC (mcPretty_pretty p, decl_node n);
+static void doExclC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doPointerNameC - emit the C/C++ pointer type <name of n>*.
+   doNewC -
 */
 
-static void doPointerNameC (mcPretty_pretty p, decl_node n);
+static void doNewC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doTypeNameC -
+   doDisposeC -
 */
 
-static void doTypeNameC (mcPretty_pretty p, decl_node n);
+static void doDisposeC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   isExternal - returns TRUE if symbol, n, was declared in another module.
+   doCapC -
 */
 
-static bool isExternal (decl_node n);
+static void doCapC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doVarC -
+   doLengthC -
 */
 
-static void doVarC (decl_node n);
+static void doLengthC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doExternCP -
+   doAbsC -
 */
 
-static void doExternCP (mcPretty_pretty p);
+static void doAbsC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doProcedureCommentText -
+   doValC -
 */
 
-static void doProcedureCommentText (mcPretty_pretty p, DynamicStrings_String s);
+static void doValC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doProcedureComment -
+   doMinC -
 */
 
-static void doProcedureComment (mcPretty_pretty p, DynamicStrings_String s);
+static void doMinC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doProcedureHeadingC -
+   doMaxC -
 */
 
-static void doProcedureHeadingC (decl_node n, bool prototype);
+static void doMaxC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   checkDeclareUnboundedParamCopyC -
+   isIntrinsic - returns if, n, is an intrinsic procedure.
+                 The intrinsic functions are represented as unary and binary nodes.
 */
 
-static bool checkDeclareUnboundedParamCopyC (mcPretty_pretty p, decl_node n);
+static bool isIntrinsic (decl_node__opaque n);
 
 /*
-   checkUnboundedParamCopyC -
+   doHalt -
 */
 
-static void checkUnboundedParamCopyC (mcPretty_pretty p, decl_node n);
+static void doHalt (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doUnboundedParamCopyC -
+   doCreal - emit the appropriate creal function.
 */
 
-static void doUnboundedParamCopyC (mcPretty_pretty p, decl_node n);
+static void doCreal (mcPretty_pretty p, decl_node__opaque t);
 
 /*
-   doPrototypeC -
+   doCimag - emit the appropriate cimag function.
 */
 
-static void doPrototypeC (decl_node n);
+static void doCimag (mcPretty_pretty p, decl_node__opaque t);
 
 /*
-   addTodo - adds, n, to the todo list.
+   doReC -
 */
 
-static void addTodo (decl_node n);
+static void doReC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   addVariablesTodo -
+   doImC -
 */
 
-static void addVariablesTodo (decl_node n);
+static void doImC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   addTypesTodo -
+   doCmplx -
 */
 
-static void addTypesTodo (decl_node n);
+static void doCmplx (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   tempName -
+   doIntrinsicC -
 */
 
-static DynamicStrings_String tempName (void);
+static void doIntrinsicC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   makeIntermediateType -
+   isIntrinsicFunction - returns true if, n, is an instrinsic function.
 */
 
-static decl_node makeIntermediateType (DynamicStrings_String s, decl_node p);
+static bool isIntrinsicFunction (decl_node__opaque n);
 
 /*
-   simplifyType -
+   doSizeC -
 */
 
-static void simplifyType (alists_alist l, decl_node *p);
+static void doSizeC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   simplifyVar -
+   doConvertC -
 */
 
-static void simplifyVar (alists_alist l, decl_node n);
+static void doConvertC (mcPretty_pretty p, decl_node__opaque n, const char *conversion_, unsigned int _conversion_high);
 
 /*
-   simplifyRecord -
+   doConvertSC -
 */
 
-static void simplifyRecord (alists_alist l, decl_node n);
+static void doConvertSC (mcPretty_pretty p, decl_node__opaque n, DynamicStrings_String conversion);
 
 /*
-   simplifyVarient -
+   getFunction - return the function associate with funccall node n.
 */
 
-static void simplifyVarient (alists_alist l, decl_node n);
+static decl_node__opaque getFunction (decl_node__opaque n);
 
 /*
-   simplifyVarientField -
+   getFuncFromExpr -
 */
 
-static void simplifyVarientField (alists_alist l, decl_node n);
+static decl_node__opaque getFuncFromExpr (decl_node__opaque n);
 
 /*
-   doSimplifyNode -
+   doFuncExprC -
 */
 
-static void doSimplifyNode (alists_alist l, decl_node n);
+static void doFuncExprC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   simplifyNode -
+   doFuncCallC -
 */
 
-static void simplifyNode (alists_alist l, decl_node n);
+static void doFuncCallC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doSimplify -
+   doCaseStatementC -
 */
 
-static void doSimplify (decl_node n);
+static void doCaseStatementC (mcPretty_pretty p, decl_node__opaque n, bool needBreak);
 
 /*
-   simplifyTypes -
+   doExceptionC -
 */
 
-static void simplifyTypes (decl_scopeT s);
+static void doExceptionC (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node__opaque n);
 
 /*
-   outDeclsDefC -
+   doExceptionCP -
 */
 
-static void outDeclsDefC (mcPretty_pretty p, decl_node n);
+static void doExceptionCP (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node__opaque n);
 
 /*
-   includeConstType -
+   doException -
 */
 
-static void includeConstType (decl_scopeT s);
+static void doException (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node__opaque n);
 
 /*
-   includeVarProcedure -
+   doRangeListC -
 */
 
-static void includeVarProcedure (decl_scopeT s);
+static void doRangeListC (mcPretty_pretty p, decl_node__opaque c);
 
 /*
-   includeVar -
+   doRangeIfListC -
 */
 
-static void includeVar (decl_scopeT s);
+static void doRangeIfListC (mcPretty_pretty p, decl_node__opaque e, decl_node__opaque c);
 
 /*
-   includeExternals -
+   doCaseLabels -
 */
 
-static void includeExternals (decl_node n);
+static void doCaseLabels (mcPretty_pretty p, decl_node__opaque n, bool needBreak);
 
 /*
-   checkSystemInclude -
+   doCaseLabelListC -
 */
 
-static void checkSystemInclude (decl_node n);
+static void doCaseLabelListC (mcPretty_pretty p, decl_node__opaque n, bool haveElse);
 
 /*
-   addExported -
+   doCaseIfLabels -
 */
 
-static void addExported (decl_node n);
+static void doCaseIfLabels (mcPretty_pretty p, decl_node__opaque e, decl_node__opaque n, unsigned int i, unsigned int h);
 
 /*
-   addExternal - only adds, n, if this symbol is external to the
-                 implementation module and is not a hidden type.
+   doCaseIfLabelListC -
 */
 
-static void addExternal (decl_node n);
+static void doCaseIfLabelListC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   includeDefConstType -
+   doCaseElseC -
 */
 
-static void includeDefConstType (decl_node n);
+static void doCaseElseC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   runIncludeDefConstType -
+   doCaseIfElseC -
 */
 
-static void runIncludeDefConstType (decl_node n);
+static void doCaseIfElseC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   joinProcedures - copies procedures from definition module,
-                    d, into implementation module, i.
+   canUseSwitchCaseLabels - returns TRUE if all the case labels are
+                            single values and not ranges.
 */
 
-static void joinProcedures (decl_node i, decl_node d);
+static bool canUseSwitchCaseLabels (decl_node__opaque n);
 
 /*
-   includeDefVarProcedure -
+   canUseSwitch - returns TRUE if the case statement can be implement
+                  by a switch statement.  This will be TRUE if all case
+                  selectors are single values rather than ranges.
 */
 
-static void includeDefVarProcedure (decl_node n);
+static bool canUseSwitch (decl_node__opaque n);
 
 /*
-   foreachModuleDo -
+   doCaseC -
 */
 
-static void foreachModuleDo (decl_node n, symbolKey_performOperation p);
+static void doCaseC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   outDeclsImpC -
+   doLoopC -
 */
 
-static void outDeclsImpC (mcPretty_pretty p, decl_scopeT s);
+static void doLoopC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   doStatementSequenceC -
+   doExitC -
 */
 
-static void doStatementSequenceC (mcPretty_pretty p, decl_node s);
+static void doExitC (mcPretty_pretty p, decl_node__opaque s);
 
 /*
-   isStatementSequenceEmpty -
+   doStatementsC -
 */
 
-static bool isStatementSequenceEmpty (decl_node s);
+static void doStatementsC (mcPretty_pretty p, decl_node__opaque s);
+static void localstop (void);
 
 /*
-   isSingleStatement - returns TRUE if the statement sequence, s, has
-                       only one statement.
+   doLocalVarC -
 */
 
-static bool isSingleStatement (decl_node s);
+static void doLocalVarC (mcPretty_pretty p, decl_scopeT s);
 
 /*
-   doCommentC -
+   doLocalConstTypesC -
 */
 
-static void doCommentC (mcPretty_pretty p, decl_node s);
+static void doLocalConstTypesC (mcPretty_pretty p, decl_scopeT s);
 
 /*
-   doAfterCommentC - emit an after comment, c, or a newline if, c, is empty.
+   addParamDone -
 */
 
-static void doAfterCommentC (mcPretty_pretty p, decl_node c);
+static void addParamDone (decl_node__opaque n);
 
 /*
-   doReturnC - issue a return statement and also place in an after comment if one exists.
+   includeParameters -
 */
 
-static void doReturnC (mcPretty_pretty p, decl_node s);
+static void includeParameters (decl_node__opaque n);
 
 /*
-   isZtypeEquivalent -
+   isHalt -
 */
 
-static bool isZtypeEquivalent (decl_node type);
+static bool isHalt (decl_node__opaque n);
 
 /*
-   isEquivalentType - returns TRUE if type1 and type2 are equivalent.
+   isReturnOrHalt -
 */
 
-static bool isEquivalentType (decl_node type1, decl_node type2);
+static bool isReturnOrHalt (decl_node__opaque n);
 
 /*
-   doExprCastC - build a cast if necessary.
+   isLastStatementReturn -
 */
 
-static void doExprCastC (mcPretty_pretty p, decl_node e, decl_node type);
+static bool isLastStatementReturn (decl_node__opaque n);
 
 /*
-   requiresUnpackProc - returns TRUE if either the expr is a procedure or the proctypes differ.
+   isLastStatementSequence -
 */
 
-static bool requiresUnpackProc (decl_node s);
+static bool isLastStatementSequence (decl_node__opaque n, decl_isNodeF q);
 
 /*
-   doAssignmentC -
+   isLastStatementIf -
 */
 
-static void doAssignmentC (mcPretty_pretty p, decl_node s);
+static bool isLastStatementIf (decl_node__opaque n, decl_isNodeF q);
 
 /*
-   containsStatement -
+   isLastStatementElsif -
 */
 
-static bool containsStatement (decl_node s);
+static bool isLastStatementElsif (decl_node__opaque n, decl_isNodeF q);
 
 /*
-   doCompoundStmt -
+   isLastStatementCase -
 */
 
-static void doCompoundStmt (mcPretty_pretty p, decl_node s);
+static bool isLastStatementCase (decl_node__opaque n, decl_isNodeF q);
 
 /*
-   doElsifC -
+   isLastStatement - returns TRUE if the last statement in, n, is, q.
 */
 
-static void doElsifC (mcPretty_pretty p, decl_node s);
+static bool isLastStatement (decl_node__opaque n, decl_isNodeF q);
 
 /*
-   noIfElse -
+   doProcedureC -
 */
 
-static bool noIfElse (decl_node n);
+static void doProcedureC (decl_node__opaque n);
 
 /*
-   noIfElseChained - returns TRUE if, n, is an IF statement which
-                     has no associated ELSE statement.  An IF with an
-                     ELSIF is also checked for no ELSE and will result
-                     in a return value of TRUE.
+   outProceduresC -
 */
 
-static bool noIfElseChained (decl_node n);
+static void outProceduresC (mcPretty_pretty p, decl_scopeT s);
 
 /*
-   hasIfElse -
+   output -
 */
 
-static bool hasIfElse (decl_node n);
+static void output (decl_node__opaque n, decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v);
 
 /*
-   isIfElse -
+   allDependants -
 */
 
-static bool isIfElse (decl_node n);
+static decl_dependentState allDependants (decl_node__opaque n);
 
 /*
-   hasIfAndNoElse - returns TRUE if statement, n, is a single statement
-                    which is an IF and it has no else statement.
+   walkDependants -
 */
 
-static bool hasIfAndNoElse (decl_node n);
+static decl_dependentState walkDependants (alists_alist l, decl_node__opaque n);
 
 /*
-   doIfC - issue an if statement and also place in an after comment if one exists.
-           The if statement might contain an else or elsif which are also handled.
+   walkType -
 */
 
-static void doIfC (mcPretty_pretty p, decl_node s);
+static decl_dependentState walkType (alists_alist l, decl_node__opaque n);
 
 /*
-   doForIncCP -
+   db -
 */
 
-static void doForIncCP (mcPretty_pretty p, decl_node s);
+static void db (const char *a_, unsigned int _a_high, decl_node__opaque n);
 
 /*
-   doForIncC -
+   dbt -
 */
 
-static void doForIncC (mcPretty_pretty p, decl_node s);
+static void dbt (const char *a_, unsigned int _a_high);
 
 /*
-   doForInc -
+   dbs -
 */
 
-static void doForInc (mcPretty_pretty p, decl_node s);
+static void dbs (decl_dependentState s, decl_node__opaque n);
 
 /*
-   doForC -
+   dbq -
 */
 
-static void doForC (mcPretty_pretty p, decl_node s);
+static void dbq (decl_node__opaque n);
 
 /*
-   doRepeatC -
+   walkRecord -
 */
 
-static void doRepeatC (mcPretty_pretty p, decl_node s);
+static decl_dependentState walkRecord (alists_alist l, decl_node__opaque n);
 
 /*
-   doWhileC -
+   walkVarient -
 */
 
-static void doWhileC (mcPretty_pretty p, decl_node s);
+static decl_dependentState walkVarient (alists_alist l, decl_node__opaque n);
 
 /*
-   doFuncHighC -
+   queueBlocked -
 */
 
-static void doFuncHighC (mcPretty_pretty p, decl_node a);
+static void queueBlocked (decl_node__opaque n);
 
 /*
-   doMultiplyBySize -
+   walkVar -
 */
 
-static void doMultiplyBySize (mcPretty_pretty p, decl_node a);
+static decl_dependentState walkVar (alists_alist l, decl_node__opaque n);
 
 /*
-   doTotype -
+   walkEnumeration -
 */
 
-static void doTotype (mcPretty_pretty p, decl_node a, decl_node t);
+static decl_dependentState walkEnumeration (alists_alist l, decl_node__opaque n);
 
 /*
-   doFuncUnbounded -
+   walkSubrange -
 */
 
-static void doFuncUnbounded (mcPretty_pretty p, decl_node actual, decl_node formalParam, decl_node formal, decl_node func);
+static decl_dependentState walkSubrange (alists_alist l, decl_node__opaque n);
 
 /*
-   doProcedureParamC -
+   walkSubscript -
 */
 
-static void doProcedureParamC (mcPretty_pretty p, decl_node actual, decl_node formal);
+static decl_dependentState walkSubscript (alists_alist l, decl_node__opaque n);
 
 /*
-   doAdrExprC -
+   walkPointer -
 */
 
-static void doAdrExprC (mcPretty_pretty p, decl_node n);
+static decl_dependentState walkPointer (alists_alist l, decl_node__opaque n);
 
 /*
-   typePair -
+   walkArray -
 */
 
-static bool typePair (decl_node a, decl_node b, decl_node x, decl_node y);
+static decl_dependentState walkArray (alists_alist l, decl_node__opaque n);
 
 /*
-   needsCast - return TRUE if the actual type parameter needs to be cast to
-               the formal type.
+   walkConst -
 */
 
-static bool needsCast (decl_node at, decl_node ft);
+static decl_dependentState walkConst (alists_alist l, decl_node__opaque n);
 
 /*
-   checkSystemCast - checks to see if we are passing to/from
-                     a system generic type (WORD, BYTE, ADDRESS)
-                     and if so emit a cast.  It returns the number of
-                     open parenthesis.
+   walkVarParam -
 */
 
-static unsigned int checkSystemCast (mcPretty_pretty p, decl_node actual, decl_node formal);
+static decl_dependentState walkVarParam (alists_alist l, decl_node__opaque n);
 
 /*
-   emitN -
+   walkParam -
 */
 
-static void emitN (mcPretty_pretty p, const char *a_, unsigned int _a_high, unsigned int n);
+static decl_dependentState walkParam (alists_alist l, decl_node__opaque n);
 
 /*
-   isForC - return true if node n is a varparam, param or procedure
-            which was declared inside a definition module for "C".
+   walkOptarg -
 */
 
-static bool isForC (decl_node n);
+static decl_dependentState walkOptarg (alists_alist l, decl_node__opaque n);
 
 /*
-   isDefForCNode - return TRUE if node n was declared inside a definition module for "C".
+   walkRecordField -
 */
 
-static bool isDefForCNode (decl_node n);
+static decl_dependentState walkRecordField (alists_alist l, decl_node__opaque n);
 
 /*
-   doFuncParamC -
+   walkVarientField -
 */
 
-static void doFuncParamC (mcPretty_pretty p, decl_node actual, decl_node formal, decl_node func);
+static decl_dependentState walkVarientField (alists_alist l, decl_node__opaque n);
 
 /*
-   getNthParamType - return the type of parameter, i, in list, l.
-                     If the parameter is a vararg NIL is returned.
+   walkEnumerationField -
 */
 
-static decl_node getNthParamType (Indexing_Index l, unsigned int i);
+static decl_dependentState walkEnumerationField (alists_alist l, decl_node__opaque n);
 
 /*
-   getNthParam - return the parameter, i, in list, l.
-                 If the parameter is a vararg NIL is returned.
+   walkSet -
 */
 
-static decl_node getNthParam (Indexing_Index l, unsigned int i);
+static decl_dependentState walkSet (alists_alist l, decl_node__opaque n);
 
 /*
-   doFuncArgsC -
+   walkProcType -
 */
 
-static void doFuncArgsC (mcPretty_pretty p, decl_node s, Indexing_Index l, bool needParen);
+static decl_dependentState walkProcType (alists_alist l, decl_node__opaque n);
 
 /*
-   doProcTypeArgsC -
+   walkProcedure -
 */
 
-static void doProcTypeArgsC (mcPretty_pretty p, decl_node s, Indexing_Index args, bool needParen);
+static decl_dependentState walkProcedure (alists_alist l, decl_node__opaque n);
 
 /*
-   doAdrArgC -
+   walkParameters -
 */
 
-static void doAdrArgC (mcPretty_pretty p, decl_node n);
+static decl_dependentState walkParameters (alists_alist l, Indexing_Index p);
 
 /*
-   doAdrC -
+   walkFuncCall -
 */
 
-static void doAdrC (mcPretty_pretty p, decl_node n);
+static decl_dependentState walkFuncCall (alists_alist l, decl_node__opaque n);
 
 /*
-   doInc -
+   walkUnary -
 */
 
-static void doInc (mcPretty_pretty p, decl_node n);
+static decl_dependentState walkUnary (alists_alist l, decl_node__opaque n);
 
 /*
-   doDec -
+   walkBinary -
 */
 
-static void doDec (mcPretty_pretty p, decl_node n);
+static decl_dependentState walkBinary (alists_alist l, decl_node__opaque n);
 
 /*
-   doIncDecC -
+   walkComponentRef -
 */
 
-static void doIncDecC (mcPretty_pretty p, decl_node n, const char *op_, unsigned int _op_high);
+static decl_dependentState walkComponentRef (alists_alist l, decl_node__opaque n);
 
 /*
-   doIncDecCP -
+   walkPointerRef -
 */
 
-static void doIncDecCP (mcPretty_pretty p, decl_node n, const char *op_, unsigned int _op_high);
+static decl_dependentState walkPointerRef (alists_alist l, decl_node__opaque n);
 
 /*
-   doInclC -
+   walkSetValue -
 */
 
-static void doInclC (mcPretty_pretty p, decl_node n);
+static decl_dependentState walkSetValue (alists_alist l, decl_node__opaque n);
 
 /*
-   doExclC -
+   doDependants - return the dependentState depending upon whether
+                  all dependants have been declared.
 */
 
-static void doExclC (mcPretty_pretty p, decl_node n);
+static decl_dependentState doDependants (alists_alist l, decl_node__opaque n);
 
 /*
-   doNewC -
+   tryComplete - returns TRUE if node, n, can be and was completed.
 */
 
-static void doNewC (mcPretty_pretty p, decl_node n);
+static bool tryComplete (decl_node__opaque n, decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v);
 
 /*
-   doDisposeC -
+   tryCompleteFromPartial -
 */
 
-static void doDisposeC (mcPretty_pretty p, decl_node n);
+static bool tryCompleteFromPartial (decl_node__opaque n, decl_nodeProcedure t);
 
 /*
-   doCapC -
+   visitIntrinsicFunction -
 */
 
-static void doCapC (mcPretty_pretty p, decl_node n);
+static void visitIntrinsicFunction (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doLengthC -
+   visitUnary -
 */
 
-static void doLengthC (mcPretty_pretty p, decl_node n);
+static void visitUnary (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doAbsC -
+   visitBinary -
 */
 
-static void doAbsC (mcPretty_pretty p, decl_node n);
+static void visitBinary (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doValC -
+   visitBoolean -
 */
 
-static void doValC (mcPretty_pretty p, decl_node n);
+static void visitBoolean (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doMinC -
+   visitScope -
 */
 
-static void doMinC (mcPretty_pretty p, decl_node n);
+static void visitScope (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doMaxC -
+   visitType -
 */
 
-static void doMaxC (mcPretty_pretty p, decl_node n);
+static void visitType (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   isIntrinsic - returns if, n, is an intrinsic procedure.
-                 The intrinsic functions are represented as unary and binary nodes.
+   visitIndex -
 */
 
-static bool isIntrinsic (decl_node n);
+static void visitIndex (alists_alist v, Indexing_Index i, decl_nodeProcedure p);
 
 /*
-   doHalt -
+   visitRecord -
 */
 
-static void doHalt (mcPretty_pretty p, decl_node n);
+static void visitRecord (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCreal - emit the appropriate creal function.
+   visitVarient -
 */
 
-static void doCreal (mcPretty_pretty p, decl_node t);
+static void visitVarient (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCimag - emit the appropriate cimag function.
+   visitVar -
 */
 
-static void doCimag (mcPretty_pretty p, decl_node t);
+static void visitVar (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doReC -
+   visitEnumeration -
 */
 
-static void doReC (mcPretty_pretty p, decl_node n);
+static void visitEnumeration (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doImC -
+   visitSubrange -
 */
 
-static void doImC (mcPretty_pretty p, decl_node n);
+static void visitSubrange (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCmplx -
+   visitPointer -
 */
 
-static void doCmplx (mcPretty_pretty p, decl_node n);
+static void visitPointer (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doIntrinsicC -
+   visitArray -
 */
 
-static void doIntrinsicC (mcPretty_pretty p, decl_node n);
+static void visitArray (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   isIntrinsicFunction - returns true if, n, is an instrinsic function.
+   visitConst -
 */
 
-static bool isIntrinsicFunction (decl_node n);
+static void visitConst (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doSizeC -
+   visitVarParam -
 */
 
-static void doSizeC (mcPretty_pretty p, decl_node n);
+static void visitVarParam (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doConvertC -
+   visitParam -
 */
 
-static void doConvertC (mcPretty_pretty p, decl_node n, const char *conversion_, unsigned int _conversion_high);
+static void visitParam (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doConvertSC -
+   visitOptarg -
 */
 
-static void doConvertSC (mcPretty_pretty p, decl_node n, DynamicStrings_String conversion);
+static void visitOptarg (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   getFuncFromExpr -
+   visitRecordField -
 */
 
-static decl_node getFuncFromExpr (decl_node n);
+static void visitRecordField (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doFuncExprC -
+   visitVarientField -
 */
 
-static void doFuncExprC (mcPretty_pretty p, decl_node n);
+static void visitVarientField (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doFuncCallC -
+   visitEnumerationField -
 */
 
-static void doFuncCallC (mcPretty_pretty p, decl_node n);
+static void visitEnumerationField (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCaseStatementC -
+   visitSet -
 */
 
-static void doCaseStatementC (mcPretty_pretty p, decl_node n, bool needBreak);
+static void visitSet (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doExceptionC -
+   visitProcType -
 */
 
-static void doExceptionC (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node n);
+static void visitProcType (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doExceptionCP -
+   visitSubscript -
 */
 
-static void doExceptionCP (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node n);
+static void visitSubscript (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doException -
+   visitDecls -
 */
 
-static void doException (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node n);
+static void visitDecls (alists_alist v, decl_scopeT s, decl_nodeProcedure p);
 
 /*
-   doRangeListC -
+   visitProcedure -
 */
 
-static void doRangeListC (mcPretty_pretty p, decl_node c);
+static void visitProcedure (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doRangeIfListC -
+   visitDef -
 */
 
-static void doRangeIfListC (mcPretty_pretty p, decl_node e, decl_node c);
+static void visitDef (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCaseLabels -
+   visitImp -
 */
 
-static void doCaseLabels (mcPretty_pretty p, decl_node n, bool needBreak);
+static void visitImp (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCaseLabelListC -
+   visitModule -
 */
 
-static void doCaseLabelListC (mcPretty_pretty p, decl_node n, bool haveElse);
+static void visitModule (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCaseIfLabels -
+   visitLoop -
 */
 
-static void doCaseIfLabels (mcPretty_pretty p, decl_node e, decl_node n, unsigned int i, unsigned int h);
+static void visitLoop (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCaseIfLabelListC -
+   visitWhile -
 */
 
-static void doCaseIfLabelListC (mcPretty_pretty p, decl_node n);
+static void visitWhile (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCaseElseC -
+   visitRepeat -
 */
 
-static void doCaseElseC (mcPretty_pretty p, decl_node n);
+static void visitRepeat (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCaseIfElseC -
+   visitCase -
 */
 
-static void doCaseIfElseC (mcPretty_pretty p, decl_node n);
+static void visitCase (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   canUseSwitchCaseLabels - returns TRUE if all the case labels are
-                            single values and not ranges.
+   visitCaseLabelList -
 */
 
-static bool canUseSwitchCaseLabels (decl_node n);
+static void visitCaseLabelList (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   canUseSwitch - returns TRUE if the case statement can be implement
-                  by a switch statement.  This will be TRUE if all case
-                  selectors are single values rather than ranges.
+   visitCaseList -
 */
 
-static bool canUseSwitch (decl_node n);
+static void visitCaseList (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doCaseC -
+   visitRange -
 */
 
-static void doCaseC (mcPretty_pretty p, decl_node n);
+static void visitRange (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doLoopC -
+   visitIf -
 */
 
-static void doLoopC (mcPretty_pretty p, decl_node s);
+static void visitIf (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doExitC -
+   visitElsif -
 */
 
-static void doExitC (mcPretty_pretty p, decl_node s);
+static void visitElsif (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doStatementsC -
+   visitFor -
 */
 
-static void doStatementsC (mcPretty_pretty p, decl_node s);
-static void stop (void);
+static void visitFor (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doLocalVarC -
+   visitAssignment -
 */
 
-static void doLocalVarC (mcPretty_pretty p, decl_scopeT s);
+static void visitAssignment (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doLocalConstTypesC -
+   visitComponentRef -
 */
 
-static void doLocalConstTypesC (mcPretty_pretty p, decl_scopeT s);
+static void visitComponentRef (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   addParamDone -
+   visitPointerRef -
 */
 
-static void addParamDone (decl_node n);
+static void visitPointerRef (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   includeParameters -
+   visitArrayRef -
 */
 
-static void includeParameters (decl_node n);
+static void visitArrayRef (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   isHalt -
+   visitFunccall -
 */
 
-static bool isHalt (decl_node n);
+static void visitFunccall (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   isReturnOrHalt -
+   visitVarDecl -
 */
 
-static bool isReturnOrHalt (decl_node n);
+static void visitVarDecl (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   isLastStatementReturn -
+   visitExplist -
 */
 
-static bool isLastStatementReturn (decl_node n);
+static void visitExplist (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   isLastStatementSequence -
+   visitExit -
 */
 
-static bool isLastStatementSequence (decl_node n, decl_isNodeF q);
+static void visitExit (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   isLastStatementIf -
+   visitReturn -
 */
 
-static bool isLastStatementIf (decl_node n, decl_isNodeF q);
+static void visitReturn (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   isLastStatementElsif -
+   visitStmtSeq -
 */
 
-static bool isLastStatementElsif (decl_node n, decl_isNodeF q);
+static void visitStmtSeq (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   isLastStatementCase -
+   visitVarargs -
 */
 
-static bool isLastStatementCase (decl_node n, decl_isNodeF q);
+static void visitVarargs (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   isLastStatement - returns TRUE if the last statement in, n, is, q.
+   visitSetValue -
 */
 
-static bool isLastStatement (decl_node n, decl_isNodeF q);
+static void visitSetValue (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   doProcedureC -
+   visitIntrinsic -
 */
 
-static void doProcedureC (decl_node n);
+static void visitIntrinsic (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   outProceduresC -
+   visitDependants - helper procedure function called from visitNode.
+                     node n has just been visited, this procedure will
+                     visit node, n, dependants.
 */
 
-static void outProceduresC (mcPretty_pretty p, decl_scopeT s);
+static void visitDependants (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   output -
+   visitNode - visits node, n, if it is not already in the alist, v.
+               It calls p(n) if the node is unvisited.
 */
 
-static void output (decl_node n, decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v);
+static void visitNode (alists_alist v, decl_node__opaque n, decl_nodeProcedure p);
 
 /*
-   allDependants -
+   genKind - returns a string depending upon the kind of node, n.
 */
 
-static decl_dependentState allDependants (decl_node n);
+static DynamicStrings_String genKind (decl_node__opaque n);
 
 /*
-   walkDependants -
+   gen - generate a small string describing node, n.
 */
 
-static decl_dependentState walkDependants (alists_alist l, decl_node n);
+static DynamicStrings_String gen (decl_node__opaque n);
 
 /*
-   walkType -
+   dumpQ -
 */
 
-static decl_dependentState walkType (alists_alist l, decl_node n);
+static void dumpQ (const char *q_, unsigned int _q_high, alists_alist l);
 
 /*
-   db -
+   dumpLists -
 */
 
-static void db (const char *a_, unsigned int _a_high, decl_node n);
+static void dumpLists (void);
 
 /*
-   dbt -
+   outputHidden -
 */
 
-static void dbt (const char *a_, unsigned int _a_high);
+static void outputHidden (decl_node__opaque n);
 
 /*
-   dbs -
+   outputHiddenComplete -
 */
 
-static void dbs (decl_dependentState s, decl_node n);
+static void outputHiddenComplete (decl_node__opaque n);
 
 /*
-   dbq -
+   tryPartial -
 */
 
-static void dbq (decl_node n);
+static bool tryPartial (decl_node__opaque n, decl_nodeProcedure pt);
 
 /*
-   walkRecord -
+   outputPartialRecordArrayProcType -
 */
 
-static decl_dependentState walkRecord (alists_alist l, decl_node n);
+static void outputPartialRecordArrayProcType (decl_node__opaque n, decl_node__opaque q, unsigned int indirection);
 
 /*
-   walkVarient -
+   outputPartial -
 */
 
-static decl_dependentState walkVarient (alists_alist l, decl_node n);
+static void outputPartial (decl_node__opaque n);
 
 /*
-   queueBlocked -
+   tryOutputTodo -
 */
 
-static void queueBlocked (decl_node n);
+static void tryOutputTodo (decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v, decl_nodeProcedure pt);
 
 /*
-   walkVar -
+   tryOutputPartial -
 */
 
-static decl_dependentState walkVar (alists_alist l, decl_node n);
+static void tryOutputPartial (decl_nodeProcedure t);
 
 /*
-   walkEnumeration -
+   debugList -
 */
 
-static decl_dependentState walkEnumeration (alists_alist l, decl_node n);
+static void debugList (const char *listName_, unsigned int _listName_high, const char *symName_, unsigned int _symName_high, alists_alist l);
 
 /*
-   walkSubrange -
+   debugLists -
 */
 
-static decl_dependentState walkSubrange (alists_alist l, decl_node n);
+static void debugLists (void);
 
 /*
-   walkSubscript -
+   addEnumConst -
 */
 
-static decl_dependentState walkSubscript (alists_alist l, decl_node n);
+static void addEnumConst (decl_node__opaque n);
 
 /*
-   walkPointer -
+   populateTodo -
 */
 
-static decl_dependentState walkPointer (alists_alist l, decl_node n);
+static void populateTodo (decl_nodeProcedure p);
 
 /*
-   walkArray -
+   topologicallyOut - keep trying to resolve the todoQ and partialQ
+                      until there is no change from the global group.
 */
 
-static decl_dependentState walkArray (alists_alist l, decl_node n);
+static void topologicallyOut (decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v, decl_nodeProcedure tp, decl_nodeProcedure pc, decl_nodeProcedure pt, decl_nodeProcedure pv);
 
 /*
-   walkConst -
+   scaffoldStatic -
 */
 
-static decl_dependentState walkConst (alists_alist l, decl_node n);
+static void scaffoldStatic (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   walkVarParam -
+   emitCtor -
 */
 
-static decl_dependentState walkVarParam (alists_alist l, decl_node n);
+static void emitCtor (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   walkParam -
+   scaffoldDynamic -
 */
 
-static decl_dependentState walkParam (alists_alist l, decl_node n);
+static void scaffoldDynamic (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   walkOptarg -
+   scaffoldMain -
 */
 
-static decl_dependentState walkOptarg (alists_alist l, decl_node n);
+static void scaffoldMain (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   walkRecordField -
+   outImpInitC - emit the init/fini functions and main function if required.
 */
 
-static decl_dependentState walkRecordField (alists_alist l, decl_node n);
+static void outImpInitC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   walkVarientField -
+   runSimplifyTypes -
 */
 
-static decl_dependentState walkVarientField (alists_alist l, decl_node n);
+static void runSimplifyTypes (decl_node__opaque n);
 
 /*
-   walkEnumerationField -
+   outDefC -
 */
 
-static decl_dependentState walkEnumerationField (alists_alist l, decl_node n);
+static void outDefC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   walkSet -
+   runPrototypeExported -
 */
 
-static decl_dependentState walkSet (alists_alist l, decl_node n);
+static void runPrototypeExported (decl_node__opaque n);
 
 /*
-   walkProcType -
+   runPrototypeDefC -
 */
 
-static decl_dependentState walkProcType (alists_alist l, decl_node n);
+static void runPrototypeDefC (decl_node__opaque n);
 
 /*
-   walkProcedure -
+   outImpC -
 */
 
-static decl_dependentState walkProcedure (alists_alist l, decl_node n);
+static void outImpC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   walkParameters -
+   outDeclsModuleC -
 */
 
-static decl_dependentState walkParameters (alists_alist l, Indexing_Index p);
+static void outDeclsModuleC (mcPretty_pretty p, decl_scopeT s);
 
 /*
-   walkFuncCall -
+   outModuleInitC -
 */
 
-static decl_dependentState walkFuncCall (alists_alist l, decl_node n);
+static void outModuleInitC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   walkUnary -
+   outModuleC -
 */
 
-static decl_dependentState walkUnary (alists_alist l, decl_node n);
+static void outModuleC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   walkBinary -
+   outC -
 */
 
-static decl_dependentState walkBinary (alists_alist l, decl_node n);
+static void outC (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   walkComponentRef -
+   doIncludeM2 - include modules in module, n.
 */
 
-static decl_dependentState walkComponentRef (alists_alist l, decl_node n);
+static void doIncludeM2 (decl_node__opaque n);
 
 /*
-   walkPointerRef -
+   doConstM2 -
 */
 
-static decl_dependentState walkPointerRef (alists_alist l, decl_node n);
+static void doConstM2 (decl_node__opaque n);
 
 /*
-   walkSetValue -
+   doProcTypeM2 -
 */
 
-static decl_dependentState walkSetValue (alists_alist l, decl_node n);
+static void doProcTypeM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   doDependants - return the dependentState depending upon whether
-                  all dependants have been declared.
+   doRecordFieldM2 -
 */
 
-static decl_dependentState doDependants (alists_alist l, decl_node n);
+static void doRecordFieldM2 (mcPretty_pretty p, decl_node__opaque f);
 
 /*
-   tryComplete - returns TRUE if node, n, can be and was completed.
+   doVarientFieldM2 -
 */
 
-static bool tryComplete (decl_node n, decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v);
+static void doVarientFieldM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   tryCompleteFromPartial -
+   doVarientM2 -
 */
 
-static bool tryCompleteFromPartial (decl_node n, decl_nodeProcedure t);
+static void doVarientM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitIntrinsicFunction -
+   doRecordM2 -
 */
 
-static void visitIntrinsicFunction (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doRecordM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitUnary -
+   doPointerM2 -
 */
 
-static void visitUnary (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doPointerM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitBinary -
+   doTypeAliasM2 -
 */
 
-static void visitBinary (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doTypeAliasM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitBoolean -
+   doEnumerationM2 -
 */
 
-static void visitBoolean (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doEnumerationM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitScope -
+   doBaseM2 -
 */
 
-static void visitScope (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doBaseM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitType -
+   doSystemM2 -
 */
 
-static void visitType (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doSystemM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitIndex -
+   doTypeM2 -
 */
 
-static void visitIndex (alists_alist v, Indexing_Index i, decl_nodeProcedure p);
+static void doTypeM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitRecord -
+   doTypesM2 -
 */
 
-static void visitRecord (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doTypesM2 (decl_node__opaque n);
 
 /*
-   visitVarient -
+   doVarM2 -
 */
 
-static void visitVarient (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doVarM2 (decl_node__opaque n);
 
 /*
-   visitVar -
+   doVarsM2 -
 */
 
-static void visitVar (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doVarsM2 (decl_node__opaque n);
 
 /*
-   visitEnumeration -
+   doTypeNameM2 -
 */
 
-static void visitEnumeration (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doTypeNameM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitSubrange -
+   doParamM2 -
 */
 
-static void visitSubrange (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doParamM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitPointer -
+   doVarParamM2 -
 */
 
-static void visitPointer (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doVarParamM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitArray -
+   doParameterM2 -
 */
 
-static void visitArray (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doParameterM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitConst -
+   doPrototypeM2 -
 */
 
-static void visitConst (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doPrototypeM2 (decl_node__opaque n);
 
 /*
-   visitVarParam -
+   outputPartialM2 - just writes out record, array, and proctypes.
+                     No need for forward declarations in Modula-2
+                     but we need to keep topological sort happy.
+                     So when asked to output partial we emit the
+                     full type for these types and then do nothing
+                     when trying to complete partial to full.
 */
 
-static void visitVarParam (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void outputPartialM2 (decl_node__opaque n);
 
 /*
-   visitParam -
+   outDeclsDefM2 -
 */
 
-static void visitParam (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void outDeclsDefM2 (mcPretty_pretty p, decl_scopeT s);
 
 /*
-   visitOptarg -
+   outDefM2 -
 */
 
-static void visitOptarg (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void outDefM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitRecordField -
+   outDeclsImpM2 -
 */
 
-static void visitRecordField (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void outDeclsImpM2 (mcPretty_pretty p, decl_scopeT s);
 
 /*
-   visitVarientField -
+   outImpM2 -
 */
 
-static void visitVarientField (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void outImpM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitEnumerationField -
+   outModuleM2 -
 */
 
-static void visitEnumerationField (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void outModuleM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitSet -
+   outM2 -
 */
 
-static void visitSet (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void outM2 (mcPretty_pretty p, decl_node__opaque n);
 
 /*
-   visitProcType -
+   addDone - adds node, n, to the doneQ.
 */
 
-static void visitProcType (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void addDone (decl_node__opaque n);
 
 /*
-   visitSubscript -
+   addDoneDef - adds node, n, to the doneQ providing
+                it is not an opaque of the main module we are compiling.
 */
 
-static void visitSubscript (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void addDoneDef (decl_node__opaque n);
 
 /*
-   visitDecls -
+   dbgAdd -
 */
 
-static void visitDecls (alists_alist v, decl_scopeT s, decl_nodeProcedure p);
+static decl_node__opaque dbgAdd (alists_alist l, decl_node__opaque n);
 
 /*
-   visitProcedure -
+   dbgType -
 */
 
-static void visitProcedure (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void dbgType (alists_alist l, decl_node__opaque n);
 
 /*
-   visitDef -
+   dbgPointer -
 */
 
-static void visitDef (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void dbgPointer (alists_alist l, decl_node__opaque n);
 
 /*
-   visitImp -
+   dbgRecord -
 */
 
-static void visitImp (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void dbgRecord (alists_alist l, decl_node__opaque n);
 
 /*
-   visitModule -
+   dbgVarient -
 */
 
-static void visitModule (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void dbgVarient (alists_alist l, decl_node__opaque n);
 
 /*
-   visitLoop -
+   dbgEnumeration -
 */
 
-static void visitLoop (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void dbgEnumeration (alists_alist l, decl_node__opaque n);
 
 /*
-   visitWhile -
+   dbgVar -
 */
 
-static void visitWhile (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void dbgVar (alists_alist l, decl_node__opaque n);
 
 /*
-   visitRepeat -
+   dbgSubrange -
 */
 
-static void visitRepeat (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void dbgSubrange (alists_alist l, decl_node__opaque n);
 
 /*
-   visitCase -
+   dbgArray -
 */
 
-static void visitCase (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void dbgArray (alists_alist l, decl_node__opaque n);
 
 /*
-   visitCaseLabelList -
+   doDbg -
 */
 
-static void visitCaseLabelList (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void doDbg (alists_alist l, decl_node__opaque n);
 
 /*
-   visitCaseList -
+   dbg -
 */
 
-static void visitCaseList (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void dbg (const char *listName_, unsigned int _listName_high, const char *symName_, unsigned int _symName_high, decl_node__opaque n);
 
 /*
-   visitRange -
+   addGenericBody - adds comment node to funccall, return, assignment
+                    nodes.
 */
 
-static void visitRange (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void addGenericBody (decl_node__opaque n, decl_node__opaque c);
 
 /*
-   visitIf -
+   addGenericAfter - adds comment node to funccall, return, assignment
+                     nodes.
 */
 
-static void visitIf (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void addGenericAfter (decl_node__opaque n, decl_node__opaque c);
 
 /*
-   visitElsif -
+   isAssignment -
 */
 
-static void visitElsif (alists_alist v, decl_node n, decl_nodeProcedure p);
+static bool isAssignment (decl_node__opaque n);
 
 /*
-   visitFor -
+   isComment - returns TRUE if node, n, is a comment.
 */
 
-static void visitFor (alists_alist v, decl_node n, decl_nodeProcedure p);
+static bool isComment (decl_node__opaque n);
 
 /*
-   visitAssignment -
+   initPair - initialise the commentPair, c.
 */
 
-static void visitAssignment (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void initPair (decl_commentPair *c);
 
 /*
-   visitComponentRef -
+   dupExplist -
 */
 
-static void visitComponentRef (alists_alist v, decl_node n, decl_nodeProcedure p);
+static decl_node__opaque dupExplist (decl_node__opaque n);
 
 /*
-   visitPointerRef -
+   dupArrayref -
 */
 
-static void visitPointerRef (alists_alist v, decl_node n, decl_nodeProcedure p);
+static decl_node__opaque dupArrayref (decl_node__opaque n);
 
 /*
-   visitArrayRef -
+   dupPointerref -
 */
 
-static void visitArrayRef (alists_alist v, decl_node n, decl_nodeProcedure p);
+static decl_node__opaque dupPointerref (decl_node__opaque n);
 
 /*
-   visitFunccall -
+   dupComponentref -
 */
 
-static void visitFunccall (alists_alist v, decl_node n, decl_nodeProcedure p);
+static decl_node__opaque dupComponentref (decl_node__opaque n);
 
 /*
-   visitVarDecl -
+   dupBinary -
 */
 
-static void visitVarDecl (alists_alist v, decl_node n, decl_nodeProcedure p);
+static decl_node__opaque dupBinary (decl_node__opaque n);
 
 /*
-   visitExplist -
+   dupUnary -
 */
 
-static void visitExplist (alists_alist v, decl_node n, decl_nodeProcedure p);
+static decl_node__opaque dupUnary (decl_node__opaque n);
 
 /*
-   visitExit -
+   dupFunccall -
 */
 
-static void visitExit (alists_alist v, decl_node n, decl_nodeProcedure p);
+static decl_node__opaque dupFunccall (decl_node__opaque n);
 
 /*
-   visitReturn -
+   dupSetValue -
 */
 
-static void visitReturn (alists_alist v, decl_node n, decl_nodeProcedure p);
+static decl_node__opaque dupSetValue (decl_node__opaque n);
 
 /*
-   visitStmtSeq -
+   doDupExpr -
 */
 
-static void visitStmtSeq (alists_alist v, decl_node n, decl_nodeProcedure p);
+static decl_node__opaque doDupExpr (decl_node__opaque n);
 
 /*
-   visitVarargs -
+   makeSystem -
 */
 
-static void visitVarargs (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void makeSystem (void);
 
 /*
-   visitSetValue -
+   makeM2rts -
 */
 
-static void visitSetValue (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void makeM2rts (void);
 
 /*
-   visitIntrinsic -
+   makeBitnum -
 */
 
-static void visitIntrinsic (alists_alist v, decl_node n, decl_nodeProcedure p);
+static decl_node__opaque makeBitnum (void);
 
 /*
-   visitDependants - helper procedure function called from visitNode.
-                     node n has just been visited, this procedure will
-                     visit node, n, dependants.
+   makeBaseSymbols -
 */
 
-static void visitDependants (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void makeBaseSymbols (void);
 
 /*
-   visitNode - visits node, n, if it is not already in the alist, v.
-               It calls p(n) if the node is unvisited.
+   makeBuiltins -
 */
 
-static void visitNode (alists_alist v, decl_node n, decl_nodeProcedure p);
+static void makeBuiltins (void);
 
 /*
-   genKind - returns a string depending upon the kind of node, n.
+   init -
 */
 
-static DynamicStrings_String genKind (decl_node n);
-
-/*
-   gen - generate a small string describing node, n.
-*/
+static void init (void);
 
-static DynamicStrings_String gen (decl_node n);
 
 /*
-   dumpQ -
+   newNode - create and return a new node of kind k.
 */
 
-static void dumpQ (const char *q_, unsigned int _q_high, alists_alist l);
+static decl_node__opaque newNode (decl_nodeT k)
+{
+  decl_node__opaque d;
 
-/*
-   dumpLists -
-*/
+  Storage_ALLOCATE ((void **) &d, sizeof (decl_nodeRec));
+  if (enableMemsetOnAllocation)
+    {
+      d = static_cast<decl_node__opaque> (libc_memset (reinterpret_cast<void *> (d), 0, static_cast<size_t> (sizeof ((*d)))));
+    }
+  if (d == NULL)
+    {
+      M2RTS_HALT (-1);
+      __builtin_unreachable ();
+    }
+  else
+    {
+      d->kind = k;
+      d->at.defDeclared = 0;
+      d->at.modDeclared = 0;
+      d->at.firstUsed = 0;
+      return d;
+    }
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
+  __builtin_unreachable ();
+}
 
-static void dumpLists (void);
 
 /*
-   outputHidden -
+   disposeNode - dispose node, n.
 */
 
-static void outputHidden (decl_node n);
-
-/*
-   outputHiddenComplete -
-*/
+static void disposeNode (decl_node__opaque *n)
+{
+  Storage_DEALLOCATE ((void **) &(*n), sizeof (decl_nodeRec));
+  (*n) = static_cast<decl_node__opaque> (NULL);
+}
 
-static void outputHiddenComplete (decl_node n);
 
 /*
-   tryPartial -
+   newGroup -
 */
 
-static bool tryPartial (decl_node n, decl_nodeProcedure pt);
+static void newGroup (decl_group *g)
+{
+  if (freeGroup == NULL)
+    {
+      Storage_ALLOCATE ((void **) &(*g), sizeof (decl__T1));
+    }
+  else
+    {
+      (*g) = freeGroup;
+      freeGroup = freeGroup->next;
+    }
+}
+
 
 /*
-   outputPartialRecordArrayProcType -
+   initGroup - returns a group which with all lists initialized.
 */
 
-static void outputPartialRecordArrayProcType (decl_node n, decl_node q, unsigned int indirection);
+static decl_group initGroup (void)
+{
+  decl_group g;
 
-/*
-   outputPartial -
-*/
+  newGroup (&g);
+  g->todoQ = alists_initList ();
+  g->partialQ = alists_initList ();
+  g->doneQ = alists_initList ();
+  g->next = NULL;
+  return g;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void outputPartial (decl_node n);
 
 /*
-   tryOutputTodo -
+   killGroup - deallocate the group and place the group record into the freeGroup list.
 */
 
-static void tryOutputTodo (decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v, decl_nodeProcedure pt);
+static void killGroup (decl_group *g)
+{
+  alists_killList (&(*g)->todoQ);
+  alists_killList (&(*g)->partialQ);
+  alists_killList (&(*g)->doneQ);
+  (*g)->next = freeGroup;
+  freeGroup = (*g);
+}
+
 
 /*
-   tryOutputPartial -
+   dupGroup - If g is not NIL then destroy g.
+              Return a duplicate of GlobalGroup (not g).
 */
 
-static void tryOutputPartial (decl_nodeProcedure t);
+static decl_group dupGroup (decl_group g)
+{
+  if (g != NULL)
+    {
+      /* Kill old group.  */
+      killGroup (&g);
+    }
+  newGroup (&g);
+  /* Copy all lists.  */
+  g->todoQ = alists_duplicateList (globalGroup->todoQ);
+  g->partialQ = alists_duplicateList (globalGroup->partialQ);
+  g->doneQ = alists_duplicateList (globalGroup->doneQ);
+  g->next = NULL;
+  return g;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
 
 /*
-   debugList -
+   equalGroup - return TRUE if group left = right.
 */
 
-static void debugList (const char *a_, unsigned int _a_high, alists_alist l);
+static bool equalGroup (decl_group left, decl_group right)
+{
+  return (left == right) || (((alists_equalList (left->todoQ, right->todoQ)) && (alists_equalList (left->partialQ, right->partialQ))) && (alists_equalList (left->doneQ, right->doneQ)));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
 
 /*
-   debugLists -
+   isLocal - returns TRUE if symbol, n, is locally declared in a procedure.
 */
 
-static void debugLists (void);
+static bool isLocal (decl_node__opaque n)
+{
+  decl_node__opaque s;
 
-/*
-   addEnumConst -
-*/
+  s = static_cast<decl_node__opaque> (decl_getScope (static_cast<decl_node> (n)));
+  if (s != NULL)
+    {
+      return decl_isProcedure (static_cast<decl_node> (s));
+    }
+  return false;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void addEnumConst (decl_node n);
 
 /*
-   populateTodo -
+   importEnumFields - if, n, is an enumeration type import the all fields into module, m.
 */
 
-static void populateTodo (decl_nodeProcedure p);
+static void importEnumFields (decl_node__opaque m, decl_node__opaque n)
+{
+  decl_node__opaque r;
+  decl_node__opaque e;
+  unsigned int i;
+  unsigned int h;
 
-/*
-   topologicallyOut - keep trying to resolve the todoQ and partialQ
-                      until there is no change from the global group.
-*/
+  mcDebug_assert (((decl_isDef (static_cast<decl_node> (m))) || (decl_isModule (static_cast<decl_node> (m)))) || (decl_isImp (static_cast<decl_node> (m))));
+  n = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (n)));
+  if ((n != NULL) && (decl_isEnumeration (static_cast<decl_node> (n))))
+    {
+      i = Indexing_LowIndice (n->enumerationF.listOfSons);
+      h = Indexing_HighIndice (n->enumerationF.listOfSons);
+      while (i <= h)
+        {
+          e = static_cast<decl_node__opaque> (Indexing_GetIndice (n->enumerationF.listOfSons, i));
+          r = static_cast<decl_node__opaque> (decl_import (static_cast<decl_node> (m), static_cast<decl_node> (e)));
+          if (e != r)
+            {
+              mcMetaError_metaError2 ((const char *) "enumeration field {%1ad} cannot be imported implicitly into {%2d} due to a name clash", 85, (const unsigned char *) &e, (sizeof (e)-1), (const unsigned char *) &m, (sizeof (m)-1));
+            }
+          i += 1;
+        }
+    }
+}
 
-static void topologicallyOut (decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v, decl_nodeProcedure tp, decl_nodeProcedure pc, decl_nodeProcedure pt, decl_nodeProcedure pv);
 
 /*
-   scaffoldStatic -
+   isComplex - returns TRUE if, n, is the complex type.
 */
 
-static void scaffoldStatic (mcPretty_pretty p, decl_node n);
+static bool isComplex (decl_node__opaque n)
+{
+  return n == complexN;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
 
 /*
-   emitCtor -
+   isLongComplex - returns TRUE if, n, is the longcomplex type.
 */
 
-static void emitCtor (mcPretty_pretty p, decl_node n);
+static bool isLongComplex (decl_node__opaque n)
+{
+  return n == longcomplexN;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
 
 /*
-   scaffoldDynamic -
+   isShortComplex - returns TRUE if, n, is the shortcomplex type.
 */
 
-static void scaffoldDynamic (mcPretty_pretty p, decl_node n);
-
-/*
-   scaffoldMain -
-*/
+static bool isShortComplex (decl_node__opaque n)
+{
+  return n == shortcomplexN;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void scaffoldMain (mcPretty_pretty p, decl_node n);
 
 /*
-   outImpInitC - emit the init/fini functions and main function if required.
+   isAProcType - returns TRUE if, n, is a proctype or proc node.
 */
 
-static void outImpInitC (mcPretty_pretty p, decl_node n);
-
-/*
-   runSimplifyTypes -
-*/
+static bool isAProcType (decl_node__opaque n)
+{
+  mcDebug_assert (n != NULL);
+  return (decl_isProcType (static_cast<decl_node> (n))) || (n == procN);
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void runSimplifyTypes (decl_node n);
 
 /*
-   outDefC -
+   initFixupInfo - initialize the fixupInfo record.
 */
 
-static void outDefC (mcPretty_pretty p, decl_node n);
+static decl_fixupInfo initFixupInfo (void)
+{
+  decl_fixupInfo f;
 
-/*
-   runPrototypeExported -
-*/
+  f.count = 0;
+  f.info = Indexing_InitIndex (1);
+  return f;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void runPrototypeExported (decl_node n);
 
 /*
-   runPrototypeDefC -
+   makeDef - returns a definition module node named, n.
 */
 
-static void runPrototypeDefC (decl_node n);
+static decl_node__opaque makeDef (nameKey_Name n)
+{
+  decl_node__opaque d;
 
-/*
-   outImpC -
-*/
+  d = newNode (decl_def);
+  d->defF.name = n;
+  d->defF.source = nameKey_NulName;
+  d->defF.hasHidden = false;
+  d->defF.forC = false;
+  d->defF.exported = Indexing_InitIndex (1);
+  d->defF.importedModules = Indexing_InitIndex (1);
+  d->defF.constFixup = initFixupInfo ();
+  d->defF.enumFixup = initFixupInfo ();
+  initDecls (&d->defF.decls);
+  d->defF.enumsComplete = false;
+  d->defF.constsComplete = false;
+  d->defF.visited = false;
+  initPair (&d->defF.com);
+  return d;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void outImpC (mcPretty_pretty p, decl_node n);
 
 /*
-   outDeclsModuleC -
+   makeImp - returns an implementation module node named, n.
 */
 
-static void outDeclsModuleC (mcPretty_pretty p, decl_scopeT s);
+static decl_node__opaque makeImp (nameKey_Name n)
+{
+  decl_node__opaque d;
 
-/*
-   outModuleInitC -
-*/
+  d = newNode (decl_imp);
+  d->impF.name = n;
+  d->impF.source = nameKey_NulName;
+  d->impF.importedModules = Indexing_InitIndex (1);
+  d->impF.constFixup = initFixupInfo ();
+  d->impF.enumFixup = initFixupInfo ();
+  initDecls (&d->impF.decls);
+  d->impF.beginStatements = static_cast<decl_node__opaque> (NULL);
+  d->impF.finallyStatements = static_cast<decl_node__opaque> (NULL);
+  d->impF.definitionModule = static_cast<decl_node__opaque> (NULL);
+  d->impF.enumsComplete = false;
+  d->impF.constsComplete = false;
+  d->impF.visited = false;
+  initPair (&d->impF.com);
+  return d;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void outModuleInitC (mcPretty_pretty p, decl_node n);
 
 /*
-   outModuleC -
+   makeModule - returns a module node named, n.
 */
 
-static void outModuleC (mcPretty_pretty p, decl_node n);
+static decl_node__opaque makeModule (nameKey_Name n)
+{
+  decl_node__opaque d;
 
-/*
-   outC -
-*/
+  d = newNode (decl_module);
+  d->moduleF.name = n;
+  d->moduleF.source = nameKey_NulName;
+  d->moduleF.importedModules = Indexing_InitIndex (1);
+  d->moduleF.constFixup = initFixupInfo ();
+  d->moduleF.enumFixup = initFixupInfo ();
+  initDecls (&d->moduleF.decls);
+  d->moduleF.beginStatements = static_cast<decl_node__opaque> (NULL);
+  d->moduleF.finallyStatements = static_cast<decl_node__opaque> (NULL);
+  d->moduleF.enumsComplete = false;
+  d->moduleF.constsComplete = false;
+  d->moduleF.visited = false;
+  initPair (&d->moduleF.com);
+  return d;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void outC (mcPretty_pretty p, decl_node n);
 
 /*
-   doIncludeM2 - include modules in module, n.
+   isDefForC - returns TRUE if the definition module was defined FOR "C".
 */
 
-static void doIncludeM2 (decl_node n);
-
-/*
-   doConstM2 -
-*/
+static bool isDefForC (decl_node__opaque n)
+{
+  return (decl_isDef (static_cast<decl_node> (n))) && n->defF.forC;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void doConstM2 (decl_node n);
 
 /*
-   doProcTypeM2 -
+   initDecls - initialize the decls, scopeT.
 */
 
-static void doProcTypeM2 (mcPretty_pretty p, decl_node n);
-
-/*
-   doRecordFieldM2 -
-*/
+static void initDecls (decl_scopeT *decls)
+{
+  (*decls).symbols = symbolKey_initTree ();
+  (*decls).constants = Indexing_InitIndex (1);
+  (*decls).types = Indexing_InitIndex (1);
+  (*decls).procedures = Indexing_InitIndex (1);
+  (*decls).variables = Indexing_InitIndex (1);
+}
 
-static void doRecordFieldM2 (mcPretty_pretty p, decl_node f);
 
 /*
-   doVarientFieldM2 -
+   addTo - adds node, d, to scope decls and returns, d.
+           It stores, d, in the symbols tree associated with decls.
 */
 
-static void doVarientFieldM2 (mcPretty_pretty p, decl_node n);
+static decl_node__opaque addTo (decl_scopeT *decls, decl_node__opaque d)
+{
+  nameKey_Name n;
 
-/*
-   doVarientM2 -
-*/
+  n = decl_getSymName (static_cast<decl_node> (d));
+  if (n != nameKey_NulName)
+    {
+      /* avoid gcc warning by using compound statement even if not strictly necessary.  */
+      if ((symbolKey_getSymKey ((*decls).symbols, n)) == NULL)
+        {
+          symbolKey_putSymKey ((*decls).symbols, n, reinterpret_cast<void *> (d));
+        }
+      else
+        {
+          mcMetaError_metaError1 ((const char *) "{%1DMad} was declared", 21, (const unsigned char *) &d, (sizeof (d)-1));
+          mcMetaError_metaError1 ((const char *) "{%1k} and is being declared again", 33, (const unsigned char *) &n, (sizeof (n)-1));
+        }
+    }
+  if (decl_isConst (static_cast<decl_node> (d)))
+    {
+      Indexing_IncludeIndiceIntoIndex ((*decls).constants, reinterpret_cast<void *> (d));
+    }
+  else if (decl_isVar (static_cast<decl_node> (d)))
+    {
+      /* avoid dangling else.  */
+      Indexing_IncludeIndiceIntoIndex ((*decls).variables, reinterpret_cast<void *> (d));
+    }
+  else if (decl_isType (static_cast<decl_node> (d)))
+    {
+      /* avoid dangling else.  */
+      Indexing_IncludeIndiceIntoIndex ((*decls).types, reinterpret_cast<void *> (d));
+    }
+  else if (decl_isProcedure (static_cast<decl_node> (d)))
+    {
+      /* avoid dangling else.  */
+      Indexing_IncludeIndiceIntoIndex ((*decls).procedures, reinterpret_cast<void *> (d));
+      if (debugDecl)
+        {
+          libc_printf ((const char *) "%d procedures on the dynamic array\\n", 36, Indexing_HighIndice ((*decls).procedures));
+        }
+    }
+  return d;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void doVarientM2 (mcPretty_pretty p, decl_node n);
 
 /*
-   doRecordM2 -
+   export - export node, n, from definition module, d.
 */
 
-static void doRecordM2 (mcPretty_pretty p, decl_node n);
+static void export_ (decl_node__opaque d, decl_node__opaque n)
+{
+  mcDebug_assert (decl_isDef (static_cast<decl_node> (d)));
+  Indexing_IncludeIndiceIntoIndex (d->defF.exported, reinterpret_cast<void *> (n));
+}
+
 
 /*
-   doPointerM2 -
+   addToScope - adds node, n, to the current scope and returns, n.
 */
 
-static void doPointerM2 (mcPretty_pretty p, decl_node n);
+static decl_node__opaque addToScope (decl_node__opaque n)
+{
+  decl_node__opaque s;
+  unsigned int i;
 
-/*
-   doTypeAliasM2 -
-*/
+  i = Indexing_HighIndice (scopeStack);
+  s = static_cast<decl_node__opaque> (Indexing_GetIndice (scopeStack, i));
+  if (decl_isProcedure (static_cast<decl_node> (s)))
+    {
+      if (debugDecl)
+        {
+          outText (doP, (const char *) "adding ", 7);
+          doNameC (doP, n);
+          outText (doP, (const char *) " to procedure\\n", 15);
+        }
+      return addTo (&s->procedureF.decls, n);
+    }
+  else if (decl_isModule (static_cast<decl_node> (s)))
+    {
+      /* avoid dangling else.  */
+      if (debugDecl)
+        {
+          outText (doP, (const char *) "adding ", 7);
+          doNameC (doP, n);
+          outText (doP, (const char *) " to module\\n", 12);
+        }
+      return addTo (&s->moduleF.decls, n);
+    }
+  else if (decl_isDef (static_cast<decl_node> (s)))
+    {
+      /* avoid dangling else.  */
+      if (debugDecl)
+        {
+          outText (doP, (const char *) "adding ", 7);
+          doNameC (doP, n);
+          outText (doP, (const char *) " to definition module\\n", 23);
+        }
+      export_ (s, n);
+      return addTo (&s->defF.decls, n);
+    }
+  else if (decl_isImp (static_cast<decl_node> (s)))
+    {
+      /* avoid dangling else.  */
+      if (debugDecl)
+        {
+          outText (doP, (const char *) "adding ", 7);
+          doNameC (doP, n);
+          outText (doP, (const char *) " to implementation module\\n", 27);
+        }
+      return addTo (&s->impF.decls, n);
+    }
+  M2RTS_HALT (-1);
+  __builtin_unreachable ();
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
+  __builtin_unreachable ();
+}
 
-static void doTypeAliasM2 (mcPretty_pretty p, decl_node n);
 
 /*
-   doEnumerationM2 -
+   addModuleToScope - adds module, i, to module, m, scope.
 */
 
-static void doEnumerationM2 (mcPretty_pretty p, decl_node n);
+static void addModuleToScope (decl_node__opaque m, decl_node__opaque i)
+{
+  mcDebug_assert ((decl_getDeclScope ()) == m);
+  if ((decl_lookupSym (decl_getSymName (static_cast<decl_node> (i)))) == NULL)
+    {
+      i = addToScope (i);
+    }
+}
+
 
 /*
-   doBaseM2 -
+   completedEnum - assign boolean enumsComplete to TRUE if a definition,
+                   implementation or module symbol.
 */
 
-static void doBaseM2 (mcPretty_pretty p, decl_node n);
+static void completedEnum (decl_node__opaque n)
+{
+  mcDebug_assert (((decl_isDef (static_cast<decl_node> (n))) || (decl_isImp (static_cast<decl_node> (n)))) || (decl_isModule (static_cast<decl_node> (n))));
+  if (decl_isDef (static_cast<decl_node> (n)))
+    {
+      n->defF.enumsComplete = true;
+    }
+  else if (decl_isImp (static_cast<decl_node> (n)))
+    {
+      /* avoid dangling else.  */
+      n->impF.enumsComplete = true;
+    }
+  else if (decl_isModule (static_cast<decl_node> (n)))
+    {
+      /* avoid dangling else.  */
+      n->moduleF.enumsComplete = true;
+    }
+}
+
 
 /*
-   doSystemM2 -
+   setUnary - sets a unary node to contain, arg, a, and type, t.
 */
 
-static void doSystemM2 (mcPretty_pretty p, decl_node n);
-
-/*
-   doTypeM2 -
-*/
+static void setUnary (decl_node__opaque u, decl_nodeT k, decl_node__opaque a, decl_node__opaque t)
+{
+  switch (k)
+    {
+      case decl_constexp:
+      case decl_deref:
+      case decl_chr:
+      case decl_cap:
+      case decl_abs:
+      case decl_float:
+      case decl_trunc:
+      case decl_ord:
+      case decl_high:
+      case decl_throw:
+      case decl_re:
+      case decl_im:
+      case decl_not:
+      case decl_neg:
+      case decl_adr:
+      case decl_size:
+      case decl_tsize:
+      case decl_min:
+      case decl_max:
+        u->kind = k;
+        u->unaryF.arg = a;
+        u->unaryF.resultType = t;
+        break;
 
-static void doTypeM2 (mcPretty_pretty p, decl_node n);
 
-/*
-   doTypesM2 -
-*/
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
+    }
+}
 
-static void doTypesM2 (decl_node n);
 
 /*
-   doVarM2 -
+   putVarBool - assigns the four booleans associated with a variable.
 */
 
-static void doVarM2 (decl_node n);
-
-/*
-   doVarsM2 -
-*/
+static void putVarBool (decl_node__opaque v, bool init, bool param, bool isvar, bool isused)
+{
+  mcDebug_assert (decl_isVar (static_cast<decl_node> (v)));
+  v->varF.isInitialised = init;
+  v->varF.isParameter = param;
+  v->varF.isVarParameter = isvar;
+  v->varF.isUsed = isused;
+}
 
-static void doVarsM2 (decl_node n);
 
 /*
-   doTypeNameM2 -
+   checkPtr - in C++ we need to create a typedef for a pointer
+              in case we need to use reinterpret_cast.
 */
 
-static void doTypeNameM2 (mcPretty_pretty p, decl_node n);
+static decl_node__opaque checkPtr (decl_node__opaque n)
+{
+  DynamicStrings_String s;
+  decl_node__opaque p;
 
-/*
-   doParamM2 -
-*/
+  if (lang == decl_ansiCP)
+    {
+      if (decl_isPointer (static_cast<decl_node> (n)))
+        {
+          s = tempName ();
+          p = static_cast<decl_node__opaque> (decl_makeType (nameKey_makekey (DynamicStrings_string (s))));
+          decl_putType (static_cast<decl_node> (p), static_cast<decl_node> (n));
+          s = DynamicStrings_KillString (s);
+          return p;
+        }
+    }
+  return n;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void doParamM2 (mcPretty_pretty p, decl_node n);
 
 /*
-   doVarParamM2 -
+   isVarDecl - returns TRUE if, n, is a vardecl node.
 */
 
-static void doVarParamM2 (mcPretty_pretty p, decl_node n);
-
-/*
-   doParameterM2 -
-*/
+static bool isVarDecl (decl_node__opaque n)
+{
+  return n->kind == decl_vardecl;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void doParameterM2 (mcPretty_pretty p, decl_node n);
 
 /*
-   doPrototypeM2 -
+   makeVariablesFromParameters - creates variables which are really parameters.
 */
 
-static void doPrototypeM2 (decl_node n);
+static void makeVariablesFromParameters (decl_node__opaque proc, decl_node__opaque id, decl_node__opaque type, bool isvar, bool isused)
+{
+  decl_node__opaque v;
+  unsigned int i;
+  unsigned int n;
+  nameKey_Name m;
+  DynamicStrings_String s;
 
-/*
-   outputPartialM2 - just writes out record, array, and proctypes.
-                     No need for forward declarations in Modula-2
-                     but we need to keep topological sort happy.
-                     So when asked to output partial we emit the
-                     full type for these types and then do nothing
-                     when trying to complete partial to full.
-*/
+  mcDebug_assert (decl_isProcedure (static_cast<decl_node> (proc)));
+  mcDebug_assert (isIdentList (id));
+  i = 1;
+  n = wlists_noOfItemsInList (id->identlistF.names);
+  while (i <= n)
+    {
+      m = static_cast<nameKey_Name> (wlists_getItemFromList (id->identlistF.names, i));
+      v = static_cast<decl_node__opaque> (decl_makeVar (m));
+      decl_putVar (static_cast<decl_node> (v), static_cast<decl_node> (type), static_cast<decl_node> (NULL));
+      putVarBool (v, true, true, isvar, isused);
+      if (debugScopes)
+        {
+          libc_printf ((const char *) "adding parameter variable into top scope\\n", 42);
+          dumpScopes ();
+          libc_printf ((const char *) " variable name is: ", 19);
+          s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (m));
+          if ((DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, s))) == NULL)
+            {}  /* empty.  */
+          libc_printf ((const char *) "\\n", 2);
+        }
+      i += 1;
+    }
+}
 
-static void outputPartialM2 (decl_node n);
 
 /*
-   outDeclsDefM2 -
+   addProcedureToScope - add a procedure name n and node d to the
+                         current scope.
 */
 
-static void outDeclsDefM2 (mcPretty_pretty p, decl_scopeT s);
+static decl_node__opaque addProcedureToScope (decl_node__opaque d, nameKey_Name n)
+{
+  decl_node__opaque m;
+  unsigned int i;
 
-/*
-   outDefM2 -
-*/
+  i = Indexing_HighIndice (scopeStack);
+  m = static_cast<decl_node__opaque> (Indexing_GetIndice (scopeStack, i));
+  if (((decl_isDef (static_cast<decl_node> (m))) && ((decl_getSymName (static_cast<decl_node> (m))) == (nameKey_makeKey ((const char *) "M2RTS", 5)))) && ((decl_getSymName (static_cast<decl_node> (d))) == (nameKey_makeKey ((const char *) "HALT", 4))))
+    {
+      haltN = d;
+      symbolKey_putSymKey (baseSymbols, n, reinterpret_cast<void *> (haltN));
+    }
+  return addToScope (d);
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void outDefM2 (mcPretty_pretty p, decl_node n);
 
 /*
-   outDeclsImpM2 -
+   putProcTypeReturn - sets the return type of, proc, to, type.
 */
 
-static void outDeclsImpM2 (mcPretty_pretty p, decl_scopeT s);
-
-/*
-   outImpM2 -
-*/
+static void putProcTypeReturn (decl_node__opaque proc, decl_node__opaque type)
+{
+  mcDebug_assert (decl_isProcType (static_cast<decl_node> (proc)));
+  proc->proctypeF.returnType = type;
+  initNodeOpaqueState (proc);
+}
 
-static void outImpM2 (mcPretty_pretty p, decl_node n);
 
 /*
-   outModuleM2 -
+   putProcTypeOptReturn - sets, proc, to have an optional return type.
 */
 
-static void outModuleM2 (mcPretty_pretty p, decl_node n);
-
-/*
-   outM2 -
-*/
+static void putProcTypeOptReturn (decl_node__opaque proc)
+{
+  mcDebug_assert (decl_isProcType (static_cast<decl_node> (proc)));
+  proc->proctypeF.returnopt = true;
+}
 
-static void outM2 (mcPretty_pretty p, decl_node n);
 
 /*
-   addDone - adds node, n, to the doneQ.
+   makeOptParameter - creates and returns an optarg.
 */
 
-static void addDone (decl_node n);
+static decl_node__opaque makeOptParameter (decl_node__opaque l, decl_node__opaque type, decl_node__opaque init)
+{
+  decl_node__opaque n;
 
-/*
-   addDoneDef - adds node, n, to the doneQ providing
-                it is not an opaque of the main module we are compiling.
-*/
+  n = newNode (decl_optarg);
+  n->optargF.namelist = l;
+  n->optargF.type = type;
+  n->optargF.init = init;
+  n->optargF.scope = static_cast<decl_node__opaque> (NULL);
+  return n;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void addDoneDef (decl_node n);
 
 /*
-   dbgAdd -
+   setwatch - assign the globalNode to n.
 */
 
-static decl_node dbgAdd (alists_alist l, decl_node n);
-
-/*
-   dbgType -
-*/
+static bool setwatch (decl_node__opaque n)
+{
+  globalNode = n;
+  return true;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void dbgType (alists_alist l, decl_node n);
 
 /*
-   dbgPointer -
+   runwatch - set the globalNode to an identlist.
 */
 
-static void dbgPointer (alists_alist l, decl_node n);
-
-/*
-   dbgRecord -
-*/
+static bool runwatch (void)
+{
+  return globalNode->kind == decl_identlist;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void dbgRecord (alists_alist l, decl_node n);
 
 /*
-   dbgVarient -
+   isIdentList - returns TRUE if, n, is an identlist.
 */
 
-static void dbgVarient (alists_alist l, decl_node n);
+static bool isIdentList (decl_node__opaque n)
+{
+  return n->kind == decl_identlist;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
 
 /*
-   dbgEnumeration -
+   identListLen - returns the length of identlist.
 */
 
-static void dbgEnumeration (alists_alist l, decl_node n);
+static unsigned int identListLen (decl_node__opaque n)
+{
+  if (n == NULL)
+    {
+      return 0;
+    }
+  else
+    {
+      mcDebug_assert (isIdentList (n));
+      return wlists_noOfItemsInList (n->identlistF.names);
+    }
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
 
 /*
-   dbgVar -
+   checkParameters - placeholder for future parameter checking.
 */
 
-static void dbgVar (alists_alist l, decl_node n);
+static void checkParameters (decl_node__opaque p, decl_node__opaque i, decl_node__opaque type, bool isvar, bool isused)
+{
+  /* do check.  */
+  disposeNode (&i);
+}
+
 
 /*
-   dbgSubrange -
+   checkMakeVariables - create shadow local variables for parameters providing that
+                        procedure n has not already been built and we are compiling
+                        a module or an implementation module.
 */
 
-static void dbgSubrange (alists_alist l, decl_node n);
+static void checkMakeVariables (decl_node__opaque n, decl_node__opaque i, decl_node__opaque type, bool isvar, bool isused)
+{
+  if (((decl_isImp (static_cast<decl_node> (currentModule))) || (decl_isModule (static_cast<decl_node> (currentModule)))) && ! n->procedureF.built)
+    {
+      makeVariablesFromParameters (n, i, type, isvar, isused);
+    }
+}
+
 
 /*
-   dbgArray -
+   makeVarientField - create a varient field within varient, v,
+                      The new varient field is returned.
 */
 
-static void dbgArray (alists_alist l, decl_node n);
+static decl_node__opaque makeVarientField (decl_node__opaque v, decl_node__opaque p)
+{
+  decl_node__opaque n;
 
-/*
-   doDbg -
-*/
+  n = newNode (decl_varientfield);
+  n->varientfieldF.name = nameKey_NulName;
+  n->varientfieldF.parent = p;
+  n->varientfieldF.varient = v;
+  n->varientfieldF.simple = false;
+  n->varientfieldF.listOfSons = Indexing_InitIndex (1);
+  n->varientfieldF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+  return n;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void doDbg (alists_alist l, decl_node n);
 
 /*
-   dbg -
+   putFieldVarient - places the field varient, f, as a brother to, the
+                     varient symbol, v, and also tells, f, that its varient
+                     parent is, v.
 */
 
-static void dbg (decl_node n);
-
-/*
-   addGenericBody - adds comment node to funccall, return, assignment
-                    nodes.
-*/
-
-static void addGenericBody (decl_node n, decl_node c);
-
-/*
-   addGenericAfter - adds comment node to funccall, return, assignment
-                     nodes.
-*/
+static void putFieldVarient (decl_node__opaque f, decl_node__opaque v)
+{
+  mcDebug_assert (decl_isVarient (static_cast<decl_node> (v)));
+  mcDebug_assert (decl_isVarientField (static_cast<decl_node> (f)));
+  switch (v->kind)
+    {
+      case decl_varient:
+        Indexing_IncludeIndiceIntoIndex (v->varientF.listOfSons, reinterpret_cast<void *> (f));
+        break;
 
-static void addGenericAfter (decl_node n, decl_node c);
 
-/*
-   isAssignment -
-*/
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
+    }
+  switch (f->kind)
+    {
+      case decl_varientfield:
+        f->varientfieldF.varient = v;
+        break;
 
-static bool isAssignment (decl_node n);
 
-/*
-   isComment - returns TRUE if node, n, is a comment.
-*/
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
+    }
+}
 
-static bool isComment (decl_node n);
 
 /*
-   initPair - initialise the commentPair, c.
+   putFieldRecord - create a new recordfield and place it into record r.
+                    The new field has a tagname and type and can have a
+                    variant field v.
 */
 
-static void initPair (decl_commentPair *c);
-
-/*
-   dupExplist -
-*/
+static decl_node__opaque putFieldRecord (decl_node__opaque r, nameKey_Name tag, decl_node__opaque type, decl_node__opaque v)
+{
+  decl_node__opaque f;
+  decl_node__opaque n;
+  decl_node__opaque p;
 
-static decl_node dupExplist (decl_node n);
+  n = newNode (decl_recordfield);
+  switch (r->kind)
+    {
+      case decl_record:
+        Indexing_IncludeIndiceIntoIndex (r->recordF.listOfSons, reinterpret_cast<void *> (n));
+        /* ensure that field, n, is in the parents Local Symbols.  */
+        if (tag != nameKey_NulName)
+          {
+            /* avoid gcc warning by using compound statement even if not strictly necessary.  */
+            if ((symbolKey_getSymKey (r->recordF.localSymbols, tag)) == symbolKey_NulKey)
+              {
+                symbolKey_putSymKey (r->recordF.localSymbols, tag, reinterpret_cast<void *> (n));
+              }
+            else
+              {
+                f = static_cast<decl_node__opaque> (symbolKey_getSymKey (r->recordF.localSymbols, tag));
+                mcMetaError_metaErrors1 ((const char *) "field record {%1Dad} has already been declared", 46, (const char *) "field record duplicate", 22, (const unsigned char *) &f, (sizeof (f)-1));
+              }
+          }
+        break;
 
-/*
-   dupArrayref -
-*/
+      case decl_varientfield:
+        Indexing_IncludeIndiceIntoIndex (r->varientfieldF.listOfSons, reinterpret_cast<void *> (n));
+        p = getParent (r);
+        mcDebug_assert (p->kind == decl_record);
+        if (tag != nameKey_NulName)
+          {
+            symbolKey_putSymKey (p->recordF.localSymbols, tag, reinterpret_cast<void *> (n));
+          }
+        break;
 
-static decl_node dupArrayref (decl_node n);
 
-/*
-   dupPointerref -
-*/
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
+    }
+  /* fill in, n.  */
+  n->recordfieldF.type = type;
+  n->recordfieldF.name = tag;
+  n->recordfieldF.parent = r;
+  n->recordfieldF.varient = v;
+  n->recordfieldF.tag = false;
+  n->recordfieldF.scope = static_cast<decl_node__opaque> (NULL);
+  initCname (&n->recordfieldF.cname);
+  /* 
+   IF r^.kind=record
+   THEN
+      doRecordM2 (doP, r)
+   END ;
+  */
+  return n;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static decl_node dupPointerref (decl_node n);
 
 /*
-   dupComponentref -
+   ensureOrder - ensures that, a, and, b, exist in, i, and also
+                 ensure that, a, is before, b.
 */
 
-static decl_node dupComponentref (decl_node n);
-
-/*
-   dupBinary -
-*/
+static void ensureOrder (Indexing_Index i, decl_node__opaque a, decl_node__opaque b)
+{
+  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (a)));
+  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (b)));
+  Indexing_RemoveIndiceFromIndex (i, reinterpret_cast<void *> (a));
+  Indexing_RemoveIndiceFromIndex (i, reinterpret_cast<void *> (b));
+  Indexing_IncludeIndiceIntoIndex (i, reinterpret_cast<void *> (a));
+  Indexing_IncludeIndiceIntoIndex (i, reinterpret_cast<void *> (b));
+  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (a)));
+  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (b)));
+}
 
-static decl_node dupBinary (decl_node n);
 
 /*
-   dupUnary -
+   putVarientTag - places tag into variant v.
 */
 
-static decl_node dupUnary (decl_node n);
+static void putVarientTag (decl_node__opaque v, decl_node__opaque tag)
+{
+  decl_node__opaque p;
 
-/*
-   dupFunccall -
-*/
+  mcDebug_assert (decl_isVarient (static_cast<decl_node> (v)));
+  switch (v->kind)
+    {
+      case decl_varient:
+        v->varientF.tag = tag;
+        break;
 
-static decl_node dupFunccall (decl_node n);
 
-/*
-   dupSetValue -
-*/
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
+    }
+}
 
-static decl_node dupSetValue (decl_node n);
 
 /*
-   doDupExpr -
+   getParent - returns the parent field of recordfield or varientfield symbol, n.
 */
 
-static decl_node doDupExpr (decl_node n);
+static decl_node__opaque getParent (decl_node__opaque n)
+{
+  switch (n->kind)
+    {
+      case decl_recordfield:
+        return n->recordfieldF.parent;
+        break;
 
-/*
-   makeSystem -
-*/
+      case decl_varientfield:
+        return n->varientfieldF.parent;
+        break;
 
-static void makeSystem (void);
 
-/*
-   makeM2rts -
-*/
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
+    }
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void makeM2rts (void);
 
 /*
-   makeBitnum -
+   getRecord - returns the record associated with node, n.
+               (Parental record).
 */
 
-static decl_node makeBitnum (void);
+static decl_node__opaque getRecord (decl_node__opaque n)
+{
+  mcDebug_assert (n->kind != decl_varient);  /* if this fails then we need to add parent field to varient.  */
+  switch (n->kind)
+    {
+      case decl_record:
+        return n;  /* if this fails then we need to add parent field to varient.  */
+        break;
 
-/*
-   makeBaseSymbols -
-*/
+      case decl_varientfield:
+        return getRecord (getParent (n));
+        break;
 
-static void makeBaseSymbols (void);
 
-/*
-   makeBuiltins -
-*/
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
+    }
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-static void makeBuiltins (void);
 
 /*
-   init -
+   isConstExp - return TRUE if the node kind is a constexp.
 */
 
-static void init (void);
+static bool isConstExp (decl_node__opaque c)
+{
+  mcDebug_assert (c != NULL);
+  return c->kind == decl_constexp;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
 
 /*
-   newNode - create and return a new node of kind k.
+   addEnumToModule - adds enumeration type, e, into the list of enums
+                     in module, m.
 */
 
-static decl_node newNode (decl_nodeT k)
+static void addEnumToModule (decl_node__opaque m, decl_node__opaque e)
 {
-  decl_node d;
-
-  Storage_ALLOCATE ((void **) &d, sizeof (decl_nodeRec));
-  if (enableMemsetOnAllocation)
+  mcDebug_assert ((decl_isEnumeration (static_cast<decl_node> (e))) || (decl_isEnumerationField (static_cast<decl_node> (e))));
+  mcDebug_assert (((decl_isModule (static_cast<decl_node> (m))) || (decl_isDef (static_cast<decl_node> (m)))) || (decl_isImp (static_cast<decl_node> (m))));
+  if (decl_isModule (static_cast<decl_node> (m)))
     {
-      d = static_cast<decl_node> (libc_memset (reinterpret_cast<void *> (d), 0, static_cast<size_t> (sizeof ((*d)))));
+      Indexing_IncludeIndiceIntoIndex (m->moduleF.enumFixup.info, reinterpret_cast<void *> (e));
     }
-  if (d == NULL)
+  else if (decl_isDef (static_cast<decl_node> (m)))
     {
-      M2RTS_HALT (-1);
-      __builtin_unreachable ();
+      /* avoid dangling else.  */
+      Indexing_IncludeIndiceIntoIndex (m->defF.enumFixup.info, reinterpret_cast<void *> (e));
     }
-  else
+  else if (decl_isImp (static_cast<decl_node> (m)))
     {
-      d->kind = k;
-      d->at.defDeclared = 0;
-      d->at.modDeclared = 0;
-      d->at.firstUsed = 0;
-      return d;
+      /* avoid dangling else.  */
+      Indexing_IncludeIndiceIntoIndex (m->impF.enumFixup.info, reinterpret_cast<void *> (e));
     }
-  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
-  __builtin_unreachable ();
 }
 
 
 /*
-   disposeNode - dispose node, n.
+   getNextFixup - return the next fixup from from f.
 */
 
-static void disposeNode (decl_node *n)
+static decl_node__opaque getNextFixup (decl_fixupInfo *f)
 {
-  Storage_DEALLOCATE ((void **) &(*n), sizeof (decl_nodeRec));
-  (*n) = NULL;
+  (*f).count += 1;
+  return static_cast<decl_node__opaque> (Indexing_GetIndice ((*f).info, (*f).count));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   newGroup -
+   doMakeEnum - create an enumeration type and add it to the current module.
 */
 
-static void newGroup (decl_group *g)
+static decl_node__opaque doMakeEnum (void)
 {
-  if (freeGroup == NULL)
-    {
-      Storage_ALLOCATE ((void **) &(*g), sizeof (decl__T15));
-    }
-  else
-    {
-      (*g) = freeGroup;
-      freeGroup = freeGroup->next;
-    }
+  decl_node__opaque e;
+
+  e = newNode (decl_enumeration);
+  e->enumerationF.noOfElements = 0;
+  e->enumerationF.localSymbols = symbolKey_initTree ();
+  e->enumerationF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+  e->enumerationF.listOfSons = Indexing_InitIndex (1);
+  e->enumerationF.low = static_cast<decl_node__opaque> (NULL);
+  e->enumerationF.high = static_cast<decl_node__opaque> (NULL);
+  addEnumToModule (currentModule, e);
+  return e;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   initGroup - returns a group which with all lists initialized.
+   doMakeEnumField - create an enumeration field name and add it to enumeration e.
+                     Return the new field.
 */
 
-static decl_group initGroup (void)
+static decl_node__opaque doMakeEnumField (decl_node__opaque e, nameKey_Name n)
 {
-  decl_group g;
+  decl_node__opaque f;
 
-  newGroup (&g);
-  g->todoQ = alists_initList ();
-  g->partialQ = alists_initList ();
-  g->doneQ = alists_initList ();
-  g->next = NULL;
-  return g;
+  mcDebug_assert (decl_isEnumeration (static_cast<decl_node> (e)));
+  f = static_cast<decl_node__opaque> (decl_lookupSym (n));
+  if (f == NULL)
+    {
+      f = newNode (decl_enumerationfield);
+      symbolKey_putSymKey (e->enumerationF.localSymbols, n, reinterpret_cast<void *> (f));
+      Indexing_IncludeIndiceIntoIndex (e->enumerationF.listOfSons, reinterpret_cast<void *> (f));
+      f->enumerationfieldF.name = n;
+      f->enumerationfieldF.type = e;
+      f->enumerationfieldF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+      f->enumerationfieldF.value = e->enumerationF.noOfElements;
+      initCname (&f->enumerationfieldF.cname);
+      e->enumerationF.noOfElements += 1;
+      mcDebug_assert ((Indexing_GetIndice (e->enumerationF.listOfSons, e->enumerationF.noOfElements)) == f);
+      addEnumToModule (currentModule, f);
+      if (e->enumerationF.low == NULL)
+        {
+          e->enumerationF.low = f;
+        }
+      e->enumerationF.high = f;
+      return addToScope (f);
+    }
+  else
+    {
+      mcMetaError_metaErrors2 ((const char *) "cannot create enumeration field {%1k} as the name is already in use", 67, (const char *) "{%2DMad} was declared elsewhere", 31, (const unsigned char *) &n, (sizeof (n)-1), (const unsigned char *) &f, (sizeof (f)-1));
+    }
+  return f;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   killGroup - deallocate the group and place the group record into the freeGroup list.
+   getExpList - returns the, n, th argument in an explist.
 */
 
-static void killGroup (decl_group *g)
+static decl_node__opaque getExpList (decl_node__opaque p, unsigned int n)
 {
-  alists_killList (&(*g)->todoQ);
-  alists_killList (&(*g)->partialQ);
-  alists_killList (&(*g)->doneQ);
-  (*g)->next = freeGroup;
-  freeGroup = (*g);
+  mcDebug_assert (p != NULL);
+  mcDebug_assert (decl_isExpList (static_cast<decl_node> (p)));
+  mcDebug_assert (n <= (Indexing_HighIndice (p->explistF.exp)));
+  return static_cast<decl_node__opaque> (Indexing_GetIndice (p->explistF.exp, n));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   dupGroup - If g is not NIL then destroy g.
-              Return a duplicate of GlobalGroup (not g).
+   expListLen - returns the length of explist, p.
 */
 
-static decl_group dupGroup (decl_group g)
+static unsigned int expListLen (decl_node__opaque p)
 {
-  if (g != NULL)
+  if (p == NULL)
     {
-      /* Kill old group.  */
-      killGroup (&g);
+      return 0;
+    }
+  else
+    {
+      mcDebug_assert (decl_isExpList (static_cast<decl_node> (p)));
+      return Indexing_HighIndice (p->explistF.exp);
     }
-  newGroup (&g);
-  /* Copy all lists.  */
-  g->todoQ = alists_duplicateList (globalGroup->todoQ);
-  g->partialQ = alists_duplicateList (globalGroup->partialQ);
-  g->doneQ = alists_duplicateList (globalGroup->doneQ);
-  g->next = NULL;
-  return g;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   equalGroup - return TRUE if group left = right.
+   getConstExpComplete - gets the field from the def or imp or module, n.
 */
 
-static bool equalGroup (decl_group left, decl_group right)
+static bool getConstExpComplete (decl_node__opaque n)
 {
-  return (left == right) || (((alists_equalList (left->todoQ, right->todoQ)) && (alists_equalList (left->partialQ, right->partialQ))) && (alists_equalList (left->doneQ, right->doneQ)));
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
+  switch (n->kind)
+    {
+      case decl_def:
+        return n->defF.constsComplete;
+        break;
 
+      case decl_imp:
+        return n->impF.constsComplete;
+        break;
 
-/*
-   isLocal - returns TRUE if symbol, n, is locally declared in a procedure.
-*/
+      case decl_module:
+        return n->moduleF.constsComplete;
+        break;
 
-static bool isLocal (decl_node n)
-{
-  decl_node s;
 
-  s = decl_getScope (n);
-  if (s != NULL)
-    {
-      return decl_isProcedure (s);
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
     }
-  return false;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   importEnumFields - if, n, is an enumeration type import the all fields into module, m.
+   addConstToModule - adds const exp, e, into the list of constant
+                      expressions in module, m.
 */
 
-static void importEnumFields (decl_node m, decl_node n)
+static void addConstToModule (decl_node__opaque m, decl_node__opaque e)
 {
-  decl_node r;
-  decl_node e;
-  unsigned int i;
-  unsigned int h;
-
-  mcDebug_assert (((decl_isDef (m)) || (decl_isModule (m))) || (decl_isImp (m)));
-  n = decl_skipType (n);
-  if ((n != NULL) && (decl_isEnumeration (n)))
+  mcDebug_assert (((decl_isModule (static_cast<decl_node> (m))) || (decl_isDef (static_cast<decl_node> (m)))) || (decl_isImp (static_cast<decl_node> (m))));
+  if (decl_isModule (static_cast<decl_node> (m)))
     {
-      i = Indexing_LowIndice (n->enumerationF.listOfSons);
-      h = Indexing_HighIndice (n->enumerationF.listOfSons);
-      while (i <= h)
-        {
-          e = static_cast<decl_node> (Indexing_GetIndice (n->enumerationF.listOfSons, i));
-          r = decl_import (m, e);
-          if (e != r)
-            {
-              mcMetaError_metaError2 ((const char *) "enumeration field {%1ad} cannot be imported implicitly into {%2d} due to a name clash", 85, (const unsigned char *) &e, (sizeof (e)-1), (const unsigned char *) &m, (sizeof (m)-1));
-            }
-          i += 1;
-        }
+      Indexing_IncludeIndiceIntoIndex (m->moduleF.constFixup.info, reinterpret_cast<void *> (e));
+    }
+  else if (decl_isDef (static_cast<decl_node> (m)))
+    {
+      /* avoid dangling else.  */
+      Indexing_IncludeIndiceIntoIndex (m->defF.constFixup.info, reinterpret_cast<void *> (e));
+    }
+  else if (decl_isImp (static_cast<decl_node> (m)))
+    {
+      /* avoid dangling else.  */
+      Indexing_IncludeIndiceIntoIndex (m->impF.constFixup.info, reinterpret_cast<void *> (e));
     }
 }
 
 
 /*
-   isComplex - returns TRUE if, n, is the complex type.
+   doMakeConstExp - create a constexp node and add it to the current module.
 */
 
-static bool isComplex (decl_node n)
+static decl_node__opaque doMakeConstExp (void)
 {
-  return n == complexN;
+  decl_node__opaque c;
+
+  c = makeUnary (decl_constexp, static_cast<decl_node__opaque> (NULL), static_cast<decl_node__opaque> (NULL));
+  addConstToModule (currentModule, c);
+  return c;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   isLongComplex - returns TRUE if, n, is the longcomplex type.
+   isAnyType - return TRUE if node n is any type kind.
 */
 
-static bool isLongComplex (decl_node n)
+static bool isAnyType (decl_node__opaque n)
 {
-  return n == longcomplexN;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
+  mcDebug_assert (n != NULL);
+  switch (n->kind)
+    {
+      case decl_address:
+      case decl_loc:
+      case decl_byte:
+      case decl_word:
+      case decl_char:
+      case decl_cardinal:
+      case decl_longcard:
+      case decl_shortcard:
+      case decl_integer:
+      case decl_longint:
+      case decl_shortint:
+      case decl_complex:
+      case decl_longcomplex:
+      case decl_shortcomplex:
+      case decl_bitset:
+      case decl_boolean:
+      case decl_proc:
+      case decl_type:
+        return true;
+        break;
 
-/*
-   isShortComplex - returns TRUE if, n, is the shortcomplex type.
-*/
 
-static bool isShortComplex (decl_node n)
-{
-  return n == shortcomplexN;
+      default:
+        return false;
+        break;
+    }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   isAProcType - returns TRUE if, n, is a proctype or proc node.
+   makeVal - creates a VAL (type, expression) node.
 */
 
-static bool isAProcType (decl_node n)
+static decl_node__opaque makeVal (decl_node__opaque params)
 {
-  mcDebug_assert (n != NULL);
-  return (decl_isProcType (n)) || (n == procN);
-  /* static analysis guarentees a RETURN statement will be used before here.  */
+  mcDebug_assert (decl_isExpList (static_cast<decl_node> (params)));
+  if ((expListLen (params)) == 2)
+    {
+      return makeBinary (decl_val, getExpList (params, 1), getExpList (params, 2), getExpList (params, 1));
+    }
+  else
+    {
+      M2RTS_HALT (-1);
+      __builtin_unreachable ();
+    }
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
   __builtin_unreachable ();
 }
 
 
 /*
-   initFixupInfo - initialize the fixupInfo record.
+   makeCast - creates a cast node TYPENAME (expr).
 */
 
-static decl_fixupInfo initFixupInfo (void)
+static decl_node__opaque makeCast (decl_node__opaque c, decl_node__opaque p)
 {
-  decl_fixupInfo f;
-
-  f.count = 0;
-  f.info = Indexing_InitIndex (1);
-  return f;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
+  mcDebug_assert (decl_isExpList (static_cast<decl_node> (p)));
+  if ((expListLen (p)) == 1)
+    {
+      return makeBinary (decl_cast, c, getExpList (p, 1), c);
+    }
+  else
+    {
+      M2RTS_HALT (-1);
+      __builtin_unreachable ();
+    }
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
   __builtin_unreachable ();
 }
 
-
-/*
-   makeDef - returns a definition module node named, n.
-*/
-
-static decl_node makeDef (nameKey_Name n)
+static decl_node__opaque makeIntrinsicProc (decl_nodeT k, unsigned int noArgs, decl_node__opaque p)
 {
-  decl_node d;
+  decl_node__opaque f;
 
-  d = newNode (decl_def);
-  d->defF.name = n;
-  d->defF.source = nameKey_NulName;
-  d->defF.hasHidden = false;
-  d->defF.forC = false;
-  d->defF.exported = Indexing_InitIndex (1);
-  d->defF.importedModules = Indexing_InitIndex (1);
-  d->defF.constFixup = initFixupInfo ();
-  d->defF.enumFixup = initFixupInfo ();
-  initDecls (&d->defF.decls);
-  d->defF.enumsComplete = false;
-  d->defF.constsComplete = false;
-  d->defF.visited = false;
-  initPair (&d->defF.com);
-  return d;
+  /* 
+   makeIntrisicProc - create an intrinsic node.
+  */
+  f = newNode (k);
+  f->intrinsicF.args = p;
+  f->intrinsicF.noArgs = noArgs;
+  f->intrinsicF.type = static_cast<decl_node__opaque> (NULL);
+  f->intrinsicF.postUnreachable = k == decl_halt;
+  initPair (&f->intrinsicF.intrinsicComment);
+  return f;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   makeImp - returns an implementation module node named, n.
+   makeIntrinsicUnaryType - create an intrisic unary type.
 */
 
-static decl_node makeImp (nameKey_Name n)
+static decl_node__opaque makeIntrinsicUnaryType (decl_nodeT k, decl_node__opaque paramList, decl_node__opaque returnType)
 {
-  decl_node d;
-
-  d = newNode (decl_imp);
-  d->impF.name = n;
-  d->impF.source = nameKey_NulName;
-  d->impF.importedModules = Indexing_InitIndex (1);
-  d->impF.constFixup = initFixupInfo ();
-  d->impF.enumFixup = initFixupInfo ();
-  initDecls (&d->impF.decls);
-  d->impF.beginStatements = NULL;
-  d->impF.finallyStatements = NULL;
-  d->impF.definitionModule = NULL;
-  d->impF.enumsComplete = false;
-  d->impF.constsComplete = false;
-  d->impF.visited = false;
-  initPair (&d->impF.com);
-  return d;
+  return makeUnary (k, getExpList (paramList, 1), returnType);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   makeModule - returns a module node named, n.
+   makeIntrinsicBinaryType - create an intrisic binary type.
 */
 
-static decl_node makeModule (nameKey_Name n)
+static decl_node__opaque makeIntrinsicBinaryType (decl_nodeT k, decl_node__opaque paramList, decl_node__opaque returnType)
 {
-  decl_node d;
-
-  d = newNode (decl_module);
-  d->moduleF.name = n;
-  d->moduleF.source = nameKey_NulName;
-  d->moduleF.importedModules = Indexing_InitIndex (1);
-  d->moduleF.constFixup = initFixupInfo ();
-  d->moduleF.enumFixup = initFixupInfo ();
-  initDecls (&d->moduleF.decls);
-  d->moduleF.beginStatements = NULL;
-  d->moduleF.finallyStatements = NULL;
-  d->moduleF.enumsComplete = false;
-  d->moduleF.constsComplete = false;
-  d->moduleF.visited = false;
-  initPair (&d->moduleF.com);
-  return d;
+  return makeBinary (k, getExpList (paramList, 1), getExpList (paramList, 2), returnType);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   isDefForC - returns TRUE if the definition module was defined FOR "C".
+   checkIntrinsic - checks to see if the function call to, c, with
+                    parameter list, n, is really an intrinic.  If it
+                    is an intrinic then an intrinic node is created
+                    and returned.  Otherwise NIL is returned.
 */
 
-static bool isDefForC (decl_node n)
+static decl_node__opaque checkIntrinsic (decl_node__opaque c, decl_node__opaque n)
 {
-  return (decl_isDef (n)) && n->defF.forC;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
-
-/*
-   initDecls - initialize the decls, scopeT.
-*/
-
-static void initDecls (decl_scopeT *decls)
-{
-  (*decls).symbols = symbolKey_initTree ();
-  (*decls).constants = Indexing_InitIndex (1);
-  (*decls).types = Indexing_InitIndex (1);
-  (*decls).procedures = Indexing_InitIndex (1);
-  (*decls).variables = Indexing_InitIndex (1);
-}
-
-
-/*
-   addTo - adds node, d, to scope decls and returns, d.
-           It stores, d, in the symbols tree associated with decls.
-*/
-
-static decl_node addTo (decl_scopeT *decls, decl_node d)
-{
-  nameKey_Name n;
-
-  n = decl_getSymName (d);
-  if (n != nameKey_NulName)
+  if (isAnyType (c))
     {
-      /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-      if ((symbolKey_getSymKey ((*decls).symbols, n)) == NULL)
-        {
-          symbolKey_putSymKey ((*decls).symbols, n, reinterpret_cast<void *> (d));
-        }
-      else
-        {
-          mcMetaError_metaError1 ((const char *) "{%1DMad} was declared", 21, (const unsigned char *) &d, (sizeof (d)-1));
-          mcMetaError_metaError1 ((const char *) "{%1k} and is being declared again", 33, (const unsigned char *) &n, (sizeof (n)-1));
-        }
+      return makeCast (c, n);
     }
-  if (decl_isConst (d))
+  else if (c == maxN)
     {
-      Indexing_IncludeIndiceIntoIndex ((*decls).constants, reinterpret_cast<void *> (d));
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_max, n, static_cast<decl_node__opaque> (NULL));
     }
-  else if (decl_isVar (d))
+  else if (c == minN)
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex ((*decls).variables, reinterpret_cast<void *> (d));
+      return makeIntrinsicUnaryType (decl_min, n, static_cast<decl_node__opaque> (NULL));
     }
-  else if (decl_isType (d))
+  else if (c == haltN)
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex ((*decls).types, reinterpret_cast<void *> (d));
+      return makeIntrinsicProc (decl_halt, expListLen (n), n);
     }
-  else if (decl_isProcedure (d))
+  else if (c == valN)
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex ((*decls).procedures, reinterpret_cast<void *> (d));
-      if (debugDecl)
-        {
-          libc_printf ((const char *) "%d procedures on the dynamic array\\n", 36, Indexing_HighIndice ((*decls).procedures));
-        }
+      return makeVal (n);
     }
-  return d;
+  else if (c == adrN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_adr, n, addressN);
+    }
+  else if (c == sizeN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_size, n, cardinalN);
+    }
+  else if (c == tsizeN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_tsize, n, cardinalN);
+    }
+  else if (c == floatN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_float, n, realN);
+    }
+  else if (c == truncN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_trunc, n, integerN);
+    }
+  else if (c == ordN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_ord, n, cardinalN);
+    }
+  else if (c == chrN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_chr, n, charN);
+    }
+  else if (c == capN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_cap, n, charN);
+    }
+  else if (c == absN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_abs, n, static_cast<decl_node__opaque> (NULL));
+    }
+  else if (c == imN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_im, n, static_cast<decl_node__opaque> (NULL));
+    }
+  else if (c == reN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_re, n, static_cast<decl_node__opaque> (NULL));
+    }
+  else if (c == cmplxN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicBinaryType (decl_cmplx, n, static_cast<decl_node__opaque> (NULL));
+    }
+  else if (c == highN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_high, n, cardinalN);
+    }
+  else if (c == incN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicProc (decl_inc, expListLen (n), n);
+    }
+  else if (c == decN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicProc (decl_dec, expListLen (n), n);
+    }
+  else if (c == inclN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicProc (decl_incl, expListLen (n), n);
+    }
+  else if (c == exclN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicProc (decl_excl, expListLen (n), n);
+    }
+  else if (c == newN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicProc (decl_new, 1, n);
+    }
+  else if (c == disposeN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicProc (decl_dispose, 1, n);
+    }
+  else if (c == lengthN)
+    {
+      /* avoid dangling else.  */
+      return makeIntrinsicUnaryType (decl_length, n, cardinalN);
+    }
+  else if (c == throwN)
+    {
+      /* avoid dangling else.  */
+      keyc_useThrow ();
+      return makeIntrinsicProc (decl_throw, 1, n);
+    }
+  return static_cast<decl_node__opaque> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   export - export node, n, from definition module, d.
+   checkCHeaders - check to see if the function is a C system function and
+                   requires a header file included.
 */
 
-static void export_ (decl_node d, decl_node n)
+static void checkCHeaders (decl_node__opaque c)
 {
-  mcDebug_assert (decl_isDef (d));
-  Indexing_IncludeIndiceIntoIndex (d->defF.exported, reinterpret_cast<void *> (n));
+  nameKey_Name name;
+  decl_node__opaque s;
+
+  if (decl_isProcedure (static_cast<decl_node> (c)))
+    {
+      s = static_cast<decl_node__opaque> (decl_getScope (static_cast<decl_node> (c)));
+      if ((decl_getSymName (static_cast<decl_node> (s))) == (nameKey_makeKey ((const char *) "libc", 4)))
+        {
+          name = decl_getSymName (static_cast<decl_node> (c));
+          if ((((name == (nameKey_makeKey ((const char *) "read", 4))) || (name == (nameKey_makeKey ((const char *) "write", 5)))) || (name == (nameKey_makeKey ((const char *) "open", 4)))) || (name == (nameKey_makeKey ((const char *) "close", 5))))
+            {
+              keyc_useUnistd ();
+            }
+        }
+    }
 }
 
 
 /*
-   addToScope - adds node, n, to the current scope and returns, n.
+   isFuncCall - returns TRUE if, n, is a function/procedure call.
 */
 
-static decl_node addToScope (decl_node n)
+static bool isFuncCall (decl_node__opaque n)
 {
-  decl_node s;
-  unsigned int i;
-
-  i = Indexing_HighIndice (scopeStack);
-  s = static_cast<decl_node> (Indexing_GetIndice (scopeStack, i));
-  if (decl_isProcedure (s))
-    {
-      if (debugDecl)
-        {
-          outText (doP, (const char *) "adding ", 7);
-          doNameC (doP, n);
-          outText (doP, (const char *) " to procedure\\n", 15);
-        }
-      return addTo (&s->procedureF.decls, n);
-    }
-  else if (decl_isModule (s))
-    {
-      /* avoid dangling else.  */
-      if (debugDecl)
-        {
-          outText (doP, (const char *) "adding ", 7);
-          doNameC (doP, n);
-          outText (doP, (const char *) " to module\\n", 12);
-        }
-      return addTo (&s->moduleF.decls, n);
-    }
-  else if (decl_isDef (s))
-    {
-      /* avoid dangling else.  */
-      if (debugDecl)
-        {
-          outText (doP, (const char *) "adding ", 7);
-          doNameC (doP, n);
-          outText (doP, (const char *) " to definition module\\n", 23);
-        }
-      export_ (s, n);
-      return addTo (&s->defF.decls, n);
-    }
-  else if (decl_isImp (s))
-    {
-      /* avoid dangling else.  */
-      if (debugDecl)
-        {
-          outText (doP, (const char *) "adding ", 7);
-          doNameC (doP, n);
-          outText (doP, (const char *) " to implementation module\\n", 27);
-        }
-      return addTo (&s->impF.decls, n);
-    }
-  M2RTS_HALT (-1);
-  __builtin_unreachable ();
-  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
+  mcDebug_assert (n != NULL);
+  return n->kind == decl_funccall;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   addModuleToScope - adds module, i, to module, m, scope.
+   putTypeInternal - marks type, des, as being an internally generated type.
 */
 
-static void addModuleToScope (decl_node m, decl_node i)
+static void putTypeInternal (decl_node__opaque des)
 {
-  mcDebug_assert ((decl_getDeclScope ()) == m);
-  if ((decl_lookupSym (decl_getSymName (i))) == NULL)
-    {
-      i = addToScope (i);
-    }
+  mcDebug_assert (des != NULL);
+  mcDebug_assert (decl_isType (static_cast<decl_node> (des)));
+  des->typeF.isInternal = true;
 }
 
 
 /*
-   completedEnum - assign boolean enumsComplete to TRUE if a definition,
-                   implementation or module symbol.
+   isTypeInternal - returns TRUE if type, n, is internal.
 */
 
-static void completedEnum (decl_node n)
+static bool isTypeInternal (decl_node__opaque n)
 {
-  mcDebug_assert (((decl_isDef (n)) || (decl_isImp (n))) || (decl_isModule (n)));
-  if (decl_isDef (n))
-    {
-      n->defF.enumsComplete = true;
-    }
-  else if (decl_isImp (n))
-    {
-      /* avoid dangling else.  */
-      n->impF.enumsComplete = true;
-    }
-  else if (decl_isModule (n))
-    {
-      /* avoid dangling else.  */
-      n->moduleF.enumsComplete = true;
-    }
+  mcDebug_assert (n != NULL);
+  mcDebug_assert (decl_isType (static_cast<decl_node> (n)));
+  return n->typeF.isInternal;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   setUnary - sets a unary node to contain, arg, a, and type, t.
+   lookupBase - return node named n from the base symbol scope.
 */
 
-static void setUnary (decl_node u, decl_nodeT k, decl_node a, decl_node t)
+static decl_node__opaque lookupBase (nameKey_Name n)
 {
-  switch (k)
-    {
-      case decl_constexp:
-      case decl_deref:
-      case decl_chr:
-      case decl_cap:
-      case decl_abs:
-      case decl_float:
-      case decl_trunc:
-      case decl_ord:
-      case decl_high:
-      case decl_throw:
-      case decl_re:
-      case decl_im:
-      case decl_not:
-      case decl_neg:
-      case decl_adr:
-      case decl_size:
-      case decl_tsize:
-      case decl_min:
-      case decl_max:
-        u->kind = k;
-        u->unaryF.arg = a;
-        u->unaryF.resultType = t;
-        break;
+  decl_node__opaque m;
 
-
-      default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
+  m = static_cast<decl_node__opaque> (symbolKey_getSymKey (baseSymbols, n));
+  if (m == procN)
+    {
+      keyc_useProc ();
     }
-}
-
-
-/*
-   putVarBool - assigns the four booleans associated with a variable.
-*/
-
-static void putVarBool (decl_node v, bool init, bool param, bool isvar, bool isused)
-{
-  mcDebug_assert (decl_isVar (v));
-  v->varF.isInitialised = init;
-  v->varF.isParameter = param;
-  v->varF.isVarParameter = isvar;
-  v->varF.isUsed = isused;
-}
-
-
-/*
-   checkPtr - in C++ we need to create a typedef for a pointer
-              in case we need to use reinterpret_cast.
-*/
-
-static decl_node checkPtr (decl_node n)
-{
-  DynamicStrings_String s;
-  decl_node p;
-
-  if (lang == decl_ansiCP)
+  else if (((m == complexN) || (m == longcomplexN)) || (m == shortcomplexN))
     {
-      if (decl_isPointer (n))
-        {
-          s = tempName ();
-          p = decl_makeType (nameKey_makekey (DynamicStrings_string (s)));
-          decl_putType (p, n);
-          s = DynamicStrings_KillString (s);
-          return p;
-        }
+      /* avoid dangling else.  */
+      keyc_useComplex ();
     }
-  return n;
+  return m;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   isVarDecl - returns TRUE if, n, is a vardecl node.
+   dumpScopes - display the names of all the scopes stacked.
 */
 
-static bool isVarDecl (decl_node n)
+static void dumpScopes (void)
 {
-  return n->kind == decl_vardecl;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  unsigned int h;
+  decl_node__opaque s;
+
+  h = Indexing_HighIndice (scopeStack);
+  libc_printf ((const char *) "total scopes stacked %d\\n", 25, h);
+  while (h >= 1)
+    {
+      s = static_cast<decl_node__opaque> (Indexing_GetIndice (scopeStack, h));
+      out2 ((const char *) " scope [%d] is %s\\n", 19, h, s);
+      h -= 1;
+    }
 }
 
 
 /*
-   makeVariablesFromParameters - creates variables which are really parameters.
+   out0 - write string a to StdOut.
 */
 
-static void makeVariablesFromParameters (decl_node proc, decl_node id, decl_node type, bool isvar, bool isused)
+static void out0 (const char *a_, unsigned int _a_high)
 {
-  decl_node v;
-  unsigned int i;
-  unsigned int n;
-  nameKey_Name m;
-  DynamicStrings_String s;
+  DynamicStrings_String m;
+  char a[_a_high+1];
 
-  mcDebug_assert (decl_isProcedure (proc));
-  mcDebug_assert (isIdentList (id));
-  i = 1;
-  n = wlists_noOfItemsInList (id->identlistF.names);
-  while (i <= n)
-    {
-      m = static_cast<nameKey_Name> (wlists_getItemFromList (id->identlistF.names, i));
-      v = decl_makeVar (m);
-      decl_putVar (v, type, NULL);
-      putVarBool (v, true, true, isvar, isused);
-      if (debugScopes)
-        {
-          libc_printf ((const char *) "adding parameter variable into top scope\\n", 42);
-          dumpScopes ();
-          libc_printf ((const char *) " variable name is: ", 19);
-          s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (m));
-          if ((DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, s))) == NULL)
-            {}  /* empty.  */
-          libc_printf ((const char *) "\\n", 2);
-        }
-      i += 1;
-    }
+  /* make a local copy of each unbounded array.  */
+  memcpy (a, a_, _a_high+1);
+
+  m = FormatStrings_Sprintf0 (DynamicStrings_InitString ((const char *) a, _a_high));
+  m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, m));
 }
 
 
 /*
-   addProcedureToScope - add a procedure name n and node d to the
-                         current scope.
+   out1 - write string a to StdOut using format specifier a.
 */
 
-static decl_node addProcedureToScope (decl_node d, nameKey_Name n)
+static void out1 (const char *a_, unsigned int _a_high, decl_node__opaque s)
 {
-  decl_node m;
-  unsigned int i;
+  DynamicStrings_String m;
+  unsigned int d;
+  char a[_a_high+1];
 
-  i = Indexing_HighIndice (scopeStack);
-  m = static_cast<decl_node> (Indexing_GetIndice (scopeStack, i));
-  if (((decl_isDef (m)) && ((decl_getSymName (m)) == (nameKey_makeKey ((const char *) "M2RTS", 5)))) && ((decl_getSymName (d)) == (nameKey_makeKey ((const char *) "HALT", 4))))
+  /* make a local copy of each unbounded array.  */
+  memcpy (a, a_, _a_high+1);
+
+  m = getFQstring (s);
+  if (DynamicStrings_EqualArray (m, (const char *) "", 0))
     {
-      haltN = d;
-      symbolKey_putSymKey (baseSymbols, n, reinterpret_cast<void *> (haltN));
+      d = (unsigned int ) ((long unsigned int ) (s));
+      m = DynamicStrings_KillString (m);
+      m = FormatStrings_Sprintf1 (DynamicStrings_InitString ((const char *) "[%d]", 4), (const unsigned char *) &d, (sizeof (d)-1));
     }
-  return addToScope (d);
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  m = FormatStrings_Sprintf1 (DynamicStrings_InitString ((const char *) a, _a_high), (const unsigned char *) &m, (sizeof (m)-1));
+  m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, m));
 }
 
 
 /*
-   putProcTypeReturn - sets the return type of, proc, to, type.
+   out2 - write string a to StdOut using format specifier a.
 */
 
-static void putProcTypeReturn (decl_node proc, decl_node type)
+static void out2 (const char *a_, unsigned int _a_high, unsigned int c, decl_node__opaque s)
 {
-  mcDebug_assert (decl_isProcType (proc));
-  proc->proctypeF.returnType = type;
-}
-
+  DynamicStrings_String m;
+  DynamicStrings_String m1;
+  char a[_a_high+1];
 
-/*
-   putProcTypeOptReturn - sets, proc, to have an optional return type.
-*/
+  /* make a local copy of each unbounded array.  */
+  memcpy (a, a_, _a_high+1);
 
-static void putProcTypeOptReturn (decl_node proc)
-{
-  mcDebug_assert (decl_isProcType (proc));
-  proc->proctypeF.returnopt = true;
+  m1 = getString (s);
+  m = FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) a, _a_high), (const unsigned char *) &c, (sizeof (c)-1), (const unsigned char *) &m1, (sizeof (m1)-1));
+  m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, m));
+  m1 = DynamicStrings_KillString (m1);
 }
 
 
 /*
-   makeOptParameter - creates and returns an optarg.
+   out3 - write string a to StdOut using format specifier a.
 */
 
-static decl_node makeOptParameter (decl_node l, decl_node type, decl_node init)
+static void out3 (const char *a_, unsigned int _a_high, unsigned int l, nameKey_Name n, decl_node__opaque s)
 {
-  decl_node n;
+  DynamicStrings_String m;
+  DynamicStrings_String m1;
+  DynamicStrings_String m2;
+  char a[_a_high+1];
 
-  n = newNode (decl_optarg);
-  n->optargF.namelist = l;
-  n->optargF.type = type;
-  n->optargF.init = init;
-  n->optargF.scope = NULL;
-  return n;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  /* make a local copy of each unbounded array.  */
+  memcpy (a, a_, _a_high+1);
+
+  m1 = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n));
+  m2 = getString (s);
+  m = FormatStrings_Sprintf3 (DynamicStrings_InitString ((const char *) a, _a_high), (const unsigned char *) &l, (sizeof (l)-1), (const unsigned char *) &m1, (sizeof (m1)-1), (const unsigned char *) &m2, (sizeof (m2)-1));
+  m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, m));
+  m1 = DynamicStrings_KillString (m1);
+  m2 = DynamicStrings_KillString (m2);
 }
 
 
 /*
-   setwatch - assign the globalNode to n.
+   isUnary - returns TRUE if, n, is an unary node.
 */
 
-static bool setwatch (decl_node n)
+static bool isUnary (decl_node__opaque n)
 {
-  globalNode = n;
-  return true;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
+  mcDebug_assert (n != NULL);
+  switch (n->kind)
+    {
+      case decl_length:
+      case decl_re:
+      case decl_im:
+      case decl_deref:
+      case decl_high:
+      case decl_chr:
+      case decl_cap:
+      case decl_abs:
+      case decl_ord:
+      case decl_float:
+      case decl_trunc:
+      case decl_constexp:
+      case decl_not:
+      case decl_neg:
+      case decl_adr:
+      case decl_size:
+      case decl_tsize:
+      case decl_min:
+      case decl_max:
+        return true;
+        break;
 
-/*
-   runwatch - set the globalNode to an identlist.
-*/
 
-static bool runwatch (void)
-{
-  return globalNode->kind == decl_identlist;
+      default:
+        return false;
+        break;
+    }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   isIdentList - returns TRUE if, n, is an identlist.
+   isBinary - returns TRUE if, n, is an binary node.
 */
 
-static bool isIdentList (decl_node n)
+static bool isBinary (decl_node__opaque n)
 {
-  return n->kind == decl_identlist;
+  mcDebug_assert (n != NULL);
+  switch (n->kind)
+    {
+      case decl_cmplx:
+      case decl_and:
+      case decl_or:
+      case decl_equal:
+      case decl_notequal:
+      case decl_less:
+      case decl_greater:
+      case decl_greequal:
+      case decl_lessequal:
+      case decl_val:
+      case decl_cast:
+      case decl_plus:
+      case decl_sub:
+      case decl_div:
+      case decl_mod:
+      case decl_mult:
+      case decl_divide:
+      case decl_in:
+        return true;
+        break;
+
+
+      default:
+        return false;
+        break;
+    }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   identListLen - returns the length of identlist.
+   makeUnary - create a unary expression node with, e, as the argument
+               and res as the return type.
 */
 
-static unsigned int identListLen (decl_node n)
+static decl_node__opaque makeUnary (decl_nodeT k, decl_node__opaque e, decl_node__opaque res)
 {
-  if (n == NULL)
+  decl_node__opaque n;
+
+  if (k == decl_plus)
     {
-      return 0;
+      return e;
     }
   else
     {
-      mcDebug_assert (isIdentList (n));
-      return wlists_noOfItemsInList (n->identlistF.names);
+      n = newNode (k);
+      switch (n->kind)
+        {
+          case decl_min:
+          case decl_max:
+          case decl_throw:
+          case decl_re:
+          case decl_im:
+          case decl_deref:
+          case decl_high:
+          case decl_chr:
+          case decl_cap:
+          case decl_abs:
+          case decl_ord:
+          case decl_float:
+          case decl_trunc:
+          case decl_length:
+          case decl_constexp:
+          case decl_not:
+          case decl_neg:
+          case decl_adr:
+          case decl_size:
+          case decl_tsize:
+            n->unaryF.arg = e;
+            n->unaryF.resultType = res;
+            break;
+
+
+          default:
+            CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+            __builtin_unreachable ();
+        }
     }
+  return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   checkParameters - placeholder for future parameter checking.
+   isLeafString - returns TRUE if n is a leaf node which is a string constant.
 */
 
-static void checkParameters (decl_node p, decl_node i, decl_node type, bool isvar, bool isused)
+static bool isLeafString (decl_node__opaque n)
 {
-  /* do check.  */
-  disposeNode (&i);
+  return ((isString (n)) || ((decl_isLiteral (static_cast<decl_node> (n))) && ((decl_getType (static_cast<decl_node> (n))) == charN))) || ((decl_isConst (static_cast<decl_node> (n))) && ((getExprType (n)) == charN));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   checkMakeVariables - create shadow local variables for parameters providing that
-                        procedure n has not already been built and we are compiling
-                        a module or an implementation module.
+   getLiteralStringContents - return the contents of a literal node as a string.
 */
 
-static void checkMakeVariables (decl_node n, decl_node i, decl_node type, bool isvar, bool isused)
+static DynamicStrings_String getLiteralStringContents (decl_node__opaque n)
 {
-  if (((decl_isImp (currentModule)) || (decl_isModule (currentModule))) && ! n->procedureF.built)
+  DynamicStrings_String number;
+  DynamicStrings_String content;
+  DynamicStrings_String s;
+
+  mcDebug_assert (n->kind == decl_literal);
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n->literalF.name));
+  content = static_cast<DynamicStrings_String> (NULL);
+  if (n->literalF.type == charN)
     {
-      makeVariablesFromParameters (n, i, type, isvar, isused);
+      if ((DynamicStrings_char (s, -1)) == 'C')
+        {
+          if ((DynamicStrings_Length (s)) > 1)
+            {
+              number = DynamicStrings_Slice (s, 0, -1);
+              content = DynamicStrings_InitStringChar ((char ) (StringConvert_ostoc (number)));
+              number = DynamicStrings_KillString (number);
+            }
+          else
+            {
+              content = DynamicStrings_InitStringChar ('C');
+            }
+        }
+      else
+        {
+          content = DynamicStrings_Dup (s);
+        }
+    }
+  else
+    {
+      mcMetaError_metaError1 ((const char *) "cannot obtain string contents from {%1k}", 40, (const unsigned char *) &n->literalF.name, (sizeof (n->literalF.name)-1));
     }
+  s = DynamicStrings_KillString (s);
+  return content;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   makeVarientField - create a varient field within varient, v,
-                      The new varient field is returned.
+   getStringContents - return the string contents of a constant, literal,
+                       string or a constexp node.
+*/
+
+static DynamicStrings_String getStringContents (decl_node__opaque n)
+{
+  if (decl_isConst (static_cast<decl_node> (n)))
+    {
+      return getStringContents (n->constF.value);
+    }
+  else if (decl_isLiteral (static_cast<decl_node> (n)))
+    {
+      /* avoid dangling else.  */
+      return getLiteralStringContents (n);
+    }
+  else if (isString (n))
+    {
+      /* avoid dangling else.  */
+      return getString (n);
+    }
+  else if (isConstExp (n))
+    {
+      /* avoid dangling else.  */
+      return getStringContents (n->unaryF.arg);
+    }
+  M2RTS_HALT (-1);
+  __builtin_unreachable ();
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
+  __builtin_unreachable ();
+}
+
+
+/*
+   addNames -
 */
 
-static decl_node makeVarientField (decl_node v, decl_node p)
+static nameKey_Name addNames (decl_node__opaque a, decl_node__opaque b)
 {
-  decl_node n;
+  DynamicStrings_String sa;
+  DynamicStrings_String sb;
+  nameKey_Name n;
 
-  n = newNode (decl_varientfield);
-  n->varientfieldF.name = nameKey_NulName;
-  n->varientfieldF.parent = p;
-  n->varientfieldF.varient = v;
-  n->varientfieldF.simple = false;
-  n->varientfieldF.listOfSons = Indexing_InitIndex (1);
-  n->varientfieldF.scope = decl_getDeclScope ();
+  sa = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (a))));
+  sb = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (b))));
+  sa = DynamicStrings_ConCat (sa, sb);
+  n = nameKey_makekey (DynamicStrings_string (sa));
+  sa = DynamicStrings_KillString (sa);
+  sb = DynamicStrings_KillString (sb);
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -7557,102 +7490,52 @@ static decl_node makeVarientField (decl_node v, decl_node p)
 
 
 /*
-   putFieldVarient - places the field varient, f, as a brother to, the
-                     varient symbol, v, and also tells, f, that its varient
-                     parent is, v.
+   resolveString -
 */
 
-static void putFieldVarient (decl_node f, decl_node v)
+static decl_node__opaque resolveString (decl_node__opaque n)
 {
-  mcDebug_assert (decl_isVarient (v));
-  mcDebug_assert (decl_isVarientField (f));
-  switch (v->kind)
+  while ((decl_isConst (static_cast<decl_node> (n))) || (isConstExp (n)))
     {
-      case decl_varient:
-        Indexing_IncludeIndiceIntoIndex (v->varientF.listOfSons, reinterpret_cast<void *> (f));
-        break;
-
-
-      default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
+      if (decl_isConst (static_cast<decl_node> (n)))
+        {
+          n = n->constF.value;
+        }
+      else
+        {
+          n = n->unaryF.arg;
+        }
     }
-  switch (f->kind)
+  if (n->kind == decl_plus)
     {
-      case decl_varientfield:
-        f->varientfieldF.varient = v;
-        break;
-
-
-      default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
+      n = static_cast<decl_node__opaque> (decl_makeString (addNames (resolveString (n->binaryF.left), resolveString (n->binaryF.right))));
     }
+  return n;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   putFieldRecord - create a new recordfield and place it into record r.
-                    The new field has a tagname and type and can have a
-                    variant field v.
+   foldBinary -
 */
 
-static decl_node putFieldRecord (decl_node r, nameKey_Name tag, decl_node type, decl_node v)
+static decl_node__opaque foldBinary (decl_nodeT k, decl_node__opaque l, decl_node__opaque r, decl_node__opaque res)
 {
-  decl_node f;
-  decl_node n;
-  decl_node p;
+  decl_node__opaque n;
+  DynamicStrings_String ls;
+  DynamicStrings_String rs;
 
-  n = newNode (decl_recordfield);
-  switch (r->kind)
+  n = static_cast<decl_node__opaque> (NULL);
+  if (((k == decl_plus) && (isLeafString (l))) && (isLeafString (r)))
     {
-      case decl_record:
-        Indexing_IncludeIndiceIntoIndex (r->recordF.listOfSons, reinterpret_cast<void *> (n));
-        /* ensure that field, n, is in the parents Local Symbols.  */
-        if (tag != nameKey_NulName)
-          {
-            /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-            if ((symbolKey_getSymKey (r->recordF.localSymbols, tag)) == symbolKey_NulKey)
-              {
-                symbolKey_putSymKey (r->recordF.localSymbols, tag, reinterpret_cast<void *> (n));
-              }
-            else
-              {
-                f = static_cast<decl_node> (symbolKey_getSymKey (r->recordF.localSymbols, tag));
-                mcMetaError_metaErrors1 ((const char *) "field record {%1Dad} has already been declared", 46, (const char *) "field record duplicate", 22, (const unsigned char *) &f, (sizeof (f)-1));
-              }
-          }
-        break;
-
-      case decl_varientfield:
-        Indexing_IncludeIndiceIntoIndex (r->varientfieldF.listOfSons, reinterpret_cast<void *> (n));
-        p = getParent (r);
-        mcDebug_assert (p->kind == decl_record);
-        if (tag != nameKey_NulName)
-          {
-            symbolKey_putSymKey (p->recordF.localSymbols, tag, reinterpret_cast<void *> (n));
-          }
-        break;
-
-
-      default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
+      ls = getStringContents (l);
+      rs = getStringContents (r);
+      ls = DynamicStrings_Add (ls, rs);
+      n = static_cast<decl_node__opaque> (decl_makeString (nameKey_makekey (DynamicStrings_string (ls))));
+      ls = DynamicStrings_KillString (ls);
+      rs = DynamicStrings_KillString (rs);
     }
-  /* fill in, n.  */
-  n->recordfieldF.type = type;
-  n->recordfieldF.name = tag;
-  n->recordfieldF.parent = r;
-  n->recordfieldF.varient = v;
-  n->recordfieldF.tag = false;
-  n->recordfieldF.scope = NULL;
-  initCname (&n->recordfieldF.cname);
-  /* 
-   IF r^.kind=record
-   THEN
-      doRecordM2 (doP, r)
-   END ;
-  */
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -7660,60 +7543,57 @@ static decl_node putFieldRecord (decl_node r, nameKey_Name tag, decl_node type,
 
 
 /*
-   ensureOrder - ensures that, a, and, b, exist in, i, and also
-                 ensure that, a, is before, b.
+   makeBinary - create a binary node with left/right/result type:  l, r and resultType.
 */
 
-static void ensureOrder (Indexing_Index i, decl_node a, decl_node b)
+static decl_node__opaque makeBinary (decl_nodeT k, decl_node__opaque l, decl_node__opaque r, decl_node__opaque resultType)
 {
-  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (a)));
-  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (b)));
-  Indexing_RemoveIndiceFromIndex (i, reinterpret_cast<void *> (a));
-  Indexing_RemoveIndiceFromIndex (i, reinterpret_cast<void *> (b));
-  Indexing_IncludeIndiceIntoIndex (i, reinterpret_cast<void *> (a));
-  Indexing_IncludeIndiceIntoIndex (i, reinterpret_cast<void *> (b));
-  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (a)));
-  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (b)));
+  decl_node__opaque n;
+
+  n = foldBinary (k, l, r, resultType);
+  if (n == NULL)
+    {
+      n = doMakeBinary (k, l, r, resultType);
+    }
+  return n;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   putVarientTag - places tag into variant v.
+   doMakeBinary - returns a binary node containing left/right/result values
+                  l, r, res, with a node operator, k.
 */
 
-static void putVarientTag (decl_node v, decl_node tag)
+static decl_node__opaque doMakeBinary (decl_nodeT k, decl_node__opaque l, decl_node__opaque r, decl_node__opaque res)
 {
-  decl_node p;
+  decl_node__opaque n;
 
-  mcDebug_assert (decl_isVarient (v));
-  switch (v->kind)
+  n = newNode (k);
+  switch (n->kind)
     {
-      case decl_varient:
-        v->varientF.tag = tag;
-        break;
-
-
-      default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
-    }
-}
-
-
-/*
-   getParent - returns the parent field of recordfield or varientfield symbol, n.
-*/
-
-static decl_node getParent (decl_node n)
-{
-  switch (n->kind)
-    {
-      case decl_recordfield:
-        return n->recordfieldF.parent;
-        break;
-
-      case decl_varientfield:
-        return n->varientfieldF.parent;
+      case decl_cmplx:
+      case decl_equal:
+      case decl_notequal:
+      case decl_less:
+      case decl_greater:
+      case decl_greequal:
+      case decl_lessequal:
+      case decl_and:
+      case decl_or:
+      case decl_cast:
+      case decl_val:
+      case decl_plus:
+      case decl_sub:
+      case decl_div:
+      case decl_mod:
+      case decl_mult:
+      case decl_divide:
+      case decl_in:
+        n->binaryF.left = l;
+        n->binaryF.right = r;
+        n->binaryF.resultType = res;
         break;
 
 
@@ -7721,1673 +7601,1481 @@ static decl_node getParent (decl_node n)
         CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
         __builtin_unreachable ();
     }
+  return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   getRecord - returns the record associated with node, n.
-               (Parental record).
+   doMakeComponentRef -
 */
 
-static decl_node getRecord (decl_node n)
+static decl_node__opaque doMakeComponentRef (decl_node__opaque rec, decl_node__opaque field)
 {
-  mcDebug_assert (n->kind != decl_varient);  /* if this fails then we need to add parent field to varient.  */
-  switch (n->kind)
-    {
-      case decl_record:
-        return n;  /* if this fails then we need to add parent field to varient.  */
-        break;
-
-      case decl_varientfield:
-        return getRecord (getParent (n));
-        break;
-
+  decl_node__opaque n;
 
-      default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
-    }
+  n = newNode (decl_componentref);
+  n->componentrefF.rec = rec;
+  n->componentrefF.field = field;
+  n->componentrefF.resultType = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (field)));
+  initNodeOpaqueState (n);
+  return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   isConstExp - return TRUE if the node kind is a constexp.
+   isComponentRef -
 */
 
-static bool isConstExp (decl_node c)
+static bool isComponentRef (decl_node__opaque n)
 {
-  mcDebug_assert (c != NULL);
-  return c->kind == decl_constexp;
+  mcDebug_assert (n != NULL);
+  return n->kind == decl_componentref;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   addEnumToModule - adds enumeration type, e, into the list of enums
-                     in module, m.
-*/
-
-static void addEnumToModule (decl_node m, decl_node e)
-{
-  mcDebug_assert ((decl_isEnumeration (e)) || (decl_isEnumerationField (e)));
-  mcDebug_assert (((decl_isModule (m)) || (decl_isDef (m))) || (decl_isImp (m)));
-  if (decl_isModule (m))
-    {
-      Indexing_IncludeIndiceIntoIndex (m->moduleF.enumFixup.info, reinterpret_cast<void *> (e));
-    }
-  else if (decl_isDef (m))
-    {
-      /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (m->defF.enumFixup.info, reinterpret_cast<void *> (e));
-    }
-  else if (decl_isImp (m))
-    {
-      /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (m->impF.enumFixup.info, reinterpret_cast<void *> (e));
-    }
-}
-
-
-/*
-   getNextFixup - return the next fixup from from f.
+   isArrayRef - returns TRUE if the node was an arrayref.
 */
 
-static decl_node getNextFixup (decl_fixupInfo *f)
+static bool isArrayRef (decl_node__opaque n)
 {
-  (*f).count += 1;
-  return static_cast<decl_node> (Indexing_GetIndice ((*f).info, (*f).count));
+  mcDebug_assert (n != NULL);
+  return n->kind == decl_arrayref;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   doMakeEnum - create an enumeration type and add it to the current module.
+   isDeref - returns TRUE if, n, is a deref node.
 */
 
-static decl_node doMakeEnum (void)
+static bool isDeref (decl_node__opaque n)
 {
-  decl_node e;
-
-  e = newNode (decl_enumeration);
-  e->enumerationF.noOfElements = 0;
-  e->enumerationF.localSymbols = symbolKey_initTree ();
-  e->enumerationF.scope = decl_getDeclScope ();
-  e->enumerationF.listOfSons = Indexing_InitIndex (1);
-  e->enumerationF.low = NULL;
-  e->enumerationF.high = NULL;
-  addEnumToModule (currentModule, e);
-  return e;
+  mcDebug_assert (n != NULL);
+  return n->kind == decl_deref;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   doMakeEnumField - create an enumeration field name and add it to enumeration e.
-                     Return the new field.
+   makeBase - create a base type or constant.
+              It only supports the base types and constants
+              enumerated below.
 */
 
-static decl_node doMakeEnumField (decl_node e, nameKey_Name n)
+static decl_node__opaque makeBase (decl_nodeT k)
 {
-  decl_node f;
+  decl_node__opaque n;
 
-  mcDebug_assert (decl_isEnumeration (e));
-  f = decl_lookupSym (n);
-  if (f == NULL)
-    {
-      f = newNode (decl_enumerationfield);
-      symbolKey_putSymKey (e->enumerationF.localSymbols, n, reinterpret_cast<void *> (f));
-      Indexing_IncludeIndiceIntoIndex (e->enumerationF.listOfSons, reinterpret_cast<void *> (f));
-      f->enumerationfieldF.name = n;
-      f->enumerationfieldF.type = e;
-      f->enumerationfieldF.scope = decl_getDeclScope ();
-      f->enumerationfieldF.value = e->enumerationF.noOfElements;
-      initCname (&f->enumerationfieldF.cname);
-      e->enumerationF.noOfElements += 1;
-      mcDebug_assert ((Indexing_GetIndice (e->enumerationF.listOfSons, e->enumerationF.noOfElements)) == f);
-      addEnumToModule (currentModule, f);
-      if (e->enumerationF.low == NULL)
-        {
-          e->enumerationF.low = f;
-        }
-      e->enumerationF.high = f;
-      return addToScope (f);
-    }
-  else
+  n = newNode (k);
+  switch (k)
     {
-      mcMetaError_metaErrors2 ((const char *) "cannot create enumeration field {%1k} as the name is already in use", 67, (const char *) "{%2DMad} was declared elsewhere", 31, (const unsigned char *) &n, (sizeof (n)-1), (const unsigned char *) &f, (sizeof (f)-1));
+      case decl_new:
+      case decl_dispose:
+      case decl_length:
+      case decl_inc:
+      case decl_dec:
+      case decl_incl:
+      case decl_excl:
+      case decl_nil:
+      case decl_true:
+      case decl_false:
+      case decl_address:
+      case decl_loc:
+      case decl_byte:
+      case decl_word:
+      case decl_csizet:
+      case decl_cssizet:
+      case decl_char:
+      case decl_cardinal:
+      case decl_longcard:
+      case decl_shortcard:
+      case decl_integer:
+      case decl_longint:
+      case decl_shortint:
+      case decl_real:
+      case decl_longreal:
+      case decl_shortreal:
+      case decl_bitset:
+      case decl_boolean:
+      case decl_proc:
+      case decl_ztype:
+      case decl_rtype:
+      case decl_complex:
+      case decl_longcomplex:
+      case decl_shortcomplex:
+      case decl_adr:
+      case decl_chr:
+      case decl_cap:
+      case decl_abs:
+      case decl_float:
+      case decl_trunc:
+      case decl_ord:
+      case decl_high:
+      case decl_throw:
+      case decl_re:
+      case decl_im:
+      case decl_cmplx:
+      case decl_size:
+      case decl_tsize:
+      case decl_val:
+      case decl_min:
+      case decl_max:
+        break;
+
+
+      default:
+        M2RTS_HALT (-1);  /* legal kind.  */
+        __builtin_unreachable ();
+        break;
     }
-  return f;
+  return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   getExpList - returns the, n, th argument in an explist.
+   isOrdinal - returns TRUE if, n, is an ordinal type.
 */
 
-static decl_node getExpList (decl_node p, unsigned int n)
+static bool isOrdinal (decl_node__opaque n)
 {
-  mcDebug_assert (p != NULL);
-  mcDebug_assert (decl_isExpList (p));
-  mcDebug_assert (n <= (Indexing_HighIndice (p->explistF.exp)));
-  return static_cast<decl_node> (Indexing_GetIndice (p->explistF.exp, n));
+  switch (n->kind)
+    {
+      case decl_address:
+      case decl_loc:
+      case decl_byte:
+      case decl_word:
+      case decl_csizet:
+      case decl_cssizet:
+      case decl_char:
+      case decl_integer:
+      case decl_longint:
+      case decl_shortint:
+      case decl_cardinal:
+      case decl_longcard:
+      case decl_shortcard:
+      case decl_bitset:
+        return true;
+        break;
+
+
+      default:
+        return false;
+        break;
+    }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   expListLen - returns the length of explist, p.
+   mixTypes -
 */
 
-static unsigned int expListLen (decl_node p)
+static decl_node__opaque mixTypes (decl_node__opaque a, decl_node__opaque b)
 {
-  if (p == NULL)
-    {
-      return 0;
-    }
-  else
+  if ((a == addressN) || (b == addressN))
     {
-      mcDebug_assert (decl_isExpList (p));
-      return Indexing_HighIndice (p->explistF.exp);
+      return addressN;
     }
+  return a;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   getConstExpComplete - gets the field from the def or imp or module, n.
+   doSetExprType -
 */
 
-static bool getConstExpComplete (decl_node n)
+static decl_node__opaque doSetExprType (decl_node__opaque *t, decl_node__opaque n)
 {
-  switch (n->kind)
+  if ((*t) == NULL)
     {
-      case decl_def:
-        return n->defF.constsComplete;
-        break;
-
-      case decl_imp:
-        return n->impF.constsComplete;
-        break;
-
-      case decl_module:
-        return n->moduleF.constsComplete;
-        break;
-
-
-      default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
+      (*t) = n;
     }
+  return (*t);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   addConstToModule - adds const exp, e, into the list of constant
-                      expressions in module, m.
+   getMaxMinType -
 */
 
-static void addConstToModule (decl_node m, decl_node e)
+static decl_node__opaque getMaxMinType (decl_node__opaque n)
 {
-  mcDebug_assert (((decl_isModule (m)) || (decl_isDef (m))) || (decl_isImp (m)));
-  if (decl_isModule (m))
+  if ((decl_isVar (static_cast<decl_node> (n))) || (decl_isConst (static_cast<decl_node> (n))))
     {
-      Indexing_IncludeIndiceIntoIndex (m->moduleF.constFixup.info, reinterpret_cast<void *> (e));
+      return static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
     }
-  else if (decl_isDef (m))
+  else if (isConstExp (n))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (m->defF.constFixup.info, reinterpret_cast<void *> (e));
+      n = getExprType (n->unaryF.arg);
+      if (n == bitsetN)
+        {
+          return ztypeN;
+        }
+      else
+        {
+          return n;
+        }
     }
-  else if (decl_isImp (m))
+  else
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (m->impF.constFixup.info, reinterpret_cast<void *> (e));
+      return n;
     }
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   doMakeConstExp - create a constexp node and add it to the current module.
+   doGetFuncType -
 */
 
-static decl_node doMakeConstExp (void)
+static decl_node__opaque doGetFuncType (decl_node__opaque n)
 {
-  decl_node c;
+  decl_node__opaque result;
 
-  c = makeUnary (decl_constexp, NULL, NULL);
-  addConstToModule (currentModule, c);
-  return c;
+  mcDebug_assert (isFuncCall (n));
+  result = doSetExprType (&n->funccallF.type, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n->funccallF.function))));
+  initNodeOpaqueState (n);  /* Update now that the return type is known.  */
+  return result;  /* Update now that the return type is known.  */
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   isAnyType - return TRUE if node n is any type kind.
+   doGetExprType - works out the type which is associated with node, n.
 */
 
-static bool isAnyType (decl_node n)
+static decl_node__opaque doGetExprType (decl_node__opaque n)
 {
-  mcDebug_assert (n != NULL);
   switch (n->kind)
     {
+      case decl_max:
+      case decl_min:
+        return getMaxMinType (n->unaryF.arg);
+        break;
+
+      case decl_cast:
+      case decl_val:
+        return doSetExprType (&n->binaryF.resultType, n->binaryF.left);
+        break;
+
+      case decl_halt:
+      case decl_new:
+      case decl_dispose:
+        return static_cast<decl_node__opaque> (NULL);
+        break;
+
+      case decl_inc:
+      case decl_dec:
+      case decl_incl:
+      case decl_excl:
+        return static_cast<decl_node__opaque> (NULL);
+        break;
+
+      case decl_nil:
+        return addressN;
+        break;
+
+      case decl_true:
+      case decl_false:
+        return booleanN;
+        break;
+
       case decl_address:
+        return n;
+        break;
+
       case decl_loc:
+        return n;
+        break;
+
       case decl_byte:
+        return n;
+        break;
+
       case decl_word:
+        return n;
+        break;
+
+      case decl_csizet:
+        return n;
+        break;
+
+      case decl_cssizet:
+        return n;
+        break;
+
+      case decl_boolean:
+        /* base types.  */
+        return n;
+        break;
+
+      case decl_proc:
+        return n;
+        break;
+
       case decl_char:
+        return n;
+        break;
+
       case decl_cardinal:
+        return n;
+        break;
+
       case decl_longcard:
+        return n;
+        break;
+
       case decl_shortcard:
+        return n;
+        break;
+
       case decl_integer:
+        return n;
+        break;
+
       case decl_longint:
+        return n;
+        break;
+
       case decl_shortint:
-      case decl_complex:
-      case decl_longcomplex:
-      case decl_shortcomplex:
+        return n;
+        break;
+
+      case decl_real:
+        return n;
+        break;
+
+      case decl_longreal:
+        return n;
+        break;
+
+      case decl_shortreal:
+        return n;
+        break;
+
       case decl_bitset:
-      case decl_boolean:
-      case decl_proc:
-      case decl_type:
-        return true;
+        return n;
         break;
 
+      case decl_ztype:
+        return n;
+        break;
 
-      default:
-        return false;
+      case decl_rtype:
+        return n;
         break;
-    }
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
 
+      case decl_complex:
+        return n;
+        break;
 
-/*
-   makeVal - creates a VAL (type, expression) node.
-*/
+      case decl_longcomplex:
+        return n;
+        break;
 
-static decl_node makeVal (decl_node params)
-{
-  mcDebug_assert (decl_isExpList (params));
-  if ((expListLen (params)) == 2)
-    {
-      return makeBinary (decl_val, getExpList (params, 1), getExpList (params, 2), getExpList (params, 1));
-    }
-  else
-    {
-      M2RTS_HALT (-1);
-      __builtin_unreachable ();
-    }
-  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
-  __builtin_unreachable ();
-}
+      case decl_shortcomplex:
+        return n;
+        break;
 
+      case decl_type:
+        /* language features and compound type attributes.  */
+        return n->typeF.type;
+        break;
 
-/*
-   makeCast - creates a cast node TYPENAME (expr).
-*/
+      case decl_record:
+        return n;
+        break;
 
-static decl_node makeCast (decl_node c, decl_node p)
-{
-  mcDebug_assert (decl_isExpList (p));
-  if ((expListLen (p)) == 1)
-    {
-      return makeBinary (decl_cast, c, getExpList (p, 1), c);
-    }
-  else
-    {
-      M2RTS_HALT (-1);
-      __builtin_unreachable ();
-    }
-  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
-  __builtin_unreachable ();
-}
+      case decl_varient:
+        return n;
+        break;
 
-static decl_node makeIntrinsicProc (decl_nodeT k, unsigned int noArgs, decl_node p)
-{
-  decl_node f;
+      case decl_var:
+        return n->varF.type;
+        break;
 
-  /* 
-   makeIntrisicProc - create an intrinsic node.
-  */
-  f = newNode (k);
-  f->intrinsicF.args = p;
-  f->intrinsicF.noArgs = noArgs;
-  f->intrinsicF.type = NULL;
-  f->intrinsicF.postUnreachable = k == decl_halt;
-  initPair (&f->intrinsicF.intrinsicComment);
-  return f;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
+      case decl_enumeration:
+        return n;
+        break;
 
+      case decl_subrange:
+        return n->subrangeF.type;
+        break;
 
-/*
-   makeIntrinsicUnaryType - create an intrisic unary type.
-*/
+      case decl_array:
+        return n->arrayF.type;
+        break;
 
-static decl_node makeIntrinsicUnaryType (decl_nodeT k, decl_node paramList, decl_node returnType)
-{
-  return makeUnary (k, getExpList (paramList, 1), returnType);
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
+      case decl_string:
+        return charN;
+        break;
 
+      case decl_const:
+        return doSetExprType (&n->constF.type, getExprType (n->constF.value));
+        break;
 
-/*
-   makeIntrinsicBinaryType - create an intrisic binary type.
-*/
+      case decl_literal:
+        return n->literalF.type;
+        break;
 
-static decl_node makeIntrinsicBinaryType (decl_nodeT k, decl_node paramList, decl_node returnType)
-{
-  return makeBinary (k, getExpList (paramList, 1), getExpList (paramList, 2), returnType);
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
+      case decl_varparam:
+        return n->varparamF.type;
+        break;
 
+      case decl_param:
+        return n->paramF.type;
+        break;
 
-/*
-   checkIntrinsic - checks to see if the function call to, c, with
-                    parameter list, n, is really an intrinic.  If it
-                    is an intrinic then an intrinic node is created
-                    and returned.  Otherwise NIL is returned.
-*/
+      case decl_optarg:
+        return n->optargF.type;
+        break;
 
-static decl_node checkIntrinsic (decl_node c, decl_node n)
-{
-  if (isAnyType (c))
-    {
-      return makeCast (c, n);
-    }
-  else if (c == maxN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_max, n, NULL);
-    }
-  else if (c == minN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_min, n, NULL);
-    }
-  else if (c == haltN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicProc (decl_halt, expListLen (n), n);
-    }
-  else if (c == valN)
-    {
-      /* avoid dangling else.  */
-      return makeVal (n);
-    }
-  else if (c == adrN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_adr, n, addressN);
-    }
-  else if (c == sizeN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_size, n, cardinalN);
-    }
-  else if (c == tsizeN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_tsize, n, cardinalN);
-    }
-  else if (c == floatN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_float, n, realN);
-    }
-  else if (c == truncN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_trunc, n, integerN);
-    }
-  else if (c == ordN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_ord, n, cardinalN);
-    }
-  else if (c == chrN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_chr, n, charN);
-    }
-  else if (c == capN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_cap, n, charN);
-    }
-  else if (c == absN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_abs, n, NULL);
-    }
-  else if (c == imN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_im, n, NULL);
-    }
-  else if (c == reN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_re, n, NULL);
-    }
-  else if (c == cmplxN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicBinaryType (decl_cmplx, n, NULL);
-    }
-  else if (c == highN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_high, n, cardinalN);
-    }
-  else if (c == incN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicProc (decl_inc, expListLen (n), n);
-    }
-  else if (c == decN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicProc (decl_dec, expListLen (n), n);
-    }
-  else if (c == inclN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicProc (decl_incl, expListLen (n), n);
-    }
-  else if (c == exclN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicProc (decl_excl, expListLen (n), n);
-    }
-  else if (c == newN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicProc (decl_new, 1, n);
-    }
-  else if (c == disposeN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicProc (decl_dispose, 1, n);
-    }
-  else if (c == lengthN)
-    {
-      /* avoid dangling else.  */
-      return makeIntrinsicUnaryType (decl_length, n, cardinalN);
-    }
-  else if (c == throwN)
-    {
-      /* avoid dangling else.  */
-      keyc_useThrow ();
-      return makeIntrinsicProc (decl_throw, 1, n);
-    }
-  return NULL;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
-
-/*
-   checkCHeaders - check to see if the function is a C system function and
-                   requires a header file included.
-*/
-
-static void checkCHeaders (decl_node c)
-{
-  nameKey_Name name;
-  decl_node s;
-
-  if (decl_isProcedure (c))
-    {
-      s = decl_getScope (c);
-      if ((decl_getSymName (s)) == (nameKey_makeKey ((const char *) "libc", 4)))
-        {
-          name = decl_getSymName (c);
-          if ((((name == (nameKey_makeKey ((const char *) "read", 4))) || (name == (nameKey_makeKey ((const char *) "write", 5)))) || (name == (nameKey_makeKey ((const char *) "open", 4)))) || (name == (nameKey_makeKey ((const char *) "close", 5))))
-            {
-              keyc_useUnistd ();
-            }
-        }
-    }
-}
-
-
-/*
-   isFuncCall - returns TRUE if, n, is a function/procedure call.
-*/
-
-static bool isFuncCall (decl_node n)
-{
-  mcDebug_assert (n != NULL);
-  return n->kind == decl_funccall;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
-
-/*
-   putTypeInternal - marks type, des, as being an internally generated type.
-*/
-
-static void putTypeInternal (decl_node des)
-{
-  mcDebug_assert (des != NULL);
-  mcDebug_assert (decl_isType (des));
-  des->typeF.isInternal = true;
-}
-
-
-/*
-   isTypeInternal - returns TRUE if type, n, is internal.
-*/
-
-static bool isTypeInternal (decl_node n)
-{
-  mcDebug_assert (n != NULL);
-  mcDebug_assert (decl_isType (n));
-  return n->typeF.isInternal;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
-
-/*
-   lookupBase - return node named n from the base symbol scope.
-*/
-
-static decl_node lookupBase (nameKey_Name n)
-{
-  decl_node m;
-
-  m = static_cast<decl_node> (symbolKey_getSymKey (baseSymbols, n));
-  if (m == procN)
-    {
-      keyc_useProc ();
-    }
-  else if (((m == complexN) || (m == longcomplexN)) || (m == shortcomplexN))
-    {
-      /* avoid dangling else.  */
-      keyc_useComplex ();
-    }
-  return m;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
-
-/*
-   dumpScopes - display the names of all the scopes stacked.
-*/
-
-static void dumpScopes (void)
-{
-  unsigned int h;
-  decl_node s;
-
-  h = Indexing_HighIndice (scopeStack);
-  libc_printf ((const char *) "total scopes stacked %d\\n", 25, h);
-  while (h >= 1)
-    {
-      s = static_cast<decl_node> (Indexing_GetIndice (scopeStack, h));
-      out2 ((const char *) " scope [%d] is %s\\n", 19, h, s);
-      h -= 1;
-    }
-}
-
-
-/*
-   out0 - write string a to StdOut.
-*/
-
-static void out0 (const char *a_, unsigned int _a_high)
-{
-  DynamicStrings_String m;
-  char a[_a_high+1];
+      case decl_pointer:
+        return n->pointerF.type;
+        break;
 
-  /* make a local copy of each unbounded array.  */
-  memcpy (a, a_, _a_high+1);
+      case decl_recordfield:
+        return n->recordfieldF.type;
+        break;
 
-  m = FormatStrings_Sprintf0 (DynamicStrings_InitString ((const char *) a, _a_high));
-  m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, m));
-}
+      case decl_varientfield:
+        return n;
+        break;
 
+      case decl_enumerationfield:
+        return n->enumerationfieldF.type;
+        break;
 
-/*
-   out1 - write string a to StdOut using format specifier a.
-*/
+      case decl_set:
+        return n->setF.type;
+        break;
 
-static void out1 (const char *a_, unsigned int _a_high, decl_node s)
-{
-  DynamicStrings_String m;
-  unsigned int d;
-  char a[_a_high+1];
+      case decl_proctype:
+        return n->proctypeF.returnType;
+        break;
 
-  /* make a local copy of each unbounded array.  */
-  memcpy (a, a_, _a_high+1);
+      case decl_subscript:
+        return n->subscriptF.type;
+        break;
 
-  m = getFQstring (s);
-  if (DynamicStrings_EqualArray (m, (const char *) "", 0))
-    {
-      d = (unsigned int ) ((long unsigned int ) (s));
-      m = DynamicStrings_KillString (m);
-      m = FormatStrings_Sprintf1 (DynamicStrings_InitString ((const char *) "[%d]", 4), (const unsigned char *) &d, (sizeof (d)-1));
-    }
-  m = FormatStrings_Sprintf1 (DynamicStrings_InitString ((const char *) a, _a_high), (const unsigned char *) &m, (sizeof (m)-1));
-  m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, m));
-}
+      case decl_procedure:
+        /* blocks.  */
+        return n->procedureF.returnType;
+        break;
 
+      case decl_throw:
+        return static_cast<decl_node__opaque> (NULL);
+        break;
 
-/*
-   out2 - write string a to StdOut using format specifier a.
-*/
+      case decl_unreachable:
+        return static_cast<decl_node__opaque> (NULL);
+        break;
 
-static void out2 (const char *a_, unsigned int _a_high, unsigned int c, decl_node s)
-{
-  DynamicStrings_String m;
-  DynamicStrings_String m1;
-  char a[_a_high+1];
+      case decl_def:
+      case decl_imp:
+      case decl_module:
+      case decl_loop:
+      case decl_while:
+      case decl_for:
+      case decl_repeat:
+      case decl_if:
+      case decl_elsif:
+      case decl_assignment:
+        /* statements.  */
+        M2RTS_HALT (-1);
+        __builtin_unreachable ();
+        break;
 
-  /* make a local copy of each unbounded array.  */
-  memcpy (a, a_, _a_high+1);
+      case decl_plus:
+      case decl_sub:
+      case decl_div:
+      case decl_mod:
+      case decl_mult:
+      case decl_divide:
+        /* expressions.  */
+        return doSetExprType (&n->binaryF.resultType, mixTypes (getExprType (n->binaryF.left), getExprType (n->binaryF.right)));
+        break;
 
-  m1 = getString (s);
-  m = FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) a, _a_high), (const unsigned char *) &c, (sizeof (c)-1), (const unsigned char *) &m1, (sizeof (m1)-1));
-  m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, m));
-  m1 = DynamicStrings_KillString (m1);
-}
+      case decl_in:
+      case decl_and:
+      case decl_or:
+      case decl_equal:
+      case decl_notequal:
+      case decl_less:
+      case decl_greater:
+      case decl_greequal:
+      case decl_lessequal:
+        return doSetExprType (&n->binaryF.resultType, booleanN);
+        break;
 
+      case decl_cmplx:
+        return doSetExprType (&n->binaryF.resultType, complexN);
+        break;
 
-/*
-   out3 - write string a to StdOut using format specifier a.
-*/
+      case decl_abs:
+      case decl_constexp:
+      case decl_deref:
+      case decl_neg:
+        return doSetExprType (&n->unaryF.resultType, getExprType (n->unaryF.arg));
+        break;
 
-static void out3 (const char *a_, unsigned int _a_high, unsigned int l, nameKey_Name n, decl_node s)
-{
-  DynamicStrings_String m;
-  DynamicStrings_String m1;
-  DynamicStrings_String m2;
-  char a[_a_high+1];
+      case decl_adr:
+        return doSetExprType (&n->unaryF.resultType, addressN);
+        break;
 
-  /* make a local copy of each unbounded array.  */
-  memcpy (a, a_, _a_high+1);
+      case decl_size:
+      case decl_tsize:
+        return doSetExprType (&n->unaryF.resultType, cardinalN);
+        break;
 
-  m1 = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n));
-  m2 = getString (s);
-  m = FormatStrings_Sprintf3 (DynamicStrings_InitString ((const char *) a, _a_high), (const unsigned char *) &l, (sizeof (l)-1), (const unsigned char *) &m1, (sizeof (m1)-1), (const unsigned char *) &m2, (sizeof (m2)-1));
-  m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, m));
-  m1 = DynamicStrings_KillString (m1);
-  m2 = DynamicStrings_KillString (m2);
-}
+      case decl_high:
+      case decl_ord:
+        return doSetExprType (&n->unaryF.resultType, cardinalN);
+        break;
 
+      case decl_float:
+        return doSetExprType (&n->unaryF.resultType, realN);
+        break;
 
-/*
-   isUnary - returns TRUE if, n, is an unary node.
-*/
+      case decl_trunc:
+        return doSetExprType (&n->unaryF.resultType, integerN);
+        break;
 
-static bool isUnary (decl_node n)
-{
-  mcDebug_assert (n != NULL);
-  switch (n->kind)
-    {
-      case decl_length:
-      case decl_re:
-      case decl_im:
-      case decl_deref:
-      case decl_high:
       case decl_chr:
+        return doSetExprType (&n->unaryF.resultType, charN);
+        break;
+
       case decl_cap:
-      case decl_abs:
-      case decl_ord:
-      case decl_float:
-      case decl_trunc:
-      case decl_constexp:
+        return doSetExprType (&n->unaryF.resultType, charN);
+        break;
+
       case decl_not:
-      case decl_neg:
-      case decl_adr:
-      case decl_size:
-      case decl_tsize:
-      case decl_min:
-      case decl_max:
-        return true;
+        return doSetExprType (&n->unaryF.resultType, booleanN);
         break;
 
+      case decl_re:
+        return doSetExprType (&n->unaryF.resultType, realN);
+        break;
 
-      default:
-        return false;
+      case decl_im:
+        return doSetExprType (&n->unaryF.resultType, realN);
         break;
-    }
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
 
+      case decl_arrayref:
+        return n->arrayrefF.resultType;
+        break;
 
-/*
-   isBinary - returns TRUE if, n, is an binary node.
-*/
+      case decl_componentref:
+        return n->componentrefF.resultType;
+        break;
 
-static bool isBinary (decl_node n)
-{
-  mcDebug_assert (n != NULL);
-  switch (n->kind)
-    {
-      case decl_cmplx:
-      case decl_and:
-      case decl_or:
-      case decl_equal:
-      case decl_notequal:
-      case decl_less:
-      case decl_greater:
-      case decl_greequal:
-      case decl_lessequal:
-      case decl_val:
-      case decl_cast:
-      case decl_plus:
-      case decl_sub:
-      case decl_div:
-      case decl_mod:
-      case decl_mult:
-      case decl_divide:
-      case decl_in:
-        return true;
+      case decl_pointerref:
+        return n->pointerrefF.resultType;
         break;
 
+      case decl_funccall:
+        return doSetExprType (&n->funccallF.type, doGetFuncType (n));
+        break;
 
-      default:
-        return false;
+      case decl_setvalue:
+        return n->setvalueF.type;
         break;
+
+
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
     }
-  /* static analysis guarentees a RETURN statement will be used before here.  */
+  M2RTS_HALT (-1);
+  __builtin_unreachable ();
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
   __builtin_unreachable ();
 }
 
 
 /*
-   makeUnary - create a unary expression node with, e, as the argument
-               and res as the return type.
+   getExprType - return the expression type.
 */
 
-static decl_node makeUnary (decl_nodeT k, decl_node e, decl_node res)
+static decl_node__opaque getExprType (decl_node__opaque n)
 {
-  decl_node n;
+  decl_node__opaque t;
 
-  if (k == decl_plus)
+  if (((isFuncCall (n)) && ((decl_getType (static_cast<decl_node> (n))) != NULL)) && (decl_isProcType (decl_skipType (decl_getType (static_cast<decl_node> (n))))))
     {
-      return e;
+      return static_cast<decl_node__opaque> (decl_getType (decl_skipType (decl_getType (static_cast<decl_node> (n)))));
     }
-  else
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+  if (t == NULL)
     {
-      n = newNode (k);
-      switch (n->kind)
-        {
-          case decl_min:
-          case decl_max:
-          case decl_throw:
-          case decl_re:
-          case decl_im:
-          case decl_deref:
-          case decl_high:
-          case decl_chr:
-          case decl_cap:
-          case decl_abs:
-          case decl_ord:
-          case decl_float:
-          case decl_trunc:
-          case decl_length:
-          case decl_constexp:
-          case decl_not:
-          case decl_neg:
-          case decl_adr:
-          case decl_size:
-          case decl_tsize:
-            n->unaryF.arg = e;
-            n->unaryF.resultType = res;
-            break;
-
-
-          default:
-            CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-            __builtin_unreachable ();
-        }
+      t = doGetExprType (n);
     }
-  return n;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
-
-/*
-   isLeafString - returns TRUE if n is a leaf node which is a string constant.
-*/
-
-static bool isLeafString (decl_node n)
-{
-  return ((isString (n)) || ((decl_isLiteral (n)) && ((decl_getType (n)) == charN))) || ((decl_isConst (n)) && ((getExprType (n)) == charN));
+  return t;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   getLiteralStringContents - return the contents of a literal node as a string.
+   openOutput -
 */
 
-static DynamicStrings_String getLiteralStringContents (decl_node n)
+static void openOutput (void)
 {
-  DynamicStrings_String number;
-  DynamicStrings_String content;
   DynamicStrings_String s;
 
-  mcDebug_assert (n->kind == decl_literal);
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n->literalF.name));
-  content = NULL;
-  if (n->literalF.type == charN)
+  s = mcOptions_getOutputFile ();
+  if (DynamicStrings_EqualArray (s, (const char *) "-", 1))
     {
-      if ((DynamicStrings_char (s, -1)) == 'C')
-        {
-          if ((DynamicStrings_Length (s)) > 1)
-            {
-              number = DynamicStrings_Slice (s, 0, -1);
-              content = DynamicStrings_InitStringChar ((char ) (StringConvert_ostoc (number)));
-              number = DynamicStrings_KillString (number);
-            }
-          else
-            {
-              content = DynamicStrings_InitStringChar ('C');
-            }
-        }
-      else
-        {
-          content = DynamicStrings_Dup (s);
-        }
+      outputFile = FIO_StdOut;
     }
   else
     {
-      mcMetaError_metaError1 ((const char *) "cannot obtain string contents from {%1k}", 40, (const unsigned char *) &n->literalF.name, (sizeof (n->literalF.name)-1));
+      outputFile = SFIO_OpenToWrite (s);
     }
-  s = DynamicStrings_KillString (s);
-  return content;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  mcStream_setDest (outputFile);
 }
 
 
 /*
-   getStringContents - return the string contents of a constant, literal,
-                       string or a constexp node.
+   closeOutput -
 */
 
-static DynamicStrings_String getStringContents (decl_node n)
+static void closeOutput (void)
 {
-  if (decl_isConst (n))
-    {
-      return getStringContents (n->constF.value);
-    }
-  else if (decl_isLiteral (n))
-    {
-      /* avoid dangling else.  */
-      return getLiteralStringContents (n);
-    }
-  else if (isString (n))
-    {
-      /* avoid dangling else.  */
-      return getString (n);
-    }
-  else if (isConstExp (n))
+  DynamicStrings_String s;
+
+  s = mcOptions_getOutputFile ();
+  outputFile = mcStream_combine ();
+  if (! (DynamicStrings_EqualArray (s, (const char *) "-", 1)))
     {
-      /* avoid dangling else.  */
-      return getStringContents (n->unaryF.arg);
+      FIO_Close (outputFile);
     }
-  M2RTS_HALT (-1);
-  __builtin_unreachable ();
-  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
-  __builtin_unreachable ();
 }
 
 
 /*
-   addNames -
+   write - outputs a single char, ch.
 */
 
-static nameKey_Name addNames (decl_node a, decl_node b)
+static void write_ (char ch)
 {
-  DynamicStrings_String sa;
-  DynamicStrings_String sb;
-  nameKey_Name n;
-
-  sa = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (a)));
-  sb = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (b)));
-  sa = DynamicStrings_ConCat (sa, sb);
-  n = nameKey_makekey (DynamicStrings_string (sa));
-  sa = DynamicStrings_KillString (sa);
-  sb = DynamicStrings_KillString (sb);
-  return n;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  FIO_WriteChar (outputFile, ch);
+  FIO_FlushBuffer (outputFile);
 }
 
 
 /*
-   resolveString -
+   writeln -
 */
 
-static decl_node resolveString (decl_node n)
+static void writeln (void)
 {
-  while ((decl_isConst (n)) || (isConstExp (n)))
-    {
-      if (decl_isConst (n))
-        {
-          n = n->constF.value;
-        }
-      else
-        {
-          n = n->unaryF.arg;
-        }
-    }
-  if (n->kind == decl_plus)
-    {
-      n = decl_makeString (addNames (resolveString (n->binaryF.left), resolveString (n->binaryF.right)));
-    }
-  return n;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  FIO_WriteLine (outputFile);
+  FIO_FlushBuffer (outputFile);
 }
 
 
 /*
-   foldBinary -
+   doIncludeC - include header file for definition module, n.
 */
 
-static decl_node foldBinary (decl_nodeT k, decl_node l, decl_node r, decl_node res)
+static void doIncludeC (decl_node__opaque n)
 {
-  decl_node n;
-  DynamicStrings_String ls;
-  DynamicStrings_String rs;
+  DynamicStrings_String s;
 
-  n = NULL;
-  if (((k == decl_plus) && (isLeafString (l))) && (isLeafString (r)))
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+  if (mcOptions_getExtendedOpaque ())
+    {}  /* empty.  */
+  /* no include in this case.  */
+  else if (decl_isDef (static_cast<decl_node> (n)))
     {
-      ls = getStringContents (l);
-      rs = getStringContents (r);
-      ls = DynamicStrings_Add (ls, rs);
-      n = decl_makeString (nameKey_makekey (DynamicStrings_string (ls)));
-      ls = DynamicStrings_KillString (ls);
-      rs = DynamicStrings_KillString (rs);
+      /* avoid dangling else.  */
+      mcPretty_print (doP, (const char *) "#   include \"", 13);
+      mcPretty_prints (doP, mcOptions_getHPrefix ());
+      mcPretty_prints (doP, s);
+      mcPretty_print (doP, (const char *) ".h\"\\n", 5);
+      symbolKey_foreachNodeDo (n->defF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDoneDef});
     }
-  return n;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  s = DynamicStrings_KillString (s);
 }
 
 
 /*
-   makeBinary - create a binary node with left/right/result type:  l, r and resultType.
+   getSymScope - returns the scope where node, n, was declared.
 */
 
-static decl_node makeBinary (decl_nodeT k, decl_node l, decl_node r, decl_node resultType)
+static decl_node__opaque getSymScope (decl_node__opaque n)
 {
-  decl_node n;
-
-  n = foldBinary (k, l, r, resultType);
-  if (n == NULL)
+  switch (n->kind)
     {
-      n = doMakeBinary (k, l, r, resultType);
+      case decl_const:
+        return n->constF.scope;
+        break;
+
+      case decl_type:
+        return n->typeF.scope;
+        break;
+
+      case decl_var:
+        return n->varF.scope;
+        break;
+
+      case decl_procedure:
+        return n->procedureF.scope;
+        break;
+
+
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
     }
-  return n;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
+  M2RTS_HALT (-1);
+  __builtin_unreachable ();
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
   __builtin_unreachable ();
 }
 
 
 /*
-   doMakeBinary - returns a binary node containing left/right/result values
-                  l, r, res, with a node operator, k.
+   isQualifiedForced - should the node be written with a module prefix?
 */
 
-static decl_node doMakeBinary (decl_nodeT k, decl_node l, decl_node r, decl_node res)
+static bool isQualifiedForced (decl_node__opaque n)
 {
-  decl_node n;
-
-  n = newNode (k);
-  switch (n->kind)
-    {
-      case decl_cmplx:
-      case decl_equal:
-      case decl_notequal:
-      case decl_less:
-      case decl_greater:
-      case decl_greequal:
-      case decl_lessequal:
-      case decl_and:
-      case decl_or:
-      case decl_cast:
-      case decl_val:
-      case decl_plus:
-      case decl_sub:
-      case decl_div:
-      case decl_mod:
-      case decl_mult:
-      case decl_divide:
-      case decl_in:
-        n->binaryF.left = l;
-        n->binaryF.right = r;
-        n->binaryF.resultType = res;
-        break;
+  return forceQualified && (((((decl_isType (static_cast<decl_node> (n))) || (decl_isRecord (static_cast<decl_node> (n)))) || (decl_isArray (static_cast<decl_node> (n)))) || (decl_isEnumeration (static_cast<decl_node> (n)))) || (decl_isEnumerationField (static_cast<decl_node> (n))));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
 
-      default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
+/*
+   getFQstring -
+*/
+
+static DynamicStrings_String getFQstring (decl_node__opaque n)
+{
+  DynamicStrings_String i;
+  DynamicStrings_String s;
+
+  if ((decl_getScope (static_cast<decl_node> (n))) == NULL)
+    {
+      return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+    }
+  else if (isQualifiedForced (n))
+    {
+      /* avoid dangling else.  */
+      i = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+      s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (decl_getScope (static_cast<decl_node> (n)))));
+      return FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) "%s_%s", 5), (const unsigned char *) &s, (sizeof (s)-1), (const unsigned char *) &i, (sizeof (i)-1));
+    }
+  else if ((! (decl_isExported (static_cast<decl_node> (n)))) || (mcOptions_getIgnoreFQ ()))
+    {
+      /* avoid dangling else.  */
+      return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+    }
+  else
+    {
+      /* avoid dangling else.  */
+      i = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+      s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (decl_getScope (static_cast<decl_node> (n)))));
+      return FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) "%s_%s", 5), (const unsigned char *) &s, (sizeof (s)-1), (const unsigned char *) &i, (sizeof (i)-1));
     }
-  return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   doMakeComponentRef -
+   getFQDstring -
 */
 
-static decl_node doMakeComponentRef (decl_node rec, decl_node field)
+static DynamicStrings_String getFQDstring (decl_node__opaque n, bool scopes)
 {
-  decl_node n;
+  DynamicStrings_String i;
+  DynamicStrings_String s;
 
-  n = newNode (decl_componentref);
-  n->componentrefF.rec = rec;
-  n->componentrefF.field = field;
-  n->componentrefF.resultType = decl_getType (field);
-  return n;
+  if ((decl_getScope (static_cast<decl_node> (n))) == NULL)
+    {
+      return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (getDName (n, scopes)));
+    }
+  else if (isQualifiedForced (n))
+    {
+      /* avoid dangling else.  */
+      /* we assume a qualified name will never conflict.  */
+      i = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+      s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (decl_getScope (static_cast<decl_node> (n)))));
+      return FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) "%s_%s", 5), (const unsigned char *) &s, (sizeof (s)-1), (const unsigned char *) &i, (sizeof (i)-1));
+    }
+  else if ((! (decl_isExported (static_cast<decl_node> (n)))) || (mcOptions_getIgnoreFQ ()))
+    {
+      /* avoid dangling else.  */
+      return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (getDName (n, scopes)));
+    }
+  else
+    {
+      /* avoid dangling else.  */
+      /* we assume a qualified name will never conflict.  */
+      i = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+      s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (decl_getScope (static_cast<decl_node> (n)))));
+      return FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) "%s_%s", 5), (const unsigned char *) &s, (sizeof (s)-1), (const unsigned char *) &i, (sizeof (i)-1));
+    }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   isComponentRef -
+   getString - returns the name as a string.
 */
 
-static bool isComponentRef (decl_node n)
+static DynamicStrings_String getString (decl_node__opaque n)
 {
-  mcDebug_assert (n != NULL);
-  return n->kind == decl_componentref;
+  if ((decl_getSymName (static_cast<decl_node> (n))) == nameKey_NulName)
+    {
+      return DynamicStrings_InitString ((const char *) "", 0);
+    }
+  else
+    {
+      return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+    }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   isArrayRef - returns TRUE if the node was an arrayref.
+   doNone - call HALT.
 */
 
-static bool isArrayRef (decl_node n)
+static void doNone (decl_node__opaque n)
 {
-  mcDebug_assert (n != NULL);
-  return n->kind == decl_arrayref;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
+  M2RTS_HALT (-1);
   __builtin_unreachable ();
 }
 
 
 /*
-   isDeref - returns TRUE if, n, is a deref node.
+   doNothing - does nothing!
 */
 
-static bool isDeref (decl_node n)
+static void doNothing (decl_node__opaque n)
 {
-  mcDebug_assert (n != NULL);
-  return n->kind == decl_deref;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
 }
 
 
 /*
-   makeBase - create a base type or constant.
-              It only supports the base types and constants
-              enumerated below.
+   doConstC -
 */
 
-static decl_node makeBase (decl_nodeT k)
+static void doConstC (decl_node__opaque n)
 {
-  decl_node n;
+  if (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n))))
+    {
+      mcPretty_print (doP, (const char *) "#   define ", 11);
+      doFQNameC (doP, n);
+      mcPretty_setNeedSpace (doP);
+      doExprC (doP, n->constF.value);
+      mcPretty_print (doP, (const char *) "\\n", 2);
+      alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (n));
+    }
+}
 
-  n = newNode (k);
-  switch (k)
+
+/*
+   needsParen - returns TRUE if expression, n, needs to be enclosed in ().
+*/
+
+static bool needsParen (decl_node__opaque n)
+{
+  mcDebug_assert (n != NULL);
+  switch (n->kind)
     {
-      case decl_new:
-      case decl_dispose:
-      case decl_length:
-      case decl_inc:
-      case decl_dec:
-      case decl_incl:
-      case decl_excl:
       case decl_nil:
       case decl_true:
       case decl_false:
-      case decl_address:
-      case decl_loc:
-      case decl_byte:
-      case decl_word:
-      case decl_csizet:
-      case decl_cssizet:
-      case decl_char:
-      case decl_cardinal:
-      case decl_longcard:
-      case decl_shortcard:
-      case decl_integer:
-      case decl_longint:
-      case decl_shortint:
-      case decl_real:
-      case decl_longreal:
-      case decl_shortreal:
-      case decl_bitset:
-      case decl_boolean:
-      case decl_proc:
-      case decl_ztype:
-      case decl_rtype:
-      case decl_complex:
-      case decl_longcomplex:
-      case decl_shortcomplex:
+        return false;
+        break;
+
+      case decl_constexp:
+        return needsParen (n->unaryF.arg);
+        break;
+
+      case decl_neg:
+        return needsParen (n->unaryF.arg);
+        break;
+
+      case decl_not:
+        return needsParen (n->unaryF.arg);
+        break;
+
       case decl_adr:
-      case decl_chr:
-      case decl_cap:
-      case decl_abs:
+      case decl_size:
+      case decl_tsize:
+      case decl_ord:
       case decl_float:
       case decl_trunc:
-      case decl_ord:
+      case decl_chr:
+      case decl_cap:
       case decl_high:
-      case decl_throw:
-      case decl_re:
-      case decl_im:
-      case decl_cmplx:
-      case decl_size:
-      case decl_tsize:
+        return false;
+        break;
+
+      case decl_deref:
+        return false;
+        break;
+
+      case decl_equal:
+      case decl_notequal:
+      case decl_less:
+      case decl_greater:
+      case decl_greequal:
+      case decl_lessequal:
+        return true;
+        break;
+
+      case decl_componentref:
+        return false;
+        break;
+
+      case decl_pointerref:
+        return false;
+        break;
+
+      case decl_cast:
+        return true;
+        break;
+
       case decl_val:
-      case decl_min:
+        return true;
+        break;
+
+      case decl_abs:
+        return false;
+        break;
+
+      case decl_plus:
+      case decl_sub:
+      case decl_div:
+      case decl_mod:
+      case decl_mult:
+      case decl_divide:
+      case decl_in:
+        return true;
+        break;
+
+      case decl_literal:
+      case decl_const:
+      case decl_enumerationfield:
+      case decl_string:
+        return false;
+        break;
+
       case decl_max:
+        return true;
         break;
 
+      case decl_min:
+        return true;
+        break;
 
-      default:
-        M2RTS_HALT (-1);  /* legal kind.  */
-        __builtin_unreachable ();
+      case decl_var:
+        return false;
         break;
-    }
-  return n;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
 
+      case decl_arrayref:
+        return false;
+        break;
 
-/*
-   isOrdinal - returns TRUE if, n, is an ordinal type.
-*/
+      case decl_and:
+      case decl_or:
+        return true;
+        break;
+
+      case decl_funccall:
+        return true;
+        break;
+
+      case decl_recordfield:
+        return false;
+        break;
 
-static bool isOrdinal (decl_node n)
-{
-  switch (n->kind)
-    {
-      case decl_address:
       case decl_loc:
       case decl_byte:
       case decl_word:
-      case decl_csizet:
-      case decl_cssizet:
-      case decl_char:
-      case decl_integer:
-      case decl_longint:
-      case decl_shortint:
+      case decl_type:
+      case decl_char:
       case decl_cardinal:
       case decl_longcard:
       case decl_shortcard:
+      case decl_integer:
+      case decl_longint:
+      case decl_shortint:
+      case decl_real:
+      case decl_longreal:
+      case decl_shortreal:
+      case decl_complex:
+      case decl_longcomplex:
+      case decl_shortcomplex:
       case decl_bitset:
-        return true;
+      case decl_boolean:
+      case decl_proc:
+        return false;
+        break;
+
+      case decl_setvalue:
+        return false;
         break;
 
+      case decl_address:
+        return true;
+        break;
 
-      default:
+      case decl_procedure:
         return false;
         break;
-    }
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
 
+      case decl_length:
+      case decl_cmplx:
+      case decl_re:
+      case decl_im:
+        return true;
+        break;
 
-/*
-   mixTypes -
-*/
 
-static decl_node mixTypes (decl_node a, decl_node b)
-{
-  if ((a == addressN) || (b == addressN))
-    {
-      return addressN;
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
     }
-  return a;
+  return true;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   doSetExprType -
+   doUnary -
 */
 
-static decl_node doSetExprType (decl_node *t, decl_node n)
+static void doUnary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node__opaque expr, decl_node__opaque type, bool l, bool r)
 {
-  if ((*t) == NULL)
+  char op[_op_high+1];
+
+  /* make a local copy of each unbounded array.  */
+  memcpy (op, op_, _op_high+1);
+
+  if (l)
     {
-      (*t) = n;
+      mcPretty_setNeedSpace (p);
+    }
+  mcPretty_print (p, (const char *) op, _op_high);
+  if (r)
+    {
+      mcPretty_setNeedSpace (p);
+    }
+  if (needsParen (expr))
+    {
+      outText (p, (const char *) "(", 1);
+      doExprC (p, expr);
+      outText (p, (const char *) ")", 1);
+    }
+  else
+    {
+      doExprC (p, expr);
     }
-  return (*t);
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
 }
 
 
 /*
-   getMaxMinType -
+   doSetSub - perform  l & (~ r)
 */
 
-static decl_node getMaxMinType (decl_node n)
+static void doSetSub (mcPretty_pretty p, decl_node__opaque left, decl_node__opaque right)
 {
-  if ((decl_isVar (n)) || (decl_isConst (n)))
+  if (needsParen (left))
     {
-      return decl_getType (n);
+      outText (p, (const char *) "(", 1);
+      doExprC (p, left);
+      outText (p, (const char *) ")", 1);
     }
-  else if (isConstExp (n))
+  else
     {
-      /* avoid dangling else.  */
-      n = getExprType (n->unaryF.arg);
-      if (n == bitsetN)
-        {
-          return ztypeN;
-        }
-      else
-        {
-          return n;
-        }
+      doExprC (p, left);
+    }
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "&", 1);
+  mcPretty_setNeedSpace (p);
+  if (needsParen (right))
+    {
+      outText (p, (const char *) "(~(", 3);
+      doExprC (p, right);
+      outText (p, (const char *) "))", 2);
     }
   else
     {
-      /* avoid dangling else.  */
-      return n;
+      outText (p, (const char *) "(~", 2);
+      doExprC (p, right);
+      outText (p, (const char *) ")", 1);
     }
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
 }
 
 
 /*
-   doGetFuncType -
+   doPolyBinary -
 */
 
-static decl_node doGetFuncType (decl_node n)
+static void doPolyBinary (mcPretty_pretty p, decl_nodeT op, decl_node__opaque left, decl_node__opaque right, bool l, bool r)
 {
-  mcDebug_assert (isFuncCall (n));
-  return doSetExprType (&n->funccallF.type, decl_getType (n->funccallF.function));
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
-
-/*
-   doGetExprType - works out the type which is associated with node, n.
-*/
+  decl_node__opaque lt;
+  decl_node__opaque rt;
 
-static decl_node doGetExprType (decl_node n)
-{
-  switch (n->kind)
+  lt = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (getExprType (left))));
+  rt = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (getExprType (right))));
+  if (((lt != NULL) && ((decl_isSet (static_cast<decl_node> (lt))) || (isBitset (lt)))) || ((rt != NULL) && ((decl_isSet (static_cast<decl_node> (rt))) || (isBitset (rt)))))
     {
-      case decl_max:
-      case decl_min:
-        return getMaxMinType (n->unaryF.arg);
-        break;
-
-      case decl_cast:
-      case decl_val:
-        return doSetExprType (&n->binaryF.resultType, n->binaryF.left);
-        break;
+      switch (op)
+        {
+          case decl_plus:
+            doBinary (p, (const char *) "|", 1, left, right, l, r, false);
+            break;
 
-      case decl_halt:
-      case decl_new:
-      case decl_dispose:
-        return NULL;
-        break;
+          case decl_sub:
+            doSetSub (p, left, right);
+            break;
 
-      case decl_inc:
-      case decl_dec:
-      case decl_incl:
-      case decl_excl:
-        return NULL;
-        break;
+          case decl_mult:
+            doBinary (p, (const char *) "&", 1, left, right, l, r, false);
+            break;
 
-      case decl_nil:
-        return addressN;
-        break;
+          case decl_divide:
+            doBinary (p, (const char *) "^", 1, left, right, l, r, false);
+            break;
 
-      case decl_true:
-      case decl_false:
-        return booleanN;
-        break;
 
-      case decl_address:
-        return n;
-        break;
+          default:
+            CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+            __builtin_unreachable ();
+        }
+    }
+  else
+    {
+      switch (op)
+        {
+          case decl_plus:
+            doBinary (p, (const char *) "+", 1, left, right, l, r, false);
+            break;
 
-      case decl_loc:
-        return n;
-        break;
+          case decl_sub:
+            doBinary (p, (const char *) "-", 1, left, right, l, r, false);
+            break;
 
-      case decl_byte:
-        return n;
-        break;
+          case decl_mult:
+            doBinary (p, (const char *) "*", 1, left, right, l, r, false);
+            break;
 
-      case decl_word:
-        return n;
-        break;
+          case decl_divide:
+            doBinary (p, (const char *) "/", 1, left, right, l, r, false);
+            break;
 
-      case decl_csizet:
-        return n;
-        break;
 
-      case decl_cssizet:
-        return n;
-        break;
+          default:
+            CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+            __builtin_unreachable ();
+        }
+    }
+}
 
-      case decl_boolean:
-        /* base types.  */
-        return n;
-        break;
 
-      case decl_proc:
-        return n;
-        break;
+/*
+   doBinary -
+*/
 
-      case decl_char:
-        return n;
-        break;
+static void doBinary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node__opaque left, decl_node__opaque right, bool l, bool r, bool unpackProc)
+{
+  char op[_op_high+1];
 
-      case decl_cardinal:
-        return n;
-        break;
+  /* make a local copy of each unbounded array.  */
+  memcpy (op, op_, _op_high+1);
 
-      case decl_longcard:
-        return n;
-        break;
+  if (needsParen (left))
+    {
+      outText (p, (const char *) "(", 1);
+      left = doExprCup (p, left, unpackProc, false);
+      outText (p, (const char *) ")", 1);
+    }
+  else
+    {
+      left = doExprCup (p, left, unpackProc, false);
+    }
+  if (l)
+    {
+      mcPretty_setNeedSpace (p);
+    }
+  outText (p, (const char *) op, _op_high);
+  if (r)
+    {
+      mcPretty_setNeedSpace (p);
+    }
+  if (needsParen (right))
+    {
+      outText (p, (const char *) "(", 1);
+      right = doExprCup (p, right, unpackProc, false);
+      outText (p, (const char *) ")", 1);
+    }
+  else
+    {
+      right = doExprCup (p, right, unpackProc, false);
+    }
+}
 
-      case decl_shortcard:
-        return n;
-        break;
 
-      case decl_integer:
-        return n;
-        break;
+/*
+   doPostUnary -
+*/
 
-      case decl_longint:
-        return n;
-        break;
+static void doPostUnary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node__opaque expr)
+{
+  char op[_op_high+1];
 
-      case decl_shortint:
-        return n;
-        break;
+  /* make a local copy of each unbounded array.  */
+  memcpy (op, op_, _op_high+1);
 
-      case decl_real:
-        return n;
-        break;
+  doExprC (p, expr);
+  outText (p, (const char *) op, _op_high);
+}
 
-      case decl_longreal:
-        return n;
-        break;
 
-      case decl_shortreal:
-        return n;
-        break;
+/*
+   doDeRefC -
+*/
 
-      case decl_bitset:
-        return n;
-        break;
+static decl_node__opaque doDeRefC (mcPretty_pretty p, decl_node__opaque expr)
+{
+  outText (p, (const char *) "(*", 2);
+  expr = castOpaque (p, expr, false);
+  outText (p, (const char *) ")", 1);
+  return expr;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-      case decl_ztype:
-        return n;
-        break;
 
-      case decl_rtype:
-        return n;
-        break;
+/*
+   doGetLastOp - returns, a, if b is a terminal otherwise walk right.
+*/
 
-      case decl_complex:
-        return n;
+static decl_node__opaque doGetLastOp (decl_node__opaque a, decl_node__opaque b)
+{
+  switch (b->kind)
+    {
+      case decl_nil:
+        return a;
         break;
 
-      case decl_longcomplex:
-        return n;
+      case decl_true:
+        return a;
         break;
 
-      case decl_shortcomplex:
-        return n;
+      case decl_false:
+        return a;
         break;
 
-      case decl_type:
-        /* language features and compound type attributes.  */
-        return n->typeF.type;
+      case decl_constexp:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_record:
-        return n;
+      case decl_neg:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_varient:
-        return n;
+      case decl_not:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_var:
-        return n->varF.type;
+      case decl_adr:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_enumeration:
-        return n;
+      case decl_size:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_subrange:
-        return n->subrangeF.type;
+      case decl_tsize:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_array:
-        return n->arrayF.type;
+      case decl_ord:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_string:
-        return charN;
+      case decl_float:
+      case decl_trunc:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_const:
-        return doSetExprType (&n->constF.type, getExprType (n->constF.value));
+      case decl_chr:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_literal:
-        return n->literalF.type;
+      case decl_cap:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_varparam:
-        return n->varparamF.type;
+      case decl_high:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_param:
-        return n->paramF.type;
+      case decl_deref:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_optarg:
-        return n->optargF.type;
+      case decl_re:
+      case decl_im:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_pointer:
-        return n->pointerF.type;
+      case decl_equal:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_recordfield:
-        return n->recordfieldF.type;
+      case decl_notequal:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_varientfield:
-        return n;
+      case decl_less:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_enumerationfield:
-        return n->enumerationfieldF.type;
+      case decl_greater:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_set:
-        return n->setF.type;
+      case decl_greequal:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_proctype:
-        return n->proctypeF.returnType;
+      case decl_lessequal:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_subscript:
-        return n->subscriptF.type;
+      case decl_componentref:
+        return doGetLastOp (b, b->componentrefF.field);
         break;
 
-      case decl_procedure:
-        /* blocks.  */
-        return n->procedureF.returnType;
+      case decl_pointerref:
+        return doGetLastOp (b, b->pointerrefF.field);
         break;
 
-      case decl_throw:
-        return NULL;
+      case decl_cast:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_unreachable:
-        return NULL;
+      case decl_val:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_def:
-      case decl_imp:
-      case decl_module:
-      case decl_loop:
-      case decl_while:
-      case decl_for:
-      case decl_repeat:
-      case decl_if:
-      case decl_elsif:
-      case decl_assignment:
-        /* statements.  */
-        M2RTS_HALT (-1);
-        __builtin_unreachable ();
+      case decl_plus:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_plus:
       case decl_sub:
-      case decl_div:
-      case decl_mod:
-      case decl_mult:
-      case decl_divide:
-        /* expressions.  */
-        return doSetExprType (&n->binaryF.resultType, mixTypes (getExprType (n->binaryF.left), getExprType (n->binaryF.right)));
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_in:
-      case decl_and:
-      case decl_or:
-      case decl_equal:
-      case decl_notequal:
-      case decl_less:
-      case decl_greater:
-      case decl_greequal:
-      case decl_lessequal:
-        return doSetExprType (&n->binaryF.resultType, booleanN);
+      case decl_div:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_cmplx:
-        return doSetExprType (&n->binaryF.resultType, complexN);
+      case decl_mod:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_abs:
-      case decl_constexp:
-      case decl_deref:
-      case decl_neg:
-        return doSetExprType (&n->unaryF.resultType, getExprType (n->unaryF.arg));
+      case decl_mult:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_adr:
-        return doSetExprType (&n->unaryF.resultType, addressN);
+      case decl_divide:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_size:
-      case decl_tsize:
-        return doSetExprType (&n->unaryF.resultType, cardinalN);
+      case decl_in:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_high:
-      case decl_ord:
-        return doSetExprType (&n->unaryF.resultType, cardinalN);
+      case decl_and:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_float:
-        return doSetExprType (&n->unaryF.resultType, realN);
+      case decl_or:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_trunc:
-        return doSetExprType (&n->unaryF.resultType, integerN);
+      case decl_cmplx:
+        return doGetLastOp (b, b->binaryF.right);
         break;
 
-      case decl_chr:
-        return doSetExprType (&n->unaryF.resultType, charN);
+      case decl_literal:
+        return a;
         break;
 
-      case decl_cap:
-        return doSetExprType (&n->unaryF.resultType, charN);
+      case decl_const:
+        return a;
         break;
 
-      case decl_not:
-        return doSetExprType (&n->unaryF.resultType, booleanN);
+      case decl_enumerationfield:
+        return a;
         break;
 
-      case decl_re:
-        return doSetExprType (&n->unaryF.resultType, realN);
+      case decl_string:
+        return a;
         break;
 
-      case decl_im:
-        return doSetExprType (&n->unaryF.resultType, realN);
+      case decl_max:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_arrayref:
-        return n->arrayrefF.resultType;
+      case decl_min:
+        return doGetLastOp (b, b->unaryF.arg);
         break;
 
-      case decl_componentref:
-        return n->componentrefF.resultType;
+      case decl_var:
+        return a;
         break;
 
-      case decl_pointerref:
-        return n->pointerrefF.resultType;
+      case decl_arrayref:
+        return a;
         break;
 
       case decl_funccall:
-        return doSetExprType (&n->funccallF.type, doGetFuncType (n));
+        return a;
         break;
 
-      case decl_setvalue:
-        return n->setvalueF.type;
+      case decl_procedure:
+        return a;
+        break;
+
+      case decl_recordfield:
+        return a;
         break;
 
 
@@ -9395,424 +9083,635 @@ static decl_node doGetExprType (decl_node n)
         CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
         __builtin_unreachable ();
     }
-  M2RTS_HALT (-1);
-  __builtin_unreachable ();
-  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
+  /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   getExprType - return the expression type.
+   doComponentRefC -
+*/
+
+static void doComponentRefC (mcPretty_pretty p, decl_node__opaque l, decl_node__opaque r)
+{
+  flushOpaque (p, l, false);
+  outText (p, (const char *) ".", 1);
+  doExprC (p, r);
+}
+
+
+/*
+   doPointerRefC -
+*/
+
+static void doPointerRefC (mcPretty_pretty p, decl_node__opaque l, decl_node__opaque r)
+{
+  flushOpaque (p, l, false);
+  outText (p, (const char *) "->", 2);
+  doExprC (p, r);
+}
+
+
+/*
+   doPreBinary -
 */
 
-static decl_node getExprType (decl_node n)
+static void doPreBinary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node__opaque left, decl_node__opaque right, bool l, bool r)
 {
-  decl_node t;
+  char op[_op_high+1];
+
+  /* make a local copy of each unbounded array.  */
+  memcpy (op, op_, _op_high+1);
 
-  if (((isFuncCall (n)) && ((decl_getType (n)) != NULL)) && (decl_isProcType (decl_skipType (decl_getType (n)))))
+  if (l)
     {
-      return decl_getType (decl_skipType (decl_getType (n)));
+      mcPretty_setNeedSpace (p);
     }
-  t = decl_getType (n);
-  if (t == NULL)
+  outText (p, (const char *) op, _op_high);
+  if (r)
     {
-      t = doGetExprType (n);
+      mcPretty_setNeedSpace (p);
     }
-  return t;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  outText (p, (const char *) "(", 1);
+  doExprC (p, left);
+  outText (p, (const char *) ",", 1);
+  mcPretty_setNeedSpace (p);
+  doExprC (p, right);
+  outText (p, (const char *) ")", 1);
 }
 
 
 /*
-   openOutput -
+   doConstExpr -
 */
 
-static void openOutput (void)
+static void doConstExpr (mcPretty_pretty p, decl_node__opaque n)
 {
-  DynamicStrings_String s;
+  doFQNameC (p, n);
+}
 
-  s = mcOptions_getOutputFile ();
-  if (DynamicStrings_EqualArray (s, (const char *) "-", 1))
-    {
-      outputFile = FIO_StdOut;
-    }
-  else
+
+/*
+   doEnumerationField -
+*/
+
+static void doEnumerationField (mcPretty_pretty p, decl_node__opaque n)
+{
+  doFQDNameC (p, n, false);
+}
+
+
+/*
+   isZero - returns TRUE if node, n, is zero.
+*/
+
+static bool isZero (decl_node__opaque n)
+{
+  if (isConstExp (n))
     {
-      outputFile = SFIO_OpenToWrite (s);
+      return isZero (n->unaryF.arg);
     }
-  mcStream_setDest (outputFile);
+  return (decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "0", 1));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   closeOutput -
+   doArrayRef - perform an array reference.  If constCast
+                then an unbounded array access will be const_cast
+                (the constCast should be TRUE if an assignment to
+                the array is required).
 */
 
-static void closeOutput (void)
+static void doArrayRef (mcPretty_pretty p, decl_node__opaque n, bool constCast)
 {
-  DynamicStrings_String s;
+  decl_node__opaque type;
+  decl_node__opaque v;
+  unsigned int i;
+  unsigned int c;
 
-  s = mcOptions_getOutputFile ();
-  outputFile = mcStream_combine ();
-  if (! (DynamicStrings_EqualArray (s, (const char *) "-", 1)))
+  mcDebug_assert (n != NULL);
+  mcDebug_assert (isArrayRef (n));
+  type = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (n->arrayrefF.array))));
+  if (decl_isUnbounded (static_cast<decl_node> (type)))
     {
-      FIO_Close (outputFile);
+      v = n->arrayrefF.array;
+      if ((constCast && (decl_isVar (static_cast<decl_node> (n->arrayrefF.array)))) && (v->varF.isParameter || v->varF.isVarParameter))
+        {
+          outText (p, (const char *) "const_cast<", 11);
+          doTypeNameC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (v))));
+          outText (p, (const char *) ">(", 2);
+          outTextN (p, decl_getSymName (static_cast<decl_node> (n->arrayrefF.array)));
+          outText (p, (const char *) ")", 1);
+        }
+      else
+        {
+          outTextN (p, decl_getSymName (static_cast<decl_node> (n->arrayrefF.array)));
+        }
+    }
+  else
+    {
+      doExprC (p, n->arrayrefF.array);
+      mcDebug_assert (decl_isArray (static_cast<decl_node> (type)));
+      outText (p, (const char *) ".array", 6);
+    }
+  outText (p, (const char *) "[", 1);
+  i = 1;
+  c = expListLen (n->arrayrefF.index);
+  while (i <= c)
+    {
+      doExprC (p, getExpList (n->arrayrefF.index, i));
+      if (decl_isUnbounded (static_cast<decl_node> (type)))
+        {
+          mcDebug_assert (c == 1);
+        }
+      else
+        {
+          doSubtractC (p, getMin (type->arrayF.subr));
+          if (i < c)
+            {
+              mcDebug_assert (decl_isArray (static_cast<decl_node> (type)));
+              outText (p, (const char *) "].array[", 8);
+              type = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (type))));
+            }
+        }
+      i += 1;
     }
+  outText (p, (const char *) "]", 1);
 }
 
 
 /*
-   write - outputs a single char, ch.
+   doProcedure -
 */
 
-static void write_ (char ch)
+static void doProcedure (mcPretty_pretty p, decl_node__opaque n)
 {
-  FIO_WriteChar (outputFile, ch);
-  FIO_FlushBuffer (outputFile);
+  mcDebug_assert (decl_isProcedure (static_cast<decl_node> (n)));
+  doFQDNameC (p, n, true);
 }
 
 
 /*
-   writeln -
+   doRecordfield -
 */
 
-static void writeln (void)
+static void doRecordfield (mcPretty_pretty p, decl_node__opaque n)
 {
-  FIO_WriteLine (outputFile);
-  FIO_FlushBuffer (outputFile);
+  doDNameC (p, n, false);
 }
 
 
 /*
-   doIncludeC - include header file for definition module, n.
+   doCastC -
 */
 
-static void doIncludeC (decl_node n)
+static void doCastC (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque e)
 {
-  DynamicStrings_String s;
+  decl_node__opaque et;
 
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-  if (mcOptions_getExtendedOpaque ())
-    {}  /* empty.  */
-  /* no include in this case.  */
-  else if (decl_isDef (n))
+  outText (p, (const char *) "(", 1);
+  doTypeNameC (p, t);
+  outText (p, (const char *) ")", 1);
+  mcPretty_setNeedSpace (p);
+  et = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (e))));
+  if (((et != NULL) && (isAProcType (et))) && (isAProcType (static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (t))))))
     {
-      /* avoid dangling else.  */
-      mcPretty_print (doP, (const char *) "#   include \"", 13);
-      mcPretty_prints (doP, mcOptions_getHPrefix ());
-      mcPretty_prints (doP, s);
-      mcPretty_print (doP, (const char *) ".h\"\\n", 5);
-      symbolKey_foreachNodeDo (n->defF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDoneDef});
+      outText (p, (const char *) "{(", 2);
+      doFQNameC (p, t);
+      outText (p, (const char *) "_t)", 3);
+      mcPretty_setNeedSpace (p);
+      doExprC (p, e);
+      outText (p, (const char *) ".proc}", 6);
+    }
+  else
+    {
+      outText (p, (const char *) "(", 1);
+      doExprC (p, e);
+      outText (p, (const char *) ")", 1);
     }
-  s = DynamicStrings_KillString (s);
 }
 
 
 /*
-   getSymScope - returns the scope where node, n, was declared.
+   doSetValueC -
 */
 
-static decl_node getSymScope (decl_node n)
+static void doSetValueC (mcPretty_pretty p, decl_node__opaque n)
 {
-  switch (n->kind)
-    {
-      case decl_const:
-        return n->constF.scope;
-        break;
-
-      case decl_type:
-        return n->typeF.scope;
-        break;
-
-      case decl_var:
-        return n->varF.scope;
-        break;
-
-      case decl_procedure:
-        return n->procedureF.scope;
-        break;
-
+  decl_node__opaque lo;
+  unsigned int i;
+  unsigned int h;
 
-      default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
+  mcDebug_assert (decl_isSetValue (static_cast<decl_node> (n)));
+  lo = getSetLow (n);
+  if (n->setvalueF.type != NULL)
+    {
+      outText (p, (const char *) "(", 1);
+      doTypeNameC (p, n->setvalueF.type);
+      mcPretty_noSpace (p);
+      outText (p, (const char *) ")", 1);
+      mcPretty_setNeedSpace (p);
+    }
+  if ((Indexing_HighIndice (n->setvalueF.values)) == 0)
+    {
+      outText (p, (const char *) "0", 1);
+    }
+  else
+    {
+      i = Indexing_LowIndice (n->setvalueF.values);
+      h = Indexing_HighIndice (n->setvalueF.values);
+      outText (p, (const char *) "(", 1);
+      while (i <= h)
+        {
+          outText (p, (const char *) "(1", 2);
+          mcPretty_setNeedSpace (p);
+          outText (p, (const char *) "<<", 2);
+          mcPretty_setNeedSpace (p);
+          outText (p, (const char *) "(", 1);
+          doExprC (p, static_cast<decl_node__opaque> (Indexing_GetIndice (n->setvalueF.values, i)));
+          doSubtractC (p, lo);
+          outText (p, (const char *) ")", 1);
+          outText (p, (const char *) ")", 1);
+          if (i < h)
+            {
+              mcPretty_setNeedSpace (p);
+              outText (p, (const char *) "|", 1);
+              mcPretty_setNeedSpace (p);
+            }
+          i += 1;
+        }
+      outText (p, (const char *) ")", 1);
     }
-  M2RTS_HALT (-1);
-  __builtin_unreachable ();
-  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
-  __builtin_unreachable ();
 }
 
 
 /*
-   isQualifiedForced - should the node be written with a module prefix?
+   getSetLow - returns the low value of the set type from
+               expression, n.
 */
 
-static bool isQualifiedForced (decl_node n)
+static decl_node__opaque getSetLow (decl_node__opaque n)
 {
-  return forceQualified && (((((decl_isType (n)) || (decl_isRecord (n))) || (decl_isArray (n))) || (decl_isEnumeration (n))) || (decl_isEnumerationField (n)));
+  decl_node__opaque type;
+
+  if ((decl_getType (static_cast<decl_node> (n))) == NULL)
+    {
+      return static_cast<decl_node__opaque> (decl_makeLiteralInt (nameKey_makeKey ((const char *) "0", 1)));
+    }
+  else
+    {
+      type = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (n))));
+      if (decl_isSet (static_cast<decl_node> (type)))
+        {
+          return getMin (static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (type)))));
+        }
+      else
+        {
+          return static_cast<decl_node__opaque> (decl_makeLiteralInt (nameKey_makeKey ((const char *) "0", 1)));
+        }
+    }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   getFQstring -
+   doInC - performs (((1 << (l)) & (r)) != 0)
 */
 
-static DynamicStrings_String getFQstring (decl_node n)
+static void doInC (mcPretty_pretty p, decl_node__opaque l, decl_node__opaque r)
 {
-  DynamicStrings_String i;
-  DynamicStrings_String s;
+  decl_node__opaque lo;
 
-  if ((decl_getScope (n)) == NULL)
-    {
-      return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-    }
-  else if (isQualifiedForced (n))
-    {
-      /* avoid dangling else.  */
-      i = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-      s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (decl_getScope (n))));
-      return FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) "%s_%s", 5), (const unsigned char *) &s, (sizeof (s)-1), (const unsigned char *) &i, (sizeof (i)-1));
-    }
-  else if ((! (decl_isExported (n))) || (mcOptions_getIgnoreFQ ()))
-    {
-      /* avoid dangling else.  */
-      return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-    }
-  else
-    {
-      /* avoid dangling else.  */
-      i = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-      s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (decl_getScope (n))));
-      return FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) "%s_%s", 5), (const unsigned char *) &s, (sizeof (s)-1), (const unsigned char *) &i, (sizeof (i)-1));
-    }
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  lo = getSetLow (r);
+  outText (p, (const char *) "(((1", 4);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "<<", 2);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "(", 1);
+  doExprC (p, l);
+  doSubtractC (p, lo);
+  outText (p, (const char *) "))", 2);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "&", 1);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "(", 1);
+  doExprC (p, r);
+  outText (p, (const char *) "))", 2);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "!=", 2);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "0)", 2);
 }
 
 
 /*
-   getFQDstring -
+   doThrowC -
 */
 
-static DynamicStrings_String getFQDstring (decl_node n, bool scopes)
+static void doThrowC (mcPretty_pretty p, decl_node__opaque n)
 {
-  DynamicStrings_String i;
-  DynamicStrings_String s;
-
-  if ((decl_getScope (n)) == NULL)
-    {
-      return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (getDName (n, scopes)));
-    }
-  else if (isQualifiedForced (n))
-    {
-      /* avoid dangling else.  */
-      /* we assume a qualified name will never conflict.  */
-      i = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-      s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (decl_getScope (n))));
-      return FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) "%s_%s", 5), (const unsigned char *) &s, (sizeof (s)-1), (const unsigned char *) &i, (sizeof (i)-1));
-    }
-  else if ((! (decl_isExported (n))) || (mcOptions_getIgnoreFQ ()))
-    {
-      /* avoid dangling else.  */
-      return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (getDName (n, scopes)));
-    }
-  else
+  mcDebug_assert (isIntrinsic (n));
+  outText (p, (const char *) "throw", 5);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "(", 1);
+  if ((expListLen (n->intrinsicF.args)) == 1)
     {
-      /* avoid dangling else.  */
-      /* we assume a qualified name will never conflict.  */
-      i = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-      s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (decl_getScope (n))));
-      return FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) "%s_%s", 5), (const unsigned char *) &s, (sizeof (s)-1), (const unsigned char *) &i, (sizeof (i)-1));
+      doExprC (p, getExpList (n->intrinsicF.args, 1));
     }
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  outText (p, (const char *) ")", 1);
 }
 
 
 /*
-   getString - returns the name as a string.
+   doUnreachableC -
 */
 
-static DynamicStrings_String getString (decl_node n)
+static void doUnreachableC (mcPretty_pretty p, decl_node__opaque n)
 {
-  if ((decl_getSymName (n)) == nameKey_NulName)
-    {
-      return DynamicStrings_InitString ((const char *) "", 0);
-    }
-  else
-    {
-      return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-    }
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
+  mcDebug_assert (isIntrinsic (n));
+  outText (p, (const char *) "__builtin_unreachable", 21);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "(", 1);
+  mcDebug_assert ((expListLen (n->intrinsicF.args)) == 0);
+  outText (p, (const char *) ")", 1);
 }
 
 
 /*
-   doNone - call HALT.
+   outNull -
 */
 
-static void doNone (decl_node n)
+static void outNull (mcPretty_pretty p)
 {
-  M2RTS_HALT (-1);
-  __builtin_unreachable ();
+  keyc_useNull ();
+  outText (p, (const char *) "NULL", 4);
 }
 
 
 /*
-   doNothing - does nothing!
+   outTrue -
 */
 
-static void doNothing (decl_node n)
+static void outTrue (mcPretty_pretty p)
 {
+  keyc_useTrue ();
+  if ((mcOptions_useBool ()) && (lang == decl_ansiCP))
+    {
+      outText (p, (const char *) "true", 4);
+    }
+  else
+    {
+      outText (p, (const char *) "TRUE", 4);
+    }
 }
 
 
 /*
-   doConstC -
+   outFalse -
 */
 
-static void doConstC (decl_node n)
+static void outFalse (mcPretty_pretty p)
 {
-  if (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n))))
+  keyc_useFalse ();
+  if ((mcOptions_useBool ()) && (lang == decl_ansiCP))
     {
-      mcPretty_print (doP, (const char *) "#   define ", 11);
-      doFQNameC (doP, n);
-      mcPretty_setNeedSpace (doP);
-      doExprC (doP, n->constF.value);
-      mcPretty_print (doP, (const char *) "\\n", 2);
-      alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (n));
+      outText (p, (const char *) "false", 5);
+    }
+  else
+    {
+      outText (p, (const char *) "FALSE", 5);
     }
 }
 
 
 /*
-   needsParen - returns TRUE if expression, n, needs to be enclosed in ().
+   doExprC -
 */
 
-static bool needsParen (decl_node n)
+static void doExprC (mcPretty_pretty p, decl_node__opaque n)
 {
+  decl_node__opaque t;
+
   mcDebug_assert (n != NULL);
+  t = getExprType (n);
   switch (n->kind)
     {
       case decl_nil:
+        outNull (p);
+        break;
+
       case decl_true:
+        outTrue (p);
+        break;
+
       case decl_false:
-        return false;
+        outFalse (p);
         break;
 
       case decl_constexp:
-        return needsParen (n->unaryF.arg);
+        doUnary (p, (const char *) "", 0, n->unaryF.arg, n->unaryF.resultType, false, false);
         break;
 
       case decl_neg:
-        return needsParen (n->unaryF.arg);
+        doUnary (p, (const char *) "-", 1, n->unaryF.arg, n->unaryF.resultType, false, false);
         break;
 
       case decl_not:
-        return needsParen (n->unaryF.arg);
+        doUnary (p, (const char *) "!", 1, n->unaryF.arg, n->unaryF.resultType, false, true);
+        break;
+
+      case decl_val:
+        doValC (p, n);
         break;
 
       case decl_adr:
+        doAdrC (p, n);
+        break;
+
       case decl_size:
       case decl_tsize:
-      case decl_ord:
+        doSizeC (p, n);
+        break;
+
       case decl_float:
+        doConvertSC (p, n, mcOptions_getCRealType ());
+        break;
+
       case decl_trunc:
+        doConvertC (p, n, (const char *) "int", 3);
+        break;
+
+      case decl_ord:
+        doConvertC (p, n, (const char *) "unsigned int", 12);
+        break;
+
       case decl_chr:
+        doConvertC (p, n, (const char *) "char", 4);
+        break;
+
       case decl_cap:
+        doCapC (p, n);
+        break;
+
+      case decl_abs:
+        doAbsC (p, n);
+        break;
+
       case decl_high:
-        return false;
+        doFuncHighC (p, n->unaryF.arg);
+        break;
+
+      case decl_length:
+        doLengthC (p, n);
+        break;
+
+      case decl_min:
+        doMinC (p, n);
+        break;
+
+      case decl_max:
+        doMaxC (p, n);
+        break;
+
+      case decl_throw:
+        doThrowC (p, n);
+        break;
+
+      case decl_unreachable:
+        doUnreachableC (p, n);
+        break;
+
+      case decl_re:
+        doReC (p, n);
+        break;
+
+      case decl_im:
+        doImC (p, n);
+        break;
+
+      case decl_cmplx:
+        doCmplx (p, n);
         break;
 
       case decl_deref:
-        return false;
+        n->unaryF.arg = doDeRefC (p, n->unaryF.arg);
         break;
 
       case decl_equal:
+        doBinary (p, (const char *) "==", 2, n->binaryF.left, n->binaryF.right, true, true, true);
+        break;
+
       case decl_notequal:
+        doBinary (p, (const char *) "!=", 2, n->binaryF.left, n->binaryF.right, true, true, true);
+        break;
+
       case decl_less:
+        doBinary (p, (const char *) "<", 1, n->binaryF.left, n->binaryF.right, true, true, false);
+        break;
+
       case decl_greater:
+        doBinary (p, (const char *) ">", 1, n->binaryF.left, n->binaryF.right, true, true, false);
+        break;
+
       case decl_greequal:
+        doBinary (p, (const char *) ">=", 2, n->binaryF.left, n->binaryF.right, true, true, false);
+        break;
+
       case decl_lessequal:
-        return true;
+        doBinary (p, (const char *) "<=", 2, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
       case decl_componentref:
-        return false;
+        doComponentRefC (p, n->componentrefF.rec, n->componentrefF.field);
         break;
 
       case decl_pointerref:
-        return false;
+        doPointerRefC (p, n->pointerrefF.ptr, n->pointerrefF.field);
+        break;
+
+      case decl_cast:
+        doCastC (p, n->binaryF.left, n->binaryF.right);
+        break;
+
+      case decl_plus:
+        doPolyBinary (p, decl_plus, n->binaryF.left, n->binaryF.right, false, false);
+        break;
+
+      case decl_sub:
+        doPolyBinary (p, decl_sub, n->binaryF.left, n->binaryF.right, false, false);
+        break;
+
+      case decl_div:
+        doBinary (p, (const char *) "/", 1, n->binaryF.left, n->binaryF.right, true, true, false);
+        break;
+
+      case decl_mod:
+        doBinary (p, (const char *) "%", 1, n->binaryF.left, n->binaryF.right, true, true, false);
+        break;
+
+      case decl_mult:
+        doPolyBinary (p, decl_mult, n->binaryF.left, n->binaryF.right, false, false);
+        break;
+
+      case decl_divide:
+        doPolyBinary (p, decl_divide, n->binaryF.left, n->binaryF.right, false, false);
         break;
 
-      case decl_cast:
-        return true;
+      case decl_in:
+        doInC (p, n->binaryF.left, n->binaryF.right);
         break;
 
-      case decl_val:
-        return true;
+      case decl_and:
+        doBinary (p, (const char *) "&&", 2, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
-      case decl_abs:
-        return false;
+      case decl_or:
+        doBinary (p, (const char *) "||", 2, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
-      case decl_plus:
-      case decl_sub:
-      case decl_div:
-      case decl_mod:
-      case decl_mult:
-      case decl_divide:
-      case decl_in:
-        return true;
+      case decl_literal:
+        doLiteralC (p, n);
         break;
 
-      case decl_literal:
       case decl_const:
-      case decl_enumerationfield:
-      case decl_string:
-        return false;
+        doConstExpr (p, n);
         break;
 
-      case decl_max:
-        return true;
+      case decl_enumerationfield:
+        doEnumerationField (p, n);
         break;
 
-      case decl_min:
-        return true;
+      case decl_string:
+        doStringC (p, n);
         break;
 
       case decl_var:
-        return false;
+        doVar (p, n);
         break;
 
       case decl_arrayref:
-        return false;
+        doArrayRef (p, n, false);
         break;
 
-      case decl_and:
-      case decl_or:
-        return true;
+      case decl_funccall:
+        doFuncExprC (p, n);
         break;
 
-      case decl_funccall:
-        return true;
+      case decl_procedure:
+        doProcedure (p, n);
         break;
 
       case decl_recordfield:
-        return false;
+        doRecordfield (p, n);
+        break;
+
+      case decl_setvalue:
+        doSetValueC (p, n);
         break;
 
-      case decl_loc:
-      case decl_byte:
-      case decl_word:
-      case decl_type:
       case decl_char:
       case decl_cardinal:
       case decl_longcard:
@@ -9820,448 +9719,248 @@ static bool needsParen (decl_node n)
       case decl_integer:
       case decl_longint:
       case decl_shortint:
-      case decl_real:
-      case decl_longreal:
-      case decl_shortreal:
       case decl_complex:
       case decl_longcomplex:
       case decl_shortcomplex:
+      case decl_real:
+      case decl_longreal:
+      case decl_shortreal:
       case decl_bitset:
       case decl_boolean:
       case decl_proc:
-        return false;
-        break;
-
-      case decl_setvalue:
-        return false;
+        doBaseC (p, n);
         break;
 
       case decl_address:
-        return true;
-        break;
-
-      case decl_procedure:
-        return false;
-        break;
-
-      case decl_length:
-      case decl_cmplx:
-      case decl_re:
-      case decl_im:
-        return true;
-        break;
-
-
-      default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
-    }
-  return true;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
-
-/*
-   doUnary -
-*/
-
-static void doUnary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node expr, decl_node type, bool l, bool r)
-{
-  char op[_op_high+1];
-
-  /* make a local copy of each unbounded array.  */
-  memcpy (op, op_, _op_high+1);
-
-  if (l)
-    {
-      mcPretty_setNeedSpace (p);
-    }
-  mcPretty_print (p, (const char *) op, _op_high);
-  if (r)
-    {
-      mcPretty_setNeedSpace (p);
-    }
-  if (needsParen (expr))
-    {
-      outText (p, (const char *) "(", 1);
-      doExprC (p, expr);
-      outText (p, (const char *) ")", 1);
-    }
-  else
-    {
-      doExprC (p, expr);
-    }
-}
-
-
-/*
-   doSetSub - perform  l & (~ r)
-*/
-
-static void doSetSub (mcPretty_pretty p, decl_node left, decl_node right)
-{
-  if (needsParen (left))
-    {
-      outText (p, (const char *) "(", 1);
-      doExprC (p, left);
-      outText (p, (const char *) ")", 1);
-    }
-  else
-    {
-      doExprC (p, left);
-    }
-  mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "&", 1);
-  mcPretty_setNeedSpace (p);
-  if (needsParen (right))
-    {
-      outText (p, (const char *) "(~(", 3);
-      doExprC (p, right);
-      outText (p, (const char *) "))", 2);
-    }
-  else
-    {
-      outText (p, (const char *) "(~", 2);
-      doExprC (p, right);
-      outText (p, (const char *) ")", 1);
-    }
-}
-
-
-/*
-   doPolyBinary -
-*/
-
-static void doPolyBinary (mcPretty_pretty p, decl_nodeT op, decl_node left, decl_node right, bool l, bool r)
-{
-  decl_node lt;
-  decl_node rt;
-
-  lt = decl_skipType (getExprType (left));
-  rt = decl_skipType (getExprType (right));
-  if (((lt != NULL) && ((decl_isSet (lt)) || (isBitset (lt)))) || ((rt != NULL) && ((decl_isSet (rt)) || (isBitset (rt)))))
-    {
-      switch (op)
-        {
-          case decl_plus:
-            doBinary (p, (const char *) "|", 1, left, right, l, r, false);
-            break;
-
-          case decl_sub:
-            doSetSub (p, left, right);
-            break;
-
-          case decl_mult:
-            doBinary (p, (const char *) "&", 1, left, right, l, r, false);
-            break;
-
-          case decl_divide:
-            doBinary (p, (const char *) "^", 1, left, right, l, r, false);
-            break;
-
-
-          default:
-            CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-            __builtin_unreachable ();
-        }
-    }
-  else
-    {
-      switch (op)
-        {
-          case decl_plus:
-            doBinary (p, (const char *) "+", 1, left, right, l, r, false);
-            break;
-
-          case decl_sub:
-            doBinary (p, (const char *) "-", 1, left, right, l, r, false);
-            break;
-
-          case decl_mult:
-            doBinary (p, (const char *) "*", 1, left, right, l, r, false);
-            break;
-
-          case decl_divide:
-            doBinary (p, (const char *) "/", 1, left, right, l, r, false);
-            break;
-
-
-          default:
-            CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-            __builtin_unreachable ();
-        }
-    }
-}
-
-
-/*
-   doBinary -
-*/
-
-static void doBinary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node left, decl_node right, bool l, bool r, bool unpackProc)
-{
-  char op[_op_high+1];
-
-  /* make a local copy of each unbounded array.  */
-  memcpy (op, op_, _op_high+1);
-
-  if (needsParen (left))
-    {
-      outText (p, (const char *) "(", 1);
-      doExprCup (p, left, unpackProc);
-      outText (p, (const char *) ")", 1);
-    }
-  else
-    {
-      doExprCup (p, left, unpackProc);
-    }
-  if (l)
-    {
-      mcPretty_setNeedSpace (p);
-    }
-  outText (p, (const char *) op, _op_high);
-  if (r)
-    {
-      mcPretty_setNeedSpace (p);
-    }
-  if (needsParen (right))
-    {
-      outText (p, (const char *) "(", 1);
-      doExprCup (p, right, unpackProc);
-      outText (p, (const char *) ")", 1);
-    }
-  else
-    {
-      doExprCup (p, right, unpackProc);
-    }
-}
-
+      case decl_loc:
+      case decl_byte:
+      case decl_word:
+      case decl_csizet:
+      case decl_cssizet:
+        doSystemC (p, n);
+        break;
 
-/*
-   doPostUnary -
-*/
+      case decl_type:
+        doTypeNameC (p, n);
+        break;
 
-static void doPostUnary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node expr)
-{
-  char op[_op_high+1];
+      case decl_pointer:
+        doTypeNameC (p, n);
+        break;
 
-  /* make a local copy of each unbounded array.  */
-  memcpy (op, op_, _op_high+1);
 
-  doExprC (p, expr);
-  outText (p, (const char *) op, _op_high);
+      default:
+        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        __builtin_unreachable ();
+    }
 }
 
 
 /*
-   doDeRefC -
+   doExprCup -
 */
 
-static void doDeRefC (mcPretty_pretty p, decl_node expr)
+static decl_node__opaque doExprCup (mcPretty_pretty p, decl_node__opaque n, bool unpackProc, bool uncastConst)
 {
-  outText (p, (const char *) "(*", 2);
-  doExprC (p, expr);
-  outText (p, (const char *) ")", 1);
+  decl_node__opaque type;
+
+  if (uncastConst && (isArrayRef (n)))
+    {
+      doArrayRef (p, n, true);
+    }
+  else
+    {
+      doExprC (p, n);
+      if (unpackProc)
+        {
+          type = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (getExprType (n))));
+          if ((type != NULL) && (isAProcType (type)))
+            {
+              outText (p, (const char *) ".proc", 5);
+            }
+        }
+    }
+  return n;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   doGetLastOp - returns, a, if b is a terminal otherwise walk right.
+   doExprM2 -
 */
 
-static decl_node doGetLastOp (decl_node a, decl_node b)
+static void doExprM2 (mcPretty_pretty p, decl_node__opaque n)
 {
-  switch (b->kind)
+  mcDebug_assert (n != NULL);
+  switch (n->kind)
     {
       case decl_nil:
-        return a;
+        outText (p, (const char *) "NIL", 3);
         break;
 
       case decl_true:
-        return a;
+        outText (p, (const char *) "TRUE", 4);
         break;
 
       case decl_false:
-        return a;
+        outText (p, (const char *) "FALSE", 5);
         break;
 
       case decl_constexp:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "", 0, n->unaryF.arg, n->unaryF.resultType, false, false);
         break;
 
       case decl_neg:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "-", 1, n->unaryF.arg, n->unaryF.resultType, false, false);
         break;
 
       case decl_not:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "NOT", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
       case decl_adr:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "ADR", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
       case decl_size:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "SIZE", 4, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
       case decl_tsize:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "TSIZE", 5, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
-      case decl_ord:
-        return doGetLastOp (b, b->unaryF.arg);
+      case decl_float:
+        doUnary (p, (const char *) "FLOAT", 5, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
-      case decl_float:
       case decl_trunc:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "TRUNC", 5, n->unaryF.arg, n->unaryF.resultType, true, true);
+        break;
+
+      case decl_ord:
+        doUnary (p, (const char *) "ORD", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
       case decl_chr:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "CHR", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
       case decl_cap:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "CAP", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
       case decl_high:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "HIGH", 4, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
-      case decl_deref:
-        return doGetLastOp (b, b->unaryF.arg);
+      case decl_re:
+        doUnary (p, (const char *) "RE", 2, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
-      case decl_re:
       case decl_im:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "IM", 2, n->unaryF.arg, n->unaryF.resultType, true, true);
+        break;
+
+      case decl_deref:
+        doPostUnary (p, (const char *) "^", 1, n->unaryF.arg);
         break;
 
       case decl_equal:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) "=", 1, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
       case decl_notequal:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) "#", 1, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
       case decl_less:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) "<", 1, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
       case decl_greater:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) ">", 1, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
       case decl_greequal:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) ">=", 2, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
       case decl_lessequal:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) "<=", 2, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
       case decl_componentref:
-        return doGetLastOp (b, b->componentrefF.field);
+        doBinary (p, (const char *) ".", 1, n->componentrefF.rec, n->componentrefF.field, false, false, false);
         break;
 
       case decl_pointerref:
-        return doGetLastOp (b, b->pointerrefF.field);
+        doBinary (p, (const char *) "^.", 2, n->pointerrefF.ptr, n->pointerrefF.field, false, false, false);
         break;
 
       case decl_cast:
-        return doGetLastOp (b, b->binaryF.right);
+        doPreBinary (p, (const char *) "CAST", 4, n->binaryF.left, n->binaryF.right, true, true);
         break;
 
       case decl_val:
-        return doGetLastOp (b, b->binaryF.right);
+        doPreBinary (p, (const char *) "VAL", 3, n->binaryF.left, n->binaryF.right, true, true);
+        break;
+
+      case decl_cmplx:
+        doPreBinary (p, (const char *) "CMPLX", 5, n->binaryF.left, n->binaryF.right, true, true);
         break;
 
       case decl_plus:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) "+", 1, n->binaryF.left, n->binaryF.right, false, false, false);
         break;
 
       case decl_sub:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) "-", 1, n->binaryF.left, n->binaryF.right, false, false, false);
         break;
 
       case decl_div:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) "DIV", 3, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
       case decl_mod:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) "MOD", 3, n->binaryF.left, n->binaryF.right, true, true, false);
         break;
 
       case decl_mult:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) "*", 1, n->binaryF.left, n->binaryF.right, false, false, false);
         break;
 
       case decl_divide:
-        return doGetLastOp (b, b->binaryF.right);
-        break;
-
-      case decl_in:
-        return doGetLastOp (b, b->binaryF.right);
-        break;
-
-      case decl_and:
-        return doGetLastOp (b, b->binaryF.right);
-        break;
-
-      case decl_or:
-        return doGetLastOp (b, b->binaryF.right);
-        break;
-
-      case decl_cmplx:
-        return doGetLastOp (b, b->binaryF.right);
+        doBinary (p, (const char *) "/", 1, n->binaryF.left, n->binaryF.right, false, false, false);
         break;
 
       case decl_literal:
-        return a;
+        doLiteral (p, n);
         break;
 
       case decl_const:
-        return a;
+        doConstExpr (p, n);
         break;
 
       case decl_enumerationfield:
-        return a;
+        doEnumerationField (p, n);
         break;
 
       case decl_string:
-        return a;
+        doString (p, n);
         break;
 
       case decl_max:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "MAX", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
       case decl_min:
-        return doGetLastOp (b, b->unaryF.arg);
+        doUnary (p, (const char *) "MIN", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
         break;
 
       case decl_var:
-        return a;
-        break;
-
-      case decl_arrayref:
-        return a;
-        break;
-
-      case decl_funccall:
-        return a;
-        break;
-
-      case decl_procedure:
-        return a;
-        break;
-
-      case decl_recordfield:
-        return a;
+        doVar (p, n);
         break;
 
 
@@ -10269,1478 +9968,1460 @@ static decl_node doGetLastOp (decl_node a, decl_node b)
         CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
         __builtin_unreachable ();
     }
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
-
-/*
-   doComponentRefC -
-*/
-
-static void doComponentRefC (mcPretty_pretty p, decl_node l, decl_node r)
-{
-  doExprC (p, l);
-  outText (p, (const char *) ".", 1);
-  doExprC (p, r);
-}
-
-
-/*
-   doPointerRefC -
-*/
-
-static void doPointerRefC (mcPretty_pretty p, decl_node l, decl_node r)
-{
-  doExprC (p, l);
-  outText (p, (const char *) "->", 2);
-  doExprC (p, r);
 }
 
 
 /*
-   doPreBinary -
+   doVar -
 */
 
-static void doPreBinary (mcPretty_pretty p, const char *op_, unsigned int _op_high, decl_node left, decl_node right, bool l, bool r)
+static void doVar (mcPretty_pretty p, decl_node__opaque n)
 {
-  char op[_op_high+1];
-
-  /* make a local copy of each unbounded array.  */
-  memcpy (op, op_, _op_high+1);
-
-  if (l)
-    {
-      mcPretty_setNeedSpace (p);
-    }
-  outText (p, (const char *) op, _op_high);
-  if (r)
+  mcDebug_assert (decl_isVar (static_cast<decl_node> (n)));
+  if (n->varF.isVarParameter)
     {
-      mcPretty_setNeedSpace (p);
+      outText (p, (const char *) "(*", 2);
+      doFQDNameC (p, n, true);
+      outText (p, (const char *) ")", 1);
     }
-  outText (p, (const char *) "(", 1);
-  doExprC (p, left);
-  outText (p, (const char *) ",", 1);
-  mcPretty_setNeedSpace (p);
-  doExprC (p, right);
-  outText (p, (const char *) ")", 1);
-}
-
-
-/*
-   doConstExpr -
-*/
-
-static void doConstExpr (mcPretty_pretty p, decl_node n)
-{
-  doFQNameC (p, n);
-}
-
-
-/*
-   doEnumerationField -
-*/
-
-static void doEnumerationField (mcPretty_pretty p, decl_node n)
-{
-  doFQDNameC (p, n, false);
-}
-
-
-/*
-   isZero - returns TRUE if node, n, is zero.
-*/
-
-static bool isZero (decl_node n)
-{
-  if (isConstExp (n))
+  else
     {
-      return isZero (n->unaryF.arg);
+      doFQDNameC (p, n, true);
     }
-  return (decl_getSymName (n)) == (nameKey_makeKey ((const char *) "0", 1));
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
 }
 
 
 /*
-   doArrayRef -
+   doLiteralC -
 */
 
-static void doArrayRef (mcPretty_pretty p, decl_node n)
+static void doLiteralC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
-  unsigned int i;
-  unsigned int c;
+  DynamicStrings_String s;
 
-  mcDebug_assert (n != NULL);
-  mcDebug_assert (isArrayRef (n));
-  t = decl_skipType (decl_getType (n->arrayrefF.array));
-  if (decl_isUnbounded (t))
+  mcDebug_assert (decl_isLiteral (static_cast<decl_node> (n)));
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+  if (n->literalF.type == charN)
     {
-      outTextN (p, decl_getSymName (n->arrayrefF.array));
+      if ((DynamicStrings_char (s, -1)) == 'C')
+        {
+          s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1);
+          if ((DynamicStrings_char (s, 0)) != '0')
+            {
+              s = DynamicStrings_ConCat (DynamicStrings_InitString ((const char *) "0", 1), DynamicStrings_Mark (s));
+            }
+        }
+      outText (p, (const char *) "(char)", 6);
+      mcPretty_setNeedSpace (p);
     }
-  else
+  else if ((DynamicStrings_char (s, -1)) == 'H')
     {
-      doExprC (p, n->arrayrefF.array);
-      mcDebug_assert (decl_isArray (t));
-      outText (p, (const char *) ".array", 6);
+      /* avoid dangling else.  */
+      outText (p, (const char *) "0x", 2);
+      s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1);
     }
-  outText (p, (const char *) "[", 1);
-  i = 1;
-  c = expListLen (n->arrayrefF.index);
-  while (i <= c)
+  else if ((DynamicStrings_char (s, -1)) == 'B')
     {
-      doExprC (p, getExpList (n->arrayrefF.index, i));
-      if (decl_isUnbounded (t))
-        {
-          mcDebug_assert (c == 1);
-        }
-      else
+      /* avoid dangling else.  */
+      outText (p, (const char *) "0", 1);
+      s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1);
+    }
+  outTextS (p, s);
+  s = DynamicStrings_KillString (s);
+}
+
+
+/*
+   doLiteral -
+*/
+
+static void doLiteral (mcPretty_pretty p, decl_node__opaque n)
+{
+  DynamicStrings_String s;
+
+  mcDebug_assert (decl_isLiteral (static_cast<decl_node> (n)));
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+  if (n->literalF.type == charN)
+    {
+      if ((DynamicStrings_char (s, -1)) == 'C')
         {
-          doSubtractC (p, getMin (t->arrayF.subr));
-          if (i < c)
+          s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1);
+          if ((DynamicStrings_char (s, 0)) != '0')
             {
-              mcDebug_assert (decl_isArray (t));
-              outText (p, (const char *) "].array[", 8);
-              t = decl_skipType (decl_getType (t));
+              s = DynamicStrings_ConCat (DynamicStrings_InitString ((const char *) "0", 1), DynamicStrings_Mark (s));
             }
         }
-      i += 1;
+      outText (p, (const char *) "(char)", 6);
+      mcPretty_setNeedSpace (p);
     }
-  outText (p, (const char *) "]", 1);
+  outTextS (p, s);
+  s = DynamicStrings_KillString (s);
 }
 
 
 /*
-   doProcedure -
+   isString - returns TRUE if node, n, is a string.
 */
 
-static void doProcedure (mcPretty_pretty p, decl_node n)
+static bool isString (decl_node__opaque n)
 {
-  mcDebug_assert (decl_isProcedure (n));
-  doFQDNameC (p, n, true);
+  mcDebug_assert (n != NULL);
+  return n->kind == decl_string;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   doRecordfield -
+   doString -
 */
 
-static void doRecordfield (mcPretty_pretty p, decl_node n)
+static void doString (mcPretty_pretty p, decl_node__opaque n)
 {
-  doDNameC (p, n, false);
+  DynamicStrings_String s;
+
+  mcDebug_assert (isString (n));
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+  outTextS (p, s);
+  s = DynamicStrings_KillString (s);
+  /* 
+   IF DynamicStrings.Index (s, '"', 0)=-1
+   THEN
+      outText (p, '"') ;
+      outTextS (p, s) ;
+      outText (p, '"')
+   ELSIF DynamicStrings.Index (s, "'", 0)=-1
+   THEN
+      outText (p, '"') ;
+      outTextS (p, s) ;
+      outText (p, '"')
+   ELSE
+      metaError1 ('illegal string {%1k}', n)
+   END
+  */
+  M2RTS_HALT (-1);
+  __builtin_unreachable ();
 }
 
 
 /*
-   doCastC -
+   replaceChar - replace every occurance of, ch, by, a and return modified string, s.
 */
 
-static void doCastC (mcPretty_pretty p, decl_node t, decl_node e)
+static DynamicStrings_String replaceChar (DynamicStrings_String s, char ch, const char *a_, unsigned int _a_high)
 {
-  decl_node et;
+  int i;
+  char a[_a_high+1];
 
-  outText (p, (const char *) "(", 1);
-  doTypeNameC (p, t);
-  outText (p, (const char *) ")", 1);
-  mcPretty_setNeedSpace (p);
-  et = decl_skipType (decl_getType (e));
-  if (((et != NULL) && (isAProcType (et))) && (isAProcType (decl_skipType (t))))
-    {
-      outText (p, (const char *) "{(", 2);
-      doFQNameC (p, t);
-      outText (p, (const char *) "_t)", 3);
-      mcPretty_setNeedSpace (p);
-      doExprC (p, e);
-      outText (p, (const char *) ".proc}", 6);
-    }
-  else
-    {
-      outText (p, (const char *) "(", 1);
-      doExprC (p, e);
-      outText (p, (const char *) ")", 1);
-    }
+  /* make a local copy of each unbounded array.  */
+  memcpy (a, a_, _a_high+1);
+
+  i = 0;
+  for (;;)
+  {
+    i = DynamicStrings_Index (s, ch, static_cast<unsigned int> (i));
+    if (i == 0)
+      {
+        s = DynamicStrings_ConCat (DynamicStrings_InitString ((const char *) a, _a_high), DynamicStrings_Slice (s, 1, 0));
+        i = StrLib_StrLen ((const char *) a, _a_high);
+      }
+    else if (i > 0)
+      {
+        /* avoid dangling else.  */
+        s = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_Slice (s, 0, i), DynamicStrings_Mark (DynamicStrings_InitString ((const char *) a, _a_high))), DynamicStrings_Slice (s, i+1, 0));
+        i += StrLib_StrLen ((const char *) a, _a_high);
+      }
+    else
+      {
+        /* avoid dangling else.  */
+        return s;
+      }
+  }
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
+  __builtin_unreachable ();
 }
 
 
 /*
-   doSetValueC -
+   toCstring - translates string, n, into a C string
+               and returns the new String.
 */
 
-static void doSetValueC (mcPretty_pretty p, decl_node n)
+static DynamicStrings_String toCstring (nameKey_Name n)
 {
-  decl_node lo;
-  unsigned int i;
-  unsigned int h;
+  DynamicStrings_String s;
 
-  mcDebug_assert (decl_isSetValue (n));
-  lo = getSetLow (n);
-  if (n->setvalueF.type != NULL)
-    {
-      outText (p, (const char *) "(", 1);
-      doTypeNameC (p, n->setvalueF.type);
-      mcPretty_noSpace (p);
-      outText (p, (const char *) ")", 1);
-      mcPretty_setNeedSpace (p);
-    }
-  if ((Indexing_HighIndice (n->setvalueF.values)) == 0)
-    {
-      outText (p, (const char *) "0", 1);
-    }
-  else
-    {
-      i = Indexing_LowIndice (n->setvalueF.values);
-      h = Indexing_HighIndice (n->setvalueF.values);
-      outText (p, (const char *) "(", 1);
-      while (i <= h)
-        {
-          outText (p, (const char *) "(1", 2);
-          mcPretty_setNeedSpace (p);
-          outText (p, (const char *) "<<", 2);
-          mcPretty_setNeedSpace (p);
-          outText (p, (const char *) "(", 1);
-          doExprC (p, reinterpret_cast<decl_node> (Indexing_GetIndice (n->setvalueF.values, i)));
-          doSubtractC (p, lo);
-          outText (p, (const char *) ")", 1);
-          outText (p, (const char *) ")", 1);
-          if (i < h)
-            {
-              mcPretty_setNeedSpace (p);
-              outText (p, (const char *) "|", 1);
-              mcPretty_setNeedSpace (p);
-            }
-          i += 1;
-        }
-      outText (p, (const char *) ")", 1);
-    }
+  s = DynamicStrings_Slice (DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n)), 1, -1);
+  return replaceChar (replaceChar (s, '\\', (const char *) "\\\\", 2), '"', (const char *) "\\\"", 2);
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   getSetLow - returns the low value of the set type from
-               expression, n.
+   toCchar -
 */
 
-static decl_node getSetLow (decl_node n)
+static DynamicStrings_String toCchar (nameKey_Name n)
 {
-  decl_node type;
+  DynamicStrings_String s;
 
-  if ((decl_getType (n)) == NULL)
-    {
-      return decl_makeLiteralInt (nameKey_makeKey ((const char *) "0", 1));
-    }
-  else
-    {
-      type = decl_skipType (decl_getType (n));
-      if (decl_isSet (type))
-        {
-          return getMin (decl_skipType (decl_getType (type)));
-        }
-      else
-        {
-          return decl_makeLiteralInt (nameKey_makeKey ((const char *) "0", 1));
-        }
-    }
+  s = DynamicStrings_Slice (DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n)), 1, -1);
+  return replaceChar (replaceChar (s, '\\', (const char *) "\\\\", 2), '\'', (const char *) "\\'", 2);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   doInC - performs (((1 << (l)) & (r)) != 0)
+   countChar -
 */
 
-static void doInC (mcPretty_pretty p, decl_node l, decl_node r)
+static unsigned int countChar (DynamicStrings_String s, char ch)
 {
-  decl_node lo;
+  int i;
+  unsigned int c;
 
-  lo = getSetLow (r);
-  outText (p, (const char *) "(((1", 4);
-  mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "<<", 2);
-  mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "(", 1);
-  doExprC (p, l);
-  doSubtractC (p, lo);
-  outText (p, (const char *) "))", 2);
-  mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "&", 1);
-  mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "(", 1);
-  doExprC (p, r);
-  outText (p, (const char *) "))", 2);
-  mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "!=", 2);
-  mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "0)", 2);
+  c = 0;
+  i = 0;
+  for (;;)
+  {
+    i = DynamicStrings_Index (s, ch, static_cast<unsigned int> (i));
+    if (i >= 0)
+      {
+        i += 1;
+        c += 1;
+      }
+    else
+      {
+        return c;
+      }
+  }
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
+  __builtin_unreachable ();
 }
 
 
 /*
-   doThrowC -
+   lenCstring -
 */
 
-static void doThrowC (mcPretty_pretty p, decl_node n)
+static unsigned int lenCstring (DynamicStrings_String s)
 {
-  mcDebug_assert (isIntrinsic (n));
-  outText (p, (const char *) "throw", 5);
-  mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "(", 1);
-  if ((expListLen (n->intrinsicF.args)) == 1)
-    {
-      doExprC (p, getExpList (n->intrinsicF.args, 1));
-    }
-  outText (p, (const char *) ")", 1);
+  return (DynamicStrings_Length (s))-(countChar (s, '\\'));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   doUnreachableC -
+   outCstring -
 */
 
-static void doUnreachableC (mcPretty_pretty p, decl_node n)
+static void outCstring (mcPretty_pretty p, decl_node__opaque s, bool aString)
 {
-  mcDebug_assert (isIntrinsic (n));
-  outText (p, (const char *) "__builtin_unreachable", 21);
-  mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "(", 1);
-  mcDebug_assert ((expListLen (n->intrinsicF.args)) == 0);
-  outText (p, (const char *) ")", 1);
+  if (aString)
+    {
+      outText (p, (const char *) "\"", 1);
+      outRawS (p, s->stringF.cstring);
+      outText (p, (const char *) "\"", 1);
+    }
+  else
+    {
+      outText (p, (const char *) "'", 1);
+      outRawS (p, s->stringF.cchar);
+      outText (p, (const char *) "'", 1);
+    }
 }
 
 
 /*
-   outNull -
+   doStringC -
 */
 
-static void outNull (mcPretty_pretty p)
+static void doStringC (mcPretty_pretty p, decl_node__opaque n)
 {
-  keyc_useNull ();
-  outText (p, (const char *) "NULL", 4);
+  DynamicStrings_String s;
+
+  mcDebug_assert (isString (n));
+  /* 
+   s := InitStringCharStar (keyToCharStar (getSymName (n))) ;
+   IF DynamicStrings.Length (s)>3
+   THEN
+      IF DynamicStrings.Index (s, '"', 0)=-1
+      THEN
+         s := DynamicStrings.Slice (s, 1, -1) ;
+         outText (p, '"') ;
+         outCstring (p, s) ;
+         outText (p, '"')
+      ELSIF DynamicStrings.Index (s, "'", 0)=-1
+      THEN
+         s := DynamicStrings.Slice (s, 1, -1) ;
+         outText (p, '"') ;
+         outCstring (p, s) ;
+         outText (p, '"')
+      ELSE
+         metaError1 ('illegal string {%1k}', n)
+      END
+   ELSIF DynamicStrings.Length (s) = 3
+   THEN
+      s := DynamicStrings.Slice (s, 1, -1) ;
+      outText (p, "'") ;
+      IF DynamicStrings.char (s, 0) = "'"
+      THEN
+         outText (p, "\'")
+      ELSIF DynamicStrings.char (s, 0) = "\"
+      THEN
+         outText (p, "\\")
+      ELSE
+         outTextS (p, s)
+      END ;
+      outText (p, "'")
+   ELSE
+      outText (p, "'\0'")
+   END ;
+   s := KillString (s)
+  */
+  outCstring (p, n, ! n->stringF.isCharCompatible);
 }
 
 
 /*
-   outTrue -
+   isPunct -
 */
 
-static void outTrue (mcPretty_pretty p)
+static bool isPunct (char ch)
 {
-  keyc_useTrue ();
-  if ((mcOptions_useBool ()) && (lang == decl_ansiCP))
-    {
-      outText (p, (const char *) "true", 4);
-    }
-  else
-    {
-      outText (p, (const char *) "TRUE", 4);
-    }
+  return (((((((((ch == '.') || (ch == '(')) || (ch == ')')) || (ch == '^')) || (ch == ':')) || (ch == ';')) || (ch == '{')) || (ch == '}')) || (ch == ',')) || (ch == '*');
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   outFalse -
+   isWhite -
 */
 
-static void outFalse (mcPretty_pretty p)
+static bool isWhite (char ch)
 {
-  keyc_useFalse ();
-  if ((mcOptions_useBool ()) && (lang == decl_ansiCP))
-    {
-      outText (p, (const char *) "false", 5);
-    }
-  else
-    {
-      outText (p, (const char *) "FALSE", 5);
-    }
+  return ((ch == ' ') || (ch == ASCII_tab)) || (ch == ASCII_lf);
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   doExprC -
+   outText -
 */
 
-static void doExprC (mcPretty_pretty p, decl_node n)
+static void outText (mcPretty_pretty p, const char *a_, unsigned int _a_high)
 {
-  decl_node t;
-
-  mcDebug_assert (n != NULL);
-  t = getExprType (n);
-  switch (n->kind)
-    {
-      case decl_nil:
-        outNull (p);
-        break;
-
-      case decl_true:
-        outTrue (p);
-        break;
+  DynamicStrings_String s;
+  char a[_a_high+1];
 
-      case decl_false:
-        outFalse (p);
-        break;
+  /* make a local copy of each unbounded array.  */
+  memcpy (a, a_, _a_high+1);
 
-      case decl_constexp:
-        doUnary (p, (const char *) "", 0, n->unaryF.arg, n->unaryF.resultType, false, false);
-        break;
+  s = DynamicStrings_InitString ((const char *) a, _a_high);
+  outTextS (p, s);
+  s = DynamicStrings_KillString (s);
+}
 
-      case decl_neg:
-        doUnary (p, (const char *) "-", 1, n->unaryF.arg, n->unaryF.resultType, false, false);
-        break;
 
-      case decl_not:
-        doUnary (p, (const char *) "!", 1, n->unaryF.arg, n->unaryF.resultType, false, true);
-        break;
+/*
+   outRawS -
+*/
 
-      case decl_val:
-        doValC (p, n);
-        break;
+static void outRawS (mcPretty_pretty p, DynamicStrings_String s)
+{
+  mcPretty_raw (p, s);
+}
 
-      case decl_adr:
-        doAdrC (p, n);
-        break;
 
-      case decl_size:
-      case decl_tsize:
-        doSizeC (p, n);
-        break;
+/*
+   outKm2 -
+*/
 
-      case decl_float:
-        doConvertSC (p, n, mcOptions_getCRealType ());
-        break;
+static mcPretty_pretty outKm2 (mcPretty_pretty p, const char *a_, unsigned int _a_high)
+{
+  unsigned int i;
+  DynamicStrings_String s;
+  char a[_a_high+1];
 
-      case decl_trunc:
-        doConvertC (p, n, (const char *) "int", 3);
-        break;
+  /* make a local copy of each unbounded array.  */
+  memcpy (a, a_, _a_high+1);
 
-      case decl_ord:
-        doConvertC (p, n, (const char *) "unsigned int", 12);
-        break;
+  if (StrLib_StrEqual ((const char *) a, _a_high, (const char *) "RECORD", 6))
+    {
+      p = mcPretty_pushPretty (p);
+      i = mcPretty_getcurpos (p);
+      mcPretty_setindent (p, i);
+      outText (p, (const char *) a, _a_high);
+      p = mcPretty_pushPretty (p);
+      mcPretty_setindent (p, i+indentation);
+    }
+  else if (StrLib_StrEqual ((const char *) a, _a_high, (const char *) "END", 3))
+    {
+      /* avoid dangling else.  */
+      p = mcPretty_popPretty (p);
+      outText (p, (const char *) a, _a_high);
+      p = mcPretty_popPretty (p);
+    }
+  return p;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-      case decl_chr:
-        doConvertC (p, n, (const char *) "char", 4);
-        break;
 
-      case decl_cap:
-        doCapC (p, n);
-        break;
+/*
+   outKc -
+*/
 
-      case decl_abs:
-        doAbsC (p, n);
-        break;
+static mcPretty_pretty outKc (mcPretty_pretty p, const char *a_, unsigned int _a_high)
+{
+  int i;
+  unsigned int c;
+  DynamicStrings_String s;
+  DynamicStrings_String t;
+  char a[_a_high+1];
 
-      case decl_high:
-        doFuncHighC (p, n->unaryF.arg);
-        break;
+  /* make a local copy of each unbounded array.  */
+  memcpy (a, a_, _a_high+1);
 
-      case decl_length:
-        doLengthC (p, n);
-        break;
+  s = DynamicStrings_InitString ((const char *) a, _a_high);
+  i = DynamicStrings_Index (s, '\\', 0);
+  if (i == -1)
+    {
+      t = static_cast<DynamicStrings_String> (NULL);
+    }
+  else
+    {
+      t = DynamicStrings_Slice (s, i, 0);
+      s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, i);
+    }
+  if ((DynamicStrings_char (s, 0)) == '{')
+    {
+      p = mcPretty_pushPretty (p);
+      c = mcPretty_getcurpos (p);
+      mcPretty_setindent (p, c);
+      outTextS (p, s);
+      p = mcPretty_pushPretty (p);
+      mcPretty_setindent (p, c+indentationC);
+    }
+  else if ((DynamicStrings_char (s, 0)) == '}')
+    {
+      /* avoid dangling else.  */
+      p = mcPretty_popPretty (p);
+      outTextS (p, s);
+      p = mcPretty_popPretty (p);
+    }
+  outTextS (p, t);
+  t = DynamicStrings_KillString (t);
+  s = DynamicStrings_KillString (s);
+  return p;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-      case decl_min:
-        doMinC (p, n);
-        break;
 
-      case decl_max:
-        doMaxC (p, n);
-        break;
+/*
+   outTextS -
+*/
 
-      case decl_throw:
-        doThrowC (p, n);
-        break;
+static void outTextS (mcPretty_pretty p, DynamicStrings_String s)
+{
+  if (s != NULL)
+    {
+      mcPretty_prints (p, s);
+    }
+}
 
-      case decl_unreachable:
-        doUnreachableC (p, n);
-        break;
 
-      case decl_re:
-        doReC (p, n);
-        break;
+/*
+   outCard -
+*/
 
-      case decl_im:
-        doImC (p, n);
-        break;
+static void outCard (mcPretty_pretty p, unsigned int c)
+{
+  DynamicStrings_String s;
 
-      case decl_cmplx:
-        doCmplx (p, n);
-        break;
+  s = StringConvert_CardinalToString (c, 0, ' ', 10, false);
+  outTextS (p, s);
+  s = DynamicStrings_KillString (s);
+}
 
-      case decl_deref:
-        doDeRefC (p, n->unaryF.arg);
-        break;
 
-      case decl_equal:
-        doBinary (p, (const char *) "==", 2, n->binaryF.left, n->binaryF.right, true, true, true);
-        break;
+/*
+   outTextN -
+*/
 
-      case decl_notequal:
-        doBinary (p, (const char *) "!=", 2, n->binaryF.left, n->binaryF.right, true, true, true);
-        break;
+static void outTextN (mcPretty_pretty p, nameKey_Name n)
+{
+  DynamicStrings_String s;
 
-      case decl_less:
-        doBinary (p, (const char *) "<", 1, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n));
+  mcPretty_prints (p, s);
+  s = DynamicStrings_KillString (s);
+}
 
-      case decl_greater:
-        doBinary (p, (const char *) ">", 1, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
 
-      case decl_greequal:
-        doBinary (p, (const char *) ">=", 2, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
+/*
+   outputEnumerationC -
+*/
 
-      case decl_lessequal:
-        doBinary (p, (const char *) "<=", 2, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
+static void outputEnumerationC (mcPretty_pretty p, decl_node__opaque n)
+{
+  unsigned int i;
+  unsigned int h;
+  decl_node__opaque s;
+  DynamicStrings_String t;
 
-      case decl_componentref:
-        doComponentRefC (p, n->componentrefF.rec, n->componentrefF.field);
-        break;
+  outText (p, (const char *) "enum {", 6);
+  i = Indexing_LowIndice (n->enumerationF.listOfSons);
+  h = Indexing_HighIndice (n->enumerationF.listOfSons);
+  while (i <= h)
+    {
+      s = static_cast<decl_node__opaque> (Indexing_GetIndice (n->enumerationF.listOfSons, i));
+      doFQDNameC (p, s, false);
+      if (i < h)
+        {
+          outText (p, (const char *) ",", 1);
+          mcPretty_setNeedSpace (p);
+        }
+      i += 1;
+    }
+  outText (p, (const char *) "}", 1);
+}
 
-      case decl_pointerref:
-        doPointerRefC (p, n->pointerrefF.ptr, n->pointerrefF.field);
-        break;
 
-      case decl_cast:
-        doCastC (p, n->binaryF.left, n->binaryF.right);
-        break;
+/*
+   isDeclType - return TRUE if the current module should declare type.
+*/
 
-      case decl_plus:
-        doPolyBinary (p, decl_plus, n->binaryF.left, n->binaryF.right, false, false);
-        break;
+static bool isDeclType (decl_node__opaque type)
+{
+  decl_node__opaque n;
+  decl_node__opaque def;
+  nameKey_Name name;
 
-      case decl_sub:
-        doPolyBinary (p, decl_sub, n->binaryF.left, n->binaryF.right, false, false);
-        break;
+  if (decl_isImp (static_cast<decl_node> (currentModule)))
+    {
+      name = decl_getSymName (static_cast<decl_node> (type));
+      if (name != nameKey_NulName)
+        {
+          /* Lookup the matching .def module.  */
+          def = static_cast<decl_node__opaque> (decl_lookupDef (decl_getSymName (static_cast<decl_node> (currentModule))));
+          if (def != NULL)
+            {
+              /* Return TRUE if the symbol has not already been declared in the .def.  */
+              return (decl_lookupExported (static_cast<decl_node> (def), name)) == NULL;
+            }
+        }
+    }
+  return true;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-      case decl_div:
-        doBinary (p, (const char *) "/", 1, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
 
-      case decl_mod:
-        doBinary (p, (const char *) "%", 1, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
+/*
+   doEnumerationC -
+*/
 
-      case decl_mult:
-        doPolyBinary (p, decl_mult, n->binaryF.left, n->binaryF.right, false, false);
-        break;
+static void doEnumerationC (mcPretty_pretty p, decl_node__opaque n)
+{
+  if (isDeclType (n))
+    {
+      outputEnumerationC (p, n);
+    }
+}
 
-      case decl_divide:
-        doPolyBinary (p, decl_divide, n->binaryF.left, n->binaryF.right, false, false);
-        break;
 
-      case decl_in:
-        doInC (p, n->binaryF.left, n->binaryF.right);
-        break;
+/*
+   doNamesC -
+*/
 
-      case decl_and:
-        doBinary (p, (const char *) "&&", 2, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
+static void doNamesC (mcPretty_pretty p, nameKey_Name n)
+{
+  DynamicStrings_String s;
 
-      case decl_or:
-        doBinary (p, (const char *) "||", 2, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n));
+  outTextS (p, s);
+  s = DynamicStrings_KillString (s);
+}
 
-      case decl_literal:
-        doLiteralC (p, n);
-        break;
 
-      case decl_const:
-        doConstExpr (p, n);
-        break;
+/*
+   doNameC -
+*/
 
-      case decl_enumerationfield:
-        doEnumerationField (p, n);
-        break;
+static void doNameC (mcPretty_pretty p, decl_node__opaque n)
+{
+  if ((n != NULL) && ((decl_getSymName (static_cast<decl_node> (n))) != nameKey_NulName))
+    {
+      doNamesC (p, decl_getSymName (static_cast<decl_node> (n)));
+    }
+}
 
-      case decl_string:
-        doStringC (p, n);
-        break;
 
-      case decl_var:
-        doVar (p, n);
-        break;
+/*
+   initCname -
+*/
 
-      case decl_arrayref:
-        doArrayRef (p, n);
-        break;
+static void initCname (decl_cnameT *c)
+{
+  (*c).init = false;
+}
 
-      case decl_funccall:
-        doFuncExprC (p, n);
-        break;
 
-      case decl_procedure:
-        doProcedure (p, n);
-        break;
+/*
+   doCname -
+*/
 
-      case decl_recordfield:
-        doRecordfield (p, n);
-        break;
+static nameKey_Name doCname (nameKey_Name n, decl_cnameT *c, bool scopes)
+{
+  DynamicStrings_String s;
 
-      case decl_setvalue:
-        doSetValueC (p, n);
-        break;
+  if ((*c).init)
+    {
+      return (*c).name;
+    }
+  else
+    {
+      (*c).init = true;
+      s = keyc_cname (n, scopes);
+      if (s == NULL)
+        {
+          (*c).name = n;
+        }
+      else
+        {
+          (*c).name = nameKey_makekey (DynamicStrings_string (s));
+          s = DynamicStrings_KillString (s);
+        }
+      return (*c).name;
+    }
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-      case decl_char:
-      case decl_cardinal:
-      case decl_longcard:
-      case decl_shortcard:
-      case decl_integer:
-      case decl_longint:
-      case decl_shortint:
-      case decl_complex:
-      case decl_longcomplex:
-      case decl_shortcomplex:
-      case decl_real:
-      case decl_longreal:
-      case decl_shortreal:
-      case decl_bitset:
-      case decl_boolean:
-      case decl_proc:
-        doBaseC (p, n);
+
+/*
+   getDName -
+*/
+
+static nameKey_Name getDName (decl_node__opaque n, bool scopes)
+{
+  nameKey_Name m;
+
+  m = decl_getSymName (static_cast<decl_node> (n));
+  switch (n->kind)
+    {
+      case decl_procedure:
+        return doCname (m, &n->procedureF.cname, scopes);
         break;
 
-      case decl_address:
-      case decl_loc:
-      case decl_byte:
-      case decl_word:
-      case decl_csizet:
-      case decl_cssizet:
-        doSystemC (p, n);
+      case decl_var:
+        return doCname (m, &n->varF.cname, scopes);
         break;
 
-      case decl_type:
-        doTypeNameC (p, n);
+      case decl_recordfield:
+        return doCname (m, &n->recordfieldF.cname, scopes);
         break;
 
-      case decl_pointer:
-        doTypeNameC (p, n);
+      case decl_enumerationfield:
+        return doCname (m, &n->enumerationfieldF.cname, scopes);
         break;
 
 
       default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
-        __builtin_unreachable ();
+        break;
     }
+  return m;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   doExprCup -
+   doDNameC -
 */
 
-static void doExprCup (mcPretty_pretty p, decl_node n, bool unpackProc)
+static void doDNameC (mcPretty_pretty p, decl_node__opaque n, bool scopes)
 {
-  decl_node t;
-
-  doExprC (p, n);
-  if (unpackProc)
+  if ((n != NULL) && ((decl_getSymName (static_cast<decl_node> (n))) != nameKey_NulName))
     {
-      t = decl_skipType (getExprType (n));
-      if ((t != NULL) && (isAProcType (t)))
-        {
-          outText (p, (const char *) ".proc", 5);
-        }
+      doNamesC (p, getDName (n, scopes));
     }
 }
 
 
 /*
-   doExprM2 -
+   doFQDNameC -
 */
 
-static void doExprM2 (mcPretty_pretty p, decl_node n)
+static void doFQDNameC (mcPretty_pretty p, decl_node__opaque n, bool scopes)
 {
-  mcDebug_assert (n != NULL);
-  switch (n->kind)
-    {
-      case decl_nil:
-        outText (p, (const char *) "NIL", 3);
-        break;
+  DynamicStrings_String s;
 
-      case decl_true:
-        outText (p, (const char *) "TRUE", 4);
-        break;
+  s = getFQDstring (n, scopes);
+  outTextS (p, s);
+  s = DynamicStrings_KillString (s);
+}
 
-      case decl_false:
-        outText (p, (const char *) "FALSE", 5);
-        break;
 
-      case decl_constexp:
-        doUnary (p, (const char *) "", 0, n->unaryF.arg, n->unaryF.resultType, false, false);
-        break;
+/*
+   doFQNameC -
+*/
 
-      case decl_neg:
-        doUnary (p, (const char *) "-", 1, n->unaryF.arg, n->unaryF.resultType, false, false);
-        break;
+static void doFQNameC (mcPretty_pretty p, decl_node__opaque n)
+{
+  DynamicStrings_String s;
 
-      case decl_not:
-        doUnary (p, (const char *) "NOT", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
+  s = getFQstring (n);
+  outTextS (p, s);
+  s = DynamicStrings_KillString (s);
+}
 
-      case decl_adr:
-        doUnary (p, (const char *) "ADR", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
 
-      case decl_size:
-        doUnary (p, (const char *) "SIZE", 4, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
+/*
+   doNameM2 -
+*/
 
-      case decl_tsize:
-        doUnary (p, (const char *) "TSIZE", 5, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
+static void doNameM2 (mcPretty_pretty p, decl_node__opaque n)
+{
+  doNameC (p, n);
+}
 
-      case decl_float:
-        doUnary (p, (const char *) "FLOAT", 5, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
 
-      case decl_trunc:
-        doUnary (p, (const char *) "TRUNC", 5, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
+/*
+   doUsed -
+*/
 
-      case decl_ord:
-        doUnary (p, (const char *) "ORD", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
+static void doUsed (mcPretty_pretty p, bool used)
+{
+  if (! used)
+    {
+      mcPretty_setNeedSpace (p);
+      outText (p, (const char *) "__attribute__((unused))", 23);
+    }
+}
 
-      case decl_chr:
-        doUnary (p, (const char *) "CHR", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
 
-      case decl_cap:
-        doUnary (p, (const char *) "CAP", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
+/*
+   doHighC -
+*/
 
-      case decl_high:
-        doUnary (p, (const char *) "HIGH", 4, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
+static void doHighC (mcPretty_pretty p, decl_node__opaque a, nameKey_Name n, bool isused)
+{
+  if ((decl_isArray (static_cast<decl_node> (a))) && (decl_isUnbounded (static_cast<decl_node> (a))))
+    {
+      /* need to display high.  */
+      mcPretty_print (p, (const char *) ",", 1);
+      mcPretty_setNeedSpace (p);
+      doTypeNameC (p, cardinalN);
+      mcPretty_setNeedSpace (p);
+      mcPretty_print (p, (const char *) "_", 1);
+      outTextN (p, n);
+      mcPretty_print (p, (const char *) "_high", 5);
+      doUsed (p, isused);
+    }
+}
 
-      case decl_re:
-        doUnary (p, (const char *) "RE", 2, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
 
-      case decl_im:
-        doUnary (p, (const char *) "IM", 2, n->unaryF.arg, n->unaryF.resultType, true, true);
-        break;
+/*
+   doParamConstCast -
+*/
 
-      case decl_deref:
-        doPostUnary (p, (const char *) "^", 1, n->unaryF.arg);
-        break;
+static void doParamConstCast (mcPretty_pretty p, decl_node__opaque n)
+{
+  decl_node__opaque ptype;
 
-      case decl_equal:
-        doBinary (p, (const char *) "=", 1, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
+  ptype = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+  if (((decl_isArray (static_cast<decl_node> (ptype))) && (decl_isUnbounded (static_cast<decl_node> (ptype)))) && (lang == decl_ansiCP))
+    {
+      outText (p, (const char *) "const", 5);
+      mcPretty_setNeedSpace (p);
+    }
+}
 
-      case decl_notequal:
-        doBinary (p, (const char *) "#", 1, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
 
-      case decl_less:
-        doBinary (p, (const char *) "<", 1, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
+/*
+   getParameterVariable - returns the variable which shadows the parameter
+                          named, m, in parameter block, n.
+*/
 
-      case decl_greater:
-        doBinary (p, (const char *) ">", 1, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
+static decl_node__opaque getParameterVariable (decl_node__opaque n, nameKey_Name m)
+{
+  decl_node__opaque p;
 
-      case decl_greequal:
-        doBinary (p, (const char *) ">=", 2, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
+  mcDebug_assert ((decl_isParam (static_cast<decl_node> (n))) || (decl_isVarParam (static_cast<decl_node> (n))));
+  if (decl_isParam (static_cast<decl_node> (n)))
+    {
+      p = n->paramF.scope;
+    }
+  else
+    {
+      p = n->varparamF.scope;
+    }
+  mcDebug_assert (decl_isProcedure (static_cast<decl_node> (p)));
+  return static_cast<decl_node__opaque> (decl_lookupInScope (static_cast<decl_node> (p), m));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
 
-      case decl_lessequal:
-        doBinary (p, (const char *) "<=", 2, n->binaryF.left, n->binaryF.right, true, true, false);
-        break;
 
-      case decl_componentref:
-        doBinary (p, (const char *) ".", 1, n->componentrefF.rec, n->componentrefF.field, false, false, false);
-        break;
+/*
+   doParamTypeEmit - emit parameter type for C/C++.  It checks to see if the
+                     parameter type is a procedure type and if it were declared
+                     in a definition module for "C" and if so it uses the "C"
+                     definition for a procedure type, rather than the mc
+                     C++ version.
+*/
 
-      case decl_pointerref:
-        doBinary (p, (const char *) "^.", 2, n->pointerrefF.ptr, n->pointerrefF.field, false, false, false);
-        break;
+static void doParamTypeEmit (mcPretty_pretty p, decl_node__opaque paramnode, decl_node__opaque paramtype)
+{
+  mcDebug_assert ((decl_isParam (static_cast<decl_node> (paramnode))) || (decl_isVarParam (static_cast<decl_node> (paramnode))));
+  if ((isForC (paramnode)) && (decl_isProcType (decl_skipType (static_cast<decl_node> (paramtype)))))
+    {
+      doFQNameC (p, paramtype);
+      outText (p, (const char *) "_C", 2);
+    }
+  else
+    {
+      doTypeNameC (p, paramtype);
+      doOpaqueModifier (p, paramnode);
+    }
+  /* 
+      IF nodeUsesOpaque (paramnode) AND (NOT getNodeOpaqueVoidStar (paramnode))
+      THEN
+         outText (p, '__opaque')
+      END
+  */
+}
 
-      case decl_cast:
-        doPreBinary (p, (const char *) "CAST", 4, n->binaryF.left, n->binaryF.right, true, true);
-        break;
 
-      case decl_val:
-        doPreBinary (p, (const char *) "VAL", 3, n->binaryF.left, n->binaryF.right, true, true);
-        break;
+/*
+   doParamTypeNameModifier - Add an _ to an unbounded parameter which is non var.
+*/
 
-      case decl_cmplx:
-        doPreBinary (p, (const char *) "CMPLX", 5, n->binaryF.left, n->binaryF.right, true, true);
-        break;
+static void doParamTypeNameModifier (mcPretty_pretty p, decl_node__opaque ptype, bool varparam)
+{
+  if ((! varparam && (decl_isArray (static_cast<decl_node> (ptype)))) && (decl_isUnbounded (static_cast<decl_node> (ptype))))
+    {
+      outText (p, (const char *) "_", 1);
+    }
+}
 
-      case decl_plus:
-        doBinary (p, (const char *) "+", 1, n->binaryF.left, n->binaryF.right, false, false, false);
+
+/*
+   initOpaqueCastState - assign fields opaque and voidstar in opaquestate.
+*/
+
+static void initOpaqueCastState (decl_opaqueCastState *opaquestate, bool opaque, bool voidstar)
+{
+  (*opaquestate).opaque = opaque;
+  (*opaquestate).voidStar = voidstar;
+}
+
+
+/*
+   initNodeOpaqueCastState - assign opaque and currentvoidstar
+*/
+
+static void initNodeOpaqueCastState (decl_node__opaque n, bool opaque, bool voidstar)
+{
+  switch (n->kind)
+    {
+      case decl_opaquecast:
+        initOpaqueCastState (&n->opaquecastF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_sub:
-        doBinary (p, (const char *) "-", 1, n->binaryF.left, n->binaryF.right, false, false, false);
+      case decl_funccall:
+        initOpaqueCastState (&n->funccallF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_div:
-        doBinary (p, (const char *) "DIV", 3, n->binaryF.left, n->binaryF.right, true, true, false);
+      case decl_var:
+        initOpaqueCastState (&n->varF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_mod:
-        doBinary (p, (const char *) "MOD", 3, n->binaryF.left, n->binaryF.right, true, true, false);
+      case decl_array:
+        initOpaqueCastState (&n->arrayF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_mult:
-        doBinary (p, (const char *) "*", 1, n->binaryF.left, n->binaryF.right, false, false, false);
+      case decl_varparam:
+        initOpaqueCastState (&n->varparamF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_divide:
-        doBinary (p, (const char *) "/", 1, n->binaryF.left, n->binaryF.right, false, false, false);
+      case decl_param:
+        initOpaqueCastState (&n->paramF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_literal:
-        doLiteral (p, n);
+      case decl_pointer:
+        initOpaqueCastState (&n->pointerF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_const:
-        doConstExpr (p, n);
+      case decl_recordfield:
+        initOpaqueCastState (&n->recordfieldF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_enumerationfield:
-        doEnumerationField (p, n);
+      case decl_componentref:
+        initOpaqueCastState (&n->componentrefF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_string:
-        doString (p, n);
+      case decl_pointerref:
+        initOpaqueCastState (&n->pointerrefF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_max:
-        doUnary (p, (const char *) "MAX", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
+      case decl_arrayref:
+        initOpaqueCastState (&n->arrayrefF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_min:
-        doUnary (p, (const char *) "MIN", 3, n->unaryF.arg, n->unaryF.resultType, true, true);
+      case decl_procedure:
+        initOpaqueCastState (&n->procedureF.opaqueState, opaque, voidstar);
         break;
 
-      case decl_var:
-        doVar (p, n);
+      case decl_proctype:
+        initOpaqueCastState (&n->proctypeF.opaqueState, opaque, voidstar);
         break;
 
 
       default:
-        CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
+        M2RTS_HALT (-1);
         __builtin_unreachable ();
+        break;
     }
 }
 
 
 /*
-   doVar -
+   setOpaqueCastState - set the voidStar field in opaquestate.
 */
 
-static void doVar (mcPretty_pretty p, decl_node n)
+static void setOpaqueCastState (decl_opaqueCastState *opaquestate, bool voidstar)
 {
-  mcDebug_assert (decl_isVar (n));
-  if (n->varF.isVarParameter)
-    {
-      outText (p, (const char *) "(*", 2);
-      doFQDNameC (p, n, true);
-      outText (p, (const char *) ")", 1);
-    }
-  else
-    {
-      doFQDNameC (p, n, true);
-    }
+  (*opaquestate).voidStar = voidstar;
 }
 
 
 /*
-   doLiteralC -
+   setNodeOpaqueVoidStar - sets the voidStar field in node to voidstar.
 */
 
-static void doLiteralC (mcPretty_pretty p, decl_node n)
+static void setNodeOpaqueVoidStar (decl_node__opaque n, bool voidstar)
 {
-  DynamicStrings_String s;
-
-  mcDebug_assert (decl_isLiteral (n));
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-  if (n->literalF.type == charN)
-    {
-      if ((DynamicStrings_char (s, -1)) == 'C')
-        {
-          s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1);
-          if ((DynamicStrings_char (s, 0)) != '0')
-            {
-              s = DynamicStrings_ConCat (DynamicStrings_InitString ((const char *) "0", 1), DynamicStrings_Mark (s));
-            }
-        }
-      outText (p, (const char *) "(char)", 6);
-      mcPretty_setNeedSpace (p);
-    }
-  else if ((DynamicStrings_char (s, -1)) == 'H')
-    {
-      /* avoid dangling else.  */
-      outText (p, (const char *) "0x", 2);
-      s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1);
-    }
-  else if ((DynamicStrings_char (s, -1)) == 'B')
+  mcDebug_assert (nodeUsesOpaque (n));
+  switch (n->kind)
     {
-      /* avoid dangling else.  */
-      outText (p, (const char *) "0", 1);
-      s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1);
-    }
-  outTextS (p, s);
-  s = DynamicStrings_KillString (s);
-}
-
-
-/*
-   doLiteral -
-*/
+      case decl_opaquecast:
+        setOpaqueCastState (&n->opaquecastF.opaqueState, voidstar);
+        break;
 
-static void doLiteral (mcPretty_pretty p, decl_node n)
-{
-  DynamicStrings_String s;
+      case decl_funccall:
+        setOpaqueCastState (&n->funccallF.opaqueState, voidstar);
+        break;
 
-  mcDebug_assert (decl_isLiteral (n));
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-  if (n->literalF.type == charN)
-    {
-      if ((DynamicStrings_char (s, -1)) == 'C')
-        {
-          s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, -1);
-          if ((DynamicStrings_char (s, 0)) != '0')
-            {
-              s = DynamicStrings_ConCat (DynamicStrings_InitString ((const char *) "0", 1), DynamicStrings_Mark (s));
-            }
-        }
-      outText (p, (const char *) "(char)", 6);
-      mcPretty_setNeedSpace (p);
-    }
-  outTextS (p, s);
-  s = DynamicStrings_KillString (s);
-}
+      case decl_var:
+        setOpaqueCastState (&n->varF.opaqueState, voidstar);
+        break;
 
+      case decl_array:
+        setOpaqueCastState (&n->arrayF.opaqueState, voidstar);
+        break;
 
-/*
-   isString - returns TRUE if node, n, is a string.
-*/
+      case decl_varparam:
+        setOpaqueCastState (&n->varparamF.opaqueState, voidstar);
+        break;
 
-static bool isString (decl_node n)
-{
-  mcDebug_assert (n != NULL);
-  return n->kind == decl_string;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
+      case decl_param:
+        setOpaqueCastState (&n->paramF.opaqueState, voidstar);
+        break;
 
+      case decl_pointer:
+        setOpaqueCastState (&n->pointerF.opaqueState, voidstar);
+        break;
 
-/*
-   doString -
-*/
+      case decl_recordfield:
+        setOpaqueCastState (&n->recordfieldF.opaqueState, voidstar);
+        break;
 
-static void doString (mcPretty_pretty p, decl_node n)
-{
-  DynamicStrings_String s;
+      case decl_componentref:
+        mcDebug_assert (! voidstar);
+        setOpaqueCastState (&n->componentrefF.opaqueState, voidstar);
+        break;
 
-  mcDebug_assert (isString (n));
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-  outTextS (p, s);
-  s = DynamicStrings_KillString (s);
-  /* 
-   IF DynamicStrings.Index (s, '"', 0)=-1
-   THEN
-      outText (p, '"') ;
-      outTextS (p, s) ;
-      outText (p, '"')
-   ELSIF DynamicStrings.Index (s, "'", 0)=-1
-   THEN
-      outText (p, '"') ;
-      outTextS (p, s) ;
-      outText (p, '"')
-   ELSE
-      metaError1 ('illegal string {%1k}', n)
-   END
-  */
-  M2RTS_HALT (-1);
-  __builtin_unreachable ();
-}
+      case decl_pointerref:
+        mcDebug_assert (! voidstar);
+        setOpaqueCastState (&n->pointerrefF.opaqueState, voidstar);
+        break;
 
+      case decl_arrayref:
+        setOpaqueCastState (&n->arrayrefF.opaqueState, voidstar);
+        break;
 
-/*
-   replaceChar - replace every occurance of, ch, by, a and return modified string, s.
-*/
+      case decl_procedure:
+        setOpaqueCastState (&n->procedureF.opaqueState, voidstar);
+        break;
 
-static DynamicStrings_String replaceChar (DynamicStrings_String s, char ch, const char *a_, unsigned int _a_high)
-{
-  int i;
-  char a[_a_high+1];
+      case decl_proctype:
+        setOpaqueCastState (&n->proctypeF.opaqueState, voidstar);
+        break;
 
-  /* make a local copy of each unbounded array.  */
-  memcpy (a, a_, _a_high+1);
 
-  i = 0;
-  for (;;)
-  {
-    i = DynamicStrings_Index (s, ch, static_cast<unsigned int> (i));
-    if (i == 0)
-      {
-        s = DynamicStrings_ConCat (DynamicStrings_InitString ((const char *) a, _a_high), DynamicStrings_Slice (s, 1, 0));
-        i = StrLib_StrLen ((const char *) a, _a_high);
-      }
-    else if (i > 0)
-      {
-        /* avoid dangling else.  */
-        s = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_Slice (s, 0, i), DynamicStrings_Mark (DynamicStrings_InitString ((const char *) a, _a_high))), DynamicStrings_Slice (s, i+1, 0));
-        i += StrLib_StrLen ((const char *) a, _a_high);
-      }
-    else
-      {
-        /* avoid dangling else.  */
-        return s;
-      }
-  }
-  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
-  __builtin_unreachable ();
+      default:
+        M2RTS_HALT (-1);
+        __builtin_unreachable ();
+        break;
+    }
 }
 
 
 /*
-   toCstring - translates string, n, into a C string
-               and returns the new String.
+   nodeUsesOpaque - return TRUE if node n uses an opaque type.
 */
 
-static DynamicStrings_String toCstring (nameKey_Name n)
+static bool nodeUsesOpaque (decl_node__opaque n)
 {
-  DynamicStrings_String s;
-
-  s = DynamicStrings_Slice (DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n)), 1, -1);
-  return replaceChar (replaceChar (s, '\\', (const char *) "\\\\", 2), '"', (const char *) "\\\"", 2);
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
+  switch (n->kind)
+    {
+      case decl_opaquecast:
+        return n->opaquecastF.opaqueState.opaque;
+        break;
 
-/*
-   toCchar -
-*/
+      case decl_funccall:
+        return n->funccallF.opaqueState.opaque;
+        break;
 
-static DynamicStrings_String toCchar (nameKey_Name n)
-{
-  DynamicStrings_String s;
+      case decl_var:
+        return n->varF.opaqueState.opaque;
+        break;
 
-  s = DynamicStrings_Slice (DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n)), 1, -1);
-  return replaceChar (replaceChar (s, '\\', (const char *) "\\\\", 2), '\'', (const char *) "\\'", 2);
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
+      case decl_array:
+        return n->arrayF.opaqueState.opaque;
+        break;
 
+      case decl_varparam:
+        return n->varparamF.opaqueState.opaque;
+        break;
 
-/*
-   countChar -
-*/
+      case decl_param:
+        return n->paramF.opaqueState.opaque;
+        break;
 
-static unsigned int countChar (DynamicStrings_String s, char ch)
-{
-  int i;
-  unsigned int c;
+      case decl_pointer:
+        return n->pointerF.opaqueState.opaque;
+        break;
 
-  c = 0;
-  i = 0;
-  for (;;)
-  {
-    i = DynamicStrings_Index (s, ch, static_cast<unsigned int> (i));
-    if (i >= 0)
-      {
-        i += 1;
-        c += 1;
-      }
-    else
-      {
-        return c;
-      }
-  }
-  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
-  __builtin_unreachable ();
-}
+      case decl_recordfield:
+        return n->recordfieldF.opaqueState.opaque;
+        break;
 
+      case decl_componentref:
+        return n->componentrefF.opaqueState.opaque;
+        break;
 
-/*
-   lenCstring -
-*/
+      case decl_pointerref:
+        return n->pointerrefF.opaqueState.opaque;
+        break;
 
-static unsigned int lenCstring (DynamicStrings_String s)
-{
-  return (DynamicStrings_Length (s))-(countChar (s, '\\'));
+      case decl_arrayref:
+        return n->arrayrefF.opaqueState.opaque;
+        break;
+
+      case decl_procedure:
+        return n->procedureF.opaqueState.opaque;
+        break;
+
+      case decl_proctype:
+        return n->proctypeF.opaqueState.opaque;
+        break;
+
+      case decl_deref:
+        return nodeUsesOpaque (n->unaryF.arg);
+        break;
+
+
+      default:
+        return false;
+        break;
+    }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   outCstring -
+   getNodeOpaqueVoidStar - return TRUE if the opaque type used by node n is a void *.
 */
 
-static void outCstring (mcPretty_pretty p, decl_node s, bool aString)
+static bool getNodeOpaqueVoidStar (decl_node__opaque n)
 {
-  if (aString)
-    {
-      outText (p, (const char *) "\"", 1);
-      outRawS (p, s->stringF.cstring);
-      outText (p, (const char *) "\"", 1);
-    }
-  else
+  mcDebug_assert (nodeUsesOpaque (n));
+  switch (n->kind)
     {
-      outText (p, (const char *) "'", 1);
-      outRawS (p, s->stringF.cchar);
-      outText (p, (const char *) "'", 1);
-    }
-}
+      case decl_opaquecast:
+        return n->opaquecastF.opaqueState.voidStar;
+        break;
 
+      case decl_funccall:
+        return n->funccallF.opaqueState.voidStar;
+        break;
 
-/*
-   doStringC -
-*/
+      case decl_var:
+        return n->varF.opaqueState.voidStar;
+        break;
 
-static void doStringC (mcPretty_pretty p, decl_node n)
-{
-  DynamicStrings_String s;
+      case decl_array:
+        return n->arrayF.opaqueState.voidStar;
+        break;
 
-  mcDebug_assert (isString (n));
-  /* 
-   s := InitStringCharStar (keyToCharStar (getSymName (n))) ;
-   IF DynamicStrings.Length (s)>3
-   THEN
-      IF DynamicStrings.Index (s, '"', 0)=-1
-      THEN
-         s := DynamicStrings.Slice (s, 1, -1) ;
-         outText (p, '"') ;
-         outCstring (p, s) ;
-         outText (p, '"')
-      ELSIF DynamicStrings.Index (s, "'", 0)=-1
-      THEN
-         s := DynamicStrings.Slice (s, 1, -1) ;
-         outText (p, '"') ;
-         outCstring (p, s) ;
-         outText (p, '"')
-      ELSE
-         metaError1 ('illegal string {%1k}', n)
-      END
-   ELSIF DynamicStrings.Length (s) = 3
-   THEN
-      s := DynamicStrings.Slice (s, 1, -1) ;
-      outText (p, "'") ;
-      IF DynamicStrings.char (s, 0) = "'"
-      THEN
-         outText (p, "\'")
-      ELSIF DynamicStrings.char (s, 0) = "\"
-      THEN
-         outText (p, "\\")
-      ELSE
-         outTextS (p, s)
-      END ;
-      outText (p, "'")
-   ELSE
-      outText (p, "'\0'")
-   END ;
-   s := KillString (s)
-  */
-  outCstring (p, n, ! n->stringF.isCharCompatible);
-}
+      case decl_varparam:
+        return n->varparamF.opaqueState.voidStar;
+        break;
 
+      case decl_param:
+        return n->paramF.opaqueState.voidStar;
+        break;
 
-/*
-   isPunct -
-*/
+      case decl_pointer:
+        return n->pointerF.opaqueState.voidStar;
+        break;
 
-static bool isPunct (char ch)
-{
-  return (((((((((ch == '.') || (ch == '(')) || (ch == ')')) || (ch == '^')) || (ch == ':')) || (ch == ';')) || (ch == '{')) || (ch == '}')) || (ch == ',')) || (ch == '*');
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
+      case decl_recordfield:
+        return n->recordfieldF.opaqueState.voidStar;
+        break;
 
+      case decl_componentref:
+        return n->componentrefF.opaqueState.voidStar;
+        break;
 
-/*
-   isWhite -
-*/
+      case decl_pointerref:
+        return n->pointerrefF.opaqueState.voidStar;
+        break;
 
-static bool isWhite (char ch)
-{
-  return ((ch == ' ') || (ch == ASCII_tab)) || (ch == ASCII_lf);
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
+      case decl_arrayref:
+        return n->arrayrefF.opaqueState.voidStar;
+        break;
 
+      case decl_procedure:
+        return n->procedureF.opaqueState.voidStar;
+        break;
 
-/*
-   outText -
-*/
+      case decl_proctype:
+        return n->proctypeF.opaqueState.voidStar;
+        break;
 
-static void outText (mcPretty_pretty p, const char *a_, unsigned int _a_high)
-{
-  DynamicStrings_String s;
-  char a[_a_high+1];
+      case decl_deref:
+        return false;
+        break;
 
-  /* make a local copy of each unbounded array.  */
-  memcpy (a, a_, _a_high+1);
 
-  s = DynamicStrings_InitString ((const char *) a, _a_high);
-  outTextS (p, s);
-  s = DynamicStrings_KillString (s);
+      default:
+        M2RTS_HALT (-1);
+        __builtin_unreachable ();
+        break;
+    }
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
+  __builtin_unreachable ();
 }
 
 
 /*
-   outRawS -
+   getOpaqueFlushNecessary - return TRUE if the value next differs from the opaque state.
 */
 
-static void outRawS (mcPretty_pretty p, DynamicStrings_String s)
+static bool getOpaqueFlushNecessary (decl_opaqueCastState state, bool next)
 {
-  mcPretty_raw (p, s);
+  return state.opaque && (state.voidStar != next);
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   outKm2 -
+   getNodeOpaqueFlushNecessary - return TRUE if the value of next requires a cast.
 */
 
-static mcPretty_pretty outKm2 (mcPretty_pretty p, const char *a_, unsigned int _a_high)
+static bool getNodeOpaqueFlushNecessary (decl_node__opaque n, bool next)
 {
-  unsigned int i;
-  DynamicStrings_String s;
-  char a[_a_high+1];
+  switch (n->kind)
+    {
+      case decl_opaquecast:
+        return getOpaqueFlushNecessary (n->opaquecastF.opaqueState, next);
+        break;
 
-  /* make a local copy of each unbounded array.  */
-  memcpy (a, a_, _a_high+1);
+      case decl_funccall:
+        return getOpaqueFlushNecessary (n->funccallF.opaqueState, next);
+        break;
 
-  if (StrLib_StrEqual ((const char *) a, _a_high, (const char *) "RECORD", 6))
-    {
-      p = mcPretty_pushPretty (p);
-      i = mcPretty_getcurpos (p);
-      mcPretty_setindent (p, i);
-      outText (p, (const char *) a, _a_high);
-      p = mcPretty_pushPretty (p);
-      mcPretty_setindent (p, i+indentation);
-    }
-  else if (StrLib_StrEqual ((const char *) a, _a_high, (const char *) "END", 3))
-    {
-      /* avoid dangling else.  */
-      p = mcPretty_popPretty (p);
-      outText (p, (const char *) a, _a_high);
-      p = mcPretty_popPretty (p);
-    }
-  return p;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
+      case decl_var:
+        return getOpaqueFlushNecessary (n->varF.opaqueState, next);
+        break;
 
+      case decl_array:
+        return getOpaqueFlushNecessary (n->arrayF.opaqueState, next);
+        break;
 
-/*
-   outKc -
-*/
+      case decl_varparam:
+        return getOpaqueFlushNecessary (n->varparamF.opaqueState, next);
+        break;
 
-static mcPretty_pretty outKc (mcPretty_pretty p, const char *a_, unsigned int _a_high)
-{
-  int i;
-  unsigned int c;
-  DynamicStrings_String s;
-  DynamicStrings_String t;
-  char a[_a_high+1];
+      case decl_param:
+        return getOpaqueFlushNecessary (n->paramF.opaqueState, next);
+        break;
 
-  /* make a local copy of each unbounded array.  */
-  memcpy (a, a_, _a_high+1);
+      case decl_pointer:
+        return getOpaqueFlushNecessary (n->pointerF.opaqueState, next);
+        break;
 
-  s = DynamicStrings_InitString ((const char *) a, _a_high);
-  i = DynamicStrings_Index (s, '\\', 0);
-  if (i == -1)
-    {
-      t = NULL;
-    }
-  else
-    {
-      t = DynamicStrings_Slice (s, i, 0);
-      s = DynamicStrings_Slice (DynamicStrings_Mark (s), 0, i);
-    }
-  if ((DynamicStrings_char (s, 0)) == '{')
-    {
-      p = mcPretty_pushPretty (p);
-      c = mcPretty_getcurpos (p);
-      mcPretty_setindent (p, c);
-      outTextS (p, s);
-      p = mcPretty_pushPretty (p);
-      mcPretty_setindent (p, c+indentationC);
-    }
-  else if ((DynamicStrings_char (s, 0)) == '}')
-    {
-      /* avoid dangling else.  */
-      p = mcPretty_popPretty (p);
-      outTextS (p, s);
-      p = mcPretty_popPretty (p);
-    }
-  outTextS (p, t);
-  t = DynamicStrings_KillString (t);
-  s = DynamicStrings_KillString (s);
-  return p;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
+      case decl_recordfield:
+        return getOpaqueFlushNecessary (n->recordfieldF.opaqueState, next);
+        break;
+
+      case decl_componentref:
+        return getOpaqueFlushNecessary (n->componentrefF.opaqueState, next);
+        break;
+
+      case decl_pointerref:
+        return getOpaqueFlushNecessary (n->pointerrefF.opaqueState, next);
+        break;
+
+      case decl_arrayref:
+        return getOpaqueFlushNecessary (n->arrayrefF.opaqueState, next);
+        break;
 
+      case decl_procedure:
+        return getOpaqueFlushNecessary (n->procedureF.opaqueState, next);
+        break;
 
-/*
-   outTextS -
-*/
+      case decl_proctype:
+        return getOpaqueFlushNecessary (n->proctypeF.opaqueState, next);
+        break;
 
-static void outTextS (mcPretty_pretty p, DynamicStrings_String s)
-{
-  if (s != NULL)
-    {
-      mcPretty_prints (p, s);
+
+      default:
+        return false;
+        break;
     }
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   outCard -
+   makeOpaqueCast - wrap node n with an opaquecast node and assign
+                    voidstar into the new opaque state.
 */
 
-static void outCard (mcPretty_pretty p, unsigned int c)
+static decl_node__opaque makeOpaqueCast (decl_node__opaque n, bool voidstar)
 {
-  DynamicStrings_String s;
+  decl_node__opaque o;
 
-  s = StringConvert_CardinalToString (c, 0, ' ', 10, false);
-  outTextS (p, s);
-  s = DynamicStrings_KillString (s);
+  o = newNode (decl_opaquecast);
+  o->opaquecastF.exp = n;
+  initOpaqueCastState (&o->opaquecastF.opaqueState, true, voidstar);
+  return o;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   outTextN -
+   flushOpaque - perform a cast to voidstar (if necessary) and ignore the new
+                 node which could be created.
 */
 
-static void outTextN (mcPretty_pretty p, nameKey_Name n)
+static void flushOpaque (mcPretty_pretty p, decl_node__opaque n, bool toVoidStar)
 {
-  DynamicStrings_String s;
+  decl_node__opaque o;
 
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n));
-  mcPretty_prints (p, s);
-  s = DynamicStrings_KillString (s);
+  o = castOpaque (p, n, toVoidStar);
 }
 
 
 /*
-   doTypeAliasC -
+   castOpaque - flushes the opaque type casts if necessary and changes the
+                voidstar boolean value.   If necessary it creates a opaquecast
+                and returns the new node otherwise return n.
 */
 
-static void doTypeAliasC (mcPretty_pretty p, decl_node n, decl_node *m)
+static decl_node__opaque castOpaque (mcPretty_pretty p, decl_node__opaque n, bool toVoidStar)
 {
-  mcPretty_print (p, (const char *) "typedef", 7);
-  mcPretty_setNeedSpace (p);
-  if ((decl_isTypeHidden (n)) && ((decl_isDef (decl_getMainModule ())) || ((decl_getScope (n)) != (decl_getMainModule ()))))
+  decl_node__opaque type;
+
+  if (getNodeOpaqueFlushNecessary (n, toVoidStar))
     {
-      outText (p, (const char *) "void *", 6);
+      type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+      if (toVoidStar)
+        {
+          /* next is true cast to void * opaque type.  */
+          outText (p, (const char *) "static_cast<", 12);
+          doTypeNameC (p, type);
+          mcPretty_noSpace (p);
+          outText (p, (const char *) "> (", 3);
+          doExprC (p, n);
+          outText (p, (const char *) ")", 1);
+          return makeOpaqueCast (n, true);
+        }
+      else
+        {
+          /* next is false cast to __opaque opaque type.  */
+          outText (p, (const char *) "static_cast<", 12);
+          doTypeNameC (p, type);
+          outText (p, (const char *) "__opaque", 8);
+          mcPretty_noSpace (p);
+          outText (p, (const char *) "> (", 3);
+          doExprC (p, n);
+          outText (p, (const char *) ")", 1);
+          return makeOpaqueCast (n, false);
+        }
     }
   else
     {
-      doTypeC (p, decl_getType (n), m);
-    }
-  if ((*m) != NULL)
-    {
-      doFQNameC (p, (*m));
+      if (debugOpaque)
+        {
+          doP = p;
+          dumpOpaqueState (n);
+          if (nodeUsesOpaque (n))
+            {
+              outText (p, (const char *) " /* no difference seen */ ", 26);
+            }
+          else
+            {
+              outText (p, (const char *) " /* no opaque used */ ", 22);
+            }
+        }
+      doExprC (p, n);
     }
-  mcPretty_print (p, (const char *) ";\\n\\n", 5);
+  return n;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   doEnumerationC -
+   isTypeOpaqueDefImp - returns TRUE if type is an opaque type by checking
+                        the def/imp pair of modules or fall back to the
+                        definition module.
 */
 
-static void doEnumerationC (mcPretty_pretty p, decl_node n)
+static bool isTypeOpaqueDefImp (decl_node__opaque type)
 {
-  unsigned int i;
-  unsigned int h;
-  decl_node s;
-  DynamicStrings_String t;
+  decl_node__opaque scope;
+  decl_node__opaque def;
+  decl_node__opaque opaque;
 
-  outText (p, (const char *) "enum {", 6);
-  i = Indexing_LowIndice (n->enumerationF.listOfSons);
-  h = Indexing_HighIndice (n->enumerationF.listOfSons);
-  while (i <= h)
+  if (type == NULL)
     {
-      s = static_cast<decl_node> (Indexing_GetIndice (n->enumerationF.listOfSons, i));
-      doFQDNameC (p, s, false);
-      if (i < h)
+      return false;
+    }
+  else if (decl_isType (static_cast<decl_node> (type)))
+    {
+      /* avoid dangling else.  */
+      scope = static_cast<decl_node__opaque> (decl_getScope (static_cast<decl_node> (type)));
+      if (decl_isImp (static_cast<decl_node> (scope)))
         {
-          outText (p, (const char *) ",", 1);
-          mcPretty_setNeedSpace (p);
+          /* avoid dangling else.  */
+          def = static_cast<decl_node__opaque> (decl_lookupDef (decl_getSymName (static_cast<decl_node> (scope))));
+          if (def != NULL)
+            {
+              /* Lookup the type name in the matching definition module.  */
+              opaque = static_cast<decl_node__opaque> (decl_lookupExported (static_cast<decl_node> (def), decl_getSymName (static_cast<decl_node> (type))));
+              return ((opaque != NULL) && (decl_isType (static_cast<decl_node> (opaque)))) && (decl_isTypeOpaque (static_cast<decl_node> (opaque)));
+            }
+        }
+      else
+        {
+          /* Otherwise just check the definition module.  */
+          return decl_isTypeOpaque (static_cast<decl_node> (type));
         }
-      i += 1;
     }
-  outText (p, (const char *) "}", 1);
+  return false;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   doNamesC -
+   isParamVoidStar - return TRUE if the procedure or proctype opaque type
+                     parameter should be implemented as a (void * ).
 */
 
-static void doNamesC (mcPretty_pretty p, nameKey_Name n)
+static bool isParamVoidStar (decl_node__opaque n)
 {
-  DynamicStrings_String s;
+  decl_node__opaque proc;
+  decl_node__opaque type;
 
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n));
-  outTextS (p, s);
-  s = DynamicStrings_KillString (s);
+  proc = static_cast<decl_node__opaque> (decl_getScope (static_cast<decl_node> (n)));
+  mcDebug_assert ((decl_isProcedure (static_cast<decl_node> (proc))) || (decl_isProcType (static_cast<decl_node> (proc))));
+  type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+  return isReturnVoidStar (proc, type);
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   doNameC -
+   isRefVoidStar - returns TRUE if the ref node uses an opaque type which
+                   is represented as a (void * ).
 */
 
-static void doNameC (mcPretty_pretty p, decl_node n)
+static bool isRefVoidStar (decl_node__opaque n)
 {
-  if ((n != NULL) && ((decl_getSymName (n)) != nameKey_NulName))
+  decl_node__opaque type;
+
+  type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+  if ((! (decl_isType (static_cast<decl_node> (type)))) || (! (decl_isTypeOpaque (static_cast<decl_node> (type)))))
     {
-      doNamesC (p, decl_getSymName (n));
+      /* We should finish the procedure as the ref does not use an opaque.  */
+      return true;
     }
+  else
+    {
+      /* We check whether the opaque type was declared in the implementation
+         module.  If it is declared in the implementation module then we
+         return FALSE.  */
+      return ! (isDeclInImp (type));
+    }
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   initCname -
-*/
-
-static void initCname (decl_cnameT *c)
-{
-  (*c).init = false;
-}
-
-
-/*
-   doCname -
+   isReturnVoidStar - return TRUE if the procedure or proctype opaque type
+                      return type should be implemented as a (void * ).
 */
 
-static nameKey_Name doCname (nameKey_Name n, decl_cnameT *c, bool scopes)
+static bool isReturnVoidStar (decl_node__opaque proc, decl_node__opaque type)
 {
-  DynamicStrings_String s;
+  decl_node__opaque def;
 
-  if ((*c).init)
+  mcDebug_assert ((decl_isProcedure (static_cast<decl_node> (proc))) || (decl_isProcType (static_cast<decl_node> (proc))));
+  if (decl_isExported (static_cast<decl_node> (proc)))
     {
-      return (*c).name;
+      return true;
     }
   else
     {
-      (*c).init = true;
-      s = keyc_cname (n, scopes);
-      if (s == NULL)
+      /* Not exported therefore local, we check whether the opaque type
+         was declared in the implementation module.  */
+      if (decl_isImp (static_cast<decl_node> (currentModule)))
         {
-          (*c).name = n;
+          if (decl_isType (static_cast<decl_node> (type)))
+            {
+              return ! (isDeclInImp (type));
+            }
+          else
+            {
+              return false;
+            }
         }
       else
         {
-          (*c).name = nameKey_makekey (DynamicStrings_string (s));
-          s = DynamicStrings_KillString (s);
+          /* Always use void * in .def modules.  */
+          return true;
         }
-      return (*c).name;
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -11748,189 +11429,266 @@ static nameKey_Name doCname (nameKey_Name n, decl_cnameT *c, bool scopes)
 
 
 /*
-   getDName -
+   isVarVoidStar - return TRUE if the variable using an opaque type should
+                   be implemented as a (void * ).
 */
 
-static nameKey_Name getDName (decl_node n, bool scopes)
+static bool isVarVoidStar (decl_node__opaque n)
 {
-  nameKey_Name m;
+  decl_node__opaque type;
 
-  m = decl_getSymName (n);
-  switch (n->kind)
+  mcDebug_assert (decl_isVar (static_cast<decl_node> (n)));
+  type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+  if ((! (decl_isType (static_cast<decl_node> (type)))) || (! (decl_isTypeOpaque (static_cast<decl_node> (type)))))
     {
-      case decl_procedure:
-        return doCname (m, &n->procedureF.cname, scopes);
-        break;
-
-      case decl_var:
-        return doCname (m, &n->varF.cname, scopes);
-        break;
-
-      case decl_recordfield:
-        return doCname (m, &n->recordfieldF.cname, scopes);
-        break;
-
-      case decl_enumerationfield:
-        return doCname (m, &n->enumerationfieldF.cname, scopes);
-        break;
-
-
-      default:
-        break;
+      /* We should finish the procedure as the variable does not use an opaque.  */
+      return true;
     }
-  return m;
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
-}
-
-
-/*
-   doDNameC -
-*/
-
-static void doDNameC (mcPretty_pretty p, decl_node n, bool scopes)
-{
-  if ((n != NULL) && ((decl_getSymName (n)) != nameKey_NulName))
+  else if (decl_isExported (static_cast<decl_node> (n)))
     {
-      doNamesC (p, getDName (n, scopes));
+      /* avoid dangling else.  */
+      /* Exported variables using an opaque type will always be implemented
+         with a (void * ).  */
+      return true;
+    }
+  else
+    {
+      /* avoid dangling else.  */
+      /* Not exported therefore static to the module (local or global non exported
+         variable), we check whether the opaque type was declared in the
+         implementation module.  If it is declared in the implementation module
+         then we return FALSE.  */
+      return ! (isDeclInImp (type));
     }
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
 }
 
 
 /*
-   doFQDNameC -
+   initNodeOpaqueState - initialize the node opaque state.
 */
 
-static void doFQDNameC (mcPretty_pretty p, decl_node n, bool scopes)
+static void initNodeOpaqueState (decl_node__opaque n)
 {
-  DynamicStrings_String s;
-
-  s = getFQDstring (n, scopes);
-  outTextS (p, s);
-  s = DynamicStrings_KillString (s);
-}
+  decl_node__opaque type;
 
+  switch (n->kind)
+    {
+      case decl_opaquecast:
+        break;
 
-/*
-   doFQNameC -
-*/
-
-static void doFQNameC (mcPretty_pretty p, decl_node n)
-{
-  DynamicStrings_String s;
+      case decl_funccall:
+        assignNodeOpaqueCastState (n, getFunction (n));  /* This must be done when the cast direction is known.  */
+        break;
 
-  s = getFQstring (n);
-  outTextS (p, s);
-  s = DynamicStrings_KillString (s);
-}
+      case decl_var:
+        type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+        if (n->varF.isParameter || n->varF.isVarParameter)
+          {
+            /* If the variable is really a parameter then it uses
+                        the state of the parameter.  */
+            initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type), isParamVoidStar (n));
+          }
+        else
+          {
+            initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type), isVarVoidStar (n));
+          }
+        break;
 
+      case decl_array:
+        type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+        initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type), decl_isExported (static_cast<decl_node> (n)));
+        break;
 
-/*
-   doNameM2 -
-*/
+      case decl_varparam:
+      case decl_param:
+        mcDebug_assert ((decl_isProcedure (decl_getScope (static_cast<decl_node> (n)))) || (decl_isProcType (decl_getScope (static_cast<decl_node> (n)))));
+        type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+        initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type), isParamVoidStar (n));
+        break;
 
-static void doNameM2 (mcPretty_pretty p, decl_node n)
-{
-  doNameC (p, n);
-}
+      case decl_componentref:
+      case decl_pointerref:
+      case decl_pointer:
+      case decl_recordfield:
+      case decl_arrayref:
+        type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+        /* In the future this should be revisited.  */
+        initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type), isRefVoidStar (n));
+        break;
 
+      case decl_proctype:
+      case decl_procedure:
+        type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));  /* We only consider the return type for a procedure or proctype.
+                     The parameters and local vars are handled separately (see
+                     above).  */
+        if (type == NULL)
+          {
+            /* No return type, therefore no opaque type used.  */
+            initNodeOpaqueCastState (n, false, false);
+          }
+        else
+          {
+            /* Init state from the return type.  Is type an opaque type?
+                        Is the opaque type declared in this module?  */
+            initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type), isReturnVoidStar (n, type));
+          }
+        break;
 
-/*
-   doUsed -
-*/
 
-static void doUsed (mcPretty_pretty p, bool used)
-{
-  if (! used)
-    {
-      mcPretty_setNeedSpace (p);
-      outText (p, (const char *) "__attribute__((unused))", 23);
+      default:
+        break;
     }
-}
-
-
-/*
-   doHighC -
-*/
-
-static void doHighC (mcPretty_pretty p, decl_node a, nameKey_Name n, bool isused)
-{
-  if ((decl_isArray (a)) && (decl_isUnbounded (a)))
-    {
-      /* need to display high.  */
-      mcPretty_print (p, (const char *) ",", 1);
-      mcPretty_setNeedSpace (p);
-      doTypeNameC (p, cardinalN);
-      mcPretty_setNeedSpace (p);
-      mcPretty_print (p, (const char *) "_", 1);
-      outTextN (p, n);
-      mcPretty_print (p, (const char *) "_high", 5);
-      doUsed (p, isused);
+  if (debugOpaque)
+    {
+      dumpOpaqueState (n);
     }
 }
 
 
 /*
-   doParamConstCast -
+   assignNodeOpaqueCastState - copy the opaqueCastState from src into dest.
 */
 
-static void doParamConstCast (mcPretty_pretty p, decl_node n)
+static void assignNodeOpaqueCastState (decl_node__opaque dest, decl_node__opaque src)
 {
-  decl_node ptype;
-
-  ptype = decl_getType (n);
-  if (((decl_isArray (ptype)) && (decl_isUnbounded (ptype))) && (lang == decl_ansiCP))
+  if (nodeUsesOpaque (src))
     {
-      outText (p, (const char *) "const", 5);
-      mcPretty_setNeedSpace (p);
+      initNodeOpaqueCastState (dest, true, getNodeOpaqueVoidStar (src));
+    }
+  else
+    {
+      initNodeOpaqueCastState (dest, false, false);
     }
 }
 
 
 /*
-   getParameterVariable - returns the variable which shadows the parameter
-                          named, m, in parameter block, n.
+   assignNodeOpaqueCastFalse - assign the voidstar field of dest to false.
+                               It assigns the opaque field of dest to the value
+                               of the src opaque field.
 */
 
-static decl_node getParameterVariable (decl_node n, nameKey_Name m)
+static void assignNodeOpaqueCastFalse (decl_node__opaque dest, decl_node__opaque src)
 {
-  decl_node p;
-
-  mcDebug_assert ((decl_isParam (n)) || (decl_isVarParam (n)));
-  if (decl_isParam (n))
+  if (nodeUsesOpaque (src))
     {
-      p = n->paramF.scope;
+      initNodeOpaqueCastState (dest, true, false);
     }
   else
     {
-      p = n->varparamF.scope;
+      initNodeOpaqueCastState (dest, false, false);
     }
-  mcDebug_assert (decl_isProcedure (p));
-  return decl_lookupInScope (p, m);
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
 }
 
 
 /*
-   doParamTypeEmit - emit parameter type for C/C++.  It checks to see if the
-                     parameter type is a procedure type and if it were declared
-                     in a definition module for "C" and if so it uses the "C"
-                     definition for a procedure type, rather than the mc
-                     C++ version.
+   dumpOpaqueState -
 */
 
-static void doParamTypeEmit (mcPretty_pretty p, decl_node paramnode, decl_node paramtype)
+static void dumpOpaqueState (decl_node__opaque n)
 {
-  mcDebug_assert ((decl_isParam (paramnode)) || (decl_isVarParam (paramnode)));
-  if ((isForC (paramnode)) && (decl_isProcType (decl_skipType (paramtype))))
+  decl_node__opaque o;
+
+  switch (n->kind)
     {
-      doFQNameC (p, paramtype);
-      outText (p, (const char *) "_C", 2);
+      case decl_opaquecast:
+      case decl_funccall:
+      case decl_var:
+      case decl_array:
+      case decl_varparam:
+      case decl_param:
+      case decl_pointer:
+      case decl_recordfield:
+      case decl_componentref:
+      case decl_arrayref:
+      case decl_procedure:
+      case decl_proctype:
+        o = n;
+        break;
+
+
+      default:
+        o = static_cast<decl_node__opaque> (NULL);
+        break;
     }
-  else
+  if (o != NULL)
     {
-      doTypeNameC (p, paramtype);
+      outText (doP, (const char *) "/* ", 3);
+      doNameC (doP, o);
+      outText (doP, (const char *) "  ", 2);
+      switch (o->kind)
+        {
+          case decl_opaquecast:
+            outText (doP, (const char *) "opaquecast", 10);
+            break;
+
+          case decl_funccall:
+            outText (doP, (const char *) "funccall", 8);
+            break;
+
+          case decl_var:
+            outText (doP, (const char *) "var", 3);
+            break;
+
+          case decl_array:
+            outText (doP, (const char *) "array", 5);
+            break;
+
+          case decl_varparam:
+            outText (doP, (const char *) "varparam", 8);
+            break;
+
+          case decl_param:
+            outText (doP, (const char *) "param", 5);
+            break;
+
+          case decl_pointer:
+            outText (doP, (const char *) "pointer", 7);
+            break;
+
+          case decl_recordfield:
+            outText (doP, (const char *) "recordfield", 11);
+            break;
+
+          case decl_componentref:
+            outText (doP, (const char *) "componentref", 12);
+            break;
+
+          case decl_pointerref:
+            outText (doP, (const char *) "pointerref", 10);
+            break;
+
+          case decl_arrayref:
+            outText (doP, (const char *) "arrayref", 8);
+            break;
+
+          case decl_procedure:
+            outText (doP, (const char *) "procedure", 9);
+            break;
+
+          case decl_proctype:
+            outText (doP, (const char *) "proctype", 8);
+            break;
+
+
+          default:
+            break;
+        }
+      if (nodeUsesOpaque (o))
+        {
+          /* avoid gcc warning by using compound statement even if not strictly necessary.  */
+          if (getNodeOpaqueVoidStar (o))
+            {
+              outText (doP, (const char *) " uses (void *) opaque", 21);
+            }
+          else
+            {
+              outText (doP, (const char *) " uses opaque__full", 18);
+            }
+        }
+      outText (doP, (const char *) " */ \\n", 6);
     }
 }
 
@@ -11939,24 +11697,24 @@ static void doParamTypeEmit (mcPretty_pretty p, decl_node paramnode, decl_node p
    doParamC - emit parameter for C/C++.
 */
 
-static void doParamC (mcPretty_pretty p, decl_node n)
+static void doParamC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node v;
-  decl_node ptype;
+  decl_node__opaque v;
+  decl_node__opaque ptype;
   nameKey_Name i;
   unsigned int c;
   unsigned int t;
   wlists_wlist l;
 
-  mcDebug_assert (decl_isParam (n));
-  ptype = decl_getType (n);
+  mcDebug_assert (decl_isParam (static_cast<decl_node> (n)));
+  ptype = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (n->paramF.namelist == NULL)
     {
       /* avoid dangling else.  */
       doParamConstCast (p, n);
       doTypeNameC (p, ptype);
       doUsed (p, n->paramF.isUsed);
-      if ((decl_isArray (ptype)) && (decl_isUnbounded (ptype)))
+      if ((decl_isArray (static_cast<decl_node> (ptype))) && (decl_isUnbounded (static_cast<decl_node> (ptype))))
         {
           outText (p, (const char *) ",", 1);
           mcPretty_setNeedSpace (p);
@@ -11972,7 +11730,7 @@ static void doParamC (mcPretty_pretty p, decl_node n)
           /* avoid dangling else.  */
           doParamConstCast (p, n);
           doParamTypeEmit (p, n, ptype);
-          if ((decl_isArray (ptype)) && (decl_isUnbounded (ptype)))
+          if ((decl_isArray (static_cast<decl_node> (ptype))) && (decl_isUnbounded (static_cast<decl_node> (ptype))))
             {
               doUsed (p, n->paramF.isUsed);
               outText (p, (const char *) ",", 1);
@@ -11989,7 +11747,7 @@ static void doParamC (mcPretty_pretty p, decl_node n)
               doParamConstCast (p, n);
               doParamTypeEmit (p, n, ptype);
               i = static_cast<nameKey_Name> (wlists_getItemFromList (l, c));
-              if ((decl_isArray (ptype)) && (decl_isUnbounded (ptype)))
+              if ((decl_isArray (static_cast<decl_node> (ptype))) && (decl_isUnbounded (static_cast<decl_node> (ptype))))
                 {
                   mcPretty_noSpace (p);
                 }
@@ -12006,10 +11764,7 @@ static void doParamC (mcPretty_pretty p, decl_node n)
                 {
                   doFQDNameC (p, v, true);
                 }
-              if ((decl_isArray (ptype)) && (decl_isUnbounded (ptype)))
-                {
-                  outText (p, (const char *) "_", 1);
-                }
+              doParamTypeNameModifier (p, ptype, false);
               doUsed (p, n->paramF.isUsed);
               doHighC (p, ptype, i, n->paramF.isUsed);
               if (c < t)
@@ -12028,29 +11783,29 @@ static void doParamC (mcPretty_pretty p, decl_node n)
    doVarParamC - emit a VAR parameter for C/C++.
 */
 
-static void doVarParamC (mcPretty_pretty p, decl_node n)
+static void doVarParamC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node v;
-  decl_node ptype;
+  decl_node__opaque v;
+  decl_node__opaque ptype;
   nameKey_Name i;
   unsigned int c;
   unsigned int t;
   wlists_wlist l;
 
-  mcDebug_assert (decl_isVarParam (n));
-  ptype = decl_getType (n);
+  mcDebug_assert (decl_isVarParam (static_cast<decl_node> (n)));
+  ptype = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (n->varparamF.namelist == NULL)
     {
       /* avoid dangling else.  */
       doTypeNameC (p, ptype);
       /* doTypeC (p, ptype, n) ;  */
-      if (! (decl_isArray (ptype)))
+      if (! (decl_isArray (static_cast<decl_node> (ptype))))
         {
           mcPretty_setNeedSpace (p);
           outText (p, (const char *) "*", 1);
         }
       doUsed (p, n->varparamF.isUsed);
-      if ((decl_isArray (ptype)) && (decl_isUnbounded (ptype)))
+      if ((decl_isArray (static_cast<decl_node> (ptype))) && (decl_isUnbounded (static_cast<decl_node> (ptype))))
         {
           outText (p, (const char *) ",", 1);
           mcPretty_setNeedSpace (p);
@@ -12073,7 +11828,7 @@ static void doVarParamC (mcPretty_pretty p, decl_node n)
           while (c <= t)
             {
               doParamTypeEmit (p, n, ptype);
-              if (! (decl_isArray (ptype)))
+              if (! (decl_isArray (static_cast<decl_node> (ptype))))
                 {
                   mcPretty_setNeedSpace (p);
                   outText (p, (const char *) "*", 1);
@@ -12088,6 +11843,7 @@ static void doVarParamC (mcPretty_pretty p, decl_node n)
                 {
                   doFQDNameC (p, v, true);
                 }
+              doParamTypeNameModifier (p, ptype, true);
               doUsed (p, n->varparamF.isUsed);
               doHighC (p, ptype, i, n->varparamF.isUsed);
               if (c < t)
@@ -12106,15 +11862,15 @@ static void doVarParamC (mcPretty_pretty p, decl_node n)
    doOptargC -
 */
 
-static void doOptargC (mcPretty_pretty p, decl_node n)
+static void doOptargC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node ptype;
+  decl_node__opaque ptype;
   nameKey_Name i;
   unsigned int t;
   wlists_wlist l;
 
-  mcDebug_assert (decl_isOptarg (n));
-  ptype = decl_getType (n);
+  mcDebug_assert (decl_isOptarg (static_cast<decl_node> (n)));
+  ptype = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   mcDebug_assert (n->optargF.namelist != NULL);
   mcDebug_assert (isIdentList (n->paramF.namelist));
   l = n->paramF.namelist->identlistF.names;
@@ -12132,23 +11888,23 @@ static void doOptargC (mcPretty_pretty p, decl_node n)
    doParameterC -
 */
 
-static void doParameterC (mcPretty_pretty p, decl_node n)
+static void doParameterC (mcPretty_pretty p, decl_node__opaque n)
 {
-  if (decl_isParam (n))
+  if (decl_isParam (static_cast<decl_node> (n)))
     {
       doParamC (p, n);
     }
-  else if (decl_isVarParam (n))
+  else if (decl_isVarParam (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doVarParamC (p, n);
     }
-  else if (decl_isVarargs (n))
+  else if (decl_isVarargs (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       mcPretty_print (p, (const char *) "...", 3);
     }
-  else if (decl_isOptarg (n))
+  else if (decl_isOptarg (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doOptargC (p, n);
@@ -12160,11 +11916,65 @@ static void doParameterC (mcPretty_pretty p, decl_node n)
    doProcTypeC -
 */
 
-static void doProcTypeC (mcPretty_pretty p, decl_node t, decl_node n)
+static void doProcTypeC (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque n)
+{
+  mcDebug_assert (decl_isType (static_cast<decl_node> (t)));
+  if ((isDeclType (t)) && (isDeclType (n)))
+    {
+      outputPartial (t);
+      doCompletePartialProcType (p, t, n);
+    }
+}
+
+
+/*
+   isDeclInImp - returns TRUE if node type is declared as an opaque and
+                 is declared fully in the current implementation module.
+                 This should only be called if isType (type).  Its purpose
+                 is specific to a type checking whether it is an opaque type
+                 declared in the .def/.mod pair of the current imp module.
+*/
+
+static bool isDeclInImp (decl_node__opaque type)
+{
+  decl_node__opaque scope;
+  decl_node__opaque def;
+  nameKey_Name name;
+
+  mcDebug_assert (decl_isType (static_cast<decl_node> (type)));
+  scope = static_cast<decl_node__opaque> (decl_getScope (static_cast<decl_node> (type)));
+  if ((isTypeOpaqueDefImp (type)) && (decl_isImp (static_cast<decl_node> (currentModule))))
+    {
+      name = decl_getSymName (static_cast<decl_node> (type));
+      if (name != nameKey_NulName)
+        {
+          /* Lookup the matching .def module.  */
+          def = static_cast<decl_node__opaque> (decl_lookupDef (decl_getSymName (static_cast<decl_node> (currentModule))));
+          if ((def != NULL) && ((def == scope) || (currentModule == scope)))
+            {
+              /* Return TRUE if the symbol has already been declared in the .def.  */
+              return (decl_lookupExported (static_cast<decl_node> (def), name)) != NULL;
+            }
+        }
+    }
+  return false;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
+/*
+   doTypeNameModifier - adds the __opaque modifier to the type n provided
+                        it is an opaque type which is being declared in the
+                        implementation module.
+*/
+
+static void doTypeNameModifier (mcPretty_pretty p, decl_node__opaque n)
 {
-  mcDebug_assert (decl_isType (t));
-  outputPartial (t);
-  doCompletePartialProcType (p, t, n);
+  if ((isTypeOpaqueDefImp (n)) && (decl_isImp (static_cast<decl_node> (currentModule))))
+    {
+      outText (p, (const char *) "__opaque", 8);
+    }
 }
 
 
@@ -12172,39 +11982,43 @@ static void doProcTypeC (mcPretty_pretty p, decl_node t, decl_node n)
    doTypesC -
 */
 
-static void doTypesC (decl_node n)
+static void doTypesC (decl_node__opaque n)
 {
-  decl_node m;
+  decl_node__opaque m;
 
-  if (decl_isType (n))
+  if (decl_isType (static_cast<decl_node> (n)))
     {
-      m = decl_getType (n);
-      if (decl_isProcType (m))
+      m = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+      if (decl_isProcType (static_cast<decl_node> (m)))
         {
           doProcTypeC (doP, n, m);
         }
-      else if ((decl_isType (m)) || (decl_isPointer (m)))
+      else if ((decl_isType (static_cast<decl_node> (m))) || (decl_isPointer (static_cast<decl_node> (m))))
         {
           /* avoid dangling else.  */
           outText (doP, (const char *) "typedef", 7);
           mcPretty_setNeedSpace (doP);
           doTypeC (doP, m, &m);
-          if (decl_isType (m))
+          if (decl_isType (static_cast<decl_node> (m)))
             {
               mcPretty_setNeedSpace (doP);
             }
           doTypeNameC (doP, n);
+          doTypeNameModifier (doP, n);
           outText (doP, (const char *) ";\\n\\n", 5);
         }
-      else if (decl_isEnumeration (m))
+      else if (decl_isEnumeration (static_cast<decl_node> (m)))
         {
           /* avoid dangling else.  */
-          outText (doP, (const char *) "typedef", 7);
-          mcPretty_setNeedSpace (doP);
-          doTypeC (doP, m, &m);
-          mcPretty_setNeedSpace (doP);
-          doTypeNameC (doP, n);
-          outText (doP, (const char *) ";\\n\\n", 5);
+          if (isDeclType (n))
+            {
+              outText (doP, (const char *) "typedef", 7);
+              mcPretty_setNeedSpace (doP);
+              doTypeC (doP, m, &m);
+              mcPretty_setNeedSpace (doP);
+              doTypeNameC (doP, n);
+              outText (doP, (const char *) ";\\n\\n", 5);
+            }
         }
       else
         {
@@ -12212,11 +12026,12 @@ static void doTypesC (decl_node n)
           outText (doP, (const char *) "typedef", 7);
           mcPretty_setNeedSpace (doP);
           doTypeC (doP, m, &m);
-          if (decl_isType (m))
+          if (decl_isType (static_cast<decl_node> (m)))
             {
               mcPretty_setNeedSpace (doP);
             }
           doTypeNameC (doP, n);
+          doTypeNameModifier (doP, n);
           outText (doP, (const char *) ";\\n\\n", 5);
         }
     }
@@ -12227,23 +12042,23 @@ static void doTypesC (decl_node n)
    doCompletePartialC -
 */
 
-static void doCompletePartialC (decl_node n)
+static void doCompletePartialC (decl_node__opaque n)
 {
-  decl_node m;
+  decl_node__opaque m;
 
-  if (decl_isType (n))
+  if (decl_isType (static_cast<decl_node> (n)))
     {
-      m = decl_getType (n);
-      if (decl_isRecord (m))
+      m = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+      if (decl_isRecord (static_cast<decl_node> (m)))
         {
           doCompletePartialRecord (doP, n, m);
         }
-      else if (decl_isArray (m))
+      else if (decl_isArray (static_cast<decl_node> (m)))
         {
           /* avoid dangling else.  */
           doCompletePartialArray (doP, n, m);
         }
-      else if (decl_isProcType (m))
+      else if (decl_isProcType (static_cast<decl_node> (m)))
         {
           /* avoid dangling else.  */
           doCompletePartialProcType (doP, n, m);
@@ -12256,14 +12071,14 @@ static void doCompletePartialC (decl_node n)
    doCompletePartialRecord -
 */
 
-static void doCompletePartialRecord (mcPretty_pretty p, decl_node t, decl_node r)
+static void doCompletePartialRecord (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque r)
 {
   unsigned int i;
   unsigned int h;
-  decl_node f;
+  decl_node__opaque f;
 
-  mcDebug_assert (decl_isRecord (r));
-  mcDebug_assert (decl_isType (t));
+  mcDebug_assert (decl_isRecord (static_cast<decl_node> (r)));
+  mcDebug_assert (decl_isType (static_cast<decl_node> (t)));
   outText (p, (const char *) "struct", 6);
   mcPretty_setNeedSpace (p);
   doFQNameC (p, t);
@@ -12274,24 +12089,23 @@ static void doCompletePartialRecord (mcPretty_pretty p, decl_node t, decl_node r
   h = Indexing_HighIndice (r->recordF.listOfSons);
   while (i <= h)
     {
-      f = static_cast<decl_node> (Indexing_GetIndice (r->recordF.listOfSons, i));
-      if (decl_isRecordField (f))
+      f = static_cast<decl_node__opaque> (Indexing_GetIndice (r->recordF.listOfSons, i));
+      if (decl_isRecordField (static_cast<decl_node> (f)))
         {
           /* avoid dangling else.  */
           if (! f->recordfieldF.tag)
             {
-              mcPretty_setNeedSpace (p);
               doRecordFieldC (p, f);
               outText (p, (const char *) ";\\n", 3);
             }
         }
-      else if (decl_isVarient (f))
+      else if (decl_isVarient (static_cast<decl_node> (f)))
         {
           /* avoid dangling else.  */
           doVarientC (p, f);
           outText (p, (const char *) ";\\n", 3);
         }
-      else if (decl_isVarientField (f))
+      else if (decl_isVarientField (static_cast<decl_node> (f)))
         {
           /* avoid dangling else.  */
           doVarientFieldC (p, f);
@@ -12306,14 +12120,14 @@ static void doCompletePartialRecord (mcPretty_pretty p, decl_node t, decl_node r
    doCompletePartialArray -
 */
 
-static void doCompletePartialArray (mcPretty_pretty p, decl_node t, decl_node r)
+static void doCompletePartialArray (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque r)
 {
-  decl_node type;
-  decl_node s;
+  decl_node__opaque type;
+  decl_node__opaque s;
 
-  mcDebug_assert (decl_isArray (r));
+  mcDebug_assert (decl_isArray (static_cast<decl_node> (r)));
   type = r->arrayF.type;
-  s = NULL;
+  s = static_cast<decl_node__opaque> (NULL);
   outText (p, (const char *) "struct", 6);
   mcPretty_setNeedSpace (p);
   doFQNameC (p, t);
@@ -12333,9 +12147,9 @@ static void doCompletePartialArray (mcPretty_pretty p, decl_node t, decl_node r)
    lookupConst -
 */
 
-static decl_node lookupConst (decl_node type, nameKey_Name n)
+static decl_node__opaque lookupConst (decl_node__opaque type, nameKey_Name n)
 {
-  return decl_makeLiteralInt (n);
+  return static_cast<decl_node__opaque> (decl_makeLiteralInt (n));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -12345,7 +12159,7 @@ static decl_node lookupConst (decl_node type, nameKey_Name n)
    doMin -
 */
 
-static decl_node doMin (decl_node n)
+static decl_node__opaque doMin (decl_node__opaque n)
 {
   if (n == booleanN)
     {
@@ -12384,7 +12198,7 @@ static decl_node doMin (decl_node n)
   else if (n == bitsetN)
     {
       /* avoid dangling else.  */
-      mcDebug_assert (decl_isSubrange (bitnumN));
+      mcDebug_assert (decl_isSubrange (static_cast<decl_node> (bitnumN)));
       return bitnumN->subrangeF.low;
     }
   else if (n == locN)
@@ -12425,7 +12239,7 @@ static decl_node doMin (decl_node n)
    doMax -
 */
 
-static decl_node doMax (decl_node n)
+static decl_node__opaque doMax (decl_node__opaque n)
 {
   if (n == booleanN)
     {
@@ -12464,7 +12278,7 @@ static decl_node doMax (decl_node n)
   else if (n == bitsetN)
     {
       /* avoid dangling else.  */
-      mcDebug_assert (decl_isSubrange (bitnumN));
+      mcDebug_assert (decl_isSubrange (static_cast<decl_node> (bitnumN)));
       return bitnumN->subrangeF.high;
     }
   else if (n == locN)
@@ -12489,7 +12303,7 @@ static decl_node doMax (decl_node n)
     {
       /* avoid dangling else.  */
       mcMetaError_metaError1 ((const char *) "trying to obtain MAX ({%1ad}) is illegal", 40, (const unsigned char *) &n, (sizeof (n)-1));
-      return NULL;
+      return static_cast<decl_node__opaque> (NULL);
     }
   else
     {
@@ -12506,14 +12320,14 @@ static decl_node doMax (decl_node n)
    getMax -
 */
 
-static decl_node getMax (decl_node n)
+static decl_node__opaque getMax (decl_node__opaque n)
 {
-  n = decl_skipType (n);
-  if (decl_isSubrange (n))
+  n = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (n)));
+  if (decl_isSubrange (static_cast<decl_node> (n)))
     {
       return n->subrangeF.high;
     }
-  else if (decl_isEnumeration (n))
+  else if (decl_isEnumeration (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       return n->enumerationF.high;
@@ -12533,14 +12347,14 @@ static decl_node getMax (decl_node n)
    getMin -
 */
 
-static decl_node getMin (decl_node n)
+static decl_node__opaque getMin (decl_node__opaque n)
 {
-  n = decl_skipType (n);
-  if (decl_isSubrange (n))
+  n = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (n)));
+  if (decl_isSubrange (static_cast<decl_node> (n)))
     {
       return n->subrangeF.low;
     }
-  else if (decl_isEnumeration (n))
+  else if (decl_isEnumeration (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       return n->enumerationF.low;
@@ -12560,7 +12374,7 @@ static decl_node getMin (decl_node n)
    doSubtractC -
 */
 
-static void doSubtractC (mcPretty_pretty p, decl_node s)
+static void doSubtractC (mcPretty_pretty p, decl_node__opaque s)
 {
   if (! (isZero (s)))
     {
@@ -12574,12 +12388,12 @@ static void doSubtractC (mcPretty_pretty p, decl_node s)
    doSubrC -
 */
 
-static void doSubrC (mcPretty_pretty p, decl_node s)
+static void doSubrC (mcPretty_pretty p, decl_node__opaque s)
 {
-  decl_node low;
-  decl_node high;
+  decl_node__opaque low;
+  decl_node__opaque high;
 
-  s = decl_skipType (s);
+  s = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (s)));
   if (isOrdinal (s))
     {
       low = getMin (s);
@@ -12588,7 +12402,7 @@ static void doSubrC (mcPretty_pretty p, decl_node s)
       doSubtractC (p, low);
       outText (p, (const char *) "+1", 2);
     }
-  else if (decl_isEnumeration (s))
+  else if (decl_isEnumeration (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       low = getMin (s);
@@ -12600,10 +12414,10 @@ static void doSubrC (mcPretty_pretty p, decl_node s)
   else
     {
       /* avoid dangling else.  */
-      mcDebug_assert (decl_isSubrange (s));
+      mcDebug_assert (decl_isSubrange (static_cast<decl_node> (s)));
       if ((s->subrangeF.high == NULL) || (s->subrangeF.low == NULL))
         {
-          doSubrC (p, decl_getType (s));
+          doSubrC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (s))));
         }
       else
         {
@@ -12619,18 +12433,32 @@ static void doSubrC (mcPretty_pretty p, decl_node s)
    doCompletePartialProcType -
 */
 
-static void doCompletePartialProcType (mcPretty_pretty p, decl_node t, decl_node n)
+static void doCompletePartialProcType (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque n)
+{
+  if ((isDeclType (t)) && (isDeclType (n)))
+    {
+      outputCompletePartialProcType (p, t, n);
+    }
+}
+
+
+/*
+   outputCompletePartialProcType -
+*/
+
+static void outputCompletePartialProcType (mcPretty_pretty p, decl_node__opaque t, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int h;
-  decl_node v;
-  decl_node u;
+  decl_node__opaque v;
+  decl_node__opaque u;
 
-  mcDebug_assert (decl_isProcType (n));
-  u = NULL;
+  mcDebug_assert (decl_isProcType (static_cast<decl_node> (n)));
+  u = static_cast<decl_node__opaque> (NULL);
   outText (p, (const char *) "typedef", 7);
   mcPretty_setNeedSpace (p);
   doTypeC (p, n->proctypeF.returnType, &u);
+  doOpaqueModifier (p, n);
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "(*", 2);
   doFQNameC (p, t);
@@ -12639,7 +12467,7 @@ static void doCompletePartialProcType (mcPretty_pretty p, decl_node t, decl_node
   h = Indexing_HighIndice (n->proctypeF.parameters);
   while (i <= h)
     {
-      v = static_cast<decl_node> (Indexing_GetIndice (n->proctypeF.parameters, i));
+      v = static_cast<decl_node__opaque> (Indexing_GetIndice (n->proctypeF.parameters, i));
       doParameterC (p, v);
       mcPretty_noSpace (p);
       if (i < h)
@@ -12679,7 +12507,7 @@ static void doCompletePartialProcType (mcPretty_pretty p, decl_node t, decl_node
    isBase -
 */
 
-static bool isBase (decl_node n)
+static bool isBase (decl_node__opaque n)
 {
   switch (n->kind)
     {
@@ -12733,7 +12561,7 @@ static void doBoolC (mcPretty_pretty p)
    doBaseC -
 */
 
-static void doBaseC (mcPretty_pretty p, decl_node n)
+static void doBaseC (mcPretty_pretty p, decl_node__opaque n)
 {
   switch (n->kind)
     {
@@ -12814,7 +12642,7 @@ static void doBaseC (mcPretty_pretty p, decl_node n)
    isSystem -
 */
 
-static bool isSystem (decl_node n)
+static bool isSystem (decl_node__opaque n)
 {
   switch (n->kind)
     {
@@ -12856,7 +12684,7 @@ static bool isSystem (decl_node n)
    doSystemC -
 */
 
-static void doSystemC (mcPretty_pretty p, decl_node n)
+static void doSystemC (mcPretty_pretty p, decl_node__opaque n)
 {
   switch (n->kind)
     {
@@ -12903,16 +12731,16 @@ static void doSystemC (mcPretty_pretty p, decl_node n)
    doArrayC -
 */
 
-static void doArrayC (mcPretty_pretty p, decl_node n)
+static void doArrayC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
-  decl_node s;
-  decl_node u;
+  decl_node__opaque t;
+  decl_node__opaque s;
+  decl_node__opaque u;
 
-  mcDebug_assert (decl_isArray (n));
+  mcDebug_assert (decl_isArray (static_cast<decl_node> (n)));
   t = n->arrayF.type;
   s = n->arrayF.subr;
-  u = NULL;
+  u = static_cast<decl_node__opaque> (NULL);
   if (s == NULL)
     {
       doTypeC (p, t, &u);
@@ -12949,13 +12777,13 @@ static void doArrayC (mcPretty_pretty p, decl_node n)
    doPointerC -
 */
 
-static void doPointerC (mcPretty_pretty p, decl_node n, decl_node *m)
+static void doPointerC (mcPretty_pretty p, decl_node__opaque n, decl_node__opaque *m)
 {
-  decl_node t;
-  decl_node s;
+  decl_node__opaque t;
+  decl_node__opaque s;
 
   t = n->pointerF.type;
-  s = NULL;
+  s = static_cast<decl_node__opaque> (NULL);
   doTypeC (p, t, &s);
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "*", 1);
@@ -12966,13 +12794,18 @@ static void doPointerC (mcPretty_pretty p, decl_node n, decl_node *m)
    doRecordFieldC -
 */
 
-static void doRecordFieldC (mcPretty_pretty p, decl_node f)
+static void doRecordFieldC (mcPretty_pretty p, decl_node__opaque f)
 {
-  decl_node m;
+  decl_node__opaque m;
 
-  m = NULL;
+  m = static_cast<decl_node__opaque> (NULL);
   mcPretty_setNeedSpace (p);
   doTypeC (p, f->recordfieldF.type, &m);
+  if ((decl_isType (static_cast<decl_node> (f->recordfieldF.type))) && (isDeclInImp (f->recordfieldF.type)))
+    {
+      outText (p, (const char *) "__opaque", 8);
+    }
+  mcPretty_setNeedSpace (p);
   doDNameC (p, f, false);
 }
 
@@ -12981,13 +12814,13 @@ static void doRecordFieldC (mcPretty_pretty p, decl_node f)
    doVarientFieldC -
 */
 
-static void doVarientFieldC (mcPretty_pretty p, decl_node n)
+static void doVarientFieldC (mcPretty_pretty p, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
-  mcDebug_assert (decl_isVarientField (n));
+  mcDebug_assert (decl_isVarientField (static_cast<decl_node> (n)));
   if (! n->varientfieldF.simple)
     {
       outText (p, (const char *) "struct", 6);
@@ -12998,8 +12831,8 @@ static void doVarientFieldC (mcPretty_pretty p, decl_node n)
   t = Indexing_HighIndice (n->varientfieldF.listOfSons);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->varientfieldF.listOfSons, i));
-      if (decl_isRecordField (q))
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->varientfieldF.listOfSons, i));
+      if (decl_isRecordField (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           if (! q->recordfieldF.tag)
@@ -13008,7 +12841,7 @@ static void doVarientFieldC (mcPretty_pretty p, decl_node n)
               outText (p, (const char *) ";\\n", 3);
             }
         }
-      else if (decl_isVarient (q))
+      else if (decl_isVarient (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           doVarientC (p, q);
@@ -13033,22 +12866,22 @@ static void doVarientFieldC (mcPretty_pretty p, decl_node n)
    doVarientC -
 */
 
-static void doVarientC (mcPretty_pretty p, decl_node n)
+static void doVarientC (mcPretty_pretty p, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
-  mcDebug_assert (decl_isVarient (n));
+  mcDebug_assert (decl_isVarient (static_cast<decl_node> (n)));
   if (n->varientF.tag != NULL)
     {
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-      if (decl_isRecordField (n->varientF.tag))
+      if (decl_isRecordField (static_cast<decl_node> (n->varientF.tag)))
         {
           doRecordFieldC (p, n->varientF.tag);
           outText (p, (const char *) ";  /* case tag */\\n", 19);
         }
-      else if (decl_isVarientField (n->varientF.tag))
+      else if (decl_isVarientField (static_cast<decl_node> (n->varientF.tag)))
         {
           /* avoid dangling else.  */
           /* doVarientFieldC (p, n^.varientF.tag)  */
@@ -13069,8 +12902,8 @@ static void doVarientC (mcPretty_pretty p, decl_node n)
   t = Indexing_HighIndice (n->varientF.listOfSons);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->varientF.listOfSons, i));
-      if (decl_isRecordField (q))
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->varientF.listOfSons, i));
+      if (decl_isRecordField (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           if (! q->recordfieldF.tag)
@@ -13079,7 +12912,7 @@ static void doVarientC (mcPretty_pretty p, decl_node n)
               outText (p, (const char *) ";\\n", 3);
             }
         }
-      else if (decl_isVarientField (q))
+      else if (decl_isVarientField (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           doVarientFieldC (p, q);
@@ -13100,13 +12933,13 @@ static void doVarientC (mcPretty_pretty p, decl_node n)
    doRecordC -
 */
 
-static void doRecordC (mcPretty_pretty p, decl_node n, decl_node *m)
+static void doRecordC (mcPretty_pretty p, decl_node__opaque n, decl_node__opaque *m)
 {
   unsigned int i;
   unsigned int h;
-  decl_node f;
+  decl_node__opaque f;
 
-  mcDebug_assert (decl_isRecord (n));
+  mcDebug_assert (decl_isRecord (static_cast<decl_node> (n)));
   outText (p, (const char *) "struct", 6);
   mcPretty_setNeedSpace (p);
   p = outKc (p, (const char *) "{", 1);
@@ -13116,8 +12949,8 @@ static void doRecordC (mcPretty_pretty p, decl_node n, decl_node *m)
   outText (p, (const char *) "\\n", 2);
   while (i <= h)
     {
-      f = static_cast<decl_node> (Indexing_GetIndice (n->recordF.listOfSons, i));
-      if (decl_isRecordField (f))
+      f = static_cast<decl_node__opaque> (Indexing_GetIndice (n->recordF.listOfSons, i));
+      if (decl_isRecordField (static_cast<decl_node> (f)))
         {
           /* avoid dangling else.  */
           if (! f->recordfieldF.tag)
@@ -13126,13 +12959,13 @@ static void doRecordC (mcPretty_pretty p, decl_node n, decl_node *m)
               outText (p, (const char *) ";\\n", 3);
             }
         }
-      else if (decl_isVarient (f))
+      else if (decl_isVarient (static_cast<decl_node> (f)))
         {
           /* avoid dangling else.  */
           doVarientC (p, f);
           outText (p, (const char *) ";\\n", 3);
         }
-      else if (decl_isVarientField (f))
+      else if (decl_isVarientField (static_cast<decl_node> (f)))
         {
           /* avoid dangling else.  */
           doVarientFieldC (p, f);
@@ -13148,7 +12981,7 @@ static void doRecordC (mcPretty_pretty p, decl_node n, decl_node *m)
    isBitset -
 */
 
-static bool isBitset (decl_node n)
+static bool isBitset (decl_node__opaque n)
 {
   return n == bitsetN;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -13160,7 +12993,7 @@ static bool isBitset (decl_node n)
    isNegative - returns TRUE if expression, n, is negative.
 */
 
-static bool isNegative (decl_node n)
+static bool isNegative (decl_node__opaque n)
 {
   /* --fixme-- needs to be completed.  */
   return false;
@@ -13173,9 +13006,9 @@ static bool isNegative (decl_node n)
    doSubrangeC -
 */
 
-static void doSubrangeC (mcPretty_pretty p, decl_node n)
+static void doSubrangeC (mcPretty_pretty p, decl_node__opaque n)
 {
-  mcDebug_assert (decl_isSubrange (n));
+  mcDebug_assert (decl_isSubrange (static_cast<decl_node> (n)));
   if (isNegative (n->subrangeF.low))
     {
       outText (p, (const char *) "int", 3);
@@ -13194,9 +13027,9 @@ static void doSubrangeC (mcPretty_pretty p, decl_node n)
             Currently we only support sets of size WORD.
 */
 
-static void doSetC (mcPretty_pretty p, decl_node n)
+static void doSetC (mcPretty_pretty p, decl_node__opaque n)
 {
-  mcDebug_assert (decl_isSet (n));
+  mcDebug_assert (decl_isSet (static_cast<decl_node> (n)));
   outText (p, (const char *) "unsigned int", 12);
   mcPretty_setNeedSpace (p);
 }
@@ -13206,7 +13039,7 @@ static void doSetC (mcPretty_pretty p, decl_node n)
    doTypeC -
 */
 
-static void doTypeC (mcPretty_pretty p, decl_node n, decl_node *m)
+static void doTypeC (mcPretty_pretty p, decl_node__opaque n, decl_node__opaque *m)
 {
   if (n == NULL)
     {
@@ -13222,48 +13055,42 @@ static void doTypeC (mcPretty_pretty p, decl_node n, decl_node *m)
       /* avoid dangling else.  */
       doSystemC (p, n);
     }
-  else if (decl_isEnumeration (n))
+  else if (decl_isEnumeration (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doEnumerationC (p, n);
     }
-  else if (decl_isType (n))
+  else if (decl_isType (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doFQNameC (p, n);
-      /* 
-   ELSIF isProcType (n) OR isArray (n) OR isRecord (n)
-   THEN
-      HALT   n should have been simplified.  
-  */
-      mcPretty_setNeedSpace (p);
     }
-  else if (decl_isProcType (n))
+  else if (decl_isProcType (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doProcTypeC (p, n, (*m));
     }
-  else if (decl_isArray (n))
+  else if (decl_isArray (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doArrayC (p, n);
     }
-  else if (decl_isRecord (n))
+  else if (decl_isRecord (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doRecordC (p, n, m);
     }
-  else if (decl_isPointer (n))
+  else if (decl_isPointer (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doPointerC (p, n, m);
     }
-  else if (decl_isSubrange (n))
+  else if (decl_isSubrange (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doSubrangeC (p, n);
     }
-  else if (decl_isSet (n))
+  else if (decl_isSet (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doSetC (p, n);
@@ -13285,9 +13112,9 @@ static void doTypeC (mcPretty_pretty p, decl_node n, decl_node *m)
    doArrayNameC - it displays the array declaration (it might be an unbounded).
 */
 
-static void doArrayNameC (mcPretty_pretty p, decl_node n)
+static void doArrayNameC (mcPretty_pretty p, decl_node__opaque n)
 {
-  doTypeNameC (p, decl_getType (n));
+  doTypeNameC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "*", 1);
 }
@@ -13297,7 +13124,7 @@ static void doArrayNameC (mcPretty_pretty p, decl_node n)
    doRecordNameC - emit the C/C++ record name <name of n>"_r".
 */
 
-static void doRecordNameC (mcPretty_pretty p, decl_node n)
+static void doRecordNameC (mcPretty_pretty p, decl_node__opaque n)
 {
   DynamicStrings_String s;
 
@@ -13312,9 +13139,9 @@ static void doRecordNameC (mcPretty_pretty p, decl_node n)
    doPointerNameC - emit the C/C++ pointer type <name of n>*.
 */
 
-static void doPointerNameC (mcPretty_pretty p, decl_node n)
+static void doPointerNameC (mcPretty_pretty p, decl_node__opaque n)
 {
-  doTypeNameC (p, decl_getType (n));
+  doTypeNameC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "*", 1);
 }
@@ -13324,7 +13151,7 @@ static void doPointerNameC (mcPretty_pretty p, decl_node n)
    doTypeNameC -
 */
 
-static void doTypeNameC (mcPretty_pretty p, decl_node n)
+static void doTypeNameC (mcPretty_pretty p, decl_node__opaque n)
 {
   DynamicStrings_String t;
 
@@ -13343,38 +13170,38 @@ static void doTypeNameC (mcPretty_pretty p, decl_node n)
       /* avoid dangling else.  */
       doSystemC (p, n);
     }
-  else if (decl_isEnumeration (n))
+  else if (decl_isEnumeration (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       mcPretty_print (p, (const char *) "is enumeration type name required\\n", 35);
     }
-  else if (decl_isType (n))
+  else if (decl_isType (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doFQNameC (p, n);
     }
-  else if (decl_isProcType (n))
+  else if (decl_isProcType (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doFQNameC (p, n);
       outText (p, (const char *) "_t", 2);
     }
-  else if (decl_isArray (n))
+  else if (decl_isArray (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doArrayNameC (p, n);
     }
-  else if (decl_isRecord (n))
+  else if (decl_isRecord (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doRecordNameC (p, n);
     }
-  else if (decl_isPointer (n))
+  else if (decl_isPointer (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doPointerNameC (p, n);
     }
-  else if (decl_isSubrange (n))
+  else if (decl_isSubrange (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doSubrangeC (p, n);
@@ -13383,7 +13210,6 @@ static void doTypeNameC (mcPretty_pretty p, decl_node n)
     {
       /* avoid dangling else.  */
       mcPretty_print (p, (const char *) "is type unknown required\\n", 26);
-      stop ();
     }
 }
 
@@ -13392,51 +13218,91 @@ static void doTypeNameC (mcPretty_pretty p, decl_node n)
    isExternal - returns TRUE if symbol, n, was declared in another module.
 */
 
-static bool isExternal (decl_node n)
+static bool isExternal (decl_node__opaque n)
 {
-  decl_node s;
+  decl_node__opaque s;
 
-  s = decl_getScope (n);
-  return ((s != NULL) && (decl_isDef (s))) && (((decl_isImp (decl_getMainModule ())) && (s != (decl_lookupDef (decl_getSymName (decl_getMainModule ()))))) || (decl_isModule (decl_getMainModule ())));
+  s = static_cast<decl_node__opaque> (decl_getScope (static_cast<decl_node> (n)));
+  return ((s != NULL) && (decl_isDef (static_cast<decl_node> (s)))) && (((decl_isImp (decl_getMainModule ())) && (s != (decl_lookupDef (decl_getSymName (decl_getMainModule ()))))) || (decl_isModule (decl_getMainModule ())));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   doVarC -
+   doOpaqueModifier - adds postfix __opaque providing n uses an opaque type which is
+                      not represented by ( void * ).  n is a non type node which might
+                      be using an opaque type.  For example a var or param node.
+*/
+
+static void doOpaqueModifier (mcPretty_pretty p, decl_node__opaque n)
+{
+  mcDebug_assert (! (decl_isType (static_cast<decl_node> (n))));
+  if (((decl_isImp (decl_getCurrentModule ())) && (nodeUsesOpaque (n))) && (! (getNodeOpaqueVoidStar (n))))
+    {
+      outText (doP, (const char *) "__opaque", 8);
+    }
+}
+
+
+/*
+   doDeclareVarC -
 */
 
-static void doVarC (decl_node n)
+static void doDeclareVarC (decl_node__opaque n)
 {
-  decl_node s;
+  decl_node__opaque type;
+  decl_node__opaque s;
+
+  s = static_cast<decl_node__opaque> (NULL);
+  type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+  doTypeC (doP, type, &s);
+  doOpaqueModifier (doP, n);
+  mcPretty_setNeedSpace (doP);
+  doFQDNameC (doP, n, false);
+  mcPretty_print (doP, (const char *) ";\\n", 3);
+}
 
+
+/*
+   doVarC - output a variable declaration.  Note that we do not generate
+            a declaration if we are translating the implementation module
+            and a variable is exported as the variable will be in the .h
+            file to avoid all -Wodr issues.
+*/
+
+static void doVarC (decl_node__opaque n)
+{
   if (decl_isDef (decl_getMainModule ()))
     {
       mcPretty_print (doP, (const char *) "EXTERN", 6);
       mcPretty_setNeedSpace (doP);
+      doDeclareVarC (n);
     }
-  else if ((! (decl_isExported (n))) && (! (isLocal (n))))
+  else if ((! (decl_isExported (static_cast<decl_node> (n)))) && (! (isLocal (n))))
     {
       /* avoid dangling else.  */
       mcPretty_print (doP, (const char *) "static", 6);
       mcPretty_setNeedSpace (doP);
+      doDeclareVarC (n);
     }
   else if (mcOptions_getExtendedOpaque ())
     {
       /* avoid dangling else.  */
+      /* --fixme-- need to revisit extended opaque.  */
       if (isExternal (n))
         {
           /* different module declared this variable, therefore it is extern.  */
           mcPretty_print (doP, (const char *) "extern", 6);
           mcPretty_setNeedSpace (doP);
         }
+      doDeclareVarC (n);
+    }
+  else if (isLocal (n))
+    {
+      /* avoid dangling else.  */
+      doDeclareVarC (n);
     }
-  s = NULL;
-  doTypeC (doP, decl_getType (n), &s);
-  mcPretty_setNeedSpace (doP);
-  doFQDNameC (doP, n, false);
-  mcPretty_print (doP, (const char *) ";\\n", 3);
 }
 
 
@@ -13489,14 +13355,21 @@ static void doProcedureComment (mcPretty_pretty p, DynamicStrings_String s)
    doProcedureHeadingC -
 */
 
-static void doProcedureHeadingC (decl_node n, bool prototype)
+static void doProcedureHeadingC (decl_node__opaque n, bool prototype)
 {
+  DynamicStrings_String s;
   unsigned int i;
   unsigned int h;
-  decl_node p;
-  decl_node q;
+  decl_node__opaque p;
+  decl_node__opaque q;
 
-  mcDebug_assert (decl_isProcedure (n));
+  mcDebug_assert (decl_isProcedure (static_cast<decl_node> (n)));
+  s = getFQstring (n);
+  if (DynamicStrings_EqualArray (s, (const char *) "M2Quads_BuildAssignment", 23))
+    {
+      localstop ();
+    }
+  s = DynamicStrings_KillString (s);
   mcPretty_noSpace (doP);
   if (decl_isDef (decl_getMainModule ()))
     {
@@ -13504,7 +13377,7 @@ static void doProcedureHeadingC (decl_node n, bool prototype)
       outText (doP, (const char *) "EXTERN", 6);
       mcPretty_setNeedSpace (doP);
     }
-  else if (decl_isExported (n))
+  else if (decl_isExported (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doProcedureComment (doP, mcComment_getContent (n->procedureF.modComment));
@@ -13517,8 +13390,15 @@ static void doProcedureHeadingC (decl_node n, bool prototype)
       outText (doP, (const char *) "static", 6);
       mcPretty_setNeedSpace (doP);
     }
-  q = NULL;
+  q = static_cast<decl_node__opaque> (NULL);
   doTypeC (doP, n->procedureF.returnType, &q);
+  /* 
+   IF NOT isExported (n)
+   THEN
+      doTypeNameModifier (doP, n^.procedureF.returnType)
+   END ;
+  */
+  doOpaqueModifier (doP, n);
   mcPretty_setNeedSpace (doP);
   doFQDNameC (doP, n, false);
   mcPretty_setNeedSpace (doP);
@@ -13527,7 +13407,7 @@ static void doProcedureHeadingC (decl_node n, bool prototype)
   h = Indexing_HighIndice (n->procedureF.parameters);
   while (i <= h)
     {
-      p = static_cast<decl_node> (Indexing_GetIndice (n->procedureF.parameters, i));
+      p = static_cast<decl_node__opaque> (Indexing_GetIndice (n->procedureF.parameters, i));
       doParameterC (doP, p);
       mcPretty_noSpace (doP);
       if (i < h)
@@ -13554,20 +13434,20 @@ static void doProcedureHeadingC (decl_node n, bool prototype)
    checkDeclareUnboundedParamCopyC -
 */
 
-static bool checkDeclareUnboundedParamCopyC (mcPretty_pretty p, decl_node n)
+static bool checkDeclareUnboundedParamCopyC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
   unsigned int i;
   unsigned int c;
   wlists_wlist l;
   bool seen;
 
   seen = false;
-  t = decl_getType (n);
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   l = n->paramF.namelist->identlistF.names;
-  if (((decl_isArray (t)) && (decl_isUnbounded (t))) && (l != NULL))
+  if (((decl_isArray (static_cast<decl_node> (t))) && (decl_isUnbounded (static_cast<decl_node> (t)))) && (l != NULL))
     {
-      t = decl_getType (t);
+      t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (t)));
       c = wlists_noOfItemsInList (l);
       i = 1;
       while (i <= c)
@@ -13592,22 +13472,22 @@ static bool checkDeclareUnboundedParamCopyC (mcPretty_pretty p, decl_node n)
    checkUnboundedParamCopyC -
 */
 
-static void checkUnboundedParamCopyC (mcPretty_pretty p, decl_node n)
+static void checkUnboundedParamCopyC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
-  decl_node s;
+  decl_node__opaque t;
+  decl_node__opaque s;
   unsigned int i;
   unsigned int c;
   wlists_wlist l;
 
-  t = decl_getType (n);
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   l = n->paramF.namelist->identlistF.names;
-  if (((decl_isArray (t)) && (decl_isUnbounded (t))) && (l != NULL))
+  if (((decl_isArray (static_cast<decl_node> (t))) && (decl_isUnbounded (static_cast<decl_node> (t)))) && (l != NULL))
     {
       c = wlists_noOfItemsInList (l);
       i = 1;
-      t = decl_getType (t);
-      s = decl_skipType (t);
+      t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (t)));
+      s = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (t)));
       while (i <= c)
         {
           keyc_useMemcpy ();
@@ -13642,21 +13522,21 @@ static void checkUnboundedParamCopyC (mcPretty_pretty p, decl_node n)
    doUnboundedParamCopyC -
 */
 
-static void doUnboundedParamCopyC (mcPretty_pretty p, decl_node n)
+static void doUnboundedParamCopyC (mcPretty_pretty p, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int h;
-  decl_node q;
+  decl_node__opaque q;
   bool seen;
 
-  mcDebug_assert (decl_isProcedure (n));
+  mcDebug_assert (decl_isProcedure (static_cast<decl_node> (n)));
   i = Indexing_LowIndice (n->procedureF.parameters);
   h = Indexing_HighIndice (n->procedureF.parameters);
   seen = false;
   while (i <= h)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->procedureF.parameters, i));
-      if (decl_isParam (q))
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->procedureF.parameters, i));
+      if (decl_isParam (static_cast<decl_node> (q)))
         {
           seen = (checkDeclareUnboundedParamCopyC (p, q)) || seen;
         }
@@ -13669,8 +13549,8 @@ static void doUnboundedParamCopyC (mcPretty_pretty p, decl_node n)
       i = Indexing_LowIndice (n->procedureF.parameters);
       while (i <= h)
         {
-          q = static_cast<decl_node> (Indexing_GetIndice (n->procedureF.parameters, i));
-          if (decl_isParam (q))
+          q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->procedureF.parameters, i));
+          if (decl_isParam (static_cast<decl_node> (q)))
             {
               checkUnboundedParamCopyC (p, q);
             }
@@ -13684,14 +13564,14 @@ static void doUnboundedParamCopyC (mcPretty_pretty p, decl_node n)
    doPrototypeC -
 */
 
-static void doPrototypeC (decl_node n)
+static void doPrototypeC (decl_node__opaque n)
 {
-  if (! (decl_isExported (n)))
+  if (! (decl_isExported (static_cast<decl_node> (n))))
     {
-      keyc_enterScope (n);
+      keyc_enterScope (static_cast<decl_node> (n));
       doProcedureHeadingC (n, true);
       mcPretty_print (doP, (const char *) ";\\n", 3);
-      keyc_leaveScope (n);
+      keyc_leaveScope (static_cast<decl_node> (n));
     }
 }
 
@@ -13700,13 +13580,13 @@ static void doPrototypeC (decl_node n)
    addTodo - adds, n, to the todo list.
 */
 
-static void addTodo (decl_node n)
+static void addTodo (decl_node__opaque n)
 {
   if (((n != NULL) && (! (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (n))))) && (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n)))))
     {
-      mcDebug_assert (! (decl_isVarient (n)));
-      mcDebug_assert (! (decl_isVarientField (n)));
-      mcDebug_assert (! (decl_isDef (n)));
+      mcDebug_assert (! (decl_isVarient (static_cast<decl_node> (n))));
+      mcDebug_assert (! (decl_isVarientField (static_cast<decl_node> (n))));
+      mcDebug_assert (! (decl_isDef (static_cast<decl_node> (n))));
       alists_includeItemIntoList (globalGroup->todoQ, reinterpret_cast<void *> (n));
     }
 }
@@ -13716,15 +13596,15 @@ static void addTodo (decl_node n)
    addVariablesTodo -
 */
 
-static void addVariablesTodo (decl_node n)
+static void addVariablesTodo (decl_node__opaque n)
 {
-  if (decl_isVar (n))
+  if (decl_isVar (static_cast<decl_node> (n)))
     {
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
       if (n->varF.isParameter || n->varF.isVarParameter)
         {
           addDone (n);
-          addTodo (decl_getType (n));
+          addTodo (static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
         }
       else
         {
@@ -13738,9 +13618,9 @@ static void addVariablesTodo (decl_node n)
    addTypesTodo -
 */
 
-static void addTypesTodo (decl_node n)
+static void addTypesTodo (decl_node__opaque n)
 {
-  if (decl_isUnbounded (n))
+  if (decl_isUnbounded (static_cast<decl_node> (n)))
     {
       addDone (n);
     }
@@ -13768,16 +13648,16 @@ static DynamicStrings_String tempName (void)
    makeIntermediateType -
 */
 
-static decl_node makeIntermediateType (DynamicStrings_String s, decl_node p)
+static decl_node__opaque makeIntermediateType (DynamicStrings_String s, decl_node__opaque p)
 {
   nameKey_Name n;
-  decl_node o;
+  decl_node__opaque o;
 
   n = nameKey_makekey (DynamicStrings_string (s));
-  decl_enterScope (decl_getScope (p));
+  decl_enterScope (decl_getScope (static_cast<decl_node> (p)));
   o = p;
-  p = decl_makeType (nameKey_makekey (DynamicStrings_string (s)));
-  decl_putType (p, o);
+  p = static_cast<decl_node__opaque> (decl_makeType (nameKey_makekey (DynamicStrings_string (s))));
+  decl_putType (static_cast<decl_node> (p), static_cast<decl_node> (o));
   putTypeInternal (p);
   decl_leaveScope ();
   return p;
@@ -13790,11 +13670,11 @@ static decl_node makeIntermediateType (DynamicStrings_String s, decl_node p)
    simplifyType -
 */
 
-static void simplifyType (alists_alist l, decl_node *p)
+static void simplifyType (alists_alist l, decl_node__opaque *p)
 {
   DynamicStrings_String s;
 
-  if ((((*p) != NULL) && (((decl_isRecord ((*p))) || (decl_isArray ((*p)))) || (decl_isProcType ((*p))))) && (! (decl_isUnbounded ((*p)))))
+  if ((((*p) != NULL) && (((decl_isRecord (static_cast<decl_node> ((*p)))) || (decl_isArray (static_cast<decl_node> ((*p))))) || (decl_isProcType (static_cast<decl_node> ((*p)))))) && (! (decl_isUnbounded (static_cast<decl_node> ((*p))))))
     {
       s = tempName ();
       (*p) = makeIntermediateType (s, (*p));
@@ -13809,15 +13689,15 @@ static void simplifyType (alists_alist l, decl_node *p)
    simplifyVar -
 */
 
-static void simplifyVar (alists_alist l, decl_node n)
+static void simplifyVar (alists_alist l, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int t;
-  decl_node v;
-  decl_node d;
-  decl_node o;
+  decl_node__opaque v;
+  decl_node__opaque d;
+  decl_node__opaque o;
 
-  mcDebug_assert (decl_isVar (n));
+  mcDebug_assert (decl_isVar (static_cast<decl_node> (n)));
   o = n->varF.type;
   simplifyType (l, &n->varF.type);
   if (o != n->varF.type)
@@ -13830,8 +13710,8 @@ static void simplifyVar (alists_alist l, decl_node n)
       i = 1;
       while (i <= t)
         {
-          v = decl_lookupInScope (n->varF.scope, wlists_getItemFromList (d->vardeclF.names, i));
-          mcDebug_assert (decl_isVar (v));
+          v = static_cast<decl_node__opaque> (decl_lookupInScope (static_cast<decl_node> (n->varF.scope), wlists_getItemFromList (d->vardeclF.names, i)));
+          mcDebug_assert (decl_isVar (static_cast<decl_node> (v)));
           v->varF.type = n->varF.type;
           i += 1;
         }
@@ -13843,17 +13723,17 @@ static void simplifyVar (alists_alist l, decl_node n)
    simplifyRecord -
 */
 
-static void simplifyRecord (alists_alist l, decl_node n)
+static void simplifyRecord (alists_alist l, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
   i = Indexing_LowIndice (n->recordF.listOfSons);
   t = Indexing_HighIndice (n->recordF.listOfSons);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->recordF.listOfSons, i));
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->recordF.listOfSons, i));
       simplifyNode (l, q);
       i += 1;
     }
@@ -13864,18 +13744,18 @@ static void simplifyRecord (alists_alist l, decl_node n)
    simplifyVarient -
 */
 
-static void simplifyVarient (alists_alist l, decl_node n)
+static void simplifyVarient (alists_alist l, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
   simplifyNode (l, n->varientF.tag);
   i = Indexing_LowIndice (n->varientF.listOfSons);
   t = Indexing_HighIndice (n->varientF.listOfSons);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->varientF.listOfSons, i));
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->varientF.listOfSons, i));
       simplifyNode (l, q);
       i += 1;
     }
@@ -13886,17 +13766,17 @@ static void simplifyVarient (alists_alist l, decl_node n)
    simplifyVarientField -
 */
 
-static void simplifyVarientField (alists_alist l, decl_node n)
+static void simplifyVarientField (alists_alist l, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
   i = Indexing_LowIndice (n->varientfieldF.listOfSons);
   t = Indexing_HighIndice (n->varientfieldF.listOfSons);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->varientfieldF.listOfSons, i));
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->varientfieldF.listOfSons, i));
       simplifyNode (l, q);
       i += 1;
     }
@@ -13907,47 +13787,47 @@ static void simplifyVarientField (alists_alist l, decl_node n)
    doSimplifyNode -
 */
 
-static void doSimplifyNode (alists_alist l, decl_node n)
+static void doSimplifyNode (alists_alist l, decl_node__opaque n)
 {
   if (n == NULL)
     {}  /* empty.  */
-  else if (decl_isType (n))
+  else if (decl_isType (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       /* no need to simplify a type.  */
-      simplifyNode (l, decl_getType (n));
+      simplifyNode (l, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
     }
-  else if (decl_isVar (n))
+  else if (decl_isVar (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       simplifyVar (l, n);
     }
-  else if (decl_isRecord (n))
+  else if (decl_isRecord (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       simplifyRecord (l, n);
     }
-  else if (decl_isRecordField (n))
+  else if (decl_isRecordField (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       simplifyType (l, &n->recordfieldF.type);
     }
-  else if (decl_isArray (n))
+  else if (decl_isArray (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       simplifyType (l, &n->arrayF.type);
     }
-  else if (decl_isVarient (n))
+  else if (decl_isVarient (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       simplifyVarient (l, n);
     }
-  else if (decl_isVarientField (n))
+  else if (decl_isVarientField (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       simplifyVarientField (l, n);
     }
-  else if (decl_isPointer (n))
+  else if (decl_isPointer (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       simplifyType (l, &n->pointerF.type);
@@ -13959,7 +13839,7 @@ static void doSimplifyNode (alists_alist l, decl_node n)
    simplifyNode -
 */
 
-static void simplifyNode (alists_alist l, decl_node n)
+static void simplifyNode (alists_alist l, decl_node__opaque n)
 {
   if (! (alists_isItemInList (l, reinterpret_cast<void *> (n))))
     {
@@ -13973,7 +13853,7 @@ static void simplifyNode (alists_alist l, decl_node n)
    doSimplify -
 */
 
-static void doSimplify (decl_node n)
+static void doSimplify (decl_node__opaque n)
 {
   alists_alist l;
 
@@ -14001,7 +13881,7 @@ static void simplifyTypes (decl_scopeT s)
    outDeclsDefC -
 */
 
-static void outDeclsDefC (mcPretty_pretty p, decl_node n)
+static void outDeclsDefC (mcPretty_pretty p, decl_node__opaque n)
 {
   decl_scopeT s;
 
@@ -14053,7 +13933,7 @@ static void includeVar (decl_scopeT s)
    includeExternals -
 */
 
-static void includeExternals (decl_node n)
+static void includeExternals (decl_node__opaque n)
 {
   alists_alist l;
 
@@ -14067,7 +13947,7 @@ static void includeExternals (decl_node n)
    checkSystemInclude -
 */
 
-static void checkSystemInclude (decl_node n)
+static void checkSystemInclude (decl_node__opaque n)
 {
 }
 
@@ -14076,14 +13956,14 @@ static void checkSystemInclude (decl_node n)
    addExported -
 */
 
-static void addExported (decl_node n)
+static void addExported (decl_node__opaque n)
 {
-  decl_node s;
+  decl_node__opaque s;
 
-  s = decl_getScope (n);
-  if (((s != NULL) && (decl_isDef (s))) && (s != defModule))
+  s = static_cast<decl_node__opaque> (decl_getScope (static_cast<decl_node> (n)));
+  if (((s != NULL) && (decl_isDef (static_cast<decl_node> (s)))) && (s != defModule))
     {
-      if (((decl_isType (n)) || (decl_isVar (n))) || (decl_isConst (n)))
+      if (((decl_isType (static_cast<decl_node> (n))) || (decl_isVar (static_cast<decl_node> (n)))) || (decl_isConst (static_cast<decl_node> (n))))
         {
           addTodo (n);
         }
@@ -14096,12 +13976,12 @@ static void addExported (decl_node n)
                  implementation module and is not a hidden type.
 */
 
-static void addExternal (decl_node n)
+static void addExternal (decl_node__opaque n)
 {
-  if (((((decl_getScope (n)) == defModule) && (decl_isType (n))) && (decl_isTypeHidden (n))) && (! (mcOptions_getExtendedOpaque ())))
+  if (((((decl_getScope (static_cast<decl_node> (n))) == defModule) && (decl_isType (static_cast<decl_node> (n)))) && (decl_isTypeHidden (static_cast<decl_node> (n)))) && (! (mcOptions_getExtendedOpaque ())))
     {}  /* empty.  */
   /* do nothing.  */
-  else if (! (decl_isDef (n)))
+  else if (! (decl_isDef (static_cast<decl_node> (n))))
     {
       /* avoid dangling else.  */
       addTodo (n);
@@ -14113,13 +13993,13 @@ static void addExternal (decl_node n)
    includeDefConstType -
 */
 
-static void includeDefConstType (decl_node n)
+static void includeDefConstType (decl_node__opaque n)
 {
-  decl_node d;
+  decl_node__opaque d;
 
-  if (decl_isImp (n))
+  if (decl_isImp (static_cast<decl_node> (n)))
     {
-      defModule = decl_lookupDef (decl_getSymName (n));
+      defModule = static_cast<decl_node__opaque> (decl_lookupDef (decl_getSymName (static_cast<decl_node> (n))));
       if (defModule != NULL)
         {
           simplifyTypes (defModule->defF.decls);
@@ -14134,11 +14014,11 @@ static void includeDefConstType (decl_node n)
    runIncludeDefConstType -
 */
 
-static void runIncludeDefConstType (decl_node n)
+static void runIncludeDefConstType (decl_node__opaque n)
 {
-  decl_node d;
+  decl_node__opaque d;
 
-  if (decl_isDef (n))
+  if (decl_isDef (static_cast<decl_node> (n)))
     {
       simplifyTypes (n->defF.decls);
       includeConstType (n->defF.decls);
@@ -14152,13 +14032,13 @@ static void runIncludeDefConstType (decl_node n)
                     d, into implementation module, i.
 */
 
-static void joinProcedures (decl_node i, decl_node d)
+static void joinProcedures (decl_node__opaque i, decl_node__opaque d)
 {
   unsigned int h;
   unsigned int j;
 
-  mcDebug_assert (decl_isDef (d));
-  mcDebug_assert (decl_isImp (i));
+  mcDebug_assert (decl_isDef (static_cast<decl_node> (d)));
+  mcDebug_assert (decl_isImp (static_cast<decl_node> (i)));
   j = 1;
   h = Indexing_HighIndice (d->defF.decls.procedures);
   while (j <= h)
@@ -14173,14 +14053,14 @@ static void joinProcedures (decl_node i, decl_node d)
    includeDefVarProcedure -
 */
 
-static void includeDefVarProcedure (decl_node n)
+static void includeDefVarProcedure (decl_node__opaque n)
 {
-  decl_node d;
+  decl_node__opaque d;
 
-  if (decl_isImp (n))
+  if (decl_isImp (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
-      defModule = decl_lookupDef (decl_getSymName (n));
+      defModule = static_cast<decl_node__opaque> (decl_lookupDef (decl_getSymName (static_cast<decl_node> (n))));
       if (defModule != NULL)
         {
           /* 
@@ -14190,7 +14070,7 @@ static void includeDefVarProcedure (decl_node n)
           joinProcedures (n, defModule);
         }
     }
-  else if (decl_isDef (n))
+  else if (decl_isDef (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       includeVar (n->defF.decls);
@@ -14203,7 +14083,7 @@ static void includeDefVarProcedure (decl_node n)
    foreachModuleDo -
 */
 
-static void foreachModuleDo (decl_node n, symbolKey_performOperation p)
+static void foreachModuleDo (decl_node__opaque n, symbolKey_performOperation p)
 {
   decl_foreachDefModuleDo (p);
   decl_foreachModModuleDo (p);
@@ -14230,17 +14110,17 @@ static void outDeclsImpC (mcPretty_pretty p, decl_scopeT s)
    doStatementSequenceC -
 */
 
-static void doStatementSequenceC (mcPretty_pretty p, decl_node s)
+static void doStatementSequenceC (mcPretty_pretty p, decl_node__opaque s)
 {
   unsigned int i;
   unsigned int h;
 
-  mcDebug_assert (decl_isStatementSequence (s));
+  mcDebug_assert (decl_isStatementSequence (static_cast<decl_node> (s)));
   h = Indexing_HighIndice (s->stmtF.statements);
   i = 1;
   while (i <= h)
     {
-      doStatementsC (p, reinterpret_cast<decl_node> (Indexing_GetIndice (s->stmtF.statements, i)));
+      doStatementsC (p, static_cast<decl_node__opaque> (Indexing_GetIndice (s->stmtF.statements, i)));
       i += 1;
     }
 }
@@ -14250,9 +14130,9 @@ static void doStatementSequenceC (mcPretty_pretty p, decl_node s)
    isStatementSequenceEmpty -
 */
 
-static bool isStatementSequenceEmpty (decl_node s)
+static bool isStatementSequenceEmpty (decl_node__opaque s)
 {
-  mcDebug_assert (decl_isStatementSequence (s));
+  mcDebug_assert (decl_isStatementSequence (static_cast<decl_node> (s)));
   return (Indexing_HighIndice (s->stmtF.statements)) == 0;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -14264,18 +14144,18 @@ static bool isStatementSequenceEmpty (decl_node s)
                        only one statement.
 */
 
-static bool isSingleStatement (decl_node s)
+static bool isSingleStatement (decl_node__opaque s)
 {
   unsigned int h;
 
-  mcDebug_assert (decl_isStatementSequence (s));
+  mcDebug_assert (decl_isStatementSequence (static_cast<decl_node> (s)));
   h = Indexing_HighIndice (s->stmtF.statements);
   if ((h == 0) || (h > 1))
     {
       return false;
     }
-  s = static_cast<decl_node> (Indexing_GetIndice (s->stmtF.statements, 1));
-  return (! (decl_isStatementSequence (s))) || (isSingleStatement (s));
+  s = static_cast<decl_node__opaque> (Indexing_GetIndice (s->stmtF.statements, 1));
+  return (! (decl_isStatementSequence (static_cast<decl_node> (s)))) || (isSingleStatement (s));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -14285,7 +14165,7 @@ static bool isSingleStatement (decl_node s)
    doCommentC -
 */
 
-static void doCommentC (mcPretty_pretty p, decl_node s)
+static void doCommentC (mcPretty_pretty p, decl_node__opaque s)
 {
   DynamicStrings_String c;
 
@@ -14316,7 +14196,7 @@ static void doCommentC (mcPretty_pretty p, decl_node s)
    doAfterCommentC - emit an after comment, c, or a newline if, c, is empty.
 */
 
-static void doAfterCommentC (mcPretty_pretty p, decl_node c)
+static void doAfterCommentC (mcPretty_pretty p, decl_node__opaque c)
 {
   if (c == NULL)
     {
@@ -14333,21 +14213,30 @@ static void doAfterCommentC (mcPretty_pretty p, decl_node c)
    doReturnC - issue a return statement and also place in an after comment if one exists.
 */
 
-static void doReturnC (mcPretty_pretty p, decl_node s)
+static void doReturnC (mcPretty_pretty p, decl_node__opaque s)
 {
-  mcDebug_assert (decl_isReturn (s));
+  decl_node__opaque type;
+
+  mcDebug_assert (decl_isReturn (static_cast<decl_node> (s)));
   doCommentC (p, s->returnF.returnComment.body);
   outText (p, (const char *) "return", 6);
-  if (s->returnF.scope != NULL)
+  if ((s->returnF.scope != NULL) && (s->returnF.exp != NULL))
     {
       mcPretty_setNeedSpace (p);
-      if ((! (decl_isProcedure (s->returnF.scope))) || ((decl_getType (s->returnF.scope)) == NULL))
+      if ((! (decl_isProcedure (static_cast<decl_node> (s->returnF.scope)))) || ((decl_getType (static_cast<decl_node> (s->returnF.scope))) == NULL))
         {
           mcMetaError_metaError1 ((const char *) "{%1DMad} has no return type", 27, (const unsigned char *) &s->returnF.scope, (sizeof (s->returnF.scope)-1));
         }
       else
         {
-          doExprCastC (p, s->returnF.exp, decl_getType (s->returnF.scope));
+          if ((decl_isProcedure (static_cast<decl_node> (s->returnF.scope))) && (nodeUsesOpaque (s->returnF.scope)))
+            {
+              forceCastOpaque (p, s->returnF.scope, s->returnF.exp, getNodeOpaqueVoidStar (s->returnF.scope));
+            }
+          else
+            {
+              doExprCastC (p, s->returnF.exp, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (s->returnF.scope))));
+            }
         }
     }
   outText (p, (const char *) ";", 1);
@@ -14359,7 +14248,7 @@ static void doReturnC (mcPretty_pretty p, decl_node s)
    isZtypeEquivalent -
 */
 
-static bool isZtypeEquivalent (decl_node type)
+static bool isZtypeEquivalent (decl_node__opaque type)
 {
   switch (type->kind)
     {
@@ -14387,10 +14276,10 @@ static bool isZtypeEquivalent (decl_node type)
    isEquivalentType - returns TRUE if type1 and type2 are equivalent.
 */
 
-static bool isEquivalentType (decl_node type1, decl_node type2)
+static bool isEquivalentType (decl_node__opaque type1, decl_node__opaque type2)
 {
-  type1 = decl_skipType (type1);
-  type2 = decl_skipType (type2);
+  type1 = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (type1)));
+  type2 = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (type2)));
   return (type1 == type2) || ((isZtypeEquivalent (type1)) && (isZtypeEquivalent (type2)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -14401,31 +14290,31 @@ static bool isEquivalentType (decl_node type1, decl_node type2)
    doExprCastC - build a cast if necessary.
 */
 
-static void doExprCastC (mcPretty_pretty p, decl_node e, decl_node type)
+static void doExprCastC (mcPretty_pretty p, decl_node__opaque e, decl_node__opaque type)
 {
-  decl_node stype;
+  decl_node__opaque stype;
 
-  stype = decl_skipType (type);
-  if ((! (isEquivalentType (type, getExprType (e)))) && (! ((e->kind == decl_nil) && ((decl_isPointer (stype)) || (stype->kind == decl_address)))))
+  stype = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (type)));
+  if ((! (isEquivalentType (type, getExprType (e)))) && (! ((e->kind == decl_nil) && ((decl_isPointer (static_cast<decl_node> (stype))) || (stype->kind == decl_address)))))
     {
       if (lang == decl_ansiCP)
         {
           /* avoid gcc warning by using compound statement even if not strictly necessary.  */
           /* potentially a cast is required.  */
-          if ((decl_isPointer (type)) || (type == addressN))
+          if ((decl_isPointer (static_cast<decl_node> (type))) || (type == addressN))
             {
-              outText (p, (const char *) "reinterpret_cast<", 17);
+              outText (p, (const char *) "static_cast<", 12);
               doTypeNameC (p, type);
               mcPretty_noSpace (p);
               outText (p, (const char *) "> (", 3);
               doExprC (p, e);
               outText (p, (const char *) ")", 1);
-              return ;
+              return;
             }
           else
             {
               outText (p, (const char *) "static_cast<", 12);
-              if (decl_isProcType (decl_skipType (type)))
+              if (decl_isProcType (decl_skipType (static_cast<decl_node> (type))))
                 {
                   doTypeNameC (p, type);
                   outText (p, (const char *) "_t", 2);
@@ -14438,7 +14327,7 @@ static void doExprCastC (mcPretty_pretty p, decl_node e, decl_node type)
               outText (p, (const char *) "> (", 3);
               doExprC (p, e);
               outText (p, (const char *) ")", 1);
-              return ;
+              return;
             }
         }
     }
@@ -14450,28 +14339,130 @@ static void doExprCastC (mcPretty_pretty p, decl_node e, decl_node type)
    requiresUnpackProc - returns TRUE if either the expr is a procedure or the proctypes differ.
 */
 
-static bool requiresUnpackProc (decl_node s)
+static bool requiresUnpackProc (decl_node__opaque s)
 {
   mcDebug_assert (isAssignment (s));
-  return (decl_isProcedure (s->assignmentF.expr)) || ((decl_skipType (decl_getType (s->assignmentF.des))) != (decl_skipType (decl_getType (s->assignmentF.expr))));
+  return (decl_isProcedure (static_cast<decl_node> (s->assignmentF.expr))) || ((decl_skipType (decl_getType (static_cast<decl_node> (s->assignmentF.des)))) != (decl_skipType (decl_getType (static_cast<decl_node> (s->assignmentF.expr)))));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
+/*
+   forceCastOpaque -
+*/
+
+static void forceCastOpaque (mcPretty_pretty p, decl_node__opaque des, decl_node__opaque expr, bool toVoidStar)
+{
+  if (nodeUsesOpaque (expr))
+    {
+      flushOpaque (p, expr, getNodeOpaqueVoidStar (des));
+    }
+  else
+    {
+      forceReintCastOpaque (p, des, expr, toVoidStar);
+    }
+}
+
+
+/*
+   forceReintCastOpaque -
+*/
+
+static void forceReintCastOpaque (mcPretty_pretty p, decl_node__opaque des, decl_node__opaque expr, bool toVoidStar)
+{
+  decl_node__opaque type;
+
+  type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (des)));
+  if (toVoidStar)
+    {
+      /* next is true cast to void * opaque type.  */
+      outText (p, (const char *) "static_cast<", 12);
+      doTypeNameC (p, type);
+      mcPretty_noSpace (p);
+      outText (p, (const char *) "> (", 3);
+      doExprC (p, expr);
+      outText (p, (const char *) ")", 1);
+    }
+  else
+    {
+      /* next is false cast to __opaque opaque type.  */
+      outText (p, (const char *) "static_cast<", 12);
+      doTypeNameC (p, type);
+      outText (p, (const char *) "__opaque", 8);
+      mcPretty_noSpace (p);
+      outText (p, (const char *) "> (", 3);
+      doExprC (p, expr);
+      outText (p, (const char *) ")", 1);
+    }
+}
+
+
+/*
+   doUnConstCastUnbounded - if node n type is an unbounded array then
+                            use const_cast to remove the const parameter
+                            to allow the unbounded array to be modified.
+*/
+
+static void doUnConstCastUnbounded (mcPretty_pretty p, decl_node__opaque n)
+{
+  decl_node__opaque type;
+  decl_node__opaque v;
+
+  if (isArrayRef (n))
+    {
+      if (decl_isVar (static_cast<decl_node> (n->arrayrefF.array)))
+        {
+          v = n->arrayrefF.array;
+          if ((v->varF.isParameter || v->varF.isVarParameter) && (decl_isUnbounded (decl_getType (static_cast<decl_node> (v)))))
+            {
+              type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (v)));
+              outText (p, (const char *) " /* const_cast<", 15);
+              doTypeNameC (p, type);
+              outText (p, (const char *) "> is needed */ ", 15);
+            }
+        }
+    }
+}
+
+
 /*
    doAssignmentC -
 */
 
-static void doAssignmentC (mcPretty_pretty p, decl_node s)
+static void doAssignmentC (mcPretty_pretty p, decl_node__opaque s)
 {
   mcDebug_assert (isAssignment (s));
   doCommentC (p, s->assignmentF.assignComment.body);
-  doExprCup (p, s->assignmentF.des, requiresUnpackProc (s));
+  if (debugOpaque)
+    {
+      outText (p, (const char *) " /* des: */ ", 12);
+      dumpOpaqueState (s->assignmentF.des);
+      outText (p, (const char *) " /* expr: */ ", 13);
+      dumpOpaqueState (s->assignmentF.expr);
+    }
+  s->assignmentF.des = doExprCup (p, s->assignmentF.des, requiresUnpackProc (s), true);
+  if (debugOpaque)
+    {
+      outText (p, (const char *) "\\n /* after doExprCup des: */ ", 30);
+      dumpOpaqueState (s->assignmentF.des);
+      outText (p, (const char *) "\\n", 2);
+    }
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "=", 1);
   mcPretty_setNeedSpace (p);
-  doExprCastC (p, s->assignmentF.expr, decl_getType (s->assignmentF.des));
+  if (nodeUsesOpaque (s->assignmentF.des))
+    {
+      forceCastOpaque (p, s->assignmentF.des, s->assignmentF.expr, getNodeOpaqueVoidStar (s->assignmentF.des));
+    }
+  else
+    {
+      if (debugOpaque)
+        {
+          outText (p, (const char *) " /* no opaque des seen */ ", 26);
+        }
+      doExprCastC (p, s->assignmentF.expr, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (s->assignmentF.des))));
+    }
   outText (p, (const char *) ";", 1);
   doAfterCommentC (p, s->assignmentF.assignComment.after);
 }
@@ -14481,9 +14472,9 @@ static void doAssignmentC (mcPretty_pretty p, decl_node s)
    containsStatement -
 */
 
-static bool containsStatement (decl_node s)
+static bool containsStatement (decl_node__opaque s)
 {
-  return ((s != NULL) && (decl_isStatementSequence (s))) && (! (isStatementSequenceEmpty (s)));
+  return ((s != NULL) && (decl_isStatementSequence (static_cast<decl_node> (s)))) && (! (isStatementSequenceEmpty (s)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -14493,16 +14484,16 @@ static bool containsStatement (decl_node s)
    doCompoundStmt -
 */
 
-static void doCompoundStmt (mcPretty_pretty p, decl_node s)
+static void doCompoundStmt (mcPretty_pretty p, decl_node__opaque s)
 {
-  if ((s == NULL) || ((decl_isStatementSequence (s)) && (isStatementSequenceEmpty (s))))
+  if ((s == NULL) || ((decl_isStatementSequence (static_cast<decl_node> (s))) && (isStatementSequenceEmpty (s))))
     {
       p = mcPretty_pushPretty (p);
       mcPretty_setindent (p, (mcPretty_getindent (p))+indentationC);
       outText (p, (const char *) "{}  /* empty.  */\\n", 19);
       p = mcPretty_popPretty (p);
     }
-  else if (((decl_isStatementSequence (s)) && (isSingleStatement (s))) && ! forceCompoundStatement)
+  else if (((decl_isStatementSequence (static_cast<decl_node> (s))) && (isSingleStatement (s))) && ! forceCompoundStatement)
     {
       /* avoid dangling else.  */
       p = mcPretty_pushPretty (p);
@@ -14530,9 +14521,9 @@ static void doCompoundStmt (mcPretty_pretty p, decl_node s)
    doElsifC -
 */
 
-static void doElsifC (mcPretty_pretty p, decl_node s)
+static void doElsifC (mcPretty_pretty p, decl_node__opaque s)
 {
-  mcDebug_assert (decl_isElsif (s));
+  mcDebug_assert (decl_isElsif (static_cast<decl_node> (s)));
   outText (p, (const char *) "else if", 7);
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "(", 1);
@@ -14579,7 +14570,7 @@ static void doElsifC (mcPretty_pretty p, decl_node s)
           doCompoundStmt (p, s->elsifF.else_);
         }
     }
-  else if ((s->elsifF.elsif != NULL) && (decl_isElsif (s->elsifF.elsif)))
+  else if ((s->elsifF.elsif != NULL) && (decl_isElsif (static_cast<decl_node> (s->elsifF.elsif))))
     {
       /* avoid dangling else.  */
       doElsifC (p, s->elsifF.elsif);
@@ -14591,9 +14582,9 @@ static void doElsifC (mcPretty_pretty p, decl_node s)
    noIfElse -
 */
 
-static bool noIfElse (decl_node n)
+static bool noIfElse (decl_node__opaque n)
 {
-  return (((n != NULL) && (decl_isIf (n))) && (n->ifF.else_ == NULL)) && (n->ifF.elsif == NULL);
+  return (((n != NULL) && (decl_isIf (static_cast<decl_node> (n)))) && (n->ifF.else_ == NULL)) && (n->ifF.elsif == NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -14606,14 +14597,14 @@ static bool noIfElse (decl_node n)
                      in a return value of TRUE.
 */
 
-static bool noIfElseChained (decl_node n)
+static bool noIfElseChained (decl_node__opaque n)
 {
-  decl_node e;
+  decl_node__opaque e;
 
   if (n != NULL)
     {
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-      if (decl_isIf (n))
+      if (decl_isIf (static_cast<decl_node> (n)))
         {
           if (n->ifF.else_ != NULL)
             {
@@ -14631,11 +14622,11 @@ static bool noIfElseChained (decl_node n)
               /* avoid dangling else.  */
               /* test elsif for lack of else.  */
               e = n->ifF.elsif;
-              mcDebug_assert (decl_isElsif (e));
+              mcDebug_assert (decl_isElsif (static_cast<decl_node> (e)));
               return noIfElseChained (e);
             }
         }
-      else if (decl_isElsif (n))
+      else if (decl_isElsif (static_cast<decl_node> (n)))
         {
           /* avoid dangling else.  */
           if (n->elsifF.else_ != NULL)
@@ -14654,7 +14645,7 @@ static bool noIfElseChained (decl_node n)
               /* avoid dangling else.  */
               /* test elsif for lack of else.  */
               e = n->elsifF.elsif;
-              mcDebug_assert (decl_isElsif (e));
+              mcDebug_assert (decl_isElsif (static_cast<decl_node> (e)));
               return noIfElseChained (e);
             }
         }
@@ -14669,11 +14660,11 @@ static bool noIfElseChained (decl_node n)
    hasIfElse -
 */
 
-static bool hasIfElse (decl_node n)
+static bool hasIfElse (decl_node__opaque n)
 {
   if (n != NULL)
     {
-      if (decl_isStatementSequence (n))
+      if (decl_isStatementSequence (static_cast<decl_node> (n)))
         {
           /* avoid gcc warning by using compound statement even if not strictly necessary.  */
           if (isStatementSequenceEmpty (n))
@@ -14683,7 +14674,7 @@ static bool hasIfElse (decl_node n)
           else if (isSingleStatement (n))
             {
               /* avoid dangling else.  */
-              n = static_cast<decl_node> (Indexing_GetIndice (n->stmtF.statements, 1));
+              n = static_cast<decl_node__opaque> (Indexing_GetIndice (n->stmtF.statements, 1));
               return isIfElse (n);
             }
         }
@@ -14698,9 +14689,9 @@ static bool hasIfElse (decl_node n)
    isIfElse -
 */
 
-static bool isIfElse (decl_node n)
+static bool isIfElse (decl_node__opaque n)
 {
-  return ((n != NULL) && (decl_isIf (n))) && ((n->ifF.else_ != NULL) || (n->ifF.elsif != NULL));
+  return ((n != NULL) && (decl_isIf (static_cast<decl_node> (n)))) && ((n->ifF.else_ != NULL) || (n->ifF.elsif != NULL));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -14711,12 +14702,12 @@ static bool isIfElse (decl_node n)
                     which is an IF and it has no else statement.
 */
 
-static bool hasIfAndNoElse (decl_node n)
+static bool hasIfAndNoElse (decl_node__opaque n)
 {
   if (n != NULL)
     {
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-      if (decl_isStatementSequence (n))
+      if (decl_isStatementSequence (static_cast<decl_node> (n)))
         {
           if (isStatementSequenceEmpty (n))
             {
@@ -14725,17 +14716,17 @@ static bool hasIfAndNoElse (decl_node n)
           else if (isSingleStatement (n))
             {
               /* avoid dangling else.  */
-              n = static_cast<decl_node> (Indexing_GetIndice (n->stmtF.statements, 1));
+              n = static_cast<decl_node__opaque> (Indexing_GetIndice (n->stmtF.statements, 1));
               return hasIfAndNoElse (n);
             }
           else
             {
               /* avoid dangling else.  */
-              n = static_cast<decl_node> (Indexing_GetIndice (n->stmtF.statements, Indexing_HighIndice (n->stmtF.statements)));
+              n = static_cast<decl_node__opaque> (Indexing_GetIndice (n->stmtF.statements, Indexing_HighIndice (n->stmtF.statements)));
               return hasIfAndNoElse (n);
             }
         }
-      else if ((decl_isElsif (n)) || (decl_isIf (n)))
+      else if ((decl_isElsif (static_cast<decl_node> (n))) || (decl_isIf (static_cast<decl_node> (n))))
         {
           /* avoid dangling else.  */
           return noIfElseChained (n);
@@ -14752,9 +14743,9 @@ static bool hasIfAndNoElse (decl_node n)
            The if statement might contain an else or elsif which are also handled.
 */
 
-static void doIfC (mcPretty_pretty p, decl_node s)
+static void doIfC (mcPretty_pretty p, decl_node__opaque s)
 {
-  mcDebug_assert (decl_isIf (s));
+  mcDebug_assert (decl_isIf (static_cast<decl_node> (s)));
   doCommentC (p, s->ifF.ifComment.body);
   outText (p, (const char *) "if", 2);
   mcPretty_setNeedSpace (p);
@@ -14805,7 +14796,7 @@ static void doIfC (mcPretty_pretty p, decl_node s)
       doAfterCommentC (p, s->ifF.elseComment.after);
       doCompoundStmt (p, s->ifF.else_);
     }
-  else if ((s->ifF.elsif != NULL) && (decl_isElsif (s->ifF.elsif)))
+  else if ((s->ifF.elsif != NULL) && (decl_isElsif (static_cast<decl_node> (s->ifF.elsif))))
     {
       /* avoid dangling else.  */
       doCommentC (p, s->ifF.elseComment.body);
@@ -14821,19 +14812,19 @@ static void doIfC (mcPretty_pretty p, decl_node s)
    doForIncCP -
 */
 
-static void doForIncCP (mcPretty_pretty p, decl_node s)
+static void doForIncCP (mcPretty_pretty p, decl_node__opaque s)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  mcDebug_assert (decl_isFor (s));
-  t = decl_skipType (decl_getType (s->forF.des));
-  if (decl_isEnumeration (t))
+  mcDebug_assert (decl_isFor (static_cast<decl_node> (s)));
+  t = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (s->forF.des))));
+  if (decl_isEnumeration (static_cast<decl_node> (t)))
     {
       if (s->forF.increment == NULL)
         {
           doExprC (p, s->forF.des);
           outText (p, (const char *) "= static_cast<", 14);
-          doTypeNameC (p, decl_getType (s->forF.des));
+          doTypeNameC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (s->forF.des))));
           mcPretty_noSpace (p);
           outText (p, (const char *) ">(static_cast<int>(", 19);
           doExprC (p, s->forF.des);
@@ -14843,7 +14834,7 @@ static void doForIncCP (mcPretty_pretty p, decl_node s)
         {
           doExprC (p, s->forF.des);
           outText (p, (const char *) "= static_cast<", 14);
-          doTypeNameC (p, decl_getType (s->forF.des));
+          doTypeNameC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (s->forF.des))));
           mcPretty_noSpace (p);
           outText (p, (const char *) ">(static_cast<int>(", 19);
           doExprC (p, s->forF.des);
@@ -14863,7 +14854,7 @@ static void doForIncCP (mcPretty_pretty p, decl_node s)
    doForIncC -
 */
 
-static void doForIncC (mcPretty_pretty p, decl_node s)
+static void doForIncC (mcPretty_pretty p, decl_node__opaque s)
 {
   if (s->forF.increment == NULL)
     {
@@ -14885,7 +14876,7 @@ static void doForIncC (mcPretty_pretty p, decl_node s)
    doForInc -
 */
 
-static void doForInc (mcPretty_pretty p, decl_node s)
+static void doForInc (mcPretty_pretty p, decl_node__opaque s)
 {
   if (lang == decl_ansiCP)
     {
@@ -14902,9 +14893,9 @@ static void doForInc (mcPretty_pretty p, decl_node s)
    doForC -
 */
 
-static void doForC (mcPretty_pretty p, decl_node s)
+static void doForC (mcPretty_pretty p, decl_node__opaque s)
 {
-  mcDebug_assert (decl_isFor (s));
+  mcDebug_assert (decl_isFor (static_cast<decl_node> (s)));
   outText (p, (const char *) "for (", 5);
   doExprC (p, s->forF.des);
   outText (p, (const char *) "=", 1);
@@ -14926,9 +14917,9 @@ static void doForC (mcPretty_pretty p, decl_node s)
    doRepeatC -
 */
 
-static void doRepeatC (mcPretty_pretty p, decl_node s)
+static void doRepeatC (mcPretty_pretty p, decl_node__opaque s)
 {
-  mcDebug_assert (decl_isRepeat (s));
+  mcDebug_assert (decl_isRepeat (static_cast<decl_node> (s)));
   doCommentC (p, s->repeatF.repeatComment.body);
   outText (p, (const char *) "do {", 4);
   doAfterCommentC (p, s->repeatF.repeatComment.after);
@@ -14948,9 +14939,9 @@ static void doRepeatC (mcPretty_pretty p, decl_node s)
    doWhileC -
 */
 
-static void doWhileC (mcPretty_pretty p, decl_node s)
+static void doWhileC (mcPretty_pretty p, decl_node__opaque s)
 {
-  mcDebug_assert (decl_isWhile (s));
+  mcDebug_assert (decl_isWhile (static_cast<decl_node> (s)));
   doCommentC (p, s->whileF.doComment.body);
   outText (p, (const char *) "while (", 7);
   doExprC (p, s->whileF.expr);
@@ -14966,12 +14957,12 @@ static void doWhileC (mcPretty_pretty p, decl_node s)
    doFuncHighC -
 */
 
-static void doFuncHighC (mcPretty_pretty p, decl_node a)
+static void doFuncHighC (mcPretty_pretty p, decl_node__opaque a)
 {
-  decl_node s;
-  decl_node n;
+  decl_node__opaque s;
+  decl_node__opaque n;
 
-  if ((decl_isLiteral (a)) && ((decl_getType (a)) == charN))
+  if ((decl_isLiteral (static_cast<decl_node> (a))) && ((decl_getType (static_cast<decl_node> (a))) == charN))
     {
       outCard (p, 0);
     }
@@ -14980,22 +14971,22 @@ static void doFuncHighC (mcPretty_pretty p, decl_node a)
       /* avoid dangling else.  */
       outCard (p, a->stringF.length-2);
     }
-  else if ((decl_isConst (a)) && (isString (a->constF.value)))
+  else if ((decl_isConst (static_cast<decl_node> (a))) && (isString (a->constF.value)))
     {
       /* avoid dangling else.  */
       doFuncHighC (p, a->constF.value);
     }
-  else if (decl_isUnbounded (decl_getType (a)))
+  else if (decl_isUnbounded (decl_getType (static_cast<decl_node> (a))))
     {
       /* avoid dangling else.  */
       outText (p, (const char *) "_", 1);
-      outTextN (p, decl_getSymName (a));
+      outTextN (p, decl_getSymName (static_cast<decl_node> (a)));
       outText (p, (const char *) "_high", 5);
     }
-  else if (decl_isArray (decl_skipType (decl_getType (a))))
+  else if (decl_isArray (decl_skipType (decl_getType (static_cast<decl_node> (a)))))
     {
       /* avoid dangling else.  */
-      n = decl_skipType (decl_getType (a));
+      n = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (a))));
       s = n->arrayF.subr;
       if (isZero (getMin (s)))
         {
@@ -15026,7 +15017,7 @@ static void doFuncHighC (mcPretty_pretty p, decl_node a)
    doMultiplyBySize -
 */
 
-static void doMultiplyBySize (mcPretty_pretty p, decl_node a)
+static void doMultiplyBySize (mcPretty_pretty p, decl_node__opaque a)
 {
   if (((a != charN) && (a != byteN)) && (a != locN))
     {
@@ -15043,21 +15034,21 @@ static void doMultiplyBySize (mcPretty_pretty p, decl_node a)
    doTotype -
 */
 
-static void doTotype (mcPretty_pretty p, decl_node a, decl_node t)
+static void doTotype (mcPretty_pretty p, decl_node__opaque a, decl_node__opaque t)
 {
-  if ((! (isString (a))) && (! (decl_isLiteral (a))))
+  if ((! (isString (a))) && (! (decl_isLiteral (static_cast<decl_node> (a)))))
     {
-      if (decl_isVar (a))
+      if (decl_isVar (static_cast<decl_node> (a)))
         {
-          if (((a->varF.isParameter || a->varF.isVarParameter) && (decl_isUnbounded (decl_getType (a)))) && ((decl_skipType (decl_getType (decl_getType (a)))) == (decl_skipType (decl_getType (t)))))
+          if (((a->varF.isParameter || a->varF.isVarParameter) && (decl_isUnbounded (decl_getType (static_cast<decl_node> (a))))) && ((decl_skipType (decl_getType (decl_getType (static_cast<decl_node> (a))))) == (decl_skipType (decl_getType (static_cast<decl_node> (t))))))
             {
               /* do not multiply by size as the existing high value is correct.  */
-              return ;
+              return;
             }
-          a = decl_getType (a);
-          if (decl_isArray (a))
+          a = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (a)));
+          if (decl_isArray (static_cast<decl_node> (a)))
             {
-              doMultiplyBySize (p, decl_skipType (decl_getType (a)));
+              doMultiplyBySize (p, static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (a)))));
             }
         }
     }
@@ -15076,23 +15067,23 @@ static void doTotype (mcPretty_pretty p, decl_node a, decl_node t)
    doFuncUnbounded -
 */
 
-static void doFuncUnbounded (mcPretty_pretty p, decl_node actual, decl_node formalParam, decl_node formal, decl_node func)
+static void doFuncUnbounded (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formalParam, decl_node__opaque formal, decl_node__opaque func)
 {
-  decl_node h;
+  decl_node__opaque h;
   DynamicStrings_String s;
 
-  mcDebug_assert (decl_isUnbounded (formal));
+  mcDebug_assert (decl_isUnbounded (static_cast<decl_node> (formal)));
   outText (p, (const char *) "(", 1);
-  if ((lang == decl_ansiCP) && (decl_isParam (formalParam)))
+  if ((lang == decl_ansiCP) && (decl_isParam (static_cast<decl_node> (formalParam))))
     {
       outText (p, (const char *) "const", 5);
       mcPretty_setNeedSpace (p);
     }
-  doTypeC (p, decl_getType (formal), &formal);
+  doTypeC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (formal))), &formal);
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "*)", 2);
   mcPretty_setNeedSpace (p);
-  if ((decl_isLiteral (actual)) && ((decl_getType (actual)) == charN))
+  if ((decl_isLiteral (static_cast<decl_node> (actual))) && ((decl_getType (static_cast<decl_node> (actual))) == charN))
     {
       outText (p, (const char *) "\"\\0", 3);
       s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (actual->literalF.name));
@@ -15106,7 +15097,7 @@ static void doFuncUnbounded (mcPretty_pretty p, decl_node actual, decl_node form
       /* avoid dangling else.  */
       outCstring (p, actual, true);
     }
-  else if (decl_isConst (actual))
+  else if (decl_isConst (static_cast<decl_node> (actual)))
     {
       /* avoid dangling else.  */
       actual = resolveString (actual);
@@ -15126,7 +15117,7 @@ static void doFuncUnbounded (mcPretty_pretty p, decl_node actual, decl_node form
           doExprC (p, actual);
         }
     }
-  else if (decl_isUnbounded (decl_getType (actual)))
+  else if (decl_isUnbounded (decl_getType (static_cast<decl_node> (actual))))
     {
       /* avoid dangling else.  */
       /* doExprC (p, actual).  */
@@ -15137,12 +15128,12 @@ static void doFuncUnbounded (mcPretty_pretty p, decl_node actual, decl_node form
       /* avoid dangling else.  */
       outText (p, (const char *) "&", 1);
       doExprC (p, actual);
-      if (decl_isArray (decl_skipType (decl_getType (actual))))
+      if (decl_isArray (decl_skipType (decl_getType (static_cast<decl_node> (actual)))))
         {
           outText (p, (const char *) ".array[0]", 9);
         }
     }
-  if (! (enableDefForCStrings && (isDefForC (decl_getScope (func)))))
+  if (! (enableDefForCStrings && (isDefForC (static_cast<decl_node__opaque> (decl_getScope (static_cast<decl_node> (func)))))))
     {
       outText (p, (const char *) ",", 1);
       mcPretty_setNeedSpace (p);
@@ -15156,12 +15147,12 @@ static void doFuncUnbounded (mcPretty_pretty p, decl_node actual, decl_node form
    doProcedureParamC -
 */
 
-static void doProcedureParamC (mcPretty_pretty p, decl_node actual, decl_node formal)
+static void doProcedureParamC (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formal)
 {
   if (isForC (formal))
     {
       outText (p, (const char *) "(", 1);
-      doFQNameC (p, decl_getType (formal));
+      doFQNameC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (formal))));
       outText (p, (const char *) "_C", 2);
       outText (p, (const char *) ")", 1);
       mcPretty_setNeedSpace (p);
@@ -15170,12 +15161,12 @@ static void doProcedureParamC (mcPretty_pretty p, decl_node actual, decl_node fo
   else
     {
       outText (p, (const char *) "(", 1);
-      doTypeNameC (p, decl_getType (formal));
+      doTypeNameC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (formal))));
       outText (p, (const char *) ")", 1);
       mcPretty_setNeedSpace (p);
       outText (p, (const char *) "{", 1);
       outText (p, (const char *) "(", 1);
-      doFQNameC (p, decl_getType (formal));
+      doFQNameC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (formal))));
       outText (p, (const char *) "_t)", 3);
       mcPretty_setNeedSpace (p);
       doExprC (p, actual);
@@ -15188,17 +15179,17 @@ static void doProcedureParamC (mcPretty_pretty p, decl_node actual, decl_node fo
    doAdrExprC -
 */
 
-static void doAdrExprC (mcPretty_pretty p, decl_node n)
+static void doAdrExprC (mcPretty_pretty p, decl_node__opaque n)
 {
   if (isDeref (n))
     {
-      /* no point in issuing & ( * n )  */
+      /* No point in issuing & ( * n ).  */
       doExprC (p, n->unaryF.arg);
     }
-  else if ((decl_isVar (n)) && n->varF.isVarParameter)
+  else if ((decl_isVar (static_cast<decl_node> (n))) && n->varF.isVarParameter)
     {
       /* avoid dangling else.  */
-      /* no point in issuing & ( * n )  */
+      /* No point in issuing & ( * n ).  */
       doFQNameC (p, n);
     }
   else
@@ -15214,7 +15205,7 @@ static void doAdrExprC (mcPretty_pretty p, decl_node n)
    typePair -
 */
 
-static bool typePair (decl_node a, decl_node b, decl_node x, decl_node y)
+static bool typePair (decl_node__opaque a, decl_node__opaque b, decl_node__opaque x, decl_node__opaque y)
 {
   return ((a == x) && (b == y)) || ((a == y) && (b == x));
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -15227,10 +15218,10 @@ static bool typePair (decl_node a, decl_node b, decl_node x, decl_node y)
                the formal type.
 */
 
-static bool needsCast (decl_node at, decl_node ft)
+static bool needsCast (decl_node__opaque at, decl_node__opaque ft)
 {
-  at = decl_skipType (at);
-  ft = decl_skipType (ft);
+  at = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (at)));
+  ft = static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (ft)));
   if (((((((((((((at == nilN) || (at->kind == decl_nil)) || (at == ft)) || (typePair (at, ft, cardinalN, wordN))) || (typePair (at, ft, cardinalN, ztypeN))) || (typePair (at, ft, integerN, ztypeN))) || (typePair (at, ft, longcardN, ztypeN))) || (typePair (at, ft, shortcardN, ztypeN))) || (typePair (at, ft, longintN, ztypeN))) || (typePair (at, ft, shortintN, ztypeN))) || (typePair (at, ft, realN, rtypeN))) || (typePair (at, ft, longrealN, rtypeN))) || (typePair (at, ft, shortrealN, rtypeN)))
     {
       return false;
@@ -15251,29 +15242,29 @@ static bool needsCast (decl_node at, decl_node ft)
                      open parenthesis.
 */
 
-static unsigned int checkSystemCast (mcPretty_pretty p, decl_node actual, decl_node formal)
+static unsigned int checkSystemCast (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formal)
 {
-  decl_node at;
-  decl_node ft;
+  decl_node__opaque at;
+  decl_node__opaque ft;
 
   at = getExprType (actual);
-  ft = decl_getType (formal);
+  ft = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (formal)));
   if (needsCast (at, ft))
     {
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
       if (lang == decl_ansiCP)
         {
-          if ((isString (actual)) && ((decl_skipType (ft)) == addressN))
+          if ((isString (actual)) && ((decl_skipType (static_cast<decl_node> (ft))) == addressN))
             {
-              outText (p, (const char *) "const_cast<void*> (reinterpret_cast<const void*> (", 50);
+              outText (p, (const char *) "const_cast<void*> (static_cast<const void*> (", 45);
               return 2;
             }
-          else if ((decl_isPointer (decl_skipType (ft))) || ((decl_skipType (ft)) == addressN))
+          else if ((decl_isPointer (decl_skipType (static_cast<decl_node> (ft)))) || ((decl_skipType (static_cast<decl_node> (ft))) == addressN))
             {
               /* avoid dangling else.  */
               if (actual == nilN)
                 {
-                  if (decl_isVarParam (formal))
+                  if (decl_isVarParam (static_cast<decl_node> (formal)))
                     {
                       mcMetaError_metaError1 ((const char *) "NIL is being passed to a VAR parameter {%1DMad}", 47, (const unsigned char *) &formal, (sizeof (formal)-1));
                     }
@@ -15284,7 +15275,7 @@ static unsigned int checkSystemCast (mcPretty_pretty p, decl_node actual, decl_n
                 {
                   outText (p, (const char *) "reinterpret_cast<", 17);
                   doTypeNameC (p, ft);
-                  if (decl_isVarParam (formal))
+                  if (decl_isVarParam (static_cast<decl_node> (formal)))
                     {
                       outText (p, (const char *) "*", 1);
                     }
@@ -15297,7 +15288,7 @@ static unsigned int checkSystemCast (mcPretty_pretty p, decl_node actual, decl_n
               /* avoid dangling else.  */
               outText (p, (const char *) "static_cast<", 12);
               doTypeNameC (p, ft);
-              if (decl_isVarParam (formal))
+              if (decl_isVarParam (static_cast<decl_node> (formal)))
                 {
                   outText (p, (const char *) "*", 1);
                 }
@@ -15310,7 +15301,7 @@ static unsigned int checkSystemCast (mcPretty_pretty p, decl_node actual, decl_n
         {
           outText (p, (const char *) "(", 1);
           doTypeNameC (p, ft);
-          if (decl_isVarParam (formal))
+          if (decl_isVarParam (static_cast<decl_node> (formal)))
             {
               outText (p, (const char *) "*", 1);
             }
@@ -15349,48 +15340,87 @@ static void emitN (mcPretty_pretty p, const char *a_, unsigned int _a_high, unsi
             which was declared inside a definition module for "C".
 */
 
-static bool isForC (decl_node n)
+static bool isForC (decl_node__opaque n)
 {
-  if (decl_isVarParam (n))
+  if (decl_isVarParam (static_cast<decl_node> (n)))
     {
       return n->varparamF.isForC;
     }
-  else if (decl_isParam (n))
+  else if (decl_isParam (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       return n->paramF.isForC;
     }
-  else if (decl_isProcedure (n))
+  else if (decl_isProcedure (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       return n->procedureF.isForC;
     }
-  return false;
+  return false;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
+/*
+   isDefForCNode - return TRUE if node n was declared inside a definition module for "C".
+*/
+
+static bool isDefForCNode (decl_node__opaque n)
+{
+  nameKey_Name name;
+
+  while ((n != NULL) && (! (((decl_isImp (static_cast<decl_node> (n))) || (decl_isDef (static_cast<decl_node> (n)))) || (decl_isModule (static_cast<decl_node> (n))))))
+    {
+      n = static_cast<decl_node__opaque> (decl_getScope (static_cast<decl_node> (n)));
+    }
+  if ((n != NULL) && (decl_isImp (static_cast<decl_node> (n))))
+    {
+      name = decl_getSymName (static_cast<decl_node> (n));
+      n = static_cast<decl_node__opaque> (decl_lookupDef (name));
+    }
+  return ((n != NULL) && (decl_isDef (static_cast<decl_node> (n)))) && (isDefForC (n));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   isDefForCNode - return TRUE if node n was declared inside a definition module for "C".
+   doFuncVarParam - detect whether the formal uses an opaque and ensure that the address of
+                    the actual parameter is cast to the formal type.
 */
 
-static bool isDefForCNode (decl_node n)
+static void doFuncVarParam (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formal)
 {
-  nameKey_Name name;
+  decl_node__opaque type;
 
-  while ((n != NULL) && (! (((decl_isImp (n)) || (decl_isDef (n))) || (decl_isModule (n)))))
+  if ((nodeUsesOpaque (formal)) && (getNodeOpaqueFlushNecessary (actual, getNodeOpaqueVoidStar (formal))))
     {
-      n = decl_getScope (n);
+      type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (formal)));
+      outText (p, (const char *) "reinterpret_cast<", 17);
+      if (getNodeOpaqueVoidStar (formal))
+        {
+          doTypeNameC (p, type);
+          mcPretty_setNeedSpace (p);
+          outText (p, (const char *) "*> (&", 5);
+          doExprC (p, actual);
+          outText (p, (const char *) ")", 1);
+          actual = makeOpaqueCast (actual, true);
+        }
+      else
+        {
+          doTypeNameC (p, type);
+          mcPretty_noSpace (p);
+          outText (p, (const char *) "__opaque *> (&", 14);
+          doExprC (p, actual);
+          outText (p, (const char *) ")", 1);
+          actual = makeOpaqueCast (actual, false);
+        }
     }
-  if ((n != NULL) && (decl_isImp (n)))
+  else
     {
-      name = decl_getSymName (n);
-      n = decl_lookupDef (name);
+      doAdrExprC (p, actual);
     }
-  return ((n != NULL) && (decl_isDef (n))) && (isDefForC (n));
-  /* static analysis guarentees a RETURN statement will be used before here.  */
-  __builtin_unreachable ();
 }
 
 
@@ -15398,10 +15428,10 @@ static bool isDefForCNode (decl_node n)
    doFuncParamC -
 */
 
-static void doFuncParamC (mcPretty_pretty p, decl_node actual, decl_node formal, decl_node func)
+static void doFuncParamC (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formal, decl_node__opaque func)
 {
-  decl_node ft;
-  decl_node at;
+  decl_node__opaque ft;
+  decl_node__opaque at;
   unsigned int lbr;
 
   if (formal == NULL)
@@ -15410,16 +15440,16 @@ static void doFuncParamC (mcPretty_pretty p, decl_node actual, decl_node formal,
     }
   else
     {
-      ft = decl_skipType (decl_getType (formal));
-      if (decl_isUnbounded (ft))
+      ft = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (formal))));
+      if (decl_isUnbounded (static_cast<decl_node> (ft)))
         {
           doFuncUnbounded (p, actual, formal, ft, func);
         }
       else
         {
-          if ((isAProcType (ft)) && (decl_isProcedure (actual)))
+          if ((isAProcType (ft)) && (decl_isProcedure (static_cast<decl_node> (actual))))
             {
-              if (decl_isVarParam (formal))
+              if (decl_isVarParam (static_cast<decl_node> (formal)))
                 {
                   mcMetaError_metaError1 ((const char *) "{%1MDad} cannot be passed as a VAR parameter", 44, (const unsigned char *) &actual, (sizeof (actual)-1));
                 }
@@ -15428,17 +15458,17 @@ static void doFuncParamC (mcPretty_pretty p, decl_node actual, decl_node formal,
                   doProcedureParamC (p, actual, formal);
                 }
             }
-          else if (((((decl_getType (actual)) != NULL) && (decl_isProcType (decl_skipType (decl_getType (actual))))) && (isAProcType (ft))) && (isForC (formal)))
+          else if (((((decl_getType (static_cast<decl_node> (actual))) != NULL) && (decl_isProcType (decl_skipType (decl_getType (static_cast<decl_node> (actual)))))) && (isAProcType (ft))) && (isForC (formal)))
             {
               /* avoid dangling else.  */
-              if (decl_isVarParam (formal))
+              if (decl_isVarParam (static_cast<decl_node> (formal)))
                 {
                   mcMetaError_metaError2 ((const char *) "{%1MDad} cannot be passed as a VAR parameter to the definition for C module as the parameter requires a cast to the formal type {%2MDtad}", 137, (const unsigned char *) &actual, (sizeof (actual)-1), (const unsigned char *) &formal, (sizeof (formal)-1));
                 }
               else
                 {
                   outText (p, (const char *) "(", 1);
-                  doFQNameC (p, decl_getType (formal));
+                  doFQNameC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (formal))));
                   outText (p, (const char *) "_C", 2);
                   outText (p, (const char *) ")", 1);
                   mcPretty_setNeedSpace (p);
@@ -15446,31 +15476,40 @@ static void doFuncParamC (mcPretty_pretty p, decl_node actual, decl_node formal,
                   outText (p, (const char *) ".proc", 5);
                 }
             }
-          else if ((((decl_getType (actual)) != NULL) && (decl_isProcType (decl_skipType (decl_getType (actual))))) && ((decl_getType (actual)) != (decl_getType (formal))))
+          else if ((((decl_getType (static_cast<decl_node> (actual))) != NULL) && (decl_isProcType (decl_skipType (decl_getType (static_cast<decl_node> (actual)))))) && ((decl_getType (static_cast<decl_node> (actual))) != (decl_getType (static_cast<decl_node> (formal)))))
             {
               /* avoid dangling else.  */
-              if (decl_isVarParam (formal))
+              if (decl_isVarParam (static_cast<decl_node> (formal)))
                 {
                   mcMetaError_metaError2 ((const char *) "{%1MDad} cannot be passed as a VAR parameter as the parameter requires a cast to the formal type {%2MDtad}", 106, (const unsigned char *) &actual, (sizeof (actual)-1), (const unsigned char *) &formal, (sizeof (formal)-1));
                 }
               else
                 {
-                  doCastC (p, decl_getType (formal), actual);
+                  doCastC (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (formal))), actual);
                 }
             }
           else
             {
               /* avoid dangling else.  */
-              lbr = checkSystemCast (p, actual, formal);
-              if (decl_isVarParam (formal))
+              if (decl_isVarParam (static_cast<decl_node> (formal)))
                 {
-                  doAdrExprC (p, actual);
+                  lbr = checkSystemCast (p, actual, formal);
+                  doFuncVarParam (p, actual, formal);
+                  emitN (p, (const char *) ")", 1, lbr);
                 }
               else
                 {
-                  doExprC (p, actual);
+                  if (nodeUsesOpaque (formal))
+                    {
+                      forceCastOpaque (p, formal, actual, getNodeOpaqueVoidStar (formal));
+                    }
+                  else
+                    {
+                      lbr = checkSystemCast (p, actual, formal);
+                      doExprC (p, actual);
+                      emitN (p, (const char *) ")", 1, lbr);
+                    }
                 }
-              emitN (p, (const char *) ")", 1, lbr);
             }
         }
     }
@@ -15482,16 +15521,16 @@ static void doFuncParamC (mcPretty_pretty p, decl_node actual, decl_node formal,
                      If the parameter is a vararg NIL is returned.
 */
 
-static decl_node getNthParamType (Indexing_Index l, unsigned int i)
+static decl_node__opaque getNthParamType (Indexing_Index l, unsigned int i)
 {
-  decl_node p;
+  decl_node__opaque p;
 
   p = getNthParam (l, i);
   if (p != NULL)
     {
-      return decl_getType (p);
+      return static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (p)));
     }
-  return NULL;
+  return static_cast<decl_node__opaque> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -15502,9 +15541,9 @@ static decl_node getNthParamType (Indexing_Index l, unsigned int i)
                  If the parameter is a vararg NIL is returned.
 */
 
-static decl_node getNthParam (Indexing_Index l, unsigned int i)
+static decl_node__opaque getNthParam (Indexing_Index l, unsigned int i)
 {
-  decl_node p;
+  decl_node__opaque p;
   unsigned int j;
   unsigned int k;
   unsigned int h;
@@ -15515,12 +15554,12 @@ static decl_node getNthParam (Indexing_Index l, unsigned int i)
       h = Indexing_HighIndice (l);
       while (j <= h)
         {
-          p = static_cast<decl_node> (Indexing_GetIndice (l, j));
-          if (decl_isParam (p))
+          p = static_cast<decl_node__opaque> (Indexing_GetIndice (l, j));
+          if (decl_isParam (static_cast<decl_node> (p)))
             {
               k = identListLen (p->paramF.namelist);
             }
-          else if (decl_isVarParam (p))
+          else if (decl_isVarParam (static_cast<decl_node> (p)))
             {
               /* avoid dangling else.  */
               k = identListLen (p->varparamF.namelist);
@@ -15528,8 +15567,8 @@ static decl_node getNthParam (Indexing_Index l, unsigned int i)
           else
             {
               /* avoid dangling else.  */
-              mcDebug_assert (decl_isVarargs (p));
-              return NULL;
+              mcDebug_assert (decl_isVarargs (static_cast<decl_node> (p)));
+              return static_cast<decl_node__opaque> (NULL);
             }
           if (i <= k)
             {
@@ -15542,7 +15581,7 @@ static decl_node getNthParam (Indexing_Index l, unsigned int i)
             }
         }
     }
-  return NULL;
+  return static_cast<decl_node__opaque> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -15552,10 +15591,10 @@ static decl_node getNthParam (Indexing_Index l, unsigned int i)
    doFuncArgsC -
 */
 
-static void doFuncArgsC (mcPretty_pretty p, decl_node s, Indexing_Index l, bool needParen)
+static void doFuncArgsC (mcPretty_pretty p, decl_node__opaque s, Indexing_Index l, bool needParen)
 {
-  decl_node actual;
-  decl_node formal;
+  decl_node__opaque actual;
+  decl_node__opaque formal;
   unsigned int i;
   unsigned int n;
 
@@ -15592,10 +15631,10 @@ static void doFuncArgsC (mcPretty_pretty p, decl_node s, Indexing_Index l, bool
    doProcTypeArgsC -
 */
 
-static void doProcTypeArgsC (mcPretty_pretty p, decl_node s, Indexing_Index args, bool needParen)
+static void doProcTypeArgsC (mcPretty_pretty p, decl_node__opaque s, Indexing_Index args, bool needParen)
 {
-  decl_node a;
-  decl_node b;
+  decl_node__opaque a;
+  decl_node__opaque b;
   unsigned int i;
   unsigned int n;
 
@@ -15610,7 +15649,7 @@ static void doProcTypeArgsC (mcPretty_pretty p, decl_node s, Indexing_Index args
       while (i <= n)
         {
           a = getExpList (s->funccallF.args, i);
-          b = static_cast<decl_node> (Indexing_GetIndice (args, i));
+          b = static_cast<decl_node__opaque> (Indexing_GetIndice (args, i));
           doFuncParamC (p, a, b, s->funccallF.function);
           if (i < n)
             {
@@ -15632,41 +15671,39 @@ static void doProcTypeArgsC (mcPretty_pretty p, decl_node s, Indexing_Index args
    doAdrArgC -
 */
 
-static void doAdrArgC (mcPretty_pretty p, decl_node n)
+static void doAdrArgC (mcPretty_pretty p, decl_node__opaque n)
 {
   if (isDeref (n))
     {
       /* & and * cancel each other out.  */
       doExprC (p, n->unaryF.arg);
     }
-  else if ((decl_isVar (n)) && n->varF.isVarParameter)
+  else if ((decl_isVar (static_cast<decl_node> (n))) && n->varF.isVarParameter)
     {
       /* avoid dangling else.  */
-      outTextN (p, decl_getSymName (n));  /* --fixme-- does the caller need to cast it?  */
+      outTextN (p, decl_getSymName (static_cast<decl_node> (n)));  /* --fixme-- does the caller need to cast it?  */
     }
-  else
+  else if ((isString (n)) || ((decl_isArray (decl_getType (static_cast<decl_node> (n)))) && (decl_isUnbounded (decl_getType (static_cast<decl_node> (n))))))
     {
       /* avoid dangling else.  */
-      if (isString (n))
+      if (lang == decl_ansiCP)
         {
-          if (lang == decl_ansiCP)
-            {
-              outText (p, (const char *) "const_cast<void*> (reinterpret_cast<const void*>", 48);
-              outText (p, (const char *) "(", 1);
-              doExprC (p, n);
-              outText (p, (const char *) "))", 2);
-            }
-          else
-            {
-              doExprC (p, n);
-            }
+          outText (p, (const char *) "const_cast<void*> (static_cast<const void*>", 43);
+          outText (p, (const char *) "(", 1);
+          doExprC (p, n);
+          outText (p, (const char *) "))", 2);
         }
       else
         {
-          outText (p, (const char *) "&", 1);
           doExprC (p, n);
         }
     }
+  else
+    {
+      /* avoid dangling else.  */
+      outText (p, (const char *) "&", 1);
+      doExprC (p, n);
+    }
 }
 
 
@@ -15674,7 +15711,7 @@ static void doAdrArgC (mcPretty_pretty p, decl_node n)
    doAdrC -
 */
 
-static void doAdrC (mcPretty_pretty p, decl_node n)
+static void doAdrC (mcPretty_pretty p, decl_node__opaque n)
 {
   mcDebug_assert (isUnary (n));
   doAdrArgC (p, n->unaryF.arg);
@@ -15685,7 +15722,7 @@ static void doAdrC (mcPretty_pretty p, decl_node n)
    doInc -
 */
 
-static void doInc (mcPretty_pretty p, decl_node n)
+static void doInc (mcPretty_pretty p, decl_node__opaque n)
 {
   mcDebug_assert (isIntrinsic (n));
   if (lang == decl_ansiCP)
@@ -15703,7 +15740,7 @@ static void doInc (mcPretty_pretty p, decl_node n)
    doDec -
 */
 
-static void doDec (mcPretty_pretty p, decl_node n)
+static void doDec (mcPretty_pretty p, decl_node__opaque n)
 {
   mcDebug_assert (isIntrinsic (n));
   if (lang == decl_ansiCP)
@@ -15721,7 +15758,7 @@ static void doDec (mcPretty_pretty p, decl_node n)
    doIncDecC -
 */
 
-static void doIncDecC (mcPretty_pretty p, decl_node n, const char *op_, unsigned int _op_high)
+static void doIncDecC (mcPretty_pretty p, decl_node__opaque n, const char *op_, unsigned int _op_high)
 {
   char op[_op_high+1];
 
@@ -15751,10 +15788,10 @@ static void doIncDecC (mcPretty_pretty p, decl_node n, const char *op_, unsigned
    doIncDecCP -
 */
 
-static void doIncDecCP (mcPretty_pretty p, decl_node n, const char *op_, unsigned int _op_high)
+static void doIncDecCP (mcPretty_pretty p, decl_node__opaque n, const char *op_, unsigned int _op_high)
 {
-  decl_node lhs;
-  decl_node type;
+  decl_node__opaque lhs;
+  decl_node__opaque type;
   char op[_op_high+1];
 
   /* make a local copy of each unbounded array.  */
@@ -15766,8 +15803,8 @@ static void doIncDecCP (mcPretty_pretty p, decl_node n, const char *op_, unsigne
       lhs = getExpList (n->intrinsicF.args, 1);
       doExprC (p, lhs);
       mcPretty_setNeedSpace (p);
-      type = decl_getType (lhs);
-      if ((decl_isPointer (type)) || (type == addressN))
+      type = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (lhs)));
+      if ((decl_isPointer (static_cast<decl_node> (type))) || (type == addressN))
         {
           /* cast to (char * ) and then back again after the arithmetic is complete.  */
           outText (p, (const char *) "=", 1);
@@ -15790,7 +15827,7 @@ static void doIncDecCP (mcPretty_pretty p, decl_node n, const char *op_, unsigne
             }
           outText (p, (const char *) ")", 1);
         }
-      else if (decl_isEnumeration (decl_skipType (type)))
+      else if (decl_isEnumeration (decl_skipType (static_cast<decl_node> (type))))
         {
           /* avoid dangling else.  */
           outText (p, (const char *) "= static_cast<", 14);
@@ -15833,9 +15870,9 @@ static void doIncDecCP (mcPretty_pretty p, decl_node n, const char *op_, unsigne
    doInclC -
 */
 
-static void doInclC (mcPretty_pretty p, decl_node n)
+static void doInclC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node lo;
+  decl_node__opaque lo;
 
   mcDebug_assert (isIntrinsic (n));
   if (n->intrinsicF.args != NULL)
@@ -15871,9 +15908,9 @@ static void doInclC (mcPretty_pretty p, decl_node n)
    doExclC -
 */
 
-static void doExclC (mcPretty_pretty p, decl_node n)
+static void doExclC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node lo;
+  decl_node__opaque lo;
 
   mcDebug_assert (isIntrinsic (n));
   if (n->intrinsicF.args != NULL)
@@ -15909,9 +15946,9 @@ static void doExclC (mcPretty_pretty p, decl_node n)
    doNewC -
 */
 
-static void doNewC (mcPretty_pretty p, decl_node n)
+static void doNewC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
   mcDebug_assert (isIntrinsic (n));
   if (n->intrinsicF.args == NULL)
@@ -15932,10 +15969,10 @@ static void doNewC (mcPretty_pretty p, decl_node n)
           doExprC (p, getExpList (n->intrinsicF.args, 1));
           outText (p, (const char *) ",", 1);
           mcPretty_setNeedSpace (p);
-          t = decl_skipType (decl_getType (getExpList (n->intrinsicF.args, 1)));
-          if (decl_isPointer (t))
+          t = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (getExpList (n->intrinsicF.args, 1)))));
+          if (decl_isPointer (static_cast<decl_node> (t)))
             {
-              t = decl_getType (t);
+              t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (t)));
               outText (p, (const char *) "sizeof", 6);
               mcPretty_setNeedSpace (p);
               outText (p, (const char *) "(", 1);
@@ -15956,9 +15993,9 @@ static void doNewC (mcPretty_pretty p, decl_node n)
    doDisposeC -
 */
 
-static void doDisposeC (mcPretty_pretty p, decl_node n)
+static void doDisposeC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
   mcDebug_assert (isIntrinsic (n));
   if (n->intrinsicF.args == NULL)
@@ -15979,10 +16016,10 @@ static void doDisposeC (mcPretty_pretty p, decl_node n)
           doExprC (p, getExpList (n->intrinsicF.args, 1));
           outText (p, (const char *) ",", 1);
           mcPretty_setNeedSpace (p);
-          t = decl_skipType (decl_getType (getExpList (n->intrinsicF.args, 1)));
-          if (decl_isPointer (t))
+          t = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (getExpList (n->intrinsicF.args, 1)))));
+          if (decl_isPointer (static_cast<decl_node> (t)))
             {
-              t = decl_getType (t);
+              t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (t)));
               outText (p, (const char *) "sizeof", 6);
               mcPretty_setNeedSpace (p);
               outText (p, (const char *) "(", 1);
@@ -16008,7 +16045,7 @@ static void doDisposeC (mcPretty_pretty p, decl_node n)
    doCapC -
 */
 
-static void doCapC (mcPretty_pretty p, decl_node n)
+static void doCapC (mcPretty_pretty p, decl_node__opaque n)
 {
   mcDebug_assert (isUnary (n));
   if (n->unaryF.arg == NULL)
@@ -16039,7 +16076,7 @@ static void doCapC (mcPretty_pretty p, decl_node n)
    doLengthC -
 */
 
-static void doLengthC (mcPretty_pretty p, decl_node n)
+static void doLengthC (mcPretty_pretty p, decl_node__opaque n)
 {
   mcDebug_assert (isUnary (n));
   if (n->unaryF.arg == NULL)
@@ -16066,9 +16103,9 @@ static void doLengthC (mcPretty_pretty p, decl_node n)
    doAbsC -
 */
 
-static void doAbsC (mcPretty_pretty p, decl_node n)
+static void doAbsC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
   mcDebug_assert (isUnary (n));
   if (n->unaryF.arg == NULL)
@@ -16125,7 +16162,7 @@ static void doAbsC (mcPretty_pretty p, decl_node n)
    doValC -
 */
 
-static void doValC (mcPretty_pretty p, decl_node n)
+static void doValC (mcPretty_pretty p, decl_node__opaque n)
 {
   mcDebug_assert (isBinary (n));
   outText (p, (const char *) "(", 1);
@@ -16142,9 +16179,9 @@ static void doValC (mcPretty_pretty p, decl_node n)
    doMinC -
 */
 
-static void doMinC (mcPretty_pretty p, decl_node n)
+static void doMinC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
   mcDebug_assert (isUnary (n));
   t = getExprType (n->unaryF.arg);
@@ -16156,9 +16193,9 @@ static void doMinC (mcPretty_pretty p, decl_node n)
    doMaxC -
 */
 
-static void doMaxC (mcPretty_pretty p, decl_node n)
+static void doMaxC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
   mcDebug_assert (isUnary (n));
   t = getExprType (n->unaryF.arg);
@@ -16171,7 +16208,7 @@ static void doMaxC (mcPretty_pretty p, decl_node n)
                  The intrinsic functions are represented as unary and binary nodes.
 */
 
-static bool isIntrinsic (decl_node n)
+static bool isIntrinsic (decl_node__opaque n)
 {
   switch (n->kind)
     {
@@ -16201,7 +16238,7 @@ static bool isIntrinsic (decl_node n)
    doHalt -
 */
 
-static void doHalt (mcPretty_pretty p, decl_node n)
+static void doHalt (mcPretty_pretty p, decl_node__opaque n)
 {
   mcDebug_assert (n->kind == decl_halt);
   if ((n->intrinsicF.args == NULL) || ((expListLen (n->intrinsicF.args)) == 0))
@@ -16226,7 +16263,7 @@ static void doHalt (mcPretty_pretty p, decl_node n)
    doCreal - emit the appropriate creal function.
 */
 
-static void doCreal (mcPretty_pretty p, decl_node t)
+static void doCreal (mcPretty_pretty p, decl_node__opaque t)
 {
   switch (t->kind)
     {
@@ -16257,7 +16294,7 @@ static void doCreal (mcPretty_pretty p, decl_node t)
    doCimag - emit the appropriate cimag function.
 */
 
-static void doCimag (mcPretty_pretty p, decl_node t)
+static void doCimag (mcPretty_pretty p, decl_node__opaque t)
 {
   switch (t->kind)
     {
@@ -16288,9 +16325,9 @@ static void doCimag (mcPretty_pretty p, decl_node t)
    doReC -
 */
 
-static void doReC (mcPretty_pretty p, decl_node n)
+static void doReC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
   mcDebug_assert (n->kind == decl_re);
   if (n->unaryF.arg != NULL)
@@ -16314,9 +16351,9 @@ static void doReC (mcPretty_pretty p, decl_node n)
    doImC -
 */
 
-static void doImC (mcPretty_pretty p, decl_node n)
+static void doImC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
   mcDebug_assert (n->kind == decl_im);
   if (n->unaryF.arg != NULL)
@@ -16340,7 +16377,7 @@ static void doImC (mcPretty_pretty p, decl_node n)
    doCmplx -
 */
 
-static void doCmplx (mcPretty_pretty p, decl_node n)
+static void doCmplx (mcPretty_pretty p, decl_node__opaque n)
 {
   mcDebug_assert (isBinary (n));
   keyc_useComplex ();
@@ -16365,7 +16402,7 @@ static void doCmplx (mcPretty_pretty p, decl_node n)
    doIntrinsicC -
 */
 
-static void doIntrinsicC (mcPretty_pretty p, decl_node n)
+static void doIntrinsicC (mcPretty_pretty p, decl_node__opaque n)
 {
   mcDebug_assert (isIntrinsic (n));
   doCommentC (p, n->intrinsicF.intrinsicComment.body);
@@ -16421,7 +16458,7 @@ static void doIntrinsicC (mcPretty_pretty p, decl_node n)
    isIntrinsicFunction - returns true if, n, is an instrinsic function.
 */
 
-static bool isIntrinsicFunction (decl_node n)
+static bool isIntrinsicFunction (decl_node__opaque n)
 {
   switch (n->kind)
     {
@@ -16459,7 +16496,7 @@ static bool isIntrinsicFunction (decl_node n)
    doSizeC -
 */
 
-static void doSizeC (mcPretty_pretty p, decl_node n)
+static void doSizeC (mcPretty_pretty p, decl_node__opaque n)
 {
   mcDebug_assert (isUnary (n));
   outText (p, (const char *) "sizeof (", 8);
@@ -16472,7 +16509,7 @@ static void doSizeC (mcPretty_pretty p, decl_node n)
    doConvertC -
 */
 
-static void doConvertC (mcPretty_pretty p, decl_node n, const char *conversion_, unsigned int _conversion_high)
+static void doConvertC (mcPretty_pretty p, decl_node__opaque n, const char *conversion_, unsigned int _conversion_high)
 {
   DynamicStrings_String s;
   char conversion[_conversion_high+1];
@@ -16490,7 +16527,7 @@ static void doConvertC (mcPretty_pretty p, decl_node n, const char *conversion_,
    doConvertSC -
 */
 
-static void doConvertSC (mcPretty_pretty p, decl_node n, DynamicStrings_String conversion)
+static void doConvertSC (mcPretty_pretty p, decl_node__opaque n, DynamicStrings_String conversion)
 {
   mcDebug_assert (isUnary (n));
   mcPretty_setNeedSpace (p);
@@ -16504,16 +16541,40 @@ static void doConvertSC (mcPretty_pretty p, decl_node n, DynamicStrings_String c
 }
 
 
+/*
+   getFunction - return the function associate with funccall node n.
+*/
+
+static decl_node__opaque getFunction (decl_node__opaque n)
+{
+  mcDebug_assert (isFuncCall (n));
+  switch (n->kind)
+    {
+      case decl_funccall:
+        return n->funccallF.function;
+        break;
+
+
+      default:
+        M2RTS_HALT (-1);
+        __builtin_unreachable ();
+        break;
+    }
+  ReturnException ("../../gcc/m2/mc/decl.def", 20, 1);
+  __builtin_unreachable ();
+}
+
+
 /*
    getFuncFromExpr -
 */
 
-static decl_node getFuncFromExpr (decl_node n)
+static decl_node__opaque getFuncFromExpr (decl_node__opaque n)
 {
-  n = decl_skipType (decl_getType (n));
-  while ((n != procN) && (! (decl_isProcType (n))))
+  n = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (n))));
+  while ((n != procN) && (! (decl_isProcType (static_cast<decl_node> (n)))))
     {
-      n = decl_skipType (decl_getType (n));
+      n = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (n))));
     }
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -16525,12 +16586,12 @@ static decl_node getFuncFromExpr (decl_node n)
    doFuncExprC -
 */
 
-static void doFuncExprC (mcPretty_pretty p, decl_node n)
+static void doFuncExprC (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
   mcDebug_assert (isFuncCall (n));
-  if (decl_isProcedure (n->funccallF.function))
+  if (decl_isProcedure (static_cast<decl_node> (n->funccallF.function)))
     {
       doFQDNameC (p, n->funccallF.function, true);
       mcPretty_setNeedSpace (p);
@@ -16546,11 +16607,11 @@ static void doFuncExprC (mcPretty_pretty p, decl_node n)
       mcPretty_setNeedSpace (p);
       if (t == procN)
         {
-          doProcTypeArgsC (p, n, NULL, true);
+          doProcTypeArgsC (p, n, static_cast<Indexing_Index> (NULL), true);
         }
       else
         {
-          mcDebug_assert (decl_isProcType (t));
+          mcDebug_assert (decl_isProcType (static_cast<decl_node> (t)));
           doProcTypeArgsC (p, n, t->proctypeF.parameters, true);
         }
     }
@@ -16561,7 +16622,7 @@ static void doFuncExprC (mcPretty_pretty p, decl_node n)
    doFuncCallC -
 */
 
-static void doFuncCallC (mcPretty_pretty p, decl_node n)
+static void doFuncCallC (mcPretty_pretty p, decl_node__opaque n)
 {
   doCommentC (p, n->funccallF.funccallComment.body);
   doFuncExprC (p, n);
@@ -16574,7 +16635,7 @@ static void doFuncCallC (mcPretty_pretty p, decl_node n)
    doCaseStatementC -
 */
 
-static void doCaseStatementC (mcPretty_pretty p, decl_node n, bool needBreak)
+static void doCaseStatementC (mcPretty_pretty p, decl_node__opaque n, bool needBreak)
 {
   p = mcPretty_pushPretty (p);
   mcPretty_setindent (p, (mcPretty_getindent (p))+indentationC);
@@ -16591,7 +16652,7 @@ static void doCaseStatementC (mcPretty_pretty p, decl_node n, bool needBreak)
    doExceptionC -
 */
 
-static void doExceptionC (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node n)
+static void doExceptionC (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node__opaque n)
 {
   unsigned int w;
   char a[_a_high+1];
@@ -16599,7 +16660,7 @@ static void doExceptionC (mcPretty_pretty p, const char *a_, unsigned int _a_hig
   /* make a local copy of each unbounded array.  */
   memcpy (a, a_, _a_high+1);
 
-  w = decl_getDeclaredMod (n);
+  w = decl_getDeclaredMod (static_cast<decl_node> (n));
   outText (p, (const char *) a, _a_high);
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "(\"", 2);
@@ -16619,7 +16680,7 @@ static void doExceptionC (mcPretty_pretty p, const char *a_, unsigned int _a_hig
    doExceptionCP -
 */
 
-static void doExceptionCP (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node n)
+static void doExceptionCP (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node__opaque n)
 {
   unsigned int w;
   char a[_a_high+1];
@@ -16627,7 +16688,7 @@ static void doExceptionCP (mcPretty_pretty p, const char *a_, unsigned int _a_hi
   /* make a local copy of each unbounded array.  */
   memcpy (a, a_, _a_high+1);
 
-  w = decl_getDeclaredMod (n);
+  w = decl_getDeclaredMod (static_cast<decl_node> (n));
   outText (p, (const char *) a, _a_high);
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "(\"", 2);
@@ -16647,7 +16708,7 @@ static void doExceptionCP (mcPretty_pretty p, const char *a_, unsigned int _a_hi
    doException -
 */
 
-static void doException (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node n)
+static void doException (mcPretty_pretty p, const char *a_, unsigned int _a_high, decl_node__opaque n)
 {
   char a[_a_high+1];
 
@@ -16670,18 +16731,18 @@ static void doException (mcPretty_pretty p, const char *a_, unsigned int _a_high
    doRangeListC -
 */
 
-static void doRangeListC (mcPretty_pretty p, decl_node c)
+static void doRangeListC (mcPretty_pretty p, decl_node__opaque c)
 {
-  decl_node r;
+  decl_node__opaque r;
   unsigned int i;
   unsigned int h;
 
-  mcDebug_assert (decl_isCaseList (c));
+  mcDebug_assert (decl_isCaseList (static_cast<decl_node> (c)));
   i = 1;
   h = Indexing_HighIndice (c->caselistF.rangePairs);
   while (i <= h)
     {
-      r = static_cast<decl_node> (Indexing_GetIndice (c->caselistF.rangePairs, i));
+      r = static_cast<decl_node__opaque> (Indexing_GetIndice (c->caselistF.rangePairs, i));
       mcDebug_assert ((r->rangeF.hi == NULL) || (r->rangeF.lo == r->rangeF.hi));
       outText (p, (const char *) "case", 4);
       mcPretty_setNeedSpace (p);
@@ -16696,18 +16757,18 @@ static void doRangeListC (mcPretty_pretty p, decl_node c)
    doRangeIfListC -
 */
 
-static void doRangeIfListC (mcPretty_pretty p, decl_node e, decl_node c)
+static void doRangeIfListC (mcPretty_pretty p, decl_node__opaque e, decl_node__opaque c)
 {
-  decl_node r;
+  decl_node__opaque r;
   unsigned int i;
   unsigned int h;
 
-  mcDebug_assert (decl_isCaseList (c));
+  mcDebug_assert (decl_isCaseList (static_cast<decl_node> (c)));
   i = 1;
   h = Indexing_HighIndice (c->caselistF.rangePairs);
   while (i <= h)
     {
-      r = static_cast<decl_node> (Indexing_GetIndice (c->caselistF.rangePairs, i));
+      r = static_cast<decl_node__opaque> (Indexing_GetIndice (c->caselistF.rangePairs, i));
       if ((r->rangeF.lo != r->rangeF.hi) && (r->rangeF.hi != NULL))
         {
           outText (p, (const char *) "((", 2);
@@ -16756,9 +16817,9 @@ static void doRangeIfListC (mcPretty_pretty p, decl_node e, decl_node c)
    doCaseLabels -
 */
 
-static void doCaseLabels (mcPretty_pretty p, decl_node n, bool needBreak)
+static void doCaseLabels (mcPretty_pretty p, decl_node__opaque n, bool needBreak)
 {
-  mcDebug_assert (decl_isCaseLabelList (n));
+  mcDebug_assert (decl_isCaseLabelList (static_cast<decl_node> (n)));
   doRangeListC (p, n->caselabellistF.caseList);
   p = mcPretty_pushPretty (p);
   mcPretty_setindent (p, (mcPretty_getindent (p))+indentationC);
@@ -16775,18 +16836,18 @@ static void doCaseLabels (mcPretty_pretty p, decl_node n, bool needBreak)
    doCaseLabelListC -
 */
 
-static void doCaseLabelListC (mcPretty_pretty p, decl_node n, bool haveElse)
+static void doCaseLabelListC (mcPretty_pretty p, decl_node__opaque n, bool haveElse)
 {
   unsigned int i;
   unsigned int h;
-  decl_node c;
+  decl_node__opaque c;
 
-  mcDebug_assert (decl_isCase (n));
+  mcDebug_assert (decl_isCase (static_cast<decl_node> (n)));
   i = 1;
   h = Indexing_HighIndice (n->caseF.caseLabelList);
   while (i <= h)
     {
-      c = static_cast<decl_node> (Indexing_GetIndice (n->caseF.caseLabelList, i));
+      c = static_cast<decl_node__opaque> (Indexing_GetIndice (n->caseF.caseLabelList, i));
       doCaseLabels (p, c, ((i < h) || haveElse) || caseException);
       i += 1;
     }
@@ -16797,9 +16858,9 @@ static void doCaseLabelListC (mcPretty_pretty p, decl_node n, bool haveElse)
    doCaseIfLabels -
 */
 
-static void doCaseIfLabels (mcPretty_pretty p, decl_node e, decl_node n, unsigned int i, unsigned int h)
+static void doCaseIfLabels (mcPretty_pretty p, decl_node__opaque e, decl_node__opaque n, unsigned int i, unsigned int h)
 {
-  mcDebug_assert (decl_isCaseLabelList (n));
+  mcDebug_assert (decl_isCaseLabelList (static_cast<decl_node> (n)));
   if (i > 1)
     {
       outText (p, (const char *) "else", 4);
@@ -16827,18 +16888,18 @@ static void doCaseIfLabels (mcPretty_pretty p, decl_node e, decl_node n, unsigne
    doCaseIfLabelListC -
 */
 
-static void doCaseIfLabelListC (mcPretty_pretty p, decl_node n)
+static void doCaseIfLabelListC (mcPretty_pretty p, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int h;
-  decl_node c;
+  decl_node__opaque c;
 
-  mcDebug_assert (decl_isCase (n));
+  mcDebug_assert (decl_isCase (static_cast<decl_node> (n)));
   i = 1;
   h = Indexing_HighIndice (n->caseF.caseLabelList);
   while (i <= h)
     {
-      c = static_cast<decl_node> (Indexing_GetIndice (n->caseF.caseLabelList, i));
+      c = static_cast<decl_node__opaque> (Indexing_GetIndice (n->caseF.caseLabelList, i));
       doCaseIfLabels (p, n->caseF.expression, c, i, h);
       i += 1;
     }
@@ -16849,9 +16910,9 @@ static void doCaseIfLabelListC (mcPretty_pretty p, decl_node n)
    doCaseElseC -
 */
 
-static void doCaseElseC (mcPretty_pretty p, decl_node n)
+static void doCaseElseC (mcPretty_pretty p, decl_node__opaque n)
 {
-  mcDebug_assert (decl_isCase (n));
+  mcDebug_assert (decl_isCase (static_cast<decl_node> (n)));
   if (n->caseF.else_ == NULL)
     {
       /* avoid dangling else.  */
@@ -16876,9 +16937,9 @@ static void doCaseElseC (mcPretty_pretty p, decl_node n)
    doCaseIfElseC -
 */
 
-static void doCaseIfElseC (mcPretty_pretty p, decl_node n)
+static void doCaseIfElseC (mcPretty_pretty p, decl_node__opaque n)
 {
-  mcDebug_assert (decl_isCase (n));
+  mcDebug_assert (decl_isCase (static_cast<decl_node> (n)));
   if (n->caseF.else_ == NULL)
     {
       /* avoid dangling else.  */
@@ -16908,20 +16969,20 @@ static void doCaseIfElseC (mcPretty_pretty p, decl_node n)
                             single values and not ranges.
 */
 
-static bool canUseSwitchCaseLabels (decl_node n)
+static bool canUseSwitchCaseLabels (decl_node__opaque n)
 {
   unsigned int i;
   unsigned int h;
-  decl_node r;
-  decl_node l;
+  decl_node__opaque r;
+  decl_node__opaque l;
 
-  mcDebug_assert (decl_isCaseLabelList (n));
+  mcDebug_assert (decl_isCaseLabelList (static_cast<decl_node> (n)));
   l = n->caselabellistF.caseList;
   i = 1;
   h = Indexing_HighIndice (l->caselistF.rangePairs);
   while (i <= h)
     {
-      r = static_cast<decl_node> (Indexing_GetIndice (l->caselistF.rangePairs, i));
+      r = static_cast<decl_node__opaque> (Indexing_GetIndice (l->caselistF.rangePairs, i));
       if ((r->rangeF.hi != NULL) && (r->rangeF.lo != r->rangeF.hi))
         {
           return false;
@@ -16940,18 +17001,18 @@ static bool canUseSwitchCaseLabels (decl_node n)
                   selectors are single values rather than ranges.
 */
 
-static bool canUseSwitch (decl_node n)
+static bool canUseSwitch (decl_node__opaque n)
 {
   unsigned int i;
   unsigned int h;
-  decl_node c;
+  decl_node__opaque c;
 
-  mcDebug_assert (decl_isCase (n));
+  mcDebug_assert (decl_isCase (static_cast<decl_node> (n)));
   i = 1;
   h = Indexing_HighIndice (n->caseF.caseLabelList);
   while (i <= h)
     {
-      c = static_cast<decl_node> (Indexing_GetIndice (n->caseF.caseLabelList, i));
+      c = static_cast<decl_node__opaque> (Indexing_GetIndice (n->caseF.caseLabelList, i));
       if (! (canUseSwitchCaseLabels (c)))
         {
           return false;
@@ -16968,11 +17029,11 @@ static bool canUseSwitch (decl_node n)
    doCaseC -
 */
 
-static void doCaseC (mcPretty_pretty p, decl_node n)
+static void doCaseC (mcPretty_pretty p, decl_node__opaque n)
 {
   unsigned int i;
 
-  mcDebug_assert (decl_isCase (n));
+  mcDebug_assert (decl_isCase (static_cast<decl_node> (n)));
   if (canUseSwitch (n))
     {
       i = mcPretty_getindent (p);
@@ -17004,9 +17065,9 @@ static void doCaseC (mcPretty_pretty p, decl_node n)
    doLoopC -
 */
 
-static void doLoopC (mcPretty_pretty p, decl_node s)
+static void doLoopC (mcPretty_pretty p, decl_node__opaque s)
 {
-  mcDebug_assert (decl_isLoop (s));
+  mcDebug_assert (decl_isLoop (static_cast<decl_node> (s)));
   outText (p, (const char *) "for (;;)\\n", 10);
   outText (p, (const char *) "{\\n", 3);
   p = mcPretty_pushPretty (p);
@@ -17021,9 +17082,9 @@ static void doLoopC (mcPretty_pretty p, decl_node s)
    doExitC -
 */
 
-static void doExitC (mcPretty_pretty p, decl_node s)
+static void doExitC (mcPretty_pretty p, decl_node__opaque s)
 {
-  mcDebug_assert (decl_isExit (s));
+  mcDebug_assert (decl_isExit (static_cast<decl_node> (s)));
   outText (p, (const char *) "/* exit.  */\\n", 14);
 }
 
@@ -17032,11 +17093,11 @@ static void doExitC (mcPretty_pretty p, decl_node s)
    doStatementsC -
 */
 
-static void doStatementsC (mcPretty_pretty p, decl_node s)
+static void doStatementsC (mcPretty_pretty p, decl_node__opaque s)
 {
   if (s == NULL)
     {}  /* empty.  */
-  else if (decl_isStatementSequence (s))
+  else if (decl_isStatementSequence (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       doStatementSequenceC (p, s);
@@ -17046,12 +17107,12 @@ static void doStatementsC (mcPretty_pretty p, decl_node s)
       /* avoid dangling else.  */
       doCommentC (p, s);
     }
-  else if (decl_isExit (s))
+  else if (decl_isExit (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       doExitC (p, s);
     }
-  else if (decl_isReturn (s))
+  else if (decl_isReturn (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       doReturnC (p, s);
@@ -17061,22 +17122,22 @@ static void doStatementsC (mcPretty_pretty p, decl_node s)
       /* avoid dangling else.  */
       doAssignmentC (p, s);
     }
-  else if (decl_isIf (s))
+  else if (decl_isIf (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       doIfC (p, s);
     }
-  else if (decl_isFor (s))
+  else if (decl_isFor (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       doForC (p, s);
     }
-  else if (decl_isRepeat (s))
+  else if (decl_isRepeat (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       doRepeatC (p, s);
     }
-  else if (decl_isWhile (s))
+  else if (decl_isWhile (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       doWhileC (p, s);
@@ -17091,17 +17152,17 @@ static void doStatementsC (mcPretty_pretty p, decl_node s)
       /* avoid dangling else.  */
       doFuncCallC (p, s);
     }
-  else if (decl_isCase (s))
+  else if (decl_isCase (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       doCaseC (p, s);
     }
-  else if (decl_isLoop (s))
+  else if (decl_isLoop (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       doLoopC (p, s);
     }
-  else if (decl_isExit (s))
+  else if (decl_isExit (static_cast<decl_node> (s)))
     {
       /* avoid dangling else.  */
       doExitC (p, s);
@@ -17114,7 +17175,7 @@ static void doStatementsC (mcPretty_pretty p, decl_node s)
     }
 }
 
-static void stop (void)
+static void localstop (void)
 {
 }
 
@@ -17148,12 +17209,12 @@ static void doLocalConstTypesC (mcPretty_pretty p, decl_scopeT s)
    addParamDone -
 */
 
-static void addParamDone (decl_node n)
+static void addParamDone (decl_node__opaque n)
 {
-  if ((decl_isVar (n)) && n->varF.isParameter)
+  if ((decl_isVar (static_cast<decl_node> (n))) && n->varF.isParameter)
     {
       addDone (n);
-      addDone (decl_getType (n));
+      addDone (static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
     }
 }
 
@@ -17162,9 +17223,9 @@ static void addParamDone (decl_node n)
    includeParameters -
 */
 
-static void includeParameters (decl_node n)
+static void includeParameters (decl_node__opaque n)
 {
-  mcDebug_assert (decl_isProcedure (n));
+  mcDebug_assert (decl_isProcedure (static_cast<decl_node> (n)));
   Indexing_ForeachIndiceInIndexDo (n->procedureF.decls.variables, (Indexing_IndexProcedure) {(Indexing_IndexProcedure_t) addParamDone});
 }
 
@@ -17173,7 +17234,7 @@ static void includeParameters (decl_node n)
    isHalt -
 */
 
-static bool isHalt (decl_node n)
+static bool isHalt (decl_node__opaque n)
 {
   return n->kind == decl_halt;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -17185,9 +17246,9 @@ static bool isHalt (decl_node n)
    isReturnOrHalt -
 */
 
-static bool isReturnOrHalt (decl_node n)
+static bool isReturnOrHalt (decl_node__opaque n)
 {
-  return (isHalt (n)) || (decl_isReturn (n));
+  return (isHalt (n)) || (decl_isReturn (static_cast<decl_node> (n)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -17197,7 +17258,7 @@ static bool isReturnOrHalt (decl_node n)
    isLastStatementReturn -
 */
 
-static bool isLastStatementReturn (decl_node n)
+static bool isLastStatementReturn (decl_node__opaque n)
 {
   return isLastStatement (n, (decl_isNodeF) {(decl_isNodeF_t) isReturnOrHalt});
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -17209,15 +17270,15 @@ static bool isLastStatementReturn (decl_node n)
    isLastStatementSequence -
 */
 
-static bool isLastStatementSequence (decl_node n, decl_isNodeF q)
+static bool isLastStatementSequence (decl_node__opaque n, decl_isNodeF q)
 {
   unsigned int h;
 
-  mcDebug_assert (decl_isStatementSequence (n));
+  mcDebug_assert (decl_isStatementSequence (static_cast<decl_node> (n)));
   h = Indexing_HighIndice (n->stmtF.statements);
   if (h > 0)
     {
-      return isLastStatement (reinterpret_cast<decl_node> (Indexing_GetIndice (n->stmtF.statements, h)), q);
+      return isLastStatement (static_cast<decl_node__opaque> (Indexing_GetIndice (n->stmtF.statements, h)), q);
     }
   return false;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -17229,11 +17290,11 @@ static bool isLastStatementSequence (decl_node n, decl_isNodeF q)
    isLastStatementIf -
 */
 
-static bool isLastStatementIf (decl_node n, decl_isNodeF q)
+static bool isLastStatementIf (decl_node__opaque n, decl_isNodeF q)
 {
   bool ret;
 
-  mcDebug_assert (decl_isIf (n));
+  mcDebug_assert (decl_isIf (static_cast<decl_node> (n)));
   ret = true;
   if ((n->ifF.elsif != NULL) && ret)
     {
@@ -17257,11 +17318,11 @@ static bool isLastStatementIf (decl_node n, decl_isNodeF q)
    isLastStatementElsif -
 */
 
-static bool isLastStatementElsif (decl_node n, decl_isNodeF q)
+static bool isLastStatementElsif (decl_node__opaque n, decl_isNodeF q)
 {
   bool ret;
 
-  mcDebug_assert (decl_isElsif (n));
+  mcDebug_assert (decl_isElsif (static_cast<decl_node> (n)));
   ret = true;
   if ((n->elsifF.elsif != NULL) && ret)
     {
@@ -17285,21 +17346,21 @@ static bool isLastStatementElsif (decl_node n, decl_isNodeF q)
    isLastStatementCase -
 */
 
-static bool isLastStatementCase (decl_node n, decl_isNodeF q)
+static bool isLastStatementCase (decl_node__opaque n, decl_isNodeF q)
 {
   bool ret;
   unsigned int i;
   unsigned int h;
-  decl_node c;
+  decl_node__opaque c;
 
   ret = true;
-  mcDebug_assert (decl_isCase (n));
+  mcDebug_assert (decl_isCase (static_cast<decl_node> (n)));
   i = 1;
   h = Indexing_HighIndice (n->caseF.caseLabelList);
   while (i <= h)
     {
-      c = static_cast<decl_node> (Indexing_GetIndice (n->caseF.caseLabelList, i));
-      mcDebug_assert (decl_isCaseLabelList (c));
+      c = static_cast<decl_node__opaque> (Indexing_GetIndice (n->caseF.caseLabelList, i));
+      mcDebug_assert (decl_isCaseLabelList (static_cast<decl_node> (c)));
       ret = ret && (isLastStatement (c->caselabellistF.statements, q));
       i += 1;
     }
@@ -17317,7 +17378,7 @@ static bool isLastStatementCase (decl_node n, decl_isNodeF q)
    isLastStatement - returns TRUE if the last statement in, n, is, q.
 */
 
-static bool isLastStatement (decl_node n, decl_isNodeF q)
+static bool isLastStatement (decl_node__opaque n, decl_isNodeF q)
 {
   bool ret;
 
@@ -17325,33 +17386,33 @@ static bool isLastStatement (decl_node n, decl_isNodeF q)
     {
       return false;
     }
-  else if (decl_isStatementSequence (n))
+  else if (decl_isStatementSequence (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       return isLastStatementSequence (n, q);
     }
-  else if (decl_isProcedure (n))
+  else if (decl_isProcedure (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
-      mcDebug_assert (decl_isProcedure (n));
+      mcDebug_assert (decl_isProcedure (static_cast<decl_node> (n)));
       return isLastStatement (n->procedureF.beginStatements, q);
     }
-  else if (decl_isIf (n))
+  else if (decl_isIf (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       return isLastStatementIf (n, q);
     }
-  else if (decl_isElsif (n))
+  else if (decl_isElsif (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       return isLastStatementElsif (n, q);
     }
-  else if (decl_isCase (n))
+  else if (decl_isCase (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       return isLastStatementCase (n, q);
     }
-  else if ((*q.proc) (n))
+  else if ((*q.proc) (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       return true;
@@ -17366,13 +17427,13 @@ static bool isLastStatement (decl_node n, decl_isNodeF q)
    doProcedureC -
 */
 
-static void doProcedureC (decl_node n)
+static void doProcedureC (decl_node__opaque n)
 {
   unsigned int s;
 
   outText (doP, (const char *) "\\n", 2);
   includeParameters (n);
-  keyc_enterScope (n);
+  keyc_enterScope (static_cast<decl_node> (n));
   doProcedureHeadingC (n, false);
   outText (doP, (const char *) "\\n", 2);
   doP = outKc (doP, (const char *) "{\\n", 3);
@@ -17402,7 +17463,7 @@ static void doProcedureC (decl_node n)
         }
     }
   doP = outKc (doP, (const char *) "}\\n", 3);
-  keyc_leaveScope (n);
+  keyc_leaveScope (static_cast<decl_node> (n));
 }
 
 
@@ -17425,13 +17486,13 @@ static void outProceduresC (mcPretty_pretty p, decl_scopeT s)
    output -
 */
 
-static void output (decl_node n, decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v)
+static void output (decl_node__opaque n, decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v)
 {
-  if (decl_isConst (n))
+  if (decl_isConst (static_cast<decl_node> (n)))
     {
       (*c.proc) (n);
     }
-  else if (decl_isVar (n))
+  else if (decl_isVar (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       (*v.proc) (n);
@@ -17448,7 +17509,7 @@ static void output (decl_node n, decl_nodeProcedure c, decl_nodeProcedure t, dec
    allDependants -
 */
 
-static decl_dependentState allDependants (decl_node n)
+static decl_dependentState allDependants (decl_node__opaque n)
 {
   alists_alist l;
   decl_dependentState s;
@@ -17466,7 +17527,7 @@ static decl_dependentState allDependants (decl_node n)
    walkDependants -
 */
 
-static decl_dependentState walkDependants (alists_alist l, decl_node n)
+static decl_dependentState walkDependants (alists_alist l, decl_node__opaque n)
 {
   if ((n == NULL) || (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n))))
     {
@@ -17492,11 +17553,11 @@ static decl_dependentState walkDependants (alists_alist l, decl_node n)
    walkType -
 */
 
-static decl_dependentState walkType (alists_alist l, decl_node n)
+static decl_dependentState walkType (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  t = decl_getType (n);
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t)))
     {
       return decl_completed;
@@ -17521,7 +17582,7 @@ static decl_dependentState walkType (alists_alist l, decl_node n)
    db -
 */
 
-static void db (const char *a_, unsigned int _a_high, decl_node n)
+static void db (const char *a_, unsigned int _a_high, decl_node__opaque n)
 {
   char a[_a_high+1];
 
@@ -17561,7 +17622,7 @@ static void dbt (const char *a_, unsigned int _a_high)
    dbs -
 */
 
-static void dbs (decl_dependentState s, decl_node n)
+static void dbs (decl_dependentState s, decl_node__opaque n)
 {
   if (mcOptions_getDebugTopological ())
     {
@@ -17601,7 +17662,7 @@ static void dbs (decl_dependentState s, decl_node n)
    dbq -
 */
 
-static void dbq (decl_node n)
+static void dbq (decl_node__opaque n)
 {
   if (mcOptions_getDebugTopological ())
     {
@@ -17631,13 +17692,13 @@ static void dbq (decl_node n)
    walkRecord -
 */
 
-static decl_dependentState walkRecord (alists_alist l, decl_node n)
+static decl_dependentState walkRecord (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
   unsigned int o;
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
   i = Indexing_LowIndice (n->recordF.listOfSons);
   t = Indexing_HighIndice (n->recordF.listOfSons);
@@ -17647,9 +17708,9 @@ static decl_dependentState walkRecord (alists_alist l, decl_node n)
   dbq (n);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->recordF.listOfSons, i));
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->recordF.listOfSons, i));
       db ((const char *) "", 0, q);
-      if ((decl_isRecordField (q)) && q->recordfieldF.tag)
+      if ((decl_isRecordField (static_cast<decl_node> (q))) && q->recordfieldF.tag)
         {}  /* empty.  */
       else
         {
@@ -17660,7 +17721,7 @@ static decl_dependentState walkRecord (alists_alist l, decl_node n)
               dbs (s, q);
               addTodo (n);
               dbq (n);
-              db ((const char *) "\\n", 2, NULL);
+              db ((const char *) "\\n", 2, static_cast<decl_node__opaque> (NULL));
               mcPretty_setindent (doP, o);
               return s;
             }
@@ -17680,12 +17741,12 @@ static decl_dependentState walkRecord (alists_alist l, decl_node n)
    walkVarient -
 */
 
-static decl_dependentState walkVarient (alists_alist l, decl_node n)
+static decl_dependentState walkVarient (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
   db ((const char *) "\\nwalking", 9, n);
   s = walkDependants (l, n->varientF.tag);
@@ -17693,20 +17754,20 @@ static decl_dependentState walkVarient (alists_alist l, decl_node n)
     {
       dbs (s, n->varientF.tag);
       dbq (n->varientF.tag);
-      db ((const char *) "\\n", 2, NULL);
+      db ((const char *) "\\n", 2, static_cast<decl_node__opaque> (NULL));
       return s;
     }
   i = Indexing_LowIndice (n->varientF.listOfSons);
   t = Indexing_HighIndice (n->varientF.listOfSons);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->varientF.listOfSons, i));
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->varientF.listOfSons, i));
       db ((const char *) "", 0, q);
       s = walkDependants (l, q);
       if (s != decl_completed)
         {
           dbs (s, q);
-          db ((const char *) "\\n", 2, NULL);
+          db ((const char *) "\\n", 2, static_cast<decl_node__opaque> (NULL));
           return s;
         }
       i += 1;
@@ -17723,7 +17784,7 @@ static decl_dependentState walkVarient (alists_alist l, decl_node n)
    queueBlocked -
 */
 
-static void queueBlocked (decl_node n)
+static void queueBlocked (decl_node__opaque n)
 {
   if (! ((alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n))) || (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (n)))))
     {
@@ -17736,11 +17797,11 @@ static void queueBlocked (decl_node n)
    walkVar -
 */
 
-static decl_dependentState walkVar (alists_alist l, decl_node n)
+static decl_dependentState walkVar (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  t = decl_getType (n);
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t)))
     {
       return decl_completed;
@@ -17759,19 +17820,19 @@ static decl_dependentState walkVar (alists_alist l, decl_node n)
    walkEnumeration -
 */
 
-static decl_dependentState walkEnumeration (alists_alist l, decl_node n)
+static decl_dependentState walkEnumeration (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
   i = Indexing_LowIndice (n->enumerationF.listOfSons);
   t = Indexing_HighIndice (n->enumerationF.listOfSons);
   s = decl_completed;
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->enumerationF.listOfSons, i));
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->enumerationF.listOfSons, i));
       s = walkDependants (l, q);
       if (s != decl_completed)
         {
@@ -17789,7 +17850,7 @@ static decl_dependentState walkEnumeration (alists_alist l, decl_node n)
    walkSubrange -
 */
 
-static decl_dependentState walkSubrange (alists_alist l, decl_node n)
+static decl_dependentState walkSubrange (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
 
@@ -17818,7 +17879,7 @@ static decl_dependentState walkSubrange (alists_alist l, decl_node n)
    walkSubscript -
 */
 
-static decl_dependentState walkSubscript (alists_alist l, decl_node n)
+static decl_dependentState walkSubscript (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
 
@@ -17842,12 +17903,12 @@ static decl_dependentState walkSubscript (alists_alist l, decl_node n)
    walkPointer -
 */
 
-static decl_dependentState walkPointer (alists_alist l, decl_node n)
+static decl_dependentState walkPointer (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
   /* if the type of, n, is done or partial then we can output pointer.  */
-  t = decl_getType (n);
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if ((alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t))) || (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t))))
     {
       /* pointer to partial can always generate a complete type.  */
@@ -17863,7 +17924,7 @@ static decl_dependentState walkPointer (alists_alist l, decl_node n)
    walkArray -
 */
 
-static decl_dependentState walkArray (alists_alist l, decl_node n)
+static decl_dependentState walkArray (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
 
@@ -17892,7 +17953,7 @@ static decl_dependentState walkArray (alists_alist l, decl_node n)
    walkConst -
 */
 
-static decl_dependentState walkConst (alists_alist l, decl_node n)
+static decl_dependentState walkConst (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
 
@@ -17916,11 +17977,11 @@ static decl_dependentState walkConst (alists_alist l, decl_node n)
    walkVarParam -
 */
 
-static decl_dependentState walkVarParam (alists_alist l, decl_node n)
+static decl_dependentState walkVarParam (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  t = decl_getType (n);
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {
       /* parameter can be issued from a partial.  */
@@ -17936,11 +17997,11 @@ static decl_dependentState walkVarParam (alists_alist l, decl_node n)
    walkParam -
 */
 
-static decl_dependentState walkParam (alists_alist l, decl_node n)
+static decl_dependentState walkParam (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  t = decl_getType (n);
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {
       /* parameter can be issued from a partial.  */
@@ -17956,11 +18017,11 @@ static decl_dependentState walkParam (alists_alist l, decl_node n)
    walkOptarg -
 */
 
-static decl_dependentState walkOptarg (alists_alist l, decl_node n)
+static decl_dependentState walkOptarg (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  t = decl_getType (n);
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {
       /* parameter can be issued from a partial.  */
@@ -17976,13 +18037,13 @@ static decl_dependentState walkOptarg (alists_alist l, decl_node n)
    walkRecordField -
 */
 
-static decl_dependentState walkRecordField (alists_alist l, decl_node n)
+static decl_dependentState walkRecordField (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
   decl_dependentState s;
 
-  mcDebug_assert (decl_isRecordField (n));
-  t = decl_getType (n);
+  mcDebug_assert (decl_isRecordField (static_cast<decl_node> (n)));
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {
       dbs (decl_partial, n);
@@ -18013,19 +18074,19 @@ static decl_dependentState walkRecordField (alists_alist l, decl_node n)
    walkVarientField -
 */
 
-static decl_dependentState walkVarientField (alists_alist l, decl_node n)
+static decl_dependentState walkVarientField (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
   i = Indexing_LowIndice (n->varientfieldF.listOfSons);
   t = Indexing_HighIndice (n->varientfieldF.listOfSons);
   s = decl_completed;
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->varientfieldF.listOfSons, i));
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->varientfieldF.listOfSons, i));
       s = walkDependants (l, q);
       if (s != decl_completed)
         {
@@ -18046,7 +18107,7 @@ static decl_dependentState walkVarientField (alists_alist l, decl_node n)
    walkEnumerationField -
 */
 
-static decl_dependentState walkEnumerationField (alists_alist l, decl_node n)
+static decl_dependentState walkEnumerationField (alists_alist l, decl_node__opaque n)
 {
   return decl_completed;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -18058,9 +18119,9 @@ static decl_dependentState walkEnumerationField (alists_alist l, decl_node n)
    walkSet -
 */
 
-static decl_dependentState walkSet (alists_alist l, decl_node n)
+static decl_dependentState walkSet (alists_alist l, decl_node__opaque n)
 {
-  return walkDependants (l, decl_getType (n));
+  return walkDependants (l, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -18070,12 +18131,12 @@ static decl_dependentState walkSet (alists_alist l, decl_node n)
    walkProcType -
 */
 
-static decl_dependentState walkProcType (alists_alist l, decl_node n)
+static decl_dependentState walkProcType (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
-  decl_node t;
+  decl_node__opaque t;
 
-  t = decl_getType (n);
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
     {}  /* empty.  */
   else
@@ -18097,11 +18158,11 @@ static decl_dependentState walkProcType (alists_alist l, decl_node n)
    walkProcedure -
 */
 
-static decl_dependentState walkProcedure (alists_alist l, decl_node n)
+static decl_dependentState walkProcedure (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
 
-  s = walkDependants (l, decl_getType (n));
+  s = walkDependants (l, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   if (s != decl_completed)
     {
       return s;
@@ -18121,13 +18182,13 @@ static decl_dependentState walkParameters (alists_alist l, Indexing_Index p)
   decl_dependentState s;
   unsigned int i;
   unsigned int h;
-  decl_node q;
+  decl_node__opaque q;
 
   i = Indexing_LowIndice (p);
   h = Indexing_HighIndice (p);
   while (i <= h)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (p, i));
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (p, i));
       s = walkDependants (l, q);
       if (s != decl_completed)
         {
@@ -18145,7 +18206,7 @@ static decl_dependentState walkParameters (alists_alist l, Indexing_Index p)
    walkFuncCall -
 */
 
-static decl_dependentState walkFuncCall (alists_alist l, decl_node n)
+static decl_dependentState walkFuncCall (alists_alist l, decl_node__opaque n)
 {
   return decl_completed;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -18157,7 +18218,7 @@ static decl_dependentState walkFuncCall (alists_alist l, decl_node n)
    walkUnary -
 */
 
-static decl_dependentState walkUnary (alists_alist l, decl_node n)
+static decl_dependentState walkUnary (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
 
@@ -18176,7 +18237,7 @@ static decl_dependentState walkUnary (alists_alist l, decl_node n)
    walkBinary -
 */
 
-static decl_dependentState walkBinary (alists_alist l, decl_node n)
+static decl_dependentState walkBinary (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
 
@@ -18200,7 +18261,7 @@ static decl_dependentState walkBinary (alists_alist l, decl_node n)
    walkComponentRef -
 */
 
-static decl_dependentState walkComponentRef (alists_alist l, decl_node n)
+static decl_dependentState walkComponentRef (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
 
@@ -18224,7 +18285,7 @@ static decl_dependentState walkComponentRef (alists_alist l, decl_node n)
    walkPointerRef -
 */
 
-static decl_dependentState walkPointerRef (alists_alist l, decl_node n)
+static decl_dependentState walkPointerRef (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
 
@@ -18248,13 +18309,13 @@ static decl_dependentState walkPointerRef (alists_alist l, decl_node n)
    walkSetValue -
 */
 
-static decl_dependentState walkSetValue (alists_alist l, decl_node n)
+static decl_dependentState walkSetValue (alists_alist l, decl_node__opaque n)
 {
   decl_dependentState s;
   unsigned int i;
   unsigned int j;
 
-  mcDebug_assert (decl_isSetValue (n));
+  mcDebug_assert (decl_isSetValue (static_cast<decl_node> (n)));
   s = walkDependants (l, n->setvalueF.type);
   if (s != decl_completed)
     {
@@ -18264,7 +18325,7 @@ static decl_dependentState walkSetValue (alists_alist l, decl_node n)
   j = Indexing_HighIndice (n->setvalueF.values);
   while (i <= j)
     {
-      s = walkDependants (l, reinterpret_cast<decl_node> (Indexing_GetIndice (n->setvalueF.values, i)));
+      s = walkDependants (l, static_cast<decl_node__opaque> (Indexing_GetIndice (n->setvalueF.values, i)));
       if (s != decl_completed)
         {
           return s;
@@ -18282,7 +18343,7 @@ static decl_dependentState walkSetValue (alists_alist l, decl_node n)
                   all dependants have been declared.
 */
 
-static decl_dependentState doDependants (alists_alist l, decl_node n)
+static decl_dependentState doDependants (alists_alist l, decl_node__opaque n)
 {
   switch (n->kind)
     {
@@ -18490,15 +18551,15 @@ static decl_dependentState doDependants (alists_alist l, decl_node n)
    tryComplete - returns TRUE if node, n, can be and was completed.
 */
 
-static bool tryComplete (decl_node n, decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v)
+static bool tryComplete (decl_node__opaque n, decl_nodeProcedure c, decl_nodeProcedure t, decl_nodeProcedure v)
 {
-  if (decl_isEnumeration (n))
+  if (decl_isEnumeration (static_cast<decl_node> (n)))
     {
       /* can always emit enumerated types.  */
       output (n, c, t, v);
       return true;
     }
-  else if (((decl_isType (n)) && (decl_isTypeHidden (n))) && ((decl_getType (n)) == NULL))
+  else if (((decl_isType (static_cast<decl_node> (n))) && (decl_isTypeHidden (static_cast<decl_node> (n)))) && ((decl_getType (static_cast<decl_node> (n))) == NULL))
     {
       /* avoid dangling else.  */
       /* can always emit hidden types.  */
@@ -18521,9 +18582,9 @@ static bool tryComplete (decl_node n, decl_nodeProcedure c, decl_nodeProcedure t
    tryCompleteFromPartial -
 */
 
-static bool tryCompleteFromPartial (decl_node n, decl_nodeProcedure t)
+static bool tryCompleteFromPartial (decl_node__opaque n, decl_nodeProcedure t)
 {
-  if ((((decl_isType (n)) && ((decl_getType (n)) != NULL)) && (decl_isPointer (decl_getType (n)))) && ((allDependants (decl_getType (n))) == decl_completed))
+  if ((((decl_isType (static_cast<decl_node> (n))) && ((decl_getType (static_cast<decl_node> (n))) != NULL)) && (decl_isPointer (decl_getType (static_cast<decl_node> (n))))) && ((allDependants (static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))))) == decl_completed))
     {
       /* alists.includeItemIntoList (globalGroup^.partialQ, getType (n)) ;  */
       outputHiddenComplete (n);
@@ -18545,7 +18606,7 @@ static bool tryCompleteFromPartial (decl_node n, decl_nodeProcedure t)
    visitIntrinsicFunction -
 */
 
-static void visitIntrinsicFunction (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitIntrinsicFunction (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   mcDebug_assert (isIntrinsicFunction (n));
   switch (n->kind)
@@ -18588,7 +18649,7 @@ static void visitIntrinsicFunction (alists_alist v, decl_node n, decl_nodeProced
    visitUnary -
 */
 
-static void visitUnary (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitUnary (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   mcDebug_assert (isUnary (n));
   visitNode (v, n->unaryF.arg, p);
@@ -18600,7 +18661,7 @@ static void visitUnary (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitBinary -
 */
 
-static void visitBinary (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitBinary (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   visitNode (v, n->binaryF.left, p);
   visitNode (v, n->binaryF.right, p);
@@ -18612,7 +18673,7 @@ static void visitBinary (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitBoolean -
 */
 
-static void visitBoolean (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitBoolean (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   visitNode (v, falseN, p);
   visitNode (v, trueN, p);
@@ -18623,7 +18684,7 @@ static void visitBoolean (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitScope -
 */
 
-static void visitScope (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitScope (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   if (mustVisitScope)
     {
@@ -18636,9 +18697,9 @@ static void visitScope (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitType -
 */
 
-static void visitType (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitType (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isType (n));
+  mcDebug_assert (decl_isType (static_cast<decl_node> (n)));
   visitNode (v, n->typeF.type, p);
   visitScope (v, n->typeF.scope, p);
 }
@@ -18657,7 +18718,7 @@ static void visitIndex (alists_alist v, Indexing_Index i, decl_nodeProcedure p)
   h = Indexing_HighIndice (i);
   while (j <= h)
     {
-      visitNode (v, reinterpret_cast<decl_node> (Indexing_GetIndice (i, j)), p);
+      visitNode (v, static_cast<decl_node__opaque> (Indexing_GetIndice (i, j)), p);
       j += 1;
     }
 }
@@ -18667,9 +18728,9 @@ static void visitIndex (alists_alist v, Indexing_Index i, decl_nodeProcedure p)
    visitRecord -
 */
 
-static void visitRecord (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitRecord (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isRecord (n));
+  mcDebug_assert (decl_isRecord (static_cast<decl_node> (n)));
   visitScope (v, n->recordF.scope, p);
   visitIndex (v, n->recordF.listOfSons, p);
 }
@@ -18679,9 +18740,9 @@ static void visitRecord (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitVarient -
 */
 
-static void visitVarient (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitVarient (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isVarient (n));
+  mcDebug_assert (decl_isVarient (static_cast<decl_node> (n)));
   visitIndex (v, n->varientF.listOfSons, p);
   visitNode (v, n->varientF.varient, p);
   visitNode (v, n->varientF.tag, p);
@@ -18693,9 +18754,9 @@ static void visitVarient (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitVar -
 */
 
-static void visitVar (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitVar (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isVar (n));
+  mcDebug_assert (decl_isVar (static_cast<decl_node> (n)));
   visitNode (v, n->varF.type, p);
   visitNode (v, n->varF.decl, p);
   visitScope (v, n->varF.scope, p);
@@ -18706,9 +18767,9 @@ static void visitVar (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitEnumeration -
 */
 
-static void visitEnumeration (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitEnumeration (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isEnumeration (n));
+  mcDebug_assert (decl_isEnumeration (static_cast<decl_node> (n)));
   visitIndex (v, n->enumerationF.listOfSons, p);
   visitScope (v, n->enumerationF.scope, p);
 }
@@ -18718,9 +18779,9 @@ static void visitEnumeration (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitSubrange -
 */
 
-static void visitSubrange (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitSubrange (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isSubrange (n));
+  mcDebug_assert (decl_isSubrange (static_cast<decl_node> (n)));
   visitNode (v, n->subrangeF.low, p);
   visitNode (v, n->subrangeF.high, p);
   visitNode (v, n->subrangeF.type, p);
@@ -18732,9 +18793,9 @@ static void visitSubrange (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitPointer -
 */
 
-static void visitPointer (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitPointer (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isPointer (n));
+  mcDebug_assert (decl_isPointer (static_cast<decl_node> (n)));
   visitNode (v, n->pointerF.type, p);
   visitScope (v, n->pointerF.scope, p);
 }
@@ -18744,9 +18805,9 @@ static void visitPointer (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitArray -
 */
 
-static void visitArray (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitArray (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isArray (n));
+  mcDebug_assert (decl_isArray (static_cast<decl_node> (n)));
   visitNode (v, n->arrayF.subr, p);
   visitNode (v, n->arrayF.type, p);
   visitScope (v, n->arrayF.scope, p);
@@ -18757,9 +18818,9 @@ static void visitArray (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitConst -
 */
 
-static void visitConst (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitConst (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isConst (n));
+  mcDebug_assert (decl_isConst (static_cast<decl_node> (n)));
   visitNode (v, n->constF.type, p);
   visitNode (v, n->constF.value, p);
   visitScope (v, n->constF.scope, p);
@@ -18770,9 +18831,9 @@ static void visitConst (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitVarParam -
 */
 
-static void visitVarParam (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitVarParam (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isVarParam (n));
+  mcDebug_assert (decl_isVarParam (static_cast<decl_node> (n)));
   visitNode (v, n->varparamF.namelist, p);
   visitNode (v, n->varparamF.type, p);
   visitScope (v, n->varparamF.scope, p);
@@ -18783,9 +18844,9 @@ static void visitVarParam (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitParam -
 */
 
-static void visitParam (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitParam (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isParam (n));
+  mcDebug_assert (decl_isParam (static_cast<decl_node> (n)));
   visitNode (v, n->paramF.namelist, p);
   visitNode (v, n->paramF.type, p);
   visitScope (v, n->paramF.scope, p);
@@ -18796,9 +18857,9 @@ static void visitParam (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitOptarg -
 */
 
-static void visitOptarg (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitOptarg (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isOptarg (n));
+  mcDebug_assert (decl_isOptarg (static_cast<decl_node> (n)));
   visitNode (v, n->optargF.namelist, p);
   visitNode (v, n->optargF.type, p);
   visitNode (v, n->optargF.init, p);
@@ -18810,9 +18871,9 @@ static void visitOptarg (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitRecordField -
 */
 
-static void visitRecordField (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitRecordField (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isRecordField (n));
+  mcDebug_assert (decl_isRecordField (static_cast<decl_node> (n)));
   visitNode (v, n->recordfieldF.type, p);
   visitNode (v, n->recordfieldF.parent, p);
   visitNode (v, n->recordfieldF.varient, p);
@@ -18824,9 +18885,9 @@ static void visitRecordField (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitVarientField -
 */
 
-static void visitVarientField (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitVarientField (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isVarientField (n));
+  mcDebug_assert (decl_isVarientField (static_cast<decl_node> (n)));
   visitNode (v, n->varientfieldF.parent, p);
   visitNode (v, n->varientfieldF.varient, p);
   visitIndex (v, n->varientfieldF.listOfSons, p);
@@ -18838,9 +18899,9 @@ static void visitVarientField (alists_alist v, decl_node n, decl_nodeProcedure p
    visitEnumerationField -
 */
 
-static void visitEnumerationField (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitEnumerationField (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isEnumerationField (n));
+  mcDebug_assert (decl_isEnumerationField (static_cast<decl_node> (n)));
   visitNode (v, n->enumerationfieldF.type, p);
   visitScope (v, n->enumerationfieldF.scope, p);
 }
@@ -18850,9 +18911,9 @@ static void visitEnumerationField (alists_alist v, decl_node n, decl_nodeProcedu
    visitSet -
 */
 
-static void visitSet (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitSet (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isSet (n));
+  mcDebug_assert (decl_isSet (static_cast<decl_node> (n)));
   visitNode (v, n->setF.type, p);
   visitScope (v, n->setF.scope, p);
 }
@@ -18862,9 +18923,9 @@ static void visitSet (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitProcType -
 */
 
-static void visitProcType (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitProcType (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isProcType (n));
+  mcDebug_assert (decl_isProcType (static_cast<decl_node> (n)));
   visitIndex (v, n->proctypeF.parameters, p);
   visitNode (v, n->proctypeF.optarg_, p);
   visitNode (v, n->proctypeF.returnType, p);
@@ -18876,7 +18937,7 @@ static void visitProcType (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitSubscript -
 */
 
-static void visitSubscript (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitSubscript (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
 }
 
@@ -18898,9 +18959,9 @@ static void visitDecls (alists_alist v, decl_scopeT s, decl_nodeProcedure p)
    visitProcedure -
 */
 
-static void visitProcedure (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitProcedure (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isProcedure (n));
+  mcDebug_assert (decl_isProcedure (static_cast<decl_node> (n)));
   visitDecls (v, n->procedureF.decls, p);
   visitScope (v, n->procedureF.scope, p);
   visitIndex (v, n->procedureF.parameters, p);
@@ -18914,9 +18975,9 @@ static void visitProcedure (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitDef -
 */
 
-static void visitDef (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitDef (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isDef (n));
+  mcDebug_assert (decl_isDef (static_cast<decl_node> (n)));
   visitDecls (v, n->defF.decls, p);
 }
 
@@ -18925,9 +18986,9 @@ static void visitDef (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitImp -
 */
 
-static void visitImp (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitImp (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isImp (n));
+  mcDebug_assert (decl_isImp (static_cast<decl_node> (n)));
   visitDecls (v, n->impF.decls, p);
   visitNode (v, n->impF.beginStatements, p);
   /* --fixme-- do we need to visit definitionModule?  */
@@ -18939,9 +19000,9 @@ static void visitImp (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitModule -
 */
 
-static void visitModule (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitModule (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isModule (n));
+  mcDebug_assert (decl_isModule (static_cast<decl_node> (n)));
   visitDecls (v, n->moduleF.decls, p);
   visitNode (v, n->moduleF.beginStatements, p);
   visitNode (v, n->moduleF.finallyStatements, p);
@@ -18952,9 +19013,9 @@ static void visitModule (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitLoop -
 */
 
-static void visitLoop (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitLoop (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isLoop (n));
+  mcDebug_assert (decl_isLoop (static_cast<decl_node> (n)));
   visitNode (v, n->loopF.statements, p);
 }
 
@@ -18963,9 +19024,9 @@ static void visitLoop (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitWhile -
 */
 
-static void visitWhile (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitWhile (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isWhile (n));
+  mcDebug_assert (decl_isWhile (static_cast<decl_node> (n)));
   visitNode (v, n->whileF.expr, p);
   visitNode (v, n->whileF.statements, p);
 }
@@ -18975,9 +19036,9 @@ static void visitWhile (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitRepeat -
 */
 
-static void visitRepeat (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitRepeat (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isRepeat (n));
+  mcDebug_assert (decl_isRepeat (static_cast<decl_node> (n)));
   visitNode (v, n->repeatF.expr, p);
   visitNode (v, n->repeatF.statements, p);
 }
@@ -18987,9 +19048,9 @@ static void visitRepeat (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitCase -
 */
 
-static void visitCase (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitCase (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isCase (n));
+  mcDebug_assert (decl_isCase (static_cast<decl_node> (n)));
   visitNode (v, n->caseF.expression, p);
   visitIndex (v, n->caseF.caseLabelList, p);
   visitNode (v, n->caseF.else_, p);
@@ -19000,9 +19061,9 @@ static void visitCase (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitCaseLabelList -
 */
 
-static void visitCaseLabelList (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitCaseLabelList (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isCaseLabelList (n));
+  mcDebug_assert (decl_isCaseLabelList (static_cast<decl_node> (n)));
   visitNode (v, n->caselabellistF.caseList, p);
   visitNode (v, n->caselabellistF.statements, p);
 }
@@ -19012,9 +19073,9 @@ static void visitCaseLabelList (alists_alist v, decl_node n, decl_nodeProcedure
    visitCaseList -
 */
 
-static void visitCaseList (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitCaseList (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isCaseList (n));
+  mcDebug_assert (decl_isCaseList (static_cast<decl_node> (n)));
   visitIndex (v, n->caselistF.rangePairs, p);
 }
 
@@ -19023,9 +19084,9 @@ static void visitCaseList (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitRange -
 */
 
-static void visitRange (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitRange (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isRange (n));
+  mcDebug_assert (decl_isRange (static_cast<decl_node> (n)));
   visitNode (v, n->rangeF.lo, p);
   visitNode (v, n->rangeF.hi, p);
 }
@@ -19035,9 +19096,9 @@ static void visitRange (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitIf -
 */
 
-static void visitIf (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitIf (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isIf (n));
+  mcDebug_assert (decl_isIf (static_cast<decl_node> (n)));
   visitNode (v, n->ifF.expr, p);
   visitNode (v, n->ifF.elsif, p);
   visitNode (v, n->ifF.then, p);
@@ -19049,9 +19110,9 @@ static void visitIf (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitElsif -
 */
 
-static void visitElsif (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitElsif (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isElsif (n));
+  mcDebug_assert (decl_isElsif (static_cast<decl_node> (n)));
   visitNode (v, n->elsifF.expr, p);
   visitNode (v, n->elsifF.elsif, p);
   visitNode (v, n->elsifF.then, p);
@@ -19063,9 +19124,9 @@ static void visitElsif (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitFor -
 */
 
-static void visitFor (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitFor (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isFor (n));
+  mcDebug_assert (decl_isFor (static_cast<decl_node> (n)));
   visitNode (v, n->forF.des, p);
   visitNode (v, n->forF.start, p);
   visitNode (v, n->forF.end, p);
@@ -19078,7 +19139,7 @@ static void visitFor (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitAssignment -
 */
 
-static void visitAssignment (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitAssignment (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   mcDebug_assert (isAssignment (n));
   visitNode (v, n->assignmentF.des, p);
@@ -19090,7 +19151,7 @@ static void visitAssignment (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitComponentRef -
 */
 
-static void visitComponentRef (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitComponentRef (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   mcDebug_assert (isComponentRef (n));
   visitNode (v, n->componentrefF.rec, p);
@@ -19103,9 +19164,9 @@ static void visitComponentRef (alists_alist v, decl_node n, decl_nodeProcedure p
    visitPointerRef -
 */
 
-static void visitPointerRef (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitPointerRef (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isPointerRef (n));
+  mcDebug_assert (decl_isPointerRef (static_cast<decl_node> (n)));
   visitNode (v, n->pointerrefF.ptr, p);
   visitNode (v, n->pointerrefF.field, p);
   visitNode (v, n->pointerrefF.resultType, p);
@@ -19116,7 +19177,7 @@ static void visitPointerRef (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitArrayRef -
 */
 
-static void visitArrayRef (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitArrayRef (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   mcDebug_assert (isArrayRef (n));
   visitNode (v, n->arrayrefF.array, p);
@@ -19129,7 +19190,7 @@ static void visitArrayRef (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitFunccall -
 */
 
-static void visitFunccall (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitFunccall (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   mcDebug_assert (isFuncCall (n));
   visitNode (v, n->funccallF.function, p);
@@ -19142,7 +19203,7 @@ static void visitFunccall (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitVarDecl -
 */
 
-static void visitVarDecl (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitVarDecl (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   mcDebug_assert (isVarDecl (n));
   visitNode (v, n->vardeclF.type, p);
@@ -19154,9 +19215,9 @@ static void visitVarDecl (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitExplist -
 */
 
-static void visitExplist (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitExplist (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isExpList (n));
+  mcDebug_assert (decl_isExpList (static_cast<decl_node> (n)));
   visitIndex (v, n->explistF.exp, p);
 }
 
@@ -19165,9 +19226,9 @@ static void visitExplist (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitExit -
 */
 
-static void visitExit (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitExit (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isExit (n));
+  mcDebug_assert (decl_isExit (static_cast<decl_node> (n)));
   visitNode (v, n->exitF.loop, p);
 }
 
@@ -19176,9 +19237,9 @@ static void visitExit (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitReturn -
 */
 
-static void visitReturn (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitReturn (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isReturn (n));
+  mcDebug_assert (decl_isReturn (static_cast<decl_node> (n)));
   visitNode (v, n->returnF.exp, p);
 }
 
@@ -19187,9 +19248,9 @@ static void visitReturn (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitStmtSeq -
 */
 
-static void visitStmtSeq (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitStmtSeq (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isStatementSequence (n));
+  mcDebug_assert (decl_isStatementSequence (static_cast<decl_node> (n)));
   visitIndex (v, n->stmtF.statements, p);
 }
 
@@ -19198,9 +19259,9 @@ static void visitStmtSeq (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitVarargs -
 */
 
-static void visitVarargs (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitVarargs (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isVarargs (n));
+  mcDebug_assert (decl_isVarargs (static_cast<decl_node> (n)));
   visitScope (v, n->varargsF.scope, p);
 }
 
@@ -19209,9 +19270,9 @@ static void visitVarargs (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitSetValue -
 */
 
-static void visitSetValue (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitSetValue (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  mcDebug_assert (decl_isSetValue (n));
+  mcDebug_assert (decl_isSetValue (static_cast<decl_node> (n)));
   visitNode (v, n->setvalueF.type, p);
   visitIndex (v, n->setvalueF.values, p);
 }
@@ -19221,7 +19282,7 @@ static void visitSetValue (alists_alist v, decl_node n, decl_nodeProcedure p)
    visitIntrinsic -
 */
 
-static void visitIntrinsic (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitIntrinsic (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   mcDebug_assert (isIntrinsic (n));
   visitNode (v, n->intrinsicF.args, p);
@@ -19234,7 +19295,7 @@ static void visitIntrinsic (alists_alist v, decl_node n, decl_nodeProcedure p)
                      visit node, n, dependants.
 */
 
-static void visitDependants (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitDependants (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   mcDebug_assert (n != NULL);
   mcDebug_assert (alists_isItemInList (v, reinterpret_cast<void *> (n)));
@@ -19588,7 +19649,7 @@ static void visitDependants (alists_alist v, decl_node n, decl_nodeProcedure p)
                It calls p(n) if the node is unvisited.
 */
 
-static void visitNode (alists_alist v, decl_node n, decl_nodeProcedure p)
+static void visitNode (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   if ((n != NULL) && (! (alists_isItemInList (v, reinterpret_cast<void *> (n)))))
     {
@@ -19603,7 +19664,7 @@ static void visitNode (alists_alist v, decl_node n, decl_nodeProcedure p)
    genKind - returns a string depending upon the kind of node, n.
 */
 
-static DynamicStrings_String genKind (decl_node n)
+static DynamicStrings_String genKind (decl_node__opaque n)
 {
   switch (n->kind)
     {
@@ -19635,7 +19696,7 @@ static DynamicStrings_String genKind (decl_node n)
       case decl_longcomplex:
       case decl_shortcomplex:
         /* types, no need to generate a kind string as it it contained in the name.  */
-        return NULL;
+        return static_cast<DynamicStrings_String> (NULL);
         break;
 
       case decl_type:
@@ -19938,7 +19999,7 @@ static DynamicStrings_String genKind (decl_node n)
    gen - generate a small string describing node, n.
 */
 
-static DynamicStrings_String gen (decl_node n)
+static DynamicStrings_String gen (decl_node__opaque n)
 {
   DynamicStrings_String s;
   unsigned int d;
@@ -19962,7 +20023,7 @@ static DynamicStrings_String gen (decl_node n)
 static void dumpQ (const char *q_, unsigned int _q_high, alists_alist l)
 {
   DynamicStrings_String m;
-  decl_node n;
+  decl_node__opaque n;
   unsigned int d;
   unsigned int h;
   unsigned int i;
@@ -19981,7 +20042,7 @@ static void dumpQ (const char *q_, unsigned int _q_high, alists_alist l)
   h = alists_noOfItemsInList (l);
   while (i <= h)
     {
-      n = static_cast<decl_node> (alists_getItemFromList (l, i));
+      n = static_cast<decl_node__opaque> (alists_getItemFromList (l, i));
       m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, gen (n)));
       i += 1;
     }
@@ -19996,12 +20057,8 @@ static void dumpQ (const char *q_, unsigned int _q_high, alists_alist l)
 
 static void dumpLists (void)
 {
-  DynamicStrings_String m;
-
-  if (mcOptions_getDebugTopological ())
+  if ((mcOptions_getDebugTopological ()) && false)
     {
-      m = FormatStrings_Sprintf0 (DynamicStrings_InitString ((const char *) "\\n", 2));
-      m = DynamicStrings_KillString (SFIO_WriteS (FIO_StdOut, m));
       dumpQ ((const char *) "todo", 4, globalGroup->todoQ);
       dumpQ ((const char *) "partial", 7, globalGroup->partialQ);
       dumpQ ((const char *) "done", 4, globalGroup->doneQ);
@@ -20013,7 +20070,7 @@ static void dumpLists (void)
    outputHidden -
 */
 
-static void outputHidden (decl_node n)
+static void outputHidden (decl_node__opaque n)
 {
   outText (doP, (const char *) "#if !defined (", 14);
   doFQNameC (doP, n);
@@ -20032,18 +20089,18 @@ static void outputHidden (decl_node n)
    outputHiddenComplete -
 */
 
-static void outputHiddenComplete (decl_node n)
+static void outputHiddenComplete (decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  mcDebug_assert (decl_isType (n));
-  t = decl_getType (n);
-  mcDebug_assert (decl_isPointer (t));
+  mcDebug_assert (decl_isType (static_cast<decl_node> (n)));
+  t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+  mcDebug_assert (decl_isPointer (static_cast<decl_node> (t)));
   outText (doP, (const char *) "#define ", 8);
   doFQNameC (doP, n);
   outText (doP, (const char *) "_D\\n", 4);
   outText (doP, (const char *) "typedef ", 8);
-  doTypeNameC (doP, decl_getType (t));
+  doTypeNameC (doP, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (t))));
   mcPretty_setNeedSpace (doP);
   outText (doP, (const char *) "*", 1);
   doFQNameC (doP, n);
@@ -20055,27 +20112,27 @@ static void outputHiddenComplete (decl_node n)
    tryPartial -
 */
 
-static bool tryPartial (decl_node n, decl_nodeProcedure pt)
+static bool tryPartial (decl_node__opaque n, decl_nodeProcedure pt)
 {
-  decl_node q;
+  decl_node__opaque q;
 
-  if ((n != NULL) && (decl_isType (n)))
+  if ((n != NULL) && (decl_isType (static_cast<decl_node> (n))))
     {
-      q = decl_getType (n);
-      while (decl_isPointer (q))
+      q = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+      while (decl_isPointer (static_cast<decl_node> (q)))
         {
-          q = decl_getType (q);
+          q = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (q)));
         }
       if (q != NULL)
         {
           /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-          if ((decl_isRecord (q)) || (decl_isProcType (q)))
+          if ((decl_isRecord (static_cast<decl_node> (q))) || (decl_isProcType (static_cast<decl_node> (q))))
             {
               (*pt.proc) (n);
               addTodo (q);
               return true;
             }
-          else if (decl_isArray (q))
+          else if (decl_isArray (static_cast<decl_node> (q)))
             {
               /* avoid dangling else.  */
               (*pt.proc) (n);
@@ -20094,23 +20151,23 @@ static bool tryPartial (decl_node n, decl_nodeProcedure pt)
    outputPartialRecordArrayProcType -
 */
 
-static void outputPartialRecordArrayProcType (decl_node n, decl_node q, unsigned int indirection)
+static void outputPartialRecordArrayProcType (decl_node__opaque n, decl_node__opaque q, unsigned int indirection)
 {
   DynamicStrings_String s;
 
   outText (doP, (const char *) "typedef struct", 14);
   mcPretty_setNeedSpace (doP);
   s = getFQstring (n);
-  if (decl_isRecord (q))
+  if (decl_isRecord (static_cast<decl_node> (q)))
     {
       s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "_r", 2)));
     }
-  else if (decl_isArray (q))
+  else if (decl_isArray (static_cast<decl_node> (q)))
     {
       /* avoid dangling else.  */
       s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "_a", 2)));
     }
-  else if (decl_isProcType (q))
+  else if (decl_isProcType (static_cast<decl_node> (q)))
     {
       /* avoid dangling else.  */
       s = DynamicStrings_ConCat (s, DynamicStrings_Mark (DynamicStrings_InitString ((const char *) "_p", 2)));
@@ -20132,16 +20189,16 @@ static void outputPartialRecordArrayProcType (decl_node n, decl_node q, unsigned
    outputPartial -
 */
 
-static void outputPartial (decl_node n)
+static void outputPartial (decl_node__opaque n)
 {
-  decl_node q;
+  decl_node__opaque q;
   unsigned int indirection;
 
-  q = decl_getType (n);
+  q = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   indirection = 0;
-  while (decl_isPointer (q))
+  while (decl_isPointer (static_cast<decl_node> (q)))
     {
-      q = decl_getType (q);
+      q = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (q)));
       indirection += 1;
     }
   outputPartialRecordArrayProcType (n, q, indirection);
@@ -20156,17 +20213,17 @@ static void tryOutputTodo (decl_nodeProcedure c, decl_nodeProcedure t, decl_node
 {
   unsigned int i;
   unsigned int n;
-  decl_node d;
+  decl_node__opaque d;
 
   i = 1;
   n = alists_noOfItemsInList (globalGroup->todoQ);
   while (i <= n)
     {
-      d = static_cast<decl_node> (alists_getItemFromList (globalGroup->todoQ, i));
+      d = static_cast<decl_node__opaque> (alists_getItemFromList (globalGroup->todoQ, i));
       if (tryComplete (d, c, t, v))
         {
           alists_removeItemFromList (globalGroup->todoQ, reinterpret_cast<void *> (d));
-          alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (d));
+          addDone (d);
           i = 1;
         }
       else if (tryPartial (d, pt))
@@ -20194,17 +20251,17 @@ static void tryOutputPartial (decl_nodeProcedure t)
 {
   unsigned int i;
   unsigned int n;
-  decl_node d;
+  decl_node__opaque d;
 
   i = 1;
   n = alists_noOfItemsInList (globalGroup->partialQ);
   while (i <= n)
     {
-      d = static_cast<decl_node> (alists_getItemFromList (globalGroup->partialQ, i));
+      d = static_cast<decl_node__opaque> (alists_getItemFromList (globalGroup->partialQ, i));
       if (tryCompleteFromPartial (d, t))
         {
           alists_removeItemFromList (globalGroup->partialQ, reinterpret_cast<void *> (d));
-          alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (d));
+          addDone (d);
           i = 1;
           n -= 1;
         }
@@ -20220,25 +20277,25 @@ static void tryOutputPartial (decl_nodeProcedure t)
    debugList -
 */
 
-static void debugList (const char *a_, unsigned int _a_high, alists_alist l)
+static void debugList (const char *listName_, unsigned int _listName_high, const char *symName_, unsigned int _symName_high, alists_alist l)
 {
   unsigned int i;
   unsigned int h;
-  decl_node n;
-  char a[_a_high+1];
+  decl_node__opaque n;
+  char listName[_listName_high+1];
+  char symName[_symName_high+1];
 
   /* make a local copy of each unbounded array.  */
-  memcpy (a, a_, _a_high+1);
+  memcpy (listName, listName_, _listName_high+1);
+  memcpy (symName, symName_, _symName_high+1);
 
   h = alists_noOfItemsInList (l);
   if (h > 0)
     {
-      outText (doP, (const char *) a, _a_high);
-      outText (doP, (const char *) " still contains node(s)\\n", 25);
       i = 1;
       do {
-        n = static_cast<decl_node> (alists_getItemFromList (l, i));
-        dbg (n);
+        n = static_cast<decl_node__opaque> (alists_getItemFromList (l, i));
+        dbg ((const char *) listName, _listName_high, (const char *) symName, _symName_high, n);
         i += 1;
       } while (! (i > h));
     }
@@ -20253,8 +20310,9 @@ static void debugLists (void)
 {
   if (mcOptions_getDebugTopological ())
     {
-      debugList ((const char *) "todo", 4, globalGroup->todoQ);
-      debugList ((const char *) "partial", 7, globalGroup->partialQ);
+      debugList ((const char *) "todo", 4, (const char *) "decl_node", 9, globalGroup->todoQ);
+      debugList ((const char *) "partial", 7, (const char *) "decl_node", 9, globalGroup->partialQ);
+      debugList ((const char *) "done", 4, (const char *) "decl_node", 9, globalGroup->doneQ);
     }
 }
 
@@ -20263,11 +20321,11 @@ static void debugLists (void)
    addEnumConst -
 */
 
-static void addEnumConst (decl_node n)
+static void addEnumConst (decl_node__opaque n)
 {
   DynamicStrings_String s;
 
-  if ((decl_isConst (n)) || (decl_isEnumeration (n)))
+  if ((decl_isConst (static_cast<decl_node> (n))) || (decl_isEnumeration (static_cast<decl_node> (n))))
     {
       addTodo (n);
     }
@@ -20280,7 +20338,7 @@ static void addEnumConst (decl_node n)
 
 static void populateTodo (decl_nodeProcedure p)
 {
-  decl_node n;
+  decl_node__opaque n;
   unsigned int i;
   unsigned int h;
   alists_alist l;
@@ -20289,7 +20347,7 @@ static void populateTodo (decl_nodeProcedure p)
   i = 1;
   while (i <= h)
     {
-      n = static_cast<decl_node> (alists_getItemFromList (globalGroup->todoQ, i));
+      n = static_cast<decl_node__opaque> (alists_getItemFromList (globalGroup->todoQ, i));
       l = alists_initList ();
       visitNode (l, n, p);
       alists_killList (&l);
@@ -20327,7 +20385,7 @@ static void topologicallyOut (decl_nodeProcedure c, decl_nodeProcedure t, decl_n
    scaffoldStatic -
 */
 
-static void scaffoldStatic (mcPretty_pretty p, decl_node n)
+static void scaffoldStatic (mcPretty_pretty p, decl_node__opaque n)
 {
   outText (p, (const char *) "\\n", 2);
   doExternCP (p);
@@ -20337,9 +20395,11 @@ static void scaffoldStatic (mcPretty_pretty p, decl_node n)
   doFQNameC (p, n);
   outText (p, (const char *) "_init", 5);
   mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "(__attribute__((unused)) int argc", 33);
-  outText (p, (const char *) ",__attribute__((unused)) char *argv[]", 37);
-  outText (p, (const char *) ",__attribute__((unused)) char *envp[])\\n", 40);
+  outText (p, (const char *) "(__attribute__((unused)) int argc,", 34);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "__attribute__((unused)) char *argv[],", 37);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "__attribute__((unused)) char *envp[])\\n", 39);
   p = outKc (p, (const char *) "{\\n", 3);
   doStatementsC (p, n->impF.beginStatements);
   p = outKc (p, (const char *) "}\\n", 3);
@@ -20351,9 +20411,11 @@ static void scaffoldStatic (mcPretty_pretty p, decl_node n)
   doFQNameC (p, n);
   outText (p, (const char *) "_fini", 5);
   mcPretty_setNeedSpace (p);
-  outText (p, (const char *) "(__attribute__((unused)) int argc", 33);
-  outText (p, (const char *) ",__attribute__((unused)) char *argv[]", 37);
-  outText (p, (const char *) ",__attribute__((unused)) char *envp[])\\n", 40);
+  outText (p, (const char *) "(__attribute__((unused)) int argc,", 34);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "__attribute__((unused)) char *argv[],", 37);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "__attribute__((unused)) char *envp[])\\n", 39);
   p = outKc (p, (const char *) "{\\n", 3);
   doStatementsC (p, n->impF.finallyStatements);
   p = outKc (p, (const char *) "}\\n", 3);
@@ -20364,7 +20426,7 @@ static void scaffoldStatic (mcPretty_pretty p, decl_node n)
    emitCtor -
 */
 
-static void emitCtor (mcPretty_pretty p, decl_node n)
+static void emitCtor (mcPretty_pretty p, decl_node__opaque n)
 {
   DynamicStrings_String s;
 
@@ -20375,7 +20437,7 @@ static void emitCtor (mcPretty_pretty p, decl_node n)
   doFQNameC (p, n);
   p = outKc (p, (const char *) "{\\n", 3);
   outText (p, (const char *) "M2RTS_RegisterModule (\"", 23);
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
   mcPretty_prints (p, s);
   outText (p, (const char *) "\",\\n", 4);
   outText (p, (const char *) "init, fini, dependencies);\\n", 28);
@@ -20412,7 +20474,7 @@ static void emitCtor (mcPretty_pretty p, decl_node n)
    scaffoldDynamic -
 */
 
-static void scaffoldDynamic (mcPretty_pretty p, decl_node n)
+static void scaffoldDynamic (mcPretty_pretty p, decl_node__opaque n)
 {
   outText (p, (const char *) "\\n", 2);
   doExternCP (p);
@@ -20423,8 +20485,10 @@ static void scaffoldDynamic (mcPretty_pretty p, decl_node n)
   outText (p, (const char *) "_init", 5);
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "(__attribute__((unused)) int argc,", 34);
-  outText (p, (const char *) " __attribute__((unused)) char *argv[]", 37);
-  outText (p, (const char *) " __attribute__((unused)) char *envp[])\\n", 40);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "__attribute__((unused)) char *argv[],", 37);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "__attribute__((unused)) char *envp[])\\n", 39);
   p = outKc (p, (const char *) "{\\n", 3);
   doStatementsC (p, n->impF.beginStatements);
   p = outKc (p, (const char *) "}\\n", 3);
@@ -20437,8 +20501,10 @@ static void scaffoldDynamic (mcPretty_pretty p, decl_node n)
   outText (p, (const char *) "_fini", 5);
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "(__attribute__((unused)) int argc,", 34);
-  outText (p, (const char *) " __attribute__((unused)) char *argv[]", 37);
-  outText (p, (const char *) " __attribute__((unused)) char *envp[])\\n", 40);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "__attribute__((unused)) char *argv[],", 37);
+  mcPretty_setNeedSpace (p);
+  outText (p, (const char *) "__attribute__((unused)) char *envp[])\\n", 39);
   p = outKc (p, (const char *) "{\\n", 3);
   doStatementsC (p, n->impF.finallyStatements);
   p = outKc (p, (const char *) "}\\n", 3);
@@ -20450,7 +20516,7 @@ static void scaffoldDynamic (mcPretty_pretty p, decl_node n)
    scaffoldMain -
 */
 
-static void scaffoldMain (mcPretty_pretty p, decl_node n)
+static void scaffoldMain (mcPretty_pretty p, decl_node__opaque n)
 {
   DynamicStrings_String s;
 
@@ -20460,7 +20526,7 @@ static void scaffoldMain (mcPretty_pretty p, decl_node n)
   outText (p, (const char *) "(int argc, char *argv[], char *envp[])\\n", 40);
   p = outKc (p, (const char *) "{\\n", 3);
   outText (p, (const char *) "M2RTS_ConstructModules (", 24);
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
   mcPretty_prints (p, s);
   outText (p, (const char *) ", argc, argv, envp);\\n", 22);
   outText (p, (const char *) "M2RTS_DeconstructModules (", 26);
@@ -20476,7 +20542,7 @@ static void scaffoldMain (mcPretty_pretty p, decl_node n)
    outImpInitC - emit the init/fini functions and main function if required.
 */
 
-static void outImpInitC (mcPretty_pretty p, decl_node n)
+static void outImpInitC (mcPretty_pretty p, decl_node__opaque n)
 {
   if (mcOptions_getScaffoldDynamic ())
     {
@@ -20497,18 +20563,18 @@ static void outImpInitC (mcPretty_pretty p, decl_node n)
    runSimplifyTypes -
 */
 
-static void runSimplifyTypes (decl_node n)
+static void runSimplifyTypes (decl_node__opaque n)
 {
-  if (decl_isImp (n))
+  if (decl_isImp (static_cast<decl_node> (n)))
     {
       simplifyTypes (n->impF.decls);
     }
-  else if (decl_isModule (n))
+  else if (decl_isModule (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       simplifyTypes (n->moduleF.decls);
     }
-  else if (decl_isDef (n))
+  else if (decl_isDef (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       simplifyTypes (n->defF.decls);
@@ -20520,13 +20586,13 @@ static void runSimplifyTypes (decl_node n)
    outDefC -
 */
 
-static void outDefC (mcPretty_pretty p, decl_node n)
+static void outDefC (mcPretty_pretty p, decl_node__opaque n)
 {
   DynamicStrings_String s;
 
-  mcDebug_assert (decl_isDef (n));
+  mcDebug_assert (decl_isDef (static_cast<decl_node> (n)));
   outputFile = mcStream_openFrag (1);  /* first fragment.  */
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));  /* first fragment.  */
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));  /* first fragment.  */
   mcPretty_print (p, (const char *) "/* do not edit automatically generated by mc from ", 50);
   mcPretty_prints (p, s);
   mcPretty_print (p, (const char *) ".  */\\n", 7);
@@ -20571,14 +20637,14 @@ static void outDefC (mcPretty_pretty p, decl_node n)
    runPrototypeExported -
 */
 
-static void runPrototypeExported (decl_node n)
+static void runPrototypeExported (decl_node__opaque n)
 {
-  if (decl_isExported (n))
+  if (decl_isExported (static_cast<decl_node> (n)))
     {
-      keyc_enterScope (n);
+      keyc_enterScope (static_cast<decl_node> (n));
       doProcedureHeadingC (n, true);
       mcPretty_print (doP, (const char *) ";\\n", 3);
-      keyc_leaveScope (n);
+      keyc_leaveScope (static_cast<decl_node> (n));
     }
 }
 
@@ -20587,9 +20653,9 @@ static void runPrototypeExported (decl_node n)
    runPrototypeDefC -
 */
 
-static void runPrototypeDefC (decl_node n)
+static void runPrototypeDefC (decl_node__opaque n)
 {
-  if (decl_isDef (n))
+  if (decl_isDef (static_cast<decl_node> (n)))
     {
       Indexing_ForeachIndiceInIndexDo (n->defF.decls.procedures, (Indexing_IndexProcedure) {(Indexing_IndexProcedure_t) runPrototypeExported});
     }
@@ -20600,14 +20666,14 @@ static void runPrototypeDefC (decl_node n)
    outImpC -
 */
 
-static void outImpC (mcPretty_pretty p, decl_node n)
+static void outImpC (mcPretty_pretty p, decl_node__opaque n)
 {
   DynamicStrings_String s;
-  decl_node defModule;
+  decl_node__opaque defModule;
 
-  mcDebug_assert (decl_isImp (n));
+  mcDebug_assert (decl_isImp (static_cast<decl_node> (n)));
   outputFile = mcStream_openFrag (1);  /* first fragment.  */
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));  /* first fragment.  */
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));  /* first fragment.  */
   mcPretty_print (p, (const char *) "/* do not edit automatically generated by mc from ", 50);
   mcPretty_prints (p, s);
   mcPretty_print (p, (const char *) ".  */\\n", 7);
@@ -20629,14 +20695,16 @@ static void outImpC (mcPretty_pretty p, decl_node n)
     }
   else
     {
-      s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
-      /* we don't want to include the .h file for this implementation module.  */
-      mcPretty_print (p, (const char *) "#define _", 9);
-      mcPretty_prints (p, s);
-      mcPretty_print (p, (const char *) "_H\\n", 4);
+      s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
+      /* Inform the source that this code belongs to the implementation module.  */
       mcPretty_print (p, (const char *) "#define _", 9);
       mcPretty_prints (p, s);
       mcPretty_print (p, (const char *) "_C\\n\\n", 6);
+      /* Include the definition module for any opaque types.  */
+      mcPretty_print (doP, (const char *) "#include \"", 10);
+      mcPretty_prints (p, mcOptions_getHPrefix ());
+      mcPretty_prints (p, s);
+      mcPretty_print (p, (const char *) ".h\"\\n", 5);
       s = DynamicStrings_KillString (s);
       doP = p;
       Indexing_ForeachIndiceInIndexDo (n->impF.importedModules, (Indexing_IndexProcedure) {(Indexing_IndexProcedure_t) doIncludeC});
@@ -20644,7 +20712,7 @@ static void outImpC (mcPretty_pretty p, decl_node n)
       includeDefConstType (n);
       includeDefVarProcedure (n);
       outDeclsImpC (p, n->impF.decls);
-      defModule = decl_lookupDef (decl_getSymName (n));
+      defModule = static_cast<decl_node__opaque> (decl_lookupDef (decl_getSymName (static_cast<decl_node> (n))));
       if (defModule != NULL)
         {
           runPrototypeDefC (defModule);
@@ -20680,7 +20748,7 @@ static void outDeclsModuleC (mcPretty_pretty p, decl_scopeT s)
    outModuleInitC -
 */
 
-static void outModuleInitC (mcPretty_pretty p, decl_node n)
+static void outModuleInitC (mcPretty_pretty p, decl_node__opaque n)
 {
   outText (p, (const char *) "\\n", 2);
   doExternCP (p);
@@ -20717,13 +20785,13 @@ static void outModuleInitC (mcPretty_pretty p, decl_node n)
    outModuleC -
 */
 
-static void outModuleC (mcPretty_pretty p, decl_node n)
+static void outModuleC (mcPretty_pretty p, decl_node__opaque n)
 {
   DynamicStrings_String s;
 
-  mcDebug_assert (decl_isModule (n));
+  mcDebug_assert (decl_isModule (static_cast<decl_node> (n)));
   outputFile = mcStream_openFrag (1);  /* first fragment.  */
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));  /* first fragment.  */
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));  /* first fragment.  */
   mcPretty_print (p, (const char *) "/* do not edit automatically generated by mc from ", 50);
   mcPretty_prints (p, s);
   mcPretty_print (p, (const char *) ".  */\\n", 7);
@@ -20761,19 +20829,19 @@ static void outModuleC (mcPretty_pretty p, decl_node n)
    outC -
 */
 
-static void outC (mcPretty_pretty p, decl_node n)
+static void outC (mcPretty_pretty p, decl_node__opaque n)
 {
-  keyc_enterScope (n);
-  if (decl_isDef (n))
+  keyc_enterScope (static_cast<decl_node> (n));
+  if (decl_isDef (static_cast<decl_node> (n)))
     {
       outDefC (p, n);
     }
-  else if (decl_isImp (n))
+  else if (decl_isImp (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       outImpC (p, n);
     }
-  else if (decl_isModule (n))
+  else if (decl_isModule (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       outModuleC (p, n);
@@ -20784,7 +20852,7 @@ static void outC (mcPretty_pretty p, decl_node n)
       M2RTS_HALT (-1);
       __builtin_unreachable ();
     }
-  keyc_leaveScope (n);
+  keyc_leaveScope (static_cast<decl_node> (n));
 }
 
 
@@ -20792,25 +20860,25 @@ static void outC (mcPretty_pretty p, decl_node n)
    doIncludeM2 - include modules in module, n.
 */
 
-static void doIncludeM2 (decl_node n)
+static void doIncludeM2 (decl_node__opaque n)
 {
   DynamicStrings_String s;
 
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
   mcPretty_print (doP, (const char *) "IMPORT ", 7);
   mcPretty_prints (doP, s);
   mcPretty_print (doP, (const char *) " ;\\n", 4);
   s = DynamicStrings_KillString (s);
-  if (decl_isDef (n))
+  if (decl_isDef (static_cast<decl_node> (n)))
     {
       symbolKey_foreachNodeDo (n->defF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDone});
     }
-  else if (decl_isImp (n))
+  else if (decl_isImp (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       symbolKey_foreachNodeDo (n->impF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDone});
     }
-  else if (decl_isModule (n))
+  else if (decl_isModule (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       symbolKey_foreachNodeDo (n->moduleF.decls.symbols, (symbolKey_performOperation) {(symbolKey_performOperation_t) addDone});
@@ -20822,7 +20890,7 @@ static void doIncludeM2 (decl_node n)
    doConstM2 -
 */
 
-static void doConstM2 (decl_node n)
+static void doConstM2 (decl_node__opaque n)
 {
   mcPretty_print (doP, (const char *) "CONST\\n", 7);
   doFQNameC (doP, n);
@@ -20836,7 +20904,7 @@ static void doConstM2 (decl_node n)
    doProcTypeM2 -
 */
 
-static void doProcTypeM2 (mcPretty_pretty p, decl_node n)
+static void doProcTypeM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   outText (p, (const char *) "proc type to do..", 17);
 }
@@ -20846,12 +20914,12 @@ static void doProcTypeM2 (mcPretty_pretty p, decl_node n)
    doRecordFieldM2 -
 */
 
-static void doRecordFieldM2 (mcPretty_pretty p, decl_node f)
+static void doRecordFieldM2 (mcPretty_pretty p, decl_node__opaque f)
 {
   doNameM2 (p, f);
   outText (p, (const char *) ":", 1);
   mcPretty_setNeedSpace (p);
-  doTypeM2 (p, decl_getType (f));
+  doTypeM2 (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (f))));
   mcPretty_setNeedSpace (p);
 }
 
@@ -20860,13 +20928,13 @@ static void doRecordFieldM2 (mcPretty_pretty p, decl_node f)
    doVarientFieldM2 -
 */
 
-static void doVarientFieldM2 (mcPretty_pretty p, decl_node n)
+static void doVarientFieldM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
-  mcDebug_assert (decl_isVarientField (n));
+  mcDebug_assert (decl_isVarientField (static_cast<decl_node> (n)));
   doNameM2 (p, n);
   outText (p, (const char *) ":", 1);
   mcPretty_setNeedSpace (p);
@@ -20874,13 +20942,13 @@ static void doVarientFieldM2 (mcPretty_pretty p, decl_node n)
   t = Indexing_HighIndice (n->varientfieldF.listOfSons);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->varientfieldF.listOfSons, i));
-      if (decl_isRecordField (q))
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->varientfieldF.listOfSons, i));
+      if (decl_isRecordField (static_cast<decl_node> (q)))
         {
           doRecordFieldM2 (p, q);
           outText (p, (const char *) ";\\n", 3);
         }
-      else if (decl_isVarient (q))
+      else if (decl_isVarient (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           doVarientM2 (p, q);
@@ -20901,23 +20969,23 @@ static void doVarientFieldM2 (mcPretty_pretty p, decl_node n)
    doVarientM2 -
 */
 
-static void doVarientM2 (mcPretty_pretty p, decl_node n)
+static void doVarientM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
-  mcDebug_assert (decl_isVarient (n));
+  mcDebug_assert (decl_isVarient (static_cast<decl_node> (n)));
   outText (p, (const char *) "CASE", 4);
   mcPretty_setNeedSpace (p);
   if (n->varientF.tag != NULL)
     {
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-      if (decl_isRecordField (n->varientF.tag))
+      if (decl_isRecordField (static_cast<decl_node> (n->varientF.tag)))
         {
           doRecordFieldM2 (p, n->varientF.tag);
         }
-      else if (decl_isVarientField (n->varientF.tag))
+      else if (decl_isVarientField (static_cast<decl_node> (n->varientF.tag)))
         {
           /* avoid dangling else.  */
           doVarientFieldM2 (p, n->varientF.tag);
@@ -20935,8 +21003,8 @@ static void doVarientM2 (mcPretty_pretty p, decl_node n)
   t = Indexing_HighIndice (n->varientF.listOfSons);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->varientF.listOfSons, i));
-      if (decl_isRecordField (q))
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->varientF.listOfSons, i));
+      if (decl_isRecordField (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           if (! q->recordfieldF.tag)
@@ -20945,7 +21013,7 @@ static void doVarientM2 (mcPretty_pretty p, decl_node n)
               outText (p, (const char *) ";\\n", 3);
             }
         }
-      else if (decl_isVarientField (q))
+      else if (decl_isVarientField (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           doVarientFieldM2 (p, q);
@@ -20967,21 +21035,21 @@ static void doVarientM2 (mcPretty_pretty p, decl_node n)
    doRecordM2 -
 */
 
-static void doRecordM2 (mcPretty_pretty p, decl_node n)
+static void doRecordM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int h;
-  decl_node f;
+  decl_node__opaque f;
 
-  mcDebug_assert (decl_isRecord (n));
+  mcDebug_assert (decl_isRecord (static_cast<decl_node> (n)));
   p = outKm2 (p, (const char *) "RECORD", 6);
   i = Indexing_LowIndice (n->recordF.listOfSons);
   h = Indexing_HighIndice (n->recordF.listOfSons);
   outText (p, (const char *) "\\n", 2);
   while (i <= h)
     {
-      f = static_cast<decl_node> (Indexing_GetIndice (n->recordF.listOfSons, i));
-      if (decl_isRecordField (f))
+      f = static_cast<decl_node__opaque> (Indexing_GetIndice (n->recordF.listOfSons, i));
+      if (decl_isRecordField (static_cast<decl_node> (f)))
         {
           /* avoid dangling else.  */
           if (! f->recordfieldF.tag)
@@ -20990,13 +21058,13 @@ static void doRecordM2 (mcPretty_pretty p, decl_node n)
               outText (p, (const char *) ";\\n", 3);
             }
         }
-      else if (decl_isVarient (f))
+      else if (decl_isVarient (static_cast<decl_node> (f)))
         {
           /* avoid dangling else.  */
           doVarientM2 (p, f);
           outText (p, (const char *) ";\\n", 3);
         }
-      else if (decl_isVarientField (f))
+      else if (decl_isVarientField (static_cast<decl_node> (f)))
         {
           /* avoid dangling else.  */
           doVarientFieldM2 (p, f);
@@ -21012,11 +21080,11 @@ static void doRecordM2 (mcPretty_pretty p, decl_node n)
    doPointerM2 -
 */
 
-static void doPointerM2 (mcPretty_pretty p, decl_node n)
+static void doPointerM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   outText (p, (const char *) "POINTER TO", 10);
   mcPretty_setNeedSpace (doP);
-  doTypeM2 (p, decl_getType (n));
+  doTypeM2 (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) ";\\n", 3);
 }
@@ -21026,13 +21094,13 @@ static void doPointerM2 (mcPretty_pretty p, decl_node n)
    doTypeAliasM2 -
 */
 
-static void doTypeAliasM2 (mcPretty_pretty p, decl_node n)
+static void doTypeAliasM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   doTypeNameC (p, n);
   mcPretty_setNeedSpace (p);
   outText (doP, (const char *) "=", 1);
   mcPretty_setNeedSpace (p);
-  doTypeM2 (p, decl_getType (n));
+  doTypeM2 (p, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   mcPretty_setNeedSpace (p);
   outText (p, (const char *) "\\n", 2);
 }
@@ -21042,11 +21110,11 @@ static void doTypeAliasM2 (mcPretty_pretty p, decl_node n)
    doEnumerationM2 -
 */
 
-static void doEnumerationM2 (mcPretty_pretty p, decl_node n)
+static void doEnumerationM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int h;
-  decl_node s;
+  decl_node__opaque s;
   DynamicStrings_String t;
 
   outText (p, (const char *) "(", 1);
@@ -21054,7 +21122,7 @@ static void doEnumerationM2 (mcPretty_pretty p, decl_node n)
   h = Indexing_HighIndice (n->enumerationF.listOfSons);
   while (i <= h)
     {
-      s = static_cast<decl_node> (Indexing_GetIndice (n->enumerationF.listOfSons, i));
+      s = static_cast<decl_node__opaque> (Indexing_GetIndice (n->enumerationF.listOfSons, i));
       doFQNameC (p, s);
       if (i < h)
         {
@@ -21071,7 +21139,7 @@ static void doEnumerationM2 (mcPretty_pretty p, decl_node n)
    doBaseM2 -
 */
 
-static void doBaseM2 (mcPretty_pretty p, decl_node n)
+static void doBaseM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   switch (n->kind)
     {
@@ -21107,7 +21175,7 @@ static void doBaseM2 (mcPretty_pretty p, decl_node n)
    doSystemM2 -
 */
 
-static void doSystemM2 (mcPretty_pretty p, decl_node n)
+static void doSystemM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   switch (n->kind)
     {
@@ -21132,7 +21200,7 @@ static void doSystemM2 (mcPretty_pretty p, decl_node n)
    doTypeM2 -
 */
 
-static void doTypeM2 (mcPretty_pretty p, decl_node n)
+static void doTypeM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   if (isBase (n))
     {
@@ -21143,27 +21211,27 @@ static void doTypeM2 (mcPretty_pretty p, decl_node n)
       /* avoid dangling else.  */
       doSystemM2 (p, n);
     }
-  else if (decl_isType (n))
+  else if (decl_isType (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doTypeAliasM2 (p, n);
     }
-  else if (decl_isProcType (n))
+  else if (decl_isProcType (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doProcTypeM2 (p, n);
     }
-  else if (decl_isPointer (n))
+  else if (decl_isPointer (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doPointerM2 (p, n);
     }
-  else if (decl_isEnumeration (n))
+  else if (decl_isEnumeration (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doEnumerationM2 (p, n);
     }
-  else if (decl_isRecord (n))
+  else if (decl_isRecord (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doRecordM2 (p, n);
@@ -21175,9 +21243,9 @@ static void doTypeM2 (mcPretty_pretty p, decl_node n)
    doTypesM2 -
 */
 
-static void doTypesM2 (decl_node n)
+static void doTypesM2 (decl_node__opaque n)
 {
-  decl_node m;
+  decl_node__opaque m;
 
   outText (doP, (const char *) "TYPE\\n", 6);
   doTypeM2 (doP, n);
@@ -21188,13 +21256,13 @@ static void doTypesM2 (decl_node n)
    doVarM2 -
 */
 
-static void doVarM2 (decl_node n)
+static void doVarM2 (decl_node__opaque n)
 {
-  mcDebug_assert (decl_isVar (n));
+  mcDebug_assert (decl_isVar (static_cast<decl_node> (n)));
   doNameC (doP, n);
   outText (doP, (const char *) ":", 1);
   mcPretty_setNeedSpace (doP);
-  doTypeM2 (doP, decl_getType (n));
+  doTypeM2 (doP, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   mcPretty_setNeedSpace (doP);
   outText (doP, (const char *) ";\\n", 3);
 }
@@ -21204,9 +21272,9 @@ static void doVarM2 (decl_node n)
    doVarsM2 -
 */
 
-static void doVarsM2 (decl_node n)
+static void doVarsM2 (decl_node__opaque n)
 {
-  decl_node m;
+  decl_node__opaque m;
 
   outText (doP, (const char *) "VAR\\n", 5);
   doVarM2 (n);
@@ -21217,7 +21285,7 @@ static void doVarsM2 (decl_node n)
    doTypeNameM2 -
 */
 
-static void doTypeNameM2 (mcPretty_pretty p, decl_node n)
+static void doTypeNameM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   doNameM2 (p, n);
 }
@@ -21227,16 +21295,16 @@ static void doTypeNameM2 (mcPretty_pretty p, decl_node n)
    doParamM2 -
 */
 
-static void doParamM2 (mcPretty_pretty p, decl_node n)
+static void doParamM2 (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node ptype;
+  decl_node__opaque ptype;
   nameKey_Name i;
   unsigned int c;
   unsigned int t;
   wlists_wlist l;
 
-  mcDebug_assert (decl_isParam (n));
-  ptype = decl_getType (n);
+  mcDebug_assert (decl_isParam (static_cast<decl_node> (n)));
+  ptype = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (n->paramF.namelist == NULL)
     {
       doTypeNameM2 (p, ptype);
@@ -21277,18 +21345,18 @@ static void doParamM2 (mcPretty_pretty p, decl_node n)
    doVarParamM2 -
 */
 
-static void doVarParamM2 (mcPretty_pretty p, decl_node n)
+static void doVarParamM2 (mcPretty_pretty p, decl_node__opaque n)
 {
-  decl_node ptype;
+  decl_node__opaque ptype;
   nameKey_Name i;
   unsigned int c;
   unsigned int t;
   wlists_wlist l;
 
-  mcDebug_assert (decl_isVarParam (n));
+  mcDebug_assert (decl_isVarParam (static_cast<decl_node> (n)));
   outText (p, (const char *) "VAR", 3);
   mcPretty_setNeedSpace (p);
-  ptype = decl_getType (n);
+  ptype = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
   if (n->varparamF.namelist == NULL)
     {
       doTypeNameM2 (p, ptype);
@@ -21329,18 +21397,18 @@ static void doVarParamM2 (mcPretty_pretty p, decl_node n)
    doParameterM2 -
 */
 
-static void doParameterM2 (mcPretty_pretty p, decl_node n)
+static void doParameterM2 (mcPretty_pretty p, decl_node__opaque n)
 {
-  if (decl_isParam (n))
+  if (decl_isParam (static_cast<decl_node> (n)))
     {
       doParamM2 (p, n);
     }
-  else if (decl_isVarParam (n))
+  else if (decl_isVarParam (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       doVarParamM2 (p, n);
     }
-  else if (decl_isVarargs (n))
+  else if (decl_isVarargs (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       mcPretty_print (p, (const char *) "...", 3);
@@ -21352,13 +21420,13 @@ static void doParameterM2 (mcPretty_pretty p, decl_node n)
    doPrototypeM2 -
 */
 
-static void doPrototypeM2 (decl_node n)
+static void doPrototypeM2 (decl_node__opaque n)
 {
   unsigned int i;
   unsigned int h;
-  decl_node p;
+  decl_node__opaque p;
 
-  mcDebug_assert (decl_isProcedure (n));
+  mcDebug_assert (decl_isProcedure (static_cast<decl_node> (n)));
   mcPretty_noSpace (doP);
   doNameM2 (doP, n);
   mcPretty_setNeedSpace (doP);
@@ -21367,7 +21435,7 @@ static void doPrototypeM2 (decl_node n)
   h = Indexing_HighIndice (n->procedureF.parameters);
   while (i <= h)
     {
-      p = static_cast<decl_node> (Indexing_GetIndice (n->procedureF.parameters, i));
+      p = static_cast<decl_node__opaque> (Indexing_GetIndice (n->procedureF.parameters, i));
       doParameterM2 (doP, p);
       mcPretty_noSpace (doP);
       if (i < h)
@@ -21398,21 +21466,21 @@ static void doPrototypeM2 (decl_node n)
                      when trying to complete partial to full.
 */
 
-static void outputPartialM2 (decl_node n)
+static void outputPartialM2 (decl_node__opaque n)
 {
-  decl_node q;
+  decl_node__opaque q;
 
-  q = decl_getType (n);
-  if (decl_isRecord (q))
+  q = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+  if (decl_isRecord (static_cast<decl_node> (q)))
     {
       doTypeM2 (doP, n);
     }
-  else if (decl_isArray (q))
+  else if (decl_isArray (static_cast<decl_node> (q)))
     {
       /* avoid dangling else.  */
       doTypeM2 (doP, n);
     }
-  else if (decl_isProcType (q))
+  else if (decl_isProcType (static_cast<decl_node> (q)))
     {
       /* avoid dangling else.  */
       doTypeM2 (doP, n);
@@ -21440,16 +21508,16 @@ static void outDeclsDefM2 (mcPretty_pretty p, decl_scopeT s)
    outDefM2 -
 */
 
-static void outDefM2 (mcPretty_pretty p, decl_node n)
+static void outDefM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   DynamicStrings_String s;
 
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSource (n)));
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSource (static_cast<decl_node> (n))));
   mcPretty_print (p, (const char *) "(* automatically created by mc from ", 36);
   mcPretty_prints (p, s);
   mcPretty_print (p, (const char *) ".  *)\\n\\n", 9);
   s = DynamicStrings_KillString (s);
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (n)));
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
   mcPretty_print (p, (const char *) "DEFINITION MODULE ", 18);
   mcPretty_prints (p, s);
   mcPretty_print (p, (const char *) " ;\\n\\n", 6);
@@ -21486,11 +21554,11 @@ static void outDeclsImpM2 (mcPretty_pretty p, decl_scopeT s)
    outImpM2 -
 */
 
-static void outImpM2 (mcPretty_pretty p, decl_node n)
+static void outImpM2 (mcPretty_pretty p, decl_node__opaque n)
 {
   DynamicStrings_String s;
 
-  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSource (n)));
+  s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSource (static_cast<decl_node> (n))));
   mcPretty_print (p, (const char *) "(* automatically created by mc from ", 36);
   mcPretty_prints (p, s);
   mcPretty_print (p, (const char *) ".  *)\\n\\n", 9);
@@ -21514,7 +21582,7 @@ static void outImpM2 (mcPretty_pretty p, decl_node n)
    outModuleM2 -
 */
 
-static void outModuleM2 (mcPretty_pretty p, decl_node n)
+static void outModuleM2 (mcPretty_pretty p, decl_node__opaque n)
 {
 }
 
@@ -21523,18 +21591,18 @@ static void outModuleM2 (mcPretty_pretty p, decl_node n)
    outM2 -
 */
 
-static void outM2 (mcPretty_pretty p, decl_node n)
+static void outM2 (mcPretty_pretty p, decl_node__opaque n)
 {
-  if (decl_isDef (n))
+  if (decl_isDef (static_cast<decl_node> (n)))
     {
       outDefM2 (p, n);
     }
-  else if (decl_isImp (n))
+  else if (decl_isImp (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       outImpM2 (p, n);
     }
-  else if (decl_isModule (n))
+  else if (decl_isModule (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       outModuleM2 (p, n);
@@ -21552,9 +21620,16 @@ static void outM2 (mcPretty_pretty p, decl_node n)
    addDone - adds node, n, to the doneQ.
 */
 
-static void addDone (decl_node n)
+static void addDone (decl_node__opaque n)
 {
+  DynamicStrings_String s;
+
   alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (n));
+  if ((decl_isVar (static_cast<decl_node> (n))) || (decl_isParameter (static_cast<decl_node> (n))))
+    {
+      initNodeOpaqueState (n);
+    }
+  debugLists ();
 }
 
 
@@ -21563,21 +21638,29 @@ static void addDone (decl_node n)
                 it is not an opaque of the main module we are compiling.
 */
 
-static void addDoneDef (decl_node n)
+static void addDoneDef (decl_node__opaque n)
 {
-  if (decl_isDef (n))
+  if (decl_isDef (static_cast<decl_node> (n)))
     {
       addDone (n);
-      return ;
+      return;
     }
-  if (false && ((decl_lookupImp (decl_getSymName (decl_getScope (n)))) == (decl_getMainModule ())))
+  if (false && ((decl_lookupImp (decl_getSymName (decl_getScope (static_cast<decl_node> (n))))) == (decl_getMainModule ())))
     {
       mcMetaError_metaError1 ((const char *) "cyclic dependancy found between another module using {%1ad} from the definition module of the implementation main being compiled, use the --extended-opaque option to compile", 173, (const unsigned char *) &n, (sizeof (n)-1));
       mcError_flushErrors ();
       mcError_errorAbort0 ((const char *) "terminating compilation", 23);
     }
+  else if ((decl_isType (static_cast<decl_node> (n))) && (isDeclInImp (n)))
+    {
+      /* avoid dangling else.  */
+    }
   else
     {
+      /* avoid dangling else.  */
+      /* Ignore an opaque type which is declared in this implementation module as it
+         will be fully declared in C/C++ with the __opaque postfix.  Whereas the
+         void * non prefixed typedef will be declared in the .h file.  */
       addDone (n);
     }
 }
@@ -21587,7 +21670,7 @@ static void addDoneDef (decl_node n)
    dbgAdd -
 */
 
-static decl_node dbgAdd (alists_alist l, decl_node n)
+static decl_node__opaque dbgAdd (alists_alist l, decl_node__opaque n)
 {
   if (n != NULL)
     {
@@ -21603,11 +21686,11 @@ static decl_node dbgAdd (alists_alist l, decl_node n)
    dbgType -
 */
 
-static void dbgType (alists_alist l, decl_node n)
+static void dbgType (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  t = dbgAdd (l, decl_getType (n));
+  t = dbgAdd (l, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   out1 ((const char *) "<%s type", 8, n);
   if (t == NULL)
     {
@@ -21624,11 +21707,11 @@ static void dbgType (alists_alist l, decl_node n)
    dbgPointer -
 */
 
-static void dbgPointer (alists_alist l, decl_node n)
+static void dbgPointer (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  t = dbgAdd (l, decl_getType (n));
+  t = dbgAdd (l, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   out1 ((const char *) "<%s pointer", 11, n);
   out1 ((const char *) " to %s>\\n", 9, t);
 }
@@ -21638,28 +21721,28 @@ static void dbgPointer (alists_alist l, decl_node n)
    dbgRecord -
 */
 
-static void dbgRecord (alists_alist l, decl_node n)
+static void dbgRecord (alists_alist l, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
   out1 ((const char *) "<%s record:\\n", 13, n);
   i = Indexing_LowIndice (n->recordF.listOfSons);
   t = Indexing_HighIndice (n->recordF.listOfSons);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->recordF.listOfSons, i));
-      if (decl_isRecordField (q))
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->recordF.listOfSons, i));
+      if (decl_isRecordField (static_cast<decl_node> (q)))
         {
           out1 ((const char *) " <recordfield %s", 16, q);
         }
-      else if (decl_isVarientField (q))
+      else if (decl_isVarientField (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           out1 ((const char *) " <varientfield %s", 17, q);
         }
-      else if (decl_isVarient (q))
+      else if (decl_isVarient (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           out1 ((const char *) " <varient %s", 12, q);
@@ -21670,7 +21753,7 @@ static void dbgRecord (alists_alist l, decl_node n)
           M2RTS_HALT (-1);
           __builtin_unreachable ();
         }
-      q = dbgAdd (l, decl_getType (q));
+      q = dbgAdd (l, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (q))));
       out1 ((const char *) ": %s>\\n", 7, q);
       i += 1;
     }
@@ -21682,15 +21765,15 @@ static void dbgRecord (alists_alist l, decl_node n)
    dbgVarient -
 */
 
-static void dbgVarient (alists_alist l, decl_node n)
+static void dbgVarient (alists_alist l, decl_node__opaque n)
 {
   unsigned int i;
   unsigned int t;
-  decl_node q;
+  decl_node__opaque q;
 
   out1 ((const char *) "<%s varient: ", 13, n);
   out1 ((const char *) "tag %s", 6, n->varientF.tag);
-  q = decl_getType (n->varientF.tag);
+  q = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n->varientF.tag)));
   if (q == NULL)
     {
       outText (doP, (const char *) "\\n", 2);
@@ -21704,17 +21787,17 @@ static void dbgVarient (alists_alist l, decl_node n)
   t = Indexing_HighIndice (n->varientF.listOfSons);
   while (i <= t)
     {
-      q = static_cast<decl_node> (Indexing_GetIndice (n->varientF.listOfSons, i));
-      if (decl_isRecordField (q))
+      q = static_cast<decl_node__opaque> (Indexing_GetIndice (n->varientF.listOfSons, i));
+      if (decl_isRecordField (static_cast<decl_node> (q)))
         {
           out1 ((const char *) " <recordfield %s", 16, q);
         }
-      else if (decl_isVarientField (q))
+      else if (decl_isVarientField (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           out1 ((const char *) " <varientfield %s", 17, q);
         }
-      else if (decl_isVarient (q))
+      else if (decl_isVarient (static_cast<decl_node> (q)))
         {
           /* avoid dangling else.  */
           out1 ((const char *) " <varient %s", 12, q);
@@ -21725,7 +21808,7 @@ static void dbgVarient (alists_alist l, decl_node n)
           M2RTS_HALT (-1);
           __builtin_unreachable ();
         }
-      q = dbgAdd (l, decl_getType (q));
+      q = dbgAdd (l, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (q))));
       out1 ((const char *) ": %s>\\n", 7, q);
       i += 1;
     }
@@ -21737,9 +21820,9 @@ static void dbgVarient (alists_alist l, decl_node n)
    dbgEnumeration -
 */
 
-static void dbgEnumeration (alists_alist l, decl_node n)
+static void dbgEnumeration (alists_alist l, decl_node__opaque n)
 {
-  decl_node e;
+  decl_node__opaque e;
   unsigned int i;
   unsigned int h;
 
@@ -21748,7 +21831,7 @@ static void dbgEnumeration (alists_alist l, decl_node n)
   h = Indexing_HighIndice (n->enumerationF.listOfSons);
   while (i <= h)
     {
-      e = static_cast<decl_node> (Indexing_GetIndice (n->enumerationF.listOfSons, i));
+      e = static_cast<decl_node__opaque> (Indexing_GetIndice (n->enumerationF.listOfSons, i));
       out1 ((const char *) "%s, ", 4, e);
       i += 1;
     }
@@ -21760,11 +21843,11 @@ static void dbgEnumeration (alists_alist l, decl_node n)
    dbgVar -
 */
 
-static void dbgVar (alists_alist l, decl_node n)
+static void dbgVar (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  t = dbgAdd (l, decl_getType (n));
+  t = dbgAdd (l, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   out1 ((const char *) "<%s var", 7, n);
   out1 ((const char *) ", type = %s>\\n", 14, t);
 }
@@ -21774,7 +21857,7 @@ static void dbgVar (alists_alist l, decl_node n)
    dbgSubrange -
 */
 
-static void dbgSubrange (alists_alist l, decl_node n)
+static void dbgSubrange (alists_alist l, decl_node__opaque n)
 {
   if (n->subrangeF.low == NULL)
     {
@@ -21792,11 +21875,11 @@ static void dbgSubrange (alists_alist l, decl_node n)
    dbgArray -
 */
 
-static void dbgArray (alists_alist l, decl_node n)
+static void dbgArray (alists_alist l, decl_node__opaque n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  t = dbgAdd (l, decl_getType (n));
+  t = dbgAdd (l, static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n))));
   out1 ((const char *) "<%s array ", 10, n);
   if (n->arrayF.subr != NULL)
     {
@@ -21810,46 +21893,46 @@ static void dbgArray (alists_alist l, decl_node n)
    doDbg -
 */
 
-static void doDbg (alists_alist l, decl_node n)
+static void doDbg (alists_alist l, decl_node__opaque n)
 {
   if (n == NULL)
     {}  /* empty.  */
-  else if (decl_isSubrange (n))
+  else if (decl_isSubrange (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       dbgSubrange (l, n);
     }
-  else if (decl_isType (n))
+  else if (decl_isType (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       dbgType (l, n);
     }
-  else if (decl_isRecord (n))
+  else if (decl_isRecord (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       dbgRecord (l, n);
     }
-  else if (decl_isVarient (n))
+  else if (decl_isVarient (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       dbgVarient (l, n);
     }
-  else if (decl_isEnumeration (n))
+  else if (decl_isEnumeration (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       dbgEnumeration (l, n);
     }
-  else if (decl_isPointer (n))
+  else if (decl_isPointer (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       dbgPointer (l, n);
     }
-  else if (decl_isArray (n))
+  else if (decl_isArray (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       dbgArray (l, n);
     }
-  else if (decl_isVar (n))
+  else if (decl_isVar (static_cast<decl_node> (n)))
     {
       /* avoid dangling else.  */
       dbgVar (l, n);
@@ -21861,13 +21944,19 @@ static void doDbg (alists_alist l, decl_node n)
    dbg -
 */
 
-static void dbg (decl_node n)
+static void dbg (const char *listName_, unsigned int _listName_high, const char *symName_, unsigned int _symName_high, decl_node__opaque n)
 {
   alists_alist l;
   mcPretty_pretty o;
   FIO_File f;
   DynamicStrings_String s;
   unsigned int i;
+  char listName[_listName_high+1];
+  char symName[_symName_high+1];
+
+  /* make a local copy of each unbounded array.  */
+  memcpy (listName, listName_, _listName_high+1);
+  memcpy (symName, symName_, _symName_high+1);
 
   o = doP;
   f = outputFile;
@@ -21876,10 +21965,20 @@ static void dbg (decl_node n)
   l = alists_initList ();
   alists_includeItemIntoList (l, reinterpret_cast<void *> (n));
   i = 1;
-  out1 ((const char *) "dbg (%s)\\n", 10, n);
   do {
-    n = static_cast<decl_node> (alists_getItemFromList (l, i));
-    doDbg (l, n);
+    n = static_cast<decl_node__opaque> (alists_getItemFromList (l, i));
+    if (decl_isType (static_cast<decl_node> (n)))
+      {
+        s = getFQstring (n);
+        if (DynamicStrings_EqualArray (s, (const char *) symName, _symName_high))
+          {
+            out0 ((const char *) "list ", 5);
+            out0 ((const char *) listName, _listName_high);
+            out0 ((const char *) ": ", 2);
+            doDbg (l, n);
+          }
+        s = DynamicStrings_KillString (s);
+      }
     i += 1;
   } while (! (i > (alists_noOfItemsInList (l))));
   doP = o;
@@ -21892,7 +21991,7 @@ static void dbg (decl_node n)
                     nodes.
 */
 
-static void addGenericBody (decl_node n, decl_node c)
+static void addGenericBody (decl_node__opaque n, decl_node__opaque c)
 {
   switch (n->kind)
     {
@@ -21944,7 +22043,7 @@ static void addGenericBody (decl_node n, decl_node c)
                      nodes.
 */
 
-static void addGenericAfter (decl_node n, decl_node c)
+static void addGenericAfter (decl_node__opaque n, decl_node__opaque c)
 {
   switch (n->kind)
     {
@@ -21995,7 +22094,7 @@ static void addGenericAfter (decl_node n, decl_node c)
    isAssignment -
 */
 
-static bool isAssignment (decl_node n)
+static bool isAssignment (decl_node__opaque n)
 {
   return n->kind == decl_assignment;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -22007,7 +22106,7 @@ static bool isAssignment (decl_node n)
    isComment - returns TRUE if node, n, is a comment.
 */
 
-static bool isComment (decl_node n)
+static bool isComment (decl_node__opaque n)
 {
   mcDebug_assert (n != NULL);
   return n->kind == decl_comment;
@@ -22022,8 +22121,8 @@ static bool isComment (decl_node n)
 
 static void initPair (decl_commentPair *c)
 {
-  (*c).after = NULL;
-  (*c).body = NULL;
+  (*c).after = static_cast<decl_node__opaque> (NULL);
+  (*c).body = static_cast<decl_node__opaque> (NULL);
 }
 
 
@@ -22031,17 +22130,17 @@ static void initPair (decl_commentPair *c)
    dupExplist -
 */
 
-static decl_node dupExplist (decl_node n)
+static decl_node__opaque dupExplist (decl_node__opaque n)
 {
-  decl_node m;
+  decl_node__opaque m;
   unsigned int i;
 
-  mcDebug_assert (decl_isExpList (n));
-  m = decl_makeExpList ();
+  mcDebug_assert (decl_isExpList (static_cast<decl_node> (n)));
+  m = static_cast<decl_node__opaque> (decl_makeExpList ());
   i = Indexing_LowIndice (n->explistF.exp);
   while (i <= (Indexing_HighIndice (n->explistF.exp)))
     {
-      decl_putExpList (m, decl_dupExpr (reinterpret_cast<decl_node> (Indexing_GetIndice (n->explistF.exp, i))));
+      decl_putExpList (static_cast<decl_node> (m), decl_dupExpr (static_cast<decl_node> (Indexing_GetIndice (n->explistF.exp, i))));
       i += 1;
     }
   return m;
@@ -22054,10 +22153,10 @@ static decl_node dupExplist (decl_node n)
    dupArrayref -
 */
 
-static decl_node dupArrayref (decl_node n)
+static decl_node__opaque dupArrayref (decl_node__opaque n)
 {
   mcDebug_assert (isArrayRef (n));
-  return decl_makeArrayRef (decl_dupExpr (n->arrayrefF.array), decl_dupExpr (n->arrayrefF.index));
+  return static_cast<decl_node__opaque> (decl_makeArrayRef (decl_dupExpr (static_cast<decl_node> (n->arrayrefF.array)), decl_dupExpr (static_cast<decl_node> (n->arrayrefF.index))));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22067,10 +22166,10 @@ static decl_node dupArrayref (decl_node n)
    dupPointerref -
 */
 
-static decl_node dupPointerref (decl_node n)
+static decl_node__opaque dupPointerref (decl_node__opaque n)
 {
-  mcDebug_assert (decl_isPointerRef (n));
-  return decl_makePointerRef (decl_dupExpr (n->pointerrefF.ptr), decl_dupExpr (n->pointerrefF.field));
+  mcDebug_assert (decl_isPointerRef (static_cast<decl_node> (n)));
+  return static_cast<decl_node__opaque> (decl_makePointerRef (decl_dupExpr (static_cast<decl_node> (n->pointerrefF.ptr)), decl_dupExpr (static_cast<decl_node> (n->pointerrefF.field))));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22080,10 +22179,10 @@ static decl_node dupPointerref (decl_node n)
    dupComponentref -
 */
 
-static decl_node dupComponentref (decl_node n)
+static decl_node__opaque dupComponentref (decl_node__opaque n)
 {
   mcDebug_assert (isComponentRef (n));
-  return doMakeComponentRef (decl_dupExpr (n->componentrefF.rec), decl_dupExpr (n->componentrefF.field));
+  return doMakeComponentRef (static_cast<decl_node__opaque> (decl_dupExpr (static_cast<decl_node> (n->componentrefF.rec))), static_cast<decl_node__opaque> (decl_dupExpr (static_cast<decl_node> (n->componentrefF.field))));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22093,10 +22192,10 @@ static decl_node dupComponentref (decl_node n)
    dupBinary -
 */
 
-static decl_node dupBinary (decl_node n)
+static decl_node__opaque dupBinary (decl_node__opaque n)
 {
   /* assert (isBinary (n)) ;  */
-  return makeBinary (n->kind, decl_dupExpr (n->binaryF.left), decl_dupExpr (n->binaryF.right), n->binaryF.resultType);
+  return makeBinary (n->kind, static_cast<decl_node__opaque> (decl_dupExpr (static_cast<decl_node> (n->binaryF.left))), static_cast<decl_node__opaque> (decl_dupExpr (static_cast<decl_node> (n->binaryF.right))), n->binaryF.resultType);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22106,10 +22205,10 @@ static decl_node dupBinary (decl_node n)
    dupUnary -
 */
 
-static decl_node dupUnary (decl_node n)
+static decl_node__opaque dupUnary (decl_node__opaque n)
 {
   /* assert (isUnary (n)) ;  */
-  return makeUnary (n->kind, decl_dupExpr (n->unaryF.arg), n->unaryF.resultType);
+  return makeUnary (n->kind, static_cast<decl_node__opaque> (decl_dupExpr (static_cast<decl_node> (n->unaryF.arg))), n->unaryF.resultType);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22119,13 +22218,14 @@ static decl_node dupUnary (decl_node n)
    dupFunccall -
 */
 
-static decl_node dupFunccall (decl_node n)
+static decl_node__opaque dupFunccall (decl_node__opaque n)
 {
-  decl_node m;
+  decl_node__opaque m;
 
   mcDebug_assert (isFuncCall (n));
-  m = decl_makeFuncCall (decl_dupExpr (n->funccallF.function), decl_dupExpr (n->funccallF.args));
+  m = static_cast<decl_node__opaque> (decl_makeFuncCall (decl_dupExpr (static_cast<decl_node> (n->funccallF.function)), decl_dupExpr (static_cast<decl_node> (n->funccallF.args))));
   m->funccallF.type = n->funccallF.type;
+  assignNodeOpaqueCastState (m, n);
   return m;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -22136,9 +22236,9 @@ static decl_node dupFunccall (decl_node n)
    dupSetValue -
 */
 
-static decl_node dupSetValue (decl_node n)
+static decl_node__opaque dupSetValue (decl_node__opaque n)
 {
-  decl_node m;
+  decl_node__opaque m;
   unsigned int i;
 
   m = newNode (decl_setvalue);
@@ -22146,7 +22246,7 @@ static decl_node dupSetValue (decl_node n)
   i = Indexing_LowIndice (n->setvalueF.values);
   while (i <= (Indexing_HighIndice (n->setvalueF.values)))
     {
-      m = decl_putSetValue (m, decl_dupExpr (reinterpret_cast<decl_node> (Indexing_GetIndice (n->setvalueF.values, i))));
+      m = static_cast<decl_node__opaque> (decl_putSetValue (static_cast<decl_node> (m), decl_dupExpr (static_cast<decl_node> (Indexing_GetIndice (n->setvalueF.values, i)))));
       i += 1;
     }
   return m;
@@ -22159,7 +22259,7 @@ static decl_node dupSetValue (decl_node n)
    doDupExpr -
 */
 
-static decl_node doDupExpr (decl_node n)
+static decl_node__opaque doDupExpr (decl_node__opaque n)
 {
   mcDebug_assert (n != NULL);
   switch (n->kind)
@@ -22347,7 +22447,7 @@ static decl_node doDupExpr (decl_node n)
 
 static void makeSystem (void)
 {
-  systemN = decl_lookupDef (nameKey_makeKey ((const char *) "SYSTEM", 6));
+  systemN = static_cast<decl_node__opaque> (decl_lookupDef (nameKey_makeKey ((const char *) "SYSTEM", 6)));
   addressN = makeBase (decl_address);
   locN = makeBase (decl_loc);
   byteN = makeBase (decl_byte);
@@ -22357,7 +22457,7 @@ static void makeSystem (void)
   adrN = makeBase (decl_adr);
   tsizeN = makeBase (decl_tsize);
   throwN = makeBase (decl_throw);
-  decl_enterScope (systemN);
+  decl_enterScope (static_cast<decl_node> (systemN));
   addressN = addToScope (addressN);
   locN = addToScope (locN);
   byteN = addToScope (byteN);
@@ -22385,7 +22485,7 @@ static void makeSystem (void)
 
 static void makeM2rts (void)
 {
-  m2rtsN = decl_lookupDef (nameKey_makeKey ((const char *) "M2RTS", 5));
+  m2rtsN = static_cast<decl_node__opaque> (decl_lookupDef (nameKey_makeKey ((const char *) "M2RTS", 5)));
 }
 
 
@@ -22393,13 +22493,13 @@ static void makeM2rts (void)
    makeBitnum -
 */
 
-static decl_node makeBitnum (void)
+static decl_node__opaque makeBitnum (void)
 {
-  decl_node b;
+  decl_node__opaque b;
 
   b = newNode (decl_subrange);
-  b->subrangeF.type = NULL;
-  b->subrangeF.scope = NULL;
+  b->subrangeF.type = static_cast<decl_node__opaque> (NULL);
+  b->subrangeF.scope = static_cast<decl_node__opaque> (NULL);
   b->subrangeF.low = lookupConst (b, nameKey_makeKey ((const char *) "0", 1));
   b->subrangeF.high = lookupConst (b, nameKey_makeKey ((const char *) "31", 2));
   return b;
@@ -22529,10 +22629,10 @@ static void makeBaseSymbols (void)
 
 static void makeBuiltins (void)
 {
-  bitsperunitN = decl_makeLiteralInt (nameKey_makeKey ((const char *) "8", 1));
-  bitsperwordN = decl_makeLiteralInt (nameKey_makeKey ((const char *) "32", 2));
-  bitspercharN = decl_makeLiteralInt (nameKey_makeKey ((const char *) "8", 1));
-  unitsperwordN = decl_makeLiteralInt (nameKey_makeKey ((const char *) "4", 1));
+  bitsperunitN = static_cast<decl_node__opaque> (decl_makeLiteralInt (nameKey_makeKey ((const char *) "8", 1)));
+  bitsperwordN = static_cast<decl_node__opaque> (decl_makeLiteralInt (nameKey_makeKey ((const char *) "32", 2)));
+  bitspercharN = static_cast<decl_node__opaque> (decl_makeLiteralInt (nameKey_makeKey ((const char *) "8", 1)));
+  unitsperwordN = static_cast<decl_node__opaque> (decl_makeLiteralInt (nameKey_makeKey ((const char *) "4", 1)));
   addDone (bitsperunitN);
   addDone (bitsperwordN);
   addDone (bitspercharN);
@@ -22573,7 +22673,7 @@ static void init (void)
 
 extern "C" unsigned int decl_getDeclaredMod (decl_node n)
 {
-  return n->at.modDeclared;
+  return static_cast<decl_node__opaque> (n)->at.modDeclared;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22586,7 +22686,7 @@ extern "C" unsigned int decl_getDeclaredMod (decl_node n)
 
 extern "C" unsigned int decl_getDeclaredDef (decl_node n)
 {
-  return n->at.defDeclared;
+  return static_cast<decl_node__opaque> (n)->at.defDeclared;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22599,7 +22699,7 @@ extern "C" unsigned int decl_getDeclaredDef (decl_node n)
 
 extern "C" unsigned int decl_getFirstUsed (decl_node n)
 {
-  return n->at.firstUsed;
+  return static_cast<decl_node__opaque> (n)->at.firstUsed;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22612,7 +22712,7 @@ extern "C" unsigned int decl_getFirstUsed (decl_node n)
 extern "C" bool decl_isDef (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_def;
+  return static_cast<decl_node__opaque> (n)->kind == decl_def;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22625,7 +22725,7 @@ extern "C" bool decl_isDef (decl_node n)
 extern "C" bool decl_isImp (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_imp;
+  return static_cast<decl_node__opaque> (n)->kind == decl_imp;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22649,18 +22749,18 @@ extern "C" bool decl_isImpOrModule (decl_node n)
 
 extern "C" bool decl_isVisited (decl_node n)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_def:
-        return n->defF.visited;
+        return static_cast<decl_node__opaque> (n)->defF.visited;
         break;
 
       case decl_imp:
-        return n->impF.visited;
+        return static_cast<decl_node__opaque> (n)->impF.visited;
         break;
 
       case decl_module:
-        return n->moduleF.visited;
+        return static_cast<decl_node__opaque> (n)->moduleF.visited;
         break;
 
 
@@ -22679,18 +22779,18 @@ extern "C" bool decl_isVisited (decl_node n)
 
 extern "C" void decl_unsetVisited (decl_node n)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_def:
-        n->defF.visited = false;
+        static_cast<decl_node__opaque> (n)->defF.visited = false;
         break;
 
       case decl_imp:
-        n->impF.visited = false;
+        static_cast<decl_node__opaque> (n)->impF.visited = false;
         break;
 
       case decl_module:
-        n->moduleF.visited = false;
+        static_cast<decl_node__opaque> (n)->moduleF.visited = false;
         break;
 
 
@@ -22707,18 +22807,18 @@ extern "C" void decl_unsetVisited (decl_node n)
 
 extern "C" void decl_setVisited (decl_node n)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_def:
-        n->defF.visited = true;
+        static_cast<decl_node__opaque> (n)->defF.visited = true;
         break;
 
       case decl_imp:
-        n->impF.visited = true;
+        static_cast<decl_node__opaque> (n)->impF.visited = true;
         break;
 
       case decl_module:
-        n->moduleF.visited = true;
+        static_cast<decl_node__opaque> (n)->moduleF.visited = true;
         break;
 
 
@@ -22735,18 +22835,18 @@ extern "C" void decl_setVisited (decl_node n)
 
 extern "C" void decl_setEnumsComplete (decl_node n)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_def:
-        n->defF.enumsComplete = true;
+        static_cast<decl_node__opaque> (n)->defF.enumsComplete = true;
         break;
 
       case decl_imp:
-        n->impF.enumsComplete = true;
+        static_cast<decl_node__opaque> (n)->impF.enumsComplete = true;
         break;
 
       case decl_module:
-        n->moduleF.enumsComplete = true;
+        static_cast<decl_node__opaque> (n)->moduleF.enumsComplete = true;
         break;
 
 
@@ -22763,18 +22863,18 @@ extern "C" void decl_setEnumsComplete (decl_node n)
 
 extern "C" bool decl_getEnumsComplete (decl_node n)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_def:
-        return n->defF.enumsComplete;
+        return static_cast<decl_node__opaque> (n)->defF.enumsComplete;
         break;
 
       case decl_imp:
-        return n->impF.enumsComplete;
+        return static_cast<decl_node__opaque> (n)->impF.enumsComplete;
         break;
 
       case decl_module:
-        return n->moduleF.enumsComplete;
+        return static_cast<decl_node__opaque> (n)->moduleF.enumsComplete;
         break;
 
 
@@ -22797,17 +22897,17 @@ extern "C" void decl_resetEnumPos (decl_node n)
   mcDebug_assert (((decl_isDef (n)) || (decl_isImp (n))) || (decl_isModule (n)));
   if (decl_isDef (n))
     {
-      n->defF.enumFixup.count = 0;
+      static_cast<decl_node__opaque> (n)->defF.enumFixup.count = 0;
     }
   else if (decl_isImp (n))
     {
       /* avoid dangling else.  */
-      n->impF.enumFixup.count = 0;
+      static_cast<decl_node__opaque> (n)->impF.enumFixup.count = 0;
     }
   else if (decl_isModule (n))
     {
       /* avoid dangling else.  */
-      n->moduleF.enumFixup.count = 0;
+      static_cast<decl_node__opaque> (n)->moduleF.enumFixup.count = 0;
     }
 }
 
@@ -22818,27 +22918,27 @@ extern "C" void decl_resetEnumPos (decl_node n)
 
 extern "C" decl_node decl_getNextEnum (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
-  n = NULL;
-  mcDebug_assert (((decl_isDef (currentModule)) || (decl_isImp (currentModule))) || (decl_isModule (currentModule)));
-  if (decl_isDef (currentModule))
+  n = static_cast<decl_node__opaque> (NULL);
+  mcDebug_assert (((decl_isDef (static_cast<decl_node> (currentModule))) || (decl_isImp (static_cast<decl_node> (currentModule)))) || (decl_isModule (static_cast<decl_node> (currentModule))));
+  if (decl_isDef (static_cast<decl_node> (currentModule)))
     {
       n = getNextFixup (&currentModule->defF.enumFixup);
     }
-  else if (decl_isImp (currentModule))
+  else if (decl_isImp (static_cast<decl_node> (currentModule)))
     {
       /* avoid dangling else.  */
       n = getNextFixup (&currentModule->impF.enumFixup);
     }
-  else if (decl_isModule (currentModule))
+  else if (decl_isModule (static_cast<decl_node> (currentModule)))
     {
       /* avoid dangling else.  */
       n = getNextFixup (&currentModule->moduleF.enumFixup);
     }
   mcDebug_assert (n != NULL);
-  mcDebug_assert ((decl_isEnumeration (n)) || (decl_isEnumerationField (n)));
-  return n;
+  mcDebug_assert ((decl_isEnumeration (static_cast<decl_node> (n))) || (decl_isEnumerationField (static_cast<decl_node> (n))));
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22851,7 +22951,7 @@ extern "C" decl_node decl_getNextEnum (void)
 extern "C" bool decl_isModule (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_module;
+  return static_cast<decl_node__opaque> (n)->kind == decl_module;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22879,7 +22979,7 @@ extern "C" bool decl_isMainModule (decl_node n)
 extern "C" void decl_setMainModule (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  mainModule = n;
+  mainModule = static_cast<decl_node__opaque> (n);
 }
 
 
@@ -22890,7 +22990,7 @@ extern "C" void decl_setMainModule (decl_node n)
 extern "C" void decl_setCurrentModule (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  currentModule = n;
+  currentModule = static_cast<decl_node__opaque> (n);
 }
 
 
@@ -22900,16 +23000,16 @@ extern "C" void decl_setCurrentModule (decl_node n)
 
 extern "C" decl_node decl_lookupDef (nameKey_Name n)
 {
-  decl_node d;
+  decl_node__opaque d;
 
-  d = static_cast<decl_node> (symbolKey_getSymKey (defUniverse, n));
+  d = static_cast<decl_node__opaque> (symbolKey_getSymKey (defUniverse, n));
   if (d == NULL)
     {
       d = makeDef (n);
       symbolKey_putSymKey (defUniverse, n, reinterpret_cast<void *> (d));
       Indexing_IncludeIndiceIntoIndex (defUniverseI, reinterpret_cast<void *> (d));
     }
-  return d;
+  return static_cast<decl_node> (d);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22921,17 +23021,17 @@ extern "C" decl_node decl_lookupDef (nameKey_Name n)
 
 extern "C" decl_node decl_lookupImp (nameKey_Name n)
 {
-  decl_node m;
+  decl_node__opaque m;
 
-  m = static_cast<decl_node> (symbolKey_getSymKey (modUniverse, n));
+  m = static_cast<decl_node__opaque> (symbolKey_getSymKey (modUniverse, n));
   if (m == NULL)
     {
       m = makeImp (n);
       symbolKey_putSymKey (modUniverse, n, reinterpret_cast<void *> (m));
       Indexing_IncludeIndiceIntoIndex (modUniverseI, reinterpret_cast<void *> (m));
     }
-  mcDebug_assert (! (decl_isModule (m)));
-  return m;
+  mcDebug_assert (! (decl_isModule (static_cast<decl_node> (m))));
+  return static_cast<decl_node> (m);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22943,17 +23043,17 @@ extern "C" decl_node decl_lookupImp (nameKey_Name n)
 
 extern "C" decl_node decl_lookupModule (nameKey_Name n)
 {
-  decl_node m;
+  decl_node__opaque m;
 
-  m = static_cast<decl_node> (symbolKey_getSymKey (modUniverse, n));
+  m = static_cast<decl_node__opaque> (symbolKey_getSymKey (modUniverse, n));
   if (m == NULL)
     {
       m = makeModule (n);
       symbolKey_putSymKey (modUniverse, n, reinterpret_cast<void *> (m));
       Indexing_IncludeIndiceIntoIndex (modUniverseI, reinterpret_cast<void *> (m));
     }
-  mcDebug_assert (! (decl_isImp (m)));
-  return m;
+  mcDebug_assert (! (decl_isImp (static_cast<decl_node> (m))));
+  return static_cast<decl_node> (m);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -22966,7 +23066,7 @@ extern "C" decl_node decl_lookupModule (nameKey_Name n)
 extern "C" void decl_putDefForC (decl_node n)
 {
   mcDebug_assert (decl_isDef (n));
-  n->defF.forC = true;
+  static_cast<decl_node__opaque> (n)->defF.forC = true;
 }
 
 
@@ -22976,26 +23076,26 @@ extern "C" void decl_putDefForC (decl_node n)
 
 extern "C" decl_node decl_lookupInScope (decl_node scope, nameKey_Name n)
 {
-  switch (scope->kind)
+  switch (static_cast<decl_node__opaque> (scope)->kind)
     {
       case decl_def:
-        return static_cast<decl_node> (symbolKey_getSymKey (scope->defF.decls.symbols, n));
+        return static_cast<decl_node> (symbolKey_getSymKey (static_cast<decl_node__opaque> (scope)->defF.decls.symbols, n));
         break;
 
       case decl_module:
-        return static_cast<decl_node> (symbolKey_getSymKey (scope->moduleF.decls.symbols, n));
+        return static_cast<decl_node> (symbolKey_getSymKey (static_cast<decl_node__opaque> (scope)->moduleF.decls.symbols, n));
         break;
 
       case decl_imp:
-        return static_cast<decl_node> (symbolKey_getSymKey (scope->impF.decls.symbols, n));
+        return static_cast<decl_node> (symbolKey_getSymKey (static_cast<decl_node__opaque> (scope)->impF.decls.symbols, n));
         break;
 
       case decl_procedure:
-        return static_cast<decl_node> (symbolKey_getSymKey (scope->procedureF.decls.symbols, n));
+        return static_cast<decl_node> (symbolKey_getSymKey (static_cast<decl_node__opaque> (scope)->procedureF.decls.symbols, n));
         break;
 
       case decl_record:
-        return static_cast<decl_node> (symbolKey_getSymKey (scope->recordF.localSymbols, n));
+        return static_cast<decl_node> (symbolKey_getSymKey (static_cast<decl_node__opaque> (scope)->recordF.localSymbols, n));
         break;
 
 
@@ -23015,7 +23115,7 @@ extern "C" decl_node decl_lookupInScope (decl_node scope, nameKey_Name n)
 extern "C" bool decl_isConst (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_const;
+  return static_cast<decl_node__opaque> (n)->kind == decl_const;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23028,7 +23128,7 @@ extern "C" bool decl_isConst (decl_node n)
 extern "C" bool decl_isType (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_type;
+  return static_cast<decl_node__opaque> (n)->kind == decl_type;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23043,7 +23143,7 @@ extern "C" void decl_putType (decl_node des, decl_node exp)
 {
   mcDebug_assert (des != NULL);
   mcDebug_assert (decl_isType (des));
-  des->typeF.type = exp;
+  static_cast<decl_node__opaque> (des)->typeF.type = static_cast<decl_node__opaque> (exp);
 }
 
 
@@ -23053,31 +23153,31 @@ extern "C" void decl_putType (decl_node des, decl_node exp)
 
 extern "C" decl_node decl_getType (decl_node n)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_new:
       case decl_dispose:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_length:
-        return cardinalN;
+        return static_cast<decl_node> (cardinalN);
         break;
 
       case decl_inc:
       case decl_dec:
       case decl_incl:
       case decl_excl:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_nil:
-        return addressN;
+        return static_cast<decl_node> (addressN);
         break;
 
       case decl_true:
       case decl_false:
-        return booleanN;
+        return static_cast<decl_node> (booleanN);
         break;
 
       case decl_address:
@@ -23179,7 +23279,7 @@ extern "C" decl_node decl_getType (decl_node n)
 
       case decl_type:
         /* language features and compound type attributes.  */
-        return n->typeF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->typeF.type);
         break;
 
       case decl_record:
@@ -23191,7 +23291,7 @@ extern "C" decl_node decl_getType (decl_node n)
         break;
 
       case decl_var:
-        return n->varF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->varF.type);
         break;
 
       case decl_enumeration:
@@ -23199,43 +23299,43 @@ extern "C" decl_node decl_getType (decl_node n)
         break;
 
       case decl_subrange:
-        return n->subrangeF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->subrangeF.type);
         break;
 
       case decl_array:
-        return n->arrayF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->arrayF.type);
         break;
 
       case decl_string:
-        return charN;
+        return static_cast<decl_node> (charN);
         break;
 
       case decl_const:
-        return n->constF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->constF.type);
         break;
 
       case decl_literal:
-        return n->literalF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->literalF.type);
         break;
 
       case decl_varparam:
-        return n->varparamF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->varparamF.type);
         break;
 
       case decl_param:
-        return n->paramF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->paramF.type);
         break;
 
       case decl_optarg:
-        return n->optargF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->optargF.type);
         break;
 
       case decl_pointer:
-        return n->pointerF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->pointerF.type);
         break;
 
       case decl_recordfield:
-        return n->recordfieldF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->recordfieldF.type);
         break;
 
       case decl_varientfield:
@@ -23243,32 +23343,32 @@ extern "C" decl_node decl_getType (decl_node n)
         break;
 
       case decl_enumerationfield:
-        return n->enumerationfieldF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->enumerationfieldF.type);
         break;
 
       case decl_set:
-        return n->setF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->setF.type);
         break;
 
       case decl_proctype:
-        return n->proctypeF.returnType;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->proctypeF.returnType);
         break;
 
       case decl_subscript:
-        return n->subscriptF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->subscriptF.type);
         break;
 
       case decl_procedure:
         /* blocks.  */
-        return n->procedureF.returnType;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->procedureF.returnType);
         break;
 
       case decl_throw:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_unreachable:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_def:
@@ -23296,11 +23396,11 @@ extern "C" decl_node decl_getType (decl_node n)
       case decl_mult:
       case decl_divide:
         /* expressions.  */
-        return n->binaryF.resultType;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->binaryF.resultType);
         break;
 
       case decl_in:
-        return booleanN;
+        return static_cast<decl_node> (booleanN);
         break;
 
       case decl_max:
@@ -23314,7 +23414,7 @@ extern "C" decl_node decl_getType (decl_node n)
       case decl_adr:
       case decl_size:
       case decl_tsize:
-        return n->unaryF.resultType;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->unaryF.resultType);
         break;
 
       case decl_and:
@@ -23326,51 +23426,51 @@ extern "C" decl_node decl_getType (decl_node n)
       case decl_greater:
       case decl_greequal:
       case decl_lessequal:
-        return booleanN;
+        return static_cast<decl_node> (booleanN);
         break;
 
       case decl_trunc:
-        return integerN;
+        return static_cast<decl_node> (integerN);
         break;
 
       case decl_float:
-        return realN;
+        return static_cast<decl_node> (realN);
         break;
 
       case decl_high:
-        return cardinalN;
+        return static_cast<decl_node> (cardinalN);
         break;
 
       case decl_ord:
-        return cardinalN;
+        return static_cast<decl_node> (cardinalN);
         break;
 
       case decl_chr:
-        return charN;
+        return static_cast<decl_node> (charN);
         break;
 
       case decl_cap:
-        return charN;
+        return static_cast<decl_node> (charN);
         break;
 
       case decl_arrayref:
-        return n->arrayrefF.resultType;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->arrayrefF.resultType);
         break;
 
       case decl_componentref:
-        return n->componentrefF.resultType;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->componentrefF.resultType);
         break;
 
       case decl_pointerref:
-        return n->pointerrefF.resultType;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->pointerrefF.resultType);
         break;
 
       case decl_funccall:
-        return n->funccallF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->funccallF.type);
         break;
 
       case decl_setvalue:
-        return n->setvalueF.type;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->setvalueF.type);
         break;
 
 
@@ -23413,13 +23513,13 @@ extern "C" decl_node decl_skipType (decl_node n)
 
 extern "C" void decl_putTypeHidden (decl_node des)
 {
-  decl_node s;
+  decl_node__opaque s;
 
   mcDebug_assert (des != NULL);
   mcDebug_assert (decl_isType (des));
-  des->typeF.isHidden = true;
-  s = decl_getScope (des);
-  mcDebug_assert (decl_isDef (s));
+  static_cast<decl_node__opaque> (des)->typeF.isHidden = true;
+  s = static_cast<decl_node__opaque> (decl_getScope (des));
+  mcDebug_assert (decl_isDef (static_cast<decl_node> (s)));
   s->defF.hasHidden = true;
 }
 
@@ -23432,7 +23532,7 @@ extern "C" bool decl_isTypeHidden (decl_node n)
 {
   mcDebug_assert (n != NULL);
   mcDebug_assert (decl_isType (n));
-  return n->typeF.isHidden;
+  return static_cast<decl_node__opaque> (n)->typeF.isHidden;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23445,7 +23545,36 @@ extern "C" bool decl_isTypeHidden (decl_node n)
 extern "C" bool decl_hasHidden (decl_node n)
 {
   mcDebug_assert (decl_isDef (n));
-  return n->defF.hasHidden;
+  return static_cast<decl_node__opaque> (n)->defF.hasHidden;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
+/*
+   putTypeOpaque - marks type, des, as being an opaque type.
+                   TYPE des ;
+*/
+
+extern "C" void decl_putTypeOpaque (decl_node des)
+{
+  decl_node__opaque s;
+
+  mcDebug_assert (des != NULL);
+  mcDebug_assert (decl_isType (des));
+  static_cast<decl_node__opaque> (des)->typeF.isOpaque = true;
+}
+
+
+/*
+   isTypeOpaque - returns TRUE if type, n, is an opaque type.
+*/
+
+extern "C" bool decl_isTypeOpaque (decl_node n)
+{
+  mcDebug_assert (n != NULL);
+  mcDebug_assert (decl_isType (n));
+  return static_cast<decl_node__opaque> (n)->typeF.isOpaque;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23458,7 +23587,7 @@ extern "C" bool decl_hasHidden (decl_node n)
 extern "C" bool decl_isVar (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_var;
+  return static_cast<decl_node__opaque> (n)->kind == decl_var;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23483,9 +23612,9 @@ extern "C" bool decl_isTemporary (decl_node n)
 
 extern "C" bool decl_isExported (decl_node n)
 {
-  decl_node s;
+  decl_node__opaque s;
 
-  s = decl_getScope (n);
+  s = static_cast<decl_node__opaque> (decl_getScope (n));
   if (s != NULL)
     {
       switch (s->kind)
@@ -23528,7 +23657,7 @@ extern "C" decl_node decl_getDeclScope (void)
 
 extern "C" decl_node decl_getScope (decl_node n)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_stmtseq:
       case decl_exit:
@@ -23547,7 +23676,7 @@ extern "C" decl_node decl_getScope (decl_node n)
       case decl_nil:
       case decl_true:
       case decl_false:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_address:
@@ -23556,7 +23685,7 @@ extern "C" decl_node decl_getScope (decl_node n)
       case decl_word:
       case decl_csizet:
       case decl_cssizet:
-        return systemN;
+        return static_cast<decl_node> (systemN);
         break;
 
       case decl_boolean:
@@ -23578,93 +23707,93 @@ extern "C" decl_node decl_getScope (decl_node n)
       case decl_longcomplex:
       case decl_shortcomplex:
         /* base types.  */
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_type:
         /* language features and compound type attributes.  */
-        return n->typeF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->typeF.scope);
         break;
 
       case decl_record:
-        return n->recordF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->recordF.scope);
         break;
 
       case decl_varient:
-        return n->varientF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->varientF.scope);
         break;
 
       case decl_var:
-        return n->varF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->varF.scope);
         break;
 
       case decl_enumeration:
-        return n->enumerationF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->enumerationF.scope);
         break;
 
       case decl_subrange:
-        return n->subrangeF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->subrangeF.scope);
         break;
 
       case decl_array:
-        return n->arrayF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->arrayF.scope);
         break;
 
       case decl_string:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_const:
-        return n->constF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->constF.scope);
         break;
 
       case decl_literal:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_varparam:
-        return n->varparamF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->varparamF.scope);
         break;
 
       case decl_param:
-        return n->paramF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->paramF.scope);
         break;
 
       case decl_optarg:
-        return n->optargF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->optargF.scope);
         break;
 
       case decl_pointer:
-        return n->pointerF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->pointerF.scope);
         break;
 
       case decl_recordfield:
-        return n->recordfieldF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->recordfieldF.scope);
         break;
 
       case decl_varientfield:
-        return n->varientfieldF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->varientfieldF.scope);
         break;
 
       case decl_enumerationfield:
-        return n->enumerationfieldF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->enumerationfieldF.scope);
         break;
 
       case decl_set:
-        return n->setF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->setF.scope);
         break;
 
       case decl_proctype:
-        return n->proctypeF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->proctypeF.scope);
         break;
 
       case decl_subscript:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_procedure:
         /* blocks.  */
-        return n->procedureF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->procedureF.scope);
         break;
 
       case decl_def:
@@ -23679,7 +23808,7 @@ extern "C" decl_node decl_getScope (decl_node n)
       case decl_elsif:
       case decl_assignment:
         /* statements.  */
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_componentref:
@@ -23701,11 +23830,11 @@ extern "C" decl_node decl_getScope (decl_node n)
       case decl_divide:
       case decl_in:
         /* expressions.  */
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_neg:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_lsl:
@@ -23725,14 +23854,14 @@ extern "C" decl_node decl_getScope (decl_node n)
       case decl_greater:
       case decl_greequal:
       case decl_lessequal:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_adr:
       case decl_size:
       case decl_tsize:
       case decl_throw:
-        return systemN;
+        return static_cast<decl_node> (systemN);
         break;
 
       case decl_unreachable:
@@ -23741,35 +23870,35 @@ extern "C" decl_node decl_getScope (decl_node n)
       case decl_im:
       case decl_min:
       case decl_max:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_vardecl:
-        return n->vardeclF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->vardeclF.scope);
         break;
 
       case decl_funccall:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_explist:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_caselabellist:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_caselist:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_range:
-        return NULL;
+        return static_cast<decl_node> (NULL);
         break;
 
       case decl_varargs:
-        return n->varargsF.scope;
+        return static_cast<decl_node> (static_cast<decl_node__opaque> (n)->varargsF.scope);
         break;
 
 
@@ -23789,7 +23918,7 @@ extern "C" decl_node decl_getScope (decl_node n)
 extern "C" bool decl_isLiteral (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_literal;
+  return static_cast<decl_node__opaque> (n)->kind == decl_literal;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23819,7 +23948,7 @@ extern "C" bool decl_isConstSet (decl_node n)
 extern "C" bool decl_isEnumerationField (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_enumerationfield;
+  return static_cast<decl_node__opaque> (n)->kind == decl_enumerationfield;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23832,7 +23961,7 @@ extern "C" bool decl_isEnumerationField (decl_node n)
 extern "C" bool decl_isEnumeration (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_enumeration;
+  return static_cast<decl_node__opaque> (n)->kind == decl_enumeration;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23845,7 +23974,7 @@ extern "C" bool decl_isEnumeration (decl_node n)
 extern "C" bool decl_isUnbounded (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return (n->kind == decl_array) && n->arrayF.isUnbounded;
+  return (static_cast<decl_node__opaque> (n)->kind == decl_array) && static_cast<decl_node__opaque> (n)->arrayF.isUnbounded;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23858,7 +23987,7 @@ extern "C" bool decl_isUnbounded (decl_node n)
 extern "C" bool decl_isParameter (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return (n->kind == decl_param) || (n->kind == decl_varparam);
+  return (static_cast<decl_node__opaque> (n)->kind == decl_param) || (static_cast<decl_node__opaque> (n)->kind == decl_varparam);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23871,7 +24000,7 @@ extern "C" bool decl_isParameter (decl_node n)
 extern "C" bool decl_isVarParam (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_varparam;
+  return static_cast<decl_node__opaque> (n)->kind == decl_varparam;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23884,7 +24013,7 @@ extern "C" bool decl_isVarParam (decl_node n)
 extern "C" bool decl_isParam (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_param;
+  return static_cast<decl_node__opaque> (n)->kind == decl_param;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23910,19 +24039,19 @@ extern "C" bool decl_isNonVarParam (decl_node n)
 
 extern "C" decl_node decl_addOptParameter (decl_node proc, nameKey_Name id, decl_node type, decl_node init)
 {
-  decl_node p;
-  decl_node l;
+  decl_node__opaque p;
+  decl_node__opaque l;
 
   mcDebug_assert (decl_isProcedure (proc));
-  l = decl_makeIdentList ();
-  mcDebug_assert (decl_putIdent (l, id));
-  checkMakeVariables (proc, l, type, false, true);
-  if (! proc->procedureF.checking)
+  l = static_cast<decl_node__opaque> (decl_makeIdentList ());
+  mcDebug_assert (decl_putIdent (static_cast<decl_node> (l), id));
+  checkMakeVariables (static_cast<decl_node__opaque> (proc), l, static_cast<decl_node__opaque> (type), false, true);
+  if (! static_cast<decl_node__opaque> (proc)->procedureF.checking)
     {
-      p = makeOptParameter (l, type, init);
-      decl_addParameter (proc, p);
+      p = makeOptParameter (l, static_cast<decl_node__opaque> (type), static_cast<decl_node__opaque> (init));
+      decl_addParameter (proc, static_cast<decl_node> (p));
     }
-  return p;
+  return static_cast<decl_node> (p);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23934,7 +24063,7 @@ extern "C" decl_node decl_addOptParameter (decl_node proc, nameKey_Name id, decl
 
 extern "C" bool decl_isOptarg (decl_node n)
 {
-  return n->kind == decl_optarg;
+  return static_cast<decl_node__opaque> (n)->kind == decl_optarg;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23947,7 +24076,7 @@ extern "C" bool decl_isOptarg (decl_node n)
 extern "C" bool decl_isRecord (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_record;
+  return static_cast<decl_node__opaque> (n)->kind == decl_record;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23960,7 +24089,7 @@ extern "C" bool decl_isRecord (decl_node n)
 extern "C" bool decl_isRecordField (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_recordfield;
+  return static_cast<decl_node__opaque> (n)->kind == decl_recordfield;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23973,7 +24102,7 @@ extern "C" bool decl_isRecordField (decl_node n)
 extern "C" bool decl_isVarientField (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_varientfield;
+  return static_cast<decl_node__opaque> (n)->kind == decl_varientfield;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23986,7 +24115,7 @@ extern "C" bool decl_isVarientField (decl_node n)
 extern "C" bool decl_isArray (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_array;
+  return static_cast<decl_node__opaque> (n)->kind == decl_array;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -23999,7 +24128,7 @@ extern "C" bool decl_isArray (decl_node n)
 extern "C" bool decl_isProcType (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_proctype;
+  return static_cast<decl_node__opaque> (n)->kind == decl_proctype;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24012,7 +24141,7 @@ extern "C" bool decl_isProcType (decl_node n)
 extern "C" bool decl_isPointer (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_pointer;
+  return static_cast<decl_node__opaque> (n)->kind == decl_pointer;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24025,7 +24154,7 @@ extern "C" bool decl_isPointer (decl_node n)
 extern "C" bool decl_isProcedure (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_procedure;
+  return static_cast<decl_node__opaque> (n)->kind == decl_procedure;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24038,7 +24167,7 @@ extern "C" bool decl_isProcedure (decl_node n)
 extern "C" bool decl_isVarient (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_varient;
+  return static_cast<decl_node__opaque> (n)->kind == decl_varient;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24051,7 +24180,7 @@ extern "C" bool decl_isVarient (decl_node n)
 extern "C" bool decl_isSet (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_set;
+  return static_cast<decl_node__opaque> (n)->kind == decl_set;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24064,7 +24193,7 @@ extern "C" bool decl_isSet (decl_node n)
 extern "C" bool decl_isSubrange (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_subrange;
+  return static_cast<decl_node__opaque> (n)->kind == decl_subrange;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24100,14 +24229,14 @@ extern "C" bool decl_isRtype (decl_node n)
 
 extern "C" decl_node decl_makeConst (nameKey_Name n)
 {
-  decl_node d;
+  decl_node__opaque d;
 
   d = newNode (decl_const);
   d->constF.name = n;
-  d->constF.type = NULL;
-  d->constF.scope = decl_getDeclScope ();
-  d->constF.value = NULL;
-  return addToScope (d);
+  d->constF.type = static_cast<decl_node__opaque> (NULL);
+  d->constF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+  d->constF.value = static_cast<decl_node__opaque> (NULL);
+  return static_cast<decl_node> (addToScope (d));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24120,7 +24249,7 @@ extern "C" decl_node decl_makeConst (nameKey_Name n)
 extern "C" void decl_putConst (decl_node n, decl_node v)
 {
   mcDebug_assert (decl_isConst (n));
-  n->constF.value = v;
+  static_cast<decl_node__opaque> (n)->constF.value = static_cast<decl_node__opaque> (v);
 }
 
 
@@ -24130,15 +24259,16 @@ extern "C" void decl_putConst (decl_node n, decl_node v)
 
 extern "C" decl_node decl_makeType (nameKey_Name n)
 {
-  decl_node d;
+  decl_node__opaque d;
 
   d = newNode (decl_type);
   d->typeF.name = n;
-  d->typeF.type = NULL;
-  d->typeF.scope = decl_getDeclScope ();
+  d->typeF.type = static_cast<decl_node__opaque> (NULL);
+  d->typeF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+  d->typeF.isOpaque = false;
   d->typeF.isHidden = false;
   d->typeF.isInternal = false;
-  return addToScope (d);
+  return static_cast<decl_node> (addToScope (d));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24151,22 +24281,23 @@ extern "C" decl_node decl_makeType (nameKey_Name n)
 
 extern "C" decl_node decl_makeTypeImp (nameKey_Name n)
 {
-  decl_node d;
+  decl_node__opaque d;
 
-  d = decl_lookupSym (n);
+  d = static_cast<decl_node__opaque> (decl_lookupSym (n));
   if (d != NULL)
     {
       d->typeF.isHidden = false;
-      return addToScope (d);
+      return static_cast<decl_node> (addToScope (d));
     }
   else
     {
       d = newNode (decl_type);
       d->typeF.name = n;
-      d->typeF.type = NULL;
-      d->typeF.scope = decl_getDeclScope ();
+      d->typeF.type = static_cast<decl_node__opaque> (NULL);
+      d->typeF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+      d->typeF.isOpaque = false;
       d->typeF.isHidden = false;
-      return addToScope (d);
+      return static_cast<decl_node> (addToScope (d));
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -24179,18 +24310,18 @@ extern "C" decl_node decl_makeTypeImp (nameKey_Name n)
 
 extern "C" decl_node decl_makeVar (nameKey_Name n)
 {
-  decl_node d;
+  decl_node__opaque d;
 
   d = newNode (decl_var);
   d->varF.name = n;
-  d->varF.type = NULL;
-  d->varF.decl = NULL;
-  d->varF.scope = decl_getDeclScope ();
+  d->varF.type = static_cast<decl_node__opaque> (NULL);
+  d->varF.decl = static_cast<decl_node__opaque> (NULL);
+  d->varF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
   d->varF.isInitialised = false;
   d->varF.isParameter = false;
   d->varF.isVarParameter = false;
   initCname (&d->varF.cname);
-  return addToScope (d);
+  return static_cast<decl_node> (addToScope (d));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24204,8 +24335,9 @@ extern "C" void decl_putVar (decl_node var, decl_node type, decl_node decl)
 {
   mcDebug_assert (var != NULL);
   mcDebug_assert (decl_isVar (var));
-  var->varF.type = type;
-  var->varF.decl = decl;
+  static_cast<decl_node__opaque> (var)->varF.type = static_cast<decl_node__opaque> (type);
+  static_cast<decl_node__opaque> (var)->varF.decl = static_cast<decl_node__opaque> (decl);
+  initNodeOpaqueState (static_cast<decl_node__opaque> (var));
 }
 
 
@@ -24216,26 +24348,26 @@ extern "C" void decl_putVar (decl_node var, decl_node type, decl_node decl)
 
 extern "C" decl_node decl_makeVarDecl (decl_node i, decl_node type)
 {
-  decl_node d;
-  decl_node v;
+  decl_node__opaque d;
+  decl_node__opaque v;
   unsigned int j;
   unsigned int n;
 
-  type = checkPtr (type);
+  type = static_cast<decl_node> (checkPtr (static_cast<decl_node__opaque> (type)));
   d = newNode (decl_vardecl);
-  d->vardeclF.names = i->identlistF.names;
-  d->vardeclF.type = type;
-  d->vardeclF.scope = decl_getDeclScope ();
+  d->vardeclF.names = static_cast<decl_node__opaque> (i)->identlistF.names;
+  d->vardeclF.type = static_cast<decl_node__opaque> (type);
+  d->vardeclF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
   n = wlists_noOfItemsInList (d->vardeclF.names);
   j = 1;
   while (j <= n)
     {
-      v = decl_lookupSym (wlists_getItemFromList (d->vardeclF.names, j));
-      mcDebug_assert (decl_isVar (v));
-      decl_putVar (v, type, d);
+      v = static_cast<decl_node__opaque> (decl_lookupSym (wlists_getItemFromList (d->vardeclF.names, j)));
+      mcDebug_assert (decl_isVar (static_cast<decl_node> (v)));
+      decl_putVar (static_cast<decl_node> (v), type, static_cast<decl_node> (d));
       j += 1;
     }
-  return d;
+  return static_cast<decl_node> (d);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24247,13 +24379,13 @@ extern "C" decl_node decl_makeVarDecl (decl_node i, decl_node type)
 
 extern "C" decl_node decl_makeEnum (void)
 {
-  if ((currentModule != NULL) && (decl_getEnumsComplete (currentModule)))
+  if ((currentModule != NULL) && (decl_getEnumsComplete (static_cast<decl_node> (currentModule))))
     {
       return decl_getNextEnum ();
     }
   else
     {
-      return doMakeEnum ();
+      return static_cast<decl_node> (doMakeEnum ());
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -24266,13 +24398,13 @@ extern "C" decl_node decl_makeEnum (void)
 
 extern "C" decl_node decl_makeEnumField (decl_node e, nameKey_Name n)
 {
-  if ((currentModule != NULL) && (decl_getEnumsComplete (currentModule)))
+  if ((currentModule != NULL) && (decl_getEnumsComplete (static_cast<decl_node> (currentModule))))
     {
       return decl_getNextEnum ();
     }
   else
     {
-      return doMakeEnumField (e, n);
+      return static_cast<decl_node> (doMakeEnumField (static_cast<decl_node__opaque> (e), n));
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -24285,14 +24417,14 @@ extern "C" decl_node decl_makeEnumField (decl_node e, nameKey_Name n)
 
 extern "C" decl_node decl_makeSubrange (decl_node low, decl_node high)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_subrange);
-  n->subrangeF.low = low;
-  n->subrangeF.high = high;
-  n->subrangeF.type = NULL;
-  n->subrangeF.scope = decl_getDeclScope ();
-  return n;
+  n->subrangeF.low = static_cast<decl_node__opaque> (low);
+  n->subrangeF.high = static_cast<decl_node__opaque> (high);
+  n->subrangeF.type = static_cast<decl_node__opaque> (NULL);
+  n->subrangeF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24305,7 +24437,7 @@ extern "C" decl_node decl_makeSubrange (decl_node low, decl_node high)
 extern "C" void decl_putSubrangeType (decl_node sub, decl_node type)
 {
   mcDebug_assert (decl_isSubrange (sub));
-  sub->subrangeF.type = type;
+  static_cast<decl_node__opaque> (sub)->subrangeF.type = static_cast<decl_node__opaque> (type);
 }
 
 
@@ -24315,12 +24447,12 @@ extern "C" void decl_putSubrangeType (decl_node sub, decl_node type)
 
 extern "C" decl_node decl_makePointer (decl_node type)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_pointer);
-  n->pointerF.type = type;
-  n->pointerF.scope = decl_getDeclScope ();
-  return n;
+  n->pointerF.type = static_cast<decl_node__opaque> (type);
+  n->pointerF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24332,12 +24464,12 @@ extern "C" decl_node decl_makePointer (decl_node type)
 
 extern "C" decl_node decl_makeSet (decl_node type)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_set);
-  n->setF.type = type;
-  n->setF.scope = decl_getDeclScope ();
-  return n;
+  n->setF.type = static_cast<decl_node__opaque> (type);
+  n->setF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24349,17 +24481,17 @@ extern "C" decl_node decl_makeSet (decl_node type)
 
 extern "C" decl_node decl_makeArray (decl_node subr, decl_node type)
 {
-  decl_node n;
-  decl_node s;
+  decl_node__opaque n;
+  decl_node__opaque s;
 
-  s = decl_skipType (subr);
-  mcDebug_assert (((decl_isSubrange (s)) || (isOrdinal (s))) || (decl_isEnumeration (s)));
+  s = static_cast<decl_node__opaque> (decl_skipType (subr));
+  mcDebug_assert (((decl_isSubrange (static_cast<decl_node> (s))) || (isOrdinal (s))) || (decl_isEnumeration (static_cast<decl_node> (s))));
   n = newNode (decl_array);
-  n->arrayF.subr = subr;
-  n->arrayF.type = type;
-  n->arrayF.scope = decl_getDeclScope ();
+  n->arrayF.subr = static_cast<decl_node__opaque> (subr);
+  n->arrayF.type = static_cast<decl_node__opaque> (type);
+  n->arrayF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
   n->arrayF.isUnbounded = false;
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24371,8 +24503,8 @@ extern "C" decl_node decl_makeArray (decl_node subr, decl_node type)
 
 extern "C" void decl_putUnbounded (decl_node n)
 {
-  mcDebug_assert (n->kind == decl_array);
-  n->arrayF.isUnbounded = true;
+  mcDebug_assert (static_cast<decl_node__opaque> (n)->kind == decl_array);
+  static_cast<decl_node__opaque> (n)->arrayF.isUnbounded = true;
 }
 
 
@@ -24382,13 +24514,13 @@ extern "C" void decl_putUnbounded (decl_node n)
 
 extern "C" decl_node decl_makeRecord (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_record);
   n->recordF.localSymbols = symbolKey_initTree ();
   n->recordF.listOfSons = Indexing_InitIndex (1);
-  n->recordF.scope = decl_getDeclScope ();
-  return n;
+  n->recordF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24401,30 +24533,30 @@ extern "C" decl_node decl_makeRecord (void)
 
 extern "C" decl_node decl_makeVarient (decl_node r)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_varient);
   n->varientF.listOfSons = Indexing_InitIndex (1);
   /* if so use this   n^.varientF.parent := r  */
   if (decl_isRecord (r))
     {
-      n->varientF.varient = NULL;
+      n->varientF.varient = static_cast<decl_node__opaque> (NULL);
     }
   else
     {
-      n->varientF.varient = r;
+      n->varientF.varient = static_cast<decl_node__opaque> (r);
     }
-  n->varientF.tag = NULL;
-  n->varientF.scope = decl_getDeclScope ();
-  switch (r->kind)
+  n->varientF.tag = static_cast<decl_node__opaque> (NULL);
+  n->varientF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
+  switch (static_cast<decl_node__opaque> (r)->kind)
     {
       case decl_record:
         /* now add, n, to the record/varient, r, field list  */
-        Indexing_IncludeIndiceIntoIndex (r->recordF.listOfSons, reinterpret_cast<void *> (n));
+        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (r)->recordF.listOfSons, reinterpret_cast<void *> (n));
         break;
 
       case decl_varientfield:
-        Indexing_IncludeIndiceIntoIndex (r->varientfieldF.listOfSons, reinterpret_cast<void *> (n));
+        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (r)->varientfieldF.listOfSons, reinterpret_cast<void *> (n));
         break;
 
 
@@ -24432,7 +24564,7 @@ extern "C" decl_node decl_makeVarient (decl_node r)
         CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
         __builtin_unreachable ();
     }
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24445,33 +24577,33 @@ extern "C" decl_node decl_makeVarient (decl_node r)
 
 extern "C" decl_node decl_addFieldsToRecord (decl_node r, decl_node v, decl_node i, decl_node t)
 {
-  decl_node p;
-  decl_node fj;
+  decl_node__opaque p;
+  decl_node__opaque fj;
   unsigned int j;
   unsigned int n;
   nameKey_Name fn;
 
   if (decl_isRecord (r))
     {
-      p = r;
-      v = NULL;
+      p = static_cast<decl_node__opaque> (r);
+      v = static_cast<decl_node> (NULL);
     }
   else
     {
-      p = getRecord (getParent (r));
+      p = getRecord (getParent (static_cast<decl_node__opaque> (r)));
       mcDebug_assert (decl_isVarientField (r));
       mcDebug_assert (decl_isVarient (v));
-      putFieldVarient (r, v);
+      putFieldVarient (static_cast<decl_node__opaque> (r), static_cast<decl_node__opaque> (v));
     }
-  n = wlists_noOfItemsInList (i->identlistF.names);
+  n = wlists_noOfItemsInList (static_cast<decl_node__opaque> (i)->identlistF.names);
   j = 1;
   while (j <= n)
     {
-      fn = static_cast<nameKey_Name> (wlists_getItemFromList (i->identlistF.names, j));
-      fj = static_cast<decl_node> (symbolKey_getSymKey (p->recordF.localSymbols, n));
+      fn = static_cast<nameKey_Name> (wlists_getItemFromList (static_cast<decl_node__opaque> (i)->identlistF.names, j));
+      fj = static_cast<decl_node__opaque> (symbolKey_getSymKey (p->recordF.localSymbols, n));
       if (fj == NULL)
         {
-          fj = putFieldRecord (r, fn, t, v);
+          fj = putFieldRecord (static_cast<decl_node__opaque> (r), fn, static_cast<decl_node__opaque> (t), static_cast<decl_node__opaque> (v));
         }
       else
         {
@@ -24493,7 +24625,7 @@ extern "C" decl_node decl_addFieldsToRecord (decl_node r, decl_node v, decl_node
 
 extern "C" void decl_buildVarientSelector (decl_node r, decl_node v, nameKey_Name tag, decl_node type)
 {
-  decl_node f;
+  decl_node__opaque f;
 
   mcDebug_assert ((decl_isRecord (r)) || (decl_isVarientField (r)));
   if ((decl_isRecord (r)) || (decl_isVarientField (r)))
@@ -24506,16 +24638,16 @@ extern "C" void decl_buildVarientSelector (decl_node r, decl_node v, nameKey_Nam
       else if (type == NULL)
         {
           /* avoid dangling else.  */
-          f = decl_lookupSym (tag);
-          putVarientTag (v, f);
+          f = static_cast<decl_node__opaque> (decl_lookupSym (tag));
+          putVarientTag (static_cast<decl_node__opaque> (v), f);
         }
       else
         {
           /* avoid dangling else.  */
-          f = putFieldRecord (r, tag, type, v);
-          mcDebug_assert (decl_isRecordField (f));
+          f = putFieldRecord (static_cast<decl_node__opaque> (r), tag, static_cast<decl_node__opaque> (type), static_cast<decl_node__opaque> (v));
+          mcDebug_assert (decl_isRecordField (static_cast<decl_node> (f)));
           f->recordfieldF.tag = true;
-          putVarientTag (v, f);
+          putVarientTag (static_cast<decl_node__opaque> (v), f);
         }
     }
 }
@@ -24528,13 +24660,13 @@ extern "C" void decl_buildVarientSelector (decl_node r, decl_node v, nameKey_Nam
 
 extern "C" decl_node decl_buildVarientFieldRecord (decl_node v, decl_node p)
 {
-  decl_node f;
+  decl_node__opaque f;
 
   mcDebug_assert (decl_isVarient (v));
-  f = makeVarientField (v, p);
-  mcDebug_assert (decl_isVarientField (f));
-  putFieldVarient (f, v);
-  return f;
+  f = makeVarientField (static_cast<decl_node__opaque> (v), static_cast<decl_node__opaque> (p));
+  mcDebug_assert (decl_isVarientField (static_cast<decl_node> (f)));
+  putFieldVarient (f, static_cast<decl_node__opaque> (v));
+  return static_cast<decl_node> (f);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24546,7 +24678,7 @@ extern "C" decl_node decl_buildVarientFieldRecord (decl_node v, decl_node p)
 
 extern "C" nameKey_Name decl_getSymName (decl_node n)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_new:
         return nameKey_makeKey ((const char *) "NEW", 3);
@@ -24687,7 +24819,7 @@ extern "C" nameKey_Name decl_getSymName (decl_node n)
 
       case decl_type:
         /* language features and compound type attributes.  */
-        return n->typeF.name;
+        return static_cast<decl_node__opaque> (n)->typeF.name;
         break;
 
       case decl_record:
@@ -24699,7 +24831,7 @@ extern "C" nameKey_Name decl_getSymName (decl_node n)
         break;
 
       case decl_var:
-        return n->varF.name;
+        return static_cast<decl_node__opaque> (n)->varF.name;
         break;
 
       case decl_enumeration:
@@ -24719,15 +24851,15 @@ extern "C" nameKey_Name decl_getSymName (decl_node n)
         break;
 
       case decl_string:
-        return n->stringF.name;
+        return static_cast<decl_node__opaque> (n)->stringF.name;
         break;
 
       case decl_const:
-        return n->constF.name;
+        return static_cast<decl_node__opaque> (n)->constF.name;
         break;
 
       case decl_literal:
-        return n->literalF.name;
+        return static_cast<decl_node__opaque> (n)->literalF.name;
         break;
 
       case decl_varparam:
@@ -24743,15 +24875,15 @@ extern "C" nameKey_Name decl_getSymName (decl_node n)
         break;
 
       case decl_recordfield:
-        return n->recordfieldF.name;
+        return static_cast<decl_node__opaque> (n)->recordfieldF.name;
         break;
 
       case decl_varientfield:
-        return n->varientfieldF.name;
+        return static_cast<decl_node__opaque> (n)->varientfieldF.name;
         break;
 
       case decl_enumerationfield:
-        return n->enumerationfieldF.name;
+        return static_cast<decl_node__opaque> (n)->enumerationfieldF.name;
         break;
 
       case decl_set:
@@ -24768,19 +24900,19 @@ extern "C" nameKey_Name decl_getSymName (decl_node n)
 
       case decl_procedure:
         /* blocks.  */
-        return n->procedureF.name;
+        return static_cast<decl_node__opaque> (n)->procedureF.name;
         break;
 
       case decl_def:
-        return n->defF.name;
+        return static_cast<decl_node__opaque> (n)->defF.name;
         break;
 
       case decl_imp:
-        return n->impF.name;
+        return static_cast<decl_node__opaque> (n)->impF.name;
         break;
 
       case decl_module:
-        return n->moduleF.name;
+        return static_cast<decl_node__opaque> (n)->moduleF.name;
         break;
 
       case decl_loop:
@@ -24915,25 +25047,25 @@ extern "C" nameKey_Name decl_getSymName (decl_node n)
 extern "C" decl_node decl_import (decl_node m, decl_node n)
 {
   nameKey_Name name;
-  decl_node r;
+  decl_node__opaque r;
 
   mcDebug_assert (((decl_isDef (m)) || (decl_isModule (m))) || (decl_isImp (m)));
   name = decl_getSymName (n);
-  r = decl_lookupInScope (m, name);
+  r = static_cast<decl_node__opaque> (decl_lookupInScope (m, name));
   if (r == NULL)
     {
-      switch (m->kind)
+      switch (static_cast<decl_node__opaque> (m)->kind)
         {
           case decl_def:
-            symbolKey_putSymKey (m->defF.decls.symbols, name, reinterpret_cast<void *> (n));
+            symbolKey_putSymKey (static_cast<decl_node__opaque> (m)->defF.decls.symbols, name, reinterpret_cast<void *> (n));
             break;
 
           case decl_imp:
-            symbolKey_putSymKey (m->impF.decls.symbols, name, reinterpret_cast<void *> (n));
+            symbolKey_putSymKey (static_cast<decl_node__opaque> (m)->impF.decls.symbols, name, reinterpret_cast<void *> (n));
             break;
 
           case decl_module:
-            symbolKey_putSymKey (m->moduleF.decls.symbols, name, reinterpret_cast<void *> (n));
+            symbolKey_putSymKey (static_cast<decl_node__opaque> (m)->moduleF.decls.symbols, name, reinterpret_cast<void *> (n));
             break;
 
 
@@ -24941,10 +25073,10 @@ extern "C" decl_node decl_import (decl_node m, decl_node n)
             CaseException ("../../gcc/m2/mc/decl.def", 20, 1);
             __builtin_unreachable ();
         }
-      importEnumFields (m, n);
+      importEnumFields (static_cast<decl_node__opaque> (m), static_cast<decl_node__opaque> (n));
       return n;
     }
-  return r;
+  return static_cast<decl_node> (r);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24958,15 +25090,15 @@ extern "C" decl_node decl_import (decl_node m, decl_node n)
 
 extern "C" decl_node decl_lookupExported (decl_node n, nameKey_Name i)
 {
-  decl_node r;
+  decl_node__opaque r;
 
   mcDebug_assert (decl_isDef (n));
-  r = static_cast<decl_node> (symbolKey_getSymKey (n->defF.decls.symbols, i));
-  if ((r != NULL) && (decl_isExported (r)))
+  r = static_cast<decl_node__opaque> (symbolKey_getSymKey (static_cast<decl_node__opaque> (n)->defF.decls.symbols, i));
+  if ((r != NULL) && (decl_isExported (static_cast<decl_node> (r))))
     {
-      return r;
+      return static_cast<decl_node> (r);
     }
-  return NULL;
+  return static_cast<decl_node> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -24978,8 +25110,8 @@ extern "C" decl_node decl_lookupExported (decl_node n, nameKey_Name i)
 
 extern "C" decl_node decl_lookupSym (nameKey_Name n)
 {
-  decl_node s;
-  decl_node m;
+  decl_node__opaque s;
+  decl_node__opaque m;
   unsigned int l;
   unsigned int h;
 
@@ -24987,8 +25119,8 @@ extern "C" decl_node decl_lookupSym (nameKey_Name n)
   h = Indexing_HighIndice (scopeStack);
   while (h >= l)
     {
-      s = static_cast<decl_node> (Indexing_GetIndice (scopeStack, h));
-      m = decl_lookupInScope (s, n);
+      s = static_cast<decl_node__opaque> (Indexing_GetIndice (scopeStack, h));
+      m = static_cast<decl_node__opaque> (decl_lookupInScope (static_cast<decl_node> (s), n));
       if (debugScopes && (m == NULL))
         {
           out3 ((const char *) " [%d] search for symbol name %s in scope %s\\n", 45, h, n, s);
@@ -24999,11 +25131,11 @@ extern "C" decl_node decl_lookupSym (nameKey_Name n)
             {
               out3 ((const char *) " [%d] search for symbol name %s in scope %s (found)\\n", 53, h, n, s);
             }
-          return m;
+          return static_cast<decl_node> (m);
         }
       h -= 1;
     }
-  return lookupBase (n);
+  return static_cast<decl_node> (lookupBase (n));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25020,17 +25152,17 @@ extern "C" void decl_addImportedModule (decl_node m, decl_node i, bool scoped)
   mcDebug_assert ((decl_isDef (i)) || (decl_isModule (i)));
   if (decl_isDef (m))
     {
-      Indexing_IncludeIndiceIntoIndex (m->defF.importedModules, reinterpret_cast<void *> (i));
+      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (m)->defF.importedModules, reinterpret_cast<void *> (i));
     }
   else if (decl_isImp (m))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (m->impF.importedModules, reinterpret_cast<void *> (i));
+      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (m)->impF.importedModules, reinterpret_cast<void *> (i));
     }
   else if (decl_isModule (m))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (m->moduleF.importedModules, reinterpret_cast<void *> (i));
+      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (m)->moduleF.importedModules, reinterpret_cast<void *> (i));
     }
   else
     {
@@ -25040,7 +25172,7 @@ extern "C" void decl_addImportedModule (decl_node m, decl_node i, bool scoped)
     }
   if (scoped)
     {
-      addModuleToScope (m, i);
+      addModuleToScope (static_cast<decl_node__opaque> (m), static_cast<decl_node__opaque> (i));
     }
 }
 
@@ -25051,18 +25183,18 @@ extern "C" void decl_addImportedModule (decl_node m, decl_node i, bool scoped)
 
 extern "C" void decl_setSource (decl_node n, nameKey_Name s)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_def:
-        n->defF.source = s;
+        static_cast<decl_node__opaque> (n)->defF.source = s;
         break;
 
       case decl_module:
-        n->moduleF.source = s;
+        static_cast<decl_node__opaque> (n)->moduleF.source = s;
         break;
 
       case decl_imp:
-        n->impF.source = s;
+        static_cast<decl_node__opaque> (n)->impF.source = s;
         break;
 
 
@@ -25079,18 +25211,18 @@ extern "C" void decl_setSource (decl_node n, nameKey_Name s)
 
 extern "C" nameKey_Name decl_getSource (decl_node n)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_def:
-        return n->defF.source;
+        return static_cast<decl_node__opaque> (n)->defF.source;
         break;
 
       case decl_module:
-        return n->moduleF.source;
+        return static_cast<decl_node__opaque> (n)->moduleF.source;
         break;
 
       case decl_imp:
-        return n->impF.source;
+        return static_cast<decl_node__opaque> (n)->impF.source;
         break;
 
 
@@ -25109,7 +25241,7 @@ extern "C" nameKey_Name decl_getSource (decl_node n)
 
 extern "C" decl_node decl_getMainModule (void)
 {
-  return mainModule;
+  return static_cast<decl_node> (mainModule);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25121,7 +25253,7 @@ extern "C" decl_node decl_getMainModule (void)
 
 extern "C" decl_node decl_getCurrentModule (void)
 {
-  return currentModule;
+  return static_cast<decl_node> (currentModule);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25179,10 +25311,10 @@ extern "C" void decl_enterScope (decl_node n)
 extern "C" void decl_leaveScope (void)
 {
   unsigned int i;
-  decl_node n;
+  decl_node__opaque n;
 
   i = Indexing_HighIndice (scopeStack);
-  n = static_cast<decl_node> (Indexing_GetIndice (scopeStack, i));
+  n = static_cast<decl_node__opaque> (Indexing_GetIndice (scopeStack, i));
   Indexing_RemoveIndiceFromIndex (scopeStack, reinterpret_cast<void *> (n));
   if (debugScopes)
     {
@@ -25198,32 +25330,32 @@ extern "C" void decl_leaveScope (void)
 
 extern "C" decl_node decl_makeProcedure (nameKey_Name n)
 {
-  decl_node d;
+  decl_node__opaque d;
 
-  d = decl_lookupSym (n);
+  d = static_cast<decl_node__opaque> (decl_lookupSym (n));
   if (d == NULL)
     {
       d = newNode (decl_procedure);
       d->procedureF.name = n;
       initDecls (&d->procedureF.decls);
-      d->procedureF.scope = decl_getDeclScope ();
+      d->procedureF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
       d->procedureF.parameters = Indexing_InitIndex (1);
-      d->procedureF.isForC = isDefForCNode (decl_getDeclScope ());
+      d->procedureF.isForC = isDefForCNode (static_cast<decl_node__opaque> (decl_getDeclScope ()));
       d->procedureF.built = false;
       d->procedureF.returnopt = false;
-      d->procedureF.optarg_ = NULL;
+      d->procedureF.optarg_ = static_cast<decl_node__opaque> (NULL);
       d->procedureF.noreturnused = false;
       d->procedureF.noreturn = false;
       d->procedureF.vararg = false;
       d->procedureF.checking = false;
       d->procedureF.paramcount = 0;
-      d->procedureF.returnType = NULL;
-      d->procedureF.beginStatements = NULL;
+      d->procedureF.returnType = static_cast<decl_node__opaque> (NULL);
+      d->procedureF.beginStatements = static_cast<decl_node__opaque> (NULL);
       initCname (&d->procedureF.cname);
-      d->procedureF.defComment = NULL;
-      d->procedureF.modComment = NULL;
+      d->procedureF.defComment = static_cast<mcComment_commentDesc> (NULL);
+      d->procedureF.modComment = static_cast<mcComment_commentDesc> (NULL);
     }
-  return addProcedureToScope (d, n);
+  return static_cast<decl_node> (addProcedureToScope (d, n));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25240,7 +25372,7 @@ extern "C" void decl_putCommentDefProcedure (decl_node n)
   mcDebug_assert (decl_isProcedure (n));
   if (mcComment_isProcedureComment (mcLexBuf_lastcomment))
     {
-      n->procedureF.defComment = mcLexBuf_lastcomment;
+      static_cast<decl_node__opaque> (n)->procedureF.defComment = mcLexBuf_lastcomment;
     }
 }
 
@@ -25256,7 +25388,7 @@ extern "C" void decl_putCommentModProcedure (decl_node n)
   mcDebug_assert (decl_isProcedure (n));
   if (mcComment_isProcedureComment (mcLexBuf_lastcomment))
     {
-      n->procedureF.modComment = mcLexBuf_lastcomment;
+      static_cast<decl_node__opaque> (n)->procedureF.modComment = mcLexBuf_lastcomment;
     }
 }
 
@@ -25267,23 +25399,24 @@ extern "C" void decl_putCommentModProcedure (decl_node n)
 
 extern "C" decl_node decl_makeProcType (void)
 {
-  decl_node d;
+  decl_node__opaque d;
 
   d = newNode (decl_proctype);
-  d->proctypeF.scope = decl_getDeclScope ();
+  d->proctypeF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
   d->proctypeF.parameters = Indexing_InitIndex (1);
   d->proctypeF.returnopt = false;
-  d->proctypeF.optarg_ = NULL;
+  d->proctypeF.optarg_ = static_cast<decl_node__opaque> (NULL);
   d->proctypeF.vararg = false;
-  d->proctypeF.returnType = NULL;
-  return d;
+  d->proctypeF.returnType = static_cast<decl_node__opaque> (NULL);
+  initNodeOpaqueState (d);
+  return static_cast<decl_node> (d);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
 
 /*
-   putReturnType - sets the return type of procedure or proctype, proc, to, type.
+   putReturnType - sets the return type of procedure or proctype proc to type.
 */
 
 extern "C" void decl_putReturnType (decl_node proc, decl_node type)
@@ -25291,12 +25424,13 @@ extern "C" void decl_putReturnType (decl_node proc, decl_node type)
   mcDebug_assert ((decl_isProcedure (proc)) || (decl_isProcType (proc)));
   if (decl_isProcedure (proc))
     {
-      proc->procedureF.returnType = type;
+      static_cast<decl_node__opaque> (proc)->procedureF.returnType = static_cast<decl_node__opaque> (type);
     }
   else
     {
-      proc->proctypeF.returnType = type;
+      static_cast<decl_node__opaque> (proc)->proctypeF.returnType = static_cast<decl_node__opaque> (type);
     }
+  initNodeOpaqueState (static_cast<decl_node__opaque> (proc));
 }
 
 
@@ -25309,11 +25443,11 @@ extern "C" void decl_putOptReturn (decl_node proc)
   mcDebug_assert ((decl_isProcedure (proc)) || (decl_isProcType (proc)));
   if (decl_isProcedure (proc))
     {
-      proc->procedureF.returnopt = true;
+      static_cast<decl_node__opaque> (proc)->procedureF.returnopt = true;
     }
   else
     {
-      proc->proctypeF.returnopt = true;
+      static_cast<decl_node__opaque> (proc)->proctypeF.returnopt = true;
     }
 }
 
@@ -25324,17 +25458,18 @@ extern "C" void decl_putOptReturn (decl_node proc)
 
 extern "C" decl_node decl_makeVarParameter (decl_node l, decl_node type, decl_node proc, bool isused)
 {
-  decl_node d;
+  decl_node__opaque d;
 
-  mcDebug_assert ((l == NULL) || (isIdentList (l)));
+  mcDebug_assert ((l == NULL) || (isIdentList (static_cast<decl_node__opaque> (l))));
   d = newNode (decl_varparam);
-  d->varparamF.namelist = l;
-  d->varparamF.type = type;
-  d->varparamF.scope = proc;
+  d->varparamF.namelist = static_cast<decl_node__opaque> (l);
+  d->varparamF.type = static_cast<decl_node__opaque> (type);
+  d->varparamF.scope = static_cast<decl_node__opaque> (proc);
   d->varparamF.isUnbounded = false;
-  d->varparamF.isForC = isDefForCNode (proc);
+  d->varparamF.isForC = isDefForCNode (static_cast<decl_node__opaque> (proc));
   d->varparamF.isUsed = isused;
-  return d;
+  initNodeOpaqueState (d);
+  return static_cast<decl_node> (d);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25346,17 +25481,18 @@ extern "C" decl_node decl_makeVarParameter (decl_node l, decl_node type, decl_no
 
 extern "C" decl_node decl_makeNonVarParameter (decl_node l, decl_node type, decl_node proc, bool isused)
 {
-  decl_node d;
+  decl_node__opaque d;
 
-  mcDebug_assert ((l == NULL) || (isIdentList (l)));
+  mcDebug_assert ((l == NULL) || (isIdentList (static_cast<decl_node__opaque> (l))));
   d = newNode (decl_param);
-  d->paramF.namelist = l;
-  d->paramF.type = type;
-  d->paramF.scope = proc;
+  d->paramF.namelist = static_cast<decl_node__opaque> (l);
+  d->paramF.type = static_cast<decl_node__opaque> (type);
+  d->paramF.scope = static_cast<decl_node__opaque> (proc);
   d->paramF.isUnbounded = false;
-  d->paramF.isForC = isDefForCNode (proc);
+  d->paramF.isForC = isDefForCNode (static_cast<decl_node__opaque> (proc));
   d->paramF.isUsed = isused;
-  return d;
+  initNodeOpaqueState (d);
+  return static_cast<decl_node> (d);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25369,7 +25505,7 @@ extern "C" decl_node decl_makeNonVarParameter (decl_node l, decl_node type, decl
 extern "C" void decl_paramEnter (decl_node n)
 {
   mcDebug_assert (decl_isProcedure (n));
-  n->procedureF.paramcount = 0;
+  static_cast<decl_node__opaque> (n)->procedureF.paramcount = 0;
 }
 
 
@@ -25380,10 +25516,10 @@ extern "C" void decl_paramEnter (decl_node n)
 extern "C" void decl_paramLeave (decl_node n)
 {
   mcDebug_assert (decl_isProcedure (n));
-  n->procedureF.checking = true;
-  if ((decl_isImp (currentModule)) || (decl_isModule (currentModule)))
+  static_cast<decl_node__opaque> (n)->procedureF.checking = true;
+  if ((decl_isImp (static_cast<decl_node> (currentModule))) || (decl_isModule (static_cast<decl_node> (currentModule))))
     {
-      n->procedureF.built = true;
+      static_cast<decl_node__opaque> (n)->procedureF.built = true;
     }
 }
 
@@ -25394,12 +25530,12 @@ extern "C" void decl_paramLeave (decl_node n)
 
 extern "C" decl_node decl_makeIdentList (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_identlist);
   n->identlistF.names = wlists_initList ();
   n->identlistF.cnamed = false;
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25412,14 +25548,14 @@ extern "C" decl_node decl_makeIdentList (void)
 
 extern "C" bool decl_putIdent (decl_node n, nameKey_Name i)
 {
-  mcDebug_assert (isIdentList (n));
-  if (wlists_isItemInList (n->identlistF.names, i))
+  mcDebug_assert (isIdentList (static_cast<decl_node__opaque> (n)));
+  if (wlists_isItemInList (static_cast<decl_node__opaque> (n)->identlistF.names, i))
     {
       return false;
     }
   else
     {
-      wlists_putItemIntoList (n->identlistF.names, i);
+      wlists_putItemIntoList (static_cast<decl_node__opaque> (n)->identlistF.names, i);
       return true;
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -25434,19 +25570,19 @@ extern "C" bool decl_putIdent (decl_node n, nameKey_Name i)
 
 extern "C" void decl_addVarParameters (decl_node n, decl_node i, decl_node type, bool isused)
 {
-  decl_node p;
+  decl_node__opaque p;
 
-  mcDebug_assert (isIdentList (i));
+  mcDebug_assert (isIdentList (static_cast<decl_node__opaque> (i)));
   mcDebug_assert (decl_isProcedure (n));
-  checkMakeVariables (n, i, type, true, isused);
-  if (n->procedureF.checking)
+  checkMakeVariables (static_cast<decl_node__opaque> (n), static_cast<decl_node__opaque> (i), static_cast<decl_node__opaque> (type), true, isused);
+  if (static_cast<decl_node__opaque> (n)->procedureF.checking)
     {
-      checkParameters (n, i, type, true, isused);  /* will destroy, i.  */
+      checkParameters (static_cast<decl_node__opaque> (n), static_cast<decl_node__opaque> (i), static_cast<decl_node__opaque> (type), true, isused);  /* will destroy, i.  */
     }
   else
     {
-      p = decl_makeVarParameter (i, type, n, isused);
-      Indexing_IncludeIndiceIntoIndex (n->procedureF.parameters, reinterpret_cast<void *> (p));
+      p = static_cast<decl_node__opaque> (decl_makeVarParameter (i, type, n, isused));
+      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->procedureF.parameters, reinterpret_cast<void *> (p));
     }
 }
 
@@ -25458,19 +25594,19 @@ extern "C" void decl_addVarParameters (decl_node n, decl_node i, decl_node type,
 
 extern "C" void decl_addNonVarParameters (decl_node n, decl_node i, decl_node type, bool isused)
 {
-  decl_node p;
+  decl_node__opaque p;
 
-  mcDebug_assert (isIdentList (i));
+  mcDebug_assert (isIdentList (static_cast<decl_node__opaque> (i)));
   mcDebug_assert (decl_isProcedure (n));
-  checkMakeVariables (n, i, type, false, isused);
-  if (n->procedureF.checking)
+  checkMakeVariables (static_cast<decl_node__opaque> (n), static_cast<decl_node__opaque> (i), static_cast<decl_node__opaque> (type), false, isused);
+  if (static_cast<decl_node__opaque> (n)->procedureF.checking)
     {
-      checkParameters (n, i, type, false, isused);  /* will destroy, i.  */
+      checkParameters (static_cast<decl_node__opaque> (n), static_cast<decl_node__opaque> (i), static_cast<decl_node__opaque> (type), false, isused);  /* will destroy, i.  */
     }
   else
     {
-      p = decl_makeNonVarParameter (i, type, n, isused);
-      Indexing_IncludeIndiceIntoIndex (n->procedureF.parameters, reinterpret_cast<void *> (p));
+      p = static_cast<decl_node__opaque> (decl_makeNonVarParameter (i, type, n, isused));
+      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->procedureF.parameters, reinterpret_cast<void *> (p));
     }
 }
 
@@ -25481,11 +25617,11 @@ extern "C" void decl_addNonVarParameters (decl_node n, decl_node i, decl_node ty
 
 extern "C" decl_node decl_makeVarargs (void)
 {
-  decl_node d;
+  decl_node__opaque d;
 
   d = newNode (decl_varargs);
-  d->varargsF.scope = NULL;
-  return d;
+  d->varargsF.scope = static_cast<decl_node__opaque> (NULL);
+  return static_cast<decl_node> (d);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25497,7 +25633,7 @@ extern "C" decl_node decl_makeVarargs (void)
 
 extern "C" bool decl_isVarargs (decl_node n)
 {
-  return n->kind == decl_varargs;
+  return static_cast<decl_node__opaque> (n)->kind == decl_varargs;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25510,29 +25646,29 @@ extern "C" bool decl_isVarargs (decl_node n)
 extern "C" void decl_addParameter (decl_node proc, decl_node param)
 {
   mcDebug_assert ((((decl_isVarargs (param)) || (decl_isParam (param))) || (decl_isVarParam (param))) || (decl_isOptarg (param)));
-  switch (proc->kind)
+  switch (static_cast<decl_node__opaque> (proc)->kind)
     {
       case decl_procedure:
-        Indexing_IncludeIndiceIntoIndex (proc->procedureF.parameters, reinterpret_cast<void *> (param));
+        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (proc)->procedureF.parameters, reinterpret_cast<void *> (param));
         if (decl_isVarargs (param))
           {
-            proc->procedureF.vararg = true;
+            static_cast<decl_node__opaque> (proc)->procedureF.vararg = true;
           }
         if (decl_isOptarg (param))
           {
-            proc->procedureF.optarg_ = param;
+            static_cast<decl_node__opaque> (proc)->procedureF.optarg_ = static_cast<decl_node__opaque> (param);
           }
         break;
 
       case decl_proctype:
-        Indexing_IncludeIndiceIntoIndex (proc->proctypeF.parameters, reinterpret_cast<void *> (param));
+        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (proc)->proctypeF.parameters, reinterpret_cast<void *> (param));
         if (decl_isVarargs (param))
           {
-            proc->proctypeF.vararg = true;
+            static_cast<decl_node__opaque> (proc)->proctypeF.vararg = true;
           }
         if (decl_isOptarg (param))
           {
-            proc->proctypeF.optarg_ = param;
+            static_cast<decl_node__opaque> (proc)->proctypeF.optarg_ = static_cast<decl_node__opaque> (param);
           }
         break;
 
@@ -25553,77 +25689,77 @@ extern "C" decl_node decl_makeBinaryTok (mcReserved_toktype op, decl_node l, dec
 {
   if (op == mcReserved_equaltok)
     {
-      return makeBinary (decl_equal, l, r, booleanN);
+      return static_cast<decl_node> (makeBinary (decl_equal, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), booleanN));
     }
   else if ((op == mcReserved_hashtok) || (op == mcReserved_lessgreatertok))
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_notequal, l, r, booleanN);
+      return static_cast<decl_node> (makeBinary (decl_notequal, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), booleanN));
     }
   else if (op == mcReserved_lesstok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_less, l, r, booleanN);
+      return static_cast<decl_node> (makeBinary (decl_less, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), booleanN));
     }
   else if (op == mcReserved_greatertok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_greater, l, r, booleanN);
+      return static_cast<decl_node> (makeBinary (decl_greater, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), booleanN));
     }
   else if (op == mcReserved_greaterequaltok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_greequal, l, r, booleanN);
+      return static_cast<decl_node> (makeBinary (decl_greequal, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), booleanN));
     }
   else if (op == mcReserved_lessequaltok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_lessequal, l, r, booleanN);
+      return static_cast<decl_node> (makeBinary (decl_lessequal, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), booleanN));
     }
   else if (op == mcReserved_andtok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_and, l, r, booleanN);
+      return static_cast<decl_node> (makeBinary (decl_and, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), booleanN));
     }
   else if (op == mcReserved_ortok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_or, l, r, booleanN);
+      return static_cast<decl_node> (makeBinary (decl_or, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), booleanN));
     }
   else if (op == mcReserved_plustok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_plus, l, r, NULL);
+      return static_cast<decl_node> (makeBinary (decl_plus, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), static_cast<decl_node__opaque> (NULL)));
     }
   else if (op == mcReserved_minustok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_sub, l, r, NULL);
+      return static_cast<decl_node> (makeBinary (decl_sub, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), static_cast<decl_node__opaque> (NULL)));
     }
   else if (op == mcReserved_divtok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_div, l, r, NULL);
+      return static_cast<decl_node> (makeBinary (decl_div, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), static_cast<decl_node__opaque> (NULL)));
     }
   else if (op == mcReserved_timestok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_mult, l, r, NULL);
+      return static_cast<decl_node> (makeBinary (decl_mult, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), static_cast<decl_node__opaque> (NULL)));
     }
   else if (op == mcReserved_modtok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_mod, l, r, NULL);
+      return static_cast<decl_node> (makeBinary (decl_mod, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), static_cast<decl_node__opaque> (NULL)));
     }
   else if (op == mcReserved_intok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_in, l, r, NULL);
+      return static_cast<decl_node> (makeBinary (decl_in, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), static_cast<decl_node__opaque> (NULL)));
     }
   else if (op == mcReserved_dividetok)
     {
       /* avoid dangling else.  */
-      return makeBinary (decl_divide, l, r, NULL);
+      return static_cast<decl_node> (makeBinary (decl_divide, static_cast<decl_node__opaque> (l), static_cast<decl_node__opaque> (r), static_cast<decl_node__opaque> (NULL)));
     }
   else
     {
@@ -25645,17 +25781,17 @@ extern "C" decl_node decl_makeUnaryTok (mcReserved_toktype op, decl_node e)
 {
   if (op == mcReserved_nottok)
     {
-      return makeUnary (decl_not, e, booleanN);
+      return static_cast<decl_node> (makeUnary (decl_not, static_cast<decl_node__opaque> (e), booleanN));
     }
   else if (op == mcReserved_plustok)
     {
       /* avoid dangling else.  */
-      return makeUnary (decl_plus, e, NULL);
+      return static_cast<decl_node> (makeUnary (decl_plus, static_cast<decl_node__opaque> (e), static_cast<decl_node__opaque> (NULL)));
     }
   else if (op == mcReserved_minustok)
     {
       /* avoid dangling else.  */
-      return makeUnary (decl_neg, e, NULL);
+      return static_cast<decl_node> (makeUnary (decl_neg, static_cast<decl_node__opaque> (e), static_cast<decl_node__opaque> (NULL)));
     }
   else
     {
@@ -25675,8 +25811,8 @@ extern "C" decl_node decl_makeUnaryTok (mcReserved_toktype op, decl_node e)
 
 extern "C" decl_node decl_makeComponentRef (decl_node rec, decl_node field)
 {
-  decl_node n;
-  decl_node a;
+  decl_node__opaque n;
+  decl_node__opaque a;
 
   /* 
    n := getLastOp (rec) ;
@@ -25693,18 +25829,19 @@ extern "C" decl_node decl_makeComponentRef (decl_node rec, decl_node field)
       RETURN doMakeComponentRef (rec, field)
    END
   */
-  if (isDeref (rec))
-    {
-      a = rec->unaryF.arg;
-      rec->kind = decl_pointerref;
-      rec->pointerrefF.ptr = a;
-      rec->pointerrefF.field = field;
-      rec->pointerrefF.resultType = decl_getType (field);
+  if (isDeref (static_cast<decl_node__opaque> (rec)))
+    {
+      a = static_cast<decl_node__opaque> (rec)->unaryF.arg;
+      static_cast<decl_node__opaque> (rec)->kind = decl_pointerref;
+      static_cast<decl_node__opaque> (rec)->pointerrefF.ptr = a;
+      static_cast<decl_node__opaque> (rec)->pointerrefF.field = static_cast<decl_node__opaque> (field);
+      static_cast<decl_node__opaque> (rec)->pointerrefF.resultType = static_cast<decl_node__opaque> (decl_getType (field));
+      initNodeOpaqueState (static_cast<decl_node__opaque> (rec));
       return rec;
     }
   else
     {
-      return doMakeComponentRef (rec, field);
+      return static_cast<decl_node> (doMakeComponentRef (static_cast<decl_node__opaque> (rec), static_cast<decl_node__opaque> (field)));
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -25718,13 +25855,14 @@ extern "C" decl_node decl_makeComponentRef (decl_node rec, decl_node field)
 
 extern "C" decl_node decl_makePointerRef (decl_node ptr, decl_node field)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_pointerref);
-  n->pointerrefF.ptr = ptr;
-  n->pointerrefF.field = field;
-  n->pointerrefF.resultType = decl_getType (field);
-  return n;
+  n->pointerrefF.ptr = static_cast<decl_node__opaque> (ptr);
+  n->pointerrefF.field = static_cast<decl_node__opaque> (field);
+  n->pointerrefF.resultType = static_cast<decl_node__opaque> (decl_getType (field));
+  initNodeOpaqueState (n);
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25737,7 +25875,7 @@ extern "C" decl_node decl_makePointerRef (decl_node ptr, decl_node field)
 extern "C" bool decl_isPointerRef (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_pointerref;
+  return static_cast<decl_node__opaque> (n)->kind == decl_pointerref;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25749,11 +25887,11 @@ extern "C" bool decl_isPointerRef (decl_node n)
 
 extern "C" decl_node decl_makeDeRef (decl_node n)
 {
-  decl_node t;
+  decl_node__opaque t;
 
-  t = decl_skipType (decl_getType (n));
-  mcDebug_assert (decl_isPointer (t));
-  return makeUnary (decl_deref, n, decl_getType (t));
+  t = static_cast<decl_node__opaque> (decl_skipType (decl_getType (n)));
+  mcDebug_assert (decl_isPointer (static_cast<decl_node> (t)));
+  return static_cast<decl_node> (makeUnary (decl_deref, static_cast<decl_node__opaque> (n), static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (t)))));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25767,22 +25905,22 @@ extern "C" decl_node decl_makeDeRef (decl_node n)
 
 extern "C" decl_node decl_makeArrayRef (decl_node array, decl_node index)
 {
-  decl_node n;
-  decl_node t;
+  decl_node__opaque n;
+  decl_node__opaque t;
   unsigned int i;
   unsigned int j;
 
   n = newNode (decl_arrayref);
-  n->arrayrefF.array = array;
-  n->arrayrefF.index = index;
-  t = array;
-  j = expListLen (index);
+  n->arrayrefF.array = static_cast<decl_node__opaque> (array);
+  n->arrayrefF.index = static_cast<decl_node__opaque> (index);
+  t = static_cast<decl_node__opaque> (array);
+  j = expListLen (static_cast<decl_node__opaque> (index));
   i = 1;
-  t = decl_skipType (decl_getType (t));
+  t = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (t))));
   do {
-    if (decl_isArray (t))
+    if (decl_isArray (static_cast<decl_node> (t)))
       {
-        t = decl_skipType (decl_getType (t));
+        t = static_cast<decl_node__opaque> (decl_skipType (decl_getType (static_cast<decl_node> (t))));
       }
     else
       {
@@ -25791,7 +25929,7 @@ extern "C" decl_node decl_makeArrayRef (decl_node array, decl_node index)
     i += 1;
   } while (! (i > j));
   n->arrayrefF.resultType = t;
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25803,7 +25941,7 @@ extern "C" decl_node decl_makeArrayRef (decl_node array, decl_node index)
 
 extern "C" decl_node decl_getLastOp (decl_node n)
 {
-  return doGetLastOp (n, n);
+  return static_cast<decl_node> (doGetLastOp (static_cast<decl_node__opaque> (n), static_cast<decl_node__opaque> (n)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25815,7 +25953,7 @@ extern "C" decl_node decl_getLastOp (decl_node n)
 
 extern "C" decl_node decl_getCardinal (void)
 {
-  return cardinalN;
+  return static_cast<decl_node> (cardinalN);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25827,7 +25965,7 @@ extern "C" decl_node decl_getCardinal (void)
 
 extern "C" decl_node decl_makeLiteralInt (nameKey_Name n)
 {
-  decl_node m;
+  decl_node__opaque m;
   DynamicStrings_String s;
 
   m = newNode (decl_literal);
@@ -25842,7 +25980,7 @@ extern "C" decl_node decl_makeLiteralInt (nameKey_Name n)
       m->literalF.type = ztypeN;
     }
   s = DynamicStrings_KillString (s);
-  return m;
+  return static_cast<decl_node> (m);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25854,12 +25992,12 @@ extern "C" decl_node decl_makeLiteralInt (nameKey_Name n)
 
 extern "C" decl_node decl_makeLiteralReal (nameKey_Name n)
 {
-  decl_node m;
+  decl_node__opaque m;
 
   m = newNode (decl_literal);
   m->literalF.name = n;
   m->literalF.type = rtypeN;
-  return m;
+  return static_cast<decl_node> (m);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25871,7 +26009,7 @@ extern "C" decl_node decl_makeLiteralReal (nameKey_Name n)
 
 extern "C" decl_node decl_makeString (nameKey_Name n)
 {
-  decl_node m;
+  decl_node__opaque m;
 
   m = newNode (decl_string);
   m->stringF.name = n;
@@ -25885,9 +26023,9 @@ extern "C" decl_node decl_makeString (nameKey_Name n)
     }
   else
     {
-      m->stringF.cchar = NULL;
+      m->stringF.cchar = static_cast<DynamicStrings_String> (NULL);
     }
-  return m;
+  return static_cast<decl_node> (m);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25899,12 +26037,12 @@ extern "C" decl_node decl_makeString (nameKey_Name n)
 
 extern "C" decl_node decl_makeSetValue (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_setvalue);
   n->setvalueF.type = bitsetN;
   n->setvalueF.values = Indexing_InitIndex (1);
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25917,7 +26055,7 @@ extern "C" decl_node decl_makeSetValue (void)
 extern "C" bool decl_isSetValue (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_setvalue;
+  return static_cast<decl_node__opaque> (n)->kind == decl_setvalue;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -25931,7 +26069,7 @@ extern "C" bool decl_isSetValue (decl_node n)
 extern "C" decl_node decl_putSetValue (decl_node n, decl_node t)
 {
   mcDebug_assert (decl_isSetValue (n));
-  n->setvalueF.type = t;
+  static_cast<decl_node__opaque> (n)->setvalueF.type = static_cast<decl_node__opaque> (t);
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -25948,7 +26086,7 @@ extern "C" decl_node decl_putSetValue (decl_node n, decl_node t)
 extern "C" decl_node decl_includeSetValue (decl_node n, decl_node l, decl_node h)
 {
   mcDebug_assert (decl_isSetValue (n));
-  Indexing_IncludeIndiceIntoIndex (n->setvalueF.values, reinterpret_cast<void *> (l));
+  Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->setvalueF.values, reinterpret_cast<void *> (l));
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -25963,27 +26101,27 @@ extern "C" decl_node decl_getBuiltinConst (nameKey_Name n)
 {
   if (n == (nameKey_makeKey ((const char *) "BITS_PER_UNIT", 13)))
     {
-      return bitsperunitN;
+      return static_cast<decl_node> (bitsperunitN);
     }
   else if (n == (nameKey_makeKey ((const char *) "BITS_PER_WORD", 13)))
     {
       /* avoid dangling else.  */
-      return bitsperwordN;
+      return static_cast<decl_node> (bitsperwordN);
     }
   else if (n == (nameKey_makeKey ((const char *) "BITS_PER_CHAR", 13)))
     {
       /* avoid dangling else.  */
-      return bitspercharN;
+      return static_cast<decl_node> (bitspercharN);
     }
   else if (n == (nameKey_makeKey ((const char *) "UNITS_PER_WORD", 14)))
     {
       /* avoid dangling else.  */
-      return unitsperwordN;
+      return static_cast<decl_node> (unitsperwordN);
     }
   else
     {
       /* avoid dangling else.  */
-      return NULL;
+      return static_cast<decl_node> (NULL);
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -25996,11 +26134,11 @@ extern "C" decl_node decl_getBuiltinConst (nameKey_Name n)
 
 extern "C" decl_node decl_makeExpList (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_explist);
   n->explistF.exp = Indexing_InitIndex (1);
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26013,7 +26151,7 @@ extern "C" decl_node decl_makeExpList (void)
 extern "C" bool decl_isExpList (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_explist;
+  return static_cast<decl_node__opaque> (n)->kind == decl_explist;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26027,7 +26165,7 @@ extern "C" void decl_putExpList (decl_node n, decl_node e)
 {
   mcDebug_assert (n != NULL);
   mcDebug_assert (decl_isExpList (n));
-  Indexing_PutIndice (n->explistF.exp, (Indexing_HighIndice (n->explistF.exp))+1, reinterpret_cast<void *> (e));
+  Indexing_PutIndice (static_cast<decl_node__opaque> (n)->explistF.exp, (Indexing_HighIndice (static_cast<decl_node__opaque> (n)->explistF.exp))+1, reinterpret_cast<void *> (e));
 }
 
 
@@ -26043,7 +26181,7 @@ extern "C" decl_node decl_makeConstExp (void)
     }
   else
     {
-      return doMakeConstExp ();
+      return static_cast<decl_node> (doMakeConstExp ());
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -26056,24 +26194,24 @@ extern "C" decl_node decl_makeConstExp (void)
 
 extern "C" decl_node decl_getNextConstExp (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
-  mcDebug_assert (((decl_isDef (currentModule)) || (decl_isImp (currentModule))) || (decl_isModule (currentModule)));
-  if (decl_isDef (currentModule))
+  mcDebug_assert (((decl_isDef (static_cast<decl_node> (currentModule))) || (decl_isImp (static_cast<decl_node> (currentModule)))) || (decl_isModule (static_cast<decl_node> (currentModule))));
+  if (decl_isDef (static_cast<decl_node> (currentModule)))
     {
-      return getNextFixup (&currentModule->defF.constFixup);
+      return static_cast<decl_node> (getNextFixup (&currentModule->defF.constFixup));
     }
-  else if (decl_isImp (currentModule))
+  else if (decl_isImp (static_cast<decl_node> (currentModule)))
     {
       /* avoid dangling else.  */
-      return getNextFixup (&currentModule->impF.constFixup);
+      return static_cast<decl_node> (getNextFixup (&currentModule->impF.constFixup));
     }
-  else if (decl_isModule (currentModule))
+  else if (decl_isModule (static_cast<decl_node> (currentModule)))
     {
       /* avoid dangling else.  */
-      return getNextFixup (&currentModule->moduleF.constFixup);
+      return static_cast<decl_node> (getNextFixup (&currentModule->moduleF.constFixup));
     }
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26085,18 +26223,18 @@ extern "C" decl_node decl_getNextConstExp (void)
 
 extern "C" void decl_setConstExpComplete (decl_node n)
 {
-  switch (n->kind)
+  switch (static_cast<decl_node__opaque> (n)->kind)
     {
       case decl_def:
-        n->defF.constsComplete = true;
+        static_cast<decl_node__opaque> (n)->defF.constsComplete = true;
         break;
 
       case decl_imp:
-        n->impF.constsComplete = true;
+        static_cast<decl_node__opaque> (n)->impF.constsComplete = true;
         break;
 
       case decl_module:
-        n->moduleF.constsComplete = true;
+        static_cast<decl_node__opaque> (n)->moduleF.constsComplete = true;
         break;
 
 
@@ -26113,8 +26251,8 @@ extern "C" void decl_setConstExpComplete (decl_node n)
 
 extern "C" decl_node decl_fixupConstExp (decl_node c, decl_node e)
 {
-  mcDebug_assert (isConstExp (c));
-  c->unaryF.arg = e;
+  mcDebug_assert (isConstExp (static_cast<decl_node__opaque> (c)));
+  static_cast<decl_node__opaque> (c)->unaryF.arg = static_cast<decl_node__opaque> (e);
   return c;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -26131,17 +26269,17 @@ extern "C" void decl_resetConstExpPos (decl_node n)
   mcDebug_assert (((decl_isDef (n)) || (decl_isImp (n))) || (decl_isModule (n)));
   if (decl_isDef (n))
     {
-      n->defF.constFixup.count = 0;
+      static_cast<decl_node__opaque> (n)->defF.constFixup.count = 0;
     }
   else if (decl_isImp (n))
     {
       /* avoid dangling else.  */
-      n->impF.constFixup.count = 0;
+      static_cast<decl_node__opaque> (n)->impF.constFixup.count = 0;
     }
   else if (decl_isModule (n))
     {
       /* avoid dangling else.  */
-      n->moduleF.constFixup.count = 0;
+      static_cast<decl_node__opaque> (n)->moduleF.constFixup.count = 0;
     }
 }
 
@@ -26152,24 +26290,25 @@ extern "C" void decl_resetConstExpPos (decl_node n)
 
 extern "C" decl_node decl_makeFuncCall (decl_node c, decl_node n)
 {
-  decl_node f;
+  decl_node__opaque f;
 
   mcDebug_assert ((n == NULL) || (decl_isExpList (n)));
   if (((c == haltN) && ((decl_getMainModule ()) != (decl_lookupDef (nameKey_makeKey ((const char *) "M2RTS", 5))))) && ((decl_getMainModule ()) != (decl_lookupImp (nameKey_makeKey ((const char *) "M2RTS", 5)))))
     {
       decl_addImportedModule (decl_getMainModule (), decl_lookupDef (nameKey_makeKey ((const char *) "M2RTS", 5)), false);
     }
-  f = checkIntrinsic (c, n);
-  checkCHeaders (c);
+  f = checkIntrinsic (static_cast<decl_node__opaque> (c), static_cast<decl_node__opaque> (n));
+  checkCHeaders (static_cast<decl_node__opaque> (c));
   if (f == NULL)
     {
       f = newNode (decl_funccall);
-      f->funccallF.function = c;
-      f->funccallF.args = n;
-      f->funccallF.type = NULL;
+      f->funccallF.function = static_cast<decl_node__opaque> (c);
+      f->funccallF.args = static_cast<decl_node__opaque> (n);
+      f->funccallF.type = static_cast<decl_node__opaque> (decl_getType (c));
       initPair (&f->funccallF.funccallComment);
+      initNodeOpaqueState (f);
     }
-  return f;
+  return static_cast<decl_node> (f);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26181,11 +26320,11 @@ extern "C" decl_node decl_makeFuncCall (decl_node c, decl_node n)
 
 extern "C" decl_node decl_makeStatementSequence (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_stmtseq);
   n->stmtF.statements = Indexing_InitIndex (1);
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26197,7 +26336,7 @@ extern "C" decl_node decl_makeStatementSequence (void)
 
 extern "C" bool decl_isStatementSequence (decl_node n)
 {
-  return n->kind == decl_stmtseq;
+  return static_cast<decl_node__opaque> (n)->kind == decl_stmtseq;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26212,11 +26351,11 @@ extern "C" void decl_addStatement (decl_node s, decl_node n)
   if (n != NULL)
     {
       mcDebug_assert (decl_isStatementSequence (s));
-      Indexing_PutIndice (s->stmtF.statements, (Indexing_HighIndice (s->stmtF.statements))+1, reinterpret_cast<void *> (n));
-      if ((isIntrinsic (n)) && n->intrinsicF.postUnreachable)
+      Indexing_PutIndice (static_cast<decl_node__opaque> (s)->stmtF.statements, (Indexing_HighIndice (static_cast<decl_node__opaque> (s)->stmtF.statements))+1, reinterpret_cast<void *> (n));
+      if ((isIntrinsic (static_cast<decl_node__opaque> (n))) && static_cast<decl_node__opaque> (n)->intrinsicF.postUnreachable)
         {
-          n->intrinsicF.postUnreachable = false;
-          decl_addStatement (s, makeIntrinsicProc (decl_unreachable, 0, NULL));
+          static_cast<decl_node__opaque> (n)->intrinsicF.postUnreachable = false;
+          decl_addStatement (s, static_cast<decl_node> (makeIntrinsicProc (decl_unreachable, 0, static_cast<decl_node__opaque> (NULL))));
         }
     }
 }
@@ -26235,7 +26374,7 @@ extern "C" void decl_addCommentBody (decl_node n)
       b = mcLexBuf_getBodyComment ();
       if (b != NULL)
         {
-          addGenericBody (n, decl_makeCommentS (b));
+          addGenericBody (static_cast<decl_node__opaque> (n), static_cast<decl_node__opaque> (decl_makeCommentS (b)));
         }
     }
 }
@@ -26254,7 +26393,7 @@ extern "C" void decl_addCommentAfter (decl_node n)
       a = mcLexBuf_getAfterComment ();
       if (a != NULL)
         {
-          addGenericAfter (n, decl_makeCommentS (a));
+          addGenericAfter (static_cast<decl_node__opaque> (n), static_cast<decl_node__opaque> (decl_makeCommentS (a)));
         }
     }
 }
@@ -26267,8 +26406,8 @@ extern "C" void decl_addCommentAfter (decl_node n)
 extern "C" void decl_addIfComments (decl_node n, decl_node body, decl_node after)
 {
   mcDebug_assert (decl_isIf (n));
-  n->ifF.ifComment.after = after;
-  n->ifF.ifComment.body = body;
+  static_cast<decl_node__opaque> (n)->ifF.ifComment.after = static_cast<decl_node__opaque> (after);
+  static_cast<decl_node__opaque> (n)->ifF.ifComment.body = static_cast<decl_node__opaque> (body);
 }
 
 
@@ -26281,13 +26420,13 @@ extern "C" void decl_addElseComments (decl_node n, decl_node body, decl_node aft
   mcDebug_assert ((decl_isIf (n)) || (decl_isElsif (n)));
   if (decl_isIf (n))
     {
-      n->ifF.elseComment.after = after;
-      n->ifF.elseComment.body = body;
+      static_cast<decl_node__opaque> (n)->ifF.elseComment.after = static_cast<decl_node__opaque> (after);
+      static_cast<decl_node__opaque> (n)->ifF.elseComment.body = static_cast<decl_node__opaque> (body);
     }
   else
     {
-      n->elsifF.elseComment.after = after;
-      n->elsifF.elseComment.body = body;
+      static_cast<decl_node__opaque> (n)->elsifF.elseComment.after = static_cast<decl_node__opaque> (after);
+      static_cast<decl_node__opaque> (n)->elsifF.elseComment.body = static_cast<decl_node__opaque> (body);
     }
 }
 
@@ -26299,8 +26438,8 @@ extern "C" void decl_addElseComments (decl_node n, decl_node body, decl_node aft
 extern "C" void decl_addIfEndComments (decl_node n, decl_node body, decl_node after)
 {
   mcDebug_assert (decl_isIf (n));
-  n->ifF.endComment.after = after;
-  n->ifF.endComment.body = body;
+  static_cast<decl_node__opaque> (n)->ifF.endComment.after = static_cast<decl_node__opaque> (after);
+  static_cast<decl_node__opaque> (n)->ifF.endComment.body = static_cast<decl_node__opaque> (body);
 }
 
 
@@ -26310,21 +26449,21 @@ extern "C" void decl_addIfEndComments (decl_node n, decl_node body, decl_node af
 
 extern "C" decl_node decl_makeReturn (void)
 {
-  decl_node type;
-  decl_node n;
+  decl_node__opaque type;
+  decl_node__opaque n;
 
   n = newNode (decl_return);
-  n->returnF.exp = NULL;
+  n->returnF.exp = static_cast<decl_node__opaque> (NULL);
   if (decl_isProcedure (decl_getDeclScope ()))
     {
-      n->returnF.scope = decl_getDeclScope ();
+      n->returnF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
     }
   else
     {
-      n->returnF.scope = NULL;
+      n->returnF.scope = static_cast<decl_node__opaque> (NULL);
     }
   initPair (&n->returnF.returnComment);
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26337,7 +26476,7 @@ extern "C" decl_node decl_makeReturn (void)
 extern "C" bool decl_isReturn (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_return;
+  return static_cast<decl_node__opaque> (n)->kind == decl_return;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26350,7 +26489,7 @@ extern "C" bool decl_isReturn (decl_node n)
 extern "C" void decl_putReturn (decl_node n, decl_node e)
 {
   mcDebug_assert (decl_isReturn (n));
-  n->returnF.exp = e;
+  static_cast<decl_node__opaque> (n)->returnF.exp = static_cast<decl_node__opaque> (e);
 }
 
 
@@ -26360,14 +26499,14 @@ extern "C" void decl_putReturn (decl_node n, decl_node e)
 
 extern "C" decl_node decl_makeWhile (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_while);
-  n->whileF.expr = NULL;
-  n->whileF.statements = NULL;
+  n->whileF.expr = static_cast<decl_node__opaque> (NULL);
+  n->whileF.statements = static_cast<decl_node__opaque> (NULL);
   initPair (&n->whileF.doComment);
   initPair (&n->whileF.endComment);
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26381,8 +26520,8 @@ extern "C" decl_node decl_makeWhile (void)
 extern "C" void decl_putWhile (decl_node n, decl_node e, decl_node s)
 {
   mcDebug_assert (decl_isWhile (n));
-  n->whileF.expr = e;
-  n->whileF.statements = s;
+  static_cast<decl_node__opaque> (n)->whileF.expr = static_cast<decl_node__opaque> (e);
+  static_cast<decl_node__opaque> (n)->whileF.statements = static_cast<decl_node__opaque> (s);
 }
 
 
@@ -26392,7 +26531,7 @@ extern "C" void decl_putWhile (decl_node n, decl_node e, decl_node s)
 
 extern "C" bool decl_isWhile (decl_node n)
 {
-  return n->kind == decl_while;
+  return static_cast<decl_node__opaque> (n)->kind == decl_while;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26405,8 +26544,8 @@ extern "C" bool decl_isWhile (decl_node n)
 extern "C" void decl_addWhileDoComment (decl_node w, decl_node body, decl_node after)
 {
   mcDebug_assert (decl_isWhile (w));
-  w->whileF.doComment.after = after;
-  w->whileF.doComment.body = body;
+  static_cast<decl_node__opaque> (w)->whileF.doComment.after = static_cast<decl_node__opaque> (after);
+  static_cast<decl_node__opaque> (w)->whileF.doComment.body = static_cast<decl_node__opaque> (body);
 }
 
 
@@ -26417,8 +26556,8 @@ extern "C" void decl_addWhileDoComment (decl_node w, decl_node body, decl_node a
 extern "C" void decl_addWhileEndComment (decl_node w, decl_node body, decl_node after)
 {
   mcDebug_assert (decl_isWhile (w));
-  w->whileF.endComment.after = after;
-  w->whileF.endComment.body = body;
+  static_cast<decl_node__opaque> (w)->whileF.endComment.after = static_cast<decl_node__opaque> (after);
+  static_cast<decl_node__opaque> (w)->whileF.endComment.body = static_cast<decl_node__opaque> (body);
 }
 
 
@@ -26429,13 +26568,13 @@ extern "C" void decl_addWhileEndComment (decl_node w, decl_node body, decl_node
 
 extern "C" decl_node decl_makeAssignment (decl_node d, decl_node e)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_assignment);
-  n->assignmentF.des = d;
-  n->assignmentF.expr = e;
+  n->assignmentF.des = static_cast<decl_node__opaque> (d);
+  n->assignmentF.expr = static_cast<decl_node__opaque> (e);
   initPair (&n->assignmentF.assignComment);
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26450,18 +26589,18 @@ extern "C" decl_node decl_makeAssignment (decl_node d, decl_node e)
 extern "C" void decl_putBegin (decl_node b, decl_node s)
 {
   mcDebug_assert (((decl_isImp (b)) || (decl_isProcedure (b))) || (decl_isModule (b)));
-  switch (b->kind)
+  switch (static_cast<decl_node__opaque> (b)->kind)
     {
       case decl_imp:
-        b->impF.beginStatements = s;
+        static_cast<decl_node__opaque> (b)->impF.beginStatements = static_cast<decl_node__opaque> (s);
         break;
 
       case decl_module:
-        b->moduleF.beginStatements = s;
+        static_cast<decl_node__opaque> (b)->moduleF.beginStatements = static_cast<decl_node__opaque> (s);
         break;
 
       case decl_procedure:
-        b->procedureF.beginStatements = s;
+        static_cast<decl_node__opaque> (b)->procedureF.beginStatements = static_cast<decl_node__opaque> (s);
         break;
 
 
@@ -26481,14 +26620,14 @@ extern "C" void decl_putBegin (decl_node b, decl_node s)
 extern "C" void decl_putFinally (decl_node b, decl_node s)
 {
   mcDebug_assert (((decl_isImp (b)) || (decl_isProcedure (b))) || (decl_isModule (b)));
-  switch (b->kind)
+  switch (static_cast<decl_node__opaque> (b)->kind)
     {
       case decl_imp:
-        b->impF.finallyStatements = s;
+        static_cast<decl_node__opaque> (b)->impF.finallyStatements = static_cast<decl_node__opaque> (s);
         break;
 
       case decl_module:
-        b->moduleF.finallyStatements = s;
+        static_cast<decl_node__opaque> (b)->moduleF.finallyStatements = static_cast<decl_node__opaque> (s);
         break;
 
 
@@ -26505,13 +26644,13 @@ extern "C" void decl_putFinally (decl_node b, decl_node s)
 
 extern "C" decl_node decl_makeExit (decl_node l, unsigned int n)
 {
-  decl_node e;
+  decl_node__opaque e;
 
   mcDebug_assert (decl_isLoop (l));
   e = newNode (decl_exit);
-  e->exitF.loop = l;
-  l->loopF.labelno = n;
-  return e;
+  e->exitF.loop = static_cast<decl_node__opaque> (l);
+  static_cast<decl_node__opaque> (l)->loopF.labelno = n;
+  return static_cast<decl_node> (e);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26524,7 +26663,7 @@ extern "C" decl_node decl_makeExit (decl_node l, unsigned int n)
 extern "C" bool decl_isExit (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_exit;
+  return static_cast<decl_node__opaque> (n)->kind == decl_exit;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26536,12 +26675,12 @@ extern "C" bool decl_isExit (decl_node n)
 
 extern "C" decl_node decl_makeLoop (void)
 {
-  decl_node l;
+  decl_node__opaque l;
 
   l = newNode (decl_loop);
-  l->loopF.statements = NULL;
+  l->loopF.statements = static_cast<decl_node__opaque> (NULL);
   l->loopF.labelno = 0;
-  return l;
+  return static_cast<decl_node> (l);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26554,7 +26693,7 @@ extern "C" decl_node decl_makeLoop (void)
 extern "C" bool decl_isLoop (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_loop;
+  return static_cast<decl_node__opaque> (n)->kind == decl_loop;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26567,7 +26706,7 @@ extern "C" bool decl_isLoop (decl_node n)
 extern "C" void decl_putLoop (decl_node l, decl_node s)
 {
   mcDebug_assert (decl_isLoop (l));
-  l->loopF.statements = s;
+  static_cast<decl_node__opaque> (l)->loopF.statements = static_cast<decl_node__opaque> (s);
 }
 
 
@@ -26600,17 +26739,17 @@ extern "C" decl_node decl_makeComment (const char *a_, unsigned int _a_high)
 
 extern "C" decl_node decl_makeCommentS (mcComment_commentDesc c)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   if (c == NULL)
     {
-      return NULL;
+      return static_cast<decl_node> (NULL);
     }
   else
     {
       n = newNode (decl_comment);
       n->commentF.content = c;
-      return n;
+      return static_cast<decl_node> (n);
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -26625,17 +26764,17 @@ extern "C" decl_node decl_makeCommentS (mcComment_commentDesc c)
 
 extern "C" decl_node decl_makeIf (decl_node e, decl_node s)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_if);
-  n->ifF.expr = e;
-  n->ifF.then = s;
-  n->ifF.else_ = NULL;
-  n->ifF.elsif = NULL;
+  n->ifF.expr = static_cast<decl_node__opaque> (e);
+  n->ifF.then = static_cast<decl_node__opaque> (s);
+  n->ifF.else_ = static_cast<decl_node__opaque> (NULL);
+  n->ifF.elsif = static_cast<decl_node__opaque> (NULL);
   initPair (&n->ifF.ifComment);
   initPair (&n->ifF.elseComment);
   initPair (&n->ifF.endComment);
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26647,7 +26786,7 @@ extern "C" decl_node decl_makeIf (decl_node e, decl_node s)
 
 extern "C" bool decl_isIf (decl_node n)
 {
-  return n->kind == decl_if;
+  return static_cast<decl_node__opaque> (n)->kind == decl_if;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26661,26 +26800,26 @@ extern "C" bool decl_isIf (decl_node n)
 
 extern "C" decl_node decl_makeElsif (decl_node i, decl_node e, decl_node s)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_elsif);
-  n->elsifF.expr = e;
-  n->elsifF.then = s;
-  n->elsifF.elsif = NULL;
-  n->elsifF.else_ = NULL;
+  n->elsifF.expr = static_cast<decl_node__opaque> (e);
+  n->elsifF.then = static_cast<decl_node__opaque> (s);
+  n->elsifF.elsif = static_cast<decl_node__opaque> (NULL);
+  n->elsifF.else_ = static_cast<decl_node__opaque> (NULL);
   initPair (&n->elsifF.elseComment);
   mcDebug_assert ((decl_isIf (i)) || (decl_isElsif (i)));
   if (decl_isIf (i))
     {
-      i->ifF.elsif = n;
-      mcDebug_assert (i->ifF.else_ == NULL);
+      static_cast<decl_node__opaque> (i)->ifF.elsif = n;
+      mcDebug_assert (static_cast<decl_node__opaque> (i)->ifF.else_ == NULL);
     }
   else
     {
-      i->elsifF.elsif = n;
-      mcDebug_assert (i->elsifF.else_ == NULL);
+      static_cast<decl_node__opaque> (i)->elsifF.elsif = n;
+      mcDebug_assert (static_cast<decl_node__opaque> (i)->elsifF.else_ == NULL);
     }
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26692,7 +26831,7 @@ extern "C" decl_node decl_makeElsif (decl_node i, decl_node e, decl_node s)
 
 extern "C" bool decl_isElsif (decl_node n)
 {
-  return n->kind == decl_elsif;
+  return static_cast<decl_node__opaque> (n)->kind == decl_elsif;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26708,15 +26847,15 @@ extern "C" void decl_putElse (decl_node i, decl_node s)
   mcDebug_assert ((decl_isIf (i)) || (decl_isElsif (i)));
   if (decl_isIf (i))
     {
-      mcDebug_assert (i->ifF.elsif == NULL);
-      mcDebug_assert (i->ifF.else_ == NULL);
-      i->ifF.else_ = s;
+      mcDebug_assert (static_cast<decl_node__opaque> (i)->ifF.elsif == NULL);
+      mcDebug_assert (static_cast<decl_node__opaque> (i)->ifF.else_ == NULL);
+      static_cast<decl_node__opaque> (i)->ifF.else_ = static_cast<decl_node__opaque> (s);
     }
   else
     {
-      mcDebug_assert (i->elsifF.elsif == NULL);
-      mcDebug_assert (i->elsifF.else_ == NULL);
-      i->elsifF.else_ = s;
+      mcDebug_assert (static_cast<decl_node__opaque> (i)->elsifF.elsif == NULL);
+      mcDebug_assert (static_cast<decl_node__opaque> (i)->elsifF.else_ == NULL);
+      static_cast<decl_node__opaque> (i)->elsifF.else_ = static_cast<decl_node__opaque> (s);
     }
 }
 
@@ -26727,15 +26866,15 @@ extern "C" void decl_putElse (decl_node i, decl_node s)
 
 extern "C" decl_node decl_makeFor (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_for);
-  n->forF.des = NULL;
-  n->forF.start = NULL;
-  n->forF.end = NULL;
-  n->forF.increment = NULL;
-  n->forF.statements = NULL;
-  return n;
+  n->forF.des = static_cast<decl_node__opaque> (NULL);
+  n->forF.start = static_cast<decl_node__opaque> (NULL);
+  n->forF.end = static_cast<decl_node__opaque> (NULL);
+  n->forF.increment = static_cast<decl_node__opaque> (NULL);
+  n->forF.statements = static_cast<decl_node__opaque> (NULL);
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26748,7 +26887,7 @@ extern "C" decl_node decl_makeFor (void)
 extern "C" bool decl_isFor (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_for;
+  return static_cast<decl_node__opaque> (n)->kind == decl_for;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26766,11 +26905,11 @@ extern "C" bool decl_isFor (decl_node n)
 extern "C" void decl_putFor (decl_node f, decl_node i, decl_node s, decl_node e, decl_node b, decl_node sq)
 {
   mcDebug_assert (decl_isFor (f));
-  f->forF.des = i;
-  f->forF.start = s;
-  f->forF.end = e;
-  f->forF.increment = b;
-  f->forF.statements = sq;
+  static_cast<decl_node__opaque> (f)->forF.des = static_cast<decl_node__opaque> (i);
+  static_cast<decl_node__opaque> (f)->forF.start = static_cast<decl_node__opaque> (s);
+  static_cast<decl_node__opaque> (f)->forF.end = static_cast<decl_node__opaque> (e);
+  static_cast<decl_node__opaque> (f)->forF.increment = static_cast<decl_node__opaque> (b);
+  static_cast<decl_node__opaque> (f)->forF.statements = static_cast<decl_node__opaque> (sq);
 }
 
 
@@ -26780,14 +26919,14 @@ extern "C" void decl_putFor (decl_node f, decl_node i, decl_node s, decl_node e,
 
 extern "C" decl_node decl_makeRepeat (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_repeat);
-  n->repeatF.expr = NULL;
-  n->repeatF.statements = NULL;
+  n->repeatF.expr = static_cast<decl_node__opaque> (NULL);
+  n->repeatF.statements = static_cast<decl_node__opaque> (NULL);
   initPair (&n->repeatF.repeatComment);
   initPair (&n->repeatF.untilComment);
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26800,7 +26939,7 @@ extern "C" decl_node decl_makeRepeat (void)
 extern "C" bool decl_isRepeat (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_repeat;
+  return static_cast<decl_node__opaque> (n)->kind == decl_repeat;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26813,8 +26952,8 @@ extern "C" bool decl_isRepeat (decl_node n)
 
 extern "C" void decl_putRepeat (decl_node n, decl_node s, decl_node e)
 {
-  n->repeatF.expr = e;
-  n->repeatF.statements = s;
+  static_cast<decl_node__opaque> (n)->repeatF.expr = static_cast<decl_node__opaque> (e);
+  static_cast<decl_node__opaque> (n)->repeatF.statements = static_cast<decl_node__opaque> (s);
 }
 
 
@@ -26825,8 +26964,8 @@ extern "C" void decl_putRepeat (decl_node n, decl_node s, decl_node e)
 extern "C" void decl_addRepeatComment (decl_node r, decl_node body, decl_node after)
 {
   mcDebug_assert (decl_isRepeat (r));
-  r->repeatF.repeatComment.after = after;
-  r->repeatF.repeatComment.body = body;
+  static_cast<decl_node__opaque> (r)->repeatF.repeatComment.after = static_cast<decl_node__opaque> (after);
+  static_cast<decl_node__opaque> (r)->repeatF.repeatComment.body = static_cast<decl_node__opaque> (body);
 }
 
 
@@ -26837,8 +26976,8 @@ extern "C" void decl_addRepeatComment (decl_node r, decl_node body, decl_node af
 extern "C" void decl_addUntilComment (decl_node r, decl_node body, decl_node after)
 {
   mcDebug_assert (decl_isRepeat (r));
-  r->repeatF.untilComment.after = after;
-  r->repeatF.untilComment.body = body;
+  static_cast<decl_node__opaque> (r)->repeatF.untilComment.after = static_cast<decl_node__opaque> (after);
+  static_cast<decl_node__opaque> (r)->repeatF.untilComment.body = static_cast<decl_node__opaque> (body);
 }
 
 
@@ -26848,13 +26987,13 @@ extern "C" void decl_addUntilComment (decl_node r, decl_node body, decl_node aft
 
 extern "C" decl_node decl_makeCase (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_case);
-  n->caseF.expression = NULL;
+  n->caseF.expression = static_cast<decl_node__opaque> (NULL);
   n->caseF.caseLabelList = Indexing_InitIndex (1);
-  n->caseF.else_ = NULL;
-  return n;
+  n->caseF.else_ = static_cast<decl_node__opaque> (NULL);
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26867,7 +27006,7 @@ extern "C" decl_node decl_makeCase (void)
 extern "C" bool decl_isCase (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_case;
+  return static_cast<decl_node__opaque> (n)->kind == decl_case;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26881,7 +27020,7 @@ extern "C" bool decl_isCase (decl_node n)
 extern "C" decl_node decl_putCaseExpression (decl_node n, decl_node e)
 {
   mcDebug_assert (decl_isCase (n));
-  n->caseF.expression = e;
+  static_cast<decl_node__opaque> (n)->caseF.expression = static_cast<decl_node__opaque> (e);
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -26896,7 +27035,7 @@ extern "C" decl_node decl_putCaseExpression (decl_node n, decl_node e)
 extern "C" decl_node decl_putCaseElse (decl_node n, decl_node e)
 {
   mcDebug_assert (decl_isCase (n));
-  n->caseF.else_ = e;
+  static_cast<decl_node__opaque> (n)->caseF.else_ = static_cast<decl_node__opaque> (e);
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -26913,7 +27052,7 @@ extern "C" decl_node decl_putCaseStatement (decl_node n, decl_node l, decl_node
 {
   mcDebug_assert (decl_isCase (n));
   mcDebug_assert (decl_isCaseList (l));
-  Indexing_IncludeIndiceIntoIndex (n->caseF.caseLabelList, reinterpret_cast<void *> (decl_makeCaseLabelList (l, s)));
+  Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->caseF.caseLabelList, reinterpret_cast<void *> (decl_makeCaseLabelList (l, s)));
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -26926,12 +27065,12 @@ extern "C" decl_node decl_putCaseStatement (decl_node n, decl_node l, decl_node
 
 extern "C" decl_node decl_makeCaseLabelList (decl_node l, decl_node s)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_caselabellist);
-  n->caselabellistF.caseList = l;
-  n->caselabellistF.statements = s;
-  return n;
+  n->caselabellistF.caseList = static_cast<decl_node__opaque> (l);
+  n->caselabellistF.statements = static_cast<decl_node__opaque> (s);
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26944,7 +27083,7 @@ extern "C" decl_node decl_makeCaseLabelList (decl_node l, decl_node s)
 extern "C" bool decl_isCaseLabelList (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_caselabellist;
+  return static_cast<decl_node__opaque> (n)->kind == decl_caselabellist;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26956,11 +27095,11 @@ extern "C" bool decl_isCaseLabelList (decl_node n)
 
 extern "C" decl_node decl_makeCaseList (void)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_caselist);
   n->caselistF.rangePairs = Indexing_InitIndex (1);
-  return n;
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26973,7 +27112,7 @@ extern "C" decl_node decl_makeCaseList (void)
 extern "C" bool decl_isCaseList (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_caselist;
+  return static_cast<decl_node__opaque> (n)->kind == decl_caselist;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -26986,7 +27125,7 @@ extern "C" bool decl_isCaseList (decl_node n)
 extern "C" decl_node decl_putCaseRange (decl_node n, decl_node lo, decl_node hi)
 {
   mcDebug_assert (decl_isCaseList (n));
-  Indexing_IncludeIndiceIntoIndex (n->caselistF.rangePairs, reinterpret_cast<void *> (decl_makeRange (lo, hi)));
+  Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->caselistF.rangePairs, reinterpret_cast<void *> (decl_makeRange (lo, hi)));
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -26999,12 +27138,12 @@ extern "C" decl_node decl_putCaseRange (decl_node n, decl_node lo, decl_node hi)
 
 extern "C" decl_node decl_makeRange (decl_node lo, decl_node hi)
 {
-  decl_node n;
+  decl_node__opaque n;
 
   n = newNode (decl_range);
-  n->rangeF.lo = lo;
-  n->rangeF.hi = hi;
-  return n;
+  n->rangeF.lo = static_cast<decl_node__opaque> (lo);
+  n->rangeF.hi = static_cast<decl_node__opaque> (hi);
+  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -27017,7 +27156,7 @@ extern "C" decl_node decl_makeRange (decl_node lo, decl_node hi)
 extern "C" bool decl_isRange (decl_node n)
 {
   mcDebug_assert (n != NULL);
-  return n->kind == decl_range;
+  return static_cast<decl_node__opaque> (n)->kind == decl_range;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -27031,12 +27170,12 @@ extern "C" void decl_setNoReturn (decl_node n, bool value)
 {
   mcDebug_assert (n != NULL);
   mcDebug_assert (decl_isProcedure (n));
-  if (n->procedureF.noreturnused && (n->procedureF.noreturn != value))
+  if (static_cast<decl_node__opaque> (n)->procedureF.noreturnused && (static_cast<decl_node__opaque> (n)->procedureF.noreturn != value))
     {
       mcMetaError_metaError1 ((const char *) "{%1DMad} definition module and implementation module have different <* noreturn *> attributes", 93, (const unsigned char *) &n, (sizeof (n)-1));
     }
-  n->procedureF.noreturn = value;
-  n->procedureF.noreturnused = true;
+  static_cast<decl_node__opaque> (n)->procedureF.noreturn = value;
+  static_cast<decl_node__opaque> (n)->procedureF.noreturnused = true;
 }
 
 
@@ -27050,11 +27189,11 @@ extern "C" decl_node decl_dupExpr (decl_node n)
 {
   if (n == NULL)
     {
-      return NULL;
+      return static_cast<decl_node> (NULL);
     }
   else
     {
-      return doDupExpr (n);
+      return static_cast<decl_node> (doDupExpr (static_cast<decl_node__opaque> (n)));
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -27108,15 +27247,15 @@ extern "C" void decl_out (void)
   switch (lang)
     {
       case decl_ansiC:
-        outC (p, decl_getMainModule ());
+        outC (p, static_cast<decl_node__opaque> (decl_getMainModule ()));
         break;
 
       case decl_ansiCP:
-        outC (p, decl_getMainModule ());
+        outC (p, static_cast<decl_node__opaque> (decl_getMainModule ()));
         break;
 
       case decl_pim4:
-        outM2 (p, decl_getMainModule ());
+        outM2 (p, static_cast<decl_node__opaque> (decl_getMainModule ()));
         break;
 
 
@@ -27127,11 +27266,11 @@ extern "C" void decl_out (void)
   closeOutput ();
 }
 
-extern "C" void _M2_decl_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_decl_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   init ();
 }
 
-extern "C" void _M2_decl_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_decl_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Gdecl.h b/gcc/m2/mc-boot/Gdecl.h
index 67cd5b2e4d2..a237a25a3f6 100644
--- a/gcc/m2/mc-boot/Gdecl.h
+++ b/gcc/m2/mc-boot/Gdecl.h
@@ -246,6 +246,19 @@ EXTERN bool decl_isTypeHidden (decl_node n);
 
 EXTERN bool decl_hasHidden (decl_node n);
 
+/*
+   putTypeOpaque - marks type, des, as being an opaque type.
+                   TYPE des ;
+*/
+
+EXTERN void decl_putTypeOpaque (decl_node des);
+
+/*
+   isTypeOpaque - returns TRUE if type, n, is an opaque type.
+*/
+
+EXTERN bool decl_isTypeOpaque (decl_node n);
+
 /*
    isVar - returns TRUE if node, n, is a type.
 */
diff --git a/gcc/m2/mc-boot/Gkeyc.cc b/gcc/m2/mc-boot/Gkeyc.cc
index 0deb633d6b4..4a15f7b7371 100644
--- a/gcc/m2/mc-boot/Gkeyc.cc
+++ b/gcc/m2/mc-boot/Gkeyc.cc
@@ -42,9 +42,9 @@ Boston, MA 02110-1301, USA.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _keyc_H
 #define _keyc_C
 
+#include "Gkeyc.h"
 #   include "GmcPretty.h"
 #   include "GStorage.h"
 #   include "GDynamicStrings.h"
@@ -1630,11 +1630,11 @@ extern "C" void keyc_cp (void)
     }
 }
 
-extern "C" void _M2_keyc_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_keyc_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   init ();
 }
 
-extern "C" void _M2_keyc_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_keyc_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Gldtoa.h b/gcc/m2/mc-boot/Gldtoa.h
index df1f791b3bb..c4b4d904fb0 100644
--- a/gcc/m2/mc-boot/Gldtoa.h
+++ b/gcc/m2/mc-boot/Gldtoa.h
@@ -68,7 +68,7 @@ EXTERN long double ldtoa_strtold (void * s, bool *error);
            sign       does the string have a sign?
 */
 
-EXTERN void * ldtoa_ldtoa (long double d, ldtoa_Mode mode, int ndigits, int *decpt, bool *sign);
+EXTERN void * ldtoa_ldtoa (long double d, int mode, int ndigits, int *decpt, bool *sign);
 #   ifdef __cplusplus
 }
 #   endif
diff --git a/gcc/m2/mc-boot/Glibc.h b/gcc/m2/mc-boot/Glibc.h
index 382b737e4b8..2f7fac46d77 100644
--- a/gcc/m2/mc-boot/Glibc.h
+++ b/gcc/m2/mc-boot/Glibc.h
@@ -70,7 +70,7 @@ struct libc_tm_r {
                    int tm_yday;
                    int tm_isdst;
                    long int tm_gmtoff;
-                   void *tm_zone;
+                   void * tm_zone;
                  };
 
 struct libc_timeb_r {
diff --git a/gcc/m2/mc-boot/Glists.cc b/gcc/m2/mc-boot/Glists.cc
index 4bfc310e8ce..dbbcd0eeb66 100644
--- a/gcc/m2/mc-boot/Glists.cc
+++ b/gcc/m2/mc-boot/Glists.cc
@@ -41,9 +41,9 @@ Boston, MA 02110-1301, USA.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _lists_H
 #define _lists_C
 
+#include "Glists.h"
 #   include "GStorage.h"
 
 typedef struct symbolKey_performOperation_p symbolKey_performOperation;
@@ -53,16 +53,13 @@ typedef struct lists__T1_r lists__T1;
 
 typedef struct lists__T2_a lists__T2;
 
-typedef lists__T1 *lists_list;
-
-typedef void (*symbolKey_performOperation_t) (void *);
-struct symbolKey_performOperation_p { symbolKey_performOperation_t proc; };
+typedef lists__T1 *lists_list__opaque;
 
 struct lists__T2_a { void * array[MaxnoOfelements-1+1]; };
 struct lists__T1_r {
                      unsigned int noOfelements;
                      lists__T2 elements;
-                     lists_list next;
+                     lists_list__opaque next;
                    };
 
 
@@ -140,14 +137,14 @@ extern "C" lists_list lists_duplicateList (lists_list l);
    removeItem - remove an element at index, i, from the list data type.
 */
 
-static void removeItem (lists_list p, lists_list l, unsigned int i);
+static void removeItem (lists_list__opaque p, lists_list__opaque l, unsigned int i);
 
 
 /*
    removeItem - remove an element at index, i, from the list data type.
 */
 
-static void removeItem (lists_list p, lists_list l, unsigned int i)
+static void removeItem (lists_list__opaque p, lists_list__opaque l, unsigned int i)
 {
   l->noOfelements -= 1;
   while (i <= l->noOfelements)
@@ -169,12 +166,12 @@ static void removeItem (lists_list p, lists_list l, unsigned int i)
 
 extern "C" lists_list lists_initList (void)
 {
-  lists_list l;
+  lists_list__opaque l;
 
   Storage_ALLOCATE ((void **) &l, sizeof (lists__T1));
   l->noOfelements = 0;
-  l->next = NULL;
-  return l;
+  l->next = static_cast<lists_list__opaque> (NULL);
+  return static_cast<lists_list> (l);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -188,9 +185,9 @@ extern "C" void lists_killList (lists_list *l)
 {
   if ((*l) != NULL)
     {
-      if ((*l)->next != NULL)
+      if (static_cast<lists_list__opaque> ((*l))->next != NULL)
         {
-          lists_killList (&(*l)->next);
+          lists_killList (reinterpret_cast<lists_list *> (&static_cast<lists_list__opaque> ((*l))->next));
         }
       Storage_DEALLOCATE ((void **) &(*l), sizeof (lists__T1));
     }
@@ -203,21 +200,21 @@ extern "C" void lists_killList (lists_list *l)
 
 extern "C" void lists_putItemIntoList (lists_list l, void * c)
 {
-  if (l->noOfelements < MaxnoOfelements)
+  if (static_cast<lists_list__opaque> (l)->noOfelements < MaxnoOfelements)
     {
-      l->noOfelements += 1;
-      l->elements.array[l->noOfelements-1] = c;
+      static_cast<lists_list__opaque> (l)->noOfelements += 1;
+      static_cast<lists_list__opaque> (l)->elements.array[static_cast<lists_list__opaque> (l)->noOfelements-1] = c;
     }
-  else if (l->next != NULL)
+  else if (static_cast<lists_list__opaque> (l)->next != NULL)
     {
       /* avoid dangling else.  */
-      lists_putItemIntoList (l->next, c);
+      lists_putItemIntoList (static_cast<lists_list> (static_cast<lists_list__opaque> (l)->next), c);
     }
   else
     {
       /* avoid dangling else.  */
-      l->next = lists_initList ();
-      lists_putItemIntoList (l->next, c);
+      static_cast<lists_list__opaque> (l)->next = static_cast<lists_list__opaque> (lists_initList ());
+      lists_putItemIntoList (static_cast<lists_list> (static_cast<lists_list__opaque> (l)->next), c);
     }
 }
 
@@ -230,17 +227,17 @@ extern "C" void * lists_getItemFromList (lists_list l, unsigned int n)
 {
   while (l != NULL)
     {
-      if (n <= l->noOfelements)
+      if (n <= static_cast<lists_list__opaque> (l)->noOfelements)
         {
-          return l->elements.array[n-1];
+          return static_cast<lists_list__opaque> (l)->elements.array[n-1];
         }
       else
         {
-          n -= l->noOfelements;
+          n -= static_cast<lists_list__opaque> (l)->noOfelements;
         }
-      l = l->next;
+      l = static_cast<lists_list> (static_cast<lists_list__opaque> (l)->next);
     }
-  return reinterpret_cast<void *> (0);
+  return static_cast<void *> (0);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -263,9 +260,9 @@ extern "C" unsigned int lists_getIndexOfList (lists_list l, void * c)
   else
     {
       i = 1;
-      while (i <= l->noOfelements)
+      while (i <= static_cast<lists_list__opaque> (l)->noOfelements)
         {
-          if (l->elements.array[i-1] == c)
+          if (static_cast<lists_list__opaque> (l)->elements.array[i-1] == c)
             {
               return i;
             }
@@ -274,7 +271,7 @@ extern "C" unsigned int lists_getIndexOfList (lists_list l, void * c)
               i += 1;
             }
         }
-      return l->noOfelements+(lists_getIndexOfList (l->next, c));
+      return static_cast<lists_list__opaque> (l)->noOfelements+(lists_getIndexOfList (static_cast<lists_list> (static_cast<lists_list__opaque> (l)->next), c));
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -297,8 +294,8 @@ extern "C" unsigned int lists_noOfItemsInList (lists_list l)
     {
       t = 0;
       do {
-        t += l->noOfelements;
-        l = l->next;
+        t += static_cast<lists_list__opaque> (l)->noOfelements;
+        l = static_cast<lists_list> (static_cast<lists_list__opaque> (l)->next);
       } while (! (l == NULL));
       return t;
     }
@@ -328,33 +325,33 @@ extern "C" void lists_includeItemIntoList (lists_list l, void * c)
 
 extern "C" void lists_removeItemFromList (lists_list l, void * c)
 {
-  lists_list p;
+  lists_list__opaque p;
   unsigned int i;
   bool found;
 
   if (l != NULL)
     {
       found = false;
-      p = NULL;
+      p = static_cast<lists_list__opaque> (NULL);
       do {
         i = 1;
-        while ((i <= l->noOfelements) && (l->elements.array[i-1] != c))
+        while ((i <= static_cast<lists_list__opaque> (l)->noOfelements) && (static_cast<lists_list__opaque> (l)->elements.array[i-1] != c))
           {
             i += 1;
           }
-        if ((i <= l->noOfelements) && (l->elements.array[i-1] == c))
+        if ((i <= static_cast<lists_list__opaque> (l)->noOfelements) && (static_cast<lists_list__opaque> (l)->elements.array[i-1] == c))
           {
             found = true;
           }
         else
           {
-            p = l;
-            l = l->next;
+            p = static_cast<lists_list__opaque> (l);
+            l = static_cast<lists_list> (static_cast<lists_list__opaque> (l)->next);
           }
       } while (! ((l == NULL) || found));
       if (found)
         {
-          removeItem (p, l, i);
+          removeItem (p, static_cast<lists_list__opaque> (l), i);
         }
     }
 }
@@ -370,9 +367,9 @@ extern "C" bool lists_isItemInList (lists_list l, void * c)
 
   do {
     i = 1;
-    while (i <= l->noOfelements)
+    while (i <= static_cast<lists_list__opaque> (l)->noOfelements)
       {
-        if (l->elements.array[i-1] == c)
+        if (static_cast<lists_list__opaque> (l)->elements.array[i-1] == c)
           {
             return true;
           }
@@ -381,7 +378,7 @@ extern "C" bool lists_isItemInList (lists_list l, void * c)
             i += 1;
           }
       }
-    l = l->next;
+    l = static_cast<lists_list> (static_cast<lists_list__opaque> (l)->next);
   } while (! (l == NULL));
   return false;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -414,27 +411,27 @@ extern "C" void lists_foreachItemInListDo (lists_list l, symbolKey_performOperat
 
 extern "C" lists_list lists_duplicateList (lists_list l)
 {
-  lists_list m;
+  lists_list__opaque m;
   unsigned int n;
   unsigned int i;
 
-  m = lists_initList ();
+  m = static_cast<lists_list__opaque> (lists_initList ());
   n = lists_noOfItemsInList (l);
   i = 1;
   while (i <= n)
     {
-      lists_putItemIntoList (m, lists_getItemFromList (l, i));
+      lists_putItemIntoList (static_cast<lists_list> (m), lists_getItemFromList (l, i));
       i += 1;
     }
-  return m;
+  return static_cast<lists_list> (m);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_lists_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_lists_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_lists_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_lists_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcComment.cc b/gcc/m2/mc-boot/GmcComment.cc
index f17fb19a8e6..4c7650283ec 100644
--- a/gcc/m2/mc-boot/GmcComment.cc
+++ b/gcc/m2/mc-boot/GmcComment.cc
@@ -43,9 +43,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcComment_H
 #define _mcComment_C
 
+#include "GmcComment.h"
 #   include "GDynamicStrings.h"
 #   include "GStorage.h"
 #   include "GnameKey.h"
@@ -57,7 +57,7 @@ typedef struct mcComment__T1_r mcComment__T1;
 
 typedef enum {mcComment_unknown, mcComment_procedureHeading, mcComment_inBody, mcComment_afterStatement} mcComment_commentType;
 
-typedef mcComment__T1 *mcComment_commentDesc;
+typedef mcComment__T1 *mcComment_commentDesc__opaque;
 
 struct mcComment__T1_r {
                          mcComment_commentType type;
@@ -156,13 +156,13 @@ static DynamicStrings_String RemoveNewlines (DynamicStrings_String s);
                    in the comment.
 */
 
-static bool seenProcedure (mcComment_commentDesc cd, nameKey_Name procName);
+static bool seenProcedure (mcComment_commentDesc__opaque cd, nameKey_Name procName);
 
 /*
    dumpComment -
 */
 
-static void dumpComment (mcComment_commentDesc cd);
+static void dumpComment (mcComment_commentDesc__opaque cd);
 
 
 /*
@@ -212,7 +212,7 @@ static DynamicStrings_String RemoveNewlines (DynamicStrings_String s)
                    in the comment.
 */
 
-static bool seenProcedure (mcComment_commentDesc cd, nameKey_Name procName)
+static bool seenProcedure (mcComment_commentDesc__opaque cd, nameKey_Name procName)
 {
   DynamicStrings_String s;
   void * a;
@@ -235,7 +235,7 @@ static bool seenProcedure (mcComment_commentDesc cd, nameKey_Name procName)
    dumpComment -
 */
 
-static void dumpComment (mcComment_commentDesc cd)
+static void dumpComment (mcComment_commentDesc__opaque cd)
 {
   libc_printf ((const char *) "comment : ", 10);
   switch (cd->type)
@@ -282,7 +282,7 @@ static void dumpComment (mcComment_commentDesc cd)
 
 extern "C" mcComment_commentDesc mcComment_initComment (bool onlySpaces)
 {
-  mcComment_commentDesc cd;
+  mcComment_commentDesc__opaque cd;
 
   Storage_ALLOCATE ((void **) &cd, sizeof (mcComment__T1));
   mcDebug_assert (cd != NULL);
@@ -297,7 +297,7 @@ extern "C" mcComment_commentDesc mcComment_initComment (bool onlySpaces)
   cd->content = DynamicStrings_InitString ((const char *) "", 0);
   cd->procName = nameKey_NulName;
   cd->used = false;
-  return cd;
+  return static_cast<mcComment_commentDesc> (cd);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -312,7 +312,7 @@ extern "C" void mcComment_addText (mcComment_commentDesc cd, void * cs)
 {
   if (cd != NULL)
     {
-      cd->content = DynamicStrings_ConCat (cd->content, DynamicStrings_InitStringCharStar (cs));
+      static_cast<mcComment_commentDesc__opaque> (cd)->content = DynamicStrings_ConCat (static_cast<mcComment_commentDesc__opaque> (cd)->content, DynamicStrings_InitStringCharStar (cs));
     }
 }
 
@@ -325,7 +325,7 @@ extern "C" DynamicStrings_String mcComment_getContent (mcComment_commentDesc cd)
 {
   if (cd != NULL)
     {
-      return cd->content;
+      return static_cast<mcComment_commentDesc__opaque> (cd)->content;
     }
   return static_cast<DynamicStrings_String> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -365,10 +365,10 @@ extern "C" void mcComment_setProcedureComment (mcComment_commentDesc cd, nameKey
 {
   if (cd != NULL)
     {
-      if (seenProcedure (cd, procname))
+      if (seenProcedure (static_cast<mcComment_commentDesc__opaque> (cd), procname))
         {
-          cd->type = mcComment_procedureHeading;
-          cd->procName = procname;
+          static_cast<mcComment_commentDesc__opaque> (cd)->type = mcComment_procedureHeading;
+          static_cast<mcComment_commentDesc__opaque> (cd)->procName = procname;
         }
     }
 }
@@ -380,10 +380,10 @@ extern "C" void mcComment_setProcedureComment (mcComment_commentDesc cd, nameKey
 
 extern "C" DynamicStrings_String mcComment_getProcedureComment (mcComment_commentDesc cd)
 {
-  if ((cd->type == mcComment_procedureHeading) && ! cd->used)
+  if ((static_cast<mcComment_commentDesc__opaque> (cd)->type == mcComment_procedureHeading) && ! static_cast<mcComment_commentDesc__opaque> (cd)->used)
     {
-      cd->used = true;
-      return cd->content;
+      static_cast<mcComment_commentDesc__opaque> (cd)->used = true;
+      return static_cast<mcComment_commentDesc__opaque> (cd)->content;
     }
   return static_cast<DynamicStrings_String> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -397,10 +397,10 @@ extern "C" DynamicStrings_String mcComment_getProcedureComment (mcComment_commen
 
 extern "C" DynamicStrings_String mcComment_getAfterStatementComment (mcComment_commentDesc cd)
 {
-  if ((cd->type == mcComment_afterStatement) && ! cd->used)
+  if ((static_cast<mcComment_commentDesc__opaque> (cd)->type == mcComment_afterStatement) && ! static_cast<mcComment_commentDesc__opaque> (cd)->used)
     {
-      cd->used = true;
-      return cd->content;
+      static_cast<mcComment_commentDesc__opaque> (cd)->used = true;
+      return static_cast<mcComment_commentDesc__opaque> (cd)->content;
     }
   return static_cast<DynamicStrings_String> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -414,10 +414,10 @@ extern "C" DynamicStrings_String mcComment_getAfterStatementComment (mcComment_c
 
 extern "C" DynamicStrings_String mcComment_getInbodyStatementComment (mcComment_commentDesc cd)
 {
-  if ((cd->type == mcComment_inBody) && ! cd->used)
+  if ((static_cast<mcComment_commentDesc__opaque> (cd)->type == mcComment_inBody) && ! static_cast<mcComment_commentDesc__opaque> (cd)->used)
     {
-      cd->used = true;
-      return cd->content;
+      static_cast<mcComment_commentDesc__opaque> (cd)->used = true;
+      return static_cast<mcComment_commentDesc__opaque> (cd)->content;
     }
   return static_cast<DynamicStrings_String> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -431,7 +431,7 @@ extern "C" DynamicStrings_String mcComment_getInbodyStatementComment (mcComment_
 
 extern "C" bool mcComment_isProcedureComment (mcComment_commentDesc cd)
 {
-  return (cd != NULL) && (cd->type == mcComment_procedureHeading);
+  return (cd != NULL) && (static_cast<mcComment_commentDesc__opaque> (cd)->type == mcComment_procedureHeading);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -443,7 +443,7 @@ extern "C" bool mcComment_isProcedureComment (mcComment_commentDesc cd)
 
 extern "C" bool mcComment_isBodyComment (mcComment_commentDesc cd)
 {
-  return (cd != NULL) && (cd->type == mcComment_inBody);
+  return (cd != NULL) && (static_cast<mcComment_commentDesc__opaque> (cd)->type == mcComment_inBody);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -455,15 +455,15 @@ extern "C" bool mcComment_isBodyComment (mcComment_commentDesc cd)
 
 extern "C" bool mcComment_isAfterComment (mcComment_commentDesc cd)
 {
-  return (cd != NULL) && (cd->type == mcComment_afterStatement);
+  return (cd != NULL) && (static_cast<mcComment_commentDesc__opaque> (cd)->type == mcComment_afterStatement);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcComment_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcComment_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcComment_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcComment_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcComp.cc b/gcc/m2/mc-boot/GmcComp.cc
index 33c8201d8ad..02877639ad7 100644
--- a/gcc/m2/mc-boot/GmcComp.cc
+++ b/gcc/m2/mc-boot/GmcComp.cc
@@ -38,9 +38,9 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcComp_H
 #define _mcComp_C
 
+#include "GmcComp.h"
 #   include "GFIO.h"
 #   include "Glibc.h"
 #   include "Gdecl.h"
@@ -562,7 +562,7 @@ static void pass (unsigned int no, decl_node n, mcComp_parserFunction f, decl_is
             {
               mcError_writeFormat0 ((const char *) "compilation failed", 18);
               mcLexBuf_closeSource ();
-              return ;
+              return;
             }
           mcLexBuf_closeSource ();
         }
@@ -651,11 +651,11 @@ extern "C" unsigned int mcComp_getPassNo (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcComp_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcComp_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   init ();
 }
 
-extern "C" void _M2_mcComp_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcComp_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcDebug.cc b/gcc/m2/mc-boot/GmcDebug.cc
index f8919593199..154ae6926c1 100644
--- a/gcc/m2/mc-boot/GmcDebug.cc
+++ b/gcc/m2/mc-boot/GmcDebug.cc
@@ -24,9 +24,9 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _mcDebug_H
 #define _mcDebug_C
 
+#include "GmcDebug.h"
 #   include "GStrIO.h"
 #   include "GmcOptions.h"
 #   include "GmcError.h"
@@ -78,10 +78,10 @@ extern "C" void mcDebug_writeDebug (const char *a_, unsigned int _a_high)
     }
 }
 
-extern "C" void _M2_mcDebug_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcDebug_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcDebug_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcDebug_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcError.cc b/gcc/m2/mc-boot/GmcError.cc
index 7a17119f6f3..5893201913f 100644
--- a/gcc/m2/mc-boot/GmcError.cc
+++ b/gcc/m2/mc-boot/GmcError.cc
@@ -42,9 +42,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcError_H
 #define _mcError_C
 
+#include "GmcError.h"
 #   include "GASCII.h"
 #   include "GDynamicStrings.h"
 #   include "GFIO.h"
@@ -63,18 +63,18 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   define Xcode true
 typedef struct mcError__T2_r mcError__T2;
 
-typedef mcError__T2 *mcError_error;
+typedef mcError__T2 *mcError_error__opaque;
 
 struct mcError__T2_r {
-                       mcError_error parent;
-                       mcError_error child;
-                       mcError_error next;
+                       mcError_error__opaque parent;
+                       mcError_error__opaque child;
+                       mcError_error__opaque next;
                        bool fatal;
                        DynamicStrings_String s;
                        unsigned int token;
                      };
 
-static mcError_error head;
+static mcError_error__opaque head;
 static bool inInternal;
 
 /*
@@ -282,7 +282,7 @@ static void checkIncludes (unsigned int token, unsigned int depth);
    flushAll - flushes all errors in list, e.
 */
 
-static bool flushAll (mcError_error e, bool FatalStatus);
+static bool flushAll (mcError_error__opaque e, bool FatalStatus);
 
 
 /*
@@ -301,7 +301,7 @@ static void cast (unsigned char *a, unsigned int _a_high, const unsigned char *b
     {
       for (i=0; i<=_a_high; i++)
         {
-          a[i] = b[i];
+          const_cast<unsigned char *>(a)[i] = b[i];
         }
     }
 }
@@ -326,7 +326,7 @@ static bool translateNameToCharStar (char *a, unsigned int _a_high, unsigned int
         {
           if ((a[i+1] == 'a') && (argno == n))
             {
-              a[i+1] = 's';
+              const_cast<char *>(a)[i+1] = 's';
               return true;
             }
           argno += 1;
@@ -600,7 +600,7 @@ static DynamicStrings_String doFormat3 (const char *a_, unsigned int _a_high, co
 
 static void init (void)
 {
-  head = NULL;
+  head = static_cast<mcError_error__opaque> (NULL);
   inInternal = false;
 }
 
@@ -656,9 +656,9 @@ static void checkIncludes (unsigned int token, unsigned int depth)
    flushAll - flushes all errors in list, e.
 */
 
-static bool flushAll (mcError_error e, bool FatalStatus)
+static bool flushAll (mcError_error__opaque e, bool FatalStatus)
 {
-  mcError_error f;
+  mcError_error__opaque f;
   bool written;
 
   written = false;
@@ -734,13 +734,13 @@ extern "C" void mcError_internalError (const char *a_, unsigned int _a_high, con
 
 extern "C" void mcError_writeFormat0 (const char *a_, unsigned int _a_high)
 {
-  mcError_error e;
+  mcError_error__opaque e;
   char a[_a_high+1];
 
   /* make a local copy of each unbounded array.  */
   memcpy (a, a_, _a_high+1);
 
-  e = mcError_newError (mcLexBuf_getTokenNo ());
+  e = static_cast<mcError_error__opaque> (mcError_newError (mcLexBuf_getTokenNo ()));
   e->s = FormatStrings_Sprintf0 (DynamicStrings_Mark (DynamicStrings_InitString ((const char *) a, _a_high)));
 }
 
@@ -753,7 +753,7 @@ extern "C" void mcError_writeFormat0 (const char *a_, unsigned int _a_high)
 
 extern "C" void mcError_writeFormat1 (const char *a_, unsigned int _a_high, const unsigned char *w_, unsigned int _w_high)
 {
-  mcError_error e;
+  mcError_error__opaque e;
   char a[_a_high+1];
   unsigned char w[_w_high+1];
 
@@ -761,7 +761,7 @@ extern "C" void mcError_writeFormat1 (const char *a_, unsigned int _a_high, cons
   memcpy (a, a_, _a_high+1);
   memcpy (w, w_, _w_high+1);
 
-  e = mcError_newError (mcLexBuf_getTokenNo ());
+  e = static_cast<mcError_error__opaque> (mcError_newError (mcLexBuf_getTokenNo ()));
   e->s = doFormat1 ((const char *) a, _a_high, (const unsigned char *) w, _w_high);
 }
 
@@ -774,7 +774,7 @@ extern "C" void mcError_writeFormat1 (const char *a_, unsigned int _a_high, cons
 
 extern "C" void mcError_writeFormat2 (const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high)
 {
-  mcError_error e;
+  mcError_error__opaque e;
   char a[_a_high+1];
   unsigned char w1[_w1_high+1];
   unsigned char w2[_w2_high+1];
@@ -784,7 +784,7 @@ extern "C" void mcError_writeFormat2 (const char *a_, unsigned int _a_high, cons
   memcpy (w1, w1_, _w1_high+1);
   memcpy (w2, w2_, _w2_high+1);
 
-  e = mcError_newError (mcLexBuf_getTokenNo ());
+  e = static_cast<mcError_error__opaque> (mcError_newError (mcLexBuf_getTokenNo ()));
   e->s = doFormat2 ((const char *) a, _a_high, (const unsigned char *) w1, _w1_high, (const unsigned char *) w2, _w2_high);
 }
 
@@ -797,7 +797,7 @@ extern "C" void mcError_writeFormat2 (const char *a_, unsigned int _a_high, cons
 
 extern "C" void mcError_writeFormat3 (const char *a_, unsigned int _a_high, const unsigned char *w1_, unsigned int _w1_high, const unsigned char *w2_, unsigned int _w2_high, const unsigned char *w3_, unsigned int _w3_high)
 {
-  mcError_error e;
+  mcError_error__opaque e;
   char a[_a_high+1];
   unsigned char w1[_w1_high+1];
   unsigned char w2[_w2_high+1];
@@ -809,7 +809,7 @@ extern "C" void mcError_writeFormat3 (const char *a_, unsigned int _a_high, cons
   memcpy (w2, w2_, _w2_high+1);
   memcpy (w3, w3_, _w3_high+1);
 
-  e = mcError_newError (mcLexBuf_getTokenNo ());
+  e = static_cast<mcError_error__opaque> (mcError_newError (mcLexBuf_getTokenNo ()));
   e->s = doFormat3 ((const char *) a, _a_high, (const unsigned char *) w1, _w1_high, (const unsigned char *) w2, _w2_high, (const unsigned char *) w3, _w3_high);
 }
 
@@ -820,15 +820,15 @@ extern "C" void mcError_writeFormat3 (const char *a_, unsigned int _a_high, cons
 
 extern "C" mcError_error mcError_newError (unsigned int atTokenNo)
 {
-  mcError_error e;
-  mcError_error f;
+  mcError_error__opaque e;
+  mcError_error__opaque f;
 
   Storage_ALLOCATE ((void **) &e, sizeof (mcError__T2));
   e->s = static_cast<DynamicStrings_String> (NULL);
   e->token = atTokenNo;
-  e->next = NULL;
-  e->parent = NULL;
-  e->child = NULL;
+  e->next = static_cast<mcError_error__opaque> (NULL);
+  e->parent = static_cast<mcError_error__opaque> (NULL);
+  e->child = static_cast<mcError_error__opaque> (NULL);
   e->fatal = true;
   if ((head == NULL) || (head->token > atTokenNo))
     {
@@ -845,7 +845,7 @@ extern "C" mcError_error mcError_newError (unsigned int atTokenNo)
       e->next = f->next;
       f->next = e;
     }
-  return e;
+  return static_cast<mcError_error> (e);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -858,11 +858,11 @@ extern "C" mcError_error mcError_newError (unsigned int atTokenNo)
 
 extern "C" mcError_error mcError_newWarning (unsigned int atTokenNo)
 {
-  mcError_error e;
+  mcError_error__opaque e;
 
-  e = mcError_newError (atTokenNo);
+  e = static_cast<mcError_error__opaque> (mcError_newError (atTokenNo));
   e->fatal = false;
-  return e;
+  return static_cast<mcError_error> (e);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -876,7 +876,7 @@ extern "C" mcError_error mcError_newWarning (unsigned int atTokenNo)
 
 extern "C" mcError_error mcError_chainError (unsigned int atTokenNo, mcError_error e)
 {
-  mcError_error f;
+  mcError_error__opaque f;
 
   if (e == NULL)
     {
@@ -887,13 +887,13 @@ extern "C" mcError_error mcError_chainError (unsigned int atTokenNo, mcError_err
       Storage_ALLOCATE ((void **) &f, sizeof (mcError__T2));
       f->s = static_cast<DynamicStrings_String> (NULL);
       f->token = atTokenNo;
-      f->next = e->child;
-      f->parent = e;
-      f->child = NULL;
-      f->fatal = e->fatal;
-      e->child = f;
+      f->next = static_cast<mcError_error__opaque> (e)->child;
+      f->parent = static_cast<mcError_error__opaque> (e);
+      f->child = static_cast<mcError_error__opaque> (NULL);
+      f->fatal = static_cast<mcError_error__opaque> (e)->fatal;
+      static_cast<mcError_error__opaque> (e)->child = f;
     }
-  return f;
+  return static_cast<mcError_error> (f);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -908,13 +908,13 @@ extern "C" void mcError_errorFormat0 (mcError_error e, const char *a_, unsigned
   /* 
    errorFormat routines provide a printf capability for the error handle.
   */
-  if (e->s == NULL)
+  if (static_cast<mcError_error__opaque> (e)->s == NULL)
     {
-      e->s = FormatStrings_Sprintf0 (DynamicStrings_Mark (DynamicStrings_InitString ((const char *) a, _a_high)));
+      static_cast<mcError_error__opaque> (e)->s = FormatStrings_Sprintf0 (DynamicStrings_Mark (DynamicStrings_InitString ((const char *) a, _a_high)));
     }
   else
     {
-      e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (FormatStrings_Sprintf0 (DynamicStrings_Mark (DynamicStrings_InitString ((const char *) a, _a_high)))));
+      static_cast<mcError_error__opaque> (e)->s = DynamicStrings_ConCat (static_cast<mcError_error__opaque> (e)->s, DynamicStrings_Mark (FormatStrings_Sprintf0 (DynamicStrings_Mark (DynamicStrings_InitString ((const char *) a, _a_high)))));
     }
 }
 
@@ -929,13 +929,13 @@ extern "C" void mcError_errorFormat1 (mcError_error e, const char *a_, unsigned
   memcpy (w, w_, _w_high+1);
 
   s1 = doFormat1 ((const char *) a, _a_high, (const unsigned char *) w, _w_high);
-  if (e->s == NULL)
+  if (static_cast<mcError_error__opaque> (e)->s == NULL)
     {
-      e->s = s1;
+      static_cast<mcError_error__opaque> (e)->s = s1;
     }
   else
     {
-      e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (s1));
+      static_cast<mcError_error__opaque> (e)->s = DynamicStrings_ConCat (static_cast<mcError_error__opaque> (e)->s, DynamicStrings_Mark (s1));
     }
 }
 
@@ -952,13 +952,13 @@ extern "C" void mcError_errorFormat2 (mcError_error e, const char *a_, unsigned
   memcpy (w2, w2_, _w2_high+1);
 
   s1 = doFormat2 ((const char *) a, _a_high, (const unsigned char *) w1, _w1_high, (const unsigned char *) w2, _w2_high);
-  if (e->s == NULL)
+  if (static_cast<mcError_error__opaque> (e)->s == NULL)
     {
-      e->s = s1;
+      static_cast<mcError_error__opaque> (e)->s = s1;
     }
   else
     {
-      e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (s1));
+      static_cast<mcError_error__opaque> (e)->s = DynamicStrings_ConCat (static_cast<mcError_error__opaque> (e)->s, DynamicStrings_Mark (s1));
     }
 }
 
@@ -977,19 +977,19 @@ extern "C" void mcError_errorFormat3 (mcError_error e, const char *a_, unsigned
   memcpy (w3, w3_, _w3_high+1);
 
   s1 = doFormat3 ((const char *) a, _a_high, (const unsigned char *) w1, _w1_high, (const unsigned char *) w2, _w2_high, (const unsigned char *) w3, _w3_high);
-  if (e->s == NULL)
+  if (static_cast<mcError_error__opaque> (e)->s == NULL)
     {
-      e->s = s1;
+      static_cast<mcError_error__opaque> (e)->s = s1;
     }
   else
     {
-      e->s = DynamicStrings_ConCat (e->s, DynamicStrings_Mark (s1));
+      static_cast<mcError_error__opaque> (e)->s = DynamicStrings_ConCat (static_cast<mcError_error__opaque> (e)->s, DynamicStrings_Mark (s1));
     }
 }
 
 extern "C" void mcError_errorString (mcError_error e, DynamicStrings_String str)
 {
-  e->s = str;
+  static_cast<mcError_error__opaque> (e)->s = str;
 }
 
 
@@ -1001,10 +1001,10 @@ extern "C" void mcError_errorString (mcError_error e, DynamicStrings_String str)
 
 extern "C" void mcError_errorStringAt (DynamicStrings_String s, unsigned int tok)
 {
-  mcError_error e;
+  mcError_error__opaque e;
 
-  e = mcError_newError (tok);
-  mcError_errorString (e, s);
+  e = static_cast<mcError_error__opaque> (mcError_newError (tok));
+  mcError_errorString (static_cast<mcError_error> (e), s);
 }
 
 
@@ -1028,15 +1028,15 @@ extern "C" void mcError_errorStringAt2 (DynamicStrings_String s, unsigned int to
 
 extern "C" void mcError_errorStringsAt2 (DynamicStrings_String s1, DynamicStrings_String s2, unsigned int tok1, unsigned int tok2)
 {
-  mcError_error e;
+  mcError_error__opaque e;
 
   if (s1 == s2)
     {
       s2 = DynamicStrings_Dup (s1);
     }
-  e = mcError_newError (tok1);
-  mcError_errorString (e, s1);
-  mcError_errorString (mcError_chainError (tok2, e), s2);
+  e = static_cast<mcError_error__opaque> (mcError_newError (tok1));
+  mcError_errorString (static_cast<mcError_error> (e), s1);
+  mcError_errorString (mcError_chainError (tok2, static_cast<mcError_error> (e)), s2);
 }
 
 
@@ -1048,10 +1048,10 @@ extern "C" void mcError_errorStringsAt2 (DynamicStrings_String s1, DynamicString
 
 extern "C" void mcError_warnStringAt (DynamicStrings_String s, unsigned int tok)
 {
-  mcError_error e;
+  mcError_error__opaque e;
 
-  e = mcError_newWarning (tok);
-  mcError_errorString (e, s);
+  e = static_cast<mcError_error__opaque> (mcError_newWarning (tok));
+  mcError_errorString (static_cast<mcError_error> (e), s);
 }
 
 
@@ -1075,20 +1075,20 @@ extern "C" void mcError_warnStringAt2 (DynamicStrings_String s, unsigned int tok
 
 extern "C" void mcError_warnStringsAt2 (DynamicStrings_String s1, DynamicStrings_String s2, unsigned int tok1, unsigned int tok2)
 {
-  mcError_error e;
+  mcError_error__opaque e;
 
   if (s1 == s2)
     {
       s2 = DynamicStrings_Dup (s1);
     }
-  e = mcError_newWarning (tok1);
-  mcError_errorString (e, s1);
-  mcError_errorString (mcError_chainError (tok2, e), s2);
+  e = static_cast<mcError_error__opaque> (mcError_newWarning (tok1));
+  mcError_errorString (static_cast<mcError_error> (e), s1);
+  mcError_errorString (mcError_chainError (tok2, static_cast<mcError_error> (e)), s2);
 }
 
 extern "C" void mcError_warnFormat0 (const char *a_, unsigned int _a_high)
 {
-  mcError_error e;
+  mcError_error__opaque e;
   char a[_a_high+1];
 
   /* make a local copy of each unbounded array.  */
@@ -1099,7 +1099,7 @@ extern "C" void mcError_warnFormat0 (const char *a_, unsigned int _a_high)
                  with the encapsulated format string.
                  Used for simple warning messages tied to the current token.
   */
-  e = mcError_newWarning (mcLexBuf_getTokenNo ());
+  e = static_cast<mcError_error__opaque> (mcError_newWarning (mcLexBuf_getTokenNo ()));
   e->s = FormatStrings_Sprintf0 (DynamicStrings_Mark (DynamicStrings_InitString ((const char *) a, _a_high)));
 }
 
@@ -1112,7 +1112,7 @@ extern "C" void mcError_warnFormat0 (const char *a_, unsigned int _a_high)
 
 extern "C" void mcError_warnFormat1 (const char *a_, unsigned int _a_high, const unsigned char *w_, unsigned int _w_high)
 {
-  mcError_error e;
+  mcError_error__opaque e;
   char a[_a_high+1];
   unsigned char w[_w_high+1];
 
@@ -1120,7 +1120,7 @@ extern "C" void mcError_warnFormat1 (const char *a_, unsigned int _a_high, const
   memcpy (a, a_, _a_high+1);
   memcpy (w, w_, _w_high+1);
 
-  e = mcError_newWarning (mcLexBuf_getTokenNo ());
+  e = static_cast<mcError_error__opaque> (mcError_newWarning (mcLexBuf_getTokenNo ()));
   e->s = doFormat1 ((const char *) a, _a_high, (const unsigned char *) w, _w_high);
 }
 
@@ -1188,11 +1188,11 @@ extern "C" void mcError_errorAbort0 (const char *a_, unsigned int _a_high)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcError_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcError_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   init ();
 }
 
-extern "C" void _M2_mcError_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcError_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcFileName.cc b/gcc/m2/mc-boot/GmcFileName.cc
index c2c23941287..6999113a85e 100644
--- a/gcc/m2/mc-boot/GmcFileName.cc
+++ b/gcc/m2/mc-boot/GmcFileName.cc
@@ -24,9 +24,9 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _mcFileName_H
 #define _mcFileName_C
 
+#include "GmcFileName.h"
 #   include "GASCII.h"
 #   include "GDynamicStrings.h"
 
@@ -144,10 +144,10 @@ extern "C" DynamicStrings_String mcFileName_extractModule (DynamicStrings_String
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcFileName_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcFileName_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcFileName_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcFileName_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcLexBuf.cc b/gcc/m2/mc-boot/GmcLexBuf.cc
index d84440be51d..bd6d45738df 100644
--- a/gcc/m2/mc-boot/GmcLexBuf.cc
+++ b/gcc/m2/mc-boot/GmcLexBuf.cc
@@ -42,9 +42,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcLexBuf_H
 #define _mcLexBuf_C
 
+#include "GmcLexBuf.h"
 #   include "Gmcflex.h"
 #   include "Glibc.h"
 #   include "GSYSTEM.h"
@@ -58,12 +58,6 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   include "GmcDebug.h"
 #   include "GM2RTS.h"
 
-mcComment_commentDesc mcLexBuf_currentcomment;
-mcComment_commentDesc mcLexBuf_lastcomment;
-int mcLexBuf_currentinteger;
-unsigned int mcLexBuf_currentcolumn;
-void * mcLexBuf_currentstring;
-mcReserved_toktype mcLexBuf_currenttoken;
 #   define MaxBucketSize 100
 #   define Debugging false
 typedef struct mcLexBuf_tokenDesc_r mcLexBuf_tokenDesc;
@@ -1152,7 +1146,7 @@ static void doGetToken (void)
               /* call the lexical phase to place a new token into the last bucket.  */
               a = mcflex_getToken ();
               mcLexBuf_getToken ();  /* and call ourselves again to collect the token from bucket.  */
-              return ;  /* and call ourselves again to collect the token from bucket.  */
+              return;  /* and call ourselves again to collect the token from bucket.  */
             }
         }
       else
@@ -1840,11 +1834,11 @@ extern "C" void mcLexBuf_popFile (void * filename)
   /* source file list is empty, cannot pop an include..  */
 }
 
-extern "C" void _M2_mcLexBuf_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcLexBuf_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   init ();
 }
 
-extern "C" void _M2_mcLexBuf_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcLexBuf_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcMetaError.cc b/gcc/m2/mc-boot/GmcMetaError.cc
index b4f483bdb18..d3b0fab9cbc 100644
--- a/gcc/m2/mc-boot/GmcMetaError.cc
+++ b/gcc/m2/mc-boot/GmcMetaError.cc
@@ -36,9 +36,9 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcMetaError_H
 #define _mcMetaError_C
 
+#include "GmcMetaError.h"
 #   include "GnameKey.h"
 #   include "GStrLib.h"
 #   include "GmcLexBuf.h"
@@ -1270,7 +1270,7 @@ static void ebnf (mcError_error *e, mcMetaError_errorType *t, DynamicStrings_Str
             break;
 
           case '}':
-            return ;
+            return;
             break;
 
 
@@ -1872,10 +1872,10 @@ extern "C" void mcMetaError_metaErrorStringT4 (unsigned int tok, DynamicStrings_
   varargs_end (&sym);
 }
 
-extern "C" void _M2_mcMetaError_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcMetaError_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcMetaError_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcMetaError_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcOptions.cc b/gcc/m2/mc-boot/GmcOptions.cc
index 23d2a39ccda..99e7fb9700a 100644
--- a/gcc/m2/mc-boot/GmcOptions.cc
+++ b/gcc/m2/mc-boot/GmcOptions.cc
@@ -37,9 +37,9 @@ Boston, MA 02110-1301, USA.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcOptions_H
 #define _mcOptions_C
 
+#include "GmcOptions.h"
 #   include "GSArgs.h"
 #   include "GmcSearch.h"
 #   include "Glibc.h"
@@ -885,7 +885,8 @@ static void handleOption (DynamicStrings_String arg)
   else if (optionIs ((const char *) "--extended-opaque", 17, arg))
     {
       /* avoid dangling else.  */
-      setExtendedOpaque (true);
+      /* setExtendedOpaque (TRUE)  */
+      mcPrintf_printf0 ((const char *) "IGNORING --extended-opaque - this option is no longer implemented - please adjust the call to mc\\n", 98);
     }
   else if (optionIs ((const char *) "--debug-top", 11, arg))
     {
@@ -1258,7 +1259,7 @@ extern "C" DynamicStrings_String mcOptions_getCShortRealType (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcOptions_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcOptions_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   langC = true;
   langCPP = false;
@@ -1293,6 +1294,6 @@ extern "C" void _M2_mcOptions_init (__attribute__((unused)) int argc,__attribute
   CShortReal = DynamicStrings_InitString ((const char *) "float", 5);
 }
 
-extern "C" void _M2_mcOptions_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcOptions_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcPreprocess.cc b/gcc/m2/mc-boot/GmcPreprocess.cc
index 74add0c4392..6f7679ef323 100644
--- a/gcc/m2/mc-boot/GmcPreprocess.cc
+++ b/gcc/m2/mc-boot/GmcPreprocess.cc
@@ -24,9 +24,9 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _mcPreprocess_H
 #define _mcPreprocess_C
 
+#include "GmcPreprocess.h"
 #   include "GSYSTEM.h"
 #   include "GDynamicStrings.h"
 #   include "Glibc.h"
@@ -167,7 +167,7 @@ extern "C" DynamicStrings_String mcPreprocess_preprocessModule (DynamicStrings_S
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcPreprocess_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcPreprocess_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   listOfFiles = alists_initList ();
   if (! (M2RTS_InstallTerminationProcedure ((PROC ) {(PROC_t) removeFiles})))
@@ -177,6 +177,6 @@ extern "C" void _M2_mcPreprocess_init (__attribute__((unused)) int argc,__attrib
     }
 }
 
-extern "C" void _M2_mcPreprocess_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcPreprocess_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcPretty.cc b/gcc/m2/mc-boot/GmcPretty.cc
index cd480325645..10b262b8979 100644
--- a/gcc/m2/mc-boot/GmcPretty.cc
+++ b/gcc/m2/mc-boot/GmcPretty.cc
@@ -38,9 +38,9 @@ Boston, MA 02110-1301, USA.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcPretty_H
 #define _mcPretty_C
 
+#include "GmcPretty.h"
 #   include "GDynamicStrings.h"
 #   include "GStorage.h"
 
@@ -50,13 +50,7 @@ typedef struct mcPretty_writeLnProc_p mcPretty_writeLnProc;
 
 typedef struct mcPretty__T1_r mcPretty__T1;
 
-typedef mcPretty__T1 *mcPretty_pretty;
-
-typedef void (*mcPretty_writeProc_t) (char);
-struct mcPretty_writeProc_p { mcPretty_writeProc_t proc; };
-
-typedef void (*mcPretty_writeLnProc_t) (void);
-struct mcPretty_writeLnProc_p { mcPretty_writeLnProc_t proc; };
+typedef mcPretty__T1 *mcPretty_pretty__opaque;
 
 struct mcPretty__T1_r {
                         mcPretty_writeProc write_;
@@ -67,7 +61,7 @@ struct mcPretty__T1_r {
                         unsigned int curLine;
                         unsigned int curPos;
                         unsigned int indent;
-                        mcPretty_pretty stacked;
+                        mcPretty_pretty__opaque stacked;
                       };
 
 
@@ -162,20 +156,20 @@ extern "C" void mcPretty_raw (mcPretty_pretty p, DynamicStrings_String s);
    flushSpace -
 */
 
-static void flushSpace (mcPretty_pretty p);
+static void flushSpace (mcPretty_pretty__opaque p);
 
 /*
    flushIndent -
 */
 
-static void flushIndent (mcPretty_pretty p);
+static void flushIndent (mcPretty_pretty__opaque p);
 
 
 /*
    flushSpace -
 */
 
-static void flushSpace (mcPretty_pretty p)
+static void flushSpace (mcPretty_pretty__opaque p)
 {
   if (p->needsSpace)
     {
@@ -191,7 +185,7 @@ static void flushSpace (mcPretty_pretty p)
    flushIndent -
 */
 
-static void flushIndent (mcPretty_pretty p)
+static void flushIndent (mcPretty_pretty__opaque p)
 {
   unsigned int i;
 
@@ -215,7 +209,7 @@ static void flushIndent (mcPretty_pretty p)
 
 extern "C" mcPretty_pretty mcPretty_initPretty (mcPretty_writeProc w, mcPretty_writeLnProc l)
 {
-  mcPretty_pretty p;
+  mcPretty_pretty__opaque p;
 
   Storage_ALLOCATE ((void **) &p, sizeof (mcPretty__T1));
   p->write_ = w;
@@ -226,8 +220,8 @@ extern "C" mcPretty_pretty mcPretty_initPretty (mcPretty_writeProc w, mcPretty_w
   p->curLine = 0;
   p->seekPos = 0;
   p->indent = 0;
-  p->stacked = NULL;
-  return p;
+  p->stacked = static_cast<mcPretty_pretty__opaque> (NULL);
+  return static_cast<mcPretty_pretty> (p);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -239,11 +233,11 @@ extern "C" mcPretty_pretty mcPretty_initPretty (mcPretty_writeProc w, mcPretty_w
 
 extern "C" mcPretty_pretty mcPretty_dupPretty (mcPretty_pretty p)
 {
-  mcPretty_pretty q;
+  mcPretty_pretty__opaque q;
 
   Storage_ALLOCATE ((void **) &q, sizeof (mcPretty__T1));
-  (*q) = (*p);
-  return q;
+  (*q) = (*static_cast<mcPretty_pretty__opaque> (p));
+  return static_cast<mcPretty_pretty> (q);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -256,10 +250,10 @@ extern "C" mcPretty_pretty mcPretty_dupPretty (mcPretty_pretty p)
 
 extern "C" void mcPretty_killPretty (mcPretty_pretty *p)
 {
-  (*p) = NULL;
-  return ;
+  (*p) = static_cast<mcPretty_pretty> (NULL);
+  return;
   Storage_DEALLOCATE ((void **) &(*p), sizeof (mcPretty__T1));
-  (*p) = NULL;
+  (*p) = static_cast<mcPretty_pretty> (NULL);
 }
 
 
@@ -269,11 +263,11 @@ extern "C" void mcPretty_killPretty (mcPretty_pretty *p)
 
 extern "C" mcPretty_pretty mcPretty_pushPretty (mcPretty_pretty p)
 {
-  mcPretty_pretty q;
+  mcPretty_pretty__opaque q;
 
-  q = mcPretty_dupPretty (p);
-  q->stacked = p;
-  return q;
+  q = static_cast<mcPretty_pretty__opaque> (mcPretty_dupPretty (p));
+  q->stacked = static_cast<mcPretty_pretty__opaque> (p);
+  return static_cast<mcPretty_pretty> (q);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -285,16 +279,16 @@ extern "C" mcPretty_pretty mcPretty_pushPretty (mcPretty_pretty p)
 
 extern "C" mcPretty_pretty mcPretty_popPretty (mcPretty_pretty p)
 {
-  mcPretty_pretty q;
-
-  q = p->stacked;
-  q->needsIndent = p->needsIndent;
-  q->needsSpace = p->needsSpace;
-  q->curPos = p->curPos;
-  q->seekPos = p->seekPos;
-  q->curLine = p->curLine;
+  mcPretty_pretty__opaque q;
+
+  q = static_cast<mcPretty_pretty__opaque> (p)->stacked;
+  q->needsIndent = static_cast<mcPretty_pretty__opaque> (p)->needsIndent;
+  q->needsSpace = static_cast<mcPretty_pretty__opaque> (p)->needsSpace;
+  q->curPos = static_cast<mcPretty_pretty__opaque> (p)->curPos;
+  q->seekPos = static_cast<mcPretty_pretty__opaque> (p)->seekPos;
+  q->curLine = static_cast<mcPretty_pretty__opaque> (p)->curLine;
   mcPretty_killPretty (&p);
-  return q;
+  return static_cast<mcPretty_pretty> (q);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -306,7 +300,7 @@ extern "C" mcPretty_pretty mcPretty_popPretty (mcPretty_pretty p)
 
 extern "C" unsigned int mcPretty_getindent (mcPretty_pretty p)
 {
-  return p->indent;
+  return static_cast<mcPretty_pretty__opaque> (p)->indent;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -318,7 +312,7 @@ extern "C" unsigned int mcPretty_getindent (mcPretty_pretty p)
 
 extern "C" void mcPretty_setindent (mcPretty_pretty p, unsigned int n)
 {
-  p->indent = n;
+  static_cast<mcPretty_pretty__opaque> (p)->indent = n;
 }
 
 
@@ -328,13 +322,13 @@ extern "C" void mcPretty_setindent (mcPretty_pretty p, unsigned int n)
 
 extern "C" unsigned int mcPretty_getcurpos (mcPretty_pretty s)
 {
-  if (s->needsSpace)
+  if (static_cast<mcPretty_pretty__opaque> (s)->needsSpace)
     {
-      return s->curPos+1;
+      return static_cast<mcPretty_pretty__opaque> (s)->curPos+1;
     }
   else
     {
-      return s->curPos;
+      return static_cast<mcPretty_pretty__opaque> (s)->curPos;
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -347,7 +341,7 @@ extern "C" unsigned int mcPretty_getcurpos (mcPretty_pretty s)
 
 extern "C" unsigned int mcPretty_getseekpos (mcPretty_pretty s)
 {
-  return s->seekPos;
+  return static_cast<mcPretty_pretty__opaque> (s)->seekPos;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -359,7 +353,7 @@ extern "C" unsigned int mcPretty_getseekpos (mcPretty_pretty s)
 
 extern "C" unsigned int mcPretty_getcurline (mcPretty_pretty s)
 {
-  return s->curLine;
+  return static_cast<mcPretty_pretty__opaque> (s)->curLine;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -369,7 +363,7 @@ extern "C" void mcPretty_setNeedSpace (mcPretty_pretty s)
   /* 
    setneedSpace - sets needSpace flag to TRUE.
   */
-  s->needsSpace = true;
+  static_cast<mcPretty_pretty__opaque> (s)->needsSpace = true;
 }
 
 
@@ -379,7 +373,7 @@ extern "C" void mcPretty_setNeedSpace (mcPretty_pretty s)
 
 extern "C" void mcPretty_noSpace (mcPretty_pretty s)
 {
-  s->needsSpace = false;
+  static_cast<mcPretty_pretty__opaque> (s)->needsSpace = false;
 }
 
 
@@ -412,25 +406,25 @@ extern "C" void mcPretty_prints (mcPretty_pretty p, DynamicStrings_String s)
 
   l = DynamicStrings_Length (s);
   i = 0;
-  flushSpace (p);
+  flushSpace (static_cast<mcPretty_pretty__opaque> (p));
   while (i < l)
     {
       if ((((i+2) <= l) && ((DynamicStrings_char (s, static_cast<int> (i))) == '\\')) && ((DynamicStrings_char (s, static_cast<int> (i+1))) == 'n'))
         {
-          p->needsIndent = true;
-          p->needsSpace = false;
-          p->curPos = 0;
-          (*p->writeln.proc) ();
-          p->seekPos += 1;
-          p->curLine += 1;
+          static_cast<mcPretty_pretty__opaque> (p)->needsIndent = true;
+          static_cast<mcPretty_pretty__opaque> (p)->needsSpace = false;
+          static_cast<mcPretty_pretty__opaque> (p)->curPos = 0;
+          (*static_cast<mcPretty_pretty__opaque> (p)->writeln.proc) ();
+          static_cast<mcPretty_pretty__opaque> (p)->seekPos += 1;
+          static_cast<mcPretty_pretty__opaque> (p)->curLine += 1;
           i += 1;
         }
       else
         {
-          flushIndent (p);
-          (*p->write_.proc) (DynamicStrings_char (s, static_cast<int> (i)));
-          p->curPos += 1;
-          p->seekPos += 1;
+          flushIndent (static_cast<mcPretty_pretty__opaque> (p));
+          (*static_cast<mcPretty_pretty__opaque> (p)->write_.proc) (DynamicStrings_char (s, static_cast<int> (i)));
+          static_cast<mcPretty_pretty__opaque> (p)->curPos += 1;
+          static_cast<mcPretty_pretty__opaque> (p)->seekPos += 1;
         }
       i += 1;
     }
@@ -449,21 +443,21 @@ extern "C" void mcPretty_raw (mcPretty_pretty p, DynamicStrings_String s)
 
   l = DynamicStrings_Length (s);
   i = 0;
-  flushSpace (p);
-  flushIndent (p);
+  flushSpace (static_cast<mcPretty_pretty__opaque> (p));
+  flushIndent (static_cast<mcPretty_pretty__opaque> (p));
   while (i < l)
     {
-      (*p->write_.proc) (DynamicStrings_char (s, static_cast<int> (i)));
-      p->curPos += 1;
-      p->seekPos += 1;
+      (*static_cast<mcPretty_pretty__opaque> (p)->write_.proc) (DynamicStrings_char (s, static_cast<int> (i)));
+      static_cast<mcPretty_pretty__opaque> (p)->curPos += 1;
+      static_cast<mcPretty_pretty__opaque> (p)->seekPos += 1;
       i += 1;
     }
 }
 
-extern "C" void _M2_mcPretty_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcPretty_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcPretty_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcPretty_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcPrintf.cc b/gcc/m2/mc-boot/GmcPrintf.cc
index 3fd4117c92a..f95ee136e5f 100644
--- a/gcc/m2/mc-boot/GmcPrintf.cc
+++ b/gcc/m2/mc-boot/GmcPrintf.cc
@@ -36,9 +36,9 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcPrintf_H
 #define _mcPrintf_C
 
+#include "GmcPrintf.h"
 #   include "GSFIO.h"
 #   include "GFIO.h"
 #   include "GDynamicStrings.h"
@@ -167,7 +167,7 @@ static void cast (unsigned char *a, unsigned int _a_high, const unsigned char *b
     {
       for (i=0; i<=_a_high; i++)
         {
-          a[i] = b[i];
+          const_cast<unsigned char *>(a)[i] = b[i];
         }
     }
   else
@@ -199,7 +199,7 @@ static bool TranslateNameToCharStar (char *a, unsigned int _a_high, unsigned int
         {
           if ((a[i+1] == 'a') && (argno == n))
             {
-              a[i+1] = 's';
+              const_cast<char *>(a)[i+1] = 's';
               return true;
             }
           argno += 1;
@@ -647,10 +647,10 @@ extern "C" void mcPrintf_fprintf4 (FIO_File file, const char *a_, unsigned int _
     {}  /* empty.  */
 }
 
-extern "C" void _M2_mcPrintf_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcPrintf_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcPrintf_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcPrintf_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcQuiet.cc b/gcc/m2/mc-boot/GmcQuiet.cc
index ccff3b64b5a..b9d4e22110a 100644
--- a/gcc/m2/mc-boot/GmcQuiet.cc
+++ b/gcc/m2/mc-boot/GmcQuiet.cc
@@ -24,9 +24,9 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _mcQuiet_H
 #define _mcQuiet_C
 
+#include "GmcQuiet.h"
 #   include "GmcOptions.h"
 #   include "GmcPrintf.h"
 
@@ -121,10 +121,10 @@ extern "C" void mcQuiet_qprintf4 (const char *a_, unsigned int _a_high, const un
     }
 }
 
-extern "C" void _M2_mcQuiet_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcQuiet_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcQuiet_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcQuiet_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcReserved.cc b/gcc/m2/mc-boot/GmcReserved.cc
index 9e3519b0184..af7363a0aa6 100644
--- a/gcc/m2/mc-boot/GmcReserved.cc
+++ b/gcc/m2/mc-boot/GmcReserved.cc
@@ -25,17 +25,15 @@ Boston, MA 02110-1301, USA.  */
        typedef struct { PROC_t proc; } PROC;
 #   endif
 
-#define _mcReserved_H
 #define _mcReserved_C
 
+#include "GmcReserved.h"
 
-typedef enum {mcReserved_eoftok, mcReserved_plustok, mcReserved_minustok, mcReserved_timestok, mcReserved_dividetok, mcReserved_becomestok, mcReserved_ambersandtok, mcReserved_periodtok, mcReserved_commatok, mcReserved_semicolontok, mcReserved_lparatok, mcReserved_rparatok, mcReserved_lsbratok, mcReserved_rsbratok, mcReserved_lcbratok, mcReserved_rcbratok, mcReserved_uparrowtok, mcReserved_singlequotetok, mcReserved_equaltok, mcReserved_hashtok, mcReserved_lesstok, mcReserved_greatertok, mcReserved_lessgreatertok, mcReserved_lessequaltok, mcReserved_greaterequaltok, mcReserved_ldirectivetok, mcReserved_rdirectivetok, mcReserved_periodperiodtok, mcReserved_colontok, mcReserved_doublequotestok, mcReserved_bartok, mcReserved_andtok, mcReserved_arraytok, mcReserved_begintok, mcReserved_bytok, mcReserved_casetok, mcReserved_consttok, mcReserved_definitiontok, mcReserved_divtok, mcReserved_dotok, mcReserved_elsetok, mcReserved_elsiftok, mcReserved_endtok, mcReserved_excepttok, mcReserved_exittok, mcReserved_exporttok, mcReserved_finallytok, mcReserved_fortok, mcReserved_fromtok, mcReserved_iftok, mcReserved_implementationtok, mcReserved_importtok, mcReserved_intok, mcReserved_looptok, mcReserved_modtok, mcReserved_moduletok, mcReserved_nottok, mcReserved_oftok, mcReserved_ortok, mcReserved_packedsettok, mcReserved_pointertok, mcReserved_proceduretok, mcReserved_qualifiedtok, mcReserved_unqualifiedtok, mcReserved_recordtok, mcReserved_remtok, mcReserved_repeattok, mcReserved_retrytok, mcReserved_returntok, mcReserved_settok, mcReserved_thentok, mcReserved_totok, mcReserved_typetok, mcReserved_untiltok, mcReserved_vartok, mcReserved_whiletok, mcReserved_withtok, mcReserved_asmtok, mcReserved_volatiletok, mcReserved_periodperiodperiodtok, mcReserved_datetok, mcReserved_linetok, mcReserved_filetok, mcReserved_attributetok, mcReserved_builtintok, mcReserved_inlinetok, mcReserved_integertok, mcReserved_identtok, mcReserved_realtok, mcReserved_stringtok, mcReserved_commenttok} mcReserved_toktype;
 
-
-extern "C" void _M2_mcReserved_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcReserved_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcReserved_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcReserved_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcSearch.cc b/gcc/m2/mc-boot/GmcSearch.cc
index add9b820b33..7ebe597d67a 100644
--- a/gcc/m2/mc-boot/GmcSearch.cc
+++ b/gcc/m2/mc-boot/GmcSearch.cc
@@ -36,9 +36,9 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcSearch_H
 #define _mcSearch_C
 
+#include "GmcSearch.h"
 #   include "GSFIO.h"
 #   include "GmcFileName.h"
 #   include "GDynamicStrings.h"
@@ -399,11 +399,11 @@ extern "C" void mcSearch_setModExtension (DynamicStrings_String ext)
   Mod = DynamicStrings_Dup (ext);
 }
 
-extern "C" void _M2_mcSearch_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcSearch_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   Init ();
 }
 
-extern "C" void _M2_mcSearch_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcSearch_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcStack.cc b/gcc/m2/mc-boot/GmcStack.cc
index c35fef32f11..11ff03e407f 100644
--- a/gcc/m2/mc-boot/GmcStack.cc
+++ b/gcc/m2/mc-boot/GmcStack.cc
@@ -31,16 +31,16 @@ Boston, MA 02110-1301, USA.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcStack_H
 #define _mcStack_C
 
+#include "GmcStack.h"
 #   include "GStorage.h"
 #   include "GIndexing.h"
 #   include "GM2RTS.h"
 
 typedef struct mcStack__T1_r mcStack__T1;
 
-typedef mcStack__T1 *mcStack_stack;
+typedef mcStack__T1 *mcStack_stack__opaque;
 
 struct mcStack__T1_r {
                        Indexing_Index list;
@@ -101,12 +101,12 @@ extern "C" void * mcStack_access (mcStack_stack s, unsigned int i);
 
 extern "C" mcStack_stack mcStack_init (void)
 {
-  mcStack_stack s;
+  mcStack_stack__opaque s;
 
   Storage_ALLOCATE ((void **) &s, sizeof (mcStack__T1));
   s->list = Indexing_InitIndex (1);
   s->count = 0;
-  return s;
+  return static_cast<mcStack_stack> (s);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -118,9 +118,9 @@ extern "C" mcStack_stack mcStack_init (void)
 
 extern "C" void mcStack_kill (mcStack_stack *s)
 {
-  (*s)->list = Indexing_KillIndex ((*s)->list);
+  static_cast<mcStack_stack__opaque> ((*s))->list = Indexing_KillIndex (static_cast<mcStack_stack__opaque> ((*s))->list);
   Storage_DEALLOCATE ((void **) &(*s), sizeof (mcStack__T1));
-  (*s) = NULL;
+  (*s) = static_cast<mcStack_stack> (NULL);
 }
 
 
@@ -131,15 +131,15 @@ extern "C" void mcStack_kill (mcStack_stack *s)
 
 extern "C" void * mcStack_push (mcStack_stack s, void * a)
 {
-  if (s->count == 0)
+  if (static_cast<mcStack_stack__opaque> (s)->count == 0)
     {
-      Indexing_PutIndice (s->list, Indexing_LowIndice (s->list), a);
+      Indexing_PutIndice (static_cast<mcStack_stack__opaque> (s)->list, Indexing_LowIndice (static_cast<mcStack_stack__opaque> (s)->list), a);
     }
   else
     {
-      Indexing_PutIndice (s->list, (Indexing_HighIndice (s->list))+1, a);
+      Indexing_PutIndice (static_cast<mcStack_stack__opaque> (s)->list, (Indexing_HighIndice (static_cast<mcStack_stack__opaque> (s)->list))+1, a);
     }
-  s->count += 1;
+  static_cast<mcStack_stack__opaque> (s)->count += 1;
   return a;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -154,16 +154,16 @@ extern "C" void * mcStack_pop (mcStack_stack s)
 {
   void * a;
 
-  if (s->count == 0)
+  if (static_cast<mcStack_stack__opaque> (s)->count == 0)
     {
       M2RTS_HALT (-1);
       __builtin_unreachable ();
     }
   else
     {
-      s->count -= 1;
-      a = Indexing_GetIndice (s->list, Indexing_HighIndice (s->list));
-      Indexing_DeleteIndice (s->list, Indexing_HighIndice (s->list));
+      static_cast<mcStack_stack__opaque> (s)->count -= 1;
+      a = Indexing_GetIndice (static_cast<mcStack_stack__opaque> (s)->list, Indexing_HighIndice (static_cast<mcStack_stack__opaque> (s)->list));
+      Indexing_DeleteIndice (static_cast<mcStack_stack__opaque> (s)->list, Indexing_HighIndice (static_cast<mcStack_stack__opaque> (s)->list));
       return a;
     }
   ReturnException ("../../gcc/m2/mc/mcStack.def", 20, 1);
@@ -192,7 +192,7 @@ extern "C" void * mcStack_replace (mcStack_stack s, void * a)
 
 extern "C" unsigned int mcStack_depth (mcStack_stack s)
 {
-  return s->count;
+  return static_cast<mcStack_stack__opaque> (s)->count;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -207,23 +207,23 @@ extern "C" unsigned int mcStack_depth (mcStack_stack s)
 
 extern "C" void * mcStack_access (mcStack_stack s, unsigned int i)
 {
-  if ((i > s->count) || (i == 0))
+  if ((i > static_cast<mcStack_stack__opaque> (s)->count) || (i == 0))
     {
       M2RTS_HALT (-1);
       __builtin_unreachable ();
     }
   else
     {
-      return Indexing_GetIndice (s->list, i);
+      return Indexing_GetIndice (static_cast<mcStack_stack__opaque> (s)->list, i);
     }
   ReturnException ("../../gcc/m2/mc/mcStack.def", 20, 1);
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcStack_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcStack_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcStack_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcStack_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GmcStream.cc b/gcc/m2/mc-boot/GmcStream.cc
index baf301aff61..3d8d01da465 100644
--- a/gcc/m2/mc-boot/GmcStream.cc
+++ b/gcc/m2/mc-boot/GmcStream.cc
@@ -42,9 +42,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcStream_H
 #define _mcStream_C
 
+#include "GmcStream.h"
 #   include "GFIO.h"
 #   include "Glibc.h"
 #   include "GIndexing.h"
@@ -264,13 +264,13 @@ extern "C" void mcStream_removeFiles (void)
   listOfFiles = alists_initList ();
 }
 
-extern "C" void _M2_mcStream_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcStream_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   listOfFiles = alists_initList ();
   seenDest = false;
   frag = Indexing_InitIndex (1);
 }
 
-extern "C" void _M2_mcStream_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcStream_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Gmcp1.cc b/gcc/m2/mc-boot/Gmcp1.cc
index c005fcbb7a3..b6b0f87a43a 100644
--- a/gcc/m2/mc-boot/Gmcp1.cc
+++ b/gcc/m2/mc-boot/Gmcp1.cc
@@ -41,9 +41,9 @@ see <https://www.gnu.org/licenses/>.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcp1_H
 #define _mcp1_C
 
+#include "Gmcp1.h"
 #   include "GDynamicStrings.h"
 #   include "GmcError.h"
 #   include "GnameKey.h"
@@ -1831,7 +1831,8 @@ static void DefinitionModule (mcp1_SetOfStop0 stopset0, mcp1_SetOfStop1 stopset1
                            
                            % n := makeType (curident)  %
                            ( ';' 
-                             % putTypeHidden (n)  %
+                             % putTypeHidden (n) ;
+                               putTypeOpaque (n)  %
                               | '=' Type Alignment 
                              ';'  )  } 
 
@@ -6955,7 +6956,8 @@ static void DefinitionModule (mcp1_SetOfStop0 stopset0, mcp1_SetOfStop1 stopset1
                            
                            % n := makeType (curident)  %
                            ( ';' 
-                             % putTypeHidden (n)  %
+                             % putTypeHidden (n) ;
+                               putTypeOpaque (n)  %
                               | '=' Type Alignment 
                              ';'  )  } 
 
@@ -6976,6 +6978,7 @@ static void DefTypeDeclaration (mcp1_SetOfStop0 stopset0, mcp1_SetOfStop1 stopse
         {
           Expect (mcReserved_semicolontok, stopset0, stopset1, stopset2|(mcp1_SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok))));
           decl_putTypeHidden (n);
+          decl_putTypeOpaque (n);
         }
       else if (mcLexBuf_currenttoken == mcReserved_equaltok)
         {
@@ -7257,10 +7260,10 @@ extern "C" bool mcp1_CompilationUnit (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcp1_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcp1_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcp1_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcp1_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Gmcp2.cc b/gcc/m2/mc-boot/Gmcp2.cc
index c5f32c1395e..f61e42220d4 100644
--- a/gcc/m2/mc-boot/Gmcp2.cc
+++ b/gcc/m2/mc-boot/Gmcp2.cc
@@ -41,9 +41,9 @@ see <https://www.gnu.org/licenses/>.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcp2_H
 #define _mcp2_C
 
+#include "Gmcp2.h"
 #   include "GDynamicStrings.h"
 #   include "GmcError.h"
 #   include "GnameKey.h"
@@ -7629,10 +7629,10 @@ extern "C" bool mcp2_CompilationUnit (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcp2_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcp2_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcp2_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcp2_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Gmcp3.cc b/gcc/m2/mc-boot/Gmcp3.cc
index 096cdafbc64..e327d366b56 100644
--- a/gcc/m2/mc-boot/Gmcp3.cc
+++ b/gcc/m2/mc-boot/Gmcp3.cc
@@ -41,9 +41,9 @@ see <https://www.gnu.org/licenses/>.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcp3_H
 #define _mcp3_C
 
+#include "Gmcp3.h"
 #   include "GDynamicStrings.h"
 #   include "GmcError.h"
 #   include "GnameKey.h"
@@ -7846,10 +7846,10 @@ extern "C" bool mcp3_CompilationUnit (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcp3_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcp3_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcp3_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcp3_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Gmcp4.cc b/gcc/m2/mc-boot/Gmcp4.cc
index 0cfbe9b243a..2fdd0ae2523 100644
--- a/gcc/m2/mc-boot/Gmcp4.cc
+++ b/gcc/m2/mc-boot/Gmcp4.cc
@@ -41,9 +41,9 @@ see <https://www.gnu.org/licenses/>.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcp4_H
 #define _mcp4_C
 
+#include "Gmcp4.h"
 #   include "GDynamicStrings.h"
 #   include "GmcError.h"
 #   include "GnameKey.h"
@@ -7709,10 +7709,10 @@ extern "C" bool mcp4_CompilationUnit (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcp4_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcp4_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcp4_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcp4_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Gmcp5.cc b/gcc/m2/mc-boot/Gmcp5.cc
index 08de65334e8..d1e1fe984fa 100644
--- a/gcc/m2/mc-boot/Gmcp5.cc
+++ b/gcc/m2/mc-boot/Gmcp5.cc
@@ -41,9 +41,9 @@ see <https://www.gnu.org/licenses/>.  */
 #   undef NULL
 #   define NULL 0
 #endif
-#define _mcp5_H
 #define _mcp5_C
 
+#include "Gmcp5.h"
 #   include "GDynamicStrings.h"
 #   include "GmcError.h"
 #   include "GnameKey.h"
@@ -5553,7 +5553,7 @@ static void SubDesignator (mcp5_SetOfStop0 stopset0, mcp5_SetOfStop1 stopset1, m
     {
       ErrorArray ((const char *) "no expression found", 19);
       mcError_flushErrors ();
-      return ;
+      return;
     }
   type = decl_skipType (decl_getType (n));
   if (mcLexBuf_currenttoken == mcReserved_periodtok)
@@ -8568,10 +8568,10 @@ extern "C" bool mcp5_CompilationUnit (void)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_mcp5_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcp5_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_mcp5_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_mcp5_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GnameKey.cc b/gcc/m2/mc-boot/GnameKey.cc
index 2b236667ea1..ba9eaa026c0 100644
--- a/gcc/m2/mc-boot/GnameKey.cc
+++ b/gcc/m2/mc-boot/GnameKey.cc
@@ -43,9 +43,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _nameKey_H
 #define _nameKey_C
 
+#include "GnameKey.h"
 #   include "GSYSTEM.h"
 #   include "GStorage.h"
 #   include "GIndexing.h"
@@ -394,13 +394,13 @@ extern "C" void nameKey_getKey (nameKey_Name key, char *a, unsigned int _a_high)
   higha = _a_high;
   while (((p != NULL) && (i <= higha)) && ((*p) != ASCII_nul))
     {
-      a[i] = (*p);
+      const_cast<char *>(a)[i] = (*p);
       p += 1;
       i += 1;
     }
   if (i <= higha)
     {
-      a[i] = ASCII_nul;
+      const_cast<char *>(a)[i] = ASCII_nul;
     }
 }
 
@@ -572,7 +572,7 @@ extern "C" void * nameKey_keyToCharStar (nameKey_Name key)
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_nameKey_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_nameKey_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   lastIndice = 0;
   keyIndex = Indexing_InitIndex (1);
@@ -580,6 +580,6 @@ extern "C" void _M2_nameKey_init (__attribute__((unused)) int argc,__attribute__
   binaryTree->left = NULL;
 }
 
-extern "C" void _M2_nameKey_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_nameKey_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/GsymbolKey.cc b/gcc/m2/mc-boot/GsymbolKey.cc
index 8a396ef1bac..17072597304 100644
--- a/gcc/m2/mc-boot/GsymbolKey.cc
+++ b/gcc/m2/mc-boot/GsymbolKey.cc
@@ -38,9 +38,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _symbolKey_H
 #define _symbolKey_C
 
+#include "GsymbolKey.h"
 #   include "GStorage.h"
 #   include "GStrIO.h"
 #   include "GNumberIO.h"
@@ -54,19 +54,13 @@ typedef struct symbolKey_performOperation_p symbolKey_performOperation;
 
 typedef struct symbolKey__T1_r symbolKey__T1;
 
-typedef symbolKey__T1 *symbolKey_symbolTree;
-
-typedef bool (*symbolKey_isSymbol_t) (void *);
-struct symbolKey_isSymbol_p { symbolKey_isSymbol_t proc; };
-
-typedef void (*symbolKey_performOperation_t) (void *);
-struct symbolKey_performOperation_p { symbolKey_performOperation_t proc; };
+typedef symbolKey__T1 *symbolKey_symbolTree__opaque;
 
 struct symbolKey__T1_r {
                          nameKey_Name name;
-                         void *key;
-                         symbolKey_symbolTree left;
-                         symbolKey_symbolTree right;
+                         void * key;
+                         symbolKey_symbolTree__opaque left;
+                         symbolKey_symbolTree__opaque right;
                        };
 
 extern "C" symbolKey_symbolTree symbolKey_initTree (void);
@@ -113,7 +107,7 @@ extern "C" void symbolKey_foreachNodeDo (symbolKey_symbolTree t, symbolKey_perfo
                              if an entry is found, father is set to the node above child.
 */
 
-static void findNodeAndParentInTree (symbolKey_symbolTree t, nameKey_Name n, symbolKey_symbolTree *child, symbolKey_symbolTree *father);
+static void findNodeAndParentInTree (symbolKey_symbolTree__opaque t, nameKey_Name n, symbolKey_symbolTree__opaque *child, symbolKey_symbolTree__opaque *father);
 
 /*
    searchForAny - performs the search required for doesTreeContainAny.
@@ -121,7 +115,7 @@ static void findNodeAndParentInTree (symbolKey_symbolTree t, nameKey_Name n, sym
                   therefore we must skip over it.
 */
 
-static bool searchForAny (symbolKey_symbolTree t, symbolKey_isSymbol p);
+static bool searchForAny (symbolKey_symbolTree__opaque t, symbolKey_isSymbol p);
 
 /*
    searchAndDo - searches all the nodes in symbolTree, t, and
@@ -129,7 +123,7 @@ static bool searchForAny (symbolKey_symbolTree t, symbolKey_isSymbol p);
                  It traverse the tree in order.
 */
 
-static void searchAndDo (symbolKey_symbolTree t, symbolKey_performOperation p);
+static void searchAndDo (symbolKey_symbolTree__opaque t, symbolKey_performOperation p);
 
 
 /*
@@ -137,7 +131,7 @@ static void searchAndDo (symbolKey_symbolTree t, symbolKey_performOperation p);
                              if an entry is found, father is set to the node above child.
 */
 
-static void findNodeAndParentInTree (symbolKey_symbolTree t, nameKey_Name n, symbolKey_symbolTree *child, symbolKey_symbolTree *father)
+static void findNodeAndParentInTree (symbolKey_symbolTree__opaque t, nameKey_Name n, symbolKey_symbolTree__opaque *child, symbolKey_symbolTree__opaque *father)
 {
   /* remember to skip the sentinal value and assign father and child  */
   (*father) = t;
@@ -171,7 +165,7 @@ static void findNodeAndParentInTree (symbolKey_symbolTree t, nameKey_Name n, sym
                   therefore we must skip over it.
 */
 
-static bool searchForAny (symbolKey_symbolTree t, symbolKey_isSymbol p)
+static bool searchForAny (symbolKey_symbolTree__opaque t, symbolKey_isSymbol p)
 {
   if (t == NULL)
     {
@@ -192,7 +186,7 @@ static bool searchForAny (symbolKey_symbolTree t, symbolKey_isSymbol p)
                  It traverse the tree in order.
 */
 
-static void searchAndDo (symbolKey_symbolTree t, symbolKey_performOperation p)
+static void searchAndDo (symbolKey_symbolTree__opaque t, symbolKey_performOperation p)
 {
   if (t != NULL)
     {
@@ -204,12 +198,12 @@ static void searchAndDo (symbolKey_symbolTree t, symbolKey_performOperation p)
 
 extern "C" symbolKey_symbolTree symbolKey_initTree (void)
 {
-  symbolKey_symbolTree t;
+  symbolKey_symbolTree__opaque t;
 
   Storage_ALLOCATE ((void **) &t, sizeof (symbolKey__T1));  /* The value entity  */
-  t->left = NULL;
-  t->right = NULL;
-  return t;
+  t->left = static_cast<symbolKey_symbolTree__opaque> (NULL);
+  t->right = static_cast<symbolKey_symbolTree__opaque> (NULL);
+  return static_cast<symbolKey_symbolTree> (t);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -218,17 +212,17 @@ extern "C" void symbolKey_killTree (symbolKey_symbolTree *t)
 {
   if ((*t) != NULL)
     {
-      symbolKey_killTree (&(*t)->left);
-      symbolKey_killTree (&(*t)->right);
+      symbolKey_killTree (reinterpret_cast<symbolKey_symbolTree *> (&static_cast<symbolKey_symbolTree__opaque> ((*t))->left));
+      symbolKey_killTree (reinterpret_cast<symbolKey_symbolTree *> (&static_cast<symbolKey_symbolTree__opaque> ((*t))->right));
       Storage_DEALLOCATE ((void **) &(*t), sizeof (symbolKey__T1));
-      (*t) = NULL;
+      (*t) = static_cast<symbolKey_symbolTree> (NULL);
     }
 }
 
 extern "C" void * symbolKey_getSymKey (symbolKey_symbolTree t, nameKey_Name name)
 {
-  symbolKey_symbolTree father;
-  symbolKey_symbolTree child;
+  symbolKey_symbolTree__opaque father;
+  symbolKey_symbolTree__opaque child;
 
   if (t == NULL)
     {
@@ -236,7 +230,7 @@ extern "C" void * symbolKey_getSymKey (symbolKey_symbolTree t, nameKey_Name name
     }
   else
     {
-      findNodeAndParentInTree (t, name, &child, &father);
+      findNodeAndParentInTree (static_cast<symbolKey_symbolTree__opaque> (t), name, &child, &father);
       if (child == NULL)
         {
           return symbolKey_NulKey;
@@ -252,10 +246,10 @@ extern "C" void * symbolKey_getSymKey (symbolKey_symbolTree t, nameKey_Name name
 
 extern "C" void symbolKey_putSymKey (symbolKey_symbolTree t, nameKey_Name name, void * key)
 {
-  symbolKey_symbolTree father;
-  symbolKey_symbolTree child;
+  symbolKey_symbolTree__opaque father;
+  symbolKey_symbolTree__opaque child;
 
-  findNodeAndParentInTree (t, name, &child, &father);
+  findNodeAndParentInTree (static_cast<symbolKey_symbolTree__opaque> (t), name, &child, &father);
   if (child == NULL)
     {
       /* no child found, now is name less than father or greater?  */
@@ -279,8 +273,8 @@ extern "C" void symbolKey_putSymKey (symbolKey_symbolTree t, nameKey_Name name,
               father->right = child;
             }
         }
-      child->right = NULL;
-      child->left = NULL;
+      child->right = static_cast<symbolKey_symbolTree__opaque> (NULL);
+      child->left = static_cast<symbolKey_symbolTree__opaque> (NULL);
       child->key = key;
       child->name = name;
     }
@@ -300,11 +294,11 @@ extern "C" void symbolKey_putSymKey (symbolKey_symbolTree t, nameKey_Name name,
 
 extern "C" void symbolKey_delSymKey (symbolKey_symbolTree t, nameKey_Name name)
 {
-  symbolKey_symbolTree i;
-  symbolKey_symbolTree child;
-  symbolKey_symbolTree father;
+  symbolKey_symbolTree__opaque i;
+  symbolKey_symbolTree__opaque child;
+  symbolKey_symbolTree__opaque father;
 
-  findNodeAndParentInTree (t, name, &child, &father);  /* find father and child of the node  */
+  findNodeAndParentInTree (static_cast<symbolKey_symbolTree__opaque> (t), name, &child, &father);  /* find father and child of the node  */
   if ((child != NULL) && (child->name == name))
     {
       /* Have found the node to be deleted  */
@@ -364,7 +358,7 @@ extern "C" void symbolKey_delSymKey (symbolKey_symbolTree t, nameKey_Name name)
 
 extern "C" bool symbolKey_isEmptyTree (symbolKey_symbolTree t)
 {
-  return t->left == NULL;
+  return static_cast<symbolKey_symbolTree__opaque> (t)->left == NULL;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -380,7 +374,7 @@ extern "C" bool symbolKey_isEmptyTree (symbolKey_symbolTree t)
 
 extern "C" bool symbolKey_doesTreeContainAny (symbolKey_symbolTree t, symbolKey_isSymbol p)
 {
-  return searchForAny (t->left, p);
+  return searchForAny (static_cast<symbolKey_symbolTree__opaque> (t)->left, p);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -395,13 +389,13 @@ extern "C" bool symbolKey_doesTreeContainAny (symbolKey_symbolTree t, symbolKey_
 
 extern "C" void symbolKey_foreachNodeDo (symbolKey_symbolTree t, symbolKey_performOperation p)
 {
-  searchAndDo (t->left, p);
+  searchAndDo (static_cast<symbolKey_symbolTree__opaque> (t)->left, p);
 }
 
-extern "C" void _M2_symbolKey_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_symbolKey_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_symbolKey_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_symbolKey_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Gvarargs.cc b/gcc/m2/mc-boot/Gvarargs.cc
index 23bd7cd1644..5c8abd9940b 100644
--- a/gcc/m2/mc-boot/Gvarargs.cc
+++ b/gcc/m2/mc-boot/Gvarargs.cc
@@ -34,9 +34,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _varargs_H
 #define _varargs_C
 
+#include "Gvarargs.h"
 #   include "GStorage.h"
 #   include "Glibc.h"
 #   include "GSYSTEM.h"
@@ -51,10 +51,10 @@ typedef unsigned char *varargs_ptrToByte;
 
 typedef struct varargs__T7_a varargs__T7;
 
-typedef varargs__T6 *varargs_vararg;
+typedef varargs__T6 *varargs_vararg__opaque;
 
 struct varargs_argDesc_r {
-                           void *ptr;
+                           void * ptr;
                            unsigned int len;
                          };
 
@@ -62,7 +62,7 @@ struct varargs__T7_a { varargs_argDesc array[MaxArg+1]; };
 struct varargs__T6_r {
                        unsigned int nArgs;
                        unsigned int i;
-                       void *contents;
+                       void * contents;
                        unsigned int size;
                        varargs__T7 arg;
                      };
@@ -138,7 +138,7 @@ extern "C" varargs_vararg varargs_start4 (const unsigned char *a_, unsigned int
 
 extern "C" unsigned int varargs_nargs (varargs_vararg v)
 {
-  return v->nArgs;
+  return static_cast<varargs_vararg__opaque> (v)->nArgs;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -156,20 +156,20 @@ extern "C" void varargs_arg (varargs_vararg v, unsigned char *a, unsigned int _a
   arg__T1 p;
   unsigned int j;
 
-  if (v->i == v->nArgs)
+  if (static_cast<varargs_vararg__opaque> (v)->i == static_cast<varargs_vararg__opaque> (v)->nArgs)
     {
       M2RTS_HALT (-1);  /* too many calls to arg.  */
       __builtin_unreachable ();
     }
   else
     {
-      if ((_a_high+1) == v->arg.array[v->i].len)
+      if ((_a_high+1) == static_cast<varargs_vararg__opaque> (v)->arg.array[static_cast<varargs_vararg__opaque> (v)->i].len)
         {
-          p = static_cast<arg__T1> (v->arg.array[v->i].ptr);
+          p = static_cast<arg__T1> (static_cast<varargs_vararg__opaque> (v)->arg.array[static_cast<varargs_vararg__opaque> (v)->i].ptr);
           j = 0;
           while (j <= _a_high)
             {
-              a[j] = (*p);
+              const_cast<unsigned char *>(a)[j] = (*p);
               p += 1;
               j += 1;
             }
@@ -179,7 +179,7 @@ extern "C" void varargs_arg (varargs_vararg v, unsigned char *a, unsigned int _a
           M2RTS_HALT (-1);  /* parameter mismatch.  */
           __builtin_unreachable ();
         }
-      v->i += 1;
+      static_cast<varargs_vararg__opaque> (v)->i += 1;
     }
 }
 
@@ -190,7 +190,7 @@ extern "C" void varargs_arg (varargs_vararg v, unsigned char *a, unsigned int _a
 
 extern "C" void varargs_next (varargs_vararg v, unsigned int i)
 {
-  v->i = i;
+  static_cast<varargs_vararg__opaque> (v)->i = i;
 }
 
 
@@ -200,24 +200,24 @@ extern "C" void varargs_next (varargs_vararg v, unsigned int i)
 
 extern "C" varargs_vararg varargs_copy (varargs_vararg v)
 {
-  varargs_vararg c;
+  varargs_vararg__opaque c;
   unsigned int j;
   unsigned int offset;
 
   Storage_ALLOCATE ((void **) &c, sizeof (varargs__T6));
-  c->i = v->i;
-  c->nArgs = v->nArgs;
-  c->size = v->size;
+  c->i = static_cast<varargs_vararg__opaque> (v)->i;
+  c->nArgs = static_cast<varargs_vararg__opaque> (v)->nArgs;
+  c->size = static_cast<varargs_vararg__opaque> (v)->size;
   Storage_ALLOCATE (&c->contents, c->size);
-  c->contents = libc_memcpy (c->contents, v->contents, static_cast<size_t> (c->size));
+  c->contents = libc_memcpy (c->contents, static_cast<varargs_vararg__opaque> (v)->contents, static_cast<size_t> (c->size));
   for (j=0; j<=c->nArgs; j++)
     {
-      offset = (unsigned int ) (((varargs_ptrToByte) (v->contents))-((varargs_ptrToByte) (v->arg.array[j].ptr)));
-      c->arg.array[j].ptr = reinterpret_cast<void *> ((varargs_ptrToByte) (c->contents));
+      offset = (unsigned int ) (((varargs_ptrToByte) (static_cast<varargs_vararg__opaque> (v)->contents))-((varargs_ptrToByte) (static_cast<varargs_vararg__opaque> (v)->arg.array[j].ptr)));
+      c->arg.array[j].ptr = static_cast<void *> ((varargs_ptrToByte) (c->contents));
       c->arg.array[j].ptr = reinterpret_cast<void *> (reinterpret_cast<char *> (c->arg.array[j].ptr)+offset);
-      c->arg.array[j].len = v->arg.array[j].len;
+      c->arg.array[j].len = static_cast<varargs_vararg__opaque> (v)->arg.array[j].len;
     }
-  return c;
+  return static_cast<varargs_vararg> (c);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -236,16 +236,16 @@ extern "C" void varargs_replace (varargs_vararg v, unsigned char *a, unsigned in
   replace__T2 p;
   unsigned int j;
 
-  if (v->i == v->nArgs)
+  if (static_cast<varargs_vararg__opaque> (v)->i == static_cast<varargs_vararg__opaque> (v)->nArgs)
     {
       M2RTS_HALT (-1);  /* too many calls to arg.  */
       __builtin_unreachable ();
     }
   else
     {
-      if ((_a_high+1) == v->arg.array[v->i].len)
+      if ((_a_high+1) == static_cast<varargs_vararg__opaque> (v)->arg.array[static_cast<varargs_vararg__opaque> (v)->i].len)
         {
-          p = static_cast<replace__T2> (v->arg.array[v->i].ptr);
+          p = static_cast<replace__T2> (static_cast<varargs_vararg__opaque> (v)->arg.array[static_cast<varargs_vararg__opaque> (v)->i].ptr);
           j = 0;
           while (j <= _a_high)
             {
@@ -271,7 +271,7 @@ extern "C" void varargs_end (varargs_vararg *v)
 {
   if ((*v) != NULL)
     {
-      Storage_DEALLOCATE (&(*v)->contents, sizeof (varargs_vararg));
+      Storage_DEALLOCATE (&static_cast<varargs_vararg__opaque> ((*v))->contents, sizeof (varargs_vararg));
       Storage_DEALLOCATE ((void **) &(*v), sizeof (varargs__T6));
     }
 }
@@ -283,7 +283,7 @@ extern "C" void varargs_end (varargs_vararg *v)
 
 extern "C" varargs_vararg varargs_start1 (const unsigned char *a_, unsigned int _a_high)
 {
-  varargs_vararg v;
+  varargs_vararg__opaque v;
   unsigned char a[_a_high+1];
 
   /* make a local copy of each unbounded array.  */
@@ -294,10 +294,10 @@ extern "C" varargs_vararg varargs_start1 (const unsigned char *a_, unsigned int
   v->nArgs = 1;
   v->size = _a_high+1;
   Storage_ALLOCATE (&v->contents, v->size);
-  v->contents = libc_memcpy (v->contents, &a, static_cast<size_t> (v->size));
+  v->contents = libc_memcpy (v->contents, const_cast<void*> (static_cast<const void*>(a)), static_cast<size_t> (v->size));
   v->arg.array[0].ptr = v->contents;
   v->arg.array[0].len = v->size;
-  return v;
+  return static_cast<varargs_vararg> (v);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -311,7 +311,7 @@ extern "C" varargs_vararg varargs_start2 (const unsigned char *a_, unsigned int
 {
   typedef unsigned char *start2__T3;
 
-  varargs_vararg v;
+  varargs_vararg__opaque v;
   start2__T3 p;
   unsigned char a[_a_high+1];
   unsigned char b[_b_high+1];
@@ -325,14 +325,14 @@ extern "C" varargs_vararg varargs_start2 (const unsigned char *a_, unsigned int
   v->nArgs = 2;
   v->size = (_a_high+_b_high)+2;
   Storage_ALLOCATE (&v->contents, v->size);
-  p = static_cast<start2__T3> (libc_memcpy (v->contents, &a, static_cast<size_t> (_a_high+1)));
-  v->arg.array[0].ptr = reinterpret_cast<void *> (p);
+  p = static_cast<start2__T3> (libc_memcpy (v->contents, const_cast<void*> (static_cast<const void*>(a)), static_cast<size_t> (_a_high+1)));
+  v->arg.array[0].ptr = static_cast<void *> (p);
   v->arg.array[0].len = _a_high+1;
   p += v->arg.array[0].len;
-  p = static_cast<start2__T3> (libc_memcpy (reinterpret_cast<void *> (p), &b, static_cast<size_t> (_b_high+1)));
-  v->arg.array[1].ptr = reinterpret_cast<void *> (p);
+  p = static_cast<start2__T3> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(b)), static_cast<size_t> (_b_high+1)));
+  v->arg.array[1].ptr = static_cast<void *> (p);
   v->arg.array[1].len = _b_high+1;
-  return v;
+  return static_cast<varargs_vararg> (v);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -346,7 +346,7 @@ extern "C" varargs_vararg varargs_start3 (const unsigned char *a_, unsigned int
 {
   typedef unsigned char *start3__T4;
 
-  varargs_vararg v;
+  varargs_vararg__opaque v;
   start3__T4 p;
   unsigned char a[_a_high+1];
   unsigned char b[_b_high+1];
@@ -362,18 +362,18 @@ extern "C" varargs_vararg varargs_start3 (const unsigned char *a_, unsigned int
   v->nArgs = 3;
   v->size = ((_a_high+_b_high)+_c_high)+3;
   Storage_ALLOCATE (&v->contents, v->size);
-  p = static_cast<start3__T4> (libc_memcpy (v->contents, &a, static_cast<size_t> (_a_high+1)));
-  v->arg.array[0].ptr = reinterpret_cast<void *> (p);
+  p = static_cast<start3__T4> (libc_memcpy (v->contents, const_cast<void*> (static_cast<const void*>(a)), static_cast<size_t> (_a_high+1)));
+  v->arg.array[0].ptr = static_cast<void *> (p);
   v->arg.array[0].len = _a_high+1;
   p += v->arg.array[0].len;
-  p = static_cast<start3__T4> (libc_memcpy (reinterpret_cast<void *> (p), &b, static_cast<size_t> (_b_high+1)));
-  v->arg.array[1].ptr = reinterpret_cast<void *> (p);
+  p = static_cast<start3__T4> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(b)), static_cast<size_t> (_b_high+1)));
+  v->arg.array[1].ptr = static_cast<void *> (p);
   v->arg.array[1].len = _b_high+1;
   p += v->arg.array[1].len;
-  p = static_cast<start3__T4> (libc_memcpy (reinterpret_cast<void *> (p), &c, static_cast<size_t> (_c_high+1)));
-  v->arg.array[2].ptr = reinterpret_cast<void *> (p);
+  p = static_cast<start3__T4> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(c)), static_cast<size_t> (_c_high+1)));
+  v->arg.array[2].ptr = static_cast<void *> (p);
   v->arg.array[2].len = _c_high+1;
-  return v;
+  return static_cast<varargs_vararg> (v);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -387,7 +387,7 @@ extern "C" varargs_vararg varargs_start4 (const unsigned char *a_, unsigned int
 {
   typedef unsigned char *start4__T5;
 
-  varargs_vararg v;
+  varargs_vararg__opaque v;
   start4__T5 p;
   unsigned char a[_a_high+1];
   unsigned char b[_b_high+1];
@@ -405,29 +405,29 @@ extern "C" varargs_vararg varargs_start4 (const unsigned char *a_, unsigned int
   v->nArgs = 4;
   v->size = (((_a_high+_b_high)+_c_high)+_d_high)+4;
   Storage_ALLOCATE (&v->contents, v->size);
-  p = static_cast<start4__T5> (libc_memcpy (v->contents, &a, static_cast<size_t> (_a_high+1)));
+  p = static_cast<start4__T5> (libc_memcpy (v->contents, const_cast<void*> (static_cast<const void*>(a)), static_cast<size_t> (_a_high+1)));
   v->arg.array[0].len = _a_high+1;
   p += v->arg.array[0].len;
-  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast<void *> (p), &b, static_cast<size_t> (_b_high+1)));
-  v->arg.array[1].ptr = reinterpret_cast<void *> (p);
+  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(b)), static_cast<size_t> (_b_high+1)));
+  v->arg.array[1].ptr = static_cast<void *> (p);
   v->arg.array[1].len = _b_high+1;
   p += v->arg.array[1].len;
-  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast<void *> (p), &c, static_cast<size_t> (_c_high+1)));
-  v->arg.array[2].ptr = reinterpret_cast<void *> (p);
+  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(c)), static_cast<size_t> (_c_high+1)));
+  v->arg.array[2].ptr = static_cast<void *> (p);
   v->arg.array[2].len = _c_high+1;
   p += v->arg.array[2].len;
-  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast<void *> (p), &c, static_cast<size_t> (_c_high+1)));
-  v->arg.array[3].ptr = reinterpret_cast<void *> (p);
+  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(c)), static_cast<size_t> (_c_high+1)));
+  v->arg.array[3].ptr = static_cast<void *> (p);
   v->arg.array[3].len = _c_high+1;
-  return v;
+  return static_cast<varargs_vararg> (v);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_varargs_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_varargs_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_varargs_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_varargs_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc-boot/Gwlists.cc b/gcc/m2/mc-boot/Gwlists.cc
index fa3f73ac212..87daa42c3ef 100644
--- a/gcc/m2/mc-boot/Gwlists.cc
+++ b/gcc/m2/mc-boot/Gwlists.cc
@@ -42,9 +42,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #   undef NULL
 #   define NULL 0
 #endif
-#define _wlists_H
 #define _wlists_C
 
+#include "Gwlists.h"
 #   include "GStorage.h"
 
 typedef struct wlists_performOperation_p wlists_performOperation;
@@ -54,16 +54,13 @@ typedef struct wlists__T1_r wlists__T1;
 
 typedef struct wlists__T2_a wlists__T2;
 
-typedef wlists__T1 *wlists_wlist;
-
-typedef void (*wlists_performOperation_t) (unsigned int);
-struct wlists_performOperation_p { wlists_performOperation_t proc; };
+typedef wlists__T1 *wlists_wlist__opaque;
 
 struct wlists__T2_a { unsigned int array[maxNoOfElements-1+1]; };
 struct wlists__T1_r {
                       unsigned int noOfElements;
                       wlists__T2 elements;
-                      wlists_wlist next;
+                      wlists_wlist__opaque next;
                     };
 
 
@@ -149,14 +146,14 @@ extern "C" wlists_wlist wlists_duplicateList (wlists_wlist l);
    removeItem - remove an element at index, i, from the wlist data type.
 */
 
-static void removeItem (wlists_wlist p, wlists_wlist l, unsigned int i);
+static void removeItem (wlists_wlist__opaque p, wlists_wlist__opaque l, unsigned int i);
 
 
 /*
    removeItem - remove an element at index, i, from the wlist data type.
 */
 
-static void removeItem (wlists_wlist p, wlists_wlist l, unsigned int i)
+static void removeItem (wlists_wlist__opaque p, wlists_wlist__opaque l, unsigned int i)
 {
   l->noOfElements -= 1;
   while (i <= l->noOfElements)
@@ -178,12 +175,12 @@ static void removeItem (wlists_wlist p, wlists_wlist l, unsigned int i)
 
 extern "C" wlists_wlist wlists_initList (void)
 {
-  wlists_wlist l;
+  wlists_wlist__opaque l;
 
   Storage_ALLOCATE ((void **) &l, sizeof (wlists__T1));
   l->noOfElements = 0;
-  l->next = NULL;
-  return l;
+  l->next = static_cast<wlists_wlist__opaque> (NULL);
+  return static_cast<wlists_wlist> (l);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -197,9 +194,9 @@ extern "C" void wlists_killList (wlists_wlist *l)
 {
   if ((*l) != NULL)
     {
-      if ((*l)->next != NULL)
+      if (static_cast<wlists_wlist__opaque> ((*l))->next != NULL)
         {
-          wlists_killList (&(*l)->next);
+          wlists_killList (reinterpret_cast<wlists_wlist *> (&static_cast<wlists_wlist__opaque> ((*l))->next));
         }
       Storage_DEALLOCATE ((void **) &(*l), sizeof (wlists__T1));
     }
@@ -212,21 +209,21 @@ extern "C" void wlists_killList (wlists_wlist *l)
 
 extern "C" void wlists_putItemIntoList (wlists_wlist l, unsigned int c)
 {
-  if (l->noOfElements < maxNoOfElements)
+  if (static_cast<wlists_wlist__opaque> (l)->noOfElements < maxNoOfElements)
     {
-      l->noOfElements += 1;
-      l->elements.array[l->noOfElements-1] = c;
+      static_cast<wlists_wlist__opaque> (l)->noOfElements += 1;
+      static_cast<wlists_wlist__opaque> (l)->elements.array[static_cast<wlists_wlist__opaque> (l)->noOfElements-1] = c;
     }
-  else if (l->next != NULL)
+  else if (static_cast<wlists_wlist__opaque> (l)->next != NULL)
     {
       /* avoid dangling else.  */
-      wlists_putItemIntoList (l->next, c);
+      wlists_putItemIntoList (static_cast<wlists_wlist> (static_cast<wlists_wlist__opaque> (l)->next), c);
     }
   else
     {
       /* avoid dangling else.  */
-      l->next = wlists_initList ();
-      wlists_putItemIntoList (l->next, c);
+      static_cast<wlists_wlist__opaque> (l)->next = static_cast<wlists_wlist__opaque> (wlists_initList ());
+      wlists_putItemIntoList (static_cast<wlists_wlist> (static_cast<wlists_wlist__opaque> (l)->next), c);
     }
 }
 
@@ -239,15 +236,15 @@ extern "C" unsigned int wlists_getItemFromList (wlists_wlist l, unsigned int n)
 {
   while (l != NULL)
     {
-      if (n <= l->noOfElements)
+      if (n <= static_cast<wlists_wlist__opaque> (l)->noOfElements)
         {
-          return l->elements.array[n-1];
+          return static_cast<wlists_wlist__opaque> (l)->elements.array[n-1];
         }
       else
         {
-          n -= l->noOfElements;
+          n -= static_cast<wlists_wlist__opaque> (l)->noOfElements;
         }
-      l = l->next;
+      l = static_cast<wlists_wlist> (static_cast<wlists_wlist__opaque> (l)->next);
     }
   return static_cast<unsigned int> (0);
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -272,9 +269,9 @@ extern "C" unsigned int wlists_getIndexOfList (wlists_wlist l, unsigned int c)
   else
     {
       i = 1;
-      while (i <= l->noOfElements)
+      while (i <= static_cast<wlists_wlist__opaque> (l)->noOfElements)
         {
-          if (l->elements.array[i-1] == c)
+          if (static_cast<wlists_wlist__opaque> (l)->elements.array[i-1] == c)
             {
               return i;
             }
@@ -283,7 +280,7 @@ extern "C" unsigned int wlists_getIndexOfList (wlists_wlist l, unsigned int c)
               i += 1;
             }
         }
-      return l->noOfElements+(wlists_getIndexOfList (l->next, c));
+      return static_cast<wlists_wlist__opaque> (l)->noOfElements+(wlists_getIndexOfList (static_cast<wlists_wlist> (static_cast<wlists_wlist__opaque> (l)->next), c));
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -306,8 +303,8 @@ extern "C" unsigned int wlists_noOfItemsInList (wlists_wlist l)
     {
       t = 0;
       do {
-        t += l->noOfElements;
-        l = l->next;
+        t += static_cast<wlists_wlist__opaque> (l)->noOfElements;
+        l = static_cast<wlists_wlist> (static_cast<wlists_wlist__opaque> (l)->next);
       } while (! (l == NULL));
       return t;
     }
@@ -337,33 +334,33 @@ extern "C" void wlists_includeItemIntoList (wlists_wlist l, unsigned int c)
 
 extern "C" void wlists_removeItemFromList (wlists_wlist l, unsigned int c)
 {
-  wlists_wlist p;
+  wlists_wlist__opaque p;
   unsigned int i;
   bool found;
 
   if (l != NULL)
     {
       found = false;
-      p = NULL;
+      p = static_cast<wlists_wlist__opaque> (NULL);
       do {
         i = 1;
-        while ((i <= l->noOfElements) && (l->elements.array[i-1] != c))
+        while ((i <= static_cast<wlists_wlist__opaque> (l)->noOfElements) && (static_cast<wlists_wlist__opaque> (l)->elements.array[i-1] != c))
           {
             i += 1;
           }
-        if ((i <= l->noOfElements) && (l->elements.array[i-1] == c))
+        if ((i <= static_cast<wlists_wlist__opaque> (l)->noOfElements) && (static_cast<wlists_wlist__opaque> (l)->elements.array[i-1] == c))
           {
             found = true;
           }
         else
           {
-            p = l;
-            l = l->next;
+            p = static_cast<wlists_wlist__opaque> (l);
+            l = static_cast<wlists_wlist> (static_cast<wlists_wlist__opaque> (l)->next);
           }
       } while (! ((l == NULL) || found));
       if (found)
         {
-          removeItem (p, l, i);
+          removeItem (p, static_cast<wlists_wlist__opaque> (l), i);
         }
     }
 }
@@ -379,15 +376,15 @@ extern "C" void wlists_replaceItemInList (wlists_wlist l, unsigned int n, unsign
 {
   while (l != NULL)
     {
-      if (n <= l->noOfElements)
+      if (n <= static_cast<wlists_wlist__opaque> (l)->noOfElements)
         {
-          l->elements.array[n-1] = w;
+          static_cast<wlists_wlist__opaque> (l)->elements.array[n-1] = w;
         }
       else
         {
-          n -= l->noOfElements;
+          n -= static_cast<wlists_wlist__opaque> (l)->noOfElements;
         }
-      l = l->next;
+      l = static_cast<wlists_wlist> (static_cast<wlists_wlist__opaque> (l)->next);
     }
 }
 
@@ -402,9 +399,9 @@ extern "C" bool wlists_isItemInList (wlists_wlist l, unsigned int c)
 
   do {
     i = 1;
-    while (i <= l->noOfElements)
+    while (i <= static_cast<wlists_wlist__opaque> (l)->noOfElements)
       {
-        if (l->elements.array[i-1] == c)
+        if (static_cast<wlists_wlist__opaque> (l)->elements.array[i-1] == c)
           {
             return true;
           }
@@ -413,7 +410,7 @@ extern "C" bool wlists_isItemInList (wlists_wlist l, unsigned int c)
             i += 1;
           }
       }
-    l = l->next;
+    l = static_cast<wlists_wlist> (static_cast<wlists_wlist__opaque> (l)->next);
   } while (! (l == NULL));
   return false;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -446,27 +443,27 @@ extern "C" void wlists_foreachItemInListDo (wlists_wlist l, wlists_performOperat
 
 extern "C" wlists_wlist wlists_duplicateList (wlists_wlist l)
 {
-  wlists_wlist m;
+  wlists_wlist__opaque m;
   unsigned int n;
   unsigned int i;
 
-  m = wlists_initList ();
+  m = static_cast<wlists_wlist__opaque> (wlists_initList ());
   n = wlists_noOfItemsInList (l);
   i = 1;
   while (i <= n)
     {
-      wlists_putItemIntoList (m, wlists_getItemFromList (l, i));
+      wlists_putItemIntoList (static_cast<wlists_wlist> (m), wlists_getItemFromList (l, i));
       i += 1;
     }
-  return m;
+  return static_cast<wlists_wlist> (m);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_wlists_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_wlists_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_wlists_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_wlists_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/mc/decl.def b/gcc/m2/mc/decl.def
index 0cd8d7151f7..8f12f010850 100644
--- a/gcc/m2/mc/decl.def
+++ b/gcc/m2/mc/decl.def
@@ -249,6 +249,21 @@ PROCEDURE isTypeHidden (n: node) : BOOLEAN ;
 PROCEDURE hasHidden (n: node) : BOOLEAN ;
 
 
+(*
+   putTypeOpaque - marks type, des, as being an opaque type.
+                   TYPE des ;
+*)
+
+PROCEDURE putTypeOpaque (des: node) ;
+
+
+(*
+   isTypeOpaque - returns TRUE if type, n, is an opaque type.
+*)
+
+PROCEDURE isTypeOpaque (n: node) : BOOLEAN ;
+
+
 (*
    isVar - returns TRUE if node, n, is a type.
 *)
diff --git a/gcc/m2/mc/decl.mod b/gcc/m2/mc/decl.mod
index c3ee646caaf..37fc3962695 100644
--- a/gcc/m2/mc/decl.mod
+++ b/gcc/m2/mc/decl.mod
@@ -81,6 +81,7 @@ CONST
    enableDefForCStrings   = FALSE ;   (* currently disabled.  *)
    enableMemsetOnAllocation = TRUE ;  (* Should we memset (..., 0, ...) the allocated mem?  *)
    forceQualified  = TRUE ;
+   debugOpaque     = FALSE ;
 
 TYPE
    language = (ansiC, ansiCP, pim4) ;
@@ -127,7 +128,7 @@ TYPE
             componentref, pointerref, arrayref, deref,
 	    equal, notequal, less, greater, greequal, lessequal,
 	    lsl, lsr, lor, land, lnot, lxor,
-	    and, or, not, identlist, vardecl, setvalue) ;
+	    and, or, not, identlist, vardecl, setvalue, opaquecast) ;
 
     node = POINTER TO nodeRec ;
 
@@ -260,12 +261,24 @@ TYPE
 			 identlist       :  identlistF       : identlistT |
 			 vardecl         :  vardeclF         : vardeclT |
                          funccall        :  funccallF        : funccallT |
-			 setvalue        :  setvalueF        : setvalueT
+			 setvalue        :  setvalueF        : setvalueT |
+                         opaquecast      :  opaquecastF      : opaquecastT
 
                          END ;
                          at: where ;
                       END ;
 
+       opaqueCastState = RECORD
+                            opaque,
+                            voidStar: BOOLEAN ;
+                         END ;
+
+       opaquecastT = RECORD
+                        (* Describes the cast of the opaque.  *)
+                        exp        : node ;
+                        opaqueState: opaqueCastState ;
+                     END ;
+
        intrinsicT = RECORD
                        args            : node ;
                        noArgs          : CARDINAL ;
@@ -298,6 +311,7 @@ TYPE
 		      args           : node ;
 		      type           : node ;
 		      funccallComment: commentPair ;
+                      opaqueState    : opaqueCastState ;
                    END ;
 
        commentT = RECORD
@@ -328,6 +342,7 @@ TYPE
                   name      :  Name ;
 		  type      :  node ;
 		  scope     :  node ;
+                  isOpaque,
 		  isHidden,
 		  isInternal:  BOOLEAN ;
                END ;
@@ -355,6 +370,7 @@ TYPE
 		 isVarParameter,
                  isUsed        :  BOOLEAN ;
                  cname         :  cnameT ;
+                 opaqueState   :  opaqueCastState ;
               END ;
 
        enumerationT = RECORD
@@ -382,6 +398,7 @@ TYPE
 		   type,
 		   scope      :  node ;
 		   isUnbounded:  BOOLEAN ;
+                   opaqueState:  opaqueCastState ;
                 END ;
 
        stringT = RECORD
@@ -412,6 +429,7 @@ TYPE
                       isUnbounded:  BOOLEAN ;
                       isForC     :  BOOLEAN ;
                       isUsed     :  BOOLEAN ;
+                      opaqueState:  opaqueCastState ;
                    END ;
 
        paramT = RECORD
@@ -421,6 +439,7 @@ TYPE
                    isUnbounded:  BOOLEAN ;
                    isForC     :  BOOLEAN ;
                    isUsed     :  BOOLEAN ;
+                   opaqueState:  opaqueCastState ;
                 END ;
 
        varargsT = RECORD
@@ -435,18 +454,20 @@ TYPE
                  END ;
 
        pointerT = RECORD
-                     type :  node ;
-                     scope:  node ;
+                     type       :  node ;
+                     scope      :  node ;
+                     opaqueState:  opaqueCastState ;
                   END ;
 
        recordfieldT = RECORD
-                         name   :  Name ;
-			 type   :  node ;
-			 tag    :  BOOLEAN ;
-			 parent :  node ;
-			 varient:  node ;
-			 scope  :  node ;
-			 cname  :  cnameT ;
+                         name       :  Name ;
+			 type       :  node ;
+			 tag        :  BOOLEAN ;
+			 parent     :  node ;
+			 varient    :  node ;
+			 scope      :  node ;
+			 cname      :  cnameT ;
+                         opaqueState:  opaqueCastState ;
                       END ;
 
        varientfieldT = RECORD
@@ -472,21 +493,24 @@ TYPE
               END ;
 
        componentrefT = RECORD
-                          rec       :  node ;
-                          field     :  node ;
-                          resultType:  node ;
+                          rec        :  node ;
+                          field      :  node ;
+                          resultType :  node ;
+                          opaqueState:  opaqueCastState ;
                        END ;
 
        pointerrefT = RECORD
-                        ptr       :  node ;
-                        field     :  node ;
-                        resultType:  node ;
+                        ptr        :  node ;
+                        field      :  node ;
+                        resultType :  node ;
+                        opaqueState:  opaqueCastState ;
                      END ;
 
        arrayrefT = RECORD
-                      array     :  node ;
-                      index     :  node ;
-                      resultType:  node ;
+                      array      :  node ;
+                      index      :  node ;
+                      resultType :  node ;
+                      opaqueState:  opaqueCastState ;
                    END ;
 
        commentPair = RECORD
@@ -596,15 +620,17 @@ TYPE
                        cname          :  cnameT ;
 		       defComment,
 		       modComment     :  commentDesc ;
+                       opaqueState    :  opaqueCastState ;
                     END ;
 
        proctypeT = RECORD
-                      parameters:  Index ;
+                      parameters :  Index ;
                       returnopt,
-                      vararg    :  BOOLEAN ;
-                      optarg    :  node ;
-		      scope     :  node ;
-                      returnType:  node ;
+                      vararg     :  BOOLEAN ;
+                      optarg     :  node ;
+		      scope      :  node ;
+                      returnType :  node ;
+                      opaqueState:  opaqueCastState ;
                    END ;
 
        binaryT = RECORD
@@ -2025,6 +2051,7 @@ BEGIN
       typeF.name := n ;
       typeF.type := NIL ;
       typeF.scope := getDeclScope () ;
+      typeF.isOpaque := FALSE ;
       typeF.isHidden := FALSE ;
       typeF.isInternal := FALSE
    END ;
@@ -2052,6 +2079,7 @@ BEGIN
          typeF.name := n ;
          typeF.type := NIL ;
          typeF.scope := getDeclScope () ;
+         typeF.isOpaque := FALSE ;
          typeF.isHidden := FALSE
       END ;
       RETURN addToScope (d)
@@ -2091,7 +2119,8 @@ BEGIN
    assert (var#NIL) ;
    assert (isVar (var)) ;
    var^.varF.type := type ;
-   var^.varF.decl := decl
+   var^.varF.decl := decl ;
+   initNodeOpaqueState (var) ;
 END putVar ;
 
 
@@ -2328,7 +2357,7 @@ END paramLeave ;
 
 
 (*
-   putReturnType - sets the return type of procedure or proctype, proc, to, type.
+   putReturnType - sets the return type of procedure or proctype proc to type.
 *)
 
 PROCEDURE putReturnType (proc, type: node) ;
@@ -2339,7 +2368,8 @@ BEGIN
       proc^.procedureF.returnType := type
    ELSE
       proc^.proctypeF.returnType := type
-   END
+   END ;
+   initNodeOpaqueState (proc)
 END putReturnType ;
 
 
@@ -2374,8 +2404,9 @@ BEGIN
       proctypeF.returnopt := FALSE ;
       proctypeF.optarg := NIL ;
       proctypeF.vararg := FALSE ;
-      proctypeF.returnType := NIL
+      proctypeF.returnType := NIL ;
    END ;
+   initNodeOpaqueState (d) ;
    RETURN d
 END makeProcType ;
 
@@ -2387,7 +2418,8 @@ END makeProcType ;
 PROCEDURE putProcTypeReturn (proc, type: node) ;
 BEGIN
    assert (isProcType (proc)) ;
-   proc^.proctypeF.returnType := type
+   proc^.proctypeF.returnType := type ;
+   initNodeOpaqueState (proc)
 END putProcTypeReturn ;
 
 
@@ -2418,6 +2450,7 @@ BEGIN
    d^.paramF.isUnbounded := FALSE ;
    d^.paramF.isForC := isDefForCNode (proc) ;
    d^.paramF.isUsed := isused ;
+   initNodeOpaqueState (d) ;
    RETURN d
 END makeNonVarParameter ;
 
@@ -2438,6 +2471,7 @@ BEGIN
    d^.varparamF.isUnbounded := FALSE ;
    d^.varparamF.isForC := isDefForCNode (proc) ;
    d^.varparamF.isUsed := isused ;
+   initNodeOpaqueState (d) ;
    RETURN d
 END makeVarParameter ;
 
@@ -3864,8 +3898,9 @@ BEGIN
       f := newNode (funccall) ;
       f^.funccallF.function := c ;
       f^.funccallF.args := n ;
-      f^.funccallF.type := NIL ;
-      initPair (f^.funccallF.funccallComment)
+      f^.funccallF.type := getType (c) ;
+      initPair (f^.funccallF.funccallComment) ;
+      initNodeOpaqueState (f)
    END ;
    RETURN f
 END makeFuncCall ;
@@ -3936,6 +3971,33 @@ BEGIN
 END hasHidden ;
 
 
+(*
+   putTypeOpaque - marks type, des, as being an opaque type.
+                   TYPE des ;
+*)
+
+PROCEDURE putTypeOpaque (des: node) ;
+VAR
+   s: node ;
+BEGIN
+   assert (des#NIL) ;
+   assert (isType (des)) ;
+   des^.typeF.isOpaque := TRUE
+END putTypeOpaque ;
+
+
+(*
+   isTypeOpaque - returns TRUE if type, n, is an opaque type.
+*)
+
+PROCEDURE isTypeOpaque (n: node) : BOOLEAN ;
+BEGIN
+   assert (n#NIL) ;
+   assert (isType (n)) ;
+   RETURN n^.typeF.isOpaque
+END isTypeOpaque ;
+
+
 (*
    putTypeInternal - marks type, des, as being an internally generated type.
 *)
@@ -4673,6 +4735,7 @@ BEGIN
    n^.componentrefF.rec := rec ;
    n^.componentrefF.field := field ;
    n^.componentrefF.resultType := getType (field) ;
+   initNodeOpaqueState (n) ;
    RETURN n
 END doMakeComponentRef ;
 
@@ -4708,6 +4771,7 @@ BEGIN
       rec^.pointerrefF.ptr := a ;
       rec^.pointerrefF.field := field ;
       rec^.pointerrefF.resultType := getType (field) ;
+      initNodeOpaqueState (rec) ;
       RETURN rec
    ELSE
       RETURN doMakeComponentRef (rec, field)
@@ -4739,6 +4803,7 @@ BEGIN
    n^.pointerrefF.ptr := ptr ;
    n^.pointerrefF.field := field ;
    n^.pointerrefF.resultType := getType (field) ;
+   initNodeOpaqueState (n) ;
    RETURN n
 END makePointerRef ;
 
@@ -5192,9 +5257,13 @@ END getMaxMinType ;
 *)
 
 PROCEDURE doGetFuncType (n: node) : node ;
+VAR
+   result: node ;
 BEGIN
    assert (isFuncCall (n)) ;
-   RETURN doSetExprType (n^.funccallF.type, getType (n^.funccallF.function))
+   result := doSetExprType (n^.funccallF.type, getType (n^.funccallF.function)) ;
+   initNodeOpaqueState (n) ;  (* Update now that the return type is known.  *)
+   RETURN result
 END doGetFuncType ;
 
 
@@ -5951,10 +6020,10 @@ BEGIN
    IF needsParen (left)
    THEN
       outText (p, '(') ;
-      doExprCup (p, left, unpackProc) ;
+      left := doExprCup (p, left, unpackProc, FALSE) ;
       outText (p, ')')
    ELSE
-      doExprCup (p, left, unpackProc)
+      left := doExprCup (p, left, unpackProc, FALSE)
    END ;
    IF l
    THEN
@@ -5968,10 +6037,10 @@ BEGIN
    IF needsParen (right)
    THEN
       outText (p, '(') ;
-      doExprCup (p, right, unpackProc) ;
+      right := doExprCup (p, right, unpackProc, FALSE) ;
       outText (p, ')')
    ELSE
-      doExprCup (p, right, unpackProc)
+      right := doExprCup (p, right, unpackProc, FALSE)
    END
 END doBinary ;
 
@@ -5991,11 +6060,12 @@ END doPostUnary ;
    doDeRefC -
 *)
 
-PROCEDURE doDeRefC (p: pretty; expr: node) ;
+PROCEDURE doDeRefC (p: pretty; expr: node) : node ;
 BEGIN
    outText (p, '(*') ;
-   doExprC (p, expr) ;
-   outText (p, ')')
+   expr := castOpaque (p, expr, FALSE) ;
+   outText (p, ')') ;
+   RETURN expr
 END doDeRefC ;
 
 
@@ -6079,7 +6149,7 @@ END getLastOp ;
 
 PROCEDURE doComponentRefC (p: pretty; l, r: node) ;
 BEGIN
-   doExprC (p, l) ;
+   flushOpaque (p, l, FALSE) ;
    outText (p, '.') ;
    doExprC (p, r)
 END doComponentRefC ;
@@ -6091,7 +6161,7 @@ END doComponentRefC ;
 
 PROCEDURE doPointerRefC (p: pretty; l, r: node) ;
 BEGIN
-   doExprC (p, l) ;
+   flushOpaque (p, l, FALSE) ;
    outText (p, '->') ;
    doExprC (p, r)
 END doPointerRefC ;
@@ -6156,23 +6226,38 @@ END isZero ;
 
 
 (*
-   doArrayRef -
+   doArrayRef - perform an array reference.  If constCast
+                then an unbounded array access will be const_cast
+                (the constCast should be TRUE if an assignment to
+                the array is required).
 *)
 
-PROCEDURE doArrayRef (p: pretty; n: node) ;
+PROCEDURE doArrayRef (p: pretty; n: node; constCast: BOOLEAN) ;
 VAR
-   t   : node ;
+   type,
+   v   : node ;
    i, c: CARDINAL ;
 BEGIN
    assert (n # NIL) ;
    assert (isArrayRef (n)) ;
-   t := skipType (getType (n^.arrayrefF.array)) ;
-   IF isUnbounded (t)
+   type := skipType (getType (n^.arrayrefF.array)) ;
+   IF isUnbounded (type)
    THEN
-      outTextN (p, getSymName (n^.arrayrefF.array))
+      v := n^.arrayrefF.array ;
+      IF constCast AND isVar (n^.arrayrefF.array) AND
+         (v^.varF.isParameter OR v^.varF.isVarParameter)
+      THEN
+         outText (p, "const_cast<") ;
+         doTypeNameC (p, getType (v)) ;
+         outText (p, ">(") ;
+         outTextN (p, getSymName (n^.arrayrefF.array)) ;
+         outText (p, ")")
+      ELSE
+         outTextN (p, getSymName (n^.arrayrefF.array))
+      END
    ELSE
       doExprC (p, n^.arrayrefF.array) ;
-      assert (isArray (t)) ;
+      assert (isArray (type)) ;
       outText (p, '.array')
    END ;
    outText (p, '[') ;
@@ -6180,16 +6265,16 @@ BEGIN
    c := expListLen (n^.arrayrefF.index) ;
    WHILE i<=c DO
       doExprC (p, getExpList (n^.arrayrefF.index, i)) ;
-      IF isUnbounded (t)
+      IF isUnbounded (type)
       THEN
          assert (c = 1)
       ELSE
-         doSubtractC (p, getMin (t^.arrayF.subr)) ;
+         doSubtractC (p, getMin (type^.arrayF.subr)) ;
 	 IF i<c
          THEN
-            assert (isArray (t)) ;
+            assert (isArray (type)) ;
             outText (p, '].array[') ;
-            t := skipType (getType (t))
+            type := skipType (getType (type))
          END
       END ;
       INC (i)
@@ -6466,7 +6551,7 @@ BEGIN
       im              :  doImC (p, n) |
       cmplx           :  doCmplx (p, n) |
 
-      deref           :  doDeRefC (p, unaryF.arg) |
+      deref           :  unaryF.arg := doDeRefC (p, unaryF.arg) |
       equal           :  doBinary (p, '==', binaryF.left, binaryF.right, TRUE, TRUE, TRUE) |
       notequal        :  doBinary (p, '!=', binaryF.left, binaryF.right, TRUE, TRUE, TRUE) |
       less            :  doBinary (p, '<', binaryF.left, binaryF.right, TRUE, TRUE, FALSE) |
@@ -6490,7 +6575,7 @@ BEGIN
       enumerationfield:  doEnumerationField (p, n) |
       string          :  doStringC (p, n) |
       var             :  doVar (p, n) |
-      arrayref        :  doArrayRef (p, n) |
+      arrayref        :  doArrayRef (p, n, FALSE) |
       funccall        :  doFuncExprC (p, n) |
       procedure       :  doProcedure (p, n) |
       recordfield     :  doRecordfield (p, n) |
@@ -6529,19 +6614,26 @@ END doExprC ;
    doExprCup -
 *)
 
-PROCEDURE doExprCup (p: pretty; n: node; unpackProc: BOOLEAN) ;
+PROCEDURE doExprCup (p: pretty; n: node;
+                     unpackProc, uncastConst: BOOLEAN) : node ;
 VAR
-   t: node ;
+   type: node ;
 BEGIN
-   doExprC (p, n) ;
-   IF unpackProc
+   IF uncastConst AND isArrayRef (n)
    THEN
-      t := skipType (getExprType (n)) ;
-      IF (t # NIL) AND isAProcType (t)
+      doArrayRef (p, n, TRUE)
+   ELSE
+      doExprC (p, n) ;
+      IF unpackProc
       THEN
-         outText (p, '.proc')
+         type := skipType (getExprType (n)) ;
+         IF (type # NIL) AND isAProcType (type)
+         THEN
+            outText (p, '.proc')
+         END
       END
-   END
+   END ;
+   RETURN n
 END doExprCup ;
 
 
@@ -7040,31 +7132,10 @@ END outTextN ;
 
 
 (*
-   doTypeAliasC -
-*)
-
-PROCEDURE doTypeAliasC (p: pretty; n: node; VAR m: node) ;
-BEGIN
-   print (p, "typedef") ; setNeedSpace (p) ;
-   IF isTypeHidden (n) AND (isDef (getMainModule ()) OR (getScope (n) # getMainModule ()))
-   THEN
-      outText (p, "void *")
-   ELSE
-      doTypeC (p, getType (n), m)
-   END ;
-   IF m#NIL
-   THEN
-      doFQNameC (p, m)
-   END ;
-   print (p, ';\n\n')
-END doTypeAliasC ;
-
-
-(*
-   doEnumerationC -
+   outputEnumerationC -
 *)
 
-PROCEDURE doEnumerationC (p: pretty; n: node) ;
+PROCEDURE outputEnumerationC (p: pretty; n: node) ;
 VAR
    i, h: CARDINAL ;
    s   : node ;
@@ -7083,6 +7154,47 @@ BEGIN
       INC (i)
    END ;
    outText (p, "}")
+END outputEnumerationC ;
+
+
+(*
+   isDeclType - return TRUE if the current module should declare type.
+*)
+
+PROCEDURE isDeclType (type: node) : BOOLEAN ;
+VAR
+   n,
+   def : node ;
+   name: Name ;
+BEGIN
+   IF isImp (currentModule)
+   THEN
+      name := getSymName (type) ;
+      IF name # NulName
+      THEN
+         (* Lookup the matching .def module.  *)
+         def := lookupDef (getSymName (currentModule)) ;
+         IF def # NIL
+         THEN
+            (* Return TRUE if the symbol has not already been declared in the .def.  *)
+            RETURN lookupExported (def, name) = NIL
+         END
+      END
+   END ;
+   RETURN TRUE
+END isDeclType ;
+
+
+(*
+   doEnumerationC -
+*)
+
+PROCEDURE doEnumerationC (p: pretty; n: node) ;
+BEGIN
+   IF isDeclType (n)
+   THEN
+      outputEnumerationC (p, n)
+   END
 END doEnumerationC ;
 
 
@@ -7301,15 +7413,593 @@ END getParameterVariable ;
 
 PROCEDURE doParamTypeEmit (p: pretty; paramnode, paramtype: node) ;
 BEGIN
-   assert (isParam (paramnode) OR isVarParam (paramnode)) ;
-   IF isForC (paramnode) AND isProcType (skipType (paramtype))
-   THEN
-      doFQNameC (p, paramtype) ;
-      outText (p, "_C")
+   assert (isParam (paramnode) OR isVarParam (paramnode)) ;
+   IF isForC (paramnode) AND isProcType (skipType (paramtype))
+   THEN
+      doFQNameC (p, paramtype) ;
+      outText (p, "_C")
+   ELSE
+      doTypeNameC (p, paramtype) ;
+      doOpaqueModifier (p, paramnode) ;
+      (*
+      IF nodeUsesOpaque (paramnode) AND (NOT getNodeOpaqueVoidStar (paramnode))
+      THEN
+         outText (p, '__opaque')
+      END
+      *)
+   END
+END doParamTypeEmit ;
+
+
+(*
+   doParamTypeNameModifier - Add an _ to an unbounded parameter which is non var.
+*)
+
+PROCEDURE doParamTypeNameModifier (p: pretty; ptype: node; varparam: BOOLEAN) ;
+BEGIN
+   IF (NOT varparam) AND isArray (ptype) AND isUnbounded (ptype)
+   THEN
+      outText (p, '_')
+   END
+END doParamTypeNameModifier ;
+
+
+(*
+   initOpaqueCastState - assign fields opaque and voidstar in opaquestate.
+*)
+
+PROCEDURE initOpaqueCastState (VAR opaquestate: opaqueCastState; opaque, voidstar: BOOLEAN) ;
+BEGIN
+   opaquestate.opaque := opaque ;
+   opaquestate.voidStar := voidstar
+END initOpaqueCastState ;
+
+
+(*
+   initNodeOpaqueCastState - assign opaque and currentvoidstar
+*)
+
+PROCEDURE initNodeOpaqueCastState (n: node; opaque, voidstar: BOOLEAN) ;
+BEGIN
+   CASE n^.kind OF
+
+   opaquecast  :  initOpaqueCastState (n^.opaquecastF.opaqueState, opaque, voidstar) |
+   funccall    :  initOpaqueCastState (n^.funccallF.opaqueState, opaque, voidstar) |
+   var         :  initOpaqueCastState (n^.varF.opaqueState, opaque, voidstar) |
+   array       :  initOpaqueCastState (n^.arrayF.opaqueState, opaque, voidstar) |
+   varparam    :  initOpaqueCastState (n^.varparamF.opaqueState, opaque, voidstar) |
+   param       :  initOpaqueCastState (n^.paramF.opaqueState, opaque, voidstar) |
+   pointer     :  initOpaqueCastState (n^.pointerF.opaqueState, opaque, voidstar) |
+   recordfield :  initOpaqueCastState (n^.recordfieldF.opaqueState, opaque, voidstar) |
+   componentref:  initOpaqueCastState (n^.componentrefF.opaqueState, opaque, voidstar) |
+   pointerref  :  initOpaqueCastState (n^.pointerrefF.opaqueState, opaque, voidstar) |
+   arrayref    :  initOpaqueCastState (n^.arrayrefF.opaqueState, opaque, voidstar) |
+   procedure   :  initOpaqueCastState (n^.procedureF.opaqueState, opaque, voidstar) |
+   proctype    :  initOpaqueCastState (n^.proctypeF.opaqueState, opaque, voidstar)
+
+   ELSE
+      HALT
+   END
+END initNodeOpaqueCastState ;
+
+
+(*
+   setOpaqueCastState - set the voidStar field in opaquestate.
+*)
+
+PROCEDURE setOpaqueCastState (VAR opaquestate: opaqueCastState; voidstar: BOOLEAN) ;
+BEGIN
+   opaquestate.voidStar := voidstar
+END setOpaqueCastState ;
+
+
+(*
+   setNodeOpaqueVoidStar - sets the voidStar field in node to voidstar.
+*)
+
+PROCEDURE setNodeOpaqueVoidStar (n: node; voidstar: BOOLEAN) ;
+BEGIN
+   assert (nodeUsesOpaque (n)) ;
+   CASE n^.kind OF
+
+   opaquecast  :  setOpaqueCastState (n^.opaquecastF.opaqueState, voidstar) |
+   funccall    :  setOpaqueCastState (n^.funccallF.opaqueState, voidstar) |
+   var         :  setOpaqueCastState (n^.varF.opaqueState, voidstar) |
+   array       :  setOpaqueCastState (n^.arrayF.opaqueState, voidstar) |
+   varparam    :  setOpaqueCastState (n^.varparamF.opaqueState, voidstar) |
+   param       :  setOpaqueCastState (n^.paramF.opaqueState, voidstar) |
+   pointer     :  setOpaqueCastState (n^.pointerF.opaqueState, voidstar) |
+   recordfield :  setOpaqueCastState (n^.recordfieldF.opaqueState, voidstar) |
+   componentref:  assert (NOT voidstar) ;
+                  setOpaqueCastState (n^.componentrefF.opaqueState, voidstar) |
+   pointerref  :  assert (NOT voidstar) ;
+                  setOpaqueCastState (n^.pointerrefF.opaqueState, voidstar) |
+   arrayref    :  setOpaqueCastState (n^.arrayrefF.opaqueState, voidstar) |
+   procedure   :  setOpaqueCastState (n^.procedureF.opaqueState, voidstar) |
+   proctype    :  setOpaqueCastState (n^.proctypeF.opaqueState, voidstar)
+
+   ELSE
+      HALT
+   END
+END setNodeOpaqueVoidStar ;
+
+
+(*
+   nodeUsesOpaque - return TRUE if node n uses an opaque type.
+*)
+
+PROCEDURE nodeUsesOpaque (n: node) : BOOLEAN ;
+BEGIN
+   CASE n^.kind OF
+
+   opaquecast  :  RETURN n^.opaquecastF.opaqueState.opaque |
+   funccall    :  RETURN n^.funccallF.opaqueState.opaque |
+   var         :  RETURN n^.varF.opaqueState.opaque |
+   array       :  RETURN n^.arrayF.opaqueState.opaque |
+   varparam    :  RETURN n^.varparamF.opaqueState.opaque |
+   param       :  RETURN n^.paramF.opaqueState.opaque |
+   pointer     :  RETURN n^.pointerF.opaqueState.opaque |
+   recordfield :  RETURN n^.recordfieldF.opaqueState.opaque |
+   componentref:  RETURN n^.componentrefF.opaqueState.opaque |
+   pointerref  :  RETURN n^.pointerrefF.opaqueState.opaque |
+   arrayref    :  RETURN n^.arrayrefF.opaqueState.opaque |
+   procedure   :  RETURN n^.procedureF.opaqueState.opaque |
+   proctype    :  RETURN n^.proctypeF.opaqueState.opaque |
+   deref       :  RETURN nodeUsesOpaque (n^.unaryF.arg)
+
+   ELSE
+      RETURN FALSE
+   END
+END nodeUsesOpaque ;
+
+
+(*
+   getNodeOpaqueVoidStar - return TRUE if the opaque type used by node n is a void *.
+*)
+
+PROCEDURE getNodeOpaqueVoidStar (n: node) : BOOLEAN ;
+BEGIN
+   assert (nodeUsesOpaque (n)) ;
+   CASE n^.kind OF
+
+   opaquecast  :  RETURN n^.opaquecastF.opaqueState.voidStar |
+   funccall    :  RETURN n^.funccallF.opaqueState.voidStar |
+   var         :  RETURN n^.varF.opaqueState.voidStar |
+   array       :  RETURN n^.arrayF.opaqueState.voidStar |
+   varparam    :  RETURN n^.varparamF.opaqueState.voidStar |
+   param       :  RETURN n^.paramF.opaqueState.voidStar |
+   pointer     :  RETURN n^.pointerF.opaqueState.voidStar |
+   recordfield :  RETURN n^.recordfieldF.opaqueState.voidStar |
+   componentref:  RETURN n^.componentrefF.opaqueState.voidStar |
+   pointerref  :  RETURN n^.pointerrefF.opaqueState.voidStar |
+   arrayref    :  RETURN n^.arrayrefF.opaqueState.voidStar |
+   procedure   :  RETURN n^.procedureF.opaqueState.voidStar |
+   proctype    :  RETURN n^.proctypeF.opaqueState.voidStar |
+   deref       :  RETURN FALSE
+
+   ELSE
+      HALT
+   END
+END getNodeOpaqueVoidStar ;
+
+
+(*
+   getOpaqueFlushNecessary - return TRUE if the value next differs from the opaque state.
+*)
+
+PROCEDURE getOpaqueFlushNecessary (state: opaqueCastState; next: BOOLEAN) : BOOLEAN ;
+BEGIN
+   RETURN state.opaque AND (state.voidStar # next)
+END getOpaqueFlushNecessary ;
+
+
+(*
+   getNodeOpaqueFlushNecessary - return TRUE if the value of next requires a cast.
+*)
+
+PROCEDURE getNodeOpaqueFlushNecessary (n: node; next: BOOLEAN) : BOOLEAN ;
+BEGIN
+   CASE n^.kind OF
+
+   opaquecast  :  RETURN getOpaqueFlushNecessary (n^.opaquecastF.opaqueState, next) |
+   funccall    :  RETURN getOpaqueFlushNecessary (n^.funccallF.opaqueState, next) |
+   var         :  RETURN getOpaqueFlushNecessary (n^.varF.opaqueState, next) |
+   array       :  RETURN getOpaqueFlushNecessary (n^.arrayF.opaqueState, next) |
+   varparam    :  RETURN getOpaqueFlushNecessary (n^.varparamF.opaqueState, next) |
+   param       :  RETURN getOpaqueFlushNecessary (n^.paramF.opaqueState, next) |
+   pointer     :  RETURN getOpaqueFlushNecessary (n^.pointerF.opaqueState, next) |
+   recordfield :  RETURN getOpaqueFlushNecessary (n^.recordfieldF.opaqueState, next) |
+   componentref:  RETURN getOpaqueFlushNecessary (n^.componentrefF.opaqueState, next) |
+   pointerref  :  RETURN getOpaqueFlushNecessary (n^.pointerrefF.opaqueState, next) |
+   arrayref    :  RETURN getOpaqueFlushNecessary (n^.arrayrefF.opaqueState, next) |
+   procedure   :  RETURN getOpaqueFlushNecessary (n^.procedureF.opaqueState, next) |
+   proctype    :  RETURN getOpaqueFlushNecessary (n^.proctypeF.opaqueState, next)
+
+   ELSE
+      RETURN FALSE
+   END
+END getNodeOpaqueFlushNecessary ;
+
+
+(*
+   makeOpaqueCast - wrap node n with an opaquecast node and assign
+                    voidstar into the new opaque state.
+*)
+
+PROCEDURE makeOpaqueCast (n: node; voidstar: BOOLEAN) : node ;
+VAR
+   o: node ;
+BEGIN
+   o := newNode (opaquecast) ;
+   WITH o^.opaquecastF DO
+      exp := n ;
+      initOpaqueCastState (opaqueState, TRUE, voidstar)
+   END ;
+   RETURN o
+END makeOpaqueCast ;
+
+
+(*
+   flushOpaque - perform a cast to voidstar (if necessary) and ignore the new
+                 node which could be created.
+*)
+
+PROCEDURE flushOpaque (p: pretty; n: node; toVoidStar: BOOLEAN) ;
+VAR
+   o: node ;
+BEGIN
+   o := castOpaque (p, n, toVoidStar)
+END flushOpaque ;
+
+
+(*
+   castOpaque - flushes the opaque type casts if necessary and changes the
+                voidstar boolean value.   If necessary it creates a opaquecast
+                and returns the new node otherwise return n.
+*)
+
+PROCEDURE castOpaque (p: pretty; n: node; toVoidStar: BOOLEAN) : node ;
+VAR
+   type: node ;
+BEGIN
+   IF getNodeOpaqueFlushNecessary (n, toVoidStar)
+   THEN
+      type := getType (n) ;
+      IF toVoidStar
+      THEN
+         (* next is true cast to void * opaque type.  *)
+         outText (p, 'static_cast<') ;
+         doTypeNameC (p, type) ;
+         noSpace (p) ;
+         outText (p, '> (') ;
+         doExprC (p, n) ;
+         outText (p, ')') ;
+         RETURN makeOpaqueCast (n, TRUE)
+      ELSE
+         (* next is false cast to __opaque opaque type.  *)
+         outText (p, 'static_cast<') ;
+         doTypeNameC (p, type) ;
+         outText (p, '__opaque') ;
+         noSpace (p) ;
+         outText (p, '> (') ;
+         doExprC (p, n) ;
+         outText (p, ')') ;
+         RETURN makeOpaqueCast (n, FALSE)
+      END
+   ELSE
+      IF debugOpaque
+      THEN
+         doP := p ;
+         dumpOpaqueState (n) ;
+         IF nodeUsesOpaque (n)
+         THEN
+            outText (p, ' /* no difference seen */ ')
+         ELSE
+            outText (p, ' /* no opaque used */ ')
+         END
+      END ;
+      doExprC (p, n)
+   END ;
+   RETURN n
+END castOpaque ;
+
+
+(*
+   isTypeOpaqueDefImp - returns TRUE if type is an opaque type by checking
+                        the def/imp pair of modules or fall back to the
+                        definition module.
+*)
+
+PROCEDURE isTypeOpaqueDefImp (type: node) : BOOLEAN ;
+VAR
+   scope,
+   def,
+   opaque: node ;
+BEGIN
+   IF type = NIL
+   THEN
+      RETURN FALSE
+   ELSIF isType (type)
+   THEN
+      scope := getScope (type) ;
+      IF isImp (scope)
+      THEN
+         def := lookupDef (getSymName (scope)) ;
+         IF def # NIL
+         THEN
+            (* Lookup the type name in the matching definition module.  *)
+            opaque := lookupExported (def, getSymName (type)) ;
+            RETURN (opaque # NIL) AND isType (opaque) AND isTypeOpaque (opaque)
+         END
+      ELSE
+         (* Otherwise just check the definition module.  *)
+         RETURN isTypeOpaque (type)
+      END
+   END ;
+   RETURN FALSE
+END isTypeOpaqueDefImp ;
+
+
+(*
+   isParamVoidStar - return TRUE if the procedure or proctype opaque type
+                     parameter should be implemented as a (void * ).
+*)
+
+PROCEDURE isParamVoidStar (n: node) : BOOLEAN ;
+VAR
+   proc,
+   type: node ;
+BEGIN
+   proc := getScope (n) ;
+   assert (isProcedure (proc) OR isProcType (proc)) ;
+   type := getType (n) ;
+   RETURN isReturnVoidStar (proc, type)
+END isParamVoidStar ;
+
+
+(*
+   isRefVoidStar - returns TRUE if the ref node uses an opaque type which
+                   is represented as a (void * ).
+*)
+
+PROCEDURE isRefVoidStar (n: node) : BOOLEAN ;
+VAR
+   type: node ;
+BEGIN
+   type := getType (n) ;
+   IF (NOT isType (type)) OR (NOT isTypeOpaque (type))
+   THEN
+      (* We should finish the procedure as the ref does not use an opaque.  *)
+      RETURN TRUE
+   ELSE
+      (* We check whether the opaque type was declared in the implementation
+         module.  If it is declared in the implementation module then we
+         return FALSE.  *)
+      RETURN NOT isDeclInImp (type)
+   END
+END isRefVoidStar ;
+
+
+(*
+   isReturnVoidStar - return TRUE if the procedure or proctype opaque type
+                      return type should be implemented as a (void * ).
+*)
+
+PROCEDURE isReturnVoidStar (proc, type: node) : BOOLEAN ;
+VAR
+   def : node ;
+BEGIN
+   assert (isProcedure (proc) OR isProcType (proc)) ;
+   IF isExported (proc)
+   THEN
+      RETURN TRUE
+   ELSE
+      (* Not exported therefore local, we check whether the opaque type
+         was declared in the implementation module.  *)
+      IF isImp (currentModule)
+      THEN
+         IF isType (type)
+         THEN
+            RETURN NOT isDeclInImp (type)
+         ELSE
+            RETURN FALSE
+         END
+      ELSE
+         (* Always use void * in .def modules.  *)
+         RETURN TRUE
+      END
+   END
+END isReturnVoidStar ;
+
+
+(*
+   isVarVoidStar - return TRUE if the variable using an opaque type should
+                   be implemented as a (void * ).
+*)
+
+PROCEDURE isVarVoidStar (n: node) : BOOLEAN ;
+VAR
+   type: node ;
+BEGIN
+   assert (isVar (n)) ;
+   type := getType (n) ;
+   IF (NOT isType (type)) OR (NOT isTypeOpaque (type))
+   THEN
+      (* We should finish the procedure as the variable does not use an opaque.  *)
+      RETURN TRUE
+   ELSIF isExported (n)
+   THEN
+      (* Exported variables using an opaque type will always be implemented
+         with a (void * ).  *)
+      RETURN TRUE
+   ELSE
+      (* Not exported therefore static to the module (local or global non exported
+         variable), we check whether the opaque type was declared in the
+         implementation module.  If it is declared in the implementation module
+         then we return FALSE.  *)
+      RETURN NOT isDeclInImp (type)
+   END
+END isVarVoidStar ;
+
+
+(*
+   initNodeOpaqueState - initialize the node opaque state.
+*)
+
+PROCEDURE initNodeOpaqueState (n: node) ;
+VAR
+   type: node ;
+BEGIN
+   CASE n^.kind OF
+
+   opaquecast  :  |  (* This must be done when the cast direction is known.  *)
+   funccall    :  assignNodeOpaqueCastState (n, getFunction (n)) |
+   var         :  type := getType (n) ;
+                  IF n^.varF.isParameter OR n^.varF.isVarParameter
+                  THEN
+                     (* If the variable is really a parameter then it uses
+                        the state of the parameter.  *)
+                     initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type),
+                                              isParamVoidStar (n))
+                  ELSE
+                     initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type),
+                                              isVarVoidStar (n))
+                  END  |
+   array       :  type := getType (n) ;
+                  initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type),
+                                           isExported (n)) |
+   varparam,
+   param       :  assert (isProcedure (getScope (n)) OR isProcType (getScope (n))) ;
+                  type := getType (n) ;
+                  initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type),
+                                           isParamVoidStar (n)) |
+   componentref,
+   pointerref,
+   pointer,
+   recordfield,
+   arrayref    :  type := getType (n) ;
+                  (* In the future this should be revisited.  *)
+                  initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type),
+                                           isRefVoidStar (n)) |
+                          (* For the moment treat as never exported.  *)
+   proctype,
+   procedure   :  (* We only consider the return type for a procedure or proctype.
+                     The parameters and local vars are handled separately (see
+                     above).  *)
+                  type := getType (n) ;
+                  IF type = NIL
+                  THEN
+                     (* No return type, therefore no opaque type used.  *)
+                     initNodeOpaqueCastState (n, FALSE, FALSE)
+                  ELSE
+                     (* Init state from the return type.  Is type an opaque type?
+                        Is the opaque type declared in this module?  *)
+                     initNodeOpaqueCastState (n, isTypeOpaqueDefImp (type),
+                                              isReturnVoidStar (n, type))
+                  END |
+
+   ELSE
+   END ;
+   IF debugOpaque
+   THEN
+      dumpOpaqueState (n)
+   END
+END initNodeOpaqueState ;
+
+
+(*
+   assignNodeOpaqueCastState - copy the opaqueCastState from src into dest.
+*)
+
+PROCEDURE assignNodeOpaqueCastState (dest, src: node) ;
+BEGIN
+   IF nodeUsesOpaque (src)
+   THEN
+      initNodeOpaqueCastState (dest, TRUE, getNodeOpaqueVoidStar (src))
+   ELSE
+      initNodeOpaqueCastState (dest, FALSE, FALSE)
+   END
+END assignNodeOpaqueCastState ;
+
+
+(*
+   assignNodeOpaqueCastFalse - assign the voidstar field of dest to false.
+                               It assigns the opaque field of dest to the value
+                               of the src opaque field.
+*)
+
+PROCEDURE assignNodeOpaqueCastFalse (dest, src: node) ;
+BEGIN
+   IF nodeUsesOpaque (src)
+   THEN
+      initNodeOpaqueCastState (dest, TRUE, FALSE)
+   ELSE
+      initNodeOpaqueCastState (dest, FALSE, FALSE)
+   END
+END assignNodeOpaqueCastFalse ;
+
+
+(*
+   dumpOpaqueState -
+*)
+
+PROCEDURE dumpOpaqueState (n: node) ;
+VAR
+   o: node ;
+BEGIN
+   CASE n^.kind OF
+
+   opaquecast,
+   funccall,
+   var,
+   array,
+   varparam,
+   param,
+   pointer,
+   recordfield,
+   componentref,
+   arrayref,
+   procedure,
+   proctype    :  o := n
+
    ELSE
-      doTypeNameC (p, paramtype)
+      o := NIL
+   END ;
+   IF o # NIL
+   THEN
+      outText (doP, "/* ") ;
+      doNameC (doP, o) ;
+      outText (doP, "  ") ;
+      CASE o^.kind OF
+
+      opaquecast  :  outText (doP, "opaquecast") |
+      funccall    :  outText (doP, "funccall") |
+      var         :  outText (doP, "var") |
+      array       :  outText (doP, "array") |
+      varparam    :  outText (doP, "varparam") |
+      param       :  outText (doP, "param") |
+      pointer     :  outText (doP, "pointer") |
+      recordfield :  outText (doP, "recordfield") |
+      componentref:  outText (doP, "componentref") |
+      pointerref  :  outText (doP, "pointerref") |
+      arrayref    :  outText (doP, "arrayref") |
+      procedure   :  outText (doP, "procedure") |
+      proctype    :  outText (doP, "proctype")
+
+      ELSE
+      END ;
+      IF nodeUsesOpaque (o)
+      THEN
+         IF getNodeOpaqueVoidStar (o)
+         THEN
+            outText (doP, " uses (void *) opaque")
+         ELSE
+            outText (doP, " uses opaque__full")
+         END ;
+      END ;
+      outText (doP, " */ \n")
    END
-END doParamTypeEmit ;
+END dumpOpaqueState ;
 
 
 (*
@@ -7369,10 +8059,7 @@ BEGIN
             ELSE
                doFQDNameC (p, v, TRUE)
             END ;
-            IF isArray (ptype) AND isUnbounded (ptype)
-            THEN
-               outText (p, '_')
-            END ;
+            doParamTypeNameModifier (p, ptype, FALSE) ;
             doUsed (p, n^.paramF.isUsed) ;
             doHighC (p, ptype, i, n^.paramF.isUsed) ;
             IF c<t
@@ -7440,6 +8127,7 @@ BEGIN
             ELSE
                doFQDNameC (p, v, TRUE)
             END ;
+            doParamTypeNameModifier (p, ptype, TRUE) ;
             doUsed (p, n^.varparamF.isUsed) ;
             doHighC (p, ptype, i, n^.varparamF.isUsed) ;
             IF c<t
@@ -7508,11 +8196,63 @@ END doParameterC ;
 PROCEDURE doProcTypeC (p: pretty; t, n: node) ;
 BEGIN
    assert (isType (t)) ;
-   outputPartial (t) ;
-   doCompletePartialProcType (p, t, n)
+   IF isDeclType (t) AND isDeclType (n)
+   THEN
+      outputPartial (t) ;
+      doCompletePartialProcType (p, t, n)
+   END
 END doProcTypeC ;
 
 
+(*
+   isDeclInImp - returns TRUE if node type is declared as an opaque and
+                 is declared fully in the current implementation module.
+                 This should only be called if isType (type).  Its purpose
+                 is specific to a type checking whether it is an opaque type
+                 declared in the .def/.mod pair of the current imp module.
+*)
+
+PROCEDURE isDeclInImp (type: node) : BOOLEAN ;
+VAR
+   scope,
+   def  : node ;
+   name : Name ;
+BEGIN
+   assert (isType (type)) ;
+   scope := getScope (type) ;
+   IF isTypeOpaqueDefImp (type) AND isImp (currentModule)
+   THEN
+      name := getSymName (type) ;
+      IF name # NulName
+      THEN
+         (* Lookup the matching .def module.  *)
+         def := lookupDef (getSymName (currentModule)) ;
+         IF (def # NIL) AND ((def = scope) OR (currentModule = scope))
+         THEN
+            (* Return TRUE if the symbol has already been declared in the .def.  *)
+            RETURN lookupExported (def, name) # NIL
+         END
+      END
+   END ;
+   RETURN FALSE
+END isDeclInImp ;
+
+
+(*
+   doTypeNameModifier - adds the __opaque modifier to the type n provided
+                        it is an opaque type which is being declared in the
+                        implementation module.
+*)
+
+PROCEDURE doTypeNameModifier (p: pretty; n: node) ;
+BEGIN
+   IF isTypeOpaqueDefImp (n) AND isImp (currentModule)
+   THEN
+      outText (p, '__opaque')
+   END
+END doTypeNameModifier ;
+
+
 (*
    doTypesC -
 *)
@@ -7536,14 +8276,18 @@ BEGIN
             setNeedSpace (doP)
          END ;
          doTypeNameC (doP, n) ;
+         doTypeNameModifier (doP, n) ;
          outText (doP, ";\n\n")
       ELSIF isEnumeration (m)
       THEN
-         outText (doP, "typedef") ; setNeedSpace (doP) ;
-         doTypeC (doP, m, m) ;
-         setNeedSpace (doP) ;
-	 doTypeNameC (doP, n) ;
-         outText (doP, ";\n\n")
+         IF isDeclType (n)
+         THEN
+            outText (doP, "typedef") ; setNeedSpace (doP) ;
+            doTypeC (doP, m, m) ;
+            setNeedSpace (doP) ;
+            doTypeNameC (doP, n) ;
+            outText (doP, ";\n\n")
+         END
       ELSE
          outText (doP, "typedef") ; setNeedSpace (doP) ;
          doTypeC (doP, m, m) ;
@@ -7552,6 +8296,7 @@ BEGIN
             setNeedSpace (doP)
          END ;
          doTypeNameC (doP, n) ;
+         doTypeNameModifier (doP, n) ;
          outText (doP, ";\n\n")
       END
    END
@@ -7606,7 +8351,6 @@ BEGIN
       THEN
          IF NOT f^.recordfieldF.tag
          THEN
-            setNeedSpace (p) ;
             doRecordFieldC (p, f) ;
             outText (p, ";\n")
          END
@@ -7864,6 +8608,19 @@ END doSubrC ;
 *)
 
 PROCEDURE doCompletePartialProcType (p: pretty; t, n: node) ;
+BEGIN
+   IF isDeclType (t) AND isDeclType (n)
+   THEN
+      outputCompletePartialProcType (p, t, n)
+   END
+END doCompletePartialProcType ;
+
+
+(*
+   outputCompletePartialProcType -
+*)
+
+PROCEDURE outputCompletePartialProcType (p: pretty; t, n: node) ;
 VAR
    i, h: CARDINAL ;
    v, u: node ;
@@ -7871,7 +8628,9 @@ BEGIN
    assert (isProcType (n)) ;
    u := NIL ;
    outText (p, "typedef") ; setNeedSpace (p) ;
-   doTypeC (p, n^.proctypeF.returnType, u) ; setNeedSpace (p) ;
+   doTypeC (p, n^.proctypeF.returnType, u) ;
+   doOpaqueModifier (p, n) ;
+   setNeedSpace (p) ;
    outText (p, "(*") ;
    doFQNameC (p, t) ;
    outText (p, "_t) (") ;
@@ -7906,7 +8665,7 @@ BEGIN
    outText (p, "_p {") ; setNeedSpace (p) ;
    doFQNameC (p, t) ;
    outText (p, "_t proc; };\n\n")
-END doCompletePartialProcType ;
+END outputCompletePartialProcType ;
 
 
 (*
@@ -8092,6 +8851,11 @@ BEGIN
    m := NIL ;
    setNeedSpace (p) ;
    doTypeC (p, f^.recordfieldF.type, m) ;
+   IF isType (f^.recordfieldF.type) AND isDeclInImp (f^.recordfieldF.type)
+   THEN
+      outText (p, '__opaque')
+   END ;
+   setNeedSpace (p) ;
    doDNameC (p, f, FALSE)
 END doRecordFieldC ;
 
@@ -8298,14 +9062,7 @@ BEGIN
       doEnumerationC (p, n)
    ELSIF isType (n)
    THEN
-      doFQNameC (p, n) ;
-      setNeedSpace (p)
-      (* doTypeAliasC (p, n, n) *)  (* type, n, has a name, so we choose this over, m.  *)
-(*
-   ELSIF isProcType (n) OR isArray (n) OR isRecord (n)
-   THEN
-      HALT  (* n should have been simplified.  *)
-*)
+      doFQNameC (p, n)
    ELSIF isProcType (n)
    THEN
       doProcTypeC (p, n, m)
@@ -8408,8 +9165,7 @@ BEGIN
    THEN
       doSubrangeC (p, n)
    ELSE
-      print (p, "is type unknown required\n") ;
-      stop
+      print (p, "is type unknown required\n")
    END
 END doTypeNameC ;
 
@@ -8430,32 +9186,70 @@ END isExternal ;
 
 
 (*
-   doVarC -
+   doOpaqueModifier - adds postfix __opaque providing n uses an opaque type which is
+                      not represented by ( void * ).  n is a non type node which might
+                      be using an opaque type.  For example a var or param node.
 *)
 
-PROCEDURE doVarC (n: node) ;
+PROCEDURE doOpaqueModifier (p: pretty; n: node) ;
+BEGIN
+   assert (NOT isType (n)) ;
+   IF isImp (getCurrentModule ()) AND nodeUsesOpaque (n) AND (NOT getNodeOpaqueVoidStar (n))
+   THEN
+      outText (doP, '__opaque')
+   END
+END doOpaqueModifier ;
+
+
+(*
+   doDeclareVarC -
+*)
+
+PROCEDURE doDeclareVarC (n: node) ;
 VAR
-   s: node ;
+   type,
+   s   : node ;
+BEGIN
+   s := NIL ;
+   type := getType (n) ;
+   doTypeC (doP, type, s) ;
+   doOpaqueModifier (doP, n) ;
+   setNeedSpace (doP) ;
+   doFQDNameC (doP, n, FALSE) ;
+   print (doP, ";\n")
+END doDeclareVarC ;
+
+
+(*
+   doVarC - output a variable declaration.  Note that we do not generate
+            a declaration if we are translating the implementation module
+            and a variable is exported as the variable will be in the .h
+            file to avoid all -Wodr issues.
+*)
+
+PROCEDURE doVarC (n: node) ;
 BEGIN
    IF isDef (getMainModule ())
    THEN
-      print (doP, "EXTERN") ; setNeedSpace (doP)
+      print (doP, "EXTERN") ; setNeedSpace (doP) ;
+      doDeclareVarC (n)
    ELSIF (NOT isExported (n)) AND (NOT isLocal (n))
    THEN
-      print (doP, "static") ; setNeedSpace (doP)
+      print (doP, "static") ; setNeedSpace (doP) ;
+      doDeclareVarC (n)
    ELSIF getExtendedOpaque ()
    THEN
+      (* --fixme-- need to revisit extended opaque.  *)
       IF isExternal (n)
       THEN
          (* different module declared this variable, therefore it is extern.  *)
          print (doP, "extern") ; setNeedSpace (doP)
-      END
-   END ;
-   s := NIL ;
-   doTypeC (doP, getType (n), s) ;
-   setNeedSpace (doP) ;
-   doFQDNameC (doP, n, FALSE) ;
-   print (doP, ";\n")
+      END ;
+      doDeclareVarC (n)
+   ELSIF isLocal (n)
+   THEN
+      doDeclareVarC (n)
+   END
 END doVarC ;
 
 
@@ -8507,10 +9301,17 @@ END doProcedureComment ;
 
 PROCEDURE doProcedureHeadingC (n: node; prototype: BOOLEAN) ;
 VAR
+   s   : String ;
    i, h: CARDINAL ;
    p, q: node ;
 BEGIN
    assert (isProcedure (n)) ;
+   s := getFQstring (n) ;
+   IF EqualArray (s, 'M2Quads_BuildAssignment')
+   THEN
+      localstop
+   END ;
+   s := KillString (s) ;
    noSpace (doP) ;
    IF isDef (getMainModule ())
    THEN
@@ -8525,7 +9326,15 @@ BEGIN
       outText (doP, "static") ; setNeedSpace (doP)
    END ;
    q := NIL ;
-   doTypeC (doP, n^.procedureF.returnType, q) ; setNeedSpace (doP) ;
+   doTypeC (doP, n^.procedureF.returnType, q) ;
+   (*
+   IF NOT isExported (n)
+   THEN
+      doTypeNameModifier (doP, n^.procedureF.returnType)
+   END ;
+   *)
+   doOpaqueModifier (doP, n) ;
+   setNeedSpace (doP) ;
    doFQDNameC (doP, n, FALSE) ;
    setNeedSpace (doP) ;
    outText (doP, "(") ;
@@ -9301,18 +10110,26 @@ END doAfterCommentC ;
 *)
 
 PROCEDURE doReturnC (p: pretty; s: node) ;
+VAR
+   type: node ;
 BEGIN
    assert (isReturn (s)) ;
    doCommentC (p, s^.returnF.returnComment.body) ;
    outText (p, "return") ;
-   IF s^.returnF.scope#NIL
+   IF (s^.returnF.scope#NIL) AND (s^.returnF.exp#NIL)
    THEN
       setNeedSpace (p) ;
       IF (NOT isProcedure (s^.returnF.scope)) OR (getType (s^.returnF.scope)=NIL)
       THEN
          metaError1 ('{%1DMad} has no return type', s^.returnF.scope) ;
       ELSE
-         doExprCastC (p, s^.returnF.exp, getType (s^.returnF.scope))
+         IF isProcedure (s^.returnF.scope) AND nodeUsesOpaque (s^.returnF.scope)
+         THEN
+            forceCastOpaque (p, s^.returnF.scope, s^.returnF.exp,
+                             getNodeOpaqueVoidStar (s^.returnF.scope))
+         ELSE
+            doExprCastC (p, s^.returnF.exp, getType (s^.returnF.scope))
+         END
       END
    END ;
    outText (p, ";") ;
@@ -9372,7 +10189,7 @@ BEGIN
          (* potentially a cast is required.  *)
          IF isPointer (type) OR (type = addressN)
          THEN
-            outText (p, 'reinterpret_cast<') ;
+            outText (p, 'static_cast<') ;
             doTypeNameC (p, type) ;
             noSpace (p) ;
             outText (p, '> (') ;
@@ -9412,6 +10229,80 @@ BEGIN
 END requiresUnpackProc ;
 
 
+(*
+   forceCastOpaque -
+*)
+
+PROCEDURE forceCastOpaque (p: pretty; des, expr: node; toVoidStar: BOOLEAN) ;
+BEGIN
+   IF nodeUsesOpaque (expr)
+   THEN
+      flushOpaque (p, expr, getNodeOpaqueVoidStar (des))
+   ELSE
+      forceReintCastOpaque (p, des, expr, toVoidStar)
+   END
+END forceCastOpaque ;
+
+
+(*
+   forceReintCastOpaque -
+*)
+
+PROCEDURE forceReintCastOpaque (p: pretty; des, expr: node; toVoidStar: BOOLEAN) ;
+VAR
+   type: node ;
+BEGIN
+   type := getType (des) ;
+   IF toVoidStar
+   THEN
+      (* next is true cast to void * opaque type.  *)
+      outText (p, 'static_cast<') ;
+      doTypeNameC (p, type) ;
+      noSpace (p) ;
+      outText (p, '> (') ;
+      doExprC (p, expr) ;
+      outText (p, ')')
+   ELSE
+      (* next is false cast to __opaque opaque type.  *)
+      outText (p, 'static_cast<') ;
+      doTypeNameC (p, type) ;
+      outText (p, '__opaque') ;
+      noSpace (p) ;
+      outText (p, '> (') ;
+      doExprC (p, expr) ;
+      outText (p, ')') ;
+   END
+END forceReintCastOpaque ;
+
+
+(*
+   doUnConstCastUnbounded - if node n type is an unbounded array then
+                            use const_cast to remove the const parameter
+                            to allow the unbounded array to be modified.
+*)
+
+PROCEDURE doUnConstCastUnbounded (p: pretty; n: node) ;
+VAR
+   type, v: node ;
+BEGIN
+   IF isArrayRef (n)
+   THEN
+      IF isVar (n^.arrayrefF.array)
+      THEN
+         v := n^.arrayrefF.array ;
+         IF (v^.varF.isParameter OR v^.varF.isVarParameter) AND
+	    isUnbounded (getType (v))
+         THEN
+            type := getType (v) ;
+            outText (p, " /* const_cast<") ;
+            doTypeNameC (p, type) ;
+            outText (p, "> is needed */ ") ;
+         END
+      END
+   END
+END doUnConstCastUnbounded ;
+
+
 (*
    doAssignmentC -
 *)
@@ -9420,11 +10311,35 @@ PROCEDURE doAssignmentC (p: pretty; s: node) ;
 BEGIN
    assert (isAssignment (s)) ;
    doCommentC (p, s^.assignmentF.assignComment.body) ;
-   doExprCup (p, s^.assignmentF.des, requiresUnpackProc (s)) ;
+   IF debugOpaque
+   THEN
+      outText (p, " /* des: */ ") ;
+      dumpOpaqueState (s^.assignmentF.des) ;
+      outText (p, " /* expr: */ ") ;
+      dumpOpaqueState (s^.assignmentF.expr)
+   END ;
+   s^.assignmentF.des := doExprCup (p, s^.assignmentF.des,
+                                    requiresUnpackProc (s), TRUE) ;
+   IF debugOpaque
+   THEN
+      outText (p, "\n /* after doExprCup des: */ ") ;
+      dumpOpaqueState (s^.assignmentF.des) ;
+      outText (p, "\n")
+   END ;
    setNeedSpace (p) ;
    outText (p, "=") ;
    setNeedSpace (p) ;
-   doExprCastC (p, s^.assignmentF.expr, getType (s^.assignmentF.des)) ;
+   IF nodeUsesOpaque (s^.assignmentF.des)
+   THEN
+      forceCastOpaque (p, s^.assignmentF.des, s^.assignmentF.expr,
+                       getNodeOpaqueVoidStar (s^.assignmentF.des))
+   ELSE
+      IF debugOpaque
+      THEN
+         outText (p, " /* no opaque des seen */ ")
+      END ;
+      doExprCastC (p, s^.assignmentF.expr, getType (s^.assignmentF.des))
+   END ;
    outText (p, ";") ;
    doAfterCommentC (p, s^.assignmentF.assignComment.after)
 END doAssignmentC ;
@@ -10058,11 +10973,11 @@ PROCEDURE doAdrExprC (p: pretty; n: node) ;
 BEGIN
    IF isDeref (n)
    THEN
-      (* (* no point in issuing & ( * n )  *) *)
+      (* No point in issuing & ( * n ).  *)
       doExprC (p, n^.unaryF.arg)
    ELSIF isVar (n) AND n^.varF.isVarParameter
    THEN
-      (* (* no point in issuing & ( * n )  *) *)
+      (* No point in issuing & ( * n ).  *)
       doFQNameC (p, n)
    ELSE
       outText (p, '&') ;
@@ -10129,7 +11044,7 @@ BEGIN
       THEN
          IF isString (actual) AND (skipType (ft) = addressN)
          THEN
-            outText (p, "const_cast<void*> (reinterpret_cast<const void*> (") ;
+            outText (p, "const_cast<void*> (static_cast<const void*> (") ;
 	    RETURN 2
          ELSIF isPointer (skipType (ft)) OR (skipType (ft) = addressN)
          THEN
@@ -10232,6 +11147,42 @@ BEGIN
 END isDefForCNode ;
 
 
+(*
+   doFuncVarParam - detect whether the formal uses an opaque and ensure that the address of
+                    the actual parameter is cast to the formal type.
+*)
+
+PROCEDURE doFuncVarParam (p: pretty; actual, formal: node) ;
+VAR
+   type: node ;
+BEGIN
+   IF nodeUsesOpaque (formal) AND
+      getNodeOpaqueFlushNecessary (actual, getNodeOpaqueVoidStar (formal))
+   THEN
+      type := getType (formal) ;
+      outText (p, 'reinterpret_cast<') ;
+      IF getNodeOpaqueVoidStar (formal)
+      THEN
+         doTypeNameC (p, type) ;
+         setNeedSpace (p) ;
+         outText (p, '*> (&') ;
+         doExprC (p, actual) ;
+         outText (p, ')') ;
+         actual := makeOpaqueCast (actual, TRUE)
+      ELSE
+         doTypeNameC (p, type) ;
+         noSpace (p) ;
+         outText (p, '__opaque *> (&') ;
+         doExprC (p, actual) ;
+         outText (p, ')') ;
+         actual := makeOpaqueCast (actual, FALSE)
+      END
+   ELSE
+      doAdrExprC (p, actual)
+   END
+END doFuncVarParam ;
+
+
 (*
    doFuncParamC -
 *)
@@ -10283,14 +11234,22 @@ BEGIN
                doCastC (p, getType (formal), actual)
             END
          ELSE
-            lbr := checkSystemCast (p, actual, formal) ;
             IF isVarParam (formal)
             THEN
-               doAdrExprC (p, actual)
+               lbr := checkSystemCast (p, actual, formal) ;
+               doFuncVarParam (p, actual, formal) ;
+               emitN (p, ")", lbr)
             ELSE
-               doExprC (p, actual)
-            END ;
-            emitN (p, ")", lbr)
+               IF nodeUsesOpaque (formal)
+               THEN
+                  forceCastOpaque (p, formal, actual,
+                                   getNodeOpaqueVoidStar (formal))
+               ELSE
+                  lbr := checkSystemCast (p, actual, formal) ;
+                  doExprC (p, actual) ;
+                  emitN (p, ")", lbr)
+               END
+            END
          END
       END
    END
@@ -10442,22 +11401,20 @@ BEGIN
    THEN
       (* & and * cancel each other out.  *)
       outTextN (p, getSymName (n))   (* --fixme-- does the caller need to cast it?  *)
-   ELSE
-      IF isString (n)
+   ELSIF isString (n) OR (isArray (getType (n)) AND isUnbounded (getType (n)))
+   THEN
+      IF lang = ansiCP
       THEN
-         IF lang = ansiCP
-         THEN
-            outText (p, "const_cast<void*> (reinterpret_cast<const void*>") ;
-            outText (p, "(") ;
-            doExprC (p, n) ;
-            outText (p, "))")
-         ELSE
-            doExprC (p, n)
-         END
+         outText (p, "const_cast<void*> (static_cast<const void*>") ;
+         outText (p, "(") ;
+         doExprC (p, n) ;
+         outText (p, "))")
       ELSE
-         outText (p, "&") ;
          doExprC (p, n)
       END
+   ELSE
+      outText (p, "&") ;
+      doExprC (p, n)
    END
 END doAdrArgC ;
 
@@ -11170,6 +12127,23 @@ END doConvertSC ;
 *)
 
 
+(*
+   getFunction - return the function associate with funccall node n.
+*)
+
+PROCEDURE getFunction (n: node) : node ;
+BEGIN
+   assert (isFuncCall (n)) ;
+   CASE n^.kind OF
+
+   funccall:  RETURN n^.funccallF.function
+
+   ELSE
+      HALT
+   END
+END getFunction ;
+
+
 (*
    getFuncFromExpr -
 *)
@@ -11701,7 +12675,9 @@ BEGIN
 END doStatementsC ;
 
 
-PROCEDURE stop ; END stop ;
+PROCEDURE localstop ;
+END localstop ;
+
 
 (*
    doLocalVarC -
@@ -11711,7 +12687,6 @@ PROCEDURE doLocalVarC (p: pretty; s: scopeT) ;
 BEGIN
    includeVarProcedure (s) ;
    debugLists ;
-
    topologicallyOut (doConstC, doTypesC, doVarC,
                      outputPartial,
                      doNone, doCompletePartialC, doNone)
@@ -13912,13 +14887,9 @@ END dumpQ ;
 *)
 
 PROCEDURE dumpLists ;
-VAR
-   m: String ;
 BEGIN
-   IF getDebugTopological ()
+   IF getDebugTopological () AND FALSE
    THEN
-      m := Sprintf0 (InitString ('\n')) ;
-      m := KillString (WriteS (StdOut, m)) ;
       dumpQ ('todo', globalGroup^.todoQ) ;
       dumpQ ('partial', globalGroup^.partialQ) ;
       dumpQ ('done', globalGroup^.doneQ)
@@ -14099,7 +15070,7 @@ BEGIN
       IF tryComplete (d, c, t, v)
       THEN
          alists.removeItemFromList (globalGroup^.todoQ, d) ;
-	 alists.includeItemIntoList (globalGroup^.doneQ, d) ;
+         addDone (d) ;
          i := 1
       ELSIF tryPartial (d, pt)
       THEN
@@ -14130,7 +15101,7 @@ BEGIN
       IF tryCompleteFromPartial (d, t)
       THEN
          alists.removeItemFromList (globalGroup^.partialQ, d) ;
-         alists.includeItemIntoList (globalGroup^.doneQ, d) ;
+         addDone (d) ;
          i := 1 ;
          DEC (n)
       ELSE
@@ -14144,7 +15115,7 @@ END tryOutputPartial ;
    debugList -
 *)
 
-PROCEDURE debugList (a: ARRAY OF CHAR; l: alist) ;
+PROCEDURE debugList (listName, symName: ARRAY OF CHAR; l: alist) ;
 VAR
    i, h: CARDINAL ;
    n   : node ;
@@ -14152,12 +15123,10 @@ BEGIN
    h := alists.noOfItemsInList (l) ;
    IF h>0
    THEN
-      outText (doP, a) ;
-      outText (doP, ' still contains node(s)\n') ;
       i := 1 ;
       REPEAT
          n := alists.getItemFromList (l, i) ;
-         dbg (n) ;
+         dbg (listName, symName, n) ;
          INC (i)
       UNTIL i > h
    END
@@ -14172,8 +15141,9 @@ PROCEDURE debugLists ;
 BEGIN
    IF getDebugTopological ()
    THEN
-      debugList ('todo', globalGroup^.todoQ) ;
-      debugList ('partial', globalGroup^.partialQ)
+      debugList ('todo', 'decl_node', globalGroup^.todoQ) ;
+      debugList ('partial', 'decl_node', globalGroup^.partialQ) ;
+      debugList ('done', 'decl_node', globalGroup^.doneQ)
    END
 END debugLists ;
 
@@ -14255,9 +15225,11 @@ BEGIN
    doFQNameC (p, n) ;
    outText (p, "_init") ;
    setNeedSpace (p) ;
-   outText (p, "(__attribute__((unused)) int argc") ;
-   outText (p, ",__attribute__((unused)) char *argv[]") ;
-   outText (p, ",__attribute__((unused)) char *envp[])\n");
+   outText (p, "(__attribute__((unused)) int argc,") ;
+   setNeedSpace (p) ;
+   outText (p, "__attribute__((unused)) char *argv[],") ;
+   setNeedSpace (p) ;
+   outText (p, "__attribute__((unused)) char *envp[])\n");
    p := outKc (p, "{\n") ;
    doStatementsC (p, n^.impF.beginStatements) ;
    p := outKc (p, "}\n") ;
@@ -14269,9 +15241,11 @@ BEGIN
    doFQNameC (p, n) ;
    outText (p, "_fini") ;
    setNeedSpace (p) ;
-   outText (p, "(__attribute__((unused)) int argc") ;
-   outText (p, ",__attribute__((unused)) char *argv[]") ;
-   outText (p, ",__attribute__((unused)) char *envp[])\n");
+   outText (p, "(__attribute__((unused)) int argc,") ;
+   setNeedSpace (p) ;
+   outText (p, "__attribute__((unused)) char *argv[],") ;
+   setNeedSpace (p) ;
+   outText (p, "__attribute__((unused)) char *envp[])\n");
    p := outKc (p, "{\n") ;
    doStatementsC (p, n^.impF.finallyStatements) ;
    p := outKc (p, "}\n")
@@ -14341,8 +15315,10 @@ BEGIN
    outText (p, "_init") ;
    setNeedSpace (p) ;
    outText (p, "(__attribute__((unused)) int argc,") ;
-   outText (p, " __attribute__((unused)) char *argv[]") ;
-   outText (p, " __attribute__((unused)) char *envp[])\n") ;
+   setNeedSpace (p) ;
+   outText (p, "__attribute__((unused)) char *argv[],") ;
+   setNeedSpace (p) ;
+   outText (p, "__attribute__((unused)) char *envp[])\n") ;
    p := outKc (p, "{\n") ;
    doStatementsC (p, n^.impF.beginStatements) ;
    p := outKc (p, "}\n") ;
@@ -14355,8 +15331,10 @@ BEGIN
    outText (p, "_fini") ;
    setNeedSpace (p) ;
    outText (p, "(__attribute__((unused)) int argc,") ;
-   outText (p, " __attribute__((unused)) char *argv[]") ;
-   outText (p, " __attribute__((unused)) char *envp[])\n") ;
+   setNeedSpace (p) ;
+   outText (p, "__attribute__((unused)) char *argv[],") ;
+   setNeedSpace (p) ;
+   outText (p, "__attribute__((unused)) char *envp[])\n") ;
    p := outKc (p, "{\n") ;
    doStatementsC (p, n^.impF.finallyStatements) ;
    p := outKc (p, "}\n") ;
@@ -14543,9 +15521,13 @@ BEGIN
       foreachDefModuleDo (runPrototypeDefC)
    ELSE
       s := InitStringCharStar (keyToCharStar (getSymName (n))) ;
-      (* we don't want to include the .h file for this implementation module.  *)
-      print (p, "#define _") ; prints (p, s) ; print (p, "_H\n") ;
+      (* Inform the source that this code belongs to the implementation module.  *)
       print (p, "#define _") ; prints (p, s) ; print (p, "_C\n\n") ;
+      (* Include the definition module for any opaque types.  *)
+      print (doP, '#include "') ;
+      prints (p, getHPrefix ()) ;
+      prints (p, s) ;
+      print (p, '.h"\n') ;
       s := KillString (s) ;
 
       doP := p ;
@@ -15442,8 +16424,15 @@ END setLangM2 ;
 *)
 
 PROCEDURE addDone (n: node) ;
+VAR
+   s: String ;
 BEGIN
-   alists.includeItemIntoList (globalGroup^.doneQ, n)
+   alists.includeItemIntoList (globalGroup^.doneQ, n) ;
+   IF isVar (n) OR isParameter (n)
+   THEN
+      initNodeOpaqueState (n)
+   END ;
+   debugLists
 END addDone ;
 
 
@@ -15464,6 +16453,11 @@ BEGIN
       metaError1 ('cyclic dependancy found between another module using {%1ad} from the definition module of the implementation main being compiled, use the --extended-opaque option to compile', n) ;
       flushErrors ;
       errorAbort0 ('terminating compilation')
+   ELSIF isType (n) AND isDeclInImp (n)
+   THEN
+      (* Ignore an opaque type which is declared in this implementation module as it
+         will be fully declared in C/C++ with the __opaque postfix.  Whereas the
+         void * non prefixed typedef will be declared in the .h file.  *)
    ELSE
       addDone (n)
    END
@@ -15704,7 +16698,7 @@ END doDbg ;
    dbg -
 *)
 
-PROCEDURE dbg (n: node) ;
+PROCEDURE dbg (listName, symName: ARRAY OF CHAR; n: node) ;
 VAR
    l: alist ;
    o: pretty ;
@@ -15720,10 +16714,20 @@ BEGIN
    l := alists.initList () ;
    alists.includeItemIntoList (l, n) ;
    i := 1 ;
-   out1 ("dbg (%s)\n", n) ;
    REPEAT
       n := alists.getItemFromList (l, i) ;
-      doDbg (l, n) ;
+      IF isType (n)
+      THEN
+         s := getFQstring (n) ;
+         IF EqualArray (s, symName)
+         THEN
+            out0 ("list ") ;
+            out0 (listName) ;
+            out0 (": ") ;
+            doDbg (l, n)
+         END ;
+         s := KillString (s)
+      END ;
       INC (i)
    UNTIL i>alists.noOfItemsInList (l) ;
    doP := o ;
@@ -16658,6 +17662,7 @@ BEGIN
    assert (isFuncCall (n)) ;
    m := makeFuncCall (dupExpr (n^.funccallF.function), dupExpr (n^.funccallF.args)) ;
    m^.funccallF.type := n^.funccallF.type ;
+   assignNodeOpaqueCastState (m, n) ;
    RETURN m
 END dupFunccall ;
 
diff --git a/gcc/m2/mc/mc.flex b/gcc/m2/mc/mc.flex
index 7c841bf8d63..26139516dfd 100644
--- a/gcc/m2/mc/mc.flex
+++ b/gcc/m2/mc/mc.flex
@@ -27,6 +27,7 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 #include <time.h>
 #include <ctype.h>
+#include <stdbool.h>
 
 #ifndef alloca
 #ifdef __GNUC__
@@ -101,11 +102,11 @@ static  void pushFunction             (char *function, int module);
 static  void popFunction              (void);
 static  void checkFunction            (void);
         int  mcflex_getColumnNo       (void);
-	int  mcflex_openSource        (char *s);
+	bool mcflex_openSource        (char *s);
 	int  mcflex_getLineNo         (void);
 	void mcflex_closeSource       (void);
 	char *mcflex_getToken         (void);
-        void _M2_mcflex_init          (void);
+        void _M2_mcflex_init          (int argc, char *argv[], char *envp[]);
         int  mcflex_getTotalLines     (void);
 extern  void  yylex                   (void);
 
@@ -659,13 +660,13 @@ mcflex_closeSource (void)
 /* openSource returns TRUE if file s can be opened and
    all tokens are taken from this file.  */
 
-int
+bool
 mcflex_openSource (char *s)
 {
   FILE *newInputFile = fopen (s, "r");
 
   if (newInputFile == NULL)
-    return FALSE;
+    return false;
   else
     {
       isDefinitionModule = FALSE;
@@ -687,7 +688,7 @@ mcflex_openSource (char *s)
       if (currentLine != NULL)
 	currentLine->actualline = lineno;
       START_FILE (filename, lineno);
-      return TRUE;
+      return true;
     }
 }
 
@@ -734,12 +735,12 @@ yywrap (void)
 }
 
 void
-_M2_mcflex_init (void)
+_M2_mcflex_init (int argc, char *argv[], char *envp[])
 {
 }
 
 void
-_M2_mcflex_fini (void)
+_M2_mcflex_fini (int argc, char *argv[], char *envp[])
 {
 }
 
diff --git a/gcc/m2/mc/mcComment.h b/gcc/m2/mc/mcComment.h
index 31f412fcf8a..9e75ca5e42a 100644
--- a/gcc/m2/mc/mcComment.h
+++ b/gcc/m2/mc/mcComment.h
@@ -22,6 +22,8 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #ifndef mcCommentH
 #define mcCommentH
 
+#include <stdbool.h>
+
 /* addText the text cs is appended to the current comment.  */
 
 extern void mcComment_addText (void *cd, char *cs);
@@ -34,7 +36,7 @@ extern void mcComment_addText (void *cd, char *cs);
    If onlySpaces is TRUE then an inbody comment is created.
    If onlySpaces is FALSE then an after statement comment is created.  */
 
-extern void *mcComment_initComment (unsigned int onlySpaces);
+extern void *mcComment_initComment (bool onlySpaces);
 
 
 #endif
diff --git a/gcc/m2/mc/mcOptions.mod b/gcc/m2/mc/mcOptions.mod
index 7b81222f356..cdea1f466bf 100644
--- a/gcc/m2/mc/mcOptions.mod
+++ b/gcc/m2/mc/mcOptions.mod
@@ -752,7 +752,8 @@ BEGIN
       setOutputFile (Slice (arg, 3, 0))
    ELSIF optionIs ("--extended-opaque", arg)
    THEN
-      setExtendedOpaque (TRUE)
+      (* setExtendedOpaque (TRUE) *)
+      printf0 ("IGNORING --extended-opaque - this option is no longer implemented - please adjust the call to mc\n")
    ELSIF optionIs ("--debug-top", arg)
    THEN
       setDebugTopological (TRUE)
diff --git a/gcc/m2/mc/mcp1.bnf b/gcc/m2/mc/mcp1.bnf
index 5c1460b5517..5b9661b4c23 100644
--- a/gcc/m2/mc/mcp1.bnf
+++ b/gcc/m2/mc/mcp1.bnf
@@ -59,7 +59,7 @@ FROM mcLexBuf IMPORT currentstring, currenttoken, getToken, insertToken,
 FROM decl IMPORT node, lookupDef, lookupImp, lookupModule, getSymName,
                  lookupSym, putDefForC,
                  makeProcedure, makeType, makeTypeImp, makeVar, makeConst,
-		 enterScope, leaveScope, putTypeHidden,
+		 enterScope, leaveScope, putTypeHidden, putTypeOpaque,
 		 addImportedModule, getCurrentModule,
 		 putCommentDefProcedure, putCommentModProcedure ;
 
@@ -1064,7 +1064,8 @@ DefinitionModule :=                                                    % VAR c:
 
 DefTypeDeclaration := { Ident                                          % VAR n: node ; %
 		                                                       % n := makeType (curident) %
-                        ( ";"                                          % putTypeHidden (n) %
+                        ( ";"                                          % putTypeHidden (n) ;
+                                                                         putTypeOpaque (n) %
 			      | "=" Type Alignment ";" ) }
 		    =:
 
diff --git a/gcc/testsuite/gm2/base-lang/pass/SYSTEM.def b/gcc/testsuite/gm2/base-lang/pass/SYSTEM.def
new file mode 100644
index 00000000000..fde650bee24
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/SYSTEM.def
@@ -0,0 +1,197 @@
+(* SYSTEM.def provides access to the SYSTEM dependent module.
+
+Copyright (C) 2001-2024 Free Software Foundation, Inc.
+Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
+
+This file is part of GNU Modula-2.
+
+GNU Modula-2 is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Modula-2 is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  *)
+
+DEFINITION MODULE SYSTEM ;
+
+EXPORT QUALIFIED BITSPERBYTE, BYTESPERWORD,
+                 ADDRESS, WORD, BYTE, CSIZE_T, CSSIZE_T, (* @SYSTEM_DATATYPES@  *)
+                 ADR, TSIZE, ROTATE, SHIFT, THROW, TBITSIZE ;
+                 (* SIZE is also exported if -fpim2 is used.  *)
+
+CONST
+  BITSPERBYTE   = __ATTRIBUTE__ __BUILTIN__ ((BITS_PER_UNIT)) ;
+  BYTESPERWORD  = __ATTRIBUTE__ __BUILTIN__ ((UNITS_PER_WORD)) ;
+
+(* Note that the full list of system and sized datatypes include:
+   LOC, WORD, BYTE, ADDRESS,
+
+   (and the non language standard target types)
+
+   INTEGER8, INTEGER16, INTEGER32, INTEGER64,
+   CARDINAL8, CARDINAL16, CARDINAL32, CARDINAL64,
+   WORD16, WORD32, WORD64, BITSET8, BITSET16,
+   BITSET32, REAL32, REAL64, REAL128, COMPLEX32,
+   COMPLEX64, COMPLEX128, CSIZE_T, CSSIZE_T.
+
+   Also note that the non-standard data types will
+   move into another module in the future.  *)
+
+
+(* The following types are supported on this target:
+TYPE
+   @SYSTEM_TYPES@
+*)
+
+
+(*
+   all the functions below are declared internally to gm2
+   ======================================================
+
+PROCEDURE ADR (VAR v: <anytype>): ADDRESS;
+  (* Returns the address of variable v. *)
+
+PROCEDURE SIZE (v: <type>) : ZType;
+  (* Returns the number of BYTES used to store a v of
+     any specified <type>.  Only available if -fpim2 is used.
+  *)
+
+PROCEDURE TSIZE (<type>) : CARDINAL;
+  (* Returns the number of BYTES used to store a value of the
+     specified <type>.
+  *)
+
+PROCEDURE ROTATE (val: <a set type>;
+                  num: INTEGER): <type of first parameter>;
+  (* Returns a bit sequence obtained from val by rotating up/right
+     or down/right by the absolute value of num.  The direction is
+     down/right if the sign of num is negative, otherwise the direction
+     is up/left.
+  *)
+
+PROCEDURE SHIFT (val: <a set type>;
+                 num: INTEGER): <type of first parameter>;
+  (* Returns a bit sequence obtained from val by shifting up/left
+     or down/right by the absolute value of num, introducing
+     zeros as necessary.  The direction is down/right if the sign of
+     num is negative, otherwise the direction is up/left.
+  *)
+
+PROCEDURE THROW (i: INTEGER) <* noreturn *> ;
+  (*
+     THROW is a GNU extension and was not part of the PIM or ISO
+     standards.  It throws an exception which will be caught by the
+     EXCEPT block (assuming it exists).  This is a compiler builtin
+     function which interfaces to the GCC exception handling runtime
+     system.
+     GCC uses the term throw, hence the naming distinction between
+     the GCC builtin and the Modula-2 runtime library procedure Raise.
+     The later library procedure Raise will call SYSTEM.THROW after
+     performing various housekeeping activities.
+  *)
+
+PROCEDURE TBITSIZE (<type>) : CARDINAL ;
+  (* Returns the minimum number of bits necessary to represent
+     <type>.  This procedure function is only useful for determining
+     the number of bits used for any type field within a packed RECORD.
+     It is not particularly useful elsewhere since <type> might be
+     optimized for speed, for example a BOOLEAN could occupy a WORD.
+  *)
+*)
+
+(* The following procedures are invoked by GNU Modula-2 to
+   shift non word sized set types. They are not strictly part
+   of the core PIM Modula-2, however they are used
+   to implement the SHIFT procedure defined above,
+   which are in turn used by the Logitech compatible libraries.
+
+   Users will access these procedures by using the procedure
+   SHIFT above and GNU Modula-2 will map SHIFT onto one of
+   the following procedures.
+*)
+
+(*
+   ShiftVal - is a runtime procedure whose job is to implement
+              the SHIFT procedure of ISO SYSTEM. GNU Modula-2 will
+              inline a SHIFT of a single WORD sized set and will only
+              call this routine for larger sets.
+*)
+
+PROCEDURE ShiftVal (VAR s, d: ARRAY OF BITSET;
+                    SetSizeInBits: CARDINAL;
+                    ShiftCount: INTEGER) ;
+
+
+(*
+   ShiftLeft - performs the shift left for a multi word set.
+               This procedure might be called by the back end of
+               GNU Modula-2 depending whether amount is known at
+               compile time.
+*)
+
+PROCEDURE ShiftLeft (VAR s, d: ARRAY OF BITSET;
+                     SetSizeInBits: CARDINAL;
+                     ShiftCount: CARDINAL) ;
+
+(*
+   ShiftRight - performs the shift left for a multi word set.
+                This procedure might be called by the back end of
+                GNU Modula-2 depending whether amount is known at
+                compile time.
+*)
+
+PROCEDURE ShiftRight (VAR s, d: ARRAY OF BITSET;
+                      SetSizeInBits: CARDINAL;
+                      ShiftCount: CARDINAL) ;
+
+
+(*
+   RotateVal - is a runtime procedure whose job is to implement
+               the ROTATE procedure of ISO SYSTEM. GNU Modula-2 will
+               inline a ROTATE of a single WORD (or less)
+               sized set and will only call this routine for larger
+               sets.
+*)
+
+PROCEDURE RotateVal (VAR s, d: ARRAY OF BITSET;
+                     SetSizeInBits: CARDINAL;
+                     RotateCount: INTEGER) ;
+
+
+(*
+   RotateLeft - performs the rotate left for a multi word set.
+                This procedure might be called by the back end of
+                GNU Modula-2 depending whether amount is known at
+                compile time.
+*)
+
+PROCEDURE RotateLeft (VAR s, d: ARRAY OF BITSET;
+                      SetSizeInBits: CARDINAL;
+                      RotateCount: CARDINAL) ;
+
+
+(*
+   RotateRight - performs the rotate right for a multi word set.
+                 This procedure might be called by the back end of
+                 GNU Modula-2 depending whether amount is known at
+                 compile time.
+*)
+
+PROCEDURE RotateRight (VAR s, d: ARRAY OF BITSET;
+                       SetSizeInBits: CARDINAL;
+                       RotateCount: CARDINAL) ;
+
+
+END SYSTEM.
diff --git a/gcc/testsuite/gm2/base-lang/pass/base-lang-test.sh b/gcc/testsuite/gm2/base-lang/pass/base-lang-test.sh
new file mode 100755
index 00000000000..de33018775f
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/base-lang-test.sh
@@ -0,0 +1,291 @@
+#!/bin/sh
+# Copyright (C) 2024 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
+
+# This file was written by Gaius Mulley (gaiusmod2@gmail.com)
+
+# This script performs base language translation tests with the bootstrap tool mc.
+
+MC=$1
+GCCSRCDIR=$2
+GCCBUILDDIR=$3
+GXX=$4
+
+
+SCRATCHDIR=${GCCBUILDDIR}/m2/mc-base-lang-test
+
+
+function compile () {
+    echo $*
+    if ! $* ; then
+	echo $*
+	echo "bootstrap compiler ${MC} failed: $*"
+	exit 1
+    fi
+}
+
+
+function compile_def () {
+    SRC=$1
+    compile ${MC} -o=${SCRATCHDIR}/G${SRC}.h --olang=c++  --h-file-prefix=G --quiet \
+	    -I${GCCSRCDIR}/m2/gm2-libs -I${GCCSRCDIR}/testsuite/gm2/base-lang/pass \
+	    ${GCCSRCDIR}/testsuite/gm2/base-lang/pass/${SRC}.def
+}
+
+
+function compile_mod () {
+    SRC=$1
+    compile ${MC} -o=${SCRATCHDIR}/G${SRC}.cc --olang=c++  --h-file-prefix=G --quiet \
+	    -I${GCCSRCDIR}/m2/gm2-libs -I${GCCSRCDIR}/testsuite/gm2/base-lang/pass \
+	    ${GCCSRCDIR}/testsuite/gm2/base-lang/pass/${SRC}.mod
+}
+
+
+#
+#  verify - check that the translated sources compile with -Wodr
+#
+
+function verify () {
+    SRC=$1
+    if ${GXX} -Wodr -Werror -I${SCRATCHDIR} -c ${SCRATCHDIR}/G${SRC}.cc -o ${SCRATCHDIR}/G${SRC}.o ; then
+	echo "${NAME}: Passed"
+    else
+	echo "${NAME}: Failed (${GXX} -Wodr -Werror -I${SCRATCHDIR} -c ${SCRATCHDIR}/G${SRC}.cc)"
+	exit 1
+    fi
+}
+
+
+function localvar () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="local variable creation"
+    compile_def localvar
+    compile_mod localvar
+    verify localvar
+}
+
+
+function globalvar () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="global variable creation"
+    compile_def globalvar
+    compile_mod globalvar
+    verify globalvar
+}
+
+
+function localvarassign () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="local variable assignment"
+    compile_def localvarassign
+    compile_mod localvarassign
+    verify localvarassign
+}
+
+
+function globalvarassign () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="global variable assignment"
+    compile_def globalvarassign
+    compile_mod globalvarassign
+    verify globalvarassign
+}
+
+
+function localproctype () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="local proctype creation"
+    compile_def localproctype
+    compile_mod localproctype
+    verify localproctype
+}
+
+
+function globalproctype () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="global proctype creation"
+    compile_def globalproctype
+    compile_mod globalproctype
+    verify globalproctype
+}
+
+
+function simpleopaque () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="simple opaque type creation"
+    compile_def simpleopaque
+    compile_mod simpleopaque
+    verify simpleopaque
+}
+
+
+function simplelist () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="simple list opaque type field manipulation"
+    compile_def simplelist
+    compile_mod simplelist
+    verify simplelist
+}
+
+
+function simplelistiter () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="simple iteration using opaque type field"
+    compile_def simplelistiter
+    compile_mod simplelistiter
+    verify simplelistiter
+}
+
+
+function opaqueparam () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="opaque parameter and field assignment"
+    compile_def opaqueparam
+    compile_mod opaqueparam
+    verify opaqueparam
+}
+
+
+function opaqueuse () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="opaque use"
+    compile_def opaqueparam
+    compile_def opaqueuse
+    compile_mod opaqueuse
+    verify opaqueuse
+}
+
+
+function opaquestr () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="opaque str"
+    compile_def opaquestr
+    compile_def opaqueusestr
+    compile_mod opaqueusestr
+    verify opaqueusestr
+}
+
+
+function opaquenew () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="opaque new"
+    compile_def opaquenew
+    compile_mod opaquenew
+    verify opaquenew
+}
+
+
+function opaquefield () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="opaque field"
+    compile_def opaquestr
+    compile_def opaquefield
+    compile_mod opaquefield
+    verify opaquefield
+}
+
+
+function opaquevariant () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="opaque variant"
+    compile_def opaquevariant
+    compile_mod opaquevariant
+    verify opaquevariant
+}
+
+
+function opaquevarparam () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="opaque variant"
+    compile_def opaquevarparam
+    compile_mod opaquevarparam
+    verify opaquevarparam
+}
+
+
+function straddress () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="string address"
+    compile_def SYSTEM
+    compile_def straddress
+    compile_mod straddress
+    verify straddress
+}
+
+
+function straddressexport () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="string address"
+    compile_def SYSTEM
+    compile_def straddressexport
+    compile_mod straddressexport
+    verify straddressexport
+}
+
+
+function unboundedarray () {
+    rm -rf ${SCRATCHDIR}
+    mkdir -p ${SCRATCHDIR}
+    NAME="string address"
+    compile_def unboundedarray
+    compile_mod unboundedarray
+    verify unboundedarray
+}
+
+
+function runall () {
+    localvar
+    globalvar
+    localvarassign
+    globalvarassign
+    localproctype
+    globalproctype
+    simpleopaque
+    simplelist
+    simplelistiter
+    opaqueparam
+    opaqueuse
+    opaquestr
+    opaquenew
+    opaquefield
+    opaquevariant
+    opaquevarparam
+    straddress
+    straddressexport
+    unboundedarray
+    echo "all base language boot strap tests pass -Wodr -Werror"
+}
+
+
+runall
diff --git a/gcc/testsuite/gm2/base-lang/pass/globalproctype.def b/gcc/testsuite/gm2/base-lang/pass/globalproctype.def
new file mode 100644
index 00000000000..ce52321495a
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/globalproctype.def
@@ -0,0 +1,7 @@
+DEFINITION MODULE globalproctype ;  (*!m2pim*)
+
+TYPE
+   myproc = PROCEDURE (CARDINAL) ;
+
+
+END globalproctype.
diff --git a/gcc/testsuite/gm2/base-lang/pass/globalproctype.mod b/gcc/testsuite/gm2/base-lang/pass/globalproctype.mod
new file mode 100644
index 00000000000..bddb5a9fdd5
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/globalproctype.mod
@@ -0,0 +1,13 @@
+IMPLEMENTATION MODULE globalproctype ;  (*!m2pim*)
+
+
+PROCEDURE foo (c: CARDINAL) ;
+BEGIN
+END foo ;
+
+
+VAR
+   p: myproc ;
+BEGIN
+   p := foo
+END globalproctype.
diff --git a/gcc/testsuite/gm2/base-lang/pass/globalvar.def b/gcc/testsuite/gm2/base-lang/pass/globalvar.def
new file mode 100644
index 00000000000..8c6ff983df4
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/globalvar.def
@@ -0,0 +1,3 @@
+DEFINITION MODULE globalvar ;  (*!m2pim*)
+
+END globalvar.
diff --git a/gcc/testsuite/gm2/base-lang/pass/globalvar.mod b/gcc/testsuite/gm2/base-lang/pass/globalvar.mod
new file mode 100644
index 00000000000..d18058c31ea
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/globalvar.mod
@@ -0,0 +1,6 @@
+IMPLEMENTATION MODULE globalvar ;  (*!m2pim*)
+
+VAR
+   i: INTEGER ;
+BEGIN
+END globalvar.
diff --git a/gcc/testsuite/gm2/base-lang/pass/globalvarassign.def b/gcc/testsuite/gm2/base-lang/pass/globalvarassign.def
new file mode 100644
index 00000000000..8238bbf4bd3
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/globalvarassign.def
@@ -0,0 +1,3 @@
+DEFINITION MODULE globalvarassign ;  (*!m2pim*)
+
+END globalvarassign.
diff --git a/gcc/testsuite/gm2/base-lang/pass/globalvarassign.mod b/gcc/testsuite/gm2/base-lang/pass/globalvarassign.mod
new file mode 100644
index 00000000000..17e88e43013
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/globalvarassign.mod
@@ -0,0 +1,8 @@
+IMPLEMENTATION MODULE globalvarassign ;  (*!m2pim*)
+
+
+VAR
+   i: INTEGER ;
+BEGIN
+   i := 1
+END globalvarassign.
diff --git a/gcc/testsuite/gm2/base-lang/pass/localproctype.def b/gcc/testsuite/gm2/base-lang/pass/localproctype.def
new file mode 100644
index 00000000000..54164f9727e
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/localproctype.def
@@ -0,0 +1,3 @@
+DEFINITION MODULE localproctype ;  (*!m2pim*)
+
+END localproctype.
diff --git a/gcc/testsuite/gm2/base-lang/pass/localproctype.mod b/gcc/testsuite/gm2/base-lang/pass/localproctype.mod
new file mode 100644
index 00000000000..e896ef2a73d
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/localproctype.mod
@@ -0,0 +1,16 @@
+IMPLEMENTATION MODULE localproctype ;  (*!m2pim*)
+
+TYPE
+   myproc = PROCEDURE (CARDINAL) ;
+
+
+PROCEDURE foo (c: CARDINAL) ;
+BEGIN
+END foo ;
+
+
+VAR
+   p: myproc ;
+BEGIN
+   p := foo
+END localproctype.
diff --git a/gcc/testsuite/gm2/base-lang/pass/localvar.def b/gcc/testsuite/gm2/base-lang/pass/localvar.def
new file mode 100644
index 00000000000..726d46174a9
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/localvar.def
@@ -0,0 +1,3 @@
+DEFINITION MODULE localvar ;  (*!m2pim*)
+
+END localvar.
diff --git a/gcc/testsuite/gm2/base-lang/pass/localvar.mod b/gcc/testsuite/gm2/base-lang/pass/localvar.mod
new file mode 100644
index 00000000000..0839351c49a
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/localvar.mod
@@ -0,0 +1,11 @@
+IMPLEMENTATION MODULE localvar ;  (*!m2pim*)
+
+PROCEDURE foo ;
+VAR
+   i: INTEGER ;
+BEGIN
+END foo ;
+
+BEGIN
+   foo
+END localvar.
diff --git a/gcc/testsuite/gm2/base-lang/pass/localvarassign.def b/gcc/testsuite/gm2/base-lang/pass/localvarassign.def
new file mode 100644
index 00000000000..a9bb7a43df7
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/localvarassign.def
@@ -0,0 +1,3 @@
+DEFINITION MODULE localvarassign ;  (*!m2pim*)
+
+END localvarassign.
diff --git a/gcc/testsuite/gm2/base-lang/pass/localvarassign.mod b/gcc/testsuite/gm2/base-lang/pass/localvarassign.mod
new file mode 100644
index 00000000000..d4de6a54520
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/localvarassign.mod
@@ -0,0 +1,14 @@
+IMPLEMENTATION MODULE localvarassign ;  (*!m2pim*)
+
+
+PROCEDURE foo ;
+VAR
+   i: INTEGER ;
+BEGIN
+   i := 1
+END foo ;
+
+
+BEGIN
+   foo
+END localvarassign.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaquefield.def b/gcc/testsuite/gm2/base-lang/pass/opaquefield.def
new file mode 100644
index 00000000000..83006ec8e3b
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaquefield.def
@@ -0,0 +1,8 @@
+DEFINITION MODULE opaquefield ;  (*!m2pim*)
+
+TYPE
+   Content ;
+
+PROCEDURE create () : Content ;
+
+END opaquefield.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaquefield.mod b/gcc/testsuite/gm2/base-lang/pass/opaquefield.mod
new file mode 100644
index 00000000000..4bbf2238455
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaquefield.mod
@@ -0,0 +1,19 @@
+IMPLEMENTATION MODULE opaquefield ;  (*!m2pim*)
+
+FROM opaquestr IMPORT String, initString ;
+
+TYPE
+   Content = POINTER TO RECORD
+                           next: String ;
+                        END ;
+
+PROCEDURE create () : Content ;
+VAR
+   c: Content ;
+BEGIN
+   c^.next := initString () ;
+   RETURN c
+END create ;
+
+
+END opaquefield.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaquenew.def b/gcc/testsuite/gm2/base-lang/pass/opaquenew.def
new file mode 100644
index 00000000000..457c3e56a62
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaquenew.def
@@ -0,0 +1,8 @@
+DEFINITION MODULE opaquenew ;  (*!m2pim*)
+
+TYPE
+   List ;
+
+PROCEDURE dupList (l: List) : List ;
+
+END opaquenew.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaquenew.mod b/gcc/testsuite/gm2/base-lang/pass/opaquenew.mod
new file mode 100644
index 00000000000..c9b873f3abf
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaquenew.mod
@@ -0,0 +1,18 @@
+IMPLEMENTATION MODULE opaquenew ;  (*!m2pim*)
+
+TYPE
+   List = POINTER TO RECORD
+                        next: List ;
+                     END ;
+
+
+PROCEDURE dupList (l: List) : List ;
+VAR
+   n: List ;
+BEGIN
+   (* NEW (n) *)
+   n^ := l^ ;
+   RETURN n
+END dupList ;
+
+END opaquenew.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaqueparam.def b/gcc/testsuite/gm2/base-lang/pass/opaqueparam.def
new file mode 100644
index 00000000000..007bfb79800
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaqueparam.def
@@ -0,0 +1,12 @@
+DEFINITION MODULE opaqueparam ;  (*!m2pim*)
+
+TYPE
+   List ;
+
+
+PROCEDURE initList () : List ;
+
+PROCEDURE add (l: List) ;
+
+
+END opaqueparam.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaqueparam.mod b/gcc/testsuite/gm2/base-lang/pass/opaqueparam.mod
new file mode 100644
index 00000000000..1b854f0b60d
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaqueparam.mod
@@ -0,0 +1,32 @@
+IMPLEMENTATION MODULE opaqueparam ;  (*!m2pim*)
+
+TYPE
+   List = POINTER TO RECORD
+                        next: List ;
+                     END ;
+
+
+PROCEDURE local (l: List) : List ;
+BEGIN
+   RETURN l
+END local ;
+
+
+PROCEDURE add (l: List) ;
+BEGIN
+   IF l = NIL
+   THEN
+      l^.next := local (initList ())
+   END
+END add ;
+
+
+PROCEDURE initList () : List ;
+VAR
+   l: List ;
+BEGIN
+   RETURN l
+END initList ;
+
+
+END opaqueparam.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaquestr.def b/gcc/testsuite/gm2/base-lang/pass/opaquestr.def
new file mode 100644
index 00000000000..8ebf1665c83
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaquestr.def
@@ -0,0 +1,10 @@
+DEFINITION MODULE opaquestr ;  (*!m2pim*)
+
+TYPE
+   String ;
+
+PROCEDURE initString () : String ;
+PROCEDURE concat (left, right: String) : String ;
+
+
+END opaquestr.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaqueuse.def b/gcc/testsuite/gm2/base-lang/pass/opaqueuse.def
new file mode 100644
index 00000000000..084d2555195
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaqueuse.def
@@ -0,0 +1,7 @@
+DEFINITION MODULE opaqueuse ;  (*!m2pim*)
+
+FROM opaqueparam IMPORT List ;
+
+PROCEDURE extending (l: List) : List ;
+
+END opaqueuse.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaqueuse.mod b/gcc/testsuite/gm2/base-lang/pass/opaqueuse.mod
new file mode 100644
index 00000000000..577a54b558d
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaqueuse.mod
@@ -0,0 +1,15 @@
+IMPLEMENTATION MODULE opaqueuse ;  (*!m2pim*)
+
+FROM opaqueparam IMPORT initList, add ;
+
+PROCEDURE extending (l: List) : List ;
+VAR
+   n: List ;
+BEGIN
+   n := initList () ;
+   add (n) ;
+   RETURN n
+END extending ;
+
+
+END opaqueuse.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaqueusestr.def b/gcc/testsuite/gm2/base-lang/pass/opaqueusestr.def
new file mode 100644
index 00000000000..1e05e45335c
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaqueusestr.def
@@ -0,0 +1,9 @@
+DEFINITION MODULE opaqueusestr ;  (*!m2pim*)
+
+FROM opaquestr IMPORT String ;
+
+PROCEDURE doDecimalPlaces (s: String; n: CARDINAL) : String ;
+PROCEDURE IntegerToString (i: INTEGER) : String ;
+
+
+END opaqueusestr.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaqueusestr.mod b/gcc/testsuite/gm2/base-lang/pass/opaqueusestr.mod
new file mode 100644
index 00000000000..65aebee1fd5
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaqueusestr.mod
@@ -0,0 +1,27 @@
+IMPLEMENTATION MODULE opaqueusestr ;  (*!m2pim*)
+
+FROM opaquestr IMPORT initString, concat ;
+
+
+PROCEDURE rtos (r: REAL; TotalWidth, FractionWidth: CARDINAL) : String ;
+BEGIN
+   RETURN ( NIL )
+END rtos ;
+
+
+PROCEDURE doDecimalPlaces (s: String; n: CARDINAL) : String ;
+BEGIN
+   RETURN concat (s, initString ())
+END doDecimalPlaces ;
+
+
+PROCEDURE IntegerToString (i: INTEGER) : String ;
+VAR
+   s: String ;
+BEGIN
+   s := initString () ;
+   RETURN s
+END IntegerToString ;
+
+
+END opaqueusestr.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaquevariant.def b/gcc/testsuite/gm2/base-lang/pass/opaquevariant.def
new file mode 100644
index 00000000000..84f0bbd05ed
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaquevariant.def
@@ -0,0 +1,6 @@
+DEFINITION MODULE opaquevariant ;  (*!m2pim*)
+
+TYPE
+   Opaque ;
+
+END opaquevariant.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaquevariant.mod b/gcc/testsuite/gm2/base-lang/pass/opaquevariant.mod
new file mode 100644
index 00000000000..3197a04ca31
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaquevariant.mod
@@ -0,0 +1,26 @@
+IMPLEMENTATION MODULE opaquevariant ;  (*!m2pim*)
+
+TYPE
+   colour = (red, blue, green) ;
+   Opaque = POINTER TO RECORD
+                          CASE key: colour OF
+
+                          red  :  truefield : TrueRec |
+                          blue,
+                          green:  falsefield: FalseRec
+
+                          END
+                       END ;
+
+   TrueRec = RECORD
+                a: Opaque
+             END ;
+
+   FalseRec = RECORD
+                 b: Opaque
+              END ;
+
+VAR
+   v: Opaque ;
+
+END opaquevariant.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaquevarparam.def b/gcc/testsuite/gm2/base-lang/pass/opaquevarparam.def
new file mode 100644
index 00000000000..3249da17964
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaquevarparam.def
@@ -0,0 +1,9 @@
+DEFINITION MODULE opaquevarparam ;
+
+TYPE
+   Opaque ;
+
+PROCEDURE del (VAR o: Opaque) ;
+
+
+END opaquevarparam.
diff --git a/gcc/testsuite/gm2/base-lang/pass/opaquevarparam.mod b/gcc/testsuite/gm2/base-lang/pass/opaquevarparam.mod
new file mode 100644
index 00000000000..90a34bda2b4
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/opaquevarparam.mod
@@ -0,0 +1,16 @@
+IMPLEMENTATION MODULE opaquevarparam ;
+
+TYPE
+   Opaque = POINTER TO RECORD
+                          next: Opaque ;
+                       END ;
+
+PROCEDURE del (VAR o: Opaque) ;
+BEGIN
+   IF o # NIL
+   THEN
+      del (o^.next)
+   END
+END del ;
+
+END opaquevarparam.
diff --git a/gcc/testsuite/gm2/base-lang/pass/simplelist.def b/gcc/testsuite/gm2/base-lang/pass/simplelist.def
new file mode 100644
index 00000000000..f6221757f6e
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/simplelist.def
@@ -0,0 +1,11 @@
+DEFINITION MODULE simplelist ;  (*!m2pim*)
+
+TYPE
+   List ;
+
+PROCEDURE initList () : List ;
+
+PROCEDURE concat (l: List) : List ;
+
+
+END simplelist.
diff --git a/gcc/testsuite/gm2/base-lang/pass/simplelist.mod b/gcc/testsuite/gm2/base-lang/pass/simplelist.mod
new file mode 100644
index 00000000000..37b1e595917
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/simplelist.mod
@@ -0,0 +1,33 @@
+IMPLEMENTATION MODULE simplelist ;  (*!m2pim*)
+
+
+TYPE
+   List = POINTER TO RECORD
+                        next: List ;
+                     END ;
+
+
+PROCEDURE initList () : List ;
+VAR
+   l: List ;
+BEGIN
+   (* Ignore NEW (l) for now.  *)
+   RETURN l
+END initList ;
+
+
+PROCEDURE concat (l: List) : List ;
+BEGIN
+   l^.next := initList () ;
+   RETURN l
+END concat ;
+
+
+PROCEDURE addList (l: List) : List ;
+BEGIN
+   l^.next := initList () ;
+   RETURN l
+END addList ;
+
+
+END simplelist.
diff --git a/gcc/testsuite/gm2/base-lang/pass/simplelistiter.def b/gcc/testsuite/gm2/base-lang/pass/simplelistiter.def
new file mode 100644
index 00000000000..b2eae7652b1
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/simplelistiter.def
@@ -0,0 +1,10 @@
+DEFINITION MODULE simplelistiter ;  (*!m2pim*)
+
+TYPE
+   List ;
+
+PROCEDURE initList () : List ;
+
+PROCEDURE items (l: List) : CARDINAL ;
+
+END simplelistiter.
diff --git a/gcc/testsuite/gm2/base-lang/pass/simplelistiter.mod b/gcc/testsuite/gm2/base-lang/pass/simplelistiter.mod
new file mode 100644
index 00000000000..10cacde3637
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/simplelistiter.mod
@@ -0,0 +1,30 @@
+IMPLEMENTATION MODULE simplelistiter ;  (*!m2pim*)
+
+TYPE
+   List = POINTER TO RECORD
+                        next: List ;
+                     END ;
+
+PROCEDURE initList () : List ;
+VAR
+   l: List ;
+BEGIN
+   RETURN l
+END initList ;
+
+
+PROCEDURE items (l: List) : CARDINAL ;
+(* VAR
+   count: CARDINAL ; *)
+BEGIN
+(*   count := 0 ; *)
+   WHILE l # NIL DO
+      (* INC (count) ; *)
+      l := l^.next
+   END ;
+   (* RETURN count *)
+   RETURN 0
+END items ;
+
+
+END simplelistiter.
diff --git a/gcc/testsuite/gm2/base-lang/pass/simpleopaque.def b/gcc/testsuite/gm2/base-lang/pass/simpleopaque.def
new file mode 100644
index 00000000000..ca601aad018
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/simpleopaque.def
@@ -0,0 +1,13 @@
+DEFINITION MODULE simpleopaque ;  (*!m2pim*)
+
+TYPE
+   List ;
+
+PROCEDURE init () : List ;
+
+PROCEDURE join (left, right: List) : List ;
+
+PROCEDURE delete (VAR l: List) ;
+
+
+END simpleopaque.
diff --git a/gcc/testsuite/gm2/base-lang/pass/simpleopaque.mod b/gcc/testsuite/gm2/base-lang/pass/simpleopaque.mod
new file mode 100644
index 00000000000..62d56c01602
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/simpleopaque.mod
@@ -0,0 +1,32 @@
+IMPLEMENTATION MODULE simpleopaque ;  (*!m2pim*)
+
+TYPE
+   List = POINTER TO RECORD
+                        next: List ;
+                     END ;
+
+
+PROCEDURE init () : List ;
+VAR
+   l: List ;
+BEGIN
+   RETURN l
+END init ;
+
+
+PROCEDURE join (left, right: List) : List ;
+VAR
+   l: List ;
+BEGIN
+   l := left ;
+   RETURN l
+END join ;
+
+
+PROCEDURE delete (VAR l: List) ;
+BEGIN
+   l := NIL
+END delete ;
+
+
+END simpleopaque.
diff --git a/gcc/testsuite/gm2/base-lang/pass/straddress.def b/gcc/testsuite/gm2/base-lang/pass/straddress.def
new file mode 100644
index 00000000000..24b243c2c72
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/straddress.def
@@ -0,0 +1,5 @@
+DEFINITION MODULE straddress ;  (*!m2pim*)
+
+PROCEDURE Open (a: ARRAY OF CHAR) ;
+
+END straddress.
diff --git a/gcc/testsuite/gm2/base-lang/pass/straddress.mod b/gcc/testsuite/gm2/base-lang/pass/straddress.mod
new file mode 100644
index 00000000000..78f90baee6c
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/straddress.mod
@@ -0,0 +1,16 @@
+IMPLEMENTATION MODULE straddress ;  (*!m2pim*)
+
+FROM SYSTEM IMPORT ADDRESS, ADR ;
+
+
+PROCEDURE open (a: ADDRESS) ;
+BEGIN
+END open ;
+
+PROCEDURE Open (a: ARRAY OF CHAR) ;
+BEGIN
+   open (ADR (a))
+END Open ;
+
+
+END straddress.
diff --git a/gcc/testsuite/gm2/base-lang/pass/straddressexport.def b/gcc/testsuite/gm2/base-lang/pass/straddressexport.def
new file mode 100644
index 00000000000..34618ec1204
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/straddressexport.def
@@ -0,0 +1,8 @@
+DEFINITION MODULE straddressexport ;  (*!m2pim*)
+
+FROM SYSTEM IMPORT ADDRESS ;
+
+PROCEDURE Open (a: ARRAY OF CHAR) ;
+PROCEDURE open (a: ADDRESS) ;
+
+END straddressexport.
diff --git a/gcc/testsuite/gm2/base-lang/pass/straddressexport.mod b/gcc/testsuite/gm2/base-lang/pass/straddressexport.mod
new file mode 100644
index 00000000000..0f1cca932ae
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/straddressexport.mod
@@ -0,0 +1,16 @@
+IMPLEMENTATION MODULE straddressexport ;  (*!m2pim*)
+
+FROM SYSTEM IMPORT ADR ;
+
+
+PROCEDURE open (a: ADDRESS) ;
+BEGIN
+END open ;
+
+PROCEDURE Open (a: ARRAY OF CHAR) ;
+BEGIN
+   open (ADR (a))
+END Open ;
+
+
+END straddressexport.
diff --git a/gcc/testsuite/gm2/base-lang/pass/unboundedarray.def b/gcc/testsuite/gm2/base-lang/pass/unboundedarray.def
new file mode 100644
index 00000000000..52c00356f17
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/unboundedarray.def
@@ -0,0 +1,5 @@
+DEFINITION MODULE unboundedarray ;
+
+PROCEDURE message (m: ARRAY OF CARDINAL) ;
+
+END unboundedarray.
diff --git a/gcc/testsuite/gm2/base-lang/pass/unboundedarray.mod b/gcc/testsuite/gm2/base-lang/pass/unboundedarray.mod
new file mode 100644
index 00000000000..48f027efee1
--- /dev/null
+++ b/gcc/testsuite/gm2/base-lang/pass/unboundedarray.mod
@@ -0,0 +1,8 @@
+IMPLEMENTATION MODULE unboundedarray ;
+
+PROCEDURE message (m: ARRAY OF CARDINAL) ;
+BEGIN
+   m[0] := 1
+END message ;
+
+END unboundedarray.

commit 9fd8cd1990e0f5bac416bafc8a588d05c735f000
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Thu Nov 14 21:38:04 2024 +0100

    Fortran: fix passing of NULL() actual argument to character dummy [PR104819]
    
    Ensure that character length is set and passed by the call to a procedure
    when its dummy argument is NULL() with MOLD argument present, or set length
    to either 0 or the callee's expected character length.  For assumed-rank
    dummies, use the rank of the MOLD argument.  Generate temporaries for
    passed arguments when needed.
    
            PR fortran/104819
    
    gcc/fortran/ChangeLog:
    
            * trans-expr.cc (conv_null_actual): Helper function to handle
            passing of NULL() to non-optional dummy arguments of non-bind(c)
            procedures.
            (gfc_conv_procedure_call): Use it for character dummies.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/null_actual_6.f90: New test.
    
    (cherry picked from commit f70c1d517e09c4dde421774a8cec591ca3c479a0)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index f182ea2ee1c..80399fe3c4f 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -6226,6 +6226,76 @@ conv_dummy_value (gfc_se * parmse, gfc_expr * e, gfc_symbol * fsym,
 }
 
 
+/* Helper function for the handling of NULL() actual arguments associated with
+   non-optional dummy variables.  Argument parmse should already be set up.  */
+static void
+conv_null_actual (gfc_se * parmse, gfc_expr * e, gfc_symbol * fsym)
+{
+  gcc_assert (fsym && !fsym->attr.optional);
+
+  /* Obtain the character length for a NULL() actual with a character
+     MOLD argument.  Otherwise substitute a suitable dummy length.
+     Here we handle only non-optional dummies of non-bind(c) procedures.  */
+  if (fsym->ts.type == BT_CHARACTER)
+    {
+      if (e->ts.type == BT_CHARACTER
+	  && e->symtree->n.sym->ts.type == BT_CHARACTER)
+	{
+	  /* MOLD is present.  Substitute a temporary character NULL pointer.
+	     For an assumed-rank dummy we need a descriptor that passes the
+	     correct rank.  */
+	  if (fsym->as && fsym->as->type == AS_ASSUMED_RANK)
+	    {
+	      tree rank;
+	      tree tmp = parmse->expr;
+	      tmp = gfc_conv_scalar_to_descriptor (parmse, tmp, fsym->attr);
+	      rank = gfc_conv_descriptor_rank (tmp);
+	      gfc_add_modify (&parmse->pre, rank,
+			      build_int_cst (TREE_TYPE (rank), e->rank));
+	      parmse->expr = gfc_build_addr_expr (NULL_TREE, tmp);
+	    }
+	  else
+	    {
+	      tree tmp = gfc_create_var (TREE_TYPE (parmse->expr), "null");
+	      gfc_add_modify (&parmse->pre, tmp,
+			      build_zero_cst (TREE_TYPE (tmp)));
+	      parmse->expr = gfc_build_addr_expr (NULL_TREE, tmp);
+	    }
+
+	  /* Ensure that a usable length is available.  */
+	  if (parmse->string_length == NULL_TREE)
+	    {
+	      gfc_typespec *ts = &e->symtree->n.sym->ts;
+
+	      if (ts->u.cl->length != NULL
+		  && ts->u.cl->length->expr_type == EXPR_CONSTANT)
+		gfc_conv_const_charlen (ts->u.cl);
+
+	      if (ts->u.cl->backend_decl)
+		parmse->string_length = ts->u.cl->backend_decl;
+	    }
+	}
+      else if (e->ts.type == BT_UNKNOWN && parmse->string_length == NULL_TREE)
+	{
+	  /* MOLD is not present.  Pass length of associated dummy character
+	     argument if constant, or zero.  */
+	  if (fsym->ts.u.cl->length != NULL
+	      && fsym->ts.u.cl->length->expr_type == EXPR_CONSTANT)
+	    {
+	      gfc_conv_const_charlen (fsym->ts.u.cl);
+	      parmse->string_length = fsym->ts.u.cl->backend_decl;
+	    }
+	  else
+	    {
+	      parmse->string_length = gfc_create_var (gfc_charlen_type_node,
+						      "slen");
+	      gfc_add_modify (&parmse->pre, parmse->string_length,
+			      build_zero_cst (gfc_charlen_type_node));
+	    }
+	}
+    }
+}
+
 
 /* Generate code for a procedure call.  Note can return se->post != NULL.
    If se->direct_byref is set then se->expr contains the return parameter.
@@ -7375,6 +7445,15 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
 	      gfc_conv_const_charlen (e->symtree->n.sym->ts.u.cl);
 	      parmse.string_length = e->symtree->n.sym->ts.u.cl->backend_decl;
 	    }
+
+	  /* Obtain the character length for a NULL() actual with a character
+	     MOLD argument.  Otherwise substitute a suitable dummy length.
+	     Here we handle non-optional dummies of non-bind(c) procedures.  */
+	  if (e->expr_type == EXPR_NULL
+	      && fsym->ts.type == BT_CHARACTER
+	      && !fsym->attr.optional
+	      && !(sym->attr.is_bind_c && is_CFI_desc (fsym, NULL)))
+	    conv_null_actual (&parmse, e, fsym);
 	}
 
       /* If any actual argument of the procedure is allocatable and passed
diff --git a/gcc/testsuite/gfortran.dg/null_actual_6.f90 b/gcc/testsuite/gfortran.dg/null_actual_6.f90
new file mode 100644
index 00000000000..e68bdc9562e
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/null_actual_6.f90
@@ -0,0 +1,221 @@
+! { dg-do run }
+! { dg-additional-options "-fcheck=bounds" }
+!
+! PR fortran/104819 - passing of NULL() actual argument to character dummy
+
+program p
+  implicit none
+  character(kind=1,len=10), pointer :: c     => NULL()
+  character(kind=1,len=:),  pointer :: d     => NULL()
+  character(kind=1,len=10), pointer :: c1(:) => NULL()
+  character(kind=1,len=:),  pointer :: d1(:) => NULL()
+  character(kind=4,len=10), pointer :: c4(:) => NULL()
+  character(kind=4,len=:),  pointer :: d4(:) => NULL()
+
+  ! scalar character variables:
+  ! kind=1, assumed length
+  call rank0_al (null(c))
+  call rank0_al (c)
+  call arank_al (null(c))
+  call arank_al (c)
+  call rank0_alb(null(c))
+  call rank0_alb(c)
+
+  ! kind=1, fixed length
+  call rank0_fl (null(c))
+  call rank0_fl (null())
+  call rank0_fl (c)
+  call arank_fl (null(c))
+  call arank_fl (c)
+  call rank0_flb(null(c))
+  call rank0_flb(c)
+
+  ! kind=1, deferred length
+  call rank0_dl (null(d))
+  call rank0_dl (null())
+  call rank0_dl (d)
+  call arank_dl (null(d))   ! <- this crashes nagfor 7.2
+  call arank_dl (d)
+  call rank0_dlb(null(d))
+  call rank0_dlb(null())
+
+  ! rank-1 character variables:
+  ! kind=1, assumed length
+  call rank1_al (null(c1))
+  call rank1_al (c1)
+  call arank_al (null(c1))
+  call arank_al (c1)
+  call rank1_alb(null(c1))
+  call rank1_alb(c1)
+
+  ! kind=1, fixed length
+  call rank1_fl (null(c1))
+  call rank1_fl (null())
+  call rank1_fl (c1)
+  call arank_fl (null(c1))
+  call arank_fl (c1)
+  call rank1_flb(null(c1))
+  call rank1_flb(c1)
+
+  ! kind=1, deferred length
+  call rank1_dl (null(d1))
+  call rank1_dl (null())
+  call rank1_dl (d1)
+  call arank_dl (null(d1))
+  call arank_dl (d1)
+  call rank1_dlb(null(d1))
+  call rank1_dlb(null())
+
+  ! kind=4, assumed length
+  call rank1_al_4 (null(c4))
+  call rank1_al_4 (c4)
+  call arank_al_4 (null(c4))
+  call arank_al_4 (c4)
+  call rank1_al_4b(null(c4))
+  call rank1_al_4b(c4)
+
+  ! kind=4, fixed length
+  call rank1_fl_4 (null(c4))
+  call rank1_fl_4 (null())
+  call rank1_fl_4 (c4)
+  call arank_fl_4 (null(c4))
+  call arank_fl_4 (c4)
+  call rank1_fl_4b(null(c4))
+  call rank1_fl_4b(c4)
+
+  ! kind=4, deferred length
+  call rank1_dl_4 (null(d4))
+  call rank1_dl_4 (null())
+  call rank1_dl_4 (d4)
+  call arank_dl_4 (null(d4))
+  call arank_dl_4 (d4)
+  call rank1_dl_4b(null(d4))
+  call rank1_dl_4b(null())
+
+contains
+
+  ! kind=4, rank=1
+  subroutine rank1_al_4 (x)
+    character(kind=4,len=*),  pointer, intent(in) :: x(:)
+    if (associated (x)) stop 41
+  end
+  subroutine rank1_fl_4 (x)
+    character(kind=4,len=10), pointer, intent(in) :: x(:)
+    if (associated (x)) stop 42
+  end
+  subroutine rank1_dl_4 (x)
+    character(kind=4,len=:),  pointer, intent(in) :: x(:)
+    if (associated (x)) stop 43
+  end
+
+  subroutine rank1_al_4b (y)
+    character(kind=4,len=*),  pointer, intent(in) :: y(:)
+    call rank1_al_4 (y)
+    if (associated (y)) stop 44
+  end
+  subroutine rank1_fl_4b (y)
+    character(kind=4,len=10), pointer, intent(in) :: y(:)
+    call rank1_fl_4 (y)
+    if (associated (y)) stop 45
+  end
+  subroutine rank1_dl_4b (y)
+    character(kind=4,len=:),  pointer, intent(in) :: y(:)
+    call rank1_dl_4 (y)
+    if (associated (y)) stop 46
+  end
+
+  ! kind=4, assumed-rank versions
+  subroutine arank_al_4 (x)
+    character(kind=4,len=*),  pointer, intent(in) :: x(..)
+    if (associated (x)) stop 47
+    ! this testcase assumes that we call this subroutine only with rank=1
+    if (rank (x) /= 1)  stop 57
+  end
+  subroutine arank_fl_4 (x)
+    character(kind=4,len=10), pointer, intent(in) :: x(..)
+    if (associated (x)) stop 48
+    ! this testcase assumes that we call this subroutine only with rank=1
+    if (rank (x) /= 1)  stop 58
+  end
+  subroutine arank_dl_4 (x)
+    character(kind=4,len=:), pointer, intent(in) :: x(..)
+    if (associated (x)) stop 49
+    ! this testcase assumes that we call this subroutine only with rank=1
+    if (rank (x) /= 1)  stop 59
+  end
+
+  ! kind=1, rank=1
+  subroutine rank1_al (x)
+    character(kind=1,len=*),  pointer, intent(in) :: x(:)
+    if (associated (x)) stop 11
+  end
+  subroutine rank1_fl (x)
+    character(kind=1,len=10), pointer, intent(in) :: x(:)
+    if (associated (x)) stop 12
+  end
+  subroutine rank1_dl (x)
+    character(kind=1,len=:),  pointer, intent(in) :: x(:)
+    if (associated (x)) stop 13
+  end
+
+  subroutine rank1_alb (y)
+    character(kind=1,len=*),  pointer, intent(in) :: y(:)
+    call rank1_al (y)
+    if (associated (y)) stop 14
+  end
+  subroutine rank1_flb (y)
+    character(kind=1,len=10), pointer, intent(in) :: y(:)
+    call rank1_fl (y)
+    if (associated (y)) stop 15
+  end
+  subroutine rank1_dlb (y)
+    character(kind=1,len=:),  pointer, intent(in) :: y(:)
+    call rank1_dl (y)
+    if (associated (y)) stop 16
+  end
+
+  ! kind=1, assumed-rank versions
+  subroutine arank_al (x)
+    character(kind=1,len=*),  pointer, intent(in) :: x(..)
+    if (associated (x)) stop 17
+  end
+  subroutine arank_fl (x)
+    character(kind=1,len=10), pointer, intent(in) :: x(..)
+    if (associated (x)) stop 18
+  end
+  subroutine arank_dl (x)
+    character(kind=1,len=:), pointer, intent(in) :: x(..)
+    if (associated (x)) stop 19
+  end
+
+  ! kind=1, scalar
+  subroutine rank0_al (x)
+    character(kind=1,len=*),  pointer, intent(in) :: x
+    if (associated (x)) stop  1
+  end
+  subroutine rank0_fl (x)
+    character(kind=1,len=10), pointer, intent(in) :: x
+    if (associated (x)) stop  2
+  end
+  subroutine rank0_dl (x)
+    character(kind=1,len=:),  pointer, intent(in) :: x
+    if (associated (x)) stop  3
+  end
+
+  subroutine rank0_alb (y)
+    character(kind=1,len=*),  pointer, intent(in) :: y
+    call rank0_al (y)
+    if (associated (y)) stop  4
+  end
+  subroutine rank0_flb (y)
+    character(kind=1,len=10), pointer, intent(in) :: y
+    call rank0_fl (y)
+    if (associated (y)) stop  5
+  end
+  subroutine rank0_dlb (y)
+    character(kind=1,len=:),  pointer, intent(in) :: y
+    call rank0_dl (y)
+    if (associated (y)) stop  6
+  end
+
+end

commit 3adceba04eddf8c6e21fda3f7d0f8015e17bf5d8
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Nov 22 18:38:51 2024 +0000

    [PATCH] PR modula2/115536 Expression is evaluated incorrectly when encountering relops and indirection
    
    This fix ensures that we only call BuildRelOpFromBoolean if we are
    inside a constant expression (where no indirection can be used).
    The fix creates a temporary variable when a boolean is created from
    a relop in other cases.
    The previous pattern implementation would not work if the operands required
    dereferencing during non const expressions.  Comparison of relop results
    in a constant expression are resolved by constant propagation, basic
    block analysis and dead code removal.  After the quadruples have been
    optimized only one assignment to the boolean variable will remain for
    const expressions.  All quadruple pattern checking for boolean
    expressions is removed by the patch.  Thus the implementation becomes
    more generic.
    
    gcc/m2/ChangeLog:
    
            PR modula2/115536
            * gm2-compiler/M2BasicBlock.def (GetBasicBlockScope): New procedure.
            (GetBasicBlockStart): Ditto.
            (GetBasicBlockEnd): Ditto.
            (IsBasicBlockFirst): New procedure function.
            * gm2-compiler/M2BasicBlock.mod (ConvertQuads2BasicBlock): Allow
            conditional boolean quads to be removed.
            (GetBasicBlockScope): Implement new procedure.
            (GetBasicBlockStart): Ditto.
            (GetBasicBlockEnd): Ditto.
            (IsBasicBlockFirst): Implement new procedure function.
            * gm2-compiler/M2GCCDeclare.def (FoldConstants): New parameter
            declaration.
            * gm2-compiler/M2GCCDeclare.mod (FoldConstants): New parameter
            declaration.
            (DeclareTypesConstantsProceduresInRange): Recreate basic blocks
            after resolving constant expressions.
            (CodeBecomes): Guard IsVariableSSA with IsVar.
            * gm2-compiler/M2GenGCC.def (ResolveConstantExpressions): New
            parameter declaration.
            * gm2-compiler/M2GenGCC.mod (FoldIfLess): Remove relop pattern
            detection.
            (FoldIfGre): Ditto.
            (FoldIfLessEqu): Ditto.
            (FoldIfGreEqu): Ditto.
            (FoldIfIn): Ditto.
            (FoldIfNotIn): Ditto.
            (FoldIfEqu): Ditto.
            (FoldIfNotEqu): Ditto.
            (FoldBecomes): Add BasicBlock parameter and allow conditional
            boolean becomes to be folded in the first basic block.
            (ResolveConstantExpressions): Reimplement.
            * gm2-compiler/M2Quads.def (IsConstQuad): New procedure function.
            (IsConditionalBooleanQuad): Ditto.
            * gm2-compiler/M2Quads.mod (IsConstQuad): Implement new procedure function.
            (IsConditionalBooleanQuad): Ditto.
            (MoveWithMode): Use GenQuadOTypetok.
            (IsInitialisingConst): Rewrite using OpUsesOp1.
            (OpUsesOp1): New procedure function.
            (doBuildAssignment): Mark des as a VarConditional.
            (ConvertBooleanToVariable): Call PutVarConditional.
            (DumpQuadSummary): New procedure.
            (BuildRelOpFromBoolean): Updated debugging and improved comments.
            (BuildRelOp): Only call BuildRelOpFromBoolean if we are in a const
            expression and both operands are boolean relops.
            (GenQuadOTypeUniquetok): New procedure.
            (BackPatch): Correct comment.
            * gm2-compiler/SymbolTable.def (PutVarConditional): New procedure.
            (IsVarConditional): New procedure function.
            * gm2-compiler/SymbolTable.mod (PutVarConditional): Implement new
            procedure.
            (IsVarConditional): Implement new procedure function.
            (SymConstVar): New field IsConditional.
            (SymVar): New field IsConditional.
            (MakeVar): Initialize IsConditional field.
            (MakeConstVar): Initialize IsConditional field.
            * gm2-compiler/M2Swig.mod (DoBasicBlock): Change parameters to
            use BasicBlock.
            * gm2-compiler/M2Code.mod (SecondDeclareAndOptimize): Use iterator
            to FoldConstants over basic block list.
            * gm2-compiler/M2SymInit.mod (AppendEntry): Replace parameters
            with BasicBlock.
            * gm2-compiler/P3Build.bnf (Relation): Call RecordOp for #, <> and =.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/115536
            * gm2/iso/const/pass/constbool4.mod: New test.
            * gm2/iso/const/pass/constbool5.mod: New test.
            * gm2/iso/run/pass/condtest2.mod: New test.
            * gm2/iso/run/pass/condtest3.mod: New test.
            * gm2/iso/run/pass/condtest4.mod: New test.
            * gm2/iso/run/pass/condtest5.mod: New test.
            * gm2/iso/run/pass/constbool4.mod: New test.
    
    (cherry picked from commit 9f168b412f44781013401492acfedf22afe7741b)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2BasicBlock.def b/gcc/m2/gm2-compiler/M2BasicBlock.def
index 7387ae69c4d..54b2ec48293 100644
--- a/gcc/m2/gm2-compiler/M2BasicBlock.def
+++ b/gcc/m2/gm2-compiler/M2BasicBlock.def
@@ -32,15 +32,11 @@ DEFINITION MODULE M2BasicBlock ;
 *)
 
 FROM M2Scope IMPORT ScopeBlock ;
-EXPORT QUALIFIED BasicBlock, BasicBlockProc,
-                 InitBasicBlocks, InitBasicBlocksFromRange,
-		 KillBasicBlocks, FreeBasicBlocks,
-                 ForeachBasicBlockDo ;
 
 
 TYPE
    BasicBlock ;
-   BasicBlockProc = PROCEDURE (CARDINAL, CARDINAL) ;
+   BasicBlockProc = PROCEDURE (BasicBlock) ;
 
 
 (*
@@ -85,4 +81,32 @@ PROCEDURE FreeBasicBlocks (bb: BasicBlock) ;
 PROCEDURE ForeachBasicBlockDo (bb: BasicBlock; p: BasicBlockProc) ;
 
 
+(*
+   GetBasicBlockScope - return the scope associated with the basic block.
+*)
+
+PROCEDURE GetBasicBlockScope (bb: BasicBlock) : CARDINAL ;
+
+
+(*
+   GetBasicBlockStart - return the quad associated with the start of the basic block.
+*)
+
+PROCEDURE GetBasicBlockStart (bb: BasicBlock) : CARDINAL ;
+
+
+(*
+   GetBasicBlockEnd - return the quad associated with the end of the basic block.
+*)
+
+PROCEDURE GetBasicBlockEnd (bb: BasicBlock) : CARDINAL ;
+
+
+(*
+   IsBasicBlockFirst - return TRUE if this basic block is the first in the sequence.
+*)
+
+PROCEDURE IsBasicBlockFirst (bb: BasicBlock) : BOOLEAN ;
+
+
 END M2BasicBlock.
diff --git a/gcc/m2/gm2-compiler/M2BasicBlock.mod b/gcc/m2/gm2-compiler/M2BasicBlock.mod
index f4b9cb021c8..96dc649965a 100644
--- a/gcc/m2/gm2-compiler/M2BasicBlock.mod
+++ b/gcc/m2/gm2-compiler/M2BasicBlock.mod
@@ -32,7 +32,7 @@ FROM M2Quads IMPORT IsReferenced, IsConditional, IsUnConditional, IsCall,
                     IsReturn, IsNewLocalVar, IsKillLocalVar,
                     IsCatchBegin, IsCatchEnd,
                     IsInitStart, IsInitEnd, IsFinallyStart, IsFinallyEnd,
-                    IsInitialisingConst,
+                    IsInitialisingConst, IsConditionalBooleanQuad,
                     IsPseudoQuad, IsDefOrModFile,
                     GetNextQuad, GetQuad, QuadOperator,
                     SubQuad, DisplayQuadRange ;
@@ -45,10 +45,11 @@ CONST
 
 TYPE
    BasicBlock = POINTER TO RECORD
-                   StartQuad  : CARDINAL ;  (* First Quad in Basic Block *)
-                   EndQuad    : CARDINAL ;  (* End Quad in Basic Block   *)
+                   Scope      : CARDINAL ;  (* Scope associated with the block.  *)
+                   StartQuad  : CARDINAL ;  (* First Quad in Basic Block.  *)
+                   EndQuad    : CARDINAL ;  (* End Quad in Basic Block.  *)
+                   First      : BOOLEAN ;   (* The first block?  *)
                    Right      : BasicBlock ;
-                                            (* Last Basic Block in list  *)
                    Left       : BasicBlock ;
                 END ;
 
@@ -57,6 +58,10 @@ VAR
    HeadOfBasicBlock: BasicBlock ;
 
 
+PROCEDURE stop ;
+END stop ;
+
+
 (*
    InitBasicBlocks - converts a list of quadruples as defined by
                      scope blocks into a set of basic blocks.
@@ -128,19 +133,21 @@ END FreeBasicBlocks ;
    New - returns a basic block.
 *)
 
-PROCEDURE New () : BasicBlock ;
+PROCEDURE New (Scope: CARDINAL; First: BOOLEAN) : BasicBlock ;
 VAR
    b: BasicBlock ;
 BEGIN
    IF FreeList=NIL
    THEN
-      NEW(b)
+      NEW (b)
    ELSE
       b := FreeList ;
       FreeList := FreeList^.Right
    END ;
-   Assert(b#NIL) ;
-   RETURN( b )
+   Assert (b#NIL) ;
+   b^.Scope := Scope ;
+   b^.First := First ;
+   RETURN b
 END New ;
 
 
@@ -153,6 +160,7 @@ END New ;
 
 PROCEDURE ConvertQuads2BasicBlock (ScopeSym: CARDINAL; Start, End: CARDINAL) ;
 VAR
+   First,
    LastQuadDefMod,
    LastQuadConditional,
    LastQuadCall,
@@ -163,13 +171,14 @@ VAR
 BEGIN
    IF Debugging
    THEN
+      WriteString ("Enter ConvertQuads2BasicBlock") ; WriteLn ;
       DisplayQuadRange (ScopeSym, Start, End)
    END ;
    (*
       Algorithm to perform Basic Block:
 
       For every quadruple establish a set of leaders.
-      A Leader is defined as a quadruple which is
+      A leader is defined as a quadruple which is
       either:
 
       (i)   The first quadruple.
@@ -179,7 +188,7 @@ BEGIN
       For each leader construct a basic block.
       A Basic Block starts with a leader quadruple and ends with either:
 
-      (i)  Another Leader
+      (i)  Another leader
       (ii) An unconditional Jump.
 
       Any quadruples that do not fall into a Basic Block can be thrown away
@@ -188,20 +197,26 @@ BEGIN
    LastBB := NIL ;
    CurrentBB := NIL ;
    Quad := Start ;
-   LastQuadConditional := TRUE ;  (* Force Rule (i) *)
+   LastQuadConditional := TRUE ;  (* Force Rule (i).  *)
    LastQuadCall := FALSE ;
    LastQuadReturn := FALSE ;
    LastQuadDefMod := FALSE ;
-   (* Scan all quadruples *)
+   First := TRUE ;
+   (* Scan all quadruples.  *)
    WHILE (Quad<=End) AND (Quad#0) DO
+      IF Quad = 200
+      THEN
+         stop
+      END ;
       IF LastQuadConditional OR LastQuadCall OR LastQuadReturn OR
          LastQuadDefMod OR IsReferenced(Quad)
       THEN
          (* Rule (ii) *)
-         CurrentBB := New() ;                      (* Get a new Basic Block *)
-                                  (* At least one quad in this Basic Block  *)
+         CurrentBB := New (ScopeSym, First) ;  (* Get a new Basic Block.  *)
+                                 (* At least one quad in this Basic Block.  *)
          StartBB(CurrentBB, Quad) ;
-         EndBB(CurrentBB, Quad)
+         EndBB(CurrentBB, Quad) ;
+         First := FALSE
       ELSIF CurrentBB#NIL
       THEN
          (* We have a Basic Block - therefore add quad to this Block  *)
@@ -216,14 +231,20 @@ BEGIN
             IsInitStart(Quad) OR IsInitEnd(Quad) OR
             IsFinallyStart(Quad) OR IsFinallyEnd(Quad)
       THEN
-         (* we must leave these quads alone *)
+         (* We must leave these quads alone.  *)
          EndBB(LastBB, Quad)
+      ELSIF IsConditionalBooleanQuad (Quad)
+      THEN
+         (* We can remove unreachable const quads.  *)
+         SubQuad (Quad)
+(*
       ELSIF IsInitialisingConst(Quad)
       THEN
-         (* we must leave these quads alone *)
+         (* But we leave remaining constant quads alone.  *)
          EndBB(LastBB, Quad)
+*)
       ELSE
-         (* remove this Quad since it will never be reached *)
+         (* Remove this Quad since it will never be reached.  *)
          SubQuad(Quad)
       END ;
       LastQuadConditional := IsConditional(Quad) ;
@@ -236,12 +257,17 @@ BEGIN
          CurrentBB := NIL
       END ;
       Quad := GetNextQuad(Quad)
+   END ;
+   IF Debugging
+   THEN
+      WriteString ("Exit ConvertQuads2BasicBlock") ; WriteLn ;
+      DisplayQuadRange (ScopeSym, Start, End)
    END
 END ConvertQuads2BasicBlock ;
 
 
 (*
-   ForeachBasicBlockDo - for each basic block call procedure, p.
+   ForeachBasicBlockDo - for each basic block call procedure  p.
 *)
 
 PROCEDURE ForeachBasicBlockDo (bb: BasicBlock; p: BasicBlockProc) ;
@@ -253,7 +279,7 @@ BEGIN
       b := bb ;
       REPEAT
          WITH b^ DO
-            p (StartQuad, EndQuad)
+            p (b)
          END ;
          b := b^.Right
       UNTIL b=bb
@@ -307,29 +333,6 @@ BEGIN
 END Add ;
 
 
-(*
-   Sub deletes an element from the specified queue.
-*)
-
-(*
-PROCEDURE Sub (VAR Head: BasicBlock;
-               b: BasicBlock) ;
-BEGIN
-   IF (b^.Right=Head) AND (b=Head)
-   THEN
-      Head := NIL
-   ELSE
-      IF Head=b
-      THEN
-         Head := Head^.Right
-      END ;
-      b^.Left^.Right := b^.Right ;
-      b^.Right^.Left := b^.Left
-   END
-END Sub ;
-*)
-
-
 (*
    DisplayBasicBlocks - displays the basic block data structure.
 *)
@@ -359,6 +362,46 @@ BEGIN
 END DisplayBlock ;
 
 
+(*
+   GetBasicBlockScope - return the scope associated with the basic block.
+*)
+
+PROCEDURE GetBasicBlockScope (bb: BasicBlock) : CARDINAL ;
+BEGIN
+   RETURN bb^.Scope
+END GetBasicBlockScope ;
+
+
+(*
+   GetBasicBlockStart - return the quad associated with the start of the basic block.
+*)
+
+PROCEDURE GetBasicBlockStart (bb: BasicBlock) : CARDINAL ;
+BEGIN
+   RETURN bb^.StartQuad
+END GetBasicBlockStart ;
+
+
+(*
+   GetBasicBlockEnd - return the quad associated with the end of the basic block.
+*)
+
+PROCEDURE GetBasicBlockEnd (bb: BasicBlock) : CARDINAL ;
+BEGIN
+   RETURN bb^.EndQuad
+END GetBasicBlockEnd ;
+
+
+(*
+   IsBasicBlockFirst - return TRUE if this basic block is the first in the sequence.
+*)
+
+PROCEDURE IsBasicBlockFirst (bb: BasicBlock) : BOOLEAN ;
+BEGIN
+   RETURN bb^.First
+END IsBasicBlockFirst ;
+
+
 BEGIN
    FreeList := NIL
 END M2BasicBlock.
diff --git a/gcc/m2/gm2-compiler/M2Code.mod b/gcc/m2/gm2-compiler/M2Code.mod
index f8a773dc103..ea86232c714 100644
--- a/gcc/m2/gm2-compiler/M2Code.mod
+++ b/gcc/m2/gm2-compiler/M2Code.mod
@@ -320,9 +320,14 @@ END InitialDeclareAndOptimize ;
 
 PROCEDURE SecondDeclareAndOptimize (scope: CARDINAL;
                                     start, end: CARDINAL) ;
+VAR
+   bb: BasicBlock ;
 BEGIN
    REPEAT
-      FoldConstants(start, end) ;
+      bb := InitBasicBlocksFromRange (scope, start, end) ;
+      ForeachBasicBlockDo (bb, FoldConstants) ;
+      FreeBasicBlocks (bb) ;
+
       DeltaConst := Count - CountQuads () ;
       Count := CountQuads () ;
 
diff --git a/gcc/m2/gm2-compiler/M2GCCDeclare.def b/gcc/m2/gm2-compiler/M2GCCDeclare.def
index 28bbb1a41b5..13570dabfbb 100644
--- a/gcc/m2/gm2-compiler/M2GCCDeclare.def
+++ b/gcc/m2/gm2-compiler/M2GCCDeclare.def
@@ -32,6 +32,7 @@ DEFINITION MODULE M2GCCDeclare ;
 
 FROM SYSTEM IMPORT WORD ;
 FROM m2tree IMPORT Tree ;
+FROM M2BasicBlock IMPORT BasicBlock ;
 
 TYPE
    WalkAction = PROCEDURE (WORD) ;
@@ -42,7 +43,7 @@ TYPE
    FoldConstants - a wrapper for ResolveConstantExpressions.
 *)
 
-PROCEDURE FoldConstants (start, end: CARDINAL) ;
+PROCEDURE FoldConstants (bb: BasicBlock) ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/M2GCCDeclare.mod b/gcc/m2/gm2-compiler/M2GCCDeclare.mod
index 9607085b967..a2effe97b66 100644
--- a/gcc/m2/gm2-compiler/M2GCCDeclare.mod
+++ b/gcc/m2/gm2-compiler/M2GCCDeclare.mod
@@ -71,6 +71,8 @@ FROM Sets IMPORT Set, InitSet, KillSet,
                  NoOfElementsInSet, IsElementInSet, ForeachElementInSetDo,
                  DuplicateSet, EqualSet ;
 
+FROM M2BasicBlock IMPORT BasicBlock, InitBasicBlocks, KillBasicBlocks, ForeachBasicBlockDo ;
+
 FROM SymbolTable IMPORT NulSym,
                         ModeOfAddr,
                         GetMode,
@@ -252,6 +254,7 @@ VAR
    WatchList           : Set ;      (* Set of symbols being watched.  *)
    EnumerationIndex    : Index ;
    action              : IsAction ;
+   ConstantResolved,
    enumDeps            : BOOLEAN ;
 
 
@@ -1296,30 +1299,6 @@ BEGIN
 END DeclareTypeFromPartial ;
 
 
-(*
-   DeclarePointerTypeFully - if, sym, is a pointer type then
-                             declare it.
-*)
-
-(*
-PROCEDURE DeclarePointerTypeFully (sym: CARDINAL) ;
-BEGIN
-   IF IsPointer(sym)
-   THEN
-      WatchIncludeList(sym, fullydeclared) ;
-      WatchRemoveList(sym, partiallydeclared) ;
-      WatchRemoveList(sym, todolist) ;
-      PreAddModGcc(sym, DeclarePointer(sym))
-   ELSE
-      (* place sym and all dependants on the todolist
-         providing they are not already on the FullyDeclared list
-      *)
-      TraverseDependants(sym)
-   END
-END DeclarePointerTypeFully ;
-*)
-
-
 (*
    CanBeDeclaredPartiallyViaPartialDependants - returns TRUE if, sym,
                                                 can be partially declared via
@@ -1476,22 +1455,6 @@ BEGIN
                             DeclareTypePartially)
       THEN
          (* continue looping *)
-(*
-      ELSIF ForeachTryDeclare (todolist,
-                               setarraynul,
-                               CanCreateSetArray,
-                               CreateSetArray)
-      THEN
-         (* Populates the finishedsetarray list with each set seen.  *)
-         (* Continue looping.  *)
-      ELSIF ForeachTryDeclare (finishedsetarray,
-                               setfully,
-                               CanCreateSet,
-                               CreateSet)
-      THEN
-         (* Populates the fullydeclared list with each set.  *)
-         (* Continue looping.  *)
-*)
       ELSIF ForeachTryDeclare (todolist,
                                arraynil,
                                CanDeclareArrayAsNil,
@@ -1902,25 +1865,15 @@ BEGIN
       IF (type#NulSym) AND (NOT CompletelyResolved(type))
       THEN
          TraverseDependants(sym) ;
-(*
-         WatchIncludeList(sym, todolist) ;
-         WatchIncludeList(type, todolist) ;
-*)
          RETURN
       END ;
       IF IsConstructor(sym) AND (NOT IsConstructorConstant(sym))
       THEN
          TraverseDependants(sym) ;
-(*
-         WatchIncludeList(sym, todolist) ;
-*)
          RETURN
       END ;
       IF (IsConstructor(sym) OR IsConstSet(sym)) AND (type=NulSym)
       THEN
-(*
-         WatchIncludeList(sym, todolist) ;
-*)
          TraverseDependants(sym) ;
          RETURN
       END ;
@@ -1936,10 +1889,7 @@ BEGIN
          THEN
             RETURN
          END ;
-         TraverseDependants(sym) ;
-(*
-         WatchIncludeList(sym, todolist)
-*)
+         TraverseDependants(sym)
       ELSE
          TryDeclareConst(tokenno, sym)
       END
@@ -2011,9 +1961,6 @@ BEGIN
          TryEvaluateValue(sym) ;
          IF NOT IsConstructorDependants(sym, IsFullyDeclared)
          THEN
-(*
-            WatchIncludeList(sym, todolist) ;
-*)
             TraverseDependants(sym) ;
             RETURN
          END ;
@@ -2161,38 +2108,6 @@ BEGIN
 END WalkAssociatedUnbounded ;
 
 
-(*
-   WalkProcedureParameterDependants -
-*)
-
-(*
-PROCEDURE WalkProcedureParameterDependants (sym: CARDINAL; p: WalkAction) ;
-VAR
-   son,
-   type,
-   n, i: CARDINAL ;
-BEGIN
-   IF IsProcedure(sym)
-   THEN
-      n := NoOfParam(sym) ;
-      i := n ;
-      WHILE i>0 DO
-         IF IsUnboundedParam(sym, i)
-         THEN
-            son := GetNthParam(sym, i)
-         ELSE
-            son := GetNth(sym, i) ;
-         END ;
-         type := GetSType(son) ;
-         p(type) ;
-         WalkDependants(type, p) ;
-         DEC(i)
-      END
-   END
-END WalkProcedureParameterDependants ;
-*)
-
-
 (*
    WalkDependants - walks through all dependants of, Sym,
                     calling, p, for each dependant.
@@ -2723,10 +2638,11 @@ END DeclareProcedure ;
    FoldConstants - a wrapper for ResolveConstantExpressions.
 *)
 
-PROCEDURE FoldConstants (start, end: CARDINAL) ;
+PROCEDURE FoldConstants (bb: BasicBlock) ;
 BEGIN
-   IF ResolveConstantExpressions(DeclareConstFully, start, end)
+   IF ResolveConstantExpressions (DeclareConstFully, bb)
    THEN
+      ConstantResolved := TRUE
    END
 END FoldConstants ;
 
@@ -2778,6 +2694,8 @@ CONST
 VAR
    copy: Group ;
    loop: CARDINAL ;
+   sb  : ScopeBlock ;
+   bb  : BasicBlock ;
 BEGIN
    IF TraceQuadruples
    THEN
@@ -2785,11 +2703,18 @@ BEGIN
    END ;
    loop := 0 ;
    copy := NIL ;
+   sb := InitScopeBlock (scope) ;
    REPEAT
+      (* Throw away any unreachable quad.  *)
+      bb := InitBasicBlocks (sb) ;
+      KillBasicBlocks (bb) ;
+      (* Now iterate over remaining quads in scope attempting to resolve constants.  *)
       copy := DupGroup (copy) ;
-      WHILE ResolveConstantExpressions (DeclareConstFully, start, end) DO
-      END ;
-      (* we need to evaluate some constant expressions to resolve these types *)
+      bb := InitBasicBlocks (sb) ;
+      ConstantResolved := FALSE ;
+      ForeachBasicBlockDo (bb, FoldConstants) ;
+      KillBasicBlocks (bb) ;
+      (* And now types.  *)
       IF DeclaredOutstandingTypes (FALSE)
       THEN
       END ;
@@ -2803,9 +2728,11 @@ BEGIN
          loop := 0
       END ;
       INC (loop)
-   UNTIL (NOT ResolveConstantExpressions (DeclareConstFully, start, end)) AND
-         EqualGroup (copy, GlobalGroup) ;
-   KillGroup (copy)
+   UNTIL (NOT ConstantResolved) AND EqualGroup (copy, GlobalGroup) ;
+   KillGroup (copy) ;
+   bb := InitBasicBlocks (sb) ;
+   KillBasicBlocks (bb) ;
+   KillScopeBlock (sb)
 END DeclareTypesConstantsProceduresInRange ;
 
 
@@ -5990,33 +5917,6 @@ BEGIN
 END WalkRecordFieldDependants ;
 
 
-(*
-   WalkVarient -
-*)
-
-(*
-PROCEDURE WalkVarient (sym: CARDINAL; p: WalkAction) ;
-VAR
-   v    : CARDINAL ;
-   var,
-   align: CARDINAL ;
-BEGIN
-   p(sym) ;
-   v := GetVarient(sym) ;
-   IF v#NulSym
-   THEN
-      p(v)
-   END ;
-   var := GetRecordOfVarient(sym) ;
-   align := GetDefaultRecordFieldAlignment(var) ;
-   IF align#NulSym
-   THEN
-      p(align)
-   END
-END WalkVarient ;
-*)
-
-
 (*
    WalkRecordDependants2 - walks the fields of record, sym, calling
                            p on every dependant.
diff --git a/gcc/m2/gm2-compiler/M2GenGCC.def b/gcc/m2/gm2-compiler/M2GenGCC.def
index 3e4705ec235..fc7cdf281dd 100644
--- a/gcc/m2/gm2-compiler/M2GenGCC.def
+++ b/gcc/m2/gm2-compiler/M2GenGCC.def
@@ -34,10 +34,7 @@ DEFINITION MODULE M2GenGCC ;
 FROM M2GCCDeclare IMPORT WalkAction ;
 FROM m2tree IMPORT Tree ;
 FROM m2linemap IMPORT location_t ;
-EXPORT QUALIFIED ConvertQuadsToTree, ResolveConstantExpressions,
-                 GetHighFromUnbounded, StringToChar,
-                 LValueToGenericPtr, ZConstToTypedConst,
-                 PrepareCopyString ;
+FROM M2BasicBlock IMPORT BasicBlock ;
 
 
 (*
@@ -55,7 +52,7 @@ PROCEDURE ConvertQuadsToTree (Start, End: CARDINAL) ;
                                 p(sym) is invoked.
 *)
 
-PROCEDURE ResolveConstantExpressions (p: WalkAction; start, end: CARDINAL) : BOOLEAN ;
+PROCEDURE ResolveConstantExpressions (p: WalkAction; bb: BasicBlock) : BOOLEAN ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/M2GenGCC.mod b/gcc/m2/gm2-compiler/M2GenGCC.mod
index 26ed399b24c..c59695a3779 100644
--- a/gcc/m2/gm2-compiler/M2GenGCC.mod
+++ b/gcc/m2/gm2-compiler/M2GenGCC.mod
@@ -259,13 +259,16 @@ FROM M2Quads IMPORT QuadOperator, GetQuad, IsReferenced, GetNextQuad,
                     QuadToTokenNo, DisplayQuad, GetQuadtok,
                     GetM2OperatorDesc, GetQuadOp,
                     IsQuadConstExpr, IsBecomes, IsGoto, IsConditional,
-                    IsDummy,
+                    IsDummy, IsConditionalBooleanQuad,
                     GetQuadOp1, GetQuadOp3, GetQuadDest, SetQuadConstExpr ;
 
 FROM M2Check IMPORT ParameterTypeCompatible, AssignmentTypeCompatible,  ExpressionTypeCompatible ;
 FROM M2SSA IMPORT EnableSSA ;
 FROM M2Optimize IMPORT FoldBranches ;
 
+FROM M2BasicBlock IMPORT BasicBlock, IsBasicBlockFirst,
+                         GetBasicBlockStart, GetBasicBlockEnd ;
+
 
 CONST
    Debugging         = FALSE ;
@@ -568,7 +571,7 @@ END CodeStatement ;
                                 p(sym) is invoked.
 *)
 
-PROCEDURE ResolveConstantExpressions (p: WalkAction; start, end: CARDINAL) : BOOLEAN ;
+PROCEDURE ResolveConstantExpressions (p: WalkAction; bb: BasicBlock) : BOOLEAN ;
 VAR
    tokenno: CARDINAL ;
    quad   : CARDINAL ;
@@ -580,8 +583,12 @@ VAR
    op2pos,
    op3pos : CARDINAL ;
    Changed: BOOLEAN ;
+   start,
+   end    : CARDINAL ;
 BEGIN
    InitBuiltinSyms (BuiltinTokenNo) ;
+   start := GetBasicBlockStart (bb) ;
+   end := GetBasicBlockEnd (bb) ;
    Changed  := FALSE ;
    REPEAT
       NoChange := TRUE ;
@@ -607,7 +614,7 @@ BEGIN
          LogicalOrOp        : FoldSetOr (tokenno, p, quad, op1, op2, op3) |
          LogicalAndOp       : FoldSetAnd (tokenno, p, quad, op1, op2, op3) |
          LogicalXorOp       : FoldSymmetricDifference (tokenno, p, quad, op1, op2, op3) |
-         BecomesOp          : FoldBecomes (p, quad) |
+         BecomesOp          : FoldBecomes (p, bb, quad) |
          ArithAddOp         : FoldArithAdd (op1pos, p, quad, op1, op2, op3) |
          AddOp              : FoldAdd (op1pos, p, quad, op1, op2, op3) |
          SubOp              : FoldSub (op1pos, p, quad, op1, op2, op3) |
@@ -650,7 +657,7 @@ BEGIN
          ELSE
             (* ignore quadruple as it is not associated with a constant expression *)
          END ;
-         quad := GetNextQuad(quad)
+         quad := GetNextQuad (quad)
       END ;
       IF NOT NoChange
       THEN
@@ -2750,19 +2757,22 @@ END CheckStop ;
    Sym1<I> := Sym3<I>           := produces a constant
 *)
 
-PROCEDURE FoldBecomes (p: WalkAction; quad: CARDINAL) ;
+PROCEDURE FoldBecomes (p: WalkAction; bb: BasicBlock; quad: CARDINAL) ;
 VAR
    op            : QuadOperator ;
    des, op2, expr: CARDINAL ;
 BEGIN
-   IF DeclaredOperandsBecomes (p, quad) AND (NOT IsQuadConstExpr (quad))
+   IF DeclaredOperandsBecomes (p, quad)
    THEN
-      IF TypeCheckBecomes (p, quad)
+      IF (NOT IsConditionalBooleanQuad (quad)) OR IsBasicBlockFirst (bb)
       THEN
-         PerformFoldBecomes (p, quad)
-      ELSE
-         GetQuad (quad, op, des, op2, expr) ;
-         RemoveQuad (p, des, quad)
+         IF TypeCheckBecomes (p, quad)
+         THEN
+            PerformFoldBecomes (p, quad)
+         ELSE
+            GetQuad (quad, op, des, op2, expr) ;
+            RemoveQuad (p, des, quad)
+         END
       END
    END
 END FoldBecomes ;
@@ -3432,7 +3442,7 @@ BEGIN
       ELSE
          IF checkBecomes (des, expr, virtpos, despos, exprpos)
          THEN
-            IF IsVariableSSA (des)
+            IF IsVar (des) AND IsVariableSSA (des)
             THEN
                Replace (des, FoldConstBecomes (virtpos, des, expr))
             ELSE
@@ -5333,18 +5343,13 @@ BEGIN
       IF IsValueSolved (left) AND IsValueSolved (right)
       THEN
          (* We can take advantage of the known values and evaluate the condition.  *)
-         IF IsBooleanRelOpPattern (quad)
+         PushValue (left) ;
+         PushValue (right) ;
+         IF Less (tokenno)
          THEN
-            FoldBooleanRelopPattern (p, quad)
+            PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
          ELSE
-            PushValue (left) ;
-            PushValue (right) ;
-            IF Less (tokenno)
-            THEN
-               PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
-            ELSE
-               SubQuad (quad)
-            END
+            SubQuad (quad)
          END ;
          NoChange := FALSE
       END
@@ -5352,63 +5357,6 @@ BEGIN
 END FoldIfLess ;
 
 
-(*
-   IsBooleanRelOpPattern - return TRUE if the pattern:
-                           q   If    left  right  q+2
-                           q+1 Goto               q+4
-                           q+2 Becomes des[i]  TRUE[i]
-                           q+3 Goto               q+5
-                           q+4 Becomes des[i]  FALSE[i]
-*)
-
-PROCEDURE IsBooleanRelOpPattern (quad: CARDINAL) : BOOLEAN ;
-BEGIN
-   IF IsQuadConstExpr (quad)
-   THEN
-      IF IsConditional (quad) AND
-         (IsGoto (quad+1) OR IsDummy (quad+1)) AND
-         IsBecomes (quad+2) AND IsGoto (quad+3) AND
-         IsBecomes (quad+4) AND
-         (GetQuadDest (quad) = quad+2) AND
-         (GetQuadDest (quad+1) = quad+4) AND
-         (GetQuadDest (quad+3) = quad+5) AND
-         (GetQuadOp1 (quad+2) = GetQuadOp1 (quad+4))
-      THEN
-         RETURN TRUE
-      END
-   END ;
-   RETURN FALSE
-END IsBooleanRelOpPattern ;
-
-
-(*
-   FoldBooleanRelopPattern - fold the boolean relop pattern of quadruples
-                             above to:
-                             q+2 Becomes des[i]  TRUE[i]
-                             or
-                             q+4 Becomes des[i]  FALSE[i]
-                             depending upon the condition in quad.
-*)
-
-PROCEDURE FoldBooleanRelopPattern (p: WalkAction; quad: CARDINAL) ;
-VAR
-   des: CARDINAL ;
-BEGIN
-   des := GetQuadOp1 (quad+2) ;
-   IF QuadCondition (quad)
-   THEN
-      SetQuadConstExpr (quad+2, FALSE) ;
-      SubQuad (quad+4)  (* Remove des := FALSE.  *)
-   ELSE
-      SetQuadConstExpr (quad+4, FALSE) ;
-      SubQuad (quad+2)  (* Remove des := TRUE.  *)
-   END ;
-   RemoveQuad (p, des, quad) ;
-   SubQuad (quad+1) ;
-   SubQuad (quad+3)
-END FoldBooleanRelopPattern ;
-
-
 (*
    QuadCondition - Pre-condition:  left, right operands are constants
                    which have been resolved.
@@ -5460,7 +5408,8 @@ END QuadCondition ;
 *)
 
 PROCEDURE FoldIfGre (tokenno: CARDINAL; p: WalkAction;
-                     quad: CARDINAL; left, right, destQuad: CARDINAL) ;
+                     quad: CARDINAL;
+                     left, right, destQuad: CARDINAL) ;
 BEGIN
    (* Firstly ensure that constant literals are declared.  *)
    TryDeclareConstant(tokenno, left) ;
@@ -5470,18 +5419,13 @@ BEGIN
       IF IsValueSolved (left) AND IsValueSolved (right)
       THEN
          (* We can take advantage of the known values and evaluate the condition.  *)
-         IF IsBooleanRelOpPattern (quad)
+         PushValue (left) ;
+         PushValue (right) ;
+         IF Gre (tokenno)
          THEN
-            FoldBooleanRelopPattern (p, quad)
+            PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
          ELSE
-            PushValue (left) ;
-            PushValue (right) ;
-            IF Gre (tokenno)
-            THEN
-               PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
-            ELSE
-               SubQuad (quad)
-            END
+            SubQuad (quad)
          END ;
          NoChange := FALSE
       END
@@ -5495,7 +5439,8 @@ END FoldIfGre ;
 *)
 
 PROCEDURE FoldIfLessEqu (tokenno: CARDINAL; p: WalkAction;
-                         quad: CARDINAL; left, right, destQuad: CARDINAL) ;
+                         quad: CARDINAL;
+                         left, right, destQuad: CARDINAL) ;
 BEGIN
    (* Firstly ensure that constant literals are declared.  *)
    TryDeclareConstant(tokenno, left) ;
@@ -5505,18 +5450,13 @@ BEGIN
       IF IsValueSolved (left) AND IsValueSolved (right)
       THEN
          (* We can take advantage of the known values and evaluate the condition.  *)
-         IF IsBooleanRelOpPattern (quad)
+         PushValue (left) ;
+         PushValue (right) ;
+         IF LessEqu (tokenno)
          THEN
-            FoldBooleanRelopPattern (p, quad)
+            PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
          ELSE
-            PushValue (left) ;
-            PushValue (right) ;
-            IF LessEqu (tokenno)
-            THEN
-               PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
-            ELSE
-               SubQuad (quad)
-            END
+            SubQuad (quad)
          END ;
          NoChange := FALSE
       END
@@ -5530,7 +5470,8 @@ END FoldIfLessEqu ;
 *)
 
 PROCEDURE FoldIfGreEqu (tokenno: CARDINAL; p: WalkAction;
-                        quad: CARDINAL; left, right, destQuad: CARDINAL) ;
+                        quad: CARDINAL;
+                        left, right, destQuad: CARDINAL) ;
 BEGIN
    (* Firstly ensure that constant literals are declared.  *)
    TryDeclareConstant(tokenno, left) ;
@@ -5540,18 +5481,13 @@ BEGIN
       IF IsValueSolved (left) AND IsValueSolved (right)
       THEN
          (* We can take advantage of the known values and evaluate the condition.  *)
-         IF IsBooleanRelOpPattern (quad)
+         PushValue (left) ;
+         PushValue (right) ;
+         IF GreEqu (tokenno)
          THEN
-            FoldBooleanRelopPattern (p, quad)
+            PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
          ELSE
-            PushValue (left) ;
-            PushValue (right) ;
-            IF GreEqu (tokenno)
-            THEN
-               PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
-            ELSE
-               SubQuad (quad)
-            END
+            SubQuad (quad)
          END ;
          NoChange := FALSE
       END
@@ -5565,7 +5501,8 @@ END FoldIfGreEqu ;
 *)
 
 PROCEDURE FoldIfIn (tokenno: CARDINAL; p: WalkAction;
-                    quad: CARDINAL; left, right, destQuad: CARDINAL) ;
+                    quad: CARDINAL;
+                    left, right, destQuad: CARDINAL) ;
 BEGIN
    (* Firstly ensure that constant literals are declared.  *)
    TryDeclareConstant (tokenno, left) ;
@@ -5577,17 +5514,12 @@ BEGIN
          IF CheckBinaryExpressionTypes (quad, NoWalkProcedure)
          THEN
             (* We can take advantage of the known values and evaluate the condition.  *)
-            IF IsBooleanRelOpPattern (quad)
+            PushValue (right) ;
+            IF SetIn (tokenno, left)
             THEN
-               FoldBooleanRelopPattern (p, quad)
+               PutQuad (quad, GotoOp, NulSym, NulSym, destQuad) ;
             ELSE
-               PushValue (right) ;
-               IF SetIn (tokenno, left)
-               THEN
-                  PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
-               ELSE
-                  SubQuad (quad)
-               END
+               SubQuad (quad)
             END
          ELSE
             SubQuad (quad)
@@ -5604,7 +5536,8 @@ END FoldIfIn ;
 *)
 
 PROCEDURE FoldIfNotIn (tokenno: CARDINAL; p: WalkAction;
-                       quad: CARDINAL; left, right, destQuad: CARDINAL) ;
+                       quad: CARDINAL;
+                       left, right, destQuad: CARDINAL) ;
 BEGIN
    (* Firstly ensure that constant literals are declared.  *)
    TryDeclareConstant (tokenno, left) ;
@@ -5615,18 +5548,14 @@ BEGIN
       THEN
          IF CheckBinaryExpressionTypes (quad, NoWalkProcedure)
          THEN
-            (* We can take advantage of the known values and evaluate the condition.  *)
-            IF IsBooleanRelOpPattern (quad)
+            (* We can take advantage of the known values and evaluate the
+               condition.  *)
+            PushValue (right) ;
+            IF NOT SetIn (tokenno, left)
             THEN
-               FoldBooleanRelopPattern (p, quad)
+               PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
             ELSE
-               PushValue (right) ;
-               IF NOT SetIn (tokenno, left)
-               THEN
-                  PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
-               ELSE
-                  SubQuad (quad)
-               END
+               SubQuad (quad)
             END
          ELSE
             SubQuad (quad)
@@ -5643,7 +5572,8 @@ END FoldIfNotIn ;
 *)
 
 PROCEDURE FoldIfEqu (tokenno: CARDINAL; p: WalkAction;
-                     quad: CARDINAL; left, right, destQuad: CARDINAL) ;
+                     quad: CARDINAL;
+                     left, right, destQuad: CARDINAL) ;
 BEGIN
    (* Firstly ensure that constant literals are declared.  *)
    TryDeclareConstant(tokenno, left) ;
@@ -5652,19 +5582,15 @@ BEGIN
    THEN
       IF IsValueSolved (left) AND IsValueSolved (right)
       THEN
-         IF IsBooleanRelOpPattern (quad)
+         (* We can take advantage of the known values and evaluate the
+            condition.  *)
+         PushValue (left) ;
+         PushValue (right) ;
+         IF Equ (tokenno)
          THEN
-            FoldBooleanRelopPattern (p, quad)
+            PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
          ELSE
-            (* We can take advantage of the known values and evaluate the condition.  *)
-            PushValue (left) ;
-            PushValue (right) ;
-            IF Equ (tokenno)
-            THEN
-               PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
-            ELSE
-               SubQuad (quad)
-            END
+            SubQuad (quad)
          END ;
          NoChange := FALSE
       END
@@ -5678,7 +5604,8 @@ END FoldIfEqu ;
 *)
 
 PROCEDURE FoldIfNotEqu (tokenno: CARDINAL; p: WalkAction;
-                        quad: CARDINAL; left, right, destQuad: CARDINAL) ;
+                        quad: CARDINAL;
+                        left, right, destQuad: CARDINAL) ;
 BEGIN
    (* Firstly ensure that constant literals are declared.  *)
    TryDeclareConstant(tokenno, left) ;
@@ -5687,19 +5614,15 @@ BEGIN
    THEN
       IF IsValueSolved (left) AND IsValueSolved (right)
       THEN
-         IF IsBooleanRelOpPattern (quad)
+         (* We can take advantage of the known values and evaluate the
+            condition.  *)
+         PushValue (left) ;
+         PushValue (right) ;
+         IF NotEqu (tokenno)
          THEN
-            FoldBooleanRelopPattern (p, quad)
+            PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
          ELSE
-            (* We can take advantage of the known values and evaluate the condition.  *)
-            PushValue (left) ;
-            PushValue (right) ;
-            IF NotEqu (tokenno)
-            THEN
-               PutQuad (quad, GotoOp, NulSym, NulSym, destQuad)
-            ELSE
-               SubQuad (quad)
-            END
+            SubQuad (quad)
          END ;
          NoChange := FALSE
       END
diff --git a/gcc/m2/gm2-compiler/M2Quads.def b/gcc/m2/gm2-compiler/M2Quads.def
index 304c8dd6eab..d3e2118abfd 100644
--- a/gcc/m2/gm2-compiler/M2Quads.def
+++ b/gcc/m2/gm2-compiler/M2Quads.def
@@ -123,7 +123,7 @@ EXPORT QUALIFIED StartBuildDefFile, StartBuildModFile, EndBuildFile,
                  IsOptimizeOn,
                  IsPseudoQuad,
                  IsDefOrModFile,
-                 IsInitialisingConst,
+                 IsInitialisingConst, IsConstQuad, IsConditionalBooleanQuad,
                  IsQuadConstExpr,
                  IsBecomes,
                  IsDummy,
@@ -465,6 +465,20 @@ PROCEDURE GetQuadOp3 (QuadNo: CARDINAL) : CARDINAL ;
 PROCEDURE IsInitialisingConst (QuadNo: CARDINAL) : BOOLEAN ;
 
 
+(*
+   IsConstQuad - return TRUE if the quadruple is marked as a constexpr.
+*)
+
+PROCEDURE IsConstQuad (quad: CARDINAL) : BOOLEAN ;
+
+
+(*
+   IsConditionalBooleanQuad - return TRUE if operand 1 is a boolean result.
+*)
+
+PROCEDURE IsConditionalBooleanQuad (quad: CARDINAL) : BOOLEAN ;
+
+
 (*
    IsOptimizeOn - returns true if the Optimize flag was true at QuadNo.
 *)
diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index 3f414e186b2..16c1e016a6f 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -135,6 +135,7 @@ FROM SymbolTable IMPORT ModeOfAddr, GetMode, PutMode, GetSymName, IsUnknown,
                         ForeachFieldEnumerationDo, ForeachLocalSymDo,
                         GetExported, PutImported, GetSym, GetLibName,
                         GetTypeMode,
+                        IsVarConditional, PutVarConditional,
                         IsUnused,
                         NulSym ;
 
@@ -276,7 +277,7 @@ IMPORT M2Error, FIO, SFIO, DynamicStrings, StdIO ;
 CONST
    DebugStackOn = TRUE ;
    DebugVarients = FALSE ;
-   BreakAtQuad = 140 ;
+   BreakAtQuad = 200 ;
    DebugTokPos = FALSE ;
 
 TYPE
@@ -959,6 +960,29 @@ VAR
    op1, op2, op3: CARDINAL ;
 BEGIN
    GetQuad (QuadNo, op, op1, op2, op3) ;
+   RETURN OpUsesOp1 (op) AND IsConst (op1)
+END IsInitialisingConst ;
+
+
+(*
+   IsConstQuad - return TRUE if the quadruple is marked as a constexpr.
+*)
+
+PROCEDURE IsConstQuad (quad: CARDINAL) : BOOLEAN ;
+VAR
+   f: QuadFrame ;
+BEGIN
+   f := GetQF (quad) ;
+   RETURN f^.ConstExpr
+END IsConstQuad ;
+
+
+(*
+   OpUsesOp1 - return TRUE if op allows op1.
+*)
+
+PROCEDURE OpUsesOp1 (op: QuadOperator) : BOOLEAN ;
+BEGIN
    CASE op OF
 
    StringConvertCnulOp,
@@ -997,12 +1021,27 @@ BEGIN
    XIndrOp,
    IndrXOp,
    SaveExceptionOp,
-   RestoreExceptionOp:  RETURN( IsConst(op1) )
+   RestoreExceptionOp:  RETURN TRUE
 
    ELSE
-      RETURN( FALSE )
+      RETURN FALSE
    END
-END IsInitialisingConst ;
+END OpUsesOp1 ;
+
+
+(*
+   IsConditionalBooleanQuad - return TRUE if operand 1 is a boolean result.
+*)
+
+PROCEDURE IsConditionalBooleanQuad (quad: CARDINAL) : BOOLEAN ;
+VAR
+   f: QuadFrame ;
+BEGIN
+   f := GetQF (quad) ;
+   RETURN OpUsesOp1 (f^.Operator) AND
+          (IsVar (f^.Operand1) OR IsConst (f^.Operand1)) AND
+          IsVarConditional (f^.Operand1)
+END IsConditionalBooleanQuad ;
 
 
 (*
@@ -1486,7 +1525,7 @@ BEGIN
          Operand3      := Oper3 ;
          CheckOverflow := overflow ;
          CheckType     := checktype ;
-         ConstExpr     := IsInConstExpression ()
+         ConstExpr     := FALSE ;  (* IsInConstExpression () *)
       END
    END
 END PutQuadOType ;
@@ -1810,6 +1849,10 @@ VAR
    i   : CARDINAL ;
    f, g: QuadFrame ;
 BEGIN
+   IF QuadNo = BreakAtQuad
+   THEN
+      stop
+   END ;
    f := GetQF(QuadNo) ;
    WITH f^ DO
       AlterReference(Head, QuadNo, f^.Next) ;
@@ -1955,8 +1998,8 @@ END ManipulateReference ;
 
 
 (*
-   RemoveReference - remove the reference by quadruple, q, to wherever
-                     it was pointing to.
+   RemoveReference - remove the reference by quadruple q to wherever
+                     it was pointing.
 *)
 
 PROCEDURE RemoveReference (q: CARDINAL) ;
@@ -1966,6 +2009,10 @@ BEGIN
    f := GetQF(q) ;
    IF (f^.Operand3#0) AND (f^.Operand3<NextQuad)
    THEN
+      IF f^.Operand3 = BreakAtQuad
+      THEN
+         stop
+      END ;
       g := GetQF(f^.Operand3) ;
       Assert(g^.NoOfTimesReferenced#0) ;
       DEC(g^.NoOfTimesReferenced)
@@ -3483,8 +3530,11 @@ BEGIN
                       checkOverflow)
          END
       ELSE
-         GenQuadOtok (tokno, BecomesOp, Des, NulSym, Exp, TRUE,
-                      destok, UnknownTokenNo, exptok)
+         (* This might be inside a const expression.  *)
+         GenQuadOTypetok (tokno, BecomesOp,
+                          Des, NulSym, Exp,
+                          TRUE, TRUE,
+                          destok, UnknownTokenNo, exptok)
       END
    END
 END MoveWithMode ;
@@ -3768,16 +3818,19 @@ BEGIN
    THEN
       PopBool (t, f) ;
       PopTtok (Des, destok) ;
+      PutVarConditional (Des, TRUE) ;  (* Des will contain the result of a boolean relop.  *)
       (* Conditional Boolean Assignment.  *)
       BackPatch (t, NextQuad) ;
       IF GetMode (Des) = LeftValue
       THEN
          CheckPointerThroughNil (destok, Des) ;
-         GenQuadO (destok, XIndrOp, Des, Boolean, True, checkOverflow)
+         GenQuadO (destok, XIndrOp, Des, Boolean, True, checkOverflow) ;
+         GenQuadO (destok, GotoOp, NulSym, NulSym, NextQuad+2, FALSE) ;
       ELSE
-         GenQuadO (becomesTokNo, BecomesOp, Des, NulSym, True, checkOverflow)
+         (* This might be inside a const expression.  *)
+         GenQuadO (becomesTokNo, BecomesOp, Des, NulSym, True, checkOverflow) ;
+         GenQuadO (destok, GotoOp, NulSym, NulSym, NextQuad+2, FALSE)
       END ;
-      GenQuadO (destok, GotoOp, NulSym, NulSym, NextQuad+2, checkOverflow) ;
       BackPatch (f, NextQuad) ;
       IF GetMode (Des) = LeftValue
       THEN
@@ -3823,16 +3876,6 @@ BEGIN
       MoveWithMode (combinedtok, Des, Exp, Array, destok, exptok, checkOverflow) ;
       IF checkTypes
       THEN
-         (*
-         IF (CannotCheckTypeInPass3 (Des) OR CannotCheckTypeInPass3 (Exp))
-         THEN
-            (* We must do this after the assignment to allow the Designator to be
-               resolved (if it is a constant) before the type checking is done.  *)
-            (* Prompt post pass 3 to check the assignment once all types are resolved.  *)
-            BuildRange (InitTypesAssignmentCheck (combinedtok, Des, Exp))
-         END ;
-         *)
-         (* BuildRange (InitTypesAssignmentCheck (combinedtok, Des, Exp)) ; *)
          CheckAssignCompatible (Des, Exp, combinedtok, destok, exptok)
       END
    END ;
@@ -12735,7 +12778,7 @@ BEGIN
          PopT(e2) ;
          PopT(e1) ;
          PopT(const) ;
-         WriteFormat0('the constant must be an array constructor or a set constructor but not both') ;
+         WriteFormat0('the constant must be either an array constructor or a set constructor') ;
          PushT(const)
       END
    END
@@ -12744,6 +12787,14 @@ END BuildComponentValue ;
 
 (*
    RecordOp - Records the operator passed on the stack.
+              This is called when a boolean operator is found in an
+              expression.  It is called just after the lhs has been built
+              and pushed to the quad stack and prior to the rhs build.
+              It checks to see if AND OR or equality tests are required.
+              It will short circuit AND and OR expressions.  It also
+              converts a lhs to a boolean variable if an xor comparison
+              is about to be performed.
+
               Checks for AND operator or OR operator
               if either of these operators are found then BackPatching
               takes place.
@@ -12787,6 +12838,10 @@ BEGIN
       PopBool(t, f) ;
       BackPatch(f, NextQuad) ;
       PushBool(t, 0)
+   ELSIF IsBoolean (1) AND
+      ((Op = EqualTok) OR (Op = LessGreaterTok) OR (Op = HashTok) OR (Op = InTok))
+   THEN
+      ConvertBooleanToVariable (tokno, 1)
    END ;
    PushTtok(Op, tokno)
 END RecordOp ;
@@ -13180,7 +13235,7 @@ END AreConstant ;
 (*
    ConvertBooleanToVariable - converts a BoolStack(i) from a Boolean True|False
                               exit pair into a variable containing the value TRUE or
-                              FALSE. The parameter, i, is relative to the top
+                              FALSE.  The parameter i is relative to the top
                               of the stack.
 *)
 
@@ -13194,10 +13249,12 @@ BEGIN
       constant boolean.  *)
    Des := MakeTemporary (tok, AreConstant (IsInConstExpression ())) ;
    PutVar (Des, Boolean) ;
+   PutVarConditional (Des, TRUE) ;
    PushTtok (Des, tok) ;   (* we have just increased the stack so we must use i+1 *)
    f := PeepAddress (BoolStack, i+1) ;
    PushBool (f^.TrueExit, f^.FalseExit) ;
-   BuildAssignmentWithoutBounds (tok, FALSE, TRUE) ;  (* restored stack *)
+   BuildAssignmentWithoutBounds (tok, FALSE, TRUE) ;
+   (* Restored stack after the BuildAssign... above.  *)
    f := PeepAddress (BoolStack, i) ;
    WITH f^ DO
       TrueExit := Des ;  (* Alter Stack(i) to contain the variable.  *)
@@ -13228,6 +13285,23 @@ BEGIN
 END BuildBooleanVariable ;
 
 
+(*
+   DumpQuadSummary -
+*)
+
+PROCEDURE DumpQuadSummary (quad: CARDINAL) ;
+VAR
+   f: QuadFrame ;
+BEGIN
+   IF quad # 0
+   THEN
+      f := GetQF (quad) ;
+      printf2 ("%d  op3 = %d\n", quad, f^.Operand3)
+   END
+END DumpQuadSummary ;
+
+
+
 (*
    BuildRelOpFromBoolean - builds a relational operator sequence of quadruples
                            instead of using a temporary boolean variable.
@@ -13244,10 +13318,11 @@ END BuildBooleanVariable ;
 
                            before
 
-                           q    if r1      op1     op2     t2
-                           q+1  Goto                       f2
-                           q+2  if r2      op3     op4     t1
-                           q+3  Goto                       f1
+                           q      if r1      op1     op2     t2
+                           q+1    Goto                       f2
+                           ...
+                           q+n    if r2      op3     op4     t1
+                           q+n+1  Goto                       f1
 
                            after (in case of =)
 
@@ -13260,12 +13335,14 @@ END BuildBooleanVariable ;
 
                            after (in case of #)
 
-                           q    if r1      op1     op2     q+2
-                           q+1  Goto                       q+4
-                           q+2  if r2      op3     op4     f
-                           q+3  Goto                       t
-                           q+4  if r2      op3     op4     t
-                           q+5  Goto                       f
+                           q      if r1      op1     op2     q+2
+                           q+1    Goto                       q+n+2
+                           q+2    ...
+                           ...    ...
+                           q+n    if r2      op3     op4     f
+                           q+n+1  Goto                       t
+                           q+n+2  if r2      op3     op4     t
+                           q+n+3  Goto                       f
 
                            The Stack is expected to contain:
 
@@ -13295,11 +13372,11 @@ BEGIN
    Assert (IsBoolean (1) AND IsBoolean (3)) ;
    IF OperandT (2) = EqualTok
    THEN
-      (* are the two boolean expressions the same? *)
+      (* Are the two boolean expressions the same?  *)
       PopBool (t1, f1) ;
       PopT (Tok) ;
       PopBool (t2, f2) ;
-      (* give the false exit a second chance *)
+      (* Give the false exit a second chance.  *)
       BackPatch (t2, t1) ;        (* q    if   _     _    q+2 *)
       BackPatch (f2, NextQuad) ;  (* q+1  if   _     _    q+4 *)
       Assert (NextQuad = f1+1) ;
@@ -13311,11 +13388,25 @@ BEGIN
       PushBooltok (Merge (NextQuad-1, t1), Merge (NextQuad-2, f1), tokpos)
    ELSIF (OperandT (2) = HashTok) OR (OperandT (2) = LessGreaterTok)
    THEN
-      (* are the two boolean expressions different? *)
+      IF CompilerDebugging
+      THEN
+         printf0 ("BuildRelOpFromBoolean (NotEqualTok)\n") ;
+         DisplayStack
+      END ;
+      (* Are the two boolean expressions different?  *)
       PopBool (t1, f1) ;
       PopT (Tok) ;
       PopBool (t2, f2) ;
-      (* give the false exit a second chance *)
+      IF CompilerDebugging
+      THEN
+         printf2 ("t1 = %d, f1 = %d\n", t1, f1) ;
+         printf2 ("t2 = %d, f2 = %d\n", t2, f2) ;
+         DumpQuadSummary (t1) ;
+         DumpQuadSummary (f1) ;
+         DumpQuadSummary (t2) ;
+         DumpQuadSummary (f2) ;
+      END ;
+      (* Give the false exit a second chance.  *)
       BackPatch (t2, t1) ;        (* q    if   _     _    q+2 *)
       BackPatch (f2, NextQuad) ;  (* q+1  if   _     _    q+4 *)
       Assert (NextQuad = f1+1) ;
@@ -13410,11 +13501,13 @@ BEGIN
    THEN
       DisplayStack    (* Debugging info *)
    END ;
-   IF IsBoolean (1) AND IsBoolean (3)
+   IF IsInConstExpression () AND IsBoolean (1) AND IsBoolean (3)
    THEN
       (*
          we allow # and = to be used with Boolean expressions.
-         we do not allow >  <  >=  <=  though
+         we do not allow >  <  >=  <=  though.  We only examine
+         this case if we are in a const expression as there will be
+         no dereferencing of operands.
       *)
       BuildRelOpFromBoolean (optokpos)
    ELSE
@@ -13729,6 +13822,58 @@ BEGIN
 END GenQuadOTypetok ;
 
 
+(*
+   GenQuadOTypeUniquetok - assigns the fields of the quadruple with
+                           the parameters and marks the quad as constexpr.
+*)
+
+PROCEDURE GenQuadOTypeUniquetok (TokPos: CARDINAL;
+                                 Operation: QuadOperator;
+                                 Op1, Op2, Op3: CARDINAL;
+                                 overflow, typecheck: BOOLEAN;
+                                 Op1Pos, Op2Pos, Op3Pos: CARDINAL) ;
+VAR
+   f: QuadFrame ;
+BEGIN
+   (* WriteString('Potential Quad: ') ; *)
+   IF QuadrupleGeneration
+   THEN
+      IF NextQuad # Head
+      THEN
+         f := GetQF (NextQuad-1) ;
+         f^.Next := NextQuad
+      END ;
+      PutQuadOType (NextQuad, Operation, Op1, Op2, Op3, overflow, typecheck) ;
+      f := GetQF (NextQuad) ;
+      WITH f^ DO
+         Next := 0 ;
+         LineNo := GetLineNo () ;
+         IF TokPos = UnknownTokenNo
+         THEN
+            TokenNo := GetTokenNo ()
+         ELSE
+            TokenNo := TokPos
+         END ;
+         op1pos := Op1Pos ;
+         op2pos := Op2Pos ;
+         op3pos := Op3Pos ;
+         ConstExpr := TRUE ;
+         IF GetDebugTraceQuad ()
+         THEN
+            printf0('generating: ') ;
+            DisplayQuad (NextQuad) ;
+            (* MetaErrorT1 (TokenNo, '{%1On}', NextQuad) *)
+         END
+      END ;
+      IF NextQuad=BreakAtQuad
+      THEN
+         stop
+      END ;
+      NewQuad (NextQuad)
+   END
+END GenQuadOTypeUniquetok ;
+
+
 (*
    DumpUntil - dump all quadruples until we seen the ending quadruple
                with procsym in the third operand.
@@ -13869,7 +14014,7 @@ END DisplayQuadRange ;
 
 (*
    BackPatch - Makes each of the quadruples on the list pointed to by
-               StartQuad, take quadruple Value as a target.
+               QuadNo take quadruple Value as a target.
 *)
 
 PROCEDURE BackPatch (QuadNo, Value: CARDINAL) ;
diff --git a/gcc/m2/gm2-compiler/M2Swig.mod b/gcc/m2/gm2-compiler/M2Swig.mod
index 11b2dbe3a45..194abd5fb78 100644
--- a/gcc/m2/gm2-compiler/M2Swig.mod
+++ b/gcc/m2/gm2-compiler/M2Swig.mod
@@ -57,7 +57,8 @@ FROM SymbolTable IMPORT GetSymName, IsType, IsProcedure, IsConst, IsVar,
                         NulSym ;
 
 FROM M2BasicBlock IMPORT BasicBlock, InitBasicBlocks, KillBasicBlocks,
-                         ForeachBasicBlockDo ;
+                         ForeachBasicBlockDo,
+                         GetBasicBlockStart, GetBasicBlockEnd ;
 
 
 TYPE
@@ -520,8 +521,12 @@ VAR
    DoBasicBlock -
 *)
 
-PROCEDURE DoBasicBlock (start, end: CARDINAL) ;
+PROCEDURE DoBasicBlock (bb: BasicBlock) ;
+VAR
+   start, end: CARDINAL ;
 BEGIN
+   start := GetBasicBlockStart (bb) ;
+   end := GetBasicBlockEnd (bb) ;
    IF IsProcedureScope(start)
    THEN
       (* skip this basic block, as this will not modify the parameter *)
diff --git a/gcc/m2/gm2-compiler/M2SymInit.mod b/gcc/m2/gm2-compiler/M2SymInit.mod
index 4c6035ae929..48f1b3d3288 100644
--- a/gcc/m2/gm2-compiler/M2SymInit.mod
+++ b/gcc/m2/gm2-compiler/M2SymInit.mod
@@ -39,7 +39,8 @@ FROM M2Error IMPORT InternalError ;
 FROM M2BasicBlock IMPORT BasicBlock,
                          InitBasicBlocks, InitBasicBlocksFromRange,
 			 KillBasicBlocks, FreeBasicBlocks,
-                         ForeachBasicBlockDo ;
+                         ForeachBasicBlockDo,
+                         GetBasicBlockStart, GetBasicBlockEnd ;
 
 IMPORT Indexing ;
 FROM Indexing IMPORT Index ;
@@ -1873,7 +1874,7 @@ END DetectTrash ;
    AppendEntry -
 *)
 
-PROCEDURE AppendEntry (Start, End: CARDINAL) ;
+PROCEDURE AppendEntry (bb: BasicBlock) ;
 VAR
    bbPtr: bbEntry ;
    high : CARDINAL ;
@@ -1881,13 +1882,13 @@ BEGIN
    high := Indexing.HighIndice (bbArray) ;
    bbPtr := NewEntry () ;
    WITH bbPtr^ DO
-      start := Start ;
-      end := End ;
+      start := GetBasicBlockStart (bb) ;
+      end := GetBasicBlockEnd (bb) ;
       first := high = 0 ;
-      endCall := IsCall (End) ;
-      endGoto := IsGoto (End) ;
-      endCond := IsConditional (End) ;
-      topOfLoop := IsBackReference (Start) ;
+      endCall := IsCall (end) ;
+      endGoto := IsGoto (end) ;
+      endCond := IsConditional (end) ;
+      topOfLoop := IsBackReference (start) ;
       trashQuad := 0 ;
       indexBB := high + 1 ;
       nextQuad := 0 ;
diff --git a/gcc/m2/gm2-compiler/P3Build.bnf b/gcc/m2/gm2-compiler/P3Build.bnf
index 643309424a7..0cec32914fc 100644
--- a/gcc/m2/gm2-compiler/P3Build.bnf
+++ b/gcc/m2/gm2-compiler/P3Build.bnf
@@ -679,9 +679,12 @@ ConstExpression :=                                                         % VAR
                                                                            % PopInConstExpression %
                 =:
 
-Relation := "="                                                            % PushTtok(EqualTok, GetTokenNo() -1) %
-            | "#"                                                          % PushTtok(HashTok, GetTokenNo() -1) %
-            | "<>"                                                         % PushTtok(LessGreaterTok, GetTokenNo() -1) %
+Relation := "="                                                            % PushTtok(EqualTok, GetTokenNo() -1) ;
+                                                                             RecordOp %
+            | "#"                                                          % PushTtok(HashTok, GetTokenNo() -1) ;
+                                                                             RecordOp %
+            | "<>"                                                         % PushTtok(LessGreaterTok, GetTokenNo() -1) ;
+                                                                             RecordOp %
             | "<"                                                          % PushTtok(LessTok, GetTokenNo() -1) %
             | "<="                                                         % PushTtok(LessEqualTok, GetTokenNo() -1) %
             | ">"                                                          % PushTtok(GreaterTok, GetTokenNo() -1) %
diff --git a/gcc/m2/gm2-compiler/SymbolTable.def b/gcc/m2/gm2-compiler/SymbolTable.def
index 06f8a227563..05ef313f322 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.def
+++ b/gcc/m2/gm2-compiler/SymbolTable.def
@@ -392,6 +392,21 @@ PROCEDURE IsVarHeap (sym: CARDINAL) : BOOLEAN ;
 PROCEDURE MakeVar (tok: CARDINAL; VarName: Name) : CARDINAL ;
 
 
+(*
+   PutVarConditional - assign IsConditional to value.
+*)
+
+PROCEDURE PutVarConditional (sym: CARDINAL; value: BOOLEAN) ;
+
+
+(*
+   IsVarConditional - return TRUE if the symbol is a var symbol
+                      containing the result of a boolean conditional.
+*)
+
+PROCEDURE IsVarConditional (sym: CARDINAL) : BOOLEAN ;
+
+
 (*
    MakeRecord - makes a Record symbol with name RecordName.
 *)
diff --git a/gcc/m2/gm2-compiler/SymbolTable.mod b/gcc/m2/gm2-compiler/SymbolTable.mod
index f206a47dff7..c76e942f729 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.mod
+++ b/gcc/m2/gm2-compiler/SymbolTable.mod
@@ -510,6 +510,8 @@ TYPE
                                               (* of const.                   *)
                     Value        : PtrToValue ; (* Value of the constant     *)
                     Type         : CARDINAL ; (* TYPE of constant, char etc  *)
+                    IsConditional,            (* Is it the result of a       *)
+                                              (* boolean conditional?        *)
                     IsSet        : BOOLEAN ;  (* is the constant a set?      *)
                     IsConstructor: BOOLEAN ;  (* is the constant a set?      *)
                     FromType     : CARDINAL ; (* type is determined FromType *)
@@ -533,6 +535,7 @@ TYPE
                IsComponentRef: BOOLEAN ;      (* Is temporary referencing a  *)
                                               (* record field?               *)
                list          : Indexing.Index ;  (* the record and fields    *)
+               IsConditional,
                IsTemp        : BOOLEAN ;      (* Is variable a temporary?    *)
                IsParam       : BOOLEAN ;      (* Is variable a parameter?    *)
                IsPointerCheck: BOOLEAN ;      (* Is variable used to         *)
@@ -4306,6 +4309,7 @@ BEGIN
             Scope := GetCurrentScope() ;  (* Procedure or Module?  *)
             AtAddress := FALSE ;
             Address := NulSym ;           (* Address at which declared.  *)
+            IsConditional := FALSE ;
             IsTemp := FALSE ;
             IsComponentRef := FALSE ;
             IsParam := FALSE ;
@@ -4334,6 +4338,52 @@ BEGIN
 END MakeVar ;
 
 
+(*
+   PutVarConditional - assign IsConditional to value.
+*)
+
+PROCEDURE PutVarConditional (sym: CARDINAL; value: BOOLEAN) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym(sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      VarSym     : Var.IsConditional := value |
+      ConstVarSym: ConstVar.IsConditional := value
+
+      ELSE
+         InternalError ('expecting Var')
+      END
+   END
+END PutVarConditional ;
+
+
+(*
+   IsVarConditional - return TRUE if the symbol is a var symbol
+                      containing the result of a boolean conditional.
+*)
+
+PROCEDURE IsVarConditional (sym: CARDINAL) : BOOLEAN ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym(sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      VarSym     : RETURN Var.IsConditional |
+      ConstVarSym: RETURN ConstVar.IsConditional
+
+      ELSE
+         RETURN FALSE
+      END
+   END ;
+   RETURN FALSE
+END IsVarConditional ;
+
+
 (*
    PutExceptionBlock - sets a BOOLEAN in block module/procedure/defimp,
                        sym, indicating that this block as an EXCEPT
@@ -5043,6 +5093,7 @@ BEGIN
             Value := InitValue() ;
             Type  := NulSym ;
             IsSet := FALSE ;
+            IsConditional := FALSE ;
             IsConstructor := FALSE ;
             FromType := NulSym ;     (* type is determined FromType *)
             UnresFromType := FALSE ; (* is Type resolved?           *)
diff --git a/gcc/testsuite/gm2/iso/const/pass/constbool4.mod b/gcc/testsuite/gm2/iso/const/pass/constbool4.mod
new file mode 100644
index 00000000000..faf335eb85a
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/const/pass/constbool4.mod
@@ -0,0 +1,17 @@
+MODULE constbool4 ;
+
+
+CONST
+   World = "W" + "o" + "r" + "l" + "d" ;
+   Hello = "Hello" + " " + World ;
+   AddressableBits = 32 ;
+   MaxBits         = 32 ;
+
+   BitsInUse =
+    ORD(AddressableBits > MaxBits) * MaxBits +
+    ORD(AddressableBits <= MaxBits) * AddressableBits +
+    ORD (LENGTH (Hello) = 15) ;
+
+BEGIN
+
+END constbool4.
diff --git a/gcc/testsuite/gm2/iso/const/pass/constbool5.mod b/gcc/testsuite/gm2/iso/const/pass/constbool5.mod
new file mode 100644
index 00000000000..31b6de3bd5f
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/const/pass/constbool5.mod
@@ -0,0 +1,24 @@
+MODULE constbool5 ;
+
+FROM libc IMPORT printf, exit ;
+
+CONST
+   World = "W" + "o" + "r" + "l" + "d" ;
+   Hello = "Hello" + " " + World ;
+   AddressableBits = 32 ;
+   MaxBits         = 32 ;
+
+   BitsInUse =
+    ORD(AddressableBits > MaxBits) * MaxBits +
+    ORD(AddressableBits <= MaxBits) * AddressableBits +
+    ORD (LENGTH (Hello) = 11) ;
+
+BEGIN
+   IF BitsInUse = 33
+   THEN
+      printf ("passed\n") ;
+   ELSE
+      printf ("failed\n") ;
+      exit (1)
+   END
+END constbool5.
diff --git a/gcc/testsuite/gm2/iso/run/pass/condtest2.mod b/gcc/testsuite/gm2/iso/run/pass/condtest2.mod
new file mode 100644
index 00000000000..17ecd18102c
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/run/pass/condtest2.mod
@@ -0,0 +1,26 @@
+MODULE condtest2 ;
+
+FROM libc IMPORT printf, exit ;
+
+
+PROCEDURE test (VAR a, b, c, d: CARDINAL) ;
+BEGIN
+   IF (a = b) # (c = d)
+   THEN
+      printf ("passed\n")
+   ELSE
+      printf ("failed\n") ;
+      exit (1)
+   END
+END test ;
+
+
+VAR
+   e, f, g, h: CARDINAL ;
+BEGIN
+   e := 1 ;
+   f := 2 ;
+   g := 3 ;
+   h := 3 ;
+   test (e, f, g, h)
+END condtest2.
diff --git a/gcc/testsuite/gm2/iso/run/pass/condtest3.mod b/gcc/testsuite/gm2/iso/run/pass/condtest3.mod
new file mode 100644
index 00000000000..457a94f638d
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/run/pass/condtest3.mod
@@ -0,0 +1,26 @@
+MODULE condtest3 ;
+
+FROM libc IMPORT printf, exit ;
+
+
+PROCEDURE test ;
+CONST
+   a = 1 ;
+   b = 2 ;
+   c = 3 ;
+   d = 3 ;
+   Result = ((a = b) # (c = d)) ;
+BEGIN
+   IF Result
+   THEN
+      printf ("passed\n")
+   ELSE
+      printf ("failed\n") ;
+      exit (1)
+   END
+END test ;
+
+
+BEGIN
+   test
+END condtest3.
diff --git a/gcc/testsuite/gm2/iso/run/pass/condtest4.mod b/gcc/testsuite/gm2/iso/run/pass/condtest4.mod
new file mode 100644
index 00000000000..6fd027b12e2
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/run/pass/condtest4.mod
@@ -0,0 +1,24 @@
+MODULE condtest4 ;
+
+FROM libc IMPORT printf, exit ;
+
+
+PROCEDURE test (VAR a, b: BOOLEAN) ;
+BEGIN
+   IF a AND b
+   THEN
+      printf ("passed\n")
+   ELSE
+      printf ("failed\n") ;
+      exit (1)
+   END
+END test ;
+
+
+VAR
+   e, f: BOOLEAN ;
+BEGIN
+   e := TRUE ;
+   f := TRUE ;
+   test (e, f)
+END condtest4.
diff --git a/gcc/testsuite/gm2/iso/run/pass/condtest5.mod b/gcc/testsuite/gm2/iso/run/pass/condtest5.mod
new file mode 100644
index 00000000000..5cb88433eaa
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/run/pass/condtest5.mod
@@ -0,0 +1,24 @@
+MODULE condtest5 ;
+
+FROM libc IMPORT printf, exit ;
+
+
+PROCEDURE test (VAR a, b: BOOLEAN) ;
+BEGIN
+   IF (a = a) AND b
+   THEN
+      printf ("passed\n")
+   ELSE
+      printf ("failed\n") ;
+      exit (1)
+   END
+END test ;
+
+
+VAR
+   e, f: BOOLEAN ;
+BEGIN
+   e := TRUE ;
+   f := TRUE ;
+   test (e, f)
+END condtest5.
diff --git a/gcc/testsuite/gm2/iso/run/pass/constbool4.mod b/gcc/testsuite/gm2/iso/run/pass/constbool4.mod
new file mode 100644
index 00000000000..faf335eb85a
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/run/pass/constbool4.mod
@@ -0,0 +1,17 @@
+MODULE constbool4 ;
+
+
+CONST
+   World = "W" + "o" + "r" + "l" + "d" ;
+   Hello = "Hello" + " " + World ;
+   AddressableBits = 32 ;
+   MaxBits         = 32 ;
+
+   BitsInUse =
+    ORD(AddressableBits > MaxBits) * MaxBits +
+    ORD(AddressableBits <= MaxBits) * AddressableBits +
+    ORD (LENGTH (Hello) = 15) ;
+
+BEGIN
+
+END constbool4.

commit 8701cdbf8df3f746df85882878beb8e8f897b014
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Nov 22 19:46:44 2024 +0000

    [PATCH] PR modula2/115540 gcc/m2/mc-boot-ch/Gtermios.cc error return-statement with a value
    
    This patch fixes three occurrences of cfmakeraw use in the hand built
    m2 support libraries which incorrectly attempt to return a void
    result.
    
    gcc/m2/ChangeLog:
    
            PR modula2/115540
            * gm2-libs-ch/termios.c (cfmakeraw): Remove return.
            * mc-boot-ch/Gtermios.cc (cfmakeraw): Remove return.
            * pge-boot/Gtermios.cc (cfmakeraw): Remove return.
    
    (cherry picked from commit d16355c72c7f7b54ecf06371d14d7ad309ea4c34)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-libs-ch/termios.c b/gcc/m2/gm2-libs-ch/termios.c
index 472a4c022e8..fe7403b3dee 100644
--- a/gcc/m2/gm2-libs-ch/termios.c
+++ b/gcc/m2/gm2-libs-ch/termios.c
@@ -281,7 +281,7 @@ int EXPORT (tcsetattr) (int fd, int option, struct termios *t)
 void EXPORT (cfmakeraw) (struct termios *t)
 {
 #if defined(HAVE_CFMAKERAW)
-  return cfmakeraw (t);
+  cfmakeraw (t);
 #endif
 }
 
diff --git a/gcc/m2/mc-boot-ch/Gtermios.cc b/gcc/m2/mc-boot-ch/Gtermios.cc
index a11065a6725..0ef5c8ba803 100644
--- a/gcc/m2/mc-boot-ch/Gtermios.cc
+++ b/gcc/m2/mc-boot-ch/Gtermios.cc
@@ -289,7 +289,7 @@ void
 EXPORT (cfmakeraw) (struct termios *t)
 {
 #if defined(HAVE_CFMAKERAW)
-  return cfmakeraw (t);
+  cfmakeraw (t);
 #endif
 }
 
diff --git a/gcc/m2/pge-boot/Gtermios.cc b/gcc/m2/pge-boot/Gtermios.cc
index 4f3557619db..5f966403b19 100644
--- a/gcc/m2/pge-boot/Gtermios.cc
+++ b/gcc/m2/pge-boot/Gtermios.cc
@@ -289,7 +289,7 @@ void
 EXPORT (cfmakeraw) (struct termios *t)
 {
 #if defined(HAVE_CFMAKERAW)
-  return cfmakeraw (t);
+  cfmakeraw (t);
 #endif
 }
 

commit ed9129c27d5b7c0ba78725b85f1a0a79d9c21a22
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Nov 22 21:09:10 2024 +0000

    [PATCH] modula2: tidyup remove unused procedures and unused parameters
    
    This patch removes M2GenGCC.mod:QuadCondition and
    M2Quads.mod:GenQuadOTypeUniquetok.  It also removes unused parameter
    WalkAction for all FoldIf procedures.
    
    gcc/m2/ChangeLog:
    
            * gm2-compiler/M2GenGCC.mod (QuadCondition): Remove.
            (FoldIfEqu): Remove WalkAction parameter.
            (FoldIfNotEqu): Ditto.
            (FoldIfGreEqu): Ditto.
            (FoldIfLessEqu): Ditto.
            (FoldIfGre): Ditto.
            (FoldIfLess): Ditto.
            (FoldIfIn): Ditto.
            (FoldIfNotIn): Ditto.
            * gm2-compiler/M2Quads.mod (GenQuadOTypeUniquetok): Remove.
    
    (cherry picked from commit 038144534a683d4248c9b98a7110a59b305f124a)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2GenGCC.mod b/gcc/m2/gm2-compiler/M2GenGCC.mod
index c59695a3779..fc3fa204ac0 100644
--- a/gcc/m2/gm2-compiler/M2GenGCC.mod
+++ b/gcc/m2/gm2-compiler/M2GenGCC.mod
@@ -637,14 +637,14 @@ BEGIN
          CastOp             : FoldCast (tokenno, p, quad, op1, op2, op3) |
          InclOp             : FoldIncl (tokenno, p, quad, op1, op3) |
          ExclOp             : FoldExcl (tokenno, p, quad, op1, op3) |
-         IfEquOp            : FoldIfEqu (tokenno, p, quad, op1, op2, op3) |
-         IfNotEquOp         : FoldIfNotEqu (tokenno, p, quad, op1, op2, op3) |
-         IfLessOp           : FoldIfLess (tokenno, p, quad, op1, op2, op3) |
-         IfLessEquOp        : FoldIfLessEqu (tokenno, p, quad, op1, op2, op3) |
-         IfGreOp            : FoldIfGre (tokenno, p, quad, op1, op2, op3) |
-         IfGreEquOp         : FoldIfGreEqu (tokenno, p, quad, op1, op2, op3) |
-         IfInOp             : FoldIfIn (tokenno, p, quad, op1, op2, op3) |
-         IfNotInOp          : FoldIfNotIn (tokenno, p, quad, op1, op2, op3) |
+         IfEquOp            : FoldIfEqu (tokenno, quad, op1, op2, op3) |
+         IfNotEquOp         : FoldIfNotEqu (tokenno, quad, op1, op2, op3) |
+         IfLessOp           : FoldIfLess (tokenno, quad, op1, op2, op3) |
+         IfLessEquOp        : FoldIfLessEqu (tokenno, quad, op1, op2, op3) |
+         IfGreOp            : FoldIfGre (tokenno, quad, op1, op2, op3) |
+         IfGreEquOp         : FoldIfGreEqu (tokenno, quad, op1, op2, op3) |
+         IfInOp             : FoldIfIn (tokenno, quad, op1, op2, op3) |
+         IfNotInOp          : FoldIfNotIn (tokenno, quad, op1, op2, op3) |
          LogicalShiftOp     : FoldSetShift(tokenno, p, quad, op1, op2, op3) |
          LogicalRotateOp    : FoldSetRotate (tokenno, p, quad, op1, op2, op3) |
          ParamOp            : FoldBuiltinFunction (tokenno, p, quad, op1, op2, op3) |
@@ -5332,7 +5332,7 @@ END FoldIncl ;
                 if op1 < op2 then goto op3.
 *)
 
-PROCEDURE FoldIfLess (tokenno: CARDINAL; p: WalkAction;
+PROCEDURE FoldIfLess (tokenno: CARDINAL;
                       quad: CARDINAL; left, right, destQuad: CARDINAL) ;
 BEGIN
    (* Firstly ensure that constant literals are declared.  *)
@@ -5357,57 +5357,12 @@ BEGIN
 END FoldIfLess ;
 
 
-(*
-   QuadCondition - Pre-condition:  left, right operands are constants
-                   which have been resolved.
-                   Post-condition: return TRUE if the condition at
-                   quad is TRUE.
-*)
-
-PROCEDURE QuadCondition (quad: CARDINAL) : BOOLEAN ;
-VAR
-   left, right, dest, combined,
-   leftpos, rightpos, destpos : CARDINAL ;
-   constExpr, overflow        : BOOLEAN ;
-   op                         : QuadOperator ;
-BEGIN
-   GetQuadOtok (quad, combined, op,
-                left, right, dest, overflow,
-                constExpr,
-                leftpos, rightpos, destpos) ;
-   CASE op OF
-
-   IfInOp     :  PushValue (right) ;
-                 RETURN SetIn (left, combined) |
-   IfNotInOp  :  PushValue (right) ;
-                 RETURN NOT SetIn (left, combined)
-
-   ELSE
-   END ;
-   PushValue (left) ;
-   PushValue (right) ;
-   CASE op OF
-
-   IfGreOp    :  RETURN Gre (combined) |
-   IfLessOp   :  RETURN Less (combined) |
-   IfLessEquOp:  RETURN LessEqu (combined) |
-   IfGreEquOp :  RETURN GreEqu (combined) |
-   IfEquOp    :  RETURN GreEqu (combined) |
-   IfNotEquOp :  RETURN NotEqu (combined)
-
-   ELSE
-      InternalError ('unrecognized comparison operator')
-   END ;
-   RETURN FALSE
-END QuadCondition ;
-
-
 (*
    FoldIfGre - check to see if it is possible to evaluate
                if op1 > op2 then goto op3.
 *)
 
-PROCEDURE FoldIfGre (tokenno: CARDINAL; p: WalkAction;
+PROCEDURE FoldIfGre (tokenno: CARDINAL;
                      quad: CARDINAL;
                      left, right, destQuad: CARDINAL) ;
 BEGIN
@@ -5438,7 +5393,7 @@ END FoldIfGre ;
                    if op1 <= op2 then goto op3.
 *)
 
-PROCEDURE FoldIfLessEqu (tokenno: CARDINAL; p: WalkAction;
+PROCEDURE FoldIfLessEqu (tokenno: CARDINAL;
                          quad: CARDINAL;
                          left, right, destQuad: CARDINAL) ;
 BEGIN
@@ -5469,7 +5424,7 @@ END FoldIfLessEqu ;
                   if op1 >= op2 then goto op3.
 *)
 
-PROCEDURE FoldIfGreEqu (tokenno: CARDINAL; p: WalkAction;
+PROCEDURE FoldIfGreEqu (tokenno: CARDINAL;
                         quad: CARDINAL;
                         left, right, destQuad: CARDINAL) ;
 BEGIN
@@ -5500,7 +5455,7 @@ END FoldIfGreEqu ;
               if op1 in op2 then goto op3
 *)
 
-PROCEDURE FoldIfIn (tokenno: CARDINAL; p: WalkAction;
+PROCEDURE FoldIfIn (tokenno: CARDINAL;
                     quad: CARDINAL;
                     left, right, destQuad: CARDINAL) ;
 BEGIN
@@ -5535,7 +5490,7 @@ END FoldIfIn ;
                  if not (op1 in op2) then goto op3
 *)
 
-PROCEDURE FoldIfNotIn (tokenno: CARDINAL; p: WalkAction;
+PROCEDURE FoldIfNotIn (tokenno: CARDINAL;
                        quad: CARDINAL;
                        left, right, destQuad: CARDINAL) ;
 BEGIN
@@ -5571,7 +5526,7 @@ END FoldIfNotIn ;
                if op1 = op2 then goto op3.
 *)
 
-PROCEDURE FoldIfEqu (tokenno: CARDINAL; p: WalkAction;
+PROCEDURE FoldIfEqu (tokenno: CARDINAL;
                      quad: CARDINAL;
                      left, right, destQuad: CARDINAL) ;
 BEGIN
@@ -5603,7 +5558,7 @@ END FoldIfEqu ;
                   if op1 # op2 then goto op3.
 *)
 
-PROCEDURE FoldIfNotEqu (tokenno: CARDINAL; p: WalkAction;
+PROCEDURE FoldIfNotEqu (tokenno: CARDINAL;
                         quad: CARDINAL;
                         left, right, destQuad: CARDINAL) ;
 BEGIN
diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index 16c1e016a6f..6476806ac35 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -13822,58 +13822,6 @@ BEGIN
 END GenQuadOTypetok ;
 
 
-(*
-   GenQuadOTypeUniquetok - assigns the fields of the quadruple with
-                           the parameters and marks the quad as constexpr.
-*)
-
-PROCEDURE GenQuadOTypeUniquetok (TokPos: CARDINAL;
-                                 Operation: QuadOperator;
-                                 Op1, Op2, Op3: CARDINAL;
-                                 overflow, typecheck: BOOLEAN;
-                                 Op1Pos, Op2Pos, Op3Pos: CARDINAL) ;
-VAR
-   f: QuadFrame ;
-BEGIN
-   (* WriteString('Potential Quad: ') ; *)
-   IF QuadrupleGeneration
-   THEN
-      IF NextQuad # Head
-      THEN
-         f := GetQF (NextQuad-1) ;
-         f^.Next := NextQuad
-      END ;
-      PutQuadOType (NextQuad, Operation, Op1, Op2, Op3, overflow, typecheck) ;
-      f := GetQF (NextQuad) ;
-      WITH f^ DO
-         Next := 0 ;
-         LineNo := GetLineNo () ;
-         IF TokPos = UnknownTokenNo
-         THEN
-            TokenNo := GetTokenNo ()
-         ELSE
-            TokenNo := TokPos
-         END ;
-         op1pos := Op1Pos ;
-         op2pos := Op2Pos ;
-         op3pos := Op3Pos ;
-         ConstExpr := TRUE ;
-         IF GetDebugTraceQuad ()
-         THEN
-            printf0('generating: ') ;
-            DisplayQuad (NextQuad) ;
-            (* MetaErrorT1 (TokenNo, '{%1On}', NextQuad) *)
-         END
-      END ;
-      IF NextQuad=BreakAtQuad
-      THEN
-         stop
-      END ;
-      NewQuad (NextQuad)
-   END
-END GenQuadOTypeUniquetok ;
-
-
 (*
    DumpUntil - dump all quadruples until we seen the ending quadruple
                with procsym in the third operand.

commit 62b878b1418ab373cdad4ff293d005b8c10dbf1b
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Nov 23 00:27:49 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 79005918ab4..d7d6e491d6b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,30 @@
+2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-06-10  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* doc/gm2.texi (Documentation): Fix typos, grammar, and a link.
+
+2024-11-22  Lulu Cheng  <chenglulu@loongson.cn>
+
+	Backported from master:
+	2024-11-22  Lulu Cheng  <chenglulu@loongson.cn>
+
+	* config/loongarch/lasx.md: Fixed.
+	* config/loongarch/lsx.md: Fixed.
+
+2024-11-22  Xi Ruoyao  <xry111@xry111.site>
+
+	Backported from master:
+	2024-11-22  Xi Ruoyao  <xry111@xry111.site>
+
+	* config/loongarch/loongarch-builtins.cc (vorn_v, xvorn_v): Use
+	unsigned vector modes.
+	* config/loongarch/lsxintrin.h (__lsx_vorn_v): Cast arguments to
+	v16u8.
+	* config/loongarch/lasxintrin.h (__lasx_xvorn_v): Cast arguments
+	to v32u8.
+
 2024-11-20  David Malcolm  <dmalcolm@redhat.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e1e2985b305..f69d3317a0a 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241122
+20241123
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 1381ce3c655..0104ca2f6bf 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,14 @@
+2024-11-22  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2024-11-14  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/104819
+	* trans-expr.cc (conv_null_actual): Helper function to handle
+	passing of NULL() to non-optional dummy arguments of non-bind(c)
+	procedures.
+	(gfc_conv_procedure_call): Use it for character dummies.
+
 2024-11-14  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 1d350b4c19a..cb3eb6b0fb7 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,381 @@
+2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-06-25  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2-compiler/M2GenGCC.mod (QuadCondition): Remove.
+	(FoldIfEqu): Remove WalkAction parameter.
+	(FoldIfNotEqu): Ditto.
+	(FoldIfGreEqu): Ditto.
+	(FoldIfLessEqu): Ditto.
+	(FoldIfGre): Ditto.
+	(FoldIfLess): Ditto.
+	(FoldIfIn): Ditto.
+	(FoldIfNotIn): Ditto.
+	* gm2-compiler/M2Quads.mod (GenQuadOTypeUniquetok): Remove.
+
+2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-06-25  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115540
+	* gm2-libs-ch/termios.c (cfmakeraw): Remove return.
+	* mc-boot-ch/Gtermios.cc (cfmakeraw): Remove return.
+	* pge-boot/Gtermios.cc (cfmakeraw): Remove return.
+
+2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-06-25  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115536
+	* gm2-compiler/M2BasicBlock.def (GetBasicBlockScope): New procedure.
+	(GetBasicBlockStart): Ditto.
+	(GetBasicBlockEnd): Ditto.
+	(IsBasicBlockFirst): New procedure function.
+	* gm2-compiler/M2BasicBlock.mod (ConvertQuads2BasicBlock): Allow
+	conditional boolean quads to be removed.
+	(GetBasicBlockScope): Implement new procedure.
+	(GetBasicBlockStart): Ditto.
+	(GetBasicBlockEnd): Ditto.
+	(IsBasicBlockFirst): Implement new procedure function.
+	* gm2-compiler/M2GCCDeclare.def (FoldConstants): New parameter
+	declaration.
+	* gm2-compiler/M2GCCDeclare.mod (FoldConstants): New parameter
+	declaration.
+	(DeclareTypesConstantsProceduresInRange): Recreate basic blocks
+	after resolving constant expressions.
+	(CodeBecomes): Guard IsVariableSSA with IsVar.
+	* gm2-compiler/M2GenGCC.def (ResolveConstantExpressions): New
+	parameter declaration.
+	* gm2-compiler/M2GenGCC.mod (FoldIfLess): Remove relop pattern
+	detection.
+	(FoldIfGre): Ditto.
+	(FoldIfLessEqu): Ditto.
+	(FoldIfGreEqu): Ditto.
+	(FoldIfIn): Ditto.
+	(FoldIfNotIn): Ditto.
+	(FoldIfEqu): Ditto.
+	(FoldIfNotEqu): Ditto.
+	(FoldBecomes): Add BasicBlock parameter and allow conditional
+	boolean becomes to be folded in the first basic block.
+	(ResolveConstantExpressions): Reimplement.
+	* gm2-compiler/M2Quads.def (IsConstQuad): New procedure function.
+	(IsConditionalBooleanQuad): Ditto.
+	* gm2-compiler/M2Quads.mod (IsConstQuad): Implement new procedure function.
+	(IsConditionalBooleanQuad): Ditto.
+	(MoveWithMode): Use GenQuadOTypetok.
+	(IsInitialisingConst): Rewrite using OpUsesOp1.
+	(OpUsesOp1): New procedure function.
+	(doBuildAssignment): Mark des as a VarConditional.
+	(ConvertBooleanToVariable): Call PutVarConditional.
+	(DumpQuadSummary): New procedure.
+	(BuildRelOpFromBoolean): Updated debugging and improved comments.
+	(BuildRelOp): Only call BuildRelOpFromBoolean if we are in a const
+	expression and both operands are boolean relops.
+	(GenQuadOTypeUniquetok): New procedure.
+	(BackPatch): Correct comment.
+	* gm2-compiler/SymbolTable.def (PutVarConditional): New procedure.
+	(IsVarConditional): New procedure function.
+	* gm2-compiler/SymbolTable.mod (PutVarConditional): Implement new
+	procedure.
+	(IsVarConditional): Implement new procedure function.
+	(SymConstVar): New field IsConditional.
+	(SymVar): New field IsConditional.
+	(MakeVar): Initialize IsConditional field.
+	(MakeConstVar): Initialize IsConditional field.
+	* gm2-compiler/M2Swig.mod (DoBasicBlock): Change parameters to
+	use BasicBlock.
+	* gm2-compiler/M2Code.mod (SecondDeclareAndOptimize): Use iterator
+	to FoldConstants over basic block list.
+	* gm2-compiler/M2SymInit.mod (AppendEntry): Replace parameters
+	with BasicBlock.
+	* gm2-compiler/P3Build.bnf (Relation): Call RecordOp for #, <> and =.
+
+2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-06-11  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/114529
+	* Make-lang.in (MC_EXTENDED_OPAQUE): Assign to nothing.
+	* Make-maintainer.in (mc-basetest): New rule.
+	(mc-devel-basetest): New rule.
+	(mc-clean): Remove mc.
+	(m2/mc-boot-gen/$(SRC_PREFIX)decl.cc): Replace --extended-opaque
+	with $(EXTENDED_OPAQUE).
+	(PG-SRC): Move define before generic rules.
+	(PGE-DEF): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.h): New rule.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)libc.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)mcrts.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)UnixArgs.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)Selective.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)termios.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)SysExceptions.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)ldtoa.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)wrapc.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)SYSTEM.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)errno.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)M2RTS.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.h): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)NameKey.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.h): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)Lists.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)Output.h): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.h): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)bnflex.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.h): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.h): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)RTco.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)RTentity.o): Ditto.
+	(m2/gm2-ppg-boot/$(SRC_PREFIX)%.o): Ditto.
+	(m2/ppg$(exeext)): Ditto.
+	(m2/gm2-ppg-boot/main.o): Ditto.
+	(m2/gm2-auto): Ditto.
+	(c-family/m2pp.o): Ditto.
+	(BUILD-BOOT-PG-H): Correct macro definition.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)%.h): New rule.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.h): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)NameKey.o): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)Lists.h): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)Lists.o): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)Output.h): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)Output.o): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.h): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)bnflex.o): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)RTco.h): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.h): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)RTco.o): Ditto.
+	(m2/gm2-pg-boot/$(SRC_PREFIX)RTentity.o): Ditto.
+	(BUILD-BOOT-PGE-H): Correct macro definition.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.h): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.h): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.h): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)Output.h): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.h): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)RTco.h): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)RTco.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.
+	(mc-basetest): Ditto.
+	(mc-devel-basetest): Ditto.
+	* gm2-compiler/M2Options.def (SetM2Dump): Add BOOLEAN return.
+	* gm2-compiler/M2Quads.def (BuildAlignment): Add tokno parameter.
+	(BuildBitLength): Ditto.
+	* gm2-compiler/P3Build.bnf (ByteAlignment): Move tokpos assignment
+	to the start of the block.
+	* gm2-compiler/PCBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.
+	(SetOrDesignatorOrFunction): Ditto.
+	* gm2-compiler/PHBuild.bnf (ConstSetOrQualidentOrFunction): Ditto.
+	(SetOrDesignatorOrFunction): Ditto.
+	(ByteAlignment): Ditto.
+	* gm2-libs/dtoa.def (dtoa): Change mode to INTEGER.
+	* gm2-libs/ldtoa.def (ldtoa): Ditto.
+	* mc-boot-ch/GSYSTEM.c (_M2_SYSTEM_init): Correct parameter list.
+	(_M2_SYSTEM_fini): Ditto.
+	* mc-boot-ch/Gdtoa.cc (dtoa_calcsign): Return bool.
+	(dtoa_dtoa): Return void * and use bool in the fifth parameter.
+	(_M2_dtoa_init): Correct parameter list.
+	(_M2_dtoa_fini): Ditto.
+	* mc-boot-ch/Gerrno.cc (_M2_errno_init): Ditto.
+	(_M2_errno_fini): Ditto.
+	* mc-boot-ch/Gldtoa.cc (dtoa_calcsign): Return bool.
+	(ldtoa_ldtoa): Return void * and use bool in the fifth parameter.
+	(_M2_ldtoa_init): Correct parameter list.
+	(_M2_ldtoa_fini): Ditto.
+	* mc-boot-ch/Glibc.c (tracedb_zresult): New function.
+	(libc_read): Return size_t and use size_t in parameter three.
+	(libc_write): Return size_t and use size_t in parameter three.
+	(libc_printf): Add const to the format specifier.
+	Change declaration of c to use const.
+	(libc_snprintf): Add const to the format specifier.
+	Change declaration of c to use const.
+	(libc_malloc): Use size_t.
+	(libc_memcpy): Ditto.
+	* mc-boot/GASCII.cc: Regenerate.
+	* mc-boot/GArgs.cc: Ditto.
+	* mc-boot/GAssertion.cc: Ditto.
+	* mc-boot/GBreak.cc: Ditto.
+	* mc-boot/GCmdArgs.cc: Ditto.
+	* mc-boot/GDebug.cc: Ditto.
+	* mc-boot/GDynamicStrings.cc: Ditto.
+	* mc-boot/GEnvironment.cc: Ditto.
+	* mc-boot/GFIO.cc: Ditto.
+	* mc-boot/GFormatStrings.cc: Ditto.
+	* mc-boot/GFpuIO.cc: Ditto.
+	* mc-boot/GIO.cc: Ditto.
+	* mc-boot/GIndexing.cc: Ditto.
+	* mc-boot/GM2Dependent.cc: Ditto.
+	* mc-boot/GM2EXCEPTION.cc: Ditto.
+	* mc-boot/GM2RTS.cc: Ditto.
+	* mc-boot/GMemUtils.cc: Ditto.
+	* mc-boot/GNumberIO.cc: Ditto.
+	* mc-boot/GPushBackInput.cc: Ditto.
+	* mc-boot/GRTExceptions.cc: Ditto.
+	* mc-boot/GRTint.cc: Ditto.
+	* mc-boot/GSArgs.cc: Ditto.
+	* mc-boot/GSFIO.cc: Ditto.
+	* mc-boot/GStdIO.cc: Ditto.
+	* mc-boot/GStorage.cc: Ditto.
+	* mc-boot/GStrCase.cc: Ditto.
+	* mc-boot/GStrIO.cc: Ditto.
+	* mc-boot/GStrLib.cc: Ditto.
+	* mc-boot/GStringConvert.cc: Ditto.
+	* mc-boot/GSysStorage.cc: Ditto.
+	* mc-boot/GTimeString.cc: Ditto.
+	* mc-boot/Galists.cc: Ditto.
+	* mc-boot/Gdecl.cc: Ditto.
+	* mc-boot/Gkeyc.cc: Ditto.
+	* mc-boot/Glists.cc: Ditto.
+	* mc-boot/GmcComment.cc: Ditto.
+	* mc-boot/GmcComp.cc: Ditto.
+	* mc-boot/GmcDebug.cc: Ditto.
+	* mc-boot/GmcError.cc: Ditto.
+	* mc-boot/GmcFileName.cc: Ditto.
+	* mc-boot/GmcLexBuf.cc: Ditto.
+	* mc-boot/GmcMetaError.cc: Ditto.
+	* mc-boot/GmcOptions.cc: Ditto.
+	* mc-boot/GmcPreprocess.cc: Ditto.
+	* mc-boot/GmcPretty.cc: Ditto.
+	* mc-boot/GmcPrintf.cc: Ditto.
+	* mc-boot/GmcQuiet.cc: Ditto.
+	* mc-boot/GmcReserved.cc: Ditto.
+	* mc-boot/GmcSearch.cc: Ditto.
+	* mc-boot/GmcStack.cc: Ditto.
+	* mc-boot/GmcStream.cc: Ditto.
+	* mc-boot/Gmcp1.cc: Ditto.
+	* mc-boot/Gmcp2.cc: Ditto.
+	* mc-boot/Gmcp3.cc: Ditto.
+	* mc-boot/Gmcp4.cc: Ditto.
+	* mc-boot/Gmcp5.cc: Ditto.
+	* mc-boot/GnameKey.cc: Ditto.
+	* mc-boot/GsymbolKey.cc: Ditto.
+	* mc-boot/Gvarargs.cc: Ditto.
+	* mc-boot/Gwlists.cc: Ditto.
+	* mc-boot/Gdecl.h: Ditto.
+	* mc-boot/Gldtoa.h: Ditto.
+	* mc-boot/Glibc.h: Ditto.
+	* mc/decl.def (putTypeOpaque): New procedure.
+	(isTypeOpaque): New procedure function.
+	* mc/decl.mod (debugOpaque): New constant.
+	(nodeT): New enumeration field opaquecast.
+	(node): New record field opaquecastF.
+	(opaqueCastState): New record.
+	(opaquecastT): New record.
+	(typeT): New field isOpaque.
+	(varT): New field opaqueState.
+	(arrayT): Ditto.
+	(varparamT): Ditto.
+	(paramT): Ditto.
+	(pointerT): Ditto.
+	(recordfieldT): Ditto.
+	(componentrefT): Ditto.
+	(pointerrefT): Ditto.
+	(arrayrefT): Ditto.
+	(procedureT): Ditto.
+	(proctypeT): Ditto.
+	(makeType): Initialize field isOpaque.
+	(makeTypeImp): Initialize field isOpaque.
+	(putVar): Call initNodeOpaqueCastState.
+	(putReturnType): Ditto.
+	(makeProcType): Ditto.
+	(putProcTypeReturn): Ditto.
+	(makeVarParameter): Ditto.
+	(makeNonVarParameter): Ditto.
+	(makeFuncCall): Ditto.
+	(putTypeOpaque): New procedure.
+	(isTypeOpaque): New procedure function.
+	(doMakeComponentRef): Call initNodeOpaqueCastState.
+	(makePointerRef): Call initNodeOpaqueCastState.
+	(doGetFuncType): Call initNodeOpaqueCastState.
+	(doBinary): Add FALSE parameter to doExprCup.
+	(doDeRefC): Rewrite.
+	(doComponentRefC): Call flushOpaque.
+	(doPointerRefC): Call flushOpaque.
+	(doArrayRefC): Add const_cast for unbounded array.
+	(doExprCup): Rewrite.
+	(doTypeAliasC): Remove.
+	(isDeclType): New procedure function.
+	(doEnumerationC): New procedure function.
+	(doParamTypeEmit): Ditto.
+	(doParamTypeNameModifier): Ditto.
+	(initOpaqueCastState): Ditto.
+	(initNodeOpaqueCastState): Ditto.
+	(setOpaqueCastState): Ditto.
+	(setNodeOpaqueVoidStar): Ditto.
+	(nodeUsesOpaque): Ditto.
+	(getNodeOpaqueVoidStar): Ditto.
+	(getOpaqueFlushNecessary): Ditto.
+	(makeOpaqueCast): Ditto.
+	(flushOpaque): Ditto.
+	(castOpaque): Ditto.
+	(isTypeOpaqueDefImp): Ditto.
+	(isParamVoidStar): Ditto.
+	(isRefVoidStar): Ditto.
+	(isReturnVoidStar): Ditto.
+	(isVarVoidStar): Ditto.
+	(initNodeOpaqueState): Ditto.
+	(assignNodeOpaqueCastState): Ditto.
+	(assignNodeOpaqueCastFalse): Ditto.
+	(dumpOpaqueState): Ditto.
+	(doProcTypeC): Rewrite.
+	(isDeclInImp): New procedure function.
+	(doTypeNameModifier): Ditto.
+	(doTypeC): Emit typedef if enum is declared in this module.
+	(doCompletePartialProcType): Rewrite.
+	(outputCompletePartialProcType): New procedure.
+	(doOpaqueModifier): Ditto.
+	(doVarC): Ditto.
+	(doProcedureHeadingC): Add opaque modifier to return type if
+	necessary.
+	(doReturnC): Cast opaque type for return if necessary.
+	(forceCastOpaque): New procedure.
+	(forceReintCastOpaque): New procedure.
+	(doUnConstCastUnbounded): New procedure.
+	(doAssignmentC): Cast opaque for both des and expr if necessary.
+	(doAdrExprC): Use static_cast for void * casting.
+	(doFuncVarParam): New procedure.
+	(doFuncParamC): Rewrite.
+	(doAdrArgC): Rewrite.
+	(getFunction): New procedure function.
+	(stop): Rename to ...
+	(localstop): ... this.
+	(dupFunccall): Call assignNodeOpaqueCastState.
+	(dbg): Rewrite.
+	(addDone): Rewrite.
+	(addDoneDef): Do not add opaque types to the doneQ when declared in
+	the definition module.
+	* mc/mc.flex (openSource): Return bool.
+	(_M2_mcflex_init): Correct parameter list.
+	(_M2_mcflex_fini): Ditto.
+	* mc/mcComment.h (stdbool.h): Include.
+	(mcComment_initComment): Change unsigned int to bool.
+	* mc/mcOptions.mod (handleOption): Disable --extended-opaque
+	and issue warning.
+	* mc/mcp1.bnf (DefTypeDeclaration): Call putTypeOpaque.
+
+2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-06-06  Gaius Mulley  <gaiusmod2@gmail.com>
+		    Kewen.Lin   <linkw@linux.ibm.com>
+
+	* gm2-gcc/m2type.cc (build_m2_short_real_node): Rewrite
+	to use the default float_type_node.
+	(build_m2_real_node): Rewrite to use the default
+	double_type_node.
+	(build_m2_long_real_node): Rewrite to use the default
+	long_double_type_node or float128_type_node.
+
 2024-11-20  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d861eb1e44d..e0a97a92f59 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,83 @@
+2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-06-25  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115536
+	* gm2/iso/const/pass/constbool4.mod: New test.
+	* gm2/iso/const/pass/constbool5.mod: New test.
+	* gm2/iso/run/pass/condtest2.mod: New test.
+	* gm2/iso/run/pass/condtest3.mod: New test.
+	* gm2/iso/run/pass/condtest4.mod: New test.
+	* gm2/iso/run/pass/condtest5.mod: New test.
+	* gm2/iso/run/pass/constbool4.mod: New test.
+
+2024-11-22  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2024-11-14  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/104819
+	* gfortran.dg/null_actual_6.f90: New test.
+
+2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-06-11  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/114529
+	* gm2/base-lang/pass/SYSTEM.def: New test.
+	* gm2/base-lang/pass/base-lang-test.sh: New test.
+	* gm2/base-lang/pass/globalproctype.def: New test.
+	* gm2/base-lang/pass/globalproctype.mod: New test.
+	* gm2/base-lang/pass/globalvar.def: New test.
+	* gm2/base-lang/pass/globalvar.mod: New test.
+	* gm2/base-lang/pass/globalvarassign.def: New test.
+	* gm2/base-lang/pass/globalvarassign.mod: New test.
+	* gm2/base-lang/pass/localproctype.def: New test.
+	* gm2/base-lang/pass/localproctype.mod: New test.
+	* gm2/base-lang/pass/localvar.def: New test.
+	* gm2/base-lang/pass/localvar.mod: New test.
+	* gm2/base-lang/pass/localvarassign.def: New test.
+	* gm2/base-lang/pass/localvarassign.mod: New test.
+	* gm2/base-lang/pass/opaquefield.def: New test.
+	* gm2/base-lang/pass/opaquefield.mod: New test.
+	* gm2/base-lang/pass/opaquenew.def: New test.
+	* gm2/base-lang/pass/opaquenew.mod: New test.
+	* gm2/base-lang/pass/opaqueparam.def: New test.
+	* gm2/base-lang/pass/opaqueparam.mod: New test.
+	* gm2/base-lang/pass/opaquestr.def: New test.
+	* gm2/base-lang/pass/opaqueuse.def: New test.
+	* gm2/base-lang/pass/opaqueuse.mod: New test.
+	* gm2/base-lang/pass/opaqueusestr.def: New test.
+	* gm2/base-lang/pass/opaqueusestr.mod: New test.
+	* gm2/base-lang/pass/opaquevariant.def: New test.
+	* gm2/base-lang/pass/opaquevariant.mod: New test.
+	* gm2/base-lang/pass/opaquevarparam.def: New test.
+	* gm2/base-lang/pass/opaquevarparam.mod: New test.
+	* gm2/base-lang/pass/simplelist.def: New test.
+	* gm2/base-lang/pass/simplelist.mod: New test.
+	* gm2/base-lang/pass/simplelistiter.def: New test.
+	* gm2/base-lang/pass/simplelistiter.mod: New test.
+	* gm2/base-lang/pass/simpleopaque.def: New test.
+	* gm2/base-lang/pass/simpleopaque.mod: New test.
+	* gm2/base-lang/pass/straddress.def: New test.
+	* gm2/base-lang/pass/straddress.mod: New test.
+	* gm2/base-lang/pass/straddressexport.def: New test.
+	* gm2/base-lang/pass/straddressexport.mod: New test.
+	* gm2/base-lang/pass/unboundedarray.def: New test.
+	* gm2/base-lang/pass/unboundedarray.mod: New test.
+
+2024-11-22  Xi Ruoyao  <xry111@xry111.site>
+
+	Backported from master:
+	2024-11-22  Xi Ruoyao  <xry111@xry111.site>
+
+	* gcc.target/loongarch/vector/lsx/lsx-builtin.c (__lsx_vorn_v):
+	Change arguments and return value to v16u8.
+	* gcc.target/loongarch/vector/lasx/lasx-builtin.c
+	(__lasx_xvorn_v): Change arguments and return value to v32u8.
+
 2024-11-20  David Malcolm  <dmalcolm@redhat.com>
 
 	Backported from master:

commit f66748d61dea45ee301e78afdbec7ec6563ff97e
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Sat Nov 23 12:51:32 2024 +0100

    AVR: target/117744 - Fix asm for partial clobber of address reg,
    
    gcc/
            PR target/117744
            * config/avr/avr.cc (out_movqi_r_mr): Fix code when a load
            only partially clobbers an address register due to
            changing the address register temporally to accommodate for
            faked addressing modes.
    
    (cherry picked from commit ee8e6784876aa050d2e01f54d1da4acf758b635a)

diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index f17438d9708..32b43be1bc3 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -4887,11 +4887,11 @@ avr_out_movqi_r_mr_reg_disp_tiny (rtx_insn *insn, rtx op[], int *plen)
       rtx base2 = all_regs_rtx[1 ^ REGNO (dest)];
 
       if (!reg_unused_after (insn, base2))
-	avr_asm_len ("mov __tmp_reg__,%0" , &base2, plen, 1);
+	avr_asm_len ("mov __tmp_reg__,%0", &base2, plen, 1);
       avr_asm_len (TINY_ADIW (%I1, %J1, %o1) CR_TAB
 		   "ld %0,%b1", op, plen, 3);
       if (!reg_unused_after (insn, base2))
-	avr_asm_len ("mov %0,__tmp_reg__" , &base2, plen, 1);
+	avr_asm_len ("mov %0,__tmp_reg__", &base2, plen, 1);
     }
 
   return "";
@@ -4918,40 +4918,66 @@ out_movqi_r_mr (rtx_insn *insn, rtx op[], int *plen)
     {
       /* memory access by reg+disp */
 
-      int disp = INTVAL (XEXP (x, 1));
-
       if (AVR_TINY)
 	return avr_out_movqi_r_mr_reg_disp_tiny (insn, op, plen);
 
+      if (plen)
+	*plen = 0;
+
+      int disp = INTVAL (XEXP (x, 1));
+      rtx base = XEXP (x, 0);
+      rtx base2 = all_regs_rtx[1 ^ REGNO (dest)];
+      bool partial_clobber = (reg_overlap_mentioned_p (dest, base)
+			      && ! reg_unused_after (insn, base2));
+
       if (disp - GET_MODE_SIZE (GET_MODE (src)) >= 63)
 	{
+	  // PR117744: The base register overlaps dest and is
+	  // only partially clobbered.
+	  if (partial_clobber)
+	    avr_asm_len ("mov __tmp_reg__,%0", &base2, plen, 1);
+
 	  if (REGNO (XEXP (x, 0)) != REG_Y)
 	    fatal_insn ("incorrect insn:",insn);
 
 	  if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
-	    return avr_asm_len ("adiw r28,%o1-63" CR_TAB
-				"ldd %0,Y+63"     CR_TAB
-				"sbiw r28,%o1-63", op, plen, -3);
+	    avr_asm_len ("adiw r28,%o1-63" CR_TAB
+			 "ldd %0,Y+63"     CR_TAB
+			 "sbiw r28,%o1-63", op, plen, 3);
+	  else
+	    avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
+			 "sbci r29,hi8(-%o1)" CR_TAB
+			 "ld %0,Y"            CR_TAB
+			 "subi r28,lo8(%o1)"  CR_TAB
+			 "sbci r29,hi8(%o1)", op, plen, 5);
 
-	  return avr_asm_len ("subi r28,lo8(-%o1)" CR_TAB
-			      "sbci r29,hi8(-%o1)" CR_TAB
-			      "ld %0,Y"            CR_TAB
-			      "subi r28,lo8(%o1)"  CR_TAB
-			      "sbci r29,hi8(%o1)", op, plen, -5);
+	  if (partial_clobber)
+	    avr_asm_len ("mov __tmp_reg__,%0", &base2, plen, 1);
+
+	  return "";
 	}
       else if (REGNO (XEXP (x, 0)) == REG_X)
 	{
 	  /* This is a paranoid case LEGITIMIZE_RELOAD_ADDRESS must exclude
 	     it but I have this situation with extremal optimizing options.  */
 
-	  avr_asm_len ("adiw r26,%o1" CR_TAB
-		       "ld %0,X", op, plen, -2);
+	  // PR117744: The base register overlaps dest and is
+	  // only partially clobbered.
+	  bool clobber_r26 = (partial_clobber
+			      && REGNO (base) == (REGNO (base) & ~1));
+	  if (partial_clobber
+	      && ! clobber_r26)
+	    avr_asm_len ("mov __tmp_reg__,%0", &base2, plen, 1);
 
-	  if (!reg_overlap_mentioned_p (dest, XEXP (x, 0))
-	      && !reg_unused_after (insn, XEXP (x, 0)))
-	    {
-	      avr_asm_len ("sbiw r26,%o1", op, plen, 1);
-	    }
+	  avr_asm_len ("adiw r26,%o1" CR_TAB
+		       "ld %0,X", op, plen, 2);
+
+	  if (clobber_r26)
+	    avr_asm_len ("subi r26,lo8(%o1)", op, plen, 1);
+	  else if (partial_clobber)
+	    avr_asm_len ("mov %0,__tmp_reg__", &base2, plen, 1);
+	  else if (! reg_unused_after (insn, base))
+	    avr_asm_len ("sbiw r26,%o1", op, plen, 1);
 
 	  return "";
 	}

commit 8a6b30148d76cf88148622898f1db6c756b21dde
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Sat Nov 23 13:16:15 2024 +0000

    [PATCH] PR modula2/115804 ICE during gimplification with new isfinite optab
    
    The calls to five m2 builtins have the incorrect return type.
    This was detected when adding isfinitedf2 optab to the s390
    backend which results in ICEs during gimplification in the
    gm2 testsuite.
    
    gcc/m2/ChangeLog:
    
            PR modula2/115804
            * gm2-gcc/m2builtins.cc (builtin_function_entry): Add GTY.
            (DoBuiltinMemCopy): Add rettype and use rettype in the call.
            (DoBuiltinAlloca): Ditto.
            (DoBuiltinIsfinite): Ditto.
            (DoBuiltinIsnan): Ditto.
            (m2builtins_BuiltInHugeVal): Ditto.
            (m2builtins_BuiltInHugeValShort): Ditto.
            (m2builtins_BuiltInHugeValLong): Ditto.
    
    Co-Authored-By: Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
    Co-Authored-By: Andrew Pinski  <quic_apinski@quicinc.com>
    
    (cherry picked from commit 4594d555aa551a9998fc921363c5f6ea50630d5c)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-gcc/m2builtins.cc b/gcc/m2/gm2-gcc/m2builtins.cc
index cfb4751e15a..31c344c4a59 100644
--- a/gcc/m2/gm2-gcc/m2builtins.cc
+++ b/gcc/m2/gm2-gcc/m2builtins.cc
@@ -138,7 +138,7 @@ struct builtin_function_entry
 /* Entries are added by examining gcc/builtins.def and copying those
    functions which can be applied to Modula-2.  */
 
-static struct builtin_function_entry list_of_builtins[] = {
+static struct GTY(()) builtin_function_entry list_of_builtins[] = {
   { "__builtin_alloca", BT_FN_PTR_SIZE, BUILT_IN_ALLOCA, BUILT_IN_NORMAL,
     "alloca", NULL, NULL, bf_extension_lib },
   { "__builtin_memcpy", BT_FN_TRAD_PTR_PTR_CONST_PTR_SIZE, BUILT_IN_MEMCPY,
@@ -1007,10 +1007,11 @@ static tree
 DoBuiltinMemCopy (location_t location, tree dest, tree src, tree bytes)
 {
   tree functype = TREE_TYPE (gm2_memcpy_node);
+  tree rettype = TREE_TYPE (functype);
   tree funcptr
       = build1 (ADDR_EXPR, build_pointer_type (functype), gm2_memcpy_node);
   tree call
-      = m2treelib_DoCall3 (location, ptr_type_node, funcptr, dest, src, bytes);
+      = m2treelib_DoCall3 (location, rettype, funcptr, dest, src, bytes);
   return call;
 }
 
@@ -1018,10 +1019,10 @@ static tree
 DoBuiltinAlloca (location_t location, tree bytes)
 {
   tree functype = TREE_TYPE (gm2_alloca_node);
+  tree rettype = TREE_TYPE (functype);
   tree funcptr
       = build1 (ADDR_EXPR, build_pointer_type (functype), gm2_alloca_node);
-  tree call = m2treelib_DoCall1 (location, ptr_type_node, funcptr, bytes);
-
+  tree call = m2treelib_DoCall1 (location, rettype, funcptr, bytes);
   return call;
 }
 
@@ -1029,10 +1030,10 @@ static tree
 DoBuiltinIsfinite (location_t location, tree value)
 {
   tree functype = TREE_TYPE (gm2_isfinite_node);
+  tree rettype = TREE_TYPE (functype);
   tree funcptr
       = build1 (ADDR_EXPR, build_pointer_type (functype), gm2_isfinite_node);
-  tree call = m2treelib_DoCall1 (location, ptr_type_node, funcptr, value);
-
+  tree call = m2treelib_DoCall1 (location, rettype, funcptr, value);
   return call;
 }
 
@@ -1040,10 +1041,10 @@ static tree
 DoBuiltinIsnan (location_t location, tree value)
 {
   tree functype = TREE_TYPE (gm2_isnan_node);
+  tree rettype = TREE_TYPE (functype);
   tree funcptr
       = build1 (ADDR_EXPR, build_pointer_type (functype), gm2_isnan_node);
-  tree call = m2treelib_DoCall1 (location, ptr_type_node, funcptr, value);
-
+  tree call = m2treelib_DoCall1 (location, rettype, funcptr, value);
   return call;
 }
 
@@ -1051,9 +1052,10 @@ tree
 m2builtins_BuiltInHugeVal (location_t location)
 {
   tree functype = TREE_TYPE (gm2_huge_val_node);
+  tree rettype = TREE_TYPE (functype);
   tree funcptr
       = build1 (ADDR_EXPR, build_pointer_type (functype), gm2_huge_val_node);
-  tree call = m2treelib_DoCall0 (location, ptr_type_node, funcptr);
+  tree call = m2treelib_DoCall0 (location, rettype, funcptr);
   return call;
 }
 
@@ -1061,9 +1063,10 @@ tree
 m2builtins_BuiltInHugeValShort (location_t location)
 {
   tree functype = TREE_TYPE (gm2_huge_valf_node);
+  tree rettype = TREE_TYPE (functype);
   tree funcptr
       = build1 (ADDR_EXPR, build_pointer_type (functype), gm2_huge_valf_node);
-  tree call = m2treelib_DoCall0 (location, ptr_type_node, funcptr);
+  tree call = m2treelib_DoCall0 (location, rettype, funcptr);
   return call;
 }
 
@@ -1071,9 +1074,10 @@ tree
 m2builtins_BuiltInHugeValLong (location_t location)
 {
   tree functype = TREE_TYPE (gm2_huge_vall_node);
+  tree rettype = TREE_TYPE (functype);
   tree funcptr
       = build1 (ADDR_EXPR, build_pointer_type (functype), gm2_huge_vall_node);
-  tree call = m2treelib_DoCall0 (location, ptr_type_node, funcptr);
+  tree call = m2treelib_DoCall0 (location, rettype, funcptr);
   return call;
 }
 

commit 8e3b5a74145c1db9c7af8c5037705b313c3efe11
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Sat Nov 23 14:27:06 2024 +0000

    [PATCH] PR modula2/115823 Wrong expansion of isnormal optab
    
    The bug fix changes gcc/m2/gm2-gcc/m2builtins.c:m2builtins_BuiltinExists
    to recognise both __builtin_<functionname> and functionname as a builtin.
    
    gcc/m2/ChangeLog:
    
            PR modula2/115823
            * gm2-gcc/m2builtins.cc (struct builtin_macro_definition): New
            field builtinname.
            (builtin_function_match): New function.
            (builtin_macro_match): Ditto.
            (m2builtins_BuiltinExists): Use builtin_function_match and
            builtin_macro_match.
            (lookup_builtin_macro): Use builtin_macro_match.
            (lookup_builtin_function): Use builtin_function_match.
            (define_builtin): Assign builtinname field.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/115823
            * gm2/builtins/run/pass/testalloa.mod: New test.
    
    (cherry picked from commit 2d1f68e7965795dc66db83bc7840ba7a23eeb01b)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-gcc/m2builtins.cc b/gcc/m2/gm2-gcc/m2builtins.cc
index 31c344c4a59..e3e55a69991 100644
--- a/gcc/m2/gm2-gcc/m2builtins.cc
+++ b/gcc/m2/gm2-gcc/m2builtins.cc
@@ -396,6 +396,7 @@ struct builtin_type_info
 struct GTY(()) builtin_macro_definition
 {
   const char *name;
+  const char *builtinname;
   tree function_node;
   tree return_node;
 };
@@ -911,6 +912,26 @@ target_support_exists (struct builtin_function_entry *fe)
     }
 }
 
+/* Return true if name matches the builtin name.  */
+
+static
+bool builtin_function_match (struct builtin_function_entry *fe,
+			     const char *name)
+{
+  return (strcmp (name, fe->name) == 0)
+    || (strcmp (name, fe->library_name) == 0);
+}
+
+/* Return true if name matches the builtin macro name.  */
+
+static
+bool builtin_macro_match (builtin_macro_definition bmd,
+			  const char *name)
+{
+  return (strcmp (bmd.name, name) == 0)
+    || (strcmp (bmd.builtinname, name) == 0);
+}
+
 
 /* BuiltinExists - returns TRUE if the builtin function, name, exists
    for this target architecture.  */
@@ -921,12 +942,11 @@ m2builtins_BuiltinExists (char *name)
   struct builtin_function_entry *fe;
 
   for (fe = &list_of_builtins[0]; fe->name != NULL; fe++)
-    if (strcmp (name, fe->name) == 0)
+    if (builtin_function_match (fe, name))
       return true;
-      // return target_support_exists (fe);
   int length = vec_safe_length (builtin_macros);
   for (int idx = 0; idx < length; idx++)
-    if (strcmp ((*builtin_macros)[idx].name, name) == 0)
+    if (builtin_macro_match ((*builtin_macros)[idx], name))
       return true;
   return false;
 }
@@ -939,7 +959,7 @@ lookup_builtin_macro (location_t location, char *name)
 {
   int length = vec_safe_length (builtin_macros);
   for (int idx = 0; idx < length; idx++)
-    if (strcmp ((*builtin_macros)[idx].name, name) == 0)
+    if (builtin_macro_match ((*builtin_macros)[idx], name))
       {
         tree functype = TREE_TYPE ((*builtin_macros)[idx].function_node);
         tree funcptr = build1 (ADDR_EXPR, build_pointer_type (functype),
@@ -965,7 +985,7 @@ lookup_builtin_function (location_t location, char *name)
   struct builtin_function_entry *fe;
 
   for (fe = &list_of_builtins[0]; fe->name != NULL; fe++)
-    if ((strcmp (name, fe->name) == 0) && target_support_exists (fe))
+    if (builtin_function_match (fe, name) && target_support_exists (fe))
       {
         tree functype = TREE_TYPE (fe->function_node);
         tree funcptr = build1 (ADDR_EXPR, build_pointer_type (functype),
@@ -1422,6 +1442,7 @@ define_builtin (enum built_in_function val, const char *name, tree prototype,
   set_call_expr_flags (decl, flags);
   set_builtin_decl (val, decl, true);
   bmd.name = name;
+  bmd.builtinname = libname;
   bmd.function_node = decl;
   bmd.return_node = TREE_TYPE (prototype);
   vec_safe_push (builtin_macros, bmd);
diff --git a/gcc/testsuite/gm2/builtins/run/pass/testalloa.mod b/gcc/testsuite/gm2/builtins/run/pass/testalloa.mod
new file mode 100644
index 00000000000..9d88dbae304
--- /dev/null
+++ b/gcc/testsuite/gm2/builtins/run/pass/testalloa.mod
@@ -0,0 +1,47 @@
+MODULE testalloa ;
+
+FROM libc IMPORT printf, exit ;
+FROM Builtins IMPORT alloca ;
+FROM SYSTEM IMPORT ADR, ADDRESS ;
+
+
+(*
+   assert -
+*)
+
+PROCEDURE assert (value: BOOLEAN; message: ARRAY OF CHAR) ;
+BEGIN
+   IF NOT value
+   THEN
+      printf ("test failed: %s\n", ADR (message)) ;
+      code := 1
+   END
+END assert ;
+
+
+(*
+   test -
+*)
+
+PROCEDURE test ;
+VAR
+   ptr: ADDRESS ;
+BEGIN
+   ptr := alloca (10) ;
+   assert (ptr # NIL, "alloca (10) # NIL")
+END test ;
+
+
+VAR
+   code: INTEGER ;
+BEGIN
+   code := 0 ;
+   test ;
+   IF code = 0
+   THEN
+      printf ("all tests pass\n")
+   ELSE
+      printf ("some tests failed\n")
+   END ;
+   exit (code)
+END testalloa.

commit b6b889309400c39c0d0988c3fb60e3d54f0c1738
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Sat Nov 23 15:27:45 2024 +0000

    [PATCH] modula2: bootstrap fix for string and vector headers.
    
    This patch fixes the include of headers (<string> and <vector>) which
    are included after GCC's system.h has been included.  It defines
    INCLUDE_STRING before including "system.h".  This allows gcc to
    bootstrap with Apple clang 15.
    
    gcc/m2/ChangeLog:
    
            * gm2-gcc/m2linemap.cc (INCLUDE_STRING): Define before
            include of gcc-consolidation.h.
            * gm2spec.cc (INCLUDE_STRING): Define before include of
            system.h.
            (INCLUDE_VECTOR): Ditto.
    
    (cherry picked from commit f4047a8614d2215e0d6acf071c521ac08ab1bbb2)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-gcc/m2linemap.cc b/gcc/m2/gm2-gcc/m2linemap.cc
index c916ba6155a..fcf589e840f 100644
--- a/gcc/m2/gm2-gcc/m2linemap.cc
+++ b/gcc/m2/gm2-gcc/m2linemap.cc
@@ -19,6 +19,7 @@ You should have received a copy of the GNU General Public License
 along with GNU Modula-2; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+#define INCLUDE_STRING
 #include "gcc-consolidation.h"
 
 /* Utilize some of the C build routines */
@@ -36,7 +37,6 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #define m2linemap_c
 #include "m2linemap.h"
 #include "m2color.h"
-#include <string>
 
 static int inFile = FALSE;
 
diff --git a/gcc/m2/gm2spec.cc b/gcc/m2/gm2spec.cc
index a4faf88027a..2a4dccf8b93 100644
--- a/gcc/m2/gm2spec.cc
+++ b/gcc/m2/gm2spec.cc
@@ -20,6 +20,8 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
+#define INCLUDE_STRING
+#define INCLUDE_VECTOR
 #include "system.h"
 #include "coretypes.h"
 #include "tm.h"
@@ -31,8 +33,6 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #include "gcc.h"
 #include "opts.h"
 #include "vec.h"
-#include <vector>
-#include <string>
 
 #include "m2/gm2config.h"
 

commit d65a599795df85fd0974bdfc1597cc3013b670f9
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Mon Nov 11 12:21:57 2024 +0000

    Fortran: Fix elemental array refs in SELECT TYPE [PR109345]
    
    2024-11-10  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/109345
            * trans-array.cc (gfc_get_array_span): Unlimited polymorphic
            expressions are now treated separately since the span need not
            be the same as the element size.
    
    gcc/testsuite/
            PR fortran/109345
            * gfortran.dg/character_workout_1.f90: Cut trailing whitespace.
            * gfortran.dg/pr109345.f90: New test.
    
    (cherry picked from commit e22d80d4f0f8d33f538c1a4bad07b2c819a6d55c)

diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index d5d9c730826..3994f4f71f0 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -961,6 +961,8 @@ tree
 gfc_get_array_span (tree desc, gfc_expr *expr)
 {
   tree tmp;
+  gfc_symbol *sym = expr->expr_type == EXPR_VARIABLE
+		    ? expr->symtree->n.sym : NULL;
 
   if (is_pointer_array (desc)
       || (get_CFI_desc (NULL, expr, &desc, NULL)
@@ -982,25 +984,43 @@ gfc_get_array_span (tree desc, gfc_expr *expr)
 	desc = build_fold_indirect_ref_loc (input_location, desc);
       tmp = gfc_conv_descriptor_span_get (desc);
     }
+  else if (UNLIMITED_POLY (expr)
+	   || (sym && UNLIMITED_POLY (sym)))
+    {
+      /* Treat unlimited polymorphic expressions separately because
+	 the element size need not be the same as the span.  Obtain
+	 the class container, which is simplified here by their being
+	 no component references.  */
+      if (sym && sym->attr.dummy)
+	{
+	  tmp = gfc_get_symbol_decl (sym);
+	  tmp = GFC_DECL_SAVED_DESCRIPTOR (tmp);
+	  if (INDIRECT_REF_P (tmp))
+	    tmp = TREE_OPERAND (tmp, 0);
+	}
+      else
+	{
+	  gcc_assert (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (desc)));
+	  tmp = TREE_OPERAND (desc, 0);
+	}
+      tmp = gfc_class_data_get (tmp);
+      tmp = gfc_conv_descriptor_span_get (tmp);
+    }
   else if (TREE_CODE (desc) == COMPONENT_REF
 	   && GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (desc))
 	   && GFC_CLASS_TYPE_P (TREE_TYPE (TREE_OPERAND (desc, 0))))
     {
-      /* The descriptor is a class _data field and so use the vtable
-	 size for the receiving span field.  */
-      tmp = gfc_get_vptr_from_expr (desc);
+      /* The descriptor is a class _data field. Use the vtable size
+	 since it is guaranteed to have been set and is always OK for
+	 class array descriptors that are not unlimited.  */
+      tmp = gfc_class_vptr_get (TREE_OPERAND (desc, 0));
       tmp = gfc_vptr_size_get (tmp);
     }
-  else if (expr && expr->expr_type == EXPR_VARIABLE
-	   && expr->symtree->n.sym->ts.type == BT_CLASS
-	   && expr->ref->type == REF_COMPONENT
-	   && expr->ref->next->type == REF_ARRAY
-	   && expr->ref->next->next == NULL
-	   && CLASS_DATA (expr->symtree->n.sym)->attr.dimension)
+  else if (sym && sym->ts.type == BT_CLASS && sym->attr.dummy)
     {
-      /* Dummys come in sometimes with the descriptor detached from
-	 the class field or declaration.  */
-      tmp = gfc_class_vptr_get (expr->symtree->n.sym->backend_decl);
+      /* Class dummys usually requires extraction from the saved
+	 descriptor, which gfc_class_vptr_get does for us.  */
+      tmp = gfc_class_vptr_get (sym->backend_decl);
       tmp = gfc_vptr_size_get (tmp);
     }
   else
diff --git a/gcc/testsuite/gfortran.dg/character_workout_1.f90 b/gcc/testsuite/gfortran.dg/character_workout_1.f90
index 98133b48960..8f8bdbf0069 100644
--- a/gcc/testsuite/gfortran.dg/character_workout_1.f90
+++ b/gcc/testsuite/gfortran.dg/character_workout_1.f90
@@ -1,7 +1,7 @@
 ! { dg-do run }
 !
 ! Tests fix for PR100120/100816/100818/100819/100821
-! 
+!
 
 program main_p
 
@@ -27,10 +27,10 @@ program main_p
   character(len=m, kind=k), pointer :: pm(:)
   character(len=e, kind=k), pointer :: pe(:)
   character(len=:, kind=k), pointer :: pd(:)
-  
+
   class(*),                 pointer :: su
   class(*),                 pointer :: pu(:)
-  
+
   integer :: i, j
 
   nullify(s1, sm, se, sd, su)
@@ -41,7 +41,7 @@ program main_p
       cm(i)(j:j) = char(i*m+j+c-m, kind=k)
     end do
   end do
-  
+
   s1 => c1(n)
   if(.not.associated(s1))              stop 1
   if(.not.associated(s1, c1(n)))       stop 2
diff --git a/gcc/testsuite/gfortran.dg/pr109345.f90 b/gcc/testsuite/gfortran.dg/pr109345.f90
new file mode 100644
index 00000000000..cff9aaa987a
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr109345.f90
@@ -0,0 +1,77 @@
+! { dg-do run }
+!
+! Test the fix for PR109345 in which array references in the SELECT TYPE
+! block below failed because the descriptor span was not set correctly.
+!
+! Contributed by Lauren Chilutti  <lchilutti@gmail.com>
+!
+program test
+  implicit none
+  type :: t
+    character(len=12, kind=4) :: str_array(4)
+    integer :: i
+  end type
+  character(len=12, kind=1), target :: str_array(4)
+  character(len=12, kind=4), target :: str_array4(4)
+  type(t) :: str_t (4)
+  integer :: i
+
+  str_array(:) = ""
+  str_array(1) = "12345678"
+  str_array(2) = "@ABCDEFG"
+! Original failing test
+  call foo (str_array)
+
+  str_array4(:) = ""
+  str_array4(1) = "12345678"
+  str_array4(2) = "@ABCDEFG"
+  str_t = [(t(str_array4, i), i = 1, 4)]
+! Test character(kind=4)
+  call foo (str_t(2)%str_array)
+! Test component references
+  call foo (str_t%str_array(1), .true.)
+! Test component references and that array offset is correct.
+  call foo (str_t(2:3)%i)
+
+contains
+  subroutine foo (var, flag)
+    class(*), intent(in) :: var(:)
+    integer(kind=4) :: i
+    logical, optional :: flag
+    select type (var)
+    type is (character(len=*, kind=1))
+       if (len (var) /= 12) stop 1
+! Scalarised array references worked.
+       if (any (var /= str_array)) stop 2
+       do i = 1, size(var)
+! Elemental array references did not work.
+          if (trim (var(i)) /= trim (str_array(i))) stop 3
+       enddo
+
+    type is (character(len=*, kind=4))
+       if (len (var) /= 12) stop 4
+! Scalarised array references worked.
+       if (any (var /= var(1))) then
+         if (any (var /= str_array4)) stop 5
+       else
+         if (any (var /= str_array4(1))) stop 6
+       end if
+       do i = 1, size(var)
+! Elemental array references did not work.
+          if (var(i) /= var(1)) then
+            if (present (flag)) stop 7
+            if (trim (var(i)) /= trim (str_array4(i))) stop 8
+          else
+            if (trim (var(i)) /= trim (str_array4(1))) stop 9
+          end if
+       enddo
+
+       type is (integer(kind=4))
+         if (any(var /= [2,3])) stop 10
+         do i = 1, size (var)
+           if (var(i) /= i+1) stop 11
+         end do
+    end select
+  end
+end
+

commit c53a8c0410b4858d1a1b628b9d950eee47bc345c
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Mon Nov 11 09:01:11 2024 +0000

    Fortran: Suppress invalid finalization of artificial variable [PR116388]
    
    2024-11-11  Tomas Trnka  <trnka@scm.com>
                Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/116388
            * class.cc (finalize_component): Leading underscore in the name
            of 'byte_stride' to suppress invalid finalization.
    
    gcc/testsuite/
            PR fortran/116388
            * gfortran.dg/finalize_58.f90: New test.
    
    (cherry picked from commit 42a2df0b7985b2a4732ba1c29726ac7aabd5eeae)

diff --git a/gcc/fortran/class.cc b/gcc/fortran/class.cc
index abe89630be3..0dda6a259b9 100644
--- a/gcc/fortran/class.cc
+++ b/gcc/fortran/class.cc
@@ -1138,8 +1138,9 @@ finalize_component (gfc_expr *expr, gfc_symbol *derived, gfc_component *comp,
 
       gcc_assert (c);
 
-      /* Set scalar argument for storage_size.  */
-      gfc_get_symbol ("comp_byte_stride", sub_ns, &byte_stride);
+      /* Set scalar argument for storage_size. A leading underscore in
+	 the name prevents an unwanted finalization.  */
+      gfc_get_symbol ("_comp_byte_stride", sub_ns, &byte_stride);
       byte_stride->ts = e->ts;
       byte_stride->attr.flavor = FL_VARIABLE;
       byte_stride->attr.value = 1;
diff --git a/gcc/testsuite/gfortran.dg/finalize_58.f90 b/gcc/testsuite/gfortran.dg/finalize_58.f90
new file mode 100644
index 00000000000..54960e6b030
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/finalize_58.f90
@@ -0,0 +1,77 @@
+! { dg-do run }
+!
+! Test fix for PR116388 in which an artificial variable in the finalization
+! wrapper was generating an invalid finalization.
+!
+! Contributed by Tomas Trnka  <trnka@scm.com>
+!
+module FinalizerTestModule
+
+   use, intrinsic :: ISO_C_BINDING
+
+   implicit none
+
+   type, public :: AType
+      type(C_ptr) :: cptr = C_null_ptr
+      logical     :: cptr_invalid = .true.
+      integer, allocatable :: x(:)
+   contains
+      final              :: FinalizerA
+   end type
+
+   type, public :: BType
+      type(C_ptr) :: cptr = C_null_ptr
+      type(AType) :: a
+   contains
+      procedure, public  :: New => NewB
+      final              :: FinalizerB
+   end type
+
+   type, public :: CType
+      type(BType) :: b
+   contains
+      procedure, public :: New => NewC
+   end type
+
+   integer :: final_A = 0
+   integer :: final_B = 0
+contains
+
+   impure elemental subroutine FinalizerA(self)
+      type(AType), intent(inout) :: self
+      final_A = final_A + 1
+      if (.not. self%cptr_invalid) stop 1
+   end subroutine
+
+   subroutine NewB(self)
+      class(BType),     intent(out)           :: self
+
+   end subroutine
+
+   impure elemental subroutine FinalizerB(self)
+      type(BType), intent(inout) :: self
+      final_B = final_B + 1
+      if (transfer (self%cptr, C_LONG_LONG) /= 0) stop 2
+   end subroutine
+
+   subroutine NewC(self, b)
+      class(CType),  intent(out) :: self
+      type(BType),   intent(in)  :: b
+
+      self%b = b
+   end subroutine
+
+end module
+
+program finalizing_uninitialized
+   use FinalizerTestModule
+   implicit none
+
+   type(BType) :: b
+   type(CType) :: c
+
+   call b%New()
+   call c%New(b)
+   if (final_A /= 3) stop 3
+   if (final_B /= 3) stop 4
+end program

commit 1e18a1ba272721583e8290b13a6e5cde2b8b2ad1
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Nov 24 00:24:53 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d7d6e491d6b..85d54e04889 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2024-11-23  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-11-23  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/117744
+	* config/avr/avr.cc (out_movqi_r_mr): Fix code when a load
+	only partially clobbers an address register due to
+	changing the address register temporally to accommodate for
+	faked addressing modes.
+
 2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f69d3317a0a..eba8e1cb787 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241123
+20241124
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 0104ca2f6bf..317946c57c5 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,23 @@
+2024-11-23  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-11  Tomas Trnka  <trnka@scm.com>
+		    Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/116388
+	* class.cc (finalize_component): Leading underscore in the name
+	of 'byte_stride' to suppress invalid finalization.
+
+2024-11-23  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-11  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/109345
+	* trans-array.cc (gfc_get_array_span): Unlimited polymorphic
+	expressions are now treated separately since the span need not
+	be the same as the element size.
+
 2024-11-22  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index cb3eb6b0fb7..eabaca49d6e 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,47 @@
+2024-11-23  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-12  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2-gcc/m2linemap.cc (INCLUDE_STRING): Define before
+	include of gcc-consolidation.h.
+	* gm2spec.cc (INCLUDE_STRING): Define before include of
+	system.h.
+	(INCLUDE_VECTOR): Ditto.
+
+2024-11-23  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-10  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115823
+	* gm2-gcc/m2builtins.cc (struct builtin_macro_definition): New
+	field builtinname.
+	(builtin_function_match): New function.
+	(builtin_macro_match): Ditto.
+	(m2builtins_BuiltinExists): Use builtin_function_match and
+	builtin_macro_match.
+	(lookup_builtin_macro): Use builtin_macro_match.
+	(lookup_builtin_function): Use builtin_function_match.
+	(define_builtin): Assign builtinname field.
+
+2024-11-23  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-07  Gaius Mulley  <gaiusmod2@gmail.com>
+		    Stefan Schulze Frielinghaus   <stefansf@linux.ibm.com>
+		    Andrew Pinski   <quic_apinski@quicinc.com>
+
+	PR modula2/115804
+	* gm2-gcc/m2builtins.cc (builtin_function_entry): Add GTY.
+	(DoBuiltinMemCopy): Add rettype and use rettype in the call.
+	(DoBuiltinAlloca): Ditto.
+	(DoBuiltinIsfinite): Ditto.
+	(DoBuiltinIsnan): Ditto.
+	(m2builtins_BuiltInHugeVal): Ditto.
+	(m2builtins_BuiltInHugeValShort): Ditto.
+	(m2builtins_BuiltInHugeValLong): Ditto.
+
 2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e0a97a92f59..d6391e72481 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,29 @@
+2024-11-23  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-11  Tomas Trnka  <trnka@scm.com>
+		    Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/116388
+	* gfortran.dg/finalize_58.f90: New test.
+
+2024-11-23  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-11  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/109345
+	* gfortran.dg/character_workout_1.f90: Cut trailing whitespace.
+	* gfortran.dg/pr109345.f90: New test.
+
+2024-11-23  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-10  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115823
+	* gm2/builtins/run/pass/testalloa.mod: New test.
+
 2024-11-22  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:

commit 911a870a6198a2fe50af8bbeb63de1dfaa90de0e
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Sun Nov 24 14:22:06 2024 +0000

    Fortran: Fix segfault in allocation of unlimited poly array [PR84869]
    
    2024-11-24  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran/ChangeLog
    
            PR fortran/84869
            * trans-expr.cc (trans_class_vptr_len_assignment): To access
            the '_len' field, 're' must be unlimited polymorphic.
    
    gcc/testsuite/
            PR fortran/84869
            * gfortran.dg/pr84869.f90: Comment out test of component refs.

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 80399fe3c4f..c9275e7ba82 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -10232,7 +10232,7 @@ trans_class_vptr_len_assignment (stmtblock_t *block, gfc_expr * le,
 	      vptr_expr = NULL;
 	      se.expr = gfc_class_vptr_get (GFC_DECL_SAVED_DESCRIPTOR (
 					     re->symtree->n.sym->backend_decl));
-	      if (to_len)
+	      if (to_len && UNLIMITED_POLY (re))
 		from_len = gfc_class_len_get (GFC_DECL_SAVED_DESCRIPTOR (
 					     re->symtree->n.sym->backend_decl));
 	    }
diff --git a/gcc/testsuite/gfortran.dg/pr84869.f90 b/gcc/testsuite/gfortran.dg/pr84869.f90
new file mode 100644
index 00000000000..fe40b620804
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr84869.f90
@@ -0,0 +1,25 @@
+! { dg-do compile }
+!
+! Test the fix for PR84869, where line 19 segfaulted.
+!
+! Contributed by Gerhard Steinmetz  <gscfq@t-online.de>
+!
+program p
+   type t
+     integer :: i
+   end type
+   call s
+contains
+   function f()
+      class(t), allocatable :: f(:)
+      f = [(t(i), i = 1, 10)]
+   end
+   subroutine s
+      class(*), allocatable :: z(:)
+      allocate (z, source = f ()) ! Segfault in gfc_class_len_get.
+      select type (z)
+        type is (t)
+          if (any (z%i /= [(i, i = 1,10)])) stop 1
+      end select
+   end
+end

commit dbb5d067f5e690c100ad18683943841db51ef69c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Nov 25 00:23:17 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index eba8e1cb787..19047096d89 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241124
+20241125
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 317946c57c5..ef30be5f020 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2024-11-24  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/84869
+	* trans-expr.cc (trans_class_vptr_len_assignment): To access
+	the '_len' field, 're' must be unlimited polymorphic.
+
 2024-11-23  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d6391e72481..f9dcae57a07 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2024-11-24  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/84869
+	* gfortran.dg/pr84869.f90: Comment out test of component refs.
+
 2024-11-23  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:

commit 4a63cc6de77481878ec31e1e6ac30e22c50b063a
Author: liuhongt <hongtao.liu@intel.com>
Date:   Thu Nov 21 23:57:38 2024 -0800

    Fix uninitialized operands[2] in vec_unpacks_hi_v4sf.
    
    It could cause weired spill in RA when register pressure is high.
    
    gcc/ChangeLog:
    
            PR target/117562
            * config/i386/sse.md (vec_unpacks_hi_v4sf): Initialize
            operands[2] with CONST0_RTX.
    
    (cherry picked from commit ba4cf2e296d8d5950c3d356fa6b6efcad00d0189)

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 436c1574d23..111455cfcb7 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -9667,7 +9667,10 @@
        (match_dup 2)
        (parallel [(const_int 0) (const_int 1)]))))]
   "TARGET_SSE2"
-  "operands[2] = gen_reg_rtx (V4SFmode);")
+{
+  operands[2] = gen_reg_rtx (V4SFmode);
+  emit_move_insn (operands[2], CONST0_RTX (V4SFmode));
+})
 
 (define_expand "vec_unpacks_hi_v8sf"
   [(set (match_dup 2)

commit 9214e3fdf914dd2b687f13980c39ac2db7b1565f
Author: Lewis Hyatt <lhyatt@gmail.com>
Date:   Mon Oct 14 17:59:46 2024 -0400

    libcpp: Fix ICE lexing invalid raw string in a deferred pragma [PR117118]
    
    The PR shows that we ICE after lexing an invalid unterminated raw string,
    because lex_raw_string() pops the main buffer unexpectedly. Resolve by
    handling this case the same way as for other directives.
    
    libcpp/ChangeLog:
            PR preprocessor/117118
            * lex.cc (lex_raw_string): Treat an unterminated raw string the same
            way for a deferred pragma as is done for other directives.
    
    gcc/testsuite/ChangeLog:
            PR preprocessor/117118
            * c-c++-common/raw-string-directive-3.c: New test.
            * c-c++-common/raw-string-directive-4.c: New test.

diff --git a/gcc/testsuite/c-c++-common/raw-string-directive-3.c b/gcc/testsuite/c-c++-common/raw-string-directive-3.c
new file mode 100644
index 00000000000..fa4fa979fce
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/raw-string-directive-3.c
@@ -0,0 +1,8 @@
+/* { dg-options "-std=gnu99" { target c } } */
+/* { dg-options "-std=c++11" { target c++ } } */
+
+/* { dg-error "invalid new-line in raw string delimiter" "" { target *-*-* } .+4 } */
+/* { dg-error "unterminated raw string" "" { target *-*-* } .+3 } */
+/* { dg-error "stray 'R' in program" "" { target *-*-* } .+2 } */
+/* { dg-warning "expected a string" "" { target *-*-* } .+1 } */
+#pragma message R""
diff --git a/gcc/testsuite/c-c++-common/raw-string-directive-4.c b/gcc/testsuite/c-c++-common/raw-string-directive-4.c
new file mode 100644
index 00000000000..935e3a1a991
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/raw-string-directive-4.c
@@ -0,0 +1,8 @@
+/* { dg-options "-std=gnu99" { target c } } */
+/* { dg-options "-std=c++11" { target c++ } } */
+
+/* { dg-error "invalid new-line in raw string delimiter" "" { target *-*-* } .+4 } */
+/* { dg-error "unterminated raw string" "" { target *-*-* } .+3 } */
+/* { dg-error "stray 'R' in program" "" { target *-*-* } .+2 } */
+/* { dg-warning "expected a string" "" { target *-*-* } .+1 } */
+_Pragma("message R\"\"")
diff --git a/libcpp/lex.cc b/libcpp/lex.cc
index c9e44e6cccc..a6c97e35f44 100644
--- a/libcpp/lex.cc
+++ b/libcpp/lex.cc
@@ -2768,7 +2768,8 @@ lex_raw_string (cpp_reader *pfile, cpp_token *token, const uchar *base)
 	{
 	  pos--;
 	  pfile->buffer->cur = pos;
-	  if ((pfile->state.in_directive || pfile->state.parsing_args)
+	  if ((pfile->state.in_directive || pfile->state.parsing_args
+	       || pfile->state.in_deferred_pragma)
 	      && pfile->buffer->next_line >= pfile->buffer->rlimit)
 	    {
 	      cpp_error_with_line (pfile, CPP_DL_ERROR, token->src_loc, 0,

commit 93a1cf32964510d06d931024e0fb3066fee97303
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Nov 26 00:24:56 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 85d54e04889..66b7b3d389f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2024-11-25  liuhongt  <hongtao.liu@intel.com>
+
+	Backported from master:
+	2024-11-25  liuhongt  <hongtao.liu@intel.com>
+
+	PR target/117562
+	* config/i386/sse.md (vec_unpacks_hi_v4sf): Initialize
+	operands[2] with CONST0_RTX.
+
 2024-11-23  Georg-Johann Lay  <avr@gjlay.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 19047096d89..866e998b5b7 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241125
+20241126
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f9dcae57a07..5a12afc9d54 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2024-11-25  Lewis Hyatt  <lhyatt@gmail.com>
+
+	PR preprocessor/117118
+	* c-c++-common/raw-string-directive-3.c: New test.
+	* c-c++-common/raw-string-directive-4.c: New test.
+
 2024-11-24  Paul Thomas  <pault@gcc.gnu.org>
 
 	PR fortran/84869
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 6a650999eb0..266ef87639e 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,9 @@
+2024-11-25  Lewis Hyatt  <lhyatt@gmail.com>
+
+	PR preprocessor/117118
+	* lex.cc (lex_raw_string): Treat an unterminated raw string the same
+	way for a deferred pragma as is done for other directives.
+
 2024-11-20  David Malcolm  <dmalcolm@redhat.com>
 
 	Backported from master:

commit 99d537558ebffb52cb8f784ab550b962958fedef
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 26 12:57:12 2024 +0000

    [PATCH] PR modula2/115957 ICE on procedure local const declaration
    
    An ICE would occur if a constant was declared using a variable term.
    This fix catches variable terms in constant expressions and generates
    an unrecoverable error.
    
    gcc/m2/ChangeLog:
    
            PR modula2/115957
            * gm2-compiler/M2StackAddress.mod (PopAddress): Detect tail=NIL
            and generate an internal error.
            * gm2-compiler/PCBuild.bnf (InConstParameter): New variable.
            (InConstBlock): New variable.
            (ErrorString): Rewrite using MetaErrorStringT0.
            (ErrorArrayAt): Rewrite using MetaErrorStringT0.
            (WarnMissingToken): Use MetaErrorStringT0.
            (CompilationUnit): Set seenError FALSE.
            (init): Initialize InConstParameter and InConstBlock.
            (ConstantDeclaration): Set InConstBlock.
            (ConstSetOrQualidentOrFunction): Call CheckNotVar if not
            InConstParameter and InConstBlock.
            (ConstActualParameters): Set InConstParameter TRUE and restore
            value at the end.
            * gm2-compiler/PCSymBuild.def (CheckNotVar): New procedure.
            Remove all unnecessary export qualified list.
            * gm2-compiler/PCSymBuild.mod (CheckNotVar): New procedure.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/115957
            * gm2/errors/fail/badconst.mod: New test.
            * gm2/pim/fail/tinyadr.mod: New test.
    
    (cherry picked from commit d9709fafb2c498ba2f4c920f953c9b78fa3bf114)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2StackAddress.mod b/gcc/m2/gm2-compiler/M2StackAddress.mod
index c7262dce3b3..ff65b42059c 100644
--- a/gcc/m2/gm2-compiler/M2StackAddress.mod
+++ b/gcc/m2/gm2-compiler/M2StackAddress.mod
@@ -157,9 +157,14 @@ BEGIN
             END ;
             DISPOSE(b)
          END ;
-         WITH s^.tail^ DO
-            DEC(items) ;
-            RETURN( bucket[items] )
+         IF s^.tail = NIL
+         THEN
+            InternalError ('stack underflow')
+         ELSE
+            WITH s^.tail^ DO
+               DEC(items) ;
+               RETURN( bucket[items] )
+            END
          END
       END
    END
diff --git a/gcc/m2/gm2-compiler/PCBuild.bnf b/gcc/m2/gm2-compiler/PCBuild.bnf
index 46f46af73ff..0e45b2e889c 100644
--- a/gcc/m2/gm2-compiler/PCBuild.bnf
+++ b/gcc/m2/gm2-compiler/PCBuild.bnf
@@ -47,7 +47,7 @@ IMPLEMENTATION MODULE PCBuild ;
 FROM M2LexBuf IMPORT currentstring, currenttoken, GetToken, InsertToken,
                      InsertTokenAndRewind, GetTokenNo, MakeVirtualTok ;
 
-FROM M2Error IMPORT ErrorStringAt, WriteFormat1, WriteFormat2 ;
+FROM M2MetaError IMPORT MetaErrorStringT0 ;
 FROM NameKey IMPORT NulName, Name, makekey ;
 FROM DynamicStrings IMPORT String, InitString, KillString, Mark, ConCat, ConCatChar ;
 FROM M2Printf IMPORT printf0 ;
@@ -102,7 +102,8 @@ FROM PCSymBuild IMPORT PCStartBuildProgModule,
                        PushConstType,
                        PushConstAttributeType,
                        PushConstAttributePairType,
-                       PushRType ;
+                       PushRType,
+                       CheckNotVar ;
 
 FROM SymbolTable IMPORT MakeGnuAsm, PutGnuAsmVolatile, PutGnuAsm, PutGnuAsmInput,
                         PutGnuAsmOutput, PutGnuAsmTrash, PutGnuAsmVolatile,
@@ -127,13 +128,15 @@ CONST
    Pass1     = FALSE ;
 
 VAR
-   WasNoError  : BOOLEAN ;
+   InConstParameter,
+   InConstBlock,
+   seenError       : BOOLEAN ;
 
 
 PROCEDURE ErrorString (s: String) ;
 BEGIN
-   ErrorStringAt (s, GetTokenNo ()) ;
-   WasNoError := FALSE
+   MetaErrorStringT0 (GetTokenNo (), s) ;
+   seenError := TRUE
 END ErrorString ;
 
 
@@ -145,7 +148,7 @@ END ErrorArray ;
 
 PROCEDURE ErrorArrayAt (a: ARRAY OF CHAR; tok: CARDINAL) ;
 BEGIN
-   ErrorStringAt (InitString(a), tok)
+   MetaErrorStringT0 (tok, InitString (a))
 END ErrorArrayAt ;
 
 
@@ -220,7 +223,7 @@ BEGIN
    str := DescribeStop(s0, s1, s2) ;
 
    str := ConCat(InitString('syntax error,'), Mark(str)) ;
-   ErrorStringAt(str, GetTokenNo())
+   MetaErrorStringT0 (GetTokenNo (), str)
 END WarnMissingToken ;
 
 
@@ -338,9 +341,9 @@ END Expect ;
 
 PROCEDURE CompilationUnit () : BOOLEAN ;
 BEGIN
-   WasNoError := TRUE ;
+   seenError := FALSE ;
    FileUnit(SetOfStop0{eoftok}, SetOfStop1{}, SetOfStop2{}) ;
-   RETURN( WasNoError )
+   RETURN NOT seenError
 END CompilationUnit ;
 
 
@@ -403,6 +406,9 @@ BEGIN
 END Real ;
 
 % module PCBuild end
+BEGIN
+   InConstParameter := FALSE ;
+   InConstBlock := FALSE
 END PCBuild.
 % rules
 error       'ErrorArray' 'ErrorString'
@@ -591,6 +597,7 @@ Qualident :=                                                               % VAR
            =:
 
 ConstantDeclaration :=                                                     % VAR top: CARDINAL ; %
+                                                                           % InConstBlock := TRUE %
                                                                            % top := Top() %
                                                                            % PushAutoOn %
                        ( Ident "="                                         % StartDesConst %
@@ -600,6 +607,7 @@ ConstantDeclaration :=                                                     % VAR
                                                                            % EndDesConst %
                                                                            % PopAuto %
                                                                            % Assert(top=Top()) %
+                                                                           % InConstBlock := FALSE %
                      =:
 
 ConstExpression :=                                                         % VAR top: CARDINAL ; %
@@ -706,7 +714,10 @@ ConstSetOrQualidentOrFunction :=                                           % Pus
                                                                            % VAR tokpos: CARDINAL ; %
                                                                            % tokpos := GetTokenNo () %
                                  (
-                                   PushQualident
+                                   PushQualident                           % IF (NOT InConstParameter) AND InConstBlock
+                                                                             THEN
+                                                                                CheckNotVar (tokpos)
+                                                                             END %
                                    ( ConstructorOrConstActualParameters |  % PushConstType %
                                                                            % PopNothing %
                                                                           )
@@ -714,8 +725,13 @@ ConstSetOrQualidentOrFunction :=                                           % Pus
                                      Constructor )                         % PopAuto %
                                =:
 
-ConstActualParameters :=                                                   % PushT(0) %
-                         "(" [ ConstExpList ] ")" =:
+ConstActualParameters :=                                                   % VAR oldConstParameter: BOOLEAN ; %
+                                                                           % oldConstParameter := InConstParameter %
+                                                                           % InConstParameter := TRUE %
+                                                                           % PushT(0) %
+                         "(" [ ConstExpList ] ")"
+                                                                           % InConstParameter := oldConstParameter %
+                         =:
 
 ConstExpList :=                                                            % VAR n: CARDINAL ; %
                 ConstExpression                                            % PopT(n) %
diff --git a/gcc/m2/gm2-compiler/PCSymBuild.def b/gcc/m2/gm2-compiler/PCSymBuild.def
index 9ce07adbc61..c130135d743 100644
--- a/gcc/m2/gm2-compiler/PCSymBuild.def
+++ b/gcc/m2/gm2-compiler/PCSymBuild.def
@@ -29,38 +29,12 @@ DEFINITION MODULE PCSymBuild ;
                 the import/export symbols and assigns types to constructors.
 *)
 
-EXPORT QUALIFIED PCStartBuildDefModule,
-                 PCEndBuildDefModule,
-                 PCStartBuildImpModule,
-                 PCEndBuildImpModule,
-                 PCStartBuildProgModule,
-                 PCEndBuildProgModule,
-                 PCStartBuildInnerModule,
-                 PCEndBuildInnerModule,
-                 PCBuildProcedureHeading,
-                 PCStartBuildProcedure,
-                 PCEndBuildProcedure,
-                 BuildNulName,
-                 BuildConst,
-                 PCBuildImportOuterModule,
-                 PCBuildImportInnerModule,
-                 StartDesConst,
-                 EndDesConst,
-                 BuildRelationConst,
-                 BuildUnaryConst,
-                 BuildBinaryConst,
-                 PushInConstructor,
-                 PopInConstructor,
-                 SkipConst,
-                 PushConstType,
-                 PushConstAttributeType,
-                 PushConstAttributePairType,
-                 PushConstructorCastType,
-                 PushRType,
-                 PushConstFunctionType,
-                 PushIntegerType,
-                 PushStringType,
-                 ResolveConstTypes ;
+
+(*
+   CheckNotVar - checks to see that the top of stack is not a variable.
+*)
+
+PROCEDURE CheckNotVar (tok: CARDINAL) ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/PCSymBuild.mod b/gcc/m2/gm2-compiler/PCSymBuild.mod
index 6d615b9a311..fd1fd075bbe 100644
--- a/gcc/m2/gm2-compiler/PCSymBuild.mod
+++ b/gcc/m2/gm2-compiler/PCSymBuild.mod
@@ -78,7 +78,7 @@ FROM SymbolTable IMPORT NulSym, ModeOfAddr,
                         IsParameterVar, PutProcTypeParam,
                         PutProcTypeVarParam, IsParameterUnbounded,
                         PutFunction, PutProcTypeParam,
-                        GetType,
+                        GetType, IsVar,
                         IsAModula2Type, GetDeclaredMod ;
 
 FROM M2Batch IMPORT MakeDefinitionSource,
@@ -192,6 +192,22 @@ BEGIN
 END GetSkippedType ;
 
 
+(*
+   CheckNotVar - checks to see that the top of stack is not a variable.
+*)
+
+PROCEDURE CheckNotVar (tok: CARDINAL) ;
+VAR
+   const: CARDINAL ;
+BEGIN
+   const := OperandT (1) ;
+   IF (const # NulSym) AND IsVar (const)
+   THEN
+      MetaErrorT1 (tok, 'not expecting a variable {%Aad} as a term in a constant expression', const)
+   END
+END CheckNotVar ;
+
+
 (*
    StartBuildDefinitionModule - Creates a definition module and starts
                                 a new scope.
diff --git a/gcc/testsuite/gm2/errors/fail/badconst.mod b/gcc/testsuite/gm2/errors/fail/badconst.mod
new file mode 100644
index 00000000000..1820b6f3386
--- /dev/null
+++ b/gcc/testsuite/gm2/errors/fail/badconst.mod
@@ -0,0 +1,19 @@
+MODULE badconst ;
+
+IMPORT SYSTEM;
+
+TYPE
+   T = POINTER TO CONS;
+   CONS = RECORD
+             CAR: SYSTEM.ADDRESS;
+             CDR: T;
+          END ;
+
+PROCEDURE POP(VAR LST: T): SYSTEM.ADDRESS;
+CONST CAR = LST.CAR;
+BEGIN
+   RETURN NIL;
+END POP;
+
+BEGIN
+END badconst.
diff --git a/gcc/testsuite/gm2/pim/fail/tinyadr.mod b/gcc/testsuite/gm2/pim/fail/tinyadr.mod
new file mode 100644
index 00000000000..2f79469f0ca
--- /dev/null
+++ b/gcc/testsuite/gm2/pim/fail/tinyadr.mod
@@ -0,0 +1,12 @@
+MODULE tinyadr ;
+
+FROM SYSTEM IMPORT ADR ;
+
+CONST
+   foo = ADR (bar) ;
+
+VAR
+   bar: CARDINAL ;
+BEGIN
+
+END tinyadr.

commit bcb8f401101455e1e6098bb9808d2059f4425de7
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 26 13:04:05 2024 +0000

    [PATCH] PR modula2/116048 ICE when encountering wrong kind of qualident
    
    Following on from PR-115957 further ICEs can be generated by using the
    wrong kind of qualident symbol.  For example using a variable instead of
    a type or using a type instead of a const.  This fix tracks the expected
    qualident kind state when parsing const, type and variable declarations.
    If the error is unrecoverable then a detailed message explaining the
    context of the qualident (and why the seen qualident is wrong) is
    generated.
    
    gcc/m2/ChangeLog:
    
            PR modula2/116048
            * Make-lang.in (GM2-COMP-BOOT-DEFS): Add M2StateCheck.def.
            (GM2-COMP-BOOT-MODS): Add M2StateCheck.mod.
            (GM2-COMP-DEFS): Add M2StateCheck.def.
            (GM2-COMP-MODS): Add M2StateCheck.mod.
            * gm2-compiler/M2Quads.mod (StartBuildWith): Generate
            unrecoverable error is the qualident type is NulSym.
            Replace MetaError1 with MetaErrorT1 and position the error
            to the qualident.
            * gm2-compiler/P3Build.bnf (M2StateCheck): Import procedures.
            (seenError): New variable.
            (WasNoError): Remove variable.
            (BlockState): New variable.
            (ErrorString): Rewrite using seenError.
            (CompilationUnit): Ditto.
            (QualidentCheck): New rule.
            (ConstantDeclaration): Bookend with InclConst and ExclConst.
            (Constructor): Add InclConstructor, ExclConstructor and call
            CheckQualident.
            (ConstActualParameters): Call PushState, PopState, InclConstFunc
            and CheckQualident.
            (TypeDeclaration): Bookend with InclType and ExclType.
            (SimpleType): Call QualidentCheck.
            (CaseTag): Ditto.
            (OptReturnType): Ditto.
            (VariableDeclaration): Bookend with InclVar and ExclVar.
            (Designator): Call QualidentCheck.
            (Formal;Type): Ditto.
            * gm2-compiler/PCBuild.bnf (M2StateCheck): Import procedures.
            (ConstantDeclaration): Rewrite using InclConst and ExclConst.
            (Constructor): Bookend with InclConstructor and ExclConstructor.
            Call CheckQualident.
            (ConstructorOrConstActualParameters): Rewrite and cal
            l CheckQualident.
            (ConstActualParameters): Bookend with PushState PopState.
            Call InclConstFunc and CheckQualident.
            * gm2-gcc/init.cc (_M2_M2StateCheck_init): New declaration.
            (_M2_P3Build_init): New declaration.
            (init_PerCompilationInit): Call _M2_M2StateCheck_init and
            _M2_P3Build_init.
            * gm2-compiler/M2StateCheck.def: New file.
            * gm2-compiler/M2StateCheck.mod: New file.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/116048
            * gm2/errors/fail/errors-fail.exp: Remove -Wstudents
            and add -Wuninit-variable-checking=all.
            Replace gm2_init_pim with gm2_init_iso.
            * gm2/errors/fail/testfio.mod: Modify test code to
            provoke an error in the first basic block.
            * gm2/errors/fail/testparam.mod: Ditto.
            * gm2/errors/fail/array1.mod: Ditto.
            * gm2/errors/fail/badtype.mod: New test.
            * gm2/errors/fail/badvar.mod: New test.
    
    (cherry picked from commit 7f8064ff0e2ac90c5bb6c30cc61acc5a28ebbe4c)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index daa7ef6747a..2bd60ca2939 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -808,6 +808,7 @@ GM2-COMP-BOOT-DEFS = \
    M2Size.def \
    M2StackAddress.def \
    M2StackWord.def \
+   M2StateCheck.def \
    M2Students.def \
    M2Swig.def \
    M2SymInit.def \
@@ -882,6 +883,7 @@ GM2-COMP-BOOT-MODS = \
    M2Size.mod \
    M2StackAddress.mod \
    M2StackWord.mod \
+   M2StateCheck.mod \
    M2Students.mod \
    M2Swig.mod \
    M2SymInit.mod \
@@ -1090,6 +1092,7 @@ GM2-COMP-DEFS = \
    M2Size.def \
    M2StackAddress.def \
    M2StackWord.def \
+   M2StateCheck.def \
    M2Students.def \
    M2Swig.def \
    M2SymInit.def \
@@ -1161,6 +1164,7 @@ GM2-COMP-MODS = \
    M2Size.mod \
    M2StackAddress.mod \
    M2StackWord.mod \
+   M2StateCheck.mod \
    M2Students.mod \
    M2Swig.mod \
    M2SymInit.mod \
diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index 6476806ac35..6230bf7d139 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -12068,31 +12068,34 @@ BEGIN
    PopTFtok (Sym, Type, tok) ;
    DebugLocation (tok, "expression") ;
    Type := SkipType (Type) ;
-
-   Ref := MakeTemporary (tok, LeftValue) ;
-   PutVar (Ref, Type) ;
-   IF GetMode (Sym) = LeftValue
+   IF Type = NulSym
    THEN
-      (* Copy LeftValue.  *)
-      GenQuadO (tok, BecomesOp, Ref, NulSym, Sym, TRUE)
+      MetaErrorT1 (tok,
+                   '{%1Aa} {%1d} has a no type, the {%kWITH} statement requires a variable or parameter of a {%kRECORD} type',
+                   Sym)
    ELSE
-      (* Calculate the address of Sym.  *)
-      GenQuadO (tok, AddrOp, Ref, NulSym, Sym, TRUE)
-   END ;
+      Ref := MakeTemporary (tok, LeftValue) ;
+      PutVar (Ref, Type) ;
+      IF GetMode (Sym) = LeftValue
+      THEN
+         (* Copy LeftValue.  *)
+         GenQuadO (tok, BecomesOp, Ref, NulSym, Sym, TRUE)
+      ELSE
+         (* Calculate the address of Sym.  *)
+         GenQuadO (tok, AddrOp, Ref, NulSym, Sym, TRUE)
+      END ;
 
-   PushWith (Sym, Type, Ref, tok) ;
-   DebugLocation (tok, "with ref") ;
-   IF Type = NulSym
-   THEN
-      MetaError1 ('{%1Ea} {%1d} has a no type, the {%kWITH} statement requires a variable or parameter of a {%kRECORD} type',
-                  Sym)
-   ELSIF NOT IsRecord(Type)
-   THEN
-      MetaError1 ('the {%kWITH} statement requires that {%1Ea} {%1d} be of a {%kRECORD} {%1tsa:type rather than {%1tsa}}',
-		   Sym)
+      PushWith (Sym, Type, Ref, tok) ;
+      DebugLocation (tok, "with ref") ;
+      IF NOT IsRecord(Type)
+      THEN
+         MetaErrorT1 (tok,
+                      'the {%kWITH} statement requires that {%1Ea} {%1d} be of a {%kRECORD} {%1tsa:type rather than {%1tsa}}',
+                      Sym)
+      END ;
+      StartScope (Type)
    END ;
-   StartScope (Type)
- ; DisplayStack ;
+   DisplayStack ;
 END StartBuildWith ;
 
 
diff --git a/gcc/m2/gm2-compiler/M2StateCheck.def b/gcc/m2/gm2-compiler/M2StateCheck.def
new file mode 100644
index 00000000000..ca597c2d87f
--- /dev/null
+++ b/gcc/m2/gm2-compiler/M2StateCheck.def
@@ -0,0 +1,154 @@
+(* M2StateCheck.def provide state check tracking for declarations.
+
+Copyright (C) 2024 Free Software Foundation, Inc.
+Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+
+This file is part of GNU Modula-2.
+
+GNU Modula-2 is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Modula-2 is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Modula-2; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
+
+DEFINITION MODULE M2StateCheck ;
+
+(* This module provides state tracking for VAR, TYPE and CONST
+   declarations.  It should be used by any pass creating
+   symbols in these blocks and it will detect a constant
+   being created from a variable, type from a variable,
+   variable from a constant (instead of type) etc.  *)
+
+TYPE
+   StateCheck ;
+
+
+(*
+   InitState - returns a new initialized StateCheck.
+*)
+
+PROCEDURE InitState () : StateCheck ;
+
+
+(*
+   KillState - destructor for StateCheck.
+*)
+
+PROCEDURE KillState (VAR s: StateCheck) ;
+
+
+(*
+   PushState - duplicates the StateCheck s and chains the new copy to s.
+               Return the copy.
+*)
+
+PROCEDURE PushState (VAR s: StateCheck) ;
+
+
+(*
+   PopState - pops the current state.
+*)
+
+PROCEDURE PopState (VAR s: StateCheck) ;
+
+
+(*
+   InclVar - s := s + {var}.
+*)
+
+PROCEDURE InclVar (s: StateCheck) ;
+
+
+(*
+   InclConst - s := s + {const}.
+*)
+
+PROCEDURE InclConst (s: StateCheck) ;
+
+
+(*
+   InclType - s := s + {type}.
+*)
+
+PROCEDURE InclType (s: StateCheck) ;
+
+
+(*
+   InclConstFunc - s := s + {constfunc}.
+*)
+
+PROCEDURE InclConstFunc (s: StateCheck) ;
+
+
+(*
+   InclVarParam - s := s + {varparam}.
+*)
+
+PROCEDURE InclVarParam (s: StateCheck) ;
+
+
+(*
+   InclConstructor - s := s + {constructor}.
+*)
+
+PROCEDURE InclConstructor (s: StateCheck) ;
+
+
+(*
+   ExclVar - s := s + {var}.
+*)
+
+PROCEDURE ExclVar (s: StateCheck) ;
+
+
+(*
+   ExclConst - s := s + {const}.
+*)
+
+PROCEDURE ExclConst (s: StateCheck) ;
+
+
+(*
+   ExclType - s := s + {type}.
+*)
+
+PROCEDURE ExclType (s: StateCheck) ;
+
+
+(*
+   ExclConstFunc - s := s + {constfunc}.
+*)
+
+PROCEDURE ExclConstFunc (s: StateCheck) ;
+
+
+(*
+   ExclVarParam - s := s + {varparam}.
+*)
+
+PROCEDURE ExclVarParam (s: StateCheck) ;
+
+
+(*
+   ExclConstructor - s := s - {varparam}.
+*)
+
+PROCEDURE ExclConstructor (s: StateCheck) ;
+
+
+(*
+   CheckQualident - checks to see that qualident sym is allowed in the state s.
+*)
+
+PROCEDURE CheckQualident (tok: CARDINAL; s: StateCheck; sym: CARDINAL) ;
+
+
+END M2StateCheck.
diff --git a/gcc/m2/gm2-compiler/M2StateCheck.mod b/gcc/m2/gm2-compiler/M2StateCheck.mod
new file mode 100644
index 00000000000..e53cb174474
--- /dev/null
+++ b/gcc/m2/gm2-compiler/M2StateCheck.mod
@@ -0,0 +1,344 @@
+(* M2StateCheck.mod provide state check tracking for declarations.
+
+Copyright (C) 2024 Free Software Foundation, Inc.
+Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+
+This file is part of GNU Modula-2.
+
+GNU Modula-2 is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Modula-2 is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Modula-2; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
+
+IMPLEMENTATION MODULE M2StateCheck ;
+
+FROM Storage IMPORT ALLOCATE ;
+FROM M2MetaError IMPORT MetaErrorStringT1 ;
+FROM DynamicStrings IMPORT String, InitString, ConCat, Mark ;
+FROM SymbolTable IMPORT NulSym, IsType, IsVar, IsConst ;
+
+
+TYPE
+   StateCheck = POINTER TO RECORD
+                              state: StateSet ;
+                              stack,
+                              next : StateCheck ;
+                           END ;
+
+   State = (const, var, type, constfunc, varparam, constructor) ;
+
+   StateSet = SET OF State ;
+
+VAR
+   FreeList: StateCheck ;
+
+
+(*
+   InitState - returns a new initialized StateCheck.
+*)
+
+PROCEDURE InitState () : StateCheck ;
+VAR
+   s: StateCheck ;
+BEGIN
+   s := New () ;
+   WITH s^ DO
+      state := StateSet {} ;
+      stack := NIL ;
+      next := NIL
+   END ;
+   RETURN s
+END InitState ;
+
+
+(*
+   New - returns an uninitialized StateCheck.
+*)
+
+PROCEDURE New () : StateCheck ;
+VAR
+   s: StateCheck ;
+BEGIN
+   IF FreeList = NIL
+   THEN
+      NEW (s)
+   ELSE
+      s := FreeList ;
+      FreeList := FreeList^.next
+   END ;
+   RETURN s
+END New ;
+
+
+(*
+   PushState - duplicates the StateCheck s and chains the new copy to s.
+               Return the copy.
+*)
+
+PROCEDURE PushState (VAR s: StateCheck) ;
+VAR
+   copy: StateCheck ;
+BEGIN
+   copy := InitState () ;
+   copy^.state := s^.state ;
+   copy^.stack := s ;
+   s := copy
+END PushState ;
+
+
+(*
+   KillState - destructor for StateCheck.
+*)
+
+PROCEDURE KillState (VAR s: StateCheck) ;
+VAR
+   t: StateCheck ;
+BEGIN
+   WHILE s^.stack # NIL DO
+      t := s^.stack ;
+      s^.stack := t^.stack ;
+      Dispose (t)
+   END ;
+   Dispose (s)
+END KillState ;
+
+
+(*
+   Dispose - place s onto the FreeList and set s to NIL.
+*)
+
+PROCEDURE Dispose (VAR s: StateCheck) ;
+BEGIN
+   s^.next := FreeList ;
+   FreeList := s
+END Dispose ;
+
+
+(*
+   InclVar - s := s + {var}.
+*)
+
+PROCEDURE InclVar (s: StateCheck) ;
+BEGIN
+   INCL (s^.state, var)
+END InclVar ;
+
+
+(*
+   InclConst - s := s + {const}.
+*)
+
+PROCEDURE InclConst (s: StateCheck) ;
+BEGIN
+   INCL (s^.state, const)
+END InclConst ;
+
+
+(*
+   InclType - s := s + {type}.
+*)
+
+PROCEDURE InclType (s: StateCheck) ;
+BEGIN
+   INCL (s^.state, type)
+END InclType ;
+
+
+(*
+   InclConstFunc - s := s + {constfunc}.
+*)
+
+PROCEDURE InclConstFunc (s: StateCheck) ;
+BEGIN
+   INCL (s^.state, constfunc)
+END InclConstFunc ;
+
+
+(*
+   InclVarParam - s := s + {varparam}.
+*)
+
+PROCEDURE InclVarParam (s: StateCheck) ;
+BEGIN
+   INCL (s^.state, varparam)
+END InclVarParam ;
+
+
+(*
+   InclConstructor - s := s + {constructor}.
+*)
+
+PROCEDURE InclConstructor (s: StateCheck) ;
+BEGIN
+   INCL (s^.state, constructor)
+END InclConstructor ;
+
+
+(*
+   ExclVar - s := s - {var}.
+*)
+
+PROCEDURE ExclVar (s: StateCheck) ;
+BEGIN
+   EXCL (s^.state, var)
+END ExclVar ;
+
+
+(*
+   ExclConst - s := s - {const}.
+*)
+
+PROCEDURE ExclConst (s: StateCheck) ;
+BEGIN
+   EXCL (s^.state, const)
+END ExclConst ;
+
+
+(*
+   ExclType - s := s - {type}.
+*)
+
+PROCEDURE ExclType (s: StateCheck) ;
+BEGIN
+   EXCL (s^.state, type)
+END ExclType ;
+
+
+(*
+   ExclConstFunc - s := s - {constfunc}.
+*)
+
+PROCEDURE ExclConstFunc (s: StateCheck) ;
+BEGIN
+   EXCL (s^.state, constfunc)
+END ExclConstFunc ;
+
+
+(*
+   ExclVarParam - s := s - {varparam}.
+*)
+
+PROCEDURE ExclVarParam (s: StateCheck) ;
+BEGIN
+   EXCL (s^.state, varparam)
+END ExclVarParam ;
+
+
+(*
+   ExclConstructor - s := s - {varparam}.
+*)
+
+PROCEDURE ExclConstructor (s: StateCheck) ;
+BEGIN
+   EXCL (s^.state, constructor)
+END ExclConstructor ;
+
+
+(*
+   PopState - pops the current state.
+*)
+
+PROCEDURE PopState (VAR s: StateCheck) ;
+VAR
+   t: StateCheck ;
+BEGIN
+   t := s ;
+   s := s^.stack ;
+   t^.stack := NIL ;
+   Dispose (t)
+END PopState ;
+
+
+(*
+   CheckQualident - checks to see that qualident sym is allowed in the state s.
+*)
+
+PROCEDURE CheckQualident (tok: CARDINAL; s: StateCheck; sym: CARDINAL) ;
+BEGIN
+   IF sym = NulSym
+   THEN
+      (* Ignore.  *)
+   ELSIF IsType (sym)
+   THEN
+      IF (constfunc IN s^.state) OR (constructor IN s^.state)
+      THEN
+         (* Ok.  *)
+      ELSIF const IN s^.state
+      THEN
+         GenerateError (tok, s, sym)
+      END
+   ELSIF IsConst (sym)
+   THEN
+      IF (constfunc IN s^.state) OR (constructor IN s^.state)
+      THEN
+         (* Ok.  *)
+      ELSIF (var IN s^.state) OR (type IN s^.state)
+      THEN
+         GenerateError (tok, s, sym)
+      END
+   ELSIF IsVar (sym)
+   THEN
+      IF constfunc IN s^.state
+      THEN
+         (* Ok.  *)
+      ELSIF (const IN s^.state) OR (type IN s^.state) OR (var IN s^.state)
+      THEN
+         GenerateError (tok, s, sym)
+      END
+   END
+END CheckQualident ;
+
+
+(*
+   GenerateError - generates an unrecoverable error string based on the state and sym.
+*)
+
+PROCEDURE GenerateError (tok: CARDINAL; s: StateCheck; sym: CARDINAL) ;
+VAR
+   str: String ;
+BEGIN
+   str := InitString ('not expecting a {%1Ad} {%1a: }in a ') ;
+   IF const IN s^.state
+   THEN
+      str := ConCat (str, Mark (InitString ('{%kCONST} block')))
+   ELSIF type IN s^.state
+   THEN
+      str := ConCat (str, Mark (InitString ('{%kTYPE} block')))
+   ELSIF var IN s^.state
+   THEN
+      str := ConCat (str, Mark (InitString ('{%kVAR} block')))
+   END ;
+   IF constfunc IN s^.state
+   THEN
+      str := ConCat (str, Mark (InitString (' and within a constant procedure function actual parameter')))
+   END ;
+   IF constructor IN s^.state
+   THEN
+      str := ConCat (str, Mark (InitString (' and within a constructor')))
+   END ;
+   MetaErrorStringT1 (tok, str, sym)
+END GenerateError ;
+
+
+(*
+   init - initialize the global variables in the module.
+*)
+
+PROCEDURE init ;
+BEGIN
+   FreeList := NIL
+END init ;
+
+
+BEGIN
+   init
+END M2StateCheck.
diff --git a/gcc/m2/gm2-compiler/P3Build.bnf b/gcc/m2/gm2-compiler/P3Build.bnf
index 0cec32914fc..f48b508ba1d 100644
--- a/gcc/m2/gm2-compiler/P3Build.bnf
+++ b/gcc/m2/gm2-compiler/P3Build.bnf
@@ -132,6 +132,7 @@ FROM M2Quads IMPORT PushT, PopT, PushTF, PopTF, PopNothing, Annotate,
                     PushInConstExpression, PopInConstExpression,
                     PushInConstParameters, PopInConstParameters, IsInConstParameters,
                     BuildDefaultFieldAlignment, BuildPragmaField,
+                    OperandT, OperandTok,
                     IsAutoPushOn, PushAutoOff, PushAutoOn, PopAuto ;
 
 FROM P3SymBuild IMPORT P3StartBuildProgModule,
@@ -177,6 +178,14 @@ FROM M2Batch IMPORT IsModuleKnown ;
 
 FROM M2CaseList IMPORT BeginCaseList, EndCaseList ;
 
+FROM M2StateCheck IMPORT StateCheck,
+                         InitState, PushState, PopState,
+                         InclConst, ExclConst,
+                         InclType, ExclType,
+                         InclVar, ExclVar,
+                         InclConstructor, ExclConstructor,
+                         InclConstFunc, CheckQualident ;
+
 IMPORT M2Error ;
 
 CONST
@@ -184,19 +193,20 @@ CONST
    DebugAsm  = FALSE ;
 
 VAR
-   WasNoError: BOOLEAN ;
+   seenError : BOOLEAN ;
+   BlockState: StateCheck ;
 
 
 PROCEDURE ErrorString (s: String) ;
 BEGIN
-   ErrorStringAt(s, GetTokenNo ()) ;
-   WasNoError := FALSE
+   ErrorStringAt (s, GetTokenNo ()) ;
+   seenError := TRUE
 END ErrorString ;
 
 
 PROCEDURE ErrorArray (a: ARRAY OF CHAR) ;
 BEGIN
-   ErrorString(InitString(a))
+   ErrorString (InitString (a))
 END ErrorArray ;
 
 
@@ -391,9 +401,9 @@ END Expect ;
 
 PROCEDURE CompilationUnit () : BOOLEAN ;
 BEGIN
-   WasNoError := TRUE ;
+   seenError := FALSE ;
    FileUnit(SetOfStop0{eoftok}, SetOfStop1{}, SetOfStop2{}) ;
-   RETURN( WasNoError )
+   RETURN NOT seenError
 END CompilationUnit ;
 
 
@@ -457,6 +467,8 @@ BEGIN
 END Real ;
 
 % module P3Build end
+BEGIN
+   BlockState := InitState ()
 END P3Build.
 % rules
 error       'ErrorArray' 'ErrorString'
@@ -662,12 +674,25 @@ Qualident :=                                                               % VAR
              { "." Ident }                                                 % END %
            =:
 
+
+QualidentCheck :=                                                          % PushAutoOn %
+                  Qualident
+                                                                           % PopAuto %
+                                                                           % CheckQualident (OperandTok (1), BlockState, OperandT (1)) %
+                                                                           % IF NOT IsAutoPushOn ()
+                                                                             THEN
+                                                                                PopNothing
+                                                                             END %
+                =:
+
 ConstantDeclaration :=                                                     % VAR tokno: CARDINAL ; %
+                                                                           % InclConst (BlockState) %
                                                                            % PushAutoOn %
                        ( Ident "="                                         % tokno := GetTokenNo () -1 %
                                                                            % BuildConst %
                          ConstExpression )                                 % BuildAssignConstant (tokno) %
                                                                            % PopAuto %
+                                                                           % ExclConst (BlockState) %
                      =:
 
 ConstExpression :=                                                         % VAR tokpos: CARDINAL ; %
@@ -764,10 +789,14 @@ ArraySetRecordValue := ComponentValue                                      % Bui
 
 Constructor :=                                                             % VAR tokpos: CARDINAL ; %
                                                                            % DisplayStack %
+                                                                           % InclConstructor (BlockState) %
+                                                                           % CheckQualident (OperandTok (1), BlockState, OperandT (1)) %
                '{'                                                         % tokpos := GetTokenNo () -1 %
                                                                            % BuildConstructorStart (tokpos) %
                   [ ArraySetRecordValue ]                                  % BuildConstructorEnd (tokpos, GetTokenNo())  %
-               '}' =:
+               '}'
+                                                                           % ExclConstructor (BlockState) %
+             =:
 
 ConstSetOrQualidentOrFunction :=                                           % VAR tokpos: CARDINAL ; %
                                                                            % tokpos := GetTokenNo () %
@@ -779,8 +808,12 @@ ConstSetOrQualidentOrFunction :=                                           % VAR
                                      Constructor
                                  ) =:
 
-ConstActualParameters :=                                                   % PushInConstParameters %
+ConstActualParameters :=                                                   % PushState (BlockState) %
+                                                                           % InclConstFunc (BlockState) %
+                                                                           % CheckQualident (OperandTok (1), BlockState, OperandT (1)) %
+                                                                           % PushInConstParameters %
                          ActualParameters                                  % PopInConstParameters %
+                                                                           % PopState (BlockState) %
                        =:
 
 ConstAttribute := "__ATTRIBUTE__" "__BUILTIN__" "(" "("                    % PushAutoOn %
@@ -802,7 +835,9 @@ ByteAlignment :=                                                           % VAR
 
 Alignment := [ ByteAlignment ] =:
 
-TypeDeclaration := Ident "=" Type Alignment
+TypeDeclaration :=                                                         % InclType (BlockState) %
+                   Ident "=" Type Alignment
+                                                                           % ExclType (BlockState) %
                 =:
 
 Type :=
@@ -814,7 +849,7 @@ Type :=
           | ProcedureType )                                                % PopAuto %
       =:
 
-SimpleType := Qualident [ SubrangeType ] | Enumeration | SubrangeType =:
+SimpleType := QualidentCheck [ SubrangeType ] | Enumeration | SubrangeType =:
 
 Enumeration := "("
                    ( IdentList
@@ -900,7 +935,7 @@ FieldList := IdentList ":"
 
 TagIdent := [ Ident ] =:
 
-CaseTag :=  TagIdent [":" Qualident ] =:
+CaseTag :=  TagIdent [":" QualidentCheck ] =:
 
 Varient := [                                                               % BeginVarientList %
              VarientCaseLabelList ":" FieldListSequence                    % EndVarientList %
@@ -980,7 +1015,7 @@ FormalTypeList := "(" ( ")" FormalReturn |
 
 FormalReturn := [ ":" OptReturnType ] =:
 
-OptReturnType := "[" Qualident "]" | Qualident =:
+OptReturnType := "[" QualidentCheck "]" | QualidentCheck =:
 
 ProcedureParameters := ProcedureParameter
                        { "," ProcedureParameter } =:
@@ -1027,10 +1062,12 @@ VarIdentList := VarIdent                                                   % VAR
              =:
 
 VariableDeclaration := VarIdentList ":"
+                                                                           % InclVar (BlockState) %
                        Type Alignment
+                                                                           % ExclVar (BlockState) %
                     =:
 
-Designator := Qualident                                                    % CheckWithReference %
+Designator := QualidentCheck                                               % CheckWithReference %
               { SubDesignator } =:
 
 SubDesignator := "."                                                       % VAR Sym, Type, tok,
@@ -1419,7 +1456,7 @@ OptArg := "[" Ident ":" FormalType [ "=" ConstExpression                   % Bui
 DefOptArg := "[" Ident ":" FormalType "=" ConstExpression                  % BuildOptArgInitializer %
                                                           "]" =:
 
-FormalType := { "ARRAY" "OF" } Qualident =:
+FormalType := { "ARRAY" "OF" } QualidentCheck =:
 
 ModuleDeclaration :=                                                       % VAR modulet: CARDINAL ; %
                                                                            % modulet := GetTokenNo () %
diff --git a/gcc/m2/gm2-compiler/PCBuild.bnf b/gcc/m2/gm2-compiler/PCBuild.bnf
index 0e45b2e889c..6e263b01629 100644
--- a/gcc/m2/gm2-compiler/PCBuild.bnf
+++ b/gcc/m2/gm2-compiler/PCBuild.bnf
@@ -61,7 +61,8 @@ FROM M2Reserved IMPORT tokToTok, toktype,
                        OrTok, TimesTok, DivTok, DivideTok, ModTok, RemTok,
                        AndTok, AmbersandTok, PeriodPeriodTok, ByTok ;
 
-FROM M2Quads IMPORT Top, PushT, PopT, PushTF, PopTF, PopNothing, OperandT, PushTFA,
+FROM M2Quads IMPORT Top, PushT, PopT, PushTF, PopTF, PopNothing, OperandT, OperandTok,
+                    PushTFA,
                     PushTFn, PopTFn, PushTFtok, PopTtok, PopTFtok, PushTtok, PushTFntok,
                     PushT, PushTF, IsAutoPushOn, PushAutoOff, PushAutoOn, PopAuto,
                     BuildTypeForConstructor, BuildConstructor, BuildConstructorEnd,
@@ -120,6 +121,11 @@ FROM SymbolTable IMPORT MakeGnuAsm, PutGnuAsmVolatile, PutGnuAsm, PutGnuAsmInput
 
 FROM M2Batch IMPORT IsModuleKnown ;
 
+FROM M2StateCheck IMPORT StateCheck,
+                         InitState, PushState, PopState, InclConst, ExclConst,
+                         InclConstructor, ExclConstructor,
+                         InclConstFunc, CheckQualident ;
+
 IMPORT M2Error ;
 
 
@@ -128,9 +134,8 @@ CONST
    Pass1     = FALSE ;
 
 VAR
-   InConstParameter,
-   InConstBlock,
-   seenError       : BOOLEAN ;
+   BlockState: StateCheck ;
+   seenError : BOOLEAN ;
 
 
 PROCEDURE ErrorString (s: String) ;
@@ -407,8 +412,7 @@ END Real ;
 
 % module PCBuild end
 BEGIN
-   InConstParameter := FALSE ;
-   InConstBlock := FALSE
+   BlockState := InitState ()
 END PCBuild.
 % rules
 error       'ErrorArray' 'ErrorString'
@@ -597,7 +601,7 @@ Qualident :=                                                               % VAR
            =:
 
 ConstantDeclaration :=                                                     % VAR top: CARDINAL ; %
-                                                                           % InConstBlock := TRUE %
+                                                                           % InclConst (BlockState) %
                                                                            % top := Top() %
                                                                            % PushAutoOn %
                        ( Ident "="                                         % StartDesConst %
@@ -607,7 +611,7 @@ ConstantDeclaration :=                                                     % VAR
                                                                            % EndDesConst %
                                                                            % PopAuto %
                                                                            % Assert(top=Top()) %
-                                                                           % InConstBlock := FALSE %
+                                                                           % ExclConst (BlockState) %
                      =:
 
 ConstExpression :=                                                         % VAR top: CARDINAL ; %
@@ -697,11 +701,14 @@ ComponentValue := ComponentElement [ 'BY' ConstExpression ] =:
 ArraySetRecordValue := ComponentValue { ','                                % NextConstructorField %
                                             ComponentValue } =:
 
-Constructor := '{'                                                         % PushConstructorCastType %
+Constructor := '{'                                                         % InclConstructor (BlockState) %
+                                                                           % CheckQualident (OperandTok (1), BlockState, OperandT (1)) %
+                                                                           % PushConstructorCastType %
                                                                            % PushInConstructor %
                                                                            % BuildConstructor (GetTokenNo ()-1) %
                   [ ArraySetRecordValue ]                                  % PopConstructor %
                '}'                                                         % PopInConstructor %
+                                                                           % ExclConstructor (BlockState) %
                    =:
 
 ConstructorOrConstActualParameters := Constructor | ConstActualParameters  % PushConstFunctionType %
@@ -714,23 +721,21 @@ ConstSetOrQualidentOrFunction :=                                           % Pus
                                                                            % VAR tokpos: CARDINAL ; %
                                                                            % tokpos := GetTokenNo () %
                                  (
-                                   PushQualident                           % IF (NOT InConstParameter) AND InConstBlock
-                                                                             THEN
-                                                                                CheckNotVar (tokpos)
-                                                                             END %
-                                   ( ConstructorOrConstActualParameters |  % PushConstType %
+                                   PushQualident
+                                   ( ConstructorOrConstActualParameters |  % CheckQualident (OperandTok (1), BlockState, OperandT (1)) %
+                                                                           % PushConstType %
                                                                            % PopNothing %
                                                                           )
                                    |                                       % BuildTypeForConstructor (tokpos) %
                                      Constructor )                         % PopAuto %
                                =:
 
-ConstActualParameters :=                                                   % VAR oldConstParameter: BOOLEAN ; %
-                                                                           % oldConstParameter := InConstParameter %
-                                                                           % InConstParameter := TRUE %
+ConstActualParameters :=                                                   % PushState (BlockState) %
+                                                                           % InclConstFunc (BlockState) %
+                                                                           % CheckQualident (OperandTok (1), BlockState, OperandT (1)) %
                                                                            % PushT(0) %
                          "(" [ ConstExpList ] ")"
-                                                                           % InConstParameter := oldConstParameter %
+                                                                           % PopState (BlockState) %
                          =:
 
 ConstExpList :=                                                            % VAR n: CARDINAL ; %
@@ -1023,9 +1028,9 @@ ConstructorOrSimpleDes := Constructor |                                    % Pop
                                           SimpleDes [ ActualParameters ]
                         =:
 
-SetOrDesignatorOrFunction :=                                              % PushAutoOff %
-                                                                          % VAR tokpos: CARDINAL ; %
+SetOrDesignatorOrFunction :=                                              % VAR tokpos: CARDINAL ; %
                                                                           % tokpos := GetTokenNo () %
+                                                                          % PushAutoOff %
                              (
                                PushQualident
                                ( ConstructorOrSimpleDes |                 % PopNothing %
diff --git a/gcc/m2/gm2-gcc/init.cc b/gcc/m2/gm2-gcc/init.cc
index 17ca9189f10..de9fb997070 100644
--- a/gcc/m2/gm2-gcc/init.cc
+++ b/gcc/m2/gm2-gcc/init.cc
@@ -105,6 +105,8 @@ EXTERN void _M2_ldtoa_init (int argc, char *argv[], char *envp[]);
 EXTERN void _M2_M2Check_init (int argc, char *argv[], char *envp[]);
 EXTERN void _M2_M2SSA_init (int argc, char *argv[], char *envp[]);
 EXTERN void _M2_M2SymInit_init (int argc, char *argv[], char *envp[]);
+EXTERN void _M2_M2StateCheck_init (int argc, char *argv[], char *envp[]);
+EXTERN void _M2_P3Build_init (int argc, char *argv[], char *envp[]);
 EXTERN void exit (int);
 EXTERN void M2Comp_compile (const char *filename);
 EXTERN void RTExceptions_DefaultErrorCatch (void);
@@ -200,5 +202,7 @@ init_PerCompilationInit (const char *filename)
   _M2_M2SymInit_init (0, NULL, NULL);
   _M2_M2Check_init (0, NULL, NULL);
   _M2_M2LangDump_init (0, NULL, NULL);
+  _M2_M2StateCheck_init (0, NULL, NULL);
+  _M2_P3Build_init (0, NULL, NULL);
   M2Comp_compile (filename);
 }
diff --git a/gcc/testsuite/gm2/errors/fail/array1.mod b/gcc/testsuite/gm2/errors/fail/array1.mod
index 274011be953..221b32ed7be 100644
--- a/gcc/testsuite/gm2/errors/fail/array1.mod
+++ b/gcc/testsuite/gm2/errors/fail/array1.mod
@@ -17,9 +17,14 @@ Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *)
 
 MODULE array1 ;
 
+PROCEDURE init ;
 VAR
    a: ARRAY [FALSE..TRUE] OF CARDINAL ;
    i, j: CARDINAL ;
 BEGIN
    a[i=j] := j
+END init ;
+
+BEGIN
+   init
 END array1.
diff --git a/gcc/testsuite/gm2/errors/fail/badtype.mod b/gcc/testsuite/gm2/errors/fail/badtype.mod
new file mode 100644
index 00000000000..32ac3a6447c
--- /dev/null
+++ b/gcc/testsuite/gm2/errors/fail/badtype.mod
@@ -0,0 +1,10 @@
+MODULE badtype ;
+
+PROCEDURE bar (VAR a: CARDINAL) ;
+TYPE
+   Foo = a ;
+BEGIN
+END bar ;
+
+BEGIN
+END badtype.
diff --git a/gcc/testsuite/gm2/errors/fail/badvar.mod b/gcc/testsuite/gm2/errors/fail/badvar.mod
new file mode 100644
index 00000000000..2d67cb60d0b
--- /dev/null
+++ b/gcc/testsuite/gm2/errors/fail/badvar.mod
@@ -0,0 +1,10 @@
+MODULE badvar ;
+
+PROCEDURE bar (VAR a: CARDINAL) ;
+VAR
+   Foo: a ;
+BEGIN
+END bar ;
+
+BEGIN
+END badvar.
diff --git a/gcc/testsuite/gm2/errors/fail/errors-fail.exp b/gcc/testsuite/gm2/errors/fail/errors-fail.exp
index 8af0e729997..a8fbd2c177d 100644
--- a/gcc/testsuite/gm2/errors/fail/errors-fail.exp
+++ b/gcc/testsuite/gm2/errors/fail/errors-fail.exp
@@ -25,7 +25,7 @@ if $tracelevel then {
 # load support procs
 load_lib gm2-torture.exp
 
-gm2_init_pim "${srcdir}/gm2/errors/fail" -Wpedantic -Wstudents -Wunused-variable
+gm2_init_iso "${srcdir}/gm2/errors/fail" -Wpedantic -Wunused-variable -Wuninit-variable-checking=all
 
 foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {
     # If we're only testing specific files and this isn't one of them, skip it.
diff --git a/gcc/testsuite/gm2/errors/fail/testfio.mod b/gcc/testsuite/gm2/errors/fail/testfio.mod
index fabf93ecb95..f11e09eeac1 100644
--- a/gcc/testsuite/gm2/errors/fail/testfio.mod
+++ b/gcc/testsuite/gm2/errors/fail/testfio.mod
@@ -22,12 +22,16 @@ FROM StdIO IMPORT Write ;
 FROM StrIO IMPORT WriteString, WriteLn ;
 FROM FIO IMPORT Exists, OpenToRead, Close, File, IsNoError, EOF, ReadChar ;
 
+PROCEDURE init ;
 VAR
    i: INTEGER ;
    f: File ;
    c: CARDINAL ;
    a: ARRAY [0..20] OF CHAR ;
 BEGIN
+   IF f = 0
+   THEN
+   END ;
    WriteString('testfio starting') ; WriteLn ;
    c := 1 ;
    WHILE GetArg(a, c) DO
@@ -45,4 +49,8 @@ BEGIN
       END ;
       INC(c)
    END
+END init ;
+
+BEGIN
+   init
 END testfio.
diff --git a/gcc/testsuite/gm2/errors/fail/testparam.mod b/gcc/testsuite/gm2/errors/fail/testparam.mod
index 238334f35ba..142a2517c1c 100644
--- a/gcc/testsuite/gm2/errors/fail/testparam.mod
+++ b/gcc/testsuite/gm2/errors/fail/testparam.mod
@@ -19,10 +19,15 @@ MODULE testparam ;
 
 FROM FIO IMPORT IsNoError, Close, EOF ;
 
+PROCEDURE init ;
 VAR
    i: INTEGER ;
 BEGIN
    IF EOF(i)
    THEN
    END
+END init ;
+
+BEGIN
+   init
 END testparam.

commit 0891093e65c343ee4e4434c357ca915ee56e37b7
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 26 13:11:31 2024 +0000

    [PATCH] modula2: Add GNU flex as a build and install prerequisite.
    
    gcc/ChangeLog:
    
            * doc/install.texi (GM2-prerequisite): Add GNU flex.
    
    (cherry picked from commit 52f3473e375b1bb57d08c97291a82c04070036c3)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index f20336c2062..814db3ea5ec 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -336,6 +336,10 @@ environment to your ``good'' shell prior to running
 @command{zsh} is not a fully compliant POSIX shell and will not
 work when configuring GCC@.
 
+@item GNU flex
+
+Necessary to build the lexical analysis module.
+
 @item A POSIX or SVR4 awk
 
 Necessary for creating some of the generated source files for GCC@.

commit 2665f3e027d835a8a64652a4792792fddd83dd8b
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 26 13:15:56 2024 +0000

    [PATCH] modula2: Improve error message to include symbol name.
    
    gcc/m2/ChangeLog:
    
            * gm2-compiler/M2StateCheck.mod (GenerateError): Add
            symbol name to the error message.
    
    (cherry picked from commit 6a99f3ae962542165fdfc077f1040ea4d936691b)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2StateCheck.mod b/gcc/m2/gm2-compiler/M2StateCheck.mod
index e53cb174474..940c433bcc1 100644
--- a/gcc/m2/gm2-compiler/M2StateCheck.mod
+++ b/gcc/m2/gm2-compiler/M2StateCheck.mod
@@ -306,7 +306,7 @@ PROCEDURE GenerateError (tok: CARDINAL; s: StateCheck; sym: CARDINAL) ;
 VAR
    str: String ;
 BEGIN
-   str := InitString ('not expecting a {%1Ad} {%1a: }in a ') ;
+   str := InitString ('not expecting the {%1Ad} {%1a} in a ') ;
    IF const IN s^.state
    THEN
       str := ConCat (str, Mark (InitString ('{%kCONST} block')))

commit 056448490e4ddb03263d9566b8aaee2340cba3ac
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 26 13:18:27 2024 +0000

    [PATCH] PR modula2/115823 Wrong expansion of isnormal optab
    
    This patch corrects the function declaration of a builtin
    (using the libname rather than the source name).
    
    gcc/m2/ChangeLog:
    
            PR modula2/115823
            * gm2-gcc/m2builtins.cc (define_builtin): Build
            the function decl using the libname.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/115823
            * gm2/builtins/run/pass/testisnormal.mod: Change to an
            implementation module.
            * gm2/builtins/run/pass/testisnormal.def: New test.
            * gm2/builtins/run/pass/testsinl.def: New test.
            * gm2/builtins/run/pass/testsinl.mod: New test.
    
    (cherry picked from commit 79e029a41825f533bb87b4bee5427b90b62175ae)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-gcc/m2builtins.cc b/gcc/m2/gm2-gcc/m2builtins.cc
index e3e55a69991..44f48fc01ba 100644
--- a/gcc/m2/gm2-gcc/m2builtins.cc
+++ b/gcc/m2/gm2-gcc/m2builtins.cc
@@ -1431,8 +1431,8 @@ define_builtin (enum built_in_function val, const char *name, tree prototype,
   tree decl;
   builtin_macro_definition bmd;
 
-  decl = build_decl (BUILTINS_LOCATION, FUNCTION_DECL, get_identifier (name),
-                     prototype);
+  decl = build_decl (BUILTINS_LOCATION, FUNCTION_DECL,
+		     get_identifier (libname), prototype);
   DECL_EXTERNAL (decl) = 1;
   TREE_PUBLIC (decl) = 1;
   SET_DECL_ASSEMBLER_NAME (decl, get_identifier (libname));
diff --git a/gcc/testsuite/gm2/builtins/run/pass/testisnormal.def b/gcc/testsuite/gm2/builtins/run/pass/testisnormal.def
new file mode 100644
index 00000000000..df01cc353eb
--- /dev/null
+++ b/gcc/testsuite/gm2/builtins/run/pass/testisnormal.def
@@ -0,0 +1,5 @@
+DEFINITION MODULE testisnormal ;
+
+PROCEDURE test ;
+
+END testisnormal.
diff --git a/gcc/testsuite/gm2/builtins/run/pass/testisnormal.mod b/gcc/testsuite/gm2/builtins/run/pass/testisnormal.mod
index 6b65a7b9b12..1349d80e8e8 100644
--- a/gcc/testsuite/gm2/builtins/run/pass/testisnormal.mod
+++ b/gcc/testsuite/gm2/builtins/run/pass/testisnormal.mod
@@ -1,4 +1,4 @@
-MODULE testisnormal ;
+IMPLEMENTATION MODULE testisnormal ;
 
 FROM libc IMPORT printf, exit ;
 FROM Builtins IMPORT isnormal ;
diff --git a/gcc/testsuite/gm2/builtins/run/pass/testsinl.def b/gcc/testsuite/gm2/builtins/run/pass/testsinl.def
new file mode 100644
index 00000000000..7afd3cc8623
--- /dev/null
+++ b/gcc/testsuite/gm2/builtins/run/pass/testsinl.def
@@ -0,0 +1,5 @@
+DEFINITION MODULE testsinl ;
+
+PROCEDURE test ;
+
+END testsinl.
diff --git a/gcc/testsuite/gm2/builtins/run/pass/testsinl.mod b/gcc/testsuite/gm2/builtins/run/pass/testsinl.mod
new file mode 100644
index 00000000000..7f669f89c8e
--- /dev/null
+++ b/gcc/testsuite/gm2/builtins/run/pass/testsinl.mod
@@ -0,0 +1,23 @@
+IMPLEMENTATION MODULE testsinl ;
+
+FROM libc IMPORT printf ;
+FROM Builtins IMPORT sinl ;
+
+
+(*
+   test -
+*)
+
+PROCEDURE test ;
+VAR
+   result: LONGREAL ;
+BEGIN
+   result := sinl (3.14) ;
+   printf ("sinl (3.14) = %lg\n", result) ;
+END test ;
+
+
+BEGIN
+   test ;
+   printf ("all tests pass\n")
+END testsinl.

commit 407970fdd3f5fefb2d2a2e6419a03e22025ebdd9
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Tue Nov 26 10:31:49 2024 +0100

    testsuite: arm: Use correct the expected asm in epilog-1.c test
    
    In r14.2.0-376-g724446556e5, I accidentally introduced a regression in
    the expected assembler as the csinc instruction was not used for
    armv8.1-m.main.
    
    The generated assembler for armv8.1-m.main is:
            push    {r3, r4, r5, lr}
            ldr     r4, .L5
            ldr     r5, [r4]
            adds    r4, r2, #1
            tst     r5, #4
            it      ne
            movne   r2, r4
            bl      bar
            movs    r0, #0
            pop     {r3, r4, r5, pc}
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/epilog-1.c: Corrected armv8.1.m-main asm.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>

diff --git a/gcc/testsuite/gcc.target/arm/epilog-1.c b/gcc/testsuite/gcc.target/arm/epilog-1.c
index a1516456460..d765dc42b82 100644
--- a/gcc/testsuite/gcc.target/arm/epilog-1.c
+++ b/gcc/testsuite/gcc.target/arm/epilog-1.c
@@ -20,8 +20,10 @@ Below block is for non-armv8.1-m.main
 ** |
 
 Below block is for armv8.1-m.main
+**	adds	(r[0-9]+), r2, #1
 **	tst	r[0-9]+, #4
-**	csinc	r2, r2, r2, eq
+**	it	ne
+**	movne	r2, \1
 
 ** )
 **	bl	bar

commit eed230db42b43806a18a6a13b92657f9665367d3
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 26 15:52:55 2024 +0000

    [PATCH] PR modula2/116181 fix ODR warnings for C/m2 interface library modules
    
    This patch fixes many ODR warnings which appear when compiling the
    interface files found in gcc/m2/*-ch/ and gcc/m2/{pge,mc}-boot
    directories.
    
    gcc/m2/ChangeLog:
    
            PR modula2/116181
            * gm2-compiler/ppg.mod (FindStr): Initialize j.
            * gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Replace
            M2RTS_RegisterModule with M2RTS_RegisterModule_Cstr.
            * gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Ditto.
            * gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Cast parameter s
            for strtod.
            (_M2_ldtoa_ctor): Replace M2RTS_RegisterModule with
            M2RTS_RegisterModule_Cstr.
            * gm2-libs-ch/m2rts.h (M2RTS_RegisterModule_Cstr): New
            define.
            (M2RTS_RegisterModule): Remove const.
            * mc-boot-ch/GSelective.c (Selective_FdIsSet): Return bool
            rather than int.
            * mc-boot-ch/Gldtoa.cc (ldtoa_strtold): Change const char to
            void.
            Cast s before passing as a parameter to strtod.
            * mc-boot-ch/Glibc.c (tracedb_open): Replace const char with const
            void.
            (libc_perror): Replace char with const char.
            (libc_printf): Replace char with void.
            (libc_snprintf): Replace char with void.
            Add const_cast for parameter to index.
            Add reinterpret_cast for parameter to vsnprintf.
            (libc_open): Replace first paramter type char with void.
            Add vararg for the third parameter.
            * mc-boot-ch/Gm2rtsdummy.cc (M2RTS_RequestDependant): Remove #if 0 code.
            (m2pim_M2RTS_RegisterModule): Change const char parameters to void
            (M2RTS_RegisterModule): Ditto.
            (_M2_M2RTS_init): Remove #if 0 code.
            (M2RTS_ConstructModules): Ditto.
            (M2RTS_Terminate): Ditto.
            (M2RTS_DeconstructModules): Ditto.
            (M2RTS_Halt): Ditto.
            * mc-boot-ch/Gtermios.cc (SetFlag): Return bool.
            * mc-boot-ch/m2rts.h (M2RTS_RegisterModule_Cstr): New define.
            (M2RTS_RegisterModule): Change const char parameters to void.
            * mc-boot/Gdecl.cc: Regenerate.
            * mc/decl.mod (getNextConstExp): Reimplement.
            * pge-boot/GDynamicStrings.cc: Regenerate.
            * pge-boot/GDynamicStrings.h: Ditto.
            * pge-boot/GM2RTS.h (M2RTS_RegisterModule_Cstr): New function.
            (M2RTS_RegisterModule): Reformat.
            * pge-boot/GSymbolKey.cc: Regenerate.
            * pge-boot/GSysExceptions.cc (_M2_SysExceptions_init): Add correct parameters.
            (_M2_SysExceptions_fini): Ditto.
            * pge-boot/GUnixArgs.cc (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor):
            Replace call to M2RTS_RegisterModule with M2RTS_RegisterModuleCstr.
            * pge-boot/Gerrno.cc (_M2_errno_init): Add correct parameters.
            (_M2_errno_fini): Ditto.
            * pge-boot/Gldtoa.cc (ldtoa_strtold): Replace const char with
            void.
            Use reinterpret_cast when passing s to strtod.
            Replace true with TRUE.
            * pge-boot/Gldtoa.h (ldtoa_strtold): Tidy up.
            * pge-boot/Glibc.cc (libc_read): Use size_t as the return type.
            (libc_write): Ditto.
            (libc_strlen): Ditto.
            (libc_perror): Replace char with const char.
            (libc_printf): Replace char to const char.
            Cast parameter to index using const_cast.
            (libc_snprintf): Replace char with void.
            Cast parameter to index using const_cast.
            (libc_malloc): Replace parameter type with size_t.
            (libc_memcpy): Replace third parameter type with size_t.
            (libc_open): Use varargs.
            * pge-boot/Glibc.h (libc_perror): Add _string_high parameter.
            * pge-boot/Gpge.cc: Regenerate.
            * pge-boot/Gtermios.cc (SetFlag): Replace return type with bool.
            (_M2_termios_init): Add correct parameters.
            (_M2_termios_fini): Ditto.
            * pge-boot/m2rts.h (M2RTS_RegisterModule_Cstr): New define.
            (M2RTS_RegisterModule): Replace const char with void.
    
    (cherry picked from commit 9f3b5c2314239e1d3b6e1722e676ea1935bc2836)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/ppg.mod b/gcc/m2/gm2-compiler/ppg.mod
index fdb5f4369f2..a82c90142a4 100644
--- a/gcc/m2/gm2-compiler/ppg.mod
+++ b/gcc/m2/gm2-compiler/ppg.mod
@@ -3678,6 +3678,7 @@ VAR
 BEGIN
    t := code ;
    k := StrLen(code^.codetext)+1 ;
+   j := StrLen(str) ;
    WHILE t#NIL DO
       REPEAT
          WHILE (k>0) AND IsWhite(t^.codetext[k-1]) DO
diff --git a/gcc/m2/gm2-libs-ch/UnixArgs.cc b/gcc/m2/gm2-libs-ch/UnixArgs.cc
index 574ca581b27..67a0c99f036 100644
--- a/gcc/m2/gm2-libs-ch/UnixArgs.cc
+++ b/gcc/m2/gm2-libs-ch/UnixArgs.cc
@@ -86,6 +86,6 @@ _M2_UnixArgs_dep (void)
 extern "C" void __attribute__((__constructor__))
 _M2_UnixArgs_ctor (void)
 {
-  M2RTS_RegisterModule ("UnixArgs", LIBNAME, _M2_UnixArgs_init, _M2_UnixArgs_finish,
-			_M2_UnixArgs_dep);
+  M2RTS_RegisterModule_Cstr ("UnixArgs", LIBNAME, _M2_UnixArgs_init,
+			     _M2_UnixArgs_finish, _M2_UnixArgs_dep);
 }
diff --git a/gcc/m2/gm2-libs-ch/dtoa.cc b/gcc/m2/gm2-libs-ch/dtoa.cc
index 68e57cffed1..306e70db05b 100644
--- a/gcc/m2/gm2-libs-ch/dtoa.cc
+++ b/gcc/m2/gm2-libs-ch/dtoa.cc
@@ -194,8 +194,8 @@ _M2_dtoa_dep (void)
 extern "C" void __attribute__((__constructor__))
 _M2_dtoa_ctor (void)
 {
-  M2RTS_RegisterModule ("dtoa", LIBNAME, _M2_dtoa_init, _M2_dtoa_finish,
-			_M2_dtoa_dep);
+  M2RTS_RegisterModule_Cstr ("dtoa", LIBNAME, _M2_dtoa_init,
+			     _M2_dtoa_finish, _M2_dtoa_dep);
 }
 
 #else
diff --git a/gcc/m2/gm2-libs-ch/ldtoa.cc b/gcc/m2/gm2-libs-ch/ldtoa.cc
index 2da7a0d8208..9111de1d484 100644
--- a/gcc/m2/gm2-libs-ch/ldtoa.cc
+++ b/gcc/m2/gm2-libs-ch/ldtoa.cc
@@ -52,17 +52,17 @@ extern bool dtoa_calcsign (char *p, int str_size);
    (ndigits may be negative).  */
 
 long double
-ldtoa_strtold (const char *s, bool *error)
+ldtoa_strtold (void *s, bool *error)
 {
   char *endp;
   long double d;
 
   errno = 0;
 #if defined(HAVE_STRTOLD)
-  d = strtold (s, &endp);
+  d = strtold (reinterpret_cast <char *> (s), &endp);
 #else
   /* fall back to using strtod.  */
-  d = (long double)strtod (s, &endp);
+  d = (long double)strtod (reinterpret_cast <char *> (s), &endp);
 #endif
   if (endp != NULL && (*endp == '\0'))
     *error = (errno != 0);
@@ -123,8 +123,8 @@ _M2_ldtoa_dep (void)
 extern "C" void __attribute__((__constructor__))
 _M2_ldtoa_ctor (void)
 {
-  M2RTS_RegisterModule ("ldtoa", LIBNAME, _M2_ldtoa_init, _M2_ldtoa_finish,
-			_M2_ldtoa_dep);
+  M2RTS_RegisterModule_Cstr ("ldtoa", LIBNAME, _M2_ldtoa_init,
+			     _M2_ldtoa_finish, _M2_ldtoa_dep);
 }
 
 #else
diff --git a/gcc/m2/gm2-libs-ch/m2rts.h b/gcc/m2/gm2-libs-ch/m2rts.h
index b6da7cc3539..83e463abf2e 100644
--- a/gcc/m2/gm2-libs-ch/m2rts.h
+++ b/gcc/m2/gm2-libs-ch/m2rts.h
@@ -28,8 +28,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 typedef void (*proc_con) (int, char **, char **);
 typedef void (*proc_dep) (void);
 
+#define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep) \
+  M2RTS_RegisterModule (reinterpret_cast <void *> (const_cast <char *> (MODNAME)), \
+			reinterpret_cast <void *> (const_cast <char *> (LIBNAME)), \
+			init, fini, dep)
+
 extern "C" void M2RTS_RequestDependant (const void *modulename, const void *dependancy);
-extern "C" void M2RTS_RegisterModule (const void *modulename, const void *libname,
+extern "C" void M2RTS_RegisterModule (void *modulename, void *libname,
 				      proc_con init, proc_con fini, proc_dep dependencies);
 extern "C" void _M2_M2RTS_init (void);
 
diff --git a/gcc/m2/mc-boot-ch/GSelective.c b/gcc/m2/mc-boot-ch/GSelective.c
index 6f30bdea47b..26c135b7c7e 100644
--- a/gcc/m2/mc-boot-ch/GSelective.c
+++ b/gcc/m2/mc-boot-ch/GSelective.c
@@ -145,7 +145,7 @@ Selective_FdClr (int fd, fd_set *s)
 /* PROCEDURE FdIsSet (fd: INTEGER; SetOfFd) : BOOLEAN ; */
 
 EXTERN
-int
+bool
 Selective_FdIsSet (int fd, fd_set *s)
 {
   return FD_ISSET (fd, s);
diff --git a/gcc/m2/mc-boot-ch/Gldtoa.cc b/gcc/m2/mc-boot-ch/Gldtoa.cc
index 1e7acb7ad40..ce66fb755fb 100644
--- a/gcc/m2/mc-boot-ch/Gldtoa.cc
+++ b/gcc/m2/mc-boot-ch/Gldtoa.cc
@@ -43,22 +43,22 @@ extern bool dtoa_calcsign (char *p, int str_size);
    (ndigits may be negative).  */
 
 long double
-ldtoa_strtold (const char *s, int *error)
+ldtoa_strtold (void *s, bool *error)
 {
   char *endp;
   long double d;
 
   errno = 0;
 #if defined(HAVE_STRTOLD)
-  d = strtold (s, &endp);
+  d = strtold (reinterpret_cast <char *> (s), &endp);
 #else
   /* fall back to using strtod.  */
-  d = (long double)strtod (s, &endp);
+  d = (long double)strtod (reinterpret_cast <char *> (s), &endp);
 #endif
   if (endp != NULL && (*endp == '\0'))
     *error = (errno != 0);
   else
-    *error = TRUE;
+    *error = true;
   return d;
 }
 
diff --git a/gcc/m2/mc-boot-ch/Glibc.c b/gcc/m2/mc-boot-ch/Glibc.c
index e53a76a0f13..492f17f6bdc 100644
--- a/gcc/m2/mc-boot-ch/Glibc.c
+++ b/gcc/m2/mc-boot-ch/Glibc.c
@@ -67,7 +67,7 @@ tracedb (const char *format, ...)
 
 static
 void
-tracedb_open (const char *p, int flags, mode_t mode)
+tracedb_open (const void *p, int flags, mode_t mode)
 {
 #if defined(BUILD_MC_LIBC_TRACE)
   bool item_written = false;
@@ -161,7 +161,7 @@ libc_exit (int code)
 
 EXTERN
 void
-libc_perror (char *s)
+libc_perror (const char *s, unsigned int length)
 {
   perror (s);
 }
@@ -207,7 +207,7 @@ libc_printf (const char *_format, unsigned int _format_high, ...)
 
   do
     {
-      c = index (&_format[i], '\\');
+      c = index (&const_cast <char *> (_format)[i], '\\');
       if (c == NULL)
         strcpy (&format[j], &_format[i]);
       else
@@ -233,7 +233,7 @@ libc_printf (const char *_format, unsigned int _format_high, ...)
 
 EXTERN
 int
-libc_snprintf (char *dest, size_t length, const char *_format, unsigned int _format_high, ...)
+libc_snprintf (void *dest, size_t length, const char *_format, unsigned int _format_high, ...)
 {
   va_list arg;
   int done;
@@ -244,7 +244,7 @@ libc_snprintf (char *dest, size_t length, const char *_format, unsigned int _for
 
   do
     {
-      c = index (&_format[i], '\\');
+      c = index (&const_cast <char *> (_format)[i], '\\');
       if (c == NULL)
         strcpy (&format[j], &_format[i]);
       else
@@ -263,7 +263,7 @@ libc_snprintf (char *dest, size_t length, const char *_format, unsigned int _for
   while (c != NULL);
 
   va_start (arg, _format_high);
-  done = vsnprintf (dest, length, format, arg);
+  done = vsnprintf (reinterpret_cast<char *> (dest), length, format, arg);
   va_end (arg);
   return done;
 }
@@ -343,11 +343,15 @@ libc_creat (char *p, mode_t mode)
 
 EXTERN
 int
-libc_open (char *p, int flags, mode_t mode)
+libc_open (void *p, int oflag, ...)
 {
-  tracedb_open (p, flags, mode);
-  int result = open (p, flags, mode);
+  va_list arg;
+  va_start (arg, oflag);
+  mode_t mode = va_arg (arg, mode_t);
+  tracedb_open (p, oflag, mode);
+  int result = open (reinterpret_cast <char *> (p), oflag, mode);
   tracedb_result (result);
+  va_end (arg);
   return result;
 }
 
diff --git a/gcc/m2/mc-boot-ch/Gm2rtsdummy.cc b/gcc/m2/mc-boot-ch/Gm2rtsdummy.cc
index f845a31e388..9b431f79dfa 100644
--- a/gcc/m2/mc-boot-ch/Gm2rtsdummy.cc
+++ b/gcc/m2/mc-boot-ch/Gm2rtsdummy.cc
@@ -31,32 +31,17 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 typedef void (*proc_con) (int, char **, char **);
 typedef void (*proc_dep) (void);
 
-#if 0
-/* Used if -fscaffold-dynamic were selected.  */
-extern "C" void M2RTS_RequestDependant (const char *modulename, const char *libname,
-					const char *dependancy, const char *deplib);
-#endif
-
-extern "C" void m2pim_M2RTS_RegisterModule (const char *modulename, const char *libname,
+extern "C" void m2pim_M2RTS_RegisterModule (void *modulename, void *libname,
 					    proc_con init, proc_con fini, proc_dep dependencies);
 
 /* Fixup references, the code will not be used though, as it is only used if
    -fscaffold-dynamic is selected (and mc uses -fscaffold-static).  */
 
 extern "C"
-void M2RTS_RegisterModule (const char *modulename, const char *libname,
+void M2RTS_RegisterModule (char *modulename, char *libname,
 			   proc_con init, proc_con fini, proc_dep dependencies)
 {
-  m2pim_M2RTS_RegisterModule (modulename, libname, init, fini, dependencies);
+  m2pim_M2RTS_RegisterModule (reinterpret_cast <void *> (modulename),
+			      reinterpret_cast <void *> (libname),
+			      init, fini, dependencies);
 }
-
-#if 0
-extern "C" void _M2_M2RTS_init (void);
-
-extern "C" void M2RTS_ConstructModules (const char *,
-					int argc, char *argv[], char *envp[]);
-extern "C" void M2RTS_Terminate (void);
-extern "C" void M2RTS_DeconstructModules (void);
-
-extern "C" void M2RTS_Halt (const char *, int, const char *, const char *) __attribute__ ((noreturn));
-#endif
diff --git a/gcc/m2/mc-boot-ch/Gtermios.cc b/gcc/m2/mc-boot-ch/Gtermios.cc
index 0ef5c8ba803..99f003f6152 100644
--- a/gcc/m2/mc-boot-ch/Gtermios.cc
+++ b/gcc/m2/mc-boot-ch/Gtermios.cc
@@ -1081,8 +1081,8 @@ EXPORT (GetFlag) (struct termios *t, Flag f, int *b)
 /* SetFlag - sets a flag value in, t, to, b, and returns TRUE if this
    flag value is supported.  */
 
-int
-EXPORT (SetFlag) (struct termios *t, Flag f, int b)
+bool
+EXPORT (SetFlag) (struct termios *t, Flag f, bool b)
 {
   switch (f)
     {
diff --git a/gcc/m2/mc-boot-ch/m2rts.h b/gcc/m2/mc-boot-ch/m2rts.h
index ef09bd71535..bfd2d9f8c45 100644
--- a/gcc/m2/mc-boot-ch/m2rts.h
+++ b/gcc/m2/mc-boot-ch/m2rts.h
@@ -28,9 +28,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 typedef void (*proc_con) (int, char **, char **);
 typedef void (*proc_dep) (void);
 
+#define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep) \
+  M2RTS_RegisterModule (const_cast <void *> (MODNAME), \
+			const_cast <void *> (LIBNAME), \
+			init, fini, dep)
+
 extern "C" void M2RTS_RequestDependant (const char *modulename, const char *libname,
 					const char *dependancy, const char *deplib);
-extern "C" void M2RTS_RegisterModule (const char *modulename, const char *libname,
+extern "C" void M2RTS_RegisterModule (void *modulename, void *libname,
 				      proc_con init, proc_con fini, proc_dep dependencies);
 extern "C" void _M2_M2RTS_init (void);
 
diff --git a/gcc/m2/mc-boot/Gdecl.cc b/gcc/m2/mc-boot/Gdecl.cc
index 183d671c8b3..defe0b29537 100644
--- a/gcc/m2/mc-boot/Gdecl.cc
+++ b/gcc/m2/mc-boot/Gdecl.cc
@@ -6453,7 +6453,7 @@ static decl_node__opaque putFieldRecord (decl_node__opaque r, nameKey_Name tag,
   n->recordfieldF.tag = false;
   n->recordfieldF.scope = static_cast<decl_node__opaque> (NULL);
   initCname (&n->recordfieldF.cname);
-  /* 
+  /*
    IF r^.kind=record
    THEN
       doRecordM2 (doP, r)
@@ -6866,7 +6866,7 @@ static decl_node__opaque makeIntrinsicProc (decl_nodeT k, unsigned int noArgs, d
 {
   decl_node__opaque f;
 
-  /* 
+  /*
    makeIntrisicProc - create an intrinsic node.
   */
   f = newNode (k);
@@ -10084,7 +10084,7 @@ static void doString (mcPretty_pretty p, decl_node__opaque n)
   s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
   outTextS (p, s);
   s = DynamicStrings_KillString (s);
-  /* 
+  /*
    IF DynamicStrings.Index (s, '"', 0)=-1
    THEN
       outText (p, '"') ;
@@ -10244,7 +10244,7 @@ static void doStringC (mcPretty_pretty p, decl_node__opaque n)
   DynamicStrings_String s;
 
   mcDebug_assert (isString (n));
-  /* 
+  /*
    s := InitStringCharStar (keyToCharStar (getSymName (n))) ;
    IF DynamicStrings.Length (s)>3
    THEN
@@ -10792,7 +10792,7 @@ static void doParamTypeEmit (mcPretty_pretty p, decl_node__opaque paramnode, dec
       doTypeNameC (p, paramtype);
       doOpaqueModifier (p, paramnode);
     }
-  /* 
+  /*
       IF nodeUsesOpaque (paramnode) AND (NOT getNodeOpaqueVoidStar (paramnode))
       THEN
          outText (p, '__opaque')
@@ -13326,7 +13326,7 @@ static void doExternCP (mcPretty_pretty p)
 
 static void doProcedureCommentText (mcPretty_pretty p, DynamicStrings_String s)
 {
-  /* remove 
+  /* remove
    from the start of the comment.  */
   while (((DynamicStrings_Length (s)) > 0) && ((DynamicStrings_char (s, 0)) == ASCII_lf))
     {
@@ -13392,7 +13392,7 @@ static void doProcedureHeadingC (decl_node__opaque n, bool prototype)
     }
   q = static_cast<decl_node__opaque> (NULL);
   doTypeC (doP, n->procedureF.returnType, &q);
-  /* 
+  /*
    IF NOT isExported (n)
    THEN
       doTypeNameModifier (doP, n^.procedureF.returnType)
@@ -14063,7 +14063,7 @@ static void includeDefVarProcedure (decl_node__opaque n)
       defModule = static_cast<decl_node__opaque> (decl_lookupDef (decl_getSymName (static_cast<decl_node> (n))));
       if (defModule != NULL)
         {
-          /* 
+          /*
          includeVar (defModule^.defF.decls) ;
          simplifyTypes (defModule^.defF.decls) ;
   */
@@ -25814,7 +25814,7 @@ extern "C" decl_node decl_makeComponentRef (decl_node rec, decl_node field)
   decl_node__opaque n;
   decl_node__opaque a;
 
-  /* 
+  /*
    n := getLastOp (rec) ;
    IF (n#NIL) AND (isDeref (n) OR isPointerRef (n)) AND
       (skipType (getType (rec)) = skipType (getType (n)))
@@ -26194,8 +26194,6 @@ extern "C" decl_node decl_makeConstExp (void)
 
 extern "C" decl_node decl_getNextConstExp (void)
 {
-  decl_node__opaque n;
-
   mcDebug_assert (((decl_isDef (static_cast<decl_node> (currentModule))) || (decl_isImp (static_cast<decl_node> (currentModule)))) || (decl_isModule (static_cast<decl_node> (currentModule))));
   if (decl_isDef (static_cast<decl_node> (currentModule)))
     {
@@ -26206,12 +26204,12 @@ extern "C" decl_node decl_getNextConstExp (void)
       /* avoid dangling else.  */
       return static_cast<decl_node> (getNextFixup (&currentModule->impF.constFixup));
     }
-  else if (decl_isModule (static_cast<decl_node> (currentModule)))
+  else
     {
       /* avoid dangling else.  */
+      mcDebug_assert (decl_isModule (static_cast<decl_node> (currentModule)));
       return static_cast<decl_node> (getNextFixup (&currentModule->moduleF.constFixup));
     }
-  return static_cast<decl_node> (n);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
diff --git a/gcc/m2/mc/decl.mod b/gcc/m2/mc/decl.mod
index 37fc3962695..8293c7f5d1f 100644
--- a/gcc/m2/mc/decl.mod
+++ b/gcc/m2/mc/decl.mod
@@ -3545,8 +3545,6 @@ END setConstExpComplete ;
 *)
 
 PROCEDURE getNextConstExp () : node ;
-VAR
-   n: node ;
 BEGIN
    assert (isDef (currentModule) OR isImp (currentModule) OR isModule (currentModule)) ;
    WITH currentModule^ DO
@@ -3556,12 +3554,11 @@ BEGIN
       ELSIF isImp (currentModule)
       THEN
          RETURN getNextFixup (impF.constFixup)
-      ELSIF isModule (currentModule)
-      THEN
+      ELSE
+         assert (isModule (currentModule))
          RETURN getNextFixup (moduleF.constFixup)
       END
-   END ;
-   RETURN n
+   END
 END getNextConstExp ;
 
 
diff --git a/gcc/m2/pge-boot/GDynamicStrings.cc b/gcc/m2/pge-boot/GDynamicStrings.cc
index 997802b3f84..32969692985 100644
--- a/gcc/m2/pge-boot/GDynamicStrings.cc
+++ b/gcc/m2/pge-boot/GDynamicStrings.cc
@@ -25,6 +25,8 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
+#include "config.h"
+#include "system.h"
 #include <stdbool.h>
 #   if !defined (PROC_D)
 #      define PROC_D
@@ -40,19 +42,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #      define FALSE (1==0)
 #   endif
 
-#include <stddef.h>
-#include <string.h>
-#include <limits.h>
-#include <stdlib.h>
 #   include "GStorage.h"
-#include <unistd.h>
 #if defined(__cplusplus)
 #   undef NULL
 #   define NULL 0
 #endif
-#define _DynamicStrings_H
 #define _DynamicStrings_C
 
+#include "GDynamicStrings.h"
 #   include "Glibc.h"
 #   include "GStrLib.h"
 #   include "GStorage.h"
@@ -84,27 +81,27 @@ typedef struct DynamicStrings__T3_a DynamicStrings__T3;
 
 typedef enum {DynamicStrings_inuse, DynamicStrings_marked, DynamicStrings_onlist, DynamicStrings_poisoned} DynamicStrings_desState;
 
-typedef DynamicStrings_stringRecord *DynamicStrings_String;
+typedef DynamicStrings_stringRecord *DynamicStrings_String__opaque;
 
 struct DynamicStrings_DebugInfo_r {
-                                    DynamicStrings_String next;
-                                    void *file;
+                                    DynamicStrings_String__opaque next;
+                                    void * file;
                                     unsigned int line;
-                                    void *proc;
+                                    void * proc;
                                   };
 
 struct DynamicStrings_descriptor_r {
                                      bool charStarUsed;
-                                     void *charStar;
+                                     void * charStar;
                                      unsigned int charStarSize;
                                      bool charStarValid;
                                      DynamicStrings_desState state;
-                                     DynamicStrings_String garbage;
+                                     DynamicStrings_String__opaque garbage;
                                    };
 
 struct DynamicStrings_frameRec_r {
-                                   DynamicStrings_String alloc;
-                                   DynamicStrings_String dealloc;
+                                   DynamicStrings_String__opaque alloc;
+                                   DynamicStrings_String__opaque dealloc;
                                    DynamicStrings_frame next;
                                  };
 
@@ -112,7 +109,7 @@ struct DynamicStrings__T3_a { char array[(MaxBuf-1)+1]; };
 struct DynamicStrings_Contents_r {
                                    DynamicStrings__T3 buf;
                                    unsigned int len;
-                                   DynamicStrings_String next;
+                                   DynamicStrings_String__opaque next;
                                  };
 
 struct DynamicStrings_stringRecord_r {
@@ -123,7 +120,7 @@ struct DynamicStrings_stringRecord_r {
 
 static bool Initialized;
 static DynamicStrings_frame frameHead;
-static DynamicStrings_String captured;
+static DynamicStrings_String__opaque captured;
 
 /*
    InitString - creates and returns a String type object.
@@ -258,12 +255,25 @@ extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned
 
 /*
    RIndex - returns the indice of the last occurance of, ch,
-            in String, s. The search starts at position, o.
-            -1 is returned if, ch, is not found.
+            in String, s.  The search starts at position, o.
+            -1 is returned if, ch, is not found.  The search
+            is performed left to right.
 */
 
 extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o);
 
+/*
+   ReverseIndex - returns the indice of the last occurance of ch
+                  in String s.  The search starts at position o
+                  and searches from right to left.  The start position
+                  may be indexed negatively from the right (-1 is the
+                  last index).
+                  The return value if ch is found will always be positive.
+                  -1 is returned if ch is not found.
+*/
+
+extern "C" int DynamicStrings_ReverseIndex (DynamicStrings_String s, char ch, int o);
+
 /*
    RemoveComment - assuming that, comment, is a comment delimiter
                    which indicates anything to its right is a comment
@@ -390,7 +400,7 @@ extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (bool hal
 /*
  writeStringDesc write out debugging information about string, s.  */
 
-static void writeStringDesc (DynamicStrings_String s);
+static void writeStringDesc (DynamicStrings_String__opaque s);
 
 /*
    writeNspace -
@@ -402,7 +412,7 @@ static void writeNspace (unsigned int n);
    DumpStringInfo -
 */
 
-static void DumpStringInfo (DynamicStrings_String s, unsigned int i);
+static void DumpStringInfo (DynamicStrings_String__opaque s, unsigned int i);
 
 /*
    DumpStringInfo -
@@ -420,7 +430,7 @@ static void doDSdbEnter (void);
    doDSdbExit -
 */
 
-static void doDSdbExit (DynamicStrings_String s);
+static void doDSdbExit (DynamicStrings_String__opaque s);
 
 /*
    DSdbEnter -
@@ -432,8 +442,8 @@ static void DSdbEnter (void);
    DSdbExit -
 */
 
-static void DSdbExit (DynamicStrings_String s);
-static unsigned int Capture (DynamicStrings_String s);
+static void DSdbExit (DynamicStrings_String__opaque s);
+static unsigned int Capture (DynamicStrings_String__opaque s);
 
 /*
    Min -
@@ -487,73 +497,73 @@ static void writeLn (void);
    AssignDebug - assigns, file, and, line, information to string, s.
 */
 
-static DynamicStrings_String AssignDebug (DynamicStrings_String s, const char *file_, unsigned int _file_high, unsigned int line, const char *proc_, unsigned int _proc_high);
+static DynamicStrings_String__opaque AssignDebug (DynamicStrings_String__opaque s, const char *file_, unsigned int _file_high, unsigned int line, const char *proc_, unsigned int _proc_high);
 
 /*
    IsOn - returns TRUE if, s, is on one of the debug lists.
 */
 
-static bool IsOn (DynamicStrings_String list, DynamicStrings_String s);
+static bool IsOn (DynamicStrings_String__opaque list, DynamicStrings_String__opaque s);
 
 /*
    AddTo - adds string, s, to, list.
 */
 
-static void AddTo (DynamicStrings_String *list, DynamicStrings_String s);
+static void AddTo (DynamicStrings_String__opaque *list, DynamicStrings_String__opaque s);
 
 /*
    SubFrom - removes string, s, from, list.
 */
 
-static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s);
+static void SubFrom (DynamicStrings_String__opaque *list, DynamicStrings_String__opaque s);
 
 /*
    AddAllocated - adds string, s, to the head of the allocated list.
 */
 
-static void AddAllocated (DynamicStrings_String s);
+static void AddAllocated (DynamicStrings_String__opaque s);
 
 /*
    AddDeallocated - adds string, s, to the head of the deallocated list.
 */
 
-static void AddDeallocated (DynamicStrings_String s);
+static void AddDeallocated (DynamicStrings_String__opaque s);
 
 /*
    IsOnAllocated - returns TRUE if the string, s, has ever been allocated.
 */
 
-static bool IsOnAllocated (DynamicStrings_String s);
+static bool IsOnAllocated (DynamicStrings_String__opaque s);
 
 /*
    IsOnDeallocated - returns TRUE if the string, s, has ever been deallocated.
 */
 
-static bool IsOnDeallocated (DynamicStrings_String s);
+static bool IsOnDeallocated (DynamicStrings_String__opaque s);
 
 /*
    SubAllocated - removes string, s, from the list of allocated strings.
 */
 
-static void SubAllocated (DynamicStrings_String s);
+static void SubAllocated (DynamicStrings_String__opaque s);
 
 /*
    SubDeallocated - removes string, s, from the list of deallocated strings.
 */
 
-static void SubDeallocated (DynamicStrings_String s);
+static void SubDeallocated (DynamicStrings_String__opaque s);
 
 /*
    SubDebugInfo - removes string, s, from the list of allocated strings.
 */
 
-static void SubDebugInfo (DynamicStrings_String s);
+static void SubDebugInfo (DynamicStrings_String__opaque s);
 
 /*
    AddDebugInfo - adds string, s, to the list of allocated strings.
 */
 
-static void AddDebugInfo (DynamicStrings_String s);
+static void AddDebugInfo (DynamicStrings_String__opaque s);
 
 /*
    ConcatContents - add the contents of string, a, where, h, is the
@@ -566,19 +576,19 @@ static void ConcatContents (DynamicStrings_Contents *c, const char *a_, unsigned
    DeallocateCharStar - deallocates any charStar.
 */
 
-static void DeallocateCharStar (DynamicStrings_String s);
+static void DeallocateCharStar (DynamicStrings_String__opaque s);
 
 /*
    CheckPoisoned - checks for a poisoned string, s.
 */
 
-static DynamicStrings_String CheckPoisoned (DynamicStrings_String s);
+static DynamicStrings_String__opaque CheckPoisoned (DynamicStrings_String__opaque s);
 
 /*
    MarkInvalid - marks the char * version of String, s, as invalid.
 */
 
-static void MarkInvalid (DynamicStrings_String s);
+static void MarkInvalid (DynamicStrings_String__opaque s);
 
 /*
    ConcatContentsAddress - concatenate the string, a, where, h, is the
@@ -593,13 +603,13 @@ static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigne
                   onlist.  String, a, is returned.
 */
 
-static DynamicStrings_String AddToGarbage (DynamicStrings_String a, DynamicStrings_String b);
+static DynamicStrings_String__opaque AddToGarbage (DynamicStrings_String__opaque a, DynamicStrings_String__opaque b);
 
 /*
    IsOnGarbage - returns TRUE if, s, is on string, e, garbage list.
 */
 
-static bool IsOnGarbage (DynamicStrings_String e, DynamicStrings_String s);
+static bool IsOnGarbage (DynamicStrings_String__opaque e, DynamicStrings_String__opaque s);
 
 /*
    IsWhite - returns TRUE if, ch, is a space or a tab.
@@ -611,19 +621,19 @@ static bool IsWhite (char ch);
    DumpState -
 */
 
-static void DumpState (DynamicStrings_String s);
+static void DumpState (DynamicStrings_String__opaque s);
 
 /*
    DumpStringSynopsis -
 */
 
-static void DumpStringSynopsis (DynamicStrings_String s);
+static void DumpStringSynopsis (DynamicStrings_String__opaque s);
 
 /*
    DumpString - displays the contents of string, s.
 */
 
-static void DumpString (DynamicStrings_String s);
+static void DumpString (DynamicStrings_String__opaque s);
 
 /*
    Init - initialize the module.
@@ -635,7 +645,7 @@ static void Init (void);
 /*
  writeStringDesc write out debugging information about string, s.  */
 
-static void writeStringDesc (DynamicStrings_String s)
+static void writeStringDesc (DynamicStrings_String__opaque s)
 {
   writeCstring (s->debug.file);
   writeString ((const char *) ":", 1);
@@ -691,7 +701,7 @@ static void writeNspace (unsigned int n)
    DumpStringInfo -
 */
 
-static void DumpStringInfo (DynamicStrings_String s, unsigned int i)
+static void DumpStringInfo (DynamicStrings_String__opaque s, unsigned int i)
 {
   if (s != NULL)
     {
@@ -739,11 +749,11 @@ static void doDSdbEnter (void)
    doDSdbExit -
 */
 
-static void doDSdbExit (DynamicStrings_String s)
+static void doDSdbExit (DynamicStrings_String__opaque s)
 {
   if (CheckOn)
     {
-      s = DynamicStrings_PopAllocationExemption (true, s);
+      s = static_cast<DynamicStrings_String__opaque> (DynamicStrings_PopAllocationExemption (true, static_cast<DynamicStrings_String> (s)));
     }
 }
 
@@ -761,11 +771,11 @@ static void DSdbEnter (void)
    DSdbExit -
 */
 
-static void DSdbExit (DynamicStrings_String s)
+static void DSdbExit (DynamicStrings_String__opaque s)
 {
 }
 
-static unsigned int Capture (DynamicStrings_String s)
+static unsigned int Capture (DynamicStrings_String__opaque s)
 {
   /* 
  *   #undef GM2_DEBUG_DYNAMICSTINGS
@@ -833,7 +843,7 @@ static void writeString (const char *a_, unsigned int _a_high)
   /* make a local copy of each unbounded array.  */
   memcpy (a, a_, _a_high+1);
 
-  i = static_cast<int> (libc_write (1, &a, static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
+  i = static_cast<int> (libc_write (1, const_cast<void*> (static_cast<const void*>(a)), static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
 }
 
 
@@ -941,7 +951,7 @@ static void writeLn (void)
    AssignDebug - assigns, file, and, line, information to string, s.
 */
 
-static DynamicStrings_String AssignDebug (DynamicStrings_String s, const char *file_, unsigned int _file_high, unsigned int line, const char *proc_, unsigned int _proc_high)
+static DynamicStrings_String__opaque AssignDebug (DynamicStrings_String__opaque s, const char *file_, unsigned int _file_high, unsigned int line, const char *proc_, unsigned int _proc_high)
 {
   void * f;
   void * p;
@@ -952,8 +962,8 @@ static DynamicStrings_String AssignDebug (DynamicStrings_String s, const char *f
   memcpy (file, file_, _file_high+1);
   memcpy (proc, proc_, _proc_high+1);
 
-  f = &file;
-  p = &proc;
+  f = const_cast<void*> (static_cast<const void*>(file));
+  p = const_cast<void*> (static_cast<const void*>(proc));
   Storage_ALLOCATE (&s->debug.file, (StrLib_StrLen ((const char *) file, _file_high))+1);
   if ((libc_strncpy (s->debug.file, f, (StrLib_StrLen ((const char *) file, _file_high))+1)) == NULL)
     {}  /* empty.  */
@@ -971,7 +981,7 @@ static DynamicStrings_String AssignDebug (DynamicStrings_String s, const char *f
    IsOn - returns TRUE if, s, is on one of the debug lists.
 */
 
-static bool IsOn (DynamicStrings_String list, DynamicStrings_String s)
+static bool IsOn (DynamicStrings_String__opaque list, DynamicStrings_String__opaque s)
 {
   while ((list != s) && (list != NULL))
     {
@@ -987,12 +997,12 @@ static bool IsOn (DynamicStrings_String list, DynamicStrings_String s)
    AddTo - adds string, s, to, list.
 */
 
-static void AddTo (DynamicStrings_String *list, DynamicStrings_String s)
+static void AddTo (DynamicStrings_String__opaque *list, DynamicStrings_String__opaque s)
 {
   if ((*list) == NULL)
     {
       (*list) = s;
-      s->debug.next = NULL;
+      s->debug.next = static_cast<DynamicStrings_String__opaque> (NULL);
     }
   else
     {
@@ -1006,9 +1016,9 @@ static void AddTo (DynamicStrings_String *list, DynamicStrings_String s)
    SubFrom - removes string, s, from, list.
 */
 
-static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s)
+static void SubFrom (DynamicStrings_String__opaque *list, DynamicStrings_String__opaque s)
 {
-  DynamicStrings_String p;
+  DynamicStrings_String__opaque p;
 
   if ((*list) == s)
     {
@@ -1028,10 +1038,10 @@ static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s)
       else
         {
           /* not found, quit  */
-          return ;
+          return;
         }
     }
-  s->debug.next = NULL;
+  s->debug.next = static_cast<DynamicStrings_String__opaque> (NULL);
 }
 
 
@@ -1039,7 +1049,7 @@ static void SubFrom (DynamicStrings_String *list, DynamicStrings_String s)
    AddAllocated - adds string, s, to the head of the allocated list.
 */
 
-static void AddAllocated (DynamicStrings_String s)
+static void AddAllocated (DynamicStrings_String__opaque s)
 {
   Init ();
   AddTo (&frameHead->alloc, s);
@@ -1050,7 +1060,7 @@ static void AddAllocated (DynamicStrings_String s)
    AddDeallocated - adds string, s, to the head of the deallocated list.
 */
 
-static void AddDeallocated (DynamicStrings_String s)
+static void AddDeallocated (DynamicStrings_String__opaque s)
 {
   Init ();
   AddTo (&frameHead->dealloc, s);
@@ -1061,7 +1071,7 @@ static void AddDeallocated (DynamicStrings_String s)
    IsOnAllocated - returns TRUE if the string, s, has ever been allocated.
 */
 
-static bool IsOnAllocated (DynamicStrings_String s)
+static bool IsOnAllocated (DynamicStrings_String__opaque s)
 {
   DynamicStrings_frame f;
 
@@ -1087,7 +1097,7 @@ static bool IsOnAllocated (DynamicStrings_String s)
    IsOnDeallocated - returns TRUE if the string, s, has ever been deallocated.
 */
 
-static bool IsOnDeallocated (DynamicStrings_String s)
+static bool IsOnDeallocated (DynamicStrings_String__opaque s)
 {
   DynamicStrings_frame f;
 
@@ -1113,7 +1123,7 @@ static bool IsOnDeallocated (DynamicStrings_String s)
    SubAllocated - removes string, s, from the list of allocated strings.
 */
 
-static void SubAllocated (DynamicStrings_String s)
+static void SubAllocated (DynamicStrings_String__opaque s)
 {
   DynamicStrings_frame f;
 
@@ -1123,7 +1133,7 @@ static void SubAllocated (DynamicStrings_String s)
     if (IsOn (f->alloc, s))
       {
         SubFrom (&f->alloc, s);
-        return ;
+        return;
       }
     else
       {
@@ -1137,7 +1147,7 @@ static void SubAllocated (DynamicStrings_String s)
    SubDeallocated - removes string, s, from the list of deallocated strings.
 */
 
-static void SubDeallocated (DynamicStrings_String s)
+static void SubDeallocated (DynamicStrings_String__opaque s)
 {
   DynamicStrings_frame f;
 
@@ -1147,7 +1157,7 @@ static void SubDeallocated (DynamicStrings_String s)
     if (IsOn (f->dealloc, s))
       {
         SubFrom (&f->dealloc, s);
-        return ;
+        return;
       }
     else
       {
@@ -1161,13 +1171,13 @@ static void SubDeallocated (DynamicStrings_String s)
    SubDebugInfo - removes string, s, from the list of allocated strings.
 */
 
-static void SubDebugInfo (DynamicStrings_String s)
+static void SubDebugInfo (DynamicStrings_String__opaque s)
 {
   if (IsOnDeallocated (s))
     {
       Assertion_Assert (! DebugOn);
       /* string has already been deallocated  */
-      return ;
+      return;
     }
   if (IsOnAllocated (s))
     {
@@ -1186,9 +1196,9 @@ static void SubDebugInfo (DynamicStrings_String s)
    AddDebugInfo - adds string, s, to the list of allocated strings.
 */
 
-static void AddDebugInfo (DynamicStrings_String s)
+static void AddDebugInfo (DynamicStrings_String__opaque s)
 {
-  s->debug.next = NULL;
+  s->debug.next = static_cast<DynamicStrings_String__opaque> (NULL);
   s->debug.file = NULL;
   s->debug.line = 0;
   s->debug.proc = NULL;
@@ -1225,7 +1235,7 @@ static void ConcatContents (DynamicStrings_Contents *c, const char *a_, unsigned
       Storage_ALLOCATE ((void **) &(*c).next, sizeof (DynamicStrings_stringRecord));
       (*c).next->head = NULL;
       (*c).next->contents.len = 0;
-      (*c).next->contents.next = NULL;
+      (*c).next->contents.next = static_cast<DynamicStrings_String__opaque> (NULL);
       ConcatContents (&(*c).next->contents, (const char *) a, _a_high, h, o);
       AddDebugInfo ((*c).next);
       (*c).next = AssignDebug ((*c).next, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 722, (const char *) "ConcatContents", 14);
@@ -1241,7 +1251,7 @@ static void ConcatContents (DynamicStrings_Contents *c, const char *a_, unsigned
    DeallocateCharStar - deallocates any charStar.
 */
 
-static void DeallocateCharStar (DynamicStrings_String s)
+static void DeallocateCharStar (DynamicStrings_String__opaque s)
 {
   if ((s != NULL) && (s->head != NULL))
     {
@@ -1261,7 +1271,7 @@ static void DeallocateCharStar (DynamicStrings_String s)
    CheckPoisoned - checks for a poisoned string, s.
 */
 
-static DynamicStrings_String CheckPoisoned (DynamicStrings_String s)
+static DynamicStrings_String__opaque CheckPoisoned (DynamicStrings_String__opaque s)
 {
   if (((PoisonOn && (s != NULL)) && (s->head != NULL)) && (s->head->state == DynamicStrings_poisoned))
     {
@@ -1278,7 +1288,7 @@ static DynamicStrings_String CheckPoisoned (DynamicStrings_String s)
    MarkInvalid - marks the char * version of String, s, as invalid.
 */
 
-static void MarkInvalid (DynamicStrings_String s)
+static void MarkInvalid (DynamicStrings_String__opaque s)
 {
   if (PoisonOn)
     {
@@ -1321,7 +1331,7 @@ static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigne
       Storage_ALLOCATE ((void **) &(*c).next, sizeof (DynamicStrings_stringRecord));
       (*c).next->head = NULL;
       (*c).next->contents.len = 0;
-      (*c).next->contents.next = NULL;
+      (*c).next->contents.next = static_cast<DynamicStrings_String__opaque> (NULL);
       ConcatContentsAddress (&(*c).next->contents, reinterpret_cast<void *> (p), h-j);
       AddDebugInfo ((*c).next);
       if (TraceOn)
@@ -1332,7 +1342,7 @@ static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigne
   else
     {
       (*c).len = i;
-      (*c).next = NULL;
+      (*c).next = static_cast<DynamicStrings_String__opaque> (NULL);
     }
 }
 
@@ -1343,9 +1353,9 @@ static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigne
                   onlist.  String, a, is returned.
 */
 
-static DynamicStrings_String AddToGarbage (DynamicStrings_String a, DynamicStrings_String b)
+static DynamicStrings_String__opaque AddToGarbage (DynamicStrings_String__opaque a, DynamicStrings_String__opaque b)
 {
-  DynamicStrings_String c;
+  DynamicStrings_String__opaque c;
 
   if (PoisonOn)
     {
@@ -1382,7 +1392,7 @@ static DynamicStrings_String AddToGarbage (DynamicStrings_String a, DynamicStrin
    IsOnGarbage - returns TRUE if, s, is on string, e, garbage list.
 */
 
-static bool IsOnGarbage (DynamicStrings_String e, DynamicStrings_String s)
+static bool IsOnGarbage (DynamicStrings_String__opaque e, DynamicStrings_String__opaque s)
 {
   if ((e != NULL) && (s != NULL))
     {
@@ -1420,7 +1430,7 @@ static bool IsWhite (char ch)
    DumpState -
 */
 
-static void DumpState (DynamicStrings_String s)
+static void DumpState (DynamicStrings_String__opaque s)
 {
   switch (s->head->state)
     {
@@ -1454,7 +1464,7 @@ static void DumpState (DynamicStrings_String s)
    DumpStringSynopsis -
 */
 
-static void DumpStringSynopsis (DynamicStrings_String s)
+static void DumpStringSynopsis (DynamicStrings_String__opaque s)
 {
   writeCstring (s->debug.file);
   writeString ((const char *) ":", 1);
@@ -1487,9 +1497,9 @@ static void DumpStringSynopsis (DynamicStrings_String s)
    DumpString - displays the contents of string, s.
 */
 
-static void DumpString (DynamicStrings_String s)
+static void DumpString (DynamicStrings_String__opaque s)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (s != NULL)
     {
@@ -1531,7 +1541,7 @@ static void Init (void)
 
 extern "C" DynamicStrings_String DynamicStrings_InitString (const char *a_, unsigned int _a_high)
 {
-  DynamicStrings_String s;
+  DynamicStrings_String__opaque s;
   char a[_a_high+1];
 
   /* make a local copy of each unbounded array.  */
@@ -1539,21 +1549,21 @@ extern "C" DynamicStrings_String DynamicStrings_InitString (const char *a_, unsi
 
   Storage_ALLOCATE ((void **) &s, sizeof (DynamicStrings_stringRecord));
   s->contents.len = 0;
-  s->contents.next = NULL;
+  s->contents.next = static_cast<DynamicStrings_String__opaque> (NULL);
   ConcatContents (&s->contents, (const char *) a, _a_high, StrLib_StrLen ((const char *) a, _a_high), 0);
   Storage_ALLOCATE ((void **) &s->head, sizeof (DynamicStrings_descriptor));
   s->head->charStarUsed = false;
   s->head->charStar = NULL;
   s->head->charStarSize = 0;
   s->head->charStarValid = false;
-  s->head->garbage = NULL;
+  s->head->garbage = static_cast<DynamicStrings_String__opaque> (NULL);
   s->head->state = DynamicStrings_inuse;
   AddDebugInfo (s);
   if (TraceOn)
     {
       s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 758, (const char *) "InitString", 10);
     }
-  return s;
+  return static_cast<DynamicStrings_String> (s);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1566,48 +1576,48 @@ extern "C" DynamicStrings_String DynamicStrings_InitString (const char *a_, unsi
 
 extern "C" DynamicStrings_String DynamicStrings_KillString (DynamicStrings_String s)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (s != NULL)
     {
       if (CheckOn)
         {
           /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-          if (IsOnAllocated (s))
+          if (IsOnAllocated (static_cast<DynamicStrings_String__opaque> (s)))
             {
-              SubAllocated (s);
+              SubAllocated (static_cast<DynamicStrings_String__opaque> (s));
             }
-          else if (IsOnDeallocated (s))
+          else if (IsOnDeallocated (static_cast<DynamicStrings_String__opaque> (s)))
             {
               /* avoid dangling else.  */
-              SubDeallocated (s);
+              SubDeallocated (static_cast<DynamicStrings_String__opaque> (s));
             }
         }
-      if (s->head != NULL)
+      if (static_cast<DynamicStrings_String__opaque> (s)->head != NULL)
         {
-          s->head->state = DynamicStrings_poisoned;
-          s->head->garbage = DynamicStrings_KillString (s->head->garbage);
+          static_cast<DynamicStrings_String__opaque> (s)->head->state = DynamicStrings_poisoned;
+          static_cast<DynamicStrings_String__opaque> (s)->head->garbage = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->head->garbage)));
           if (! PoisonOn)
             {
-              DeallocateCharStar (s);
+              DeallocateCharStar (static_cast<DynamicStrings_String__opaque> (s));
             }
           if (! PoisonOn)
             {
-              Storage_DEALLOCATE ((void **) &s->head, sizeof (DynamicStrings_descriptor));
-              s->head = NULL;
+              Storage_DEALLOCATE ((void **) &static_cast<DynamicStrings_String__opaque> (s)->head, sizeof (DynamicStrings_descriptor));
+              static_cast<DynamicStrings_String__opaque> (s)->head = NULL;
             }
         }
-      t = DynamicStrings_KillString (s->contents.next);
+      t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next)));
       if (! PoisonOn)
         {
           Storage_DEALLOCATE ((void **) &s, sizeof (DynamicStrings_stringRecord));
         }
     }
-  return NULL;
+  return static_cast<DynamicStrings_String> (NULL);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1635,11 +1645,11 @@ extern "C" void DynamicStrings_Fin (DynamicStrings_String s)
 
 extern "C" DynamicStrings_String DynamicStrings_InitStringCharStar (void * a)
 {
-  DynamicStrings_String s;
+  DynamicStrings_String__opaque s;
 
   Storage_ALLOCATE ((void **) &s, sizeof (DynamicStrings_stringRecord));
   s->contents.len = 0;
-  s->contents.next = NULL;
+  s->contents.next = static_cast<DynamicStrings_String__opaque> (NULL);
   if (a != NULL)
     {
       ConcatContentsAddress (&s->contents, a, static_cast<unsigned int> (libc_strlen (a)));
@@ -1649,14 +1659,14 @@ extern "C" DynamicStrings_String DynamicStrings_InitStringCharStar (void * a)
   s->head->charStar = NULL;
   s->head->charStarSize = 0;
   s->head->charStarValid = false;
-  s->head->garbage = NULL;
+  s->head->garbage = static_cast<DynamicStrings_String__opaque> (NULL);
   s->head->state = DynamicStrings_inuse;
   AddDebugInfo (s);
   if (TraceOn)
     {
       s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 957, (const char *) "InitStringCharStar", 18);
     }
-  return s;
+  return static_cast<DynamicStrings_String> (s);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1672,16 +1682,16 @@ extern "C" DynamicStrings_String DynamicStrings_InitStringChar (char ch)
 
   struct InitStringChar__T5_a { char array[1+1]; };
   InitStringChar__T5 a;
-  DynamicStrings_String s;
+  DynamicStrings_String__opaque s;
 
   a.array[0] = ch;
   a.array[1] = ASCII_nul;
-  s = DynamicStrings_InitString ((const char *) &a.array[0], 1);
+  s = static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitString ((const char *) &a.array[0], 1));
   if (TraceOn)
     {
       s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 977, (const char *) "InitStringChar", 14);
     }
-  return s;
+  return static_cast<DynamicStrings_String> (s);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1695,11 +1705,11 @@ extern "C" DynamicStrings_String DynamicStrings_Mark (DynamicStrings_String s)
 {
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
-  if ((s != NULL) && (s->head->state == DynamicStrings_inuse))
+  if ((s != NULL) && (static_cast<DynamicStrings_String__opaque> (s)->head->state == DynamicStrings_inuse))
     {
-      s->head->state = DynamicStrings_marked;
+      static_cast<DynamicStrings_String__opaque> (s)->head->state = DynamicStrings_marked;
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1719,7 +1729,7 @@ extern "C" unsigned int DynamicStrings_Length (DynamicStrings_String s)
     }
   else
     {
-      return s->contents.len+(DynamicStrings_Length (s->contents.next));
+      return static_cast<DynamicStrings_String__opaque> (s)->contents.len+(DynamicStrings_Length (static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next)));
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -1732,12 +1742,12 @@ extern "C" unsigned int DynamicStrings_Length (DynamicStrings_String s)
 
 extern "C" DynamicStrings_String DynamicStrings_ConCat (DynamicStrings_String a, DynamicStrings_String b)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (PoisonOn)
     {
-      a = CheckPoisoned (a);
-      b = CheckPoisoned (b);
+      a = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (a)));
+      b = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (b)));
     }
   if (a == b)
     {
@@ -1746,17 +1756,17 @@ extern "C" DynamicStrings_String DynamicStrings_ConCat (DynamicStrings_String a,
   else if (a != NULL)
     {
       /* avoid dangling else.  */
-      a = AddToGarbage (a, b);
-      MarkInvalid (a);
-      t = a;
+      a = static_cast<DynamicStrings_String> (AddToGarbage (static_cast<DynamicStrings_String__opaque> (a), static_cast<DynamicStrings_String__opaque> (b)));
+      MarkInvalid (static_cast<DynamicStrings_String__opaque> (a));
+      t = static_cast<DynamicStrings_String__opaque> (a);
       while (b != NULL)
         {
           while ((t->contents.len == MaxBuf) && (t->contents.next != NULL))
             {
               t = t->contents.next;
             }
-          ConcatContents (&t->contents, (const char *) &b->contents.buf.array[0], (MaxBuf-1), b->contents.len, 0);
-          b = b->contents.next;
+          ConcatContents (&t->contents, (const char *) &static_cast<DynamicStrings_String__opaque> (b)->contents.buf.array[0], (MaxBuf-1), static_cast<DynamicStrings_String__opaque> (b)->contents.len, 0);
+          b = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (b)->contents.next);
         }
     }
   if ((a == NULL) && (b != NULL))
@@ -1780,16 +1790,16 @@ extern "C" DynamicStrings_String DynamicStrings_ConCatChar (DynamicStrings_Strin
 
   struct ConCatChar__T6_a { char array[1+1]; };
   ConCatChar__T6 b;
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (PoisonOn)
     {
-      a = CheckPoisoned (a);
+      a = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (a)));
     }
   b.array[0] = ch;
   b.array[1] = ASCII_nul;
-  t = a;
-  MarkInvalid (a);
+  t = static_cast<DynamicStrings_String__opaque> (a);
+  MarkInvalid (static_cast<DynamicStrings_String__opaque> (a));
   while ((t->contents.len == MaxBuf) && (t->contents.next != NULL))
     {
       t = t->contents.next;
@@ -1810,13 +1820,13 @@ extern "C" DynamicStrings_String DynamicStrings_Assign (DynamicStrings_String a,
 {
   if (PoisonOn)
     {
-      a = CheckPoisoned (a);
-      b = CheckPoisoned (b);
+      a = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (a)));
+      b = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (b)));
     }
   if ((a != NULL) && (b != NULL))
     {
-      a->contents.next = DynamicStrings_KillString (a->contents.next);
-      a->contents.len = 0;
+      static_cast<DynamicStrings_String__opaque> (a)->contents.next = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (a)->contents.next)));
+      static_cast<DynamicStrings_String__opaque> (a)->contents.len = 0;
     }
   return DynamicStrings_ConCat (a, b);
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1830,10 +1840,10 @@ extern "C" DynamicStrings_String DynamicStrings_Assign (DynamicStrings_String a,
 
 extern "C" DynamicStrings_String DynamicStrings_ReplaceChar (DynamicStrings_String s, char from, char to)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
   unsigned int i;
 
-  t = s;
+  t = static_cast<DynamicStrings_String__opaque> (s);
   while (t != NULL)
     {
       i = 0;
@@ -1861,12 +1871,12 @@ extern "C" DynamicStrings_String DynamicStrings_Dup (DynamicStrings_String s)
 {
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   s = DynamicStrings_Assign (DynamicStrings_InitString ((const char *) "", 0), s);
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1198, (const char *) "Dup", 3);
+      s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (s), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1198, (const char *) "Dup", 3));
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1882,13 +1892,13 @@ extern "C" DynamicStrings_String DynamicStrings_Add (DynamicStrings_String a, Dy
 {
   if (PoisonOn)
     {
-      a = CheckPoisoned (a);
-      b = CheckPoisoned (b);
+      a = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (a)));
+      b = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (b)));
     }
   a = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_InitString ((const char *) "", 0), a), b);
   if (TraceOn)
     {
-      a = AssignDebug (a, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1218, (const char *) "Add", 3);
+      a = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (a), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1218, (const char *) "Add", 3));
     }
   return a;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1906,25 +1916,25 @@ extern "C" bool DynamicStrings_Equal (DynamicStrings_String a, DynamicStrings_St
 
   if (PoisonOn)
     {
-      a = CheckPoisoned (a);
-      b = CheckPoisoned (b);
+      a = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (a)));
+      b = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (b)));
     }
   if ((DynamicStrings_Length (a)) == (DynamicStrings_Length (b)))
     {
       while ((a != NULL) && (b != NULL))
         {
           i = 0;
-          Assertion_Assert (a->contents.len == b->contents.len);
-          while (i < a->contents.len)
+          Assertion_Assert (static_cast<DynamicStrings_String__opaque> (a)->contents.len == static_cast<DynamicStrings_String__opaque> (b)->contents.len);
+          while (i < static_cast<DynamicStrings_String__opaque> (a)->contents.len)
             {
-              if (a->contents.buf.array[i] != b->contents.buf.array[i])
+              if (static_cast<DynamicStrings_String__opaque> (a)->contents.buf.array[i] != static_cast<DynamicStrings_String__opaque> (b)->contents.buf.array[i])
                 {
                   return false;
                 }
               i += 1;
             }
-          a = a->contents.next;
-          b = b->contents.next;
+          a = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (a)->contents.next);
+          b = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (b)->contents.next);
         }
       return true;
     }
@@ -1944,26 +1954,26 @@ extern "C" bool DynamicStrings_Equal (DynamicStrings_String a, DynamicStrings_St
 
 extern "C" bool DynamicStrings_EqualCharStar (DynamicStrings_String s, void * a)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
-  t = DynamicStrings_InitStringCharStar (a);
+  t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitStringCharStar (a));
   if (TraceOn)
     {
       t = AssignDebug (t, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1275, (const char *) "EqualCharStar", 13);
     }
-  t = AddToGarbage (t, s);
-  if (DynamicStrings_Equal (t, s))
+  t = AddToGarbage (t, static_cast<DynamicStrings_String__opaque> (s));
+  if (DynamicStrings_Equal (static_cast<DynamicStrings_String> (t), s))
     {
-      t = DynamicStrings_KillString (t);
+      t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (t)));
       return true;
     }
   else
     {
-      t = DynamicStrings_KillString (t);
+      t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (t)));
       return false;
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1978,7 +1988,7 @@ extern "C" bool DynamicStrings_EqualCharStar (DynamicStrings_String s, void * a)
 
 extern "C" bool DynamicStrings_EqualArray (DynamicStrings_String s, const char *a_, unsigned int _a_high)
 {
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
   char a[_a_high+1];
 
   /* make a local copy of each unbounded array.  */
@@ -1986,22 +1996,22 @@ extern "C" bool DynamicStrings_EqualArray (DynamicStrings_String s, const char *
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
-  t = DynamicStrings_InitString ((const char *) a, _a_high);
+  t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitString ((const char *) a, _a_high));
   if (TraceOn)
     {
       t = AssignDebug (t, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1305, (const char *) "EqualArray", 10);
     }
-  t = AddToGarbage (t, s);
-  if (DynamicStrings_Equal (t, s))
+  t = AddToGarbage (t, static_cast<DynamicStrings_String__opaque> (s));
+  if (DynamicStrings_Equal (static_cast<DynamicStrings_String> (t), s))
     {
-      t = DynamicStrings_KillString (t);
+      t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (t)));
       return true;
     }
   else
     {
-      t = DynamicStrings_KillString (t);
+      t = static_cast<DynamicStrings_String__opaque> (DynamicStrings_KillString (static_cast<DynamicStrings_String> (t)));
       return false;
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2017,11 +2027,11 @@ extern "C" DynamicStrings_String DynamicStrings_Mult (DynamicStrings_String s, u
 {
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (n <= 0)
     {
-      s = AddToGarbage (DynamicStrings_InitString ((const char *) "", 0), s);
+      s = static_cast<DynamicStrings_String> (AddToGarbage (static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitString ((const char *) "", 0)), static_cast<DynamicStrings_String__opaque> (s)));
     }
   else
     {
@@ -2029,7 +2039,7 @@ extern "C" DynamicStrings_String DynamicStrings_Mult (DynamicStrings_String s, u
     }
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1337, (const char *) "Mult", 4);
+      s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (s), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1337, (const char *) "Mult", 4));
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2051,15 +2061,15 @@ extern "C" DynamicStrings_String DynamicStrings_Mult (DynamicStrings_String s, u
 
 extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s, int low, int high)
 {
-  DynamicStrings_String d;
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque d;
+  DynamicStrings_String__opaque t;
   int start;
   int end;
   int o;
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (low < 0)
     {
@@ -2074,17 +2084,17 @@ extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s,
       /* make sure high is <= Length (s)  */
       high = Min (DynamicStrings_Length (s), static_cast<unsigned int> (high));
     }
-  d = DynamicStrings_InitString ((const char *) "", 0);
-  d = AddToGarbage (d, s);
+  d = static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitString ((const char *) "", 0));
+  d = AddToGarbage (d, static_cast<DynamicStrings_String__opaque> (s));
   o = 0;
   t = d;
   while (s != NULL)
     {
-      if (low < (o+((int ) (s->contents.len))))
+      if (low < (o+((int ) (static_cast<DynamicStrings_String__opaque> (s)->contents.len))))
         {
           if (o > high)
             {
-              s = NULL;
+              s = static_cast<DynamicStrings_String> (NULL);
             }
           else
             {
@@ -2113,22 +2123,22 @@ extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s,
                     }
                   t = t->contents.next;
                 }
-              ConcatContentsAddress (&t->contents, &s->contents.buf.array[start], static_cast<unsigned int> (end-start));
-              o += s->contents.len;
-              s = s->contents.next;
+              ConcatContentsAddress (&t->contents, &static_cast<DynamicStrings_String__opaque> (s)->contents.buf.array[start], static_cast<unsigned int> (end-start));
+              o += static_cast<DynamicStrings_String__opaque> (s)->contents.len;
+              s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
             }
         }
       else
         {
-          o += s->contents.len;
-          s = s->contents.next;
+          o += static_cast<DynamicStrings_String__opaque> (s)->contents.len;
+          s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
         }
     }
   if (TraceOn)
     {
       d = AssignDebug (d, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1422, (const char *) "Slice", 5);
     }
-  return d;
+  return static_cast<DynamicStrings_String> (d);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2147,21 +2157,21 @@ extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   k = 0;
   while (s != NULL)
     {
-      if ((k+s->contents.len) < o)
+      if ((k+static_cast<DynamicStrings_String__opaque> (s)->contents.len) < o)
         {
-          k += s->contents.len;
+          k += static_cast<DynamicStrings_String__opaque> (s)->contents.len;
         }
       else
         {
           i = o-k;
-          while (i < s->contents.len)
+          while (i < static_cast<DynamicStrings_String__opaque> (s)->contents.len)
             {
-              if (s->contents.buf.array[i] == ch)
+              if (static_cast<DynamicStrings_String__opaque> (s)->contents.buf.array[i] == ch)
                 {
                   return k+i;
                 }
@@ -2170,7 +2180,7 @@ extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned
           k += i;
           o = k;
         }
-      s = s->contents.next;
+      s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
     }
   return -1;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2180,8 +2190,9 @@ extern "C" int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned
 
 /*
    RIndex - returns the indice of the last occurance of, ch,
-            in String, s. The search starts at position, o.
-            -1 is returned if, ch, is not found.
+            in String, s.  The search starts at position, o.
+            -1 is returned if, ch, is not found.  The search
+            is performed left to right.
 */
 
 extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o)
@@ -2192,15 +2203,15 @@ extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   j = -1;
   k = 0;
   while (s != NULL)
     {
-      if ((k+s->contents.len) < o)
+      if ((k+static_cast<DynamicStrings_String__opaque> (s)->contents.len) < o)
         {
-          k += s->contents.len;
+          k += static_cast<DynamicStrings_String__opaque> (s)->contents.len;
         }
       else
         {
@@ -2212,9 +2223,9 @@ extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned
             {
               i = o-k;
             }
-          while (i < s->contents.len)
+          while (i < static_cast<DynamicStrings_String__opaque> (s)->contents.len)
             {
-              if (s->contents.buf.array[i] == ch)
+              if (static_cast<DynamicStrings_String__opaque> (s)->contents.buf.array[i] == ch)
                 {
                   j = k;
                 }
@@ -2222,7 +2233,7 @@ extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned
               i += 1;
             }
         }
-      s = s->contents.next;
+      s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
     }
   return j;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2230,6 +2241,52 @@ extern "C" int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned
 }
 
 
+/*
+   ReverseIndex - returns the indice of the last occurance of ch
+                  in String s.  The search starts at position o
+                  and searches from right to left.  The start position
+                  may be indexed negatively from the right (-1 is the
+                  last index).
+                  The return value if ch is found will always be positive.
+                  -1 is returned if ch is not found.
+*/
+
+extern "C" int DynamicStrings_ReverseIndex (DynamicStrings_String s, char ch, int o)
+{
+  unsigned int c;
+
+  if (PoisonOn)
+    {
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
+    }
+  if (o < 0)
+    {
+      o = ((int ) (DynamicStrings_Length (s)))+o;
+      if (o < 0)
+        {
+          return -1;
+        }
+    }
+  if (((unsigned int ) (o)) < (DynamicStrings_Length (s)))
+    {
+      while (o >= 0)
+        {
+          if ((DynamicStrings_char (s, o)) == ch)
+            {
+              return o;
+            }
+          else
+            {
+              o -= 1;
+            }
+        }
+    }
+  return -1;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
 /*
    RemoveComment - assuming that, comment, is a comment delimiter
                    which indicates anything to its right is a comment
@@ -2254,7 +2311,7 @@ extern "C" DynamicStrings_String DynamicStrings_RemoveComment (DynamicStrings_St
     }
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1534, (const char *) "RemoveComment", 13);
+      s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (s), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1576, (const char *) "RemoveComment", 13));
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2279,7 +2336,7 @@ extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePrefix (DynamicString
   s = DynamicStrings_Slice (s, (int ) (i), 0);
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1646, (const char *) "RemoveWhitePrefix", 17);
+      s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (s), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1688, (const char *) "RemoveWhitePrefix", 17));
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2304,7 +2361,7 @@ extern "C" DynamicStrings_String DynamicStrings_RemoveWhitePostfix (DynamicStrin
   s = DynamicStrings_Slice (s, 0, i+1);
   if (TraceOn)
     {
-      s = AssignDebug (s, (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1668, (const char *) "RemoveWhitePostfix", 18);
+      s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (s), (const char *) "../../gcc/m2/gm2-libs/DynamicStrings.mod", 40, 1710, (const char *) "RemoveWhitePostfix", 18));
     }
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -2322,12 +2379,12 @@ extern "C" DynamicStrings_String DynamicStrings_ToUpper (DynamicStrings_String s
 {
   char ch;
   unsigned int i;
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (s != NULL)
     {
-      MarkInvalid (s);
-      t = s;
+      MarkInvalid (static_cast<DynamicStrings_String__opaque> (s));
+      t = static_cast<DynamicStrings_String__opaque> (s);
       while (t != NULL)
         {
           i = 0;
@@ -2359,12 +2416,12 @@ extern "C" DynamicStrings_String DynamicStrings_ToLower (DynamicStrings_String s
 {
   char ch;
   unsigned int i;
-  DynamicStrings_String t;
+  DynamicStrings_String__opaque t;
 
   if (s != NULL)
     {
-      MarkInvalid (s);
-      t = s;
+      MarkInvalid (static_cast<DynamicStrings_String__opaque> (s));
+      t = static_cast<DynamicStrings_String__opaque> (s);
       while (t != NULL)
         {
           i = 0;
@@ -2399,12 +2456,12 @@ extern "C" void DynamicStrings_CopyOut (char *a, unsigned int _a_high, DynamicSt
   i = 0;
   while (i < l)
     {
-      a[i] = DynamicStrings_char (s, static_cast<int> (i));
+      const_cast<char *>(a)[i] = DynamicStrings_char (s, static_cast<int> (i));
       i += 1;
     }
   if (i <= _a_high)
     {
-      a[i] = ASCII_nul;
+      const_cast<char *>(a)[i] = ASCII_nul;
     }
 }
 
@@ -2419,7 +2476,7 @@ extern "C" char DynamicStrings_char (DynamicStrings_String s, int i)
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (i < 0)
     {
@@ -2429,18 +2486,18 @@ extern "C" char DynamicStrings_char (DynamicStrings_String s, int i)
     {
       c = i;
     }
-  while ((s != NULL) && (c >= s->contents.len))
+  while ((s != NULL) && (c >= static_cast<DynamicStrings_String__opaque> (s)->contents.len))
     {
-      c -= s->contents.len;
-      s = s->contents.next;
+      c -= static_cast<DynamicStrings_String__opaque> (s)->contents.len;
+      s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
     }
-  if ((s == NULL) || (c >= s->contents.len))
+  if ((s == NULL) || (c >= static_cast<DynamicStrings_String__opaque> (s)->contents.len))
     {
       return ASCII_nul;
     }
   else
     {
-      return s->contents.buf.array[c];
+      return static_cast<DynamicStrings_String__opaque> (s)->contents.buf.array[c];
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -2455,14 +2512,14 @@ extern "C" void * DynamicStrings_string (DynamicStrings_String s)
 {
   typedef char *string__T2;
 
-  DynamicStrings_String a;
+  DynamicStrings_String__opaque a;
   unsigned int l;
   unsigned int i;
   string__T2 p;
 
   if (PoisonOn)
     {
-      s = CheckPoisoned (s);
+      s = static_cast<DynamicStrings_String> (CheckPoisoned (static_cast<DynamicStrings_String__opaque> (s)));
     }
   if (s == NULL)
     {
@@ -2470,18 +2527,18 @@ extern "C" void * DynamicStrings_string (DynamicStrings_String s)
     }
   else
     {
-      if (! s->head->charStarValid)
+      if (! static_cast<DynamicStrings_String__opaque> (s)->head->charStarValid)
         {
           l = DynamicStrings_Length (s);
-          if (! (s->head->charStarUsed && (s->head->charStarSize > l)))
+          if (! (static_cast<DynamicStrings_String__opaque> (s)->head->charStarUsed && (static_cast<DynamicStrings_String__opaque> (s)->head->charStarSize > l)))
             {
-              DeallocateCharStar (s);
-              Storage_ALLOCATE (&s->head->charStar, l+1);
-              s->head->charStarSize = l+1;
-              s->head->charStarUsed = true;
+              DeallocateCharStar (static_cast<DynamicStrings_String__opaque> (s));
+              Storage_ALLOCATE (&static_cast<DynamicStrings_String__opaque> (s)->head->charStar, l+1);
+              static_cast<DynamicStrings_String__opaque> (s)->head->charStarSize = l+1;
+              static_cast<DynamicStrings_String__opaque> (s)->head->charStarUsed = true;
             }
-          p = static_cast<string__T2> (s->head->charStar);
-          a = s;
+          p = static_cast<string__T2> (static_cast<DynamicStrings_String__opaque> (s)->head->charStar);
+          a = static_cast<DynamicStrings_String__opaque> (s);
           while (a != NULL)
             {
               i = 0;
@@ -2494,9 +2551,9 @@ extern "C" void * DynamicStrings_string (DynamicStrings_String s)
               a = a->contents.next;
             }
           (*p) = ASCII_nul;
-          s->head->charStarValid = true;
+          static_cast<DynamicStrings_String__opaque> (s)->head->charStarValid = true;
         }
-      return s->head->charStar;
+      return static_cast<DynamicStrings_String__opaque> (s)->head->charStar;
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -2516,7 +2573,7 @@ extern "C" DynamicStrings_String DynamicStrings_InitStringDB (const char *a_, un
   memcpy (a, a_, _a_high+1);
   memcpy (file, file_, _file_high+1);
 
-  return AssignDebug (DynamicStrings_InitString ((const char *) a, _a_high), (const char *) file, _file_high, line, (const char *) "InitString", 10);
+  return static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitString ((const char *) a, _a_high)), (const char *) file, _file_high, line, (const char *) "InitString", 10));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2533,7 +2590,7 @@ extern "C" DynamicStrings_String DynamicStrings_InitStringCharStarDB (void * a,
   /* make a local copy of each unbounded array.  */
   memcpy (file, file_, _file_high+1);
 
-  return AssignDebug (DynamicStrings_InitStringCharStar (a), (const char *) file, _file_high, line, (const char *) "InitStringCharStar", 18);
+  return static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitStringCharStar (a)), (const char *) file, _file_high, line, (const char *) "InitStringCharStar", 18));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2550,7 +2607,7 @@ extern "C" DynamicStrings_String DynamicStrings_InitStringCharDB (char ch, const
   /* make a local copy of each unbounded array.  */
   memcpy (file, file_, _file_high+1);
 
-  return AssignDebug (DynamicStrings_InitStringChar (ch), (const char *) file, _file_high, line, (const char *) "InitStringChar", 14);
+  return static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_InitStringChar (ch)), (const char *) file, _file_high, line, (const char *) "InitStringChar", 14));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2567,7 +2624,7 @@ extern "C" DynamicStrings_String DynamicStrings_MultDB (DynamicStrings_String s,
   /* make a local copy of each unbounded array.  */
   memcpy (file, file_, _file_high+1);
 
-  return AssignDebug (DynamicStrings_Mult (s, n), (const char *) file, _file_high, line, (const char *) "Mult", 4);
+  return static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_Mult (s, n)), (const char *) file, _file_high, line, (const char *) "Mult", 4));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2584,7 +2641,7 @@ extern "C" DynamicStrings_String DynamicStrings_DupDB (DynamicStrings_String s,
   /* make a local copy of each unbounded array.  */
   memcpy (file, file_, _file_high+1);
 
-  return AssignDebug (DynamicStrings_Dup (s), (const char *) file, _file_high, line, (const char *) "Dup", 3);
+  return static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_Dup (s)), (const char *) file, _file_high, line, (const char *) "Dup", 3));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2602,8 +2659,8 @@ extern "C" DynamicStrings_String DynamicStrings_SliceDB (DynamicStrings_String s
   memcpy (file, file_, _file_high+1);
 
   DSdbEnter ();
-  s = AssignDebug (DynamicStrings_Slice (s, low, high), (const char *) file, _file_high, line, (const char *) "Slice", 5);
-  DSdbExit (s);
+  s = static_cast<DynamicStrings_String> (AssignDebug (static_cast<DynamicStrings_String__opaque> (DynamicStrings_Slice (s, low, high)), (const char *) file, _file_high, line, (const char *) "Slice", 5));
+  DSdbExit (static_cast<DynamicStrings_String__opaque> (s));
   return s;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -2623,8 +2680,8 @@ extern "C" void DynamicStrings_PushAllocation (void)
       Init ();
       Storage_ALLOCATE ((void **) &f, sizeof (DynamicStrings_frameRec));
       f->next = frameHead;
-      f->alloc = NULL;
-      f->dealloc = NULL;
+      f->alloc = static_cast<DynamicStrings_String__opaque> (NULL);
+      f->dealloc = static_cast<DynamicStrings_String__opaque> (NULL);
       frameHead = f;
     }
 }
@@ -2643,7 +2700,7 @@ extern "C" void DynamicStrings_PopAllocation (bool halt)
 {
   if (CheckOn)
     {
-      if ((DynamicStrings_PopAllocationExemption (halt, NULL)) == NULL)
+      if ((DynamicStrings_PopAllocationExemption (halt, static_cast<DynamicStrings_String> (NULL))) == NULL)
         {}  /* empty.  */
     }
 }
@@ -2661,7 +2718,7 @@ extern "C" void DynamicStrings_PopAllocation (bool halt)
 
 extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (bool halt, DynamicStrings_String e)
 {
-  DynamicStrings_String s;
+  DynamicStrings_String__opaque s;
   bool b;
 
   Init ();
@@ -2682,7 +2739,7 @@ extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (bool hal
               s = frameHead->alloc;
               while (s != NULL)
                 {
-                  if (! (((e == s) || (IsOnGarbage (e, s))) || (IsOnGarbage (s, e))))
+                  if (! (((e == s) || (IsOnGarbage (static_cast<DynamicStrings_String__opaque> (e), s))) || (IsOnGarbage (s, static_cast<DynamicStrings_String__opaque> (e)))))
                     {
                       if (! b)
                         {
@@ -2707,12 +2764,12 @@ extern "C" DynamicStrings_String DynamicStrings_PopAllocationExemption (bool hal
   __builtin_unreachable ();
 }
 
-extern "C" void _M2_DynamicStrings_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_DynamicStrings_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   Initialized = false;
   Init ();
 }
 
-extern "C" void _M2_DynamicStrings_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_DynamicStrings_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/pge-boot/GDynamicStrings.h b/gcc/m2/pge-boot/GDynamicStrings.h
index 76f4cea6c81..e0652a7d3bd 100644
--- a/gcc/m2/pge-boot/GDynamicStrings.h
+++ b/gcc/m2/pge-boot/GDynamicStrings.h
@@ -194,12 +194,25 @@ EXTERN int DynamicStrings_Index (DynamicStrings_String s, char ch, unsigned int
 
 /*
    RIndex - returns the indice of the last occurance of, ch,
-            in String, s. The search starts at position, o.
-            -1 is returned if, ch, is not found.
+            in String, s.  The search starts at position, o.
+            -1 is returned if ch is not found.  The search
+            is performed left to right.
 */
 
 EXTERN int DynamicStrings_RIndex (DynamicStrings_String s, char ch, unsigned int o);
 
+/*
+   ReverseIndex - returns the indice of the last occurance of ch
+                  in String s.  The search starts at position o
+                  and searches from right to left.  The start position
+                  may be indexed negatively from the right (-1 is the
+                  last index).
+                  The return value if ch is found will always be positive.
+                  -1 is returned if ch is not found.
+*/
+
+EXTERN int DynamicStrings_ReverseIndex (DynamicStrings_String s, char ch, int o);
+
 /*
    RemoveComment - assuming that, comment, is a comment delimiter
                    which indicates anything to its right is a comment
diff --git a/gcc/m2/pge-boot/GM2RTS.h b/gcc/m2/pge-boot/GM2RTS.h
index 055cc95675b..4186c8f25e4 100644
--- a/gcc/m2/pge-boot/GM2RTS.h
+++ b/gcc/m2/pge-boot/GM2RTS.h
@@ -54,6 +54,11 @@ typedef struct M2RTS_ArgCVEnvP_p M2RTS_ArgCVEnvP;
 typedef void (*M2RTS_ArgCVEnvP_t) (int, void *, void *);
 struct M2RTS_ArgCVEnvP_p { M2RTS_ArgCVEnvP_t proc; };
 
+#define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep) \
+  M2RTS_RegisterModule (reinterpret_cast <void *> (const_cast <char *> (MODNAME)), \
+			reinterpret_cast <void *> (const_cast <char *> (LIBNAME)), \
+			init, fini, dep)
+
 EXTERN void M2RTS_ConstructModules (void * applicationmodule, void * libname, void * overrideliborder, int argc, void * argv, void * envp);
 EXTERN void M2RTS_DeconstructModules (void * applicationmodule, void * libname, int argc, void * argv, void * envp);
 
@@ -63,7 +68,10 @@ EXTERN void M2RTS_DeconstructModules (void * applicationmodule, void * libname,
                     explored to determine initialization order.
 */
 
-EXTERN void M2RTS_RegisterModule (void * name, void * libname, M2RTS_ArgCVEnvP init, M2RTS_ArgCVEnvP fini, PROC dependencies);
+EXTERN void M2RTS_RegisterModule (void *name, void *libname,
+				  M2RTS_ArgCVEnvP init,
+				  M2RTS_ArgCVEnvP fini,
+				  PROC dependencies);
 
 /*
    RequestDependant - used to specify that modulename is dependant upon
diff --git a/gcc/m2/pge-boot/GSymbolKey.cc b/gcc/m2/pge-boot/GSymbolKey.cc
index 5f22ae2be64..ec27e2c67b6 100644
--- a/gcc/m2/pge-boot/GSymbolKey.cc
+++ b/gcc/m2/pge-boot/GSymbolKey.cc
@@ -20,6 +20,8 @@ You should have received a copy of the GNU General Public License
 along with GNU Modula-2; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+#include "config.h"
+#include "system.h"
 #include <stdbool.h>
 #   if !defined (PROC_D)
 #      define PROC_D
@@ -31,15 +33,14 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #      define FALSE (1==0)
 #   endif
 
-#include <stddef.h>
 #   include "GStorage.h"
 #if defined(__cplusplus)
 #   undef NULL
 #   define NULL 0
 #endif
-#define _SymbolKey_H
 #define _SymbolKey_C
 
+#include "GSymbolKey.h"
 #   include "GStorage.h"
 #   include "GStrIO.h"
 #   include "GNumberIO.h"
@@ -54,19 +55,13 @@ typedef struct SymbolKey_PerformOperation_p SymbolKey_PerformOperation;
 
 typedef struct SymbolKey_Node_r SymbolKey_Node;
 
-typedef SymbolKey_Node *SymbolKey_SymbolTree;
-
-typedef bool (*SymbolKey_IsSymbol_t) (unsigned int);
-struct SymbolKey_IsSymbol_p { SymbolKey_IsSymbol_t proc; };
-
-typedef void (*SymbolKey_PerformOperation_t) (unsigned int);
-struct SymbolKey_PerformOperation_p { SymbolKey_PerformOperation_t proc; };
+typedef SymbolKey_Node *SymbolKey_SymbolTree__opaque;
 
 struct SymbolKey_Node_r {
                           NameKey_Name KeyName;
                           unsigned int KeySym;
-                          SymbolKey_SymbolTree Left;
-                          SymbolKey_SymbolTree Right;
+                          SymbolKey_SymbolTree__opaque Left;
+                          SymbolKey_SymbolTree__opaque Right;
                         };
 
 extern "C" void SymbolKey_InitTree (SymbolKey_SymbolTree *t);
@@ -142,7 +137,7 @@ extern "C" void SymbolKey_ForeachNodeConditionDo (SymbolKey_SymbolTree t, Symbol
                           if an entry is found, parent is set to the node above child.
 */
 
-static void FindNodeParentInTree (SymbolKey_SymbolTree t, NameKey_Name n, SymbolKey_SymbolTree *child, SymbolKey_SymbolTree *parent);
+static void FindNodeParentInTree (SymbolKey_SymbolTree__opaque t, NameKey_Name n, SymbolKey_SymbolTree__opaque *child, SymbolKey_SymbolTree__opaque *parent);
 
 /*
    SearchForAny - performs the search required for DoesTreeContainAny.
@@ -150,7 +145,7 @@ static void FindNodeParentInTree (SymbolKey_SymbolTree t, NameKey_Name n, Symbol
                   therefore we must skip over it.
 */
 
-static bool SearchForAny (SymbolKey_SymbolTree t, SymbolKey_IsSymbol P);
+static bool SearchForAny (SymbolKey_SymbolTree__opaque t, SymbolKey_IsSymbol P);
 
 /*
    SearchAndDo - searches all the nodes in SymbolTree, t, and
@@ -158,19 +153,19 @@ static bool SearchForAny (SymbolKey_SymbolTree t, SymbolKey_IsSymbol P);
                  It traverse the tree in order.
 */
 
-static void SearchAndDo (SymbolKey_SymbolTree t, SymbolKey_PerformOperation P);
+static void SearchAndDo (SymbolKey_SymbolTree__opaque t, SymbolKey_PerformOperation P);
 
 /*
    CountNodes - wrapper for NoOfNodes.
 */
 
-static unsigned int CountNodes (SymbolKey_SymbolTree t, SymbolKey_IsSymbol condition, unsigned int count);
+static unsigned int CountNodes (SymbolKey_SymbolTree__opaque t, SymbolKey_IsSymbol condition, unsigned int count);
 
 /*
    SearchConditional - wrapper for ForeachNodeConditionDo.
 */
 
-static void SearchConditional (SymbolKey_SymbolTree t, SymbolKey_IsSymbol condition, SymbolKey_PerformOperation P);
+static void SearchConditional (SymbolKey_SymbolTree__opaque t, SymbolKey_IsSymbol condition, SymbolKey_PerformOperation P);
 
 
 /*
@@ -178,7 +173,7 @@ static void SearchConditional (SymbolKey_SymbolTree t, SymbolKey_IsSymbol condit
                           if an entry is found, parent is set to the node above child.
 */
 
-static void FindNodeParentInTree (SymbolKey_SymbolTree t, NameKey_Name n, SymbolKey_SymbolTree *child, SymbolKey_SymbolTree *parent)
+static void FindNodeParentInTree (SymbolKey_SymbolTree__opaque t, NameKey_Name n, SymbolKey_SymbolTree__opaque *child, SymbolKey_SymbolTree__opaque *parent)
 {
   /* remember to skip the sentinal value and assign parent and child  */
   (*parent) = t;
@@ -213,7 +208,7 @@ static void FindNodeParentInTree (SymbolKey_SymbolTree t, NameKey_Name n, Symbol
                   therefore we must skip over it.
 */
 
-static bool SearchForAny (SymbolKey_SymbolTree t, SymbolKey_IsSymbol P)
+static bool SearchForAny (SymbolKey_SymbolTree__opaque t, SymbolKey_IsSymbol P)
 {
   if (t == NULL)
     {
@@ -234,7 +229,7 @@ static bool SearchForAny (SymbolKey_SymbolTree t, SymbolKey_IsSymbol P)
                  It traverse the tree in order.
 */
 
-static void SearchAndDo (SymbolKey_SymbolTree t, SymbolKey_PerformOperation P)
+static void SearchAndDo (SymbolKey_SymbolTree__opaque t, SymbolKey_PerformOperation P)
 {
   if (t != NULL)
     {
@@ -249,7 +244,7 @@ static void SearchAndDo (SymbolKey_SymbolTree t, SymbolKey_PerformOperation P)
    CountNodes - wrapper for NoOfNodes.
 */
 
-static unsigned int CountNodes (SymbolKey_SymbolTree t, SymbolKey_IsSymbol condition, unsigned int count)
+static unsigned int CountNodes (SymbolKey_SymbolTree__opaque t, SymbolKey_IsSymbol condition, unsigned int count)
 {
   if (t != NULL)
     {
@@ -270,7 +265,7 @@ static unsigned int CountNodes (SymbolKey_SymbolTree t, SymbolKey_IsSymbol condi
    SearchConditional - wrapper for ForeachNodeConditionDo.
 */
 
-static void SearchConditional (SymbolKey_SymbolTree t, SymbolKey_IsSymbol condition, SymbolKey_PerformOperation P)
+static void SearchConditional (SymbolKey_SymbolTree__opaque t, SymbolKey_IsSymbol condition, SymbolKey_PerformOperation P)
 {
   if (t != NULL)
     {
@@ -286,8 +281,8 @@ static void SearchConditional (SymbolKey_SymbolTree t, SymbolKey_IsSymbol condit
 extern "C" void SymbolKey_InitTree (SymbolKey_SymbolTree *t)
 {
   Storage_ALLOCATE ((void **) &(*t), sizeof (SymbolKey_Node));  /* The value entity  */
-  (*t)->Left = NULL;
-  (*t)->Right = NULL;
+  static_cast<SymbolKey_SymbolTree__opaque> ((*t))->Left = static_cast<SymbolKey_SymbolTree__opaque> (NULL);
+  static_cast<SymbolKey_SymbolTree__opaque> ((*t))->Right = static_cast<SymbolKey_SymbolTree__opaque> (NULL);
 }
 
 extern "C" void SymbolKey_KillTree (SymbolKey_SymbolTree *t)
@@ -322,10 +317,10 @@ END Kill ;
   */
   if ((*t) != NULL)
     {
-      SymbolKey_KillTree (&(*t)->Left);
-      SymbolKey_KillTree (&(*t)->Right);
+      SymbolKey_KillTree (reinterpret_cast<SymbolKey_SymbolTree *> (&static_cast<SymbolKey_SymbolTree__opaque> ((*t))->Left));
+      SymbolKey_KillTree (reinterpret_cast<SymbolKey_SymbolTree *> (&static_cast<SymbolKey_SymbolTree__opaque> ((*t))->Right));
       Storage_DEALLOCATE ((void **) &(*t), sizeof (SymbolKey_Node));
-      (*t) = NULL;
+      (*t) = static_cast<SymbolKey_SymbolTree> (NULL);
     }
 }
 
@@ -336,10 +331,10 @@ END Kill ;
 
 extern "C" unsigned int SymbolKey_GetSymKey (SymbolKey_SymbolTree t, NameKey_Name NameKey)
 {
-  SymbolKey_SymbolTree father;
-  SymbolKey_SymbolTree child;
+  SymbolKey_SymbolTree__opaque father;
+  SymbolKey_SymbolTree__opaque child;
 
-  FindNodeParentInTree (t, NameKey, &child, &father);
+  FindNodeParentInTree (static_cast<SymbolKey_SymbolTree__opaque> (t), NameKey, &child, &father);
   if (child == NULL)
     {
       return static_cast<unsigned int> (SymbolKey_NulKey);
@@ -359,10 +354,10 @@ extern "C" unsigned int SymbolKey_GetSymKey (SymbolKey_SymbolTree t, NameKey_Nam
 
 extern "C" void SymbolKey_PutSymKey (SymbolKey_SymbolTree t, NameKey_Name NameKey, unsigned int SymKey)
 {
-  SymbolKey_SymbolTree father;
-  SymbolKey_SymbolTree child;
+  SymbolKey_SymbolTree__opaque father;
+  SymbolKey_SymbolTree__opaque child;
 
-  FindNodeParentInTree (t, NameKey, &child, &father);
+  FindNodeParentInTree (static_cast<SymbolKey_SymbolTree__opaque> (t), NameKey, &child, &father);
   if (child == NULL)
     {
       /* no child found, now is NameKey less than father or greater?  */
@@ -386,8 +381,8 @@ extern "C" void SymbolKey_PutSymKey (SymbolKey_SymbolTree t, NameKey_Name NameKe
               father->Right = child;
             }
         }
-      child->Right = NULL;
-      child->Left = NULL;
+      child->Right = static_cast<SymbolKey_SymbolTree__opaque> (NULL);
+      child->Left = static_cast<SymbolKey_SymbolTree__opaque> (NULL);
       child->KeySym = SymKey;
       child->KeyName = NameKey;
     }
@@ -407,11 +402,11 @@ extern "C" void SymbolKey_PutSymKey (SymbolKey_SymbolTree t, NameKey_Name NameKe
 
 extern "C" void SymbolKey_DelSymKey (SymbolKey_SymbolTree t, NameKey_Name NameKey)
 {
-  SymbolKey_SymbolTree i;
-  SymbolKey_SymbolTree child;
-  SymbolKey_SymbolTree father;
+  SymbolKey_SymbolTree__opaque i;
+  SymbolKey_SymbolTree__opaque child;
+  SymbolKey_SymbolTree__opaque father;
 
-  FindNodeParentInTree (t, NameKey, &child, &father);  /* find father and child of the node  */
+  FindNodeParentInTree (static_cast<SymbolKey_SymbolTree__opaque> (t), NameKey, &child, &father);  /* find father and child of the node  */
   if ((child != NULL) && (child->KeyName == NameKey))
     {
       /* Have found the node to be deleted  */
@@ -471,7 +466,7 @@ extern "C" void SymbolKey_DelSymKey (SymbolKey_SymbolTree t, NameKey_Name NameKe
 
 extern "C" bool SymbolKey_IsEmptyTree (SymbolKey_SymbolTree t)
 {
-  return t->Left == NULL;
+  return static_cast<SymbolKey_SymbolTree__opaque> (t)->Left == NULL;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -487,7 +482,7 @@ extern "C" bool SymbolKey_IsEmptyTree (SymbolKey_SymbolTree t)
 
 extern "C" bool SymbolKey_DoesTreeContainAny (SymbolKey_SymbolTree t, SymbolKey_IsSymbol P)
 {
-  return SearchForAny (t->Left, P);
+  return SearchForAny (static_cast<SymbolKey_SymbolTree__opaque> (t)->Left, P);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -502,7 +497,7 @@ extern "C" bool SymbolKey_DoesTreeContainAny (SymbolKey_SymbolTree t, SymbolKey_
 
 extern "C" void SymbolKey_ForeachNodeDo (SymbolKey_SymbolTree t, SymbolKey_PerformOperation P)
 {
-  SearchAndDo (t->Left, P);
+  SearchAndDo (static_cast<SymbolKey_SymbolTree__opaque> (t)->Left, P);
 }
 
 
@@ -512,10 +507,10 @@ extern "C" void SymbolKey_ForeachNodeDo (SymbolKey_SymbolTree t, SymbolKey_Perfo
 
 extern "C" bool SymbolKey_ContainsSymKey (SymbolKey_SymbolTree t, NameKey_Name NameKey)
 {
-  SymbolKey_SymbolTree father;
-  SymbolKey_SymbolTree child;
+  SymbolKey_SymbolTree__opaque father;
+  SymbolKey_SymbolTree__opaque child;
 
-  FindNodeParentInTree (t, NameKey, &child, &father);
+  FindNodeParentInTree (static_cast<SymbolKey_SymbolTree__opaque> (t), NameKey, &child, &father);
   return child != NULL;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -528,7 +523,7 @@ extern "C" bool SymbolKey_ContainsSymKey (SymbolKey_SymbolTree t, NameKey_Name N
 
 extern "C" unsigned int SymbolKey_NoOfNodes (SymbolKey_SymbolTree t, SymbolKey_IsSymbol condition)
 {
-  return CountNodes (t->Left, condition, 0);
+  return CountNodes (static_cast<SymbolKey_SymbolTree__opaque> (t)->Left, condition, 0);
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -543,15 +538,15 @@ extern "C" void SymbolKey_ForeachNodeConditionDo (SymbolKey_SymbolTree t, Symbol
 {
   if (t != NULL)
     {
-      Assertion_Assert (t->Right == NULL);
-      SearchConditional (t->Left, condition, P);
+      Assertion_Assert (static_cast<SymbolKey_SymbolTree__opaque> (t)->Right == NULL);
+      SearchConditional (static_cast<SymbolKey_SymbolTree__opaque> (t)->Left, condition, P);
     }
 }
 
-extern "C" void _M2_SymbolKey_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_SymbolKey_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
 
-extern "C" void _M2_SymbolKey_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_SymbolKey_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/pge-boot/GSysExceptions.cc b/gcc/m2/pge-boot/GSysExceptions.cc
index dee36f981ce..d16197dbcc7 100644
--- a/gcc/m2/pge-boot/GSysExceptions.cc
+++ b/gcc/m2/pge-boot/GSysExceptions.cc
@@ -226,12 +226,12 @@ SysExceptions_InitExceptionHandlers (void *indexf, void *range, void *casef,
 
 EXTERN
 void
-_M2_SysExceptions_init (void)
+_M2_SysExceptions_init (int argc, char *argv[], char *envp[])
 {
 }
 
 EXTERN
 void
-_M2_SysExceptions_fini (void)
+_M2_SysExceptions_fini (int argc, char *argv[], char *envp[])
 {
 }
diff --git a/gcc/m2/pge-boot/GUnixArgs.cc b/gcc/m2/pge-boot/GUnixArgs.cc
index 02d0df3dff8..cab9f7a9dea 100644
--- a/gcc/m2/pge-boot/GUnixArgs.cc
+++ b/gcc/m2/pge-boot/GUnixArgs.cc
@@ -88,6 +88,6 @@ struct _M2_UnixArgs_ctor { _M2_UnixArgs_ctor (); } _M2_UnixArgs_ctor;
 
 _M2_UnixArgs_ctor::_M2_UnixArgs_ctor (void)
 {
-  M2RTS_RegisterModule ("UnixArgs", LIBNAME, _M2_UnixArgs_init, _M2_UnixArgs_fini,
-			_M2_UnixArgs_dep);
+  M2RTS_RegisterModule_Cstr ("UnixArgs", LIBNAME, _M2_UnixArgs_init,
+			     _M2_UnixArgs_fini, _M2_UnixArgs_dep);
 }
diff --git a/gcc/m2/pge-boot/Gerrno.cc b/gcc/m2/pge-boot/Gerrno.cc
index d51a619baef..ca4e23272ed 100644
--- a/gcc/m2/pge-boot/Gerrno.cc
+++ b/gcc/m2/pge-boot/Gerrno.cc
@@ -38,14 +38,14 @@ errno_geterrno (void)
 /* init constructor for the module.  */
 
 void
-_M2_errno_init (int argc, char *p)
+_M2_errno_init (int argc, char *argv[], char *envp[])
 {
 }
 
 /* finish deconstructor for the module.  */
 
 void
-_M2_errno_fini (int argc, char *p)
+_M2_errno_fini (int argc, char *argv[], char *envp[])
 {
 }
 
diff --git a/gcc/m2/pge-boot/Gldtoa.cc b/gcc/m2/pge-boot/Gldtoa.cc
index c1a74505f13..a3ae3960a91 100644
--- a/gcc/m2/pge-boot/Gldtoa.cc
+++ b/gcc/m2/pge-boot/Gldtoa.cc
@@ -43,22 +43,22 @@ extern int dtoa_calcsign (char *p, int str_size);
    (ndigits may be negative).  */
 
 long double
-ldtoa_strtold (const char *s, int *error)
+ldtoa_strtold (void *s, bool *error)
 {
   char *endp;
   long double d;
 
   errno = 0;
 #if defined(HAVE_STRTOLD)
-  d = strtold (s, &endp);
+  d = strtold (reinterpret_cast <char *> (s), &endp);
 #else
   /* fall back to using strtod.  */
-  d = (long double)strtod (s, &endp);
+  d = (long double) strtod (reinterpret_cast <char *> (s), &endp);
 #endif
   if (endp != NULL && (*endp == '\0'))
     *error = (errno != 0);
   else
-    *error = TRUE;
+    *error = true;
   return d;
 }
 
diff --git a/gcc/m2/pge-boot/Gldtoa.h b/gcc/m2/pge-boot/Gldtoa.h
index df1f791b3bb..0678e9e2d81 100644
--- a/gcc/m2/pge-boot/Gldtoa.h
+++ b/gcc/m2/pge-boot/Gldtoa.h
@@ -57,7 +57,7 @@ typedef enum {ldtoa_maxsignificant, ldtoa_decimaldigits} ldtoa_Mode;
              error to TRUE if the number is too large or badly formed.
 */
 
-EXTERN long double ldtoa_strtold (void * s, bool *error);
+EXTERN long double ldtoa_strtold (void *s, bool *error);
 
 /*
    ldtoa - converts a LONGREAL, d, into a string.  The address of the
diff --git a/gcc/m2/pge-boot/Glibc.cc b/gcc/m2/pge-boot/Glibc.cc
index abeb56a3b01..a63b328ed60 100644
--- a/gcc/m2/pge-boot/Glibc.cc
+++ b/gcc/m2/pge-boot/Glibc.cc
@@ -29,15 +29,15 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #endif
 
 EXTERN
-int
-libc_read (int fd, void *a, int nbytes)
+size_t
+libc_read (int fd, void *a, size_t nbytes)
 {
   return read (fd, a, nbytes);
 }
 
 EXTERN
-int
-libc_write (int fd, void *a, int nbytes)
+size_t
+libc_write (int fd, void *a, size_t nbytes)
 {
   return write (fd, a, nbytes);
 }
@@ -58,7 +58,7 @@ libc_exit (int code)
 
 EXTERN
 void
-libc_perror (char *s)
+libc_perror (const char *s)
 {
   perror (s);
 }
@@ -71,7 +71,7 @@ libc_abort ()
 }
 
 EXTERN
-int
+size_t
 libc_strlen (char *s)
 {
   return strlen (s);
@@ -79,7 +79,7 @@ libc_strlen (char *s)
 
 EXTERN
 int
-libc_printf (char *_format, unsigned int _format_high, ...)
+libc_printf (const char *_format, unsigned int _format_high, ...)
 {
   va_list arg;
   int done;
@@ -90,7 +90,7 @@ libc_printf (char *_format, unsigned int _format_high, ...)
 
   do
     {
-      c = index (&_format[i], '\\');
+      c = index (&const_cast <char *> (_format)[i], '\\');
       if (c == NULL)
         strcpy (&format[j], &_format[i]);
       else
@@ -117,7 +117,7 @@ libc_printf (char *_format, unsigned int _format_high, ...)
 
 EXTERN
 int
-libc_snprintf (char *dest, size_t length, char *_format, unsigned int _format_high, ...)
+libc_snprintf (void *dest, size_t length, const char *_format, unsigned int _format_high, ...)
 {
   va_list arg;
   int done;
@@ -128,7 +128,7 @@ libc_snprintf (char *dest, size_t length, char *_format, unsigned int _format_hi
 
   do
     {
-      c = index (&_format[i], '\\');
+      c = index (&const_cast <char *> (_format)[i], '\\');
       if (c == NULL)
         strcpy (&format[j], &_format[i]);
       else
@@ -147,14 +147,14 @@ libc_snprintf (char *dest, size_t length, char *_format, unsigned int _format_hi
   while (c != NULL);
 
   va_start (arg, _format_high);
-  done = vsnprintf (dest, length, format, arg);
+  done = vsnprintf (reinterpret_cast<char *> (dest), length, format, arg);
   va_end (arg);
   return done;
 }
 
 EXTERN
 void *
-libc_malloc (unsigned int size)
+libc_malloc (size_t size)
 {
   return malloc (size);
 }
@@ -196,9 +196,9 @@ libc_system (char *command)
 
 EXTERN
 void *
-libc_memcpy (void *dest, void *src, int n)
+libc_memcpy (void *dest, void *src, size_t nbytes)
 {
-  return memcpy (dest, src, n);
+  return memcpy (dest, src, nbytes);
 }
 
 EXTERN
@@ -224,9 +224,14 @@ libc_creat (char *p, mode_t mode)
 
 EXTERN
 int
-libc_open (char *p, int flags, mode_t mode)
+libc_open (void *p, int oflag, ...)
 {
-  return open (p, flags, mode);
+  va_list arg;
+  va_start (arg, oflag);
+  mode_t mode = va_arg (arg, mode_t);
+  int result = open (reinterpret_cast <char *> (p), oflag, mode);
+  va_end (arg);
+  return result;
 }
 
 EXTERN
diff --git a/gcc/m2/pge-boot/Glibc.h b/gcc/m2/pge-boot/Glibc.h
index 382b737e4b8..a5558932348 100644
--- a/gcc/m2/pge-boot/Glibc.h
+++ b/gcc/m2/pge-boot/Glibc.h
@@ -198,7 +198,7 @@ EXTERN ssize_t libc_lseek (int fd, ssize_t offset, int whence);
    perror - writes errno and string. (ARRAY OF CHAR is translated onto ADDRESS).
 */
 
-EXTERN void libc_perror (const char *string_, unsigned int _string_high);
+EXTERN void libc_perror (const char *str);
 
 /*
    readv - reads an io vector of bytes.
diff --git a/gcc/m2/pge-boot/Gpge.cc b/gcc/m2/pge-boot/Gpge.cc
index 1fbf961992e..e231abeea47 100644
--- a/gcc/m2/pge-boot/Gpge.cc
+++ b/gcc/m2/pge-boot/Gpge.cc
@@ -504,20 +504,20 @@ static void EndModName (pge_SetOfStop stop);
 static void DoDeclaration (pge_SetOfStop stop);
 
 /*
-   CollectLiteral := 
+   CollectLiteral :=
                      % LastLiteral := GetCurrentToken() ;
                        AdvanceToken ;  %
-                     
+
 
    first  symbols:literaltok
-   
+
    cannot reachend
 */
 
 static void CollectLiteral (pge_SetOfStop stopset);
 
 /*
-   CollectTok := 
+   CollectTok :=
                  % CurrentSetDesc := NewSetDesc() ;
                    WITH CurrentSetDesc^ DO
                       type   := tokel ;
@@ -532,46 +532,46 @@ static void CollectLiteral (pge_SetOfStop stopset);
                       INC(LargestValue)
                    END ;
                    AdvanceToken() ;  %
-                 
+
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
 static void CollectTok (pge_SetOfStop stopset);
 
 /*
-   DefineToken := 
+   DefineToken :=
                   % AddEntry(Aliases, LastLiteral, GetCurrentToken()) ;
                     AddEntry(ReverseAliases, GetCurrentToken(), LastLiteral) ;
                     AddEntry(Values, GetCurrentToken(), LargestValue) ;
                     AddEntry(ReverseValues, Name(LargestValue), GetCurrentToken()) ;
                     INC(LargestValue) ;
                     AdvanceToken ;  %
-                  
+
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
 static void DefineToken (pge_SetOfStop stopset);
 
 /*
-   Rules := '%' 'rules' { Defs  } ExtBNF 
+   Rules := '%' 'rules' { Defs  } ExtBNF
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
 static void Rules (pge_SetOfStop stopset);
 
 /*
-   Special := Ident 
+   Special := Ident
               % VAR p: ProductionDesc ;  %
-              
+
               % p                           := NewProduction() ;
                 p^.statement                := NewStatement() ;
                 p^.statement^.followinfo^.calcfollow := TRUE ;
@@ -583,31 +583,31 @@ static void Rules (pge_SetOfStop stopset);
                 p^.followinfo^.calcfollow   := TRUE ;
                 p^.followinfo^.epsilon      := false ;
                 p^.followinfo^.reachend     := false  %
-              First Follow [ 'epsilon' 
-                             % p^.statement^.followinfo^.epsilon  := true ;   these are not used - but they are displayed when debugging 
+              First Follow [ 'epsilon'
+                             % p^.statement^.followinfo^.epsilon  := true ;   these are not used - but they are displayed when debugging
                                p^.statement^.followinfo^.reachend := true ;
                                p^.followinfo^.epsilon  := true ;
                                p^.followinfo^.reachend := true
                                 %
-                              ] [ Literal 
+                              ] [ Literal
                                   % p^.description := LastLiteral  %
-                                   ] 
+                                   ]
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
 static void Special (pge_SetOfStop stopset);
 
 /*
-   Factor := '%' Modula2Code '%'  | 
-             Ident 
+   Factor := '%' Modula2Code '%'  |
+             Ident
              % WITH CurrentFactor^ DO
                   type  := id ;
                   ident := CurrentIdent
                END ;  %
-              | Literal 
+              | Literal
              % WITH CurrentFactor^ DO
                   type   := lit ;
                   string := LastLiteral ;
@@ -616,39 +616,39 @@ static void Special (pge_SetOfStop stopset);
                      WarnError1('no token defined for literal %s', LastLiteral)
                   END
                END ;  %
-              | '{' 
+              | '{'
              % WITH CurrentFactor^ DO
                   type := mult ;
                   expr := NewExpression() ;
                   CurrentExpression := expr ;
                END ;  %
-             Expression '}'  | '[' 
+             Expression '}'  | '['
              % WITH CurrentFactor^ DO
                   type := opt ;
                   expr := NewExpression() ;
                   CurrentExpression := expr ;
                END ;  %
-             Expression ']'  | '(' 
+             Expression ']'  | '('
              % WITH CurrentFactor^ DO
                   type := sub ;
                   expr := NewExpression() ;
                   CurrentExpression := expr ;
                END ;  %
-             Expression ')' 
+             Expression ')'
 
    first  symbols:dquotetok, squotetok, lparatok, lsparatok, lcparatok, identtok, codetok
-   
+
    cannot reachend
 */
 
 static void Factor (pge_SetOfStop stopset);
 
 /*
-   Statement := 
+   Statement :=
                 % VAR i: IdentDesc ;  %
-                Ident 
+                Ident
                 % VAR p: ProductionDesc ;  %
-                
+
                 % p := FindDefinition(CurrentIdent^.name) ;
                   IF p=NIL
                   THEN
@@ -660,264 +660,264 @@ static void Factor (pge_SetOfStop stopset);
                      END
                   END ;
                   i := CurrentIdent ;  %
-                ':=' 
+                ':='
                 % VAR e: ExpressionDesc ;  %
-                
+
                 % e := NewExpression() ;
                   CurrentExpression := e ;  %
-                
+
                 % VAR s: StatementDesc ;  %
-                
+
                 % s := NewStatement() ;
                   WITH s^ DO
                      ident := i ;
                      expr  := e
                   END ;  %
-                Expression 
+                Expression
                 % p^.statement := s ;  %
-                '=:' 
+                '=:'
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
 static void Statement (pge_SetOfStop stopset);
 
 /*
-   Defs := 'special' Special  | 'token' Token  | 
-           'error' ErrorProcedures  | 
-           'tokenfunc' TokenProcedure  | 
-           'symfunc' SymProcedure 
+   Defs := 'special' Special  | 'token' Token  |
+           'error' ErrorProcedures  |
+           'tokenfunc' TokenProcedure  |
+           'symfunc' SymProcedure
 
    first  symbols:symfunctok, tfunctok, errortok, tokentok, specialtok
-   
+
    cannot reachend
 */
 
 static void Defs (pge_SetOfStop stopset);
 
 /*
-   ExtBNF := 'BNF' { Production  } 'FNB' 
+   ExtBNF := 'BNF' { Production  } 'FNB'
 
    first  symbols:BNFtok
-   
+
    cannot reachend
 */
 
 static void ExtBNF (pge_SetOfStop stopset);
 
 /*
-   Main := Header Decls Footer Rules 
+   Main := Header Decls Footer Rules
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
 static void Main (pge_SetOfStop stopset);
 
 /*
-   Header := '%' 'module' StartModName 
+   Header := '%' 'module' StartModName
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
 static void Header (pge_SetOfStop stopset);
 
 /*
-   Decls := '%' 'declaration' DoDeclaration 
+   Decls := '%' 'declaration' DoDeclaration
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
 static void Decls (pge_SetOfStop stopset);
 
 /*
-   Footer := '%' 'module' EndModName 
+   Footer := '%' 'module' EndModName
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
 static void Footer (pge_SetOfStop stopset);
 
 /*
-   First := 'first' '{' { LitOrTokenOrIdent 
+   First := 'first' '{' { LitOrTokenOrIdent
                           % WITH CurrentSetDesc^ DO
                                next := TailProduction^.first ;
                             END ;
                             TailProduction^.first := CurrentSetDesc
                              %
-                           } '}' 
+                           } '}'
 
    first  symbols:firsttok
-   
+
    cannot reachend
 */
 
 static void First (pge_SetOfStop stopset);
 
 /*
-   Follow := 'follow' '{' { LitOrTokenOrIdent 
+   Follow := 'follow' '{' { LitOrTokenOrIdent
                             % WITH CurrentSetDesc^ DO
                                  next := TailProduction^.followinfo^.follow ;
                               END ;
                               TailProduction^.followinfo^.follow := CurrentSetDesc
                                %
-                             } '}' 
+                             } '}'
 
    first  symbols:followtok
-   
+
    cannot reachend
 */
 
 static void Follow (pge_SetOfStop stopset);
 
 /*
-   LitOrTokenOrIdent := Literal 
+   LitOrTokenOrIdent := Literal
                         % CurrentSetDesc := NewSetDesc() ;
                           WITH CurrentSetDesc^ DO
                              type   := litel ;
                              string := LastLiteral ;
                           END ;
                            %
-                         | '<' CollectTok '>'  | 
-                        Ident 
+                         | '<' CollectTok '>'  |
+                        Ident
                         % CurrentSetDesc := NewSetDesc() ;
                           WITH CurrentSetDesc^ DO
                              type   := idel ;
                              ident  := CurrentIdent ;
                           END ;
                            %
-                        
+
 
    first  symbols:dquotetok, squotetok, identtok, lesstok
-   
+
    cannot reachend
 */
 
 static void LitOrTokenOrIdent (pge_SetOfStop stopset);
 
 /*
-   Literal := '"' CollectLiteral '"'  | 
-              "'" CollectLiteral "'" 
+   Literal := '"' CollectLiteral '"'  |
+              "'" CollectLiteral "'"
 
    first  symbols:squotetok, dquotetok
-   
+
    cannot reachend
 */
 
 static void Literal (pge_SetOfStop stopset);
 
 /*
-   Token := Literal DefineToken 
+   Token := Literal DefineToken
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
 static void Token (pge_SetOfStop stopset);
 
 /*
-   ErrorProcedures := Literal 
+   ErrorProcedures := Literal
                       % ErrorProcArray := LastLiteral  %
-                      Literal 
+                      Literal
                       % ErrorProcString := LastLiteral  %
-                      
+
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
 static void ErrorProcedures (pge_SetOfStop stopset);
 
 /*
-   TokenProcedure := Literal 
+   TokenProcedure := Literal
                      % TokenTypeProc := LastLiteral  %
-                     
+
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
 static void TokenProcedure (pge_SetOfStop stopset);
 
 /*
-   SymProcedure := Literal 
+   SymProcedure := Literal
                    % SymIsProc := LastLiteral  %
-                   
+
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
 static void SymProcedure (pge_SetOfStop stopset);
 
 /*
-   Production := Statement 
+   Production := Statement
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
 static void Production (pge_SetOfStop stopset);
 
 /*
-   Expression := 
+   Expression :=
                  % VAR t1, t2: TermDesc ;
                        e     : ExpressionDesc ;  %
-                 
+
                  % e := CurrentExpression ;
                    t1 := NewTerm() ;
                    CurrentTerm := t1 ;  %
-                 Term 
+                 Term
                  % e^.term := t1 ;  %
-                 { '|' 
+                 { '|'
                    % t2 := NewTerm() ;
                      CurrentTerm := t2  %
-                   Term 
+                   Term
                    % t1^.next := t2 ;
                      t1 := t2  %
-                    } 
+                    }
 
    first  symbols:dquotetok, squotetok, lparatok, lsparatok, lcparatok, identtok, codetok
-   
+
    cannot reachend
 */
 
 static void Expression (pge_SetOfStop stopset);
 
 /*
-   Term := 
+   Term :=
            % VAR    t1: TermDesc ; f1, f2: FactorDesc ;  %
-           
+
            % CurrentFactor := NewFactor() ;
              f1 := CurrentFactor ;
              t1 := CurrentTerm ;  %
-           Factor 
+           Factor
            % t1^.factor := f1 ;
              f2 := NewFactor() ;
              CurrentFactor := f2  %
-           { Factor 
+           { Factor
              % f1^.next := f2 ;
                f1 := f2 ;
                f2 := NewFactor() ;
                CurrentFactor := f2 ;  %
-              } 
+              }
 
    first  symbols:squotetok, dquotetok, codetok, identtok, lcparatok, lsparatok, lparatok
-   
+
    cannot reachend
 */
 
@@ -1994,20 +1994,20 @@ static void EndModName (pge_SetOfStop stop);
 static void DoDeclaration (pge_SetOfStop stop);
 
 /*
-   CollectLiteral := 
+   CollectLiteral :=
                      % LastLiteral := GetCurrentToken() ;
                        AdvanceToken ;  %
-                     
+
 
    first  symbols:literaltok
-   
+
    cannot reachend
 */
 
 static void CollectLiteral (pge_SetOfStop stopset);
 
 /*
-   CollectTok := 
+   CollectTok :=
                  % CurrentSetDesc := NewSetDesc() ;
                    WITH CurrentSetDesc^ DO
                       type   := tokel ;
@@ -2022,46 +2022,46 @@ static void CollectLiteral (pge_SetOfStop stopset);
                       INC(LargestValue)
                    END ;
                    AdvanceToken() ;  %
-                 
+
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
 static void CollectTok (pge_SetOfStop stopset);
 
 /*
-   DefineToken := 
+   DefineToken :=
                   % AddEntry(Aliases, LastLiteral, GetCurrentToken()) ;
                     AddEntry(ReverseAliases, GetCurrentToken(), LastLiteral) ;
                     AddEntry(Values, GetCurrentToken(), LargestValue) ;
                     AddEntry(ReverseValues, Name(LargestValue), GetCurrentToken()) ;
                     INC(LargestValue) ;
                     AdvanceToken ;  %
-                  
+
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
 static void DefineToken (pge_SetOfStop stopset);
 
 /*
-   Rules := '%' 'rules' { Defs  } ExtBNF 
+   Rules := '%' 'rules' { Defs  } ExtBNF
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
 static void Rules (pge_SetOfStop stopset);
 
 /*
-   Special := Ident 
+   Special := Ident
               % VAR p: ProductionDesc ;  %
-              
+
               % p                           := NewProduction() ;
                 p^.statement                := NewStatement() ;
                 p^.statement^.followinfo^.calcfollow := TRUE ;
@@ -2073,31 +2073,31 @@ static void Rules (pge_SetOfStop stopset);
                 p^.followinfo^.calcfollow   := TRUE ;
                 p^.followinfo^.epsilon      := false ;
                 p^.followinfo^.reachend     := false  %
-              First Follow [ 'epsilon' 
-                             % p^.statement^.followinfo^.epsilon  := true ;   these are not used - but they are displayed when debugging 
+              First Follow [ 'epsilon'
+                             % p^.statement^.followinfo^.epsilon  := true ;   these are not used - but they are displayed when debugging
                                p^.statement^.followinfo^.reachend := true ;
                                p^.followinfo^.epsilon  := true ;
                                p^.followinfo^.reachend := true
                                 %
-                              ] [ Literal 
+                              ] [ Literal
                                   % p^.description := LastLiteral  %
-                                   ] 
+                                   ]
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
 static void Special (pge_SetOfStop stopset);
 
 /*
-   Factor := '%' Modula2Code '%'  | 
-             Ident 
+   Factor := '%' Modula2Code '%'  |
+             Ident
              % WITH CurrentFactor^ DO
                   type  := id ;
                   ident := CurrentIdent
                END ;  %
-              | Literal 
+              | Literal
              % WITH CurrentFactor^ DO
                   type   := lit ;
                   string := LastLiteral ;
@@ -2106,39 +2106,39 @@ static void Special (pge_SetOfStop stopset);
                      WarnError1('no token defined for literal %s', LastLiteral)
                   END
                END ;  %
-              | '{' 
+              | '{'
              % WITH CurrentFactor^ DO
                   type := mult ;
                   expr := NewExpression() ;
                   CurrentExpression := expr ;
                END ;  %
-             Expression '}'  | '[' 
+             Expression '}'  | '['
              % WITH CurrentFactor^ DO
                   type := opt ;
                   expr := NewExpression() ;
                   CurrentExpression := expr ;
                END ;  %
-             Expression ']'  | '(' 
+             Expression ']'  | '('
              % WITH CurrentFactor^ DO
                   type := sub ;
                   expr := NewExpression() ;
                   CurrentExpression := expr ;
                END ;  %
-             Expression ')' 
+             Expression ')'
 
    first  symbols:dquotetok, squotetok, lparatok, lsparatok, lcparatok, identtok, codetok
-   
+
    cannot reachend
 */
 
 static void Factor (pge_SetOfStop stopset);
 
 /*
-   Statement := 
+   Statement :=
                 % VAR i: IdentDesc ;  %
-                Ident 
+                Ident
                 % VAR p: ProductionDesc ;  %
-                
+
                 % p := FindDefinition(CurrentIdent^.name) ;
                   IF p=NIL
                   THEN
@@ -2150,264 +2150,264 @@ static void Factor (pge_SetOfStop stopset);
                      END
                   END ;
                   i := CurrentIdent ;  %
-                ':=' 
+                ':='
                 % VAR e: ExpressionDesc ;  %
-                
+
                 % e := NewExpression() ;
                   CurrentExpression := e ;  %
-                
+
                 % VAR s: StatementDesc ;  %
-                
+
                 % s := NewStatement() ;
                   WITH s^ DO
                      ident := i ;
                      expr  := e
                   END ;  %
-                Expression 
+                Expression
                 % p^.statement := s ;  %
-                '=:' 
+                '=:'
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
 static void Statement (pge_SetOfStop stopset);
 
 /*
-   Defs := 'special' Special  | 'token' Token  | 
-           'error' ErrorProcedures  | 
-           'tokenfunc' TokenProcedure  | 
-           'symfunc' SymProcedure 
+   Defs := 'special' Special  | 'token' Token  |
+           'error' ErrorProcedures  |
+           'tokenfunc' TokenProcedure  |
+           'symfunc' SymProcedure
 
    first  symbols:symfunctok, tfunctok, errortok, tokentok, specialtok
-   
+
    cannot reachend
 */
 
 static void Defs (pge_SetOfStop stopset);
 
 /*
-   ExtBNF := 'BNF' { Production  } 'FNB' 
+   ExtBNF := 'BNF' { Production  } 'FNB'
 
    first  symbols:BNFtok
-   
+
    cannot reachend
 */
 
 static void ExtBNF (pge_SetOfStop stopset);
 
 /*
-   Main := Header Decls Footer Rules 
+   Main := Header Decls Footer Rules
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
 static void Main (pge_SetOfStop stopset);
 
 /*
-   Header := '%' 'module' StartModName 
+   Header := '%' 'module' StartModName
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
 static void Header (pge_SetOfStop stopset);
 
 /*
-   Decls := '%' 'declaration' DoDeclaration 
+   Decls := '%' 'declaration' DoDeclaration
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
 static void Decls (pge_SetOfStop stopset);
 
 /*
-   Footer := '%' 'module' EndModName 
+   Footer := '%' 'module' EndModName
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
 static void Footer (pge_SetOfStop stopset);
 
 /*
-   First := 'first' '{' { LitOrTokenOrIdent 
+   First := 'first' '{' { LitOrTokenOrIdent
                           % WITH CurrentSetDesc^ DO
                                next := TailProduction^.first ;
                             END ;
                             TailProduction^.first := CurrentSetDesc
                              %
-                           } '}' 
+                           } '}'
 
    first  symbols:firsttok
-   
+
    cannot reachend
 */
 
 static void First (pge_SetOfStop stopset);
 
 /*
-   Follow := 'follow' '{' { LitOrTokenOrIdent 
+   Follow := 'follow' '{' { LitOrTokenOrIdent
                             % WITH CurrentSetDesc^ DO
                                  next := TailProduction^.followinfo^.follow ;
                               END ;
                               TailProduction^.followinfo^.follow := CurrentSetDesc
                                %
-                             } '}' 
+                             } '}'
 
    first  symbols:followtok
-   
+
    cannot reachend
 */
 
 static void Follow (pge_SetOfStop stopset);
 
 /*
-   LitOrTokenOrIdent := Literal 
+   LitOrTokenOrIdent := Literal
                         % CurrentSetDesc := NewSetDesc() ;
                           WITH CurrentSetDesc^ DO
                              type   := litel ;
                              string := LastLiteral ;
                           END ;
                            %
-                         | '<' CollectTok '>'  | 
-                        Ident 
+                         | '<' CollectTok '>'  |
+                        Ident
                         % CurrentSetDesc := NewSetDesc() ;
                           WITH CurrentSetDesc^ DO
                              type   := idel ;
                              ident  := CurrentIdent ;
                           END ;
                            %
-                        
+
 
    first  symbols:dquotetok, squotetok, identtok, lesstok
-   
+
    cannot reachend
 */
 
 static void LitOrTokenOrIdent (pge_SetOfStop stopset);
 
 /*
-   Literal := '"' CollectLiteral '"'  | 
-              "'" CollectLiteral "'" 
+   Literal := '"' CollectLiteral '"'  |
+              "'" CollectLiteral "'"
 
    first  symbols:squotetok, dquotetok
-   
+
    cannot reachend
 */
 
 static void Literal (pge_SetOfStop stopset);
 
 /*
-   Token := Literal DefineToken 
+   Token := Literal DefineToken
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
 static void Token (pge_SetOfStop stopset);
 
 /*
-   ErrorProcedures := Literal 
+   ErrorProcedures := Literal
                       % ErrorProcArray := LastLiteral  %
-                      Literal 
+                      Literal
                       % ErrorProcString := LastLiteral  %
-                      
+
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
 static void ErrorProcedures (pge_SetOfStop stopset);
 
 /*
-   TokenProcedure := Literal 
+   TokenProcedure := Literal
                      % TokenTypeProc := LastLiteral  %
-                     
+
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
 static void TokenProcedure (pge_SetOfStop stopset);
 
 /*
-   SymProcedure := Literal 
+   SymProcedure := Literal
                    % SymIsProc := LastLiteral  %
-                   
+
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
 static void SymProcedure (pge_SetOfStop stopset);
 
 /*
-   Production := Statement 
+   Production := Statement
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
 static void Production (pge_SetOfStop stopset);
 
 /*
-   Expression := 
+   Expression :=
                  % VAR t1, t2: TermDesc ;
                        e     : ExpressionDesc ;  %
-                 
+
                  % e := CurrentExpression ;
                    t1 := NewTerm() ;
                    CurrentTerm := t1 ;  %
-                 Term 
+                 Term
                  % e^.term := t1 ;  %
-                 { '|' 
+                 { '|'
                    % t2 := NewTerm() ;
                      CurrentTerm := t2  %
-                   Term 
+                   Term
                    % t1^.next := t2 ;
                      t1 := t2  %
-                    } 
+                    }
 
    first  symbols:dquotetok, squotetok, lparatok, lsparatok, lcparatok, identtok, codetok
-   
+
    cannot reachend
 */
 
 static void Expression (pge_SetOfStop stopset);
 
 /*
-   Term := 
+   Term :=
            % VAR    t1: TermDesc ; f1, f2: FactorDesc ;  %
-           
+
            % CurrentFactor := NewFactor() ;
              f1 := CurrentFactor ;
              t1 := CurrentTerm ;  %
-           Factor 
+           Factor
            % t1^.factor := f1 ;
              f2 := NewFactor() ;
              CurrentFactor := f2  %
-           { Factor 
+           { Factor
              % f1^.next := f2 ;
                f1 := f2 ;
                f2 := NewFactor() ;
                CurrentFactor := f2 ;  %
-              } 
+              }
 
    first  symbols:squotetok, dquotetok, codetok, identtok, lcparatok, lsparatok, lparatok
-   
+
    cannot reachend
 */
 
@@ -4466,13 +4466,13 @@ static void DoDeclaration (pge_SetOfStop stop)
 
 
 /*
-   CollectLiteral := 
+   CollectLiteral :=
                      % LastLiteral := GetCurrentToken() ;
                        AdvanceToken ;  %
-                     
+
 
    first  symbols:literaltok
-   
+
    cannot reachend
 */
 
@@ -4484,7 +4484,7 @@ static void CollectLiteral (pge_SetOfStop stopset)
 
 
 /*
-   CollectTok := 
+   CollectTok :=
                  % CurrentSetDesc := NewSetDesc() ;
                    WITH CurrentSetDesc^ DO
                       type   := tokel ;
@@ -4499,10 +4499,10 @@ static void CollectLiteral (pge_SetOfStop stopset)
                       INC(LargestValue)
                    END ;
                    AdvanceToken() ;  %
-                 
+
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
@@ -4524,17 +4524,17 @@ static void CollectTok (pge_SetOfStop stopset)
 
 
 /*
-   DefineToken := 
+   DefineToken :=
                   % AddEntry(Aliases, LastLiteral, GetCurrentToken()) ;
                     AddEntry(ReverseAliases, GetCurrentToken(), LastLiteral) ;
                     AddEntry(Values, GetCurrentToken(), LargestValue) ;
                     AddEntry(ReverseValues, Name(LargestValue), GetCurrentToken()) ;
                     INC(LargestValue) ;
                     AdvanceToken ;  %
-                  
+
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
@@ -4550,10 +4550,10 @@ static void DefineToken (pge_SetOfStop stopset)
 
 
 /*
-   Rules := '%' 'rules' { Defs  } ExtBNF 
+   Rules := '%' 'rules' { Defs  } ExtBNF
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
@@ -4571,9 +4571,9 @@ static void Rules (pge_SetOfStop stopset)
 
 
 /*
-   Special := Ident 
+   Special := Ident
               % VAR p: ProductionDesc ;  %
-              
+
               % p                           := NewProduction() ;
                 p^.statement                := NewStatement() ;
                 p^.statement^.followinfo^.calcfollow := TRUE ;
@@ -4585,18 +4585,18 @@ static void Rules (pge_SetOfStop stopset)
                 p^.followinfo^.calcfollow   := TRUE ;
                 p^.followinfo^.epsilon      := false ;
                 p^.followinfo^.reachend     := false  %
-              First Follow [ 'epsilon' 
-                             % p^.statement^.followinfo^.epsilon  := true ;   these are not used - but they are displayed when debugging 
+              First Follow [ 'epsilon'
+                             % p^.statement^.followinfo^.epsilon  := true ;   these are not used - but they are displayed when debugging
                                p^.statement^.followinfo^.reachend := true ;
                                p^.followinfo^.epsilon  := true ;
                                p^.followinfo^.reachend := true
                                 %
-                              ] [ Literal 
+                              ] [ Literal
                                   % p^.description := LastLiteral  %
-                                   ] 
+                                   ]
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
@@ -4635,13 +4635,13 @@ static void Special (pge_SetOfStop stopset)
 
 
 /*
-   Factor := '%' Modula2Code '%'  | 
-             Ident 
+   Factor := '%' Modula2Code '%'  |
+             Ident
              % WITH CurrentFactor^ DO
                   type  := id ;
                   ident := CurrentIdent
                END ;  %
-              | Literal 
+              | Literal
              % WITH CurrentFactor^ DO
                   type   := lit ;
                   string := LastLiteral ;
@@ -4650,28 +4650,28 @@ static void Special (pge_SetOfStop stopset)
                      WarnError1('no token defined for literal %s', LastLiteral)
                   END
                END ;  %
-              | '{' 
+              | '{'
              % WITH CurrentFactor^ DO
                   type := mult ;
                   expr := NewExpression() ;
                   CurrentExpression := expr ;
                END ;  %
-             Expression '}'  | '[' 
+             Expression '}'  | '['
              % WITH CurrentFactor^ DO
                   type := opt ;
                   expr := NewExpression() ;
                   CurrentExpression := expr ;
                END ;  %
-             Expression ']'  | '(' 
+             Expression ']'  | '('
              % WITH CurrentFactor^ DO
                   type := sub ;
                   expr := NewExpression() ;
                   CurrentExpression := expr ;
                END ;  %
-             Expression ')' 
+             Expression ')'
 
    first  symbols:dquotetok, squotetok, lparatok, lsparatok, lcparatok, identtok, codetok
-   
+
    cannot reachend
 */
 
@@ -4740,11 +4740,11 @@ static void Factor (pge_SetOfStop stopset)
 
 
 /*
-   Statement := 
+   Statement :=
                 % VAR i: IdentDesc ;  %
-                Ident 
+                Ident
                 % VAR p: ProductionDesc ;  %
-                
+
                 % p := FindDefinition(CurrentIdent^.name) ;
                   IF p=NIL
                   THEN
@@ -4756,25 +4756,25 @@ static void Factor (pge_SetOfStop stopset)
                      END
                   END ;
                   i := CurrentIdent ;  %
-                ':=' 
+                ':='
                 % VAR e: ExpressionDesc ;  %
-                
+
                 % e := NewExpression() ;
                   CurrentExpression := e ;  %
-                
+
                 % VAR s: StatementDesc ;  %
-                
+
                 % s := NewStatement() ;
                   WITH s^ DO
                      ident := i ;
                      expr  := e
                   END ;  %
-                Expression 
+                Expression
                 % p^.statement := s ;  %
-                '=:' 
+                '=:'
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
@@ -4812,13 +4812,13 @@ static void Statement (pge_SetOfStop stopset)
 
 
 /*
-   Defs := 'special' Special  | 'token' Token  | 
-           'error' ErrorProcedures  | 
-           'tokenfunc' TokenProcedure  | 
-           'symfunc' SymProcedure 
+   Defs := 'special' Special  | 'token' Token  |
+           'error' ErrorProcedures  |
+           'tokenfunc' TokenProcedure  |
+           'symfunc' SymProcedure
 
    first  symbols:symfunctok, tfunctok, errortok, tokentok, specialtok
-   
+
    cannot reachend
 */
 
@@ -4862,10 +4862,10 @@ static void Defs (pge_SetOfStop stopset)
 
 
 /*
-   ExtBNF := 'BNF' { Production  } 'FNB' 
+   ExtBNF := 'BNF' { Production  } 'FNB'
 
    first  symbols:BNFtok
-   
+
    cannot reachend
 */
 
@@ -4882,10 +4882,10 @@ static void ExtBNF (pge_SetOfStop stopset)
 
 
 /*
-   Main := Header Decls Footer Rules 
+   Main := Header Decls Footer Rules
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
@@ -4899,10 +4899,10 @@ static void Main (pge_SetOfStop stopset)
 
 
 /*
-   Header := '%' 'module' StartModName 
+   Header := '%' 'module' StartModName
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
@@ -4915,10 +4915,10 @@ static void Header (pge_SetOfStop stopset)
 
 
 /*
-   Decls := '%' 'declaration' DoDeclaration 
+   Decls := '%' 'declaration' DoDeclaration
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
@@ -4931,10 +4931,10 @@ static void Decls (pge_SetOfStop stopset)
 
 
 /*
-   Footer := '%' 'module' EndModName 
+   Footer := '%' 'module' EndModName
 
    first  symbols:codetok
-   
+
    cannot reachend
 */
 
@@ -4947,16 +4947,16 @@ static void Footer (pge_SetOfStop stopset)
 
 
 /*
-   First := 'first' '{' { LitOrTokenOrIdent 
+   First := 'first' '{' { LitOrTokenOrIdent
                           % WITH CurrentSetDesc^ DO
                                next := TailProduction^.first ;
                             END ;
                             TailProduction^.first := CurrentSetDesc
                              %
-                           } '}' 
+                           } '}'
 
    first  symbols:firsttok
-   
+
    cannot reachend
 */
 
@@ -4976,16 +4976,16 @@ static void First (pge_SetOfStop stopset)
 
 
 /*
-   Follow := 'follow' '{' { LitOrTokenOrIdent 
+   Follow := 'follow' '{' { LitOrTokenOrIdent
                             % WITH CurrentSetDesc^ DO
                                  next := TailProduction^.followinfo^.follow ;
                               END ;
                               TailProduction^.followinfo^.follow := CurrentSetDesc
                                %
-                             } '}' 
+                             } '}'
 
    first  symbols:followtok
-   
+
    cannot reachend
 */
 
@@ -5005,25 +5005,25 @@ static void Follow (pge_SetOfStop stopset)
 
 
 /*
-   LitOrTokenOrIdent := Literal 
+   LitOrTokenOrIdent := Literal
                         % CurrentSetDesc := NewSetDesc() ;
                           WITH CurrentSetDesc^ DO
                              type   := litel ;
                              string := LastLiteral ;
                           END ;
                            %
-                         | '<' CollectTok '>'  | 
-                        Ident 
+                         | '<' CollectTok '>'  |
+                        Ident
                         % CurrentSetDesc := NewSetDesc() ;
                           WITH CurrentSetDesc^ DO
                              type   := idel ;
                              ident  := CurrentIdent ;
                           END ;
                            %
-                        
+
 
    first  symbols:dquotetok, squotetok, identtok, lesstok
-   
+
    cannot reachend
 */
 
@@ -5060,11 +5060,11 @@ static void LitOrTokenOrIdent (pge_SetOfStop stopset)
 
 
 /*
-   Literal := '"' CollectLiteral '"'  | 
-              "'" CollectLiteral "'" 
+   Literal := '"' CollectLiteral '"'  |
+              "'" CollectLiteral "'"
 
    first  symbols:squotetok, dquotetok
-   
+
    cannot reachend
 */
 
@@ -5092,10 +5092,10 @@ static void Literal (pge_SetOfStop stopset)
 
 
 /*
-   Token := Literal DefineToken 
+   Token := Literal DefineToken
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
@@ -5107,14 +5107,14 @@ static void Token (pge_SetOfStop stopset)
 
 
 /*
-   ErrorProcedures := Literal 
+   ErrorProcedures := Literal
                       % ErrorProcArray := LastLiteral  %
-                      Literal 
+                      Literal
                       % ErrorProcString := LastLiteral  %
-                      
+
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
@@ -5128,12 +5128,12 @@ static void ErrorProcedures (pge_SetOfStop stopset)
 
 
 /*
-   TokenProcedure := Literal 
+   TokenProcedure := Literal
                      % TokenTypeProc := LastLiteral  %
-                     
+
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
@@ -5145,12 +5145,12 @@ static void TokenProcedure (pge_SetOfStop stopset)
 
 
 /*
-   SymProcedure := Literal 
+   SymProcedure := Literal
                    % SymIsProc := LastLiteral  %
-                   
+
 
    first  symbols:dquotetok, squotetok
-   
+
    cannot reachend
 */
 
@@ -5162,10 +5162,10 @@ static void SymProcedure (pge_SetOfStop stopset)
 
 
 /*
-   Production := Statement 
+   Production := Statement
 
    first  symbols:identtok
-   
+
    cannot reachend
 */
 
@@ -5176,25 +5176,25 @@ static void Production (pge_SetOfStop stopset)
 
 
 /*
-   Expression := 
+   Expression :=
                  % VAR t1, t2: TermDesc ;
                        e     : ExpressionDesc ;  %
-                 
+
                  % e := CurrentExpression ;
                    t1 := NewTerm() ;
                    CurrentTerm := t1 ;  %
-                 Term 
+                 Term
                  % e^.term := t1 ;  %
-                 { '|' 
+                 { '|'
                    % t2 := NewTerm() ;
                      CurrentTerm := t2  %
-                   Term 
+                   Term
                    % t1^.next := t2 ;
                      t1 := t2  %
-                    } 
+                    }
 
    first  symbols:dquotetok, squotetok, lparatok, lsparatok, lcparatok, identtok, codetok
-   
+
    cannot reachend
 */
 
@@ -5223,25 +5223,25 @@ static void Expression (pge_SetOfStop stopset)
 
 
 /*
-   Term := 
+   Term :=
            % VAR    t1: TermDesc ; f1, f2: FactorDesc ;  %
-           
+
            % CurrentFactor := NewFactor() ;
              f1 := CurrentFactor ;
              t1 := CurrentTerm ;  %
-           Factor 
+           Factor
            % t1^.factor := f1 ;
              f2 := NewFactor() ;
              CurrentFactor := f2  %
-           { Factor 
+           { Factor
              % f1^.next := f2 ;
                f1 := f2 ;
                f2 := NewFactor() ;
                CurrentFactor := f2 ;  %
-              } 
+              }
 
    first  symbols:squotetok, dquotetok, codetok, identtok, lcparatok, lsparatok, lparatok
-   
+
    cannot reachend
 */
 
@@ -6321,7 +6321,7 @@ static void CodeFactor (pge_FactorDesc f, pge_TermDesc t, pge_m2condition l, pge
             CodeExpression (f->expr, pge_m2none, inopt, inwhile, consumed, NULL);
             if (f->next != NULL)
               {
-                /* 
+                /*
                     *  the test above makes sure that we don't emit a RETURN( TRUE )
                     *  after a subexpression. Remember sub expressions are not conditional
   */
@@ -6725,7 +6725,7 @@ static void EmitIsInFirst (pge_SetDesc to, pge_m2condition m)
 
 static void FlushRecoverCode (pge_FactorDesc *codeStack)
 {
-  /* 
+  /*
    FlushCode -
   */
   if ((*codeStack) != NULL)
@@ -7382,7 +7382,7 @@ static void EmitStopParametersAndFollow (pge_FactorDesc f, pge_m2condition m)
   pge_SetDesc to;
 
   to = NULL;
-  /* 
+  /*
    IF m=m2while
    THEN
       CalcFirstFactor(f, NIL, to)
@@ -7490,6 +7490,7 @@ static bool FindStr (pge_CodeHunk *code, unsigned int *i, const char *str_, unsi
   /* make a local copy of each unbounded array.  */
   memcpy (str, str_, _str_high+1);
 
+  j = StrLib_StrLen ((const char *) str, _str_high);
   t = (*code);
   k = (StrLib_StrLen ((const char *) &(*code)->codetext.array[0], MaxCodeHunkLength))+1;
   while (t != NULL)
@@ -7952,7 +7953,7 @@ static void WorkOutFollowFactor (pge_FactorDesc f, pge_SetDesc *followset, pge_S
   pge_TraverseResult foundepsilon;
   pge_TraverseResult canreachend;
 
-  /* 
+  /*
    WorkOutFollow -
   */
   foundepsilon = pge_true;
@@ -8323,7 +8324,7 @@ static void CalcEpsilonProduction (pge_ProductionDesc p)
 {
   if (p != NULL)
     {
-      /* 
+      /*
       IF p^.statement^.ident^.name=MakeKey('DefinitionModule')
       THEN
          stop
diff --git a/gcc/m2/pge-boot/Gtermios.cc b/gcc/m2/pge-boot/Gtermios.cc
index 5f966403b19..55220e7624e 100644
--- a/gcc/m2/pge-boot/Gtermios.cc
+++ b/gcc/m2/pge-boot/Gtermios.cc
@@ -1081,8 +1081,8 @@ EXPORT (GetFlag) (struct termios *t, Flag f, int *b)
 /* SetFlag - sets a flag value in, t, to, b, and returns TRUE if this
    flag value is supported.  */
 
-int
-EXPORT (SetFlag) (struct termios *t, Flag f, int b)
+bool
+EXPORT (SetFlag) (struct termios *t, Flag f, bool b)
 {
   switch (f)
     {
@@ -1933,12 +1933,12 @@ EXPORT (SetChar) (struct termios *t, ControlChar c, char ch)
 }
 
 void
-_M2_termios_init (void)
+_M2_termios_init (int argc, char *argv[], char *envp[])
 {
 }
 
 void
-_M2_termios_fini (void)
+_M2_termios_fini (int argc, char *argv[], char *envp[])
 {
 }
 
diff --git a/gcc/m2/pge-boot/m2rts.h b/gcc/m2/pge-boot/m2rts.h
index 7345074953a..fe9745b1aa6 100644
--- a/gcc/m2/pge-boot/m2rts.h
+++ b/gcc/m2/pge-boot/m2rts.h
@@ -28,8 +28,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 typedef void (*proc_con) (int, char **, char **);
 typedef void (*proc_dep) (void);
 
+#define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep) \
+  M2RTS_RegisterModule (reinterpret_cast <void *> (const_cast <char *> (MODNAME)), \
+			reinterpret_cast <void *> (const_cast <char *> (LIBNAME)), \
+			init, fini, dep)
+
 extern "C" void M2RTS_RequestDependant (const char *modulename, const char *dependancy);
-extern "C" void M2RTS_RegisterModule (const char *modulename, const char *libname,
+extern "C" void M2RTS_RegisterModule (void *modulename, void *libname,
 				      proc_con init, proc_con fini, proc_dep dependencies);
 extern "C" void _M2_M2RTS_init (void);
 

commit 5a809d4196577bb9f0c18d6f569acade6d1541f9
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 26 15:56:48 2024 +0000

    [PATCH] PR modula2/116378 m2 bootstrap fails on x86_64-darwin
    
    This patch fixes m2 bootstrap failure on x86_64-darwin.  libc_open
    is defined with three parameters the last of which is an int for
    portability (rather than a vararg).  This avoids portability
    problems by promoting mode_t to an int.  In the future it could
    be tidied up by using the m2 optarg extension.
    
    gcc/m2/ChangeLog:
    
            PR modula2/116378
            * gm2-libs-iso/TermFile.mod (termOpen): Add third argument
            for open.
            * gm2-libs/libc.def (open): Remove vararg and use INTEGER for
            mode parameter three.
            * mc-boot-ch/Glibc.c (tracedb_open): Replace mode_t with int.
            (libc_open): Rewrite without varargs.
            * mc-boot/Glibc.h (libc_open): Replace varargs with int mode.
            * pge-boot/Glibc.cc (libc_open): Rewrite.
            * pge-boot/Glibc.h (libc_open): Replace varargs with int mode.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/116378
            * gm2/extensions/run/pass/testopen.mod: Add third argument
            for open.
            * gm2/isolib/run/pass/openlibc.mod: Ditto.
            * gm2/pim/run/pass/testaddr3.mod: Ditto.
    
    (cherry picked from commit 9cdde72d1cefdf2ffff52ad2eec1ff465dccb3ab)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-libs-iso/TermFile.mod b/gcc/m2/gm2-libs-iso/TermFile.mod
index a3ad58ceba0..3347bdd4e86 100644
--- a/gcc/m2/gm2-libs-iso/TermFile.mod
+++ b/gcc/m2/gm2-libs-iso/TermFile.mod
@@ -503,7 +503,7 @@ BEGIN
       THEN
          fd := libc.open(ADR("/dev/tty"), O_WRONLY, 0600B)
       ELSE
-         fd := libc.open(ADR("/dev/tty"), O_RDONLY)
+         fd := libc.open(ADR("/dev/tty"), O_RDONLY, 0)
       END ;
       IF tcgetattr(fd, new)=0
       THEN
diff --git a/gcc/m2/gm2-libs/libc.def b/gcc/m2/gm2-libs/libc.def
index f28f8b5f2bc..a314b59e43f 100644
--- a/gcc/m2/gm2-libs/libc.def
+++ b/gcc/m2/gm2-libs/libc.def
@@ -211,7 +211,7 @@ PROCEDURE close (d: INTEGER) : [ INTEGER ] ;
    open - open the file, filename with flag and mode.
 *)
 
-PROCEDURE open (filename: ADDRESS; oflag: INTEGER; ...) : INTEGER ;
+PROCEDURE open (filename: ADDRESS; oflag: INTEGER; mode: INTEGER) : INTEGER ;
 
 
 (*
diff --git a/gcc/m2/mc-boot-ch/Glibc.c b/gcc/m2/mc-boot-ch/Glibc.c
index 492f17f6bdc..5ad1711bc64 100644
--- a/gcc/m2/mc-boot-ch/Glibc.c
+++ b/gcc/m2/mc-boot-ch/Glibc.c
@@ -67,7 +67,7 @@ tracedb (const char *format, ...)
 
 static
 void
-tracedb_open (const void *p, int flags, mode_t mode)
+tracedb_open (const void *p, int flags, int mode)
 {
 #if defined(BUILD_MC_LIBC_TRACE)
   bool item_written = false;
@@ -343,15 +343,11 @@ libc_creat (char *p, mode_t mode)
 
 EXTERN
 int
-libc_open (void *p, int oflag, ...)
+libc_open (void *p, int oflag, int mode)
 {
-  va_list arg;
-  va_start (arg, oflag);
-  mode_t mode = va_arg (arg, mode_t);
   tracedb_open (p, oflag, mode);
   int result = open (reinterpret_cast <char *> (p), oflag, mode);
   tracedb_result (result);
-  va_end (arg);
   return result;
 }
 
diff --git a/gcc/m2/mc-boot/Glibc.h b/gcc/m2/mc-boot/Glibc.h
index 2f7fac46d77..957232345f5 100644
--- a/gcc/m2/mc-boot/Glibc.h
+++ b/gcc/m2/mc-boot/Glibc.h
@@ -178,7 +178,7 @@ EXTERN int libc_close (int d);
    open - open the file, filename with flag and mode.
 */
 
-EXTERN int libc_open (void * filename, int oflag, ...);
+EXTERN int libc_open (void * filename, int oflag, int mode);
 
 /*
    creat - creates a new file
diff --git a/gcc/m2/pge-boot/Glibc.cc b/gcc/m2/pge-boot/Glibc.cc
index a63b328ed60..7ea40d0f0c1 100644
--- a/gcc/m2/pge-boot/Glibc.cc
+++ b/gcc/m2/pge-boot/Glibc.cc
@@ -224,14 +224,9 @@ libc_creat (char *p, mode_t mode)
 
 EXTERN
 int
-libc_open (void *p, int oflag, ...)
+libc_open (void *p, int oflag, int mode)
 {
-  va_list arg;
-  va_start (arg, oflag);
-  mode_t mode = va_arg (arg, mode_t);
-  int result = open (reinterpret_cast <char *> (p), oflag, mode);
-  va_end (arg);
-  return result;
+  return open (reinterpret_cast <char *> (p), oflag, mode);
 }
 
 EXTERN
diff --git a/gcc/m2/pge-boot/Glibc.h b/gcc/m2/pge-boot/Glibc.h
index a5558932348..0a5481ef523 100644
--- a/gcc/m2/pge-boot/Glibc.h
+++ b/gcc/m2/pge-boot/Glibc.h
@@ -178,7 +178,7 @@ EXTERN int libc_close (int d);
    open - open the file, filename with flag and mode.
 */
 
-EXTERN int libc_open (void * filename, int oflag, ...);
+EXTERN int libc_open (void * filename, int oflag, int mode);
 
 /*
    creat - creates a new file
diff --git a/gcc/testsuite/gm2/extensions/run/pass/testopen.mod b/gcc/testsuite/gm2/extensions/run/pass/testopen.mod
index a36d2e0eae1..56dd6f65ea0 100644
--- a/gcc/testsuite/gm2/extensions/run/pass/testopen.mod
+++ b/gcc/testsuite/gm2/extensions/run/pass/testopen.mod
@@ -24,7 +24,7 @@ PROCEDURE foo ;
 VAR
    fd: INTEGER ;
 BEGIN
-   fd := open(ADR("/dev/tty"), 0)
+   fd := open(ADR("/dev/tty"), 0, 0)
 END foo ;
 
 BEGIN
diff --git a/gcc/testsuite/gm2/isolib/run/pass/openlibc.mod b/gcc/testsuite/gm2/isolib/run/pass/openlibc.mod
index b9a9d04e2a9..510bb36a8cf 100644
--- a/gcc/testsuite/gm2/isolib/run/pass/openlibc.mod
+++ b/gcc/testsuite/gm2/isolib/run/pass/openlibc.mod
@@ -26,6 +26,6 @@ CONST
 VAR
    fd: INTEGER ;
 BEGIN
-   fd := libc.open(ADR("/dev/tty"), O_RDONLY) ;
+   fd := libc.open(ADR("/dev/tty"), O_RDONLY, 0) ;
    libc.printf("fd = %d\n", fd)
 END openlibc.
diff --git a/gcc/testsuite/gm2/pim/run/pass/testaddr3.mod b/gcc/testsuite/gm2/pim/run/pass/testaddr3.mod
index b31d0a4b047..d85f65b0006 100644
--- a/gcc/testsuite/gm2/pim/run/pass/testaddr3.mod
+++ b/gcc/testsuite/gm2/pim/run/pass/testaddr3.mod
@@ -23,5 +23,5 @@ FROM libc IMPORT open ;
 VAR
    fd: INTEGER ;
 BEGIN
-   fd := open(ADR(__FILE__), 0)
+   fd := open(ADR(__FILE__), 0, 0)
 END testaddr3.

commit 3851751ab968aa49c3db014ec064debbe31cef58
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Nov 26 16:05:03 2024 +0000

    [PATCH] modula2: change identifier names to avoid build warnings
    
    This fix avoids the following warnings: In implementation module
    ‘StdChans’: either the identifier has the same name as a keyword or
    alternatively a keyword has the wrong case (‘IN’ and ‘in’)
       54 |    stdnull: ChanId ;
    
    the symbol name ‘in’ is legal as an identifier, however as such it
    might cause confusion and is considered bad programming practice.
    
    gcc/m2/ChangeLog:
    
            * gm2-libs-iso/StdChans.mod (in): Rename to ...
            (inch): ... this.
            (out): Rename to ...
            (outch): ... this.
            (err): Rename to ...
            (errch): ... this.
    
    (cherry picked from commit b584f387bf74df9ba2cbbc07d00a05a105757329)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-libs-iso/StdChans.mod b/gcc/m2/gm2-libs-iso/StdChans.mod
index fbefbde4b10..e15d4ef9580 100644
--- a/gcc/m2/gm2-libs-iso/StdChans.mod
+++ b/gcc/m2/gm2-libs-iso/StdChans.mod
@@ -45,9 +45,9 @@ FROM RTgen IMPORT ChanDev, DeviceType,
 
 
 VAR
-   in,
-   out,
-   err,
+   inch,
+   outch,
+   errch,
    stdin,
    stdout,
    stderr,
@@ -169,21 +169,21 @@ END NullChan ;
 PROCEDURE InChan () : ChanId ;
   (* Returns the identity of the current default input channel. *)
 BEGIN
-   RETURN( in )
+   RETURN( inch )
 END InChan ;
 
 
 PROCEDURE OutChan () : ChanId ;
   (* Returns the identity of the current default output channel. *)
 BEGIN
-   RETURN( out )
+   RETURN( outch )
 END OutChan ;
 
 
 PROCEDURE ErrChan () : ChanId ;
   (* Returns the identity of the current default error message channel. *)
 BEGIN
-   RETURN( err )
+   RETURN( errch )
 END ErrChan ;
 
   (* The following procedures allow for redirection of the default channels *)
@@ -191,21 +191,21 @@ END ErrChan ;
 PROCEDURE SetInChan (cid: ChanId) ;
   (* Sets the current default input channel to that identified by cid. *)
 BEGIN
-   in := cid
+   inch := cid
 END SetInChan ;
 
 
 PROCEDURE SetOutChan (cid: ChanId) ;
   (* Sets the current default output channel to that identified by cid. *)
 BEGIN
-   out := cid
+   outch := cid
 END SetOutChan ;
 
 
 PROCEDURE SetErrChan (cid: ChanId) ;
   (* Sets the current default error channel to that identified by cid. *)
 BEGIN
-   err := cid
+   errch := cid
 END SetErrChan ;
 
 
@@ -303,9 +303,9 @@ END Init ;
 BEGIN
    Init
 FINALLY
-   SafeClose(in) ;
-   SafeClose(out) ;
-   SafeClose(err) ;
+   SafeClose(inch) ;
+   SafeClose(outch) ;
+   SafeClose(errch) ;
    SafeClose(stdin) ;
    SafeClose(stdout) ;
    SafeClose(stderr)

commit 29c9213c3759f7ba24cdd498a5bc379cb9d16e5e
Author: Arsen Arsenović <arsen@aarsen.me>
Date:   Thu Aug 15 19:17:41 2024 +0200

    gnat: fix lto-type-mismatch between C_Version_String and gnat_version_string [PR115917]
    
    gcc/ada/ChangeLog:
    
            PR ada/115917
            * gnatvsn.ads: Add note about the duplication of this value in
            version.c.
            * version.c (VER_LEN_MAX): Define to the same value as
            Gnatvsn.Ver_Len_Max.
            (gnat_version_string): Use VER_LEN_MAX as bound.
    
    (cherry picked from commit 9cbcf8d1de159e6113fafb5dc2feb4a7e467a302)

diff --git a/gcc/ada/gnatvsn.ads b/gcc/ada/gnatvsn.ads
index 29238362cc0..f2082ece096 100644
--- a/gcc/ada/gnatvsn.ads
+++ b/gcc/ada/gnatvsn.ads
@@ -83,7 +83,8 @@ package Gnatvsn is
    --  space to store any possible version string value for checks. This
    --  value should never be decreased in the future, but it would be
    --  OK to increase it if absolutely necessary. If it is increased,
-   --  be sure to increase GNAT.Compiler.Version.Ver_Len_Max as well.
+   --  be sure to increase GNAT.Compiler.Version.Ver_Len_Max, and to update
+   --  the VER_LEN_MAX define in version.c as well.
 
    Ver_Prefix : constant String := "GNAT Version: ";
    --  Prefix generated by binder. If it is changed, be sure to change
diff --git a/gcc/ada/version.c b/gcc/ada/version.c
index 5e64edd0b17..2fa9b8c2c85 100644
--- a/gcc/ada/version.c
+++ b/gcc/ada/version.c
@@ -31,4 +31,7 @@
 
 #include "version.h"
 
-char gnat_version_string[] = version_string;
+/* Logically a reference to Gnatvsn.Ver_Len_Max.  Please keep in sync.  */
+#define VER_LEN_MAX 256
+
+char gnat_version_string[VER_LEN_MAX] = version_string;

commit e17defc4c07c3ded06f4d133871d3e7268be1299
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Nov 27 00:25:01 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 66b7b3d389f..a49b76780f0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-24  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* doc/install.texi (GM2-prerequisite): Add GNU flex.
+
 2024-11-25  liuhongt  <hongtao.liu@intel.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 866e998b5b7..2073d1c3902 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241126
+20241127
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index fb0c40b0114..402630e9a51 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,15 @@
+2024-11-26  Arsen Arsenović  <arsen@aarsen.me>
+
+	Backported from master:
+	2024-08-19  Arsen Arsenović  <arsen@aarsen.me>
+
+	PR ada/115917
+	* gnatvsn.ads: Add note about the duplication of this value in
+	version.c.
+	* version.c (VER_LEN_MAX): Define to the same value as
+	Gnatvsn.Ver_Len_Max.
+	(gnat_version_string): Use VER_LEN_MAX as bound.
+
 2024-11-12  Eric Botcazou  <ebotcazou@adacore.com>
 
 	PR ada/117328
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index eabaca49d6e..55d53588f70 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,199 @@
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-08-16  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2-libs-iso/StdChans.mod (in): Rename to ...
+	(inch): ... this.
+	(out): Rename to ...
+	(outch): ... this.
+	(err): Rename to ...
+	(errch): ... this.
+
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-08-16  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116378
+	* gm2-libs-iso/TermFile.mod (termOpen): Add third argument
+	for open.
+	* gm2-libs/libc.def (open): Remove vararg and use INTEGER for
+	mode parameter three.
+	* mc-boot-ch/Glibc.c (tracedb_open): Replace mode_t with int.
+	(libc_open): Rewrite without varargs.
+	* mc-boot/Glibc.h (libc_open): Replace varargs with int mode.
+	* pge-boot/Glibc.cc (libc_open): Rewrite.
+	* pge-boot/Glibc.h (libc_open): Replace varargs with int mode.
+
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-08-12  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116181
+	* gm2-compiler/ppg.mod (FindStr): Initialize j.
+	* gm2-libs-ch/UnixArgs.cc (_M2_UnixArgs_ctor): Replace
+	M2RTS_RegisterModule with M2RTS_RegisterModule_Cstr.
+	* gm2-libs-ch/dtoa.cc (_M2_dtoa_ctor): Ditto.
+	* gm2-libs-ch/ldtoa.cc (ldtoa_strtold): Cast parameter s
+	for strtod.
+	(_M2_ldtoa_ctor): Replace M2RTS_RegisterModule with
+	M2RTS_RegisterModule_Cstr.
+	* gm2-libs-ch/m2rts.h (M2RTS_RegisterModule_Cstr): New
+	define.
+	(M2RTS_RegisterModule): Remove const.
+	* mc-boot-ch/GSelective.c (Selective_FdIsSet): Return bool
+	rather than int.
+	* mc-boot-ch/Gldtoa.cc (ldtoa_strtold): Change const char to
+	void.
+	Cast s before passing as a parameter to strtod.
+	* mc-boot-ch/Glibc.c (tracedb_open): Replace const char with const
+	void.
+	(libc_perror): Replace char with const char.
+	(libc_printf): Replace char with void.
+	(libc_snprintf): Replace char with void.
+	Add const_cast for parameter to index.
+	Add reinterpret_cast for parameter to vsnprintf.
+	(libc_open): Replace first paramter type char with void.
+	Add vararg for the third parameter.
+	* mc-boot-ch/Gm2rtsdummy.cc (M2RTS_RequestDependant): Remove #if 0 code.
+	(m2pim_M2RTS_RegisterModule): Change const char parameters to void
+	(M2RTS_RegisterModule): Ditto.
+	(_M2_M2RTS_init): Remove #if 0 code.
+	(M2RTS_ConstructModules): Ditto.
+	(M2RTS_Terminate): Ditto.
+	(M2RTS_DeconstructModules): Ditto.
+	(M2RTS_Halt): Ditto.
+	* mc-boot-ch/Gtermios.cc (SetFlag): Return bool.
+	* mc-boot-ch/m2rts.h (M2RTS_RegisterModule_Cstr): New define.
+	(M2RTS_RegisterModule): Change const char parameters to void.
+	* mc-boot/Gdecl.cc: Regenerate.
+	* mc/decl.mod (getNextConstExp): Reimplement.
+	* pge-boot/GDynamicStrings.cc: Regenerate.
+	* pge-boot/GDynamicStrings.h: Ditto.
+	* pge-boot/GM2RTS.h (M2RTS_RegisterModule_Cstr): New function.
+	(M2RTS_RegisterModule): Reformat.
+	* pge-boot/GSymbolKey.cc: Regenerate.
+	* pge-boot/GSysExceptions.cc (_M2_SysExceptions_init): Add correct parameters.
+	(_M2_SysExceptions_fini): Ditto.
+	* pge-boot/GUnixArgs.cc (_M2_UnixArgs_ctor::_M2_UnixArgs_ctor):
+	Replace call to M2RTS_RegisterModule with M2RTS_RegisterModuleCstr.
+	* pge-boot/Gerrno.cc (_M2_errno_init): Add correct parameters.
+	(_M2_errno_fini): Ditto.
+	* pge-boot/Gldtoa.cc (ldtoa_strtold): Replace const char with
+	void.
+	Use reinterpret_cast when passing s to strtod.
+	Replace true with TRUE.
+	* pge-boot/Gldtoa.h (ldtoa_strtold): Tidy up.
+	* pge-boot/Glibc.cc (libc_read): Use size_t as the return type.
+	(libc_write): Ditto.
+	(libc_strlen): Ditto.
+	(libc_perror): Replace char with const char.
+	(libc_printf): Replace char to const char.
+	Cast parameter to index using const_cast.
+	(libc_snprintf): Replace char with void.
+	Cast parameter to index using const_cast.
+	(libc_malloc): Replace parameter type with size_t.
+	(libc_memcpy): Replace third parameter type with size_t.
+	(libc_open): Use varargs.
+	* pge-boot/Glibc.h (libc_perror): Add _string_high parameter.
+	* pge-boot/Gpge.cc: Regenerate.
+	* pge-boot/Gtermios.cc (SetFlag): Replace return type with bool.
+	(_M2_termios_init): Add correct parameters.
+	(_M2_termios_fini): Ditto.
+	* pge-boot/m2rts.h (M2RTS_RegisterModule_Cstr): New define.
+	(M2RTS_RegisterModule): Replace const char with void.
+
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-28  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115823
+	* gm2-gcc/m2builtins.cc (define_builtin): Build
+	the function decl using the libname.
+
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-24  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2-compiler/M2StateCheck.mod (GenerateError): Add
+	symbol name to the error message.
+
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-23  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116048
+	* Make-lang.in (GM2-COMP-BOOT-DEFS): Add M2StateCheck.def.
+	(GM2-COMP-BOOT-MODS): Add M2StateCheck.mod.
+	(GM2-COMP-DEFS): Add M2StateCheck.def.
+	(GM2-COMP-MODS): Add M2StateCheck.mod.
+	* gm2-compiler/M2Quads.mod (StartBuildWith): Generate
+	unrecoverable error is the qualident type is NulSym.
+	Replace MetaError1 with MetaErrorT1 and position the error
+	to the qualident.
+	* gm2-compiler/P3Build.bnf (M2StateCheck): Import procedures.
+	(seenError): New variable.
+	(WasNoError): Remove variable.
+	(BlockState): New variable.
+	(ErrorString): Rewrite using seenError.
+	(CompilationUnit): Ditto.
+	(QualidentCheck): New rule.
+	(ConstantDeclaration): Bookend with InclConst and ExclConst.
+	(Constructor): Add InclConstructor, ExclConstructor and call
+	CheckQualident.
+	(ConstActualParameters): Call PushState, PopState, InclConstFunc
+	and CheckQualident.
+	(TypeDeclaration): Bookend with InclType and ExclType.
+	(SimpleType): Call QualidentCheck.
+	(CaseTag): Ditto.
+	(OptReturnType): Ditto.
+	(VariableDeclaration): Bookend with InclVar and ExclVar.
+	(Designator): Call QualidentCheck.
+	(Formal;Type): Ditto.
+	* gm2-compiler/PCBuild.bnf (M2StateCheck): Import procedures.
+	(ConstantDeclaration): Rewrite using InclConst and ExclConst.
+	(Constructor): Bookend with InclConstructor and ExclConstructor.
+	Call CheckQualident.
+	(ConstructorOrConstActualParameters): Rewrite and cal
+	l CheckQualident.
+	(ConstActualParameters): Bookend with PushState PopState.
+	Call InclConstFunc and CheckQualident.
+	* gm2-gcc/init.cc (_M2_M2StateCheck_init): New declaration.
+	(_M2_P3Build_init): New declaration.
+	(init_PerCompilationInit): Call _M2_M2StateCheck_init and
+	_M2_P3Build_init.
+	* gm2-compiler/M2StateCheck.def: New file.
+	* gm2-compiler/M2StateCheck.mod: New file.
+
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-16  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115957
+	* gm2-compiler/M2StackAddress.mod (PopAddress): Detect tail=NIL
+	and generate an internal error.
+	* gm2-compiler/PCBuild.bnf (InConstParameter): New variable.
+	(InConstBlock): New variable.
+	(ErrorString): Rewrite using MetaErrorStringT0.
+	(ErrorArrayAt): Rewrite using MetaErrorStringT0.
+	(WarnMissingToken): Use MetaErrorStringT0.
+	(CompilationUnit): Set seenError FALSE.
+	(init): Initialize InConstParameter and InConstBlock.
+	(ConstantDeclaration): Set InConstBlock.
+	(ConstSetOrQualidentOrFunction): Call CheckNotVar if not
+	InConstParameter and InConstBlock.
+	(ConstActualParameters): Set InConstParameter TRUE and restore
+	value at the end.
+	* gm2-compiler/PCSymBuild.def (CheckNotVar): New procedure.
+	Remove all unnecessary export qualified list.
+	* gm2-compiler/PCSymBuild.mod (CheckNotVar): New procedure.
+
 2024-11-23  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5a12afc9d54..8bfebc64fc2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,55 @@
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-08-16  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116378
+	* gm2/extensions/run/pass/testopen.mod: Add third argument
+	for open.
+	* gm2/isolib/run/pass/openlibc.mod: Ditto.
+	* gm2/pim/run/pass/testaddr3.mod: Ditto.
+
+2024-11-26  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/epilog-1.c: Corrected armv8.1.m-main asm.
+
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-28  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115823
+	* gm2/builtins/run/pass/testisnormal.mod: Change to an
+	implementation module.
+	* gm2/builtins/run/pass/testisnormal.def: New test.
+	* gm2/builtins/run/pass/testsinl.def: New test.
+	* gm2/builtins/run/pass/testsinl.mod: New test.
+
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-23  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116048
+	* gm2/errors/fail/errors-fail.exp: Remove -Wstudents
+	and add -Wuninit-variable-checking=all.
+	Replace gm2_init_pim with gm2_init_iso.
+	* gm2/errors/fail/testfio.mod: Modify test code to
+	provoke an error in the first basic block.
+	* gm2/errors/fail/testparam.mod: Ditto.
+	* gm2/errors/fail/array1.mod: Ditto.
+	* gm2/errors/fail/badtype.mod: New test.
+	* gm2/errors/fail/badvar.mod: New test.
+
+2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-07-16  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115957
+	* gm2/errors/fail/badconst.mod: New test.
+	* gm2/pim/fail/tinyadr.mod: New test.
+
 2024-11-25  Lewis Hyatt  <lhyatt@gmail.com>
 
 	PR preprocessor/117118

commit da1305a9fee3b2efbb4702bb2d9b2f740d2e538a
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Tue Nov 26 08:58:21 2024 +0000

    Fortran: Partial reversion of r15-5083 [PR117763]
    
    2024-11-26  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/117763
            * trans-array.cc (gfc_get_array_span): Guard against derefences
            of 'expr'. Clean up some typos. Use 'gfc_get_vptr_from_expr'
            for clarity and apply a functional reversion of last section
            that deals with class dummies.
    
    gcc/testsuite/
            PR fortran/117763
            * gfortran.dg/pr117763.f90: New test.
    
    (cherry picked from commit 8278d9551df610179fca114808a7e6e62bab3d82)

diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index 3994f4f71f0..fe69b694e0d 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -961,8 +961,8 @@ tree
 gfc_get_array_span (tree desc, gfc_expr *expr)
 {
   tree tmp;
-  gfc_symbol *sym = expr->expr_type == EXPR_VARIABLE
-		    ? expr->symtree->n.sym : NULL;
+  gfc_symbol *sym = (expr && expr->expr_type == EXPR_VARIABLE) ?
+		    expr->symtree->n.sym : NULL;
 
   if (is_pointer_array (desc)
       || (get_CFI_desc (NULL, expr, &desc, NULL)
@@ -989,7 +989,7 @@ gfc_get_array_span (tree desc, gfc_expr *expr)
     {
       /* Treat unlimited polymorphic expressions separately because
 	 the element size need not be the same as the span.  Obtain
-	 the class container, which is simplified here by their being
+	 the class container, which is simplified here by there being
 	 no component references.  */
       if (sym && sym->attr.dummy)
 	{
@@ -1013,12 +1013,16 @@ gfc_get_array_span (tree desc, gfc_expr *expr)
       /* The descriptor is a class _data field. Use the vtable size
 	 since it is guaranteed to have been set and is always OK for
 	 class array descriptors that are not unlimited.  */
-      tmp = gfc_class_vptr_get (TREE_OPERAND (desc, 0));
+      tmp = gfc_get_vptr_from_expr (desc);
       tmp = gfc_vptr_size_get (tmp);
     }
-  else if (sym && sym->ts.type == BT_CLASS && sym->attr.dummy)
+  else if (sym && sym->ts.type == BT_CLASS
+	   && expr->ref->type == REF_COMPONENT
+	   && expr->ref->next->type == REF_ARRAY
+	   && expr->ref->next->next == NULL
+	   && CLASS_DATA (sym)->attr.dimension)
     {
-      /* Class dummys usually requires extraction from the saved
+      /* Class dummys usually require extraction from the saved
 	 descriptor, which gfc_class_vptr_get does for us.  */
       tmp = gfc_class_vptr_get (sym->backend_decl);
       tmp = gfc_vptr_size_get (tmp);
diff --git a/gcc/testsuite/gfortran.dg/pr117763.f90 b/gcc/testsuite/gfortran.dg/pr117763.f90
new file mode 100644
index 00000000000..5f7b36c0269
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr117763.f90
@@ -0,0 +1,279 @@
+! { dg-do compile }
+! { dg-options "-fdump-tree-original" }
+!
+! Test the fix for PR117763, which was a regression caused by the patch for
+! PR109345.
+!
+! Contributed by Juergen Reuter  <juergen.reuter@desy.de>
+!
+module iso_varying_string
+  implicit none
+  integer, parameter, private :: GET_BUFFER_LEN = 1
+
+  type, public :: varying_string
+     private
+     character(LEN=1), dimension(:), allocatable :: chars
+  end type varying_string
+
+  interface assignment(=)
+     module procedure op_assign_CH_VS
+     module procedure op_assign_VS_CH
+  end interface assignment(=)
+
+  interface char
+     module procedure char_auto
+     module procedure char_fixed
+  end interface char
+
+  interface len
+     module procedure len_
+  end interface len
+
+  interface var_str
+     module procedure var_str_
+  end interface var_str
+
+  public :: assignment(=)
+  public :: char
+  public :: len
+  public :: var_str
+
+  private :: op_assign_CH_VS
+  private :: op_assign_VS_CH
+  private :: char_auto
+  private :: char_fixed
+  private :: len_
+  private :: var_str_
+
+contains
+
+  elemental function len_ (string) result (length)
+    type(varying_string), intent(in) :: string
+    integer                          :: length
+    if(ALLOCATED(string%chars)) then
+       length = SIZE(string%chars)
+    else
+       length = 0
+    endif
+  end function len_
+
+  elemental subroutine op_assign_CH_VS (var, exp)
+    character(LEN=*), intent(out)    :: var
+    type(varying_string), intent(in) :: exp
+    var = char(exp)
+  end subroutine op_assign_CH_VS
+
+  elemental subroutine op_assign_VS_CH (var, exp)
+    type(varying_string), intent(out) :: var
+    character(LEN=*), intent(in)      :: exp
+    var = var_str(exp)
+  end subroutine op_assign_VS_CH
+
+  pure function char_auto (string) result (char_string)
+    type(varying_string), intent(in) :: string
+    character(LEN=len(string))       :: char_string
+    integer                          :: i_char
+    forall(i_char = 1:len(string))
+       char_string(i_char:i_char) = string%chars(i_char)
+    end forall
+  end function char_auto
+
+  pure function char_fixed (string, length) result (char_string)
+    type(varying_string), intent(in) :: string
+    integer, intent(in)              :: length
+    character(LEN=length)            :: char_string
+    char_string = char(string)
+  end function char_fixed
+
+  elemental function var_str_ (char) result (string)
+    character(LEN=*), intent(in) :: char
+    type(varying_string)         :: string
+    integer                      :: length
+    integer                      :: i_char
+    length = LEN(char)
+    ALLOCATE(string%chars(length))
+    forall(i_char = 1:length)
+       string%chars(i_char) = char(i_char:i_char)
+    end forall
+  end function var_str_
+
+end module iso_varying_string
+
+module model_data
+  use, intrinsic :: iso_c_binding !NODEP!
+  use iso_varying_string, string_t => varying_string
+
+  implicit none
+  private
+
+  public :: field_data_t
+  public :: model_data_t
+
+  type :: field_data_t
+     private
+     type(string_t) :: longname
+     integer :: pdg = 0
+     logical :: has_anti = .false.
+     type(string_t), dimension(:), allocatable :: name, anti
+     type(string_t) :: tex_name
+     integer :: multiplicity = 1
+   contains
+     procedure :: init => field_data_init
+     procedure :: set => field_data_set
+     procedure :: get_longname => field_data_get_longname
+     procedure :: get_name_array => field_data_get_name_array
+  end type field_data_t
+
+  type :: model_data_t
+     private
+     type(field_data_t), dimension(:), allocatable :: field
+   contains
+     generic :: init => model_data_init
+     procedure, private :: model_data_init
+     procedure :: get_field_array_ptr => model_data_get_field_array_ptr
+     procedure :: get_field_ptr_by_index => model_data_get_field_ptr_index
+     procedure :: init_sm_test => model_data_init_sm_test
+  end type model_data_t
+
+
+contains
+
+  subroutine field_data_init (prt, longname, pdg)
+    class(field_data_t), intent(out) :: prt
+    type(string_t), intent(in) :: longname
+    integer, intent(in) :: pdg
+    prt%longname = longname
+    prt%pdg = pdg
+    prt%tex_name = ""
+  end subroutine field_data_init
+
+  subroutine field_data_set (prt, &
+       name, anti, tex_name)
+    class(field_data_t), intent(inout) :: prt
+    type(string_t), dimension(:), intent(in), optional :: name, anti
+    type(string_t), intent(in), optional :: tex_name
+    if (present (name)) then
+       if (allocated (prt%name))  deallocate (prt%name)
+       allocate (prt%name (size (name)), source = name)
+    end if
+    if (present (anti)) then
+       if (allocated (prt%anti))  deallocate (prt%anti)
+       allocate (prt%anti (size (anti)), source = anti)
+       prt%has_anti = .true.
+    end if
+    if (present (tex_name))  prt%tex_name = tex_name
+  end subroutine field_data_set
+
+  pure function field_data_get_longname (prt) result (name)
+    type(string_t) :: name
+    class(field_data_t), intent(in) :: prt
+    name = prt%longname
+  end function field_data_get_longname
+
+  subroutine field_data_get_name_array (prt, is_antiparticle, name)
+    class(field_data_t), intent(in) :: prt
+    logical, intent(in) :: is_antiparticle
+    type(string_t), dimension(:), allocatable, intent(inout) :: name
+    if (allocated (name))  deallocate (name)
+    if (is_antiparticle) then
+       if (prt%has_anti) then
+          allocate (name (size (prt%anti)))
+          name = prt%anti
+       else
+          allocate (name (0))
+       end if
+    else
+       allocate (name (size (prt%name)))
+       name = prt%name
+    end if
+  end subroutine field_data_get_name_array
+
+  subroutine model_data_init (model, n_field)
+    class(model_data_t), intent(out) :: model
+    integer, intent(in) :: n_field
+    allocate (model%field (n_field))
+  end subroutine model_data_init
+
+  function model_data_get_field_array_ptr (model) result (ptr)
+    class(model_data_t), intent(in), target :: model
+    type(field_data_t), dimension(:), pointer :: ptr
+    ptr => model%field
+  end function model_data_get_field_array_ptr
+
+  function model_data_get_field_ptr_index (model, i) result (ptr)
+    class(model_data_t), intent(in), target :: model
+    integer, intent(in) :: i
+    type(field_data_t), pointer :: ptr
+    ptr => model%field(i)
+  end function model_data_get_field_ptr_index
+
+  subroutine model_data_init_sm_test (model)
+    class(model_data_t), intent(out) :: model
+    type(field_data_t), pointer :: field
+    integer :: i
+    call model%init (2)
+    i = 0
+    i = i + 1
+    field => model%get_field_ptr_by_index (i)
+    call field%init (var_str ("W_BOSON"), 24)
+    call field%set (name = [var_str ("W+")], anti = [var_str ("W-")])
+    i = i + 1
+    field => model%get_field_ptr_by_index (i)
+    call field%init (var_str ("HIGGS"), 25)
+    call field%set (name = [var_str ("H")])
+  end subroutine model_data_init_sm_test
+
+end module model_data
+
+
+module models
+  use, intrinsic :: iso_c_binding !NODEP!
+  use iso_varying_string, string_t => varying_string
+  use model_data
+!  use parser
+!  use variables
+  implicit none
+  private
+  public :: model_t
+
+  type, extends (model_data_t) :: model_t
+     private
+   contains
+     procedure :: append_field_vars => model_append_field_vars
+  end type model_t
+
+contains
+
+  subroutine model_append_field_vars (model)
+    class(model_t), intent(inout) :: model
+    type(field_data_t), dimension(:), pointer :: field_array
+    type(field_data_t), pointer :: field
+    type(string_t) :: name
+    type(string_t), dimension(:), allocatable :: name_array
+    integer :: i, j
+    field_array => model%get_field_array_ptr ()
+    do i = 1, size (field_array)
+       name = field_array(i)%get_longname ()
+       call field_array(i)%get_name_array (.false., name_array)
+    end do
+  end subroutine model_append_field_vars
+
+end module models
+
+
+program main_ut
+  use iso_varying_string, string_t => varying_string
+  use model_data
+  use models
+  implicit none
+
+  class(model_data_t), pointer :: model
+  model => null ()
+  allocate (model_t :: model)
+  select type (model)
+  type is (model_t)
+     call model%init_sm_test ()
+     call model%append_field_vars ()
+  end select
+end program main_ut
+! { dg-final { scan-tree-dump-times "__result->span = \[12\].." 1 "original" } }

commit 3161e4c2da91652c9a28e79cbf74dfee2201095f
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Nov 28 00:25:21 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 2073d1c3902..7c44885e94f 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241127
+20241128
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index ef30be5f020..c1731fc8bb0 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,14 @@
+2024-11-27  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-26  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/117763
+	* trans-array.cc (gfc_get_array_span): Guard against derefences
+	of 'expr'. Clean up some typos. Use 'gfc_get_vptr_from_expr'
+	for clarity and apply a functional reversion of last section
+	that deals with class dummies.
+
 2024-11-24  Paul Thomas  <pault@gcc.gnu.org>
 
 	PR fortran/84869
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8bfebc64fc2..d988b1959ac 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-11-27  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-26  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/117763
+	* gfortran.dg/pr117763.f90: New test.
+
 2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:

commit 196ab7853ef5dc225833a914491add0a3adeaf9d
Author: Vladimir N. Makarov <vmakarov@redhat.com>
Date:   Fri May 10 09:15:50 2024 -0400

    [PR114942][LRA]: Don't reuse input reload reg of inout early clobber operand
    
      The insn in question has the same reg in inout operand and input
    operand.  The inout operand is early clobber.  LRA reused input reload
    reg of the inout operand for the input operand which is wrong.  It
    were a good decision if the inout operand was not early clobber one.
    The patch rejects the reuse for the PR test case.
    
    gcc/ChangeLog:
    
            PR target/114942
            * lra-constraints.cc (struct input_reload): Add new member early_clobber_p.
            (get_reload_reg): Add new arg early_clobber_p, don't reuse input
            reload with true early_clobber_p member value, use the arg for new
            element of curr_insn_input_reloads.
            (match_reload): Assign false to early_clobber_p member.
            (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
            Adjust get_reload_reg calls.
    
    gcc/testsuite/ChangeLog:
    
            PR target/114942
            * gcc.target/i386/pr114942.c: New.
    
    (cherry picked from commit 9585317f0715699197b1313bbf939c6ea3c1ace6)

diff --git a/gcc/lra-constraints.cc b/gcc/lra-constraints.cc
index 10e3d4e4097..1f50e3005ea 100644
--- a/gcc/lra-constraints.cc
+++ b/gcc/lra-constraints.cc
@@ -599,6 +599,8 @@ struct input_reload
 {
   /* True for input reload of matched operands.  */
   bool match_p;
+  /* True for input reload of inout earlyclobber operand.  */
+  bool early_clobber_p;
   /* Reloaded value.  */
   rtx input;
   /* Reload pseudo used.  */
@@ -649,13 +651,15 @@ canonicalize_reload_addr (rtx addr)
 /* Create a new pseudo using MODE, RCLASS, EXCLUDE_START_HARD_REGS, ORIGINAL or
    reuse an existing reload pseudo.  Don't reuse an existing reload pseudo if
    IN_SUBREG_P is true and the reused pseudo should be wrapped up in a SUBREG.
+   EARLY_CLOBBER_P is true for input reload of inout early clobber operand.
    The result pseudo is returned through RESULT_REG.  Return TRUE if we created
    a new pseudo, FALSE if we reused an existing reload pseudo.  Use TITLE to
    describe new registers for debug purposes.  */
 static bool
 get_reload_reg (enum op_type type, machine_mode mode, rtx original,
 		enum reg_class rclass, HARD_REG_SET *exclude_start_hard_regs,
-		bool in_subreg_p, const char *title, rtx *result_reg)
+		bool in_subreg_p, bool early_clobber_p,
+		const char *title, rtx *result_reg)
 {
   int i, regno;
   enum reg_class new_class;
@@ -703,6 +707,7 @@ get_reload_reg (enum op_type type, machine_mode mode, rtx original,
     for (i = 0; i < curr_insn_input_reloads_num; i++)
       {
 	if (! curr_insn_input_reloads[i].match_p
+	    && ! curr_insn_input_reloads[i].early_clobber_p
 	    && rtx_equal_p (curr_insn_input_reloads[i].input, original)
 	    && in_class_p (curr_insn_input_reloads[i].reg, rclass, &new_class))
 	  {
@@ -750,6 +755,8 @@ get_reload_reg (enum op_type type, machine_mode mode, rtx original,
   lra_assert (curr_insn_input_reloads_num < LRA_MAX_INSN_RELOADS);
   curr_insn_input_reloads[curr_insn_input_reloads_num].input = original;
   curr_insn_input_reloads[curr_insn_input_reloads_num].match_p = false;
+  curr_insn_input_reloads[curr_insn_input_reloads_num].early_clobber_p
+    = early_clobber_p;
   curr_insn_input_reloads[curr_insn_input_reloads_num++].reg = *result_reg;
   return true;
 }
@@ -1189,6 +1196,7 @@ match_reload (signed char out, signed char *ins, signed char *outs,
   lra_assert (curr_insn_input_reloads_num < LRA_MAX_INSN_RELOADS);
   curr_insn_input_reloads[curr_insn_input_reloads_num].input = in_rtx;
   curr_insn_input_reloads[curr_insn_input_reloads_num].match_p = true;
+  curr_insn_input_reloads[curr_insn_input_reloads_num].early_clobber_p = false;
   curr_insn_input_reloads[curr_insn_input_reloads_num++].reg = new_in_reg;
   for (i = 0; (in = ins[i]) >= 0; i++)
     if (GET_MODE (*curr_id->operand_loc[in]) == VOIDmode
@@ -1577,7 +1585,7 @@ process_addr_reg (rtx *loc, bool check_only_p, rtx_insn **before, rtx_insn **aft
 	  reg = *loc;
 	  if (get_reload_reg (after == NULL ? OP_IN : OP_INOUT,
 			      mode, reg, cl, NULL,
-			      subreg_p, "address", &new_reg))
+			      subreg_p, false, "address", &new_reg))
 	    before_p = true;
 	}
       else if (new_class != NO_REGS && rclass != new_class)
@@ -1733,7 +1741,7 @@ simplify_operand_subreg (int nop, machine_mode reg_mode)
 	    = (enum reg_class) targetm.preferred_reload_class (reg, ALL_REGS);
 	  if (get_reload_reg (curr_static_id->operand[nop].type, innermode,
 			      reg, rclass, NULL,
-			      true, "slow/invalid mem", &new_reg))
+			      true, false, "slow/invalid mem", &new_reg))
 	    {
 	      bool insert_before, insert_after;
 	      bitmap_set_bit (&lra_subreg_reload_pseudos, REGNO (new_reg));
@@ -1753,7 +1761,7 @@ simplify_operand_subreg (int nop, machine_mode reg_mode)
 	    = (enum reg_class) targetm.preferred_reload_class (reg, ALL_REGS);
 	  if (get_reload_reg (curr_static_id->operand[nop].type, mode, reg,
 			      rclass, NULL,
-			      true, "slow/invalid mem", &new_reg))
+			      true, false, "slow/invalid mem", &new_reg))
 	    {
 	      bool insert_before, insert_after;
 	      bitmap_set_bit (&lra_subreg_reload_pseudos, REGNO (new_reg));
@@ -1854,7 +1862,7 @@ simplify_operand_subreg (int nop, machine_mode reg_mode)
 
       if (get_reload_reg (curr_static_id->operand[nop].type, reg_mode, reg,
 			  rclass, NULL,
-			  true, "subreg reg", &new_reg))
+			  true, false, "subreg reg", &new_reg))
 	{
 	  bool insert_before, insert_after;
 	  bitmap_set_bit (&lra_subreg_reload_pseudos, REGNO (new_reg));
@@ -1928,7 +1936,7 @@ simplify_operand_subreg (int nop, machine_mode reg_mode)
 
       if (get_reload_reg (curr_static_id->operand[nop].type, mode, reg,
                           rclass, NULL,
-			  true, "paradoxical subreg", &new_reg))
+			  true, false, "paradoxical subreg", &new_reg))
         {
 	  rtx subreg;
 	  bool insert_before, insert_after;
@@ -4594,7 +4602,7 @@ curr_insn_transform (bool check_only_p)
 				/* This value does not matter for MODIFY.  */
 				GET_MODE_SIZE (GET_MODE (op)));
 	  else if (get_reload_reg (OP_IN, Pmode, *loc, rclass,
-				   NULL, false,
+				   NULL, false, false,
 				   "offsetable address", &new_reg))
 	    {
 	      rtx addr = *loc;
@@ -4680,7 +4688,10 @@ curr_insn_transform (bool check_only_p)
 	  old = *loc;
 	  if (get_reload_reg (type, mode, old, goal_alt[i],
 			      &goal_alt_exclude_start_hard_regs[i],
-			      loc != curr_id->operand_loc[i], "", &new_reg)
+			      loc != curr_id->operand_loc[i],
+			      curr_static_id->operand_alternative
+			      [goal_alt_number * n_operands + i].earlyclobber,
+			       "", &new_reg)
 	      && type != OP_OUT)
 	    {
 	      push_to_sequence (before);
diff --git a/gcc/testsuite/gcc.target/i386/pr114942.c b/gcc/testsuite/gcc.target/i386/pr114942.c
new file mode 100644
index 00000000000..77dbb62be12
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr114942.c
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fno-tree-sra -fno-guess-branch-probability" } */
+
+extern void a();
+struct b {
+  char c;
+  char d;
+} e;
+int main() {
+  struct b f = e;
+  char i = 0;
+ L1:
+  if (!f.c)
+    goto L2;
+  if (e.c)
+    a();
+  else
+    return 0;
+  f.d = 0;
+  i = 1 % ((1 & f.c) - 2);
+ L2:
+  f.c = ~(i & ~f.d);
+  goto L1;
+}

commit ea36e9d17971210762580489b71b05e7bf7faa2e
Author: Vladimir N. Makarov <vmakarov@redhat.com>
Date:   Mon Nov 25 16:09:00 2024 -0500

    [PR117105][LRA]: Use unique value reload pseudo for early clobber operand
    
    LRA did not generate insn satisfying insn constraints on the PR
    test.  The reason for this is that LRA assigned the same hard reg for
    two conflicting reload pseudos.  The two insn reload pseudos are
    originated from the same pseudo and LRA tried to optimize as it
    assigned the same value for the reload pseudos.  It is an LRA
    optimization to minimize reload insns.  The two reload pseudos
    conflict as one of them is an early clobber insn operands.  The patch
    solves this problem by assigning unique value if the operand is early
    clobber one.
    
    gcc/ChangeLog:
    
            PR target/117105
            * lra-constraints.cc (get_reload_reg): Create unique value reload
            pseudos for early clobbered operands.
    
    gcc/testsuite/ChangeLog:
    
            PR target/117105
            * gcc.target/i386/pr117105.c: New test.
    
    (cherry picked from commit 4b09e2c67ef593db171b0755b46378964421782b)

diff --git a/gcc/lra-constraints.cc b/gcc/lra-constraints.cc
index 1f50e3005ea..dbc5129ae0a 100644
--- a/gcc/lra-constraints.cc
+++ b/gcc/lra-constraints.cc
@@ -663,7 +663,6 @@ get_reload_reg (enum op_type type, machine_mode mode, rtx original,
 {
   int i, regno;
   enum reg_class new_class;
-  bool unique_p = false;
 
   if (type == OP_OUT)
     {
@@ -701,6 +700,8 @@ get_reload_reg (enum op_type type, machine_mode mode, rtx original,
 						exclude_start_hard_regs, title);
       return true;
     }
+
+  bool unique_p = early_clobber_p;
   /* Prevent reuse value of expression with side effects,
      e.g. volatile memory.  */
   if (! side_effects_p (original))
diff --git a/gcc/testsuite/gcc.target/i386/pr117105.c b/gcc/testsuite/gcc.target/i386/pr117105.c
new file mode 100644
index 00000000000..252bb138c9c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117105.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -fno-code-hoisting -fno-tree-fre -fno-tree-dominator-opts -fno-tree-pre -fno-tree-sra" } */
+int a;
+struct b {
+  char c;
+  char d;
+};
+int main() {
+  struct b e;
+  int f;
+  while (a)
+    if (f == e.d)
+      f = e.c = e.d & 1 >> e.d;
+  return 0;
+}

commit 8fd9461976b325efd134f9004a7958ebd008148f
Author: Martin Jambor <mjambor@suse.cz>
Date:   Wed Oct 23 11:30:32 2024 +0200

    tree-sra: Avoid SRAing arguments to a function returning_twice (PR 117142)
    
    PR 117142 shows that the current SRA probably never worked reliably
    with arguments passed to a function returning twice, because it then
    creates statements before the call which however needs to be at the
    beginning of a basic block.
    
    While it should be possible to make at least the case of passing
    arguments by value work with SRA (the statements would need to be put
    just on the non-abnormal edges leading to the BB), this would mean
    large surgery of function sra_modify_expr and I guess the time would
    better be spent re-organizing the whole pass.
    
    gcc/ChangeLog:
    
    2024-10-21  Martin Jambor  <mjambor@suse.cz>
    
            PR tree-optimization/117142
            * tree-sra.cc (build_access_from_call_arg): Disqualify any
            candidate passed to a function returning twice.
    
    gcc/testsuite/ChangeLog:
    
    2024-10-21  Martin Jambor  <mjambor@suse.cz>
    
            PR tree-optimization/117142
            * gcc.dg/tree-ssa/pr117142.c: New test.
    
    (cherry picked from commit 29d8f1f0b7ad3c69b3bdb130325300d5f73aa784)

diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr117142.c b/gcc/testsuite/gcc.dg/tree-ssa/pr117142.c
new file mode 100644
index 00000000000..fc62c1e58f2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr117142.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+
+struct a {
+  int b;
+};
+void c(int, int);
+void __attribute__((returns_twice))
+bar1(struct a);
+void bar(struct a) {
+  struct a d;
+  bar1(d);
+  c(d.b, d.b);
+}
diff --git a/gcc/tree-sra.cc b/gcc/tree-sra.cc
index 8040b0c5645..c91e40ef7e7 100644
--- a/gcc/tree-sra.cc
+++ b/gcc/tree-sra.cc
@@ -1397,6 +1397,15 @@ static bool
 build_access_from_call_arg (tree expr, gimple *stmt, bool can_be_returned,
 			    enum out_edge_check *oe_check)
 {
+  if (gimple_call_flags (stmt) & ECF_RETURNS_TWICE)
+    {
+      tree base = expr;
+      if (TREE_CODE (expr) == ADDR_EXPR)
+	base = get_base_address (TREE_OPERAND (expr, 0));
+      disqualify_base_of_expr (base, "Passed to a returns_twice call.");
+      return false;
+    }
+
   if (TREE_CODE (expr) == ADDR_EXPR)
     {
       tree base = get_base_address (TREE_OPERAND (expr, 0));

commit 9431ca6fcdb98ea1a2de23208b46a59cc59a2e3a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Nov 29 00:25:26 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a49b76780f0..231473efece 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,35 @@
+2024-11-28  Martin Jambor  <mjambor@suse.cz>
+
+	Backported from master:
+	2024-10-23  Martin Jambor  <mjambor@suse.cz>
+
+	PR tree-optimization/117142
+	* tree-sra.cc (build_access_from_call_arg): Disqualify any
+	candidate passed to a function returning twice.
+
+2024-11-28  Vladimir N. Makarov  <vmakarov@redhat.com>
+
+	Backported from master:
+	2024-11-25  Vladimir N. Makarov  <vmakarov@redhat.com>
+
+	PR target/117105
+	* lra-constraints.cc (get_reload_reg): Create unique value reload
+	pseudos for early clobbered operands.
+
+2024-11-28  Vladimir N. Makarov  <vmakarov@redhat.com>
+
+	Backported from master:
+	2024-05-10  Vladimir N. Makarov  <vmakarov@redhat.com>
+
+	PR target/114942
+	* lra-constraints.cc (struct input_reload): Add new member early_clobber_p.
+	(get_reload_reg): Add new arg early_clobber_p, don't reuse input
+	reload with true early_clobber_p member value, use the arg for new
+	element of curr_insn_input_reloads.
+	(match_reload): Assign false to early_clobber_p member.
+	(process_addr_reg, simplify_operand_subreg, curr_insn_transform):
+	Adjust get_reload_reg calls.
+
 2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7c44885e94f..c38b4a0a46e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241128
+20241129
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d988b1959ac..e9c91b6bac3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,27 @@
+2024-11-28  Martin Jambor  <mjambor@suse.cz>
+
+	Backported from master:
+	2024-10-23  Martin Jambor  <mjambor@suse.cz>
+
+	PR tree-optimization/117142
+	* gcc.dg/tree-ssa/pr117142.c: New test.
+
+2024-11-28  Vladimir N. Makarov  <vmakarov@redhat.com>
+
+	Backported from master:
+	2024-11-25  Vladimir N. Makarov  <vmakarov@redhat.com>
+
+	PR target/117105
+	* gcc.target/i386/pr117105.c: New test.
+
+2024-11-28  Vladimir N. Makarov  <vmakarov@redhat.com>
+
+	Backported from master:
+	2024-05-10  Vladimir N. Makarov  <vmakarov@redhat.com>
+
+	PR target/114942
+	* gcc.target/i386/pr114942.c: New.
+
 2024-11-27  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:

commit 6cfe4fd3fb44b660eaf52302235c4a9992a9ddb4
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Oct 22 11:46:47 2024 +0200

    tree-optimization/117254 - ICE with access diangostics
    
    The diagnostics code fails to handle non-constant domain max.
    
            PR tree-optimization/117254
            * gimple-ssa-warn-access.cc (maybe_warn_nonstring_arg):
            Check the array domain max is constant before using it.
    
            * gcc.dg/pr117254.c: New testcase.
    
    (cherry picked from commit d464a52d0678dfea523a60efe8b792ba1b8d40db)

diff --git a/gcc/gimple-ssa-warn-access.cc b/gcc/gimple-ssa-warn-access.cc
index 194d1a2c02a..5c1f3a414b1 100644
--- a/gcc/gimple-ssa-warn-access.cc
+++ b/gcc/gimple-ssa-warn-access.cc
@@ -606,7 +606,8 @@ maybe_warn_nonstring_arg (tree fndecl, GimpleOrTree exp)
 	{
 	  if (tree arrbnd = TYPE_DOMAIN (type))
 	    {
-	      if ((arrbnd = TYPE_MAX_VALUE (arrbnd)))
+	      if ((arrbnd = TYPE_MAX_VALUE (arrbnd))
+		  && TREE_CODE (arrbnd) == INTEGER_CST)
 		{
 		  asize = wi::to_offset (arrbnd) + 1;
 		  known_size = true;
diff --git a/gcc/testsuite/gcc.dg/pr117254.c b/gcc/testsuite/gcc.dg/pr117254.c
new file mode 100644
index 00000000000..c7a510677f1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr117254.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+int g;
+void e(int s) {
+  struct {
+    __attribute__((nonstring)) char bn[g];
+  } f;
+  __builtin_strncpy (f.bn, f.bn, s);
+}

commit bbe47a2d763d14de94c1e98104e2fa553783972a
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Oct 28 09:52:08 2024 +0100

    tree-optimization/117307 - STMT_VINFO_SLP_VECT_ONLY mis-computation
    
    STMT_VINFO_SLP_VECT_ONLY isn't properly computed as union of all
    group members and when the group is later split due to duplicates
    not all sub-groups inherit the flag.
    
            PR tree-optimization/117307
            * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses):
            Properly compute STMT_VINFO_SLP_VECT_ONLY.  Set it on all
            parts of a split group.
    
            * gcc.dg/vect/pr117307.c: New testcase.
    
    (cherry picked from commit 19722308a286d9a00eead8ac82b948da8c4ca38b)

diff --git a/gcc/testsuite/gcc.dg/vect/pr117307.c b/gcc/testsuite/gcc.dg/vect/pr117307.c
new file mode 100644
index 00000000000..dc853d61706
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr117307.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=x86-64-v4" { target { x86_64-*-* i?86-*-* } } } */
+
+int a;
+float *b, *c;
+float d;
+void e() {
+  for (; a; a++) {
+    if (d) {
+      c[0] = b[0];
+      c[1] = b[1];
+    } else if (b[1])
+      c[0] = b[0] * 0;
+    b += 2;
+    c += 2;
+  }
+}
diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc
index c531079d3bb..b1bacf8b279 100644
--- a/gcc/tree-vect-data-refs.cc
+++ b/gcc/tree-vect-data-refs.cc
@@ -3552,12 +3552,15 @@ vect_analyze_data_ref_accesses (vec_info *vinfo,
 	  DR_GROUP_NEXT_ELEMENT (lastinfo) = stmtinfo_b;
 	  lastinfo = stmtinfo_b;
 
-	  STMT_VINFO_SLP_VECT_ONLY (stmtinfo_a)
-	    = !can_group_stmts_p (stmtinfo_a, stmtinfo_b, false);
+	  if (! STMT_VINFO_SLP_VECT_ONLY (stmtinfo_a))
+	    {
+	      STMT_VINFO_SLP_VECT_ONLY (stmtinfo_a)
+		= !can_group_stmts_p (stmtinfo_a, stmtinfo_b, false);
 
-	  if (dump_enabled_p () && STMT_VINFO_SLP_VECT_ONLY (stmtinfo_a))
-	    dump_printf_loc (MSG_NOTE, vect_location,
-			     "Load suitable for SLP vectorization only.\n");
+	      if (dump_enabled_p () && STMT_VINFO_SLP_VECT_ONLY (stmtinfo_a))
+		dump_printf_loc (MSG_NOTE, vect_location,
+				 "Load suitable for SLP vectorization only.\n");
+	    }
 
 	  if (init_b == init_prev
 	      && !to_fixup.add (DR_GROUP_FIRST_ELEMENT (stmtinfo_a))
@@ -3601,7 +3604,11 @@ vect_analyze_data_ref_accesses (vec_info *vinfo,
 	    {
 	      DR_GROUP_NEXT_ELEMENT (g) = DR_GROUP_NEXT_ELEMENT (next);
 	      if (!newgroup)
-		newgroup = next;
+		{
+		  newgroup = next;
+		  STMT_VINFO_SLP_VECT_ONLY (newgroup)
+		    = STMT_VINFO_SLP_VECT_ONLY (grp);
+		}
 	      else
 		DR_GROUP_NEXT_ELEMENT (ng) = next;
 	      ng = next;

commit 8a13eef88742c09d91be090fa8cb9bc3040290e7
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Oct 29 09:42:12 2024 +0100

    tree-optimization/117333 - ICE with NULL access size DR
    
    dr_may_alias_p ICEs when TYPE_SIZE of DR->ref is NULL but this is
    valid IL when the access size of an aggregate copy can be infered
    from the RHS.
    
            PR tree-optimization/117333
            * tree-data-ref.cc (dr_may_alias_p): Guard against NULL
            access size.
    
            * gcc.dg/torture/pr117333.c: New testcase.
    
    (cherry picked from commit 0e99b22aa666f107c4035d32bfb5ab11534a9d2f)

diff --git a/gcc/testsuite/gcc.dg/torture/pr117333.c b/gcc/testsuite/gcc.dg/torture/pr117333.c
new file mode 100644
index 00000000000..38c1b5493a5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr117333.c
@@ -0,0 +1,29 @@
+/* { dg-do compile } */
+
+struct s
+{
+  unsigned long ul;
+  int i;
+  char ac[];
+};
+
+const struct s gs = { 3, -4, "abcdef" };
+
+void copy_s(struct s*d, const struct s*s)
+{
+  *d = *s;
+}
+
+unsigned test(struct s*ps, _Bool direct)
+{
+  if(direct)
+    *ps = gs;
+  else
+    copy_s(ps, &gs);
+  return sizeof(*ps);
+}
+
+unsigned size(void)
+{
+  return sizeof(gs);
+}
diff --git a/gcc/tree-data-ref.cc b/gcc/tree-data-ref.cc
index c9982e2b43d..501a4593727 100644
--- a/gcc/tree-data-ref.cc
+++ b/gcc/tree-data-ref.cc
@@ -3003,6 +3003,8 @@ dr_may_alias_p (const struct data_reference *a, const struct data_reference *b,
 	  && DR_BASE_ADDRESS (b)
 	  && operand_equal_p (DR_BASE_ADDRESS (a), DR_BASE_ADDRESS (b))
 	  && operand_equal_p (DR_OFFSET (a), DR_OFFSET (b))
+	  && tree_size_a
+	  && tree_size_b
 	  && poly_int_tree_p (tree_size_a)
 	  && poly_int_tree_p (tree_size_b)
 	  && !ranges_maybe_overlap_p (wi::to_poly_widest (DR_INIT (a)),

commit 1fce67961689a59fb2ffad6f50fc4dab76740174
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Nov 12 11:15:15 2024 +0100

    tree-optimization/117417 - ICE with complex load optimization
    
    When we decompose a complex load only used as real and imaginary
    parts we fail to honor IL constraints which are that a BIT_FIELD_REF
    of register type should be outermost in a ref.  The following
    simply avoids the transform when the complex load has such a
    BIT_FIELD_REF.
    
            PR tree-optimization/117417
            * tree-ssa-forwprop.cc (pass_forwprop::execute): Avoid
            decomposing BIT_FIELD_REF complex load.
    
            * gcc.dg/torture/pr117417.c: New testcase.
    
    (cherry picked from commit d976daa931642d940b7b27032ca6139210c07eed)

diff --git a/gcc/testsuite/gcc.dg/torture/pr117417.c b/gcc/testsuite/gcc.dg/torture/pr117417.c
new file mode 100644
index 00000000000..2c80dd5d77c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr117417.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+
+typedef __attribute__((__vector_size__ (8))) double V;
+int bar (int a, V *p)
+{
+  V v;
+  v = *p;
+  a += *(_Complex short *) &v;
+  return a;
+}
+V x;
+int
+foo ()
+{
+  return bar (0, &x);
+}
diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc
index 1f49084246f..05cd6b0dff1 100644
--- a/gcc/tree-ssa-forwprop.cc
+++ b/gcc/tree-ssa-forwprop.cc
@@ -3680,8 +3680,8 @@ pass_forwprop::execute (function *fun)
 	  else if (TREE_CODE (TREE_TYPE (lhs)) == COMPLEX_TYPE
 		   && gimple_assign_load_p (stmt)
 		   && !gimple_has_volatile_ops (stmt)
-		   && (TREE_CODE (gimple_assign_rhs1 (stmt))
-		       != TARGET_MEM_REF)
+		   && TREE_CODE (rhs) != TARGET_MEM_REF
+		   && TREE_CODE (rhs) != BIT_FIELD_REF
 		   && !stmt_can_throw_internal (fun, stmt))
 	    {
 	      /* Rewrite loads used only in real/imagpart extractions to

commit a8e01b735a1b7e8386ad7baab54802faf58bae02
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Nov 4 11:39:05 2024 +0100

    middle-end/117433 - ICE with gimple BLKmode reg copy
    
    When we end up expanding a SSA name copy with BLKmode regs which can
    happen for vectors, possibly wrapped in a NOP-conversion or
    a PAREN_EXPR and we are not optimizing we can end up with two
    BLKmode MEMs that expand_gimple_stmt_1 doesn't properly handle
    when expanding, trying to emit_move_insn them.  Looking at store_expr
    which what expand_gimple_stmt_1 is really doing reveals a lot of
    magic that's missing.  It eventually falls back to emit_block_move
    (store_expr isn't exported), so this is what I ended up using here
    given I think we'll only have BLKmode "registers" for vectors.
    
            PR middle-end/117433
            * cfgexpand.cc (expand_gimple_stmt_1): Use emit_block_move
            when moving temp to BLKmode target.
    
            * gcc.dg/pr117433.c: New testcase.
    
    (cherry picked from commit 2fc25a21820001c67258d30f0960ac9cd0f268cf)

diff --git a/gcc/cfgexpand.cc b/gcc/cfgexpand.cc
index eef565eddb5..52028f20855 100644
--- a/gcc/cfgexpand.cc
+++ b/gcc/cfgexpand.cc
@@ -4039,8 +4039,13 @@ expand_gimple_stmt_1 (gimple *stmt)
 	    else
 	      {
 		temp = force_operand (temp, target);
-		if (temp != target)
+		if (temp == target)
+		  ;
+		else if (GET_MODE (target) != BLKmode)
 		  emit_move_insn (target, temp);
+		else
+		  emit_block_move (target, temp, expr_size (lhs),
+				   BLOCK_OP_NORMAL);
 	      }
 	  }
       }
diff --git a/gcc/testsuite/gcc.dg/pr117433.c b/gcc/testsuite/gcc.dg/pr117433.c
new file mode 100644
index 00000000000..1014c1ef318
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr117433.c
@@ -0,0 +1,21 @@
+/* { dg-do run } */
+
+__attribute__((__vector_size__ (sizeof (long unsigned) * 8))) long unsigned b;
+
+void __attribute__((noipa))
+foo ()
+{
+  b += __builtin_assoc_barrier (b);
+}
+
+int main()
+{
+  int i;
+  for (i = 0; i < 8; ++i)
+    b[i] = i;
+  foo ();
+  for (i = 0; i < 8; ++i)
+    if (b[i] != 2*i)
+      __builtin_abort ();
+  return 0;
+}

commit 8764b8543b93494861bc034bb82af38db1688c8f
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Nov 15 11:56:14 2024 +0100

    tree-optimization/117574 - bougs niter lt-to-ne
    
    When trying to change a IV from IV0 < IV1 to IV0' != IV1' we apply
    fancy adjustments to the may_be_zero condition we compute rather
    than using the obvious IV0->base >= IV1->base expression (to be
    able to use > instead of >=?).  This doesn't seem to go well.
    
            PR tree-optimization/117574
            * tree-ssa-loop-niter.cc (number_of_iterations_lt_to_ne):
            Use the obvious may_be_zero condition.
    
            * gcc.dg/torture/pr117574-1.c: New testcase.
    
    (cherry picked from commit ff5a14abeb31cd6bd0ca55e7043d05c8141a8c7f)

diff --git a/gcc/testsuite/gcc.dg/torture/pr117574-1.c b/gcc/testsuite/gcc.dg/torture/pr117574-1.c
new file mode 100644
index 00000000000..2e99cec13b6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr117574-1.c
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+
+void abort (void);
+int a, c;
+long b;
+short d;
+static long e(long f, long h, long i) {
+  for (long g = f; g <= h; g += i)
+    b += g;
+  return b;
+}
+int main() {
+  c = 1;
+  for (; c >= 0; c--)
+    ;
+  for (; e(d + 40, d + 76, c + 51) < 4;)
+    ;
+  if (a != 0)
+    abort ();
+}
diff --git a/gcc/tree-ssa-loop-niter.cc b/gcc/tree-ssa-loop-niter.cc
index c6d010f6d89..b71eb67fbc7 100644
--- a/gcc/tree-ssa-loop-niter.cc
+++ b/gcc/tree-ssa-loop-niter.cc
@@ -1199,17 +1199,6 @@ number_of_iterations_lt_to_ne (tree type, affine_iv *iv0, affine_iv *iv1,
 	  if (integer_zerop (assumption))
 	    return false;
 	}
-      if (mpz_cmp (mmod, bnds->below) < 0)
-	noloop = boolean_false_node;
-      else if (POINTER_TYPE_P (type))
-	noloop = fold_build2 (GT_EXPR, boolean_type_node,
-			      iv0->base,
-			      fold_build_pointer_plus (iv1->base, tmod));
-      else
-	noloop = fold_build2 (GT_EXPR, boolean_type_node,
-			      iv0->base,
-			      fold_build2 (PLUS_EXPR, type1,
-					   iv1->base, tmod));
     }
   else
     {
@@ -1225,21 +1214,15 @@ number_of_iterations_lt_to_ne (tree type, affine_iv *iv0, affine_iv *iv1,
 	  if (integer_zerop (assumption))
 	    return false;
 	}
-      if (mpz_cmp (mmod, bnds->below) < 0)
-	noloop = boolean_false_node;
-      else if (POINTER_TYPE_P (type))
-	noloop = fold_build2 (GT_EXPR, boolean_type_node,
-			      fold_build_pointer_plus (iv0->base,
-						       fold_build1 (NEGATE_EXPR,
-								    type1, tmod)),
-			      iv1->base);
-      else
-	noloop = fold_build2 (GT_EXPR, boolean_type_node,
-			      fold_build2 (MINUS_EXPR, type1,
-					   iv0->base, tmod),
-			      iv1->base);
     }
 
+  /* IV0 < IV1 does not loop if IV0->base >= IV1->base.  */
+  if (mpz_cmp (mmod, bnds->below) < 0)
+    noloop = boolean_false_node;
+  else
+    noloop = fold_build2 (GE_EXPR, boolean_type_node,
+			  iv0->base, iv1->base);
+
   if (!integer_nonzerop (assumption))
     niter->assumptions = fold_build2 (TRUTH_AND_EXPR, boolean_type_node,
 				      niter->assumptions,

commit b1e14fc244c6b4543eb0ec1857afcf125cfbd917
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Nov 18 13:46:52 2024 +0100

    tree-optimization/117594 - fix live op vectorization for length masked case
    
    The code was passing factor == 0 to vect_get_loop_len which always
    returns an unmodified length, even if the number of scalar elements
    doesn't agree.  It also failed to insert the eventually generated
    code.
    
            PR tree-optimization/117594
            * tree-vect-loop.cc (vectorizable_live_operation_1): Pass
            factor == 1 to vect_get_loop_len, insert generated stmts.
    
            * gcc.dg/vect/pr117594.c: New testcase.
    
    (cherry picked from commit c108785c425b2042f63fa975c58c274d19a8d160)

diff --git a/gcc/testsuite/gcc.dg/vect/pr117594.c b/gcc/testsuite/gcc.dg/vect/pr117594.c
new file mode 100644
index 00000000000..ab213908bbc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr117594.c
@@ -0,0 +1,20 @@
+/* { dg-require-effective-target int32plus } */
+
+#include "tree-vect.h"
+
+unsigned a;
+short b, d, e;
+int main()
+{
+  check_vect ();
+  short h = d;
+  short *z = &h;
+  for (_Bool i = 0; i < 1; i = 1)
+    for (unsigned j = 0; j < (z[i] ?: 10); j += 3)
+      {
+	a -= 9;
+	b -= ~e;
+      }
+  if (a != 4294967260)
+    __builtin_abort ();
+}
diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index dfb9d1be667..2db483c245e 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -10672,7 +10672,8 @@ vectorizable_live_operation_1 (loop_vec_info loop_vinfo,
       gimple_stmt_iterator gsi = gsi_last (tem);
       tree len = vect_get_loop_len (loop_vinfo, &gsi,
 				    &LOOP_VINFO_LENS (loop_vinfo),
-				    1, vectype, 0, 0);
+				    1, vectype, 0, 1);
+      gimple_seq_add_seq (&stmts, tem);
 
       /* BIAS - 1.  */
       signed char biasval = LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);

commit eb73f78634fd957d99640f79c01dd1a9eb69c783
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Nov 29 15:30:44 2024 +0000

    [PATCH] PR modula2/116181 remove ODR warnings from library interface files
    
    This patch removes the warnings generated by -Wodr from the library
    interface between modula-2 and C.
    
    gcc/m2/ChangeLog:
    
            PR modula2/116181
            * Make-lang.in (MC_SRC_FLAGS): New macro.
            (m2/mc-boot/$(SRC_PREFIX)%.o): Use MC_SRC_FLAGS.
            (m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
            (m2/gm2-libs-boot/M2RTS.o): Ditto.
            (m2/gm2-libs-boot/%.o): Ditto.
            (GM2-LIBS-BOOT-H): New macro.
            (m2/gm2-libs-boot/RTcodummy.o): Use MC_SRC_FLAGS.
            Remove gm2-libs-host.h from the dependancy.
            (m2/gm2-libs-boot/wrapc.o): Use MC_SRC_FLAGS.
            Add dependancy GM2-LIBS-BOOT-H.
            (m2/gm2-libs-boot/UnixArgs.o): Ditto.
            (m2/gm2-libs-boot/choosetemp.o): Ditto.
            (m2/gm2-libs-boot/errno.o): Ditto.
            (m2/gm2-libs-boot/dtoa.o): Ditto.
            (m2/gm2-libs-boot/ldtoa.o): Ditto.
            (m2/gm2-libs-boot/termios.o): Ditto.
            (m2/gm2-libs-boot/SysExceptions.o): Ditto.
            (m2/gm2-compiler-boot/M2GCCDeclare.o): Add gm2-libs-ch to the
            search path.
            (m2/gm2-compiler-boot/M2Error.o): Ditto.
            (m2/gm2-compiler-boot/%.o): Ditto.
            (m2/pge-boot/%.o): Ditto.
            * gm2-gcc/m2color.cc (m2color_colorize_start): Replace parameter
            type char to void and recast to char * when calling colorize_start.
            * gm2-gcc/m2color.h (m2color_colorize_start): Replace parameter
            type char to void.
            * gm2-gcc/m2type.h: Remove #if 0 block.
            * gm2-libs-ch/SysExceptions.c (DECL_PROC_T): Provide alternative
            defines for MC an gm2.
            (PROC_FUNC): Ditto.
            (EXTERN): Force undefine and redefine.
            (SysExceptions_InitExceptionHandlers): Rewrite function
            declaration using defined macros.
            (_M2_SysExceptions_init): Use EXTERN.
            (_M2_SysExceptions_finish): Replace with ...
            (_M2_SysExceptions_fini): ... this and add parameters.
            * gm2-libs-ch/UnixArgs.cc (gm2-libs-host.h): Include.
            (GUnixArgs.h): Include.
            (GM2RTS.h): Include.
            (UnixArgs_GetArgV): Change return type to void *.
            (UnixArgs_GetEnvV): Ditto.
            * gm2-libs-ch/m2rts.h (M2RTS_RegisterModule_Cstr): Add new
            conditional macro.
            (M2RTS_RequestDependant): Remove.
            (M2RTS_RegisterModule): Ditto.
            (M2RTS_Terminate): Ditto.
            (M2RTS_DeconstructModules): Ditto.
            (M2RTS_Halt): Ditto.
            (_M2_M2RTS_init): Ditto.
            (M2RTS_ConstructModules): Ditto.
            * gm2-libs-ch/termios.c (_termios_C): Define.
            (EXTERN): Add conditional definition.
            (doSetUnset): New function.
            (_M2_termios_init): Add correct parameters.
            (_M2_termios_finish): Ditto.
            (_M2_termios_fini): Ditto.
            * mc-boot-ch/GSysExceptions.c (DECL_PROC_T): New define.
            (PROC_FUNC): Ditto.
            (EXTERN): Force undef.
            (SysExceptions_InitExceptionHandlers): Rewrite.
            * mc-boot-ch/Glibc.c (libc_open): Rename parameter
            oflag to flags.
            * mc-boot-ch/Gtermios.cc (_termios_C): New define.
            (KillTermios): Change parameter type from
            struct termios * to termios_TERMIOS.
            (tcsnow): Rewrite.
            (tcsnow): Rewrite.
            (tcsdrain): Rewrite.
            (tcsflush): Rewrite.
            (cfgetospeed): Rewrite.
            (cfgetispeed): Rewrite.
            (cfsetospeed): Rewrite.
            (cfsetispeed): Rewrite.
            (cfsetspeed): Rewrite.
            (cfsetspeed): Rewrite.
            (tcgetattr): Rewrite.
            (tcsetattr): Rewrite.
            (cfmakeraw): Rewrite.
            (tcsendbreak): Rewrite.
            (tcdrain): Rewrite.
            (tcflushi): Rewrite.
            (tcflusho): Rewrite.
            (tcflushio): Rewrite.
            (tcflowoni): Rewrite.
            (tcflowoffi): Rewrite.
            (tcflowono): Rewrite.
            (tcflowoffo): Rewrite.
            (GetFlag): Rewrite.
            (SetFlag): Rewrite.
            (GetChar): Rewrite.
            (SetChar): Rewrite.
            (InitTermios): Rewrite.
            * pge-boot/GM2RTS.cc: Regenerate.
            * pge-boot/GSysExceptions.cc: Ditto.
            * pge-boot/Gtermios.cc: Ditto.
            * pge-boot/m2rts.h: Rewrite.
            * mc-boot-ch/GSYSTEM.h: New file.
            * mc-boot-ch/GSysExceptions.h: New file.
            * mc-boot-ch/Gtermios.h: New file.
    
    (cherry picked from commit b8ef805e4d850971b9926fd81b4f0612ddffaf82)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index 2bd60ca2939..ed677a42974 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -512,6 +512,8 @@ MC=m2/boot-bin/mc$(exeext) $(MC_ARGS)
 
 MC_LIBS=m2/mc-boot-ch/Glibc.o m2/mc-boot-ch/Gmcrts.o
 
+MC_SRC_FLAGS=-DMC_M2
+
 M2LINK=m2/boot-bin/mklink$(exeext)
 GM2_O=-O0
 GM2_O_S3=-O
@@ -1434,17 +1436,17 @@ m2/boot-bin/mc$(exeext): $(BUILD-MC-BOOT-O) $(BUILD-MC-INTERFACE-O) \
 
 m2/mc-boot/$(SRC_PREFIX)%.o: m2/mc-boot/$(SRC_PREFIX)%.cc m2/gm2-libs/gm2-libs-host.h
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) $(CXXFLAGS) $(GM2_PICFLAGS) -g -c -I. -I$(srcdir)/m2/mc-boot-ch -I$(srcdir)/m2/mc-boot -I$(srcdir)/../include -I$(srcdir) $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) $(CXXFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -g -c -I. -I$(srcdir)/m2/mc-boot-ch -I$(srcdir)/m2/mc-boot -I$(srcdir)/../include -I$(srcdir) $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
 m2/mc-boot-ch/$(SRC_PREFIX)%.o: m2/mc-boot-ch/$(SRC_PREFIX)%.c m2/gm2-libs/gm2-libs-host.h
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) $(CXXFLAGS) $(GM2_PICFLAGS) -DHAVE_CONFIG_H -g -c -I. -Im2/gm2-libs -I$(srcdir)/../include -I$(srcdir) $(INCLUDES) -Im2/gm2-libs $< -o $@
+	$(CXX) $(CM2DEP) $(CXXFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -DHAVE_CONFIG_H -g -c -I. -Im2/gm2-libs -I$(srcdir)/../include -I$(srcdir) $(INCLUDES) -Im2/gm2-libs $< -o $@
 	$(POSTCOMPILE)
 
 m2/mc-boot-ch/$(SRC_PREFIX)%.o: m2/mc-boot-ch/$(SRC_PREFIX)%.cc m2/gm2-libs/gm2-libs-host.h
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) $(CXXFLAGS) $(GM2_PICFLAGS) -DHAVE_CONFIG_H -g -c -I. -Im2/gm2-libs -I$(srcdir)/../include -I$(srcdir) $(INCLUDES) -Im2/gm2-libs $< -o $@
+	$(CXX) $(CM2DEP) $(CXXFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -DHAVE_CONFIG_H -g -c -I. -Im2/gm2-libs -I$(srcdir)/../include -I$(srcdir) $(INCLUDES) -Im2/gm2-libs $< -o $@
 	$(POSTCOMPILE)
 
 m2/mc-boot/main.o: $(M2LINK) $(srcdir)/m2/init/mcinit
@@ -1464,80 +1466,82 @@ mcflex.c: $(srcdir)/m2/mc/mc.flex
 m2/gm2-libs-boot/M2RTS.o: $(srcdir)/m2/gm2-libs/M2RTS.mod $(MCDEPS) $(BUILD-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
 	$(MC) --suppress-noreturn -o=m2/gm2-libs-boot/M2RTS.c $(srcdir)/m2/gm2-libs/M2RTS.mod
-	$(COMPILER) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(MCINCLUDES) $(INCLUDES) m2/gm2-libs-boot/M2RTS.c -o $@
+	$(COMPILER) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot -I$(srcdir)/m2/gm2-libs-ch $(MCINCLUDES) $(INCLUDES) m2/gm2-libs-boot/M2RTS.c -o $@
 	$(POSTCOMPILE)
 
 m2/gm2-libs-boot/%.o: $(srcdir)/m2/gm2-libs-boot/%.mod $(MCDEPS) $(BUILD-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
 	$(MC) -o=m2/gm2-libs-boot/$*.c $(srcdir)/m2/gm2-libs-boot/$*.mod
-	$(COMPILER) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) $(MCINCLUDES) m2/gm2-libs-boot/$*.c -o $@
+	$(COMPILER) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) $(MCINCLUDES) -I$(srcdir)/m2/gm2-libs-ch m2/gm2-libs-boot/$*.c -o $@
 	$(POSTCOMPILE)
 
 m2/gm2-libs-boot/%.o: $(srcdir)/m2/gm2-libs/%.mod $(MCDEPS) $(BUILD-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
 	$(MC) -o=m2/gm2-libs-boot/$*.c $(srcdir)/m2/gm2-libs/$*.mod
-	$(COMPILER) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(MCINCLUDES) $(INCLUDES) m2/gm2-libs-boot/$*.c -o $@
+	$(COMPILER) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot -I$(srcdir)/m2/gm2-libs-ch $(MCINCLUDES) $(INCLUDES) m2/gm2-libs-boot/$*.c -o $@
 	$(POSTCOMPILE)
 
 m2/gm2-libs-boot/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-libs/%.def $(MCDEPS)
 	-test -d $(@D) || $(mkinstalldirs) $(@D)
 	$(MC) -o=$@ $(srcdir)/m2/gm2-libs/$*.def
 
-m2/gm2-libs-boot/RTcodummy.o: $(srcdir)/m2/gm2-libs-ch/RTcodummy.c m2/gm2-libs/gm2-libs-host.h
+GM2-LIBS-BOOT-H=m2/gm2-libs/gm2-libs-host.h m2/gm2-libs-boot/GM2RTS.h m2/gm2-libs-boot/GSYSTEM.h
+
+m2/gm2-libs-boot/RTcodummy.o: $(srcdir)/m2/gm2-libs-ch/RTcodummy.c
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
-m2/gm2-libs-boot/RTintdummy.o: $(srcdir)/m2/gm2-libs-ch/RTintdummy.c m2/gm2-libs/gm2-libs-host.h
+m2/gm2-libs-boot/RTintdummy.o: $(srcdir)/m2/gm2-libs-ch/RTintdummy.c
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
-m2/gm2-libs-boot/wrapc.o: $(srcdir)/m2/gm2-libs-ch/wrapc.c m2/gm2-libs-boot/$(SRC_PREFIX)wrapc.h m2/gm2-libs/gm2-libs-host.h
+m2/gm2-libs-boot/wrapc.o: $(srcdir)/m2/gm2-libs-ch/wrapc.c m2/gm2-libs-boot/$(SRC_PREFIX)wrapc.h $(GM2-LIBS-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) -c -DHAVE_CONFIG_H $(CFLAGS) $(GM2_PICFLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot -Im2/gm2-libs $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) -c -DHAVE_CONFIG_H $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot -Im2/gm2-libs $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
-m2/gm2-libs-boot/UnixArgs.o: $(srcdir)/m2/gm2-libs-ch/UnixArgs.cc m2/gm2-libs-boot/$(SRC_PREFIX)UnixArgs.h m2/gm2-libs/gm2-libs-host.h
+m2/gm2-libs-boot/UnixArgs.o: $(srcdir)/m2/gm2-libs-ch/UnixArgs.cc m2/gm2-libs-boot/$(SRC_PREFIX)UnixArgs.h $(GM2-LIBS-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
-m2/gm2-libs-boot/choosetemp.o: m2/gm2-libs-ch/choosetemp.c m2/gm2-libiberty/Gchoosetemp.h m2/gm2-libs/gm2-libs-host.h
+m2/gm2-libs-boot/choosetemp.o: m2/gm2-libs-ch/choosetemp.c m2/gm2-libiberty/Gchoosetemp.h $(GM2-LIBS-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot -Im2/gm2-libiberty -I$(srcdir)/m2/gm2-libiberty/ $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot -Im2/gm2-libiberty -I$(srcdir)/m2/gm2-libiberty/ $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
-m2/gm2-libs-boot/errno.o: $(srcdir)/m2/gm2-libs-ch/errno.c m2/gm2-libs-boot/$(SRC_PREFIX)errno.h m2/gm2-libs/gm2-libs-host.h
+m2/gm2-libs-boot/errno.o: $(srcdir)/m2/gm2-libs-ch/errno.c m2/gm2-libs-boot/$(SRC_PREFIX)errno.h $(GM2-LIBS-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
-m2/gm2-libs-boot/dtoa.o: $(srcdir)/m2/gm2-libs-ch/dtoa.cc m2/gm2-libs/gm2-libs-host.h
+m2/gm2-libs-boot/dtoa.o: $(srcdir)/m2/gm2-libs-ch/dtoa.cc $(GM2-LIBS-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -Im2/gm2-libs-boot -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
-m2/gm2-libs-boot/ldtoa.o: $(srcdir)/m2/gm2-libs-ch/ldtoa.cc m2/gm2-libs/gm2-libs-host.h
+m2/gm2-libs-boot/ldtoa.o: $(srcdir)/m2/gm2-libs-ch/ldtoa.cc $(GM2-LIBS-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -Im2/gm2-libs-boot -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
-m2/gm2-libs-boot/termios.o: $(srcdir)/m2/gm2-libs-ch/termios.c $(BUILD-LIBS-BOOT-H) m2/gm2-libs/gm2-libs-host.h
+m2/gm2-libs-boot/termios.o: $(srcdir)/m2/gm2-libs-ch/termios.c $(BUILD-LIBS-BOOT-H) $(GM2-LIBS-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
 m2/gm2-libs-boot/SysExceptions.o: $(srcdir)/m2/gm2-libs-ch/SysExceptions.c \
-                                  m2/gm2-libs-boot/$(SRC_PREFIX)SysExceptions.h m2/gm2-libs/gm2-libs-host.h
+                                  m2/gm2-libs-boot/$(SRC_PREFIX)SysExceptions.h $(GM2-LIBS-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
+	$(CXX) $(CM2DEP) -c $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -Im2/gm2-libs -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
 m2/gm2-libs-boot/SysStorage.o: $(srcdir)/m2/gm2-libs/SysStorage.mod $(MCDEPS) $(BUILD-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
 	$(MC) -o=m2/gm2-libs-boot/SysStorage.c $(srcdir)/m2/gm2-libs/SysStorage.mod
-	$(COMPILER) $(CM2DEP) -DIN_GCC -c $(CFLAGS) $(GM2_PICFLAGS) \
+	$(COMPILER) $(CM2DEP) -DIN_GCC -c $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) \
           -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot $(MCINCLUDES) $(INCLUDES) \
           m2/gm2-libs-boot/SysStorage.c -o m2/gm2-libs-boot/SysStorage.o
 	$(POSTCOMPILE)
@@ -1547,7 +1551,7 @@ m2/gm2-compiler-boot/M2GCCDeclare.o: $(srcdir)/m2/gm2-compiler/M2GCCDeclare.mod
 	$(MC) $(MC_EXTENDED_OPAQUE) -o=m2/gm2-compiler-boot/M2GCCDeclare.c $<
 	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
             -I. -I$(srcdir)/../include -I$(srcdir) \
-            -I. -Im2/gm2-libs-boot -Im2/gm2-compiler-boot \
+            -I. -Im2/gm2-libs-boot -I$(srcdir)/m2/gm2-libs-ch -Im2/gm2-compiler-boot \
             -I$(srcdir)/m2/gm2-libiberty $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/M2GCCDeclare.c -o $@
 	$(POSTCOMPILE)
 
@@ -1556,7 +1560,7 @@ m2/gm2-compiler-boot/M2Error.o: $(srcdir)/m2/gm2-compiler/M2Error.mod $(MCDEPS)
 	$(MC) $(MC_EXTENDED_OPAQUE) -o=m2/gm2-compiler-boot/M2Error.c $<
 	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
             -I. -I$(srcdir)/../include -I$(srcdir) \
-            -I. -Im2/gm2-libs-boot -Im2/gm2-compiler-boot \
+            -I. -Im2/gm2-libs-boot -I$(srcdir)/m2/gm2-libs-ch -Im2/gm2-compiler-boot \
             -I$(srcdir)/m2/gm2-libiberty $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/M2Error.c -o $@
 	$(POSTCOMPILE)
 
@@ -1565,7 +1569,7 @@ m2/gm2-compiler-boot/%.o: $(srcdir)/m2/gm2-compiler/%.mod $(BUILD-BOOT-H) $(MCDE
 	$(MC) -o=m2/gm2-compiler-boot/$*.c $(srcdir)/m2/gm2-compiler/$*.mod
 	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
             -I. -I$(srcdir)/../include -I$(srcdir) \
-            -I. -Im2/gm2-libs-boot -Im2/gm2-compiler-boot -Im2/gm2-libiberty \
+            -I. -Im2/gm2-libs-boot -I$(srcdir)/m2/gm2-libs-ch -Im2/gm2-compiler-boot -Im2/gm2-libiberty \
             -I$(srcdir)/m2/gm2-libiberty $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/$*.c -o $@
 	$(POSTCOMPILE)
 
@@ -1575,6 +1579,7 @@ m2/gm2-compiler-boot/%.o: m2/gm2-compiler-boot/%.mod $(MCDEPS) $(BUILD-BOOT-H)
 	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
             -I. -I$(srcdir)/../include -I$(srcdir) \
             -I. -Im2/gm2-libs-boot -Im2/gm2-compiler-boot \
+            -I$(srcdir)/m2/gm2-libs-ch \
             -I$(srcdir)/m2/gm2-libiberty $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/$*.c -o $@
 	$(POSTCOMPILE)
 
@@ -1837,12 +1842,12 @@ include m2/Make-maintainer
 else
 m2/pge-boot/%.o: m2/pge-boot/%.c m2/gm2-libs/gm2-libs-host.h m2/gm2config.h
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) $(CFLAGS) $(GM2_PICFLAGS) $(INCLUDES) -I$(srcdir)/m2/pge-boot -Im2/gm2-libs -g -c $< -o $@
+	$(CXX) $(CM2DEP) $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) $(INCLUDES) -I$(srcdir)/m2/pge-boot -Im2/gm2-libs -g -c $< -o $@
 	$(POSTCOMPILE)
 
 m2/pge-boot/%.o: m2/pge-boot/%.cc m2/gm2-libs/gm2-libs-host.h m2/gm2config.h
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(CXX) $(CM2DEP) $(CXXFLAGS) $(GM2_PICFLAGS) $(INCLUDES) -I$(srcdir)/m2/pge-boot -Im2/gm2-libs -g -c $< -o $@
+	$(CXX) $(CM2DEP) $(CXXFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) $(INCLUDES) -I$(srcdir)/m2/pge-boot -Im2/gm2-libs -g -c $< -o $@
 	$(POSTCOMPILE)
 
 $(PGE): $(BUILD-PGE-O)
diff --git a/gcc/m2/gm2-gcc/m2color.cc b/gcc/m2/gm2-gcc/m2color.cc
index 09f068c67c4..e8a2ef28d55 100644
--- a/gcc/m2/gm2-gcc/m2color.cc
+++ b/gcc/m2/gm2-gcc/m2color.cc
@@ -27,9 +27,11 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 
 char *
-m2color_colorize_start (bool show_color, char *name, unsigned int _name_high)
+m2color_colorize_start (bool show_color, void *name, unsigned int _name_high)
 {
-  return const_cast<char*> (colorize_start (show_color, name, _name_high));
+  return const_cast<char*> (colorize_start (show_color,
+					    reinterpret_cast <char *> (name),
+					    _name_high));
 }
 
 
diff --git a/gcc/m2/gm2-gcc/m2color.h b/gcc/m2/gm2-gcc/m2color.h
index 9b277e0925d..b3f1e17fac7 100644
--- a/gcc/m2/gm2-gcc/m2color.h
+++ b/gcc/m2/gm2-gcc/m2color.h
@@ -37,7 +37,7 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 
 EXTERN char *
-m2color_colorize_start (bool show_color, char *name, unsigned int name_len);
+m2color_colorize_start (bool show_color, void *name, unsigned int name_len);
 
 EXTERN char *m2color_colorize_stop (bool show_color);
 
diff --git a/gcc/m2/gm2-gcc/m2type.h b/gcc/m2/gm2-gcc/m2type.h
index f29d4131f91..b5a11126038 100644
--- a/gcc/m2/gm2-gcc/m2type.h
+++ b/gcc/m2/gm2-gcc/m2type.h
@@ -87,13 +87,6 @@ EXTERN tree m2type_BuildArrayStringConstructor (location_t location,
                                                 tree arrayType, tree str,
                                                 tree length);
 
-#if 0
-EXTERN tree m2type_GetPointerOne (void);
-EXTERN tree m2type_GetPointerZero (void);
-EXTERN tree m2type_GetWordOne (void);
-EXTERN tree m2type_GetWordZero (void);
-#endif
-
 EXTERN tree m2type_GetM2CharType (void);
 EXTERN tree m2type_GetM2IntegerType (void);
 EXTERN tree m2type_GetM2ShortRealType (void);
diff --git a/gcc/m2/gm2-libs-ch/SysExceptions.c b/gcc/m2/gm2-libs-ch/SysExceptions.c
index 85dc4800188..0de4787ac43 100644
--- a/gcc/m2/gm2-libs-ch/SysExceptions.c
+++ b/gcc/m2/gm2-libs-ch/SysExceptions.c
@@ -26,15 +26,23 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #include "config.h"
 #include "system.h"
-#include "ansidecl.h"
+
 #include "gm2-libs-host.h"
 
-#if defined(HAVE_SIGNAL_H)
-#include <signal.h>
+#ifdef MC_M2
+#include "GSysExceptions.h"
+#define DECL_PROC_T(X) SysExceptions_PROCEXCEPTION X
+#define PROC_FUNC(X) X.proc
+#else
+#define DECL_PROC_T(X) void (*X) (void *)
+#define PROC_FUNC(X) X
 #endif
 
-#ifdef __cplusplus
-extern "C" {
+#undef EXTERN
+#if defined(__cplusplus)
+#define EXTERN extern "C"
+#else
+#define EXTERN
 #endif
 
 #if 0
@@ -75,16 +83,14 @@ extern "C" {
 #define SIGSYS 31      /* Bad system call.  */
 #define SIGUNUSED 31
 
-
     (indexException,     rangeException,         caseSelectException,  invalidLocation,
      functionException,  wholeValueException,    wholeDivException,    realValueException,
      realDivException,   complexValueException,  complexDivException,  protException,
      sysException,       coException,            exException
     );
-
 #endif
 
-/* note wholeDivException and realDivException are caught by SIGFPE
+/* wholeDivException and realDivException are caught by SIGFPE
    and depatched to the appropriate Modula-2 runtime routine upon
    testing FPE_INTDIV or FPE_FLTDIV.  realValueException is also
    caught by SIGFPE and dispatched by testing FFE_FLTOVF or
@@ -113,6 +119,7 @@ static void (*systemProc) (void *);
 static void (*coroutineProc) (void *);
 static void (*exceptionProc) (void *);
 
+
 static void
 sigbusDespatcher (int signum, siginfo_t *info, void *ucontext)
 {
@@ -164,33 +171,41 @@ sigfpeDespatcher (int signum, siginfo_t *info, void *ucontext)
     }
 }
 
+EXTERN
 void
-SysExceptions_InitExceptionHandlers (
-    void (*indexf) (void *), void (*range) (void *), void (*casef) (void *),
-    void (*invalidloc) (void *), void (*function) (void *),
-    void (*wholevalue) (void *), void (*wholediv) (void *),
-    void (*realvalue) (void *), void (*realdiv) (void *),
-    void (*complexvalue) (void *), void (*complexdiv) (void *),
-    void (*protection) (void *), void (*systemf) (void *),
-    void (*coroutine) (void *), void (*exception) (void *))
+SysExceptions_InitExceptionHandlers (DECL_PROC_T(indexf),
+				     DECL_PROC_T(range),
+				     DECL_PROC_T(casef),
+				     DECL_PROC_T(invalidloc),
+				     DECL_PROC_T(function),
+				     DECL_PROC_T(wholevalue),
+				     DECL_PROC_T(wholediv),
+				     DECL_PROC_T(realvalue),
+				     DECL_PROC_T(realdiv),
+				     DECL_PROC_T(complexvalue),
+				     DECL_PROC_T(complexdiv),
+				     DECL_PROC_T(protection),
+				     DECL_PROC_T(systemf),
+				     DECL_PROC_T(coroutine),
+				     DECL_PROC_T(exception))
 {
   struct sigaction old;
 
-  indexProc = indexf;
-  rangeProc = range;
-  caseProc = casef;
-  invalidlocProc = invalidloc;
-  functionProc = function;
-  wholevalueProc = wholevalue;
-  wholedivProc = wholediv;
-  realvalueProc = realvalue;
-  realdivProc = realdiv;
-  complexvalueProc = complexvalue;
-  complexdivProc = complexdiv;
-  protectionProc = protection;
-  systemProc = systemf;
-  coroutineProc = coroutine;
-  exceptionProc = exception;
+  indexProc = PROC_FUNC (indexf);
+  rangeProc = PROC_FUNC (range);
+  caseProc = PROC_FUNC (casef);
+  invalidlocProc = PROC_FUNC (invalidloc);
+  functionProc = PROC_FUNC (function);
+  wholevalueProc = PROC_FUNC (wholevalue);
+  wholedivProc = PROC_FUNC (wholediv);
+  realvalueProc = PROC_FUNC (realvalue);
+  realdivProc = PROC_FUNC (realdiv);
+  complexvalueProc = PROC_FUNC (complexvalue);
+  complexdivProc = PROC_FUNC (complexdiv);
+  protectionProc = PROC_FUNC (protection);
+  systemProc = PROC_FUNC (systemf);
+  coroutineProc = PROC_FUNC (coroutine);
+  exceptionProc = PROC_FUNC (exception);
 
   sigbus.sa_sigaction = sigbusDespatcher;
   sigbus.sa_flags = (SA_SIGINFO);
@@ -215,29 +230,37 @@ SysExceptions_InitExceptionHandlers (
 }
 
 #else
+EXTERN
 void
-SysExceptions_InitExceptionHandlers (void *indexf, void *range, void *casef,
-                                     void *invalidloc, void *function,
-                                     void *wholevalue, void *wholediv,
-                                     void *realvalue, void *realdiv,
-                                     void *complexvalue, void *complexdiv,
-                                     void *protection, void *systemf,
-                                     void *coroutine, void *exception)
+SysExceptions_InitExceptionHandlers (DECL_PROC_T(indexf),
+				     DECL_PROC_T(range),
+				     DECL_PROC_T(casef),
+				     DECL_PROC_T(invalidloc),
+				     DECL_PROC_T(function),
+				     DECL_PROC_T(wholevalue),
+				     DECL_PROC_T(wholediv),
+				     DECL_PROC_T(realvalue),
+				     DECL_PROC_T(realdiv),
+				     DECL_PROC_T(complexvalue),
+				     DECL_PROC_T(complexdiv),
+				     DECL_PROC_T(protection),
+				     DECL_PROC_T(systemf),
+				     DECL_PROC_T(coroutine),
+				     DECL_PROC_T(exception))
 {
 }
 #endif
 
 /* GNU Modula-2 linking fodder.  */
 
+EXTERN
 void
 _M2_SysExceptions_init (int argc, char *argv[], char *envp[])
 {
 }
 
+EXTERN
 void
-_M2_SysExceptions_finish (void)
+_M2_SysExceptions_fini (int argc, char *argv[], char *envp[])
 {
 }
-#ifdef __cplusplus
-}
-#endif
diff --git a/gcc/m2/gm2-libs-ch/UnixArgs.cc b/gcc/m2/gm2-libs-ch/UnixArgs.cc
index 67a0c99f036..ae9765aed7e 100644
--- a/gcc/m2/gm2-libs-ch/UnixArgs.cc
+++ b/gcc/m2/gm2-libs-ch/UnixArgs.cc
@@ -29,9 +29,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #define LIBNAME "m2pim"
 
-extern "C" int UnixArgs_GetArgC (void);
-extern "C" char **UnixArgs_GetArgV (void);
-extern "C" char **UnixArgs_GetEnvV (void);
+#include "gm2-libs-host.h"
+
+#include "GUnixArgs.h"
+#include "GM2RTS.h"
 
 static int UnixArgs_ArgC;
 static char **UnixArgs_ArgV;
@@ -49,7 +50,7 @@ UnixArgs_GetArgC (void)
 
 /* GetArgV returns argv.  */
 
-extern "C" char **
+extern "C" void *
 UnixArgs_GetArgV (void)
 {
   return UnixArgs_ArgV;
@@ -58,7 +59,7 @@ UnixArgs_GetArgV (void)
 
 /* GetEnvV returns envv.  */
 
-extern "C" char **
+extern "C" void *
 UnixArgs_GetEnvV (void)
 {
   return UnixArgs_EnvV;
diff --git a/gcc/m2/gm2-libs-ch/m2rts.h b/gcc/m2/gm2-libs-ch/m2rts.h
index 83e463abf2e..df6cbcb2c8d 100644
--- a/gcc/m2/gm2-libs-ch/m2rts.h
+++ b/gcc/m2/gm2-libs-ch/m2rts.h
@@ -24,23 +24,15 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
+#include "GM2RTS.h"
 
-typedef void (*proc_con) (int, char **, char **);
-typedef void (*proc_dep) (void);
-
+#ifdef MC_M2
+/* mc sources do not register their init fini functions as they are
+   initialized by a static scaffold (called by main).  */
+#define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep)
+#else
 #define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep) \
   M2RTS_RegisterModule (reinterpret_cast <void *> (const_cast <char *> (MODNAME)), \
 			reinterpret_cast <void *> (const_cast <char *> (LIBNAME)), \
 			init, fini, dep)
-
-extern "C" void M2RTS_RequestDependant (const void *modulename, const void *dependancy);
-extern "C" void M2RTS_RegisterModule (void *modulename, void *libname,
-				      proc_con init, proc_con fini, proc_dep dependencies);
-extern "C" void _M2_M2RTS_init (void);
-
-extern "C" void M2RTS_ConstructModules (const void *,
-					int argc, char *argv[], char *envp[]);
-extern "C" void M2RTS_Terminate (void);
-extern "C" void M2RTS_DeconstructModules (void);
-
-extern "C" void M2RTS_Halt (const char *, const char *, const char *, int) __attribute__ ((noreturn));
+#endif
diff --git a/gcc/m2/gm2-libs-ch/termios.c b/gcc/m2/gm2-libs-ch/termios.c
index fe7403b3dee..e9cbbf50a17 100644
--- a/gcc/m2/gm2-libs-ch/termios.c
+++ b/gcc/m2/gm2-libs-ch/termios.c
@@ -26,24 +26,28 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #include "config.h"
 #include "system.h"
-#include "ansidecl.h"
 
 #include "gm2-libs-host.h"
 
+#define _termios_C
+#include "Gtermios.h"
+
+#ifdef HAVE_TERMIOS_H
+# include <termios.h>
+#endif
+
 #ifdef TERMIOS_NEEDS_XOPEN_SOURCE
 #define _XOPEN_SOURCE
 #endif
 
-#if defined(HAVE_TERMIOS_H)
-#include <termios.h>
+#if defined(__cplusplus)
+#define EXTERN extern "C"
+#else
+#define EXTERN
 #endif
 
 #define EXPORT(X) termios##_##X
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 typedef enum {
   vintr,
   vquit,
@@ -168,40 +172,25 @@ typedef enum {
   liexten
 } Flag;
 
-/* prototypes.  */
-void *EXPORT (InitTermios) (void);
-void *EXPORT (KillTermios) (struct termios *p);
-int EXPORT (cfgetospeed) (struct termios *t);
-int EXPORT (cfgetispeed) (struct termios *t);
-int EXPORT (cfsetospeed) (struct termios *t, unsigned int b);
-int EXPORT (cfsetispeed) (struct termios *t, unsigned int b);
-int EXPORT (cfsetspeed) (struct termios *t, unsigned int b);
-int EXPORT (tcgetattr) (int fd, struct termios *t);
-int EXPORT (tcsetattr) (int fd, int option, struct termios *t);
-void EXPORT (cfmakeraw) (struct termios *t);
-int EXPORT (tcsendbreak) (int fd, int duration);
-int EXPORT (tcdrain) (int fd);
-int EXPORT (tcflushi) (int fd);
-int EXPORT (tcflusho) (int fd);
-int EXPORT (tcflushio) (int fd);
-int EXPORT (tcflowoni) (int fd);
-int EXPORT (tcflowoffi) (int fd);
-int EXPORT (tcflowono) (int fd);
-int EXPORT (tcflowoffo) (int fd);
-bool EXPORT (GetFlag) (struct termios *t, Flag f, bool *b);
-bool EXPORT (SetFlag) (struct termios *t, Flag f, bool b);
-bool EXPORT (GetChar) (struct termios *t, ControlChar c, char *ch);
-bool EXPORT (SetChar) (struct termios *t, ControlChar c, char ch);
-int EXPORT (tcsnow) (void);
-int EXPORT (tcsflush) (void);
-int EXPORT (tcsdrain) (void);
-bool doSetUnset (tcflag_t *bitset, unsigned int mask, bool value);
-void _M2_termios_init (void);
-void _M2_termios_finish (void);
+int
+doSetUnset (tcflag_t *bitset, unsigned int mask, int value)
+{
+  if (value)
+    (*bitset) |= mask;
+  else
+    (*bitset) &= (~mask);
+  return 1;
+}
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
 
 /* InitTermios - new data structure.  */
 
-void *EXPORT (InitTermios) (void)
+void *
+EXPORT (InitTermios) (void)
 {
   struct termios *p = (struct termios *)malloc (sizeof (struct termios));
 
@@ -211,50 +200,79 @@ void *EXPORT (InitTermios) (void)
 
 /* KillTermios - delete data structure.  */
 
-void *EXPORT (KillTermios) (struct termios *p)
+void *
+EXPORT (KillTermios) (termios_TERMIOS p)
 {
   free (p);
   return NULL;
 }
 
-/* tcsnow - return the value of TCSANOW.  */
+/* tcsnow return the value of TCSANOW.  */
 
-int EXPORT (tcsnow) (void) { return TCSANOW; }
+int
+EXPORT (tcsnow) (void)
+{
+  return TCSANOW;
+}
 
-/* tcsdrain - return the value of TCSADRAIN.  */
+/* tcsdrain return the value of TCSADRAIN.  */
 
-int EXPORT (tcsdrain) (void) { return TCSADRAIN; }
+int
+EXPORT (tcsdrain) (void)
+{
+  return TCSADRAIN;
+}
 
-/* tcsflush - return the value of TCSAFLUSH.  */
+/* tcsflush return the value of TCSAFLUSH.  */
 
-int EXPORT (tcsflush) (void) { return TCSAFLUSH; }
+int
+EXPORT (tcsflush) (void)
+{
+  return TCSAFLUSH;
+}
 
-/* cfgetospeed - return output baud rate.  */
+/* cfgetospeed return output baud rate.  */
 
-int EXPORT (cfgetospeed) (struct termios *t) { return cfgetospeed (t); }
+int
+EXPORT (cfgetospeed) (termios_TERMIOS _t)
+{
+  struct termios *t = (termios *)_t;
+  return cfgetospeed (t);
+}
 
-/* cfgetispeed - return input baud rate.  */
+/* cfgetispeed return input baud rate.  */
 
-int EXPORT (cfgetispeed) (struct termios *t) { return cfgetispeed (t); }
+int
+EXPORT (cfgetispeed) (termios_TERMIOS _t)
+{
+  struct termios *t = (termios *)_t;
+  return cfgetispeed (t);
+}
 
-/* cfsetospeed - set output baud rate.  */
+/* cfsetospeed set output baud rate.  */
 
-int EXPORT (cfsetospeed) (struct termios *t, unsigned int b)
+int
+EXPORT (cfsetospeed) (termios_TERMIOS _t, unsigned int b)
 {
+  struct termios *t = (termios *)_t;
   return cfsetospeed (t, b);
 }
 
-/* cfsetispeed - set input baud rate.  */
+/* cfsetispeed set input baud rate.  */
 
-int EXPORT (cfsetispeed) (struct termios *t, unsigned int b)
+int
+EXPORT (cfsetispeed) (termios_TERMIOS _t, unsigned int b)
 {
+  struct termios *t = (termios *)_t;
   return cfsetispeed (t, b);
 }
 
-/* cfsetspeed - set input and output baud rate.  */
+/* cfsetspeed set input and output baud rate.  */
 
-int EXPORT (cfsetspeed) (struct termios *t, unsigned int b)
+int
+EXPORT (cfsetspeed) (termios_TERMIOS _t, unsigned int b)
 {
+  struct termios *t = (termios *)_t;
   int val = cfsetispeed (t, b);
   if (val == 0)
     return cfsetospeed (t, b);
@@ -262,43 +280,55 @@ int EXPORT (cfsetspeed) (struct termios *t, unsigned int b)
   return val;
 }
 
-/* tcgetattr - get state of, fd, into, t.  */
+/* tcgetattr get state of fd into t.  */
 
-int EXPORT (tcgetattr) (int fd, struct termios *t)
+int
+EXPORT (tcgetattr) (int fd, termios_TERMIOS _t)
 {
+  struct termios *t = (termios *)_t;
   return tcgetattr (fd, t);
 }
 
-/* tcsetattr - set state of, fd, to, t, using option.  */
+/* tcsetattr set state of fd to t using option.  */
 
-int EXPORT (tcsetattr) (int fd, int option, struct termios *t)
+int
+EXPORT (tcsetattr) (int fd, int option, termios_TERMIOS _t)
 {
+  struct termios *t = (termios *)_t;
   return tcsetattr (fd, option, t);
 }
 
-/* cfmakeraw - sets the terminal to raw mode.  */
+/* cfmakeraw sets the terminal to raw mode.  */
 
-void EXPORT (cfmakeraw) (struct termios *t)
+void
+EXPORT (cfmakeraw) (termios_TERMIOS _t)
 {
 #if defined(HAVE_CFMAKERAW)
+  struct termios *t = (termios *)_t;
   cfmakeraw (t);
 #endif
 }
 
-/* tcsendbreak - send zero bits for duration.  */
+/* tcsendbreak send zero bits for duration.  */
 
-int EXPORT (tcsendbreak) (int fd, int duration)
+int
+EXPORT (tcsendbreak) (int fd, int duration)
 {
   return tcsendbreak (fd, duration);
 }
 
-/* tcdrain - waits for pending output to be written on, fd.  */
+/* tcdrain waits for pending output to be written on fd.  */
 
-int EXPORT (tcdrain) (int fd) { return tcdrain (fd); }
+int
+EXPORT (tcdrain) (int fd)
+{
+  return tcdrain (fd);
+}
 
-/* tcflushi - flush input.  */
+/* tcflushi flush input.  */
 
-int EXPORT (tcflushi) (int fd)
+int
+EXPORT (tcflushi) (int fd)
 {
 #if defined(TCIFLUSH)
   return tcflush (fd, TCIFLUSH);
@@ -307,9 +337,10 @@ int EXPORT (tcflushi) (int fd)
 #endif
 }
 
-/* tcflusho - flush output.  */
+/* tcflusho flush output.  */
 
-int EXPORT (tcflusho) (int fd)
+int
+EXPORT (tcflusho) (int fd)
 {
 #if defined(TCOFLUSH)
   return tcflush (fd, TCOFLUSH);
@@ -318,9 +349,10 @@ int EXPORT (tcflusho) (int fd)
 #endif
 }
 
-/* tcflushio - flush input and output.  */
+/* tcflushio flush input and output.  */
 
-int EXPORT (tcflushio) (int fd)
+int
+EXPORT (tcflushio) (int fd)
 {
 #if defined(TCIOFLUSH)
   return tcflush (fd, TCIOFLUSH);
@@ -329,9 +361,10 @@ int EXPORT (tcflushio) (int fd)
 #endif
 }
 
-/* tcflowoni - restart input on, fd.  */
+/* tcflowoni restart input on fd.  */
 
-int EXPORT (tcflowoni) (int fd)
+int
+EXPORT (tcflowoni) (int fd)
 {
 #if defined(TCION)
   return tcflow (fd, TCION);
@@ -340,9 +373,10 @@ int EXPORT (tcflowoni) (int fd)
 #endif
 }
 
-/* tcflowoffi - stop input on, fd.  */
+/* tcflowoffi stop input on fd.  */
 
-int EXPORT (tcflowoffi) (int fd)
+int
+EXPORT (tcflowoffi) (int fd)
 {
 #if defined(TCIOFF)
   return tcflow (fd, TCIOFF);
@@ -351,9 +385,10 @@ int EXPORT (tcflowoffi) (int fd)
 #endif
 }
 
-/* tcflowono - restart output on, fd.  */
+/* tcflowono restart output on fd.  */
 
-int EXPORT (tcflowono) (int fd)
+int
+EXPORT (tcflowono) (int fd)
 {
 #if defined(TCOON)
   return tcflow (fd, TCOON);
@@ -362,9 +397,10 @@ int EXPORT (tcflowono) (int fd)
 #endif
 }
 
-/* tcflowoffo - stop output on, fd.  */
+/* tcflowoffo stop output on fd.  */
 
-int EXPORT (tcflowoffo) (int fd)
+int
+EXPORT (tcflowoffo) (int fd)
 {
 #if defined(TCOOFF)
   return tcflow (fd, TCOOFF);
@@ -373,23 +409,14 @@ int EXPORT (tcflowoffo) (int fd)
 #endif
 }
 
-/* doSetUnset applies mask or undoes mask depending upon value and returns true.  */
+/* GetFlag sets a flag value from t in b and returns TRUE if
+   t supports f.  */
 
 bool
-doSetUnset (tcflag_t *bitset, unsigned int mask, bool value)
-{
-  if (value)
-    (*bitset) |= mask;
-  else
-    (*bitset) &= (~mask);
-  return true;
-}
-
-/* GetFlag sets a flag value from t in b and returns true if t supports f.  */
-
-bool
-EXPORT (GetFlag) (struct termios *t, Flag f, bool *b)
+EXPORT (GetFlag) (termios_TERMIOS _t, termios_Flag _f, bool *b)
 {
+  Flag f = (Flag) _f;
+  struct termios *t = (termios *)_t;
   switch (f)
     {
 
@@ -1069,15 +1096,17 @@ EXPORT (GetFlag) (struct termios *t, Flag f, bool *b)
   return false;
 }
 
-/* SetFlag - sets a flag value in, t, to, b, and returns TRUE if this
+/* SetFlag sets a flag value in t to b and returns TRUE if this
    flag value is supported.  */
 
 bool
-EXPORT (SetFlag) (struct termios *t, Flag f, bool b)
+EXPORT (SetFlag) (termios_TERMIOS _t, termios_Flag _f, bool b)
 {
+  struct termios *t = (struct termios *) _t;
+  Flag f = (Flag) _f;
+
   switch (f)
     {
-
     case ignbrk:
 #if defined(IGNBRK)
       return doSetUnset (&t->c_iflag, IGNBRK, b);
@@ -1658,12 +1687,14 @@ EXPORT (SetFlag) (struct termios *t, Flag f, bool b)
   return false;
 }
 
-/* GetChar sets a CHAR ch value from t and returns true if this
+/* GetChar sets a CHAR ch value from t and returns true/false if this
    value is supported.  */
 
 bool
-EXPORT (GetChar) (struct termios *t, ControlChar c, char *ch)
+EXPORT (GetChar) (termios_TERMIOS _t, termios_ControlChar _c, char *ch)
 {
+  ControlChar c = (ControlChar) _c;
+  struct termios *t = (termios *)_t;
   switch (c)
     {
 
@@ -1791,11 +1822,14 @@ EXPORT (GetChar) (struct termios *t, ControlChar c, char *ch)
     }
 }
 
-/* SetChar sets a CHAR value in t and returns true if c is supported.  */
+/* SetChar sets a CHAR value in t and returns true/false if c is
+   supported.  */
 
 bool
-EXPORT (SetChar) (struct termios *t, ControlChar c, char ch)
+EXPORT (SetChar) (termios_TERMIOS _t, termios_ControlChar _c, char ch)
 {
+  ControlChar c = (ControlChar) _c;
+  struct termios *t = (termios *)_t;
   switch (c)
     {
 
@@ -1924,12 +1958,12 @@ EXPORT (SetChar) (struct termios *t, ControlChar c, char ch)
 }
 
 void
-_M2_termios_init (void)
+_M2_termios_init (int argc, char *argv[], char *envp[])
 {
 }
 
 void
-_M2_termios_finish (void)
+_M2_termios_fini (int argc, char *argv[], char *envp[])
 {
 }
 
diff --git a/gcc/m2/mc-boot-ch/GSYSTEM.h b/gcc/m2/mc-boot-ch/GSYSTEM.h
new file mode 100644
index 00000000000..a18a1765dc5
--- /dev/null
+++ b/gcc/m2/mc-boot-ch/GSYSTEM.h
@@ -0,0 +1,113 @@
+/* do not edit automatically generated by mc from SYSTEM.  */
+/* SYSTEM.def provides access to the SYSTEM dependent module.
+
+Copyright (C) 2001-2024 Free Software Foundation, Inc.
+Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
+
+This file is part of GNU Modula-2.
+
+GNU Modula-2 is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Modula-2 is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
+
+
+#if !defined (_SYSTEM_H)
+#   define _SYSTEM_H
+
+#include "config.h"
+#include "system.h"
+#   ifdef __cplusplus
+extern "C" {
+#   endif
+#include <stdbool.h>
+#   if !defined (PROC_D)
+#      define PROC_D
+       typedef void (*PROC_t) (void);
+       typedef struct { PROC_t proc; } PROC;
+#   endif
+
+
+#   if defined (_SYSTEM_C)
+#      define EXTERN
+#   else
+#      define EXTERN extern
+#   endif
+
+#   define SYSTEM_BITSPERBYTE 8
+#   define SYSTEM_BYTESPERWORD 4
+
+/*
+   ShiftVal - is a runtime procedure whose job is to implement
+              the SHIFT procedure of ISO SYSTEM. GNU Modula-2 will
+              inline a SHIFT of a single WORD sized set and will only
+              call this routine for larger sets.
+*/
+
+EXTERN void SYSTEM_ShiftVal (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, int ShiftCount);
+
+/*
+   ShiftLeft - performs the shift left for a multi word set.
+               This procedure might be called by the back end of
+               GNU Modula-2 depending whether amount is known at
+               compile time.
+*/
+
+EXTERN void SYSTEM_ShiftLeft (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, unsigned int ShiftCount);
+
+/*
+   ShiftRight - performs the shift left for a multi word set.
+                This procedure might be called by the back end of
+                GNU Modula-2 depending whether amount is known at
+                compile time.
+*/
+
+EXTERN void SYSTEM_ShiftRight (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, unsigned int ShiftCount);
+
+/*
+   RotateVal - is a runtime procedure whose job is to implement
+               the ROTATE procedure of ISO SYSTEM. GNU Modula-2 will
+               inline a ROTATE of a single WORD (or less)
+               sized set and will only call this routine for larger
+               sets.
+*/
+
+EXTERN void SYSTEM_RotateVal (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, int RotateCount);
+
+/*
+   RotateLeft - performs the rotate left for a multi word set.
+                This procedure might be called by the back end of
+                GNU Modula-2 depending whether amount is known at
+                compile time.
+*/
+
+EXTERN void SYSTEM_RotateLeft (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, unsigned int RotateCount);
+
+/*
+   RotateRight - performs the rotate right for a multi word set.
+                 This procedure might be called by the back end of
+                 GNU Modula-2 depending whether amount is known at
+                 compile time.
+*/
+
+EXTERN void SYSTEM_RotateRight (unsigned int *s, unsigned int _s_high, unsigned int *d, unsigned int _d_high, unsigned int SetSizeInBits, unsigned int RotateCount);
+#   ifdef __cplusplus
+}
+#   endif
+
+#   undef EXTERN
+#endif
diff --git a/gcc/m2/mc-boot-ch/GSysExceptions.c b/gcc/m2/mc-boot-ch/GSysExceptions.c
index d16197dbcc7..de8bab91c57 100644
--- a/gcc/m2/mc-boot-ch/GSysExceptions.c
+++ b/gcc/m2/mc-boot-ch/GSysExceptions.c
@@ -24,6 +24,16 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 #include "gm2-libs-host.h"
 
+#ifdef MC_M2
+#include "GSysExceptions.h"
+#define DECL_PROC_T(X) SysExceptions_PROCEXCEPTION X
+#define PROC_FUNC(X) X.proc
+#else
+#define DECL_PROC_T(X) void (*X) (void *)
+#define PROC_FUNC(X) X
+#endif
+
+#undef EXTERN
 #if defined(__cplusplus)
 #define EXTERN extern "C"
 #else
@@ -68,13 +78,11 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #define SIGSYS 31      /* Bad system call.  */
 #define SIGUNUSED 31
 
-
     (indexException,     rangeException,         caseSelectException,  invalidLocation,
      functionException,  wholeValueException,    wholeDivException,    realValueException,
      realDivException,   complexValueException,  complexDivException,  protException,
      sysException,       coException,            exException
     );
-
 #endif
 
 /* wholeDivException and realDivException are caught by SIGFPE
@@ -106,6 +114,7 @@ static void (*systemProc) (void *);
 static void (*coroutineProc) (void *);
 static void (*exceptionProc) (void *);
 
+
 static void
 sigbusDespatcher (int signum, siginfo_t *info, void *ucontext)
 {
@@ -159,32 +168,39 @@ sigfpeDespatcher (int signum, siginfo_t *info, void *ucontext)
 
 EXTERN
 void
-SysExceptions_InitExceptionHandlers (
-    void (*indexf) (void *), void (*range) (void *), void (*casef) (void *),
-    void (*invalidloc) (void *), void (*function) (void *),
-    void (*wholevalue) (void *), void (*wholediv) (void *),
-    void (*realvalue) (void *), void (*realdiv) (void *),
-    void (*complexvalue) (void *), void (*complexdiv) (void *),
-    void (*protection) (void *), void (*systemf) (void *),
-    void (*coroutine) (void *), void (*exception) (void *))
+SysExceptions_InitExceptionHandlers (DECL_PROC_T(indexf),
+				     DECL_PROC_T(range),
+				     DECL_PROC_T(casef),
+				     DECL_PROC_T(invalidloc),
+				     DECL_PROC_T(function),
+				     DECL_PROC_T(wholevalue),
+				     DECL_PROC_T(wholediv),
+				     DECL_PROC_T(realvalue),
+				     DECL_PROC_T(realdiv),
+				     DECL_PROC_T(complexvalue),
+				     DECL_PROC_T(complexdiv),
+				     DECL_PROC_T(protection),
+				     DECL_PROC_T(systemf),
+				     DECL_PROC_T(coroutine),
+				     DECL_PROC_T(exception))
 {
   struct sigaction old;
 
-  indexProc = indexf;
-  rangeProc = range;
-  caseProc = casef;
-  invalidlocProc = invalidloc;
-  functionProc = function;
-  wholevalueProc = wholevalue;
-  wholedivProc = wholediv;
-  realvalueProc = realvalue;
-  realdivProc = realdiv;
-  complexvalueProc = complexvalue;
-  complexdivProc = complexdiv;
-  protectionProc = protection;
-  systemProc = systemf;
-  coroutineProc = coroutine;
-  exceptionProc = exception;
+  indexProc = PROC_FUNC (indexf);
+  rangeProc = PROC_FUNC (range);
+  caseProc = PROC_FUNC (casef);
+  invalidlocProc = PROC_FUNC (invalidloc);
+  functionProc = PROC_FUNC (function);
+  wholevalueProc = PROC_FUNC (wholevalue);
+  wholedivProc = PROC_FUNC (wholediv);
+  realvalueProc = PROC_FUNC (realvalue);
+  realdivProc = PROC_FUNC (realdiv);
+  complexvalueProc = PROC_FUNC (complexvalue);
+  complexdivProc = PROC_FUNC (complexdiv);
+  protectionProc = PROC_FUNC (protection);
+  systemProc = PROC_FUNC (systemf);
+  coroutineProc = PROC_FUNC (coroutine);
+  exceptionProc = PROC_FUNC (exception);
 
   sigbus.sa_sigaction = sigbusDespatcher;
   sigbus.sa_flags = (SA_SIGINFO);
@@ -211,13 +227,21 @@ SysExceptions_InitExceptionHandlers (
 #else
 EXTERN
 void
-SysExceptions_InitExceptionHandlers (void *indexf, void *range, void *casef,
-                                     void *invalidloc, void *function,
-                                     void *wholevalue, void *wholediv,
-                                     void *realvalue, void *realdiv,
-                                     void *complexvalue, void *complexdiv,
-                                     void *protection, void *systemf,
-                                     void *coroutine, void *exception)
+SysExceptions_InitExceptionHandlers (DECL_PROC_T(indexf),
+				     DECL_PROC_T(range),
+				     DECL_PROC_T(casef),
+				     DECL_PROC_T(invalidloc),
+				     DECL_PROC_T(function),
+				     DECL_PROC_T(wholevalue),
+				     DECL_PROC_T(wholediv),
+				     DECL_PROC_T(realvalue),
+				     DECL_PROC_T(realdiv),
+				     DECL_PROC_T(complexvalue),
+				     DECL_PROC_T(complexdiv),
+				     DECL_PROC_T(protection),
+				     DECL_PROC_T(systemf),
+				     DECL_PROC_T(coroutine),
+				     DECL_PROC_T(exception))
 {
 }
 #endif
diff --git a/gcc/m2/mc-boot-ch/GSysExceptions.h b/gcc/m2/mc-boot-ch/GSysExceptions.h
new file mode 100644
index 00000000000..00dd52117d1
--- /dev/null
+++ b/gcc/m2/mc-boot-ch/GSysExceptions.h
@@ -0,0 +1,63 @@
+/* do not edit automatically generated by mc from SysExceptions.  */
+/* SysExceptions.def provides a mechanism for the underlying libraries to.
+
+Copyright (C) 2009-2024 Free Software Foundation, Inc.
+Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
+
+This file is part of GNU Modula-2.
+
+GNU Modula-2 is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Modula-2 is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
+
+
+#if !defined (_SysExceptions_H)
+#   define _SysExceptions_H
+
+#include "config.h"
+#include "system.h"
+#   ifdef __cplusplus
+extern "C" {
+#   endif
+#include <stdbool.h>
+#   if !defined (PROC_D)
+#      define PROC_D
+       typedef void (*PROC_t) (void);
+       typedef struct { PROC_t proc; } PROC;
+#   endif
+
+#   include "GSYSTEM.h"
+
+#   if defined (_SysExceptions_C)
+#      define EXTERN
+#   else
+#      define EXTERN extern
+#   endif
+
+typedef struct SysExceptions_PROCEXCEPTION_p SysExceptions_PROCEXCEPTION;
+
+typedef void (*SysExceptions_PROCEXCEPTION_t) (void *);
+struct SysExceptions_PROCEXCEPTION_p { SysExceptions_PROCEXCEPTION_t proc; };
+
+EXTERN void SysExceptions_InitExceptionHandlers (SysExceptions_PROCEXCEPTION indexf, SysExceptions_PROCEXCEPTION range, SysExceptions_PROCEXCEPTION casef, SysExceptions_PROCEXCEPTION invalidloc, SysExceptions_PROCEXCEPTION function, SysExceptions_PROCEXCEPTION wholevalue, SysExceptions_PROCEXCEPTION wholediv, SysExceptions_PROCEXCEPTION realvalue, SysExceptions_PROCEXCEPTION realdiv, SysExceptions_PROCEXCEPTION complexvalue, SysExceptions_PROCEXCEPTION complexdiv, SysExceptions_PROCEXCEPTION protection, SysExceptions_PROCEXCEPTION systemf, SysExceptions_PROCEXCEPTION coroutine, SysExceptions_PROCEXCEPTION exception);
+#   ifdef __cplusplus
+}
+#   endif
+
+#   undef EXTERN
+#endif
diff --git a/gcc/m2/mc-boot-ch/Glibc.c b/gcc/m2/mc-boot-ch/Glibc.c
index 5ad1711bc64..2f6d31397ba 100644
--- a/gcc/m2/mc-boot-ch/Glibc.c
+++ b/gcc/m2/mc-boot-ch/Glibc.c
@@ -343,10 +343,10 @@ libc_creat (char *p, mode_t mode)
 
 EXTERN
 int
-libc_open (void *p, int oflag, int mode)
+libc_open (void *p, int flags, int mode)
 {
-  tracedb_open (p, oflag, mode);
-  int result = open (reinterpret_cast <char *> (p), oflag, mode);
+  tracedb_open (p, flags, mode);
+  int result = open (reinterpret_cast <char *> (p), flags, mode);
   tracedb_result (result);
   return result;
 }
diff --git a/gcc/m2/mc-boot-ch/Gtermios.cc b/gcc/m2/mc-boot-ch/Gtermios.cc
index 99f003f6152..fe20afb767f 100644
--- a/gcc/m2/mc-boot-ch/Gtermios.cc
+++ b/gcc/m2/mc-boot-ch/Gtermios.cc
@@ -1,4 +1,4 @@
-/* Gtermios.cc handwritten module for mc.
+/* Gtermios.c handwritten module for mc.
 
 Copyright (C) 2010-2024 Free Software Foundation, Inc.
 Contributed by Gaius Mulley <gaius@glam.ac.uk>.
@@ -24,6 +24,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 #include "gm2-libs-host.h"
 
+#define _termios_C
+#include "Gtermios.h"
+
 #ifdef HAVE_TERMIOS_H
 # include <termios.h>
 #endif
@@ -193,13 +196,13 @@ EXPORT (InitTermios) (void)
 /* KillTermios - delete data structure.  */
 
 void *
-EXPORT (KillTermios) (struct termios *p)
+EXPORT (KillTermios) (termios_TERMIOS p)
 {
   free (p);
   return NULL;
 }
 
-/* tcsnow - return the value of TCSANOW.  */
+/* tcsnow return the value of TCSANOW.  */
 
 int
 EXPORT (tcsnow) (void)
@@ -207,7 +210,7 @@ EXPORT (tcsnow) (void)
   return TCSANOW;
 }
 
-/* tcsdrain - return the value of TCSADRAIN.  */
+/* tcsdrain return the value of TCSADRAIN.  */
 
 int
 EXPORT (tcsdrain) (void)
@@ -215,7 +218,7 @@ EXPORT (tcsdrain) (void)
   return TCSADRAIN;
 }
 
-/* tcsflush - return the value of TCSAFLUSH.  */
+/* tcsflush return the value of TCSAFLUSH.  */
 
 int
 EXPORT (tcsflush) (void)
@@ -223,43 +226,48 @@ EXPORT (tcsflush) (void)
   return TCSAFLUSH;
 }
 
-/* cfgetospeed - return output baud rate.  */
+/* cfgetospeed return output baud rate.  */
 
 int
-EXPORT (cfgetospeed) (struct termios *t)
+EXPORT (cfgetospeed) (termios_TERMIOS _t)
 {
+  struct termios *t = (termios *)_t;
   return cfgetospeed (t);
 }
 
-/* cfgetispeed - return input baud rate.  */
+/* cfgetispeed return input baud rate.  */
 
 int
-EXPORT (cfgetispeed) (struct termios *t)
+EXPORT (cfgetispeed) (termios_TERMIOS _t)
 {
+  struct termios *t = (termios *)_t;
   return cfgetispeed (t);
 }
 
-/* cfsetospeed - set output baud rate.  */
+/* cfsetospeed set output baud rate.  */
 
 int
-EXPORT (cfsetospeed) (struct termios *t, unsigned int b)
+EXPORT (cfsetospeed) (termios_TERMIOS _t, unsigned int b)
 {
+  struct termios *t = (termios *)_t;
   return cfsetospeed (t, b);
 }
 
-/* cfsetispeed - set input baud rate.  */
+/* cfsetispeed set input baud rate.  */
 
 int
-EXPORT (cfsetispeed) (struct termios *t, unsigned int b)
+EXPORT (cfsetispeed) (termios_TERMIOS _t, unsigned int b)
 {
+  struct termios *t = (termios *)_t;
   return cfsetispeed (t, b);
 }
 
-/* cfsetspeed - set input and output baud rate.  */
+/* cfsetspeed set input and output baud rate.  */
 
 int
-EXPORT (cfsetspeed) (struct termios *t, unsigned int b)
+EXPORT (cfsetspeed) (termios_TERMIOS _t, unsigned int b)
 {
+  struct termios *t = (termios *)_t;
   int val = cfsetispeed (t, b);
   if (val == 0)
     return cfsetospeed (t, b);
@@ -267,33 +275,36 @@ EXPORT (cfsetspeed) (struct termios *t, unsigned int b)
   return val;
 }
 
-/* tcgetattr - get state of, fd, into, t.  */
+/* tcgetattr get state of fd into t.  */
 
 int
-EXPORT (tcgetattr) (int fd, struct termios *t)
+EXPORT (tcgetattr) (int fd, termios_TERMIOS _t)
 {
+  struct termios *t = (termios *)_t;
   return tcgetattr (fd, t);
 }
 
-/* tcsetattr - set state of, fd, to, t, using option.  */
+/* tcsetattr set state of fd to t using option.  */
 
 int
-EXPORT (tcsetattr) (int fd, int option, struct termios *t)
+EXPORT (tcsetattr) (int fd, int option, termios_TERMIOS _t)
 {
+  struct termios *t = (termios *)_t;
   return tcsetattr (fd, option, t);
 }
 
-/* cfmakeraw - sets the terminal to raw mode.  */
+/* cfmakeraw sets the terminal to raw mode.  */
 
 void
-EXPORT (cfmakeraw) (struct termios *t)
+EXPORT (cfmakeraw) (termios_TERMIOS _t)
 {
 #if defined(HAVE_CFMAKERAW)
+  struct termios *t = (termios *)_t;
   cfmakeraw (t);
 #endif
 }
 
-/* tcsendbreak - send zero bits for duration.  */
+/* tcsendbreak send zero bits for duration.  */
 
 int
 EXPORT (tcsendbreak) (int fd, int duration)
@@ -301,7 +312,7 @@ EXPORT (tcsendbreak) (int fd, int duration)
   return tcsendbreak (fd, duration);
 }
 
-/* tcdrain - waits for pending output to be written on, fd.  */
+/* tcdrain waits for pending output to be written on fd.  */
 
 int
 EXPORT (tcdrain) (int fd)
@@ -309,7 +320,7 @@ EXPORT (tcdrain) (int fd)
   return tcdrain (fd);
 }
 
-/* tcflushi - flush input.  */
+/* tcflushi flush input.  */
 
 int
 EXPORT (tcflushi) (int fd)
@@ -321,7 +332,7 @@ EXPORT (tcflushi) (int fd)
 #endif
 }
 
-/* tcflusho - flush output.  */
+/* tcflusho flush output.  */
 
 int
 EXPORT (tcflusho) (int fd)
@@ -333,7 +344,7 @@ EXPORT (tcflusho) (int fd)
 #endif
 }
 
-/* tcflushio - flush input and output.  */
+/* tcflushio flush input and output.  */
 
 int
 EXPORT (tcflushio) (int fd)
@@ -345,7 +356,7 @@ EXPORT (tcflushio) (int fd)
 #endif
 }
 
-/* tcflowoni - restart input on, fd.  */
+/* tcflowoni restart input on fd.  */
 
 int
 EXPORT (tcflowoni) (int fd)
@@ -357,7 +368,7 @@ EXPORT (tcflowoni) (int fd)
 #endif
 }
 
-/* tcflowoffi - stop input on, fd.  */
+/* tcflowoffi stop input on fd.  */
 
 int
 EXPORT (tcflowoffi) (int fd)
@@ -369,7 +380,7 @@ EXPORT (tcflowoffi) (int fd)
 #endif
 }
 
-/* tcflowono - restart output on, fd.  */
+/* tcflowono restart output on fd.  */
 
 int
 EXPORT (tcflowono) (int fd)
@@ -381,7 +392,7 @@ EXPORT (tcflowono) (int fd)
 #endif
 }
 
-/* tcflowoffo - stop output on, fd.  */
+/* tcflowoffo stop output on fd.  */
 
 int
 EXPORT (tcflowoffo) (int fd)
@@ -393,1542 +404,1551 @@ EXPORT (tcflowoffo) (int fd)
 #endif
 }
 
-/* GetFlag - sets a flag value from, t, in, b, and returns TRUE if,
-   t, supports, f.  */
+/* GetFlag sets a flag value from t in b and returns TRUE if
+   t supports f.  */
 
-int
-EXPORT (GetFlag) (struct termios *t, Flag f, int *b)
+bool
+EXPORT (GetFlag) (termios_TERMIOS _t, termios_Flag _f, bool *b)
 {
+  Flag f = (Flag) _f;
+  struct termios *t = (termios *)_t;
   switch (f)
     {
 
     case ignbrk:
 #if defined(IGNBRK)
       *b = ((t->c_iflag & IGNBRK) == IGNBRK);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ibrkint:
 #if defined(BRKINT)
       *b = ((t->c_iflag & BRKINT) == BRKINT);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ignpar:
 #if defined(IGNPAR)
       *b = ((t->c_iflag & IGNPAR) == IGNPAR);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case iparmrk:
 #if defined(PARMRK)
       *b = ((t->c_iflag & PARMRK) == PARMRK);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case inpck:
 #if defined(INPCK)
       *b = ((t->c_iflag & INPCK) == INPCK);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case istrip:
 #if defined(ISTRIP)
       *b = ((t->c_iflag & ISTRIP) == ISTRIP);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case inlcr:
 #if defined(INLCR)
       *b = ((t->c_iflag & INLCR) == INLCR);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case igncr:
 #if defined(IGNCR)
       *b = ((t->c_iflag & IGNCR) == IGNCR);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case icrnl:
 #if defined(ICRNL)
       *b = ((t->c_iflag & ICRNL) == ICRNL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case iuclc:
 #if defined(IUCLC)
       *b = ((t->c_iflag & IUCLC) == IUCLC);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ixon:
 #if defined(IXON)
       *b = ((t->c_iflag & IXON) == IXON);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ixany:
 #if defined(IXANY)
       *b = ((t->c_iflag & IXANY) == IXANY);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ixoff:
 #if defined(IXOFF)
       *b = ((t->c_iflag & IXOFF) == IXOFF);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case imaxbel:
 #if defined(IMAXBEL)
       *b = ((t->c_iflag & IMAXBEL) == IMAXBEL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case opost:
 #if defined(OPOST)
       *b = ((t->c_oflag & OPOST) == OPOST);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case olcuc:
 #if defined(OLCUC)
       *b = ((t->c_oflag & OLCUC) == OLCUC);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case onlcr:
 #if defined(ONLCR)
       *b = ((t->c_oflag & ONLCR) == ONLCR);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ocrnl:
 #if defined(OCRNL)
       *b = ((t->c_oflag & OCRNL) == OCRNL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case onocr:
 #if defined(ONOCR)
       *b = ((t->c_oflag & ONOCR) == ONOCR);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case onlret:
 #if defined(ONLRET)
       *b = ((t->c_oflag & ONLRET) == ONLRET);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ofill:
 #if defined(OFILL)
       *b = ((t->c_oflag & OFILL) == OFILL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ofdel:
 #if defined(OFDEL)
       *b = ((t->c_oflag & OFDEL) == OFDEL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case onl0:
 #if defined(NL0)
       *b = ((t->c_oflag & NL0) == NL0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case onl1:
 #if defined(NL1)
       *b = ((t->c_oflag & NL1) == NL1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ocr0:
 #if defined(CR0)
       *b = ((t->c_oflag & CR0) == CR0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ocr1:
 #if defined(CR1)
       *b = ((t->c_oflag & CR1) == CR1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ocr2:
 #if defined(CR2)
       *b = ((t->c_oflag & CR2) == CR2);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ocr3:
 #if defined(CR3)
       *b = ((t->c_oflag & CR3) == CR3);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case otab0:
 #if defined(TAB0)
       *b = ((t->c_oflag & TAB0) == TAB0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case otab1:
 #if defined(TAB1)
       *b = ((t->c_oflag & TAB1) == TAB1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case otab2:
 #if defined(TAB2)
       *b = ((t->c_oflag & TAB2) == TAB2);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case otab3:
 #if defined(TAB3)
       *b = ((t->c_oflag & TAB3) == TAB3);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case obs0:
 #if defined(BS0)
       *b = ((t->c_oflag & BS0) == BS0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case obs1:
 #if defined(BS1)
       *b = ((t->c_oflag & BS1) == BS1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case off0:
 #if defined(FF0)
       *b = ((t->c_oflag & FF0) == FF0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case off1:
 #if defined(FF1)
       *b = ((t->c_oflag & FF1) == FF1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ovt0:
 #if defined(VT0)
       *b = ((t->c_oflag & VT0) == VT0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ovt1:
 #if defined(VT1)
       *b = ((t->c_oflag & VT1) == VT1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b0:
 #if defined(B0)
       *b = ((t->c_cflag & B0) == B0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b50:
 #if defined(B50)
       *b = ((t->c_cflag & B50) == B50);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b75:
 #if defined(B75)
       *b = ((t->c_cflag & B75) == B75);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b110:
 #if defined(B110)
       *b = ((t->c_cflag & B110) == B110);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b135:
 #if defined(B134)
       *b = ((t->c_cflag & B134) == B134);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b150:
 #if defined(B150)
       *b = ((t->c_cflag & B150) == B150);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b200:
 #if defined(B200)
       *b = ((t->c_cflag & B200) == B200);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b300:
 #if defined(B300)
       *b = ((t->c_cflag & B300) == B300);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b600:
 #if defined(B600)
       *b = ((t->c_cflag & B600) == B600);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b1200:
 #if defined(B1200)
       *b = ((t->c_cflag & B1200) == B1200);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b1800:
 #if defined(B1800)
       *b = ((t->c_cflag & B1800) == B1800);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b2400:
 #if defined(B2400)
       *b = ((t->c_cflag & B2400) == B2400);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b4800:
 #if defined(B4800)
       *b = ((t->c_cflag & B4800) == B4800);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b9600:
 #if defined(B9600)
       *b = ((t->c_cflag & B9600) == B9600);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b19200:
 #if defined(B19200)
       *b = ((t->c_cflag & B19200) == B19200);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b38400:
 #if defined(B38400)
       *b = ((t->c_cflag & B38400) == B38400);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b57600:
 #if defined(B57600)
       *b = ((t->c_cflag & B57600) == B57600);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b115200:
 #if defined(B115200)
       *b = ((t->c_cflag & B115200) == B115200);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b240400:
 #if defined(B230400)
       *b = ((t->c_cflag & B230400) == B230400);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b460800:
 #if defined(B460800)
       *b = ((t->c_cflag & B460800) == B460800);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b500000:
 #if defined(B500000)
       *b = ((t->c_cflag & B500000) == B500000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b576000:
 #if defined(B576000)
       *b = ((t->c_cflag & B576000) == B576000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b921600:
 #if defined(B921600)
       *b = ((t->c_cflag & B921600) == B921600);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b1000000:
 #if defined(B1000000)
       *b = ((t->c_cflag & B1000000) == B1000000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b1152000:
 #if defined(B1152000)
       *b = ((t->c_cflag & B1152000) == B1152000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b1500000:
 #if defined(B1500000)
       *b = ((t->c_cflag & B1500000) == B1500000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b2000000:
 #if defined(B2000000)
       *b = ((t->c_cflag & B2000000) == B2000000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b2500000:
 #if defined(B2500000)
       *b = ((t->c_cflag & B2500000) == B2500000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b3000000:
 #if defined(B3000000)
       *b = ((t->c_cflag & B3000000) == B3000000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b3500000:
 #if defined(B3500000)
       *b = ((t->c_cflag & B3500000) == B3500000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b4000000:
 #if defined(B4000000)
       *b = ((t->c_cflag & B4000000) == B4000000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case maxbaud:
 #if defined(__MAX_BAUD)
       *b = ((t->c_cflag & __MAX_BAUD) == __MAX_BAUD);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case crtscts:
 #if defined(CRTSCTS)
       *b = ((t->c_cflag & CRTSCTS) == CRTSCTS);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cs5:
 #if defined(CS5)
       *b = ((t->c_cflag & CS5) == CS5);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cs6:
 #if defined(CS6)
       *b = ((t->c_cflag & CS6) == CS6);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cs7:
 #if defined(CS7)
       *b = ((t->c_cflag & CS7) == CS7);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cs8:
 #if defined(CS8)
       *b = ((t->c_cflag & CS8) == CS8);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cstopb:
 #if defined(CSTOPB)
       *b = ((t->c_cflag & CSTOPB) == CSTOPB);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cread:
 #if defined(CREAD)
       *b = ((t->c_cflag & CREAD) == CREAD);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case parenb:
 #if defined(PARENB)
       *b = ((t->c_cflag & PARENB) == PARENB);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case parodd:
 #if defined(PARODD)
       *b = ((t->c_cflag & PARODD) == PARODD);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case hupcl:
 #if defined(HUPCL)
       *b = ((t->c_cflag & HUPCL) == HUPCL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case clocal:
 #if defined(CLOCAL)
       *b = ((t->c_cflag & CLOCAL) == CLOCAL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lisig:
 #if defined(ISIG)
       *b = ((t->c_lflag & ISIG) == ISIG);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case licanon:
 #if defined(ICANON)
       *b = ((t->c_lflag & ICANON) == ICANON);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lxcase:
 #if defined(XCASE)
       *b = ((t->c_lflag & XCASE) == XCASE);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lecho:
 #if defined(ECHO)
       *b = ((t->c_lflag & ECHO) == ECHO);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechoe:
 #if defined(ECHOE)
       *b = ((t->c_lflag & ECHOE) == ECHOE);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechok:
 #if defined(ECHOK)
       *b = ((t->c_lflag & ECHOK) == ECHOK);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechonl:
 #if defined(ECHONL)
       *b = ((t->c_lflag & ECHONL) == ECHONL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lnoflsh:
 #if defined(NOFLSH)
       *b = ((t->c_lflag & NOFLSH) == NOFLSH);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ltopstop:
 #if defined(TOSTOP)
       *b = ((t->c_lflag & TOSTOP) == TOSTOP);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechoctl:
 #if defined(ECHOCTL)
       *b = ((t->c_lflag & ECHOCTL) == ECHOCTL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechoprt:
 #if defined(ECHOPRT)
       *b = ((t->c_lflag & ECHOPRT) == ECHOPRT);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechoke:
 #if defined(ECHOKE)
       *b = ((t->c_lflag & ECHOKE) == ECHOKE);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lflusho:
 #if defined(FLUSHO)
       *b = ((t->c_lflag & FLUSHO) == FLUSHO);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lpendin:
 #if defined(PENDIN)
       *b = ((t->c_lflag & PENDIN) == PENDIN);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case liexten:
 #if defined(IEXTEN)
       *b = ((t->c_lflag & IEXTEN) == IEXTEN);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     }
-  return 0;
+  return false;
 }
 
-/* SetFlag - sets a flag value in, t, to, b, and returns TRUE if this
+/* SetFlag sets a flag value in t to b and returns TRUE if this
    flag value is supported.  */
 
 bool
-EXPORT (SetFlag) (struct termios *t, Flag f, bool b)
+EXPORT (SetFlag) (termios_TERMIOS _t, termios_Flag _f, bool b)
 {
+  struct termios *t = (struct termios *) _t;
+  Flag f = (Flag) _f;
+
   switch (f)
     {
     case ignbrk:
 #if defined(IGNBRK)
       return doSetUnset (&t->c_iflag, IGNBRK, b);
 #else
-      return 0;
+      return false;
 #endif
     case ibrkint:
 #if defined(BRKINT)
       return doSetUnset (&t->c_iflag, BRKINT, b);
 #else
-      return 0;
+      return false;
 #endif
     case ignpar:
 #if defined(IGNPAR)
       return doSetUnset (&t->c_iflag, IGNPAR, b);
 #else
-      return 0;
+      return false;
 #endif
     case iparmrk:
 #if defined(PARMRK)
       return doSetUnset (&t->c_iflag, PARMRK, b);
 #else
-      return 0;
+      return false;
 #endif
     case inpck:
 #if defined(INPCK)
       return doSetUnset (&t->c_iflag, INPCK, b);
 #else
-      return 0;
+      return false;
 #endif
     case istrip:
 #if defined(ISTRIP)
       return doSetUnset (&t->c_iflag, ISTRIP, b);
 #else
-      return 0;
+      return false;
 #endif
     case inlcr:
 #if defined(INLCR)
       return doSetUnset (&t->c_iflag, INLCR, b);
 #else
-      return 0;
+      return false;
 #endif
     case igncr:
 #if defined(IGNCR)
       return doSetUnset (&t->c_iflag, IGNCR, b);
 #else
-      return 0;
+      return false;
 #endif
     case icrnl:
 #if defined(ICRNL)
       return doSetUnset (&t->c_iflag, ICRNL, b);
 #else
-      return 0;
+      return false;
 #endif
     case iuclc:
 #if defined(IUCLC)
       return doSetUnset (&t->c_iflag, IUCLC, b);
 #else
-      return 0;
+      return false;
 #endif
     case ixon:
 #if defined(IXON)
       return doSetUnset (&t->c_iflag, IXON, b);
 #else
-      return 0;
+      return false;
 #endif
     case ixany:
 #if defined(IXANY)
       return doSetUnset (&t->c_iflag, IXANY, b);
 #else
-      return 0;
+      return false;
 #endif
     case ixoff:
 #if defined(IXOFF)
       return doSetUnset (&t->c_iflag, IXOFF, b);
 #else
-      return 0;
+      return false;
 #endif
     case imaxbel:
 #if defined(IMAXBEL)
       return doSetUnset (&t->c_iflag, IMAXBEL, b);
 #else
-      return 0;
+      return false;
 #endif
     case opost:
 #if defined(OPOST)
       return doSetUnset (&t->c_oflag, OPOST, b);
 #else
-      return 0;
+      return false;
 #endif
     case olcuc:
 #if defined(OLCUC)
       return doSetUnset (&t->c_oflag, OLCUC, b);
 #else
-      return 0;
+      return false;
 #endif
     case onlcr:
 #if defined(ONLCR)
       return doSetUnset (&t->c_oflag, ONLCR, b);
 #else
-      return 0;
+      return false;
 #endif
     case ocrnl:
 #if defined(OCRNL)
       return doSetUnset (&t->c_oflag, OCRNL, b);
 #else
-      return 0;
+      return false;
 #endif
     case onocr:
 #if defined(ONOCR)
       return doSetUnset (&t->c_oflag, ONOCR, b);
 #else
-      return 0;
+      return false;
 #endif
     case onlret:
 #if defined(ONLRET)
       return doSetUnset (&t->c_oflag, ONLRET, b);
 #else
-      return 0;
+      return false;
 #endif
     case ofill:
 #if defined(OFILL)
       return doSetUnset (&t->c_oflag, OFILL, b);
 #else
-      return 0;
+      return false;
 #endif
     case ofdel:
 #if defined(OFDEL)
       return doSetUnset (&t->c_oflag, OFDEL, b);
 #else
-      return 0;
+      return false;
 #endif
     case onl0:
 #if defined(NL0)
       return doSetUnset (&t->c_oflag, NL0, b);
 #else
-      return 0;
+      return false;
 #endif
     case onl1:
 #if defined(NL1)
       return doSetUnset (&t->c_oflag, NL1, b);
 #else
-      return 0;
+      return false;
 #endif
     case ocr0:
 #if defined(CR0)
       return doSetUnset (&t->c_oflag, CR0, b);
 #else
-      return 0;
+      return false;
 #endif
     case ocr1:
 #if defined(CR1)
       return doSetUnset (&t->c_oflag, CR1, b);
 #else
-      return 0;
+      return false;
 #endif
     case ocr2:
 #if defined(CR2)
       return doSetUnset (&t->c_oflag, CR2, b);
 #else
-      return 0;
+      return false;
 #endif
     case ocr3:
 #if defined(CR3)
       return doSetUnset (&t->c_oflag, CR3, b);
 #else
-      return 0;
+      return false;
 #endif
     case otab0:
 #if defined(TAB0)
       return doSetUnset (&t->c_oflag, TAB0, b);
 #else
-      return 0;
+      return false;
 #endif
     case otab1:
 #if defined(TAB1)
       return doSetUnset (&t->c_oflag, TAB1, b);
 #else
-      return 0;
+      return false;
 #endif
     case otab2:
 #if defined(TAB2)
       return doSetUnset (&t->c_oflag, TAB2, b);
 #else
-      return 0;
+      return false;
 #endif
     case otab3:
 #if defined(TAB3)
       return doSetUnset (&t->c_oflag, TAB3, b);
 #else
-      return 0;
+      return false;
 #endif
     case obs0:
 #if defined(BS0)
       return doSetUnset (&t->c_oflag, BS0, b);
 #else
-      return 0;
+      return false;
 #endif
     case obs1:
 #if defined(BS1)
       return doSetUnset (&t->c_oflag, BS1, b);
 #else
-      return 0;
+      return false;
 #endif
     case off0:
 #if defined(FF0)
       return doSetUnset (&t->c_oflag, FF0, b);
 #else
-      return 0;
+      return false;
 #endif
     case off1:
 #if defined(FF1)
       return doSetUnset (&t->c_oflag, FF1, b);
 #else
-      return 0;
+      return false;
 #endif
     case ovt0:
 #if defined(VT0)
       return doSetUnset (&t->c_oflag, VT0, b);
 #else
-      return 0;
+      return false;
 #endif
     case ovt1:
 #if defined(VT1)
       return doSetUnset (&t->c_oflag, VT1, b);
 #else
-      return 0;
+      return false;
 #endif
     case b0:
 #if defined(B0)
       return doSetUnset (&t->c_cflag, B0, b);
 #else
-      return 0;
+      return false;
 #endif
     case b50:
 #if defined(B50)
       return doSetUnset (&t->c_cflag, B50, b);
 #else
-      return 0;
+      return false;
 #endif
     case b75:
 #if defined(B75)
       return doSetUnset (&t->c_cflag, B75, b);
 #else
-      return 0;
+      return false;
 #endif
     case b110:
 #if defined(B110)
       return doSetUnset (&t->c_cflag, B110, b);
 #else
-      return 0;
+      return false;
 #endif
     case b135:
 #if defined(B134)
       return doSetUnset (&t->c_cflag, B134, b);
 #else
-      return 0;
+      return false;
 #endif
     case b150:
 #if defined(B150)
       return doSetUnset (&t->c_cflag, B150, b);
 #else
-      return 0;
+      return false;
 #endif
     case b200:
 #if defined(B200)
       return doSetUnset (&t->c_cflag, B200, b);
 #else
-      return 0;
+      return false;
 #endif
     case b300:
 #if defined(B300)
       return doSetUnset (&t->c_cflag, B300, b);
 #else
-      return 0;
+      return false;
 #endif
     case b600:
 #if defined(B600)
       return doSetUnset (&t->c_cflag, B600, b);
 #else
-      return 0;
+      return false;
 #endif
     case b1200:
 #if defined(B1200)
       return doSetUnset (&t->c_cflag, B1200, b);
 #else
-      return 0;
+      return false;
 #endif
     case b1800:
 #if defined(B1800)
       return doSetUnset (&t->c_cflag, B1800, b);
 #else
-      return 0;
+      return false;
 #endif
     case b2400:
 #if defined(B2400)
       return doSetUnset (&t->c_cflag, B2400, b);
 #else
-      return 0;
+      return false;
 #endif
     case b4800:
 #if defined(B4800)
       return doSetUnset (&t->c_cflag, B4800, b);
 #else
-      return 0;
+      return false;
 #endif
     case b9600:
 #if defined(B9600)
       return doSetUnset (&t->c_cflag, B9600, b);
 #else
-      return 0;
+      return false;
 #endif
     case b19200:
 #if defined(B19200)
       return doSetUnset (&t->c_cflag, B19200, b);
 #else
-      return 0;
+      return false;
 #endif
     case b38400:
 #if defined(B38400)
       return doSetUnset (&t->c_cflag, B38400, b);
 #else
-      return 0;
+      return false;
 #endif
     case b57600:
 #if defined(B57600)
       return doSetUnset (&t->c_cflag, B57600, b);
 #else
-      return 0;
+      return false;
 #endif
     case b115200:
 #if defined(B115200)
       return doSetUnset (&t->c_cflag, B115200, b);
 #else
-      return 0;
+      return false;
 #endif
     case b240400:
 #if defined(B230400)
       return doSetUnset (&t->c_cflag, B230400, b);
 #else
-      return 0;
+      return false;
 #endif
     case b460800:
 #if defined(B460800)
       return doSetUnset (&t->c_cflag, B460800, b);
 #else
-      return 0;
+      return false;
 #endif
     case b500000:
 #if defined(B500000)
       return doSetUnset (&t->c_cflag, B500000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b576000:
 #if defined(B576000)
       return doSetUnset (&t->c_cflag, B576000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b921600:
 #if defined(B921600)
       return doSetUnset (&t->c_cflag, B921600, b);
 #else
-      return 0;
+      return false;
 #endif
     case b1000000:
 #if defined(B1000000)
       return doSetUnset (&t->c_cflag, B1000000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b1152000:
 #if defined(B1152000)
       return doSetUnset (&t->c_cflag, B1152000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b1500000:
 #if defined(B1500000)
       return doSetUnset (&t->c_cflag, B1500000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b2000000:
 #if defined(B2000000)
       return doSetUnset (&t->c_cflag, B2000000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b2500000:
 #if defined(B2500000)
       return doSetUnset (&t->c_cflag, B2500000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b3000000:
 #if defined(B3000000)
       return doSetUnset (&t->c_cflag, B3000000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b3500000:
 #if defined(B3500000)
       return doSetUnset (&t->c_cflag, B3500000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b4000000:
 #if defined(B4000000)
       return doSetUnset (&t->c_cflag, B4000000, b);
 #else
-      return 0;
+      return false;
 #endif
     case maxbaud:
 #if defined(__MAX_BAUD)
       return doSetUnset (&t->c_cflag, __MAX_BAUD, b);
 #else
-      return 0;
+      return false;
 #endif
     case crtscts:
 #if defined(CRTSCTS)
       return doSetUnset (&t->c_cflag, CRTSCTS, b);
 #else
-      return 0;
+      return false;
 #endif
     case cs5:
 #if defined(CS5)
       return doSetUnset (&t->c_cflag, CS5, b);
 #else
-      return 0;
+      return false;
 #endif
     case cs6:
 #if defined(CS6)
       return doSetUnset (&t->c_cflag, CS6, b);
 #else
-      return 0;
+      return false;
 #endif
     case cs7:
 #if defined(CS7)
       return doSetUnset (&t->c_cflag, CS7, b);
 #else
-      return 0;
+      return false;
 #endif
     case cs8:
 #if defined(CS8)
       return doSetUnset (&t->c_cflag, CS8, b);
 #else
-      return 0;
+      return false;
 #endif
     case cstopb:
 #if defined(CSTOPB)
       return doSetUnset (&t->c_cflag, CSTOPB, b);
 #else
-      return 0;
+      return false;
 #endif
     case cread:
 #if defined(CREAD)
       return doSetUnset (&t->c_cflag, CREAD, b);
 #else
-      return 0;
+      return false;
 #endif
     case parenb:
 #if defined(PARENB)
       return doSetUnset (&t->c_cflag, PARENB, b);
 #else
-      return 0;
+      return false;
 #endif
     case parodd:
 #if defined(PARODD)
       return doSetUnset (&t->c_cflag, PARODD, b);
 #else
-      return 0;
+      return false;
 #endif
     case hupcl:
 #if defined(HUPCL)
       return doSetUnset (&t->c_cflag, HUPCL, b);
 #else
-      return 0;
+      return false;
 #endif
     case clocal:
 #if defined(CLOCAL)
       return doSetUnset (&t->c_cflag, CLOCAL, b);
 #else
-      return 0;
+      return false;
 #endif
     case lisig:
 #if defined(ISIG)
       return doSetUnset (&t->c_lflag, ISIG, b);
 #else
-      return 0;
+      return false;
 #endif
     case licanon:
 #if defined(ICANON)
       return doSetUnset (&t->c_lflag, ICANON, b);
 #else
-      return 0;
+      return false;
 #endif
     case lxcase:
 #if defined(XCASE)
       return doSetUnset (&t->c_lflag, XCASE, b);
 #else
-      return 0;
+      return false;
 #endif
     case lecho:
 #if defined(ECHO)
       return doSetUnset (&t->c_lflag, ECHO, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechoe:
 #if defined(ECHOE)
       return doSetUnset (&t->c_lflag, ECHOE, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechok:
 #if defined(ECHOK)
       return doSetUnset (&t->c_lflag, ECHOK, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechonl:
 #if defined(ECHONL)
       return doSetUnset (&t->c_lflag, ECHONL, b);
 #else
-      return 0;
+      return false;
 #endif
     case lnoflsh:
 #if defined(NOFLSH)
       return doSetUnset (&t->c_lflag, NOFLSH, b);
 #else
-      return 0;
+      return false;
 #endif
     case ltopstop:
 #if defined(TOSTOP)
       return doSetUnset (&t->c_lflag, TOSTOP, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechoctl:
 #if defined(ECHOCTL)
       return doSetUnset (&t->c_lflag, ECHOCTL, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechoprt:
 #if defined(ECHOPRT)
       return doSetUnset (&t->c_lflag, ECHOPRT, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechoke:
 #if defined(ECHOKE)
       return doSetUnset (&t->c_lflag, ECHOKE, b);
 #else
-      return 0;
+      return false;
 #endif
     case lflusho:
 #if defined(FLUSHO)
       return doSetUnset (&t->c_lflag, FLUSHO, b);
 #else
-      return 0;
+      return false;
 #endif
     case lpendin:
 #if defined(PENDIN)
       return doSetUnset (&t->c_lflag, PENDIN, b);
 #else
-      return 0;
+      return false;
 #endif
     case liexten:
 #if defined(IEXTEN)
       return doSetUnset (&t->c_lflag, IEXTEN, b);
 #else
-      return 0;
+      return false;
 #endif
     }
-  return 0;
+  return false;
 }
 
-/* GetChar - sets a CHAR, ch, value from, t, and returns TRUE if this
+/* GetChar sets a CHAR ch value from t and returns true/false if this
    value is supported.  */
 
-int
-EXPORT (GetChar) (struct termios *t, ControlChar c, char *ch)
+bool
+EXPORT (GetChar) (termios_TERMIOS _t, termios_ControlChar _c, char *ch)
 {
+  ControlChar c = (ControlChar) _c;
+  struct termios *t = (termios *)_t;
   switch (c)
     {
 
     case vintr:
 #if defined(VINTR)
       *ch = t->c_cc[VINTR];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vquit:
 #if defined(VQUIT)
       *ch = t->c_cc[VQUIT];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case verase:
 #if defined(VERASE)
       *ch = t->c_cc[VERASE];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vkill:
 #if defined(VKILL)
       *ch = t->c_cc[VKILL];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veof:
 #if defined(VEOF)
       *ch = t->c_cc[VEOF];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vtime:
 #if defined(VTIME)
       *ch = t->c_cc[VTIME];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vmin:
 #if defined(VMIN)
       *ch = t->c_cc[VMIN];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vswtc:
 #if defined(VSWTC)
       *ch = t->c_cc[VSWTC];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vstart:
 #if defined(VSTART)
       *ch = t->c_cc[VSTART];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vstop:
 #if defined(VSTOP)
       *ch = t->c_cc[VSTOP];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vsusp:
 #if defined(VSUSP)
       *ch = t->c_cc[VSUSP];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veol:
 #if defined(VEOL)
       *ch = t->c_cc[VEOL];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vreprint:
 #if defined(VREPRINT)
       *ch = t->c_cc[VREPRINT];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vdiscard:
 #if defined(VDISCARD)
       *ch = t->c_cc[VDISCARD];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vwerase:
 #if defined(VWERASE)
       *ch = t->c_cc[VWERASE];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vlnext:
 #if defined(VLNEXT)
       *ch = t->c_cc[VLNEXT];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veol2:
 #if defined(VEOL2)
       *ch = t->c_cc[VEOL2];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     default:
-      return 0;
+      return false;
     }
 }
 
-/* SetChar - sets a CHAR value in, t, and returns TRUE if, c, is
+/* SetChar sets a CHAR value in t and returns true/false if c is
    supported.  */
 
-int
-EXPORT (SetChar) (struct termios *t, ControlChar c, char ch)
+bool
+EXPORT (SetChar) (termios_TERMIOS _t, termios_ControlChar _c, char ch)
 {
+  ControlChar c = (ControlChar) _c;
+  struct termios *t = (termios *)_t;
   switch (c)
     {
 
     case vintr:
 #if defined(VINTR)
       t->c_cc[VINTR] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vquit:
 #if defined(VQUIT)
       t->c_cc[VQUIT] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case verase:
 #if defined(VERASE)
       t->c_cc[VERASE] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vkill:
 #if defined(VKILL)
       t->c_cc[VKILL] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veof:
 #if defined(VEOF)
       t->c_cc[VEOF] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vtime:
 #if defined(VTIME)
       t->c_cc[VTIME] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vmin:
 #if defined(VMIN)
       t->c_cc[VMIN] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vswtc:
 #if defined(VSWTC)
       t->c_cc[VSWTC] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vstart:
 #if defined(VSTART)
       t->c_cc[VSTART] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vstop:
 #if defined(VSTOP)
       t->c_cc[VSTOP] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vsusp:
 #if defined(VSUSP)
       t->c_cc[VSUSP] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veol:
 #if defined(VEOL)
       t->c_cc[VEOL] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vreprint:
 #if defined(VREPRINT)
       t->c_cc[VREPRINT] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vdiscard:
 #if defined(VDISCARD)
       t->c_cc[VDISCARD] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vwerase:
 #if defined(VWERASE)
       t->c_cc[VWERASE] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vlnext:
 #if defined(VLNEXT)
       t->c_cc[VLNEXT] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veol2:
 #if defined(VEOL2)
       t->c_cc[VEOL2] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     default:
-      return 0;
+      return false;
     }
 }
 
diff --git a/gcc/m2/mc-boot-ch/Gtermios.h b/gcc/m2/mc-boot-ch/Gtermios.h
new file mode 100644
index 00000000000..acb7fcf0c76
--- /dev/null
+++ b/gcc/m2/mc-boot-ch/Gtermios.h
@@ -0,0 +1,208 @@
+/* do not edit automatically generated by mc from termios.  */
+/* termios.def provides a procedural interface to termios.
+
+Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
+
+This file is part of GNU Modula-2.
+
+GNU Modula-2 is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Modula-2 is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+<http://www.gnu.org/licenses/>.  */
+
+
+#if !defined (_termios_H)
+#   define _termios_H
+
+#include "config.h"
+#include "system.h"
+#   ifdef __cplusplus
+extern "C" {
+#   endif
+#include <stdbool.h>
+#   if !defined (PROC_D)
+#      define PROC_D
+       typedef void (*PROC_t) (void);
+       typedef struct { PROC_t proc; } PROC;
+#   endif
+
+#   include "GSYSTEM.h"
+
+#   if defined (_termios_C)
+#      define EXTERN
+#   else
+#      define EXTERN extern
+#   endif
+
+typedef void *termios_TERMIOS;
+
+typedef enum {termios_vintr, termios_vquit, termios_verase, termios_vkill, termios_veof, termios_vtime, termios_vmin, termios_vswtc, termios_vstart, termios_vstop, termios_vsusp, termios_veol, termios_vreprint, termios_vdiscard, termios_vwerase, termios_vlnext, termios_veol2} termios_ControlChar;
+
+typedef enum {termios_ignbrk, termios_ibrkint, termios_ignpar, termios_iparmrk, termios_inpck, termios_istrip, termios_inlcr, termios_igncr, termios_icrnl, termios_iuclc, termios_ixon, termios_ixany, termios_ixoff, termios_imaxbel, termios_opost, termios_olcuc, termios_onlcr, termios_ocrnl, termios_onocr, termios_onlret, termios_ofill, termios_ofdel, termios_onl0, termios_onl1, termios_ocr0, termios_ocr1, termios_ocr2, termios_ocr3, termios_otab0, termios_otab1, termios_otab2, termios_otab3, termios_obs0, termios_obs1, termios_off0, termios_off1, termios_ovt0, termios_ovt1, termios_b0, termios_b50, termios_b75, termios_b110, termios_b135, termios_b150, termios_b200, termios_b300, termios_b600, termios_b1200, termios_b1800, termios_b2400, termios_b4800, termios_b9600, termios_b19200, termios_b38400, termios_b57600, termios_b115200, termios_b240400, termios_b460800, termios_b500000, termios_b576000, termios_b921600, termios_b1000000, termios_b1152000, termios_b1500000, termios_b2000000, termios_b2500000, termios_b3000000, termios_b3500000, termios_b4000000, termios_maxbaud, termios_crtscts, termios_cs5, termios_cs6, termios_cs7, termios_cs8, termios_cstopb, termios_cread, termios_parenb, termios_parodd, termios_hupcl, termios_clocal, termios_lisig, termios_licanon, termios_lxcase, termios_lecho, termios_lechoe, termios_lechok, termios_lechonl, termios_lnoflsh, termios_ltopstop, termios_lechoctl, termios_lechoprt, termios_lechoke, termios_lflusho, termios_lpendin, termios_liexten} termios_Flag;
+
+
+/*
+   InitTermios - new data structure.
+*/
+
+EXTERN termios_TERMIOS termios_InitTermios (void);
+
+/*
+   KillTermios - delete data structure.
+*/
+
+EXTERN termios_TERMIOS termios_KillTermios (termios_TERMIOS t);
+
+/*
+   cfgetospeed - return output baud rate.
+*/
+
+EXTERN int termios_cfgetospeed (termios_TERMIOS t);
+
+/*
+   cfgetispeed - return input baud rate.
+*/
+
+EXTERN int termios_cfgetispeed (termios_TERMIOS t);
+
+/*
+   cfsetospeed - set output baud rate.
+*/
+
+EXTERN int termios_cfsetospeed (termios_TERMIOS t, unsigned int b);
+
+/*
+   cfsetispeed - set input baud rate.
+*/
+
+EXTERN int termios_cfsetispeed (termios_TERMIOS t, unsigned int b);
+
+/*
+   cfsetspeed - set input and output baud rate.
+*/
+
+EXTERN int termios_cfsetspeed (termios_TERMIOS t, unsigned int b);
+
+/*
+   tcgetattr - get state of, fd, into, t.
+*/
+
+EXTERN int termios_tcgetattr (int fd, termios_TERMIOS t);
+EXTERN int termios_tcsnow (void);
+EXTERN int termios_tcsdrain (void);
+EXTERN int termios_tcsflush (void);
+
+/*
+   tcsetattr - set state of, fd, to, t, using option.
+*/
+
+EXTERN int termios_tcsetattr (int fd, int option, termios_TERMIOS t);
+
+/*
+   cfmakeraw - sets, t, to raw mode.
+*/
+
+EXTERN void termios_cfmakeraw (termios_TERMIOS t);
+
+/*
+   tcsendbreak - send zero bits for duration.
+*/
+
+EXTERN int termios_tcsendbreak (int fd, int duration);
+
+/*
+   tcdrain - waits for pending output to be written on, fd.
+*/
+
+EXTERN int termios_tcdrain (int fd);
+
+/*
+   tcflushi - flush input.
+*/
+
+EXTERN int termios_tcflushi (int fd);
+
+/*
+   tcflusho - flush output.
+*/
+
+EXTERN int termios_tcflusho (int fd);
+
+/*
+   tcflushio - flush input and output.
+*/
+
+EXTERN int termios_tcflushio (int fd);
+
+/*
+   tcflowoni - restart input on, fd.
+*/
+
+EXTERN int termios_tcflowoni (int fd);
+
+/*
+   tcflowoffi - stop input on, fd.
+*/
+
+EXTERN int termios_tcflowoffi (int fd);
+
+/*
+   tcflowono - restart output on, fd.
+*/
+
+EXTERN int termios_tcflowono (int fd);
+
+/*
+   tcflowoffo - stop output on, fd.
+*/
+
+EXTERN int termios_tcflowoffo (int fd);
+
+/*
+   GetFlag - sets a flag value from, t, in, b, and returns TRUE
+             if, t, supports, f.
+*/
+
+EXTERN bool termios_GetFlag (termios_TERMIOS t, termios_Flag f, bool *b);
+
+/*
+   SetFlag - sets a flag value in, t, to, b, and returns TRUE if
+             this flag value is supported.
+*/
+
+EXTERN bool termios_SetFlag (termios_TERMIOS t, termios_Flag f, bool b);
+
+/*
+   GetChar - sets a CHAR, ch, value from, t, and returns TRUE if
+             this value is supported.
+*/
+
+EXTERN bool termios_GetChar (termios_TERMIOS t, termios_ControlChar c, char *ch);
+
+/*
+   SetChar - sets a CHAR value in, t, and returns TRUE if, c,
+             is supported.
+*/
+
+EXTERN bool termios_SetChar (termios_TERMIOS t, termios_ControlChar c, char ch);
+#   ifdef __cplusplus
+}
+#   endif
+
+#   undef EXTERN
+#endif
diff --git a/gcc/m2/pge-boot/GM2RTS.cc b/gcc/m2/pge-boot/GM2RTS.cc
index 5214c42ae9b..ef5f7cf5ce1 100644
--- a/gcc/m2/pge-boot/GM2RTS.cc
+++ b/gcc/m2/pge-boot/GM2RTS.cc
@@ -25,6 +25,8 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
+#include "config.h"
+#include "system.h"
 #include <stdbool.h>
 #   if !defined (PROC_D)
 #      define PROC_D
@@ -40,13 +42,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #      define FALSE (1==0)
 #   endif
 
-#include <string.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <unistd.h>
-#define _M2RTS_H
 #define _M2RTS_C
 
+#include "GM2RTS.h"
 #   include "Glibc.h"
 #   include "GNumberIO.h"
 #   include "GStrLib.h"
@@ -62,9 +60,6 @@ typedef struct M2RTS_ArgCVEnvP_p M2RTS_ArgCVEnvP;
 #   define stderrFd 2
 typedef char *M2RTS_PtrToChar;
 
-typedef void (*M2RTS_ArgCVEnvP_t) (int, void *, void *);
-struct M2RTS_ArgCVEnvP_p { M2RTS_ArgCVEnvP_t proc; };
-
 static int ExitValue;
 static bool isHalting;
 static bool CallExit;
@@ -138,7 +133,7 @@ extern "C" void M2RTS_ExecuteTerminationProcedures (void);
                not call ExecuteTerminationProcedures.
 */
 
-extern "C" void M2RTS_Terminate (void);
+extern "C" void M2RTS_Terminate (void) __attribute__ ((noreturn));
 
 /*
    HALT - terminate the current program.  The procedure
@@ -151,7 +146,7 @@ extern "C" void M2RTS_Terminate (void);
           then calling HALT with no parameter.
 */
 
-extern "C" void M2RTS_HALT (int exitcode);
+extern "C" void M2RTS_HALT (int exitcode) __attribute__ ((noreturn));
 
 /*
    Halt - provides a more user friendly version of HALT, which takes
@@ -159,7 +154,7 @@ extern "C" void M2RTS_HALT (int exitcode);
           to stderr and calls exit (1).
 */
 
-extern "C" void M2RTS_Halt (const char *description_, unsigned int _description_high, const char *filename_, unsigned int _filename_high, const char *function_, unsigned int _function_high, unsigned int line);
+extern "C" void M2RTS_Halt (const char *description_, unsigned int _description_high, const char *filename_, unsigned int _filename_high, const char *function_, unsigned int _function_high, unsigned int line) __attribute__ ((noreturn));
 
 /*
    HaltC - provides a more user friendly version of HALT, which takes
@@ -167,7 +162,7 @@ extern "C" void M2RTS_Halt (const char *description_, unsigned int _description_
            to stderr and calls exit (1).
 */
 
-extern "C" void M2RTS_HaltC (void * description, void * filename, void * function, unsigned int line);
+extern "C" void M2RTS_HaltC (void * description, void * filename, void * function, unsigned int line) __attribute__ ((noreturn));
 
 /*
    ExitOnHalt - if HALT is executed then call exit with the exit code, e.
@@ -179,7 +174,7 @@ extern "C" void M2RTS_ExitOnHalt (int e);
    ErrorMessage - emits an error message to stderr and then calls exit (1).
 */
 
-extern "C" void M2RTS_ErrorMessage (const char *message_, unsigned int _message_high, const char *filename_, unsigned int _filename_high, unsigned int line, const char *function_, unsigned int _function_high);
+extern "C" void M2RTS_ErrorMessage (const char *message_, unsigned int _message_high, const char *filename_, unsigned int _filename_high, unsigned int line, const char *function_, unsigned int _function_high) __attribute__ ((noreturn));
 
 /*
    Length - returns the length of a string, a. This is called whenever
@@ -188,30 +183,30 @@ extern "C" void M2RTS_ErrorMessage (const char *message_, unsigned int _message_
 */
 
 extern "C" unsigned int M2RTS_Length (const char *a_, unsigned int _a_high);
-extern "C" void M2RTS_AssignmentException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_ReturnException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_IncException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_DecException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_InclException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_ExclException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_ShiftException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_RotateException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_StaticArraySubscriptException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_DynamicArraySubscriptException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_ForLoopBeginException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_ForLoopToException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_ForLoopEndException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_PointerNilException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_NoReturnException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_CaseException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_WholeNonPosDivException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_WholeNonPosModException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_WholeZeroDivException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_WholeZeroRemException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_WholeValueException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_RealValueException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_ParameterException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
-extern "C" void M2RTS_NoException (void * filename, unsigned int line, unsigned int column, void * scope, void * message);
+extern "C" void M2RTS_AssignmentException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_ReturnException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_IncException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_DecException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_InclException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_ExclException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_ShiftException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_RotateException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_StaticArraySubscriptException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_DynamicArraySubscriptException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_ForLoopBeginException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_ForLoopToException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_ForLoopEndException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_PointerNilException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_NoReturnException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_CaseException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_WholeNonPosDivException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_WholeNonPosModException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_WholeZeroDivException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_WholeZeroRemException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_WholeValueException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_RealValueException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_ParameterException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
+extern "C" void M2RTS_NoException (void * filename, unsigned int line, unsigned int column, void * scope, void * message) __attribute__ ((noreturn));
 
 /*
    ErrorString - writes a string to stderr.
@@ -229,7 +224,7 @@ static void ErrorStringC (void * str);
    ErrorMessageC - emits an error message to stderr and then calls exit (1).
 */
 
-static void ErrorMessageC (void * message, void * filename, unsigned int line, void * function);
+static void ErrorMessageC (void * message, void * filename, unsigned int line, void * function) __attribute__ ((noreturn));
 
 /*
    Init - initialize the initial, terminate procedure lists and booleans.
@@ -259,7 +254,7 @@ static void ErrorString (const char *a_, unsigned int _a_high)
   /* make a local copy of each unbounded array.  */
   memcpy (a, a_, _a_high+1);
 
-  n = static_cast<int> (libc_write (stderrFd, &a, static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
+  n = static_cast<int> (libc_write (stderrFd, const_cast<void*> (static_cast<const void*>(a)), static_cast<size_t> (StrLib_StrLen ((const char *) a, _a_high))));
 }
 
 
@@ -714,11 +709,11 @@ extern "C" void M2RTS_NoException (void * filename, unsigned int line, unsigned
   RTExceptions_Raise ( ((unsigned int) (M2EXCEPTION_exException)), filename, line, column, scope, message);
 }
 
-extern "C" void _M2_M2RTS_init (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_M2RTS_init (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
   CheckInitialized ();
 }
 
-extern "C" void _M2_M2RTS_fini (__attribute__((unused)) int argc,__attribute__((unused)) char *argv[],__attribute__((unused)) char *envp[])
+extern "C" void _M2_M2RTS_fini (__attribute__((unused)) int argc, __attribute__((unused)) char *argv[], __attribute__((unused)) char *envp[])
 {
 }
diff --git a/gcc/m2/pge-boot/GSysExceptions.cc b/gcc/m2/pge-boot/GSysExceptions.cc
index d16197dbcc7..de8bab91c57 100644
--- a/gcc/m2/pge-boot/GSysExceptions.cc
+++ b/gcc/m2/pge-boot/GSysExceptions.cc
@@ -24,6 +24,16 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 #include "gm2-libs-host.h"
 
+#ifdef MC_M2
+#include "GSysExceptions.h"
+#define DECL_PROC_T(X) SysExceptions_PROCEXCEPTION X
+#define PROC_FUNC(X) X.proc
+#else
+#define DECL_PROC_T(X) void (*X) (void *)
+#define PROC_FUNC(X) X
+#endif
+
+#undef EXTERN
 #if defined(__cplusplus)
 #define EXTERN extern "C"
 #else
@@ -68,13 +78,11 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #define SIGSYS 31      /* Bad system call.  */
 #define SIGUNUSED 31
 
-
     (indexException,     rangeException,         caseSelectException,  invalidLocation,
      functionException,  wholeValueException,    wholeDivException,    realValueException,
      realDivException,   complexValueException,  complexDivException,  protException,
      sysException,       coException,            exException
     );
-
 #endif
 
 /* wholeDivException and realDivException are caught by SIGFPE
@@ -106,6 +114,7 @@ static void (*systemProc) (void *);
 static void (*coroutineProc) (void *);
 static void (*exceptionProc) (void *);
 
+
 static void
 sigbusDespatcher (int signum, siginfo_t *info, void *ucontext)
 {
@@ -159,32 +168,39 @@ sigfpeDespatcher (int signum, siginfo_t *info, void *ucontext)
 
 EXTERN
 void
-SysExceptions_InitExceptionHandlers (
-    void (*indexf) (void *), void (*range) (void *), void (*casef) (void *),
-    void (*invalidloc) (void *), void (*function) (void *),
-    void (*wholevalue) (void *), void (*wholediv) (void *),
-    void (*realvalue) (void *), void (*realdiv) (void *),
-    void (*complexvalue) (void *), void (*complexdiv) (void *),
-    void (*protection) (void *), void (*systemf) (void *),
-    void (*coroutine) (void *), void (*exception) (void *))
+SysExceptions_InitExceptionHandlers (DECL_PROC_T(indexf),
+				     DECL_PROC_T(range),
+				     DECL_PROC_T(casef),
+				     DECL_PROC_T(invalidloc),
+				     DECL_PROC_T(function),
+				     DECL_PROC_T(wholevalue),
+				     DECL_PROC_T(wholediv),
+				     DECL_PROC_T(realvalue),
+				     DECL_PROC_T(realdiv),
+				     DECL_PROC_T(complexvalue),
+				     DECL_PROC_T(complexdiv),
+				     DECL_PROC_T(protection),
+				     DECL_PROC_T(systemf),
+				     DECL_PROC_T(coroutine),
+				     DECL_PROC_T(exception))
 {
   struct sigaction old;
 
-  indexProc = indexf;
-  rangeProc = range;
-  caseProc = casef;
-  invalidlocProc = invalidloc;
-  functionProc = function;
-  wholevalueProc = wholevalue;
-  wholedivProc = wholediv;
-  realvalueProc = realvalue;
-  realdivProc = realdiv;
-  complexvalueProc = complexvalue;
-  complexdivProc = complexdiv;
-  protectionProc = protection;
-  systemProc = systemf;
-  coroutineProc = coroutine;
-  exceptionProc = exception;
+  indexProc = PROC_FUNC (indexf);
+  rangeProc = PROC_FUNC (range);
+  caseProc = PROC_FUNC (casef);
+  invalidlocProc = PROC_FUNC (invalidloc);
+  functionProc = PROC_FUNC (function);
+  wholevalueProc = PROC_FUNC (wholevalue);
+  wholedivProc = PROC_FUNC (wholediv);
+  realvalueProc = PROC_FUNC (realvalue);
+  realdivProc = PROC_FUNC (realdiv);
+  complexvalueProc = PROC_FUNC (complexvalue);
+  complexdivProc = PROC_FUNC (complexdiv);
+  protectionProc = PROC_FUNC (protection);
+  systemProc = PROC_FUNC (systemf);
+  coroutineProc = PROC_FUNC (coroutine);
+  exceptionProc = PROC_FUNC (exception);
 
   sigbus.sa_sigaction = sigbusDespatcher;
   sigbus.sa_flags = (SA_SIGINFO);
@@ -211,13 +227,21 @@ SysExceptions_InitExceptionHandlers (
 #else
 EXTERN
 void
-SysExceptions_InitExceptionHandlers (void *indexf, void *range, void *casef,
-                                     void *invalidloc, void *function,
-                                     void *wholevalue, void *wholediv,
-                                     void *realvalue, void *realdiv,
-                                     void *complexvalue, void *complexdiv,
-                                     void *protection, void *systemf,
-                                     void *coroutine, void *exception)
+SysExceptions_InitExceptionHandlers (DECL_PROC_T(indexf),
+				     DECL_PROC_T(range),
+				     DECL_PROC_T(casef),
+				     DECL_PROC_T(invalidloc),
+				     DECL_PROC_T(function),
+				     DECL_PROC_T(wholevalue),
+				     DECL_PROC_T(wholediv),
+				     DECL_PROC_T(realvalue),
+				     DECL_PROC_T(realdiv),
+				     DECL_PROC_T(complexvalue),
+				     DECL_PROC_T(complexdiv),
+				     DECL_PROC_T(protection),
+				     DECL_PROC_T(systemf),
+				     DECL_PROC_T(coroutine),
+				     DECL_PROC_T(exception))
 {
 }
 #endif
diff --git a/gcc/m2/pge-boot/Gtermios.cc b/gcc/m2/pge-boot/Gtermios.cc
index 55220e7624e..fe20afb767f 100644
--- a/gcc/m2/pge-boot/Gtermios.cc
+++ b/gcc/m2/pge-boot/Gtermios.cc
@@ -24,6 +24,9 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 #include "gm2-libs-host.h"
 
+#define _termios_C
+#include "Gtermios.h"
+
 #ifdef HAVE_TERMIOS_H
 # include <termios.h>
 #endif
@@ -193,13 +196,13 @@ EXPORT (InitTermios) (void)
 /* KillTermios - delete data structure.  */
 
 void *
-EXPORT (KillTermios) (struct termios *p)
+EXPORT (KillTermios) (termios_TERMIOS p)
 {
   free (p);
   return NULL;
 }
 
-/* tcsnow - return the value of TCSANOW.  */
+/* tcsnow return the value of TCSANOW.  */
 
 int
 EXPORT (tcsnow) (void)
@@ -207,7 +210,7 @@ EXPORT (tcsnow) (void)
   return TCSANOW;
 }
 
-/* tcsdrain - return the value of TCSADRAIN.  */
+/* tcsdrain return the value of TCSADRAIN.  */
 
 int
 EXPORT (tcsdrain) (void)
@@ -215,7 +218,7 @@ EXPORT (tcsdrain) (void)
   return TCSADRAIN;
 }
 
-/* tcsflush - return the value of TCSAFLUSH.  */
+/* tcsflush return the value of TCSAFLUSH.  */
 
 int
 EXPORT (tcsflush) (void)
@@ -223,43 +226,48 @@ EXPORT (tcsflush) (void)
   return TCSAFLUSH;
 }
 
-/* cfgetospeed - return output baud rate.  */
+/* cfgetospeed return output baud rate.  */
 
 int
-EXPORT (cfgetospeed) (struct termios *t)
+EXPORT (cfgetospeed) (termios_TERMIOS _t)
 {
+  struct termios *t = (termios *)_t;
   return cfgetospeed (t);
 }
 
-/* cfgetispeed - return input baud rate.  */
+/* cfgetispeed return input baud rate.  */
 
 int
-EXPORT (cfgetispeed) (struct termios *t)
+EXPORT (cfgetispeed) (termios_TERMIOS _t)
 {
+  struct termios *t = (termios *)_t;
   return cfgetispeed (t);
 }
 
-/* cfsetospeed - set output baud rate.  */
+/* cfsetospeed set output baud rate.  */
 
 int
-EXPORT (cfsetospeed) (struct termios *t, unsigned int b)
+EXPORT (cfsetospeed) (termios_TERMIOS _t, unsigned int b)
 {
+  struct termios *t = (termios *)_t;
   return cfsetospeed (t, b);
 }
 
-/* cfsetispeed - set input baud rate.  */
+/* cfsetispeed set input baud rate.  */
 
 int
-EXPORT (cfsetispeed) (struct termios *t, unsigned int b)
+EXPORT (cfsetispeed) (termios_TERMIOS _t, unsigned int b)
 {
+  struct termios *t = (termios *)_t;
   return cfsetispeed (t, b);
 }
 
-/* cfsetspeed - set input and output baud rate.  */
+/* cfsetspeed set input and output baud rate.  */
 
 int
-EXPORT (cfsetspeed) (struct termios *t, unsigned int b)
+EXPORT (cfsetspeed) (termios_TERMIOS _t, unsigned int b)
 {
+  struct termios *t = (termios *)_t;
   int val = cfsetispeed (t, b);
   if (val == 0)
     return cfsetospeed (t, b);
@@ -267,33 +275,36 @@ EXPORT (cfsetspeed) (struct termios *t, unsigned int b)
   return val;
 }
 
-/* tcgetattr - get state of, fd, into, t.  */
+/* tcgetattr get state of fd into t.  */
 
 int
-EXPORT (tcgetattr) (int fd, struct termios *t)
+EXPORT (tcgetattr) (int fd, termios_TERMIOS _t)
 {
+  struct termios *t = (termios *)_t;
   return tcgetattr (fd, t);
 }
 
-/* tcsetattr - set state of, fd, to, t, using option.  */
+/* tcsetattr set state of fd to t using option.  */
 
 int
-EXPORT (tcsetattr) (int fd, int option, struct termios *t)
+EXPORT (tcsetattr) (int fd, int option, termios_TERMIOS _t)
 {
+  struct termios *t = (termios *)_t;
   return tcsetattr (fd, option, t);
 }
 
-/* cfmakeraw - sets the terminal to raw mode.  */
+/* cfmakeraw sets the terminal to raw mode.  */
 
 void
-EXPORT (cfmakeraw) (struct termios *t)
+EXPORT (cfmakeraw) (termios_TERMIOS _t)
 {
 #if defined(HAVE_CFMAKERAW)
+  struct termios *t = (termios *)_t;
   cfmakeraw (t);
 #endif
 }
 
-/* tcsendbreak - send zero bits for duration.  */
+/* tcsendbreak send zero bits for duration.  */
 
 int
 EXPORT (tcsendbreak) (int fd, int duration)
@@ -301,7 +312,7 @@ EXPORT (tcsendbreak) (int fd, int duration)
   return tcsendbreak (fd, duration);
 }
 
-/* tcdrain - waits for pending output to be written on, fd.  */
+/* tcdrain waits for pending output to be written on fd.  */
 
 int
 EXPORT (tcdrain) (int fd)
@@ -309,7 +320,7 @@ EXPORT (tcdrain) (int fd)
   return tcdrain (fd);
 }
 
-/* tcflushi - flush input.  */
+/* tcflushi flush input.  */
 
 int
 EXPORT (tcflushi) (int fd)
@@ -321,7 +332,7 @@ EXPORT (tcflushi) (int fd)
 #endif
 }
 
-/* tcflusho - flush output.  */
+/* tcflusho flush output.  */
 
 int
 EXPORT (tcflusho) (int fd)
@@ -333,7 +344,7 @@ EXPORT (tcflusho) (int fd)
 #endif
 }
 
-/* tcflushio - flush input and output.  */
+/* tcflushio flush input and output.  */
 
 int
 EXPORT (tcflushio) (int fd)
@@ -345,7 +356,7 @@ EXPORT (tcflushio) (int fd)
 #endif
 }
 
-/* tcflowoni - restart input on, fd.  */
+/* tcflowoni restart input on fd.  */
 
 int
 EXPORT (tcflowoni) (int fd)
@@ -357,7 +368,7 @@ EXPORT (tcflowoni) (int fd)
 #endif
 }
 
-/* tcflowoffi - stop input on, fd.  */
+/* tcflowoffi stop input on fd.  */
 
 int
 EXPORT (tcflowoffi) (int fd)
@@ -369,7 +380,7 @@ EXPORT (tcflowoffi) (int fd)
 #endif
 }
 
-/* tcflowono - restart output on, fd.  */
+/* tcflowono restart output on fd.  */
 
 int
 EXPORT (tcflowono) (int fd)
@@ -381,7 +392,7 @@ EXPORT (tcflowono) (int fd)
 #endif
 }
 
-/* tcflowoffo - stop output on, fd.  */
+/* tcflowoffo stop output on fd.  */
 
 int
 EXPORT (tcflowoffo) (int fd)
@@ -393,1542 +404,1551 @@ EXPORT (tcflowoffo) (int fd)
 #endif
 }
 
-/* GetFlag - sets a flag value from, t, in, b, and returns TRUE if,
-   t, supports, f.  */
+/* GetFlag sets a flag value from t in b and returns TRUE if
+   t supports f.  */
 
-int
-EXPORT (GetFlag) (struct termios *t, Flag f, int *b)
+bool
+EXPORT (GetFlag) (termios_TERMIOS _t, termios_Flag _f, bool *b)
 {
+  Flag f = (Flag) _f;
+  struct termios *t = (termios *)_t;
   switch (f)
     {
 
     case ignbrk:
 #if defined(IGNBRK)
       *b = ((t->c_iflag & IGNBRK) == IGNBRK);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ibrkint:
 #if defined(BRKINT)
       *b = ((t->c_iflag & BRKINT) == BRKINT);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ignpar:
 #if defined(IGNPAR)
       *b = ((t->c_iflag & IGNPAR) == IGNPAR);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case iparmrk:
 #if defined(PARMRK)
       *b = ((t->c_iflag & PARMRK) == PARMRK);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case inpck:
 #if defined(INPCK)
       *b = ((t->c_iflag & INPCK) == INPCK);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case istrip:
 #if defined(ISTRIP)
       *b = ((t->c_iflag & ISTRIP) == ISTRIP);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case inlcr:
 #if defined(INLCR)
       *b = ((t->c_iflag & INLCR) == INLCR);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case igncr:
 #if defined(IGNCR)
       *b = ((t->c_iflag & IGNCR) == IGNCR);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case icrnl:
 #if defined(ICRNL)
       *b = ((t->c_iflag & ICRNL) == ICRNL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case iuclc:
 #if defined(IUCLC)
       *b = ((t->c_iflag & IUCLC) == IUCLC);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ixon:
 #if defined(IXON)
       *b = ((t->c_iflag & IXON) == IXON);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ixany:
 #if defined(IXANY)
       *b = ((t->c_iflag & IXANY) == IXANY);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ixoff:
 #if defined(IXOFF)
       *b = ((t->c_iflag & IXOFF) == IXOFF);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case imaxbel:
 #if defined(IMAXBEL)
       *b = ((t->c_iflag & IMAXBEL) == IMAXBEL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case opost:
 #if defined(OPOST)
       *b = ((t->c_oflag & OPOST) == OPOST);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case olcuc:
 #if defined(OLCUC)
       *b = ((t->c_oflag & OLCUC) == OLCUC);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case onlcr:
 #if defined(ONLCR)
       *b = ((t->c_oflag & ONLCR) == ONLCR);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ocrnl:
 #if defined(OCRNL)
       *b = ((t->c_oflag & OCRNL) == OCRNL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case onocr:
 #if defined(ONOCR)
       *b = ((t->c_oflag & ONOCR) == ONOCR);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case onlret:
 #if defined(ONLRET)
       *b = ((t->c_oflag & ONLRET) == ONLRET);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ofill:
 #if defined(OFILL)
       *b = ((t->c_oflag & OFILL) == OFILL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ofdel:
 #if defined(OFDEL)
       *b = ((t->c_oflag & OFDEL) == OFDEL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case onl0:
 #if defined(NL0)
       *b = ((t->c_oflag & NL0) == NL0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case onl1:
 #if defined(NL1)
       *b = ((t->c_oflag & NL1) == NL1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ocr0:
 #if defined(CR0)
       *b = ((t->c_oflag & CR0) == CR0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ocr1:
 #if defined(CR1)
       *b = ((t->c_oflag & CR1) == CR1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ocr2:
 #if defined(CR2)
       *b = ((t->c_oflag & CR2) == CR2);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ocr3:
 #if defined(CR3)
       *b = ((t->c_oflag & CR3) == CR3);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case otab0:
 #if defined(TAB0)
       *b = ((t->c_oflag & TAB0) == TAB0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case otab1:
 #if defined(TAB1)
       *b = ((t->c_oflag & TAB1) == TAB1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case otab2:
 #if defined(TAB2)
       *b = ((t->c_oflag & TAB2) == TAB2);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case otab3:
 #if defined(TAB3)
       *b = ((t->c_oflag & TAB3) == TAB3);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case obs0:
 #if defined(BS0)
       *b = ((t->c_oflag & BS0) == BS0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case obs1:
 #if defined(BS1)
       *b = ((t->c_oflag & BS1) == BS1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case off0:
 #if defined(FF0)
       *b = ((t->c_oflag & FF0) == FF0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case off1:
 #if defined(FF1)
       *b = ((t->c_oflag & FF1) == FF1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ovt0:
 #if defined(VT0)
       *b = ((t->c_oflag & VT0) == VT0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ovt1:
 #if defined(VT1)
       *b = ((t->c_oflag & VT1) == VT1);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b0:
 #if defined(B0)
       *b = ((t->c_cflag & B0) == B0);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b50:
 #if defined(B50)
       *b = ((t->c_cflag & B50) == B50);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b75:
 #if defined(B75)
       *b = ((t->c_cflag & B75) == B75);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b110:
 #if defined(B110)
       *b = ((t->c_cflag & B110) == B110);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b135:
 #if defined(B134)
       *b = ((t->c_cflag & B134) == B134);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b150:
 #if defined(B150)
       *b = ((t->c_cflag & B150) == B150);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b200:
 #if defined(B200)
       *b = ((t->c_cflag & B200) == B200);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b300:
 #if defined(B300)
       *b = ((t->c_cflag & B300) == B300);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b600:
 #if defined(B600)
       *b = ((t->c_cflag & B600) == B600);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b1200:
 #if defined(B1200)
       *b = ((t->c_cflag & B1200) == B1200);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b1800:
 #if defined(B1800)
       *b = ((t->c_cflag & B1800) == B1800);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b2400:
 #if defined(B2400)
       *b = ((t->c_cflag & B2400) == B2400);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b4800:
 #if defined(B4800)
       *b = ((t->c_cflag & B4800) == B4800);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b9600:
 #if defined(B9600)
       *b = ((t->c_cflag & B9600) == B9600);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b19200:
 #if defined(B19200)
       *b = ((t->c_cflag & B19200) == B19200);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b38400:
 #if defined(B38400)
       *b = ((t->c_cflag & B38400) == B38400);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b57600:
 #if defined(B57600)
       *b = ((t->c_cflag & B57600) == B57600);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b115200:
 #if defined(B115200)
       *b = ((t->c_cflag & B115200) == B115200);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b240400:
 #if defined(B230400)
       *b = ((t->c_cflag & B230400) == B230400);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b460800:
 #if defined(B460800)
       *b = ((t->c_cflag & B460800) == B460800);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b500000:
 #if defined(B500000)
       *b = ((t->c_cflag & B500000) == B500000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b576000:
 #if defined(B576000)
       *b = ((t->c_cflag & B576000) == B576000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b921600:
 #if defined(B921600)
       *b = ((t->c_cflag & B921600) == B921600);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b1000000:
 #if defined(B1000000)
       *b = ((t->c_cflag & B1000000) == B1000000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b1152000:
 #if defined(B1152000)
       *b = ((t->c_cflag & B1152000) == B1152000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b1500000:
 #if defined(B1500000)
       *b = ((t->c_cflag & B1500000) == B1500000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b2000000:
 #if defined(B2000000)
       *b = ((t->c_cflag & B2000000) == B2000000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b2500000:
 #if defined(B2500000)
       *b = ((t->c_cflag & B2500000) == B2500000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b3000000:
 #if defined(B3000000)
       *b = ((t->c_cflag & B3000000) == B3000000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b3500000:
 #if defined(B3500000)
       *b = ((t->c_cflag & B3500000) == B3500000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case b4000000:
 #if defined(B4000000)
       *b = ((t->c_cflag & B4000000) == B4000000);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case maxbaud:
 #if defined(__MAX_BAUD)
       *b = ((t->c_cflag & __MAX_BAUD) == __MAX_BAUD);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case crtscts:
 #if defined(CRTSCTS)
       *b = ((t->c_cflag & CRTSCTS) == CRTSCTS);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cs5:
 #if defined(CS5)
       *b = ((t->c_cflag & CS5) == CS5);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cs6:
 #if defined(CS6)
       *b = ((t->c_cflag & CS6) == CS6);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cs7:
 #if defined(CS7)
       *b = ((t->c_cflag & CS7) == CS7);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cs8:
 #if defined(CS8)
       *b = ((t->c_cflag & CS8) == CS8);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cstopb:
 #if defined(CSTOPB)
       *b = ((t->c_cflag & CSTOPB) == CSTOPB);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case cread:
 #if defined(CREAD)
       *b = ((t->c_cflag & CREAD) == CREAD);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case parenb:
 #if defined(PARENB)
       *b = ((t->c_cflag & PARENB) == PARENB);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case parodd:
 #if defined(PARODD)
       *b = ((t->c_cflag & PARODD) == PARODD);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case hupcl:
 #if defined(HUPCL)
       *b = ((t->c_cflag & HUPCL) == HUPCL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case clocal:
 #if defined(CLOCAL)
       *b = ((t->c_cflag & CLOCAL) == CLOCAL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lisig:
 #if defined(ISIG)
       *b = ((t->c_lflag & ISIG) == ISIG);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case licanon:
 #if defined(ICANON)
       *b = ((t->c_lflag & ICANON) == ICANON);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lxcase:
 #if defined(XCASE)
       *b = ((t->c_lflag & XCASE) == XCASE);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lecho:
 #if defined(ECHO)
       *b = ((t->c_lflag & ECHO) == ECHO);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechoe:
 #if defined(ECHOE)
       *b = ((t->c_lflag & ECHOE) == ECHOE);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechok:
 #if defined(ECHOK)
       *b = ((t->c_lflag & ECHOK) == ECHOK);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechonl:
 #if defined(ECHONL)
       *b = ((t->c_lflag & ECHONL) == ECHONL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lnoflsh:
 #if defined(NOFLSH)
       *b = ((t->c_lflag & NOFLSH) == NOFLSH);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case ltopstop:
 #if defined(TOSTOP)
       *b = ((t->c_lflag & TOSTOP) == TOSTOP);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechoctl:
 #if defined(ECHOCTL)
       *b = ((t->c_lflag & ECHOCTL) == ECHOCTL);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechoprt:
 #if defined(ECHOPRT)
       *b = ((t->c_lflag & ECHOPRT) == ECHOPRT);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lechoke:
 #if defined(ECHOKE)
       *b = ((t->c_lflag & ECHOKE) == ECHOKE);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lflusho:
 #if defined(FLUSHO)
       *b = ((t->c_lflag & FLUSHO) == FLUSHO);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case lpendin:
 #if defined(PENDIN)
       *b = ((t->c_lflag & PENDIN) == PENDIN);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case liexten:
 #if defined(IEXTEN)
       *b = ((t->c_lflag & IEXTEN) == IEXTEN);
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     }
-  return 0;
+  return false;
 }
 
-/* SetFlag - sets a flag value in, t, to, b, and returns TRUE if this
+/* SetFlag sets a flag value in t to b and returns TRUE if this
    flag value is supported.  */
 
 bool
-EXPORT (SetFlag) (struct termios *t, Flag f, bool b)
+EXPORT (SetFlag) (termios_TERMIOS _t, termios_Flag _f, bool b)
 {
+  struct termios *t = (struct termios *) _t;
+  Flag f = (Flag) _f;
+
   switch (f)
     {
     case ignbrk:
 #if defined(IGNBRK)
       return doSetUnset (&t->c_iflag, IGNBRK, b);
 #else
-      return 0;
+      return false;
 #endif
     case ibrkint:
 #if defined(BRKINT)
       return doSetUnset (&t->c_iflag, BRKINT, b);
 #else
-      return 0;
+      return false;
 #endif
     case ignpar:
 #if defined(IGNPAR)
       return doSetUnset (&t->c_iflag, IGNPAR, b);
 #else
-      return 0;
+      return false;
 #endif
     case iparmrk:
 #if defined(PARMRK)
       return doSetUnset (&t->c_iflag, PARMRK, b);
 #else
-      return 0;
+      return false;
 #endif
     case inpck:
 #if defined(INPCK)
       return doSetUnset (&t->c_iflag, INPCK, b);
 #else
-      return 0;
+      return false;
 #endif
     case istrip:
 #if defined(ISTRIP)
       return doSetUnset (&t->c_iflag, ISTRIP, b);
 #else
-      return 0;
+      return false;
 #endif
     case inlcr:
 #if defined(INLCR)
       return doSetUnset (&t->c_iflag, INLCR, b);
 #else
-      return 0;
+      return false;
 #endif
     case igncr:
 #if defined(IGNCR)
       return doSetUnset (&t->c_iflag, IGNCR, b);
 #else
-      return 0;
+      return false;
 #endif
     case icrnl:
 #if defined(ICRNL)
       return doSetUnset (&t->c_iflag, ICRNL, b);
 #else
-      return 0;
+      return false;
 #endif
     case iuclc:
 #if defined(IUCLC)
       return doSetUnset (&t->c_iflag, IUCLC, b);
 #else
-      return 0;
+      return false;
 #endif
     case ixon:
 #if defined(IXON)
       return doSetUnset (&t->c_iflag, IXON, b);
 #else
-      return 0;
+      return false;
 #endif
     case ixany:
 #if defined(IXANY)
       return doSetUnset (&t->c_iflag, IXANY, b);
 #else
-      return 0;
+      return false;
 #endif
     case ixoff:
 #if defined(IXOFF)
       return doSetUnset (&t->c_iflag, IXOFF, b);
 #else
-      return 0;
+      return false;
 #endif
     case imaxbel:
 #if defined(IMAXBEL)
       return doSetUnset (&t->c_iflag, IMAXBEL, b);
 #else
-      return 0;
+      return false;
 #endif
     case opost:
 #if defined(OPOST)
       return doSetUnset (&t->c_oflag, OPOST, b);
 #else
-      return 0;
+      return false;
 #endif
     case olcuc:
 #if defined(OLCUC)
       return doSetUnset (&t->c_oflag, OLCUC, b);
 #else
-      return 0;
+      return false;
 #endif
     case onlcr:
 #if defined(ONLCR)
       return doSetUnset (&t->c_oflag, ONLCR, b);
 #else
-      return 0;
+      return false;
 #endif
     case ocrnl:
 #if defined(OCRNL)
       return doSetUnset (&t->c_oflag, OCRNL, b);
 #else
-      return 0;
+      return false;
 #endif
     case onocr:
 #if defined(ONOCR)
       return doSetUnset (&t->c_oflag, ONOCR, b);
 #else
-      return 0;
+      return false;
 #endif
     case onlret:
 #if defined(ONLRET)
       return doSetUnset (&t->c_oflag, ONLRET, b);
 #else
-      return 0;
+      return false;
 #endif
     case ofill:
 #if defined(OFILL)
       return doSetUnset (&t->c_oflag, OFILL, b);
 #else
-      return 0;
+      return false;
 #endif
     case ofdel:
 #if defined(OFDEL)
       return doSetUnset (&t->c_oflag, OFDEL, b);
 #else
-      return 0;
+      return false;
 #endif
     case onl0:
 #if defined(NL0)
       return doSetUnset (&t->c_oflag, NL0, b);
 #else
-      return 0;
+      return false;
 #endif
     case onl1:
 #if defined(NL1)
       return doSetUnset (&t->c_oflag, NL1, b);
 #else
-      return 0;
+      return false;
 #endif
     case ocr0:
 #if defined(CR0)
       return doSetUnset (&t->c_oflag, CR0, b);
 #else
-      return 0;
+      return false;
 #endif
     case ocr1:
 #if defined(CR1)
       return doSetUnset (&t->c_oflag, CR1, b);
 #else
-      return 0;
+      return false;
 #endif
     case ocr2:
 #if defined(CR2)
       return doSetUnset (&t->c_oflag, CR2, b);
 #else
-      return 0;
+      return false;
 #endif
     case ocr3:
 #if defined(CR3)
       return doSetUnset (&t->c_oflag, CR3, b);
 #else
-      return 0;
+      return false;
 #endif
     case otab0:
 #if defined(TAB0)
       return doSetUnset (&t->c_oflag, TAB0, b);
 #else
-      return 0;
+      return false;
 #endif
     case otab1:
 #if defined(TAB1)
       return doSetUnset (&t->c_oflag, TAB1, b);
 #else
-      return 0;
+      return false;
 #endif
     case otab2:
 #if defined(TAB2)
       return doSetUnset (&t->c_oflag, TAB2, b);
 #else
-      return 0;
+      return false;
 #endif
     case otab3:
 #if defined(TAB3)
       return doSetUnset (&t->c_oflag, TAB3, b);
 #else
-      return 0;
+      return false;
 #endif
     case obs0:
 #if defined(BS0)
       return doSetUnset (&t->c_oflag, BS0, b);
 #else
-      return 0;
+      return false;
 #endif
     case obs1:
 #if defined(BS1)
       return doSetUnset (&t->c_oflag, BS1, b);
 #else
-      return 0;
+      return false;
 #endif
     case off0:
 #if defined(FF0)
       return doSetUnset (&t->c_oflag, FF0, b);
 #else
-      return 0;
+      return false;
 #endif
     case off1:
 #if defined(FF1)
       return doSetUnset (&t->c_oflag, FF1, b);
 #else
-      return 0;
+      return false;
 #endif
     case ovt0:
 #if defined(VT0)
       return doSetUnset (&t->c_oflag, VT0, b);
 #else
-      return 0;
+      return false;
 #endif
     case ovt1:
 #if defined(VT1)
       return doSetUnset (&t->c_oflag, VT1, b);
 #else
-      return 0;
+      return false;
 #endif
     case b0:
 #if defined(B0)
       return doSetUnset (&t->c_cflag, B0, b);
 #else
-      return 0;
+      return false;
 #endif
     case b50:
 #if defined(B50)
       return doSetUnset (&t->c_cflag, B50, b);
 #else
-      return 0;
+      return false;
 #endif
     case b75:
 #if defined(B75)
       return doSetUnset (&t->c_cflag, B75, b);
 #else
-      return 0;
+      return false;
 #endif
     case b110:
 #if defined(B110)
       return doSetUnset (&t->c_cflag, B110, b);
 #else
-      return 0;
+      return false;
 #endif
     case b135:
 #if defined(B134)
       return doSetUnset (&t->c_cflag, B134, b);
 #else
-      return 0;
+      return false;
 #endif
     case b150:
 #if defined(B150)
       return doSetUnset (&t->c_cflag, B150, b);
 #else
-      return 0;
+      return false;
 #endif
     case b200:
 #if defined(B200)
       return doSetUnset (&t->c_cflag, B200, b);
 #else
-      return 0;
+      return false;
 #endif
     case b300:
 #if defined(B300)
       return doSetUnset (&t->c_cflag, B300, b);
 #else
-      return 0;
+      return false;
 #endif
     case b600:
 #if defined(B600)
       return doSetUnset (&t->c_cflag, B600, b);
 #else
-      return 0;
+      return false;
 #endif
     case b1200:
 #if defined(B1200)
       return doSetUnset (&t->c_cflag, B1200, b);
 #else
-      return 0;
+      return false;
 #endif
     case b1800:
 #if defined(B1800)
       return doSetUnset (&t->c_cflag, B1800, b);
 #else
-      return 0;
+      return false;
 #endif
     case b2400:
 #if defined(B2400)
       return doSetUnset (&t->c_cflag, B2400, b);
 #else
-      return 0;
+      return false;
 #endif
     case b4800:
 #if defined(B4800)
       return doSetUnset (&t->c_cflag, B4800, b);
 #else
-      return 0;
+      return false;
 #endif
     case b9600:
 #if defined(B9600)
       return doSetUnset (&t->c_cflag, B9600, b);
 #else
-      return 0;
+      return false;
 #endif
     case b19200:
 #if defined(B19200)
       return doSetUnset (&t->c_cflag, B19200, b);
 #else
-      return 0;
+      return false;
 #endif
     case b38400:
 #if defined(B38400)
       return doSetUnset (&t->c_cflag, B38400, b);
 #else
-      return 0;
+      return false;
 #endif
     case b57600:
 #if defined(B57600)
       return doSetUnset (&t->c_cflag, B57600, b);
 #else
-      return 0;
+      return false;
 #endif
     case b115200:
 #if defined(B115200)
       return doSetUnset (&t->c_cflag, B115200, b);
 #else
-      return 0;
+      return false;
 #endif
     case b240400:
 #if defined(B230400)
       return doSetUnset (&t->c_cflag, B230400, b);
 #else
-      return 0;
+      return false;
 #endif
     case b460800:
 #if defined(B460800)
       return doSetUnset (&t->c_cflag, B460800, b);
 #else
-      return 0;
+      return false;
 #endif
     case b500000:
 #if defined(B500000)
       return doSetUnset (&t->c_cflag, B500000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b576000:
 #if defined(B576000)
       return doSetUnset (&t->c_cflag, B576000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b921600:
 #if defined(B921600)
       return doSetUnset (&t->c_cflag, B921600, b);
 #else
-      return 0;
+      return false;
 #endif
     case b1000000:
 #if defined(B1000000)
       return doSetUnset (&t->c_cflag, B1000000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b1152000:
 #if defined(B1152000)
       return doSetUnset (&t->c_cflag, B1152000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b1500000:
 #if defined(B1500000)
       return doSetUnset (&t->c_cflag, B1500000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b2000000:
 #if defined(B2000000)
       return doSetUnset (&t->c_cflag, B2000000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b2500000:
 #if defined(B2500000)
       return doSetUnset (&t->c_cflag, B2500000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b3000000:
 #if defined(B3000000)
       return doSetUnset (&t->c_cflag, B3000000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b3500000:
 #if defined(B3500000)
       return doSetUnset (&t->c_cflag, B3500000, b);
 #else
-      return 0;
+      return false;
 #endif
     case b4000000:
 #if defined(B4000000)
       return doSetUnset (&t->c_cflag, B4000000, b);
 #else
-      return 0;
+      return false;
 #endif
     case maxbaud:
 #if defined(__MAX_BAUD)
       return doSetUnset (&t->c_cflag, __MAX_BAUD, b);
 #else
-      return 0;
+      return false;
 #endif
     case crtscts:
 #if defined(CRTSCTS)
       return doSetUnset (&t->c_cflag, CRTSCTS, b);
 #else
-      return 0;
+      return false;
 #endif
     case cs5:
 #if defined(CS5)
       return doSetUnset (&t->c_cflag, CS5, b);
 #else
-      return 0;
+      return false;
 #endif
     case cs6:
 #if defined(CS6)
       return doSetUnset (&t->c_cflag, CS6, b);
 #else
-      return 0;
+      return false;
 #endif
     case cs7:
 #if defined(CS7)
       return doSetUnset (&t->c_cflag, CS7, b);
 #else
-      return 0;
+      return false;
 #endif
     case cs8:
 #if defined(CS8)
       return doSetUnset (&t->c_cflag, CS8, b);
 #else
-      return 0;
+      return false;
 #endif
     case cstopb:
 #if defined(CSTOPB)
       return doSetUnset (&t->c_cflag, CSTOPB, b);
 #else
-      return 0;
+      return false;
 #endif
     case cread:
 #if defined(CREAD)
       return doSetUnset (&t->c_cflag, CREAD, b);
 #else
-      return 0;
+      return false;
 #endif
     case parenb:
 #if defined(PARENB)
       return doSetUnset (&t->c_cflag, PARENB, b);
 #else
-      return 0;
+      return false;
 #endif
     case parodd:
 #if defined(PARODD)
       return doSetUnset (&t->c_cflag, PARODD, b);
 #else
-      return 0;
+      return false;
 #endif
     case hupcl:
 #if defined(HUPCL)
       return doSetUnset (&t->c_cflag, HUPCL, b);
 #else
-      return 0;
+      return false;
 #endif
     case clocal:
 #if defined(CLOCAL)
       return doSetUnset (&t->c_cflag, CLOCAL, b);
 #else
-      return 0;
+      return false;
 #endif
     case lisig:
 #if defined(ISIG)
       return doSetUnset (&t->c_lflag, ISIG, b);
 #else
-      return 0;
+      return false;
 #endif
     case licanon:
 #if defined(ICANON)
       return doSetUnset (&t->c_lflag, ICANON, b);
 #else
-      return 0;
+      return false;
 #endif
     case lxcase:
 #if defined(XCASE)
       return doSetUnset (&t->c_lflag, XCASE, b);
 #else
-      return 0;
+      return false;
 #endif
     case lecho:
 #if defined(ECHO)
       return doSetUnset (&t->c_lflag, ECHO, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechoe:
 #if defined(ECHOE)
       return doSetUnset (&t->c_lflag, ECHOE, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechok:
 #if defined(ECHOK)
       return doSetUnset (&t->c_lflag, ECHOK, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechonl:
 #if defined(ECHONL)
       return doSetUnset (&t->c_lflag, ECHONL, b);
 #else
-      return 0;
+      return false;
 #endif
     case lnoflsh:
 #if defined(NOFLSH)
       return doSetUnset (&t->c_lflag, NOFLSH, b);
 #else
-      return 0;
+      return false;
 #endif
     case ltopstop:
 #if defined(TOSTOP)
       return doSetUnset (&t->c_lflag, TOSTOP, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechoctl:
 #if defined(ECHOCTL)
       return doSetUnset (&t->c_lflag, ECHOCTL, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechoprt:
 #if defined(ECHOPRT)
       return doSetUnset (&t->c_lflag, ECHOPRT, b);
 #else
-      return 0;
+      return false;
 #endif
     case lechoke:
 #if defined(ECHOKE)
       return doSetUnset (&t->c_lflag, ECHOKE, b);
 #else
-      return 0;
+      return false;
 #endif
     case lflusho:
 #if defined(FLUSHO)
       return doSetUnset (&t->c_lflag, FLUSHO, b);
 #else
-      return 0;
+      return false;
 #endif
     case lpendin:
 #if defined(PENDIN)
       return doSetUnset (&t->c_lflag, PENDIN, b);
 #else
-      return 0;
+      return false;
 #endif
     case liexten:
 #if defined(IEXTEN)
       return doSetUnset (&t->c_lflag, IEXTEN, b);
 #else
-      return 0;
+      return false;
 #endif
     }
-  return 0;
+  return false;
 }
 
-/* GetChar - sets a CHAR, ch, value from, t, and returns TRUE if this
+/* GetChar sets a CHAR ch value from t and returns true/false if this
    value is supported.  */
 
-int
-EXPORT (GetChar) (struct termios *t, ControlChar c, char *ch)
+bool
+EXPORT (GetChar) (termios_TERMIOS _t, termios_ControlChar _c, char *ch)
 {
+  ControlChar c = (ControlChar) _c;
+  struct termios *t = (termios *)_t;
   switch (c)
     {
 
     case vintr:
 #if defined(VINTR)
       *ch = t->c_cc[VINTR];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vquit:
 #if defined(VQUIT)
       *ch = t->c_cc[VQUIT];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case verase:
 #if defined(VERASE)
       *ch = t->c_cc[VERASE];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vkill:
 #if defined(VKILL)
       *ch = t->c_cc[VKILL];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veof:
 #if defined(VEOF)
       *ch = t->c_cc[VEOF];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vtime:
 #if defined(VTIME)
       *ch = t->c_cc[VTIME];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vmin:
 #if defined(VMIN)
       *ch = t->c_cc[VMIN];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vswtc:
 #if defined(VSWTC)
       *ch = t->c_cc[VSWTC];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vstart:
 #if defined(VSTART)
       *ch = t->c_cc[VSTART];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vstop:
 #if defined(VSTOP)
       *ch = t->c_cc[VSTOP];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vsusp:
 #if defined(VSUSP)
       *ch = t->c_cc[VSUSP];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veol:
 #if defined(VEOL)
       *ch = t->c_cc[VEOL];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vreprint:
 #if defined(VREPRINT)
       *ch = t->c_cc[VREPRINT];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vdiscard:
 #if defined(VDISCARD)
       *ch = t->c_cc[VDISCARD];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vwerase:
 #if defined(VWERASE)
       *ch = t->c_cc[VWERASE];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vlnext:
 #if defined(VLNEXT)
       *ch = t->c_cc[VLNEXT];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veol2:
 #if defined(VEOL2)
       *ch = t->c_cc[VEOL2];
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     default:
-      return 0;
+      return false;
     }
 }
 
-/* SetChar - sets a CHAR value in, t, and returns TRUE if, c, is
+/* SetChar sets a CHAR value in t and returns true/false if c is
    supported.  */
 
-int
-EXPORT (SetChar) (struct termios *t, ControlChar c, char ch)
+bool
+EXPORT (SetChar) (termios_TERMIOS _t, termios_ControlChar _c, char ch)
 {
+  ControlChar c = (ControlChar) _c;
+  struct termios *t = (termios *)_t;
   switch (c)
     {
 
     case vintr:
 #if defined(VINTR)
       t->c_cc[VINTR] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vquit:
 #if defined(VQUIT)
       t->c_cc[VQUIT] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case verase:
 #if defined(VERASE)
       t->c_cc[VERASE] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vkill:
 #if defined(VKILL)
       t->c_cc[VKILL] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veof:
 #if defined(VEOF)
       t->c_cc[VEOF] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vtime:
 #if defined(VTIME)
       t->c_cc[VTIME] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vmin:
 #if defined(VMIN)
       t->c_cc[VMIN] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vswtc:
 #if defined(VSWTC)
       t->c_cc[VSWTC] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vstart:
 #if defined(VSTART)
       t->c_cc[VSTART] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vstop:
 #if defined(VSTOP)
       t->c_cc[VSTOP] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vsusp:
 #if defined(VSUSP)
       t->c_cc[VSUSP] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veol:
 #if defined(VEOL)
       t->c_cc[VEOL] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vreprint:
 #if defined(VREPRINT)
       t->c_cc[VREPRINT] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vdiscard:
 #if defined(VDISCARD)
       t->c_cc[VDISCARD] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vwerase:
 #if defined(VWERASE)
       t->c_cc[VWERASE] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case vlnext:
 #if defined(VLNEXT)
       t->c_cc[VLNEXT] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     case veol2:
 #if defined(VEOL2)
       t->c_cc[VEOL2] = ch;
-      return 1;
+      return true;
 #else
-      return 0;
+      return false;
 #endif
     default:
-      return 0;
+      return false;
     }
 }
 
diff --git a/gcc/m2/pge-boot/m2rts.h b/gcc/m2/pge-boot/m2rts.h
index fe9745b1aa6..d8bac68fe6b 100644
--- a/gcc/m2/pge-boot/m2rts.h
+++ b/gcc/m2/pge-boot/m2rts.h
@@ -24,23 +24,31 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-
-typedef void (*proc_con) (int, char **, char **);
-typedef void (*proc_dep) (void);
+#ifdef M2_MC
+/* These type definitions match those used by mc, they are defined differently
+   to satisfy -Wodr when building from the mc translated versions of m2
+   source.  */
+#include "GM2RTS.h"
+#else
+/* These type definitions match those used by cc1gm2, they will be the same
+   sizeof as those above (and also for all their dependants).  */
+typedef void (*M2RTS_ArgCVEnvP) (int, char **, char **);
+typedef void (*PROC) (void);
+#endif
 
 #define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep) \
   M2RTS_RegisterModule (reinterpret_cast <void *> (const_cast <char *> (MODNAME)), \
 			reinterpret_cast <void *> (const_cast <char *> (LIBNAME)), \
 			init, fini, dep)
 
-extern "C" void M2RTS_RequestDependant (const char *modulename, const char *dependancy);
+extern "C" void M2RTS_RequestDependant (const void *modulename, const void *dependancy);
 extern "C" void M2RTS_RegisterModule (void *modulename, void *libname,
-				      proc_con init, proc_con fini, proc_dep dependencies);
+				      M2RTS_ArgCVEnvP init, M2RTS_ArgCVEnvP fini, PROC dependencies);
 extern "C" void _M2_M2RTS_init (void);
 
-extern "C" void M2RTS_ConstructModules (const char *,
+extern "C" void M2RTS_ConstructModules (const void *,
 					int argc, char *argv[], char *envp[]);
 extern "C" void M2RTS_Terminate (void);
 extern "C" void M2RTS_DeconstructModules (void);
 
-extern "C" void M2RTS_Halt (const char *, int, const char *, const char *) __attribute__ ((noreturn));
+extern "C" void M2RTS_Halt (const char *, const char *, const char *, int) __attribute__ ((noreturn));

commit bead6de23ecc75965f7c74a1f05539e30bd36ee0
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Nov 29 16:36:14 2024 +0000

    [PATCH] PR modula2/116181: m2rts fix -Wodr warning
    
    This patch fixes the -Wodr warning seen in pge-boot/m2rts.h
    when building pge.
    
    gcc/m2/ChangeLog:
    
            PR modula2/116181
            * pge-boot/GM2RTS.h: Regenerate.
            * pge-boot/m2rts.h: Ditto.
    
    (cherry picked from commit 87ce8172f0bf649a8a79ef7481fb3bf35882083f)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/pge-boot/GM2RTS.h b/gcc/m2/pge-boot/GM2RTS.h
index 4186c8f25e4..055cc95675b 100644
--- a/gcc/m2/pge-boot/GM2RTS.h
+++ b/gcc/m2/pge-boot/GM2RTS.h
@@ -54,11 +54,6 @@ typedef struct M2RTS_ArgCVEnvP_p M2RTS_ArgCVEnvP;
 typedef void (*M2RTS_ArgCVEnvP_t) (int, void *, void *);
 struct M2RTS_ArgCVEnvP_p { M2RTS_ArgCVEnvP_t proc; };
 
-#define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep) \
-  M2RTS_RegisterModule (reinterpret_cast <void *> (const_cast <char *> (MODNAME)), \
-			reinterpret_cast <void *> (const_cast <char *> (LIBNAME)), \
-			init, fini, dep)
-
 EXTERN void M2RTS_ConstructModules (void * applicationmodule, void * libname, void * overrideliborder, int argc, void * argv, void * envp);
 EXTERN void M2RTS_DeconstructModules (void * applicationmodule, void * libname, int argc, void * argv, void * envp);
 
@@ -68,10 +63,7 @@ EXTERN void M2RTS_DeconstructModules (void * applicationmodule, void * libname,
                     explored to determine initialization order.
 */
 
-EXTERN void M2RTS_RegisterModule (void *name, void *libname,
-				  M2RTS_ArgCVEnvP init,
-				  M2RTS_ArgCVEnvP fini,
-				  PROC dependencies);
+EXTERN void M2RTS_RegisterModule (void * name, void * libname, M2RTS_ArgCVEnvP init, M2RTS_ArgCVEnvP fini, PROC dependencies);
 
 /*
    RequestDependant - used to specify that modulename is dependant upon
diff --git a/gcc/m2/pge-boot/m2rts.h b/gcc/m2/pge-boot/m2rts.h
index d8bac68fe6b..df6cbcb2c8d 100644
--- a/gcc/m2/pge-boot/m2rts.h
+++ b/gcc/m2/pge-boot/m2rts.h
@@ -24,31 +24,15 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-#ifdef M2_MC
-/* These type definitions match those used by mc, they are defined differently
-   to satisfy -Wodr when building from the mc translated versions of m2
-   source.  */
 #include "GM2RTS.h"
-#else
-/* These type definitions match those used by cc1gm2, they will be the same
-   sizeof as those above (and also for all their dependants).  */
-typedef void (*M2RTS_ArgCVEnvP) (int, char **, char **);
-typedef void (*PROC) (void);
-#endif
 
+#ifdef MC_M2
+/* mc sources do not register their init fini functions as they are
+   initialized by a static scaffold (called by main).  */
+#define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep)
+#else
 #define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep) \
   M2RTS_RegisterModule (reinterpret_cast <void *> (const_cast <char *> (MODNAME)), \
 			reinterpret_cast <void *> (const_cast <char *> (LIBNAME)), \
 			init, fini, dep)
-
-extern "C" void M2RTS_RequestDependant (const void *modulename, const void *dependancy);
-extern "C" void M2RTS_RegisterModule (void *modulename, void *libname,
-				      M2RTS_ArgCVEnvP init, M2RTS_ArgCVEnvP fini, PROC dependencies);
-extern "C" void _M2_M2RTS_init (void);
-
-extern "C" void M2RTS_ConstructModules (const void *,
-					int argc, char *argv[], char *envp[]);
-extern "C" void M2RTS_Terminate (void);
-extern "C" void M2RTS_DeconstructModules (void);
-
-extern "C" void M2RTS_Halt (const char *, const char *, const char *, int) __attribute__ ((noreturn));
+#endif

commit 59f5d4ef99702619d94b475de06bb937fa6d22af
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Nov 29 18:34:33 2024 +0000

    [PATCH] PR modula2/116557 Remove physical address from the GPL header comment
    
    This patch removes the physical address from all the header comments
    in the m2 subdirectory.  The physical address is replaced with the
    text "You should have received a copy of the GNU General Public License
    along with GCC; see the file COPYING3.  If not see
    <http://www.gnu.org/licenses/>." instead.
    
    gcc/m2/ChangeLog:
    
            PR modula2/116557
            * gm2-lang.cc: Replace physical address with URL in GPL header.
            * gm2-lang.h: Ditto.
            * images/LICENSE.IMG: Ditto.
            * m2-tree.def: Ditto.
            * mc-boot/GIndexing.cc: Ditto.
            * mc-boot/Gkeyc.cc: Ditto.
            * mc-boot/Glists.cc: Ditto.
            * mc-boot/GmcComp.cc: Ditto.
            * mc-boot/GmcDebug.cc: Ditto.
            * mc-boot/GmcFileName.cc: Ditto.
            * mc-boot/GmcMetaError.cc: Ditto.
            * mc-boot/GmcOptions.cc: Ditto.
            * mc-boot/GmcPreprocess.cc: Ditto.
            * mc-boot/GmcPretty.cc: Ditto.
            * mc-boot/GmcPrintf.cc: Ditto.
            * mc-boot/GmcQuiet.cc: Ditto.
            * mc-boot/GmcReserved.cc: Ditto.
            * mc-boot/GmcSearch.cc: Ditto.
            * mc-boot/GmcStack.cc: Ditto.
            * mc/Indexing.mod: Ditto.
            * mc/keyc.mod: Ditto.
            * mc/lists.mod: Ditto.
            * mc/mcComp.mod: Ditto.
            * mc/mcDebug.mod: Ditto.
            * mc/mcFileName.mod: Ditto.
            * mc/mcMetaError.mod: Ditto.
            * mc/mcOptions.mod: Ditto.
            * mc/mcPreprocess.mod: Ditto.
            * mc/mcPretty.mod: Ditto.
            * mc/mcPrintf.mod: Ditto.
            * mc/mcQuiet.mod: Ditto.
            * mc/mcReserved.mod: Ditto.
            * mc/mcSearch.mod: Ditto.
            * mc/mcStack.mod: Ditto.
            * tools-src/buildpg: Ditto.
            * tools-src/calcpath: Ditto.
            * tools-src/checkmeta.py: Ditto.
            * tools-src/def2doc.py: Ditto.
            * tools-src/makeSystem: Ditto.
            * tools-src/tidydates.py: Ditto.
    
    (cherry picked from commit 78dc2e2575c602c62d50a9522ea976020a5bf7aa)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-lang.cc b/gcc/m2/gm2-lang.cc
index e31a6c437ec..eb182cc240c 100644
--- a/gcc/m2/gm2-lang.cc
+++ b/gcc/m2/gm2-lang.cc
@@ -16,9 +16,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Modula-2; see the file COPYING.  If not, write to the
-Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA.  */
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #define INCLUDE_VECTOR
 #include "gm2-gcc/gcc-consolidation.h"
diff --git a/gcc/m2/gm2-lang.h b/gcc/m2/gm2-lang.h
index 224ea99dea6..4ba46c92448 100644
--- a/gcc/m2/gm2-lang.h
+++ b/gcc/m2/gm2-lang.h
@@ -15,9 +15,9 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
 
 #if !defined(GM2_LANG_H)
 #  define GM2_LANG_H
diff --git a/gcc/m2/images/LICENSE.IMG b/gcc/m2/images/LICENSE.IMG
index fd7594e1a17..b403cbf887a 100755
--- a/gcc/m2/images/LICENSE.IMG
+++ b/gcc/m2/images/LICENSE.IMG
@@ -15,6 +15,5 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Modula-2; see the file COPYING.  If not, write to the
-Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA.  */
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
diff --git a/gcc/m2/m2-tree.def b/gcc/m2/m2-tree.def
index 0ec62a52394..dbfdb344c2c 100644
--- a/gcc/m2/m2-tree.def
+++ b/gcc/m2/m2-tree.def
@@ -16,9 +16,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Modula-2; see the file COPYING.  If not, write to the
-Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA.  */
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 /* A SET_TYPE type.  */
 DEFTREECODE (SET_TYPE, "set_type", tcc_type, 0)
diff --git a/gcc/m2/mc-boot/GIndexing.cc b/gcc/m2/mc-boot/GIndexing.cc
index 3da42f68d71..7812ebb07a6 100644
--- a/gcc/m2/mc-boot/GIndexing.cc
+++ b/gcc/m2/mc-boot/GIndexing.cc
@@ -14,10 +14,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
@@ -294,7 +293,7 @@ extern "C" void Indexing_PutIndice (Indexing_Index i, unsigned int n, void * a)
             }
           if (oldSize != static_cast<Indexing_Index__opaque> (i)->ArraySize)
             {
-              /* 
+              /*
                IF Debug
                THEN
                   printf2('increasing memory hunk from %d to %d
diff --git a/gcc/m2/mc-boot/Gkeyc.cc b/gcc/m2/mc-boot/Gkeyc.cc
index 4a15f7b7371..15f03509989 100644
--- a/gcc/m2/mc-boot/Gkeyc.cc
+++ b/gcc/m2/mc-boot/Gkeyc.cc
@@ -14,10 +14,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/Glists.cc b/gcc/m2/mc-boot/Glists.cc
index dbbcd0eeb66..e33c91d8500 100644
--- a/gcc/m2/mc-boot/Glists.cc
+++ b/gcc/m2/mc-boot/Glists.cc
@@ -14,10 +14,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/GmcComp.cc b/gcc/m2/mc-boot/GmcComp.cc
index 02877639ad7..f7baf21af89 100644
--- a/gcc/m2/mc-boot/GmcComp.cc
+++ b/gcc/m2/mc-boot/GmcComp.cc
@@ -12,9 +12,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/GmcDebug.cc b/gcc/m2/mc-boot/GmcDebug.cc
index 154ae6926c1..0085384f2c9 100644
--- a/gcc/m2/mc-boot/GmcDebug.cc
+++ b/gcc/m2/mc-boot/GmcDebug.cc
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/GmcFileName.cc b/gcc/m2/mc-boot/GmcFileName.cc
index 6999113a85e..3b516594c59 100644
--- a/gcc/m2/mc-boot/GmcFileName.cc
+++ b/gcc/m2/mc-boot/GmcFileName.cc
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/GmcMetaError.cc b/gcc/m2/mc-boot/GmcMetaError.cc
index d3b0fab9cbc..af64604534e 100644
--- a/gcc/m2/mc-boot/GmcMetaError.cc
+++ b/gcc/m2/mc-boot/GmcMetaError.cc
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
@@ -866,7 +866,7 @@ static DynamicStrings_String symDesc (decl_node n, DynamicStrings_String o)
   else if (decl_isConstSet (n))
     {
       /* avoid dangling else.  */
-      /* 
+      /*
    ELSIF IsConstructor(n)
    THEN
       RETURN( ConCatWord (o, Mark (InitString ('constructor'))) )
diff --git a/gcc/m2/mc-boot/GmcOptions.cc b/gcc/m2/mc-boot/GmcOptions.cc
index 99e7fb9700a..5a060604709 100644
--- a/gcc/m2/mc-boot/GmcOptions.cc
+++ b/gcc/m2/mc-boot/GmcOptions.cc
@@ -11,10 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/GmcPreprocess.cc b/gcc/m2/mc-boot/GmcPreprocess.cc
index 6f7679ef323..942c8b1754b 100644
--- a/gcc/m2/mc-boot/GmcPreprocess.cc
+++ b/gcc/m2/mc-boot/GmcPreprocess.cc
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/GmcPretty.cc b/gcc/m2/mc-boot/GmcPretty.cc
index 10b262b8979..0bffa1ff6fe 100644
--- a/gcc/m2/mc-boot/GmcPretty.cc
+++ b/gcc/m2/mc-boot/GmcPretty.cc
@@ -11,10 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
@@ -360,7 +359,7 @@ extern "C" unsigned int mcPretty_getcurline (mcPretty_pretty s)
 
 extern "C" void mcPretty_setNeedSpace (mcPretty_pretty s)
 {
-  /* 
+  /*
    setneedSpace - sets needSpace flag to TRUE.
   */
   static_cast<mcPretty_pretty__opaque> (s)->needsSpace = true;
diff --git a/gcc/m2/mc-boot/GmcPrintf.cc b/gcc/m2/mc-boot/GmcPrintf.cc
index f95ee136e5f..e91e55acc14 100644
--- a/gcc/m2/mc-boot/GmcPrintf.cc
+++ b/gcc/m2/mc-boot/GmcPrintf.cc
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/GmcQuiet.cc b/gcc/m2/mc-boot/GmcQuiet.cc
index b9d4e22110a..d0f2f009b2a 100644
--- a/gcc/m2/mc-boot/GmcQuiet.cc
+++ b/gcc/m2/mc-boot/GmcQuiet.cc
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/GmcReserved.cc b/gcc/m2/mc-boot/GmcReserved.cc
index af7363a0aa6..a42f1b1b0ac 100644
--- a/gcc/m2/mc-boot/GmcReserved.cc
+++ b/gcc/m2/mc-boot/GmcReserved.cc
@@ -11,10 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/GmcSearch.cc b/gcc/m2/mc-boot/GmcSearch.cc
index 7ebe597d67a..e1a2aa63e29 100644
--- a/gcc/m2/mc-boot/GmcSearch.cc
+++ b/gcc/m2/mc-boot/GmcSearch.cc
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc-boot/GmcStack.cc b/gcc/m2/mc-boot/GmcStack.cc
index 11ff03e407f..70f937b4299 100644
--- a/gcc/m2/mc-boot/GmcStack.cc
+++ b/gcc/m2/mc-boot/GmcStack.cc
@@ -11,10 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
 #include "system.h"
diff --git a/gcc/m2/mc/Indexing.mod b/gcc/m2/mc/Indexing.mod
index 4ea6084ebe1..f29a87f7a7a 100644
--- a/gcc/m2/mc/Indexing.mod
+++ b/gcc/m2/mc/Indexing.mod
@@ -13,10 +13,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE Indexing ;
 
diff --git a/gcc/m2/mc/keyc.mod b/gcc/m2/mc/keyc.mod
index ddb939c3ca4..4436a321225 100644
--- a/gcc/m2/mc/keyc.mod
+++ b/gcc/m2/mc/keyc.mod
@@ -13,10 +13,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE keyc ;
 
diff --git a/gcc/m2/mc/lists.mod b/gcc/m2/mc/lists.mod
index e08f47094d6..7d1c0f298d2 100644
--- a/gcc/m2/mc/lists.mod
+++ b/gcc/m2/mc/lists.mod
@@ -13,10 +13,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE lists ;
 
diff --git a/gcc/m2/mc/mcComp.mod b/gcc/m2/mc/mcComp.mod
index 30e0714a159..5eed1b8d90d 100644
--- a/gcc/m2/mc/mcComp.mod
+++ b/gcc/m2/mc/mcComp.mod
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcComp ;
 
diff --git a/gcc/m2/mc/mcDebug.mod b/gcc/m2/mc/mcDebug.mod
index 66517ba8a0e..8c31dc9fae8 100644
--- a/gcc/m2/mc/mcDebug.mod
+++ b/gcc/m2/mc/mcDebug.mod
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcDebug ;
 
diff --git a/gcc/m2/mc/mcFileName.mod b/gcc/m2/mc/mcFileName.mod
index c7db02196d3..9b26272136b 100644
--- a/gcc/m2/mc/mcFileName.mod
+++ b/gcc/m2/mc/mcFileName.mod
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcFileName ;
 
diff --git a/gcc/m2/mc/mcMetaError.mod b/gcc/m2/mc/mcMetaError.mod
index b9e9e4e9722..766a138aead 100644
--- a/gcc/m2/mc/mcMetaError.mod
+++ b/gcc/m2/mc/mcMetaError.mod
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcMetaError ;
 
diff --git a/gcc/m2/mc/mcOptions.mod b/gcc/m2/mc/mcOptions.mod
index cdea1f466bf..b24ae209045 100644
--- a/gcc/m2/mc/mcOptions.mod
+++ b/gcc/m2/mc/mcOptions.mod
@@ -11,10 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcOptions ;
 
diff --git a/gcc/m2/mc/mcPreprocess.mod b/gcc/m2/mc/mcPreprocess.mod
index 5f9a05035b0..834c7d2fe38 100644
--- a/gcc/m2/mc/mcPreprocess.mod
+++ b/gcc/m2/mc/mcPreprocess.mod
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcPreprocess ;
 
diff --git a/gcc/m2/mc/mcPretty.mod b/gcc/m2/mc/mcPretty.mod
index 8b9c2c95295..0e4f4418221 100644
--- a/gcc/m2/mc/mcPretty.mod
+++ b/gcc/m2/mc/mcPretty.mod
@@ -11,10 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcPretty ;
 
diff --git a/gcc/m2/mc/mcPrintf.mod b/gcc/m2/mc/mcPrintf.mod
index 39e011a5b42..af39ed09fc7 100644
--- a/gcc/m2/mc/mcPrintf.mod
+++ b/gcc/m2/mc/mcPrintf.mod
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcPrintf ;
 
diff --git a/gcc/m2/mc/mcQuiet.mod b/gcc/m2/mc/mcQuiet.mod
index 09882ea0111..f34888a05b0 100644
--- a/gcc/m2/mc/mcQuiet.mod
+++ b/gcc/m2/mc/mcQuiet.mod
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcQuiet ;
 
diff --git a/gcc/m2/mc/mcReserved.mod b/gcc/m2/mc/mcReserved.mod
index 921a4340c66..48e3d252cbc 100644
--- a/gcc/m2/mc/mcReserved.mod
+++ b/gcc/m2/mc/mcReserved.mod
@@ -11,10 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcReserved ;
 
diff --git a/gcc/m2/mc/mcSearch.mod b/gcc/m2/mc/mcSearch.mod
index 57b0da7b11a..1e043a2d430 100644
--- a/gcc/m2/mc/mcSearch.mod
+++ b/gcc/m2/mc/mcSearch.mod
@@ -11,9 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcSearch ;
 
diff --git a/gcc/m2/mc/mcStack.mod b/gcc/m2/mc/mcStack.mod
index 83c2d983ad4..c7c81149578 100644
--- a/gcc/m2/mc/mcStack.mod
+++ b/gcc/m2/mc/mcStack.mod
@@ -11,10 +11,9 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.
 
-You should have received a copy of the GNU General Public License along
-with gm2; see the file COPYING.  If not, write to the Free Software
-Foundation, 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA.  *)
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
 
 IMPLEMENTATION MODULE mcStack ;
 
diff --git a/gcc/m2/tools-src/buildpg b/gcc/m2/tools-src/buildpg
index 9d6b74e17fd..b049a08f144 100644
--- a/gcc/m2/tools-src/buildpg
+++ b/gcc/m2/tools-src/buildpg
@@ -14,9 +14,8 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Modula-2; see the file COPYING.  If not, write to the
-# Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with GNU Modula-2; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
 #
 
 # builds the pg.bnf from ppg.mod
diff --git a/gcc/m2/tools-src/calcpath b/gcc/m2/tools-src/calcpath
index 208c88bdab5..f51527a7772 100755
--- a/gcc/m2/tools-src/calcpath
+++ b/gcc/m2/tools-src/calcpath
@@ -17,9 +17,9 @@
 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 # for more details.
 #
-# You should have received a copy of the GNU General Public License along
-# with gm2; see the file COPYING.  If not, write to the Free Software
-# Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *)
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
 
 
 Usage () {
diff --git a/gcc/m2/tools-src/checkmeta.py b/gcc/m2/tools-src/checkmeta.py
index c62ac19759e..f109bc058cf 100644
--- a/gcc/m2/tools-src/checkmeta.py
+++ b/gcc/m2/tools-src/checkmeta.py
@@ -17,9 +17,8 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Modula-2; see the file COPYING.  If not, write to the
-# Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
 
 import argparse
 import os
diff --git a/gcc/m2/tools-src/def2doc.py b/gcc/m2/tools-src/def2doc.py
index 5f3aefbd359..3ccf32450d0 100644
--- a/gcc/m2/tools-src/def2doc.py
+++ b/gcc/m2/tools-src/def2doc.py
@@ -17,9 +17,8 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Modula-2; see the file COPYING.  If not, write to the
-# Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
 #
 
 import argparse
diff --git a/gcc/m2/tools-src/makeSystem b/gcc/m2/tools-src/makeSystem
index 393713eb873..2e78efb918a 100644
--- a/gcc/m2/tools-src/makeSystem
+++ b/gcc/m2/tools-src/makeSystem
@@ -17,9 +17,9 @@
 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 # for more details.
 #
-# You should have received a copy of the GNU General Public License along
-# with gm2; see the file COPYING.  If not, write to the Free Software
-# Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *)
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
 
 
 Usage () {
diff --git a/gcc/m2/tools-src/tidydates.py b/gcc/m2/tools-src/tidydates.py
index 0fa28c9f204..ae381126143 100644
--- a/gcc/m2/tools-src/tidydates.py
+++ b/gcc/m2/tools-src/tidydates.py
@@ -17,9 +17,8 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Modula-2; see the file COPYING.  If not, write to the
-# Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with GCC; see the file COPYING3.  If not see
+# <http://www.gnu.org/licenses/>.
 
 import os
 import pathlib

commit 2e117b92386fb78a09ece9e78f66690722f0abc5
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Nov 29 22:34:49 2024 +0000

    [PATCH] PR modula2/116181 Use GCC tree location_t and separate pointer types
    
    This patch fixes all remaining -Wodr warnings in the modula-2 front end.
    It removes the m2 Tree and m2 Location definitions and uses tree and
    location_t throughout.  This allows the bootstrap tool mc to pick up the
    GCC definitions for these data types (for the C translation of m2 sources).
    
    The patch introduces a new module CDataTypes which contain two pointer
    types: CharStar and ConstCharStar.  These map onto their C counterparts
    when processed by mc however currently gm2 treats them as ADDRESS.
    It might be sensible to have the gm2 versions of these data types
    implemented though a builtin module in the future.
    
    gcc/m2/ChangeLog:
    
            PR modula2/116181
            * Make-lang.in (GM2-GCC-DEFS): Add gcctypes.def and
            CDataTypes.def.
            (MC-LIB-DEFS): Add CDataTypes.def.
            * Make-maintainer.in (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o):
            Change include path to pge-boot.
            (m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.
            (m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
            (GM2PATH): Add -I$(srcdir)/m2/gm2-gcc.
            (m2/mc-boot-gen/$(SRC_PREFIX)%.h): Add -I$(srcdir)/m2/gm2-gcc.
            (m2/mc-boot-gen/$(SRC_PREFIX)%.cc): Ditto.
            * gm2-compiler/M2ALU.def (PushIntegerTree): Replace Tree with tree.
            (PopIntegerTree): Ditto.
            (PushRealTree): Ditto.
            (PopRealTree): Ditto.
            (PushComplexTree): Ditto.
            (PopComplexTree): Ditto.
            (PushSetTree): Ditto.
            (PopSetTree): Ditto.
            (PopConstructorTree): Ditto.
            (ConstructSetConstant): Ditto.
            (BuildRange): Ditto.
            (CheckOrResetOverflow): Ditto.
            (PushTypeOfTree): Ditto.
            * gm2-compiler/M2ALU.mod (Tree): Replace with ...
            (tree): ... this.
            (gcctypes): Import location_t and tree.
            (m2linemap): Remove import of location_t.
            * gm2-compiler/M2Base.def (m2linemap): Replace with ...
            (gcctypes): ... this.
            * gm2-compiler/M2Base.mod (gcctypes): Import of location_t.
            (m2linemap): Remove import of location_t.
            * gm2-compiler/M2Bitset.mod (m2tree): Remove import of Tree.
            * gm2-compiler/M2CaseList.mod (gcctypes): Import tree.
            (m2tree): Remove import of Tree.
            (Tree): Replace with ...
            (tree): ... this.
            * gm2-compiler/M2Emit.def (gcctypes): Import location_t.
            * gm2-compiler/M2GCCDeclare.def (gcctypes): Import tree.
            (PromoteToString): Replace Tree with tree.
            (PromoteToCString): Ditto.
            (ConstantKnownAndUsed): Ditto.
            * gm2-compiler/M2GCCDeclare.mod (gcctypes): Import tree.
            (m2tree): Remove import of Tree.
            (Tree): Replace with ...
            (tree): ... this.
            * gm2-compiler/M2GenGCC.def (gcctypes): Import tree.
            (m2tree): Remove import of Tree.
            (Tree): Replace with ...
            (tree): ... this.
            (GetHighFromUnbounded): Replace Tree with tree.
            (StringToChar): Ditto.
            (LValueToGenericPtr): Ditto.
            (ZConstToTypedConst): Ditto.
            (PrepareCopyString): Ditto.
            * gm2-compiler/M2GenGCC.mod (gcctypes): Import tree.
            (m2tree): Remove import of Tree.
            (Tree): Replace with ...
            (tree): ... this.
            * gm2-compiler/M2LangDump.def (gcctypes): Import tree.
            (m2tree): Remove import of Tree.
            (Tree): Replace with ...
            (tree): ... this.
            * gm2-compiler/M2LangDump.mod (Tree): Replace with ...
            (tree): ... this.
            * gm2-compiler/M2LexBuf.def (m2linemap): Replace with ...
            (gcctypes): ... this.
            * gm2-compiler/M2LexBuf.mod (m2linemap): Replace with ...
            (gcctypes): ... this.
            * gm2-compiler/M2Options.def (m2linemap): Replace with ...
            (gcctypes): ... this.
            * gm2-compiler/M2Options.mod (m2linemap): Replace with ...
            (gcctypes): ... this.
            * gm2-compiler/M2Range.def (m2linemap): Replace with ...
            (gcctypes): ... this.
            (CDataTypes): Import ConstCharStar.
            (CodeErrorCheck): Replace Tree with tree.
            (OverlapsRange): Ditto.
            (IsEqual): Ditto.
            (IsGreaterOrEqual): Ditto.
            (IsGreater): Ditto.
            (BuildIfCallWholeHandlerLoc): Replace Tree with tree.
            Replace ADDRESS with ConstCharStar.
            (BuildIfCallRealHandlerLoc): Ditto.
            (GetMinMax): Ditto.
            * gm2-compiler/M2Range.mod (m2tree): Remove Tree.
            (CodeErrorCheck): Replace Tree with tree.
            (OverlapsRange): Ditto.
            (IsEqual): Ditto.
            (IsGreaterOrEqual): Ditto.
            (IsGreater): Ditto.
            (GetMinMax): Ditto.
            (BuildIfCallWholeHandlerLoc): Replace Tree with tree.
            Replace ADDRESS with ConstCharStar.
            (BuildIfCallRealHandlerLoc): Ditto.
            * gm2-compiler/M2System.def (m2linemap): Replace with ...
            (gcctypes): ... this.
            * gm2-compiler/M2System.mod (m2linemap): Replace with ...
            (gcctypes): ... this.
            (CreateMinMaxFor): Replace Tree with tree.
            (CreateType): Ditto.
            (AttemptToCreateType): Ditto.
            (CreateSetType): Ditto.
            (AttemptToCreateSetType): Ditto.
            * gm2-compiler/P2SymBuild.mod (m2linemap): Replace with ...
            (gcctypes): ... this.
            * gm2-compiler/SymbolConversion.def (m2tree): Replace with ...
            (gcctypes): ... this.
            (Mod2Gcc): Replace Tree with tree.
            (Gcc2Mod): Ditto.
            (AddModGcc): Ditto.
            * gm2-compiler/SymbolConversion.mod (m2tree): Replace with ...
            (gcctypes): ... this.
            (Mod2Gcc): Replace Tree with tree.
            (Gcc2Mod): Ditto.
            (AddModGcc): Ditto.
            (Mod2GccWithoutGCCPoison): Ditto.
            * gm2-compiler/SymbolTable.def (m2tree): Replace with ...
            (gcctypes): ... this.
            (PutModuleFinallyFunction): Replace Tree with tree.
            (GetModuleFinallyFunction): Ditto.
            * gm2-compiler/SymbolTable.mod (m2tree): Replace with ...
            (gcctypes): ... this.
            (PutModuleFinallyFunction): Replace Tree with tree.
            (GetModuleFinallyFunction): Ditto.
            * gm2-compiler/m2flex.def (m2linemap): Replace with ...
            (gcctypes): ... this.
            * gm2-gcc/init.def (PerCompilationInit): Replace ADDRESS with ConstCharStar.
            (CDataTypes): Import ConstCharStar.
            * gm2-gcc/m2block.def (SYSTEM): Remove import.
            (CDataTypes): Import ConstCharStar.
            (m2linemap): Remove import.
            (m2tree): Remove import.
            (gcctypes): Import tree.
            (global_constant): Replace Tree with tree.
            (RememberInitModuleFunction): Ditto.
            (DumpGlobalConstants): Ditto.
            (RememberConstant): Ditto.
            (RememberType): Ditto.
            (pushDecl): Ditto.
            (popFunctionScope): Ditto.
            (pushFunctionScope): Ditto.
            (finishFunctionCode): Ditto.
            (finishFunctionDecl): Ditto.
            (GetErrorNode): Ditto.
            (includeDecl): Ditto.
            (GetGlobals): Ditto.
            (GetGlobalContext): Ditto.
            (begin_statement_list): Ditto.
            (push_statement_list): Ditto.
            (pop_statement_list): Ditto.
            (getLabel): Replace Tree with tree.
            Replace ADDRESS with ConstCharStar.
            * gm2-gcc/m2builtins.def (CDataTypes): Import ConstCharStar.
            (GetBuiltinConst): Replace Tree with tree.
            (GetBuiltinConstType): Ditto.
            (GetBuiltinTypeInfoType): Ditto.
            (GetBuiltinTypeInfo): Ditto.
            (BuiltinExists): Ditto.
            (BuildBuiltinTree): Ditto.
            (BuiltinMemCopy): Ditto.
            (BuiltinMemSet): Ditto.
            (BuiltInAlloca): Ditto.
            (BuiltInIsfinite): Ditto.
            * gm2-gcc/m2convert.def (CDataTypes): Import ConstCharStar.
            (ToWord): Ditto.
            (ToCardinal): Ditto.
            (ToInteger): Ditto.
            (ToBitset): Ditto.
            (ConvertToPtr): Ditto.
            (BuildConvert): Ditto.
            (ConvertConstantAndCheck): Ditto.
            (ConvertString): Ditto.
            (GenericToType): Ditto.
            * gm2-gcc/m2decl.cc (m2decl_BuildParameterDeclaration): Add
            const attribute.
            * gm2-gcc/m2decl.def (CDataTypes): Import ConstCharStar.
            (BuildModuleCtor): Ditto.
            (DeclareModuleCtor): Ditto.
            (DeclareM2linkForcedModuleInitOrder): Ditto.
            (DeclareM2linkStaticInitialization): Ditto.
            (BuildPtrToTypeString): Ditto.
            (BuildIntegerConstant): Ditto.
            (BuildStringConstantType): Ditto.
            (DeclareKnownVariable): Ditto.
            (DeclareKnownConstant): Ditto.
            (BuildParameterDeclaration): Ditto.
            (BuildEndFunctionDeclaration): Ditto.
            (RememberVariables): Ditto.
            (BuildConstLiteralNumber): Ditto.
            (BuildStringConstant): Ditto.
            (BuildCStringConstant): Ditto.
            (GetDeclContext): Ditto.
            * gm2-gcc/m2decl.h (m2decl_BuildParameterDeclaration): Add
            const attribute.
            * gm2-gcc/m2except.def (CDataTypes): Import ConstCharStar.
            (BuildThrow): Ditto.
            (BuildTryBegin): Ditto.
            (BuildTryEnd): Ditto.
            (BuildCatchBegin): Ditto.
            (BuildCatchEnd): Ditto.
            * gm2-gcc/m2expr.def (CDataTypes): Import ConstCharStar.
            (CSTIntToString): Ditto.
            (CSTIntToChar): Ditto.
            (CheckConstStrZtypeRange): Ditto.
            (CompareTrees): Ditto.
            (GetPointerOne): Ditto.
            (GetPointerZero): Ditto.
            (GetWordOne): Ditto.
            (GetWordZero): Ditto.
            (GetIntegerOne): Ditto.
            (GetIntegerZero): Ditto.
            (GetCardinalOne): Ditto.
            (GetCardinalZero): Ditto.
            (GetSizeOfInBits): Ditto.
            (GetSizeOf): Ditto.
            (BuildLogicalRotate): Ditto.
            (BuildLRRn): Ditto.
            (BuildLRLn): Ditto.
            (BuildMask): Ditto.
            (BuildMult): Ditto.
            (BuildMultCheck): Ditto.
            (BuildLRR): Ditto.
            (BuildLRL): Ditto.
            (BuildLogicalShift): Ditto.
            (BuildLSR): Ditto.
            (BuildLSL): Ditto.
            (BuildDivM2): Ditto.
            (BuildDivM2Check): Ditto.
            (BuildModM2): Ditto.
            (BuildModM2Check): Ditto.
            (BuildModFloor): Ditto.
            (BuildDivCeil): Ditto.
            (BuildModCeil): Ditto.
            (BuildDivFloor): Ditto.
            (BuildModTrunc): Ditto.
            (BuildDivTrunc): Ditto.
            (BuildDivTruncCheck): Ditto.
            (BuildRDiv): Ditto.
            (BuildSubCheck): Ditto.
            (BuildAddCheck): Ditto.
            (BuildSub): Ditto.
            (BuildAdd): Ditto.
            (FoldAndStrip): Ditto.
            (StringLength): Ditto.
            (TreeOverflow): Ditto.
            (RemoveOverflow): Ditto.
            (BuildCoerce): Ditto.
            (BuildTrunc): Ditto.
            (BuildNegate): Ditto.
            (BuildNegateCheck): Ditto.
            (BuildSetNegate): Ditto.
            (BuildTBitSize): Ditto.
            (BuildSize): Ditto.
            (BuildAddr): Ditto.
            (BuildOffset1): Ditto.
            (BuildOffset): Ditto.
            (BuildLogicalOrAddress): Ditto.
            (BuildLogicalOr): Ditto.
            (BuildLogicalAnd): Ditto.
            (BuildSymmetricDifference): Ditto.
            (BuildLogicalDifference): Ditto.
            (BuildLessThan): Ditto.
            (BuildGreaterThan): Ditto.
            (BuildLessThanOrEqual): Ditto.
            (BuildGreaterThanOrEqual): Ditto.
            (BuildEqualTo): Ditto.
            (BuildNotEqualTo): Ditto.
            (BuildIsSuperset): Ditto.
            (BuildIsNotSuperset): Ditto.
            (BuildIsSubset): Ditto.
            (BuildIsNotSubset): Ditto.
            (BuildIfConstInVar): Ditto.
            (BuildIfNotConstInVar): Ditto.
            (BuildIfVarInVar): Ditto.
            (BuildIfNotVarInVar): Ditto.
            (BuildForeachWordInSetDoIfExpr): Ditto.
            (BuildIfInRangeGoto): Ditto.
            (BuildIfNotInRangeGoto): Ditto.
            (BuildArray): Ditto.
            (BuildComponentRef): Ditto.
            (BuildIndirect): Ditto.
            (IsTrue): Ditto.
            (IsFalse): Ditto.
            (GetCstInteger): Ditto.
            (AreConstantsEqual): Ditto.
            (AreRealOrComplexConstantsEqual): Ditto.
            (DetermineSign): Ditto.
            (BuildCap): Ditto.
            (BuildAbs): Ditto.
            (BuildRe): Ditto.
            (BuildIm): Ditto.
            (BuildCmplx): Ditto.
            (BuildBinaryForeachWordDo): Ditto.
            (BuildBinarySetDo): Ditto.
            (ConstantExpressionWarning): Ditto.
            (BuildAddAddress): Ditto.
            (calcNbits): Ditto.
            (OverflowZType): Ditto.
            (BuildCondIfExpression): Ditto.
            * gm2-gcc/m2linemap.def (CDataTypes): Import ConstCharStar.
            * gm2-gcc/m2misc.def (m2tree): Replace with ...
            (gcctypes): ... this.
            (DebugTree): Replace Tree with tree.
            * gm2-gcc/m2pp.def (m2tree): Replace with ...
            (gcctypes): ... this.
            (DumpGimpleFd): Replace Tree with tree.
            * gm2-gcc/m2statement.cc (m2statement_BuildBuiltinCallTree):
            Remove unused location parameter.
            * gm2-gcc/m2statement.def (m2linemap): Replace with ...
            (gcctypes): ... this.
            (CDataTypes): Import CharStar.
            (DoJump): Replace Tree with tree.
            Replace ADDRESS with CharStar.
            (BuildStartFunctionCode): Replace Tree with tree.
            (BuildEndFunctionCode): Ditto.
            (BuildReturnValueCode): Ditto.
            (BuildAssignmentTree): Ditto.
            (BuildAssignmentStatement): Ditto.
            (BuildGoto): Ditto.
            (DeclareLabel): Ditto.
            (BuildIfThenDoEnd): Ditto.
            (BuildIfThenElseEnd): Ditto.
            (BuildParam): Ditto.
            (BuildFunctionCallTree): Ditto.
            (BuildProcedureCallTree): Ditto.
            (BuildIndirectProcedureCallTree): Ditto.
            (BuildFunctValue): Ditto.
            (BuildCall2): Ditto.
            (BuildCall3): Ditto.
            (SetLastFunction): Ditto.
            (GetLastFunction): Ditto.
            (GetParamTree): Ditto.
            (BuildTryFinally): Ditto.
            (BuildCleanUp): Ditto.
            (BuildAsm): Ditto.
            (BuildUnaryForeachWordDo): Ditto.
            (BuildExcludeVarConst): Ditto.
            (BuildExcludeVarVar): Ditto.
            (BuildIncludeVarConst): Ditto.
            (BuildIncludeVarVar): Ditto.
            (BuildStart): Ditto.
            (BuildEnd): Ditto.
            (BuildCallInner): Ditto.
            (BuildBuiltinCallTree):  Remove unused location parameter.
            * gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): Remove
            unused location parameter.
            * gm2-gcc/m2tree.def (gcctypes): Import tree.
            (IsAConstant): Replace Tree with tree.
            (IsOrdinal): Ditto.
            (IsTreeOverflow): Ditto.
            (skip_const_decl): Ditto.
            (skip_type_decl): Ditto.
            (is_type): Ditto.
            (is_array): Ditto.
            (is_var): Ditto.
            (debug_tree): Ditto.
            (IstreeOverflow): Ditto.
            * gm2-gcc/m2treelib.def (m2linemap): Replace with ...
            (gcctypes): ... this.
            (get_set_address_if_var): Ditto.
            (get_set_field_rhs): Ditto.
            (get_set_field_lhs): Ditto.
            (get_set_address): Ditto.
            (get_set_value): Ditto.
            (get_field_no): Ditto.
            (get_rvalue): Ditto.
            (DoCall): Ditto.
            (build_modify_expr): Ditto.
            (do_jump_if_bit): Ditto.
            * gm2-gcc/m2type.def (m2linemap): Replace with ...
            (gcctypes): ... this.
            (m2tree): Remove.
            (CDataTypes): Import ConstCharStar and charStar.
            (ValueInTypeRange): Replace Tree with tree.
            (ValueOutOfTypeRange): Ditto.
            (ExceedsTypeRange): Ditto.
            (WithinTypeRange): Ditto.
            (BuildSubrangeType): Ditto.
            (BuildCharConstant): Ditto.
            (BuildCharConstantChar): Ditto.
            (BuildArrayConstructorElement): Ditto.
            (BuildEndArrayConstructor): Ditto.
            (BuildStartArrayConstructor): Ditto.
            (BuildRecordConstructorElement): Ditto.
            (BuildEndRecordConstructor): Ditto.
            (BuildStartRecordConstructor): Ditto.
            (BuildEndSetConstructor): Ditto.
            (BuildSetConstructorElement): Ditto.
            (BuildStartSetConstructor): Ditto.
            (BuildSetType): Ditto.
            (BuildConstPointerType): Ditto.
            (BuildPointerType): Ditto.
            (BuildEnumerator): Ditto.
            (BuildEndEnumeration): Ditto.
            (BuildStartEnumeration): Ditto.
            (BuildTypeDeclaration): Ditto.
            (GetMaxFrom): Ditto.
            (GetMinFrom): Ditto.
            (GetDefaultType): Ditto.
            (BuildEndType): Ditto.
            (BuildStartType): Ditto.
            (BuildVariableArrayAndDeclare): Ditto.
            (BuildProcTypeParameterDeclaration): Ditto.
            (BuildStartFunctionType): Ditto.
            (BuildEndFunctionType): Ditto.
            (GetTreeType): Ditto.
            (DeclareKnownType): Ditto.
            (GetM2ZType): Ditto.
            (GetM2RType): Ditto.
            (BuildSetTypeFromSubrange): Ditto.
            (BuildSmallestTypeRange): Ditto.
            (GetBooleanType): Ditto.
            (GetBooleanFalse): Ditto.
            (GetBooleanTrue): Ditto.
            (GetPackedBooleanType): Ditto.
            (GetCharType): Ditto.
            (GetByteType): Ditto.
            (GetVoidType): Ditto.
            (GetBitnumType): Ditto.
            (GetRealType): Ditto.
            (GetLongRealType): Ditto.
            (GetShortRealType): Ditto.
            (GetLongIntType): Ditto.
            (GetPointerType): Ditto.
            (GetCardinalType): Ditto.
            (GetIntegerType): Ditto.
            (GetWordType): Ditto.
            (GetM2CardinalType): Ditto.
            (GetBitsetType): Ditto.
            (GetM2CType): Ditto.
            (GetProcType): Ditto.
            (GetM2ComplexType): Ditto.
            (GetM2LongComplexType): Ditto.
            (GetM2ShortComplexType): Ditto.
            (GetM2Complex128): Ditto.
            (GetM2Complex96): Ditto.
            (GetM2Complex64): Ditto.
            (GetM2Complex32): Ditto.
            (GetM2Real128): Ditto.
            (GetM2Real96): Ditto.
            (GetM2Real64): Ditto.
            (GetM2Real32): Ditto.
            (GetM2Bitset32): Ditto.
            (GetM2Bitset16): Ditto.
            (GetM2Bitset8): Ditto.
            (GetM2Word64): Ditto.
            (GetM2Word32): Ditto.
            (GetM2Word16): Ditto.
            (GetM2Cardinal64): Ditto.
            (GetM2Cardinal32): Ditto.
            (GetM2Cardinal16): Ditto.
            (GetM2Cardinal8): Ditto.
            (GetM2Integer64): Ditto.
            (GetM2Integer32): Ditto.
            (GetM2Integer16): Ditto.
            (GetM2Integer8): Ditto.
            (GetISOLocType): Ditto.
            (GetISOByteType): Ditto.
            (GetISOWordType): Ditto.
            (GetShortCardType): Ditto.
            (GetM2ShortCardType): Ditto.
            (GetShortIntType): Ditto.
            (GetM2ShortIntType): Ditto.
            (GetM2LongCardType): Ditto.
            (GetM2LongIntType): Ditto.
            (GetM2LongRealType): Ditto.
            (GetM2RealType): Ditto.
            (GetM2ShortRealType): Ditto.
            (GetM2IntegerType): Ditto.
            (GetM2CharType): Ditto.
            (GetCSizeTType): Ditto.
            (GetCSSizeTType): Ditto.
            (BuildArrayStringConstructor): Ditto.
            (RealToTree): Ditto.
            (BuildStartRecord): Ditto.
            (BuildStartUnion): Ditto.
            (BuildStartVarient): Ditto.
            (BuildEndVarient): Ditto.
            (BuildStartFieldVarient): Ditto.
            (BuildEndFieldVarient): Ditto.
            (BuildStartFieldRecord): Ditto.
            (BuildFieldRecord): Ditto.
            (ChainOn): Ditto.
            (ChainOnParamValue): Ditto.
            (AddStringToTreeList): Ditto.
            (BuildEndRecord): Ditto.
            (SetAlignment): Ditto.
            (SetDeclPacked): Ditto.
            (SetTypePacked): Ditto.
            (SetRecordFieldOffset): Ditto.
            (BuildPackedFieldRecord): Ditto.
            (BuildNumberOfArrayElements): Ditto.
            (AddStatement): Ditto.
            (MarkFunctionReferenced): Ditto.
            (BuildArrayIndexType): Ditto.
            (GetArrayNoOfElements): Ditto.
            (BuildEndArrayType): Ditto.
            (PutArrayType): Ditto.
            (BuildStartArrayType): Ditto.
            (IsAddress): Ditto.
            (SameRealType): Ditto.
            * m2.flex (Gm2linemap.h): Include.
            * mc-boot/GDynamicStrings.cc: Rebuild.
            * mc-boot/GFIO.cc: Ditto.
            * mc-boot/GIndexing.cc: Ditto.
            * mc-boot/GM2Dependent.cc: Ditto.
            * mc-boot/GSArgs.cc: Ditto.
            * mc-boot/GStringConvert.cc: Ditto.
            * mc-boot/Gdecl.cc: Ditto.
            * mc-boot/Gdecl.h: Ditto.
            * mc-boot/Gdtoa.h: Ditto.
            * mc-boot/Gkeyc.cc: Ditto.
            * mc-boot/Gkeyc.h: Ditto.
            * mc-boot/Glibc.h: Ditto.
            * mc-boot/GmcComp.cc: Ditto.
            * mc-boot/GmcLexBuf.cc: Ditto.
            * mc-boot/GmcPreprocess.cc: Ditto.
            * mc-boot/GmcStream.cc: Ditto.
            * mc-boot/Gmcp1.cc: Ditto.
            * mc-boot/Gmcp3.cc: Ditto.
            * mc-boot/Gmcp4.cc: Ditto.
            * mc-boot/Gmcp5.cc: Ditto.
            * mc-boot/GnameKey.cc: Ditto.
            * mc-boot/Gvarargs.cc: Ditto.
            * mc/decl.def (putDefUnqualified): New procedure function.
            (isDefUnqualified): Ditto.
            * mc/decl.mod (defT): Add unqualified field.
            (charStarN): New variable.
            (constCharStarN): Ditto.
            (checkGccType): New procedure.
            (checkCDataTypes): Ditto.
            (import): Call checkGccType and checkCDataTypes.
            (putDefUnqualified): New procedure function.
            (isDefUnqualified): Ditto.
            * mc/keyc.def (useGccTree): New procedure.
            (useGccLocation): Ditto.
            * mc/keyc.mod (checkGccConfigSystem): Call checkGccConfigSystem.
            (useGccTree): New procedure.
            (useGccLocation): Ditto.
            * mc/mcp1.bnf (decl): Import putDefUnqualified.
            (Export): Call putDefUnqualified.
            * gm2-gcc/CDataTypes.def: New file.
            * gm2-gcc/gcctypes.def: New file.
    
    (cherry picked from commit f6e629a7134c6b83be4542b8cd26b7c4483d17f4)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index ed677a42974..b1e946f8ed9 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -909,6 +909,7 @@ GM2-COMP-BOOT-MODS = \
 # The interface between the modula-2 front end and gimple/trees found in directory gm2-gcc.
 
 GM2-GCC-DEFS = \
+   gcctypes.def \
    m2block.def \
    m2builtins.def \
    m2color.def \
@@ -926,6 +927,7 @@ GM2-GCC-DEFS = \
    m2tree.def \
    m2treelib.def \
    m2type.def \
+   CDataTypes.def \
 
 # The following lists define the source files used to build gm2 using Modula-2
 # sources directly.
@@ -1235,6 +1237,7 @@ MC-LIB-DEFS = \
    Break.def  \
    COROUTINES.def \
    CmdArgs.def \
+   CDataTypes.def \
    Debug.def \
    DynamicStrings.def \
    Environment.def \
@@ -1588,7 +1591,7 @@ m2/gm2-compiler-boot/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-compiler/%.def $(MCDEPS)
 	$(MC) -o=$@ $(srcdir)/m2/gm2-compiler/$*.def
 
 m2/gm2-compiler-boot/m2flex.o: m2/gm2-compiler/m2flex.c $(BUILD-BOOT-H) $(TIMEVAR_H) \
-        $(BUILD-LIBS-BOOT-H)  m2/gm2-compiler-boot/$(SRC_PREFIX)NameKey.h \
+        $(BUILD-LIBS-BOOT-H) m2/gm2-compiler-boot/$(SRC_PREFIX)NameKey.h \
         $(CONFIG_H) m2/gm2config.h $(TARGET_H) $(PLUGIN_HEADERS)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
 	$(COMPILER) $(CM2DEP) -c -g $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
diff --git a/gcc/m2/Make-maintainer.in b/gcc/m2/Make-maintainer.in
index 6fa58975c58..630d4a97b03 100644
--- a/gcc/m2/Make-maintainer.in
+++ b/gcc/m2/Make-maintainer.in
@@ -677,7 +677,7 @@ m2/gm2-pge-boot/$(SRC_PREFIX)errno.o:  $(srcdir)/m2/mc-boot-ch/Gerrno.cc
 m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o: $(srcdir)/m2/gm2-libs/M2RTS.mod $(MCDEPS) $(BUILD-BOOT-PGE-H)
 	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
 	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.cc $(srcdir)/m2/gm2-libs/M2RTS.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/pge-boot -I$(srcdir)/m2/mc-boot \
               -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
               $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.cc -o $@
 
@@ -690,7 +690,7 @@ m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o: $(srcdir)/m2/gm2-compiler/SymbolKey.mo
                                           m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.h
 	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
 	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.cc $(srcdir)/m2/gm2-compiler/SymbolKey.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/pge-boot -I$(srcdir)/m2/mc-boot \
               -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
               $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.cc -o $@
 
@@ -703,7 +703,7 @@ m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o: $(srcdir)/m2/gm2-compiler/NameKey.mod \
                                         m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.h
 	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
 	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.cc $(srcdir)/m2/gm2-compiler/NameKey.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/pge-boot -I$(srcdir)/m2/mc-boot \
               -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
               $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.cc -o $@
 
@@ -716,7 +716,7 @@ m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o: $(srcdir)/m2/gm2-compiler/Lists.mod \
                                       m2/gm2-pge-boot/$(SRC_PREFIX)Lists.h
 	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
 	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)Lists.cc $(srcdir)/m2/gm2-compiler/Lists.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/pge-boot -I$(srcdir)/m2/mc-boot \
               -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
               $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)Lists.cc -o $@
 
@@ -729,7 +729,7 @@ m2/gm2-pge-boot/$(SRC_PREFIX)Output.o: $(srcdir)/m2/gm2-compiler/Output.mod \
                                       m2/gm2-pge-boot/$(SRC_PREFIX)Output.h
 	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
 	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)Output.cc $(srcdir)/m2/gm2-compiler/Output.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/pge-boot -I$(srcdir)/m2/mc-boot \
               -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
               $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)Output.cc -o $@
 
@@ -742,7 +742,7 @@ m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o: $(srcdir)/m2/gm2-compiler/bnflex.mod \
                                       m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.h
 	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
 	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.cc $(srcdir)/m2/gm2-compiler/bnflex.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/pge-boot -I$(srcdir)/m2/mc-boot \
               -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
               $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.cc -o $@
 
@@ -756,7 +756,7 @@ m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h: $(srcdir)/m2/gm2-libs-iso/RTentity.def
 
 m2/gm2-pge-boot/$(SRC_PREFIX)RTco.o: $(srcdir)/m2/gm2-libs-iso/RTcodummy.c
 	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/pge-boot -I$(srcdir)/m2/mc-boot \
               -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
               $(INCLUDES) -g -c $< -o $@
 
@@ -765,14 +765,14 @@ m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o: $(srcdir)/m2/gm2-libs-iso/RTentity.mod
                                       m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h
 	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
 	$(MCC) --suppress-noreturn -o=m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.cc $(srcdir)/m2/gm2-libs-iso/RTentity.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/pge-boot -I$(srcdir)/m2/mc-boot \
               -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
               $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.cc -o $@
 
 m2/gm2-pge-boot/$(SRC_PREFIX)%.o: $(srcdir)/m2/gm2-libs/%.mod $(MCDEPS) $(BUILD-BOOT-PGE-H)
 	-test -d m2/gm2-pge-boot || $(mkinstalldirs) m2/gm2-pge-boot
 	$(MCC) -o=m2/gm2-pge-boot/$(SRC_PREFIX)$*.cc $(srcdir)/m2/gm2-libs/$*.mod
-	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/gm2-pge-boot -I$(srcdir)/m2/mc-boot \
+	$(CXX) -I. -I$(srcdir)/../include -I$(srcdir) -I$(srcdir)/m2/pge-boot -I$(srcdir)/m2/mc-boot \
               -I$(srcdir)/m2/mc-boot-ch -Im2/gm2-libs-boot \
               $(INCLUDES) -g -c m2/gm2-pge-boot/$(SRC_PREFIX)$*.cc -o $@
 
@@ -904,6 +904,7 @@ MCLINK=-g     # use -g -fmodules -c if you are debugging and wish to see missing
 
 GM2PATH=-I$(srcdir)/m2/mc \
         -I$(srcdir)/m2 -Im2/gm2-auto \
+        -I$(srcdir)/m2/gm2-gcc \
         -fm2-pathname=m2pim -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-ch \
         -fm2-pathname=m2iso -I$(srcdir)/m2/gm2-libs-iso -fm2-pathname=-
 
@@ -1074,39 +1075,43 @@ MC_OPTIONS = $(MC_COPYRIGHT) --gcc-config-system --olang=c++
 
 m2/mc-boot-gen/$(SRC_PREFIX)%.h: $(srcdir)/m2/mc/%.def
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
-	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-gcc $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
 
 m2/mc-boot-gen/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-libs-iso/%.def
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
-	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-gcc $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
 
 m2/mc-boot-gen/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-libs/%.def
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
-	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-gcc $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+
+m2/mc-boot-gen/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-gcc/%.def
+	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
+	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-gcc $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
 
 m2/mc-boot-gen/$(SRC_PREFIX)decl.cc: $(srcdir)/m2/mc/decl.mod
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
-	./mc $(MC_OPTIONS) $(EXTENDED_OPAQUE) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+	./mc $(MC_OPTIONS) $(EXTENDED_OPAQUE) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-gcc --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
 
 m2/mc-boot-gen/$(SRC_PREFIX)%.cc: $(srcdir)/m2/mc/%.mod
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
-	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-gcc $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
 
 m2/mc-boot-gen/$(SRC_PREFIX)%.cc: $(srcdir)/m2/gm2-libs/%.mod
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
-	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-gcc $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
 
 m2/mc-boot-gen/$(SRC_PREFIX)%.cc: $(srcdir)/m2/gm2-libs-iso/%.mod
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
-	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-gcc $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
 
 m2/mc-boot-gen/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-libs-iso/%.def
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
-	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-gcc $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
 
 m2/mc-boot-gen/$(SRC_PREFIX)%.cc: m2/mc-obj/%.mod
 	-test -d m2/mc-boot-gen || $(mkinstalldirs) m2/mc-boot-gen
-	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
+	./mc $(MC_OPTIONS) -I$(srcdir)/m2/mc -I$(srcdir)/m2/gm2-libs -I$(srcdir)/m2/gm2-libs-iso -I$(srcdir)/m2/gm2-gcc $(EXTENDED_OPAQUE) --h-file-prefix=$(SRC_PREFIX) -o=$@ $<
 
 # mc-bootstrap compiles mc using the C version previously generated by mc-autogen.
 # These autogenerated files will be checked into git by the maintainer.
diff --git a/gcc/m2/gm2-compiler/M2ALU.def b/gcc/m2/gm2-compiler/M2ALU.def
index 5aa4b3a8682..b13de7b700a 100644
--- a/gcc/m2/gm2-compiler/M2ALU.def
+++ b/gcc/m2/gm2-compiler/M2ALU.def
@@ -32,8 +32,8 @@ DEFINITION MODULE M2ALU ;
 *)
 
 FROM NameKey IMPORT Name ;
-FROM m2tree IMPORT Tree ;
 FROM M2GCCDeclare IMPORT WalkAction, IsAction ;
+FROM gcctypes IMPORT tree ;
 
 EXPORT QUALIFIED PtrToValue,
                  InitValue,
@@ -163,42 +163,42 @@ PROCEDURE GetSetValueType () : CARDINAL ;
    PushIntegerTree - pushes a gcc tree value onto the ALU stack.
 *)
 
-PROCEDURE PushIntegerTree (t: Tree) ;
+PROCEDURE PushIntegerTree (t: tree) ;
 
 
 (*
    PopIntegerTree - pops a gcc tree value from the ALU stack.
 *)
 
-PROCEDURE PopIntegerTree () : Tree ;
+PROCEDURE PopIntegerTree () : tree ;
 
 
 (*
    PushRealTree - pushes a gcc tree value onto the ALU stack.
 *)
 
-PROCEDURE PushRealTree (t: Tree) ;
+PROCEDURE PushRealTree (t: tree) ;
 
 
 (*
    PopRealTree - pops a gcc tree value from the ALU stack.
 *)
 
-PROCEDURE PopRealTree () : Tree ;
+PROCEDURE PopRealTree () : tree ;
 
 
 (*
    PushComplexTree - pushes a gcc tree value onto the ALU stack.
 *)
 
-PROCEDURE PushComplexTree (t: Tree) ;
+PROCEDURE PushComplexTree (t: tree) ;
 
 
 (*
    PopComplexTree - pops a gcc tree value from the ALU stack.
 *)
 
-PROCEDURE PopComplexTree () : Tree ;
+PROCEDURE PopComplexTree () : tree ;
 
 
 (*
@@ -209,21 +209,21 @@ PROCEDURE PopComplexTree () : Tree ;
 *)
 
 PROCEDURE PushSetTree (tokenno: CARDINAL;
-                       t: Tree; sym: CARDINAL) ;
+                       t: tree; sym: CARDINAL) ;
 
 
 (*
    PopSetTree - pops a gcc tree from the ALU stack.
 *)
 
-PROCEDURE PopSetTree (tokenno: CARDINAL) : Tree ;
+PROCEDURE PopSetTree (tokenno: CARDINAL) : tree ;
 
 
 (*
    PopConstructorTree - returns a tree containing the compound literal.
 *)
 
-PROCEDURE PopConstructorTree (tokenno: CARDINAL) : Tree ;
+PROCEDURE PopConstructorTree (tokenno: CARDINAL) : tree ;
 
 
 (*
@@ -832,7 +832,7 @@ PROCEDURE GetRange (v: PtrToValue; n: CARDINAL; VAR low, high: CARDINAL) : BOOLE
                           set const, sym.
 *)
 
-PROCEDURE ConstructSetConstant (tokenno: CARDINAL; v: PtrToValue) : Tree ;
+PROCEDURE ConstructSetConstant (tokenno: CARDINAL; v: PtrToValue) : tree ;
 
 
 (*
@@ -840,7 +840,7 @@ PROCEDURE ConstructSetConstant (tokenno: CARDINAL; v: PtrToValue) : Tree ;
                 value  {e1..e2}.
 *)
 
-PROCEDURE BuildRange (tokenno: CARDINAL; e1, e2: Tree) : Tree ;
+PROCEDURE BuildRange (tokenno: CARDINAL; e1, e2: tree) : tree ;
 
 
 (*
@@ -882,7 +882,7 @@ PROCEDURE IsValueAndTreeKnown () : BOOLEAN ;
                           error message.
 *)
 
-PROCEDURE CheckOrResetOverflow (tokenno: CARDINAL; t: Tree; check: BOOLEAN) ;
+PROCEDURE CheckOrResetOverflow (tokenno: CARDINAL; t: tree; check: BOOLEAN) ;
 
 
 (*
@@ -991,7 +991,7 @@ PROCEDURE IsValueConst (v: PtrToValue) : BOOLEAN ;
                     front end type.
 *)
 
-PROCEDURE PushTypeOfTree (sym: CARDINAL; gcc: Tree) ;
+PROCEDURE PushTypeOfTree (sym: CARDINAL; gcc: tree) ;
 
 
 END M2ALU.
diff --git a/gcc/m2/gm2-compiler/M2ALU.mod b/gcc/m2/gm2-compiler/M2ALU.mod
index cfa372671cd..08694586898 100644
--- a/gcc/m2/gm2-compiler/M2ALU.mod
+++ b/gcc/m2/gm2-compiler/M2ALU.mod
@@ -33,7 +33,7 @@ IMPLEMENTATION MODULE M2ALU ;
 *)
 
 FROM ASCII IMPORT nul ;
-FROM SYSTEM IMPORT WORD ;
+FROM SYSTEM IMPORT WORD, ADDRESS ;
 FROM NameKey IMPORT KeyToCharStar, MakeKey, CharKey ;
 FROM M2Error IMPORT InternalError, FlushErrors ;
 FROM M2Debug IMPORT Assert ;
@@ -60,8 +60,8 @@ FROM SymbolTable IMPORT NulSym, IsEnumeration, IsSubrange, IsValueSolved, PushVa
 
 IMPORT DynamicStrings ;
 
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t, UnknownLocation ;
+FROM gcctypes IMPORT location_t, tree ;
+FROM m2linemap IMPORT UnknownLocation ;
 
 FROM m2expr IMPORT BuildAdd, BuildSub, BuildMult,
                    BuildDivTrunc, BuildModTrunc, BuildDivFloor, BuildModFloor,
@@ -122,7 +122,7 @@ TYPE
                    solved         : BOOLEAN ;
                    constructorType: CARDINAL ;
                    next           : PtrToValue ;
-                   numberValue    : Tree ;
+                   numberValue    : tree ;
 
                    CASE type: cellType OF
 
@@ -146,7 +146,7 @@ VAR
    RangeFreeList   : listOfRange ;
    FreeList,
    TopOfStack      : PtrToValue ;
-   EnumerationValue: Tree ;
+   EnumerationValue: tree ;
    EnumerationField: CARDINAL ;
    CurrentTokenNo  : CARDINAL ;
    (* WatchedValue    : PtrToValue ;  *)
@@ -694,7 +694,7 @@ END GetSetValueType ;
    PushIntegerTree - pushes a gcc tree value onto the ALU stack.
 *)
 
-PROCEDURE PushIntegerTree (t: Tree) ;
+PROCEDURE PushIntegerTree (t: tree) ;
 VAR
    v: PtrToValue ;
 BEGIN
@@ -713,10 +713,10 @@ END PushIntegerTree ;
    PopIntegerTree - pops a gcc tree value from the ALU stack.
 *)
 
-PROCEDURE PopIntegerTree () : Tree ;
+PROCEDURE PopIntegerTree () : tree ;
 VAR
    v: PtrToValue ;
-   t: Tree ;
+   t: tree ;
 BEGIN
    v := Pop() ;
    WITH v^ DO
@@ -736,7 +736,7 @@ END PopIntegerTree ;
    PushRealTree - pushes a gcc tree value onto the ALU stack.
 *)
 
-PROCEDURE PushRealTree (t: Tree) ;
+PROCEDURE PushRealTree (t: tree) ;
 VAR
    v: PtrToValue ;
 BEGIN
@@ -755,10 +755,10 @@ END PushRealTree ;
    PopRealTree - pops a gcc tree value from the ALU stack.
 *)
 
-PROCEDURE PopRealTree () : Tree ;
+PROCEDURE PopRealTree () : tree ;
 VAR
    v: PtrToValue ;
-   t: Tree ;
+   t: tree ;
 BEGIN
    v := Pop() ;
    WITH v^ DO
@@ -778,7 +778,7 @@ END PopRealTree ;
    PushComplexTree - pushes a gcc tree value onto the ALU stack.
 *)
 
-PROCEDURE PushComplexTree (t: Tree) ;
+PROCEDURE PushComplexTree (t: tree) ;
 VAR
    v: PtrToValue ;
 BEGIN
@@ -797,10 +797,10 @@ END PushComplexTree ;
    PopComplexTree - pops a gcc tree value from the ALU stack.
 *)
 
-PROCEDURE PopComplexTree () : Tree ;
+PROCEDURE PopComplexTree () : tree ;
 VAR
    v: PtrToValue ;
-   t: Tree ;
+   t: tree ;
 BEGIN
    v := Pop() ;
    WITH v^ DO
@@ -824,7 +824,7 @@ END PopComplexTree ;
 *)
 
 PROCEDURE PushSetTree (tokenno: CARDINAL;
-                       t: Tree; sym: CARDINAL) ;
+                       t: tree; sym: CARDINAL) ;
 VAR
    v: PtrToValue ;
    c,
@@ -868,10 +868,10 @@ END PushSetTree ;
    PopSetTree - pops a gcc tree from the ALU stack.
 *)
 
-PROCEDURE PopSetTree (tokenno: CARDINAL) : Tree ;
+PROCEDURE PopSetTree (tokenno: CARDINAL) : tree ;
 VAR
    v: PtrToValue ;
-   t: Tree ;
+   t: tree ;
 BEGIN
    v := Pop() ;
    WITH v^ DO
@@ -900,10 +900,10 @@ END PopSetTree ;
    PopConstructorTree - returns a tree containing the compound literal.
 *)
 
-PROCEDURE PopConstructorTree (tokenno: CARDINAL) : Tree ;
+PROCEDURE PopConstructorTree (tokenno: CARDINAL) : tree ;
 VAR
    v: PtrToValue ;
-   t: Tree ;
+   t: tree ;
 BEGIN
    v := Pop() ;
    WITH v^ DO
@@ -3503,7 +3503,7 @@ END FindValueEnum ;
          of type, type.
 *)
 
-PROCEDURE Val (tokenno: CARDINAL; type: CARDINAL; value: Tree) : CARDINAL ;
+PROCEDURE Val (tokenno: CARDINAL; type: CARDINAL; value: tree) : CARDINAL ;
 VAR
    sym: CARDINAL ;
 BEGIN
@@ -3548,7 +3548,7 @@ END DupConst ;
 *)
 
 PROCEDURE DupConstAndAdd (tokenno: CARDINAL;
-                          sym: CARDINAL; extra: Tree) : CARDINAL ;
+                          sym: CARDINAL; extra: tree) : CARDINAL ;
 BEGIN
    PushValue(sym) ;
    PushIntegerTree(extra) ;
@@ -3565,7 +3565,7 @@ END DupConstAndAdd ;
 *)
 
 PROCEDURE DupConstAndAddMod (tokenno: CARDINAL;
-                             sym: CARDINAL; extra: Tree;
+                             sym: CARDINAL; extra: tree;
                              l, h: CARDINAL) : CARDINAL ;
 BEGIN
    (* result := (((sym-l) + extra) MOD (h-l)) + l) *)
@@ -3977,7 +3977,7 @@ END IsRangeLess ;
    MinTree - returns the tree symbol which has the least value.
 *)
 
-PROCEDURE MinTree (tokenno: CARDINAL; a, b: Tree) : Tree ;
+PROCEDURE MinTree (tokenno: CARDINAL; a, b: tree) : tree ;
 BEGIN
    PushIntegerTree(a) ;
    ConvertToInt ;
@@ -3996,7 +3996,7 @@ END MinTree ;
    MaxTree - returns the symbol which has the greatest value.
 *)
 
-PROCEDURE MaxTree (tokenno: CARDINAL; a, b: Tree) : Tree ;
+PROCEDURE MaxTree (tokenno: CARDINAL; a, b: tree) : tree ;
 BEGIN
    PushIntegerTree(a) ;
    ConvertToInt ;
@@ -4015,7 +4015,7 @@ END MaxTree ;
    IsIntersectionTree - returns TRUE if ranges, a..b, and, c..d, intersect.
 *)
 
-PROCEDURE IsIntersectionTree (tokenno: CARDINAL; a, b, c, d: Tree) : BOOLEAN ;
+PROCEDURE IsIntersectionTree (tokenno: CARDINAL; a, b, c, d: tree) : BOOLEAN ;
 BEGIN
    (* easier to prove NOT outside limits *)
    PushIntegerTree(a) ;
@@ -4044,7 +4044,7 @@ END IsIntersectionTree ;
    SubTree - returns the tree value containing (a-b)
 *)
 
-PROCEDURE SubTree (a, b: Tree) : Tree ;
+PROCEDURE SubTree (a, b: tree) : tree ;
 BEGIN
    PushIntegerTree(a) ;
    PushIntegerTree(b) ;
@@ -4401,9 +4401,9 @@ END GetRange ;
                        low and high are the limits of the subrange.
 *)
 
-PROCEDURE BuildStructBitset (tokenno: CARDINAL; v: PtrToValue; low, high: Tree) : Tree ;
+PROCEDURE BuildStructBitset (tokenno: CARDINAL; v: PtrToValue; low, high: tree) : tree ;
 VAR
-   BitsInSet : Tree ;
+   BitsInSet : tree ;
    bpw       : CARDINAL ;
    cons      : Constructor ;
 BEGIN
@@ -4468,7 +4468,7 @@ END BuildStructBitset ;
                               { (cardinal), (cardinal) etc }
 *)
 
-PROCEDURE ConstructLargeOrSmallSet (tokenno: CARDINAL; v: PtrToValue; low, high: CARDINAL) : Tree ;
+PROCEDURE ConstructLargeOrSmallSet (tokenno: CARDINAL; v: PtrToValue; low, high: CARDINAL) : tree ;
 BEGIN
    PushValue(high) ;
    ConvertToInt ;
@@ -4492,10 +4492,10 @@ END ConstructLargeOrSmallSet ;
                           set const as defined by, v.
 *)
 
-PROCEDURE ConstructSetConstant (tokenno: CARDINAL; v: PtrToValue) : Tree ;
+PROCEDURE ConstructSetConstant (tokenno: CARDINAL; v: PtrToValue) : tree ;
 VAR
    n1, n2   : Name ;
-   gccsym   : Tree ;
+   gccsym   : tree ;
    baseType,
    high, low: CARDINAL ;
 BEGIN
@@ -4530,10 +4530,10 @@ END ConstructSetConstant ;
                         array constructor.
 *)
 
-PROCEDURE ConvertConstToType (tokenno: CARDINAL; field: CARDINAL; init: CARDINAL) : Tree ;
+PROCEDURE ConvertConstToType (tokenno: CARDINAL; field: CARDINAL; init: CARDINAL) : tree ;
 VAR
    initT,
-   nBytes: Tree ;
+   nBytes: tree ;
 BEGIN
    IF IsConstString(init) AND IsArray(SkipType(GetType(field))) AND
       (SkipTypeAndSubrange(GetType(GetType(field)))=Char)
@@ -4555,7 +4555,7 @@ END ConvertConstToType ;
    ConstructRecordConstant - builds a struct initializer, as defined by, v.
 *)
 
-PROCEDURE ConstructRecordConstant (tokenno: CARDINAL; v: PtrToValue) : Tree ;
+PROCEDURE ConstructRecordConstant (tokenno: CARDINAL; v: PtrToValue) : tree ;
 VAR
    n1, n2      : Name ;
    i,
@@ -4639,7 +4639,7 @@ END GetConstructorField ;
 
 PROCEDURE GetConstructorElement (tokenno: CARDINAL; v: PtrToValue; i: CARDINAL) : CARDINAL ;
 VAR
-   j: Tree ;
+   j: tree ;
    e: listOfElements ;
 BEGIN
    WITH v^ DO
@@ -4746,15 +4746,15 @@ END GetArrayLimits ;
    InitialiseArrayOfCharWithString -
 *)
 
-PROCEDURE InitialiseArrayOfCharWithString (tokenno: CARDINAL; cons: Tree;
-                                           el, baseType, arrayType: CARDINAL) : Tree ;
+PROCEDURE InitialiseArrayOfCharWithString (tokenno: CARDINAL; cons: ADDRESS;
+                                           el, baseType, arrayType: CARDINAL) : tree ;
 VAR
    isChar   : BOOLEAN ;
    s, letter: String ;
    i, l     : CARDINAL ;
    high, low: CARDINAL ;
    value,
-   indice   : Tree ;
+   indice   : tree ;
    location : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -4830,9 +4830,9 @@ END InitialiseArrayOfCharWithString ;
    CheckElementString -
 *)
 
-PROCEDURE CheckElementString (el, arrayType: CARDINAL; tokenno: CARDINAL) : Tree ;
+PROCEDURE CheckElementString (el, arrayType: CARDINAL; tokenno: CARDINAL) : tree ;
 VAR
-   cons: Tree ;
+   cons: ADDRESS ;
 BEGIN
    IF IsString(arrayType) AND IsString(el)
    THEN
@@ -4848,13 +4848,13 @@ END CheckElementString ;
    InitialiseArrayWith -
 *)
 
-PROCEDURE InitialiseArrayWith (tokenno: CARDINAL; cons: Tree;
-                               v: PtrToValue; el, high, low, arrayType: CARDINAL) : Tree ;
+PROCEDURE InitialiseArrayWith (tokenno: CARDINAL; cons: ADDRESS;
+                               v: PtrToValue; el, high, low, arrayType: CARDINAL) : tree ;
 VAR
    location: location_t ;
    i       : CARDINAL ;
    indice,
-   value   : Tree ;
+   value   : tree ;
 BEGIN
    location := TokenToLocation (tokenno) ;
    i := 0 ;
@@ -4900,7 +4900,7 @@ PROCEDURE CheckGetCharFromString (location: location_t;
                                   constDecl: PtrToValue;
                                   consType: CARDINAL ;
                                   arrayIndex: CARDINAL;
-                                  VAR value: Tree) : BOOLEAN ;
+                                  VAR value: tree) : BOOLEAN ;
 VAR
    elementIndex: CARDINAL ;
    element     : CARDINAL ;
@@ -4957,14 +4957,14 @@ END CheckGetCharFromString ;
    InitialiseArrayOfCharWith -
 *)
 
-PROCEDURE InitialiseArrayOfCharWith (tokenno: CARDINAL; cons: Tree;
+PROCEDURE InitialiseArrayOfCharWith (tokenno: CARDINAL; cons: ADDRESS;
                                      constDecl: PtrToValue;
-                                     el, high, low, consType, arrayType: CARDINAL) : Tree ;
+                                     el, high, low, consType, arrayType: CARDINAL) : tree ;
 VAR
    location  : location_t ;
    arrayIndex: CARDINAL ;      (* arrayIndex is the char position index of the final string.  *)
    indice,
-   value     : Tree ;
+   value     : tree ;
 BEGIN
    location := TokenToLocation (tokenno) ;
    arrayIndex := 0 ;
@@ -5004,14 +5004,14 @@ END InitialiseArrayOfCharWith ;
    ConstructArrayConstant - builds a struct initializer, as defined by, v.
 *)
 
-PROCEDURE ConstructArrayConstant (tokenno: CARDINAL; v: PtrToValue) : Tree ;
+PROCEDURE ConstructArrayConstant (tokenno: CARDINAL; v: PtrToValue) : tree ;
 VAR
    n1, n2    : Name ;
    el1, el2,
    baseType,
    arrayType,
    high, low : CARDINAL ;
-   cons      : Constructor ;
+   cons      : ADDRESS ;
 BEGIN
    WITH v^ DO
       IF constructorType=NulSym
@@ -5052,9 +5052,9 @@ END ConstructArrayConstant ;
                 value  {e1..e2}.
 *)
 
-PROCEDURE BuildRange (tokenno: CARDINAL; e1, e2: Tree) : Tree ;
+PROCEDURE BuildRange (tokenno: CARDINAL; e1, e2: tree) : tree ;
 VAR
-   c, i, t : Tree ;
+   c, i, t : tree ;
    location: location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -5066,11 +5066,11 @@ BEGIN
       e1 := e2 ;
       e2 := c
    END ;
-   t := Tree(NIL) ;
+   t := tree(NIL) ;
    PushIntegerTree(e1) ;
    i := PopIntegerTree() ;
    REPEAT
-      IF t=Tree(NIL)
+      IF t=tree(NIL)
       THEN
          t := BuildLSL(location, GetWordOne(location), ToWord(location, i), FALSE)
       ELSE
@@ -5093,10 +5093,10 @@ END BuildRange ;
 *)
 
 PROCEDURE BuildBitset (tokenno: CARDINAL;
-                       v: PtrToValue; low, high: Tree) : Tree ;
+                       v: PtrToValue; low, high: tree) : tree ;
 VAR
    tl, th,
-   t       : Tree ;
+   t       : tree ;
    n       : CARDINAL ;
    r1, r2  : CARDINAL ;
    location: location_t ;
@@ -5175,7 +5175,7 @@ END IsValueAndTreeKnown ;
                    error message.
 *)
 
-PROCEDURE CheckOverflow (tokenno: CARDINAL; t: Tree) ;
+PROCEDURE CheckOverflow (tokenno: CARDINAL; t: tree) ;
 BEGIN
    IF TreeOverflow (t)
    THEN
@@ -5191,7 +5191,7 @@ END CheckOverflow ;
                           error message.
 *)
 
-PROCEDURE CheckOrResetOverflow (tokenno: CARDINAL; t: Tree; check: BOOLEAN) ;
+PROCEDURE CheckOrResetOverflow (tokenno: CARDINAL; t: tree; check: BOOLEAN) ;
 BEGIN
    IF check
    THEN
@@ -5206,7 +5206,7 @@ END CheckOrResetOverflow ;
    PushGCCArrayTree - pushes a gcc tree value onto the ALU stack.
 *)
 
-PROCEDURE PushGCCArrayTree (gcc: Tree; t: CARDINAL) ;
+PROCEDURE PushGCCArrayTree (gcc: tree; t: CARDINAL) ;
 VAR
    v: PtrToValue ;
 BEGIN
@@ -5227,7 +5227,7 @@ END PushGCCArrayTree ;
    PushGCCSetTree - pushes a gcc tree value onto the ALU stack.
 *)
 
-PROCEDURE PushGCCSetTree (gcc: Tree; t: CARDINAL) ;
+PROCEDURE PushGCCSetTree (gcc: tree; t: CARDINAL) ;
 VAR
    v: PtrToValue ;
 BEGIN
@@ -5248,7 +5248,7 @@ END PushGCCSetTree ;
    PushGCCRecordTree - pushes a gcc tree value onto the ALU stack.
 *)
 
-PROCEDURE PushGCCRecordTree (gcc: Tree; t: CARDINAL) ;
+PROCEDURE PushGCCRecordTree (gcc: tree; t: CARDINAL) ;
 VAR
    v: PtrToValue ;
 BEGIN
@@ -5270,7 +5270,7 @@ END PushGCCRecordTree ;
                     front end type.
 *)
 
-PROCEDURE PushTypeOfTree (sym: CARDINAL; gcc: Tree) ;
+PROCEDURE PushTypeOfTree (sym: CARDINAL; gcc: tree) ;
 VAR
    t: CARDINAL ;
 BEGIN
diff --git a/gcc/m2/gm2-compiler/M2Base.def b/gcc/m2/gm2-compiler/M2Base.def
index 48eaa315edf..acf7f851bb6 100644
--- a/gcc/m2/gm2-compiler/M2Base.def
+++ b/gcc/m2/gm2-compiler/M2Base.def
@@ -30,7 +30,7 @@ DEFINITION MODULE M2Base ;
 *)
 
 FROM NameKey IMPORT Name ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t ;
 
 EXPORT QUALIFIED Nil,                   (* Base constants          *)
                  Cardinal,              (* Base types              *)
diff --git a/gcc/m2/gm2-compiler/M2Base.mod b/gcc/m2/gm2-compiler/M2Base.mod
index b8677695bfd..e298d13986d 100644
--- a/gcc/m2/gm2-compiler/M2Base.mod
+++ b/gcc/m2/gm2-compiler/M2Base.mod
@@ -114,7 +114,8 @@ FROM m2type IMPORT GetIntegerType,
                    InitBaseTypes ;
 
 FROM m2expr IMPORT GetSizeOf ;
-FROM m2linemap IMPORT location_t, BuiltinsLocation ;
+FROM gcctypes IMPORT location_t ;
+FROM m2linemap IMPORT BuiltinsLocation ;
 FROM m2decl IMPORT BuildIntegerConstant ;
 
 
diff --git a/gcc/m2/gm2-compiler/M2Bitset.mod b/gcc/m2/gm2-compiler/M2Bitset.mod
index 3d60af4fb7d..ec23bd9acd9 100644
--- a/gcc/m2/gm2-compiler/M2Bitset.mod
+++ b/gcc/m2/gm2-compiler/M2Bitset.mod
@@ -23,7 +23,6 @@ IMPLEMENTATION MODULE M2Bitset ;
 
 
 FROM M2Debug IMPORT Assert ;
-FROM m2tree IMPORT Tree ;
 FROM m2linemap IMPORT BuiltinsLocation ;
 FROM m2type IMPORT GetWordType ;
 FROM m2decl IMPORT GetBitsPerBitset ;
diff --git a/gcc/m2/gm2-compiler/M2CaseList.mod b/gcc/m2/gm2-compiler/M2CaseList.mod
index b98f55375bd..7a889bd5d8b 100644
--- a/gcc/m2/gm2-compiler/M2CaseList.mod
+++ b/gcc/m2/gm2-compiler/M2CaseList.mod
@@ -33,7 +33,7 @@ FROM Lists IMPORT InitList, IncludeItemIntoList, RemoveItemFromList, NoOfItemsIn
 FROM NameKey IMPORT KeyToCharStar ;
 FROM SymbolConversion IMPORT GccKnowsAbout, Mod2Gcc, AddModGcc ;
 FROM DynamicStrings IMPORT InitString, InitStringCharStar, InitStringChar, ConCat, Mark, KillString ;
-FROM m2tree IMPORT Tree ;
+FROM gcctypes IMPORT tree ;
 FROM m2block IMPORT RememberType ;
 FROM m2type IMPORT GetMinFrom ;
 FROM m2expr IMPORT GetIntegerOne, CSTIntToString, CSTIntToChar ;
@@ -76,7 +76,7 @@ TYPE
                     END ;
 
    SetRange = POINTER TO RECORD
-                 low, high: Tree ;
+                 low, high: tree ;
                  next     : SetRange ;
               END ;
 
@@ -608,7 +608,7 @@ END RemoveRange ;
    SubBitRange - subtracts bits, lo..hi, from, set.
 *)
 
-PROCEDURE SubBitRange (set: SetRange; lo, hi: Tree; tokenno: CARDINAL) : SetRange ;
+PROCEDURE SubBitRange (set: SetRange; lo, hi: tree; tokenno: CARDINAL) : SetRange ;
 VAR
    h, i: SetRange ;
 BEGIN
@@ -681,7 +681,7 @@ END SubBitRange ;
 
 PROCEDURE CheckLowHigh (rp: RangePair) ;
 VAR
-   lo, hi: Tree ;
+   lo, hi: tree ;
    temp  : CARDINAL ;
 BEGIN
    lo := Mod2Gcc (rp^.low) ;
@@ -741,9 +741,9 @@ VAR
    IncludeElement - only include enumeration field into errorString if it lies between low..high.
 *)
 
-PROCEDURE IncludeElement (enumList: List; field: CARDINAL; low, high: Tree) ;
+PROCEDURE IncludeElement (enumList: List; field: CARDINAL; low, high: tree) ;
 VAR
-   fieldTree: Tree ;
+   fieldTree: tree ;
 BEGIN
    IF field # NulSym
    THEN
@@ -760,7 +760,7 @@ END IncludeElement ;
    IncludeElements - only include enumeration field values low..high in errorString.
 *)
 
-PROCEDURE IncludeElements (type: CARDINAL; enumList: List; low, high: Tree) ;
+PROCEDURE IncludeElements (type: CARDINAL; enumList: List; low, high: tree) ;
 VAR
    field     : CARDINAL ;
    i,
@@ -782,7 +782,7 @@ END IncludeElements ;
 
 PROCEDURE ErrorRangeEnum (type: CARDINAL; set: SetRange; enumList: List) ;
 VAR
-   Low, High: Tree ;
+   Low, High: tree ;
 BEGIN
    Low := set^.low ;
    High := set^.high ;
@@ -894,7 +894,7 @@ END EnumerateErrors ;
    NoOfSetElements - return the number of set elements.
 *)
 
-PROCEDURE NoOfSetElements (set: SetRange) : Tree ;
+PROCEDURE NoOfSetElements (set: SetRange) : tree ;
 BEGIN
    PushInt (0) ;
    WHILE set # NIL DO
@@ -922,7 +922,7 @@ END NoOfSetElements ;
    isPrintableChar - a cautious isprint.
 *)
 
-PROCEDURE isPrintableChar (value: Tree) : BOOLEAN ;
+PROCEDURE isPrintableChar (value: tree) : BOOLEAN ;
 BEGIN
    CASE CSTIntToChar (value) OF
 
@@ -958,7 +958,7 @@ END isPrintableChar ;
                 CHAR constants and will fall back to CHR (x) if necessary.
 *)
 
-PROCEDURE appendTree (value: Tree; type: CARDINAL) ;
+PROCEDURE appendTree (value: tree; type: CARDINAL) ;
 BEGIN
     IF SkipType (GetType (type)) = Char
     THEN
@@ -994,7 +994,7 @@ VAR
    sr       : SetRange ;
    rangeNo  : CARDINAL ;
    nMissing,
-   zero, one: Tree ;
+   zero, one: tree ;
 BEGIN
    nMissing := NoOfSetElements (set) ;
    PushInt (0) ;
@@ -1157,7 +1157,7 @@ procedure InRangeList (cl: CaseList; tag: cardinal) : boolean ;
 var
    i, h: cardinal ;
    r   : RangePair ;
-   a   : Tree ;
+   a   : tree ;
 begin
    with cl^ do
       i := 1 ;
diff --git a/gcc/m2/gm2-compiler/M2Emit.def b/gcc/m2/gm2-compiler/M2Emit.def
index 4710dd06454..acfd332b39f 100644
--- a/gcc/m2/gm2-compiler/M2Emit.def
+++ b/gcc/m2/gm2-compiler/M2Emit.def
@@ -23,7 +23,7 @@ DEFINITION MODULE M2Emit ;
 
 
 FROM DynamicStrings IMPORT String ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/M2GCCDeclare.def b/gcc/m2/gm2-compiler/M2GCCDeclare.def
index 13570dabfbb..45395463d73 100644
--- a/gcc/m2/gm2-compiler/M2GCCDeclare.def
+++ b/gcc/m2/gm2-compiler/M2GCCDeclare.def
@@ -31,7 +31,7 @@ DEFINITION MODULE M2GCCDeclare ;
 *)
 
 FROM SYSTEM IMPORT WORD ;
-FROM m2tree IMPORT Tree ;
+FROM gcctypes IMPORT tree ;
 FROM M2BasicBlock IMPORT BasicBlock ;
 
 TYPE
@@ -159,7 +159,7 @@ PROCEDURE PoisonSymbols (sym: CARDINAL) ;
                           return a string constant.
 *)
 
-PROCEDURE PromoteToString (tokenno: CARDINAL; sym: CARDINAL) : Tree ;
+PROCEDURE PromoteToString (tokenno: CARDINAL; sym: CARDINAL) : tree ;
 
 
 (*
@@ -170,7 +170,7 @@ PROCEDURE PromoteToString (tokenno: CARDINAL; sym: CARDINAL) : Tree ;
                           return a string constant.
 *)
 
-PROCEDURE PromoteToCString (tokenno: CARDINAL; sym: CARDINAL) : Tree ;
+PROCEDURE PromoteToCString (tokenno: CARDINAL; sym: CARDINAL) : tree ;
 
 
 (*
@@ -186,7 +186,7 @@ PROCEDURE CompletelyResolved (sym: CARDINAL) : BOOLEAN ;
    ConstantKnownAndUsed -
 *)
 
-PROCEDURE ConstantKnownAndUsed (sym: CARDINAL; t: Tree) ;
+PROCEDURE ConstantKnownAndUsed (sym: CARDINAL; t: tree) ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/M2GCCDeclare.mod b/gcc/m2/gm2-compiler/M2GCCDeclare.mod
index a2effe97b66..82c6437464d 100644
--- a/gcc/m2/gm2-compiler/M2GCCDeclare.mod
+++ b/gcc/m2/gm2-compiler/M2GCCDeclare.mod
@@ -160,8 +160,8 @@ FROM M2ALU IMPORT Addn, Sub, Equ, GreEqu, Gre, Less, PushInt, PushCard, ConvertT
                   ChangeToConstructor, EvaluateValue, TryEvaluateValue ;
 
 FROM M2Batch IMPORT IsSourceSeen, GetModuleFile, IsModuleSeen, LookupModule ;
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t, BuiltinsLocation ;
+FROM gcctypes IMPORT location_t, tree ;
+FROM m2linemap IMPORT BuiltinsLocation ;
 
 FROM m2decl IMPORT BuildIntegerConstant, BuildStringConstant, BuildCStringConstant,
                    BuildStartFunctionDeclaration,
@@ -205,7 +205,7 @@ FROM m2block IMPORT RememberType, pushGlobalScope, popGlobalScope,
 
 
 TYPE
-   StartProcedure = PROCEDURE (location_t, ADDRESS) : Tree ;
+   StartProcedure = PROCEDURE (location_t, ADDRESS) : tree ;
    ListType       = (fullydeclared, partiallydeclared, niltypedarrays,
                      heldbyalignment, finishedalignment, todolist,
                      tobesolvedbyquads, finishedsetarray) ;
@@ -648,11 +648,11 @@ END LookupSet ;
    GetEnumList -
 *)
 
-PROCEDURE GetEnumList (sym: CARDINAL) : Tree ;
+PROCEDURE GetEnumList (sym: CARDINAL) : tree ;
 BEGIN
    IF InBounds(EnumerationIndex, sym)
    THEN
-      RETURN( GetIndice(EnumerationIndex, sym) )
+      RETURN( tree (GetIndice(EnumerationIndex, sym)) )
    ELSE
       RETURN( NIL )
    END
@@ -663,7 +663,7 @@ END GetEnumList ;
    PutEnumList -
 *)
 
-PROCEDURE PutEnumList (sym: CARDINAL; enumlist: Tree) ;
+PROCEDURE PutEnumList (sym: CARDINAL; enumlist: tree) ;
 BEGIN
    PutIndice(EnumerationIndex, sym, enumlist)
 END PutEnumList ;
@@ -708,7 +708,7 @@ END Chained ;
                         recursive types.
 *)
 
-PROCEDURE DoStartDeclaration (sym: CARDINAL; p: StartProcedure) : Tree ;
+PROCEDURE DoStartDeclaration (sym: CARDINAL; p: StartProcedure) : tree ;
 VAR
    location: location_t ;
 BEGIN
@@ -1246,7 +1246,7 @@ END PutToBeSolvedByQuads ;
 
 PROCEDURE DeclareTypeConstFully (sym: CARDINAL) ;
 VAR
-   t: Tree ;
+   t: tree ;
 BEGIN
    IF NOT IsElementInSet(GlobalGroup^.ToBeSolvedByQuads, sym)
    THEN
@@ -1285,7 +1285,7 @@ END DeclareTypeConstFully ;
 
 PROCEDURE DeclareTypeFromPartial (sym: CARDINAL) ;
 VAR
-   t: Tree ;
+   t: tree ;
 BEGIN
    t := CompleteDeclarationOf(sym) ;
    IF t=NIL
@@ -1550,7 +1550,7 @@ END DeclaredOutstandingTypes ;
                            dependents.
 *)
 
-PROCEDURE CompleteDeclarationOf (sym: CARDINAL) : Tree ;
+PROCEDURE CompleteDeclarationOf (sym: CARDINAL) : tree ;
 BEGIN
    IF IsArray(sym)
    THEN
@@ -1575,9 +1575,9 @@ END CompleteDeclarationOf ;
                  we must tell GCC about it.
 *)
 
-PROCEDURE DeclareType (sym: CARDINAL) : Tree ;
+PROCEDURE DeclareType (sym: CARDINAL) : tree ;
 VAR
-   t       : Tree ;
+   t       : tree ;
    location: location_t ;
 BEGIN
    IF GetSType(sym)=NulSym
@@ -1587,7 +1587,7 @@ BEGIN
    ELSE
       IF GetSymName(sym)=NulName
       THEN
-         RETURN( Tree(Mod2Gcc(GetSType(sym))) )
+         RETURN( tree(Mod2Gcc(GetSType(sym))) )
       ELSE
          location := TokenToLocation(GetDeclaredMod(sym)) ;
          IF GccKnowsAbout(sym)
@@ -1623,7 +1623,7 @@ END DeclareIntegerConstant ;
    DeclareIntegerFromTree - declares an integer constant from a Tree, value.
 *)
 
-PROCEDURE DeclareConstantFromTree (sym: CARDINAL; value: Tree) ;
+PROCEDURE DeclareConstantFromTree (sym: CARDINAL; value: tree) ;
 BEGIN
    PreAddModGcc(sym, value) ;
    WatchRemoveList(sym, todolist) ;
@@ -1653,7 +1653,7 @@ END DeclareCharConstant ;
 
 PROCEDURE DeclareStringConstant (tokenno: CARDINAL; sym: CARDINAL) ;
 VAR
-   symtree : Tree ;
+   symtree : tree ;
 BEGIN
    Assert (IsConstStringKnown (sym)) ;
    IF IsConstStringM2nul (sym) OR IsConstStringCnul (sym)
@@ -1681,7 +1681,7 @@ END DeclareStringConstant ;
                           return a string constant.
 *)
 
-PROCEDURE PromoteToString (tokenno: CARDINAL; sym: CARDINAL) : Tree ;
+PROCEDURE PromoteToString (tokenno: CARDINAL; sym: CARDINAL) : tree ;
 VAR
    size: CARDINAL ;
    ch  : CHAR ;
@@ -1698,7 +1698,7 @@ BEGIN
       IF size > 1
       THEN
          (* It will be already be declared as a string, so return it.  *)
-         RETURN Tree (Mod2Gcc (sym))
+         RETURN tree (Mod2Gcc (sym))
       ELSE
          RETURN BuildStringConstant (KeyToCharStar (GetString (sym)),
                                      GetStringLength (tokenno, sym))
@@ -1715,7 +1715,7 @@ END PromoteToString ;
                           return a string constant.
 *)
 
-PROCEDURE PromoteToCString (tokenno: CARDINAL; sym: CARDINAL) : Tree ;
+PROCEDURE PromoteToCString (tokenno: CARDINAL; sym: CARDINAL) : tree ;
 VAR
    size: CARDINAL ;
    ch  : CHAR ;
@@ -1905,7 +1905,7 @@ END TryDeclareConstant ;
 PROCEDURE DeclareConstant (tokenno: CARDINAL; sym: CARDINAL) ;
 VAR
    type: CARDINAL ;
-   t   : Tree ;
+   t   : tree ;
 BEGIN
    IF IsConst(sym)
    THEN
@@ -2011,7 +2011,7 @@ END TryDeclareConst ;
    DeclareConst - declares a const to gcc and returns a Tree.
 *)
 
-PROCEDURE DeclareConst (tokenno: CARDINAL; sym: CARDINAL) : Tree ;
+PROCEDURE DeclareConst (tokenno: CARDINAL; sym: CARDINAL) : tree ;
 VAR
    type: CARDINAL ;
 BEGIN
@@ -2457,7 +2457,7 @@ END IsExternalToWholeProgram ;
 PROCEDURE DeclareProcedureToGccWholeProgram (Sym: CARDINAL) ;
 VAR
    returnType,
-   GccParam  : Tree ;
+   GccParam  : tree ;
    scope,
    Son,
    p, i      : CARDINAL ;
@@ -2526,7 +2526,7 @@ END DeclareProcedureToGccWholeProgram ;
 PROCEDURE DeclareProcedureToGccSeparateProgram (Sym: CARDINAL) ;
 VAR
    returnType,
-   GccParam  : Tree ;
+   GccParam  : tree ;
    scope,
    Son,
    p, i      : CARDINAL ;
@@ -3078,7 +3078,7 @@ END DumpFilteredDefinitive ;
    PreAddModGcc - adds a relationship between sym and tree.
 *)
 
-PROCEDURE PreAddModGcc (sym: CARDINAL; tree: Tree) ;
+PROCEDURE PreAddModGcc (sym: CARDINAL; tree: tree) ;
 BEGIN
    AddModGcc (sym, tree)
 END PreAddModGcc ;
@@ -3088,9 +3088,9 @@ END PreAddModGcc ;
    DeclareDefaultType - declares a default type, sym, with, name.
 *)
 
-PROCEDURE DeclareDefaultType (sym: CARDINAL; name: ARRAY OF CHAR; gcctype: Tree) ;
+PROCEDURE DeclareDefaultType (sym: CARDINAL; name: ARRAY OF CHAR; gcctype: tree) ;
 VAR
-   t        : Tree ;
+   t        : tree ;
    high, low: CARDINAL ;
    location : location_t ;
 BEGIN
@@ -3155,7 +3155,7 @@ END DeclareBoolean ;
                            (if the back end support such a type).
 *)
 
-PROCEDURE DeclareFixedSizedType (name: ARRAY OF CHAR; type: CARDINAL; t: Tree) ;
+PROCEDURE DeclareFixedSizedType (name: ARRAY OF CHAR; type: CARDINAL; t: tree) ;
 VAR
    location : location_t ;
    typetype,
@@ -3316,7 +3316,7 @@ END DeclareDefaultConstants ;
                  a procedure will return the procedure Tree.
 *)
 
-PROCEDURE FindContext (sym: CARDINAL) : Tree ;
+PROCEDURE FindContext (sym: CARDINAL) : tree ;
 BEGIN
    sym := GetProcedureScope(sym) ;
    IF sym=NulSym
@@ -3379,9 +3379,9 @@ END FindOuterModule ;
 PROCEDURE DoVariableDeclaration (var: CARDINAL; name: ADDRESS;
                                  isImported, isExported,
                                  isTemporary, isGlobal: BOOLEAN;
-                                 scope: Tree) ;
+                                 scope: tree) ;
 VAR
-   type    : Tree ;
+   type    : tree ;
    varType : CARDINAL ;
    location: location_t ;
 BEGIN
@@ -3455,7 +3455,7 @@ END IsGlobal ;
 
 PROCEDURE DeclareVariable (ModSym, variable: CARDINAL) ;
 VAR
-   scope: Tree ;
+   scope: tree ;
    decl : CARDINAL ;
 BEGIN
    IF NOT GccKnowsAbout (variable)
@@ -3483,7 +3483,7 @@ END DeclareVariable ;
 
 PROCEDURE DeclareVariableWholeProgram (mainModule, variable: CARDINAL) ;
 VAR
-   scope: Tree ;
+   scope: tree ;
    decl : CARDINAL ;
 BEGIN
    IF NOT GccKnowsAbout (variable)
@@ -3624,7 +3624,7 @@ END DeclareLocalVariables ;
 
 PROCEDURE DeclareModuleVariables (sym: CARDINAL) ;
 VAR
-   scope : Tree ;
+   scope : tree ;
    i, Var: CARDINAL ;
 BEGIN
    i := 1 ;
@@ -3649,7 +3649,7 @@ END DeclareModuleVariables ;
    DeclareFieldValue -
 *)
 
-PROCEDURE DeclareFieldValue (sym: CARDINAL; value: Tree; VAR list: Tree) : Tree ;
+PROCEDURE DeclareFieldValue (sym: CARDINAL; value: tree; VAR list: tree) : tree ;
 VAR
    location: location_t ;
 BEGIN
@@ -3668,11 +3668,11 @@ END DeclareFieldValue ;
    DeclareFieldEnumeration - declares an enumerator within the current enumeration type.
 *)
 
-PROCEDURE DeclareFieldEnumeration (sym: WORD) : Tree ;
+PROCEDURE DeclareFieldEnumeration (sym: WORD) : tree ;
 VAR
    type    : CARDINAL ;
    field,
-   enumlist: Tree ;
+   enumlist: tree ;
 BEGIN
    (* add relationship between gccSym and sym *)
    type := GetSType (sym) ;
@@ -3688,10 +3688,10 @@ END DeclareFieldEnumeration ;
    DeclareEnumeration - declare an enumerated type.
 *)
 
-PROCEDURE DeclareEnumeration (sym: WORD) : Tree ;
+PROCEDURE DeclareEnumeration (sym: WORD) : tree ;
 VAR
    enumlist,
-   gccenum : Tree ;
+   gccenum : tree ;
    location: location_t ;
 BEGIN
    location := TokenToLocation (GetDeclaredMod (sym)) ;
@@ -3707,11 +3707,11 @@ END DeclareEnumeration ;
 *)
 
 PROCEDURE DeclareSubrangeNarrow (location: location_t;
-                                 high, low: CARDINAL; type: Tree) : Tree ;
+                                 high, low: CARDINAL; type: tree) : tree ;
 VAR
    m2low, m2high,
    lowtree,
-   hightree     : Tree ;
+   hightree     : tree ;
 BEGIN
    (* No zero alignment, therefore the front end will prioritize subranges to match
       unsigned int, int, or ZTYPE assuming the low..high range fits.  *)
@@ -3743,10 +3743,10 @@ END DeclareSubrangeNarrow ;
    DeclareSubrange - declare a subrange type.
 *)
 
-PROCEDURE DeclareSubrange (sym: CARDINAL) : Tree ;
+PROCEDURE DeclareSubrange (sym: CARDINAL) : tree ;
 VAR
    type,
-   gccsym   : Tree ;
+   gccsym   : tree ;
    align,
    high, low: CARDINAL ;
    location: location_t ;
@@ -4503,7 +4503,7 @@ END PrintTerse ;
    CheckAlignment -
 *)
 
-PROCEDURE CheckAlignment (type: Tree; sym: CARDINAL) : Tree ;
+PROCEDURE CheckAlignment (type: tree; sym: CARDINAL) : tree ;
 VAR
    align: CARDINAL ;
 BEGIN
@@ -4525,7 +4525,7 @@ END CheckAlignment ;
    CheckPragma -
 *)
 
-PROCEDURE CheckPragma (type: Tree; sym: CARDINAL) : Tree ;
+PROCEDURE CheckPragma (type: tree; sym: CARDINAL) : tree ;
 BEGIN
    IF IsDeclaredPacked (sym)
    THEN
@@ -4630,7 +4630,7 @@ END DetermineIfRecordPacked ;
 PROCEDURE DeclarePackedSubrange (equiv, sym: CARDINAL) ;
 VAR
    type,
-   gccsym   : Tree ;
+   gccsym   : tree ;
    high, low: CARDINAL ;
    location : location_t ;
 BEGIN
@@ -4651,7 +4651,7 @@ PROCEDURE DeclarePackedSet (equiv, sym: CARDINAL) ;
 VAR
    highLimit,
    range,
-   gccsym   : Tree ;
+   gccsym   : tree ;
    type,
    high, low: CARDINAL ;
    location: location_t ;
@@ -4680,7 +4680,7 @@ VAR
    equiv,
    type    : CARDINAL ;
    field,
-   enumlist: Tree ;
+   enumlist: tree ;
 BEGIN
    (* add relationship between gccSym and sym *)
    type := GetSType (sym) ;
@@ -4700,7 +4700,7 @@ END DeclarePackedFieldEnumeration ;
 PROCEDURE DeclarePackedEnumeration (equiv, sym: CARDINAL) ;
 VAR
    enumlist,
-   gccenum : Tree ;
+   gccenum : tree ;
    location: location_t ;
 BEGIN
    location := TokenToLocation(GetDeclaredMod(sym)) ;
@@ -4740,7 +4740,7 @@ END DeclarePackedType ;
    doDeclareEquivalent -
 *)
 
-PROCEDURE doDeclareEquivalent (sym: CARDINAL; p: doDeclareProcedure) : Tree ;
+PROCEDURE doDeclareEquivalent (sym: CARDINAL; p: doDeclareProcedure) : tree ;
 VAR
    equiv: CARDINAL ;
 BEGIN
@@ -4758,7 +4758,7 @@ END doDeclareEquivalent ;
    PossiblyPacked -
 *)
 
-PROCEDURE PossiblyPacked (sym: CARDINAL; isPacked: BOOLEAN) : Tree ;
+PROCEDURE PossiblyPacked (sym: CARDINAL; isPacked: BOOLEAN) : tree ;
 BEGIN
    IF isPacked
    THEN
@@ -4784,7 +4784,7 @@ END PossiblyPacked ;
    GetPackedType - returns a possibly packed type for field.
 *)
 
-PROCEDURE GetPackedType (sym: CARDINAL) : Tree ;
+PROCEDURE GetPackedType (sym: CARDINAL) : tree ;
 BEGIN
    IF IsSubrange(sym)
    THEN
@@ -4805,10 +4805,10 @@ END GetPackedType ;
                      the offsets if appropriate.
 *)
 
-PROCEDURE MaybeAlignField (field: CARDINAL; VAR byteOffset, bitOffset: Tree) : Tree ;
+PROCEDURE MaybeAlignField (field: CARDINAL; VAR byteOffset, bitOffset: tree) : tree ;
 VAR
    f, ftype,
-   nbits   : Tree ;
+   nbits   : tree ;
    location: location_t ;
 BEGIN
    f := Mod2Gcc(field) ;
@@ -4832,7 +4832,7 @@ END MaybeAlignField ;
                    The final gcc record type is returned.
 *)
 
-PROCEDURE DeclareRecord (Sym: CARDINAL) : Tree ;
+PROCEDURE DeclareRecord (Sym: CARDINAL) : tree ;
 VAR
    Field     : CARDINAL ;
    i         : CARDINAL ;
@@ -4842,11 +4842,11 @@ VAR
    byteOffset,
    bitOffset,
    FieldList,
-   RecordType: Tree ;
+   RecordType: tree ;
    location  : location_t ;
 BEGIN
    i := 1 ;
-   FieldList := Tree(NIL) ;
+   FieldList := tree(NIL) ;
    RecordType := DoStartDeclaration(Sym, BuildStartRecord) ;
    location := TokenToLocation(GetDeclaredMod(Sym)) ;
    byteOffset := GetIntegerZero(location) ;
@@ -4898,10 +4898,10 @@ END DeclareRecord ;
    DeclareRecordField -
 *)
 
-PROCEDURE DeclareRecordField (sym: CARDINAL) : Tree ;
+PROCEDURE DeclareRecordField (sym: CARDINAL) : tree ;
 VAR
    field,
-   GccFieldType: Tree ;
+   GccFieldType: tree ;
    location    : location_t ;
 BEGIN
    location := TokenToLocation(GetDeclaredMod(sym)) ;
@@ -4916,18 +4916,18 @@ END DeclareRecordField ;
                     The final gcc record type is returned.
 *)
 
-PROCEDURE DeclareVarient (sym: CARDINAL) : Tree ;
+PROCEDURE DeclareVarient (sym: CARDINAL) : tree ;
 VAR
    Field       : CARDINAL ;
    i           : CARDINAL ;
    byteOffset,
    bitOffset,
    FieldList,
-   VarientType : Tree ;
+   VarientType : tree ;
    location    : location_t ;
 BEGIN
    i := 1 ;
-   FieldList := Tree(NIL) ;
+   FieldList := tree(NIL) ;
    VarientType := DoStartDeclaration(sym, BuildStartVarient) ;
    location := TokenToLocation(GetDeclaredMod(sym)) ;
    byteOffset := GetIntegerZero(location) ;
@@ -4958,19 +4958,19 @@ END DeclareVarient ;
    DeclareFieldVarient -
 *)
 
-PROCEDURE DeclareFieldVarient (sym: CARDINAL) : Tree ;
+PROCEDURE DeclareFieldVarient (sym: CARDINAL) : tree ;
 VAR
    i, f        : CARDINAL ;
    VarientList,
    VarientType,
    byteOffset,
    bitOffset,
-   GccFieldType: Tree ;
+   GccFieldType: tree ;
    location    : location_t ;
 BEGIN
    location := TokenToLocation(GetDeclaredMod(sym)) ;
    i := 1 ;
-   VarientList := Tree(NIL) ;
+   VarientList := tree(NIL) ;
    VarientType := DoStartDeclaration(sym, BuildStartFieldVarient) ;
    (* no need to store the [sym, RecordType] tuple as it is stored by DeclareRecord which calls us *)
    byteOffset := GetIntegerZero(location) ;
@@ -4999,7 +4999,7 @@ END DeclareFieldVarient ;
    DeclarePointer - declares a pointer type to gcc and returns the Tree.
 *)
 
-PROCEDURE DeclarePointer (sym: CARDINAL) : Tree ;
+PROCEDURE DeclarePointer (sym: CARDINAL) : tree ;
 BEGIN
    RETURN( BuildPointerType(Mod2Gcc(GetSType(sym))) )
 END DeclarePointer ;
@@ -5009,7 +5009,7 @@ END DeclarePointer ;
    DeclareUnbounded - builds an unbounded type and returns the gcc tree.
 *)
 
-PROCEDURE DeclareUnbounded (sym: CARDINAL) : Tree ;
+PROCEDURE DeclareUnbounded (sym: CARDINAL) : tree ;
 VAR
    record: CARDINAL ;
 BEGIN
@@ -5035,13 +5035,13 @@ END DeclareUnbounded ;
    BuildIndex -
 *)
 
-PROCEDURE BuildIndex (tokenno: CARDINAL; array: CARDINAL) : Tree ;
+PROCEDURE BuildIndex (tokenno: CARDINAL; array: CARDINAL) : tree ;
 VAR
    Subscript: CARDINAL ;
    Type,
    High, Low: CARDINAL ;
    n,
-   low, high: Tree ;
+   low, high: tree ;
    location : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -5079,12 +5079,12 @@ END BuildIndex ;
    DeclareArray - declares an array to gcc and returns the gcc tree.
 *)
 
-PROCEDURE DeclareArray (Sym: CARDINAL) : Tree ;
+PROCEDURE DeclareArray (Sym: CARDINAL) : tree ;
 VAR
    typeOfArray: CARDINAL ;
    ArrayType,
    GccArray,
-   GccIndex   : Tree ;
+   GccIndex   : tree ;
    Subscript  : CARDINAL ;
    tokenno    : CARDINAL ;
    location   : location_t ;
@@ -5122,12 +5122,12 @@ END DeclareArray ;
    DeclareProcType - declares a procedure type to gcc and returns the gcc type tree.
 *)
 
-PROCEDURE DeclareProcType (Sym: CARDINAL) : Tree ;
+PROCEDURE DeclareProcType (Sym: CARDINAL) : tree ;
 VAR
    i, p, Son,
    ReturnType: CARDINAL ;
    func,
-   GccParam  : Tree ;
+   GccParam  : tree ;
    location  : location_t ;
 BEGIN
    ReturnType := GetSType(Sym) ;
@@ -5287,14 +5287,14 @@ END PushNoOfBits ;
                      low and high are the limits of the subrange.
 *)
 
-PROCEDURE DeclareLargeSet (n: Name; type: CARDINAL; low, high: CARDINAL) : Tree ;
+PROCEDURE DeclareLargeSet (n: Name; type: CARDINAL; low, high: CARDINAL) : tree ;
 VAR
    lowtree,
    hightree,
    BitsInSet,
    RecordType,
    GccField,
-   FieldList : Tree ;
+   FieldList : tree ;
    bpw       : CARDINAL ;
    location  : location_t ;
 BEGIN
@@ -5304,7 +5304,7 @@ BEGIN
    lowtree    := PopIntegerTree() ;
    PushValue(high) ;
    hightree   := PopIntegerTree() ;
-   FieldList  := Tree(NIL) ;
+   FieldList  := tree(NIL) ;
    RecordType := BuildStartRecord(location, KeyToCharStar(n)) ;  (* no problem with recursive types here *)
    PushNoOfBits(type, low, high) ;
    PushCard(1) ;
@@ -5357,7 +5357,7 @@ END DeclareLargeSet ;
 *)
 
 PROCEDURE DeclareLargeOrSmallSet (sym: CARDINAL;
-                                  n: Name; type: CARDINAL; low, high: CARDINAL) : Tree ;
+                                  n: Name; type: CARDINAL; low, high: CARDINAL) : tree ;
 VAR
    location: location_t ;
    packed  : BOOLEAN ;
@@ -5383,9 +5383,9 @@ END DeclareLargeOrSmallSet ;
    DeclareSet - declares a set type to gcc and returns a Tree.
 *)
 
-PROCEDURE DeclareSet (sym: CARDINAL) : Tree ;
+PROCEDURE DeclareSet (sym: CARDINAL) : tree ;
 VAR
-   gccsym   : Tree ;
+   gccsym   : tree ;
    type,
    high, low: CARDINAL ;
 BEGIN
@@ -5456,9 +5456,9 @@ END CheckResolveSubrange ;
                             return the GCC Tree equivalent.
 *)
 
-PROCEDURE TypeConstFullyDeclared (sym: CARDINAL) : Tree ;
+PROCEDURE TypeConstFullyDeclared (sym: CARDINAL) : tree ;
 VAR
-   t: Tree ;
+   t: tree ;
 BEGIN
    IF IsEnumeration(sym)
    THEN
@@ -6462,7 +6462,7 @@ END PoisonSymbols ;
    ConstantKnownAndUsed -
 *)
 
-PROCEDURE ConstantKnownAndUsed (sym: CARDINAL; t: Tree) ;
+PROCEDURE ConstantKnownAndUsed (sym: CARDINAL; t: tree) ;
 BEGIN
    DeclareConstantFromTree(sym, RememberConstant(t))
 END ConstantKnownAndUsed ;
diff --git a/gcc/m2/gm2-compiler/M2GenGCC.def b/gcc/m2/gm2-compiler/M2GenGCC.def
index fc7cdf281dd..762f5d797c8 100644
--- a/gcc/m2/gm2-compiler/M2GenGCC.def
+++ b/gcc/m2/gm2-compiler/M2GenGCC.def
@@ -32,8 +32,7 @@ DEFINITION MODULE M2GenGCC ;
 *)
 
 FROM M2GCCDeclare IMPORT WalkAction ;
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t, tree ;
 FROM M2BasicBlock IMPORT BasicBlock ;
 
 
@@ -60,7 +59,7 @@ PROCEDURE ResolveConstantExpressions (p: WalkAction; bb: BasicBlock) : BOOLEAN ;
                           param.HIGH.
 *)
 
-PROCEDURE GetHighFromUnbounded (location: location_t; dim, param: CARDINAL) : Tree ;
+PROCEDURE GetHighFromUnbounded (location: location_t; dim, param: CARDINAL) : tree ;
 
 
 (*
@@ -68,7 +67,7 @@ PROCEDURE GetHighFromUnbounded (location: location_t; dim, param: CARDINAL) : Tr
                   then convert the string into a character constant.
 *)
 
-PROCEDURE StringToChar (t: Tree; type, str: CARDINAL) : Tree ;
+PROCEDURE StringToChar (t: tree; type, str: CARDINAL) : tree ;
 
 
 (*
@@ -76,7 +75,7 @@ PROCEDURE StringToChar (t: Tree; type, str: CARDINAL) : Tree ;
                         It coerces a lvalue into an internal pointer type
 *)
 
-PROCEDURE LValueToGenericPtr (location: location_t; sym: CARDINAL) : Tree ;
+PROCEDURE LValueToGenericPtr (location: location_t; sym: CARDINAL) : tree ;
 
 
 (*
@@ -84,7 +83,7 @@ PROCEDURE LValueToGenericPtr (location: location_t; sym: CARDINAL) : Tree ;
                         coerces, t, appropriately.
 *)
 
-PROCEDURE ZConstToTypedConst (t: Tree; op1, op2: CARDINAL) : Tree ;
+PROCEDURE ZConstToTypedConst (t: tree; op1, op2: CARDINAL) : tree ;
 
 
 (*
@@ -102,7 +101,7 @@ PROCEDURE ZConstToTypedConst (t: Tree; op1, op2: CARDINAL) : Tree ;
                                             which fits in dest.
 *)
 
-PROCEDURE PrepareCopyString (tokenno: CARDINAL; VAR length, srcTree: Tree;
+PROCEDURE PrepareCopyString (tokenno: CARDINAL; VAR length, srcTree: tree;
                              src, destStrType: CARDINAL) : BOOLEAN ;
 
 
diff --git a/gcc/m2/gm2-compiler/M2GenGCC.mod b/gcc/m2/gm2-compiler/M2GenGCC.mod
index fc3fa204ac0..67d3e92ac4f 100644
--- a/gcc/m2/gm2-compiler/M2GenGCC.mod
+++ b/gcc/m2/gm2-compiler/M2GenGCC.mod
@@ -210,8 +210,8 @@ FROM m2expr IMPORT GetIntegerZero, GetIntegerOne,
                    BuildAddAddress,
                    BuildIfInRangeGoto, BuildIfNotInRangeGoto ;
 
-FROM m2tree IMPORT Tree, debug_tree, skip_const_decl ;
-FROM m2linemap IMPORT location_t ;
+FROM m2tree IMPORT debug_tree, skip_const_decl ;
+FROM gcctypes IMPORT location_t, tree ;
 
 FROM m2decl IMPORT BuildStringConstant, BuildCStringConstant,
                    DeclareKnownConstant, GetBitsPerBitset,
@@ -673,7 +673,7 @@ END ResolveConstantExpressions ;
               constant representing the storage size in bytes.
 *)
 
-PROCEDURE FindSize (tokenno: CARDINAL; sym: CARDINAL) : Tree ;
+PROCEDURE FindSize (tokenno: CARDINAL; sym: CARDINAL) : tree ;
 VAR
    location: location_t ;
 BEGIN
@@ -728,7 +728,7 @@ END FindType ;
    BuildTreeFromInterface - generates a GCC tree from an interface definition.
 *)
 
-PROCEDURE BuildTreeFromInterface (sym: CARDINAL) : Tree ;
+PROCEDURE BuildTreeFromInterface (sym: CARDINAL) : tree ;
 CONST
    DebugTokPos = FALSE ;
 VAR
@@ -738,9 +738,9 @@ VAR
    str,
    obj     : CARDINAL ;
    gccName,
-   tree    : Tree ;
+   asmTree : tree ;
 BEGIN
-   tree := Tree (NIL) ;
+   asmTree := tree (NIL) ;
    IF sym#NulSym
    THEN
       i := 1 ;
@@ -757,8 +757,8 @@ BEGIN
                ELSE
                   gccName := BuildCStringConstant (KeyToCharStar (name), LengthKey (name))
                END ;
-               tree := ChainOnParamValue (tree, gccName, PromoteToCString (tok, str),
-                                          skip_const_decl (Mod2Gcc (obj))) ;
+               asmTree := ChainOnParamValue (asmTree, gccName, PromoteToCString (tok, str),
+                                             skip_const_decl (Mod2Gcc (obj))) ;
                IF DebugTokPos
                THEN
                   WarnStringAt (InitString ('input expression'), tok)
@@ -772,7 +772,7 @@ BEGIN
          INC(i)
       UNTIL (str = NulSym) AND (obj = NulSym) ;
    END ;
-   RETURN tree
+   RETURN asmTree
 END BuildTreeFromInterface ;
 
 
@@ -780,18 +780,18 @@ END BuildTreeFromInterface ;
    BuildTrashTreeFromInterface - generates a GCC string tree from an interface definition.
 *)
 
-PROCEDURE BuildTrashTreeFromInterface (sym: CARDINAL) : Tree ;
+PROCEDURE BuildTrashTreeFromInterface (sym: CARDINAL) : tree ;
 CONST
    DebugTokPos = FALSE ;
 VAR
-   tok : CARDINAL ;
-   i   : CARDINAL ;
+   tok    : CARDINAL ;
+   i      : CARDINAL ;
    str,
-   obj : CARDINAL ;
-   name: Name ;
-   tree: Tree ;
+   obj    : CARDINAL ;
+   name   : Name ;
+   asmTree: tree ;
 BEGIN
-   tree := Tree (NIL) ;
+   asmTree := tree (NIL) ;
    IF sym # NulSym
    THEN
       i := 1 ;
@@ -801,7 +801,7 @@ BEGIN
          THEN
             IF IsConstString (str)
             THEN
-               tree := AddStringToTreeList (tree, PromoteToCString (tok, str)) ;
+               asmTree := AddStringToTreeList (asmTree, PromoteToCString (tok, str)) ;
                IF DebugTokPos
                THEN
                   WarnStringAt (InitString ('trash expression'), tok)
@@ -821,7 +821,7 @@ BEGIN
          INC (i)
       UNTIL (str = NulSym) AND (obj = NulSym)
    END ;
-   RETURN tree
+   RETURN asmTree
 END BuildTrashTreeFromInterface ;
 
 
@@ -843,7 +843,7 @@ VAR
    inputs,
    outputs,
    trash,
-   labels          : Tree ;
+   labels          : tree ;
    location        : location_t ;
 BEGIN
    GetQuadOtok (quad, asmpos, op, op1, op2, GnuAsm,
@@ -902,7 +902,7 @@ END FoldRange ;
 
 PROCEDURE CodeSaveException (des, exceptionProcedure: CARDINAL) ;
 VAR
-   functValue: Tree ;
+   functValue: tree ;
    location  : location_t;
 BEGIN
    location := TokenToLocation (CurrentQuadToken) ;
@@ -921,7 +921,7 @@ END CodeSaveException ;
 
 PROCEDURE CodeRestoreException (des, exceptionProcedure: CARDINAL) ;
 VAR
-   functValue: Tree ;
+   functValue: tree ;
    location  : location_t;
 BEGIN
    location := TokenToLocation (CurrentQuadToken) ;
@@ -1228,7 +1228,7 @@ END CodeFinallyEnd ;
    GetAddressOfUnbounded - returns the address of the unbounded array contents.
 *)
 
-PROCEDURE GetAddressOfUnbounded (location: location_t; param: CARDINAL) : Tree ;
+PROCEDURE GetAddressOfUnbounded (location: location_t; param: CARDINAL) : tree ;
 VAR
    UnboundedType: CARDINAL ;
 BEGIN
@@ -1247,12 +1247,12 @@ END GetAddressOfUnbounded ;
                           param.HIGH.
 *)
 
-PROCEDURE GetHighFromUnbounded (location: location_t; dim, param: CARDINAL) : Tree ;
+PROCEDURE GetHighFromUnbounded (location: location_t; dim, param: CARDINAL) : tree ;
 VAR
    UnboundedType,
    ArrayType,
    HighField    : CARDINAL ;
-   HighTree     : Tree ;
+   HighTree     : tree ;
    accessibleDim: CARDINAL ;
    (* remainingDim : CARDINAL ;  *)
 BEGIN
@@ -1296,9 +1296,9 @@ END GetHighFromUnbounded ;
                                 occupies.
 *)
 
-PROCEDURE GetSizeOfHighFromUnbounded (tokenno: CARDINAL; param: CARDINAL) : Tree ;
+PROCEDURE GetSizeOfHighFromUnbounded (tokenno: CARDINAL; param: CARDINAL) : tree ;
 VAR
-   t            : Tree ;
+   t            : tree ;
    UnboundedType,
    ArrayType    : CARDINAL ;
    i, n         : CARDINAL ;
@@ -1338,11 +1338,11 @@ END GetSizeOfHighFromUnbounded ;
                              else call Builtins.alloca.
 *)
 
-PROCEDURE MaybeDebugBuiltinAlloca (location: location_t; tok: CARDINAL; high: Tree) : Tree ;
+PROCEDURE MaybeDebugBuiltinAlloca (location: location_t; tok: CARDINAL; high: tree) : tree ;
 VAR
    call,
    memptr,
-   func  : Tree ;
+   func  : tree ;
 BEGIN
    IF DebugBuiltins
    THEN
@@ -1368,10 +1368,10 @@ END MaybeDebugBuiltinAlloca ;
                              else call Builtins.memcpy.
 *)
 
-PROCEDURE MaybeDebugBuiltinMemcpy (location: location_t; src, dest, nbytes: Tree) : Tree ;
+PROCEDURE MaybeDebugBuiltinMemcpy (location: location_t; src, dest, nbytes: tree) : tree ;
 VAR
    call,
-   func: Tree ;
+   func: tree ;
 BEGIN
    IF DebugBuiltins
    THEN
@@ -1405,7 +1405,7 @@ VAR
    UnboundedType: CARDINAL ;
    Addr,
    High,
-   NewArray     : Tree ;
+   NewArray     : tree ;
 BEGIN
    location := TokenToLocation (tokenno) ;
    UnboundedType := GetType (param) ;
@@ -1431,7 +1431,7 @@ END MakeCopyUse ;
    GetParamAddress - returns the address of parameter, param.
 *)
 
-PROCEDURE GetParamAddress (location: location_t; proc, param: CARDINAL) : Tree ;
+PROCEDURE GetParamAddress (location: location_t; proc, param: CARDINAL) : tree ;
 VAR
    sym,
    type: CARDINAL ;
@@ -1496,7 +1496,7 @@ END IsUnboundedWrittenTo ;
    GetParamSize - returns the size in bytes of, param.
 *)
 
-PROCEDURE GetParamSize (tokenno: CARDINAL; param: CARDINAL) : Tree ;
+PROCEDURE GetParamSize (tokenno: CARDINAL; param: CARDINAL) : tree ;
 BEGIN
    Assert(IsVar(param) OR IsParameter(param)) ;
    IF IsUnbounded(param)
@@ -1513,7 +1513,7 @@ END GetParamSize ;
                       else jump to, fLabel.
 *)
 
-PROCEDURE DoIsIntersection (tokenno: CARDINAL; ta, tb, tc, td: Tree; tLabel, fLabel: String) ;
+PROCEDURE DoIsIntersection (tokenno: CARDINAL; ta, tb, tc, td: tree; tLabel, fLabel: String) ;
 VAR
    location: location_t ;
 BEGIN
@@ -1549,7 +1549,7 @@ PROCEDURE BuildCascadedIfThenElsif (tokenno: CARDINAL;
                                     proc, param: CARDINAL) ;
 VAR
    ta, tb,
-   tc, td  : Tree ;
+   tc, td  : tree ;
    n, j    : CARDINAL ;
    tLabel,
    fLabel,
@@ -1852,7 +1852,7 @@ END CodeNewLocalVar ;
 PROCEDURE CodeKillLocalVar (CurrentProcedure: CARDINAL) ;
 VAR
    begin, end: CARDINAL ;
-   proc      : Tree ;
+   proc      : tree ;
 BEGIN
    GetProcedureBeginEnd (CurrentProcedure, begin, end) ;
    CurrentQuadToken := end ;
@@ -1907,7 +1907,7 @@ VAR
    expr, none, procedure               : CARDINAL ;
    combinedpos,
    returnpos, exprpos, nonepos, procpos: CARDINAL ;
-   value, length                       : Tree ;
+   value, length                       : tree ;
    location                            : location_t ;
 BEGIN
    GetQuadOtok (quad, returnpos, op, expr, none, procedure,
@@ -1942,17 +1942,17 @@ END CodeReturnValue ;
 
 PROCEDURE CodeCall (tokenno: CARDINAL; procedure: CARDINAL) ;
 VAR
-   tree    : Tree ;
+   callTree: tree ;
    location: location_t ;
 BEGIN
    IF IsProcedure (procedure)
    THEN
       DeclareParameters (procedure) ;
-      tree := CodeDirectCall (tokenno, procedure)
+      callTree := CodeDirectCall (tokenno, procedure)
    ELSIF IsProcType (SkipType (GetType (procedure)))
    THEN
       DeclareParameters (SkipType (GetType (procedure))) ;
-      tree := CodeIndirectCall (tokenno, procedure) ;
+      callTree := CodeIndirectCall (tokenno, procedure) ;
       procedure := SkipType (GetType (procedure))
    ELSE
       InternalError ('expecting Procedure or ProcType')
@@ -1960,7 +1960,7 @@ BEGIN
    IF GetType (procedure) = NulSym
    THEN
       location := TokenToLocation (tokenno) ;
-      AddStatement (location, tree)
+      AddStatement (location, callTree)
    ELSE
       (* leave tree alone - as it will be picked up when processing FunctValue *)
    END
@@ -1973,7 +1973,7 @@ END CodeCall ;
                 CanUseBuiltin or IsProcedureBuiltinAvailable returns TRUE.
 *)
 
-PROCEDURE UseBuiltin (tokenno: CARDINAL; Sym: CARDINAL) : Tree ;
+PROCEDURE UseBuiltin (tokenno: CARDINAL; Sym: CARDINAL) : tree ;
 BEGIN
    IF BuiltinExists(KeyToCharStar(GetProcedureBuiltin(Sym)))
    THEN
@@ -1988,10 +1988,10 @@ END UseBuiltin ;
    CodeDirectCall - calls a function/procedure.
 *)
 
-PROCEDURE CodeDirectCall (tokenno: CARDINAL; procedure: CARDINAL) : Tree ;
+PROCEDURE CodeDirectCall (tokenno: CARDINAL; procedure: CARDINAL) : tree ;
 VAR
    location: location_t ;
-   call    : Tree ;
+   call    : tree ;
 BEGIN
    location := TokenToLocation (tokenno) ;
    IF IsProcedureBuiltinAvailable (procedure)
@@ -1999,7 +1999,7 @@ BEGIN
       call := UseBuiltin (tokenno, procedure) ;
       IF call # NIL
       THEN
-         call := BuildBuiltinCallTree (location, call)
+         call := BuildBuiltinCallTree (call)
       END
    ELSE
       call := NIL
@@ -2027,9 +2027,9 @@ END CodeDirectCall ;
    CodeIndirectCall - calls a function/procedure indirectly.
 *)
 
-PROCEDURE CodeIndirectCall (tokenno: CARDINAL; ProcVar: CARDINAL) : Tree ;
+PROCEDURE CodeIndirectCall (tokenno: CARDINAL; ProcVar: CARDINAL) : tree ;
 VAR
-   ReturnType: Tree ;
+   ReturnType: tree ;
    proc      : CARDINAL ;
    location  : location_t ;
 BEGIN
@@ -2037,9 +2037,9 @@ BEGIN
    proc := SkipType(GetType(ProcVar)) ;
    IF GetType(proc)=NulSym
    THEN
-      ReturnType := Tree(NIL)
+      ReturnType := tree(NIL)
    ELSE
-      ReturnType := Tree(Mod2Gcc(GetType(proc)))
+      ReturnType := tree(Mod2Gcc(GetType(proc)))
    END ;
 
    (* now we dereference the lvalue if necessary *)
@@ -2060,7 +2060,7 @@ END CodeIndirectCall ;
                   then convert the string into a character constant.
 *)
 
-PROCEDURE StringToChar (t: Tree; type, str: CARDINAL) : Tree ;
+PROCEDURE StringToChar (t: tree; type, str: CARDINAL) : tree ;
 VAR
    s: String ;
    n: Name ;
@@ -2099,7 +2099,7 @@ END StringToChar ;
                a symbol of, type.
 *)
 
-PROCEDURE ConvertTo (t: Tree; type, op3: CARDINAL) : Tree ;
+PROCEDURE ConvertTo (t: tree; type, op3: CARDINAL) : tree ;
 BEGIN
    IF SkipType(type)#SkipType(GetType(op3))
    THEN
@@ -2121,7 +2121,7 @@ END ConvertTo ;
                 first and then the remaining types.
 *)
 
-PROCEDURE ConvertRHS (t: Tree; type, rhs: CARDINAL) : Tree ;
+PROCEDURE ConvertRHS (t: tree; type, rhs: CARDINAL) : tree ;
 BEGIN
    t := StringToChar (Mod2Gcc (rhs), type, rhs) ;
    RETURN ConvertTo (t, type, rhs)
@@ -2168,7 +2168,7 @@ END IsConstant ;
    CheckConvertCoerceParameter -
 *)
 
-PROCEDURE CheckConvertCoerceParameter (tokenno: CARDINAL; op1, op2, op3: CARDINAL) : Tree ;
+PROCEDURE CheckConvertCoerceParameter (tokenno: CARDINAL; op1, op2, op3: CARDINAL) : tree ;
 VAR
    OperandType,
    ParamType  : CARDINAL ;
@@ -2221,7 +2221,7 @@ END CheckConvertCoerceParameter ;
    CheckConstant - checks to see whether we should declare the constant.
 *)
 
-PROCEDURE CheckConstant (tokenno: CARDINAL; des, expr: CARDINAL) : Tree ;
+PROCEDURE CheckConstant (tokenno: CARDINAL; des, expr: CARDINAL) : tree ;
 VAR
    location: location_t ;
 BEGIN
@@ -2249,7 +2249,7 @@ VAR
    max,
    tmp,
    res,
-   val     : Tree ;
+   val     : tree ;
    location: location_t ;
 BEGIN
    location := TokenToLocation (CurrentQuadToken) ;
@@ -2334,7 +2334,7 @@ VAR
    bits,
    max,
    tmp,
-   val     : Tree ;
+   val     : tree ;
    location: location_t ;
 BEGIN
    location := TokenToLocation (tokenno) ;
@@ -2427,7 +2427,7 @@ VAR
    op1, op2,
    op3       : CARDINAL ;
    op        : QuadOperator ;
-   val, call : Tree ;
+   val, call : tree ;
    location  : location_t ;
 BEGIN
    GetQuad (q, op, op1, op2, op3) ;
@@ -2571,13 +2571,13 @@ END CodeParam ;
    Replace - replace the entry for sym in the double entry bookkeeping with sym/tree.
 *)
 
-PROCEDURE Replace (sym: CARDINAL; tree: Tree) ;
+PROCEDURE Replace (sym: CARDINAL; gcc: tree) ;
 BEGIN
    IF GccKnowsAbout (sym)
    THEN
       RemoveMod2Gcc (sym)
    END ;
-   AddModGcc (sym, tree)
+   AddModGcc (sym, gcc)
 END Replace ;
 
 
@@ -2589,7 +2589,7 @@ END Replace ;
 PROCEDURE CodeFunctValue (location: location_t; op1: CARDINAL) ;
 VAR
    call,
-   value: Tree ;
+   value: tree ;
 BEGIN
    (*
       operator : FunctValueOp
@@ -2710,7 +2710,7 @@ END FoldStringConvertCnul ;
 
 PROCEDURE CodeAddr (tokenno: CARDINAL; quad: CARDINAL; op1, op3: CARDINAL) ;
 VAR
-   value   : Tree ;
+   value   : tree ;
    type    : CARDINAL ;
    location: location_t ;
 BEGIN
@@ -2973,9 +2973,9 @@ END PerformFoldBecomes ;
 
 
 VAR
-   tryBlock: Tree ;    (* this must be placed into gccgm2 and it must follow the
+   tryBlock: tree ;    (* this must be placed into gccgm2 and it must follow the
                           current function scope - ie it needs work with nested procedures *)
-   handlerBlock: Tree ;
+   handlerBlock: tree ;
 
 
 (*
@@ -3003,7 +3003,7 @@ BEGIN
    location := TokenToLocation (CurrentQuadToken) ;
    IF value = NulSym
    THEN
-      AddStatement (location, BuildThrow (location, Tree (NIL)))
+      AddStatement (location, BuildThrow (location, tree (NIL)))
    ELSE
       DeclareConstant (CurrentQuadToken, value) ;  (* checks to see whether it is a constant and declares it *)
       AddStatement (location, BuildThrow (location, BuildConvert (location,
@@ -3061,7 +3061,7 @@ END DescribeTypeError ;
                        typed constants.
 *)
 
-PROCEDURE DefaultConvertGM2 (sym: CARDINAL) : Tree ;
+PROCEDURE DefaultConvertGM2 (sym: CARDINAL) : tree ;
 BEGIN
    sym := SkipType (sym) ;
    IF sym=Bitset
@@ -3080,9 +3080,9 @@ END DefaultConvertGM2 ;
 *)
 
 PROCEDURE FoldConstBecomes (tokenno: CARDINAL;
-                            op1, op3: CARDINAL) : Tree ;
+                            op1, op3: CARDINAL) : tree ;
 VAR
-   t, type : Tree ;
+   t, type : tree ;
    location: location_t ;
 BEGIN
    IF IsConstSet(op3) OR ((SkipType(GetType(op3))#NulSym) AND
@@ -3144,7 +3144,7 @@ END FoldConstBecomes ;
                                             which fits in dest.
 *)
 
-PROCEDURE PrepareCopyString (tokenno: CARDINAL; VAR length, srcTree: Tree;
+PROCEDURE PrepareCopyString (tokenno: CARDINAL; VAR length, srcTree: tree;
                              src, destStrType: CARDINAL) : BOOLEAN ;
 VAR
    location : location_t ;
@@ -3216,7 +3216,7 @@ END PrepareCopyString ;
 
 PROCEDURE checkArrayElements (des, expr: CARDINAL; virtpos, despos, exprpos: CARDINAL) : BOOLEAN ;
 VAR
-   e1, e3: Tree ;
+   e1, e3: tree ;
    t1, t3: CARDINAL ;
 BEGIN
    t1 := GetType (des) ;
@@ -3383,7 +3383,7 @@ VAR
    op2pos,
    exprpos          : CARDINAL ;
    length,
-   exprt            : Tree ;
+   exprt            : tree ;
    location        : location_t ;
 BEGIN
    GetQuadOtok (quad, becomespos, op, des, op2, expr,
@@ -3463,9 +3463,9 @@ END CodeBecomes ;
                         It coerces a lvalue into an internal pointer type
 *)
 
-PROCEDURE LValueToGenericPtr (location: location_t; sym: CARDINAL) : Tree ;
+PROCEDURE LValueToGenericPtr (location: location_t; sym: CARDINAL) : tree ;
 VAR
-   t: Tree ;
+   t: tree ;
 BEGIN
    t := Mod2Gcc (sym) ;
    IF t = NIL
@@ -3485,9 +3485,9 @@ END LValueToGenericPtr ;
                                  else convert to type, type. Return the converted tree.
 *)
 
-PROCEDURE LValueToGenericPtrOrConvert (sym: CARDINAL; type: Tree) : Tree ;
+PROCEDURE LValueToGenericPtrOrConvert (sym: CARDINAL; type: tree) : tree ;
 VAR
-   n       : Tree ;
+   n       : tree ;
    location: location_t ;
 BEGIN
    n := Mod2Gcc (sym) ;
@@ -3511,7 +3511,7 @@ END LValueToGenericPtrOrConvert ;
                         coerces, t, appropriately.
 *)
 
-PROCEDURE ZConstToTypedConst (t: Tree; op1, op2: CARDINAL) : Tree ;
+PROCEDURE ZConstToTypedConst (t: tree; op1, op2: CARDINAL) : tree ;
 VAR
    location: location_t ;
 BEGIN
@@ -3554,7 +3554,7 @@ END ZConstToTypedConst ;
 PROCEDURE FoldBinary (tokenno: CARDINAL; p: WalkAction; binop: BuildBinProcedure;
                       quad: CARDINAL; op1, op2, op3: CARDINAL) ;
 VAR
-   tl, tr, tv, resType: Tree ;
+   tl, tr, tv, resType: tree ;
    location           : location_t ;
 BEGIN
    (* firstly ensure that constant literals are declared *)
@@ -3606,7 +3606,7 @@ END FoldBinary ;
    ConvertBinaryOperands -
 *)
 
-PROCEDURE ConvertBinaryOperands (location: location_t; VAR tl, tr: Tree; type, op2, op3: CARDINAL) ;
+PROCEDURE ConvertBinaryOperands (location: location_t; VAR tl, tr: tree; type, op2, op3: CARDINAL) ;
 BEGIN
    tl := NIL ;
    tr := NIL ;
@@ -3651,7 +3651,7 @@ VAR
    min, max,
    lowest,
    tv,
-   tl, tr    : Tree ;
+   tl, tr    : tree ;
    location  : location_t ;
 BEGIN
    (* firstly ensure that constant literals are declared.  *)
@@ -3721,7 +3721,7 @@ VAR
    op3pos,
    type    : CARDINAL ;
    tv,
-   tl, tr  : Tree ;
+   tl, tr  : tree ;
    location: location_t ;
 BEGIN
    (* firstly ensure that constant literals are declared *)
@@ -4638,7 +4638,7 @@ END CodeModFloor ;
 PROCEDURE FoldBuiltinConst (tokenno: CARDINAL; p: WalkAction;
                             quad: CARDINAL; result, constDesc: CARDINAL) ;
 VAR
-   value: Tree ;
+   value: tree ;
 BEGIN
    value := GetBuiltinConst (KeyToCharStar (Name (constDesc))) ;
    IF value = NIL
@@ -4660,7 +4660,7 @@ END FoldBuiltinConst ;
 PROCEDURE FoldBuiltinTypeInfo (tokenno: CARDINAL; p: WalkAction;
                                quad: CARDINAL; op1, op2, op3: CARDINAL) ;
 VAR
-   t       : Tree ;
+   t       : tree ;
    location: location_t ;
 BEGIN
    IF GccKnowsAbout(op2) AND CompletelyResolved(op2)
@@ -4919,7 +4919,7 @@ END CodeStandardFunction ;
 
 PROCEDURE CodeSavePriority (oldValue, scopeSym, procedureSym: CARDINAL) ;
 VAR
-   funcTree: Tree ;
+   funcTree: tree ;
    mod     : CARDINAL ;
    n       : Name ;
    location: location_t ;
@@ -4963,7 +4963,7 @@ END CodeSavePriority ;
 
 PROCEDURE CodeRestorePriority (oldValue, scopeSym, procedureSym: CARDINAL) ;
 VAR
-   funcTree: Tree ;
+   funcTree: tree ;
    mod     : CARDINAL ;
    n       : Name ;
    location: location_t ;
@@ -5104,7 +5104,7 @@ VAR
    unbounded,
    leftproc,
    rightproc,
-   varproc  : Tree ;
+   varproc  : tree ;
    location : location_t ;
 BEGIN
    (* firstly ensure that constant literals are declared *)
@@ -5608,7 +5608,7 @@ END GetSetLimits ;
    GetFieldNo - returns the field number in the, set, which contains, element.
 *)
 
-PROCEDURE GetFieldNo (tokenno: CARDINAL; element: CARDINAL; set: CARDINAL; VAR offset: Tree) : INTEGER ;
+PROCEDURE GetFieldNo (tokenno: CARDINAL; element: CARDINAL; set: CARDINAL; VAR offset: tree) : INTEGER ;
 VAR
    low, high, bpw, c: CARDINAL ;
    location         : location_t ;
@@ -5673,7 +5673,7 @@ PROCEDURE CodeIncl (result, expr: CARDINAL) ;
 VAR
    low,
    high    : CARDINAL ;
-   offset  : Tree ;
+   offset  : tree ;
    fieldno : INTEGER ;
    location: location_t ;
 BEGIN
@@ -5750,7 +5750,7 @@ PROCEDURE CodeExcl (result, expr: CARDINAL) ;
 VAR
    low,
    high    : CARDINAL ;
-   offset  : Tree ;
+   offset  : tree ;
    fieldno : INTEGER ;
    location: location_t ;
 BEGIN
@@ -5792,10 +5792,10 @@ END CodeExcl ;
 *)
 
 PROCEDURE FoldUnary (tokenno: CARDINAL; p: WalkAction;
-                     unop: BuildUnaryProcedure; ZConstToTypedConst: Tree;
+                     unop: BuildUnaryProcedure; ZConstToTypedConst: tree;
                      quad: CARDINAL; result, expr: CARDINAL) ;
 VAR
-   tv      : Tree ;
+   tv      : tree ;
    location: location_t ;
 BEGIN
    (* firstly ensure that any constant literal is declared *)
@@ -5809,7 +5809,7 @@ BEGIN
          (* fine, we can take advantage of this and fold constants *)
          IF IsConst (result)
          THEN
-            IF ZConstToTypedConst = Tree(NIL)
+            IF ZConstToTypedConst = tree(NIL)
             THEN
                IF (GetType (expr) = NulSym) OR IsOrdinalType (SkipType (GetType (expr)))
                THEN
@@ -5884,13 +5884,13 @@ END FoldUnarySet ;
    CodeUnaryCheck - encode a unary arithmetic operation.
 *)
 
-PROCEDURE CodeUnaryCheck (unop: BuildUnaryCheckProcedure; ZConstToTypedConst: Tree;
+PROCEDURE CodeUnaryCheck (unop: BuildUnaryCheckProcedure; ZConstToTypedConst: tree;
                           quad: CARDINAL; result, expr: CARDINAL) ;
 VAR
    lowestType: CARDINAL ;
    min, max,
    lowest,
-   tv        : Tree ;
+   tv        : tree ;
    location  : location_t ;
 BEGIN
    (* firstly ensure that any constant literal is declared *)
@@ -5914,9 +5914,9 @@ BEGIN
    CheckOrResetOverflow (CurrentQuadToken, tv, MustCheckOverflow(quad)) ;
    IF IsConst (result)
    THEN
-      IF ZConstToTypedConst = Tree (NIL)
+      IF ZConstToTypedConst = tree (NIL)
       THEN
-         ZConstToTypedConst := Tree (Mod2Gcc( GetType (expr)))
+         ZConstToTypedConst := tree (Mod2Gcc( GetType (expr)))
       END ;
       (* still have a constant which was not resolved, pass it to gcc *)
       PutConst (result, FindType (expr)) ;
@@ -5936,10 +5936,10 @@ END CodeUnaryCheck ;
    CodeUnary - encode a unary arithmetic operation.
 *)
 
-PROCEDURE CodeUnary (unop: BuildUnaryProcedure; ZConstToTypedConst: Tree;
+PROCEDURE CodeUnary (unop: BuildUnaryProcedure; ZConstToTypedConst: tree;
                      quad: CARDINAL; result, expr: CARDINAL) ;
 VAR
-   tv      : Tree ;
+   tv      : tree ;
    location: location_t ;
 BEGIN
    (* firstly ensure that any constant literal is declared *)
@@ -5951,9 +5951,9 @@ BEGIN
    CheckOrResetOverflow (CurrentQuadToken, tv, MustCheckOverflow (quad)) ;
    IF IsConst(result)
    THEN
-      IF ZConstToTypedConst=Tree(NIL)
+      IF ZConstToTypedConst=tree(NIL)
       THEN
-         ZConstToTypedConst := Tree(Mod2Gcc(GetType(expr)))
+         ZConstToTypedConst := tree(Mod2Gcc(GetType(expr)))
       END ;
       (* still have a constant which was not resolved, pass it to gcc *)
       PutConst (result, FindType (expr)) ;
@@ -6014,7 +6014,7 @@ END CodeNegateChecked ;
 PROCEDURE FoldSize (tokenno: CARDINAL; p: WalkAction;
                     quad: CARDINAL; op1, op2, op3: CARDINAL) ;
 VAR
-   t       : Tree ;
+   t       : tree ;
    location: location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -6083,7 +6083,7 @@ PROCEDURE FoldRecordField (tokenno: CARDINAL; p: WalkAction;
 VAR
    recordType,
    fieldType : CARDINAL ;
-   ptr       : Tree ;
+   ptr       : tree ;
    location  : location_t ;
 BEGIN
    RETURN ;  (* this procedure should no longer be called *)
@@ -6131,7 +6131,7 @@ PROCEDURE CodeRecordField (result, record, field: CARDINAL) ;
 VAR
    recordType,
    fieldType : CARDINAL ;
-   ptr       : Tree ;
+   ptr       : tree ;
    location  : location_t ;
 BEGIN
    location := TokenToLocation (CurrentQuadToken) ;
@@ -6166,7 +6166,7 @@ END CodeRecordField ;
    BuildHighFromChar -
 *)
 
-PROCEDURE BuildHighFromChar (operand: CARDINAL) : Tree ;
+PROCEDURE BuildHighFromChar (operand: CARDINAL) : tree ;
 VAR
    location: location_t ;
 BEGIN
@@ -6204,7 +6204,7 @@ END SkipToArray ;
    BuildHighFromArray -
 *)
 
-PROCEDURE BuildHighFromArray (tokenno: CARDINAL; dim, operand: CARDINAL) : Tree ;
+PROCEDURE BuildHighFromArray (tokenno: CARDINAL; dim, operand: CARDINAL) : tree ;
 VAR
    Type    : CARDINAL ;
    location: location_t ;
@@ -6219,7 +6219,7 @@ END BuildHighFromArray ;
    BuildHighFromStaticArray -
 *)
 
-PROCEDURE BuildHighFromStaticArray (location: location_t; (* dim, *) Type: CARDINAL) : Tree ;
+PROCEDURE BuildHighFromStaticArray (location: location_t; (* dim, *) Type: CARDINAL) : tree ;
 VAR
    High, Low: CARDINAL ;
    Subscript,
@@ -6233,7 +6233,7 @@ BEGIN
       GetBaseTypeMinMax (Subrange, Low, High) ;
       IF GccKnowsAbout (High)
       THEN
-         RETURN Tree (Mod2Gcc (High))
+         RETURN tree (Mod2Gcc (High))
       END
    ELSIF IsSubrange(Subrange)
    THEN
@@ -6244,13 +6244,13 @@ BEGIN
       END
    ELSE
       MetaError1 ('array subscript {%1EDad:for} must be a subrange or enumeration type', Type) ;
-      RETURN Tree(NIL)
+      RETURN tree(NIL)
    END ;
    IF GccKnowsAbout (High)
    THEN
-      RETURN Tree (Mod2Gcc (High))
+      RETURN tree (Mod2Gcc (High))
    ELSE
-      RETURN Tree (NIL)
+      RETURN tree (NIL)
    END
 END BuildHighFromStaticArray ;
 
@@ -6259,7 +6259,7 @@ END BuildHighFromStaticArray ;
    BuildHighFromString -
 *)
 
-PROCEDURE BuildHighFromString (operand: CARDINAL) : Tree ;
+PROCEDURE BuildHighFromString (operand: CARDINAL) : tree ;
 VAR
    location: location_t ;
 BEGIN
@@ -6279,7 +6279,7 @@ END BuildHighFromString ;
                  HIGH(operand).
 *)
 
-PROCEDURE ResolveHigh (tokenno: CARDINAL; dim, operand: CARDINAL) : Tree ;
+PROCEDURE ResolveHigh (tokenno: CARDINAL; dim, operand: CARDINAL) : tree ;
 VAR
    Type    : CARDINAL ;
    location: location_t ;
@@ -6317,7 +6317,7 @@ END ResolveHigh ;
 PROCEDURE FoldHigh (tokenno: CARDINAL; p: WalkAction;
                     quad: CARDINAL; op1, dim, op3: CARDINAL) ;
 VAR
-   t       : Tree ;
+   t       : tree ;
    location: location_t ;
 BEGIN
    (* firstly ensure that any constant literal is declared *)
@@ -6327,7 +6327,7 @@ BEGIN
    THEN
       t := ResolveHigh(tokenno, dim, op3) ;
       (* fine, we can take advantage of this and fold constants *)
-      IF IsConst(op1) AND (t#Tree(NIL))
+      IF IsConst(op1) AND (t#tree(NIL))
       THEN
          PutConst(op1, Cardinal) ;
          AddModGcc(op1,
@@ -6382,7 +6382,7 @@ END CodeHigh ;
 
 PROCEDURE CodeUnbounded (result, array: CARDINAL) ;
 VAR
-   Addr    : Tree ;
+   Addr    : tree ;
    location: location_t ;
 BEGIN
    location := TokenToLocation (CurrentQuadToken) ;
@@ -6452,7 +6452,7 @@ VAR
    low,
    subscript  : CARDINAL ;
    a, ta,
-   ti, tl     : Tree ;
+   ti, tl     : tree ;
    location   : location_t ;
 BEGIN
    location := TokenToLocation (CurrentQuadToken) ;
@@ -6604,7 +6604,7 @@ END FoldElementSize ;
    PopKindTree - returns a Tree from M2ALU of the type implied by, op.
 *)
 
-PROCEDURE PopKindTree (op: CARDINAL; tokenno: CARDINAL) : Tree ;
+PROCEDURE PopKindTree (op: CARDINAL; tokenno: CARDINAL) : tree ;
 VAR
    type: CARDINAL ;
 BEGIN
@@ -6632,7 +6632,7 @@ PROCEDURE FoldConvert (tokenno: CARDINAL; p: WalkAction;
                        quad: CARDINAL; op1, op2, op3: CARDINAL) ;
 
 VAR
-   tl      : Tree ;
+   tl      : tree ;
    location: location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -6712,7 +6712,7 @@ END FoldConvert ;
 
 PROCEDURE CodeConvert (quad: CARDINAL; lhs, type, rhs: CARDINAL) ;
 VAR
-   tl, tr  : Tree ;
+   tl, tr  : tree ;
    location: location_t ;
 BEGIN
    CheckStop(quad) ;
@@ -7053,7 +7053,7 @@ END CodeIfSetLess ;
 
 PROCEDURE PerformCodeIfLess (quad: CARDINAL) ;
 VAR
-   tl, tr  : Tree ;
+   tl, tr  : tree ;
    location                   : location_t ;
    left, right, dest, combined,
    leftpos, rightpos, destpos : CARDINAL ;
@@ -7166,7 +7166,7 @@ END CodeIfSetGre ;
 
 PROCEDURE PerformCodeIfGre (quad: CARDINAL) ;
 VAR
-   tl, tr  : Tree ;
+   tl, tr  : tree ;
    location                   : location_t ;
    left, right, dest, combined,
    leftpos, rightpos, destpos : CARDINAL ;
@@ -7276,7 +7276,7 @@ END CodeIfSetLessEqu ;
 
 PROCEDURE PerformCodeIfLessEqu (quad: CARDINAL) ;
 VAR
-   tl, tr  : Tree ;
+   tl, tr  : tree ;
    location                   : location_t ;
    left, right, dest, combined,
    leftpos, rightpos, destpos : CARDINAL ;
@@ -7388,7 +7388,7 @@ END CodeIfSetGreEqu ;
 
 PROCEDURE PerformCodeIfGreEqu (quad: CARDINAL) ;
 VAR
-   tl, tr: Tree ;
+   tl, tr: tree ;
    location                   : location_t ;
    left, right, dest, combined,
    leftpos, rightpos, destpos : CARDINAL ;
@@ -7575,7 +7575,7 @@ END ComparisonMixTypes ;
 
 PROCEDURE PerformCodeIfEqu (quad: CARDINAL) ;
 VAR
-   tl, tr                     : Tree ;
+   tl, tr                     : tree ;
    location                   : location_t ;
    left, right, dest, combined,
    leftpos, rightpos, destpos : CARDINAL ;
@@ -7627,7 +7627,7 @@ END PerformCodeIfEqu ;
 
 PROCEDURE PerformCodeIfNotEqu (quad: CARDINAL) ;
 VAR
-   tl, tr                     : Tree ;
+   tl, tr                     : tree ;
    location                   : location_t ;
    left, right, dest, combined,
    leftpos, rightpos, destpos : CARDINAL ;
@@ -7760,7 +7760,7 @@ END MixTypes3 ;
 PROCEDURE BuildIfVarInConstValue (location: location_t; tokenno: CARDINAL;
                                   constsetvalue: PtrToValue; var, trueexit: CARDINAL) ;
 VAR
-   vt, lt, ht  : Tree ;
+   vt, lt, ht  : tree ;
    type,
    low, high, n: CARDINAL ;
    truelabel   : String ;
@@ -7783,7 +7783,7 @@ END BuildIfVarInConstValue ;
 
 PROCEDURE BuildIfNotVarInConstValue (quad: CARDINAL; constsetvalue: PtrToValue; var, trueexit: CARDINAL) ;
 VAR
-   vt, lt, ht  : Tree ;
+   vt, lt, ht  : tree ;
    type,
    low, high, n: CARDINAL ;
    falselabel,
@@ -7830,7 +7830,7 @@ VAR
    high    : CARDINAL ;
    lowtree,
    hightree,
-   offset  : Tree ;
+   offset  : tree ;
    fieldno : INTEGER ;
    location                   : location_t ;
    left, right, dest, combined,
@@ -7900,7 +7900,7 @@ VAR
    high    : CARDINAL ;
    lowtree,
    hightree,
-   offset  : Tree ;
+   offset  : tree ;
    fieldno : INTEGER ;
    location                   : location_t ;
    left, right, dest, combined,
@@ -8039,7 +8039,7 @@ VAR
    typepos,
    xindrpos        : CARDINAL ;
    length,
-   newstr          : Tree ;
+   newstr          : tree ;
    location        : location_t ;
 BEGIN
    GetQuadOtok (quad, xindrpos, op, left, type, right,
diff --git a/gcc/m2/gm2-compiler/M2LangDump.def b/gcc/m2/gm2-compiler/M2LangDump.def
index 5d4c9b600a1..d8b049430e5 100644
--- a/gcc/m2/gm2-compiler/M2LangDump.def
+++ b/gcc/m2/gm2-compiler/M2LangDump.def
@@ -21,7 +21,7 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE M2LangDump ;
 
-FROM m2tree IMPORT Tree ;
+FROM gcctypes IMPORT tree ;
 FROM DynamicStrings IMPORT String ;
 FROM FIO IMPORT File ;
 
@@ -31,7 +31,7 @@ FROM FIO IMPORT File ;
                         If no filter is specified it will always return default.
 *)
 
-PROCEDURE IsDumpRequiredTree (tree: Tree; default: BOOLEAN) : BOOLEAN ;
+PROCEDURE IsDumpRequiredTree (gcctree: tree; default: BOOLEAN) : BOOLEAN ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/M2LangDump.mod b/gcc/m2/gm2-compiler/M2LangDump.mod
index ec3522b62dd..aaf2bb1d73f 100644
--- a/gcc/m2/gm2-compiler/M2LangDump.mod
+++ b/gcc/m2/gm2-compiler/M2LangDump.mod
@@ -377,11 +377,11 @@ END GetDumpFile ;
    IsDumpRequiredTree - return TRUE if the gcc tree should be dumped.
 *)
 
-PROCEDURE IsDumpRequiredTree (tree: Tree; default: BOOLEAN) : BOOLEAN ;
+PROCEDURE IsDumpRequiredTree (gcctree: tree; default: BOOLEAN) : BOOLEAN ;
 VAR
    sym: CARDINAL ;
 BEGIN
-   sym := Gcc2Mod (tree) ;
+   sym := Gcc2Mod (gcctree) ;
    IF sym = NulSym
    THEN
       RETURN default
diff --git a/gcc/m2/gm2-compiler/M2LexBuf.def b/gcc/m2/gm2-compiler/M2LexBuf.def
index 07f5934a631..19e261e83cb 100644
--- a/gcc/m2/gm2-compiler/M2LexBuf.def
+++ b/gcc/m2/gm2-compiler/M2LexBuf.def
@@ -32,7 +32,7 @@ DEFINITION MODULE M2LexBuf ;
 FROM SYSTEM IMPORT ADDRESS ;
 FROM M2Reserved IMPORT toktype ;
 FROM DynamicStrings IMPORT String ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t ;
 FROM NameKey IMPORT Name ;
 
 
diff --git a/gcc/m2/gm2-compiler/M2LexBuf.mod b/gcc/m2/gm2-compiler/M2LexBuf.mod
index fd2373fa501..5a0b6086bcb 100644
--- a/gcc/m2/gm2-compiler/M2LexBuf.mod
+++ b/gcc/m2/gm2-compiler/M2LexBuf.mod
@@ -35,7 +35,8 @@ FROM M2Printf IMPORT printf0, printf1, printf2, printf3 ;
 FROM M2Debug IMPORT Assert ;
 FROM NameKey IMPORT makekey ;
 FROM NumberIO IMPORT CardToStr ;
-FROM m2linemap IMPORT location_t, GetLocationBinary ;
+FROM gcctypes IMPORT location_t ;
+FROM m2linemap IMPORT GetLocationBinary ;
 FROM M2Emit IMPORT UnknownLocation, BuiltinsLocation ;
 FROM M2Error IMPORT WarnStringAt ;
 FROM M2MetaError IMPORT MetaErrorT0 ;
diff --git a/gcc/m2/gm2-compiler/M2Options.def b/gcc/m2/gm2-compiler/M2Options.def
index d2d7e68fc35..3ddda3df052 100644
--- a/gcc/m2/gm2-compiler/M2Options.def
+++ b/gcc/m2/gm2-compiler/M2Options.def
@@ -32,7 +32,7 @@ DEFINITION MODULE M2Options ;
 
 FROM SYSTEM IMPORT ADDRESS ;
 FROM DynamicStrings IMPORT String ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t ;
 
 
 VAR
diff --git a/gcc/m2/gm2-compiler/M2Options.mod b/gcc/m2/gm2-compiler/M2Options.mod
index 3b230dc3fd5..e4ffa362ff3 100644
--- a/gcc/m2/gm2-compiler/M2Options.mod
+++ b/gcc/m2/gm2-compiler/M2Options.mod
@@ -30,7 +30,7 @@ FROM M2Printf IMPORT printf0, printf1, fprintf1 ;
 FROM FIO IMPORT StdErr ;
 FROM libc IMPORT exit, printf ;
 FROM Debug IMPORT Halt ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t ;
 FROM m2configure IMPORT FullPathCPP, TargetIEEEQuadDefault ;
 FROM M2Error IMPORT InternalError ;
 FROM FormatStrings IMPORT Sprintf1 ;
diff --git a/gcc/m2/gm2-compiler/M2Range.def b/gcc/m2/gm2-compiler/M2Range.def
index f8c21156674..c328fd506f8 100644
--- a/gcc/m2/gm2-compiler/M2Range.def
+++ b/gcc/m2/gm2-compiler/M2Range.def
@@ -38,12 +38,12 @@ DEFINITION MODULE M2Range ;
                  time, post optimization.
 *)
 
-FROM SYSTEM IMPORT ADDRESS ;
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
+FROM CDataTypes IMPORT ConstCharStar ;
+FROM gcctypes IMPORT location_t, tree ;
 FROM DynamicStrings IMPORT String ;
 
 
+
 (*
    InitAssignmentRangeCheck - returns a range check node which
                               remembers the information necessary
@@ -315,7 +315,7 @@ PROCEDURE FoldRangeCheck (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
    CodeErrorCheck - returns a Tree calling the approprate exception handler.
 *)
 
-PROCEDURE CodeErrorCheck (r: CARDINAL; function, message: String) : Tree ;
+PROCEDURE CodeErrorCheck (r: CARDINAL; function, message: String) : tree ;
 
 
 (*
@@ -348,51 +348,51 @@ PROCEDURE WriteRangeCheck (r: CARDINAL) ;
    OverlapsRange - returns TRUE if a1..a2 overlaps with b1..b2.
 *)
 
-PROCEDURE OverlapsRange (a1, a2, b1, b2: Tree) : BOOLEAN ;
+PROCEDURE OverlapsRange (a1, a2, b1, b2: tree) : BOOLEAN ;
 
 
 (*
    IsEqual - returns TRUE if a=b.
 *)
 
-PROCEDURE IsEqual (a, b: Tree) : BOOLEAN ;
+PROCEDURE IsEqual (a, b: tree) : BOOLEAN ;
 
 
 (*
    IsGreaterOrEqual - returns TRUE if a>=b.
 *)
 
-PROCEDURE IsGreaterOrEqual (a, b: Tree) : BOOLEAN ;
+PROCEDURE IsGreaterOrEqual (a, b: tree) : BOOLEAN ;
 
 
 (*
    IsGreater - returns TRUE if a>b.
 *)
 
-PROCEDURE IsGreater (a, b: Tree) : BOOLEAN ;
+PROCEDURE IsGreater (a, b: tree) : BOOLEAN ;
 
 
 (*
    BuildIfCallWholeHandlerLoc - return a Tree containing a runtime test whether, condition, is true.
 *)
 
-PROCEDURE BuildIfCallWholeHandlerLoc (location: location_t; condition: Tree;
-                                      scope, message: ADDRESS) : Tree ;
+PROCEDURE BuildIfCallWholeHandlerLoc (location: location_t; condition: tree;
+                                      scope, message: ConstCharStar) : tree ;
 
 
 (*
    BuildIfCallRealHandlerLoc - return a Tree containing a runtime test whether, condition, is true.
 *)
 
-PROCEDURE BuildIfCallRealHandlerLoc (location: location_t; condition: Tree;
-                                     scope, message: ADDRESS) : Tree ;
+PROCEDURE BuildIfCallRealHandlerLoc (location: location_t; condition: tree;
+                                     scope, message: ConstCharStar) : tree ;
 
 
 (*
    GetMinMax - returns TRUE if we know the max and min of a type, t.
 *)
 
-PROCEDURE GetMinMax (tokenno: CARDINAL; type: CARDINAL; VAR min, max: Tree) : BOOLEAN ;
+PROCEDURE GetMinMax (tokenno: CARDINAL; type: CARDINAL; VAR min, max: tree) : BOOLEAN ;
 
 
 END M2Range.
diff --git a/gcc/m2/gm2-compiler/M2Range.mod b/gcc/m2/gm2-compiler/M2Range.mod
index a8e572eff50..c21bbfa885d 100644
--- a/gcc/m2/gm2-compiler/M2Range.mod
+++ b/gcc/m2/gm2-compiler/M2Range.mod
@@ -31,7 +31,9 @@ FROM SymbolTable IMPORT NulSym, GetLowestType, PutReadQuad, RemoveReadQuad,
                         IsParameter, GetDeclaredMod, IsVarParam, GetNthParam,
                         ModeOfAddr ;
 
-FROM m2tree IMPORT Tree, debug_tree ;
+FROM SYSTEM IMPORT ADDRESS ;
+FROM m2tree IMPORT debug_tree ;
+
 FROM m2linemap IMPORT ErrorAt, GetFilenameFromLocation, GetColumnNoFromLocation, GetLineNoFromLocation ;
 
 FROM m2type IMPORT GetMinFrom, GetMaxFrom,
@@ -155,7 +157,7 @@ VAR
    OverlapsRange - returns TRUE if a1..a2 overlaps with b1..b2.
 *)
 
-PROCEDURE OverlapsRange (a1, a2, b1, b2: Tree) : BOOLEAN ;
+PROCEDURE OverlapsRange (a1, a2, b1, b2: tree) : BOOLEAN ;
 BEGIN
    (* RETURN( ((a1<=b2) AND (a2>=b1)) ) *)
    RETURN( (CompareTrees(a1, b2)<=0) AND (CompareTrees(a2, b1)>=0) )
@@ -166,7 +168,7 @@ END OverlapsRange ;
    IsGreater - returns TRUE if a>b.
 *)
 
-PROCEDURE IsGreater (a, b: Tree) : BOOLEAN ;
+PROCEDURE IsGreater (a, b: tree) : BOOLEAN ;
 BEGIN
    RETURN( CompareTrees(a, b)>0 )
 END IsGreater ;
@@ -176,7 +178,7 @@ END IsGreater ;
    IsGreaterOrEqual - returns TRUE if a>=b.
 *)
 
-PROCEDURE IsGreaterOrEqual (a, b: Tree) : BOOLEAN ;
+PROCEDURE IsGreaterOrEqual (a, b: tree) : BOOLEAN ;
 BEGIN
    RETURN( CompareTrees(a, b)>=0 )
 END IsGreaterOrEqual ;
@@ -186,7 +188,7 @@ END IsGreaterOrEqual ;
    IsEqual - returns TRUE if a=b.
 *)
 
-PROCEDURE IsEqual (a, b: Tree) : BOOLEAN ;
+PROCEDURE IsEqual (a, b: tree) : BOOLEAN ;
 BEGIN
    RETURN( CompareTrees(a, b)=0 )
 END IsEqual ;
@@ -1073,7 +1075,7 @@ END FoldNil ;
    GetMinMax - returns TRUE if we know the max and min of m2type.
 *)
 
-PROCEDURE GetMinMax (tokenno: CARDINAL; type: CARDINAL; VAR min, max: Tree) : BOOLEAN ;
+PROCEDURE GetMinMax (tokenno: CARDINAL; type: CARDINAL; VAR min, max: tree) : BOOLEAN ;
 VAR
    minC, maxC: CARDINAL ;
    location  : location_t ;
@@ -1119,9 +1121,9 @@ END GetMinMax ;
 *)
 
 PROCEDURE OutOfRange (tokenno: CARDINAL;
-                      min: Tree;
+                      min: tree;
                       expr: CARDINAL;
-                      max: Tree;
+                      max: tree;
                       type: CARDINAL) : BOOLEAN ;
 BEGIN
    IF TreeOverflow (min)
@@ -1209,7 +1211,7 @@ END HandlerExists ;
 PROCEDURE FoldAssignment (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
 VAR
    p       : Range ;
-   min, max: Tree ;
+   min, max: tree ;
 BEGIN
    p := GetIndice (RangeIndex, r) ;
    WITH p^ DO
@@ -1246,7 +1248,7 @@ END FoldAssignment ;
 PROCEDURE FoldParameterAssign (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
 VAR
    p       : Range ;
-   min, max: Tree ;
+   min, max: tree ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
    WITH p^ DO
@@ -1281,7 +1283,7 @@ END FoldParameterAssign ;
 PROCEDURE FoldReturn (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
 VAR
    p       : Range ;
-   min, max: Tree ;
+   min, max: tree ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
    WITH p^ DO
@@ -1313,7 +1315,7 @@ END FoldReturn ;
 PROCEDURE FoldInc (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
 VAR
    p          : Range ;
-   t, min, max: Tree ;
+   t, min, max: tree ;
    location   : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -1364,7 +1366,7 @@ END FoldInc ;
 PROCEDURE FoldDec (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
 VAR
    p          : Range ;
-   t, min, max: Tree ;
+   t, min, max: tree ;
    location   : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -1481,7 +1483,7 @@ END CheckSet ;
 PROCEDURE FoldIncl (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
 VAR
    p       : Range ;
-   min, max: Tree ;
+   min, max: tree ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
    WITH p^ DO
@@ -1519,7 +1521,7 @@ END FoldIncl ;
 PROCEDURE FoldExcl (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
 VAR
    p       : Range ;
-   min, max: Tree ;
+   min, max: tree ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
    WITH p^ DO
@@ -1560,7 +1562,7 @@ VAR
    p       : Range ;
    shiftMin,
    shiftMax,
-   min, max: Tree ;
+   min, max: tree ;
    location   : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -1611,7 +1613,7 @@ VAR
    p        : Range ;
    rotateMin,
    rotateMax,
-   min, max : Tree ;
+   min, max : tree ;
    location   : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -1937,7 +1939,7 @@ END ForLoopBeginTypeCompatible ;
 PROCEDURE FoldForLoopBegin (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
 VAR
    p       : Range ;
-   min, max: Tree ;
+   min, max: tree ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
    WITH p^ DO
@@ -1972,7 +1974,7 @@ END FoldForLoopBegin ;
 PROCEDURE FoldForLoopTo (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
 VAR
    p       : Range ;
-   min, max: Tree ;
+   min, max: tree ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
    WITH p^ DO
@@ -2004,7 +2006,7 @@ END FoldForLoopTo ;
 PROCEDURE FoldStaticArraySubscript (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
 VAR
    p       : Range ;
-   min, max: Tree ;
+   min, max: tree ;
 BEGIN
    p := GetIndice (RangeIndex, r) ;
    WITH p^ DO
@@ -2327,9 +2329,9 @@ END FoldRangeCheck ;
                        is an LValue.
 *)
 
-PROCEDURE DeReferenceLValue (tokenno: CARDINAL; expr: CARDINAL) : Tree ;
+PROCEDURE DeReferenceLValue (tokenno: CARDINAL; expr: CARDINAL) : tree ;
 VAR
-   e       : Tree ;
+   e       : tree ;
    location: location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -2371,13 +2373,13 @@ END BuildStringParamLoc ;
    CodeErrorCheck - returns a Tree calling the approprate exception handler.
 *)
 
-PROCEDURE CodeErrorCheck (r: CARDINAL; function, message: String) : Tree ;
+PROCEDURE CodeErrorCheck (r: CARDINAL; function, message: String) : tree ;
 VAR
    filename: String ;
    line,
    column  : CARDINAL ;
    p       : Range ;
-   f       : Tree ;
+   f       : tree ;
    location: location_t ;
 BEGIN
    IF HandlerExists (r)
@@ -2468,11 +2470,11 @@ END IssueWarning ;
 *)
 
 PROCEDURE CodeErrorCheckLoc (location: location_t;
-                             function, message: ADDRESS; func: CARDINAL) : Tree ;
+                             function, message: ConstCharStar; func: CARDINAL) : tree ;
 VAR
    scope,
    errorMessage: String ;
-   t           : Tree ;
+   t           : tree ;
    filename    : String ;
    line,
    column      : CARDINAL ;
@@ -2518,7 +2520,7 @@ END CodeErrorCheckLoc ;
    IssueWarningLoc -
 *)
 
-PROCEDURE IssueWarningLoc (location: location_t; message: ADDRESS) ;
+PROCEDURE IssueWarningLoc (location: location_t; message: ConstCharStar) ;
 VAR
    s: String ;
 BEGIN
@@ -2533,8 +2535,8 @@ END IssueWarningLoc ;
    BuildIfCallWholeHandlerLoc - return a Tree containing a runtime test whether, condition, is true.
 *)
 
-PROCEDURE BuildIfCallWholeHandlerLoc (location: location_t; condition: Tree;
-                                      scope, message: ADDRESS) : Tree ;
+PROCEDURE BuildIfCallWholeHandlerLoc (location: location_t; condition: tree;
+                                      scope, message: ConstCharStar) : tree ;
 BEGIN
    RETURN BuildIfCallHandlerLoc (location, condition, scope, message, ExceptionWholeValue)
 END BuildIfCallWholeHandlerLoc ;
@@ -2544,8 +2546,8 @@ END BuildIfCallWholeHandlerLoc ;
    BuildIfCallRealHandlerLoc - return a Tree containing a runtime test whether, condition, is true.
 *)
 
-PROCEDURE BuildIfCallRealHandlerLoc (location: location_t; condition: Tree;
-                                     scope, message: ADDRESS) : Tree ;
+PROCEDURE BuildIfCallRealHandlerLoc (location: location_t; condition: tree;
+                                     scope, message: ConstCharStar) : tree ;
 BEGIN
    RETURN BuildIfCallHandlerLoc (location, condition, scope, message, ExceptionRealValue)
 END BuildIfCallRealHandlerLoc ;
@@ -2555,8 +2557,8 @@ END BuildIfCallRealHandlerLoc ;
    BuildIfCallHandlerLoc - return a Tree containing a runtime test whether, condition, is true.
 *)
 
-PROCEDURE BuildIfCallHandlerLoc (location: location_t; condition: Tree;
-                                 scope, message: ADDRESS; func: CARDINAL) : Tree ;
+PROCEDURE BuildIfCallHandlerLoc (location: location_t; condition: tree;
+                                 scope, message: ConstCharStar; func: CARDINAL) : tree ;
 BEGIN
    IF IsTrue (condition)
    THEN
@@ -2570,8 +2572,8 @@ END BuildIfCallHandlerLoc ;
    BuildIfCallHandler -
 *)
 
-PROCEDURE BuildIfCallHandler (condition: Tree; r: CARDINAL;
-                              function, message: String; warning: BOOLEAN) : Tree ;
+PROCEDURE BuildIfCallHandler (condition: tree; r: CARDINAL;
+                              function, message: String; warning: BOOLEAN) : tree ;
 BEGIN
    IF warning AND IsTrue (condition)
    THEN
@@ -2588,7 +2590,7 @@ END BuildIfCallHandler ;
 PROCEDURE RangeCheckReal (p: Range; r: CARDINAL; function, message: String) ;
 VAR
    e,
-   condition: Tree ;
+   condition: tree ;
    location : location_t ;
 BEGIN
    WITH p^ DO
@@ -2610,7 +2612,7 @@ PROCEDURE RangeCheckOrdinal (p: Range; r: CARDINAL; function, message: String) ;
 VAR
    condition,
    desMin, desMax,
-   exprMin, exprMax: Tree ;
+   exprMin, exprMax: tree ;
    location        : location_t ;
 BEGIN
    WITH p^ DO
@@ -2670,7 +2672,7 @@ PROCEDURE DoCodeAssignmentWithoutExprType (p: Range;
                                            r: CARDINAL; function, message: String) ;
 VAR
    condition,
-   desMin, desMax: Tree ;
+   desMin, desMax: tree ;
    location      : location_t ;
 BEGIN
    WITH p^ DO
@@ -2762,10 +2764,10 @@ END CodeReturn ;
    IfOutsideLimitsDo -
 *)
 
-PROCEDURE IfOutsideLimitsDo (tokenno: CARDINAL; min, expr, max: Tree; r: CARDINAL;
+PROCEDURE IfOutsideLimitsDo (tokenno: CARDINAL; min, expr, max: tree; r: CARDINAL;
                              function, message: String) ;
 VAR
-   condition: Tree ;
+   condition: tree ;
    location : location_t ;
 BEGIN
    location := TokenToLocation (tokenno) ;
@@ -2786,7 +2788,7 @@ VAR
    p             : Range ;
    t, condition,
    e,
-   desMin, desMax: Tree ;
+   desMin, desMax: tree ;
    location      : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -2829,7 +2831,7 @@ VAR
    p             : Range ;
    t, condition,
    e,
-   desMin, desMax: Tree ;
+   desMin, desMax: tree ;
    location      : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -2870,7 +2872,7 @@ PROCEDURE CodeInclExcl (tokenno: CARDINAL;
 VAR
    p             : Range ;
    e,
-   desMin, desMax: Tree ;
+   desMin, desMax: tree ;
    location      : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -2916,7 +2918,7 @@ VAR
    p                 : Range ;
    e,
    shiftMin, shiftMax,
-   desMin, desMax    : Tree ;
+   desMin, desMax    : tree ;
    location          : location_t ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
@@ -2958,7 +2960,7 @@ PROCEDURE CodeStaticArraySubscript (tokenno: CARDINAL;
                                     r: CARDINAL; function, message: String) ;
 VAR
    p             : Range ;
-   desMin, desMax: Tree ;
+   desMin, desMax: tree ;
    location      : location_t ;
 BEGIN
    location := TokenToLocation (tokenno) ;
@@ -2991,7 +2993,7 @@ PROCEDURE CodeDynamicArraySubscript (tokenno: CARDINAL;
 VAR
    UnboundedType: CARDINAL ;
    p            : Range ;
-   high, e      : Tree ;
+   high, e      : tree ;
    location     : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
@@ -3109,12 +3111,12 @@ END CodeForLoopTo ;
 *)
 
 PROCEDURE SameTypesCodeForLoopEnd (tokenNo: CARDINAL; r: CARDINAL; function, message: String;
-                                   p: Range; dmax: Tree) ;
+                                   p: Range; dmax: tree) ;
 VAR
    inc,
    room,
    statement,
-   condition: Tree ;
+   condition: tree ;
    location : location_t ;
 BEGIN
    location := TokenToLocation(tokenNo) ;
@@ -3134,7 +3136,7 @@ END SameTypesCodeForLoopEnd ;
 *)
 
 PROCEDURE DiffTypesCodeForLoopEnd (tokenNo: CARDINAL; r: CARDINAL; function, message: String;
-                                   p: Range; dmax, emin, emax: Tree) ;
+                                   p: Range; dmax, emin, emax: tree) ;
 VAR
    location  : location_t ;
    desoftypee,
@@ -3147,7 +3149,7 @@ VAR
    s4, s5, s6,
    s7, s8,
    lg1, lg2,
-   dz, ez    : Tree ;
+   dz, ez    : tree ;
 BEGIN
    location := TokenToLocation(tokenNo) ;
    WITH p^ DO
@@ -3219,7 +3221,7 @@ VAR
    isCard    : BOOLEAN ;
    p         : Range ;
    dmin, dmax,
-   emin, emax: Tree ;
+   emin, emax: tree ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
    WITH p^ DO
@@ -3255,7 +3257,7 @@ END CodeForLoopEnd ;
 PROCEDURE CodeNil (r: CARDINAL; function, message: String) ;
 VAR
    p           : Range ;
-   condition, t: Tree ;
+   condition, t: tree ;
    location    : location_t ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
@@ -3287,7 +3289,7 @@ VAR
    zero     : CARDINAL ;
    p        : Range ;
    condition,
-   e        : Tree ;
+   e        : tree ;
    location : location_t ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
@@ -3317,7 +3319,7 @@ VAR
    zero     : CARDINAL ;
    p        : Range ;
    condition,
-   e        : Tree ;
+   e        : tree ;
    location : location_t ;
 BEGIN
    p := GetIndice(RangeIndex, r) ;
diff --git a/gcc/m2/gm2-compiler/M2System.def b/gcc/m2/gm2-compiler/M2System.def
index 87612c16130..c8930fc8598 100644
--- a/gcc/m2/gm2-compiler/M2System.def
+++ b/gcc/m2/gm2-compiler/M2System.def
@@ -31,7 +31,7 @@ DEFINITION MODULE M2System ;
                  are mapped onto their equivalents in the gcc backend.
 *)
 
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t ;
 
 EXPORT QUALIFIED
                  System,           (* The SYSTEM module symbol.  *)
diff --git a/gcc/m2/gm2-compiler/M2System.mod b/gcc/m2/gm2-compiler/M2System.mod
index 69f21d5e1fa..38565b5e956 100644
--- a/gcc/m2/gm2-compiler/M2System.mod
+++ b/gcc/m2/gm2-compiler/M2System.mod
@@ -73,7 +73,7 @@ FROM M2Base IMPORT Real, Cardinal, Integer, Complex,
                    LongReal, LongCard, LongInt, LongComplex,
                    ShortReal, ShortCard, ShortInt, ShortComplex ;
 
-FROM m2tree IMPORT Tree ;
+FROM gcctypes IMPORT tree ;
 FROM m2linemap IMPORT BuiltinsLocation ;
 FROM m2decl IMPORT GetBitsPerBitset, GetBitsPerUnit ;
 
@@ -116,7 +116,7 @@ END Init ;
    CreateMinMaxFor - creates the min and max values for, type, given gccType.
 *)
 
-PROCEDURE CreateMinMaxFor (type: CARDINAL; min, max: ARRAY OF CHAR; gccType: Tree) ;
+PROCEDURE CreateMinMaxFor (type: CARDINAL; min, max: ARRAY OF CHAR; gccType: tree) ;
 VAR
    maxval, minval: CARDINAL ;
 BEGIN
@@ -140,7 +140,7 @@ END CreateMinMaxFor ;
 
 PROCEDURE MapType (type: CARDINAL;
                    name, min, max: ARRAY OF CHAR;
-                   needsExporting: BOOLEAN; t: Tree) ;
+                   needsExporting: BOOLEAN; t: tree) ;
 VAR
    n: Name ;
 BEGIN
@@ -170,7 +170,7 @@ END MapType ;
 *)
 
 PROCEDURE CreateType (name, min, max: ARRAY OF CHAR;
-                      needsExporting: BOOLEAN; gccType: Tree) : CARDINAL ;
+                      needsExporting: BOOLEAN; gccType: tree) : CARDINAL ;
 VAR
    type: CARDINAL ;
 BEGIN
@@ -194,7 +194,7 @@ END CreateType ;
 *)
 
 PROCEDURE AttemptToCreateType (name, min, max: ARRAY OF CHAR;
-                               needsExporting: BOOLEAN; gccType: Tree) ;
+                               needsExporting: BOOLEAN; gccType: tree) ;
 BEGIN
    Assert (IsLegal (CreateType (name, min, max, needsExporting, gccType)))
 END AttemptToCreateType ;
@@ -206,7 +206,7 @@ END AttemptToCreateType ;
 *)
 
 PROCEDURE CreateSetType (name, highBit: ARRAY OF CHAR;
-                         needsExporting: BOOLEAN; gccType: Tree) : CARDINAL ;
+                         needsExporting: BOOLEAN; gccType: tree) : CARDINAL ;
 VAR
    low,
    high,
@@ -237,7 +237,7 @@ END CreateSetType ;
 *)
 
 PROCEDURE AttemptToCreateSetType (name, highBit: ARRAY OF CHAR;
-                                  needsExporting: BOOLEAN; gccType: Tree) ;
+                                  needsExporting: BOOLEAN; gccType: tree) ;
 BEGIN
    Assert (IsLegal (CreateSetType (name, highBit, needsExporting, gccType)))
 END AttemptToCreateSetType ;
diff --git a/gcc/m2/gm2-compiler/P2SymBuild.mod b/gcc/m2/gm2-compiler/P2SymBuild.mod
index 0b90b762e2e..a5060242a0e 100644
--- a/gcc/m2/gm2-compiler/P2SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P2SymBuild.mod
@@ -37,7 +37,7 @@ FROM M2Options IMPORT PedanticParamNames, ExtendedOpaque ;
 FROM StrIO IMPORT WriteString, WriteLn ;
 FROM M2Base IMPORT ZType ;
 FROM Storage IMPORT ALLOCATE ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t ;
 FROM M2LexBuf IMPORT TokenToLocation ;
 
 FROM M2Reserved IMPORT ImportTok, ExportTok, QualifiedTok, UnQualifiedTok,
diff --git a/gcc/m2/gm2-compiler/SymbolConversion.def b/gcc/m2/gm2-compiler/SymbolConversion.def
index 81a52e4aa1e..f8deeecaaee 100644
--- a/gcc/m2/gm2-compiler/SymbolConversion.def
+++ b/gcc/m2/gm2-compiler/SymbolConversion.def
@@ -29,7 +29,7 @@ DEFINITION MODULE SymbolConversion ;
     Description: mapping between m2 symbols and gcc symbols.
 *)
 
-FROM m2tree IMPORT Tree ;
+FROM gcctypes IMPORT tree ;
 FROM SYSTEM IMPORT WORD ;
 
 
@@ -37,21 +37,21 @@ FROM SYSTEM IMPORT WORD ;
    Mod2Gcc - given a modula-2 symbol, sym, return the gcc equivalent.
 *)
 
-PROCEDURE Mod2Gcc (sym: CARDINAL) : Tree ;
+PROCEDURE Mod2Gcc (sym: CARDINAL) : tree ;
 
 
 (*
    Gcc2Mod - given a gcc tree return the modula-2 symbol.
 *)
 
-PROCEDURE Gcc2Mod (tree: Tree) : CARDINAL ;
+PROCEDURE Gcc2Mod (tree: tree) : CARDINAL ;
 
 
 (*
    AddModGcc - adds the tuple [ sym, gcc ] into the database.
 *)
 
-PROCEDURE AddModGcc (sym: CARDINAL; gcc: Tree) ;
+PROCEDURE AddModGcc (sym: CARDINAL; gcc: tree) ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/SymbolConversion.mod b/gcc/m2/gm2-compiler/SymbolConversion.mod
index 738b40d5be5..3b1b3b99c88 100644
--- a/gcc/m2/gm2-compiler/SymbolConversion.mod
+++ b/gcc/m2/gm2-compiler/SymbolConversion.mod
@@ -32,7 +32,7 @@ FROM SymbolTable IMPORT IsConst, PopValue, IsValueSolved, GetSymName,
 FROM M2Error IMPORT InternalError ;
 FROM M2ALU IMPORT PushTypeOfTree ;
 FROM m2block IMPORT GetErrorNode, RememberConstant ;
-FROM m2tree IMPORT Tree ;
+FROM gcctypes IMPORT tree ;
 FROM M2Printf IMPORT printf1 ;
 FROM Storage IMPORT ALLOCATE ;
 FROM SYSTEM IMPORT ADDRESS ;
@@ -53,11 +53,11 @@ VAR
    Mod2Gcc - given a modula-2 symbol, sym, return the gcc equivalent.
 *)
 
-PROCEDURE Mod2Gcc (sym: CARDINAL) : Tree ;
+PROCEDURE Mod2Gcc (sym: CARDINAL) : tree ;
 VAR
    n : Name ;
    t : PtrToCardinal ;
-   tr: Tree ;
+   tr: tree ;
 BEGIN
    IF USEPOISON
    THEN
@@ -72,7 +72,7 @@ BEGIN
    END ;
    IF InBounds(mod2gcc, sym)
    THEN
-      tr := Tree(GetIndice(mod2gcc, sym)) ;
+      tr := tree(GetIndice(mod2gcc, sym)) ;
       IF tr=PoisonedSymbol
       THEN
          n := GetSymName(sym) ;
@@ -91,7 +91,7 @@ END Mod2Gcc ;
    Gcc2Mod - given a gcc tree return the modula-2 symbol.
 *)
 
-PROCEDURE Gcc2Mod (tree: Tree) : CARDINAL ;
+PROCEDURE Gcc2Mod (tree: tree) : CARDINAL ;
 VAR
    high, i: CARDINAL ;
 BEGIN
@@ -112,9 +112,9 @@ END Gcc2Mod ;
    AddModGcc - adds the tuple [ sym, gcc ] into the database.
 *)
 
-PROCEDURE AddModGcc (sym: CARDINAL; gcc: Tree) ;
+PROCEDURE AddModGcc (sym: CARDINAL; gcc: tree) ;
 VAR
-   old: Tree ;
+   old: tree ;
    t  : PtrToCardinal ;
 BEGIN
    IF gcc=GetErrorNode()
@@ -125,14 +125,14 @@ BEGIN
    IF USEPOISON
    THEN
       t := PtrToCardinal(gcc) ;
-      IF (gcc#Tree(NIL)) AND (t^=GGCPOISON)
+      IF (gcc#tree(NIL)) AND (t^=GGCPOISON)
       THEN
          InternalError ('gcc symbol has been poisoned')
       END
    END ;
 
    old := Mod2Gcc(sym) ;
-   IF old=Tree(NIL)
+   IF old=tree(NIL)
    THEN
       (* absent - add it *)
       PutIndice(mod2gcc, sym, gcc) ;
@@ -211,14 +211,14 @@ END RemoveTemporaryKnown ;
                              whether the gcc symbol has been poisoned.
 *)
 
-PROCEDURE Mod2GccWithoutGCCPoison (sym: CARDINAL) : Tree ;
+PROCEDURE Mod2GccWithoutGCCPoison (sym: CARDINAL) : tree ;
 VAR
    n : Name ;
-   tr: Tree ;
+   tr: tree ;
 BEGIN
    IF InBounds(mod2gcc, sym)
    THEN
-      tr := Tree(GetIndice(mod2gcc, sym)) ;
+      tr := tree(GetIndice(mod2gcc, sym)) ;
       IF tr=PoisonedSymbol
       THEN
          n := GetSymName(sym) ;
diff --git a/gcc/m2/gm2-compiler/SymbolTable.def b/gcc/m2/gm2-compiler/SymbolTable.def
index 05ef313f322..2036e1efc4d 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.def
+++ b/gcc/m2/gm2-compiler/SymbolTable.def
@@ -32,7 +32,7 @@ DEFINITION MODULE SymbolTable ;
 FROM SYSTEM IMPORT WORD ;
 FROM SymbolKey IMPORT PerformOperation ;
 FROM NameKey IMPORT Name ;
-FROM m2tree IMPORT Tree ;
+FROM gcctypes IMPORT tree ;
 FROM DynamicStrings IMPORT String ;
 FROM M2Error IMPORT ErrorScope ;
 FROM Lists IMPORT List ;
@@ -1467,14 +1467,14 @@ PROCEDURE GetModuleQuads (Sym: CARDINAL;
    PutModuleFinallyFunction - Places Tree, finally, into the Module symbol, Sym.
 *)
 
-PROCEDURE PutModuleFinallyFunction (Sym: CARDINAL; finally: Tree) ;
+PROCEDURE PutModuleFinallyFunction (Sym: CARDINAL; finally: tree) ;
 
 
 (*
    GetModuleFinallyFunction - returns the finally tree from the Module symbol, Sym.
 *)
 
-PROCEDURE GetModuleFinallyFunction (Sym: CARDINAL) : Tree ;
+PROCEDURE GetModuleFinallyFunction (Sym: CARDINAL) : tree ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/SymbolTable.mod b/gcc/m2/gm2-compiler/SymbolTable.mod
index c76e942f729..b5e2b9b7203 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.mod
+++ b/gcc/m2/gm2-compiler/SymbolTable.mod
@@ -33,7 +33,7 @@ FROM Indexing IMPORT InitIndex, InBounds, LowIndice, HighIndice,
                      PutIndice, GetIndice, InitIndexTuned ;
 
 FROM Sets IMPORT Set, InitSet, IncludeElementIntoSet, IsElementInSet ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t ;
 
 FROM M2Options IMPORT Pedantic, ExtendedOpaque,
                       GetDebugFunctionLineNumbers, ScaffoldDynamic,
@@ -82,7 +82,7 @@ FROM M2Base IMPORT MixTypes, InitBase, Char, Integer, LongReal,
 
 FROM M2System IMPORT Address ;
 FROM m2expr IMPORT OverflowZType ;
-FROM m2tree IMPORT Tree ;
+FROM gcctypes IMPORT tree ;
 FROM m2linemap IMPORT BuiltinsLocation ;
 FROM StrLib IMPORT StrEqual ;
 FROM m2builtins IMPORT BuiltinExists ;
@@ -728,7 +728,7 @@ TYPE
                StartFinishQuad: CARDINAL ;  (* Signify the finalization      *)
                                             (* code.                         *)
                EndFinishQuad : CARDINAL ;   (* should point to a finish      *)
-               FinallyFunction: Tree ;      (* The GCC function for finally  *)
+               FinallyFunction: tree ;      (* The GCC function for finally  *)
                ExceptionFinally,
                ExceptionBlock: BOOLEAN ;    (* does it have an exception?    *)
                ContainsHiddenType: BOOLEAN ;(* True if this module           *)
@@ -803,7 +803,7 @@ TYPE
                StartFinishQuad: CARDINAL ;  (* Signify the finalization      *)
                                             (* code.                         *)
                EndFinishQuad : CARDINAL ;   (* should point to a finish      *)
-               FinallyFunction: Tree ;      (* The GCC function for finally  *)
+               FinallyFunction: tree ;      (* The GCC function for finally  *)
                ExceptionFinally,
                ExceptionBlock: BOOLEAN ;    (* does it have an exception?    *)
                ModLink       : BOOLEAN ;    (* Is the module parsed for      *)
@@ -12876,7 +12876,7 @@ END GetModuleQuads ;
    PutModuleFinallyFunction - Places Tree, finally, into the Module symbol, Sym.
 *)
 
-PROCEDURE PutModuleFinallyFunction (Sym: CARDINAL; finally: Tree) ;
+PROCEDURE PutModuleFinallyFunction (Sym: CARDINAL; finally: tree) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -12898,7 +12898,7 @@ END PutModuleFinallyFunction ;
    GetModuleFinallyFunction - returns the finally tree from the Module symbol, Sym.
 *)
 
-PROCEDURE GetModuleFinallyFunction (Sym: CARDINAL) : Tree ;
+PROCEDURE GetModuleFinallyFunction (Sym: CARDINAL) : tree ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
diff --git a/gcc/m2/gm2-compiler/m2flex.def b/gcc/m2/gm2-compiler/m2flex.def
index 3145964d529..a793927534d 100644
--- a/gcc/m2/gm2-compiler/m2flex.def
+++ b/gcc/m2/gm2-compiler/m2flex.def
@@ -33,7 +33,7 @@ DEFINITION MODULE m2flex ;
 *)
 
 FROM SYSTEM IMPORT ADDRESS ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t ;
 
 EXPORT QUALIFIED GetToken, M2Error, OpenSource, CloseSource, GetLineNo,
                  GetColumnNo, GetLocation, GetTotalLines ;
diff --git a/gcc/m2/gm2-gcc/CDataTypes.def b/gcc/m2/gm2-gcc/CDataTypes.def
new file mode 100644
index 00000000000..38953d7ac84
--- /dev/null
+++ b/gcc/m2/gm2-gcc/CDataTypes.def
@@ -0,0 +1,33 @@
+(* CDataTypes provides a placeholder module for C address types.
+
+Copyright (C) 2024 Free Software Foundation, Inc.
+Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+
+This file is part of GNU Modula-2.
+
+GNU Modula-2 is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Modula-2 is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Modula-2; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
+
+DEFINITION MODULE CDataTypes ;  (*!m2pim*)
+
+FROM SYSTEM IMPORT ADDRESS ;
+
+EXPORT UNQUALIFIED CharStar, ConstCharStar ;
+
+TYPE
+   CharStar      = ADDRESS ;
+   ConstCharStar = ADDRESS ;
+
+
+END CDataTypes.
diff --git a/gcc/m2/gm2-gcc/gcctypes.def b/gcc/m2/gm2-gcc/gcctypes.def
new file mode 100644
index 00000000000..e6065720431
--- /dev/null
+++ b/gcc/m2/gm2-gcc/gcctypes.def
@@ -0,0 +1,36 @@
+(* gcctypes provides a placeholder module for gcc declared data types.
+
+Copyright (C) 2024 Free Software Foundation, Inc.
+Contributed by Gaius Mulley <gaiusmod2@gmail.com>.
+
+This file is part of GNU Modula-2.
+
+GNU Modula-2 is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Modula-2 is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Modula-2; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  *)
+
+DEFINITION MODULE gcctypes ;
+
+FROM SYSTEM IMPORT ADDRESS ;
+
+EXPORT UNQUALIFIED location_t, tree ;
+
+
+TYPE
+   (* Not declared here by the bootstrap tool mc when
+      --gcc-config-system is used.  *)
+   location_t = CARDINAL ;
+   tree = ADDRESS ;
+
+
+END gcctypes.
diff --git a/gcc/m2/gm2-gcc/init.def b/gcc/m2/gm2-gcc/init.def
index 37972eed34f..680aafba8a8 100644
--- a/gcc/m2/gm2-gcc/init.def
+++ b/gcc/m2/gm2-gcc/init.def
@@ -21,7 +21,7 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE FOR "C" init ;
 
-FROM SYSTEM IMPORT ADDRESS ;
+FROM CDataTypes IMPORT ConstCharStar ;
 
 
 (*
@@ -37,7 +37,7 @@ PROCEDURE FrontEndInit ;
                         This is to be called every time we compile a new file.
 *)
 
-PROCEDURE PerCompilationInit (filename: ADDRESS) ;
+PROCEDURE PerCompilationInit (filename: ConstCharStar) ;
 
 
 END init.
diff --git a/gcc/m2/gm2-gcc/m2block.def b/gcc/m2/gm2-gcc/m2block.def
index 1f195dbbc14..e16edadbb70 100644
--- a/gcc/m2/gm2-gcc/m2block.def
+++ b/gcc/m2/gm2-gcc/m2block.def
@@ -21,10 +21,8 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE FOR "C" m2block ;
 
-
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
-FROM SYSTEM IMPORT ADDRESS ;
+FROM gcctypes IMPORT location_t, tree ;
+FROM CDataTypes IMPORT CharStar ;
 
 
 (*
@@ -46,7 +44,7 @@ PROCEDURE toplevel () : BOOLEAN ;
                       in the global binding level.
 *)
 
-PROCEDURE global_constant (t: Tree) : Tree ;
+PROCEDURE global_constant (t: tree) : tree ;
 
 
 (*
@@ -56,7 +54,7 @@ PROCEDURE global_constant (t: Tree) : Tree ;
                                  inside the current_binding_level I suspect.
 *)
 
-PROCEDURE RememberInitModuleFunction (t: Tree) : Tree ;
+PROCEDURE RememberInitModuleFunction (t: tree) : tree ;
 
 
 (*
@@ -64,7 +62,7 @@ PROCEDURE RememberInitModuleFunction (t: Tree) : Tree ;
                           poisoned.
 *)
 
-PROCEDURE DumpGlobalConstants () : Tree ;
+PROCEDURE DumpGlobalConstants () : tree ;
 
 
 (*
@@ -74,21 +72,21 @@ PROCEDURE DumpGlobalConstants () : Tree ;
                        can be used by many different functions if necessary.
 *)
 
-PROCEDURE RememberConstant (t: Tree) : Tree ;
+PROCEDURE RememberConstant (t: tree) : tree ;
 
 
 (*
     RememberType - remember the type, t, in the ggc marked list.
 *)
 
-PROCEDURE RememberType (t: Tree) : Tree ;
+PROCEDURE RememberType (t: tree) : tree ;
 
 
 (*
     pushDecl - pushes a declaration onto the current binding level.
 *)
 
-PROCEDURE pushDecl (decl: Tree) : Tree ;
+PROCEDURE pushDecl (decl: tree) : tree ;
 
 
 (*
@@ -113,14 +111,14 @@ PROCEDURE pushGlobalScope ;
                        binding level.
 *)
 
-PROCEDURE popFunctionScope () : Tree ;
+PROCEDURE popFunctionScope () : tree ;
 
 
 (*
     pushFunctionScope - push a binding level.
 *)
 
-PROCEDURE pushFunctionScope (fndecl: Tree) ;
+PROCEDURE pushFunctionScope (fndecl: tree) ;
 
 
 (*
@@ -129,7 +127,7 @@ PROCEDURE pushFunctionScope (fndecl: Tree) ;
                         The cur_stmt_list is appended to the STATEMENT_LIST.
 *)
 
-PROCEDURE finishFunctionCode (fndecl: Tree) ;
+PROCEDURE finishFunctionCode (fndecl: tree) ;
 
 
 (*
@@ -142,7 +140,7 @@ PROCEDURE finishFunctionCode (fndecl: Tree) ;
                         containing the DECL_EXPR is also created.
 *)
 
-PROCEDURE finishFunctionDecl (location: location_t; fndecl: Tree) ;
+PROCEDURE finishFunctionDecl (location: location_t; fndecl: tree) ;
 
 
 (*
@@ -150,14 +148,14 @@ PROCEDURE finishFunctionDecl (location: location_t; fndecl: Tree) ;
                in the current scope.
 *)
 
-PROCEDURE getLabel (location: location_t; name: ADDRESS) : Tree ;
+PROCEDURE getLabel (location: location_t; name: CharStar) : tree ;
 
 
 (*
    GetErrorNode - returns the gcc error_mark_node.
 *)
 
-PROCEDURE GetErrorNode () : Tree ;
+PROCEDURE GetErrorNode () : tree ;
 
 
 (*
@@ -165,21 +163,21 @@ PROCEDURE GetErrorNode () : Tree ;
                  it is not already present.
 *)
 
-PROCEDURE includeDecl (decl: Tree) ;
+PROCEDURE includeDecl (decl: tree) ;
 
 
 (*
    GetGlobals - returns a list of global variables, functions, constants.
 *)
 
-PROCEDURE GetGlobals () : Tree ;
+PROCEDURE GetGlobals () : tree ;
 
 
 (*
    GetGlobalContext - returns the global context tree.
 *)
 
-PROCEDURE GetGlobalContext () : Tree ;
+PROCEDURE GetGlobalContext () : tree ;
 
 
 (*
@@ -187,7 +185,7 @@ PROCEDURE GetGlobalContext () : Tree ;
                           statement list and returns the list node.
 *)
 
-PROCEDURE begin_statement_list () : Tree ;
+PROCEDURE begin_statement_list () : tree ;
 
 
 (*
@@ -195,7 +193,7 @@ PROCEDURE begin_statement_list () : Tree ;
                          current binding level.
 *)
 
-PROCEDURE push_statement_list (t: Tree) : Tree ;
+PROCEDURE push_statement_list (t: tree) : tree ;
 
 
 (*
@@ -203,7 +201,7 @@ PROCEDURE push_statement_list (t: Tree) : Tree ;
                         current binding level.
 *)
 
-PROCEDURE pop_statement_list () : Tree ;
+PROCEDURE pop_statement_list () : tree ;
 
 
 (*
diff --git a/gcc/m2/gm2-gcc/m2builtins.def b/gcc/m2/gm2-gcc/m2builtins.def
index defe003ed66..c3e002aa98a 100644
--- a/gcc/m2/gm2-gcc/m2builtins.def
+++ b/gcc/m2/gm2-gcc/m2builtins.def
@@ -21,9 +21,8 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE FOR "C" m2builtins ;
 
-FROM SYSTEM IMPORT ADDRESS ;
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
+FROM CDataTypes IMPORT CharStar, ConstCharStar ;
+FROM gcctypes IMPORT location_t, tree ;
 
 EXPORT QUALIFIED GetBuiltinConst, GetBuiltinConstType,
                  GetBuiltinTypeInfoType, GetBuiltinTypeInfo,
@@ -37,7 +36,7 @@ EXPORT QUALIFIED GetBuiltinConst, GetBuiltinConstType,
                      NIL is returned if the constant is unknown.
 *)
 
-PROCEDURE GetBuiltinConst (name: ADDRESS) : Tree ;
+PROCEDURE GetBuiltinConst (name: CharStar) : tree ;
 
 
 (*
@@ -48,7 +47,7 @@ PROCEDURE GetBuiltinConst (name: ADDRESS) : Tree ;
                          2 = real
 *)
 
-PROCEDURE GetBuiltinConstType (name: ADDRESS) : CARDINAL ;
+PROCEDURE GetBuiltinConstType (name: CharStar) : CARDINAL ;
 
 
 
@@ -62,21 +61,21 @@ PROCEDURE GetBuiltinConstType (name: ADDRESS) : CARDINAL ;
                             3    if ident is large, small.
 *)
 
-PROCEDURE GetBuiltinTypeInfoType (ident: ADDRESS) : CARDINAL ;
+PROCEDURE GetBuiltinTypeInfoType (ident: ConstCharStar) : CARDINAL ;
 
 
 (*
-   GetBuiltinTypeInfo - returns a Tree value:
+   GetBuiltinTypeInfo - returns a tree value:
 
                         NULL_TREE        if ident is unknown.
-                        boolean Tree     if ident is IEC559, LIA1, ISO, IEEE, rounds, underflow,
+                        boolean tree     if ident is IEC559, LIA1, ISO, IEEE, rounds, underflow,
                                          exception, extend.
-                        ZType Tree       if ident is radix, places, exponentmin, exponentmax,
+                        ZType tree       if ident is radix, places, exponentmin, exponentmax,
                                          noofmodes.
-                        RType Tree       if ident is large, small.
+                        RType tree       if ident is large, small.
 *)
 
-PROCEDURE GetBuiltinTypeInfo (location: location_t; type: Tree; ident: ADDRESS) : Tree ;
+PROCEDURE GetBuiltinTypeInfo (location: location_t; type: tree; ident: ConstCharStar) : tree ;
 
 
 (*
@@ -84,28 +83,28 @@ PROCEDURE GetBuiltinTypeInfo (location: location_t; type: Tree; ident: ADDRESS)
                    for this target architecture.
 *)
 
-PROCEDURE BuiltinExists (name: ADDRESS) : BOOLEAN ;
+PROCEDURE BuiltinExists (name: CharStar) : BOOLEAN ;
 
 
 (*
-   BuildBuiltinTree - returns a Tree containing the builtin function, name.
+   BuildBuiltinTree - returns a tree containing the builtin function, name.
 *)
 
-PROCEDURE BuildBuiltinTree (location: location_t; name: ADDRESS) : Tree ;
+PROCEDURE BuildBuiltinTree (location: location_t; name: CharStar) : tree ;
 
 
 (*
    BuiltinMemCopy and BuiltinAlloca - are called by M2GenGCC to implement open arrays.
 *)
 
-PROCEDURE BuiltinMemCopy (location: location_t; dest, src, n: Tree) : Tree ;
+PROCEDURE BuiltinMemCopy (location: location_t; dest, src, n: tree) : tree ;
 
 
 (*
    BuiltinMemSet is called by M2GenGCC to implement the set type.
 *)
 
-PROCEDURE BuiltinMemSet (location: location_t; dest, bytevalue, nbytes: Tree) : Tree ;
+PROCEDURE BuiltinMemSet (location: location_t; dest, bytevalue, nbytes: tree) : tree ;
 
 
 (*
@@ -113,16 +112,16 @@ PROCEDURE BuiltinMemSet (location: location_t; dest, bytevalue, nbytes: Tree) :
                    of the current function.
 *)
 
-PROCEDURE BuiltInAlloca (location: location_t; n: Tree) : Tree ;
+PROCEDURE BuiltInAlloca (location: location_t; n: tree) : tree ;
 
 
 (*
-   BuiltInIsfinite - given an expression, e, return an integer Tree of 1 if the
-                     value is finite.  Return an integer Tree 0 if the value is
+   BuiltInIsfinite - given an expression, e, return an integer tree of 1 if the
+                     value is finite.  Return an integer tree 0 if the value is
                      not finite.
 *)
 
-PROCEDURE BuiltInIsfinite (location: location_t; e: Tree) : Tree ;
+PROCEDURE BuiltInIsfinite (location: location_t; e: tree) : tree ;
 
 
 END m2builtins.
diff --git a/gcc/m2/gm2-gcc/m2convert.def b/gcc/m2/gm2-gcc/m2convert.def
index 5e34e9317e1..411fa40ca9c 100644
--- a/gcc/m2/gm2-gcc/m2convert.def
+++ b/gcc/m2/gm2-gcc/m2convert.def
@@ -21,8 +21,7 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE FOR "C" m2convert ;
 
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t, tree ;
 
 
 (*
@@ -30,35 +29,35 @@ FROM m2linemap IMPORT location_t ;
             a WORD.
 *)
 
-PROCEDURE ToWord (location: location_t; expr: Tree) : Tree ;
+PROCEDURE ToWord (location: location_t; expr: tree) : tree ;
 
 
 (*
    ToCardinal - convert an expression, expr, to a CARDINAL.
 *)
 
-PROCEDURE ToCardinal (location: location_t; expr: Tree) : Tree ;
+PROCEDURE ToCardinal (location: location_t; expr: tree) : tree ;
 
 
 (*
    ToInteger - convert an expression, expr, to an INTEGER.
 *)
 
-PROCEDURE ToInteger (location: location_t; expr: Tree) : Tree ;
+PROCEDURE ToInteger (location: location_t; expr: tree) : tree ;
 
 
 (*
    ToBitset - convert an expression, expr, to a BITSET.
 *)
 
-PROCEDURE ToBitset (location: location_t; expr: Tree) : Tree ;
+PROCEDURE ToBitset (location: location_t; expr: tree) : tree ;
 
 
 (*
    ConvertToPtr - convert an expression to a void *.
 *)
 
-PROCEDURE ConvertToPtr (p: Tree) : Tree ;
+PROCEDURE ConvertToPtr (p: tree) : tree ;
 
 
 (*
@@ -67,7 +66,7 @@ PROCEDURE ConvertToPtr (p: Tree) : Tree ;
                    should suppress overflow checking.
 *)
 
-PROCEDURE BuildConvert (location: location_t; type: Tree; value: Tree; checkOverflow: BOOLEAN) : Tree ;
+PROCEDURE BuildConvert (location: location_t; type: tree; value: tree; checkOverflow: BOOLEAN) : tree ;
 
 
 (*
@@ -76,14 +75,14 @@ PROCEDURE BuildConvert (location: location_t; type: Tree; value: Tree; checkOver
                              overflow checking is performed.
 *)
 
-PROCEDURE ConvertConstantAndCheck (location: location_t; type: Tree; expr: Tree) : Tree ;
+PROCEDURE ConvertConstantAndCheck (location: location_t; type: tree; expr: tree) : tree ;
 
 
 (*
    ConvertString - converts string, expr, into a string of type, type.
 *)
 
-PROCEDURE ConvertString (type, expr: Tree) : Tree ;
+PROCEDURE ConvertString (type, expr: tree) : tree ;
 
 
 (*
@@ -92,7 +91,7 @@ PROCEDURE ConvertString (type, expr: Tree) : Tree ;
                    expr is returned unaltered.
 *)
 
-PROCEDURE GenericToType (location: location_t; type, expr: Tree) : Tree ;
+PROCEDURE GenericToType (location: location_t; type, expr: tree) : tree ;
 
 
 END m2convert.
diff --git a/gcc/m2/gm2-gcc/m2decl.cc b/gcc/m2/gm2-gcc/m2decl.cc
index d8a2bc898d0..7888b13fac8 100644
--- a/gcc/m2/gm2-gcc/m2decl.cc
+++ b/gcc/m2/gm2-gcc/m2decl.cc
@@ -165,7 +165,7 @@ m2decl_DeclareKnownConstant (location_t location, tree type, tree value)
    param_type_list.  */
 
 tree
-m2decl_BuildParameterDeclaration (location_t location, char *name, tree type,
+m2decl_BuildParameterDeclaration (location_t location, const char *name, tree type,
                                   bool isreference)
 {
   tree parm_decl;
diff --git a/gcc/m2/gm2-gcc/m2decl.def b/gcc/m2/gm2-gcc/m2decl.def
index 993a41975d1..0c7e2a62aca 100644
--- a/gcc/m2/gm2-gcc/m2decl.def
+++ b/gcc/m2/gm2-gcc/m2decl.def
@@ -22,8 +22,8 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 DEFINITION MODULE m2decl ;
 
 FROM SYSTEM IMPORT ADDRESS ;
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t, tree ;
+FROM CDataTypes IMPORT ConstCharStar ;
 
 
 (*
@@ -31,14 +31,14 @@ FROM m2linemap IMPORT location_t ;
    the dynamic linking scaffold.
 *)
 
-PROCEDURE BuildModuleCtor (moduleCtor: Tree) ;
+PROCEDURE BuildModuleCtor (moduleCtor: tree) ;
 
 
 (*
    DeclareModuleCtor configures the function to be used as a ctor.
 *)
 
-PROCEDURE DeclareModuleCtor (decl: Tree) : Tree ;
+PROCEDURE DeclareModuleCtor (decl: tree) : tree ;
 
 
 
@@ -47,13 +47,13 @@ PROCEDURE DeclareModuleCtor (decl: Tree) : Tree ;
 *)
 
 PROCEDURE DeclareM2linkForcedModuleInitOrder (location: location_t;
-                                              RuntimeOverride: ADDRESS) : Tree ;
+                                              RuntimeOverride: ADDRESS) : tree ;
 
 
 PROCEDURE DeclareM2linkStaticInitialization (location: location_t;
-                                             ScaffoldStatic: INTEGER) : Tree ;
+                                             ScaffoldStatic: INTEGER) : tree ;
 
-PROCEDURE BuildPtrToTypeString (location: location_t; string: ADDRESS; type: Tree) : Tree ;
+PROCEDURE BuildPtrToTypeString (location: location_t; string: ADDRESS; type: tree) : tree ;
 
 
 (*
@@ -88,14 +88,14 @@ PROCEDURE GetBitsPerWord () : INTEGER ;
     BuildIntegerConstant - return a tree containing the integer value.
 *)
 
-PROCEDURE BuildIntegerConstant (value: INTEGER) : Tree ;
+PROCEDURE BuildIntegerConstant (value: INTEGER) : tree ;
 
 
 (*
     BuildStringConstantType - builds a string constant with a type.
 *)
 
-PROCEDURE BuildStringConstantType (length: INTEGER; string: ADDRESS; type: Tree) : Tree ;
+PROCEDURE BuildStringConstantType (length: INTEGER; string: ConstCharStar; type: tree) : tree ;
 
 
 (*
@@ -105,9 +105,9 @@ PROCEDURE BuildStringConstantType (length: INTEGER; string: ADDRESS; type: Tree)
                            isglobal is TRUE.
 *)
 
-PROCEDURE DeclareKnownVariable (location: location_t; name: ADDRESS; type: Tree;
+PROCEDURE DeclareKnownVariable (location: location_t; name: ConstCharStar; type: tree;
                                 exported, imported, istemporary, isglobal: BOOLEAN;
-                                scope, initial: Tree) : Tree ;
+                                scope, initial: tree) : tree ;
 
 
 (*
@@ -120,7 +120,7 @@ PROCEDURE DeclareKnownVariable (location: location_t; name: ADDRESS; type: Tree;
                            always be referenced.
 *)
 
-PROCEDURE DeclareKnownConstant (location: location_t; type: Tree; value: Tree) : Tree ;
+PROCEDURE DeclareKnownConstant (location: location_t; type: tree; value: tree) : tree ;
 
 
 (*
@@ -130,8 +130,8 @@ PROCEDURE DeclareKnownConstant (location: location_t; type: Tree; value: Tree) :
                                 type declaration and we ignore names.
 *)
 
-PROCEDURE BuildParameterDeclaration (location: location_t; name: ADDRESS; type: Tree;
-                                     isreference: BOOLEAN) : Tree ;
+PROCEDURE BuildParameterDeclaration (location: location_t; name: ConstCharStar; type: tree;
+                                     isreference: BOOLEAN) : tree ;
 
 
 (*
@@ -148,16 +148,16 @@ PROCEDURE BuildStartFunctionDeclaration (uses_varargs: BOOLEAN) ;
 *)
 
 PROCEDURE BuildEndFunctionDeclaration (location_begin, location_end: location_t;
-                                       name: ADDRESS; returntype: Tree;
+                                       name: ConstCharStar; returntype: tree;
                                        isexternal, isnested, ispublic,
-                                       isnoreturn: BOOLEAN) : Tree ;
+                                       isnoreturn: BOOLEAN) : tree ;
 
 
 (*
     RememberVariables -
 *)
 
-PROCEDURE RememberVariables (l: Tree) ;
+PROCEDURE RememberVariables (l: tree) ;
 
 
 (*
@@ -168,8 +168,8 @@ PROCEDURE RememberVariables (l: Tree) ;
 *)
 
 PROCEDURE BuildConstLiteralNumber (location: location_t;
-                                   str: ADDRESS; base: CARDINAL;
-                                   issueError: BOOLEAN) : Tree ;
+                                   str: ConstCharStar; base: CARDINAL;
+                                   issueError: BOOLEAN) : tree ;
 
 
 (*
@@ -177,7 +177,7 @@ PROCEDURE BuildConstLiteralNumber (location: location_t;
                           and, length.
 *)
 
-PROCEDURE BuildStringConstant (string: ADDRESS; length: INTEGER) : Tree ;
+PROCEDURE BuildStringConstant (string: ConstCharStar; length: INTEGER) : tree ;
 
 
 (*
@@ -185,11 +185,11 @@ PROCEDURE BuildStringConstant (string: ADDRESS; length: INTEGER) : Tree ;
                            and, length.
 *)
 
-PROCEDURE BuildCStringConstant (string: ADDRESS; length: INTEGER) : Tree ;
+PROCEDURE BuildCStringConstant (string: ConstCharStar; length: INTEGER) : tree ;
 
 
 
-PROCEDURE GetDeclContext (t: Tree) : Tree ;
+PROCEDURE GetDeclContext (t: tree) : tree ;
 
 
 END m2decl.
diff --git a/gcc/m2/gm2-gcc/m2decl.h b/gcc/m2/gm2-gcc/m2decl.h
index 5798db908c8..7957b816c05 100644
--- a/gcc/m2/gm2-gcc/m2decl.h
+++ b/gcc/m2/gm2-gcc/m2decl.h
@@ -58,7 +58,7 @@ EXTERN tree m2decl_BuildEndFunctionDeclaration (
     tree returntype, bool isexternal, bool isnested, bool ispublic,
     bool isnoreturn);
 EXTERN void m2decl_BuildStartFunctionDeclaration (bool uses_varargs);
-EXTERN tree m2decl_BuildParameterDeclaration (location_t location, char *name,
+EXTERN tree m2decl_BuildParameterDeclaration (location_t location, const char *name,
                                               tree type, bool isreference);
 EXTERN tree m2decl_DeclareKnownConstant (location_t location, tree type,
                                          tree value);
diff --git a/gcc/m2/gm2-gcc/m2except.def b/gcc/m2/gm2-gcc/m2except.def
index 4816197bdc1..a1b586df00f 100644
--- a/gcc/m2/gm2-gcc/m2except.def
+++ b/gcc/m2/gm2-gcc/m2except.def
@@ -21,8 +21,7 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE FOR "C" m2except ;
 
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t, tree ;
 
 
 (*
@@ -38,14 +37,14 @@ PROCEDURE InitExceptions (location: location_t) ;
    BuildThrow - builds a throw statement and return the tree.
 *)
 
-PROCEDURE BuildThrow (location: location_t; t: Tree) : Tree ;
+PROCEDURE BuildThrow (location: location_t; t: tree) : tree ;
 
 
 (*
     BuildTryBegin - returns a tree representing the 'try' block.
 *)
 
-PROCEDURE BuildTryBegin (location: location_t) : Tree ;
+PROCEDURE BuildTryBegin (location: location_t) : tree ;
 
 
 (*
@@ -53,7 +52,7 @@ PROCEDURE BuildTryBegin (location: location_t) : Tree ;
                  for the catch handlers.
 *)
 
-PROCEDURE BuildTryEnd (tryBlock: Tree) ;
+PROCEDURE BuildTryEnd (tryBlock: tree) ;
 
 
 (*
@@ -62,7 +61,7 @@ PROCEDURE BuildTryEnd (tryBlock: Tree) ;
                      It returns the handler tree.
 *)
 
-PROCEDURE BuildCatchBegin (location: location_t) : Tree ;
+PROCEDURE BuildCatchBegin (location: location_t) : tree ;
 
 
 (*
@@ -73,7 +72,7 @@ PROCEDURE BuildCatchBegin (location: location_t) : Tree ;
                    '}' which matches the catch above.
 *)
 
-PROCEDURE BuildCatchEnd (location: location_t; handler, tryBlock: Tree) : Tree ;
+PROCEDURE BuildCatchEnd (location: location_t; handler, tryBlock: tree) : tree ;
 
 
 END m2except.
diff --git a/gcc/m2/gm2-gcc/m2expr.def b/gcc/m2/gm2-gcc/m2expr.def
index c195f1987a8..6fcb047c435 100644
--- a/gcc/m2/gm2-gcc/m2expr.def
+++ b/gcc/m2/gm2-gcc/m2expr.def
@@ -21,20 +21,19 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE FOR "C" m2expr  ;
 
-FROM SYSTEM IMPORT ADDRESS ;
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t, tree ;
+FROM CDataTypes IMPORT CharStar, ConstCharStar ;
 
 
 TYPE
-   BuildBinCheckProcedure   = PROCEDURE (location_t, Tree, Tree, Tree, Tree, Tree) : Tree ;
-   BuildBinProcedure        = PROCEDURE (location_t, Tree, Tree, BOOLEAN) : Tree ;
-   BuildUnaryProcedure      = PROCEDURE (location_t, Tree, BOOLEAN) : Tree ;
-   BuildUnaryCheckProcedure = PROCEDURE (location_t, Tree, Tree, Tree, Tree) : Tree ;
-   BuildExprProcedure       = PROCEDURE (location_t, Tree, Tree) : Tree ;
-   BuildSetProcedure        = PROCEDURE (location_t, Tree, Tree, Tree, Tree, BOOLEAN) ;
-   BuildUnarySetProcedure   = PROCEDURE (location_t, Tree, BOOLEAN) ;
-   BuildUnarySetFunction    = PROCEDURE (location_t, Tree, BOOLEAN) : Tree ;
+   BuildBinCheckProcedure   = PROCEDURE (location_t, tree, tree, tree, tree, tree) : tree ;
+   BuildBinProcedure        = PROCEDURE (location_t, tree, tree, BOOLEAN) : tree ;
+   BuildUnaryProcedure      = PROCEDURE (location_t, tree, BOOLEAN) : tree ;
+   BuildUnaryCheckProcedure = PROCEDURE (location_t, tree, tree, tree, tree) : tree ;
+   BuildExprProcedure       = PROCEDURE (location_t, tree, tree) : tree ;
+   BuildSetProcedure        = PROCEDURE (location_t, tree, tree, tree, tree, BOOLEAN) ;
+   BuildUnarySetProcedure   = PROCEDURE (location_t, tree, BOOLEAN) ;
+   BuildUnarySetFunction    = PROCEDURE (location_t, tree, BOOLEAN) : tree ;
 
 
 (*
@@ -49,53 +48,54 @@ PROCEDURE init (location: location_t) ;
                     The string returned will have been malloc'd.
 *)
 
-PROCEDURE CSTIntToString (t: Tree) : ADDRESS ;
+PROCEDURE CSTIntToString (t: tree) : CharStar ;
+
 
 (*
    CSTIntToChar - return the CHAR representation of tree t.
 *)
 
-PROCEDURE CSTIntToChar (t: Tree) : CHAR ;
+PROCEDURE CSTIntToChar (t: tree) : CHAR ;
 
 
 PROCEDURE CheckConstStrZtypeRange (location: location_t;
-				   str: ADDRESS; base: CARDINAL) : BOOLEAN ;
+				   str: CharStar; base: CARDINAL) : BOOLEAN ;
 
 (*
    CompareTrees - returns -1 if e1 < e2, 0 if e1 == e2, and 1 if e1 > e2.
 *)
 
-PROCEDURE CompareTrees (e1: Tree; e2: Tree) : INTEGER ;
+PROCEDURE CompareTrees (e1: tree; e2: tree) : INTEGER ;
 
 
-PROCEDURE GetPointerOne (location: location_t) : Tree ;
+PROCEDURE GetPointerOne (location: location_t) : tree ;
 
 
-PROCEDURE GetPointerZero (location: location_t) : Tree ;
+PROCEDURE GetPointerZero (location: location_t) : tree ;
 
 
-PROCEDURE GetWordOne (location: location_t) : Tree ;
+PROCEDURE GetWordOne (location: location_t) : tree ;
 
 
-PROCEDURE GetWordZero (location: location_t) : Tree ;
+PROCEDURE GetWordZero (location: location_t) : tree ;
 
 
-PROCEDURE GetIntegerOne (location: location_t) : Tree ;
+PROCEDURE GetIntegerOne (location: location_t) : tree ;
 
 
-PROCEDURE GetIntegerZero (location: location_t) : Tree ;
+PROCEDURE GetIntegerZero (location: location_t) : tree ;
 
 
-PROCEDURE GetCardinalOne (location: location_t) : Tree ;
+PROCEDURE GetCardinalOne (location: location_t) : tree ;
 
 
-PROCEDURE GetCardinalZero (location: location_t) : Tree ;
+PROCEDURE GetCardinalZero (location: location_t) : tree ;
 
 
-PROCEDURE GetSizeOfInBits (type: Tree) : Tree ;
+PROCEDURE GetSizeOfInBits (type: tree) : tree ;
 
 
-PROCEDURE GetSizeOf (location: location_t; type: Tree) : Tree ;
+PROCEDURE GetSizeOf (location: location_t; type: tree) : tree ;
 
 
 (*
@@ -103,7 +103,7 @@ PROCEDURE GetSizeOf (location: location_t; type: Tree) : Tree ;
                          for a fundamental data type.
 *)
 
-PROCEDURE BuildLogicalRotate (location: location_t; op1: Tree; op2: Tree; op3: Tree; nBits: Tree; needconvert: BOOLEAN) ;
+PROCEDURE BuildLogicalRotate (location: location_t; op1: tree; op2: tree; op3: tree; nBits: tree; needconvert: BOOLEAN) ;
 
 
 (*
@@ -111,7 +111,7 @@ PROCEDURE BuildLogicalRotate (location: location_t; op1: Tree; op2: Tree; op3: T
                 it rotates a set of size, nBits.
 *)
 
-PROCEDURE BuildLRRn (location: location_t; op1: Tree; op2: Tree; nBits: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildLRRn (location: location_t; op1: tree; op2: tree; nBits: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
@@ -119,39 +119,39 @@ PROCEDURE BuildLRRn (location: location_t; op1: Tree; op2: Tree; nBits: Tree; ne
                 it rotates a set of size, nBits.
 *)
 
-PROCEDURE BuildLRLn (location: location_t; op1: Tree; op2: Tree; nBits: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildLRLn (location: location_t; op1: tree; op2: tree; nBits: tree; needconvert: BOOLEAN) : tree ;
 
 
 
-PROCEDURE BuildMask (location: location_t; nBits: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildMask (location: location_t; nBits: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildMult - builds a multiplication tree.
 *)
 
-PROCEDURE BuildMult (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildMult (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildMultCheck - builds a multiplication tree after checking for overflow.
 *)
 
-PROCEDURE BuildMultCheck (location: location_t; op1, op2, lowest, min, max: Tree) : Tree ;
+PROCEDURE BuildMultCheck (location: location_t; op1, op2, lowest, min, max: tree) : tree ;
 
 
 (*
     BuildLRR - builds and returns tree (op1 rotate right by op2 bits)
 *)
 
-PROCEDURE BuildLRR (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildLRR (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildLRL - builds and returns tree (op1 rotate left by op2 bits)
 *)
 
-PROCEDURE BuildLRL (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildLRL (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
@@ -159,21 +159,21 @@ PROCEDURE BuildLRL (location: location_t; op1: Tree; op2: Tree; needconvert: BOO
                         for a fundamental data type.
 *)
 
-PROCEDURE BuildLogicalShift (location: location_t; op1: Tree; op2: Tree; op3: Tree; nBits: Tree; needconvert: BOOLEAN) ;
+PROCEDURE BuildLogicalShift (location: location_t; op1: tree; op2: tree; op3: tree; nBits: tree; needconvert: BOOLEAN) ;
 
 
 (*
     BuildLSR - builds and returns tree (op1 >> op2)
 *)
 
-PROCEDURE BuildLSR (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildLSR (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildLSL - builds and returns tree (op1 << op2)
 *)
 
-PROCEDURE BuildLSL (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildLSL (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
@@ -182,7 +182,7 @@ PROCEDURE BuildLSL (location: location_t; op1: Tree; op2: Tree; needconvert: BOO
                 return op1 div trunc op2
 *)
 
-PROCEDURE BuildDivM2 (location: location_t; op1, op2: Tree; needsconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildDivM2 (location: location_t; op1, op2: tree; needsconvert: BOOLEAN) : tree ;
 
 
 (*
@@ -191,7 +191,7 @@ PROCEDURE BuildDivM2 (location: location_t; op1, op2: Tree; needsconvert: BOOLEA
                      return op1 div trunc op2.  Use the checking div equivalents.
 *)
 
-PROCEDURE BuildDivM2Check (location: location_t; op1, op2, lowest, min, max: Tree) : Tree ;
+PROCEDURE BuildDivM2Check (location: location_t; op1, op2, lowest, min, max: tree) : tree ;
 
 
 (*
@@ -200,7 +200,7 @@ PROCEDURE BuildDivM2Check (location: location_t; op1, op2, lowest, min, max: Tre
                 return op1 div trunc op2
 *)
 
-PROCEDURE BuildModM2 (location: location_t; op1, op2: Tree; needsconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildModM2 (location: location_t; op1, op2: tree; needsconvert: BOOLEAN) : tree ;
 
 
 (*
@@ -212,56 +212,56 @@ PROCEDURE BuildModM2 (location: location_t; op1, op2: Tree; needsconvert: BOOLEA
                      return op1 div trunc op2.  Use the checking div equivalents.
 *)
 
-PROCEDURE BuildModM2Check (location: location_t; op1, op2, lowest, min, max: Tree) : Tree ;
+PROCEDURE BuildModM2Check (location: location_t; op1, op2, lowest, min, max: tree) : tree ;
 
 
 (*
     BuildModFloor - builds a modulus tree.
 *)
 
-PROCEDURE BuildModFloor (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildModFloor (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildDivCeil - builds a division tree.
 *)
 
-PROCEDURE BuildDivCeil (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildDivCeil (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildModCeil - builds a modulus tree.
 *)
 
-PROCEDURE BuildModCeil (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildModCeil (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildDivFloor - builds a division tree.
 *)
 
-PROCEDURE BuildDivFloor (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildDivFloor (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildModTrunc - builds a modulus tree.
 *)
 
-PROCEDURE BuildModTrunc (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildModTrunc (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildDivTrunc - builds a division tree.
 *)
 
-PROCEDURE BuildDivTrunc (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildDivTrunc (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildDivTruncCheck - builds a division tree after checking for overflow.
 *)
 
-PROCEDURE BuildDivTruncCheck (location: location_t; op1, op2, lowest, min, max: Tree) : Tree ;
+PROCEDURE BuildDivTruncCheck (location: location_t; op1, op2, lowest, min, max: tree) : tree ;
 
 
 (*
@@ -269,42 +269,42 @@ PROCEDURE BuildDivTruncCheck (location: location_t; op1, op2, lowest, min, max:
                types and NEVER for integer based types).
 *)
 
-PROCEDURE BuildRDiv (location: location_t; op1, op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildRDiv (location: location_t; op1, op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildSubCheck - builds a subtraction tree after checking for overflow.
 *)
 
-PROCEDURE BuildSubCheck (location: location_t; op1, op2, lowest, min, max: Tree) : Tree ;
+PROCEDURE BuildSubCheck (location: location_t; op1, op2, lowest, min, max: tree) : tree ;
 
 
 (*
     BuildAddCheck - builds an addition tree after checking for overflow.
 *)
 
-PROCEDURE BuildAddCheck (location: location_t; op1, op2, lowest, min, max: Tree) : Tree ;
+PROCEDURE BuildAddCheck (location: location_t; op1, op2, lowest, min, max: tree) : tree ;
 
 
 (*
     BuildSub - builds a subtraction tree.
 *)
 
-PROCEDURE BuildSub (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildSub (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildAdd - builds an addition tree.
 *)
 
-PROCEDURE BuildAdd (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildAdd (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     FoldAndStrip - return expression, t, after it has been folded (if possible).
 *)
 
-PROCEDURE FoldAndStrip (t: Tree) : Tree ;
+PROCEDURE FoldAndStrip (t: tree) : tree ;
 
 
 (*
@@ -312,7 +312,7 @@ PROCEDURE FoldAndStrip (t: Tree) : Tree ;
                    of, string.
 *)
 
-PROCEDURE StringLength (string: Tree) : CARDINAL ;
+PROCEDURE StringLength (string: tree) : CARDINAL ;
 
 
 (*
@@ -321,7 +321,7 @@ PROCEDURE StringLength (string: Tree) : CARDINAL ;
                   is emitted and no modification is made to, t.
 *)
 
-PROCEDURE TreeOverflow (t: Tree) : BOOLEAN ;
+PROCEDURE TreeOverflow (t: tree) : BOOLEAN ;
 
 
 (*
@@ -329,7 +329,7 @@ PROCEDURE TreeOverflow (t: Tree) : BOOLEAN ;
                      any overflow flag and returns, t.
 *)
 
-PROCEDURE RemoveOverflow (t: Tree) : Tree ;
+PROCEDURE RemoveOverflow (t: tree) : tree ;
 
 
 (*
@@ -337,49 +337,49 @@ PROCEDURE RemoveOverflow (t: Tree) : Tree ;
                   it has been coersed to, type.
 *)
 
-PROCEDURE BuildCoerce (location: location_t; des: Tree; type: Tree; expr: Tree) : Tree ;
+PROCEDURE BuildCoerce (location: location_t; des: tree; type: tree; expr: tree) : tree ;
 
 
 (*
     BuildTrunc - returns an integer expression from a REAL or LONGREAL op1.
 *)
 
-PROCEDURE BuildTrunc (op1: Tree) : Tree ;
+PROCEDURE BuildTrunc (op1: tree) : tree ;
 
 
 (*
     BuildNegate - builds a negate expression and returns the tree.
 *)
 
-PROCEDURE BuildNegate (location: location_t; op1: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildNegate (location: location_t; op1: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildNegateCheck - builds a negate expression and returns the tree.
 *)
 
-PROCEDURE BuildNegateCheck (location: location_t; arg, lowest, min, max: Tree) : Tree ;
+PROCEDURE BuildNegateCheck (location: location_t; arg, lowest, min, max: tree) : tree ;
 
 
 (*
     BuildSetNegate - builds a set negate expression and returns the tree.
 *)
 
-PROCEDURE BuildSetNegate (location: location_t; op1: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildSetNegate (location: location_t; op1: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildTBitSize - returns the minimum number of bits to represent, type.
 *)
 
-PROCEDURE BuildTBitSize (location: location_t; type: Tree) : Tree ;
+PROCEDURE BuildTBitSize (location: location_t; type: tree) : tree ;
 
 
 (*
     BuildSize - builds a SIZE function expression and returns the tree.
 *)
 
-PROCEDURE BuildSize (location: location_t; op1: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildSize (location: location_t; op1: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
@@ -387,7 +387,7 @@ PROCEDURE BuildSize (location: location_t; op1: Tree; needconvert: BOOLEAN) : Tr
                 op1 and returns the tree.
 *)
 
-PROCEDURE BuildAddr (location: location_t; op1: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildAddr (location: location_t; op1: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
@@ -398,7 +398,7 @@ PROCEDURE BuildAddr (location: location_t; op1: Tree; needconvert: BOOLEAN) : Tr
                    The expression is returned.
 *)
 
-PROCEDURE BuildOffset1 (location: location_t; field: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildOffset1 (location: location_t; field: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
@@ -407,32 +407,32 @@ PROCEDURE BuildOffset1 (location: location_t; field: Tree; needconvert: BOOLEAN)
                   The expression is returned.
 *)
 
-PROCEDURE BuildOffset (location: location_t; record: Tree; field: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildOffset (location: location_t; record: tree; field: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildLogicalOrAddress - build a logical or expressions and return the tree.
 *)
 
-PROCEDURE BuildLogicalOrAddress (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildLogicalOrAddress (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildLogicalOr - build a logical or expressions and return the tree.
 *)
 
-PROCEDURE BuildLogicalOr (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildLogicalOr (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildLogicalAnd - build a logical and expression and return the tree.
 *)
 
-PROCEDURE BuildLogicalAnd (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildLogicalAnd (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 
-PROCEDURE BuildSymmetricDifference (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildSymmetricDifference (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
@@ -441,99 +441,99 @@ PROCEDURE BuildSymmetricDifference (location: location_t; op1: Tree; op2: Tree;
                              (op1 and (not op2))
 *)
 
-PROCEDURE BuildLogicalDifference (location: location_t; op1: Tree; op2: Tree; needconvert: BOOLEAN) : Tree ;
+PROCEDURE BuildLogicalDifference (location: location_t; op1: tree; op2: tree; needconvert: BOOLEAN) : tree ;
 
 
 (*
     BuildLessThan - return a tree which computes <
 *)
 
-PROCEDURE BuildLessThan (location: location_t; op1: Tree; op2: Tree) : Tree ;
+PROCEDURE BuildLessThan (location: location_t; op1: tree; op2: tree) : tree ;
 
 
 (*
     BuildGreaterThan - return a tree which computes >
 *)
 
-PROCEDURE BuildGreaterThan (location: location_t; op1: Tree; op2: Tree) : Tree ;
+PROCEDURE BuildGreaterThan (location: location_t; op1: tree; op2: tree) : tree ;
 
 
 (*
     BuildLessThanOrEqual - return a tree which computes <
 *)
 
-PROCEDURE BuildLessThanOrEqual (location: location_t; op1: Tree; op2: Tree) : Tree ;
+PROCEDURE BuildLessThanOrEqual (location: location_t; op1: tree; op2: tree) : tree ;
 
 
 (*
     BuildGreaterThanOrEqual - return a tree which computes >=
 *)
 
-PROCEDURE BuildGreaterThanOrEqual (location: location_t; op1: Tree; op2: Tree) : Tree ;
+PROCEDURE BuildGreaterThanOrEqual (location: location_t; op1: tree; op2: tree) : tree ;
 
 
 (*
     BuildEqualTo - return a tree which computes =
 *)
 
-PROCEDURE BuildEqualTo (location: location_t; op1: Tree; op2: Tree) : Tree ;
+PROCEDURE BuildEqualTo (location: location_t; op1: tree; op2: tree) : tree ;
 
 
 
-PROCEDURE BuildNotEqualTo (location: location_t; op1: Tree; op2: Tree) : Tree ;
+PROCEDURE BuildNotEqualTo (location: location_t; op1: tree; op2: tree) : tree ;
 
 
 (*
     BuildIsSuperset - return a tree which computes:  op1 & op2 == op2
 *)
 
-PROCEDURE BuildIsSuperset (location: location_t; op1: Tree; op2: Tree) : Tree ;
+PROCEDURE BuildIsSuperset (location: location_t; op1: tree; op2: tree) : tree ;
 
 
 (*
     BuildIsNotSuperset - return a tree which computes: op1 & op2 != op2
 *)
 
-PROCEDURE BuildIsNotSuperset (location: location_t; op1: Tree; op2: Tree) : Tree ;
+PROCEDURE BuildIsNotSuperset (location: location_t; op1: tree; op2: tree) : tree ;
 
 
 (*
     BuildIsSubset - return a tree which computes:  op1 & op2 == op1
 *)
 
-PROCEDURE BuildIsSubset (location: location_t; op1: Tree; op2: Tree) : Tree ;
+PROCEDURE BuildIsSubset (location: location_t; op1: tree; op2: tree) : tree ;
 
 
 (*
     BuildIsNotSubset - return a tree which computes: op1 & op2 != op1
 *)
 
-PROCEDURE BuildIsNotSubset (location: location_t; op1: Tree; op2: Tree) : Tree ;
+PROCEDURE BuildIsNotSubset (location: location_t; op1: tree; op2: tree) : tree ;
 
 
 (*
     BuildIfConstInVar - generates: if constel in varset then goto label.
 *)
 
-PROCEDURE BuildIfConstInVar (location: location_t; type: Tree; varset: Tree; constel: Tree; is_lvalue: BOOLEAN; fieldno: INTEGER; label: ADDRESS) ;
+PROCEDURE BuildIfConstInVar (location: location_t; type: tree; varset: tree; constel: tree; is_lvalue: BOOLEAN; fieldno: INTEGER; label: CharStar) ;
 
 
 
-PROCEDURE BuildIfNotConstInVar (location: location_t; type: Tree; varset: Tree; constel: Tree; is_lvalue: BOOLEAN; fieldno: INTEGER; label: ADDRESS) ;
+PROCEDURE BuildIfNotConstInVar (location: location_t; type: tree; varset: tree; constel: tree; is_lvalue: BOOLEAN; fieldno: INTEGER; label: CharStar) ;
 
 
 (*
     BuildIfVarInVar - generates: if varel in varset then goto label
 *)
 
-PROCEDURE BuildIfVarInVar (location: location_t; type: Tree; varset: Tree; varel: Tree; is_lvalue: BOOLEAN; low: Tree; high: Tree; label: ADDRESS) ;
+PROCEDURE BuildIfVarInVar (location: location_t; type: tree; varset: tree; varel: tree; is_lvalue: BOOLEAN; low: tree; high: tree; label: CharStar) ;
 
 
 (*
     BuildIfNotVarInVar - generates: if not (varel in varset) then goto label
 *)
 
-PROCEDURE BuildIfNotVarInVar (location: location_t; type: Tree; varset: Tree; varel: Tree; is_lvalue: BOOLEAN; low: Tree; high: Tree; label: ADDRESS) ;
+PROCEDURE BuildIfNotVarInVar (location: location_t; type: tree; varset: tree; varel: tree; is_lvalue: BOOLEAN; low: tree; high: tree; label: CharStar) ;
 
 
 (*
@@ -542,24 +542,24 @@ PROCEDURE BuildIfNotVarInVar (location: location_t; type: Tree; varset: Tree; va
 *)
 
 PROCEDURE BuildForeachWordInSetDoIfExpr (location: location_t;
-                                         type, op1, op2: Tree;
+                                         type, op1, op2: tree;
 				         is_op1lvalue, is_op2lvalue,
 				         is_op1const, isop2const: BOOLEAN;
-                                         expr: BuildExprProcedure; label: ADDRESS) ;
+                                         expr: BuildExprProcedure; label: CharStar) ;
 
 
 (*
     BuildIfInRangeGoto - if var is in the range low..high then goto label
 *)
 
-PROCEDURE BuildIfInRangeGoto (location: location_t; var: Tree; low: Tree; high: Tree; label: ADDRESS) ;
+PROCEDURE BuildIfInRangeGoto (location: location_t; var: tree; low: tree; high: tree; label: CharStar) ;
 
 
 (*
     BuildIfNotInRangeGoto - if var is not in the range low..high then goto label
 *)
 
-PROCEDURE BuildIfNotInRangeGoto (location: location_t; var: Tree; low: Tree; high: Tree; label: ADDRESS) ;
+PROCEDURE BuildIfNotInRangeGoto (location: location_t; var: tree; low: tree; high: tree; label: CharStar) ;
 
 
 (*
@@ -567,7 +567,7 @@ PROCEDURE BuildIfNotInRangeGoto (location: location_t; var: Tree; low: Tree; hig
                  given, lowIndice.
 *)
 
-PROCEDURE BuildArray (location: location_t; type: Tree; array: Tree; index: Tree; lowIndice: Tree) : Tree ;
+PROCEDURE BuildArray (location: location_t; type: tree; array: tree; index: tree; lowIndice: tree) : tree ;
 
 
 (*
@@ -576,35 +576,35 @@ PROCEDURE BuildArray (location: location_t; type: Tree; array: Tree; index: Tree
                        BuildComponentRef on the penultimate field.
 *)
 
-PROCEDURE BuildComponentRef (location: location_t; record: Tree; field: Tree) : Tree ;
+PROCEDURE BuildComponentRef (location: location_t; record: tree; field: tree) : tree ;
 
 
 (*
     BuildIndirect - build: ( *target) given that the object to be copied is of, type.
 *)
 
-PROCEDURE BuildIndirect (location: location_t; target: Tree; type: Tree) : Tree ;
+PROCEDURE BuildIndirect (location: location_t; target: tree; type: tree) : tree ;
 
 
 (*
     IsTrue - returns TRUE if, t, is known to be TRUE.
 *)
 
-PROCEDURE IsTrue (t: Tree) : BOOLEAN ;
+PROCEDURE IsTrue (t: tree) : BOOLEAN ;
 
 
 (*
     IsFalse - returns FALSE if, t, is known to be FALSE.
 *)
 
-PROCEDURE IsFalse (t: Tree) : BOOLEAN ;
+PROCEDURE IsFalse (t: tree) : BOOLEAN ;
 
 
 (*
     GetCstInteger - return the integer value of the cst tree.
 *)
 
-PROCEDURE GetCstInteger (cst: Tree) : INTEGER ;
+PROCEDURE GetCstInteger (cst: tree) : INTEGER ;
 
 
 (*
@@ -612,7 +612,7 @@ PROCEDURE GetCstInteger (cst: Tree) : INTEGER ;
                         TRUE if the value of e1 is the same as e2.
 *)
 
-PROCEDURE AreConstantsEqual (e1: Tree; e2: Tree) : BOOLEAN ;
+PROCEDURE AreConstantsEqual (e1: tree; e2: tree) : BOOLEAN ;
 
 
 (*
@@ -624,7 +624,7 @@ PROCEDURE AreConstantsEqual (e1: Tree; e2: Tree) : BOOLEAN ;
                                      -0 == 0 and NaN != NaN.
 *)
 
-PROCEDURE AreRealOrComplexConstantsEqual (e1: Tree; e2: Tree) : BOOLEAN ;
+PROCEDURE AreRealOrComplexConstantsEqual (e1: tree; e2: tree) : BOOLEAN ;
 
 
 (*
@@ -635,44 +635,44 @@ PROCEDURE AreRealOrComplexConstantsEqual (e1: Tree; e2: Tree) : BOOLEAN ;
                     an unsigned constant will never return -1
 *)
 
-PROCEDURE DetermineSign (e: Tree) : INTEGER ;
+PROCEDURE DetermineSign (e: tree) : INTEGER ;
 
 
 (*
     BuildCap - builds the Modula-2 function CAP(t) and returns
-               the result in a gcc Tree.
+               the result in a gcc tree.
 *)
 
-PROCEDURE BuildCap (location: location_t; t: Tree) : Tree ;
+PROCEDURE BuildCap (location: location_t; t: tree) : tree ;
 
 
 (*
     BuildAbs - builds the Modula-2 function ABS(t) and returns
-               the result in a gcc Tree.
+               the result in a gcc tree.
 *)
 
-PROCEDURE BuildAbs (location: location_t; t: Tree) : Tree ;
+PROCEDURE BuildAbs (location: location_t; t: tree) : tree ;
 
 
 (*
     BuildRe - builds an expression for the function RE.
 *)
 
-PROCEDURE BuildRe (op1: Tree) : Tree ;
+PROCEDURE BuildRe (op1: tree) : tree ;
 
 
 (*
     BuildIm - builds an expression for the function IM.
 *)
 
-PROCEDURE BuildIm (op1: Tree) : Tree ;
+PROCEDURE BuildIm (op1: tree) : tree ;
 
 
 (*
     BuildCmplx - builds an expression for the function CMPLX.
 *)
 
-PROCEDURE BuildCmplx (location: location_t; type: Tree; real: Tree; imag: Tree) : Tree ;
+PROCEDURE BuildCmplx (location: location_t; type: tree; real: tree; imag: tree) : tree ;
 
 
 (*
@@ -683,7 +683,7 @@ PROCEDURE BuildCmplx (location: location_t; type: Tree; real: Tree; imag: Tree)
 *)
 
 PROCEDURE BuildBinaryForeachWordDo (location: location_t;
-                                    type, op1, op2, op3: Tree;
+                                    type, op1, op2, op3: tree;
                                     binop: BuildBinProcedure;
                                     is_op1lvalue,
                                     is_op2lvalue,
@@ -700,17 +700,17 @@ PROCEDURE BuildBinaryForeachWordDo (location: location_t;
 *)
 
 PROCEDURE BuildBinarySetDo (location: location_t;
-                            settype, op1, op2, op3: Tree;
+                            settype, op1, op2, op3: tree;
                             binop: BuildSetProcedure;
                             is_op1lvalue, is_op2lvalue, is_op3lvalue: BOOLEAN;
-                            nBits, unbounded: Tree;
-                            varproc, leftproc, rightproc: Tree) ;
+                            nBits, unbounded: tree;
+                            varproc, leftproc, rightproc: tree) ;
 
 (*
    ConstantExpressionWarning - issue a warning if the constant has overflowed.
 *)
 
-PROCEDURE ConstantExpressionWarning (value: Tree) ;
+PROCEDURE ConstantExpressionWarning (value: tree) ;
 
 
 (*
@@ -718,7 +718,7 @@ PROCEDURE ConstantExpressionWarning (value: Tree) ;
                      and op2 is not a pointer type.
 *)
 
-PROCEDURE BuildAddAddress (location: location_t; op1, op2: Tree) : Tree ;
+PROCEDURE BuildAddAddress (location: location_t; op1, op2: tree) : tree ;
 
 
 (*
@@ -726,7 +726,7 @@ PROCEDURE BuildAddAddress (location: location_t; op1, op2: Tree) : Tree ;
                represent: min..max.
 *)
 
-PROCEDURE calcNbits (location: location_t; min, max: Tree) : Tree ;
+PROCEDURE calcNbits (location: location_t; min, max: tree) : tree ;
 
 
 (*
@@ -734,7 +734,7 @@ PROCEDURE calcNbits (location: location_t; min, max: Tree) : Tree ;
 *)
 
 PROCEDURE OverflowZType (location: location_t;
-                         str: ADDRESS; base: CARDINAL;
+                         str: ConstCharStar; base: CARDINAL;
                          issueError: BOOLEAN) : BOOLEAN ;
 
 (*
@@ -742,7 +742,7 @@ PROCEDURE OverflowZType (location: location_t;
                            (condition) ? (left) : right.
 *)
 
-PROCEDURE BuildCondIfExpression (condition, type, left, right: Tree) : Tree ;
+PROCEDURE BuildCondIfExpression (condition, type, left, right: tree) : tree ;
 
 
 END m2expr.
diff --git a/gcc/m2/gm2-gcc/m2linemap.def b/gcc/m2/gm2-gcc/m2linemap.def
index a56e0bf79e9..aabdb9b0622 100644
--- a/gcc/m2/gm2-gcc/m2linemap.def
+++ b/gcc/m2/gm2-gcc/m2linemap.def
@@ -1,4 +1,4 @@
-(* m2linemap.def provides access to GCC location_t.
+(* m2linemap.def provides access to GCC location_t functions.
 
 Copyright (C) 2011-2024 Free Software Foundation, Inc.
 Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>.
@@ -22,15 +22,13 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 DEFINITION MODULE FOR "C" m2linemap ;
 
 FROM SYSTEM IMPORT ADDRESS ;
+FROM gcctypes IMPORT location_t ;
 
 EXPORT QUALIFIED StartFile, EndFile, StartLine, GetLocationColumn, GetLocationRange,
                  GetLocationBinary, UnknownLocation, BuiltinsLocation,
                  GetLineNoFromLocation, GetColumnNoFromLocation,
                  GetFilenameFromLocation, ErrorAt, ErrorAtf,
-                 WarningAtf, NoteAtf, internal_error, location_t ;
-
-TYPE
-   location_t = CARDINAL ;
+                 WarningAtf, NoteAtf, internal_error ;
 
 
 PROCEDURE StartFile (filename: ADDRESS; linebegin: CARDINAL) ;
diff --git a/gcc/m2/gm2-gcc/m2misc.def b/gcc/m2/gm2-gcc/m2misc.def
index 26b0e4448f3..1ca675cb146 100644
--- a/gcc/m2/gm2-gcc/m2misc.def
+++ b/gcc/m2/gm2-gcc/m2misc.def
@@ -21,13 +21,12 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE FOR "C" m2misc ;
 
-FROM m2tree IMPORT Tree ;
+FROM gcctypes IMPORT tree ;
 FROM SYSTEM IMPORT ADDRESS ;
 
-
-PROCEDURE DebugTree (t: Tree) ;
+PROCEDURE DebugTree (t: tree) ;
 PROCEDURE error (message: ARRAY OF CHAR) ;
 PROCEDURE cerror (message: ADDRESS) ;
-
+PROCEDURE warning_m2_dump_filter (message, rule: ADDRESS) ;
 
 END m2misc.
diff --git a/gcc/m2/gm2-gcc/m2pp.def b/gcc/m2/gm2-gcc/m2pp.def
index 20077176da2..63e78c5a151 100644
--- a/gcc/m2/gm2-gcc/m2pp.def
+++ b/gcc/m2/gm2-gcc/m2pp.def
@@ -22,7 +22,7 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 DEFINITION MODULE FOR "C" m2pp ;
 
 FROM SYSTEM IMPORT ADDRESS ;
-FROM m2tree IMPORT Tree ;
+FROM gcctypes IMPORT tree ;
 
 
 (*
@@ -39,7 +39,7 @@ PROCEDURE CreateDumpGimple (templatename: ADDRESS; templatelen: CARDINAL) ;
 PROCEDURE CloseDumpGimple ;
 
 
-PROCEDURE DumpGimpleFd (fd: INTEGER; fndecl: Tree) ;
+PROCEDURE DumpGimpleFd (fd: INTEGER; fndecl: tree) ;
 
 
 END m2pp.
diff --git a/gcc/m2/gm2-gcc/m2statement.cc b/gcc/m2/gm2-gcc/m2statement.cc
index dd7f2529f5d..ecd0f0ab4da 100644
--- a/gcc/m2/gm2-gcc/m2statement.cc
+++ b/gcc/m2/gm2-gcc/m2statement.cc
@@ -361,7 +361,7 @@ m2statement_BuildIndirectProcedureCallTree (location_t location,
 /* BuildBuiltinCallTree calls the builtin procedure.  */
 
 tree
-m2statement_BuildBuiltinCallTree (location_t location, tree func)
+m2statement_BuildBuiltinCallTree (tree func)
 {
   TREE_USED (func) = true;
   TREE_SIDE_EFFECTS (func) = true;
diff --git a/gcc/m2/gm2-gcc/m2statement.def b/gcc/m2/gm2-gcc/m2statement.def
index 7fb4f6b7de6..d9b24900f96 100644
--- a/gcc/m2/gm2-gcc/m2statement.def
+++ b/gcc/m2/gm2-gcc/m2statement.def
@@ -21,10 +21,8 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE FOR "C" m2statement ;
 
-
-FROM SYSTEM IMPORT ADDRESS ;
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t, tree ;
+FROM CDataTypes IMPORT CharStar ;
 FROM m2expr IMPORT BuildUnarySetFunction ;
 
 
@@ -33,28 +31,28 @@ FROM m2expr IMPORT BuildUnarySetFunction ;
             result of the expression is TRUE or FALSE.
 *)
 
-PROCEDURE DoJump (location: location_t; exp: Tree; falselabel: ADDRESS; truelabel: ADDRESS) ;
+PROCEDURE DoJump (location: location_t; exp: tree; falselabel, truelabel: CharStar) ;
 
 
 (*
    BuildStartFunctionCode - generate function entry code.
 *)
 
-PROCEDURE BuildStartFunctionCode (location: location_t; fndecl: Tree; isexported: BOOLEAN; isinline: BOOLEAN) ;
+PROCEDURE BuildStartFunctionCode (location: location_t; fndecl: tree; isexported: BOOLEAN; isinline: BOOLEAN) ;
 
 
 (*
    BuildEndFunctionCode - generates the function epilogue.
 *)
 
-PROCEDURE BuildEndFunctionCode (location: location_t; fndecl: Tree; nested: BOOLEAN) ;
+PROCEDURE BuildEndFunctionCode (location: location_t; fndecl: tree; nested: BOOLEAN) ;
 
 
 (*
    BuildReturnValueCode - generates the code associated with: RETURN( value )
 *)
 
-PROCEDURE BuildReturnValueCode (location: location_t; fndecl: Tree; value: Tree) ;
+PROCEDURE BuildReturnValueCode (location: location_t; fndecl: tree; value: tree) ;
 
 
 (*
@@ -78,28 +76,28 @@ PROCEDURE BuildPopFunctionContext ;
                          It returns, des.
 *)
 
-PROCEDURE BuildAssignmentTree (location: location_t; des, expr: Tree) : Tree ;
+PROCEDURE BuildAssignmentTree (location: location_t; des, expr: tree) : tree ;
 
 
 (*
    BuildAssignmentStatement builds the assignment of, des, and, expr.
 *)
 
-PROCEDURE BuildAssignmentStatement (location: location_t; des, expr: Tree) ;
+PROCEDURE BuildAssignmentStatement (location: location_t; des, expr: tree) ;
 
 
 (*
    BuildGoto - builds a goto operation.
 *)
 
-PROCEDURE BuildGoto (location: location_t; name: ADDRESS) ;
+PROCEDURE BuildGoto (location: location_t; name: CharStar) ;
 
 
 (*
    DeclareLabel - create a label, name.
 *)
 
-PROCEDURE DeclareLabel (location: location_t; name: ADDRESS) ;
+PROCEDURE DeclareLabel (location: location_t; name: CharStar) ;
 
 
 (*
@@ -107,7 +105,7 @@ PROCEDURE DeclareLabel (location: location_t; name: ADDRESS) ;
                       statement, s, if, condition, is true.
 *)
 
-PROCEDURE BuildIfThenDoEnd (condition: Tree; then_block: Tree) : Tree ;
+PROCEDURE BuildIfThenDoEnd (condition: tree; then_block: tree) : tree ;
 
 
 (*
@@ -116,14 +114,14 @@ PROCEDURE BuildIfThenDoEnd (condition: Tree; then_block: Tree) : Tree ;
                         condition.
 *)
 
-PROCEDURE BuildIfThenElseEnd (condition: Tree; then_block: Tree; else_block: Tree) : Tree ;
+PROCEDURE BuildIfThenElseEnd (condition: tree; then_block: tree; else_block: tree) : tree ;
 
 
 (*
    BuildParam - build a list of parameters, ready for a subsequent procedure call.
 *)
 
-PROCEDURE BuildParam (location: location_t; param: Tree) ;
+PROCEDURE BuildParam (location: location_t; param: tree) ;
 
 
 (*
@@ -136,7 +134,7 @@ PROCEDURE BuildParam (location: location_t; param: Tree) ;
                            a call to BuildFunctionCallTree.
 *)
 
-PROCEDURE BuildFunctionCallTree (location: location_t; procedure: Tree; rettype: Tree) ;
+PROCEDURE BuildFunctionCallTree (location: location_t; procedure: tree; rettype: tree) ;
 
 
 (*
@@ -144,7 +142,7 @@ PROCEDURE BuildFunctionCallTree (location: location_t; procedure: Tree; rettype:
                             parameter list and the return type, rettype.
 *)
 
-PROCEDURE BuildProcedureCallTree (location: location_t; procedure: Tree; rettype: Tree) : Tree ;
+PROCEDURE BuildProcedureCallTree (location: location_t; procedure: tree; rettype: tree) : tree ;
 
 
 (*
@@ -152,14 +150,14 @@ PROCEDURE BuildProcedureCallTree (location: location_t; procedure: Tree; rettype
                                     parameter list and the return type, rettype.
 *)
 
-PROCEDURE BuildIndirectProcedureCallTree (location: location_t; procedure: Tree; rettype: Tree) : Tree ;
+PROCEDURE BuildIndirectProcedureCallTree (location: location_t; procedure: tree; rettype: tree) : tree ;
 
 
 (*
    BuildFunctValue - generates code for value := last_function(foobar);
 *)
 
-PROCEDURE BuildFunctValue (location: location_t; value: Tree) : Tree ;
+PROCEDURE BuildFunctValue (location: location_t; value: tree) : tree ;
 
 
 (*
@@ -167,7 +165,7 @@ PROCEDURE BuildFunctValue (location: location_t; value: Tree) : Tree ;
 *)
 
 PROCEDURE BuildCall2 (location: location_t;
-                      function, rettype, arg1, arg2: Tree) : Tree ;
+                      function, rettype, arg1, arg2: tree) : tree ;
 
 
 (*
@@ -175,28 +173,28 @@ PROCEDURE BuildCall2 (location: location_t;
 *)
 
 PROCEDURE BuildCall3 (location: location_t;
-                      function, rettype, arg1, arg2, arg3: Tree) : Tree ;
+                      function, rettype, arg1, arg2, arg3: tree) : tree ;
 
 
 (*
    SetLastFunction - set the last_function to, t.
 *)
 
-PROCEDURE SetLastFunction (t: Tree) ;
+PROCEDURE SetLastFunction (t: tree) ;
 
 
 (*
    GetLastFunction - returns, last_function.
 *)
 
-PROCEDURE GetLastFunction () : Tree ;
+PROCEDURE GetLastFunction () : tree ;
 
 
 (*
    GetParamTree - return parameter, i.
 *)
 
-PROCEDURE GetParamTree (call: Tree; i: CARDINAL) : Tree ;
+PROCEDURE GetParamTree (call: tree; i: CARDINAL) : tree ;
 
 
 (*
@@ -204,23 +202,23 @@ PROCEDURE GetParamTree (call: Tree; i: CARDINAL) : Tree ;
                      attached.
 *)
 
-PROCEDURE BuildTryFinally (location: location_t; call: Tree; cleanups: Tree) : Tree ;
+PROCEDURE BuildTryFinally (location: location_t; call: tree; cleanups: tree) : tree ;
 
 
 (*
    BuildCleanUp - return a CLEANUP_POINT_EXPR which will clobber, param.
 *)
 
-PROCEDURE BuildCleanUp (param: Tree) : Tree ;
+PROCEDURE BuildCleanUp (param: tree) : tree ;
 
 
 (*
     BuildAsm - generates an inline assembler instruction.
 *)
 
-PROCEDURE BuildAsm (location: location_t; instr: Tree;
+PROCEDURE BuildAsm (location: location_t; instr: tree;
                     isVolatile: BOOLEAN; isSimple: BOOLEAN;
-                    inputs: Tree; outputs: Tree; trash: Tree; labels: Tree) ;
+                    inputs: tree; outputs: tree; trash: tree; labels: tree) ;
 
 
 (*
@@ -231,7 +229,7 @@ PROCEDURE BuildAsm (location: location_t; instr: Tree;
                               of the large set invoking the unop.
 *)
 
-PROCEDURE BuildUnaryForeachWordDo (location: location_t; type: Tree; op1: Tree; op2: Tree;
+PROCEDURE BuildUnaryForeachWordDo (location: location_t; type: tree; op1: tree; op2: tree;
                                    unop: BuildUnarySetFunction;
                                    is_op1lvalue, is_op2lvalue, is_op1const, is_op2const: BOOLEAN) ;
 
@@ -242,7 +240,7 @@ PROCEDURE BuildUnaryForeachWordDo (location: location_t; type: Tree; op1: Tree;
                            op2 is a constant.
 *)
 
-PROCEDURE BuildExcludeVarConst (location: location_t; type: Tree; op1: Tree; op2: Tree; is_lvalue: BOOLEAN; fieldno: INTEGER) ;
+PROCEDURE BuildExcludeVarConst (location: location_t; type: tree; op1: tree; op2: tree; is_lvalue: BOOLEAN; fieldno: INTEGER) ;
 
 
 (*
@@ -250,7 +248,7 @@ PROCEDURE BuildExcludeVarConst (location: location_t; type: Tree; op1: Tree; op2
                          varel is a variable.
 *)
 
-PROCEDURE BuildExcludeVarVar (location: location_t; type: Tree; varset: Tree; varel: Tree; is_lvalue: BOOLEAN; low: Tree) ;
+PROCEDURE BuildExcludeVarVar (location: location_t; type: tree; varset: tree; varel: tree; is_lvalue: BOOLEAN; low: tree) ;
 
 
 (*
@@ -259,7 +257,7 @@ PROCEDURE BuildExcludeVarVar (location: location_t; type: Tree; varset: Tree; va
                            op2 is a constant.
 *)
 
-PROCEDURE BuildIncludeVarConst (location: location_t; type: Tree; op1: Tree; op2: Tree; is_lvalue: BOOLEAN; fieldno: INTEGER) ;
+PROCEDURE BuildIncludeVarConst (location: location_t; type: tree; op1: tree; op2: tree; is_lvalue: BOOLEAN; fieldno: INTEGER) ;
 
 
 (*
@@ -267,7 +265,7 @@ PROCEDURE BuildIncludeVarConst (location: location_t; type: Tree; op1: Tree; op2
                          op2 is a variable.
 *)
 
-PROCEDURE BuildIncludeVarVar (location: location_t; type: Tree; varset: Tree; varel: Tree; is_lvalue: BOOLEAN; low: Tree) ;
+PROCEDURE BuildIncludeVarVar (location: location_t; type: tree; varset: tree; varel: tree; is_lvalue: BOOLEAN; low: tree) ;
 
 
 (*
@@ -278,21 +276,21 @@ PROCEDURE BuildIncludeVarVar (location: location_t; type: Tree; varset: Tree; va
                  sequence for all modules.
 *)
 
-PROCEDURE BuildStart (location: location_t; name: ADDRESS; inner_module: BOOLEAN) : Tree ;
+PROCEDURE BuildStart (location: location_t; name: CharStar; inner_module: BOOLEAN) : tree ;
 
 
 (*
     BuildEnd - complete the initialisation function for this module.
 *)
 
-PROCEDURE BuildEnd (location: location_t; fndecl: Tree; nested: BOOLEAN) ;
+PROCEDURE BuildEnd (location: location_t; fndecl: tree; nested: BOOLEAN) ;
 
 
 (*
     BuildCallInner - call the inner module function.  It has no parameters and no return value.
 *)
 
-PROCEDURE BuildCallInner (location: location_t; fndecl: Tree) ;
+PROCEDURE BuildCallInner (location: location_t; fndecl: tree) ;
 
 
 (*
@@ -313,7 +311,7 @@ PROCEDURE SetEndLocation (location: location_t) ;
    BuildBuiltinCallTree - calls the builtin procedure.
 *)
 
-PROCEDURE BuildBuiltinCallTree (location: location_t; func: Tree) : Tree ;
+PROCEDURE BuildBuiltinCallTree (func: tree) : tree ;
 
 
 END m2statement.
diff --git a/gcc/m2/gm2-gcc/m2statement.h b/gcc/m2/gm2-gcc/m2statement.h
index 9bdd5487142..a1eed4881f9 100644
--- a/gcc/m2/gm2-gcc/m2statement.h
+++ b/gcc/m2/gm2-gcc/m2statement.h
@@ -103,7 +103,7 @@ EXTERN tree m2statement_GetCurrentFunction (void);
 EXTERN void m2statement_SetBeginLocation (location_t location);
 EXTERN void m2statement_SetEndLocation (location_t location);
 EXTERN tree m2statement_GetParamTree (tree call, unsigned int i);
-EXTERN tree m2statement_BuildBuiltinCallTree (location_t location, tree func);
+EXTERN tree m2statement_BuildBuiltinCallTree (tree func);
 
 EXTERN tree m2statement_BuildTryFinally (location_t location, tree call,
                                          tree cleanups);
diff --git a/gcc/m2/gm2-gcc/m2tree.def b/gcc/m2/gm2-gcc/m2tree.def
index 158c57c68c7..27e70d0f0ea 100644
--- a/gcc/m2/gm2-gcc/m2tree.def
+++ b/gcc/m2/gm2-gcc/m2tree.def
@@ -22,20 +22,18 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 DEFINITION MODULE FOR "C" m2tree ;
 
 FROM SYSTEM IMPORT ADDRESS ;
-
-TYPE
-   Tree = ADDRESS ;
-
-
-PROCEDURE IsAConstant (t: Tree) : BOOLEAN ;
-PROCEDURE IsOrdinal (type: Tree) : BOOLEAN ;
-PROCEDURE IsTreeOverflow (value: Tree) : BOOLEAN ;
-PROCEDURE skip_const_decl (exp: Tree) : Tree ;
-PROCEDURE skip_type_decl (type: Tree) : Tree ;
-PROCEDURE is_type (type: Tree) : BOOLEAN ;
-PROCEDURE is_array (array: Tree) : BOOLEAN ;
-PROCEDURE is_var (var: Tree) : BOOLEAN ;
-PROCEDURE debug_tree (t: Tree) ;
+FROM gcctypes IMPORT tree ;
+
+
+PROCEDURE IsAConstant (t: tree) : BOOLEAN ;
+PROCEDURE IsOrdinal (type: tree) : BOOLEAN ;
+PROCEDURE IstreeOverflow (value: tree) : BOOLEAN ;
+PROCEDURE skip_const_decl (exp: tree) : tree ;
+PROCEDURE skip_type_decl (type: tree) : tree ;
+PROCEDURE is_type (type: tree) : BOOLEAN ;
+PROCEDURE is_array (array: tree) : BOOLEAN ;
+PROCEDURE is_var (var: tree) : BOOLEAN ;
+PROCEDURE debug_tree (t: tree) ;
 
 
 END m2tree.
diff --git a/gcc/m2/gm2-gcc/m2treelib.def b/gcc/m2/gm2-gcc/m2treelib.def
index 1803db7299c..61f57378d2b 100644
--- a/gcc/m2/gm2-gcc/m2treelib.def
+++ b/gcc/m2/gm2-gcc/m2treelib.def
@@ -21,8 +21,7 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE FOR "C" m2treelib ;
 
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
+FROM gcctypes IMPORT location_t, tree ;
 FROM SYSTEM IMPORT ADDRESS ;
 
 TYPE
@@ -35,28 +34,28 @@ TYPE
                              NULL is returned if, op, is a constant.
 *)
 
-PROCEDURE get_set_address_if_var (location: location_t; op: Tree; is_lvalue, is_const: BOOLEAN) : Tree ;
+PROCEDURE get_set_address_if_var (location: location_t; op: tree; is_lvalue, is_const: BOOLEAN) : tree ;
 
 
 (*
     get_set_field_rhs - returns the value of p->field.
 *)
 
-PROCEDURE get_set_field_rhs (location: location_t; p: Tree; field: Tree) : Tree ;
+PROCEDURE get_set_field_rhs (location: location_t; p: tree; field: tree) : tree ;
 
 
 (*
     get_set_field_lhs - returns the address of p->field.
 *)
 
-PROCEDURE get_set_field_lhs (location: location_t; p: Tree; field: Tree) : Tree ;
+PROCEDURE get_set_field_lhs (location: location_t; p: tree; field: tree) : tree ;
 
 
 (*
     get_set_address - returns the address of op1.
 *)
 
-PROCEDURE get_set_address (location: location_t; op1: Tree; is_lvalue: BOOLEAN) : Tree ;
+PROCEDURE get_set_address (location: location_t; op1: tree; is_lvalue: BOOLEAN) : tree ;
 
 
 (*
@@ -64,7 +63,7 @@ PROCEDURE get_set_address (location: location_t; op1: Tree; is_lvalue: BOOLEAN)
                     Either p->field or the constant(op.fieldNo) is returned.
 *)
 
-PROCEDURE get_set_value (location: location_t; p: Tree; field: Tree; is_const: BOOLEAN; op: Tree; fieldNo: CARDINAL) : Tree ;
+PROCEDURE get_set_value (location: location_t; p: tree; field: tree; is_const: BOOLEAN; op: tree; fieldNo: CARDINAL) : tree ;
 
 
 (*
@@ -76,7 +75,7 @@ PROCEDURE get_set_value (location: location_t; p: Tree; field: Tree; is_const: B
                    appropriate field number.
 *)
 
-PROCEDURE get_field_no (type: Tree; op: Tree; is_const: BOOLEAN; fieldNo: CARDINAL) : Tree ;
+PROCEDURE get_field_no (type: tree; op: tree; is_const: BOOLEAN; fieldNo: CARDINAL) : tree ;
 
 
 (*
@@ -84,18 +83,18 @@ PROCEDURE get_field_no (type: Tree; op: Tree; is_const: BOOLEAN; fieldNo: CARDIN
                  copied upon indirection.
 *)
 
-PROCEDURE get_rvalue (location: location_t; t: Tree; type: Tree; is_lvalue: BOOLEAN) : Tree ;
+PROCEDURE get_rvalue (location: location_t; t: tree; type: tree; is_lvalue: BOOLEAN) : tree ;
 
 
 (*
     DoCall - build a call tree arranging the parameter list as a vector.
 *)
 
-PROCEDURE DoCall (location: location_t; rettype: Tree; funcptr: Tree; param_list: Tree) : Tree ;
+PROCEDURE DoCall (location: location_t; rettype: tree; funcptr: tree; param_list: tree) : tree ;
 
 
 
-PROCEDURE build_modify_expr (location: location_t; des: Tree; modifycode: tree_code; copy: Tree) : Tree ;
+PROCEDURE build_modify_expr (location: location_t; des: tree; modifycode: tree_code; copy: tree) : tree ;
 
 
 (*
@@ -103,7 +102,7 @@ PROCEDURE build_modify_expr (location: location_t; des: Tree; modifycode: tree_c
                      If the result is true then jump to label.
 *)
 
-PROCEDURE do_jump_if_bit (location: location_t; code: tree_code; word: Tree; bit: Tree; label: ADDRESS) ;
+PROCEDURE do_jump_if_bit (location: location_t; code: tree_code; word: tree; bit: tree; label: ADDRESS) ;
 
 
 END m2treelib.
diff --git a/gcc/m2/gm2-gcc/m2type.def b/gcc/m2/gm2-gcc/m2type.def
index fc248e27b7d..c39c9d06b25 100644
--- a/gcc/m2/gm2-gcc/m2type.def
+++ b/gcc/m2/gm2-gcc/m2type.def
@@ -22,9 +22,8 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 DEFINITION MODULE FOR "C" m2type ;
 
 FROM SYSTEM IMPORT ADDRESS ;
-FROM m2tree IMPORT Tree ;
-FROM m2linemap IMPORT location_t ;
-
+FROM gcctypes IMPORT location_t, tree ;
+FROM CDataTypes IMPORT CharStar, ConstCharStar ;
 
 TYPE
    Constructor = ADDRESS ;
@@ -35,7 +34,7 @@ TYPE
                       of, type.
 *)
 
-PROCEDURE ValueInTypeRange (type: Tree; value: Tree) : BOOLEAN ;
+PROCEDURE ValueInTypeRange (type: tree; value: tree) : BOOLEAN ;
 
 
 (*
@@ -43,49 +42,49 @@ PROCEDURE ValueInTypeRange (type: Tree; value: Tree) : BOOLEAN ;
                          of, type.
 *)
 
-PROCEDURE ValueOutOfTypeRange (type: Tree; value: Tree) : BOOLEAN ;
+PROCEDURE ValueOutOfTypeRange (type: tree; value: tree) : BOOLEAN ;
 
 
 (*
    ExceedsTypeRange - return TRUE if low or high exceed the range of, type.
 *)
 
-PROCEDURE ExceedsTypeRange (type: Tree; low, high: Tree) : BOOLEAN ;
+PROCEDURE ExceedsTypeRange (type: tree; low, high: tree) : BOOLEAN ;
 
 
 (*
    WithinTypeRange - return TRUE if low and high are within the range of, type.
 *)
 
-PROCEDURE WithinTypeRange (type: Tree; low, high: Tree) : BOOLEAN ;
+PROCEDURE WithinTypeRange (type: tree; low, high: tree) : BOOLEAN ;
 
 
 (*
     BuildSubrangeType - creates a subrange of, type, with, lowval, highval.
 *)
 
-PROCEDURE BuildSubrangeType (location: location_t; name: ADDRESS; type: Tree; lowval: Tree; highval: Tree) : Tree ;
+PROCEDURE BuildSubrangeType (location: location_t; name: CharStar; type: tree; lowval: tree; highval: tree) : tree ;
 
 
 (*
     BuildCharConstant - creates a character constant given a, string.
 *)
 
-PROCEDURE BuildCharConstant (location: location_t; string: ADDRESS) : Tree ;
+PROCEDURE BuildCharConstant (location: location_t; string: ConstCharStar) : tree ;
 
 
 (*
    BuildCharConstantChar - creates a character constant given a character, ch.
 *)
 
-PROCEDURE BuildCharConstantChar (location: location_t; ch: CHAR) : Tree ;
+PROCEDURE BuildCharConstantChar (location: location_t; ch: CHAR) : tree ;
 
 
 (*
     BuildArrayConstructorElement - adds, value, to the constructor_element_list.
 *)
 
-PROCEDURE BuildArrayConstructorElement (p: ADDRESS; value: Tree; indice: Tree) ;
+PROCEDURE BuildArrayConstructorElement (p: ADDRESS; value: tree; indice: tree) ;
 
 
 (*
@@ -93,7 +92,7 @@ PROCEDURE BuildArrayConstructorElement (p: ADDRESS; value: Tree; indice: Tree) ;
                                compound literal.
 *)
 
-PROCEDURE BuildEndArrayConstructor (p: Constructor) : Tree ;
+PROCEDURE BuildEndArrayConstructor (p: Constructor) : tree ;
 
 
 (*
@@ -101,21 +100,21 @@ PROCEDURE BuildEndArrayConstructor (p: Constructor) : Tree ;
                               compound literal.
 *)
 
-PROCEDURE BuildStartArrayConstructor (type: Tree) : Constructor ;
+PROCEDURE BuildStartArrayConstructor (type: tree) : Constructor ;
 
 
 (*
     BuildRecordConstructorElement - adds, value, to the constructor_element_list.
 *)
 
-PROCEDURE BuildRecordConstructorElement (p: Constructor; value: Tree) ;
+PROCEDURE BuildRecordConstructorElement (p: Constructor; value: tree) ;
 
 
 (*
     BuildEndRecordConstructor - returns a tree containing the record compound literal.
 *)
 
-PROCEDURE BuildEndRecordConstructor (p: Constructor) : Tree ;
+PROCEDURE BuildEndRecordConstructor (p: Constructor) : tree ;
 
 
 (*
@@ -123,21 +122,21 @@ PROCEDURE BuildEndRecordConstructor (p: Constructor) : Tree ;
                                  constructor frame.
 *)
 
-PROCEDURE BuildStartRecordConstructor (type: Tree) : Constructor ;
+PROCEDURE BuildStartRecordConstructor (type: tree) : Constructor ;
 
 
 (*
     BuildEndSetConstructor - finishes building a set constant.
 *)
 
-PROCEDURE BuildEndSetConstructor (p: Constructor) : Tree ;
+PROCEDURE BuildEndSetConstructor (p: Constructor) : tree ;
 
 
 (*
     BuildSetConstructorElement - adds, value, to the constructor_element_list.
 *)
 
-PROCEDURE BuildSetConstructorElement (p: Constructor; value: Tree) ;
+PROCEDURE BuildSetConstructorElement (p: Constructor; value: tree) ;
 
 
 (*
@@ -145,28 +144,28 @@ PROCEDURE BuildSetConstructorElement (p: Constructor; value: Tree) ;
                               Remember that type is really a record type.
 *)
 
-PROCEDURE BuildStartSetConstructor (type: Tree) : Constructor ;
+PROCEDURE BuildStartSetConstructor (type: tree) : Constructor ;
 
 
 (*
     BuildSetType - creates a SET OF [lowval..highval]
 *)
 
-PROCEDURE BuildSetType (location: location_t; name: ADDRESS; type: Tree; lowval: Tree; highval: Tree; ispacked: BOOLEAN) : Tree ;
+PROCEDURE BuildSetType (location: location_t; name: CharStar; type: tree; lowval: tree; highval: tree; ispacked: BOOLEAN) : tree ;
 
 
 (*
     BuildConstPointerType - returns a type which is a const pointer to, totype.
 *)
 
-PROCEDURE BuildConstPointerType (totype: Tree) : Tree ;
+PROCEDURE BuildConstPointerType (totype: tree) : tree ;
 
 
 (*
     BuildPointerType - returns a type which is a pointer to, totype.
 *)
 
-PROCEDURE BuildPointerType (totype: Tree) : Tree ;
+PROCEDURE BuildPointerType (totype: tree) : tree ;
 
 
 (*
@@ -174,8 +173,8 @@ PROCEDURE BuildPointerType (totype: Tree) : Tree ;
                       It returns a copy of the value.  --fixme-- why do this?
 *)
 
-PROCEDURE BuildEnumerator (location: location_t; name: ADDRESS; value: Tree;
-                           VAR enumvalues: Tree) : Tree ;
+PROCEDURE BuildEnumerator (location: location_t; name: CharStar; value: tree;
+                           VAR enumvalues: tree) : tree ;
 
 
 (*
@@ -183,21 +182,21 @@ PROCEDURE BuildEnumerator (location: location_t; name: ADDRESS; value: Tree;
                           list, enumvalues, and returns a enumeration type tree.
 *)
 
-PROCEDURE BuildEndEnumeration (location: location_t; type: Tree; enumvalues: Tree) : Tree ;
+PROCEDURE BuildEndEnumeration (location: location_t; type: tree; enumvalues: tree) : tree ;
 
 
 (*
     BuildStartEnumeration - create an enumerated type in gcc.
 *)
 
-PROCEDURE BuildStartEnumeration (location: location_t; name: ADDRESS; ispacked: BOOLEAN) : Tree ;
+PROCEDURE BuildStartEnumeration (location: location_t; name: CharStar; ispacked: BOOLEAN) : tree ;
 
 
 (*
     BuildTypeDeclaration - adds the, type, to the current statement list.
 *)
 
-PROCEDURE BuildTypeDeclaration (location: location_t; type: Tree) ;
+PROCEDURE BuildTypeDeclaration (location: location_t; type: tree) ;
 
 
 (*
@@ -205,7 +204,7 @@ PROCEDURE BuildTypeDeclaration (location: location_t; type: Tree) ;
                  legal value.
 *)
 
-PROCEDURE GetMaxFrom (location: location_t; type: Tree) : Tree ;
+PROCEDURE GetMaxFrom (location: location_t; type: tree) : tree ;
 
 
 (*
@@ -213,7 +212,7 @@ PROCEDURE GetMaxFrom (location: location_t; type: Tree) : Tree ;
                  legal value.
 *)
 
-PROCEDURE GetMinFrom (location: location_t; type: Tree) : Tree ;
+PROCEDURE GetMinFrom (location: location_t; type: tree) : tree ;
 
 
 (*
@@ -229,14 +228,14 @@ PROCEDURE GetMinFrom (location: location_t; type: Tree) : Tree ;
                      declare C default types and _some_ M2 default types.
 *)
 
-PROCEDURE GetDefaultType (location: location_t; name: ADDRESS; type: Tree) : Tree ;
+PROCEDURE GetDefaultType (location: location_t; name: CharStar; type: tree) : tree ;
 
 
 (*
     BuildEndType - finish declaring, type, and return, type.
 *)
 
-PROCEDURE BuildEndType (location: location_t; type: Tree) : Tree ;
+PROCEDURE BuildEndType (location: location_t; type: tree) : tree ;
 
 
 (*
@@ -248,7 +247,7 @@ PROCEDURE BuildEndType (location: location_t; type: Tree) : Tree ;
                      yet to be 'gm2_finish_decl'ed.
 *)
 
-PROCEDURE BuildStartType (location: location_t; name: ADDRESS; type: Tree) : Tree ;
+PROCEDURE BuildStartType (location: location_t; name: CharStar; type: tree) : tree ;
 
 
 (*
@@ -271,7 +270,7 @@ PROCEDURE InitBaseTypes (location: location_t) ;
                                    This creates and array index, array type and local variable.
 *)
 
-PROCEDURE BuildVariableArrayAndDeclare (location: location_t; elementtype: Tree; high: Tree; name: ADDRESS; scope: Tree) : Tree ;
+PROCEDURE BuildVariableArrayAndDeclare (location: location_t; elementtype: tree; high: tree; name: CharStar; scope: tree) : tree ;
 
 
 (*
@@ -286,7 +285,7 @@ PROCEDURE InitFunctionTypeParameters ;
                                        It appends this parameter to the internal param_type_list.
 *)
 
-PROCEDURE BuildProcTypeParameterDeclaration (location: location_t; type: Tree; isreference: BOOLEAN) : Tree ;
+PROCEDURE BuildProcTypeParameterDeclaration (location: location_t; type: tree; isreference: BOOLEAN) : tree ;
 
 
 (*
@@ -294,7 +293,7 @@ PROCEDURE BuildProcTypeParameterDeclaration (location: location_t; type: Tree; i
                              create a function type.
 *)
 
-PROCEDURE BuildStartFunctionType (location: location_t; name: ADDRESS) : Tree ;
+PROCEDURE BuildStartFunctionType (location: location_t; name: CharStar) : tree ;
 
 
 (*
@@ -302,14 +301,14 @@ PROCEDURE BuildStartFunctionType (location: location_t; name: ADDRESS) : Tree ;
                            The arguments have been created by BuildParameterDeclaration.
 *)
 
-PROCEDURE BuildEndFunctionType (func: Tree; type: Tree; usesvarags: BOOLEAN) : Tree ;
+PROCEDURE BuildEndFunctionType (func: tree; type: tree; usesvarags: BOOLEAN) : tree ;
 
 
 (*
     GetTreeType - returns TREE_TYPE (t).
 *)
 
-PROCEDURE GetTreeType (type: Tree) : Tree ;
+PROCEDURE GetTreeType (type: tree) : tree ;
 
 
 (*
@@ -318,31 +317,31 @@ PROCEDURE GetTreeType (type: Tree) : Tree ;
                           name = foo ;
 *)
 
-PROCEDURE DeclareKnownType (location: location_t; name: ADDRESS; type: Tree) : Tree ;
+PROCEDURE DeclareKnownType (location: location_t; name: CharStar; type: tree) : tree ;
 
 
 (*
     GetM2ZType - return the ISO Z data type, the longest int datatype.
 *)
 
-PROCEDURE GetM2ZType () : Tree ;
+PROCEDURE GetM2ZType () : tree ;
 
 
 (*
     GetM2RType - return the ISO R data type, the longest real datatype.
 *)
 
-PROCEDURE GetM2RType () : Tree ;
+PROCEDURE GetM2RType () : tree ;
 
 
 (*
     BuildSetTypeFromSubrange - constructs a set type from a subrangeType.
 *)
 
-PROCEDURE BuildSetTypeFromSubrange (location: location_t; name: ADDRESS;
-                                    subrangeType: Tree;
-                                    lowval: Tree; highval: Tree;
-                                    ispacked: BOOLEAN) : Tree ;
+PROCEDURE BuildSetTypeFromSubrange (location: location_t; name: CharStar;
+                                    subrangeType: tree;
+                                    lowval: tree; highval: tree;
+                                    ispacked: BOOLEAN) : tree ;
 
 
 (*
@@ -350,434 +349,434 @@ PROCEDURE BuildSetTypeFromSubrange (location: location_t; name: ADDRESS;
                              sufficient to contain values: low..high.
 *)
 
-PROCEDURE BuildSmallestTypeRange (location: location_t; low: Tree; high: Tree) : Tree ;
+PROCEDURE BuildSmallestTypeRange (location: location_t; low: tree; high: tree) : tree ;
 
 
 (*
     GetBooleanType -
 *)
 
-PROCEDURE GetBooleanType () : Tree ;
+PROCEDURE GetBooleanType () : tree ;
 
 
 (*
     GetBooleanFalse -
 *)
 
-PROCEDURE GetBooleanFalse () : Tree ;
+PROCEDURE GetBooleanFalse () : tree ;
 
 
 (*
     GetBooleanTrue -
 *)
 
-PROCEDURE GetBooleanTrue () : Tree ;
+PROCEDURE GetBooleanTrue () : tree ;
 
 
 (*
     GetPackedBooleanType - return the packed boolean data type node.
 *)
 
-PROCEDURE GetPackedBooleanType () : Tree ;
+PROCEDURE GetPackedBooleanType () : tree ;
 
 
 (*
     GetCharType - return the char type node.
 *)
 
-PROCEDURE GetCharType () : Tree ;
+PROCEDURE GetCharType () : tree ;
 
 
 (*
     GetByteType - return the byte type node.
 *)
 
-PROCEDURE GetByteType () : Tree ;
+PROCEDURE GetByteType () : tree ;
 
 
 (*
     GetVoidType - return the C void type.
 *)
 
-PROCEDURE GetVoidType () : Tree ;
+PROCEDURE GetVoidType () : tree ;
 
 
 (*
     GetBitnumType - return the ISO bitnum type.
 *)
 
-PROCEDURE GetBitnumType () : Tree ;
+PROCEDURE GetBitnumType () : tree ;
 
 
 (*
     GetRealType -
 *)
 
-PROCEDURE GetRealType () : Tree ;
+PROCEDURE GetRealType () : tree ;
 
 
 (*
     GetLongRealType - return the C long double data type.
 *)
 
-PROCEDURE GetLongRealType () : Tree ;
+PROCEDURE GetLongRealType () : tree ;
 
 
 (*
     GetShortRealType - return the C float data type.
 *)
 
-PROCEDURE GetShortRealType () : Tree ;
+PROCEDURE GetShortRealType () : tree ;
 
 
 (*
     GetLongIntType - return the C long int data type.
 *)
 
-PROCEDURE GetLongIntType () : Tree ;
+PROCEDURE GetLongIntType () : tree ;
 
 
 (*
     GetPointerType - return the GCC ptr type node.  Equivalent to (void * ).
 *)
 
-PROCEDURE GetPointerType () : Tree ;
+PROCEDURE GetPointerType () : tree ;
 
 
 (*
     GetCardinalType - return the cardinal type.
 *)
 
-PROCEDURE GetCardinalType () : Tree ;
+PROCEDURE GetCardinalType () : tree ;
 
 
 (*
     GetIntegerType - return the integer type node.
 *)
 
-PROCEDURE GetIntegerType () : Tree ;
+PROCEDURE GetIntegerType () : tree ;
 
 
 (*
     GetWordType - return the C unsigned data type.
 *)
 
-PROCEDURE GetWordType () : Tree ;
+PROCEDURE GetWordType () : tree ;
 
 
 (*
     GetM2CardinalType - return the m2 cardinal data type.
 *)
 
-PROCEDURE GetM2CardinalType () : Tree ;
+PROCEDURE GetM2CardinalType () : tree ;
 
 
 (*
     GetBitsetType - return the bitset type.
 *)
 
-PROCEDURE GetBitsetType () : Tree ;
+PROCEDURE GetBitsetType () : tree ;
 
 
 (*
     GetM2CType - a test function.
 *)
 
-PROCEDURE GetM2CType () : Tree ;
+PROCEDURE GetM2CType () : tree ;
 
 
 (*
     GetProcType - return the m2 proc data type.
 *)
 
-PROCEDURE GetProcType () : Tree ;
+PROCEDURE GetProcType () : tree ;
 
 
 (*
     GetM2ComplexType - return the complex type.
 *)
 
-PROCEDURE GetM2ComplexType () : Tree ;
+PROCEDURE GetM2ComplexType () : tree ;
 
 
 (*
     GetM2LongComplexType - return the long complex type.
 *)
 
-PROCEDURE GetM2LongComplexType () : Tree ;
+PROCEDURE GetM2LongComplexType () : tree ;
 
 
 (*
     GetM2ShortComplexType - return the short complex type.
 *)
 
-PROCEDURE GetM2ShortComplexType () : Tree ;
+PROCEDURE GetM2ShortComplexType () : tree ;
 
 
 (*
     GetM2Complex128Type - return the fixed size complex type.
 *)
 
-PROCEDURE GetM2Complex128 () : Tree ;
+PROCEDURE GetM2Complex128 () : tree ;
 
 
 (*
     GetM2Complex96 - return the fixed size complex type.
 *)
 
-PROCEDURE GetM2Complex96 () : Tree ;
+PROCEDURE GetM2Complex96 () : tree ;
 
 
 (*
     GetM2Complex64 - return the fixed size complex type.
 *)
 
-PROCEDURE GetM2Complex64 () : Tree ;
+PROCEDURE GetM2Complex64 () : tree ;
 
 
 (*
     GetM2Complex32 - return the fixed size complex type.
 *)
 
-PROCEDURE GetM2Complex32 () : Tree ;
+PROCEDURE GetM2Complex32 () : tree ;
 
 
 (*
     GetM2Real128 - return the real 128 bit type.
 *)
 
-PROCEDURE GetM2Real128 () : Tree ;
+PROCEDURE GetM2Real128 () : tree ;
 
 
 (*
     GetM2Real96 - return the real 96 bit type.
 *)
 
-PROCEDURE GetM2Real96 () : Tree ;
+PROCEDURE GetM2Real96 () : tree ;
 
 
 (*
     GetM2Real64 - return the real 64 bit type.
 *)
 
-PROCEDURE GetM2Real64 () : Tree ;
+PROCEDURE GetM2Real64 () : tree ;
 
 
 (*
     GetM2Real32 - return the real 32 bit type.
 *)
 
-PROCEDURE GetM2Real32 () : Tree ;
+PROCEDURE GetM2Real32 () : tree ;
 
 
 (*
     GetM2Bitset32 - return the bitset 32 bit type.
 *)
 
-PROCEDURE GetM2Bitset32 () : Tree ;
+PROCEDURE GetM2Bitset32 () : tree ;
 
 
 (*
     GetM2Bitset16 - return the bitset 16 bit type.
 *)
 
-PROCEDURE GetM2Bitset16 () : Tree ;
+PROCEDURE GetM2Bitset16 () : tree ;
 
 
 (*
     GetM2Bitset8 - return the bitset 8 bit type.
 *)
 
-PROCEDURE GetM2Bitset8 () : Tree ;
+PROCEDURE GetM2Bitset8 () : tree ;
 
 
 (*
     GetM2Word64 - return the word 64 bit type.
 *)
 
-PROCEDURE GetM2Word64 () : Tree ;
+PROCEDURE GetM2Word64 () : tree ;
 
 
 (*
     GetM2Word32 - return the word 32 bit type.
 *)
 
-PROCEDURE GetM2Word32 () : Tree ;
+PROCEDURE GetM2Word32 () : tree ;
 
 
 (*
     GetM2Word16 - return the word 16 bit type.
 *)
 
-PROCEDURE GetM2Word16 () : Tree ;
+PROCEDURE GetM2Word16 () : tree ;
 
 
 (*
     GetM2Cardinal64 - return the cardinal 64 bit type.
 *)
 
-PROCEDURE GetM2Cardinal64 () : Tree ;
+PROCEDURE GetM2Cardinal64 () : tree ;
 
 
 (*
     GetM2Cardinal32 - return the cardinal 32 bit type.
 *)
 
-PROCEDURE GetM2Cardinal32 () : Tree ;
+PROCEDURE GetM2Cardinal32 () : tree ;
 
 
 (*
     GetM2Cardinal16 - return the cardinal 16 bit type.
 *)
 
-PROCEDURE GetM2Cardinal16 () : Tree ;
+PROCEDURE GetM2Cardinal16 () : tree ;
 
 
 (*
     GetM2Cardinal8 - return the cardinal 8 bit type.
 *)
 
-PROCEDURE GetM2Cardinal8 () : Tree ;
+PROCEDURE GetM2Cardinal8 () : tree ;
 
 
 (*
     GetM2Integer64 - return the integer 64 bit type.
 *)
 
-PROCEDURE GetM2Integer64 () : Tree ;
+PROCEDURE GetM2Integer64 () : tree ;
 
 
 (*
     GetM2Integer32 - return the integer 32 bit type.
 *)
 
-PROCEDURE GetM2Integer32 () : Tree ;
+PROCEDURE GetM2Integer32 () : tree ;
 
 
 (*
     GetM2Integer16 - return the integer 16 bit type.
 *)
 
-PROCEDURE GetM2Integer16 () : Tree ;
+PROCEDURE GetM2Integer16 () : tree ;
 
 
 (*
     GetM2Integer8 - return the integer 8 bit type.
 *)
 
-PROCEDURE GetM2Integer8 () : Tree ;
+PROCEDURE GetM2Integer8 () : tree ;
 
 
 (*
     GetISOLocType - return the m2 loc word data type.
 *)
 
-PROCEDURE GetISOLocType () : Tree ;
+PROCEDURE GetISOLocType () : tree ;
 
 
 (*
     GetISOByteType - return the m2 iso byte data type.
 *)
 
-PROCEDURE GetISOByteType () : Tree ;
+PROCEDURE GetISOByteType () : tree ;
 
 
 (*
     GetISOWordType - return the m2 iso word data type.
 *)
 
-PROCEDURE GetISOWordType () : Tree ;
+PROCEDURE GetISOWordType () : tree ;
 
 
 (*
     GetShortCardType - return the C short unsigned data type.
 *)
 
-PROCEDURE GetShortCardType () : Tree ;
+PROCEDURE GetShortCardType () : tree ;
 
 
 (*
     GetM2ShortCardType - return the m2 short cardinal data type.
 *)
 
-PROCEDURE GetM2ShortCardType () : Tree ;
+PROCEDURE GetM2ShortCardType () : tree ;
 
 
 (*
     GetShortIntType - return the C short int data type.
 *)
 
-PROCEDURE GetShortIntType () : Tree ;
+PROCEDURE GetShortIntType () : tree ;
 
 
 (*
     GetM2ShortIntType - return the m2 short integer data type.
 *)
 
-PROCEDURE GetM2ShortIntType () : Tree ;
+PROCEDURE GetM2ShortIntType () : tree ;
 
 
 (*
     GetM2LongCardType - return the m2 long cardinal data type.
 *)
 
-PROCEDURE GetM2LongCardType () : Tree ;
+PROCEDURE GetM2LongCardType () : tree ;
 
 
 (*
     GetM2LongIntType - return the m2 long integer data type.
 *)
 
-PROCEDURE GetM2LongIntType () : Tree ;
+PROCEDURE GetM2LongIntType () : tree ;
 
 
 (*
     GetM2LongRealType - return the m2 long real data type.
 *)
 
-PROCEDURE GetM2LongRealType () : Tree ;
+PROCEDURE GetM2LongRealType () : tree ;
 
 
 (*
     GetM2RealType - return the m2 real data type.
 *)
 
-PROCEDURE GetM2RealType () : Tree ;
+PROCEDURE GetM2RealType () : tree ;
 
 
 (*
     GetM2ShortRealType - return the m2 short real data type.
 *)
 
-PROCEDURE GetM2ShortRealType () : Tree ;
+PROCEDURE GetM2ShortRealType () : tree ;
 
 
 (*
     GetM2IntegerType - return the m2 integer data type.
 *)
 
-PROCEDURE GetM2IntegerType () : Tree ;
+PROCEDURE GetM2IntegerType () : tree ;
 
 
 (*
     GetM2CharType - return the m2 char data type.
 *)
 
-PROCEDURE GetM2CharType () : Tree ;
+PROCEDURE GetM2CharType () : tree ;
 
 
 (*
    GetCSizeTType - return a type representing, size_t on this system.
 *)
 
-PROCEDURE GetCSizeTType () : Tree ;
+PROCEDURE GetCSizeTType () : tree ;
 
 
 (*
    GetCSSizeTType - return a type representing, ssize_t on this system.
 *)
 
-PROCEDURE GetCSSizeTType () : Tree ;
+PROCEDURE GetCSSizeTType () : tree ;
 
 
 (*
@@ -786,52 +785,52 @@ PROCEDURE GetCSSizeTType () : Tree ;
                                   defined by, str, of, length, characters.
 *)
 
-PROCEDURE BuildArrayStringConstructor (location: location_t; arrayType: Tree; str: Tree; length: Tree) : Tree ;
+PROCEDURE BuildArrayStringConstructor (location: location_t; arrayType: tree; str: tree; length: tree) : tree ;
 
 
 (*
     RealToTree - convert a real number into a Tree.
 *)
 
-PROCEDURE RealToTree (name: ADDRESS) : Tree ;
+PROCEDURE RealToTree (name: CharStar) : tree ;
 
 
 (*
     BuildStartRecord - return a RECORD tree.
 *)
 
-PROCEDURE BuildStartRecord (location: location_t; name: ADDRESS) : Tree ;
+PROCEDURE BuildStartRecord (location: location_t; name: CharStar) : tree ;
 
 
 (*
     BuildStartUnion - return a union tree.
 *)
 
-PROCEDURE BuildStartUnion (location: location_t; name: ADDRESS) : Tree ;
+PROCEDURE BuildStartUnion (location: location_t; name: CharStar) : tree ;
 
 
 
-PROCEDURE BuildStartVarient (location: location_t; name: ADDRESS) : Tree ;
+PROCEDURE BuildStartVarient (location: location_t; name: CharStar) : tree ;
 
 
 
-PROCEDURE BuildEndVarient (location: location_t; varientField: Tree; varientList: Tree; isPacked: BOOLEAN) : Tree ;
+PROCEDURE BuildEndVarient (location: location_t; varientField: tree; varientList: tree; isPacked: BOOLEAN) : tree ;
 
 
 
-PROCEDURE BuildStartFieldVarient (location: location_t; name: ADDRESS) : Tree ;
+PROCEDURE BuildStartFieldVarient (location: location_t; name: CharStar) : tree ;
 
 
 
-PROCEDURE BuildEndFieldVarient (location: location_t; varientField: Tree; varientList: Tree; isPacked: BOOLEAN) : Tree ;
+PROCEDURE BuildEndFieldVarient (location: location_t; varientField: tree; varientList: tree; isPacked: BOOLEAN) : tree ;
 
 
 
-PROCEDURE BuildStartFieldRecord (location: location_t; name: ADDRESS; type: Tree) : Tree ;
+PROCEDURE BuildStartFieldRecord (location: location_t; name: CharStar; type: tree) : tree ;
 
 
 
-PROCEDURE BuildFieldRecord (location: location_t; name: ADDRESS; type: Tree) : Tree ;
+PROCEDURE BuildFieldRecord (location: location_t; name: CharStar; type: tree) : tree ;
 
 
 (*
@@ -839,21 +838,21 @@ PROCEDURE BuildFieldRecord (location: location_t; name: ADDRESS; type: Tree) : T
               declarations.
 *)
 
-PROCEDURE ChainOn (t1: Tree; t2: Tree) : Tree ;
+PROCEDURE ChainOn (t1: tree; t2: tree) : tree ;
 
 
 (*
     ChainOnParamValue - adds a list node {{name, str}, value} into the tree list.
 *)
 
-PROCEDURE ChainOnParamValue (list: Tree; name: Tree; str: Tree; value: Tree) : Tree ;
+PROCEDURE ChainOnParamValue (list: tree; name: tree; str: tree; value: tree) : tree ;
 
 
 (*
    AddStringToTreeList - adds, string, to list.
 *)
 
-PROCEDURE AddStringToTreeList (list: Tree; string: Tree) : Tree ;
+PROCEDURE AddStringToTreeList (list: tree; string: tree) : tree ;
 
 
 (*
@@ -863,7 +862,7 @@ PROCEDURE AddStringToTreeList (list: Tree; string: Tree) : Tree ;
                      the structure.
 *)
 
-PROCEDURE BuildEndRecord (location: location_t; record: Tree; fieldlist: Tree; isPacked: BOOLEAN) : Tree ;
+PROCEDURE BuildEndRecord (location: location_t; record: tree; fieldlist: tree; isPacked: BOOLEAN) : tree ;
 
 
 (*
@@ -872,7 +871,7 @@ PROCEDURE BuildEndRecord (location: location_t; record: Tree; fieldlist: Tree; i
                    to prevent alignment effecting behaviour elsewhere.
 *)
 
-PROCEDURE SetAlignment (node: Tree; align: Tree) : Tree ;
+PROCEDURE SetAlignment (node: tree; align: tree) : tree ;
 
 
 (*
@@ -880,7 +879,7 @@ PROCEDURE SetAlignment (node: Tree; align: Tree) : Tree ;
                     It returns the node.
 *)
 
-PROCEDURE SetDeclPacked (node: Tree) : Tree ;
+PROCEDURE SetDeclPacked (node: tree) : tree ;
 
 
 (*
@@ -888,7 +887,7 @@ PROCEDURE SetDeclPacked (node: Tree) : Tree ;
                     It returns the node.
 *)
 
-PROCEDURE SetTypePacked (node: Tree) : Tree ;
+PROCEDURE SetTypePacked (node: tree) : tree ;
 
 
 (*
@@ -896,7 +895,7 @@ PROCEDURE SetTypePacked (node: Tree) : Tree ;
                            has been applied to it.
 *)
 
-PROCEDURE SetRecordFieldOffset (field: Tree; byteOffset: Tree; bitOffset: Tree; fieldtype: Tree; nbits: Tree) : Tree ;
+PROCEDURE SetRecordFieldOffset (field: tree; byteOffset: tree; bitOffset: tree; fieldtype: tree; nbits: tree) : tree ;
 
 
 (*
@@ -904,7 +903,7 @@ PROCEDURE SetRecordFieldOffset (field: Tree; byteOffset: Tree; bitOffset: Tree;
                              name, and, fieldtype.
 *)
 
-PROCEDURE BuildPackedFieldRecord (location: location_t; name: ADDRESS; fieldtype: Tree) : Tree ;
+PROCEDURE BuildPackedFieldRecord (location: location_t; name: CharStar; fieldtype: tree) : tree ;
 
 
 (*
@@ -912,21 +911,21 @@ PROCEDURE BuildPackedFieldRecord (location: location_t; name: ADDRESS; fieldtype
                                  arrayType.
 *)
 
-PROCEDURE BuildNumberOfArrayElements (location: location_t; arrayType: Tree) : Tree ;
+PROCEDURE BuildNumberOfArrayElements (location: location_t; arrayType: tree) : tree ;
 
 
 (*
     AddStatement - maps onto add_stmt.
 *)
 
-PROCEDURE AddStatement (location: location_t; t: Tree) ;
+PROCEDURE AddStatement (location: location_t; t: tree) ;
 
 
 (*
     MarkFunctionReferenced - marks a function as referenced.
 *)
 
-PROCEDURE MarkFunctionReferenced (f: Tree) ;
+PROCEDURE MarkFunctionReferenced (f: tree) ;
 
 
 (*
@@ -941,14 +940,14 @@ PROCEDURE GarbageCollect ;
                          low and high are the min, max elements of the array.
 *)
 
-PROCEDURE BuildArrayIndexType (low: Tree; high: Tree) : Tree ;
+PROCEDURE BuildArrayIndexType (low: tree; high: tree) : tree ;
 
 
 (*
    GetArrayNoOfElements - returns the number of elements in, arraytype.
 *)
 
-PROCEDURE GetArrayNoOfElements (location: location_t; arraytype: Tree) : Tree ;
+PROCEDURE GetArrayNoOfElements (location: location_t; arraytype: tree) : tree ;
 
 
 (*
@@ -956,14 +955,14 @@ PROCEDURE GetArrayNoOfElements (location: location_t; arraytype: Tree) : Tree ;
                        and which has ElementType elements.
 *)
 
-PROCEDURE BuildEndArrayType (arraytype: Tree; elementtype: Tree; indextype: Tree; type: INTEGER) : Tree ;
+PROCEDURE BuildEndArrayType (arraytype: tree; elementtype: tree; indextype: tree; type: INTEGER) : tree ;
 
 
 (*
     PutArrayType -
 *)
 
-PROCEDURE PutArrayType (array: Tree; type: Tree) ;
+PROCEDURE PutArrayType (array: tree; type: tree) ;
 
 
 (*
@@ -973,21 +972,21 @@ PROCEDURE PutArrayType (array: Tree; type: Tree) ;
                           NULL_TREE.
 *)
 
-PROCEDURE BuildStartArrayType (index_type: Tree; elt_type: Tree; type: INTEGER) : Tree ;
+PROCEDURE BuildStartArrayType (index_type: tree; elt_type: tree; type: INTEGER) : tree ;
 
 
 (*
    IsAddress - return TRUE if the type is an ADDRESS.
 *)
 
-PROCEDURE IsAddress (type: Tree) : BOOLEAN ;
+PROCEDURE IsAddress (type: tree) : BOOLEAN ;
 
 
 (*
    SameRealType - return true if real types a and b are the same.
 *)
 
-PROCEDURE SameRealType (a, b: Tree) : BOOLEAN ;
+PROCEDURE SameRealType (a, b: tree) : BOOLEAN ;
 
 
 END m2type.
diff --git a/gcc/m2/m2.flex b/gcc/m2/m2.flex
index 2483b282d48..7f9b2d3d931 100644
--- a/gcc/m2/m2.flex
+++ b/gcc/m2/m2.flex
@@ -26,6 +26,7 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 #include "GM2LexBuf.h"
 #include "input.h"
 #include "m2options.h"
+#include "Gm2linemap.h"
 
 static int cpreprocessor = 0;  /* Replace this with correct getter.  */
 
diff --git a/gcc/m2/mc-boot/GDynamicStrings.cc b/gcc/m2/mc-boot/GDynamicStrings.cc
index 32969692985..2b182b9b2c0 100644
--- a/gcc/m2/mc-boot/GDynamicStrings.cc
+++ b/gcc/m2/mc-boot/GDynamicStrings.cc
@@ -653,7 +653,7 @@ static void writeStringDesc (DynamicStrings_String__opaque s)
   writeString ((const char *) ":", 1);
   writeCstring (s->debug.proc);
   writeString ((const char *) " ", 1);
-  writeAddress (reinterpret_cast<void *> (s));
+  writeAddress (reinterpret_cast <void *> (s));
   writeString ((const char *) " ", 1);
   switch (s->head->state)
     {
@@ -1332,7 +1332,7 @@ static void ConcatContentsAddress (DynamicStrings_Contents *c, void * a, unsigne
       (*c).next->head = NULL;
       (*c).next->contents.len = 0;
       (*c).next->contents.next = static_cast<DynamicStrings_String__opaque> (NULL);
-      ConcatContentsAddress (&(*c).next->contents, reinterpret_cast<void *> (p), h-j);
+      ConcatContentsAddress (&(*c).next->contents, reinterpret_cast <void *> (p), h-j);
       AddDebugInfo ((*c).next);
       if (TraceOn)
         {
@@ -1472,7 +1472,7 @@ static void DumpStringSynopsis (DynamicStrings_String__opaque s)
   writeString ((const char *) ":", 1);
   writeCstring (s->debug.proc);
   writeString ((const char *) " string ", 8);
-  writeAddress (reinterpret_cast<void *> (s));
+  writeAddress (reinterpret_cast <void *> (s));
   writeString ((const char *) " ", 1);
   DumpState (s);
   if (IsOnAllocated (s))
@@ -2064,7 +2064,7 @@ extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s,
   DynamicStrings_String__opaque d;
   DynamicStrings_String__opaque t;
   int start;
-  int end;
+  int stop;
   int o;
 
   if (PoisonOn)
@@ -2107,7 +2107,7 @@ extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s,
                 {
                   start = low-o;
                 }
-              end = Max (Min (MaxBuf, static_cast<unsigned int> (high-o)), 0);
+              stop = Max (Min (MaxBuf, static_cast<unsigned int> (high-o)), 0);
               while (t->contents.len == MaxBuf)
                 {
                   if (t->contents.next == NULL)
@@ -2123,7 +2123,7 @@ extern "C" DynamicStrings_String DynamicStrings_Slice (DynamicStrings_String s,
                     }
                   t = t->contents.next;
                 }
-              ConcatContentsAddress (&t->contents, &static_cast<DynamicStrings_String__opaque> (s)->contents.buf.array[start], static_cast<unsigned int> (end-start));
+              ConcatContentsAddress (&t->contents, &static_cast<DynamicStrings_String__opaque> (s)->contents.buf.array[start], static_cast<unsigned int> (stop-start));
               o += static_cast<DynamicStrings_String__opaque> (s)->contents.len;
               s = static_cast<DynamicStrings_String> (static_cast<DynamicStrings_String__opaque> (s)->contents.next);
             }
diff --git a/gcc/m2/mc-boot/GFIO.cc b/gcc/m2/mc-boot/GFIO.cc
index 229dc175e75..b05c33000bd 100644
--- a/gcc/m2/mc-boot/GFIO.cc
+++ b/gcc/m2/mc-boot/GFIO.cc
@@ -585,7 +585,7 @@ static FIO_File InitializeFile (FIO_File f, void * fname, unsigned int flength,
     }
   else
     {
-      Indexing_PutIndice (FileInfo, f, reinterpret_cast<void *> (fd));
+      Indexing_PutIndice (FileInfo, f, reinterpret_cast <void *> (fd));
       fd->name.size = flength+1;  /* need to guarantee the nul for C  */
       fd->usage = use;  /* need to guarantee the nul for C  */
       fd->output = towrite;
diff --git a/gcc/m2/mc-boot/GIndexing.cc b/gcc/m2/mc-boot/GIndexing.cc
index 7812ebb07a6..dd314001108 100644
--- a/gcc/m2/mc-boot/GIndexing.cc
+++ b/gcc/m2/mc-boot/GIndexing.cc
@@ -426,7 +426,7 @@ extern "C" void Indexing_DeleteIndice (Indexing_Index i, unsigned int j)
       b += sizeof (void *)*(j-static_cast<Indexing_Index__opaque> (i)->Low);
       p = (Indexing_PtrToAddress) (b);
       b += sizeof (void *);
-      p = static_cast<Indexing_PtrToAddress> (libc_memmove (reinterpret_cast<void *> (p), reinterpret_cast<void *> (b), static_cast<size_t> ((static_cast<Indexing_Index__opaque> (i)->High-j)*sizeof (void *))));
+      p = static_cast<Indexing_PtrToAddress> (libc_memmove (reinterpret_cast <void *> (p), reinterpret_cast <void *> (b), static_cast<size_t> ((static_cast<Indexing_Index__opaque> (i)->High-j)*sizeof (void *))));
       static_cast<Indexing_Index__opaque> (i)->High -= 1;
       static_cast<Indexing_Index__opaque> (i)->Used -= 1;
     }
diff --git a/gcc/m2/mc-boot/GM2Dependent.cc b/gcc/m2/mc-boot/GM2Dependent.cc
index 25b47b35e21..c965f4bf7f3 100644
--- a/gcc/m2/mc-boot/GM2Dependent.cc
+++ b/gcc/m2/mc-boot/GM2Dependent.cc
@@ -590,7 +590,7 @@ static M2Dependent_ModuleChain LookupModuleN (M2Dependent_DependencyState state,
     {
       ptr = Modules.array[state-M2Dependent_unregistered];
       do {
-        if (((strncmp (reinterpret_cast<M2Dependent_PtrToChar> (ptr->name), reinterpret_cast<M2Dependent_PtrToChar> (name), max (namelen, static_cast<unsigned int> (strlen_ (reinterpret_cast<M2Dependent_PtrToChar> (ptr->name)))))) == 0) && ((strncmp (reinterpret_cast<M2Dependent_PtrToChar> (ptr->libname), reinterpret_cast<M2Dependent_PtrToChar> (libname), max (libnamelen, static_cast<unsigned int> (strlen_ (reinterpret_cast<M2Dependent_PtrToChar> (ptr->libname)))))) == 0))
+        if (((strncmp (reinterpret_cast <M2Dependent_PtrToChar> (ptr->name), reinterpret_cast <M2Dependent_PtrToChar> (name), max (namelen, static_cast<unsigned int> (strlen_ (reinterpret_cast <M2Dependent_PtrToChar> (ptr->name)))))) == 0) && ((strncmp (reinterpret_cast <M2Dependent_PtrToChar> (ptr->libname), reinterpret_cast <M2Dependent_PtrToChar> (libname), max (libnamelen, static_cast<unsigned int> (strlen_ (reinterpret_cast <M2Dependent_PtrToChar> (ptr->libname)))))) == 0))
           {
             return ptr;
           }
@@ -610,7 +610,7 @@ static M2Dependent_ModuleChain LookupModuleN (M2Dependent_DependencyState state,
 
 static M2Dependent_ModuleChain LookupModule (M2Dependent_DependencyState state, void * name, void * libname)
 {
-  return LookupModuleN (state, name, static_cast<unsigned int> (strlen_ (reinterpret_cast<M2Dependent_PtrToChar> (name))), libname, static_cast<unsigned int> (strlen_ (reinterpret_cast<M2Dependent_PtrToChar> (libname))));
+  return LookupModuleN (state, name, static_cast<unsigned int> (strlen_ (reinterpret_cast <M2Dependent_PtrToChar> (name))), libname, static_cast<unsigned int> (strlen_ (reinterpret_cast <M2Dependent_PtrToChar> (libname))));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1113,7 +1113,7 @@ static void ForceDependencies (void * overrideliborder)
               case ',':
                 modname = start;
                 modlen = len;
-                ForceModule (reinterpret_cast<void *> (modname), modlen, reinterpret_cast<void *> (libname), liblen);
+                ForceModule (reinterpret_cast <void *> (modname), modlen, reinterpret_cast <void *> (libname), liblen);
                 libname = NULL;
                 liblen = 0;
                 modlen = 0;
@@ -1131,7 +1131,7 @@ static void ForceDependencies (void * overrideliborder)
         }
       if (start != pc)
         {
-          ForceModule (reinterpret_cast<void *> (start), len, reinterpret_cast<void *> (libname), liblen);
+          ForceModule (reinterpret_cast <void *> (start), len, reinterpret_cast <void *> (libname), liblen);
         }
       combine (M2Dependent_user, M2Dependent_ordered);
     }
@@ -1208,7 +1208,7 @@ static bool equal (void * cstr, const char *str_, unsigned int _str_high)
   /* make a local copy of each unbounded array.  */
   memcpy (str, str_, _str_high+1);
 
-  return (strncmp (reinterpret_cast<M2Dependent_PtrToChar> (cstr), reinterpret_cast<M2Dependent_PtrToChar> (const_cast<void*> (static_cast<const void*>(str))), StrLib_StrLen ((const char *) str, _str_high))) == 0;
+  return (strncmp (reinterpret_cast <M2Dependent_PtrToChar> (cstr), reinterpret_cast <M2Dependent_PtrToChar> (const_cast<void*> (static_cast<const void*>(str))), StrLib_StrLen ((const char *) str, _str_high))) == 0;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -1249,7 +1249,7 @@ static void SetupDebugFlags (void)
   pc = static_cast<SetupDebugFlags__T1> (libc_getenv (const_cast<void*> (static_cast<const void*>("GCC_M2LINK_RTFLAG"))));
   while ((pc != NULL) && ((*pc) != ASCII_nul))
     {
-      if (equal (reinterpret_cast<void *> (pc), (const char *) "all", 3))
+      if (equal (reinterpret_cast <void *> (pc), (const char *) "all", 3))
         {
           ModuleTrace = true;
           DependencyTrace = true;
@@ -1260,43 +1260,43 @@ static void SetupDebugFlags (void)
           WarningTrace = true;
           pc += 3;
         }
-      else if (equal (reinterpret_cast<void *> (pc), (const char *) "module", 6))
+      else if (equal (reinterpret_cast <void *> (pc), (const char *) "module", 6))
         {
           /* avoid dangling else.  */
           ModuleTrace = true;
           pc += 6;
         }
-      else if (equal (reinterpret_cast<void *> (pc), (const char *) "warning", 7))
+      else if (equal (reinterpret_cast <void *> (pc), (const char *) "warning", 7))
         {
           /* avoid dangling else.  */
           WarningTrace = true;
           pc += 7;
         }
-      else if (equal (reinterpret_cast<void *> (pc), (const char *) "hex", 3))
+      else if (equal (reinterpret_cast <void *> (pc), (const char *) "hex", 3))
         {
           /* avoid dangling else.  */
           HexTrace = true;
           pc += 3;
         }
-      else if (equal (reinterpret_cast<void *> (pc), (const char *) "dep", 3))
+      else if (equal (reinterpret_cast <void *> (pc), (const char *) "dep", 3))
         {
           /* avoid dangling else.  */
           DependencyTrace = true;
           pc += 3;
         }
-      else if (equal (reinterpret_cast<void *> (pc), (const char *) "pre", 3))
+      else if (equal (reinterpret_cast <void *> (pc), (const char *) "pre", 3))
         {
           /* avoid dangling else.  */
           PreTrace = true;
           pc += 3;
         }
-      else if (equal (reinterpret_cast<void *> (pc), (const char *) "post", 4))
+      else if (equal (reinterpret_cast <void *> (pc), (const char *) "post", 4))
         {
           /* avoid dangling else.  */
           PostTrace = true;
           pc += 4;
         }
-      else if (equal (reinterpret_cast<void *> (pc), (const char *) "force", 5))
+      else if (equal (reinterpret_cast <void *> (pc), (const char *) "force", 5))
         {
           /* avoid dangling else.  */
           ForceTrace = true;
diff --git a/gcc/m2/mc-boot/GSArgs.cc b/gcc/m2/mc-boot/GSArgs.cc
index 042dbe3fb3f..93083a056dc 100644
--- a/gcc/m2/mc-boot/GSArgs.cc
+++ b/gcc/m2/mc-boot/GSArgs.cc
@@ -94,7 +94,7 @@ extern "C" bool SArgs_GetArg (DynamicStrings_String *s, unsigned int n)
       a = (void *) (UnixArgs_GetArgV ());
       a = reinterpret_cast<void *> (reinterpret_cast<char *> (a)+n*sizeof (SArgs_PtrToChar));
       ppc = static_cast<SArgs_PtrToPtrToChar> (a);
-      (*s) = DynamicStrings_InitStringCharStar (reinterpret_cast<void *> ((*ppc)));
+      (*s) = DynamicStrings_InitStringCharStar (reinterpret_cast <void *> ((*ppc)));
       return true;
     }
   else
diff --git a/gcc/m2/mc-boot/GStringConvert.cc b/gcc/m2/mc-boot/GStringConvert.cc
index 5ab4b00a2b7..80efd0c9fc4 100644
--- a/gcc/m2/mc-boot/GStringConvert.cc
+++ b/gcc/m2/mc-boot/GStringConvert.cc
@@ -1772,11 +1772,11 @@ extern "C" DynamicStrings_String StringConvert_LongrealToString (long double x,
   if (TotalWidth == 0)
     {
       maxprecision = true;
-      r = ldtoa_ldtoa (x, ldtoa_decimaldigits, 100, &point, &sign);
+      r = ldtoa_ldtoa (x, static_cast<int> (ldtoa_decimaldigits), 100, &point, &sign);
     }
   else
     {
-      r = ldtoa_ldtoa (x, ldtoa_decimaldigits, 100, &point, &sign);
+      r = ldtoa_ldtoa (x, static_cast<int> (ldtoa_decimaldigits), 100, &point, &sign);
     }
   s = DynamicStrings_InitStringCharStar (r);
   libc_free (r);
diff --git a/gcc/m2/mc-boot/Gdecl.cc b/gcc/m2/mc-boot/Gdecl.cc
index defe0b29537..9af2842ca18 100644
--- a/gcc/m2/mc-boot/Gdecl.cc
+++ b/gcc/m2/mc-boot/Gdecl.cc
@@ -635,6 +635,7 @@ struct decl_moduleT_r {
 struct decl_defT_r {
                      nameKey_Name name;
                      nameKey_Name source;
+                     bool unqualified;
                      bool hasHidden;
                      bool forC;
                      Indexing_Index exported;
@@ -727,6 +728,8 @@ static decl_group freeGroup;
 static decl_group globalGroup;
 static FIO_File outputFile;
 static decl_language lang;
+static decl_node__opaque charStarN;
+static decl_node__opaque constCharStarN;
 static decl_node__opaque bitsperunitN;
 static decl_node__opaque bitsperwordN;
 static decl_node__opaque bitspercharN;
@@ -934,6 +937,18 @@ extern "C" decl_node decl_lookupModule (nameKey_Name n);
 
 extern "C" void decl_putDefForC (decl_node n);
 
+/*
+   putDefUnqualified - the definition module uses unqualified.
+*/
+
+extern "C" void decl_putDefUnqualified (decl_node n);
+
+/*
+   isDefUnqualified - returns TRUE if the definition module uses unqualified.
+*/
+
+extern "C" bool decl_isDefUnqualified (decl_node n);
+
 /*
    lookupInScope - looks up a symbol named, n, from, scope.
 */
@@ -2088,6 +2103,20 @@ static bool isLocal (decl_node__opaque n);
 
 static void importEnumFields (decl_node__opaque m, decl_node__opaque n);
 
+/*
+   checkGccType - check to see if node n is gcc tree or location_t
+                  and record its use in keyc.
+*/
+
+static void checkGccType (decl_node__opaque n);
+
+/*
+   checkCDataTypes - check to see if node n is CharStar or ConstCharStar
+                  and if necessary assign n to the global variable.
+*/
+
+static void checkCDataTypes (decl_node__opaque n);
+
 /*
    isComplex - returns TRUE if, n, is the complex type.
 */
@@ -3306,6 +3335,58 @@ static bool isDeclInImp (decl_node__opaque type);
 
 static void doTypeNameModifier (mcPretty_pretty p, decl_node__opaque n);
 
+/*
+   isGccType - return TRUE if n is tree or location_t.
+*/
+
+static bool isGccType (decl_node__opaque n);
+
+/*
+   doGccType - record whether we are going to declare tree or location_t
+               so that the appropriate gcc header can be included instead.
+*/
+
+static void doGccType (mcPretty_pretty p, decl_node__opaque n);
+
+/*
+   isCDataType - return true if n is charStar or constCharStar.
+*/
+
+static bool isCDataType (decl_node__opaque n);
+
+/*
+   isCDataTypes - return TRUE if n is CharStar or ConstCharStar.
+*/
+
+static bool isCDataTypes (decl_node__opaque n);
+
+/*
+   doCDataTypes - if we are going to declare CharStar or ConstCharStar
+               then generate a comment instead.
+*/
+
+static void doCDataTypes (mcPretty_pretty p, decl_node__opaque n);
+
+/*
+   doCDataTypesC - generate the C representation of the CDataTypes data types.
+*/
+
+static void doCDataTypesC (mcPretty_pretty p, decl_node__opaque n);
+
+/*
+   doTypeOrPointer - only declare type or pointer n providing that
+                     the name is not location_t or tree and
+                     the --gccConfigSystem option is enabled.
+*/
+
+static void doTypeOrPointer (mcPretty_pretty p, decl_node__opaque n);
+
+/*
+   doTypedef - generate a typedef for n provuiding it is not
+*/
+
+static void doTypedef (mcPretty_pretty p, decl_node__opaque n);
+
 /*
    doTypesC -
 */
@@ -3983,6 +4064,25 @@ static bool typePair (decl_node__opaque a, decl_node__opaque b, decl_node__opaqu
 
 static bool needsCast (decl_node__opaque at, decl_node__opaque ft);
 
+/*
+   castDestType - emit the destination type ft
+*/
+
+static void castDestType (mcPretty_pretty p, decl_node__opaque formal, decl_node__opaque ft);
+
+/*
+   identifyPointer -
+*/
+
+static decl_node__opaque identifyPointer (decl_node__opaque type);
+
+/*
+   castPointer - provides a six way cast between ADDRESS (ie void * ),
+                 char * and const char *.
+*/
+
+static unsigned int castPointer (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formal, decl_node__opaque at, decl_node__opaque ft);
+
 /*
    checkSystemCast - checks to see if we are passing to/from
                      a system generic type (WORD, BYTE, ADDRESS)
@@ -5538,6 +5638,12 @@ static void makeBaseSymbols (void);
 
 static void makeBuiltins (void);
 
+/*
+   makeCDataTypes - assign the charStarN and constCharStarN to NIL.
+*/
+
+static void makeCDataTypes (void);
+
 /*
    init -
 */
@@ -5556,7 +5662,7 @@ static decl_node__opaque newNode (decl_nodeT k)
   Storage_ALLOCATE ((void **) &d, sizeof (decl_nodeRec));
   if (enableMemsetOnAllocation)
     {
-      d = static_cast<decl_node__opaque> (libc_memset (reinterpret_cast<void *> (d), 0, static_cast<size_t> (sizeof ((*d)))));
+      d = static_cast<decl_node__opaque> (libc_memset (reinterpret_cast <void *> (d), 0, static_cast<size_t> (sizeof ((*d)))));
     }
   if (d == NULL)
     {
@@ -5724,6 +5830,52 @@ static void importEnumFields (decl_node__opaque m, decl_node__opaque n)
 }
 
 
+/*
+   checkGccType - check to see if node n is gcc tree or location_t
+                  and record its use in keyc.
+*/
+
+static void checkGccType (decl_node__opaque n)
+{
+  if (((mcOptions_getGccConfigSystem ()) && ((decl_getScope (static_cast<decl_node> (n))) != NULL)) && ((decl_getSymName (decl_getScope (static_cast<decl_node> (n)))) == (nameKey_makeKey ((const char *) "gcctypes", 8))))
+    {
+      /* avoid gcc warning by using compound statement even if not strictly necessary.  */
+      if ((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "location_t", 10)))
+        {
+          keyc_useGccLocation ();
+        }
+      else if ((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "tree", 4)))
+        {
+          /* avoid dangling else.  */
+          keyc_useGccTree ();
+        }
+    }
+}
+
+
+/*
+   checkCDataTypes - check to see if node n is CharStar or ConstCharStar
+                  and if necessary assign n to the global variable.
+*/
+
+static void checkCDataTypes (decl_node__opaque n)
+{
+  if (((decl_getScope (static_cast<decl_node> (n))) != NULL) && ((decl_getSymName (decl_getScope (static_cast<decl_node> (n)))) == (nameKey_makeKey ((const char *) "CDataTypes", 10))))
+    {
+      /* avoid gcc warning by using compound statement even if not strictly necessary.  */
+      if ((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "CharStar", 8)))
+        {
+          charStarN = n;
+        }
+      else if ((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "ConstCharStar", 13)))
+        {
+          /* avoid dangling else.  */
+          constCharStarN = n;
+        }
+    }
+}
+
+
 /*
    isComplex - returns TRUE if, n, is the complex type.
 */
@@ -5802,6 +5954,7 @@ static decl_node__opaque makeDef (nameKey_Name n)
   d->defF.source = nameKey_NulName;
   d->defF.hasHidden = false;
   d->defF.forC = false;
+  d->defF.unqualified = false;
   d->defF.exported = Indexing_InitIndex (1);
   d->defF.importedModules = Indexing_InitIndex (1);
   d->defF.constFixup = initFixupInfo ();
@@ -5913,7 +6066,7 @@ static decl_node__opaque addTo (decl_scopeT *decls, decl_node__opaque d)
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
       if ((symbolKey_getSymKey ((*decls).symbols, n)) == NULL)
         {
-          symbolKey_putSymKey ((*decls).symbols, n, reinterpret_cast<void *> (d));
+          symbolKey_putSymKey ((*decls).symbols, n, reinterpret_cast <void *> (d));
         }
       else
         {
@@ -5923,22 +6076,22 @@ static decl_node__opaque addTo (decl_scopeT *decls, decl_node__opaque d)
     }
   if (decl_isConst (static_cast<decl_node> (d)))
     {
-      Indexing_IncludeIndiceIntoIndex ((*decls).constants, reinterpret_cast<void *> (d));
+      Indexing_IncludeIndiceIntoIndex ((*decls).constants, reinterpret_cast <void *> (d));
     }
   else if (decl_isVar (static_cast<decl_node> (d)))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex ((*decls).variables, reinterpret_cast<void *> (d));
+      Indexing_IncludeIndiceIntoIndex ((*decls).variables, reinterpret_cast <void *> (d));
     }
   else if (decl_isType (static_cast<decl_node> (d)))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex ((*decls).types, reinterpret_cast<void *> (d));
+      Indexing_IncludeIndiceIntoIndex ((*decls).types, reinterpret_cast <void *> (d));
     }
   else if (decl_isProcedure (static_cast<decl_node> (d)))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex ((*decls).procedures, reinterpret_cast<void *> (d));
+      Indexing_IncludeIndiceIntoIndex ((*decls).procedures, reinterpret_cast <void *> (d));
       if (debugDecl)
         {
           libc_printf ((const char *) "%d procedures on the dynamic array\\n", 36, Indexing_HighIndice ((*decls).procedures));
@@ -5957,7 +6110,7 @@ static decl_node__opaque addTo (decl_scopeT *decls, decl_node__opaque d)
 static void export_ (decl_node__opaque d, decl_node__opaque n)
 {
   mcDebug_assert (decl_isDef (static_cast<decl_node> (d)));
-  Indexing_IncludeIndiceIntoIndex (d->defF.exported, reinterpret_cast<void *> (n));
+  Indexing_IncludeIndiceIntoIndex (d->defF.exported, reinterpret_cast <void *> (n));
 }
 
 
@@ -6207,7 +6360,7 @@ static decl_node__opaque addProcedureToScope (decl_node__opaque d, nameKey_Name
   if (((decl_isDef (static_cast<decl_node> (m))) && ((decl_getSymName (static_cast<decl_node> (m))) == (nameKey_makeKey ((const char *) "M2RTS", 5)))) && ((decl_getSymName (static_cast<decl_node> (d))) == (nameKey_makeKey ((const char *) "HALT", 4))))
     {
       haltN = d;
-      symbolKey_putSymKey (baseSymbols, n, reinterpret_cast<void *> (haltN));
+      symbolKey_putSymKey (baseSymbols, n, reinterpret_cast <void *> (haltN));
     }
   return addToScope (d);
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -6375,7 +6528,7 @@ static void putFieldVarient (decl_node__opaque f, decl_node__opaque v)
   switch (v->kind)
     {
       case decl_varient:
-        Indexing_IncludeIndiceIntoIndex (v->varientF.listOfSons, reinterpret_cast<void *> (f));
+        Indexing_IncludeIndiceIntoIndex (v->varientF.listOfSons, reinterpret_cast <void *> (f));
         break;
 
 
@@ -6413,14 +6566,14 @@ static decl_node__opaque putFieldRecord (decl_node__opaque r, nameKey_Name tag,
   switch (r->kind)
     {
       case decl_record:
-        Indexing_IncludeIndiceIntoIndex (r->recordF.listOfSons, reinterpret_cast<void *> (n));
+        Indexing_IncludeIndiceIntoIndex (r->recordF.listOfSons, reinterpret_cast <void *> (n));
         /* ensure that field, n, is in the parents Local Symbols.  */
         if (tag != nameKey_NulName)
           {
             /* avoid gcc warning by using compound statement even if not strictly necessary.  */
             if ((symbolKey_getSymKey (r->recordF.localSymbols, tag)) == symbolKey_NulKey)
               {
-                symbolKey_putSymKey (r->recordF.localSymbols, tag, reinterpret_cast<void *> (n));
+                symbolKey_putSymKey (r->recordF.localSymbols, tag, reinterpret_cast <void *> (n));
               }
             else
               {
@@ -6431,12 +6584,12 @@ static decl_node__opaque putFieldRecord (decl_node__opaque r, nameKey_Name tag,
         break;
 
       case decl_varientfield:
-        Indexing_IncludeIndiceIntoIndex (r->varientfieldF.listOfSons, reinterpret_cast<void *> (n));
+        Indexing_IncludeIndiceIntoIndex (r->varientfieldF.listOfSons, reinterpret_cast <void *> (n));
         p = getParent (r);
         mcDebug_assert (p->kind == decl_record);
         if (tag != nameKey_NulName)
           {
-            symbolKey_putSymKey (p->recordF.localSymbols, tag, reinterpret_cast<void *> (n));
+            symbolKey_putSymKey (p->recordF.localSymbols, tag, reinterpret_cast <void *> (n));
           }
         break;
 
@@ -6472,14 +6625,14 @@ static decl_node__opaque putFieldRecord (decl_node__opaque r, nameKey_Name tag,
 
 static void ensureOrder (Indexing_Index i, decl_node__opaque a, decl_node__opaque b)
 {
-  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (a)));
-  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (b)));
-  Indexing_RemoveIndiceFromIndex (i, reinterpret_cast<void *> (a));
-  Indexing_RemoveIndiceFromIndex (i, reinterpret_cast<void *> (b));
-  Indexing_IncludeIndiceIntoIndex (i, reinterpret_cast<void *> (a));
-  Indexing_IncludeIndiceIntoIndex (i, reinterpret_cast<void *> (b));
-  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (a)));
-  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast<void *> (b)));
+  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast <void *> (a)));
+  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast <void *> (b)));
+  Indexing_RemoveIndiceFromIndex (i, reinterpret_cast <void *> (a));
+  Indexing_RemoveIndiceFromIndex (i, reinterpret_cast <void *> (b));
+  Indexing_IncludeIndiceIntoIndex (i, reinterpret_cast <void *> (a));
+  Indexing_IncludeIndiceIntoIndex (i, reinterpret_cast <void *> (b));
+  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast <void *> (a)));
+  mcDebug_assert (Indexing_IsIndiceInIndex (i, reinterpret_cast <void *> (b)));
 }
 
 
@@ -6584,17 +6737,17 @@ static void addEnumToModule (decl_node__opaque m, decl_node__opaque e)
   mcDebug_assert (((decl_isModule (static_cast<decl_node> (m))) || (decl_isDef (static_cast<decl_node> (m)))) || (decl_isImp (static_cast<decl_node> (m))));
   if (decl_isModule (static_cast<decl_node> (m)))
     {
-      Indexing_IncludeIndiceIntoIndex (m->moduleF.enumFixup.info, reinterpret_cast<void *> (e));
+      Indexing_IncludeIndiceIntoIndex (m->moduleF.enumFixup.info, reinterpret_cast <void *> (e));
     }
   else if (decl_isDef (static_cast<decl_node> (m)))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (m->defF.enumFixup.info, reinterpret_cast<void *> (e));
+      Indexing_IncludeIndiceIntoIndex (m->defF.enumFixup.info, reinterpret_cast <void *> (e));
     }
   else if (decl_isImp (static_cast<decl_node> (m)))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (m->impF.enumFixup.info, reinterpret_cast<void *> (e));
+      Indexing_IncludeIndiceIntoIndex (m->impF.enumFixup.info, reinterpret_cast <void *> (e));
     }
 }
 
@@ -6648,8 +6801,8 @@ static decl_node__opaque doMakeEnumField (decl_node__opaque e, nameKey_Name n)
   if (f == NULL)
     {
       f = newNode (decl_enumerationfield);
-      symbolKey_putSymKey (e->enumerationF.localSymbols, n, reinterpret_cast<void *> (f));
-      Indexing_IncludeIndiceIntoIndex (e->enumerationF.listOfSons, reinterpret_cast<void *> (f));
+      symbolKey_putSymKey (e->enumerationF.localSymbols, n, reinterpret_cast <void *> (f));
+      Indexing_IncludeIndiceIntoIndex (e->enumerationF.listOfSons, reinterpret_cast <void *> (f));
       f->enumerationfieldF.name = n;
       f->enumerationfieldF.type = e;
       f->enumerationfieldF.scope = static_cast<decl_node__opaque> (decl_getDeclScope ());
@@ -6750,17 +6903,17 @@ static void addConstToModule (decl_node__opaque m, decl_node__opaque e)
   mcDebug_assert (((decl_isModule (static_cast<decl_node> (m))) || (decl_isDef (static_cast<decl_node> (m)))) || (decl_isImp (static_cast<decl_node> (m))));
   if (decl_isModule (static_cast<decl_node> (m)))
     {
-      Indexing_IncludeIndiceIntoIndex (m->moduleF.constFixup.info, reinterpret_cast<void *> (e));
+      Indexing_IncludeIndiceIntoIndex (m->moduleF.constFixup.info, reinterpret_cast <void *> (e));
     }
   else if (decl_isDef (static_cast<decl_node> (m)))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (m->defF.constFixup.info, reinterpret_cast<void *> (e));
+      Indexing_IncludeIndiceIntoIndex (m->defF.constFixup.info, reinterpret_cast <void *> (e));
     }
   else if (decl_isImp (static_cast<decl_node> (m)))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (m->impF.constFixup.info, reinterpret_cast<void *> (e));
+      Indexing_IncludeIndiceIntoIndex (m->impF.constFixup.info, reinterpret_cast <void *> (e));
     }
 }
 
@@ -8378,7 +8531,7 @@ static DynamicStrings_String getFQstring (decl_node__opaque n)
   DynamicStrings_String i;
   DynamicStrings_String s;
 
-  if ((decl_getScope (static_cast<decl_node> (n))) == NULL)
+  if (((decl_getScope (static_cast<decl_node> (n))) == NULL) || (decl_isDefUnqualified (decl_getScope (static_cast<decl_node> (n)))))
     {
       return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
     }
@@ -8389,7 +8542,7 @@ static DynamicStrings_String getFQstring (decl_node__opaque n)
       s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (decl_getScope (static_cast<decl_node> (n)))));
       return FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) "%s_%s", 5), (const unsigned char *) &s, (sizeof (s)-1), (const unsigned char *) &i, (sizeof (i)-1));
     }
-  else if ((! (decl_isExported (static_cast<decl_node> (n)))) || (mcOptions_getIgnoreFQ ()))
+  else if (((! (decl_isExported (static_cast<decl_node> (n)))) || (mcOptions_getIgnoreFQ ())) || (decl_isDefUnqualified (decl_getScope (static_cast<decl_node> (n)))))
     {
       /* avoid dangling else.  */
       return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (static_cast<decl_node> (n))));
@@ -8415,7 +8568,7 @@ static DynamicStrings_String getFQDstring (decl_node__opaque n, bool scopes)
   DynamicStrings_String i;
   DynamicStrings_String s;
 
-  if ((decl_getScope (static_cast<decl_node> (n))) == NULL)
+  if (((decl_getScope (static_cast<decl_node> (n))) == NULL) || (decl_isDefUnqualified (decl_getScope (static_cast<decl_node> (n)))))
     {
       return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (getDName (n, scopes)));
     }
@@ -8427,7 +8580,7 @@ static DynamicStrings_String getFQDstring (decl_node__opaque n, bool scopes)
       s = DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (decl_getSymName (decl_getScope (static_cast<decl_node> (n)))));
       return FormatStrings_Sprintf2 (DynamicStrings_InitString ((const char *) "%s_%s", 5), (const unsigned char *) &s, (sizeof (s)-1), (const unsigned char *) &i, (sizeof (i)-1));
     }
-  else if ((! (decl_isExported (static_cast<decl_node> (n)))) || (mcOptions_getIgnoreFQ ()))
+  else if (((! (decl_isExported (static_cast<decl_node> (n)))) || (mcOptions_getIgnoreFQ ())) || (decl_isDefUnqualified (decl_getScope (static_cast<decl_node> (n)))))
     {
       /* avoid dangling else.  */
       return DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (getDName (n, scopes)));
@@ -8490,14 +8643,14 @@ static void doNothing (decl_node__opaque n)
 
 static void doConstC (decl_node__opaque n)
 {
-  if (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n))))
+  if (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast <void *> (n))))
     {
       mcPretty_print (doP, (const char *) "#   define ", 11);
       doFQNameC (doP, n);
       mcPretty_setNeedSpace (doP);
       doExprC (doP, n->constF.value);
       mcPretty_print (doP, (const char *) "\\n", 2);
-      alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (n));
+      alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast <void *> (n));
     }
 }
 
@@ -11978,6 +12131,195 @@ static void doTypeNameModifier (mcPretty_pretty p, decl_node__opaque n)
 }
 
 
+/*
+   isGccType - return TRUE if n is tree or location_t.
+*/
+
+static bool isGccType (decl_node__opaque n)
+{
+  return (mcOptions_getGccConfigSystem ()) && (((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "location_t", 10))) || ((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "tree", 4))));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
+/*
+   doGccType - record whether we are going to declare tree or location_t
+               so that the appropriate gcc header can be included instead.
+*/
+
+static void doGccType (mcPretty_pretty p, decl_node__opaque n)
+{
+  if (mcOptions_getGccConfigSystem ())
+    {
+      /* avoid gcc warning by using compound statement even if not strictly necessary.  */
+      if ((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "location_t", 10)))
+        {
+          outText (p, (const char *) "/* Not going to declare ", 24);
+          doTypeNameC (p, n);
+          outText (p, (const char *) " as it is declared in the gcc header input.h.  */\\n\\n", 53);
+          keyc_useGccLocation ();
+        }
+      else if ((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "tree", 4)))
+        {
+          /* avoid dangling else.  */
+          outText (p, (const char *) "/* Not going to declare ", 24);
+          doTypeNameC (p, n);
+          outText (p, (const char *) " as it is declared in the gcc header tree.h.  */\\n\\n", 52);
+          keyc_useGccTree ();
+        }
+    }
+}
+
+
+/*
+   isCDataType - return true if n is charStar or constCharStar.
+*/
+
+static bool isCDataType (decl_node__opaque n)
+{
+  return (n != NULL) && ((n == charStarN) || (n == constCharStarN));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
+/*
+   isCDataTypes - return TRUE if n is CharStar or ConstCharStar.
+*/
+
+static bool isCDataTypes (decl_node__opaque n)
+{
+  decl_node__opaque scope;
+
+  scope = static_cast<decl_node__opaque> (decl_getScope (static_cast<decl_node> (n)));
+  return ((scope != NULL) && ((decl_getSymName (static_cast<decl_node> (scope))) == (nameKey_makeKey ((const char *) "CDataTypes", 10)))) && (((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "CharStar", 8))) || ((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "ConstCharStar", 13))));
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
+/*
+   doCDataTypes - if we are going to declare CharStar or ConstCharStar
+               then generate a comment instead.
+*/
+
+static void doCDataTypes (mcPretty_pretty p, decl_node__opaque n)
+{
+  if (isCDataTypes (n))
+    {
+      /* avoid gcc warning by using compound statement even if not strictly necessary.  */
+      if ((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "CharStar", 8)))
+        {
+          outText (p, (const char *) "/* Not going to declare ", 24);
+          doTypeNameC (p, n);
+          outText (p, (const char *) " as it is a C type.  */\\n\\n", 27);
+          charStarN = n;
+        }
+      else if ((decl_getSymName (static_cast<decl_node> (n))) == (nameKey_makeKey ((const char *) "ConstCharStar", 13)))
+        {
+          /* avoid dangling else.  */
+          outText (p, (const char *) "/* Not going to declare ", 24);
+          doTypeNameC (p, n);
+          outText (p, (const char *) " as it is a C type.  */\\n\\n", 27);
+          constCharStarN = n;
+        }
+    }
+}
+
+
+/*
+   doCDataTypesC - generate the C representation of the CDataTypes data types.
+*/
+
+static void doCDataTypesC (mcPretty_pretty p, decl_node__opaque n)
+{
+  if (n == charStarN)
+    {
+      outText (p, (const char *) "char *", 6);
+      mcPretty_setNeedSpace (p);
+    }
+  else if (n == constCharStarN)
+    {
+      /* avoid dangling else.  */
+      outText (p, (const char *) "const char *", 12);
+      mcPretty_setNeedSpace (p);
+    }
+}
+
+
+/*
+   doTypeOrPointer - only declare type or pointer n providing that
+                     the name is not location_t or tree and
+                     the --gccConfigSystem option is enabled.
+*/
+
+static void doTypeOrPointer (mcPretty_pretty p, decl_node__opaque n)
+{
+  decl_node__opaque m;
+
+  if (isGccType (n))
+    {
+      doGccType (p, n);
+    }
+  else if (isCDataTypes (n))
+    {
+      /* avoid dangling else.  */
+      doCDataTypes (p, n);
+    }
+  else
+    {
+      /* avoid dangling else.  */
+      m = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+      outText (p, (const char *) "typedef", 7);
+      mcPretty_setNeedSpace (p);
+      doTypeC (p, m, &m);
+      if (decl_isType (static_cast<decl_node> (m)))
+        {
+          mcPretty_setNeedSpace (p);
+        }
+      doTypeNameC (p, n);
+      doTypeNameModifier (p, n);
+      outText (p, (const char *) ";\\n\\n", 5);
+    }
+}
+
+
+/*
+   doTypedef - generate a typedef for n provuiding it is not
+*/
+
+static void doTypedef (mcPretty_pretty p, decl_node__opaque n)
+{
+  decl_node__opaque m;
+
+  if (isGccType (n))
+    {
+      doGccType (p, n);
+    }
+  else if (isCDataTypes (n))
+    {
+      /* avoid dangling else.  */
+      doCDataTypes (p, n);
+    }
+  else
+    {
+      /* avoid dangling else.  */
+      m = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
+      outText (p, (const char *) "typedef", 7);
+      mcPretty_setNeedSpace (p);
+      doTypeC (p, m, &m);
+      if (decl_isType (static_cast<decl_node> (m)))
+        {
+          mcPretty_setNeedSpace (p);
+        }
+      doTypeNameC (p, n);
+      doTypeNameModifier (p, n);
+      outText (p, (const char *) ";\\n\\n", 5);
+    }
+}
+
+
 /*
    doTypesC -
 */
@@ -11996,16 +12338,7 @@ static void doTypesC (decl_node__opaque n)
       else if ((decl_isType (static_cast<decl_node> (m))) || (decl_isPointer (static_cast<decl_node> (m))))
         {
           /* avoid dangling else.  */
-          outText (doP, (const char *) "typedef", 7);
-          mcPretty_setNeedSpace (doP);
-          doTypeC (doP, m, &m);
-          if (decl_isType (static_cast<decl_node> (m)))
-            {
-              mcPretty_setNeedSpace (doP);
-            }
-          doTypeNameC (doP, n);
-          doTypeNameModifier (doP, n);
-          outText (doP, (const char *) ";\\n\\n", 5);
+          doTypeOrPointer (doP, n);
         }
       else if (decl_isEnumeration (static_cast<decl_node> (m)))
         {
@@ -12023,16 +12356,7 @@ static void doTypesC (decl_node__opaque n)
       else
         {
           /* avoid dangling else.  */
-          outText (doP, (const char *) "typedef", 7);
-          mcPretty_setNeedSpace (doP);
-          doTypeC (doP, m, &m);
-          if (decl_isType (static_cast<decl_node> (m)))
-            {
-              mcPretty_setNeedSpace (doP);
-            }
-          doTypeNameC (doP, n);
-          doTypeNameModifier (doP, n);
-          outText (doP, (const char *) ";\\n\\n", 5);
+          doTypedef (doP, n);
         }
     }
 }
@@ -13045,6 +13369,11 @@ static void doTypeC (mcPretty_pretty p, decl_node__opaque n, decl_node__opaque *
     {
       outText (p, (const char *) "void", 4);
     }
+  else if (isCDataTypes (n))
+    {
+      /* avoid dangling else.  */
+      doCDataTypesC (p, n);
+    }
   else if (isBase (n))
     {
       /* avoid dangling else.  */
@@ -13095,15 +13424,17 @@ static void doTypeC (mcPretty_pretty p, decl_node__opaque n, decl_node__opaque *
       /* avoid dangling else.  */
       doSetC (p, n);
     }
+  else if (isCDataTypes (n))
+    {
+      /* avoid dangling else.  */
+      doCDataTypesC (p, n);
+    }
   else
     {
       /* avoid dangling else.  */
-      /* --fixme--  */
-      mcPretty_print (p, (const char *) "to do ...  typedef etc etc ", 27);
-      doFQNameC (p, n);
-      mcPretty_print (p, (const char *) ";\\n", 3);
-      M2RTS_HALT (-1);
-      __builtin_unreachable ();
+      mcMetaError_metaError1 ((const char *) "expecting a type symbol rather than a {%1DMd} {%1DMa}", 53, (const unsigned char *) &n, (sizeof (n)-1));
+      mcError_flushErrors ();
+      mcError_errorAbort0 ((const char *) "terminating compilation", 23);
     }
 }
 
@@ -13160,6 +13491,18 @@ static void doTypeNameC (mcPretty_pretty p, decl_node__opaque n)
       outText (p, (const char *) "void", 4);
       mcPretty_setNeedSpace (p);
     }
+  else if (n == charStarN)
+    {
+      /* avoid dangling else.  */
+      outText (p, (const char *) "char *", 6);
+      mcPretty_setNeedSpace (p);
+    }
+  else if (n == constCharStarN)
+    {
+      /* avoid dangling else.  */
+      outText (p, (const char *) "const char *", 12);
+      mcPretty_setNeedSpace (p);
+    }
   else if (isBase (n))
     {
       /* avoid dangling else.  */
@@ -13582,12 +13925,12 @@ static void doPrototypeC (decl_node__opaque n)
 
 static void addTodo (decl_node__opaque n)
 {
-  if (((n != NULL) && (! (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (n))))) && (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n)))))
+  if (((n != NULL) && (! (alists_isItemInList (globalGroup->partialQ, reinterpret_cast <void *> (n))))) && (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast <void *> (n)))))
     {
       mcDebug_assert (! (decl_isVarient (static_cast<decl_node> (n))));
       mcDebug_assert (! (decl_isVarientField (static_cast<decl_node> (n))));
       mcDebug_assert (! (decl_isDef (static_cast<decl_node> (n))));
-      alists_includeItemIntoList (globalGroup->todoQ, reinterpret_cast<void *> (n));
+      alists_includeItemIntoList (globalGroup->todoQ, reinterpret_cast <void *> (n));
     }
 }
 
@@ -13841,9 +14184,9 @@ static void doSimplifyNode (alists_alist l, decl_node__opaque n)
 
 static void simplifyNode (alists_alist l, decl_node__opaque n)
 {
-  if (! (alists_isItemInList (l, reinterpret_cast<void *> (n))))
+  if (! (alists_isItemInList (l, reinterpret_cast <void *> (n))))
     {
-      alists_includeItemIntoList (l, reinterpret_cast<void *> (n));
+      alists_includeItemIntoList (l, reinterpret_cast <void *> (n));
       doSimplifyNode (l, n);
     }
 }
@@ -15235,6 +15578,155 @@ static bool needsCast (decl_node__opaque at, decl_node__opaque ft)
 }
 
 
+/*
+   castDestType - emit the destination type ft
+*/
+
+static void castDestType (mcPretty_pretty p, decl_node__opaque formal, decl_node__opaque ft)
+{
+  doTypeNameC (p, ft);
+  if (decl_isVarParam (static_cast<decl_node> (formal)))
+    {
+      outText (p, (const char *) "*", 1);
+    }
+}
+
+
+/*
+   identifyPointer -
+*/
+
+static decl_node__opaque identifyPointer (decl_node__opaque type)
+{
+  if (decl_isPointer (static_cast<decl_node> (type)))
+    {
+      /* avoid gcc warning by using compound statement even if not strictly necessary.  */
+      if ((decl_skipType (decl_getType (static_cast<decl_node> (type)))) == charN)
+        {
+          return charStarN;
+        }
+      else if (((decl_skipType (decl_getType (static_cast<decl_node> (type)))) == byteN) || ((decl_skipType (decl_getType (static_cast<decl_node> (type)))) == locN))
+        {
+          /* avoid dangling else.  */
+          return addressN;
+        }
+    }
+  return type;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
+/*
+   castPointer - provides a six way cast between ADDRESS (ie void * ),
+                 char * and const char *.
+*/
+
+static unsigned int castPointer (mcPretty_pretty p, decl_node__opaque actual, decl_node__opaque formal, decl_node__opaque at, decl_node__opaque ft)
+{
+  decl_node__opaque sat;
+  decl_node__opaque sft;
+  unsigned int parenth;
+
+  parenth = 0;
+  if (at != ft)
+    {
+      sat = identifyPointer (static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (at))));
+      sft = identifyPointer (static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (ft))));
+      if (sat == addressN)
+        {
+          if (sft == charStarN)
+            {
+              outText (p, (const char *) "reinterpret_cast <", 18);
+              castDestType (p, formal, ft);
+              outText (p, (const char *) ">", 1);
+            }
+          else if (sft == constCharStarN)
+            {
+              /* avoid dangling else.  */
+              outText (p, (const char *) "const_cast <", 12);
+              castDestType (p, formal, ft);
+              outText (p, (const char *) "> (static_cast <", 16);
+              doTypeNameC (p, charStarN);
+              outText (p, (const char *) ">", 1);
+              parenth += 1;
+            }
+          else
+            {
+              /* avoid dangling else.  */
+              outText (p, (const char *) "reinterpret_cast <", 18);
+              castDestType (p, formal, ft);
+              outText (p, (const char *) ">", 1);
+            }
+        }
+      else if (sat == charStarN)
+        {
+          /* avoid dangling else.  */
+          if (sft == addressN)
+            {
+              outText (p, (const char *) "reinterpret_cast <", 18);
+              castDestType (p, formal, ft);
+              outText (p, (const char *) ">", 1);
+            }
+          else if (sft == constCharStarN)
+            {
+              /* avoid dangling else.  */
+              outText (p, (const char *) "const_cast <", 12);
+              castDestType (p, formal, ft);
+              outText (p, (const char *) ">", 1);
+            }
+          else
+            {
+              /* avoid dangling else.  */
+              outText (p, (const char *) "reinterpret_cast <", 18);
+              castDestType (p, formal, ft);
+              outText (p, (const char *) ">", 1);
+            }
+        }
+      else if (sat == constCharStarN)
+        {
+          /* avoid dangling else.  */
+          if (sft == addressN)
+            {
+              outText (p, (const char *) "static_cast <", 13);
+              castDestType (p, formal, ft);
+              outText (p, (const char *) "> (const_cast <", 15);
+              doTypeNameC (p, charStarN);
+              outText (p, (const char *) ">", 1);
+              parenth += 1;
+            }
+          else if (sft == charStarN)
+            {
+              /* avoid dangling else.  */
+              outText (p, (const char *) "const_cast <", 12);
+              castDestType (p, formal, ft);
+              outText (p, (const char *) ">", 1);
+            }
+          else
+            {
+              /* avoid dangling else.  */
+              outText (p, (const char *) "reinterpret_cast <", 18);
+              castDestType (p, formal, ft);
+              outText (p, (const char *) ">", 1);
+            }
+        }
+      else
+        {
+          /* avoid dangling else.  */
+          outText (p, (const char *) "reinterpret_cast <", 18);
+          castDestType (p, formal, ft);
+          outText (p, (const char *) ">", 1);
+        }
+      mcPretty_setNeedSpace (p);
+      outText (p, (const char *) "(", 1);
+      parenth += 1;
+    }
+  return parenth;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
 /*
    checkSystemCast - checks to see if we are passing to/from
                      a system generic type (WORD, BYTE, ADDRESS)
@@ -15254,12 +15746,18 @@ static unsigned int checkSystemCast (mcPretty_pretty p, decl_node__opaque actual
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
       if (lang == decl_ansiCP)
         {
-          if ((isString (actual)) && ((decl_skipType (static_cast<decl_node> (ft))) == addressN))
+          if ((isString (actual)) && (isCDataType (static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (ft))))))
+            {
+              /* Nothing to do.  */
+              return 0;
+            }
+          else if ((isString (actual)) && ((decl_skipType (static_cast<decl_node> (ft))) == addressN))
             {
+              /* avoid dangling else.  */
               outText (p, (const char *) "const_cast<void*> (static_cast<const void*> (", 45);
               return 2;
             }
-          else if ((decl_isPointer (decl_skipType (static_cast<decl_node> (ft)))) || ((decl_skipType (static_cast<decl_node> (ft))) == addressN))
+          else if (((decl_isPointer (decl_skipType (static_cast<decl_node> (ft)))) || ((decl_skipType (static_cast<decl_node> (ft))) == addressN)) || (isCDataType (static_cast<decl_node__opaque> (decl_skipType (static_cast<decl_node> (ft))))))
             {
               /* avoid dangling else.  */
               if (actual == nilN)
@@ -15273,14 +15771,7 @@ static unsigned int checkSystemCast (mcPretty_pretty p, decl_node__opaque actual
                 }
               else
                 {
-                  outText (p, (const char *) "reinterpret_cast<", 17);
-                  doTypeNameC (p, ft);
-                  if (decl_isVarParam (static_cast<decl_node> (formal)))
-                    {
-                      outText (p, (const char *) "*", 1);
-                    }
-                  mcPretty_noSpace (p);
-                  outText (p, (const char *) "> (", 3);
+                  return castPointer (p, actual, formal, at, ft);
                 }
             }
           else
@@ -17529,11 +18020,11 @@ static decl_dependentState allDependants (decl_node__opaque n)
 
 static decl_dependentState walkDependants (alists_alist l, decl_node__opaque n)
 {
-  if ((n == NULL) || (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n))))
+  if ((n == NULL) || (alists_isItemInList (globalGroup->doneQ, reinterpret_cast <void *> (n))))
     {
       return decl_completed;
     }
-  else if (alists_isItemInList (l, reinterpret_cast<void *> (n)))
+  else if (alists_isItemInList (l, reinterpret_cast <void *> (n)))
     {
       /* avoid dangling else.  */
       return decl_recursive;
@@ -17541,7 +18032,7 @@ static decl_dependentState walkDependants (alists_alist l, decl_node__opaque n)
   else
     {
       /* avoid dangling else.  */
-      alists_includeItemIntoList (l, reinterpret_cast<void *> (n));
+      alists_includeItemIntoList (l, reinterpret_cast <void *> (n));
       return doDependants (l, n);
     }
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -17558,11 +18049,11 @@ static decl_dependentState walkType (alists_alist l, decl_node__opaque n)
   decl_node__opaque t;
 
   t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
-  if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast <void *> (t)))
     {
       return decl_completed;
     }
-  else if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
+  else if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast <void *> (t)))
     {
       /* avoid dangling else.  */
       return decl_blocked;
@@ -17667,18 +18158,18 @@ static void dbq (decl_node__opaque n)
   if (mcOptions_getDebugTopological ())
     {
       /* avoid gcc warning by using compound statement even if not strictly necessary.  */
-      if (alists_isItemInList (globalGroup->todoQ, reinterpret_cast<void *> (n)))
+      if (alists_isItemInList (globalGroup->todoQ, reinterpret_cast <void *> (n)))
         {
           db ((const char *) "{T", 2, n);
           outText (doP, (const char *) "}", 1);
         }
-      else if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (n)))
+      else if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast <void *> (n)))
         {
           /* avoid dangling else.  */
           db ((const char *) "{P", 2, n);
           outText (doP, (const char *) "}", 1);
         }
-      else if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n)))
+      else if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast <void *> (n)))
         {
           /* avoid dangling else.  */
           db ((const char *) "{D", 2, n);
@@ -17786,7 +18277,7 @@ static decl_dependentState walkVarient (alists_alist l, decl_node__opaque n)
 
 static void queueBlocked (decl_node__opaque n)
 {
-  if (! ((alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n))) || (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (n)))))
+  if (! ((alists_isItemInList (globalGroup->doneQ, reinterpret_cast <void *> (n))) || (alists_isItemInList (globalGroup->partialQ, reinterpret_cast <void *> (n)))))
     {
       addTodo (n);
     }
@@ -17802,7 +18293,7 @@ static decl_dependentState walkVar (alists_alist l, decl_node__opaque n)
   decl_node__opaque t;
 
   t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
-  if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast <void *> (t)))
     {
       return decl_completed;
     }
@@ -17909,7 +18400,7 @@ static decl_dependentState walkPointer (alists_alist l, decl_node__opaque n)
 
   /* if the type of, n, is done or partial then we can output pointer.  */
   t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
-  if ((alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t))) || (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t))))
+  if ((alists_isItemInList (globalGroup->partialQ, reinterpret_cast <void *> (t))) || (alists_isItemInList (globalGroup->doneQ, reinterpret_cast <void *> (t))))
     {
       /* pointer to partial can always generate a complete type.  */
       return decl_completed;
@@ -17929,7 +18420,7 @@ static decl_dependentState walkArray (alists_alist l, decl_node__opaque n)
   decl_dependentState s;
 
   /* an array can only be declared if its data type has already been emitted.  */
-  if (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (n->arrayF.type))))
+  if (! (alists_isItemInList (globalGroup->doneQ, reinterpret_cast <void *> (n->arrayF.type))))
     {
       s = walkDependants (l, n->arrayF.type);
       queueBlocked (n->arrayF.type);
@@ -17982,7 +18473,7 @@ static decl_dependentState walkVarParam (alists_alist l, decl_node__opaque n)
   decl_node__opaque t;
 
   t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
-  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast <void *> (t)))
     {
       /* parameter can be issued from a partial.  */
       return decl_completed;
@@ -18002,7 +18493,7 @@ static decl_dependentState walkParam (alists_alist l, decl_node__opaque n)
   decl_node__opaque t;
 
   t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
-  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast <void *> (t)))
     {
       /* parameter can be issued from a partial.  */
       return decl_completed;
@@ -18022,7 +18513,7 @@ static decl_dependentState walkOptarg (alists_alist l, decl_node__opaque n)
   decl_node__opaque t;
 
   t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
-  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast <void *> (t)))
     {
       /* parameter can be issued from a partial.  */
       return decl_completed;
@@ -18044,12 +18535,12 @@ static decl_dependentState walkRecordField (alists_alist l, decl_node__opaque n)
 
   mcDebug_assert (decl_isRecordField (static_cast<decl_node> (n)));
   t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
-  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast <void *> (t)))
     {
       dbs (decl_partial, n);
       return decl_partial;
     }
-  else if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast<void *> (t)))
+  else if (alists_isItemInList (globalGroup->doneQ, reinterpret_cast <void *> (t)))
     {
       /* avoid dangling else.  */
       dbs (decl_completed, n);
@@ -18137,7 +18628,7 @@ static decl_dependentState walkProcType (alists_alist l, decl_node__opaque n)
   decl_node__opaque t;
 
   t = static_cast<decl_node__opaque> (decl_getType (static_cast<decl_node> (n)));
-  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast<void *> (t)))
+  if (alists_isItemInList (globalGroup->partialQ, reinterpret_cast <void *> (t)))
     {}  /* empty.  */
   else
     {
@@ -19298,7 +19789,7 @@ static void visitIntrinsic (alists_alist v, decl_node__opaque n, decl_nodeProced
 static void visitDependants (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
   mcDebug_assert (n != NULL);
-  mcDebug_assert (alists_isItemInList (v, reinterpret_cast<void *> (n)));
+  mcDebug_assert (alists_isItemInList (v, reinterpret_cast <void *> (n)));
   switch (n->kind)
     {
       case decl_explist:
@@ -19651,9 +20142,9 @@ static void visitDependants (alists_alist v, decl_node__opaque n, decl_nodeProce
 
 static void visitNode (alists_alist v, decl_node__opaque n, decl_nodeProcedure p)
 {
-  if ((n != NULL) && (! (alists_isItemInList (v, reinterpret_cast<void *> (n)))))
+  if ((n != NULL) && (! (alists_isItemInList (v, reinterpret_cast <void *> (n)))))
     {
-      alists_includeItemIntoList (v, reinterpret_cast<void *> (n));
+      alists_includeItemIntoList (v, reinterpret_cast <void *> (n));
       (*p.proc) (n);
       visitDependants (v, n, p);
     }
@@ -20222,15 +20713,15 @@ static void tryOutputTodo (decl_nodeProcedure c, decl_nodeProcedure t, decl_node
       d = static_cast<decl_node__opaque> (alists_getItemFromList (globalGroup->todoQ, i));
       if (tryComplete (d, c, t, v))
         {
-          alists_removeItemFromList (globalGroup->todoQ, reinterpret_cast<void *> (d));
+          alists_removeItemFromList (globalGroup->todoQ, reinterpret_cast <void *> (d));
           addDone (d);
           i = 1;
         }
       else if (tryPartial (d, pt))
         {
           /* avoid dangling else.  */
-          alists_removeItemFromList (globalGroup->todoQ, reinterpret_cast<void *> (d));
-          alists_includeItemIntoList (globalGroup->partialQ, reinterpret_cast<void *> (d));
+          alists_removeItemFromList (globalGroup->todoQ, reinterpret_cast <void *> (d));
+          alists_includeItemIntoList (globalGroup->partialQ, reinterpret_cast <void *> (d));
           i = 1;
         }
       else
@@ -20260,7 +20751,7 @@ static void tryOutputPartial (decl_nodeProcedure t)
       d = static_cast<decl_node__opaque> (alists_getItemFromList (globalGroup->partialQ, i));
       if (tryCompleteFromPartial (d, t))
         {
-          alists_removeItemFromList (globalGroup->partialQ, reinterpret_cast<void *> (d));
+          alists_removeItemFromList (globalGroup->partialQ, reinterpret_cast <void *> (d));
           addDone (d);
           i = 1;
           n -= 1;
@@ -21624,7 +22115,7 @@ static void addDone (decl_node__opaque n)
 {
   DynamicStrings_String s;
 
-  alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast<void *> (n));
+  alists_includeItemIntoList (globalGroup->doneQ, reinterpret_cast <void *> (n));
   if ((decl_isVar (static_cast<decl_node> (n))) || (decl_isParameter (static_cast<decl_node> (n))))
     {
       initNodeOpaqueState (n);
@@ -21674,7 +22165,7 @@ static decl_node__opaque dbgAdd (alists_alist l, decl_node__opaque n)
 {
   if (n != NULL)
     {
-      alists_includeItemIntoList (l, reinterpret_cast<void *> (n));
+      alists_includeItemIntoList (l, reinterpret_cast <void *> (n));
     }
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -21963,7 +22454,7 @@ static void dbg (const char *listName_, unsigned int _listName_high, const char
   outputFile = FIO_StdOut;
   doP = mcPretty_initPretty ((mcPretty_writeProc) {(mcPretty_writeProc_t) write_}, (mcPretty_writeLnProc) {(mcPretty_writeLnProc_t) writeln});
   l = alists_initList ();
-  alists_includeItemIntoList (l, reinterpret_cast<void *> (n));
+  alists_includeItemIntoList (l, reinterpret_cast <void *> (n));
   i = 1;
   do {
     n = static_cast<decl_node__opaque> (alists_getItemFromList (l, i));
@@ -22558,46 +23049,46 @@ static void makeBaseSymbols (void)
   imN = makeBase (decl_im);
   reN = makeBase (decl_re);
   cmplxN = makeBase (decl_cmplx);
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "BOOLEAN", 7), reinterpret_cast<void *> (booleanN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "PROC", 4), reinterpret_cast<void *> (procN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "CHAR", 4), reinterpret_cast<void *> (charN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "CARDINAL", 8), reinterpret_cast<void *> (cardinalN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "SHORTCARD", 9), reinterpret_cast<void *> (shortcardN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "LONGCARD", 8), reinterpret_cast<void *> (longcardN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "INTEGER", 7), reinterpret_cast<void *> (integerN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "LONGINT", 7), reinterpret_cast<void *> (longintN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "SHORTINT", 8), reinterpret_cast<void *> (shortintN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "BITSET", 6), reinterpret_cast<void *> (bitsetN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "REAL", 4), reinterpret_cast<void *> (realN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "SHORTREAL", 9), reinterpret_cast<void *> (shortrealN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "LONGREAL", 8), reinterpret_cast<void *> (longrealN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "COMPLEX", 7), reinterpret_cast<void *> (complexN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "LONGCOMPLEX", 11), reinterpret_cast<void *> (longcomplexN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "SHORTCOMPLEX", 12), reinterpret_cast<void *> (shortcomplexN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "NIL", 3), reinterpret_cast<void *> (nilN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "TRUE", 4), reinterpret_cast<void *> (trueN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "FALSE", 5), reinterpret_cast<void *> (falseN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "SIZE", 4), reinterpret_cast<void *> (sizeN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "MIN", 3), reinterpret_cast<void *> (minN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "MAX", 3), reinterpret_cast<void *> (maxN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "FLOAT", 5), reinterpret_cast<void *> (floatN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "TRUNC", 5), reinterpret_cast<void *> (truncN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "ORD", 3), reinterpret_cast<void *> (ordN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "VAL", 3), reinterpret_cast<void *> (valN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "CHR", 3), reinterpret_cast<void *> (chrN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "CAP", 3), reinterpret_cast<void *> (capN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "ABS", 3), reinterpret_cast<void *> (absN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "NEW", 3), reinterpret_cast<void *> (newN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "DISPOSE", 7), reinterpret_cast<void *> (disposeN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "LENGTH", 6), reinterpret_cast<void *> (lengthN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "INC", 3), reinterpret_cast<void *> (incN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "DEC", 3), reinterpret_cast<void *> (decN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "INCL", 4), reinterpret_cast<void *> (inclN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "EXCL", 4), reinterpret_cast<void *> (exclN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "HIGH", 4), reinterpret_cast<void *> (highN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "CMPLX", 5), reinterpret_cast<void *> (cmplxN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "RE", 2), reinterpret_cast<void *> (reN));
-  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "IM", 2), reinterpret_cast<void *> (imN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "BOOLEAN", 7), reinterpret_cast <void *> (booleanN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "PROC", 4), reinterpret_cast <void *> (procN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "CHAR", 4), reinterpret_cast <void *> (charN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "CARDINAL", 8), reinterpret_cast <void *> (cardinalN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "SHORTCARD", 9), reinterpret_cast <void *> (shortcardN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "LONGCARD", 8), reinterpret_cast <void *> (longcardN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "INTEGER", 7), reinterpret_cast <void *> (integerN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "LONGINT", 7), reinterpret_cast <void *> (longintN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "SHORTINT", 8), reinterpret_cast <void *> (shortintN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "BITSET", 6), reinterpret_cast <void *> (bitsetN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "REAL", 4), reinterpret_cast <void *> (realN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "SHORTREAL", 9), reinterpret_cast <void *> (shortrealN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "LONGREAL", 8), reinterpret_cast <void *> (longrealN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "COMPLEX", 7), reinterpret_cast <void *> (complexN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "LONGCOMPLEX", 11), reinterpret_cast <void *> (longcomplexN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "SHORTCOMPLEX", 12), reinterpret_cast <void *> (shortcomplexN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "NIL", 3), reinterpret_cast <void *> (nilN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "TRUE", 4), reinterpret_cast <void *> (trueN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "FALSE", 5), reinterpret_cast <void *> (falseN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "SIZE", 4), reinterpret_cast <void *> (sizeN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "MIN", 3), reinterpret_cast <void *> (minN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "MAX", 3), reinterpret_cast <void *> (maxN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "FLOAT", 5), reinterpret_cast <void *> (floatN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "TRUNC", 5), reinterpret_cast <void *> (truncN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "ORD", 3), reinterpret_cast <void *> (ordN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "VAL", 3), reinterpret_cast <void *> (valN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "CHR", 3), reinterpret_cast <void *> (chrN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "CAP", 3), reinterpret_cast <void *> (capN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "ABS", 3), reinterpret_cast <void *> (absN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "NEW", 3), reinterpret_cast <void *> (newN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "DISPOSE", 7), reinterpret_cast <void *> (disposeN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "LENGTH", 6), reinterpret_cast <void *> (lengthN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "INC", 3), reinterpret_cast <void *> (incN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "DEC", 3), reinterpret_cast <void *> (decN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "INCL", 4), reinterpret_cast <void *> (inclN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "EXCL", 4), reinterpret_cast <void *> (exclN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "HIGH", 4), reinterpret_cast <void *> (highN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "CMPLX", 5), reinterpret_cast <void *> (cmplxN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "RE", 2), reinterpret_cast <void *> (reN));
+  symbolKey_putSymKey (baseSymbols, nameKey_makeKey ((const char *) "IM", 2), reinterpret_cast <void *> (imN));
   addDone (booleanN);
   addDone (charN);
   addDone (cardinalN);
@@ -22640,6 +23131,22 @@ static void makeBuiltins (void)
 }
 
 
+/*
+   makeCDataTypes - assign the charStarN and constCharStarN to NIL.
+*/
+
+static void makeCDataTypes (void)
+{
+  decl_node__opaque CdatatypesN;
+
+  CdatatypesN = static_cast<decl_node__opaque> (decl_lookupDef (nameKey_makeKey ((const char *) "CDataTypes", 10)));
+  decl_enterScope (static_cast<decl_node> (CdatatypesN));
+  charStarN = static_cast<decl_node__opaque> (decl_makePointer (static_cast<decl_node> (charN)));
+  constCharStarN = static_cast<decl_node__opaque> (decl_makePointer (static_cast<decl_node> (charN)));
+  decl_leaveScope ();
+}
+
+
 /*
    init -
 */
@@ -22663,6 +23170,7 @@ static void init (void)
   outputState = decl_punct;
   tempCount = 0;
   mustVisitScope = false;
+  makeCDataTypes ();
 }
 
 
@@ -23006,8 +23514,8 @@ extern "C" decl_node decl_lookupDef (nameKey_Name n)
   if (d == NULL)
     {
       d = makeDef (n);
-      symbolKey_putSymKey (defUniverse, n, reinterpret_cast<void *> (d));
-      Indexing_IncludeIndiceIntoIndex (defUniverseI, reinterpret_cast<void *> (d));
+      symbolKey_putSymKey (defUniverse, n, reinterpret_cast <void *> (d));
+      Indexing_IncludeIndiceIntoIndex (defUniverseI, reinterpret_cast <void *> (d));
     }
   return static_cast<decl_node> (d);
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -23027,8 +23535,8 @@ extern "C" decl_node decl_lookupImp (nameKey_Name n)
   if (m == NULL)
     {
       m = makeImp (n);
-      symbolKey_putSymKey (modUniverse, n, reinterpret_cast<void *> (m));
-      Indexing_IncludeIndiceIntoIndex (modUniverseI, reinterpret_cast<void *> (m));
+      symbolKey_putSymKey (modUniverse, n, reinterpret_cast <void *> (m));
+      Indexing_IncludeIndiceIntoIndex (modUniverseI, reinterpret_cast <void *> (m));
     }
   mcDebug_assert (! (decl_isModule (static_cast<decl_node> (m))));
   return static_cast<decl_node> (m);
@@ -23049,8 +23557,8 @@ extern "C" decl_node decl_lookupModule (nameKey_Name n)
   if (m == NULL)
     {
       m = makeModule (n);
-      symbolKey_putSymKey (modUniverse, n, reinterpret_cast<void *> (m));
-      Indexing_IncludeIndiceIntoIndex (modUniverseI, reinterpret_cast<void *> (m));
+      symbolKey_putSymKey (modUniverse, n, reinterpret_cast <void *> (m));
+      Indexing_IncludeIndiceIntoIndex (modUniverseI, reinterpret_cast <void *> (m));
     }
   mcDebug_assert (! (decl_isImp (static_cast<decl_node> (m))));
   return static_cast<decl_node> (m);
@@ -23070,6 +23578,35 @@ extern "C" void decl_putDefForC (decl_node n)
 }
 
 
+/*
+   putDefUnqualified - the definition module uses unqualified.
+*/
+
+extern "C" void decl_putDefUnqualified (decl_node n)
+{
+  mcDebug_assert (decl_isDef (n));
+  /* Currently (and this is a temporary development restriction to
+      reduce any search space for bugs) the only module which can be
+      export unqualified is gcctypes.  */
+  if (static_cast<decl_node__opaque> (n)->defF.name == (nameKey_makeKey ((const char *) "gcctypes", 8)))
+    {
+      static_cast<decl_node__opaque> (n)->defF.unqualified = true;
+    }
+}
+
+
+/*
+   isDefUnqualified - returns TRUE if the definition module uses unqualified.
+*/
+
+extern "C" bool decl_isDefUnqualified (decl_node n)
+{
+  return (decl_isDef (n)) && static_cast<decl_node__opaque> (n)->defF.unqualified;
+  /* static analysis guarentees a RETURN statement will be used before here.  */
+  __builtin_unreachable ();
+}
+
+
 /*
    lookupInScope - looks up a symbol named, n, from, scope.
 */
@@ -23491,7 +24028,7 @@ extern "C" decl_node decl_getType (decl_node n)
 
 extern "C" decl_node decl_skipType (decl_node n)
 {
-  while ((n != NULL) && (decl_isType (n)))
+  while (((n != NULL) && (decl_isType (n))) && (! (isCDataType (static_cast<decl_node__opaque> (n)))))
     {
       if ((decl_getType (n)) == NULL)
         {
@@ -23620,7 +24157,7 @@ extern "C" bool decl_isExported (decl_node n)
       switch (s->kind)
         {
           case decl_def:
-            return Indexing_IsIndiceInIndex (s->defF.exported, reinterpret_cast<void *> (n));
+            return Indexing_IsIndiceInIndex (s->defF.exported, reinterpret_cast <void *> (n));
             break;
 
 
@@ -24552,11 +25089,11 @@ extern "C" decl_node decl_makeVarient (decl_node r)
     {
       case decl_record:
         /* now add, n, to the record/varient, r, field list  */
-        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (r)->recordF.listOfSons, reinterpret_cast<void *> (n));
+        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (r)->recordF.listOfSons, reinterpret_cast <void *> (n));
         break;
 
       case decl_varientfield:
-        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (r)->varientfieldF.listOfSons, reinterpret_cast<void *> (n));
+        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (r)->varientfieldF.listOfSons, reinterpret_cast <void *> (n));
         break;
 
 
@@ -25051,21 +25588,23 @@ extern "C" decl_node decl_import (decl_node m, decl_node n)
 
   mcDebug_assert (((decl_isDef (m)) || (decl_isModule (m))) || (decl_isImp (m)));
   name = decl_getSymName (n);
+  checkGccType (static_cast<decl_node__opaque> (n));
+  checkCDataTypes (static_cast<decl_node__opaque> (n));
   r = static_cast<decl_node__opaque> (decl_lookupInScope (m, name));
   if (r == NULL)
     {
       switch (static_cast<decl_node__opaque> (m)->kind)
         {
           case decl_def:
-            symbolKey_putSymKey (static_cast<decl_node__opaque> (m)->defF.decls.symbols, name, reinterpret_cast<void *> (n));
+            symbolKey_putSymKey (static_cast<decl_node__opaque> (m)->defF.decls.symbols, name, reinterpret_cast <void *> (n));
             break;
 
           case decl_imp:
-            symbolKey_putSymKey (static_cast<decl_node__opaque> (m)->impF.decls.symbols, name, reinterpret_cast<void *> (n));
+            symbolKey_putSymKey (static_cast<decl_node__opaque> (m)->impF.decls.symbols, name, reinterpret_cast <void *> (n));
             break;
 
           case decl_module:
-            symbolKey_putSymKey (static_cast<decl_node__opaque> (m)->moduleF.decls.symbols, name, reinterpret_cast<void *> (n));
+            symbolKey_putSymKey (static_cast<decl_node__opaque> (m)->moduleF.decls.symbols, name, reinterpret_cast <void *> (n));
             break;
 
 
@@ -25152,17 +25691,17 @@ extern "C" void decl_addImportedModule (decl_node m, decl_node i, bool scoped)
   mcDebug_assert ((decl_isDef (i)) || (decl_isModule (i)));
   if (decl_isDef (m))
     {
-      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (m)->defF.importedModules, reinterpret_cast<void *> (i));
+      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (m)->defF.importedModules, reinterpret_cast <void *> (i));
     }
   else if (decl_isImp (m))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (m)->impF.importedModules, reinterpret_cast<void *> (i));
+      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (m)->impF.importedModules, reinterpret_cast <void *> (i));
     }
   else if (decl_isModule (m))
     {
       /* avoid dangling else.  */
-      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (m)->moduleF.importedModules, reinterpret_cast<void *> (i));
+      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (m)->moduleF.importedModules, reinterpret_cast <void *> (i));
     }
   else
     {
@@ -25287,14 +25826,14 @@ extern "C" void decl_foreachModModuleDo (symbolKey_performOperation p)
 
 extern "C" void decl_enterScope (decl_node n)
 {
-  if (Indexing_IsIndiceInIndex (scopeStack, reinterpret_cast<void *> (n)))
+  if (Indexing_IsIndiceInIndex (scopeStack, reinterpret_cast <void *> (n)))
     {
       M2RTS_HALT (-1);
       __builtin_unreachable ();
     }
   else
     {
-      Indexing_IncludeIndiceIntoIndex (scopeStack, reinterpret_cast<void *> (n));
+      Indexing_IncludeIndiceIntoIndex (scopeStack, reinterpret_cast <void *> (n));
     }
   if (debugScopes)
     {
@@ -25315,7 +25854,7 @@ extern "C" void decl_leaveScope (void)
 
   i = Indexing_HighIndice (scopeStack);
   n = static_cast<decl_node__opaque> (Indexing_GetIndice (scopeStack, i));
-  Indexing_RemoveIndiceFromIndex (scopeStack, reinterpret_cast<void *> (n));
+  Indexing_RemoveIndiceFromIndex (scopeStack, reinterpret_cast <void *> (n));
   if (debugScopes)
     {
       libc_printf ((const char *) "leave scope\\n", 13);
@@ -25582,7 +26121,7 @@ extern "C" void decl_addVarParameters (decl_node n, decl_node i, decl_node type,
   else
     {
       p = static_cast<decl_node__opaque> (decl_makeVarParameter (i, type, n, isused));
-      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->procedureF.parameters, reinterpret_cast<void *> (p));
+      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->procedureF.parameters, reinterpret_cast <void *> (p));
     }
 }
 
@@ -25606,7 +26145,7 @@ extern "C" void decl_addNonVarParameters (decl_node n, decl_node i, decl_node ty
   else
     {
       p = static_cast<decl_node__opaque> (decl_makeNonVarParameter (i, type, n, isused));
-      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->procedureF.parameters, reinterpret_cast<void *> (p));
+      Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->procedureF.parameters, reinterpret_cast <void *> (p));
     }
 }
 
@@ -25649,7 +26188,7 @@ extern "C" void decl_addParameter (decl_node proc, decl_node param)
   switch (static_cast<decl_node__opaque> (proc)->kind)
     {
       case decl_procedure:
-        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (proc)->procedureF.parameters, reinterpret_cast<void *> (param));
+        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (proc)->procedureF.parameters, reinterpret_cast <void *> (param));
         if (decl_isVarargs (param))
           {
             static_cast<decl_node__opaque> (proc)->procedureF.vararg = true;
@@ -25661,7 +26200,7 @@ extern "C" void decl_addParameter (decl_node proc, decl_node param)
         break;
 
       case decl_proctype:
-        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (proc)->proctypeF.parameters, reinterpret_cast<void *> (param));
+        Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (proc)->proctypeF.parameters, reinterpret_cast <void *> (param));
         if (decl_isVarargs (param))
           {
             static_cast<decl_node__opaque> (proc)->proctypeF.vararg = true;
@@ -26086,7 +26625,7 @@ extern "C" decl_node decl_putSetValue (decl_node n, decl_node t)
 extern "C" decl_node decl_includeSetValue (decl_node n, decl_node l, decl_node h)
 {
   mcDebug_assert (decl_isSetValue (n));
-  Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->setvalueF.values, reinterpret_cast<void *> (l));
+  Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->setvalueF.values, reinterpret_cast <void *> (l));
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -26165,7 +26704,7 @@ extern "C" void decl_putExpList (decl_node n, decl_node e)
 {
   mcDebug_assert (n != NULL);
   mcDebug_assert (decl_isExpList (n));
-  Indexing_PutIndice (static_cast<decl_node__opaque> (n)->explistF.exp, (Indexing_HighIndice (static_cast<decl_node__opaque> (n)->explistF.exp))+1, reinterpret_cast<void *> (e));
+  Indexing_PutIndice (static_cast<decl_node__opaque> (n)->explistF.exp, (Indexing_HighIndice (static_cast<decl_node__opaque> (n)->explistF.exp))+1, reinterpret_cast <void *> (e));
 }
 
 
@@ -26349,7 +26888,7 @@ extern "C" void decl_addStatement (decl_node s, decl_node n)
   if (n != NULL)
     {
       mcDebug_assert (decl_isStatementSequence (s));
-      Indexing_PutIndice (static_cast<decl_node__opaque> (s)->stmtF.statements, (Indexing_HighIndice (static_cast<decl_node__opaque> (s)->stmtF.statements))+1, reinterpret_cast<void *> (n));
+      Indexing_PutIndice (static_cast<decl_node__opaque> (s)->stmtF.statements, (Indexing_HighIndice (static_cast<decl_node__opaque> (s)->stmtF.statements))+1, reinterpret_cast <void *> (n));
       if ((isIntrinsic (static_cast<decl_node__opaque> (n))) && static_cast<decl_node__opaque> (n)->intrinsicF.postUnreachable)
         {
           static_cast<decl_node__opaque> (n)->intrinsicF.postUnreachable = false;
@@ -27050,7 +27589,7 @@ extern "C" decl_node decl_putCaseStatement (decl_node n, decl_node l, decl_node
 {
   mcDebug_assert (decl_isCase (n));
   mcDebug_assert (decl_isCaseList (l));
-  Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->caseF.caseLabelList, reinterpret_cast<void *> (decl_makeCaseLabelList (l, s)));
+  Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->caseF.caseLabelList, reinterpret_cast <void *> (decl_makeCaseLabelList (l, s)));
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -27123,7 +27662,7 @@ extern "C" bool decl_isCaseList (decl_node n)
 extern "C" decl_node decl_putCaseRange (decl_node n, decl_node lo, decl_node hi)
 {
   mcDebug_assert (decl_isCaseList (n));
-  Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->caselistF.rangePairs, reinterpret_cast<void *> (decl_makeRange (lo, hi)));
+  Indexing_IncludeIndiceIntoIndex (static_cast<decl_node__opaque> (n)->caselistF.rangePairs, reinterpret_cast <void *> (decl_makeRange (lo, hi)));
   return n;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
diff --git a/gcc/m2/mc-boot/Gdecl.h b/gcc/m2/mc-boot/Gdecl.h
index a237a25a3f6..99d78087ae2 100644
--- a/gcc/m2/mc-boot/Gdecl.h
+++ b/gcc/m2/mc-boot/Gdecl.h
@@ -190,6 +190,18 @@ EXTERN decl_node decl_lookupModule (nameKey_Name n);
 
 EXTERN void decl_putDefForC (decl_node n);
 
+/*
+   putDefUnqualified - the definition module uses export unqualified.
+*/
+
+EXTERN void decl_putDefUnqualified (decl_node n);
+
+/*
+   isDefUnqualified - returns TRUE if the definition module uses unqualified.
+*/
+
+EXTERN bool decl_isDefUnqualified (decl_node n);
+
 /*
    lookupInScope - looks up a symbol named, n, from, scope.
 */
diff --git a/gcc/m2/mc-boot/Gdtoa.h b/gcc/m2/mc-boot/Gdtoa.h
index 946e339d69a..c1b3619ce47 100644
--- a/gcc/m2/mc-boot/Gdtoa.h
+++ b/gcc/m2/mc-boot/Gdtoa.h
@@ -68,7 +68,7 @@ EXTERN double dtoa_strtod (void * s, bool *error);
           sign       does the string have a sign?
 */
 
-EXTERN void * dtoa_dtoa (double d, dtoa_Mode mode, int ndigits, int *decpt, bool *sign);
+EXTERN void * dtoa_dtoa (double d, int mode, int ndigits, int *decpt, bool *sign);
 #   ifdef __cplusplus
 }
 #   endif
diff --git a/gcc/m2/mc-boot/Gkeyc.cc b/gcc/m2/mc-boot/Gkeyc.cc
index 15f03509989..3a5dd5ccc1d 100644
--- a/gcc/m2/mc-boot/Gkeyc.cc
+++ b/gcc/m2/mc-boot/Gkeyc.cc
@@ -73,6 +73,8 @@ static symbolKey_symbolTree keywords;
 static symbolKey_symbolTree macros;
 static bool initializedCP;
 static bool initializedGCC;
+static bool seenGccTree;
+static bool seenGccLocation;
 static bool seenIntMin;
 static bool seenUIntMin;
 static bool seenLongMin;
@@ -108,6 +110,18 @@ static bool seenM2RTS;
 static bool seenStrlen;
 static bool seenCtype;
 
+/*
+   useGccTree - indicate we have imported tree from gcctypes.
+*/
+
+extern "C" void keyc_useGccTree (void);
+
+/*
+   useGccLocation - indicate we have imported tree from gcctypes.
+*/
+
+extern "C" void keyc_useGccLocation (void);
+
 /*
    useUnistd - need to use unistd.h call using open/close/read/write require this header.
 */
@@ -369,6 +383,13 @@ extern "C" void keyc_cp (void);
 
 static void checkGccConfigSystem (mcPretty_pretty p);
 
+/*
+   checkGccTypes - if we have imported tree or location_t from gcctypes
+                   then we include the gcc headers.
+*/
+
+static void checkGccTypes (mcPretty_pretty p);
+
 /*
    checkCtype -
 */
@@ -556,11 +577,26 @@ static void checkGccConfigSystem (mcPretty_pretty p)
           initializedGCC = true;
           mcPretty_print (p, (const char *) "#include \"config.h\"\\n", 21);
           mcPretty_print (p, (const char *) "#include \"system.h\"\\n", 21);
+          checkGccTypes (p);
         }
     }
 }
 
 
+/*
+   checkGccTypes - if we have imported tree or location_t from gcctypes
+                   then we include the gcc headers.
+*/
+
+static void checkGccTypes (mcPretty_pretty p)
+{
+  if (seenGccTree || seenGccLocation)
+    {
+      mcPretty_print (p, (const char *) "#include \"gcc-consolidation.h\"\\n\\n", 34);
+    }
+}
+
+
 /*
    checkCtype -
 */
@@ -976,7 +1012,7 @@ static void add (symbolKey_symbolTree s, const char *a_, unsigned int _a_high)
   /* make a local copy of each unbounded array.  */
   memcpy (a, a_, _a_high+1);
 
-  symbolKey_putSymKey (s, nameKey_makeKey ((const char *) a, _a_high), reinterpret_cast<void *> (DynamicStrings_InitString ((const char *) a, _a_high)));
+  symbolKey_putSymKey (s, nameKey_makeKey ((const char *) a, _a_high), reinterpret_cast <void *> (DynamicStrings_InitString ((const char *) a, _a_high)));
 }
 
 
@@ -1104,6 +1140,8 @@ static void init (void)
   seenSize_t = false;
   seenSSize_t = false;
   seenSysTypes = false;
+  seenGccTree = false;
+  seenGccLocation = false;
   initializedCP = false;
   initializedGCC = false;
   stack = NULL;
@@ -1113,6 +1151,26 @@ static void init (void)
 }
 
 
+/*
+   useGccTree - indicate we have imported tree from gcctypes.
+*/
+
+extern "C" void keyc_useGccTree (void)
+{
+  seenGccTree = true;
+}
+
+
+/*
+   useGccLocation - indicate we have imported tree from gcctypes.
+*/
+
+extern "C" void keyc_useGccLocation (void)
+{
+  seenGccLocation = true;
+}
+
+
 /*
    useUnistd - need to use unistd.h call using open/close/read/write require this header.
 */
@@ -1547,7 +1605,7 @@ extern "C" DynamicStrings_String keyc_cname (nameKey_Name n, bool scopes)
             {
               /* no longer a clash with, m, so add it to the current scope.  */
               n = nameKey_makekey (DynamicStrings_string (m));
-              symbolKey_putSymKey (stack->symbols, n, reinterpret_cast<void *> (m));
+              symbolKey_putSymKey (stack->symbols, n, reinterpret_cast <void *> (m));
             }
         }
       else
@@ -1561,7 +1619,7 @@ extern "C" DynamicStrings_String keyc_cname (nameKey_Name n, bool scopes)
     {
       /* avoid dangling else.  */
       /* no clash, add it to the current scope.  */
-      symbolKey_putSymKey (stack->symbols, n, reinterpret_cast<void *> (DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n))));
+      symbolKey_putSymKey (stack->symbols, n, reinterpret_cast <void *> (DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n))));
     }
   return m;
   /* static analysis guarentees a RETURN statement will be used before here.  */
@@ -1593,7 +1651,7 @@ extern "C" nameKey_Name keyc_cnamen (nameKey_Name n, bool scopes)
           if (scopes)
             {
               /* no longer a clash with, m, so add it to the current scope.  */
-              symbolKey_putSymKey (stack->symbols, n, reinterpret_cast<void *> (m));
+              symbolKey_putSymKey (stack->symbols, n, reinterpret_cast <void *> (m));
             }
         }
       else
@@ -1607,7 +1665,7 @@ extern "C" nameKey_Name keyc_cnamen (nameKey_Name n, bool scopes)
     {
       /* avoid dangling else.  */
       /* no clash, add it to the current scope.  */
-      symbolKey_putSymKey (stack->symbols, n, reinterpret_cast<void *> (DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n))));
+      symbolKey_putSymKey (stack->symbols, n, reinterpret_cast <void *> (DynamicStrings_InitStringCharStar (nameKey_keyToCharStar (n))));
     }
   m = DynamicStrings_KillString (m);
   return n;
diff --git a/gcc/m2/mc-boot/Gkeyc.h b/gcc/m2/mc-boot/Gkeyc.h
index 2157bab57ac..afa945d03c0 100644
--- a/gcc/m2/mc-boot/Gkeyc.h
+++ b/gcc/m2/mc-boot/Gkeyc.h
@@ -48,6 +48,18 @@ extern "C" {
 #   endif
 
 
+/*
+   useGccTree - indicate we have imported tree from gcctypes.
+*/
+
+EXTERN void keyc_useGccTree (void);
+
+/*
+   useGccLocation - indicate we have imported tree from gcctypes.
+*/
+
+EXTERN void keyc_useGccLocation (void);
+
 /*
    useUnistd - need to use unistd.h call using open/close/read/write require this header.
 */
diff --git a/gcc/m2/mc-boot/Glibc.h b/gcc/m2/mc-boot/Glibc.h
index 957232345f5..def419fb3c9 100644
--- a/gcc/m2/mc-boot/Glibc.h
+++ b/gcc/m2/mc-boot/Glibc.h
@@ -85,6 +85,17 @@ typedef libc_exitP_t libc_exitP_C;
 
 struct libc_exitP_p { libc_exitP_t proc; };
 
+EXTERN double libc_atof (void * nptr);
+EXTERN int libc_atoi (void * nptr);
+EXTERN ssize_t libc_atol (void * nptr);
+EXTERN long int libc_atoll (void * nptr);
+EXTERN double libc_strtod (void * nptr, void * endptr);
+EXTERN float libc_strtof (void * nptr, void * endptr);
+EXTERN long double libc_strtold (void * nptr, void * endptr);
+EXTERN ssize_t libc_strtol (void * nptr, void * endptr, int base);
+EXTERN long int libc_strtoll (void * nptr, void * endptr, int base);
+EXTERN size_t libc_strtoul (void * nptr, void * endptr, int base);
+EXTERN long unsigned int libc_strtoull (void * nptr, void * endptr, int base);
 EXTERN ssize_t libc_write (int d, void * buf, size_t nbytes);
 EXTERN ssize_t libc_read (int d, void * buf, size_t nbytes);
 EXTERN int libc_system (void * a);
diff --git a/gcc/m2/mc-boot/GmcComp.cc b/gcc/m2/mc-boot/GmcComp.cc
index f7baf21af89..c941c618030 100644
--- a/gcc/m2/mc-boot/GmcComp.cc
+++ b/gcc/m2/mc-boot/GmcComp.cc
@@ -593,9 +593,9 @@ static void doPass (bool parseDefs, bool parseMain, unsigned int no, symbolKey_p
       if (parseDefs && (decl_isImp (decl_getMainModule ())))
         {
           /* we need to parse the definition module of a corresponding implementation module.  */
-          (*p.proc) (reinterpret_cast<void *> (decl_lookupDef (decl_getSymName (decl_getMainModule ()))));
+          (*p.proc) (reinterpret_cast <void *> (decl_lookupDef (decl_getSymName (decl_getMainModule ()))));
         }
-      (*p.proc) (reinterpret_cast<void *> (decl_getMainModule ()));
+      (*p.proc) (reinterpret_cast <void *> (decl_getMainModule ()));
     }
   if (parseDefs)
     {
diff --git a/gcc/m2/mc-boot/GmcLexBuf.cc b/gcc/m2/mc-boot/GmcLexBuf.cc
index bd6d45738df..4cbd54429d1 100644
--- a/gcc/m2/mc-boot/GmcLexBuf.cc
+++ b/gcc/m2/mc-boot/GmcLexBuf.cc
@@ -707,7 +707,7 @@ static void checkIfNeedToDuplicate (void)
       currentSource = newList ();
       while (l != h)
         {
-          addTo (newElement (reinterpret_cast<void *> (l->name)));
+          addTo (newElement (reinterpret_cast <void *> (l->name)));
           l = l->right;
         }
     }
diff --git a/gcc/m2/mc-boot/GmcPreprocess.cc b/gcc/m2/mc-boot/GmcPreprocess.cc
index 942c8b1754b..741109ad7fb 100644
--- a/gcc/m2/mc-boot/GmcPreprocess.cc
+++ b/gcc/m2/mc-boot/GmcPreprocess.cc
@@ -93,7 +93,7 @@ static DynamicStrings_String makeTempFile (DynamicStrings_String ext)
 
 static DynamicStrings_String onExitDelete (DynamicStrings_String filename)
 {
-  alists_includeItemIntoList (listOfFiles, reinterpret_cast<void *> (DynamicStrings_Dup (filename)));
+  alists_includeItemIntoList (listOfFiles, reinterpret_cast <void *> (DynamicStrings_Dup (filename)));
   return filename;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -148,7 +148,7 @@ extern "C" DynamicStrings_String mcPreprocess_preprocessModule (DynamicStrings_S
     }
   else
     {
-      tempfile = DynamicStrings_InitStringCharStar (reinterpret_cast<void *> (makeTempFile (DynamicStrings_InitString ((const char *) "cpp", 3))));
+      tempfile = DynamicStrings_InitStringCharStar (reinterpret_cast <void *> (makeTempFile (DynamicStrings_InitString ((const char *) "cpp", 3))));
       commandLine = DynamicStrings_Dup (command);
       commandLine = DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_ConCat (DynamicStrings_ConCatChar (DynamicStrings_Dup (commandLine), ' '), filename), DynamicStrings_Mark (DynamicStrings_InitString ((const char *) " -o ", 4))), tempfile);
       if (mcOptions_getVerbose ())
diff --git a/gcc/m2/mc-boot/GmcStream.cc b/gcc/m2/mc-boot/GmcStream.cc
index 3d8d01da465..da44d8f66a8 100644
--- a/gcc/m2/mc-boot/GmcStream.cc
+++ b/gcc/m2/mc-boot/GmcStream.cc
@@ -123,7 +123,7 @@ static void copy (mcStream_ptrToFile p);
 
 static DynamicStrings_String removeLater (DynamicStrings_String filename)
 {
-  alists_includeItemIntoList (listOfFiles, reinterpret_cast<void *> (filename));
+  alists_includeItemIntoList (listOfFiles, reinterpret_cast <void *> (filename));
   return filename;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
@@ -213,7 +213,7 @@ extern "C" FIO_File mcStream_openFrag (unsigned int id)
   f = createTemporaryFile (id);
   Storage_ALLOCATE ((void **) &p, sizeof (FIO_File));
   (*p) = f;
-  Indexing_PutIndice (frag, id, reinterpret_cast<void *> (p));
+  Indexing_PutIndice (frag, id, reinterpret_cast <void *> (p));
   return f;
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
diff --git a/gcc/m2/mc-boot/Gmcp1.cc b/gcc/m2/mc-boot/Gmcp1.cc
index b6b0f87a43a..b4ccf806cb0 100644
--- a/gcc/m2/mc-boot/Gmcp1.cc
+++ b/gcc/m2/mc-boot/Gmcp1.cc
@@ -1739,7 +1739,9 @@ static void Priority (mcp1_SetOfStop0 stopset0, mcp1_SetOfStop1 stopset1, mcp1_S
 
 /*
    Export := 'EXPORT' ( 'QUALIFIED' IdentList  | 
-                        'UNQUALIFIED' IdentList  | 
+                        'UNQUALIFIED' 
+                        % putDefUnqualified (curmodule)  %
+                        IdentList  | 
                         IdentList  ) ';' 
 
    first  symbols:exporttok
@@ -6753,7 +6755,9 @@ static void Priority (mcp1_SetOfStop0 stopset0, mcp1_SetOfStop1 stopset1, mcp1_S
 
 /*
    Export := 'EXPORT' ( 'QUALIFIED' IdentList  | 
-                        'UNQUALIFIED' IdentList  | 
+                        'UNQUALIFIED' 
+                        % putDefUnqualified (curmodule)  %
+                        IdentList  | 
                         IdentList  ) ';' 
 
    first  symbols:exporttok
@@ -6773,6 +6777,7 @@ static void Export (mcp1_SetOfStop0 stopset0, mcp1_SetOfStop1 stopset1, mcp1_Set
     {
       /* avoid dangling else.  */
       Expect (mcReserved_unqualifiedtok, stopset0, stopset1, stopset2|(mcp1_SetOfStop2) ((1 << (mcReserved_identtok-mcReserved_recordtok))));
+      decl_putDefUnqualified (curmodule);
       IdentList (stopset0|(mcp1_SetOfStop0) ((1 << (mcReserved_semicolontok-mcReserved_eoftok))), stopset1, stopset2);
     }
   else if (mcLexBuf_currenttoken == mcReserved_identtok)
diff --git a/gcc/m2/mc-boot/Gmcp3.cc b/gcc/m2/mc-boot/Gmcp3.cc
index e327d366b56..5cb83f464e7 100644
--- a/gcc/m2/mc-boot/Gmcp3.cc
+++ b/gcc/m2/mc-boot/Gmcp3.cc
@@ -2231,7 +2231,7 @@ static void TrashList (mcp3_SetOfStop0 stopset0, mcp3_SetOfStop1 stopset1, mcp3_
 
 static decl_node push (decl_node n)
 {
-  return static_cast<decl_node> (mcStack_push (stk, reinterpret_cast<void *> (n)));
+  return static_cast<decl_node> (mcStack_push (stk, reinterpret_cast <void *> (n)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2255,7 +2255,7 @@ static decl_node pop (void)
 
 static decl_node replace (decl_node n)
 {
-  return static_cast<decl_node> (mcStack_replace (stk, reinterpret_cast<void *> (n)));
+  return static_cast<decl_node> (mcStack_replace (stk, reinterpret_cast <void *> (n)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
diff --git a/gcc/m2/mc-boot/Gmcp4.cc b/gcc/m2/mc-boot/Gmcp4.cc
index 2fdd0ae2523..ce8cb78f443 100644
--- a/gcc/m2/mc-boot/Gmcp4.cc
+++ b/gcc/m2/mc-boot/Gmcp4.cc
@@ -2165,7 +2165,7 @@ static void TrashList (mcp4_SetOfStop0 stopset0, mcp4_SetOfStop1 stopset1, mcp4_
 
 static decl_node push (decl_node n)
 {
-  return static_cast<decl_node> (mcStack_push (stk, reinterpret_cast<void *> (n)));
+  return static_cast<decl_node> (mcStack_push (stk, reinterpret_cast <void *> (n)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2189,7 +2189,7 @@ static decl_node pop (void)
 
 static decl_node replace (decl_node n)
 {
-  return static_cast<decl_node> (mcStack_replace (stk, reinterpret_cast<void *> (n)));
+  return static_cast<decl_node> (mcStack_replace (stk, reinterpret_cast <void *> (n)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
diff --git a/gcc/m2/mc-boot/Gmcp5.cc b/gcc/m2/mc-boot/Gmcp5.cc
index d1e1fe984fa..909c62215c8 100644
--- a/gcc/m2/mc-boot/Gmcp5.cc
+++ b/gcc/m2/mc-boot/Gmcp5.cc
@@ -2500,7 +2500,7 @@ static void followNode (decl_node n)
 
 static decl_node push (decl_node n)
 {
-  return static_cast<decl_node> (mcStack_push (stk, reinterpret_cast<void *> (n)));
+  return static_cast<decl_node> (mcStack_push (stk, reinterpret_cast <void *> (n)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2524,7 +2524,7 @@ static decl_node pop (void)
 
 static decl_node replace (decl_node n)
 {
-  return static_cast<decl_node> (mcStack_replace (stk, reinterpret_cast<void *> (n)));
+  return static_cast<decl_node> (mcStack_replace (stk, reinterpret_cast <void *> (n)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2592,7 +2592,7 @@ static bool isQualident (decl_node n)
 
 static void startWith (decl_node n)
 {
-  n = static_cast<decl_node> (mcStack_push (withStk, reinterpret_cast<void *> (n)));
+  n = static_cast<decl_node> (mcStack_push (withStk, reinterpret_cast <void *> (n)));
 }
 
 
@@ -2644,7 +2644,7 @@ static decl_node lookupWithSym (nameKey_Name i)
 
 static decl_node pushStmt (decl_node n)
 {
-  return static_cast<decl_node> (mcStack_push (stmtStk, reinterpret_cast<void *> (n)));
+  return static_cast<decl_node> (mcStack_push (stmtStk, reinterpret_cast <void *> (n)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
@@ -2681,7 +2681,7 @@ static decl_node peepStmt (void)
 
 static decl_node pushLoop (decl_node n)
 {
-  return static_cast<decl_node> (mcStack_push (loopStk, reinterpret_cast<void *> (n)));
+  return static_cast<decl_node> (mcStack_push (loopStk, reinterpret_cast <void *> (n)));
   /* static analysis guarentees a RETURN statement will be used before here.  */
   __builtin_unreachable ();
 }
diff --git a/gcc/m2/mc-boot/GnameKey.cc b/gcc/m2/mc-boot/GnameKey.cc
index ba9eaa026c0..3e868886e29 100644
--- a/gcc/m2/mc-boot/GnameKey.cc
+++ b/gcc/m2/mc-boot/GnameKey.cc
@@ -192,12 +192,12 @@ static nameKey_Name doMakeKey (nameKey_ptrToChar n, unsigned int higha)
       lastIndice += 1;
       child->key = lastIndice;
       child->data = n;
-      Indexing_PutIndice (keyIndex, child->key, reinterpret_cast<void *> (n));
+      Indexing_PutIndice (keyIndex, child->key, reinterpret_cast <void *> (n));
       k = lastIndice;
     }
   else
     {
-      Storage_DEALLOCATE (reinterpret_cast<void **> (&n), higha+1);
+      Storage_DEALLOCATE (reinterpret_cast <void **> (&n), higha+1);
       k = child->key;
     }
   return k;
@@ -305,7 +305,7 @@ extern "C" nameKey_Name nameKey_makeKey (const char *a_, unsigned int _a_high)
   memcpy (a, a_, _a_high+1);
 
   higha = StrLib_StrLen ((const char *) a, _a_high);
-  Storage_ALLOCATE (reinterpret_cast<void **> (&p), higha+1);
+  Storage_ALLOCATE (reinterpret_cast <void **> (&p), higha+1);
   if (p == NULL)
     {
       M2RTS_HALT (-1);  /* out of memory error  */
@@ -352,7 +352,7 @@ extern "C" nameKey_Name nameKey_makekey (void * a)
   else
     {
       higha = static_cast<unsigned int> (libc_strlen (a));
-      Storage_ALLOCATE (reinterpret_cast<void **> (&p), higha+1);
+      Storage_ALLOCATE (reinterpret_cast <void **> (&p), higha+1);
       if (p == NULL)
         {
           M2RTS_HALT (-1);  /* out of memory error  */
diff --git a/gcc/m2/mc-boot/Gvarargs.cc b/gcc/m2/mc-boot/Gvarargs.cc
index 5c8abd9940b..69f5f2c5756 100644
--- a/gcc/m2/mc-boot/Gvarargs.cc
+++ b/gcc/m2/mc-boot/Gvarargs.cc
@@ -329,7 +329,7 @@ extern "C" varargs_vararg varargs_start2 (const unsigned char *a_, unsigned int
   v->arg.array[0].ptr = static_cast<void *> (p);
   v->arg.array[0].len = _a_high+1;
   p += v->arg.array[0].len;
-  p = static_cast<start2__T3> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(b)), static_cast<size_t> (_b_high+1)));
+  p = static_cast<start2__T3> (libc_memcpy (reinterpret_cast <void *> (p), const_cast<void*> (static_cast<const void*>(b)), static_cast<size_t> (_b_high+1)));
   v->arg.array[1].ptr = static_cast<void *> (p);
   v->arg.array[1].len = _b_high+1;
   return static_cast<varargs_vararg> (v);
@@ -366,11 +366,11 @@ extern "C" varargs_vararg varargs_start3 (const unsigned char *a_, unsigned int
   v->arg.array[0].ptr = static_cast<void *> (p);
   v->arg.array[0].len = _a_high+1;
   p += v->arg.array[0].len;
-  p = static_cast<start3__T4> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(b)), static_cast<size_t> (_b_high+1)));
+  p = static_cast<start3__T4> (libc_memcpy (reinterpret_cast <void *> (p), const_cast<void*> (static_cast<const void*>(b)), static_cast<size_t> (_b_high+1)));
   v->arg.array[1].ptr = static_cast<void *> (p);
   v->arg.array[1].len = _b_high+1;
   p += v->arg.array[1].len;
-  p = static_cast<start3__T4> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(c)), static_cast<size_t> (_c_high+1)));
+  p = static_cast<start3__T4> (libc_memcpy (reinterpret_cast <void *> (p), const_cast<void*> (static_cast<const void*>(c)), static_cast<size_t> (_c_high+1)));
   v->arg.array[2].ptr = static_cast<void *> (p);
   v->arg.array[2].len = _c_high+1;
   return static_cast<varargs_vararg> (v);
@@ -408,15 +408,15 @@ extern "C" varargs_vararg varargs_start4 (const unsigned char *a_, unsigned int
   p = static_cast<start4__T5> (libc_memcpy (v->contents, const_cast<void*> (static_cast<const void*>(a)), static_cast<size_t> (_a_high+1)));
   v->arg.array[0].len = _a_high+1;
   p += v->arg.array[0].len;
-  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(b)), static_cast<size_t> (_b_high+1)));
+  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast <void *> (p), const_cast<void*> (static_cast<const void*>(b)), static_cast<size_t> (_b_high+1)));
   v->arg.array[1].ptr = static_cast<void *> (p);
   v->arg.array[1].len = _b_high+1;
   p += v->arg.array[1].len;
-  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(c)), static_cast<size_t> (_c_high+1)));
+  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast <void *> (p), const_cast<void*> (static_cast<const void*>(c)), static_cast<size_t> (_c_high+1)));
   v->arg.array[2].ptr = static_cast<void *> (p);
   v->arg.array[2].len = _c_high+1;
   p += v->arg.array[2].len;
-  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast<void *> (p), const_cast<void*> (static_cast<const void*>(c)), static_cast<size_t> (_c_high+1)));
+  p = static_cast<start4__T5> (libc_memcpy (reinterpret_cast <void *> (p), const_cast<void*> (static_cast<const void*>(c)), static_cast<size_t> (_c_high+1)));
   v->arg.array[3].ptr = static_cast<void *> (p);
   v->arg.array[3].len = _c_high+1;
   return static_cast<varargs_vararg> (v);
diff --git a/gcc/m2/mc/decl.def b/gcc/m2/mc/decl.def
index 8f12f010850..fa3514b2d4d 100644
--- a/gcc/m2/mc/decl.def
+++ b/gcc/m2/mc/decl.def
@@ -184,6 +184,20 @@ PROCEDURE lookupModule (n: Name) : node ;
 PROCEDURE putDefForC (n: node) ;
 
 
+(*
+   putDefUnqualified - the definition module uses export unqualified.
+*)
+
+PROCEDURE putDefUnqualified (n: node) ;
+
+
+(*
+   isDefUnqualified - returns TRUE if the definition module uses unqualified.
+*)
+
+PROCEDURE isDefUnqualified (n: node) : BOOLEAN ;
+
+
 (*
    lookupInScope - looks up a symbol named, n, from, scope.
 *)
diff --git a/gcc/m2/mc/decl.mod b/gcc/m2/mc/decl.mod
index 8293c7f5d1f..356290b349c 100644
--- a/gcc/m2/mc/decl.mod
+++ b/gcc/m2/mc/decl.mod
@@ -662,6 +662,7 @@ TYPE
        defT = RECORD
                  name             :  Name ;
                  source           :  Name ;
+                 unqualified,
 		 hasHidden,
                  forC             :  BOOLEAN ;
                  exported,
@@ -721,6 +722,8 @@ VAR
    globalGroup   : group ;    (* The global group of all alists.  *)
    outputFile    : File ;
    lang          : language ;
+   charStarN,
+   constCharStarN,
    bitsperunitN,
    bitsperwordN,
    bitspercharN,
@@ -1187,6 +1190,47 @@ BEGIN
 END importEnumFields ;
 
 
+(*
+   checkGccType - check to see if node n is gcc tree or location_t
+                  and record its use in keyc.
+*)
+
+PROCEDURE checkGccType (n: node) ;
+BEGIN
+   IF getGccConfigSystem () AND (getScope (n) # NIL) AND
+      (getSymName (getScope (n)) = makeKey ('gcctypes'))
+   THEN
+      IF getSymName (n) = makeKey ('location_t')
+      THEN
+         keyc.useGccLocation
+      ELSIF getSymName (n) = makeKey ('tree')
+      THEN
+         keyc.useGccTree
+      END
+   END
+END checkGccType ;
+
+
+(*
+   checkCDataTypes - check to see if node n is CharStar or ConstCharStar
+                  and if necessary assign n to the global variable.
+*)
+
+PROCEDURE checkCDataTypes (n: node) ;
+BEGIN
+   IF (getScope (n) # NIL) AND (getSymName (getScope (n)) = makeKey ('CDataTypes'))
+   THEN
+      IF getSymName (n) = makeKey ('CharStar')
+      THEN
+         charStarN := n
+      ELSIF getSymName (n) = makeKey ('ConstCharStar')
+      THEN
+         constCharStarN := n
+      END
+   END
+END checkCDataTypes ;
+
+
 (*
    import - attempts to add node, n, into the scope of module, m.
             It might fail due to a name clash in which case the
@@ -1201,6 +1245,8 @@ VAR
 BEGIN
    assert (isDef (m) OR isModule (m) OR isImp (m)) ;
    name := getSymName (n) ;
+   checkGccType (n) ;
+   checkCDataTypes (n) ;
    r := lookupInScope (m, name) ;
    IF r=NIL
    THEN
@@ -1563,6 +1609,7 @@ BEGIN
       defF.source := NulName ;
       defF.hasHidden := FALSE ;
       defF.forC := FALSE ;
+      defF.unqualified := FALSE ;
       defF.exported := InitIndex (1) ;
       defF.importedModules := InitIndex (1) ;
       defF.constFixup := initFixupInfo () ;
@@ -1653,6 +1700,33 @@ BEGIN
 END isDefForC ;
 
 
+(*
+   putDefUnqualified - the definition module uses unqualified.
+*)
+
+PROCEDURE putDefUnqualified (n: node) ;
+BEGIN
+   assert (isDef (n)) ;
+   (* Currently (and this is a temporary development restriction to
+      reduce any search space for bugs) the only module which can be
+      export unqualified is gcctypes.  *)
+   IF n^.defF.name = makeKey ('gcctypes')
+   THEN
+      n^.defF.unqualified := TRUE
+   END
+END putDefUnqualified ;
+
+
+(*
+   isDefUnqualified - returns TRUE if the definition module uses unqualified.
+*)
+
+PROCEDURE isDefUnqualified (n: node) : BOOLEAN ;
+BEGIN
+   RETURN isDef (n) AND n^.defF.unqualified
+END isDefUnqualified ;
+
+
 (*
    lookupDef - returns a definition module node named, n.
 *)
@@ -3555,7 +3629,7 @@ BEGIN
       THEN
          RETURN getNextFixup (impF.constFixup)
       ELSE
-         assert (isModule (currentModule))
+         assert (isModule (currentModule)) ;
          RETURN getNextFixup (moduleF.constFixup)
       END
    END
@@ -5421,7 +5495,7 @@ END getExprType ;
 
 PROCEDURE skipType (n: node) : node ;
 BEGIN
-   WHILE (n#NIL) AND isType (n) DO
+   WHILE (n#NIL) AND isType (n) AND (NOT isCDataType (n)) DO
       IF getType (n) = NIL
       THEN
          (* this will occur if, n, is an opaque type.  *)
@@ -5720,7 +5794,7 @@ PROCEDURE getFQstring (n: node) : String ;
 VAR
    i, s: String ;
 BEGIN
-   IF getScope (n) = NIL
+   IF (getScope (n) = NIL) OR (isDefUnqualified (getScope (n)))
    THEN
       RETURN InitStringCharStar (keyToCharStar (getSymName (n)))
    ELSIF isQualifiedForced (n)
@@ -5728,7 +5802,7 @@ BEGIN
       i := InitStringCharStar (keyToCharStar (getSymName (n))) ;
       s := InitStringCharStar (keyToCharStar (getSymName (getScope (n)))) ;
       RETURN Sprintf2 (InitString ("%s_%s"), s, i)
-   ELSIF (NOT isExported (n)) OR getIgnoreFQ ()
+   ELSIF (NOT isExported (n)) OR getIgnoreFQ () OR (isDefUnqualified (getScope (n)))
    THEN
       RETURN InitStringCharStar (keyToCharStar (getSymName (n)))
    ELSE
@@ -5747,7 +5821,7 @@ PROCEDURE getFQDstring (n: node; scopes: BOOLEAN) : String ;
 VAR
    i, s: String ;
 BEGIN
-   IF getScope (n) = NIL
+   IF (getScope (n) = NIL) OR (isDefUnqualified (getScope (n)))
    THEN
       RETURN InitStringCharStar (keyToCharStar (getDName (n, scopes)))
    ELSIF isQualifiedForced (n)
@@ -5756,7 +5830,7 @@ BEGIN
       i := InitStringCharStar (keyToCharStar (getSymName (n))) ;
       s := InitStringCharStar (keyToCharStar (getSymName (getScope (n)))) ;
       RETURN Sprintf2 (InitString ("%s_%s"), s, i)
-   ELSIF (NOT isExported (n)) OR getIgnoreFQ ()
+   ELSIF (NOT isExported (n)) OR getIgnoreFQ () OR (isDefUnqualified (getScope (n)))
    THEN
       RETURN InitStringCharStar (keyToCharStar (getDName (n, scopes)))
    ELSE
@@ -8250,6 +8324,173 @@ BEGIN
 END doTypeNameModifier ;
 
 
+(*
+   isGccType - return TRUE if n is tree or location_t.
+*)
+
+PROCEDURE isGccType (n: node) : BOOLEAN ;
+BEGIN
+   RETURN (getGccConfigSystem () AND
+           ((getSymName (n) = makeKey ('location_t')) OR
+            (getSymName (n) = makeKey ('tree'))))
+END isGccType ;
+
+
+(*
+   doGccType - record whether we are going to declare tree or location_t
+               so that the appropriate gcc header can be included instead.
+*)
+
+PROCEDURE doGccType (p: pretty; n: node) ;
+BEGIN
+   IF getGccConfigSystem ()
+   THEN
+      IF getSymName (n) = makeKey ('location_t')
+      THEN
+         outText (p, "/* Not going to declare ") ;
+         doTypeNameC (p, n) ;
+         outText (p, " as it is declared in the gcc header input.h.  */\n\n") ;
+         keyc.useGccLocation
+      ELSIF getSymName (n) = makeKey ('tree')
+      THEN
+         outText (p, "/* Not going to declare ") ;
+         doTypeNameC (p, n) ;
+         outText (p, " as it is declared in the gcc header tree.h.  */\n\n") ;
+         keyc.useGccTree
+      END
+   END
+END doGccType ;
+
+
+(*
+   isCDataType - return true if n is charStar or constCharStar.
+*)
+
+PROCEDURE isCDataType (n: node) : BOOLEAN ;
+BEGIN
+   RETURN (n # NIL) AND ((n = charStarN) OR (n = constCharStarN))
+END isCDataType ;
+
+
+(*
+   isCDataTypes - return TRUE if n is CharStar or ConstCharStar.
+*)
+
+PROCEDURE isCDataTypes (n: node) : BOOLEAN ;
+VAR
+   scope: node ;
+BEGIN
+   scope := getScope (n) ;
+   RETURN (scope # NIL) AND (getSymName (scope) = makeKey ('CDataTypes')) AND
+            ((getSymName (n) = makeKey ('CharStar')) OR
+             (getSymName (n) = makeKey ('ConstCharStar')))
+END isCDataTypes ;
+
+
+(*
+   doCDataTypes - if we are going to declare CharStar or ConstCharStar
+               then generate a comment instead.
+*)
+
+PROCEDURE doCDataTypes (p: pretty; n: node) ;
+BEGIN
+   IF isCDataTypes (n)
+   THEN
+      IF getSymName (n) = makeKey ('CharStar')
+      THEN
+         outText (p, "/* Not going to declare ") ;
+         doTypeNameC (p, n) ;
+         outText (p, " as it is a C type.  */\n\n") ;
+         charStarN := n
+      ELSIF getSymName (n) = makeKey ('ConstCharStar')
+      THEN
+         outText (p, "/* Not going to declare ") ;
+         doTypeNameC (p, n) ;
+         outText (p, " as it is a C type.  */\n\n") ;
+         constCharStarN := n
+      END
+   END
+END doCDataTypes ;
+
+
+(*
+   doCDataTypesC - generate the C representation of the CDataTypes data types.
+*)
+
+PROCEDURE doCDataTypesC (p: pretty; n: node) ;
+BEGIN
+   IF n = charStarN
+   THEN
+      outText (p, "char *") ;
+      setNeedSpace (p)
+   ELSIF n = constCharStarN
+   THEN
+      outText (p, "const char *") ;
+      setNeedSpace (p)
+   END
+END doCDataTypesC ;
+
+
+(*
+   doTypeOrPointer - only declare type or pointer n providing that
+                     the name is not location_t or tree and
+                     the --gccConfigSystem option is enabled.
+*)
+
+PROCEDURE doTypeOrPointer (p: pretty; n: node) ;
+VAR
+   m: node ;
+BEGIN
+   IF isGccType (n)
+   THEN
+      doGccType (p, n)
+   ELSIF isCDataTypes (n)
+   THEN
+      doCDataTypes (p, n)
+   ELSE
+      m := getType (n) ;
+      outText (p, "typedef") ; setNeedSpace (p) ;
+      doTypeC (p, m, m) ;
+      IF isType (m)
+      THEN
+         setNeedSpace (p)
+      END ;
+      doTypeNameC (p, n) ;
+      doTypeNameModifier (p, n) ;
+      outText (p, ";\n\n")
+   END
+END doTypeOrPointer ;
+
+
+(*
+   doTypedef - generate a typedef for n provuiding it is not
+*)
+
+PROCEDURE doTypedef (p: pretty; n: node) ;
+VAR
+   m: node ;
+BEGIN
+   IF isGccType (n)
+   THEN
+      doGccType (p, n)
+   ELSIF isCDataTypes (n)
+   THEN
+      doCDataTypes (p, n)
+   ELSE
+      m := getType (n) ;
+      outText (p, "typedef") ; setNeedSpace (p) ;
+      doTypeC (p, m, m) ;
+      IF isType (m)
+      THEN
+         setNeedSpace (p)
+      END ;
+      doTypeNameC (p, n) ;
+      doTypeNameModifier (p, n) ;
+      outText (p, ";\n\n")
+   END
+END doTypedef ;
+
+
 (*
    doTypesC -
 *)
@@ -8266,15 +8507,7 @@ BEGIN
          doProcTypeC (doP, n, m)
       ELSIF isType (m) OR isPointer (m)
       THEN
-         outText (doP, "typedef") ; setNeedSpace (doP) ;
-         doTypeC (doP, m, m) ;
-	 IF isType (m)
-         THEN
-            setNeedSpace (doP)
-         END ;
-         doTypeNameC (doP, n) ;
-         doTypeNameModifier (doP, n) ;
-         outText (doP, ";\n\n")
+         doTypeOrPointer (doP, n)
       ELSIF isEnumeration (m)
       THEN
          IF isDeclType (n)
@@ -8286,15 +8519,7 @@ BEGIN
             outText (doP, ";\n\n")
          END
       ELSE
-         outText (doP, "typedef") ; setNeedSpace (doP) ;
-         doTypeC (doP, m, m) ;
-	 IF isType (m)
-         THEN
-            setNeedSpace (doP)
-         END ;
-         doTypeNameC (doP, n) ;
-         doTypeNameModifier (doP, n) ;
-         outText (doP, ";\n\n")
+         doTypedef (doP, n)
       END
    END
 END doTypesC ;
@@ -9048,6 +9273,9 @@ BEGIN
    IF n=NIL
    THEN
       outText (p, "void")
+   ELSIF isCDataTypes (n)
+   THEN
+      doCDataTypesC (p, n)
    ELSIF isBase (n)
    THEN
       doBaseC (p, n)
@@ -9078,10 +9306,13 @@ BEGIN
    ELSIF isSet (n)
    THEN
       doSetC (p, n)
+   ELSIF isCDataTypes (n)
+   THEN
+      doCDataTypesC (p, n)
    ELSE
-      (* --fixme--  *)
-      print (p, "to do ...  typedef etc etc ") ; doFQNameC (p, n) ; print (p, ";\n") ;
-      HALT
+      metaError1 ('expecting a type symbol rather than a {%1DMd} {%1DMa}', n) ;
+      flushErrors ;
+      errorAbort0 ('terminating compilation')
    END
 END doTypeC ;
 
@@ -9133,6 +9364,14 @@ BEGIN
    THEN
       outText (p, "void") ;
       setNeedSpace (p)
+   ELSIF n = charStarN
+   THEN
+      outText (p, "char *") ;
+      setNeedSpace (p)
+   ELSIF n = constCharStarN
+   THEN
+      outText (p, "const char *") ;
+      setNeedSpace (p)
    ELSIF isBase (n)
    THEN
       doBaseC (p, n)
@@ -11022,6 +11261,126 @@ BEGIN
 END needsCast ;
 
 
+(*
+   castDestType - emit the destination type ft
+*)
+
+PROCEDURE castDestType (p: pretty; formal, ft: node) ;
+BEGIN
+   doTypeNameC (p, ft) ;
+   IF isVarParam (formal)
+   THEN
+      outText (p, '*')
+   END
+END castDestType ;
+
+
+(*
+   identifyPointer -
+*)
+
+PROCEDURE identifyPointer (type: node) : node ;
+BEGIN
+   IF isPointer (type)
+   THEN
+      IF skipType (getType (type)) = charN
+      THEN
+         RETURN charStarN
+      ELSIF (skipType (getType (type)) = byteN) OR
+            (skipType (getType (type)) = locN)
+      THEN
+         RETURN addressN
+      END
+   END ;
+   RETURN type
+END identifyPointer ;
+
+
+(*
+   castPointer - provides a six way cast between ADDRESS (ie void * ),
+                 char * and const char *.
+*)
+
+PROCEDURE castPointer (p: pretty; actual, formal, at, ft: node) : CARDINAL ;
+VAR
+   sat, sft: node ;
+   parenth : CARDINAL ;
+BEGIN
+   parenth := 0 ;
+   IF at # ft
+   THEN
+      sat := identifyPointer (skipType (at)) ;
+      sft := identifyPointer (skipType (ft)) ;
+      IF sat = addressN
+      THEN
+         IF sft = charStarN
+         THEN
+            outText (p, 'reinterpret_cast <') ;
+            castDestType (p, formal, ft) ;
+            outText (p, '>')
+         ELSIF sft = constCharStarN
+         THEN
+            outText (p, 'const_cast <') ;
+            castDestType (p, formal, ft) ;
+            outText (p, '> (static_cast <') ;
+            doTypeNameC (p, charStarN) ;
+            outText (p, '>') ;
+            INC (parenth)
+         ELSE
+            outText (p, 'reinterpret_cast <') ;
+            castDestType (p, formal, ft) ;
+            outText (p, '>')
+         END
+      ELSIF sat = charStarN
+      THEN
+         IF sft = addressN
+         THEN
+            outText (p, 'reinterpret_cast <') ;
+            castDestType (p, formal, ft) ;
+            outText (p, '>')
+         ELSIF sft = constCharStarN
+         THEN
+            outText (p, 'const_cast <') ;
+            castDestType (p, formal, ft) ;
+            outText (p, '>')
+         ELSE
+            outText (p, 'reinterpret_cast <') ;
+            castDestType (p, formal, ft) ;
+            outText (p, '>')
+         END
+      ELSIF sat = constCharStarN
+      THEN
+         IF sft = addressN
+         THEN
+            outText (p, 'static_cast <') ;
+            castDestType (p, formal, ft) ;
+            outText (p, '> (const_cast <') ;
+            doTypeNameC (p, charStarN) ;
+            outText (p, '>') ;
+            INC (parenth)
+         ELSIF sft = charStarN
+         THEN
+            outText (p, 'const_cast <') ;
+            castDestType (p, formal, ft) ;
+            outText (p, '>')
+         ELSE
+            outText (p, 'reinterpret_cast <') ;
+            castDestType (p, formal, ft) ;
+            outText (p, '>')
+         END
+      ELSE
+         outText (p, 'reinterpret_cast <') ;
+         castDestType (p, formal, ft) ;
+         outText (p, '>')
+      END ;
+      setNeedSpace (p) ;
+      outText (p, '(') ;
+      INC (parenth)
+   END ;
+   RETURN parenth
+END castPointer ;
+
+
 (*
    checkSystemCast - checks to see if we are passing to/from
                      a system generic type (WORD, BYTE, ADDRESS)
@@ -11039,11 +11398,16 @@ BEGIN
    THEN
       IF lang = ansiCP
       THEN
-         IF isString (actual) AND (skipType (ft) = addressN)
+         IF isString (actual) AND isCDataType (skipType (ft))
+         THEN
+            (* Nothing to do.  *)
+            RETURN 0
+         ELSIF isString (actual) AND (skipType (ft) = addressN)
          THEN
             outText (p, "const_cast<void*> (static_cast<const void*> (") ;
 	    RETURN 2
-         ELSIF isPointer (skipType (ft)) OR (skipType (ft) = addressN)
+         ELSIF isPointer (skipType (ft)) OR (skipType (ft) = addressN) OR
+               isCDataType (skipType (ft))
          THEN
             IF actual = nilN
             THEN
@@ -11054,14 +11418,7 @@ BEGIN
                (* NULL is compatible with pointers/address.  *)
                RETURN 0
             ELSE
-               outText (p, 'reinterpret_cast<') ;
-               doTypeNameC (p, ft) ;
-               IF isVarParam (formal)
-               THEN
-                  outText (p, '*')
-               END ;
-               noSpace (p) ;
-               outText (p, '> (')
+               RETURN castPointer (p, actual, formal, at, ft)
             END
          ELSE
             outText (p, 'static_cast<') ;
@@ -18061,6 +18418,22 @@ BEGIN
 END makeBuiltins ;
 
 
+(*
+   makeCDataTypes - assign the charStarN and constCharStarN to NIL.
+*)
+
+PROCEDURE makeCDataTypes ;
+VAR
+   CdatatypesN: node ;
+BEGIN
+   CdatatypesN := lookupDef (makeKey ('CDataTypes')) ;
+   enterScope (CdatatypesN) ;
+   charStarN := makePointer (charN) ;
+   constCharStarN := makePointer (charN) ;
+   leaveScope
+END makeCDataTypes ;
+
+
 (*
    init -
 *)
@@ -18083,7 +18456,8 @@ BEGIN
    makeM2rts ;
    outputState := punct ;
    tempCount := 0 ;
-   mustVisitScope := FALSE
+   mustVisitScope := FALSE ;
+   makeCDataTypes
 END init ;
 
 
diff --git a/gcc/m2/mc/keyc.def b/gcc/m2/mc/keyc.def
index cdf3f67e131..687a310bf82 100644
--- a/gcc/m2/mc/keyc.def
+++ b/gcc/m2/mc/keyc.def
@@ -27,6 +27,20 @@ FROM decl IMPORT node ;
 FROM nameKey IMPORT Name ;
 
 
+(*
+   useGccTree - indicate we have imported tree from gcctypes.
+*)
+
+PROCEDURE useGccTree ;
+
+
+(*
+   useGccLocation - indicate we have imported tree from gcctypes.
+*)
+
+PROCEDURE useGccLocation ;
+
+
 (*
    useUnistd - need to use unistd.h call using open/close/read/write require this header.
 *)
diff --git a/gcc/m2/mc/keyc.mod b/gcc/m2/mc/keyc.mod
index 4436a321225..f3f09309ad5 100644
--- a/gcc/m2/mc/keyc.mod
+++ b/gcc/m2/mc/keyc.mod
@@ -44,6 +44,8 @@ VAR
    initializedCP,
    initializedGCC,
 
+   seenGccTree,
+   seenGccLocation,
    seenIntMin,
    seenUIntMin,
    seenLongMin,
@@ -95,11 +97,32 @@ BEGIN
          initializedGCC := TRUE ;
          print (p, '#include "config.h"\n');
          print (p, '#include "system.h"\n');
+         checkGccTypes (p)
       END
    END
 END checkGccConfigSystem ;
 
 
+(*
+   useGccTree - indicate we have imported tree from gcctypes.
+*)
+
+PROCEDURE useGccTree ;
+BEGIN
+   seenGccTree := TRUE
+END useGccTree ;
+
+
+(*
+   useGccLocation - indicate we have imported tree from gcctypes.
+*)
+
+PROCEDURE useGccLocation ;
+BEGIN
+   seenGccLocation := TRUE
+END useGccLocation ;
+
+
 (*
    useStorage - indicate we have used storage.
 *)
@@ -411,6 +434,20 @@ BEGIN
 END useCtype ;
 
 
+(*
+   checkGccTypes - if we have imported tree or location_t from gcctypes
+                   then we include the gcc headers.
+*)
+
+PROCEDURE checkGccTypes (p: pretty) ;
+BEGIN
+   IF seenGccTree OR seenGccLocation
+   THEN
+      print (p, '#include "gcc-consolidation.h"\n\n')
+   END
+END checkGccTypes ;
+
+
 (*
    checkCtype -
 *)
@@ -419,7 +456,7 @@ PROCEDURE checkCtype (p: pretty) ;
 BEGIN
    IF seenCtype
    THEN
-      checkGccConfigSystem (p);
+      checkGccConfigSystem (p) ;
       IF getGccConfigSystem ()
       THEN
          (* GCC header files use a safe variant.  *)
@@ -1149,6 +1186,8 @@ BEGIN
    seenSize_t := FALSE ;
    seenSSize_t := FALSE ;
    seenSysTypes := FALSE ;
+   seenGccTree := FALSE ;
+   seenGccLocation := FALSE ;
    initializedCP := FALSE ;
    initializedGCC := FALSE ;
 
diff --git a/gcc/m2/mc/mcp1.bnf b/gcc/m2/mc/mcp1.bnf
index 5b9661b4c23..42e41ef52a6 100644
--- a/gcc/m2/mc/mcp1.bnf
+++ b/gcc/m2/mc/mcp1.bnf
@@ -57,7 +57,7 @@ FROM mcLexBuf IMPORT currentstring, currenttoken, getToken, insertToken,
                      insertTokenAndRewind, getTokenNo, lastcomment ;
 
 FROM decl IMPORT node, lookupDef, lookupImp, lookupModule, getSymName,
-                 lookupSym, putDefForC,
+                 lookupSym, putDefForC, putDefUnqualified,
                  makeProcedure, makeType, makeTypeImp, makeVar, makeConst,
 		 enterScope, leaveScope, putTypeHidden, putTypeOpaque,
 		 addImportedModule, getCurrentModule,
@@ -1031,7 +1031,7 @@ Priority := "[" ConstExpression "]" =:
 
 Export := "EXPORT" ( "QUALIFIED"
                                  IdentList |
-                     "UNQUALIFIED"
+                     "UNQUALIFIED"                                     % putDefUnqualified (curmodule) %
                                  IdentList |
                      IdentList ) ";" =:
 

commit 6af1aca9f360ca46af2b91db1051adef0abf3152
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Nov 30 00:25:55 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 231473efece..ef66d635767 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,67 @@
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-11-18  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117594
+	* tree-vect-loop.cc (vectorizable_live_operation_1): Pass
+	factor == 1 to vect_get_loop_len, insert generated stmts.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-11-20  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117574
+	* tree-ssa-loop-niter.cc (number_of_iterations_lt_to_ne):
+	Use the obvious may_be_zero condition.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-11-05  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/117433
+	* cfgexpand.cc (expand_gimple_stmt_1): Use emit_block_move
+	when moving temp to BLKmode target.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-11-12  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117417
+	* tree-ssa-forwprop.cc (pass_forwprop::execute): Avoid
+	decomposing BIT_FIELD_REF complex load.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-29  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117333
+	* tree-data-ref.cc (dr_may_alias_p): Guard against NULL
+	access size.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-28  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117307
+	* tree-vect-data-refs.cc (vect_analyze_data_ref_accesses):
+	Properly compute STMT_VINFO_SLP_VECT_ONLY.  Set it on all
+	parts of a split group.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-22  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117254
+	* gimple-ssa-warn-access.cc (maybe_warn_nonstring_arg):
+	Check the array domain max is constant before using it.
+
 2024-11-28  Martin Jambor  <mjambor@suse.cz>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c38b4a0a46e..fd179292ccd 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241129
+20241130
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 55d53588f70..5f16df4ad88 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,721 @@
+2024-11-29  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-09-16  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116181
+	* Make-lang.in (GM2-GCC-DEFS): Add gcctypes.def and
+	CDataTypes.def.
+	(MC-LIB-DEFS): Add CDataTypes.def.
+	* Make-maintainer.in (m2/gm2-pge-boot/$(SRC_PREFIX)M2RTS.o):
+	Change include path to pge-boot.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)SymbolKey.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)NameKey.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)Lists.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)Output.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)bnflex.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.h): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)RTentity.o): Ditto.
+	(m2/gm2-pge-boot/$(SRC_PREFIX)%.o): Ditto.
+	(GM2PATH): Add -I$(srcdir)/m2/gm2-gcc.
+	(m2/mc-boot-gen/$(SRC_PREFIX)%.h): Add -I$(srcdir)/m2/gm2-gcc.
+	(m2/mc-boot-gen/$(SRC_PREFIX)%.cc): Ditto.
+	* gm2-compiler/M2ALU.def (PushIntegerTree): Replace Tree with tree.
+	(PopIntegerTree): Ditto.
+	(PushRealTree): Ditto.
+	(PopRealTree): Ditto.
+	(PushComplexTree): Ditto.
+	(PopComplexTree): Ditto.
+	(PushSetTree): Ditto.
+	(PopSetTree): Ditto.
+	(PopConstructorTree): Ditto.
+	(ConstructSetConstant): Ditto.
+	(BuildRange): Ditto.
+	(CheckOrResetOverflow): Ditto.
+	(PushTypeOfTree): Ditto.
+	* gm2-compiler/M2ALU.mod (Tree): Replace with ...
+	(tree): ... this.
+	(gcctypes): Import location_t and tree.
+	(m2linemap): Remove import of location_t.
+	* gm2-compiler/M2Base.def (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	* gm2-compiler/M2Base.mod (gcctypes): Import of location_t.
+	(m2linemap): Remove import of location_t.
+	* gm2-compiler/M2Bitset.mod (m2tree): Remove import of Tree.
+	* gm2-compiler/M2CaseList.mod (gcctypes): Import tree.
+	(m2tree): Remove import of Tree.
+	(Tree): Replace with ...
+	(tree): ... this.
+	* gm2-compiler/M2Emit.def (gcctypes): Import location_t.
+	* gm2-compiler/M2GCCDeclare.def (gcctypes): Import tree.
+	(PromoteToString): Replace Tree with tree.
+	(PromoteToCString): Ditto.
+	(ConstantKnownAndUsed): Ditto.
+	* gm2-compiler/M2GCCDeclare.mod (gcctypes): Import tree.
+	(m2tree): Remove import of Tree.
+	(Tree): Replace with ...
+	(tree): ... this.
+	* gm2-compiler/M2GenGCC.def (gcctypes): Import tree.
+	(m2tree): Remove import of Tree.
+	(Tree): Replace with ...
+	(tree): ... this.
+	(GetHighFromUnbounded): Replace Tree with tree.
+	(StringToChar): Ditto.
+	(LValueToGenericPtr): Ditto.
+	(ZConstToTypedConst): Ditto.
+	(PrepareCopyString): Ditto.
+	* gm2-compiler/M2GenGCC.mod (gcctypes): Import tree.
+	(m2tree): Remove import of Tree.
+	(Tree): Replace with ...
+	(tree): ... this.
+	* gm2-compiler/M2LangDump.def (gcctypes): Import tree.
+	(m2tree): Remove import of Tree.
+	(Tree): Replace with ...
+	(tree): ... this.
+	* gm2-compiler/M2LangDump.mod (Tree): Replace with ...
+	(tree): ... this.
+	* gm2-compiler/M2LexBuf.def (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	* gm2-compiler/M2LexBuf.mod (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	* gm2-compiler/M2Options.def (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	* gm2-compiler/M2Options.mod (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	* gm2-compiler/M2Range.def (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	(CDataTypes): Import ConstCharStar.
+	(CodeErrorCheck): Replace Tree with tree.
+	(OverlapsRange): Ditto.
+	(IsEqual): Ditto.
+	(IsGreaterOrEqual): Ditto.
+	(IsGreater): Ditto.
+	(BuildIfCallWholeHandlerLoc): Replace Tree with tree.
+	Replace ADDRESS with ConstCharStar.
+	(BuildIfCallRealHandlerLoc): Ditto.
+	(GetMinMax): Ditto.
+	* gm2-compiler/M2Range.mod (m2tree): Remove Tree.
+	(CodeErrorCheck): Replace Tree with tree.
+	(OverlapsRange): Ditto.
+	(IsEqual): Ditto.
+	(IsGreaterOrEqual): Ditto.
+	(IsGreater): Ditto.
+	(GetMinMax): Ditto.
+	(BuildIfCallWholeHandlerLoc): Replace Tree with tree.
+	Replace ADDRESS with ConstCharStar.
+	(BuildIfCallRealHandlerLoc): Ditto.
+	* gm2-compiler/M2System.def (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	* gm2-compiler/M2System.mod (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	(CreateMinMaxFor): Replace Tree with tree.
+	(CreateType): Ditto.
+	(AttemptToCreateType): Ditto.
+	(CreateSetType): Ditto.
+	(AttemptToCreateSetType): Ditto.
+	* gm2-compiler/P2SymBuild.mod (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	* gm2-compiler/SymbolConversion.def (m2tree): Replace with ...
+	(gcctypes): ... this.
+	(Mod2Gcc): Replace Tree with tree.
+	(Gcc2Mod): Ditto.
+	(AddModGcc): Ditto.
+	* gm2-compiler/SymbolConversion.mod (m2tree): Replace with ...
+	(gcctypes): ... this.
+	(Mod2Gcc): Replace Tree with tree.
+	(Gcc2Mod): Ditto.
+	(AddModGcc): Ditto.
+	(Mod2GccWithoutGCCPoison): Ditto.
+	* gm2-compiler/SymbolTable.def (m2tree): Replace with ...
+	(gcctypes): ... this.
+	(PutModuleFinallyFunction): Replace Tree with tree.
+	(GetModuleFinallyFunction): Ditto.
+	* gm2-compiler/SymbolTable.mod (m2tree): Replace with ...
+	(gcctypes): ... this.
+	(PutModuleFinallyFunction): Replace Tree with tree.
+	(GetModuleFinallyFunction): Ditto.
+	* gm2-compiler/m2flex.def (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	* gm2-gcc/init.def (PerCompilationInit): Replace ADDRESS with ConstCharStar.
+	(CDataTypes): Import ConstCharStar.
+	* gm2-gcc/m2block.def (SYSTEM): Remove import.
+	(CDataTypes): Import ConstCharStar.
+	(m2linemap): Remove import.
+	(m2tree): Remove import.
+	(gcctypes): Import tree.
+	(global_constant): Replace Tree with tree.
+	(RememberInitModuleFunction): Ditto.
+	(DumpGlobalConstants): Ditto.
+	(RememberConstant): Ditto.
+	(RememberType): Ditto.
+	(pushDecl): Ditto.
+	(popFunctionScope): Ditto.
+	(pushFunctionScope): Ditto.
+	(finishFunctionCode): Ditto.
+	(finishFunctionDecl): Ditto.
+	(GetErrorNode): Ditto.
+	(includeDecl): Ditto.
+	(GetGlobals): Ditto.
+	(GetGlobalContext): Ditto.
+	(begin_statement_list): Ditto.
+	(push_statement_list): Ditto.
+	(pop_statement_list): Ditto.
+	(getLabel): Replace Tree with tree.
+	Replace ADDRESS with ConstCharStar.
+	* gm2-gcc/m2builtins.def (CDataTypes): Import ConstCharStar.
+	(GetBuiltinConst): Replace Tree with tree.
+	(GetBuiltinConstType): Ditto.
+	(GetBuiltinTypeInfoType): Ditto.
+	(GetBuiltinTypeInfo): Ditto.
+	(BuiltinExists): Ditto.
+	(BuildBuiltinTree): Ditto.
+	(BuiltinMemCopy): Ditto.
+	(BuiltinMemSet): Ditto.
+	(BuiltInAlloca): Ditto.
+	(BuiltInIsfinite): Ditto.
+	* gm2-gcc/m2convert.def (CDataTypes): Import ConstCharStar.
+	(ToWord): Ditto.
+	(ToCardinal): Ditto.
+	(ToInteger): Ditto.
+	(ToBitset): Ditto.
+	(ConvertToPtr): Ditto.
+	(BuildConvert): Ditto.
+	(ConvertConstantAndCheck): Ditto.
+	(ConvertString): Ditto.
+	(GenericToType): Ditto.
+	* gm2-gcc/m2decl.cc (m2decl_BuildParameterDeclaration): Add
+	const attribute.
+	* gm2-gcc/m2decl.def (CDataTypes): Import ConstCharStar.
+	(BuildModuleCtor): Ditto.
+	(DeclareModuleCtor): Ditto.
+	(DeclareM2linkForcedModuleInitOrder): Ditto.
+	(DeclareM2linkStaticInitialization): Ditto.
+	(BuildPtrToTypeString): Ditto.
+	(BuildIntegerConstant): Ditto.
+	(BuildStringConstantType): Ditto.
+	(DeclareKnownVariable): Ditto.
+	(DeclareKnownConstant): Ditto.
+	(BuildParameterDeclaration): Ditto.
+	(BuildEndFunctionDeclaration): Ditto.
+	(RememberVariables): Ditto.
+	(BuildConstLiteralNumber): Ditto.
+	(BuildStringConstant): Ditto.
+	(BuildCStringConstant): Ditto.
+	(GetDeclContext): Ditto.
+	* gm2-gcc/m2decl.h (m2decl_BuildParameterDeclaration): Add
+	const attribute.
+	* gm2-gcc/m2except.def (CDataTypes): Import ConstCharStar.
+	(BuildThrow): Ditto.
+	(BuildTryBegin): Ditto.
+	(BuildTryEnd): Ditto.
+	(BuildCatchBegin): Ditto.
+	(BuildCatchEnd): Ditto.
+	* gm2-gcc/m2expr.def (CDataTypes): Import ConstCharStar.
+	(CSTIntToString): Ditto.
+	(CSTIntToChar): Ditto.
+	(CheckConstStrZtypeRange): Ditto.
+	(CompareTrees): Ditto.
+	(GetPointerOne): Ditto.
+	(GetPointerZero): Ditto.
+	(GetWordOne): Ditto.
+	(GetWordZero): Ditto.
+	(GetIntegerOne): Ditto.
+	(GetIntegerZero): Ditto.
+	(GetCardinalOne): Ditto.
+	(GetCardinalZero): Ditto.
+	(GetSizeOfInBits): Ditto.
+	(GetSizeOf): Ditto.
+	(BuildLogicalRotate): Ditto.
+	(BuildLRRn): Ditto.
+	(BuildLRLn): Ditto.
+	(BuildMask): Ditto.
+	(BuildMult): Ditto.
+	(BuildMultCheck): Ditto.
+	(BuildLRR): Ditto.
+	(BuildLRL): Ditto.
+	(BuildLogicalShift): Ditto.
+	(BuildLSR): Ditto.
+	(BuildLSL): Ditto.
+	(BuildDivM2): Ditto.
+	(BuildDivM2Check): Ditto.
+	(BuildModM2): Ditto.
+	(BuildModM2Check): Ditto.
+	(BuildModFloor): Ditto.
+	(BuildDivCeil): Ditto.
+	(BuildModCeil): Ditto.
+	(BuildDivFloor): Ditto.
+	(BuildModTrunc): Ditto.
+	(BuildDivTrunc): Ditto.
+	(BuildDivTruncCheck): Ditto.
+	(BuildRDiv): Ditto.
+	(BuildSubCheck): Ditto.
+	(BuildAddCheck): Ditto.
+	(BuildSub): Ditto.
+	(BuildAdd): Ditto.
+	(FoldAndStrip): Ditto.
+	(StringLength): Ditto.
+	(TreeOverflow): Ditto.
+	(RemoveOverflow): Ditto.
+	(BuildCoerce): Ditto.
+	(BuildTrunc): Ditto.
+	(BuildNegate): Ditto.
+	(BuildNegateCheck): Ditto.
+	(BuildSetNegate): Ditto.
+	(BuildTBitSize): Ditto.
+	(BuildSize): Ditto.
+	(BuildAddr): Ditto.
+	(BuildOffset1): Ditto.
+	(BuildOffset): Ditto.
+	(BuildLogicalOrAddress): Ditto.
+	(BuildLogicalOr): Ditto.
+	(BuildLogicalAnd): Ditto.
+	(BuildSymmetricDifference): Ditto.
+	(BuildLogicalDifference): Ditto.
+	(BuildLessThan): Ditto.
+	(BuildGreaterThan): Ditto.
+	(BuildLessThanOrEqual): Ditto.
+	(BuildGreaterThanOrEqual): Ditto.
+	(BuildEqualTo): Ditto.
+	(BuildNotEqualTo): Ditto.
+	(BuildIsSuperset): Ditto.
+	(BuildIsNotSuperset): Ditto.
+	(BuildIsSubset): Ditto.
+	(BuildIsNotSubset): Ditto.
+	(BuildIfConstInVar): Ditto.
+	(BuildIfNotConstInVar): Ditto.
+	(BuildIfVarInVar): Ditto.
+	(BuildIfNotVarInVar): Ditto.
+	(BuildForeachWordInSetDoIfExpr): Ditto.
+	(BuildIfInRangeGoto): Ditto.
+	(BuildIfNotInRangeGoto): Ditto.
+	(BuildArray): Ditto.
+	(BuildComponentRef): Ditto.
+	(BuildIndirect): Ditto.
+	(IsTrue): Ditto.
+	(IsFalse): Ditto.
+	(GetCstInteger): Ditto.
+	(AreConstantsEqual): Ditto.
+	(AreRealOrComplexConstantsEqual): Ditto.
+	(DetermineSign): Ditto.
+	(BuildCap): Ditto.
+	(BuildAbs): Ditto.
+	(BuildRe): Ditto.
+	(BuildIm): Ditto.
+	(BuildCmplx): Ditto.
+	(BuildBinaryForeachWordDo): Ditto.
+	(BuildBinarySetDo): Ditto.
+	(ConstantExpressionWarning): Ditto.
+	(BuildAddAddress): Ditto.
+	(calcNbits): Ditto.
+	(OverflowZType): Ditto.
+	(BuildCondIfExpression): Ditto.
+	* gm2-gcc/m2linemap.def (CDataTypes): Import ConstCharStar.
+	* gm2-gcc/m2misc.def (m2tree): Replace with ...
+	(gcctypes): ... this.
+	(DebugTree): Replace Tree with tree.
+	* gm2-gcc/m2pp.def (m2tree): Replace with ...
+	(gcctypes): ... this.
+	(DumpGimpleFd): Replace Tree with tree.
+	* gm2-gcc/m2statement.cc (m2statement_BuildBuiltinCallTree):
+	Remove unused location parameter.
+	* gm2-gcc/m2statement.def (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	(CDataTypes): Import CharStar.
+	(DoJump): Replace Tree with tree.
+	Replace ADDRESS with CharStar.
+	(BuildStartFunctionCode): Replace Tree with tree.
+	(BuildEndFunctionCode): Ditto.
+	(BuildReturnValueCode): Ditto.
+	(BuildAssignmentTree): Ditto.
+	(BuildAssignmentStatement): Ditto.
+	(BuildGoto): Ditto.
+	(DeclareLabel): Ditto.
+	(BuildIfThenDoEnd): Ditto.
+	(BuildIfThenElseEnd): Ditto.
+	(BuildParam): Ditto.
+	(BuildFunctionCallTree): Ditto.
+	(BuildProcedureCallTree): Ditto.
+	(BuildIndirectProcedureCallTree): Ditto.
+	(BuildFunctValue): Ditto.
+	(BuildCall2): Ditto.
+	(BuildCall3): Ditto.
+	(SetLastFunction): Ditto.
+	(GetLastFunction): Ditto.
+	(GetParamTree): Ditto.
+	(BuildTryFinally): Ditto.
+	(BuildCleanUp): Ditto.
+	(BuildAsm): Ditto.
+	(BuildUnaryForeachWordDo): Ditto.
+	(BuildExcludeVarConst): Ditto.
+	(BuildExcludeVarVar): Ditto.
+	(BuildIncludeVarConst): Ditto.
+	(BuildIncludeVarVar): Ditto.
+	(BuildStart): Ditto.
+	(BuildEnd): Ditto.
+	(BuildCallInner): Ditto.
+	(BuildBuiltinCallTree):  Remove unused location parameter.
+	* gm2-gcc/m2statement.h (m2statement_BuildBuiltinCallTree): Remove
+	unused location parameter.
+	* gm2-gcc/m2tree.def (gcctypes): Import tree.
+	(IsAConstant): Replace Tree with tree.
+	(IsOrdinal): Ditto.
+	(IsTreeOverflow): Ditto.
+	(skip_const_decl): Ditto.
+	(skip_type_decl): Ditto.
+	(is_type): Ditto.
+	(is_array): Ditto.
+	(is_var): Ditto.
+	(debug_tree): Ditto.
+	(IstreeOverflow): Ditto.
+	* gm2-gcc/m2treelib.def (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	(get_set_address_if_var): Ditto.
+	(get_set_field_rhs): Ditto.
+	(get_set_field_lhs): Ditto.
+	(get_set_address): Ditto.
+	(get_set_value): Ditto.
+	(get_field_no): Ditto.
+	(get_rvalue): Ditto.
+	(DoCall): Ditto.
+	(build_modify_expr): Ditto.
+	(do_jump_if_bit): Ditto.
+	* gm2-gcc/m2type.def (m2linemap): Replace with ...
+	(gcctypes): ... this.
+	(m2tree): Remove.
+	(CDataTypes): Import ConstCharStar and charStar.
+	(ValueInTypeRange): Replace Tree with tree.
+	(ValueOutOfTypeRange): Ditto.
+	(ExceedsTypeRange): Ditto.
+	(WithinTypeRange): Ditto.
+	(BuildSubrangeType): Ditto.
+	(BuildCharConstant): Ditto.
+	(BuildCharConstantChar): Ditto.
+	(BuildArrayConstructorElement): Ditto.
+	(BuildEndArrayConstructor): Ditto.
+	(BuildStartArrayConstructor): Ditto.
+	(BuildRecordConstructorElement): Ditto.
+	(BuildEndRecordConstructor): Ditto.
+	(BuildStartRecordConstructor): Ditto.
+	(BuildEndSetConstructor): Ditto.
+	(BuildSetConstructorElement): Ditto.
+	(BuildStartSetConstructor): Ditto.
+	(BuildSetType): Ditto.
+	(BuildConstPointerType): Ditto.
+	(BuildPointerType): Ditto.
+	(BuildEnumerator): Ditto.
+	(BuildEndEnumeration): Ditto.
+	(BuildStartEnumeration): Ditto.
+	(BuildTypeDeclaration): Ditto.
+	(GetMaxFrom): Ditto.
+	(GetMinFrom): Ditto.
+	(GetDefaultType): Ditto.
+	(BuildEndType): Ditto.
+	(BuildStartType): Ditto.
+	(BuildVariableArrayAndDeclare): Ditto.
+	(BuildProcTypeParameterDeclaration): Ditto.
+	(BuildStartFunctionType): Ditto.
+	(BuildEndFunctionType): Ditto.
+	(GetTreeType): Ditto.
+	(DeclareKnownType): Ditto.
+	(GetM2ZType): Ditto.
+	(GetM2RType): Ditto.
+	(BuildSetTypeFromSubrange): Ditto.
+	(BuildSmallestTypeRange): Ditto.
+	(GetBooleanType): Ditto.
+	(GetBooleanFalse): Ditto.
+	(GetBooleanTrue): Ditto.
+	(GetPackedBooleanType): Ditto.
+	(GetCharType): Ditto.
+	(GetByteType): Ditto.
+	(GetVoidType): Ditto.
+	(GetBitnumType): Ditto.
+	(GetRealType): Ditto.
+	(GetLongRealType): Ditto.
+	(GetShortRealType): Ditto.
+	(GetLongIntType): Ditto.
+	(GetPointerType): Ditto.
+	(GetCardinalType): Ditto.
+	(GetIntegerType): Ditto.
+	(GetWordType): Ditto.
+	(GetM2CardinalType): Ditto.
+	(GetBitsetType): Ditto.
+	(GetM2CType): Ditto.
+	(GetProcType): Ditto.
+	(GetM2ComplexType): Ditto.
+	(GetM2LongComplexType): Ditto.
+	(GetM2ShortComplexType): Ditto.
+	(GetM2Complex128): Ditto.
+	(GetM2Complex96): Ditto.
+	(GetM2Complex64): Ditto.
+	(GetM2Complex32): Ditto.
+	(GetM2Real128): Ditto.
+	(GetM2Real96): Ditto.
+	(GetM2Real64): Ditto.
+	(GetM2Real32): Ditto.
+	(GetM2Bitset32): Ditto.
+	(GetM2Bitset16): Ditto.
+	(GetM2Bitset8): Ditto.
+	(GetM2Word64): Ditto.
+	(GetM2Word32): Ditto.
+	(GetM2Word16): Ditto.
+	(GetM2Cardinal64): Ditto.
+	(GetM2Cardinal32): Ditto.
+	(GetM2Cardinal16): Ditto.
+	(GetM2Cardinal8): Ditto.
+	(GetM2Integer64): Ditto.
+	(GetM2Integer32): Ditto.
+	(GetM2Integer16): Ditto.
+	(GetM2Integer8): Ditto.
+	(GetISOLocType): Ditto.
+	(GetISOByteType): Ditto.
+	(GetISOWordType): Ditto.
+	(GetShortCardType): Ditto.
+	(GetM2ShortCardType): Ditto.
+	(GetShortIntType): Ditto.
+	(GetM2ShortIntType): Ditto.
+	(GetM2LongCardType): Ditto.
+	(GetM2LongIntType): Ditto.
+	(GetM2LongRealType): Ditto.
+	(GetM2RealType): Ditto.
+	(GetM2ShortRealType): Ditto.
+	(GetM2IntegerType): Ditto.
+	(GetM2CharType): Ditto.
+	(GetCSizeTType): Ditto.
+	(GetCSSizeTType): Ditto.
+	(BuildArrayStringConstructor): Ditto.
+	(RealToTree): Ditto.
+	(BuildStartRecord): Ditto.
+	(BuildStartUnion): Ditto.
+	(BuildStartVarient): Ditto.
+	(BuildEndVarient): Ditto.
+	(BuildStartFieldVarient): Ditto.
+	(BuildEndFieldVarient): Ditto.
+	(BuildStartFieldRecord): Ditto.
+	(BuildFieldRecord): Ditto.
+	(ChainOn): Ditto.
+	(ChainOnParamValue): Ditto.
+	(AddStringToTreeList): Ditto.
+	(BuildEndRecord): Ditto.
+	(SetAlignment): Ditto.
+	(SetDeclPacked): Ditto.
+	(SetTypePacked): Ditto.
+	(SetRecordFieldOffset): Ditto.
+	(BuildPackedFieldRecord): Ditto.
+	(BuildNumberOfArrayElements): Ditto.
+	(AddStatement): Ditto.
+	(MarkFunctionReferenced): Ditto.
+	(BuildArrayIndexType): Ditto.
+	(GetArrayNoOfElements): Ditto.
+	(BuildEndArrayType): Ditto.
+	(PutArrayType): Ditto.
+	(BuildStartArrayType): Ditto.
+	(IsAddress): Ditto.
+	(SameRealType): Ditto.
+	* m2.flex (Gm2linemap.h): Include.
+	* mc-boot/GDynamicStrings.cc: Rebuild.
+	* mc-boot/GFIO.cc: Ditto.
+	* mc-boot/GIndexing.cc: Ditto.
+	* mc-boot/GM2Dependent.cc: Ditto.
+	* mc-boot/GSArgs.cc: Ditto.
+	* mc-boot/GStringConvert.cc: Ditto.
+	* mc-boot/Gdecl.cc: Ditto.
+	* mc-boot/Gdecl.h: Ditto.
+	* mc-boot/Gdtoa.h: Ditto.
+	* mc-boot/Gkeyc.cc: Ditto.
+	* mc-boot/Gkeyc.h: Ditto.
+	* mc-boot/Glibc.h: Ditto.
+	* mc-boot/GmcComp.cc: Ditto.
+	* mc-boot/GmcLexBuf.cc: Ditto.
+	* mc-boot/GmcPreprocess.cc: Ditto.
+	* mc-boot/GmcStream.cc: Ditto.
+	* mc-boot/Gmcp1.cc: Ditto.
+	* mc-boot/Gmcp3.cc: Ditto.
+	* mc-boot/Gmcp4.cc: Ditto.
+	* mc-boot/Gmcp5.cc: Ditto.
+	* mc-boot/GnameKey.cc: Ditto.
+	* mc-boot/Gvarargs.cc: Ditto.
+	* mc/decl.def (putDefUnqualified): New procedure function.
+	(isDefUnqualified): Ditto.
+	* mc/decl.mod (defT): Add unqualified field.
+	(charStarN): New variable.
+	(constCharStarN): Ditto.
+	(checkGccType): New procedure.
+	(checkCDataTypes): Ditto.
+	(import): Call checkGccType and checkCDataTypes.
+	(putDefUnqualified): New procedure function.
+	(isDefUnqualified): Ditto.
+	* mc/keyc.def (useGccTree): New procedure.
+	(useGccLocation): Ditto.
+	* mc/keyc.mod (checkGccConfigSystem): Call checkGccConfigSystem.
+	(useGccTree): New procedure.
+	(useGccLocation): Ditto.
+	* mc/mcp1.bnf (decl): Import putDefUnqualified.
+	(Export): Call putDefUnqualified.
+	* gm2-gcc/CDataTypes.def: New file.
+	* gm2-gcc/gcctypes.def: New file.
+
+2024-11-29  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-09-02  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116557
+	* gm2-lang.cc: Replace physical address with URL in GPL header.
+	* gm2-lang.h: Ditto.
+	* images/LICENSE.IMG: Ditto.
+	* m2-tree.def: Ditto.
+	* mc-boot/GIndexing.cc: Ditto.
+	* mc-boot/Gkeyc.cc: Ditto.
+	* mc-boot/Glists.cc: Ditto.
+	* mc-boot/GmcComp.cc: Ditto.
+	* mc-boot/GmcDebug.cc: Ditto.
+	* mc-boot/GmcFileName.cc: Ditto.
+	* mc-boot/GmcMetaError.cc: Ditto.
+	* mc-boot/GmcOptions.cc: Ditto.
+	* mc-boot/GmcPreprocess.cc: Ditto.
+	* mc-boot/GmcPretty.cc: Ditto.
+	* mc-boot/GmcPrintf.cc: Ditto.
+	* mc-boot/GmcQuiet.cc: Ditto.
+	* mc-boot/GmcReserved.cc: Ditto.
+	* mc-boot/GmcSearch.cc: Ditto.
+	* mc-boot/GmcStack.cc: Ditto.
+	* mc/Indexing.mod: Ditto.
+	* mc/keyc.mod: Ditto.
+	* mc/lists.mod: Ditto.
+	* mc/mcComp.mod: Ditto.
+	* mc/mcDebug.mod: Ditto.
+	* mc/mcFileName.mod: Ditto.
+	* mc/mcMetaError.mod: Ditto.
+	* mc/mcOptions.mod: Ditto.
+	* mc/mcPreprocess.mod: Ditto.
+	* mc/mcPretty.mod: Ditto.
+	* mc/mcPrintf.mod: Ditto.
+	* mc/mcQuiet.mod: Ditto.
+	* mc/mcReserved.mod: Ditto.
+	* mc/mcSearch.mod: Ditto.
+	* mc/mcStack.mod: Ditto.
+	* tools-src/buildpg: Ditto.
+	* tools-src/calcpath: Ditto.
+	* tools-src/checkmeta.py: Ditto.
+	* tools-src/def2doc.py: Ditto.
+	* tools-src/makeSystem: Ditto.
+	* tools-src/tidydates.py: Ditto.
+
+2024-11-29  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-08-30  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116181
+	* pge-boot/GM2RTS.h: Regenerate.
+	* pge-boot/m2rts.h: Ditto.
+
+2024-11-29  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-08-28  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116181
+	* Make-lang.in (MC_SRC_FLAGS): New macro.
+	(m2/mc-boot/$(SRC_PREFIX)%.o): Use MC_SRC_FLAGS.
+	(m2/mc-boot-ch/$(SRC_PREFIX)%.o): Ditto.
+	(m2/gm2-libs-boot/M2RTS.o): Ditto.
+	(m2/gm2-libs-boot/%.o): Ditto.
+	(GM2-LIBS-BOOT-H): New macro.
+	(m2/gm2-libs-boot/RTcodummy.o): Use MC_SRC_FLAGS.
+	Remove gm2-libs-host.h from the dependancy.
+	(m2/gm2-libs-boot/wrapc.o): Use MC_SRC_FLAGS.
+	Add dependancy GM2-LIBS-BOOT-H.
+	(m2/gm2-libs-boot/UnixArgs.o): Ditto.
+	(m2/gm2-libs-boot/choosetemp.o): Ditto.
+	(m2/gm2-libs-boot/errno.o): Ditto.
+	(m2/gm2-libs-boot/dtoa.o): Ditto.
+	(m2/gm2-libs-boot/ldtoa.o): Ditto.
+	(m2/gm2-libs-boot/termios.o): Ditto.
+	(m2/gm2-libs-boot/SysExceptions.o): Ditto.
+	(m2/gm2-compiler-boot/M2GCCDeclare.o): Add gm2-libs-ch to the
+	search path.
+	(m2/gm2-compiler-boot/M2Error.o): Ditto.
+	(m2/gm2-compiler-boot/%.o): Ditto.
+	(m2/pge-boot/%.o): Ditto.
+	* gm2-gcc/m2color.cc (m2color_colorize_start): Replace parameter
+	type char to void and recast to char * when calling colorize_start.
+	* gm2-gcc/m2color.h (m2color_colorize_start): Replace parameter
+	type char to void.
+	* gm2-gcc/m2type.h: Remove #if 0 block.
+	* gm2-libs-ch/SysExceptions.c (DECL_PROC_T): Provide alternative
+	defines for MC an gm2.
+	(PROC_FUNC): Ditto.
+	(EXTERN): Force undefine and redefine.
+	(SysExceptions_InitExceptionHandlers): Rewrite function
+	declaration using defined macros.
+	(_M2_SysExceptions_init): Use EXTERN.
+	(_M2_SysExceptions_finish): Replace with ...
+	(_M2_SysExceptions_fini): ... this and add parameters.
+	* gm2-libs-ch/UnixArgs.cc (gm2-libs-host.h): Include.
+	(GUnixArgs.h): Include.
+	(GM2RTS.h): Include.
+	(UnixArgs_GetArgV): Change return type to void *.
+	(UnixArgs_GetEnvV): Ditto.
+	* gm2-libs-ch/m2rts.h (M2RTS_RegisterModule_Cstr): Add new
+	conditional macro.
+	(M2RTS_RequestDependant): Remove.
+	(M2RTS_RegisterModule): Ditto.
+	(M2RTS_Terminate): Ditto.
+	(M2RTS_DeconstructModules): Ditto.
+	(M2RTS_Halt): Ditto.
+	(_M2_M2RTS_init): Ditto.
+	(M2RTS_ConstructModules): Ditto.
+	* gm2-libs-ch/termios.c (_termios_C): Define.
+	(EXTERN): Add conditional definition.
+	(doSetUnset): New function.
+	(_M2_termios_init): Add correct parameters.
+	(_M2_termios_finish): Ditto.
+	(_M2_termios_fini): Ditto.
+	* mc-boot-ch/GSysExceptions.c (DECL_PROC_T): New define.
+	(PROC_FUNC): Ditto.
+	(EXTERN): Force undef.
+	(SysExceptions_InitExceptionHandlers): Rewrite.
+	* mc-boot-ch/Glibc.c (libc_open): Rename parameter
+	oflag to flags.
+	* mc-boot-ch/Gtermios.cc (_termios_C): New define.
+	(KillTermios): Change parameter type from
+	struct termios * to termios_TERMIOS.
+	(tcsnow): Rewrite.
+	(tcsnow): Rewrite.
+	(tcsdrain): Rewrite.
+	(tcsflush): Rewrite.
+	(cfgetospeed): Rewrite.
+	(cfgetispeed): Rewrite.
+	(cfsetospeed): Rewrite.
+	(cfsetispeed): Rewrite.
+	(cfsetspeed): Rewrite.
+	(cfsetspeed): Rewrite.
+	(tcgetattr): Rewrite.
+	(tcsetattr): Rewrite.
+	(cfmakeraw): Rewrite.
+	(tcsendbreak): Rewrite.
+	(tcdrain): Rewrite.
+	(tcflushi): Rewrite.
+	(tcflusho): Rewrite.
+	(tcflushio): Rewrite.
+	(tcflowoni): Rewrite.
+	(tcflowoffi): Rewrite.
+	(tcflowono): Rewrite.
+	(tcflowoffo): Rewrite.
+	(GetFlag): Rewrite.
+	(SetFlag): Rewrite.
+	(GetChar): Rewrite.
+	(SetChar): Rewrite.
+	(InitTermios): Rewrite.
+	* pge-boot/GM2RTS.cc: Regenerate.
+	* pge-boot/GSysExceptions.cc: Ditto.
+	* pge-boot/Gtermios.cc: Ditto.
+	* pge-boot/m2rts.h: Rewrite.
+	* mc-boot-ch/GSYSTEM.h: New file.
+	* mc-boot-ch/GSysExceptions.h: New file.
+	* mc-boot-ch/Gtermios.h: New file.
+
 2024-11-26  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e9c91b6bac3..57d79f426e1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,59 @@
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-11-18  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117594
+	* gcc.dg/vect/pr117594.c: New testcase.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-11-20  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117574
+	* gcc.dg/torture/pr117574-1.c: New testcase.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-11-05  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/117433
+	* gcc.dg/pr117433.c: New testcase.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-11-12  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117417
+	* gcc.dg/torture/pr117417.c: New testcase.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-29  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117333
+	* gcc.dg/torture/pr117333.c: New testcase.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-28  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117307
+	* gcc.dg/vect/pr117307.c: New testcase.
+
+2024-11-29  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-22  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117254
+	* gcc.dg/pr117254.c: New testcase.
+
 2024-11-28  Martin Jambor  <mjambor@suse.cz>
 
 	Backported from master:

commit 7b22d9cb9b89cb52e2f846f5cbfc1feff39d7a45
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Sat Nov 30 02:22:37 2024 +0000

    [PATCH] modula2: gcc/m2/Make-lang.in fix includes during bootstrap build
    
    This patch fixes the include directories used when building objects in
    gm2-compiler-boot.  It adds the missing gm2-gcc directory and uses a
    new variable GM2_BOOT_INCLUDES for all gm2-compiler-boot rules.
    
    gcc/m2/ChangeLog:
    
            * Make-lang.in (GM2_BOOT_INCLUDES): New variable.
            (m2/gm2-compiler-boot/M2GCCDeclare.o): Rewrite to use
            GM2_BOOT_INCLUDES.
            (m2/gm2-compiler-boot/M2Error.o): Ditto.
            (m2/gm2-compiler-boot/%.o): Ditto.
    
    (cherry picked from commit 58bc39c73ca9aeca3d62d2d963be0121d0efeeac)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index b1e946f8ed9..02754e98c57 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -1428,6 +1428,15 @@ GM2GCC = -I$(srcdir)/m2 -Im2 -I$(srcdir)/m2/gm2-gcc -Im2/gm2-gcc
 
 MCINCLUDES= -I$(srcdir)/m2/mc-boot-ch
 LOCAL_INCLUDES = -I. -I$(srcdir)/../include -I$(srcdir)
+GM2_BOOT_INCLUDES=-I. \
+  -I$(srcdir)/../include \
+  -I$(srcdir) \
+  -Im2/gm2-libs-boot \
+  -I$(srcdir)/m2/gm2-libs-ch \
+  -Im2/gm2-compiler-boot \
+  -I$(srcdir)m2/gm2-gcc \
+  -Im2/gm2-libiberty \
+  -I$(srcdir)/m2/gm2-libiberty
 
 GCC_COLOR=m2/gm2-gcc/m2color.o diagnostic-color.o
 
@@ -1553,37 +1562,28 @@ m2/gm2-compiler-boot/M2GCCDeclare.o: $(srcdir)/m2/gm2-compiler/M2GCCDeclare.mod
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
 	$(MC) $(MC_EXTENDED_OPAQUE) -o=m2/gm2-compiler-boot/M2GCCDeclare.c $<
 	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
-            -I. -I$(srcdir)/../include -I$(srcdir) \
-            -I. -Im2/gm2-libs-boot -I$(srcdir)/m2/gm2-libs-ch -Im2/gm2-compiler-boot \
-            -I$(srcdir)/m2/gm2-libiberty $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/M2GCCDeclare.c -o $@
+            $(GM2_BOOT_INCLUDES) $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/M2GCCDeclare.c -o $@
 	$(POSTCOMPILE)
 
 m2/gm2-compiler-boot/M2Error.o: $(srcdir)/m2/gm2-compiler/M2Error.mod $(MCDEPS) $(BUILD-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
 	$(MC) $(MC_EXTENDED_OPAQUE) -o=m2/gm2-compiler-boot/M2Error.c $<
 	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
-            -I. -I$(srcdir)/../include -I$(srcdir) \
-            -I. -Im2/gm2-libs-boot -I$(srcdir)/m2/gm2-libs-ch -Im2/gm2-compiler-boot \
-            -I$(srcdir)/m2/gm2-libiberty $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/M2Error.c -o $@
+            $(GM2_BOOT_INCLUDES) $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/M2Error.c -o $@
 	$(POSTCOMPILE)
 
 m2/gm2-compiler-boot/%.o: $(srcdir)/m2/gm2-compiler/%.mod $(BUILD-BOOT-H) $(MCDEPS) $(BUILD-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
 	$(MC) -o=m2/gm2-compiler-boot/$*.c $(srcdir)/m2/gm2-compiler/$*.mod
 	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
-            -I. -I$(srcdir)/../include -I$(srcdir) \
-            -I. -Im2/gm2-libs-boot -I$(srcdir)/m2/gm2-libs-ch -Im2/gm2-compiler-boot -Im2/gm2-libiberty \
-            -I$(srcdir)/m2/gm2-libiberty $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/$*.c -o $@
+            $(GM2_BOOT_INCLUDES) $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/$*.c -o $@
 	$(POSTCOMPILE)
 
 m2/gm2-compiler-boot/%.o: m2/gm2-compiler-boot/%.mod $(MCDEPS) $(BUILD-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
 	$(MC) -o=m2/gm2-compiler-boot/$*.c m2/gm2-compiler-boot/$*.mod
 	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
-            -I. -I$(srcdir)/../include -I$(srcdir) \
-            -I. -Im2/gm2-libs-boot -Im2/gm2-compiler-boot \
-            -I$(srcdir)/m2/gm2-libs-ch \
-            -I$(srcdir)/m2/gm2-libiberty $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/$*.c -o $@
+            $(GM2_BOOT_INCLUDES) $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/$*.c -o $@
 	$(POSTCOMPILE)
 
 m2/gm2-compiler-boot/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-compiler/%.def $(MCDEPS)
@@ -1595,8 +1595,7 @@ m2/gm2-compiler-boot/m2flex.o: m2/gm2-compiler/m2flex.c $(BUILD-BOOT-H) $(TIMEVA
         $(CONFIG_H) m2/gm2config.h $(TARGET_H) $(PLUGIN_HEADERS)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
 	$(COMPILER) $(CM2DEP) -c -g $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-          $(GM2GCC) $(INCLUDES) -I$(srcdir)/m2 \
-          -Im2 -Im2/gm2-compiler-boot -Im2/gm2-libs-boot $< -o $@
+          $(GM2GCC) $(INCLUDES) $(GM2_BOOT_INCLUDES) $< -o $@
 	$(POSTCOMPILE)
 
 m2/gm2-compiler/m2flex.c: $(srcdir)/m2/m2.flex $(TIMEVAR_H) insn-attr-common.h

commit dd1d74cb548428f5928c10f7d3ba2b3cdd5ddc80
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Wed Nov 13 08:57:55 2024 +0000

    Fortran: Fix failing character pointer fcn assignment [PR105054]
    
    2024-11-14  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/105054
            * resolve.cc (get_temp_from_expr): If the pointer function has
            a deferred character length, generate a new deferred charlen
            for the temporary.
    
    gcc/testsuite/
            PR fortran/105054
            * gfortran.dg/ptr_func_assign_6.f08: New test.
    
    (cherry picked from commit f530a8c61383b174a476b64f46d56adeedf49dc4)

diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index 1488e9e3823..4c7463168a0 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -12452,6 +12452,17 @@ resolve_ptr_fcn_assign (gfc_code **code, gfc_namespace *ns)
   tmp_ptr_expr->symtree->n.sym->attr.allocatable = 0;
   tmp_ptr_expr->where = (*code)->loc;
 
+  /* A new charlen is required to ensure that the variable string length
+     is different to that of the original lhs for deferred results.  */
+  if (s->result->ts.deferred && tmp_ptr_expr->ts.type == BT_CHARACTER)
+    {
+      tmp_ptr_expr->ts.u.cl = gfc_get_charlen();
+      tmp_ptr_expr->ts.deferred = 1;
+      tmp_ptr_expr->ts.u.cl->next = gfc_current_ns->cl_list;
+      gfc_current_ns->cl_list = tmp_ptr_expr->ts.u.cl;
+      tmp_ptr_expr->symtree->n.sym->ts.u.cl = tmp_ptr_expr->ts.u.cl;
+    }
+
   this_code = build_assignment (EXEC_ASSIGN,
 				tmp_ptr_expr, (*code)->expr2,
 				NULL, NULL, (*code)->loc);
diff --git a/gcc/testsuite/gfortran.dg/ptr_func_assign_6.f08 b/gcc/testsuite/gfortran.dg/ptr_func_assign_6.f08
new file mode 100644
index 00000000000..d62815d7afa
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/ptr_func_assign_6.f08
@@ -0,0 +1,89 @@
+! { dg-do run }
+!
+! Test the fix for PR105054.
+!
+! Contributed by Arjen Markus  <arjen.markus895@gmail.com>
+!
+module string_pointers
+    implicit none
+    character(len=20), dimension(10), target :: array_strings
+    character(len=:), dimension(:), target, allocatable :: array_strings2
+
+contains
+
+function pointer_to_string( i , flag)
+     integer, intent(in) :: i, flag
+
+     character(len=:), pointer :: pointer_to_string
+
+     if (flag == 1) then
+       pointer_to_string => array_strings(i)
+       return
+     endif
+
+     if (.not.allocated (array_strings2)) allocate (array_strings2(4), &
+                                                    mold = '        ')
+     pointer_to_string => array_strings2(i)
+end function pointer_to_string
+
+function pointer_to_string2( i , flag) result (res)
+     integer, intent(in) :: i, flag
+
+     character(len=:), pointer :: res
+
+     if (flag == 1) then
+       res => array_strings(i)
+       return
+     endif
+
+     if (.not.allocated (array_strings2)) allocate (array_strings2(4), &
+                                                    mold = '        ')
+     res => array_strings2(i)
+end function pointer_to_string2
+
+end module string_pointers
+
+program chk_string_pointer
+    use string_pointers
+    implicit none
+    integer :: i
+    character(*), parameter :: chr(4) = ['1234      ','ABCDefgh  ', &
+                                         '12345678  ','          ']
+
+    pointer_to_string(1, 1) = '1234567890'
+    pointer_to_string(2, 1) = '12345678901234567890'
+
+    if (len(pointer_to_string(3, 1)) /= 20) stop 1
+
+    array_strings(1) = array_strings(1)(1:4) // 'ABC'
+    if (pointer_to_string(1, 1) /= '1234ABC') stop 2
+
+    pointer_to_string(1, 2) = '1234'
+    pointer_to_string(2, 2) = 'ABCDefgh'
+    pointer_to_string(3, 2) = '12345678'
+
+    do i = 1, 3
+      if (trim (array_strings2(i)) /= trim(chr(i))) stop 3
+    enddo
+
+! Clear the target arrays
+    array_strings = repeat (' ', 20)
+    deallocate (array_strings2)
+
+! Repeat with an explicit result.
+    pointer_to_string2(1, 1) = '1234567890'
+    pointer_to_string2(2, 1) = '12345678901234567890'
+
+    if (len(pointer_to_string(3, 1)) /= 20) stop 4
+
+    array_strings(1) = array_strings(1)(1:4) // 'ABC'
+    if (pointer_to_string(1, 1) /= '1234ABC') stop 5
+
+    pointer_to_string2(1, 2) = '1234'
+    pointer_to_string2(2, 2) = 'ABCDefgh'
+    pointer_to_string2(3, 2) = '12345678'
+
+    do i = 1, 3
+      if (trim (array_strings2(i)) /= trim(chr(i))) stop 6
+    enddo
+end program chk_string_pointer

commit b67efb62cfd1d12e1c979729983777ab6e3fa58b
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Dec 1 00:26:11 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index fd179292ccd..8b81eb36155 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241130
+20241201
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index c1731fc8bb0..0b7acbf75f2 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,13 @@
+2024-11-30  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-13  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/105054
+	* resolve.cc (get_temp_from_expr): If the pointer function has
+	a deferred character length, generate a new deferred charlen
+	for the temporary.
+
 2024-11-27  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 5f16df4ad88..ff88ed6dd87 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,14 @@
+2024-11-30  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-09-16  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* Make-lang.in (GM2_BOOT_INCLUDES): New variable.
+	(m2/gm2-compiler-boot/M2GCCDeclare.o): Rewrite to use
+	GM2_BOOT_INCLUDES.
+	(m2/gm2-compiler-boot/M2Error.o): Ditto.
+	(m2/gm2-compiler-boot/%.o): Ditto.
+
 2024-11-29  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 57d79f426e1..f85bea2a901 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-11-30  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-13  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/105054
+	* gfortran.dg/ptr_func_assign_6.f08: New test.
+
 2024-11-29  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:

commit 92ed383eb0bfa0df8d066a0c282ff266816d495f
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Sun Dec 1 14:41:40 2024 +0000

    [PATCH] modula2: Remove unused parameter warnings seen in build
    
    This patch removes unused parameters in gm2-compiler/M2Check.mod.
    It also removes a --fixme-- and completes the missing code
    which type checks unbounded arrays.  The patch also fixes a
    build error seen when building m2/stage2/cc1gm2.
    
    gcc/m2/ChangeLog:
    
            * gm2-compiler/M2Check.mod (checkUnboundedArray): New
            procedure function.
            (checkUnboundedUnbounded): Ditto.
            (checkUnbounded): Rewrite to check the unbounded data
            type.
            (checkPair): Add comment.
            (doCheckPair): Add comment.
            Remove tinfo parameter from the call to checkTypeKindViolation.
            (checkTypeKindViolation): Remove ununsed parameter tinfo.
            * gm2-libs-ch/UnixArgs.cc (GM2RTS.h): Remove include.
            * gm2-libs-ch/m2rts.h (M2RTS_INIT): New define.
            (M2RTS_DEP): Ditto.
            (M2RTS_RegisterModule): New prototype.
            (GM2RTS.h): Add include to the MC_M2 block.
    
    gcc/testsuite/ChangeLog:
    
            * gm2/iso/fail/testarrayunbounded2.mod: New test.
            * gm2/iso/fail/testarrayunbounded3.mod: New test.
            * gm2/iso/fail/testarrayunbounded4.mod: New test.
            * gm2/iso/fail/testarrayunbounded5.mod: New test.
            * gm2/iso/fail/testarrayunbounded6.mod: New test.
            * gm2/iso/pass/testarrayunbounded.mod: New test.
    
    (cherry picked from commit 2828ec526eaf5612178b62d48bfd8443c7ecd674)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2Check.mod b/gcc/m2/gm2-compiler/M2Check.mod
index 1750fe07ecf..d096646c387 100644
--- a/gcc/m2/gm2-compiler/M2Check.mod
+++ b/gcc/m2/gm2-compiler/M2Check.mod
@@ -48,7 +48,7 @@ FROM SymbolTable IMPORT NulSym, IsRecord, IsSet, GetDType, GetSType, IsType,
                         GetMode, GetType, IsUnbounded, IsComposite, IsConstructor,
                         IsParameter, IsConstString, IsConstLitInternal, IsConstLit,
                         GetStringLength, GetProcedureProcType, IsHiddenType,
-                        IsHiddenReallyPointer ;
+                        IsHiddenReallyPointer, GetDimension ;
 
 FROM M2GCCDeclare IMPORT GetTypeMin, GetTypeMax ;
 FROM M2System IMPORT Address ;
@@ -259,12 +259,93 @@ BEGIN
 END checkSubrange ;
 
 
+(*
+   checkUnboundedArray - returns status if unbounded is parameter compatible with array.
+                         It checks all type equivalences of the static array for a
+                         match with the dynamic (unbounded) array.
+*)
+
+PROCEDURE checkUnboundedArray (result: status;
+                               unbounded, array: CARDINAL) : status ;
+VAR
+   dim   : CARDINAL ;
+   ubtype,
+   type  : CARDINAL ;
+BEGIN
+   (* Firstly check to see if we have resolved this as false.  *)
+   IF isFalse (result)
+   THEN
+      RETURN result
+   ELSE
+      Assert (IsUnbounded (unbounded)) ;
+      Assert (IsArray (array)) ;
+      dim := GetDimension (unbounded) ;
+      ubtype := GetType (unbounded) ;
+      type := array ;
+      REPEAT
+         type := GetType (type) ;
+         DEC (dim) ;
+         (* Check type equivalences.  *)
+         IF checkTypeEquivalence (result, type, ubtype) = true
+         THEN
+            RETURN true
+         END ;
+         type := SkipType (type) ;
+         (* If we have run out of dimensions we conclude false.  *)
+         IF dim = 0
+         THEN
+            RETURN false
+         END ;
+      UNTIL NOT IsArray (type)
+   END ;
+   RETURN false
+END checkUnboundedArray ;
+
+
+(*
+   checkUnboundedUnbounded - check to see if formal and actual are compatible.
+                             Both are unbounded parameters.
+*)
+
+PROCEDURE checkUnboundedUnbounded (result: status;
+                                   tinfo: tInfo;
+                                   formal, actual: CARDINAL) : status ;
+BEGIN
+   (* Firstly check to see if we have resolved this as false.  *)
+   IF isFalse (result)
+   THEN
+      RETURN result
+   ELSE
+      Assert (IsUnbounded (formal)) ;
+      Assert (IsUnbounded (actual)) ;
+      (* The actual parameter above might be a different symbol to the actual parameter
+         symbol in the tinfo.  So we must compare the original actual parameter against
+         the formal.
+         The actual above maybe a temporary which is created after derefencing an array.
+         For example 'bar[10]' where bar is defined as ARRAY OF ARRAY OF CARDINAL.
+         The GetDimension for 'bar[10]' is 1 indicating that one dimension has been
+         referenced.  We use GetDimension for 'bar' which is 2.  *)
+      IF GetDimension (formal) # GetDimension (tinfo^.actual)
+      THEN
+         RETURN false
+      END ;
+      IF checkTypeEquivalence (result, GetType (formal), GetType (actual)) = true
+      THEN
+         RETURN true
+      END
+   END ;
+   RETURN false
+END checkUnboundedUnbounded ;
+
+
 (*
    checkUnbounded - check to see if the unbounded is type compatible with right.
                     This is only allowed during parameter passing.
 *)
 
-PROCEDURE checkUnbounded (result: status; tinfo: tInfo; unbounded, right: CARDINAL) : status ;
+PROCEDURE checkUnbounded (result: status;
+                          tinfo: tInfo;
+                          unbounded, right: CARDINAL) : status ;
 BEGIN
    (* Firstly check to see if we have resolved this as false.  *)
    IF isFalse (result)
@@ -274,13 +355,32 @@ BEGIN
       Assert (IsUnbounded (unbounded)) ;
       IF tinfo^.kind = parameter
       THEN
-         (* --fixme-- we should check the unbounded data type against the type of right.  *)
-         RETURN true
-      ELSE
-         (* Not allowed to use an unbounded symbol (type) in an expression or assignment.  *)
-         RETURN false
+         (* Check the unbounded data type against the type of right, SYSTEM types
+            are compared by the caller, so no need to test for them again.  *)
+         IF isSkipEquivalence (GetType (unbounded), right)
+         THEN
+            RETURN true
+         ELSIF IsType (right)
+         THEN
+            IF GetType (right) = NulSym
+            THEN
+               (* Base type check.  *)
+               RETURN checkPair (result, tinfo, GetType (unbounded), right)
+            ELSE
+               (* It is safe to GetType (right) and we check the pair
+                  [unbounded, GetType (right)].  *)
+               RETURN checkPair (result, tinfo, unbounded, GetType (right))
+            END
+         ELSIF IsArray (right)
+         THEN
+            RETURN checkUnboundedArray (result, unbounded, right)
+         ELSIF IsUnbounded (right)
+         THEN
+            RETURN checkUnboundedUnbounded (result, tinfo, unbounded, right)
+         END
       END
-   END
+   END ;
+   RETURN false
 END checkUnbounded ;
 
 
@@ -527,7 +627,14 @@ END checkBaseEquivalence ;
 
 
 (*
-   checkPair -
+   checkPair - check whether left and right are type compatible.
+               It will update the visited, unresolved list before
+               calling the docheckPair for the cascaded type checking.
+               Pre-condition: tinfo is initialized.
+                              left and right are modula2 symbols.
+               Post-condition: tinfo visited, resolved, unresolved lists
+                               are updated and the result status is
+                               returned.
 *)
 
 PROCEDURE checkPair (result: status; tinfo: tInfo;
@@ -829,7 +936,7 @@ END checkSystemEquivalence ;
                             a set, record or array.
 *)
 
-PROCEDURE checkTypeKindViolation (result: status; tinfo: tInfo;
+PROCEDURE checkTypeKindViolation (result: status;
                                   left, right: CARDINAL) : status ;
 BEGIN
    IF isFalse (result) OR (result = visited)
@@ -849,7 +956,14 @@ END checkTypeKindViolation ;
 
 
 (*
-   doCheckPair -
+   doCheckPair - invoke a series of ordered type checks checking compatibility
+                 between left and right modula2 symbols.
+                 Pre-condition: left and right are modula-2 symbols.
+                                tinfo is configured.
+                 Post-condition: status is returned determining the
+                                 correctness of the type check.
+                                 The tinfo resolved, unresolved, visited
+                                 lists will be updated.
 *)
 
 PROCEDURE doCheckPair (result: status; tinfo: tInfo;
@@ -889,7 +1003,7 @@ BEGIN
                               result := checkTypeKindEquivalence (result, tinfo, left, right) ;
                               IF NOT isKnown (result)
                               THEN
-                                 result := checkTypeKindViolation (result, tinfo, left, right)
+                                 result := checkTypeKindViolation (result, left, right)
                               END
                            END
                         END
diff --git a/gcc/m2/gm2-libs-ch/UnixArgs.cc b/gcc/m2/gm2-libs-ch/UnixArgs.cc
index ae9765aed7e..850e49029e8 100644
--- a/gcc/m2/gm2-libs-ch/UnixArgs.cc
+++ b/gcc/m2/gm2-libs-ch/UnixArgs.cc
@@ -32,7 +32,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #include "gm2-libs-host.h"
 
 #include "GUnixArgs.h"
-#include "GM2RTS.h"
 
 static int UnixArgs_ArgC;
 static char **UnixArgs_ArgV;
diff --git a/gcc/m2/gm2-libs-ch/m2rts.h b/gcc/m2/gm2-libs-ch/m2rts.h
index df6cbcb2c8d..62217bb62e8 100644
--- a/gcc/m2/gm2-libs-ch/m2rts.h
+++ b/gcc/m2/gm2-libs-ch/m2rts.h
@@ -24,13 +24,16 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-#include "GM2RTS.h"
-
 #ifdef MC_M2
+#include "GM2RTS.h"
 /* mc sources do not register their init fini functions as they are
    initialized by a static scaffold (called by main).  */
 #define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep)
 #else
+#define M2RTS_INIT(X) void (*X)(int, char**, char**)
+#define M2RTS_DEP(X) void (*X)(void)
+extern "C" void M2RTS_RegisterModule (void * name, void * libname, M2RTS_INIT(init),
+				      M2RTS_INIT(fini), M2RTS_DEP(dependencies));
 #define M2RTS_RegisterModule_Cstr(MODNAME,LIBNAME,init,fini,dep) \
   M2RTS_RegisterModule (reinterpret_cast <void *> (const_cast <char *> (MODNAME)), \
 			reinterpret_cast <void *> (const_cast <char *> (LIBNAME)), \
diff --git a/gcc/testsuite/gm2/iso/fail/testarrayunbounded2.mod b/gcc/testsuite/gm2/iso/fail/testarrayunbounded2.mod
new file mode 100644
index 00000000000..78426713194
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/testarrayunbounded2.mod
@@ -0,0 +1,14 @@
+MODULE testarrayunbounded2 ;
+
+
+PROCEDURE foo (a: ARRAY OF ARRAY OF CARDINAL) ;
+BEGIN
+
+END foo ;
+
+
+VAR
+   b: ARRAY [0..10] OF CARDINAL ;
+BEGIN
+   foo (b)
+END testarrayunbounded2.
diff --git a/gcc/testsuite/gm2/iso/fail/testarrayunbounded3.mod b/gcc/testsuite/gm2/iso/fail/testarrayunbounded3.mod
new file mode 100644
index 00000000000..affbf5a2a6f
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/testarrayunbounded3.mod
@@ -0,0 +1,14 @@
+MODULE testarrayunbounded3 ;
+
+
+PROCEDURE foo (a: ARRAY OF CARDINAL) ;
+BEGIN
+
+END foo ;
+
+
+VAR
+   b: CARDINAL ;
+BEGIN
+   foo (b)
+END testarrayunbounded3.
diff --git a/gcc/testsuite/gm2/iso/fail/testarrayunbounded4.mod b/gcc/testsuite/gm2/iso/fail/testarrayunbounded4.mod
new file mode 100644
index 00000000000..4374cb3bef5
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/testarrayunbounded4.mod
@@ -0,0 +1,14 @@
+MODULE testarrayunbounded4 ;
+
+
+PROCEDURE foo (a: ARRAY OF CHAR) ;
+BEGIN
+
+END foo ;
+
+
+VAR
+   b: CHAR ;
+BEGIN
+   foo (b)
+END testarrayunbounded4.
diff --git a/gcc/testsuite/gm2/iso/fail/testarrayunbounded5.mod b/gcc/testsuite/gm2/iso/fail/testarrayunbounded5.mod
new file mode 100644
index 00000000000..76f7ecd8052
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/testarrayunbounded5.mod
@@ -0,0 +1,13 @@
+MODULE testarrayunbounded5 ;
+
+
+PROCEDURE foo (a: ARRAY OF ARRAY OF REAL) ;
+BEGIN
+END foo ;
+
+
+VAR
+   b: ARRAY [0..10] OF REAL ;
+BEGIN
+   foo (b)
+END testarrayunbounded5.
diff --git a/gcc/testsuite/gm2/iso/fail/testarrayunbounded6.mod b/gcc/testsuite/gm2/iso/fail/testarrayunbounded6.mod
new file mode 100644
index 00000000000..5ed4c4afd1b
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/testarrayunbounded6.mod
@@ -0,0 +1,13 @@
+MODULE testarrayunbounded6 ;
+
+
+PROCEDURE foo (a: ARRAY OF ARRAY OF REAL) ;
+BEGIN
+END foo ;
+
+
+VAR
+   b: ARRAY [0..10], [0..5] OF CARDINAL ;
+BEGIN
+   foo (b)
+END testarrayunbounded6.
diff --git a/gcc/testsuite/gm2/iso/pass/testarrayunbounded.mod b/gcc/testsuite/gm2/iso/pass/testarrayunbounded.mod
new file mode 100644
index 00000000000..3c6afc40b68
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/pass/testarrayunbounded.mod
@@ -0,0 +1,14 @@
+MODULE testarrayunbounded ;
+
+
+PROCEDURE foo (a: ARRAY OF ARRAY OF CARDINAL) ;
+BEGIN
+
+END foo ;
+
+
+VAR
+   b: ARRAY [0..10], [1..5] OF CARDINAL ;
+BEGIN
+   foo (b)
+END testarrayunbounded.

commit 7e8a67e0237f8d6da6d3de7752368f3d8923d121
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Sun Dec 1 23:09:44 2024 +0000

    [PATCH] modula2: Tidyup remove unnecessary parameters
    
    This patch removes ununsed parameters from gm2-compiler/M2Comp.mod.
    
    gcc/m2/ChangeLog:
    
            * gm2-compiler/M2Comp.mod (GenerateDependencies): Remove
            unused parameter.
            (WriteDep): Remove parameter dep.
            (WritePhoneDep): Ditto.
    
    (cherry picked from commit 20486ec75734f3e641a3ade4297f6ba64881bca8)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2Comp.mod b/gcc/m2/gm2-compiler/M2Comp.mod
index 719ae6641dc..1655f0c941f 100644
--- a/gcc/m2/gm2-compiler/M2Comp.mod
+++ b/gcc/m2/gm2-compiler/M2Comp.mod
@@ -226,7 +226,7 @@ END GenerateDependenciesFromList ;
                           the source code is found in sourcefile.
 *)
 
-PROCEDURE GenerateDependencies (sourcefile: String) ;
+PROCEDURE GenerateDependencies ;
 BEGIN
    IF IsDefImp (GetMainModule ())
    THEN
@@ -252,7 +252,7 @@ BEGIN
    FlushWarnings ; FlushErrors ;
    IF GetM () OR GetMM ()
    THEN
-      GenerateDependencies (s)
+      GenerateDependencies
    END ;
    IF NOT PPonly
    THEN
@@ -652,7 +652,7 @@ END ReadDepContents ;
    WriteDep - write the dependencies and target to file out.
 *)
 
-PROCEDURE WriteDep (dep: String; contents: Index; out: File) ;
+PROCEDURE WriteDep (contents: Index; out: File) ;
 VAR
    i, h: CARDINAL ;
    line: String ;
@@ -692,7 +692,7 @@ END WriteDep ;
    WritePhonyDep - write the dependencies and target to file out.
 *)
 
-PROCEDURE WritePhonyDep (dep: String; contents: Index; out: File) ;
+PROCEDURE WritePhonyDep (contents: Index; out: File) ;
 VAR
    i, h: CARDINAL ;
    line: String ;
@@ -735,10 +735,10 @@ BEGIN
       END ;
       IF IsNoError (out)
       THEN
-         WriteDep (dep, contents, out) ;
+         WriteDep (contents, out) ;
          IF GetMP ()
          THEN
-            WritePhonyDep (dep, contents, out)
+            WritePhonyDep (contents, out)
          END
       END ;
       IF GetMF () = NIL

commit efd59e24e4b05ce7ec435389e6cca23743d33e2b
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Dec 2 00:24:12 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 8b81eb36155..7942c684a26 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241201
+20241202
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index ff88ed6dd87..55ab94ecbc4 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,33 @@
+2024-12-01  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-09-21  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2-compiler/M2Comp.mod (GenerateDependencies): Remove
+	unused parameter.
+	(WriteDep): Remove parameter dep.
+	(WritePhoneDep): Ditto.
+
+2024-12-01  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-09-20  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2-compiler/M2Check.mod (checkUnboundedArray): New
+	procedure function.
+	(checkUnboundedUnbounded): Ditto.
+	(checkUnbounded): Rewrite to check the unbounded data
+	type.
+	(checkPair): Add comment.
+	(doCheckPair): Add comment.
+	Remove tinfo parameter from the call to checkTypeKindViolation.
+	(checkTypeKindViolation): Remove ununsed parameter tinfo.
+	* gm2-libs-ch/UnixArgs.cc (GM2RTS.h): Remove include.
+	* gm2-libs-ch/m2rts.h (M2RTS_INIT): New define.
+	(M2RTS_DEP): Ditto.
+	(M2RTS_RegisterModule): New prototype.
+	(GM2RTS.h): Add include to the MC_M2 block.
+
 2024-11-30  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f85bea2a901..1c26643f83b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,15 @@
+2024-12-01  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-09-20  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2/iso/fail/testarrayunbounded2.mod: New test.
+	* gm2/iso/fail/testarrayunbounded3.mod: New test.
+	* gm2/iso/fail/testarrayunbounded4.mod: New test.
+	* gm2/iso/fail/testarrayunbounded5.mod: New test.
+	* gm2/iso/fail/testarrayunbounded6.mod: New test.
+	* gm2/iso/pass/testarrayunbounded.mod: New test.
+
 2024-11-30  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:

commit 9c926d8b83a8229e0b4335cc78b2bee1b85b58af
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Mon Dec 2 13:25:14 2024 +0000

    [PATCH] PR modula2/117555: libgm2 build failure after r15-5081-g95960cd473297c
    
    This patch adds missing return statements to library procedure
    functions.  These missing statements occur after a call to RAISE.
    
    gcc/m2/ChangeLog:
    
            PR modula2/117555
            * gm2-libs-iso/M2EXCEPTION.mod (M2Exception): Add missing
            return statement.
            * gm2-libs-iso/RealConv.mod (ValueReal): Ditto.
            * gm2-libs-iso/RndFile.mod (StartPos): Ditto.
            (EndPos): Ditto.
            (NewPos): Ditto.
            * gm2-libs-iso/ShortConv.mod (ValueReal): Ditto.
            * gm2-libs-iso/WholeConv.mod (ValueInt): Ditto.
            (ValueCard): Ditto.
    
    (cherry picked from commit 6d90f5d0ae928320e6e4ce9fce8e658404d8cb72)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-libs-iso/M2EXCEPTION.mod b/gcc/m2/gm2-libs-iso/M2EXCEPTION.mod
index 637e086c299..2ff7c729664 100644
--- a/gcc/m2/gm2-libs-iso/M2EXCEPTION.mod
+++ b/gcc/m2/gm2-libs-iso/M2EXCEPTION.mod
@@ -42,7 +42,8 @@ BEGIN
    ELSE
       RTExceptions.Raise(ORD(exException),
                          ADR(__FILE__), __LINE__, __COLUMN__, ADR(__FUNCTION__),
-                         ADR('current coroutine is not in the exceptional execution state'))
+                         ADR('current coroutine is not in the exceptional execution state')) ;
+      RETURN exException
    END
 END M2Exception ;
 
diff --git a/gcc/m2/gm2-libs-iso/RealConv.mod b/gcc/m2/gm2-libs-iso/RealConv.mod
index 4223f3029ae..6f9fe6fcc7b 100644
--- a/gcc/m2/gm2-libs-iso/RealConv.mod
+++ b/gcc/m2/gm2-libs-iso/RealConv.mod
@@ -256,7 +256,8 @@ BEGIN
       RETURN( doValueReal(str) )
    ELSE
       EXCEPTIONS.RAISE(realConv, ORD(invalid),
-                       'RealConv.' + __FUNCTION__ + ': real number is invalid')
+                       'RealConv.' + __FUNCTION__ + ': real number is invalid') ;
+      RETURN 0.0
    END
 END ValueReal ;
 
diff --git a/gcc/m2/gm2-libs-iso/RndFile.mod b/gcc/m2/gm2-libs-iso/RndFile.mod
index 46a2efdaac4..42451888baf 100644
--- a/gcc/m2/gm2-libs-iso/RndFile.mod
+++ b/gcc/m2/gm2-libs-iso/RndFile.mod
@@ -359,13 +359,13 @@ VAR
 BEGIN
    IF IsRndFile(cid)
    THEN
-      d := DeviceTablePtrValue(cid, did) ;
-      RETURN( 0 )
+      d := DeviceTablePtrValue(cid, did)
    ELSE
       RAISEdevException(cid, did, IOChan.wrongDevice,
                         'RndFile.' + __FUNCTION__ +
                         ': channel is not a random file')
-   END
+   END ;
+   RETURN( 0 )
 END StartPos ;
 
 
@@ -386,7 +386,8 @@ BEGIN
    ELSE
       RAISEdevException(cid, did, IOChan.wrongDevice,
                         'RndFile.' + __FUNCTION__ +
-                        ': channel is not a random file')
+                        ': channel is not a random file') ;
+      RETURN 0
    END
 END CurrentPos ;
 
@@ -416,7 +417,8 @@ BEGIN
    ELSE
       RAISEdevException(cid, did, IOChan.wrongDevice,
                         'RndFile.' + __FUNCTION__ +
-                        ': channel is not a random file')
+                        ': channel is not a random file') ;
+      RETURN 0
    END
 END EndPos ;
 
@@ -442,7 +444,8 @@ BEGIN
    ELSE
       RAISEdevException(cid, did, IOChan.wrongDevice,
                         'RndFile.' + __FUNCTION__ +
-                        ': channel is not a random file')
+                        ': channel is not a random file') ;
+      RETURN 0
    END
 END NewPos ;
 
diff --git a/gcc/m2/gm2-libs-iso/ShortConv.mod b/gcc/m2/gm2-libs-iso/ShortConv.mod
index cfceb25c8f4..bb835c6102e 100644
--- a/gcc/m2/gm2-libs-iso/ShortConv.mod
+++ b/gcc/m2/gm2-libs-iso/ShortConv.mod
@@ -257,7 +257,8 @@ BEGIN
       RETURN( doValueReal(str) )
    ELSE
       EXCEPTIONS.RAISE(realConv, ORD(invalid),
-                       'ShortConv.' + __FUNCTION__ + ': real number is invalid')
+                       'ShortConv.' + __FUNCTION__ + ': real number is invalid') ;
+      RETURN 0.0
    END
 END ValueReal ;
 
diff --git a/gcc/m2/gm2-libs-iso/WholeConv.mod b/gcc/m2/gm2-libs-iso/WholeConv.mod
index 34ca7aca1a1..769a568fe32 100644
--- a/gcc/m2/gm2-libs-iso/WholeConv.mod
+++ b/gcc/m2/gm2-libs-iso/WholeConv.mod
@@ -196,7 +196,8 @@ BEGIN
       RETURN( v )
    ELSE
       EXCEPTIONS.RAISE(wholeConv, ORD(invalidSigned),
-                       'WholeConv.' + __FUNCTION__ + ': signed number is invalid')
+                       'WholeConv.' + __FUNCTION__ + ': signed number is invalid') ;
+      RETURN 0
    END
 END ValueInt ;
 
@@ -333,7 +334,8 @@ BEGIN
       RETURN( value )
    ELSE
       EXCEPTIONS.RAISE(wholeConv, ORD(invalidUnsigned),
-                       'WholeConv:' + __FUNCTION__ + ': unsigned number is invalid')
+                       'WholeConv:' + __FUNCTION__ + ': unsigned number is invalid') ;
+      RETURN 0
    END
 END ValueCard ;
 

commit b11f53a91238a0ac5499862a3e7e127f02bff81e
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Date:   Mon Dec 2 13:35:03 2024 +0000

    arm, mve: Adding missing Runtime Library Exception to header files
    
    Add missing Runtime Library Exception to mve header files to bring them into
    line with other similar headers. Not adding it in the first place was an
    oversight.
    
    gcc/ChangeLog:
    
            * config/arm/arm_mve.h: Add Runtime Library Exception.
            * config/arm/arm_mve_types.h: Likewise.
    
    (cherry picked from commit cde7ce0628f66a5d03cc97c70d4695e6f2acd4db)

diff --git a/gcc/config/arm/arm_mve.h b/gcc/config/arm/arm_mve.h
index ae1b5438797..7325b71cff7 100644
--- a/gcc/config/arm/arm_mve.h
+++ b/gcc/config/arm/arm_mve.h
@@ -15,6 +15,10 @@
    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
    License for more details.
 
+   Under Section 7 of GPL version 3, you are granted additional
+   permissions described in the GCC Runtime Library Exception, version
+   3.1, as published by the Free Software Foundation.
+
    You should have received a copy of the GNU General Public License
    along with GCC; see the file COPYING3.  If not see
    <http://www.gnu.org/licenses/>.  */
diff --git a/gcc/config/arm/arm_mve_types.h b/gcc/config/arm/arm_mve_types.h
index f549f881b49..7771435f1d7 100644
--- a/gcc/config/arm/arm_mve_types.h
+++ b/gcc/config/arm/arm_mve_types.h
@@ -15,6 +15,10 @@
    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
    License for more details.
 
+   Under Section 7 of GPL version 3, you are granted additional
+   permissions described in the GCC Runtime Library Exception, version
+   3.1, as published by the Free Software Foundation.
+
    You should have received a copy of the GNU General Public License
    along with GCC; see the file COPYING3.  If not see
    <http://www.gnu.org/licenses/>.  */

commit 89761f1f03565468eb3b15259f6ad42af0cfe198
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Mon Dec 2 14:34:32 2024 +0000

    [PATCH] PR modula2/117555: Add missing return statement after raise
    
    This patch adds missing return statements after a call to RAISE.  Four
    of the modules in libgm2 have procedure functions with missing return
    statements.  These errors were exposed after the reimplementation of
    parameter declaration patch and triggered by -Wreturn-type.  The patch
    also adds exit statements to the M2RTS noreturn functions.
    
    gcc/m2/ChangeLog:
    
            PR modula2/117555
            * gm2-libs-iso/EXCEPTIONS.mod (CurrentNumber): Add return
            statement.
            * gm2-libs-iso/IOChan.mod (ReadResult): Ditto.
            (CurrentFlags): Ditto.
            (DeviceError): Ditto.
            * gm2-libs-iso/IOLink.mod (DeviceTablePtrValue): Ditto.
            * gm2-libs-iso/LongConv.mod (ValueReal): Ditto.
            * gm2-libs/M2RTS.mod (Halt): Add noreturn attribute.
            Add exit (1).
            (HaltC): Add exit (1).
            * pge-boot/GM2RTS.cc (M2RTS_Halt): Add exit (1).
            (M2RTS_HaltC): Ditto.
    
    (cherry picked from commit e77fd9aa89c210db6006fcefb03d80bae0fae851)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-libs-iso/EXCEPTIONS.mod b/gcc/m2/gm2-libs-iso/EXCEPTIONS.mod
index 21ddd326749..6154e8b68fe 100644
--- a/gcc/m2/gm2-libs-iso/EXCEPTIONS.mod
+++ b/gcc/m2/gm2-libs-iso/EXCEPTIONS.mod
@@ -81,7 +81,8 @@ BEGIN
    ELSE
       RTExceptions.Raise(ORD(M2EXCEPTION.coException),
                          ADR(__FILE__), __LINE__, __COLUMN__, ADR(__FUNCTION__),
-                         ADR('current coroutine is not in the exceptional execution state'))
+                         ADR('current coroutine is not in the exceptional execution state')) ;
+      RETURN VAL (ExceptionNumber, M2EXCEPTION.exException)
    END
 END CurrentNumber ;
 
diff --git a/gcc/m2/gm2-libs-iso/IOChan.mod b/gcc/m2/gm2-libs-iso/IOChan.mod
index 3361c039339..5287a1bf9d2 100644
--- a/gcc/m2/gm2-libs-iso/IOChan.mod
+++ b/gcc/m2/gm2-libs-iso/IOChan.mod
@@ -459,7 +459,8 @@ BEGIN
    IF dtp=NIL
    THEN
       RAISE(iochan, ORD(hardDeviceError),
-            'IOChan.SetReadResult: device table ptr is NIL')
+            'IOChan.SetReadResult: device table ptr is NIL') ;
+      RETURN IOConsts.notKnown
    ELSE
       RETURN( dtp^.result )
    END
@@ -471,8 +472,9 @@ END ReadResult ;
 PROCEDURE CurrentFlags (cid: ChanId) : ChanConsts.FlagSet ;
   (* Returns the set of flags that currently apply to the channel cid. *)
 VAR
-   did: IOLink.DeviceId ;
-   dtp: IOLink.DeviceTablePtr ;
+   did  : IOLink.DeviceId ;
+   dtp  : IOLink.DeviceTablePtr ;
+   empty: ChanConsts.FlagSet ;
 BEGIN
    CheckValid(cid) ;
    did := RTio.GetDeviceId(cid) ;
@@ -480,7 +482,9 @@ BEGIN
    IF dtp=NIL
    THEN
       RAISE(iochan, ORD(hardDeviceError),
-            'IOChan.SetReadResult: device table ptr is NIL')
+            'IOChan.SetReadResult: device table ptr is NIL') ;
+      empty := ChanConsts.FlagSet {} ;
+      RETURN empty
    ELSE
       RETURN( dtp^.flags )
    END
@@ -537,7 +541,8 @@ BEGIN
    IF dtp=NIL
    THEN
       RAISE(iochan, ORD(hardDeviceError),
-            'IOChan.DeviceError: device table ptr is NIL')
+            'IOChan.DeviceError: device table ptr is NIL') ;
+      RETURN DeviceError (invalid)
    ELSE
       RETURN( dtp^.errNum )
    END
diff --git a/gcc/m2/gm2-libs-iso/IOLink.mod b/gcc/m2/gm2-libs-iso/IOLink.mod
index 8fdc83bad02..c01698e56ae 100644
--- a/gcc/m2/gm2-libs-iso/IOLink.mod
+++ b/gcc/m2/gm2-libs-iso/IOLink.mod
@@ -284,7 +284,8 @@ BEGIN
          RETURN( RTio.GetDevicePtr(cid) )
       ELSE
          EXCEPTIONS.RAISE(iolink, ORD(IOChan.wrongDevice),
-                          'IOLink.DeviceTablePtrValue: channel does belong to device')
+                          'IOLink.DeviceTablePtrValue: channel does belong to device') ;
+         RETURN NIL
       END
    END
 END DeviceTablePtrValue ;
diff --git a/gcc/m2/gm2-libs-iso/LongConv.mod b/gcc/m2/gm2-libs-iso/LongConv.mod
index 056fc1ee1ec..fb350058c88 100644
--- a/gcc/m2/gm2-libs-iso/LongConv.mod
+++ b/gcc/m2/gm2-libs-iso/LongConv.mod
@@ -257,7 +257,8 @@ BEGIN
       RETURN( doValueReal(str) )
    ELSE
       EXCEPTIONS.RAISE(realConv, ORD(invalid),
-                       'LongConv.' + __FUNCTION__ + ': real number is invalid')
+                       'LongConv.' + __FUNCTION__ + ': real number is invalid') ;
+      RETURN 0.0
    END
 END ValueReal ;
 
diff --git a/gcc/m2/gm2-libs/M2RTS.mod b/gcc/m2/gm2-libs/M2RTS.mod
index 41add830766..cb3c26f7ce1 100644
--- a/gcc/m2/gm2-libs/M2RTS.mod
+++ b/gcc/m2/gm2-libs/M2RTS.mod
@@ -288,7 +288,8 @@ END ErrorMessageC ;
 
 PROCEDURE HaltC (description, filename, function: ADDRESS; line: CARDINAL) ;
 BEGIN
-   ErrorMessageC (description, filename, line, function)
+   ErrorMessageC (description, filename, line, function) ;
+   exit (1)
 END HaltC ;
 
 
@@ -298,9 +299,10 @@ END HaltC ;
           to stderr and calls exit (1).
 *)
 
-PROCEDURE Halt (description, filename, function: ARRAY OF CHAR; line: CARDINAL) ;
+PROCEDURE Halt (description, filename, function: ARRAY OF CHAR; line: CARDINAL) <* noreturn *> ;
 BEGIN
-   ErrorMessage (description, filename, line, function)
+   ErrorMessage (description, filename, line, function) ;
+   exit (1)
 END Halt ;
 
 
diff --git a/gcc/m2/pge-boot/GM2RTS.cc b/gcc/m2/pge-boot/GM2RTS.cc
index ef5f7cf5ce1..e3466088f74 100644
--- a/gcc/m2/pge-boot/GM2RTS.cc
+++ b/gcc/m2/pge-boot/GM2RTS.cc
@@ -496,6 +496,7 @@ extern "C" void M2RTS_Halt (const char *description_, unsigned int _description_
   memcpy (function, function_, _function_high+1);
 
   M2RTS_ErrorMessage ((const char *) description, _description_high, (const char *) filename, _filename_high, line, (const char *) function, _function_high);
+  libc_exit (1);
 }
 
 
@@ -508,6 +509,7 @@ extern "C" void M2RTS_Halt (const char *description_, unsigned int _description_
 extern "C" void M2RTS_HaltC (void * description, void * filename, void * function, unsigned int line)
 {
   ErrorMessageC (description, filename, line, function);
+  libc_exit (1);
 }
 
 

commit 89e7b9b2bb6fbfa529d3eb7dc5c8e48d722aec95
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Mon Dec 2 18:03:31 2024 +0000

    [PATCH] modula2: Add noreturn attribute to m2/gm2-libs/M2RTS.mod
    
    This patch removes a build warning by adding a noreturn attribute
    to the M2RTS.mod:HaltC procedure.  Also add an infinite loop to
    gm2-libs-min/M2RTS.mod.
    
    gcc/m2/ChangeLog:
    
            * Make-lang.in (m2/gm2-libs-boot/M2RTS.o): Remove
            --suppress-noreturn.
            * gm2-libs/M2RTS.mod (HaltC): Add noreturn attribute.
            * gm2-libs-min/M2RTS.mod (HALT): Add LOOP END.
    
    (cherry picked from commit 5ef52ec422b8b92539baaa761ad878ccb6f82db8)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index 02754e98c57..480c4fb28a7 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -1477,7 +1477,7 @@ mcflex.c: $(srcdir)/m2/mc/mc.flex
 
 m2/gm2-libs-boot/M2RTS.o: $(srcdir)/m2/gm2-libs/M2RTS.mod $(MCDEPS) $(BUILD-BOOT-H)
 	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
-	$(MC) --suppress-noreturn -o=m2/gm2-libs-boot/M2RTS.c $(srcdir)/m2/gm2-libs/M2RTS.mod
+	$(MC) -o=m2/gm2-libs-boot/M2RTS.c $(srcdir)/m2/gm2-libs/M2RTS.mod
 	$(COMPILER) $(CM2DEP) -c -DIN_GCC $(CFLAGS) $(GM2_PICFLAGS) $(MC_SRC_FLAGS) -I$(srcdir)/m2 -Im2 -I. -Im2/gm2-libs-boot -I$(srcdir)/m2/gm2-libs-ch $(MCINCLUDES) $(INCLUDES) m2/gm2-libs-boot/M2RTS.c -o $@
 	$(POSTCOMPILE)
 
diff --git a/gcc/m2/gm2-libs-min/M2RTS.mod b/gcc/m2/gm2-libs-min/M2RTS.mod
index ae8cbfffbec..1f04a027f82 100644
--- a/gcc/m2/gm2-libs-min/M2RTS.mod
+++ b/gcc/m2/gm2-libs-min/M2RTS.mod
@@ -69,6 +69,8 @@ END ExecuteInitialProcedures ;
 
 PROCEDURE HALT ;
 BEGIN
+   LOOP
+   END
 END HALT ;
 
 
diff --git a/gcc/m2/gm2-libs/M2RTS.mod b/gcc/m2/gm2-libs/M2RTS.mod
index cb3c26f7ce1..98726a8d737 100644
--- a/gcc/m2/gm2-libs/M2RTS.mod
+++ b/gcc/m2/gm2-libs/M2RTS.mod
@@ -286,7 +286,7 @@ END ErrorMessageC ;
            to stderr and calls exit (1).
 *)
 
-PROCEDURE HaltC (description, filename, function: ADDRESS; line: CARDINAL) ;
+PROCEDURE HaltC (description, filename, function: ADDRESS; line: CARDINAL) <* noreturn *> ;
 BEGIN
    ErrorMessageC (description, filename, line, function) ;
    exit (1)

commit aa38196eb45bfb8a8632381ba3e277deb1b25782
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Mon Dec 2 20:25:25 2024 +0000

    [PATCH] PR modula2/116918 -fswig correct syntax
    
    This patch fixes the syntax for the generated swig interface file.
    The % characters in fprintf require escaping.
    
    gcc/m2/ChangeLog:
    
            PR modula2/116918
            * gm2-compiler/M2Swig.mod (AnnotateProcedure): Capitalize
            the generated comment, split comment into multiple lines and
            terminate the comment with ".  */".
            (DoCheckUnbounded): Escape the % character with %%.
            (DoWriteFile): Ditto.
    
    (cherry picked from commit fda30a3c8a7c6b06f02be40e3fd0740f893a1b4f)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2Swig.mod b/gcc/m2/gm2-compiler/M2Swig.mod
index 194abd5fb78..b7f34426adb 100644
--- a/gcc/m2/gm2-compiler/M2Swig.mod
+++ b/gcc/m2/gm2-compiler/M2Swig.mod
@@ -685,7 +685,7 @@ VAR
    son, p, i: CARDINAL ;
    needComma: BOOLEAN ;
 BEGIN
-   fprintf0(f, '/*  parameter: ') ;
+   fprintf0(f, '/* Parameter: ') ;
    p := NoOfParam(sym) ;
    i := 1 ;
    needComma := FALSE ;
@@ -695,14 +695,14 @@ BEGIN
       THEN
          IF needComma
          THEN
-            fprintf0(f, ', ')
+            fprintf0(f, ',\n   ')
          END ;
          CalculateVarDirective(sym, son, TRUE) ;
          needComma := TRUE
       END ;
       INC(i)
    END ;
-   fprintf0(f, ' */\n\n')
+   fprintf0(f, '.  */\n\n')
 END AnnotateProcedure ;
 
 
@@ -879,9 +879,9 @@ BEGIN
          IF NOT includedArray
          THEN
             includedArray := TRUE ;
-            fprintf0(f, '%include "carrays.i"\n')
+            fprintf0(f, '%%include "carrays.i"\n')
          END ;
-         fprintf0(f, '%') ;
+         fprintf0(f, '%%') ;
          fprintf0(f, 'apply (char *STRING, int LENGTH) { (') ;
          DoUnbounded(sym) ;
          fprintf0(f, ') };\n') ;
@@ -908,12 +908,12 @@ VAR
 BEGIN
    mainModule := sym ;
    n := GetSymName(sym) ;
-   fprintf0(f, '/* automatically generated by gm2 -fswig */\n') ;
-   fprintf0(f, '%') ;
+   fprintf0(f, '/* Automatically generated by gm2 -fswig.  */\n') ;
+   fprintf0(f, '%%') ;
    fprintf1(f, 'module %a\n\n', n) ;
-   fprintf0(f, '%') ;
+   fprintf0(f, '%%') ;
    fprintf1(f, 'include exception.i\n\n', n) ;
-   fprintf0(f, '%') ;
+   fprintf0(f, '%%') ;
    fprintf0(f, 'exception {\n') ;
    fprintf0(f, '  try {\n') ;
    fprintf0(f, '     $action\n') ;
@@ -922,9 +922,9 @@ BEGIN
    fprintf0(f, '  }\n') ;
    fprintf0(f, '}\n\n') ;
    ForeachItemInListDo(Done, DoCheckUnbounded) ;
-   fprintf0(f, '\n%{\n') ;
+   fprintf0(f, '\n%%{\n') ;
    ForeachItemInListDo(Done, DoCheckExported) ;
-   fprintf0(f, '%}\n\n') ;
+   fprintf0(f, '%%}\n\n') ;
    ForeachItemInListDo(Done, DoCheckExported)
 END DoWriteFile ;
 

commit e81edf9d86f3647dc510784ee49a625dbaded8b5
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Mon Nov 25 22:55:10 2024 +0100

    Fortran: passing inquiry ref of complex array to assumed rank dummy [PR117774]
    
            PR fortran/117774
    
    gcc/fortran/ChangeLog:
    
            * trans-expr.cc (gfc_conv_procedure_call): When passing an array
            to an assumed-rank dummy, terminate search for array reference of
            actual argument before an inquiry reference (e.g. INQUIRY_RE,
            INQUIRY_IM) so that bounds update works properly.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/assumed_rank_25.f90: New test.
    
    (cherry picked from commit eff7e72815ada5c70c974d42f6a419e29a03eb27)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index c9275e7ba82..9d04b99af6e 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -7231,7 +7231,10 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
 		  /* Change AR_FULL to a (:,:,:) ref to force bounds update. */
 		  gfc_ref *ref;
 		  for (ref = e->ref; ref->next; ref = ref->next)
-		    ;
+		    {
+		      if (ref->next->type == REF_INQUIRY)
+			break;
+		    };
 		  if (ref->u.ar.type == AR_FULL
 		      && ref->u.ar.as->type != AS_ASSUMED_SIZE)
 		    ref->u.ar.type = AR_SECTION;
diff --git a/gcc/testsuite/gfortran.dg/assumed_rank_25.f90 b/gcc/testsuite/gfortran.dg/assumed_rank_25.f90
new file mode 100644
index 00000000000..fce75aa519f
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/assumed_rank_25.f90
@@ -0,0 +1,51 @@
+! { dg-do run }
+! { dg-additional-options "-fcheck=bounds" }
+!
+! PR fortran/117774 - passing imaginary part of complex array to assumed rank dummy
+
+module mod
+  implicit none
+contains
+  subroutine foo(r, s1, s2)
+    real, intent(in) :: r(..) ! ASSUMED-RANK DUMMY
+    real, intent(in), optional :: s1(:)
+    real, intent(in), optional :: s2(:,:)
+    select rank (r)
+    rank (1)
+!     print *, r
+      if (present (s1)) then
+         if (any (r /= s1)) stop 1
+      end if
+    rank (2)
+!     print *, r
+      if (present (s2)) then
+         if (any (r /= s2)) stop 2
+      end if
+    end select
+  end subroutine
+end module
+
+program p
+  use mod
+  implicit none
+  real    :: re1(3),   im1(3)
+  real    :: re2(3,7), im2(3,7)
+  complex :: z1(3),    z2 (3,7)
+  integer :: i, j
+
+  re1 = [(2*i-1,i=1,size(re1))]
+  im1 = [(2*i  ,i=1,size(im1))]
+  z1  = cmplx (re1,im1)
+  call foo (z1    % re, re1)
+  call foo (z1    % im, im1)
+  call foo (z1(2:)% re, re1(2:))
+  call foo (z1(2:)% im, im1(2:))
+
+  re2 = reshape ([ (re1+10*j, j=1,7)], shape (re2))
+  im2 = reshape ([ (im1+10*j, j=1,7)], shape (im2))
+  z2  = cmplx (re2,im2)
+  call foo (z2       % re, s2=re2)
+  call foo (z2       % im, s2=im2)
+  call foo (z2(2:,3:)% re, s2=re2(2:,3:))
+  call foo (z2(2:,3:)% im, s2=im2(2:,3:))
+end

commit 58ef1c521c15d3c7755e0f96b472b625122ab609
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Mon Dec 2 21:34:38 2024 +0000

    [PATCH] PR modula2/116918 -fswig correct syntax fixup
    
    This patch adds a missing % escape in DoCheckUnbounded.
    
    gcc/m2/ChangeLog:
    
            PR modula2/116918
            * gm2-compiler/M2Swig.mod (DoCheckUnbounded): Escape
            the % character used in array_functions with %%.
    
    (cherry picked from commit e2a701cd0419a1898a2a359711572a8bcf4f8eb3)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2Swig.mod b/gcc/m2/gm2-compiler/M2Swig.mod
index b7f34426adb..7ef8ff36da7 100644
--- a/gcc/m2/gm2-compiler/M2Swig.mod
+++ b/gcc/m2/gm2-compiler/M2Swig.mod
@@ -887,7 +887,7 @@ BEGIN
          fprintf0(f, ') };\n') ;
          IF typeUnique
          THEN
-            fprintf0(f, '%array_functions(') ;
+            fprintf0(f, '%%array_functions(') ;
             DoType(type) ;
             fprintf0(f, ', ') ;
             DoType(type) ;

commit 5425886d1d0239f32f162daf5f2db189d43512e4
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Sep 24 12:44:09 2024 +0100

    libstdc++: Fix std::basic_stracktrace to not assume allocators throw std::bad_alloc
    
    The standard allows allocators to throw any kind of exception, not only
    something that can be caught as std::bad_alloc. std::basic_stracktrace
    was assuming std::bad_alloc.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
            Do not assume allocators only throw std::bad_alloc.
    
    (cherry picked from commit c45844eb7dadcd48e3ce84444a45c270382f7ad1)

diff --git a/libstdc++-v3/include/std/stacktrace b/libstdc++-v3/include/std/stacktrace
index 962dbed7a41..9d05cda85d2 100644
--- a/libstdc++-v3/include/std/stacktrace
+++ b/libstdc++-v3/include/std/stacktrace
@@ -569,7 +569,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	      if constexpr (is_same_v<allocator_type, allocator<value_type>>)
 		{
 		  // For std::allocator we use nothrow-new directly so we
-		  // don't need to handle bad_alloc exceptions.
+		  // don't need to handle exceptions from __alloc.allocate(n).
 		  size_t __nb = __n * sizeof(value_type);
 		  void* const __p = _GLIBCXX_OPERATOR_NEW (__nb, nothrow_t{});
 		  if (__p == nullptr) [[unlikely]]
@@ -582,7 +582,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 		    {
 		      _M_frames = __alloc.allocate(__n);
 		    }
-		  __catch (const std::bad_alloc&)
+		  __catch (...)
 		    {
 		      return nullptr;
 		    }

commit 136ff35dd3413ba4b404649e5947682a7f998109
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Nov 28 10:24:00 2024 +0000

    libstdc++: Fix allocator-extended move ctor for std::basic_stacktrace [PR117822]
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/117822
            * include/std/stacktrace (stacktrace(stacktrace&&, const A&)):
            Fix typo in qualified-id for is_always_equal trait.
            * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Test
            allocator-extended constructors and allocator propagation.
    
    (cherry picked from commit fe04901737112abb6b1a71fe645f727384dc986a)

diff --git a/libstdc++-v3/include/std/stacktrace b/libstdc++-v3/include/std/stacktrace
index 9d05cda85d2..8c645a8540a 100644
--- a/libstdc++-v3/include/std/stacktrace
+++ b/libstdc++-v3/include/std/stacktrace
@@ -289,7 +289,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 		       const allocator_type& __alloc) noexcept
       : _M_alloc(__alloc)
       {
-	if constexpr (_Allocator::is_always_equal::value)
+	if constexpr (_AllocTraits::is_always_equal::value)
 	  _M_impl = std::__exchange(__other._M_impl, {});
 	else if (_M_alloc == __other._M_alloc)
 	  _M_impl = std::__exchange(__other._M_impl, {});
diff --git a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc
index 6bb22eacd92..ee1a6d221e3 100644
--- a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc
@@ -106,12 +106,164 @@ test_cons()
     VERIFY( s5 != s0 );
     VERIFY( s3 == s0 );
 
-    // TODO test allocator-extended copy/move
+    Stacktrace s6(s5, Alloc{6});
+    VERIFY( ! s6.empty() );
+    VERIFY( s6.size() != 0 );
+    VERIFY( s6.begin() != s6.end() );
+    VERIFY( s6 == s5 );
+    VERIFY( s5 != s0 );
+    VERIFY( s6.get_allocator().get_personality() == 6 );
 
-    // TODO test allocator propagation
+    Stacktrace s7(std::move(s6), Alloc{7});
+    VERIFY( ! s7.empty() );
+    VERIFY( s7.size() != 0 );
+    VERIFY( s7.begin() != s7.end() );
+    VERIFY( s7 == s5 );
+    VERIFY( s5 != s0 );
+    VERIFY( s7.get_allocator().get_personality() == 7 );
   }
-}
 
+  {
+    using Alloc = __gnu_test::SimpleAllocator<std::stacktrace_entry>;
+    using Stacktrace = std::basic_stacktrace<Alloc>;
+
+    Stacktrace s0;
+    VERIFY( s0.empty() );
+    VERIFY( s0.size() == 0 );
+    VERIFY( s0.begin() == s0.end() );
+
+    Stacktrace s1(Alloc{});
+    VERIFY( s1.empty() );
+    VERIFY( s1.size() == 0 );
+    VERIFY( s1.begin() == s1.end() );
+
+    VERIFY( s0 == s1 );
+
+    Stacktrace s2(s0);
+    VERIFY( s2 == s0 );
+
+    const Stacktrace curr = Stacktrace::current();
+
+    Stacktrace s3(curr);
+    VERIFY( ! s3.empty() );
+    VERIFY( s3.size() != 0 );
+    VERIFY( s3.begin() != s3.end() );
+    VERIFY( s3 != s0 );
+
+    Stacktrace s4(s3);
+    VERIFY( ! s4.empty() );
+    VERIFY( s4.size() != 0 );
+    VERIFY( s4.begin() != s4.end() );
+    VERIFY( s4 == s3 );
+    VERIFY( s4 != s0 );
+
+    Stacktrace s5(std::move(s3));
+    VERIFY( ! s5.empty() );
+    VERIFY( s5.size() != 0 );
+    VERIFY( s5.begin() != s5.end() );
+    VERIFY( s5 == s4 );
+    VERIFY( s5 != s0 );
+    VERIFY( s3 == s0 );
+
+    Stacktrace s6(s5, Alloc{});
+    VERIFY( ! s6.empty() );
+    VERIFY( s6.size() != 0 );
+    VERIFY( s6.begin() != s6.end() );
+    VERIFY( s6 == s5 );
+    VERIFY( s5 != s0 );
+
+    Stacktrace s7(std::move(s6), Alloc{});
+    VERIFY( ! s7.empty() );
+    VERIFY( s7.size() != 0 );
+    VERIFY( s7.begin() != s7.end() );
+    VERIFY( s7 == s5 );
+    VERIFY( s5 != s0 );
+  }
+
+{
+    using Stacktrace = std::pmr::stacktrace;
+    using Alloc = Stacktrace::allocator_type;
+
+    Stacktrace s0;
+    VERIFY( s0.empty() );
+    VERIFY( s0.size() == 0 );
+    VERIFY( s0.begin() == s0.end() );
+
+    Stacktrace s1(Alloc{});
+    VERIFY( s1.empty() );
+    VERIFY( s1.size() == 0 );
+    VERIFY( s1.begin() == s1.end() );
+
+    VERIFY( s0 == s1 );
+
+    Stacktrace s2(s0);
+    VERIFY( s2 == s0 );
+
+    const Stacktrace curr = Stacktrace::current();
+
+    Stacktrace s3(curr);
+    VERIFY( ! s3.empty() );
+    VERIFY( s3.size() != 0 );
+    VERIFY( s3.begin() != s3.end() );
+    VERIFY( s3 != s0 );
+
+    Stacktrace s4(s3);
+    VERIFY( ! s4.empty() );
+    VERIFY( s4.size() != 0 );
+    VERIFY( s4.begin() != s4.end() );
+    VERIFY( s4 == s3 );
+    VERIFY( s4 != s0 );
+
+    Stacktrace s5(std::move(s3));
+    VERIFY( ! s5.empty() );
+    VERIFY( s5.size() != 0 );
+    VERIFY( s5.begin() != s5.end() );
+    VERIFY( s5 == s4 );
+    VERIFY( s5 != s0 );
+    VERIFY( s3 == s0 );
+
+    __gnu_test::memory_resource mr;
+    Stacktrace s6(s5, &mr);
+    VERIFY( ! s6.empty() );
+    VERIFY( s6.size() != 0 );
+    VERIFY( s6.begin() != s6.end() );
+    VERIFY( s6 == s5 );
+    VERIFY( s5 != s0 );
+    VERIFY( s6.get_allocator() != s5.get_allocator() );
+
+    Stacktrace s7(std::move(s6), Alloc{});
+    VERIFY( ! s7.empty() );
+    VERIFY( s7.size() != 0 );
+    VERIFY( s7.begin() != s7.end() );
+    VERIFY( s7 == s5 );
+    VERIFY( s5 != s0 );
+    VERIFY( s7.get_allocator() != s6.get_allocator() );
+  }
+
+  {
+    using Alloc
+      = __gnu_test::propagating_allocator<std::stacktrace_entry, false>;
+    using Stacktrace = std::basic_stacktrace<Alloc>;
+
+    Stacktrace s1 = Stacktrace::current(Alloc{1});
+    Stacktrace s2(s1);
+    VERIFY( s2.get_allocator() != s1.get_allocator() );
+    Stacktrace s3(std::move(s1));
+    VERIFY( s3.get_allocator() == s1.get_allocator() );
+  }
+
+  {
+    using Alloc
+      = __gnu_test::propagating_allocator<std::stacktrace_entry, true>;
+    using Stacktrace = std::basic_stacktrace<Alloc>;
+
+    Stacktrace s1 = Stacktrace::current(Alloc{1});
+    Stacktrace s2(s1);
+    VERIFY( s2.get_allocator() == s1.get_allocator() );
+    Stacktrace s3(std::move(s1));
+    VERIFY( s3.get_allocator() == s1.get_allocator() );
+  }
+}
 
 void
 test_assign()
@@ -167,6 +319,32 @@ test_assign()
     VERIFY( s2.at(0).source_line() == s2.get_allocator().get_personality() );
     VERIFY( s0 == s3 ); // ISO C++: valid but unspecified, GCC: swapped.
   }
+
+  {
+    using Alloc
+      = __gnu_test::propagating_allocator<std::stacktrace_entry, false>;
+    using Stacktrace = std::basic_stacktrace<Alloc>;
+
+    Stacktrace s1 = Stacktrace::current(Alloc{1});
+    Stacktrace s2(Alloc{2});
+    s2 = s1;
+    VERIFY( s2.get_allocator() != s1.get_allocator() );
+    s1 = std::move(s2);
+    VERIFY( s1.get_allocator() != s2.get_allocator() );
+  }
+
+  {
+    using Alloc
+      = __gnu_test::propagating_allocator<std::stacktrace_entry, true>;
+    using Stacktrace = std::basic_stacktrace<Alloc>;
+
+    Stacktrace s1 = Stacktrace::current(Alloc{1});
+    Stacktrace s2(Alloc{2});
+    s2 = s1;
+    VERIFY( s2.get_allocator() == s1.get_allocator() );
+    s1 = Stacktrace::current(Alloc{3});
+    VERIFY( s1.get_allocator().get_personality() == 3 );
+  }
 }
 
 void
@@ -191,8 +369,29 @@ test_swap()
     swap(s0, s1);
     VERIFY( s1.empty() );
     VERIFY( ! s0.empty() );
+  }
+
+  {
+    using Alloc
+      = __gnu_test::propagating_allocator<std::stacktrace_entry, false>;
+    using Stacktrace = std::basic_stacktrace<Alloc>;
+
+    Stacktrace s1 = Stacktrace::current(Alloc{1});
+    Stacktrace s2(Alloc{1}); // Must use equal allocators when not propagating.
+    swap(s1, s2);
+    VERIFY( s1.get_allocator() == s2.get_allocator() );
+  }
+
+  {
+    using Alloc
+      = __gnu_test::propagating_allocator<std::stacktrace_entry, true>;
+    using Stacktrace = std::basic_stacktrace<Alloc>;
 
-    // TODO test allocator propagation
+    Stacktrace s1 = Stacktrace::current(Alloc{1});
+    Stacktrace s2(Alloc{2});
+    swap(s1, s2);
+    VERIFY( s1.get_allocator().get_personality() == 2 );
+    VERIFY( s2.get_allocator().get_personality() == 1 );
   }
 }
 

commit 7a656281d8d0774454db01851facefe84e7dc82c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Nov 14 10:50:34 2024 +0000

    libstdc++: Add missing constraint to operator+ for std::move_iterator
    
    This constraint was added by the One Ranges proposal (P0896R4) and
    then fixed by LWG 3293, but it was missing from libstdc++.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/stl_iterator.h (operator+): Add constraint to
            move_iterator operator.
            * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
    
    (cherry picked from commit f91e34644e66b2eb7f4930f17a30da9f49e7d4d2)

diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h
index 20c0319f3a7..fff5f401533 100644
--- a/libstdc++-v3/include/bits/stl_iterator.h
+++ b/libstdc++-v3/include/bits/stl_iterator.h
@@ -1736,6 +1736,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     inline _GLIBCXX17_CONSTEXPR bool
     operator==(const move_iterator<_Iterator>& __x,
 	       const move_iterator<_Iterator>& __y)
+    // N.B. No contraints, x.base() == y.base() is always well-formed.
     { return __x.base() == __y.base(); }
 
 #if __cpp_lib_three_way_comparison
@@ -1796,6 +1797,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     inline _GLIBCXX17_CONSTEXPR move_iterator<_Iterator>
     operator+(typename move_iterator<_Iterator>::difference_type __n,
 	      const move_iterator<_Iterator>& __x)
+#ifdef __glibcxx_concepts
+    requires requires { { __x.base() + __n } -> same_as<_Iterator>; }
+#endif
     { return __x + __n; }
 
   template<typename _Iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
index b2c1fe0e9f8..deb17722257 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
@@ -18,6 +18,7 @@
 // { dg-do compile { target c++20 } }
 
 #include <iterator>
+#include <testsuite_iterators.h>
 
 template<int>
 struct Iter
@@ -141,3 +142,14 @@ static_assert( cend > beg );
 static_assert( beg <= cend );
 static_assert( cend >= beg );
 static_assert( std::is_lt(beg <=> cend) );
+
+template<typename I>
+  concept has_plus = requires(std::iter_difference_t<I> n, I i) {
+	{ n + i } -> std::same_as<I>;
+  };
+
+using namespace __gnu_test;
+using MBI = std::move_iterator<bidirectional_iterator_wrapper<int>>;
+static_assert( ! has_plus<MBI> );
+using MRI = std::move_iterator<random_access_iterator_wrapper<int>>;
+static_assert( has_plus<MRI> );

commit b3b430ed99729d9191bd6bc78f3537d30d1882ad
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Nov 13 16:37:24 2024 +0000

    libstdc++: Use __is_single_threaded() in performance tests
    
    With recent glibc releases the __gthread_active_p() function is always
    true, so we always append "-thread" onto performance benchmark names.
    
    Use the __gnu_cxx::__is_single_threaded() function instead.
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/util/testsuite_performance.h: Use
            __gnu_cxx::__is_single_threaded instead of __gthread_active_p().
    
    (cherry picked from commit 2b92007016ce8de3fc0a8c4508a789b822ea8e6b)

diff --git a/libstdc++-v3/testsuite/util/testsuite_performance.h b/libstdc++-v3/testsuite/util/testsuite_performance.h
index 5d57dbd7d63..4fd95b7e22a 100644
--- a/libstdc++-v3/testsuite/util/testsuite_performance.h
+++ b/libstdc++-v3/testsuite/util/testsuite_performance.h
@@ -33,6 +33,7 @@
 #include <stdexcept>
 #include <sstream>
 #include <cxxabi.h>
+#include <ext/atomicity.h>
 #include <testsuite_common_types.h>
 
 #if defined (__linux__) || defined (__GLIBC__)
@@ -223,10 +224,8 @@ namespace __gnu_test
 
     std::ofstream out(name, std::ios_base::app);
 
-#ifdef __GTHREADS
-    if (__gthread_active_p())
+    if (!__gnu_cxx::__is_single_threaded())
       testname.append("-thread");
-#endif
 
     out.setf(std::ios_base::left);
     out << std::setw(25) << testname << tab;
@@ -253,10 +252,8 @@ namespace __gnu_test
 
     std::ofstream out(name, std::ios_base::app);
 
-#ifdef __GTHREADS
-    if (__gthread_active_p ())
+    if (!__gnu_cxx::__is_single_threaded ())
       testname.append("-thread");
-#endif
 
     out.setf(std::ios_base::left);
     out << std::setw(25) << testname << tab;

commit ea95ef3becfd3d9c12acc5ea9b5aa98fcf8f65d7
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Nov 13 16:47:04 2024 +0000

    libstdc++: Fix calculation of system time in performance tests
    
    The system_time() function used the wrong element of the splits array.
    
    Also add a comment about the units for time measurements.
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/util/testsuite_performance.h (time_counter): Add
            comment about times.
            (time_counter::system_time): Use correct split value.
    
    (cherry picked from commit 19d0720f68c2617f1b9b686d3884333b60ca75da)

diff --git a/libstdc++-v3/testsuite/util/testsuite_performance.h b/libstdc++-v3/testsuite/util/testsuite_performance.h
index 4fd95b7e22a..c2be9c8e878 100644
--- a/libstdc++-v3/testsuite/util/testsuite_performance.h
+++ b/libstdc++-v3/testsuite/util/testsuite_performance.h
@@ -73,6 +73,9 @@ namespace __gnu_test
   class time_counter
   {
   private:
+    // All times are measured in clock ticks.
+    // There are CLOCKS_PER_SEC ticks per second.
+    // POSIX requires CLOCKS_PER_SEC == 1000000 so ticks == microseconds.
     clock_t	elapsed_begin;
     clock_t	elapsed_end;
     tms		tms_begin;
@@ -136,7 +139,7 @@ namespace __gnu_test
 
     std::size_t
     system_time() const
-    { return (tms_end.tms_stime - tms_begin.tms_stime) + splits[1]; }
+    { return (tms_end.tms_stime - tms_begin.tms_stime) + splits[2]; }
   };
 
   class resource_counter

commit edbe164af12589002dec6ac5fe92304567b0ab98
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Nov 14 01:14:44 2024 +0000

    libstdc++: Add missing parts of LWG 3480 for directory iterators [PR117560]
    
    It looks like I only read half the resolution of LWG 3480 and decided we
    already supported it. As well as making the non-member overloads of end
    take their parameters by value, we need some specializations of the
    enable_borrowed_range and enable_view variable templates.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/117560
            * include/bits/fs_dir.h (enable_borrowed_range, enable_view):
            Define specializations for directory iterators, as per LWG 3480.
            * testsuite/27_io/filesystem/iterators/lwg3480.cc: New test.
    
    (cherry picked from commit eec6e8923586b9a54e37f32cef112d26d86e8f01)

diff --git a/libstdc++-v3/include/bits/fs_dir.h b/libstdc++-v3/include/bits/fs_dir.h
index d669f2a7468..79dc6764b7b 100644
--- a/libstdc++-v3/include/bits/fs_dir.h
+++ b/libstdc++-v3/include/bits/fs_dir.h
@@ -39,6 +39,7 @@
 #if __cplusplus >= 202002L
 # include <compare>	// std::strong_ordering
 # include <bits/iterator_concepts.h>	// std::default_sentinel_t
+# include <bits/ranges_base.h> // enable_view, enable_borrowed_range
 #endif
 
 namespace std _GLIBCXX_VISIBILITY(default)
@@ -626,6 +627,27 @@ _GLIBCXX_END_NAMESPACE_CXX11
   extern template class
     __shared_ptr<filesystem::recursive_directory_iterator::_Dir_stack>;
 
+#if __glibcxx_ranges // >= C++20
+// _GLIBCXX_RESOLVE_LIB_DEFECTS
+// 3480. directory_iterator and recursive_directory_iterator are not ranges
+namespace ranges
+{
+  template<>
+    inline constexpr bool
+    enable_borrowed_range<filesystem::directory_iterator> = true;
+  template<>
+    inline constexpr bool
+    enable_borrowed_range<filesystem::recursive_directory_iterator> = true;
+
+  template<>
+    inline constexpr bool
+    enable_view<filesystem::directory_iterator> = true;
+  template<>
+    inline constexpr bool
+    enable_view<filesystem::recursive_directory_iterator> = true;
+} // namespace ranges
+#endif // ranges
+
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace std
 
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3480.cc b/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3480.cc
new file mode 100644
index 00000000000..15e0286fff6
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3480.cc
@@ -0,0 +1,16 @@
+// { dg-do compile { target c++20 } }
+// { dg-require-filesystem-ts "" }
+
+// LWG 3480
+// directory_iterator and recursive_directory_iterator are not C++20 ranges
+
+#include <filesystem>
+
+namespace fs = std::filesystem;
+namespace rg = std::ranges;
+
+static_assert( rg::borrowed_range<fs::directory_iterator> );
+static_assert( rg::borrowed_range<fs::recursive_directory_iterator> );
+
+static_assert( rg::view<fs::directory_iterator> );
+static_assert( rg::view<fs::recursive_directory_iterator> );

commit 3a4c9a2c661385a47107c3351c8053d9e1ede0df
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Nov 1 12:46:26 2024 +0000

    libstdc++: Minor comment improvements in <bits/hashtable.h>
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/hashtable.h: Improve comments.
    
    (cherry picked from commit db798ee38a3f81eff207e889c36c727bb370112c)

diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h
index cd3e1ac297c..f48f3651f18 100644
--- a/libstdc++-v3/include/bits/hashtable.h
+++ b/libstdc++-v3/include/bits/hashtable.h
@@ -1014,7 +1014,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       iterator
       erase(const_iterator);
 
-      // LWG 2059.
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 2059. C++0x ambiguity problem with map::erase
       iterator
       erase(iterator __it)
       { return erase(const_iterator(__it)); }
@@ -1036,7 +1037,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       // DR 1189.
       // reserve, if present, comes from _Rehash_base.
 
-#if __glibcxx_node_extract // >= C++17
+#if __glibcxx_node_extract // >= C++17 && HOSTED
       /// Re-insert an extracted node into a container with unique keys.
       insert_return_type
       _M_reinsert_node(node_type&& __nh)

commit 22ce6e2dbc5a1aa76782e9502c6de62b1635c6d9
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Nov 5 23:55:08 2024 +0000

    libstdc++: Fix typo in comment in hashtable.h
    
    And tweak grammar in a couple of comments.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/hashtable.h: Fix spelling in comment.
    
    (cherry picked from commit bcf40c70f8b0fbc54ec14adea31f274e1791b1ed)

diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h
index f48f3651f18..5050f34f999 100644
--- a/libstdc++-v3/include/bits/hashtable.h
+++ b/libstdc++-v3/include/bits/hashtable.h
@@ -336,7 +336,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       struct __hash_code_base_access : __hash_code_base
       { using __hash_code_base::_M_bucket_index; };
 
-      // To get bucket index we need _RangeHash not to throw.
+      // To get bucket index we need _RangeHash to be non-throwing.
       static_assert(is_nothrow_default_constructible<_RangeHash>::value,
 		    "Functor used to map hash code to bucket index"
 		    " must be nothrow default constructible");
@@ -345,7 +345,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 		    "Functor used to map hash code to bucket index must be"
 		    " noexcept");
 
-      // To compute bucket index we also need _ExtratKey not to throw.
+      // To compute bucket index we also need _ExtractKey to be non-throwing.
       static_assert(is_nothrow_default_constructible<_ExtractKey>::value,
 		    "_ExtractKey must be nothrow default constructible");
       static_assert(noexcept(

commit cdd110e7f155179dc60ac91435f36c614bcc1603
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Sat Oct 26 21:24:58 2024 +0100

    libstdc++: Fix std::vector<bool>::emplace to forward parameter
    
    If the parameter is not lvalue-convertible to bool then the current code
    will fail to compile. The parameter should be forwarded to restore the
    original value category.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/stl_bvector.h (emplace_back, emplace): Forward
            parameter pack to preserve value category.
            * testsuite/23_containers/vector/bool/emplace_rvalue.cc: New
            test.
    
    (cherry picked from commit f1c844be5202f4be446f165d9a7625eb7ec4c5b4)

diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h
index ffc7428a927..a19e541b0d5 100644
--- a/libstdc++-v3/include/bits/stl_bvector.h
+++ b/libstdc++-v3/include/bits/stl_bvector.h
@@ -1319,7 +1319,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 #endif
 	emplace_back(_Args&&... __args)
 	{
-	  push_back(bool(__args...));
+	  push_back(bool(std::forward<_Args>(__args)...));
 #if __cplusplus > 201402L
 	  return back();
 #endif
@@ -1329,7 +1329,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 	_GLIBCXX20_CONSTEXPR
 	iterator
 	emplace(const_iterator __pos, _Args&&... __args)
-	{ return insert(__pos, bool(__args...)); }
+	{ return insert(__pos, bool(std::forward<_Args>(__args)...)); }
 #endif
 
     protected:
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/emplace_rvalue.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/emplace_rvalue.cc
new file mode 100644
index 00000000000..5dea2426d60
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/emplace_rvalue.cc
@@ -0,0 +1,24 @@
+// { dg-do compile { target c++11 } }
+
+#include <vector>
+
+struct S
+{
+  explicit operator bool() &&;
+};
+
+void
+test_emplace_back()
+{
+  S s;
+  std::vector<bool> v;
+  v.emplace_back(std::move(s));
+}
+
+void
+test_emplace()
+{
+  S s;
+  std::vector<bool> v;
+  v.emplace(v.begin(), std::move(s));
+}

commit c61255e2d8c4b060b7c8be7c95137f500185271c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Sep 27 15:51:56 2024 +0100

    libstdc++: Fix -Wsign-compare warning in std::string::resize_for_overwrite
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/basic_string.tcc (resize_for_overwrite): Fix
            -Wsign-compare warning.
            * include/bits/cow_string.h (resize_for_overwrite): Likewise.
    
    (cherry picked from commit 7040c207baa6b5d5f6065a47dd3559f3d3974a1b)

diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index e458c1880b2..b7a68dd7a48 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -606,7 +606,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       static_assert(__gnu_cxx::__is_integer_nonstrict<decltype(__r)>::__value,
 		    "resize_and_overwrite operation must return an integer");
 #endif
-      _GLIBCXX_DEBUG_ASSERT(__r >= 0 && __r <= __n);
+      _GLIBCXX_DEBUG_ASSERT(__r >= 0 && size_type(__r) <= __n);
       __term._M_r = size_type(__r);
       if (__term._M_r > __n)
 	__builtin_unreachable();
diff --git a/libstdc++-v3/include/bits/cow_string.h b/libstdc++-v3/include/bits/cow_string.h
index 36599a20423..313f235b6e6 100644
--- a/libstdc++-v3/include/bits/cow_string.h
+++ b/libstdc++-v3/include/bits/cow_string.h
@@ -3790,7 +3790,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       static_assert(__gnu_cxx::__is_integer_nonstrict<decltype(__r)>::__value,
 		    "resize_and_overwrite operation must return an integer");
 #endif
-      _GLIBCXX_DEBUG_ASSERT(__r >= 0 && __r <= __n);
+      _GLIBCXX_DEBUG_ASSERT(__r >= 0 && size_type(__r) <= __n);
       __term._M_r = size_type(__r);
       if (__term._M_r > __n)
 	__builtin_unreachable();

commit a088552e133d2cab903d9b2660c045e18b57ef65
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Sun Oct 13 22:28:16 2024 +0100

    libstdc++: Implement LWG 3798 for range adaptors [PR106676]
    
    LWG 3798 modified the iterator_category of the iterator types for
    transform_view, join_with_view, zip_transform_view and
    adjacent_transform_view, to allow the iterator's reference type to be an
    rvalue reference.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/106676
            * include/bits/iterator_concepts.h (__cpp17_fwd_iterator): Use
            is_reference instead of is_value_reference.
            rvalue references.
            * include/std/ranges (transform_view:__iter_cat::_S_iter_cat):
            Likewise.
            (zip_transform_view::__iter_cat::_S_iter_cat): Likewise.
            (adjacent_transform_view::__iter_cat::_S_iter_cat): Likewise.
            (join_with_view::__iter_cat::_S_iter_cat): Likewise.
            * testsuite/std/ranges/adaptors/transform.cc: Check
            iterator_category when the transformation function returns an
            rvalue reference type.
    
    Reviewed-by: Patrick Palka <ppalka@redhat.com>
    (cherry picked from commit 7f65f94917866c6b18d9698eec6451c1bf21e0f9)

diff --git a/libstdc++-v3/include/bits/iterator_concepts.h b/libstdc++-v3/include/bits/iterator_concepts.h
index d849ddc32fc..e61bc3b87f3 100644
--- a/libstdc++-v3/include/bits/iterator_concepts.h
+++ b/libstdc++-v3/include/bits/iterator_concepts.h
@@ -328,10 +328,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	    typename incrementable_traits<_Iter>::difference_type>;
 	};
 
+    // _GLIBCXX_RESOLVE_LIB_DEFECTS
+    // 3798. Rvalue reference and iterator_category
     template<typename _Iter>
       concept __cpp17_fwd_iterator = __cpp17_input_iterator<_Iter>
 	&& constructible_from<_Iter>
-	&& is_lvalue_reference_v<iter_reference_t<_Iter>>
+	&& is_reference_v<iter_reference_t<_Iter>>
 	&& same_as<remove_cvref_t<iter_reference_t<_Iter>>,
 		   typename indirectly_readable_traits<_Iter>::value_type>
 	&& requires(_Iter __it)
diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index c94463c83e5..4c92f609f41 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -1888,7 +1888,9 @@ namespace views::__adaptor
 	    using _Base = transform_view::_Base<_Const>;
 	    using _Res = invoke_result_t<__maybe_const_t<_Const, _Fp>&,
 					 range_reference_t<_Base>>;
-	    if constexpr (is_lvalue_reference_v<_Res>)
+	    // _GLIBCXX_RESOLVE_LIB_DEFECTS
+	    // 3798. Rvalue reference and iterator_category
+	    if constexpr (is_reference_v<_Res>)
 	      {
 		using _Cat
 		  = typename iterator_traits<iterator_t<_Base>>::iterator_category;
@@ -5043,7 +5045,9 @@ namespace views::__adaptor
 	  using __detail::__range_iter_cat;
 	  using _Res = invoke_result_t<__maybe_const_t<_Const, _Fp>&,
 				       range_reference_t<__maybe_const_t<_Const, _Vs>>...>;
-	  if constexpr (!is_lvalue_reference_v<_Res>)
+	  // _GLIBCXX_RESOLVE_LIB_DEFECTS
+	  // 3798. Rvalue reference and iterator_category
+	  if constexpr (!is_reference_v<_Res>)
 	    return input_iterator_tag{};
 	  else if constexpr ((derived_from<__range_iter_cat<_Vs, _Const>,
 					   random_access_iterator_tag> && ...))
@@ -5816,7 +5820,9 @@ namespace views::__adaptor
       using _Res = invoke_result_t<__unarize<__maybe_const_t<_Const, _Fp>&, _Nm>,
 				   range_reference_t<_Base>>;
       using _Cat = typename iterator_traits<iterator_t<_Base>>::iterator_category;
-      if constexpr (!is_lvalue_reference_v<_Res>)
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 3798. Rvalue reference and iterator_category
+      if constexpr (!is_reference_v<_Res>)
 	return input_iterator_tag{};
       else if constexpr (derived_from<_Cat, random_access_iterator_tag>)
 	return random_access_iterator_tag{};
@@ -7224,8 +7230,10 @@ namespace views::__adaptor
 	  using _OuterCat = typename iterator_traits<_OuterIter>::iterator_category;
 	  using _InnerCat = typename iterator_traits<_InnerIter>::iterator_category;
 	  using _PatternCat = typename iterator_traits<_PatternIter>::iterator_category;
-	  if constexpr (!is_lvalue_reference_v<common_reference_t<iter_reference_t<_InnerIter>,
-								  iter_reference_t<_PatternIter>>>)
+	  // _GLIBCXX_RESOLVE_LIB_DEFECTS
+	  // 3798. Rvalue reference and iterator_category
+	  if constexpr (!is_reference_v<common_reference_t<iter_reference_t<_InnerIter>,
+							   iter_reference_t<_PatternIter>>>)
 	    return input_iterator_tag{};
 	  else if constexpr (derived_from<_OuterCat, bidirectional_iterator_tag>
 			     && derived_from<_InnerCat, bidirectional_iterator_tag>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
index ca695349650..e1b74353e63 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
@@ -214,6 +214,21 @@ test10()
   static_assert(std::same_as<cat, std::random_access_iterator_tag>);
 }
 
+void
+test11()
+{
+  struct MoveIt {
+    int&& operator()(int& i) const { return std::move(i); }
+  };
+
+  int x[] {2, 4};
+  auto xform = x | views::transform(MoveIt{});
+  using iterator = decltype(xform.begin());
+  // LWG 3798. Rvalue reference and iterator_category
+  using cat = std::iterator_traits<iterator>::iterator_category;
+  static_assert(std::same_as<cat, std::random_access_iterator_tag>);
+}
+
 int
 main()
 {
@@ -227,4 +242,5 @@ main()
   test08();
   test09();
   test10();
+  test11();
 }

commit 671c22a2e0114149b756efa9c386caf7aaea1d19
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Nov 14 16:57:17 2024 +0000

    libstdc++: Make equal and is_permutation short-circuit (LWG 3560)
    
    We already implement short-circuiting for random access iterators, but
    we also need to do so for ranges::equal and ranges::is_permutation when
    given sized ranges that are not random access ranges (e.g. std::list).
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/ranges_algo.h (__is_permutation_fn::operator()):
            Short-circuit for sized ranges with different sizes, as per LWG
            3560.
            * include/bits/ranges_algobase.h (__equal_fn::operator()):
            Likewise.
            * include/bits/stl_algo.h (__is_permutation): Use if-constexpr
            for random access iterator branches.
            * include/bits/stl_algobase.h (__equal4): Likewise.
            * testsuite/25_algorithms/equal/lwg3560.cc: New test.
            * testsuite/25_algorithms/is_permutation/lwg3560.cc: New test.
    
    Reviewed-by: Patrick Palka <ppalka@redhat.com>
    (cherry picked from commit 45cc42d6dc0642612e7076e95820438a1aab5479)

diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h
index 62faff173bd..6347ec98606 100644
--- a/libstdc++-v3/include/bits/ranges_algo.h
+++ b/libstdc++-v3/include/bits/ranges_algo.h
@@ -589,6 +589,13 @@ namespace ranges
       operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {},
 		 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
       {
+	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+	// 3560. ranges::is_permutation should short-circuit for sized_ranges
+	if constexpr (sized_range<_Range1>)
+	  if constexpr (sized_range<_Range2>)
+	    if (ranges::distance(__r1) != ranges::distance(__r2))
+	      return false;
+
 	return (*this)(ranges::begin(__r1), ranges::end(__r1),
 		       ranges::begin(__r2), ranges::end(__r2),
 		       std::move(__pred),
diff --git a/libstdc++-v3/include/bits/ranges_algobase.h b/libstdc++-v3/include/bits/ranges_algobase.h
index caced9f26ba..9a931c89486 100644
--- a/libstdc++-v3/include/bits/ranges_algobase.h
+++ b/libstdc++-v3/include/bits/ranges_algobase.h
@@ -148,6 +148,13 @@ namespace ranges
       operator()(_Range1&& __r1, _Range2&& __r2, _Pred __pred = {},
 		 _Proj1 __proj1 = {}, _Proj2 __proj2 = {}) const
       {
+	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+	// 3560. ranges::equal [...] should short-circuit for sized_ranges
+	if constexpr (sized_range<_Range1>)
+	  if constexpr (sized_range<_Range2>)
+	    if (ranges::distance(__r1) != ranges::distance(__r2))
+	      return false;
+
 	return (*this)(ranges::begin(__r1), ranges::end(__r1),
 		       ranges::begin(__r2), ranges::end(__r2),
 		       std::move(__pred),
diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h
index 1a996aa61da..878cae00763 100644
--- a/libstdc++-v3/include/bits/stl_algo.h
+++ b/libstdc++-v3/include/bits/stl_algo.h
@@ -3487,6 +3487,8 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
     }
 
 #if __cplusplus > 201103L
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
   template<typename _ForwardIterator1, typename _ForwardIterator2,
 	   typename _BinaryPredicate>
     _GLIBCXX20_CONSTEXPR
@@ -3501,12 +3503,10 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
 	= typename iterator_traits<_ForwardIterator2>::iterator_category;
       using _It1_is_RA = is_same<_Cat1, random_access_iterator_tag>;
       using _It2_is_RA = is_same<_Cat2, random_access_iterator_tag>;
-      constexpr bool __ra_iters = _It1_is_RA() && _It2_is_RA();
-      if (__ra_iters)
+      constexpr bool __ra_iters = __and_<_It1_is_RA, _It2_is_RA>::value;
+      if constexpr (__ra_iters)
 	{
-	  auto __d1 = std::distance(__first1, __last1);
-	  auto __d2 = std::distance(__first2, __last2);
-	  if (__d1 != __d2)
+	  if ((__last1 - __first1) != (__last2 - __first2))
 	    return false;
 	}
 
@@ -3517,7 +3517,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
 	if (!__pred(__first1, __first2))
 	  break;
 
-      if (__ra_iters)
+      if constexpr (__ra_iters)
 	{
 	  if (__first1 == __last1)
 	    return true;
@@ -3548,6 +3548,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
 	}
       return true;
     }
+#pragma GCC diagnostic pop
 
   /**
    *  @brief  Checks whether a permutaion of the second sequence is equal
diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h
index d831e0e9883..4cb52f3559f 100644
--- a/libstdc++-v3/include/bits/stl_algobase.h
+++ b/libstdc++-v3/include/bits/stl_algobase.h
@@ -1619,6 +1619,9 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
     }
 
 #if __cplusplus >= 201103L
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
+
   // 4-iterator version of std::equal<It1, It2> for use in C++11.
   template<typename _II1, typename _II2>
     _GLIBCXX20_CONSTEXPR
@@ -1629,20 +1632,20 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
       using _Cat1 = typename iterator_traits<_II1>::iterator_category;
       using _Cat2 = typename iterator_traits<_II2>::iterator_category;
       using _RAIters = __and_<is_same<_Cat1, _RATag>, is_same<_Cat2, _RATag>>;
-      if (_RAIters())
+      if constexpr (_RAIters::value)
 	{
-	  auto __d1 = std::distance(__first1, __last1);
-	  auto __d2 = std::distance(__first2, __last2);
-	  if (__d1 != __d2)
+	  if ((__last1 - __first1) != (__last2 - __first2))
 	    return false;
 	  return _GLIBCXX_STD_A::equal(__first1, __last1, __first2);
 	}
-
-      for (; __first1 != __last1 && __first2 != __last2;
-	  ++__first1, (void)++__first2)
-	if (!(*__first1 == *__first2))
-	  return false;
-      return __first1 == __last1 && __first2 == __last2;
+      else
+	{
+	  for (; __first1 != __last1 && __first2 != __last2;
+	       ++__first1, (void)++__first2)
+	    if (!(*__first1 == *__first2))
+	      return false;
+	  return __first1 == __last1 && __first2 == __last2;
+	}
     }
 
   // 4-iterator version of std::equal<It1, It2, BinaryPred> for use in C++11.
@@ -1656,22 +1659,23 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
       using _Cat1 = typename iterator_traits<_II1>::iterator_category;
       using _Cat2 = typename iterator_traits<_II2>::iterator_category;
       using _RAIters = __and_<is_same<_Cat1, _RATag>, is_same<_Cat2, _RATag>>;
-      if (_RAIters())
+      if constexpr (_RAIters::value)
 	{
-	  auto __d1 = std::distance(__first1, __last1);
-	  auto __d2 = std::distance(__first2, __last2);
-	  if (__d1 != __d2)
+	  if ((__last1 - __first1) != (__last2 - __first2))
 	    return false;
 	  return _GLIBCXX_STD_A::equal(__first1, __last1, __first2,
 				       __binary_pred);
 	}
-
-      for (; __first1 != __last1 && __first2 != __last2;
-	  ++__first1, (void)++__first2)
-	if (!bool(__binary_pred(*__first1, *__first2)))
-	  return false;
-      return __first1 == __last1 && __first2 == __last2;
+      else
+	{
+	  for (; __first1 != __last1 && __first2 != __last2;
+	       ++__first1, (void)++__first2)
+	    if (!bool(__binary_pred(*__first1, *__first2)))
+	      return false;
+	  return __first1 == __last1 && __first2 == __last2;
+	}
     }
+#pragma GCC diagnostic pop
 #endif // C++11
 
 #ifdef __glibcxx_robust_nonmodifying_seq_ops // C++ >= 14
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal/lwg3560.cc b/libstdc++-v3/testsuite/25_algorithms/equal/lwg3560.cc
new file mode 100644
index 00000000000..7bf8486d1b3
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/equal/lwg3560.cc
@@ -0,0 +1,49 @@
+// { dg-do run { target c++20 } }
+
+// LWG 3560. ranges::equal and ranges::is_permutation should short-circuit
+// for sized_ranges
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+#include <testsuite_hooks.h>
+
+struct X
+{
+  // Any equality comparison will cause the test to fail.
+  bool operator==(const X&) const { VERIFY(false); }
+};
+
+void
+test_std_equal()
+{
+  X vals[3];
+  __gnu_test::random_access_container<X> r1(vals, vals+3);
+  __gnu_test::random_access_container<X> r2(vals, vals+2);
+  VERIFY( ! std::equal(r1.begin(), r1.end(), r2.begin(), r2.end()) );
+
+  std::ranges::equal_to pred;
+  VERIFY( ! std::equal(r1.begin(), r1.end(), r2.begin(), r2.end(), pred) );
+}
+
+void
+test_std_ranges_equal()
+{
+  X vals[3];
+  __gnu_test::test_random_access_range<X> r1(vals, vals+3);
+  __gnu_test::test_random_access_range<X> r2(vals, vals+2);
+
+  // Any application of the projection will cause the test to fail.
+  auto proj = [](const X&) -> const X& { VERIFY(false); };
+  VERIFY( ! std::ranges::equal(r1.begin(), r1.end(), r2.begin(), r2.end(), {},
+			       proj, proj) );
+
+  __gnu_test::test_forward_sized_range<X> r3(vals, vals+3);
+  __gnu_test::test_forward_sized_range<X> r4(vals, vals+2);
+  VERIFY( ! std::ranges::equal(r3, r4, {}, proj, proj) );
+}
+
+int main()
+{
+  test_std_equal();
+  test_std_ranges_equal();
+}
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_permutation/lwg3560.cc b/libstdc++-v3/testsuite/25_algorithms/is_permutation/lwg3560.cc
new file mode 100644
index 00000000000..f9469b08a2f
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/is_permutation/lwg3560.cc
@@ -0,0 +1,51 @@
+// { dg-do run { target c++20 } }
+
+// LWG 3560. ranges::equal and ranges::is_permutation should short-circuit
+// for sized_ranges
+
+#include <algorithm>
+#include <testsuite_iterators.h>
+#include <testsuite_hooks.h>
+
+struct X
+{
+  // Any equality comparison will cause the test to fail.
+  bool operator==(const X&) const { VERIFY(false); }
+};
+
+void
+test_std_is_permutation()
+{
+  X vals[3];
+  __gnu_test::random_access_container<X> r1(vals, vals+3);
+  __gnu_test::random_access_container<X> r2(vals, vals+2);
+  VERIFY( ! std::is_permutation(r1.begin(), r1.end(), r2.begin(), r2.end()) );
+
+  std::ranges::equal_to pred;
+  VERIFY( ! std::is_permutation(r1.begin(), r1.end(), r2.begin(), r2.end(),
+				pred) );
+}
+
+void
+test_std_ranges_is_permutation()
+{
+  X vals[3];
+  __gnu_test::test_random_access_range<X> r1(vals, vals+3);
+  __gnu_test::test_random_access_range<X> r2(vals, vals+2);
+
+  // Any application of the projection will cause the test to fail.
+  auto proj = [](const X&) -> const X& { VERIFY(false); };
+  VERIFY( ! std::ranges::is_permutation(r1.begin(), r1.end(),
+					r2.begin(), r2.end(),
+					{}, proj, proj) );
+
+  __gnu_test::test_forward_sized_range<X> r3(vals, vals+3);
+  __gnu_test::test_forward_sized_range<X> r4(vals, vals+2);
+  VERIFY( ! std::ranges::is_permutation(r3, r4, {}, proj, proj) );
+}
+
+int main()
+{
+  test_std_is_permutation();
+  test_std_ranges_is_permutation();
+}

commit d4c402b5177c51f3e7292da776dcf44a63d05196
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Oct 11 13:29:06 2024 +0100

    libstdc++: Use appropriate feature test macro for std::byte
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/cpp_type_traits.h (__is_byte<byte>): Guard with
            __glibcxx_byte macro instead of checking __cplusplus.
    
    (cherry picked from commit 00a87ee76f47d0fa5a10ef982101cb3c3b8e9c99)

diff --git a/libstdc++-v3/include/bits/cpp_type_traits.h b/libstdc++-v3/include/bits/cpp_type_traits.h
index 0cb482f54b4..ffca0e4563c 100644
--- a/libstdc++-v3/include/bits/cpp_type_traits.h
+++ b/libstdc++-v3/include/bits/cpp_type_traits.h
@@ -35,6 +35,7 @@
 #pragma GCC system_header
 
 #include <bits/c++config.h>
+#include <bits/version.h>
 
 //
 // This file provides some compile-time information about various types.
@@ -447,7 +448,7 @@ __INT_N(__GLIBCXX_TYPE_INT_N_3)
       typedef __true_type __type;
     };
 
-#if __cplusplus >= 201703L
+#ifdef __glibcxx_byte // C++ >= 17
   enum class byte : unsigned char;
 
   template<>

commit 0a1c4afe2f9e4ed941774a58e98f32e9c5f2e6f4
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Nov 1 10:50:02 2024 +0000

    libstdc++: Check feature test macros in unordered containers
    
    Replace some `__cplusplus > 201402L` preprocessor checks with more
    expressive checks for the appropriate feature test macros.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/unordered_map.h: Check __glibcxx_node_extract and
            __glibcxx_unordered_map_try_emplace instead of __cplusplus.
            * include/bits/unordered_set.h: Check __glibcxx_node_extract
            instead of __cplusplus.
    
    (cherry picked from commit 1a5bdeb1128ecfa4ce233218d02ccbb88ce0d8a8)

diff --git a/libstdc++-v3/include/bits/unordered_map.h b/libstdc++-v3/include/bits/unordered_map.h
index 01aa31a94ea..72c1f5a9ae5 100644
--- a/libstdc++-v3/include/bits/unordered_map.h
+++ b/libstdc++-v3/include/bits/unordered_map.h
@@ -137,7 +137,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       typedef typename _Hashtable::difference_type	difference_type;
       ///@}
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       using node_type = typename _Hashtable::node_type;
       using insert_return_type = typename _Hashtable::insert_return_type;
 #endif
@@ -426,7 +426,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 	emplace_hint(const_iterator __pos, _Args&&... __args)
 	{ return _M_h.emplace_hint(__pos, std::forward<_Args>(__args)...); }
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       /// Extract a node.
       node_type
       extract(const_iterator __pos)
@@ -449,7 +449,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       iterator
       insert(const_iterator, node_type&& __nh)
       { return _M_h._M_reinsert_node(std::move(__nh)).position; }
-#endif // C++17
+#endif // node_extract
 
 #ifdef __glibcxx_unordered_map_try_emplace // C++ >= 17 && HOSTED
       /**
@@ -636,7 +636,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       { _M_h.insert(__l); }
 
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_unordered_map_try_emplace // >= C++17 && HOSTED
       /**
        *  @brief Attempts to insert a std::pair into the %unordered_map.
        *  @param __k    Key to use for finding a possibly existing pair in
@@ -728,7 +728,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 	    __ret.first->second = std::forward<_Obj>(__obj);
 	  return __ret.first;
 	}
-#endif
+#endif // unordered_map_try_emplace
 
       ///@{
       /**
@@ -813,7 +813,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       noexcept( noexcept(_M_h.swap(__x._M_h)) )
       { _M_h.swap(__x._M_h); }
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       template<typename, typename, typename>
 	friend class std::_Hash_merge_helper;
 
@@ -842,7 +842,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 	void
 	merge(unordered_multimap<_Key, _Tp, _H2, _P2, _Alloc>&& __source)
 	{ merge(__source); }
-#endif // C++17
+#endif // node_extract
 
       // observers.
 
@@ -1283,7 +1283,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       typedef typename _Hashtable::difference_type	difference_type;
       ///@}
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       using node_type = typename _Hashtable::node_type;
 #endif
 
@@ -1648,7 +1648,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       insert(initializer_list<value_type> __l)
       { _M_h.insert(__l); }
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       /// Extract a node.
       node_type
       extract(const_iterator __pos)
@@ -1671,7 +1671,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       iterator
       insert(const_iterator __hint, node_type&& __nh)
       { return _M_h._M_reinsert_node_multi(__hint, std::move(__nh)); }
-#endif // C++17
+#endif // node_extract
 
       ///@{
       /**
@@ -1756,7 +1756,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       noexcept( noexcept(_M_h.swap(__x._M_h)) )
       { _M_h.swap(__x._M_h); }
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       template<typename, typename, typename>
 	friend class std::_Hash_merge_helper;
 
@@ -1787,7 +1787,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 	void
 	merge(unordered_map<_Key, _Tp, _H2, _P2, _Alloc>&& __source)
 	{ merge(__source); }
-#endif // C++17
+#endif // node_extract
 
       // observers.
 
@@ -2169,7 +2169,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
 _GLIBCXX_END_NAMESPACE_CONTAINER
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
   // Allow std::unordered_map access to internals of compatible maps.
   template<typename _Key, typename _Val, typename _Hash1, typename _Eq1,
 	   typename _Alloc, typename _Hash2, typename _Eq2>
@@ -2217,7 +2217,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER
       _S_get_table(unordered_multimap<_Key, _Val, _Hash2, _Eq2, _Alloc>& __map)
       { return __map._M_h; }
     };
-#endif // C++17
+#endif // node_extract
 
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace std
diff --git a/libstdc++-v3/include/bits/unordered_set.h b/libstdc++-v3/include/bits/unordered_set.h
index a2fa2b4a083..08dcfa2a9b9 100644
--- a/libstdc++-v3/include/bits/unordered_set.h
+++ b/libstdc++-v3/include/bits/unordered_set.h
@@ -131,7 +131,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       typedef typename _Hashtable::difference_type	difference_type;
       ///@}
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       using node_type = typename _Hashtable::node_type;
       using insert_return_type = typename _Hashtable::insert_return_type;
 #endif
@@ -487,7 +487,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       insert(initializer_list<value_type> __l)
       { _M_h.insert(__l); }
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       /// Extract a node.
       node_type
       extract(const_iterator __pos)
@@ -510,7 +510,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       iterator
       insert(const_iterator, node_type&& __nh)
       { return _M_h._M_reinsert_node(std::move(__nh)).position; }
-#endif // C++17
+#endif // node_extract
 
       ///@{
       /**
@@ -594,7 +594,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       noexcept( noexcept(_M_h.swap(__x._M_h)) )
       { _M_h.swap(__x._M_h); }
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       template<typename, typename, typename>
 	friend class std::_Hash_merge_helper;
 
@@ -623,7 +623,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 	void
 	merge(unordered_multiset<_Value, _H2, _P2, _Alloc>&& __source)
 	{ merge(__source); }
-#endif // C++17
+#endif // node_extract
 
       // observers.
 
@@ -999,7 +999,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       typedef typename _Hashtable::difference_type	difference_type;
       ///@}
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       using node_type = typename _Hashtable::node_type;
 #endif
 
@@ -1332,7 +1332,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       insert(initializer_list<value_type> __l)
       { _M_h.insert(__l); }
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       /// Extract a node.
       node_type
       extract(const_iterator __pos)
@@ -1355,7 +1355,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       iterator
       insert(const_iterator __hint, node_type&& __nh)
       { return _M_h._M_reinsert_node_multi(__hint, std::move(__nh)); }
-#endif // C++17
+#endif // node_extract
 
       ///@{
       /**
@@ -1444,7 +1444,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       noexcept( noexcept(_M_h.swap(__x._M_h)) )
       { _M_h.swap(__x._M_h); }
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
       template<typename, typename, typename>
 	friend class std::_Hash_merge_helper;
 
@@ -1475,7 +1475,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 	void
 	merge(unordered_set<_Value, _H2, _P2, _Alloc>&& __source)
 	{ merge(__source); }
-#endif // C++17
+#endif // node_extract
 
       // observers.
 
@@ -1838,7 +1838,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
 _GLIBCXX_END_NAMESPACE_CONTAINER
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_node_extract // >= C++17 && HOSTED
   // Allow std::unordered_set access to internals of compatible sets.
   template<typename _Val, typename _Hash1, typename _Eq1, typename _Alloc,
 	   typename _Hash2, typename _Eq2>
@@ -1885,7 +1885,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER
       _S_get_table(unordered_multiset<_Val, _Hash2, _Eq2, _Alloc>& __set)
       { return __set._M_h; }
     };
-#endif // C++17
+#endif // node_extract
 
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace std

commit b1be40e99a05a72bf5f666ae2432cd9caa488084
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Nov 14 17:31:43 2024 +0000

    libstdc++: Fix get<0> constraint for lvalue ranges::subrange (LWG 3589)
    
    Approved at October 2021 plenary.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/ranges_util.h (subrange::begin): Fix constraint,
            as per LWG 3589.
            * testsuite/std/ranges/subrange/lwg3589.cc: New test.
    
    (cherry picked from commit 4a3a0be34f723df192361e43bb48b9292dfe3a54)

diff --git a/libstdc++-v3/include/bits/ranges_util.h b/libstdc++-v3/include/bits/ranges_util.h
index 9b79c3a229d..34d8b1e8f14 100644
--- a/libstdc++-v3/include/bits/ranges_util.h
+++ b/libstdc++-v3/include/bits/ranges_util.h
@@ -438,8 +438,11 @@ namespace ranges
 	     __detail::__make_unsigned_like_t<range_difference_t<_Rng>>)
       -> subrange<iterator_t<_Rng>, sentinel_t<_Rng>, subrange_kind::sized>;
 
+  // _GLIBCXX_RESOLVE_LIB_DEFECTS
+  // 3589. The const lvalue reference overload of get for subrange does not
+  // constrain I to be copyable when N == 0
   template<size_t _Num, class _It, class _Sent, subrange_kind _Kind>
-    requires (_Num < 2)
+    requires ((_Num == 0 && copyable<_It>) || _Num == 1)
     constexpr auto
     get(const subrange<_It, _Sent, _Kind>& __r)
     {
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/lwg3589.cc b/libstdc++-v3/testsuite/std/ranges/subrange/lwg3589.cc
new file mode 100644
index 00000000000..1ccc52d81f8
--- /dev/null
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/lwg3589.cc
@@ -0,0 +1,30 @@
+// { dg-do compile { target c++20 } }
+
+// LWG 3589. The const lvalue reference overload of get for subrange does not
+// constrain I to be copyable when N == 0
+
+#include <ranges>
+#include <testsuite_iterators.h>
+
+void
+test_lwg3589()
+{
+  int a[2]{};
+  __gnu_test::test_range<int, __gnu_test::input_iterator_wrapper_nocopy> r(a);
+
+  // Use a generic lambda so we have a dependent context.
+  auto test = [](auto& x)
+    {
+      // This was wrong before the LWG 3589 change:
+      if constexpr (requires { std::ranges::get<0>(x); })
+	(void) std::ranges::get<0>(x);
+
+      // These always worked unconditionally:
+      (void) std::ranges::get<1>(x);
+      (void) std::ranges::get<0>(std::move(x));
+      (void) std::ranges::get<1>(std::move(x));
+    };
+
+  std::ranges::subrange sr(r.begin(), r.end());
+  test(sr);
+}

commit 3fe1629a68992b1b7786fab4c3b286b41abf0e54
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Nov 7 16:51:58 2024 +0000

    libstdc++: Improve comment for _Hashtable::_M_insert_unique_node
    
    Clarify the effects if rehashing is needed. Document the __n_elt
    parameter.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/hashtable.h (_M_insert_unique_node): Improve
            comment.
    
    (cherry picked from commit e97179bacd067ccd3ee765632e0c034df152ccb6)

diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h
index 5050f34f999..834288c747c 100644
--- a/libstdc++-v3/include/bits/hashtable.h
+++ b/libstdc++-v3/include/bits/hashtable.h
@@ -885,9 +885,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       pair<__node_ptr, __hash_code>
       _M_compute_hash_code(__node_ptr __hint, const key_type& __k) const;
 
-      // Insert node __n with hash code __code, in bucket __bkt if no
-      // rehash (assumes no element with same key already present).
+      // Insert node __n with hash code __code, in bucket __bkt (or another
+      // bucket if rehashing is needed).
+      // Assumes no element with equivalent key is already present.
       // Takes ownership of __n if insertion succeeds, throws otherwise.
+      // __n_elt is an estimated number of elements we expect to insert,
+      // used as a hint for rehashing when inserting a range.
       iterator
       _M_insert_unique_node(size_type __bkt, __hash_code,
 			    __node_ptr __n, size_type __n_elt = 1);

commit f2b027a9eff6f24323f8af64f62cf48a76ff7cb5
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Aug 28 11:49:08 2024 +0100

    libstdc++: Remove unused typedef in <ranges>
    
    This local typedef should have been removed in r14-6199-g45630fbcf7875b.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/ranges (to): Remove unused typedef.
    
    (cherry picked from commit a59f1cc31cf6c7ed30a78cef134ea3ed5e139414)

diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index 4c92f609f41..44c6d2ff11e 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -9407,7 +9407,6 @@ namespace __detail
 			 std::forward<_Args>(__args)...);
 	  else
 	    {
-	      using _RefT = range_reference_t<_Rg>;
 	      static_assert(constructible_from<_Cont, _Args...>);
 	      _Cont __c(std::forward<_Args>(__args)...);
 	      if constexpr (sized_range<_Rg>

commit 4b7a1dbd3c2427c118d32657e27c8611c5f8da52
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Sep 18 15:41:05 2024 +0100

    libstdc++: Silence -Wattributes warning in exception_ptr
    
    libstdc++-v3/ChangeLog:
    
            * libsupc++/exception_ptr.h (__exception_ptr::_M_safe_bool_dummy):
            Remove __attribute__((const)) from function returning void.
    
    (cherry picked from commit 164c1b1f812da5d1e00fc10a415e80f7c508efcb)

diff --git a/libstdc++-v3/libsupc++/exception_ptr.h b/libstdc++-v3/libsupc++/exception_ptr.h
index 7c234ce0bf2..ee977a8a6ea 100644
--- a/libstdc++-v3/libsupc++/exception_ptr.h
+++ b/libstdc++-v3/libsupc++/exception_ptr.h
@@ -151,8 +151,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
 
 #ifdef _GLIBCXX_EH_PTR_COMPAT
       // Retained for compatibility with CXXABI_1.3.
-      void _M_safe_bool_dummy() _GLIBCXX_USE_NOEXCEPT
-	__attribute__ ((__const__));
+      void _M_safe_bool_dummy() _GLIBCXX_USE_NOEXCEPT;
       bool operator!() const _GLIBCXX_USE_NOEXCEPT
 	__attribute__ ((__pure__));
       operator __safe_bool() const _GLIBCXX_USE_NOEXCEPT;

commit 31c7539e26142b1cc3260fb809289333690b657b
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Sep 18 15:38:02 2024 +0100

    libstdc++: Silence -Woverloaded-virtual warning in cxx11-ios_failure.cc
    
    libstdc++-v3/ChangeLog:
    
            * src/c++11/cxx11-ios_failure.cc (__iosfail_type_info): Unhide
            the three-arg overload of __do_upcast.
    
    (cherry picked from commit d842eb5ee6cb4d8a2795730ac88c4c2960f94bf4)

diff --git a/libstdc++-v3/src/c++11/cxx11-ios_failure.cc b/libstdc++-v3/src/c++11/cxx11-ios_failure.cc
index bd3fd556bd4..70dddc82389 100644
--- a/libstdc++-v3/src/c++11/cxx11-ios_failure.cc
+++ b/libstdc++-v3/src/c++11/cxx11-ios_failure.cc
@@ -94,6 +94,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   {
     ~__iosfail_type_info();
 
+    using __si_class_type_info::__do_upcast;
+
     bool
     __do_upcast (const __class_type_info *dst_type,
 		 void **obj_ptr) const override;

commit d85ad17c2bc67dfbe74f0867fe51b4df2293d223
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Aug 28 12:21:56 2024 +0100

    libstdc++: Fix -Wunused-parameter warnings in Networking TS headers
    
    libstdc++-v3/ChangeLog:
    
            * include/experimental/io_context: Remove name of unused
            parameter.
            * include/experimental/socket: Add [[maybe_unused]] attribute.
    
    (cherry picked from commit 51b0fef4e6ee01ed2509bd54a448d2564a89c518)

diff --git a/libstdc++-v3/include/experimental/io_context b/libstdc++-v3/include/experimental/io_context
index 4db3782e2bb..8b0dba7d5fa 100644
--- a/libstdc++-v3/include/experimental/io_context
+++ b/libstdc++-v3/include/experimental/io_context
@@ -148,7 +148,7 @@ inline namespace v1
     io_context() : _M_work_count(0) { }
 
     explicit
-    io_context(int __concurrency_hint) : _M_work_count(0) { }
+    io_context(int /* __concurrency_hint */) : _M_work_count(0) { }
 
     io_context(const io_context&) = delete;
     io_context& operator=(const io_context&) = delete;
diff --git a/libstdc++-v3/include/experimental/socket b/libstdc++-v3/include/experimental/socket
index 02c27d66c6a..a244af201a6 100644
--- a/libstdc++-v3/include/experimental/socket
+++ b/libstdc++-v3/include/experimental/socket
@@ -493,7 +493,7 @@ inline namespace v1
     bool non_blocking() const { return _M_bits.non_blocking; }
 
     void
-    native_non_blocking(bool __mode, error_code& __ec)
+    native_non_blocking([[maybe_unused]] bool __mode, error_code& __ec)
     {
 #if defined _GLIBCXX_HAVE_FCNTL_H && defined _GLIBCXX_HAVE_DECL_O_NONBLOCK
       int __flags = ::fcntl(_M_sockfd, F_GETFL, 0);

commit f9e34b1aef14d22209bd7b6ed8c58899a0a27b82
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Aug 27 13:13:40 2024 -0400

    libstdc++: remove extra semicolons
    
    The semicolons after each macro invocation here end up following the closing
    brace of a function, leading to -Wextra-semi pedwarns.
    
    libstdc++-v3/ChangeLog:
    
            * include/decimal/decimal.h (_DEFINE_DECIMAL_BINARY_OP_WITH_INT):
            Remove redundant semicolons.
    
    (cherry picked from commit 7b500fa34ad88d5fdd4bf74eb2737b214749075b)

diff --git a/libstdc++-v3/include/decimal/decimal.h b/libstdc++-v3/include/decimal/decimal.h
index 6ecd1637083..99376a60cdf 100644
--- a/libstdc++-v3/include/decimal/decimal.h
+++ b/libstdc++-v3/include/decimal/decimal.h
@@ -336,18 +336,18 @@ namespace decimal
   }
 
 #define _DEFINE_DECIMAL_BINARY_OP_WITH_INT(_Op, _T1)		\
-  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, int);			\
-  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, unsigned int);	\
-  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, long);		\
-  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, unsigned long);	\
-  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, long long);		\
-  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, unsigned long long);	\
-  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, int);			\
-  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, unsigned int);	\
-  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, long);		\
-  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, unsigned long);	\
-  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, long long);		\
-  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, unsigned long long);	\
+  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, int)			\
+  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, unsigned int)		\
+  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, long)			\
+  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, unsigned long)	\
+  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, long long)		\
+  _DEFINE_DECIMAL_BINARY_OP_LHS(_Op, _T1, unsigned long long)	\
+  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, int)			\
+  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, unsigned int)		\
+  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, long)			\
+  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, unsigned long)	\
+  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, long long)		\
+  _DEFINE_DECIMAL_BINARY_OP_RHS(_Op, _T1, unsigned long long)
 
   _DEFINE_DECIMAL_BINARY_OP_WITH_DEC(+, decimal32, decimal32, decimal32)
   _DEFINE_DECIMAL_BINARY_OP_WITH_INT(+, decimal32)

commit 38569170f88d96288806ab4ad9d9bdb36320bbf0
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Aug 27 13:15:52 2024 -0400

    libstdc++: avoid -Wzero-as-null-pointer-constant
    
    libstdc++-v3/ChangeLog:
    
            * include/std/coroutine (coroutine_handle): Use nullptr instead of
            0 as initializer for _M_fr_ptr.
    
    (cherry picked from commit 28f94bf91a536395347a2da5558f0ddf014e814f)

diff --git a/libstdc++-v3/include/std/coroutine b/libstdc++-v3/include/std/coroutine
index 908c1178a14..ccd016b255e 100644
--- a/libstdc++-v3/include/std/coroutine
+++ b/libstdc++-v3/include/std/coroutine
@@ -99,7 +99,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     {
     public:
       // [coroutine.handle.con], construct/reset
-      constexpr coroutine_handle() noexcept : _M_fr_ptr(0) {}
+      constexpr coroutine_handle() noexcept : _M_fr_ptr(nullptr) {}
 
       constexpr coroutine_handle(std::nullptr_t __h) noexcept
 	: _M_fr_ptr(__h)

commit 61f4509151420fcca2d92e1a382c066c2fd608a6
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Aug 27 13:16:47 2024 -0400

    libstdc++: fix testcase regexp
    
    The unescaped * broke the match.
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/20_util/default_delete/void_neg.cc: Fix regexp quoting.
    
    (cherry picked from commit 7bd2a2f9e3ef9f7de4c2f478241f7083cc54d7d3)

diff --git a/libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc b/libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc
index 709cc915fd5..ceb03a9e89e 100644
--- a/libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc
@@ -29,4 +29,4 @@ void test01()
 }
 
 // { dg-prune-output "invalid application of 'sizeof' to a void type" }
-// { dg-prune-output "deleting 'void*' is undefined" }
+// { dg-prune-output {deleting 'void\*' is undefined} }

commit 3a1a3ba916a6e5d795f0f07dea2bdd76c30740a1
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Aug 27 13:17:20 2024 -0400

    libstdc++: avoid -Wsign-compare
    
    -Wsign-compare complained about these comparisons between (unsigned) size_t
    and (signed) streamsize, or between (unsigned) native_handle_type
    and (signed) -1.  Fixed by adding casts to unify the types.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/istream: Add cast to avoid -Wsign-compare.
            * include/std/stacktrace: Likewise.
    
    (cherry picked from commit 4246cf4f18053eeb47cb2a241fffa9a41573916e)

diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream
index a2b207dae78..730e413c290 100644
--- a/libstdc++-v3/include/std/istream
+++ b/libstdc++-v3/include/std/istream
@@ -909,7 +909,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  __n /= sizeof(_CharT);
 	  streamsize __w = __in.width();
 	  std::__istream_extract(__in, __s, __n);
-	  if (__in.good() && (__w <= 0 || __n < __w))
+	  if (__in.good() && (__w <= 0 || __n < (size_t)__w))
 	    {
 	      // Stopped extracting early to avoid overflowing the buffer,
 	      // but might have stopped anyway (and set eofbit) if at EOF.
diff --git a/libstdc++-v3/include/std/stacktrace b/libstdc++-v3/include/std/stacktrace
index 8c645a8540a..dcff886c095 100644
--- a/libstdc++-v3/include/std/stacktrace
+++ b/libstdc++-v3/include/std/stacktrace
@@ -79,7 +79,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     constexpr native_handle_type
     native_handle() const noexcept { return _M_pc; }
 
-    constexpr explicit operator bool() const noexcept { return _M_pc != -1; }
+    constexpr explicit operator bool() const noexcept
+    { return _M_pc != (native_handle_type)-1; }
 
     // [stacktrace.entry.query], query
     [[nodiscard]]

commit 986c71c169378c0bdce41f02377699f29e4a3203
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Sep 18 16:17:28 2024 +0100

    libstdc++: Use constexpr instead of _GLIBCXX20_CONSTEXPR in <vector>
    
    For the operator<=> overload we can use the 'constexpr' keyword
    directly, because we know the language dialect is at least C++20.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/stl_vector.h (operator<=>): Use constexpr
            instead of _GLIBCXX20_CONSTEXPR macro.
    
    (cherry picked from commit b6463161c3cd0b1f764697290d9569c7153b8a5b)

diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h
index 31169711a48..b7ee6202525 100644
--- a/libstdc++-v3/include/bits/stl_vector.h
+++ b/libstdc++-v3/include/bits/stl_vector.h
@@ -2051,7 +2051,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
     { return (__x.size() == __y.size()
 	      && std::equal(__x.begin(), __x.end(), __y.begin())); }
 
-#if __cpp_lib_three_way_comparison
+#if __cpp_lib_three_way_comparison // >= C++20
   /**
    *  @brief  Vector ordering relation.
    *  @param  __x  A `vector`.
@@ -2064,8 +2064,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
    *  `<` and `>=` etc.
   */
   template<typename _Tp, typename _Alloc>
-    [[nodiscard]] _GLIBCXX20_CONSTEXPR
-    inline __detail::__synth3way_t<_Tp>
+    [[nodiscard]]
+    constexpr __detail::__synth3way_t<_Tp>
     operator<=>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y)
     {
       return std::lexicographical_compare_three_way(__x.begin(), __x.end(),

commit 960fe2cbb140837e1095f51acbcd7e5ff3652215
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Dec 3 00:26:40 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ef66d635767..10fb3a1ec86 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+	Backported from master:
+	2024-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+
+	* config/arm/arm_mve.h: Add Runtime Library Exception.
+	* config/arm/arm_mve_types.h: Likewise.
+
 2024-11-29  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7942c684a26..ba184185f0b 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241202
+20241203
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 0b7acbf75f2..2e391b4329c 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,14 @@
+2024-12-02  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2024-11-26  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/117774
+	* trans-expr.cc (gfc_conv_procedure_call): When passing an array
+	to an assumed-rank dummy, terminate search for array reference of
+	actual argument before an inquiry reference (e.g. INQUIRY_RE,
+	INQUIRY_IM) so that bounds update works properly.
+
 2024-11-30  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 55ab94ecbc4..6cec473dd18 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,69 @@
+2024-12-02  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-10-04  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116918
+	* gm2-compiler/M2Swig.mod (DoCheckUnbounded): Escape
+	the % character used in array_functions with %%.
+
+2024-12-02  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-10-01  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/116918
+	* gm2-compiler/M2Swig.mod (AnnotateProcedure): Capitalize
+	the generated comment, split comment into multiple lines and
+	terminate the comment with ".  */".
+	(DoCheckUnbounded): Escape the % character with %%.
+	(DoWriteFile): Ditto.
+
+2024-12-02  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-09-23  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* Make-lang.in (m2/gm2-libs-boot/M2RTS.o): Remove
+	--suppress-noreturn.
+	* gm2-libs/M2RTS.mod (HaltC): Add noreturn attribute.
+	* gm2-libs-min/M2RTS.mod (HALT): Add LOOP END.
+
+2024-12-02  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-16  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117555
+	* gm2-libs-iso/EXCEPTIONS.mod (CurrentNumber): Add return
+	statement.
+	* gm2-libs-iso/IOChan.mod (ReadResult): Ditto.
+	(CurrentFlags): Ditto.
+	(DeviceError): Ditto.
+	* gm2-libs-iso/IOLink.mod (DeviceTablePtrValue): Ditto.
+	* gm2-libs-iso/LongConv.mod (ValueReal): Ditto.
+	* gm2-libs/M2RTS.mod (Halt): Add noreturn attribute.
+	Add exit (1).
+	(HaltC): Add exit (1).
+	* pge-boot/GM2RTS.cc (M2RTS_Halt): Add exit (1).
+	(M2RTS_HaltC): Ditto.
+
+2024-12-02  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-18  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117555
+	* gm2-libs-iso/M2EXCEPTION.mod (M2Exception): Add missing
+	return statement.
+	* gm2-libs-iso/RealConv.mod (ValueReal): Ditto.
+	* gm2-libs-iso/RndFile.mod (StartPos): Ditto.
+	(EndPos): Ditto.
+	(NewPos): Ditto.
+	* gm2-libs-iso/ShortConv.mod (ValueReal): Ditto.
+	* gm2-libs-iso/WholeConv.mod (ValueInt): Ditto.
+	(ValueCard): Ditto.
+
 2024-12-01  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1c26643f83b..2105610fda4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-02  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2024-11-26  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/117774
+	* gfortran.dg/assumed_rank_25.f90: New test.
+
 2024-12-01  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 08c79d41730..8b508e2b062 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,231 @@
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-22  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/stl_vector.h (operator<=>): Use constexpr
+	instead of _GLIBCXX20_CONSTEXPR macro.
+
+2024-12-02  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-08-28  Jason Merrill  <jason@redhat.com>
+
+	* include/std/istream: Add cast to avoid -Wsign-compare.
+	* include/std/stacktrace: Likewise.
+
+2024-12-02  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-08-28  Jason Merrill  <jason@redhat.com>
+
+	* testsuite/20_util/default_delete/void_neg.cc: Fix regexp quoting.
+
+2024-12-02  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-08-28  Jason Merrill  <jason@redhat.com>
+
+	* include/std/coroutine (coroutine_handle): Use nullptr instead of
+	0 as initializer for _M_fr_ptr.
+
+2024-12-02  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2024-08-28  Jason Merrill  <jason@redhat.com>
+
+	* include/decimal/decimal.h (_DEFINE_DECIMAL_BINARY_OP_WITH_INT):
+	Remove redundant semicolons.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-08-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/experimental/io_context: Remove name of unused
+	parameter.
+	* include/experimental/socket: Add [[maybe_unused]] attribute.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-22  Jonathan Wakely  <jwakely@redhat.com>
+
+	* src/c++11/cxx11-ios_failure.cc (__iosfail_type_info): Unhide
+	the three-arg overload of __do_upcast.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-22  Jonathan Wakely  <jwakely@redhat.com>
+
+	* libsupc++/exception_ptr.h (__exception_ptr::_M_safe_bool_dummy):
+	Remove __attribute__((const)) from function returning void.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-08-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/ranges (to): Remove unused typedef.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-07  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/hashtable.h (_M_insert_unique_node): Improve
+	comment.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-14  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/ranges_util.h (subrange::begin): Fix constraint,
+	as per LWG 3589.
+	* testsuite/std/ranges/subrange/lwg3589.cc: New test.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/unordered_map.h: Check __glibcxx_node_extract and
+	__glibcxx_unordered_map_try_emplace instead of __cplusplus.
+	* include/bits/unordered_set.h: Check __glibcxx_node_extract
+	instead of __cplusplus.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/cpp_type_traits.h (__is_byte<byte>): Guard with
+	__glibcxx_byte macro instead of checking __cplusplus.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-14  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/ranges_algo.h (__is_permutation_fn::operator()):
+	Short-circuit for sized ranges with different sizes, as per LWG
+	3560.
+	* include/bits/ranges_algobase.h (__equal_fn::operator()):
+	Likewise.
+	* include/bits/stl_algo.h (__is_permutation): Use if-constexpr
+	for random access iterator branches.
+	* include/bits/stl_algobase.h (__equal4): Likewise.
+	* testsuite/25_algorithms/equal/lwg3560.cc: New test.
+	* testsuite/25_algorithms/is_permutation/lwg3560.cc: New test.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-15  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/106676
+	* include/bits/iterator_concepts.h (__cpp17_fwd_iterator): Use
+	is_reference instead of is_value_reference.
+	rvalue references.
+	* include/std/ranges (transform_view:__iter_cat::_S_iter_cat):
+	Likewise.
+	(zip_transform_view::__iter_cat::_S_iter_cat): Likewise.
+	(adjacent_transform_view::__iter_cat::_S_iter_cat): Likewise.
+	(join_with_view::__iter_cat::_S_iter_cat): Likewise.
+	* testsuite/std/ranges/adaptors/transform.cc: Check
+	iterator_category when the transformation function returns an
+	rvalue reference type.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-27  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/basic_string.tcc (resize_for_overwrite): Fix
+	-Wsign-compare warning.
+	* include/bits/cow_string.h (resize_for_overwrite): Likewise.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-27  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/stl_bvector.h (emplace_back, emplace): Forward
+	parameter pack to preserve value category.
+	* testsuite/23_containers/vector/bool/emplace_rvalue.cc: New
+	test.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-07  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/hashtable.h: Fix spelling in comment.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-01  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/hashtable.h: Improve comments.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-14  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/117560
+	* include/bits/fs_dir.h (enable_borrowed_range, enable_view):
+	Define specializations for directory iterators, as per LWG 3480.
+	* testsuite/27_io/filesystem/iterators/lwg3480.cc: New test.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-13  Jonathan Wakely  <jwakely@redhat.com>
+
+	* testsuite/util/testsuite_performance.h (time_counter): Add
+	comment about times.
+	(time_counter::system_time): Use correct split value.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-13  Jonathan Wakely  <jwakely@redhat.com>
+
+	* testsuite/util/testsuite_performance.h: Use
+	__gnu_cxx::__is_single_threaded instead of __gthread_active_p().
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-14  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/stl_iterator.h (operator+): Add constraint to
+	move_iterator operator.
+	* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/117822
+	* include/std/stacktrace (stacktrace(stacktrace&&, const A&)):
+	Fix typo in qualified-id for is_always_equal trait.
+	* testsuite/19_diagnostics/stacktrace/stacktrace.cc: Test
+	allocator-extended constructors and allocator propagation.
+
+2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-26  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
+	Do not assume allocators only throw std::bad_alloc.
+
 2024-11-12  Jonathan Wakely  <jwakely@redhat.com>
 
 	* include/bits/unicode.h (_Utf_iterator::_M_read_utf16): Add

commit e8acf6816cf360d5db0ebfaf995415961f455274
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Dec 3 13:37:01 2024 +0000

    [PATCH] PR modula2/115328 The FORWARD keyword is not implemented
    
    This patch implements the FORWARD keyword found in the ISO standard.
    The patch checks incoming parameters against the prior declaration
    found in definition/forward sections and will issue an error based
    on virtual tokens highlighing the full parameter declaration.
    
    gcc/m2/ChangeLog:
    
            PR modula2/115328
            * gm2-compiler/M2MetaError.def: Extend comment documentating
            new format specifiers.
            * gm2-compiler/M2MetaError.mod (GetTokProcedure): New declaration.
            (doErrorScopeModule): New procedure.
            (doErrorScopeForward): Ditto.
            (doErrorScopeMod): Reimplement.
            (doErrorScopeFor): New procedure.
            (declarationMod): Ditto.
            (doErrorScopeDefinition): Ditto.
            (doErrorScopeDef): Reimplement.
            (declaredDef): New procedure.
            (declaredFor): Ditto.
            (doErrorScopeProc): Ditto.
            (declaredVar): Ditto.
            (declaredType): Ditto.
            (declaredFull): Ditto.
            * gm2-compiler/M2Options.mod (SetAutoInit): Add missing
            return type.
            (GetDumpGimple): Remove duplicate implementation.
            * gm2-compiler/M2Quads.def (DupFrame): New procedure.
            * gm2-compiler/M2Quads.mod (DupFrame): New procedure.
            * gm2-compiler/M2Reserved.def (ForwardTok): New variable.
            * gm2-compiler/M2Reserved.mod (ForwardTok): Initialize variable.
            * gm2-compiler/M2Scaffold.mod (DeclareArgEnvParams): Add
            tokno parameter for call to PutParam.
            * gm2-compiler/P0SymBuild.def (EndForward): New procedure.
            * gm2-compiler/P0SymBuild.mod (EndForward): New procedure.
            * gm2-compiler/P0SyntaxCheck.bnf (BlockAssert): New procedure.
            (ProcedureDeclaration): Reimplement rule.
            (PostProcedureHeading): New rule.
            (ForwardDeclaration): Ditto.
            (ProperProcedure): Ditto.
            * gm2-compiler/P1Build.bnf (ProcedureDeclaration): Reimplement rule.
            (PostProcedureHeading): New rule.
            (ForwardDeclaration): Ditto.
            (ProperProcedure): Ditto.
            * gm2-compiler/P1SymBuild.def (Export): Removed unnecessary
            export.
            (EndBuildForward): New procedure.
            * gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Reimplement.
            (EndBuildProcedure): Ditto.
            (EndBuildForward): Ditto.
            * gm2-compiler/P2Build.bnf (ProcedureDeclaration): Reimplement rule.
            (PostProcedureHeading): New rule.
            (ForwardDeclaration): Ditto.
            (ProperProcedure): Ditto.
            * gm2-compiler/P2SymBuild.def (BuildProcedureDefinedByForward):
            New procedure.
            (BuildProcedureDefinedByProper): Ditto.
            (CheckProcedure): Ditto.
            (EndBuildForward): Ditto.
            * gm2-compiler/P2SymBuild.mod (EndBuildProcedure): Reimplement.
            (EndBuildForward): New procedure.
            (BuildFPSection): Reimplement to allow forward declaration or
            checking of parameters.
            (BuildProcedureDefinedByProper): New procedure.
            (BuildProcedureDefinedByForward): Ditto
            (FailParameter): Remove.
            (ParameterError): New procedure.
            (ParameterMismatch): Ditto.
            (EndBuildFormalParameters): Add parameter number check.
            (GetComparison): New procedure function.
            (GetSourceDesc): Ditto.
            (GetCurSrcDesc): Ditto.
            (GetDeclared): New procedure.
            (ReturnTypeMismatch): Ditto.
            (BuildFunction): Reimplement.
            (CheckProcedure): New procedure.
            (CheckFormalParameterSection): Reimplement using ParameterError.
            * gm2-compiler/P3Build.bnf (ProcedureDeclaration): Reimplement rule.
            (PostProcedureHeading): New rule.
            (ForwardDeclaration): Ditto.
            (ProperProcedure): Ditto.
            * gm2-compiler/P3SymBuild.def (Export): Remove unnecessary export.
            (EndBuildForward): New procedure.
            * gm2-compiler/P3SymBuild.mod (EndBuildForward): New procedure.
            * gm2-compiler/PCBuild.bnf (ProcedureDeclaration): Reimplement rule.
            (PostProcedureHeading): New rule.
            (ForwardDeclaration): Ditto.
            (ProperProcedure): Ditto.
            * gm2-compiler/PCSymBuild.def (EndBuildForward): New procedure.
            * gm2-compiler/PCSymBuild.mod (EndBuildForward): Ditto.
            * gm2-compiler/PHBuild.bnf (ProcedureDeclaration): Reimplement rule.
            (PostProcedureHeading): New rule.
            (ForwardDeclaration): Ditto.
            (ProperProcedure): Ditto.
            * gm2-compiler/SymbolTable.def (PutVarTok): New procedure.
            (PutParam): Add typetok parameter.
            (PutVarParam): Ditto.
            (PutParamName): Ditto.
            (GetDeclaredFor): New procedure function.
            (AreParametersDefinedInDefinition): Ditto.
            (PutParametersDefinedByForward): New procedure.
            (GetParametersDefinedByForward): New procedure function.
            (PutParametersDefinedByProper): New procedure.
            (GetParametersDefinedByProper): New procedure function.
            (GetProcedureDeclaredForward): Ditto.
            (PutProcedureDeclaredForward): New procedure.
            (GetProcedureDeclaredProper): New procedure function.
            (PutProcedureDeclaredProper): New procedure.
            (GetProcedureDeclaredDefinition): New procedure function.
            (PutProcedureDeclaredDefinition): New procedure.
            (GetVarDeclTypeTok): Ditto.
            (PutVarDeclTypeTok): New procedure.
            (GetVarDeclTok): Ditto.
            (PutVarDeclTok): New procedure.
            (GetVarDeclFullTok): Ditto.
            * gm2-compiler/SymbolTable.mod (ProcedureDecl): New record type.
            (VarDecl): Ditto.
            (SymProcedure): Add new field Declared.
            (SymVar): Add new field Declared.
            (PutVarTok): New procedure.
            (PutParam): Add typetok parameter.
            (PutVarParam): Ditto.
            (PutParamName): Ditto.
            (GetDeclaredFor): New procedure function.
            (AreParametersDefinedInDefinition): Ditto.
            (PutParametersDefinedByForward): New procedure.
            (GetParametersDefinedByForward): New procedure function.
            (PutParametersDefinedByProper): New procedure.
            (GetParametersDefinedByProper): New procedure function.
            (GetProcedureDeclaredForward): Ditto.
            (PutProcedureDeclaredForward): New procedure.
            (GetProcedureDeclaredProper): New procedure function.
            (PutProcedureDeclaredProper): New procedure.
            (GetProcedureDeclaredDefinition): New procedure function.
            (PutProcedureDeclaredDefinition): New procedure.
            (GetVarDeclTypeTok): Ditto.
            (PutVarDeclTypeTok): New procedure.
            (GetVarDeclTok): Ditto.
            (PutVarDeclTok): New procedure.
            (GetVarDeclFullTok): Ditto.
            (MakeProcedure): Initialize Declared field.
            (MakeVar): Initialize Declared field.
            * gm2-libs-log/FileSystem.def (FileNameChar): Add
            missing return type.
            * m2.flex: Add FORWARD keyword.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/115328
            * gm2/iso/fail/badparam.def: New test.
            * gm2/iso/fail/badparam.mod: New test.
            * gm2/iso/fail/badparam2.def: New test.
            * gm2/iso/fail/badparam2.mod: New test.
            * gm2/iso/fail/badparam3.def: New test.
            * gm2/iso/fail/badparam3.mod: New test.
            * gm2/iso/fail/badparamarray.def: New test.
            * gm2/iso/fail/badparamarray.mod: New test.
            * gm2/iso/fail/simpledef1.def: New test.
            * gm2/iso/fail/simpledef1.mod: New test.
            * gm2/iso/fail/simpleforward.mod: New test.
            * gm2/iso/fail/simpleforward2.mod: New test.
            * gm2/iso/fail/simpleforward3.mod: New test.
            * gm2/iso/fail/simpleforward4.mod: New test.
            * gm2/iso/fail/simpleforward5.mod: New test.
            * gm2/iso/fail/simpleforward7.mod: New test.
            * gm2/iso/pass/simpleforward.mod: New test.
            * gm2/iso/pass/simpleforward6.mod: New test.
    
    (cherry picked from commit e751639e3d20efe97186faa7dca33e7761ba1e79)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2MetaError.def b/gcc/m2/gm2-compiler/M2MetaError.def
index 792f4a54c9a..c83770a4403 100644
--- a/gcc/m2/gm2-compiler/M2MetaError.def
+++ b/gcc/m2/gm2-compiler/M2MetaError.def
@@ -69,11 +69,23 @@ EXPORT QUALIFIED MetaError0, MetaError1, MetaError2, MetaError3, MetaError4,
     {%1D}     sets the error message to where symbol 1 was declared.
               The declaration will choose the definition module, then
               implementation (or program) module.
+    {%1G}     sets the error message to where symbol 1 was declared.
+              The declaration will choose in order the forward declaration,
+              implementation module, program module or definition module.
     {%1M}     sets the error message to where symbol 1 was declared.
               The declaration will choose the implementation or program
               module and if these do not exist then it falls back to
               the definition module.
     {%1U}     sets the error message to where symbol 1 was first used.
+    {%1V}     set the error message location to the name of the symbol declared.
+              For example foo: bar
+                          ^^^  some error message.
+    {%1H}     set the error message location to the whole declaration of the symbol.
+              For example foo: bar
+                          ^^^^^^^^ some error message.
+    {%1B}     set the error message location to the type declaration of the symbol.
+              For example foo: bar
+                               ^^^ some error message.
     {%A}      abort, issue non recoverable error message (this should
               not used for internal errors).
     {%E}      error (default recoverable error).
diff --git a/gcc/m2/gm2-compiler/M2MetaError.mod b/gcc/m2/gm2-compiler/M2MetaError.mod
index 94ffdb14603..007c10b28bd 100644
--- a/gcc/m2/gm2-compiler/M2MetaError.mod
+++ b/gcc/m2/gm2-compiler/M2MetaError.mod
@@ -58,8 +58,10 @@ FROM SymbolTable IMPORT NulSym,
                         IsSubscript, IsSubrange, IsSet, IsHiddenType,
                         IsError, GetSymName, GetScope, IsExported,
                         GetType, SkipType, GetDeclaredDef, GetDeclaredMod,
-                        GetDeclaredModule, GetDeclaredDefinition, GetScope,
-                        GetFirstUsed, IsNameAnonymous, GetErrorScope ;
+                        GetDeclaredFor, GetDeclaredModule,
+                        GetDeclaredDefinition, GetScope,
+                        GetFirstUsed, IsNameAnonymous, GetErrorScope,
+                        GetVarDeclTok, GetVarDeclTypeTok, GetVarDeclFullTok ;
 
 IMPORT M2ColorString ;
 IMPORT M2Error ;
@@ -71,6 +73,8 @@ CONST
    ColorDebug = FALSE ;
 
 TYPE
+   GetTokProcedure = PROCEDURE (CARDINAL) : CARDINAL ;
+
    errorType = (none, error, warning, note, chained, aborta) ;
    colorType = (unsetColor, noColor, quoteColor, filenameColor, errorColor,
                 warningColor, noteColor, keywordColor, locusColor,
@@ -704,11 +708,23 @@ END killErrorBlock ;
                        )
                  =:
 
-   op := {'a'|'q'|'t'|'d'|'n'|'s'|'D'|'I'|'U'|'E'|'W'|'A'} then =:
+   op := {'a'|'q'|'t'|'d'|'n'|'s'|'B'|'D'|'F'|'G'|'H'|'M'|'U'|'E'|'V'|'W'|'A'} then =:
 
    then := [ ':' ebnf ] =:
 *)
 
+(*
+    {%1V}     set the error message location to the name of the symbol declared.
+              For example foo: bar
+                          ^^^  some error message.
+    {%1H}     set the error message location to the whole declaration of the symbol.
+              For example foo: bar
+                          ^^^^^^^^ some error message.
+    {%1B}     set the error message location to the type declaration of the symbol.
+              For example foo: bar
+                               ^^^ some error message.
+*)
+
 
 (*
    InternalFormat - produces an informative internal error.
@@ -1185,6 +1201,72 @@ BEGIN
 END chooseError ;
 
 
+(*
+   doErrorScopeModule -
+*)
+
+PROCEDURE doErrorScopeModule (VAR eb: errorBlock; sym: CARDINAL) ;
+VAR
+   scope: CARDINAL ;
+BEGIN
+   scope := GetScope (sym) ;
+   IF IsModule (scope)
+   THEN
+      IF IsInnerModule (scope)
+      THEN
+         doError (eb, GetDeclaredMod (sym))
+      ELSE
+         doError (eb, GetDeclaredMod (sym))
+      END
+   ELSE
+      Assert (IsDefImp (scope)) ;
+      (* if this fails then we need to skip to the outer scope.
+         REPEAT
+            OuterModule := GetScope(OuterModule)
+         UNTIL GetScope(OuterModule)=NulSym.  *)
+      IF GetDeclaredModule (sym) = UnknownTokenNo
+      THEN
+         doError (eb, GetDeclaredDef (sym))
+      ELSE
+         doError (eb, GetDeclaredMod (sym))
+      END
+   END
+END doErrorScopeModule ;
+
+
+(*
+   doErrorScopeForward -
+*)
+
+PROCEDURE doErrorScopeForward (VAR eb: errorBlock; sym: CARDINAL) ;
+VAR
+   scope: CARDINAL ;
+BEGIN
+   scope := GetScope (sym) ;
+   IF IsModule (scope)
+   THEN
+      IF IsInnerModule (scope)
+      THEN
+         doError (eb, GetDeclaredFor (sym))
+      ELSE
+         doError (eb, GetDeclaredFor (sym))
+      END
+   ELSE
+      Assert (IsDefImp (scope)) ;
+      (* if this fails then we need to skip to the outer scope.
+         REPEAT
+            OuterModule := GetScope(OuterModule)
+         UNTIL GetScope(OuterModule)=NulSym.  *)
+      IF GetDeclaredModule (sym) = UnknownTokenNo
+      THEN
+         doError (eb, GetDeclaredDef (sym))
+      ELSE
+         doError (eb, GetDeclaredFor (sym))
+      END
+   END
+END doErrorScopeForward ;
+
+
 (*
    doErrorScopeMod - potentially create an error referring to the definition
                      module, fall back to the implementation or program module if
@@ -1206,33 +1288,82 @@ BEGIN
       THEN
          doError (eb, GetDeclaredMod (sym))
       ELSE
-         IF IsModule (scope)
-         THEN
-            IF IsInnerModule (scope)
-            THEN
-               doError (eb, GetDeclaredMod (sym))
-            ELSE
-               doError (eb, GetDeclaredMod (sym))
-            END
-         ELSE
-            Assert (IsDefImp (scope)) ;
-            (* if this fails then we need to skip to the outer scope.
-            REPEAT
-             OuterModule := GetScope(OuterModule)
-            UNTIL GetScope(OuterModule)=NulSym ;  *)
-            IF GetDeclaredModule (sym) = UnknownTokenNo
-            THEN
-               doError (eb, GetDeclaredDef (sym))
-            ELSE
-               doError (eb, GetDeclaredMod (sym))
-            END
-         END
+         doErrorScopeModule (eb, sym)
       END
    END ;
    M2Error.LeaveErrorScope
 END doErrorScopeMod ;
 
 
+(*
+   doErrorScopeFor - potentially create an error referring to the
+                     forward declaration, definition module, fall back
+                     to the implementation or program module if
+                     there is no declaration in the definition module.
+*)
+
+PROCEDURE doErrorScopeFor (VAR eb: errorBlock; sym: CARDINAL) ;
+VAR
+   scope: CARDINAL ;
+BEGIN
+   scope := GetScope (sym) ;
+   IF scope = NulSym
+   THEN
+      M2Error.EnterErrorScope (NIL) ;
+      doError (eb, GetDeclaredFor (sym))
+   ELSE
+      M2Error.EnterErrorScope (GetErrorScope (scope)) ;
+      IF IsProcedure (scope)
+      THEN
+         doError (eb, GetDeclaredFor (sym))
+      ELSE
+         doErrorScopeForward (eb, sym)
+      END
+   END ;
+   M2Error.LeaveErrorScope
+END doErrorScopeFor ;
+
+
+(*
+   doDeclaredMod - creates an error note where sym[bol] was declared.
+*)
+
+PROCEDURE declaredMod (VAR eb: errorBlock; sym: ARRAY OF CARDINAL; bol: CARDINAL) ;
+BEGIN
+   IF bol <= HIGH (sym)
+   THEN
+      doErrorScopeMod (eb, sym[bol])
+   END
+END declaredMod ;
+
+
+(*
+   doErrorScopeDefinition - use the declaration in the definitio module if one is available.
+*)
+
+PROCEDURE doErrorScopeDefinition (VAR eb: errorBlock; sym: CARDINAL) ;
+VAR
+   scope: CARDINAL ;
+BEGIN
+   scope := GetScope (sym) ;
+   IF IsModule (scope)
+   THEN
+      (* No definition module for a program module.  *)
+      doError (eb, GetDeclaredMod (sym))
+   ELSE
+      Assert (IsDefImp (scope)) ;
+      IF GetDeclaredDefinition (sym) = UnknownTokenNo
+      THEN
+         (* Fall back to the implementation module if no declaration exists
+            in the definition module.  *)
+         doError (eb, GetDeclaredMod (sym))
+      ELSE
+         doError (eb, GetDeclaredDef (sym))
+      END
+   END
+END doErrorScopeDefinition ;
+
+
 (*
    doErrorScopeDef - potentially create an error referring to the definition
                      module, fall back to the implementation or program module if
@@ -1247,12 +1378,73 @@ BEGIN
    IF scope = NulSym
    THEN
       M2Error.EnterErrorScope (NIL) ;
-      doError (eb, GetDeclaredDef (sym))
+      doError (eb, GetDeclaredFor (sym))
    ELSE
       M2Error.EnterErrorScope (GetErrorScope (scope)) ;
       IF IsProcedure (scope)
       THEN
          doError (eb, GetDeclaredDef (sym))
+      ELSE
+         doErrorScopeDefinition (eb, sym)
+      END
+   END ;
+   M2Error.LeaveErrorScope
+END doErrorScopeDef ;
+
+
+(*
+   doDeclaredDef - creates an error note where sym[bol] was declared.
+*)
+
+PROCEDURE declaredDef (VAR eb: errorBlock; sym: ARRAY OF CARDINAL; bol: CARDINAL) ;
+BEGIN
+   IF bol <= HIGH (sym)
+   THEN
+      doErrorScopeDef (eb, sym[bol])
+   END
+END declaredDef ;
+
+
+(*
+   doDeclaredFor - creates an error note where sym[bol] was declared.
+*)
+
+PROCEDURE declaredFor (VAR eb: errorBlock; sym: ARRAY OF CARDINAL; bol: CARDINAL) ;
+BEGIN
+   IF bol <= HIGH (sym)
+   THEN
+      doErrorScopeFor (eb, sym[bol])
+   END
+END declaredFor ;
+
+
+(*
+   doErrorScopeProc - determine the location for the error or warning from
+                      the default declaration.  For example parameters can be
+                      declared in definition, forward or in modules (proper procedure).
+                      Use GetVarParamTok to obtain a variable or parameter location.
+*)
+
+PROCEDURE doErrorScopeProc (VAR eb: errorBlock; sym: CARDINAL;
+                            GetVarParamTok: GetTokProcedure) ;
+VAR
+   scope: CARDINAL ;
+BEGIN
+   scope := GetScope (sym) ;
+   IF scope = NulSym
+   THEN
+      M2Error.EnterErrorScope (NIL) ;
+      doError (eb, GetDeclaredDef (sym))
+   ELSE
+      M2Error.EnterErrorScope (GetErrorScope (scope)) ;
+      IF IsProcedure (scope)
+      THEN
+         IF IsVar (sym) OR IsParameter (sym)
+         THEN
+            doError (eb, GetVarParamTok (sym))
+         ELSE
+            doError (eb, GetDeclaredDef (sym))
+         END
       ELSE
          IF IsModule (scope)
          THEN
@@ -1275,36 +1467,49 @@ BEGIN
                doError (eb, GetDeclaredDef (sym))
             END
          END
-   END
+      END
    END ;
    M2Error.LeaveErrorScope
-END doErrorScopeDef ;
+END doErrorScopeProc ;
 
 
 (*
-   declaredDef - creates an error note where sym[bol] was declared.
+   doDeclaredVar - creates an error note where sym[bol] was declared.
 *)
 
-PROCEDURE declaredDef (VAR eb: errorBlock; sym: ARRAY OF CARDINAL; bol: CARDINAL) ;
+PROCEDURE declaredVar (VAR eb: errorBlock; sym: ARRAY OF CARDINAL; bol: CARDINAL) ;
 BEGIN
    IF bol <= HIGH (sym)
    THEN
-      doErrorScopeDef (eb, sym[bol])
+      doErrorScopeProc (eb, sym[bol], GetVarDeclTok)
    END
-END declaredDef ;
+END declaredVar ;
 
 
 (*
-   doDeclaredMod - creates an error note where sym[bol] was declared.
+   doDeclaredType - creates an error note where sym[bol] was declared.
 *)
 
-PROCEDURE declaredMod (VAR eb: errorBlock; sym: ARRAY OF CARDINAL; bol: CARDINAL) ;
+PROCEDURE declaredType (VAR eb: errorBlock; sym: ARRAY OF CARDINAL; bol: CARDINAL) ;
 BEGIN
    IF bol <= HIGH (sym)
    THEN
-      doErrorScopeMod (eb, sym[bol])
+      doErrorScopeProc (eb, sym[bol], GetVarDeclTypeTok)
    END
-END declaredMod ;
+END declaredType ;
+
+
+(*
+   doDeclaredFull - creates an error note where sym[bol] was declared.
+*)
+
+PROCEDURE declaredFull (VAR eb: errorBlock; sym: ARRAY OF CARDINAL; bol: CARDINAL) ;
+BEGIN
+   IF bol <= HIGH (sym)
+   THEN
+      doErrorScopeProc (eb, sym[bol], GetVarDeclFullTok)
+   END
+END declaredFull ;
 
 
 (*
@@ -1479,7 +1684,8 @@ END copySym ;
 
 
 (*
-   op := {'a'|'q'|'t'|'d'|'n'|'s'| 'u' |'D'|'I'|'U'|'E'|'W'} then =:
+   op := {'a'|'q'|'t'|'d'|'n'|'s'|'B'|'D'|'F'|'G'|'H'|'M'|'U'|'E'|'V'|'W'|'A'} then =:
+   op := {'a'|'q'|'t'|'d'|'n'|'s'| 'u' |'D'|'F'|'G'|'M'|'U'|'E'|'W'} then =:
 *)
 
 PROCEDURE op (VAR eb: errorBlock;
@@ -1501,8 +1707,12 @@ BEGIN
       'n':  doNumber (eb, sym, bol) |
       'N':  doCount (eb, sym, bol) |
       's':  doSkipType (eb, sym, bol) |
-      'D':  declaredDef (eb, sym, bol) |
+      'B':  declaredType (eb, sym, bol) |
+      'H':  declaredFull (eb, sym, bol) |
+      'V':  declaredVar (eb, sym, bol) |
+      'G':  declaredFor (eb, sym, bol) |
       'M':  declaredMod (eb, sym, bol) |
+      'D':  declaredDef (eb, sym, bol) |
       'U':  used (eb, sym, bol) |
       'E':  eb.type := error |
       'A':  eb.type := aborta ;
@@ -1536,7 +1746,7 @@ BEGIN
       '4':  InternalError ('incorrect format spec, expecting %4 rather than % spec 4')
 
       ELSE
-         InternalFormat (eb, 'expecting one of [akqtdnpsuCDEFKNOPQRSTUWXYZ:<>%]', __LINE__)
+         InternalFormat (eb, 'expecting one of [akqtdnpsuCDEFGKNOPQRSTUWXYZ:<>%]', __LINE__)
       END ;
       INC (eb.ini)
    END ;
diff --git a/gcc/m2/gm2-compiler/M2Options.mod b/gcc/m2/gm2-compiler/M2Options.mod
index e4ffa362ff3..ecdad63657c 100644
--- a/gcc/m2/gm2-compiler/M2Options.mod
+++ b/gcc/m2/gm2-compiler/M2Options.mod
@@ -617,7 +617,7 @@ END SetCheckAll ;
                   TRUE is returned.
 *)
 
-PROCEDURE SetAutoInit (value: BOOLEAN) ;
+PROCEDURE SetAutoInit (value: BOOLEAN) : BOOLEAN ;
 BEGIN
    AutoInit := value ;
    RETURN TRUE
@@ -2007,16 +2007,6 @@ BEGIN
 END GetDumpDecl ;
 
 
-(*
-   GetDumpLangGimple - return TRUE if the gimple flag is set from SetM2Dump.
-*)
-
-PROCEDURE GetDumpGimple () : BOOLEAN ;
-BEGIN
-   RETURN DumpGimple
-END GetDumpGimple ;
-
-
 BEGIN
    cflag                             := FALSE ;  (* -c.  *)
    RuntimeModuleOverride             := InitString (DefaultRuntimeModuleOverride) ;
diff --git a/gcc/m2/gm2-compiler/M2Quads.def b/gcc/m2/gm2-compiler/M2Quads.def
index d3e2118abfd..12a4708ee67 100644
--- a/gcc/m2/gm2-compiler/M2Quads.def
+++ b/gcc/m2/gm2-compiler/M2Quads.def
@@ -78,7 +78,7 @@ EXPORT QUALIFIED StartBuildDefFile, StartBuildModFile, EndBuildFile,
                  BuildBinaryOp,
                  BuildUnaryOp,
                  RecordOp,
-                 Top,
+                 Top, DupFrame,
                  PopTF, PushTF, PopT, PushT, PopNothing, PopN, PushTFA,
                  PushTtok, PushTFtok, PopTFtok, PopTtok, PushTFAtok,
                  PushTFn, PushTFntok, PopTFn,
@@ -2528,6 +2528,13 @@ PROCEDURE DisplayStack ;
 PROCEDURE Top () : CARDINAL ;
 
 
+(*
+   DupFrame - duplicate the top of stack and push the new frame.
+*)
+
+PROCEDURE DupFrame ;
+
+
 (*
    WriteOperand - displays the operands name, symbol id and mode of addressing.
 *)
diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index 6230bf7d139..5ff0461d0d2 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -15618,6 +15618,22 @@ BEGIN
 END PopTF ;
 
 
+(*
+   DupFrame - duplicate the top of stack and push the new frame.
+*)
+
+PROCEDURE DupFrame ;
+VAR
+   f, newf: BoolFrame ;
+BEGIN
+   f := PopAddress (BoolStack) ;
+   PushAddress (BoolStack, f) ;
+   newf := newBoolFrame () ;
+   newf^ := f^ ;
+   PushAddress (BoolStack, newf)
+END DupFrame ;
+
+
 (*
    newBoolFrame - creates a new BoolFrame with all fields initialised to their defaults.
 *)
diff --git a/gcc/m2/gm2-compiler/M2Reserved.def b/gcc/m2/gm2-compiler/M2Reserved.def
index 7718937bdd7..1ea5fc6048b 100644
--- a/gcc/m2/gm2-compiler/M2Reserved.def
+++ b/gcc/m2/gm2-compiler/M2Reserved.def
@@ -44,7 +44,8 @@ EXPORT QUALIFIED IsReserved, tokToTok,
    AndTok, ArrayTok, BeginTok, ByTok, CaseTok, ConstTok,
    DefinitionTok, DivTok, DoTok, ElseTok, ElsifTok, EndTok,
    ExceptTok,
-   ExitTok, ExportTok, FinallyTok, ForTok, FromTok, IfTok,
+   ExitTok, ExportTok, FinallyTok, ForTok, ForwardTok,
+   FromTok, IfTok,
    ImplementationTok, ImportTok, InTok, LoopTok, ModTok,
    ModuleTok, NotTok, OfTok, OrTok,
    PackedSetTok, PointerTok, ProcedureTok,
@@ -71,7 +72,7 @@ TYPE
               arraytok, begintok, bytok, casetok, consttok,
               definitiontok, divtok, dotok, elsetok, elsiftok,
               endtok, excepttok, exittok, exporttok, finallytok,
-              fortok, fromtok, iftok, implementationtok,
+              fortok, forwardtok, fromtok, iftok, implementationtok,
               importtok, intok, looptok, modtok,
               moduletok, nottok, oftok, ortok,
               packedsettok, pointertok, proceduretok,
@@ -96,7 +97,8 @@ VAR
 
    AndTok, ArrayTok, BeginTok, ByTok, CaseTok, ConstTok,
    DefinitionTok, DivTok, DoTok, ElseTok, ElsifTok, EndTok,
-   ExceptTok, ExitTok, ExportTok, FinallyTok, ForTok, FromTok,
+   ExceptTok, ExitTok, ExportTok, FinallyTok, ForTok,
+   ForwardTok, FromTok,
    IfTok, ImplementationTok, ImportTok, InTok, LoopTok, ModTok,
    ModuleTok, NotTok, OfTok, OrTok,
    PackedSetTok, PointerTok, ProcedureTok,
diff --git a/gcc/m2/gm2-compiler/M2Reserved.mod b/gcc/m2/gm2-compiler/M2Reserved.mod
index da63ea5a16e..29ed87e4730 100644
--- a/gcc/m2/gm2-compiler/M2Reserved.mod
+++ b/gcc/m2/gm2-compiler/M2Reserved.mod
@@ -197,6 +197,9 @@ BEGIN
    ForTok := MakeKey('FOR') ;
    AddKeyword(ForTok, fortok) ;
 
+   ForwardTok := MakeKey('FORWARD') ;
+   AddKeyword(ForwardTok, forwardtok) ;
+
    FromTok := MakeKey('FROM') ;
    AddKeyword(FromTok, fromtok) ;
 
diff --git a/gcc/m2/gm2-compiler/M2Scaffold.mod b/gcc/m2/gm2-compiler/M2Scaffold.mod
index 777737ef4c0..f4f557edaf3 100644
--- a/gcc/m2/gm2-compiler/M2Scaffold.mod
+++ b/gcc/m2/gm2-compiler/M2Scaffold.mod
@@ -611,9 +611,9 @@ PROCEDURE DeclareArgEnvParams (tokno: CARDINAL; proc: CARDINAL) ;
 BEGIN
    Assert (IsProcedure (proc)) ;
    StartScope (proc) ;
-   Assert (PutParam (tokno, proc, 1, MakeKey ("argc"), Integer, FALSE)) ;
-   Assert (PutParam (tokno, proc, 2, MakeKey ("argv"), Address, FALSE)) ;
-   Assert (PutParam (tokno, proc, 3, MakeKey ("envp"), Address, FALSE)) ;
+   Assert (PutParam (tokno, proc, 1, MakeKey ("argc"), Integer, FALSE, tokno)) ;
+   Assert (PutParam (tokno, proc, 2, MakeKey ("argv"), Address, FALSE, tokno)) ;
+   Assert (PutParam (tokno, proc, 3, MakeKey ("envp"), Address, FALSE, tokno)) ;
    EndScope
 END DeclareArgEnvParams ;
 
diff --git a/gcc/m2/gm2-compiler/P0SymBuild.def b/gcc/m2/gm2-compiler/P0SymBuild.def
index e18e9c4851d..b81683eb199 100644
--- a/gcc/m2/gm2-compiler/P0SymBuild.def
+++ b/gcc/m2/gm2-compiler/P0SymBuild.def
@@ -103,6 +103,13 @@ PROCEDURE RegisterProcedure ;
 PROCEDURE EndProcedure ;
 
 
+(*
+   EndForward - ends building a forward procedure.
+*)
+
+PROCEDURE EndForward ;
+
+
 (*
    P0Init -
 *)
diff --git a/gcc/m2/gm2-compiler/P0SymBuild.mod b/gcc/m2/gm2-compiler/P0SymBuild.mod
index 2238f188a01..0939e33017c 100644
--- a/gcc/m2/gm2-compiler/P0SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P0SymBuild.mod
@@ -46,7 +46,7 @@ TYPE
                      name           : Name ;
                      kind           : Kind ;
                      sym            : CARDINAL ;
-                     level          : CARDINAL ;
+                     level          : INTEGER ;
                      token          : CARDINAL ;      (* where the block starts.  *)
                      LocalModules   : List ;          (* locally declared modules at the current level  *)
                      ImportedModules: Index ;         (* current list of imports for the scanned module *)
@@ -65,7 +65,7 @@ TYPE
 VAR
    headBP,
    curBP : BlockInfoPtr ;
-   Level : CARDINAL ;
+   Level : INTEGER ;
 
 
 (*
@@ -536,6 +536,18 @@ BEGIN
 END EndProcedure ;
 
 
+(*
+   EndForward - ends building a forward procedure.
+*)
+
+PROCEDURE EndForward ;
+BEGIN
+   PopN (1) ;
+   EndBlock ;
+   M2Error.LeaveErrorScope
+END EndForward ;
+
+
 (*
    EndModule -
 *)
diff --git a/gcc/m2/gm2-compiler/P0SyntaxCheck.bnf b/gcc/m2/gm2-compiler/P0SyntaxCheck.bnf
index 07f861adac9..868484c9b62 100644
--- a/gcc/m2/gm2-compiler/P0SyntaxCheck.bnf
+++ b/gcc/m2/gm2-compiler/P0SyntaxCheck.bnf
@@ -47,9 +47,14 @@ IMPLEMENTATION MODULE P0SyntaxCheck ;
 FROM M2LexBuf IMPORT currentstring, currenttoken, GetToken, InsertToken,
                      InsertTokenAndRewind, GetTokenNo, DisplayToken, DumpTokens ;
 
+FROM M2Quads IMPORT PushT, PushTF, IsAutoPushOn, PushAutoOff, PushAutoOn,
+                    PopAuto, DisplayStack, PushTFtok, PushTtok, DupFrame,
+                    Top ;
+
+FROM M2Reserved IMPORT tokToTok, toktype, NulTok, ImportTok, ExportTok,
+                       QualifiedTok, UnQualifiedTok, BuiltinTok, InlineTok ;
+
 FROM M2MetaError IMPORT MetaErrorStringT0 ;
-FROM M2Quads IMPORT PushT, PushTF, IsAutoPushOn, PushAutoOff, PushAutoOn, PopAuto, DisplayStack, PushTFtok, PushTtok ;
-FROM M2Reserved IMPORT tokToTok, toktype, NulTok, ImportTok, ExportTok, QualifiedTok, UnQualifiedTok, BuiltinTok, InlineTok ;
 FROM P2SymBuild IMPORT BuildString, BuildNumber ;
 FROM NameKey IMPORT Name, NulName, makekey ;
 FROM StrLib IMPORT StrCopy, StrConCat, StrEqual ;
@@ -64,7 +69,7 @@ FROM P0SymBuild IMPORT RegisterImports, RegisterInnerImports,
                        RegisterProgramModule,
                        RegisterImplementationModule, RegisterDefinitionModule,
                        RegisterInnerModule, EndModule,
-                       RegisterProcedure, EndProcedure ;
+                       RegisterProcedure, EndProcedure, EndForward ;
 
 FROM SymbolTable IMPORT NulSym, PutModuleContainsBuiltin, PutHiddenTypeDeclared ;
 
@@ -88,6 +93,16 @@ VAR
    InsertCount      : CARDINAL ;
 
 
+(*
+   BlockAssert - wrap an Assert specifically for blocks.
+*)
+
+PROCEDURE BlockAssert (value: BOOLEAN) ;
+BEGIN
+   Assert (value) ;
+END BlockAssert ;
+
+
 PROCEDURE ErrorString (s: String) ;
 BEGIN
    MetaErrorStringT0 (GetTokenNo (), s) ;
@@ -487,6 +502,7 @@ token   'EXIT'            exittok
 token   'EXPORT'          exporttok
 token   'FINALLY'         finallytok
 token   'FOR'             fortok
+token   'FORWARD'         forwardtok
 token   'FROM'            fromtok
 token   'IF'              iftok
 token   'IMPLEMENTATION'  implementationtok
@@ -805,11 +821,20 @@ LoopStatement := "LOOP" StatementSequence "END" =:
 
 WithStatement := "WITH" Designator "DO" StatementSequence "END" =:
 
-ProcedureDeclaration :=
-                        ProcedureHeading ";" ( ProcedureBlock             % PushAutoOn %
-                                                              Ident       % EndProcedure %
+ProcedureDeclaration :=                                                   % VAR top: CARDINAL ; %
+                                                                          % top := Top () %
+                        ProcedureHeading ";" PostProcedureHeading         % BlockAssert (top = Top ()) %
+                                                                  =:
+
+PostProcedureHeading := ProperProcedure | ForwardDeclaration =:
+
+ForwardDeclaration := "FORWARD"                                           % EndForward %
+                    =:
+
+ProperProcedure := ProcedureBlock                                         % PushAutoOn %
+                                  Ident                                   % EndProcedure %
                                                                           % PopAuto %
-                                                                    ) =:
+                                         =:
 
 DefineBuiltinProcedure := [ "__ATTRIBUTE__" "__BUILTIN__" "(" "(" Ident ")" ")" |
                             "__INLINE__" ] =:
diff --git a/gcc/m2/gm2-compiler/P1Build.bnf b/gcc/m2/gm2-compiler/P1Build.bnf
index a3534fcb84d..ac96ddb383f 100644
--- a/gcc/m2/gm2-compiler/P1Build.bnf
+++ b/gcc/m2/gm2-compiler/P1Build.bnf
@@ -46,7 +46,7 @@ IMPLEMENTATION MODULE P1Build ;
 
 FROM M2LexBuf IMPORT currentstring, currenttoken, GetToken, InsertToken, InsertTokenAndRewind, GetTokenNo ;
 FROM M2Error IMPORT ErrorStringAt ;
-FROM M2Quads IMPORT PushT, PushTF, PushTFtok, IsAutoPushOn, PushAutoOff, PushAutoOn, PopAuto, DisplayStack ;
+FROM M2Quads IMPORT Top, PushT, PushTF, PushTFtok, IsAutoPushOn, PushAutoOff, PushAutoOn, PopAuto, DisplayStack, DupFrame ;
 FROM M2Reserved IMPORT tokToTok, toktype, NulTok, ImportTok, ExportTok, QualifiedTok, UnQualifiedTok, BuiltinTok, InlineTok ;
 FROM NameKey IMPORT Name, NulName, makekey ;
 FROM StrLib IMPORT StrCopy, StrConCat, StrEqual ;
@@ -89,6 +89,7 @@ FROM P1SymBuild IMPORT P1StartBuildProgramModule,
                        BuildProcedureHeading,
                        StartBuildProcedure,
                        EndBuildProcedure,
+                       EndBuildForward,
                        AddImportToImportStatement,
                        BuildImportStatement ;
 
@@ -482,6 +483,7 @@ token   'EXIT'            exittok
 token   'EXPORT'          exporttok
 token   'FINALLY'         finallytok
 token   'FOR'             fortok
+token   'FORWARD'         forwardtok
 token   'FROM'            fromtok
 token   'IF'              iftok
 token   'IMPLEMENTATION'  implementationtok
@@ -869,10 +871,20 @@ LoopStatement := "LOOP" StatementSequence "END" =:
 
 WithStatement := "WITH" Designator "DO" StatementSequence "END" =:
 
-ProcedureDeclaration := ProcedureHeading ";" ( ProcedureBlock              % PushAutoOn %
-                        Ident )                                            % EndBuildProcedure %
+ProcedureDeclaration :=                                                    % VAR top: CARDINAL ; %
+                                                                           % top := Top () %
+                        ProcedureHeading ";" PostProcedureHeading          % Assert (top = Top ()) %
+                                                                  =:
+
+PostProcedureHeading := ProperProcedure | ForwardDeclaration =:
+
+ForwardDeclaration := "FORWARD"                                            % EndBuildForward %
+                    =:
+
+ProperProcedure := ProcedureBlock                                          % PushAutoOn %
+                                  Ident                                    % EndBuildProcedure %
                                                                            % PopAuto %
-                      =:
+                                        =:
 
 DefineBuiltinProcedure := "__ATTRIBUTE__" "__BUILTIN__" "(" "(" Ident ")" ")"
                           | "__INLINE__"                                   % PushT(InlineTok) %
diff --git a/gcc/m2/gm2-compiler/P1SymBuild.def b/gcc/m2/gm2-compiler/P1SymBuild.def
index c909d7e2387..89ed3ad480b 100644
--- a/gcc/m2/gm2-compiler/P1SymBuild.def
+++ b/gcc/m2/gm2-compiler/P1SymBuild.def
@@ -25,37 +25,12 @@ DEFINITION MODULE P1SymBuild ;
    Title      : P1SymBuild
    Author     : Gaius Mulley
    Date       : 24/6/87
-   LastEdit   : Sat Dec  9 11:34:34 EST 1989
    System     : UNIX (GNU Modula-2)
    Description: Builds symbol entities, types, constants, variables,
                 procedures, modules and scopes.
                 All procedures are only called during Pass 1.
 *)
 
-EXPORT QUALIFIED P1StartBuildDefinitionModule,
-                 P1EndBuildDefinitionModule,
-                 P1StartBuildImplementationModule,
-                 P1EndBuildImplementationModule,
-                 P1StartBuildProgramModule,
-                 P1EndBuildProgramModule,
-                 StartBuildInnerModule,
-                 EndBuildInnerModule,
-                 BuildImportOuterModule,
-                 BuildExportOuterModule,
-                 BuildImportInnerModule,
-                 BuildExportInnerModule,
-                 StartBuildEnumeration,
-                 EndBuildEnumeration,
-                 BuildHiddenType,
-                 StartBuildProcedure,
-                 EndBuildProcedure,
-                 BuildProcedureHeading,
-                 BuildNulName,
-                 BuildTypeEnd,
-                 CheckExplicitExported,
-                 BuildImportStatement,
-                 AddImportToImportStatement ;
-
 
 (*
    StartBuildDefinitionModule - Creates a definition module and starts
@@ -496,6 +471,27 @@ PROCEDURE EndBuildProcedure ;
 PROCEDURE BuildProcedureHeading ;
 
 
+(*
+   EndBuildForward - Ends building a forward procedure declaration.
+
+                     The Stack:
+
+                     (This procedure is not defined in definition module)
+
+                     Entry                 Exit
+
+              Ptr ->
+                     +------------+
+                     | ProcSym    |
+                     |------------|
+                     | NameStart  |
+                     |------------|
+                                           Empty
+*)
+
+PROCEDURE EndBuildForward ;
+
+
 (*
    BuildNulName - Pushes a NulKey onto the top of the stack.
                   The Stack:
diff --git a/gcc/m2/gm2-compiler/P1SymBuild.mod b/gcc/m2/gm2-compiler/P1SymBuild.mod
index 53aab819009..40a83b7bacb 100644
--- a/gcc/m2/gm2-compiler/P1SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P1SymBuild.mod
@@ -82,6 +82,9 @@ FROM SymbolTable IMPORT NulSym,
                         PutProcedureBuiltin, PutProcedureInline,
                         GetSymName,
                         ResolveImports, PutDeclared,
+                        GetProcedureDeclaredForward, PutProcedureDeclaredForward,
+                        GetProcedureDeclaredProper, PutProcedureDeclaredProper,
+                        GetProcedureDeclaredDefinition, PutProcedureDeclaredDefinition,
                         MakeError, MakeErrorS,
                         DisplayTrees ;
 
@@ -931,14 +934,20 @@ BEGIN
    ProcSym := RequestSym (tokno, name) ;
    IF IsUnknown (ProcSym)
    THEN
-      (*
-         May have been compiled in DEF or IMP module, remember that IMP maybe
-         compiled before corresponding DEF module.
-      *)
+      (* A procedure may be created in a definition or implementation module, remember
+         that an implementation module maybe compiled before the corresponding
+         definition module.
+
+         The procedure can also be created during a forward declaration.
+         We record the forward declaration as the token of creation and adjust this
+         later when we see the proper procedure declaration.  Likwwise when the forward
+         keyword is seen we assign the procedure forward token location.  *)
       ProcSym := MakeProcedure (tokno, name)
    ELSIF IsProcedure (ProcSym)
    THEN
-      (* declared in the other module, we record declaration here as well *)
+      (* Declared in the other module or it could have been declared by a forward decl,
+         we overwrite the declaration to tokno.  The forward location is assigned in
+         EndBuildForward.  *)
       PutDeclared (tokno, ProcSym)
    ELSE
       MetaError1 ('expecting a procedure name and symbol {%1Ea} has been declared as a {%1d}', ProcSym) ;
@@ -957,10 +966,20 @@ BEGIN
          PutProcedureBuiltin (ProcSym, builtin)
       END
    END ;
-   PushT (ProcSym) ;
+   PushTtok (ProcSym, tokno) ;
    StartScope (ProcSym) ;
-   IF NOT CompilingDefinitionModule ()
+   IF CompilingDefinitionModule ()
    THEN
+      IF GetProcedureDeclaredDefinition (ProcSym) = UnknownTokenNo
+      THEN
+         PutProcedureDeclaredDefinition (ProcSym, tokno)
+      ELSE
+         MetaErrorT1 (GetProcedureDeclaredDefinition (ProcSym),
+                      'first declaration of procedure {%1Ea} in the definition module', ProcSym) ;
+         MetaErrorT1 (tokno,
+                      'duplicate declaration of procedure {%1Ea} in the definition module', ProcSym)
+      END
+   ELSE
       EnterBlock (name)
    END
 END StartBuildProcedure ;
@@ -990,13 +1009,14 @@ END StartBuildProcedure ;
 
 PROCEDURE EndBuildProcedure ;
 VAR
+   tok,
    start, end: CARDINAL ;
    ProcSym   : CARDINAL ;
    NameEnd,
    NameStart : Name ;
 BEGIN
    PopTtok(NameEnd, end) ;
-   PopT(ProcSym) ;
+   PopTtok(ProcSym, tok) ;
    PopTtok(NameStart, start) ;
    IF NameEnd#NameStart
    THEN
@@ -1014,11 +1034,59 @@ BEGIN
       END
    END ;
    EndScope ;
+   IF GetProcedureDeclaredProper (ProcSym) = UnknownTokenNo
+   THEN
+      PutProcedureDeclaredProper (ProcSym, tok)
+   ELSE
+      MetaErrorT1 (GetProcedureDeclaredProper (ProcSym),
+                   'first proper declaration of procedure {%1Ea}', ProcSym) ;
+      MetaErrorT1 (tok, 'procedure {%1Ea} has already been declared', ProcSym)
+   END ;
    Assert (NOT CompilingDefinitionModule()) ;
    LeaveBlock
 END EndBuildProcedure ;
 
 
+(*
+   EndBuildForward - Ends building a forward procedure declaration.
+
+                     The Stack:
+
+                     (This procedure is not defined in definition module)
+
+                     Entry                 Exit
+
+              Ptr ->
+                     +------------+
+                     | ProcSym    |
+                     |------------|
+                     | NameStart  |
+                     |------------|
+                                           Empty
+*)
+
+PROCEDURE EndBuildForward ;
+VAR
+   ProcSym: CARDINAL ;
+   tok    : CARDINAL ;
+BEGIN
+   ProcSym := OperandT (1) ;
+   tok := OperandTok (1) ;
+   IF GetProcedureDeclaredForward (ProcSym) = UnknownTokenNo
+   THEN
+      PutProcedureDeclaredForward (ProcSym, tok)
+   ELSE
+      MetaErrorT1 (GetProcedureDeclaredForward (ProcSym),
+                   'first forward declaration of {%1Ea}', ProcSym) ;
+      MetaErrorT1 (tok, 'forward declaration of procedure {%1Ea} has already occurred', ProcSym)
+   END ;
+   PopN (2) ;
+   EndScope ;
+   Assert (NOT CompilingDefinitionModule ()) ;
+   LeaveBlock
+END EndBuildForward ;
+
+
 (*
    BuildProcedureHeading - Builds a procedure heading for the definition
                            module procedures.
diff --git a/gcc/m2/gm2-compiler/P2Build.bnf b/gcc/m2/gm2-compiler/P2Build.bnf
index d69ce2cf17e..3946f243134 100644
--- a/gcc/m2/gm2-compiler/P2Build.bnf
+++ b/gcc/m2/gm2-compiler/P2Build.bnf
@@ -97,6 +97,9 @@ FROM P2SymBuild IMPORT P2StartBuildProgramModule,
                        EndBuildProcedure,
                        BuildFunction, BuildOptFunction,
                        BuildNoReturnAttribute,
+                       BuildProcedureDefinedByForward,
+                       BuildProcedureDefinedByProper,
+                       EndBuildForward,
 
                        BuildPointerType,
                        BuildRecord, BuildFieldRecord,
@@ -115,7 +118,8 @@ FROM P2SymBuild IMPORT P2StartBuildProgramModule,
                        DetermineType, PushType, PopType,
                        SeenUnknown, SeenSet, SeenString, SeenArray, SeenConstructor,
                        SeenCast,
-                       PushRememberConstant, PopRememberConstant ;
+                       PushRememberConstant, PopRememberConstant,
+                       CheckProcedure ;
 
 FROM M2Reserved IMPORT ArrayTok, VarTok ;
 
@@ -499,6 +503,7 @@ token   'EXIT'            exittok
 token   'EXPORT'          exporttok
 token   'FINALLY'         finallytok
 token   'FOR'             fortok
+token   'FORWARD'         forwardtok
 token   'FROM'            fromtok
 token   'IF'              iftok
 token   'IMPLEMENTATION'  implementationtok
@@ -884,7 +889,9 @@ FormalTypeList := "(" ( ")" FormalReturn |
                         ProcedureParameters
                   ")" FormalReturn ) =:
 
-FormalReturn := [ ":" OptReturnType ] =:
+FormalReturn := ( ":" OptReturnType |                                      % CheckProcedure %
+                )
+              =:
 
 OptReturnType := "[" Qualident                                             % BuildOptFunction %
                                "]" | Qualident                             % BuildFunction %
@@ -1008,13 +1015,22 @@ LoopStatement := "LOOP" StatementSequence "END" =:
 
 WithStatement := "WITH" Designator "DO" StatementSequence "END" =:
 
-ProcedureDeclaration := ProcedureHeading                                   % Assert(IsProcedure(OperandT(1))) %
-                                         ";" ( ProcedureBlock
-                                                                           % Assert(IsProcedure(OperandT(1))) %
-                        Ident )
-                                                                           % EndBuildProcedure %
+ProcedureDeclaration :=                                                    % VAR top: CARDINAL ; %
+                                                                           % top := Top () %
+                        ProcedureHeading                                   % Assert(IsProcedure(OperandT(1))) %
+                                         ";" PostProcedureHeading          % Assert (top = Top ()) %
+                                                                  =:
 
-                      =:
+PostProcedureHeading := ProperProcedure | ForwardDeclaration =:
+
+ForwardDeclaration := "FORWARD"                                            % Assert (IsProcedure (OperandT (1))) %
+                                                                           % BuildProcedureDefinedByForward (OperandT (1)) %
+                                                                           % EndBuildForward %
+                    =:
+
+ProperProcedure := ProcedureBlock                                          % Assert(IsProcedure(OperandT(1))) %
+                                  Ident                                    % EndBuildProcedure %
+                                        =:
 
 DefineBuiltinProcedure :=  [ "__ATTRIBUTE__" "__BUILTIN__"
                               "(" "("                                      % PushAutoOff %
@@ -1064,6 +1080,7 @@ AttributeUnused := [ "<*"                                                  % Pus
 -- error messages
 
 ProcedureBlock :=                                                          % Assert(IsProcedure(OperandT(1))) %
+                                                                           % BuildProcedureDefinedByProper (OperandT (1)) %
                   {                                                        % Assert(IsProcedure(OperandT(1))) %
                     Declaration                                            % Assert(IsProcedure(OperandT(1))) %
                                 } [ "BEGIN" ProcedureBlockBody ] "END"     % Assert(IsProcedure(OperandT(1))) %
@@ -1161,7 +1178,7 @@ NonVarFPSection :=                                                         % VAR
                                                                            % BuildFPSection %
                 =:
 
-FormalType := "ARRAY" "OF"                                                 % VAR n: CARDINAL ; %
+FormalType := "ARRAY" "OF"                                                 % VAR n, tok: CARDINAL ; %
                                                                            % PushTF(ArrayTok, 1) %
                            { "ARRAY" "OF"                                  % PopTF(ArrayTok, n) %
                                                                            % INC(n) %
@@ -1169,9 +1186,9 @@ FormalType := "ARRAY" "OF"                                                 % VAR
                                           } Qualident
                                                       |                    % VAR Sym, Type: CARDINAL ; %
                                                         Qualident
-                                                                           % PopTF(Sym, Type) ;
+                                                                           % PopTFtok (Sym, Type, tok) ;
                                                                              PushT(NulTok) ;
-                                                                             PushTF(Sym, Type) %
+                                                                             PushTFtok (Sym, Type, tok) %
             =:
 
 ModuleDeclaration := "MODULE"                                              % M2Error.DefaultInnerModule %
diff --git a/gcc/m2/gm2-compiler/P2SymBuild.def b/gcc/m2/gm2-compiler/P2SymBuild.def
index 89a83144011..45b52f7f02d 100644
--- a/gcc/m2/gm2-compiler/P2SymBuild.def
+++ b/gcc/m2/gm2-compiler/P2SymBuild.def
@@ -30,69 +30,6 @@ DEFINITION MODULE P2SymBuild ;
    Description: pass 2 symbol creation.
 *)
 
-EXPORT QUALIFIED P2StartBuildDefModule,
-                 P2EndBuildDefModule,
-                 P2StartBuildImplementationModule,
-                 P2EndBuildImplementationModule,
-                 P2StartBuildProgramModule,
-                 P2EndBuildProgramModule,
-                 StartBuildInnerModule,
-                 EndBuildInnerModule,
-                 BuildImportOuterModule,
-                 BuildExportOuterModule,
-                 BuildImportInnerModule,
-                 BuildExportInnerModule,
-                 BlockStart, BlockEnd, BlockBegin, BlockFinally,
-                 BuildNumber,
-                 BuildString,
-                 BuildConst,
-                 BuildSubrange, BuildAligned,
-                 BuildTypeAlignment, BuildVarAlignment,
-                 P2BuildDefaultFieldAlignment, BuildPragmaConst,
-                 BuildVariable,
-                 StartBuildEnumeration,
-                 BuildType,
-                 StartBuildFormalParameters,
-                 EndBuildFormalParameters,
-                 BuildProcedureHeading,
-                 BuildFPSection,
-                 BuildVarArgs,
-                 BuildFormalVarArgs,
-                 BuildOptArg,
-                 StartBuildProcedure,
-                 EndBuildProcedure,
-                 BuildNoReturnAttribute,
-                 BuildFunction,
-                 BuildOptFunction,
-                 BuildPointerType,
-                 BuildSetType,
-                 BuildRecord,
-                 BuildFieldRecord,
-                 StartBuildVarient,
-                 EndBuildVarient,
-                 BuildVarientSelector,
-                 StartBuildVarientFieldRecord,
-                 EndBuildVarientFieldRecord,
-                 BuildNulName,
-                 BuildTypeEnd,
-                 StartBuildArray, BuildArrayComma,
-                 EndBuildArray,
-                 BuildFieldArray,
-                 BuildProcedureType,
-                 BuildFormalType,
-                 SeenCast,
-                 SeenSet,
-                 SeenArray,
-                 SeenConstructor,
-                 SeenUnknown,
-                 SeenString,
-                 SeenBoolean,
-                 SeenCType, SeenRType, SeenZType,
-                 DetermineType, PushType, PopType,
-                 PushRememberConstant,
-                 PopRememberConstant,
-                 RememberConstant ;
-
 
 (*
    BlockStart - tokno is the module/procedure/implementation/definition token
@@ -864,6 +801,13 @@ PROCEDURE StartBuildProcedure ;
 PROCEDURE EndBuildProcedure ;
 
 
+(*
+   EndBuildForward - ends building a forward procedure.
+*)
+
+PROCEDURE EndBuildForward ;
+
+
 (*
    BuildNoReturnAttribute - provide an interface to the symbol table module.
 *)
@@ -871,6 +815,39 @@ PROCEDURE EndBuildProcedure ;
 PROCEDURE BuildNoReturnAttribute (procedureSym: CARDINAL) ;
 
 
+(*
+   BuildProcedureDefinedByForward - indicates that the parameters for ProcSym have
+                                    been defined using the FORWARD keyword.
+*)
+
+PROCEDURE BuildProcedureDefinedByForward (ProcSym: CARDINAL) ;
+
+
+(*
+   BuildProcedureDefinedByProper - indicates that the parameters for ProcSym have
+                                   been defined during a proper procedure declaration.
+*)
+
+PROCEDURE BuildProcedureDefinedByProper (ProcSym: CARDINAL) ;
+
+
+(*
+   CheckProcedure - checks to see that the top of stack procedure
+                    has not been declared as a procedure function.
+
+                    The Stack:
+
+                    Entry                 Exit
+
+             Ptr ->                                      <- Ptr
+                    +------------+        +------------+
+                    | ProcSym    |        | ProcSym    |
+                    |------------|        |------------|
+*)
+
+PROCEDURE CheckProcedure ;
+
+
 (*
    BuildPointerType - builds a pointer type.
                       The Stack:
diff --git a/gcc/m2/gm2-compiler/P2SymBuild.mod b/gcc/m2/gm2-compiler/P2SymBuild.mod
index a5060242a0e..9edb911949e 100644
--- a/gcc/m2/gm2-compiler/P2SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P2SymBuild.mod
@@ -27,10 +27,9 @@ FROM NameKey IMPORT Name, MakeKey, makekey, KeyToCharStar, NulName, LengthKey, W
 FROM StrLib IMPORT StrEqual ;
 FROM M2Debug IMPORT Assert, WriteDebug ;
 FROM M2LexBuf IMPORT UnknownTokenNo, GetTokenNo, MakeVirtual2Tok ;
-FROM M2Error IMPORT InternalError, WriteFormat1, WriteFormat2, WriteFormat0, ErrorStringAt, ErrorStringAt2 ;
-FROM M2MetaError IMPORT MetaError1, MetaError2, MetaErrorsT2, MetaErrors1, MetaErrors2, MetaErrorString1 ;
+FROM M2Error IMPORT InternalError, WriteFormat1, WriteFormat2, WriteFormat0, ErrorStringAt, ErrorStringAt2, WarnStringAt ;
 FROM DynamicStrings IMPORT String, InitString, InitStringCharStar, Mark, Slice, ConCat, KillString, string ;
-FROM FormatStrings IMPORT Sprintf0, Sprintf1, Sprintf2, Sprintf4 ;
+FROM FormatStrings IMPORT Sprintf0, Sprintf1, Sprintf2, Sprintf3, Sprintf4 ;
 FROM M2Printf IMPORT printf0, printf1, printf2, printf3 ;
 FROM M2StackWord IMPORT StackOfWord, InitStackWord, PushWord, PopWord ;
 FROM M2Options IMPORT PedanticParamNames, ExtendedOpaque ;
@@ -43,6 +42,10 @@ FROM M2LexBuf IMPORT TokenToLocation ;
 FROM M2Reserved IMPORT ImportTok, ExportTok, QualifiedTok, UnQualifiedTok,
                        NulTok, VarTok, ArrayTok ;
 
+FROM M2MetaError IMPORT MetaError1, MetaError2, MetaErrorsT2, MetaErrors1,
+                        MetaErrors2, MetaErrorString1, MetaErrorStringT1,
+                        MetaErrorString3, MetaErrorStringT3 ;
+
 FROM FifoQueue IMPORT GetEnumerationFromFifoQueue, PutSubrangeIntoFifoQueue,
                       PutConstructorIntoFifoQueue, PutConstIntoFifoQueue ;
 
@@ -60,7 +63,7 @@ FROM SymbolTable IMPORT NulSym,
                         MakeVar, MakeType, PutType,
                         MakeModuleCtor,
                         PutMode, PutDeclared, GetParameterShadowVar,
-                        PutFieldEnumeration, PutSubrange, PutVar, PutConst,
+                        PutFieldEnumeration, PutSubrange, PutVar, PutVarTok, PutConst,
                         PutConstSet, PutConstructor,
                         IsDefImp, IsType, IsRecord, IsRecordField, IsPointer,
                         IsSubrange, IsEnumeration, IsConstString,
@@ -87,6 +90,7 @@ FROM SymbolTable IMPORT NulSym,
                         MakeVarient, MakeFieldVarient,
                         MakeArray, PutArraySubscript,
                         MakeSubscript, PutSubscript,
+                        MakeError,
                         PutConstStringKnown, GetString,
                         PutArray, IsArray,
                         GetType, SkipType,
@@ -108,8 +112,15 @@ FROM SymbolTable IMPORT NulSym,
                         ParametersDefinedInDefinition,
                         ParametersDefinedInImplementation,
                         ProcedureParametersDefined,
+                        GetProcedureDeclaredDefinition,
+                        GetProcedureDeclaredForward,
+                        GetProcedureDeclaredProper,
+                        GetParametersDefinedByForward,
+                        GetParametersDefinedByProper,
                         PutProcedureNoReturn,
                         PutProcedureParameterHeapVars,
+                        PutParametersDefinedByForward,
+                        PutParametersDefinedByProper,
                         CheckForUnImplementedExports,
                         CheckForUndeclaredExports,
                         IsHiddenTypeDeclared,
@@ -125,6 +136,10 @@ FROM SymbolTable IMPORT NulSym,
                         RequestSym,
                         PutDeclared,
                         GetPackedEquivalent,
+                        GetVarDeclTok,
+                        GetVarDeclFullTok,
+                        PutVarDeclTok,
+                        GetVarDeclTypeTok,
                         DisplayTrees ;
 
 FROM M2Batch IMPORT MakeDefinitionSource,
@@ -1143,12 +1158,13 @@ PROCEDURE BuildVariable ;
 VAR
    name     : Name ;
    tok,
+   typetok,
    AtAddress,
    Type,
    Var,
    i, n     : CARDINAL ;
 BEGIN
-   PopTF (Type, name) ;
+   PopTFtok (Type, name, typetok) ;
    PopT (n) ;
    i := 1 ;
    WHILE i <= n DO
@@ -1160,11 +1176,12 @@ BEGIN
          PutVariableAtAddress (Var, NulSym) ;
          PutMode (Var, LeftValue)
       END ;
-      PutVar (Var, Type) ;
+      PutVarTok (Var, Type, typetok) ;
       tok := OperandTok (n+1-i) ;
       IF tok # UnknownTokenNo
       THEN
          PutDeclared (tok, Var) ;
+         PutVarDeclTok (Var, tok) ;
          name := OperandT (n+1-i) ;
          (* printf3 ('declaring variable %a at tok %d Type %d \n', name, tok, Type) *)
          (*
@@ -1316,12 +1333,9 @@ BEGIN
    ProcSym := GetDeclareSym (tokno, name) ;
    IF IsUnknown (ProcSym)
    THEN
-      (*
-         May have been compiled in the definition or implementation module,
-         remember that implementation maybe compiled before corresponding
-         definition module.
-         - no definition should always be compilied before implementation modules.
-      *)
+      (* May have been compiled in the definition or implementation module.
+         Note we always see an implementation module before its corresponding
+         definition module.  *)
       ProcSym := MakeProcedure (tokno, name)
    ELSIF IsProcedure (ProcSym)
    THEN
@@ -1385,6 +1399,18 @@ BEGIN
 END EndBuildProcedure ;
 
 
+(*
+   EndBuildForward - ends building a forward procedure.
+*)
+
+PROCEDURE EndBuildForward ;
+BEGIN
+   PopN (2) ;
+   EndScope ;
+   M2Error.LeaveErrorScope
+END EndBuildForward ;
+
+
 (*
    BuildProcedureHeading - Builds a procedure heading for the definition
                            module procedures.
@@ -1411,6 +1437,8 @@ VAR
    ProcSym  : CARDINAL ;
    NameStart: Name ;
 BEGIN
+   ProcSym := OperandT (1) ;
+   ProcedureParametersDefined (ProcSym) ;
    IF CompilingDefinitionModule()
    THEN
       PopT(ProcSym) ;
@@ -1454,7 +1482,6 @@ END BuildProcedureHeading ;
 
 PROCEDURE BuildFPSection ;
 VAR
-   n         : Name ;
    ProcSym,
    ParamTotal: CARDINAL ;
 BEGIN
@@ -1464,11 +1491,7 @@ BEGIN
    Assert(IsProcedure(ProcSym)) ;
    IF CompilingDefinitionModule()
    THEN
-      IF AreParametersDefinedInDefinition(ProcSym) AND (ParamTotal=0)
-      THEN
-         n := GetSymName(ProcSym) ;
-         WriteFormat1('cannot declare procedure %a twice in the definition module', n)
-      ELSIF AreParametersDefinedInImplementation(ProcSym)
+      IF AreParametersDefinedInImplementation(ProcSym)
       THEN
          CheckFormalParameterSection
       ELSE
@@ -1476,16 +1499,12 @@ BEGIN
          IF ParamTotal=0
          THEN
             ParametersDefinedInDefinition(ProcSym) ;
-            ProcedureParametersDefined(ProcSym)
+            (* ProcedureParametersDefined(ProcSym) *)
          END
       END
    ELSIF CompilingImplementationModule()
    THEN
-      IF AreParametersDefinedInImplementation(ProcSym) AND (ParamTotal=0)
-      THEN
-         n := GetSymName(ProcSym) ;
-         WriteFormat1('cannot declare procedure %a twice in the implementation module', n)
-      ELSIF AreParametersDefinedInDefinition(ProcSym)
+      IF AreParametersDefinedInDefinition(ProcSym) OR GetParametersDefinedByForward (ProcSym)
       THEN
          CheckFormalParameterSection
       ELSE
@@ -1493,20 +1512,19 @@ BEGIN
          IF ParamTotal=0
          THEN
             ParametersDefinedInImplementation(ProcSym) ;
-            ProcedureParametersDefined(ProcSym)
+            (* ProcedureParametersDefined(ProcSym) *)
          END
       END
    ELSIF CompilingProgramModule()
    THEN
-      IF AreProcedureParametersDefined(ProcSym) AND (ParamTotal=0)
+      IF GetParametersDefinedByForward (ProcSym) OR AreProcedureParametersDefined (ProcSym)
       THEN
-         n := GetSymName(ProcSym) ;
-         WriteFormat1('procedure %a parameters already declared in program module', n)
+         CheckFormalParameterSection
       ELSE
          BuildFormalParameterSection ;
          IF ParamTotal=0
          THEN
-            ProcedureParametersDefined(ProcSym)
+            (* ProcedureParametersDefined(ProcSym) *)
          END
       END
    ELSE
@@ -1516,6 +1534,30 @@ BEGIN
 END BuildFPSection ;
 
 
+(*
+   BuildProcedureDefinedByForward - indicates that the parameters for ProcSym have
+                                    been defined using the FORWARD keyword.
+*)
+
+PROCEDURE BuildProcedureDefinedByForward (ProcSym: CARDINAL) ;
+BEGIN
+   Assert (IsProcedure (ProcSym)) ;
+   PutParametersDefinedByForward (ProcSym)
+END BuildProcedureDefinedByForward ;
+
+
+(*
+   BuildProcedureDefinedByProper - indicates that the parameters for ProcSym have
+                                   been defined during a proper procedure declaration.
+*)
+
+PROCEDURE BuildProcedureDefinedByProper (ProcSym: CARDINAL) ;
+BEGIN
+   Assert (IsProcedure (ProcSym)) ;
+   PutParametersDefinedByProper (ProcSym)
+END BuildProcedureDefinedByProper ;
+
+
 (*
    BuildVarArgs - indicates that the ProcSym takes varargs
                   after ParamTotal.
@@ -1657,6 +1699,7 @@ VAR
    Var,
    Array     : Name ;
    tok       : CARDINAL ;
+   TypeTok,
    ParamTotal,
    TypeSym,
    UnBoundedSym,
@@ -1665,7 +1708,7 @@ VAR
    i, ndim   : CARDINAL ;
 BEGIN
    PopT(ParamTotal) ;
-   PopT(TypeSym) ;
+   PopTtok (TypeSym, TypeTok) ;
    PopTF(Array, ndim) ;
    Assert( (Array=ArrayTok) OR (Array=NulTok) ) ;
    PopT(NoOfIds) ;
@@ -1680,13 +1723,9 @@ BEGIN
       TypeSym := UnBoundedSym
    END ;
    i := 1 ;
-(*
-   WriteString('Procedure ') ; WriteKey(GetSymName(ProcSym)) ;
-   WriteString(' adding No. of identifiers:') ; WriteCard(NoOfIds, 4) ; WriteLn ;
-*)
-   WHILE i<=NoOfIds DO
+   WHILE i <= NoOfIds DO
       IF CompilingDefinitionModule() AND (NOT PedanticParamNames) AND
-         (* we will see the parameters in the implementation module *)
+         (* We will see the parameters in the implementation module.  *)
          ((GetMainModule()=GetCurrentModule()) OR
           (IsHiddenTypeDeclared(GetCurrentModule()) AND ExtendedOpaque))
       THEN
@@ -1694,27 +1733,25 @@ BEGIN
       ELSE
          ParamName := OperandT(NoOfIds+1-i)
       END ;
-      tok := OperandTok(NoOfIds+1-i) ;
+      tok := OperandTok (NoOfIds+1-i) ;
+      (* WarnStringAt (InitString ('building param pos?'), OperandTok (NoOfIds+1-i)) ;  *)
       IF Var=VarTok
       THEN
-         (* VAR parameter *)
-         IF NOT PutVarParam(tok, ProcSym, ParamTotal+i, ParamName, TypeSym, Array=ArrayTok)
+         (* VAR parameter.  *)
+         IF NOT PutVarParam (tok, ProcSym, ParamTotal+i, ParamName,
+                             TypeSym, Array=ArrayTok, TypeTok)
          THEN
             InternalError ('problems adding a VarParameter - wrong param #?')
          END
       ELSE
-         (* Non VAR parameter *)
-         IF NOT PutParam(tok, ProcSym, ParamTotal+i, ParamName, TypeSym, Array=ArrayTok)
+         (* Non VAR parameter.  *)
+         IF NOT PutParam (tok, ProcSym, ParamTotal+i, ParamName,
+                          TypeSym, Array=ArrayTok, TypeTok)
          THEN
             InternalError ('problems adding a Parameter - wrong param #?')
          END
       END ;
-(*
-      WriteString(' parameter') ; WriteCard(ParamTotal+i, 4) ; WriteLn ;
-      WriteKey(Operand(Ptr+i+1)) ; WriteString(' is a parameter with type ') ;
-      WriteKey(GetSymName(TypeSym)) ; WriteLn ;
-*)
-      INC(i)
+      INC (i)
    END ;
    PopN(NoOfIds+1) ;
    PushT(ParamTotal+NoOfIds) ;
@@ -1760,75 +1797,88 @@ VAR
    ParamI,
    ParamIType,
    ParamTotal,
+   TypeTok,
    TypeSym,
    NoOfIds,
+   ProcTok,
    ProcSym,
    pi, i, ndim: CARDINAL ;
 BEGIN
    PopT(ParamTotal) ;
-   PopT(TypeSym) ;
+   PopTtok(TypeSym, TypeTok) ;
    PopTF(Array, ndim) ;
    Assert( (Array=ArrayTok) OR (Array=NulTok) ) ;
    PopT(NoOfIds) ;
    ProcSym := OperandT(NoOfIds+2) ;
+   ProcTok := OperandTok (NoOfIds+2) ;
    Assert(IsProcedure(ProcSym)) ;
    Var := OperandT(NoOfIds+1) ;
    Assert( (Var=VarTok) OR (Var=NulTok) ) ;
-   Unbounded := (Array=ArrayTok) ;  (* ARRAY OF Type, parameter *)
+   Unbounded := (Array=ArrayTok) ;  (* ARRAY OF Type, parameter.  *)
    i := 1 ;
-   pi := NoOfIds ;     (* stack index referencing stacked parameter, i *)
+   pi := NoOfIds ;     (* Stack index referencing stacked parameter i.  *)
 (*
    WriteString('No. of identifiers:') ; WriteCard(NoOfIds, 4) ; WriteLn ;
 *)
+   (* If there are an incorrect number of parameters specified then this
+      will be detcted by EndBuildFormalParameters.  *)
    WHILE i<=NoOfIds DO
       IF ParamTotal+i<=NoOfParam(ProcSym)
       THEN
+         (* WarnStringAt (InitString ('parampos?'), OperandTok (pi)) ;  *)
          IF Unbounded AND (NOT IsUnboundedParam(ProcSym, ParamTotal+i))
          THEN
-            FailParameter('the parameter was declared as an ARRAY OF type',
-                          'the parameter was not declared as an ARRAY OF type',
-                          NulName, ParamTotal+i, ProcSym)
+            ParameterError ('declaration of procedure {%%1a} in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
+                            'the parameter {%3Ea} was not declared as an ARRAY OF type',     (* '{%3EHa}'.  *)
+                            'the parameter {%3EVa} was declared as an ARRAY OF type',
+                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
          ELSIF (NOT Unbounded) AND IsUnboundedParam(ProcSym, ParamTotal+i)
          THEN
-            FailParameter('the parameter was not declared as an ARRAY OF type',
-                          'the parameter was declared as an ARRAY OF type',
-                          NulName, ParamTotal+i, ProcSym)
+            ParameterError ('declaration of procedure {%%1a} in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
+                            'the parameter {%3Ea} was declared as an ARRAY OF type',     (* '{%3EHa}'.  *)
+                            'the parameter {%3EVa} was not declared as an ARRAY OF type',
+                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
          END ;
          IF Unbounded
          THEN
             IF GetDimension(GetNthParam(ProcSym, ParamTotal+1))#ndim
             THEN
-               FailParameter('', 'the dynamic array parameter was declared with different number of dimensions',
-                             NulName, ParamTotal+i, ProcSym)
+               ParameterError ('declaration of procedure {%%1a} in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
+                               'the dynamic array parameter {%3Ea} was declared with a different of dimensions',      (* '{%3EHa}'.  *)
+                               'the dynamic array parameter {%3EVa} was declared with a different of dimensions',
+                               pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
             END
          END ;
          IF (Var=VarTok) AND (NOT IsVarParam(ProcSym, ParamTotal+i))
          THEN
-            (* expecting non VAR pamarater *)
-            FailParameter('the parameter has been declared as a VAR parameter',
-                          'the parameter was not declared as a VAR parameter',
-                          NulName, ParamTotal+i, ProcSym)
+            (* Expecting non VAR parameter.  *)
+            ParameterError ('declaration of procedure {%%1a} in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
+                            '{%3Ea} was not declared as a {%kVAR} parameter',     (* '{%3EHa}'.  *)
+                            '{%3EVa} was declared as a {%kVAR} parameter',
+                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
          ELSIF (Var=NulTok) AND IsVarParam(ProcSym, ParamTotal+i)
          THEN
-            (* expecting VAR pamarater *)
-            FailParameter('the parameter was not declared as a VAR parameter',
-                          'the parameter has been declared as a VAR parameter',
-                          NulName, ParamTotal+i, ProcSym)
+            (* Expecting VAR pamarater.  *)
+            ParameterError ('declaration of procedure {%%1a} in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
+                            '{%3Ea} was declared as a {%kVAR} parameter',       (* '{%3EHa}'.  *)
+                            '{%3EVa} was not declared as a {%kVAR} parameter',
+                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
          END ;
          ParamI := GetParam(ProcSym, ParamTotal+i) ;
          IF PedanticParamNames
          THEN
             IF GetSymName(ParamI)#OperandT(pi)
             THEN
-               (* different parameter names *)
-               FailParameter('',
-                             'the parameter has been declared with a different name',
-                             OperandT (pi), ParamTotal+i, ProcSym)
+               (* Different parameter names.  *)
+               ParameterError ('procedure {%%1a} in the %s differs from the %s, {%%2N} parameter name is inconsistant, %s',
+                            'named as {%3EVa}',
+                            'named as {%3EVa}',
+                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), OperandT (pi))
             END
          ELSE
             IF GetSymName (ParamI) = NulName
             THEN
-               PutParamName (OperandTok (pi), ProcSym, ParamTotal+i, OperandT (pi))
+               PutParamName (OperandTok (pi), ProcSym, ParamTotal+i, OperandT (pi), TypeTok)
             END
          END ;
          PutDeclared (OperandTok (pi), GetParameterShadowVar (ParamI)) ;
@@ -1845,111 +1895,69 @@ BEGIN
             (NOT IsUnknown(SkipType(TypeSym))) AND
             (NOT IsUnknown(SkipType(ParamIType)))
          THEN
-            (* different parameter types *)
-            FailParameter('',
-                          'the parameter has been declared with a different type',
-                          OperandT(pi), ParamTotal+i, ProcSym)
+            (* Different parameter types.  *)
+            ParameterError ('declaration in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
+                            'the parameter {%3Ea} was declared with a different type',  (* '{%3EHa}'.  *)
+                            'the parameter {%3EVa} was declared with a different type',
+                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
          END
-      ELSE
-         FailParameter('too many parameters',
-                       'fewer parameters were declared',
-                       NulName, ParamTotal+i, ProcSym)
       END ;
       INC(i) ;
       DEC(pi)
    END ;
-   PopN(NoOfIds+1) ;   (* +1 for the Var/Nul *)
+   PopN(NoOfIds+1) ;   (* +1 for the Var/Nul.  *)
    PushT(ParamTotal+NoOfIds) ;
    Assert(IsProcedure(OperandT(2)))
 END CheckFormalParameterSection ;
 
 
 (*
-   FailParameter - generates an error message indicating that a parameter
-                   declaration has failed.
-
-                   The parameters are:
+   ParameterError - create two error strings chained together.  Both error strings
+                    commence with FmdHeader:
+                    1.  FmtHeader DefinedDesc ParamNo Param.
+                    2.  FmdHeader CurrentDesc ParamNo OperandT(ParamPtr).
+                    The FmtHeader will have a location description for the
+                    defined location and current location inserted by processing %s
+                    prior to passing the completed string to MetaError.
 
-                   CurrentState  - string describing the current failing state.
-                   PreviousState - string describing the old defined state.
-                   Given         - token or identifier that was given.
-                   ParameterNo   - parameter number that has failed.
-                   ProcedureSym  - procedure symbol where parameter has failed.
-
-                   If any parameter is Nul then it is ignored.
+                    Currently the location of the first error is fixed to the
+                    location of ProcSym.
 *)
 
-PROCEDURE FailParameter (CurrentState : ARRAY OF CHAR;
-                         PreviousState: ARRAY OF CHAR;
-                         Given        : Name ;
-                         ParameterNo  : CARDINAL;
-                         ProcedureSym : CARDINAL) ;
+PROCEDURE ParameterError (FmtHeader, DefinedDesc, CurrentDesc: ARRAY OF CHAR;
+                          ParamPtr, ParamNo, ProcSym, ProcTok, Param, TypeTok: CARDINAL) ;
 VAR
-   First       : CARDINAL ;
-   FirstModule,
-   SecondModule,
-   s1, s2, s3  : String ;
-BEGIN
-   IF NoOfParam(ProcedureSym)>=ParameterNo
-   THEN
-      IF CompilingDefinitionModule()
-      THEN
-         First := GetDeclaredDef(GetNthParam(ProcedureSym, ParameterNo))
-      ELSE
-         First := GetDeclaredMod(GetNthParam(ProcedureSym, ParameterNo))
-      END
-   ELSE
-      (* ParameterNo does not exist - which is probably the reason why this routine was called.. *)
-      IF CompilingDefinitionModule()
-      THEN
-         First := GetDeclaredDef(ProcedureSym)
-      ELSE
-         First := GetDeclaredMod(ProcedureSym)
-      END
-   END ;
-   IF CompilingDefinitionModule()
-   THEN
-      FirstModule := InitString('definition module') ;
-      SecondModule := InitString('implementation module')
-   ELSIF CompilingImplementationModule()
-   THEN
-      FirstModule := InitString('implementation module') ;
-      SecondModule := InitString('definition module')
-   ELSE
-      Assert (CompilingProgramModule ()) ;
-      FirstModule := InitString('program module') ;
-      SecondModule := InitString('definition module')
-   END ;
-   s2 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(ProcedureSym)))) ;
-   s3 := Mark(FirstModule) ;
-   s1 := Sprintf4(Mark(InitString('declaration of procedure %s in the %s differs from the %s, problem with parameter number %d')),
-                  s2, s3,
-                  SecondModule,
-                  ParameterNo) ;
-   IF NoOfParam(ProcedureSym)>=ParameterNo
-   THEN
-      s2 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(GetNthParam(ProcedureSym, ParameterNo))))) ;
-      s1 := ConCat(s1, Mark(Sprintf1(Mark(InitString(' (%s)')), s2)))
-   END ;
-   IF NOT StrEqual(CurrentState, '')
-   THEN
-      s2 := Mark(InitString(CurrentState)) ;
-      s1 := ConCat(s1, Mark(Sprintf1(Mark(InitString(', %s')), s2)))
-   END ;
-   IF NOT StrEqual(PreviousState, '')
-   THEN
-      s2 := Mark(SecondModule) ;
-      s3 := Mark(InitString(PreviousState)) ;
-      s1 := ConCat(s1, Mark(Sprintf2(Mark(InitString(' in the %s %s')), s2, s3)))
-   END ;
-   IF Given#NulName
-   THEN
-      s2 := Mark(InitStringCharStar(KeyToCharStar(Given))) ;
-      s1 := ConCat(s1, Mark(Sprintf1(Mark(InitString(' (%s)')), s2)))
-   END ;
-   s1 := ConCat(s1, Mark(Sprintf0(Mark(InitString('\n'))))) ;
-   ErrorStringAt2(s1, GetTokenNo(), First)
-END FailParameter ;
+(*   parm, *)
+   Err       : CARDINAL ;
+   CurStr,
+   DefStr,
+   Msg,
+   SrcProcSym,
+   SrcCurDecl: String ;
+BEGIN
+   SrcProcSym := GetSourceDesc (ProcSym) ;
+   SrcCurDecl := GetCurSrcDesc (ProcSym, ProcTok) ;
+   DefStr := InitString (DefinedDesc) ;
+   CurStr := InitString (CurrentDesc) ;
+   Msg := Sprintf3 (Mark (InitString (FmtHeader)), SrcProcSym, SrcCurDecl, DefStr) ;
+   MetaErrorStringT3 (GetDeclared (ProcSym), Msg, ProcSym, ParamNo, Param) ;
+(*
+   It could be improved by using the '{%3EHa}' specifier in the DefinedDesc (see
+   CheckFormalParameterSection) but this requires that the parameter declarations
+   for the definition and forward procedures are saved.  Currently they are only
+   checked against the proper procedure declaration.
+
+   WarnStringAt (InitString ('testing ProcSym decl'), GetDeclared (ProcSym)) ;
+   parm := GetParam (ProcSym, ParamNo) ;
+   WarnStringAt (InitString ('testing param ProcSym GetVarDeclTok'), GetVarDeclTok (parm)) ;
+   WarnStringAt (InitString ('testing param ProcSym GetVarDeclTypeTok'), GetVarDeclTypeTok (parm)) ;
+   WarnStringAt (InitString ('testing param ProcSym GetVarDeclFullTok'), GetVarDeclFullTok (parm)) ;
+   WarnStringAt (InitString ('testing cur pos'), MakeVirtual2Tok (OperandTok (ParamPtr), TypeTok)) ;
+*)
+   Err := MakeError (MakeVirtual2Tok (OperandTok (ParamPtr), TypeTok), OperandT (ParamPtr)) ;
+   Msg := Sprintf3 (Mark (InitString (FmtHeader)), SrcProcSym, SrcCurDecl, CurStr) ;
+   MetaErrorString3 (Msg, ProcSym, ParamNo, Err)
+END ParameterError ;
 
 
 (*
@@ -1972,6 +1980,38 @@ BEGIN
 END StartBuildFormalParameters ;
 
 
+(*
+   ParameterMismatch - generate a parameter mismatch error between the current
+                       declaration at tok and a previous ProcSym declaration.
+                       NoOfPar is the current number of parameters.
+*)
+
+PROCEDURE ParameterMismatch (tok: CARDINAL; ProcSym: CARDINAL; NoOfPar: CARDINAL) ;
+VAR
+   MsgCurrent,
+   MsgProcSym,
+   SrcProcSym,
+   SrcCurDecl,
+   CompProcSym,
+   CompCurrent: String ;
+BEGIN
+   SrcProcSym := GetSourceDesc (ProcSym) ;
+   SrcCurDecl := GetCurSrcDesc (ProcSym, tok) ;
+   CompProcSym := GetComparison (NoOfParam (ProcSym), NoOfPar) ;
+   CompCurrent := GetComparison (NoOfPar, NoOfParam (ProcSym)) ;
+   MsgCurrent := Sprintf3 (Mark (InitString ('the %s for {%%1ad} has %s parameters than the %s')),
+                           SrcCurDecl, CompCurrent, SrcProcSym) ;
+   MsgProcSym := Sprintf3 (Mark (InitString ('the %s for {%%1ad} has %s parameters than the %s')),
+                           SrcProcSym, CompProcSym, SrcCurDecl) ;
+   MetaErrorStringT1 (GetDeclared (ProcSym), MsgProcSym, ProcSym) ;
+   MetaErrorStringT1 (tok, MsgCurrent, ProcSym) ;
+   SrcProcSym := KillString (SrcProcSym) ;
+   SrcCurDecl := KillString (SrcCurDecl) ;
+   CompProcSym := KillString (CompProcSym) ;
+   CompCurrent := KillString (CompCurrent)
+END ParameterMismatch ;
+
+
 (*
    EndBuildFormalParameters - Resets the quadruple stack after building
                               Formal Parameters.
@@ -1990,26 +2030,139 @@ END StartBuildFormalParameters ;
 
 PROCEDURE EndBuildFormalParameters ;
 VAR
-   n      : Name ;
+   tok    : CARDINAL ;
    NoOfPar: CARDINAL ;
    ProcSym: CARDINAL ;
 BEGIN
-   PopT(NoOfPar) ;
-   PopT(ProcSym) ;
-   PushT(ProcSym) ;
-   Assert(IsProcedure(ProcSym)) ;
-   IF NoOfParam(ProcSym)#NoOfPar
+   PopT (NoOfPar) ;
+   PopTtok (ProcSym, tok) ;
+   PushT (ProcSym) ;
+   Assert (IsProcedure (ProcSym)) ;
+   IF NoOfParam (ProcSym) # NoOfPar
    THEN
-      n := GetSymName(ProcSym) ;
-      IF CompilingDefinitionModule()
+      ParameterMismatch (tok, ProcSym, NoOfPar)
+   END ;
+   Assert (IsProcedure (OperandT (1)))
+END EndBuildFormalParameters ;
+
+
+(*
+   GetComparison - return a simple description from the result of
+                   a comparison between left and right.
+*)
+
+PROCEDURE GetComparison (left, right: CARDINAL) : String ;
+BEGIN
+   IF left < right
+   THEN
+      RETURN InitString ('less')
+   ELSIF left > right
+   THEN
+      RETURN InitString ('more')
+   ELSE
+      RETURN InitString ('same')
+   END
+END GetComparison ;
+
+
+(*
+   GetSourceDesc - return a description of where ProcSym was declared.
+*)
+
+PROCEDURE GetSourceDesc (ProcSym: CARDINAL) : String ;
+BEGIN
+   IF AreParametersDefinedInDefinition (ProcSym)
+   THEN
+      RETURN InitString ('definition module')
+   ELSIF GetParametersDefinedByForward (ProcSym)
+   THEN
+      RETURN InitString ('forward declaration')
+   ELSIF GetParametersDefinedByProper (ProcSym)
+   THEN
+      RETURN InitString ('proper declaration')
+   END ;
+   RETURN InitString ('')
+END GetSourceDesc ;
+
+
+(*
+   GetCurSrcDesc - return a description of where ProcSym was declared.
+*)
+
+PROCEDURE GetCurSrcDesc (ProcSym: CARDINAL; tok: CARDINAL) : String ;
+BEGIN
+   IF GetProcedureDeclaredDefinition (ProcSym) = tok
+   THEN
+      RETURN InitString ('definition module')
+   ELSIF GetProcedureDeclaredForward (ProcSym) = tok
+   THEN
+      RETURN InitString ('forward declaration')
+   ELSIF GetProcedureDeclaredProper (ProcSym) = tok
+   THEN
+      RETURN InitString ('proper declaration')
+   END ;
+   RETURN InitString ('')
+END GetCurSrcDesc ;
+
+
+(*
+   GetDeclared -
+*)
+
+PROCEDURE GetDeclared (sym: CARDINAL) : CARDINAL ;
+BEGIN
+   IF IsProcedure (sym)
+   THEN
+      IF AreParametersDefinedInDefinition (sym)
       THEN
-         WriteFormat1('procedure (%a) was declared with fewer parameters in the DEFINITION MODULE', n)
-      ELSE
-         WriteFormat1('procedure (%a) was declared with more parameters in the DEFINITION MODULE', n)
+         RETURN GetProcedureDeclaredDefinition (sym)
+      ELSIF GetParametersDefinedByProper (sym)
+      THEN
+         RETURN GetProcedureDeclaredProper (sym)
+      ELSIF GetParametersDefinedByForward (sym)
+      THEN
+         RETURN GetProcedureDeclaredForward (sym)
       END
    END ;
-   Assert(IsProcedure(OperandT(1)))
-END EndBuildFormalParameters ;
+   RETURN GetDeclaredMod (sym)
+END GetDeclared ;
+
+
+(*
+   ReturnTypeMismatch - generate two errors showing the return type mismatches between
+                        ProcSym and ReturnType at procedure location tok.
+*)
+
+PROCEDURE ReturnTypeMismatch (tok: CARDINAL; ProcSym, ReturnType: CARDINAL) ;
+VAR
+   SrcProcSym,
+   SrcCurDecl,
+   MsgCurrent,
+   MsgProcSym: String ;
+BEGIN
+   SrcProcSym := GetSourceDesc (ProcSym) ;
+   SrcCurDecl := GetCurSrcDesc (ProcSym, tok) ;
+   IF ReturnType = NulSym
+   THEN
+      MsgCurrent := Sprintf2 (Mark (InitString ('there is no return type for {%%1ad} specified in the %s whereas a return type is specified in the %s')),
+                              SrcCurDecl, SrcProcSym) ;
+      MsgProcSym := Sprintf2 (Mark (InitString ('there is no return type for {%%1ad} specified in the %s whereas a return type is specified in the %s')),
+                              SrcCurDecl, SrcProcSym)
+   ELSIF GetType (ProcSym) = NulSym
+   THEN
+      MsgCurrent := Sprintf2 (Mark (InitString ('there is no return type for {%%1ad} specified in the %s whereas a return type is specified in the %s')),
+                              SrcProcSym, SrcCurDecl) ;
+      MsgProcSym := Sprintf2 (Mark (InitString ('there is no return type for {%%1ad} specified in the %s whereas a return type is specified in the %s')),
+                              SrcProcSym, SrcCurDecl)
+   ELSE
+      MsgCurrent := Sprintf2 (Mark (InitString ('the return type for {%%1ad} specified in the %s differs in the %s')),
+                              SrcCurDecl, SrcProcSym) ;
+      MsgProcSym := Sprintf2 (Mark (InitString ('the return type for {%%1ad} specified in the %s differs in the %s')),
+                              SrcCurDecl, SrcProcSym)
+   END ;
+   MetaErrorStringT1 (GetDeclared (ProcSym), MsgProcSym, ProcSym) ;
+   MetaErrorStringT1 (tok, MsgCurrent, ProcSym)
+END ReturnTypeMismatch ;
 
 
 (*
@@ -2030,40 +2183,26 @@ END EndBuildFormalParameters ;
 
 PROCEDURE BuildFunction ;
 VAR
-   PrevSym,
-   TypeSym,
-   ProcSym : CARDINAL ;
+   tok        : CARDINAL ;
+   PrevRetType,
+   RetType,
+   ProcSym    : CARDINAL ;
 BEGIN
-   PopT(TypeSym) ;
-   PopT(ProcSym) ;
-   IF IsProcedure(ProcSym) AND AreProcedureParametersDefined(ProcSym)
+   PopT (RetType) ;
+   PopTtok (ProcSym, tok) ;
+   IF IsProcedure (ProcSym)
    THEN
-      PrevSym := GetType(ProcSym) ;
-      IF (PrevSym#NulSym) AND (PrevSym#TypeSym)
+      IF AreProcedureParametersDefined (ProcSym)
       THEN
-         IF CompilingDefinitionModule()
+         PrevRetType := GetType (ProcSym) ;
+         IF PrevRetType # RetType
          THEN
-            MetaErrorsT2(GetDeclaredDef(ProcSym),
-                         'the return type for procedure {%1a} is defined differently in the definition module as {%1tad} and the implementation module as {%2ad}',
-                         'the return type for procedure {%1a} is defined differently in the definition module as {%1tad} and the implementation module as {%2ad}',
-                         ProcSym, TypeSym)
-         ELSE
-            MetaErrorsT2(GetDeclaredMod(ProcSym),
-                         'the return type for procedure {%1a} is defined differently in the definition module as {%2ad} and the implementation module as {%1tad}',
-                         'the return type for procedure {%1a} is defined differently in the definition module as {%2ad} and the implementation module as {%1tad}',
-                         ProcSym, TypeSym)
+            ReturnTypeMismatch (tok, ProcSym, RetType)
          END
       END
    END ;
-   PutFunction(ProcSym, TypeSym) ;
-(*
-   WriteString('Procedure ') ; WriteKey(GetSymName(ProcSym)) ;
-   WriteString(' has a return argument ') ;
-   WriteKey(GetSymName(TypeSym)) ;
-   WriteString(' checking ') ; WriteKey(GetSymName(GetType(ProcSym))) ;
-   WriteLn ;
-*)
-   PushT(ProcSym)
+   PutFunction (ProcSym, RetType) ;
+   PushTtok (ProcSym, tok)
 END BuildFunction ;
 
 
@@ -2114,6 +2253,34 @@ BEGIN
 END BuildNoReturnAttribute ;
 
 
+(*
+   CheckProcedure - checks to see that the top of stack procedure
+                    has not been declared as a procedure function.
+
+                    The Stack:
+
+                    Entry                 Exit
+
+             Ptr ->                                      <- Ptr
+                    +------------+        +------------+
+                    | ProcSym    |        | ProcSym    |
+                    |------------|        |------------|
+*)
+
+PROCEDURE CheckProcedure ;
+VAR
+   ProcSym,
+   tok    : CARDINAL ;
+BEGIN
+   PopTtok (ProcSym, tok) ;
+   PushTtok (ProcSym, tok) ;
+   IF GetType (ProcSym) # NulSym
+   THEN
+      ReturnTypeMismatch (tok, ProcSym, NulSym)
+   END
+END CheckProcedure ;
+
+
 (*
    BuildPointerType - builds a pointer type.
                       The Stack:
diff --git a/gcc/m2/gm2-compiler/P3Build.bnf b/gcc/m2/gm2-compiler/P3Build.bnf
index f48b508ba1d..3a142fdc004 100644
--- a/gcc/m2/gm2-compiler/P3Build.bnf
+++ b/gcc/m2/gm2-compiler/P3Build.bnf
@@ -66,6 +66,7 @@ FROM M2Reserved IMPORT tokToTok, toktype,
 
 FROM M2Quads IMPORT PushT, PopT, PushTF, PopTF, PopNothing, Annotate,
                     PushTtok, PushTFtok, PopTtok, PopTFtok, OperandTok,
+                    DupFrame, Top,
                     BuildModuleStart,
                     StartBuildDefFile, StartBuildModFile,
                     EndBuildFile,
@@ -152,6 +153,7 @@ FROM P3SymBuild IMPORT P3StartBuildProgModule,
                        StartBuildProcedure,
                        BuildProcedureHeading,
                        EndBuildProcedure,
+                       EndBuildForward,
                        BuildVarAtAddress,
                        BuildConst,
                        BuildSubrange,
@@ -522,6 +524,7 @@ token   'EXIT'            exittok
 token   'EXPORT'          exporttok
 token   'FINALLY'         finallytok
 token   'FOR'             fortok
+token   'FORWARD'         forwardtok
 token   'FROM'            fromtok
 token   'IF'              iftok
 token   'IMPLEMENTATION'  implementationtok
@@ -1336,12 +1339,21 @@ WithStatement :=                                                           % VAR
                  "END"                                                     % EndBuildWith %
                =:
 
-ProcedureDeclaration := ProcedureHeading ";" ProcedureBlock                % BuildProcedureEnd ;
-                                                                             PushAutoOn %
+ProcedureDeclaration :=                                                    % VAR top: CARDINAL ; %
+                                                                           % top := Top () %
+                        ProcedureHeading ";" PostProcedureHeading          % Assert (top = Top ()) %
+                                                                  =:
+
+PostProcedureHeading := ProperProcedure | ForwardDeclaration =:
+
+ForwardDeclaration := "FORWARD"                                            % EndBuildForward %
+                    =:
 
-                        Ident                                              % EndBuildProcedure ;
+ProperProcedure := ProcedureBlock                                          % BuildProcedureEnd ;
+                                                                             PushAutoOn %
+                                   Ident                                   % EndBuildProcedure ;
                                                                              PopAuto %
-                      =:
+                                         =:
 
 DefineBuiltinProcedure := [ "__ATTRIBUTE__" "__BUILTIN__"
                             "(" "("                                        % PushAutoOff %
diff --git a/gcc/m2/gm2-compiler/P3SymBuild.def b/gcc/m2/gm2-compiler/P3SymBuild.def
index 591db9984e9..e506e54a6a3 100644
--- a/gcc/m2/gm2-compiler/P3SymBuild.def
+++ b/gcc/m2/gm2-compiler/P3SymBuild.def
@@ -25,37 +25,10 @@ DEFINITION MODULE P3SymBuild ;
    Title      : P3SymBuild
    Author     : Gaius Mulley
    Date       : 24/6/87
-   LastEdit   : 1/9/89
    System     : UNIX (GNU Modula-2)
    Description: pass 3 symbol creation.
 *)
 
-(* StartBuildDefinitionModule, *)
-(* EndBuildDefinitionModule, *)
-(* StartBuildImplementationModule, *)
-(* EndBuildImplementationModule, *)
-(* StartBuildProgramModule, *)
-(* EndBuildProgramModule, *)
-
-EXPORT QUALIFIED P3StartBuildDefModule,
-                 P3EndBuildDefModule,
-                 P3StartBuildImpModule,
-                 P3EndBuildImpModule,
-                 P3StartBuildProgModule,
-                 P3EndBuildProgModule,
-                 StartBuildInnerModule,
-                 EndBuildInnerModule,
-                 CheckImportListOuterModule,
-                 CheckCanBeImported,
-                 BuildProcedureHeading,
-                 StartBuildProcedure,
-                 EndBuildProcedure,
-                 BuildSubrange,
-                 BuildNulName,
-                 BuildConst,
-                 BuildVarAtAddress,
-                 BuildOptArgInitializer ;
-
 
 (*
    StartBuildDefinitionModule - Creates a definition module and starts
@@ -310,6 +283,13 @@ PROCEDURE StartBuildProcedure ;
 PROCEDURE EndBuildProcedure ;
 
 
+(*
+   EndBuildForward -
+*)
+
+PROCEDURE EndBuildForward ;
+
+
 (*
    BuildSubrange - Builds a Subrange type Symbol.
 
diff --git a/gcc/m2/gm2-compiler/P3SymBuild.mod b/gcc/m2/gm2-compiler/P3SymBuild.mod
index 84d0be04ada..1bebcf066ce 100644
--- a/gcc/m2/gm2-compiler/P3SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P3SymBuild.mod
@@ -550,6 +550,18 @@ BEGIN
 END BuildProcedureHeading ;
 
 
+(*
+   EndBuildForward -
+*)
+
+PROCEDURE EndBuildForward ;
+BEGIN
+   PopN (2) ;
+   EndScope ;
+   M2Error.LeaveErrorScope
+END EndBuildForward ;
+
+
 (*
    BuildSubrange - Builds a Subrange type Symbol.
 
diff --git a/gcc/m2/gm2-compiler/PCBuild.bnf b/gcc/m2/gm2-compiler/PCBuild.bnf
index 6e263b01629..263ac9b4031 100644
--- a/gcc/m2/gm2-compiler/PCBuild.bnf
+++ b/gcc/m2/gm2-compiler/PCBuild.bnf
@@ -65,6 +65,7 @@ FROM M2Quads IMPORT Top, PushT, PopT, PushTF, PopTF, PopNothing, OperandT, Opera
                     PushTFA,
                     PushTFn, PopTFn, PushTFtok, PopTtok, PopTFtok, PushTtok, PushTFntok,
                     PushT, PushTF, IsAutoPushOn, PushAutoOff, PushAutoOn, PopAuto,
+                    DupFrame,
                     BuildTypeForConstructor, BuildConstructor, BuildConstructorEnd,
                     PopConstructor,
                     NextConstructorField, SilentBuildConstructor,
@@ -87,6 +88,7 @@ FROM PCSymBuild IMPORT PCStartBuildProgModule,
                        PCStartBuildProcedure,
                        PCBuildProcedureHeading,
                        PCEndBuildProcedure,
+                       PCEndBuildForward,
                        PCBuildImportOuterModule,
                        PCBuildImportInnerModule,
                        StartDesConst,
@@ -466,6 +468,7 @@ token   'EXIT'            exittok
 token   'EXPORT'          exporttok
 token   'FINALLY'         finallytok
 token   'FOR'             fortok
+token   'FORWARD'         forwardtok
 token   'FROM'            fromtok
 token   'IF'              iftok
 token   'IMPLEMENTATION'  implementationtok
@@ -1117,11 +1120,20 @@ WithStatement := "WITH" Designator "DO"
                  "END"
                =:
 
-ProcedureDeclaration := ProcedureHeading ";"                               % PushAutoOff %
-                                             ProcedureBlock                % PopAuto ; PushAutoOn %
-                        Ident                                              % PCEndBuildProcedure ;
-                                                                             PopAuto %
-                      =:
+ProcedureDeclaration :=                                                    % VAR top: CARDINAL ; %
+                                                                           % top := Top () %
+                        ProcedureHeading ";" PostProcedureHeading          % Assert (top = Top ()) %
+                                                                  =:
+
+PostProcedureHeading := ProperProcedure | ForwardDeclaration =:
+
+ForwardDeclaration := "FORWARD"                                            % PCEndBuildForward %
+                    =:
+
+ProperProcedure := ProcedureBlock                                          % PushAutoOn %
+                                  Ident                                    % PCEndBuildProcedure %
+                                                                           % PopAuto %
+                                         =:
 
 DefineBuiltinProcedure := [ "__ATTRIBUTE__" "__BUILTIN__"
                             "(" "("                                        % PushAutoOff %
@@ -1133,11 +1145,11 @@ ProcedureHeading := "PROCEDURE"                                            % M2E
                                                                            % PushAutoOn %
                      DefineBuiltinProcedure
                      ( Ident
-                                                                           % PCStartBuildProcedure ;
-                                                                             PushAutoOff %
+                                                                           % PCStartBuildProcedure %
+                                                                           % PushAutoOff %
                        [ FormalParameters ] AttributeNoReturn
-                                                                           % PCBuildProcedureHeading ;
-                                                                             PopAuto %
+                                                                           % PCBuildProcedureHeading %
+                                                                           % PopAuto %
                      )                                                     % PopAuto %
                      =:
 
@@ -1147,11 +1159,11 @@ DefProcedureHeading := "PROCEDURE"                                         % M2E
                                                                            % PushAutoOn %
                         Builtin
                         ( Ident
-                                                                           % PCStartBuildProcedure ;
-                                                                             PushAutoOff %
+                                                                           % PCStartBuildProcedure %
+                                                                           % PushAutoOff %
                           [ DefFormalParameters ] AttributeNoReturn
-                                                                           % PCBuildProcedureHeading ;
-                                                                             PopAuto %
+                                                                           % PCBuildProcedureHeading %
+                                                                           % PopAuto %
                         )                                                  % PopAuto %
                                                                            % M2Error.LeaveErrorScope %
                      =:
diff --git a/gcc/m2/gm2-compiler/PCSymBuild.def b/gcc/m2/gm2-compiler/PCSymBuild.def
index c130135d743..f2c125d8e85 100644
--- a/gcc/m2/gm2-compiler/PCSymBuild.def
+++ b/gcc/m2/gm2-compiler/PCSymBuild.def
@@ -248,6 +248,25 @@ PROCEDURE PCStartBuildProcedure ;
 PROCEDURE PCEndBuildProcedure ;
 
 
+(*
+   EndBuildForward - Ends building a forward declaration.
+
+                     The Stack:
+
+                     Entry                 Exit
+
+              Ptr ->
+                     +------------+
+                     | ProcSym    |
+                     |------------|
+                     | NameStart  |
+                     |------------|
+                                           Empty
+*)
+
+PROCEDURE PCEndBuildForward ;
+
+
 (*
    BuildImportOuterModule - Builds imported identifiers into an outer module
                             from a definition module.
diff --git a/gcc/m2/gm2-compiler/PCSymBuild.mod b/gcc/m2/gm2-compiler/PCSymBuild.mod
index fd1fd075bbe..498a0444325 100644
--- a/gcc/m2/gm2-compiler/PCSymBuild.mod
+++ b/gcc/m2/gm2-compiler/PCSymBuild.mod
@@ -676,6 +676,28 @@ BEGIN
 END PCEndBuildProcedure ;
 
 
+(*
+   EndBuildForward - Ends building a forward declaration.
+
+                     The Stack:
+
+                     Entry                 Exit
+
+              Ptr ->
+                     +------------+
+                     | ProcSym    |
+                     |------------|
+                     | NameStart  |
+                     |------------|
+                                           Empty
+*)
+
+PROCEDURE PCEndBuildForward ;
+BEGIN
+   PopN (2)
+END PCEndBuildForward ;
+
+
 (*
    BuildProcedureHeading - Builds a procedure heading for the definition
                            module procedures.
diff --git a/gcc/m2/gm2-compiler/PHBuild.bnf b/gcc/m2/gm2-compiler/PHBuild.bnf
index 776601d3b1c..55f4e9008f3 100644
--- a/gcc/m2/gm2-compiler/PHBuild.bnf
+++ b/gcc/m2/gm2-compiler/PHBuild.bnf
@@ -57,7 +57,7 @@ FROM P2SymBuild IMPORT BuildString, BuildNumber ;
 
 FROM M2Quads IMPORT PushT, PopT, PushTF, PopTF, PopNothing, Annotate,
                     PushTtok, PushTFtok, PopTtok, PopTFtok, OperandTok,
-                    PushTFntok, Top,
+                    PushTFntok, Top, DupFrame,
                     StartBuildDefFile, StartBuildModFile,
                     BuildModuleStart,
                     EndBuildFile,
@@ -422,6 +422,7 @@ token   'EXIT'            exittok
 token   'EXPORT'          exporttok
 token   'FINALLY'         finallytok
 token   'FOR'             fortok
+token   'FORWARD'         forwardtok
 token   'FROM'            fromtok
 token   'IF'              iftok
 token   'IMPLEMENTATION'  implementationtok
@@ -1087,14 +1088,23 @@ WithStatement := "WITH"
                  "END"
                =:
 
-ProcedureDeclaration := ProcedureHeading ";" ( ProcedureBlock              % PushAutoOn %
-                        Ident )                                            % EndBuildProcedure %
+ProcedureDeclaration :=                                                    % VAR top: CARDINAL ; %
+                                                                           % top := Top () %
+                        ProcedureHeading ";" PostProcedureHeading          % BlockAssert (top = Top ()) %
+                                                                  =:
+
+PostProcedureHeading := ProperProcedure | ForwardDeclaration =:
+
+ForwardDeclaration := "FORWARD"                                            % DupFrame %
+                                                                           % EndBuildProcedure %
+                    =:
+ProperProcedure := ProcedureBlock                                          % PushAutoOn %
+                                  Ident                                    % EndBuildProcedure %
                                                                            % PopAuto %
-                      =:
+                                         =:
 
 DefineBuiltinProcedure := [ "__ATTRIBUTE__" "__BUILTIN__" "(" "(" Ident ")" ")" |
-                            "__INLINE__" ]
-                       =:
+                            "__INLINE__" ] =:
 
 ProcedureHeading := "PROCEDURE"                                            % M2Error.DefaultProcedure %
                      DefineBuiltinProcedure                                % PushAutoOn %
diff --git a/gcc/m2/gm2-compiler/SymbolTable.def b/gcc/m2/gm2-compiler/SymbolTable.def
index 2036e1efc4d..ce43df5d2c8 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.def
+++ b/gcc/m2/gm2-compiler/SymbolTable.def
@@ -1122,6 +1122,13 @@ PROCEDURE HasExceptionFinally (sym: CARDINAL) : BOOLEAN ;
 PROCEDURE PutVar (Sym: CARDINAL; VarType: CARDINAL) ;
 
 
+(*
+   PutVarTok - gives the VarSym symbol Sym a type Type at typetok.
+*)
+
+PROCEDURE PutVarTok (Sym: CARDINAL; VarType: CARDINAL; typetok: CARDINAL) ;
+
+
 (*
    PutLeftValueFrontBackType - gives the variable symbol a front and backend type.
                                The variable must be a LeftValue.
@@ -1353,7 +1360,7 @@ PROCEDURE IsReturnOptional (sym: CARDINAL) : BOOLEAN ;
 
 PROCEDURE PutParam (tok: CARDINAL; Sym: CARDINAL; ParamNo: CARDINAL;
                     ParamName: Name; ParamType: CARDINAL;
-                    isUnbounded: BOOLEAN) : BOOLEAN ;
+                    isUnbounded: BOOLEAN; typetok: CARDINAL) : BOOLEAN ;
 
 
 (*
@@ -1367,7 +1374,7 @@ PROCEDURE PutParam (tok: CARDINAL; Sym: CARDINAL; ParamNo: CARDINAL;
 
 PROCEDURE PutVarParam (tok: CARDINAL; Sym: CARDINAL; ParamNo: CARDINAL;
                        ParamName: Name; ParamType: CARDINAL;
-                       isUnbounded: BOOLEAN) : BOOLEAN ;
+                       isUnbounded: BOOLEAN; typetok: CARDINAL) : BOOLEAN ;
 
 
 (*
@@ -1375,7 +1382,8 @@ PROCEDURE PutVarParam (tok: CARDINAL; Sym: CARDINAL; ParamNo: CARDINAL;
                   ProcSym.
 *)
 
-PROCEDURE PutParamName (tok: CARDINAL; ProcSym: CARDINAL; no: CARDINAL; name: Name) ;
+PROCEDURE PutParamName (tok: CARDINAL; ProcSym: CARDINAL; no: CARDINAL;
+                        name: Name; typetok: CARDINAL) ;
 
 
 (*
@@ -1613,6 +1621,16 @@ PROCEDURE GetDeclaredDef (Sym: CARDINAL) : CARDINAL ;
 PROCEDURE GetDeclaredMod (Sym: CARDINAL) : CARDINAL ;
 
 
+(*
+   GetDeclaredFor - returns the token where this symbol was declared.
+                    It chooses the first from the forward declaration,
+                    implementation module, program module
+                    and definition module.
+*)
+
+PROCEDURE GetDeclaredFor (Sym: CARDINAL) : CARDINAL ;
+
+
 (*
    GetDeclaredDefinition - returns the token where this symbol
                            was declared in the definition module.
@@ -2212,9 +2230,8 @@ PROCEDURE AreParametersDefinedInDefinition (Sym: CARDINAL) : BOOLEAN ;
 
 
 (*
-   ParametersDefinedInImplementation - dictates to procedure symbol, Sym,
-                                       that its parameters have been defined in
-                                       a implementation module.
+   ParametersDefinedInImplementation - records that the parameters have been
+                                       defined in an implementation module.
 *)
 
 PROCEDURE ParametersDefinedInImplementation (Sym: CARDINAL) ;
@@ -2229,6 +2246,86 @@ PROCEDURE ParametersDefinedInImplementation (Sym: CARDINAL) ;
 PROCEDURE AreParametersDefinedInImplementation (Sym: CARDINAL) : BOOLEAN ;
 
 
+(*
+   PutParametersDefinedByForward - records that the parameters have been
+                                   defined in a FORWARD declaration.
+*)
+
+PROCEDURE PutParametersDefinedByForward (ProcSym: CARDINAL) ;
+
+
+(*
+   GetParametersDefinedByForward - return TRUE if ProcSym has had its parameters
+                                   defined by a FORWARD declaration.
+*)
+
+PROCEDURE GetParametersDefinedByForward (ProcSym: CARDINAL) : BOOLEAN ;
+
+
+(*
+   PutParametersDefinedByProper - records that the parameters have been
+                                  defined in a FORWARD declaration.
+*)
+
+PROCEDURE PutParametersDefinedByProper (ProcSym: CARDINAL) ;
+
+
+(*
+   GetParametersDefinedByProper - return TRUE if ProcSym has had its parameters
+                                  defined by a FORWARD declaration.
+*)
+
+PROCEDURE GetParametersDefinedByProper (ProcSym: CARDINAL) : BOOLEAN ;
+
+
+(*
+   GetProcedureDeclaredForward - return the token at which the forward
+                                 declaration procedure occurred.
+*)
+
+PROCEDURE GetProcedureDeclaredForward (sym: CARDINAL) : CARDINAL ;
+
+
+(*
+   PutProcedureDeclaredForward - places the tok to which the forward
+                                 declaration procedure occurred.
+*)
+
+PROCEDURE PutProcedureDeclaredForward (sym: CARDINAL; tok: CARDINAL) ;
+
+
+(*
+   GetProcedureDeclaredProper - return the token at which the forward
+                                declaration procedure occurred.
+*)
+
+PROCEDURE GetProcedureDeclaredProper (sym: CARDINAL) : CARDINAL ;
+
+
+(*
+   PutProcedureDeclaredProper - places the tok to which the forward
+                                declaration procedure occurred.
+*)
+
+PROCEDURE PutProcedureDeclaredProper (sym: CARDINAL; tok: CARDINAL) ;
+
+
+(*
+   GetProcedureDeclaredDefinition - return the token at which the forward
+                                    declaration procedure occurred.
+*)
+
+PROCEDURE GetProcedureDeclaredDefinition (sym: CARDINAL) : CARDINAL ;
+
+
+(*
+   PutProcedureDeclaredDefinition - places the tok to which the forward
+                                    declaration procedure occurred.
+*)
+
+PROCEDURE PutProcedureDeclaredDefinition (sym: CARDINAL; tok: CARDINAL) ;
+
+
 (*
    PutUseVarArgs - tell the symbol table that this procedure, Sym, uses varargs.
                    The procedure _must_ be declared inside a
@@ -3364,4 +3461,41 @@ PROCEDURE PutConstLitInternal (sym: CARDINAL; value: BOOLEAN) ;
 PROCEDURE IsConstLitInternal (sym: CARDINAL) : BOOLEAN ;
 
 
+(*
+   GetVarDeclTypeTok - returns the TypeTok field associate with variable sym.
+*)
+
+PROCEDURE GetVarDeclTypeTok (sym: CARDINAL) : CARDINAL ;
+
+
+(*
+   PutVarDeclTypeTok - assigns the TypeTok field to typetok.
+                       sym can be a variable or parameter.
+*)
+
+PROCEDURE PutVarDeclTypeTok (sym: CARDINAL; typetok: CARDINAL) ;
+
+
+(*
+   GetVarDeclTok - returns the TypeTok field associate with variable sym.
+*)
+
+PROCEDURE GetVarDeclTok (sym: CARDINAL) : CARDINAL ;
+
+
+(*
+   PutVarDeclTok - assigns the VarTok field to vartok.
+                   sym can be a variable or parameter.
+*)
+
+PROCEDURE PutVarDeclTok (sym: CARDINAL; vartok: CARDINAL) ;
+
+
+(*
+   GetVarDeclFullTok - returns the full virtual token containing var: type.
+*)
+
+PROCEDURE GetVarDeclFullTok (sym: CARDINAL) : CARDINAL ;
+
+
 END SymbolTable.
diff --git a/gcc/m2/gm2-compiler/SymbolTable.mod b/gcc/m2/gm2-compiler/SymbolTable.mod
index b5e2b9b7203..8fed8b3fc5d 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.mod
+++ b/gcc/m2/gm2-compiler/SymbolTable.mod
@@ -40,7 +40,8 @@ FROM M2Options IMPORT Pedantic, ExtendedOpaque,
                       DebugBuiltins ;
 
 FROM M2LexBuf IMPORT UnknownTokenNo, TokenToLineNo,
-                     FindFileNameFromToken, TokenToLocation ;
+                     FindFileNameFromToken, TokenToLocation,
+                     MakeVirtual2Tok ;
 
 FROM M2ALU IMPORT InitValue, PtrToValue, PushCard, PopInto,
                   PushString, PushFrom, PushChar, PushInt,
@@ -149,10 +150,22 @@ TYPE
 
    Where = RECORD
               DefDeclared,
-              ModDeclared,
-              FirstUsed  : CARDINAL ;
+              FirstUsed,
+              ModDeclared: CARDINAL ;
            END ;
 
+   ProcedureDecl = RECORD
+                      Forward,                (* The token locations for     *)
+                      Definition,             (* each potential procedure    *)
+                      Proper    : CARDINAL ;  (* declaration.                *)
+                   END ;
+
+   VarDecl = RECORD
+                FullTok,
+                VarTok,
+                TypeTok: CARDINAL ;           (* Variable and type token     *)
+             END ;                            (* locations.                  *)
+
    PackedInfo = RECORD
                    IsPacked    : BOOLEAN ;    (* is this type packed?        *)
                    PackedEquiv : CARDINAL ;   (* the equivalent packed type  *)
@@ -207,6 +220,7 @@ TYPE
 
    SymError     = RECORD
                      name      : Name ;
+                     Scope     : CARDINAL ;   (* Scope of declaration.       *)
                      At        : Where ;      (* Where was sym declared/used *)
                   END ;
 
@@ -382,6 +396,8 @@ TYPE
                                             (* the .def or .mod first.       *)
                                             (* The second occurence is       *)
                                             (* compared to the first.        *)
+               DefinedByProper,             (* Were the parameters defined   *)
+               DefinedByForward,            (* by a FORWARD declaration?     *)
                HasVarArgs    : BOOLEAN ;    (* Does this procedure use ... ? *)
                HasOptArg     : BOOLEAN ;    (* Does this procedure use [ ] ? *)
                OptArgInit    : CARDINAL ;   (* The optarg initial value.     *)
@@ -394,6 +410,11 @@ TYPE
                IsPublic      : BOOLEAN ;    (* Make this procedure visible.  *)
                IsCtor        : BOOLEAN ;    (* Is this procedure a ctor?     *)
                IsMonoName    : BOOLEAN ;    (* Ignores module name prefix.   *)
+               Declared      : ProcedureDecl ;  (* Forward, definition and   *)
+                                            (* proper token positions.       *)
+               DeclaredForward,             (* The token no used to define   *)
+               DeclaredDefinition,          (* the definition, proper and    *)
+               DeclaredProper: CARDINAL ;   (* forward.                      *)
                Unresolved    : SymbolTree ; (* All symbols currently         *)
                                             (* unresolved in this procedure. *)
                ScopeQuad     : CARDINAL ;   (* Index into quads for scope    *)
@@ -547,6 +568,7 @@ TYPE
                                               (* to an array?                *)
                Heap          : BOOLEAN ;      (* Is var on the heap?         *)
                InitState     : LRInitDesc ;   (* Initialization state.       *)
+               Declared      : VarDecl ;      (* Var and type tokens.        *)
                At            : Where ;        (* Where was sym declared/used *)
                ReadUsageList,                 (* list of var read quads      *)
                WriteUsageList: LRLists ;      (* list of var write quads     *)
@@ -1514,6 +1536,7 @@ BEGIN
    WITH pSym^ DO
       SymbolType := ErrorSym ;
       Error.name := name ;
+      Error.Scope := GetCurrentScope () ;
       InitWhereDeclaredTok(tok, Error.At) ;
       InitWhereFirstUsedTok(tok, Error.At)
    END ;
@@ -3916,6 +3939,18 @@ BEGIN
 END PutModuleCtorExtern ;
 
 
+(*
+   InitProcedureDecl - initializes all fields of ProcedureDecl to UnknownTokenNo.
+*)
+
+PROCEDURE InitProcedureDecl (VAR decl: ProcedureDecl) ;
+BEGIN
+   decl.Forward := UnknownTokenNo ;
+   decl.Definition := UnknownTokenNo ;
+   decl.Proper := UnknownTokenNo
+END InitProcedureDecl ;
+
+
 (*
    MakeProcedure - creates a procedure sym with name. It returns
                    the symbol index.
@@ -3953,6 +3988,10 @@ BEGIN
                                          (* the .def or .mod first.       *)
                                          (* The second occurence is       *)
                                          (* compared to the first.        *)
+            DefinedByProper := FALSE ;   (* Were the parameters defined   *)
+                                         (* in a proper procedure.        *)
+            DefinedByForward := FALSE ;  (* Were the parameters defined   *)
+                                         (* in a FORWARD declaration?     *)
             HasVarArgs := FALSE ;        (* Does the procedure use ... ?  *)
             HasOptArg := FALSE ;         (* Does this procedure use [ ] ? *)
             OptArgInit := NulSym ;       (* The optarg initial value.     *)
@@ -3965,6 +4004,9 @@ BEGIN
             IsPublic := FALSE ;          (* Make this procedure visible.  *)
             IsCtor := FALSE ;            (* Is this procedure a ctor?     *)
             IsMonoName := FALSE ;        (* Overrides module name prefix. *)
+            InitProcedureDecl (Declared) ; (* The token no used to define *)
+                                         (* the definition, proper and    *)
+                                         (* forward.                      *)
             Scope := GetCurrentScope() ; (* Scope of procedure.           *)
             InitTree(Unresolved) ;       (* All symbols currently         *)
                                          (* unresolved in this procedure. *)
@@ -4283,6 +4325,237 @@ BEGIN
 END AddVarToList ;
 
 
+(*
+   InitVarDecl - initialize the variable and type token location positions.
+*)
+
+PROCEDURE InitVarDecl (VAR decl: VarDecl; vartok: CARDINAL) ;
+BEGIN
+   decl.FullTok := UnknownTokenNo ;
+   decl.VarTok := vartok ;
+   decl.TypeTok := UnknownTokenNo
+END InitVarDecl ;
+
+
+(*
+   doPutVarDeclTypeTok - places typetok into decl.TypeTok.
+                         sym must be a variable.
+*)
+
+PROCEDURE doPutVarDeclTypeTok (sym: CARDINAL; typetok: CARDINAL) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   Assert (IsVar (sym)) ;
+   pSym := GetPsym (sym) ;
+   WITH pSym^.Var DO
+      Declared.TypeTok := typetok
+   END
+END doPutVarDeclTypeTok ;
+
+
+(*
+   PutVarDeclTypeTok - assigns the TypeTok field to typetok.
+                       sym can be a variable or parameter.
+*)
+
+PROCEDURE PutVarDeclTypeTok (sym: CARDINAL; typetok: CARDINAL) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   IF IsParameter (sym)
+   THEN
+      pSym := GetPsym (sym) ;
+      IF IsParameterVar (sym)
+      THEN
+         PutVarDeclTypeTok (pSym^.VarParam.ShadowVar, typetok)
+      ELSE
+         PutVarDeclTypeTok (pSym^.Param.ShadowVar, typetok)
+      END
+   ELSIF IsVar (sym)
+   THEN
+      doPutVarDeclTypeTok (sym, typetok)
+   END
+END PutVarDeclTypeTok ;
+
+
+(*
+   doPutVarDeclTok - places vartok into decl.VarTok.
+                     sym must be a variable.
+*)
+
+PROCEDURE doPutVarDeclTok (sym: CARDINAL; vartok: CARDINAL) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   Assert (IsVar (sym)) ;
+   pSym := GetPsym (sym) ;
+   WITH pSym^.Var DO
+      Declared.VarTok := vartok
+   END
+END doPutVarDeclTok ;
+
+
+(*
+   PutVarDeclTok - assigns the VarTok field to typetok.
+                   sym can be a variable or parameter.
+*)
+
+PROCEDURE PutVarDeclTok (sym: CARDINAL; vartok: CARDINAL) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   IF IsParameter (sym)
+   THEN
+      pSym := GetPsym (sym) ;
+      IF IsParameterVar (sym)
+      THEN
+         PutVarDeclTok (pSym^.VarParam.ShadowVar, vartok)
+      ELSE
+         PutVarDeclTok (pSym^.Param.ShadowVar, vartok)
+      END
+   ELSIF IsVar (sym)
+   THEN
+      doPutVarDeclTok (sym, vartok)
+   END
+END PutVarDeclTok ;
+
+
+(*
+   doGetVarDeclTok - return decl.VarTok for a variable.
+*)
+
+PROCEDURE doGetVarDeclTok (sym: CARDINAL) : CARDINAL ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym (sym) ;
+   Assert (IsVar (sym)) ;
+   WITH pSym^.Var DO
+      RETURN Declared.VarTok
+   END
+END doGetVarDeclTok ;
+
+
+(*
+   GetVarDeclTok - returns the TypeTok field associate with variable sym.
+*)
+
+PROCEDURE GetVarDeclTok (sym: CARDINAL) : CARDINAL ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   IF IsParameter (sym)
+   THEN
+      pSym := GetPsym (sym) ;
+      IF IsParameterVar (sym)
+      THEN
+         RETURN GetVarDeclTok (pSym^.VarParam.ShadowVar)
+      ELSE
+         RETURN GetVarDeclTok (pSym^.Param.ShadowVar)
+      END
+   ELSIF IsVar (sym)
+   THEN
+      RETURN doGetVarDeclTok (sym)
+   ELSE
+      RETURN UnknownTokenNo
+   END
+END GetVarDeclTok ;
+
+
+(*
+   doGetVarDeclTypeTok - return decl.TypeTok for a variable.
+*)
+
+PROCEDURE doGetVarDeclTypeTok (sym: CARDINAL) : CARDINAL ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym (sym) ;
+   Assert (IsVar (sym)) ;
+   WITH pSym^.Var DO
+      RETURN Declared.TypeTok
+   END
+END doGetVarDeclTypeTok ;
+
+
+(*
+   GetVarDeclTypeTok - returns the TypeTok field associate with variable sym.
+*)
+
+PROCEDURE GetVarDeclTypeTok (sym: CARDINAL) : CARDINAL ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   IF IsParameter (sym)
+   THEN
+      pSym := GetPsym (sym) ;
+      IF IsParameterVar (sym)
+      THEN
+         RETURN GetVarDeclTypeTok (pSym^.VarParam.ShadowVar)
+      ELSE
+         RETURN GetVarDeclTypeTok (pSym^.Param.ShadowVar)
+      END
+   ELSIF IsVar (sym)
+   THEN
+      RETURN doGetVarDeclTypeTok (sym)
+   ELSE
+      RETURN UnknownTokenNo
+   END
+END GetVarDeclTypeTok ;
+
+
+(*
+   doGetVarDeclFullTok - return the full declaration of var: type.
+*)
+
+PROCEDURE doGetVarDeclFullTok (sym: CARDINAL) : CARDINAL ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym (sym) ;
+   Assert (IsVar (sym)) ;
+   WITH pSym^.Var DO
+      IF Declared.FullTok = UnknownTokenNo
+      THEN
+         IF Declared.TypeTok = UnknownTokenNo
+         THEN
+            RETURN Declared.VarTok
+         ELSE
+            Declared.FullTok := MakeVirtual2Tok (Declared.VarTok, Declared.TypeTok)
+         END
+      END ;
+      RETURN Declared.FullTok
+   END
+END doGetVarDeclFullTok ;
+
+
+(*
+   GetVarDeclFullTok - returns the full virtual token containing var: type.
+*)
+
+PROCEDURE GetVarDeclFullTok (sym: CARDINAL) : CARDINAL ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym (sym) ;
+   IF IsParameter (sym)
+   THEN
+      IF IsParameterVar (sym)
+      THEN
+         RETURN GetVarDeclFullTok (pSym^.VarParam.ShadowVar)
+      ELSE
+         RETURN GetVarDeclFullTok (pSym^.Param.ShadowVar)
+      END
+   ELSIF IsVar (sym)
+   THEN
+      RETURN doGetVarDeclFullTok (sym)
+   ELSE
+      RETURN UnknownTokenNo
+   END
+END GetVarDeclFullTok ;
+
+
 (*
    MakeVar - creates a variable sym with VarName. It returns the
              symbol index.
@@ -4319,6 +4592,7 @@ BEGIN
             IsConst := FALSE ;
             ArrayRef := FALSE ;
             Heap := FALSE ;
+            InitVarDecl (Declared, tok) ;
             InitWhereDeclaredTok(tok, At) ;
             InitWhereFirstUsedTok(tok, At) ;   (* Where symbol first used.  *)
             InitList(ReadUsageList[RightValue]) ;
@@ -6680,6 +6954,31 @@ BEGIN
 END PutVar ;
 
 
+(*
+   PutVarTok - gives the VarSym symbol Sym a type Type at typetok.
+*)
+
+PROCEDURE PutVarTok (Sym: CARDINAL; VarType: CARDINAL; typetok: CARDINAL) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym(Sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      VarSym     : Var.Type := VarType ;
+                   Var.Declared.TypeTok := typetok ;
+                   ConfigSymInit (Var.InitState[LeftValue], Sym) ;
+                   ConfigSymInit (Var.InitState[RightValue], Sym) |
+      ConstVarSym: ConstVar.Type := VarType
+
+      ELSE
+         InternalError ('expecting VarSym or ConstVarSym')
+      END
+   END
+END PutVarTok ;
+
+
 (*
    PutLeftValueFrontBackType - gives the variable symbol a front and backend type.
                                The variable must be a LeftValue.
@@ -10173,8 +10472,9 @@ END PutOptFunction ;
 
 PROCEDURE MakeVariableForParam (tok      : CARDINAL;
                                 ParamName: Name;
-                                ProcSym  : CARDINAL ;
-                                no       : CARDINAL) : CARDINAL ;
+                                ProcSym  : CARDINAL;
+                                no       : CARDINAL;
+                                typetok  : CARDINAL) : CARDINAL ;
 VAR
    pSym       : PtrToSymbol ;
    VariableSym: CARDINAL ;
@@ -10193,7 +10493,7 @@ BEGIN
       END
    END ;
    (* Note that the parameter is now treated as a local variable.  *)
-   PutVar (VariableSym, GetType(GetNthParam(ProcSym, no))) ;
+   PutVarTok (VariableSym, GetType(GetNthParam(ProcSym, no)), typetok) ;
    PutDeclared (tok, VariableSym) ;
    (*
       Normal VAR parameters have LeftValue,
@@ -10220,7 +10520,7 @@ END MakeVariableForParam ;
 
 PROCEDURE PutParam (tok: CARDINAL; Sym: CARDINAL; ParamNo: CARDINAL;
                     ParamName: Name; ParamType: CARDINAL;
-                    isUnbounded: BOOLEAN) : BOOLEAN ;
+                    isUnbounded: BOOLEAN; typetok: CARDINAL) : BOOLEAN ;
 VAR
    pSym       : PtrToSymbol ;
    ParSym     : CARDINAL ;
@@ -10246,7 +10546,8 @@ BEGIN
       AddParameter(Sym, ParSym) ;
       IF ParamName#NulName
       THEN
-         VariableSym := MakeVariableForParam(tok, ParamName, Sym, ParamNo) ;
+         VariableSym := MakeVariableForParam(tok, ParamName, Sym,
+                                             ParamNo, typetok) ;
          IF VariableSym=NulSym
          THEN
             RETURN( FALSE )
@@ -10272,7 +10573,7 @@ END PutParam ;
 
 PROCEDURE PutVarParam (tok: CARDINAL; Sym: CARDINAL; ParamNo: CARDINAL;
                        ParamName: Name; ParamType: CARDINAL;
-                       isUnbounded: BOOLEAN) : BOOLEAN ;
+                       isUnbounded: BOOLEAN; typetok: CARDINAL) : BOOLEAN ;
 VAR
    pSym       : PtrToSymbol ;
    ParSym     : CARDINAL ;
@@ -10299,7 +10600,8 @@ BEGIN
       AddParameter(Sym, ParSym) ;
       IF ParamName#NulName
       THEN
-         VariableSym := MakeVariableForParam(tok, ParamName, Sym, ParamNo) ;
+         VariableSym := MakeVariableForParam(tok, ParamName, Sym,
+                                             ParamNo, typetok) ;
          IF VariableSym=NulSym
          THEN
             RETURN( FALSE )
@@ -10319,7 +10621,8 @@ END PutVarParam ;
                   ProcSym.
 *)
 
-PROCEDURE PutParamName (tok: CARDINAL; ProcSym: CARDINAL; no: CARDINAL; name: Name) ;
+PROCEDURE PutParamName (tok: CARDINAL; ProcSym: CARDINAL; no: CARDINAL;
+                        name: Name; typetok: CARDINAL) ;
 VAR
    pSym  : PtrToSymbol ;
    ParSym: CARDINAL ;
@@ -10344,14 +10647,16 @@ BEGIN
       ParamSym:    IF Param.name=NulName
                    THEN
                       Param.name := name ;
-                      Param.ShadowVar := MakeVariableForParam(tok, name, ProcSym, no)
+                      Param.ShadowVar := MakeVariableForParam(tok, name, ProcSym,
+                                                              no, typetok)
                    ELSE
                       InternalError ('name of parameter has already been assigned')
                    END |
       VarParamSym: IF VarParam.name=NulName
                    THEN
                       VarParam.name := name ;
-                      VarParam.ShadowVar := MakeVariableForParam(tok, name, ProcSym, no)
+                      VarParam.ShadowVar := MakeVariableForParam(tok, name, ProcSym,
+                                                                 no, typetok)
                    ELSE
                       InternalError ('name of parameter has already been assigned')
                    END
@@ -10972,7 +11277,7 @@ BEGIN
       CASE SymbolType OF
 
       ErrorSym    : |
-      ProcedureSym: Assert(NOT Procedure.ParamDefined) ;
+      ProcedureSym: (* Assert(NOT Procedure.ParamDefined) ; *)
                     Procedure.ParamDefined := TRUE
 
       ELSE
@@ -11108,6 +11413,100 @@ BEGIN
 END AreParametersDefinedInImplementation ;
 
 
+(*
+   PutParametersDefinedByForward - records that the parameters have been
+                                   defined in a FORWARD declaration.
+*)
+
+PROCEDURE PutParametersDefinedByForward (ProcSym: CARDINAL) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   CheckLegal (ProcSym) ;
+   pSym := GetPsym (ProcSym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ProcedureSym: Procedure.DefinedByForward := TRUE
+
+      ELSE
+         InternalError ('expecting a Procedure symbol')
+      END
+   END
+END PutParametersDefinedByForward ;
+
+
+(*
+   GetParametersDefinedByForward - return TRUE if ProcSym has had its parameters
+                                   defined by a FORWARD declaration.
+*)
+
+PROCEDURE GetParametersDefinedByForward (ProcSym: CARDINAL) : BOOLEAN ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   CheckLegal (ProcSym) ;
+   pSym := GetPsym (ProcSym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ErrorSym    : RETURN( FALSE ) |
+      ProcedureSym: RETURN( Procedure.DefinedByForward )
+
+      ELSE
+         InternalError ('expecting a Procedure symbol')
+      END
+   END
+END GetParametersDefinedByForward ;
+
+
+(*
+   PutParametersDefinedByProper - records that the parameters have been
+                                   defined in a FORWARD declaration.
+*)
+
+PROCEDURE PutParametersDefinedByProper (ProcSym: CARDINAL) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   CheckLegal (ProcSym) ;
+   pSym := GetPsym (ProcSym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ProcedureSym: Procedure.DefinedByProper := TRUE
+
+      ELSE
+         InternalError ('expecting a Procedure symbol')
+      END
+   END
+END PutParametersDefinedByProper ;
+
+
+(*
+   GetParametersDefinedByProper - return TRUE if ProcSym has had its parameters
+                                   defined by a FORWARD declaration.
+*)
+
+PROCEDURE GetParametersDefinedByProper (ProcSym: CARDINAL) : BOOLEAN ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   CheckLegal (ProcSym) ;
+   pSym := GetPsym (ProcSym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ErrorSym    : RETURN( FALSE ) |
+      ProcedureSym: RETURN( Procedure.DefinedByProper )
+
+      ELSE
+         InternalError ('expecting a Procedure symbol')
+      END
+   END
+END GetParametersDefinedByProper ;
+
+
 (*
    FillInUnknownFields -
 *)
@@ -12479,7 +12878,7 @@ BEGIN
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ErrorSym           : ErrorAbort0('') |
+      ErrorSym           : RETURN( Error.Scope ) |
       DefImpSym          : RETURN( NulSym ) |
       ModuleSym          : RETURN( Module.Scope ) |
       VarSym             : RETURN( Var.Scope ) |
@@ -12500,6 +12899,18 @@ BEGIN
       ConstLitSym        : RETURN( ConstLit.Scope ) |
       ConstStringSym     : RETURN( ConstString.Scope ) |
       ConstVarSym        : RETURN( ConstVar.Scope ) |
+      ParamSym           : IF Param.ShadowVar = NulSym
+                           THEN
+                              RETURN NulSym
+                           ELSE
+                              RETURN( GetScope (Param.ShadowVar) )
+                           END |
+      VarParamSym        : IF VarParam.ShadowVar = NulSym
+                           THEN
+                              RETURN NulSym
+                           ELSE
+                              RETURN( GetScope (VarParam.ShadowVar) )
+                           END |
       UndefinedSym       : RETURN( NulSym ) |
       PartialUnboundedSym: InternalError ('should not be requesting the scope of a PartialUnbounded symbol')
 
@@ -13608,6 +14019,151 @@ BEGIN
 END GetDeclaredMod ;
 
 
+(*
+   GetDeclaredFor - returns the token where this symbol was declared.
+                    It chooses the first from the forward declaration,
+                    implementation module, program module
+                    and definition module.
+*)
+
+PROCEDURE GetDeclaredFor (Sym: CARDINAL) : CARDINAL ;
+BEGIN
+   RETURN GetProcedureDeclaredForward (Sym)
+END GetDeclaredFor ;
+
+
+(*
+   GetProcedureDeclaredForward - return the token at which the forward
+                                 declaration procedure occurred.
+*)
+
+PROCEDURE GetProcedureDeclaredForward (sym: CARDINAL) : CARDINAL ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym (sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ProcedureSym: RETURN Procedure.Declared.Forward
+
+      ELSE
+         InternalError ('expecting procedure symbol')
+      END
+   END
+END GetProcedureDeclaredForward ;
+
+
+(*
+   PutProcedureDeclaredForward - places the tok to which the forward
+                                 declaration procedure occurred.
+*)
+
+PROCEDURE PutProcedureDeclaredForward (sym: CARDINAL; tok: CARDINAL) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym (sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ProcedureSym: Procedure.Declared.Forward := tok
+
+      ELSE
+         InternalError ('expecting procedure symbol')
+      END
+   END
+END PutProcedureDeclaredForward ;
+
+
+(*
+   GetProcedureDeclaredProper - return the token at which the forward
+                                declaration procedure occurred.
+*)
+
+PROCEDURE GetProcedureDeclaredProper (sym: CARDINAL) : CARDINAL ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym (sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ProcedureSym: RETURN Procedure.Declared.Proper
+
+      ELSE
+         InternalError ('expecting procedure symbol')
+      END
+   END
+END GetProcedureDeclaredProper ;
+
+
+(*
+   PutProcedureDeclaredProper - places the tok to which the forward
+                                declaration procedure occurred.
+*)
+
+PROCEDURE PutProcedureDeclaredProper (sym: CARDINAL; tok: CARDINAL) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym (sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ProcedureSym: Procedure.Declared.Proper := tok
+
+      ELSE
+         InternalError ('expecting procedure symbol')
+      END
+   END
+END PutProcedureDeclaredProper ;
+
+
+(*
+   GetProcedureDeclaredDefinition - return the token at which the forward
+                                    declaration procedure occurred.
+*)
+
+PROCEDURE GetProcedureDeclaredDefinition (sym: CARDINAL) : CARDINAL ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym (sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ProcedureSym: RETURN Procedure.Declared.Definition
+
+      ELSE
+         InternalError ('expecting procedure symbol')
+      END
+   END
+END GetProcedureDeclaredDefinition ;
+
+
+(*
+   PutProcedureDeclaredDefinition - places the tok to which the forward
+                                    declaration procedure occurred.
+*)
+
+PROCEDURE PutProcedureDeclaredDefinition (sym: CARDINAL; tok: CARDINAL) ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym (sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ProcedureSym: Procedure.Declared.Definition := tok
+
+      ELSE
+         InternalError ('expecting procedure symbol')
+      END
+   END
+END PutProcedureDeclaredDefinition ;
+
+
 (*
    GetFirstUsed - returns the token where this symbol was first used.
 *)
diff --git a/gcc/m2/gm2-libs-log/FileSystem.def b/gcc/m2/gm2-libs-log/FileSystem.def
index bfc98e0d300..89610a95f35 100644
--- a/gcc/m2/gm2-libs-log/FileSystem.def
+++ b/gcc/m2/gm2-libs-log/FileSystem.def
@@ -269,7 +269,7 @@ PROCEDURE Doio (VAR f: File) ;
                   character was illegal.
 *)
 
-PROCEDURE FileNameChar (ch: CHAR) ;
+PROCEDURE FileNameChar (ch: CHAR) : CHAR ;
 
 
 END FileSystem.
diff --git a/gcc/m2/m2.flex b/gcc/m2/m2.flex
index 7f9b2d3d931..876b759e8f0 100644
--- a/gcc/m2/m2.flex
+++ b/gcc/m2/m2.flex
@@ -264,6 +264,7 @@ EXIT                       { updatepos(); M2LexBuf_AddTok(M2Reserved_exittok); r
 EXPORT                     { updatepos(); M2LexBuf_AddTok(M2Reserved_exporttok); return; }
 FINALLY                    { updatepos(); M2LexBuf_AddTok(M2Reserved_finallytok); return; }
 FOR                        { updatepos(); M2LexBuf_AddTok(M2Reserved_fortok); return; }
+FORWARD                    { updatepos(); M2LexBuf_AddTok(M2Reserved_forwardtok); return; }
 FROM                       { updatepos(); M2LexBuf_AddTok(M2Reserved_fromtok); return; }
 IF                         { updatepos(); M2LexBuf_AddTok(M2Reserved_iftok); return; }
 IMPLEMENTATION             { updatepos(); M2LexBuf_AddTok(M2Reserved_implementationtok); return; }
diff --git a/gcc/testsuite/gm2/iso/fail/badparam.def b/gcc/testsuite/gm2/iso/fail/badparam.def
new file mode 100644
index 00000000000..e1ce0318877
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badparam.def
@@ -0,0 +1,5 @@
+DEFINITION MODULE badparam ;
+
+PROCEDURE foo (c: CHAR) ;
+
+END badparam.
\ No newline at end of file
diff --git a/gcc/testsuite/gm2/iso/fail/badparam.mod b/gcc/testsuite/gm2/iso/fail/badparam.mod
new file mode 100644
index 00000000000..26ff5777fe5
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badparam.mod
@@ -0,0 +1,8 @@
+IMPLEMENTATION MODULE badparam ;
+
+PROCEDURE foo (c: CARDINAL) ;
+BEGIN
+
+END foo ;
+
+END badparam.
\ No newline at end of file
diff --git a/gcc/testsuite/gm2/iso/fail/badparam2.def b/gcc/testsuite/gm2/iso/fail/badparam2.def
new file mode 100644
index 00000000000..32f84024e7a
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badparam2.def
@@ -0,0 +1,5 @@
+DEFINITION MODULE badparam2 ;
+
+PROCEDURE foo (VAR c: CARDINAL) ;
+
+END badparam2.
diff --git a/gcc/testsuite/gm2/iso/fail/badparam2.mod b/gcc/testsuite/gm2/iso/fail/badparam2.mod
new file mode 100644
index 00000000000..e182d43b733
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badparam2.mod
@@ -0,0 +1,7 @@
+IMPLEMENTATION MODULE badparam2 ;
+
+PROCEDURE foo (c: CARDINAL) ;
+BEGIN
+END foo ;
+
+END badparam2.
diff --git a/gcc/testsuite/gm2/iso/fail/badparam3.def b/gcc/testsuite/gm2/iso/fail/badparam3.def
new file mode 100644
index 00000000000..4ca273b6c7a
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badparam3.def
@@ -0,0 +1,5 @@
+DEFINITION MODULE badparam3 ;
+
+PROCEDURE foo (c: CARDINAL) ;
+
+END badparam3.
diff --git a/gcc/testsuite/gm2/iso/fail/badparam3.mod b/gcc/testsuite/gm2/iso/fail/badparam3.mod
new file mode 100644
index 00000000000..1adfb64c092
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badparam3.mod
@@ -0,0 +1,7 @@
+IMPLEMENTATION MODULE badparam3 ;
+
+PROCEDURE foo (VAR c: CARDINAL) ;
+BEGIN
+END foo ;
+
+END badparam3.
diff --git a/gcc/testsuite/gm2/iso/fail/badparamarray.def b/gcc/testsuite/gm2/iso/fail/badparamarray.def
new file mode 100644
index 00000000000..fb92de362b4
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badparamarray.def
@@ -0,0 +1,5 @@
+DEFINITION MODULE badparamarray ;
+
+PROCEDURE foo (a: ARRAY OF CHAR) ;
+
+END badparamarray.
diff --git a/gcc/testsuite/gm2/iso/fail/badparamarray.mod b/gcc/testsuite/gm2/iso/fail/badparamarray.mod
new file mode 100644
index 00000000000..29037da0fcc
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badparamarray.mod
@@ -0,0 +1,8 @@
+IMPLEMENTATION MODULE badparamarray ;
+
+PROCEDURE foo (a: CHAR) ;
+BEGIN
+
+END foo ;
+
+END badparamarray.
diff --git a/gcc/testsuite/gm2/iso/fail/simpledef1.def b/gcc/testsuite/gm2/iso/fail/simpledef1.def
new file mode 100644
index 00000000000..0be84469248
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/simpledef1.def
@@ -0,0 +1,6 @@
+DEFINITION MODULE simpledef1 ;
+
+PROCEDURE foo ;
+PROCEDURE foo ;
+
+END simpledef1.
diff --git a/gcc/testsuite/gm2/iso/fail/simpledef1.mod b/gcc/testsuite/gm2/iso/fail/simpledef1.mod
new file mode 100644
index 00000000000..c65deb5351a
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/simpledef1.mod
@@ -0,0 +1,3 @@
+IMPLEMENTATION MODULE simpledef1 ;
+
+END simpledef1.
diff --git a/gcc/testsuite/gm2/iso/fail/simpleforward.mod b/gcc/testsuite/gm2/iso/fail/simpleforward.mod
new file mode 100644
index 00000000000..54edf815282
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/simpleforward.mod
@@ -0,0 +1,12 @@
+MODULE simpleforward ;
+
+
+PROCEDURE foo ; FORWARD ;
+
+PROCEDURE foo (c: CARDINAL) ;
+BEGIN
+END foo ;
+
+BEGIN
+   foo (1)
+END simpleforward.
diff --git a/gcc/testsuite/gm2/iso/fail/simpleforward2.mod b/gcc/testsuite/gm2/iso/fail/simpleforward2.mod
new file mode 100644
index 00000000000..7e30a00a032
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/simpleforward2.mod
@@ -0,0 +1,11 @@
+MODULE simpleforward2 ;
+
+PROCEDURE foo (c: CARDINAL) ;
+BEGIN
+END foo ;
+
+PROCEDURE foo ; FORWARD ;
+
+BEGIN
+   foo (1)
+END simpleforward2.
diff --git a/gcc/testsuite/gm2/iso/fail/simpleforward3.mod b/gcc/testsuite/gm2/iso/fail/simpleforward3.mod
new file mode 100644
index 00000000000..3537295a2c0
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/simpleforward3.mod
@@ -0,0 +1,11 @@
+MODULE simpleforward3 ;
+
+PROCEDURE foo (c: CARDINAL) ;
+BEGIN
+END foo ;
+
+PROCEDURE foo (c: CARDINAL) : CARDINAL ; FORWARD ;
+
+BEGIN
+   foo (1)
+END simpleforward3.
diff --git a/gcc/testsuite/gm2/iso/fail/simpleforward4.mod b/gcc/testsuite/gm2/iso/fail/simpleforward4.mod
new file mode 100644
index 00000000000..06a6fab0574
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/simpleforward4.mod
@@ -0,0 +1,17 @@
+MODULE simpleforward4 ;
+
+
+PROCEDURE foo () : CARDINAL ; FORWARD ;
+
+
+PROCEDURE foo () ;
+BEGIN
+   RETURN 0
+END foo ;
+
+
+BEGIN
+   IF foo () = 0
+   THEN
+   END
+END simpleforward4.
diff --git a/gcc/testsuite/gm2/iso/fail/simpleforward5.mod b/gcc/testsuite/gm2/iso/fail/simpleforward5.mod
new file mode 100644
index 00000000000..4b4960dd789
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/simpleforward5.mod
@@ -0,0 +1,12 @@
+MODULE simpleforward5 ;
+
+PROCEDURE foo (c: CARDINAL) : CARDINAL ; FORWARD ;
+PROCEDURE foo (c: CARDINAL) : CARDINAL ; FORWARD ;
+
+PROCEDURE foo (c: CARDINAL) ;
+BEGIN
+END foo ;
+
+BEGIN
+   foo (1)
+END simpleforward5.
diff --git a/gcc/testsuite/gm2/iso/fail/simpleforward7.mod b/gcc/testsuite/gm2/iso/fail/simpleforward7.mod
new file mode 100644
index 00000000000..6435b51e2a7
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/simpleforward7.mod
@@ -0,0 +1,11 @@
+MODULE simpleforward7 ;
+
+PROCEDURE foo (c: CARDINAL) ; FORWARD ;
+
+PROCEDURE foo (c: INTEGER) ;
+BEGIN
+END foo ;
+
+BEGIN
+   foo (1)
+END simpleforward7.
diff --git a/gcc/testsuite/gm2/iso/pass/simpleforward.mod b/gcc/testsuite/gm2/iso/pass/simpleforward.mod
new file mode 100644
index 00000000000..dd8b6f44f3c
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/pass/simpleforward.mod
@@ -0,0 +1,13 @@
+MODULE simpleforward ;
+
+
+PROCEDURE foo ; FORWARD ;
+
+PROCEDURE foo ;
+BEGIN
+END foo ;
+
+
+BEGIN
+   foo
+END simpleforward.
diff --git a/gcc/testsuite/gm2/iso/pass/simpleforward6.mod b/gcc/testsuite/gm2/iso/pass/simpleforward6.mod
new file mode 100644
index 00000000000..f92b787c9dc
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/pass/simpleforward6.mod
@@ -0,0 +1,14 @@
+MODULE simpleforward6 ;
+
+PROCEDURE foo () : CARDINAL ;
+BEGIN
+   RETURN 0
+END foo ;
+
+PROCEDURE foo () : CARDINAL ; FORWARD ;
+
+BEGIN
+   IF foo () = 0
+   THEN
+   END
+END simpleforward6.

commit b16824e10d9ae6c7740fc01424e192ae3448fc9a
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Dec 3 14:39:03 2024 +0000

    [PATCH] modula2: Tidyup gm2-compiler/M2MetaError.mod
    
    This patch is a tidyup for gm2-compiler/M2MetaError.mod.
    
    gcc/m2/ChangeLog:
    
            * gm2-compiler/M2MetaError.mod (op): Alphabetically order
            each case label and comment.
    
    (cherry picked from commit 7fa9fd47f161d6b8177439ae2b46a2048a5eaa24)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2MetaError.mod b/gcc/m2/gm2-compiler/M2MetaError.mod
index 007c10b28bd..e9f3127925c 100644
--- a/gcc/m2/gm2-compiler/M2MetaError.mod
+++ b/gcc/m2/gm2-compiler/M2MetaError.mod
@@ -1684,8 +1684,9 @@ END copySym ;
 
 
 (*
-   op := {'a'|'q'|'t'|'d'|'n'|'s'|'B'|'D'|'F'|'G'|'H'|'M'|'U'|'E'|'V'|'W'|'A'} then =:
-   op := {'a'|'q'|'t'|'d'|'n'|'s'| 'u' |'D'|'F'|'G'|'M'|'U'|'E'|'W'} then =:
+   op := {'!'|'a'|'c'|'d'|'k'|'q'|'t'|'p'|'n'|'s'|'u'|
+          'A'|'B'|'C'|'D'|'E'|'F'|'G'|'H'|'K'|'M'|'N'|
+          'O'|'P'|'Q'|'R'|'S'|'T'|'U'|'V'|'W'|'X'|'Y'|'Z'} then =:
 *)
 
 PROCEDURE op (VAR eb: errorBlock;
@@ -1701,43 +1702,43 @@ BEGIN
 
       '!':  eb.positive := NOT eb.positive |
       'a':  doName (eb, sym, bol) |
+      'c':  eb.currentCol := readColor (eb) ;
+            DEC (eb.ini) |
+      'd':  doDesc (eb, sym, bol) |
+      'k':  unquotedKeyword (eb) ;
+            DEC (eb.ini) |
       'q':  doQualified (eb, sym, bol) |
       't':  doType (eb, sym, bol) |
-      'd':  doDesc (eb, sym, bol) |
+      'p':  popColor (eb) |
       'n':  doNumber (eb, sym, bol) |
-      'N':  doCount (eb, sym, bol) |
       's':  doSkipType (eb, sym, bol) |
-      'B':  declaredType (eb, sym, bol) |
-      'H':  declaredFull (eb, sym, bol) |
-      'V':  declaredVar (eb, sym, bol) |
-      'G':  declaredFor (eb, sym, bol) |
-      'M':  declaredMod (eb, sym, bol) |
-      'D':  declaredDef (eb, sym, bol) |
-      'U':  used (eb, sym, bol) |
-      'E':  eb.type := error |
+      'u':  eb.quotes := FALSE |
       'A':  eb.type := aborta ;
             seenAbort := TRUE |
-      'W':  eb.type := warning |
-      'O':  eb.type := note |
+      'B':  declaredType (eb, sym, bol) |
       'C':  eb.chain := TRUE |
-      'R':  eb.root := TRUE |
-      'S':  doGetSkipType (eb, sym, bol) |
-      'T':  doGetType (eb, sym, bol) |
-      'P':  pushColor (eb) |
-      'p':  popColor (eb) |
-      'c':  eb.currentCol := readColor (eb) ;
+      'D':  declaredDef (eb, sym, bol) |
+      'E':  eb.type := error |
+      'F':  filename (eb) ;
             DEC (eb.ini) |
+      'G':  declaredFor (eb, sym, bol) |
+      'H':  declaredFull (eb, sym, bol) |
       'K':  keyword (eb) ;
             DEC (eb.ini) |
-      'k':  unquotedKeyword (eb) ;
-            DEC (eb.ini) |
+      'M':  declaredMod (eb, sym, bol) |
+      'N':  doCount (eb, sym, bol) |
+      'O':  eb.type := note |
+      'P':  pushColor (eb) |
       'Q':  resetDictionary |
+      'R':  eb.root := TRUE |
+      'S':  doGetSkipType (eb, sym, bol) |
+      'T':  doGetType (eb, sym, bol) |
+      'U':  used (eb, sym, bol) |
+      'V':  declaredVar (eb, sym, bol) |
+      'W':  eb.type := warning |
       'X':  pushOutput (eb) |
       'Y':  processDefine (eb) |
       'Z':  popOutput (eb) |
-      'F':  filename (eb) ;
-            DEC (eb.ini) |
-      'u':  eb.quotes := FALSE |
       ':':  ifNonNulThen (eb, sym) ;
             DEC (eb.ini) |
       '1':  InternalError ('incorrect format spec, expecting %1 rather than % spec 1') |

commit d35eeeca7b27bb153d61e5668d52efff6432cf66
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Dec 3 15:58:27 2024 +0000

    [PATCH] modula2: M2MetaError.{def,mod} and P2SymBuild.mod further cleanup
    
    Further cleanups and improve the wording of an error message.
    
    gcc/m2/ChangeLog:
    
            * gm2-compiler/M2MetaError.mod (op): Corrected ordering.
            * gm2-compiler/P2SymBuild.def: Remove comment.
            * gm2-compiler/P2SymBuild.mod (GetComparison): Replace
            the word less with fewer.
    
    (cherry picked from commit 961c02313f7e7a918e06851964ba54ea2e342cfa)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2MetaError.mod b/gcc/m2/gm2-compiler/M2MetaError.mod
index e9f3127925c..14df6457d64 100644
--- a/gcc/m2/gm2-compiler/M2MetaError.mod
+++ b/gcc/m2/gm2-compiler/M2MetaError.mod
@@ -1684,7 +1684,7 @@ END copySym ;
 
 
 (*
-   op := {'!'|'a'|'c'|'d'|'k'|'q'|'t'|'p'|'n'|'s'|'u'|
+   op := {'!'|'a'|'c'|'d'|'k'|'n'|'p'|'q'|'s'|'t'|'u'|
           'A'|'B'|'C'|'D'|'E'|'F'|'G'|'H'|'K'|'M'|'N'|
           'O'|'P'|'Q'|'R'|'S'|'T'|'U'|'V'|'W'|'X'|'Y'|'Z'} then =:
 *)
@@ -1707,11 +1707,11 @@ BEGIN
       'd':  doDesc (eb, sym, bol) |
       'k':  unquotedKeyword (eb) ;
             DEC (eb.ini) |
-      'q':  doQualified (eb, sym, bol) |
-      't':  doType (eb, sym, bol) |
-      'p':  popColor (eb) |
       'n':  doNumber (eb, sym, bol) |
+      'p':  popColor (eb) |
+      'q':  doQualified (eb, sym, bol) |
       's':  doSkipType (eb, sym, bol) |
+      't':  doType (eb, sym, bol) |
       'u':  eb.quotes := FALSE |
       'A':  eb.type := aborta ;
             seenAbort := TRUE |
diff --git a/gcc/m2/gm2-compiler/P2SymBuild.def b/gcc/m2/gm2-compiler/P2SymBuild.def
index 45b52f7f02d..ae736886e8a 100644
--- a/gcc/m2/gm2-compiler/P2SymBuild.def
+++ b/gcc/m2/gm2-compiler/P2SymBuild.def
@@ -21,15 +21,6 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE P2SymBuild ;
 
-(*
-   Title      : P2SymBuild
-   Author     : Gaius Mulley
-   Date       : 24/6/87
-   LastEdit   : Sat Dec  9 11:10:57 EST 1989
-   System     : UNIX (GNU Modula-2)
-   Description: pass 2 symbol creation.
-*)
-
 
 (*
    BlockStart - tokno is the module/procedure/implementation/definition token
diff --git a/gcc/m2/gm2-compiler/P2SymBuild.mod b/gcc/m2/gm2-compiler/P2SymBuild.mod
index 9edb911949e..2196b584eb5 100644
--- a/gcc/m2/gm2-compiler/P2SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P2SymBuild.mod
@@ -2055,7 +2055,7 @@ PROCEDURE GetComparison (left, right: CARDINAL) : String ;
 BEGIN
    IF left < right
    THEN
-      RETURN InitString ('less')
+      RETURN InitString ('fewer')
    ELSIF left > right
    THEN
       RETURN InitString ('more')

commit f01f01f0ebf8f5207096cb9650354210d890fe0d
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Thu Nov 21 15:10:24 2024 +0000

    middle-end:For multiplication try swapping operands when matching complex multiply [PR116463]
    
    This commit fixes the failures of complex.exp=fast-math-complex-mls-*.c on the
    GCC 14 branch and some of the ones on the master.
    
    The current matching just looks for one order for multiplication and was relying
    on canonicalization to always give the right order because of the TWO_OPERANDS.
    
    However when it comes to the multiplication trying only one order is a bit
    fragile as they can be flipped.
    
    The failing tests on the branch are:
    
    void fms180snd(_Complex TYPE a[restrict N], _Complex TYPE b[restrict N],
                   _Complex TYPE c[restrict N]) {
      for (int i = 0; i < N; i++)
        c[i] -= a[i] * (b[i] * I * I);
    }
    
    void fms180fst(_Complex TYPE a[restrict N], _Complex TYPE b[restrict N],
                   _Complex TYPE c[restrict N]) {
      for (int i = 0; i < N; i++)
        c[i] -= (a[i] * I * I) * b[i];
    }
    
    The issue is just a small difference in commutative operations.
    we look for {R,R} * {R,I} but found {R,I} * {R,R}.
    
    Since the DF analysis is cached, we should be able to swap operands and retry
    for multiply cheaply.
    
    There is a constraint being checked by vect_validate_multiplication for the data
    flow of the operands feeding the multiplications.  So e.g.
    
    between the nodes:
    
    note:   node 0x4d1d210 (max_nunits=2, refcnt=3) vector(2) double
    note:   op template: _27 = _10 * _25;
    note:      stmt 0 _27 = _10 * _25;
    note:      stmt 1 _29 = _11 * _25;
    note:   node 0x4d1d060 (max_nunits=2, refcnt=2) vector(2) double
    note:   op template: _26 = _11 * _24;
    note:      stmt 0 _26 = _11 * _24;
    note:      stmt 1 _28 = _10 * _24;
    
    we require the lanes to come from the same source which
    vect_validate_multiplication checks.  As such it doesn't make sense to flip them
    individually because that would invalidate the earlier linear_loads_p checks
    which have validated that the arguments all come from the same datarefs.
    
    This patch thus flips the operands in unison to still maintain this invariant,
    but also honor the commutative nature of multiplication.
    
    gcc/ChangeLog:
    
            PR tree-optimization/116463
            * tree-vect-slp-patterns.cc (complex_mul_pattern::matches,
            complex_fms_pattern::matches): Try swapping operands on multiply.
    
    (cherry picked from commit a9473f9c6f2d755d2eb79dbd30877e64b4bc6fc8)

diff --git a/gcc/tree-vect-slp-patterns.cc b/gcc/tree-vect-slp-patterns.cc
index 4a582ec9512..3bb283a3b5b 100644
--- a/gcc/tree-vect-slp-patterns.cc
+++ b/gcc/tree-vect-slp-patterns.cc
@@ -1069,7 +1069,15 @@ complex_mul_pattern::matches (complex_operation_t op,
   enum _conj_status status;
   if (!vect_validate_multiplication (perm_cache, compat_cache, left_op,
 				     right_op, false, &status))
-    return IFN_LAST;
+    {
+      /* Try swapping the order and re-trying since multiplication is
+	 commutative.  */
+      std::swap (left_op[0], left_op[1]);
+      std::swap (right_op[0], right_op[1]);
+      if (!vect_validate_multiplication (perm_cache, compat_cache, left_op,
+					 right_op, false, &status))
+	return IFN_LAST;
+    }
 
   if (status == CONJ_NONE)
     {
@@ -1286,7 +1294,15 @@ complex_fms_pattern::matches (complex_operation_t op,
   enum _conj_status status;
   if (!vect_validate_multiplication (perm_cache, compat_cache, right_op,
 				     left_op, true, &status))
-    return IFN_LAST;
+    {
+      /* Try swapping the order and re-trying since multiplication is
+	 commutative.  */
+      std::swap (left_op[0], left_op[1]);
+      std::swap (right_op[0], right_op[1]);
+      if (!vect_validate_multiplication (perm_cache, compat_cache, right_op,
+					 left_op, true, &status))
+	return IFN_LAST;
+    }
 
   if (status == CONJ_NONE)
     ifn = IFN_COMPLEX_FMS;

commit 92014ea7ca9d10d1b07eeb03b4f701bc249de311
Author: Joseph Myers <josmyers@redhat.com>
Date:   Tue Dec 3 18:28:09 2024 +0000

    Update gcc zh_CN.po
    
            * zh_CN.po: Update.

diff --git a/gcc/po/zh_CN.po b/gcc/po/zh_CN.po
index c03d3f290a9..5cead23a97c 100644
--- a/gcc/po/zh_CN.po
+++ b/gcc/po/zh_CN.po
@@ -36,7 +36,7 @@ msgstr ""
 "Project-Id-Version: gcc 14.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
 "POT-Creation-Date: 2024-07-25 16:23+0000\n"
-"PO-Revision-Date: 2024-09-15 10:21+0800\n"
+"PO-Revision-Date: 2024-12-03 09:31+0800\n"
 "Last-Translator: Zhanhaoxiang Zhang <zzhx2006@outlook.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
@@ -19268,11 +19268,11 @@ msgstr "编译中断。\n"
 
 #: diagnostic.cc:881
 msgid "                 from"
-msgstr "          从"
+msgstr "        于"
 
 #: diagnostic.cc:882
 msgid "In file included from"
-msgstr ""
+msgstr "包含于文件"
 
 #. 2
 #: diagnostic.cc:883
@@ -19281,7 +19281,7 @@ msgstr "        包含自"
 
 #: diagnostic.cc:884
 msgid "In module"
-msgstr ""
+msgstr "在模块中"
 
 #. 4
 #: diagnostic.cc:885
@@ -19290,12 +19290,12 @@ msgstr ""
 
 #: diagnostic.cc:886
 msgid "In module imported at"
-msgstr ""
+msgstr "在此处导入的模块中"
 
 #. 6
 #: diagnostic.cc:887
 msgid "imported at"
-msgstr ""
+msgstr "在此导入"
 
 #: diagnostic.cc:1592
 #, c-format
@@ -22946,22 +22946,16 @@ msgid "In static member function %qD"
 msgstr "在静态成员函数%qs中"
 
 #: cp/error.cc:3705
-#, fuzzy
-#| msgid "In copy constructor %qs"
 msgid "In copy constructor %qD"
-msgstr "在复制构造函数%qs"
+msgstr "在复制构造函数%qD"
 
 #: cp/error.cc:3707
-#, fuzzy
-#| msgid "In constructor %qs"
 msgid "In constructor %qD"
-msgstr "在构造函数%qs中"
+msgstr "在构造函数%qD中"
 
 #: cp/error.cc:3709
-#, fuzzy
-#| msgid "In destructor %qs"
 msgid "In destructor %qD"
-msgstr "在析构函数%qs中"
+msgstr "在析构函数%qD中"
 
 #: cp/error.cc:3711
 msgid "In lambda function"
@@ -22980,10 +22974,8 @@ msgid "In member function %qD"
 msgstr "在成员函数%qs中"
 
 #: cp/error.cc:3718
-#, fuzzy
-#| msgid "In function %qs"
 msgid "In function %qD"
-msgstr "在函数%qs中"
+msgstr "在函数%qD中"
 
 #: cp/error.cc:3741
 #, fuzzy, c-format
@@ -22991,9 +22983,8 @@ msgid "%s: In substitution of %qS:\n"
 msgstr "空动态字符串替换"
 
 #: cp/error.cc:3742
-#, fuzzy
 msgid "%s: In instantiation of %q#D:\n"
-msgstr "对%q#D的显式实例化"
+msgstr "%s: 在%q#D的实例化中: \n"
 
 #: cp/error.cc:3767 cp/error.cc:3925
 msgid "%r%s:%d:%d:%R   "
@@ -23019,9 +23010,8 @@ msgid "recursively required from %q#D\n"
 msgstr "与先前的声明%q+D不同"
 
 #: cp/error.cc:3785
-#, fuzzy
 msgid "required from %q#D\n"
-msgstr "与先前的声明%q+D不同"
+msgstr "在 %q#D 中的要求\n"
 
 #: cp/error.cc:3792
 #, fuzzy
@@ -23029,9 +23019,8 @@ msgid "recursively required from here\n"
 msgstr "从此处调用"
 
 #: cp/error.cc:3793
-#, fuzzy
 msgid "required from here\n"
-msgstr "从此处调用"
+msgstr "在此处的要求\n"
 
 #: cp/error.cc:3849
 #, fuzzy
@@ -26600,10 +26589,9 @@ msgid "%q+F declared %<static%> but never defined"
 msgstr "%q+F声明为%<static%>却从未定义过"
 
 #: cgraphunit.cc:1144
-#, fuzzy, gcc-internal-format
-#| msgid "%q+D defined but not used"
+#, gcc-internal-format
 msgid "%qD defined but not used"
-msgstr "%q+D定义后未使用"
+msgstr "%qD 在此处定义"
 
 #: cgraphunit.cc:1479
 #, fuzzy, gcc-internal-format
@@ -29586,7 +29574,7 @@ msgstr ""
 #: gimplify.cc:2764
 #, gcc-internal-format
 msgid "here"
-msgstr ""
+msgstr "此处"
 
 #. We've found [[fallthrough]]; at the end of a switch, which the C++
 #. standard says is ill-formed; see [dcl.attr.fallthrough].
@@ -34011,9 +33999,9 @@ msgid "in definition of macro %qs"
 msgstr "%qs后缺少宏名"
 
 #: tree-diagnostic.cc:224
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "in expansion of macro %qs"
-msgstr "印出 EXPR 的宏展开"
+msgstr "在宏 %qs 展开时"
 
 #: tree-eh.cc:4946
 #, gcc-internal-format, gfc-internal-format
@@ -34735,14 +34723,14 @@ msgid "tree check: accessed operand %d of %<omp_clause %s%> with %d operands in
 msgstr "树检查：在 %4$s 中访问有 %3$d 个操作数的 omp_clause %2$s 的第 %1$d 个操作数，于 %5$s:%6$d"
 
 #: tree.cc:12476
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is deprecated: %s"
-msgstr "已弃用%qE：%s"
+msgstr "%qD 已被弃用: %s"
 
 #: tree.cc:12479
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is deprecated"
-msgstr "已弃用%qE"
+msgstr "%qD 已被弃用"
 
 #: tree.cc:12502
 #, gcc-internal-format
@@ -35246,9 +35234,9 @@ msgid "invalid initial value for member %qE"
 msgstr "成员%qE的初始值无效"
 
 #: varasm.cc:5981
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD declared weak after being used"
-msgstr "%q+D声明为友元"
+msgstr "%qD 在使用后被声明为弱符号"
 
 #: varasm.cc:6033
 #, fuzzy, gcc-internal-format
@@ -36060,9 +36048,9 @@ msgid "%qE argument not an identifier"
 msgstr "cleanup 实参不是一个标识符"
 
 #: c-family/c-attribs.cc:4396
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not compatible with %qD"
-msgstr "选择%qD而不是%qD"
+msgstr "%qD 与 %qD 不兼容"
 
 #: c-family/c-attribs.cc:4399
 #, fuzzy, gcc-internal-format
@@ -37978,9 +37966,9 @@ msgid "%qD specified in %<allocate%> clause but not in an explicit privatization
 msgstr ""
 
 #: c-family/c-omp.cc:3039 c-family/c-omp.cc:3054
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not a function argument"
-msgstr "  初始化%2$qD的实参 %1$P"
+msgstr "%qD 不是一个函数参数"
 
 #: c-family/c-omp.cc:3335 c/c-typeck.cc:15466 cp/semantics.cc:8254
 #, fuzzy, gcc-internal-format
@@ -39364,10 +39352,9 @@ msgid "comparison of promoted bitwise complement of an unsigned value with unsig
 msgstr "比较无符号数和取反后又经提升的无符号数"
 
 #: c-family/c-warn.cc:2552
-#, fuzzy, gcc-internal-format
-#| msgid "unused parameter %q+D"
+#, gcc-internal-format
 msgid "unused parameter %qD"
-msgstr "未使用的参数%q+D"
+msgstr "未使用的参数%qD"
 
 #: c-family/c-warn.cc:2614
 #, fuzzy, gcc-internal-format
@@ -46011,9 +45998,9 @@ msgid "built-in function %qE requires the %qs ISA extension"
 msgstr "内建函数%q+D未被声明为函数"
 
 #: config/riscv/riscv-vector-builtins.cc:4747
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no matching function call to %qE with empty arguments"
-msgstr "对%<%D(%A)%>的调用没有匹配的函数"
+msgstr "没有与 %qE 匹配的函数调用，参数为空"
 
 #: config/riscv/riscv.cc:723
 #, fuzzy, gcc-internal-format
@@ -49674,9 +49661,9 @@ msgid "version control conflict marker in file"
 msgstr ""
 
 #: c/c-parser.cc:1257 cp/parser.cc:3320
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "to match this %qs"
-msgstr "没有匹配"
+msgstr "为了匹配这个%qs"
 
 #: c/c-parser.cc:1409 cp/parser.cc:34505
 #, gcc-internal-format
@@ -50921,9 +50908,9 @@ msgid "%qD is not a variable"
 msgstr "%qD不是一个变量"
 
 #: c/c-parser.cc:15750 cp/semantics.cc:8612
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not a pointer variable"
-msgstr "%qD不是一个变量"
+msgstr "%qD 不是一个指针变量"
 
 #: c/c-parser.cc:15792 cp/parser.cc:38997
 #, gcc-internal-format
@@ -51373,10 +51360,9 @@ msgid "expected function name"
 msgstr "需要函数"
 
 #: c/c-parser.cc:20433 cp/parser.cc:50131
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is not a member template function"
+#, gcc-internal-format
 msgid "%qD does not refer to a function"
-msgstr "%qD不是一个成员模板函数"
+msgstr "%qD 不引用一个函数"
 
 #: c/c-parser.cc:20456 c/c-parser.cc:20504 cp/parser.cc:1662
 #, fuzzy, gcc-internal-format
@@ -53539,9 +53525,9 @@ msgid "%<#pragma omp cancellation point%> must specify one of %<parallel%>, %<fo
 msgstr "%<#pragma omp taskwait%>只能用在复合语句中"
 
 #: c/c-typeck.cc:13897 cp/semantics.cc:5552 cp/semantics.cc:8560
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not a variable in %qs clause"
-msgstr "%qD在子句%qs中不是一个变量"
+msgstr "%qD 不是 %qs 子句中的变量"
 
 #: c/c-typeck.cc:13901 c/c-typeck.cc:15708 cp/semantics.cc:5556
 #: cp/semantics.cc:8564
@@ -53904,9 +53890,9 @@ msgstr "%qD在数据子句中多次出现"
 
 #: c/c-typeck.cc:15734 c/c-typeck.cc:15876 cp/semantics.cc:8599
 #: cp/semantics.cc:8766
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD does not have a mappable type in %qs clause"
-msgstr "%qD在子句%qs中不是一个变量"
+msgstr "%qD 在 %qs 子句中没有可映射的类型"
 
 #: c/c-typeck.cc:15859 cp/semantics.cc:8748
 #, fuzzy, gcc-internal-format
@@ -53920,9 +53906,9 @@ msgid "%qE appears more than once on the same %<declare target%> directive"
 msgstr "%qE在数据子句中多次出现"
 
 #: c/c-typeck.cc:15899 cp/semantics.cc:8794
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not an argument in %<uniform%> clause"
-msgstr "%qD在%<lastprivate%>子句中不是一个变量"
+msgstr "%qD 不是 %<uniform%> 子句中的参数"
 
 #: c/c-typeck.cc:15902 cp/semantics.cc:8797
 #, fuzzy, gcc-internal-format
@@ -54289,14 +54275,12 @@ msgstr "以从%qT转换为%qT"
 
 #. Conversion of conversion function return value failed.
 #: cp/call.cc:3907
-#, fuzzy
 msgid "  no known conversion from %qH to %qI"
-msgstr "以从%qT转换为%qT"
+msgstr "  没有已知的从 %qH 到 %qI 的转换"
 
 #: cp/call.cc:3913
-#, fuzzy
 msgid "  no known conversion for argument %d from %qH to %qI"
-msgstr "以从%qT转换为%qT"
+msgstr "  对于参数 %d 没有已知的从 %qH 到 %qI 的转换"
 
 #: cp/call.cc:3927 cp/pt.cc:7123
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -54392,9 +54376,9 @@ msgstr "  替代的 deduced 模板参数结果的在中错误看见以上的"
 
 #. Re-run template unification with diagnostics.
 #: cp/call.cc:4032
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  template argument deduction/substitution failed:"
-msgstr "模板第 %d 个参数无效"
+msgstr "  模板参数推导/替换失败:"
 
 #: cp/call.cc:4046
 #, fuzzy, gcc-internal-format
@@ -54470,19 +54454,19 @@ msgid "ambiguous overload for "
 msgstr "调用重载的%<%D(%A)%>有歧义"
 
 #: cp/call.cc:5459
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no match for "
-msgstr "没有匹配"
+msgstr "没有找到匹配的 "
 
 #: cp/call.cc:5462
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid " (operand types are %qT, %qT, and %qT)"
-msgstr "将%qT赋值给%qT时类型不兼容"
+msgstr " (操作数类型分别是 %qT, %qT 和 %qT)"
 
 #: cp/call.cc:5464
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid " (operand types are %qT and %qT)"
-msgstr "在类型%qT和%qT间比较"
+msgstr " (操作数类型分别是 %qT 和 %qT)"
 
 #: cp/call.cc:5466
 #, gcc-internal-format
@@ -54670,10 +54654,9 @@ msgid "comparison between %q#T and %q#T"
 msgstr "在%q#T和%q#T间比较"
 
 #: cp/call.cc:7615
-#, fuzzy, gcc-internal-format
-#| msgid "no match for call to %<(%T) (%A)%>"
+#, gcc-internal-format
 msgid "no match for call to %<%T::operator[] (%A)%>"
-msgstr "对%<(%T) (%A)%>的调用没有匹配"
+msgstr "对%<%T::operator[] (%A)%>的调用没有匹配"
 
 #: cp/call.cc:7629
 #, fuzzy, gcc-internal-format
@@ -54822,22 +54805,16 @@ msgid "in C++11 and above a default constructor can be explicit"
 msgstr ""
 
 #: cp/call.cc:8861
-#, fuzzy
-#| msgid "conversion to volatile reference type %q#T from rvalue of type %qT"
 msgid "cannot bind rvalue reference of type %qH to lvalue of type %qI"
-msgstr "将类型为%2$qT的右值转换为%1$qT的 volatile 引用"
+msgstr "无法将类型为 %qH 的右值引用绑定到类型为 %qI 的左值"
 
 #: cp/call.cc:8870
-#, fuzzy
-#| msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to a value of type %qI"
-msgstr "用类型为%2$qT的右值初始化类型为%1$qT的非常量引用无效"
+msgstr "无法将类型为 %qH 的非常量左值引用绑定到类型为 %qI 的值"
 
 #: cp/call.cc:8875
-#, fuzzy
-#| msgid "invalid initialization of non-const reference of type %qT from an rvalue of type %qT"
 msgid "cannot bind non-const lvalue reference of type %qH to an rvalue of type %qI"
-msgstr "用类型为%2$qT的右值初始化类型为%1$qT的非常量引用无效"
+msgstr "无法将类型为 %qH 的非常量左值引用绑定到类型为 %qI 的右值"
 
 #. extype is volatile
 #: cp/call.cc:8878
@@ -54992,10 +54969,9 @@ msgid "%qD clearing an object of type %#qT with no trivial copy-assignment%s"
 msgstr ""
 
 #: cp/call.cc:10939
-#, fuzzy, gcc-internal-format
-#| msgid "creating pointer to member of non-class type %qT"
+#, gcc-internal-format
 msgid "%qD clearing an object of non-trivial type %#qT%s"
-msgstr "生成非类类型%qT的成员指针"
+msgstr "%qD 正在清除一个非平凡类型 %#qT%s 的对象"
 
 #: cp/call.cc:10941
 #, gcc-internal-format
@@ -55091,21 +55067,18 @@ msgid "constructor delegates to itself"
 msgstr "inlined_to pointer 指向自身"
 
 #: cp/call.cc:11463 cp/typeck.cc:10386
-#, fuzzy
-#| msgid "cannot convert %qT to %qT"
 msgid "cannot convert %qH to %qI"
-msgstr "不能将%qT转换为%qT"
+msgstr "不能将%qH转换为%qI"
 
 #: cp/call.cc:11485
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no matching function for call to %<%T::operator %T(%A)%#V%>"
-msgstr "对%<%T::%s(%A)%#V%>的调用没有匹配的函数"
+msgstr "对%<%T::operator %T(%A)%#V%>的调用没有匹配的函数"
 
 #: cp/call.cc:11517
-#, fuzzy, gcc-internal-format
-#| msgid "no matching function for call to %<%T::%s(%A)%#V%>"
+#, gcc-internal-format
 msgid "no matching function for call to %<%T::%s%E(%A)%#V%>"
-msgstr "对%<%T::%s(%A)%#V%>的调用没有匹配的函数"
+msgstr "对%<%T::%s%E(%A)%#V%>的调用没有匹配的函数"
 
 #: cp/call.cc:11565
 #, gcc-internal-format
@@ -55123,9 +55096,9 @@ msgid "for a function-style cast, remove the redundant %<::%D%>"
 msgstr "对于函数类型的类型转换，移除冗余的%<::%D%>"
 
 #: cp/call.cc:11787
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no matching function for call to %<%s(%A)%>"
-msgstr "对%<%D(%A)%>的调用没有匹配的函数"
+msgstr "对%<%s(%A)%>的调用没有匹配的函数"
 
 #: cp/call.cc:11790
 #, gcc-internal-format
@@ -55373,9 +55346,9 @@ msgid "no unique final overrider for %qD in %qT"
 msgstr "%qD的最终重载在%qT中不唯一"
 
 #: cp/class.cc:3208
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD can be marked override"
-msgstr "函数%q+D的定义被标记为 dllimport"
+msgstr "%qD 可以标记为 override"
 
 #: cp/class.cc:3211
 #, fuzzy, gcc-internal-format
@@ -56299,9 +56272,9 @@ msgid "%qD was not declared %<constexpr%>"
 msgstr "%qD在其类外被声明为%<constexpr%>"
 
 #: cp/constexpr.cc:6065
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD does not have integral or enumeration type"
-msgstr "new 声明中的表达式必须具有整数或枚举类型"
+msgstr "%qD 不是整型或枚举类型"
 
 #: cp/constexpr.cc:6357
 #, fuzzy, gcc-internal-format
@@ -56673,10 +56646,9 @@ msgid "original template declaration here"
 msgstr "%q+D已在此声明过"
 
 #: cp/constraint.cc:1417
-#, fuzzy, gcc-internal-format
-#| msgid "no matching template for %qD found"
+#, gcc-internal-format
 msgid "no matching concepts for %qE"
-msgstr "没有找到与%qD匹配的模板"
+msgstr "没有与%qE匹配的概念"
 
 #: cp/constraint.cc:1723
 #, gcc-internal-format
@@ -56723,10 +56695,9 @@ msgid "the required type %qT is invalid"
 msgstr "重复的基类型%qT无效"
 
 #: cp/constraint.cc:2112 cp/constraint.cc:2186
-#, fuzzy, gcc-internal-format
-#| msgid "cannot convert %qT to %qT"
+#, gcc-internal-format
 msgid "cannot convert %qE to %qT"
-msgstr "不能将%qT转换为%qT"
+msgstr "不能将%qE转换为%qT"
 
 #: cp/constraint.cc:2141
 #, fuzzy, gcc-internal-format
@@ -56746,10 +56717,9 @@ msgid "%qE does not satisfy return-type-requirement"
 msgstr "指令不满足其约束："
 
 #: cp/constraint.cc:2181
-#, fuzzy, gcc-internal-format
-#| msgid "cannot convert %qT to %qT"
+#, gcc-internal-format
 msgid "cannot convert %qE to %qT because"
-msgstr "不能将%qT转换为%qT"
+msgstr "不能将%qE转换为%qT，因为"
 
 #. Replay the substitution error.
 #: cp/constraint.cc:2225
@@ -56849,22 +56819,19 @@ msgid "  %qT does not have a virtual destructor"
 msgstr "基类%q#T有一个非虚析构函数"
 
 #: cp/constraint.cc:3751
-#, fuzzy, gcc-internal-format
-#| msgid "%q#T is not a class"
+#, gcc-internal-format
 msgid "  %qT is not an abstract class"
-msgstr "%q#T不是一个类"
+msgstr "  %qT 不是一个抽象类"
 
 #: cp/constraint.cc:3754
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a template"
+#, gcc-internal-format
 msgid "  %qT is not an aggregate"
-msgstr "%qT不是一个模板"
+msgstr "  %qT 不是一个聚合体"
 
 #: cp/constraint.cc:3757
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a template"
+#, gcc-internal-format
 msgid "  %qT is not an array"
-msgstr "%qT不是一个模板"
+msgstr "  %qT 不是一个数组"
 
 #: cp/constraint.cc:3760
 #, fuzzy, gcc-internal-format
@@ -56872,22 +56839,19 @@ msgid "  %qT is not assignable from %qT"
 msgstr "派生联合%qT无效"
 
 #: cp/constraint.cc:3763
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a base of %qT"
+#, gcc-internal-format
 msgid "  %qT is not a base of %qT"
-msgstr "%qT不是%qT的基类"
+msgstr "  %qT不是%qT的基类"
 
 #: cp/constraint.cc:3766
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a template"
+#, gcc-internal-format
 msgid "  %qT is not a bounded array"
-msgstr "%qT不是一个模板"
+msgstr "  %qT 不是一个绑定的数组"
 
 #: cp/constraint.cc:3769
-#, fuzzy, gcc-internal-format
-#| msgid "%q#T is not a class"
+#, gcc-internal-format
 msgid "  %qT is not a class"
-msgstr "%q#T不是一个类"
+msgstr "  %qT 不是一个类"
 
 #: cp/constraint.cc:3773
 #, fuzzy, gcc-internal-format
@@ -56906,27 +56870,24 @@ msgid "  %qT is not convertible from %qE"
 msgstr "派生联合%qT无效"
 
 #: cp/constraint.cc:3781
-#, fuzzy, gcc-internal-format
-#| msgid "%q#T is not a class"
+#, gcc-internal-format
 msgid "  %qT is not an empty class"
-msgstr "%q#T不是一个类"
+msgstr "  %qT 不是一个空类"
 
 #: cp/constraint.cc:3784
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a template"
+#, gcc-internal-format
 msgid "  %qT is not an enum"
-msgstr "%qT不是一个模板"
+msgstr "  %qT 不是一个枚举"
 
 #: cp/constraint.cc:3787
-#, fuzzy, gcc-internal-format
-#| msgid "%q#T is not a class"
+#, gcc-internal-format
 msgid "  %qT is not a final class"
-msgstr "%q#T不是一个类"
+msgstr "  %qT 不是一个最终类"
 
 #: cp/constraint.cc:3790
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not a function"
-msgstr "在函数%qs中"
+msgstr "  %qT 不是一个函数"
 
 #: cp/constraint.cc:3793
 #, fuzzy, gcc-internal-format
@@ -56934,28 +56895,24 @@ msgid "  %qT is not layout compatible with %qT"
 msgstr "选择%qD而不是%qD"
 
 #: cp/constraint.cc:3796
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a class type"
+#, gcc-internal-format
 msgid "  %qT is not a literal type"
-msgstr "%qT不是一个类"
+msgstr "  %qT 不是一个字面类型"
 
 #: cp/constraint.cc:3799
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is not a member template function"
+#, gcc-internal-format
 msgid "  %qT is not a member function pointer"
-msgstr "%qD不是一个成员模板函数"
+msgstr "  %qT 不是一个成员函数指针"
 
 #: cp/constraint.cc:3802
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a member of %qT"
+#, gcc-internal-format
 msgid "  %qT is not a member object pointer"
-msgstr "%qT不是%qT的成员"
+msgstr "  %qT 不是一个成员对象指针"
 
 #: cp/constraint.cc:3805
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a member of %qT"
+#, gcc-internal-format
 msgid "  %qT is not a member pointer"
-msgstr "%qT不是%qT的成员"
+msgstr "  %qT 不是一个成员指针"
 
 #: cp/constraint.cc:3808
 #, fuzzy, gcc-internal-format
@@ -56973,10 +56930,9 @@ msgid "  %qT is not nothrow convertible from %qE"
 msgstr "派生联合%qT无效"
 
 #: cp/constraint.cc:3820
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is not a type"
+#, gcc-internal-format
 msgid "  %qT is not an object type"
-msgstr "%qD不是一个类型"
+msgstr " %qT 不是一个对象类型"
 
 #: cp/constraint.cc:3823
 #, fuzzy, gcc-internal-format
@@ -56985,22 +56941,19 @@ msgid "  %qT is not pointer-interconvertible base of %qT"
 msgstr "%qT是%qT的一个不可访问的基类"
 
 #: cp/constraint.cc:3827
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is not a type"
+#, gcc-internal-format
 msgid "  %qT is not a POD type"
-msgstr "%qD不是一个类型"
+msgstr "  %qT 不是一个POD类型"
 
 #: cp/constraint.cc:3830
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a class type"
+#, gcc-internal-format
 msgid "  %qT is not a polymorphic type"
-msgstr "%qT不是一个类"
+msgstr "  %qT 不是一个多态类型"
 
 #: cp/constraint.cc:3833
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a template"
+#, gcc-internal-format
 msgid "  %qT is not a reference"
-msgstr "%qT不是一个模板"
+msgstr "  %qT 不是一个引用"
 
 #: cp/constraint.cc:3836
 #, fuzzy, gcc-internal-format
@@ -57009,22 +56962,19 @@ msgid "  %qT is not the same as %qT"
 msgstr "%qT不是%qT的基类"
 
 #: cp/constraint.cc:3839
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a template"
+#, gcc-internal-format
 msgid "  %qT is not a scoped enum"
-msgstr "%qT不是一个模板"
+msgstr "  %qT 不是一个带作用域的枚举"
 
 #: cp/constraint.cc:3842
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a template type"
+#, gcc-internal-format
 msgid "  %qT is not an standard layout type"
-msgstr "%qT不是一个模板类型"
+msgstr "  %qT 不是一个标准布局类型"
 
 #: cp/constraint.cc:3845
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a class type"
+#, gcc-internal-format
 msgid "  %qT is not a trivial type"
-msgstr "%qT不是一个类"
+msgstr "  %qT 不是一个平凡类型"
 
 #: cp/constraint.cc:3848
 #, fuzzy, gcc-internal-format
@@ -57042,9 +56992,9 @@ msgid "  %qT is not trivially copyable"
 msgstr "在%q#T和%q#T间比较"
 
 #: cp/constraint.cc:3860
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not a union"
-msgstr "在函数%qs中"
+msgstr "  %qT 不是一个联合体"
 
 #: cp/constraint.cc:3863
 #, gcc-internal-format
@@ -57295,9 +57245,9 @@ msgid "%<return_void%> declared here"
 msgstr "%<return_void%>在此声明"
 
 #: cp/coroutines.cc:648 cp/coroutines.cc:726 cp/coroutines.cc:4283
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "no member named %qE in %qT"
-msgstr "没有名为%q#T的类模板，在%q#T中 "
+msgstr "在%2$qT中没有名为%1$qE的成员"
 
 #: cp/coroutines.cc:741
 #, fuzzy, gcc-internal-format
@@ -57513,20 +57463,19 @@ msgid "%qD is not a type"
 msgstr "%qD不是一个类型"
 
 #: cp/cp-gimplify.cc:3726
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a class type"
+#, gcc-internal-format
 msgid "%qD is not a class type"
-msgstr "%qT不是一个类"
+msgstr "%qD 不是一个类"
 
 #: cp/cp-gimplify.cc:3743
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD does not have %<const char *%> type"
-msgstr "%qE不是一个类"
+msgstr "%qD 不是 %<const char *%> 类型"
 
 #: cp/cp-gimplify.cc:3753
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD does not have integral type"
-msgstr "new 声明中的表达式必须具有整数或枚举类型"
+msgstr "%qD 不是整型"
 
 #: cp/cp-gimplify.cc:3765
 #, gcc-internal-format
@@ -57546,10 +57495,8 @@ msgid "conversion of %qE from %qH to %qI is ambiguous"
 msgstr "将%qE从%qT转换到%qT有歧义"
 
 #: cp/cvt.cc:174 cp/cvt.cc:201 cp/cvt.cc:255
-#, fuzzy
-#| msgid "cannot convert %qE from type %qT to type %qT"
 msgid "cannot convert %qE from type %qH to type %qI"
-msgstr "无法将%qE从类型%qT转换到类型%qT"
+msgstr "无法将%qE从类型%qH转换到类型%qI"
 
 #: cp/cvt.cc:391
 #, gcc-internal-format
@@ -57916,10 +57863,9 @@ msgid "template-parameter-"
 msgstr "模板形参-"
 
 #: cp/cxx-pretty-print.cc:2329
-#, fuzzy, gcc-internal-format
-#| msgid "%qT referred to as %qs"
+#, gcc-internal-format
 msgid "requires"
-msgstr "%qT作为%qs被引用"
+msgstr "需要"
 
 #: cp/cxx-pretty-print.cc:2849 cp/error.cc:399
 #, gcc-internal-format
@@ -58840,10 +58786,9 @@ msgid "%qT has no non-static data member named %qD"
 msgstr "%qT没有名为%qD的非静态数据成员"
 
 #: cp/decl.cc:7083
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is not a member of %qT"
+#, gcc-internal-format
 msgid "%qD is not a direct member of %qT"
-msgstr "%qD不是%qT的成员"
+msgstr "%qD 不是 %qT 的直接成员"
 
 #: cp/decl.cc:7138
 #, fuzzy, gcc-internal-format
@@ -59571,9 +59516,9 @@ msgid "overflow in array dimension"
 msgstr "数组维数溢出"
 
 #: cp/decl.cc:11798
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD declared as array of template placeholder type %qT"
-msgstr "成员函数%qD未在%qT中声明"
+msgstr "%qD 被声明为模板占位符类型 %qT 的数组"
 
 #: cp/decl.cc:11801
 #, fuzzy, gcc-internal-format
@@ -60201,10 +60146,9 @@ msgid "an explicit object member function cannot be %<static%>"
 msgstr ""
 
 #: cp/decl.cc:13751
-#, fuzzy, gcc-internal-format
-#| msgid "In static member function %qs"
+#, gcc-internal-format
 msgid "%qD cannot be an explicit object member function"
-msgstr "在静态成员函数%qs中"
+msgstr "%qD 不能是一个显式的对象成员函数"
 
 #: cp/decl.cc:13774
 #, gcc-internal-format
@@ -60488,10 +60432,9 @@ msgid "function %qD declared %<virtual%> inside a union"
 msgstr "联合成员函数%qD被声明为虚函数"
 
 #: cp/decl.cc:14660
-#, fuzzy, gcc-internal-format
-#| msgid "%qD cannot be declared virtual, since it is always static"
+#, gcc-internal-format
 msgid "%qD cannot be declared %<virtual%>, since it is always static"
-msgstr "%qD不能声明为虚函数，因为它总是静态的"
+msgstr "%qD 不能被声明为 %<virtual%>，因为它总是静态的"
 
 #: cp/decl.cc:14674
 #, gcc-internal-format
@@ -60526,10 +60469,9 @@ msgid "a concept cannot be a member function"
 msgstr "析构函数不能是静态成员函数"
 
 #: cp/decl.cc:14730 cp/decl.cc:15085
-#, fuzzy, gcc-internal-format
-#| msgid "cannot open %s"
+#, gcc-internal-format
 msgid "%qD cannot be %qs"
-msgstr "不能打开 %s"
+msgstr "%qD 不能是 %qs"
 
 #: cp/decl.cc:14739
 #, fuzzy, gcc-internal-format
@@ -61115,7 +61057,7 @@ msgstr "成员函数没有名字"
 #: cp/decl2.cc:481 cp/decl2.cc:529
 #, gcc-internal-format
 msgid "top-level comma expression in array subscript changed meaning in C++23"
-msgstr ""
+msgstr "C++23 中，数组下标中的顶级逗号表达式的含义已更改"
 
 #: cp/decl2.cc:519
 #, gcc-internal-format
@@ -61183,10 +61125,9 @@ msgid "no conversion operators declared"
 msgstr ""
 
 #: cp/decl2.cc:923
-#, fuzzy, gcc-internal-format
-#| msgid "In function %qs"
+#, gcc-internal-format
 msgid "no functions named %qD"
-msgstr "在函数%qs中"
+msgstr "没有名称为%qD的函数"
 
 #: cp/decl2.cc:925
 #, gcc-internal-format
@@ -61637,10 +61578,9 @@ msgid "reference to %<%T::%D%> is ambiguous"
 msgstr "对%<%T::%D%>的引用有歧义"
 
 #: cp/error.cc:4693
-#, fuzzy, gcc-internal-format
-#| msgid "%qT has no member named %qE"
+#, gcc-internal-format
 msgid "%qD is not a member of %qT; did you mean %qs?"
-msgstr "%qT没有名为%qE的成员"
+msgstr "%qD 不是 %qT 的成员；你是说 %qs 吗？"
 
 #: cp/error.cc:4697 cp/typeck.cc:2871
 #, gcc-internal-format
@@ -61648,10 +61588,9 @@ msgid "%qD is not a member of %qT"
 msgstr "%qD不是%qT的成员"
 
 #: cp/error.cc:4719
-#, fuzzy, gcc-internal-format
-#| msgid "%qT has no member named %qE"
+#, gcc-internal-format
 msgid "%qD is not a member of %qD; did you mean %qs?"
-msgstr "%qT没有名为%qE的成员"
+msgstr "%qD 不是 %qD 的成员；你是说 %qs 吗？"
 
 #: cp/error.cc:4723 cp/typeck.cc:3463
 #, gcc-internal-format
@@ -61865,9 +61804,9 @@ msgid "initializing %qD from %qE does not extend the lifetime of the underlying
 msgstr ""
 
 #: cp/init.cc:901 cp/init.cc:1014
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is initialized with itself"
-msgstr "形参%qD已初始化"
+msgstr "%qD 用其自身进行了初始化"
 
 #: cp/init.cc:907
 #, gcc-internal-format
@@ -61906,15 +61845,14 @@ msgid "uninitialized reference member in %q#T"
 msgstr "%q#T中有未初始化的引用成员"
 
 #: cp/init.cc:1351
-#, fuzzy, gcc-internal-format
-#| msgid "%q+D will be initialized after"
+#, gcc-internal-format
 msgid "%qD will be initialized after"
-msgstr "%q+D将在"
+msgstr "%qD 将在之后被初始化"
 
 #: cp/init.cc:1354
 #, gcc-internal-format
 msgid "base %qT will be initialized after"
-msgstr "基类%qT将在"
+msgstr "基类%qT将在之后被初始化"
 
 #: cp/init.cc:1358
 #, gcc-internal-format
@@ -62420,9 +62358,9 @@ msgid "non-static reference member %q#D, cannot use default assignment operator"
 msgstr "非静态的引用成员%q#D，不能使用默认的赋值运算符"
 
 #: cp/method.cc:957
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not a static data member"
-msgstr "%q#D不是%qT的非静态数据成员"
+msgstr "%qD 不是一个静态数据成员"
 
 #: cp/method.cc:958
 #, fuzzy, gcc-internal-format
@@ -62787,12 +62725,12 @@ msgstr ""
 #: cp/module.cc:18027
 #, gcc-internal-format
 msgid "module %qs expected, header module found"
-msgstr ""
+msgstr "需要模块 %qs，但找到了头模块"
 
 #: cp/module.cc:18042
 #, gcc-internal-format
 msgid "module %qs CRC mismatch"
-msgstr ""
+msgstr "模块 %qs CRC 不匹配"
 
 #: cp/module.cc:18056
 #, gcc-internal-format
@@ -63001,7 +62939,7 @@ msgstr ""
 #: cp/module.cc:20354
 #, gcc-internal-format
 msgid "module dependencies require preprocessing"
-msgstr ""
+msgstr "模块依赖需要预处理"
 
 #: cp/module.cc:20356
 #, gcc-internal-format
@@ -63330,10 +63268,9 @@ msgid "inline namespace must be specified at initial definition"
 msgstr "方法属性必须被指定的于结束只有"
 
 #: cp/name-lookup.cc:9159
-#, fuzzy, gcc-internal-format
-#| msgid "label %qD defined here"
+#, gcc-internal-format
 msgid "%qD defined here"
-msgstr "标号%qD在此定义"
+msgstr "%qD 不是 %<const char *%> 类型"
 
 #: cp/name-lookup.cc:9207
 #, fuzzy, gcc-internal-format
@@ -63703,7 +63640,7 @@ msgstr "不一致用户定义的实字后缀 %qD 和 %qD 在中字串实字"
 #: cp/parser.cc:4664
 #, gcc-internal-format
 msgid "concatenation of string literals with conflicting encoding prefixes"
-msgstr ""
+msgstr "字符串字面量拼接时存在编码前缀冲突"
 
 #: cp/parser.cc:4885
 #, fuzzy, gcc-internal-format
@@ -64073,7 +64010,7 @@ msgstr "ISO C++ 不允许省略 ?: 的中间操作数"
 #: cp/parser.cc:10947
 #, gcc-internal-format
 msgid "top-level comma expression in array subscript is deprecated"
-msgstr ""
+msgstr "数组下标中的顶级逗号表达式已弃用"
 
 #: cp/parser.cc:11095
 #, fuzzy, gcc-internal-format
@@ -64455,7 +64392,7 @@ msgstr ""
 #: cp/parser.cc:15169
 #, gcc-internal-format
 msgid "module-declaration only permitted as first declaration, or ending a global module fragment"
-msgstr ""
+msgstr "模块声明只允许作为第一个声明，或者结束全局模块片段"
 
 #: cp/parser.cc:15209
 #, gcc-internal-format
@@ -64987,9 +64924,9 @@ msgid "%qD is an enumeration template"
 msgstr "%qD不是一个枚举模板"
 
 #: cp/parser.cc:21539
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD does not name an enumeration in %qT"
-msgstr "new 声明中的表达式必须具有整数或枚举类型"
+msgstr "%qD 在 %qT 中不是一个枚举的名称"
 
 #: cp/parser.cc:21554
 #, fuzzy, gcc-internal-format
@@ -65060,10 +64997,9 @@ msgid "unexpanded parameter pack in enumerator in lambda"
 msgstr ""
 
 #: cp/parser.cc:21970
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is not a namespace-name"
+#, gcc-internal-format
 msgid "%qD is not a namespace-name; did you mean %qs?"
-msgstr "%qD不是一个命名空间名"
+msgstr "%qD 不是一个命名空间名；你是说 %qs 吗？"
 
 #: cp/parser.cc:21974
 #, gcc-internal-format
@@ -65866,9 +65802,8 @@ msgstr ""
 
 #: cp/parser.cc:33001
 #, fuzzy, gcc-internal-format
-#| msgid "no matching template for %qD found"
 msgid "no matching concept for template-introduction"
-msgstr "没有找到与%qD匹配的模板"
+msgstr "没有与模板引入匹配的概念"
 
 #: cp/parser.cc:33024
 #, gcc-internal-format
@@ -66357,9 +66292,9 @@ msgid "%<#pragma acc routine%> names a set of overloads"
 msgstr ""
 
 #: cp/parser.cc:50124
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD does not refer to a namespace scope function"
-msgstr "#pragma GCC optimize 不允许用在函数中"
+msgstr "%qD 不引用命名空间范围内的函数"
 
 #. cancel-and-throw is unimplemented.
 #: cp/parser.cc:50485
@@ -66526,9 +66461,9 @@ msgid "%qD is not a function template"
 msgstr "%qD不是一个函数模板"
 
 #: cp/pt.cc:2188
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not a variable template"
-msgstr "%qD不是一个模板"
+msgstr "%qD 不是一个变量模板"
 
 #: cp/pt.cc:2471
 #, gcc-internal-format
@@ -67065,9 +67000,9 @@ msgid "  member function type %qT is not a valid template argument"
 msgstr "%qE不是类型%qT的有效模板实参，因为它的类型是%qT"
 
 #: cp/pt.cc:7154
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  cannot convert %qE (type %qT) to type %qT"
-msgstr "无法将%qE从类型%qT转换到类型%qT"
+msgstr "  无法将 %qE (类型为 %qT) 转换为类型 %qT"
 
 #: cp/pt.cc:7167
 #, fuzzy, gcc-internal-format
@@ -67075,9 +67010,9 @@ msgid "  %qT is an ambiguous base class of %qT"
 msgstr "%qT是%qT的有歧义的基类"
 
 #: cp/pt.cc:7171
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not derived from %qT"
-msgstr "派生联合%qT无效"
+msgstr "  %qT 不是从 %qT 派生的"
 
 #: cp/pt.cc:7182
 #, fuzzy, gcc-internal-format
@@ -67255,10 +67190,9 @@ msgid "constraint mismatch at argument %d in template parameter list for %qD"
 msgstr "实参 %d 的类型/值不匹配，在%qD的模板参数列表中"
 
 #: cp/pt.cc:8767
-#, fuzzy, gcc-internal-format
-#| msgid "  expected a type, got %qE"
+#, gcc-internal-format
 msgid "  expected %qD but got %qD"
-msgstr "需要一个类型，却给出了%qE"
+msgstr "  需要%qD，却给出了%qD"
 
 #: cp/pt.cc:8855
 #, fuzzy, gcc-internal-format
@@ -67560,9 +67494,9 @@ msgid "use %<%T::%D%> instead"
 msgstr "使用%<%T::%D%>而不是%<%T::%D%>来以限定名指定构造函数"
 
 #: cp/pt.cc:21002
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD declared here, later in the translation unit"
-msgstr "%qE未声明(不在函数内)"
+msgstr "%qD 在此声明，稍后在翻译单元中"
 
 #: cp/pt.cc:21053
 #, fuzzy, gcc-internal-format
@@ -68516,9 +68450,9 @@ msgid "%<dist_schedule%> chunk size expression must be integral"
 msgstr "调度块大小表达式必须为整型"
 
 #: cp/semantics.cc:7972
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not a variable in %<aligned%> clause"
-msgstr "%qD在%<lastprivate%>子句中不是一个变量"
+msgstr "%qD 不是 %<aligned%> 子句中的变量"
 
 #: cp/semantics.cc:7987
 #, gcc-internal-format
@@ -68536,9 +68470,9 @@ msgid "%<aligned%> clause alignment expression must be integral"
 msgstr "调度块大小表达式必须为整型"
 
 #: cp/semantics.cc:8042
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not a variable in %<nontemporal%> clause"
-msgstr "%qD在子句%qs中不是一个变量"
+msgstr "%qD 不是 %<nontemporal%> 子句中的变量"
 
 #: cp/semantics.cc:8053
 #, fuzzy, gcc-internal-format
@@ -68551,9 +68485,9 @@ msgid "%<this%> not allowed in %<allocate%> clause"
 msgstr "%qE在子句%<firstprivate%>中不是一个变量"
 
 #: cp/semantics.cc:8082
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not a variable in %<allocate%> clause"
-msgstr "%qD在%<lastprivate%>子句中不是一个变量"
+msgstr "%qD 不是 %<allocate%> 子句中的变量"
 
 #: cp/semantics.cc:8091
 #, fuzzy, gcc-internal-format
@@ -68561,9 +68495,9 @@ msgid "%qD appears more than once in %<allocate%> clauses"
 msgstr "%qD在数据子句中多次出现"
 
 #: cp/semantics.cc:8239
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not lvalue expression nor array section in %qs clause"
-msgstr "%qD在子句%qs中不是一个变量"
+msgstr "%qD 不是 %qs 子句中的左值表达式或数组段"
 
 #: cp/semantics.cc:8741
 #, fuzzy, gcc-internal-format
@@ -68729,9 +68663,9 @@ msgid "%<__builtin_is_corresponding_member%> argument is not pointer to member"
 msgstr ""
 
 #: cp/semantics.cc:12837
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD is not a class or alias template"
-msgstr "需要一个类模板，却给出了%qE"
+msgstr "%qD 不是一个类模板或别名模板"
 
 #: cp/semantics.cc:13026
 #, fuzzy, gcc-internal-format
@@ -68825,10 +68759,9 @@ msgid "%qD is not public"
 msgstr "%qD未被捕获"
 
 #: cp/tree.cc:4979
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is not a variable"
+#, gcc-internal-format
 msgid "%qD is mutable"
-msgstr "%qD不是一个变量"
+msgstr "%qD 是可变的"
 
 #: cp/tree.cc:4987
 #, fuzzy, gcc-internal-format
@@ -69213,9 +69146,9 @@ msgid "%qE cannot be used as a function"
 msgstr "%qE不能用作函数"
 
 #: cp/typeck.cc:4427
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD cannot be used as a function"
-msgstr "%qE不能用作函数"
+msgstr "%qD 不能用作函数"
 
 #: cp/typeck.cc:4430
 #, fuzzy, gcc-internal-format
@@ -69801,34 +69734,24 @@ msgid "invalid conversion to type %qT from type %qT"
 msgstr "到类型%qT的转换无效，从类型%qT"
 
 #: cp/typeck.cc:10377
-#, fuzzy
-#| msgid "cannot convert %qT to %qT in default argument"
 msgid "cannot convert %qH to %qI in default argument"
-msgstr "不能在参数默认时将%qT转换为%qT"
+msgstr "不能在参数默认时将%qH转换为%qI"
 
 #: cp/typeck.cc:10382
-#, fuzzy
-#| msgid "cannot convert %qT to %qT in argument passing"
 msgid "cannot convert %qH to %qI in argument passing"
-msgstr "不能在传参时将%qT转换为%qT"
+msgstr "不能在传参时将%qH转换为%qI"
 
 #: cp/typeck.cc:10391
-#, fuzzy
-#| msgid "cannot convert %qT to %qT in initialization"
 msgid "cannot convert %qH to %qI in initialization"
-msgstr "不能在初始化时将%qT转换为%qT"
+msgstr "不能在初始化时将%qH转换为%qI"
 
 #: cp/typeck.cc:10395
-#, fuzzy
-#| msgid "cannot convert %qT to %qT in return"
 msgid "cannot convert %qH to %qI in return"
-msgstr "不能在返回时将%qT转换为%qT"
+msgstr "不能在返回时将%qH转换为%qI"
 
 #: cp/typeck.cc:10400
-#, fuzzy
-#| msgid "cannot convert %qT to %qT in assignment"
 msgid "cannot convert %qH to %qI in assignment"
-msgstr "不能在赋值时将%qT转换为%qT"
+msgstr "不能在赋值时将%qH转换为%qI"
 
 #: cp/typeck.cc:10436
 #, fuzzy, gcc-internal-format
@@ -73693,7 +73616,7 @@ msgstr "%L处 PURE 过程不能指定 SAVE 属性"
 #: fortran/decl.cc:6827
 #, gcc-internal-format
 msgid "MODULE PROCEDURE formal argument is alternate return and conflicts with %qs in the separate declaration at %C"
-msgstr ""
+msgstr "MODULE PROCEDURE 的形式参数是替代返回值，并且与在 %2$C 处单独声明中的 %1$qs 发生冲突"
 
 #: fortran/decl.cc:6832
 #, gcc-internal-format, gfc-internal-format
@@ -76462,7 +76385,7 @@ msgstr "不能将 %s 转换为 %s，于 %L"
 #: fortran/intrinsic.cc:5418
 #, fuzzy, gcc-internal-format
 msgid "Cannot convert %qs to %qs at %L"
-msgstr "不能将 %s 转换为 %s，于 %L"
+msgstr "不能将 %qs 转换为 %qs，于 %L"
 
 #: fortran/intrinsic.cc:5510
 #, fuzzy, gcc-internal-format
@@ -78561,7 +78484,7 @@ msgstr "无法打开模块文件‘%s’读取，在%C处：%s"
 #: fortran/module.cc:7375
 #, gcc-internal-format
 msgid "Module file %qs has not been generated, either because the module does not contain a MODULE PROCEDURE or there is an error in the module."
-msgstr ""
+msgstr "模块文件 %qs 未生成，这可能是因为模块不包含 MODULE PROCEDURE，或者模块中存在错误。"
 
 #: fortran/module.cc:7386
 #, fuzzy, gcc-internal-format
@@ -85534,14 +85457,14 @@ msgid "Unused variable %qs declared at %L"
 msgstr "%2$L处声明了未使用的变量‘%1$s’"
 
 #: fortran/trans-decl.cc:6192
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "Unused parameter %qs declared at %L"
-msgstr "%2$L处声明了未使用的参数‘%1$s’"
+msgstr "%2$L处声明了未使用的参数‘%1$qs’"
 
 #: fortran/trans-decl.cc:6196
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "Unused parameter %qs which has been explicitly imported at %L"
-msgstr "%2$L处声明了未使用的参数‘%1$s’"
+msgstr "未使用的参数 %qs，它已在 %L 处显式导入"
 
 #: fortran/trans-decl.cc:6226
 #, fuzzy, gcc-internal-format
@@ -87454,14 +87377,14 @@ msgid "modification of %qE is not a constant expression"
 msgstr "整型表达式%qE不是常量"
 
 #: rust/backend/rust-constexpr.cc:6172
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD declared %<thread_local%> in %<constexpr%> context"
-msgstr "函数%qs的存储类%<__thread%>无效"
+msgstr "%qD 在 %<constexpr%> 上下文中被声明为 %<thread_local%>"
 
 #: rust/backend/rust-constexpr.cc:6181
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qD declared %<static%> in %<constexpr%> context"
-msgstr "非静态数据成员%qE被声明为%<constexpr%>"
+msgstr "%qD 在 %<constexpr%> 上下文中被声明为 %<static%>"
 
 #: rust/backend/rust-tree.cc:616
 #, fuzzy, gcc-internal-format

commit 3dff2f932cfa9168efe8962cba5964f345fd139b
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Dec 3 21:16:25 2024 +0000

    [PATCH] modula2: Reimplement parameter declaration and checking.
    
    This patch improves the parameter declaration by saving all parameter
    kinds: proper procedure, definition module procedure and forward
    procedures.  This allows error messages to reference any parameter
    in the three kinds of procedures.  Variables and their declaration
    are also stored.  The expression, assignment and parameter checking
    has been improved to highlight any variable or parameter and
    its declaration causing a conflict.
    
    gcc/m2/ChangeLog:
    
            * gm2-compiler/M2Base.def (MixTypes): Rename parameters.
            (MixTypesDecl): New procedure function.
            * gm2-compiler/M2Base.mod (BuildOrdFunctions): Add
            DefProcedure parameter to PutFunction.
            (BuildTruncFunctions): Ditto.
            (BuildFloatFunctions): Ditto.
            (BuildIntFunctions): Ditto.
            (InitBaseFunctions): Ditto.
            (MixTypesDecl): New procedure function.
            (MixTypes): Reimplement.
            * gm2-compiler/M2Check.mod (checkProcType): Replace
            NoOfParam with NoOfParamAny.
            Replace IsVarParam with IsVarParamAny.
            (checkProcedureProcType): Ditto.
            * gm2-compiler/M2Error.def: Remove unnecessary export qualified list.
            * gm2-compiler/M2GCCDeclare.mod: Replace NoOfParam with NoOfParamAny.
            Replace IsVarParam with IsVarParamAny.
            (DeclareProcedureToGccWholeProgram): Rename son to
            Variable.
            (DeclareProcedureToGccSeparateProgram): Ditto.
            (PrintKind): New procedure.
            (PrintProcedureParameters): Ditto.
            (PrintProcedureReturnType): Ditto.
            (PrintProcedure): Reimplement.
            (PrintProcTypeParameters): New procedure.
            (PrintProcType): Ditto.
            (DeclareProcType): Rename Son to Parameter.
            * gm2-compiler/M2GenGCC.mod: Replace NoOfParam with NoOfParamAny.
            Replace IsVarParam with IsVarParamAny.
            (ErrorMessageDecl): New procedure.
            (checkIncorrectMeta): Replace call to MetaErrorT2 with
            ErrorMessageDecl.
            (ComparisonMixTypes): Add varleft and varright parameters.
            Adjust all callers of ComparisonMixTypes.
            * gm2-compiler/M2MetaError.def (MetaErrorDecl): New procedure.
            * gm2-compiler/M2MetaError.mod (MetaErrorDecl): New procedure.
            * gm2-compiler/M2Options.def (SetXCode): Add -fd flag description
            to comment.
            * gm2-compiler/M2Options.mod (SetXCode): Add -fd flag description
            to comment.
            * gm2-compiler/M2Quads.mod (CheckBreak): New procedure.
            Replace NoOfParam with NoOfParamAny.
            Replace IsVarParam with IsVarParamAny.
            (FailParameter): Reimplement using GetVarDeclFullTok.
            Generate message for formal parameter, actual parameter and
            declaration of actual parameter.
            (WarnParameter): Ditto.
            (CheckBuildFunction): Reimplement error message using MetaErrorT1.
            * gm2-compiler/M2Range.mod: Replace NoOfParam with NoOfParamAny.
            Replace IsVarParam with IsVarParamAny.
            * gm2-compiler/M2Scaffold.mod (DeclareScaffoldFunctions): Call
            PutProcedureDefined after every procedure declaration.
            (DeclareArgEnvParams): Add ProperProcedure parameter to PutParam.
            * gm2-compiler/M2Size.mod (MakeSize): Add DefProcedure parameter
            to PutFunction.
            * gm2-compiler/M2Swig.mod: Replace NoOfParam with NoOfParamAny.
            Replace IsVarParam with IsVarParamAny.
            * gm2-compiler/M2SymInit.mod: Ditto.
            * gm2-compiler/M2System.mod (InitSystem): Add DefProcedure
            parameter to PutFunction.
            * gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Reimplement.
            (EndBuildProcedure): Ditto.
            (EndBuildForward): Ditto.
            * gm2-compiler/P2Build.bnf (BuildProcedureDefinedByForward):
            Remove.
            (BuildProcedureDefinedByProper): Ditto.
            (ForwardDeclaration): Remove BuildProcedureDefinedByForward.
            (BuildNoReturnAttribute): Remove parameter.
            * gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): Remove
            parameter.
            (BuildProcedureDefinedByForward): Remove.
            (BuildProcedureDefinedByProper): Ditto.
            * gm2-compiler/P2SymBuild.mod (Import): Remove
            AreParametersDefinedInDefinition,
            AreParametersDefinedInImplementation,
            AreProcedureParametersDefined,
            ParametersDefinedInDefinition,
            ParametersDefinedInImplementation,
            GetProcedureDeclaredDefinition,
            GetProcedureDeclaredForward,
            GetProcedureDeclaredProper,
            GetParametersDefinedByForward,
            GetParametersDefinedByProper and
            PutProcedureNoReturn.
            Add PutProcedureParametersDefined,
            GetProcedureParametersDefined,
            GetProcedureKindDesc,
            GetProcedureDeclaredTok,
            GetProcedureKind,
            GetReturnTypeTok,
            SetReturnOptional,
            IsReturnOptional,
            PutProcedureNoReturn and
            PutProcedureDefined.
            (Debug): New procedure.
            (P2StartBuildDefModule): Space formatting.
            (BuildVariable): Reimplement to record full declaration.
            (StartBuildProcedure): Reimplement using token to determine
            the kind of procedure.
            (BuildProcedureHeading): Ditto.
            (BuildFPSection): Ditto.
            (BuildVarArgs): Ditto.
            (BuildOptArg): Ditto.
            (BuildProcedureDefinedByForward): Remove.
            (BuildProcedureDefinedByProper): Ditto.
            (BuildFormalParameterSection): Reimplement so that the
            quad stack is unchanged.
            (CheckFormalParameterSection): Ditto.
            (RemoveFPParameters): New procedure.
            (ParameterError): Reimplement.
            (StartBuildFormalParameters): Add annotation.
            (ParameterMismatch): Reimplement.
            (EndBuildFormalParameters): Reimplement to check against
            all procedure kinds.
            (GetSourceDesc): Remove.
            (GetCurSrcDesc): Ditto.
            (GetDeclared): Ditto.
            (ReturnTypeMismatch): Reimplement.
            (BuildFunction): Ditto.
            (BuildOptFunction): Ditto.
            (CheckOptFunction): New procedure.
            (BuildNoReturnAttribute): Remove parameter and obtain
            procedure symbol from quad stack.
            (CheckProcedureReturn): New procedure.
            * gm2-compiler/P3SymBuild.mod (BuildOptArgInitializer):
            Preserve ProcSym tok on the quad stack.
            Add Assert.
            * gm2-compiler/PCSymBuild.mod (fixupProcedureType): Replace
            NoOfParam with NoOfParamAny.
            * gm2-compiler/SymbolTable.def (GetNthParam): Add ProcedureKind
            parameter.
            (PutFunction): Ditto.
            (PutOptFunction): Ditto.
            (IsReturnOptional): Ditto.
            (PutParam): Ditto.
            (PutVarParam): Ditto.
            (PutParamName): Ditto.
            (PutProcedureNoReturn): Ditto.
            (IsProcedureNoReturn): Ditto.
            (IsVarParam): Ditto.
            (IsUnboundedParam): Ditto.
            (NoOfParam): Ditto.
            (ForeachLocalSymDo): Ditto.
            (GetProcedureKind): Ditto.
            (GetProcedureDeclaredTok): Ditto.
            (PutProcedureDeclaredTok): Ditto.
            (GetReturnTypeTok): Ditto.
            (PutReturnTypeTok): Ditto.
            (PutParametersDefinedByForward): New procedure.
            (PutProcedureParametersDefined): Ditto.
            (PutProcedureDefined): Ditto.
            (GetParametersDefinedByProper): Ditto.
            (GetProcedureDeclaredForward): Ditto.
            (GetProcedureDeclaredProper): Ditto.
            (PutProcedureDeclaredProper): Ditto.
            (GetProcedureDeclaredDefinition): Ditto.
            (PutProcedureDeclaredDefinition): Ditto.
            (GetProcedureDefined): Ditto.
            (PutUseOptArg): Ditto.
            (UsesOptArg): Ditto.
            (PutOptArgInit): Ditto.
            (SetReturnOptional): Ditto.
            (UsesOptArgAny): Ditto.
            (GetProcedureKindDesc): Ditto.
            (IsReturnOptionalAny): New procedure function.
            (GetNthParamAny): Ditto.
            (NoOfParamAny): Ditto.
            (IsProcedureAnyNoReturn): Ditto.
            (AreParametersDefinedInImplementation): Remove.
            (ParametersDefinedInImplementation): Ditto.
            (AreParametersDefinedInDefinition): Ditto.
            (AreProcedureParametersDefined): Ditto.
            (ParametersDefinedInDefinition): Ditto.
            (ProcedureParametersDefined): Ditto.
            (PutParametersDefinedByProper): Ditto.
            (PutProcedureDeclaredForward): Ditto.
            (GetParametersDefinedByForward): Ditto.
            (GetProcedureParametersDefined): Ditto.
            (PushOffset): Ditto.
            (PopSize): Ditto.
            (PushParamSize): Ditto.
            (PushSumOfLocalVarSize): Ditto.
            (PushSumOfParamSize): Ditto.
            (PopOffset): Ditto.
            (PopSumOfParamSize): Ditto.
            * gm2-compiler/SymbolTable.mod (MakeProcedure): Reimplement.
            (PutProcedureNoReturn): Add ProcedureKind parameter.
            (GetNthParam): Ditto.
            (PutFunction): Ditto.
            (PutOptFunction): Ditto.
            (IsReturnOptional): Ditto.
            (MakeVariableForParam): Ditto.
            (PutParam): Ditto.
            (PutVarParam): Ditto.
            (PutParamName): Ditto.
            (AddParameter): Ditto.
            (IsVarParam): Ditto.
            (IsVarParamAny): Ditto.
            (NoOfParam): Ditto.
            (HasVarParameters): Ditto.
            (IsUnboundedParam): Ditto.
            (PutUseVarArgs): Ditto.
            (UsesVarArgs): Ditto.
            (PutUseOptArg): Ditto.
            (UsesOptArg): Ditto.
            (UsesOptArgAny): Ditto.
            (PutOptArgInit): Ditto.
            (IsProcedure): Ditto.
            (IsPointer): Ditto.
            (IsRecord): Ditto.
            (IsArray): Ditto.
            (IsEnumeration): Ditto.
            (IsUnbounded): Ditto.
            (IsSet): Ditto.
            (IsSetPacked): Ditto.
            (CheckUnbounded): Ditto.
            (IsOAFamily): Ditto.
            (IsModuleWithinProcedure): Ditto.
            (GetDeclaredDef): Ditto.
            (GetDeclaredMod): Ditto.
            (GetDeclaredFor): Ditto.
            (GetProcedureDeclaredForward): Ditto.
            (GetProcedureKind): Ditto.
            (PutProcedureDeclaredForward): Ditto.
            (GetProcedureDeclaredTok): Ditto.
            (GetProcedureDeclaredProper): Ditto.
            (PutProcedureDeclaredTok): Ditto.
            (PutProcedureDeclaredProper): Ditto.
            (GetReturnTypeTok): Ditto.
            (GetProcedureDeclaredDefinition): Ditto.
            (PutReturnTypeTok): Ditto.
            (PutProcedureDeclaredDefinition): Ditto.
            (GetProcedureKindDesc): Ditto.
            (IsProcedureVariable): Ditto.
            (IsAModula2Type): Ditto.
            (GetParam): Ditto.
            (ProcedureParametersDefined): Ditto.
            (AreParametersDefinedInImplementation): Remove.
            (AreParametersDefinedInDefinition): Ditto.
            (AreProcedureParametersDefined): Ditto.
            (IsSizeSolved): Ditto.
            (IsOffsetSolved): Ditto.
            (IsValueSolved): Ditto.
            (IsSumOfParamSizeSolved): Ditto.
            (PushSize): Ditto.
            (PushOffset): Ditto.
            (PopSize): Ditto.
            (PushValue): Ditto.
            (PushParamSize): Ditto.
            (PushSumOfLocalVarSize): Ditto.
            (PushSumOfParamSize): Ditto.
            (PushVarSize): Ditto.
            (PopValue): Ditto.
            (PopSize): Ditto.
            (PopOffset): Ditto.
            (PopSumOfParamSize): Ditto.
            (PutParametersDefinedByForward): New procedure.
            (PutProcedureParametersDefined): Ditto.
            (PutProcedureDefined): Ditto.
            (GetParametersDefinedByProper): Ditto.
            (GetProcedureDeclaredForward): Ditto.
            (GetProcedureDeclaredProper): Ditto.
            (PutProcedureDeclaredProper): Ditto.
            (GetProcedureDeclaredDefinition): Ditto.
            (PutProcedureDeclaredDefinition): Ditto.
            (GetProcedureDefined): Ditto.
            (PutUseOptArg): Ditto.
            (UsesOptArg): Ditto.
            (PutOptArgInit): Ditto.
            (SetReturnOptional): Ditto.
            (UsesOptArgAny): Ditto.
            (GetProcedureKindDesc): Ditto.
            (PutParametersDefinedByProper): Ditto.
            (GetParametersDefinedByProper): Ditto.
            (IsReturnOptionalAny): New procedure function.
            (IsProcedureAnyDefaultBoolean): Ditto.
            (IsProcedureAnyBoolean): Ditto.
            (IsProcedureAnyNoReturn): Ditto.
            (GetNthParamAny): Ditto.
            (NoOfParamAny): Ditto.
            (IsProcedureAnyNoReturn): Ditto.
            (GetProcedureKind): Ditto.
            (IsVarParamAny): Ditto.
            (IsUnboundedParamAny): Ditto.
            (ForeachParamSymDo): New comment.
            * gm2-libs-coroutines/SYSTEM.mod: Reformat.
    
    gcc/testsuite/ChangeLog:
    
            * gm2/iso/fail/badexpression3.mod: New test.
            * gm2/iso/fail/badparam4.def: New test.
            * gm2/iso/fail/badparam4.mod: New test.
    
    (cherry picked from commit 95960cd473297cd0d2c9e75a1a424b870cee32f5)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2Base.def b/gcc/m2/gm2-compiler/M2Base.def
index acf7f851bb6..150e27cfe27 100644
--- a/gcc/m2/gm2-compiler/M2Base.def
+++ b/gcc/m2/gm2-compiler/M2Base.def
@@ -21,95 +21,12 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE M2Base ;
 
-(*
-   Author     : Gaius Mulley
-   Title      : M2Base
-   Date       : 22/5/87
-   Description: Implements the default Base Types and Base
-                procedures in the Modula-2 compiler.
-*)
+(* M2Base implements the default base types and base procedures in the
+   Modula-2 front end.  *)
 
 FROM NameKey IMPORT Name ;
 FROM gcctypes IMPORT location_t ;
 
-EXPORT QUALIFIED Nil,                   (* Base constants          *)
-                 Cardinal,              (* Base types              *)
-                 Integer,
-                 Boolean,
-                 True, False,
-                 Char,
-                 Proc,
-                 LongInt, LongCard,
-                 ShortInt, ShortCard,
-                 ZType, RType, CType,
-                 Real,
-                 LongReal, ShortReal,
-                 Complex,
-                 LongComplex,
-                 ShortComplex,
-                 High, IsOrd,           (* Base functions          *)
-                 LengthS,
-                 Convert,
-                 Re, Im, Cmplx,
-                 Cap, Abs, Odd,
-                 Chr, Val,
-                 IsTrunc, IsFloat,
-                 IsInt,
-                 Min, Max,
-                 New, Dispose,          (* Base procedures         *)
-                 Inc, Dec,
-                 Incl, Excl,
-                 IsPseudoBaseFunction,  (* Manipulation procedures *)
-                 IsPseudoBaseProcedure, (* Manipulation procedures *)
-                 IsBaseType,
-                 GetBaseTypeMinMax,
-                 InitBase,
-                 CannotCheckTypeInPass3,
-                 CheckExpressionCompatible,
-                 CheckAssignmentCompatible,
-                 CheckParameterCompatible,
-                 IsAssignmentCompatible,
-                 IsExpressionCompatible,
-                 IsParameterCompatible,
-                 IsComparisonCompatible,
-                 IsValidParameter,
-                 AssignmentRequiresWarning,
-                 IsMathType,
-                 IsRealType,
-                 IsOrdinalType,
-                 IsComplexType,
-                 GetCmplxReturnType,
-                 ComplexToScalar,
-                 ScalarToComplex,
-                 MixTypes, NegateType,
-                 TemplateProcedure,
-                 ActivationPointer,
-                 IsNeededAtRunTime,
-                 ExceptionAssign,
-                 ExceptionReturn,
-                 ExceptionInc,
-                 ExceptionDec,
-                 ExceptionIncl,
-                 ExceptionExcl,
-                 ExceptionShift,
-                 ExceptionRotate,
-                 ExceptionStaticArray,
-                 ExceptionDynamicArray,
-                 ExceptionForLoopBegin,
-                 ExceptionForLoopTo,
-                 ExceptionForLoopEnd,
-                 ExceptionPointerNil,
-                 ExceptionNoReturn,
-                 ExceptionCase,
-                 ExceptionNonPosDiv,
-                 ExceptionNonPosMod,
-                 ExceptionZeroDiv,
-                 ExceptionZeroRem,
-                 ExceptionWholeValue,
-                 ExceptionRealValue,
-                 ExceptionParameterBounds,
-                 ExceptionNo ;
-
 
 VAR
    TemplateProcedure,
@@ -346,12 +263,24 @@ PROCEDURE CannotCheckTypeInPass3 (e: CARDINAL) : BOOLEAN ;
 
 
 (*
-   MixTypes - returns the type symbol that corresponds to the types t1 and t2.
+   MixTypes - given types leftType and rightType return a type symbol that
+              provides expression type compatibility.
               NearTok is used to identify the source position if a type
               incompatability occurs.
 *)
 
-PROCEDURE MixTypes (t1, t2: CARDINAL; NearTok: CARDINAL) : CARDINAL ;
+PROCEDURE MixTypes (leftType, rightType: CARDINAL; NearTok: CARDINAL) : CARDINAL ;
+
+
+(*
+   MixTypesDecl - returns a type symbol which provides expression compatibility
+                  between leftType and rightType.  An error is emitted if this
+                  is not possible.  left and right are the source (variable,
+                  constant) of leftType and rightType respectively.
+*)
+
+PROCEDURE MixTypesDecl (left, right, leftType, rightType: CARDINAL;
+                        NearTok: CARDINAL) : CARDINAL ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/M2Base.mod b/gcc/m2/gm2-compiler/M2Base.mod
index e298d13986d..986e208e0c3 100644
--- a/gcc/m2/gm2-compiler/M2Base.mod
+++ b/gcc/m2/gm2-compiler/M2Base.mod
@@ -43,10 +43,11 @@ FROM FormatStrings IMPORT Sprintf2 ;
 FROM StrLib IMPORT StrLen ;
 
 FROM M2MetaError IMPORT MetaError0, MetaError1, MetaError2, MetaErrors3,
-                        MetaErrorT1, MetaErrorT2,
-                        MetaErrorStringT2, MetaErrorStringT1 ;
+                        MetaErrorT1, MetaErrorT2, MetaErrorT4,
+                        MetaErrorStringT2, MetaErrorStringT1,
+                        MetaErrorDecl ;
 
-FROM SymbolTable IMPORT ModeOfAddr,
+FROM SymbolTable IMPORT ModeOfAddr, ProcedureKind,
                         MakeModule, MakeType, PutType,
                         MakeEnumeration, PutFieldEnumeration,
                         MakeProcType,
@@ -73,8 +74,10 @@ FROM SymbolTable IMPORT ModeOfAddr,
                         IsParameterUnbounded,  GetSubrange,
                         IsArray, IsProcedure, IsConstString,
                         IsVarient, IsRecordField, IsFieldVarient,
-                        GetArraySubscript, IsRecord, NoOfParam,
-                        GetNthParam, IsVarParam, GetNth, GetDimension,
+                        IsVarAParam, IsVar,
+                        GetArraySubscript, IsRecord, NoOfParamAny,
+                        GetNthParamAny, IsVarParam, GetNth, GetDimension,
+                        GetVarDeclFullTok,
                         MakeError ;
 
 FROM M2ALU IMPORT PushIntegerTree, PushRealTree, PushCard, Equ, Gre, Less ;
@@ -743,11 +746,11 @@ END IsOrd ;
 PROCEDURE BuildOrdFunctions ;
 BEGIN
    Ord := MakeProcedure(BuiltinTokenNo, MakeKey('ORD')) ;
-   PutFunction(Ord, Cardinal) ;
+   PutFunction (BuiltinTokenNo, Ord, DefProcedure, Cardinal) ;
    OrdS := MakeProcedure(BuiltinTokenNo, MakeKey('ORDS')) ;
-   PutFunction(OrdS, ShortCard) ;
+   PutFunction (BuiltinTokenNo, OrdS, DefProcedure, ShortCard) ;
    OrdL := MakeProcedure(BuiltinTokenNo, MakeKey('ORDL')) ;
-   PutFunction(OrdL, LongCard)
+   PutFunction (BuiltinTokenNo, OrdL, DefProcedure, LongCard)
 END BuildOrdFunctions ;
 
 
@@ -771,18 +774,18 @@ BEGIN
    IF Pim2 OR Pim3 OR Iso
    THEN
       Trunc := MakeProcedure(BuiltinTokenNo, MakeKey('TRUNC')) ;
-      PutFunction(Trunc, Cardinal) ;
+      PutFunction (BuiltinTokenNo, Trunc, DefProcedure, Cardinal) ;
       TruncS := MakeProcedure(BuiltinTokenNo, MakeKey('STRUNC')) ;
-      PutFunction(TruncS, ShortCard) ;
+      PutFunction (BuiltinTokenNo, TruncS, DefProcedure, ShortCard) ;
       TruncL := MakeProcedure(BuiltinTokenNo, MakeKey('LTRUNC')) ;
-      PutFunction(TruncL, LongCard)
+      PutFunction (BuiltinTokenNo, TruncL, DefProcedure, LongCard)
    ELSE
       Trunc := MakeProcedure(BuiltinTokenNo, MakeKey('TRUNC')) ;
-      PutFunction(Trunc, Integer) ;
+      PutFunction (BuiltinTokenNo, Trunc, DefProcedure, Integer) ;
       TruncS := MakeProcedure(BuiltinTokenNo, MakeKey('STRUNC')) ;
-      PutFunction(TruncS, ShortInt) ;
+      PutFunction (BuiltinTokenNo, TruncS, DefProcedure, ShortInt) ;
       TruncL := MakeProcedure(BuiltinTokenNo, MakeKey('LTRUNC')) ;
-      PutFunction(TruncL, LongInt)
+      PutFunction (BuiltinTokenNo, TruncL, DefProcedure, LongInt)
    END
 END BuildTruncFunctions ;
 
@@ -808,15 +811,15 @@ END IsFloat ;
 PROCEDURE BuildFloatFunctions ;
 BEGIN
    Float := MakeProcedure(BuiltinTokenNo, MakeKey('FLOAT')) ;
-   PutFunction(Float, Real) ;
+   PutFunction (BuiltinTokenNo, Float, DefProcedure, Real) ;
    SFloat := MakeProcedure(BuiltinTokenNo, MakeKey('SFLOAT')) ;
-   PutFunction(SFloat, ShortReal) ;
+   PutFunction (BuiltinTokenNo, SFloat, DefProcedure, ShortReal) ;
    LFloat := MakeProcedure(BuiltinTokenNo, MakeKey('LFLOAT')) ;
-   PutFunction(LFloat, LongReal) ;
+   PutFunction (BuiltinTokenNo, LFloat, DefProcedure, LongReal) ;
    FloatS := MakeProcedure(BuiltinTokenNo, MakeKey('FLOATS')) ;
-   PutFunction(FloatS, ShortReal) ;
+   PutFunction (BuiltinTokenNo, FloatS, DefProcedure, ShortReal) ;
    FloatL := MakeProcedure(BuiltinTokenNo, MakeKey('FLOATL')) ;
-   PutFunction(FloatL, LongReal)
+   PutFunction (BuiltinTokenNo, FloatL, DefProcedure, LongReal)
 END BuildFloatFunctions ;
 
 
@@ -838,11 +841,11 @@ END IsInt ;
 PROCEDURE BuildIntFunctions ;
 BEGIN
    Int := MakeProcedure(BuiltinTokenNo, MakeKey('INT')) ;
-   PutFunction(Int, Integer) ;
+   PutFunction (BuiltinTokenNo, Int, DefProcedure, Integer) ;
    IntS := MakeProcedure(BuiltinTokenNo, MakeKey('INTS')) ;
-   PutFunction(IntS, ShortInt) ;
+   PutFunction (BuiltinTokenNo, IntS, DefProcedure, ShortInt) ;
    IntL := MakeProcedure(BuiltinTokenNo, MakeKey('INTL')) ;
-   PutFunction(IntL, LongInt)
+   PutFunction (BuiltinTokenNo, IntL, DefProcedure, LongInt)
 END BuildIntFunctions ;
 
 
@@ -854,7 +857,7 @@ PROCEDURE InitBaseFunctions ;
 BEGIN
    (* Now declare the dynamic array components, HIGH *)
    High := MakeProcedure(BuiltinTokenNo, MakeKey('HIGH')) ;  (* Pseudo Base function HIGH *)
-   PutFunction(High, Cardinal) ;
+   PutFunction (BuiltinTokenNo, High, DefProcedure, Cardinal) ;
 
    (*
      _TemplateProcedure is a procedure which has a local variable _ActivationPointer
@@ -873,21 +876,21 @@ BEGIN
    IF Iso
    THEN
       LengthS := MakeProcedure(BuiltinTokenNo, MakeKey('LENGTH')) ; (* Pseudo Base function LENGTH  *)
-      PutFunction(LengthS, ZType)
+      PutFunction (BuiltinTokenNo, LengthS, DefProcedure, ZType)
    ELSE
       LengthS := NulSym
    END ;
    Abs   := MakeProcedure(BuiltinTokenNo, MakeKey('ABS')) ;      (* Pseudo Base function ABS     *)
-   PutFunction(Abs, ZType) ;
+   PutFunction (BuiltinTokenNo, Abs, DefProcedure, ZType) ;
 
    Cap   := MakeProcedure(BuiltinTokenNo, MakeKey('CAP')) ;      (* Pseudo Base function CAP     *)
-   PutFunction(Cap, Char) ;
+   PutFunction (BuiltinTokenNo, Cap, DefProcedure, Char) ;
 
    Odd   := MakeProcedure(BuiltinTokenNo, MakeKey('ODD')) ;      (* Pseudo Base function ODD     *)
-   PutFunction(Odd, Boolean) ;
+   PutFunction (BuiltinTokenNo, Odd, DefProcedure, Boolean) ;
 
    Chr   := MakeProcedure(BuiltinTokenNo, MakeKey('CHR')) ;      (* Pseudo Base function CHR     *)
-   PutFunction(Chr, Char) ;
+   PutFunction (BuiltinTokenNo, Chr, DefProcedure, Char) ;
 
    (* the following three procedure functions have a return type depending upon  *)
    (* the parameters.                                                            *)
@@ -897,13 +900,13 @@ BEGIN
    Max   := MakeProcedure(BuiltinTokenNo, MakeKey('MAX')) ;      (* Pseudo Base function MIN     *)
 
    Re    := MakeProcedure(BuiltinTokenNo, MakeKey('RE')) ;       (* Pseudo Base function RE      *)
-   PutFunction(Re, RType) ;
+   PutFunction (BuiltinTokenNo, Re, DefProcedure, RType) ;
 
    Im    := MakeProcedure(BuiltinTokenNo, MakeKey('IM')) ;       (* Pseudo Base function IM      *)
-   PutFunction(Im, RType) ;
+   PutFunction (BuiltinTokenNo, Im, DefProcedure, RType) ;
 
    Cmplx := MakeProcedure(BuiltinTokenNo, MakeKey('CMPLX')) ;    (* Pseudo Base function CMPLX   *)
-   PutFunction(Cmplx, CType) ;
+   PutFunction (BuiltinTokenNo, Cmplx, DefProcedure, CType) ;
 
    BuildFloatFunctions ;
    BuildTruncFunctions ;
@@ -1736,27 +1739,27 @@ VAR
    pa, pb: CARDINAL ;
    n, i  : CARDINAL ;
 BEGIN
-   n := NoOfParam(p1) ;
-   IF n#NoOfParam(p2)
+   n := NoOfParamAny (p1) ;
+   IF n # NoOfParamAny (p2)
    THEN
       IF error
       THEN
-         MetaError2('parameter is incompatible as {%1Dd} was declared with {%2n} parameters', p1, NoOfParam(p1)) ;
-         MetaError2('whereas {%1Dd} was declared with {%2n} parameters', p2, NoOfParam(p2))
+         MetaError2('parameter is incompatible as {%1Dd} was declared with {%2n} parameters', p1, NoOfParamAny(p1)) ;
+         MetaError2('whereas {%1Dd} was declared with {%2n} parameters', p2, NoOfParamAny(p2))
       END ;
       RETURN( FALSE )
    END ;
    i := 1 ;
    WHILE i<=n DO
-      pa := GetNthParam(p1, i) ;
-      pb := GetNthParam(p2, i) ;
-      IF IsVarParam(p1, i)#IsVarParam(p2, i)
+      pa := GetNthParamAny (p1, i) ;
+      pb := GetNthParamAny (p2, i) ;
+      IF IsParameterVar (pa) # IsParameterVar (pb)
       THEN
          IF error
          THEN
             MetaErrors3('the {%1n} parameter is incompatible between {%2Dad} and {%3ad} as only one was declared as VAR',
                         'the {%1n} parameter is incompatible between {%2ad} and {%3Dad} as only one was declared as VAR',
-                        i, p1, p2)
+                        i, pa, pb)
          END ;
          RETURN( FALSE )
       END ;
@@ -1984,20 +1987,23 @@ END IsComparisonCompatible ;
    MixMetaTypes -
 *)
 
-PROCEDURE MixMetaTypes (t1, t2: CARDINAL; NearTok: CARDINAL) : CARDINAL ;
+PROCEDURE MixMetaTypes (left, right, leftType, rightType: CARDINAL; NearTok: CARDINAL) : CARDINAL ;
 VAR
    mt1, mt2: MetaType ;
 BEGIN
-   mt1 := FindMetaType(t1) ;
-   mt2 := FindMetaType(t2) ;
+   mt1 := FindMetaType (leftType) ;
+   mt2 := FindMetaType (rightType) ;
    CASE Expr[mt1, mt2] OF
 
-   no        :  MetaErrorT2 (NearTok, 'type incompatibility between {%1asd} and {%2asd}', t1, t2) ;
+   no        :  MetaErrorT2 (NearTok, 'type incompatibility between {%1asd} and {%2asd}',
+                             leftType, rightType) ;
+                MetaErrorDecl (left) ;
+                MetaErrorDecl (right) ;
                 FlushErrors  (* unrecoverable at present *) |
    warnfirst,
-   first     :  RETURN( t1 ) |
+   first     :  RETURN( leftType ) |
    warnsecond,
-   second    :  RETURN( t2 )
+   second    :  RETURN( rightType )
 
    ELSE
       InternalError ('not expecting this metatype value')
@@ -2017,90 +2023,103 @@ END IsUserType ;
 
 
 (*
-   MixTypes - given types, t1 and t2, returns a type symbol that
+   MixTypes - given types leftType and rightType return a type symbol that
               provides expression type compatibility.
               NearTok is used to identify the source position if a type
               incompatability occurs.
 *)
 
-PROCEDURE MixTypes (t1, t2: CARDINAL; NearTok: CARDINAL) : CARDINAL ;
+PROCEDURE MixTypes (leftType, rightType: CARDINAL; NearTok: CARDINAL) : CARDINAL ;
 BEGIN
-   IF t1=t2
+   RETURN MixTypesDecl (NulSym, NulSym, leftType, rightType, NearTok)
+END MixTypes ;
+
+
+(*
+   MixTypesDecl - returns a type symbol which provides expression compatibility
+                  between leftType and rightType.  An error is emitted if this
+                  is not possible.  left and right are the source (variable,
+                  constant) of leftType and rightType respectively.
+*)
+
+PROCEDURE MixTypesDecl (left, right, leftType, rightType: CARDINAL; NearTok: CARDINAL) : CARDINAL ;
+BEGIN
+   IF leftType=rightType
    THEN
-      RETURN( t1 )
-   ELSIF (t1=Address) AND (t2=Cardinal)
+      RETURN( leftType )
+   ELSIF (leftType=Address) AND (rightType=Cardinal)
    THEN
       RETURN( Address )
-   ELSIF (t1=Cardinal) AND (t2=Address)
+   ELSIF (leftType=Cardinal) AND (rightType=Address)
    THEN
       RETURN( Address )
-   ELSIF (t1=Address) AND (t2=Integer)
+   ELSIF (leftType=Address) AND (rightType=Integer)
    THEN
       RETURN( Address )
-   ELSIF (t1=Integer) AND (t2=Address)
+   ELSIF (leftType=Integer) AND (rightType=Address)
    THEN
       RETURN( Address )
-   ELSIF t1=NulSym
+   ELSIF leftType=NulSym
    THEN
-      RETURN( t2 )
-   ELSIF t2=NulSym
+      RETURN( rightType )
+   ELSIF rightType=NulSym
    THEN
-      RETURN( t1 )
-   ELSIF (t1=Bitset) AND IsSet(t2)
+      RETURN( leftType )
+   ELSIF (leftType=Bitset) AND IsSet(rightType)
    THEN
-      RETURN( t1 )
-   ELSIF IsSet(t1) AND (t2=Bitset)
+      RETURN( leftType )
+   ELSIF IsSet(leftType) AND (rightType=Bitset)
    THEN
-      RETURN( t2 )
-   ELSIF IsEnumeration(t1)
+      RETURN( rightType )
+   ELSIF IsEnumeration(leftType)
    THEN
-      RETURN( MixTypes(Integer, t2, NearTok) )
-   ELSIF IsEnumeration(t2)
+      RETURN( MixTypesDecl (left, right, Integer, rightType, NearTok) )
+   ELSIF IsEnumeration(rightType)
    THEN
-      RETURN( MixTypes(t1, Integer, NearTok) )
-   ELSIF IsSubrange(t1)
+      RETURN( MixTypesDecl (left, right, leftType, Integer, NearTok) )
+   ELSIF IsSubrange(leftType)
    THEN
-      RETURN( MixTypes(GetType(t1), t2, NearTok) )
-   ELSIF IsSubrange(t2)
+      RETURN( MixTypesDecl (left, right, GetType(leftType), rightType, NearTok) )
+   ELSIF IsSubrange(rightType)
    THEN
-      RETURN( MixTypes(t1, GetType(t2), NearTok) )
-   ELSIF IsRealType(t1) AND IsRealType(t2)
+      RETURN( MixTypesDecl (left, right, leftType, GetType(rightType), NearTok) )
+   ELSIF IsRealType(leftType) AND IsRealType(rightType)
    THEN
-      IF t1=RType
+      IF leftType=RType
       THEN
-         RETURN( t2 )
-      ELSIF t2=RType
+         RETURN( rightType )
+      ELSIF rightType=RType
       THEN
-         RETURN( t1 )
+         RETURN( leftType )
       ELSE
          RETURN( RType )
       END
-   ELSIF IsComplexType(t1) AND IsComplexType(t2)
+   ELSIF IsComplexType(leftType) AND IsComplexType(rightType)
    THEN
-      IF t1=CType
+      IF leftType=CType
       THEN
-         RETURN( t2 )
-      ELSIF t2=CType
+         RETURN( rightType )
+      ELSIF rightType=CType
       THEN
-         RETURN( t1 )
+         RETURN( leftType )
       ELSE
          RETURN( CType )
       END
-   ELSIF IsUserType (t1)
+   ELSIF IsUserType (leftType)
    THEN
-      RETURN( MixTypes(GetType(t1), t2, NearTok) )
-   ELSIF IsUserType (t2)
+      RETURN( MixTypesDecl (left, right, GetType(leftType), rightType, NearTok) )
+   ELSIF IsUserType (rightType)
    THEN
-      RETURN( MixTypes(t1, GetType(t2), NearTok) )
-   ELSIF (t1=GetLowestType(t1)) AND (t2=GetLowestType(t2))
+      RETURN( MixTypes(leftType, GetType(rightType), NearTok) )
+   ELSIF (leftType=GetLowestType(leftType)) AND (rightType=GetLowestType(rightType))
    THEN
-      RETURN( MixMetaTypes(t1, t2, NearTok) )
+      RETURN( MixMetaTypes (left, right, leftType, rightType, NearTok) )
    ELSE
-      t1 := GetLowestType(t1) ;
-      t2 := GetLowestType(t2) ;
-      RETURN( MixTypes(t1, t2, NearTok) )
+      leftType := GetLowestType(leftType) ;
+      rightType := GetLowestType(rightType) ;
+      RETURN( MixTypesDecl (left, right, leftType, rightType, NearTok) )
    END
-END MixTypes ;
+END MixTypesDecl ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/M2Check.mod b/gcc/m2/gm2-compiler/M2Check.mod
index d096646c387..e50f65167ef 100644
--- a/gcc/m2/gm2-compiler/M2Check.mod
+++ b/gcc/m2/gm2-compiler/M2Check.mod
@@ -41,9 +41,9 @@ FROM StrLib IMPORT StrEqual ;
 FROM M2Debug IMPORT Assert ;
 
 FROM SymbolTable IMPORT NulSym, IsRecord, IsSet, GetDType, GetSType, IsType,
-                        SkipType, IsProcedure, NoOfParam, IsVarParam, GetNth,
-                        GetNthParam, IsProcType, IsVar, IsEnumeration, IsArray,
-                        GetDeclaredMod, IsSubrange, GetArraySubscript, IsConst,
+                        SkipType, IsProcedure, NoOfParamAny, IsVarParamAny, GetNth,
+                        GetNthParamAny, IsProcType, IsVar, IsEnumeration, IsArray,
+                        IsSubrange, GetArraySubscript, IsConst,
                         IsReallyPointer, IsPointer, IsParameter, ModeOfAddr,
                         GetMode, GetType, IsUnbounded, IsComposite, IsConstructor,
                         IsParameter, IsConstString, IsConstLitInternal, IsConstLit,
@@ -1058,7 +1058,7 @@ BEGIN
          result := checkPair (unknown, tinfo, lt, rt)
       END ;
 
-      IF NoOfParam (left) # NoOfParam (right)
+      IF NoOfParamAny (left) # NoOfParamAny (right)
       THEN
          IF tinfo^.format # NIL
          THEN
@@ -1067,11 +1067,11 @@ BEGIN
          RETURN return (false, tinfo, left, right)
       END ;
       i := 1 ;
-      n := NoOfParam (left) ;
+      n := NoOfParamAny (left) ;
       WHILE i <= n DO
-         IF IsVarParam (left, i) # IsVarParam (right, i)
+         IF IsVarParamAny (left, i) # IsVarParamAny (right, i)
          THEN
-            IF IsVarParam (left, i)
+            IF IsVarParamAny (left, i)
             THEN
                IF tinfo^.format # NIL
                THEN
@@ -1085,7 +1085,7 @@ BEGIN
             END ;
             RETURN return (false, tinfo, left, right)
          END ;
-         result := checkPair (result, tinfo, GetDType (GetNthParam (left, i)), GetDType (GetNthParam (right, i))) ;
+         result := checkPair (result, tinfo, GetDType (GetNthParamAny (left, i)), GetDType (GetNthParamAny (right, i))) ;
          INC (i)
       END
    END ;
@@ -1131,7 +1131,7 @@ BEGIN
          result := checkPair (result, tinfo, lt, rt)
       END ;
 
-      IF NoOfParam (left) # NoOfParam (right)
+      IF NoOfParamAny (left) # NoOfParamAny (right)
       THEN
          IF tinfo^.format # NIL
          THEN
@@ -1140,11 +1140,11 @@ BEGIN
          RETURN return (false, tinfo, left, right)
       END ;
       i := 1 ;
-      n := NoOfParam (left) ;
+      n := NoOfParamAny (left) ;
       WHILE i <= n DO
-         IF IsVarParam (left, i) # IsVarParam (right, i)
+         IF IsVarParamAny (left, i) # IsVarParamAny (right, i)
          THEN
-            IF IsVarParam (left, i)
+            IF IsVarParamAny (left, i)
             THEN
                IF tinfo^.format # NIL
                THEN
@@ -1158,7 +1158,7 @@ BEGIN
             END ;
             RETURN return (false, tinfo, left, right)
          END ;
-         result := checkPair (result, tinfo, GetDType (GetNthParam (left, i)), GetDType (GetNthParam (right, i))) ;
+         result := checkPair (result, tinfo, GetDType (GetNthParamAny (left, i)), GetDType (GetNthParamAny (right, i))) ;
          INC (i)
       END
    END ;
diff --git a/gcc/m2/gm2-compiler/M2Error.def b/gcc/m2/gm2-compiler/M2Error.def
index dbe37e37ce3..91b22d6c6a5 100644
--- a/gcc/m2/gm2-compiler/M2Error.def
+++ b/gcc/m2/gm2-compiler/M2Error.def
@@ -33,25 +33,6 @@ FROM SYSTEM IMPORT BYTE ;
 FROM DynamicStrings IMPORT String ;
 FROM NameKey IMPORT Name ;
 
-EXPORT QUALIFIED Error, ErrorScope,
-                 InternalError,
-                 WriteFormat0, WriteFormat1, WriteFormat2, WriteFormat3,
-                 NewError, ErrorFormat0, ErrorFormat1, ErrorFormat2, ErrorFormat3,
-                 ErrorString,
-                 NewWarning, NewNote, SetColor,
-                 FlushErrors, FlushWarnings, ChainError,
-                 ErrorStringAt, ErrorStringAt2, ErrorStringsAt2,
-                 WarnStringAt, WarnStringAt2, WarnStringsAt2,
-                 ErrorAbort0,
-                 WarnFormat0, WarnFormat1, MoveError,
-                 AnnounceScope, EnterImplementationScope,
-                 EnterModuleScope, EnterDefinitionScope, EnterProgramScope,
-                 EnterProcedureScope, DepthScope, GetAnnounceScope,
-                 DefaultProgramModule, DefaultImplementationModule,
-                 DefaultDefinitionModule, DefaultInnerModule, DefaultProcedure,
-                 EnterErrorScope, GetCurrentErrorScope, ResetErrorScope,
-                 LeaveErrorScope ;
-
 
 TYPE
    Error ;
diff --git a/gcc/m2/gm2-compiler/M2GCCDeclare.mod b/gcc/m2/gm2-compiler/M2GCCDeclare.mod
index 82c6437464d..2680faad7b6 100644
--- a/gcc/m2/gm2-compiler/M2GCCDeclare.mod
+++ b/gcc/m2/gm2-compiler/M2GCCDeclare.mod
@@ -48,7 +48,6 @@ FROM M2Batch IMPORT MakeDefinitionSource ;
 FROM NameKey IMPORT Name, MakeKey, NulName, KeyToCharStar, makekey ;
 FROM M2FileName IMPORT CalculateFileName ;
 FROM DynamicStrings IMPORT String, string, InitString, KillString, InitStringCharStar, InitStringChar, Mark ;
-FROM FormatStrings IMPORT Sprintf1 ;
 FROM M2LexBuf IMPORT TokenToLineNo, FindFileNameFromToken, TokenToLocation, UnknownTokenNo, BuiltinTokenNo ;
 FROM M2MetaError IMPORT MetaError1, MetaError2, MetaError3 ;
 FROM M2Error IMPORT FlushErrors, InternalError ;
@@ -74,14 +73,16 @@ FROM Sets IMPORT Set, InitSet, KillSet,
 FROM M2BasicBlock IMPORT BasicBlock, InitBasicBlocks, KillBasicBlocks, ForeachBasicBlockDo ;
 
 FROM SymbolTable IMPORT NulSym,
-                        ModeOfAddr,
+                        ModeOfAddr, ProcedureKind,
+                        GetProcedureKindDesc,
+                        GetProcedureParametersDefined,
                         GetMode,
                         GetScope,
                         GetNth, SkipType, GetVarBackEndType,
 			GetSType, GetLType, GetDType,
                         MakeType, PutType, GetLowestType,
       	       	     	GetSubrange, PutSubrange, GetArraySubscript,
-      	       	     	NoOfParam, GetNthParam,
+      	       	     	NoOfParamAny, GetNthParamAny,
                         PushValue, PopValue, PopSize,
                         IsTemporary, IsUnbounded, IsPartialUnbounded,
                         IsEnumeration, IsVar,
@@ -94,7 +95,7 @@ FROM SymbolTable IMPORT NulSym,
                         IsConst, IsConstSet, IsConstructor,
                         IsFieldEnumeration,
                         IsExported, IsImported,
-                        IsVarParam, IsRecordField, IsUnboundedParam,
+                        IsVarParamAny, IsRecordField, IsUnboundedParam,
                         IsValueSolved,
                         IsDefinitionForC, IsHiddenTypeDeclared,
                         IsInnerModule, IsUnknown,
@@ -104,15 +105,17 @@ FROM SymbolTable IMPORT NulSym,
                         IsError, IsHiddenType, IsVarHeap,
                         IsComponent, IsPublic, IsExtern, IsCtor,
                         IsImport, IsImportStatement, IsConstStringKnown,
+                        IsUnboundedParamAny,
       	       	     	GetMainModule, GetBaseModule, GetModule, GetLocalSym,
                         PutModuleFinallyFunction,
                         GetProcedureScope, GetProcedureQuads,
+                        NoOfParam, IsVarParam, GetNthParam, GetType,
                         IsRecordFieldAVarientTag, IsEmptyFieldVarient,
                         GetVarient, GetUnbounded, PutArrayLarge,
                         IsAModula2Type, UsesVarArgs,
                         GetSymName, GetParent,
                         GetDeclaredMod, GetVarBackEndType,
-                        GetProcedureBeginEnd, IsProcedureNoReturn,
+                        GetProcedureBeginEnd, IsProcedureAnyNoReturn,
                         GetString, GetStringLength, IsConstString,
                         IsConstStringM2, IsConstStringC, IsConstStringM2nul, IsConstStringCnul,
                         GetAlignment, IsDeclaredPacked, PutDeclaredPacked,
@@ -120,7 +123,7 @@ FROM SymbolTable IMPORT NulSym,
                         GetPackedEquivalent,
                         GetParameterShadowVar,
                         GetUnboundedRecordType,
-                        GetModuleCtors,
+                        GetModuleCtors, GetProcedureProcType,
                         MakeSubrange, MakeConstVar, MakeConstLit,
                         PutConst,
 			ForeachOAFamily, GetOAFamily,
@@ -2242,12 +2245,12 @@ VAR
 BEGIN
    IF IsProcedure(sym)
    THEN
-      p := NoOfParam(sym) ;
+      p := NoOfParamAny (sym) ;
       i := p ;
       WHILE i>0 DO
-         IF IsUnboundedParam(sym, i)
+         IF IsUnboundedParamAny (sym, i)
          THEN
-            param := GetNthParam(sym, i) ;
+            param := GetNthParamAny (sym, i) ;
             type := GetSType(param) ;
             TraverseDependants(type) ;
             IF GccKnowsAbout(type)
@@ -2278,12 +2281,12 @@ VAR
 BEGIN
    IF IsProcedure (sym)
    THEN
-      p := NoOfParam (sym) ;
+      p := NoOfParamAny (sym) ;
       i := p ;
       WHILE i>0 DO
-         IF IsUnboundedParam (sym, i)
+         IF IsUnboundedParamAny (sym, i)
          THEN
-            param := GetNthParam (sym, i)
+            param := GetNthParamAny (sym, i)
          ELSE
             param := GetNth (sym, i)
          END ;
@@ -2459,7 +2462,7 @@ VAR
    returnType,
    GccParam  : tree ;
    scope,
-   Son,
+   Variable,
    p, i      : CARDINAL ;
    b, e      : CARDINAL ;
    begin, end,
@@ -2468,30 +2471,30 @@ BEGIN
    IF (NOT GccKnowsAbout(Sym)) AND (NOT IsPseudoProcFunc(Sym))
    THEN
       BuildStartFunctionDeclaration(UsesVarArgs(Sym)) ;
-      p := NoOfParam(Sym) ;
+      p := NoOfParamAny (Sym) ;
       i := p ;
       WHILE i>0 DO
-         (* note we dont use GetNthParam as we want the parameter that is seen by the procedure block
+         (* note we dont use GetNthParamAny as we want the parameter that is seen by the procedure block
             remember that this is treated exactly the same as a variable, just its position on
             the activation record is special (ie a parameter)
          *)
-         Son := GetNth(Sym, i) ;
-         location := TokenToLocation(GetDeclaredMod(Son)) ;
-         IF IsUnboundedParam(Sym, i)
+         Variable := GetNth(Sym, i) ;
+         location := TokenToLocation(GetDeclaredMod(Variable)) ;
+         IF IsUnboundedParamAny (Sym, i)
          THEN
             GccParam := BuildParameterDeclaration(location,
-                                                  KeyToCharStar(GetSymName(Son)),
-                                                  Mod2Gcc(GetLType(Son)),
+                                                  KeyToCharStar(GetSymName(Variable)),
+                                                  Mod2Gcc(GetLType(Variable)),
                                                   FALSE)
          ELSE
             GccParam := BuildParameterDeclaration(location,
-                                                  KeyToCharStar(GetSymName(Son)),
-                                                  Mod2Gcc(GetLType(Son)),
-                                                  IsVarParam(Sym, i))
+                                                  KeyToCharStar(GetSymName(Variable)),
+                                                  Mod2Gcc(GetLType(Variable)),
+                                                  IsVarParamAny (Sym, i))
          END ;
-         PreAddModGcc(Son, GccParam) ;
-         WatchRemoveList(Son, todolist) ;
-         WatchIncludeList(Son, fullydeclared) ;
+         PreAddModGcc(Variable, GccParam) ;
+         WatchRemoveList(Variable, todolist) ;
+         WatchIncludeList(Variable, fullydeclared) ;
          DEC(i)
       END ;
       GetProcedureBeginEnd(Sym, b, e) ;
@@ -2511,7 +2514,7 @@ BEGIN
                                                     IsExternalToWholeProgram(Sym),
                                                     IsProcedureGccNested(Sym),
                                                     IsExported(GetModuleWhereDeclared(Sym), Sym),
-                                                    IsProcedureNoReturn(Sym))) ;
+                                                    IsProcedureAnyNoReturn(Sym))) ;
       PopBinding(scope) ;
       WatchRemoveList(Sym, todolist) ;
       WatchIncludeList(Sym, fullydeclared)
@@ -2528,7 +2531,7 @@ VAR
    returnType,
    GccParam  : tree ;
    scope,
-   Son,
+   Variable,
    p, i      : CARDINAL ;
    b, e      : CARDINAL ;
    begin, end,
@@ -2545,30 +2548,30 @@ BEGIN
        IsExtern (Sym))
    THEN
       BuildStartFunctionDeclaration(UsesVarArgs(Sym)) ;
-      p := NoOfParam(Sym) ;
+      p := NoOfParamAny (Sym) ;
       i := p ;
       WHILE i>0 DO
-         (* Note we dont use GetNthParam as we want the parameter that is seen by
+         (* Note we dont use GetNthParamAny as we want the parameter that is seen by
             the procedure block remember that this is treated exactly the same as
             a variable, just its position on the activation record is special (ie
             a parameter).  *)
-         Son := GetNth(Sym, i) ;
-         location := TokenToLocation(GetDeclaredMod(Son)) ;
-         IF IsUnboundedParam(Sym, i)
+         Variable := GetNth(Sym, i) ;
+         location := TokenToLocation(GetDeclaredMod(Variable)) ;
+         IF IsUnboundedParamAny (Sym, i)
          THEN
             GccParam := BuildParameterDeclaration(location,
-                                                  KeyToCharStar(GetSymName(Son)),
-                                                  Mod2Gcc(GetLType(Son)),
+                                                  KeyToCharStar(GetSymName(Variable)),
+                                                  Mod2Gcc(GetLType(Variable)),
                                                   FALSE)
          ELSE
             GccParam := BuildParameterDeclaration(location,
-                                                  KeyToCharStar(GetSymName(Son)),
-                                                  Mod2Gcc(GetLType(Son)),
-                                                  IsVarParam(Sym, i))
+                                                  KeyToCharStar(GetSymName(Variable)),
+                                                  Mod2Gcc(GetLType(Variable)),
+                                                  IsVarParamAny (Sym, i))
          END ;
-         PreAddModGcc(Son, GccParam) ;
-         WatchRemoveList(Son, todolist) ;
-         WatchIncludeList(Son, fullydeclared) ;
+         PreAddModGcc(Variable, GccParam) ;
+         WatchRemoveList(Variable, todolist) ;
+         WatchIncludeList(Variable, fullydeclared) ;
          DEC(i)
       END ;
       GetProcedureBeginEnd(Sym, b, e) ;
@@ -2589,7 +2592,7 @@ BEGIN
                                                       IsProcedureGccNested (Sym),
                                                       (* Exported from the module where it was declared.  *)
                                                       IsExported (GetModuleWhereDeclared (Sym), Sym) OR IsExtern (Sym),
-                                                      IsProcedureNoReturn(Sym))) ;
+                                                      IsProcedureAnyNoReturn(Sym))) ;
       PopBinding(scope) ;
       WatchRemoveList(Sym, todolist) ;
       WatchIncludeList(Sym, fullydeclared)
@@ -3511,14 +3514,14 @@ END DeclareVariableWholeProgram ;
 
 PROCEDURE DeclareGlobalVariablesWholeProgram (ModSym: CARDINAL) ;
 VAR
-   n, Son: CARDINAL ;
+   n, Variable: CARDINAL ;
 BEGIN
    n := 1 ;
-   Son := GetNth(ModSym, n) ;
-   WHILE Son#NulSym DO
-      DeclareVariableWholeProgram(ModSym, Son) ;
-      INC(n) ;
-      Son := GetNth(ModSym, n)
+   Variable := GetNth (ModSym, n) ;
+   WHILE Variable # NulSym DO
+      DeclareVariableWholeProgram (ModSym, Variable) ;
+      INC (n) ;
+      Variable := GetNth (ModSym, n)
    END ;
    ForeachInnerModuleDo(ModSym, DeclareGlobalVariablesWholeProgram)
 END DeclareGlobalVariablesWholeProgram ;
@@ -3531,14 +3534,14 @@ END DeclareGlobalVariablesWholeProgram ;
 
 PROCEDURE DeclareGlobalVariables (ModSym: CARDINAL) ;
 VAR
-   n, variable: CARDINAL ;
+   n, Variable: CARDINAL ;
 BEGIN
    n := 1 ;
-   variable := GetNth (ModSym, n) ;
-   WHILE variable # NulSym DO
-      DeclareVariable (ModSym, variable) ;
+   Variable := GetNth (ModSym, n) ;
+   WHILE Variable # NulSym DO
+      DeclareVariable (ModSym, Variable) ;
       INC (n) ;
-      variable := GetNth (ModSym, n)
+      Variable := GetNth (ModSym, n)
    END ;
    ForeachInnerModuleDo (ModSym, DeclareGlobalVariables)
 END DeclareGlobalVariables ;
@@ -3606,7 +3609,7 @@ PROCEDURE DeclareLocalVariables (procedure: CARDINAL) ;
 VAR
    i, var: CARDINAL ;
 BEGIN
-   i := NoOfParam (procedure) + 1 ;
+   i := NoOfParamAny (procedure) + 1 ;
    var := GetNth (procedure, i) ;
    WHILE var # NulSym DO
       Assert (procedure = GetScope (var)) ;
@@ -3784,7 +3787,7 @@ PROCEDURE IncludeGetNth (l: List; sym: CARDINAL) ;
 VAR
    i: CARDINAL ;
 BEGIN
-   fprintf0 (GetDumpFile (), ' ListOfSons [') ;
+   fprintf0 (GetDumpFile (), ' ListOfFields [') ;
    i := 1 ;
    WHILE GetNth (sym, i) # NulSym DO
       IF i>1
@@ -3995,13 +3998,84 @@ BEGIN
 END PrintScope ;
 
 
+(*
+   PrintKind -
+*)
+
+PROCEDURE PrintKind (kind: ProcedureKind) ;
+VAR
+   s: String ;
+BEGIN
+   s := GetProcedureKindDesc (kind) ;
+   fprintf1 (GetDumpFile (), "%s", s) ;
+   s := KillString (s)
+END PrintKind ;
+
+
+(*
+   PrintProcedureParameters -
+*)
+
+PROCEDURE PrintProcedureParameters (sym: CARDINAL; kind: ProcedureKind) ;
+VAR
+   typeName,
+   paramName: Name ;
+   p, i, n,
+   type     : CARDINAL ;
+BEGIN
+   fprintf0 (GetDumpFile (), ' (') ;
+   n := NoOfParam (sym, kind) ;
+   i := 1 ;
+   WHILE i <= n DO
+      IF i > 1
+      THEN
+         fprintf0 (GetDumpFile (), '; ')
+      END ;
+      IF IsVarParam (sym, kind, i)
+      THEN
+         fprintf0 (GetDumpFile (), 'VAR ')
+      END ;
+      p := GetNthParam (sym, kind, i) ;
+      paramName := GetSymName (p) ;
+      type := GetType (p) ;
+      typeName := GetSymName (type) ;
+      IF IsUnboundedParam (sym, kind, i)
+      THEN
+         fprintf2 (GetDumpFile (), '%a: ARRAY OF %a', paramName, typeName)
+      ELSE
+         fprintf2 (GetDumpFile (), '%a: %a', paramName, typeName)
+      END ;
+      INC (i)
+   END ;
+   fprintf0 (GetDumpFile (), ')')
+END PrintProcedureParameters ;
+
+
+(*
+   PrintProcedureReturnType -
+*)
+
+PROCEDURE PrintProcedureReturnType (sym: CARDINAL) ;
+VAR
+   typeName: Name ;
+BEGIN
+   IF GetType (sym) # NulSym
+   THEN
+      typeName := GetSymName (GetType (sym)) ;
+      fprintf1 (GetDumpFile (), ' : %a', typeName)
+   END ;
+   fprintf0 (GetDumpFile (), ' ;')
+END PrintProcedureReturnType ;
+
+
 (*
    PrintProcedure -
 *)
 
 PROCEDURE PrintProcedure (sym: CARDINAL) ;
 VAR
-   n: Name ;
+   n   : Name ;
+   kind: ProcedureKind ;
 BEGIN
    n := GetSymName (sym) ;
    fprintf2 (GetDumpFile (), 'sym %d IsProcedure (%a)', sym, n);
@@ -4022,10 +4096,83 @@ BEGIN
    THEN
       fprintf0 (GetDumpFile (), ' ctor')
    END ;
-   PrintDeclared(sym)
+   PrintDeclared (sym) ;
+   fprintf0 (GetDumpFile (), '\n') ;
+   FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+      fprintf0 (GetDumpFile (), 'parameters ') ;
+      PrintKind (kind) ;
+      IF GetProcedureParametersDefined (sym, kind)
+      THEN
+         fprintf0 (GetDumpFile (), ' defined') ;
+         PrintProcedureParameters (sym, kind) ;
+         PrintProcedureReturnType (sym)
+      ELSE
+         fprintf0 (GetDumpFile (), ' undefined')
+      END ;
+      fprintf0 (GetDumpFile (), '\n')
+   END ;
+   fprintf0 (GetDumpFile (), ' Associated proctype: ') ;
+   PrintProcType (GetProcedureProcType (sym))
 END PrintProcedure ;
 
 
+(*
+   PrintProcTypeParameters -
+*)
+
+PROCEDURE PrintProcTypeParameters (sym: CARDINAL) ;
+VAR
+   typeName : Name ;
+   p, i, n,
+   type     : CARDINAL ;
+BEGIN
+   fprintf0 (GetDumpFile (), ' (') ;
+   n := NoOfParam (sym, ProperProcedure) ;
+   i := 1 ;
+   WHILE i <= n DO
+      IF i > 1
+      THEN
+         fprintf0 (GetDumpFile (), '; ')
+      END ;
+      IF IsVarParam (sym, ProperProcedure, i)
+      THEN
+         fprintf0 (GetDumpFile (), 'VAR ')
+      END ;
+      p := GetNthParam (sym, ProperProcedure, i) ;
+      type := GetType (p) ;
+      typeName := GetSymName (type) ;
+      IF IsUnboundedParam (sym, ProperProcedure, i)
+      THEN
+         fprintf1 (GetDumpFile (), 'ARRAY OF %a', typeName)
+      ELSE
+         fprintf1 (GetDumpFile (), '%a', typeName)
+      END ;
+      INC (i)
+   END ;
+   fprintf0 (GetDumpFile (), ')')
+END PrintProcTypeParameters ;
+
+
+(*
+   PrintProcType -
+*)
+
+PROCEDURE PrintProcType (sym: CARDINAL) ;
+VAR
+   n: Name ;
+BEGIN
+   n := GetSymName (sym) ;
+   fprintf2 (GetDumpFile (), 'sym %d IsProcType (%a)', sym, n);
+   PrintScope (sym) ;
+   PrintDeclared (sym) ;
+   fprintf0 (GetDumpFile (), '\n') ;
+   fprintf0 (GetDumpFile (), 'parameters ') ;
+   PrintProcTypeParameters (sym) ;
+   PrintProcedureReturnType (sym) ;
+   fprintf0 (GetDumpFile (), '\n')
+END PrintProcType ;
+
+
 (*
    PrintString -
 *)
@@ -4185,7 +4332,7 @@ BEGIN
       PrintDecl(sym)
    ELSIF IsProcType(sym)
    THEN
-      fprintf2 (GetDumpFile (), 'sym %d IsProcType (%a)', sym, n)
+      PrintProcType (sym)
    ELSIF IsVar(sym)
    THEN
       fprintf2 (GetDumpFile (), 'sym %d IsVar (%a) declared in ', sym, n) ;
@@ -5124,7 +5271,8 @@ END DeclareArray ;
 
 PROCEDURE DeclareProcType (Sym: CARDINAL) : tree ;
 VAR
-   i, p, Son,
+   i, p,
+   Parameter,
    ReturnType: CARDINAL ;
    func,
    GccParam  : tree ;
@@ -5133,20 +5281,20 @@ BEGIN
    ReturnType := GetSType(Sym) ;
    func := DoStartDeclaration(Sym, BuildStartFunctionType) ;
    InitFunctionTypeParameters ;
-   p := NoOfParam(Sym) ;
+   p := NoOfParamAny (Sym) ;
    i := p ;
-   WHILE i>0 DO
-      Son := GetNthParam(Sym, i) ;
-      location := TokenToLocation(GetDeclaredMod(Son)) ;
-      GccParam := BuildProcTypeParameterDeclaration(location, Mod2Gcc(GetSType(Son)), IsVarParam(Sym, i)) ;
-      PreAddModGcc(Son, GccParam) ;
+   WHILE i > 0 DO
+      Parameter := GetNthParamAny (Sym, i) ;
+      location := TokenToLocation (GetDeclaredMod (Parameter)) ;
+      GccParam := BuildProcTypeParameterDeclaration (location, Mod2Gcc (GetSType (Parameter)), IsVarParamAny (Sym, i)) ;
+      PreAddModGcc(Parameter, GccParam) ;
       DEC(i)
    END ;
-   IF ReturnType=NulSym
+   IF ReturnType = NulSym
    THEN
-      RETURN( BuildEndFunctionType(func, NIL, UsesVarArgs(Sym)) )
+      RETURN( BuildEndFunctionType (func, NIL, UsesVarArgs(Sym)) )
    ELSE
-      RETURN( BuildEndFunctionType(func, Mod2Gcc(ReturnType), UsesVarArgs(Sym)) )
+      RETURN( BuildEndFunctionType (func, Mod2Gcc(ReturnType), UsesVarArgs(Sym)) )
    END
 END DeclareProcType ;
 
@@ -6253,9 +6401,9 @@ BEGIN
    Assert(IsProcType(sym)) ;
    i := 1 ;
    ReturnType := GetSType(sym) ;
-   p := NoOfParam(sym) ;
+   p := NoOfParamAny (sym) ;
    WHILE i<=p DO
-      son := GetNthParam(sym, i) ;
+      son := GetNthParamAny (sym, i) ;
       ParamType := GetSType(son) ;
       IF NOT q(ParamType)
       THEN
@@ -6285,9 +6433,9 @@ BEGIN
    Assert(IsProcType(sym)) ;
    i := 1 ;
    ReturnType := GetSType(sym) ;
-   n := NoOfParam(sym) ;
+   n := NoOfParamAny (sym) ;
    WHILE i<=n DO
-      son := GetNthParam(sym, i) ;
+      son := GetNthParamAny (sym, i) ;
       ParamType := GetSType(son) ;
       p(ParamType) ;
       INC(i)
diff --git a/gcc/m2/gm2-compiler/M2GenGCC.mod b/gcc/m2/gm2-compiler/M2GenGCC.mod
index 67d3e92ac4f..e92bc174968 100644
--- a/gcc/m2/gm2-compiler/M2GenGCC.mod
+++ b/gcc/m2/gm2-compiler/M2GenGCC.mod
@@ -25,8 +25,6 @@ FROM SYSTEM IMPORT ADDRESS, WORD ;
 
 FROM SymbolTable IMPORT PushSize, PopSize, PushValue, PopValue,
                         PushVarSize,
-                        PushSumOfLocalVarSize,
-                        PushSumOfParamSize,
                         MakeConstLit,
                         RequestSym, FromModuleGetSym,
                         StartScope, EndScope, GetScope,
@@ -38,16 +36,16 @@ FROM SymbolTable IMPORT PushSize, PopSize, PushValue, PopValue,
                         GetLocalSym, GetVarWritten,
                         GetVarient, GetVarBackEndType, GetModuleCtors,
                         NoOfVariables,
-                        NoOfParam, GetParent, GetDimension, IsAModula2Type,
+                        NoOfParamAny, GetParent, GetDimension, IsAModula2Type,
                         IsModule, IsDefImp, IsType, IsModuleWithinProcedure,
                         IsConstString, GetString, GetStringLength,
                         IsConstStringCnul, IsConstStringM2nul,
                         IsConst, IsConstSet, IsProcedure, IsProcType,
-                        IsVar, IsVarParam, IsTemporary,
+                        IsVar, IsVarParamAny, IsTemporary,
                         IsEnumeration,
                         IsUnbounded, IsArray, IsSet, IsConstructor,
                         IsProcedureVariable,
-                        IsUnboundedParam,
+                        IsUnboundedParamAny,
                         IsRecordField, IsFieldVarient, IsVarient, IsRecord,
                         IsExportQualified,
                         IsExported,
@@ -64,7 +62,7 @@ FROM SymbolTable IMPORT PushSize, PopSize, PushValue, PopValue,
                         ForeachInnerModuleDo,
                         ForeachLocalSymDo,
 			GetLType,
-                        GetType, GetNth, GetNthParam,
+                        GetType, GetNth, GetNthParamAny,
                         SkipType, SkipTypeAndSubrange,
                         GetUnboundedHighOffset,
                         GetUnboundedAddressOffset,
@@ -79,6 +77,7 @@ FROM SymbolTable IMPORT PushSize, PopSize, PushValue, PopValue,
                         PutConst, PutConstSet, PutConstructor,
 			GetSType, GetTypeMode,
                         HasVarParameters, CopyConstString,
+                        GetVarDeclFullTok,
                         NulSym ;
 
 FROM M2Batch IMPORT MakeDefinitionSource ;
@@ -91,7 +90,8 @@ FROM M2Debug IMPORT Assert ;
 FROM M2Error IMPORT InternalError, WriteFormat0, WriteFormat1, WriteFormat2, WarnStringAt ;
 
 FROM M2MetaError IMPORT MetaErrorT0, MetaErrorT1, MetaErrorT2, MetaErrorT3,
-                        MetaError1, MetaError2, MetaErrorStringT1 ;
+                        MetaError1, MetaError2, MetaErrorStringT1,
+                        MetaErrorDecl ;
 
 FROM M2Options IMPORT UnboundedByReference, PedanticCast,
                       VerboseUnbounded, Iso, Pim, DebugBuiltins, WholeProgram,
@@ -101,7 +101,7 @@ FROM M2Options IMPORT UnboundedByReference, PedanticCast,
 FROM M2Printf IMPORT printf0, printf1, printf2, printf4 ;
 FROM M2Quiet IMPORT qprintf0 ;
 
-FROM M2Base IMPORT MixTypes, NegateType, ActivationPointer, IsMathType,
+FROM M2Base IMPORT MixTypes, MixTypesDecl, NegateType, ActivationPointer, IsMathType,
                    IsRealType, IsComplexType, IsBaseType,
                    IsOrdinalType,
                    Cardinal, Char, Integer, IsTrunc,
@@ -381,6 +381,19 @@ VAR
 *)
 
 
+(*
+   ErrorMessageDecl - emit an error message together with declaration fragments of left
+                      and right if they are parameters or variables.
+*)
+
+PROCEDURE ErrorMessageDecl (tok: CARDINAL; message: ARRAY OF CHAR; left, right: CARDINAL) ;
+BEGIN
+   MetaErrorT2 (tok, message, left, right) ;
+   MetaErrorDecl (left) ;
+   MetaErrorDecl (right)
+END ErrorMessageDecl ;
+
+
 (*
    IsExportedGcc - returns TRUE if this symbol should be (as far as the middle/backend of GCC)
                    is concerned, exported.
@@ -1737,9 +1750,9 @@ VAR
 BEGIN
    InitList(trashed) ;
    i := 1 ;
-   p := NoOfParam(proc) ;
+   p := NoOfParamAny (proc) ;
    WHILE i<=p DO
-      sym := GetNthParam(proc, i) ;
+      sym := GetNthParamAny (proc, i) ;
       IF IsParameterWritten(proc, sym)
       THEN
          IF VerboseUnbounded
@@ -1757,9 +1770,9 @@ BEGIN
    END ;
    (* now see whether we need to copy any unbounded array parameters *)
    i := 1 ;
-   p := NoOfParam(proc) ;
+   p := NoOfParamAny (proc) ;
    WHILE i<=p DO
-      IF IsUnboundedParam(proc, i) AND (NOT IsVarParam(proc, i))
+      IF IsUnboundedParamAny (proc, i) AND (NOT IsVarParamAny (proc, i))
       THEN
          CheckUnboundedNonVarParameter (tokenno, trashed, proc, GetNth (proc, i))
       END ;
@@ -1812,7 +1825,7 @@ BEGIN
       IF IsProcedure (scope)
       THEN
          (* the parameters are stored as local variables.  *)
-         INC (i, NoOfParam (scope))
+         INC (i, NoOfParamAny (scope))
       END ;
       WHILE i <= n DO
          AutoInitVariable (location, GetNth (scope, i)) ;
@@ -2175,13 +2188,13 @@ VAR
    location   : location_t ;
 BEGIN
    location := TokenToLocation(tokenno) ;
-   IF GetNthParam(op2, op1)=NulSym
+   IF GetNthParamAny (op2, op1)=NulSym
    THEN
       (* We reach here if the argument is being passed to a C vararg function.  *)
       RETURN( Mod2Gcc(op3) )
    ELSE
       OperandType := SkipType(GetType(op3)) ;
-      ParamType := SkipType(GetType(GetNthParam(op2, op1)))
+      ParamType := SkipType(GetType(GetNthParamAny (op2, op1)))
    END ;
    IF IsProcType(ParamType)
    THEN
@@ -2540,17 +2553,17 @@ BEGIN
    ELSE
       IF StrictTypeChecking
       THEN
-         IF (nth <= NoOfParam (procedure))
+         IF (nth <= NoOfParamAny (procedure))
          THEN
             compatible := ParameterTypeCompatible (parampos,
                                                    'parameter incompatibility when attempting to pass actual parameter {%2ad} to a {%kVAR} formal parameter {%3Ead} during call to procedure {%1ad}',
-                                                   procedure, GetNthParam (procedure, nth),
-                                                   parameter, nth, IsVarParam (procedure, nth))
+                                                   procedure, GetNthParamAny (procedure, nth),
+                                                   parameter, nth, IsVarParamAny (procedure, nth))
          END
       END ;
 
-      IF (nth <= NoOfParam (procedure)) AND
-         IsVarParam (procedure, nth) AND IsConst (parameter)
+      IF (nth <= NoOfParamAny (procedure)) AND
+         IsVarParamAny (procedure, nth) AND IsConst (parameter)
       THEN
          MetaErrorT1 (parampos,
                       'cannot pass a constant {%1Ead} as a VAR parameter', parameter)
@@ -3323,9 +3336,9 @@ BEGIN
       THEN
          IF NOT IsAssignmentCompatible (t1, t2)
          THEN
-            MetaErrorT2 (virtpos,
-                         'illegal assignment error between {%1Etad} and {%2tad}',
-                         des, expr) ;
+            ErrorMessageDecl (virtpos,
+                              'illegal assignment error between {%1Etad} and {%2tad}',
+                              des, expr) ;
 	    RETURN( FALSE )
          END
       END
@@ -3702,7 +3715,7 @@ BEGIN
    THEN
       RETURN Address
    ELSE
-      RETURN MixTypes (FindType (left), FindType (right), tokpos)
+      RETURN MixTypesDecl (left, right, FindType (left), FindType (right), tokpos)
    END
 END MixTypesBinary ;
 
@@ -3809,9 +3822,9 @@ BEGIN
          is bug free.  *)
       IF NOT IsExpressionCompatible (lefttype, righttype)
       THEN
-         MetaErrorT2 (subexprpos,
-                      'expression mismatch between {%1Etad} and {%2tad}',
-                      left, right) ;
+         ErrorMessageDecl (subexprpos,
+                           'expression mismatch between {%1Etad} and {%2tad}',
+                           left, right) ;
          NoChange := FALSE ;
          SubQuad (quad) ;
          p (des) ;
@@ -3877,9 +3890,9 @@ BEGIN
    (* Now fall though and compare the set element left against the type of set righttype.  *)
    IF NOT IsExpressionCompatible (lefttype, righttype)
    THEN
-      MetaErrorT2 (subexprpos,
-                   'the types used in expression {%1Etad} {%kIN} {%2tad} are incompatible',
-                   left, right) ;
+      ErrorMessageDecl (subexprpos,
+                        'the types used in expression {%1Etad} {%kIN} {%2tad} are incompatible',
+                        left, right) ;
       NoChange := FALSE ;
       SubQuad (quad) ;
       RETURN FALSE
@@ -5133,7 +5146,7 @@ BEGIN
       varproc := Mod2Gcc(FromModuleGetSym(CurrentQuadToken, var, System)) ;
       leftproc := Mod2Gcc(FromModuleGetSym(CurrentQuadToken, left, System)) ;
       rightproc := Mod2Gcc(FromModuleGetSym(CurrentQuadToken, right, System)) ;
-      unbounded := Mod2Gcc(GetType(GetNthParam(FromModuleGetSym(CurrentQuadToken,
+      unbounded := Mod2Gcc(GetType(GetNthParamAny (FromModuleGetSym(CurrentQuadToken,
                                                                 var, System), 1))) ;
       PushValue(GetTypeMax(SkipType(GetType(op1)))) ;
       PushIntegerTree(BuildConvert(location, GetM2ZType(), PopIntegerTree(), FALSE)) ;
@@ -7089,7 +7102,8 @@ BEGIN
       ELSE
          ConvertBinaryOperands (location,
                                 tl, tr,
-                                ComparisonMixTypes (SkipType (GetType (left)),
+                                ComparisonMixTypes (left, right,
+                                                    SkipType (GetType (left)),
                                                     SkipType (GetType (right)),
                                                     combined),
                                 left, right) ;
@@ -7200,7 +7214,8 @@ BEGIN
       ELSE
          ConvertBinaryOperands(location,
                                tl, tr,
-                               ComparisonMixTypes (SkipType (GetType (left)),
+                               ComparisonMixTypes (left, right,
+                                                   SkipType (GetType (left)),
                                                    SkipType (GetType (right)),
                                                    combined),
                                left, right) ;
@@ -7311,7 +7326,8 @@ BEGIN
       ELSE
          ConvertBinaryOperands (location,
                                 tl, tr,
-                                ComparisonMixTypes (SkipType (GetType (left)),
+                                ComparisonMixTypes (left, right,
+                                                    SkipType (GetType (left)),
                                                     SkipType (GetType (right)),
                                                     combined),
                                 left, right) ;
@@ -7423,7 +7439,8 @@ BEGIN
       ELSE
          ConvertBinaryOperands(location,
                                tl, tr,
-                               ComparisonMixTypes (SkipType (GetType (left)),
+                               ComparisonMixTypes (left, right,
+                                                   SkipType (GetType (left)),
                                                    SkipType (GetType (right)),
                                                    combined),
                                left, right) ;
@@ -7555,7 +7572,7 @@ END CodeIfSetNotEqu ;
    ComparisonMixTypes -
 *)
 
-PROCEDURE ComparisonMixTypes (left, right: CARDINAL; tokpos: CARDINAL) : CARDINAL ;
+PROCEDURE ComparisonMixTypes (varleft, varright, left, right: CARDINAL; tokpos: CARDINAL) : CARDINAL ;
 BEGIN
    IF IsGenericSystemType (left)
    THEN
@@ -7564,7 +7581,7 @@ BEGIN
    THEN
       RETURN right
    ELSE
-      RETURN MixTypes (left, right, tokpos)
+      RETURN MixTypesDecl (varleft, varright, left, right, tokpos)
    END
 END ComparisonMixTypes ;
 
@@ -7610,7 +7627,8 @@ BEGIN
       ELSE
          ConvertBinaryOperands (location,
                                 tl, tr,
-                                ComparisonMixTypes (SkipType (GetType (left)),
+                                ComparisonMixTypes (left, right,
+                                                    SkipType (GetType (left)),
                                                     SkipType (GetType (right)),
                                                     combined),
                                left, right) ;
@@ -7663,7 +7681,8 @@ BEGIN
       ELSE
          ConvertBinaryOperands (location,
                                 tl, tr,
-                                ComparisonMixTypes (SkipType (GetType (left)),
+                                ComparisonMixTypes (left, right,
+                                                    SkipType (GetType (left)),
                                                     SkipType (GetType (right)),
                                                     combined),
                                 left, right) ;
diff --git a/gcc/m2/gm2-compiler/M2MetaError.def b/gcc/m2/gm2-compiler/M2MetaError.def
index c83770a4403..333a4a36c45 100644
--- a/gcc/m2/gm2-compiler/M2MetaError.def
+++ b/gcc/m2/gm2-compiler/M2MetaError.def
@@ -21,33 +21,11 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 DEFINITION MODULE M2MetaError ;
 
-(*
-    Title      : M2MetaError
-    Author     : Gaius Mulley
-    System     : GNU Modula-2
-    Date       : Tue Oct 14 12:11:13 2008
-    Revision   : $Version$
-    Description: provides a set of high level error routines.  These
-                 routines utilise M2Error and provides the programmer
-                 with an easier method to obtain useful symbol table
-                 information.
-*)
+(* Provides a set of high level error routines using format specifiers.  *)
 
 FROM DynamicStrings IMPORT String ;
 FROM NameKey IMPORT Name ;
 
-EXPORT QUALIFIED MetaError0, MetaError1, MetaError2, MetaError3, MetaError4,
-                 MetaErrors1, MetaErrors2, MetaErrors3, MetaErrors4,
-                 MetaErrorT0, MetaErrorT1, MetaErrorT2, MetaErrorT3, MetaErrorT4,
-                 MetaErrorsT1, MetaErrorsT2, MetaErrorsT3, MetaErrorsT4,
-                 MetaErrorString0,
-                 MetaErrorString1, MetaErrorString2, MetaErrorString3,
-                 MetaErrorString4,
-                 MetaErrorStringT0, MetaErrorStringT1, MetaErrorStringT2,
-                 MetaErrorStringT3, MetaErrorStringT4,
-                 MetaErrorN1, MetaErrorN2, MetaErrorNT0, MetaErrorNT1, MetaErrorNT2,
-                 MetaString0, MetaString1, MetaString2, MetaString3, MetaString4 ;
-
 
 (*
     All the procedures below expect the s, s1, s2, s3, s4 to be symbols
@@ -194,4 +172,13 @@ PROCEDURE MetaString2 (m: String; s1, s2: CARDINAL) : String ;
 PROCEDURE MetaString3 (m: String; s1, s2, s3: CARDINAL) : String ;
 PROCEDURE MetaString4 (m: String; s1, s2, s3, s4: CARDINAL) : String ;
 
+
+(*
+   MetaErrorDecl - if sym is a variable or parameter then generate a
+                   declaration error message.
+*)
+
+PROCEDURE MetaErrorDecl (sym: CARDINAL) ;
+
+
 END M2MetaError.
diff --git a/gcc/m2/gm2-compiler/M2MetaError.mod b/gcc/m2/gm2-compiler/M2MetaError.mod
index 14df6457d64..2dd8c5c3d0a 100644
--- a/gcc/m2/gm2-compiler/M2MetaError.mod
+++ b/gcc/m2/gm2-compiler/M2MetaError.mod
@@ -50,7 +50,7 @@ FROM SymbolTable IMPORT NulSym,
                         IsDefImp, IsModule, IsInnerModule,
                         IsUnknown, IsType, IsProcedure, IsParameter,
                         IsParameterUnbounded, IsParameterVar, IsVarParam,
-                        IsUnboundedParam, IsPointer, IsRecord, IsVarient,
+                        IsUnboundedParamAny, IsPointer, IsRecord, IsVarient,
                         IsFieldVarient, IsEnumeration, IsFieldEnumeration,
                         IsUnbounded, IsArray, IsRecordField, IsProcType,
                         IsVar, IsConst, IsConstString, IsConstLit, IsConstSet,
@@ -2682,6 +2682,25 @@ BEGIN
 END MetaString4 ;
 
 
+(*
+   MetaErrorDecl - if sym is a variable or parameter then generate a
+                   declaration error message.
+*)
+
+PROCEDURE MetaErrorDecl (sym: CARDINAL) ;
+BEGIN
+   IF (sym # NulSym) AND IsVar (sym)
+   THEN
+      IF IsVarAParam (sym)
+      THEN
+         MetaErrorT1 (GetVarDeclFullTok (sym), 'parameter declaration for {%1ad}', sym)
+      ELSE
+         MetaErrorT1 (GetVarDeclFullTok (sym), 'variable declaration for {%1ad}', sym)
+      END
+   END
+END MetaErrorDecl ;
+
+
 BEGIN
    lastRoot := NIL ;
    lastColor := noColor ;
diff --git a/gcc/m2/gm2-compiler/M2Options.def b/gcc/m2/gm2-compiler/M2Options.def
index 3ddda3df052..baa5d7ec897 100644
--- a/gcc/m2/gm2-compiler/M2Options.def
+++ b/gcc/m2/gm2-compiler/M2Options.def
@@ -653,6 +653,7 @@ PROCEDURE SetXCode (value: BOOLEAN) ;
 
 (*
    SetCompilerDebugging - turn on internal compiler debugging.
+                          Enabled via the command line option -fd.
 *)
 
 PROCEDURE SetCompilerDebugging (value: BOOLEAN) ;
diff --git a/gcc/m2/gm2-compiler/M2Options.mod b/gcc/m2/gm2-compiler/M2Options.mod
index ecdad63657c..4048144f48e 100644
--- a/gcc/m2/gm2-compiler/M2Options.mod
+++ b/gcc/m2/gm2-compiler/M2Options.mod
@@ -1097,6 +1097,7 @@ END SetQuadDebugging ;
 
 (*
    SetCompilerDebugging - turn on internal compiler debugging.
+                          Enabled via the command line option -fd.
 *)
 
 PROCEDURE SetCompilerDebugging (value: BOOLEAN) ;
diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index 5ff0461d0d2..fe1ddd5f830 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -37,6 +37,7 @@ FROM M2MetaError IMPORT MetaError0, MetaError1, MetaError2, MetaError3,
                         MetaErrorT0, MetaErrorT1, MetaErrorT2,
                         MetaErrorsT1, MetaErrorsT2, MetaErrorT3,
                         MetaErrorStringT0, MetaErrorStringT1,
+                        MetaErrorStringT2,
                         MetaErrorString1, MetaErrorString2,
                         MetaErrorN1, MetaErrorN2,
                         MetaErrorNT0, MetaErrorNT1, MetaErrorNT2 ;
@@ -48,7 +49,7 @@ FROM DynamicStrings IMPORT String, string, InitString, KillString,
                            InitStringCharDB, MultDB, DupDB, SliceDB ;
 
 FROM SymbolTable IMPORT ModeOfAddr, GetMode, PutMode, GetSymName, IsUnknown,
-                        MakeTemporary,
+                        MakeTemporary, ProcedureKind,
                         MakeTemporaryFromExpression,
                         MakeTemporaryFromExpressions,
                         MakeConstLit,
@@ -65,7 +66,7 @@ FROM SymbolTable IMPORT ModeOfAddr, GetMode, PutMode, GetSymName, IsUnknown,
                         GetStringLength, GetString,
                         GetArraySubscript, GetDimension,
                         GetParam,
-                        GetNth, GetNthParam,
+                        GetNth, GetNthParamAny,
                         GetFirstUsed, GetDeclaredMod,
                         GetQuads, GetReadQuads, GetWriteQuads,
                         GetWriteLimitQuads, GetReadLimitQuads,
@@ -88,14 +89,14 @@ FROM SymbolTable IMPORT ModeOfAddr, GetMode, PutMode, GetSymName, IsUnknown,
                         PutVarConst, IsVarConst,
                         PutConstLitInternal,
                         PutVarHeap,
-                        IsVarParam, IsProcedure, IsPointer, IsParameter,
-                        IsUnboundedParam, IsEnumeration, IsDefinitionForC,
+                        IsVarParamAny, IsProcedure, IsPointer, IsParameter,
+                        IsUnboundedParamAny, IsEnumeration, IsDefinitionForC,
                         IsVarAParam, IsVarient, IsLegal,
-                        UsesVarArgs, UsesOptArg,
+                        UsesVarArgs, UsesOptArgAny,
                         GetOptArgInit,
-                        IsReturnOptional,
+                        IsReturnOptionalAny,
                         NoOfElements,
-                        NoOfParam,
+                        NoOfParamAny,
                         StartScope, EndScope,
                         IsGnuAsm, IsGnuAsmVolatile,
                         MakeRegInterface, PutRegInterface,
@@ -131,6 +132,9 @@ FROM SymbolTable IMPORT ModeOfAddr, GetMode, PutMode, GetSymName, IsUnknown,
                         GetUnboundedAddressOffset,
                         GetUnboundedHighOffset,
                         PutVarArrayRef,
+                        PutProcedureDefined,
+                        PutProcedureParametersDefined,
+                        GetVarDeclFullTok,
 
                         ForeachFieldEnumerationDo, ForeachLocalSymDo,
                         GetExported, PutImported, GetSym, GetLibName,
@@ -277,7 +281,7 @@ IMPORT M2Error, FIO, SFIO, DynamicStrings, StdIO ;
 CONST
    DebugStackOn = TRUE ;
    DebugVarients = FALSE ;
-   BreakAtQuad = 200 ;
+   BreakAtQuad = 758 ;
    DebugTokPos = FALSE ;
 
 TYPE
@@ -1354,10 +1358,6 @@ PROCEDURE PutQuadOtok (QuadNo: CARDINAL;
 VAR
    f: QuadFrame ;
 BEGIN
-   IF QuadNo = BreakAtQuad
-   THEN
-      stop
-   END ;
    IF QuadrupleGeneration
    THEN
       EraseQuad (QuadNo) ;
@@ -1432,8 +1432,8 @@ BEGIN
 
    ParamOp           : CheckAddVariableRead(Oper2, FALSE, QuadNo) ;
                        CheckAddVariableRead(Oper3, FALSE, QuadNo) ;
-                       IF (Oper1>0) AND (Oper1<=NoOfParam(Oper2)) AND
-                          IsVarParam(Oper2, Oper1)
+                       IF (Oper1>0) AND (Oper1<=NoOfParamAny(Oper2)) AND
+                          IsVarParamAny (Oper2, Oper1)
                        THEN
                           (* _may_ also write to a var parameter, although we dont know *)
                           CheckAddVariableWrite(Oper3, TRUE, QuadNo)
@@ -1484,6 +1484,19 @@ END AddQuadInformation ;
 PROCEDURE stop ; BEGIN END stop ;
 
 
+(*
+   CheckBreak - check whether QuadNo = BreakAtQuad and if so call stop.
+*)
+
+PROCEDURE CheckBreak (QuadNo: CARDINAL) ;
+BEGIN
+   IF QuadNo = BreakAtQuad
+   THEN
+      stop
+   END
+END CheckBreak ;
+
+
 (*
    PutQuadO - alters a quadruple QuadNo with Op, Oper1, Oper2, Oper3, and
               sets a boolean to determinine whether overflow should be checked.
@@ -1509,10 +1522,6 @@ PROCEDURE PutQuadOType (QuadNo: CARDINAL;
 VAR
    f: QuadFrame ;
 BEGIN
-   IF QuadNo = BreakAtQuad
-   THEN
-      stop
-   END ;
    IF QuadrupleGeneration
    THEN
       EraseQuad (QuadNo) ;
@@ -1625,8 +1634,8 @@ BEGIN
    KillLocalVarOp    : |
    ParamOp           : CheckRemoveVariableRead(Oper2, FALSE, QuadNo) ;
                        CheckRemoveVariableRead(Oper3, FALSE, QuadNo) ;
-                       IF (Oper1>0) AND (Oper1<=NoOfParam(Oper2)) AND
-                          IsVarParam(Oper2, Oper1)
+                       IF (Oper1>0) AND (Oper1<=NoOfParamAny(Oper2)) AND
+                          IsVarParamAny (Oper2, Oper1)
                        THEN
                           (* _may_ also write to a var parameter, although we dont know *)
                           CheckRemoveVariableWrite(Oper3, TRUE, QuadNo)
@@ -1679,6 +1688,7 @@ PROCEDURE EraseQuad (QuadNo: CARDINAL) ;
 VAR
    f: QuadFrame ;
 BEGIN
+   CheckBreak (QuadNo) ;
    f := GetQF(QuadNo) ;
    WITH f^ DO
       UndoReadWriteInfo(QuadNo, Operator, Operand1, Operand2, Operand3) ;
@@ -1849,10 +1859,7 @@ VAR
    i   : CARDINAL ;
    f, g: QuadFrame ;
 BEGIN
-   IF QuadNo = BreakAtQuad
-   THEN
-      stop
-   END ;
+   CheckBreak (QuadNo) ;
    f := GetQF(QuadNo) ;
    WITH f^ DO
       AlterReference(Head, QuadNo, f^.Next) ;
@@ -2009,10 +2016,7 @@ BEGIN
    f := GetQF(q) ;
    IF (f^.Operand3#0) AND (f^.Operand3<NextQuad)
    THEN
-      IF f^.Operand3 = BreakAtQuad
-      THEN
-         stop
-      END ;
+      CheckBreak (f^.Operand3) ;
       g := GetQF(f^.Operand3) ;
       Assert(g^.NoOfTimesReferenced#0) ;
       DEC(g^.NoOfTimesReferenced)
@@ -5616,7 +5620,7 @@ BEGIN
       IF GetSType (Proc) # NulSym
       THEN
          (* however it was declared as a procedure function *)
-         IF NOT IsReturnOptional (Proc)
+         IF NOT IsReturnOptionalAny (Proc)
          THEN
             MetaErrors1 ('function {%1a} is being called but its return value is ignored',
                          'function {%1Da} return a type {%1ta:of {%1ta}}',
@@ -5637,9 +5641,9 @@ BEGIN
    THEN
       GenQuad (ParamOp, 0, Proc, ProcSym)  (* Space for return value *)
    END ;
-   IF (NoOfParameters+1=NoOfParam(Proc)) AND UsesOptArg(Proc)
+   IF (NoOfParameters+1=NoOfParamAny(Proc)) AND UsesOptArgAny (Proc)
    THEN
-      GenQuad (OptParamOp, NoOfParam(Proc), Proc, Proc)
+      GenQuad (OptParamOp, NoOfParamAny (Proc), Proc, Proc)
    END ;
    i := NoOfParameters ;
    pi := 1 ;     (* stack index referencing stacked parameter, i *)
@@ -5774,7 +5778,7 @@ BEGIN
    i := 1 ;
    pi := ParamTotal+1 ;   (* stack index referencing stacked parameter, i *)
    WHILE i<=ParamTotal DO
-      IF i<=NoOfParam(Proc)
+      IF i <= NoOfParamAny (Proc)
       THEN
          FormalI := GetParam(Proc, i) ;
          IF CompilerDebugging
@@ -5795,11 +5799,11 @@ BEGIN
          BuildRange (InitTypesParameterCheck (paramtok, Proc, i, FormalI, Actual)) ;
          IF IsConst(Actual)
          THEN
-            IF IsVarParam(Proc, i)
+            IF IsVarParamAny (Proc, i)
             THEN
                FailParameter (paramtok,
                               'trying to pass a constant to a VAR parameter',
-                              Actual, FormalI, Proc, i)
+                              Actual, Proc, i)
             ELSIF IsConstString (Actual)
             THEN
                IF (NOT IsConstStringKnown (Actual))
@@ -5812,17 +5816,17 @@ BEGIN
                ELSIF (GetStringLength(paramtok, Actual) = 1)   (* If = 1 then it maybe treated as a char.  *)
                THEN
                   CheckParameter (paramtok, Actual, Dim, FormalI, Proc, i, NIL)
-               ELSIF NOT IsUnboundedParam(Proc, i)
+               ELSIF NOT IsUnboundedParamAny (Proc, i)
                THEN
                   IF IsForC AND (GetSType(FormalI)=Address)
                   THEN
                      FailParameter (paramtok,
                                     'a string constant can either be passed to an ADDRESS parameter or an ARRAY OF CHAR',
-                                    Actual, FormalI, Proc, i)
+                                    Actual, Proc, i)
                   ELSE
                      FailParameter (paramtok,
                                     'cannot pass a string constant to a non unbounded array parameter',
-                                    Actual, FormalI, Proc, i)
+                                    Actual, Proc, i)
                   END
                END
             END
@@ -5864,14 +5868,14 @@ VAR
    CheckedProcedure: CARDINAL ;
    e               : Error ;
 BEGIN
-   n := NoOfParam(ProcType) ;
+   n := NoOfParamAny (ProcType) ;
    IF IsVar(call) OR IsTemporary(call) OR IsParameter(call)
    THEN
       CheckedProcedure := GetDType(call)
    ELSE
       CheckedProcedure := call
    END ;
-   IF n#NoOfParam(CheckedProcedure)
+   IF n # NoOfParamAny (CheckedProcedure)
    THEN
       e := NewError(GetDeclaredMod(ProcType)) ;
       n1 := GetSymName(call) ;
@@ -5879,7 +5883,7 @@ BEGIN
       ErrorFormat2(e, 'procedure (%a) is a parameter being passed as variable (%a) but they are declared with different number of parameters',
                    n1, n2) ;
       e := ChainError(GetDeclaredMod(call), e) ;
-      t := NoOfParam(CheckedProcedure) ;
+      t := NoOfParamAny (CheckedProcedure) ;
       IF n<2
       THEN
          ErrorFormat3(e, 'procedure (%a) is being called incorrectly with (%d) parameter, declared with (%d)',
@@ -5891,7 +5895,7 @@ BEGIN
    ELSE
       i := 1 ;
       WHILE i<=n DO
-         IF IsVarParam (ProcType, i) # IsVarParam (CheckedProcedure, i)
+         IF IsVarParamAny (ProcType, i) # IsVarParamAny (CheckedProcedure, i)
          THEN
             MetaError3 ('parameter {%3n} in {%1dD} causes a mismatch it was declared as a {%2d}', ProcType, GetNth (ProcType, i), i) ;
             MetaError3 ('parameter {%3n} in {%1dD} causes a mismatch it was declared as a {%2d}', call, GetNth (call, i), i)
@@ -5957,7 +5961,7 @@ BEGIN
          ELSE
             FailParameter(tokpos,
                           'attempting to pass an array with the incorrect number dimenisons to an unbounded formal parameter of different dimensions',
-                          Actual, Formal, ProcSym, i) ;
+                          Actual, ProcSym, i) ;
             RETURN( FALSE )
          END
       END
@@ -5978,7 +5982,7 @@ BEGIN
             ELSE
                FailParameter(tokpos,
                              'attempting to pass an unbounded array with the incorrect number dimenisons to an unbounded formal parameter of different dimensions',
-                             Actual, Formal, ProcSym, i) ;
+                             Actual, ProcSym, i) ;
                RETURN( FALSE )
             END
          END
@@ -5994,7 +5998,7 @@ BEGIN
    ELSE
       FailParameter(tokpos,
                     'identifier with an incompatible type is being passed to this procedure',
-                    Actual, Formal, ProcSym, i) ;
+                    Actual, ProcSym, i) ;
       RETURN( FALSE )
    END
 END LegalUnboundedParam ;
@@ -6055,7 +6059,7 @@ BEGIN
       THEN
          FailParameter(tokpos,
                        'expecting a procedure or procedure variable as a parameter',
-                       Actual, Formal, ProcSym, i) ;
+                       Actual, ProcSym, i) ;
          RETURN
       END ;
       IF IsProcedure(Actual) AND IsProcedureNested(Actual)
@@ -6069,19 +6073,19 @@ BEGIN
          THEN
             FailParameter(tokpos,
                           'the item being passed is a function whereas the formal procedure parameter is a procedure',
-                          Actual, Formal, ProcSym, i) ;
+                          Actual, ProcSym, i) ;
             RETURN
          ELSIF ((GetSType(ActualType)=NulSym) AND (GetSType(FormalType)#NulSym))
          THEN
             FailParameter(tokpos,
                           'the item being passed is a procedure whereas the formal procedure parameter is a function',
-                          Actual, Formal, ProcSym, i) ;
+                          Actual, ProcSym, i) ;
             RETURN
          ELSIF AssignmentRequiresWarning(GetSType(ActualType), GetSType(FormalType))
          THEN
             WarnParameter(tokpos,
                           'the return result of the procedure variable parameter may not be compatible on other targets with the return result of the item being passed',
-                          Actual, Formal, ProcSym, i) ;
+                          Actual, ProcSym, i) ;
             RETURN
          ELSIF IsGenericSystemType (GetSType(FormalType)) OR
                IsGenericSystemType (GetSType(ActualType)) OR
@@ -6091,7 +6095,7 @@ BEGIN
          ELSE
             FailParameter(tokpos,
                           'the return result of the procedure variable parameter is not compatible with the return result of the item being passed',
-                          Actual, Formal, ProcSym, i) ;
+                          Actual, ProcSym, i) ;
             RETURN
          END
       END ;
@@ -6103,16 +6107,16 @@ BEGIN
       THEN
          FailParameter(tokpos,
                        'procedure parameter type is undeclared',
-                       Actual, Formal, ProcSym, i) ;
+                       Actual, ProcSym, i) ;
          RETURN
       END ;
-      IF IsUnbounded(ActualType) AND (NOT IsUnboundedParam(ProcSym, i))
+      IF IsUnbounded(ActualType) AND (NOT IsUnboundedParamAny (ProcSym, i))
       THEN
          FailParameter(tokpos,
                        'attempting to pass an unbounded array to a NON unbounded parameter',
-                       Actual, Formal, ProcSym, i) ;
+                       Actual, ProcSym, i) ;
          RETURN
-      ELSIF IsUnboundedParam(ProcSym, i)
+      ELSIF IsUnboundedParamAny (ProcSym, i)
       THEN
          IF NOT LegalUnboundedParam(tokpos, ProcSym, i, ActualType, Actual, Dimension, Formal)
          THEN
@@ -6124,7 +6128,7 @@ BEGIN
          THEN
             WarnParameter (tokpos,
                            'identifier being passed to this procedure may contain a possibly incompatible type when compiling for a different target',
-                           Actual, Formal, ProcSym, i)
+                           Actual, ProcSym, i)
          ELSIF IsGenericSystemType (FormalType) OR
                IsGenericSystemType (ActualType) OR
                IsAssignmentCompatible (ActualType, FormalType)
@@ -6134,7 +6138,7 @@ BEGIN
          ELSE
             FailParameter (tokpos,
                            'identifier with an incompatible type is being passed to this procedure',
-                           Actual, Formal, ProcSym, i)
+                           Actual, ProcSym, i)
          END
       END
    END ;
@@ -6226,8 +6230,7 @@ END DescribeType ;
                    The parameters are:
 
                    CurrentState  - string describing the current failing state.
-                   Given         - the token that the source code provided.
-                   Expecting     - token or identifier that was expected.
+                   Actual        - actual parameter.
                    ParameterNo   - parameter number that has failed.
                    ProcedureSym  - procedure symbol where parameter has failed.
 
@@ -6236,63 +6239,43 @@ END DescribeType ;
 
 PROCEDURE FailParameter (tokpos       : CARDINAL;
                          CurrentState : ARRAY OF CHAR;
-                         Given        : CARDINAL;
-                         Expecting    : CARDINAL;
+                         Actual       : CARDINAL;
                          ProcedureSym : CARDINAL;
                          ParameterNo  : CARDINAL) ;
 VAR
-   First,
-   ExpectType: CARDINAL ;
-   s, s1, s2 : String ;
+   FormalParam: CARDINAL ;
+   Msg        : String ;
 BEGIN
-   MetaErrorT2 (tokpos,
-                'parameter mismatch between the {%2N} parameter of procedure {%1Ead}',
-                ProcedureSym, ParameterNo) ;
-   s := InitString ('{%kPROCEDURE} {%1Eau} (') ;
-   IF NoOfParam(ProcedureSym)>=ParameterNo
+   Msg := InitString ('parameter mismatch between the {%2N} parameter of procedure {%1Ead}, ') ;
+   Msg := ConCat (Msg, Mark (InitString (CurrentState))) ;
+   MetaErrorStringT2 (tokpos, Msg, ProcedureSym, ParameterNo) ;
+   IF NoOfParamAny (ProcedureSym) >= ParameterNo
    THEN
-      IF ParameterNo>1
-      THEN
-         s := ConCat(s, Mark(InitString('.., ')))
-      END ;
-      IF IsVarParam(ProcedureSym, ParameterNo)
-      THEN
-         s := ConCat(s, Mark(InitString('{%kVAR} ')))
-      END ;
-
-      First := GetDeclaredMod(GetNthParam(ProcedureSym, ParameterNo)) ;
-      ExpectType := GetSType(Expecting) ;
-      IF IsUnboundedParam(ProcedureSym, ParameterNo)
+      FormalParam := GetNthParamAny (ProcedureSym, ParameterNo) ;
+      IF IsUnboundedParamAny (ProcedureSym, ParameterNo)
       THEN
-         s1 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(Expecting)))) ;
-         s2 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(GetSType(ExpectType))))) ;
-         s := ConCat(s, Mark(Sprintf2(Mark(InitString('%s: {%%kARRAY} {%%kOF} %s')),
-                                      s1, s2)))
+         MetaErrorT2 (GetVarDeclFullTok (FormalParam), 'formal parameter {%1ad} has an open array type {%2tad}',
+                      FormalParam, GetSType (GetSType (FormalParam)))
       ELSE
-         s1 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(Expecting)))) ;
-         s2 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(ExpectType)))) ;
-         s := ConCat(s, Mark(Sprintf2(Mark(InitString('%s: %s')), s1, s2)))
-      END ;
-      IF ParameterNo<NoOfParam(ProcedureSym)
-      THEN
-         s := ConCat(s, Mark(InitString('; ... ')))
+         MetaErrorT1 (GetVarDeclFullTok (FormalParam), 'formal parameter {%1ad} has type {%1tad}', FormalParam)
       END
    ELSE
-      First := GetDeclaredMod(ProcedureSym) ;
-      IF NoOfParam(ProcedureSym)>0
-      THEN
-         s := ConCat(s, Mark(InitString('..')))
-      END
+      MetaErrorT1 (GetDeclaredMod (ProcedureSym), 'procedure declaration', ProcedureSym)
    END ;
-   s := ConCat (s, Mark (InitString ('){%1Tau:% : {%1Tau}} ;'))) ;
-   MetaErrorStringT1 (First, Dup (s), ProcedureSym) ;
-   MetaErrorStringT1 (tokpos, s, ProcedureSym) ;
-   IF GetLType (Given) = NulSym
+   IF GetLType (Actual) = NulSym
    THEN
-      MetaError1 ('item being passed is {%1EDda} {%1Dad}', Given)
+      MetaError1 ('actual parameter being passed is {%1Eda} {%1ad}', Actual)
    ELSE
-      MetaError1 ('item being passed is {%1EDda} {%1Dad} of type {%1Dts}',
-                  Given)
+      IF IsVar (Actual)
+      THEN
+         MetaErrorT1 (GetVarDeclFullTok (Actual),
+                      'actual parameter variable being passed is {%1Eda} {%1ad} of an incompatible type {%1ts}',
+                      Actual)
+      ELSE
+         MetaErrorT1 (tokpos,
+                     'actual parameter being passed is {%1Eda} {%1ad} of an incompatible type {%1ts}',
+                      Actual)
+      END
    END
 END FailParameter ;
 
@@ -6301,11 +6284,8 @@ END FailParameter ;
    WarnParameter - generates a warning message indicating that a parameter
                    use might cause problems on another target.
 
-                   The parameters are:
-
                    CurrentState  - string describing the current failing state.
-                   Given         - the token that the source code provided.
-                   Expecting     - token or identifier that was expected.
+                   Actual        - actual parameter.
                    ParameterNo   - parameter number that has failed.
                    ProcedureSym  - procedure symbol where parameter has failed.
 
@@ -6314,90 +6294,44 @@ END FailParameter ;
 
 PROCEDURE WarnParameter (tokpos       : CARDINAL;
                          CurrentState : ARRAY OF CHAR;
-                         Given        : CARDINAL;
-                         Expecting    : CARDINAL;
+                         Actual       : CARDINAL;
                          ProcedureSym : CARDINAL;
                          ParameterNo  : CARDINAL) ;
 VAR
-   First,
-   ExpectType,
-   ReturnType: CARDINAL ;
-   s, s1, s2 : String ;
+   FormalParam: CARDINAL ;
+   Msg        : String ;
 BEGIN
-   s := InitString('{%W}') ;
-   IF CompilingImplementationModule()
+   Msg := InitString ('{%W}parameter mismatch between the {%2N} parameter of procedure {%1ad}, ') ;
+   Msg := ConCat (Msg, Mark (InitString (CurrentState))) ;
+   MetaErrorStringT2 (tokpos, Msg, ProcedureSym, ParameterNo) ;
+   IF NoOfParamAny (ProcedureSym) >= ParameterNo
    THEN
-      s := ConCat(s, Sprintf0(Mark(InitString('warning issued while compiling the implementation module\n'))))
-   ELSIF CompilingProgramModule()
-   THEN
-      s := ConCat(s, Sprintf0(Mark(InitString('warning issued while compiling the program module\n'))))
-   END ;
-   s1 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(ProcedureSym)))) ;
-   s := ConCat(s, Mark(Sprintf2(Mark(InitString('problem in parameter %d, PROCEDURE %s (')),
-                                ParameterNo,
-                                s1))) ;
-   IF NoOfParam(ProcedureSym)>=ParameterNo
-   THEN
-      IF ParameterNo>1
+      FormalParam := GetNthParamAny (ProcedureSym, ParameterNo) ;
+      IF IsUnboundedParamAny (ProcedureSym, ParameterNo)
       THEN
-         s := ConCat(s, Mark(InitString('.., ')))
-      END ;
-      IF IsVarParam(ProcedureSym, ParameterNo)
-      THEN
-         s := ConCat(s, Mark(InitString('{%kVAR} ')))
-      END ;
-
-      First := GetDeclaredMod(GetNthParam(ProcedureSym, ParameterNo)) ;
-      ExpectType := GetSType(Expecting) ;
-      IF IsUnboundedParam(ProcedureSym, ParameterNo)
-      THEN
-         s1 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(Expecting)))) ;
-         s2 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(GetSType(ExpectType))))) ;
-         s := ConCat(s, Mark(Sprintf2(Mark(InitString('%s: {%%kARRAY} {%%kOF} %s')),
-                                      s1, s2)))
+         MetaErrorT2 (GetVarDeclFullTok (FormalParam), '{%W}formal parameter {%1ad} has an open array type {%2tad}',
+                      FormalParam, GetSType (GetSType (FormalParam)))
       ELSE
-         s1 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(Expecting)))) ;
-         s2 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(ExpectType)))) ;
-         s := ConCat(s, Mark(Sprintf2(Mark(InitString('%s: %s')), s1, s2)))
-      END ;
-      IF ParameterNo<NoOfParam(ProcedureSym)
-      THEN
-         s := ConCat(s, Mark(InitString('; ... ')))
+         MetaErrorT1 (GetVarDeclFullTok (FormalParam), '{%W}formal parameter {%1ad} has type {%1tad}', FormalParam)
       END
    ELSE
-      First := GetDeclaredMod(ProcedureSym) ;
-      IF NoOfParam(ProcedureSym)>0
-      THEN
-         s := ConCat(s, Mark(InitString('..')))
-      END
+      MetaErrorT1 (GetDeclaredMod (ProcedureSym), '{%W}procedure declaration', ProcedureSym)
    END ;
-   ReturnType := GetSType(ProcedureSym) ;
-   IF ReturnType=NulSym
+   IF GetLType (Actual) = NulSym
    THEN
-      s := ConCat(s, Sprintf0(Mark(InitString(') ;\n'))))
+      MetaError1 ('actual parameter being passed is {%1Wda} {%1ad}', Actual)
    ELSE
-      s1 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(ReturnType)))) ;
-      s := ConCat(s, Mark(Sprintf1(Mark(InitString(') : %s ;\n')), s1)))
-   END ;
-   IF IsConstString(Given)
-   THEN
-      s1 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(Given)))) ;
-      s := ConCat(s, Mark(Sprintf1(Mark(InitString("item being passed is '%s'")),
-                                   s1)))
-   ELSIF IsTemporary(Given)
-   THEN
-      s := ConCat(s, Mark(InitString("item being passed has type")))
-   ELSE
-      s1 := Mark(InitStringCharStar(KeyToCharStar(GetSymName(Given)))) ;
-      s := ConCat(s, Mark(Sprintf1(Mark(InitString("item being passed is '%s'")),
-                                   s1)))
-   END ;
-   s1 := DescribeType(Given) ;
-   s2 := Mark(InitString(CurrentState)) ;
-   s := ConCat(s, Mark(Sprintf2(Mark(InitString(': %s\nparameter mismatch: %s')),
-                                s1, s2))) ;
-   MetaErrorStringT0 (tokpos, Dup (s)) ;
-   MetaErrorStringT0 (First, Dup (s))
+      IF IsVar (Actual)
+      THEN
+         MetaErrorT1 (GetVarDeclFullTok (Actual),
+                      'actual parameter variable being passed is {%1Wda} {%1ad} of type {%1ts}',
+                      Actual)
+      ELSE
+         MetaErrorT1 (tokpos,
+                     'actual parameter being passed is {%1Wda} {%1ad} of type {%1ts}',
+                      Actual)
+      END
+   END
 END WarnParameter ;
 
 
@@ -6650,28 +6584,28 @@ BEGIN
 
    IF IsForC AND UsesVarArgs(Proc)
    THEN
-      IF NoOfParameters<NoOfParam(Proc)
+      IF NoOfParameters < NoOfParamAny (Proc)
       THEN
          s := Mark(InitStringCharStar(KeyToCharStar(GetSymName(Proc)))) ;
-         np := NoOfParam(Proc) ;
+         np := NoOfParamAny (Proc) ;
          ErrorStringAt2(Sprintf3(Mark(InitString('attempting to pass (%d) parameters to procedure (%s) which was declared with varargs but contains at least (%d) parameters')),
                                  NoOfParameters, s, np),
                         tokpos, GetDeclaredMod(ProcSym))
       END
-   ELSIF UsesOptArg(Proc)
+   ELSIF UsesOptArgAny (Proc)
    THEN
-      IF NOT ((NoOfParameters=NoOfParam(Proc)) OR (NoOfParameters+1=NoOfParam(Proc)))
+      IF NOT ((NoOfParameters=NoOfParamAny (Proc)) OR (NoOfParameters+1=NoOfParamAny (Proc)))
       THEN
          s := Mark(InitStringCharStar(KeyToCharStar(GetSymName(Proc)))) ;
-         np := NoOfParam(Proc) ;
+         np := NoOfParamAny (Proc) ;
          ErrorStringAt2(Sprintf3(Mark(InitString('attempting to pass (%d) parameters to procedure (%s) which was declared with an optarg with a maximum of (%d) parameters')),
                                  NoOfParameters, s, np),
                         tokpos, GetDeclaredMod(ProcSym))
       END
-   ELSIF NoOfParameters#NoOfParam(Proc)
+   ELSIF NoOfParameters#NoOfParamAny (Proc)
    THEN
       s := Mark(InitStringCharStar(KeyToCharStar(GetSymName(Proc)))) ;
-      np := NoOfParam(Proc) ;
+      np := NoOfParamAny (Proc) ;
       ErrorStringAt2(Sprintf3(Mark(InitString('attempting to pass (%d) parameters to procedure (%s) which was declared with (%d) parameters')),
                               NoOfParameters, s, np),
                      tokpos, GetDeclaredMod(ProcSym))
@@ -6682,7 +6616,7 @@ BEGIN
       f := PeepAddress(BoolStack, pi) ;
       rw := OperandMergeRW(pi) ;
       Assert(IsLegal(rw)) ;
-      IF i>NoOfParam(Proc)
+      IF i>NoOfParamAny (Proc)
       THEN
          IF IsForC AND UsesVarArgs(Proc)
          THEN
@@ -6719,12 +6653,12 @@ BEGIN
                          'attempting to pass too many parameters to procedure {%1a}, the {%2N} parameter does not exist',
                          Proc, i)
          END
-      ELSIF IsForC AND IsUnboundedParam(Proc, i) AND
+      ELSIF IsForC AND IsUnboundedParamAny (Proc, i) AND
             (GetSType(OperandT(pi))#NulSym) AND IsArray(GetDType(OperandT(pi)))
       THEN
          f^.TrueExit := MakeLeftValue(OperandTok(pi), OperandT(pi), RightValue, Address) ;
          MarkAsReadWrite(rw)
-      ELSIF IsForC AND IsUnboundedParam(Proc, i) AND
+      ELSIF IsForC AND IsUnboundedParamAny (Proc, i) AND
             (GetSType(OperandT(pi))#NulSym) AND IsUnbounded(GetDType(OperandT(pi)))
       THEN
          MarkAsReadWrite(rw) ;
@@ -6735,13 +6669,13 @@ BEGIN
          BuildAdrFunction ;
          PopT(f^.TrueExit)
       ELSIF IsForC AND IsConstString(OperandT(pi)) AND
-                        (IsUnboundedParam(Proc, i) OR (GetDType(GetParam(Proc, i))=Address))
+                        (IsUnboundedParamAny (Proc, i) OR (GetDType(GetParam(Proc, i))=Address))
       THEN
          f^.TrueExit := MakeLeftValue (OperandTok (pi),
                                        DeferMakeConstStringCnul (OperandTok (pi), OperandT (pi)),
                                        RightValue, Address) ;
          MarkAsReadWrite (rw)
-      ELSIF IsUnboundedParam(Proc, i)
+      ELSIF IsUnboundedParamAny (Proc, i)
       THEN
          (* always pass constant strings with a nul terminator, but leave the HIGH as before.  *)
          IF IsConstString (OperandT(pi))
@@ -6759,7 +6693,7 @@ BEGIN
          ELSE
             ArraySym := OperandA(pi)
          END ;
-         IF IsVarParam(Proc, i)
+         IF IsVarParamAny (Proc, i)
          THEN
             MarkArrayWritten (OperandT (pi)) ;
             MarkArrayWritten (OperandA (pi)) ;
@@ -6770,14 +6704,14 @@ BEGIN
             AssignUnboundedNonVar (OperandTtok (pi), OperandT (pi), ArraySym, t, ParamType, OperandD (pi))
          END ;
          f^.TrueExit := t
-      ELSIF IsVarParam(Proc, i)
+      ELSIF IsVarParamAny (Proc, i)
       THEN
          (* must reference by address, but we contain the type of the referenced entity *)
          MarkArrayWritten(OperandT(pi)) ;
          MarkArrayWritten(OperandA(pi)) ;
          MarkAsReadWrite(rw) ;
          f^.TrueExit := MakeLeftValue(OperandTok(pi), OperandT(pi), LeftValue, GetSType(GetParam(Proc, i)))
-      ELSIF (NOT IsVarParam(Proc, i)) AND (GetMode(OperandT(pi))=LeftValue)
+      ELSIF (NOT IsVarParamAny (Proc, i)) AND (GetMode(OperandT(pi))=LeftValue)
       THEN
          (* must dereference LeftValue *)
          t := MakeTemporary (OperandTok (pi), RightValue) ;
@@ -6823,7 +6757,7 @@ BEGIN
    i := 1 ;
    pi := ParamTotal+1 ;   (* stack index referencing stacked parameter, i *)
    WHILE i<=ParamTotal DO
-      IF i<=NoOfParam(Proc)
+      IF i<=NoOfParamAny (Proc)
       THEN
          FormalI := GetParam (Proc, i) ;
          Actual := OperandT (pi) ;
@@ -7862,7 +7796,6 @@ END BuildExclProcedure ;
 
 PROCEDURE CheckBuildFunction () : BOOLEAN ;
 VAR
-   n            : Name ;
    tokpos,
    TempSym,
    ProcSym, Type: CARDINAL ;
@@ -7876,17 +7809,10 @@ BEGIN
          PutVar(TempSym, GetSType(Type)) ;
          PushTFtok(TempSym, GetSType(Type), tokpos) ;
          PushTFtok(ProcSym, Type, tokpos) ;
-         IF NOT IsReturnOptional(Type)
+         IF NOT IsReturnOptionalAny (Type)
          THEN
-            IF IsTemporary(ProcSym)
-            THEN
-               ErrorFormat0 (NewError (tokpos),
-                             'function is being called but its return value is ignored')
-            ELSE
-               n := GetSymName (ProcSym) ;
-               ErrorFormat1 (NewError (tokpos),
-                            'function (%a) is being called but its return value is ignored', n)
-            END
+            MetaErrorT1 (tokpos,
+                         'function {%1Ea} is called but its return value is ignored', ProcSym)
          END ;
          RETURN TRUE
       END
@@ -7896,11 +7822,10 @@ BEGIN
       PutVar(TempSym, Type) ;
       PushTFtok(TempSym, Type, tokpos) ;
       PushTFtok(ProcSym, Type, tokpos) ;
-      IF NOT IsReturnOptional(ProcSym)
+      IF NOT IsReturnOptionalAny (ProcSym)
       THEN
-         n := GetSymName(ProcSym) ;
-         ErrorFormat1(NewError(tokpos),
-                      'function (%a) is being called but its return value is ignored', n)
+         MetaErrorT1 (tokpos,
+                      'function {%1Ea} is called but its return value is ignored', ProcSym)
       END ;
       RETURN TRUE
    END ;
@@ -11040,7 +10965,7 @@ VAR
 BEGIN
    IF IsProcedure(BlockSym)
    THEN
-      ParamNo := NoOfParam(BlockSym)
+      ParamNo := NoOfParamAny (BlockSym)
    ELSE
       ParamNo := 0
    END ;
@@ -11190,6 +11115,11 @@ BEGIN
    GenQuad(ReturnOp, NulSym, NulSym, ProcSym) ;
    CheckFunctionReturn(ProcSym) ;
    CheckVariablesInBlock(ProcSym) ;
+   (* Call PutProcedureEndQuad so that any runtime procedure will be
+      seen as defined even if it not seen during pass 2 (which will also
+      call PutProcedureEndQuad).  *)
+   PutProcedureParametersDefined (ProcSym, ProperProcedure) ;
+   PutProcedureDefined (ProcSym, ProperProcedure) ;
    RemoveTop (CatchStack) ;
    RemoveTop (TryStack) ;
    PushT(ProcSym)
@@ -13726,10 +13656,7 @@ BEGIN
             (* MetaErrorT1 (TokenNo, '{%1On}', NextQuad) *)
          END
       END ;
-      IF NextQuad=BreakAtQuad
-      THEN
-         stop
-      END ;
+      CheckBreak (NextQuad) ;
       NewQuad (NextQuad)
    END
 END GenQuadOTrash ;
@@ -13816,10 +13743,7 @@ BEGIN
             (* MetaErrorT1 (TokenNo, '{%1On}', NextQuad) *)
          END
       END ;
-      IF NextQuad=BreakAtQuad
-      THEN
-         stop
-      END ;
+      CheckBreak (NextQuad) ;
       NewQuad (NextQuad)
    END
 END GenQuadOTypetok ;
@@ -14193,7 +14117,7 @@ BEGIN
 
       ProcedureScopeOp  : n1 := GetSymName(Operand2) ;
                           n2 := GetSymName(Operand3) ;
-                          fprintf3 (GetDumpFile (), '  %4d  %a  %a', Operand1, n1, n2) ;
+                          fprintf4 (GetDumpFile (), '  %4d  %a  %a(%d)', Operand1, n1, n2, Operand3) ;
                           DisplayProcedureAttributes (Operand3) |
       NewLocalVarOp,
       FinallyStartOp,
diff --git a/gcc/m2/gm2-compiler/M2Range.mod b/gcc/m2/gm2-compiler/M2Range.mod
index c21bbfa885d..767853392fd 100644
--- a/gcc/m2/gm2-compiler/M2Range.mod
+++ b/gcc/m2/gm2-compiler/M2Range.mod
@@ -28,7 +28,7 @@ FROM SymbolTable IMPORT NulSym, GetLowestType, PutReadQuad, RemoveReadQuad,
                         IsRecord, IsPointer, IsArray, IsProcType, IsConstLit,
                         IsAModula2Type, IsUnbounded, IsEnumeration, GetMode,
                         IsConstString, MakeConstLit, SkipType, IsProcedure,
-                        IsParameter, GetDeclaredMod, IsVarParam, GetNthParam,
+                        IsParameter, GetDeclaredMod, IsVarParamAny, GetNthParam,
                         ModeOfAddr ;
 
 FROM SYSTEM IMPORT ADDRESS ;
@@ -1704,7 +1704,7 @@ VAR
    compatible: BOOLEAN ;
 BEGIN
    compatible := FALSE ;
-   IF IsVarParam (procedure, paramNo)
+   IF IsVarParamAny (procedure, paramNo)
    THEN
       (* Expression type compatibility rules for pass by reference parameters.  *)
       compatible := ParameterTypeCompatible (tokenNo,
@@ -1792,7 +1792,7 @@ PROCEDURE CodeTypeParam (tokenNo: CARDINAL; formal, actual, procedure: CARDINAL;
 BEGIN
    IF NOT ParameterTypeCompatible (tokenNo,
                                    '{%4EN} type failure between actual {%3ad} and the formal {%2ad}',
-                                   procedure, formal, actual, paramNo, IsVarParam (procedure, paramNo))
+                                   procedure, formal, actual, paramNo, IsVarParamAny (procedure, paramNo))
    THEN
    END
 END CodeTypeParam ;
diff --git a/gcc/m2/gm2-compiler/M2Scaffold.mod b/gcc/m2/gm2-compiler/M2Scaffold.mod
index f4f557edaf3..7ec342ffcdd 100644
--- a/gcc/m2/gm2-compiler/M2Scaffold.mod
+++ b/gcc/m2/gm2-compiler/M2Scaffold.mod
@@ -21,7 +21,7 @@ along with GNU Modula-2; see the file COPYING3.  If not see
 
 IMPLEMENTATION MODULE M2Scaffold ;
 
-FROM SymbolTable IMPORT NulSym, MakeProcedure, PutFunction,
+FROM SymbolTable IMPORT NulSym, ProcedureKind, MakeProcedure, PutFunction,
                         PutPublic, PutCtor, PutParam, IsProcedure,
                         MakeConstant, PutExtern, MakeArray, PutArray,
                         MakeSubrange, PutSubrange,
@@ -36,12 +36,14 @@ FROM SymbolTable IMPORT NulSym, MakeProcedure, PutFunction,
                         GetModuleDefImportStatementList,
                         GetModuleModImportStatementList,
                         GetImportModule, GetImportStatementList,
-                        PutLibName ;
+                        PutLibName,
+                        PutProcedureDeclaredTok, PutProcedureParametersDefined,
+                        PutProcedureDefined ;
 
 FROM NameKey IMPORT NulName, Name, MakeKey, makekey, KeyToCharStar ;
 FROM M2Base IMPORT Integer, Cardinal ;
 FROM M2System IMPORT Address ;
-FROM M2LexBuf IMPORT GetTokenNo ;
+FROM M2LexBuf IMPORT GetTokenNo, BuiltinTokenNo ;
 FROM Assertion IMPORT Assert ;
 FROM Lists IMPORT List, InitList, IncludeItemIntoList, NoOfItemsInList, GetItemFromList, KillList, IsItemInList ;
 FROM M2MetaError IMPORT MetaErrorT0, MetaErrorStringT0 ;
@@ -573,7 +575,8 @@ BEGIN
       DeclareCtorGlobal (tokenno) ;
       DeclareModuleExtern (tokenno) ;
       linkFunction := MakeProcedure (tokenno, MakeKey ("_M2_link")) ;
-      PutMonoName (linkFunction, TRUE)
+      PutMonoName (linkFunction, TRUE) ;
+      PutProcedureDefined (linkFunction, ProperProcedure) ;
    ELSIF ScaffoldDynamic AND (NOT cflag)
    THEN
       MetaErrorT0 (tokenno,
@@ -582,8 +585,10 @@ BEGIN
 
    initFunction := MakeProcedure (tokenno, MakeKey ("_M2_init")) ;
    PutMonoName (initFunction, TRUE) ;
+   PutProcedureDefined (initFunction, ProperProcedure) ;
    finiFunction := MakeProcedure (tokenno, MakeKey ("_M2_fini")) ;
    PutMonoName (finiFunction, TRUE) ;
+   PutProcedureDefined (initFunction, ProperProcedure) ;
    IF SharedFlag
    THEN
       PutCtor (initFunction, TRUE) ;
@@ -595,9 +600,10 @@ BEGIN
       mainFunction := MakeProcedure (tokenno, MakeKey ("main")) ;
       PutMonoName (mainFunction, TRUE) ;
       StartScope (mainFunction) ;
-      PutFunction (mainFunction, Integer) ;
+      PutFunction (BuiltinTokenNo, mainFunction, ProperProcedure, Integer) ;
       DeclareArgEnvParams (tokenno, mainFunction) ;
       PutPublic (mainFunction, TRUE) ;
+      PutProcedureDefined (mainFunction, ProperProcedure) ;
       EndScope
    END
 END DeclareScaffoldFunctions ;
@@ -611,9 +617,11 @@ PROCEDURE DeclareArgEnvParams (tokno: CARDINAL; proc: CARDINAL) ;
 BEGIN
    Assert (IsProcedure (proc)) ;
    StartScope (proc) ;
-   Assert (PutParam (tokno, proc, 1, MakeKey ("argc"), Integer, FALSE, tokno)) ;
-   Assert (PutParam (tokno, proc, 2, MakeKey ("argv"), Address, FALSE, tokno)) ;
-   Assert (PutParam (tokno, proc, 3, MakeKey ("envp"), Address, FALSE, tokno)) ;
+   Assert (PutParam (tokno, proc, ProperProcedure, 1, MakeKey ("argc"), Integer, FALSE, tokno)) ;
+   Assert (PutParam (tokno, proc, ProperProcedure, 2, MakeKey ("argv"), Address, FALSE, tokno)) ;
+   Assert (PutParam (tokno, proc, ProperProcedure, 3, MakeKey ("envp"), Address, FALSE, tokno)) ;
+   PutProcedureParametersDefined (proc, ProperProcedure) ;
+   PutProcedureDeclaredTok (proc, ProperProcedure, tokno) ;
    EndScope
 END DeclareArgEnvParams ;
 
diff --git a/gcc/m2/gm2-compiler/M2Size.mod b/gcc/m2/gm2-compiler/M2Size.mod
index 45301733df3..101fdbd9855 100644
--- a/gcc/m2/gm2-compiler/M2Size.mod
+++ b/gcc/m2/gm2-compiler/M2Size.mod
@@ -26,7 +26,8 @@ FROM M2Base IMPORT ZType ;
 FROM M2LexBuf IMPORT BuiltinTokenNo ;
 
 FROM SymbolTable IMPORT NulSym, MakeProcedure, PutFunction,
-                        AddSymToModuleScope, GetCurrentScope ;
+                        AddSymToModuleScope, GetCurrentScope,
+                        ProcedureKind ;
 
 
 (*
@@ -38,11 +39,12 @@ BEGIN
    IF Size=NulSym
    THEN
                                                      (* Function        *)
-      Size := MakeProcedure (BuiltinTokenNo, MakeKey('SIZE')) ;
-      PutFunction(Size, ZType)                       (* Return Type     *)
+      Size := MakeProcedure (BuiltinTokenNo, MakeKey ('SIZE')) ;
+      PutFunction (BuiltinTokenNo, Size, DefProcedure, ZType)
+                                                     (* Return Type     *)
                                                      (* ZType           *)
    ELSE
-      AddSymToModuleScope(GetCurrentScope(), Size)
+      AddSymToModuleScope (GetCurrentScope (), Size)
    END
 END MakeSize ;
 
diff --git a/gcc/m2/gm2-compiler/M2Swig.mod b/gcc/m2/gm2-compiler/M2Swig.mod
index 7ef8ff36da7..20c4d7a4163 100644
--- a/gcc/m2/gm2-compiler/M2Swig.mod
+++ b/gcc/m2/gm2-compiler/M2Swig.mod
@@ -49,9 +49,9 @@ FROM M2Base IMPORT IsBaseType, Char, Cardinal, Integer, Real, LongReal, ShortRea
                    LongCard, ShortCard, LongInt, ShortInt, Boolean ;
 
 FROM SymbolTable IMPORT GetSymName, IsType, IsProcedure, IsConst, IsVar,
-                        GetType, GetNthParam, IsUnbounded, GetMode, ModeOfAddr,
-                        NoOfParam, IsConstString, IsConstLit, IsPointer,
-                        IsExported, ForeachExportedDo, IsUnboundedParam,
+                        GetType, GetNthParamAny, IsUnbounded, GetMode, ModeOfAddr,
+                        NoOfParamAny, IsConstString, IsConstLit, IsPointer,
+                        IsExported, ForeachExportedDo, IsUnboundedParamAny,
                         IsParameter, IsParameterUnbounded, IsParameterVar,
                         GetParameterShadowVar, GetReadQuads, GetWriteQuads,
                         NulSym ;
@@ -253,10 +253,10 @@ BEGIN
          solved := FALSE
       END
    END ;
-   p := NoOfParam(sym) ;
+   p := NoOfParamAny (sym) ;
    i := 1 ;
    WHILE i<=p DO
-      son := GetNthParam(sym, i) ;
+      son := GetNthParamAny(sym, i) ;
       IF TryDependents(son)
       THEN
          result := TRUE
@@ -686,11 +686,11 @@ VAR
    needComma: BOOLEAN ;
 BEGIN
    fprintf0(f, '/* Parameter: ') ;
-   p := NoOfParam(sym) ;
+   p := NoOfParamAny (sym) ;
    i := 1 ;
    needComma := FALSE ;
    WHILE i<=p DO
-      son := GetNthParam(sym, i) ;
+      son := GetNthParamAny(sym, i) ;
       IF IsParameterVar(son)
       THEN
          IF needComma
@@ -727,15 +727,15 @@ BEGIN
    fprintf0(f, ' ') ;
    DoName(sym) ;
    fprintf0(f, ' (') ;
-   p := NoOfParam(sym) ;
+   p := NoOfParamAny (sym) ;
    IF p=0
    THEN
       fprintf0(f, 'void') ;
    ELSE
       i := 1 ;
       WHILE i<=p DO
-         son := GetNthParam(sym, i) ;
-         IF IsUnboundedParam(sym, i)
+         son := GetNthParamAny(sym, i) ;
+         IF IsUnboundedParamAny (sym, i)
          THEN
             DoUnbounded(son)
          ELSE
diff --git a/gcc/m2/gm2-compiler/M2SymInit.mod b/gcc/m2/gm2-compiler/M2SymInit.mod
index 48f1b3d3288..deca342f73f 100644
--- a/gcc/m2/gm2-compiler/M2SymInit.mod
+++ b/gcc/m2/gm2-compiler/M2SymInit.mod
@@ -50,11 +50,12 @@ FROM Lists IMPORT List, InitList, GetItemFromList, PutItemIntoList,
                   RemoveItemFromList, ForeachItemInListDo, KillList, DuplicateList ;
 
 FROM SymbolTable IMPORT NulSym, ModeOfAddr, IsVar, IsRecord, GetSType,
+                        ProcedureKind, GetNthParam, NoOfParam,
                         GetNth, IsRecordField, IsSet, IsArray, IsProcedure,
                         GetVarScope, IsVarAParam, IsComponent, GetMode,
                         VarCheckReadInit, VarInitState, PutVarInitialized,
                         PutVarFieldInitialized, GetVarFieldInitialized,
-                        IsConst, IsConstString, NoOfParam, IsVarParam,
+                        IsConst, IsConstString, NoOfParamAny, IsVarParamAny,
                         ForeachLocalSymDo, ForeachParamSymDo,
                         IsTemporary, ModeOfAddr,
                         IsReallyPointer, IsUnbounded,
@@ -62,7 +63,7 @@ FROM SymbolTable IMPORT NulSym, ModeOfAddr, IsVar, IsRecord, GetSType,
                         IsVarArrayRef, GetSymName,
                         IsType, IsPointer,
                         GetParameterShadowVar, IsParameter, GetLType,
-                        GetParameterHeapVar ;
+                        GetParameterHeapVar, GetVarDeclTok ;
 
 FROM M2Quads IMPORT QuadOperator, GetQuadOtok, GetQuad, GetNextQuad,
                     IsNewLocalVar, IsReturn, IsKillLocalVar, IsConditional,
@@ -1303,11 +1304,11 @@ BEGIN
    SizeOp            : SetVarInitialized (op1, FALSE, op1tok) |
    AddrOp            : CheckAddr (op1tok, op1, op3tok, op3) |
    ReturnValueOp     : SetVarInitialized (op1, FALSE, op1tok) |
-   NewLocalVarOp     : |
+   NewLocalVarOp     : SetParameterVariablesInitialized (op3) |
    ParamOp           : CheckDeferredRecordAccess (op2tok, op2, FALSE, warning, i) ;
                        CheckDeferredRecordAccess (op3tok, op3, FALSE, warning, i) ;
-                       IF (op1 > 0) AND (op1 <= NoOfParam (op2)) AND
-                          IsVarParam (op2, op1)
+                       IF (op1 > 0) AND (op1 <= NoOfParamAny (op2)) AND
+                          IsVarParamAny (op2, op1)
                        THEN
                           SetVarInitialized (op3, TRUE, op3tok)
                        END |
@@ -1382,6 +1383,18 @@ BEGIN
 END CheckReadBeforeInitQuad ;
 
 
+(*
+   SetParameterVariablesInitialized - sets all shadow variables for parameters as
+                                      initialized.
+*)
+
+PROCEDURE SetParameterVariablesInitialized (procSym: CARDINAL) ;
+BEGIN
+   ForeachLocalSymDo (procSym, SetVarUninitialized) ;
+   ForeachParamSymDo (procSym, SetVarLRInitialized) ;
+END SetParameterVariablesInitialized ;
+
+
 (*
    FilterCheckReadBeforeInitQuad -
 *)
diff --git a/gcc/m2/gm2-compiler/M2System.mod b/gcc/m2/gm2-compiler/M2System.mod
index 38565b5e956..10785bbf0c6 100644
--- a/gcc/m2/gm2-compiler/M2System.mod
+++ b/gcc/m2/gm2-compiler/M2System.mod
@@ -50,7 +50,7 @@ FROM SymbolTable IMPORT NulSym,
                         PutProcedureNoReturn,
                         GetSym, GetSymName,
                         GetCurrentModule, SetCurrentModule,
-                        IsLegal,
+                        IsLegal, ProcedureKind,
                         PopValue,
                         PopSize ;
 
@@ -372,43 +372,45 @@ BEGIN
       END
    END ;
 
-   (* And now the predefined pseudo functions *)
+   (* The predefined pseudo functions.  *)
 
    Adr := MakeProcedure(BuiltinTokenNo,
                         MakeKey('ADR')) ;           (* Function        *)
-   PutFunction(Adr, Address) ;                      (* Return Type     *)
+   PutFunction (BuiltinTokenNo, Adr, DefProcedure, Address) ;
+                                                    (* Return Type     *)
                                                     (* Address         *)
-
    TSize := MakeProcedure(BuiltinTokenNo,
                           MakeKey('TSIZE')) ;       (* Function        *)
-   PutFunction(TSize, ZType) ;                      (* Return Type     *)
+   PutFunction (BuiltinTokenNo, TSize, DefProcedure, ZType) ;
+                                                    (* Return Type     *)
                                                     (* ZType           *)
-
    TBitSize := MakeProcedure(BuiltinTokenNo,
                              MakeKey('TBITSIZE')) ; (* GNU extension   *)
                                                     (* Function        *)
-   PutFunction(TBitSize, ZType) ;                   (* Return Type     *)
+   PutFunction (BuiltinTokenNo, TBitSize, DefProcedure, ZType) ;
+                                                    (* Return Type     *)
                                                     (* ZType           *)
-   (* and the ISO specific predefined pseudo functions *)
+   (* The ISO specific predefined pseudo functions.  *)
 
    AddAdr := MakeProcedure(BuiltinTokenNo,
                            MakeKey('ADDADR')) ;     (* Function        *)
-   PutFunction(AddAdr, Address) ;                   (* Return Type     *)
-
+   PutFunction (BuiltinTokenNo, AddAdr, DefProcedure, Address) ;
+                                                    (* Return Type     *)
    SubAdr := MakeProcedure(BuiltinTokenNo,
                            MakeKey('SUBADR')) ;     (* Function        *)
-   PutFunction(SubAdr, Address) ;                   (* Return Type     *)
-
-   DifAdr := MakeProcedure(BuiltinTokenNo,
-                           MakeKey('DIFADR')) ;     (* Function        *)
-   PutFunction(DifAdr, Address) ;                   (* Return Type     *)
-
-   MakeAdr := MakeProcedure(BuiltinTokenNo,
-                            MakeKey('MAKEADR')) ;   (* Function        *)
-   PutFunction(MakeAdr, Address) ;                  (* Return Type     *)
-
-   (* the return value for ROTATE, SHIFT and CAST is actually the
-      same as the first parameter, this is faked in M2Quads *)
+   PutFunction (BuiltinTokenNo, SubAdr, DefProcedure, Address) ;
+                                                    (* Return Type     *)
+   DifAdr := MakeProcedure (BuiltinTokenNo,
+                            MakeKey ('DIFADR')) ;   (* Function        *)
+   PutFunction (BuiltinTokenNo, DifAdr, DefProcedure, Address) ;
+                                                    (* Return Type     *)
+   MakeAdr := MakeProcedure (BuiltinTokenNo,
+                             MakeKey ('MAKEADR')) ; (* Function        *)
+   PutFunction (BuiltinTokenNo, MakeAdr, DefProcedure, Address) ;
+                                                    (* Return Type     *)
+
+   (* The return value for ROTATE, SHIFT and CAST is the
+      same as the first parameter and is faked in M2Quads.  *)
 
    Rotate := MakeProcedure(BuiltinTokenNo,
                            MakeKey('ROTATE')) ;     (* Function        *)
@@ -419,7 +421,7 @@ BEGIN
 
    Throw := MakeProcedure(BuiltinTokenNo,
                           MakeKey('THROW')) ;       (* Procedure       *)
-   PutProcedureNoReturn (Throw, TRUE) ;
+   PutProcedureNoReturn (Throw, DefProcedure, TRUE) ;
 
    CreateMinMaxFor(Word, 'MinWord', 'MaxWord', GetWordType()) ;
    CreateMinMaxFor(Address, 'MinAddress', 'MaxAddress', GetPointerType()) ;
diff --git a/gcc/m2/gm2-compiler/P1SymBuild.mod b/gcc/m2/gm2-compiler/P1SymBuild.mod
index 40a83b7bacb..8a2ed87b356 100644
--- a/gcc/m2/gm2-compiler/P1SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P1SymBuild.mod
@@ -69,8 +69,6 @@ FROM SymbolTable IMPORT NulSym,
                         PutDoesNeedExportList, PutDoesNotNeedExportList,
                         DoesNotNeedExportList,
                         MakeProcedure,
-                        PutFunction, PutParam, PutVarParam,
-                        GetNthParam,
                         IsProcedure, IsConstString,
                         MakePointer, PutPointer,
                         MakeRecord, PutFieldRecord,
@@ -82,9 +80,9 @@ FROM SymbolTable IMPORT NulSym,
                         PutProcedureBuiltin, PutProcedureInline,
                         GetSymName,
                         ResolveImports, PutDeclared,
-                        GetProcedureDeclaredForward, PutProcedureDeclaredForward,
-                        GetProcedureDeclaredProper, PutProcedureDeclaredProper,
-                        GetProcedureDeclaredDefinition, PutProcedureDeclaredDefinition,
+                        ProcedureKind,
+                        PutProcedureDeclaredTok, GetProcedureDeclaredTok,
+                        PutProcedureDefined, GetProcedureDefined,
                         MakeError, MakeErrorS,
                         DisplayTrees ;
 
@@ -970,14 +968,15 @@ BEGIN
    StartScope (ProcSym) ;
    IF CompilingDefinitionModule ()
    THEN
-      IF GetProcedureDeclaredDefinition (ProcSym) = UnknownTokenNo
+      IF GetProcedureDefined (ProcSym, DefProcedure)
       THEN
-         PutProcedureDeclaredDefinition (ProcSym, tokno)
-      ELSE
-         MetaErrorT1 (GetProcedureDeclaredDefinition (ProcSym),
+         MetaErrorT1 (GetProcedureDeclaredTok (ProcSym, DefProcedure),
                       'first declaration of procedure {%1Ea} in the definition module', ProcSym) ;
          MetaErrorT1 (tokno,
                       'duplicate declaration of procedure {%1Ea} in the definition module', ProcSym)
+      ELSE
+         PutProcedureDeclaredTok (ProcSym, DefProcedure, tokno) ;
+         PutProcedureDefined (ProcSym, DefProcedure)
       END
    ELSE
       EnterBlock (name)
@@ -1018,7 +1017,7 @@ BEGIN
    PopTtok(NameEnd, end) ;
    PopTtok(ProcSym, tok) ;
    PopTtok(NameStart, start) ;
-   IF NameEnd#NameStart
+   IF NameEnd # NameStart
    THEN
       IF end # UnknownTokenNo
       THEN
@@ -1034,13 +1033,13 @@ BEGIN
       END
    END ;
    EndScope ;
-   IF GetProcedureDeclaredProper (ProcSym) = UnknownTokenNo
+   IF GetProcedureDefined (ProcSym, ProperProcedure)
    THEN
-      PutProcedureDeclaredProper (ProcSym, tok)
-   ELSE
-      MetaErrorT1 (GetProcedureDeclaredProper (ProcSym),
+      MetaErrorT1 (GetProcedureDeclaredTok (ProcSym, ProperProcedure),
                    'first proper declaration of procedure {%1Ea}', ProcSym) ;
       MetaErrorT1 (tok, 'procedure {%1Ea} has already been declared', ProcSym)
+   ELSE
+      PutProcedureDeclaredTok (ProcSym, ProperProcedure, tok)
    END ;
    Assert (NOT CompilingDefinitionModule()) ;
    LeaveBlock
@@ -1072,13 +1071,14 @@ VAR
 BEGIN
    ProcSym := OperandT (1) ;
    tok := OperandTok (1) ;
-   IF GetProcedureDeclaredForward (ProcSym) = UnknownTokenNo
+   IF GetProcedureDefined (ProcSym, ForwardProcedure)
    THEN
-      PutProcedureDeclaredForward (ProcSym, tok)
-   ELSE
-      MetaErrorT1 (GetProcedureDeclaredForward (ProcSym),
+      MetaErrorT1 (GetProcedureDeclaredTok (ProcSym, ForwardProcedure),
                    'first forward declaration of {%1Ea}', ProcSym) ;
       MetaErrorT1 (tok, 'forward declaration of procedure {%1Ea} has already occurred', ProcSym)
+   ELSE
+      PutProcedureDeclaredTok (ProcSym, ForwardProcedure, tok) ;
+      PutProcedureDefined (ProcSym, ForwardProcedure)
    END ;
    PopN (2) ;
    EndScope ;
diff --git a/gcc/m2/gm2-compiler/P2Build.bnf b/gcc/m2/gm2-compiler/P2Build.bnf
index 3946f243134..9e1145e3f81 100644
--- a/gcc/m2/gm2-compiler/P2Build.bnf
+++ b/gcc/m2/gm2-compiler/P2Build.bnf
@@ -97,8 +97,6 @@ FROM P2SymBuild IMPORT P2StartBuildProgramModule,
                        EndBuildProcedure,
                        BuildFunction, BuildOptFunction,
                        BuildNoReturnAttribute,
-                       BuildProcedureDefinedByForward,
-                       BuildProcedureDefinedByProper,
                        EndBuildForward,
 
                        BuildPointerType,
@@ -1024,7 +1022,6 @@ ProcedureDeclaration :=                                                    % VAR
 PostProcedureHeading := ProperProcedure | ForwardDeclaration =:
 
 ForwardDeclaration := "FORWARD"                                            % Assert (IsProcedure (OperandT (1))) %
-                                                                           % BuildProcedureDefinedByForward (OperandT (1)) %
                                                                            % EndBuildForward %
                     =:
 
@@ -1044,7 +1041,10 @@ ProcedureHeading := "PROCEDURE"                                            % M2E
                                                                            % StartBuildProcedure %
                                                                            % Assert(IsProcedure(OperandT(1))) %
                                                                            % StartBuildFormalParameters  %
-                       [ FormalParameters ]                                % EndBuildFormalParameters %
+                                                                           % Assert(IsProcedure(OperandT(2))) %
+                       [ FormalParameters
+                                                                           % Assert(IsProcedure(OperandT(2))) %
+                                          ]                                % EndBuildFormalParameters %
                                             AttributeNoReturn
                                                                            % BuildProcedureHeading %
                      )
@@ -1057,8 +1057,12 @@ DefProcedureHeading := "PROCEDURE"                                         % M2E
                         ( Ident
                                                                            % StartBuildProcedure %
                                                                            % Assert(IsProcedure(OperandT(1))) %
+                                                                           % DisplayStack %
                                                                            % StartBuildFormalParameters  %
-                          [ DefFormalParameters ]                          % EndBuildFormalParameters %
+                                                                           % DisplayStack %
+                          [ DefFormalParameters                            % DisplayStack %
+                                                ]                          % DisplayStack %
+                                                                           % EndBuildFormalParameters %
                                                   AttributeNoReturn
                                                                            % BuildProcedureHeading %
                         )                                                  % M2Error.LeaveErrorScope %
@@ -1068,7 +1072,7 @@ AttributeNoReturn := [ "<*"                                                % Pus
                             Ident                                          % PopAuto %
                                                                            % checkReturnAttribute %
                                                                            % Assert(IsProcedure(OperandT(1))) %
-                                                                           % BuildNoReturnAttribute (OperandT(1)) %
+                                                                           % BuildNoReturnAttribute %
                                    "*>" ] =:
 
 AttributeUnused := [ "<*"                                                  % PushAutoOn %
@@ -1080,7 +1084,6 @@ AttributeUnused := [ "<*"                                                  % Pus
 -- error messages
 
 ProcedureBlock :=                                                          % Assert(IsProcedure(OperandT(1))) %
-                                                                           % BuildProcedureDefinedByProper (OperandT (1)) %
                   {                                                        % Assert(IsProcedure(OperandT(1))) %
                     Declaration                                            % Assert(IsProcedure(OperandT(1))) %
                                 } [ "BEGIN" ProcedureBlockBody ] "END"     % Assert(IsProcedure(OperandT(1))) %
@@ -1117,7 +1120,8 @@ DefFormalParameters := "("
                         [ DefMultiFPSection ]                              % VAR n: CARDINAL; %
                                                                            % PopT(n) ; (* remove param count *) %
                         ")"
-                        FormalReturn                                       % PushT(n) ; (* restore param count *) %
+                        FormalReturn                                       % PushT(n) ; (* restore param count *)
+                                                                             Annotate ("%1d||running total of no. of parameters") %
                      =:
 
 DefMultiFPSection := DefExtendedFP |
@@ -1127,7 +1131,8 @@ FormalParameters := "("
                     [ MultiFPSection ]                                     % VAR n: CARDINAL; %
                                                                            % PopT(n) ; (* remove param count *) %
                     ")"
-                    FormalReturn                                           % PushT(n) ; (* restore param count *) %
+                    FormalReturn                                           % PushT(n) ; (* restore param count *) ;
+                                                                             Annotate ("%1d||running total of no. of parameters") %
                   =:
 
 MultiFPSection := ExtendedFP |
@@ -1147,6 +1152,7 @@ OptArg := "["                                                              % VAR
                                                                            % PushT(NulTok) %
               Ident                                                        % PushT(1) %
                     ":" FormalType                                         % PushT(n) %
+                                                                           % Annotate ("%1d||running total of no. of parameters") %
                                                                            % BuildFPSection %
                                                                            % BuildOptArg %
                                    [ "=" ConstExpression ]
@@ -1157,6 +1163,7 @@ DefOptArg := "["                                                           % VAR
                                                                            % PushT(NulTok) %
               Ident                                                        % PushT(1) %
                     ":" FormalType                                         % PushT(n) %
+                                                                           % Annotate ("%1d||running total of no. of parameters") %
                                                                            % BuildFPSection %
                                                                            % BuildOptArg %
                                    "=" ConstExpression
@@ -1166,6 +1173,7 @@ VarFPSection := "VAR"                                                      % VAR
                                                                            % PopT(n) ; %
                                                                            % PushT(VarTok) ; %
                 IdentList ":" FormalType                                   % PushT(n) %
+                                                                           % Annotate ("%1d||running total of no. of parameters") %
                 [ AttributeUnused ]
                                                                            % BuildFPSection %
              =:
@@ -1174,6 +1182,7 @@ NonVarFPSection :=                                                         % VAR
                                                                            % PopT(n) %
                                                                            % PushT(NulTok) %
                    IdentList ":" FormalType                                % PushT(n) %
+                                                                           % Annotate ("%1d||running total of no. of parameters") %
                    [ AttributeUnused ]
                                                                            % BuildFPSection %
                 =:
diff --git a/gcc/m2/gm2-compiler/P2SymBuild.def b/gcc/m2/gm2-compiler/P2SymBuild.def
index ae736886e8a..6413f9f52b2 100644
--- a/gcc/m2/gm2-compiler/P2SymBuild.def
+++ b/gcc/m2/gm2-compiler/P2SymBuild.def
@@ -803,23 +803,7 @@ PROCEDURE EndBuildForward ;
    BuildNoReturnAttribute - provide an interface to the symbol table module.
 *)
 
-PROCEDURE BuildNoReturnAttribute (procedureSym: CARDINAL) ;
-
-
-(*
-   BuildProcedureDefinedByForward - indicates that the parameters for ProcSym have
-                                    been defined using the FORWARD keyword.
-*)
-
-PROCEDURE BuildProcedureDefinedByForward (ProcSym: CARDINAL) ;
-
-
-(*
-   BuildProcedureDefinedByProper - indicates that the parameters for ProcSym have
-                                   been defined during a proper procedure declaration.
-*)
-
-PROCEDURE BuildProcedureDefinedByProper (ProcSym: CARDINAL) ;
+PROCEDURE BuildNoReturnAttribute ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/P2SymBuild.mod b/gcc/m2/gm2-compiler/P2SymBuild.mod
index 2196b584eb5..d51fd1c931a 100644
--- a/gcc/m2/gm2-compiler/P2SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P2SymBuild.mod
@@ -42,7 +42,8 @@ FROM M2LexBuf IMPORT TokenToLocation ;
 FROM M2Reserved IMPORT ImportTok, ExportTok, QualifiedTok, UnQualifiedTok,
                        NulTok, VarTok, ArrayTok ;
 
-FROM M2MetaError IMPORT MetaError1, MetaError2, MetaErrorsT2, MetaErrors1,
+FROM M2MetaError IMPORT MetaError1, MetaError2, MetaError3,
+                        MetaErrorsT2, MetaErrors1, MetaErrorT1,
                         MetaErrors2, MetaErrorString1, MetaErrorStringT1,
                         MetaErrorString3, MetaErrorStringT3 ;
 
@@ -50,7 +51,7 @@ FROM FifoQueue IMPORT GetEnumerationFromFifoQueue, PutSubrangeIntoFifoQueue,
                       PutConstructorIntoFifoQueue, PutConstIntoFifoQueue ;
 
 FROM SymbolTable IMPORT NulSym,
-                        ModeOfAddr,
+                        ModeOfAddr, ProcedureKind,
                         StartScope, EndScope, PseudoScope,
                         GetCurrentScope, GetScope,
                         IsDeclaredIn,
@@ -106,21 +107,9 @@ FROM SymbolTable IMPORT NulSym,
                         NoOfParam,
                         PutParamName,
                         GetParam, GetDimension,
-                        AreParametersDefinedInDefinition,
-                        AreParametersDefinedInImplementation,
-                        AreProcedureParametersDefined,
-                        ParametersDefinedInDefinition,
-                        ParametersDefinedInImplementation,
-                        ProcedureParametersDefined,
-                        GetProcedureDeclaredDefinition,
-                        GetProcedureDeclaredForward,
-                        GetProcedureDeclaredProper,
-                        GetParametersDefinedByForward,
-                        GetParametersDefinedByProper,
-                        PutProcedureNoReturn,
+                        PutProcedureParametersDefined,
+                        GetProcedureParametersDefined,
                         PutProcedureParameterHeapVars,
-                        PutParametersDefinedByForward,
-                        PutParametersDefinedByProper,
                         CheckForUnImplementedExports,
                         CheckForUndeclaredExports,
                         IsHiddenTypeDeclared,
@@ -137,9 +126,16 @@ FROM SymbolTable IMPORT NulSym,
                         PutDeclared,
                         GetPackedEquivalent,
                         GetVarDeclTok,
-                        GetVarDeclFullTok,
                         PutVarDeclTok,
                         GetVarDeclTypeTok,
+                        GetProcedureKindDesc,
+                        GetProcedureDeclaredTok,
+                        GetProcedureKind,
+                        GetReturnTypeTok,
+                        SetReturnOptional,
+                        IsReturnOptional,
+                        PutProcedureNoReturn,
+                        PutProcedureDefined,
                         DisplayTrees ;
 
 FROM M2Batch IMPORT MakeDefinitionSource,
@@ -150,7 +146,7 @@ FROM M2Batch IMPORT MakeDefinitionSource,
 FROM M2Quads IMPORT PushT, PopT,
                     PushTF, PopTF, PopTtok, PushTFtok, PushTtok, PopTFtok,
                     OperandT, OperandF, OperandA, OperandTok, PopN, DisplayStack, Annotate,
-                    AddVarientFieldToList ;
+                    AddVarientFieldToList, Top ;
 
 FROM M2Comp IMPORT CompilingDefinitionModule,
                    CompilingImplementationModule,
@@ -182,6 +178,19 @@ VAR
 PROCEDURE stop ; BEGIN END stop ;
 
 
+(*
+   Debug - call stop if symbol name is name.
+*)
+
+PROCEDURE Debug (sym: CARDINAL; name: ARRAY OF CHAR) ;
+BEGIN
+   IF MakeKey (name) = GetSymName (sym)
+   THEN
+      stop
+   END
+END Debug ;
+
+
 (*
    BlockStart - tokno is the module/procedure/implementation/definition token
 *)
@@ -297,7 +306,7 @@ VAR
    ModuleSym: CARDINAL ;
    tokno    : CARDINAL ;
 BEGIN
-   PopTtok(name, tokno) ;
+   PopTtok (name, tokno) ;
    ModuleSym := MakeDefinitionSource(tokno, name) ;
    curModuleSym := ModuleSym ;
    SetCurrentModule(ModuleSym) ;
@@ -371,7 +380,7 @@ VAR
    ModuleSym: CARDINAL ;
    tokno    : CARDINAL ;
 BEGIN
-   PopTtok(name, tokno) ;
+   PopTtok (name, tokno) ;
    ModuleSym := MakeImplementationSource(tokno, name) ;
    curModuleSym := ModuleSym ;
    SetCurrentModule(ModuleSym) ;
@@ -409,8 +418,8 @@ BEGIN
    Assert(CompilingImplementationModule()) ;
    CheckForUnImplementedExports ;
    EndScope ;
-   PopT(NameStart) ;
-   PopT(NameEnd) ;
+   PopT (NameStart) ;
+   PopT (NameEnd) ;
    IF NameStart#NameEnd
    THEN
       WriteFormat1('inconsistant implementation module name %a', NameStart)
@@ -440,7 +449,7 @@ VAR
    ModuleSym: CARDINAL ;
    tokno    : CARDINAL ;
 BEGIN
-   PopTtok(name, tokno) ;
+   PopTtok (name, tokno) ;
    ModuleSym := MakeProgramSource(tokno, name) ;
    curModuleSym := ModuleSym ;
    SetCurrentModule(ModuleSym) ;
@@ -478,8 +487,8 @@ BEGIN
    Assert(CompilingProgramModule()) ;
    CheckForUndeclaredExports(GetCurrentModule()) ;  (* Not really allowed exports here though! *)
    EndScope ;
-   PopT(NameStart) ;
-   PopT(NameEnd) ;
+   PopT (NameStart) ;
+   PopT (NameEnd) ;
    IF Debugging
    THEN
       printf0('pass 2: ') ;
@@ -1169,7 +1178,8 @@ BEGIN
    i := 1 ;
    WHILE i <= n DO
       CheckForVariableThatLooksLikeKeyword (OperandT (n+1-i)) ;
-      Var := MakeVar (OperandTok (n+1-i), OperandT (n+1-i)) ;
+      tok := OperandTok (n+1-i) ;
+      Var := MakeVar (tok, OperandT (n+1-i)) ;
       AtAddress := OperandA (n+1-i) ;
       IF AtAddress # NulSym
       THEN
@@ -1177,17 +1187,10 @@ BEGIN
          PutMode (Var, LeftValue)
       END ;
       PutVarTok (Var, Type, typetok) ;
-      tok := OperandTok (n+1-i) ;
       IF tok # UnknownTokenNo
       THEN
          PutDeclared (tok, Var) ;
-         PutVarDeclTok (Var, tok) ;
-         name := OperandT (n+1-i) ;
-         (* printf3 ('declaring variable %a at tok %d Type %d \n', name, tok, Type) *)
-         (*
-         l := TokenToLocation (tok) ;
-         printf3 ('declaring variable %a at position %d location %d\n', name, tok, l)
-         *)
+         PutVarDeclTok (Var, tok)
       END ;
       INC (i)
    END ;
@@ -1330,6 +1333,7 @@ VAR
 BEGIN
    PopTtok (name, tokno) ;
    PushTtok (name, tokno) ;  (* name saved for the EndBuildProcedure name check *)
+   Annotate ("%1n|(%1d)||procedure name saved by StartBuildProcedure") ;
    ProcSym := GetDeclareSym (tokno, name) ;
    IF IsUnknown (ProcSym)
    THEN
@@ -1383,17 +1387,21 @@ PROCEDURE EndBuildProcedure ;
 VAR
    NameEnd,
    NameStart: Name ;
+   tok      : CARDINAL ;
    ProcSym  : CARDINAL ;
+   kind     : ProcedureKind ;
 BEGIN
-   PopT(NameEnd) ;
-   PopT(ProcSym) ;
-   Assert(IsProcedure(ProcSym)) ;
-   PopT(NameStart) ;
-   IF NameEnd#NameStart
+   PopT (NameEnd) ;
+   PopTtok (ProcSym, tok) ;
+   Assert (IsProcedure(ProcSym)) ;
+   kind := GetProcedureKind (ProcSym, tok) ;
+   PopT (NameStart) ;
+   IF NameEnd # NameStart
    THEN
-      WriteFormat2('end procedure name does not match beginning %a name %a', NameStart, NameEnd)
+      WriteFormat2 ('end procedure name does not match beginning %a name %a', NameStart, NameEnd)
    END ;
    PutProcedureParameterHeapVars (ProcSym) ;
+   PutProcedureDefined (ProcSym, kind) ;
    EndScope ;
    M2Error.LeaveErrorScope
 END EndBuildProcedure ;
@@ -1434,16 +1442,18 @@ END EndBuildForward ;
 
 PROCEDURE BuildProcedureHeading ;
 VAR
+   tok,
    ProcSym  : CARDINAL ;
    NameStart: Name ;
 BEGIN
    ProcSym := OperandT (1) ;
-   ProcedureParametersDefined (ProcSym) ;
-   IF CompilingDefinitionModule()
+   tok := OperandTok (1) ;
+   PutProcedureParametersDefined (ProcSym, GetProcedureKind (ProcSym, tok)) ;
+   IF CompilingDefinitionModule ()
    THEN
-      PopT(ProcSym) ;
-      Assert(IsProcedure(ProcSym)) ;
-      PopT(NameStart) ;
+      PopT (ProcSym) ;
+      Assert (IsProcedure (ProcSym)) ;
+      PopT (NameStart) ;
       EndScope
    END
 END BuildProcedureHeading ;
@@ -1482,82 +1492,46 @@ END BuildProcedureHeading ;
 
 PROCEDURE BuildFPSection ;
 VAR
+   kind,
+   curkind   : ProcedureKind ;
+   tok       : CARDINAL ;
+   top,
    ProcSym,
    ParamTotal: CARDINAL ;
 BEGIN
-   PopT(ParamTotal) ;
-   ProcSym := CARDINAL(OperandT(3+CARDINAL(OperandT(3))+2)) ;
-   PushT(ParamTotal) ;
-   Assert(IsProcedure(ProcSym)) ;
-   IF CompilingDefinitionModule()
-   THEN
-      IF AreParametersDefinedInImplementation(ProcSym)
-      THEN
-         CheckFormalParameterSection
-      ELSE
-         BuildFormalParameterSection ;
-         IF ParamTotal=0
-         THEN
-            ParametersDefinedInDefinition(ProcSym) ;
-            (* ProcedureParametersDefined(ProcSym) *)
-         END
-      END
-   ELSIF CompilingImplementationModule()
+   top := Top () ;
+   PopT (ParamTotal) ;
+   ProcSym := CARDINAL (OperandT (3 + CARDINAL (OperandT (3)) + 2)) ;
+   tok := CARDINAL (OperandTok (3 + CARDINAL (OperandT (3)) + 2)) ;
+   Debug (ProcSym, 'foo') ;
+   curkind := GetProcedureKind (ProcSym, tok) ;
+   PushT (ParamTotal) ;
+   Annotate ("%1d||running total of no. of parameters") ;
+   Assert (IsProcedure (ProcSym) OR IsProcType (ProcSym)) ;
+   Assert (top = Top ()) ;
+   ProcSym := CARDINAL (OperandT (3 + CARDINAL (OperandT (3 + 1)) + 2 + 1)) ;
+   Assert (IsProcedure (ProcSym) OR IsProcType (ProcSym)) ;
+
+   IF NOT GetProcedureParametersDefined (ProcSym, curkind)
    THEN
-      IF AreParametersDefinedInDefinition(ProcSym) OR GetParametersDefinedByForward (ProcSym)
-      THEN
-         CheckFormalParameterSection
-      ELSE
-         BuildFormalParameterSection ;
-         IF ParamTotal=0
-         THEN
-            ParametersDefinedInImplementation(ProcSym) ;
-            (* ProcedureParametersDefined(ProcSym) *)
-         END
-      END
-   ELSIF CompilingProgramModule()
-   THEN
-      IF GetParametersDefinedByForward (ProcSym) OR AreProcedureParametersDefined (ProcSym)
+      BuildFormalParameterSection (curkind)
+   END ;
+   (* Check against any previous declaration.  *)
+   FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+      IF (kind # curkind) AND GetProcedureParametersDefined (ProcSym, kind)
       THEN
-         CheckFormalParameterSection
-      ELSE
-         BuildFormalParameterSection ;
-         IF ParamTotal=0
-         THEN
-            (* ProcedureParametersDefined(ProcSym) *)
-         END
-      END
-   ELSE
-      InternalError ('should never reach this point')
+         Assert (top = Top ()) ;
+         CheckFormalParameterSection (curkind, kind) ;
+         Assert (top = Top ())
+      END ;
+      ProcSym := CARDINAL (OperandT (3 + CARDINAL (OperandT (3 + 1)) + 2 + 1)) ;
+      Assert (IsProcedure (ProcSym) OR IsProcType (ProcSym))
    END ;
-   Assert(IsProcedure(OperandT(2)))
+   RemoveFPParameters ;
+   Assert (IsProcedure (OperandT (2)))
 END BuildFPSection ;
 
 
-(*
-   BuildProcedureDefinedByForward - indicates that the parameters for ProcSym have
-                                    been defined using the FORWARD keyword.
-*)
-
-PROCEDURE BuildProcedureDefinedByForward (ProcSym: CARDINAL) ;
-BEGIN
-   Assert (IsProcedure (ProcSym)) ;
-   PutParametersDefinedByForward (ProcSym)
-END BuildProcedureDefinedByForward ;
-
-
-(*
-   BuildProcedureDefinedByProper - indicates that the parameters for ProcSym have
-                                   been defined during a proper procedure declaration.
-*)
-
-PROCEDURE BuildProcedureDefinedByProper (ProcSym: CARDINAL) ;
-BEGIN
-   Assert (IsProcedure (ProcSym)) ;
-   PutParametersDefinedByProper (ProcSym)
-END BuildProcedureDefinedByProper ;
-
-
 (*
    BuildVarArgs - indicates that the ProcSym takes varargs
                   after ParamTotal.
@@ -1572,20 +1546,23 @@ END BuildProcedureDefinedByProper ;
 
 PROCEDURE BuildVarArgs ;
 VAR
+   kind      : ProcedureKind ;
+   tok       : CARDINAL ;
    ProcSym,
    ParamTotal: CARDINAL ;
 BEGIN
-   PopT(ParamTotal) ;
-   PopT(ProcSym) ;
-   IF UsesOptArg(ProcSym)
+   PopT (ParamTotal) ;
+   PopTtok (ProcSym, tok) ;
+   kind := GetProcedureKind (ProcSym, tok) ;
+   IF UsesOptArg (ProcSym, kind)
    THEN
       WriteFormat0('procedure can use either a single optional argument or a single vararg section ... at the end of the formal parameter list')
    END ;
-   IF UsesVarArgs(ProcSym)
+   IF UsesVarArgs (ProcSym)
    THEN
       WriteFormat0('procedure can only have one vararg section ... at the end of the formal parameter list')
    END ;
-   PutUseVarArgs(ProcSym) ;
+   PutUseVarArgs (ProcSym) ;
    IF IsDefImp(GetCurrentModule())
    THEN
       IF NOT IsDefinitionForC(GetCurrentModule())
@@ -1595,8 +1572,8 @@ BEGIN
    ELSE
       WriteFormat0('varargs can only be used in the module declared as DEFINITION MODULE FOR "C"')
    END ;
-   PushT(ProcSym) ;
-   PushT(ParamTotal)
+   PushTtok (ProcSym, tok) ;
+   PushT (ParamTotal)
 END BuildVarArgs ;
 
 
@@ -1614,18 +1591,21 @@ END BuildVarArgs ;
 
 PROCEDURE BuildOptArg ;
 VAR
+   kind      : ProcedureKind ;
+   tok       : CARDINAL ;
    ProcSym,
    ParamTotal: CARDINAL ;
 BEGIN
-   PopT(ParamTotal) ;
-   PopT(ProcSym) ;
-   IF UsesVarArgs(ProcSym)
+   PopT (ParamTotal) ;
+   PopTtok (ProcSym, tok) ;
+   kind := GetProcedureKind (ProcSym, tok) ;
+   IF UsesVarArgs (ProcSym)
    THEN
       WriteFormat0('procedure can not use an optional argument after a vararg ...')
    END ;
-   PutUseOptArg(ProcSym) ;
-   PushT(ProcSym) ;
-   PushT(ParamTotal)
+   PutUseOptArg (ProcSym, kind) ;
+   PushTtok (ProcSym, tok) ;
+   PushT (ParamTotal)
 END BuildOptArg ;
 
 
@@ -1658,7 +1638,7 @@ BEGIN
    ELSE
       WriteFormat0('varargs can only be used in the module declared as DEFINITION MODULE FOR "C"')
    END ;
-   PushT(ProcSym)
+   PushT (ProcSym)
 END BuildFormalVarArgs ;
 
 
@@ -1667,9 +1647,9 @@ END BuildFormalVarArgs ;
 
                                  The Stack:
 
-                                 Entry                 Exit
+                                 Entry and Exit
 
-                          Ptr ->
+                          Ptr ->                <- Ptr
                                  +------------+
                                  | ParamTotal |
                                  |------------|
@@ -1685,20 +1665,21 @@ END BuildFormalVarArgs ;
                                  .            .
                                  .            .
                                  |------------|
-                                 | Id n       |                       <- Ptr
-                                 |------------|        +------------+
-                                 | Var / Nul  |        | ParamTotal |
-                                 |------------|        |------------|
-                                 | ProcSym    |        | ProcSym    |
-                                 |------------|        |------------|
+                                 | Id n       |
+                                 |------------|
+                                 | Var / Nul  |
+                                 |------------|
+                                 | ProcSym    |
+                                 |------------|
 *)
 
-PROCEDURE BuildFormalParameterSection ;
+PROCEDURE BuildFormalParameterSection (kind: ProcedureKind) ;
 VAR
    ParamName,
    Var,
    Array     : Name ;
    tok       : CARDINAL ;
+   pi,
    TypeTok,
    ParamTotal,
    TypeSym,
@@ -1707,64 +1688,76 @@ VAR
    ProcSym,
    i, ndim   : CARDINAL ;
 BEGIN
-   PopT(ParamTotal) ;
+   PopT (ParamTotal) ;
    PopTtok (TypeSym, TypeTok) ;
-   PopTF(Array, ndim) ;
-   Assert( (Array=ArrayTok) OR (Array=NulTok) ) ;
-   PopT(NoOfIds) ;
-   ProcSym := OperandT(NoOfIds+2) ;
-   Assert(IsProcedure(ProcSym)) ;
-   Var := OperandT(NoOfIds+1) ;
-   tok := OperandTok (NoOfIds+2) ;
-   Assert( (Var=VarTok) OR (Var=NulTok) ) ;
-   IF Array=ArrayTok
+   PopTF (Array, ndim) ;
+   Assert ((Array=ArrayTok) OR (Array=NulTok)) ;
+   PopT (NoOfIds) ;
+   ProcSym := OperandT (NoOfIds + 2) ;
+   Assert (IsProcedure (ProcSym)) ;
+   Var := OperandT (NoOfIds + 1) ;
+   tok := OperandTok (NoOfIds + 2) ;
+   Assert ((Var=VarTok) OR (Var=NulTok)) ;
+   (* Restore popped elements.  *)
+   PushT (NoOfIds) ;
+   PushTF (Array, ndim) ;
+   PushTtok (TypeSym, TypeTok) ;
+   PushT (ParamTotal) ;
+
+   IF Array = ArrayTok
    THEN
-      UnBoundedSym := MakeUnbounded(tok, TypeSym, ndim) ;
+      UnBoundedSym := MakeUnbounded (tok, TypeSym, ndim) ;
       TypeSym := UnBoundedSym
    END ;
    i := 1 ;
+   (* +4 to skip over the top restored elements.  *)
+   pi := NoOfIds + 4 ;  (* Stack index referencing stacked parameter i.  *)
    WHILE i <= NoOfIds DO
-      IF CompilingDefinitionModule() AND (NOT PedanticParamNames) AND
+      IF CompilingDefinitionModule () AND (NOT PedanticParamNames) AND
          (* We will see the parameters in the implementation module.  *)
-         ((GetMainModule()=GetCurrentModule()) OR
-          (IsHiddenTypeDeclared(GetCurrentModule()) AND ExtendedOpaque))
+         ((GetMainModule () = GetCurrentModule ()) OR
+          (IsHiddenTypeDeclared (GetCurrentModule ()) AND ExtendedOpaque))
       THEN
          ParamName := NulName
       ELSE
-         ParamName := OperandT(NoOfIds+1-i)
+         ParamName := OperandT (pi)
       END ;
-      tok := OperandTok (NoOfIds+1-i) ;
-      (* WarnStringAt (InitString ('building param pos?'), OperandTok (NoOfIds+1-i)) ;  *)
+      tok := OperandTok (pi) ;
       IF Var=VarTok
       THEN
          (* VAR parameter.  *)
-         IF NOT PutVarParam (tok, ProcSym, ParamTotal+i, ParamName,
-                             TypeSym, Array=ArrayTok, TypeTok)
+         IF NOT PutVarParam (tok, ProcSym, kind, ParamTotal + i, ParamName,
+                             TypeSym, Array = ArrayTok, TypeTok)
          THEN
-            InternalError ('problems adding a VarParameter - wrong param #?')
+            InternalError ('problems adding a VarParameter - wrong param number?')
          END
       ELSE
          (* Non VAR parameter.  *)
-         IF NOT PutParam (tok, ProcSym, ParamTotal+i, ParamName,
-                          TypeSym, Array=ArrayTok, TypeTok)
+         IF NOT PutParam (tok, ProcSym, kind, ParamTotal + i, ParamName,
+                          TypeSym, Array = ArrayTok, TypeTok)
          THEN
-            InternalError ('problems adding a Parameter - wrong param #?')
+            InternalError ('problems adding a Parameter - wrong param number?')
          END
       END ;
-      INC (i)
-   END ;
-   PopN(NoOfIds+1) ;
-   PushT(ParamTotal+NoOfIds) ;
-   Assert(IsProcedure(OperandT(2)))
+      (*
+      IF kind = ProperProcedure
+      THEN
+         PutDeclared (OperandTok (pi), GetParameterShadowVar (GetNthParam (ProcSym, kind, ParamTotal + i)))
+      END ;
+      *)
+      INC (i) ;
+      DEC (pi)
+   END
 END BuildFormalParameterSection ;
 
 
 (*
    CheckFormalParameterSection - Checks a Formal Parameter in a procedure.
+                                 The stack is unaffected.
 
                                  The Stack:
 
-                                 Entry                 Exit
+                                 Entry and Exit
 
                           Ptr ->
                                  +------------+
@@ -1782,17 +1775,18 @@ END BuildFormalParameterSection ;
                                  .            .
                                  .            .
                                  |------------|
-                                 | Id n       |                       <- Ptr
-                                 |------------|        +------------+
-                                 | Var / Nul  |        | ParamTotal |
-                                 |------------|        |------------|
-                                 | ProcSym    |        | ProcSym    |
-                                 |------------|        |------------|
+                                 | Id n       |
+                                 |------------|
+                                 | Var / Nul  |
+                                 |------------|
+                                 | ProcSym    |
+                                 |------------|
 *)
 
-PROCEDURE CheckFormalParameterSection ;
+PROCEDURE CheckFormalParameterSection (curkind, prevkind: ProcedureKind) ;
 VAR
    Array, Var: Name ;
+   isVarParam,
    Unbounded : BOOLEAN ;
    ParamI,
    ParamIType,
@@ -1800,7 +1794,6 @@ VAR
    TypeTok,
    TypeSym,
    NoOfIds,
-   ProcTok,
    ProcSym,
    pi, i, ndim: CARDINAL ;
 BEGIN
@@ -1809,86 +1802,87 @@ BEGIN
    PopTF(Array, ndim) ;
    Assert( (Array=ArrayTok) OR (Array=NulTok) ) ;
    PopT(NoOfIds) ;
-   ProcSym := OperandT(NoOfIds+2) ;
-   ProcTok := OperandTok (NoOfIds+2) ;
-   Assert(IsProcedure(ProcSym)) ;
-   Var := OperandT(NoOfIds+1) ;
+   ProcSym := OperandT (NoOfIds+2) ;
+   Assert (IsProcedure (ProcSym)) ;
+   Var := OperandT (NoOfIds+1) ;
+   Assert ((Var = NulName) OR (Var = VarTok)) ;
+   isVarParam := (Var # NulName) ;
+
+   (* Restore popped elements.  *)
+   PushT (NoOfIds) ;
+   PushTF (Array, ndim) ;
+   PushTtok (TypeSym, TypeTok) ;
+   PushT (ParamTotal) ;
+
    Assert( (Var=VarTok) OR (Var=NulTok) ) ;
    Unbounded := (Array=ArrayTok) ;  (* ARRAY OF Type, parameter.  *)
    i := 1 ;
-   pi := NoOfIds ;     (* Stack index referencing stacked parameter i.  *)
-(*
-   WriteString('No. of identifiers:') ; WriteCard(NoOfIds, 4) ; WriteLn ;
-*)
+   (* +4 to skip over the top restored elements.  *)
+   pi := NoOfIds + 4 ;  (* Stack index referencing stacked parameter i.  *)
+
    (* If there are an incorrect number of parameters specified then this
       will be detcted by EndBuildFormalParameters.  *)
    WHILE i<=NoOfIds DO
-      IF ParamTotal+i<=NoOfParam(ProcSym)
+      IF ParamTotal+i <= NoOfParam (ProcSym, prevkind)
       THEN
          (* WarnStringAt (InitString ('parampos?'), OperandTok (pi)) ;  *)
-         IF Unbounded AND (NOT IsUnboundedParam(ProcSym, ParamTotal+i))
+         IF Unbounded AND (NOT IsUnboundedParam (ProcSym, prevkind, ParamTotal+i))
          THEN
             ParameterError ('declaration of procedure {%%1a} in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
-                            'the parameter {%3Ea} was not declared as an ARRAY OF type',     (* '{%3EHa}'.  *)
+                            'the parameter {%3EHa} was not declared as an ARRAY OF type',
                             'the parameter {%3EVa} was declared as an ARRAY OF type',
-                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
-         ELSIF (NOT Unbounded) AND IsUnboundedParam(ProcSym, ParamTotal+i)
+                            ParamTotal+i, ProcSym, curkind, prevkind)
+         ELSIF (NOT Unbounded) AND IsUnboundedParam (ProcSym, prevkind, ParamTotal+i)
          THEN
             ParameterError ('declaration of procedure {%%1a} in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
-                            'the parameter {%3Ea} was declared as an ARRAY OF type',     (* '{%3EHa}'.  *)
+                            'the parameter {%3EHa} was declared as an ARRAY OF type',
                             'the parameter {%3EVa} was not declared as an ARRAY OF type',
-                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
+                            ParamTotal+i, ProcSym, curkind, prevkind)
          END ;
          IF Unbounded
          THEN
-            IF GetDimension(GetNthParam(ProcSym, ParamTotal+1))#ndim
+            IF GetDimension (GetNthParam (ProcSym, prevkind, ParamTotal+1)) # ndim
             THEN
                ParameterError ('declaration of procedure {%%1a} in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
-                               'the dynamic array parameter {%3Ea} was declared with a different of dimensions',      (* '{%3EHa}'.  *)
+                               'the dynamic array parameter {%3EHa} was declared with a different of dimensions',
                                'the dynamic array parameter {%3EVa} was declared with a different of dimensions',
-                               pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
+                               ParamTotal+i, ProcSym, curkind, prevkind)
             END
          END ;
-         IF (Var=VarTok) AND (NOT IsVarParam(ProcSym, ParamTotal+i))
+         IF isVarParam AND (NOT IsVarParam (ProcSym, prevkind, ParamTotal+i))
          THEN
             (* Expecting non VAR parameter.  *)
             ParameterError ('declaration of procedure {%%1a} in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
-                            '{%3Ea} was not declared as a {%kVAR} parameter',     (* '{%3EHa}'.  *)
+                            '{%3EHa} was not declared as a {%kVAR} parameter',
                             '{%3EVa} was declared as a {%kVAR} parameter',
-                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
-         ELSIF (Var=NulTok) AND IsVarParam(ProcSym, ParamTotal+i)
+                            ParamTotal+i, ProcSym, curkind, prevkind)
+         ELSIF (NOT isVarParam) AND IsVarParam (ProcSym, prevkind, ParamTotal+i)
          THEN
             (* Expecting VAR pamarater.  *)
             ParameterError ('declaration of procedure {%%1a} in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
-                            '{%3Ea} was declared as a {%kVAR} parameter',       (* '{%3EHa}'.  *)
+                            '{%3EHa} was declared as a {%kVAR} parameter',
                             '{%3EVa} was not declared as a {%kVAR} parameter',
-                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
+                            ParamTotal+i, ProcSym, curkind, prevkind)
          END ;
-         ParamI := GetParam(ProcSym, ParamTotal+i) ;
+         ParamI := GetNthParam (ProcSym, prevkind, ParamTotal+i) ;
          IF PedanticParamNames
          THEN
-            IF GetSymName(ParamI)#OperandT(pi)
+            IF GetSymName (ParamI) # OperandT (pi)
             THEN
                (* Different parameter names.  *)
                ParameterError ('procedure {%%1a} in the %s differs from the %s, {%%2N} parameter name is inconsistant, %s',
                             'named as {%3EVa}',
                             'named as {%3EVa}',
-                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), OperandT (pi))
-            END
-         ELSE
-            IF GetSymName (ParamI) = NulName
-            THEN
-               PutParamName (OperandTok (pi), ProcSym, ParamTotal+i, OperandT (pi), TypeTok)
+                            ParamTotal+i, ProcSym, curkind, prevkind)
             END
          END ;
-         PutDeclared (OperandTok (pi), GetParameterShadowVar (ParamI)) ;
          IF Unbounded
          THEN
             (* GetType(ParamI) yields an UnboundedSym or a PartialUnboundedSym,
                depending whether it has been resolved.. *)
-            ParamIType := GetType(GetType(ParamI))
+            ParamIType := GetType (GetType (ParamI))
          ELSE
-            ParamIType := GetType(ParamI)
+            ParamIType := GetType (ParamI)
          END ;
          IF ((SkipType(ParamIType)#SkipType(TypeSym)) OR
              (PedanticParamNames AND (ParamIType#TypeSym))) AND
@@ -1897,66 +1891,97 @@ BEGIN
          THEN
             (* Different parameter types.  *)
             ParameterError ('declaration in the %s differs from the %s, {%%2N} parameter is inconsistant, %s',
-                            'the parameter {%3Ea} was declared with a different type',  (* '{%3EHa}'.  *)
+                            'the parameter {%3EHa} was declared with a different type',
                             'the parameter {%3EVa} was declared with a different type',
-                            pi, ParamTotal+i, ProcSym, ProcTok, GetParam (ProcSym, ParamTotal+i), TypeTok)
+                            ParamTotal+i, ProcSym, curkind, prevkind)
          END
       END ;
-      INC(i) ;
-      DEC(pi)
-   END ;
-   PopN(NoOfIds+1) ;   (* +1 for the Var/Nul.  *)
-   PushT(ParamTotal+NoOfIds) ;
-   Assert(IsProcedure(OperandT(2)))
+      INC (i) ;
+      DEC (pi)
+   END
 END CheckFormalParameterSection ;
 
 
 (*
-   ParameterError - create two error strings chained together.  Both error strings
-                    commence with FmdHeader:
-                    1.  FmtHeader DefinedDesc ParamNo Param.
-                    2.  FmdHeader CurrentDesc ParamNo OperandT(ParamPtr).
-                    The FmtHeader will have a location description for the
-                    defined location and current location inserted by processing %s
-                    prior to passing the completed string to MetaError.
+   RemoveFPParameters - remove the FPSection parameters from the stack and
+                        increment the param total with the NoOfIds.
 
-                    Currently the location of the first error is fixed to the
-                    location of ProcSym.
+                        The Stack:
+
+                               Entry                 Exit
+
+                        Ptr ->
+                               +------------+
+                               | ParamTotal |
+                               |------------|
+                               | TypeSym    |
+                               |------------|
+                               | Array/Nul  |
+                               |------------|
+                               | NoOfIds    |
+                               |------------|
+                               | Id 1       |
+                               |------------|
+                               .            .
+                               .            .
+                               .            .
+                               |------------|
+                               | Id n       |                       <- Ptr
+                               |------------|        +------------+
+                               | Var / Nul  |        | ParamTotal |
+                               |------------|        |------------|
+                               | ProcSym    |        | ProcSym    |
+                               |------------|        |------------|
+*)
+
+PROCEDURE RemoveFPParameters ;
+VAR
+   ParamTotal,
+   Array,
+   TypeSym,
+   NoOfIds,
+   ProcSym   : CARDINAL ;
+BEGIN
+   PopT (ParamTotal) ;
+   PopT (TypeSym) ;
+   PopT (Array) ;
+   Assert ((Array=ArrayTok) OR (Array=NulTok)) ;
+   PopT (NoOfIds) ;
+   ProcSym := OperandT (NoOfIds+2) ;
+   Assert (IsProcedure (ProcSym)) ;
+   PopN (NoOfIds+1) ;   (* +1 for the Var/Nul.  *)
+   PushT (ParamTotal + NoOfIds) ;
+   Annotate ("%1d||running total of no. of parameters") ;
+   Assert (IsProcedure (OperandT (2)))
+END RemoveFPParameters ;
+
+
+(*
+   ParameterError - create two error strings chained together.
 *)
 
-PROCEDURE ParameterError (FmtHeader, DefinedDesc, CurrentDesc: ARRAY OF CHAR;
-                          ParamPtr, ParamNo, ProcSym, ProcTok, Param, TypeTok: CARDINAL) ;
+PROCEDURE ParameterError (FmtHeader, PrevDesc, CurDesc: ARRAY OF CHAR;
+                          ParamNo, ProcSym: CARDINAL;
+                          curkind, prevkind: ProcedureKind) ;
 VAR
-(*   parm, *)
-   Err       : CARDINAL ;
+   PrevParam,
+   CurParam   : CARDINAL ;
    CurStr,
-   DefStr,
+   PrevStr,
    Msg,
-   SrcProcSym,
-   SrcCurDecl: String ;
-BEGIN
-   SrcProcSym := GetSourceDesc (ProcSym) ;
-   SrcCurDecl := GetCurSrcDesc (ProcSym, ProcTok) ;
-   DefStr := InitString (DefinedDesc) ;
-   CurStr := InitString (CurrentDesc) ;
-   Msg := Sprintf3 (Mark (InitString (FmtHeader)), SrcProcSym, SrcCurDecl, DefStr) ;
-   MetaErrorStringT3 (GetDeclared (ProcSym), Msg, ProcSym, ParamNo, Param) ;
-(*
-   It could be improved by using the '{%3EHa}' specifier in the DefinedDesc (see
-   CheckFormalParameterSection) but this requires that the parameter declarations
-   for the definition and forward procedures are saved.  Currently they are only
-   checked against the proper procedure declaration.
-
-   WarnStringAt (InitString ('testing ProcSym decl'), GetDeclared (ProcSym)) ;
-   parm := GetParam (ProcSym, ParamNo) ;
-   WarnStringAt (InitString ('testing param ProcSym GetVarDeclTok'), GetVarDeclTok (parm)) ;
-   WarnStringAt (InitString ('testing param ProcSym GetVarDeclTypeTok'), GetVarDeclTypeTok (parm)) ;
-   WarnStringAt (InitString ('testing param ProcSym GetVarDeclFullTok'), GetVarDeclFullTok (parm)) ;
-   WarnStringAt (InitString ('testing cur pos'), MakeVirtual2Tok (OperandTok (ParamPtr), TypeTok)) ;
-*)
-   Err := MakeError (MakeVirtual2Tok (OperandTok (ParamPtr), TypeTok), OperandT (ParamPtr)) ;
-   Msg := Sprintf3 (Mark (InitString (FmtHeader)), SrcProcSym, SrcCurDecl, CurStr) ;
-   MetaErrorString3 (Msg, ProcSym, ParamNo, Err)
+   CurKindStr,
+   PrevKindStr: String ;
+BEGIN
+   CurParam := GetNthParam (ProcSym, curkind, ParamNo) ;
+   CurKindStr := GetProcedureKindDesc (curkind) ;
+   PrevKindStr := GetProcedureKindDesc (prevkind) ;
+   PrevParam := GetNthParam (ProcSym, prevkind, ParamNo) ;
+   PrevStr := InitString (PrevDesc) ;
+   CurStr := InitString (CurDesc) ;
+   Msg := Sprintf3 (Mark (InitString (FmtHeader)), CurKindStr, PrevKindStr, PrevStr) ;
+   MetaErrorString3 (Msg, ProcSym, ParamNo, PrevParam) ;
+   Msg := Sprintf3 (Mark (InitString (FmtHeader)), CurKindStr, PrevKindStr, CurStr) ;
+   MetaErrorString3 (Msg, ProcSym, ParamNo, CurParam)
 END ParameterError ;
 
 
@@ -1976,7 +2001,8 @@ END ParameterError ;
 
 PROCEDURE StartBuildFormalParameters ;
 BEGIN
-   PushT(0)
+   PushT (0) ;
+   Annotate ("%1d||running total of no. of parameters")
 END StartBuildFormalParameters ;
 
 
@@ -1986,29 +2012,30 @@ END StartBuildFormalParameters ;
                        NoOfPar is the current number of parameters.
 *)
 
-PROCEDURE ParameterMismatch (tok: CARDINAL; ProcSym: CARDINAL; NoOfPar: CARDINAL) ;
+PROCEDURE ParameterMismatch (tok: CARDINAL; ProcSym: CARDINAL;
+                             NoOfPar: CARDINAL; prevkind, curkind: ProcedureKind) ;
 VAR
    MsgCurrent,
-   MsgProcSym,
-   SrcProcSym,
-   SrcCurDecl,
-   CompProcSym,
-   CompCurrent: String ;
-BEGIN
-   SrcProcSym := GetSourceDesc (ProcSym) ;
-   SrcCurDecl := GetCurSrcDesc (ProcSym, tok) ;
-   CompProcSym := GetComparison (NoOfParam (ProcSym), NoOfPar) ;
-   CompCurrent := GetComparison (NoOfPar, NoOfParam (ProcSym)) ;
+   MsgPrev,
+   CompCur,
+   CompPrev,
+   CurDesc,
+   PrevDesc  : String ;
+BEGIN
+   CurDesc := GetProcedureKindDesc (curkind) ;
+   PrevDesc := GetProcedureKindDesc (prevkind) ;
+   CompPrev := GetComparison (NoOfParam (ProcSym, prevkind), NoOfPar) ;
+   CompCur := GetComparison (NoOfPar, NoOfParam (ProcSym, prevkind)) ;
    MsgCurrent := Sprintf3 (Mark (InitString ('the %s for {%%1ad} has %s parameters than the %s')),
-                           SrcCurDecl, CompCurrent, SrcProcSym) ;
-   MsgProcSym := Sprintf3 (Mark (InitString ('the %s for {%%1ad} has %s parameters than the %s')),
-                           SrcProcSym, CompProcSym, SrcCurDecl) ;
-   MetaErrorStringT1 (GetDeclared (ProcSym), MsgProcSym, ProcSym) ;
+                           CurDesc, CompCur, PrevDesc) ;
+   MsgPrev := Sprintf3 (Mark (InitString ('the %s for {%%1ad} has %s parameters than the %s')),
+                        PrevDesc, CompPrev, CurDesc) ;
+   MetaErrorStringT1 (GetProcedureDeclaredTok (ProcSym, prevkind), MsgPrev, ProcSym) ;
    MetaErrorStringT1 (tok, MsgCurrent, ProcSym) ;
-   SrcProcSym := KillString (SrcProcSym) ;
-   SrcCurDecl := KillString (SrcCurDecl) ;
-   CompProcSym := KillString (CompProcSym) ;
-   CompCurrent := KillString (CompCurrent)
+   CurDesc := KillString (CurDesc) ;
+   PrevDesc := KillString (PrevDesc) ;
+   CompCur := KillString (CompCur) ;
+   CompPrev := KillString (CompPrev)
 END ParameterMismatch ;
 
 
@@ -2030,18 +2057,27 @@ END ParameterMismatch ;
 
 PROCEDURE EndBuildFormalParameters ;
 VAR
+   kind,
+   curkind: ProcedureKind ;
    tok    : CARDINAL ;
    NoOfPar: CARDINAL ;
    ProcSym: CARDINAL ;
 BEGIN
    PopT (NoOfPar) ;
    PopTtok (ProcSym, tok) ;
-   PushT (ProcSym) ;
+   PushTtok (ProcSym, tok) ;
+   Annotate ("%1s(%1d)||procedure start symbol") ;
    Assert (IsProcedure (ProcSym)) ;
-   IF NoOfParam (ProcSym) # NoOfPar
-   THEN
-      ParameterMismatch (tok, ProcSym, NoOfPar)
+   curkind := GetProcedureKind (ProcSym, tok) ;
+   FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+      IF GetProcedureParametersDefined (ProcSym, kind) AND
+         (curkind # kind) AND (NoOfParam (ProcSym, kind) # NoOfPar)
+      THEN
+         ParameterMismatch (tok, ProcSym, NoOfPar, kind, curkind)
+      END
    END ;
+   (* All parameter seen so set procedure defined.  *)
+   PutProcedureParametersDefined (ProcSym, curkind) ;
    Assert (IsProcedure (OperandT (1)))
 END EndBuildFormalParameters ;
 
@@ -2065,103 +2101,49 @@ BEGIN
 END GetComparison ;
 
 
-(*
-   GetSourceDesc - return a description of where ProcSym was declared.
-*)
-
-PROCEDURE GetSourceDesc (ProcSym: CARDINAL) : String ;
-BEGIN
-   IF AreParametersDefinedInDefinition (ProcSym)
-   THEN
-      RETURN InitString ('definition module')
-   ELSIF GetParametersDefinedByForward (ProcSym)
-   THEN
-      RETURN InitString ('forward declaration')
-   ELSIF GetParametersDefinedByProper (ProcSym)
-   THEN
-      RETURN InitString ('proper declaration')
-   END ;
-   RETURN InitString ('')
-END GetSourceDesc ;
-
-
-(*
-   GetCurSrcDesc - return a description of where ProcSym was declared.
-*)
-
-PROCEDURE GetCurSrcDesc (ProcSym: CARDINAL; tok: CARDINAL) : String ;
-BEGIN
-   IF GetProcedureDeclaredDefinition (ProcSym) = tok
-   THEN
-      RETURN InitString ('definition module')
-   ELSIF GetProcedureDeclaredForward (ProcSym) = tok
-   THEN
-      RETURN InitString ('forward declaration')
-   ELSIF GetProcedureDeclaredProper (ProcSym) = tok
-   THEN
-      RETURN InitString ('proper declaration')
-   END ;
-   RETURN InitString ('')
-END GetCurSrcDesc ;
-
-
-(*
-   GetDeclared -
-*)
-
-PROCEDURE GetDeclared (sym: CARDINAL) : CARDINAL ;
-BEGIN
-   IF IsProcedure (sym)
-   THEN
-      IF AreParametersDefinedInDefinition (sym)
-      THEN
-         RETURN GetProcedureDeclaredDefinition (sym)
-      ELSIF GetParametersDefinedByProper (sym)
-      THEN
-         RETURN GetProcedureDeclaredProper (sym)
-      ELSIF GetParametersDefinedByForward (sym)
-      THEN
-         RETURN GetProcedureDeclaredForward (sym)
-      END
-   END ;
-   RETURN GetDeclaredMod (sym)
-END GetDeclared ;
-
-
 (*
    ReturnTypeMismatch - generate two errors showing the return type mismatches between
                         ProcSym and ReturnType at procedure location tok.
 *)
 
-PROCEDURE ReturnTypeMismatch (tok: CARDINAL; ProcSym, ReturnType: CARDINAL) ;
+PROCEDURE ReturnTypeMismatch (curtok: CARDINAL; ProcSym, CurRetType: CARDINAL;
+                              curtypetok: CARDINAL;
+                              curkind, prevkind: ProcedureKind;
+                              PrevRetType: CARDINAL) ;
 VAR
-   SrcProcSym,
-   SrcCurDecl,
+   prevtok   : CARDINAL ;
+   CurDesc,
+   PrevDesc,
    MsgCurrent,
-   MsgProcSym: String ;
+   MsgPrev   : String ;
 BEGIN
-   SrcProcSym := GetSourceDesc (ProcSym) ;
-   SrcCurDecl := GetCurSrcDesc (ProcSym, tok) ;
-   IF ReturnType = NulSym
+   CurDesc := GetProcedureKindDesc (curkind) ;
+   PrevDesc := GetProcedureKindDesc (prevkind) ;
+   prevtok := GetProcedureDeclaredTok (ProcSym, prevkind) ;
+   IF CurRetType = NulSym
    THEN
       MsgCurrent := Sprintf2 (Mark (InitString ('there is no return type for {%%1ad} specified in the %s whereas a return type is specified in the %s')),
-                              SrcCurDecl, SrcProcSym) ;
-      MsgProcSym := Sprintf2 (Mark (InitString ('there is no return type for {%%1ad} specified in the %s whereas a return type is specified in the %s')),
-                              SrcCurDecl, SrcProcSym)
-   ELSIF GetType (ProcSym) = NulSym
+                              CurDesc, PrevDesc) ;
+      MsgPrev := Sprintf2 (Mark (InitString ('there is no return type for {%%1ad} specified in the %s whereas a return type is specified in the %s')),
+                              CurDesc, PrevDesc) ;
+      prevtok := GetReturnTypeTok (ProcSym, prevkind)
+   ELSIF PrevRetType = NulSym
    THEN
       MsgCurrent := Sprintf2 (Mark (InitString ('there is no return type for {%%1ad} specified in the %s whereas a return type is specified in the %s')),
-                              SrcProcSym, SrcCurDecl) ;
-      MsgProcSym := Sprintf2 (Mark (InitString ('there is no return type for {%%1ad} specified in the %s whereas a return type is specified in the %s')),
-                              SrcProcSym, SrcCurDecl)
+                              PrevDesc, CurDesc) ;
+      MsgPrev := Sprintf2 (Mark (InitString ('there is no return type for {%%1ad} specified in the %s whereas a return type is specified in the %s')),
+                              PrevDesc, CurDesc) ;
+      curtok := curtypetok
    ELSE
       MsgCurrent := Sprintf2 (Mark (InitString ('the return type for {%%1ad} specified in the %s differs in the %s')),
-                              SrcCurDecl, SrcProcSym) ;
-      MsgProcSym := Sprintf2 (Mark (InitString ('the return type for {%%1ad} specified in the %s differs in the %s')),
-                              SrcCurDecl, SrcProcSym)
+                              CurDesc, PrevDesc) ;
+      MsgPrev := Sprintf2 (Mark (InitString ('the return type for {%%1ad} specified in the %s differs in the %s')),
+                              CurDesc, PrevDesc) ;
+      curtok := curtypetok ;
+      prevtok := GetReturnTypeTok (ProcSym, prevkind)
    END ;
-   MetaErrorStringT1 (GetDeclared (ProcSym), MsgProcSym, ProcSym) ;
-   MetaErrorStringT1 (tok, MsgCurrent, ProcSym)
+   MetaErrorStringT1 (curtok, MsgCurrent, ProcSym) ;
+   MetaErrorStringT1 (prevtok, MsgPrev, ProcSym)
 END ReturnTypeMismatch ;
 
 
@@ -2183,26 +2165,17 @@ END ReturnTypeMismatch ;
 
 PROCEDURE BuildFunction ;
 VAR
-   tok        : CARDINAL ;
-   PrevRetType,
-   RetType,
-   ProcSym    : CARDINAL ;
+   tok    : CARDINAL ;
+   ProcSym,
+   typetok: CARDINAL ;
+   RetType: CARDINAL ;
 BEGIN
-   PopT (RetType) ;
+   PopTtok (RetType, typetok) ;
    PopTtok (ProcSym, tok) ;
-   IF IsProcedure (ProcSym)
-   THEN
-      IF AreProcedureParametersDefined (ProcSym)
-      THEN
-         PrevRetType := GetType (ProcSym) ;
-         IF PrevRetType # RetType
-         THEN
-            ReturnTypeMismatch (tok, ProcSym, RetType)
-         END
-      END
-   END ;
-   PutFunction (ProcSym, RetType) ;
-   PushTtok (ProcSym, tok)
+   PushTtok (ProcSym, tok) ;
+   PutFunction (typetok, ProcSym, GetProcedureKind (ProcSym, tok), RetType) ;
+   CheckOptFunction (tok, ProcSym, GetProcedureKind (ProcSym, tok), FALSE) ;
+   CheckProcedureReturn  (RetType, typetok)
 END BuildFunction ;
 
 
@@ -2225,31 +2198,70 @@ END BuildFunction ;
 
 PROCEDURE BuildOptFunction ;
 VAR
-   TypeSym,
+   typetok,
+   tok     : CARDINAL ;
+   RetType,
    ProcSym : CARDINAL ;
 BEGIN
-   PopT(TypeSym) ;
-   PopT(ProcSym) ;
-   PutOptFunction(ProcSym, TypeSym) ;
+   PopTtok (RetType, typetok) ;
+   PopTtok (ProcSym, tok) ;
+   PutOptFunction (typetok, ProcSym, GetProcedureKind (ProcSym, tok), RetType) ;
+   CheckOptFunction (tok, ProcSym, GetProcedureKind (ProcSym, tok), TRUE) ;
+   PushTtok (ProcSym, tok)
+END BuildOptFunction ;
+
+
 (*
-   WriteString('Procedure ') ; WriteKey(GetSymName(ProcSym)) ;
-   WriteString(' has a return argument ') ;
-   WriteKey(GetSymName(TypeSym)) ;
-   WriteString(' checking ') ; WriteKey(GetSymName(GetType(ProcSym))) ;
-   WriteLn ;
+   CheckOptFunction - checks to see whether the optional return value
+                      has been set before and if it differs it will
+                      generate an error message.  It will set the
+                      new value to isopt.
 *)
-   PushT(ProcSym)
-END BuildOptFunction ;
+
+PROCEDURE CheckOptFunction (tok: CARDINAL; sym: CARDINAL; kind: ProcedureKind;
+                            isopt: BOOLEAN) ;
+VAR
+   other: ProcedureKind ;
+BEGIN
+   IF GetType (sym) # NulSym
+   THEN
+      (* Procedure sym has been declared as a function.  *)
+      FOR other := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+         IF (kind # other) AND GetProcedureParametersDefined (sym, other)
+         THEN
+            IF IsReturnOptional (sym, kind) AND (NOT isopt)
+            THEN
+               MetaErrorT1 (tok, 'procedure {%1Ea} is not declared with an optional return type here', sym) ;
+               MetaErrorT1 (GetReturnTypeTok (sym, kind),
+                            'previously procedure {%1Ea} was declared with an optional return type', sym)
+            ELSIF (NOT IsReturnOptional (sym, kind)) AND isopt
+            THEN
+               MetaErrorT1 (tok, 'procedure {%1Ea} is declared with an optional return type here', sym) ;
+               MetaErrorT1 (GetReturnTypeTok (sym, kind),
+                            'previously procedure {%1Ea} was declared without an optional return type', sym)
+            END
+         END
+      END
+   END ;
+   SetReturnOptional (sym, kind, isopt)
+END CheckOptFunction ;
 
 
 (*
    BuildNoReturnAttribute - provide an interface to the symbol table module.
 *)
 
-PROCEDURE BuildNoReturnAttribute (procedureSym: CARDINAL) ;
+PROCEDURE BuildNoReturnAttribute ;
+VAR
+   kind   : ProcedureKind ;
+   ProcSym,
+   tok    : CARDINAL ;
 BEGIN
-   Assert (IsProcedure (procedureSym)) ;
-   PutProcedureNoReturn (procedureSym, TRUE)
+   PopTtok (ProcSym, tok) ;
+   PushTtok (ProcSym, tok) ;
+   kind := GetProcedureKind (ProcSym, tok) ;
+   Assert (IsProcedure (ProcSym)) ;
+   PutProcedureNoReturn (ProcSym, kind, TRUE)
 END BuildNoReturnAttribute ;
 
 
@@ -2268,17 +2280,41 @@ END BuildNoReturnAttribute ;
 *)
 
 PROCEDURE CheckProcedure ;
+BEGIN
+   CheckProcedureReturn (NulSym, UnknownTokenNo)
+END CheckProcedure ;
+
+
+
+PROCEDURE CheckProcedureReturn (RetType: CARDINAL; typetok: CARDINAL) ;
 VAR
-   ProcSym,
-   tok    : CARDINAL ;
+   curkind,
+   kind       : ProcedureKind ;
+   tok        : CARDINAL ;
+   PrevRetType,
+   ProcSym    : CARDINAL ;
 BEGIN
    PopTtok (ProcSym, tok) ;
    PushTtok (ProcSym, tok) ;
-   IF GetType (ProcSym) # NulSym
+   Annotate ("%1s(%1d)||procedure start symbol") ;
+   IF IsProcedure (ProcSym)
    THEN
-      ReturnTypeMismatch (tok, ProcSym, NulSym)
+      curkind := GetProcedureKind (ProcSym, tok) ;
+      (* Check against any previously declared kinds.  *)
+      FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+         IF (kind # curkind) AND GetProcedureParametersDefined (ProcSym, kind)
+         THEN
+            PrevRetType := GetType (ProcSym) ;
+            IF PrevRetType # RetType
+            THEN
+               ReturnTypeMismatch (tok, ProcSym, RetType, typetok,
+                                   curkind, kind, PrevRetType)
+            END
+         END
+      END ;
+      PutFunction (tok, ProcSym, curkind, RetType)
    END
-END CheckProcedure ;
+END CheckProcedureReturn ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/P3SymBuild.mod b/gcc/m2/gm2-compiler/P3SymBuild.mod
index 1bebcf066ce..b03f439a5ea 100644
--- a/gcc/m2/gm2-compiler/P3SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P3SymBuild.mod
@@ -29,7 +29,7 @@ FROM M2Debug IMPORT Assert, WriteDebug ;
 FROM M2Error IMPORT WriteFormat0, WriteFormat1, WriteFormat2, FlushErrors, InternalError ;
 FROM M2LexBuf IMPORT GetTokenNo ;
 
-FROM SymbolTable IMPORT NulSym, ModeOfAddr,
+FROM SymbolTable IMPORT NulSym, ModeOfAddr, ProcedureKind,
                         StartScope, EndScope, GetScope, GetCurrentScope,
                         GetModuleScope,
                         SetCurrentModule, GetCurrentModule, SetFileModule,
@@ -45,7 +45,7 @@ FROM SymbolTable IMPORT NulSym, ModeOfAddr,
                         IsConst, IsConstructor, PutConst, PutConstructor,
                         PopValue, PushValue,
                         MakeTemporary, PutVar,
-                        PutSubrange,
+                        PutSubrange, GetProcedureKind,
                         GetSymName ;
 
 FROM M2Batch IMPORT MakeDefinitionSource,
@@ -692,10 +692,15 @@ END BuildVarAtAddress ;
 
 PROCEDURE BuildOptArgInitializer ;
 VAR
-   const: CARDINAL ;
+   tok    : CARDINAL ;
+   const,
+   ProcSym: CARDINAL ;
 BEGIN
-   PopT(const) ;
-   PutOptArgInit(GetCurrentScope(), const)
+   PopT (const) ;
+   PopTtok (ProcSym, tok) ;
+   Assert (IsProcedure (ProcSym)) ;
+   PushTtok (ProcSym, tok) ;
+   PutOptArgInit (GetCurrentScope (), const)
 END BuildOptArgInitializer ;
 
 
diff --git a/gcc/m2/gm2-compiler/PCSymBuild.mod b/gcc/m2/gm2-compiler/PCSymBuild.mod
index 498a0444325..f7d0ff3ecd9 100644
--- a/gcc/m2/gm2-compiler/PCSymBuild.mod
+++ b/gcc/m2/gm2-compiler/PCSymBuild.mod
@@ -52,7 +52,7 @@ FROM M2Reserved IMPORT PlusTok, MinusTok, TimesTok, DivTok, ModTok,
                        LessTok, GreaterTok, HashTok, LessGreaterTok,
                        InTok, NotTok ;
 
-FROM SymbolTable IMPORT NulSym, ModeOfAddr,
+FROM SymbolTable IMPORT NulSym, ModeOfAddr, ProcedureKind,
                         StartScope, EndScope, GetScope, GetCurrentScope,
                         GetModuleScope,
                         SetCurrentModule, GetCurrentModule, SetFileModule,
@@ -73,7 +73,7 @@ FROM SymbolTable IMPORT NulSym, ModeOfAddr,
                         CheckAnonymous,
                         IsProcedureBuiltin,
                         MakeProcType,
-                        NoOfParam,
+                        NoOfParamAny,
                         GetParam,
                         IsParameterVar, PutProcTypeParam,
                         PutProcTypeVarParam, IsParameterUnbounded,
@@ -1163,7 +1163,7 @@ BEGIN
       tok := GetTokenNo () ;
       t := MakeProcType (tok, CheckAnonymous (NulName)) ;
       i := 1 ;
-      n := NoOfParam(p) ;
+      n := NoOfParamAny (p) ;
       WHILE i<=n DO
          par := GetParam (p, i) ;
          IF IsParameterVar (par)
@@ -1176,7 +1176,7 @@ BEGIN
       END ;
       IF GetType (p) # NulSym
       THEN
-         PutFunction (t, GetType (p))
+         PutFunction (tok, t, ProperProcedure, GetType (p))
       END ;
       RETURN( t )
    ELSE
diff --git a/gcc/m2/gm2-compiler/SymbolTable.def b/gcc/m2/gm2-compiler/SymbolTable.def
index ce43df5d2c8..506444f5859 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.def
+++ b/gcc/m2/gm2-compiler/SymbolTable.def
@@ -53,6 +53,7 @@ CONST
 
 TYPE
    ModeOfAddr = (NoValue, ImmediateValue, RightValue, LeftValue) ;
+   ProcedureKind = (ProperProcedure, ForwardProcedure, DefProcedure) ;
    FamilyOperation = PROCEDURE (CARDINAL, CARDINAL, CARDINAL) ;
 
 
@@ -996,7 +997,7 @@ PROCEDURE GetNth (Sym: CARDINAL; n: CARDINAL) : CARDINAL ;
                  a parameter.
 *)
 
-PROCEDURE GetNthParam (Sym: CARDINAL; ParamNo: CARDINAL) : CARDINAL ;
+PROCEDURE GetNthParam (Sym: CARDINAL; kind: ProcedureKind; ParamNo: CARDINAL) : CARDINAL ;
 
 
 (*
@@ -1332,14 +1333,15 @@ PROCEDURE PutType (Sym: CARDINAL; TypeSymbol: CARDINAL) ;
    PutFunction - Places a TypeSym as the return type to a procedure Sym.
 *)
 
-PROCEDURE PutFunction (Sym: CARDINAL; TypeSym: CARDINAL) ;
+PROCEDURE PutFunction (tok: CARDINAL; Sym: CARDINAL; kind: ProcedureKind;
+                       TypeSym: CARDINAL) ;
 
 
 (*
    PutOptFunction - places a TypeSym as the optional return type to a procedure Sym.
 *)
 
-PROCEDURE PutOptFunction (Sym: CARDINAL; TypeSym: CARDINAL) ;
+PROCEDURE PutOptFunction (tok: CARDINAL; Sym: CARDINAL; kind: ProcedureKind; TypeSym: CARDINAL) ;
 
 
 (*
@@ -1347,43 +1349,53 @@ PROCEDURE PutOptFunction (Sym: CARDINAL; TypeSym: CARDINAL) ;
                       optional.
 *)
 
-PROCEDURE IsReturnOptional (sym: CARDINAL) : BOOLEAN ;
+PROCEDURE IsReturnOptional (sym: CARDINAL; kind: ProcedureKind) : BOOLEAN ;
+
+
+(*
+   IsReturnOptionalAny - returns TRUE if the return value for sym is
+                         optional.
+*)
+
+PROCEDURE IsReturnOptionalAny (sym: CARDINAL) : BOOLEAN ;
 
 
 (*
    PutParam - Places a Non VAR parameter ParamName with type ParamType into
-              procedure Sym. The parameter number is ParamNo.
+              procedure Sym:kind.  The parameter number is ParamNo.
               If the procedure Sym already has this parameter then
               the parameter is checked for consistancy and the
               consistancy test is returned.
 *)
 
-PROCEDURE PutParam (tok: CARDINAL; Sym: CARDINAL; ParamNo: CARDINAL;
+PROCEDURE PutParam (tok: CARDINAL; Sym: CARDINAL;
+                    kind: ProcedureKind; ParamNo: CARDINAL;
                     ParamName: Name; ParamType: CARDINAL;
                     isUnbounded: BOOLEAN; typetok: CARDINAL) : BOOLEAN ;
 
 
 (*
    PutVarParam - Places a Non VAR parameter ParamName with type
-                 ParamType into procedure Sym.
+                 ParamType into procedure Sym:kind.
                  The parameter number is ParamNo.
                  If the procedure Sym already has this parameter then
                  the parameter is checked for consistancy and the
                  consistancy test is returned.
 *)
 
-PROCEDURE PutVarParam (tok: CARDINAL; Sym: CARDINAL; ParamNo: CARDINAL;
+PROCEDURE PutVarParam (tok: CARDINAL; Sym: CARDINAL; kind: ProcedureKind;
+                       ParamNo: CARDINAL;
                        ParamName: Name; ParamType: CARDINAL;
                        isUnbounded: BOOLEAN; typetok: CARDINAL) : BOOLEAN ;
 
 
 (*
-   PutParamName - assigns a name, name, to paramater, no, of procedure,
-                  ProcSym.
+   PutParamName - assigns a name to paramater no of procedure ProcSym:kind.
 *)
 
-PROCEDURE PutParamName (tok: CARDINAL; ProcSym: CARDINAL; no: CARDINAL;
-                        name: Name; typetok: CARDINAL) ;
+PROCEDURE PutParamName (tok: CARDINAL; ProcSym: CARDINAL; kind: ProcedureKind;
+                        no: CARDINAL;
+                        name: Name; ParamType: CARDINAL; typetok: CARDINAL) ;
 
 
 (*
@@ -1407,14 +1419,15 @@ PROCEDURE IsProcedureReachable (Sym: CARDINAL) : BOOLEAN ;
                           field of procedure sym.
 *)
 
-PROCEDURE PutProcedureNoReturn (Sym: CARDINAL; value: BOOLEAN) ;
+PROCEDURE PutProcedureNoReturn (Sym: CARDINAL; kind: ProcedureKind;
+                                value: BOOLEAN) ;
 
 
 (*
    IsProcedureNoReturn - returns TRUE if this procedure never returns.
 *)
 
-PROCEDURE IsProcedureNoReturn (Sym: CARDINAL) : BOOLEAN ;
+PROCEDURE IsProcedureNoReturn (Sym: CARDINAL; kind: ProcedureKind) : BOOLEAN ;
 
 
 (*
@@ -1715,7 +1728,25 @@ PROCEDURE ForeachInnerModuleDo (Sym: CARDINAL; P: PerformOperation) ;
                 is a VAR procedure parameter.
 *)
 
-PROCEDURE IsVarParam (Sym: CARDINAL; ParamNo: CARDINAL) : BOOLEAN ;
+PROCEDURE IsVarParam (Sym: CARDINAL; kind: ProcedureKind;
+                      ParamNo: CARDINAL) : BOOLEAN ;
+
+
+(*
+   IsVarParamAny - Returns a conditional depending whether parameter ParamNo
+                   is a VAR parameter.
+*)
+
+PROCEDURE IsVarParamAny (Sym: CARDINAL; ParamNo: CARDINAL) : BOOLEAN ;
+
+
+(*
+   IsUnboundedParam - Returns a conditional depending whether parameter
+                      ParamNo is an unbounded array procedure parameter.
+*)
+
+PROCEDURE IsUnboundedParam (Sym: CARDINAL; kind: ProcedureKind;
+                            ParamNo: CARDINAL) : BOOLEAN ;
 
 
 (*
@@ -1723,7 +1754,7 @@ PROCEDURE IsVarParam (Sym: CARDINAL; ParamNo: CARDINAL) : BOOLEAN ;
                       ParamNo is an unbounded array procedure parameter.
 *)
 
-PROCEDURE IsUnboundedParam (Sym: CARDINAL; ParamNo: CARDINAL) : BOOLEAN ;
+PROCEDURE IsUnboundedParamAny (Sym: CARDINAL; ParamNo: CARDINAL) : BOOLEAN ;
 
 
 (*
@@ -1754,7 +1785,7 @@ PROCEDURE GetParameterShadowVar (sym: CARDINAL) : CARDINAL ;
    NoOfParam - Returns the number of parameters that procedure Sym contains.
 *)
 
-PROCEDURE NoOfParam (Sym: CARDINAL) : CARDINAL ;
+PROCEDURE NoOfParam (Sym: CARDINAL; kind: ProcedureKind) : CARDINAL ;
 
 
 (*
@@ -2157,8 +2188,11 @@ PROCEDURE ForeachLocalSymDo (Sym: CARDINAL; P: PerformOperation) ;
 
 
 (*
-   ForeachParamSymDo - foreach parameter symbol in procedure, Sym,
-                       perform the procedure, P.
+   ForeachParamSymDo - foreach parameter symbol in procedure Sym
+                       perform the procedure P.  Each symbol
+                       looked up will be VarParam or Param
+                       (not the shadow variable).  Every parameter
+                       from each KindProcedure is iterated over.
 *)
 
 PROCEDURE ForeachParamSymDo (Sym: CARDINAL; P: PerformOperation) ;
@@ -2196,134 +2230,79 @@ PROCEDURE IsParameter (Sym: CARDINAL) : BOOLEAN ;
 
 
 (*
-   ProcedureParametersDefined - dictates to procedure symbol, Sym,
-                                that its parameters have been defined.
-*)
-
-PROCEDURE ProcedureParametersDefined (Sym: CARDINAL) ;
-
-
-(*
-   AreProcedureParametersDefined - returns true if the parameters to procedure
-                                   symbol, Sym, have been defined.
+   GetProcedureKind - returns the procedure kind given the declaration tok.
+                      The declaration tok must match the ident tok in the
+                      procedure name.  It is only safe to call this
+                      procedure function during pass 2 onwards.
 *)
 
-PROCEDURE AreProcedureParametersDefined (Sym: CARDINAL) : BOOLEAN ;
+PROCEDURE GetProcedureKind (sym: CARDINAL; tok: CARDINAL) : ProcedureKind ;
 
 
 (*
-   ParametersDefinedInDefinition - dictates to procedure symbol, Sym,
-                                   that its parameters have been defined in
-                                   a definition module.
+   GetProcedureDeclaredTok - return the token where the
+                             declaration of procedure sym:kind
+                             occurred.
 *)
 
-PROCEDURE ParametersDefinedInDefinition (Sym: CARDINAL) ;
+PROCEDURE GetProcedureDeclaredTok (sym: CARDINAL; kind: ProcedureKind) : CARDINAL ;
 
 
 (*
-   AreParametersDefinedInDefinition - returns true if procedure symbol, Sym,
-                                      has had its parameters been defined in
-                                      a definition module.
+   PutProcedureDeclaredTok - places the tok where the
+                             declaration of procedure sym:kind
+                             occurred.
 *)
 
-PROCEDURE AreParametersDefinedInDefinition (Sym: CARDINAL) : BOOLEAN ;
+PROCEDURE PutProcedureDeclaredTok (sym: CARDINAL; kind: ProcedureKind;
+                                   tok: CARDINAL) ;
 
 
 (*
-   ParametersDefinedInImplementation - records that the parameters have been
-                                       defined in an implementation module.
+   GetReturnTypeTok - return the token where the
+                      return type procedure sym:kind was defined.
 *)
 
-PROCEDURE ParametersDefinedInImplementation (Sym: CARDINAL) ;
+PROCEDURE GetReturnTypeTok (sym: CARDINAL; kind: ProcedureKind) : CARDINAL ;
 
 
 (*
-   AreParametersDefinedInImplementation - returns true if procedure symbol, Sym,
-                                          has had its parameters been defined in
-                                          an implementation module.
+   PutReturnTypeTok - places the tok where the return type of procedure sym:kind
+                      was defined.
 *)
 
-PROCEDURE AreParametersDefinedInImplementation (Sym: CARDINAL) : BOOLEAN ;
+PROCEDURE PutReturnTypeTok (sym: CARDINAL; kind: ProcedureKind; tok: CARDINAL) ;
 
 
 (*
-   PutParametersDefinedByForward - records that the parameters have been
-                                   defined in a FORWARD declaration.
+   PutProcedureParametersDefined - the procedure symbol sym:kind
+                                   parameters have been defined.
 *)
 
-PROCEDURE PutParametersDefinedByForward (ProcSym: CARDINAL) ;
+PROCEDURE PutProcedureParametersDefined (sym: CARDINAL; kind: ProcedureKind) ;
 
 
 (*
-   GetParametersDefinedByForward - return TRUE if ProcSym has had its parameters
-                                   defined by a FORWARD declaration.
+   GetProcedureParametersDefined - returns true if procedure symbol sym:kind
+                                   parameters are defined.
 *)
 
-PROCEDURE GetParametersDefinedByForward (ProcSym: CARDINAL) : BOOLEAN ;
+PROCEDURE GetProcedureParametersDefined (sym: CARDINAL; kind: ProcedureKind) : BOOLEAN ;
 
 
 (*
-   PutParametersDefinedByProper - records that the parameters have been
-                                  defined in a FORWARD declaration.
+   PutProcedureDefined - the procedure symbol sym:kind is defined.
 *)
 
-PROCEDURE PutParametersDefinedByProper (ProcSym: CARDINAL) ;
+PROCEDURE PutProcedureDefined (sym: CARDINAL; kind: ProcedureKind) ;
 
 
 (*
-   GetParametersDefinedByProper - return TRUE if ProcSym has had its parameters
-                                  defined by a FORWARD declaration.
+   GetProcedureDefined - returns true if procedure symbol sym:kind
+                         is defined.
 *)
 
-PROCEDURE GetParametersDefinedByProper (ProcSym: CARDINAL) : BOOLEAN ;
-
-
-(*
-   GetProcedureDeclaredForward - return the token at which the forward
-                                 declaration procedure occurred.
-*)
-
-PROCEDURE GetProcedureDeclaredForward (sym: CARDINAL) : CARDINAL ;
-
-
-(*
-   PutProcedureDeclaredForward - places the tok to which the forward
-                                 declaration procedure occurred.
-*)
-
-PROCEDURE PutProcedureDeclaredForward (sym: CARDINAL; tok: CARDINAL) ;
-
-
-(*
-   GetProcedureDeclaredProper - return the token at which the forward
-                                declaration procedure occurred.
-*)
-
-PROCEDURE GetProcedureDeclaredProper (sym: CARDINAL) : CARDINAL ;
-
-
-(*
-   PutProcedureDeclaredProper - places the tok to which the forward
-                                declaration procedure occurred.
-*)
-
-PROCEDURE PutProcedureDeclaredProper (sym: CARDINAL; tok: CARDINAL) ;
-
-
-(*
-   GetProcedureDeclaredDefinition - return the token at which the forward
-                                    declaration procedure occurred.
-*)
-
-PROCEDURE GetProcedureDeclaredDefinition (sym: CARDINAL) : CARDINAL ;
-
-
-(*
-   PutProcedureDeclaredDefinition - places the tok to which the forward
-                                    declaration procedure occurred.
-*)
-
-PROCEDURE PutProcedureDeclaredDefinition (sym: CARDINAL; tok: CARDINAL) ;
+PROCEDURE GetProcedureDefined (sym: CARDINAL; kind: ProcedureKind) : BOOLEAN ;
 
 
 (*
@@ -2350,14 +2329,14 @@ PROCEDURE UsesVarArgs (Sym: CARDINAL) : BOOLEAN ;
                   uses an optarg.
 *)
 
-PROCEDURE PutUseOptArg (Sym: CARDINAL) ;
+PROCEDURE PutUseOptArg (Sym: CARDINAL; kind: ProcedureKind) ;
 
 
 (*
    UsesOptArg - returns TRUE if procedure, Sym, uses varargs.
 *)
 
-PROCEDURE UsesOptArg (Sym: CARDINAL) : BOOLEAN ;
+PROCEDURE UsesOptArg (Sym: CARDINAL; kind: ProcedureKind) : BOOLEAN ;
 
 
 (*
@@ -2365,7 +2344,7 @@ PROCEDURE UsesOptArg (Sym: CARDINAL) : BOOLEAN ;
                    procedure, ProcSym.
 *)
 
-PROCEDURE PutOptArgInit (ProcSym, Sym: CARDINAL) ;
+PROCEDURE PutOptArgInit (ProcSym: CARDINAL; Sym: CARDINAL) ;
 
 
 (*
@@ -2981,10 +2960,10 @@ PROCEDURE PushSize (Sym: CARDINAL) ;
 
 
 (*
-   PushOffset - pushes the Offset of Sym.
+   PopSize - pops the ALU stack into Size of Sym.
 *)
 
-PROCEDURE PushOffset (Sym: CARDINAL) ;
+PROCEDURE PopSize (Sym: CARDINAL) ;
 
 
 (*
@@ -2994,30 +2973,6 @@ PROCEDURE PushOffset (Sym: CARDINAL) ;
 PROCEDURE PushValue (Sym: CARDINAL) ;
 
 
-(*
-   PushParamSize - push the size of parameter, ParamNo,
-                   of procedure Sym onto the ALU stack.
-*)
-
-PROCEDURE PushParamSize (Sym: CARDINAL; ParamNo: CARDINAL) ;
-
-
-(*
-   PushSumOfLocalVarSize - push the total size of all local variables
-                           onto the ALU stack.
-*)
-
-PROCEDURE PushSumOfLocalVarSize (Sym: CARDINAL) ;
-
-
-(*
-   PushSumOfParamSize - push the total size of all parameters onto
-                        the ALU stack.
-*)
-
-PROCEDURE PushSumOfParamSize (Sym: CARDINAL) ;
-
-
 (*
    PushVarSize - pushes the size of a variable, Sym.
                  The runtime size of Sym will depend upon its addressing mode,
@@ -3038,28 +2993,6 @@ PROCEDURE PushVarSize (Sym: CARDINAL) ;
 PROCEDURE PopValue (Sym: CARDINAL) ;
 
 
-(*
-   PopSize - pops the ALU stack into Size of Sym.
-*)
-
-PROCEDURE PopSize (Sym: CARDINAL) ;
-
-
-(*
-   PopOffset - pops the ALU stack into Offset of Sym.
-*)
-
-PROCEDURE PopOffset (Sym: CARDINAL) ;
-
-
-(*
-   PopSumOfParamSize - pop the total value on the ALU stack as the
-                       sum of all parameters.
-*)
-
-PROCEDURE PopSumOfParamSize (Sym: CARDINAL) ;
-
-
 (*
    IsObject - returns TRUE if the symbol is an object symbol.
 *)
@@ -3498,4 +3431,51 @@ PROCEDURE PutVarDeclTok (sym: CARDINAL; vartok: CARDINAL) ;
 PROCEDURE GetVarDeclFullTok (sym: CARDINAL) : CARDINAL ;
 
 
+(*
+   IsProcedureAnyNoReturn - return TRUE if any of the defined kinds
+                            of procedure sym is declared no return.
+*)
+
+PROCEDURE IsProcedureAnyNoReturn (sym: CARDINAL) : BOOLEAN ;
+
+
+(*
+   GetNthParamAny - returns the nth parameter from the order
+                    proper procedure, forward declaration
+                    or definition module procedure.
+*)
+
+PROCEDURE GetNthParamAny (sym: CARDINAL; ParamNo: CARDINAL) : CARDINAL ;
+
+
+(*
+   NoOfParamAny - return the number of parameters for sym.
+*)
+
+PROCEDURE NoOfParamAny (sym: CARDINAL) : CARDINAL ;
+
+
+(*
+   SetReturnOptional - sets the ReturnOptional field in the Procedure:kind or
+                       ProcType symboltable entry.
+*)
+
+PROCEDURE SetReturnOptional (sym: CARDINAL; kind: ProcedureKind;
+                             isopt: BOOLEAN) ;
+
+
+(*
+   UsesOptArgAny - returns TRUE if procedure, Sym, uses varargs.
+*)
+
+PROCEDURE UsesOptArgAny (Sym: CARDINAL) : BOOLEAN ;
+
+
+(*
+   GetProcedureKindDesc - return a string describing kind.
+*)
+
+PROCEDURE GetProcedureKindDesc (kind: ProcedureKind) : String ;
+
+
 END SymbolTable.
diff --git a/gcc/m2/gm2-compiler/SymbolTable.mod b/gcc/m2/gm2-compiler/SymbolTable.mod
index 8fed8b3fc5d..5ef71ea9bad 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.mod
+++ b/gcc/m2/gm2-compiler/SymbolTable.mod
@@ -78,7 +78,7 @@ FROM SymbolKey IMPORT NulKey, SymbolTree, IsSymbol,
                       DoesTreeContainAny, ForeachNodeDo, ForeachNodeConditionDo,
                       NoOfNodes ;
 
-FROM M2Base IMPORT MixTypes, InitBase, Char, Integer, LongReal,
+FROM M2Base IMPORT MixTypes, MixTypesDecl, InitBase, Char, Integer, LongReal,
                    Cardinal, LongInt, LongCard, ZType, RType ;
 
 FROM M2System IMPORT Address ;
@@ -121,9 +121,12 @@ CONST
    UnboundedAddressName = "_m2_contents" ;
    UnboundedHighName    = "_m2_high_%d" ;
 
-   BreakSym             = 8496 ;
+   BreakSym             = 203 ;
 
 TYPE
+   ProcAnyBoolean = PROCEDURE (CARDINAL, ProcedureKind) : BOOLEAN ;
+   ProcAnyCardinal = PROCEDURE (CARDINAL, ProcedureKind) : CARDINAL ;
+
    ConstLitPoolEntry = POINTER TO RECORD
                                      sym      : CARDINAL ;
                                      tok      : CARDINAL ;
@@ -154,12 +157,6 @@ TYPE
               ModDeclared: CARDINAL ;
            END ;
 
-   ProcedureDecl = RECORD
-                      Forward,                (* The token locations for     *)
-                      Definition,             (* each potential procedure    *)
-                      Proper    : CARDINAL ;  (* declaration.                *)
-                   END ;
-
    VarDecl = RECORD
                 FullTok,
                 VarTok,
@@ -374,47 +371,34 @@ TYPE
                             NDim: CARDINAL ;  (* dimensions associated       *)
                          END ;
 
-   SymProcedure
+   ProcedureDeclaration
           = RECORD
-               name          : Name ;       (* Index into name array, name   *)
-                                            (* of procedure.                 *)
                ListOfParam   : List ;       (* Contains a list of all the    *)
                                             (* parameters in this procedure. *)
+               Defined       : BOOLEAN ;    (* Has the procedure been        *)
+                                            (* declared yet?                 *)
                ParamDefined  : BOOLEAN ;    (* Have the parameters been      *)
                                             (* defined yet?                  *)
-               DefinedInDef  : BOOLEAN ;    (* Were the parameters defined   *)
-                                            (* in the Definition module?     *)
-                                            (* Note that this depends on     *)
-                                            (* whether the compiler has read *)
-                                            (* the .def or .mod first.       *)
-                                            (* The second occurence is       *)
-                                            (* compared to the first.        *)
-               DefinedInImp  : BOOLEAN ;    (* Were the parameters defined   *)
-                                            (* in the Implementation module? *)
-                                            (* Note that this depends on     *)
-                                            (* whether the compiler has read *)
-                                            (* the .def or .mod first.       *)
-                                            (* The second occurence is       *)
-                                            (* compared to the first.        *)
-               DefinedByProper,             (* Were the parameters defined   *)
-               DefinedByForward,            (* by a FORWARD declaration?     *)
                HasVarArgs    : BOOLEAN ;    (* Does this procedure use ... ? *)
                HasOptArg     : BOOLEAN ;    (* Does this procedure use [ ] ? *)
-               OptArgInit    : CARDINAL ;   (* The optarg initial value.     *)
-               IsBuiltin     : BOOLEAN ;    (* Was it declared __BUILTIN__ ? *)
-               BuiltinName   : Name ;       (* name of equivalent builtin    *)
-               IsInline      : BOOLEAN ;    (* Was it declared __INLINE__ ?  *)
                IsNoReturn    : BOOLEAN ;    (* Attribute noreturn ?          *)
                ReturnOptional: BOOLEAN ;    (* Is the return value optional? *)
+               ReturnTypeTok,
+               ProcedureTok  : CARDINAL ;   (* Token pos of procedure name.  *)
+            END ;
+
+   SymProcedure
+          = RECORD
+               name          : Name ;       (* Index into name array, name   *)
+                                            (* of procedure.                 *)
+               Decl          : ARRAY ProcedureKind OF ProcedureDeclaration ;
+               OptArgInit    : CARDINAL ;   (* The optarg initial value.     *)
                IsExtern      : BOOLEAN ;    (* Make this procedure extern.   *)
                IsPublic      : BOOLEAN ;    (* Make this procedure visible.  *)
                IsCtor        : BOOLEAN ;    (* Is this procedure a ctor?     *)
                IsMonoName    : BOOLEAN ;    (* Ignores module name prefix.   *)
-               Declared      : ProcedureDecl ;  (* Forward, definition and   *)
-                                            (* proper token positions.       *)
-               DeclaredForward,             (* The token no used to define   *)
-               DeclaredDefinition,          (* the definition, proper and    *)
-               DeclaredProper: CARDINAL ;   (* forward.                      *)
+               BuildProcType : BOOLEAN ;    (* Are we building the           *)
+                                            (* associated proctype?          *)
                Unresolved    : SymbolTree ; (* All symbols currently         *)
                                             (* unresolved in this procedure. *)
                ScopeQuad     : CARDINAL ;   (* Index into quads for scope    *)
@@ -429,9 +413,9 @@ TYPE
                                             (* and restore interrupts?       *)
                ReturnType    : CARDINAL ;   (* Return type for function.     *)
                ProcedureType : CARDINAL ;   (* Proc type for this procedure. *)
-               Offset        : CARDINAL ;   (* Location of procedure used    *)
-                                            (* in Pass 2 and if procedure    *)
-                                            (* is a syscall.                 *)
+               IsBuiltin     : BOOLEAN ;    (* Was it declared __BUILTIN__ ? *)
+               BuiltinName   : Name ;       (* name of equivalent builtin    *)
+               IsInline      : BOOLEAN ;    (* Was it declared __INLINE__ ?  *)
                LocalSymbols: SymbolTree ;   (* Contains all symbols declared *)
                                             (* within this procedure.        *)
                EnumerationScopeList: List ;
@@ -467,6 +451,7 @@ TYPE
                OptArgInit    : CARDINAL ;   (* The optarg initial value.     *)
                ReturnType    : CARDINAL ;   (* Return type for function.     *)
                ReturnOptional: BOOLEAN ;    (* Is the return value optional? *)
+               ReturnTypeTok : CARDINAL ;   (* Token of return type.         *)
                Scope         : CARDINAL ;   (* Scope of declaration.         *)
                Size          : PtrToValue ; (* Runtime size of symbol.       *)
                TotalParamSize: PtrToValue ; (* size of all parameters.       *)
@@ -1564,7 +1549,7 @@ PROCEDURE IsError (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=ErrorSym )
 END IsError ;
@@ -1599,7 +1584,7 @@ PROCEDURE IsTuple (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=TupleSym )
 END IsTuple ;
@@ -1613,7 +1598,7 @@ PROCEDURE IsObject (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=ObjectSym )
 END IsObject ;
@@ -3940,15 +3925,23 @@ END PutModuleCtorExtern ;
 
 
 (*
-   InitProcedureDecl - initializes all fields of ProcedureDecl to UnknownTokenNo.
+   InitProcedureDeclaration - initialize all the ProcedureDeclaration
+                              fields.
 *)
 
-PROCEDURE InitProcedureDecl (VAR decl: ProcedureDecl) ;
+PROCEDURE InitProcedureDeclaration (VAR decl: ProcedureDeclaration) ;
 BEGIN
-   decl.Forward := UnknownTokenNo ;
-   decl.Definition := UnknownTokenNo ;
-   decl.Proper := UnknownTokenNo
-END InitProcedureDecl ;
+   WITH decl DO
+      Defined := FALSE ;           (* Has the procedure been        *)
+                                   (* declared yet?                 *)
+      ParamDefined := FALSE ;      (* Have the parameters been      *)
+                                   (* defined yet?                  *)
+      HasVarArgs := FALSE ;        (* Does the procedure use ... ?  *)
+      HasOptArg := FALSE ;         (* Does this procedure use [ ] ? *)
+      IsNoReturn := FALSE ;        (* Declared attribute noreturn ? *)
+      ReturnOptional := FALSE      (* Is the return value optional? *)
+   END
+END InitProcedureDeclaration ;
 
 
 (*
@@ -3960,9 +3953,14 @@ PROCEDURE MakeProcedure (tok: CARDINAL; ProcedureName: Name) : CARDINAL ;
 VAR
    pSym: PtrToSymbol ;
    Sym : CARDINAL ;
+   kind: ProcedureKind ;
 BEGIN
    tok := CheckTok (tok, 'procedure') ;
    Sym := DeclareSym(tok, ProcedureName) ;
+   IF Sym = BreakSym
+   THEN
+      stop
+   END ;
    IF NOT IsError(Sym)
    THEN
       pSym := GetPsym(Sym) ;
@@ -3970,43 +3968,18 @@ BEGIN
          SymbolType := ProcedureSym ;
          WITH Procedure DO
             name := ProcedureName ;
-            InitList(ListOfParam) ;      (* Contains a list of all the    *)
-                                         (* parameters in this procedure. *)
-            ParamDefined := FALSE ;      (* Have the parameters been      *)
-                                         (* defined yet?                  *)
-            DefinedInDef := FALSE ;      (* Were the parameters defined   *)
-                                         (* in the Definition module?     *)
-                                         (* Note that this depends on     *)
-                                         (* whether the compiler has read *)
-                                         (* the .def or .mod first.       *)
-                                         (* The second occurence is       *)
-                                         (* compared to the first.        *)
-            DefinedInImp := FALSE ;      (* Were the parameters defined   *)
-                                         (* in the Implementation module? *)
-                                         (* Note that this depends on     *)
-                                         (* whether the compiler has read *)
-                                         (* the .def or .mod first.       *)
-                                         (* The second occurence is       *)
-                                         (* compared to the first.        *)
-            DefinedByProper := FALSE ;   (* Were the parameters defined   *)
-                                         (* in a proper procedure.        *)
-            DefinedByForward := FALSE ;  (* Were the parameters defined   *)
-                                         (* in a FORWARD declaration?     *)
-            HasVarArgs := FALSE ;        (* Does the procedure use ... ?  *)
-            HasOptArg := FALSE ;         (* Does this procedure use [ ] ? *)
-            OptArgInit := NulSym ;       (* The optarg initial value.     *)
-            IsBuiltin := FALSE ;         (* Was it declared __BUILTIN__ ? *)
-            BuiltinName := NulName ;     (* name of equivalent builtin    *)
-            IsInline := FALSE ;          (* Was is declared __INLINE__ ?  *)
-            IsNoReturn := FALSE ;        (* Declared attribute noreturn ? *)
-            ReturnOptional := FALSE ;    (* Is the return value optional? *)
+            FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+               InitProcedureDeclaration (Decl[kind]) ;
+               InitList (Decl[kind].ListOfParam)
+            END ;
+            OptArgInit := NulSym ;       (* The optional arg default      *)
+                                         (* value.                        *)
             IsExtern := FALSE ;          (* Make this procedure external. *)
             IsPublic := FALSE ;          (* Make this procedure visible.  *)
             IsCtor := FALSE ;            (* Is this procedure a ctor?     *)
             IsMonoName := FALSE ;        (* Overrides module name prefix. *)
-            InitProcedureDecl (Declared) ; (* The token no used to define *)
-                                         (* the definition, proper and    *)
-                                         (* forward.                      *)
+            BuildProcType := TRUE ;      (* Are we building the           *)
+                                         (* proctype associated with sym? *)
             Scope := GetCurrentScope() ; (* Scope of procedure.           *)
             InitTree(Unresolved) ;       (* All symbols currently         *)
                                          (* unresolved in this procedure. *)
@@ -4020,7 +3993,6 @@ BEGIN
             ReturnType := NulSym ;       (* Not a function yet!           *)
                                          (* The ProcType equivalent.      *)
             ProcedureType := MakeProcType (tok, NulName) ;
-            Offset := 0 ;                (* Location of procedure.        *)
             InitTree(LocalSymbols) ;
             InitList(EnumerationScopeList) ;
                                          (* Enumeration scope list which  *)
@@ -4036,6 +4008,9 @@ BEGIN
             InitList(ListOfModules) ;    (* List of all inner modules.    *)
             ExceptionFinally := FALSE ;  (* does it have an exception?    *)
             ExceptionBlock := FALSE ;    (* does it have an exception?    *)
+            IsBuiltin := FALSE ;         (* Was it declared __BUILTIN__ ? *)
+            BuiltinName := NulName ;     (* name of equivalent builtin    *)
+            IsInline := FALSE ;          (* Was is declared __INLINE__ ?  *)
             Size := InitValue() ;        (* Activation record size.       *)
             TotalParamSize
                        := InitValue() ;  (* size of all parameters.       *)
@@ -4058,7 +4033,8 @@ END MakeProcedure ;
                           field of procedure sym.
 *)
 
-PROCEDURE PutProcedureNoReturn (Sym: CARDINAL; value: BOOLEAN) ;
+PROCEDURE PutProcedureNoReturn (Sym: CARDINAL; kind: ProcedureKind;
+                                value: BOOLEAN) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -4066,7 +4042,7 @@ BEGIN
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ProcedureSym: Procedure.IsNoReturn := value
+      ProcedureSym: Procedure.Decl[kind].IsNoReturn := value
 
       ELSE
          InternalError ('expecting ProcedureSym symbol')
@@ -4079,7 +4055,7 @@ END PutProcedureNoReturn ;
    IsProcedureNoReturn - returns TRUE if this procedure never returns.
 *)
 
-PROCEDURE IsProcedureNoReturn (Sym: CARDINAL) : BOOLEAN ;
+PROCEDURE IsProcedureNoReturn (Sym: CARDINAL; kind: ProcedureKind) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -4087,7 +4063,7 @@ BEGIN
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ProcedureSym: RETURN Procedure.IsNoReturn
+      ProcedureSym: RETURN Procedure.Decl[kind].IsNoReturn
 
       ELSE
          InternalError ('expecting ProcedureSym symbol')
@@ -6899,22 +6875,24 @@ END GetNth ;
    GetNthParam - returns the n th parameter of a procedure Sym.
 *)
 
-PROCEDURE GetNthParam (Sym: CARDINAL; ParamNo: CARDINAL) : CARDINAL ;
+PROCEDURE GetNthParam (Sym: CARDINAL; kind: ProcedureKind;
+                       ParamNo: CARDINAL) : CARDINAL ;
 VAR
    pSym: PtrToSymbol ;
    i   : CARDINAL ;
 BEGIN
    IF ParamNo=0
    THEN
-      (* Demands the return type of the function *)
+      (* The return type of the function *)
       i := GetType(Sym)
    ELSE
       pSym := GetPsym(Sym) ;
       WITH pSym^ DO
          CASE SymbolType OF
 
-         ProcedureSym: i := GetItemFromList(Procedure.ListOfParam, ParamNo) |
-         ProcTypeSym : i := GetItemFromList(ProcType.ListOfParam, ParamNo)
+         ProcedureSym: i := GetItemFromList (Procedure.Decl[kind].ListOfParam,
+                                             ParamNo) |
+         ProcTypeSym : i := GetItemFromList (ProcType.ListOfParam, ParamNo)
 
          ELSE
             InternalError ('expecting ProcedureSym or ProcTypeSym')
@@ -6925,6 +6903,26 @@ BEGIN
 END GetNthParam ;
 
 
+(*
+   GetNthParamAny - returns the nth parameter from the order
+                    proper procedure, forward declaration
+                    or definition module procedure.
+*)
+
+PROCEDURE GetNthParamAny (sym: CARDINAL; ParamNo: CARDINAL) : CARDINAL ;
+VAR
+   kind: ProcedureKind ;
+BEGIN
+   FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+      IF GetProcedureParametersDefined (sym, kind)
+      THEN
+         RETURN GetNthParam (sym, kind, ParamNo)
+      END
+   END ;
+   InternalError ('no procedure kind exists')
+END GetNthParamAny ;
+
+
 (*
    The Following procedures fill in the symbol table with the
    symbol entities.
@@ -8165,7 +8163,7 @@ BEGIN
             InternalError ('expecting a Var symbol')
          END
       END ;
-      t := MixTypes(GetType(e1), GetType(e2), tok) ;
+      t := MixTypesDecl (e1, e2, GetType(e1), GetType(e2), tok) ;
       IF t#NulSym
       THEN
          Assert(NOT IsConstructor(t)) ;
@@ -8300,23 +8298,23 @@ PROCEDURE IsUnknown (Sym: WORD) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal (Sym) ;
+   AssertInRange (Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN pSym^.SymbolType=UndefinedSym
 END IsUnknown ;
 
 
 (*
-   CheckLegal - determines whether the Sym is a legal symbol.
+   AssertInRange - determines whether the Sym is a legal symbol.
 *)
 
-PROCEDURE CheckLegal (Sym: CARDINAL) ;
+PROCEDURE AssertInRange (Sym: CARDINAL) ;
 BEGIN
    IF (Sym<1) OR (Sym>FinalSymbol())
    THEN
       InternalError ('illegal symbol')
    END
-END CheckLegal ;
+END AssertInRange ;
 
 
 (*
@@ -9375,25 +9373,29 @@ END ForeachLocalSymDo ;
 
 
 (*
-   ForeachParamSymDo - foreach parameter symbol in procedure, Sym,
-                       perform the procedure, P.  Each symbol
+   ForeachParamSymDo - foreach parameter symbol in procedure Sym
+                       perform the procedure P.  Each symbol
                        looked up will be VarParam or Param
-                       (not the shadow variable).
+                       (not the shadow variable).  Every parameter
+                       from each KindProcedure is iterated over.
 *)
 
 PROCEDURE ForeachParamSymDo (Sym: CARDINAL; P: PerformOperation) ;
 VAR
+   kind : ProcedureKind ;
    param: CARDINAL ;
    p, i : CARDINAL ;
 BEGIN
    IF IsProcedure (Sym)
    THEN
-      p := NoOfParam (Sym) ;
-      i := p ;
-      WHILE i>0 DO
-         param := GetNthParam (Sym, i) ;
-         P (param) ;
-         DEC(i)
+      FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+         p := NoOfParam (Sym, kind) ;
+         i := p ;
+         WHILE i>0 DO
+            param := GetNthParam (Sym, kind, i) ;
+            P (param) ;
+            DEC(i)
+         END
       END
    END
 END ForeachParamSymDo ;
@@ -10339,7 +10341,7 @@ END IsType ;
                       optional.
 *)
 
-PROCEDURE IsReturnOptional (sym: CARDINAL) : BOOLEAN ;
+PROCEDURE IsReturnOptional (sym: CARDINAL; kind: ProcedureKind) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -10347,7 +10349,7 @@ BEGIN
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ProcedureSym: RETURN( Procedure.ReturnOptional ) |
+      ProcedureSym: RETURN( Procedure.Decl[kind].ReturnOptional ) |
       ProcTypeSym : RETURN( ProcType.ReturnOptional )
 
       ELSE
@@ -10358,11 +10360,12 @@ END IsReturnOptional ;
 
 
 (*
-   SetReturnOptional - sets the ReturnOptional field in the Procedure or
+   SetReturnOptional - sets the ReturnOptional field in the Procedure:kind or
                        ProcType symboltable entry.
 *)
 
-PROCEDURE SetReturnOptional (sym: CARDINAL; isopt: BOOLEAN) ;
+PROCEDURE SetReturnOptional (sym: CARDINAL; kind: ProcedureKind;
+                             isopt: BOOLEAN) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -10370,7 +10373,7 @@ BEGIN
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ProcedureSym: Procedure.ReturnOptional := isopt |
+      ProcedureSym: Procedure.Decl[kind].ReturnOptional := isopt |
       ProcTypeSym : ProcType.ReturnOptional := isopt
 
       ELSE
@@ -10381,44 +10384,34 @@ END SetReturnOptional ;
 
 
 (*
-   CheckOptFunction - checks to see whether the optional return value
-                      has been set before and if it differs it will
-                      generate an error message.  It will set the
-                      new value to, isopt.
+   IsReturnOptionalAny - returns TRUE if the return value for sym is
+                         optional.
 *)
 
-PROCEDURE CheckOptFunction (sym: CARDINAL; isopt: BOOLEAN) ;
+PROCEDURE IsReturnOptionalAny (sym: CARDINAL) : BOOLEAN ;
 VAR
-   n: Name ;
-   e: Error ;
+   pSym: PtrToSymbol ;
 BEGIN
-   IF GetType(sym)#NulSym
-   THEN
-      IF IsReturnOptional(sym) AND (NOT isopt)
-      THEN
-         n := GetSymName(sym) ;
-         e := NewError(GetTokenNo()) ;
-         ErrorFormat1(e, 'function (%a) has no optional return value here', n) ;
-         e := ChainError(GetDeclaredMod(sym), e) ;
-         ErrorFormat1(e, 'whereas the same function (%a) was declared to have an optional return value at this point', n)
-      ELSIF (NOT IsReturnOptional(sym)) AND isopt
-      THEN
-         n := GetSymName(sym) ;
-         e := NewError(GetTokenNo()) ;
-         ErrorFormat1(e, 'function (%a) has an optional return value', n) ;
-         e := ChainError(GetDeclaredMod(sym), e) ;
-         ErrorFormat1(e, 'whereas the same function (%a) was declared to have no optional return value at this point', n)
+   pSym := GetPsym(sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ProcedureSym: RETURN IsProcedureAnyBoolean (sym, IsReturnOptional) |
+      ProcTypeSym : RETURN ProcType.ReturnOptional
+
+      ELSE
+         InternalError ('expecting a Procedure or ProcType symbol')
       END
-   END ;
-   SetReturnOptional(sym, isopt)
-END CheckOptFunction ;
+   END
+END IsReturnOptionalAny ;
 
 
 (*
    PutFunction - Places a TypeSym as the return type to a procedure Sym.
 *)
 
-PROCEDURE PutFunction (Sym: CARDINAL; TypeSym: CARDINAL) ;
+PROCEDURE PutFunction (tok: CARDINAL; Sym: CARDINAL; kind: ProcedureKind;
+                       TypeSym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -10427,11 +10420,11 @@ BEGIN
       CASE SymbolType OF
 
       ErrorSym: |
-      ProcedureSym: CheckOptFunction(Sym, FALSE) ;
-                    Procedure.ReturnType := TypeSym ;
-                    PutFunction (Procedure.ProcedureType, TypeSym) |
-      ProcTypeSym : CheckOptFunction(Sym, FALSE) ;
-                    ProcType.ReturnType := TypeSym
+      ProcedureSym: Procedure.ReturnType := TypeSym ;
+                    Procedure.Decl[kind].ReturnTypeTok := tok ;
+                    PutFunction (tok, Procedure.ProcedureType, kind, TypeSym) |
+      ProcTypeSym : ProcType.ReturnType := TypeSym ;
+                    ProcType.ReturnTypeTok := tok ;
 
       ELSE
          InternalError ('expecting a Procedure or ProcType symbol')
@@ -10444,7 +10437,7 @@ END PutFunction ;
    PutOptFunction - places a TypeSym as the optional return type to a procedure Sym.
 *)
 
-PROCEDURE PutOptFunction (Sym: CARDINAL; TypeSym: CARDINAL) ;
+PROCEDURE PutOptFunction (tok: CARDINAL; Sym: CARDINAL; kind: ProcedureKind; TypeSym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -10453,11 +10446,12 @@ BEGIN
       CASE SymbolType OF
 
       ErrorSym: |
-      ProcedureSym: CheckOptFunction (Sym, TRUE) ;
-                    Procedure.ReturnType := TypeSym ;
-                    PutOptFunction (Procedure.ProcedureType, TypeSym) |
-      ProcTypeSym : CheckOptFunction (Sym, TRUE) ;
-                    ProcType.ReturnType := TypeSym
+      ProcedureSym: Procedure.ReturnType := TypeSym ;
+                    Procedure.Decl[kind].ReturnOptional := TRUE ;
+                    Procedure.Decl[kind].ReturnTypeTok := tok ;
+                    PutOptFunction (tok, Procedure.ProcedureType, kind, TypeSym) |
+      ProcTypeSym : ProcType.ReturnType := TypeSym ;
+                    ProcType.ReturnTypeTok := tok ;
 
       ELSE
          InternalError ('expecting a Procedure or ProcType symbol')
@@ -10473,7 +10467,9 @@ END PutOptFunction ;
 PROCEDURE MakeVariableForParam (tok      : CARDINAL;
                                 ParamName: Name;
                                 ProcSym  : CARDINAL;
+                                kind     : ProcedureKind;
                                 no       : CARDINAL;
+                                ParmType : CARDINAL;
                                 typetok  : CARDINAL) : CARDINAL ;
 VAR
    pSym       : PtrToSymbol ;
@@ -10493,14 +10489,14 @@ BEGIN
       END
    END ;
    (* Note that the parameter is now treated as a local variable.  *)
-   PutVarTok (VariableSym, GetType(GetNthParam(ProcSym, no)), typetok) ;
+   PutVarTok (VariableSym, ParmType, typetok) ;
    PutDeclared (tok, VariableSym) ;
    (*
       Normal VAR parameters have LeftValue,
       however Unbounded VAR parameters have RightValue.
       Non VAR parameters always have RightValue.
    *)
-   IF IsVarParam (ProcSym, no) AND (NOT IsUnboundedParam (ProcSym, no))
+   IF IsVarParam (ProcSym, kind, no) AND (NOT IsUnboundedParam (ProcSym, kind, no))
    THEN
       PutMode (VariableSym, LeftValue)
    ELSE
@@ -10512,13 +10508,14 @@ END MakeVariableForParam ;
 
 (*
    PutParam - Places a Non VAR parameter ParamName with type ParamType into
-              procedure Sym. The parameter number is ParamNo.
+              procedure Sym:kind.  The parameter number is ParamNo.
               If the procedure Sym already has this parameter then
               the parameter is checked for consistancy and the
               consistancy test is returned.
 *)
 
-PROCEDURE PutParam (tok: CARDINAL; Sym: CARDINAL; ParamNo: CARDINAL;
+PROCEDURE PutParam (tok: CARDINAL; Sym: CARDINAL;
+                    kind: ProcedureKind; ParamNo: CARDINAL;
                     ParamName: Name; ParamType: CARDINAL;
                     isUnbounded: BOOLEAN; typetok: CARDINAL) : BOOLEAN ;
 VAR
@@ -10526,8 +10523,9 @@ VAR
    ParSym     : CARDINAL ;
    VariableSym: CARDINAL ;
 BEGIN
-   IF ParamNo<=NoOfParam(Sym)
+   IF GetProcedureParametersDefined (Sym, kind)
    THEN
+      (* ParamNo <= NoOfParamAny (Sym) *)
       InternalError ('why are we trying to put parameters again')
    ELSE
       (* Add a new parameter *)
@@ -10543,11 +10541,14 @@ BEGIN
             InitWhereDeclaredTok(tok, At)
          END
       END ;
-      AddParameter(Sym, ParSym) ;
-      IF ParamName#NulName
+      AddParameter (Sym, kind, ParSym) ;
+      (* Only declare a parameter as a local variable if it has not been done before.
+         It might be declared during the definition module, forward declaration or
+         proper procedure.  Name mismatches are checked in P2SymBuild.mod.  *)
+      IF (ParamName # NulName) AND (GetNth (Sym, ParamNo) = NulSym)
       THEN
-         VariableSym := MakeVariableForParam(tok, ParamName, Sym,
-                                             ParamNo, typetok) ;
+         VariableSym := MakeVariableForParam (tok, ParamName, Sym, kind,
+                                              ParamNo, ParamType, typetok) ;
          IF VariableSym=NulSym
          THEN
             RETURN( FALSE )
@@ -10564,14 +10565,15 @@ END PutParam ;
 
 (*
    PutVarParam - Places a Non VAR parameter ParamName with type
-                 ParamType into procedure Sym.
+                 ParamType into procedure Sym:kind.
                  The parameter number is ParamNo.
                  If the procedure Sym already has this parameter then
                  the parameter is checked for consistancy and the
                  consistancy test is returned.
 *)
 
-PROCEDURE PutVarParam (tok: CARDINAL; Sym: CARDINAL; ParamNo: CARDINAL;
+PROCEDURE PutVarParam (tok: CARDINAL; Sym: CARDINAL; kind: ProcedureKind;
+                       ParamNo: CARDINAL;
                        ParamName: Name; ParamType: CARDINAL;
                        isUnbounded: BOOLEAN; typetok: CARDINAL) : BOOLEAN ;
 VAR
@@ -10579,7 +10581,7 @@ VAR
    ParSym     : CARDINAL ;
    VariableSym: CARDINAL ;
 BEGIN
-   IF ParamNo<=NoOfParam(Sym)
+   IF GetProcedureParametersDefined (Sym, kind)
    THEN
       InternalError ('why are we trying to put parameters again')
    ELSE
@@ -10597,11 +10599,14 @@ BEGIN
             InitWhereDeclaredTok(tok, At)
          END
       END ;
-      AddParameter(Sym, ParSym) ;
-      IF ParamName#NulName
+      AddParameter (Sym, kind, ParSym) ;
+      (* Only declare a parameter as a local variable if it has not been done before.
+         It might be declared during the definition module, forward declaration or
+         proper procedure.  Name mismatches are checked in P2SymBuild.mod.  *)
+      IF (ParamName # NulName) AND (GetNth (Sym, ParamNo) = NulSym)
       THEN
-         VariableSym := MakeVariableForParam(tok, ParamName, Sym,
-                                             ParamNo, typetok) ;
+         VariableSym := MakeVariableForParam (tok, ParamName, Sym, kind,
+                                              ParamNo, ParamType, typetok) ;
          IF VariableSym=NulSym
          THEN
             RETURN( FALSE )
@@ -10610,19 +10615,19 @@ BEGIN
             pSym^.VarParam.ShadowVar := VariableSym
          END
       END ;
-      AddProcedureProcTypeParam (Sym, ParamType, isUnbounded, TRUE) ;
-      RETURN( TRUE )
-   END
+      AddProcedureProcTypeParam (Sym, ParamType, isUnbounded, TRUE)
+   END ;
+   RETURN( TRUE )
 END PutVarParam ;
 
 
 (*
-   PutParamName - assigns a name, name, to paramater, no, of procedure,
-                  ProcSym.
+   PutParamName - assigns a name to paramater no of procedure ProcSym:kind.
 *)
 
-PROCEDURE PutParamName (tok: CARDINAL; ProcSym: CARDINAL; no: CARDINAL;
-                        name: Name; typetok: CARDINAL) ;
+PROCEDURE PutParamName (tok: CARDINAL; ProcSym: CARDINAL; kind: ProcedureKind;
+                        no: CARDINAL;
+                        name: Name; ParamType: CARDINAL; typetok: CARDINAL) ;
 VAR
    pSym  : PtrToSymbol ;
    ParSym: CARDINAL ;
@@ -10633,7 +10638,8 @@ BEGIN
       CASE SymbolType OF
 
       ErrorSym    : RETURN |
-      ProcedureSym: ParSym := GetItemFromList(Procedure.ListOfParam, no) |
+      ProcedureSym: ParSym := GetItemFromList(Procedure.Decl[kind].ListOfParam,
+                                              no) |
       ProcTypeSym : ParSym := GetItemFromList(ProcType.ListOfParam, no)
 
       ELSE
@@ -10647,16 +10653,16 @@ BEGIN
       ParamSym:    IF Param.name=NulName
                    THEN
                       Param.name := name ;
-                      Param.ShadowVar := MakeVariableForParam(tok, name, ProcSym,
-                                                              no, typetok)
+                      Param.ShadowVar := MakeVariableForParam(tok, name, ProcSym, kind,
+                                                              no, ParamType, typetok)
                    ELSE
                       InternalError ('name of parameter has already been assigned')
                    END |
       VarParamSym: IF VarParam.name=NulName
                    THEN
                       VarParam.name := name ;
-                      VarParam.ShadowVar := MakeVariableForParam(tok, name, ProcSym,
-                                                                 no, typetok)
+                      VarParam.ShadowVar := MakeVariableForParam(tok, name, ProcSym, kind,
+                                                                 no, ParamType, typetok)
                    ELSE
                       InternalError ('name of parameter has already been assigned')
                    END
@@ -10672,7 +10678,7 @@ END PutParamName ;
    AddParameter - adds a parameter ParSym to a procedure Sym.
 *)
 
-PROCEDURE AddParameter (Sym: CARDINAL; ParSym: CARDINAL) ;
+PROCEDURE AddParameter (Sym: CARDINAL; kind: ProcedureKind; ParSym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -10681,11 +10687,11 @@ BEGIN
       CASE SymbolType OF
 
       ErrorSym: |
-      ProcedureSym: PutItemIntoList(Procedure.ListOfParam, ParSym) |
-      ProcTypeSym : PutItemIntoList(ProcType.ListOfParam, ParSym)
+      ProcedureSym: PutItemIntoList (Procedure.Decl[kind].ListOfParam, ParSym) |
+      ProcTypeSym : PutItemIntoList (ProcType.ListOfParam, ParSym)
 
       ELSE
-         InternalError ('expecting a Procedure symbol')
+         InternalError ('expecting a Procedure or ProcType symbol')
       END
    END
 END AddParameter ;
@@ -10705,13 +10711,16 @@ BEGIN
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ProcedureSym: IF isVarParam
+      ProcedureSym: IF Procedure.BuildProcType
                     THEN
-                       PutProcTypeVarParam (Procedure.ProcedureType,
+                       IF isVarParam
+                       THEN
+                          PutProcTypeVarParam (Procedure.ProcedureType,
+                                               ParamType, isUnbounded)
+                       ELSE
+                          PutProcTypeParam (Procedure.ProcedureType,
                                             ParamType, isUnbounded)
-                    ELSE
-                       PutProcTypeParam (Procedure.ProcedureType,
-                                         ParamType, isUnbounded)
+                       END
                     END
 
       ELSE
@@ -10726,7 +10735,8 @@ END AddProcedureProcTypeParam ;
                 is a VAR parameter.
 *)
 
-PROCEDURE IsVarParam (Sym: CARDINAL; ParamNo: CARDINAL) : BOOLEAN ;
+PROCEDURE IsVarParam (Sym: CARDINAL; kind: ProcedureKind;
+                      ParamNo: CARDINAL) : BOOLEAN ;
 VAR
    pSym : PtrToSymbol ;
    IsVar: BOOLEAN ;
@@ -10737,7 +10747,8 @@ BEGIN
       CASE SymbolType OF
 
       ErrorSym    : |
-      ProcedureSym: IsVar := IsNthParamVar(Procedure.ListOfParam, ParamNo) |
+      ProcedureSym: IsVar := IsNthParamVar(Procedure.Decl[kind].ListOfParam,
+                                           ParamNo) |
       ProcTypeSym : IsVar := IsNthParamVar(ProcType.ListOfParam, ParamNo)
 
       ELSE
@@ -10748,6 +10759,38 @@ BEGIN
 END IsVarParam ;
 
 
+(*
+   IsVarParamAny - Returns a conditional depending whether parameter ParamNo
+                   is a VAR parameter.
+*)
+
+PROCEDURE IsVarParamAny (Sym: CARDINAL; ParamNo: CARDINAL) : BOOLEAN ;
+VAR
+   pSym: PtrToSymbol ;
+   kind: ProcedureKind ;
+BEGIN
+   pSym := GetPsym(Sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ErrorSym    : |
+      ProcedureSym: FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+                       IF GetProcedureDefined (Sym, kind)
+                       THEN
+                          RETURN IsNthParamVar (Procedure.Decl[kind].ListOfParam,
+                                                ParamNo)
+                       END
+                    END |
+      ProcTypeSym : RETURN IsNthParamVar(ProcType.ListOfParam, ParamNo)
+
+      ELSE
+         InternalError ('expecting a Procedure or ProcType symbol')
+      END
+   END ;
+   RETURN FALSE
+END IsVarParamAny ;
+
+
 (*
    IsNthParamVar - returns true if the n th parameter of the parameter list,
                    List, is a VAR parameter.
@@ -10783,18 +10826,18 @@ END IsNthParamVar ;
    NoOfParam - Returns the number of parameters that procedure Sym contains.
 *)
 
-PROCEDURE NoOfParam (Sym: CARDINAL) : CARDINAL ;
+PROCEDURE NoOfParam (Sym: CARDINAL; kind: ProcedureKind) : CARDINAL ;
 VAR
    pSym: PtrToSymbol ;
    n   : CARDINAL ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
       ErrorSym    : n := 0 |
-      ProcedureSym: n := NoOfItemsInList(Procedure.ListOfParam) |
+      ProcedureSym: n := NoOfItemsInList(Procedure.Decl[kind].ListOfParam) |
       ProcTypeSym : n := NoOfItemsInList(ProcType.ListOfParam)
 
       ELSE
@@ -10805,6 +10848,37 @@ BEGIN
 END NoOfParam ;
 
 
+(*
+   NoOfParamAny - return the number of parameters for sym.
+*)
+
+PROCEDURE NoOfParamAny (sym: CARDINAL) : CARDINAL ;
+VAR
+   kind: ProcedureKind ;
+   pSym: PtrToSymbol ;
+BEGIN
+   AssertInRange (sym) ;
+   pSym := GetPsym (sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ErrorSym    : RETURN 0 |
+      ProcedureSym: FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+                        IF GetProcedureParametersDefined (sym, kind)
+                        THEN
+                           RETURN NoOfParam (sym, kind)
+                        END
+                    END |
+      ProcTypeSym : RETURN NoOfItemsInList(ProcType.ListOfParam)
+
+      ELSE
+         InternalError ('expecting a Procedure or ProcType symbol')
+      END
+   END ;
+   RETURN 0
+END NoOfParamAny ;
+
+
 (*
    HasVarParameters - returns TRUE if procedure, p, has any VAR parameters.
 *)
@@ -10813,10 +10887,10 @@ PROCEDURE HasVarParameters (p: CARDINAL) : BOOLEAN ;
 VAR
    i, n: CARDINAL ;
 BEGIN
-   n := NoOfParam(p) ;
+   n := NoOfParamAny (p) ;
    i := 1 ;
-   WHILE i<=n DO
-      IF IsVarParam(p, i)
+   WHILE i <= n DO
+      IF IsParameterVar (GetNthParamAny (p, i))
       THEN
          RETURN TRUE
       END ;
@@ -10838,13 +10912,14 @@ PROCEDURE PutUseVarArgs (Sym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
       ErrorSym: |
-      ProcedureSym: Procedure.HasVarArgs := TRUE |
+      (* Currently can only declare var args in a definition module.  *)
+      ProcedureSym: Procedure.Decl[DefProcedure].HasVarArgs := TRUE |
       ProcTypeSym : ProcType.HasVarArgs := TRUE
 
       ELSE
@@ -10864,13 +10939,14 @@ PROCEDURE UsesVarArgs (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
       ErrorSym    : RETURN( FALSE ) |
-      ProcedureSym: RETURN( Procedure.HasVarArgs ) |
+      (* Currently can only declare var args in a definition module.  *)
+      ProcedureSym: RETURN( Procedure.Decl[DefProcedure].HasVarArgs ) |
       ProcTypeSym : RETURN( ProcType.HasVarArgs )
 
       ELSE
@@ -10885,17 +10961,17 @@ END UsesVarArgs ;
                   uses an optarg.
 *)
 
-PROCEDURE PutUseOptArg (Sym: CARDINAL) ;
+PROCEDURE PutUseOptArg (Sym: CARDINAL; kind: ProcedureKind) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
       ErrorSym: |
-      ProcedureSym: Procedure.HasOptArg := TRUE |
+      ProcedureSym: Procedure.Decl[kind].HasOptArg := TRUE |
       ProcTypeSym : ProcType.HasOptArg := TRUE
 
       ELSE
@@ -10909,18 +10985,18 @@ END PutUseOptArg ;
    UsesOptArg - returns TRUE if procedure, Sym, uses varargs.
 *)
 
-PROCEDURE UsesOptArg (Sym: CARDINAL) : BOOLEAN ;
+PROCEDURE UsesOptArg (Sym: CARDINAL; kind: ProcedureKind) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ErrorSym    : RETURN( FALSE ) |
-      ProcedureSym: RETURN( Procedure.HasOptArg ) |
-      ProcTypeSym : RETURN( ProcType.HasOptArg )
+      ErrorSym    : RETURN FALSE |
+      ProcedureSym: RETURN Procedure.Decl[kind].HasOptArg |
+      ProcTypeSym : RETURN ProcType.HasOptArg
 
       ELSE
          InternalError ('expecting a Procedure or ProcType symbol')
@@ -10929,31 +11005,51 @@ BEGIN
 END UsesOptArg ;
 
 
+(*
+   UsesOptArgAny - returns TRUE if procedure Sym:kind uses an optional argument.
+*)
+
+PROCEDURE UsesOptArgAny (Sym: CARDINAL) : BOOLEAN ;
+VAR
+   pSym: PtrToSymbol ;
+BEGIN
+   pSym := GetPsym(Sym) ;
+   WITH pSym^ DO
+      CASE SymbolType OF
+
+      ErrorSym    : RETURN FALSE |
+      ProcedureSym: RETURN IsProcedureAnyDefaultBoolean (Sym, FALSE, UsesOptArg) |
+      ProcTypeSym : RETURN ProcType.HasOptArg
+
+      ELSE
+         InternalError ('expecting a Procedure or ProcType symbol')
+      END
+   END
+END UsesOptArgAny ;
+
+
 (*
    PutOptArgInit - makes symbol, Sym, the initializer value to
                    procedure, ProcSym.
 *)
 
-PROCEDURE PutOptArgInit (ProcSym, Sym: CARDINAL) ;
+PROCEDURE PutOptArgInit (ProcSym: CARDINAL; Sym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    IF NOT IsError(ProcSym)
    THEN
-      IF UsesOptArg(ProcSym)
-      THEN
-         pSym := GetPsym(ProcSym) ;
-         WITH pSym^ DO
-            CASE SymbolType OF
+      pSym := GetPsym(ProcSym) ;
+      WITH pSym^ DO
+         CASE SymbolType OF
 
-            ErrorSym    : |
-            ProcedureSym: Procedure.OptArgInit := Sym |
-            ProcTypeSym : ProcType.OptArgInit := Sym
+         ErrorSym    : |
+         ProcedureSym: Procedure.OptArgInit := Sym |
+         ProcTypeSym : ProcType.OptArgInit := Sym
 
-            ELSE
-               InternalError ('expecting a Procedure or ProcType symbol')
-            END
+         ELSE
+            InternalError ('expecting a Procedure or ProcType symbol')
          END
       END
    END
@@ -10971,19 +11067,16 @@ VAR
 BEGIN
    IF NOT IsError(ProcSym)
    THEN
-      IF UsesOptArg(ProcSym)
-      THEN
-         pSym := GetPsym(ProcSym) ;
-         WITH pSym^ DO
-            CASE SymbolType OF
+      pSym := GetPsym(ProcSym) ;
+      WITH pSym^ DO
+         CASE SymbolType OF
 
-            ErrorSym    : |
-            ProcedureSym: RETURN( Procedure.OptArgInit ) |
-            ProcTypeSym : RETURN( ProcType.OptArgInit )
+         ErrorSym    : |
+         ProcedureSym: RETURN( Procedure.OptArgInit ) |
+         ProcTypeSym : RETURN( ProcType.OptArgInit )
 
-            ELSE
-               InternalError ('expecting a Procedure or ProcType symbol')
-            END
+         ELSE
+            InternalError ('expecting a Procedure or ProcType symbol')
          END
       END
    END ;
@@ -11138,7 +11231,7 @@ BEGIN
       therefore we must subtract the Parameter Number from local variable
       total.
    *)
-   RETURN( n-NoOfParam(Sym) )
+   RETURN( n - NoOfParamAny (Sym) )
 END NoOfLocalVar ;
 
 
@@ -11193,16 +11286,35 @@ END IsParameterUnbounded ;
                       ParamNo is an unbounded array procedure parameter.
 *)
 
-PROCEDURE IsUnboundedParam (Sym: CARDINAL; ParamNo: CARDINAL) : BOOLEAN ;
+PROCEDURE IsUnboundedParam (Sym: CARDINAL; kind: ProcedureKind;
+                            ParamNo: CARDINAL) : BOOLEAN ;
 VAR
    param: CARDINAL ;
 BEGIN
-   Assert(IsProcedure(Sym) OR IsProcType(Sym)) ;
-   param := GetNthParam(Sym, ParamNo) ;
-   RETURN( IsParameterUnbounded(param) )
+   param := GetNthParam (Sym, kind, ParamNo) ;
+   RETURN IsParameterUnbounded (param)
 END IsUnboundedParam ;
 
 
+(*
+   IsUnboundedParam - Returns a conditional depending whether parameter
+                      ParamNo is an unbounded array procedure parameter.
+*)
+
+PROCEDURE IsUnboundedParamAny (Sym: CARDINAL; ParamNo: CARDINAL) : BOOLEAN ;
+VAR
+   kind: ProcedureKind ;
+BEGIN
+   FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+      IF GetProcedureParametersDefined (Sym, kind)
+      THEN
+         RETURN IsUnboundedParam (Sym, kind, ParamNo)
+      END
+   END ;
+   InternalError ('no procedure kind exists')
+END IsUnboundedParamAny ;
+
+
 (*
    IsParameter - returns true if Sym is a parameter symbol.
 *)
@@ -11256,255 +11368,157 @@ PROCEDURE IsProcedure (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=ProcedureSym )
 END IsProcedure ;
 
 
 (*
-   ProcedureParametersDefined - dictates to procedure symbol, Sym,
-                                that its parameters have been defined.
+   PutProcedureParametersDefined - the procedure symbol sym:kind
+                                   parameters have been defined.
 *)
 
-PROCEDURE ProcedureParametersDefined (Sym: CARDINAL) ;
+PROCEDURE PutProcedureParametersDefined (sym: CARDINAL; kind: ProcedureKind) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ErrorSym    : |
-      ProcedureSym: (* Assert(NOT Procedure.ParamDefined) ; *)
-                    Procedure.ParamDefined := TRUE
-
-      ELSE
-         InternalError ('expecting a Procedure symbol')
-      END
-   END
-END ProcedureParametersDefined ;
-
-
-(*
-   AreProcedureParametersDefined - returns true if the parameters to procedure
-                                   symbol, Sym, have been defined.
-*)
-
-PROCEDURE AreProcedureParametersDefined (Sym: CARDINAL) : BOOLEAN ;
-VAR
-   pSym: PtrToSymbol ;
-BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ErrorSym    : RETURN( FALSE ) |
-      ProcedureSym: RETURN( Procedure.ParamDefined )
-
-      ELSE
-         InternalError ('expecting a Procedure symbol')
-      END
-   END
-END AreProcedureParametersDefined ;
-
-
-(*
-   ParametersDefinedInDefinition - dictates to procedure symbol, Sym,
-                                   that its parameters have been defined in
-                                   a definition module.
-*)
-
-PROCEDURE ParametersDefinedInDefinition (Sym: CARDINAL) ;
-VAR
-   pSym: PtrToSymbol ;
-BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
+   AssertInRange (sym) ;
+   pSym := GetPsym (sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
       ErrorSym    : |
-      ProcedureSym: Assert(NOT Procedure.DefinedInDef) ;
-                    Procedure.DefinedInDef := TRUE
+      ProcedureSym: Procedure.Decl[kind].ParamDefined := TRUE ;
+                    Procedure.BuildProcType := FALSE |
+      ProcTypeSym :
 
       ELSE
          InternalError ('expecting a Procedure symbol')
       END
    END
-END ParametersDefinedInDefinition ;
+END PutProcedureParametersDefined ;
 
 
 (*
-   AreParametersDefinedInDefinition - returns true if procedure symbol, Sym,
-                                      has had its parameters been defined in
-                                      a definition module.
+   GetProcedureParametersDefined - returns true if procedure symbol sym:kind
+                                   parameters are defined.
 *)
 
-PROCEDURE AreParametersDefinedInDefinition (Sym: CARDINAL) : BOOLEAN ;
+PROCEDURE GetProcedureParametersDefined (sym: CARDINAL; kind: ProcedureKind) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
+   AssertInRange (sym) ;
+   pSym := GetPsym (sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
       ErrorSym    : RETURN( FALSE ) |
-      ProcedureSym: RETURN( Procedure.DefinedInDef )
+      ProcedureSym: RETURN( Procedure.Decl[kind].ParamDefined ) |
+      ProcTypeSym : RETURN( TRUE )
 
       ELSE
          InternalError ('expecting a Procedure symbol')
       END
    END
-END AreParametersDefinedInDefinition ;
+END GetProcedureParametersDefined ;
 
 
 (*
-   ParametersDefinedInImplementation - dictates to procedure symbol, Sym,
-                                       that its parameters have been defined in
-                                       a implemtation module.
+   PutProcedureDefined - the procedure symbol sym:kind is defined.
 *)
 
-PROCEDURE ParametersDefinedInImplementation (Sym: CARDINAL) ;
+PROCEDURE PutProcedureDefined (sym: CARDINAL; kind: ProcedureKind) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
+   AssertInRange (sym) ;
+   pSym := GetPsym (sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
       ErrorSym    : |
-      ProcedureSym: Assert(NOT Procedure.DefinedInImp) ;
-                    Procedure.DefinedInImp := TRUE
+      ProcedureSym: Procedure.Decl[kind].Defined := TRUE
 
       ELSE
          InternalError ('expecting a Procedure symbol')
       END
    END
-END ParametersDefinedInImplementation ;
+END PutProcedureDefined ;
 
 
 (*
-   AreParametersDefinedInImplementation - returns true if procedure symbol, Sym,
-                                          has had its parameters been defined in
-                                          an implementation module.
+   GetProcedureDefined - returns true if procedure symbol sym:kind
+                         is defined.
 *)
 
-PROCEDURE AreParametersDefinedInImplementation (Sym: CARDINAL) : BOOLEAN ;
+PROCEDURE GetProcedureDefined (sym: CARDINAL; kind: ProcedureKind) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
+   AssertInRange (sym) ;
+   pSym := GetPsym (sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
       ErrorSym    : RETURN( FALSE ) |
-      ProcedureSym: RETURN( Procedure.DefinedInImp )
-
-      ELSE
-         InternalError ('expecting a Procedure symbol')
-      END
-   END
-END AreParametersDefinedInImplementation ;
-
-
-(*
-   PutParametersDefinedByForward - records that the parameters have been
-                                   defined in a FORWARD declaration.
-*)
-
-PROCEDURE PutParametersDefinedByForward (ProcSym: CARDINAL) ;
-VAR
-   pSym: PtrToSymbol ;
-BEGIN
-   CheckLegal (ProcSym) ;
-   pSym := GetPsym (ProcSym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ProcedureSym: Procedure.DefinedByForward := TRUE
+      ProcedureSym: RETURN( Procedure.Decl[kind].Defined )
 
       ELSE
          InternalError ('expecting a Procedure symbol')
       END
    END
-END PutParametersDefinedByForward ;
+END GetProcedureDefined ;
 
 
 (*
-   GetParametersDefinedByForward - return TRUE if ProcSym has had its parameters
-                                   defined by a FORWARD declaration.
+   IsProcedureAnyBoolean - returns the boolean result from p
+                           for any of procedure kind which is defined.
 *)
 
-PROCEDURE GetParametersDefinedByForward (ProcSym: CARDINAL) : BOOLEAN ;
+PROCEDURE IsProcedureAnyBoolean (sym: CARDINAL; p: ProcAnyBoolean) : BOOLEAN ;
 VAR
-   pSym: PtrToSymbol ;
+   kind: ProcedureKind ;
 BEGIN
-   CheckLegal (ProcSym) ;
-   pSym := GetPsym (ProcSym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ErrorSym    : RETURN( FALSE ) |
-      ProcedureSym: RETURN( Procedure.DefinedByForward )
-
-      ELSE
-         InternalError ('expecting a Procedure symbol')
+   FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+      IF GetProcedureDefined (sym, kind)
+      THEN
+         RETURN p (sym, kind)
       END
-   END
-END GetParametersDefinedByForward ;
+   END ;
+   InternalError ('no procedure kind exists')
+END IsProcedureAnyBoolean ;
 
 
 (*
-   PutParametersDefinedByProper - records that the parameters have been
-                                   defined in a FORWARD declaration.
+   IsProcedureAnyDefaultBoolean - returns the boolean result from p
+                                  for any of procedure kind which is defined.
 *)
 
-PROCEDURE PutParametersDefinedByProper (ProcSym: CARDINAL) ;
+PROCEDURE IsProcedureAnyDefaultBoolean (sym: CARDINAL; default: BOOLEAN; p: ProcAnyBoolean) : BOOLEAN ;
 VAR
-   pSym: PtrToSymbol ;
+   kind: ProcedureKind ;
 BEGIN
-   CheckLegal (ProcSym) ;
-   pSym := GetPsym (ProcSym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ProcedureSym: Procedure.DefinedByProper := TRUE
-
-      ELSE
-         InternalError ('expecting a Procedure symbol')
+   FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+      IF GetProcedureDefined (sym, kind)
+      THEN
+         RETURN p (sym, kind)
       END
-   END
-END PutParametersDefinedByProper ;
+   END ;
+   RETURN default
+END IsProcedureAnyDefaultBoolean ;
 
 
 (*
-   GetParametersDefinedByProper - return TRUE if ProcSym has had its parameters
-                                   defined by a FORWARD declaration.
+   IsProcedureAnyNoReturn - return TRUE if any of the defined kinds
+                            of procedure sym is declared no return.
 *)
 
-PROCEDURE GetParametersDefinedByProper (ProcSym: CARDINAL) : BOOLEAN ;
-VAR
-   pSym: PtrToSymbol ;
+PROCEDURE IsProcedureAnyNoReturn (sym: CARDINAL) : BOOLEAN ;
 BEGIN
-   CheckLegal (ProcSym) ;
-   pSym := GetPsym (ProcSym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ErrorSym    : RETURN( FALSE ) |
-      ProcedureSym: RETURN( Procedure.DefinedByProper )
-
-      ELSE
-         InternalError ('expecting a Procedure symbol')
-      END
-   END
-END GetParametersDefinedByProper ;
+   RETURN IsProcedureAnyDefaultBoolean (sym, FALSE, IsProcedureNoReturn)
+END IsProcedureAnyNoReturn ;
 
 
 (*
@@ -11607,7 +11621,7 @@ PROCEDURE IsPointer (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=PointerSym )
 END IsPointer ;
@@ -11621,7 +11635,7 @@ PROCEDURE IsRecord (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=RecordSym )
 END IsRecord ;
@@ -11635,7 +11649,7 @@ PROCEDURE IsArray (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=ArraySym )
 END IsArray ;
@@ -11649,7 +11663,7 @@ PROCEDURE IsEnumeration (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=EnumerationSym )
 END IsEnumeration ;
@@ -11663,7 +11677,7 @@ PROCEDURE IsUnbounded (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=UnboundedSym )
 END IsUnbounded ;
@@ -11890,7 +11904,7 @@ PROCEDURE IsSet (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=SetSym )
 END IsSet ;
@@ -11904,7 +11918,7 @@ PROCEDURE IsSetPacked (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal (Sym) ;
+   AssertInRange (Sym) ;
    pSym := GetPsym (Sym) ;
    RETURN (pSym^.SymbolType=SetSym) AND pSym^.Set.ispacked
 END IsSetPacked ;
@@ -11938,7 +11952,7 @@ PROCEDURE CheckUnbounded (Sym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
@@ -11967,7 +11981,7 @@ PROCEDURE IsOAFamily (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    RETURN( pSym^.SymbolType=OAFamilySym )
 END IsOAFamily ;
@@ -12563,15 +12577,15 @@ VAR
    i, n: CARDINAL ;
 BEGIN
    i := 1 ;
-   n := NoOfParam(sym) ;
-   WHILE i<=n DO
-      p := GetType(GetParam(sym, i)) ;
-      IF IsConst(p)
+   n := NoOfParamAny (sym) ;
+   WHILE i <= n DO
+      p := GetType (GetParam (sym, i)) ;
+      IF IsConst (p)
       THEN
-         MetaError3('the {%1N} formal parameter in procedure {%2Dad} should have a type rather than a constant {%3Dad}',
-                    i, sym, p)
+         MetaError3 ('the {%1N} formal parameter in procedure {%2Dad} should have a type rather than a constant {%3Dad}',
+                     i, sym, p)
       END ;
-      INC(i)
+      INC (i)
    END
 END SanityCheckParameters ;
 
@@ -12968,7 +12982,7 @@ END GetProcedureScope ;
 
 PROCEDURE IsModuleWithinProcedure (sym: CARDINAL) : BOOLEAN ;
 BEGIN
-   RETURN( GetProcedureScope(sym)#NulSym )
+   RETURN( GetProcedureScope (sym) # NulSym )
 END IsModuleWithinProcedure ;
 
 
@@ -13035,6 +13049,7 @@ BEGIN
                       ProcType.HasOptArg  := FALSE ;     (* Does this proc type use [ ] ? *)
                       ProcType.OptArgInit := NulSym ;    (* The optarg initial value.     *)
                       ProcType.ReturnOptional := FALSE ; (* Is the return value optional? *)
+                      ProcType.ReturnTypeTok := UnknownTokenNo ;
                       ProcType.Scope := GetCurrentScope() ;
                                                          (* scope of procedure.           *)
                       ProcType.Size := InitValue() ;
@@ -13075,7 +13090,7 @@ BEGIN
          InitWhereDeclared(At)
       END
    END ;
-   AddParameter(Sym, ParSym)
+   AddParameter (Sym, ProperProcedure, ParSym)
 END PutProcTypeParam ;
 
 
@@ -13102,7 +13117,7 @@ BEGIN
          InitWhereDeclared(At)
       END
    END ;
-   AddParameter(Sym, ParSym)
+   AddParameter (Sym, ProperProcedure, ParSym)
 END PutProcTypeVarParam ;
 
 
@@ -13982,84 +13997,85 @@ END PutDeclared ;
 
 
 (*
-   GetDeclaredDef - returns the tokenno where the symbol was declared.
-                    The priority of declaration is definition, implementation
-                    and program module.
+   GetDeclaredDef - returns the tokenno where the symbol was declared
+                    in the definition module.  UnknownTokenNo is returned
+                    if no declaration occurred.
 *)
 
 PROCEDURE GetDeclaredDef (Sym: CARDINAL) : CARDINAL ;
-VAR
-   declared: CARDINAL ;
 BEGIN
-   declared := GetDeclaredDefinition (Sym) ;
-   IF declared = UnknownTokenNo
-   THEN
-      RETURN GetDeclaredModule (Sym)
-   END ;
-   RETURN declared
+   RETURN GetDeclaredDefinition (Sym)
 END GetDeclaredDef ;
 
 
 (*
    GetDeclaredMod - returns the tokenno where the symbol was declared.
-                    The priority of declaration is program,
-                    implementation and definition module.
+                    in the program or implementation module.
+                    UnknownTokenNo is returned if no declaration occurred.
 *)
 
 PROCEDURE GetDeclaredMod (Sym: CARDINAL) : CARDINAL ;
-VAR
-   declared: CARDINAL ;
 BEGIN
-   declared := GetDeclaredModule (Sym) ;
-   IF declared = UnknownTokenNo
-   THEN
-      RETURN GetDeclaredDefinition (Sym)
-   END ;
-   RETURN declared
+   RETURN GetDeclaredModule (Sym)
 END GetDeclaredMod ;
 
 
 (*
-   GetDeclaredFor - returns the token where this symbol was declared.
-                    It chooses the first from the forward declaration,
-                    implementation module, program module
-                    and definition module.
+   GetDeclaredFor - returns the token where this forward procedure symbol
+                    was declared in the program or implementation module.
+                    UnknownTokenNo is returned if no declaration occurred.
 *)
 
 PROCEDURE GetDeclaredFor (Sym: CARDINAL) : CARDINAL ;
 BEGIN
-   RETURN GetProcedureDeclaredForward (Sym)
+   IF IsProcedure (Sym)
+   THEN
+      RETURN GetProcedureDeclaredTok (Sym, ForwardProcedure)
+   ELSE
+      RETURN UnknownTokenNo
+   END
 END GetDeclaredFor ;
 
 
 (*
-   GetProcedureDeclaredForward - return the token at which the forward
-                                 declaration procedure occurred.
+   GetProcedureKind - returns the procedure kind given the declaration tok.
+                      The declaration tok must match the ident tok in the
+                      procedure name.  It is only safe to call this
+                      procedure function during pass 2 onwards.
 *)
 
-PROCEDURE GetProcedureDeclaredForward (sym: CARDINAL) : CARDINAL ;
+PROCEDURE GetProcedureKind (sym: CARDINAL; tok: CARDINAL) : ProcedureKind ;
 VAR
+   kind: ProcedureKind ;
    pSym: PtrToSymbol ;
 BEGIN
    pSym := GetPsym (sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ProcedureSym: RETURN Procedure.Declared.Forward
+      ProcedureSym: FOR kind := MIN (ProcedureKind) TO MAX (ProcedureKind) DO
+                       IF Procedure.Decl[kind].ProcedureTok = tok
+                       THEN
+                          RETURN kind
+                       END
+                    END |
+      ProcTypeSym:  RETURN ProperProcedure
 
       ELSE
-         InternalError ('expecting procedure symbol')
+         InternalError ('expecting ProcedureSym symbol')
       END
-   END
-END GetProcedureDeclaredForward ;
+   END ;
+   InternalError ('ProcedureSym kind has not yet been declared')
+END GetProcedureKind ;
 
 
 (*
-   PutProcedureDeclaredForward - places the tok to which the forward
-                                 declaration procedure occurred.
+   GetProcedureDeclaredTok - return the token where the
+                             declaration of procedure sym:kind
+                             occurred.
 *)
 
-PROCEDURE PutProcedureDeclaredForward (sym: CARDINAL; tok: CARDINAL) ;
+PROCEDURE GetProcedureDeclaredTok (sym: CARDINAL; kind: ProcedureKind) : CARDINAL ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -14067,21 +14083,23 @@ BEGIN
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ProcedureSym: Procedure.Declared.Forward := tok
+      ProcedureSym: RETURN Procedure.Decl[kind].ProcedureTok
 
       ELSE
          InternalError ('expecting procedure symbol')
       END
    END
-END PutProcedureDeclaredForward ;
+END GetProcedureDeclaredTok ;
 
 
 (*
-   GetProcedureDeclaredProper - return the token at which the forward
-                                declaration procedure occurred.
+   PutProcedureDeclaredTok - places the tok where the
+                             declaration of procedure sym:kind
+                             occurred.
 *)
 
-PROCEDURE GetProcedureDeclaredProper (sym: CARDINAL) : CARDINAL ;
+PROCEDURE PutProcedureDeclaredTok (sym: CARDINAL; kind: ProcedureKind;
+                                   tok: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -14089,21 +14107,22 @@ BEGIN
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ProcedureSym: RETURN Procedure.Declared.Proper
+      ProcedureSym: Procedure.Decl[kind].ProcedureTok := tok
 
       ELSE
          InternalError ('expecting procedure symbol')
       END
    END
-END GetProcedureDeclaredProper ;
+END PutProcedureDeclaredTok ;
 
 
 (*
-   PutProcedureDeclaredProper - places the tok to which the forward
-                                declaration procedure occurred.
+   GetReturnTypeTok - return the token where the
+                               return type procedure sym:kind or proctype
+                               was defined.
 *)
 
-PROCEDURE PutProcedureDeclaredProper (sym: CARDINAL; tok: CARDINAL) ;
+PROCEDURE GetReturnTypeTok (sym: CARDINAL; kind: ProcedureKind) : CARDINAL ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -14111,21 +14130,24 @@ BEGIN
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ProcedureSym: Procedure.Declared.Proper := tok
+      ProcedureSym: RETURN Procedure.Decl[kind].ReturnTypeTok |
+      ProcTypeSym : RETURN ProcType.ReturnTypeTok
 
       ELSE
          InternalError ('expecting procedure symbol')
       END
    END
-END PutProcedureDeclaredProper ;
+END GetReturnTypeTok ;
 
 
 (*
-   GetProcedureDeclaredDefinition - return the token at which the forward
-                                    declaration procedure occurred.
+   PutReturnTypeTok - places the tok where the
+                      return type of procedure sym:kind or proctype
+                      was defined.
 *)
 
-PROCEDURE GetProcedureDeclaredDefinition (sym: CARDINAL) : CARDINAL ;
+PROCEDURE PutReturnTypeTok (sym: CARDINAL; kind: ProcedureKind;
+                                     tok: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
@@ -14133,35 +14155,34 @@ BEGIN
    WITH pSym^ DO
       CASE SymbolType OF
 
-      ProcedureSym: RETURN Procedure.Declared.Definition
+      ProcedureSym: Procedure.Decl[kind].ReturnTypeTok := tok |
+      ProcTypeSym : ProcType.ReturnTypeTok := tok
 
       ELSE
          InternalError ('expecting procedure symbol')
       END
    END
-END GetProcedureDeclaredDefinition ;
+END PutReturnTypeTok ;
 
 
 (*
-   PutProcedureDeclaredDefinition - places the tok to which the forward
-                                    declaration procedure occurred.
+   GetProcedureKindDesc - return a string describing kind.
 *)
 
-PROCEDURE PutProcedureDeclaredDefinition (sym: CARDINAL; tok: CARDINAL) ;
-VAR
-   pSym: PtrToSymbol ;
+PROCEDURE GetProcedureKindDesc (kind: ProcedureKind) : String ;
 BEGIN
-   pSym := GetPsym (sym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ProcedureSym: Procedure.Declared.Definition := tok
-
-      ELSE
-         InternalError ('expecting procedure symbol')
-      END
-   END
-END PutProcedureDeclaredDefinition ;
+   IF kind = ProperProcedure
+   THEN
+      RETURN InitString ('proper procedure')
+   ELSIF kind = ForwardProcedure
+   THEN
+      RETURN InitString ('forward procedure')
+   ELSIF kind = DefProcedure
+   THEN
+      RETURN InitString ('definition procedure')
+   END ;
+   InternalError ('unknown kind value')
+END GetProcedureKindDesc ;
 
 
 (*
@@ -14494,7 +14515,7 @@ END IsSubrange ;
 
 PROCEDURE IsProcedureVariable (Sym: CARDINAL) : BOOLEAN ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    RETURN( IsVar(Sym) AND IsProcedure(GetVarScope(Sym)) )
 END IsProcedureVariable ;
 
@@ -14519,7 +14540,7 @@ END IsProcedureNested ;
 
 PROCEDURE IsAModula2Type (Sym: CARDINAL) : BOOLEAN ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    RETURN(
            IsType(Sym) OR IsRecord(Sym) OR IsPointer(Sym) OR
            IsEnumeration(Sym) OR IsSubrange(Sym) OR IsArray(Sym) OR
@@ -14606,13 +14627,13 @@ END IsRegInterface ;
 
 PROCEDURE GetParam (Sym: CARDINAL; ParamNo: CARDINAL) : CARDINAL ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    IF ParamNo=0
    THEN
       (* Parameter Zero is the return argument for the Function *)
       RETURN(GetType(Sym))
    ELSE
-      RETURN(GetNthParam(Sym, ParamNo))
+      RETURN (GetNthParamAny (Sym, ParamNo))
    END
 END GetParam ;
 
@@ -14678,7 +14699,7 @@ PROCEDURE IsSizeSolved (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
@@ -14714,7 +14735,7 @@ PROCEDURE IsOffsetSolved (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
@@ -14738,7 +14759,7 @@ PROCEDURE IsValueSolved (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
@@ -14808,7 +14829,7 @@ PROCEDURE IsSumOfParamSizeSolved (Sym: CARDINAL) : BOOLEAN ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
@@ -14831,7 +14852,7 @@ PROCEDURE PushSize (Sym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
@@ -14860,27 +14881,39 @@ END PushSize ;
 
 
 (*
-   PushOffset - pushes the Offset of Sym.
+   PopSize - pops the ALU stack into Size of Sym.
 *)
 
-PROCEDURE PushOffset (Sym: CARDINAL) ;
+PROCEDURE PopSize (Sym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
-      VarSym          : PushFrom(Var.Offset) |
-      RecordFieldSym  : PushFrom(RecordField.Offset) |
-      VarientFieldSym : PushFrom(VarientField.Offset)
+      ProcedureSym    : PopInto(Procedure.Size) |
+      VarSym          : PopInto(Var.Size) |
+      TypeSym         : PopInto(Type.Size) |
+      RecordSym       : PopInto(Record.Size) |
+      VarientSym      : PopInto(Varient.Size) |
+      EnumerationSym  : PopInto(Enumeration.Size) |
+      PointerSym      : PopInto(Pointer.Size) |
+      ArraySym        : PopInto(Array.Size) |
+      RecordFieldSym  : PopInto(RecordField.Size) |
+      VarientFieldSym : PopInto(VarientField.Size) |
+      SubrangeSym     : PopInto(Subrange.Size) |
+      SubscriptSym    : PopInto(Subscript.Size) |
+      ProcTypeSym     : PopInto(ProcType.Size) |
+      UnboundedSym    : PopInto(Unbounded.Size) |
+      SetSym          : PopInto(Set.Size)
 
       ELSE
          InternalError ('not expecting this kind of symbol')
       END
    END
-END PushOffset ;
+END PopSize ;
 
 
 (*
@@ -14891,7 +14924,7 @@ PROCEDURE PushValue (Sym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
@@ -14919,7 +14952,7 @@ VAR
    pSym: PtrToSymbol ;
    a   : ARRAY [0..10] OF CHAR ;
 BEGIN
-   CheckLegal (Sym) ;
+   AssertInRange (Sym) ;
    pSym := GetPsym (Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
@@ -14941,95 +14974,6 @@ BEGIN
 END PushConstString ;
 
 
-(*
-   PushParamSize - push the size of parameter, ParamNo,
-                   of procedure Sym onto the ALU stack.
-*)
-
-PROCEDURE PushParamSize (Sym: CARDINAL; ParamNo: CARDINAL) ;
-VAR
-   p, Type: CARDINAL ;
-BEGIN
-   CheckLegal(Sym) ;
-   Assert(IsProcedure(Sym) OR IsProcType(Sym)) ;
-   IF ParamNo=0
-   THEN
-      PushSize(GetType(Sym))
-   ELSE
-      (*
-         can use GetNthParam but 1..n returns parameter.
-         But 0 yields the function return type.
-
-         Note that VAR Unbounded parameters and non VAR Unbounded parameters
-              contain the unbounded descriptor. VAR unbounded parameters
-              do NOT JUST contain an address re: other VAR parameters.
-      *)
-      IF IsVarParam(Sym, ParamNo) AND (NOT IsUnboundedParam(Sym, ParamNo))
-      THEN
-         PushSize(Address)     (* VAR parameters point to the variable *)
-      ELSE
-         p := GetNthParam(Sym, ParamNo) ; (* nth Parameter *)
-         (*
-            N.B. chose to get the Type of the parameter rather than the Var
-            because ProcType's have Type but no Var associated with them.
-         *)
-         Type := GetType(p) ;  (* ie Variable from Procedure Sym *)
-         Assert(p#NulSym) ;    (* If this fails then ParamNo is out of range *)
-         PushSize(Type)
-      END
-   END
-END PushParamSize ;
-
-
-(*
-   PushSumOfLocalVarSize - push the total size of all local variables
-                           onto the ALU stack.
-*)
-
-PROCEDURE PushSumOfLocalVarSize (Sym: CARDINAL) ;
-VAR
-   pSym: PtrToSymbol ;
-BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ProcedureSym,
-      DefImpSym,
-      ModuleSym   : PushSize(Sym)
-
-      ELSE
-         InternalError ('expecting Procedure, DefImp or Module symbol')
-      END
-   END
-END PushSumOfLocalVarSize ;
-
-
-(*
-   PushSumOfParamSize - push the total size of all parameters onto
-                        the ALU stack.
-*)
-
-PROCEDURE PushSumOfParamSize (Sym: CARDINAL) ;
-VAR
-   pSym: PtrToSymbol ;
-BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ProcedureSym: PushFrom(Procedure.TotalParamSize) |
-      ProcTypeSym : PushFrom(ProcType.TotalParamSize)
-
-      ELSE
-         InternalError ('expecting Procedure or ProcType symbol')
-      END
-   END
-END PushSumOfParamSize ;
-
-
 (*
    PushVarSize - pushes the size of a variable, Sym.
                  The runtime size of Sym will depend upon its addressing mode,
@@ -15040,7 +14984,7 @@ END PushSumOfParamSize ;
 
 PROCEDURE PushVarSize (Sym: CARDINAL) ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    Assert(IsVar(Sym)) ;
    IF GetMode(Sym)=LeftValue
    THEN
@@ -15060,7 +15004,7 @@ PROCEDURE PopValue (Sym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   CheckLegal(Sym) ;
+   AssertInRange(Sym) ;
    pSym := GetPsym(Sym) ;
    WITH pSym^ DO
       CASE SymbolType OF
@@ -15076,90 +15020,6 @@ BEGIN
 END PopValue ;
 
 
-(*
-   PopSize - pops the ALU stack into Size of Sym.
-*)
-
-PROCEDURE PopSize (Sym: CARDINAL) ;
-VAR
-   pSym: PtrToSymbol ;
-BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ProcedureSym    : PopInto(Procedure.Size) |
-      VarSym          : PopInto(Var.Size) |
-      TypeSym         : PopInto(Type.Size) |
-      RecordSym       : PopInto(Record.Size) |
-      VarientSym      : PopInto(Varient.Size) |
-      EnumerationSym  : PopInto(Enumeration.Size) |
-      PointerSym      : PopInto(Pointer.Size) |
-      ArraySym        : PopInto(Array.Size) |
-      RecordFieldSym  : PopInto(RecordField.Size) |
-      VarientFieldSym : PopInto(VarientField.Size) |
-      SubrangeSym     : PopInto(Subrange.Size) |
-      SubscriptSym    : PopInto(Subscript.Size) |
-      ProcTypeSym     : PopInto(ProcType.Size) |
-      UnboundedSym    : PopInto(Unbounded.Size) |
-      SetSym          : PopInto(Set.Size)
-
-      ELSE
-         InternalError ('not expecting this kind of symbol')
-      END
-   END
-END PopSize ;
-
-
-(*
-   PopOffset - pops the ALU stack into Offset of Sym.
-*)
-
-PROCEDURE PopOffset (Sym: CARDINAL) ;
-VAR
-   pSym: PtrToSymbol ;
-BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      VarSym          : PopInto(Var.Offset) |
-      RecordFieldSym  : PopInto(RecordField.Offset) |
-      VarientFieldSym : PopInto(VarientField.Offset)
-
-      ELSE
-         InternalError ('not expecting this kind of symbol')
-      END
-   END
-END PopOffset ;
-
-
-(*
-   PopSumOfParamSize - pop the total value on the ALU stack as the
-                       sum of all parameters.
-*)
-
-PROCEDURE PopSumOfParamSize (Sym: CARDINAL) ;
-VAR
-   pSym: PtrToSymbol ;
-BEGIN
-   CheckLegal(Sym) ;
-   pSym := GetPsym(Sym) ;
-   WITH pSym^ DO
-      CASE SymbolType OF
-
-      ProcedureSym: PopInto(Procedure.TotalParamSize) |
-      ProcTypeSym : PopInto(ProcType.TotalParamSize)
-
-      ELSE
-         InternalError ('expecting Procedure or ProcType symbol')
-      END
-   END
-END PopSumOfParamSize ;
-
-
 (*
    PutAlignment - assigns the alignment constant associated with,
                   type, with, align.
diff --git a/gcc/m2/gm2-libs-coroutines/SYSTEM.mod b/gcc/m2/gm2-libs-coroutines/SYSTEM.mod
index 4fb20ee3530..fb18e3d80e3 100644
--- a/gcc/m2/gm2-libs-coroutines/SYSTEM.mod
+++ b/gcc/m2/gm2-libs-coroutines/SYSTEM.mod
@@ -210,8 +210,8 @@ END TurnInterrupts ;
 
 PROCEDURE Finished (p: ADDRESS) ;
 BEGIN
-   Halt('process terminated illegally',
-        __FILE__, __FUNCTION__, __LINE__)
+   Halt ('process terminated illegally',
+         __FILE__, __FUNCTION__, __LINE__)
 END Finished ;
 
 
diff --git a/gcc/testsuite/gm2/iso/fail/badexpression3.mod b/gcc/testsuite/gm2/iso/fail/badexpression3.mod
new file mode 100644
index 00000000000..c474674b541
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badexpression3.mod
@@ -0,0 +1,11 @@
+MODULE badexpression3 ;
+
+VAR
+   c: CARDINAL ;
+   i: INTEGER ;
+   r: CARDINAL ;
+BEGIN
+   c := 1 ;
+   i := 2 ;
+   r := c + i
+END badexpression3.
diff --git a/gcc/testsuite/gm2/iso/fail/badparam4.def b/gcc/testsuite/gm2/iso/fail/badparam4.def
new file mode 100644
index 00000000000..494f4453960
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badparam4.def
@@ -0,0 +1,5 @@
+DEFINITION MODULE badparam4 ;
+
+PROCEDURE foo (x, y: CARDINAL) ;
+
+END badparam4.
diff --git a/gcc/testsuite/gm2/iso/fail/badparam4.mod b/gcc/testsuite/gm2/iso/fail/badparam4.mod
new file mode 100644
index 00000000000..5c0b93da32f
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badparam4.mod
@@ -0,0 +1,8 @@
+IMPLEMENTATION MODULE badparam4 ;
+
+PROCEDURE foo (x: CARDINAL) ;
+BEGIN
+
+END foo ;
+
+END badparam4.

commit de4f10f07c05cd638070ce4d3091ab28cc3cfa03
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Tue Dec 3 21:17:20 2024 +0000

    [PATCH] modula2: Add dependencies for generated sources
    
    This patch adds rules and dependencies for the automatically
    generated grammar sources.  Bootstrapped using make -j 160.
    
    gcc/m2/ChangeLog:
    
            * Make-lang.in (m2/gm2-compiler-boot/P0SyntaxCheck.c):
            New rule.
            (m2/gm2-compiler-boot/P0SyntaxCheck.o): Ditto.
            (m2/gm2-compiler-boot/P1Build.c): Ditto.
            (m2/gm2-compiler-boot/P1Build.o): Ditto.
            (m2/gm2-compiler-boot/P2Build.c): Ditto.
            (m2/gm2-compiler-boot/P2Build.o): Ditto.
            (m2/gm2-compiler-boot/P3Build.c): Ditto.
            (m2/gm2-compiler-boot/P3Build.o): Ditto.
            (m2/gm2-compiler-boot/PCBuild.c): Ditto.
            (m2/gm2-compiler-boot/PCBuild.o): Ditto.
            (m2/gm2-compiler-boot/PHBuild.c): Ditto.
            (m2/gm2-compiler-boot/PHBuild.o): Ditto.
    
    (cherry picked from commit 3e6a7824033ffb88b8f99ad93b389f7d0eef22a4)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index 480c4fb28a7..15427021438 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -1590,6 +1590,66 @@ m2/gm2-compiler-boot/$(SRC_PREFIX)%.h: $(srcdir)/m2/gm2-compiler/%.def $(MCDEPS)
 	-test -d $(@D) || $(mkinstalldirs) $(@D)
 	$(MC) -o=$@ $(srcdir)/m2/gm2-compiler/$*.def
 
+m2/gm2-compiler-boot/P0SyntaxCheck.c: m2/gm2-compiler-boot/P0SyntaxCheck.mod $(MCDEPS)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(MC) -o=m2/gm2-compiler-boot/P0SyntaxCheck.c m2/gm2-compiler-boot/P0SyntaxCheck.mod
+
+m2/gm2-compiler-boot/P0SyntaxCheck.o: m2/gm2-compiler-boot/P0SyntaxCheck.c $(MCDEPS) $(BUILD-BOOT-H)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
+            $(GM2_BOOT_INCLUDES) $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/P0SyntaxCheck.c -o $@
+	$(POSTCOMPILE)
+
+m2/gm2-compiler-boot/P1Build.c: m2/gm2-compiler-boot/P1Build.mod $(MCDEPS)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(MC) -o=m2/gm2-compiler-boot/P1Build.c m2/gm2-compiler-boot/P1Build.mod
+
+m2/gm2-compiler-boot/P1Build.o: m2/gm2-compiler-boot/P1Build.c $(MCDEPS) $(BUILD-BOOT-H)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
+            $(GM2_BOOT_INCLUDES) $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/P1Build.c -o $@
+	$(POSTCOMPILE)
+
+m2/gm2-compiler-boot/P2Build.c: m2/gm2-compiler-boot/P2Build.mod $(MCDEPS)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(MC) -o=m2/gm2-compiler-boot/P2Build.c m2/gm2-compiler-boot/P2Build.mod
+
+m2/gm2-compiler-boot/P2Build.o: m2/gm2-compiler-boot/P2Build.c $(MCDEPS) $(BUILD-BOOT-H)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
+            $(GM2_BOOT_INCLUDES) $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/P2Build.c -o $@
+	$(POSTCOMPILE)
+
+m2/gm2-compiler-boot/P3Build.c: m2/gm2-compiler-boot/P3Build.mod $(MCDEPS)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(MC) -o=m2/gm2-compiler-boot/P3Build.c m2/gm2-compiler-boot/P3Build.mod
+
+m2/gm2-compiler-boot/P3Build.o: m2/gm2-compiler-boot/P3Build.c $(MCDEPS) $(BUILD-BOOT-H)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
+            $(GM2_BOOT_INCLUDES) $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/P3Build.c -o $@
+	$(POSTCOMPILE)
+
+m2/gm2-compiler-boot/PCBuild.c: m2/gm2-compiler-boot/PCBuild.mod $(MCDEPS)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(MC) -o=m2/gm2-compiler-boot/PCBuild.c m2/gm2-compiler-boot/PCBuild.mod
+
+m2/gm2-compiler-boot/PCBuild.o: m2/gm2-compiler-boot/PCBuild.c $(MCDEPS) $(BUILD-BOOT-H)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
+            $(GM2_BOOT_INCLUDES) $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/PCBuild.c -o $@
+	$(POSTCOMPILE)
+
+m2/gm2-compiler-boot/PHBuild.c: m2/gm2-compiler-boot/PHBuild.mod $(MCDEPS)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(MC) -o=m2/gm2-compiler-boot/PHBuild.c m2/gm2-compiler-boot/PHBuild.mod
+
+m2/gm2-compiler-boot/PHBuild.o: m2/gm2-compiler-boot/PHBuild.c $(MCDEPS) $(BUILD-BOOT-H)
+	-test -d $(@D)/$(DEPDIR) || $(mkinstalldirs) $(@D)/$(DEPDIR)
+	$(COMPILER) $(CM2DEP) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(GM2GCC) \
+            $(GM2_BOOT_INCLUDES) $(MCINCLUDES) $(INCLUDES) m2/gm2-compiler-boot/PHBuild.c -o $@
+	$(POSTCOMPILE)
+
 m2/gm2-compiler-boot/m2flex.o: m2/gm2-compiler/m2flex.c $(BUILD-BOOT-H) $(TIMEVAR_H) \
         $(BUILD-LIBS-BOOT-H) m2/gm2-compiler-boot/$(SRC_PREFIX)NameKey.h \
         $(CONFIG_H) m2/gm2config.h $(TARGET_H) $(PLUGIN_HEADERS)

commit c1409e1955110fcf3641cec6e8381fbf03f0a510
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Wed Dec 4 00:11:22 2024 +0000

    [PATCH] PR modula2/117371: type incompatibility between INTEGER and CARDINAL
    
    This patch enforces a const expression increment in a FOR loop.
    It also fixes missing error locations.  The FOR loop last iterator
    value is now calculated during M2GenGCC after all types and constants have
    been resolved.  This results in fewer quadruples (as there is no need to
    build two paths for step > 0 and step < 0).
    
    gcc/m2/ChangeLog:
    
            PR modula2/117371
            * gm2-compiler/M2Base.mod (MixMetaTypes): Add parameter TRUE to
            MetaErrorDecl.
            (IsUserType): Test against ZType.
            (MixTypesDecl): Test for ZType.
            * gm2-compiler/M2GenGCC.mod (ErrorMessageDecl): Add parameter TRUE to
            MetaErrorDecl.
            (CodeLastForIterator): New procedure.
            (FoldLastForIterator): Ditto.
            (PerformLastForIterator): Ditto.
            (CodeStatement): Add case clause for LastForIteratorOp.
            (ErrorMessageDecl): Add iserror parameter.
            Call MetaErrorDecl with iserror parameter.
            (checkIncorrectMeta): Call MetaErrorDecl with TRUE parameter.
            (CheckBinaryExpressionTypes): Ditto.
            (CheckElementSetTypes): Ditto.
            * gm2-compiler/M2LexBuf.def (MakeVirtualTok): Update comment
            detailing the fall back when UnknownTokenNo is encountered.
            (MakeVirtual2Tok): Ditto.
            * gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Check against
            UnknownTokenNo.
            (MakeVirtual2Tok): Ditto.
            * gm2-compiler/M2MetaError.def (MetaErrorDecl): Add error parameter.
            * gm2-compiler/M2MetaError.mod (MetaErrorDecl): Add error
            parameter.
            Issue warning if error is FALSE.
            * gm2-compiler/M2Quads.def (QuadOperator): Add LastForIteratorOp.
            * gm2-compiler/M2Quads.mod (AddQuadInformation): New case clause
            LastForIteratorOp.
            (CheckAddTuple2Read): New procedure.
            (BuildForLoopToRangeCheck): Remove.
            (ForLoopLastIteratorVariable): Ditto.
            (ForLoopLastIteratorConstant): Ditto.
            (ForLoopLastIterator): Reimplement.
            (BuildForToByDo): Remove ByType from call to ForLoopLastIterator.
            (WriteQuad): New case clause LastForIteratorOp.
            (WriteOperator): Ditto.
            * gm2-compiler/M2Students.def
            (CheckForVariableThatLooksLikeKeyword): Replace with ...
            (CheckVariableAgainstKeyword): ... this.
            * gm2-compiler/M2Students.mod
            (CheckForVariableThatLooksLikeKeyword): Replace with ...
            (CheckVariableAgainstKeyword): ... this.
            * gm2-compiler/M2SymInit.mod (CheckLastForIterator): New
            procedure.
            (CheckReadBeforeInitQuad): New case clause to call
            CheckLastForIterator.
            * gm2-compiler/P2SymBuild.mod: Replace
            CheckForVariableThatLooksLikeKeyword with CheckVariableAgainstKeyword.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/117371
            * gm2/iso/fail/forloopbyvar.mod: New test.
            * gm2/iso/fail/forloopbyvar4.mod: New test.
            * gm2/iso/fail/forloopbyvar5.mod: New test.
            * gm2/iso/pass/forloopbyvar3.mod: New test.
    
    (cherry picked from commit f242f79b8afeec58477e99c44530bd503878c6d5)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2Base.mod b/gcc/m2/gm2-compiler/M2Base.mod
index 986e208e0c3..7064c60b1fb 100644
--- a/gcc/m2/gm2-compiler/M2Base.mod
+++ b/gcc/m2/gm2-compiler/M2Base.mod
@@ -1997,8 +1997,8 @@ BEGIN
 
    no        :  MetaErrorT2 (NearTok, 'type incompatibility between {%1asd} and {%2asd}',
                              leftType, rightType) ;
-                MetaErrorDecl (left) ;
-                MetaErrorDecl (right) ;
+                MetaErrorDecl (left, TRUE) ;
+                MetaErrorDecl (right, TRUE) ;
                 FlushErrors  (* unrecoverable at present *) |
    warnfirst,
    first     :  RETURN( leftType ) |
@@ -2018,7 +2018,10 @@ END MixMetaTypes ;
 
 PROCEDURE IsUserType (type: CARDINAL) : BOOLEAN ;
 BEGIN
-   RETURN IsType (type) AND (NOT IsBaseType (type)) AND (NOT IsSystemType (type))
+   RETURN IsType (type) AND
+          (NOT IsBaseType (type)) AND
+          (NOT IsSystemType (type)) AND
+          (type # ZType)
 END IsUserType ;
 
 
@@ -2111,6 +2114,12 @@ BEGIN
    ELSIF IsUserType (rightType)
    THEN
       RETURN( MixTypes(leftType, GetType(rightType), NearTok) )
+   ELSIF leftType = ZType
+   THEN
+      RETURN rightType
+   ELSIF rightType = ZType
+   THEN
+      RETURN leftType
    ELSIF (leftType=GetLowestType(leftType)) AND (rightType=GetLowestType(rightType))
    THEN
       RETURN( MixMetaTypes (left, right, leftType, rightType, NearTok) )
diff --git a/gcc/m2/gm2-compiler/M2GenGCC.mod b/gcc/m2/gm2-compiler/M2GenGCC.mod
index e92bc174968..1cb60a87a84 100644
--- a/gcc/m2/gm2-compiler/M2GenGCC.mod
+++ b/gcc/m2/gm2-compiler/M2GenGCC.mod
@@ -41,7 +41,7 @@ FROM SymbolTable IMPORT PushSize, PopSize, PushValue, PopValue,
                         IsConstString, GetString, GetStringLength,
                         IsConstStringCnul, IsConstStringM2nul,
                         IsConst, IsConstSet, IsProcedure, IsProcType,
-                        IsVar, IsVarParamAny, IsTemporary,
+                        IsVar, IsVarParamAny, IsTemporary, IsTuple,
                         IsEnumeration,
                         IsUnbounded, IsArray, IsSet, IsConstructor,
                         IsProcedureVariable,
@@ -169,6 +169,7 @@ FROM m2expr IMPORT GetIntegerZero, GetIntegerOne,
                    GetPointerZero,
                    GetCardinalZero,
                    GetSizeOfInBits,
+                   TreeOverflow,
                    FoldAndStrip,
                    CompareTrees,
                    StringLength,
@@ -239,7 +240,7 @@ FROM m2statement IMPORT BuildAsm, BuildProcedureCallTree, BuildParam, BuildFunct
 FROM m2type IMPORT ChainOnParamValue, GetPointerType, GetIntegerType, AddStatement,
                    GetCardinalType, GetWordType, GetM2ZType, GetM2RType, GetM2CType,
                    BuildCharConstant, AddStringToTreeList, BuildArrayStringConstructor,
-                   GetArrayNoOfElements ;
+                   GetArrayNoOfElements, GetTreeType ;
 
 FROM m2block IMPORT RememberConstant, pushGlobalScope, popGlobalScope, finishFunctionDecl,
                     pushFunctionScope, popFunctionScope,
@@ -386,11 +387,12 @@ VAR
                       and right if they are parameters or variables.
 *)
 
-PROCEDURE ErrorMessageDecl (tok: CARDINAL; message: ARRAY OF CHAR; left, right: CARDINAL) ;
+PROCEDURE ErrorMessageDecl (tok: CARDINAL; message: ARRAY OF CHAR;
+                            left, right: CARDINAL; iserror: BOOLEAN) ;
 BEGIN
    MetaErrorT2 (tok, message, left, right) ;
-   MetaErrorDecl (left) ;
-   MetaErrorDecl (right)
+   MetaErrorDecl (left, iserror) ;
+   MetaErrorDecl (right, iserror)
 END ErrorMessageDecl ;
 
 
@@ -457,6 +459,128 @@ BEGIN
 END IsCompilingMainModule ;
 
 
+(*
+   CodeLastForIterator - call PerformLastForIterator allowing for
+                         a non constant last iterator value.
+*)
+
+PROCEDURE CodeLastForIterator (quad: CARDINAL) ;
+BEGIN
+   PerformLastForIterator (quad, NoWalkProcedure, FALSE)
+END CodeLastForIterator ;
+
+
+(*
+   FoldLastForIterator - call PerformLastForIterator providing
+                         all operands are constant and are known by GCC.
+*)
+
+PROCEDURE FoldLastForIterator (quad: CARDINAL; p: WalkAction) ;
+VAR
+   op              : QuadOperator ;
+   e1, e2,
+   op1, tuple, incr: CARDINAL ;
+BEGIN
+   GetQuad (quad, op, op1, tuple, incr) ;
+   Assert (IsTuple (tuple)) ;
+   e1 := GetNth (tuple, 1) ;
+   e2 := GetNth (tuple, 2) ;
+   IF IsConst (op1) AND IsConst (e1) AND IsConst (e2) AND IsConst (incr) AND
+      GccKnowsAbout (e1) AND GccKnowsAbout (e2) AND GccKnowsAbout (incr)
+   THEN
+      PerformLastForIterator (quad, p, TRUE)
+   END
+END FoldLastForIterator ;
+
+
+(*
+   FoldLastForIterator - generates code to calculate the last iterator value
+                         in a for loop.  It examines the increment constant
+                         and generates different code depending whether it is
+                         negative or positive.
+*)
+
+PROCEDURE PerformLastForIterator (quad: CARDINAL; p: WalkAction; constant: BOOLEAN) ;
+VAR
+   success,
+   constExpr,
+   overflowChecking : BOOLEAN ;
+   op               : QuadOperator ;
+   lastpos, op1pos,
+   op2pos, incrpos,
+   last, tuple, incr: CARDINAL ;
+   e1, e2           : CARDINAL ;
+   lasttree,
+   e1tree, e2tree,
+   expr, incrtree   : tree ;
+   location         : location_t ;
+BEGIN
+   GetQuadOtok (quad, lastpos, op, last, tuple, incr,
+                overflowChecking, constExpr,
+                op1pos, op2pos, incrpos) ;
+   DeclareConstant (incrpos, incr) ;
+   lasttree := Mod2Gcc (last) ;
+   success := TRUE ;
+   IF IsConst (incr)
+   THEN
+      incrtree := Mod2Gcc (incr) ;
+      location := TokenToLocation (lastpos) ;
+      e1 := GetNth (tuple, 1) ;
+      e2 := GetNth (tuple, 2) ;
+      e1tree := Mod2Gcc (e1) ;
+      e2tree := Mod2Gcc (e2) ;
+      IF CompareTrees (incrtree, GetIntegerZero (location)) > 0
+      THEN
+         (* If incr > 0 then LastIterator := ((e2-e1) DIV incr) * incr + e1.  *)
+         expr := BuildSub (location, e2tree, e1tree, FALSE) ;
+         expr := BuildDivFloor (location, expr, incrtree, FALSE) ;
+         expr := BuildMult (location, expr, incrtree, FALSE) ;
+         expr := BuildAdd (location, expr, e1tree, FALSE)
+      ELSE
+         (* Else use LastIterator := e1 - ((e1-e2) DIV PositiveBy) * PositiveBy
+            to avoid unsigned div signed arithmetic.  *)
+         expr := BuildSub (location, e1tree, e2tree, FALSE) ;
+         incrtree := BuildConvert (location, GetM2ZType (), incrtree, FALSE) ;
+         incrtree := BuildNegate (location, incrtree, FALSE) ;
+         incrtree := BuildConvert (location, GetTreeType (expr), incrtree, FALSE) ;
+         IF TreeOverflow (incrtree)
+         THEN
+            MetaErrorT0 (lastpos,
+                         'the intemediate calculation for the last iterator value in the {%kFOR} loop has caused an overflow') ;
+            NoChange := FALSE ;
+            SubQuad (quad) ;
+            success := FALSE
+         ELSE
+            expr := BuildSub (location, e1tree, e2tree, FALSE) ;
+            expr := BuildDivFloor (location, expr, incrtree, FALSE) ;
+            expr := BuildMult (location, expr, incrtree, FALSE) ;
+            expr := BuildSub (location, e1tree, expr, FALSE)
+         END
+      END ;
+      IF success
+      THEN
+         IF IsConst (last)
+         THEN
+            AddModGcc (last, expr) ;
+            p (last) ;
+            NoChange := FALSE ;
+            SubQuad (quad)
+         ELSE
+            Assert (NOT constant) ;
+            BuildAssignmentStatement (location, lasttree, expr)
+         END
+      END
+   ELSE
+      MetaErrorT1 (lastpos,
+                   'the value {%1Ead} in the {%kBY} clause of the {%kFOR} loop must be constant',
+                   incr) ;
+      MetaErrorDecl (incr, TRUE) ;
+      NoChange := FALSE ;
+      SubQuad (quad)
+   END
+END PerformLastForIterator ;
+
+
 (*
    CodeStatement - A multi-way decision call depending on the current
                    quadruple.
@@ -523,6 +647,7 @@ BEGIN
    InclOp             : CodeIncl (op1, op3) |
    ExclOp             : CodeExcl (op1, op3) |
    NegateOp           : CodeNegateChecked (q, op1, op3) |
+   LastForIteratorOp  : CodeLastForIterator (q) |
    LogicalShiftOp     : CodeSetShift (q, op1, op2, op3) |
    LogicalRotateOp    : CodeSetRotate (q, op1, op2, op3) |
    LogicalOrOp        : CodeSetOr (q) |
@@ -665,7 +790,8 @@ BEGIN
          StatementNoteOp    : FoldStatementNote (op3) |
          StringLengthOp      : FoldStringLength (quad, p) |
          StringConvertM2nulOp: FoldStringConvertM2nul (quad, p) |
-         StringConvertCnulOp : FoldStringConvertCnul (quad, p)
+         StringConvertCnulOp : FoldStringConvertCnul (quad, p) |
+         LastForIteratorOp  : FoldLastForIterator (quad, p)
 
          ELSE
             (* ignore quadruple as it is not associated with a constant expression *)
@@ -3338,7 +3464,7 @@ BEGIN
          THEN
             ErrorMessageDecl (virtpos,
                               'illegal assignment error between {%1Etad} and {%2tad}',
-                              des, expr) ;
+                              des, expr, TRUE) ;
 	    RETURN( FALSE )
          END
       END
@@ -3824,7 +3950,7 @@ BEGIN
       THEN
          ErrorMessageDecl (subexprpos,
                            'expression mismatch between {%1Etad} and {%2tad}',
-                           left, right) ;
+                           left, right, TRUE) ;
          NoChange := FALSE ;
          SubQuad (quad) ;
          p (des) ;
@@ -3892,7 +4018,7 @@ BEGIN
    THEN
       ErrorMessageDecl (subexprpos,
                         'the types used in expression {%1Etad} {%kIN} {%2tad} are incompatible',
-                        left, right) ;
+                        left, right, TRUE) ;
       NoChange := FALSE ;
       SubQuad (quad) ;
       RETURN FALSE
diff --git a/gcc/m2/gm2-compiler/M2LexBuf.def b/gcc/m2/gm2-compiler/M2LexBuf.def
index 19e261e83cb..766d9555ef9 100644
--- a/gcc/m2/gm2-compiler/M2LexBuf.def
+++ b/gcc/m2/gm2-compiler/M2LexBuf.def
@@ -185,8 +185,12 @@ PROCEDURE GetFileName () : String ;
 
 
 (*
-   MakeVirtualTok - creates and return a new tokenno which is created from
-                    tokenno caret, left and right.
+   MakeVirtualTok - providing caret, left, right are associated with a source file
+                    and exist on the same src line then
+                    create and return a new tokenno which is created from
+                    tokenno left and right.  Otherwise return caret.
+                    If caret is UnknownTokenNo then it is replaced with left or right
+                    in sequence to avoid an UnknownTokenNo.
 *)
 
 PROCEDURE MakeVirtualTok (caret, left, right: CARDINAL) : CARDINAL ;
@@ -194,7 +198,8 @@ PROCEDURE MakeVirtualTok (caret, left, right: CARDINAL) : CARDINAL ;
 
 (*
    MakeVirtual2Tok - creates and return a new tokenno which is created from
-                     two tokens left and right.
+                     two tokens left and right.  It tries to avoid UnknownTokenNo
+                     and will fall back to left or right if necessary.
 *)
 
 PROCEDURE MakeVirtual2Tok (left, right: CARDINAL) : CARDINAL ;
diff --git a/gcc/m2/gm2-compiler/M2LexBuf.mod b/gcc/m2/gm2-compiler/M2LexBuf.mod
index 5a0b6086bcb..c6521782a80 100644
--- a/gcc/m2/gm2-compiler/M2LexBuf.mod
+++ b/gcc/m2/gm2-compiler/M2LexBuf.mod
@@ -1061,6 +1061,8 @@ END isSrcToken ;
                     and exist on the same src line then
                     create and return a new tokenno which is created from
                     tokenno left and right.  Otherwise return caret.
+                    If caret is UnknownTokenNo then it is replaced with left or right
+                    in sequence to avoid an UnknownTokenNo.
 *)
 
 PROCEDURE MakeVirtualTok (caret, left, right: CARDINAL) : CARDINAL ;
@@ -1068,6 +1070,14 @@ VAR
    descLeft, descRight: TokenDesc ;
    lc, ll, lr         : location_t ;
 BEGIN
+   IF caret = UnknownTokenNo
+   THEN
+      caret := left
+   END ;
+   IF caret = UnknownTokenNo
+   THEN
+      caret := right
+   END ;
    IF isSrcToken (caret) AND isSrcToken (left) AND isSrcToken (right)
    THEN
       lc := TokenToLocation (caret) ;
@@ -1098,11 +1108,19 @@ END MakeVirtualTok ;
 
 (*
    MakeVirtual2Tok - creates and return a new tokenno which is created from
-                     two tokens left and right.
+                     two tokens left and right.  It tries to avoid UnknownTokenNo
+                     and will fall back to left or right if necessary.
 *)
 
 PROCEDURE MakeVirtual2Tok (left, right: CARDINAL) : CARDINAL ;
 BEGIN
+   IF left = UnknownTokenNo
+   THEN
+      left := right
+   ELSIF right = UnknownTokenNo
+   THEN
+      right := left
+   END ;
    RETURN MakeVirtualTok (left, left, right) ;
 END MakeVirtual2Tok ;
 
diff --git a/gcc/m2/gm2-compiler/M2MetaError.def b/gcc/m2/gm2-compiler/M2MetaError.def
index 333a4a36c45..1bc87656181 100644
--- a/gcc/m2/gm2-compiler/M2MetaError.def
+++ b/gcc/m2/gm2-compiler/M2MetaError.def
@@ -175,10 +175,11 @@ PROCEDURE MetaString4 (m: String; s1, s2, s3, s4: CARDINAL) : String ;
 
 (*
    MetaErrorDecl - if sym is a variable or parameter then generate a
-                   declaration error message.
+                   declaration error or warning message.  If error is
+                   FALSE then a warning is issued.
 *)
 
-PROCEDURE MetaErrorDecl (sym: CARDINAL) ;
+PROCEDURE MetaErrorDecl (sym: CARDINAL; error: BOOLEAN) ;
 
 
 END M2MetaError.
diff --git a/gcc/m2/gm2-compiler/M2MetaError.mod b/gcc/m2/gm2-compiler/M2MetaError.mod
index 2dd8c5c3d0a..b1ae6ca4dfe 100644
--- a/gcc/m2/gm2-compiler/M2MetaError.mod
+++ b/gcc/m2/gm2-compiler/M2MetaError.mod
@@ -2684,18 +2684,29 @@ END MetaString4 ;
 
 (*
    MetaErrorDecl - if sym is a variable or parameter then generate a
-                   declaration error message.
+                   declaration error or warning message.  If error is
+                   FALSE then a warning is issued.
 *)
 
-PROCEDURE MetaErrorDecl (sym: CARDINAL) ;
+PROCEDURE MetaErrorDecl (sym: CARDINAL; error: BOOLEAN) ;
 BEGIN
    IF (sym # NulSym) AND IsVar (sym)
    THEN
-      IF IsVarAParam (sym)
+      IF error
       THEN
-         MetaErrorT1 (GetVarDeclFullTok (sym), 'parameter declaration for {%1ad}', sym)
+         IF IsVarAParam (sym)
+         THEN
+            MetaErrorT1 (GetVarDeclFullTok (sym), 'parameter declaration for {%1ad}', sym)
+         ELSE
+            MetaErrorT1 (GetVarDeclFullTok (sym), 'variable declaration for {%1ad}', sym)
+         END
       ELSE
-         MetaErrorT1 (GetVarDeclFullTok (sym), 'variable declaration for {%1ad}', sym)
+         IF IsVarAParam (sym)
+         THEN
+            MetaErrorT1 (GetVarDeclFullTok (sym), 'parameter declaration for {%1Wad}', sym)
+         ELSE
+            MetaErrorT1 (GetVarDeclFullTok (sym), 'variable declaration for {%1Wad}', sym)
+         END
       END
    END
 END MetaErrorDecl ;
diff --git a/gcc/m2/gm2-compiler/M2Quads.def b/gcc/m2/gm2-compiler/M2Quads.def
index 12a4708ee67..bb0d6a0a954 100644
--- a/gcc/m2/gm2-compiler/M2Quads.def
+++ b/gcc/m2/gm2-compiler/M2Quads.def
@@ -202,6 +202,7 @@ TYPE
                    InitStartOp,
                    InlineOp,
                    KillLocalVarOp,
+                   LastForIteratorOp,
                    LineNumberOp,
                    LogicalAndOp,
                    LogicalDiffOp,
diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index fe1ddd5f830..2c3969805dc 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -40,7 +40,8 @@ FROM M2MetaError IMPORT MetaError0, MetaError1, MetaError2, MetaError3,
                         MetaErrorStringT2,
                         MetaErrorString1, MetaErrorString2,
                         MetaErrorN1, MetaErrorN2,
-                        MetaErrorNT0, MetaErrorNT1, MetaErrorNT2 ;
+                        MetaErrorNT0, MetaErrorNT1, MetaErrorNT2,
+                        MetaErrorDecl ;
 
 FROM DynamicStrings IMPORT String, string, InitString, KillString,
                            ConCat, InitStringCharStar, Dup, Mark,
@@ -55,7 +56,7 @@ FROM SymbolTable IMPORT ModeOfAddr, GetMode, PutMode, GetSymName, IsUnknown,
                         MakeConstLit,
                         MakeConstString, MakeConstant, MakeConstVar,
                         MakeConstStringM2nul, MakeConstStringCnul,
-                        Make2Tuple,
+                        Make2Tuple, IsTuple,
                         RequestSym, MakePointer, PutPointer,
                         SkipType,
 			GetDType, GetSType, GetLType,
@@ -1399,7 +1400,9 @@ BEGIN
    IfGreEquOp : ManipulateReference(QuadNo, Oper3) ;
                 CheckAddVariableRead(Oper1, FALSE, QuadNo) ;
                 CheckAddVariableRead(Oper2, FALSE, QuadNo) |
-
+   LastForIteratorOp: CheckAddVariableWrite (Oper1, FALSE, QuadNo) ;
+                      CheckAddTuple2Read (Oper2, FALSE, QuadNo) ;
+                      CheckAddVariableRead (Oper3, FALSE, QuadNo) |
    TryOp,
    RetryOp,
    GotoOp     : ManipulateReference(QuadNo, Oper3) |
@@ -1735,6 +1738,22 @@ END CheckRemoveVariableReadLeftValue ;
 *)
 
 
+(*
+   CheckAddTuple2Read - checks to see whether symbol tuple contains variables or
+                        parameters and if so it then adds them to the quadruple
+                        variable list.
+*)
+
+PROCEDURE CheckAddTuple2Read (tuple: CARDINAL; canDereference: BOOLEAN; Quad: CARDINAL) ;
+BEGIN
+   IF IsTuple (tuple)
+   THEN
+      CheckAddVariableRead (GetNth (tuple, 1), canDereference, Quad) ;
+      CheckAddVariableRead (GetNth (tuple, 2), canDereference, Quad)
+   END
+END CheckAddTuple2Read ;
+
+
 (*
    CheckAddVariableRead - checks to see whether symbol, Sym, is a variable or
                           a parameter and if so it then adds this quadruple
@@ -4612,140 +4631,6 @@ BEGIN
 END BuildPseudoBy ;
 
 
-(*
-   BuildForLoopToRangeCheck - builds the range check to ensure that the id
-                              does not exceed the limits of its type.
-*)
-
-PROCEDURE BuildForLoopToRangeCheck ;
-VAR
-   d, dt,
-   e, et: CARDINAL ;
-BEGIN
-   PopTF (e, et) ;
-   PopTF (d, dt) ;
-   BuildRange (InitForLoopToRangeCheck (d, e)) ;
-   PushTF (d, dt) ;
-   PushTF (e, et)
-END BuildForLoopToRangeCheck ;
-
-
-(*
-   ForLoopLastIteratorVariable - assigns the last value of the index variable to
-                                 symbol LastIterator.
-                                 The For Loop is regarded:
-
-                                 For ident := e1 To e2 By BySym Do
-
-                                 End
-*)
-
-PROCEDURE ForLoopLastIteratorVariable (LastIterator, e1, e2, BySym, ByType: CARDINAL ;
-                                       e1tok, e2tok, bytok: CARDINAL) ;
-VAR
-   PBType,
-   PositiveBy,
-   ElseQuad,
-   t, f      : CARDINAL ;
-BEGIN
-   Assert (IsVar (LastIterator)) ;
-   (* If By > 0 then.  *)
-   (* q+1 if >=      by        0  q+3.  *)
-   (* q+2 GotoOp                  q+else.   *)
-   PushTFtok (BySym, ByType, bytok) ;  (* BuildRelOp  1st parameter *)
-   PushT (GreaterEqualTok) ;           (*             2nd parameter *)
-                                       (* 3rd parameter *)
-   PushZero (bytok, ByType) ;
-   BuildRelOp (e2tok) ;       (* Choose final expression position.  *)
-   PopBool (t, f) ;
-   BackPatch (t, NextQuad) ;
-
-   (* LastIterator := ((e2-e1) DIV By) * By + e1.  *)
-   PushTF (LastIterator, GetSType (LastIterator)) ;
-   PushTFtok (e2, GetSType (e2), e2tok) ;
-   PushT (MinusTok) ;
-   PushTFtok (e1, GetSType (e1), e1tok) ;
-   doBuildBinaryOp (TRUE, FALSE) ;
-   PushT (DivideTok) ;
-   PushTFtok (BySym, ByType, bytok) ;
-   doBuildBinaryOp (FALSE, FALSE) ;
-   PushT (TimesTok) ;
-   PushTFtok (BySym, ByType, bytok) ;
-   doBuildBinaryOp (FALSE, FALSE) ;
-   PushT (ArithPlusTok) ;
-   PushTFtok (e1, GetSType (e1), e1tok) ;
-   doBuildBinaryOp (FALSE, FALSE) ;
-   BuildForLoopToRangeCheck ;
-   BuildAssignmentWithoutBounds (e1tok, FALSE, FALSE) ;
-   GenQuad (GotoOp, NulSym, NulSym, 0) ;
-   ElseQuad := NextQuad-1 ;
-
-   (* Else.  *)
-
-   BackPatch (f, NextQuad) ;
-
-   PushTtok (MinusTok, bytok) ;
-   PushTFtok (BySym, ByType, bytok) ;
-   BuildUnaryOp ;
-   PopTF (PositiveBy, PBType) ;  (* PositiveBy := - BySym.  *)
-
-   (* LastIterator := e1 - ((e1-e2) DIV PositiveBy) * PositiveBy.  *)
-   PushTF (LastIterator, GetSType (LastIterator)) ;
-   PushTFtok (e1, GetSType (e1), e1tok) ;
-   PushT (MinusTok) ;
-   PushTFtok (e1, GetSType (e1), e1tok) ;
-   PushT (MinusTok) ;
-   PushTFtok (e2, GetSType (e2), e2tok) ;
-   doBuildBinaryOp (TRUE, FALSE) ;
-   PushT (DivideTok) ;
-   PushTFtok (PositiveBy, ByType, bytok) ;
-   doBuildBinaryOp (FALSE, FALSE) ;
-   PushT (TimesTok) ;
-   PushTFtok (PositiveBy, ByType, bytok) ;
-   doBuildBinaryOp (FALSE, FALSE) ;
-   doBuildBinaryOp (FALSE, FALSE) ;
-   BuildForLoopToRangeCheck ;
-   BuildAssignmentWithoutBounds (e1tok, FALSE, FALSE) ;
-   BackPatch (ElseQuad, NextQuad) ;
-
-   (* End.  *)
-END ForLoopLastIteratorVariable ;
-
-
-(*
-   ForLoopLastIteratorConstant - assigns the last value of the index variable to
-                                 symbol LastIterator.
-                                 The For Loop is regarded:
-
-                                 For ident := e1 To e2 By BySym Do
-
-                                 End
-*)
-
-PROCEDURE ForLoopLastIteratorConstant (LastIterator, e1, e2, BySym, ByType: CARDINAL;
-                                       e1tok, e2tok, bytok: CARDINAL) ;
-BEGIN
-   Assert (IsConst (LastIterator)) ;
-   (* LastIterator := VAL (GetType (LastIterator), ((e2-e1) DIV By) * By + e1)  *)
-   PushTF (LastIterator, GetSType (LastIterator)) ;
-   PushTFtok (e2, GetSType (e2), e2tok) ;
-   PushT (MinusTok) ;
-   PushTFtok (e1, GetSType (e1), e1tok) ;
-   doBuildBinaryOp (TRUE, FALSE) ;
-   PushT (DivideTok) ;
-   PushTFtok (BySym, ByType, bytok) ;
-   doBuildBinaryOp (FALSE, FALSE) ;
-   PushT (TimesTok) ;
-   PushTFtok (BySym, ByType, bytok) ;
-   doBuildBinaryOp (FALSE, FALSE) ;
-   PushT (ArithPlusTok) ;
-   PushTFtok (e1, GetSType (e1), e1tok) ;
-   doBuildBinaryOp (FALSE, FALSE) ;
-   BuildForLoopToRangeCheck ;
-   BuildAssignmentWithoutBounds (e1tok, FALSE, FALSE)
-END ForLoopLastIteratorConstant ;
-
-
 (*
    ForLoopLastIterator - calculate the last iterator value but avoid setting
                          LastIterator twice if it is a constant (in the quads).
@@ -4754,16 +4639,19 @@ END ForLoopLastIteratorConstant ;
                          generation we do not know the value of BySym.
 *)
 
-PROCEDURE ForLoopLastIterator (LastIterator, e1, e2, BySym, ByType: CARDINAL ;
+PROCEDURE ForLoopLastIterator (LastIterator, e1, e2, BySym: CARDINAL ;
                                e1tok, e2tok, bytok: CARDINAL) ;
 BEGIN
-   IF IsVar (LastIterator)
+   IF NOT IsConst (BySym)
    THEN
-      ForLoopLastIteratorVariable (LastIterator, e1, e2, BySym, ByType,
-                                   e1tok, e2tok, bytok)
+      MetaErrorT1 (bytok,
+                   '{%E}the {%kFOR} loop {%kBY} expression must be constant, the expression {%1a} is variable',
+                   BySym) ;
+      MetaErrorDecl (BySym, TRUE)
    ELSE
-      ForLoopLastIteratorConstant (LastIterator, e1, e2, BySym, ByType,
-                                   e1tok, e2tok, bytok)
+      GenQuadOTypetok (bytok, LastForIteratorOp, LastIterator,
+                       Make2Tuple (e1, e2), BySym, FALSE, FALSE,
+                       bytok, MakeVirtual2Tok (e1tok, e2tok), bytok)
    END
 END ForLoopLastIterator ;
 
@@ -4792,6 +4680,8 @@ END ForLoopLastIterator ;
 
 
                     x := e1 ;
+                    Note that LASTVALUE is calculated during M2GenGCC
+                         after all the types have been resolved.
                     LASTVALUE := ((e2-e1) DIV BySym) * BySym + e1
                     IF BySym<0
                     THEN
@@ -4817,7 +4707,7 @@ END ForLoopLastIterator ;
                     Quadruples:
 
                     q     BecomesOp  IdentSym  _  e1
-                    q+    LastValue  := ((e1-e2) DIV by) * by + e1
+                    q+    LastForIteratorOp  LastValue  := ((e1-e2) DIV by) * by + e1
                     q+1   if >=      by        0  q+..2
                     q+2   GotoOp                  q+3
                     q+3   If >=      e1  e2       q+5
@@ -4879,7 +4769,7 @@ BEGIN
    e1 := doConvert (etype, e1) ;
    e2 := doConvert (etype, e2) ;
 
-   ForLoopLastIterator (LastIterator, e1, e2, BySym, ByType, e1tok, e2tok, bytok) ;
+   ForLoopLastIterator (LastIterator, e1, e2, BySym, e1tok, e2tok, bytok) ;
 
    (* q+1 if >=      by        0  q+..2 *)
    (* q+2 GotoOp                  q+3   *)
@@ -14063,6 +13953,11 @@ BEGIN
       END ;
       CASE Operator OF
 
+      LastForIteratorOp: WriteOperand(Operand1) ;
+                         fprintf0 (GetDumpFile (), '  ') ;
+                         WriteOperand(Operand2) ;
+                         fprintf0 (GetDumpFile (), '  ') ;
+                         WriteOperand(Operand3) |
       HighOp           : WriteOperand(Operand1) ;
                          fprintf1 (GetDumpFile (), '  %4d  ', Operand2) ;
                          WriteOperand(Operand3) |
@@ -14213,6 +14108,7 @@ BEGIN
 
    ArithAddOp               : fprintf0 (GetDumpFile (), 'Arith +           ') |
    InitAddressOp            : fprintf0 (GetDumpFile (), 'InitAddress       ') |
+   LastForIteratorOp        : fprintf0 (GetDumpFile (), 'LastForIterator   ') |
    LogicalOrOp              : fprintf0 (GetDumpFile (), 'Or                ') |
    LogicalAndOp             : fprintf0 (GetDumpFile (), 'And               ') |
    LogicalXorOp             : fprintf0 (GetDumpFile (), 'Xor               ') |
diff --git a/gcc/m2/gm2-compiler/M2Students.def b/gcc/m2/gm2-compiler/M2Students.def
index 04e1a9185a8..ec17fec55e3 100644
--- a/gcc/m2/gm2-compiler/M2Students.def
+++ b/gcc/m2/gm2-compiler/M2Students.def
@@ -31,15 +31,15 @@ DEFINITION MODULE M2Students ;
 
 FROM SYSTEM IMPORT ADDRESS ;
 FROM NameKey IMPORT Name ;
-EXPORT QUALIFIED StudentVariableCheck, CheckForVariableThatLooksLikeKeyword ;
+EXPORT QUALIFIED StudentVariableCheck, CheckVariableAgainstKeyword ;
 
 
 (*
-   CheckForVariableThatLooksLikeKeyword - checks for a identifier that looks the same
-                                          as a keyword except for its case.
+   CheckVariableAgainstKeyword - checks for a identifier that looks the same
+                                 as a keyword except for its case.
 *)
 
-PROCEDURE CheckForVariableThatLooksLikeKeyword (name: Name) ;
+PROCEDURE CheckVariableAgainstKeyword (name: Name) ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/M2Students.mod b/gcc/m2/gm2-compiler/M2Students.mod
index f269fbb3a6c..e7f1dd94370 100644
--- a/gcc/m2/gm2-compiler/M2Students.mod
+++ b/gcc/m2/gm2-compiler/M2Students.mod
@@ -74,17 +74,17 @@ END IsNotADuplicateName ;
 
 
 (*
-   CheckForVariableThatLooksLikeKeyword - checks for a identifier that looks the same
-                                          as a keyword except for its case.
+   CheckVariableAgainstKeyword - checks for a identifier that looks the same
+                                 as a keyword except for its case.
 *)
 
-PROCEDURE CheckForVariableThatLooksLikeKeyword (name: Name) ;
+PROCEDURE CheckVariableAgainstKeyword (name: Name) ;
 BEGIN
    IF StyleChecking
    THEN
       PerformVariableKeywordCheck (name)
    END
-END CheckForVariableThatLooksLikeKeyword ;
+END CheckVariableAgainstKeyword ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/M2SymInit.mod b/gcc/m2/gm2-compiler/M2SymInit.mod
index deca342f73f..2bc15d3bd0a 100644
--- a/gcc/m2/gm2-compiler/M2SymInit.mod
+++ b/gcc/m2/gm2-compiler/M2SymInit.mod
@@ -61,7 +61,7 @@ FROM SymbolTable IMPORT NulSym, ModeOfAddr, IsVar, IsRecord, GetSType,
                         IsReallyPointer, IsUnbounded,
                         IsVarient, IsFieldVarient, GetVarient,
                         IsVarArrayRef, GetSymName,
-                        IsType, IsPointer,
+                        IsType, IsPointer, IsTuple,
                         GetParameterShadowVar, IsParameter, GetLType,
                         GetParameterHeapVar, GetVarDeclTok ;
 
@@ -1165,6 +1165,21 @@ BEGIN
 END CheckRecordField ;
 
 
+(*
+   CheckLastForIterator -
+*)
+
+PROCEDURE CheckLastForIterator (op1tok: CARDINAL; op1: CARDINAL;
+                                op2tok: CARDINAL; op2: CARDINAL;
+                                warning: BOOLEAN; i: CARDINAL) ;
+BEGIN
+   SetVarInitialized (op1, FALSE, op1tok) ;
+   Assert (IsTuple (op2)) ;
+   CheckDeferredRecordAccess (op2tok, GetNth (op2, 1), FALSE, warning, i) ;
+   CheckDeferredRecordAccess (op2tok, GetNth (op2, 2), FALSE, warning, i) ;
+END CheckLastForIterator ;
+
+
 (*
    CheckBecomes -
 *)
@@ -1282,6 +1297,9 @@ BEGIN
    IfLessEquOp,
    IfGreOp,
    IfGreEquOp        : CheckComparison (op1tok, op1, op2tok, op2, warning, i) |
+   LastForIteratorOp : CheckLastForIterator (op1tok, op1, op2tok, op2,
+                                             warning, i) ;
+                       Assert (IsConst (op3)) |
    TryOp,
    ReturnOp,
    CallOp,
diff --git a/gcc/m2/gm2-compiler/P2SymBuild.mod b/gcc/m2/gm2-compiler/P2SymBuild.mod
index d51fd1c931a..70492705129 100644
--- a/gcc/m2/gm2-compiler/P2SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P2SymBuild.mod
@@ -153,7 +153,7 @@ FROM M2Comp IMPORT CompilingDefinitionModule,
                    CompilingProgramModule ;
 
 FROM M2Const IMPORT constType ;
-FROM M2Students IMPORT CheckForVariableThatLooksLikeKeyword ;
+FROM M2Students IMPORT CheckVariableAgainstKeyword ;
 IMPORT M2Error ;
 
 
@@ -1177,7 +1177,7 @@ BEGIN
    PopT (n) ;
    i := 1 ;
    WHILE i <= n DO
-      CheckForVariableThatLooksLikeKeyword (OperandT (n+1-i)) ;
+      CheckVariableAgainstKeyword (OperandT (n+1-i)) ;
       tok := OperandTok (n+1-i) ;
       Var := MakeVar (tok, OperandT (n+1-i)) ;
       AtAddress := OperandA (n+1-i) ;
diff --git a/gcc/testsuite/gm2/iso/fail/forloopbyvar.mod b/gcc/testsuite/gm2/iso/fail/forloopbyvar.mod
new file mode 100644
index 00000000000..4198d74f608
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/forloopbyvar.mod
@@ -0,0 +1,16 @@
+MODULE forloopbyvar ;
+
+
+PROCEDURE foo ;
+VAR
+   i, n: CARDINAL ;
+   s   : CARDINAL ;
+BEGIN
+   s := 1 ;
+   FOR i := 1 TO 10 BY s DO
+   END
+END foo ;
+
+BEGIN
+   foo
+END forloopbyvar.
diff --git a/gcc/testsuite/gm2/iso/fail/forloopbyvar4.mod b/gcc/testsuite/gm2/iso/fail/forloopbyvar4.mod
new file mode 100644
index 00000000000..241e3530262
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/forloopbyvar4.mod
@@ -0,0 +1,17 @@
+MODULE forloopbyvar4 ;
+
+PROCEDURE TestFor (boolarray: ARRAY OF BOOLEAN);
+VAR
+   k, m: CARDINAL ;
+BEGIN
+   k := 4 ;
+   FOR m := k * k TO HIGH (boolarray) BY k DO
+      boolarray[m] := FALSE;
+   END
+END TestFor ;
+
+VAR
+   boolarray: ARRAY [1..1024] OF BOOLEAN ;
+BEGIN
+   TestFor (boolarray)
+END forloopbyvar4.
diff --git a/gcc/testsuite/gm2/iso/fail/forloopbyvar5.mod b/gcc/testsuite/gm2/iso/fail/forloopbyvar5.mod
new file mode 100644
index 00000000000..28b881ff190
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/forloopbyvar5.mod
@@ -0,0 +1,17 @@
+MODULE forloopbyvar5 ;
+
+PROCEDURE TestFor (boolarray: ARRAY OF BOOLEAN);
+VAR
+   k, m: CARDINAL ;
+BEGIN
+   k := 4 ;
+   FOR m := k * k TO HIGH (boolarray) BY k*3 DO
+      boolarray[m] := FALSE;
+   END
+END TestFor ;
+
+VAR
+   boolarray: ARRAY [1..1024] OF BOOLEAN ;
+BEGIN
+   TestFor (boolarray)
+END forloopbyvar5.
diff --git a/gcc/testsuite/gm2/iso/pass/forloopbyvar3.mod b/gcc/testsuite/gm2/iso/pass/forloopbyvar3.mod
new file mode 100644
index 00000000000..d6064a67986
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/pass/forloopbyvar3.mod
@@ -0,0 +1,16 @@
+MODULE forloopbyvar3 ;
+
+PROCEDURE TestFor (boolarray: ARRAY OF BOOLEAN);
+VAR
+   m: CARDINAL ;
+BEGIN
+   FOR m := HIGH (boolarray) TO 2 BY -2 DO
+      boolarray[m] := FALSE;
+   END
+END TestFor ;
+
+VAR
+   boolarray: ARRAY [1..1024] OF BOOLEAN ;
+BEGIN
+   TestFor (boolarray)
+END forloopbyvar3.

commit 5ce16f91f0a34df883eb76f3856b9d5f0924e646
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Dec 4 00:27:27 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 10fb3a1ec86..fb77eb60cee 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2024-12-03  Tamar Christina  <tamar.christina@arm.com>
+
+	Backported from master:
+	2024-11-22  Tamar Christina  <tamar.christina@arm.com>
+
+	PR tree-optimization/116463
+	* tree-vect-slp-patterns.cc (complex_mul_pattern::matches,
+	complex_fms_pattern::matches): Try swapping operands on multiply.
+
 2024-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index ba184185f0b..74f6fd4e4e4 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241203
+20241204
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 6cec473dd18..15c2dc95024 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,531 @@
+2024-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-15  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117371
+	* gm2-compiler/M2Base.mod (MixMetaTypes): Add parameter TRUE to
+	MetaErrorDecl.
+	(IsUserType): Test against ZType.
+	(MixTypesDecl): Test for ZType.
+	* gm2-compiler/M2GenGCC.mod (ErrorMessageDecl): Add parameter TRUE to
+	MetaErrorDecl.
+	(CodeLastForIterator): New procedure.
+	(FoldLastForIterator): Ditto.
+	(PerformLastForIterator): Ditto.
+	(CodeStatement): Add case clause for LastForIteratorOp.
+	(ErrorMessageDecl): Add iserror parameter.
+	Call MetaErrorDecl with iserror parameter.
+	(checkIncorrectMeta): Call MetaErrorDecl with TRUE parameter.
+	(CheckBinaryExpressionTypes): Ditto.
+	(CheckElementSetTypes): Ditto.
+	* gm2-compiler/M2LexBuf.def (MakeVirtualTok): Update comment
+	detailing the fall back when UnknownTokenNo is encountered.
+	(MakeVirtual2Tok): Ditto.
+	* gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Check against
+	UnknownTokenNo.
+	(MakeVirtual2Tok): Ditto.
+	* gm2-compiler/M2MetaError.def (MetaErrorDecl): Add error parameter.
+	* gm2-compiler/M2MetaError.mod (MetaErrorDecl): Add error
+	parameter.
+	Issue warning if error is FALSE.
+	* gm2-compiler/M2Quads.def (QuadOperator): Add LastForIteratorOp.
+	* gm2-compiler/M2Quads.mod (AddQuadInformation): New case clause
+	LastForIteratorOp.
+	(CheckAddTuple2Read): New procedure.
+	(BuildForLoopToRangeCheck): Remove.
+	(ForLoopLastIteratorVariable): Ditto.
+	(ForLoopLastIteratorConstant): Ditto.
+	(ForLoopLastIterator): Reimplement.
+	(BuildForToByDo): Remove ByType from call to ForLoopLastIterator.
+	(WriteQuad): New case clause LastForIteratorOp.
+	(WriteOperator): Ditto.
+	* gm2-compiler/M2Students.def
+	(CheckForVariableThatLooksLikeKeyword): Replace with ...
+	(CheckVariableAgainstKeyword): ... this.
+	* gm2-compiler/M2Students.mod
+	(CheckForVariableThatLooksLikeKeyword): Replace with ...
+	(CheckVariableAgainstKeyword): ... this.
+	* gm2-compiler/M2SymInit.mod (CheckLastForIterator): New
+	procedure.
+	(CheckReadBeforeInitQuad): New case clause to call
+	CheckLastForIterator.
+	* gm2-compiler/P2SymBuild.mod: Replace
+	CheckForVariableThatLooksLikeKeyword with CheckVariableAgainstKeyword.
+
+2024-12-03  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-15  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* Make-lang.in (m2/gm2-compiler-boot/P0SyntaxCheck.c):
+	New rule.
+	(m2/gm2-compiler-boot/P0SyntaxCheck.o): Ditto.
+	(m2/gm2-compiler-boot/P1Build.c): Ditto.
+	(m2/gm2-compiler-boot/P1Build.o): Ditto.
+	(m2/gm2-compiler-boot/P2Build.c): Ditto.
+	(m2/gm2-compiler-boot/P2Build.o): Ditto.
+	(m2/gm2-compiler-boot/P3Build.c): Ditto.
+	(m2/gm2-compiler-boot/P3Build.o): Ditto.
+	(m2/gm2-compiler-boot/PCBuild.c): Ditto.
+	(m2/gm2-compiler-boot/PCBuild.o): Ditto.
+	(m2/gm2-compiler-boot/PHBuild.c): Ditto.
+	(m2/gm2-compiler-boot/PHBuild.o): Ditto.
+
+2024-12-03  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-11  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2-compiler/M2Base.def (MixTypes): Rename parameters.
+	(MixTypesDecl): New procedure function.
+	* gm2-compiler/M2Base.mod (BuildOrdFunctions): Add
+	DefProcedure parameter to PutFunction.
+	(BuildTruncFunctions): Ditto.
+	(BuildFloatFunctions): Ditto.
+	(BuildIntFunctions): Ditto.
+	(InitBaseFunctions): Ditto.
+	(MixTypesDecl): New procedure function.
+	(MixTypes): Reimplement.
+	* gm2-compiler/M2Check.mod (checkProcType): Replace
+	NoOfParam with NoOfParamAny.
+	Replace IsVarParam with IsVarParamAny.
+	(checkProcedureProcType): Ditto.
+	* gm2-compiler/M2Error.def: Remove unnecessary export qualified list.
+	* gm2-compiler/M2GCCDeclare.mod: Replace NoOfParam with NoOfParamAny.
+	Replace IsVarParam with IsVarParamAny.
+	(DeclareProcedureToGccWholeProgram): Rename son to
+	Variable.
+	(DeclareProcedureToGccSeparateProgram): Ditto.
+	(PrintKind): New procedure.
+	(PrintProcedureParameters): Ditto.
+	(PrintProcedureReturnType): Ditto.
+	(PrintProcedure): Reimplement.
+	(PrintProcTypeParameters): New procedure.
+	(PrintProcType): Ditto.
+	(DeclareProcType): Rename Son to Parameter.
+	* gm2-compiler/M2GenGCC.mod: Replace NoOfParam with NoOfParamAny.
+	Replace IsVarParam with IsVarParamAny.
+	(ErrorMessageDecl): New procedure.
+	(checkIncorrectMeta): Replace call to MetaErrorT2 with
+	ErrorMessageDecl.
+	(ComparisonMixTypes): Add varleft and varright parameters.
+	Adjust all callers of ComparisonMixTypes.
+	* gm2-compiler/M2MetaError.def (MetaErrorDecl): New procedure.
+	* gm2-compiler/M2MetaError.mod (MetaErrorDecl): New procedure.
+	* gm2-compiler/M2Options.def (SetXCode): Add -fd flag description
+	to comment.
+	* gm2-compiler/M2Options.mod (SetXCode): Add -fd flag description
+	to comment.
+	* gm2-compiler/M2Quads.mod (CheckBreak): New procedure.
+	Replace NoOfParam with NoOfParamAny.
+	Replace IsVarParam with IsVarParamAny.
+	(FailParameter): Reimplement using GetVarDeclFullTok.
+	Generate message for formal parameter, actual parameter and
+	declaration of actual parameter.
+	(WarnParameter): Ditto.
+	(CheckBuildFunction): Reimplement error message using MetaErrorT1.
+	* gm2-compiler/M2Range.mod: Replace NoOfParam with NoOfParamAny.
+	Replace IsVarParam with IsVarParamAny.
+	* gm2-compiler/M2Scaffold.mod (DeclareScaffoldFunctions): Call
+	PutProcedureDefined after every procedure declaration.
+	(DeclareArgEnvParams): Add ProperProcedure parameter to PutParam.
+	* gm2-compiler/M2Size.mod (MakeSize): Add DefProcedure parameter
+	to PutFunction.
+	* gm2-compiler/M2Swig.mod: Replace NoOfParam with NoOfParamAny.
+	Replace IsVarParam with IsVarParamAny.
+	* gm2-compiler/M2SymInit.mod: Ditto.
+	* gm2-compiler/M2System.mod (InitSystem): Add DefProcedure
+	parameter to PutFunction.
+	* gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Reimplement.
+	(EndBuildProcedure): Ditto.
+	(EndBuildForward): Ditto.
+	* gm2-compiler/P2Build.bnf (BuildProcedureDefinedByForward):
+	Remove.
+	(BuildProcedureDefinedByProper): Ditto.
+	(ForwardDeclaration): Remove BuildProcedureDefinedByForward.
+	(BuildNoReturnAttribute): Remove parameter.
+	* gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): Remove
+	parameter.
+	(BuildProcedureDefinedByForward): Remove.
+	(BuildProcedureDefinedByProper): Ditto.
+	* gm2-compiler/P2SymBuild.mod (Import): Remove
+	AreParametersDefinedInDefinition,
+	AreParametersDefinedInImplementation,
+	AreProcedureParametersDefined,
+	ParametersDefinedInDefinition,
+	ParametersDefinedInImplementation,
+	GetProcedureDeclaredDefinition,
+	GetProcedureDeclaredForward,
+	GetProcedureDeclaredProper,
+	GetParametersDefinedByForward,
+	GetParametersDefinedByProper and
+	PutProcedureNoReturn.
+	Add PutProcedureParametersDefined,
+	GetProcedureParametersDefined,
+	GetProcedureKindDesc,
+	GetProcedureDeclaredTok,
+	GetProcedureKind,
+	GetReturnTypeTok,
+	SetReturnOptional,
+	IsReturnOptional,
+	PutProcedureNoReturn and
+	PutProcedureDefined.
+	(Debug): New procedure.
+	(P2StartBuildDefModule): Space formatting.
+	(BuildVariable): Reimplement to record full declaration.
+	(StartBuildProcedure): Reimplement using token to determine
+	the kind of procedure.
+	(BuildProcedureHeading): Ditto.
+	(BuildFPSection): Ditto.
+	(BuildVarArgs): Ditto.
+	(BuildOptArg): Ditto.
+	(BuildProcedureDefinedByForward): Remove.
+	(BuildProcedureDefinedByProper): Ditto.
+	(BuildFormalParameterSection): Reimplement so that the
+	quad stack is unchanged.
+	(CheckFormalParameterSection): Ditto.
+	(RemoveFPParameters): New procedure.
+	(ParameterError): Reimplement.
+	(StartBuildFormalParameters): Add annotation.
+	(ParameterMismatch): Reimplement.
+	(EndBuildFormalParameters): Reimplement to check against
+	all procedure kinds.
+	(GetSourceDesc): Remove.
+	(GetCurSrcDesc): Ditto.
+	(GetDeclared): Ditto.
+	(ReturnTypeMismatch): Reimplement.
+	(BuildFunction): Ditto.
+	(BuildOptFunction): Ditto.
+	(CheckOptFunction): New procedure.
+	(BuildNoReturnAttribute): Remove parameter and obtain
+	procedure symbol from quad stack.
+	(CheckProcedureReturn): New procedure.
+	* gm2-compiler/P3SymBuild.mod (BuildOptArgInitializer):
+	Preserve ProcSym tok on the quad stack.
+	Add Assert.
+	* gm2-compiler/PCSymBuild.mod (fixupProcedureType): Replace
+	NoOfParam with NoOfParamAny.
+	* gm2-compiler/SymbolTable.def (GetNthParam): Add ProcedureKind
+	parameter.
+	(PutFunction): Ditto.
+	(PutOptFunction): Ditto.
+	(IsReturnOptional): Ditto.
+	(PutParam): Ditto.
+	(PutVarParam): Ditto.
+	(PutParamName): Ditto.
+	(PutProcedureNoReturn): Ditto.
+	(IsProcedureNoReturn): Ditto.
+	(IsVarParam): Ditto.
+	(IsUnboundedParam): Ditto.
+	(NoOfParam): Ditto.
+	(ForeachLocalSymDo): Ditto.
+	(GetProcedureKind): Ditto.
+	(GetProcedureDeclaredTok): Ditto.
+	(PutProcedureDeclaredTok): Ditto.
+	(GetReturnTypeTok): Ditto.
+	(PutReturnTypeTok): Ditto.
+	(PutParametersDefinedByForward): New procedure.
+	(PutProcedureParametersDefined): Ditto.
+	(PutProcedureDefined): Ditto.
+	(GetParametersDefinedByProper): Ditto.
+	(GetProcedureDeclaredForward): Ditto.
+	(GetProcedureDeclaredProper): Ditto.
+	(PutProcedureDeclaredProper): Ditto.
+	(GetProcedureDeclaredDefinition): Ditto.
+	(PutProcedureDeclaredDefinition): Ditto.
+	(GetProcedureDefined): Ditto.
+	(PutUseOptArg): Ditto.
+	(UsesOptArg): Ditto.
+	(PutOptArgInit): Ditto.
+	(SetReturnOptional): Ditto.
+	(UsesOptArgAny): Ditto.
+	(GetProcedureKindDesc): Ditto.
+	(IsReturnOptionalAny): New procedure function.
+	(GetNthParamAny): Ditto.
+	(NoOfParamAny): Ditto.
+	(IsProcedureAnyNoReturn): Ditto.
+	(AreParametersDefinedInImplementation): Remove.
+	(ParametersDefinedInImplementation): Ditto.
+	(AreParametersDefinedInDefinition): Ditto.
+	(AreProcedureParametersDefined): Ditto.
+	(ParametersDefinedInDefinition): Ditto.
+	(ProcedureParametersDefined): Ditto.
+	(PutParametersDefinedByProper): Ditto.
+	(PutProcedureDeclaredForward): Ditto.
+	(GetParametersDefinedByForward): Ditto.
+	(GetProcedureParametersDefined): Ditto.
+	(PushOffset): Ditto.
+	(PopSize): Ditto.
+	(PushParamSize): Ditto.
+	(PushSumOfLocalVarSize): Ditto.
+	(PushSumOfParamSize): Ditto.
+	(PopOffset): Ditto.
+	(PopSumOfParamSize): Ditto.
+	* gm2-compiler/SymbolTable.mod (MakeProcedure): Reimplement.
+	(PutProcedureNoReturn): Add ProcedureKind parameter.
+	(GetNthParam): Ditto.
+	(PutFunction): Ditto.
+	(PutOptFunction): Ditto.
+	(IsReturnOptional): Ditto.
+	(MakeVariableForParam): Ditto.
+	(PutParam): Ditto.
+	(PutVarParam): Ditto.
+	(PutParamName): Ditto.
+	(AddParameter): Ditto.
+	(IsVarParam): Ditto.
+	(IsVarParamAny): Ditto.
+	(NoOfParam): Ditto.
+	(HasVarParameters): Ditto.
+	(IsUnboundedParam): Ditto.
+	(PutUseVarArgs): Ditto.
+	(UsesVarArgs): Ditto.
+	(PutUseOptArg): Ditto.
+	(UsesOptArg): Ditto.
+	(UsesOptArgAny): Ditto.
+	(PutOptArgInit): Ditto.
+	(IsProcedure): Ditto.
+	(IsPointer): Ditto.
+	(IsRecord): Ditto.
+	(IsArray): Ditto.
+	(IsEnumeration): Ditto.
+	(IsUnbounded): Ditto.
+	(IsSet): Ditto.
+	(IsSetPacked): Ditto.
+	(CheckUnbounded): Ditto.
+	(IsOAFamily): Ditto.
+	(IsModuleWithinProcedure): Ditto.
+	(GetDeclaredDef): Ditto.
+	(GetDeclaredMod): Ditto.
+	(GetDeclaredFor): Ditto.
+	(GetProcedureDeclaredForward): Ditto.
+	(GetProcedureKind): Ditto.
+	(PutProcedureDeclaredForward): Ditto.
+	(GetProcedureDeclaredTok): Ditto.
+	(GetProcedureDeclaredProper): Ditto.
+	(PutProcedureDeclaredTok): Ditto.
+	(PutProcedureDeclaredProper): Ditto.
+	(GetReturnTypeTok): Ditto.
+	(GetProcedureDeclaredDefinition): Ditto.
+	(PutReturnTypeTok): Ditto.
+	(PutProcedureDeclaredDefinition): Ditto.
+	(GetProcedureKindDesc): Ditto.
+	(IsProcedureVariable): Ditto.
+	(IsAModula2Type): Ditto.
+	(GetParam): Ditto.
+	(ProcedureParametersDefined): Ditto.
+	(AreParametersDefinedInImplementation): Remove.
+	(AreParametersDefinedInDefinition): Ditto.
+	(AreProcedureParametersDefined): Ditto.
+	(IsSizeSolved): Ditto.
+	(IsOffsetSolved): Ditto.
+	(IsValueSolved): Ditto.
+	(IsSumOfParamSizeSolved): Ditto.
+	(PushSize): Ditto.
+	(PushOffset): Ditto.
+	(PopSize): Ditto.
+	(PushValue): Ditto.
+	(PushParamSize): Ditto.
+	(PushSumOfLocalVarSize): Ditto.
+	(PushSumOfParamSize): Ditto.
+	(PushVarSize): Ditto.
+	(PopValue): Ditto.
+	(PopSize): Ditto.
+	(PopOffset): Ditto.
+	(PopSumOfParamSize): Ditto.
+	(PutParametersDefinedByForward): New procedure.
+	(PutProcedureParametersDefined): Ditto.
+	(PutProcedureDefined): Ditto.
+	(GetParametersDefinedByProper): Ditto.
+	(GetProcedureDeclaredForward): Ditto.
+	(GetProcedureDeclaredProper): Ditto.
+	(PutProcedureDeclaredProper): Ditto.
+	(GetProcedureDeclaredDefinition): Ditto.
+	(PutProcedureDeclaredDefinition): Ditto.
+	(GetProcedureDefined): Ditto.
+	(PutUseOptArg): Ditto.
+	(UsesOptArg): Ditto.
+	(PutOptArgInit): Ditto.
+	(SetReturnOptional): Ditto.
+	(UsesOptArgAny): Ditto.
+	(GetProcedureKindDesc): Ditto.
+	(PutParametersDefinedByProper): Ditto.
+	(GetParametersDefinedByProper): Ditto.
+	(IsReturnOptionalAny): New procedure function.
+	(IsProcedureAnyDefaultBoolean): Ditto.
+	(IsProcedureAnyBoolean): Ditto.
+	(IsProcedureAnyNoReturn): Ditto.
+	(GetNthParamAny): Ditto.
+	(NoOfParamAny): Ditto.
+	(IsProcedureAnyNoReturn): Ditto.
+	(GetProcedureKind): Ditto.
+	(IsVarParamAny): Ditto.
+	(IsUnboundedParamAny): Ditto.
+	(ForeachParamSymDo): New comment.
+	* gm2-libs-coroutines/SYSTEM.mod: Reformat.
+
+2024-12-03  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-10-20  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2-compiler/M2MetaError.mod (op): Corrected ordering.
+	* gm2-compiler/P2SymBuild.def: Remove comment.
+	* gm2-compiler/P2SymBuild.mod (GetComparison): Replace
+	the word less with fewer.
+
+2024-12-03  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-10-19  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2-compiler/M2MetaError.mod (op): Alphabetically order
+	each case label and comment.
+
+2024-12-03  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-10-19  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115328
+	* gm2-compiler/M2MetaError.def: Extend comment documentating
+	new format specifiers.
+	* gm2-compiler/M2MetaError.mod (GetTokProcedure): New declaration.
+	(doErrorScopeModule): New procedure.
+	(doErrorScopeForward): Ditto.
+	(doErrorScopeMod): Reimplement.
+	(doErrorScopeFor): New procedure.
+	(declarationMod): Ditto.
+	(doErrorScopeDefinition): Ditto.
+	(doErrorScopeDef): Reimplement.
+	(declaredDef): New procedure.
+	(declaredFor): Ditto.
+	(doErrorScopeProc): Ditto.
+	(declaredVar): Ditto.
+	(declaredType): Ditto.
+	(declaredFull): Ditto.
+	* gm2-compiler/M2Options.mod (SetAutoInit): Add missing
+	return type.
+	(GetDumpGimple): Remove duplicate implementation.
+	* gm2-compiler/M2Quads.def (DupFrame): New procedure.
+	* gm2-compiler/M2Quads.mod (DupFrame): New procedure.
+	* gm2-compiler/M2Reserved.def (ForwardTok): New variable.
+	* gm2-compiler/M2Reserved.mod (ForwardTok): Initialize variable.
+	* gm2-compiler/M2Scaffold.mod (DeclareArgEnvParams): Add
+	tokno parameter for call to PutParam.
+	* gm2-compiler/P0SymBuild.def (EndForward): New procedure.
+	* gm2-compiler/P0SymBuild.mod (EndForward): New procedure.
+	* gm2-compiler/P0SyntaxCheck.bnf (BlockAssert): New procedure.
+	(ProcedureDeclaration): Reimplement rule.
+	(PostProcedureHeading): New rule.
+	(ForwardDeclaration): Ditto.
+	(ProperProcedure): Ditto.
+	* gm2-compiler/P1Build.bnf (ProcedureDeclaration): Reimplement rule.
+	(PostProcedureHeading): New rule.
+	(ForwardDeclaration): Ditto.
+	(ProperProcedure): Ditto.
+	* gm2-compiler/P1SymBuild.def (Export): Removed unnecessary
+	export.
+	(EndBuildForward): New procedure.
+	* gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Reimplement.
+	(EndBuildProcedure): Ditto.
+	(EndBuildForward): Ditto.
+	* gm2-compiler/P2Build.bnf (ProcedureDeclaration): Reimplement rule.
+	(PostProcedureHeading): New rule.
+	(ForwardDeclaration): Ditto.
+	(ProperProcedure): Ditto.
+	* gm2-compiler/P2SymBuild.def (BuildProcedureDefinedByForward):
+	New procedure.
+	(BuildProcedureDefinedByProper): Ditto.
+	(CheckProcedure): Ditto.
+	(EndBuildForward): Ditto.
+	* gm2-compiler/P2SymBuild.mod (EndBuildProcedure): Reimplement.
+	(EndBuildForward): New procedure.
+	(BuildFPSection): Reimplement to allow forward declaration or
+	checking of parameters.
+	(BuildProcedureDefinedByProper): New procedure.
+	(BuildProcedureDefinedByForward): Ditto
+	(FailParameter): Remove.
+	(ParameterError): New procedure.
+	(ParameterMismatch): Ditto.
+	(EndBuildFormalParameters): Add parameter number check.
+	(GetComparison): New procedure function.
+	(GetSourceDesc): Ditto.
+	(GetCurSrcDesc): Ditto.
+	(GetDeclared): New procedure.
+	(ReturnTypeMismatch): Ditto.
+	(BuildFunction): Reimplement.
+	(CheckProcedure): New procedure.
+	(CheckFormalParameterSection): Reimplement using ParameterError.
+	* gm2-compiler/P3Build.bnf (ProcedureDeclaration): Reimplement rule.
+	(PostProcedureHeading): New rule.
+	(ForwardDeclaration): Ditto.
+	(ProperProcedure): Ditto.
+	* gm2-compiler/P3SymBuild.def (Export): Remove unnecessary export.
+	(EndBuildForward): New procedure.
+	* gm2-compiler/P3SymBuild.mod (EndBuildForward): New procedure.
+	* gm2-compiler/PCBuild.bnf (ProcedureDeclaration): Reimplement rule.
+	(PostProcedureHeading): New rule.
+	(ForwardDeclaration): Ditto.
+	(ProperProcedure): Ditto.
+	* gm2-compiler/PCSymBuild.def (EndBuildForward): New procedure.
+	* gm2-compiler/PCSymBuild.mod (EndBuildForward): Ditto.
+	* gm2-compiler/PHBuild.bnf (ProcedureDeclaration): Reimplement rule.
+	(PostProcedureHeading): New rule.
+	(ForwardDeclaration): Ditto.
+	(ProperProcedure): Ditto.
+	* gm2-compiler/SymbolTable.def (PutVarTok): New procedure.
+	(PutParam): Add typetok parameter.
+	(PutVarParam): Ditto.
+	(PutParamName): Ditto.
+	(GetDeclaredFor): New procedure function.
+	(AreParametersDefinedInDefinition): Ditto.
+	(PutParametersDefinedByForward): New procedure.
+	(GetParametersDefinedByForward): New procedure function.
+	(PutParametersDefinedByProper): New procedure.
+	(GetParametersDefinedByProper): New procedure function.
+	(GetProcedureDeclaredForward): Ditto.
+	(PutProcedureDeclaredForward): New procedure.
+	(GetProcedureDeclaredProper): New procedure function.
+	(PutProcedureDeclaredProper): New procedure.
+	(GetProcedureDeclaredDefinition): New procedure function.
+	(PutProcedureDeclaredDefinition): New procedure.
+	(GetVarDeclTypeTok): Ditto.
+	(PutVarDeclTypeTok): New procedure.
+	(GetVarDeclTok): Ditto.
+	(PutVarDeclTok): New procedure.
+	(GetVarDeclFullTok): Ditto.
+	* gm2-compiler/SymbolTable.mod (ProcedureDecl): New record type.
+	(VarDecl): Ditto.
+	(SymProcedure): Add new field Declared.
+	(SymVar): Add new field Declared.
+	(PutVarTok): New procedure.
+	(PutParam): Add typetok parameter.
+	(PutVarParam): Ditto.
+	(PutParamName): Ditto.
+	(GetDeclaredFor): New procedure function.
+	(AreParametersDefinedInDefinition): Ditto.
+	(PutParametersDefinedByForward): New procedure.
+	(GetParametersDefinedByForward): New procedure function.
+	(PutParametersDefinedByProper): New procedure.
+	(GetParametersDefinedByProper): New procedure function.
+	(GetProcedureDeclaredForward): Ditto.
+	(PutProcedureDeclaredForward): New procedure.
+	(GetProcedureDeclaredProper): New procedure function.
+	(PutProcedureDeclaredProper): New procedure.
+	(GetProcedureDeclaredDefinition): New procedure function.
+	(PutProcedureDeclaredDefinition): New procedure.
+	(GetVarDeclTypeTok): Ditto.
+	(PutVarDeclTypeTok): New procedure.
+	(GetVarDeclTok): Ditto.
+	(PutVarDeclTok): New procedure.
+	(GetVarDeclFullTok): Ditto.
+	(MakeProcedure): Initialize Declared field.
+	(MakeVar): Initialize Declared field.
+	* gm2-libs-log/FileSystem.def (FileNameChar): Add
+	missing return type.
+	* m2.flex: Add FORWARD keyword.
+
 2024-12-02  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 335d8effda5..15e832e10ee 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2024-12-03  Joseph Myers  <josmyers@redhat.com>
+
+	* zh_CN.po: Update.
+
 2024-09-19  Joseph Myers  <josmyers@redhat.com>
 
 	* zh_CN.po: Update.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2105610fda4..b6900ed3405 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,48 @@
+2024-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-15  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117371
+	* gm2/iso/fail/forloopbyvar.mod: New test.
+	* gm2/iso/fail/forloopbyvar4.mod: New test.
+	* gm2/iso/fail/forloopbyvar5.mod: New test.
+	* gm2/iso/pass/forloopbyvar3.mod: New test.
+
+2024-12-03  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-11  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	* gm2/iso/fail/badexpression3.mod: New test.
+	* gm2/iso/fail/badparam4.def: New test.
+	* gm2/iso/fail/badparam4.mod: New test.
+
+2024-12-03  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-10-19  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115328
+	* gm2/iso/fail/badparam.def: New test.
+	* gm2/iso/fail/badparam.mod: New test.
+	* gm2/iso/fail/badparam2.def: New test.
+	* gm2/iso/fail/badparam2.mod: New test.
+	* gm2/iso/fail/badparam3.def: New test.
+	* gm2/iso/fail/badparam3.mod: New test.
+	* gm2/iso/fail/badparamarray.def: New test.
+	* gm2/iso/fail/badparamarray.mod: New test.
+	* gm2/iso/fail/simpledef1.def: New test.
+	* gm2/iso/fail/simpledef1.mod: New test.
+	* gm2/iso/fail/simpleforward.mod: New test.
+	* gm2/iso/fail/simpleforward2.mod: New test.
+	* gm2/iso/fail/simpleforward3.mod: New test.
+	* gm2/iso/fail/simpleforward4.mod: New test.
+	* gm2/iso/fail/simpleforward5.mod: New test.
+	* gm2/iso/fail/simpleforward7.mod: New test.
+	* gm2/iso/pass/simpleforward.mod: New test.
+	* gm2/iso/pass/simpleforward6.mod: New test.
+
 2024-12-02  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:

commit f43c2ee451c57025065c91fbdc067128e93d2ec4
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Wed Dec 4 08:01:13 2024 +0000

    [PATCH] PR modula2/117371: Add check for zero step in for loop
    
    This patch is a follow on from PR modula2/117371 which could include
    a check to enforce the ISO restriction on a zero for loop step.
    
    gcc/m2/ChangeLog:
    
            PR modula2/117371
            * gm2-compiler/M2GenGCC.mod (PerformLastForIterator):
            Add check for zero step value and issue an error message.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/117371
            * gm2/iso/fail/forloopbyzero.mod: New test.
    
    (cherry picked from commit e37641458e9e1be1a81ff7fab4f4ab8398147d80)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2GenGCC.mod b/gcc/m2/gm2-compiler/M2GenGCC.mod
index 1cb60a87a84..b6e34e019b0 100644
--- a/gcc/m2/gm2-compiler/M2GenGCC.mod
+++ b/gcc/m2/gm2-compiler/M2GenGCC.mod
@@ -529,7 +529,15 @@ BEGIN
       e2 := GetNth (tuple, 2) ;
       e1tree := Mod2Gcc (e1) ;
       e2tree := Mod2Gcc (e2) ;
-      IF CompareTrees (incrtree, GetIntegerZero (location)) > 0
+      IF CompareTrees (incrtree, GetIntegerZero (location)) = 0
+      THEN
+         MetaErrorT0 (lastpos,
+                      'the {%kFOR} loop step value must not be zero') ;
+         MetaErrorDecl (incr, TRUE) ;
+         NoChange := FALSE ;
+         SubQuad (quad) ;
+         success := FALSE
+      ELSIF CompareTrees (incrtree, GetIntegerZero (location)) > 0
       THEN
          (* If incr > 0 then LastIterator := ((e2-e1) DIV incr) * incr + e1.  *)
          expr := BuildSub (location, e2tree, e1tree, FALSE) ;
@@ -3537,9 +3545,9 @@ BEGIN
    IF StrictTypeChecking AND
       (NOT AssignmentTypeCompatible (virtpos, "", des, expr))
    THEN
-      MetaErrorT2 (virtpos,
-                   'assignment check caught mismatch between {%1Ead} and {%2ad}',
-                   des, expr)
+      ErrorMessageDecl (virtpos,
+                        'assignment check caught mismatch between {%1Ead} and {%2ad}',
+                        des, expr, TRUE)
    END ;
    IF IsConstString (expr) AND (NOT IsConstStringKnown (expr))
    THEN
@@ -3554,9 +3562,9 @@ BEGIN
       checkDeclare (des) ;
       IF NOT PrepareCopyString (becomespos, length, exprt, expr, SkipType (GetType (des)))
       THEN
-         MetaErrorT2 (virtpos,
-                      'string constant {%1Ea} is too large to be assigned to the array {%2ad}',
-                      expr, des)
+         ErrorMessageDecl (virtpos,
+                           'string constant {%1Ea} is too large to be assigned to the array {%2ad}',
+                           expr, des, TRUE)
       END ;
       AddStatement (location,
                     MaybeDebugBuiltinMemcpy (location,
@@ -3590,7 +3598,7 @@ BEGIN
                                          FoldConstBecomes (virtpos, des, expr))
             END
          ELSE
-            SubQuad (quad)  (* we don't want multiple errors for the quad.  *)
+            SubQuad (quad)  (* We don't want multiple errors for the quad.  *)
          END
       END
    END
diff --git a/gcc/testsuite/gm2/iso/fail/forloopbyzero.mod b/gcc/testsuite/gm2/iso/fail/forloopbyzero.mod
new file mode 100644
index 00000000000..912eccfddff
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/forloopbyzero.mod
@@ -0,0 +1,18 @@
+MODULE forloopbyzero ;
+
+CONST
+   ConstExp = 10 - 10 ;
+
+PROCEDURE test ;
+VAR
+   i: CARDINAL ;
+BEGIN
+   FOR i := 1 TO 10 BY ConstExp DO
+
+   END
+END test ;
+
+
+BEGIN
+   test
+END forloopbyzero.

commit 5902ea4a341419d243725e7a52800e297159ff9d
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Wed Dec 4 09:03:36 2024 +0000

    [PATCH] PR modula2/117660: Errors referring to variables of type array could display full declaration
    
    This patch ensures that the tokens defining the full declaration of an
    ARRAY type is stored in the symbol table and used during production of
    error messages.
    
    gcc/m2/ChangeLog:
    
            PR modula2/117660
            * gm2-compiler/P2Build.bnf (ArrayType): Update tok with the
            composite token produced during array type declaration.
            * gm2-compiler/P2SymBuild.mod (EndBuildArray): Create the
            combinedtok and store it into the symbol table.
            Also ensure combinedtok is pushed to the quad stack.
            (BuildFieldArray): Preserve typetok.
            * gm2-compiler/SymbolTable.def (PutArray): Rename parameters.
            * gm2-compiler/SymbolTable.mod (PutArray): Rename parameters.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/117660
            * gm2/iso/fail/arraymismatch.mod: New test.
    
    (cherry picked from commit ab7abf1db09519a92f4a02af30ed6b834264c45e)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/P2Build.bnf b/gcc/m2/gm2-compiler/P2Build.bnf
index 9e1145e3f81..e3db5f077dc 100644
--- a/gcc/m2/gm2-compiler/P2Build.bnf
+++ b/gcc/m2/gm2-compiler/P2Build.bnf
@@ -54,6 +54,7 @@ FROM M2Printf IMPORT printf0 ;
 FROM M2Debug IMPORT Assert ;
 
 FROM M2Quads IMPORT PushT, PopT, PushTF, PopTF, PopNothing, OperandT, PushTFA, Top, Annotate,
+                    OperandTok,
                     PushTFtok, PopTFtok, PushTFAtok, PopTtok, PushTtok,
                     StartBuildInit,
                     EndBuildInit,
@@ -783,8 +784,9 @@ ArrayType := "ARRAY"                                                       % VAR
                 SimpleType                                                 % BuildFieldArray ; %
               } "OF"                                                       % BuildNulName ; %
              Type                                                          % EndBuildArray ;
+                                                                             tok := OperandTok (1) ;
                                                                              PopNothing ;
-                                                                             PushTtok(arrayType, tok) %
+                                                                             PushTtok (arrayType, tok) %
            =:
 
 RecordType := "RECORD"                                                     % BuildRecord %
diff --git a/gcc/m2/gm2-compiler/P2SymBuild.mod b/gcc/m2/gm2-compiler/P2SymBuild.mod
index 70492705129..288d0cac03b 100644
--- a/gcc/m2/gm2-compiler/P2SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P2SymBuild.mod
@@ -1281,7 +1281,7 @@ BEGIN
             THEN
                IF isunknown
                THEN
-                  MetaError2('attempting to declare a type {%1ad} to a type which is itself unknown {%2ad}',
+                  MetaError2('attempting to declare a type {%1ad} to a type which is itself and also unknown {%2ad}',
                              Sym, Type)
                ELSE
                   MetaError1('attempting to declare a type {%1ad} as itself', Sym)
@@ -2896,15 +2896,20 @@ END StartBuildArray ;
 
 PROCEDURE EndBuildArray ;
 VAR
+   typetok,
+   arraytok,
+   combinedtok: CARDINAL ;
    TypeSym,
-   ArraySym: CARDINAL ;
-BEGIN
-   PopT(TypeSym) ;
-   PopT(ArraySym) ;
-   Assert(IsArray(ArraySym)) ;
-   PutArray(ArraySym, TypeSym) ;
-   PushT(ArraySym) ;
-   Annotate("%1s(%1d)||array type")
+   ArraySym   : CARDINAL ;
+BEGIN
+   PopTtok (TypeSym, typetok) ;
+   PopTtok (ArraySym, arraytok) ;
+   Assert (IsArray (ArraySym)) ;
+   combinedtok := MakeVirtual2Tok (arraytok, typetok) ;
+   PutArray (ArraySym, TypeSym) ;
+   PutDeclared (combinedtok, ArraySym) ;
+   PushTtok (ArraySym, combinedtok) ;
+   Annotate ("%1s(%1d)||array type")
 END EndBuildArray ;
 
 
@@ -2928,15 +2933,17 @@ END EndBuildArray ;
 
 PROCEDURE BuildFieldArray ;
 VAR
+   typetok,
+   arraytok  : CARDINAL ;
    Subscript,
    Type,
    Array     : CARDINAL ;
    name      : Name ;
 BEGIN
-   PopTF(Type, name) ;
-   PopT(Array) ;
-   Assert(IsArray(Array)) ;
-   Subscript := MakeSubscript() ;
+   PopTFtok (Type, name, typetok) ;
+   PopTtok (Array, arraytok) ;
+   Assert (IsArray (Array)) ;
+   Subscript := MakeSubscript () ;
    (*
       We cannot Assert(IsSubrange(Type)) as the subrange type might be
       declared later on in the file.
@@ -2946,10 +2953,10 @@ BEGIN
       However this works to our advantage as it preserves the
       actual declaration as specified by the source file.
    *)
-   PutSubscript(Subscript, Type) ;
-   PutArraySubscript(Array, Subscript) ;
-   PushT(Array) ;
-   Annotate("%1s(%1d)||array type")
+   PutSubscript (Subscript, Type) ;
+   PutArraySubscript (Array, Subscript) ;
+   PushTtok (Array, arraytok) ;
+   Annotate ("%1s(%1d)||array type")
 (* ; WriteString('Field Placed in Array') ; WriteLn *)
 END BuildFieldArray ;
 
diff --git a/gcc/m2/gm2-compiler/SymbolTable.def b/gcc/m2/gm2-compiler/SymbolTable.def
index 506444f5859..0a0ce64b401 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.def
+++ b/gcc/m2/gm2-compiler/SymbolTable.def
@@ -2551,10 +2551,10 @@ PROCEDURE NoOfElements (Sym: CARDINAL) : CARDINAL ;
 
 
 (*
-   PutArray - places a type symbol into an Array.
+   PutArray - places a type symbol into an arraysym.
 *)
 
-PROCEDURE PutArray (Sym, TypeSymbol: CARDINAL) ;
+PROCEDURE PutArray (arraysym, typesym: CARDINAL) ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/SymbolTable.mod b/gcc/m2/gm2-compiler/SymbolTable.mod
index 5ef71ea9bad..a502fb57641 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.mod
+++ b/gcc/m2/gm2-compiler/SymbolTable.mod
@@ -12397,20 +12397,20 @@ END GetDimension ;
 
 
 (*
-   PutArray - places a type symbol into an Array.
+   PutArray - places a type symbol into an arraysym.
 *)
 
-PROCEDURE PutArray (Sym, TypeSymbol: CARDINAL) ;
+PROCEDURE PutArray (arraysym, typesym: CARDINAL) ;
 VAR
    pSym: PtrToSymbol ;
 BEGIN
-   pSym := GetPsym(Sym) ;
+   pSym := GetPsym (arraysym) ;
    WITH pSym^ DO
       CASE SymbolType OF
 
       ErrorSym: |
       ArraySym: WITH Array DO
-                   Type := TypeSymbol (* The Array Type. ARRAY OF Type.      *)
+                   Type := typesym  (* The ARRAY OF typesym.  *)
                 END
       ELSE
          InternalError ('expecting an Array symbol')
diff --git a/gcc/testsuite/gm2/iso/fail/arraymismatch.mod b/gcc/testsuite/gm2/iso/fail/arraymismatch.mod
new file mode 100644
index 00000000000..543ff29f7da
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/arraymismatch.mod
@@ -0,0 +1,8 @@
+MODULE arraymismatch ;
+
+VAR
+   a: ARRAY [0..3] OF REAL ;
+   b: ARRAY [0..4] OF REAL ;
+BEGIN
+   a := b
+END arraymismatch.

commit 524ba3a600562ad4baffb22d9a9a9a4e600bee30
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Dec 5 00:25:32 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 74f6fd4e4e4..5f2357c99fc 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241204
+20241205
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 15c2dc95024..94535184fe7 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,27 @@
+2024-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-18  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117660
+	* gm2-compiler/P2Build.bnf (ArrayType): Update tok with the
+	composite token produced during array type declaration.
+	* gm2-compiler/P2SymBuild.mod (EndBuildArray): Create the
+	combinedtok and store it into the symbol table.
+	Also ensure combinedtok is pushed to the quad stack.
+	(BuildFieldArray): Preserve typetok.
+	* gm2-compiler/SymbolTable.def (PutArray): Rename parameters.
+	* gm2-compiler/SymbolTable.mod (PutArray): Rename parameters.
+
+2024-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-18  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117371
+	* gm2-compiler/M2GenGCC.mod (PerformLastForIterator):
+	Add check for zero step value and issue an error message.
+
 2024-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b6900ed3405..e3d74edb376 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,19 @@
+2024-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-18  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117660
+	* gm2/iso/fail/arraymismatch.mod: New test.
+
+2024-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-11-18  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117371
+	* gm2/iso/fail/forloopbyzero.mod: New test.
+
 2024-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:

commit 0eb7f0a860add7b1c79ae4248e1960120bc77d60
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Wed Dec 4 20:56:50 2024 +0100

    AVR: target/64242 - Copy FP to a local reg in nonlocal_goto.
    
    In nonlocal_goto sets, change hard_frame_pointer_rtx only after
    emit_stack_restore() restored SP.  This is needed because SP
    my be stored in some frame location.
    
    gcc/
            PR target/64242
            * config/avr/avr.md (nonlocal_goto): Don't restore
            hard_frame_pointer_rtx directly, but copy it to local
            register, and only set hard_frame_pointer_rtx from it
            after emit_stack_restore().
    
    (cherry picked from commit f7b5527d1b48b33d8ab633c1e9dcb9883667492a)

diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md
index b7273fa19f6..823fc716f2c 100644
--- a/gcc/config/avr/avr.md
+++ b/gcc/config/avr/avr.md
@@ -404,9 +404,14 @@
 
     emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx));
 
-    emit_move_insn (hard_frame_pointer_rtx, r_fp);
+    // PR64242: When r_sp is located in the frame, we must not
+    // change FP prior to reading r_sp.  Hence copy r_fp to a
+    // local register (and hope that reload won't spill it).
+    rtx r_fp_reg = copy_to_reg (r_fp);
     emit_stack_restore (SAVE_NONLOCAL, r_sp);
 
+    emit_move_insn (hard_frame_pointer_rtx, r_fp_reg);
+
     emit_use (hard_frame_pointer_rtx);
     emit_use (stack_pointer_rtx);
 

commit 4a73efcbdc5fb9c3f6ab0cba718dd25b5062fc22
Author: Simon Martin <simon@nasilyan.com>
Date:   Tue Dec 3 14:30:43 2024 +0100

    c++: Don't reject pointer to virtual method during constant evaluation [PR117615]
    
    We currently reject the following valid code:
    
    === cut here ===
    struct Base {
        virtual void doit (int v) const {}
    };
    struct Derived : Base {
        void doit (int v) const {}
    };
    using fn_t = void (Base::*)(int) const;
    struct Helper {
        fn_t mFn;
        constexpr Helper (auto && fn) : mFn(static_cast<fn_t>(fn)) {}
    };
    void foo () {
        constexpr Helper h (&Derived::doit);
    }
    === cut here ===
    
    The problem is that since r6-4014-gdcdbc004d531b4, &Derived::doit is
    represented with an expression with type pointer to method and using an
    INTEGER_CST (here 1), and that cxx_eval_constant_expression rejects any
    such expression with a non-null INTEGER_CST.
    
    This patch uses the same strategy as r12-4491-gf45610a45236e9 (fix for
    PR c++/102786), and simply lets such expressions go through.
    
            PR c++/117615
    
    gcc/cp/ChangeLog:
    
            * constexpr.cc (cxx_eval_constant_expression): Don't reject
            INTEGER_CSTs with type POINTER_TYPE to METHOD_TYPE.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/constexpr-virtual22.C: New test.
    
    (cherry picked from commit 72a2380a306a1c3883cb7e4f99253522bc265af0)

diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc
index 853694d78a5..40cc755258f 100644
--- a/gcc/cp/constexpr.cc
+++ b/gcc/cp/constexpr.cc
@@ -8254,6 +8254,12 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t,
 		    return t;
 		  }
 	      }
+	    else if (TYPE_PTR_P (type)
+		    && TREE_CODE (TREE_TYPE (type)) == METHOD_TYPE)
+	      /* INTEGER_CST with pointer-to-method type is only used
+		 for a virtual method in a pointer to member function.
+		 Don't reject those.  */
+	      ;
 	    else
 	      {
 		/* This detects for example:
diff --git a/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual22.C b/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual22.C
new file mode 100644
index 00000000000..89330bf8620
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual22.C
@@ -0,0 +1,22 @@
+// PR c++/117615
+// { dg-do "compile" { target c++20 } }
+
+struct Base {
+    virtual void doit (int v) const {}
+};
+
+struct Derived : Base {
+    void doit (int v) const {}
+};
+
+using fn_t = void (Base::*)(int) const;
+
+struct Helper {
+    fn_t mFn;
+    constexpr Helper (auto && fn) : mFn(static_cast<fn_t>(fn)) {}
+};
+
+void foo () {
+    constexpr Helper h (&Derived::doit);
+    constexpr Helper h2 (&Base::doit);
+}

commit de7dc9bb0e8575d16d5040478e74e3dcb91376ff
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Dec 6 00:24:09 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fb77eb60cee..8f54582a7f9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/64242
+	* config/avr/avr.md (nonlocal_goto): Don't restore
+	hard_frame_pointer_rtx directly, but copy it to local
+	register, and only set hard_frame_pointer_rtx from it
+	after emit_stack_restore().
+
 2024-12-03  Tamar Christina  <tamar.christina@arm.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 5f2357c99fc..9093ce495f9 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241205
+20241206
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 875843c008c..6c9f09bcdaf 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,12 @@
+2024-12-05  Simon Martin  <simon@nasilyan.com>
+
+	Backported from master:
+	2024-12-04  Simon Martin  <simon@nasilyan.com>
+
+	PR c++/117615
+	* constexpr.cc (cxx_eval_constant_expression): Don't reject
+	INTEGER_CSTs with type POINTER_TYPE to METHOD_TYPE.
+
 2024-11-06  Simon Martin  <simon@nasilyan.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e3d74edb376..518914a389c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-05  Simon Martin  <simon@nasilyan.com>
+
+	Backported from master:
+	2024-12-04  Simon Martin  <simon@nasilyan.com>
+
+	PR c++/117615
+	* g++.dg/cpp2a/constexpr-virtual22.C: New test.
+
 2024-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:

commit d3c18b92c97b0fd477c7a43ab7af1ed88faec4ba
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Wed Nov 27 21:11:16 2024 +0100

    Fortran: fix crash with bounds check writing array section [PR117791]
    
            PR fortran/117791
    
    gcc/fortran/ChangeLog:
    
            * trans-io.cc (gfc_trans_transfer): When an array index depends on
            a function evaluation or an expression, do not use optimized array
            I/O of an array section and fall back to normal scalarization.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/bounds_check_array_io.f90: New test.
    
    (cherry picked from commit 2261a15c0715cbf5c129b66ee44fc1d3a9e36972)

diff --git a/gcc/fortran/trans-io.cc b/gcc/fortran/trans-io.cc
index 0c5a1714be6..c7a50e8839c 100644
--- a/gcc/fortran/trans-io.cc
+++ b/gcc/fortran/trans-io.cc
@@ -2633,6 +2633,26 @@ gfc_trans_transfer (gfc_code * code)
 	     || gfc_expr_attr (expr).pointer))
 	goto scalarize;
 
+      /* With array-bounds checking enabled, force scalarization in some
+	 situations, e.g., when an array index depends on a function
+	 evaluation or an expression and possibly has side-effects.  */
+      if ((gfc_option.rtcheck & GFC_RTCHECK_BOUNDS)
+	  && ref
+	  && ref->u.ar.type == AR_SECTION)
+	{
+	  for (n = 0; n < ref->u.ar.dimen; n++)
+	    if (ref->u.ar.dimen_type[n] == DIMEN_ELEMENT
+		&& ref->u.ar.start[n])
+	      {
+		switch (ref->u.ar.start[n]->expr_type)
+		  {
+		  case EXPR_FUNCTION:
+		  case EXPR_OP:
+		    goto scalarize;
+		  }
+	      }
+	}
+
       if (!(gfc_bt_struct (expr->ts.type)
 	      || expr->ts.type == BT_CLASS)
 	    && ref && ref->next == NULL
diff --git a/gcc/testsuite/gfortran.dg/bounds_check_array_io.f90 b/gcc/testsuite/gfortran.dg/bounds_check_array_io.f90
new file mode 100644
index 00000000000..0cfc1174283
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bounds_check_array_io.f90
@@ -0,0 +1,31 @@
+! { dg-do run }
+! { dg-additional-options "-fcheck=bounds -fdump-tree-original" }
+!
+! PR fortran/117791 - crash with bounds check writing array section
+! Contributed by Andreas van Hameren (hameren at ifj dot edu dot pl)
+
+program testprogram
+  implicit none
+  integer, parameter :: array(4,2)=reshape ([11,12,13,14 ,15,16,17,18], [4,2])
+  integer            :: i(3) = [45,51,0]
+
+  write(*,*) 'line 1:',array(:,          sort_2(i(1:2)) )
+  write(*,*) 'line 2:',array(:,      3 - sort_2(i(1:2)) )
+  write(*,*) 'line 3:',array(:, int (3 - sort_2(i(1:2))))
+
+contains
+
+  function sort_2(i) result(rslt)
+    integer,intent(in) :: i(2)
+    integer            :: rslt
+    if (i(1) <= i(2)) then
+       rslt = 1
+    else
+       rslt = 2
+    endif
+  end function
+
+end program 
+
+! { dg-final { scan-tree-dump-times "sort_2" 5 "original" } }
+! { dg-final { scan-tree-dump-not "_gfortran_transfer_array_write" "original" } }

commit ad590070fdcca8b89146b5949176bc0354f19745
Author: Andrew Pinski <quic_apinski@quicinc.com>
Date:   Fri Nov 29 01:00:11 2024 -0800

    fortran: Add default to switch in gfc_trans_transfer [PR117843]
    
    This fixes a bootstrap failure due to a warning on enum values not being
    handled. In this case, it is just checking two values and the rest should
    are not handled so adding a default case fixes the issue.
    
    Pushed as obvious.
    
            PR fortran/117843
    gcc/fortran/ChangeLog:
    
            * trans-io.cc (gfc_trans_transfer): Add default case.
    
    Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
    (cherry picked from commit 48b72743b0e29871171593fe34856da62d954750)

diff --git a/gcc/fortran/trans-io.cc b/gcc/fortran/trans-io.cc
index c7a50e8839c..a1951a158ed 100644
--- a/gcc/fortran/trans-io.cc
+++ b/gcc/fortran/trans-io.cc
@@ -2649,6 +2649,8 @@ gfc_trans_transfer (gfc_code * code)
 		  case EXPR_FUNCTION:
 		  case EXPR_OP:
 		    goto scalarize;
+		  default:
+		    break;
 		  }
 	      }
 	}

commit 7dff53cb7bff5f523390fd4da5b32f3d6b300e2d
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Dec 6 13:06:58 2024 +0000

    [PATCH] PR modula2/117904: cc1gm2 ICE when compiling a const built from VAL and SIZE
    
    This patch fixes an ICE which occurs when a positive ZType constant
    increment is used during a FOR loop.
    
    gcc/m2/ChangeLog:
    
            PR modula2/117904
            * gm2-compiler/M2GenGCC.mod (PerformLastForIterator): Add call to
            BuildConvert when increment is > 0.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/117904
            * gm2/iso/pass/forloopbyconst.mod: New test.
    
    (cherry picked from commit 363382ac7c2b8f6a09415e905b349bb7eaeca38a)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2GenGCC.mod b/gcc/m2/gm2-compiler/M2GenGCC.mod
index b6e34e019b0..c5f5a782595 100644
--- a/gcc/m2/gm2-compiler/M2GenGCC.mod
+++ b/gcc/m2/gm2-compiler/M2GenGCC.mod
@@ -541,9 +541,19 @@ BEGIN
       THEN
          (* If incr > 0 then LastIterator := ((e2-e1) DIV incr) * incr + e1.  *)
          expr := BuildSub (location, e2tree, e1tree, FALSE) ;
-         expr := BuildDivFloor (location, expr, incrtree, FALSE) ;
-         expr := BuildMult (location, expr, incrtree, FALSE) ;
-         expr := BuildAdd (location, expr, e1tree, FALSE)
+         incrtree := BuildConvert (location, GetTreeType (expr), incrtree, FALSE) ;
+         IF TreeOverflow (incrtree)
+         THEN
+            MetaErrorT0 (lastpos,
+                         'the intemediate calculation for the last iterator value in the {%kFOR} loop has caused an overflow') ;
+            NoChange := FALSE ;
+            SubQuad (quad) ;
+            success := FALSE
+         ELSE
+            expr := BuildDivFloor (location, expr, incrtree, FALSE) ;
+            expr := BuildMult (location, expr, incrtree, FALSE) ;
+            expr := BuildAdd (location, expr, e1tree, FALSE)
+         END
       ELSE
          (* Else use LastIterator := e1 - ((e1-e2) DIV PositiveBy) * PositiveBy
             to avoid unsigned div signed arithmetic.  *)
diff --git a/gcc/testsuite/gm2/iso/pass/forloopbyconst.mod b/gcc/testsuite/gm2/iso/pass/forloopbyconst.mod
new file mode 100644
index 00000000000..c0a1a06e019
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/pass/forloopbyconst.mod
@@ -0,0 +1,25 @@
+MODULE forloopbyconst ;
+
+
+CONST
+   block = 4 ;
+
+
+(*
+   init -
+*)
+
+PROCEDURE init ;
+VAR
+   i, n: CARDINAL ;
+BEGIN
+   n := 10 ;
+   FOR i := 1 TO n BY block DO
+
+   END
+END init ;
+
+
+BEGIN
+   init
+END forloopbyconst.

commit be532c74fd5e0e8bd15f0829cbb7ee079b0df910
Author: Jerry DeLisle <jvdelisle@gcc.gnu.org>
Date:   Tue Aug 6 16:10:23 2024 -0700

    Fortran: Eliminate error prone translations.
    
            PR fortran/109105
    
    gcc/fortran/ChangeLog:
    
            * resolve.cc (CHECK_INTERFACES): New helper macro.
            (resolve_operator): Replace use of snprintf with
            gfc_error.
    
    (cherry picked from commit 000045fdf838a21e151c2c676c4fcd056032e59f)

diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index 4c7463168a0..ca591e15e01 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -4137,15 +4137,23 @@ convert_to_numeric (gfc_expr *a, gfc_expr *b)
 }
 
 /* Resolve an operator expression node.  This can involve replacing the
-   operation with a user defined function call.  */
+   operation with a user defined function call.  CHECK_INTERFACES is a
+   helper macro.  */
+
+#define CHECK_INTERFACES \
+  { \
+    match m = gfc_extend_expr (e); \
+    if (m == MATCH_YES) \
+      return true; \
+    if (m == MATCH_ERROR) \
+      return false; \
+  }
 
 static bool
 resolve_operator (gfc_expr *e)
 {
   gfc_expr *op1, *op2;
   /* One error uses 3 names; additional space for wording (also via gettext). */
-  char msg[3*GFC_MAX_SYMBOL_LEN + 1 + 50];
-  bool dual_locus_error;
   bool t = true;
 
   /* Reduce stacked parentheses to single pair  */
@@ -4195,8 +4203,6 @@ resolve_operator (gfc_expr *e)
   if (t == false)
     return false;
 
-  dual_locus_error = false;
-
   /* op1 and op2 cannot both be BOZ.  */
   if (op1 && op1->ts.type == BT_BOZ
       && op2 && op2->ts.type == BT_BOZ)
@@ -4210,9 +4216,9 @@ resolve_operator (gfc_expr *e)
   if ((op1 && op1->expr_type == EXPR_NULL)
       || (op2 && op2->expr_type == EXPR_NULL))
     {
-      snprintf (msg, sizeof (msg),
-		_("Invalid context for NULL() pointer at %%L"));
-      goto bad_op;
+      CHECK_INTERFACES
+      gfc_error ("Invalid context for NULL() pointer at %L", &e->where);
+      return false;
     }
 
   switch (e->value.op.op)
@@ -4227,10 +4233,10 @@ resolve_operator (gfc_expr *e)
 	  break;
 	}
 
-      snprintf (msg, sizeof (msg),
-		_("Operand of unary numeric operator %%<%s%%> at %%L is %s"),
-		gfc_op2string (e->value.op.op), gfc_typename (e));
-      goto bad_op;
+      CHECK_INTERFACES
+      gfc_error ("Operand of unary numeric operator %<%s%> at %L is %s",
+		 gfc_op2string (e->value.op.op), &e->where, gfc_typename (e));
+      return false;
 
     case INTRINSIC_PLUS:
     case INTRINSIC_MINUS:
@@ -4244,10 +4250,10 @@ resolve_operator (gfc_expr *e)
 	     Defer to a possibly overloading user-defined operator.  */
 	  if (!gfc_op_rank_conformable (op1, op2))
 	    {
-	      dual_locus_error = true;
-	      snprintf (msg, sizeof (msg),
-			_("Inconsistent ranks for operator at %%L and %%L"));
-	      goto bad_op;
+	      CHECK_INTERFACES
+	      gfc_error ("Inconsistent ranks for operator at %L and %L",
+			 &op1->where, &op2->where);
+	      return false;
 	    }
 
 	  gfc_type_convert_binary (e, 1);
@@ -4255,16 +4261,21 @@ resolve_operator (gfc_expr *e)
 	}
 
       if (op1->ts.type == BT_DERIVED || op2->ts.type == BT_DERIVED)
-	snprintf (msg, sizeof (msg),
-		  _("Unexpected derived-type entities in binary intrinsic "
-		  "numeric operator %%<%s%%> at %%L"),
-	       gfc_op2string (e->value.op.op));
+	{
+	  CHECK_INTERFACES
+	  gfc_error ("Unexpected derived-type entities in binary intrinsic "
+		     "numeric operator %<%s%> at %L",
+		     gfc_op2string (e->value.op.op), &e->where);
+	  return false;
+	}
       else
-	snprintf (msg, sizeof(msg),
-		  _("Operands of binary numeric operator %%<%s%%> at %%L are %s/%s"),
-		  gfc_op2string (e->value.op.op), gfc_typename (op1),
-	       gfc_typename (op2));
-      goto bad_op;
+	{
+	  CHECK_INTERFACES
+	  gfc_error ("Operands of binary numeric operator %<%s%> at %L are %s/%s",
+		     gfc_op2string (e->value.op.op), &e->where, gfc_typename (op1),
+		     gfc_typename (op2));
+	  return false;
+	}
 
     case INTRINSIC_CONCAT:
       if (op1->ts.type == BT_CHARACTER && op2->ts.type == BT_CHARACTER
@@ -4275,10 +4286,10 @@ resolve_operator (gfc_expr *e)
 	  break;
 	}
 
-      snprintf (msg, sizeof (msg),
-		_("Operands of string concatenation operator at %%L are %s/%s"),
-		gfc_typename (op1), gfc_typename (op2));
-      goto bad_op;
+      CHECK_INTERFACES
+      gfc_error ("Operands of string concatenation operator at %L are %s/%s",
+		 &e->where, gfc_typename (op1), gfc_typename (op2));
+      return false;
 
     case INTRINSIC_AND:
     case INTRINSIC_OR:
@@ -4318,12 +4329,11 @@ resolve_operator (gfc_expr *e)
 	  goto simplify_op;
 	}
 
-      snprintf (msg, sizeof (msg),
-		_("Operands of logical operator %%<%s%%> at %%L are %s/%s"),
-		gfc_op2string (e->value.op.op), gfc_typename (op1),
-		gfc_typename (op2));
-
-      goto bad_op;
+      CHECK_INTERFACES
+      gfc_error ("Operands of logical operator %<%s%> at %L are %s/%s",
+		 gfc_op2string (e->value.op.op), &e->where, gfc_typename (op1),
+		 gfc_typename (op2));
+      return false;
 
     case INTRINSIC_NOT:
       /* Logical ops on integers become bitwise ops with -fdec.  */
@@ -4342,9 +4352,10 @@ resolve_operator (gfc_expr *e)
 	  break;
 	}
 
-      snprintf (msg, sizeof (msg), _("Operand of .not. operator at %%L is %s"),
-		gfc_typename (op1));
-      goto bad_op;
+      CHECK_INTERFACES
+      gfc_error ("Operand of .not. operator at %L is %s", &e->where,
+		 gfc_typename (op1));
+      return false;
 
     case INTRINSIC_GT:
     case INTRINSIC_GT_OS:
@@ -4356,8 +4367,9 @@ resolve_operator (gfc_expr *e)
     case INTRINSIC_LE_OS:
       if (op1->ts.type == BT_COMPLEX || op2->ts.type == BT_COMPLEX)
 	{
-	  strcpy (msg, _("COMPLEX quantities cannot be compared at %L"));
-	  goto bad_op;
+	  CHECK_INTERFACES
+	  gfc_error ("COMPLEX quantities cannot be compared at %L", &e->where);
+	  return false;
 	}
 
       /* Fall through.  */
@@ -4427,10 +4439,10 @@ resolve_operator (gfc_expr *e)
 	     Defer to a possibly overloading user-defined operator.  */
 	  if (!gfc_op_rank_conformable (op1, op2))
 	    {
-	      dual_locus_error = true;
-	      snprintf (msg, sizeof (msg),
-			_("Inconsistent ranks for operator at %%L and %%L"));
-	      goto bad_op;
+	      CHECK_INTERFACES
+	      gfc_error ("Inconsistent ranks for operator at %L and %L",
+			 &op1->where, &op2->where);
+	      return false;
 	    }
 
 	  gfc_type_convert_binary (e, 1);
@@ -4464,18 +4476,22 @@ resolve_operator (gfc_expr *e)
 	}
 
       if (op1->ts.type == BT_LOGICAL && op2->ts.type == BT_LOGICAL)
-	snprintf (msg, sizeof (msg),
-		  _("Logicals at %%L must be compared with %s instead of %s"),
-		  (e->value.op.op == INTRINSIC_EQ
-		   || e->value.op.op == INTRINSIC_EQ_OS)
-		  ? ".eqv." : ".neqv.", gfc_op2string (e->value.op.op));
+	{
+	  CHECK_INTERFACES
+	  gfc_error ("Logicals at %L must be compared with %s instead of %s",
+		     &e->where,
+		     (e->value.op.op == INTRINSIC_EQ || e->value.op.op == INTRINSIC_EQ_OS)
+		      ? ".eqv." : ".neqv.", gfc_op2string (e->value.op.op));
+	}
       else
-	snprintf (msg, sizeof (msg),
-		  _("Operands of comparison operator %%<%s%%> at %%L are %s/%s"),
-		  gfc_op2string (e->value.op.op), gfc_typename (op1),
-		  gfc_typename (op2));
+	{
+	  CHECK_INTERFACES
+	  gfc_error ("Operands of comparison operator %<%s%> at %L are %s/%s",
+		     gfc_op2string (e->value.op.op), &e->where, gfc_typename (op1),
+		     gfc_typename (op2));
+	}
 
-      goto bad_op;
+      return false;
 
     case INTRINSIC_USER:
       if (e->value.op.uop->op == NULL)
@@ -4483,28 +4499,29 @@ resolve_operator (gfc_expr *e)
 	  const char *name = e->value.op.uop->name;
 	  const char *guessed;
 	  guessed = lookup_uop_fuzzy (name, e->value.op.uop->ns->uop_root);
+	  CHECK_INTERFACES
 	  if (guessed)
-	    snprintf (msg, sizeof (msg),
-		      _("Unknown operator %%<%s%%> at %%L; did you mean "
-			"%%<%s%%>?"), name, guessed);
+	    gfc_error ("Unknown operator %<%s%> at %L; did you mean "
+			"%<%s%>?", name, &e->where, guessed);
 	  else
-	    snprintf (msg, sizeof (msg), _("Unknown operator %%<%s%%> at %%L"),
-		      name);
+	    gfc_error ("Unknown operator %<%s%> at %L", name, &e->where);
 	}
       else if (op2 == NULL)
-	snprintf (msg, sizeof (msg),
-		  _("Operand of user operator %%<%s%%> at %%L is %s"),
-		  e->value.op.uop->name, gfc_typename (op1));
+	{
+	  CHECK_INTERFACES
+	  gfc_error ("Operand of user operator %<%s%> at %L is %s",
+		  e->value.op.uop->name, &e->where, gfc_typename (op1));
+	}
       else
 	{
-	  snprintf (msg, sizeof (msg),
-		    _("Operands of user operator %%<%s%%> at %%L are %s/%s"),
-		    e->value.op.uop->name, gfc_typename (op1),
-		    gfc_typename (op2));
 	  e->value.op.uop->op->sym->attr.referenced = 1;
+	  CHECK_INTERFACES
+	  gfc_error ("Operands of user operator %<%s%> at %L are %s/%s",
+		    e->value.op.uop->name, &e->where, gfc_typename (op1),
+		    gfc_typename (op2));
 	}
 
-      goto bad_op;
+      return false;
 
     case INTRINSIC_PARENTHESES:
       e->ts = op1->ts;
@@ -4582,10 +4599,10 @@ resolve_operator (gfc_expr *e)
 	      e->rank = 0;
 
 	      /* Try user-defined operators, and otherwise throw an error.  */
-	      dual_locus_error = true;
-	      snprintf (msg, sizeof (msg),
-			_("Inconsistent ranks for operator at %%L and %%L"));
-	      goto bad_op;
+	      CHECK_INTERFACES
+	      gfc_error ("Inconsistent ranks for operator at %L and %L",
+			 &op1->where, &op2->where);
+	      return false;
 	    }
 	}
 
@@ -4620,23 +4637,6 @@ simplify_op:
 	t = true;
     }
   return t;
-
-bad_op:
-
-  {
-    match m = gfc_extend_expr (e);
-    if (m == MATCH_YES)
-      return true;
-    if (m == MATCH_ERROR)
-      return false;
-  }
-
-  if (dual_locus_error)
-    gfc_error (msg, &op1->where, &op2->where);
-  else
-    gfc_error (msg, &e->where);
-
-  return false;
 }
 
 

commit 1dbbfe23b15bfbab61d5fbcef9fbc193ee24dcb6
Author: Jerry DeLisle <jvdelisle@gcc.gnu.org>
Date:   Tue Dec 3 20:55:41 2024 -0800

    Fortran: Fix B64.0 formatted write output.
    
            PR fortran/117820
    
    libgfortran/ChangeLog:
    
            * io/write.c (write_b): Add test for zero needed by write_boz.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/pr117820.f90: New test.
    
    (cherry picked from commit 7a92ba766815c9a6b73593967a26fdfbebfc7e69)

diff --git a/gcc/testsuite/gfortran.dg/pr117820.f90 b/gcc/testsuite/gfortran.dg/pr117820.f90
new file mode 100644
index 00000000000..59a4b363e05
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr117820.f90
@@ -0,0 +1,10 @@
+! { dg-do run }
+! See pr117820, original testcase provided by Malcolm Cohen.
+program test
+  integer(8) :: x
+  character(80) :: output
+  output = "garbage"
+  x = ibset (0_8, 63)
+  write(output, '("<",B64.0,">")') x
+  if (output .ne. "<1000000000000000000000000000000000000000000000000000000000000000>") stop 1
+end program
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c
index 91d1da2007a..9d0a0d6102b 100644
--- a/libgfortran/io/write.c
+++ b/libgfortran/io/write.c
@@ -1260,6 +1260,10 @@ write_b (st_parameter_dt *dtp, const fnode *f, const char *source, int len)
     {
       n = extract_uint (source, len);
       p = btoa (n, itoa_buf, sizeof (itoa_buf));
+
+      /* Test for zero. Needed by write_boz.  */
+      if (n != 0)
+	n = 1;
       write_boz (dtp, f, p, n, len);
     }
 }

commit 5e55168b76652a684960cbee1b2c7e3e97e41596
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Dec 7 00:23:41 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 9093ce495f9..a611dd48945 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241206
+20241207
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 2e391b4329c..172c6af5127 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,31 @@
+2024-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	Backported from master:
+	2024-08-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR fortran/109105
+	* resolve.cc (CHECK_INTERFACES): New helper macro.
+	(resolve_operator): Replace use of snprintf with
+	gfc_error.
+
+2024-12-06  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	Backported from master:
+	2024-11-29  Andrew Pinski  <quic_apinski@quicinc.com>
+
+	PR fortran/117843
+	* trans-io.cc (gfc_trans_transfer): Add default case.
+
+2024-12-06  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2024-11-28  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/117791
+	* trans-io.cc (gfc_trans_transfer): When an array index depends on
+	a function evaluation or an expression, do not use optimized array
+	I/O of an array section and fall back to normal scalarization.
+
 2024-12-02  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 94535184fe7..95ab599b0fb 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,12 @@
+2024-12-06  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-12-05  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117904
+	* gm2-compiler/M2GenGCC.mod (PerformLastForIterator): Add call to
+	BuildConvert when increment is > 0.
+
 2024-12-04  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 518914a389c..59d78f881d8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,27 @@
+2024-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	Backported from master:
+	2024-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR fortran/117820
+	* gfortran.dg/pr117820.f90: New test.
+
+2024-12-06  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-12-05  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117904
+	* gm2/iso/pass/forloopbyconst.mod: New test.
+
+2024-12-06  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2024-11-28  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/117791
+	* gfortran.dg/bounds_check_array_io.f90: New test.
+
 2024-12-05  Simon Martin  <simon@nasilyan.com>
 
 	Backported from master:
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 9bfa71e1273..aae8cde3d5a 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	Backported from master:
+	2024-12-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR fortran/117820
+	* io/write.c (write_b): Add test for zero needed by write_boz.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit 6385000d36a8b0b9dce0b8dc92e101dfcc584ec5
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Sat Dec 7 15:56:21 2024 +0000

    [PATCH] PR modula2/117948: Forward procedure declaration should only be available in ISO
    
    This patch restricts the forward procedure declaration to the ISO dialect.
    
    gcc/m2/ChangeLog:
    
            PR modula2/117948
            * gm2-compiler/P1Build.bnf (ForwardDeclaration): Pass token
            position of the FORWARD keyword to EndBuildForward.
            * gm2-compiler/P1SymBuild.def (EndBuildForward): New parameter
            forwardPos.
            * gm2-compiler/P1SymBuild.mod (EndBuildForward): Issue an error at
            forwardPos if the Iso boolean is false.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/117948
            * gm2/pim/fail/forward.mod: New test.
    
    (cherry picked from commit 41800372146f5ad15a8796b37f54965f78cc14fb)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/P1Build.bnf b/gcc/m2/gm2-compiler/P1Build.bnf
index ac96ddb383f..f41e7780422 100644
--- a/gcc/m2/gm2-compiler/P1Build.bnf
+++ b/gcc/m2/gm2-compiler/P1Build.bnf
@@ -878,7 +878,7 @@ ProcedureDeclaration :=                                                    % VAR
 
 PostProcedureHeading := ProperProcedure | ForwardDeclaration =:
 
-ForwardDeclaration := "FORWARD"                                            % EndBuildForward %
+ForwardDeclaration := "FORWARD"                                            % EndBuildForward (GetTokenNo ()-1) %
                     =:
 
 ProperProcedure := ProcedureBlock                                          % PushAutoOn %
diff --git a/gcc/m2/gm2-compiler/P1SymBuild.def b/gcc/m2/gm2-compiler/P1SymBuild.def
index 89ed3ad480b..478660516fc 100644
--- a/gcc/m2/gm2-compiler/P1SymBuild.def
+++ b/gcc/m2/gm2-compiler/P1SymBuild.def
@@ -489,7 +489,7 @@ PROCEDURE BuildProcedureHeading ;
                                            Empty
 *)
 
-PROCEDURE EndBuildForward ;
+PROCEDURE EndBuildForward (forwardPos: CARDINAL) ;
 
 
 (*
diff --git a/gcc/m2/gm2-compiler/P1SymBuild.mod b/gcc/m2/gm2-compiler/P1SymBuild.mod
index 8a2ed87b356..cd42417a394 100644
--- a/gcc/m2/gm2-compiler/P1SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P1SymBuild.mod
@@ -26,7 +26,10 @@ FROM ASCII IMPORT nul ;
 FROM NameKey IMPORT Name, WriteKey, MakeKey, KeyToCharStar, NulName ;
 FROM M2Debug IMPORT Assert, WriteDebug ;
 FROM M2LexBuf IMPORT GetFileName, GetTokenNo, UnknownTokenNo ;
-FROM M2MetaError IMPORT MetaErrorString2, MetaError0, MetaError1, MetaError2, MetaErrorT1, MetaErrorT2 ;
+
+FROM M2MetaError IMPORT MetaErrorString2, MetaError0, MetaError1,
+                        MetaError2, MetaErrorT0, MetaErrorT1, MetaErrorT2 ;
+
 FROM DynamicStrings IMPORT String, Slice, InitString, KillString, EqualCharStar, RIndex, Mark, ConCat ;
 FROM M2Printf IMPORT printf0, printf1, printf2 ;
 FROM M2Options IMPORT Iso ;
@@ -1064,13 +1067,18 @@ END EndBuildProcedure ;
                                            Empty
 *)
 
-PROCEDURE EndBuildForward ;
+PROCEDURE EndBuildForward (forwardPos: CARDINAL) ;
 VAR
    ProcSym: CARDINAL ;
    tok    : CARDINAL ;
 BEGIN
    ProcSym := OperandT (1) ;
    tok := OperandTok (1) ;
+   IF NOT Iso
+   THEN
+      MetaErrorT0 (forwardPos,
+                   'forward declaration is only allowed in the ISO dialect of Modula-2')
+   END ;
    IF GetProcedureDefined (ProcSym, ForwardProcedure)
    THEN
       MetaErrorT1 (GetProcedureDeclaredTok (ProcSym, ForwardProcedure),
diff --git a/gcc/testsuite/gm2/pim/fail/forward.mod b/gcc/testsuite/gm2/pim/fail/forward.mod
new file mode 100644
index 00000000000..123e006dd43
--- /dev/null
+++ b/gcc/testsuite/gm2/pim/fail/forward.mod
@@ -0,0 +1,14 @@
+MODULE forward ;
+
+
+PROCEDURE foo (a: CARDINAL) ; FORWARD ;
+
+PROCEDURE foo (a: CARDINAL) ;
+BEGIN
+
+END foo ;
+
+
+BEGIN
+   foo (1)
+END forward.

commit 5e9cd91ce2a706e10d73e364469be2f5ed983ef2
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Dec 8 00:23:12 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index a611dd48945..f4039d392c2 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241207
+20241208
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 95ab599b0fb..cc4c1c17f7e 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,16 @@
+2024-12-07  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-12-07  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117948
+	* gm2-compiler/P1Build.bnf (ForwardDeclaration): Pass token
+	position of the FORWARD keyword to EndBuildForward.
+	* gm2-compiler/P1SymBuild.def (EndBuildForward): New parameter
+	forwardPos.
+	* gm2-compiler/P1SymBuild.mod (EndBuildForward): Issue an error at
+	forwardPos if the Iso boolean is false.
+
 2024-12-06  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 59d78f881d8..d59fcced29a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-07  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-12-07  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117948
+	* gm2/pim/fail/forward.mod: New test.
+
 2024-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
 	Backported from master:

commit c08ae0cf33e7e8339456a4a9ba0c494600eadcf3
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Fri Dec 6 16:59:16 2024 +0100

    i386: Fix unwanted fwprop to 3dNOW! insn [PR117926]
    
    The compiler is able to forward propagate a partial vector V4SF instruction
    using XMM registers to a 3dNOW! V2SF instruction using MM registers.  Prevent
    unwanted transformation by tagging 3dNOW! V2SF instructions using generic
    RTXes with "(unspec [(const_int 0)] UNSPEC_3DNOW)" tag.
    
            PR target/117926
    
    gcc/ChangeLog:
    
            * config/i386/mmx.md (UNSPEC_3DNOW): New unspec.
            (mmx_addv2sf3): Tag insn with UNSPEC_3DNOW tag.
            (*mmx_addv2sf3): Ditto.
            (mmx_sub2vsf3): Ditto.
            (mmx_subrv2sf3): Ditto.
            (*mmx_subv2sf3): Ditto.
            (mmx_mulv2sf3): Ditto.
            (mmx_<smaxmin:code>v2sf3): Ditto.
            (*mmx_<smaxmin:code>v2sf3): Ditto.
            (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
            (mmx_eqv2sf3): Ditto.
            (*mmx_eqv2sf3): Ditto.
            (mmx_gtv2sf3): Ditto.
            (mmx_gev2sf3): Ditto.
            (mmx_fix_truncv2sfv2si2): Ditto.
            (mmx_floatv2siv2sf2): Ditto.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr117926.c: New test.
    
    (cherry picked from commit 1acc5cffbb04949a790d6e1a34a46ec71418a57b)

diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md
index 9a8d6030d8b..de7f4086684 100644
--- a/gcc/config/i386/mmx.md
+++ b/gcc/config/i386/mmx.md
@@ -30,6 +30,8 @@
 ;; direction of the user via a builtin.
 
 (define_c_enum "unspec" [
+  UNSPEC_3DNOW
+
   UNSPEC_MOVNTQ
   UNSPEC_PFRCP
   UNSPEC_PFRCPIT1
@@ -704,17 +706,20 @@
 })
 
 (define_expand "mmx_addv2sf3"
-  [(set (match_operand:V2SF 0 "register_operand")
-	(plus:V2SF
-	  (match_operand:V2SF 1 "nonimmediate_operand")
-	  (match_operand:V2SF 2 "nonimmediate_operand")))]
+  [(parallel
+     [(set (match_operand:V2SF 0 "register_operand")
+	   (plus:V2SF
+	     (match_operand:V2SF 1 "nonimmediate_operand")
+	     (match_operand:V2SF 2 "nonimmediate_operand")))
+      (unspec [(const_int 0)] UNSPEC_3DNOW)])]
   "TARGET_3DNOW"
   "ix86_fixup_binary_operands_no_copy (PLUS, V2SFmode, operands);")
 
 (define_insn "*mmx_addv2sf3"
   [(set (match_operand:V2SF 0 "register_operand" "=y")
 	(plus:V2SF (match_operand:V2SF 1 "nonimmediate_operand" "%0")
-		   (match_operand:V2SF 2 "nonimmediate_operand" "ym")))]
+		   (match_operand:V2SF 2 "nonimmediate_operand" "ym")))
+   (unspec [(const_int 0)] UNSPEC_3DNOW)]
   "TARGET_3DNOW && ix86_binary_operator_ok (PLUS, V2SFmode, operands)"
   "pfadd\t{%2, %0|%0, %2}"
   [(set_attr "type" "mmxadd")
@@ -722,21 +727,26 @@
    (set_attr "mode" "V2SF")])
 
 (define_expand "mmx_subv2sf3"
-  [(set (match_operand:V2SF 0 "register_operand")
-        (minus:V2SF (match_operand:V2SF 1 "register_operand")
-		    (match_operand:V2SF 2 "nonimmediate_operand")))]
+  [(parallel
+     [(set (match_operand:V2SF 0 "register_operand")
+	   (minus:V2SF (match_operand:V2SF 1 "register_operand")
+		       (match_operand:V2SF 2 "nonimmediate_operand")))
+      (unspec [(const_int 0)] UNSPEC_3DNOW)])]
   "TARGET_3DNOW")
 
 (define_expand "mmx_subrv2sf3"
-  [(set (match_operand:V2SF 0 "register_operand")
-        (minus:V2SF (match_operand:V2SF 2 "register_operand")
-		    (match_operand:V2SF 1 "nonimmediate_operand")))]
+  [(parallel
+     [(set (match_operand:V2SF 0 "register_operand")
+	   (minus:V2SF (match_operand:V2SF 2 "register_operand")
+		       (match_operand:V2SF 1 "nonimmediate_operand")))
+      (unspec [(const_int 0)] UNSPEC_3DNOW)])]
   "TARGET_3DNOW")
 
 (define_insn "*mmx_subv2sf3"
   [(set (match_operand:V2SF 0 "register_operand" "=y,y")
         (minus:V2SF (match_operand:V2SF 1 "nonimmediate_operand" "0,ym")
-		    (match_operand:V2SF 2 "nonimmediate_operand" "ym,0")))]
+		    (match_operand:V2SF 2 "nonimmediate_operand" "ym,0")))
+   (unspec [(const_int 0)] UNSPEC_3DNOW)]
   "TARGET_3DNOW && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
   "@
    pfsub\t{%2, %0|%0, %2}
@@ -746,16 +756,19 @@
    (set_attr "mode" "V2SF")])
 
 (define_expand "mmx_mulv2sf3"
-  [(set (match_operand:V2SF 0 "register_operand")
-	(mult:V2SF (match_operand:V2SF 1 "nonimmediate_operand")
-		   (match_operand:V2SF 2 "nonimmediate_operand")))]
+  [(parallel
+     [(set (match_operand:V2SF 0 "register_operand")
+	   (mult:V2SF (match_operand:V2SF 1 "nonimmediate_operand")
+		      (match_operand:V2SF 2 "nonimmediate_operand")))
+      (unspec [(const_int 0)] UNSPEC_3DNOW)])]
   "TARGET_3DNOW"
   "ix86_fixup_binary_operands_no_copy (MULT, V2SFmode, operands);")
 
 (define_insn "*mmx_mulv2sf3"
   [(set (match_operand:V2SF 0 "register_operand" "=y")
 	(mult:V2SF (match_operand:V2SF 1 "nonimmediate_operand" "%0")
-		   (match_operand:V2SF 2 "nonimmediate_operand" "ym")))]
+		   (match_operand:V2SF 2 "nonimmediate_operand" "ym")))
+   (unspec [(const_int 0)] UNSPEC_3DNOW)]
   "TARGET_3DNOW && ix86_binary_operator_ok (MULT, V2SFmode, operands)"
   "pfmul\t{%2, %0|%0, %2}"
   [(set_attr "type" "mmxmul")
@@ -785,7 +798,7 @@
 
 (define_expand "<code>v2sf3"
   [(set (match_operand:V2SF 0 "register_operand")
-        (smaxmin:V2SF
+	(smaxmin:V2SF
 	  (match_operand:V2SF 1 "register_operand")
 	  (match_operand:V2SF 2 "register_operand")))]
   "TARGET_MMX_WITH_SSE && ix86_partial_vec_fp_math"
@@ -804,10 +817,11 @@
 })
 
 (define_expand "mmx_<code>v2sf3"
-  [(set (match_operand:V2SF 0 "register_operand")
-        (smaxmin:V2SF
-	  (match_operand:V2SF 1 "nonimmediate_operand")
-	  (match_operand:V2SF 2 "nonimmediate_operand")))]
+  [(parallel
+     [(set (match_operand:V2SF 0 "register_operand")
+	   (smaxmin:V2SF (match_operand:V2SF 1 "nonimmediate_operand")
+			 (match_operand:V2SF 2 "nonimmediate_operand")))
+      (unspec [(const_int 0)] UNSPEC_3DNOW)])]
   "TARGET_3DNOW"
 {
   if (!flag_finite_math_only || flag_signed_zeros)
@@ -828,9 +842,9 @@
 
 (define_insn "*mmx_<code>v2sf3"
   [(set (match_operand:V2SF 0 "register_operand" "=y")
-        (smaxmin:V2SF
-	  (match_operand:V2SF 1 "nonimmediate_operand" "%0")
-	  (match_operand:V2SF 2 "nonimmediate_operand" "ym")))]
+	(smaxmin:V2SF (match_operand:V2SF 1 "nonimmediate_operand" "%0")
+		      (match_operand:V2SF 2 "nonimmediate_operand" "ym")))
+   (unspec [(const_int 0)] UNSPEC_3DNOW)]
   "TARGET_3DNOW && ix86_binary_operator_ok (<CODE>, V2SFmode, operands)"
   "pf<maxmin_float>\t{%2, %0|%0, %2}"
   [(set_attr "type" "mmxadd")
@@ -845,10 +859,11 @@
 
 (define_insn "mmx_ieee_<ieee_maxmin>v2sf3"
   [(set (match_operand:V2SF 0 "register_operand" "=y")
-        (unspec:V2SF
+	(unspec:V2SF
 	  [(match_operand:V2SF 1 "register_operand" "0")
 	   (match_operand:V2SF 2 "nonimmediate_operand" "ym")]
-	  IEEE_MAXMIN))]
+	  IEEE_MAXMIN))
+   (unspec [(const_int 0)] UNSPEC_3DNOW)]
   "TARGET_3DNOW"
   "pf<ieee_maxmin>\t{%2, %0|%0, %2}"
   [(set_attr "type" "mmxadd")
@@ -857,7 +872,7 @@
 
 (define_insn "mmx_rcpv2sf2"
   [(set (match_operand:V2SF 0 "register_operand" "=y")
-        (unspec:V2SF [(match_operand:V2SF 1 "nonimmediate_operand" "ym")]
+	(unspec:V2SF [(match_operand:V2SF 1 "nonimmediate_operand" "ym")]
 		     UNSPEC_PFRCP))]
   "TARGET_3DNOW"
   "pfrcp\t{%1, %0|%0, %1}"
@@ -1101,16 +1116,19 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (define_expand "mmx_eqv2sf3"
-  [(set (match_operand:V2SI 0 "register_operand")
-	(eq:V2SI (match_operand:V2SF 1 "nonimmediate_operand")
-		 (match_operand:V2SF 2 "nonimmediate_operand")))]
+  [(parallel
+     [(set (match_operand:V2SI 0 "register_operand")
+	   (eq:V2SI (match_operand:V2SF 1 "nonimmediate_operand")
+		    (match_operand:V2SF 2 "nonimmediate_operand")))
+      (unspec [(const_int 0)] UNSPEC_3DNOW)])]
   "TARGET_3DNOW"
   "ix86_fixup_binary_operands_no_copy (EQ, V2SFmode, operands);")
 
 (define_insn "*mmx_eqv2sf3"
   [(set (match_operand:V2SI 0 "register_operand" "=y")
 	(eq:V2SI (match_operand:V2SF 1 "nonimmediate_operand" "%0")
-		 (match_operand:V2SF 2 "nonimmediate_operand" "ym")))]
+		 (match_operand:V2SF 2 "nonimmediate_operand" "ym")))
+   (unspec [(const_int 0)] UNSPEC_3DNOW)]
   "TARGET_3DNOW && ix86_binary_operator_ok (EQ, V2SFmode, operands)"
   "pfcmpeq\t{%2, %0|%0, %2}"
   [(set_attr "type" "mmxcmp")
@@ -1120,7 +1138,8 @@
 (define_insn "mmx_gtv2sf3"
   [(set (match_operand:V2SI 0 "register_operand" "=y")
 	(gt:V2SI (match_operand:V2SF 1 "register_operand" "0")
-		 (match_operand:V2SF 2 "nonimmediate_operand" "ym")))]
+		 (match_operand:V2SF 2 "nonimmediate_operand" "ym")))
+   (unspec [(const_int 0)] UNSPEC_3DNOW)]
   "TARGET_3DNOW"
   "pfcmpgt\t{%2, %0|%0, %2}"
   [(set_attr "type" "mmxcmp")
@@ -1130,7 +1149,8 @@
 (define_insn "mmx_gev2sf3"
   [(set (match_operand:V2SI 0 "register_operand" "=y")
 	(ge:V2SI (match_operand:V2SF 1 "register_operand" "0")
-		 (match_operand:V2SF 2 "nonimmediate_operand" "ym")))]
+		 (match_operand:V2SF 2 "nonimmediate_operand" "ym")))
+   (unspec [(const_int 0)] UNSPEC_3DNOW)]
   "TARGET_3DNOW"
   "pfcmpge\t{%2, %0|%0, %2}"
   [(set_attr "type" "mmxcmp")
@@ -1495,7 +1515,8 @@
 
 (define_insn "mmx_fix_truncv2sfv2si2"
   [(set (match_operand:V2SI 0 "register_operand" "=y")
-	(fix:V2SI (match_operand:V2SF 1 "nonimmediate_operand" "ym")))]
+	(fix:V2SI (match_operand:V2SF 1 "nonimmediate_operand" "ym")))
+   (unspec [(const_int 0)] UNSPEC_3DNOW)]
   "TARGET_3DNOW"
   "pf2id\t{%1, %0|%0, %1}"
   [(set_attr "type" "mmxcvt")
@@ -1536,7 +1557,8 @@
 
 (define_insn "mmx_floatv2siv2sf2"
   [(set (match_operand:V2SF 0 "register_operand" "=y")
-	(float:V2SF (match_operand:V2SI 1 "nonimmediate_operand" "ym")))]
+	(float:V2SF (match_operand:V2SI 1 "nonimmediate_operand" "ym")))
+   (unspec [(const_int 0)] UNSPEC_3DNOW)]
   "TARGET_3DNOW"
   "pi2fd\t{%1, %0|%0, %1}"
   [(set_attr "type" "mmxcvt")
diff --git a/gcc/testsuite/gcc.target/i386/pr117926.c b/gcc/testsuite/gcc.target/i386/pr117926.c
new file mode 100644
index 00000000000..6b7aca3726d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117926.c
@@ -0,0 +1,18 @@
+/* PR target/117926 */
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-O2 -m3dnow" } */
+
+struct s
+{
+  int i[2];
+  float f[2];
+  double d;
+};
+
+void f (struct s *s)
+{
+  s->f[0] = s->i[0];
+  s->f[1] = s->i[1];
+}
+
+/* { dg-final { scan-assembler-not "pi2fd" } } */

commit 7b8f236187e1e62c664fae6e76a5e38075bfc3d7
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Dec 9 00:23:27 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8f54582a7f9..bed52e9e936 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,26 @@
+2024-12-08  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2024-12-06  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/117926
+	* config/i386/mmx.md (UNSPEC_3DNOW): New unspec.
+	(mmx_addv2sf3): Tag insn with UNSPEC_3DNOW tag.
+	(*mmx_addv2sf3): Ditto.
+	(mmx_sub2vsf3): Ditto.
+	(mmx_subrv2sf3): Ditto.
+	(*mmx_subv2sf3): Ditto.
+	(mmx_mulv2sf3): Ditto.
+	(mmx_<smaxmin:code>v2sf3): Ditto.
+	(*mmx_<smaxmin:code>v2sf3): Ditto.
+	(mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
+	(mmx_eqv2sf3): Ditto.
+	(*mmx_eqv2sf3): Ditto.
+	(mmx_gtv2sf3): Ditto.
+	(mmx_gev2sf3): Ditto.
+	(mmx_fix_truncv2sfv2si2): Ditto.
+	(mmx_floatv2siv2sf2): Ditto.
+
 2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f4039d392c2..775d8f2db22 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241208
+20241209
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d59fcced29a..cdc244a529b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-08  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2024-12-06  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/117926
+	* gcc.target/i386/pr117926.c: New test.
+
 2024-12-07  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:

commit ac054467bf42365de85336775cba9b9f476e73ed
Author: Simon Martin <simon@nasilyan.com>
Date:   Mon Dec 9 09:21:25 2024 +0100

    tree-eh: Don't crash on GIMPLE_TRY_FINALLY with empty cleanup sequence [PR117845]
    
    The following valid code triggers an ICE with -fsanitize=address
    
    === cut here ===
    void l() {
        auto const ints = {0,1,2,3,4,5};
        for (auto i : { 3 } ) {
            __builtin_printf("%d ", i);
        }
    }
    === cut here ===
    
    The problem is that honor_protect_cleanup_actions does not expect the
    cleanup sequence of a GIMPLE_TRY_FINALLY to be empty. It is however the
    case here since r14-8681-gceb242f5302027, because lower_stmt removes the
    only statement in the sequence: a ASAN_MARK statement for the array that
    backs the initializer_list).
    
    This patch simply checks that the finally block is not 0 before
    accessing it in honor_protect_cleanup_actions.
    
            PR c++/117845
    
    gcc/ChangeLog:
    
            * tree-eh.cc (honor_protect_cleanup_actions): Support empty
            finally sequences.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/asan/pr117845-2.C: New test.
            * g++.dg/asan/pr117845.C: New test.
    
    (cherry picked from commit 3076539544d3e36684cc8eed3374aeff5b44c9b1)

diff --git a/gcc/testsuite/g++.dg/asan/pr117845-2.C b/gcc/testsuite/g++.dg/asan/pr117845-2.C
new file mode 100644
index 00000000000..c0556397009
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asan/pr117845-2.C
@@ -0,0 +1,12 @@
+// PR c++/117845 - Actually valid variant
+// { dg-do "compile" }
+// { dg-options "-fsanitize=address" }
+
+#include <initializer_list>
+
+void l() {
+    auto const ints = {0,1,2,3,4,5};
+    for (auto i : { 3 } ) {
+        __builtin_printf("%d ", i);
+    }
+}
diff --git a/gcc/testsuite/g++.dg/asan/pr117845.C b/gcc/testsuite/g++.dg/asan/pr117845.C
new file mode 100644
index 00000000000..d90d351e270
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asan/pr117845.C
@@ -0,0 +1,12 @@
+// PR c++/117845 - Initially reported case.
+// { dg-do "compile" }
+// { dg-options "-fsanitize=address" }
+
+#include <initializer_list>
+
+void l() {
+    auto const ints = {0,1,2,3,4,5};
+    for (int i : ints | h) { // { dg-error "was not declared" }
+        __builtin_printf("%d ", i);
+    }
+}
diff --git a/gcc/tree-eh.cc b/gcc/tree-eh.cc
index 199b6d5d005..a8de341e562 100644
--- a/gcc/tree-eh.cc
+++ b/gcc/tree-eh.cc
@@ -1025,8 +1025,9 @@ honor_protect_cleanup_actions (struct leh_state *outer_state,
 	 terminate before we get to it, so strip it away before adding the
 	 MUST_NOT_THROW filter.  */
       gimple_stmt_iterator gsi = gsi_start (finally);
-      gimple *x = gsi_stmt (gsi);
-      if (gimple_code (x) == GIMPLE_TRY
+      gimple *x = !gsi_end_p (gsi) ? gsi_stmt (gsi) : NULL;
+      if (x
+	  && gimple_code (x) == GIMPLE_TRY
 	  && gimple_try_kind (x) == GIMPLE_TRY_CATCH
 	  && gimple_try_catch_is_cleanup (x))
 	{

commit 7b58a7e27afac52ca630d5db523503b75c732305
Author: Juergen Christ <jchrist@linux.ibm.com>
Date:   Mon Dec 9 15:26:54 2024 +0100

    s390: Fix UNSPEC_CC_TO_INT canonicalization
    
    Canonicalization of comparisons for UNSPEC_CC_TO_INT missed one case
    causing unnecessarily complex code.  This especially seems to hit the
    Linux kernel.
    
    gcc/ChangeLog:
    
            * config/s390/s390.cc (s390_canonicalize_comparison): Add
            missing UNSPEC_CC_TO_INT case.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/s390/ccusage.c: New test.
    
    Signed-off-by: Juergen Christ <jchrist@linux.ibm.com>
    (cherry picked from commit bdc572f9a42b6a68dec1a5593d5311f45bd29cc9)

diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc
index a1c0a57a795..f2e4f5e101c 100644
--- a/gcc/config/s390/s390.cc
+++ b/gcc/config/s390/s390.cc
@@ -1859,7 +1859,7 @@ s390_canonicalize_comparison (int *code, rtx *op0, rtx *op1,
       && CONST_INT_P (XEXP (*op0, 1))
       && CONST_INT_P (*op1)
       && INTVAL (XEXP (*op0, 1)) == -3
-      && *code == EQ)
+      && (*code == EQ || *code == NE))
     {
       if (INTVAL (*op1) == 0)
 	{
diff --git a/gcc/testsuite/gcc.target/s390/ccusage.c b/gcc/testsuite/gcc.target/s390/ccusage.c
new file mode 100644
index 00000000000..e25f712e25c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/s390/ccusage.c
@@ -0,0 +1,37 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
+
+static __attribute__((always_inline)) inline
+int __atomic_dec_and_test(int *ptr)
+{
+        int cc;
+        asm volatile(
+                "       alsi    %[ptr],-1\n"
+                : "=@cc" (cc), [ptr] "+QS" (*ptr) : : "memory");
+        return (cc == 0) || (cc == 2);
+}
+ 
+int a;
+void dummy(void);
+long fu(void)
+{
+        if (__atomic_dec_and_test(&a))
+                return 5;
+        return 8;
+}
+ 
+void bar(void)
+{
+        if (__atomic_dec_and_test(&a))
+                dummy();
+}
+
+int foo(int x)
+{
+        int cc;
+        asm volatile ("ahi %[x],42\n"
+                        : [x] "+d" (x), "=@cc" (cc));
+        return !(cc == 0 || cc == 2) ? 42 : 13;
+}
+
+/* { dg-final { scan-assembler-not {ipm} } } */

commit 21a09f0507cd9d0e97576e15241784c48642ddf7
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Dec 10 00:25:55 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bed52e9e936..e59460a69c0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2024-12-09  Juergen Christ  <jchrist@linux.ibm.com>
+
+	Backported from master:
+	2024-12-09  Juergen Christ  <jchrist@linux.ibm.com>
+
+	* config/s390/s390.cc (s390_canonicalize_comparison): Add
+	missing UNSPEC_CC_TO_INT case.
+
+2024-12-09  Simon Martin  <simon@nasilyan.com>
+
+	Backported from master:
+	2024-12-09  Simon Martin  <simon@nasilyan.com>
+
+	PR c++/117845
+	* tree-eh.cc (honor_protect_cleanup_actions): Support empty
+	finally sequences.
+
 2024-12-08  Uros Bizjak  <ubizjak@gmail.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 775d8f2db22..61bea039942 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241209
+20241210
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cdc244a529b..4d86a977efd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,19 @@
+2024-12-09  Juergen Christ  <jchrist@linux.ibm.com>
+
+	Backported from master:
+	2024-12-09  Juergen Christ  <jchrist@linux.ibm.com>
+
+	* gcc.target/s390/ccusage.c: New test.
+
+2024-12-09  Simon Martin  <simon@nasilyan.com>
+
+	Backported from master:
+	2024-12-09  Simon Martin  <simon@nasilyan.com>
+
+	PR c++/117845
+	* g++.dg/asan/pr117845-2.C: New test.
+	* g++.dg/asan/pr117845.C: New test.
+
 2024-12-08  Uros Bizjak  <ubizjak@gmail.com>
 
 	Backported from master:

commit 6ddd89591cc6b6894227b18bb505495d8c949f1c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Dec 11 00:23:27 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 61bea039942..43fbb1840bf 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241210
+20241211

commit 2d9dbaf06e4cd83125781d1eb760f5404da3d175
Author: Jerry DeLisle <jvdelisle@gcc.gnu.org>
Date:   Mon Dec 9 20:11:23 2024 -0800

    Fortran: Fix READ with padding in BLANK ZERO mode.
    
            PR fortran/117819
    
    libgfortran/ChangeLog:
    
            * io/read.c (read_decimal): If the read value is short of the
            specified width and pad mode is PAD yes, check for BLANK ZERO
            and adjust the value accordingly.
            (read_radix): Likewise.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/pr117819.f90: New test.
    
    (cherry picked from commit cf406a6c79ce404c45f99bcf2df3293269dbb462)

diff --git a/gcc/testsuite/gfortran.dg/pr117819.f90 b/gcc/testsuite/gfortran.dg/pr117819.f90
new file mode 100644
index 00000000000..d9a9b7f6f9b
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr117819.f90
@@ -0,0 +1,45 @@
+! { dg-do run }
+! PR117819 
+Program xe1
+  Implicit None
+  Character(6) string
+  Integer x
+  Logical :: ok = .True.
+  string = '111111'
+  !print *, "String we read from is: ", string
+  Read(string,1) x
+1 Format(BZ,B8)
+  If (x/=Int(b'11111100')) Then
+    Print *,'FAIL B8 BZ wrong result'
+    Print *,'Expected',Int(b'11111100')
+    Print *,'Received',x
+    ok = .False.
+  End If
+  string = '123456'
+  !print *, "String we read from is: ", string
+  Read(string,2) x
+2 Format(BZ,I8)
+  If (x/=12345600) Then
+    Print *,'FAIL I8 BZ wrong result'
+    Print *,'Expected',12345600
+    Print *,'Received',x
+    ok = .False.
+  End If
+  Read(string,3) x
+3 Format(BZ,O8)
+  If (x/=Int(o'12345600')) Then
+    Print *,'FAIL O8 BZ wrong result'
+    Print *,'Expected',Int(o'12345600')
+    Print *,'Received',x
+    ok = .False.
+  End If
+  Read(string,4) x
+4 Format(BZ,Z8)
+  If (x/=Int(z'12345600')) Then
+    Print *,'FAIL OZ BZ wrong result'
+    Print *,'Expected',Int(z'12345600')
+    Print *,'Received',x
+    ok = .False.
+  End If
+  If (.not. ok) stop 1
+End Program
diff --git a/libgfortran/io/read.c b/libgfortran/io/read.c
index 7a9e341d7d8..24cfe8599cd 100644
--- a/libgfortran/io/read.c
+++ b/libgfortran/io/read.c
@@ -675,11 +675,11 @@ read_decimal (st_parameter_dt *dtp, const fnode *f, char *dest, int length)
 {
   GFC_UINTEGER_LARGEST value, maxv, maxv_10;
   GFC_INTEGER_LARGEST v;
-  size_t w;
+  size_t w, padding;
   int negative;
   char c, *p;
 
-  w = f->u.w;
+  w = padding = f->u.w;
 
   /* This is a legacy extension, and the frontend will only allow such cases
    * through when -fdec-format-defaults is passed.
@@ -692,6 +692,10 @@ read_decimal (st_parameter_dt *dtp, const fnode *f, char *dest, int length)
   if (p == NULL)
     return;
 
+  /* If the read was not the full width we may need to pad with blanks or zeros
+   * depending on the PAD mode.  Save the number of pad characters needed.  */
+  padding -= w;
+
   p = eat_leading_spaces (&w, p);
   if (w == 0)
     {
@@ -729,8 +733,14 @@ read_decimal (st_parameter_dt *dtp, const fnode *f, char *dest, int length)
     {
       c = next_char (dtp, &p, &w);
       if (c == '\0')
-	break;
-	
+	{
+	  if (dtp->u.p.blank_status == BLANK_ZERO)
+	    {
+	      for (size_t n = 0; n < padding; n++)
+		value = 10 * value;
+	    }
+	  break;
+	}
       if (c == ' ')
         {
 	  if (dtp->u.p.blank_status == BLANK_NULL)
@@ -778,7 +788,6 @@ read_decimal (st_parameter_dt *dtp, const fnode *f, char *dest, int length)
 
 }
 
-
 /* read_radix()-- This function reads values for non-decimal radixes.
    The difference here is that we treat the values here as unsigned
    values for the purposes of overflow.  If minus sign is present and
@@ -790,17 +799,21 @@ read_radix (st_parameter_dt *dtp, const fnode *f, char *dest, int length,
 {
   GFC_UINTEGER_LARGEST value, maxv, maxv_r;
   GFC_INTEGER_LARGEST v;
-  size_t w;
+  size_t w, padding;
   int negative;
   char c, *p;
 
-  w = f->u.w;
+  w = padding = f->u.w;
 
   p = read_block_form (dtp, &w);
 
   if (p == NULL)
     return;
 
+  /* If the read was not the full width we may need to pad with blanks or zeros
+   * depending on the PAD mode.  Save the number of pad characters needed.  */
+  padding -= w;
+
   p = eat_leading_spaces (&w, p);
   if (w == 0)
     {
@@ -838,7 +851,14 @@ read_radix (st_parameter_dt *dtp, const fnode *f, char *dest, int length,
     {
       c = next_char (dtp, &p, &w);
       if (c == '\0')
-	break;
+	{
+	  if (dtp->u.p.blank_status == BLANK_ZERO)
+	    {
+	      for (size_t n = 0; n < padding; n++)
+		value = radix * value;
+	    }
+	  break;
+	}
       if (c == ' ')
         {
 	  if (dtp->u.p.blank_status == BLANK_NULL) continue;

commit 7121921723a26a3eddae38821c9bebc89151f365
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Dec 12 00:23:25 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 43fbb1840bf..3489d2d624c 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241211
+20241212
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4d86a977efd..8f1259fefea 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	Backported from master:
+	2024-12-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR fortran/117819
+	* gfortran.dg/pr117819.f90: New test.
+
 2024-12-09  Juergen Christ  <jchrist@linux.ibm.com>
 
 	Backported from master:
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index aae8cde3d5a..b65d9f9038b 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,14 @@
+2024-12-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	Backported from master:
+	2024-12-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR fortran/117819
+	* io/read.c (read_decimal): If the read value is short of the
+	specified width and pad mode is PAD yes, check for BLANK ZERO
+	and adjust the value accordingly.
+	(read_radix): Likewise.
+
 2024-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
 	Backported from master:

commit add35600a6989bdb513d3acf6087726a5ddd5b53
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Thu Nov 21 16:08:30 2024 +0100

    testsuite: arm: Fix build error for thumb2-slow-flash-data-3.c test
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/thumb2-slow-flash-data-3.c: Added argument to
            fn1 to avoid compile error.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 09499ffbb3028f2db2dd97c2b764f0efe92bf3ef)

diff --git a/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c b/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c
index 27e72ec2086..77c7705a4df 100644
--- a/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c
+++ b/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c
@@ -10,7 +10,7 @@
 /* From PR71607 */
 
 float b;
-void fn1 ();
+void fn1 (void*);
 
 float
 fn2 ()

commit cbedb3394a2ad9ab551aee48a33d83970c08d4d4
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Thu Nov 21 19:56:19 2024 +0100

    testsuite: arm: Use -mtune=cortex-m4 for thumb-ifcvt.c test
    
    On Cortex-M4, the code generated is:
         cmp     r0, r1
         itte    ne
         lslne   r0, r0, r1
         asrne   r0, r0, #1
         moveq   r0, r1
         add     r0, r0, r1
         bx      lr
    
    On Cortex-M7, the code generated is:
         cmp     r0, r1
         beq     .L3
         lsls    r0, r0, r1
         asrs    r0, r0, #1
         add     r0, r0, r1
         bx      lr
    .L3:
         mov     r0, r1
         add     r0, r0, r1
         bx      lr
    
    As Cortex-M7 only allow maximum one conditional instruction, force
    Cortex-M4 to have a stable test case.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/thumb-ifcvt.c: Use -mtune=cortex-m4.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit e7615f6c99f93056b344ad07ee909114ee54f471)

diff --git a/gcc/testsuite/gcc.target/arm/thumb-ifcvt.c b/gcc/testsuite/gcc.target/arm/thumb-ifcvt.c
index 02e56f53b0d..c7786faae76 100644
--- a/gcc/testsuite/gcc.target/arm/thumb-ifcvt.c
+++ b/gcc/testsuite/gcc.target/arm/thumb-ifcvt.c
@@ -1,7 +1,7 @@
 /* Check that Thumb 16-bit shifts can be if-converted.  */
 /* { dg-do compile } */
 /* { dg-require-effective-target arm_thumb2_ok } */
-/* { dg-options "-O2 -mthumb -mno-restrict-it" } */
+/* { dg-options "-O2 -mthumb -mtune=cortex-m4 -mno-restrict-it" } */
 
 int
 foo (int a, int b)

commit d470d64b398684f510637fe8ada570fff92af841
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Dec 12 16:25:09 2024 +0100

    Fix precondition failure with Ada.Numerics.Generic_Real_Arrays.Eigenvalues
    
    This fixes a precondition failure triggered when the Eigenvalues routine
    of Ada.Numerics.Generic_Real_Arrays is instantiated with -gnata, beause
    it calls Sort_Eigensystem on an empty vector.
    
    gcc/ada
            PR ada/117996
            * libgnat/a-ngrear.adb (Jacobi): Remove default value for
            Compute_Vectors formal parameter.
            (Sort_Eigensystem): Add Compute_Vectors formal parameter.  Do not
            modify the Vectors if Compute_Vectors is False.
            (Eigensystem): Pass True as Compute_Vectors to Sort_Eigensystem.
            (Eigenvalues): Pass False as Compute_Vectors to Sort_Eigensystem.
    
    gcc/testsuite
            * gnat.dg/matrix1.adb: New test.

diff --git a/gcc/ada/libgnat/a-ngrear.adb b/gcc/ada/libgnat/a-ngrear.adb
index e70617f2096..6778a56e45c 100644
--- a/gcc/ada/libgnat/a-ngrear.adb
+++ b/gcc/ada/libgnat/a-ngrear.adb
@@ -96,7 +96,7 @@ package body Ada.Numerics.Generic_Real_Arrays is
      (A               : Real_Matrix;
       Values          : out Real_Vector;
       Vectors         : out Real_Matrix;
-      Compute_Vectors : Boolean := True);
+      Compute_Vectors : Boolean);
    --  Perform Jacobi's eigensystem algorithm on real symmetric matrix A
 
    function Length is new Square_Matrix_Length (Real'Base, Real_Matrix);
@@ -107,8 +107,9 @@ package body Ada.Numerics.Generic_Real_Arrays is
    --  Perform a Givens rotation
 
    procedure Sort_Eigensystem
-     (Values  : in out Real_Vector;
-      Vectors : in out Real_Matrix);
+     (Values          : in out Real_Vector;
+      Vectors         : in out Real_Matrix;
+      Compute_Vectors : Boolean);
    --  Sort Values and associated Vectors by decreasing absolute value
 
    procedure Swap (Left, Right : in out Real);
@@ -486,7 +487,7 @@ package body Ada.Numerics.Generic_Real_Arrays is
    is
    begin
       Jacobi (A, Values, Vectors, Compute_Vectors => True);
-      Sort_Eigensystem (Values, Vectors);
+      Sort_Eigensystem (Values, Vectors, Compute_Vectors => True);
    end Eigensystem;
 
    -----------------
@@ -500,7 +501,7 @@ package body Ada.Numerics.Generic_Real_Arrays is
             Vectors : Real_Matrix (1 .. 0, 1 .. 0);
          begin
             Jacobi (A, Values, Vectors, Compute_Vectors => False);
-            Sort_Eigensystem (Values, Vectors);
+            Sort_Eigensystem (Values, Vectors, Compute_Vectors => False);
          end;
       end return;
    end Eigenvalues;
@@ -522,7 +523,7 @@ package body Ada.Numerics.Generic_Real_Arrays is
      (A               : Real_Matrix;
       Values          : out Real_Vector;
       Vectors         : out Real_Matrix;
-      Compute_Vectors : Boolean := True)
+      Compute_Vectors : Boolean)
    is
       --  This subprogram uses Carl Gustav Jacob Jacobi's iterative method
       --  for computing eigenvalues and eigenvectors and is based on
@@ -731,8 +732,9 @@ package body Ada.Numerics.Generic_Real_Arrays is
    ----------------------
 
    procedure Sort_Eigensystem
-     (Values  : in out Real_Vector;
-      Vectors : in out Real_Matrix)
+     (Values          : in out Real_Vector;
+      Vectors         : in out Real_Matrix;
+      Compute_Vectors : Boolean)
    is
       procedure Swap (Left, Right : Integer);
       --  Swap Values (Left) with Values (Right), and also swap the
@@ -748,8 +750,10 @@ package body Ada.Numerics.Generic_Real_Arrays is
       procedure Swap (Left, Right : Integer) is
       begin
          Swap (Values (Left), Values (Right));
-         Swap_Column (Vectors, Left - Values'First + Vectors'First (2),
-                               Right - Values'First + Vectors'First (2));
+         if Compute_Vectors then
+            Swap_Column (Vectors, Left - Values'First + Vectors'First (2),
+                                  Right - Values'First + Vectors'First (2));
+         end if;
       end Swap;
 
    begin
diff --git a/gcc/testsuite/gnat.dg/matrix1.adb b/gcc/testsuite/gnat.dg/matrix1.adb
new file mode 100644
index 00000000000..2a920e27f0e
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/matrix1.adb
@@ -0,0 +1,16 @@
+-- { dg-do run }
+-- { dg-options "-gnata" }
+
+with Ada.Numerics.Generic_Real_Arrays;
+
+procedure Matrix1 is
+
+  package GRA is new Ada.Numerics.Generic_Real_Arrays (real => float);
+  use GRA;
+
+  M : constant Real_Matrix (1..2, 1..2) := ((1.0, 0.0), (0.0, 2.0));
+  E : constant Real_Vector := Eigenvalues (M);
+
+begin
+  null;
+end;

commit c27a18962aecf047ed5e9b207643c1726a6e0638
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Dec 13 00:24:16 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 3489d2d624c..dba749d567d 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241212
+20241213
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 402630e9a51..3a4b3a77790 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,13 @@
+2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/117996
+	* libgnat/a-ngrear.adb (Jacobi): Remove default value for
+	Compute_Vectors formal parameter.
+	(Sort_Eigensystem): Add Compute_Vectors formal parameter.  Do not
+	modify the Vectors if Compute_Vectors is False.
+	(Eigensystem): Pass True as Compute_Vectors to Sort_Eigensystem.
+	(Eigenvalues): Pass False as Compute_Vectors to Sort_Eigensystem.
+
 2024-11-26  Arsen Arsenović  <arsen@aarsen.me>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8f1259fefea..a7d6a1f4a28 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,22 @@
+2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* gnat.dg/matrix1.adb: New test.
+
+2024-12-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-12-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/thumb-ifcvt.c: Use -mtune=cortex-m4.
+
+2024-12-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-12-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/thumb2-slow-flash-data-3.c: Added argument to
+	fn1 to avoid compile error.
+
 2024-12-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
 	Backported from master:

commit da470844aebd0836ce5b6921be62be954e1f8b52
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Dec 13 14:10:19 2024 +0000

    [PATCH] PR modula2/115328: use enable forward bool and set default true
    
    This patch introduces GetEnableForward and SetEnableForward
    against which the forward procedure declaration feature is checked.
    Currently this is set as default true.
    
    gcc/m2/ChangeLog:
    
            PR modula2/115328
            * gm2-compiler/M2Options.def (GetEnableForward): New procedure
            function.
            (SetEnableForward): New procedure.
            * gm2-compiler/M2Options.mod (GetEnableForward): New procedure
            function.
            (SetEnableForward): New procedure.
            (EnableForward): New boolean.
            * gm2-compiler/P1SymBuild.mod (EndBuildForward): Check
            GetEnableForward and generate an error message if false.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/115328
            * gm2/pim/fail/forward.mod: Move to...
            * gm2/pim/pass/forward.mod: ...here.
    
    (cherry picked from commit 548afd73cdbf310403a1e3f34226372c16c29706)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2Options.def b/gcc/m2/gm2-compiler/M2Options.def
index baa5d7ec897..1f483e6611e 100644
--- a/gcc/m2/gm2-compiler/M2Options.def
+++ b/gcc/m2/gm2-compiler/M2Options.def
@@ -1121,6 +1121,20 @@ PROCEDURE GetDebugTraceLine () : BOOLEAN ;
 PROCEDURE GetDebugFunctionLineNumbers () : BOOLEAN ;
 
 
+(*
+   GetEnableForward - return EnableForward.
+*)
+
+PROCEDURE GetEnableForward () : BOOLEAN ;
+
+
+(*
+   SetEnableForward - set EnableForward to value.
+*)
+
+PROCEDURE SetEnableForward (value: BOOLEAN) ;
+
+
 (*
    FinaliseOptions - once all options have been parsed we set any inferred
                      values.
diff --git a/gcc/m2/gm2-compiler/M2Options.mod b/gcc/m2/gm2-compiler/M2Options.mod
index 4048144f48e..8f4e326beb2 100644
--- a/gcc/m2/gm2-compiler/M2Options.mod
+++ b/gcc/m2/gm2-compiler/M2Options.mod
@@ -76,6 +76,7 @@ VAR
    UselistFilename,
    RuntimeModuleOverride,
    CppArgs              : String ;
+   EnableForward,
    DebugFunctionLineNumbers,
    DebugTraceQuad,   (* -fm2-debug-trace=quad.  *)
    DebugTraceLine,   (* -fm2-debug-trace=line.  *)
@@ -2008,6 +2009,26 @@ BEGIN
 END GetDumpDecl ;
 
 
+(*
+   GetEnableForward - return EnableForward.
+*)
+
+PROCEDURE GetEnableForward () : BOOLEAN ;
+BEGIN
+   RETURN EnableForward
+END GetEnableForward ;
+
+
+(*
+   SetEnableForward - set EnableForward to value.
+*)
+
+PROCEDURE SetEnableForward (value: BOOLEAN) ;
+BEGIN
+   EnableForward := value
+END SetEnableForward ;
+
+
 BEGIN
    cflag                             := FALSE ;  (* -c.  *)
    RuntimeModuleOverride             := InitString (DefaultRuntimeModuleOverride) ;
@@ -2099,5 +2120,6 @@ BEGIN
    DumpQuad                          := FALSE ;
    DumpGimple                        := FALSE ;
    M2Dump                            := NIL ;
-   M2DumpFilter                      := NIL
+   M2DumpFilter                      := NIL ;
+   EnableForward                     := TRUE
 END M2Options.
diff --git a/gcc/m2/gm2-compiler/P1SymBuild.mod b/gcc/m2/gm2-compiler/P1SymBuild.mod
index cd42417a394..e916fb6c66d 100644
--- a/gcc/m2/gm2-compiler/P1SymBuild.mod
+++ b/gcc/m2/gm2-compiler/P1SymBuild.mod
@@ -32,7 +32,7 @@ FROM M2MetaError IMPORT MetaErrorString2, MetaError0, MetaError1,
 
 FROM DynamicStrings IMPORT String, Slice, InitString, KillString, EqualCharStar, RIndex, Mark, ConCat ;
 FROM M2Printf IMPORT printf0, printf1, printf2 ;
-FROM M2Options IMPORT Iso ;
+FROM M2Options IMPORT Iso, GetEnableForward ;
 
 FROM M2Reserved IMPORT ImportTok, ExportTok, QualifiedTok, UnQualifiedTok,
                        NulTok, VarTok, ArrayTok, BuiltinTok, InlineTok ;
@@ -1074,10 +1074,10 @@ VAR
 BEGIN
    ProcSym := OperandT (1) ;
    tok := OperandTok (1) ;
-   IF NOT Iso
+   IF NOT GetEnableForward ()
    THEN
       MetaErrorT0 (forwardPos,
-                   'forward declaration is only allowed in the ISO dialect of Modula-2')
+                   'forward declaration has not been enabled, use -fiso or -fenable-forward to enable forward procedure declarations')
    END ;
    IF GetProcedureDefined (ProcSym, ForwardProcedure)
    THEN
diff --git a/gcc/testsuite/gm2/pim/fail/forward.mod b/gcc/testsuite/gm2/pim/pass/forward.mod
similarity index 100%
rename from gcc/testsuite/gm2/pim/fail/forward.mod
rename to gcc/testsuite/gm2/pim/pass/forward.mod

commit 2fd2f40e0461e21df0a2f5ead083d53b641d2a86
Author: Marek Polacek <polacek@redhat.com>
Date:   Mon Dec 9 15:36:25 2024 -0500

    c++: ICE with -Wduplicated-branches in template [PR117880]
    
    In a template, for things like void() we'll create a CAST_EXPR with
    a null operand.  That causes a crash with -Wduplicated-branches on:
    
      false ? void() : void();
    
    because we do
    
      if (warn_duplicated_branches
          && (complain & tf_warning)
          && (arg2 == arg3 || operand_equal_p (arg2, arg3,
                                               OEP_ADDRESS_OF_SAME_FIELD)))
    
    even in a template.  So one way to fix the ICE would be to check
    !processing_template_decl.  But we can also do the following and
    continue warning even in templates.
    
    This ICE appeared with the removal of NON_DEPENDENT_EXPR; before,
    operand_equal_p would bail on this code so there was no problem.
    
            PR c++/117880
    
    gcc/ChangeLog:
    
            * fold-const.cc (operand_compare::operand_equal_p) <case tcc_unary>:
            Use OP_SAME_WITH_NULL instead of OP_SAME.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/warn/Wduplicated-branches8.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit d26c166001d6a5bdfd94be6e6d17135669ed340b)

diff --git a/gcc/fold-const.cc b/gcc/fold-const.cc
index 89df178c696..0d8942deedd 100644
--- a/gcc/fold-const.cc
+++ b/gcc/fold-const.cc
@@ -3441,7 +3441,7 @@ operand_compare::operand_equal_p (const_tree arg0, const_tree arg1,
 	  break;
 	}
 
-      return OP_SAME (0);
+      return OP_SAME_WITH_NULL (0);
 
 
     case tcc_comparison:
diff --git a/gcc/testsuite/g++.dg/warn/Wduplicated-branches8.C b/gcc/testsuite/g++.dg/warn/Wduplicated-branches8.C
new file mode 100644
index 00000000000..f03c92a2c8b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wduplicated-branches8.C
@@ -0,0 +1,17 @@
+// PR c++/117880
+// { dg-do compile }
+// { dg-options "-Wduplicated-branches" }
+
+struct X {};
+
+template<typename>
+struct S {
+  void g1 () { false ? void() : void(); }   // { dg-warning "this condition has identical branches" }
+  void g2 () { false ? int() : int(); }	    // { dg-warning "this condition has identical branches" }
+  void g3 () { int() ? : int(); }	    // { dg-warning "this condition has identical branches" }
+  void g4 () { false ? int() : double(); }
+  void g5 () { false ? unsigned() : int(); }
+  void g6 () { false ? signed() : int(); }  // { dg-warning "this condition has identical branches" }
+  // Two different TARGET_EXPRs.
+  void g7 () { false ? X() : X(); }
+};

commit 3454cca24a92a535a46fe4ec9d5d41585002fc4b
Author: Marek Polacek <polacek@redhat.com>
Date:   Mon Dec 9 08:19:35 2024 -0500

    driver: fix crash with --diagnostics-plain-output [PR117942]
    
    We are crashing here because decode_cmdline_options_to_array has:
    
      if (!strcmp (opt, "-fdiagnostics-plain-output"))
        ...
    
    but that doesn't handle the '--FLAG' variant.
    
            PR driver/117942
    
    gcc/ChangeLog:
    
            * opts-common.cc (decode_cmdline_options_to_array): Also detect
            --diagnostics-plain-output.
    
    Reviewed-by: Joseph Myers <josmyers@redhat.com>
    (cherry picked from commit be2062be9a629ae18a0c87c6b9cbe1885978417e)

diff --git a/gcc/opts-common.cc b/gcc/opts-common.cc
index f68a9b95ee3..bbe11879d5c 100644
--- a/gcc/opts-common.cc
+++ b/gcc/opts-common.cc
@@ -1076,7 +1076,9 @@ decode_cmdline_options_to_array (unsigned int argc, const char **argv,
       /* Expand -fdiagnostics-plain-output to its constituents.  This needs
 	 to happen here so that prune_options can handle -fdiagnostics-color
 	 specially.  */
-      if (!strcmp (opt, "-fdiagnostics-plain-output"))
+      if (opt[0] == '-'
+	  && (opt[1] == '-' || opt[1] == 'f')
+	  && !strcmp (opt + 2, "diagnostics-plain-output"))
 	{
 	  /* If you have changed the default diagnostics output, and this new
 	     output is not appropriately "plain" (e.g., the change needs to be

commit 980e12480b59cdbdd5c0b7abf26886b030a03e7b
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Dec 14 00:25:58 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e59460a69c0..049bb88d4b7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,21 @@
+2024-12-13  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-12-09  Marek Polacek  <polacek@redhat.com>
+
+	PR driver/117942
+	* opts-common.cc (decode_cmdline_options_to_array): Also detect
+	--diagnostics-plain-output.
+
+2024-12-13  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-12-10  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/117880
+	* fold-const.cc (operand_compare::operand_equal_p) <case tcc_unary>:
+	Use OP_SAME_WITH_NULL instead of OP_SAME.
+
 2024-12-09  Juergen Christ  <jchrist@linux.ibm.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index dba749d567d..ae0d5cf829e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241213
+20241214
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index cc4c1c17f7e..1b8d9ae9d81 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,19 @@
+2024-12-13  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-12-09  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115328
+	* gm2-compiler/M2Options.def (GetEnableForward): New procedure
+	function.
+	(SetEnableForward): New procedure.
+	* gm2-compiler/M2Options.mod (GetEnableForward): New procedure
+	function.
+	(SetEnableForward): New procedure.
+	(EnableForward): New boolean.
+	* gm2-compiler/P1SymBuild.mod (EndBuildForward): Check
+	GetEnableForward and generate an error message if false.
+
 2024-12-07  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a7d6a1f4a28..fe44ae7c9c8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,20 @@
+2024-12-13  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-12-10  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/117880
+	* g++.dg/warn/Wduplicated-branches8.C: New test.
+
+2024-12-13  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-12-09  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115328
+	* gm2/pim/fail/forward.mod: Move to...
+	* gm2/pim/pass/forward.mod: ...here.
+
 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* gnat.dg/matrix1.adb: New test.

commit cfe21668f3a7a0f07fa1e79ef2561a107a09a67d
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Sat Dec 14 11:46:57 2024 +0000

    [PATCH] PR modula2/117120: case ch with a nul char constant causes ICE
    
    This patch fixes the ICE caused when a case clause contains
    a character constant ''.  The fix was to walk the caselist and
    convert any 0 length string into a char constant of value 0.
    
    gcc/m2/ChangeLog:
    
            PR modula2/117120
            * gm2-compiler/M2CaseList.mod (CaseBoundsResolved): Rewrite.
            (ConvertNulStr2NulChar): New procedure function.
            (NulStr2NulChar): Ditto.
            (GetCaseExpression): Ditto.
            (OverlappingCaseBound): Rewrite.
            * gm2-compiler/M2GCCDeclare.mod (CheckResolveSubrange): Allow
            '' to be used as the subrange low limit.
            * gm2-compiler/M2GenGCC.mod (FoldConvert): Rewrite.
            (PopKindTree): Ditto.
            (BuildHighFromString): Reformat.
            * gm2-compiler/SymbolTable.mod (PushConstString): Add test for
            length 0 and PushChar (nul).
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/117120
            * gm2/pim/pass/forloopnulchar.mod: New test.
            * gm2/pim/pass/nulcharcase.mod: New test.
            * gm2/pim/pass/nulcharvar.mod: New test.
    
    (cherry picked from commit e0ab8816ea53e2a343f7e945f4718172bff5ce95)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2CaseList.mod b/gcc/m2/gm2-compiler/M2CaseList.mod
index 7a889bd5d8b..7fcfe1b4072 100644
--- a/gcc/m2/gm2-compiler/M2CaseList.mod
+++ b/gcc/m2/gm2-compiler/M2CaseList.mod
@@ -27,10 +27,10 @@ FROM M2GCCDeclare IMPORT TryDeclareConstant, GetTypeMin, GetTypeMax ;
 FROM M2MetaError IMPORT MetaError1, MetaError2, MetaErrorT0, MetaErrorT1, MetaErrorT2, MetaErrorT3, MetaErrorT4, MetaErrorStringT0, MetaErrorString1 ;
 FROM M2Error IMPORT InternalError ;
 FROM M2Range IMPORT OverlapsRange, IsEqual, IsGreater ;
-FROM M2ALU IMPORT PushIntegerTree, PopIntegerTree, Addn, Sub, PushInt ;
+FROM M2ALU IMPORT PushIntegerTree, PopIntegerTree, Addn, Sub, PushInt, PushCard ;
 FROM Indexing IMPORT Index, InitIndex, PutIndice, GetIndice, ForeachIndiceInIndexDo, HighIndice ;
 FROM Lists IMPORT InitList, IncludeItemIntoList, RemoveItemFromList, NoOfItemsInList, GetItemFromList ;
-FROM NameKey IMPORT KeyToCharStar ;
+FROM NameKey IMPORT NulName, KeyToCharStar ;
 FROM SymbolConversion IMPORT GccKnowsAbout, Mod2Gcc, AddModGcc ;
 FROM DynamicStrings IMPORT InitString, InitStringCharStar, InitStringChar, ConCat, Mark, KillString ;
 FROM gcctypes IMPORT tree ;
@@ -44,7 +44,8 @@ FROM NumberIO IMPORT WriteCard ;
 
 FROM SymbolTable IMPORT NulSym, IsConst, IsFieldVarient, IsRecord, IsRecordField, GetVarientTag, GetType,
                         ForeachLocalSymDo, GetSymName, IsEnumeration, SkipType, NoOfElements, GetNth,
-                        IsSubrange ;
+                        IsSubrange, MakeConstLit, IsConstString, GetStringLength, MakeConstVar, PutConst,
+                        PopValue ;
 
 TYPE
    RangePair = POINTER TO RECORD
@@ -64,6 +65,7 @@ TYPE
               END ;
 
    CaseDescriptor = POINTER TO RECORD
+                       resolved     : BOOLEAN ;
                        elseClause   : BOOLEAN ;
                        elseField    : CARDINAL ;
                        record       : CARDINAL ;
@@ -110,6 +112,7 @@ BEGIN
       InternalError ('out of memory error')
    ELSE
       WITH c^ DO
+         resolved := FALSE ;
          elseClause := FALSE ;
          elseField := NulSym ;
          record := rec ;
@@ -244,7 +247,30 @@ END GetVariantTagType ;
 
 PROCEDURE CaseBoundsResolved (tokenno: CARDINAL; c: CARDINAL) : BOOLEAN ;
 VAR
-   resolved: BOOLEAN ;
+   p: CaseDescriptor ;
+BEGIN
+   p := GetIndice (caseArray, c) ;
+   IF p^.resolved
+   THEN
+      RETURN TRUE
+   ELSE
+      IF CheckCaseBoundsResolved (tokenno, c)
+      THEN
+         ConvertNulStr2NulChar (tokenno, c) ;
+         RETURN TRUE
+      ELSE
+         RETURN FALSE
+      END
+   END
+END CaseBoundsResolved ;
+
+
+(*
+   CheckCaseBoundsResolved - return TRUE if all constants in the case list c are known to GCC.
+*)
+
+PROCEDURE CheckCaseBoundsResolved (tokenno: CARDINAL; c: CARDINAL) : BOOLEAN ;
+VAR
    p       : CaseDescriptor ;
    q       : CaseList ;
    r       : RangePair ;
@@ -327,7 +353,62 @@ BEGIN
       END
    END ;
    RETURN( TRUE )
-END CaseBoundsResolved ;
+END CheckCaseBoundsResolved ;
+
+
+(*
+   ConvertNulStr2NulChar -
+*)
+
+PROCEDURE ConvertNulStr2NulChar (tokenno: CARDINAL; c: CARDINAL) ;
+VAR
+   p   : CaseDescriptor ;
+   q   : CaseList ;
+   r   : RangePair ;
+   i, j: CARDINAL ;
+BEGIN
+   p := GetIndice (caseArray, c) ;
+   WITH p^ DO
+      i := 1 ;
+      WHILE i <= maxCaseId DO
+         q := GetIndice (caseListArray, i) ;
+         j := 1 ;
+         WHILE j<=q^.maxRangeId DO
+            r := GetIndice (q^.rangeArray, j) ;
+            r^.low := NulStr2NulChar (tokenno, r^.low) ;
+            r^.high := NulStr2NulChar (tokenno, r^.high) ;
+            INC (j)
+         END ;
+         INC (i)
+      END
+   END
+END ConvertNulStr2NulChar ;
+
+
+(*
+   NulStr2NulChar - if sym is a const string of length 0 then return
+                    a nul char instead otherwise return sym.
+*)
+
+PROCEDURE NulStr2NulChar (tok: CARDINAL; sym: CARDINAL) : CARDINAL ;
+BEGIN
+   IF sym # NulSym
+   THEN
+      IF IsConst (sym) AND IsConstString (sym) AND GccKnowsAbout (sym)
+      THEN
+         IF GetStringLength (tok, sym) = 0
+         THEN
+            sym := MakeConstVar (tok, NulName) ;
+            PutConst (sym, Char) ;
+            PushCard (0) ;
+            PopValue (sym) ;
+            TryDeclareConstant (tok, sym) ;
+            Assert (GccKnowsAbout (sym))
+         END
+      END
+   END ;
+   RETURN sym
+END NulStr2NulChar ;
 
 
 (*
@@ -439,6 +520,26 @@ BEGIN
 END Overlaps ;
 
 
+(*
+   GetCaseExpression - return the type from the expression.
+*)
+
+PROCEDURE GetCaseExpression (p: CaseDescriptor) : CARDINAL ;
+VAR
+   type: CARDINAL ;
+BEGIN
+   WITH p^ DO
+      IF expression = NulSym
+      THEN
+         type := NulSym
+      ELSE
+         type := SkipType (GetType (expression))
+      END
+   END ;
+   RETURN type
+END GetCaseExpression ;
+
+
 (*
    OverlappingCaseBound - returns TRUE if, r, overlaps any case bound in the
                           case statement, c.
@@ -488,15 +589,15 @@ VAR
    i, j   : CARDINAL ;
    overlap: BOOLEAN ;
 BEGIN
-   p := GetIndice(caseArray, c) ;
+   p := GetIndice (caseArray, c) ;
    overlap := FALSE ;
    WITH p^ DO
       i := 1 ;
       WHILE i<=maxCaseId DO
-         q := GetIndice(caseListArray, i) ;
+         q := GetIndice (caseListArray, i) ;
          j := 1 ;
          WHILE j<=q^.maxRangeId DO
-            r := GetIndice(q^.rangeArray, j) ;
+            r := GetIndice (q^.rangeArray, j) ;
             IF OverlappingCaseBound (r, c)
             THEN
                overlap := TRUE
@@ -1121,27 +1222,24 @@ BEGIN
    WITH p^ DO
       IF NOT elseClause
       THEN
-         IF expression # NulSym
+         type := GetCaseExpression (p) ;
+         IF type # NulSym
          THEN
-            type := SkipType (GetType (expression)) ;
-            IF type # NulSym
+            IF IsEnumeration (type) OR IsSubrange (type)
             THEN
-               IF IsEnumeration (type) OR IsSubrange (type)
+               (* A case statement sequence without an else clause but
+                  selecting using an enumeration type.  *)
+               set := NewSet (type) ;
+               set := ExcludeCaseRanges (set, p) ;
+               IF set # NIL
                THEN
-                  (* A case statement sequence without an else clause but
-                     selecting using an enumeration type.  *)
-                  set := NewSet (type) ;
-                  set := ExcludeCaseRanges (set, p) ;
-                  IF set # NIL
-                  THEN
-                     missing := TRUE ;
-                     MetaErrorT1 (tokenno,
-                                  'not all {%1Wd} values in the {%kCASE} statements are specified, hint you either need to specify each value of {%1ad} or use an {%kELSE} clause',
-                                  type) ;
-                     EmitMissingRangeErrors (tokenno, type, set)
-                  END ;
-                  set := DisposeRanges (set)
-               END
+                  missing := TRUE ;
+                  MetaErrorT1 (tokenno,
+                               'not all {%1Wd} values in the {%kCASE} statements are specified, hint you either need to specify each value of {%1ad} or use an {%kELSE} clause',
+                               type) ;
+                  EmitMissingRangeErrors (tokenno, type, set)
+               END ;
+               set := DisposeRanges (set)
             END
          END
       END
diff --git a/gcc/m2/gm2-compiler/M2GCCDeclare.mod b/gcc/m2/gm2-compiler/M2GCCDeclare.mod
index 2680faad7b6..d084096148f 100644
--- a/gcc/m2/gm2-compiler/M2GCCDeclare.mod
+++ b/gcc/m2/gm2-compiler/M2GCCDeclare.mod
@@ -1934,7 +1934,7 @@ BEGIN
    IF IsConstStringKnown (sym)
    THEN
       size := GetStringLength (tokenno, sym) ;
-      IF size=1
+      IF size = 1
       THEN
          DeclareCharConstant (tokenno, sym)
       ELSE
@@ -5570,7 +5570,7 @@ BEGIN
          IF IsConstString (low) AND IsConstStringKnown (low)
          THEN
             size := GetStringLength (tokenno, low) ;
-            IF size=1
+            IF size <= 1
             THEN
                PutSubrange(sym, low, high, Char)
             ELSE
diff --git a/gcc/m2/gm2-compiler/M2GenGCC.mod b/gcc/m2/gm2-compiler/M2GenGCC.mod
index c5f5a782595..5811c9d7794 100644
--- a/gcc/m2/gm2-compiler/M2GenGCC.mod
+++ b/gcc/m2/gm2-compiler/M2GenGCC.mod
@@ -6420,12 +6420,12 @@ PROCEDURE BuildHighFromString (operand: CARDINAL) : tree ;
 VAR
    location: location_t ;
 BEGIN
-   location := TokenToLocation(GetDeclaredMod(operand)) ;
-   IF GccKnowsAbout(operand) AND (StringLength(Mod2Gcc(operand))>0)
+   location := TokenToLocation (GetDeclaredMod (operand)) ;
+   IF GccKnowsAbout (operand) AND (StringLength (Mod2Gcc (operand)) > 0)
    THEN
-      RETURN( BuildIntegerConstant(StringLength(Mod2Gcc(operand))-1) )
+      RETURN( BuildIntegerConstant (StringLength (Mod2Gcc (operand))-1) )
    ELSE
-      RETURN( GetIntegerZero(location) )
+      RETURN( GetIntegerZero (location) )
    END
 END BuildHighFromString ;
 
@@ -6765,96 +6765,102 @@ PROCEDURE PopKindTree (op: CARDINAL; tokenno: CARDINAL) : tree ;
 VAR
    type: CARDINAL ;
 BEGIN
-   type := SkipType (GetType (op)) ;
-   IF IsSet (type)
-   THEN
-      RETURN( PopSetTree (tokenno) )
-   ELSIF IsRealType (type)
+   IF IsConst (op) AND IsConstString (op)
    THEN
-      RETURN( PopRealTree () )
+      (* Converting a nul char or char for example.  *)
+      RETURN PopIntegerTree ()
    ELSE
-      RETURN( PopIntegerTree () )
+      type := SkipType (GetType (op)) ;
+      IF IsSet (type)
+      THEN
+         RETURN( PopSetTree (tokenno) )
+      ELSIF IsRealType (type)
+      THEN
+         RETURN( PopRealTree () )
+      ELSE
+         RETURN( PopIntegerTree () )
+      END
    END
 END PopKindTree ;
 
 
 (*
-   FoldConvert - attempts to fold op3 to type op2 placing the result into
-                 op1, providing that op1 and op3 are constants.
-                 Convert will, if need be, alter the machine representation
-                 of op3 to comply with TYPE op2.
+   FoldConvert - attempts to fold expr to type into result
+                 providing that result and expr are constants.
+                 If required convert will alter the machine representation
+                 of expr to comply with type.
 *)
 
 PROCEDURE FoldConvert (tokenno: CARDINAL; p: WalkAction;
-                       quad: CARDINAL; op1, op2, op3: CARDINAL) ;
+                       quad: CARDINAL; result, type, expr: CARDINAL) ;
 
 VAR
    tl      : tree ;
    location: location_t ;
 BEGIN
-   location := TokenToLocation(tokenno) ;
-   (* firstly ensure that constant literals are declared *)
-   TryDeclareConstant(tokenno, op3) ;
-   IF IsConstant(op3)
+   location := TokenToLocation (tokenno) ;
+   (* First ensure that constant literals are declared.  *)
+   TryDeclareConstant (tokenno, expr) ;
+   IF IsConstant (expr)
    THEN
-      IF GccKnowsAbout(op2) AND
-         (IsProcedure(op3) OR IsValueSolved(op3)) AND
-         GccKnowsAbout(SkipType(op2))
+      IF GccKnowsAbout (type) AND
+         (IsProcedure (expr) OR IsValueSolved (expr)) AND
+         GccKnowsAbout (SkipType (type))
       THEN
-         (* fine, we can take advantage of this and fold constant *)
-         IF IsConst(op1)
+         (* The type is known and expr is resolved so fold the convert.  *)
+         IF IsConst (result)
          THEN
-            PutConst(op1, op2) ;
-            tl := Mod2Gcc(SkipType(op2)) ;
-            IF IsProcedure(op3)
+            PutConst (result, type) ;   (* Change result type just in case.  *)
+            tl := Mod2Gcc (SkipType (type)) ;
+            IF IsProcedure (expr)
             THEN
-               AddModGcc(op1, BuildConvert(location, tl, Mod2Gcc(op3), TRUE))
+               AddModGcc (result, BuildConvert (location, tl, Mod2Gcc (expr), TRUE))
             ELSE
-               PushValue(op3) ;
-               IF IsConstSet(op3)
+               PushValue (expr) ;
+               IF IsConstSet (expr)
                THEN
-                  IF IsSet(SkipType(op2))
+                  IF IsSet (SkipType (type))
                   THEN
-                     WriteFormat0('cannot convert values between sets')
+                     WriteFormat0 ('cannot convert values between sets')
                   ELSE
-                     PushIntegerTree(FoldAndStrip(BuildConvert(location, tl, PopSetTree(tokenno), TRUE))) ;
-                     PopValue(op1) ;
-                     PushValue(op1) ;
-                     AddModGcc(op1, PopIntegerTree())
+                     PushIntegerTree (FoldAndStrip (BuildConvert (location, tl, PopSetTree (tokenno), TRUE))) ;
+                     PopValue (result) ;
+                     PushValue (result) ;
+                     AddModGcc (result, PopIntegerTree())
                   END
                ELSE
-                  IF IsSet(SkipType(op2))
+                  IF IsSet (SkipType (type))
                   THEN
-                     PushSetTree(tokenno,
-                                 FoldAndStrip(BuildConvert(location, tl, PopKindTree(op3, tokenno),
-                                                           TRUE)), SkipType(op2)) ;
-                     PopValue(op1) ;
-                     PutConstSet(op1) ;
-                     PushValue(op1) ;
-                     AddModGcc(op1, PopSetTree(tokenno))
-                  ELSIF IsRealType(SkipType(op2))
+                     PushSetTree (tokenno,
+                                  FoldAndStrip (BuildConvert (location, tl, PopKindTree (expr, tokenno),
+                                                              TRUE)), SkipType (type)) ;
+                     PopValue (result) ;
+                     PutConstSet (result) ;
+                     PushValue (result) ;
+                     AddModGcc (result, PopSetTree (tokenno))
+                  ELSIF IsRealType (SkipType (type))
                   THEN
-                     PushRealTree(FoldAndStrip(BuildConvert(location, tl, PopKindTree(op3, tokenno),
-                                                            TRUE))) ;
-                     PopValue(op1) ;
-                     PushValue(op1) ;
-                     AddModGcc(op1, PopKindTree(op1, tokenno))
+                     PushRealTree (FoldAndStrip (BuildConvert (location, tl, PopKindTree (expr, tokenno),
+                                                               TRUE))) ;
+                     PopValue (result) ;
+                     PushValue (result) ;
+                     AddModGcc (result, PopKindTree (result, tokenno))
                   ELSE
-                     (* we let CheckOverflow catch a potential overflow rather than BuildConvert *)
-                     PushIntegerTree(FoldAndStrip(BuildConvert(location, tl,
-                                                               PopKindTree(op3, tokenno),
-                                                               FALSE))) ;
-                     PopValue(op1) ;
-                     PushValue(op1) ;
-                     CheckOrResetOverflow(tokenno, PopKindTree(op1, tokenno), MustCheckOverflow(quad)) ;
-                     PushValue(op1) ;
-                     AddModGcc(op1, PopKindTree(op1, tokenno))
+                     (* Let CheckOverflow catch a potential overflow rather than BuildConvert.  *)
+                     PushIntegerTree (FoldAndStrip (BuildConvert (location, tl,
+                                                                  PopKindTree (expr, tokenno),
+                                                                  FALSE))) ;
+                     PopValue (result) ;
+                     PushValue (result) ;
+                     CheckOrResetOverflow (tokenno, PopKindTree (result, tokenno), MustCheckOverflow (quad)) ;
+                     PushValue (result) ;
+                     AddModGcc (result, PopKindTree (result, tokenno))
                   END
                END
             END ;
-            p(op1) ;
+            p (result) ;
             NoChange := FALSE ;
-            SubQuad(quad)
+            SubQuad (quad)
          END
       END
    END
diff --git a/gcc/m2/gm2-compiler/SymbolTable.mod b/gcc/m2/gm2-compiler/SymbolTable.mod
index a502fb57641..56a04a9106a 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.mod
+++ b/gcc/m2/gm2-compiler/SymbolTable.mod
@@ -26,6 +26,7 @@ FROM SYSTEM IMPORT ADDRESS, ADR ;
 FROM Storage IMPORT ALLOCATE, DEALLOCATE ;
 FROM M2Debug IMPORT Assert ;
 FROM libc IMPORT printf ;
+FROM ASCII IMPORT nul ;
 
 IMPORT Indexing ;
 
@@ -14958,12 +14959,15 @@ BEGIN
       CASE SymbolType OF
 
       ConstStringSym: WITH ConstString DO
-                         IF Length = 1
+                         IF Length = 0
+                         THEN
+                            PushChar (nul)
+                         ELSIF Length = 1
                          THEN
                             GetKey (Contents, a) ;
                             PushChar (a[0])
                          ELSE
-                            WriteFormat0 ('ConstString must be length 1')
+                            WriteFormat0 ('ConstString must be length 0 or 1')
                          END
                       END
 
diff --git a/gcc/testsuite/gm2/pim/pass/forloopnulchar.mod b/gcc/testsuite/gm2/pim/pass/forloopnulchar.mod
new file mode 100644
index 00000000000..a20dc4e884b
--- /dev/null
+++ b/gcc/testsuite/gm2/pim/pass/forloopnulchar.mod
@@ -0,0 +1,8 @@
+MODULE forloopnulchar ;
+
+VAR
+   ch: CHAR ;
+BEGIN
+   FOR ch := '' TO 'z' DO
+   END
+END forloopnulchar.
diff --git a/gcc/testsuite/gm2/pim/pass/nulcharcase.mod b/gcc/testsuite/gm2/pim/pass/nulcharcase.mod
new file mode 100644
index 00000000000..9d3bbdcf194
--- /dev/null
+++ b/gcc/testsuite/gm2/pim/pass/nulcharcase.mod
@@ -0,0 +1,16 @@
+MODULE nulcharcase ;
+
+FROM libc IMPORT printf ;
+
+VAR
+   ch: CHAR;
+BEGIN
+   ch := '';
+   CASE ch OF
+
+   '' : printf ("null char seen\n") |
+   '1': printf ("1\n")
+
+   ELSE
+   END
+END nulcharcase.
diff --git a/gcc/testsuite/gm2/pim/pass/nulcharvar.mod b/gcc/testsuite/gm2/pim/pass/nulcharvar.mod
new file mode 100644
index 00000000000..846cbe6b588
--- /dev/null
+++ b/gcc/testsuite/gm2/pim/pass/nulcharvar.mod
@@ -0,0 +1,7 @@
+MODULE nulcharvar ;
+
+VAR
+   ch: CHAR ;
+BEGIN
+   ch := ''
+END nulcharvar.

commit 9fc9b64098c106e8a4dd425c8d570838959db273
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Dec 15 00:23:20 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index ae0d5cf829e..565e340ccfe 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241214
+20241215
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 1b8d9ae9d81..a69ec10220f 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,22 @@
+2024-12-14  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-12-10  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117120
+	* gm2-compiler/M2CaseList.mod (CaseBoundsResolved): Rewrite.
+	(ConvertNulStr2NulChar): New procedure function.
+	(NulStr2NulChar): Ditto.
+	(GetCaseExpression): Ditto.
+	(OverlappingCaseBound): Rewrite.
+	* gm2-compiler/M2GCCDeclare.mod (CheckResolveSubrange): Allow
+	'' to be used as the subrange low limit.
+	* gm2-compiler/M2GenGCC.mod (FoldConvert): Rewrite.
+	(PopKindTree): Ditto.
+	(BuildHighFromString): Reformat.
+	* gm2-compiler/SymbolTable.mod (PushConstString): Add test for
+	length 0 and PushChar (nul).
+
 2024-12-13  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fe44ae7c9c8..ba6e44c93c8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2024-12-14  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2024-12-10  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/117120
+	* gm2/pim/pass/forloopnulchar.mod: New test.
+	* gm2/pim/pass/nulcharcase.mod: New test.
+	* gm2/pim/pass/nulcharvar.mod: New test.
+
 2024-12-13  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:

commit 1572e634dec4a09593f68645939b5b5043de8de6
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Sun Dec 15 14:48:59 2024 +0000

    Fortran: Fix non_overridable typebound proc problems [PR84674/117730].
    
    2024-12-15  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran/ChangeLog
    
            PR fortran/117730
            PR fortran/84674
            * class.cc (add_proc_comp): If the present typebound procedure
            component is abstract, unconditionally check the replacement.
            Only reject a non_overridable if it has no overridden procedure
            and the component is already present in the vtype.
    
    gcc/testsuite/ChangeLog
    
            PR fortran/117730
            * gfortran.dg/pr117730_a.f90: New test.
            * gfortran.dg/pr117730_b.f90: New test.
    
            PR fortran/84674
            * gfortran.dg/pr84674.f90: New test.

diff --git a/gcc/fortran/class.cc b/gcc/fortran/class.cc
index 0dda6a259b9..d34bd25cb5e 100644
--- a/gcc/fortran/class.cc
+++ b/gcc/fortran/class.cc
@@ -872,12 +872,23 @@ static void
 add_proc_comp (gfc_symbol *vtype, const char *name, gfc_typebound_proc *tb)
 {
   gfc_component *c;
-
-  if (tb->non_overridable && !tb->overridden)
-    return;
+  bool is_abstract = false;
 
   c = gfc_find_component (vtype, name, true, true, NULL);
 
+  /* If the present component typebound proc is abstract, the new version
+     should unconditionally be tested if it is a suitable replacement.  */
+  if (c && c->tb && c->tb->u.specific
+      && c->tb->u.specific->n.sym->attr.abstract)
+    is_abstract = true;
+
+  /* Pass on the new tb being not overridable if a component is found and
+     either there is not an overridden specific or the present component
+     tb is abstract. This ensures that possible, viable replacements are
+     loaded.  */
+  if (tb->non_overridable && !tb->overridden && !is_abstract && c)
+    return;
+
   if (c == NULL)
     {
       /* Add procedure component.  */
diff --git a/gcc/testsuite/gfortran.dg/pr117730_a.f90 b/gcc/testsuite/gfortran.dg/pr117730_a.f90
new file mode 100644
index 00000000000..12e28214b02
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr117730_a.f90
@@ -0,0 +1,50 @@
+! { dg-do compile }
+!
+! Test the fix for PR117730 in which the non_overrridable procedures in 'child'
+! were mixied up in the vtable for the extension 'child2' in pr117730_b.f90.
+! This resulted in 'this%calc()' in 'function child_get(this)' returning garbage
+! when 'this' was of dynamic type 'child2'.
+!
+! Contributed by  <daraja@web.de> in comment 4 of PR84674.
+!
+module module1
+    implicit none
+    private
+    public :: child
+
+    type, abstract :: parent
+    contains
+        procedure, pass :: reset => parent_reset
+    end type parent
+
+    type, extends(parent), abstract :: child
+    contains
+        procedure, pass, non_overridable :: reset => child_reset
+        procedure, pass, non_overridable :: get => child_get
+        procedure(calc_i), pass, deferred :: calc
+    end type child
+
+    abstract interface
+        pure function calc_i(this) result(value)
+            import :: child
+            class(child), intent(in) :: this
+            integer                 :: value
+        end function calc_i
+    end interface
+
+contains
+    pure subroutine parent_reset(this)
+        class(parent), intent(inout) :: this
+    end subroutine parent_reset
+
+    pure subroutine child_reset(this)
+        class(child), intent(inout) :: this
+    end subroutine child_reset
+
+    function child_get(this) result(value)
+        class(child), intent(inout) :: this
+        integer                   :: value
+
+        value = this%calc()
+    end function child_get
+end module module1
diff --git a/gcc/testsuite/gfortran.dg/pr117730_b.f90 b/gcc/testsuite/gfortran.dg/pr117730_b.f90
new file mode 100644
index 00000000000..09707882989
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr117730_b.f90
@@ -0,0 +1,47 @@
+! { dg-do run }
+! { dg-compile-aux-modules "pr117730_a.f90" }
+! { dg-additional-sources pr117730_a.f90 }
+!
+! Test the fix for PR117730 in which the non_overrridable procedures in
+! pr117730_a.f90 were mixied up in the vtable for 'child2' below. This resulted
+! in 'this%calc()' in 'function child_get(this)' returning garbage.
+!
+! Contributed by  <daraja@web.de> in comment 4 of PR84674.
+!
+module module2
+    use module1, only: child
+
+    implicit none
+    private
+    public :: child2
+
+    type, extends(child) :: child2
+    contains
+        procedure, pass :: calc => child2_calc
+    end type child2
+
+contains
+
+    pure function child2_calc(this) result(value)
+        class(child2), intent(in) :: this
+        integer :: value
+
+        value = 1
+    end function child2_calc
+
+end module module2
+
+program test
+    use module2, only: child2
+
+    implicit none
+
+    type(child2) :: F
+
+    if (F%calc() /= 1) stop 1
+
+    print *, "---------------"
+    if (F%get() /= 1) stop 2
+
+end program test
+! { dg-final { cleanup-modules "module1" } }
diff --git a/gcc/testsuite/gfortran.dg/pr84674.f90 b/gcc/testsuite/gfortran.dg/pr84674.f90
new file mode 100644
index 00000000000..c58ae9efff6
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr84674.f90
@@ -0,0 +1,55 @@
+! { dg-do run }
+!
+! Test the fix for PR84674, in which the non-overridable variant of the
+! procedure ff below caused a runtime segfault.
+!
+! Contributed by Jakub Benda  <albandil@atlas.cz>
+!
+ module m
+  implicit none
+
+  type, abstract :: t1
+   integer :: i
+  contains
+   procedure(i_f), pass(u), deferred :: ff
+  end type t1
+
+  type, abstract, extends(t1) :: t2
+  contains
+   procedure, non_overridable, pass(u) :: ff => f ! Segmentation fault
+   !procedure, pass(u) :: ff => f ! worked
+  end type t2
+
+  type, extends(t2) :: DerivedType
+  end type DerivedType
+
+  abstract interface
+   subroutine i_f(u)
+    import :: t1
+    class(t1), intent(inout) :: u
+   end subroutine i_f
+  end interface
+
+ contains
+
+  subroutine f(u)
+   class(t2), intent(inout) :: u
+    u%i = 3*u%i
+  end subroutine f
+
+ end module m
+
+
+ program p
+
+  use m
+
+  implicit none
+
+  class(t1), allocatable :: v
+
+  allocate(DerivedType::v)
+  v%i = 2
+  call v%ff()
+  if (v%i /= 6) stop
+ end program p

commit c1f24082208de0ed1c01a780b20264f29d7e1ecd
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Dec 16 00:23:19 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 565e340ccfe..ccdbb249195 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241215
+20241216
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 172c6af5127..caa8268bf53 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2024-12-15  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/117730
+	PR fortran/84674
+	* class.cc (add_proc_comp): If the present typebound procedure
+	component is abstract, unconditionally check the replacement.
+	Only reject a non_overridable if it has no overridden procedure
+	and the component is already present in the vtype.
+
 2024-12-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ba6e44c93c8..88e3749252e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-15  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/117730
+	PR fortran/84674
+	* gfortran.dg/pr117730_a.f90: New test.
+	* gfortran.dg/pr117730_b.f90: New test.
+	* gfortran.dg/pr84674.f90: New test.
+
 2024-12-14  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:

commit dfd4d76b01831d3ad4a46da2349cf7668e6beef9
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Thu Aug 22 21:18:15 2024 +0200

    ada: Fix internal error with Atomic Volatile_Full_Access object
    
    The initial implementation of the GNAT aspect/pragma Volatile_Full_Access
    made it incompatible with Atomic, because it was not decided whether the
    read-modify-write sequences generated by Volatile_Full_Access would need
    to be implemented atomically when Atomic was also specified, which would
    have required a compare-and-swap primitive from the target architecture.
    
    But Ada 2022 introduced Full_Access_Only and retrofitted it into Atomic
    in the process, answering the above question by the negative, so the
    incompatibility between Volatile_Full_Access and Atomic was lifted in
    Ada 2012 as well, unfortunately without adjusting the implementation.
    
    gcc/ada/
    
            * gcc-interface/trans.cc (get_atomic_access): Deal specifically with
            nodes that are both Atomic and Volatile_Full_Access in Ada 2012.

diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc
index 86183e2ba3d..de0f0ac2f8b 100644
--- a/gcc/ada/gcc-interface/trans.cc
+++ b/gcc/ada/gcc-interface/trans.cc
@@ -4364,9 +4364,9 @@ get_atomic_access (Node_Id gnat_node, atomic_acces_t *type, bool *sync)
     gnat_node = Expression (gnat_node);
 
   /* Up to Ada 2012, for Atomic itself, only reads and updates of the object as
-     a whole require atomic access (RM C.6(15)).  But, starting with Ada 2022,
-     reads of or writes to a nonatomic subcomponent of the object also require
-     atomic access (RM C.6(19)).  */
+     a whole require atomic access (RM C.6(15)), unless the object is also VFA.
+     But, starting with Ada 2022, reads of or writes to nonatomic subcomponents
+     of the object also require atomic access (RM C.6(19)).  */
   if (node_is_atomic (gnat_node))
     {
       bool as_a_whole = true;
@@ -4375,7 +4375,9 @@ get_atomic_access (Node_Id gnat_node, atomic_acces_t *type, bool *sync)
       for (gnat_temp = gnat_node, gnat_parent = Parent (gnat_temp);
 	   node_is_component (gnat_parent) && Prefix (gnat_parent) == gnat_temp;
 	   gnat_temp = gnat_parent, gnat_parent = Parent (gnat_temp))
-	if (Ada_Version < Ada_2022 || node_is_atomic (gnat_parent))
+	if (Ada_Version < Ada_2022
+	    ? !node_is_volatile_full_access (gnat_node)
+	    : node_is_atomic (gnat_parent))
 	  goto not_atomic;
 	else
 	  as_a_whole = false;

commit 3396834cd1335eb76d9c994b77088c18a1bd8314
Author: Heiko Eißfeldt <heiko@hexco.de>
Date:   Sat Dec 14 12:31:58 2024 +0000

    doc: Fix typos for --enable-host-pie docs in install.texi
    
    gcc/ChangeLog:
    
            * doc/install.texi (Configuration): Fix typos in documentation
            for --enable-host-pie.
    
    (cherry picked from commit a7df4961d171ef071bd0972335d6f116d420eb13)

diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 814db3ea5ec..89e2c642f41 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -1116,7 +1116,7 @@ yielding a slightly slower compiler (but faster than
 at random addresses each time they are executed, therefore provide additional
 protection against Return Oriented Programming (ROP) attacks.
 
-@option{--enable-host-pie}) may be used with @option{--enable-host-shared}),
+@option{--enable-host-pie} may be used with @option{--enable-host-shared},
 in which case @option{-fPIC} is used when compiling, and @option{-pie} when
 linking.
 

commit 29d07244bf31f3fc69e34b22056d6af2625afae2
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Sat Dec 7 01:34:33 2024 +0000

    libstdc++: Fix typo in Doxygen comment in <format>
    
    libstdc++-v3/ChangeLog:
    
            * include/std/format: Fix typo in Doxygen comment.
    
    (cherry picked from commit b7dd0d976022c5ba20d9d676e2f684614231eb72)

diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
index 95c2991765c..5720bf069b4 100644
--- a/libstdc++-v3/include/std/format
+++ b/libstdc++-v3/include/std/format
@@ -2126,7 +2126,7 @@ namespace __format
   template<> inline constexpr bool __is_formattable_integer<char16_t> = false;
   template<> inline constexpr bool __is_formattable_integer<char32_t> = false;
 }
-/// ~endcond
+/// @endcond
 
   /// Format an integer.
   template<typename _Tp, __format::__char _CharT>

commit e42027730772d4b8d7f575db52f25508e0c45e51
Author: Joseph Myers <josmyers@redhat.com>
Date:   Mon Dec 16 23:53:42 2024 +0000

    Update cpplib sr.po
    
            * sr.po: Update.

diff --git a/libcpp/po/sr.po b/libcpp/po/sr.po
index 2c8e58ce695..24f99bf6ec8 100644
--- a/libcpp/po/sr.po
+++ b/libcpp/po/sr.po
@@ -1,14 +1,14 @@
 # Serbian translation of cpplib.
 # Copyright © 2020 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gcc package.
-# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2012–2023.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2012-2024.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: cpplib-13.1-b20230212\n"
+"Project-Id-Version: cpplib-14.1-b20240218\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
 "POT-Creation-Date: 2024-02-16 21:34+0000\n"
-"PO-Revision-Date: 2023-02-26 07:55+0100\n"
+"PO-Revision-Date: 2024-12-14 16:23+0100\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
 "Language: sr\n"
@@ -17,12 +17,12 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Gtranslator 41.0\n"
+"X-Generator: Gtranslator 42.0\n"
 
 #: charset.cc:759
 #, c-format
 msgid "conversion from %s to %s not supported by iconv"
-msgstr "иконв не подржава претварање из %s у %s"
+msgstr "„ikonv“ не подржава претварање из %s у %s"
 
 #: charset.cc:762
 msgid "iconv_open"
@@ -207,7 +207,7 @@ msgstr "октални низ промене је изван опсега"
 #: charset.cc:2300 charset.cc:2310
 #, c-format
 msgid "numeric escape sequence in unevaluated string: '\\%c'"
-msgstr ""
+msgstr "бројевни низ промене низа у непроцењеној ниски: „\\%c“"
 
 #: charset.cc:2338
 msgid "the meaning of '\\a' is different in traditional C"
@@ -237,27 +237,25 @@ msgid "missing open quote"
 msgstr "недостаје отворена заграда"
 
 #: charset.cc:2772
-#, fuzzy
-#| msgid "character 0x%lx is not unibyte in execution character set"
 msgid "character not encodable in a single execution character code unit"
-msgstr "знак 0x%lx није једног бајта у знаковном скупу извршавања"
+msgstr "знак се не може енкодирати у једној јединици знаковног скупа извршавања"
 
 #: charset.cc:2777
 msgid "at least one character in a multi-character literal not encodable in a single execution character code unit"
-msgstr ""
+msgstr "барем један знак у вишезнаковном литералу се не може прекодирати у једној јединици знаковног скупа извршавања"
 
 #: charset.cc:2795
 #, c-format
 msgid "multi-character literal with %ld characters exceeds 'int' size of %ld bytes"
-msgstr ""
+msgstr "више-знаковни литерал са %ld знака премашује „int“ величину од %ld бајта"
 
 #: charset.cc:2799 charset.cc:2894
 msgid "multi-character literal cannot have an encoding prefix"
-msgstr ""
+msgstr "више-знаковни литерал не може имати префикс прекодирања"
 
 #: charset.cc:2802 charset.cc:2897
 msgid "character not encodable in a single code unit"
-msgstr ""
+msgstr "знак се не може прекодирати у једној кодној јединици"
 
 #: charset.cc:2806
 msgid "multi-character character constant"
@@ -288,10 +286,9 @@ msgid "#%s before C++23 is a GCC extension"
 msgstr "„#%s“ пре „C++23“ јесте GCC проширење"
 
 #: directives.cc:397 directives.cc:401 directives.cc:2167 directives.cc:2206
-#, fuzzy, c-format
-#| msgid "#%s before C++23 is a GCC extension"
+#, c-format
 msgid "#%s before C23 is a GCC extension"
-msgstr "„#%s“ пре „C++23“ јесте GCC проширење"
+msgstr "„#%s“ пре „C23“ јесте GCC проширење"
 
 #: directives.cc:407
 #, c-format
@@ -594,10 +591,8 @@ msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
 msgstr "неисправан суфикс „%.*s“ са хексадецималном покретном константом"
 
 #: expr.cc:790 expr.cc:794
-#, fuzzy
-#| msgid "decimal float constants are a C2X feature"
 msgid "decimal float constants are a C23 feature"
-msgstr "децималне покретне константе су „C2X“ функције"
+msgstr "децималне покретне константе су „C23“ функције"
 
 #: expr.cc:813
 #, c-format
@@ -622,7 +617,7 @@ msgstr "употреба Ц++23 %<make_signed_t<size_t>%> константе ц
 
 #: expr.cc:864 expr.cc:875
 msgid "ISO C does not support literal %<wb%> suffixes before C23"
-msgstr ""
+msgstr "ISO C не подржава префиксе %<wb%> литерала пре C23"
 
 #: expr.cc:888
 msgid "imaginary constants are a GCC extension"
@@ -633,16 +628,12 @@ msgid "binary constants are a C++14 feature or GCC extension"
 msgstr "бинарне константе су Ц++14 функције или ГЦЦ проширења"
 
 #: expr.cc:897
-#, fuzzy
-#| msgid "binary constants are a C2X feature or GCC extension"
 msgid "binary constants are a C23 feature or GCC extension"
-msgstr "бинарне константе су „C2X“ функције или ГЦЦ проширења"
+msgstr "бинарне константе су „C23“ функције или GCC проширења"
 
 #: expr.cc:902
-#, fuzzy
-#| msgid "binary constants are a C2X feature"
 msgid "binary constants are a C23 feature"
-msgstr "binarne константе су „C2X“ функције"
+msgstr "бинарне константе су „C23“ функције"
 
 #: expr.cc:998
 msgid "integer constant is too large for its type"
@@ -905,10 +896,8 @@ msgid "__VA_OPT__ is not available until C++20"
 msgstr "„__VA_OPT__“ није доступно све до „Ц++20“"
 
 #: lex.cc:2147
-#, fuzzy
-#| msgid "__VA_OPT__ is not available until C2X"
 msgid "__VA_OPT__ is not available until C23"
-msgstr "„__VA_OPT__“ није доступно све до „C2X“"
+msgstr "„__VA_OPT__“ није доступно све до „C23“"
 
 #: lex.cc:2155
 msgid "__VA_OPT__ can only appear in the expansion of a C++20 variadic macro"
@@ -921,7 +910,7 @@ msgstr "покушај коришћења отрованог „%s“"
 
 #: lex.cc:2177
 msgid "poisoned here"
-msgstr ""
+msgstr "отровано овде"
 
 #: lex.cc:2187
 msgid "__VA_ARGS__ can only appear in the expansion of a C++11 variadic macro"

commit feeacb4edc431eab41e86eca37ce9f63fcd5eca1
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Dec 17 00:25:13 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 049bb88d4b7..be064ff3125 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-16  Heiko Eißfeldt  <heiko@hexco.de>
+
+	Backported from master:
+	2024-12-14  Heiko Eißfeldt  <heiko@hexco.de>
+
+	* doc/install.texi (Configuration): Fix typos in documentation
+	for --enable-host-pie.
+
 2024-12-13  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index ccdbb249195..cbf8d2dfdf1 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241216
+20241217
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 3a4b3a77790..c345bc37421 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2024-12-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* gcc-interface/trans.cc (get_atomic_access): Deal specifically with
+	nodes that are both Atomic and Volatile_Full_Access in Ada 2012.
+
 2024-12-12  Eric Botcazou  <ebotcazou@adacore.com>
 
 	PR ada/117996
diff --git a/libcpp/po/ChangeLog b/libcpp/po/ChangeLog
index 5110823a132..470e50bc4ac 100644
--- a/libcpp/po/ChangeLog
+++ b/libcpp/po/ChangeLog
@@ -1,3 +1,7 @@
+2024-12-16  Joseph Myers  <josmyers@redhat.com>
+
+	* sr.po: Update.
+
 2024-09-19  Joseph Myers  <josmyers@redhat.com>
 
 	* zh_CN.po: Update.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 8b508e2b062..10c2aae3016 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,10 @@
+2024-12-16  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-07  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/format: Fix typo in Doxygen comment.
+
 2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit 3b6ed0c74139faed62b7d60804521aed67e40b2b
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Sun Dec 15 10:42:34 2024 +0000

    Fortran: Pointer fcn results must not be finalized [PR117897]
    
    2024-12-15  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/117897
            * trans-expr.cc (gfc_trans_assignment_1): RHS pointer function
            results must not be finalized.
    
    gcc/testsuite/
            PR fortran/117897
            * gfortran.dg/finalize_59.f90: New test.
    
    (cherry picked from commit a87bf1d20a37bb69c9fa6d2211ffd963aa69240d)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 9d04b99af6e..10eade22f2a 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -12289,13 +12289,20 @@ gfc_trans_assignment_1 (gfc_expr * expr1, gfc_expr * expr2, bool init_flag,
       && (expr2->ts.type == BT_CLASS || gfc_may_be_finalized (expr2->ts)))
     {
       expr2->must_finalize = 1;
+      /* F2023 7.5.6.3: If an executable construct references a nonpointer
+	 function, the result is finalized after execution of the innermost
+	 executable construct containing the reference.  */
+      if (expr2->expr_type == EXPR_FUNCTION
+	  && (gfc_expr_attr (expr2).pointer
+	      || (expr2->ts.type == BT_CLASS && CLASS_DATA (expr2)->attr.class_pointer)))
+	expr2->must_finalize = 0;
       /* F2008 4.5.6.3 para 5: If an executable construct references a
 	 structure constructor or array constructor, the entity created by
 	 the constructor is finalized after execution of the innermost
 	 executable construct containing the reference.
 	 These finalizations were later deleted by the Combined Techical
 	 Corrigenda 1 TO 4 for fortran 2008 (f08/0011).  */
-      if (gfc_notification_std (GFC_STD_F2018_DEL)
+      else if (gfc_notification_std (GFC_STD_F2018_DEL)
 	  && (expr2->expr_type == EXPR_STRUCTURE
 	      || expr2->expr_type == EXPR_ARRAY))
 	expr2->must_finalize = 0;
diff --git a/gcc/testsuite/gfortran.dg/finalize_59.f90 b/gcc/testsuite/gfortran.dg/finalize_59.f90
new file mode 100644
index 00000000000..8be5f7123a1
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/finalize_59.f90
@@ -0,0 +1,245 @@
+! { dg-do run }
+!
+! Test the fix for PR117897 in which the rhs of the pointer assignment at line
+! 216 below was marked as being finalizable, contrary to F2023 7.5.6.3 for
+! ordinary assignment and certainly wrong in this context.
+!
+! Contributed by Jean Gual  <jean.gual@cerema.fr>
+!
+Module  Uef_Classe_Vector
+! Ce module implemente le vector de la STL du C++
+Private
+CHARACTER (len=3),  Parameter :: UEF_PAR_CHAINE_NON_RENSEIGNEE                              = "N_R"
+real, parameter          :: UEF_par_vector_progression_ratio = 2
+Integer, parameter       :: UEF_par_vector_initial_lenght   = 10
+
+Type, abstract, public :: Uef_Vector_element
+    Logical, public         :: m_Element_pointe = .false.
+End type Uef_Vector_element
+
+Type, private  :: Uef_Pointeur_element ! Classe pointeur
+    Class (Uef_Vector_element), public, pointer  :: m_ptr_element => null()
+End type Uef_Pointeur_element
+
+Type, public :: Uef_Vector  ! Vecteur des classes pointeur
+    integer  , private                                              :: m_position_fin               = 0
+    type(Uef_Pointeur_element), private, allocatable, dimension(:)  :: m_les_pointeur_element
+    Character (:), private, allocatable                             :: m_label
+    Class (Uef_Vector_element), allocatable, private                :: m_type_element
+    logical                                ,private                 :: m_polymorphe = .false.
+ Contains
+    PROCEDURE :: create                  => Vector_create
+    PROCEDURE :: add                     => Vector_add
+    PROCEDURE :: Pointer                 => Vector_pointer
+    PROCEDURE :: size                    => vector_size
+End Type Uef_Vector
+
+Contains
+!--------------------
+! Vector_create : Cree un vector non deja alloue avec une taille initiale eventuelle
+!--------------------
+Subroutine Vector_create(le_vector, label, type_element, opt_taille, opt_polymorphe)
+!   parametres en entree/sortie
+    Class(Uef_Vector),intent (inout)                    :: le_vector
+    Character (len=*),intent(in)                        :: label
+    Class (Uef_Vector_element),intent(in)               :: type_element
+    Integer, intent(in), optional                       :: opt_taille
+    Logical, intent(in), optional                       :: opt_polymorphe
+
+!   parametres locaux
+    integer                                             :: taille_initiale
+!
+!-----DEBUT-----------------------------------------------------------------------------------------------------------------------
+!    write (*,*) "create:", label
+    if (allocated(le_vector%m_les_pointeur_element)) then
+        Call Uef_assert(.false., "Vector_create : vecteur deja cree :"// le_vector%m_label)
+    endif
+
+    if (present(opt_taille)) then
+        taille_initiale = max( 1, opt_taille )
+    else
+        taille_initiale = UEF_par_vector_initial_lenght
+    endif
+
+    if (present(opt_polymorphe)) then
+        le_vector%m_polymorphe =  opt_polymorphe
+    endif
+
+    allocate( le_vector%m_les_pointeur_element(1:taille_initiale))
+    le_vector%m_position_fin                    = 0
+    le_vector%m_label                           = label
+    allocate (le_vector%m_type_element, source  = type_element)
+End Subroutine Vector_create
+!--------------------
+! Vector_add : ajoute une copie d'un element a la fin du vecteur
+!--------------------
+Subroutine Vector_add(le_vector, l_element)
+!   parametres en entree/sortie
+    Class(Uef_Vector),intent(inout)                  :: le_vector
+    Class(Uef_Vector_element), intent(in)            :: l_element
+
+!   parametres locaux
+    type(Uef_Pointeur_element)                       :: le_ptr_element
+!
+!-----DEBUT-----------------------------------------------------------------------------------------------------------------------
+!
+!    write (*,*) "ajout:", le_vector%m_label
+    if ( .not. allocated(le_vector%m_les_pointeur_element) ) Then
+        Call Vector_create(le_vector, label= UEF_PAR_CHAINE_NON_RENSEIGNEE, type_element = l_element)
+    End if
+    if ( .not. same_type_as (l_element,le_vector%m_type_element).and. .not. le_vector%m_polymorphe) then
+        Call Uef_assert(.false., "Vector_add : element de type incorrect pour :"// le_vector%m_label)
+    End if
+
+    if ( le_vector%m_position_fin >= size(le_vector%m_les_pointeur_element) ) then
+        call vector_increase_size( le_vector, le_vector%m_position_fin+1 )
+    endif
+
+    le_vector%m_position_fin                                = le_vector%m_position_fin + 1
+    allocate (le_ptr_element%m_ptr_element, source = l_element)
+    le_vector%m_les_pointeur_element(le_vector%m_position_fin) =  le_ptr_element
+End Subroutine Vector_add
+!--------------------
+! vector_size : retourne le nombre d'elements effectifs du vector
+!--------------------
+Pure Integer Function vector_size(le_vector)
+!   parametres en entree
+    Class(Uef_Vector), intent (in)       :: le_vector
+!
+!-----DEBUT-----------------------------------------------------------------------------------------------------------------------
+    vector_size = le_vector%m_position_fin
+End Function vector_size
+!--------------------
+! Vector_pointer : pointe sur une valeur
+!--------------------
+ Function  Vector_pointer( le_vector, position_element )
+!   parametres en entree/sortie
+    Class(Uef_Vector),intent(inout)         :: le_vector
+    integer,intent (in)                     :: position_element
+!   parametres en sortie
+    Class(Uef_Vector_element), Pointer       :: Vector_pointer
+!
+!-----DEBUT-----------------------------------------------------------------------------------------------------------------------
+!
+    if ( position_element < 1 .or. position_element  > le_vector%m_position_fin ) then
+        write (*,*) "Vector_pointer : pointage impossible de ", le_vector%m_label, " position_element:",&
+                     position_element," size:",le_vector%m_position_fin
+        Call Uef_assert(.false., "Vector_pointer : pointage impossible dans "// le_vector%m_label)
+    else
+        le_vector%m_les_pointeur_element(position_element)%m_ptr_element%m_Element_pointe =.true.
+        Vector_pointer => le_vector%m_les_pointeur_element(position_element)%m_ptr_element
+    endif
+End Function Vector_pointer
+!--------------------
+! vector_increase_size : augmente la taille du vector
+!--------------------
+Subroutine vector_increase_size( le_vector, taille_demandee )
+!   parametres en entree/sortie
+    Class(Uef_Vector),intent(inout)                     :: le_vector
+    integer,intent(in)                                  :: taille_demandee
+!   Parametres en locaux
+    integer                                                 :: Nouvelle_taille, taille_actuelle
+    type(Uef_Pointeur_element),dimension (:), allocatable:: tmp_vector
+!
+!-----DEBUT-----------------------------------------------------------------------------------------------------------------------
+!
+    taille_actuelle = size(le_vector%m_les_pointeur_element)
+    Nouvelle_taille = max(taille_demandee, nint( UEF_par_vector_progression_ratio * taille_actuelle))
+
+    if (Nouvelle_taille > taille_actuelle) then
+        allocate(tmp_vector(1:Nouvelle_taille))
+        tmp_vector(1:taille_actuelle) = le_vector%m_les_pointeur_element(1:le_vector%m_position_fin)
+        call move_alloc(from = tmp_vector  , to = le_vector%m_les_pointeur_element)
+    endif
+End Subroutine vector_increase_size
+!------------------------
+Subroutine Uef_Assert (assertion, message)
+!--------------------
+! traitement des assertions
+!--------------------
+! Parametres en entree
+Logical, Intent(in) ::  assertion
+Character (len = *) , intent(in):: message
+!-------------------------------------------------------------------------------------------------
+    if (.not. assertion ) Then
+
+        write(*,*) message
+        write(*,*) " ARRET PREMATURE : PREVENIR LE GESTIONNAIRE"
+    stop
+    End if
+End Subroutine Uef_Assert
+
+End Module  Uef_Classe_Vector
+
+Program Cds_Principal
+   Use Uef_Classe_vector
+!
+!--------------------------------------------------------------------------------------------------
+    TYPE, extends(Uef_Vector_element),   abstract :: Cds_Materiau
+        Character (len=8)               :: m_Nom_materiau                = "12345678"
+        Type(Uef_Vector)                :: m_Les_situations
+    END TYPE Cds_Materiau
+
+    Type,   extends (Cds_Materiau)      :: Cds_Materiau_Acier_EC
+        Double precision                :: m_Fyk                                = 0.00
+    End type Cds_Materiau_Acier_EC
+
+   Type(Uef_Vector)                                    :: Cds_Mod_Les_materiaux
+   Type (Cds_Materiau_Acier_EC)                        :: acier_ec
+   Class (Cds_Materiau), pointer                       :: pt_materiau
+   Character *(8)                                      :: nom_materiau
+!-------------------------------------------------------------------------------------------------
+      CaLL  Cds_Mod_Les_materiaux%Add (acier_ec)
+      nom_materiau = "12345678"
+      pt_materiau => Get_pt_materiau_nom (Cds_Mod_Les_materiaux, nom_materiau)
+contains
+
+Function Get_Pt_Materiau_nom (vecteur, nom_materiau)
+    !--------------------
+    !   Fonction :
+    !--------------------
+     ! Parametres en entree
+    Character *(8), Intent (in)        :: nom_materiau
+    Type (Uef_Vector)          , Intent (inout)     :: vecteur
+
+    ! Parametres en sortie
+    Class  (Cds_Materiau),pointer                    :: Get_Pt_Materiau_nom
+
+    ! Parametres locaux
+    Integer                                         :: no_materiau
+
+    Class (Uef_Vector_element),pointer           ::  pt_vector_element
+    !--------------------
+    do no_materiau = 1 , vecteur%size()
+        pt_vector_element => vecteur%Pointer(no_materiau)
+! this instruction did not work
+         Get_Pt_Materiau_nom => Cds_pt_materiau(pt_vector_element)
+
+        if (trim (Get_Pt_Materiau_nom%m_Nom_materiau) /= '12345678') stop 1
+        if (Get_Pt_Materiau_nom%m_Nom_materiau == nom_materiau) Then
+            return
+        End if
+    End do
+    Get_Pt_Materiau_nom => null()
+End Function Get_Pt_Materiau_nom
+!
+!--------------------
+function Cds_Pt_Materiau(vector_element)
+!--------------------
+!   Fonction : pointage de la valeur
+!--------------------
+
+    ! Parametres en entree
+    Class (Uef_Vector_element),intent(in),target   ::  vector_element
+    ! Parametres en sortie
+    Class(Cds_Materiau), pointer                   ::  Cds_Pt_Materiau
+    !-----------------------------------------------------------------------------------------------
+    select type(vector_element)
+    Class is (Cds_Materiau)
+        Cds_Pt_Materiau => vector_element
+    class default
+        stop 2
+    end select
+End Function Cds_Pt_Materiau
+
+End Program Cds_Principal

commit 0361b4c440f7990702eccafca31e871ae096198c
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Sun Nov 10 20:15:13 2024 +0100

    testsuite: arm: Mark pr81812.C as xfail for thumb1
    
    Test fails for Cortex-M0 with:
    
    .../pr81812.C:6:8: error: generic thunk code fails for method 'virtual void ChildNode::_ZTv0_n12_NK9ChildNode5errorEz(...) const' which uses '...'
    
    According to PR108277, it's expected that thumb1 targets does not
    support empty virtual functions with ellipsis.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/torture/pr81812.C: Add xfail for thumb1.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit f111d8e20b671ee97d4ed835102839e44a2a2edc)

diff --git a/gcc/testsuite/g++.dg/torture/pr81812.C b/gcc/testsuite/g++.dg/torture/pr81812.C
index d235e237588..b5c621d2beb 100644
--- a/gcc/testsuite/g++.dg/torture/pr81812.C
+++ b/gcc/testsuite/g++.dg/torture/pr81812.C
@@ -1,3 +1,5 @@
+// { dg-xfail-if "PR108277" { arm_thumb1 } }
+
 struct Error {
   virtual void error(... ) const;
 };

commit f0caa19ff11bfcf7d9979b993542879e36f41a1c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Dec 18 00:25:44 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index cbf8d2dfdf1..781eeaca5bc 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241217
+20241218
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index caa8268bf53..bf2f46f2b80 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2024-12-17  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-12-15  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/117897
+	* trans-expr.cc (gfc_trans_assignment_1): RHS pointer function
+	results must not be finalized.
+
 2024-12-15  Paul Thomas  <pault@gcc.gnu.org>
 
 	PR fortran/117730
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 88e3749252e..23a90d83967 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,18 @@
+2024-12-17  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-12-17  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* g++.dg/torture/pr81812.C: Add xfail for thumb1.
+
+2024-12-17  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-12-15  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/117897
+	* gfortran.dg/finalize_59.f90: New test.
+
 2024-12-15  Paul Thomas  <pault@gcc.gnu.org>
 
 	PR fortran/117730

commit 9366c328518766d896155388726055624716c0af
Author: Wilco Dijkstra <wilco.dijkstra@arm.com>
Date:   Tue Dec 10 14:22:48 2024 +0000

    arm: Fix LDRD register overlap [PR117675]
    
    The register indexed variants of LDRD have complex register overlap constraints
    which makes them hard to use without using output_move_double (which can't be
    used for atomics as it doesn't guarantee to emit atomic LDRD/STRD when required).
    Add a new predicate and constraint for plain LDRD/STRD with base or base+imm.
    This blocks register indexing and fixes PR117675.
    
    gcc:
            PR target/117675
            * config/arm/arm.cc (arm_ldrd_legitimate_address): New function.
            * config/arm/arm-protos.h (arm_ldrd_legitimate_address): New prototype.
            * config/arm/constraints.md: Add new Uo constraint.
            * config/arm/predicates.md (arm_ldrd_memory_operand): Add new predicate.
            * config/arm/sync.md (arm_atomic_loaddi2_ldrd): Use
            arm_ldrd_memory_operand and Uo.
    
    gcc/testsuite:
            PR target/117675
            * gcc.target/arm/pr117675.c: Add new test.
    
    (cherry picked from commit 21fbfae2e55e1a153820acc6fbd922e66f67e65b)

diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h
index 2cd560c9925..89e804225a8 100644
--- a/gcc/config/arm/arm-protos.h
+++ b/gcc/config/arm/arm-protos.h
@@ -202,6 +202,7 @@ extern rtx arm_load_tp (rtx);
 extern bool arm_coproc_builtin_available (enum unspecv);
 extern bool arm_coproc_ldc_stc_legitimate_address (rtx);
 extern rtx arm_stack_protect_tls_canary_mem (bool);
+extern bool arm_ldrd_legitimate_address (rtx);
 
 
 #if defined TREE_CODE
diff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc
index 912f2c31576..7b3b26a5951 100644
--- a/gcc/config/arm/arm.cc
+++ b/gcc/config/arm/arm.cc
@@ -34523,6 +34523,30 @@ arm_coproc_ldc_stc_legitimate_address (rtx op)
   return false;
 }
 
+/* Return true if OP is a valid memory operand for LDRD/STRD without any
+   register overlap restrictions.  Allow [base] and [base, imm] for now.  */
+bool
+arm_ldrd_legitimate_address (rtx op)
+{
+  if (!MEM_P (op))
+    return false;
+
+  op = XEXP (op, 0);
+  if (REG_P (op))
+    return true;
+
+  if (GET_CODE (op) != PLUS)
+    return false;
+  if (!REG_P (XEXP (op, 0)) || !CONST_INT_P (XEXP (op, 1)))
+    return false;
+
+  HOST_WIDE_INT val = INTVAL (XEXP (op, 1));
+
+  if (TARGET_ARM)
+    return IN_RANGE (val, -255, 255);
+  return IN_RANGE (val, -1020, 1020) && (val & 3) == 0;
+}
+
 /* Return the diagnostic message string if conversion from FROMTYPE to
    TOTYPE is not allowed, NULL otherwise.  */
 
diff --git a/gcc/config/arm/constraints.md b/gcc/config/arm/constraints.md
index cd159670145..57d8fef0bd6 100644
--- a/gcc/config/arm/constraints.md
+++ b/gcc/config/arm/constraints.md
@@ -39,7 +39,7 @@
 ;; in all states: Pg
 
 ;; The following memory constraints have been used:
-;; in ARM/Thumb-2 state: Uh, Ut, Uv, Uy, Un, Um, Us, Up, Uf, Ux, Ul
+;; in ARM/Thumb-2 state: Uh, Ut, Uv, Uy, Un, Um, Us, Uo, Up, Uf, Ux, Ul, Uz
 ;; in ARM state: Uq
 ;; in Thumb state: Uu, Uw
 ;; in all states: Q
@@ -585,6 +585,12 @@
  (and (match_code "mem")
       (match_test "arm_coproc_ldc_stc_legitimate_address (op)")))
 
+(define_memory_constraint "Uo"
+ "@internal
+  A memory operand for Arm/Thumb-2 LDRD/STRD"
+ (and (match_code "mem")
+      (match_test "arm_ldrd_legitimate_address (op)")))
+
 ;; We used to have constraint letters for S and R in ARM state, but
 ;; all uses of these now appear to have been removed.
 
diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md
index 197054b6118..fca61aeb699 100644
--- a/gcc/config/arm/predicates.md
+++ b/gcc/config/arm/predicates.md
@@ -849,6 +849,10 @@
   (and (match_operand 0 "memory_operand")
        (match_code "reg" "0")))
 
+;; True if the operand is memory reference suitable for a ldrd/strd.
+(define_predicate "arm_ldrd_memory_operand"
+  (match_test "arm_ldrd_legitimate_address (op)"))
+
 ;; Predicates for parallel expanders based on mode.
 (define_special_predicate "vect_par_constant_high" 
   (match_code "parallel")
diff --git a/gcc/config/arm/sync.md b/gcc/config/arm/sync.md
index 0a8347fc598..38974fa7626 100644
--- a/gcc/config/arm/sync.md
+++ b/gcc/config/arm/sync.md
@@ -161,7 +161,7 @@
 (define_insn "arm_atomic_loaddi2_ldrd"
   [(set (match_operand:DI 0 "register_operand" "=r")
 	(unspec_volatile:DI
-	  [(match_operand:DI 1 "memory_operand" "m")]
+	  [(match_operand:DI 1 "arm_ldrd_memory_operand" "Uo")]
 	    VUNSPEC_LDRD_ATOMIC))]
   "ARM_DOUBLEWORD_ALIGN && TARGET_HAVE_LPAE"
   "ldrd\t%0, %H0, %1"
diff --git a/gcc/testsuite/gcc.target/arm/pr117675.c b/gcc/testsuite/gcc.target/arm/pr117675.c
new file mode 100644
index 00000000000..586bc9db90a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/pr117675.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -marm" } */
+/* { dg-require-effective-target arm_arch_v7ve_neon_ok } */
+/* { dg-add-options arm_arch_v7ve_neon } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
+
+/*
+** f1:
+**	add	r0, r0, r1
+**	ldrd	r0, r1, \[r0\]
+**	bx	lr
+*/
+long long f1 (char *p, int i)
+{
+  return __atomic_load_n ((long long *)(p + i), __ATOMIC_RELAXED);
+}
+

commit 44da17c12bc4e0e6ded60e927bf38b46638a2594
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Dec 19 00:25:25 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index be064ff3125..b0ddc82fcd5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,16 @@
+2024-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+
+	Backported from master:
+	2024-12-10  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+
+	PR target/117675
+	* config/arm/arm.cc (arm_ldrd_legitimate_address): New function.
+	* config/arm/arm-protos.h (arm_ldrd_legitimate_address): New prototype.
+	* config/arm/constraints.md: Add new Uo constraint.
+	* config/arm/predicates.md (arm_ldrd_memory_operand): Add new predicate.
+	* config/arm/sync.md (arm_atomic_loaddi2_ldrd): Use
+	arm_ldrd_memory_operand and Uo.
+
 2024-12-16  Heiko Eißfeldt  <heiko@hexco.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 781eeaca5bc..fcb1ceaa6b9 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241218
+20241219
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 23a90d83967..566760d9558 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2024-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+
+	Backported from master:
+	2024-12-10  Wilco Dijkstra  <wilco.dijkstra@arm.com>
+
+	PR target/117675
+	* gcc.target/arm/pr117675.c: Add new test.
+
 2024-12-17  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
 
 	Backported from master:

commit 4bbb74c75c0a5bb8d4c5be57c22594b3e130b8de
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Thu Oct 24 10:40:27 2024 +0200

    testsuite: arm: Use effective-target for memset-inline* tests
    
    Split tests into 2 parts:
    - The first part checkes the assmbler generated.
    - The second part does the run test and this part now requires
      effective-target arm_neon_hw.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/memset-inline-4.c: Only check assembler output.
            * gcc.target/arm/memset-inline-5.c: Likewise.
            * gcc.target/arm/memset-inline-6.c: Likewise.
            * gcc.target/arm/memset-inline-8.c: Likewise.
            * gcc.target/arm/memset-inline-9.c: Likewise.
            * gcc.target/arm/memset-inline-4-exe.c: New test.
            * gcc.target/arm/memset-inline-5-exe.c: Likewise.
            * gcc.target/arm/memset-inline-6-exe.c: Likewise.
            * gcc.target/arm/memset-inline-8-exe.c: Likewise.
            * gcc.target/arm/memset-inline-9-exe.c: Likewise.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 8462a5fdbfe12194b44072b5e64809b02dd2432d)

diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-4-exe.c b/gcc/testsuite/gcc.target/arm/memset-inline-4-exe.c
new file mode 100644
index 00000000000..fef6c4365e2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-4-exe.c
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+/* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
+/* { dg-require-effective-target arm_neon_hw } */
+/* { dg-options "-save-temps -O2 -fno-inline" } */
+/* { dg-add-options "arm_neon" } */
+
+#include "./memset-inline-4.c"
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-4.c b/gcc/testsuite/gcc.target/arm/memset-inline-4.c
index fc5f4aeed85..5d3eb1d53ad 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-4.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-4.c
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do compile } */
 /* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-require-effective-target arm_neon_hw } */
 /* { dg-options "-save-temps -O2 -fno-inline" } */
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-5-exe.c b/gcc/testsuite/gcc.target/arm/memset-inline-5-exe.c
new file mode 100644
index 00000000000..a52a527ea13
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-5-exe.c
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+/* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
+/* { dg-require-effective-target arm_neon_hw } */
+/* { dg-options "-save-temps -O2 -fno-inline" } */
+/* { dg-add-options "arm_neon" } */
+
+#include "./memset-inline-5.c"
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-5.c b/gcc/testsuite/gcc.target/arm/memset-inline-5.c
index 683290771cf..567e6d0ca8a 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-5.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-5.c
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do compile } */
 /* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-require-effective-target arm_neon_hw } */
 /* { dg-options "-save-temps -O2 -fno-inline" } */
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-6-exe.c b/gcc/testsuite/gcc.target/arm/memset-inline-6-exe.c
new file mode 100644
index 00000000000..8e58d681023
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-6-exe.c
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+/* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
+/* { dg-require-effective-target arm_neon_hw } */
+/* { dg-options "-save-temps -O2 -fno-inline" } */
+/* { dg-add-options "arm_neon" } */
+
+#include "./memset-inline-6.c"
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-6.c b/gcc/testsuite/gcc.target/arm/memset-inline-6.c
index 66c242eebbe..ccaf25e3f9d 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-6.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-6.c
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do compile } */
 /* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-require-effective-target arm_neon_hw } */
 /* { dg-options "-save-temps -O2 -fno-inline" } */
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-8-exe.c b/gcc/testsuite/gcc.target/arm/memset-inline-8-exe.c
new file mode 100644
index 00000000000..0ff1f6cbe89
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-8-exe.c
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+/* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
+/* { dg-require-effective-target arm_neon_hw } */
+/* { dg-options "-save-temps -O2 -fno-inline"  } */
+/* { dg-add-options "arm_neon" } */
+
+#include "./memset-inline-8.c"
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-8.c b/gcc/testsuite/gcc.target/arm/memset-inline-8.c
index bcfe6404efa..e12e9330f75 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-8.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-8.c
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do compile } */
 /* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-options "-save-temps -O2 -fno-inline"  } */
 /* { dg-add-options "arm_neon" } */
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-9-exe.c b/gcc/testsuite/gcc.target/arm/memset-inline-9-exe.c
new file mode 100644
index 00000000000..eb1e61857aa
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-9-exe.c
@@ -0,0 +1,7 @@
+/* { dg-do run } */
+/* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
+/* { dg-require-effective-target arm_neon_hw } */
+/* { dg-options "-save-temps -Os -fno-inline" } */
+/* { dg-add-options "arm_neon" } */
+
+#include "./memset-inline-9.c"
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-9.c b/gcc/testsuite/gcc.target/arm/memset-inline-9.c
index d9e0722f732..34e328028d5 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-9.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-9.c
@@ -1,4 +1,4 @@
-/* { dg-do run } */
+/* { dg-do compile } */
 /* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-options "-save-temps -Os -fno-inline" } */
 /* { dg-add-options "arm_neon" } */

commit 87f9c0e4ae2ad7f5f4fde2438ba57af7ea45cafc
Author: Andrew Carlotti <andrew.carlotti@arm.com>
Date:   Wed Dec 18 16:16:51 2024 +0000

    Fix comment typos in tree-assume.cc
    
    gcc/ChangeLog:
    
            * tree-assume.cc: Fix comment typos.

diff --git a/gcc/tree-assume.cc b/gcc/tree-assume.cc
index 897b5ce3baf..10c1343492c 100644
--- a/gcc/tree-assume.cc
+++ b/gcc/tree-assume.cc
@@ -36,16 +36,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-pretty-print.h"
 #include "tree-cfg.h"
 
-// An assume query utilizes the current range query to implelemtn the assume
+// An assume query utilizes the current range query to implement the assume
 // keyword.
 // For any return value of 1 from the function, it attempts to determine
-// which paths leads to a 1 value being returned. On those paths, what
+// which paths lead to a 1 value being returned. On those paths, it determines
 // the ranges of any ssa_names listed in bitmap P (usually the parm list for
-// the function) are, and combined them all.
+// the function), and combines them all.
 // These ranges are then set as the global ranges for those parms in this
 // function.
-// Other functions which then refer to this function in an assume builtin
-// will then pick up these ranges for the paramters via the inferred range
+// Other functions which refer to this function in an assume builtin
+// will then pick up these ranges for the parameters via the inferred range
 // mechanism.
 //   See gimple-range-infer.cc::gimple_infer_range::check_assume_func ()
 //
@@ -57,11 +57,11 @@ along with GCC; see the file COPYING3.  If not see
 //
 // a small temporary assume function consisting of
 // assume_f1 (int x) { return x == 1 || x == 4; }
-// is constructed by the front end, and optimzed, at the very end of
+// is constructed by the front end, and optimized, at the very end of
 // optimization, instead of generating code, we instead invoke the assume pass
 // which uses this query to set the the global value of parm x to [1,1][4,4]
 //
-// Meanwhile., my_Fund has been rewritten to be:
+// Meanwhile., my_func has been rewritten to be:
 //
 // my_func (int x_2)
 // {
@@ -70,12 +70,12 @@ along with GCC; see the file COPYING3.  If not see
 //   if (x_2 == 3)
 //
 // When ranger is processing the assume_builtin_call, it looks up the global
-// value of the paramter in assume_f1, which is [1,1][4,4].  It then registers
+// value of the parameter in assume_f1, which is [1,1][4,4].  It then registers
 // and inferred range at this statement setting the value x_2 to [1,1][4,4]
 //
-// Any uses of x_2 after this statement will now utilzie this inferred range.
+// Any uses of x_2 after this statement will now utilize this inferred range.
 //
-// When VRP precoesses if (x_2 == 3), it picks up the inferred range, and
+// When VRP processes if (x_2 == 3), it picks up the inferred range, and
 // determines that x_2 can never be 3, and will rewrite the branch to
 //   if (0 != 0)
 
@@ -110,7 +110,7 @@ assume_query::assume_query (gimple_ranger *ranger, function *f, bitmap p)
   : m_ranger (ranger), m_parm_list (p), m_func (f)
 {
   basic_block exit_bb = EXIT_BLOCK_PTR_FOR_FN (f);
-  // If there is more than one precessor to the exit block, bail.
+  // If there is more than one predecessor to the exit block, bail.
   if (!single_pred_p (exit_bb))
     return;
 
@@ -131,7 +131,7 @@ assume_query::assume_query (gimple_ranger *ranger, function *f, bitmap p)
   if (!irange::supports_p (lhs_type))
     return;
 
-  // Only values of interest are when the return value is 1.  The defintion
+  // Only values of interest are when the return value is 1.  The definition
   // of the return value must be in the same block, or we have
   // complicated flow control we don't understand, and just return.
   unsigned prec = TYPE_PRECISION (lhs_type);
@@ -173,7 +173,7 @@ assume_query::assume_query (gimple_ranger *ranger, function *f, bitmap p)
     }
 }
 
-// This function Will update all the current value of interesting parameters.
+// This function will update all the current values of interesting parameters.
 // It tries, in order:
 //    a) a range found via path calculations.
 //    b) range of the parm at SRC point in the IL. (either edge or stmt)
@@ -341,9 +341,9 @@ public:
   bool gate (function *fun) final override { return fun->assume_function; }
   unsigned int execute (function *fun) final override
     {
-      // Create a bitmap of all the paramters in this function.
-      // Invoke the assume_query to detemine what values these parameters
-      // have when the function returns TRUE, and set the globals value of
+      // Create a bitmap of all the parameters in this function.
+      // Invoke the assume_query to determine what values these parameters
+      // have when the function returns TRUE, and set the global values of
       // those parameters in this function based on that.  This will later be
       // utilized by ranger when prcessing the builtin_assumer function.
       auto_bitmap decls;

commit 0631c5770e8162dbe67c73dee0327313c19822c2
Author: Christophe Lyon <christophe.lyon@linaro.org>
Date:   Sun Nov 24 18:08:48 2024 +0000

    arm: [MVE intrinsics] Fix support for predicate constants [PR target/114801]
    
    In this PR, we have to handle a case where MVE predicates are supplied
    as a const_int, where individual predicates have illegal boolean
    values (such as 0xc for a 4-bit boolean predicate).  To avoid the ICE,
    fix the constant (any non-zero value is converted to all 1s) and emit
    a warning.
    
    On MVE, V8BI and V4BI multi-bit masks are interpreted byte-by-byte at
    instruction level, but end-users should describe lanes rather than
    bytes (so all bytes of a true-predicated lane should be '1'), see the
    section on MVE intrinsics in the Arm ACLE specification.
    
    Since force_lowpart_subreg cannot handle const_int (because they have VOID mode),
    use gen_lowpart on them, force_lowpart_subreg otherwise.
    
    2024-11-20  Christophe Lyon  <christophe.lyon@linaro.org>
                Jakub Jelinek  <jakub@redhat.com>
    
            PR target/114801
            gcc/
            * config/arm/arm-mve-builtins.cc
            (function_expander::add_input_operand): Handle CONST_INT
            predicates.
    
            gcc/testsuite/
            * gcc.target/arm/mve/pr108443.c: Update predicate constant.
            * gcc.target/arm/mve/pr108443-run.c: Likewise.
            * gcc.target/arm/mve/pr114801.c: New test.
    
    (cherry picked from commit 2089009210a1774c37e527ead8bbcaaa1a7a9d2d)

diff --git a/gcc/config/arm/arm-mve-builtins.cc b/gcc/config/arm/arm-mve-builtins.cc
index e1826ae4052..ec856f7d616 100644
--- a/gcc/config/arm/arm-mve-builtins.cc
+++ b/gcc/config/arm/arm-mve-builtins.cc
@@ -2107,7 +2107,37 @@ function_expander::add_input_operand (insn_code icode, rtx x)
       mode = GET_MODE (x);
     }
   else if (VALID_MVE_PRED_MODE (mode))
-    x = gen_lowpart (mode, x);
+    {
+      if (CONST_INT_P (x))
+	{
+	  if (mode == V8BImode || mode == V4BImode)
+	    {
+	      /* In V8BI or V4BI each element has 2 or 4 bits, if those bits
+		 aren't all the same, gen_lowpart might ICE.  Canonicalize all
+		 the 2 or 4 bits to all ones if any of them is non-zero.  V8BI
+		 and V4BI multi-bit masks are interpreted byte-by-byte at
+		 instruction level, but such constants should describe lanes,
+		 rather than bytes.  See the section on MVE intrinsics in the
+		 Arm ACLE specification.  */
+	      unsigned HOST_WIDE_INT xi = UINTVAL (x);
+	      xi |= ((xi & 0x5555) << 1) | ((xi & 0xaaaa) >> 1);
+	      if (mode == V4BImode)
+		xi |= ((xi & 0x3333) << 2) | ((xi & 0xcccc) >> 2);
+	      if (xi != UINTVAL (x))
+		warning_at (location, 0, "constant predicate argument %d"
+			    " (%wx) does not map to %d lane numbers,"
+			    " converted to %wx",
+			    opno, UINTVAL (x) & 0xffff,
+			    mode == V8BImode ? 8 : 4,
+			    xi & 0xffff);
+
+	      x = gen_int_mode (xi, HImode);
+	    }
+	  x = gen_lowpart (mode, x);
+	}
+      else
+	x = force_lowpart_subreg (mode, x, GET_MODE (x));
+    }
 
   m_ops.safe_grow (m_ops.length () + 1, true);
   create_input_operand (&m_ops.last (), x, mode);
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c b/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
index cb4b45bd305..b894f019b8b 100644
--- a/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
+++ b/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
@@ -16,7 +16,7 @@ __attribute__ ((noipa)) partial_write (uint32_t *a, uint32x4_t v, unsigned short
 
 int main (void)
 {
-  unsigned short p = 0x00CC;
+  unsigned short p = 0x00FF;
   uint32_t a[] = {0, 0, 0, 0};
   uint32_t b[] = {0, 0, 0, 0};
   uint32x4_t v = vdupq_n_u32 (0xFFFFFFFFU);
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr108443.c b/gcc/testsuite/gcc.target/arm/mve/pr108443.c
index c5fbfa4a1bb..0c0e2dd6eb8 100644
--- a/gcc/testsuite/gcc.target/arm/mve/pr108443.c
+++ b/gcc/testsuite/gcc.target/arm/mve/pr108443.c
@@ -7,8 +7,8 @@
 void
 __attribute__ ((noipa)) partial_write_cst (uint32_t *a, uint32x4_t v)
 {
-  vstrwq_p_u32 (a, v, 0x00CC);
+  vstrwq_p_u32 (a, v, 0x00FF);
 }
 
-/* { dg-final { scan-assembler {mov\tr[0-9]+, #204} } } */
+/* { dg-final { scan-assembler {mov\tr[0-9]+, #255} } } */
 
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr114801.c b/gcc/testsuite/gcc.target/arm/mve/pr114801.c
new file mode 100644
index 00000000000..ab3130fd4ce
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/mve/pr114801.c
@@ -0,0 +1,39 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_v8_1m_mve_ok } */
+/* { dg-options "-O2" } */
+/* { dg-add-options arm_v8_1m_mve } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
+
+#include <arm_mve.h>
+
+/*
+** test_32:
+**...
+**	mov	r[0-9]+, #65295	@ movhi
+**...
+*/
+uint32x4_t test_32() {
+  /* V4BI predicate converted to 0xff0f.  */
+  return vdupq_m_n_u32(vdupq_n_u32(0xffffffff), 0, 0x4f02); /* { dg-warning {constant predicate argument 3 \(0x4f02\) does not map to 4 lane numbers, converted to 0xff0f} } */
+}
+
+/*
+** test_16:
+**...
+**	mov	r[0-9]+, #12339	@ movhi
+**...
+*/
+uint16x8_t test_16() {
+  /* V8BI predicate converted to 0x3033.  */
+  return vdupq_m_n_u16(vdupq_n_u16(0xffff), 0, 0x3021); /* { dg-warning {constant predicate argument 3 \(0x3021\) does not map to 8 lane numbers, converted to 0x3033} } */
+}
+
+/*
+** test_8:
+**...
+**	mov	r[0-9]+, #23055	@ movhi
+**...
+*/
+uint8x16_t test_8() {
+  return vdupq_m_n_u8(vdupq_n_u8(0xff), 0, 0x5a0f);
+}

commit e883a7082fecfd85694b275bec4a2e428ac9a081
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Dec 20 00:25:04 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b0ddc82fcd5..f5c2746b306 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,18 @@
+2024-12-19  Christophe Lyon  <christophe.lyon@linaro.org>
+
+	Backported from master:
+	2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+		    Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/114801
+	* config/arm/arm-mve-builtins.cc
+	(function_expander::add_input_operand): Handle CONST_INT
+	predicates.
+
+2024-12-19  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	* tree-assume.cc: Fix comment typos.
+
 2024-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index fcb1ceaa6b9..938c9799fa1 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241219
+20241220
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 566760d9558..1699423ffec 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,30 @@
+2024-12-19  Christophe Lyon  <christophe.lyon@linaro.org>
+
+	Backported from master:
+	2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+		    Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/114801
+	* gcc.target/arm/mve/pr108443.c: Update predicate constant.
+	* gcc.target/arm/mve/pr108443-run.c: Likewise.
+	* gcc.target/arm/mve/pr114801.c: New test.
+
+2024-12-19  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-12-19  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/memset-inline-4.c: Only check assembler output.
+	* gcc.target/arm/memset-inline-5.c: Likewise.
+	* gcc.target/arm/memset-inline-6.c: Likewise.
+	* gcc.target/arm/memset-inline-8.c: Likewise.
+	* gcc.target/arm/memset-inline-9.c: Likewise.
+	* gcc.target/arm/memset-inline-4-exe.c: New test.
+	* gcc.target/arm/memset-inline-5-exe.c: Likewise.
+	* gcc.target/arm/memset-inline-6-exe.c: Likewise.
+	* gcc.target/arm/memset-inline-8-exe.c: Likewise.
+	* gcc.target/arm/memset-inline-9-exe.c: Likewise.
+
 2024-12-18  Wilco Dijkstra  <wilco.dijkstra@arm.com>
 
 	Backported from master:

commit 7cdf3356171597bf9821eaa549f6aa7c92a0d223
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Dec 21 00:24:11 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 938c9799fa1..d4528d6fc4f 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241220
+20241221

commit 5c9fcacc0f24ecb1ec019e5905bb9db991f400ee
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Dec 22 00:25:11 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index d4528d6fc4f..6f2cf7ace4e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241221
+20241222

commit d1710c420a0fcea40c983eff2427fe72072099da
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Thu Dec 12 17:50:56 2024 +0000

    Fortran: Fix testsuite regressions after r15-5083 [PR117797]
    
    2024-12-12  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/117797
            * trans-array.cc (class_array_element_size): New function.
            (gfc_get_array_span): Refactor, using class_array_element_size
            to return the span for descriptors that are the _data component
            of a class expression and then class dummy references. Revert
            the conditions to those before r15-5083 tidying up using 'sym'.
    
    gcc/testsuite/
            PR fortran/117797
            * gfortran.dg/pr117797.f90: New test.
    
    (cherry picked from commit d4330ff9bc9a2995e79d88b09a2ee76673167661)

diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index fe69b694e0d..d9aaa9bceae 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -955,6 +955,26 @@ get_CFI_desc (gfc_symbol *sym, gfc_expr *expr,
 }
 
 
+/* A helper function for gfc_get_array_span that returns the array element size
+   of a class entity.  */
+static tree
+class_array_element_size (tree decl, bool unlimited)
+{
+  /* Class dummys usually require extraction from the saved descriptor,
+     which gfc_class_vptr_get does for us if necessary. This, of course,
+     will be a component of the class object.  */
+  tree vptr = gfc_class_vptr_get (decl);
+  /* If this is an unlimited polymorphic entity with a character payload,
+     the element size will be corrected for the string length.  */
+  if (unlimited)
+    return gfc_resize_class_size_with_len (NULL,
+					   TREE_OPERAND (vptr, 0),
+					   gfc_vptr_size_get (vptr));
+  else
+    return gfc_vptr_size_get (vptr);
+}
+
+
 /* Return the span of an array.  */
 
 tree
@@ -984,49 +1004,20 @@ gfc_get_array_span (tree desc, gfc_expr *expr)
 	desc = build_fold_indirect_ref_loc (input_location, desc);
       tmp = gfc_conv_descriptor_span_get (desc);
     }
-  else if (UNLIMITED_POLY (expr)
-	   || (sym && UNLIMITED_POLY (sym)))
-    {
-      /* Treat unlimited polymorphic expressions separately because
-	 the element size need not be the same as the span.  Obtain
-	 the class container, which is simplified here by there being
-	 no component references.  */
-      if (sym && sym->attr.dummy)
-	{
-	  tmp = gfc_get_symbol_decl (sym);
-	  tmp = GFC_DECL_SAVED_DESCRIPTOR (tmp);
-	  if (INDIRECT_REF_P (tmp))
-	    tmp = TREE_OPERAND (tmp, 0);
-	}
-      else
-	{
-	  gcc_assert (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (desc)));
-	  tmp = TREE_OPERAND (desc, 0);
-	}
-      tmp = gfc_class_data_get (tmp);
-      tmp = gfc_conv_descriptor_span_get (tmp);
-    }
   else if (TREE_CODE (desc) == COMPONENT_REF
 	   && GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (desc))
 	   && GFC_CLASS_TYPE_P (TREE_TYPE (TREE_OPERAND (desc, 0))))
-    {
-      /* The descriptor is a class _data field. Use the vtable size
-	 since it is guaranteed to have been set and is always OK for
-	 class array descriptors that are not unlimited.  */
-      tmp = gfc_get_vptr_from_expr (desc);
-      tmp = gfc_vptr_size_get (tmp);
-    }
+    /* The descriptor is the _data field of a class object.  */
+    tmp = class_array_element_size (TREE_OPERAND (desc, 0),
+				    UNLIMITED_POLY (expr));
   else if (sym && sym->ts.type == BT_CLASS
 	   && expr->ref->type == REF_COMPONENT
 	   && expr->ref->next->type == REF_ARRAY
 	   && expr->ref->next->next == NULL
 	   && CLASS_DATA (sym)->attr.dimension)
-    {
-      /* Class dummys usually require extraction from the saved
-	 descriptor, which gfc_class_vptr_get does for us.  */
-      tmp = gfc_class_vptr_get (sym->backend_decl);
-      tmp = gfc_vptr_size_get (tmp);
-    }
+    /* Having escaped the above, this can only be a class array dummy.  */
+    tmp = class_array_element_size (sym->backend_decl,
+				    UNLIMITED_POLY (sym));
   else
     {
       /* If none of the fancy stuff works, the span is the element
diff --git a/gcc/testsuite/gfortran.dg/pr117797.f90 b/gcc/testsuite/gfortran.dg/pr117797.f90
new file mode 100644
index 00000000000..25c0c04e6c3
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr117797.f90
@@ -0,0 +1,55 @@
+! { dg-do run }
+!
+! Test the fix for the regression caused by r15-5083.
+!
+! Contributed by Neil Carlson  <neil.n.carlson@gmail.com>
+!
+module foo
+
+  type, public :: any_matrix
+    private
+    class(*), allocatable :: value(:,:)
+  end type
+
+contains
+
+  function bar(this) result(uptr)
+    class(any_matrix), target, intent(in) :: this
+    class(*), pointer :: uptr(:,:)
+    uptr => this%value ! Seg. fault in trans-array.cc(gfc_get_array_span) here
+  end function
+
+  function build(this) result (res)
+    class(*) :: this(:,:)
+    type(any_matrix) :: res
+    res%value = this
+  end function
+
+  function evaluate (this) result (res)
+    class(*) :: this(:,:)
+    character(len = 2, kind = 1), allocatable :: res(:)
+      select type (ans => this)
+        type is (character(*))
+          res = reshape (ans, [4])
+        type is (integer)
+          allocate (res (8))
+          write (res, '(i2)') ans
+        class default
+          res = ['no','t ','OK','!!']
+      end select
+  end
+
+end module
+
+  use foo
+  class(*), allocatable :: up (:, :)
+  character(len = 2, kind = 1) :: chr(2,2) = reshape (['ab','cd','ef','gh'], [2,2])
+  integer :: i(2,2) = reshape ([1,2,3,4], [2,2])
+  up = bar (build (chr))
+  if (any (evaluate (up) /= reshape (chr, [4]))) stop 1
+
+  up = bar (build (i))
+  if (any (evaluate (up) /= [' 1',' 2',' 3',' 4'])) stop 2
+
+  deallocate (up)
+end

commit e79105ad8c07e7622dd0c9203f31f0718c7c7bcf
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Sun Nov 10 10:46:39 2024 +0100

    testsuite: arm: Check for short circuit instructions [PR103298]
    
    Instead of checking that a certain transformation is not used by
    counting the number of return instructions and the number of BEQ
    instructions, check that none of CMP, MOV, ORR and AND instructions are
    suffixed with EQ or NE.
    Also removed size check as it's very unstable (depends on optimization
    in use).
    
    gcc/testsuite/ChangeLog:
    
            PR testsuite/103298
            * gcc.target/arm/pr43920-2.c: Change to assembler pattern
            "(cmp|mov|orr|and)(eq|ne)" for the check. Remove size check.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 9e1063ca1c854b13950597fd4a14aff4f15ed822)

diff --git a/gcc/testsuite/gcc.target/arm/pr43920-2.c b/gcc/testsuite/gcc.target/arm/pr43920-2.c
index c367d6bc15d..7bde9daea04 100644
--- a/gcc/testsuite/gcc.target/arm/pr43920-2.c
+++ b/gcc/testsuite/gcc.target/arm/pr43920-2.c
@@ -27,6 +27,4 @@ int getFileStartAndLength (int fd, int *start_, size_t *length_)
       return 0;
 }
 
-/* { dg-final { scan-assembler-times "pop" 2 } } */
-/* { dg-final { scan-assembler-times "beq" 3 } } */
-/* { dg-final { object-size text <= 54 { target { ! arm*-*-uclinuxfdpiceabi } } } } */
+/* { dg-final { scan-assembler-not "\t(cmp|mov|orr|and)(eq|ne)\t" } } */

commit 597daaafda906923b1659e7bd6f86a999e66f445
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Dec 23 00:23:56 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 6f2cf7ace4e..8f5ae44e831 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241222
+20241223
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index bf2f46f2b80..0b1e81cfdad 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,15 @@
+2024-12-22  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-12-12  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/117797
+	* trans-array.cc (class_array_element_size): New function.
+	(gfc_get_array_span): Refactor, using class_array_element_size
+	to return the span for descriptors that are the _data component
+	of a class expression and then class dummy references. Revert
+	the conditions to those before r15-5083 tidying up using 'sym'.
+
 2024-12-17  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1699423ffec..c5ecd31cf4c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,20 @@
+2024-12-22  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2024-12-22  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	PR testsuite/103298
+	* gcc.target/arm/pr43920-2.c: Change to assembler pattern
+	"(cmp|mov|orr|and)(eq|ne)" for the check. Remove size check.
+
+2024-12-22  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-12-12  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/117797
+	* gfortran.dg/pr117797.f90: New test.
+
 2024-12-19  Christophe Lyon  <christophe.lyon@linaro.org>
 
 	Backported from master:

commit ecd031a9470257324484c66b51c6baff943e01ab
Author: Christophe Lyon <christophe.lyon@linaro.org>
Date:   Mon Dec 23 08:11:34 2024 +0000

    Revert "arm: [MVE intrinsics] Fix support for predicate constants [PR target/114801]"
    
    This reverts commit 0631c5770e8162dbe67c73dee0327313c19822c2.

diff --git a/gcc/config/arm/arm-mve-builtins.cc b/gcc/config/arm/arm-mve-builtins.cc
index ec856f7d616..e1826ae4052 100644
--- a/gcc/config/arm/arm-mve-builtins.cc
+++ b/gcc/config/arm/arm-mve-builtins.cc
@@ -2107,37 +2107,7 @@ function_expander::add_input_operand (insn_code icode, rtx x)
       mode = GET_MODE (x);
     }
   else if (VALID_MVE_PRED_MODE (mode))
-    {
-      if (CONST_INT_P (x))
-	{
-	  if (mode == V8BImode || mode == V4BImode)
-	    {
-	      /* In V8BI or V4BI each element has 2 or 4 bits, if those bits
-		 aren't all the same, gen_lowpart might ICE.  Canonicalize all
-		 the 2 or 4 bits to all ones if any of them is non-zero.  V8BI
-		 and V4BI multi-bit masks are interpreted byte-by-byte at
-		 instruction level, but such constants should describe lanes,
-		 rather than bytes.  See the section on MVE intrinsics in the
-		 Arm ACLE specification.  */
-	      unsigned HOST_WIDE_INT xi = UINTVAL (x);
-	      xi |= ((xi & 0x5555) << 1) | ((xi & 0xaaaa) >> 1);
-	      if (mode == V4BImode)
-		xi |= ((xi & 0x3333) << 2) | ((xi & 0xcccc) >> 2);
-	      if (xi != UINTVAL (x))
-		warning_at (location, 0, "constant predicate argument %d"
-			    " (%wx) does not map to %d lane numbers,"
-			    " converted to %wx",
-			    opno, UINTVAL (x) & 0xffff,
-			    mode == V8BImode ? 8 : 4,
-			    xi & 0xffff);
-
-	      x = gen_int_mode (xi, HImode);
-	    }
-	  x = gen_lowpart (mode, x);
-	}
-      else
-	x = force_lowpart_subreg (mode, x, GET_MODE (x));
-    }
+    x = gen_lowpart (mode, x);
 
   m_ops.safe_grow (m_ops.length () + 1, true);
   create_input_operand (&m_ops.last (), x, mode);
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c b/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
index b894f019b8b..cb4b45bd305 100644
--- a/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
+++ b/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
@@ -16,7 +16,7 @@ __attribute__ ((noipa)) partial_write (uint32_t *a, uint32x4_t v, unsigned short
 
 int main (void)
 {
-  unsigned short p = 0x00FF;
+  unsigned short p = 0x00CC;
   uint32_t a[] = {0, 0, 0, 0};
   uint32_t b[] = {0, 0, 0, 0};
   uint32x4_t v = vdupq_n_u32 (0xFFFFFFFFU);
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr108443.c b/gcc/testsuite/gcc.target/arm/mve/pr108443.c
index 0c0e2dd6eb8..c5fbfa4a1bb 100644
--- a/gcc/testsuite/gcc.target/arm/mve/pr108443.c
+++ b/gcc/testsuite/gcc.target/arm/mve/pr108443.c
@@ -7,8 +7,8 @@
 void
 __attribute__ ((noipa)) partial_write_cst (uint32_t *a, uint32x4_t v)
 {
-  vstrwq_p_u32 (a, v, 0x00FF);
+  vstrwq_p_u32 (a, v, 0x00CC);
 }
 
-/* { dg-final { scan-assembler {mov\tr[0-9]+, #255} } } */
+/* { dg-final { scan-assembler {mov\tr[0-9]+, #204} } } */
 
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr114801.c b/gcc/testsuite/gcc.target/arm/mve/pr114801.c
deleted file mode 100644
index ab3130fd4ce..00000000000
--- a/gcc/testsuite/gcc.target/arm/mve/pr114801.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target arm_v8_1m_mve_ok } */
-/* { dg-options "-O2" } */
-/* { dg-add-options arm_v8_1m_mve } */
-/* { dg-final { check-function-bodies "**" "" "" } } */
-
-#include <arm_mve.h>
-
-/*
-** test_32:
-**...
-**	mov	r[0-9]+, #65295	@ movhi
-**...
-*/
-uint32x4_t test_32() {
-  /* V4BI predicate converted to 0xff0f.  */
-  return vdupq_m_n_u32(vdupq_n_u32(0xffffffff), 0, 0x4f02); /* { dg-warning {constant predicate argument 3 \(0x4f02\) does not map to 4 lane numbers, converted to 0xff0f} } */
-}
-
-/*
-** test_16:
-**...
-**	mov	r[0-9]+, #12339	@ movhi
-**...
-*/
-uint16x8_t test_16() {
-  /* V8BI predicate converted to 0x3033.  */
-  return vdupq_m_n_u16(vdupq_n_u16(0xffff), 0, 0x3021); /* { dg-warning {constant predicate argument 3 \(0x3021\) does not map to 8 lane numbers, converted to 0x3033} } */
-}
-
-/*
-** test_8:
-**...
-**	mov	r[0-9]+, #23055	@ movhi
-**...
-*/
-uint8x16_t test_8() {
-  return vdupq_m_n_u8(vdupq_n_u8(0xff), 0, 0x5a0f);
-}

commit 83646dd4859b8c64b63a5b441c1673a3db5ccdaf
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Dec 19 12:00:29 2024 -0500

    c++: integer overflow during constraint subsumption [PR118069]
    
    For the testcase in the PR we hang during constraint subsumption
    ultimately because one of the constraints is complex enough that its
    conjunctive normal form is calculated to have more than 2^31 clauses,
    which causes the size calculation (through an int) to overflow and so
    the optimization in subsumes_constraints_nonnull
    
      if (dnf_size (lhs) <= cnf_size (rhs))
        // iterate over DNF of LHS
      else
        // iterate over CNF of RHS
    
    incorrectly decides to loop over the CNF (>> billions of clauses)
    instead of the DNF (thousands of clauses).
    
    I haven't verified that the result of cnf_size is correct for the
    problematic constraint but integer overflow is definitely plausible
    given that CNF/DNF can be exponentially larger than the original
    constraint in the worst case.
    
    This patch fixes this by using 64-bit saturating arithmetic during
    these size calculations (via new add/mul_sat_hwi functions) so that
    overflow is less likely and if it does occur we handle it gracefully.
    It should be highly unlikely that both the DNF and CNF sizes overflow,
    and if they do then it doesn't matter which form we select, subsumption
    will take forever either way.  The testcase now compiles in ~3 seconds
    on my machine after this change.
    
            PR c++/118069
    
    gcc/ChangeLog:
    
            * hwint.h (add_sat_hwi): New function.
            (mul_sat_hwi): Likewise.
    
    gcc/cp/ChangeLog:
    
            * logic.cc (dnf_size_r): Use HOST_WIDE_INT instead of int, and
            handle overflow gracefully via add_sat_hwi and mul_sat_hwi.
            (cnf_size_r): Likewise.
            (dnf_size): Use HOST_WIDE_INT instead of int.
            (cnf_size): Likewise.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 875f14e15d49dce7de501a6357a3d5811b5c36d4)

diff --git a/gcc/cp/logic.cc b/gcc/cp/logic.cc
index 5466dbe2ec2..d23309a3b19 100644
--- a/gcc/cp/logic.cc
+++ b/gcc/cp/logic.cc
@@ -350,7 +350,7 @@ atomic_p (tree t)
    distributing. In general, a conjunction for which this flag is set
    is considered a disjunction for the purpose of counting.  */
 
-static std::pair<int, bool>
+static std::pair<HOST_WIDE_INT, bool>
 dnf_size_r (tree t)
 {
   if (atomic_p (t))
@@ -361,9 +361,9 @@ dnf_size_r (tree t)
      the results.  */
   tree lhs = TREE_OPERAND (t, 0);
   tree rhs = TREE_OPERAND (t, 1);
-  std::pair<int, bool> p1 = dnf_size_r (lhs);
-  std::pair<int, bool> p2 = dnf_size_r (rhs);
-  int n1 = p1.first, n2 = p2.first;
+  auto p1 = dnf_size_r (lhs);
+  auto p2 = dnf_size_r (rhs);
+  HOST_WIDE_INT n1 = p1.first, n2 = p2.first;
   bool d1 = p1.second, d2 = p2.second;
 
   if (disjunction_p (t))
@@ -377,22 +377,24 @@ dnf_size_r (tree t)
 	{
 	  if (disjunction_p (rhs) || (conjunction_p (rhs) && d2))
 	    /* Both P and Q are disjunctions.  */
-	    return std::make_pair (n1 + n2, d1 | d2);
+	    return std::make_pair (add_sat_hwi (n1, n2), d1 | d2);
 	  else
 	    /* Only LHS is a disjunction.  */
-	    return std::make_pair (1 + n1 + n2, d1 | d2);
+	    return std::make_pair (add_sat_hwi (1, add_sat_hwi (n1, n2)),
+				   d1 | d2);
 	  gcc_unreachable ();
 	}
       if (conjunction_p (lhs))
 	{
 	  if ((disjunction_p (rhs) && d1) || (conjunction_p (rhs) && d1 && d2))
 	    /* Both P and Q are disjunctions.  */
-	    return std::make_pair (n1 + n2, d1 | d2);
+	    return std::make_pair (add_sat_hwi (n1, n2), d1 | d2);
 	  if (disjunction_p (rhs)
 	      || (conjunction_p (rhs) && d1 != d2)
 	      || (atomic_p (rhs) && d1))
 	    /* Either LHS or RHS is a disjunction.  */
-	    return std::make_pair (1 + n1 + n2, d1 | d2);
+	    return std::make_pair (add_sat_hwi (1, add_sat_hwi (n1, n2)),
+				   d1 | d2);
 	  else
 	    /* Neither LHS nor RHS is a disjunction.  */
 	    return std::make_pair (2, false);
@@ -401,7 +403,8 @@ dnf_size_r (tree t)
 	{
 	  if (disjunction_p (rhs) || (conjunction_p (rhs) && d2))
 	    /* Only RHS is a disjunction.  */
-	    return std::make_pair (1 + n1 + n2, d1 | d2);
+	    return std::make_pair (add_sat_hwi (1, add_sat_hwi (n1, n2)),
+				   d1 | d2);
 	  else
 	    /* Neither LHS nor RHS is a disjunction.  */
 	    return std::make_pair (2, false);
@@ -419,22 +422,22 @@ dnf_size_r (tree t)
 	{
 	  if (disjunction_p (rhs) || (conjunction_p (rhs) && d2))
 	    /* Both P and Q are disjunctions.  */
-	    return std::make_pair (n1 * n2, true);
+	    return std::make_pair (mul_sat_hwi (n1, n2), true);
 	  else
 	    /* Only LHS is a disjunction.  */
-	    return std::make_pair (n1 + n2, true);
+	    return std::make_pair (add_sat_hwi (n1, n2), true);
 	  gcc_unreachable ();
 	}
       if (conjunction_p (lhs))
 	{
 	  if ((disjunction_p (rhs) && d1) || (conjunction_p (rhs) && d1 && d2))
 	    /* Both P and Q are disjunctions.  */
-	    return std::make_pair (n1 * n2, true);
+	    return std::make_pair (mul_sat_hwi (n1, n2), true);
 	  if (disjunction_p (rhs)
 	      || (conjunction_p (rhs) && d1 != d2)
 	      || (atomic_p (rhs) && d1))
 	    /* Either LHS or RHS is a disjunction.  */
-	    return std::make_pair (n1 + n2, true);
+	    return std::make_pair (add_sat_hwi (n1, n2), true);
 	  else
 	    /* Neither LHS nor RHS is a disjunction.  */
 	    return std::make_pair (0, false);
@@ -458,7 +461,7 @@ dnf_size_r (tree t)
    distributing. In general, a disjunction for which this flag is set
    is considered a conjunction for the purpose of counting.  */
 
-static std::pair<int, bool>
+static std::pair<HOST_WIDE_INT, bool>
 cnf_size_r (tree t)
 {
   if (atomic_p (t))
@@ -469,9 +472,9 @@ cnf_size_r (tree t)
      the results.  */
   tree lhs = TREE_OPERAND (t, 0);
   tree rhs = TREE_OPERAND (t, 1);
-  std::pair<int, bool> p1 = cnf_size_r (lhs);
-  std::pair<int, bool> p2 = cnf_size_r (rhs);
-  int n1 = p1.first, n2 = p2.first;
+  auto p1 = cnf_size_r (lhs);
+  auto p2 = cnf_size_r (rhs);
+  HOST_WIDE_INT n1 = p1.first, n2 = p2.first;
   bool d1 = p1.second, d2 = p2.second;
 
   if (disjunction_p (t))
@@ -486,12 +489,12 @@ cnf_size_r (tree t)
 	{
 	  if ((disjunction_p (rhs) && d1 && d2) || (conjunction_p (rhs) && d1))
 	    /* Both P and Q are conjunctions.  */
-	    return std::make_pair (n1 * n2, true);
+	    return std::make_pair (mul_sat_hwi (n1, n2), true);
 	  if ((disjunction_p (rhs) && d1 != d2)
 	      || conjunction_p (rhs)
 	      || (atomic_p (rhs) && d1))
 	    /* Either LHS or RHS is a conjunction.  */
-	    return std::make_pair (n1 + n2, true);
+	    return std::make_pair (add_sat_hwi (n1, n2), true);
 	  else
 	    /* Neither LHS nor RHS is a conjunction.  */
 	    return std::make_pair (0, false);
@@ -500,16 +503,16 @@ cnf_size_r (tree t)
 	{
 	  if ((disjunction_p (rhs) && d2) || conjunction_p (rhs))
 	    /* Both LHS and RHS are conjunctions.  */
-	    return std::make_pair (n1 * n2, true);
+	    return std::make_pair (mul_sat_hwi (n1, n2), true);
 	  else
 	    /* Only LHS is a conjunction.  */
-	    return std::make_pair (n1 + n2, true);
+	    return std::make_pair (add_sat_hwi (n1, n2), true);
 	}
       if (atomic_p (lhs))
 	{
 	  if ((disjunction_p (rhs) && d2) || conjunction_p (rhs))
 	    /* Only RHS is a disjunction.  */
-	    return std::make_pair (n1 + n2, true);
+	    return std::make_pair (add_sat_hwi (n1, n2), true);
 	  else
 	    /* Neither LHS nor RHS is a disjunction.  */
 	    return std::make_pair (0, false);
@@ -526,12 +529,13 @@ cnf_size_r (tree t)
 	{
 	  if ((disjunction_p (rhs) && d1 && d2) || (conjunction_p (rhs) && d1))
 	    /* Both P and Q are conjunctions.  */
-	    return std::make_pair (n1 + n2, d1 | d2);
+	    return std::make_pair (add_sat_hwi (n1, n2), d1 | d2);
 	  if ((disjunction_p (rhs) && d1 != d2)
 	      || conjunction_p (rhs)
 	      || (atomic_p (rhs) && d1))
 	    /* Either LHS or RHS is a conjunction.  */
-	    return std::make_pair (1 + n1 + n2, d1 | d2);
+	    return std::make_pair (add_sat_hwi (1, add_sat_hwi (n1, n2)),
+				   d1 | d2);
 	  else
 	    /* Neither LHS nor RHS is a conjunction.  */
 	    return std::make_pair (2, false);
@@ -540,16 +544,18 @@ cnf_size_r (tree t)
 	{
 	  if ((disjunction_p (rhs) && d2) || conjunction_p (rhs))
 	    /* Both LHS and RHS are conjunctions.  */
-	    return std::make_pair (n1 + n2, d1 | d2);
+	    return std::make_pair (add_sat_hwi (n1, n2), d1 | d2);
 	  else
 	    /* Only LHS is a conjunction.  */
-	    return std::make_pair (1 + n1 + n2, d1 | d2);
+	    return std::make_pair (add_sat_hwi (1, add_sat_hwi (n1, n2)),
+				   d1 | d2);
 	}
       if (atomic_p (lhs))
 	{
 	  if ((disjunction_p (rhs) && d2) || conjunction_p (rhs))
 	    /* Only RHS is a disjunction.  */
-	    return std::make_pair (1 + n1 + n2, d1 | d2);
+	    return std::make_pair (add_sat_hwi (1, add_sat_hwi (n1, n2)),
+				   d1 | d2);
 	  else
 	    /* Neither LHS nor RHS is a disjunction.  */
 	    return std::make_pair (2, false);
@@ -561,10 +567,10 @@ cnf_size_r (tree t)
 /* Count the number conjunctive clauses that would be created
    when rewriting T to DNF. */
 
-static int
+static HOST_WIDE_INT
 dnf_size (tree t)
 {
-  std::pair<int, bool> result = dnf_size_r (t);
+  auto result = dnf_size_r (t);
   return result.first == 0 ? 1 : result.first;
 }
 
@@ -572,10 +578,10 @@ dnf_size (tree t)
 /* Count the number disjunctive clauses that would be created
    when rewriting T to CNF. */
 
-static int
+static HOST_WIDE_INT
 cnf_size (tree t)
 {
-  std::pair<int, bool> result = cnf_size_r (t);
+  auto result = cnf_size_r (t);
   return result.first == 0 ? 1 : result.first;
 }
 
diff --git a/gcc/hwint.h b/gcc/hwint.h
index 25a94bedef1..e5d7d371340 100644
--- a/gcc/hwint.h
+++ b/gcc/hwint.h
@@ -396,4 +396,30 @@ mul_hwi (HOST_WIDE_INT a, HOST_WIDE_INT b, bool *overflow)
 #endif
 }
 
+/* Compute the saturated sum of signed A and B, i.e. upon overflow clamp
+   the result to the corresponding extremum.  */
+
+inline HOST_WIDE_INT
+add_sat_hwi (HOST_WIDE_INT a, HOST_WIDE_INT b)
+{
+  bool overflow;
+  HOST_WIDE_INT result = add_hwi (a, b, &overflow);
+  if (!overflow)
+    return result;
+  return (a < 0) ? HOST_WIDE_INT_MIN : HOST_WIDE_INT_MAX;
+}
+
+/* Compute the saturated product of signed A and B, i.e. upon overflow clamp
+   the result to the corresponding extremum.  */
+
+inline HOST_WIDE_INT
+mul_sat_hwi (HOST_WIDE_INT a, HOST_WIDE_INT b)
+{
+  bool overflow;
+  HOST_WIDE_INT result = mul_hwi (a, b, &overflow);
+  if (!overflow)
+    return result;
+  return ((a < 0) != (b < 0)) ? HOST_WIDE_INT_MIN : HOST_WIDE_INT_MAX;
+}
+
 #endif /* ! GCC_HWINT_H */

commit 1d6f91c1c5867e18cc0ed590e0b7c8584731cbb6
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Dec 24 00:25:25 2024 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f5c2746b306..0c838863aee 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,23 @@
+2024-12-23  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-12-19  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/118069
+	* hwint.h (add_sat_hwi): New function.
+	(mul_sat_hwi): Likewise.
+
+2024-12-23  Christophe Lyon  <christophe.lyon@linaro.org>
+
+	Revert:
+	2024-12-19  Christophe Lyon  <christophe.lyon@linaro.org>
+		    Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/114801
+	* config/arm/arm-mve-builtins.cc
+	(function_expander::add_input_operand): Handle CONST_INT
+	predicates.
+
 2024-12-19  Christophe Lyon  <christophe.lyon@linaro.org>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 8f5ae44e831..556dfeee7c0 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241223
+20241224
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 6c9f09bcdaf..b64b9fb2d7d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,15 @@
+2024-12-23  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-12-19  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/118069
+	* logic.cc (dnf_size_r): Use HOST_WIDE_INT instead of int, and
+	handle overflow gracefully via add_sat_hwi and mul_sat_hwi.
+	(cnf_size_r): Likewise.
+	(dnf_size): Use HOST_WIDE_INT instead of int.
+	(cnf_size): Likewise.
+
 2024-12-05  Simon Martin  <simon@nasilyan.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c5ecd31cf4c..ccb4bcd0767 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2024-12-23  Christophe Lyon  <christophe.lyon@linaro.org>
+
+	Revert:
+	2024-12-23  Christophe Lyon  <christophe.lyon@linaro.org>
+		    Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/114801
+	* gcc.target/arm/mve/pr108443.c: Update predicate constant.
+	* gcc.target/arm/mve/pr108443-run.c: Likewise.
+	* gcc.target/arm/mve/pr114801.c: New test.
+
 2024-12-22  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
 
 	Backported from master:

commit 02defddd1d96317c4301f7fce573f480ddba62ec
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Dec 25 00:24:43 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 556dfeee7c0..fa34f54b062 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241224
+20241225

commit 49ec5f8120ecdfa6ec379bfa32b821dc2514eee0
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Dec 26 00:25:05 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index fa34f54b062..66ccea7c37b 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241225
+20241226

commit cf6595595c0d88342c6b8e789a3f24e83131bfb3
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Dec 27 00:23:02 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 66ccea7c37b..c880c6c1d36 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241226
+20241227

commit ef7cda7eacfc169980475ae40b17c9829ce2ede6
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Dec 28 00:24:07 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c880c6c1d36..922c136a4f6 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241227
+20241228

commit 656425e162dec607ad4a03cb4babe42f57d00a8c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Dec 29 00:24:55 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 922c136a4f6..4f5a98435b4 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241228
+20241229

commit ca80e35a589bd662353501402965617d728c5b39
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Dec 30 00:24:02 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 4f5a98435b4..71153cc35f6 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241229
+20241230

commit 12dda7ccb526de960f55d29c49dd5b949e513d60
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Dec 31 00:25:22 2024 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 71153cc35f6..adb1f5f8c2f 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241230
+20241231

commit 9a2951204277072dd5b8cc74da1c4655781f4571
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Jan 1 00:26:20 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index adb1f5f8c2f..fc6c4b42e85 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241231
+20250101

commit 979d5bffe7664062485b800242ac3a89b3a315e8
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Jan 2 00:27:35 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index fc6c4b42e85..dc5f7519d5d 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250101
+20250102

commit e0584c728b81e982a858cc9b6c9c710b00d50d75
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Jan 3 00:24:22 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index dc5f7519d5d..39a15df0cdc 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250102
+20250103

commit 1c3dee768a9f7aa384150e4e4a584d6aa1db5e97
Author: Nathaniel Shead <nathanieloshead@gmail.com>
Date:   Sat Dec 21 23:42:28 2024 +1100

    c++/modules: Fallback to ftruncate if posix_fallocate fails [PR115008]
    
    Depending on the libc and filesystem, in cases where posix_fallocate
    cannot do an efficient preallocation it may return EINVAL.  In such a
    case we should fall back to ftruncate instead.
    
    Apparently, depending on the system the use of posix_fallocate can have
    a noticeable speedup over ftruncate in general (depending on the system)
    so it probably isn't worth it to use ftruncate in all cases.
    
            PR c++/100358
            PR c++/115008
    
    gcc/cp/ChangeLog:
    
            * module.cc (elf_out::create_mapping): Fallback to ftruncate if
            posix_fallocate fails.
    
    Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
    (cherry picked from commit 84aa7065deec49bab9fb0b085cd0a0dcc42cc479)

diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index fb10537d3e3..60638aabee2 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -1883,13 +1883,23 @@ elf_in::begin (location_t loc)
 void
 elf_out::create_mapping (unsigned ext, bool extending)
 {
-#ifndef HAVE_POSIX_FALLOCATE
-#define posix_fallocate(fd,off,len) ftruncate (fd, off + len)
+  /* A wrapper around posix_fallocate, falling back to ftruncate
+     if the underlying filesystem does not support the operation.  */
+  auto allocate = [](int fd, off_t offset, off_t length)
+    {
+#ifdef HAVE_POSIX_FALLOCATE
+      int result = posix_fallocate (fd, offset, length);
+      if (result != EINVAL)
+	return result == 0;
+      /* Not supported by the underlying filesystem, fallback to ftruncate.  */
 #endif
+      return ftruncate (fd, offset + length) == 0;
+    };
+
   void *mapping = MAP_FAILED;
   if (extending && ext < 1024 * 1024)
     {
-      if (!posix_fallocate (fd, offset, ext * 2))
+      if (allocate (fd, offset, ext * 2))
 	mapping = mmap (NULL, ext * 2, PROT_READ | PROT_WRITE,
 			MAP_SHARED, fd, offset);
       if (mapping != MAP_FAILED)
@@ -1897,7 +1907,7 @@ elf_out::create_mapping (unsigned ext, bool extending)
     }
   if (mapping == MAP_FAILED)
     {
-      if (!extending || !posix_fallocate (fd, offset, ext))
+      if (!extending || allocate (fd, offset, ext))
 	mapping = mmap (NULL, ext, PROT_READ | PROT_WRITE,
 			MAP_SHARED, fd, offset);
       if (mapping == MAP_FAILED)
@@ -1907,7 +1917,6 @@ elf_out::create_mapping (unsigned ext, bool extending)
 	  ext = 0;
 	}
     }
-#undef posix_fallocate
   hdr.buffer = (char *)mapping;
   extent = ext;
 }

commit d828a97c003f82fc7bd62e128a6b49c9fef63187
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Jan 4 00:24:17 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 39a15df0cdc..d01f0cb4cc9 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250103
+20250104
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index b64b9fb2d7d..aeec0b7d6ad 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,13 @@
+2025-01-03  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	Backported from master:
+	2024-12-29  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/100358
+	PR c++/115008
+	* module.cc (elf_out::create_mapping): Fallback to ftruncate if
+	posix_fallocate fails.
+
 2024-12-23  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:

commit 1e33053542f52951d3dc1b52b8be10804c6c86f5
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Jan 5 00:22:17 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index d01f0cb4cc9..224468dbaf5 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250104
+20250105

commit 81f74b83f9634d1ad6a1d9805a95dd856bc960de
Author: Estevan Castilho (Tevo) <estevan.cps@gmail.com>
Date:   Sat Dec 28 20:37:37 2024 +0000

    Ada: Fix build for dummy s-taprop
    
    gcc/ada
            * libgnarl/s-taprop__dummy.adb: Remove use clause for
            System.Parameters.
            (Unlock): Remove Global_Lock formal parameter.
            (Write_Lock): Likewise.

diff --git a/gcc/ada/libgnarl/s-taprop__dummy.adb b/gcc/ada/libgnarl/s-taprop__dummy.adb
index 90c4cd4cf72..36a47ebd1b5 100644
--- a/gcc/ada/libgnarl/s-taprop__dummy.adb
+++ b/gcc/ada/libgnarl/s-taprop__dummy.adb
@@ -37,7 +37,6 @@
 package body System.Task_Primitives.Operations is
 
    use System.Tasking;
-   use System.Parameters;
 
    pragma Warnings (Off);
    --  Turn off warnings since so many unreferenced parameters
@@ -480,10 +479,7 @@ package body System.Task_Primitives.Operations is
       null;
    end Unlock;
 
-   procedure Unlock
-     (L           : not null access RTS_Lock;
-      Global_Lock : Boolean := False)
-   is
+   procedure Unlock (L : not null access RTS_Lock) is
    begin
       null;
    end Unlock;
@@ -522,10 +518,7 @@ package body System.Task_Primitives.Operations is
       Ceiling_Violation := False;
    end Write_Lock;
 
-   procedure Write_Lock
-     (L           : not null access RTS_Lock;
-      Global_Lock : Boolean := False)
-   is
+   procedure Write_Lock (L : not null access RTS_Lock) is
    begin
       null;
    end Write_Lock;

commit 6735679c2bd328f0a77cb022a18d613e9236f8af
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Jan 6 00:23:05 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 224468dbaf5..197d498df29 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250105
+20250106
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index c345bc37421..c0e80b0b404 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2025-01-05  Estevan Castilho (Tevo)  <estevan.cps@gmail.com>
+
+	* libgnarl/s-taprop__dummy.adb: Remove use clause for
+	System.Parameters.
+	(Unlock): Remove Global_Lock formal parameter.
+	(Write_Lock): Likewise.
+
 2024-12-16  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* gcc-interface/trans.cc (get_atomic_access): Deal specifically with

commit 5d4e9c7043cdda9651353d6c5d56a0522a397ad2
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Dec 13 20:50:44 2024 +0100

    ada: Fix small thinko in previous change to two-pass aggregate expansion
    
    We need a type tailored to the base index type to compute the length.
    
    gcc/ada/ChangeLog:
    
            * exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use the base type of
            the index type to find the type used to compute the length.

diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
index 26b279701e9..b74267b299c 100644
--- a/gcc/ada/exp_aggr.adb
+++ b/gcc/ada/exp_aggr.adb
@@ -5704,10 +5704,11 @@ package body Exp_Aggr is
          Comp_Type  : constant Entity_Id := Etype (N);
          Index_Id   : constant Entity_Id := Make_Temporary (Loc, 'I', N);
          Index_Type : constant Entity_Id := Etype (First_Index (Etype (N)));
+         Index_Base : constant Entity_Id := Base_Type (Index_Type);
          Size_Id    : constant Entity_Id := Make_Temporary (Loc, 'I', N);
          Size_Type  : constant Entity_Id :=
                         Integer_Type_For
-                          (Esize (Index_Type), Is_Unsigned_Type (Index_Type));
+                          (Esize (Index_Base), Is_Unsigned_Type (Index_Base));
          TmpE       : constant Entity_Id := Make_Temporary (Loc, 'A', N);
 
          Assoc    : Node_Id := First (Component_Associations (N));

commit f690bd46da8d6b92d3d3eb8a276b2e35b9f6034b
Author: Stafford Horne <shorne@gmail.com>
Date:   Mon Jan 6 12:12:40 2025 +0000

    or1k: add .note.GNU-stack section on linux
    
    In the OpenRISC build we get the following warning:
    
        ld: warning: __modsi3_s.o: missing .note.GNU-stack section implies executable stack
        ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
    
    Fix this by adding a .note.GNU-stack to indicate the stack does not need to be
    executable for the lib1funcs.
    
    Note, this is also needed for the upcoming glibc 2.41.
    
    libgcc/
            * config/or1k/lib1funcs.S: Add .note.GNU-stack section on linux.

diff --git a/libgcc/config/or1k/lib1funcs.S b/libgcc/config/or1k/lib1funcs.S
index 0c2ec5fc8c4..8f7266bedb9 100644
--- a/libgcc/config/or1k/lib1funcs.S
+++ b/libgcc/config/or1k/lib1funcs.S
@@ -19,6 +19,11 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
+/* An executable stack is *not* required for these functions.  */
+#ifdef __linux__
+.section .note.GNU-stack,"",%progbits
+.previous
+#endif
 
 #ifdef L__mulsi3
 	.balign 4

commit 4bd2620b24c7db0438565df32501ef770e53b687
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Jan 7 00:25:22 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 197d498df29..0bf88b7cb92 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250106
+20250107
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index c0e80b0b404..202cc035046 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use the base type of
+	the index type to find the type used to compute the length.
+
 2025-01-05  Estevan Castilho (Tevo)  <estevan.cps@gmail.com>
 
 	* libgnarl/s-taprop__dummy.adb: Remove use clause for
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 177a9108960..8b9bd0cc02d 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,7 @@
+2025-01-06  Stafford Horne  <shorne@gmail.com>
+
+	* config/or1k/lib1funcs.S: Add .note.GNU-stack section on linux.
+
 2024-09-23  Iain Sandoe  <iain@sandoe.co.uk>
 
 	Backported from master:

commit d259c9268c90e9c92fad02c388d60168023204ab
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Jan 8 00:23:45 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 0bf88b7cb92..de7be3a30f5 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250107
+20250108

commit c4d23084c250398f7b6031d8775229b01e683fe5
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Jan 9 00:23:12 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index de7be3a30f5..f8b56893859 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250108
+20250109

commit 67379c5b6ea4c87d69dea90ede51f33c9f5170c8
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Nov 6 10:21:09 2024 +0100

    store-merging: Don't use sub_byte_op_p mode for empty_ctor_p unless necessary [PR117439]
    
    encode_tree_to_bitpos uses the more expensive sub_byte_op_p mode in which
    it has to allocate a buffer and do various extra work like shifting the bits
    etc. if bitlen or bitpos aren't multiples of BITS_PER_UNIT, or if bitlen
    doesn't have corresponding integer mode.
    The last case is explained later in the comments:
      /* The native_encode_expr machinery uses TYPE_MODE to determine how many
         bytes to write.  This means it can write more than
         ROUND_UP (bitlen, BITS_PER_UNIT) / BITS_PER_UNIT bytes (for example
         write 8 bytes for a bitlen of 40).  Skip the bytes that are not within
         bitlen and zero out the bits that are not relevant as well (that may
         contain a sign bit due to sign-extension).  */
    Now, we've later added empty_ctor_p support, either {} CONSTRUCTOR
    or {CLOBBER}, which doesn't use native_encode_expr at all, just memset,
    so that case doesn't need those fancy games unless bitlen or bitpos
    aren't multiples of BITS_PER_UNIT (unlikely, but let's pretend it is
    possible).
    
    The following patch makes us use the fast path even for empty_ctor_p
    which occupy full bytes, we can just memset that in the provided buffer and
    don't need to XALLOCAVEC another buffer.
    
    This patch in itself fixes the testcase from the PR (which was about using
    huge XALLLOCAVEC), but I want to do some other changes, to be posted in a
    next patch.
    
    2024-11-06  Jakub Jelinek  <jakub@redhat.com>
    
            PR tree-optimization/117439
            * gimple-ssa-store-merging.cc (encode_tree_to_bitpos): For
            empty_ctor_p use !sub_byte_op_p even if bitlen doesn't have an
            integral mode.
    
    (cherry picked from commit aab572240a0752da74029ed9f8918e0b1628e8ba)

diff --git a/gcc/gimple-ssa-store-merging.cc b/gcc/gimple-ssa-store-merging.cc
index 7dba4a7a781..429c18c1c78 100644
--- a/gcc/gimple-ssa-store-merging.cc
+++ b/gcc/gimple-ssa-store-merging.cc
@@ -1933,14 +1933,15 @@ encode_tree_to_bitpos (tree expr, unsigned char *ptr, int bitlen, int bitpos,
 		       unsigned int total_bytes)
 {
   unsigned int first_byte = bitpos / BITS_PER_UNIT;
-  bool sub_byte_op_p = ((bitlen % BITS_PER_UNIT)
-			|| (bitpos % BITS_PER_UNIT)
-			|| !int_mode_for_size (bitlen, 0).exists ());
   bool empty_ctor_p
     = (TREE_CODE (expr) == CONSTRUCTOR
        && CONSTRUCTOR_NELTS (expr) == 0
        && TYPE_SIZE_UNIT (TREE_TYPE (expr))
-		       && tree_fits_uhwi_p (TYPE_SIZE_UNIT (TREE_TYPE (expr))));
+       && tree_fits_uhwi_p (TYPE_SIZE_UNIT (TREE_TYPE (expr))));
+  bool sub_byte_op_p = ((bitlen % BITS_PER_UNIT)
+			|| (bitpos % BITS_PER_UNIT)
+			|| (!int_mode_for_size (bitlen, 0).exists ()
+			    && !empty_ctor_p));
 
   if (!sub_byte_op_p)
     {

commit c56b465044b2bd986cdb80eff90f6807a78a3c60
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Nov 6 10:22:13 2024 +0100

    store-merging: Apply --param=store-merging-max-size= in more spots [PR117439]
    
    Store merging assumes a merged region won't be too large.  The assumption is
    e.g. in using inappropriate types in various spots (e.g. int for bit sizes
    and bit positions in a few spots, or unsigned for the total size in bytes of
    the merged region), in doing XNEWVEC for the whole total size of the merged
    region and preparing everything in there and even that XALLOCAVEC in two
    spots.  The last case is what was breaking the test below in the patch,
    64MB XALLOCAVEC is just too large, but even with that fixed I think we just
    shouldn't be merging gigabyte large merge groups.
    
    We already have --param=store-merging-max-size= parameter, right now with
    65536 bytes maximum (if needed, we could raise that limit a little bit).
    That parameter is currently used when merging two adjacent stores, if the
    size of the already merged bitregion together with the new store's bitregion
    is above that limit, we don't merge those.
    I guess initially that was sufficient, at that time a store was always
    limited to MAX_BITSIZE_MODE_ANY_INT bits.
    But later on we've added support for empty ctors ({} and even later
    {CLOBBER}) and also added another spot where we merge further stores into
    the merge group, if there is some overlap, we can merge various other stores
    in one coalesce_immediate_stores iteration.
    And, we weren't applying the --param=store-merging-max-size= parameter
    in either of those cases.  So a single store can be gigabytes long, and
    if there is some overlap, we can extend the region again to gigabytes in
    size.
    
    The following patch attempts to apply that parameter even in those cases.
    So, if testing if it should merge the merged group with info (we've already
    punted if those together are above the parameter) and some other stores,
    the first two hunks just punt if that would make the merge group too large.
    And the third hunk doesn't even add stores which are over the limit.
    
    2024-11-06  Jakub Jelinek  <jakub@redhat.com>
    
            PR tree-optimization/117439
            * gimple-ssa-store-merging.cc
            (imm_store_chain_info::coalesce_immediate_stores): Punt if merging of
            any of the additional overlapping stores would result in growing the
            bitregion size over param_store_merging_max_size.
            (pass_store_merging::process_store): Terminate all aliasing chains
            for stores with bitregion larger than param_store_merging_max_size.
    
            * g++.dg/opt/pr117439.C: New test.
    
    (cherry picked from commit 6d8764cc1f938b3edee4ac26dc5d4d8dca74dc54)

diff --git a/gcc/gimple-ssa-store-merging.cc b/gcc/gimple-ssa-store-merging.cc
index 429c18c1c78..782be1c9fbe 100644
--- a/gcc/gimple-ssa-store-merging.cc
+++ b/gcc/gimple-ssa-store-merging.cc
@@ -3245,6 +3245,10 @@ imm_store_chain_info::coalesce_immediate_stores ()
 		      unsigned int min_order = first_order;
 		      unsigned first_nonmergeable_int_order = ~0U;
 		      unsigned HOST_WIDE_INT this_end = end;
+		      unsigned HOST_WIDE_INT this_bitregion_start
+			= new_bitregion_start;
+		      unsigned HOST_WIDE_INT this_bitregion_end
+			= new_bitregion_end;
 		      k = i;
 		      first_nonmergeable_order = ~0U;
 		      for (unsigned int j = i + 1; j < len; ++j)
@@ -3268,6 +3272,19 @@ imm_store_chain_info::coalesce_immediate_stores ()
 				  k = 0;
 				  break;
 				}
+			      if (info2->bitregion_start
+				  < this_bitregion_start)
+				this_bitregion_start = info2->bitregion_start;
+			      if (info2->bitregion_end
+				  > this_bitregion_end)
+				this_bitregion_end = info2->bitregion_end;
+			      if (((this_bitregion_end - this_bitregion_start
+				    + 1) / BITS_PER_UNIT)
+				  > (unsigned) param_store_merging_max_size)
+				{
+				  k = 0;
+				  break;
+				}
 			      k = j;
 			      min_order = MIN (min_order, info2->order);
 			      this_end = MAX (this_end,
@@ -5335,7 +5352,9 @@ pass_store_merging::process_store (gimple *stmt)
       || !bitsize.is_constant (&const_bitsize)
       || !bitpos.is_constant (&const_bitpos)
       || !bitregion_start.is_constant (&const_bitregion_start)
-      || !bitregion_end.is_constant (&const_bitregion_end))
+      || !bitregion_end.is_constant (&const_bitregion_end)
+      || ((const_bitregion_end - const_bitregion_start + 1) / BITS_PER_UNIT
+	  > (unsigned) param_store_merging_max_size))
     return terminate_all_aliasing_chains (NULL, stmt);
 
   if (!ins_stmt)
diff --git a/gcc/testsuite/g++.dg/opt/pr117439.C b/gcc/testsuite/g++.dg/opt/pr117439.C
new file mode 100644
index 00000000000..fc55959be5a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr117439.C
@@ -0,0 +1,16 @@
+// PR tree-optimization/117439
+// { dg-do compile }
+// { dg-options "-O2" }
+
+struct A {
+  A () : a (0), b (0) {}
+  unsigned a, b;
+};
+struct B {
+  A c, d[0x800000];
+  B () {}
+};
+struct C {
+  A e;
+  B f;
+} g;

commit bef6c31f18e546384cf8572efae6934550e5c501
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Nov 8 13:36:05 2024 +0100

    c++: Fix ICE on constexpr virtual function [PR117317]
    
    Since C++20 virtual methods can be constexpr, and if they are
    constexpr evaluated, we choose tentative_decl_linkage for those
    defer their output and decide at_eof again.
    On the following testcases we ICE though, because if
    expand_or_defer_fn_1 decides to use tentative_decl_linkage, it
    returns true and the caller in that case cals emit_associated_thunks,
    where use_thunk which it calls asserts DECL_INTERFACE_KNOWN on the
    thunk destination, which isn't the case for tentative_decl_linkage.
    
    The following patch fixes the ICE by not emitting the thunks
    for the DECL_DEFER_OUTPUT fns just yet but waiting until at_eof
    time when we return to those.
    Note, the second testcase ICEs already since r0-110035 with -std=c++0x
    before it gets a chance to diagnose constexpr virtual method.
    
    2024-11-08  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/117317
            * semantics.cc (emit_associated_thunks): Do nothing for
            !DECL_INTERFACE_KNOWN && DECL_DEFER_OUTPUT fns.
    
            * g++.dg/cpp2a/pr117317-1.C: New test.
            * g++.dg/cpp2a/pr117317-2.C: New test.
    
    (cherry picked from commit 5ff9e21c1ec81f8288e74679547e56051e051975)

diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc
index ceeac82fa08..50e8deb9ef9 100644
--- a/gcc/cp/semantics.cc
+++ b/gcc/cp/semantics.cc
@@ -5019,7 +5019,10 @@ emit_associated_thunks (tree fn)
      enabling you to output all the thunks with the function itself.  */
   if (DECL_VIRTUAL_P (fn)
       /* Do not emit thunks for extern template instantiations.  */
-      && ! DECL_REALLY_EXTERN (fn))
+      && ! DECL_REALLY_EXTERN (fn)
+      /* Do not emit thunks for tentative decls, those will be processed
+	 again at_eof if really needed.  */
+      && (DECL_INTERFACE_KNOWN (fn) || !DECL_DEFER_OUTPUT (fn)))
     {
       tree thunk;
 
diff --git a/gcc/testsuite/g++.dg/cpp2a/pr117317-1.C b/gcc/testsuite/g++.dg/cpp2a/pr117317-1.C
new file mode 100644
index 00000000000..f3ef3849d03
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/pr117317-1.C
@@ -0,0 +1,19 @@
+// PR c++/117317
+// { dg-do compile { target c++20 } }
+
+struct C {
+  constexpr bool operator== (const C &b) const { return foo (); }
+  constexpr virtual bool foo () const = 0;
+};
+class A : public C {};
+class B : public C {};
+template <int>
+struct D : A, B
+{
+  constexpr bool operator== (const D &) const = default;
+  constexpr bool foo () const override { return true; }
+};
+struct E : D<1> {};
+constexpr E e;
+constexpr E f;
+static_assert (e == f, "");
diff --git a/gcc/testsuite/g++.dg/cpp2a/pr117317-2.C b/gcc/testsuite/g++.dg/cpp2a/pr117317-2.C
new file mode 100644
index 00000000000..44f2ec601bb
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/pr117317-2.C
@@ -0,0 +1,15 @@
+// PR c++/117317
+// { dg-do compile { target c++20 } }
+
+struct C {
+  constexpr virtual bool foo () const = 0;
+};
+struct A : public C {};
+struct B : public C {};
+template <int>
+struct D : A, B
+{
+  constexpr bool foo () const override { return true; }
+};
+constexpr D<0> d;
+static_assert (d.foo (), "");

commit 04d7d02d5842992ed88955211bf1d6299f38b877
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Nov 9 16:45:44 2024 +0100

    m2: Fix up dependencies some more
    
    Every now and then my x86_64-linux bootstrap fails due to missing
    dependencies somewhere in m2, usually during stage3.  I'm using
    make -j32 and run 2 bootstraps concurrently (x86_64-linux and i686-linux)
    on the same box.
    
    Last night the same happened to me again,
    with the first error
    In file included from ./tm.h:29,
                     from ../../gcc/backend.h:28,
                     from ../../gcc/m2/gm2-gcc/gcc-consolidation.h:27,
                     from m2/gm2-compiler-boot/M2AsmUtil.c:26:
    ../../gcc/config/i386/i386.h:2484:10: fatal error: insn-attr-common.h: No such file or directory
     2484 | #include "insn-attr-common.h"
          |          ^~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make[3]: *** [../../gcc/m2/Make-lang.in:1576: m2/gm2-compiler-boot/M2AsmUtil.o] Error 1
    make[3]: *** Waiting for unfinished jobs....
    
    Now, gcc/Makefile.in has a general rule:
     # In order for parallel make to really start compiling the expensive
     # objects from $(OBJS) as early as possible, build all their
     # prerequisites strictly before all objects.
     $(ALL_HOST_OBJS) : | $(generated_files)
    which ensures that everything that might depend on the generated files
    waits for those to be generated.
    The above error clearly shows that such waiting didn't happen for
    m2/gm2-compiler-boot/M2AsmUtil.o and some others.
    ALL_HOST_OBJS includes $(ALL_HOST_FRONTEND_OBJS),
    where the latter is
    ALL_HOST_FRONTEND_OBJS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS))
    m2_OBJS already includes various *.o files, for all those we wait until
    the generated files are generated.  Though, seems
    cc1gm2 depends on m2/stage1/cc1gm2 (which is just copied there),
    and that depends on m2/gm2-compiler-boot/m2flex.o,
    $(GM2_C_OBJS) and m2/gm2-gcc/rtegraph.o already included in m2_OBJS,
    but also on
    $(GM2_LIBS_BOOT) $(MC_LIBS)
    where
    MC_LIBS=m2/mc-boot-ch/Glibc.o m2/mc-boot-ch/Gmcrts.o
    GM2_LIBS_BOOT     = m2/gm2-compiler-boot/gm2.a \
                        m2/gm2-libs-boot/libgm2.a \
                        $(GM2-BOOT-O)
    GM2-BOOT-O isn't defined, and the 2 libraries depend on
    $(BUILD-LIBS-BOOT) $(BUILD-COMPILER-BOOT)
    
    So, the following patch adds those to m2_OBJS.
    
    I'm not sure if something further is needed, like some objects
    used to build the helper programs, mc and whatever else is needed,
    I guess it depends on if they use or can use say tm.h or similar
    headers which depend on the generated headers.
    
    2024-11-09  Jakub Jelinek  <jakub@redhat.com>
    
    gcc/m2/
            * Make-lang.in (m2_OBJS): Add $(BUILD-LIBS-BOOT),
            $(BUILD-COMPILER-BOOT) and $(MC_LIBS).
    
    (cherry picked from commit 44682fbead3bba7345e0a575a8a680d10e75ae48)

diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index 15427021438..e2a152f78d7 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -580,7 +580,8 @@ GM2_LIBS_BOOT     = m2/gm2-compiler-boot/gm2.a \
                     $(GM2-BOOT-O)
 
 m2_OBJS = $(GM2_C_OBJS) m2/gm2-gcc/rtegraph.o \
-	m2/gm2-compiler-boot/m2flex.o
+	m2/gm2-compiler-boot/m2flex.o \
+	$(BUILD-LIBS-BOOT) $(BUILD-COMPILER-BOOT) $(MC_LIBS)
 
 cc1gm2$(exeext): m2/stage1/cc1gm2$(exeext) $(m2.prev)
 	cp -p $< $@

commit e3b2c176d3e9f721185532a4a393814316172410
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Nov 19 10:25:57 2024 +0100

    bitintlower: Handle PAREN_EXPR [PR117459]
    
    The following patch handles PAREN_EXPR in bitint lowering, and handles it
    as an optimization barrier, so that temporary arithmetics from PAREN_EXPR
    isn't mixed with temporary arithmetics from outside of the PAREN_EXPR.
    
    2024-11-19  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/117459
            * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt,
            bitint_large_huge::lower_stmt): Handle PAREN_EXPR.
    
            * gcc.dg/torture/bitint-74.c: New test.
    
    (cherry picked from commit 600cab162c561c3061317c998972b0ed1b681d5b)

diff --git a/gcc/gimple-lower-bitint.cc b/gcc/gimple-lower-bitint.cc
index 58deaf253e9..e4e628b786b 100644
--- a/gcc/gimple-lower-bitint.cc
+++ b/gcc/gimple-lower-bitint.cc
@@ -2142,6 +2142,7 @@ bitint_large_huge::handle_stmt (gimple *stmt, tree idx)
 						idx),
 				gimple_assign_rhs2 (stmt), idx);
 	case SSA_NAME:
+	case PAREN_EXPR:
 	case INTEGER_CST:
 	  return handle_operand (gimple_assign_rhs1 (stmt), idx);
 	CASE_CONVERT:
@@ -5606,7 +5607,9 @@ bitint_large_huge::lower_stmt (gimple *stmt)
       || gimple_store_p (stmt)
       || gimple_assign_load_p (stmt)
       || eq_p
-      || mergeable_cast_p)
+      || mergeable_cast_p
+      || (is_gimple_assign (stmt)
+	  && gimple_assign_rhs_code (stmt) == PAREN_EXPR))
     {
       lhs = lower_mergeable_stmt (stmt, cmp_code, cmp_op1, cmp_op2);
       if (!eq_p)
diff --git a/gcc/testsuite/gcc.dg/torture/bitint-74.c b/gcc/testsuite/gcc.dg/torture/bitint-74.c
new file mode 100644
index 00000000000..f9abe236765
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/bitint-74.c
@@ -0,0 +1,27 @@
+/* PR middle-end/117459 */
+/* { dg-do run { target bitint } } */
+/* { dg-options "-std=c23" } */
+/* { dg-skip-if "" { ! run_expensive_tests }  { "*" } { "-O0" "-O2" } } */
+/* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
+
+#if __BITINT_MAXWIDTH__ >= 255
+_BitInt(255) b, c, d;
+
+_BitInt(255)
+foo ()
+{
+  return __builtin_assoc_barrier (b + c) + d;
+}
+#endif
+
+int
+main ()
+{
+#if __BITINT_MAXWIDTH__ >= 255
+  b = 3162082328713384445049140446737468449630746270013462291267283007210433157591wb;
+  c = 12998515555477887328635550261966833804427562203752161174274777867442907371807wb;
+  d = 5016523343681809792116154509287659112784399275423992541459788346980443294044wb;
+  if (foo () != 21177121227873081565800845217991961366842707749189616007001849221633783823442wb)
+    __builtin_abort ();
+#endif
+}

commit 98eabdaddc660906f59b8b3db53703588f72f39f
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Nov 19 10:26:44 2024 +0100

    expand: Fix up ICE on VCE from _Complex types to _BitInt [PR117458]
    
    extract_bit_field can't handle extraction of non-mode precision
    from complex mode operands which don't live in memory, e.g. gen_lowpart
    crashes on those.
    The following patch in that case defers the extract_bit_field call
    until op0 is forced into memory.
    
    2024-11-19  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/117458
            * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
            call extract_bit_field if op0 has complex mode and isn't a MEM,
            instead first force op0 into memory and then call extract_bit_field.
    
            * gcc.dg/bitint-116.c: New test.
    
    (cherry picked from commit 694613a7f9adfa9c87e733adc63839c8801f2b5c)

diff --git a/gcc/expr.cc b/gcc/expr.cc
index 414b7fda754..034d036b188 100644
--- a/gcc/expr.cc
+++ b/gcc/expr.cc
@@ -12464,7 +12464,9 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode,
 	op0 = convert_modes (mode, GET_MODE (op0), op0,
 			     TYPE_UNSIGNED (TREE_TYPE (treeop0)));
       /* If the output type is a bit-field type, do an extraction.  */
-      else if (reduce_bit_field && mode != BLKmode)
+      else if (reduce_bit_field
+	       && mode != BLKmode
+	       && (MEM_P (op0) || !COMPLEX_MODE_P (GET_MODE (op0))))
 	return extract_bit_field (op0, TYPE_PRECISION (type), 0,
 				  TYPE_UNSIGNED (type), NULL_RTX,
 				  mode, mode, false, NULL);
@@ -12488,6 +12490,11 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode,
 
 	  emit_move_insn (target, op0);
 	  op0 = target;
+
+	  if (reduce_bit_field && mode != BLKmode)
+	    return extract_bit_field (op0, TYPE_PRECISION (type), 0,
+				      TYPE_UNSIGNED (type), NULL_RTX,
+				      mode, mode, false, NULL);
 	}
 
       /* If OP0 is (now) a MEM, we need to deal with alignment issues.  If the
diff --git a/gcc/testsuite/gcc.dg/bitint-116.c b/gcc/testsuite/gcc.dg/bitint-116.c
new file mode 100644
index 00000000000..9af5d723d05
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bitint-116.c
@@ -0,0 +1,11 @@
+/* PR middle-end/117458 */
+/* { dg-do compile { target bitint } } */
+/* { dg-options "-std=c23 -O2" } */
+
+typedef _BitInt(33) B __attribute__((may_alias));
+
+_BitInt(33)
+foo (_Complex float x)
+{
+  return *(B *)&x;
+}

commit 6d0503f87898617756bd423b3fe9d14b2d4e76c6
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Nov 19 20:36:00 2024 +0100

    c-family: Fix ICE with __sync_*_and_* on _BitInt [PR117641]
    
    Only __atomic_* builtins are meant to work on arbitrary _BitInt types
    (if not supported in hw we emit a CAS loop which uses __atomic_load_*
    in that case), the compatibility __sync_* builtins work only if there
    is a corresponding normal integral type (for _BitInt on 32-bit ARM
    we'll need to limit even that to no padding, because the padding bits
    are well defined there and the hw or libatomic __sync_* APIs don't
    guarantee that), IMHO people shouldn't mix very old APIs with very
    new ones and I don't see a replacement for the __atomic_load_*.
    
    For size > 16 that is how it already correctly behaves,
    in the hunk shown in the patch it is immediately followed by
    
      if (fetch && !orig_format && TREE_CODE (type) == BITINT_TYPE)
        return -1;
    
    which returns -1 for the __atomic_* builtins (i.e. !orig_format),
    which causes caller to use atomic_bitint_fetch_using_cas_loop,
    and otherwise does diagnostic and return 0 (which causes caller
    to punt).  But for size == 16 if TImode isn't suipported (i.e.
    mostly 32-bit arches), we return (correctly) -1 if !orig_format,
    so again force atomic_bitint_fetch_using_cas_loop on those arches
    for e.g. _BitInt(115), but for orig_format the function returns
    16 as if it could do 16 byte __sync_*_and_* (which it can't
    because TImode isn't supported; for 16 byte it can only do
    (perhaps using libatomic) normal compare and swap).  So we need
    to error and return 0, rather than return 16.
    
    The following patch ensures that.
    
    2024-11-19  Jakub Jelinek  <jakub@redhat.com>
    
            PR c/117641
            * c-common.cc (sync_resolve_size): For size == 16 fetch of
            BITINT_TYPE if TImode isn't supported scalar mode diagnose
            and return 0 if orig_format instead of returning 16.
    
            * gcc.dg/bitint-115.c: New test.
    
    (cherry picked from commit 8663fc1c2826c86455e51e58203cb95b2b1407e3)

diff --git a/gcc/c-family/c-common.cc b/gcc/c-family/c-common.cc
index aae998d0f73..661115bf1db 100644
--- a/gcc/c-family/c-common.cc
+++ b/gcc/c-family/c-common.cc
@@ -7384,10 +7384,13 @@ sync_resolve_size (tree function, vec<tree, va_gc> *params, bool fetch,
   size = tree_to_uhwi (TYPE_SIZE_UNIT (type));
   if (size == 16
       && fetch
-      && !orig_format
       && TREE_CODE (type) == BITINT_TYPE
       && !targetm.scalar_mode_supported_p (TImode))
-    return -1;
+    {
+      if (!orig_format)
+	return -1;
+      goto incompatible;
+    }
 
   if (size == 1 || size == 2 || size == 4 || size == 8 || size == 16)
     return size;
diff --git a/gcc/testsuite/gcc.dg/bitint-115.c b/gcc/testsuite/gcc.dg/bitint-115.c
new file mode 100644
index 00000000000..700fd6c5b51
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bitint-115.c
@@ -0,0 +1,9 @@
+/* PR c/117641 */
+/* { dg-do compile { target bitint575 } } */
+/* { dg-options "-std=c23" } */
+
+void
+foo (_BitInt(128) *b)
+{
+  __sync_fetch_and_add (b, 1);	/* { dg-error "incompatible" "" { target { ! int128 } } } */
+}

commit 3190d6263c90f8e859b738a9b39f5e650a4a3a16
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Nov 21 09:38:01 2024 +0100

    phiopt: Fix a pasto in spaceship_replacement [PR117612]
    
    When working on the PR117612 fix, I've noticed a pasto in
    tree-ssa-phiopt.cc (spaceship_replacement).
    The code is
          if (absu_hwi (tree_to_shwi (arg2)) != 1)
            return false;
          if (e1->flags & EDGE_TRUE_VALUE)
            {
              if (tree_to_shwi (arg0) != 2
                  || absu_hwi (tree_to_shwi (arg1)) != 1
                  || wi::to_widest (arg1) == wi::to_widest (arg2))
                return false;
            }
          else if (tree_to_shwi (arg1) != 2
                   || absu_hwi (tree_to_shwi (arg0)) != 1
                   || wi::to_widest (arg0) == wi::to_widest (arg1))
            return false;
    where arg{0,1,2,3} are PHI args and wants to ensure that if e1 is a
    true edge, then arg0 is 2 and one of arg{1,2} is -1 and one is 1,
    otherwise arg1 is 2 and one of arg{0,2} is -1 and one is 1.
    But due to pasto in the latte case doesn't verify that arg0
    is different from arg2, it could be both -1 or both 1 and we wouldn't
    punt.  The wi::to_widest (arg0) == wi::to_widest (arg1) test
    is always false when we've made sure in the earlier conditions that
    arg1 is 2 and arg0 is -1 or 1, so never 2.
    
    2024-11-21  Jakub Jelinek  <jakub@redhat.com>
    
            PR tree-optimization/94589
            PR tree-optimization/117612
            * tree-ssa-phiopt.cc (spaceship_replacement): Fix up
            a pasto in check when arg1 is 2.
    
    (cherry picked from commit ca7430f145f5c7960f67ec77f585f3a2b58c7d10)

diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc
index 150e58e39e3..8cb1413b49a 100644
--- a/gcc/tree-ssa-phiopt.cc
+++ b/gcc/tree-ssa-phiopt.cc
@@ -2558,7 +2558,7 @@ spaceship_replacement (basic_block cond_bb, basic_block middle_bb,
 	}
       else if (tree_to_shwi (arg1) != 2
 	       || absu_hwi (tree_to_shwi (arg0)) != 1
-	       || wi::to_widest (arg0) == wi::to_widest (arg1))
+	       || wi::to_widest (arg0) == wi::to_widest (arg2))
 	return false;
       switch (cmp2)
 	{

commit 6b417daf0c4c486a754ee99ec07c85aa5d55c610
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Nov 22 19:47:52 2024 +0100

    c-family: Yet another fix for _BitInt & __sync_* builtins [PR117641]
    
    Sorry, the last patch only partially fixed the __sync_* ICEs with
    _BitInt(128) on ia32.
    Even for !fetch we need to error out and return 0.  I was afraid of
    APIs like __atomic_exchange/__atomic_compare_exchange, those obviously
    need to be supported even on _BitInt(128) on ia32, but they actually never
    sync_resolve_size, they are handled by adding the size argument and using
    the library version much earlier.
    For fetch && !orig_format (i.e. __atomic_fetch_* etc.) we need to return -1
    so that we handle it with a manualy __atomic_load +
    __atomic_compare_exchange loop in the caller, all other cases should
    be rejected.
    
    2024-11-22  Jakub Jelinek  <jakub@redhat.com>
    
            PR c/117641
            * c-common.cc (sync_resolve_size): For size 16 with _BitInt
            on targets where TImode isn't supported, use goto incompatible if
            !fetch.
    
            * gcc.dg/bitint-117.c: New test.
    
    (cherry picked from commit 44984f7f7523f136085ba60fd107ba8309d4115b)

diff --git a/gcc/c-family/c-common.cc b/gcc/c-family/c-common.cc
index 661115bf1db..d5b28efd6db 100644
--- a/gcc/c-family/c-common.cc
+++ b/gcc/c-family/c-common.cc
@@ -7383,11 +7383,10 @@ sync_resolve_size (tree function, vec<tree, va_gc> *params, bool fetch,
 
   size = tree_to_uhwi (TYPE_SIZE_UNIT (type));
   if (size == 16
-      && fetch
       && TREE_CODE (type) == BITINT_TYPE
       && !targetm.scalar_mode_supported_p (TImode))
     {
-      if (!orig_format)
+      if (fetch && !orig_format)
 	return -1;
       goto incompatible;
     }
diff --git a/gcc/testsuite/gcc.dg/bitint-117.c b/gcc/testsuite/gcc.dg/bitint-117.c
new file mode 100644
index 00000000000..16a76165d1e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bitint-117.c
@@ -0,0 +1,13 @@
+/* PR c/117641 */
+/* { dg-do compile { target bitint575 } } */
+/* { dg-options "-std=c23" } */
+
+void
+foo (_BitInt(128) *b)
+{
+  __sync_add_and_fetch (b, 1);			/* { dg-error "incompatible" "" { target { ! int128 } } } */
+  __sync_val_compare_and_swap (b, 0, 1);	/* { dg-error "incompatible" "" { target { ! int128 } } } */
+  __sync_bool_compare_and_swap (b, 0, 1);	/* { dg-error "incompatible" "" { target { ! int128 } } } */
+  __sync_lock_test_and_set (b, 1);		/* { dg-error "incompatible" "" { target { ! int128 } } } */
+  __sync_lock_release (b);			/* { dg-error "incompatible" "" { target { ! int128 } } } */
+}

commit 59eec2ee71b851e7470b414d1c3b5e59641ac1fc
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Nov 26 09:45:21 2024 +0100

    builtins: Fix up DFP ICEs on __builtin_is{inf,finite,normal} [PR43374]
    
    __builtin_is{inf,finite,normal} builtins ICE on _Decimal{32,64,128,64x}
    operands unless those operands are constant.
    
    The problem is that we fold the builtins to comparisons with the largest
    finite number, but
    a) get_max_float was only handling binary floats
    b) real_from_string again assumes binary float
    and so we were ICEing in the build_real called after the two calls.
    
    This patch adds decimal handling into get_max_float (well, moves it
    from c-cppbuiltin.cc which was printing those for __DEC{32,64,128}_MAX__
    macros) and uses real_from_string3 (perhaps it is time to rename it
    to just real_from_string now that we can use function overloading)
    so that it handles both binary and decimal floats.
    
    2024-11-26  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/43374
    gcc/
            * real.cc (get_max_float): Handle decimal float.
            * builtins.cc (fold_builtin_interclass_mathfn): Use
            real_from_string3 rather than real_from_string.  Use
            "1E%d" format string rather than "0x1p%d" for decimal
            float minimum.
    gcc/c-family/
            * c-cppbuiltin.cc (builtin_define_decimal_float_constants): Use
            get_max_float.
    gcc/testsuite/
            * gcc.dg/dfp/pr43374.c: New test.
    
    (cherry picked from commit f39e6b4f5cd4e5362cf4b1004a591df2c8b00304)

diff --git a/gcc/builtins.cc b/gcc/builtins.cc
index 7c1497561f7..d9d3eb4c19e 100644
--- a/gcc/builtins.cc
+++ b/gcc/builtins.cc
@@ -9576,7 +9576,7 @@ fold_builtin_interclass_mathfn (location_t loc, tree fndecl, tree arg)
 	    arg = fold_build1_loc (loc, NOP_EXPR, type, arg);
 	  }
 	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
-	real_from_string (&r, buf);
+	real_from_string3 (&r, buf, mode);
 	result = build_call_expr (isgr_fn, 2,
 				  fold_build1_loc (loc, ABS_EXPR, type, arg),
 				  build_real (type, r));
@@ -9600,7 +9600,7 @@ fold_builtin_interclass_mathfn (location_t loc, tree fndecl, tree arg)
 	    arg = fold_build1_loc (loc, NOP_EXPR, type, arg);
 	  }
 	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
-	real_from_string (&r, buf);
+	real_from_string3 (&r, buf, mode);
 	result = build_call_expr (isle_fn, 2,
 				  fold_build1_loc (loc, ABS_EXPR, type, arg),
 				  build_real (type, r));
@@ -9639,9 +9639,12 @@ fold_builtin_interclass_mathfn (location_t loc, tree fndecl, tree arg)
 	arg = fold_build1_loc (loc, ABS_EXPR, type, arg);
 
 	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
-	real_from_string (&rmax, buf);
-	sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (orig_mode)->emin - 1);
-	real_from_string (&rmin, buf);
+	real_from_string3 (&rmax, buf, mode);
+	if (DECIMAL_FLOAT_MODE_P (mode))
+	  sprintf (buf, "1E%d", REAL_MODE_FORMAT (orig_mode)->emin - 1);
+	else
+	  sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (orig_mode)->emin - 1);
+	real_from_string3 (&rmin, buf, orig_mode);
 	max_exp = build_real (type, rmax);
 	min_exp = build_real (type, rmin);
 
diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
index d4aadc7666b..79e4abd0152 100644
--- a/gcc/c-family/c-cppbuiltin.cc
+++ b/gcc/c-family/c-cppbuiltin.cc
@@ -357,17 +357,8 @@ builtin_define_decimal_float_constants (const char *name_prefix,
 
   /* Compute the maximum representable value.  */
   sprintf (name, "__%s_MAX__", name_prefix);
-  p = buf;
-  for (digits = fmt->p; digits; digits--)
-    {
-      *p++ = '9';
-      if (digits == fmt->p)
-	*p++ = '.';
-    }
-  *p = 0;
-  /* fmt->p plus 1, to account for the decimal point and fmt->emax
-     minus 1 because the digits are nines, not 1.0.  */
-  sprintf (&buf[fmt->p + 1], "E%d%s", fmt->emax - 1, suffix);
+  get_max_float (fmt, buf, sizeof (buf) - strlen (suffix), false);
+  strcat (buf, suffix);
   builtin_define_with_value (name, buf, 0);
 
   /* Compute epsilon (the difference between 1 and least value greater
diff --git a/gcc/real.cc b/gcc/real.cc
index 2c682b1809d..4a6a6e76a99 100644
--- a/gcc/real.cc
+++ b/gcc/real.cc
@@ -5438,6 +5438,22 @@ void
 get_max_float (const struct real_format *fmt, char *buf, size_t len,
 	       bool norm_max)
 {
+  if (fmt->b == 10)
+    {
+      char *p = buf;
+      for (int i = fmt->p; i; i--)
+	{
+	  *p++ = '9';
+	  if (i == fmt->p)
+	    *p++ = '.';
+	}
+      /* fmt->p plus 1, to account for the decimal point and fmt->emax
+	 minus 1 because the digits are nines, not 1.0.  */
+      sprintf (buf + fmt->p + 1, "E%d", fmt->emax - 1);
+      gcc_assert (strlen (buf) < len);
+      return;
+    }
+
   int i, n;
   char *p;
   bool is_ibm_extended = fmt->pnan < fmt->p;
diff --git a/gcc/testsuite/gcc.dg/dfp/pr43374.c b/gcc/testsuite/gcc.dg/dfp/pr43374.c
new file mode 100644
index 00000000000..83f3dca1c1f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/dfp/pr43374.c
@@ -0,0 +1,56 @@
+/* PR middle-end/43374 */
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+__attribute__((noipa)) int
+foo (_Decimal32 x)
+{
+  return __builtin_isinf (x);
+}
+
+__attribute__((noipa)) int
+bar (_Decimal64 x)
+{
+  return __builtin_isfinite (x);
+}
+
+__attribute__((noipa)) int
+baz (_Decimal128 x)
+{
+  return __builtin_isnormal (x);
+}
+
+int
+main ()
+{
+  if (!foo (__builtin_infd32 ())
+      || !foo (-__builtin_infd32 ())
+      || foo (__builtin_nand32 (""))
+      || foo (9.999999E96DF)
+      || foo (-1E-95DF)
+      || foo (0.999999E-95DF)
+      || foo (-0.000001E-95DF)
+      || foo (0.000DF)
+      || foo (-0.00000DF))
+    __builtin_abort ();
+  if (bar (__builtin_infd64 ())
+      || bar (-__builtin_infd64 ())
+      || bar (__builtin_nand64 (""))
+      || !bar (9.999999999999999E384DD)
+      || !bar (-1E-383DD)
+      || !bar (0.999999999999999E-383DD)
+      || !bar (-0.000000000000001E-383DD)
+      || !bar (0.000DD)
+      || !bar (-0.0000000000DD))
+    __builtin_abort ();
+  if (baz (__builtin_infd128 ())
+      || baz (-__builtin_infd128 ())
+      || baz (__builtin_nand128 (""))
+      || !baz (9.999999999999999999999999999999999E6144DL)
+      || !baz (-1E-6143DL)
+      || baz (0.999999999999999999999999999999999E-6143DL)
+      || baz (-0.000000000000000000000000000000001E-6143DL)
+      || baz (0.000DL)
+      || baz (-0.0000000000000000000000DL))
+    __builtin_abort ();
+}

commit 54c381d5a8617fa0d13e3bfc9d9802eb5a1f6234
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Nov 26 09:46:51 2024 +0100

    builtins: Fix up DFP ICEs on __builtin_fpclassify [PR102674]
    
    This patch is similar to the one I've just posted, __builtin_fpclassify also
    needs to print decimal float minimum differently and use real_from_string3.
    Plus I've done some formatting fixes.
    
    2024-11-26  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/102674
            * builtins.cc (fold_builtin_fpclassify): Use real_from_string3 rather
            than real_from_string.  Use "1E%d" format string rather than "0x1p%d"
            for decimal float minimum.  Formatting fixes.
    
            * gcc.dg/dfp/pr102674.c: New test.
    
    (cherry picked from commit 5bb36d832c955e575bd458a02f3c6c5b28564aed)

diff --git a/gcc/builtins.cc b/gcc/builtins.cc
index d9d3eb4c19e..77e7ade7a74 100644
--- a/gcc/builtins.cc
+++ b/gcc/builtins.cc
@@ -9833,28 +9833,33 @@ fold_builtin_fpclassify (location_t loc, tree *args, int nargs)
 	     (x == 0 ? FP_ZERO : FP_SUBNORMAL))).  */
 
   tmp = fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg,
-		     build_real (type, dconst0));
+			 build_real (type, dconst0));
   res = fold_build3_loc (loc, COND_EXPR, integer_type_node,
-		     tmp, fp_zero, fp_subnormal);
+			 tmp, fp_zero, fp_subnormal);
 
-  sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (mode)->emin - 1);
-  real_from_string (&r, buf);
+  if (DECIMAL_FLOAT_MODE_P (mode))
+    sprintf (buf, "1E%d", REAL_MODE_FORMAT (mode)->emin - 1);
+  else
+    sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (mode)->emin - 1);
+  real_from_string3 (&r, buf, mode);
   tmp = fold_build2_loc (loc, GE_EXPR, integer_type_node,
-		     arg, build_real (type, r));
-  res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp, fp_normal, res);
+			 arg, build_real (type, r));
+  res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
+			 fp_normal, res);
 
   if (tree_expr_maybe_infinite_p (arg))
     {
       tmp = fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg,
-			 build_real (type, dconstinf));
+			     build_real (type, dconstinf));
       res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
-			 fp_infinite, res);
+			     fp_infinite, res);
     }
 
   if (tree_expr_maybe_nan_p (arg))
     {
       tmp = fold_build2_loc (loc, ORDERED_EXPR, integer_type_node, arg, arg);
-      res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp, res, fp_nan);
+      res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
+			     res, fp_nan);
     }
 
   return res;
diff --git a/gcc/testsuite/gcc.dg/dfp/pr102674.c b/gcc/testsuite/gcc.dg/dfp/pr102674.c
new file mode 100644
index 00000000000..c67ecf5ce71
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/dfp/pr102674.c
@@ -0,0 +1,65 @@
+/* PR middle-end/102674 */
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+#define FP_NAN 0
+#define FP_INFINITE 1
+#define FP_ZERO 2
+#define FP_SUBNORMAL 3
+#define FP_NORMAL 4
+
+__attribute__((noipa)) int
+foo (_Decimal32 x)
+{
+  return __builtin_fpclassify (FP_NAN, FP_INFINITE, FP_NORMAL,
+			       FP_SUBNORMAL, FP_ZERO, x);
+}
+
+__attribute__((noipa)) int
+bar (_Decimal64 x)
+{
+  return __builtin_fpclassify (FP_NAN, FP_INFINITE, FP_NORMAL,
+			       FP_SUBNORMAL, FP_ZERO, x);
+}
+
+__attribute__((noipa)) int
+baz (_Decimal128 x)
+{
+  return __builtin_fpclassify (FP_NAN, FP_INFINITE, FP_NORMAL,
+			       FP_SUBNORMAL, FP_ZERO, x);
+}
+
+int
+main ()
+{
+  if (foo (__builtin_infd32 ()) != FP_INFINITE
+      || foo (-__builtin_infd32 ()) != FP_INFINITE
+      || foo (__builtin_nand32 ("")) != FP_NAN
+      || foo (9.999999E96DF) != FP_NORMAL
+      || foo (-1E-95DF) != FP_NORMAL
+      || foo (0.999999E-95DF) != FP_SUBNORMAL
+      || foo (-0.000001E-95DF) != FP_SUBNORMAL
+      || foo (0.000DF) != FP_ZERO
+      || foo (-0.00000DF) != FP_ZERO)
+    __builtin_abort ();
+  if (bar (__builtin_infd64 ()) != FP_INFINITE
+      || bar (-__builtin_infd64 ()) != FP_INFINITE
+      || bar (__builtin_nand64 ("")) != FP_NAN
+      || bar (9.999999999999999E384DD) != FP_NORMAL
+      || bar (-1E-383DD) != FP_NORMAL
+      || bar (0.999999999999999E-383DD) != FP_SUBNORMAL
+      || bar (-0.000000000000001E-383DD) != FP_SUBNORMAL
+      || bar (0.000DD) != FP_ZERO
+      || bar (-0.0000000000DD) != FP_ZERO)
+    __builtin_abort ();
+  if (baz (__builtin_infd128 ()) != FP_INFINITE
+      || baz (-__builtin_infd128 ()) != FP_INFINITE
+      || baz (__builtin_nand128 ("")) != FP_NAN
+      || baz (9.999999999999999999999999999999999E6144DL) != FP_NORMAL
+      || baz (-1E-6143DL) != FP_NORMAL
+      || baz (0.999999999999999999999999999999999E-6143DL) != FP_SUBNORMAL
+      || baz (-0.000000000000000000000000000000001E-6143DL) != FP_SUBNORMAL
+      || baz (0.000DL) != FP_ZERO
+      || baz (-0.0000000000000000000000DL) != FP_ZERO)
+    __builtin_abort ();
+}

commit 0183fb1cef5e382af2a5c0dc3c59efbcd32db6ab
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Nov 27 17:29:28 2024 +0100

    c: Fix sizeof error recovery [PR117745]
    
    Compilation of the following testcase hangs forever after emitting first
    error.  The problem is that in one place we just return error_mark_node
    directly rather than going through c_expr_sizeof_expr or c_expr_sizeof_type.
    The parsing of the expression could have called record_maybe_used_decl
    though, but nothing calls pop_maybe_used which needs to be called after
    parsing of every sizeof/typeof, successful or not.
    At the end of the toplevel declaration we free the parser_obstack and in
    another function record_maybe_used_decl is called again and due to the
    missing pop_maybe_unused we end up with a cycle in the chain.
    
    The following patch fixes it by just setting error and goto to the
        sizeof_expr:
          c_inhibit_evaluation_warnings--;
          in_sizeof--;
          mark_exp_read (expr.value);
          if (TREE_CODE (expr.value) == COMPONENT_REF
              && DECL_C_BIT_FIELD (TREE_OPERAND (expr.value, 1)))
            error_at (expr_loc, "%<sizeof%> applied to a bit-field");
          result = c_expr_sizeof_expr (expr_loc, expr);
    where c_expr_sizeof_expr will do:
      struct c_expr ret;
      if (expr.value == error_mark_node)
        {
          ret.value = error_mark_node;
          ret.original_code = ERROR_MARK;
          ret.original_type = NULL;
          ret.m_decimal = 0;
          pop_maybe_used (false);
        }
    ...
      return ret;
    which is exactly what the old code did manually except for the missing
    pop_maybe_used call.  mark_exp_read does nothing on error_mark_node and
    error_mark_node doesn't have COMPONENT_REF tree_code.
    
    2024-11-27  Jakub Jelinek  <jakub@redhat.com>
    
            PR c/117745
            * c-parser.cc (c_parser_sizeof_expression): If type_name is NULL,
            just expr.set_error () and goto sizeof_expr instead of doing error
            recovery manually.
    
            * gcc.dg/pr117745.c: New test.
    
    (cherry picked from commit 958f0025f41d8bd9812e4da91a72b1ad79496e5b)

diff --git a/gcc/c/c-parser.cc b/gcc/c/c-parser.cc
index 5fcfff7134a..cd2e089fe38 100644
--- a/gcc/c/c-parser.cc
+++ b/gcc/c/c-parser.cc
@@ -9891,13 +9891,11 @@ c_parser_sizeof_expression (c_parser *parser)
       finish = parser->tokens_buf[0].location;
       if (type_name == NULL)
 	{
-	  struct c_expr ret;
-	  c_inhibit_evaluation_warnings--;
-	  in_sizeof--;
-	  ret.set_error ();
-	  ret.original_code = ERROR_MARK;
-	  ret.original_type = NULL;
-	  return ret;
+	  /* Let c_expr_sizeof_expr call pop_maybe_used and fill in c_expr
+	     for parsing error; the parsing of the expression could have
+	     called record_maybe_used_decl.  */
+	  expr.set_error ();
+	  goto sizeof_expr;
 	}
       if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
 	{
diff --git a/gcc/testsuite/gcc.dg/pr117745.c b/gcc/testsuite/gcc.dg/pr117745.c
new file mode 100644
index 00000000000..3485f7c9b1a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr117745.c
@@ -0,0 +1,8 @@
+/* PR c/117745 */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+static int foo (void);
+void bar (void) { sizeof (int [0 ? foo () : 1); }	/* { dg-error "expected" } */
+static int baz (void);
+void qux (void) { sizeof (sizeof (int[baz ()])); }

commit 448f84a49caba91a1eb159197afb19dbf662ce15
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Nov 28 10:23:47 2024 +0100

    builtins: Handle BITINT_TYPE in __builtin_iseqsig folding [PR117802]
    
    In check_builtin_function_arguments in the _BitInt patchset I've changed
    INTEGER_TYPE tests to INTEGER_TYPE or BITINT_TYPE, but haven't done the
    same in fold_builtin_iseqsig, which now ICEs because of that.
    
    The following patch fixes that.
    
    BTW, that TYPE_PRECISION (type0) >= TYPE_PRECISION (type1) test
    for REAL_TYPE vs. REAL_TYPE looks pretty random and dangerous, I think
    it would be useful to handle this builtin also in the C and C++ FEs,
    if both arguments have REAL_TYPE, use the FE specific routine to decide
    which types to use and error if a comparison between types would be
    erroneous (e.g. complain about _Decimal* vs. float/double/long
    double/_Float*, pick up the preferred type, complain about
    __ibm128 vs. _Float128 in C++, etc.).
    But the FEs can just promote one argument to the other in that case
    and keep fold_builtin_iseqsig as is for say Fortran and other FEs.
    
    2024-11-28  Jakub Jelinek  <jakub@redhat.com>
    
            PR c/117802
            * builtins.cc (fold_builtin_iseqsig): Handle BITINT_TYPE like
            INTEGER_TYPE.
    
            * gcc.dg/builtin-iseqsig-1.c: New test.
            * gcc.dg/bitint-118.c: New test.
    
    (cherry picked from commit 88aeea14c23a5d066a635ffb4f1d2943fddcf0bd)

diff --git a/gcc/builtins.cc b/gcc/builtins.cc
index 77e7ade7a74..0788f58f637 100644
--- a/gcc/builtins.cc
+++ b/gcc/builtins.cc
@@ -9941,9 +9941,11 @@ fold_builtin_iseqsig (location_t loc, tree arg0, tree arg1)
     /* Choose the wider of two real types.  */
     cmp_type = TYPE_PRECISION (type0) >= TYPE_PRECISION (type1)
       ? type0 : type1;
-  else if (code0 == REAL_TYPE && code1 == INTEGER_TYPE)
+  else if (code0 == REAL_TYPE
+	   && (code1 == INTEGER_TYPE || code1 == BITINT_TYPE))
     cmp_type = type0;
-  else if (code0 == INTEGER_TYPE && code1 == REAL_TYPE)
+  else if ((code0 == INTEGER_TYPE || code0 == BITINT_TYPE)
+	   && code1 == REAL_TYPE)
     cmp_type = type1;
 
   arg0 = builtin_save_expr (fold_convert_loc (loc, cmp_type, arg0));
diff --git a/gcc/testsuite/gcc.dg/bitint-118.c b/gcc/testsuite/gcc.dg/bitint-118.c
new file mode 100644
index 00000000000..d330cc502a9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bitint-118.c
@@ -0,0 +1,21 @@
+/* PR c/117802 */
+/* { dg-do compile { target bitint575 } } */
+/* { dg-options "-std=c23" } */
+
+int
+foo (float x, _BitInt(8) y)
+{
+  return __builtin_iseqsig (x, y) * 2 + __builtin_iseqsig (y, x);
+}
+
+int
+bar (double x, unsigned _BitInt(162) y)
+{
+  return __builtin_iseqsig (x, y) * 2 + __builtin_iseqsig (y, x);
+}
+
+int
+baz (long double x, _BitInt(574) y)
+{
+  return __builtin_iseqsig (x, y) * 2 + __builtin_iseqsig (y, x);
+}
diff --git a/gcc/testsuite/gcc.dg/builtin-iseqsig-1.c b/gcc/testsuite/gcc.dg/builtin-iseqsig-1.c
new file mode 100644
index 00000000000..e9fe87b7f70
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/builtin-iseqsig-1.c
@@ -0,0 +1,20 @@
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+int
+foo (float x, int y)
+{
+  return __builtin_iseqsig (x, y) * 2 + __builtin_iseqsig (y, x);
+}
+
+int
+bar (double x, unsigned long y)
+{
+  return __builtin_iseqsig (x, y) * 2 + __builtin_iseqsig (y, x);
+}
+
+int
+baz (long double x, long long y)
+{
+  return __builtin_iseqsig (x, y) * 2 + __builtin_iseqsig (y, x);
+}

commit 5d7186159f678f2dd42cb9468d897d757e06a101
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Nov 28 14:31:44 2024 +0100

    docs: Fix up __sync_* documentation [PR117642]
    
    The PR14311 commit which added support for __sync_* builtins documented that
    there is a warning if a particular operation cannot be implemented.
    But that commit nor anything later on implemented such warning, it was
    always silent generation of the mentioned calls (which can in most cases
    result in linker errors of course because those functions aren't implemented
    anywhere, in libatomic or elsewhere in code shipped in gcc).
    
    So, the following patch just adjust the documentation to match the
    implementation.
    
    2024-11-28  Jakub Jelinek  <jakub@redhat.com>
    
            PR target/117642
            * doc/extend.texi: Remove documentation of warning for unimplemented
            __sync_* operations, such warning has never been implemented.
    
    (cherry picked from commit 0dcc09a8b5eb275ce939daad2bdfc7076ae1863c)

diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index e290265d68d..14834fc4a18 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -13219,16 +13219,11 @@ builtins (@pxref{__atomic Builtins}).  They should not be used for new
 code which should use the @samp{__atomic} builtins instead.
 
 Not all operations are supported by all target processors.  If a particular
-operation cannot be implemented on the target processor, a warning is
-generated and a call to an external function is generated.  The external
-function carries the same name as the built-in version,
-with an additional suffix
+operation cannot be implemented on the target processor, a call to an
+external function is generated.  The external function carries the same name
+as the built-in version, with an additional suffix
 @samp{_@var{n}} where @var{n} is the size of the data type.
 
-@c ??? Should we have a mechanism to suppress this warning?  This is almost
-@c useful for implementing the operation under the control of an external
-@c mutex.
-
 In most cases, these built-in functions are considered a @dfn{full barrier}.
 That is,
 no memory operand is moved across the operation, either forward or

commit 326b6bac1f61302daf285e45baf39a6a30511272
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Nov 30 11:19:12 2024 +0100

    openmp: Add crtoffloadtableS.o and use it [PR117851]
    
    Unlike crtoffload{begin,end}.o which just define some symbols at the start/end
    of the various .gnu.offload* sections, crtoffloadtable.o contains
    const void *const __OFFLOAD_TABLE__[]
      __attribute__ ((__visibility__ ("hidden"))) =
    {
      &__offload_func_table, &__offload_funcs_end,
      &__offload_var_table, &__offload_vars_end,
      &__offload_ind_func_table, &__offload_ind_funcs_end,
    };
    The problem is that linking this into PIEs or shared libraries doesn't
    work when it is compiled without -fpic/-fpie - __OFFLOAD_TABLE__ for non-PIC
    code is put into .rodata section, but it really needs relocations, so for
    PIC it should go into .data.rel.ro/.data.rel.ro.local.
    As I think we don't want .data.rel.ro section in non-PIE binaries, this patch
    follows the path of e.g. crtbegin.o vs. crtbeginS.o and adds crtoffloadtableS.o
    next to crtoffloadtable.o, where crtoffloadtableS.o is compiled with -fpic.
    
    2024-11-30  Jakub Jelinek  <jakub@redhat.com>
    
            PR libgomp/117851
    gcc/
            * lto-wrapper.cc (find_crtoffloadtable): Add PIE_OR_SHARED argument,
            search for crtoffloadtableS.o rather than crtoffloadtable.o if
            true.
            (run_gcc): Add pie_or_shared variable.  If OPT_pie or OPT_shared or
            OPT_static_pie is seen, set pie_or_shared to true, if OPT_no_pie is
            seen, set pie_or_shared to false.  Pass it to find_crtoffloadtable.
    libgcc/
            * configure.ac (extra_parts): Add crtoffloadtableS.o.
            * Makefile.in (crtoffloadtableS$(objext)): New goal.
            * configure: Regenerated.
    
    (cherry picked from commit f089ef880e385e2193237b1f53ec81dac4141680)

diff --git a/gcc/lto-wrapper.cc b/gcc/lto-wrapper.cc
index 02579951569..c7bad4b61c2 100644
--- a/gcc/lto-wrapper.cc
+++ b/gcc/lto-wrapper.cc
@@ -1083,13 +1083,16 @@ copy_file (const char *dest, const char *src)
    the copy to the linker.  */
 
 static void
-find_crtoffloadtable (int save_temps, const char *dumppfx)
+find_crtoffloadtable (int save_temps, bool pie_or_shared, const char *dumppfx)
 {
   char **paths = NULL;
   const char *library_path = getenv ("LIBRARY_PATH");
   if (!library_path)
     return;
-  unsigned n_paths = parse_env_var (library_path, &paths, "/crtoffloadtable.o");
+  unsigned n_paths = parse_env_var (library_path, &paths,
+				    pie_or_shared
+				    ? "/crtoffloadtableS.o"
+				    : "/crtoffloadtable.o");
 
   unsigned i;
   for (i = 0; i < n_paths; i++)
@@ -1108,7 +1111,8 @@ find_crtoffloadtable (int save_temps, const char *dumppfx)
       }
   if (i == n_paths)
     fatal_error (input_location,
-		 "installation error, cannot find %<crtoffloadtable.o%>");
+		 "installation error, cannot find %<crtoffloadtable%s.o%>",
+		 pie_or_shared ? "S" : "");
 
   free_array_of_ptrs ((void **) paths, n_paths);
 }
@@ -1423,6 +1427,11 @@ run_gcc (unsigned argc, char *argv[])
   char **lto_argv, **ltoobj_argv;
   bool linker_output_rel = false;
   bool skip_debug = false;
+#ifdef ENABLE_DEFAULT_PIE
+  bool pie_or_shared = true;
+#else
+  bool pie_or_shared = false;
+#endif
   const char *incoming_dumppfx = dumppfx = NULL;
   static char current_dir[] = { '.', DIR_SEPARATOR, '\0' };
 
@@ -1590,6 +1599,16 @@ run_gcc (unsigned argc, char *argv[])
 	  diagnostic_color_init (global_dc, option->value);
 	  break;
 
+	case OPT_pie:
+	case OPT_shared:
+	case OPT_static_pie:
+	  pie_or_shared = true;
+	  break;
+
+	case OPT_no_pie:
+	  pie_or_shared = false;
+	  break;
+
 	default:
 	  break;
 	}
@@ -1798,7 +1817,7 @@ cont1:
 
       if (offload_names)
 	{
-	  find_crtoffloadtable (save_temps, dumppfx);
+	  find_crtoffloadtable (save_temps, pie_or_shared, dumppfx);
 	  for (i = 0; offload_names[i]; i++)
 	    printf ("%s\n", offload_names[i]);
 	  free_array_of_ptrs ((void **) offload_names, i);
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
index 0e46e9ef768..5d0195bdfe9 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -1060,6 +1060,9 @@ crtoffloadend$(objext): $(srcdir)/offloadstuff.c
 
 crtoffloadtable$(objext): $(srcdir)/offloadstuff.c
 	$(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $< -DCRT_TABLE
+
+crtoffloadtableS$(objext): $(srcdir)/offloadstuff.c
+	$(crt_compile) $(CRTSTUFF_T_CFLAGS_S) -c $< -DCRT_TABLE
 endif
 
 ifeq ($(enable_vtable_verify),yes)
diff --git a/libgcc/configure b/libgcc/configure
index cff1eff9625..23cc5753bac 100755
--- a/libgcc/configure
+++ b/libgcc/configure
@@ -5326,7 +5326,8 @@ fi
 
 
 if test x"$enable_offload_targets" != x; then
-  extra_parts="${extra_parts} crtoffloadbegin.o crtoffloadend.o crtoffloadtable.o"
+  extra_parts="${extra_parts} crtoffloadbegin.o crtoffloadend.o"
+  extra_parts="${extra_parts} crtoffloadtable.o crtoffloadtableS.o"
 fi
 
 # Check if Solaris/x86 linker supports ZERO terminator unwind entries.
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
index 4e8c036990f..bbe34cb7fb1 100644
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -506,7 +506,8 @@ AC_SUBST(accel_dir_suffix)
 AC_SUBST(real_host_noncanonical)
 
 if test x"$enable_offload_targets" != x; then
-  extra_parts="${extra_parts} crtoffloadbegin.o crtoffloadend.o crtoffloadtable.o"
+  extra_parts="${extra_parts} crtoffloadbegin.o crtoffloadend.o"
+  extra_parts="${extra_parts} crtoffloadtable.o crtoffloadtableS.o"
 fi
 
 # Check if Solaris/x86 linker supports ZERO terminator unwind entries.

commit b602b32ff06726a6ede59b10e0f5b84f9f546e4c
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Dec 3 11:16:37 2024 +0100

    bitintlower: Fix up ?ROTATE_EXPR lowering [PR117847]
    
    In the ?ROTATE_EXPR lowering I forgot to handle rotation by 0 correctly.
    INTEGER_CST 0 is very unlikely, it would be probably folded away, but
    a non-constant count can't use just p - n because then the shift count
    is out of bounds for zero.
    
    In the FE I use n == 0 ? x : (x << n) | (x >> (p - n)) but bitintlower
    here isn't prepared at this point to have bb split and am not sure if
    using COND_EXPR is a good idea either, so the patch uses (p - n) % p.
    Perhaps I should just disable lowering the rotate in the FE for the
    non-mode precision BITINT_TYPEs too.
    
    2024-12-03  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/117847
            * gimple-lower-bitint.cc (gimple_lower_bitint) <case LROTATE_EXPR>:
            Use m = (p - n) % p instead of m = p - n for the other shift count.
    
    (cherry picked from commit 0b89341f124eadc689682d01193309225adfec23)

diff --git a/gcc/gimple-lower-bitint.cc b/gcc/gimple-lower-bitint.cc
index e4e628b786b..2072e54db77 100644
--- a/gcc/gimple-lower-bitint.cc
+++ b/gcc/gimple-lower-bitint.cc
@@ -6227,11 +6227,20 @@ gimple_lower_bitint (void)
 		  tree p = build_int_cst (TREE_TYPE (n),
 					  TYPE_PRECISION (type));
 		  if (TREE_CODE (n) == INTEGER_CST)
-		    m = fold_build2 (MINUS_EXPR, TREE_TYPE (n), p, n);
+		    {
+		      if (integer_zerop (n))
+			m = n;
+		      else
+			m = fold_build2 (MINUS_EXPR, TREE_TYPE (n), p, n);
+		    }
 		  else
 		    {
+		      tree tem = make_ssa_name (TREE_TYPE (n));
+		      g = gimple_build_assign (tem, MINUS_EXPR, p, n);
+		      gsi_insert_before (&gsi, g, GSI_SAME_STMT);
+		      gimple_set_location (g, loc);
 		      m = make_ssa_name (TREE_TYPE (n));
-		      g = gimple_build_assign (m, MINUS_EXPR, p, n);
+		      g = gimple_build_assign (m, TRUNC_MOD_EXPR, tem, p);
 		      gsi_insert_before (&gsi, g, GSI_SAME_STMT);
 		      gimple_set_location (g, loc);
 		    }

commit 26615af93cf759999c5dfae0c51a827b05968cca
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Dec 5 13:01:21 2024 +0100

    doloop: Fix up doloop df use [PR116799]
    
    The following testcases are miscompiled on s390x-linux, because the
    doloop_optimize
      /* Ensure that the new sequence doesn't clobber a register that
         is live at the end of the block.  */
      {
        bitmap modified = BITMAP_ALLOC (NULL);
    
        for (rtx_insn *i = doloop_seq; i != NULL; i = NEXT_INSN (i))
          note_stores (i, record_reg_sets, modified);
    
        basic_block loop_end = desc->out_edge->src;
        bool fail = bitmap_intersect_p (df_get_live_out (loop_end), modified);
    check doesn't work as intended.
    The problem is that it uses df, but the df analysis was only done using
      iv_analysis_loop_init (loop);
    ->
      df_analyze_loop (loop);
    which computes df inside on the bbs of the loop.
    While loop_end bb is inside of the loop, df_get_live_out computed that
    way includes registers set in the loop and used at the start of the next
    iteration, but doesn't include registers set in the loop (or before the
    loop) and used after the loop.
    
    The following patch fixes that by doing whole function df_analyze first,
    changes the loop iteration mode from 0 to LI_ONLY_INNERMOST (on many
    targets which use can_use_doloop_if_innermost target hook a so are known
    to only handle innermost loops) or LI_FROM_INNERMOST (I think only bfin
    actually allows non-innermost loops) and checking not just
    df_get_live_out (loop_end) (that is needed for something used by the
    next iteration), but also df_get_live_in (desc->out_edge->dest),
    i.e. what will be used after the loop.  df of such a bb shouldn't
    be affected by the df_analyze_loop and so should be from df_analyze
    of the whole function.
    
    2024-12-05  Jakub Jelinek  <jakub@redhat.com>
    
            PR rtl-optimization/113994
            PR rtl-optimization/116799
            * loop-doloop.cc: Include targhooks.h.
            (doloop_optimize): Also punt on intersection of modified
            with df_get_live_in (desc->out_edge->dest).
            (doloop_optimize_loops): Call df_analyze.  Use
            LI_ONLY_INNERMOST or LI_FROM_INNERMOST instead of 0 as
            second loops_list argument.
    
            * gcc.c-torture/execute/pr116799.c: New test.
            * g++.dg/torture/pr113994.C: New test.
    
    (cherry picked from commit 0eed81612ad6eac2bec60286348a103d4dc02a5a)

diff --git a/gcc/loop-doloop.cc b/gcc/loop-doloop.cc
index 529e810e530..0d101d64bbf 100644
--- a/gcc/loop-doloop.cc
+++ b/gcc/loop-doloop.cc
@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "loop-unroll.h"
 #include "regs.h"
 #include "df.h"
+#include "targhooks.h"
 
 /* This module is used to modify loops with a determinable number of
    iterations to use special low-overhead looping instructions.
@@ -770,6 +771,18 @@ doloop_optimize (class loop *loop)
 
     basic_block loop_end = desc->out_edge->src;
     bool fail = bitmap_intersect_p (df_get_live_out (loop_end), modified);
+    /* iv_analysis_loop_init calls df_analyze_loop, which computes just
+       partial df for blocks of the loop only.  The above will catch if
+       any of the modified registers are use inside of the loop body, but
+       it will most likely not have accurate info on registers used
+       at the destination of the out_edge.  We call df_analyze on the
+       whole function at the start of the pass though and iterate only
+       on innermost loops or from innermost loops, so
+       live in on desc->out_edge->dest should be still unmodified from
+       the initial df_analyze.  */
+    if (!fail)
+      fail = bitmap_intersect_p (df_get_live_in (desc->out_edge->dest),
+				 modified);
     BITMAP_FREE (modified);
 
     if (fail)
@@ -795,7 +808,12 @@ doloop_optimize_loops (void)
       df_live_set_all_dirty ();
     }
 
-  for (auto loop : loops_list (cfun, 0))
+  df_analyze ();
+
+  for (auto loop : loops_list (cfun,
+			       targetm.can_use_doloop_p
+			       == can_use_doloop_if_innermost
+			       ? LI_ONLY_INNERMOST : LI_FROM_INNERMOST))
     doloop_optimize (loop);
 
   if (optimize == 1)
diff --git a/gcc/testsuite/g++.dg/torture/pr113994.C b/gcc/testsuite/g++.dg/torture/pr113994.C
new file mode 100644
index 00000000000..c9c186d45ee
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr113994.C
@@ -0,0 +1,31 @@
+// PR rtl-optimization/113994
+// { dg-do run }
+
+#include <string>
+
+void
+foo (const std::string &x, size_t &y, std::string &z)
+{
+  size_t w = x.find (']');
+  if (w >= x.size ())
+    return;
+  else if (w == 1)
+    y = std::string::npos;
+  while (++w < x.size () && x[w] == u'.')
+    ;
+  z = x.substr (w);
+}
+
+__attribute__((noipa)) void
+bar ()
+{
+}
+
+int
+main ()
+{
+  size_t y = 0;
+  std::string z;
+  foo ("[0]", y, z);
+  bar ();
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr116799.c b/gcc/testsuite/gcc.c-torture/execute/pr116799.c
new file mode 100644
index 00000000000..d9af4d9fe4b
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr116799.c
@@ -0,0 +1,41 @@
+/* PR rtl-optimization/116799 */
+
+const char *l;
+
+__attribute__((noipa)) void
+foo (const char *x, const char *y, int z)
+{
+  if (x != l + 1 || y != x || z)
+    __builtin_abort ();
+}
+
+__attribute__((noipa)) void
+bar (const char *x, char *v)
+{
+  const char *w = x + __builtin_strlen (x);
+
+  while (x[0] == '*' && x < w - 1)
+    x++;
+
+  const char *y = w - 1;
+  int z = 1;
+  if (y >= x)
+    {
+      while (y - x > 0 && *y == '*')
+	y--;
+      z = 0;
+    }
+  int i = 0;
+  if (z)
+    v[i++] = 'a';
+  v[i] = 'b';
+  foo (x, y, z);
+}
+
+int
+main ()
+{
+  char v[2] = { 0 };
+  l = "**";
+  bar (l, v);
+}

commit 5a78e369a3995480c39c325a2c36f17c2fc37f37
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Mon Dec 9 14:17:39 2024 +0100

    docs: Clarify -fsanitize=hwaddress target support [PR117960]
    
    Since GCC 13 -fsanitize=hwaddress is not supported just on AArch64, but also
    on x86_64 (but only with -mlam=u48 or -mlam=u57).
    
    2024-12-09  Jakub Jelinek  <jakub@redhat.com>
    
            PR sanitizer/117960
            * doc/invoke.texi (fsanitize=hwaddress): Clarify on which targets
            it is supported.
    
    (cherry picked from commit 2e958291ff68d9bff1092895a14b6763de56823b)

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index b14ad30cdf2..b575e2b9663 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -17471,8 +17471,10 @@ the available options are shown at startup of the instrumented program.  See
 @url{https://github.com/google/sanitizers/wiki/AddressSanitizerFlags#run-time-flags}
 for a list of supported options.
 The option cannot be combined with @option{-fsanitize=thread} or
-@option{-fsanitize=hwaddress}.  Note that the only target
-@option{-fsanitize=hwaddress} is currently supported on is AArch64.
+@option{-fsanitize=hwaddress}.  Note that the only targets
+@option{-fsanitize=hwaddress} is currently supported on are x86-64
+(only with @code{-mlam=u48} or @code{-mlam=u57} options) and AArch64,
+in both cases only in ABIs with 64-bit pointers.
 
 To get more accurate stack traces, it is possible to use options such as
 @option{-O0}, @option{-O1}, or @option{-Og} (which, for instance, prevent

commit 7ae55c2f73626e8a7a6871a1e4fd4cde2e6c8460
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Dec 11 17:28:47 2024 +0100

    c++: allow stores to anon union vars to change current union member in constexpr [PR117614]
    
    Since r14-4771 the FE tries to differentiate between cases where the lhs
    of a store allows changing the current union member and cases where it
    doesn't, and cases where it doesn't includes everything that has gone
    through the cxx_eval_constant_expression path on the lhs.
    As the testcase shows, DECL_ANON_UNION_VAR_P vars were handled like that
    too, even when stores to them are the only way how to change the current
    union member in the sources.
    
    So, the following patch just handles that case manually without calling
    cxx_eval_constant_expression and without setting evaluated to true.
    
    2024-12-11  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/117614
            * constexpr.cc (cxx_eval_store_expression): For stores to
            DECL_ANON_UNION_VAR_P vars just continue with DECL_VALUE_EXPR
            of it, without setting evaluated to true or full
            cxx_eval_constant_expression.
    
            * g++.dg/cpp2a/constexpr-union8.C: New test.
    
    (cherry picked from commit 337815c8bbd0fb5034223ad0e7899d1493e958a2)

diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc
index 40cc755258f..c5cd5c87680 100644
--- a/gcc/cp/constexpr.cc
+++ b/gcc/cp/constexpr.cc
@@ -6326,6 +6326,14 @@ cxx_eval_store_expression (const constexpr_ctx *ctx, tree t,
 	    object = probe;
 	  else
 	    {
+	      tree pvar = tree_strip_any_location_wrapper (probe);
+	      if (VAR_P (pvar) && DECL_ANON_UNION_VAR_P (pvar))
+		{
+		  /* Stores to DECL_ANON_UNION_VAR_P var are allowed to change
+		     active union member.  */
+		  probe = DECL_VALUE_EXPR (pvar);
+		  break;
+		}
 	      probe = cxx_eval_constant_expression (ctx, probe, vc_glvalue,
 						    non_constant_p, overflow_p);
 	      evaluated = true;
diff --git a/gcc/testsuite/g++.dg/cpp2a/constexpr-union8.C b/gcc/testsuite/g++.dg/cpp2a/constexpr-union8.C
new file mode 100644
index 00000000000..1e51857b3df
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/constexpr-union8.C
@@ -0,0 +1,31 @@
+// PR c++/117614
+// { dg-do compile { target c++20 } }
+
+constexpr int
+foo ()
+{
+  union {
+    int x{0};
+    char y;
+  };
+  y = 1;
+  return y;
+}
+
+constexpr int
+bar ()
+{
+  union {
+    union {
+      int x{0};
+      char y;
+    };
+    long long z;
+  };
+  y = 1;
+  z = 2;
+  return z;
+}
+
+static_assert (foo () == 1);
+static_assert (bar () == 2);

commit fbbc1a4ac5c7e55de1edc52cfe267b95f9621e21
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Dec 14 00:41:00 2024 +0100

    cse: Fix up record_jump_equiv checks [PR117095]
    
    The following testcase is miscompiled on s390x-linux with -O2 -march=z15.
    The problem happens during cse2, which sees in an extended basic block
    (jump_insn 217 78 216 10 (parallel [
                (set (pc)
                    (if_then_else (ne (reg:SI 165)
                            (const_int 1 [0x1]))
                        (label_ref 216)
                        (pc)))
                (set (reg:SI 165)
                    (plus:SI (reg:SI 165)
                        (const_int -1 [0xffffffffffffffff])))
                (clobber (scratch:SI))
                (clobber (reg:CC 33 %cc))
            ]) "t.c":14:17 discrim 1 2192 {doloop_si64}
         (int_list:REG_BR_PROB 955630228 (nil))
     -> 216)
    ...
    (insn 99 98 100 12 (set (reg:SI 138)
            (const_int 1 [0x1])) "t.c":9:31 1507 {*movsi_zarch}
         (nil))
    (insn 100 99 103 12 (parallel [
                (set (reg:SI 137)
                    (minus:SI (reg:SI 138)
                        (subreg:SI (reg:HI 135 [ a ]) 0)))
                (clobber (reg:CC 33 %cc))
            ]) "t.c":9:31 1904 {*subsi3}
         (expr_list:REG_DEAD (reg:SI 138)
            (expr_list:REG_DEAD (reg:HI 135 [ a ])
                (expr_list:REG_UNUSED (reg:CC 33 %cc)
                    (nil)))))
    Note, cse2 has df_note_add_problem () before df_analyze, which add
         (expr_list:REG_UNUSED (reg:SI 165)
            (expr_list:REG_UNUSED (reg:CC 33 %cc)
    notes to the first insn (correctly so, %cc is clobbered there and pseudo
    165 isn't used after the insn).
    Now, cse_extended_basic_block has an extra optimization on conditional
    jumps, where it records equivalence on the edge which continues in the ebb.
    Here it sees (ne reg:SI 165) (const_int 1) is false on the edge and
    remembers that pseudo 165 is comparison equivalent to (const_int 1),
    so on insn 100 it decides to replace (reg:SI 138) with (reg:SI 165).
    
    This optimization isn't correct here though, because the JUMP_INSN has
    multiple sets.  Before r0-77890 record_jump_equiv has been called from
    cse_insn guarded on n_sets == 1 && any_condjump_p (insn), so it wouldn't
    be done on the above JUMP_INSN where n_sets == 2.  But since that change
    it is guarded with single_set (insn) && any_condjump_p (insn) and that
    is true because of the REG_UNUSED note.  Looking at that note is
    inappropriate in CSE though, because the whole intent of the pass is to
    extend the lifetimes of the pseudos if equivalence is found, so the fact
    that there is REG_UNUSED note for (reg:SI 165) and that the reg isn't used
    later doesn't imply that it won't be used after the optimization.
    So, unless we manage to process the other sets on the JUMP_INSN (it wouldn't
    be terribly hard in this exact case, the doloop insn decreases the register
    by 1 and so we could just record equivalence to (const_int 0) instead, but
    generally it might be hard), we should IMHO just punt if there are multiple
    sets.
    
    The patch below adds !multiple_sets (insn) check instead of replacing with
    it the single_set (insn) check, because apparently any_condjump_p uses
    pc_set which supports the case where PATTERN is a SET to PC (that is a
    single_set (insn) && !multiple_sets (insn), PATTERN is a PARALLEL with a
    single SET to PC (likewise) and some CLOBBERs, PARALLEL with two or more
    SETs where the first one is SET to PC (that could be single_set (insn)
    with REG_UNUSED notes but is not !multiple_sets (insn)) or PATTERN
    is UNSPEC/UNSPEC_VOLATILE with SET inside of it.  For the last case
    !multiple_sets (insn) will be true, but IMHO we shouldn't try to derive
    anything from those because we haven't checked the rest of the UNSPEC*
    and we don't really know what it does.
    
    2024-12-13  Jakub Jelinek  <jakub@redhat.com>
    
            PR rtl-optimization/117095
            * cse.cc (cse_extended_basic_block): Don't call record_jump_equiv
            if multiple_sets (insn).
    
            * gcc.c-torture/execute/pr117095.c: New test.
    
    (cherry picked from commit b626ebc0d7888ddae16a55ca583b56a4b8434bdf)

diff --git a/gcc/cse.cc b/gcc/cse.cc
index 65794ac5f2c..15565e53bbc 100644
--- a/gcc/cse.cc
+++ b/gcc/cse.cc
@@ -6620,7 +6620,15 @@ cse_extended_basic_block (struct cse_basic_block_data *ebb_data)
 	  && EDGE_COUNT (bb->succs) == 2
 	  && JUMP_P (insn)
 	  && single_set (insn)
-	  && any_condjump_p (insn))
+	  && any_condjump_p (insn)
+	  /* single_set may return non-NULL even for multiple sets
+	     if there are REG_UNUSED notes.  record_jump_equiv only
+	     looks at pc_set and doesn't consider other sets that
+	     could affect the value, and the recorded equivalence
+	     can extend the lifetime of the compared REG, so use
+	     also !multiple_sets check to verify it is exactly one
+	     set.  */
+	  && !multiple_sets (insn))
 	{
 	  basic_block next_bb = ebb_data->path[path_entry + 1].bb;
 	  bool taken = (next_bb == BRANCH_EDGE (bb)->dest);
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr117095.c b/gcc/testsuite/gcc.c-torture/execute/pr117095.c
new file mode 100644
index 00000000000..3393db1a893
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr117095.c
@@ -0,0 +1,47 @@
+/* PR rtl-optimization/117095 */
+
+short a, b;
+int c, e, z;
+long f, g;
+int *h = &c, *i;
+#ifdef __SIZEOF_INT128__
+volatile __int128 j;
+#else
+volatile long long j;
+#endif
+char k, l;
+
+char
+foo (char n, char o)
+{
+  return n + o;
+}
+
+char
+bar (char n, char o)
+{
+  return o == 0 ? n : n / o;
+}
+
+short baz (short n)
+{
+  return n - a;
+}
+
+int
+main ()
+{
+  char *q = &l;
+  int **s = &i;
+  *s = &z;
+  for (e = 0; e <= 5; e++)
+    for (g = 1; g <= 5; g++)
+      {
+	k = foo (9, *i);
+	**s = bar (f > 1, (1 && j) ^ k);
+      }
+  b = baz (q == &l);
+  *h = b;
+  if (c != 1)
+    __builtin_abort ();
+}

commit 1dd428c751fc4c394a60f007d483a61fbac3c7b9
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Dec 14 11:27:20 2024 +0100

    warn-access: Fix up matching_alloc_calls_p [PR118024]
    
    The following testcase ICEs because of a bug in matching_alloc_calls_p.
    The loop was apparently meant to be walking the two attribute chains
    in lock-step, but doesn't really do that.  If the first lookup_attribute
    returns non-NULL, the second one is not done, so rmats in that case can
    be some random unrelated attribute rather than "malloc" attribute; the
    body assumes even rmats if non-NULL is "malloc" attribute and relies
    on its argument to be a "malloc" argument and if it is some other
    attribute with incompatible attribute, it just crashes.
    
    Now, fixing that in the obvious way, instead of doing
    (amats = lookup_attribute ("malloc", amats))
     || (rmats = lookup_attribute ("malloc", rmats))
    in the condition do
    ((amats = lookup_attribute ("malloc", amats)),
     (rmats = lookup_attribute ("malloc", rmats)),
     (amats || rmats))
    fixes the testcase but regresses Wmismatched-dealloc-{2,3}.c tests.
    The problem is that walking the attribute lists in a lock-step is obviously
    a very bad idea, there is no requirement that the same deallocators are
    present in the same order on both decls, e.g. there could be an extra malloc
    attribute without argument in just one of the lists, or the order of say
    free/realloc could be swapped, etc.  We don't generally document nor enforce
    any particular ordering of attributes (even when for some attributes we just
    handle the first one rather than all).
    
    So, this patch instead simply splits it into two loops, the first one walks
    alloc_decl attributes, the second one walks dealloc_decl attributes.
    If the malloc attribute argument is a built-in, that doesn't change
    anything, and otherwise we have the chance to populate the whole
    common_deallocs hash_set in the first loop and then can check it in the
    second one (and don't need to use more expensive add method on it, can just
    check contains there).  Not to mention that it also fixes the case when
    the function would incorrectly return true if there wasn't a common
    deallocator between the two, but dealloc_decl had 2 malloc attributes with
    the same deallocator.
    
    2024-12-14  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/118024
            * gimple-ssa-warn-access.cc (matching_alloc_calls_p): Walk malloc
            attributes of alloc_decl and dealloc_decl in separate loops rather
            than in lock-step.  Use common_deallocs.contains rather than
            common_deallocs.add in the second loop.
    
            * gcc.dg/pr118024.c: New test.
    
    (cherry picked from commit 9537ca5ad9bc23d7e9c446b4a7cbb98f63bddb6a)

diff --git a/gcc/gimple-ssa-warn-access.cc b/gcc/gimple-ssa-warn-access.cc
index 5c1f3a414b1..59ddca017d1 100644
--- a/gcc/gimple-ssa-warn-access.cc
+++ b/gcc/gimple-ssa-warn-access.cc
@@ -1933,52 +1933,49 @@ matching_alloc_calls_p (tree alloc_decl, tree dealloc_decl)
      headers.
      With AMATS set to the Allocator's Malloc ATtributes,
      and  RMATS set to Reallocator's Malloc ATtributes...  */
-  for (tree amats = DECL_ATTRIBUTES (alloc_decl),
-	 rmats = DECL_ATTRIBUTES (dealloc_decl);
-       (amats = lookup_attribute ("malloc", amats))
-	 || (rmats = lookup_attribute ("malloc", rmats));
-       amats = amats ? TREE_CHAIN (amats) : NULL_TREE,
-	 rmats = rmats ? TREE_CHAIN (rmats) : NULL_TREE)
-    {
-      if (tree args = amats ? TREE_VALUE (amats) : NULL_TREE)
-	if (tree adealloc = TREE_VALUE (args))
-	  {
-	    if (DECL_P (adealloc)
-		&& fndecl_built_in_p (adealloc, BUILT_IN_NORMAL))
-	      {
-		built_in_function fncode = DECL_FUNCTION_CODE (adealloc);
-		if (fncode == BUILT_IN_FREE || fncode == BUILT_IN_REALLOC)
-		  {
-		    if (realloc_kind == alloc_kind_t::builtin)
-		      return true;
-		    alloc_dealloc_kind = alloc_kind_t::builtin;
-		  }
-		continue;
-	      }
-
-	    common_deallocs.add (adealloc);
-	  }
+  for (tree amats = DECL_ATTRIBUTES (alloc_decl);
+       (amats = lookup_attribute ("malloc", amats));
+       amats = amats ? TREE_CHAIN (amats) : NULL_TREE)
+    if (tree args = amats ? TREE_VALUE (amats) : NULL_TREE)
+      if (tree adealloc = TREE_VALUE (args))
+	{
+	  if (DECL_P (adealloc)
+	      && fndecl_built_in_p (adealloc, BUILT_IN_NORMAL))
+	    {
+	      built_in_function fncode = DECL_FUNCTION_CODE (adealloc);
+	      if (fncode == BUILT_IN_FREE || fncode == BUILT_IN_REALLOC)
+		{
+		  if (realloc_kind == alloc_kind_t::builtin)
+		    return true;
+		  alloc_dealloc_kind = alloc_kind_t::builtin;
+		}
+	      continue;
+	    }
 
-      if (tree args = rmats ? TREE_VALUE (rmats) : NULL_TREE)
-	if (tree ddealloc = TREE_VALUE (args))
-	  {
-	    if (DECL_P (ddealloc)
-		&& fndecl_built_in_p (ddealloc, BUILT_IN_NORMAL))
-	      {
-		built_in_function fncode = DECL_FUNCTION_CODE (ddealloc);
-		if (fncode == BUILT_IN_FREE || fncode == BUILT_IN_REALLOC)
-		  {
-		    if (alloc_dealloc_kind == alloc_kind_t::builtin)
-		      return true;
-		    realloc_dealloc_kind = alloc_kind_t::builtin;
-		  }
-		continue;
-	      }
+	  common_deallocs.add (adealloc);
+	}
+  for (tree rmats = DECL_ATTRIBUTES (dealloc_decl);
+       (rmats = lookup_attribute ("malloc", rmats));
+       rmats = rmats ? TREE_CHAIN (rmats) : NULL_TREE)
+    if (tree args = rmats ? TREE_VALUE (rmats) : NULL_TREE)
+      if (tree ddealloc = TREE_VALUE (args))
+	{
+	  if (DECL_P (ddealloc)
+	      && fndecl_built_in_p (ddealloc, BUILT_IN_NORMAL))
+	    {
+	      built_in_function fncode = DECL_FUNCTION_CODE (ddealloc);
+	      if (fncode == BUILT_IN_FREE || fncode == BUILT_IN_REALLOC)
+		{
+		  if (alloc_dealloc_kind == alloc_kind_t::builtin)
+		    return true;
+		  realloc_dealloc_kind = alloc_kind_t::builtin;
+		}
+	      continue;
+	    }
 
-	    if (common_deallocs.add (ddealloc))
-	      return true;
-	  }
-    }
+	  if (common_deallocs.contains (ddealloc))
+	    return true;
+	}
 
   /* Succeed only if ALLOC_DECL and the reallocator DEALLOC_DECL share
      a built-in deallocator.  */
diff --git a/gcc/testsuite/gcc.dg/pr118024.c b/gcc/testsuite/gcc.dg/pr118024.c
new file mode 100644
index 00000000000..1077d20ad97
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr118024.c
@@ -0,0 +1,15 @@
+/* PR middle-end/118024 */
+/* { dg-do compile } */
+/* { dg-options "-fstrub=all" } */
+/* { dg-require-effective-target strub } */
+
+void *realloc (void *, __SIZE_TYPE__);
+void *reallocarray (void *);
+void *reallocarray (void *) __attribute__((__malloc__(reallocarray)));
+
+void *
+foo (void)
+{
+  char *buf = reallocarray (0);
+  return realloc (buf, 1);
+}

commit ec9ccda503d79865c5bf5bc9ef850003784c5b95
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Dec 17 10:13:24 2024 +0100

    c++: Diagnose earlier non-static data members with cv containing class type [PR116108]
    
    In r10-6457 aka PR92593 fix a check has been added to reject
    earlier non-static data members with current_class_type in templates,
    as the deduction then can result in endless recursion in reshape_init.
    It fixed the
    template <class T>
    struct S { S s = 1; };
    S t{2};
    crashes, but as the following testcase shows, didn't catch when there
    are cv qualifiers on the non-static data member.
    
    Fixed by using TYPE_MAIN_VARIANT.
    
    2024-12-17  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/116108
    gcc/cp/
            * decl.cc (grokdeclarator): Pass TYYPE_MAIN_VARIANT (type)
            rather than type to same_type_p when checking if the non-static
            data member doesn't have current class type.
    gcc/testsuite/
            * g++.dg/cpp1z/class-deduction117.C: New test.
    
    (cherry picked from commit 88bfee560681d8248b89f130ada249e35ee2e344)

diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc
index d5cef069fce..ada0a0c2299 100644
--- a/gcc/cp/decl.cc
+++ b/gcc/cp/decl.cc
@@ -14792,7 +14792,8 @@ grokdeclarator (const cp_declarator *declarator,
 	  }
 	else if (!staticp
 		 && ((current_class_type
-		      && same_type_p (type, current_class_type))
+		      && same_type_p (TYPE_MAIN_VARIANT (type),
+				      current_class_type))
 		     || (!dependent_type_p (type)
 			 && !COMPLETE_TYPE_P (complete_type (type))
 			 && (!complete_or_array_type_p (type)
diff --git a/gcc/testsuite/g++.dg/cpp1z/class-deduction117.C b/gcc/testsuite/g++.dg/cpp1z/class-deduction117.C
new file mode 100644
index 00000000000..8ab91018377
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/class-deduction117.C
@@ -0,0 +1,7 @@
+// PR c++/116108
+// { dg-do compile { target c++11 } }
+template <class T>
+struct S { const S s = 1; };	// { dg-error "field 's' has incomplete type 'const S<T>'" }
+S t{2};				// { dg-error "invalid use of template-name 'S' without an argument list" "" { target c++14_down } }
+// { dg-error "class template argument deduction failed" "" { target c++17 } .-1 }
+// { dg-error "no matching function for call to 'S\\\(int\\\)'" "" { target c++17 } .-2 }

commit da82bf0a5fe31319735af1b67218578440ed8333
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Jan 8 23:12:02 2025 +0100

    c++: Honor complain in cp_build_function_call_vec for check_function_arguments warnings [PR117825]
    
    The following testcase ICEs due to re-entering diagnostics.
    When diagnosing -Wformat-security warning, we try to print instantiation
    context, which calls tsubst with tf_none, but that in the end calls
    cp_build_function_call_vec which calls check_function_arguments which
    diagnoses another warning (again -Wformat-security).
    
    The other check_function_arguments caller, build_over_call, doesn't call
    that function if !(complain & tf_warning), so I think the best fix is
    to do it the same in cp_build_function_call_vec as well.
    
    2025-01-08  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/117825
            * typeck.cc (cp_build_function_call_vec): Don't call
            check_function_arguments if complain doesn't have tf_warning bit set.
    
            * g++.dg/warn/pr117825.C: New test.
    
    (cherry picked from commit e5180fbcbcc356c71154413588288cbd30e5198d)

diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc
index 6ca2cee682c..0982fed58a5 100644
--- a/gcc/cp/typeck.cc
+++ b/gcc/cp/typeck.cc
@@ -4469,8 +4469,10 @@ cp_build_function_call_vec (tree function, vec<tree, va_gc> **params,
 
   /* Check for errors in format strings and inappropriately
      null parameters.  */
-  bool warned_p = check_function_arguments (input_location, fndecl, fntype,
-					    nargs, argarray, NULL);
+  bool warned_p
+    = ((complain & tf_warning)
+       && check_function_arguments (input_location, fndecl, fntype,
+				    nargs, argarray, NULL));
 
   ret = build_cxx_call (function, nargs, argarray, complain, orig_fndecl);
 
diff --git a/gcc/testsuite/g++.dg/warn/pr117825.C b/gcc/testsuite/g++.dg/warn/pr117825.C
new file mode 100644
index 00000000000..077e09d9a57
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/pr117825.C
@@ -0,0 +1,18 @@
+// PR c++/117825
+// { dg-do compile { target c++17 } }
+// { dg-options "-Wformat -Wformat-security" }
+
+__attribute__((format (printf, 1, 2)))
+int fails (const char *, ...) { return 0; }
+
+template <auto func, typename... Args>
+auto wrap (Args... args) -> decltype (func (args...))
+{
+  return func (args...);	// { dg-warning "format not a string literal and no format arguments" }
+}
+
+int
+main ()
+{
+  wrap<fails> ("Test!");
+}

commit 7178e38e89e51031d073f39543a291cd2f4e898f
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Jan 6 21:29:54 2025 +0000

    libstdc++: Fix incorrect DocBook element in manual
    
    libstdc++-v3/ChangeLog:
    
            * doc/xml/manual/evolution.xml: Replace invalid <variable>
            elements with <varname>.
            * doc/html/*: Regenerate.
    
    (cherry picked from commit 720945e8bcbc86285fb3b176627f05ada8a7d136)

diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html
index 395908f17a1..88ef8841266 100644
--- a/libstdc++-v3/doc/html/index.html
+++ b/libstdc++-v3/doc/html/index.html
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="description" content="Short Contents Copyright (C) 2008-2024 FSF Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections. Manual Frequently Asked Questions API and Source Documentation" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="next" href="manual/index.html" title="The GNU C++ Library Manual" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr></table><hr /></div><div class="set" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"></a>The GNU C++ Library</h1></div><div><div class="abstract"><a id="contents"></a><p class="title"><strong>Short Contents</strong></p><p>
-      Copyright (C) 2008-2024
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="description" content="Short Contents Copyright (C) 2008-2025 FSF Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections. Manual Frequently Asked Questions API and Source Documentation" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="next" href="manual/index.html" title="The GNU C++ Library Manual" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr></table><hr /></div><div class="set" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"></a>The GNU C++ Library</h1></div><div><div class="abstract"><a id="contents"></a><p class="title"><strong>Short Contents</strong></p><p>
+      Copyright (C) 2008-2025
       <a class="link" href="https://www.fsf.org" target="_top">FSF
       </a>
     </p><p>
diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html
index 59ed4c88862..1d62e1de8cd 100644
--- a/libstdc++-v3/doc/html/manual/api.html
+++ b/libstdc++-v3/doc/html/manual/api.html
@@ -483,8 +483,8 @@ the process.
 Calling a <code class="code">std::bind</code> result as volatile is ill-formed for C++20
 and later.
 </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_131"></a><code class="constant">13</code></h3></div></div></div><p>
-Tunables <span style="color: red">&lt;variable&gt;glibcxx.eh_pool.obj_count&lt;/variable&gt;</span> and
-<span style="color: red">&lt;variable&gt;glibcxx.eh_pool.obj_size&lt;/variable&gt;</span> were added.
+Tunables <code class="varname">glibcxx.eh_pool.obj_count</code> and
+<code class="varname">glibcxx.eh_pool.obj_size</code> were added.
 </p><p>Static library <code class="filename">libstdc++exp.a</code> was added
 to provide the symbols for the experimental C++ Contracts support.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="api.rel_133"></a><code class="constant">13.3</code></h3></div></div></div><p>
 Symbols for the Filesystem TS and C++23 <code class="filename">&lt;stacktrace&gt;</code>
diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml b/libstdc++-v3/doc/xml/manual/evolution.xml
index a375ae14b83..4c4ee98eb60 100644
--- a/libstdc++-v3/doc/xml/manual/evolution.xml
+++ b/libstdc++-v3/doc/xml/manual/evolution.xml
@@ -1096,8 +1096,8 @@ and later.
 <section xml:id="api.rel_131"><info><title><constant>13</constant></title></info>
 
 <para>
-Tunables <variable>glibcxx.eh_pool.obj_count</variable> and
-<variable>glibcxx.eh_pool.obj_size</variable> were added.
+Tunables <varname>glibcxx.eh_pool.obj_count</varname> and
+<varname>glibcxx.eh_pool.obj_size</varname> were added.
 </para>
 
 <para>Static library <filename>libstdc++exp.a</filename> was added

commit 785ddc26e20755b3eabff27f9817a1b3aa3751a0
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jan 7 15:13:56 2025 +0000

    libstdc++: Add Doxygen docs for std::forward_like
    
    Also add "@since C++11" to std::move, std::forward etc.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/move.h (forward, move, move_if_noexcept, addressof):
            Add @since to Doxygen comments.
            (forward_like): Add Doxygen comment.
    
    (cherry picked from commit 4a4e5394b3001b1b3fb35c274d184ffba30156e8)

diff --git a/libstdc++-v3/include/bits/move.h b/libstdc++-v3/include/bits/move.h
index 8397a01b632..82d889b4429 100644
--- a/libstdc++-v3/include/bits/move.h
+++ b/libstdc++-v3/include/bits/move.h
@@ -63,6 +63,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    *  @return The parameter cast to the specified type.
    *
    *  This function is used to implement "perfect forwarding".
+   *  @since C++11
    */
   template<typename _Tp>
     _GLIBCXX_NODISCARD
@@ -75,6 +76,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    *  @return The parameter cast to the specified type.
    *
    *  This function is used to implement "perfect forwarding".
+   *  @since C++11
    */
   template<typename _Tp>
     _GLIBCXX_NODISCARD
@@ -109,6 +111,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   template<typename _Tp, typename _Up>
     using __like_t = typename __like_impl<_Tp&&, _Up&>::type;
 
+  /** @brief Forward with the cv-qualifiers and value category of another type.
+   *  @tparam _Tp An lvalue reference or rvalue reference.
+   *  @tparam _Up An lvalue reference type deduced from the function argument.
+   *  @param __x An lvalue.
+   *  @return `__x` converted to match the qualifiers of `_Tp`.
+   *  @since C++23
+   */
   template<typename _Tp, typename _Up>
   [[nodiscard]]
   constexpr __like_t<_Tp, _Up>
@@ -120,6 +129,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    *  @brief  Convert a value to an rvalue.
    *  @param  __t  A thing of arbitrary type.
    *  @return The parameter cast to an rvalue-reference to allow moving it.
+   *  @since C++11
   */
   template<typename _Tp>
     _GLIBCXX_NODISCARD
@@ -140,6 +150,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    *
    *  Same as std::move unless the type's move constructor could throw and the
    *  type is copyable, in which case an lvalue-reference is returned instead.
+   *  @since C++11
    */
   template<typename _Tp>
     _GLIBCXX_NODISCARD
@@ -156,6 +167,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    *         operator&.
    *  @param  __r  Reference to an object or function.
    *  @return   The actual address.
+   *  @since C++11
   */
   template<typename _Tp>
     _GLIBCXX_NODISCARD

commit a7c5c4931f50b9898409d0101fad47abc9a223c3
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Dec 17 21:32:19 2024 +0000

    libstdc++: Fix std::future::wait_until for subsecond negative times [PR118093]
    
    The current check for negative times (i.e. before the epoch) only checks
    for a negative number of seconds. For a time 1ms before the epoch the
    seconds part will be zero, but the futex syscall will still fail with an
    EINVAL error. Extend the check to handle this case.
    
    This change adds a redundant check in the headers too, so that we avoid
    even calling into the library for negative times. Both checks can be
    marked [[unlikely]]. The check in the headers avoids the cost of
    splitting the time into seconds and nanoseconds and then making a PLT
    call. The check inside the library matches where we were checking
    already, and fixes existing binaries that were compiled against older
    headers but use a newer libstdc++.so.6 at runtime.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/118093
            * include/bits/atomic_futex.h (_M_load_and_test_until_impl):
            Return false for times before the epoch.
            * src/c++11/futex.cc (_M_futex_wait_until): Extend check for
            negative times to check for subsecond times. Add unlikely
            attribute.
            (_M_futex_wait_until_steady): Likewise.
            * testsuite/30_threads/future/members/118093.cc: New test.
    
    (cherry picked from commit 8ade3c3ea77e166f2873fb7ae57f9690e2b8d0e0)

diff --git a/libstdc++-v3/include/bits/atomic_futex.h b/libstdc++-v3/include/bits/atomic_futex.h
index dd654174873..390c3e500de 100644
--- a/libstdc++-v3/include/bits/atomic_futex.h
+++ b/libstdc++-v3/include/bits/atomic_futex.h
@@ -170,11 +170,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	bool __equal, memory_order __mo,
 	const chrono::time_point<std::chrono::system_clock, _Dur>& __atime)
     {
-      auto __s = chrono::time_point_cast<chrono::seconds>(__atime);
-      auto __ns = chrono::duration_cast<chrono::nanoseconds>(__atime - __s);
-      // XXX correct?
+      auto __d = __atime.time_since_epoch();
+      if (__d < __d.zero()) [[__unlikely__]]
+	return false;
+      auto __s = chrono::duration_cast<chrono::seconds>(__d);
+      auto __ns = chrono::duration_cast<chrono::nanoseconds>(__d - __s);
       return _M_load_and_test_until(__assumed, __operand, __equal, __mo,
-	  true, __s.time_since_epoch(), __ns);
+				    true, __s, __ns);
     }
 
     template<typename _Dur>
@@ -183,11 +185,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	bool __equal, memory_order __mo,
 	const chrono::time_point<std::chrono::steady_clock, _Dur>& __atime)
     {
-      auto __s = chrono::time_point_cast<chrono::seconds>(__atime);
-      auto __ns = chrono::duration_cast<chrono::nanoseconds>(__atime - __s);
-      // XXX correct?
+      auto __d = __atime.time_since_epoch();
+      if (__d < __d.zero()) [[__unlikely__]]
+	return false;
+      auto __s = chrono::duration_cast<chrono::seconds>(__d);
+      auto __ns = chrono::duration_cast<chrono::nanoseconds>(__d - __s);
       return _M_load_and_test_until_steady(__assumed, __operand, __equal, __mo,
-	  true, __s.time_since_epoch(), __ns);
+	  true, __s, __ns);
     }
 
   public:
diff --git a/libstdc++-v3/src/c++11/futex.cc b/libstdc++-v3/src/c++11/futex.cc
index ada2fdf3c41..6139fc354c6 100644
--- a/libstdc++-v3/src/c++11/futex.cc
+++ b/libstdc++-v3/src/c++11/futex.cc
@@ -128,7 +128,7 @@ namespace
 	if (!futex_clock_realtime_unavailable.load(std::memory_order_relaxed))
 	  {
 	    // futex sets errno=EINVAL for absolute timeouts before the epoch.
-	    if (__s.count() < 0)
+	    if (__s.count() < 0 || __ns.count() < 0) [[unlikely]]
 	      return false;
 
 	    syscall_timespec rt;
@@ -204,7 +204,7 @@ namespace
 	if (!futex_clock_monotonic_unavailable.load(std::memory_order_relaxed))
 	  {
 	    // futex sets errno=EINVAL for absolute timeouts before the epoch.
-	    if (__s.count() < 0) [[unlikely]]
+	    if (__s.count() < 0 || __ns.count() < 0) [[unlikely]]
 	      return false;
 
 	    syscall_timespec rt;
diff --git a/libstdc++-v3/testsuite/30_threads/future/members/118093.cc b/libstdc++-v3/testsuite/30_threads/future/members/118093.cc
new file mode 100644
index 00000000000..2bb1e1c6dad
--- /dev/null
+++ b/libstdc++-v3/testsuite/30_threads/future/members/118093.cc
@@ -0,0 +1,26 @@
+// { dg-do run { target c++11 } }
+
+#include <chrono>
+#include <future>
+
+void
+test_sys()
+{
+  std::promise<void> p;
+  std::chrono::system_clock::time_point tp(std::chrono::milliseconds{-10});
+  (void) p.get_future().wait_until(tp);
+}
+
+void
+test_steady()
+{
+  std::promise<void> p;
+  std::chrono::steady_clock::time_point tp(std::chrono::milliseconds{-10});
+  (void) p.get_future().wait_until(tp);
+}
+
+int main()
+{
+  test_sys();
+  test_steady();
+}

commit 409e766bea64027da3442c30c29799d37f802733
Author: Gerald Pfeifer <gerald@pfeifer.com>
Date:   Sat Aug 17 15:21:21 2024 +0200

    libstdc++: Update references to gcc.gnu.org/onlinedocs
    
    libstdc++-v3:
            * doc/xml/manual/abi.xml: Update reference to
            gcc.gnu.org/onlinedocs.
            * doc/xml/manual/concurrency_extensions.xml (interface): Ditto.
            * doc/xml/manual/extensions.xml: Ditto.
            * doc/xml/manual/parallel_mode.xml: Ditto.
            * doc/xml/manual/shared_ptr.xml: Ditto.
            * doc/xml/manual/using_exceptions.xml: Ditto. And change GNU GCC
            to GCC.
            * doc/html/index.html: Regenerate.
            * doc/html/manual/abi.html: Ditto.
            * doc/html/manual/ext_concurrency_impl.html: Ditto.
            * doc/html/manual/ext_demangling.html: Ditto.
            * doc/html/manual/memory.html: Ditto.
            * doc/html/manual/parallel_mode_design.html: Ditto.
            * doc/html/manual/parallel_mode_using.html: Ditto.
            * doc/html/manual/using_exceptions.html: Ditto.
    
    (cherry picked from commit e68ab0f16072af97f0898fa0a14e72fcda442775)

diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html
index 88ef8841266..395908f17a1 100644
--- a/libstdc++-v3/doc/html/index.html
+++ b/libstdc++-v3/doc/html/index.html
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="description" content="Short Contents Copyright (C) 2008-2025 FSF Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections. Manual Frequently Asked Questions API and Source Documentation" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="next" href="manual/index.html" title="The GNU C++ Library Manual" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr></table><hr /></div><div class="set" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"></a>The GNU C++ Library</h1></div><div><div class="abstract"><a id="contents"></a><p class="title"><strong>Short Contents</strong></p><p>
-      Copyright (C) 2008-2025
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="description" content="Short Contents Copyright (C) 2008-2024 FSF Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections. Manual Frequently Asked Questions API and Source Documentation" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="next" href="manual/index.html" title="The GNU C++ Library Manual" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr></table><hr /></div><div class="set" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"></a>The GNU C++ Library</h1></div><div><div class="abstract"><a id="contents"></a><p class="title"><strong>Short Contents</strong></p><p>
+      Copyright (C) 2008-2024
       <a class="link" href="https://www.fsf.org" target="_top">FSF
       </a>
     </p><p>
diff --git a/libstdc++-v3/doc/html/manual/abi.html b/libstdc++-v3/doc/html/manual/abi.html
index 0eb6a12a501..8dab47dbb93 100644
--- a/libstdc++-v3/doc/html/manual/abi.html
+++ b/libstdc++-v3/doc/html/manual/abi.html
@@ -28,7 +28,7 @@
   g++ command line options may change the ABI as a side-effect of
   use. Such flags include <code class="code">-fpack-struct</code> and
   <code class="code">-fno-exceptions</code>, but include others: see the complete
-  list in the GCC manual under the heading <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code%20Gen%20Options" target="_top">Options
+  list in the GCC manual under the heading <a class="link" href="https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code%20Gen%20Options" target="_top">Options
   for Code Generation Conventions</a>.
 </p><p>
   The configure options used when building a specific libstdc++
diff --git a/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html b/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
index 23b90f34572..669c07cf291 100644
--- a/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
+++ b/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
@@ -34,7 +34,7 @@ non-ancient x86 hardware, <code class="code">-march=native</code> usually does t
 trick.</p><p> For hosts without compiler intrinsics, but with capable
 hardware, hand-crafted assembly is selected. This is the case for the following hosts:
 </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>cris</p></li><li class="listitem"><p>hppa</p></li><li class="listitem"><p>i386</p></li><li class="listitem"><p>i486</p></li><li class="listitem"><p>m48k</p></li><li class="listitem"><p>mips</p></li><li class="listitem"><p>sparc</p></li></ul></div><p>And for the rest, a simulated atomic lock via pthreads.
-</p><p> Detailed information about compiler intrinsics for atomic operations can be found in the GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html" target="_top"> documentation</a>.
+</p><p>Detailed information about compiler intrinsics for atomic operations can be found in the GCC <a class="link" href="https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html" target="_top"> documentation</a>.
 </p><p> More details on the library fallbacks from the porting <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">section</a>.
 </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.thread"></a>Thread Abstraction</h3></div></div></div><p>A thin layer above IEEE 1003.1 (i.e. pthreads) is used to abstract
 the thread interface for GCC. This layer is called "gthread," and is
@@ -44,7 +44,7 @@ a POSIX-like interface.
 the current host. In libstdc++ implementation files,
 &lt;bits/gthr.h&gt; is used to select the proper gthreads file.
 </p><p>Within libstdc++ sources, all calls to underlying thread functionality
-use this layer. More detail as to the specific interface can be found in the source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">documentation</a>.
+use this layer. More detail as to the specific interface can be found in the source <a class="link" href="https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">documentation</a>.
 </p><p>By design, the gthread layer is interoperable with the types,
 functions, and usage found in the usual &lt;pthread.h&gt; file,
 including <code class="code">pthread_t</code>, <code class="code">pthread_once_t</code>, <code class="code">pthread_create</code>,
diff --git a/libstdc++-v3/doc/html/manual/ext_demangling.html b/libstdc++-v3/doc/html/manual/ext_demangling.html
index b5fb87b91c5..1eae99a1859 100644
--- a/libstdc++-v3/doc/html/manual/ext_demangling.html
+++ b/libstdc++-v3/doc/html/manual/ext_demangling.html
@@ -7,7 +7,7 @@
     original C++ source identifiers is called
     <span class="quote">“<span class="quote">demangling.</span>”</span>
   </p><p>
-    If you have read the <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html" target="_top">source
+    If you have read the <a class="link" href="https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html" target="_top">source
     documentation for <code class="code">namespace abi</code></a> then you are
     aware of the cross-vendor C++ ABI in use by GCC.  One of the
     exposed functions is used for demangling,
diff --git a/libstdc++-v3/doc/html/manual/memory.html b/libstdc++-v3/doc/html/manual/memory.html
index 3a2025b90d2..aca90892bda 100644
--- a/libstdc++-v3/doc/html/manual/memory.html
+++ b/libstdc++-v3/doc/html/manual/memory.html
@@ -525,7 +525,7 @@ available policies are:
        <code class="constant">_S_atomic</code>
        </p><p>
 Selected when GCC supports a builtin atomic compare-and-swap operation
-on the target processor (see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html" target="_top">Atomic
+on the target processor (see <a class="link" href="https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html" target="_top">Atomic
 Builtins</a>.)  The reference counts are maintained using a lock-free
 algorithm and GCC's atomic builtins, which provide the required memory
 synchronisation.
diff --git a/libstdc++-v3/doc/html/manual/parallel_mode_design.html b/libstdc++-v3/doc/html/manual/parallel_mode_design.html
index 1d5cbbc99d9..c2090940d24 100644
--- a/libstdc++-v3/doc/html/manual/parallel_mode_design.html
+++ b/libstdc++-v3/doc/html/manual/parallel_mode_design.html
@@ -174,7 +174,7 @@ i. e. it is a singleton. It can be read and written by calling
 <code class="code">__gnu_parallel::_Settings::set</code>, respectively.
 Please note that the first call return a const object, so direct manipulation
 is forbidden.
-See <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">
+See <a class="link" href="https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="_top">
   <code class="filename">&lt;parallel/settings.h&gt;</code></a>
 for complete details.
 </p><p>
diff --git a/libstdc++-v3/doc/html/manual/parallel_mode_using.html b/libstdc++-v3/doc/html/manual/parallel_mode_using.html
index 1f151f4ed7b..38d629fe74f 100644
--- a/libstdc++-v3/doc/html/manual/parallel_mode_using.html
+++ b/libstdc++-v3/doc/html/manual/parallel_mode_using.html
@@ -5,7 +5,7 @@
   not difficult: just compile your application with the compiler
   flag <code class="literal">-fopenmp</code>. This will link
   in <code class="code">libgomp</code>, the
-  <a class="link" href="http://gcc.gnu.org/onlinedocs/libgomp/" target="_top">GNU Offloading and
+  <a class="link" href="https://gcc.gnu.org/onlinedocs/libgomp/" target="_top">GNU Offloading and
     Multi Processing Runtime Library</a>,
   whose presence is mandatory.
 </p><p>
diff --git a/libstdc++-v3/doc/html/manual/using_exceptions.html b/libstdc++-v3/doc/html/manual/using_exceptions.html
index e5ef8be3a42..706b27e1479 100644
--- a/libstdc++-v3/doc/html/manual/using_exceptions.html
+++ b/libstdc++-v3/doc/html/manual/using_exceptions.html
@@ -166,8 +166,8 @@ exception neutrality and exception safety.
     implicitly generated magic necessary to
     support <code class="literal">try</code> and <code class="literal">catch</code> blocks
     and thrown objects. (Language support
-    for <code class="literal">-fno-exceptions</code> is documented in the GNU
-    GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options" target="_top">manual</a>.)
+    for <code class="literal">-fno-exceptions</code> is documented in the GCC 
+    <a class="link" href="https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options" target="_top">manual</a>.)
   </p><p>Before detailing the library support
     for <code class="literal">-fno-exceptions</code>, first a passing note on
     the things lost when this flag is used: it will break exceptions
diff --git a/libstdc++-v3/doc/xml/manual/abi.xml b/libstdc++-v3/doc/xml/manual/abi.xml
index a4ce866b884..15954ae880d 100644
--- a/libstdc++-v3/doc/xml/manual/abi.xml
+++ b/libstdc++-v3/doc/xml/manual/abi.xml
@@ -52,7 +52,7 @@
   g++ command line options may change the ABI as a side-effect of
   use. Such flags include <code>-fpack-struct</code> and
   <code>-fno-exceptions</code>, but include others: see the complete
-  list in the GCC manual under the heading <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code%20Gen%20Options">Options
+  list in the GCC manual under the heading <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code%20Gen%20Options">Options
   for Code Generation Conventions</link>.
 </para>
 
diff --git a/libstdc++-v3/doc/xml/manual/concurrency_extensions.xml b/libstdc++-v3/doc/xml/manual/concurrency_extensions.xml
index 6499fda58c3..e845431818b 100644
--- a/libstdc++-v3/doc/xml/manual/concurrency_extensions.xml
+++ b/libstdc++-v3/doc/xml/manual/concurrency_extensions.xml
@@ -267,7 +267,7 @@ hardware, hand-crafted assembly is selected. This is the case for the following
 <para>And for the rest, a simulated atomic lock via pthreads.
 </para>
 
-<para> Detailed information about compiler intrinsics for atomic operations can be found in the GCC <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html"> documentation</link>.
+<para>Detailed information about compiler intrinsics for atomic operations can be found in the GCC <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html"> documentation</link>.
 </para>
 
 <para> More details on the library fallbacks from the porting <link linkend="internals.thread_safety">section</link>.
@@ -290,7 +290,7 @@ the current host. In libstdc++ implementation files,
 </para>
 
 <para>Within libstdc++ sources, all calls to underlying thread functionality
-use this layer. More detail as to the specific interface can be found in the source <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html">documentation</link>.
+use this layer. More detail as to the specific interface can be found in the source <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html">documentation</link>.
 </para>
 
 <para>By design, the gthread layer is interoperable with the types,
diff --git a/libstdc++-v3/doc/xml/manual/extensions.xml b/libstdc++-v3/doc/xml/manual/extensions.xml
index 490a50cc331..d0460b0d90c 100644
--- a/libstdc++-v3/doc/xml/manual/extensions.xml
+++ b/libstdc++-v3/doc/xml/manual/extensions.xml
@@ -504,7 +504,7 @@ get_temporary_buffer(5, (int*)0);
     <quote>demangling.</quote>
   </para>
   <para>
-    If you have read the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html">source
+    If you have read the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html">source
     documentation for <code>namespace abi</code></link> then you are
     aware of the cross-vendor C++ ABI in use by GCC.  One of the
     exposed functions is used for demangling,
diff --git a/libstdc++-v3/doc/xml/manual/parallel_mode.xml b/libstdc++-v3/doc/xml/manual/parallel_mode.xml
index cabb9d76a4c..22f432f762c 100644
--- a/libstdc++-v3/doc/xml/manual/parallel_mode.xml
+++ b/libstdc++-v3/doc/xml/manual/parallel_mode.xml
@@ -121,7 +121,7 @@ It might work with other compilers, though.</para>
   flag <literal>-fopenmp</literal>. This will link
   in <code>libgomp</code>, the
   <link xmlns:xlink="http://www.w3.org/1999/xlink"
-    xlink:href="http://gcc.gnu.org/onlinedocs/libgomp/">GNU Offloading and
+    xlink:href="https://gcc.gnu.org/onlinedocs/libgomp/">GNU Offloading and
     Multi Processing Runtime Library</link>,
   whose presence is mandatory.
 </para>
@@ -739,7 +739,7 @@ i. e. it is a singleton. It can be read and written by calling
 <code>__gnu_parallel::_Settings::set</code>, respectively.
 Please note that the first call return a const object, so direct manipulation
 is forbidden.
-See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html">
+See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html">
   <filename class="headerfile">&lt;parallel/settings.h&gt;</filename></link>
 for complete details.
 </para>
diff --git a/libstdc++-v3/doc/xml/manual/shared_ptr.xml b/libstdc++-v3/doc/xml/manual/shared_ptr.xml
index 07cc4d52715..3d59a04c504 100644
--- a/libstdc++-v3/doc/xml/manual/shared_ptr.xml
+++ b/libstdc++-v3/doc/xml/manual/shared_ptr.xml
@@ -243,7 +243,7 @@ available policies are:
        </para>
        <para>
 Selected when GCC supports a builtin atomic compare-and-swap operation
-on the target processor (see <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html">Atomic
+on the target processor (see <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html">Atomic
 Builtins</link>.)  The reference counts are maintained using a lock-free
 algorithm and GCC's atomic builtins, which provide the required memory
 synchronisation.
diff --git a/libstdc++-v3/doc/xml/manual/using_exceptions.xml b/libstdc++-v3/doc/xml/manual/using_exceptions.xml
index b7a0cc08497..ab42c809939 100644
--- a/libstdc++-v3/doc/xml/manual/using_exceptions.xml
+++ b/libstdc++-v3/doc/xml/manual/using_exceptions.xml
@@ -282,8 +282,8 @@ exception neutrality and exception safety.
     implicitly generated magic necessary to
     support <literal>try</literal> and <literal>catch</literal> blocks
     and thrown objects. (Language support
-    for <literal>-fno-exceptions</literal> is documented in the GNU
-    GCC <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options">manual</link>.)
+    for <literal>-fno-exceptions</literal> is documented in the GCC 
+    <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options">manual</link>.)
   </para>
 
   <para>Before detailing the library support

commit 61de759f943ce0a5981affeee19debc82ec43744
Author: Christophe Lyon <christophe.lyon@linaro.org>
Date:   Sun Nov 24 18:08:48 2024 +0000

    arm: [MVE intrinsics] Fix support for predicate constants [PR target/114801]
    
    This backport is a cherry pick of commit
    2089009210a1774c37e527ead8bbcaaa1a7a9d2d, with a small change needed
    because force_lowpart_subreg does not exist in gcc-14: the patch
    replaces it with the equivalent:
    
    -    x = force_lowpart_subreg (mode, x, GET_MODE (x));
    +    {
    +      auto byte = subreg_lowpart_offset (mode, GET_MODE (x));
    +      x = force_subreg (mode, x, GET_MODE (x), byte);
    +    }
    
    In this PR, we have to handle a case where MVE predicates are supplied
    as a const_int, where individual predicates have illegal boolean
    values (such as 0xc for a 4-bit boolean predicate).  To avoid the ICE,
    fix the constant (any non-zero value is converted to all 1s) and emit
    a warning.
    
    On MVE, V8BI and V4BI multi-bit masks are interpreted byte-by-byte at
    instruction level, but end-users should describe lanes rather than
    bytes (so all bytes of a true-predicated lane should be '1'), see the
    section on MVE intrinsics in the Arm ACLE specification.
    
    Since force_lowpart_subreg cannot handle const_int (because they have VOID mode),
    use gen_lowpart on them, force_lowpart_subreg otherwise.
    
    2024-11-20  Christophe Lyon  <christophe.lyon@linaro.org>
                Jakub Jelinek  <jakub@redhat.com>
    
            PR target/114801
            gcc/
            * config/arm/arm-mve-builtins.cc
            (function_expander::add_input_operand): Handle CONST_INT
            predicates.
    
            gcc/testsuite/
            * gcc.target/arm/mve/pr108443.c: Update predicate constant.
            * gcc.target/arm/mve/pr108443-run.c: Likewise.
            * gcc.target/arm/mve/pr114801.c: New test.
    
    (cherry picked from commit 2089009210a1774c37e527ead8bbcaaa1a7a9d2d)

diff --git a/gcc/config/arm/arm-mve-builtins.cc b/gcc/config/arm/arm-mve-builtins.cc
index e1826ae4052..c57bf0844b0 100644
--- a/gcc/config/arm/arm-mve-builtins.cc
+++ b/gcc/config/arm/arm-mve-builtins.cc
@@ -2107,7 +2107,40 @@ function_expander::add_input_operand (insn_code icode, rtx x)
       mode = GET_MODE (x);
     }
   else if (VALID_MVE_PRED_MODE (mode))
-    x = gen_lowpart (mode, x);
+    {
+      if (CONST_INT_P (x))
+	{
+	  if (mode == V8BImode || mode == V4BImode)
+	    {
+	      /* In V8BI or V4BI each element has 2 or 4 bits, if those bits
+		 aren't all the same, gen_lowpart might ICE.  Canonicalize all
+		 the 2 or 4 bits to all ones if any of them is non-zero.  V8BI
+		 and V4BI multi-bit masks are interpreted byte-by-byte at
+		 instruction level, but such constants should describe lanes,
+		 rather than bytes.  See the section on MVE intrinsics in the
+		 Arm ACLE specification.  */
+	      unsigned HOST_WIDE_INT xi = UINTVAL (x);
+	      xi |= ((xi & 0x5555) << 1) | ((xi & 0xaaaa) >> 1);
+	      if (mode == V4BImode)
+		xi |= ((xi & 0x3333) << 2) | ((xi & 0xcccc) >> 2);
+	      if (xi != UINTVAL (x))
+		warning_at (location, 0, "constant predicate argument %d"
+			    " (%wx) does not map to %d lane numbers,"
+			    " converted to %wx",
+			    opno, UINTVAL (x) & 0xffff,
+			    mode == V8BImode ? 8 : 4,
+			    xi & 0xffff);
+
+	      x = gen_int_mode (xi, HImode);
+	    }
+	  x = gen_lowpart (mode, x);
+	}
+      else
+	{
+	  auto byte = subreg_lowpart_offset (mode, GET_MODE (x));
+	  x = force_subreg (mode, x, GET_MODE (x), byte);
+	}
+    }
 
   m_ops.safe_grow (m_ops.length () + 1, true);
   create_input_operand (&m_ops.last (), x, mode);
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c b/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
index cb4b45bd305..b894f019b8b 100644
--- a/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
+++ b/gcc/testsuite/gcc.target/arm/mve/pr108443-run.c
@@ -16,7 +16,7 @@ __attribute__ ((noipa)) partial_write (uint32_t *a, uint32x4_t v, unsigned short
 
 int main (void)
 {
-  unsigned short p = 0x00CC;
+  unsigned short p = 0x00FF;
   uint32_t a[] = {0, 0, 0, 0};
   uint32_t b[] = {0, 0, 0, 0};
   uint32x4_t v = vdupq_n_u32 (0xFFFFFFFFU);
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr108443.c b/gcc/testsuite/gcc.target/arm/mve/pr108443.c
index c5fbfa4a1bb..0c0e2dd6eb8 100644
--- a/gcc/testsuite/gcc.target/arm/mve/pr108443.c
+++ b/gcc/testsuite/gcc.target/arm/mve/pr108443.c
@@ -7,8 +7,8 @@
 void
 __attribute__ ((noipa)) partial_write_cst (uint32_t *a, uint32x4_t v)
 {
-  vstrwq_p_u32 (a, v, 0x00CC);
+  vstrwq_p_u32 (a, v, 0x00FF);
 }
 
-/* { dg-final { scan-assembler {mov\tr[0-9]+, #204} } } */
+/* { dg-final { scan-assembler {mov\tr[0-9]+, #255} } } */
 
diff --git a/gcc/testsuite/gcc.target/arm/mve/pr114801.c b/gcc/testsuite/gcc.target/arm/mve/pr114801.c
new file mode 100644
index 00000000000..ab3130fd4ce
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/mve/pr114801.c
@@ -0,0 +1,39 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target arm_v8_1m_mve_ok } */
+/* { dg-options "-O2" } */
+/* { dg-add-options arm_v8_1m_mve } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
+
+#include <arm_mve.h>
+
+/*
+** test_32:
+**...
+**	mov	r[0-9]+, #65295	@ movhi
+**...
+*/
+uint32x4_t test_32() {
+  /* V4BI predicate converted to 0xff0f.  */
+  return vdupq_m_n_u32(vdupq_n_u32(0xffffffff), 0, 0x4f02); /* { dg-warning {constant predicate argument 3 \(0x4f02\) does not map to 4 lane numbers, converted to 0xff0f} } */
+}
+
+/*
+** test_16:
+**...
+**	mov	r[0-9]+, #12339	@ movhi
+**...
+*/
+uint16x8_t test_16() {
+  /* V8BI predicate converted to 0x3033.  */
+  return vdupq_m_n_u16(vdupq_n_u16(0xffff), 0, 0x3021); /* { dg-warning {constant predicate argument 3 \(0x3021\) does not map to 8 lane numbers, converted to 0x3033} } */
+}
+
+/*
+** test_8:
+**...
+**	mov	r[0-9]+, #23055	@ movhi
+**...
+*/
+uint8x16_t test_8() {
+  return vdupq_m_n_u8(vdupq_n_u8(0xff), 0, 0x5a0f);
+}

commit e6dfe71f5a0e43e8c35460d09af16eff93756dfd
Author: Marek Polacek <polacek@redhat.com>
Date:   Wed Sep 18 15:44:31 2024 -0400

    c++: concept in default argument [PR109859]
    
    1) We're hitting the assert in cp_parser_placeholder_type_specifier.
    It says that if it turns out to be false, we should do error() instead.
    Do so, then.
    
    2) lambda-targ8.C should compile fine, though.  The problem was that
    local_variables_forbidden_p wasn't cleared when we're about to parse
    the optional template-parameter-list for a lambda in a default argument.
    
            PR c++/109859
    
    gcc/cp/ChangeLog:
    
            * parser.cc (cp_parser_lambda_declarator_opt): Temporarily clear
            local_variables_forbidden_p.
            (cp_parser_placeholder_type_specifier): Turn an assert into an
            error.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/concepts-defarg3.C: New test.
            * g++.dg/cpp2a/lambda-targ8.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 4bcfaaed25b1b8ecc81f6a28d9ca76f00870dedf)

diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index adb10228782..725b5ef4ad6 100644
--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -11830,6 +11830,11 @@ cp_parser_lambda_declarator_opt (cp_parser* parser, tree lambda_expr)
 		 "lambda templates are only available with "
 		 "%<-std=c++20%> or %<-std=gnu++20%>");
 
+      /* Even though the whole lambda may be a default argument, its
+	 template-parameter-list is a context where it's OK to create
+	 new parameters.  */
+      auto lvf = make_temp_override (parser->local_variables_forbidden_p, 0u);
+
       cp_lexer_consume_token (parser->lexer);
 
       template_param_list = cp_parser_template_parameter_list (parser);
@@ -20776,8 +20781,8 @@ cp_parser_placeholder_type_specifier (cp_parser *parser, location_t loc,
       /* In a default argument we may not be creating new parameters.  */
       if (parser->local_variables_forbidden_p & LOCAL_VARS_FORBIDDEN)
 	{
-	  /* If this assert turns out to be false, do error() instead.  */
-	  gcc_assert (tentative);
+	  if (!tentative)
+	    error_at (loc, "invalid use of concept-name %qD", con);
 	  return error_mark_node;
 	}
       return build_constrained_parameter (con, proto, args);
diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-defarg3.C b/gcc/testsuite/g++.dg/cpp2a/concepts-defarg3.C
new file mode 100644
index 00000000000..6fe82f91e43
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/concepts-defarg3.C
@@ -0,0 +1,8 @@
+// PR c++/109859
+// { dg-do compile { target c++20 } }
+
+template<class>
+concept C = true;
+
+template <class = C> // { dg-error "invalid use of concept-name .C." }
+int f();
diff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-targ8.C b/gcc/testsuite/g++.dg/cpp2a/lambda-targ8.C
new file mode 100644
index 00000000000..3685b0ef880
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/lambda-targ8.C
@@ -0,0 +1,10 @@
+// PR c++/109859
+// { dg-do compile { target c++20 } }
+
+template<typename>
+concept A = true;
+
+template<auto = []<A a> {}>
+int x;
+
+void g() { (void) x<>; }

commit da983b32877c86e8fa28027a0e20931527bb437b
Author: Marek Polacek <polacek@redhat.com>
Date:   Wed May 8 15:43:58 2024 -0400

    c++: ICE with reference NSDMI [PR114854]
    
    Here we crash on a cp_gimplify_expr/TARGET_EXPR assert:
    
          /* A TARGET_EXPR that expresses direct-initialization should have been
             elided by cp_gimplify_init_expr.  */
          gcc_checking_assert (!TARGET_EXPR_DIRECT_INIT_P (*expr_p));
    
    the TARGET_EXPR in question is created for the NSDMI in:
    
      class Vector { int m_size; };
      struct S {
        const Vector &vec{};
      };
    
    where we first need to create a Vector{} temporary, and then bind the
    vec reference to it.  The temporary is represented by a TARGET_EXPR
    and it cannot be elided.  When we create an object of type S, we get
    
      D.2848 = {.vec=(const struct Vector &) &TARGET_EXPR <D.2840, {.m_size=0}>}
    
    where the TARGET_EXPR is no longer direct-initializing anything.
    
    Fixed by not setting TARGET_EXPR_DIRECT_INIT_P in convert_like_internal/ck_user.
    
            PR c++/114854
    
    gcc/cp/ChangeLog:
    
            * call.cc (convert_like_internal) <case ck_user>: Don't set
            TARGET_EXPR_DIRECT_INIT_P.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp1y/nsdmi-aggr22.C: New test.
    
    (cherry picked from commit 1a05332bbac98a4c002bef3fb45a3ad9d56b3a71)

diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc
index efc9072ab98..f75956f7dc2 100644
--- a/gcc/cp/call.cc
+++ b/gcc/cp/call.cc
@@ -8602,16 +8602,12 @@ convert_like_internal (conversion *convs, tree expr, tree fn, int argnum,
 	    && TYPE_HAS_DEFAULT_CONSTRUCTOR (totype)
 	    && !processing_template_decl)
 	  {
-	    bool direct = CONSTRUCTOR_IS_DIRECT_INIT (expr);
 	    if (abstract_virtuals_error (NULL_TREE, totype, complain))
 	      return error_mark_node;
 	    expr = build_value_init (totype, complain);
 	    expr = get_target_expr (expr, complain);
 	    if (expr != error_mark_node)
-	      {
-		TARGET_EXPR_LIST_INIT_P (expr) = true;
-		TARGET_EXPR_DIRECT_INIT_P (expr) = direct;
-	      }
+	      TARGET_EXPR_LIST_INIT_P (expr) = true;
 	    return expr;
 	  }
 
diff --git a/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr22.C b/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr22.C
new file mode 100644
index 00000000000..a4f9ae19ca9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr22.C
@@ -0,0 +1,12 @@
+// PR c++/114854
+// { dg-do compile { target c++14 } }
+
+struct Vector {
+  int m_size;
+};
+struct S {
+  const Vector &vec{};
+};
+
+void spawn(S);
+void test() { spawn({}); }

commit 13242e5bb690da993941b7d942f7e55d461858cf
Author: Marek Polacek <polacek@redhat.com>
Date:   Thu Aug 15 18:47:29 2024 -0400

    c++: ICE with enum and conversion fn in template [PR115657]
    
    Here we initialize an enumerator with a class prvalue with a conversion
    function.  When we fold it in build_enumerator, we create a TARGET_EXPR
    for the object, and subsequently crash in tsubst_expr, which should not
    see such a code.
    
    Normally, we fix similar problems by using an IMPLICIT_CONV_EXPR but here
    I may get away with not using the result of fold_non_dependent_expr unless
    the result is a constant.  A TARGET_EXPR is not constant.
    
            PR c++/115657
    
    gcc/cp/ChangeLog:
    
            * decl.cc (build_enumerator): Call maybe_fold_non_dependent_expr
            instead of fold_non_dependent_expr.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp1y/constexpr-recursion2.C: New test.
            * g++.dg/template/conv21.C: New test.
    
    (cherry picked from commit 53283c3231a7b94e728619cccbf21170fb36b2a8)

diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc
index ada0a0c2299..02119105058 100644
--- a/gcc/cp/decl.cc
+++ b/gcc/cp/decl.cc
@@ -17385,9 +17385,15 @@ build_enumerator (tree name, tree value, tree enumtype, tree attributes,
   tree type;
 
   /* scalar_constant_value will pull out this expression, so make sure
-     it's folded as appropriate.  */
+     it's folded as appropriate.
+
+     Creating a TARGET_EXPR in a template breaks when substituting, and
+     here we would create it for instance when using a class prvalue with
+     a user-defined conversion function.  So don't use such a tree.  We
+     instantiate VALUE here to get errors about bad enumerators even in
+     a template that does not get instantiated.  */
   if (processing_template_decl)
-    value = fold_non_dependent_expr (value);
+    value = maybe_fold_non_dependent_expr (value);
 
   /* If the VALUE was erroneous, pretend it wasn't there; that will
      result in the enum being assigned the next value in sequence.  */
diff --git a/gcc/testsuite/g++.dg/cpp1y/constexpr-recursion2.C b/gcc/testsuite/g++.dg/cpp1y/constexpr-recursion2.C
new file mode 100644
index 00000000000..f268f52e2b5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/constexpr-recursion2.C
@@ -0,0 +1,22 @@
+// PR c++/115657
+// { dg-do compile { target c++14 } }
+// { dg-options "-Wall" }
+
+// Like constexpr-recursion1.C but use a class with a conversion function.
+
+struct X {
+  constexpr operator int() { return 0; }
+};
+
+template <int N>
+constexpr X f1 ()
+{
+  enum E { a = f1<0> () }; // { dg-error "called in a constant expression before its definition is complete|is not an integer constant" }
+  return {};
+}
+
+constexpr X f3 ()
+{
+  enum E { a = f3 () };	// { dg-error "called in a constant expression before its definition is complete|is not an integer constant" }
+  return {};
+}
diff --git a/gcc/testsuite/g++.dg/template/conv21.C b/gcc/testsuite/g++.dg/template/conv21.C
new file mode 100644
index 00000000000..1dc7b3d50d9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/conv21.C
@@ -0,0 +1,14 @@
+// PR c++/115657
+// { dg-do compile { target c++11 } }
+
+struct NonIntegral
+{
+    constexpr operator int() { return 0; }
+};
+
+template<typename T> struct TemplatedStructural
+{
+    enum { e = NonIntegral{} };
+};
+
+template struct TemplatedStructural<void>;

commit 078089a084f4fd20812b15cd1ec7bd4bcd5c9282
Author: Marek Polacek <polacek@redhat.com>
Date:   Thu Aug 29 15:13:03 2024 -0400

    c++: mutable temps in rodata [PR116369]
    
    Here we wrongly mark the reference temporary for g TREE_READONLY,
    so it's put in .rodata and so we can't modify its subobject even
    when the subobject is marked mutable.  This is so since r9-869.
    r14-1785 fixed a similar problem, but not in set_up_extended_ref_temp.
    
            PR c++/116369
    
    gcc/cp/ChangeLog:
    
            * call.cc (set_up_extended_ref_temp): Don't mark a temporary
            TREE_READONLY if its type is TYPE_HAS_MUTABLE_P.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/tree-ssa/initlist-opt7.C: New test.
    
    (cherry picked from commit 2801a49d1144bce5568b527d1972952ad3420f66)

diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc
index f75956f7dc2..1609a64c3fa 100644
--- a/gcc/cp/call.cc
+++ b/gcc/cp/call.cc
@@ -13905,7 +13905,9 @@ set_up_extended_ref_temp (tree decl, tree expr, vec<tree, va_gc> **cleanups,
   init = cp_fully_fold (init);
   if (TREE_CONSTANT (init))
     {
-      if (literal_type_p (type) && CP_TYPE_CONST_NON_VOLATILE_P (type))
+      if (literal_type_p (type)
+	  && CP_TYPE_CONST_NON_VOLATILE_P (type)
+	  && !TYPE_HAS_MUTABLE_P (type))
 	{
 	  /* 5.19 says that a constant expression can include an
 	     lvalue-rvalue conversion applied to "a glvalue of literal type
diff --git a/gcc/testsuite/g++.dg/tree-ssa/initlist-opt7.C b/gcc/testsuite/g++.dg/tree-ssa/initlist-opt7.C
new file mode 100644
index 00000000000..2420db502a6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/initlist-opt7.C
@@ -0,0 +1,13 @@
+// PR c++/116369
+// { dg-do run { target c++11 } }
+
+struct f{
+  mutable int t;
+};
+
+const f &g = {1};
+
+int main()
+{
+  g.t++;
+}

commit df3ae94a5eb3090e59d5fd8d3ccc3d8231bac87f
Author: Marek Polacek <polacek@redhat.com>
Date:   Thu Sep 5 16:45:32 2024 -0400

    c++: ICE with structured bindings and m-d array [PR102594]
    
    We ICE in decay_conversion with this test:
    
      struct S {
        S() {}
      };
      S arr[1][1];
      auto [m](arr3);
    
    But not when the last line is:
    
      auto [n] = arr3;
    
    Therefore the difference is between copy- and direct-init.  In
    particular, in build_vec_init we have:
    
      if (direct_init)
        from = build_tree_list (NULL_TREE, from);
    
    and then we call build_vec_init again with init==from.  Then
    decay_conversion gets the TREE_LIST and it crashes.
    
    build_aggr_init has:
    
                  /* Wrap the initializer in a CONSTRUCTOR so that build_vec_init
                     recognizes it as direct-initialization.  */
                  init = build_constructor_single (init_list_type_node,
                                                   NULL_TREE, init);
                  CONSTRUCTOR_IS_DIRECT_INIT (init) = true;
    
    so I propose to do the same in build_vec_init.
    
            PR c++/102594
    
    gcc/cp/ChangeLog:
    
            * init.cc (build_vec_init): Build up a CONSTRUCTOR to signal
            direct-initialization rather than a TREE_LIST.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp1z/decomp61.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 96e0370f4daef29b918aafcff68c7f5e4ef397fd)

diff --git a/gcc/cp/init.cc b/gcc/cp/init.cc
index 5a994378451..f9b651be460 100644
--- a/gcc/cp/init.cc
+++ b/gcc/cp/init.cc
@@ -4919,7 +4919,13 @@ build_vec_init (tree base, tree maxindex, tree init,
 	      if (xvalue)
 		from = move (from);
 	      if (direct_init)
-		from = build_tree_list (NULL_TREE, from);
+		{
+		  /* Wrap the initializer in a CONSTRUCTOR so that
+		     build_vec_init recognizes it as direct-initialization.  */
+		  from = build_constructor_single (init_list_type_node,
+						   NULL_TREE, from);
+		  CONSTRUCTOR_IS_DIRECT_INIT (from) = true;
+		}
 	    }
 	  else
 	    from = NULL_TREE;
diff --git a/gcc/testsuite/g++.dg/cpp1z/decomp61.C b/gcc/testsuite/g++.dg/cpp1z/decomp61.C
new file mode 100644
index 00000000000..ad0a20c1add
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/decomp61.C
@@ -0,0 +1,28 @@
+// PR c++/102594
+// { dg-do compile { target c++17 } }
+
+struct S {
+  S() {}
+};
+S arr1[2];
+S arr2[2][1];
+S arr3[1][1];
+auto [m](arr3);
+auto [n] = arr3;
+
+struct X {
+  int i;
+};
+
+void
+g (X x)
+{
+  auto [a, b](arr2);
+  auto [c, d] = arr2;
+  auto [e, f] = (arr2);
+  auto [i, j](arr1);
+  auto [k, l] = arr1;
+  auto [m, n] = (arr1);
+  auto [z] = x;
+  auto [y](x);
+}

commit 3fe6135b62f190921db6dcae7bc2f9582ca4e7c2
Author: Marek Polacek <polacek@redhat.com>
Date:   Tue Sep 3 13:04:09 2024 -0400

    c++: noexcept and pointer to member function type [PR113108]
    
    We ICE in nothrow_spec_p because it got a DEFERRED_NOEXCEPT.
    This DEFERRED_NOEXCEPT was created in implicitly_declare_fn
    when declaring
    
      Foo& operator=(Foo&&) = default;
    
    in the test.  The problem is that in resolve_overloaded_unification
    we call maybe_instantiate_noexcept before try_one_overload only in
    the TEMPLATE_ID_EXPR case.
    
            PR c++/113108
    
    gcc/cp/ChangeLog:
    
            * pt.cc (resolve_overloaded_unification): Call
            maybe_instantiate_noexcept.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp1z/noexcept-type28.C: New test.
    
    (cherry picked from commit c755c7a32590e2eef5a8b062b9756c1513910246)

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 4f83426fb56..c2c66a7567a 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -23799,6 +23799,8 @@ resolve_overloaded_unification (tree tparms,
     for (lkp_iterator iter (arg); iter; ++iter)
       {
 	tree fn = *iter;
+	if (flag_noexcept_type)
+	  maybe_instantiate_noexcept (fn, tf_none);
 	if (try_one_overload (tparms, targs, tempargs, parm, TREE_TYPE (fn),
 			      strict, sub_strict, addr_p, explain_p)
 	    && (!goodfn || !decls_match (goodfn, fn)))
diff --git a/gcc/testsuite/g++.dg/cpp1z/noexcept-type28.C b/gcc/testsuite/g++.dg/cpp1z/noexcept-type28.C
new file mode 100644
index 00000000000..bf0b927b8ec
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/noexcept-type28.C
@@ -0,0 +1,18 @@
+// PR c++/113108
+// { dg-do compile { target c++17 } }
+
+template <typename T>
+struct Foo {
+    Foo& operator=(Foo&&) = default;
+    T data;
+};
+
+template <typename T>
+void consume(Foo<T>& (Foo<T>::*)(Foo<T>&&) ) {}
+
+template <typename T>
+void consume(Foo<T>& (Foo<T>::*)(Foo<T>&&) noexcept) {}
+
+int main() {
+    consume(&Foo<int>::operator=);
+}

commit 21600f3a6f23390c25a73e1cbfcfc544b7133d53
Author: Marek Polacek <polacek@redhat.com>
Date:   Tue Jun 25 17:42:01 2024 -0400

    c++: unresolved overload with comma op [PR115430]
    
    This works:
    
      template<typename T>
      int Func(T);
      typedef int (*funcptrtype)(int);
      funcptrtype fp0 = &Func<int>;
    
    but this doesn't:
    
      funcptrtype fp2 = (0, &Func<int>);
    
    because we only call resolve_nondeduced_context on the LHS (via
    convert_to_void) but not on the RHS, so cp_build_compound_expr's
    type_unknown_p check issues an error.
    
            PR c++/115430
    
    gcc/cp/ChangeLog:
    
            * typeck.cc (cp_build_compound_expr): Call resolve_nondeduced_context
            on RHS.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/noexcept41.C: Remove dg-error.
            * g++.dg/overload/addr3.C: New test.
    
    (cherry picked from commit c847dcf94499da62e5a28921b404e6e561645d99)

diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc
index 0982fed58a5..ebb4c8b7bb9 100644
--- a/gcc/cp/typeck.cc
+++ b/gcc/cp/typeck.cc
@@ -8169,6 +8169,8 @@ cp_build_compound_expr (tree lhs, tree rhs, tsubst_flags_t complain)
       return rhs;
     }
 
+  rhs = resolve_nondeduced_context (rhs, complain);
+
   if (type_unknown_p (rhs))
     {
       if (complain & tf_error)
@@ -8176,7 +8178,7 @@ cp_build_compound_expr (tree lhs, tree rhs, tsubst_flags_t complain)
 		  "no context to resolve type of %qE", rhs);
       return error_mark_node;
     }
-  
+
   tree ret = build2 (COMPOUND_EXPR, TREE_TYPE (rhs), lhs, rhs);
   if (eptype)
     ret = build1 (EXCESS_PRECISION_EXPR, eptype, ret);
diff --git a/gcc/testsuite/g++.dg/cpp0x/noexcept41.C b/gcc/testsuite/g++.dg/cpp0x/noexcept41.C
index 4cd3d8d7854..7c65cebb618 100644
--- a/gcc/testsuite/g++.dg/cpp0x/noexcept41.C
+++ b/gcc/testsuite/g++.dg/cpp0x/noexcept41.C
@@ -9,4 +9,4 @@ template <typename> struct a {
 };
 template <typename d, typename c> auto f(d &&, c &&) -> decltype(declval<c>);
 struct e {};
-static_assert((e{}, declval<a<int>>),""); // { dg-error "no context to resolve type" }
+static_assert((e{}, declval<a<int>>),"");
diff --git a/gcc/testsuite/g++.dg/overload/addr3.C b/gcc/testsuite/g++.dg/overload/addr3.C
new file mode 100644
index 00000000000..b203326de32
--- /dev/null
+++ b/gcc/testsuite/g++.dg/overload/addr3.C
@@ -0,0 +1,24 @@
+// PR c++/115430
+// { dg-do compile }
+
+template<typename T>
+int Func(T);
+typedef int (*funcptrtype)(int);
+funcptrtype fp0 = &Func<int>;
+funcptrtype fp1 = +&Func<int>;
+funcptrtype fp2 = (0, &Func<int>);
+funcptrtype fp3 = (0, +&Func<int>);
+funcptrtype fp4 = (0, 1, &Func<int>);
+
+template<typename T>
+void
+g ()
+{
+  funcptrtype fp5 = (0, &Func<T>);
+}
+
+void
+f ()
+{
+  g<int>();
+}

commit dedaccb4a0dedb47facf7af3b044ac684e9b29ff
Author: Marek Polacek <polacek@redhat.com>
Date:   Thu Dec 12 14:56:07 2024 -0500

    c++: ICE initializing array of aggrs [PR117985]
    
    This crash started with my r12-7803 but I believe the problem lies
    elsewhere.
    
    build_vec_init has cleanup_flags whose purpose is -- if I grok this
    correctly -- to avoid destructing an object multiple times.  Let's
    say we are initializing an array of A.  Then we might end up in
    a scenario similar to initlist-eh1.C:
    
      try
        {
          call A::A in a loop
          // #0
          try
            {
              call a fn using the array
            }
          finally
            {
              // #1
              call A::~A in a loop
            }
        }
      catch
        {
          // #2
          call A::~A in a loop
        }
    
    cleanup_flags makes us emit a statement like
    
      D.3048 = 2;
    
    at #0 to disable performing the cleanup at #2, since #1 will take
    care of the destruction of the array.
    
    But if we are not emitting the loop because we can use a constant
    initializer (and use a single { a, b, ...}), we shouldn't generate
    the statement resetting the iterator to its initial value.  Otherwise
    we crash in gimplify_var_or_parm_decl because it gets the stray decl
    D.3048.
    
            PR c++/117985
    
    gcc/cp/ChangeLog:
    
            * init.cc (build_vec_init): Pop CLEANUP_FLAGS if we're not
            generating the loop.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/initlist-array23.C: New test.
            * g++.dg/cpp0x/initlist-array24.C: New test.
    
    (cherry picked from commit 40e5636e086e51f5908a1a01be9cba2218dc26d8)

diff --git a/gcc/cp/init.cc b/gcc/cp/init.cc
index f9b651be460..f363e5960fe 100644
--- a/gcc/cp/init.cc
+++ b/gcc/cp/init.cc
@@ -5062,6 +5062,15 @@ build_vec_init (tree base, tree maxindex, tree init,
     {
       if (!saw_non_const)
 	{
+	  /* If we're not generating the loop, we don't need to reset the
+	     iterator.  */
+	  if (cleanup_flags
+	      && !vec_safe_is_empty (*cleanup_flags))
+	    {
+	      auto l = (*cleanup_flags)->last ();
+	      gcc_assert (TREE_PURPOSE (l) == iterator);
+	      (*cleanup_flags)->pop ();
+	    }
 	  tree const_init = build_constructor (atype, const_vec);
 	  return build2 (INIT_EXPR, atype, obase, const_init);
 	}
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist-array23.C b/gcc/testsuite/g++.dg/cpp0x/initlist-array23.C
new file mode 100644
index 00000000000..cda2afb9fcc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist-array23.C
@@ -0,0 +1,28 @@
+// PR c++/117985
+// { dg-do compile { target c++11 } }
+
+struct _Vector_impl {
+  constexpr
+    _Vector_impl() {}
+};
+struct _Vector_base {
+  ~_Vector_base();
+  _Vector_impl _M_impl;
+};
+struct vector : private _Vector_base {};
+struct string {
+  string();
+};
+struct VEC {
+  vector pane{};
+};
+struct FOO {
+  VEC screen[1]{};
+  string debug_name;
+};
+
+int
+main ()
+{
+  FOO{};
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist-array24.C b/gcc/testsuite/g++.dg/cpp0x/initlist-array24.C
new file mode 100644
index 00000000000..7dda00d5c0b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist-array24.C
@@ -0,0 +1,27 @@
+// PR c++/117985
+// { dg-do compile { target c++20 } }
+
+struct _Vector_impl {
+  constexpr _Vector_impl() {}
+};
+struct _Vector_base {
+  constexpr ~_Vector_base() {}
+  _Vector_impl _M_impl;
+};
+struct vector : private _Vector_base {};
+struct string {
+  string();
+};
+struct VEC {
+  vector pane{};
+};
+struct FOO {
+  VEC screen[1]{};
+  string debug_name;
+};
+
+int
+main ()
+{
+  FOO{};
+}

commit 1f509da6d7c9679f727daf539c30f8f1816dd16e
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Sun Dec 22 16:19:17 2024 +0100

    testsuite: arm: Use -Os in memset-inline-8* tests
    
    When the test was initially created, -fcommon was the default, but in
    commit r10-4867-g6271dd984d7 the default value changed to -fno-common.
    This change made the test start failing. To counter the over-alignment
    caused by 'a' no longer being common, use -Os.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/memset-inline-8.c: Use -Os and prefix assembler
            instructions with a tab to improve test stability.
            * gcc.target/arm/memset-inline-8-exe.c: Use -Os.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 681934aead9c1310e3b910d18986b76272168a80)

diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-8-exe.c b/gcc/testsuite/gcc.target/arm/memset-inline-8-exe.c
index 0ff1f6cbe89..157cf1e0568 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-8-exe.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-8-exe.c
@@ -1,7 +1,7 @@
 /* { dg-do run } */
 /* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
 /* { dg-require-effective-target arm_neon_hw } */
-/* { dg-options "-save-temps -O2 -fno-inline"  } */
+/* { dg-options "-save-temps -Os -fno-inline"  } */
 /* { dg-add-options "arm_neon" } */
 
 #include "./memset-inline-8.c"
diff --git a/gcc/testsuite/gcc.target/arm/memset-inline-8.c b/gcc/testsuite/gcc.target/arm/memset-inline-8.c
index e12e9330f75..39fe4d5d392 100644
--- a/gcc/testsuite/gcc.target/arm/memset-inline-8.c
+++ b/gcc/testsuite/gcc.target/arm/memset-inline-8.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-skip-if "Don't inline memset using neon instructions" { ! arm_tune_string_ops_prefer_neon } } */
-/* { dg-options "-save-temps -O2 -fno-inline"  } */
+/* { dg-options "-save-temps -Os -fno-inline"  } */
 /* { dg-add-options "arm_neon" } */
 
 #include <string.h>
@@ -37,6 +37,6 @@ main(void)
   return 0;
 }
 
-/* { dg-final { scan-assembler-not "bl?\[ \t\]*memset" { target { arm_thumb2_ok } } } } */
-/* { dg-final { scan-assembler "vst1" { target { arm_little_endian && arm_neon } } } } */
-/* { dg-final { scan-assembler-not "vstr" { target { arm_little_endian && arm_neon } } } } */
+/* { dg-final { scan-assembler-not "\tbl?\[ \t\]*memset" { target { arm_thumb2_ok } } } } */
+/* { dg-final { scan-assembler "\tvst1" { target { arm_little_endian && arm_neon } } } } */
+/* { dg-final { scan-assembler-not "\tvstr" { target { arm_little_endian && arm_neon } } } } */

commit 9d650c29562bbb18c1ea5d0064e07f48c177912b
Author: Patrick Palka <ppalka@redhat.com>
Date:   Tue Oct 29 09:26:19 2024 -0400

    libstdc++: Fix complexity of drop_view::begin() const [PR112641]
    
    Views are required to have a amortized O(1) begin(), but our drop_view's
    const begin overload is O(n) for non-common ranges with a non-sized
    sentinel.  This patch reimplements it so that it's O(1) always.  See
    also LWG 4009.
    
            PR libstdc++/112641
    
    libstdc++-v3/ChangeLog:
    
            * include/std/ranges (drop_view::begin): Reimplement const
            overload so that it's O(1) always.
            * testsuite/std/ranges/adaptors/drop.cc (test10): New test.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 7f622ee83fbbcf4a4ca70e020db8a0ce4b556b61)

diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index 44c6d2ff11e..36e36569afc 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -2660,8 +2660,8 @@ namespace views::__adaptor
       begin() const
 	requires random_access_range<const _Vp> && sized_range<const _Vp>
       {
-	return ranges::next(ranges::begin(_M_base), _M_count,
-			    ranges::end(_M_base));
+	return ranges::begin(_M_base) + ranges::min(ranges::distance(_M_base),
+						    _M_count);
       }
 
       constexpr auto
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
index c9987c61e3c..0bd5bebb785 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
@@ -274,6 +274,17 @@ test09()
   static_assert(!requires { views::all | drop; });
 }
 
+constexpr bool
+test10()
+{
+  // PR libstdc++/112641 - drop_view::begin const may have O(n) complexity
+  const auto s = ranges::subrange(views::iota(size_t(1)), size_t(-1));
+  const auto r = ranges::drop_view(s, s.size() - 1);
+  const auto b = r.begin(); // time out
+  VERIFY( *b == size_t(-1) );
+  return true;
+}
+
 int
 main()
 {
@@ -286,4 +297,5 @@ main()
   test07();
   test08();
   test09();
+  static_assert(test10());
 }

commit 03d0440d73a37e65311b504f62e76f5bcf237795
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Nov 14 13:27:41 2024 -0500

    libstdc++: Implement LWG 3563 changes to keys_view and values_view
    
    This LWG issue corrects the definition of these alias templates to make
    them suitable for alias CTAD.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/ranges (keys_view): Adjust as per LWG 3563.
            (values_view): Likewise.
            * testsuite/std/ranges/adaptors/elements.cc (test08): New test.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 361050589b144913ec05d9d8e10639afa98319a8)

diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index 36e36569afc..eba53917684 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -4547,11 +4547,13 @@ namespace views::__adaptor
     inline constexpr bool enable_borrowed_range<elements_view<_Tp, _Nm>>
       = enable_borrowed_range<_Tp>;
 
+  // _GLIBCXX_RESOLVE_LIB_DEFECTS
+  // 3563. keys_view example is broken
   template<typename _Range>
-    using keys_view = elements_view<views::all_t<_Range>, 0>;
+    using keys_view = elements_view<_Range, 0>;
 
   template<typename _Range>
-    using values_view = elements_view<views::all_t<_Range>, 1>;
+    using values_view = elements_view<_Range, 1>;
 
   namespace views
   {
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
index a15192bf0ec..0a05ce7378f 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
@@ -148,6 +148,19 @@ test07()
   b == e;
 }
 
+void
+test08()
+{
+  // LWG 3563 - keys_view example is broken
+  std::pair<int, int> x[] = {{1,2},{3,4}};
+  auto v = ranges::keys_view{views::all(x)};
+  auto w = ranges::values_view{views::all(x)};
+  using ty1 = decltype(v);
+  using ty1 = ranges::elements_view<views::all_t<decltype((x))>, 0>;
+  using ty2 = decltype(w);
+  using ty2 = ranges::elements_view<views::all_t<decltype((x))>, 1>;
+}
+
 int
 main()
 {
@@ -158,4 +171,5 @@ main()
   test05();
   test06();
   test07();
+  test08();
 }

commit f236c897af48c3ae52095a894d57e66065b8ad87
Author: Patrick Palka <ppalka@redhat.com>
Date:   Fri Dec 13 13:17:29 2024 -0500

    libstdc++: Avoid unnecessary copies in ranges::min/max [PR112349]
    
    Use a local reference for the (now possibly lifetime extended) result of
    *__first so that we copy it only when necessary.
    
            PR libstdc++/112349
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/ranges_algo.h (__min_fn::operator()): Turn local
            object __tmp into a reference.
            * include/bits/ranges_util.h (__max_fn::operator()): Likewise.
            * testsuite/25_algorithms/max/constrained.cc (test04): New test.
            * testsuite/25_algorithms/min/constrained.cc (test04): New test.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit b8314ebff2495ee22f9e2203093bdada9843a0f5)

diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h
index 6347ec98606..a29d387dc71 100644
--- a/libstdc++-v3/include/bits/ranges_algo.h
+++ b/libstdc++-v3/include/bits/ranges_algo.h
@@ -2909,11 +2909,11 @@ namespace ranges
 	auto __result = *__first;
 	while (++__first != __last)
 	  {
-	    auto __tmp = *__first;
+	    auto&& __tmp = *__first;
 	    if (std::__invoke(__comp,
 			      std::__invoke(__proj, __result),
 			      std::__invoke(__proj, __tmp)))
-	      __result = std::move(__tmp);
+	      __result = std::forward<decltype(__tmp)>(__tmp);
 	  }
 	return __result;
       }
diff --git a/libstdc++-v3/include/bits/ranges_util.h b/libstdc++-v3/include/bits/ranges_util.h
index 34d8b1e8f14..aba5b6a88c0 100644
--- a/libstdc++-v3/include/bits/ranges_util.h
+++ b/libstdc++-v3/include/bits/ranges_util.h
@@ -733,11 +733,11 @@ namespace ranges
 	auto __result = *__first;
 	while (++__first != __last)
 	  {
-	    auto __tmp = *__first;
+	    auto&& __tmp = *__first;
 	    if (std::__invoke(__comp,
 			      std::__invoke(__proj, __tmp),
 			      std::__invoke(__proj, __result)))
-	      __result = std::move(__tmp);
+	      __result = std::forward<decltype(__tmp)>(__tmp);
 	  }
 	return __result;
       }
diff --git a/libstdc++-v3/testsuite/25_algorithms/max/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
index e7269e1b734..ad2d47f2f10 100644
--- a/libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
@@ -73,10 +73,35 @@ test03()
   VERIFY( ranges::max({2,3,1,4}, ranges::greater{}, std::negate<>{}) == 4 );
 }
 
+void
+test04()
+{
+  // PR libstdc++/112349 - ranges::max/min make unnecessary copies
+  static int copies, moves;
+  struct A {
+    A(int m) : m(m) { }
+    A(const A& other) : m(other.m) { ++copies; }
+    A(A&& other) : m(other.m) { ++moves; }
+    A& operator=(const A& other) { m = other.m; ++copies; return *this; }
+    A& operator=(A&& other) { m = other.m; ++moves; return *this; }
+    int m;
+  };
+  A r[5] = {5, 4, 3, 2, 1};
+  ranges::max(r, ranges::less{}, &A::m);
+  VERIFY( copies == 1 );
+  VERIFY( moves == 0 );
+  copies = moves = 0;
+  A s[5] = {1, 2, 3, 4, 5};
+  ranges::max(s, ranges::less{}, &A::m);
+  VERIFY( copies == 5 );
+  VERIFY( moves == 0 );
+}
+
 int
 main()
 {
   test01();
   test02();
   test03();
+  test04();
 }
diff --git a/libstdc++-v3/testsuite/25_algorithms/min/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
index 7198df69adf..17048fda639 100644
--- a/libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
@@ -73,10 +73,35 @@ test03()
   VERIFY( ranges::min({2,3,1,4}, ranges::greater{}, std::negate<>{}) == 1 );
 }
 
+void
+test04()
+{
+  // PR libstdc++/112349 - ranges::max/min make unnecessary copies
+  static int copies, moves;
+  struct A {
+    A(int m) : m(m) { }
+    A(const A& other) : m(other.m) { ++copies; }
+    A(A&& other) : m(other.m) { ++moves; }
+    A& operator=(const A& other) { m = other.m; ++copies; return *this; }
+    A& operator=(A&& other) { m = other.m; ++moves; return *this; }
+    int m;
+  };
+  A r[5] = {5, 4, 3, 2, 1};
+  ranges::min(r, ranges::less{}, &A::m);
+  VERIFY( copies == 5 );
+  VERIFY( moves == 0 );
+  copies = moves = 0;
+  A s[5] = {1, 2, 3, 4, 5};
+  ranges::min(s, ranges::less{}, &A::m);
+  VERIFY( copies == 1 );
+  VERIFY( moves == 0 );
+}
+
 int
 main()
 {
   test01();
   test02();
   test03();
+  test04();
 }

commit 4dbfc2ff0a84edf6addeaa425272a5beacbbc7db
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Jan 9 10:49:45 2025 -0500

    c++: template-id dependence wrt local static arg [PR117792]
    
    Here we end up ICEing at instantiation time for the call to
    f<local_static> ultimately because we wrongly consider the call to be
    non-dependent, and so we specialize f ahead of time and then get
    confused when fully substituting this specialization.
    
    The call is dependent due to [temp.dep.temp]/3 and we miss that because
    function template-id arguments aren't coerced until overload resolution,
    and so the local static template argument lacks an implicit cast to
    reference type that value_dependent_expression_p looks for before
    considering dependence of the address.  Other kinds of template-ids aren't
    affected since they're coerced ahead of time.
    
    So when considering dependence of a function template-id, we need to
    conservatively consider dependence of the address of each argument (if
    applicable).
    
            PR c++/117792
    
    gcc/cp/ChangeLog:
    
            * pt.cc (type_dependent_expression_p): Consider the dependence
            of the address of each template argument of a function
            template-id.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp1z/nontype7.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 40f0f6ab75a391906bed40cbdc098b0df3a91af7)

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index c2c66a7567a..d5bf6af8467 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -28704,9 +28704,15 @@ type_dependent_expression_p (tree expression)
 
       if (TREE_CODE (expression) == TEMPLATE_ID_EXPR)
 	{
-	  if (any_dependent_template_arguments_p
-	      (TREE_OPERAND (expression, 1)))
+	  tree args = TREE_OPERAND (expression, 1);
+	  if (any_dependent_template_arguments_p (args))
 	    return true;
+	  /* Arguments of a function template-id aren't necessarily coerced
+	     yet so we must conservatively assume that the address (and not
+	     just value) of the argument matters as per [temp.dep.temp]/3.  */
+	  for (tree arg : tree_vec_range (args))
+	    if (has_value_dependent_address (arg))
+	      return true;
 	  expression = TREE_OPERAND (expression, 0);
 	  if (identifier_p (expression))
 	    return true;
diff --git a/gcc/testsuite/g++.dg/cpp1z/nontype7.C b/gcc/testsuite/g++.dg/cpp1z/nontype7.C
new file mode 100644
index 00000000000..f103d5a6888
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/nontype7.C
@@ -0,0 +1,22 @@
+// PR c++/117792
+// { dg-do compile { target c++17 } }
+
+template<const int& N, class T>
+void f(T) { }
+
+template<int N, class T>
+void f(...) = delete;
+
+template<const int& N> int v;
+
+template<const int& N> struct A { };
+
+template<class T>
+void g() {
+  static constexpr int local_static = 0;
+  auto x = v<local_static>; // OK
+  A<local_static> y; // OK
+  f<local_static>(0); // ICE
+}
+
+template void g<int>();

commit aa1e19d821a39d973c4c8c0e8d1d19811d2fa433
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Jan 9 10:50:08 2025 -0500

    c++: relax ICE for unexpected trees during constexpr [PR117925]
    
    When we encounter an unexpected (likely templated) tree code during
    constexpr evaluation we currently ICE even in release mode.  But it
    seems more user-friendly to just gracefully treat the expression as
    non-constant, which will be harmless most of the time (e.g. in the case
    of warning-specific or speculative constexpr folding as in the PR), and
    at worst will transform an ICE-on-valid bug into a rejects-valid bug.
    This is also what e.g. tsubst_expr does when it encounters an unexpected
    tree code.
    
            PR c++/117925
    
    gcc/cp/ChangeLog:
    
            * constexpr.cc (cxx_eval_constant_expression) <default>:
            Relax ICE when encountering an unexpected tree code into a
            checking ICE guarded by flag_checking.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit eeedc54cc81c4dfb472ecbd6f14cfbf2dd035474)

diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc
index c5cd5c87680..6025b4c2943 100644
--- a/gcc/cp/constexpr.cc
+++ b/gcc/cp/constexpr.cc
@@ -8626,7 +8626,7 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t,
 	    error_at (EXPR_LOCATION (t),
 		      "statement is not a constant expression");
 	}
-      else
+      else if (flag_checking)
 	internal_error ("unexpected expression %qE of kind %s", t,
 			get_tree_code_name (TREE_CODE (t)));
       *non_constant_p = true;

commit 70cea067dd2b101edc6b3710678529eb8ba2eec2
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Jan 9 10:50:12 2025 -0500

    c++: constexpr potentiality of CAST_EXPR [PR117925]
    
    We're incorrectly treating the templated callee (FnPtr)fnPtr, represented
    as CAST_EXPR with TREE_LIST operand, as potentially constant here due to
    neglecting to look through the TREE_LIST in the CAST_EXPR case of p_c_e_1.
    
            PR c++/117925
    
    gcc/cp/ChangeLog:
    
            * constexpr.cc (potential_constant_expression_1) <case CAST_EXPR>:
            Fix check for class conversion to literal type to properly look
            through the TREE_LIST operand of a CAST_EXPR.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/template/non-dependent35.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 76d1061237b5cd57a274cd8bc8fe02a6f407baa9)

diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc
index 6025b4c2943..79dd6a7423c 100644
--- a/gcc/cp/constexpr.cc
+++ b/gcc/cp/constexpr.cc
@@ -10279,9 +10279,14 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict, bool now,
 	       && (dependent_type_p (TREE_TYPE (t))
 		   || !COMPLETE_TYPE_P (TREE_TYPE (t))
 		   || literal_type_p (TREE_TYPE (t)))
-	       && TREE_OPERAND (t, 0))
-	{
-	  tree type = TREE_TYPE (TREE_OPERAND (t, 0));
+	       && TREE_OPERAND (t, 0)
+	       && (TREE_CODE (t) != CAST_EXPR
+		   || !TREE_CHAIN (TREE_OPERAND (t, 0))))
+	{
+	  tree from = TREE_OPERAND (t, 0);
+	  if (TREE_CODE (t) == CAST_EXPR)
+	    from = TREE_VALUE (from);
+	  tree type = TREE_TYPE (from);
 	  /* If this is a dependent type, it could end up being a class
 	     with conversions.  */
 	  if (type == NULL_TREE || WILDCARD_TYPE_P (type))
diff --git a/gcc/testsuite/g++.dg/template/non-dependent35.C b/gcc/testsuite/g++.dg/template/non-dependent35.C
new file mode 100644
index 00000000000..7e3ba99b023
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/non-dependent35.C
@@ -0,0 +1,8 @@
+// PR c++/117925
+
+typedef int(*FnPtr)();
+
+template<class T>
+void fnICE(void* fnPtr) {
+  ((FnPtr)fnPtr)();
+}

commit f73ecaf1957d35a99909999735ebe228c8dd6188
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Jan 9 10:50:19 2025 -0500

    c++: ICE during requires-expr partial subst [PR118060]
    
    Here during partial substitution of the requires-expression (as part of
    CTAD constraint rewriting) we segfault from the INDIRECT_REF case of
    convert_to_void due *f(u) being type-dependent.  We should just defer
    checking convert_to_void until satisfaction.
    
            PR c++/118060
    
    gcc/cp/ChangeLog:
    
            * constraint.cc (tsubst_valid_expression_requirement): Don't
            check convert_to_void during partial substitution.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/concepts-requires40.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit ca79349c050c27ff466735ba78d2e2bbce56ffdc)

diff --git a/gcc/cp/constraint.cc b/gcc/cp/constraint.cc
index b6c6a5e2330..cbf6357ad68 100644
--- a/gcc/cp/constraint.cc
+++ b/gcc/cp/constraint.cc
@@ -1993,7 +1993,9 @@ tsubst_valid_expression_requirement (tree t, tree args, sat_info info)
 {
   tsubst_flags_t quiet = info.complain & ~tf_warning_or_error;
   tree r = tsubst_expr (t, args, quiet, info.in_decl);
-  if (convert_to_void (r, ICV_STATEMENT, quiet) != error_mark_node)
+  if (r != error_mark_node
+      && (processing_template_decl
+	  || convert_to_void (r, ICV_STATEMENT, quiet) != error_mark_node))
     return r;
 
   if (info.diagnose_unsatisfaction_p ())
diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-requires40.C b/gcc/testsuite/g++.dg/cpp2a/concepts-requires40.C
new file mode 100644
index 00000000000..918bab410f3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/concepts-requires40.C
@@ -0,0 +1,12 @@
+// PR c++/118060
+// { dg-do compile { target c++20 } }
+
+int* f(int);
+
+template<class T>
+struct A {
+  template<class U> requires requires (U u) { *f(u); }
+  A(T, U);
+};
+
+A a{0, 0};

commit 67c457de5a3f74151fc2d0085387127bf9e4e3c5
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Dec 16 17:42:24 2024 +0000

    libstdc++: Fix std::deque::insert(pos, first, last) undefined behaviour [PR118035]
    
    Inserting an empty range into a std::deque results in undefined calls to
    either std::copy, std::copy_backward, std::move, or std::move_backward.
    We call those algos with invalid arguments where the output range is the
    same as the input range, e.g.  std::copy(first, last, first) which
    violates the preconditions for the algorithms.
    
    This fix simply returns early if there's nothing to insert. Most callers
    already ensure that we don't even call _M_range_insert_aux with an empty
    range, but some callers don't. Rather than checking for n == 0 in each
    of the callers, this just does the check once and uses __builtin_expect
    to treat empty insertions as unlikely.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/118035
            * include/bits/deque.tcc (_M_range_insert_aux): Return
            immediately if inserting an empty range.
            * testsuite/23_containers/deque/modifiers/insert/118035.cc: New
            test.
    
    (cherry picked from commit b273e25e11c842a5729d0e03c85088cf5ba8e06c)

diff --git a/libstdc++-v3/include/bits/deque.tcc b/libstdc++-v3/include/bits/deque.tcc
index 2c12358ca5b..e50f5dc9d09 100644
--- a/libstdc++-v3/include/bits/deque.tcc
+++ b/libstdc++-v3/include/bits/deque.tcc
@@ -601,6 +601,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 			  std::forward_iterator_tag)
       {
 	const size_type __n = std::distance(__first, __last);
+	if (__builtin_expect(__n == 0, 0))
+	  return;
+
 	if (__pos._M_cur == this->_M_impl._M_start._M_cur)
 	  {
 	    iterator __new_start = _M_reserve_elements_at_front(__n);
diff --git a/libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/118035.cc b/libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/118035.cc
new file mode 100644
index 00000000000..a37d3dc3d04
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/deque/modifiers/insert/118035.cc
@@ -0,0 +1,26 @@
+// { dg-do run }
+
+#include <deque>
+#include <testsuite_hooks.h>
+
+struct Sparks
+{
+  Sparks& operator=(const Sparks& s)
+  {
+    VERIFY( this != &s ); // This town ain't big enough for the both of us.
+    return *this;
+  }
+};
+
+void
+test_pr118035()
+{
+  std::deque<Sparks> d(3, Sparks());
+  Sparks s[1];
+  d.insert(d.begin() + 1, s, s);
+}
+
+int main()
+{
+  test_pr118035();
+}

commit 83fa0822aeec8af2162825976209efb90ca40c87
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Dec 9 17:35:24 2024 +0000

    libstdc++: Skip redundant assertions in std::span construction [PR117966]
    
    As PR c++/117966 shows, the Debug Mode checks cause a compilation error
    for a global constexpr std::span. Those debug checks are redundant when
    constructing from an array or a range, because we already know we have a
    valid range and we know its size. Instead of delegating to the
    std::span(contiguous_iterator, contiguous_iterator) constructor, just
    initialize the data members directly.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/117966
            * include/std/span (span(T (&)[N])): Do not delegate to
            constructor that performs redundant checks.
            (span(array<T, N>&), span(const array<T, N>&)): Likewise.
            (span(Range&&), span(const span<T, N>&)): Likewise.
            * testsuite/23_containers/span/117966.cc: New test.
    
    (cherry picked from commit e95bda027e0b81922c1bf44770674190bdf787e8)

diff --git a/libstdc++-v3/include/std/span b/libstdc++-v3/include/std/span
index 00fc5279152..726f0f339f1 100644
--- a/libstdc++-v3/include/std/span
+++ b/libstdc++-v3/include/std/span
@@ -185,21 +185,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	requires (_Extent == dynamic_extent || _ArrayExtent == _Extent)
 	constexpr
 	span(type_identity_t<element_type> (&__arr)[_ArrayExtent]) noexcept
-	: span(static_cast<pointer>(__arr), _ArrayExtent)
+	: _M_ptr(__arr), _M_extent(_ArrayExtent)
 	{ }
 
       template<typename _Tp, size_t _ArrayExtent>
 	requires __is_compatible_array<_Tp, _ArrayExtent>::value
 	constexpr
 	span(array<_Tp, _ArrayExtent>& __arr) noexcept
-	: span(static_cast<pointer>(__arr.data()), _ArrayExtent)
+	: _M_ptr(__arr.data()), _M_extent(_ArrayExtent)
 	{ }
 
       template<typename _Tp, size_t _ArrayExtent>
 	requires __is_compatible_array<const _Tp, _ArrayExtent>::value
 	constexpr
 	span(const array<_Tp, _ArrayExtent>& __arr) noexcept
-	: span(static_cast<pointer>(__arr.data()), _ArrayExtent)
+	: _M_ptr(__arr.data()), _M_extent(_ArrayExtent)
 	{ }
 
       template<typename _Range>
@@ -213,7 +213,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	span(_Range&& __range)
 	noexcept(noexcept(ranges::data(__range))
 		  && noexcept(ranges::size(__range)))
-	: span(ranges::data(__range), ranges::size(__range))
+	: _M_ptr(ranges::data(__range)), _M_extent(ranges::size(__range))
 	{
 	  if constexpr (extent != dynamic_extent)
 	    {
@@ -231,7 +231,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	constexpr
 	explicit(extent != dynamic_extent && _OExtent == dynamic_extent)
 	span(const span<_OType, _OExtent>& __s) noexcept
-	: _M_extent(__s.size()), _M_ptr(__s.data())
+	: _M_ptr(__s.data()), _M_extent(__s.size())
 	{
 	  if constexpr (extent != dynamic_extent)
 	    {
diff --git a/libstdc++-v3/testsuite/23_containers/span/117966.cc b/libstdc++-v3/testsuite/23_containers/span/117966.cc
new file mode 100644
index 00000000000..8bbb5ca1e07
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/span/117966.cc
@@ -0,0 +1,13 @@
+// { dg-options "-D_GLIBCXX_DEBUG" }
+// { dg-do compile { target c++20 } }
+
+// Bug 117966
+// constexpr std::span construction fails to compile with D_GLIBCXX_DEBUG
+
+#include <array>
+#include <span>
+
+struct A {
+  constexpr A(std::span<const unsigned char>) {}
+};
+constexpr A val{std::array<unsigned char, 2>{0x11, 0x22}};

commit 1e696cac2baa35f011f85878e76039fc3945d241
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Dec 9 17:35:24 2024 +0000

    libstdc++: Skip redundant assertions in std::array equality [PR106212]
    
    As PR c++/106212 shows, the Debug Mode checks cause a compilation error
    for equality comparisons involving std::array prvalues in constant
    expressions. Those Debug Mode checks are redundant when
    comparing two std::array objects, because we already know we have a
    valid range. We can also avoid the unnecessary step of using
    std::__niter_base to do __normal_iterator unwrapping, which isn't needed
    because our std::array iterators are just pointers. Using
    std::__equal_aux1 instead of std::equal avoids the redundant checks in
    std::equal and std::__equal_aux.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/106212
            * include/std/array (operator==): Use std::__equal_aux1 instead
            of std::equal.
            * testsuite/23_containers/array/comparison_operators/106212.cc:
            New test.
    
    (cherry picked from commit 3aeb2edee2f9fc39ab77c7e020f09d7204b167ac)

diff --git a/libstdc++-v3/include/std/array b/libstdc++-v3/include/std/array
index 8710bf75924..2e632d0ea86 100644
--- a/libstdc++-v3/include/std/array
+++ b/libstdc++-v3/include/std/array
@@ -301,7 +301,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     _GLIBCXX20_CONSTEXPR
     inline bool
     operator==(const array<_Tp, _Nm>& __one, const array<_Tp, _Nm>& __two)
-    { return std::equal(__one.begin(), __one.end(), __two.begin()); }
+    { return std::__equal_aux1(__one.begin(), __one.end(), __two.begin()); }
 
 #if __cpp_lib_three_way_comparison // C++ >= 20 && lib_concepts
   template<typename _Tp, size_t _Nm>
diff --git a/libstdc++-v3/testsuite/23_containers/array/comparison_operators/106212.cc b/libstdc++-v3/testsuite/23_containers/array/comparison_operators/106212.cc
new file mode 100644
index 00000000000..f7b12bd04ef
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/array/comparison_operators/106212.cc
@@ -0,0 +1,15 @@
+// { dg-options "-D_GLIBCXX_DEBUG" }
+// { dg-do compile { target c++20 } }
+
+// Bug libstdc++/106212 - Code becomes non-constexpr with _GLIBCXX_DEBUG
+
+#include <array>
+
+struct A
+{
+  constexpr A(int i) : e{i} {}
+  constexpr bool operator==(const A& a) const = default;
+  std::array<int, 1> e;
+};
+
+static_assert(A{1} != A{2}, "");

commit 845a0b71c82ad8f1d9967a6f15d10ef402f7f2e5
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Dec 10 10:56:41 2024 +0000

    libstdc++: Disable __gnu_debug::__is_singular(T*) in constexpr [PR109517]
    
    Because of PR c++/85944 we have several bugs where _GLIBCXX_DEBUG causes
    errors for constexpr code. Although Bug 117966 could be fixed by
    avoiding redundant debug checks in std::span, and Bug 106212 could be
    fixed by avoiding redundant debug checks in std::array, there are many
    more cases where similar __glibcxx_requires_valid_range checks fail to
    compile and removing the checks everywhere isn't desirable.
    
    This just disables the __gnu_debug::__check_singular(T*) check during
    constant evaluation. Attempting to dereference a null pointer will
    certainly fail during constant evaluation (if it doesn't fail then it's
    a compiler bug and not the library's problem). Disabling this check
    during constant evaluation shouldn't do any harm.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/109517
            PR libstdc++/109976
            * include/debug/helper_functions.h (__valid_range_aux): Treat
            all input iterator ranges as valid during constant evaluation.
    
    (cherry picked from commit 9616deb23a17ebe81ad89ede191d7f9f752abdec)

diff --git a/libstdc++-v3/include/debug/helper_functions.h b/libstdc++-v3/include/debug/helper_functions.h
index 5474399dc67..d44e2712699 100644
--- a/libstdc++-v3/include/debug/helper_functions.h
+++ b/libstdc++-v3/include/debug/helper_functions.h
@@ -169,6 +169,11 @@ namespace __gnu_debug
     __valid_range_aux(_InputIterator __first, _InputIterator __last,
 		      std::input_iterator_tag)
     {
+      // FIXME: The checks for singular iterators fail during constant eval
+      // due to PR c++/85944. e.g. PR libstdc++/109517 and PR libstdc++/109976.
+      if (std::__is_constant_evaluated())
+	return true;
+
       return __first == __last
 	|| (!__gnu_debug::__check_singular(__first)
 	      && !__gnu_debug::__check_singular(__last));

commit 3590d9f68207861b8973f2812adf02fdba0840ba
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Dec 9 10:52:10 2024 +0000

    libstdc++: Fix debug containers for constant evaluation [PR117962]
    
    Using a stateful allocator with std::vector would fail in Debug Mode,
    because the allocator-extended move constructor tries to swap all the
    attached safe iterators, but that uses a non-inline function which isn't
    constexpr. We don't actually need to swap any iterators in constant
    expressions, because we never attach them to the container in the first
    place.
    
    This bug went unnoticed because the tests for constexpr std::vector were
    using a stateful allocator with a std::allocator base class, but were
    failing to override the inherited is_always_equal trait from
    std::allocator. That meant that the allocators took the always-equal
    code paths, and didn't try to use the buggy constructor. In C++26 the
    std::allocator::is_always_equal trait goes away, and so the tests
    changed behaviour, revealing the bug.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/117962
            * include/debug/safe_container.h: Make allocator-extended move
            constructor a no-op during constant evaluation.
    
    (cherry picked from commit 6fbe9e65645f54cc564a928bc0bc69c8b421cb98)

diff --git a/libstdc++-v3/include/debug/safe_container.h b/libstdc++-v3/include/debug/safe_container.h
index 9a6c4f7ba74..75c6834bfae 100644
--- a/libstdc++-v3/include/debug/safe_container.h
+++ b/libstdc++-v3/include/debug/safe_container.h
@@ -64,10 +64,13 @@ namespace __gnu_debug
       _Safe_container(_Safe_container&& __x, const _Alloc& __a, std::false_type)
       : _Safe_container()
       {
-	if (__x._M_cont().get_allocator() == __a)
-	  _Base::_M_swap(__x);
-	else if (!std::__is_constant_evaluated())
-	  __x._M_invalidate_all();
+	if (!std::__is_constant_evaluated())
+	  {
+	    if (__x._M_cont().get_allocator() == __a)
+	      _Base::_M_swap(__x);
+	    else
+	      __x._M_invalidate_all();
+	  }
       }
 
     protected:

commit f0eb0ba218968715506c435ca4ff71043e86617c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Dec 3 16:36:05 2024 +0000

    libstdc++: Fix parallel std::exclusive_scan [PR108236]
    
    The standard says that std::exclusive_scan can be used to work in
    place, i.e. where the output range is the same as the input range. This
    means that the first sum cannot be written to the output until after
    reading the first input value, otherwise we'll already have overwritten
    the first input value.
    
    While writing a new testcase I also realised that the serial version of
    std::exclusive_scan uses copy construction for the accumulator variable,
    but the standard only requires Cpp17MoveConstructible. We also require
    move assignable, which is missing from the standard's requirements, but
    we should at least use move construction not copy construction.
    
    A similar problem exists for some other new C++17 numeric algos, but
    I'll fix the others in a subsequent commit.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/108236
            * include/pstl/glue_numeric_impl.h (exclusive_scan): Pass __init
            as rvalue.
            * include/pstl/numeric_impl.h (__brick_transform_scan): Do not
            write through __result until after reading through __first. Move
            __init into return value.
            (__pattern_transform_scan): Pass __init as rvalue.
            * include/std/numeric (exclusive_scan): Move construct instead
            of copy constructing.
            * testsuite/26_numerics/exclusive_scan/2.cc: New test.
            * testsuite/26_numerics/pstl/numeric_ops/108236.cc: New test.
    
    (cherry picked from commit cd107a6343c96c4ef26096e250d43a4a4211eced)

diff --git a/libstdc++-v3/include/pstl/glue_numeric_impl.h b/libstdc++-v3/include/pstl/glue_numeric_impl.h
index 490175c8b83..10d4912deed 100644
--- a/libstdc++-v3/include/pstl/glue_numeric_impl.h
+++ b/libstdc++-v3/include/pstl/glue_numeric_impl.h
@@ -108,7 +108,7 @@ exclusive_scan(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIte
 
     using namespace __pstl;
     return __internal::__pattern_transform_scan(__dispatch_tag, std::forward<_ExecutionPolicy>(__exec), __first, __last,
-                                                __result, __pstl::__internal::__no_op(), __init, __binary_op,
+                                                __result, __pstl::__internal::__no_op(), std::move(__init), __binary_op,
                                                 /*inclusive=*/std::false_type());
 }
 
diff --git a/libstdc++-v3/include/pstl/numeric_impl.h b/libstdc++-v3/include/pstl/numeric_impl.h
index 7ba83eeb714..e1ebec16039 100644
--- a/libstdc++-v3/include/pstl/numeric_impl.h
+++ b/libstdc++-v3/include/pstl/numeric_impl.h
@@ -160,11 +160,12 @@ __brick_transform_scan(_ForwardIterator __first, _ForwardIterator __last, _Outpu
 {
     for (; __first != __last; ++__first, ++__result)
     {
-        *__result = __init;
+	_Tp __v = std::move(__init);
         _PSTL_PRAGMA_FORCEINLINE
-        __init = __binary_op(__init, __unary_op(*__first));
+        __init = __binary_op(__v, __unary_op(*__first));
+        *__result = std::move(__v);
     }
-    return std::make_pair(__result, __init);
+    return std::make_pair(__result, std::move(__init));
 }
 
 // Inclusive form
@@ -225,7 +226,7 @@ __pattern_transform_scan(_Tag, _ExecutionPolicy&&, _ForwardIterator __first, _Fo
                          _OutputIterator __result, _UnaryOperation __unary_op, _Tp __init, _BinaryOperation __binary_op,
                          _Inclusive) noexcept
 {
-    return __internal::__brick_transform_scan(__first, __last, __result, __unary_op, __init, __binary_op, _Inclusive(),
+    return __internal::__brick_transform_scan(__first, __last, __result, __unary_op, std::move(__init), __binary_op, _Inclusive(),
                                               typename _Tag::__is_vector{})
         .first;
 }
diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric
index c912db4a519..a4cda3d5c36 100644
--- a/libstdc++-v3/include/std/numeric
+++ b/libstdc++-v3/include/std/numeric
@@ -485,8 +485,8 @@ namespace __detail
     {
       while (__first != __last)
 	{
-	  auto __v = __init;
-	  __init = __binary_op(__init, *__first);
+	  _Tp __v = std::move(__init);
+	  __init = __binary_op(__v, *__first);
 	  ++__first;
 	  *__result++ = std::move(__v);
 	}
diff --git a/libstdc++-v3/testsuite/26_numerics/exclusive_scan/2.cc b/libstdc++-v3/testsuite/26_numerics/exclusive_scan/2.cc
new file mode 100644
index 00000000000..c6e28210ce5
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/exclusive_scan/2.cc
@@ -0,0 +1,46 @@
+// { dg-do run { target c++17 } }
+
+// C++17 29.8.7 [exclusive.scan]
+
+#include <numeric>
+#include <testsuite_hooks.h>
+
+struct Mint
+{
+  Mint(int i = 0) : val(i) { }
+  Mint(Mint&&) = default;
+  Mint& operator=(Mint&&) = default;
+
+  operator int() const { return val; }
+
+private:
+  int val;
+};
+
+void
+test_move_only()
+{
+  const int input[]{10, 20, 30};
+  int output[3];
+  std::exclusive_scan(input, input+3, output, Mint(5), std::plus<int>{});
+  VERIFY( output[0] == 5 );
+  VERIFY( output[1] == 15 );
+  VERIFY( output[2] == 35 );
+}
+
+void
+test_pr108236()
+{
+  int vals[]{1, 2, 3};
+  // Output range is the same as the input range:
+  std::exclusive_scan(vals, vals+3, vals, 99);
+  VERIFY( vals[0] == 99 );
+  VERIFY( vals[1] == 100 );
+  VERIFY( vals[2] == 102 );
+}
+
+int main()
+{
+  test_move_only();
+  test_pr108236();
+}
diff --git a/libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/108236.cc b/libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/108236.cc
new file mode 100644
index 00000000000..e0e3027b321
--- /dev/null
+++ b/libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/108236.cc
@@ -0,0 +1,50 @@
+// { dg-options "-ltbb" }
+// { dg-do run { target c++17 } }
+// { dg-require-effective-target tbb_backend }
+
+// Bug 108236 std::exclusive_scan with execution policy does not work in-place
+
+#include <numeric>
+#include <execution>
+#include <testsuite_hooks.h>
+
+struct Mint
+{
+  Mint(int i = 0) : val(i) { }
+  Mint(Mint&&) = default;
+  Mint& operator=(Mint&&) = default;
+
+  operator int() const { return val; }
+
+private:
+  int val;
+};
+
+void
+test_move_only()
+{
+  const int input[]{10, 20, 30};
+  int output[3];
+  std::exclusive_scan(std::execution::seq, input, input+3, output, Mint(5),
+		      std::plus<int>{});
+  VERIFY( output[0] == 5 );
+  VERIFY( output[1] == 15 );
+  VERIFY( output[2] == 35 );
+}
+
+void
+test_pr108236()
+{
+  int vals[]{1, 2, 3};
+  // Output range is the same as the input range:
+  std::exclusive_scan(std::execution::seq, vals, vals+3, vals, 99);
+  VERIFY( vals[0] == 99 );
+  VERIFY( vals[1] == 100 );
+  VERIFY( vals[2] == 102 );
+}
+
+int main()
+{
+  test_move_only();
+  test_pr108236();
+}

commit cfe866ebfb94499b95107e79f3e910bbe8c4c321
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Nov 27 12:28:30 2024 +0000

    libstdc++: Remove __builtin_expect from consteval assertion
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/c++config (__glibcxx_assert): Remove useless
            __builtin_expect from constexpr-only assertion. Improve
            comments.
    
    (cherry picked from commit 73e5d2f87c257c2c12ee72fd4de9bdbb6a8e1aa9)

diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index b57e3f338e9..773a99077e0 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -590,14 +590,17 @@ namespace std
 #endif
 
 #if defined(_GLIBCXX_ASSERTIONS)
-// Enable runtime assertion checks, and also check in constant expressions.
+// When _GLIBCXX_ASSERTIONS is defined we enable runtime assertion checks.
+// These checks will also be done during constant evaluation.
 # define __glibcxx_assert(cond)						\
   do {									\
     if (__builtin_expect(!bool(cond), false))				\
       _GLIBCXX_ASSERT_FAIL(cond);					\
   } while (false)
 #elif _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED
-// Only check assertions during constant evaluation.
+// _GLIBCXX_ASSERTIONS is not defined, so assertions checks are only enabled
+// during constant evaluation. This ensures we diagnose undefined behaviour
+// in constant expressions.
 namespace std
 {
   __attribute__((__always_inline__,__visibility__("default")))
@@ -607,12 +610,12 @@ namespace std
 }
 # define __glibcxx_assert(cond)						\
   do {									\
-    if (std::__is_constant_evaluated())					\
-      if (__builtin_expect(!bool(cond), false))				\
-	std::__glibcxx_assert_fail();					\
+    if (std::__is_constant_evaluated() && !bool(cond))			\
+      std::__glibcxx_assert_fail();					\
   } while (false)
 #else
-// Don't check any assertions.
+// _GLIBCXX_ASSERTIONS is not defined and __is_constant_evaluated() doesn't
+// work so don't check any assertions.
 # define __glibcxx_assert(cond)
 #endif
 

commit b84070e7bdf1e3666953d008f30f2b7472d9174c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue May 14 14:28:21 2024 +0100

    libstdc++: Document when std::string::shrink_to_fit was added
    
    This section can be misread to say that shrink_to_fit is available from
    GCC 3.4, but it was added later.
    
    libstdc++-v3/ChangeLog:
    
            * doc/xml/manual/strings.xml: Clarify that GCC 4.5 added
            std::string::shrink_to_fit.
            * doc/html/manual/strings.html: Regenerate.
    
    (cherry picked from commit 0a99ad5c52caa06c113b1889bbe6634812b89be5)

diff --git a/libstdc++-v3/doc/html/manual/strings.html b/libstdc++-v3/doc/html/manual/strings.html
index ceb09f97eac..34a34dfa980 100644
--- a/libstdc++-v3/doc/html/manual/strings.html
+++ b/libstdc++-v3/doc/html/manual/strings.html
@@ -269,8 +269,8 @@ stringtok(Container &amp;container, string const &amp;in,
       (see <a class="link" href="../faq.html#faq.size_equals_capacity" title="7.8.">this FAQ
       entry</a>) but the regular copy constructor cannot be used
       because libstdc++'s <code class="code">string</code> is Copy-On-Write in GCC 3.
-   </p><p>In <a class="link" href="status.html#status.iso.2011" title="C++ 2011">C++11</a> mode you can call
-      <code class="code">s.shrink_to_fit()</code> to achieve the same effect as
+   </p><p>From GCC 4.5 in <a class="link" href="status.html#status.iso.2011" title="C++ 2011">C++11</a> mode you
+      can call <code class="code">s.shrink_to_fit()</code> to achieve the same effect as
       <code class="code">s.reserve(s.size())</code>.
    </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.Cstring"></a>CString (MFC)</h3></div></div></div><p>
     </p><p>A common lament seen in various newsgroups deals with the Standard
diff --git a/libstdc++-v3/doc/xml/manual/strings.xml b/libstdc++-v3/doc/xml/manual/strings.xml
index b0dab645a2d..4a63dd96477 100644
--- a/libstdc++-v3/doc/xml/manual/strings.xml
+++ b/libstdc++-v3/doc/xml/manual/strings.xml
@@ -356,8 +356,8 @@ stringtok(Container &amp;container, string const &amp;in,
       entry</link>) but the regular copy constructor cannot be used
       because libstdc++'s <code>string</code> is Copy-On-Write in GCC 3.
    </para>
-   <para>In <link linkend="status.iso.2011">C++11</link> mode you can call
-      <code>s.shrink_to_fit()</code> to achieve the same effect as
+   <para>From GCC 4.5 in <link linkend="status.iso.2011">C++11</link> mode you
+      can call <code>s.shrink_to_fit()</code> to achieve the same effect as
       <code>s.reserve(s.size())</code>.
    </para>
 

commit 2f20d092fcf6d84128451278e7c3d53ff1671131
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Oct 30 21:10:58 2024 +0000

    libstdc++: Fix some typos and grammatical errors in docs
    
    Also remove some redundant 'void' parameters from code examples.
    
    libstdc++-v3/ChangeLog:
    
            * doc/xml/manual/using_exceptions.xml: Fix typos and grammatical
            errors.
            * doc/html/manual/using_exceptions.html: Regenerate.
    
    (cherry picked from commit 96566cc46d633c2026976e585b5743e880a8f99b)

diff --git a/libstdc++-v3/doc/html/manual/using_exceptions.html b/libstdc++-v3/doc/html/manual/using_exceptions.html
index 706b27e1479..eb4501b1f6b 100644
--- a/libstdc++-v3/doc/html/manual/using_exceptions.html
+++ b/libstdc++-v3/doc/html/manual/using_exceptions.html
@@ -158,7 +158,7 @@ exception neutrality and exception safety.
   </dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="intro.using.exception.no"></a>Doing without</h3></div></div></div><p>
     C++ is a language that strives to be as efficient as is possible
     in delivering features. As such, considerable care is used by both
-    language implementer and designers to make sure unused features
+    language implementer and designers to make sure unused features do
     not impose hidden or unexpected costs. The GNU system tries to be
     as flexible and as configurable as possible. So, it should come as
     no surprise that GNU C++ provides an optional language extension,
@@ -166,7 +166,7 @@ exception neutrality and exception safety.
     implicitly generated magic necessary to
     support <code class="literal">try</code> and <code class="literal">catch</code> blocks
     and thrown objects. (Language support
-    for <code class="literal">-fno-exceptions</code> is documented in the GCC 
+    for <code class="literal">-fno-exceptions</code> is documented in the GCC
     <a class="link" href="https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options" target="_top">manual</a>.)
   </p><p>Before detailing the library support
     for <code class="literal">-fno-exceptions</code>, first a passing note on
@@ -179,7 +179,7 @@ exception neutrality and exception safety.
     uses <code class="literal">try</code> or <code class="literal">catch</code>, you
     shouldn't use <code class="literal">-fno-exceptions</code>.
   </p><p>
-    And what it to be gained, tinkering in the back alleys with a
+    And what is to be gained, tinkering in the back alleys with a
     language like this? Exception handling overhead can be measured
     in the size of the executable binary, and varies with the
     capabilities of the underlying operating system and specific
@@ -216,15 +216,15 @@ exception neutrality and exception safety.
 # define __throw_exception_again
 #endif
 </pre><p>
-  In addition, for every object derived from
+  In addition, for most of the classes derived from
   class <code class="classname">exception</code>, there exists a corresponding
   function with C language linkage. An example:
 </p><pre class="programlisting">
 #if __cpp_exceptions
-  void __throw_bad_exception(void)
+  void __throw_bad_exception()
   { throw bad_exception(); }
 #else
-  void __throw_bad_exception(void)
+  void __throw_bad_exception()
   { abort(); }
 #endif
 </pre><p>
diff --git a/libstdc++-v3/doc/xml/manual/using_exceptions.xml b/libstdc++-v3/doc/xml/manual/using_exceptions.xml
index ab42c809939..ac2ba9dffd4 100644
--- a/libstdc++-v3/doc/xml/manual/using_exceptions.xml
+++ b/libstdc++-v3/doc/xml/manual/using_exceptions.xml
@@ -274,7 +274,7 @@ exception neutrality and exception safety.
   <para>
     C++ is a language that strives to be as efficient as is possible
     in delivering features. As such, considerable care is used by both
-    language implementer and designers to make sure unused features
+    language implementer and designers to make sure unused features do
     not impose hidden or unexpected costs. The GNU system tries to be
     as flexible and as configurable as possible. So, it should come as
     no surprise that GNU C++ provides an optional language extension,
@@ -282,7 +282,7 @@ exception neutrality and exception safety.
     implicitly generated magic necessary to
     support <literal>try</literal> and <literal>catch</literal> blocks
     and thrown objects. (Language support
-    for <literal>-fno-exceptions</literal> is documented in the GCC 
+    for <literal>-fno-exceptions</literal> is documented in the GCC
     <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options">manual</link>.)
   </para>
 
@@ -299,7 +299,7 @@ exception neutrality and exception safety.
   </para>
 
   <para>
-    And what it to be gained, tinkering in the back alleys with a
+    And what is to be gained, tinkering in the back alleys with a
     language like this? Exception handling overhead can be measured
     in the size of the executable binary, and varies with the
     capabilities of the underlying operating system and specific
@@ -344,17 +344,17 @@ exception neutrality and exception safety.
 </programlisting>
 
 <para>
-  In addition, for every object derived from
+  In addition, for most of the classes derived from
   class <classname>exception</classname>, there exists a corresponding
   function with C language linkage. An example:
 </para>
 
 <programlisting>
 #if __cpp_exceptions
-  void __throw_bad_exception(void)
+  void __throw_bad_exception()
   { throw bad_exception(); }
 #else
-  void __throw_bad_exception(void)
+  void __throw_bad_exception()
   { abort(); }
 #endif
 </programlisting>

commit 0cdd4c97c40331eadbd3e0e08c3c6f122c765c87
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Dec 11 09:37:48 2024 +0000

    libstdc++: Make std::println use locale from ostream (LWG 4088)
    
    This was just approved in Wrocław.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/ostream (println): Pass stream's locale to
            std::format, as per LWG 4088.
            * testsuite/27_io/basic_ostream/print/1.cc: Check std::println
            with custom locale. Remove unused brit_punc class.
    
    (cherry picked from commit 1fd7e36e990396c22823cedd068def2aa3b112ce)

diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream
index 12be6c4fd17..cb5675fe1bd 100644
--- a/libstdc++-v3/include/std/ostream
+++ b/libstdc++-v3/include/std/ostream
@@ -992,8 +992,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     inline void
     println(ostream& __os, format_string<_Args...> __fmt, _Args&&... __args)
     {
-      std::print(__os, "{}\n",
-		 std::format(__fmt, std::forward<_Args>(__args)...));
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 4088. println ignores the locale imbued in std::ostream
+      std::print(__os, "{}\n", std::format(__os.getloc(), __fmt,
+					   std::forward<_Args>(__args)...));
     }
 
   // Defined for C++26, supported as an extension to C++23.
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/print/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/print/1.cc
index cd4b116ac1c..183e08733d2 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/print/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/print/1.cc
@@ -63,14 +63,6 @@ test_vprint_nonunicode()
   // { dg-output "garbage in . garbage out" }
 }
 
-struct brit_punc : std::numpunct<char>
-{
-  std::string do_grouping() const override { return "\3\3"; }
-  char do_thousands_sep() const override { return ','; }
-  std::string do_truename() const override { return "yes mate"; }
-  std::string do_falsename() const override { return "nah bruv"; }
-};
-
 void
 test_locale()
 {
@@ -82,7 +74,7 @@ test_locale()
 
   // The default C locale.
   std::locale cloc = std::locale::classic();
-  // A custom locale using comma digit separators.
+  // A custom locale using tilde digit separators.
   std::locale bloc(cloc, new stream_punc);
 
   {
@@ -101,6 +93,14 @@ test_locale()
     std::print(os, "{:L} {}", 12345, 6789);
     VERIFY(os.str() == "1~23~45 6789");
   }
+
+  {
+    // LWG 4088. println ignores the locale imbued in std::ostream
+    std::ostringstream os;
+    os.imbue(bloc);
+    std::println(os, "{:L} {}", 12345, 6789);
+    VERIFY(os.str() == "1~23~45 6789\n");
+  }
 }
 
 void

commit d05d583f80ce3595e417955019d434690295b332
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Dec 12 20:38:54 2024 +0000

    libstdc++: Fix typo in comment in src/c++17/fs_dir.cc
    
    libstdc++-v3/ChangeLog:
    
            * src/c++17/fs_dir.cc: Fix typo in comment.
    
    (cherry picked from commit 93069606949f45cb5f60bc7f4efc4860c23c8e1c)

diff --git a/libstdc++-v3/src/c++17/fs_dir.cc b/libstdc++-v3/src/c++17/fs_dir.cc
index 28d27f6a9fa..fa0f7281f36 100644
--- a/libstdc++-v3/src/c++17/fs_dir.cc
+++ b/libstdc++-v3/src/c++17/fs_dir.cc
@@ -479,7 +479,7 @@ fs::recursive_directory_iterator::__erase(error_code* ecptr)
 
 #if _GLIBCXX_FILESYSTEM_IS_WINDOWS
       // _Dir::unlink uses fs::remove which uses std::system_category() for
-      // Windows errror codes, so we can't just check for EPERM and EISDIR.
+      // Windows error codes, so we can't just check for EPERM and EISDIR.
       // Use directory_entry::refresh() here to check if we have a directory.
       // This can be a TOCTTOU race, but we don't have openat or unlinkat to
       // solve that on Windows, and generally don't support symlinks anyway.

commit 72fe42c9a095ef9b4125bd65999cd1012dfb73b7
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Apr 11 19:12:48 2024 +0100

    libstdc++: Give std::memory_order a fixed underlying type [PR89624]
    
    Prior to C++20 this enum type doesn't have a fixed underlying type,
    which means it can be modified by -fshort-enums, which then means the
    HLE bits are outside the range of valid values for the type.
    
    As it has a fixed type of int in C++20 and later, do the same for
    earlier standards too. This is technically a change for C++17 down,
    because the implicit underlying type (without -fshort-enums) was
    unsigned before. I doubt it matters in practice. That incompatibility
    already exists between C++17 and C++20 and nobody has noticed or
    complained. Now at least the underlying type will be int for all -std
    modes.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/89624
            * include/bits/atomic_base.h (memory_order): Use int as
            underlying type.
            * testsuite/29_atomics/atomic/89624.cc: New test.
    
    (cherry picked from commit 99dd1be14172445795f0012b935359e7014a2215)

diff --git a/libstdc++-v3/include/bits/atomic_base.h b/libstdc++-v3/include/bits/atomic_base.h
index 3a23c7881cd..20901b7fc06 100644
--- a/libstdc++-v3/include/bits/atomic_base.h
+++ b/libstdc++-v3/include/bits/atomic_base.h
@@ -78,7 +78,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   inline constexpr memory_order memory_order_acq_rel = memory_order::acq_rel;
   inline constexpr memory_order memory_order_seq_cst = memory_order::seq_cst;
 #else
-  typedef enum memory_order
+  enum memory_order : int
     {
       memory_order_relaxed,
       memory_order_consume,
@@ -86,7 +86,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       memory_order_release,
       memory_order_acq_rel,
       memory_order_seq_cst
-    } memory_order;
+    };
 #endif
 
   /// @cond undocumented
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/89624.cc b/libstdc++-v3/testsuite/29_atomics/atomic/89624.cc
new file mode 100644
index 00000000000..480f7c65e2d
--- /dev/null
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/89624.cc
@@ -0,0 +1,9 @@
+// { dg-options "-fshort-enums" }
+// { dg-do compile { target c++11 } }
+
+// Bug 89624 HLE bits don't work with -fshort-enums or -fstrict-enums
+
+#include <atomic>
+
+static_assert((std::memory_order_acquire | std::__memory_order_hle_acquire)
+    != std::memory_order_acquire, "HLE acquire sets a bit");

commit 734d7dae428a17647d49ed2734ccc1d7d9c9a3b5
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jun 18 16:09:08 2024 +0100

    libstdc++: Undeprecate std::pmr::polymorphic_allocator::destroy (P2875R4)
    
    This member function was previously deprecated, but that was reverted by
    P2875R4, approved earlier this year in Tokyo. Since it's not going to be
    deprecated in C++26, and so presumably not removed, there is no point in
    giving deprecated warnings for C++23 mode.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/memory_resource.h (polymorphic_allocator::destroy):
            Remove deprecated attribute.
    
    (cherry picked from commit c3e237338eb7ffc90f3cc8d32a3971d17f6d0b31)

diff --git a/libstdc++-v3/include/bits/memory_resource.h b/libstdc++-v3/include/bits/memory_resource.h
index 022371245c1..5f50b296df7 100644
--- a/libstdc++-v3/include/bits/memory_resource.h
+++ b/libstdc++-v3/include/bits/memory_resource.h
@@ -305,7 +305,6 @@ namespace pmr
 #endif
 
       template<typename _Up>
-	_GLIBCXX20_DEPRECATED_SUGGEST("allocator_traits::destroy")
 	__attribute__((__nonnull__))
 	void
 	destroy(_Up* __p)

commit e6d2bcf74235ec8760136b2d7364ec472954b65b
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Aug 23 21:54:21 2024 +0100

    libstdc++: Improve Doxygen docs for std::allocator_traits specializations
    
    The main fix here is to use @header so that the docs show the correct
    header file instead of an internal header like alloc_traits.h.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/alloc_traits.h: Improve doxygen docs for
            allocator_traits specializations.
            * include/bits/memory_resource.h: Likewise.
    
    (cherry picked from commit cd8e0ea7273425931a0843f4355ad61e177e1bf2)

diff --git a/libstdc++-v3/include/bits/alloc_traits.h b/libstdc++-v3/include/bits/alloc_traits.h
index a81b286eee7..9d55a191288 100644
--- a/libstdc++-v3/include/bits/alloc_traits.h
+++ b/libstdc++-v3/include/bits/alloc_traits.h
@@ -450,7 +450,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #pragma GCC diagnostic pop
 
 #if _GLIBCXX_HOSTED
-  /// Partial specialization for std::allocator.
+  /**
+   * @brief  Partial specialization for `std::allocator`
+   * @headerfile memory
+   * @ingroup allocators
+   * @since C++11
+   * @see std::allocator_traits
+  */
   template<typename _Tp>
     struct allocator_traits<allocator<_Tp>>
     {
@@ -621,7 +627,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       { return __rhs; }
     };
 
-  /// Explicit specialization for std::allocator<void>.
+  /**
+   * @brief  Explicit specialization for `std::allocator<void>`
+   * @headerfile memory
+   * @ingroup allocators
+   * @since C++11
+   * @see std::allocator_traits
+  */
   template<>
     struct allocator_traits<allocator<void>>
     {
diff --git a/libstdc++-v3/include/bits/memory_resource.h b/libstdc++-v3/include/bits/memory_resource.h
index 5f50b296df7..db515fb30ef 100644
--- a/libstdc++-v3/include/bits/memory_resource.h
+++ b/libstdc++-v3/include/bits/memory_resource.h
@@ -52,7 +52,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 namespace pmr
 {
-  /// Class memory_resource
+  /// Class `memory_resource`
   /**
    * @ingroup pmr
    * @headerfile memory_resource
@@ -385,7 +385,12 @@ namespace pmr
 
   template<typename _Alloc> struct allocator_traits;
 
-  /// Partial specialization for std::pmr::polymorphic_allocator
+  /// Partial specialization for `std::pmr::polymorphic_allocator`
+  /**
+   * @ingroup pmr
+   * @headerfile memory_resource
+   * @since C++17
+   */
   template<typename _Tp>
     struct allocator_traits<pmr::polymorphic_allocator<_Tp>>
     {

commit a4c0f16f048b64c1ab3b2521e3a1595afc64462b
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Dec 10 14:35:07 2024 +0000

    libstdc++: Use feature test macro for pmr::polymorphic_allocator<>
    
    Check the __glibcxx_polymorphic_allocator macro instead of just checking
    whether __cplusplus > 201703L.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/memory_resource.h (polymoprhic_allocator): Use
            feature test macro for P0339R6 features.
    
    (cherry picked from commit b26d92f4f71594206385d6f645ff626c0bf9b59c)

diff --git a/libstdc++-v3/include/bits/memory_resource.h b/libstdc++-v3/include/bits/memory_resource.h
index db515fb30ef..9bfeaedf078 100644
--- a/libstdc++-v3/include/bits/memory_resource.h
+++ b/libstdc++-v3/include/bits/memory_resource.h
@@ -168,7 +168,7 @@ namespace pmr
       __attribute__((__nonnull__))
       { _M_resource->deallocate(__p, __n * sizeof(_Tp), alignof(_Tp)); }
 
-#if __cplusplus > 201703L
+#ifdef __glibcxx_polymorphic_allocator // >= C++20
       [[nodiscard]] void*
       allocate_bytes(size_t __nbytes,
 		     size_t __alignment = alignof(max_align_t))
@@ -218,9 +218,9 @@ namespace pmr
 	  __p->~_Up();
 	  deallocate_object(__p);
 	}
-#endif // C++2a
+#endif // C++20
 
-#if ! __glibcxx_make_obj_using_allocator
+#if ! __glibcxx_make_obj_using_allocator // >= C++20
       template<typename _Tp1, typename... _Args>
 	__attribute__((__nonnull__))
 	typename __not_pair<_Tp1>::type
@@ -336,7 +336,7 @@ namespace pmr
 #endif
 
     private:
-#if ! __glibcxx_make_obj_using_allocator
+#if ! __glibcxx_make_obj_using_allocator // >= C++20
       using __uses_alloc1_ = __uses_alloc1<polymorphic_allocator>;
       using __uses_alloc2_ = __uses_alloc2<polymorphic_allocator>;
 

commit 1bf4bfc2f551341f775f37bd661a8bbd4ecc97ed
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Jan 10 00:24:10 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0c838863aee..67d57519283 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,171 @@
+2025-01-09  Christophe Lyon  <christophe.lyon@linaro.org>
+
+	Backported from master:
+	2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+		    Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/114801
+	* config/arm/arm-mve-builtins.cc
+	(function_expander::add_input_operand): Handle CONST_INT
+	predicates.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-14  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/118024
+	* gimple-ssa-warn-access.cc (matching_alloc_calls_p): Walk malloc
+	attributes of alloc_decl and dealloc_decl in separate loops rather
+	than in lock-step.  Use common_deallocs.contains rather than
+	common_deallocs.add in the second loop.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-13  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/117095
+	* cse.cc (cse_extended_basic_block): Don't call record_jump_equiv
+	if multiple_sets (insn).
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-09  Jakub Jelinek  <jakub@redhat.com>
+
+	PR sanitizer/117960
+	* doc/invoke.texi (fsanitize=hwaddress): Clarify on which targets
+	it is supported.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-05  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/113994
+	PR rtl-optimization/116799
+	* loop-doloop.cc: Include targhooks.h.
+	(doloop_optimize): Also punt on intersection of modified
+	with df_get_live_in (desc->out_edge->dest).
+	(doloop_optimize_loops): Call df_analyze.  Use
+	LI_ONLY_INNERMOST or LI_FROM_INNERMOST instead of 0 as
+	second loops_list argument.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-03  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/117847
+	* gimple-lower-bitint.cc (gimple_lower_bitint) <case LROTATE_EXPR>:
+	Use m = (p - n) % p instead of m = p - n for the other shift count.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-30  Jakub Jelinek  <jakub@redhat.com>
+
+	PR libgomp/117851
+	* lto-wrapper.cc (find_crtoffloadtable): Add PIE_OR_SHARED argument,
+	search for crtoffloadtableS.o rather than crtoffloadtable.o if
+	true.
+	(run_gcc): Add pie_or_shared variable.  If OPT_pie or OPT_shared or
+	OPT_static_pie is seen, set pie_or_shared to true, if OPT_no_pie is
+	seen, set pie_or_shared to false.  Pass it to find_crtoffloadtable.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/117642
+	* doc/extend.texi: Remove documentation of warning for unimplemented
+	__sync_* operations, such warning has never been implemented.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/117802
+	* builtins.cc (fold_builtin_iseqsig): Handle BITINT_TYPE like
+	INTEGER_TYPE.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/102674
+	* builtins.cc (fold_builtin_fpclassify): Use real_from_string3 rather
+	than real_from_string.  Use "1E%d" format string rather than "0x1p%d"
+	for decimal float minimum.  Formatting fixes.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/43374
+	* real.cc (get_max_float): Handle decimal float.
+	* builtins.cc (fold_builtin_interclass_mathfn): Use
+	real_from_string3 rather than real_from_string.  Use
+	"1E%d" format string rather than "0x1p%d" for decimal
+	float minimum.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-21  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/94589
+	PR tree-optimization/117612
+	* tree-ssa-phiopt.cc (spaceship_replacement): Fix up
+	a pasto in check when arg1 is 2.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/117458
+	* expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
+	call extract_bit_field if op0 has complex mode and isn't a MEM,
+	instead first force op0 into memory and then call extract_bit_field.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/117459
+	* gimple-lower-bitint.cc (bitint_large_huge::handle_stmt,
+	bitint_large_huge::lower_stmt): Handle PAREN_EXPR.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/117439
+	* gimple-ssa-store-merging.cc
+	(imm_store_chain_info::coalesce_immediate_stores): Punt if merging of
+	any of the additional overlapping stores would result in growing the
+	bitregion size over param_store_merging_max_size.
+	(pass_store_merging::process_store): Terminate all aliasing chains
+	for stores with bitregion larger than param_store_merging_max_size.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/117439
+	* gimple-ssa-store-merging.cc (encode_tree_to_bitpos): For
+	empty_ctor_p use !sub_byte_op_p even if bitlen doesn't have an
+	integral mode.
+
 2024-12-23  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f8b56893859..a6b5049790e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250109
+20250110
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index f316462d2f4..21c8d9b9308 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,32 @@
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/43374
+	* c-cppbuiltin.cc (builtin_define_decimal_float_constants): Use
+	get_max_float.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/117641
+	* c-common.cc (sync_resolve_size): For size 16 with _BitInt
+	on targets where TImode isn't supported, use goto incompatible if
+	!fetch.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/117641
+	* c-common.cc (sync_resolve_size): For size == 16 fetch of
+	BITINT_TYPE if TImode isn't supported scalar mode diagnose
+	and return 0 if orig_format instead of returning 16.
+
 2024-10-23  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index a3e75e9794a..cdc57b0adca 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,13 @@
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-27  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/117745
+	* c-parser.cc (c_parser_sizeof_expression): If type_name is NULL,
+	just expr.set_error () and goto sizeof_expr instead of doing error
+	recovery manually.
+
 2024-10-09  Martin Uecker  <uecker@tugraz.at>
 
 	Backported from master:
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index aeec0b7d6ad..acf773da565 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,155 @@
+2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/118060
+	* constraint.cc (tsubst_valid_expression_requirement): Don't
+	check convert_to_void during partial substitution.
+
+2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/117925
+	* constexpr.cc (potential_constant_expression_1) <case CAST_EXPR>:
+	Fix check for class conversion to literal type to properly look
+	through the TREE_LIST operand of a CAST_EXPR.
+
+2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/117925
+	* constexpr.cc (cxx_eval_constant_expression) <default>:
+	Relax ICE when encountering an unexpected tree code into a
+	checking ICE guarded by flag_checking.
+
+2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/117792
+	* pt.cc (type_dependent_expression_p): Consider the dependence
+	of the address of each template argument of a function
+	template-id.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-12-17  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/117985
+	* init.cc (build_vec_init): Pop CLEANUP_FLAGS if we're not
+	generating the loop.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-07-01  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/115430
+	* typeck.cc (cp_build_compound_expr): Call resolve_nondeduced_context
+	on RHS.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-04  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/113108
+	* pt.cc (resolve_overloaded_unification): Call
+	maybe_instantiate_noexcept.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-27  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/102594
+	* init.cc (build_vec_init): Build up a CONSTRUCTOR to signal
+	direct-initialization rather than a TREE_LIST.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-10  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116369
+	* call.cc (set_up_extended_ref_temp): Don't mark a temporary
+	TREE_READONLY if its type is TYPE_HAS_MUTABLE_P.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-08-19  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/115657
+	* decl.cc (build_enumerator): Call maybe_fold_non_dependent_expr
+	instead of fold_non_dependent_expr.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-05-15  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/114854
+	* call.cc (convert_like_internal) <case ck_user>: Don't set
+	TARGET_EXPR_DIRECT_INIT_P.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-30  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/109859
+	* parser.cc (cp_parser_lambda_declarator_opt): Temporarily clear
+	local_variables_forbidden_p.
+	(cp_parser_placeholder_type_specifier): Turn an assert into an
+	error.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-08  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/117825
+	* typeck.cc (cp_build_function_call_vec): Don't call
+	check_function_arguments if complain doesn't have tf_warning bit set.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-17  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/116108
+	* decl.cc (grokdeclarator): Pass TYYPE_MAIN_VARIANT (type)
+	rather than type to same_type_p when checking if the non-static
+	data member doesn't have current class type.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-11  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/117614
+	* constexpr.cc (cxx_eval_store_expression): For stores to
+	DECL_ANON_UNION_VAR_P vars just continue with DECL_VALUE_EXPR
+	of it, without setting evaluated to true or full
+	cxx_eval_constant_expression.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-08  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/117317
+	* semantics.cc (emit_associated_thunks): Do nothing for
+	!DECL_INTERFACE_KNOWN && DECL_DEFER_OUTPUT fns.
+
 2025-01-03  Nathaniel Shead  <nathanieloshead@gmail.com>
 
 	Backported from master:
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index a69ec10220f..5af3c455e36 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,11 @@
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* Make-lang.in (m2_OBJS): Add $(BUILD-LIBS-BOOT),
+	$(BUILD-COMPILER-BOOT) and $(MC_LIBS).
+
 2024-12-14  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ccb4bcd0767..6aafcd32336 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,247 @@
+2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/118060
+	* g++.dg/cpp2a/concepts-requires40.C: New test.
+
+2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/117925
+	* g++.dg/template/non-dependent35.C: New test.
+
+2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/117792
+	* g++.dg/cpp1z/nontype7.C: New test.
+
+2025-01-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2025-01-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/memset-inline-8.c: Use -Os and prefix assembler
+	instructions with a tab to improve test stability.
+	* gcc.target/arm/memset-inline-8-exe.c: Use -Os.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-12-17  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/117985
+	* g++.dg/cpp0x/initlist-array23.C: New test.
+	* g++.dg/cpp0x/initlist-array24.C: New test.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-07-01  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/115430
+	* g++.dg/cpp0x/noexcept41.C: Remove dg-error.
+	* g++.dg/overload/addr3.C: New test.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-04  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/113108
+	* g++.dg/cpp1z/noexcept-type28.C: New test.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-27  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/102594
+	* g++.dg/cpp1z/decomp61.C: New test.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-10  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/116369
+	* g++.dg/tree-ssa/initlist-opt7.C: New test.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-08-19  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/115657
+	* g++.dg/cpp1y/constexpr-recursion2.C: New test.
+	* g++.dg/template/conv21.C: New test.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-05-15  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/114854
+	* g++.dg/cpp1y/nsdmi-aggr22.C: New test.
+
+2025-01-09  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2024-09-30  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/109859
+	* g++.dg/cpp2a/concepts-defarg3.C: New test.
+	* g++.dg/cpp2a/lambda-targ8.C: New test.
+
+2025-01-09  Christophe Lyon  <christophe.lyon@linaro.org>
+
+	Backported from master:
+	2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
+		    Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/114801
+	* gcc.target/arm/mve/pr108443.c: Update predicate constant.
+	* gcc.target/arm/mve/pr108443-run.c: Likewise.
+	* gcc.target/arm/mve/pr114801.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-08  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/117825
+	* g++.dg/warn/pr117825.C: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-17  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/116108
+	* g++.dg/cpp1z/class-deduction117.C: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-14  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/118024
+	* gcc.dg/pr118024.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-13  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/117095
+	* gcc.c-torture/execute/pr117095.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-11  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/117614
+	* g++.dg/cpp2a/constexpr-union8.C: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-12-05  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/113994
+	PR rtl-optimization/116799
+	* gcc.c-torture/execute/pr116799.c: New test.
+	* g++.dg/torture/pr113994.C: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/117802
+	* gcc.dg/builtin-iseqsig-1.c: New test.
+	* gcc.dg/bitint-118.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-27  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/117745
+	* gcc.dg/pr117745.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/102674
+	* gcc.dg/dfp/pr102674.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/43374
+	* gcc.dg/dfp/pr43374.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-22  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/117641
+	* gcc.dg/bitint-117.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c/117641
+	* gcc.dg/bitint-115.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/117458
+	* gcc.dg/bitint-116.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/117459
+	* gcc.dg/torture/bitint-74.c: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-08  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/117317
+	* g++.dg/cpp2a/pr117317-1.C: New test.
+	* g++.dg/cpp2a/pr117317-2.C: New test.
+
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/117439
+	* g++.dg/opt/pr117439.C: New test.
+
 2024-12-23  Christophe Lyon  <christophe.lyon@linaro.org>
 
 	Revert:
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 8b9bd0cc02d..34bea392b79 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,13 @@
+2025-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2024-11-30  Jakub Jelinek  <jakub@redhat.com>
+
+	PR libgomp/117851
+	* configure.ac (extra_parts): Add crtoffloadtableS.o.
+	* Makefile.in (crtoffloadtableS$(objext)): New goal.
+	* configure: Regenerated.
+
 2025-01-06  Stafford Horne  <shorne@gmail.com>
 
 	* config/or1k/lib1funcs.S: Add .note.GNU-stack section on linux.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 10c2aae3016..f3bacd2a013 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,237 @@
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-10  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/memory_resource.h (polymoprhic_allocator): Use
+	feature test macro for P0339R6 features.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-08-23  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/alloc_traits.h: Improve doxygen docs for
+	allocator_traits specializations.
+	* include/bits/memory_resource.h: Likewise.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/memory_resource.h (polymorphic_allocator::destroy):
+	Remove deprecated attribute.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-05-15  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/89624
+	* include/bits/atomic_base.h (memory_order): Use int as
+	underlying type.
+	* testsuite/29_atomics/atomic/89624.cc: New test.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-12  Jonathan Wakely  <jwakely@redhat.com>
+
+	* src/c++17/fs_dir.cc: Fix typo in comment.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/ostream (println): Pass stream's locale to
+	std::format, as per LWG 4088.
+	* testsuite/27_io/basic_ostream/print/1.cc: Check std::println
+	with custom locale. Remove unused brit_punc class.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-10-30  Jonathan Wakely  <jwakely@redhat.com>
+
+	* doc/xml/manual/using_exceptions.xml: Fix typos and grammatical
+	errors.
+	* doc/html/manual/using_exceptions.html: Regenerate.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-05-14  Jonathan Wakely  <jwakely@redhat.com>
+
+	* doc/xml/manual/strings.xml: Clarify that GCC 4.5 added
+	std::string::shrink_to_fit.
+	* doc/html/manual/strings.html: Regenerate.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-27  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/c++config (__glibcxx_assert): Remove useless
+	__builtin_expect from constexpr-only assertion. Improve
+	comments.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/108236
+	* include/pstl/glue_numeric_impl.h (exclusive_scan): Pass __init
+	as rvalue.
+	* include/pstl/numeric_impl.h (__brick_transform_scan): Do not
+	write through __result until after reading through __first. Move
+	__init into return value.
+	(__pattern_transform_scan): Pass __init as rvalue.
+	* include/std/numeric (exclusive_scan): Move construct instead
+	of copy constructing.
+	* testsuite/26_numerics/exclusive_scan/2.cc: New test.
+	* testsuite/26_numerics/pstl/numeric_ops/108236.cc: New test.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/117962
+	* include/debug/safe_container.h: Make allocator-extended move
+	constructor a no-op during constant evaluation.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/109517
+	PR libstdc++/109976
+	* include/debug/helper_functions.h (__valid_range_aux): Treat
+	all input iterator ranges as valid during constant evaluation.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/106212
+	* include/std/array (operator==): Use std::__equal_aux1 instead
+	of std::equal.
+	* testsuite/23_containers/array/comparison_operators/106212.cc:
+	New test.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-11  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/117966
+	* include/std/span (span(T (&)[N])): Do not delegate to
+	constructor that performs redundant checks.
+	(span(array<T, N>&), span(const array<T, N>&)): Likewise.
+	(span(Range&&), span(const span<T, N>&)): Likewise.
+	* testsuite/23_containers/span/117966.cc: New test.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-17  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/118035
+	* include/bits/deque.tcc (_M_range_insert_aux): Return
+	immediately if inserting an empty range.
+	* testsuite/23_containers/deque/modifiers/insert/118035.cc: New
+	test.
+
+2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-12-13  Patrick Palka  <ppalka@redhat.com>
+
+	PR libstdc++/112349
+	* include/bits/ranges_algo.h (__min_fn::operator()): Turn local
+	object __tmp into a reference.
+	* include/bits/ranges_util.h (__max_fn::operator()): Likewise.
+	* testsuite/25_algorithms/max/constrained.cc (test04): New test.
+	* testsuite/25_algorithms/min/constrained.cc (test04): New test.
+
+2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-11-14  Patrick Palka  <ppalka@redhat.com>
+
+	* include/std/ranges (keys_view): Adjust as per LWG 3563.
+	(values_view): Likewise.
+	* testsuite/std/ranges/adaptors/elements.cc (test08): New test.
+
+2025-01-09  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2024-10-29  Patrick Palka  <ppalka@redhat.com>
+
+	PR libstdc++/112641
+	* include/std/ranges (drop_view::begin): Reimplement const
+	overload so that it's O(1) always.
+	* testsuite/std/ranges/adaptors/drop.cc (test10): New test.
+
+2025-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
+
+	Backported from master:
+	2024-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
+
+	* doc/xml/manual/abi.xml: Update reference to
+	gcc.gnu.org/onlinedocs.
+	* doc/xml/manual/concurrency_extensions.xml (interface): Ditto.
+	* doc/xml/manual/extensions.xml: Ditto.
+	* doc/xml/manual/parallel_mode.xml: Ditto.
+	* doc/xml/manual/shared_ptr.xml: Ditto.
+	* doc/xml/manual/using_exceptions.xml: Ditto. And change GNU GCC
+	to GCC.
+	* doc/html/index.html: Regenerate.
+	* doc/html/manual/abi.html: Ditto.
+	* doc/html/manual/ext_concurrency_impl.html: Ditto.
+	* doc/html/manual/ext_demangling.html: Ditto.
+	* doc/html/manual/memory.html: Ditto.
+	* doc/html/manual/parallel_mode_design.html: Ditto.
+	* doc/html/manual/parallel_mode_using.html: Ditto.
+	* doc/html/manual/using_exceptions.html: Ditto.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2025-01-08  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/118093
+	* include/bits/atomic_futex.h (_M_load_and_test_until_impl):
+	Return false for times before the epoch.
+	* src/c++11/futex.cc (_M_futex_wait_until): Extend check for
+	negative times to check for subsecond times. Add unlikely
+	attribute.
+	(_M_futex_wait_until_steady): Likewise.
+	* testsuite/30_threads/future/members/118093.cc: New test.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2025-01-08  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/move.h (forward, move, move_if_noexcept, addressof):
+	Add @since to Doxygen comments.
+	(forward_like): Add Doxygen comment.
+
+2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2025-01-08  Jonathan Wakely  <jwakely@redhat.com>
+
+	* doc/xml/manual/evolution.xml: Replace invalid <variable>
+	elements with <varname>.
+	* doc/html/*: Regenerate.
+
 2024-12-16  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit 91b524aa80e2ce22c4613f6bea625a72d1f5f4ed
Author: Sam James <sam@gentoo.org>
Date:   Wed Jan 1 17:16:17 2025 +0000

    doc: cpp: fix version test example syntax
    
    gcc/ChangeLog:
    
            * doc/cpp.texi (Common Predefined Macros): Fix syntax.

diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi
index 3de6e7aa737..a2f982c510a 100644
--- a/gcc/doc/cpp.texi
+++ b/gcc/doc/cpp.texi
@@ -1971,7 +1971,7 @@ like this:
 #if __GNUC__ > 3 || \
     (__GNUC__ == 3 && (__GNUC_MINOR__ > 2 || \
                        (__GNUC_MINOR__ == 2 && \
-                        __GNUC_PATCHLEVEL__ > 0))
+                        __GNUC_PATCHLEVEL__ > 0)))
 @end smallexample
 
 @noindent

commit 02b1172dad4c444953868f411fc8dd4483f320e7
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Dec 5 10:47:13 2024 +0100

    tree-optimization/117912 - bogus address equivalences for __builtin_object_size
    
    VN again is the culprit for exploiting address equivalences before
    __builtin_object_size got the chance to do its job.  This time
    it isn't about union members but adjacent structure fields where
    an address to one after the last element of an array field can
    spill over to the next field.
    
    The following protects all out-of-bound accesses on the upper bound
    side (singling out TYPE_MAX_VALUE + 1 is more expensive).  It
    ignores other out-of-bound addresses that would invoke UB.
    
    Zero-sized arrays are a bit awkward because the C++ represents them
    with a -1U upper bound.
    
    There's a similar issue for zero-sized components whose address can
    be the same as the adjacent field in C.
    
            PR tree-optimization/117912
            * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): For addresses
            of zero-sized components do not set ->off if the object size pass
            didn't run.
            For OOB ARRAY_REF accesses in address expressions avoid setting
            ->off if the object size pass didn't run.
            (valueize_refs_1): Likewise.
    
            * c-c++-common/torture/pr117912-1.c: New testcase.
            * c-c++-common/torture/pr117912-2.c: Likewise.
            * c-c++-common/torture/pr117912-3.c: Likewise.
    
    (cherry picked from commit 233972ab3b5338d7a5d1d7af9108c1f366170e44)

diff --git a/gcc/testsuite/c-c++-common/torture/pr117912-1.c b/gcc/testsuite/c-c++-common/torture/pr117912-1.c
new file mode 100644
index 00000000000..2750585c7f7
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/torture/pr117912-1.c
@@ -0,0 +1,28 @@
+/* { dg-do run } */
+
+struct S { int a; int b[24]; int c[24]; int d; };
+volatile int *p;
+
+void __attribute__((noipa))
+bar (int *q)
+{
+ p = q;
+}
+
+__SIZE_TYPE__ __attribute__((noipa))
+foo (struct S *p)
+{
+  bar (&p->b[24]);
+  bar (&p->c[0]);
+  return __builtin_object_size (&p->c[0], 1);
+}
+
+int
+main()
+{
+  struct S s;
+  __SIZE_TYPE__ x = foo (&s);
+  if (x < sizeof (int) * 24)
+    __builtin_abort ();
+  return 0;
+}
diff --git a/gcc/testsuite/c-c++-common/torture/pr117912-2.c b/gcc/testsuite/c-c++-common/torture/pr117912-2.c
new file mode 100644
index 00000000000..a3a62157563
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/torture/pr117912-2.c
@@ -0,0 +1,28 @@
+/* { dg-do run } */
+
+struct S { int a; int b[0]; int c[24]; int d; };
+volatile int *p;
+
+void __attribute__((noipa))
+bar (int *q)
+{
+ p = q;
+}
+
+__SIZE_TYPE__ __attribute__((noipa))
+foo (struct S *p)
+{
+  bar (&p->b[0]);
+  bar (&p->c[0]);
+  return __builtin_object_size (&p->c[0], 1);
+}
+
+int
+main()
+{
+  struct S s;
+  __SIZE_TYPE__ x = foo (&s);
+  if (x < sizeof (int) * 24)
+    __builtin_abort ();
+  return 0;
+}
diff --git a/gcc/testsuite/c-c++-common/torture/pr117912-3.c b/gcc/testsuite/c-c++-common/torture/pr117912-3.c
new file mode 100644
index 00000000000..64e981d2a5e
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/torture/pr117912-3.c
@@ -0,0 +1,61 @@
+/* { dg-do run } */
+/* { dg-additional-options "-std=gnu++20" { target c++ } } */
+
+struct B {};
+struct A { int a;
+#ifdef __cplusplus
+	   [[no_unique_address]]
+#endif
+	   struct B b;
+	   char c[]; };
+volatile void *p;
+
+void __attribute__((noipa))
+bar (void *q)
+{
+  p = q;
+}
+
+__SIZE_TYPE__ __attribute__((noipa))
+foo (struct A *p)
+{
+  bar (&p->b);
+  bar (&p->c);
+  return __builtin_object_size (&p->c, 1);
+}
+
+__SIZE_TYPE__ __attribute__((noipa))
+baz (void)
+{
+  struct A *p = (struct A *) __builtin_malloc (__builtin_offsetof (struct A, c) + 64);
+  bar (&p->b);
+  bar (&p->c);
+  return __builtin_object_size (&p->c, 1);
+}
+
+__SIZE_TYPE__ __attribute__((noipa))
+qux (struct A *p)
+{
+  bar (&p->b);
+  bar (&p->c);
+  return __builtin_object_size (&p->c, 3);
+}
+
+__SIZE_TYPE__ __attribute__((noipa))
+boo (void)
+{
+  struct A *p = (struct A *) __builtin_malloc (__builtin_offsetof (struct A, c) + 64);
+  bar (&p->b);
+  bar (&p->c);
+  return __builtin_object_size (&p->c, 3);
+}
+
+int
+main ()
+{
+  static struct A a = { .a = 1, .b = {}, .c = { 1, 2, 3, 4, 0 } };
+  if (foo (&a) < 5)
+    __builtin_abort ();
+  if (baz () < 64)
+    __builtin_abort ();
+}
diff --git a/gcc/tree-ssa-sccvn.cc b/gcc/tree-ssa-sccvn.cc
index 0b5c638df45..ff27b75313e 100644
--- a/gcc/tree-ssa-sccvn.cc
+++ b/gcc/tree-ssa-sccvn.cc
@@ -981,11 +981,14 @@ copy_reference_ops_from_ref (tree ref, vec<vn_reference_op_s> *result)
 		    poly_offset_int off
 		      = (wi::to_poly_offset (this_offset)
 			 + (wi::to_offset (bit_offset) >> LOG2_BITS_PER_UNIT));
-		    /* Probibit value-numbering zero offset components
+		    /* Prohibit value-numbering zero offset components
 		       of addresses the same before the pass folding
-		       __builtin_object_size had a chance to run.  */
+		       __builtin_object_size had a chance to run.  Likewise
+		       for components of zero size at arbitrary offset.  */
 		    if (TREE_CODE (orig) != ADDR_EXPR
-			|| maybe_ne (off, 0)
+			|| (TYPE_SIZE (temp.type)
+			    && integer_nonzerop (TYPE_SIZE (temp.type))
+			    && maybe_ne (off, 0))
 			|| (cfun->curr_properties & PROP_objsz))
 		      off.to_shwi (&temp.off);
 		  }
@@ -1006,9 +1009,31 @@ copy_reference_ops_from_ref (tree ref, vec<vn_reference_op_s> *result)
 	    if (! temp.op2)
 	      temp.op2 = size_binop (EXACT_DIV_EXPR, TYPE_SIZE_UNIT (eltype),
 				     size_int (TYPE_ALIGN_UNIT (eltype)));
+	    /* Prohibit value-numbering addresses of one-after-the-last
+	       element ARRAY_REFs the same as addresses of other components
+	       before the pass folding __builtin_object_size had a chance
+	       to run.  */
+	    bool avoid_oob = true;
+	    if (TREE_CODE (orig) != ADDR_EXPR
+		|| cfun->curr_properties & PROP_objsz)
+	      avoid_oob = false;
+	    else if (poly_int_tree_p (temp.op0))
+	      {
+		tree ub = array_ref_up_bound (ref);
+		if (ub
+		    && poly_int_tree_p (ub)
+		    /* ???  The C frontend for T[0] uses [0:] and the
+		       C++ frontend [0:-1U].  See layout_type for how
+		       awkward this is.  */
+		    && !integer_minus_onep (ub)
+		    && known_le (wi::to_poly_offset (temp.op0),
+				 wi::to_poly_offset (ub)))
+		  avoid_oob = false;
+	      }
 	    if (poly_int_tree_p (temp.op0)
 		&& poly_int_tree_p (temp.op1)
-		&& TREE_CODE (temp.op2) == INTEGER_CST)
+		&& TREE_CODE (temp.op2) == INTEGER_CST
+		&& !avoid_oob)
 	      {
 		poly_offset_int off = ((wi::to_poly_offset (temp.op0)
 					- wi::to_poly_offset (temp.op1))
@@ -1735,6 +1760,24 @@ re_valueize:
 	       && poly_int_tree_p (vro->op1)
 	       && TREE_CODE (vro->op2) == INTEGER_CST)
 	{
+	    /* Prohibit value-numbering addresses of one-after-the-last
+	       element ARRAY_REFs the same as addresses of other components
+	       before the pass folding __builtin_object_size had a chance
+	       to run.  */
+	  if (!(cfun->curr_properties & PROP_objsz)
+	      && (*orig)[0].opcode == ADDR_EXPR)
+	    {
+	      tree dom = TYPE_DOMAIN ((*orig)[i + 1].type);
+	      if (!dom
+		  || !TYPE_MAX_VALUE (dom)
+		  || !poly_int_tree_p (TYPE_MAX_VALUE (dom))
+		  || integer_minus_onep (TYPE_MAX_VALUE (dom)))
+		continue;
+	      if (!known_le (wi::to_poly_offset (vro->op0),
+			     wi::to_poly_offset (TYPE_MAX_VALUE (dom))))
+		continue;
+	    }
+
 	  poly_offset_int off = ((wi::to_poly_offset (vro->op0)
 				  - wi::to_poly_offset (vro->op1))
 				 * wi::to_offset (vro->op2)

commit d0191d1631647436c4707ca6b915a46adf591d87
Author: Andrew Carlotti <andrew.carlotti@arm.com>
Date:   Tue Jan 7 18:32:23 2025 +0000

    Disable a broken multiversioning optimisation
    
    This patch skips redirect_to_specific clone for aarch64 and riscv,
    because the optimisation has two flaws:
    
    1. It checks the value of the "target" attribute, even on targets that
    don't use this attribute for multiversioning.
    
    2. The algorithm used is too aggressive, and will eliminate the
    indirection in some cases where the runtime choice of callee version
    can't be determined statically at compile time.  A correct would need to
    verify that:
     - if the current caller version were selected at runtime, then the
       chosen callee version would be eligible for selection.
     - if any higher priority callee version were selected at runtime, then
       a higher priority caller version would have been eligble for
       selection (and hence the current caller version wouldn't have been
       selected).
    
    The current checks only verify a more restrictive version of the first
    condition, and don't check the second condition at all.
    
    Fixing the optimisation properly would require implementing target hooks
    to check for implications between version attributes, which is too
    complicated for this stage.  However, I would like to see this hook
    implemented in the future, since it could also help deduplicate other
    multiversioning code.
    
    Since this behavior has existed for x86 and powerpc for a while, I
    think it's best to preserve the existing behavior on those targets,
    unless any maintainer for those targets disagrees.
    
    gcc/ChangeLog:
    
            * multiple_target.cc
            (redirect_to_specific_clone): Assert that "target" attribute is
            used for FMV before checking it.
            (ipa_target_clone): Skip redirect_to_specific_clone on some
            targets.
    
    gcc/testsuite/ChangeLog:
    
            * g++.target/aarch64/mv-pragma.C: New test.

diff --git a/gcc/multiple_target.cc b/gcc/multiple_target.cc
index 1fdd279da04..60958a56c92 100644
--- a/gcc/multiple_target.cc
+++ b/gcc/multiple_target.cc
@@ -437,7 +437,15 @@ expand_target_clones (struct cgraph_node *node, bool definition)
 
 /* When NODE is a target clone, consider all callees and redirect
    to a clone with equal target attributes.  That prevents multiple
-   multi-versioning dispatches and a call-chain can be optimized.  */
+   multi-versioning dispatches and a call-chain can be optimized.
+
+   This optimisation might pick the wrong version in some cases, since knowing
+   that we meet the target requirements for a matching callee version does not
+   tell us that we won't also meet the target requirements for a higher
+   priority callee version at runtime.  Since this is longstanding behavior
+   for x86 and powerpc, we preserve it for those targets, but skip the
+   optimisation for targets that use the "target_version" attribute for
+   multi-versioning.  */
 
 static void
 redirect_to_specific_clone (cgraph_node *node)
@@ -446,6 +454,7 @@ redirect_to_specific_clone (cgraph_node *node)
   if (fv == NULL)
     return;
 
+  gcc_assert (TARGET_HAS_FMV_TARGET_ATTRIBUTE);
   tree attr_target = lookup_attribute ("target", DECL_ATTRIBUTES (node->decl));
   if (attr_target == NULL_TREE)
     return;
@@ -498,8 +507,9 @@ ipa_target_clone (void)
   for (unsigned i = 0; i < to_dispatch.length (); i++)
     create_dispatcher_calls (to_dispatch[i]);
 
-  FOR_EACH_FUNCTION (node)
-    redirect_to_specific_clone (node);
+  if (TARGET_HAS_FMV_TARGET_ATTRIBUTE)
+    FOR_EACH_FUNCTION (node)
+      redirect_to_specific_clone (node);
 
   return 0;
 }
diff --git a/gcc/testsuite/g++.target/aarch64/mv-pragma.C b/gcc/testsuite/g++.target/aarch64/mv-pragma.C
new file mode 100644
index 00000000000..545d0735438
--- /dev/null
+++ b/gcc/testsuite/g++.target/aarch64/mv-pragma.C
@@ -0,0 +1,31 @@
+/* { dg-do compile } */
+/* { dg-require-ifunc "" } */
+/* { dg-options "-O0" } */
+
+#pragma GCC target ("+sve")
+
+__attribute__((target_version("default")))
+int foo ()
+{
+  return 1;
+}
+
+__attribute__((target_version("sve2")))
+int foo ()
+{
+  return 2;
+}
+
+__attribute__((target_version("default")))
+int bar ()
+{
+  return foo();
+}
+
+__attribute__((target_version("sha3")))
+int bar ()
+{
+  return foo() + 5;
+}
+
+/* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 2 } } */

commit a2de88e5d49f7084677ef2728cd99db0a9706ee9
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Tue Jan 7 21:04:17 2025 +0100

    testsuite: arm: Add pattern for armv8-m.base to cmse-15.c test
    
    Since armv8-m.base uses thumb1 that does not suport sibcall/tailcall,
    a pattern is needed that uses PUSH/BL/POP sequence instead of a single
    B instruction to reuse an already existing function in the compile unit.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/cmse/cmse-15.c: Added pattern for armv8-m.base.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit cfd7c54bdfe109f7e801122a093d0d2a85324fc5)

diff --git a/gcc/testsuite/gcc.target/arm/cmse/cmse-15.c b/gcc/testsuite/gcc.target/arm/cmse/cmse-15.c
index 5188f1d697f..0e35830c35e 100644
--- a/gcc/testsuite/gcc.target/arm/cmse/cmse-15.c
+++ b/gcc/testsuite/gcc.target/arm/cmse/cmse-15.c
@@ -65,6 +65,10 @@ int nonsecure1 (ns_foo_t ** ns_foo_p)
 **	bl	__gnu_cmse_nonsecure_call
 ** |
 **	b	nonsecure0
+** |
+**	push	{r4, lr}
+**	bl	nonsecure0
+**	pop	{r4, pc}
 ** )
 **	...
 */
@@ -129,6 +133,10 @@ int secure1 (s_bar_t ** s_bar_p)
 **	blx	r[0-3]
 ** |
 **	b	secure0
+** |
+**	push	{r4, lr}
+**	bl	secure0
+**	pop	{r4, pc}
 ** )
 **	...
 */
@@ -146,6 +154,10 @@ int secure2 (s_bar_ptr s_bar_p)
 **	blx	r[0-3]
 ** |
 **	b	secure1
+** |
+**	push	{r4, lr}
+**	bl	secure1
+**	pop	{r4, pc}
 ** )
 **	...
 */

commit 26f78a4249b051c7755a44ba1ab1743f4133b0c2
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Fri Jan 10 21:33:57 2025 +0000

    AArch64: correct Cortex-X4 MIDR
    
    The Parts Num field for the MIDR for Cortex-X4 is wrong.  It's currently the
    parts number for a Cortex-A720 (which does have the right number).
    
    The correct number can be found in the Cortex-X4 Technical Reference Manual [1]
    on page 382 in Issue Number 5.
    
    [1] https://developer.arm.com/documentation/102484/latest/
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64-cores.def (AARCH64_CORE): Fix cortex-x4 parts
            num.

diff --git a/gcc/config/aarch64/aarch64-cores.def b/gcc/config/aarch64/aarch64-cores.def
index a919ab7d8a5..b1eaf5512b5 100644
--- a/gcc/config/aarch64/aarch64-cores.def
+++ b/gcc/config/aarch64/aarch64-cores.def
@@ -185,7 +185,7 @@ AARCH64_CORE("cortex-x2",  cortexx2, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8M
 
 AARCH64_CORE("cortex-x3",  cortexx3, cortexa57, V9A,  (SVE2_BITPERM, MEMTAG, I8MM, BF16), neoversen2, 0x41, 0xd4e, -1)
 
-AARCH64_CORE("cortex-x4",  cortexx4, cortexa57, V9_2A,  (SVE2_BITPERM, MEMTAG, PROFILE), neoversen2, 0x41, 0xd81, -1)
+AARCH64_CORE("cortex-x4",  cortexx4, cortexa57, V9_2A,  (SVE2_BITPERM, MEMTAG, PROFILE), neoversen2, 0x41, 0xd82, -1)
 
 AARCH64_CORE("cortex-x925", cortexx925, cortexa57, V9_2A,  (SVE2_BITPERM, MEMTAG, PROFILE), neoversen2, 0x41, 0xd85, -1)
 

commit e4a9fb7448a687f4fd7e621942006c2820b803d6
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Fri Jan 10 21:37:40 2025 +0000

    libstdc++: backport inline keyword on std::find
    
    This is a backport version of the same patch as
    g:18aff7644ad1e44dc146d36a2b7e397977aa47ac
    
    In GCC 12 there was a ~40% regression in the performance of hashmap->find.
    
    This regression came about accidentally:
    
    Before GCC 12 the find function was small enough that IPA would inline it even
    though it wasn't marked inline.  In GCC-12 an optimization was added to perform
    a linear search when the entries in the hashmap are small.
    
    This increased the size of the function enough that IPA would no longer inline.
    Inlining had two benefits:
    
    1.  The return value is a reference. so it has to be returned and dereferenced
        even though the search loop may have already dereference it.
    2.  The pattern is a hard pattern to track for branch predictors.  This causes
        a large number of branch misses if the value is immediately checked and
        branched on. i.e. if (a != m.end()) which is a common pattern.
    
    The patch fixes both these issues by adding the inline keyword to _M_locate
    to allow the inliner to consider inlining again.
    
    This and the other patches have been ran through serveral benchmarks where
    the size, number of elements searched for and type (reference vs value) etc
    were tested.
    
    The change shows no statistical regression, but an average find improvement of
    ~27% and a range between ~10-60% improvements.
    
    Thanks,
    Tamar
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/hashtable.h (find): Add inline keyword.

diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h
index 834288c747c..f5f421d2fd3 100644
--- a/libstdc++-v3/include/bits/hashtable.h
+++ b/libstdc++-v3/include/bits/hashtable.h
@@ -1723,7 +1723,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	   typename _ExtractKey, typename _Equal,
 	   typename _Hash, typename _RangeHash, typename _Unused,
 	   typename _RehashPolicy, typename _Traits>
-    auto
+    auto inline
     _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal,
 	       _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::
     find(const key_type& __k)
@@ -1746,7 +1746,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	   typename _ExtractKey, typename _Equal,
 	   typename _Hash, typename _RangeHash, typename _Unused,
 	   typename _RehashPolicy, typename _Traits>
-    auto
+    auto inline
     _Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal,
 	       _Hash, _RangeHash, _Unused, _RehashPolicy, _Traits>::
     find(const key_type& __k) const

commit 5ae344e3acabf11cde001419f9bec64a2cf89f5a
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Thu Jan 2 20:22:23 2025 +0100

    Fortran: Cray pointer comparison wrongly optimized away [PR106692]
    
            PR fortran/106692
    
    gcc/fortran/ChangeLog:
    
            * trans-expr.cc (gfc_conv_expr_op): Inhibit excessive optimization
            of Cray pointers by treating them as volatile in comparisons.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/cray_pointers_13.f90: New test.
    
    (cherry picked from commit c7754a2fb2e60987524947fe189f3ffac035ea1d)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 10eade22f2a..8e74fbfb257 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -4025,6 +4025,19 @@ gfc_conv_expr_op (gfc_se * se, gfc_expr * expr)
 
   if (lop)
     {
+      // Inhibit overeager optimization of Cray pointer comparisons (PR106692).
+      if (expr->value.op.op1->expr_type == EXPR_VARIABLE
+	  && expr->value.op.op1->ts.type == BT_INTEGER
+	  && expr->value.op.op1->symtree
+	  && expr->value.op.op1->symtree->n.sym->attr.cray_pointer)
+	TREE_THIS_VOLATILE (lse.expr) = 1;
+
+      if (expr->value.op.op2->expr_type == EXPR_VARIABLE
+	  && expr->value.op.op2->ts.type == BT_INTEGER
+	  && expr->value.op.op2->symtree
+	  && expr->value.op.op2->symtree->n.sym->attr.cray_pointer)
+	TREE_THIS_VOLATILE (rse.expr) = 1;
+
       /* The result of logical ops is always logical_type_node.  */
       tmp = fold_build2_loc (input_location, code, logical_type_node,
 			     lse.expr, rse.expr);
diff --git a/gcc/testsuite/gfortran.dg/cray_pointers_13.f90 b/gcc/testsuite/gfortran.dg/cray_pointers_13.f90
new file mode 100644
index 00000000000..766d24546ab
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/cray_pointers_13.f90
@@ -0,0 +1,51 @@
+! { dg-do run }
+! { dg-additional-options "-fcray-pointer" }
+!
+! PR fortran/106692 - Cray pointer comparison wrongly optimized away
+!
+! Contributed by Marek Polacek
+
+program test
+  call test_cray()
+  call test_cray2()
+end
+
+subroutine test_cray()
+  pointer(ptrzz1 , zz1)
+  ptrzz1=0
+  if (ptrzz1 .ne. 0) then
+    print *, "test_cray: ptrzz1=", ptrzz1
+    stop 1
+  else
+    call shape_cray(zz1)
+  end if
+end
+
+subroutine shape_cray(zz1)
+  pointer(ptrzz , zz)
+  ptrzz=loc(zz1)
+  if (ptrzz .ne. 0) then
+    print *, "shape_cray: ptrzz=", ptrzz
+    stop 3
+  end if
+end
+
+subroutine test_cray2()
+  pointer(ptrzz1 , zz1)
+  ptrzz1=0
+  if (0 == ptrzz1) then
+    call shape_cray2(zz1)
+  else
+    print *, "test_cray2: ptrzz1=", ptrzz1
+    stop 2
+  end if
+end
+
+subroutine shape_cray2(zz1)
+  pointer(ptrzz , zz)
+  ptrzz=loc(zz1)
+  if (.not. (0 == ptrzz)) then
+    print *, "shape_cray2: ptrzz=", ptrzz
+    stop 4
+  end if
+end

commit 76167875f2f9c52db0c62f202bd8f766f1f74aad
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Jan 11 00:24:26 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 67d57519283..50e680d4d80 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,33 @@
+2025-01-10  Tamar Christina  <tamar.christina@arm.com>
+
+	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Fix cortex-x4 parts
+	num.
+
+2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	* multiple_target.cc
+	(redirect_to_specific_clone): Assert that "target" attribute is
+	used for FMV before checking it.
+	(ipa_target_clone): Skip redirect_to_specific_clone on some
+	targets.
+
+2025-01-10  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-12-10  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117912
+	* tree-ssa-sccvn.cc (copy_reference_ops_from_ref): For addresses
+	of zero-sized components do not set ->off if the object size pass
+	didn't run.
+	For OOB ARRAY_REF accesses in address expressions avoid setting
+	->off if the object size pass didn't run.
+	(valueize_refs_1): Likewise.
+
+2025-01-10  Sam James  <sam@gentoo.org>
+
+	* doc/cpp.texi (Common Predefined Macros): Fix syntax.
+
 2025-01-09  Christophe Lyon  <christophe.lyon@linaro.org>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index a6b5049790e..cbd205340e3 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250110
+20250111
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 0b1e81cfdad..699555c815d 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2025-01-10  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-01-03  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/106692
+	* trans-expr.cc (gfc_conv_expr_op): Inhibit excessive optimization
+	of Cray pointers by treating them as volatile in comparisons.
+
 2024-12-22  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6aafcd32336..1928b05e0b8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,32 @@
+2025-01-10  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-01-03  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/106692
+	* gfortran.dg/cray_pointers_13.f90: New test.
+
+2025-01-10  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2025-01-10  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/cmse/cmse-15.c: Added pattern for armv8-m.base.
+
+2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	* g++.target/aarch64/mv-pragma.C: New test.
+
+2025-01-10  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-12-10  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117912
+	* c-c++-common/torture/pr117912-1.c: New testcase.
+	* c-c++-common/torture/pr117912-2.c: Likewise.
+	* c-c++-common/torture/pr117912-3.c: Likewise.
+
 2025-01-09  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f3bacd2a013..cf8d2fec39f 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,7 @@
+2025-01-10  Tamar Christina  <tamar.christina@arm.com>
+
+	* include/bits/hashtable.h (find): Add inline keyword.
+
 2025-01-09  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit 7c013a681cc138b8f191b75e408fe322d7fd998c
Author: Nathaniel Shead <nathanieloshead@gmail.com>
Date:   Fri Jan 10 01:06:37 2025 +1100

    c++/modules: Handle chaining already-imported local types [PR114630]
    
    In the linked testcase, an ICE occurs because when reading the
    (duplicate) function definition for _M_do_parse from module Y, the local
    type definitions have already been streamed from module X and setup as
    regular backreferences, rather than being found with find_duplicate,
    causing issues with managing DECL_CHAIN.
    
    It is tempting to just skip setting up the DECL_CHAIN for this case.
    However, for the future it would be best to ensure that the block vars
    for the duplicate definition are accurate, so that we could implement
    ODR checking on function definitions at some point.
    
    So to solve this, this patch creates a copy of the streamed-in local
    type and chains that; it will be discarded along with the rest of the
    duplicate function after we've finished processing.
    
    A couple of suggested implementations from the discussion on the PR that
    don't work:
    
    - Replacing the `DECL_CHAIN` assertion with `(*chain && *chain != decl)`
      doesn't handle the case where type definitions are followed by regular
      local variables, since those won't have been imported as separate
      backreferences and so the chains will diverge.
    
    - Correcting the purviewness of GMF template instantiations to force Y
      to emit copies of the local types rather than backreferences into X is
      insufficient, as it's still possible that the local types got streamed
      in a separate cluster to the function definition, and so will be again
      referred to via regular backreferences when importing.
    
    - Likewise, preventing the emission of function definitions where an
      import has already provided that same definition also is insufficient,
      for much the same reason.
    
            PR c++/114630
    
    gcc/cp/ChangeLog:
    
            * module.cc (trees_in::core_vals) <BLOCK>: Chain a new node if
            DECL_CHAIN already is set.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/modules/pr114630.h: New test.
            * g++.dg/modules/pr114630_a.C: New test.
            * g++.dg/modules/pr114630_b.C: New test.
            * g++.dg/modules/pr114630_c.C: New test.
    
    Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
    Reviewed-by: Jason Merrill <jason@redhat.com>
    Reviewed-by: Patrick Palka <ppalka@redhat.com>

diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index 60638aabee2..a9b771c3935 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -6813,11 +6813,23 @@ trees_in::core_vals (tree t)
 	       body) anyway.  */
 	    decl = maybe_duplicate (decl);
 
-	    if (!DECL_P (decl) || DECL_CHAIN (decl))
+	    if (!DECL_P (decl))
 	      {
 		set_overrun ();
 		break;
 	      }
+
+	    /* If DECL_CHAIN is already set then this was a backreference to a
+	       local type or enumerator from a previous read (PR c++/114630).
+	       Let's copy the node so we can keep building the chain for ODR
+	       checking later.  */
+	    if (DECL_CHAIN (decl))
+	      {
+		gcc_checking_assert (TREE_CODE (decl) == TYPE_DECL
+				     && find_duplicate (DECL_CONTEXT (decl)));
+		decl = copy_decl (decl);
+	      }
+
 	    *chain = decl;
 	    chain = &DECL_CHAIN (decl);
 	  }
diff --git a/gcc/testsuite/g++.dg/modules/pr114630.h b/gcc/testsuite/g++.dg/modules/pr114630.h
new file mode 100644
index 00000000000..8730007f59f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/pr114630.h
@@ -0,0 +1,11 @@
+template <typename _CharT>
+void _M_do_parse() {
+  struct A {};
+  struct B {};
+  int x;
+}
+
+template <typename> struct formatter;
+template <> struct formatter<int> {
+  void parse() { _M_do_parse<int>(); }
+};
diff --git a/gcc/testsuite/g++.dg/modules/pr114630_a.C b/gcc/testsuite/g++.dg/modules/pr114630_a.C
new file mode 100644
index 00000000000..ecfd7ca0b28
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/pr114630_a.C
@@ -0,0 +1,7 @@
+// { dg-additional-options "-fmodules" }
+// { dg-module-cmi X }
+
+module;
+#include "pr114630.h"
+export module X;
+formatter<int> a;
diff --git a/gcc/testsuite/g++.dg/modules/pr114630_b.C b/gcc/testsuite/g++.dg/modules/pr114630_b.C
new file mode 100644
index 00000000000..52fe04e2ce0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/pr114630_b.C
@@ -0,0 +1,8 @@
+// { dg-additional-options "-fmodules" }
+// { dg-module-cmi Y }
+
+module;
+#include "pr114630.h"
+export module Y;
+import X;
+formatter<int> b;
diff --git a/gcc/testsuite/g++.dg/modules/pr114630_c.C b/gcc/testsuite/g++.dg/modules/pr114630_c.C
new file mode 100644
index 00000000000..54a21f08057
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/pr114630_c.C
@@ -0,0 +1,4 @@
+// { dg-additional-options "-fmodules" }
+
+#include "pr114630.h"
+import Y;

commit f7ddb2b6dbacd2a6559bf47d43f6d907904cdd89
Author: Nathaniel Shead <nathanieloshead@gmail.com>
Date:   Sun Jan 12 04:35:08 2025 +1100

    testsuite: Fix flag used for modules test
    
    GCC14 doesn't have the new spelling '-fmodules' for enabling modules;
    use the old '-fmodules-ts' spelling instead.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/modules/pr114630_a.C: Use -fmodules-ts instead of
            -fmodules in testcase.
            * g++.dg/modules/pr114630_b.C: Likewise.
            * g++.dg/modules/pr114630_c.C: Likewise.
    
    Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>

diff --git a/gcc/testsuite/g++.dg/modules/pr114630_a.C b/gcc/testsuite/g++.dg/modules/pr114630_a.C
index ecfd7ca0b28..dde8388e743 100644
--- a/gcc/testsuite/g++.dg/modules/pr114630_a.C
+++ b/gcc/testsuite/g++.dg/modules/pr114630_a.C
@@ -1,4 +1,4 @@
-// { dg-additional-options "-fmodules" }
+// { dg-additional-options "-fmodules-ts" }
 // { dg-module-cmi X }
 
 module;
diff --git a/gcc/testsuite/g++.dg/modules/pr114630_b.C b/gcc/testsuite/g++.dg/modules/pr114630_b.C
index 52fe04e2ce0..e41ddcdfb8e 100644
--- a/gcc/testsuite/g++.dg/modules/pr114630_b.C
+++ b/gcc/testsuite/g++.dg/modules/pr114630_b.C
@@ -1,4 +1,4 @@
-// { dg-additional-options "-fmodules" }
+// { dg-additional-options "-fmodules-ts" }
 // { dg-module-cmi Y }
 
 module;
diff --git a/gcc/testsuite/g++.dg/modules/pr114630_c.C b/gcc/testsuite/g++.dg/modules/pr114630_c.C
index 54a21f08057..61d89829588 100644
--- a/gcc/testsuite/g++.dg/modules/pr114630_c.C
+++ b/gcc/testsuite/g++.dg/modules/pr114630_c.C
@@ -1,4 +1,4 @@
-// { dg-additional-options "-fmodules" }
+// { dg-additional-options "-fmodules-ts" }
 
 #include "pr114630.h"
 import Y;

commit 3a5a601c371f476b86e94dbda6e5341dbdd41598
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Jan 12 00:23:12 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index cbd205340e3..71203ea20bc 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250111
+20250112
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index acf773da565..c9661e5cc2d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2025-01-11  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/114630
+	* module.cc (trees_in::core_vals) <BLOCK>: Chain a new node if
+	DECL_CHAIN already is set.
+
 2025-01-09  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1928b05e0b8..f586d8198e0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,18 @@
+2025-01-11  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	* g++.dg/modules/pr114630_a.C: Use -fmodules-ts instead of
+	-fmodules in testcase.
+	* g++.dg/modules/pr114630_b.C: Likewise.
+	* g++.dg/modules/pr114630_c.C: Likewise.
+
+2025-01-11  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/114630
+	* g++.dg/modules/pr114630.h: New test.
+	* g++.dg/modules/pr114630_a.C: New test.
+	* g++.dg/modules/pr114630_b.C: New test.
+	* g++.dg/modules/pr114630_c.C: New test.
+
 2025-01-10  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:

commit d82fc939f914e901b2686bb25b277cb75d4ea53f
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Mon Dec 23 18:46:10 2024 +0100

    testsuite: libstdc++: Use effective-target libatomic
    
    Test assumes libatomic.a is always available, but for some embedded
    targets, there is no libatomic.a and the test thus fail.
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
            Use effective-target libatomic_available.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 4b0ef49d02f1f16325aa53fee3b0f6860728d2f8)

diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc
index 49626ac6651..9395e3026a7 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc
@@ -1,5 +1,6 @@
 // { dg-do run { target c++20 } }
 // { dg-options "-O0" }
+// { dg-require-effective-target libatomic_available }
 // { dg-additional-options "[atomic_link_flags [get_multilibs]] -latomic" }
 
 #include <atomic>

commit f43a6bd08797eae0243b4110b2fbd4700a349ce7
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Sat Jan 11 19:16:57 2025 +0100

    testsuite: The expect framework might introduce CR in output
    
    When running tests using the "sim" config, the command is launched in
    non-readonly mode and the text retrieved from the expect command will
    then replace all LF with CRLF. (The problem can be found in sim_load
    where it calls remote_spawn without an input file).
    
    libstdc++-v3/ChangeLog:
    
            * testsuite/27_io/print/1.cc: Allow both LF and CRLF in test.
            * testsuite/27_io/print/3.cc: Likewise.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 4b29be7216daa5921aae340388ef6416b1631f0a)

diff --git a/libstdc++-v3/testsuite/27_io/print/1.cc b/libstdc++-v3/testsuite/27_io/print/1.cc
index f6585d9880a..2a74e5002f4 100644
--- a/libstdc++-v3/testsuite/27_io/print/1.cc
+++ b/libstdc++-v3/testsuite/27_io/print/1.cc
@@ -18,7 +18,7 @@ void
 test_println_default()
 {
   std::println("I walk the line");
-  // { dg-output "I walk the line\n" }
+  // { dg-output "I walk the line\r?\n" }
 }
 
 void
diff --git a/libstdc++-v3/testsuite/27_io/print/3.cc b/libstdc++-v3/testsuite/27_io/print/3.cc
index ffcf7337ce5..90c4cfb0d48 100644
--- a/libstdc++-v3/testsuite/27_io/print/3.cc
+++ b/libstdc++-v3/testsuite/27_io/print/3.cc
@@ -13,7 +13,7 @@ test_println_blank()
   std::print("1");
   std::println();
   std::println("2");
-  // { dg-output "1\n2" }
+  // { dg-output "1\r?\n2" }
 }
 
 void

commit ea6d74ee80fa583f6c90dd0800b5641e283e4161
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Jan 13 00:22:58 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 71203ea20bc..aafaca3fe8e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250112
+20250113
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index cf8d2fec39f..5af43f6942e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,19 @@
+2025-01-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2025-01-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* testsuite/27_io/print/1.cc: Allow both LF and CRLF in test.
+	* testsuite/27_io/print/3.cc: Likewise.
+
+2025-01-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2025-01-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
+	Use effective-target libatomic_available.
+
 2025-01-10  Tamar Christina  <tamar.christina@arm.com>
 
 	* include/bits/hashtable.h (find): Add inline keyword.

commit 33c38e48d80ec8dafd889864fc17b3efc6bf6e95
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Jan 14 00:24:01 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index aafaca3fe8e..0907fc0d8ad 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250113
+20250114

commit 9b8488f662b070933d0427df22811bf1eaac661e
Author: Robin Dapp <rdapp@ventanamicro.com>
Date:   Fri Dec 27 17:29:25 2024 +0100

    match: Keep conditional in simplification to constant [PR118140].
    
    In PR118140 we simplify
    
      _ifc__33 = .COND_IOR (_41, d_lsm.7_11, _46, d_lsm.7_11);
    
    to 1:
    
    Match-and-simplified .COND_IOR (_41, d_lsm.7_11, _46, d_lsm.7_11) to 1
    
    when _46 == 1.  This happens by removing the conditional and applying
    a | 1 = 1.  Normally we re-introduce the conditional and its else value
    if needed but that does not happen here as we're not dealing with a
    vector type.  For correctness's sake, we must not remove the conditional
    even for non-vector types.
    
    This patch re-introduces a COND_EXPR in such cases.  For PR118140 this
    result in a non-vectorized loop.
    
            PR middle-end/118140
    
    gcc/ChangeLog:
    
            * gimple-match-exports.cc (maybe_resimplify_conditional_op): Add
            COND_EXPR when we simplified to a scalar gimple value but still
            have an else value.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/vect/pr118140.c: New test.
            * gcc.target/riscv/rvv/autovec/pr118140.c: New test.
    
    (cherry picked from commit 14cb0610559fa33f211e1546260458496fdc5e71)

diff --git a/gcc/gimple-match-exports.cc b/gcc/gimple-match-exports.cc
index aacf3ff0414..1fe6c0e3883 100644
--- a/gcc/gimple-match-exports.cc
+++ b/gcc/gimple-match-exports.cc
@@ -323,23 +323,29 @@ maybe_resimplify_conditional_op (gimple_seq *seq, gimple_match_op *res_op,
     }
 
   /* If the "then" value is a gimple value and the "else" value matters,
-     create a VEC_COND_EXPR between them, then see if it can be further
+     create a (VEC_)COND_EXPR between them, then see if it can be further
      simplified.  */
   gimple_match_op new_op;
   if (res_op->cond.else_value
-      && VECTOR_TYPE_P (res_op->type)
       && gimple_simplified_result_is_gimple_val (res_op))
     {
-      tree len = res_op->cond.len;
-      if (!len)
-	new_op.set_op (VEC_COND_EXPR, res_op->type,
-		       res_op->cond.cond, res_op->ops[0],
-		       res_op->cond.else_value);
+      if (VECTOR_TYPE_P (res_op->type))
+	{
+	  tree len = res_op->cond.len;
+	  if (!len)
+	    new_op.set_op (VEC_COND_EXPR, res_op->type,
+			   res_op->cond.cond, res_op->ops[0],
+			   res_op->cond.else_value);
+	  else
+	    new_op.set_op (IFN_VCOND_MASK_LEN, res_op->type,
+			   res_op->cond.cond, res_op->ops[0],
+			   res_op->cond.else_value,
+			   res_op->cond.len, res_op->cond.bias);
+	}
       else
-	new_op.set_op (IFN_VCOND_MASK_LEN, res_op->type,
+	new_op.set_op (COND_EXPR, res_op->type,
 		       res_op->cond.cond, res_op->ops[0],
-		       res_op->cond.else_value,
-		       res_op->cond.len, res_op->cond.bias);
+		       res_op->cond.else_value);
       *res_op = new_op;
       return gimple_resimplify3 (seq, res_op, valueize);
     }
diff --git a/gcc/testsuite/gcc.dg/vect/pr118140.c b/gcc/testsuite/gcc.dg/vect/pr118140.c
new file mode 100644
index 00000000000..2dab98bfc91
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr118140.c
@@ -0,0 +1,27 @@
+/* { dg-do run { target { aarch64*-*-* || riscv*-*-* } } } */
+/* { dg-additional-options "-std=gnu99" } */
+
+long long a;
+_Bool d;
+char e;
+_Bool f[17];
+_Bool f_3;
+
+int main() {
+  for (char g = 3; g < 16; g++) {
+      d |= ({
+        int h = f[g - 1] ? 2 : 0;
+        _Bool t;
+        if (f[g - 1])
+          t = f_3;
+        else
+          t = 0;
+        int i = t;
+        h > i;
+      });
+    e += f[g + 1];
+  }
+
+  if (d != 0)
+    __builtin_abort ();
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118140.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118140.c
new file mode 100644
index 00000000000..31134de7b3a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118140.c
@@ -0,0 +1,29 @@
+/* { dg-do run } */
+/* { dg-require-effective-target riscv_v_ok } */
+/* { dg-add-options riscv_v } */
+/* { dg-additional-options "-std=gnu99 -Wno-pedantic" } */
+
+long long a;
+_Bool d;
+char e;
+_Bool f[17];
+_Bool f_3;
+
+int main() {
+  for (char g = 3; g < 16; g++) {
+      d |= ({
+        int h = f[g - 1] ? 2 : 0;
+        _Bool t;
+        if (f[g - 1])
+          t = f_3;
+        else
+          t = 0;
+        int i = t;
+        h > i;
+      });
+    e += f[g + 1];
+  }
+
+  if (d != 0)
+    __builtin_abort ();
+}

commit 1434baad95a0ca9faa40c3e147cc7384b84fe056
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Jan 15 00:22:11 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 50e680d4d80..97911f1bf79 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2025-01-14  Robin Dapp  <rdapp@ventanamicro.com>
+
+	Backported from master:
+	2025-01-14  Robin Dapp  <rdapp@ventanamicro.com>
+
+	PR middle-end/118140
+	* gimple-match-exports.cc (maybe_resimplify_conditional_op): Add
+	COND_EXPR when we simplified to a scalar gimple value but still
+	have an else value.
+
 2025-01-10  Tamar Christina  <tamar.christina@arm.com>
 
 	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Fix cortex-x4 parts
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 0907fc0d8ad..956862fd33e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250114
+20250115
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f586d8198e0..9e626b0dddb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2025-01-14  Robin Dapp  <rdapp@ventanamicro.com>
+
+	Backported from master:
+	2025-01-14  Robin Dapp  <rdapp@ventanamicro.com>
+
+	PR middle-end/118140
+	* gcc.dg/vect/pr118140.c: New test.
+	* gcc.target/riscv/rvv/autovec/pr118140.c: New test.
+
 2025-01-11  Nathaniel Shead  <nathanieloshead@gmail.com>
 
 	* g++.dg/modules/pr114630_a.C: Use -fmodules-ts instead of

commit 57563a6bf826fb72d202c863316e29393b2b11e5
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Jan 16 00:25:47 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 956862fd33e..629b78beae4 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250115
+20250116

commit a5ce37b32d6a32e774ba4e156fe0d6d3f4e616fe
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Dec 17 17:38:43 2024 +0000

    libstdc++: Fix std::deque::emplace calling wrong _M_insert_aux [PR90389]
    
    We have several overloads of std::deque::_M_insert_aux, one of which is
    variadic and called by std::deque::emplace. With a suitable set of
    arguments to emplace, it's possible for one of the non-variadic
    _M_insert_aux overloads to be selected by overload resolution, making
    emplace ill-formed.
    
    Rename the variadic _M_insert_aux to _M_emplace_aux so that calls to
    emplace never select an _M_insert_aux overload. Also add an inline
    _M_insert_aux for the const lvalue overload that is called from
    insert(const_iterator, const value_type&).
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/90389
            * include/bits/deque.tcc (_M_insert_aux): Rename variadic
            overload to _M_emplace_aux.
            * include/bits/stl_deque.h (_M_insert_aux): Define inline.
            (_M_emplace_aux): Declare.
            * testsuite/23_containers/deque/modifiers/emplace/90389.cc: New
            test.
    
    (cherry picked from commit 5f44b1776e748a7528020557036740905a11b1df)

diff --git a/libstdc++-v3/include/bits/deque.tcc b/libstdc++-v3/include/bits/deque.tcc
index e50f5dc9d09..1593d8403eb 100644
--- a/libstdc++-v3/include/bits/deque.tcc
+++ b/libstdc++-v3/include/bits/deque.tcc
@@ -200,8 +200,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 	    return __tmp;
 	  }
 	else
-	  return _M_insert_aux(__position._M_const_cast(),
-			       std::forward<_Args>(__args)...);
+	  return _M_emplace_aux(__position._M_const_cast(),
+				std::forward<_Args>(__args)...);
       }
 #endif
 
@@ -646,7 +646,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
     template<typename... _Args>
       typename deque<_Tp, _Alloc>::iterator
       deque<_Tp, _Alloc>::
-      _M_insert_aux(iterator __pos, _Args&&... __args)
+      _M_emplace_aux(iterator __pos, _Args&&... __args)
       {
 	value_type __x_copy(std::forward<_Args>(__args)...); // XXX copy
 #else
diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h
index c617933bd81..a36c85c1fe4 100644
--- a/libstdc++-v3/include/bits/stl_deque.h
+++ b/libstdc++-v3/include/bits/stl_deque.h
@@ -2054,9 +2054,13 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       iterator
       _M_insert_aux(iterator __pos, const value_type& __x);
 #else
+      iterator
+      _M_insert_aux(iterator __pos, const value_type& __x)
+      { return _M_emplace_aux(__pos, __x); }
+
       template<typename... _Args>
 	iterator
-	_M_insert_aux(iterator __pos, _Args&&... __args);
+	_M_emplace_aux(iterator __pos, _Args&&... __args);
 #endif
 
       // called by insert(p,n,x) via fill_insert
diff --git a/libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/90389.cc b/libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/90389.cc
new file mode 100644
index 00000000000..b4932498700
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/90389.cc
@@ -0,0 +1,43 @@
+// { dg-do run { target c++11 } }
+
+// Bug 90389 - std::deque::emplace tries to call wrong overload internally
+
+#include <deque>
+#include <testsuite_hooks.h>
+
+struct X
+{
+  X() = default;
+  X(void*, void*, std::size_t) { }
+};
+
+void
+test_pr90389()
+{
+  const int n = 3;
+  std::deque<X> d(n);
+  d.emplace(d.begin(), nullptr, nullptr, d.size());
+  VERIFY( d.size() == n+1 );
+}
+
+struct Y
+{
+  Y() = default;
+  Y(std::size_t, const Y&) { }
+};
+
+void
+test_pr118079()
+{
+  const int n = 3;
+  std::deque<Y> d(n);
+  const Y y{};
+  d.emplace(d.begin(), d.size(), y);
+  VERIFY( d.size() == n+1 );
+}
+
+int main()
+{
+  test_pr90389();
+  test_pr118079();
+}

commit 9ea74d9ba8c80d4b78094bec291af47a0f10067d
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Sep 27 21:01:46 2024 +0100

    libstdc++: Fix more pedwarns in headers for C++98
    
    Some tests e.g.  17_intro/headers/c++1998/all_pedantic_errors.cc FAIL
    with GLIBCXX_TESTSUITE_STDS=98 due to numerous C++11 extensions still in
    use in the library headers. The recent changes to not make them system
    headers means we get warnings now.
    
    This change adds more diagnostic pragmas to suppress those warnings.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/istream.tcc: Add diagnostic pragmas around uses
            of long long and extern template.
            * include/bits/locale_facets.h: Likewise.
            * include/bits/locale_facets.tcc: Likewise.
            * include/bits/locale_facets_nonio.tcc: Likewise.
            * include/bits/ostream.tcc: Likewise.
            * include/bits/stl_algobase.h: Likewise.
            * include/c_global/cstdlib: Likewise.
            * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
            Likewise.
            * include/ext/pointer.h: Likewise.
            * include/ext/stdio_sync_filebuf.h: Likewise.
            * include/std/istream: Likewise.
            * include/std/ostream: Likewise.
            * include/tr1/cmath: Likewise.
            * include/tr1/type_traits: Likewise.
            * include/tr1/functional_hash.h: Likewise. Remove semi-colons
            at namespace scope that aren't needed after macro expansion.
            * include/tr1/tuple: Remove semi-colon at namespace scope.
            * include/bits/vector.tcc: Change LL suffix to just L.
    
    (cherry picked from commit 68854071236d3a1064b46a5b22546956d3be32cd)

diff --git a/libstdc++-v3/include/bits/istream.tcc b/libstdc++-v3/include/bits/istream.tcc
index 16423bfbfcb..8afcc8baf31 100644
--- a/libstdc++-v3/include/bits/istream.tcc
+++ b/libstdc++-v3/include/bits/istream.tcc
@@ -392,7 +392,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	      __streambuf_type* __this_sb = this->rdbuf();
 	      int_type __c = __this_sb->sgetc();
 	      char_type __c2 = traits_type::to_char_type(__c);
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
 	      unsigned long long __gcount = 0;
+#pragma GCC diagnostic pop
 
 	      while (!traits_type::eq_int_type(__c, __eof)
 		     && !traits_type::eq_int_type(__c, __idelim)
@@ -1117,6 +1120,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // Inhibit implicit instantiations for required instantiations,
   // which are defined via explicit instantiations elsewhere.
 #if _GLIBCXX_EXTERN_TEMPLATE
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+#pragma GCC diagnostic ignored "-Wlong-long"
   extern template class basic_istream<char>;
   extern template istream& ws(istream&);
   extern template istream& operator>>(istream&, char&);
@@ -1129,8 +1135,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   extern template istream& istream::_M_extract(unsigned long&);
   extern template istream& istream::_M_extract(bool&);
 #ifdef _GLIBCXX_USE_LONG_LONG
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
   extern template istream& istream::_M_extract(long long&);
   extern template istream& istream::_M_extract(unsigned long long&);
+#pragma GCC diagnostic pop
 #endif
   extern template istream& istream::_M_extract(float&);
   extern template istream& istream::_M_extract(double&);
@@ -1161,6 +1170,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   extern template class basic_iostream<wchar_t>;
 #endif
+#pragma GCC diagnostic pop
 #endif
 
 _GLIBCXX_END_NAMESPACE_VERSION
diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h
index 53bb108e3ea..c15980b7560 100644
--- a/libstdc++-v3/include/bits/locale_facets.h
+++ b/libstdc++-v3/include/bits/locale_facets.h
@@ -2061,6 +2061,8 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
       { return this->do_get(__in, __end, __io, __err, __v); }
 
 #ifdef _GLIBCXX_USE_LONG_LONG
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
       iter_type
       get(iter_type __in, iter_type __end, ios_base& __io,
 	  ios_base::iostate& __err, long long& __v) const
@@ -2070,6 +2072,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
       get(iter_type __in, iter_type __end, ios_base& __io,
 	  ios_base::iostate& __err, unsigned long long& __v)  const
       { return this->do_get(__in, __end, __io, __err, __v); }
+#pragma GCC diagnostic pop
 #endif
       ///@}
 
@@ -2240,6 +2243,8 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
       { return _M_extract_int(__beg, __end, __io, __err, __v); }
 
 #ifdef _GLIBCXX_USE_LONG_LONG
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
       virtual iter_type
       do_get(iter_type __beg, iter_type __end, ios_base& __io,
 	     ios_base::iostate& __err, long long& __v) const
@@ -2249,6 +2254,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
       do_get(iter_type __beg, iter_type __end, ios_base& __io,
 	     ios_base::iostate& __err, unsigned long long& __v) const
       { return _M_extract_int(__beg, __end, __io, __err, __v); }
+#pragma GCC diagnostic pop
 #endif
 
       virtual iter_type
@@ -2405,6 +2411,8 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
       { return this->do_put(__s, __io, __fill, __v); }
 
 #ifdef _GLIBCXX_USE_LONG_LONG
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
       iter_type
       put(iter_type __s, ios_base& __io, char_type __fill, long long __v) const
       { return this->do_put(__s, __io, __fill, __v); }
@@ -2413,6 +2421,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
       put(iter_type __s, ios_base& __io, char_type __fill,
 	  unsigned long long __v) const
       { return this->do_put(__s, __io, __fill, __v); }
+#pragma GCC diagnostic pop
 #endif
       ///@}
 
@@ -2544,6 +2553,8 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
       { return _M_insert_int(__s, __io, __fill, __v); }
 
 #ifdef _GLIBCXX_USE_LONG_LONG
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
       virtual iter_type
       do_put(iter_type __s, ios_base& __io, char_type __fill,
 	     long long __v) const
@@ -2553,6 +2564,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
       do_put(iter_type __s, ios_base& __io, char_type __fill,
 	     unsigned long long __v) const
       { return _M_insert_int(__s, __io, __fill, __v); }
+#pragma GCC diagnostic pop
 #endif
 
       virtual iter_type
diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc
index cde81bffc08..0590e2ff454 100644
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -758,9 +758,12 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
       const fmtflags __fmt = __io.flags();
       __io.flags((__fmt & ~ios_base::basefield) | ios_base::hex);
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
       typedef __gnu_cxx::__conditional_type<(sizeof(void*)
 					     <= sizeof(unsigned long)),
 	unsigned long, unsigned long long>::__type _UIntPtrType;       
+#pragma GCC diagnostic pop
 
       _UIntPtrType __ul;
       __beg = _M_extract_int(__beg, __end, __io, __err, __ul);
@@ -1202,9 +1205,12 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL
 					 | ios_base::uppercase);
       __io.flags((__flags & __fmt) | (ios_base::hex | ios_base::showbase));
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
       typedef __gnu_cxx::__conditional_type<(sizeof(const void*)
 					     <= sizeof(unsigned long)),
 	unsigned long, unsigned long long>::__type _UIntPtrType;       
+#pragma GCC diagnostic pop
 
       __s = _M_insert_int(__s, __io, __fill,
 			  reinterpret_cast<_UIntPtrType>(__v));
diff --git a/libstdc++-v3/include/bits/locale_facets_nonio.tcc b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
index 8f67be5a614..fa250c1ae3d 100644
--- a/libstdc++-v3/include/bits/locale_facets_nonio.tcc
+++ b/libstdc++-v3/include/bits/locale_facets_nonio.tcc
@@ -1677,6 +1677,9 @@ _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
   // Inhibit implicit instantiations for required instantiations,
   // which are defined via explicit instantiations elsewhere.
 #if _GLIBCXX_EXTERN_TEMPLATE
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions" // extern template
+#pragma GCC diagnostic ignored "-Wlong-long"
   extern template class moneypunct<char, false>;
   extern template class moneypunct<char, true>;
   extern template class moneypunct_byname<char, false>;
@@ -1890,6 +1893,7 @@ _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11
     bool
     has_facet<messages<wchar_t> >(const locale&);
 #endif
+#pragma GCC diagnostic pop
 #endif
 
 _GLIBCXX_END_NAMESPACE_VERSION
diff --git a/libstdc++-v3/include/bits/ostream.tcc b/libstdc++-v3/include/bits/ostream.tcc
index 972de79ea70..e21a78202f4 100644
--- a/libstdc++-v3/include/bits/ostream.tcc
+++ b/libstdc++-v3/include/bits/ostream.tcc
@@ -357,8 +357,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   extern template ostream& ostream::_M_insert(unsigned long);
   extern template ostream& ostream::_M_insert(bool);
 #ifdef _GLIBCXX_USE_LONG_LONG
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
   extern template ostream& ostream::_M_insert(long long);
   extern template ostream& ostream::_M_insert(unsigned long long);
+#pragma GCC diagnostic pop
 #endif
   extern template ostream& ostream::_M_insert(double);
   extern template ostream& ostream::_M_insert(long double);
@@ -378,8 +381,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   extern template wostream& wostream::_M_insert(unsigned long);
   extern template wostream& wostream::_M_insert(bool);
 #ifdef _GLIBCXX_USE_LONG_LONG
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
   extern template wostream& wostream::_M_insert(long long);
   extern template wostream& wostream::_M_insert(unsigned long long);
+#pragma GCC diagnostic pop
 #endif
   extern template wostream& wostream::_M_insert(double);
   extern template wostream& wostream::_M_insert(long double);
diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h
index 4cb52f3559f..2931e099144 100644
--- a/libstdc++-v3/include/bits/stl_algobase.h
+++ b/libstdc++-v3/include/bits/stl_algobase.h
@@ -1029,6 +1029,8 @@ _GLIBCXX_END_NAMESPACE_CONTAINER
       std::__fill_a(__first, __last, __value);
     }
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
   // Used by fill_n, generate_n, etc. to convert _Size to an integral type:
   inline _GLIBCXX_CONSTEXPR int
   __size_to_integer(int __n) { return __n; }
@@ -1078,6 +1080,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER
   __extension__ inline _GLIBCXX_CONSTEXPR long long
   __size_to_integer(__float128 __n) { return (long long)__n; }
 #endif
+#pragma GCC diagnostic pop
 
   template<typename _OutputIterator, typename _Size, typename _Tp>
     _GLIBCXX20_CONSTEXPR
@@ -1546,6 +1549,8 @@ _GLIBCXX_END_NAMESPACE_CONTAINER
 #if __cplusplus >= 201402L
       return std::__bit_width(make_unsigned_t<_Tp>(__n)) - 1;
 #else
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
       // Use +__n so it promotes to at least int.
       return (sizeof(+__n) * __CHAR_BIT__ - 1)
 	       - (sizeof(+__n) == sizeof(long long)
@@ -1553,6 +1558,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER
 		    : (sizeof(+__n) == sizeof(long)
 			 ? __builtin_clzl(+__n)
 			 : __builtin_clz(+__n)));
+#pragma GCC diagnostic pop
 #endif
     }
 
diff --git a/libstdc++-v3/include/bits/vector.tcc b/libstdc++-v3/include/bits/vector.tcc
index 42352aa63ca..1d16735782d 100644
--- a/libstdc++-v3/include/bits/vector.tcc
+++ b/libstdc++-v3/include/bits/vector.tcc
@@ -1005,7 +1005,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
 		const size_type __len =
 		  _M_check_len(__n, "vector::_M_range_insert");
-#if __cplusplus < 201103LL
+#if __cplusplus < 201103L
 		if (__len < (__n + (__old_start - __old_finish)))
 		  __builtin_unreachable();
 #endif
diff --git a/libstdc++-v3/include/c_global/cstdlib b/libstdc++-v3/include/c_global/cstdlib
index 69e7a39eb44..7bb11f5b788 100644
--- a/libstdc++-v3/include/c_global/cstdlib
+++ b/libstdc++-v3/include/c_global/cstdlib
@@ -211,6 +211,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #endif
 
 #if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
   using ::llabs;
 
   inline lldiv_t
@@ -218,6 +220,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
 
   using ::lldiv;
+#pragma GCC diagnostic pop
 #endif
 
 #if _GLIBCXX_USE_C99_LONG_LONG_CHECK || _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
index 52c83296e62..7146f89e1cf 100644
--- a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
@@ -60,6 +60,8 @@ namespace detail
 #endif
     };
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
   // Originally taken from the SGI implementation; acknowledged in the docs.
   // Further modified (for 64 bits) from tr1's hashtable.
   static const std::size_t g_a_sizes[num_distinct_sizes] =
@@ -131,6 +133,7 @@ namespace detail
 #endif
 #endif
     };
+#pragma GCC diagnostic pop
 
 } // namespace detail
 
diff --git a/libstdc++-v3/include/ext/pointer.h b/libstdc++-v3/include/ext/pointer.h
index 534b3c78226..f066ee9e8a8 100644
--- a/libstdc++-v3/include/ext/pointer.h
+++ b/libstdc++-v3/include/ext/pointer.h
@@ -436,8 +436,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       _CXX_POINTER_ARITH_OPERATOR_SET(long);
       _CXX_POINTER_ARITH_OPERATOR_SET(unsigned long);
 #ifdef _GLIBCXX_USE_LONG_LONG
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
       _CXX_POINTER_ARITH_OPERATOR_SET(long long);
       _CXX_POINTER_ARITH_OPERATOR_SET(unsigned long long);
+#pragma GCC diagnostic pop
 #endif
 
       // Mathematical Manipulators
diff --git a/libstdc++-v3/include/ext/stdio_sync_filebuf.h b/libstdc++-v3/include/ext/stdio_sync_filebuf.h
index f8993ad521a..263b040b317 100644
--- a/libstdc++-v3/include/ext/stdio_sync_filebuf.h
+++ b/libstdc++-v3/include/ext/stdio_sync_filebuf.h
@@ -308,10 +308,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #endif
 
 #if _GLIBCXX_EXTERN_TEMPLATE
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wc++11-extensions"
   extern template class stdio_sync_filebuf<char>;
 #ifdef _GLIBCXX_USE_WCHAR_T
   extern template class stdio_sync_filebuf<wchar_t>;
 #endif
+#pragma GCC diagnostic pop
 #endif
 
 _GLIBCXX_END_NAMESPACE_VERSION
diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream
index 730e413c290..dd2120b60c1 100644
--- a/libstdc++-v3/include/std/istream
+++ b/libstdc++-v3/include/std/istream
@@ -193,6 +193,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       { return _M_extract(__n); }
 
 #ifdef _GLIBCXX_USE_LONG_LONG
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
       __istream_type&
       operator>>(long long& __n)
       { return _M_extract(__n); }
@@ -200,6 +202,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       __istream_type&
       operator>>(unsigned long long& __n)
       { return _M_extract(__n); }
+#pragma GCC diagnostic pop
 #endif
       ///@}
 
diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream
index cb5675fe1bd..a5417f9cb98 100644
--- a/libstdc++-v3/include/std/ostream
+++ b/libstdc++-v3/include/std/ostream
@@ -205,6 +205,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       }
 
 #ifdef _GLIBCXX_USE_LONG_LONG
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
       __ostream_type&
       operator<<(long long __n)
       { return _M_insert(__n); }
@@ -212,6 +214,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       __ostream_type&
       operator<<(unsigned long long __n)
       { return _M_insert(__n); }
+#pragma GCC diagnostic pop
 #endif
       ///@}
 
diff --git a/libstdc++-v3/include/tr1/cmath b/libstdc++-v3/include/tr1/cmath
index 83677a4e716..dd4cb1e5b79 100644
--- a/libstdc++-v3/include/tr1/cmath
+++ b/libstdc++-v3/include/tr1/cmath
@@ -760,6 +760,9 @@ namespace tr1
     lgamma(_Tp __x)
     { return __builtin_lgamma(__x); }
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
+
 #ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP
   inline long long
   llrint(float __x)
@@ -791,6 +794,7 @@ namespace tr1
 					   long long>::__type
     llround(_Tp __x)
     { return __builtin_llround(__x); }
+#pragma GCC diagnostic pop
 
 #ifndef __CORRECT_ISO_CPP11_MATH_H_PROTO_FP
   inline float
diff --git a/libstdc++-v3/include/tr1/functional_hash.h b/libstdc++-v3/include/tr1/functional_hash.h
index 57f0eb604ce..85d491f0e0a 100644
--- a/libstdc++-v3/include/tr1/functional_hash.h
+++ b/libstdc++-v3/include/tr1/functional_hash.h
@@ -69,19 +69,22 @@ namespace tr1
     hash<_Tp>::operator()(_Tp __val) const		\
     { return static_cast<size_t>(__val); }
 
-  _TR1_hashtable_define_trivial_hash(bool);
-  _TR1_hashtable_define_trivial_hash(char);
-  _TR1_hashtable_define_trivial_hash(signed char);
-  _TR1_hashtable_define_trivial_hash(unsigned char);
-  _TR1_hashtable_define_trivial_hash(wchar_t);
-  _TR1_hashtable_define_trivial_hash(short);
-  _TR1_hashtable_define_trivial_hash(int);
-  _TR1_hashtable_define_trivial_hash(long);
-  _TR1_hashtable_define_trivial_hash(long long);
-  _TR1_hashtable_define_trivial_hash(unsigned short);
-  _TR1_hashtable_define_trivial_hash(unsigned int);
-  _TR1_hashtable_define_trivial_hash(unsigned long);
-  _TR1_hashtable_define_trivial_hash(unsigned long long);
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
+  _TR1_hashtable_define_trivial_hash(bool)
+  _TR1_hashtable_define_trivial_hash(char)
+  _TR1_hashtable_define_trivial_hash(signed char)
+  _TR1_hashtable_define_trivial_hash(unsigned char)
+  _TR1_hashtable_define_trivial_hash(wchar_t)
+  _TR1_hashtable_define_trivial_hash(short)
+  _TR1_hashtable_define_trivial_hash(int)
+  _TR1_hashtable_define_trivial_hash(long)
+  _TR1_hashtable_define_trivial_hash(long long)
+  _TR1_hashtable_define_trivial_hash(unsigned short)
+  _TR1_hashtable_define_trivial_hash(unsigned int)
+  _TR1_hashtable_define_trivial_hash(unsigned long)
+  _TR1_hashtable_define_trivial_hash(unsigned long long)
+#pragma GCC diagnostic pop
 
 #undef _TR1_hashtable_define_trivial_hash
 
@@ -133,6 +136,8 @@ namespace tr1
         static size_t
         hash(const _Tp* __ptr, size_t __clength)
         {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
 	  size_t __result
 	    = static_cast<size_t>(14695981039346656037ULL);
 	  const char* __cptr = reinterpret_cast<const char*>(__ptr);
@@ -142,6 +147,7 @@ namespace tr1
 	      __result *= static_cast<size_t>(1099511628211ULL);
 	    }
 	  return __result;
+#pragma GCC diagnostic pop
 	}
     };
 
diff --git a/libstdc++-v3/include/tr1/tuple b/libstdc++-v3/include/tr1/tuple
index be26d283f8c..f74aecbe8cd 100644
--- a/libstdc++-v3/include/tr1/tuple
+++ b/libstdc++-v3/include/tr1/tuple
@@ -419,7 +419,7 @@ namespace tr1
   namespace
   {
     _Swallow_assign ignore;
-  }; // anonymous namespace
+  } // anonymous namespace
 }
 
 _GLIBCXX_END_NAMESPACE_VERSION
diff --git a/libstdc++-v3/include/tr1/type_traits b/libstdc++-v3/include/tr1/type_traits
index f5714b0032c..534d809d2f8 100644
--- a/libstdc++-v3/include/tr1/type_traits
+++ b/libstdc++-v3/include/tr1/type_traits
@@ -118,8 +118,11 @@ namespace tr1
   _DEFINE_SPEC(0, __is_integral_helper, unsigned int, true)
   _DEFINE_SPEC(0, __is_integral_helper, long, true)
   _DEFINE_SPEC(0, __is_integral_helper, unsigned long, true)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
   _DEFINE_SPEC(0, __is_integral_helper, long long, true)
   _DEFINE_SPEC(0, __is_integral_helper, unsigned long long, true)
+#pragma GCC diagnostic pop
 
   /// is_integral
   template<typename _Tp>
@@ -539,6 +542,8 @@ namespace tr1
     : public integral_constant<bool, is_pod<_Tp>::value>
     { };
 
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlong-long"
   template<typename>
     struct __is_signed_helper
     : public false_type { };
@@ -562,6 +567,7 @@ namespace tr1
   _DEFINE_SPEC(0, __is_unsigned_helper, unsigned int, true)
   _DEFINE_SPEC(0, __is_unsigned_helper, unsigned long, true)
   _DEFINE_SPEC(0, __is_unsigned_helper, unsigned long long, true)
+#pragma GCC diagnostic pop
 
   template<typename _Tp>
     struct is_unsigned

commit 7df6af205f5c9853c4d70b5b8172b0483179c891
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jan 15 09:33:55 2025 +0000

    libstdc++: Fix reversed args in unreachable assumption [PR109849]
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/109849
            * include/bits/vector.tcc (vector::_M_range_insert): Fix
            reversed args in length calculation.
    
    (cherry picked from commit 6f85a97248fdff15aadc9514c1118eee0293d256)

diff --git a/libstdc++-v3/include/bits/vector.tcc b/libstdc++-v3/include/bits/vector.tcc
index 1d16735782d..0458d560075 100644
--- a/libstdc++-v3/include/bits/vector.tcc
+++ b/libstdc++-v3/include/bits/vector.tcc
@@ -1006,7 +1006,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 		const size_type __len =
 		  _M_check_len(__n, "vector::_M_range_insert");
 #if __cplusplus < 201103L
-		if (__len < (__n + (__old_start - __old_finish)))
+		if (__len < (__n + (__old_finish - __old_start)))
 		  __builtin_unreachable();
 #endif
 

commit 258d5c062719725310421d0b4f0d03110e3e88a2
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Thu Jan 16 17:20:06 2025 +0100

    d: Fix ICE in dmd.expressionsem.resolveLoc
    
    This was fixed in upstream, and merged in r15-6559-g332cf038fda109.
    Backport the individual fix from the upstream merge for releases/gcc-14.
    
            PR d/116373
    
    gcc/d/ChangeLog:
    
            * dmd/expressionsem.d (resolveLoc): Check for null pointer before
            resolving bounds of slice.
    
    gcc/testsuite/ChangeLog:
    
            * gdc.dg/pr116373.d: New test.
    
    (cherry picked from commit c7dab40d7569c51ac4e62ceea05c7c049da426bb)

diff --git a/gcc/d/dmd/expressionsem.d b/gcc/d/dmd/expressionsem.d
index 7ae7f400d16..a6425d31143 100644
--- a/gcc/d/dmd/expressionsem.d
+++ b/gcc/d/dmd/expressionsem.d
@@ -15331,8 +15331,10 @@ Expression resolveLoc(Expression exp, const ref Loc loc, Scope* sc)
     Expression visitSlice(SliceExp exp)
     {
         exp.e1 = exp.e1.resolveLoc(loc, sc);
-        exp.lwr = exp.lwr.resolveLoc(loc, sc);
-        exp.upr = exp.upr.resolveLoc(loc, sc);
+        if (exp.lwr)
+            exp.lwr = exp.lwr.resolveLoc(loc, sc);
+        if (exp.upr)
+            exp.upr = exp.upr.resolveLoc(loc, sc);
 
         return exp;
     }
diff --git a/gcc/testsuite/gdc.dg/pr116373.d b/gcc/testsuite/gdc.dg/pr116373.d
new file mode 100644
index 00000000000..b58863bacf2
--- /dev/null
+++ b/gcc/testsuite/gdc.dg/pr116373.d
@@ -0,0 +1,8 @@
+// { dg-do compile }
+int[] x;
+
+void foo (int[] y = x[]) {}
+
+void main () {
+    foo();
+}

commit 1487310d2707203e0f9b5b1794daf1f381e3e622
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Fri Jan 17 00:23:45 2025 +0100

    d: Fix record layout of compiler-generated TypeInfo_Class [PR115249]
    
    In r14-8766, the layout of TypeInfo_Class changed in the runtime
    library, but didn't get reflected in the compiler-generated data,
    causing a corruption of runtime type introspection on BigEndian targets.
    
    This adjusts the size of the `ClassFlags' field from uint to ushort, and
    adds a new ushort `depth' field in the space where ClassFlags used to
    occupy.
    
            PR d/115249
    
    gcc/d/ChangeLog:
    
            * typeinfo.cc (create_tinfo_types): Update internal Typenfo
            representation.
            (TypeInfoVisitor::visit (TypeInfoClassDeclaration *)): Likewise.
    
    (cherry picked from commit d740694ff89ab5c78652a1f66b058ca16634ddbc)

diff --git a/gcc/d/typeinfo.cc b/gcc/d/typeinfo.cc
index cadcbe8164e..aa702892c4d 100644
--- a/gcc/d/typeinfo.cc
+++ b/gcc/d/typeinfo.cc
@@ -258,10 +258,10 @@ create_tinfo_types (Module *mod)
 			  Identifier::idPool ("TypeInfo_Class"),
 			  array_type_node, array_type_node, array_type_node,
 			  array_type_node, ptr_type_node, ptr_type_node,
-			  ptr_type_node, d_uint_type, ptr_type_node,
-			  array_type_node, ptr_type_node, ptr_type_node,
-			  d_uint_type, d_uint_type, d_uint_type, d_uint_type,
-			  NULL);
+			  ptr_type_node, d_ushort_type, d_ushort_type,
+			  ptr_type_node, array_type_node, ptr_type_node,
+			  ptr_type_node, d_uint_type, d_uint_type, d_uint_type,
+			  d_uint_type, NULL);
 
   object_module = mod;
 }
@@ -813,6 +813,7 @@ public:
 	void *destructor;
 	void function(Object) classInvariant;
 	ClassFlags m_flags;
+	ushort depth;
 	void *deallocator;
 	OffsetTypeInfo[] m_offTi;
 	void function(Object) defaultConstructor;
@@ -918,7 +919,10 @@ public:
 	flags |= ClassFlags::noPointers;
 
     Lhaspointers:
-	this->layout_field (build_integer_cst (flags, d_uint_type));
+	this->layout_field (build_integer_cst (flags, d_ushort_type));
+
+	/* ushort depth;  (not implemented)  */
+	this->layout_field (build_zero_cst (d_ushort_type));
 
 	/* void *deallocator;  */
 	this->layout_field (null_pointer_node);
@@ -979,7 +983,10 @@ public:
 	if (cd->isCOMinterface ())
 	  flags |= ClassFlags::isCOMclass;
 
-	this->layout_field (build_integer_cst (flags, d_uint_type));
+	this->layout_field (build_integer_cst (flags, d_ushort_type));
+
+	/* ushort depth;  (not implemented)  */
+	this->layout_field (build_zero_cst (d_ushort_type));
 
 	/* void *deallocator;
 	   OffsetTypeInfo[] m_offTi;  (not implemented)

commit e3ba0271114432a1dea6c87be50bd7b59cd906d9
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Jan 17 00:27:03 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 629b78beae4..51d36d43d1b 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250116
+20250117
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
index 6fe7e14280c..e97a0f4cc73 100644
--- a/gcc/d/ChangeLog
+++ b/gcc/d/ChangeLog
@@ -1,3 +1,22 @@
+2025-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	Backported from master:
+	2025-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	PR d/115249
+	* typeinfo.cc (create_tinfo_types): Update internal Typenfo
+	representation.
+	(TypeInfoVisitor::visit (TypeInfoClassDeclaration *)): Likewise.
+
+2025-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	Backported from master:
+	2025-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	PR d/116373
+	* dmd/expressionsem.d (resolveLoc): Check for null pointer before
+	resolving bounds of slice.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9e626b0dddb..ba193dc1b69 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2025-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	Backported from master:
+	2025-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	PR d/116373
+	* gdc.dg/pr116373.d: New test.
+
 2025-01-14  Robin Dapp  <rdapp@ventanamicro.com>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 5af43f6942e..85240fb4f7e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,51 @@
+2025-01-16  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2025-01-15  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/109849
+	* include/bits/vector.tcc (vector::_M_range_insert): Fix
+	reversed args in length calculation.
+
+2025-01-16  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-09-27  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/istream.tcc: Add diagnostic pragmas around uses
+	of long long and extern template.
+	* include/bits/locale_facets.h: Likewise.
+	* include/bits/locale_facets.tcc: Likewise.
+	* include/bits/locale_facets_nonio.tcc: Likewise.
+	* include/bits/ostream.tcc: Likewise.
+	* include/bits/stl_algobase.h: Likewise.
+	* include/c_global/cstdlib: Likewise.
+	* include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
+	Likewise.
+	* include/ext/pointer.h: Likewise.
+	* include/ext/stdio_sync_filebuf.h: Likewise.
+	* include/std/istream: Likewise.
+	* include/std/ostream: Likewise.
+	* include/tr1/cmath: Likewise.
+	* include/tr1/type_traits: Likewise.
+	* include/tr1/functional_hash.h: Likewise. Remove semi-colons
+	at namespace scope that aren't needed after macro expansion.
+	* include/tr1/tuple: Remove semi-colon at namespace scope.
+	* include/bits/vector.tcc: Change LL suffix to just L.
+
+2025-01-16  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2025-01-08  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/90389
+	* include/bits/deque.tcc (_M_insert_aux): Rename variadic
+	overload to _M_emplace_aux.
+	* include/bits/stl_deque.h (_M_insert_aux): Define inline.
+	(_M_emplace_aux): Declare.
+	* testsuite/23_containers/deque/modifiers/emplace/90389.cc: New
+	test.
+
 2025-01-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
 
 	Backported from master:

commit 802771f22815157cce8643e54e6810ed80079f13
Author: Eugene Rozenfeld <erozen@microsoft.com>
Date:   Fri Jan 10 19:48:52 2025 -0800

    Fix setting of call graph node AutoFDO count
    
    We are initializing both the call graph node count and
    the entry block count of the function with the head_count value
    from the profile.
    
    Count propagation algorithm may refine the entry block count
    and we may end up with a case where the call graph node count
    is set to zero but the entry block count is non-zero. That becomes
    a problem because we have this code in execute_fixup_cfg:
    
     profile_count num = node->count;
     profile_count den = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;
     bool scale = num.initialized_p () && !(num == den);
    
    Here if num is 0 but den is not 0, scale becomes true and we
    lose the counts in
    
    if (scale)
      bb->count = bb->count.apply_scale (num, den);
    
    This is what happened in the issue reported in PR116743
    (a 10% regression in MySQL HAMMERDB tests).
    3d9e6767939e9658260e2506e81ec32b37cba041 made an improvement in
    AutoFDO count propagation, which caused a mismatch between
    the call graph node count (zero) and the entry block count (non-zero)
    and subsequent loss of counts as described above.
    
    The fix is to update the call graph node count once we've done count propagation.
    
    Tested on x86_64-pc-linux-gnu.
    
    gcc/ChangeLog:
            PR gcov-profile/116743
            * auto-profile.cc (afdo_annotate_cfg): Fix mismatch between the call graph node count
            and the entry block count.
    
    (cherry picked from commit e683c6b029f809c7a1981b4341c95d9652c22e18)

diff --git a/gcc/auto-profile.cc b/gcc/auto-profile.cc
index de59b94bcb3..216ea7fecc0 100644
--- a/gcc/auto-profile.cc
+++ b/gcc/auto-profile.cc
@@ -1538,8 +1538,6 @@ afdo_annotate_cfg (const stmt_set &promoted_stmts)
 
   if (s == NULL)
     return;
-  cgraph_node::get (current_function_decl)->count
-     = profile_count::from_gcov_type (s->head_count ()).afdo ();
   ENTRY_BLOCK_PTR_FOR_FN (cfun)->count
      = profile_count::from_gcov_type (s->head_count ()).afdo ();
   EXIT_BLOCK_PTR_FOR_FN (cfun)->count = profile_count::zero ().afdo ();
@@ -1578,6 +1576,8 @@ afdo_annotate_cfg (const stmt_set &promoted_stmts)
       /* Calculate, propagate count and probability information on CFG.  */
       afdo_calculate_branch_prob (&annotated_bb);
     }
+  cgraph_node::get(current_function_decl)->count
+      = ENTRY_BLOCK_PTR_FOR_FN(cfun)->count;
   update_max_bb_count ();
   profile_status_for_fn (cfun) = PROFILE_READ;
   if (flag_value_profile_transformations)

commit b4578c16a45756144f48f0f03ebe77b61762a022
Author: Simon Martin <simon@nasilyan.com>
Date:   Thu Jan 16 16:27:06 2025 +0100

    c++: Make sure fold_sizeof_expr returns the correct type [PR117775]
    
    We currently ICE upon the following code, that is valid under
    -Wno-pointer-arith:
    
    === cut here ===
    int main() {
      decltype( [](auto) { return sizeof(void); } ) x;
      return x.operator()(0);
    }
    === cut here ===
    
    The problem is that "fold_sizeof_expr (sizeof(void))" returns
    size_one_node, that has a different TREE_TYPE from that of the sizeof
    expression, which later triggers an assert in cxx_eval_store_expression.
    
    This patch makes sure that fold_sizeof_expr always returns a tree with
    the size_type_node type.
    
            PR c++/117775
    
    gcc/cp/ChangeLog:
    
            * decl.cc (fold_sizeof_expr): Make sure the folded result has
            type size_type_node.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/constexpr-117775.C: New test.
    
    (cherry picked from commit 37f38b0f97374476a4818b68c8df991886428787)

diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc
index 02119105058..529bfadf2e7 100644
--- a/gcc/cp/decl.cc
+++ b/gcc/cp/decl.cc
@@ -11502,6 +11502,7 @@ fold_sizeof_expr (tree t)
 				    false, false);
   if (r == error_mark_node)
     r = size_one_node;
+  r = cp_fold_convert (size_type_node, r);
   return r;
 }
 
diff --git a/gcc/testsuite/g++.dg/cpp2a/constexpr-117775.C b/gcc/testsuite/g++.dg/cpp2a/constexpr-117775.C
new file mode 100644
index 00000000000..59fc0d332b9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/constexpr-117775.C
@@ -0,0 +1,13 @@
+// PR c++/117775
+// Check that we don't ICE and have sizeof(void)==1 under -Wno-pointer-arith
+// { dg-do run { target c++20 } }
+// { dg-additional-options "-Wno-pointer-arith" }
+
+int main() {
+  struct why :
+    decltype( [](auto) {
+		return sizeof(void);
+	      })
+  {} x;
+  return 1 - x.operator()(0);
+}

commit f400d065a2ecda19b46fc0f7ec0a1fe6d7dd597e
Author: Nathaniel Shead <nathanieloshead@gmail.com>
Date:   Fri Dec 20 22:09:39 2024 +1100

    c++: Allow pragmas in NSDMIs [PR118147]
    
    This patch removes the (unnecessary) CPP_PRAGMA_EOL case from
    cp_parser_cache_defarg, which currently has the result that any pragmas
    in the NSDMI cause an error.
    
            PR c++/118147
    
    gcc/cp/ChangeLog:
    
            * parser.cc (cp_parser_cache_defarg): Don't error when
            CPP_PRAGMA_EOL.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/nsdmi-defer7.C: New test.
    
    Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
    (cherry picked from commit f3ccc57e5f044031a1b07e79330de9220e93afe7)

diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index 725b5ef4ad6..5bfbdf85f15 100644
--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -35674,7 +35674,6 @@ cp_parser_cache_defarg (cp_parser *parser, bool nsdmi)
 
 	  /* If we run out of tokens, issue an error message.  */
 	case CPP_EOF:
-	case CPP_PRAGMA_EOL:
 	  error_at (token->location, "file ends in default argument");
 	  return error_mark_node;
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer7.C b/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer7.C
new file mode 100644
index 00000000000..3bef636ccbd
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/nsdmi-defer7.C
@@ -0,0 +1,13 @@
+// PR c++/118147
+// { dg-do compile { target c++11 } }
+
+struct F {
+  int i = []{
+    #pragma message "test"  // { dg-message "test" }
+    return 1;
+  }();
+};
+
+struct G {
+  int i =
+    #pragma GCC diagnostic push  // { dg-error "file ends in default argument|expected" }

commit 1ba0d18323f4ddacc3dfd218287b7904f80034fe
Author: Georg-Johann Lay <avr@gjlay.de>
Date:   Thu Jan 16 19:43:27 2025 +0100

    AVR: Use INT_N to built-in define __int24.
    
    This patch uses the INT_N interface to define __int24 in avr-modes.def.
    
    Since the testsuite uses -Wpedantic and __int24 is a C/C++ extension,
    uses of __int24 and __uint24 is now marked as __extension__.
    
            PR target/118329
    gcc/
            * config/avr/avr-modes.def: Add INT_N (PSI, 24).
            * config/avr/avr.cc (avr_init_builtin_int24)
            <__int24>: Remove definition.
            <__uint24>: Adjust definition to INT_N interface.
    gcc/testsuite/
            * gcc.target/avr/torture/get-mem.c: (__int24, __uint24):
            Add __extension__ to respective typedefs.
            * gcc.target/avr/torture/set-mem.c: Same.
            * gcc.target/avr/torture/int24-mul.c: Same.
            * gcc.target/avr/torture/pr109907-2.c: Same.
            * gcc.target/avr/torture/pr61443.c: Same.
            * gcc.target/avr/torture/pr63633-ice-mult.c: Same.
    
    (cherry picked from commit 6580b89957ccabbb5aaf43736b36b9bd399fbc13)

diff --git a/gcc/config/avr/avr-modes.def b/gcc/config/avr/avr-modes.def
index e0633d680d5..6b1c11a40d3 100644
--- a/gcc/config/avr/avr-modes.def
+++ b/gcc/config/avr/avr-modes.def
@@ -17,6 +17,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 FRACTIONAL_INT_MODE (PSI, 24, 3);
+INT_N (PSI, 24);
 
 /* Make TA and UTA 64 bits wide.
    128 bit wide modes would be insane on a 8-bit machine.
diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc
index 32b43be1bc3..461776d45c9 100644
--- a/gcc/config/avr/avr.cc
+++ b/gcc/config/avr/avr.cc
@@ -15651,11 +15651,13 @@ avr_builtin_decl (unsigned id, bool /*initialize_p*/)
 static void
 avr_init_builtin_int24 (void)
 {
-  tree int24_type  = make_signed_type (GET_MODE_BITSIZE (PSImode));
-  tree uint24_type = make_unsigned_type (GET_MODE_BITSIZE (PSImode));
-
-  lang_hooks.types.register_builtin_type (int24_type, "__int24");
-  lang_hooks.types.register_builtin_type (uint24_type, "__uint24");
+  for (int i = 0; i < NUM_INT_N_ENTS; ++i)
+    if (int_n_data[i].bitsize == 24)
+      {
+	tree uint24_type = int_n_trees[i].unsigned_type;
+	lang_hooks.types.register_builtin_type (uint24_type, "__uint24");
+	break;
+      }
 }
 
 
diff --git a/gcc/testsuite/gcc.target/avr/torture/get-mem.c b/gcc/testsuite/gcc.target/avr/torture/get-mem.c
index 46f47f10429..a71d03aee56 100644
--- a/gcc/testsuite/gcc.target/avr/torture/get-mem.c
+++ b/gcc/testsuite/gcc.target/avr/torture/get-mem.c
@@ -4,7 +4,7 @@
 
 typedef __INT8_TYPE__ s8;
 typedef __INT16_TYPE__ s16;
-typedef __int24 s24;
+__extension__ typedef __int24 s24;
 typedef __INT32_TYPE__ s32;
 
 static const s8 arr8[] = { 12, 23, 34 };
diff --git a/gcc/testsuite/gcc.target/avr/torture/int24-mul.c b/gcc/testsuite/gcc.target/avr/torture/int24-mul.c
index 9b29763738c..98df1d0d3c3 100644
--- a/gcc/testsuite/gcc.target/avr/torture/int24-mul.c
+++ b/gcc/testsuite/gcc.target/avr/torture/int24-mul.c
@@ -7,7 +7,10 @@
 #define __flash /* empty */
 #endif
 
-const __flash __int24 vals[] =
+__extension__ typedef __uint24 uint24_t;
+__extension__ typedef __int24 int24_t;
+
+const __flash int24_t vals[] =
   {
     0, 1, 2, 3, -1, -2, -3, 0xff, 0x100, 0x101,
     0xffL * 0xff, 0xfffL * 0xfff, 0x101010L, 0xaaaaaaL
@@ -17,7 +20,7 @@ void test_u (void)
 {
   unsigned int i;
   unsigned long la, lb, lc;
-  __uint24 a, b, c;
+  uint24_t a, b, c;
 
   int S = sizeof (vals) / sizeof (*vals);
 
@@ -58,7 +61,7 @@ void test_nu (void)
   unsigned long la;
   unsigned int i;
   int S = sizeof (vals) / sizeof (*vals);
-  __uint24 a;
+  uint24_t a;
   
   for (i = 0; i < 500; i++)
     {
diff --git a/gcc/testsuite/gcc.target/avr/torture/pr109907-2.c b/gcc/testsuite/gcc.target/avr/torture/pr109907-2.c
index db0cc72e590..26cce5d5a42 100644
--- a/gcc/testsuite/gcc.target/avr/torture/pr109907-2.c
+++ b/gcc/testsuite/gcc.target/avr/torture/pr109907-2.c
@@ -5,7 +5,7 @@
 
 typedef __UINT8_TYPE__ uint8_t;
 typedef __UINT16_TYPE__ uint16_t;
-typedef __uint24 uint24_t;
+__extension__ typedef __uint24 uint24_t;
 typedef __UINT32_TYPE__ uint32_t;
 
 typedef __INT32_TYPE__ int32_t;
diff --git a/gcc/testsuite/gcc.target/avr/torture/pr61443.c b/gcc/testsuite/gcc.target/avr/torture/pr61443.c
index 36df852a012..22514f4765b 100644
--- a/gcc/testsuite/gcc.target/avr/torture/pr61443.c
+++ b/gcc/testsuite/gcc.target/avr/torture/pr61443.c
@@ -9,7 +9,9 @@
 #define __memx  /* empty */
 #endif
 
-#define NC __attribute__((noinline,noclone))
+#define NC __attribute__((noipa))
+
+__extension__ typedef __int24 int24_t;
 
 void NC vfun (char n, ...)
 {
@@ -30,7 +32,7 @@ void NC vfun (char n, ...)
         abort();
       break;
     case 3:
-      if (333333 != va_arg (ap, __int24))
+      if (333333 != va_arg (ap, int24_t))
         abort();
       break;
     case 4:
@@ -67,12 +69,12 @@ void NC boox_hi (const __memx int *p)
   vfun (2, *p);
 }
 
-void NC boo_psi (const __flash __int24 *p)
+void NC boo_psi (const __flash int24_t *p)
 {
   vfun (3, *p);
 }
 
-void NC boox_psi (const __memx __int24 *p)
+void NC boox_psi (const __memx int24_t *p)
 {
   vfun (3, *p);
 }
@@ -99,19 +101,19 @@ void NC boox_di (const __memx long long *p)
 
 const __flash char f_qi = 11;
 const __flash int f_hi = 2222;
-const __flash __int24 f_psi = 333333;
+const __flash int24_t f_psi = 333333;
 const __flash long f_si = 44444444;
 const __flash long long f_di = 8888888888888888;
 
 const __memx char x_qi = 11;
 const __memx int x_hi = 2222;
-const __memx __int24 x_psi = 333333;
+const __memx int24_t x_psi = 333333;
 const __memx long x_si = 44444444;
 const __memx long long x_di = 8888888888888888;
 
 char r_qi = 11;
 int r_hi = 2222;
-__int24 r_psi = 333333;
+int24_t r_psi = 333333;
 long r_si = 44444444;
 long long r_di = 8888888888888888;
 
diff --git a/gcc/testsuite/gcc.target/avr/torture/pr63633-ice-mult.c b/gcc/testsuite/gcc.target/avr/torture/pr63633-ice-mult.c
index a523424c325..5568ed689f5 100644
--- a/gcc/testsuite/gcc.target/avr/torture/pr63633-ice-mult.c
+++ b/gcc/testsuite/gcc.target/avr/torture/pr63633-ice-mult.c
@@ -6,21 +6,23 @@ void ice_mult32 (int x)
   __asm volatile (" " :: "r" (reg = 0x12345 * x));
 }
 
+__extension__ typedef __int24 i24;
+
 void ice_mult24 (int x)
 {
-  register __int24 reg __asm ("20");
+  register i24 reg __asm ("20");
   __asm volatile (" " :: "r" (reg = 0x12345 * x));
 }
 
-void ice_sh24 (__int24 x)
+void ice_sh24 (i24 x)
 {
-  register __int24 reg __asm ("20");
+  register i24 reg __asm ("20");
   __asm volatile (" " :: "r" (reg = x << 3));
 }
 
-void ice_sh24b (__int24 x)
+void ice_sh24b (i24 x)
 {
-  register __int24 reg __asm ("20");
+  register i24 reg __asm ("20");
   __asm volatile (" " :: "r" (reg = x << 22));
 }
 
diff --git a/gcc/testsuite/gcc.target/avr/torture/set-mem.c b/gcc/testsuite/gcc.target/avr/torture/set-mem.c
index 60ded19d4b6..11961e13218 100644
--- a/gcc/testsuite/gcc.target/avr/torture/set-mem.c
+++ b/gcc/testsuite/gcc.target/avr/torture/set-mem.c
@@ -4,7 +4,7 @@
 
 typedef __INT8_TYPE__ s8;
 typedef __INT16_TYPE__ s16;
-typedef __int24 s24;
+__extension__ typedef __int24 s24;
 typedef __INT32_TYPE__ s32;
 
 static s8 arr8[3];

commit 4abeaeba435054ad0ab59cf570620b37c06ffcc4
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Fri Jan 17 20:10:39 2025 +0100

    d: Fix ICE in expand_d_format when diagnosing empty enum [PR117115]
    
    This was fixed in upstream dmd, and merged in r15-6824. Backport the
    individual fix from the upstream merge for releases/gcc-14.
    
            PR d/117115
    
    gcc/testsuite/ChangeLog:
    
            * gdc.dg/pr117115.d: New test.
    
    (cherry picked from commit 975c4f1a5de4ede89ee9499cd1a73d613a4aeae4)

diff --git a/gcc/d/dmd/enumsem.d b/gcc/d/dmd/enumsem.d
index 3886ca25e97..06683b25490 100644
--- a/gcc/d/dmd/enumsem.d
+++ b/gcc/d/dmd/enumsem.d
@@ -186,7 +186,7 @@ void enumSemantic(Scope* sc, EnumDeclaration ed)
 
     if (ed.members.length == 0)
     {
-        .error(ed.loc, "%s `%s enum `%s` must have at least one member", ed.kind, ed.toPrettyChars, ed.toChars());
+        .error(ed.loc, "%s `%s` enum `%s` must have at least one member", ed.kind, ed.toPrettyChars, ed.toChars());
         ed.errors = true;
         ed.semanticRun = PASS.semanticdone;
         return;
diff --git a/gcc/testsuite/gdc.dg/pr117115.d b/gcc/testsuite/gdc.dg/pr117115.d
new file mode 100644
index 00000000000..b012268b509
--- /dev/null
+++ b/gcc/testsuite/gdc.dg/pr117115.d
@@ -0,0 +1,3 @@
+// { dg-do compile }
+
+enum E117115 {} // { dg-error "must have at least one member" }

commit 511920a21d4096cfc1226e5ec6140551ddc9ca90
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Jan 18 00:23:38 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 97911f1bf79..61f3d434ecc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,23 @@
+2025-01-17  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2025-01-17  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/118329
+	* config/avr/avr-modes.def: Add INT_N (PSI, 24).
+	* config/avr/avr.cc (avr_init_builtin_int24)
+	<__int24>: Remove definition.
+	<__uint24>: Adjust definition to INT_N interface.
+
+2025-01-17  Eugene Rozenfeld  <erozen@microsoft.com>
+
+	Backported from master:
+	2025-01-16  Eugene Rozenfeld  <erozen@microsoft.com>
+
+	PR gcov-profile/116743
+	* auto-profile.cc (afdo_annotate_cfg): Fix mismatch between the call graph node count
+	and the entry block count.
+
 2025-01-14  Robin Dapp  <rdapp@ventanamicro.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 51d36d43d1b..d05d499d8a4 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250117
+20250118
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c9661e5cc2d..9e3fa78ca51 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,21 @@
+2025-01-17  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	Backported from master:
+	2025-01-17  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/118147
+	* parser.cc (cp_parser_cache_defarg): Don't error when
+	CPP_PRAGMA_EOL.
+
+2025-01-17  Simon Martin  <simon@nasilyan.com>
+
+	Backported from master:
+	2025-01-16  Simon Martin  <simon@nasilyan.com>
+
+	PR c++/117775
+	* decl.cc (fold_sizeof_expr): Make sure the folded result has
+	type size_type_node.
+
 2025-01-11  Nathaniel Shead  <nathanieloshead@gmail.com>
 
 	PR c++/114630
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ba193dc1b69..50acebb1dd5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,41 @@
+2025-01-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	Backported from master:
+	2025-01-17  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	PR d/117115
+	* gdc.dg/pr117115.d: New test.
+
+2025-01-17  Georg-Johann Lay  <avr@gjlay.de>
+
+	Backported from master:
+	2025-01-17  Georg-Johann Lay  <avr@gjlay.de>
+
+	PR target/118329
+	* gcc.target/avr/torture/get-mem.c: (__int24, __uint24):
+	Add __extension__ to respective typedefs.
+	* gcc.target/avr/torture/set-mem.c: Same.
+	* gcc.target/avr/torture/int24-mul.c: Same.
+	* gcc.target/avr/torture/pr109907-2.c: Same.
+	* gcc.target/avr/torture/pr61443.c: Same.
+	* gcc.target/avr/torture/pr63633-ice-mult.c: Same.
+
+2025-01-17  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	Backported from master:
+	2025-01-17  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/118147
+	* g++.dg/cpp0x/nsdmi-defer7.C: New test.
+
+2025-01-17  Simon Martin  <simon@nasilyan.com>
+
+	Backported from master:
+	2025-01-16  Simon Martin  <simon@nasilyan.com>
+
+	PR c++/117775
+	* g++.dg/cpp2a/constexpr-117775.C: New test.
+
 2025-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
 
 	Backported from master:

commit 78a8316269025b41685b13c0ce4708f9320a7f54
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Jan 19 00:23:25 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index d05d499d8a4..df2e7f62043 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250118
+20250119

commit b1f9fb0e133e9654caecb4a6b133ce559f21ca6a
Author: Simon Martin <simon@nasilyan.com>
Date:   Sun Jan 5 10:36:47 2025 +0100

    c++: Friend classes don't shadow enclosing template class paramater [PR118255]
    
    We currently reject the following code
    
    === code here ===
    template <int non_template> struct S { friend class non_template; };
    class non_template {};
    S<0> s;
    === code here ===
    
    While EDG agrees with the current behaviour, clang and MSVC don't (see
    https://godbolt.org/z/69TGaabhd), and I believe that this code is valid,
    since the friend clause does not actually declare a type, so it cannot
    shadow anything. The fact that we didn't error out if the non_template
    class was declared before S backs this up as well.
    
    This patch fixes this by skipping the call to check_template_shadow for
    hidden bindings.
    
            PR c++/118255
    
    gcc/cp/ChangeLog:
    
            * name-lookup.cc (pushdecl): Don't call check_template_shadow
            for hidden bindings.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/lookup/pr99116-1.C: Adjust test expectation.
            * g++.dg/template/friend84.C: New test.
    
    (cherry picked from commit b5a069203fc074ab75d994c4a7e0f2db6a0a00fd)

diff --git a/gcc/cp/name-lookup.cc b/gcc/cp/name-lookup.cc
index b752598564a..309f8fdadcb 100644
--- a/gcc/cp/name-lookup.cc
+++ b/gcc/cp/name-lookup.cc
@@ -4001,7 +4001,10 @@ pushdecl (tree decl, bool hiding)
       if (old && anticipated_builtin_p (old))
 	old = OVL_CHAIN (old);
 
-      check_template_shadow (decl);
+      if (hiding)
+	; /* Hidden bindings don't shadow anything.  */
+      else
+	check_template_shadow (decl);
 
       if (DECL_DECLARES_FUNCTION_P (decl))
 	{
diff --git a/gcc/testsuite/g++.dg/lookup/pr99116-1.C b/gcc/testsuite/g++.dg/lookup/pr99116-1.C
index 01b483ea915..efee3e4aca3 100644
--- a/gcc/testsuite/g++.dg/lookup/pr99116-1.C
+++ b/gcc/testsuite/g++.dg/lookup/pr99116-1.C
@@ -2,7 +2,7 @@
 
 template<int T> struct Z {
 
-  friend struct T; // { dg-error "shadows template parameter" }
+  friend struct T; // { dg-bogus "shadows template parameter" }
 };
 
 struct Y {
diff --git a/gcc/testsuite/g++.dg/template/friend84.C b/gcc/testsuite/g++.dg/template/friend84.C
new file mode 100644
index 00000000000..64ea41a552b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/friend84.C
@@ -0,0 +1,26 @@
+// PR c++/118255
+// { dg-do "compile" }
+
+// The PR's case, that used to error out.
+template <int non_template>
+struct S {
+  friend class non_template; // { dg-bogus "shadows template parameter" }
+};
+
+class non_template {};
+S<0> s;
+
+// We already accepted cases where the friend is already declared.
+template <int non_template>
+struct T {
+  friend class non_template;
+};
+T<0> t;
+
+// We should reject (re)declarations.
+template <int non_template>
+struct U {
+  class non_template {};  // { dg-error "shadows template parameter" }
+  void non_template () {} // { dg-error "shadows template parameter" }
+};
+U<0> u;

commit 94338cdf59531edb9ac944011c95d777b113ae93
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Fri Dec 20 16:16:15 2024 +0100

    i386: Disable SImode/DImode moves from/to mask regs without avx512bw [PR118067]
    
    SImode and DImode moves from/to mask registers are valid only with AVX512BW,
    so mark relevant alternatives in *movsi_internal and *movdi_internal as such.
    
    Even with the patch, the testcase still fails, but now with:
    
    pr118067.c: In function ‘foo’:
    pr118067.c:13:1: internal compiler error: maximum number of generated reload insns per insn achieved (90)
       13 | }
          | ^
    0x2c3b581 internal_error(char const*, ...)
            ../../git/gcc/gcc/diagnostic-global-context.cc:517
    0xb68938 lra_constraints(bool)
            ../../git/gcc/gcc/lra-constraints.cc:5411
    0xb51a0d lra(_IO_FILE*, int)
            ../../git/gcc/gcc/lra.cc:2449
    0xaf9f4d do_reload
            ../../git/gcc/gcc/ira.cc:5977
    0xafa462 execute
            ../../git/gcc/gcc/ira.cc:6165
    
            PR target/118067
    
    gcc/ChangeLog:
    
            * config/i386/i386.md (*movdi_internal):
            Disable alternatives from/to mask registers without AVX512BW.
            (*movsi_internal): Ditto.
    
    (cherry picked from commit 219ddae16f9d724baeff86934f8981aa5ef7b95f)

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index a72f6687296..adeb7cc54b2 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -2485,7 +2485,7 @@
   [(set (match_operand:DI 0 "nonimmediate_operand"
     "=r  ,o  ,r,r  ,r,m ,*y,*y,?*y,?m,?r,?*y,?Yv,?v,?v,m ,m,?jc,?*Yd,?r,?v,?*y,?*x,*k,*k  ,*r,*m,*k")
 	(match_operand:DI 1 "general_operand"
-    "riFo,riF,Z,rem,i,re,C ,*y,Bk ,*y,*y,r  ,C  ,?v,Bk,?v,v,*Yd,jc  ,?v,r  ,*x ,*y ,*r,*kBk,*k,*k,CBC"))]
+    "riFo,riF,Z,rem,i,re,C ,*y,Bk ,*y,*y,r  ,C  ,?v,Bk,?v,v,*Yd,jc  ,?v,r ,*x ,*y ,*r,*kBk,*k,*k,CBC"))]
   "!(MEM_P (operands[0]) && MEM_P (operands[1]))
    && ix86_hardreg_mov_ok (operands[0], operands[1])"
 {
@@ -2547,12 +2547,16 @@
   [(set (attr "isa")
      (cond [(eq_attr "alternative" "0,1,17,18")
 	      (const_string "nox64")
-	    (eq_attr "alternative" "2,3,4,5,10,11,23,25")
+	    (eq_attr "alternative" "2,3,4,5,10,11")
 	      (const_string "x64")
 	    (eq_attr "alternative" "19,20")
 	      (const_string "x64_sse2")
+	    (eq_attr "alternative" "23,25")
+	      (const_string "x64_avx512bw")
 	    (eq_attr "alternative" "21,22")
 	      (const_string "sse2")
+	    (eq_attr "alternative" "24,26,27")
+	      (const_string "avx512bw")
 	   ]
 	   (const_string "*")))
    (set (attr "type")
@@ -2721,7 +2725,7 @@
   [(set (match_operand:SI 0 "nonimmediate_operand"
     "=r,m ,*y,*y,?*y,?m,?r,?*y,?Yv,?v,?v,m ,?r,?v,*k,*k  ,*rm,*k")
 	(match_operand:SI 1 "general_operand"
-    "g ,re,C ,*y,Bk ,*y,*y,r  ,C  ,?v,Bk,?v,?v,r  ,*r,*kBk,*k ,CBC"))]
+    "g ,re,C ,*y,Bk ,*y,*y,r  ,C  ,?v,Bk,?v,?v,r ,*r,*kBk,*k ,CBC"))]
   "!(MEM_P (operands[0]) && MEM_P (operands[1]))
    && ix86_hardreg_mov_ok (operands[0], operands[1])"
 {
@@ -2775,6 +2779,8 @@
   [(set (attr "isa")
      (cond [(eq_attr "alternative" "12,13")
 	      (const_string "sse2")
+	    (eq_attr "alternative" "14,15,16,17")
+	      (const_string "avx512bw")
 	   ]
 	   (const_string "*")))
    (set (attr "type")

commit 9a1daeb9cd5fb9093c031af85d9efa59ea5cd61a
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Sun Jan 19 22:29:21 2025 +0100

    i386: Reorder *movdi_internal ISA attribute by ascending alternative index
    
    Reorder ISA attribute by ascending alternative index. No functional change.
    
    gcc/ChangeLog:
    
            * config/i386/i386.md (*movdi_internal): Reorder ISA attribute
            by ascending alternative index.
    
    (cherry picked from commit 9d4b1e3772547c8c836638d09fc9a84c3c73e277)

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index adeb7cc54b2..a7508d47d9b 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -2551,10 +2551,10 @@
 	      (const_string "x64")
 	    (eq_attr "alternative" "19,20")
 	      (const_string "x64_sse2")
-	    (eq_attr "alternative" "23,25")
-	      (const_string "x64_avx512bw")
 	    (eq_attr "alternative" "21,22")
 	      (const_string "sse2")
+	    (eq_attr "alternative" "23,25")
+	      (const_string "x64_avx512bw")
 	    (eq_attr "alternative" "24,26,27")
 	      (const_string "avx512bw")
 	   ]

commit 7780f2cefec06fdf4ba521e656ee3af5addaf6f9
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Jan 20 00:23:17 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 61f3d434ecc..d8a87210b82 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,21 @@
+2025-01-19  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2025-01-19  Uros Bizjak  <ubizjak@gmail.com>
+
+	* config/i386/i386.md (*movdi_internal): Reorder ISA attribute
+	by ascending alternative index.
+
+2025-01-19  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2024-12-20  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/118067
+	* config/i386/i386.md (*movdi_internal):
+	Disable alternatives from/to mask registers without AVX512BW.
+	(*movsi_internal): Ditto.
+
 2025-01-17  Georg-Johann Lay  <avr@gjlay.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index df2e7f62043..1216e7215b8 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250119
+20250120
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 9e3fa78ca51..ce247c465da 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,12 @@
+2025-01-19  Simon Martin  <simon@nasilyan.com>
+
+	Backported from master:
+	2025-01-17  Simon Martin  <simon@nasilyan.com>
+
+	PR c++/118255
+	* name-lookup.cc (pushdecl): Don't call check_template_shadow
+	for hidden bindings.
+
 2025-01-17  Nathaniel Shead  <nathanieloshead@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 50acebb1dd5..745d371991a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2025-01-19  Simon Martin  <simon@nasilyan.com>
+
+	Backported from master:
+	2025-01-17  Simon Martin  <simon@nasilyan.com>
+
+	PR c++/118255
+	* g++.dg/lookup/pr99116-1.C: Adjust test expectation.
+	* g++.dg/template/friend84.C: New test.
+
 2025-01-17  Iain Buclaw  <ibuclaw@gdcproject.org>
 
 	Backported from master:

commit ffa44df6768368dc516c9626ec388a3561c7644f
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Mon Jan 20 20:01:03 2025 +0100

    d: Fix failing test with 32-bit compiler [PR114434]
    
    Since the introduction of gdc.test/runnable/test23514.d, it's exposed an
    incorrect compilation when adding a 64-bit constant to a link-time
    address.  The current cast to size_t causes a loss of precision, which
    can result in incorrect compilation.
    
            PR d/114434
    
    gcc/d/ChangeLog:
    
            * expr.cc (ExprVisitor::visit (PtrExp *)): Get the offset as a
            dinteger_t rather than a size_t.
            (ExprVisitor::visit (SymOffExp *)): Likewise.
    
    (cherry picked from commit 9ab38952a2033d6d4a8e31c3c4d2ab1a25a406c6)

diff --git a/gcc/d/expr.cc b/gcc/d/expr.cc
index d055e0b4025..733302f8e2e 100644
--- a/gcc/d/expr.cc
+++ b/gcc/d/expr.cc
@@ -1497,7 +1497,7 @@ public:
   void visit (PtrExp *e) final override
   {
     Type *tnext = NULL;
-    size_t offset;
+    dinteger_t offset;
     tree result;
 
     if (e->e1->op == EXP::add)
@@ -2072,7 +2072,7 @@ public:
   void visit (SymOffExp *e) final override
   {
     /* Build the address and offset of the symbol.  */
-    size_t soffset = e->isSymOffExp ()->offset;
+    dinteger_t soffset = e->isSymOffExp ()->offset;
     tree result = get_decl_tree (e->var);
     TREE_USED (result) = 1;
 

commit 696b87db7d56bb491e08822a7b4fb8463c45491e
Author: Joseph Myers <josmyers@redhat.com>
Date:   Mon Jan 20 21:24:59 2025 +0000

    Update gcc zh_CN.po
    
            * zh_CN.po: Update.

diff --git a/gcc/po/zh_CN.po b/gcc/po/zh_CN.po
index 5cead23a97c..b55fdf4bc08 100644
--- a/gcc/po/zh_CN.po
+++ b/gcc/po/zh_CN.po
@@ -36,7 +36,7 @@ msgstr ""
 "Project-Id-Version: gcc 14.2.0\n"
 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
 "POT-Creation-Date: 2024-07-25 16:23+0000\n"
-"PO-Revision-Date: 2024-12-03 09:31+0800\n"
+"PO-Revision-Date: 2025-01-09 15:04+0800\n"
 "Last-Translator: Zhanhaoxiang Zhang <zzhx2006@outlook.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
 "Language: zh_CN\n"
@@ -45,7 +45,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 3.4.2\n"
+"X-Generator: Poedit 3.5\n"
 
 #: cif-code.def:39
 msgid "function not considered for inlining"
@@ -3263,12 +3263,12 @@ msgstr "允许具有不同元素数量和/或元素类型的向量间的转换
 #: c-family/c.opt:1961
 #, no-c-format
 msgid "Enable C++ modules-ts (experimental)."
-msgstr ""
+msgstr "启用 C++ modules-ts（实验性）。"
 
 #: c-family/c.opt:1969
 #, no-c-format
 msgid "Enable C++ header module (experimental)."
-msgstr ""
+msgstr "启用 C++ 头文件模块（实验性）。"
 
 #: c-family/c.opt:1976
 #, no-c-format
@@ -4132,7 +4132,7 @@ msgstr ""
 #: d/lang.opt:337
 #, no-c-format
 msgid "-fmodule-file=<package.module>=<filespec>\tuse <filespec> as source file for <package.module>."
-msgstr ""
+msgstr "-fmodule-file=<package.module>=<filespec>\t使用 <filespec> 作为 <package.module> 的源文件。"
 
 #: d/lang.opt:341
 #, fuzzy, no-c-format
@@ -4340,7 +4340,7 @@ msgstr ""
 #: m2/lang.opt:39
 #, no-c-format
 msgid "compiler checks to force definition module procedure parameter names with their implementation module counterpart"
-msgstr ""
+msgstr "编译器检查以确保定义模块过程参数名称与其实现模块对应部分相匹配"
 
 #: m2/lang.opt:43
 #, no-c-format
@@ -4431,7 +4431,7 @@ msgstr ""
 #: m2/lang.opt:115
 #, no-c-format
 msgid "create a topologically sorted module list from all dependent modules used in the application"
-msgstr ""
+msgstr "从应用程序中使用的所有依赖模块创建一个拓扑排序的模块列表"
 
 #: m2/lang.opt:119 m2/lang.opt:211
 #, no-c-format
@@ -4496,7 +4496,7 @@ msgstr ""
 #: m2/lang.opt:171
 #, no-c-format
 msgid "compile all implementation modules and program module at once"
-msgstr ""
+msgstr "一次性编译所有实现模块和程序模块"
 
 #: m2/lang.opt:175
 #, fuzzy, no-c-format
@@ -4599,7 +4599,7 @@ msgstr "打印使用到的头文件名"
 #: m2/lang.opt:255
 #, no-c-format
 msgid "create a swig interface file for the module"
-msgstr ""
+msgstr "为模块创建一个 swig 接口文件"
 
 #: m2/lang.opt:259
 #, no-c-format
@@ -5477,10 +5477,9 @@ msgid "-allowable_client <name>\tThe output dylib is private to the client <name
 msgstr ""
 
 #: config/darwin.opt:106
-#, fuzzy, no-c-format
-#| msgid "Generate code for CR16C architecture."
+#, no-c-format
 msgid "-arch <name>\tGenerate output for architecture <name>."
-msgstr "为 CR16C 架构生成代码。"
+msgstr "-arch <name>\t为指定的 <name> 架构生成输出。"
 
 #: config/darwin.opt:110
 #, no-c-format
@@ -5647,7 +5646,7 @@ msgstr ""
 #: config/darwin.opt:242
 #, no-c-format
 msgid "Do not add a default symbol exports to modules or dynamic libraries."
-msgstr ""
+msgstr "不要向模块或动态库添加默认符号导出。"
 
 #: config/darwin.opt:246
 #, no-c-format
@@ -14556,10 +14555,9 @@ msgid "Display this information."
 msgstr "显示此信息。"
 
 #: common.opt:299
-#, fuzzy, no-c-format
-#| msgid "--help=<class>\tDisplay descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params"
+#, no-c-format
 msgid "--help=<class>\tDisplay descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params."
-msgstr "--help=<类型>\t显示一或多项特定类型选项的描述。类型可能是 optimizers、target、warnings、undocumented 或 params"
+msgstr "–help=<class>\t显示特定选项类的描述。其中 <class> 可以是以下之一：optimizers, target, warnings, undocumented, params。"
 
 #: common.opt:420
 #, no-c-format
@@ -19281,7 +19279,7 @@ msgstr "        包含自"
 
 #: diagnostic.cc:884
 msgid "In module"
-msgstr "在模块中"
+msgstr "在模块"
 
 #. 4
 #: diagnostic.cc:885
@@ -19290,12 +19288,12 @@ msgstr ""
 
 #: diagnostic.cc:886
 msgid "In module imported at"
-msgstr "在此处导入的模块中"
+msgstr "在模块中，它被导入于"
 
 #. 6
 #: diagnostic.cc:887
 msgid "imported at"
-msgstr "在此导入"
+msgstr "被导入于"
 
 #: diagnostic.cc:1592
 #, c-format
@@ -22586,7 +22584,7 @@ msgstr "或称"
 
 #: c/c-objc-common.cc:360
 msgid "({anonymous})"
-msgstr ""
+msgstr "({anonymous})"
 
 #. If we have
 #. declaration-specifiers declarator decl-specs
@@ -22778,7 +22776,7 @@ msgstr "需要通道"
 
 #: cp/call.cc:4136
 msgid "candidate:"
-msgstr "备选："
+msgstr "备选:"
 
 #: cp/call.cc:8333
 #, fuzzy
@@ -22789,15 +22787,15 @@ msgstr "启用用户自定义指令"
 #: cp/call.cc:8499 cp/pt.cc:2044 cp/pt.cc:26386
 msgid "candidate is:"
 msgid_plural "candidates are:"
-msgstr[0] "备选是："
+msgstr[0] "备选是:"
 
 #: cp/call.cc:13021 cp/call.cc:13447
 msgid "candidate 1:"
-msgstr "备选 1："
+msgstr "备选 1:"
 
 #: cp/call.cc:13023 cp/call.cc:13448
 msgid "candidate 2:"
-msgstr "备选 2："
+msgstr "备选 2:"
 
 #: cp/error.cc:464
 msgid "<missing>"
@@ -22984,7 +22982,7 @@ msgstr "空动态字符串替换"
 
 #: cp/error.cc:3742
 msgid "%s: In instantiation of %q#D:\n"
-msgstr "%s: 在%q#D的实例化中: \n"
+msgstr "%s：在实例化 %q#D 时:\n"
 
 #: cp/error.cc:3767 cp/error.cc:3925
 msgid "%r%s:%d:%d:%R   "
@@ -23038,13 +23036,12 @@ msgid "%r%s:%d:%d:%R   in %<constexpr%> expansion of %qs"
 msgstr "%s:%d:%d：在%qs的广义常表达式扩展中"
 
 #: cp/error.cc:3913
-#, fuzzy
 msgid "%r%s:%d:%R   in %<constexpr%> expansion of %qs"
-msgstr "%s:%d：在%qs的广义常表达式扩展中"
+msgstr "%r%s:%d:%R   在 %<constexpr%> 展开中的 %qs"
 
 #: cp/pt.cc:2042 cp/semantics.cc:6308
 msgid "candidates are:"
-msgstr "备选为："
+msgstr "备选为:"
 
 #: cp/rtti.cc:592
 msgid "target is not pointer or reference to class"
@@ -27153,10 +27150,9 @@ msgid "%<lp_array%> does not match %<region_tree%>"
 msgstr "lp_array 不匹配 region_tree"
 
 #: except.cc:3541 tree.cc:14434 value-prof.cc:529
-#, fuzzy, gcc-internal-format
-#| msgid "open %s failed: %s"
+#, gcc-internal-format
 msgid "%qs failed"
-msgstr "打开 %s 失败：%s"
+msgstr "%qs 失败"
 
 #: explow.cc:1563
 #, gcc-internal-format
@@ -30621,10 +30617,9 @@ msgid "OpenMP %<requires%> directive with non-identical clauses in multiple comp
 msgstr ""
 
 #: lto-cgraph.cc:1947 lto-cgraph.cc:1948 lto-cgraph.cc:1954
-#, fuzzy, gcc-internal-format
-#| msgid "%s %qs"
+#, gcc-internal-format
 msgid "%qs has %qs"
-msgstr "%s%qs"
+msgstr "%qs 具有 %qs"
 
 #: lto-cgraph.cc:1952
 #, gcc-internal-format
@@ -30742,9 +30737,9 @@ msgid "%s - %u-bit integer numbers unsupported (mode %qs)"
 msgstr ""
 
 #: lto-streamer-in.cc:2125
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s - unsupported mode %qs"
-msgstr "不支持的组合：%s"
+msgstr "%s - 不支持的模式 %qs"
 
 #: lto-streamer-out.cc:561 lto-streamer-out.cc:913
 #, fuzzy, gcc-internal-format
@@ -35076,10 +35071,9 @@ msgid "%<TYPE_METHOD_BASETYPE%> is not main variant"
 msgstr ""
 
 #: tsan.cc:509
-#, fuzzy, gcc-internal-format
-#| msgid "%s does not support %s"
+#, gcc-internal-format
 msgid "%qs is not supported with %qs"
-msgstr "%s 不支持 %s"
+msgstr "%qs 不支持与 %qs 一起使用"
 
 #: value-prof.cc:488
 #, gcc-internal-format
@@ -37555,9 +37549,9 @@ msgid "extra type qualifiers in format argument (argument %d)"
 msgstr "格式字符串实参 %d 有多余的类型限定"
 
 #: c-family/c-format.cc:4771
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s %<%s%.*s%> expects argument of type %<%s%s%>, but argument %d has type %qT"
-msgstr "格式%q.*s需要类型%<%s%s%>，但实参 %d 的类型为%qT"
+msgstr "格式 %s %<%s%.*s%> 需要类型 %<%s%s%>，但实参 %d 的类型为 %qT"
 
 #: c-family/c-format.cc:4780
 #, fuzzy, gcc-internal-format
@@ -37565,9 +37559,9 @@ msgid "%s %<%s%.*s%> expects a matching %<%s%s%> argument"
 msgstr "%s: “%s” 而不需吻合中 “ifdef” 或 “ifndef” "
 
 #: c-family/c-format.cc:4790
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s %<%s%.*s%> expects argument of type %<%T%s%>, but argument %d has type %qT"
-msgstr "格式%q.*s需要类型%<%s%s%>，但实参 %d 的类型为%qT"
+msgstr "格式 %s %<%s%.*s%> 需要类型 %<%T%s%>，但实参 %d 的类型为 %qT"
 
 #: c-family/c-format.cc:4799
 #, fuzzy, gcc-internal-format
@@ -37591,10 +37585,9 @@ msgid "%<locus%> is not defined as a type"
 msgstr "%<locus%>未被定义为一个类型"
 
 #: c-family/c-format.cc:5027
-#, fuzzy, gcc-internal-format
-#| msgid "%<locus%> is not defined as a type"
+#, gcc-internal-format
 msgid "%qs is not defined as a type"
-msgstr "%<locus%>未被定义为一个类型"
+msgstr "%qs 没有被定义为一个类型"
 
 #: c-family/c-format.cc:5053
 #, gcc-internal-format
@@ -38427,9 +38420,9 @@ msgid "did you mean %<-%s%>?"
 msgstr ""
 
 #: c-family/c-pragma.cc:990
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not an option that controls warnings"
-msgstr "%qs对%qs而言无效"
+msgstr "%qs 不是一个控制警告的选项"
 
 #: c-family/c-pragma.cc:1001
 #, fuzzy, gcc-internal-format
@@ -38716,10 +38709,9 @@ msgid "logical %<and%> of equal expressions"
 msgstr "对两个互斥的测试取逻辑%<and%>的结果永远为假"
 
 #: c-family/c-warn.cc:409
-#, fuzzy, gcc-internal-format
-#| msgid "user-defined %qD always evaluates both arguments"
+#, gcc-internal-format
 msgid "bitwise comparison always evaluates to false"
-msgstr "用户定义的%qD总是计算所有两个参数"
+msgstr "按位比较总是评估为假"
 
 #: c-family/c-warn.cc:412
 #, fuzzy, gcc-internal-format
@@ -38734,10 +38726,9 @@ msgid "self-comparison always evaluates to true"
 msgstr "用户定义的%qD总是计算所有两个参数"
 
 #: c-family/c-warn.cc:520
-#, fuzzy, gcc-internal-format
-#| msgid "user-defined %qD always evaluates both arguments"
+#, gcc-internal-format
 msgid "self-comparison always evaluates to false"
-msgstr "用户定义的%qD总是计算所有两个参数"
+msgstr "与自身比较总是评估为假"
 
 #: c-family/c-warn.cc:571
 #, gcc-internal-format
@@ -39677,10 +39668,9 @@ msgid "unrecognized %<-mfpu%> target: %s"
 msgstr "无法识别的地址"
 
 #: common/config/arm/arm-common.cc:536
-#, fuzzy, gcc-internal-format
-#| msgid "%s does not support %s"
+#, gcc-internal-format
 msgid "%qs does not support feature %qs"
-msgstr "%s 不支持 %s"
+msgstr "%qs 不支持特性 %qs"
 
 #: common/config/arm/arm-common.cc:547
 #, fuzzy, gcc-internal-format
@@ -40810,9 +40800,9 @@ msgid "duplicate definition of %qs"
 msgstr "删除了%qD的定义"
 
 #: config/aarch64/aarch64-sve-builtins.cc:4717
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs defined without first defining %qs"
-msgstr "此函数中的%qD在使用前未初始化"
+msgstr "在未先定义 %2$qs 的情况下定义了 %1$qs"
 
 #: config/aarch64/aarch64-sve-builtins.cc:4868
 #, fuzzy, gcc-internal-format
@@ -42313,14 +42303,14 @@ msgid "%<asm%> flags not supported in thumb1 mode"
 msgstr "32 位系统不支持 -mcmodel="
 
 #: config/avr/avr-c.cc:65 config/avr/avr-c.cc:190
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs expects 1 argument but %d given"
-msgstr "%qs需要一个常量实参"
+msgstr "%qs 需要 1 个参数，但给出了 %d 个"
 
 #: config/avr/avr-c.cc:76
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs expects a fixed-point value as argument"
-msgstr "%qs需要一个常量实参"
+msgstr "%qs 需要一个定点值作为参数"
 
 #: config/avr/avr-c.cc:102
 #, fuzzy, gcc-internal-format
@@ -42333,19 +42323,19 @@ msgid "no matching fixed-point overload found for %qs"
 msgstr "没有找到与%qD匹配的模板"
 
 #: config/avr/avr-c.cc:124
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs expects 2 arguments but %d given"
-msgstr "%qs需要一个常量实参"
+msgstr "%qs 需要 2 个参数，但给出了 %d 个"
 
 #: config/avr/avr-c.cc:136 config/avr/avr-c.cc:201
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs expects a fixed-point value as first argument"
-msgstr "%qs需要一个常量实参"
+msgstr "%qs 需要一个定点值作为第一个参数"
 
 #: config/avr/avr-c.cc:144
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs expects an integer value as second argument"
-msgstr "%qs需要一个常量实参"
+msgstr "%qs 需要一个整数值作为第二个参数"
 
 #: config/avr/avr-devices.cc:152
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -42387,14 +42377,14 @@ msgid "function attributes %qs and %qs are mutually exclusive"
 msgstr "-flto and -fwhopr 互斥"
 
 #: config/avr/avr.cc:1478 config/riscv/riscv.cc:9742
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs function cannot have arguments"
-msgstr "%qD不能有默认参数"
+msgstr "%qs 函数不能有参数"
 
 #: config/avr/avr.cc:1481 config/riscv/riscv.cc:9739
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs function cannot return a value"
-msgstr "不正确的函数返回值"
+msgstr "%qs 函数不能有返回值"
 
 #: config/avr/avr.cc:1495
 #, fuzzy, gcc-internal-format
@@ -44408,10 +44398,9 @@ msgstr ""
 
 #: config/loongarch/loongarch-opts.cc:281
 #: config/loongarch/loongarch-opts.cc:286
-#, fuzzy, gcc-internal-format
-#| msgid "%qE does not have class type"
+#, gcc-internal-format
 msgid "%qs does not work on a cross compiler"
-msgstr "%qE不是一个类"
+msgstr "%qs 在交叉编译器上不起作用"
 
 #: config/loongarch/loongarch-opts.cc:375
 #, fuzzy, gcc-internal-format
@@ -46156,15 +46145,14 @@ msgid "%qs is not a valid base register in %qs"
 msgstr "%qs没有指定类名"
 
 #: config/riscv/riscv.cc:9403 config/rs6000/rs6000.cc:4492
-#, fuzzy, gcc-internal-format
-#| msgid "%qs is not valid for %qs"
+#, gcc-internal-format
 msgid "%qs is not a valid number in %qs"
-msgstr "%qs对%qs而言无效"
+msgstr "在 %2$qs 中，%1$qs 不是一个有效的数字"
 
 #: config/riscv/riscv.cc:9801
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs function cannot have different interrupt type"
-msgstr "%qD不能有默认参数"
+msgstr "%qs 函数不能有不同类型的中断"
 
 #: config/riscv/riscv.cc:10327
 #, fuzzy, gcc-internal-format
@@ -48142,9 +48130,9 @@ msgid "storage class specifier in empty declaration with %<enum%> underlying typ
 msgstr "空声明中指定存储类无用"
 
 #: c/c-decl.cc:5119
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs in empty declaration with %<enum%> underlying type"
-msgstr "带有类型限定的空声明没有重声明标记"
+msgstr "%qs 在带有 %<enum%> 底层类型的空声明中出现"
 
 #: c/c-decl.cc:5129
 #, fuzzy, gcc-internal-format
@@ -49738,9 +49726,9 @@ msgid "%qT defined in underspecified object declaration"
 msgstr "友元函数声明中出现了%<inline%>"
 
 #: c/c-parser.cc:2379
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs in empty declaration"
-msgstr "空声明中类型名无用"
+msgstr "%qs 在空的声明中出现"
 
 #: c/c-parser.cc:2393
 #, fuzzy, gcc-internal-format
@@ -49868,10 +49856,9 @@ msgid "static assertion failed: %E"
 msgstr "静态断言错误：%E"
 
 #: c/c-parser.cc:3164 cp/semantics.cc:11749
-#, fuzzy, gcc-internal-format
-#| msgid "static assertion failed: %E"
+#, gcc-internal-format
 msgid "static assertion failed"
-msgstr "静态断言错误：%E"
+msgstr "静态断言错误"
 
 #: c/c-parser.cc:3543
 #, fuzzy, gcc-internal-format
@@ -50275,10 +50262,9 @@ msgid "%qE is not a valid %<asm%> qualifier"
 msgstr "需要一个类模板，却给出了%qE"
 
 #: c/c-parser.cc:8668
-#, fuzzy, gcc-internal-format
-#| msgid "expected %<,%> or %<)%>"
+#, gcc-internal-format
 msgid "expected %<:%> or %<)%>"
-msgstr "需要 %<,%> 或 %<)%>"
+msgstr "需要 %<:%> 或 %<)%>"
 
 #: c/c-parser.cc:8967 cp/parser.cc:4706
 #, gcc-internal-format
@@ -50897,10 +50883,9 @@ msgid "expression must be integral"
 msgstr "调度块大小表达式必须为整型"
 
 #: c/c-parser.cc:15536 c/c-parser.cc:15548
-#, fuzzy, gcc-internal-format
-#| msgid "expected %<,%> or %<)%>"
+#, gcc-internal-format
 msgid "expected %<)%> or %<,%>"
-msgstr "需要 %<,%> 或 %<)%>"
+msgstr "需要 %<)%> 或 %<,%>"
 
 #: c/c-parser.cc:15746 c/c-parser.cc:26636
 #, gcc-internal-format
@@ -51028,9 +51013,9 @@ msgid "too many %<defaultmap%> clauses with unspecified category"
 msgstr "太多的%qs子句"
 
 #: c/c-parser.cc:16765 cp/semantics.cc:7683 cp/semantics.cc:7738
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs expression must be integral"
-msgstr "调度块大小表达式必须为整型"
+msgstr "%qs 表达式必须是整型"
 
 #: c/c-parser.cc:16777 c/c-parser.cc:16900 cp/semantics.cc:7717
 #: cp/semantics.cc:7752
@@ -54283,16 +54268,16 @@ msgid "  no known conversion for argument %d from %qH to %qI"
 msgstr "  对于参数 %d 没有已知的从 %qH 到 %qI 的转换"
 
 #: cp/call.cc:3927 cp/pt.cc:7123
-#, fuzzy, gcc-internal-format, gfc-internal-format
+#, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects at least %d argument, %d provided"
 msgid_plural "  candidate expects at least %d arguments, %d provided"
-msgstr[0] " 备选需要 %d 实参，但提供了 %d 个"
+msgstr[0] "  备选需要至少 %d 个实参，但提供了 %d 个"
 
 #: cp/call.cc:3932 cp/pt.cc:7128
 #, gcc-internal-format, gfc-internal-format
 msgid "  candidate expects %d argument, %d provided"
 msgid_plural "  candidate expects %d arguments, %d provided"
-msgstr[0] " 备选需要 %d 实参，但提供了 %d 个"
+msgstr[0] " 备选需要 %d 个实参，但提供了 %d 个"
 
 #: cp/call.cc:3960
 #, fuzzy, gcc-internal-format
@@ -54354,10 +54339,9 @@ msgid "%s%#qD"
 msgstr "%s%#D"
 
 #: cp/call.cc:3989
-#, fuzzy, gcc-internal-format
-#| msgid "  when initialized here"
+#, gcc-internal-format
 msgid "  inherited here"
-msgstr "在此处初始化后被初始化"
+msgstr "  在此处继承"
 
 #: cp/call.cc:4010
 #, fuzzy, gcc-internal-format
@@ -54509,9 +54493,9 @@ msgid "%qs"
 msgstr "重复的%qs"
 
 #: cp/call.cc:5520
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs in %<%s %E%>"
-msgstr "%Xbfd_openr %s: %E\n"
+msgstr "%qs 在 %<%s %E%> 中"
 
 #: cp/call.cc:5526
 #, fuzzy, gcc-internal-format
@@ -55568,19 +55552,19 @@ msgid "  %qT is a closure type, which is only literal in C++17 and later"
 msgstr ""
 
 #: cp/class.cc:6236 rust/backend/rust-tree.cc:6087
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %q+T has a non-trivial destructor"
-msgstr "基类%q#T有一个非虚析构函数"
+msgstr "  %q+T 有一个非平凡的析构函数"
 
 #: cp/class.cc:6239 rust/backend/rust-tree.cc:6084
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %q+T does not have %<constexpr%> destructor"
-msgstr "友元声明没有指定类或函数名"
+msgstr "  %q+T 没有一个 %<constexpr%> 析构函数"
 
 #: cp/class.cc:6247 rust/backend/rust-tree.cc:6092
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %q+T is not an aggregate, does not have a trivial default constructor, and has no %<constexpr%> constructor that is not a copy or move constructor"
-msgstr "  %q+T 不是汇总，没有 trivial 缺省构造函数，而没有任何 constexpr 建构子该并非复制或移动建构子"
+msgstr "  %q+T 不是一个聚合类型，没有平凡的默认构造函数，并且没有非复制或移动构造的 %<constexpr%> 构造函数"
 
 #: cp/class.cc:6280 rust/backend/rust-tree.cc:6124
 #, fuzzy, gcc-internal-format
@@ -55908,10 +55892,9 @@ msgid "the comparison reduces to %qE"
 msgstr "%qE实参太多"
 
 #: cp/constexpr.cc:2089
-#, fuzzy, gcc-internal-format
-#| msgid "user-defined %qD always evaluates both arguments"
+#, gcc-internal-format
 msgid "%qE evaluates to false"
-msgstr "用户定义的%qD总是计算所有两个参数"
+msgstr "%qE 总是评估为假"
 
 #: cp/constexpr.cc:2168
 #, gcc-internal-format
@@ -56137,54 +56120,54 @@ msgid "accessing %qD member instead of initialized %qD member in constant expres
 msgstr "初始值设定中数组索引不是整型常量表达式"
 
 #: cp/constexpr.cc:4790
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a union type"
-msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
+msgstr "%qs 不是一个常量表达式，因为 %qT 是一个联合体类型"
 
 #: cp/constexpr.cc:4793
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a union type"
-msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
+msgstr "%qs 不是一个常量表达式，因为 %qT 包含了一个联合体类型"
 
 #: cp/constexpr.cc:4804
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer type"
-msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
+msgstr "%qs 不是一个常量表达式，因为 %qT 是一个指针类型"
 
 #: cp/constexpr.cc:4807
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer type"
-msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
+msgstr "%qs 不是一个常量表达式，因为 %qT 包含了一个指针类型"
 
 #: cp/constexpr.cc:4818
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a reference type"
-msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
+msgstr "%qs 不是一个常量表达式，因为 %qT 是一个引用类型"
 
 #: cp/constexpr.cc:4821
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a reference type"
-msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
+msgstr "%qs 不是一个常量表达式，因为 %qT 包含了一个引用类型"
 
 #: cp/constexpr.cc:4832
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is a pointer to member type"
-msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
+msgstr "%qs 不是一个常量表达式，因为 %qT 是一个指向成员类型的指针"
 
 #: cp/constexpr.cc:4836
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a pointer to member type"
-msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
+msgstr "%qs 不是一个常量表达式，因为 %qT 包含了一个指向成员类型的指针"
 
 #: cp/constexpr.cc:4847
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not a constant expression because %qT is volatile"
-msgstr "typeid-expression 并非常数运算式因为 %qE 是的 polymorphic 类型"
+msgstr "%qs 不是一个常量表达式，因为 %qT 具有 volatile 属性"
 
 #: cp/constexpr.cc:4850
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not a constant expression because %qT contains a volatile subobject"
-msgstr "%qT 无法类型的完成常数运算式因为它有可变的 sub-objects"
+msgstr "%qs 不是一个常量表达式，因为 %qT 包含了一个 volatile 子对象"
 
 #: cp/constexpr.cc:5005
 #, fuzzy, gcc-internal-format
@@ -56770,21 +56753,19 @@ msgid "definition of concept %qD has multiple statements"
 msgstr ""
 
 #: cp/constraint.cc:3724
-#, fuzzy, gcc-internal-format
-#| msgid "%qD is not a variable"
+#, gcc-internal-format
 msgid "  %qT is not nothrow copy assignable"
-msgstr "%qD不是一个变量"
+msgstr "  %qT 无法进行nothrow复制赋值"
 
 #: cp/constraint.cc:3727 cp/constraint.cc:3812
-#, fuzzy, gcc-internal-format
-#| msgid "%q#T has no user-provided default constructor"
+#, gcc-internal-format
 msgid "  %qT is not nothrow default constructible"
-msgstr "%q#T没有用户提供的默认构造函数"
+msgstr "  %qT 无法进行nothrow默认构造"
 
 #: cp/constraint.cc:3730
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not nothrow copy constructible"
-msgstr "基类%q#T有一个非虚析构函数"
+msgstr "  %qT 无法进行nothrow复制构造"
 
 #: cp/constraint.cc:3733
 #, fuzzy, gcc-internal-format
@@ -56809,14 +56790,14 @@ msgid "  %qT is not trivially destructible"
 msgstr "基类%q#T有一个非虚析构函数"
 
 #: cp/constraint.cc:3745
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT does not have unique object representations"
-msgstr "new 声明中的表达式必须具有整数或枚举类型"
+msgstr "  %qT 没有唯一的对象表示"
 
 #: cp/constraint.cc:3748
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT does not have a virtual destructor"
-msgstr "基类%q#T有一个非虚析构函数"
+msgstr "  %qT 没有一个虚析构函数"
 
 #: cp/constraint.cc:3751
 #, gcc-internal-format
@@ -56834,9 +56815,9 @@ msgid "  %qT is not an array"
 msgstr "  %qT 不是一个数组"
 
 #: cp/constraint.cc:3760
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not assignable from %qT"
-msgstr "派生联合%qT无效"
+msgstr "  %qT 不能从 %qT 赋值"
 
 #: cp/constraint.cc:3763
 #, gcc-internal-format
@@ -56854,20 +56835,19 @@ msgid "  %qT is not a class"
 msgstr "  %qT 不是一个类"
 
 #: cp/constraint.cc:3773
-#, fuzzy, gcc-internal-format
-#| msgid "type %qE has no default constructor to call"
+#, gcc-internal-format
 msgid "  %qT is not default constructible"
-msgstr "类型%qE没有可以调用的默认构造函数"
+msgstr "  %qT 无法默认构造"
 
 #: cp/constraint.cc:3775
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not constructible from %qE"
-msgstr "派生联合%qT无效"
+msgstr "  %qT 不能从 %qE 构造"
 
 #: cp/constraint.cc:3778
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not convertible from %qE"
-msgstr "派生联合%qT无效"
+msgstr "  %qT 不能从 %qE 转换"
 
 #: cp/constraint.cc:3781
 #, gcc-internal-format
@@ -56890,9 +56870,9 @@ msgid "  %qT is not a function"
 msgstr "  %qT 不是一个函数"
 
 #: cp/constraint.cc:3793
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not layout compatible with %qT"
-msgstr "选择%qD而不是%qD"
+msgstr "  %qT 与 %qT 的内存布局不兼容"
 
 #: cp/constraint.cc:3796
 #, gcc-internal-format
@@ -56915,19 +56895,19 @@ msgid "  %qT is not a member pointer"
 msgstr "  %qT 不是一个成员指针"
 
 #: cp/constraint.cc:3808
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not nothrow assignable from %qT"
-msgstr "派生联合%qT无效"
+msgstr "  %qT 无法从 %qT 进行nothrow赋值"
 
 #: cp/constraint.cc:3814
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not nothrow constructible from %qE"
-msgstr "派生联合%qT无效"
+msgstr "  %qT 无法从 %qE 进行nothrow构造"
 
 #: cp/constraint.cc:3817
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is not nothrow convertible from %qE"
-msgstr "派生联合%qT无效"
+msgstr "  %qT 无法从 %qE 进行nothrow转换"
 
 #: cp/constraint.cc:3820
 #, gcc-internal-format
@@ -56936,9 +56916,8 @@ msgstr " %qT 不是一个对象类型"
 
 #: cp/constraint.cc:3823
 #, fuzzy, gcc-internal-format
-#| msgid "%qT is not an accessible base of %qT"
 msgid "  %qT is not pointer-interconvertible base of %qT"
-msgstr "%qT是%qT的一个不可访问的基类"
+msgstr "  %qT 不是 %qT 的指针可互转基类"
 
 #: cp/constraint.cc:3827
 #, gcc-internal-format
@@ -56956,10 +56935,9 @@ msgid "  %qT is not a reference"
 msgstr "  %qT 不是一个引用"
 
 #: cp/constraint.cc:3836
-#, fuzzy, gcc-internal-format
-#| msgid "%qT is not a base of %qT"
+#, gcc-internal-format
 msgid "  %qT is not the same as %qT"
-msgstr "%qT不是%qT的基类"
+msgstr "  %qT 与 %qT 不相同"
 
 #: cp/constraint.cc:3839
 #, gcc-internal-format
@@ -57007,9 +56985,9 @@ msgid "  %qT is not a reference that binds to a temporary object of type %qT (co
 msgstr ""
 
 #: cp/constraint.cc:3871
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qD is not deducible from %qT"
-msgstr "派生联合%qT无效"
+msgstr "  %qD 无法从 %qT 推导"
 
 #: cp/constraint.cc:3898
 #, fuzzy, gcc-internal-format
@@ -58349,15 +58327,14 @@ msgid "  enters %<consteval if%> statement"
 msgstr "  需要语句"
 
 #: cp/decl.cc:3838 cp/decl.cc:4012
-#, fuzzy, gcc-internal-format
-#| msgid "ISO C99 does not support %qE"
+#, gcc-internal-format
 msgid "  does not destroy %qD"
-msgstr "ISO C99 不支持 %qE"
+msgstr "  未销毁 %qD"
 
 #: cp/decl.cc:3840 cp/decl.cc:3995
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  does not clean up handled exception"
-msgstr "new 声明中的表达式必须具有整数或枚举类型"
+msgstr "  未清理已处理的异常"
 
 #: cp/decl.cc:3931
 #, gcc-internal-format
@@ -58637,7 +58614,7 @@ msgstr "出现在类外的%q#D的声明不是定义"
 #: cp/decl.cc:6106
 #, gcc-internal-format
 msgid "block-scope extern declaration %q#D must not be attached to a named module"
-msgstr ""
+msgstr "块作用域的 extern 声明 %q#D 不能附加到命名的模块上"
 
 #: cp/decl.cc:6142
 #, fuzzy, gcc-internal-format
@@ -59987,9 +59964,9 @@ msgid "requires-clause on return type"
 msgstr "%qE属性在类型上被忽略"
 
 #: cp/decl.cc:13451
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs function uses %<auto%> type specifier without trailing return type"
-msgstr "%qs函数使用了%<auto%>类型限定却没有迟返回类型"
+msgstr "%qs 函数使用了 %<auto%> 类型说明符，但没有后续的返回类型"
 
 #: cp/decl.cc:13455
 #, fuzzy, gcc-internal-format
@@ -60578,9 +60555,9 @@ msgid "%qs defined in a non-class scope"
 msgstr "%qs定义在在非类作用域中"
 
 #: cp/decl.cc:15076
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs declared in a non-class scope"
-msgstr "%qs定义在在非类作用域中"
+msgstr "%qs 在非类作用域中声明"
 
 #: cp/decl.cc:15119
 #, gcc-internal-format
@@ -62646,7 +62623,7 @@ msgstr ""
 #: cp/module.cc:14384
 #, gcc-internal-format
 msgid "cannot import module in its own purview"
-msgstr ""
+msgstr "不能在模块自己的范围内导入模块"
 
 #: cp/module.cc:14385 cp/module.cc:19710
 #, gcc-internal-format
@@ -62760,10 +62737,12 @@ msgstr "函数属性不匹配"
 msgid "interface partition is not exported"
 msgstr "不支持堆栈限制表达式"
 
+# 还有可能是：
+# 读取编译后的模块集群 %u: %s 失败
 #: cp/module.cc:18749
-#, gcc-internal-format, gfc-internal-format
+#, fuzzy, gcc-internal-format, gfc-internal-format
 msgid "failed to read compiled module cluster %u: %s"
-msgstr ""
+msgstr "读取编译后的模块集群 %u 失败：%s"
 
 #: cp/module.cc:18787
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -62774,7 +62753,7 @@ msgstr "找不到类‘%s’"
 #: cp/module.cc:18797
 #, gcc-internal-format
 msgid "consider using %<-fno-module-lazy%>, increasing %<-param-lazy-modules=%u%> value, or increasing the per-process file descriptor limit"
-msgstr ""
+msgstr "考虑使用 %<-fno-module-lazy%>，增加 %<-param-lazy-modules=%u%> 的值，或者提高每个进程的文件描述符限制"
 
 #: cp/module.cc:18802
 #, gcc-internal-format
@@ -62923,7 +62902,7 @@ msgstr ""
 #: cp/module.cc:20339
 #, gcc-internal-format
 msgid "C++ modules are incompatible with precompiled headers"
-msgstr ""
+msgstr "C++ 模块与预编译头文件不兼容"
 
 #: cp/module.cc:20343
 #, fuzzy, gcc-internal-format
@@ -62961,7 +62940,7 @@ msgstr "无效的 --param 值%qs"
 #: cp/module.cc:20630
 #, gcc-internal-format
 msgid "%<-fmodule-only%> used for non-interface"
-msgstr ""
+msgstr "%<-fmodule-only%> 用于非接口"
 
 #: cp/module.cc:20670
 #, fuzzy, gcc-internal-format
@@ -62971,9 +62950,8 @@ msgstr "写入%qs时错误"
 
 #: cp/module.cc:20677
 #, fuzzy, gcc-internal-format
-#| msgid "Error writing modules file: %s"
 msgid "not writing module %qs due to errors"
-msgstr "写入模块文件时出错：%s"
+msgstr "未写入模块文件 %qs 因为错误"
 
 #: cp/module.cc:20742
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -63042,16 +63020,14 @@ msgid "friend declaration %qD in local class without prior local declaration"
 msgstr "本地类中的友元声明%qD没有先前声明"
 
 #: cp/name-lookup.cc:4569
-#, fuzzy, gcc-internal-format
-#| msgid "%s %s(%E) %p %d\n"
+#, gcc-internal-format
 msgid "%s %<%s(%E)%> %p %d"
-msgstr "%s %s(%E) %p %d\n"
+msgstr "%s %<%s(%E)%> %p %d"
 
 #: cp/name-lookup.cc:4572
-#, fuzzy, gcc-internal-format
-#| msgid "%s %s %p %d\n"
+#, gcc-internal-format
 msgid "%s %s %p %d"
-msgstr "%s %s %p %d\n"
+msgstr "%s %s %p %d"
 
 #: cp/name-lookup.cc:5158
 #, fuzzy, gcc-internal-format
@@ -63548,7 +63524,7 @@ msgstr "带作用域的枚举只在 -std=c++0x 或 -std=gnu++0x 下可用"
 #: cp/parser.cc:3739
 #, gcc-internal-format
 msgid "C++20 %qE only available with %<-fmodules-ts%>, which is not yet enabled with %<-std=c++20%>"
-msgstr ""
+msgstr "C++20 %qE 仅在 %<-fmodules-ts%> 下可用，但目前尚未通过 %<-std=c++20%> 启用"
 
 #: cp/parser.cc:3745
 #, fuzzy, gcc-internal-format
@@ -63709,10 +63685,9 @@ msgid "expected binary operator"
 msgstr "需要操作符"
 
 #: cp/parser.cc:5659
-#, fuzzy, gcc-internal-format
-#| msgid "expected %<...%>"
+#, gcc-internal-format
 msgid "expected ..."
-msgstr "需要%<...%>"
+msgstr "需要 ..."
 
 #: cp/parser.cc:5671
 #, fuzzy, gcc-internal-format
@@ -64433,7 +64408,7 @@ msgstr ""
 #: cp/parser.cc:15287
 #, gcc-internal-format
 msgid "%qE may only occur after a module interface declaration"
-msgstr ""
+msgstr "%qE 只能在模块接口声明之后出现"
 
 #: cp/parser.cc:15295
 #, fuzzy, gcc-internal-format
@@ -64444,7 +64419,7 @@ msgstr "类型不能定义在异常声明中"
 #: cp/parser.cc:15316
 #, gcc-internal-format
 msgid "%<export%> not part of following module-directive"
-msgstr ""
+msgstr "%<export%> 不是以下模块指令的一部分"
 
 #: cp/parser.cc:15403 cp/parser.cc:28020
 #, gcc-internal-format
@@ -64946,9 +64921,9 @@ msgid "declaration of enumeration with fixed underlying type and no enumerator l
 msgstr ""
 
 #: cp/parser.cc:21622
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "expected %<;%> or %<{%>"
-msgstr "需要 %<;%>、%<,%> 或 %<)%>"
+msgstr "需要 %<;%> 或 %<{%>"
 
 #: cp/parser.cc:21665
 #, fuzzy, gcc-internal-format
@@ -66451,9 +66426,9 @@ msgid "specialization of %qD after instantiation"
 msgstr "%qD的特例化在实例化之后"
 
 #: cp/pt.cc:2047 cp/semantics.cc:6314
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%s %#qD"
-msgstr "%s%#D"
+msgstr "%s %#qD"
 
 #: cp/pt.cc:2183
 #, gcc-internal-format
@@ -66945,9 +66920,9 @@ msgid "because it is a member of %qT"
 msgstr "%qD不是%qT的成员"
 
 #: cp/pt.cc:7016
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  couldn%'t deduce template parameter %qD"
-msgstr "%qD声明时模板参数表太多"
+msgstr "  无法推导模板参数 %qD"
 
 #: cp/pt.cc:7025
 #, fuzzy, gcc-internal-format
@@ -66970,24 +66945,24 @@ msgid "  template argument %qE does not match pointer-to-member constant %qE"
 msgstr "给%qD的模板实参不匹配原先的模板%qD"
 
 #: cp/pt.cc:7064
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qE is not equivalent to %qE"
-msgstr "%qE属性为%qE所忽略"
+msgstr "  %qE 与 %qE 不等价"
 
 #: cp/pt.cc:7073
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  inconsistent parameter pack deduction with %qT and %qT"
-msgstr "对%qT不一致的演绎：先是%qT然后是%qT"
+msgstr "  使用 %qT 和 %qT 进行参数包推导时出现不一致"
 
 #: cp/pt.cc:7085
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  deduced conflicting types for parameter %qT (%qT and %qT)"
-msgstr "Lambda 返回类型演绎得到不一致的类型%qT和%qT"
+msgstr "  对于参数 %qT 推导出了相互冲突的类型（%qT 和 %qT）"
 
 #: cp/pt.cc:7089
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  deduced conflicting values for non-type parameter %qE (%qE and %qE)"
-msgstr "  deduced 冲突值用于 non-type 参数 %qE (%qE 和 %qE)"
+msgstr "  对于非类型参数 %qE 推导出了相互冲突的值（%qE 和 %qE）"
 
 #: cp/pt.cc:7100
 #, fuzzy, gcc-internal-format
@@ -67005,9 +66980,9 @@ msgid "  cannot convert %qE (type %qT) to type %qT"
 msgstr "  无法将 %qE (类型为 %qT) 转换为类型 %qT"
 
 #: cp/pt.cc:7167
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "  %qT is an ambiguous base class of %qT"
-msgstr "%qT是%qT的有歧义的基类"
+msgstr "  %qT 是 %qT 的一个模糊的基类"
 
 #: cp/pt.cc:7171
 #, gcc-internal-format
@@ -67561,9 +67536,8 @@ msgid "ambiguous template instantiation for %q#D"
 msgstr "有歧义的模板特例化%qD(为%q+D)"
 
 #: cp/pt.cc:26391
-#, fuzzy
 msgid "%s %#qS"
-msgstr "张贴被搁置的文章 [%%s]？(%s/%s/%s/%s/%s)："
+msgstr "%s %#qS"
 
 #: cp/pt.cc:26418 cp/pt.cc:26513
 #, gcc-internal-format
@@ -67991,7 +67965,7 @@ msgstr "虚函数在此声明"
 #: cp/semantics.cc:1114
 #, gcc-internal-format
 msgid "%<std::is_constant_evaluated%> always evaluates to true in %<if constexpr%>"
-msgstr ""
+msgstr "%<std::is_constant_evaluated%> 在 %<if constexpr%> 中总是评估为真"
 
 #: cp/semantics.cc:1120
 #, gcc-internal-format
@@ -68006,12 +67980,12 @@ msgstr ""
 #: cp/semantics.cc:1130
 #, gcc-internal-format
 msgid "%<std::is_constant_evaluated%> always evaluates to false in a non-%<constexpr%> function"
-msgstr ""
+msgstr "%<std::is_constant_evaluated%> 在一个非 %<constexpr%> 函数中总是评估为假"
 
 #: cp/semantics.cc:1134
 #, gcc-internal-format
 msgid "%<std::is_constant_evaluated%> always evaluates to true in a %<consteval%> function"
-msgstr ""
+msgstr "%<std::is_constant_evaluated%> 在一个 %<consteval%> 函数中总是评估为真"
 
 #: cp/semantics.cc:1351
 #, gcc-internal-format
@@ -68616,9 +68590,9 @@ msgid "%<static_assert%> message %<data()%> must be a core constant expression"
 msgstr "%K%D 的第一个实参必须是一个指针，第二个必须是整常量"
 
 #: cp/semantics.cc:11751
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "static assertion failed: %.*s"
-msgstr "静态断言错误：%E"
+msgstr "静态断言错误：%.*s"
 
 #: cp/semantics.cc:11759
 #, gcc-internal-format
@@ -70601,9 +70575,9 @@ msgid "don%'t know how to delete %qs"
 msgstr "未知的 TLS 模型 %qs"
 
 #: d/expr.cc:1445
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs is not an associative array"
-msgstr "%qD不是一个变量"
+msgstr "%qs 不是一个关联数组"
 
 #: d/expr.cc:1729 d/expr.cc:2109
 #, gcc-internal-format
@@ -70617,10 +70591,9 @@ msgid "delegates are only for non-static functions"
 msgstr "%qD通常不是一个静态函数"
 
 #: d/expr.cc:1883
-#, fuzzy, gcc-internal-format
-#| msgid "%qs is not valid for %qs"
+#, gcc-internal-format
 msgid "%qs is not a field, but a %qs"
-msgstr "%qs对%qs而言无效"
+msgstr "%qs 不是一个字段，而是一个 %qs"
 
 #: d/expr.cc:2135
 #, fuzzy, gcc-internal-format
@@ -70634,10 +70607,9 @@ msgid "non-constant expression %qs"
 msgstr "常量表达式溢出"
 
 #: d/expr.cc:2994
-#, fuzzy, gcc-internal-format
-#| msgid "%qE is not a constant expression"
+#, gcc-internal-format
 msgid "%qs is not an expression"
-msgstr "%qE不是一个常量表达式"
+msgstr "%qs 不是一个表达式"
 
 #: d/expr.cc:3001
 #, fuzzy, gcc-internal-format
@@ -72959,9 +72931,9 @@ msgid "%qs at %C is a DEC extension, enable with %<-fdec-structure%>"
 msgstr "为结构字段%2$qE指定了%1$qs"
 
 #: fortran/decl.cc:2654
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs entity cannot have attributes at %C"
-msgstr "%qD不能有默认参数"
+msgstr "%qs 实体在 %C 处不能有属性"
 
 #: fortran/decl.cc:2664
 #, fuzzy, gcc-internal-format
@@ -72993,12 +72965,12 @@ msgstr ""
 #: fortran/decl.cc:2882
 #, gcc-internal-format
 msgid "%qs at %C is a redefinition of the declaration in the corresponding interface for MODULE PROCEDURE %qs"
-msgstr ""
+msgstr "%qs 在 %C 处是对对应接口中 MODULE PROCEDURE %qs 声明的重新定义"
 
 #: fortran/decl.cc:2893
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs entity cannot have an initializer at %C"
-msgstr "哑元‘%s’在%L处不能有初始值设定"
+msgstr "%qs 实体在 %C 处不能有初始化器"
 
 #: fortran/decl.cc:2918 fortran/decl.cc:9015
 #, gcc-internal-format, gfc-internal-format
@@ -73921,9 +73893,9 @@ msgid "Unexpected character in variable list at %C"
 msgstr "%C处变量列表中有非预期的垃圾字符"
 
 #: fortran/decl.cc:8932
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "Expected %<(%> at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要%<(%>"
 
 #: fortran/decl.cc:8946 fortran/decl.cc:8986
 #, gcc-internal-format, gfc-internal-format
@@ -73956,9 +73928,9 @@ msgid "Expected \")\" at %C"
 msgstr "在%C处需要“)”"
 
 #: fortran/decl.cc:9047
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "Expected %<,%> or end of statement at %C"
-msgstr "%C处非预期的 END 语句"
+msgstr "在%C处需要%<,%>或"
 
 #: fortran/decl.cc:9073
 #, gcc-internal-format, gfc-internal-format
@@ -74405,9 +74377,9 @@ msgid "GENERIC at %C must be inside a derived-type CONTAINS"
 msgstr "%C处的 GENERIC 必须是在派生类型 CONTAINS 内"
 
 #: fortran/decl.cc:11486
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "Expected %<::%> at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要%<::%>"
 
 #: fortran/decl.cc:11498
 #, gcc-internal-format, gfc-internal-format
@@ -74470,9 +74442,9 @@ msgid "Expected module procedure name at %C"
 msgstr "%C处期待模块过程名"
 
 #: fortran/decl.cc:11736
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "Expected %<,%> at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要%<,%>"
 
 #: fortran/decl.cc:11742
 #, fuzzy, gcc-internal-format
@@ -77371,9 +77343,9 @@ msgid "Association target at %L cannot be a BOZ literal constant"
 msgstr "‘我’于 %L 和‘J’于 %L 无法两者是 BOZ 实字常数"
 
 #: fortran/match.cc:1980
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "Expected %<)%> or %<,%> at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要 %<)%> 或 %<,%>"
 
 #: fortran/match.cc:1998
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -78329,7 +78301,7 @@ msgstr ""
 #: fortran/module.cc:5119
 #, gcc-internal-format, gfc-internal-format
 msgid "Ambiguous !$OMP DECLARE REDUCTION from module %s at %L"
-msgstr ""
+msgstr "来自模块 %s 在 %L 处的 !$OMP DECLARE REDUCTION 存在歧义"
 
 #: fortran/module.cc:5122
 #, gcc-internal-format, gfc-internal-format
@@ -78499,17 +78471,17 @@ msgstr "%2$C处打开的文件的‘%1$s’并非一个 GFORTRAN 模块文件"
 #: fortran/module.cc:7417
 #, gcc-internal-format
 msgid "Cannot read module file %qs opened at %C, because it was created by a different version of GNU Fortran"
-msgstr ""
+msgstr "无法读取在 %2$C 处打开的模块文件 %1$qs，因为它是由不同版本的 GNU Fortran 创建的"
 
 #: fortran/module.cc:7434
 #, gcc-internal-format
 msgid "Cannot USE a submodule that is currently built"
-msgstr ""
+msgstr "不能使用正在构建的子模块"
 
 #: fortran/module.cc:7436
 #, gcc-internal-format
 msgid "Cannot USE a module that is currently built"
-msgstr ""
+msgstr "不能使用正在构建的模块"
 
 #: fortran/openmp.cc:150 fortran/openmp.cc:7113
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -78635,9 +78607,9 @@ msgid "Invalid %qs directive at %L in %s clause: declarative, informational and
 msgstr ""
 
 #: fortran/openmp.cc:1612
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "Expected %<,%> or %<)%> at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要%<,%>或%<)%>"
 
 #: fortran/openmp.cc:1638 fortran/openmp.cc:1648
 #, gcc-internal-format
@@ -78683,9 +78655,9 @@ msgstr ""
 
 #: fortran/openmp.cc:1972 fortran/openmp.cc:2008 fortran/openmp.cc:2418
 #: fortran/openmp.cc:2443
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "Expected %<:%> at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要%<:%>"
 
 #: fortran/openmp.cc:2032
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -79143,9 +79115,9 @@ msgstr "需要整数表达式"
 
 #: fortran/openmp.cc:5706 fortran/openmp.cc:5803 fortran/openmp.cc:5934
 #: fortran/openmp.cc:6084 fortran/openmp.cc:6112
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "expected %<)%> at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要%<)%>"
 
 #: fortran/openmp.cc:5728
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -79170,9 +79142,9 @@ msgstr ""
 
 #: fortran/openmp.cc:5781 fortran/openmp.cc:5944 fortran/openmp.cc:6036
 #: fortran/openmp.cc:6103
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "expected %<(%> at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要%<(%>"
 
 #: fortran/openmp.cc:5789
 #, fuzzy, gcc-internal-format
@@ -79186,10 +79158,9 @@ msgid "%<score%> argument must be non-negative at %C"
 msgstr "%2$L处 %1$s 函数的参数是负的"
 
 #: fortran/openmp.cc:5809
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "Expected \",\" at %C"
+#, gcc-internal-format, gfc-internal-format
 msgid "expected : at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要“:”"
 
 #: fortran/openmp.cc:5831
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -79243,14 +79214,14 @@ msgid "expected %<=%> at %C"
 msgstr "在%C处需要“,”"
 
 #: fortran/openmp.cc:5999
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "expected %<{%> at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要%<{%>"
 
 #: fortran/openmp.cc:6014
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "expected %<}%> at %C"
-msgstr "在%C处需要“,”"
+msgstr "在%C处需要%<}%>"
 
 #: fortran/openmp.cc:6043
 #, fuzzy, gcc-internal-format, gfc-internal-format
@@ -82014,9 +81985,9 @@ msgid "Intrinsic subroutine %qs at %L shall not have a type specifier"
 msgstr "%2$L处的内建子例程‘%1$s’不应该有类型限定符"
 
 #: fortran/resolve.cc:1920
-#, fuzzy, gcc-internal-format
+#, gcc-internal-format
 msgid "%qs declared INTRINSIC at %L does not exist"
-msgstr "%2$L 处‘%1$s’声明的 INTRINSIC 不存在"
+msgstr "在 %2$L 声明的内联函数 %1$qs 不存在"
 
 #: fortran/resolve.cc:1933
 #, fuzzy, gcc-internal-format
@@ -83463,10 +83434,9 @@ msgid "Automatic array %qs at %L cannot have an initializer"
 msgstr "自动数组‘%s’在%L处不能有初始值设定"
 
 #: fortran/resolve.cc:13935
-#, fuzzy, gcc-internal-format, gfc-internal-format
-#| msgid "in %s, at %s:%d"
+#, gcc-internal-format, gfc-internal-format
 msgid "%s at %L"
-msgstr "在 %s 中，于 %s:%d"
+msgstr "%s 于 %L"
 
 #: fortran/resolve.cc:13967
 #, fuzzy, gcc-internal-format
@@ -83586,7 +83556,7 @@ msgstr ""
 #: fortran/resolve.cc:14294
 #, gcc-internal-format
 msgid "%s between the MODULE PROCEDURE declaration in MODULE %qs and the declaration at %L in (SUB)MODULE %qs"
-msgstr ""
+msgstr "%1$s 在 MODULE %4$qs 中的 MODULE PROCEDURE 声明与在 (SUB)MODULE %2$qs 中的 %3$L 处的声明之间"
 
 #: fortran/resolve.cc:14318
 #, fuzzy, gcc-internal-format
@@ -85801,16 +85771,14 @@ msgid "empty file"
 msgstr ""
 
 #: go/gofrontend/embed.cc:392 go/gofrontend/embed.cc:521
-#, fuzzy, gcc-internal-format
-#| msgid "expected %<;%>"
+#, gcc-internal-format
 msgid "expected %<\"%>"
-msgstr "需要%<;%>"
+msgstr "需要%<\"%>"
 
 #: go/gofrontend/embed.cc:475
-#, fuzzy, gcc-internal-format
-#| msgid "expected %<,%> or %<)%>"
+#, gcc-internal-format
 msgid "expected %<,%> or %<]%>"
-msgstr "需要 %<,%> 或 %<)%>"
+msgstr "需要 %<,%> 或 %<]%>"
 
 #: go/gofrontend/embed.cc:507
 #, gcc-internal-format

commit 3f9d6afecbf93445580bd647bfe3d78d1c08828a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Jan 21 00:23:29 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 1216e7215b8..309e1782f83 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250120
+20250121
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
index e97a0f4cc73..362e39e5bcb 100644
--- a/gcc/d/ChangeLog
+++ b/gcc/d/ChangeLog
@@ -1,3 +1,13 @@
+2025-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	Backported from master:
+	2025-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	PR d/114434
+	* expr.cc (ExprVisitor::visit (PtrExp *)): Get the offset as a
+	dinteger_t rather than a size_t.
+	(ExprVisitor::visit (SymOffExp *)): Likewise.
+
 2025-01-16  Iain Buclaw  <ibuclaw@gdcproject.org>
 
 	Backported from master:
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 15e832e10ee..ce2186d1b2b 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2025-01-20  Joseph Myers  <josmyers@redhat.com>
+
+	* zh_CN.po: Update.
+
 2024-12-03  Joseph Myers  <josmyers@redhat.com>
 
 	* zh_CN.po: Update.

commit a82352a2a074230d841a3944e30bd497726e0bfa
Author: Nathaniel Shead <nathanieloshead@gmail.com>
Date:   Fri Jan 17 21:29:08 2025 +1100

    c++/modules: Propagate FNDECL_USED_AUTO when propagating deduced return types [PR118049]
    
    In the linked testcase, we're erroring because the declared return types
    of the functions do not appear to match.  This is because when merging
    the deduced return types for 'foo' in 'auto-5_b.C', we overwrote the
    return type for the declaration with the deduced return type from
    'auto-5_a.C' but neglected to track that we were originally declared
    with 'auto'.
    
    As a drive-by improvement to QOI, also add checks for if the deduced
    return types do not match; this is currently useful because we do not
    check the equivalence of the bodies of functions yet.
    
            PR c++/118049
    
    gcc/cp/ChangeLog:
    
            * module.cc (trees_in::is_matching_decl): Propagate
            FNDECL_USED_AUTO as well.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/modules/auto-5_a.C: New test.
            * g++.dg/modules/auto-5_b.C: New test.
            * g++.dg/modules/auto-5_c.C: New test.
            * g++.dg/modules/auto-6_a.H: New test.
            * g++.dg/modules/auto-6_b.C: New test.
    
    Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
    (cherry picked from commit f054c36c4fcb693e04411dc691ef4172479143d6)

diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index a9b771c3935..62a864dcd5a 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -11592,8 +11592,13 @@ trees_in::is_matching_decl (tree existing, tree decl, bool is_typedef)
 	{
 	  dump (dumper::MERGE)
 	    && dump ("Propagating deduced return type to %N", existing);
+	  FNDECL_USED_AUTO (e_inner) = true;
+	  DECL_SAVED_AUTO_RETURN_TYPE (existing) = TREE_TYPE (e_type);
 	  TREE_TYPE (existing) = change_return_type (TREE_TYPE (d_type), e_type);
 	}
+      else if (type_uses_auto (d_ret)
+	       && !same_type_p (TREE_TYPE (d_type), TREE_TYPE (e_type)))
+	goto mismatch;
     }
   else if (is_typedef)
     {
diff --git a/gcc/testsuite/g++.dg/modules/auto-5_a.C b/gcc/testsuite/g++.dg/modules/auto-5_a.C
new file mode 100644
index 00000000000..39e9fa0f45e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/auto-5_a.C
@@ -0,0 +1,10 @@
+// PR c++/118049
+// { dg-additional-options "-fmodules-ts -Wno-global-module" }
+// { dg-module-cmi A }
+
+module;
+template <typename T> struct S {
+  auto foo() {}
+};
+export module A;
+template struct S<char>;
diff --git a/gcc/testsuite/g++.dg/modules/auto-5_b.C b/gcc/testsuite/g++.dg/modules/auto-5_b.C
new file mode 100644
index 00000000000..23e22009cee
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/auto-5_b.C
@@ -0,0 +1,14 @@
+// PR c++/118049
+// { dg-additional-options "-fmodules-ts -Wno-global-module" }
+// { dg-module-cmi B }
+
+module;
+template <typename T> struct S {
+  auto foo() {}
+};
+template struct S<char>;
+export module B;
+import A;
+template <typename> void x() {
+  S<char>{}.foo();
+}
diff --git a/gcc/testsuite/g++.dg/modules/auto-5_c.C b/gcc/testsuite/g++.dg/modules/auto-5_c.C
new file mode 100644
index 00000000000..34dcaad4dc2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/auto-5_c.C
@@ -0,0 +1,4 @@
+// PR c++/118049
+// { dg-additional-options "-fmodules-ts -fno-module-lazy" }
+
+import B;
diff --git a/gcc/testsuite/g++.dg/modules/auto-6_a.H b/gcc/testsuite/g++.dg/modules/auto-6_a.H
new file mode 100644
index 00000000000..3ad08ab81ce
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/auto-6_a.H
@@ -0,0 +1,5 @@
+// { dg-additional-options "-fmodule-header" }
+
+inline auto foo() {
+  return 1;
+}
diff --git a/gcc/testsuite/g++.dg/modules/auto-6_b.C b/gcc/testsuite/g++.dg/modules/auto-6_b.C
new file mode 100644
index 00000000000..aab7be4e530
--- /dev/null
+++ b/gcc/testsuite/g++.dg/modules/auto-6_b.C
@@ -0,0 +1,6 @@
+// { dg-additional-options "-fmodules-ts -fno-module-lazy" }
+
+inline auto foo() {  // { dg-error "conflicting" }
+  return 1.0;
+}
+import "auto-6_a.H";

commit 0e4f03c6701f6ef9493c78cf3bbf4aa8e41cf04b
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Jan 22 00:18:24 2025 +0100

    c++: Wrap force_target_expr in get_member_function_from_ptrfunc with save_expr [PR118509]
    
    My October PR117259 fix to get_member_function_from_ptrfunc to use a
    TARGET_EXPR rather than SAVE_EXPR unfortunately caused some regressions as
    well as the following testcase shows.
    What happens is that
    get_member_function_from_ptrfunc -> build_base_path calls save_expr,
    so since the PR117259 change in mnay cases it will call save_expr on
    a TARGET_EXPR.  And, for some strange reason a TARGET_EXPR is not considered
    an invariant, so we get a SAVE_EXPR wrapped around the TARGET_EXPR.
    That SAVE_EXPR <TARGET_EXPR <...>> gets initially added only to the second
    operand of ?:, so at that point it would still work fine during expansion.
    But unfortunately an expression with that subexpression is handed to the
    caller also through *instance_ptrptr = instance_ptr; and gets evaluated
    once again when computing the first argument to the method.
    So, essentially, we end up with
    (TARGET_EXPR <D.2907, ...>, (... ? ... SAVE_EXPR <TARGET_EXPR <D.2907, ...>
     ... : ...)) (... SAVE_EXPR <TARGET_EXPR <D.2907, ...> ..., ...);
    and while D.2907 is initialized during gimplification in the code dominating
    everything that uses it, the extra temporary created for the SAVE_EXPR
    is initialized only conditionally (if the ?: condition is true) but then
    used unconditionally, so we get
    pmf-4.C: In function ‘void foo(C, B*)’:
    pmf-4.C:12:11: warning: ‘<anonymous>’ may be used uninitialized [-Wmaybe-uninitialized]
       12 |   (y->*x) ();
          |   ~~~~~~~~^~
    pmf-4.C:12:11: note: ‘<anonymous>’ was declared here
       12 |   (y->*x) ();
          |   ~~~~~~~~^~
    diagnostic and wrong-code issue too.
    
    As the trunk fix to just treat TARGET_EXPR as invariant seems a little bit risky
    and I'd like to get it tested on the trunk for a while, for 14.2.1 this patch
    instead wraps those TARGET_EXPRs into SAVE_EXPRs.  Eventually that can be reverted
    and the trunk fix backported.
    
    2025-01-21  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/118509
            * typeck.cc (get_member_function_from_ptrfunc): Wrap force_target_expr
            with save_expr.
    
            * g++.dg/expr/pmf-4.C: New test.

diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc
index ebb4c8b7bb9..e32e4a7b7ac 100644
--- a/gcc/cp/typeck.cc
+++ b/gcc/cp/typeck.cc
@@ -4187,8 +4187,8 @@ get_member_function_from_ptrfunc (tree *instance_ptrptr, tree function,
 	      && !DECL_P (instance_ptr)
 	      && !TREE_CONSTANT (instance_ptr)))
 	instance_ptr = instance_save_expr
-	  = force_target_expr (TREE_TYPE (instance_ptr), instance_ptr,
-			       complain);
+	  = save_expr (force_target_expr (TREE_TYPE (instance_ptr),
+					  instance_ptr, complain));
 
       /* See above comment.  */
       if (TREE_SIDE_EFFECTS (function)
@@ -4196,7 +4196,8 @@ get_member_function_from_ptrfunc (tree *instance_ptrptr, tree function,
 	      && !DECL_P (function)
 	      && !TREE_CONSTANT (function)))
 	function
-	  = force_target_expr (TREE_TYPE (function), function, complain);
+	  = save_expr (force_target_expr (TREE_TYPE (function), function,
+					  complain));
 
       /* Start by extracting all the information from the PMF itself.  */
       e3 = pfn_from_ptrmemfunc (function);
diff --git a/gcc/testsuite/g++.dg/expr/pmf-4.C b/gcc/testsuite/g++.dg/expr/pmf-4.C
new file mode 100644
index 00000000000..87c9be18f70
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/pmf-4.C
@@ -0,0 +1,22 @@
+// PR c++/118509
+// { dg-do run }
+// { dg-options "-Wall -O2" }
+
+struct A { void foo () { a = 1; } int a; A () : a (0) {} };
+struct B : virtual A {};
+typedef void (A::*C) ();
+
+__attribute__((noipa)) void
+foo (C x, B *y)
+{
+  (y->*x) ();
+}
+
+int
+main ()
+{
+  B b;
+  foo (&A::foo, &b);
+  if (b.a != 1)
+    __builtin_abort ();
+}

commit 0d9479e1a7f0b6f27e9f285e023cd6873356db47
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Jan 22 00:26:41 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 309e1782f83..b0aec664e8d 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250121
+20250122
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ce247c465da..11f2ecac404 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,18 @@
+2025-01-21  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/118509
+	* typeck.cc (get_member_function_from_ptrfunc): Wrap force_target_expr
+	with save_expr.
+
+2025-01-21  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	Backported from master:
+	2025-01-17  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/118049
+	* module.cc (trees_in::is_matching_decl): Propagate
+	FNDECL_USED_AUTO as well.
+
 2025-01-19  Simon Martin  <simon@nasilyan.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 745d371991a..17d2a943fe7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,20 @@
+2025-01-21  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/118509
+	* g++.dg/expr/pmf-4.C: New test.
+
+2025-01-21  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	Backported from master:
+	2025-01-17  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/118049
+	* g++.dg/modules/auto-5_a.C: New test.
+	* g++.dg/modules/auto-5_b.C: New test.
+	* g++.dg/modules/auto-5_c.C: New test.
+	* g++.dg/modules/auto-6_a.H: New test.
+	* g++.dg/modules/auto-6_b.C: New test.
+
 2025-01-19  Simon Martin  <simon@nasilyan.com>
 
 	Backported from master:

commit 51761b3b8b98e1b9ca02ae293de00644da83b85d
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Wed Jan 22 15:23:54 2025 +0000

    aarch64: Detect word-level modification in early-ra [PR118184]
    
    REGMODE_NATURAL_SIZE is set to 64 bits for everything except
    VLA SVE modes.  This means that it's possible to modify (say)
    the highpart of a TI pseudo or a V2DI pseudo independently
    of the lowpart.  Modifying such highparts requires a reload
    if the highpart ends up in the upper 64 bits of an FPR,
    since RTL semantics do not allow the highpart of a single
    hard register to be modified independently of the lowpart.
    
    early-ra missed a check for this case, which meant that it
    effectively treated an assignment to (subreg:DI (reg:TI R) 0)
    as an assignment to the whole of R.
    
    gcc/
            PR target/118184
            * config/aarch64/aarch64-early-ra.cc (allocno_assignment_is_rmw):
            New function.
            (early_ra::record_insn_defs): Mark the live range information as
            untrustworthy if an assignment would change part of an allocno
            but preserve the rest.
    
    gcc/testsuite/
            * gcc.dg/torture/pr118184.c: New test.

diff --git a/gcc/config/aarch64/aarch64-early-ra.cc b/gcc/config/aarch64/aarch64-early-ra.cc
index 1e2c823cb2e..dd2ed762f8a 100644
--- a/gcc/config/aarch64/aarch64-early-ra.cc
+++ b/gcc/config/aarch64/aarch64-early-ra.cc
@@ -1933,6 +1933,43 @@ early_ra::record_artificial_refs (unsigned int flags)
   m_current_point += 1;
 }
 
+// Return true if:
+//
+// - X is a SUBREG, in which case it is a SUBREG of some REG Y
+//
+// - one 64-bit word of Y can be modified while preserving all other words
+//
+// - X refers to no more than one 64-bit word of Y
+//
+// - assigning FPRs to Y would put more than one 64-bit word in each FPR
+//
+// For example, this is true of:
+//
+// - (subreg:DI (reg:TI R) 0) and
+// - (subreg:DI (reg:TI R) 8)
+//
+// but is not true of:
+//
+// - (subreg:V2SI (reg:V2x2SI R) 0) or
+// - (subreg:V2SI (reg:V2x2SI R) 8).
+static bool
+allocno_assignment_is_rmw (rtx x)
+{
+  if (partial_subreg_p (x))
+    {
+      auto outer_mode = GET_MODE (x);
+      auto inner_mode = GET_MODE (SUBREG_REG (x));
+      if (known_eq (REGMODE_NATURAL_SIZE (inner_mode), 0U + UNITS_PER_WORD)
+	  && known_lt (GET_MODE_SIZE (outer_mode), UNITS_PER_VREG))
+	{
+	  auto nregs = targetm.hard_regno_nregs (V0_REGNUM, inner_mode);
+	  if (maybe_ne (nregs * UNITS_PER_WORD, GET_MODE_SIZE (inner_mode)))
+	    return true;
+	}
+    }
+  return false;
+}
+
 // Model the register references in INSN as part of a backwards walk.
 void
 early_ra::record_insn_refs (rtx_insn *insn)
@@ -1945,9 +1982,21 @@ early_ra::record_insn_refs (rtx_insn *insn)
       record_fpr_def (DF_REF_REGNO (ref));
     else
       {
-	auto range = get_allocno_subgroup (DF_REF_REG (ref));
+	rtx reg = DF_REF_REG (ref);
+	auto range = get_allocno_subgroup (reg);
 	for (auto &allocno : range.allocnos ())
 	  {
+	    // Make sure that assigning to the DF_REF_REG clobbers the
+	    // whole of this allocno, not just some of it.
+	    if (allocno_assignment_is_rmw (reg))
+	      {
+		m_allocation_successful = false;
+		if (dump_file && (dump_flags & TDF_DETAILS))
+		  fprintf (dump_file, "read-modify-write of allocno %d",
+			   allocno.id);
+		break;
+	      }
+
 	    // If the destination is unused, record a momentary blip
 	    // in its live range.
 	    if (!bitmap_bit_p (m_live_allocnos, allocno.id))
diff --git a/gcc/testsuite/gcc.dg/torture/pr118184.c b/gcc/testsuite/gcc.dg/torture/pr118184.c
new file mode 100644
index 00000000000..5933e2a1222
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr118184.c
@@ -0,0 +1,36 @@
+/* { dg-do run { target { float128 && lp64 } } } */
+
+union u1
+{
+  _Float128 ld;
+  unsigned long l[2];
+};
+
+[[gnu::noipa]]
+unsigned long m()
+{
+  return 1000;
+}
+
+[[gnu::noinline]]
+_Float128 f(void)
+{
+  union u1 u;
+  u.ld = __builtin_nanf128("");
+  u.l[0] = m();
+  return u.ld;
+}
+
+int main()
+{
+   union u1 u;
+   u.ld = f();
+   union u1 u2;
+   u2.ld = __builtin_nanf128("");
+   u2.l[0] = m();
+   if (u.l[0] != u2.l[0])
+     __builtin_abort();
+   if (u.l[1] != u2.l[1])
+     __builtin_abort();
+   return 0;
+}

commit 3228df20cfa3581015dc32657eb17d6f24af3104
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Wed Jan 22 15:23:54 2025 +0000

    rtl: Remove invalid compare simplification [PR117186]
    
    g:d882fe5150fbbeb4e44d007bb4964e5b22373021, posted at
    https://gcc.gnu.org/pipermail/gcc-patches/2000-July/033786.html ,
    added code to treat:
    
      (set (reg:CC cc) (compare:CC (gt:M (reg:CC cc) 0) (lt:M (reg:CC cc) 0)))
    
    as a nop.  This PR shows that that isn't always correct.
    The compare in the set above is between two 0/1 booleans (at least
    on STORE_FLAG_VALUE==1 targets), whereas the unknown comparison that
    produced the incoming (reg:CC cc) is unconstrained; it could be between
    arbitrary integers, or even floats.  The fold is therefore replacing a
    cc that is valid for both signed and unsigned comparisons with one that
    is only known to be valid for signed comparisons.
    
      (gt (compare (gt cc 0) (lt cc 0) 0)
    
    does simplify to:
    
      (gt cc 0)
    
    but:
    
      (gtu (compare (gt cc 0) (lt cc 0) 0)
    
    does not simplify to:
    
      (gtu cc 0)
    
    The optimisation didn't come with a testcase, but it was added for
    i386's cmpstrsi, now cmpstrnsi.  That probably doesn't matter as much
    as it once did, since it's now conditional on -minline-all-stringops.
    But the patch is almost 25 years old, so whatever the original
    motivation was, it seems likely that other things now rely on it.
    
    It therefore seems better to try to preserve the optimisation on rtl
    rather than get rid of it.  To do that, we need to look at how the
    result of the outer compare is used.  We'd therefore be looking at four
    instructions (the gt, the lt, the compare, and the use of the compare),
    but combine already allows that for 3-instruction combinations thanks
    to:
    
      /* If the source is a COMPARE, look for the use of the comparison result
         and try to simplify it unless we already have used undobuf.other_insn.  */
    
    When applied to boolean inputs, a comparison operator is
    effectively a boolean logical operator (AND, ANDNOT, XOR, etc.).
    simplify_logical_relational_operation already had code to simplify
    logical operators between two comparison results, but:
    
    * It only handled IOR, which doesn't cover all the cases needed here.
      The others are easily added.
    
    * It treated comparisons of integers as having an ORDERED/UNORDERED result.
      Therefore:
    
      * it would not treat "true for LT + EQ + GT" as "always true" for
        comparisons between integers, because the mask excluded the UNORDERED
        condition.
    
      * it would try to convert "true for LT + GT" into LTGT even for comparisons
        between integers.  To prevent an ICE later, the code used:
    
           /* Many comparison codes are only valid for certain mode classes.  */
           if (!comparison_code_valid_for_mode (code, mode))
             return 0;
    
        However, this used the wrong mode, since "mode" is here the integer
        result of the comparisons (and the mode of the IOR), not the mode of
        the things being compared.  Thus the effect was to reject all
        floating-point-only codes, even when comparing floats.
    
      I think instead the code should detect whether the comparison is between
      integer values and remove UNORDERED from consideration if so.  It then
      always produces a valid comparison (or an always true/false result),
      and so comparison_code_valid_for_mode is not needed.  In particular,
      "true for LT + GT" becomes NE for comparisons between integers but
      remains LTGT for comparisons between floats.
    
    * There was a missing check for whether the comparison inputs had
      side effects.
    
    While there, it also seemed worth extending
    simplify_logical_relational_operation to unsigned comparisons, since
    that makes the testing easier.
    
    As far as that testing goes: the patch exhaustively tests all
    combinations of integer comparisons in:
    
      (cmp1 (cmp2 X Y) (cmp3 X Y))
    
    for the 10 integer comparisons, giving 1000 fold attempts in total.
    It then tries all combinations of (X in {-1,0,1} x Y in {-1,0,1})
    on the result of the fold, giving 9 checks per fold, or 9000 in total.
    That's probably more than is typical for self-tests, but it seems to
    complete in neglible time, even for -O0 builds.
    
    gcc/
            PR rtl-optimization/117186
            * rtl.h (simplify_context::simplify_logical_relational_operation): Add
            an invert0_p parameter.
            * simplify-rtx.cc (unsigned_comparison_to_mask): New function.
            (mask_to_unsigned_comparison): Likewise.
            (comparison_code_valid_for_mode): Delete.
            (simplify_context::simplify_logical_relational_operation): Add
            an invert0_p parameter.  Handle AND and XOR.  Handle unsigned
            comparisons.  Handle always-false results.  Ignore the low bit
            of the mask if the operands are always ordered and remove the
            then-redundant check of comparison_code_valid_for_mode.  Check
            for side-effects in the operands before simplifying them away.
            (simplify_context::simplify_binary_operation_1): Remove
            simplification of (compare (gt ...) (lt ...)) and instead...
            (simplify_context::simplify_relational_operation_1): ...handle
            comparisons of comparisons here.
            (test_comparisons): New function.
            (test_scalar_ops): Call it.
    
    gcc/testsuite/
            PR rtl-optimization/117186
            * gcc.dg/torture/pr117186.c: New test.
            * gcc.target/aarch64/pr117186.c: Likewise.

diff --git a/gcc/rtl.h b/gcc/rtl.h
index 2370d608161..eda96329a58 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -3464,7 +3464,8 @@ private:
   rtx simplify_byte_swapping_operation (rtx_code, machine_mode, rtx, rtx);
   rtx simplify_associative_operation (rtx_code, machine_mode, rtx, rtx);
   rtx simplify_distributive_operation (rtx_code, machine_mode, rtx, rtx);
-  rtx simplify_logical_relational_operation (rtx_code, machine_mode, rtx, rtx);
+  rtx simplify_logical_relational_operation (rtx_code, machine_mode, rtx, rtx,
+					     bool = false);
   rtx simplify_binary_operation_series (rtx_code, machine_mode, rtx, rtx);
   rtx simplify_distribute_over_subregs (rtx_code, machine_mode, rtx, rtx);
   rtx simplify_shift_const_int (rtx_code, machine_mode, rtx, unsigned int);
diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc
index 729d408aa55..48c07a22841 100644
--- a/gcc/simplify-rtx.cc
+++ b/gcc/simplify-rtx.cc
@@ -2408,6 +2408,61 @@ simplify_context::simplify_associative_operation (rtx_code code,
   return 0;
 }
 
+/* If COMPARISON can be treated as an unsigned comparison, return a mask
+   that represents it (8 if it includes <, 4 if it includes > and 2
+   if it includes ==).  Return 0 otherwise.  */
+static int
+unsigned_comparison_to_mask (rtx_code comparison)
+{
+  switch (comparison)
+    {
+    case LTU:
+      return 8;
+    case GTU:
+      return 4;
+    case EQ:
+      return 2;
+
+    case LEU:
+      return 10;
+    case GEU:
+      return 6;
+
+    case NE:
+      return 12;
+
+    default:
+      return 0;
+    }
+}
+
+/* Reverse the mapping in unsigned_comparison_to_mask, going from masks
+   to comparisons.  */
+static rtx_code
+mask_to_unsigned_comparison (int mask)
+{
+  switch (mask)
+    {
+    case 8:
+      return LTU;
+    case 4:
+      return GTU;
+    case 2:
+      return EQ;
+
+    case 10:
+      return LEU;
+    case 6:
+      return GEU;
+
+    case 12:
+      return NE;
+
+    default:
+      gcc_unreachable ();
+    }
+}
+
 /* Return a mask describing the COMPARISON.  */
 static int
 comparison_to_mask (enum rtx_code comparison)
@@ -2492,53 +2547,6 @@ mask_to_comparison (int mask)
     }
 }
 
-/* Return true if CODE is valid for comparisons of mode MODE, false
-   otherwise.
-
-   It is always safe to return false, even if the code was valid for the
-   given mode as that will merely suppress optimizations.  */
-
-static bool
-comparison_code_valid_for_mode (enum rtx_code code, enum machine_mode mode)
-{
-  switch (code)
-    {
-      /* These are valid for integral, floating and vector modes.  */
-      case NE:
-      case EQ:
-      case GE:
-      case GT:
-      case LE:
-      case LT:
-	return (INTEGRAL_MODE_P (mode)
-		|| FLOAT_MODE_P (mode)
-		|| VECTOR_MODE_P (mode));
-
-      /* These are valid for floating point modes.  */
-      case LTGT:
-      case UNORDERED:
-      case ORDERED:
-      case UNEQ:
-      case UNGE:
-      case UNGT:
-      case UNLE:
-      case UNLT:
-	return FLOAT_MODE_P (mode);
-
-      /* These are filtered out in simplify_logical_operation, but
-	 we check for them too as a matter of safety.   They are valid
-	 for integral and vector modes.  */
-      case GEU:
-      case GTU:
-      case LEU:
-      case LTU:
-	return INTEGRAL_MODE_P (mode) || VECTOR_MODE_P (mode);
-
-      default:
-	gcc_unreachable ();
-    }
-}
-
 /* Canonicalize RES, a scalar const0_rtx/const_true_rtx to the right
    false/true value of comparison with MODE where comparison operands
    have CMP_MODE.  */
@@ -2587,17 +2595,16 @@ relational_result (machine_mode mode, machine_mode cmp_mode, rtx res)
 }
 				       
 /* Simplify a logical operation CODE with result mode MODE, operating on OP0
-   and OP1, which should be both relational operations.  Return 0 if no such
-   simplification is possible.  */
+   and OP1, in the case where both are relational operations.  Assume that
+   OP0 is inverted if INVERT0_P is true.
+
+   Return 0 if no such simplification is possible.  */
 rtx
 simplify_context::simplify_logical_relational_operation (rtx_code code,
 							 machine_mode mode,
-							 rtx op0, rtx op1)
+							 rtx op0, rtx op1,
+							 bool invert0_p)
 {
-  /* We only handle IOR of two relational operations.  */
-  if (code != IOR)
-    return 0;
-
   if (!(COMPARISON_P (op0) && COMPARISON_P (op1)))
     return 0;
 
@@ -2605,28 +2612,64 @@ simplify_context::simplify_logical_relational_operation (rtx_code code,
 	&& rtx_equal_p (XEXP (op0, 1), XEXP (op1, 1))))
     return 0;
 
+  if (side_effects_p (op0))
+    return 0;
+
   enum rtx_code code0 = GET_CODE (op0);
   enum rtx_code code1 = GET_CODE (op1);
 
-  /* We don't handle unsigned comparisons currently.  */
-  if (code0 == LTU || code0 == GTU || code0 == LEU || code0 == GEU)
-    return 0;
-  if (code1 == LTU || code1 == GTU || code1 == LEU || code1 == GEU)
-    return 0;
+  /* Assume at first that the comparisons are on integers, and that the
+     operands are therefore ordered.  */
+  int all = 14;
+  int mask0 = unsigned_comparison_to_mask (code0);
+  int mask1 = unsigned_comparison_to_mask (code1);
+  bool unsigned_p = (IN_RANGE (mask0 & 12, 4, 8)
+		     || IN_RANGE (mask1 & 12, 4, 8));
+  if (unsigned_p)
+    {
+      /* We only reach here when comparing integers.  Reject mixtures of signed
+	 and unsigned comparisons.  */
+      if (mask0 == 0 || mask1 == 0)
+	return 0;
+    }
+  else
+    {
+      /* See whether the operands might be unordered.  */
+      if (HONOR_NANS (GET_MODE (XEXP (op0, 0))))
+	all = 15;
+      mask0 = comparison_to_mask (code0) & all;
+      mask1 = comparison_to_mask (code1) & all;
+    }
 
-  int mask0 = comparison_to_mask (code0);
-  int mask1 = comparison_to_mask (code1);
+  if (invert0_p)
+    mask0 = mask0 ^ all;
 
-  int mask = mask0 | mask1;
+  int mask;
+  if (code == AND)
+    mask = mask0 & mask1;
+  else if (code == IOR)
+    mask = mask0 | mask1;
+  else if (code == XOR)
+    mask = mask0 ^ mask1;
+  else
+    return 0;
 
-  if (mask == 15)
+  if (mask == all)
     return relational_result (mode, GET_MODE (op0), const_true_rtx);
 
-  code = mask_to_comparison (mask);
+  if (mask == 0)
+    return relational_result (mode, GET_MODE (op0), const0_rtx);
 
-  /* Many comparison codes are only valid for certain mode classes.  */
-  if (!comparison_code_valid_for_mode (code, mode))
-    return 0;
+  if (unsigned_p)
+    code = mask_to_unsigned_comparison (mask);
+  else
+    {
+      code = mask_to_comparison (mask);
+      /* LTGT and NE are arithmetically equivalent for ordered operands,
+	 with NE being the canonical choice.  */
+      if (code == LTGT && all == 14)
+	code = NE;
+    }
 
   op0 = XEXP (op1, 0);
   op1 = XEXP (op1, 1);
@@ -3035,21 +3078,6 @@ simplify_context::simplify_binary_operation_1 (rtx_code code,
       break;
 
     case COMPARE:
-      /* Convert (compare (gt (flags) 0) (lt (flags) 0)) to (flags).  */
-      if (((GET_CODE (op0) == GT && GET_CODE (op1) == LT)
-	   || (GET_CODE (op0) == GTU && GET_CODE (op1) == LTU))
-	  && XEXP (op0, 1) == const0_rtx && XEXP (op1, 1) == const0_rtx)
-	{
-	  rtx xop00 = XEXP (op0, 0);
-	  rtx xop10 = XEXP (op1, 0);
-
-	  if (REG_P (xop00) && REG_P (xop10)
-	      && REGNO (xop00) == REGNO (xop10)
-	      && GET_MODE (xop00) == mode
-	      && GET_MODE (xop10) == mode
-	      && GET_MODE_CLASS (mode) == MODE_CC)
-	    return xop00;
-	}
       break;
 
     case MINUS:
@@ -6126,6 +6154,40 @@ simplify_context::simplify_relational_operation_1 (rtx_code code,
 	  && INTVAL (XEXP (tmp, 1)) == GET_MODE_PRECISION (int_mode) - 1)
 	return simplify_gen_binary (AND, mode, XEXP (tmp, 0), const1_rtx);
     }
+
+  /* For two unsigned booleans A and B:
+
+     A >  B == ~B & A
+     A >= B == ~B | A
+     A <  B == ~A & B
+     A <= B == ~A | B
+     A == B == ~A ^ B (== ~B ^ A)
+     A != B ==  A ^ B
+
+     For signed comparisons, we have to take STORE_FLAG_VALUE into account,
+     with the rules above applying for positive STORE_FLAG_VALUE and with
+     the relations reversed for negative STORE_FLAG_VALUE.  */
+  if (is_a<scalar_int_mode> (cmp_mode)
+      && COMPARISON_P (op0)
+      && COMPARISON_P (op1))
+    {
+      rtx t = NULL_RTX;
+      if (code == GTU || code == (STORE_FLAG_VALUE > 0 ? GT : LT))
+	t = simplify_logical_relational_operation (AND, mode, op1, op0, true);
+      else if (code == GEU || code == (STORE_FLAG_VALUE > 0 ? GE : LE))
+	t = simplify_logical_relational_operation (IOR, mode, op1, op0, true);
+      else if (code == LTU || code == (STORE_FLAG_VALUE > 0 ? LT : GT))
+	t = simplify_logical_relational_operation (AND, mode, op0, op1, true);
+      else if (code == LEU || code == (STORE_FLAG_VALUE > 0 ? LE : GE))
+	t = simplify_logical_relational_operation (IOR, mode, op0, op1, true);
+      else if (code == EQ)
+	t = simplify_logical_relational_operation (XOR, mode, op0, op1, true);
+      else if (code == NE)
+	t = simplify_logical_relational_operation (XOR, mode, op0, op1);
+      if (t)
+	return t;
+    }
+
   return NULL_RTX;
 }
 
@@ -8190,6 +8252,63 @@ test_scalar_int_ext_ops2 (machine_mode bmode, machine_mode mmode,
 		 simplify_gen_unary (TRUNCATE, smode, mreg, mmode));
 }  
 
+/* Test comparisons of comparisons, with the inner comparisons being
+   between values of mode MODE2 and producing results of mode MODE1,
+   and with the outer comparisons producing results of mode MODE0.  */
+
+static void
+test_comparisons (machine_mode mode0, machine_mode mode1, machine_mode mode2)
+{
+  rtx reg0 = make_test_reg (mode2);
+  rtx reg1 = make_test_reg (mode2);
+
+  static const rtx_code codes[] = {
+    EQ, NE, LT, LTU, LE, LEU, GE, GEU, GT, GTU
+  };
+  constexpr auto num_codes = ARRAY_SIZE (codes);
+  rtx cmps[num_codes];
+  rtx vals[] = { constm1_rtx, const0_rtx, const1_rtx };
+
+  for (unsigned int i = 0; i < num_codes; ++i)
+    cmps[i] = gen_rtx_fmt_ee (codes[i], mode1, reg0, reg1);
+
+  for (auto code : codes)
+    for (unsigned int i0 = 0; i0 < num_codes; ++i0)
+      for (unsigned int i1 = 0; i1 < num_codes; ++i1)
+	{
+	  rtx cmp_res = simplify_relational_operation (code, mode0, mode1,
+						       cmps[i0], cmps[i1]);
+	  if (i0 >= 2 && i1 >= 2 && (i0 ^ i1) & 1)
+	    ASSERT_TRUE (cmp_res == NULL_RTX);
+	  else
+	    {
+	      ASSERT_TRUE (cmp_res != NULL_RTX
+			   && (CONSTANT_P (cmp_res)
+			       || (COMPARISON_P (cmp_res)
+				   && GET_MODE (cmp_res) == mode0
+				   && REG_P (XEXP (cmp_res, 0))
+				   && REG_P (XEXP (cmp_res, 1)))));
+	      for (rtx reg0_val : vals)
+		for (rtx reg1_val : vals)
+		  {
+		    rtx val0 = simplify_const_relational_operation
+		      (codes[i0], mode1, reg0_val, reg1_val);
+		    rtx val1 = simplify_const_relational_operation
+		      (codes[i1], mode1, reg0_val, reg1_val);
+		    rtx val = simplify_const_relational_operation
+		      (code, mode0, val0, val1);
+		    rtx folded = cmp_res;
+		    if (COMPARISON_P (cmp_res))
+		      folded = simplify_const_relational_operation
+			(GET_CODE (cmp_res), mode0,
+			 XEXP (cmp_res, 0) == reg0 ? reg0_val : reg1_val,
+			 XEXP (cmp_res, 1) == reg0 ? reg0_val : reg1_val);
+		    ASSERT_RTX_EQ (val, folded);
+		  }
+	    }
+	}
+}
+
 
 /* Verify some simplifications involving scalar expressions.  */
 
@@ -8214,6 +8333,8 @@ test_scalar_ops ()
   test_scalar_int_ext_ops2 (DImode, HImode, QImode);
   test_scalar_int_ext_ops2 (DImode, SImode, QImode);
   test_scalar_int_ext_ops2 (DImode, SImode, HImode);
+
+  test_comparisons (QImode, HImode, SImode);
 }
 
 /* Test vector simplifications involving VEC_DUPLICATE in which the
diff --git a/gcc/testsuite/gcc.dg/torture/pr117186.c b/gcc/testsuite/gcc.dg/torture/pr117186.c
new file mode 100644
index 00000000000..83bcb650102
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr117186.c
@@ -0,0 +1,15 @@
+/* { dg-do run } */
+
+[[gnu::noipa]] int
+f1 (int x, int y)
+{
+  return (x < y) < (y < x);
+}
+
+int
+main (void)
+{
+  if (f1 (-1, 0))
+    __builtin_abort ();
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/pr117186.c b/gcc/testsuite/gcc.target/aarch64/pr117186.c
new file mode 100644
index 00000000000..afe3c25a493
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/pr117186.c
@@ -0,0 +1,128 @@
+/* { dg-options "-O" } */
+/* { dg-final { check-function-bodies "**" "" "" } } */
+
+/*
+** f1:
+** (
+**	cmp	w0, w1
+**	cset	w0, gt
+** |
+**	cmp	w1, w0
+**	cset	w0, lt
+** )
+**	ret
+*/
+int
+f1 (int x, int y)
+{
+  return (x < y) < (y < x);
+}
+
+/*
+** f2:
+**	mov	w0, 0
+**	ret
+*/
+int
+f2 (int x, int y)
+{
+  return (x <= y) < (x < y);
+}
+
+/*
+** f3:
+**	cmp	(w0, w1|w1, w0)
+**	cset	w0, ne
+**	ret
+*/
+int
+f3 (int x, int y)
+{
+  return (x <= y) == (x < y);
+}
+
+/*
+** f4:
+**	cmp	(w0, w1|w1, w0)
+**	cset	w0, ne
+**	ret
+*/
+int
+f4 (int x, int y)
+{
+  return (y < x) != (x < y);
+}
+
+/*
+** f5:
+**	cmp	(w0, w1|w1, w0)
+**	cset	w0, eq
+**	ret
+*/
+int
+f5 (int x, int y)
+{
+  return (y >= x) > (y > x);
+}
+
+/*
+** f6:
+** (
+**	cmp	w0, w1
+**	cset	w0, ge
+** |
+**	cmp	w1, w0
+**	cset	w0, le
+** )
+**	ret
+*/
+int
+f6 (int x, int y)
+{
+  return (x < y) < (y <= x);
+}
+
+/*
+** f7:
+**	mov	w0, 1
+**	ret
+*/
+int
+f7 (int x, int y)
+{
+  return (x < y) <= (x <= y);
+}
+
+/*
+** f8:
+** (
+**	cmp	w0, w1
+**	cset	w0, hi
+** |
+**	cmp	w1, w0
+**	cset	w0, (lo|cc)
+** )
+**	ret
+*/
+int
+f8 (unsigned int x, unsigned int y)
+{
+  return (x < y) < (y < x);
+}
+
+/*
+** f9:
+** (
+**	cmp	w0, w1
+**	cset	w0, (hs|cs)
+** |
+**	cmp	w1, w0
+**	cset	w0, ls
+** )
+**	ret
+*/
+int
+f9 (unsigned int x, unsigned int y)
+{
+  return (x < y) < (y <= x);
+}

commit 80fddadbc3ce66d0461503914dca6398422a8a89
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Jan 23 00:25:48 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d8a87210b82..a3440b4daec 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,33 @@
+2025-01-22  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR rtl-optimization/117186
+	* rtl.h (simplify_context::simplify_logical_relational_operation): Add
+	an invert0_p parameter.
+	* simplify-rtx.cc (unsigned_comparison_to_mask): New function.
+	(mask_to_unsigned_comparison): Likewise.
+	(comparison_code_valid_for_mode): Delete.
+	(simplify_context::simplify_logical_relational_operation): Add
+	an invert0_p parameter.  Handle AND and XOR.  Handle unsigned
+	comparisons.  Handle always-false results.  Ignore the low bit
+	of the mask if the operands are always ordered and remove the
+	then-redundant check of comparison_code_valid_for_mode.  Check
+	for side-effects in the operands before simplifying them away.
+	(simplify_context::simplify_binary_operation_1): Remove
+	simplification of (compare (gt ...) (lt ...)) and instead...
+	(simplify_context::simplify_relational_operation_1): ...handle
+	comparisons of comparisons here.
+	(test_comparisons): New function.
+	(test_scalar_ops): Call it.
+
+2025-01-22  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/118184
+	* config/aarch64/aarch64-early-ra.cc (allocno_assignment_is_rmw):
+	New function.
+	(early_ra::record_insn_defs): Mark the live range information as
+	untrustworthy if an assignment would change part of an allocno
+	but preserve the rest.
+
 2025-01-19  Uros Bizjak  <ubizjak@gmail.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index b0aec664e8d..3aae2a0a2ef 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250122
+20250123
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 17d2a943fe7..7a4f5e6a315 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2025-01-22  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR rtl-optimization/117186
+	* gcc.dg/torture/pr117186.c: New test.
+	* gcc.target/aarch64/pr117186.c: Likewise.
+
+2025-01-22  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* gcc.dg/torture/pr118184.c: New test.
+
 2025-01-21  Jakub Jelinek  <jakub@redhat.com>
 
 	PR c++/118509

commit 11abd61656c870ac9af4e44e2ee5c2fba0583ef0
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Thu Jan 23 14:35:22 2025 -0500

    hppa: Fix typo in ADDITIONAL_REGISTER_NAMES in pa32-regs.h
    
    2025-01-23  John David Anglin  <danglin@gcc.gnu.org>
    
    gcc/ChangeLog:
    
            * config/pa/pa32-regs.h (ADDITIONAL_REGISTER_NAMES): Change
            register 86 name to "%fr31L".

diff --git a/gcc/config/pa/pa32-regs.h b/gcc/config/pa/pa32-regs.h
index 6485ab2031e..6226414cdca 100644
--- a/gcc/config/pa/pa32-regs.h
+++ b/gcc/config/pa/pa32-regs.h
@@ -344,7 +344,7 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FPUPPER_REGS, FP_REGS,
  {"%fr16L",56}, {"%fr17L",58}, {"%fr18L",60}, {"%fr19L",62},		\
  {"%fr20L",64}, {"%fr21L",66}, {"%fr22L",68}, {"%fr23L",70},		\
  {"%fr24L",72}, {"%fr25L",74}, {"%fr26L",76}, {"%fr27L",78},		\
- {"%fr28L",80}, {"%fr29L",82}, {"%fr30L",84}, {"%fr31R",86},		\
+ {"%fr28L",80}, {"%fr29L",82}, {"%fr30L",84}, {"%fr31L",86},		\
  {"%cr11",88}}
 
 #define FP_SAVED_REG_LAST 66

commit 1a80a0401d69f59da5be944ca6d46e73fdcdc821
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Jan 24 00:24:23 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a3440b4daec..397aa15fbb5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2025-01-23  John David Anglin  <danglin@gcc.gnu.org>
+
+	* config/pa/pa32-regs.h (ADDITIONAL_REGISTER_NAMES): Change
+	register 86 name to "%fr31L".
+
 2025-01-22  Richard Sandiford  <richard.sandiford@arm.com>
 
 	PR rtl-optimization/117186
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 3aae2a0a2ef..56a27e9356c 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250123
+20250124

commit 68df37647bdce7fc85c5f0f25629027800a4fcb5
Author: Peter Bergner <bergner@linux.ibm.com>
Date:   Thu Jan 16 10:49:45 2025 -0600

    rs6000: Fix loop limit for built-in constant checking
    
    The loop checking for built-in constant operand restrictions was missing
    some operands due to the loop limit being too small.  Fixing that exposed
    a testsuite failure which is caused by a typo in the pmxvi4ger8pp definition
    where we had made the PMASK field too small.
    
    2025-01-16  Peter Bergner  <bergner@linux.ibm.com>
    
    gcc/
            * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Use correct
            array size for the loop limit.
            * config/rs6000/rs6000-builtins.def: Fix field size for PMASK operand.
    
    (cherry picked from commit 1a2d63a78f99b7fdc2eff5bf9065682d5bbbaaca)

diff --git a/gcc/config/rs6000/rs6000-builtin.cc b/gcc/config/rs6000/rs6000-builtin.cc
index d8b18b2b8ce..ce66fb3e3d5 100644
--- a/gcc/config/rs6000/rs6000-builtin.cc
+++ b/gcc/config/rs6000/rs6000-builtin.cc
@@ -3548,7 +3548,7 @@ rs6000_expand_builtin (tree exp, rtx target, rtx /* subtarget */,
     }
 
   /* Check for restricted constant arguments.  */
-  for (int i = 0; i < 2; i++)
+  for (size_t i = 0; i < ARRAY_SIZE (bifaddr->restr); i++)
     {
       switch (bifaddr->restr[i])
 	{
diff --git a/gcc/config/rs6000/rs6000-builtins.def b/gcc/config/rs6000/rs6000-builtins.def
index 3bc7fed6956..80f5fbb9e82 100644
--- a/gcc/config/rs6000/rs6000-builtins.def
+++ b/gcc/config/rs6000/rs6000-builtins.def
@@ -3885,11 +3885,11 @@
     PMXVI4GER8_INTERNAL mma_pmxvi4ger8 {mma}
 
   void __builtin_mma_pmxvi4ger8pp (v512 *, vuc, vuc, const int<4>, \
-                                   const int<4>, const int<4>);
+                                   const int<4>, const int<8>);
     PMXVI4GER8PP nothing {mma,quad,mmaint}
 
   v512 __builtin_mma_pmxvi4ger8pp_internal (v512, vuc, vuc, const int<4>, \
-                                            const int<4>, const int<4>);
+                                            const int<4>, const int<8>);
     PMXVI4GER8PP_INTERNAL mma_pmxvi4ger8pp {mma,quad}
 
   void __builtin_mma_pmxvi8ger4 (v512 *, vuc, vuc, const int<4>, \

commit a1acb1c0edec1e04b20b3e7d561a04098dfd47b6
Author: Peter Bergner <bergner@linux.ibm.com>
Date:   Thu Jan 16 10:53:27 2025 -0600

    rs6000: Fix ICE for invalid constants in built-in functions
    
    For invalid constant operand values used in built-in functions, return
    const0_rtx to signify an error occurred during expansion.
    
    2025-01-16  Peter Bergner  <bergner@linux.ibm.com>
    
    gcc/
            * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Return
            const0_rtx when there is an error.
    
    gcc/testsuite/
            * gcc.target/powerpc/mma-builtin-error.c: New test.
    
    (cherry picked from commit 0696af74b3392e2178215607337b116d1bb53e34)

diff --git a/gcc/config/rs6000/rs6000-builtin.cc b/gcc/config/rs6000/rs6000-builtin.cc
index ce66fb3e3d5..72278367bdb 100644
--- a/gcc/config/rs6000/rs6000-builtin.cc
+++ b/gcc/config/rs6000/rs6000-builtin.cc
@@ -3566,7 +3566,7 @@ rs6000_expand_builtin (tree exp, rtx target, rtx /* subtarget */,
 		error ("argument %d must be a literal between 0 and %d,"
 		       " inclusive",
 		       bifaddr->restr_opnd[i], p);
-		return CONST0_RTX (mode[0]);
+		return const0_rtx;
 	      }
 	    break;
 	  }
@@ -3583,7 +3583,7 @@ rs6000_expand_builtin (tree exp, rtx target, rtx /* subtarget */,
 		       " inclusive",
 		       bifaddr->restr_opnd[i], bifaddr->restr_val1[i],
 		       bifaddr->restr_val2[i]);
-		return CONST0_RTX (mode[0]);
+		return const0_rtx;
 	      }
 	    break;
 	  }
@@ -3600,7 +3600,7 @@ rs6000_expand_builtin (tree exp, rtx target, rtx /* subtarget */,
 		       "between %d and %d, inclusive",
 		       bifaddr->restr_opnd[i], bifaddr->restr_val1[i],
 		       bifaddr->restr_val2[i]);
-		return CONST0_RTX (mode[0]);
+		return const0_rtx;
 	      }
 	    break;
 	  }
@@ -3616,7 +3616,7 @@ rs6000_expand_builtin (tree exp, rtx target, rtx /* subtarget */,
 		       "literal %d",
 		       bifaddr->restr_opnd[i], bifaddr->restr_val1[i],
 		       bifaddr->restr_val2[i]);
-		return CONST0_RTX (mode[0]);
+		return const0_rtx;
 	      }
 	    break;
 	  }
diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-error.c b/gcc/testsuite/gcc.target/powerpc/mma-builtin-error.c
new file mode 100644
index 00000000000..a87a1570925
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-error.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target power10_ok } */
+/* { dg-options "-O2 -mdejagnu-cpu=power10" } */
+
+typedef unsigned char vec_t __attribute__((vector_size(16)));
+
+void
+foo (__vector_quad *dst, vec_t vec0, vec_t vec1) /* { dg-error "argument 5 must be a literal between 0 and 15, inclusive" } */
+{
+  __builtin_mma_pmxvi8ger4 (dst, vec0, vec1, 15, 15, -1);
+}

commit 1836a65efc4c76284a6b1e18a9542acb0b9e0517
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Fri Jan 24 17:56:51 2025 +0100

    testsuite: arm: Use -Os -fno-math-errno in vfp-1.c [PR116448]
    
    gcc/testsuite/ChangeLog:
    
            PR testsuite/116448
            * gcc.target/arm/vfp-1.c: Use -Os -fno-math-errno.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 062c04c45b2156b27ddc3b6541d8484e9db63bc3)

diff --git a/gcc/testsuite/gcc.target/arm/vfp-1.c b/gcc/testsuite/gcc.target/arm/vfp-1.c
index b4694c78630..5bb675e566e 100644
--- a/gcc/testsuite/gcc.target/arm/vfp-1.c
+++ b/gcc/testsuite/gcc.target/arm/vfp-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target arm_fp_dp_ok } */
-/* { dg-options "-O2 -ffp-contract=off" } */
+/* { dg-options "-Os -fno-math-errno -ffp-contract=off" } */
 /* { dg-add-options arm_fp_dp } */
 /* { dg-skip-if "need fp instructions" { *-*-* } { "-mfloat-abi=soft" } { "" } } */
 

commit 504fbafd45a526f4851e7655d78d678d0c9eecbe
Author: Marek Polacek <polacek@redhat.com>
Date:   Mon Nov 25 09:45:13 2024 -0500

    c++: ICE with nested anonymous union [PR117153]
    
    In a template, for
    
      union {
        union {
          T d;
        };
      };
    
    build_anon_union_vars crates a malformed COMPONENT_REF: we have no
    DECL_NAME for the nested anon union so we create something like "object.".
    Most of the front end doesn't seem to care, but if such a tree gets to
    potential_constant_expression, it can cause a crash.
    
    We can use FIELD directly for the COMPONENT_REF's member.  tsubst_stmt
    should build up a proper one in:
    
        if (VAR_P (decl) && !DECL_NAME (decl)
            && ANON_AGGR_TYPE_P (TREE_TYPE (decl)))
          /* Anonymous aggregates are a special case.  */
          finish_anon_union (decl);
    
            PR c++/117153
    
    gcc/cp/ChangeLog:
    
            * decl2.cc (build_anon_union_vars): Use FIELD for the second operand
            of a COMPONENT_REF.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/other/anon-union6.C: New test.
            * g++.dg/other/anon-union7.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 10850f92b2a618ef1b1ad399530943ef4847823d)

diff --git a/gcc/cp/decl2.cc b/gcc/cp/decl2.cc
index f6c760338cc..139b5c15b3e 100644
--- a/gcc/cp/decl2.cc
+++ b/gcc/cp/decl2.cc
@@ -1951,7 +1951,7 @@ build_anon_union_vars (tree type, tree object)
 
       if (processing_template_decl)
 	ref = build_min_nt_loc (UNKNOWN_LOCATION, COMPONENT_REF, object,
-				DECL_NAME (field), NULL_TREE);
+				field, NULL_TREE);
       else
 	ref = build_class_member_access_expr (object, field, NULL_TREE,
 					      false, tf_warning_or_error);
diff --git a/gcc/testsuite/g++.dg/other/anon-union6.C b/gcc/testsuite/g++.dg/other/anon-union6.C
new file mode 100644
index 00000000000..d1cde30f790
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/anon-union6.C
@@ -0,0 +1,13 @@
+// PR c++/117153
+// { dg-do compile }
+
+template<typename T>
+void f() {
+  union {
+    union {
+      T d;
+    };
+  };
+  (void) (d + 0);
+}
+template void f<double>();
diff --git a/gcc/testsuite/g++.dg/other/anon-union7.C b/gcc/testsuite/g++.dg/other/anon-union7.C
new file mode 100644
index 00000000000..e89334a5d0e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/anon-union7.C
@@ -0,0 +1,16 @@
+// PR c++/117153
+// { dg-do compile { target c++11 } }
+
+using U = union { union { int a; }; };
+
+U
+foo ()
+{
+  return {};
+}
+
+void
+g ()
+{
+  [[maybe_unused]] auto u = foo ();
+}

commit d4df61dc6ed90e6614db213119858adde939fc97
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Sun Jan 19 21:06:56 2025 +0100

    Fortran: do not copy back for parameter actual arguments [PR81978]
    
    When an array is packed for passing as an actual argument, and the array
    has the PARAMETER attribute (i.e., it is a named constant that can reside
    in read-only memory), do not copy back (unpack) from the temporary.
    
            PR fortran/81978
    
    gcc/fortran/ChangeLog:
    
            * trans-array.cc (gfc_conv_array_parameter): Do not copy back data
            if actual array parameter has the PARAMETER attribute.
            * trans-expr.cc (gfc_conv_subref_array_arg): Likewise.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/pr81978.f90: New test.
    
    (cherry picked from commit 0d1e62b83561baa185bf080515750a89dd3ac410)

diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index d9aaa9bceae..61f641aa491 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -8653,6 +8653,7 @@ gfc_conv_array_parameter (gfc_se * se, gfc_expr * expr, bool g77,
   bool good_allocatable;
   bool ultimate_ptr_comp;
   bool ultimate_alloc_comp;
+  bool readonly;
   gfc_symbol *sym;
   stmtblock_t block;
   gfc_ref *ref;
@@ -9007,8 +9008,13 @@ gfc_conv_array_parameter (gfc_se * se, gfc_expr * expr, bool g77,
 
       gfc_start_block (&block);
 
-      /* Copy the data back.  */
-      if (fsym == NULL || fsym->attr.intent != INTENT_IN)
+      /* Copy the data back.  If input expr is read-only, e.g. a PARAMETER
+	 array, copying back modified values is undefined behavior.  */
+      readonly = (expr->expr_type == EXPR_VARIABLE
+		  && expr->symtree
+		  && expr->symtree->n.sym->attr.flavor == FL_PARAMETER);
+
+      if ((fsym == NULL || fsym->attr.intent != INTENT_IN) && !readonly)
 	{
 	  tmp = build_call_expr_loc (input_location,
 				 gfor_fndecl_in_unpack, 2, desc, ptr);
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 8e74fbfb257..1efe435f397 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -5028,6 +5028,7 @@ gfc_conv_subref_array_arg (gfc_se *se, gfc_expr * expr, int g77,
   gfc_se work_se;
   gfc_se *parmse;
   bool pass_optional;
+  bool readonly;
 
   pass_optional = fsym && fsym->attr.optional && sym && sym->attr.optional;
 
@@ -5244,8 +5245,14 @@ gfc_conv_subref_array_arg (gfc_se *se, gfc_expr * expr, int g77,
 
   /* Wrap the whole thing up by adding the second loop to the post-block
      and following it by the post-block of the first loop.  In this way,
-     if the temporary needs freeing, it is done after use!  */
-  if (intent != INTENT_IN)
+     if the temporary needs freeing, it is done after use!
+     If input expr is read-only, e.g. a PARAMETER array, copying back
+     modified values is undefined behavior.  */
+  readonly = (expr->expr_type == EXPR_VARIABLE
+	      && expr->symtree
+	      && expr->symtree->n.sym->attr.flavor == FL_PARAMETER);
+
+  if ((intent != INTENT_IN) && !readonly)
     {
       gfc_add_block_to_block (&parmse->post, &loop2.pre);
       gfc_add_block_to_block (&parmse->post, &loop2.post);
diff --git a/gcc/testsuite/gfortran.dg/pr81978.f90 b/gcc/testsuite/gfortran.dg/pr81978.f90
new file mode 100644
index 00000000000..b377eef7a16
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr81978.f90
@@ -0,0 +1,107 @@
+! { dg-do run }
+! PR fortran/81978 - do not copy back for parameter actual arguments
+
+module test_mod
+  implicit none
+
+  type pp_struct
+     character(10) :: name
+     real          :: value
+  end type pp_struct
+
+  type(pp_struct), parameter :: pp(4) = [ &
+       pp_struct('one',   1.), &
+       pp_struct('two',   2.), &
+       pp_struct('three', 3.), &
+       pp_struct('four',  4.)  ]
+
+contains
+
+  subroutine match_word (names)
+    character(*)        :: names(:)
+  end subroutine match_word
+
+  subroutine sub0 (a)
+    real                :: a(:)
+  end
+
+  subroutine sub1 (a, n)
+    integer, intent(in) :: n
+    real                :: a(n)
+  end
+
+  subroutine subx (a)
+    real                :: a(..)
+  end
+end module
+
+program test
+  use test_mod
+  implicit none
+  integer :: i, n
+  integer, parameter :: m = 8
+  real,    parameter :: x(m) = [(i,i=1,m)]
+
+  n = size (x)
+  call sub0 (x)
+  call sub1 (x, n)
+  call sub2 (x, n)
+  call subx (x)
+
+  i = 1
+  call sub0 (x(1::i))
+  call sub1 (x(1::i), n)
+  call sub2 (x(1::i), n)
+  call subx (x(1::i))
+
+  n = size (x(1::2))
+  call sub0 (x(1::2))
+  call sub1 (x(1::2), n)
+  call sub2 (x(1::2), n)
+  call subx (x(1::2))
+
+  i = 2
+  call sub0 (x(1::i))
+  call sub1 (x(1::i), n)
+  call sub2 (x(1::i), n)
+  call subx (x(1::i))
+
+  call match_word (pp%name)
+  call sub0       (pp%value)
+  call subx       (pp%value)
+  call match_word (pp(1::2)%name)
+  call sub0       (pp(1::2)%value)
+  call subx       (pp(1::2)%value)
+  i = 1
+  call match_word (pp(1::i)%name)
+  call sub0       (pp(1::i)%value)
+  call subx       (pp(1::i)%value)
+  i = 2
+  call match_word (pp(1::i)%name)
+  call sub0       (pp(1::i)%value)
+  call subx       (pp(1::i)%value)
+
+  call foo  (pp%name,        size(pp%name))
+  call foo  (pp(1::2)%name,  size(pp(1::2)%name))
+  call sub1 (pp(1::2)%value, size(pp(1::2)%value))
+  call sub2 (pp(1::2)%value, size(pp(1::2)%value))
+  i = 1
+  call foo  (pp(1::i)%name,  size(pp(1::i)%name))
+  call sub1 (pp(1::i)%value, size(pp(1::i)%value))
+  call sub2 (pp(1::i)%value, size(pp(1::i)%value))
+  i = 2
+  call foo  (pp(1::i)%name,  size(pp(1::i)%name))
+  call sub1 (pp(1::i)%value, size(pp(1::i)%value))
+  call sub2 (pp(1::i)%value, size(pp(1::i)%value))
+end program
+
+subroutine sub2 (a, n)
+  integer, intent(in) :: n
+  real                :: a(n)
+end
+
+subroutine foo (s, n)
+  integer, intent(in) :: n
+  character(*)        :: s(*)
+! print *, len(s), n, s(n)
+end

commit b69eb2c594f8595718d876dc9811e3820eb68da1
Author: Jerry DeLisle <jvdelisle@gcc.gnu.org>
Date:   Thu Jan 23 12:58:14 2025 -0800

    Fortran: Fix UTF-8 output with A edit descriptor.
    
            This adjusts the source len for the case where the user has
            specified a field width with the A descriptor.
    
            PR libfortran/118571
    
    libgfortran/ChangeLog:
    
            * io/write.c (write_utf8_char4): Adjust the src_len to the
            format width w_len when greater than zero.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/utf8_3.f03: New test.
    
    (cherry picked from commit 4daf088123b2c4c3114a4b96d5353c3d72eb8ac9)

diff --git a/gcc/testsuite/gfortran.dg/utf8_3.f03 b/gcc/testsuite/gfortran.dg/utf8_3.f03
new file mode 100644
index 00000000000..e1688149e5d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/utf8_3.f03
@@ -0,0 +1,57 @@
+! { dg-do run }
+! PR118571 UTF-8 output and the A edit descriptor.
+
+program test
+
+  use iso_fortran_env
+  
+  implicit none
+  
+  integer, parameter :: ucs4 = selected_char_kind('ISO_10646')
+  
+  character(kind=ucs4, len=1), parameter :: alpha = char(int(z'03B1'), ucs4)
+  character(kind=ucs4, len=1), parameter :: beta  = char(int(z'03B2'), ucs4)
+  character(kind=ucs4, len=1), parameter :: space = ucs4_' '
+  
+  integer fd
+  character(kind=ucs4,len=:), allocatable :: str
+  character(kind=ucs4,len=25) :: instr, correct
+  
+  fd = 42
+  
+  open (fd, encoding='UTF-8', status="scratch")
+  open (output_unit, encoding='UTF-8')
+  str = repeat(space,6)//alpha//beta//alpha//beta
+
+  write(fd,'(I4,1X,A)') len_trim(str), str
+  rewind(fd)
+  read(fd,'(a)') instr
+  if (trim(instr) /= ucs4_'  10 '//trim(str)) stop 1
+  
+  str = alpha // beta // alpha // beta
+  rewind(fd) 
+  write(fd,'(I4,1X,">",A,"<")')  len_trim(str(1:1)), str(1:1)
+  rewind(fd)
+  read(fd,'(a)') instr
+  if (trim(instr) /= ucs4_'   1 >'//alpha//ucs4_'<') stop 2
+
+  rewind(fd)
+  write(fd,*) len_trim(str(1:1)), str(1:1)
+  rewind(fd)
+  read(fd,'(a)') instr
+  if (trim(instr) /= ucs4_'           1 '//alpha) stop 3
+
+  rewind(fd)  
+  write(fd,'(I4,1X,">",A1,"<")')  len_trim(str(1:1)), str(1:1)
+  rewind(fd)
+  read(fd, '(a)') instr
+  if (trim(instr) /= ucs4_'   1 >'//alpha//ucs4_'<') stop 4
+
+  rewind(fd)  
+  write(fd,'(I4,1X,">",A1,"<")')  len_trim(str), str
+  rewind(fd)
+  read(fd, '(a)') instr
+  if (trim(instr) /= ucs4_'   4 >'//alpha//ucs4_'<') stop 5
+  close(fd)
+end program
+
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c
index 9d0a0d6102b..bc22054fee9 100644
--- a/libgfortran/io/write.c
+++ b/libgfortran/io/write.c
@@ -177,7 +177,9 @@ write_utf8_char4 (st_parameter_dt *dtp, gfc_char4_t *source,
       break;
     }
 
-  /* Now process the remaining characters, one at a time.  */
+  /* Now process the remaining characters, one at a time. We need to
+     adjust the src_len if the user has specified a field width.  */
+  src_len = w_len > 0 ? w_len : src_len;
   for (j = k; j < src_len; j++)
     {
       c = source[j];

commit 18a09944e8984be97a4aac004ee0a7ab10340526
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Jan 25 00:26:39 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 397aa15fbb5..02913a59083 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,20 @@
+2025-01-24  Peter Bergner  <bergner@linux.ibm.com>
+
+	Backported from master:
+	2025-01-16  Peter Bergner  <bergner@linux.ibm.com>
+
+	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Return
+	const0_rtx when there is an error.
+
+2025-01-24  Peter Bergner  <bergner@linux.ibm.com>
+
+	Backported from master:
+	2025-01-16  Peter Bergner  <bergner@linux.ibm.com>
+
+	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Use correct
+	array size for the loop limit.
+	* config/rs6000/rs6000-builtins.def: Fix field size for PMASK operand.
+
 2025-01-23  John David Anglin  <danglin@gcc.gnu.org>
 
 	* config/pa/pa32-regs.h (ADDITIONAL_REGISTER_NAMES): Change
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 56a27e9356c..da8bd402f29 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250124
+20250125
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 11f2ecac404..20e3fea11b1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,12 @@
+2025-01-24  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-01-24  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/117153
+	* decl2.cc (build_anon_union_vars): Use FIELD for the second operand
+	of a COMPONENT_REF.
+
 2025-01-21  Jakub Jelinek  <jakub@redhat.com>
 
 	PR c++/118509
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 699555c815d..f1e5e280eb3 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,13 @@
+2025-01-24  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-01-20  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/81978
+	* trans-array.cc (gfc_conv_array_parameter): Do not copy back data
+	if actual array parameter has the PARAMETER attribute.
+	* trans-expr.cc (gfc_conv_subref_array_arg): Likewise.
+
 2025-01-10  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7a4f5e6a315..2a10fcc110d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,43 @@
+2025-01-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	Backported from master:
+	2025-01-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR libfortran/118571
+	* gfortran.dg/utf8_3.f03: New test.
+
+2025-01-24  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-01-20  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/81978
+	* gfortran.dg/pr81978.f90: New test.
+
+2025-01-24  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-01-24  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/117153
+	* g++.dg/other/anon-union6.C: New test.
+	* g++.dg/other/anon-union7.C: New test.
+
+2025-01-24  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2025-01-24  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	PR testsuite/116448
+	* gcc.target/arm/vfp-1.c: Use -Os -fno-math-errno.
+
+2025-01-24  Peter Bergner  <bergner@linux.ibm.com>
+
+	Backported from master:
+	2025-01-16  Peter Bergner  <bergner@linux.ibm.com>
+
+	* gcc.target/powerpc/mma-builtin-error.c: New test.
+
 2025-01-22  Richard Sandiford  <richard.sandiford@arm.com>
 
 	PR rtl-optimization/117186
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index b65d9f9038b..8719a57c746 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,12 @@
+2025-01-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	Backported from master:
+	2025-01-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR libfortran/118571
+	* io/write.c (write_utf8_char4): Adjust the src_len to the
+	format width w_len when greater than zero.
+
 2024-12-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
 	Backported from master:

commit 1eafda360d04fb9b7bf94e047d7c02132a0636dd
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Jan 26 00:23:24 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index da8bd402f29..1e4e11a933a 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250125
+20250126

commit 18f447ac09e859d6bd96bd39b77b2ac48c5c3a1f
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Jan 27 00:24:04 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 1e4e11a933a..06131700b01 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250126
+20250127

commit 0af8fc22338ef0dd09c9b469aafb19262aa8eeb9
Author: Patrick Palka <ppalka@redhat.com>
Date:   Thu Jan 16 16:40:08 2025 -0500

    c++: explicit spec of constrained member tmpl [PR107522]
    
    When defining a explicit specialization of a constrained member template
    (of a class template) such as f and g in the below testcase, the
    DECL_TEMPLATE_PARMS of the corresponding TEMPLATE_DECL are partially
    instantiated, whereas its associated constraints are carried over
    from the original template and thus are in terms of the original
    DECL_TEMPLATE_PARMS.  So during normalization for such an explicit
    specialization we need to consider the (parameters of) the most general
    template, since that's what the constraints are in terms of and since we
    always use the full set of template arguments during satisfaction.
    
            PR c++/107522
    
    gcc/cp/ChangeLog:
    
            * constraint.cc (get_normalized_constraints_from_decl): Use the
            most general template for an explicit specialization of a
            member template.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/concepts-explicit-spec7.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 62daa81308c6c187059fcad98377146e30725fa5)

diff --git a/gcc/cp/constraint.cc b/gcc/cp/constraint.cc
index cbf6357ad68..215a6c1fa93 100644
--- a/gcc/cp/constraint.cc
+++ b/gcc/cp/constraint.cc
@@ -970,11 +970,19 @@ get_normalized_constraints_from_decl (tree d, bool diag = false)
      accepting the latter causes the template parameter level of U
      to be reduced in a way that makes it overly difficult substitute
      concrete arguments (i.e., eventually {int, int} during satisfaction.  */
-  if (tmpl)
-  {
-    if (DECL_LANG_SPECIFIC(tmpl) && !DECL_TEMPLATE_SPECIALIZATION (tmpl))
-      tmpl = most_general_template (tmpl);
-  }
+  if (tmpl && DECL_LANG_SPECIFIC (tmpl)
+      && (!DECL_TEMPLATE_SPECIALIZATION (tmpl)
+	  /* DECL_TEMPLATE_SPECIALIZATION means TMPL is either a partial
+	     specialization, or an explicit specialization of a member
+	     template.  In the former case all is well: TMPL's constraints
+	     are in terms of its parameters.  But in the latter case TMPL's
+	     parameters are partially instantiated whereas its constraints
+	     aren't, so we need to instead use (the parameters of) the most
+	     general template.  The following test distinguishes between a
+	     partial specialization and such an explicit specialization.  */
+	  || (TMPL_PARMS_DEPTH (DECL_TEMPLATE_PARMS (tmpl))
+	      < TMPL_ARGS_DEPTH (DECL_TI_ARGS (tmpl)))))
+    tmpl = most_general_template (tmpl);
 
   d = tmpl ? tmpl : decl;
 
diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec7.C b/gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec7.C
new file mode 100644
index 00000000000..9452159faf7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/concepts-explicit-spec7.C
@@ -0,0 +1,30 @@
+// PR c++/107522
+// { dg-do compile { target c++20 } }
+
+template<class T>
+struct A {
+  template<int N>
+  static void f() requires (N == 42);
+
+  template<class U>
+  struct B {
+    template<int N>
+    static void g() requires (T(N) == 42);
+  };
+};
+
+template<>
+template<int N>
+void A<int>::f() requires (N == 42) { }
+
+template<>
+template<>
+template<int N>
+void A<int>::B<int>::g() requires (int(N) == 42) { }
+
+int main() {
+  A<int>::f<42>();
+  A<int>::f<43>(); // { dg-error "no match" }
+  A<int>::B<int>::g<42>();
+  A<int>::B<int>::g<43>(); // { dg-error "no match" }
+}

commit d121d1e1dd874731a648086772e6c40e34fa5de9
Author: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Date:   Sun Jan 19 16:30:20 2025 +0100

    libstdc++: perfectly forward std::ranges::clamp arguments
    
    As reported in PR118185, std::ranges::clamp does not correctly forward
    the projected value to the comparator. Add the missing forward.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/118185
            PR libstdc++/100249
            * include/bits/ranges_algo.h (__clamp_fn): Correctly forward the
            projected value to the comparator.
            * testsuite/25_algorithms/clamp/118185.cc: New test.
    
    Signed-off-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
    Reviewed-by: Patrick Palka <ppalka@redhat.com>
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit b342614139c0a981b369176980663941b9c27f39)

diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h
index a29d387dc71..0386e7aafa6 100644
--- a/libstdc++-v3/include/bits/ranges_algo.h
+++ b/libstdc++-v3/include/bits/ranges_algo.h
@@ -2945,9 +2945,13 @@ namespace ranges
 					 std::__invoke(__proj, __hi),
 					 std::__invoke(__proj, __lo))));
 	auto&& __proj_val = std::__invoke(__proj, __val);
-	if (std::__invoke(__comp, __proj_val, std::__invoke(__proj, __lo)))
+	if (std::__invoke(__comp,
+			  std::forward<decltype(__proj_val)>(__proj_val),
+			  std::__invoke(__proj, __lo)))
 	  return __lo;
-	else if (std::__invoke(__comp, std::__invoke(__proj, __hi), __proj_val))
+	else if (std::__invoke(__comp,
+			       std::__invoke(__proj, __hi),
+			       std::forward<decltype(__proj_val)>(__proj_val)))
 	  return __hi;
 	else
 	  return __val;
diff --git a/libstdc++-v3/testsuite/25_algorithms/clamp/118185.cc b/libstdc++-v3/testsuite/25_algorithms/clamp/118185.cc
new file mode 100644
index 00000000000..e9cf896d355
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/clamp/118185.cc
@@ -0,0 +1,41 @@
+// { dg-do compile { target c++20 } }
+
+#include <algorithm>
+#include <concepts>
+
+struct Comp
+{
+  constexpr bool operator()(const int&& x, const int&& y) { return x < y; }
+};
+
+struct Proj
+{
+  constexpr const int&& operator()(const int& x) const { return std::move(x); }
+};
+
+static_assert(std::indirect_strict_weak_order<Comp, std::projected<const int*, Proj>>);
+
+static_assert(std::ranges::clamp(+1, 0, 2, Comp{}, Proj{}) == 1);
+static_assert(std::ranges::clamp(-1, 0, 2, Comp{}, Proj{}) == 0);
+static_assert(std::ranges::clamp(10, 0, 2, Comp{}, Proj{}) == 2);
+
+
+// Testcase from PR118185
+
+struct Comp2
+{
+  constexpr bool operator()(const int&& x, const int&& y) const { return x < y; }
+  constexpr bool operator()(const int&& x, int& y) const { return x < y; }
+  constexpr bool operator()(int& x, const int&& y) const { return x < y; }
+  constexpr bool operator()(int& x, int& y) const { return x < y; }
+  constexpr bool operator()(std::same_as<const int&> auto && x, std::same_as<const int&> auto && y) const
+  {
+    return x < y;
+  }
+};
+
+static_assert(std::indirect_strict_weak_order<Comp2, std::projected<const int*, Proj>>);
+
+static_assert(std::ranges::clamp(+1, 0, 2, Comp2{}, Proj{}) == 1);
+static_assert(std::ranges::clamp(-1, 0, 2, Comp2{}, Proj{}) == 0);
+static_assert(std::ranges::clamp(10, 0, 2, Comp2{}, Proj{}) == 2);

commit fb0e3f9132299f30294c504dc5e426436c04ba03
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Jan 28 00:27:40 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 06131700b01..6f429ff09a0 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250127
+20250128
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 20e3fea11b1..a94944ce0c9 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,13 @@
+2025-01-27  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-16  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/107522
+	* constraint.cc (get_normalized_constraints_from_decl): Use the
+	most general template for an explicit specialization of a
+	member template.
+
 2025-01-24  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2a10fcc110d..c63bdc4db4d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2025-01-27  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-16  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/107522
+	* g++.dg/cpp2a/concepts-explicit-spec7.C: New test.
+
 2025-01-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 85240fb4f7e..407b901bea3 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,14 @@
+2025-01-27  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
+
+	Backported from master:
+	2025-01-20  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
+
+	PR libstdc++/118185
+	PR libstdc++/100249
+	* include/bits/ranges_algo.h (__clamp_fn): Correctly forward the
+	projected value to the comparator.
+	* testsuite/25_algorithms/clamp/118185.cc: New test.
+
 2025-01-16  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit 946c17e456d3a3c3d3baceffd245e7bbb580f7ed
Author: Ilya Leoshkevich <iii@linux.ibm.com>
Date:   Wed Jan 8 00:17:07 2025 +0100

    asan: Fix missing FakeStack flag cleanup
    
    The FakeStack flag is not zeroed out when can_store_by_pieces()
    returns false.  Over time, this causes FakeStack::Allocate() to perform
    the maximum number of loop iterations, significantly slowing down the
    instrumented program.
    
    Link: https://inbox.sourceware.org/gcc-patches/20250109001702.154685-1-iii@linux.ibm.com/
    Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
    
    gcc/ChangeLog:
    
            * asan.cc (asan_emit_stack_protection): Always zero the flag
            unless it is cleared by the __asan_stack_free_N() libcall.
    
    (cherry picked from commit 13d971601175541146fda54682cde4d3f9cd2759)

diff --git a/gcc/asan.cc b/gcc/asan.cc
index 386aeec8155..268bb9fe070 100644
--- a/gcc/asan.cc
+++ b/gcc/asan.cc
@@ -2100,28 +2100,13 @@ asan_emit_stack_protection (rtx base, rtx pbase, unsigned int alignb,
       mem = adjust_address (mem, VOIDmode, base_align_bias);
       emit_move_insn (mem, gen_int_mode (ASAN_STACK_RETIRED_MAGIC, ptr_mode));
       unsigned HOST_WIDE_INT sz = asan_frame_size >> ASAN_SHADOW_SHIFT;
+      bool asan_stack_free_emitted_p = false;
       if (use_after_return_class < 5
 	  && can_store_by_pieces (sz, builtin_memset_read_str, &c,
 				  BITS_PER_UNIT, true))
-	{
-	  /* Emit:
-	       memset(ShadowBase, kAsanStackAfterReturnMagic, ShadowSize);
-	       **SavedFlagPtr(FakeStack, class_id) = 0
-	  */
-	  store_by_pieces (shadow_mem, sz, builtin_memset_read_str, &c,
-			   BITS_PER_UNIT, true, RETURN_BEGIN);
-
-	  unsigned HOST_WIDE_INT offset
-	    = (1 << (use_after_return_class + 6));
-	  offset -= GET_MODE_SIZE (ptr_mode);
-	  mem = gen_rtx_MEM (ptr_mode, base);
-	  mem = adjust_address (mem, ptr_mode, offset);
-	  rtx addr = gen_reg_rtx (ptr_mode);
-	  emit_move_insn (addr, mem);
-	  addr = convert_memory_address (Pmode, addr);
-	  mem = gen_rtx_MEM (QImode, addr);
-	  emit_move_insn (mem, const0_rtx);
-	}
+	/* Emit memset (ShadowBase, kAsanStackAfterReturnMagic, ShadowSize).  */
+	store_by_pieces (shadow_mem, sz, builtin_memset_read_str, &c,
+			 BITS_PER_UNIT, true, RETURN_BEGIN);
       else if (use_after_return_class >= 5
 	       || !set_storage_via_setmem (shadow_mem,
 					   GEN_INT (sz),
@@ -2138,6 +2123,20 @@ asan_emit_stack_protection (rtx base, rtx pbase, unsigned int alignb,
 			     GEN_INT (asan_frame_size + base_align_bias),
 			     TYPE_MODE (pointer_sized_int_node),
 			     orig_addr, ptr_mode);
+	  asan_stack_free_emitted_p = true;
+	}
+      if (!asan_stack_free_emitted_p)
+	{
+	  /* Emit **SavedFlagPtr (FakeStack, class_id) = 0.  */
+	  unsigned HOST_WIDE_INT offset = (1 << (use_after_return_class + 6));
+	  offset -= GET_MODE_SIZE (ptr_mode);
+	  mem = gen_rtx_MEM (ptr_mode, base);
+	  mem = adjust_address (mem, ptr_mode, offset);
+	  rtx addr = gen_reg_rtx (ptr_mode);
+	  emit_move_insn (addr, mem);
+	  addr = convert_memory_address (Pmode, addr);
+	  mem = gen_rtx_MEM (QImode, addr);
+	  emit_move_insn (mem, const0_rtx);
 	}
       lab = gen_label_rtx ();
       emit_jump (lab);

commit 7c6fde4bac6c20e0b04c3feb820abe5ce0e48d9b
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Thu Jan 16 19:25:26 2025 +0000

    AArch64: have -mcpu=native detect architecture extensions for unknown non-homogenous systems [PR113257]
    
    in g:e91a17fe39c39e98cebe6e1cbc8064ee6846a3a7 we added the ability for
    -mcpu=native on unknown CPUs to still enable architecture extensions.
    
    This has worked great but was only added for homogenous systems.
    
    However the same thing works for big.LITTLE as in such system the cores must
    have the same extensions otherwise it doesn't fundamentally work.
    
    i.e. task migration from one core to the other wouldn't work.
    
    This extends the same handling to non-homogenous systems.
    
    gcc/ChangeLog:
    
            PR target/113257
            * config/aarch64/driver-aarch64.cc (get_cpu_from_id, DEFAULT_CPU): New.
            (host_detect_local_cpu): Use it.
    
    gcc/testsuite/ChangeLog:
    
            PR target/113257
            * gcc.target/aarch64/cpunative/info_34: New test.
            * gcc.target/aarch64/cpunative/native_cpu_34.c: New test.
            * gcc.target/aarch64/cpunative/info_35: New test.
            * gcc.target/aarch64/cpunative/native_cpu_35.c: New test.
    
    Co-authored-by: Richard Sandiford <richard.sandiford@arm.com>
    (cherry picked from commit 1ff85affe46623fe1a970de95887df22f4da9d16)

diff --git a/gcc/config/aarch64/driver-aarch64.cc b/gcc/config/aarch64/driver-aarch64.cc
index b620351e572..fa0c57e6074 100644
--- a/gcc/config/aarch64/driver-aarch64.cc
+++ b/gcc/config/aarch64/driver-aarch64.cc
@@ -60,6 +60,7 @@ struct aarch64_core_data
 #define ALL_VARIANTS ((unsigned)-1)
 /* Default architecture to use if -mcpu=native did not detect a known CPU.  */
 #define DEFAULT_ARCH "8A"
+#define DEFAULT_CPU "generic-armv8-a"
 
 #define AARCH64_CORE(CORE_NAME, CORE_IDENT, SCHED, ARCH, FLAGS, COSTS, IMP, PART, VARIANT) \
   { CORE_NAME, #ARCH, IMP, PART, VARIANT, feature_deps::cpu_##CORE_IDENT },
@@ -106,6 +107,19 @@ get_arch_from_id (const char* id)
   return NULL;
 }
 
+/* Return an aarch64_core_data for the cpu described
+   by ID, or NULL if ID describes something we don't know about.  */
+
+static const aarch64_core_data *
+get_cpu_from_id (const char* name)
+{
+  for (unsigned i = 0; aarch64_cpu_data[i].name != NULL; i++)
+    if (strcmp (name, aarch64_cpu_data[i].name) == 0)
+      return &aarch64_cpu_data[i];
+
+  return NULL;
+}
+
 /* Check wether the CORE array is the same as the big.LITTLE BL_CORE.
    For an example CORE={0xd08, 0xd03} and
    BL_CORE=AARCH64_BIG_LITTLE (0xd08, 0xd03) will return true.  */
@@ -399,18 +413,11 @@ host_detect_local_cpu (int argc, const char **argv)
                 || variants[0] == aarch64_cpu_data[i].variant))
 	  break;
 
-      if (aarch64_cpu_data[i].name == NULL)
+      if (arch)
 	{
-	  auto arch_info = get_arch_from_id (DEFAULT_ARCH);
-
-	  gcc_assert (arch_info);
-
-	  res = concat ("-march=", arch_info->name, NULL);
-	  default_flags = arch_info->flags;
-	}
-      else if (arch)
-	{
-	  const char *arch_id = aarch64_cpu_data[i].arch;
+	  const char *arch_id = (aarch64_cpu_data[i].name
+				 ? aarch64_cpu_data[i].arch
+				 : DEFAULT_ARCH);
 	  auto arch_info = get_arch_from_id (arch_id);
 
 	  /* We got some arch indentifier that's not in aarch64-arches.def?  */
@@ -420,12 +427,15 @@ host_detect_local_cpu (int argc, const char **argv)
 	  res = concat ("-march=", arch_info->name, NULL);
 	  default_flags = arch_info->flags;
 	}
-      else
+      else if (cpu || aarch64_cpu_data[i].name)
 	{
-	  default_flags = aarch64_cpu_data[i].flags;
+	  auto cpu_info = (aarch64_cpu_data[i].name
+			   ? &aarch64_cpu_data[i]
+			   : get_cpu_from_id (DEFAULT_CPU));
+	  default_flags = cpu_info->flags;
 	  res = concat ("-m",
 			cpu ? "cpu" : "tune", "=",
-			aarch64_cpu_data[i].name,
+			cpu_info->name,
 			NULL);
 	}
     }
@@ -445,6 +455,20 @@ host_detect_local_cpu (int argc, const char **argv)
 	      break;
 	    }
 	}
+
+      /* On big.LITTLE if we find any unknown CPUs we can still pick arch
+	 features as the cores should have the same features.  So just pick
+	 the feature flags from any of the cpus.  */
+      if (cpu && aarch64_cpu_data[i].name == NULL)
+	{
+	  auto cpu_info = get_cpu_from_id (DEFAULT_CPU);
+
+	  gcc_assert (cpu_info);
+
+	  res = concat ("-mcpu=", cpu_info->name, NULL);
+	  default_flags = cpu_info->flags;
+	}
+
       if (!res)
 	goto not_found;
     }
diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/info_34 b/gcc/testsuite/gcc.target/aarch64/cpunative/info_34
new file mode 100644
index 00000000000..61cb254785a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/cpunative/info_34
@@ -0,0 +1,18 @@
+processor	: 0
+BogoMIPS	: 100.00
+Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 asimddp sve sve2 fphp asimdhp fcma
+CPU implementer	: 0xfe
+CPU architecture: 8
+CPU variant	: 0x0
+CPU part	: 0xd08
+CPU revision	: 2
+
+processor	: 0
+BogoMIPS	: 100.00
+Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 asimddp sve sve2 fphp asimdhp fcma
+CPU implementer	: 0xfe
+CPU architecture: 8
+CPU variant	: 0x0
+CPU part	: 0xd09
+CPU revision	: 2
+
diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/info_35 b/gcc/testsuite/gcc.target/aarch64/cpunative/info_35
new file mode 100644
index 00000000000..61cb254785a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/cpunative/info_35
@@ -0,0 +1,18 @@
+processor	: 0
+BogoMIPS	: 100.00
+Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 asimddp sve sve2 fphp asimdhp fcma
+CPU implementer	: 0xfe
+CPU architecture: 8
+CPU variant	: 0x0
+CPU part	: 0xd08
+CPU revision	: 2
+
+processor	: 0
+BogoMIPS	: 100.00
+Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 asimddp sve sve2 fphp asimdhp fcma
+CPU implementer	: 0xfe
+CPU architecture: 8
+CPU variant	: 0x0
+CPU part	: 0xd09
+CPU revision	: 2
+
diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_34.c b/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_34.c
new file mode 100644
index 00000000000..168140002a0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_34.c
@@ -0,0 +1,12 @@
+/* { dg-do compile { target { { aarch64*-*-linux*} && native } } } */
+/* { dg-set-compiler-env-var GCC_CPUINFO "$srcdir/gcc.target/aarch64/cpunative/info_34" } */
+/* { dg-additional-options "-mcpu=native" } */
+
+int main()
+{
+  return 0;
+}
+
+/* { dg-final { scan-assembler {\.arch armv8-a\+dotprod\+crc\+crypto\+sve2\n} } } */
+
+/* Test a normal looking procinfo.  */
diff --git a/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_35.c b/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_35.c
new file mode 100644
index 00000000000..8c3bd6111c7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_35.c
@@ -0,0 +1,13 @@
+/* { dg-do compile { target { { aarch64*-*-linux*} && native } } } */
+/* { dg-set-compiler-env-var GCC_CPUINFO "$srcdir/gcc.target/aarch64/cpunative/info_34" } */
+/* { dg-additional-options "-march=armv8.8-a+sve -mcpu=native" } */
+
+int main()
+{
+  return 0;
+}
+
+/* { dg-final { scan-assembler {\.arch armv8.8-a\+crc\+sve\n} } } */
+/* { dg-excess-errors "" } */
+
+/* Test a normal looking procinfo.  */

commit f8daec2ad9a20c31a98efb4602080e1e5d0c19fe
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Thu Jan 16 19:23:50 2025 +0000

    AArch64: don't override march to assembler with mcpu if march is specified [PR110901]
    
    When both -mcpu and -march are specified, the value of -march wins out.
    
    This is done correctly for the calls to cc1 and for the assembler directives we
    put out in assembly files.
    
    However in the call to as we don't do this and instead use the arch from the
    cpu.  This leads to a situation that GCC cannot reliably be used to compile
    assembly files which don't have a .arch directive.
    
    This is quite common with .S files which use macros to selectively enable
    codepath based on what the preprocessor sees.
    
    The fix is to change MCPU_TO_MARCH_SPEC to not override the march if an march
    is already specified.
    
    gcc/ChangeLog:
    
            PR target/110901
            * config/aarch64/aarch64.h (MCPU_TO_MARCH_SPEC): Don't override if
            march is set.
    
    gcc/testsuite/ChangeLog:
    
            PR target/110901
            * gcc.target/aarch64/options_set_29.c: New test.
    
    (cherry picked from commit 773beeaafb0ea31bd4e308b64781731d64b571ce)

diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
index 4fa1dfc7906..fe02a02a57b 100644
--- a/gcc/config/aarch64/aarch64.h
+++ b/gcc/config/aarch64/aarch64.h
@@ -1448,7 +1448,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
   CONFIG_TUNE_SPEC
 
 #define MCPU_TO_MARCH_SPEC \
-   " %{mcpu=*:-march=%:rewrite_mcpu(%{mcpu=*:%*})}"
+   "%{!march=*:%{mcpu=*:-march=%:rewrite_mcpu(%{mcpu=*:%*})}}"
 
 extern const char *aarch64_rewrite_mcpu (int argc, const char **argv);
 #define MCPU_TO_MARCH_SPEC_FUNCTIONS \
diff --git a/gcc/testsuite/gcc.target/aarch64/options_set_29.c b/gcc/testsuite/gcc.target/aarch64/options_set_29.c
new file mode 100644
index 00000000000..0a68550951c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/options_set_29.c
@@ -0,0 +1,11 @@
+/* { dg-do assemble } */
+/* { dg-additional-options "-march=armv8.2-a+sve -mcpu=cortex-a72 -O1 -w -###" } */
+
+int main ()
+{
+  return 0;
+}
+
+/* { dg-message "-march=armv8-a\+crc" "no arch from cpu" { xfail *-*-* } 0 } */
+/* { dg-message "-march=armv8\\.2-a\\+sve" "using only sve" { target *-*-* } 0 } */
+/* { dg-excess-errors "" } */

commit c061ad5a36ba0c07d3d9d82a85aebb887def759d
Author: Patrick Palka <ppalka@redhat.com>
Date:   Tue Jan 28 09:27:02 2025 -0500

    c++: friend vs inherited guide confusion [PR117855]
    
    We recently started using the lang_decl_fn::context field to track
    inheritedness of a deduction guide (for C++23 inherited CTAD).  This
    new overloading of the field accidentally made DECL_FRIEND_CONTEXT
    return non-NULL for inherited guides, which breaks the below testcase
    during overload resolution with an inherited guide.
    
    This patch fixes this by refining DECL_FRIEND_CONTEXT appropriately.
    
            PR c++/117855
    
    gcc/cp/ChangeLog:
    
            * cp-tree.h (DECL_FRIEND_CONTEXT): Exclude deduction guides.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp23/class-deduction-inherited7.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit ea578dd251eaf6304b0c95acc107f9a4d63bee8f)

diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index ab2b0904ed6..a9a4a7abc40 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -3575,7 +3575,8 @@ struct GTY(()) lang_decl {
    the DECL_FRIEND_CONTEXT for `f' will be `S'.  */
 #define DECL_FRIEND_CONTEXT(NODE)				\
   ((DECL_DECLARES_FUNCTION_P (NODE) && !DECL_VIRTUAL_P (NODE)	\
-    && !DECL_CONSTRUCTOR_P (NODE))				\
+    && !DECL_CONSTRUCTOR_P (NODE)				\
+    && (cxx_dialect < cxx23 || !deduction_guide_p (NODE)))	\
    ? LANG_DECL_FN_CHECK (NODE)->context				\
    : NULL_TREE)
 
diff --git a/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited7.C b/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited7.C
new file mode 100644
index 00000000000..b1d5e89ad02
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp23/class-deduction-inherited7.C
@@ -0,0 +1,12 @@
+// PR c++/117855
+// { dg-do compile { target c++20 } }
+
+template <typename T, int _Extent = -1> struct span { span(T&&);};
+template <typename T> span(T &&) -> span<T>;
+template <typename et, int e = -1>
+struct this_span : span<et, e> {
+  using span<et, e>::span;
+};
+template <typename T> this_span(T &&) -> this_span<T>;
+int vec;
+this_span a = vec;

commit a48161638efc44ff443bb85e7718e50fa0d1ca83
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Jan 29 00:24:29 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 02913a59083..92f8dcb4da4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,30 @@
+2025-01-28  Tamar Christina  <tamar.christina@arm.com>
+
+	Backported from master:
+	2025-01-16  Tamar Christina  <tamar.christina@arm.com>
+
+	PR target/110901
+	* config/aarch64/aarch64.h (MCPU_TO_MARCH_SPEC): Don't override if
+	march is set.
+
+2025-01-28  Tamar Christina  <tamar.christina@arm.com>
+
+	Backported from master:
+	2025-01-16  Tamar Christina  <tamar.christina@arm.com>
+		    Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/113257
+	* config/aarch64/driver-aarch64.cc (get_cpu_from_id, DEFAULT_CPU): New.
+	(host_detect_local_cpu): Use it.
+
+2025-01-28  Ilya Leoshkevich  <iii@linux.ibm.com>
+
+	Backported from master:
+	2025-01-26  Ilya Leoshkevich  <iii@linux.ibm.com>
+
+	* asan.cc (asan_emit_stack_protection): Always zero the flag
+	unless it is cleared by the __asan_stack_free_N() libcall.
+
 2025-01-24  Peter Bergner  <bergner@linux.ibm.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 6f429ff09a0..ee73a5fce07 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250128
+20250129
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a94944ce0c9..1b9c19bf4ea 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,11 @@
+2025-01-28  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-28  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/117855
+	* cp-tree.h (DECL_FRIEND_CONTEXT): Exclude deduction guides.
+
 2025-01-27  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c63bdc4db4d..44458b1ac48 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,31 @@
+2025-01-28  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-28  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/117855
+	* g++.dg/cpp23/class-deduction-inherited7.C: New test.
+
+2025-01-28  Tamar Christina  <tamar.christina@arm.com>
+
+	Backported from master:
+	2025-01-16  Tamar Christina  <tamar.christina@arm.com>
+
+	PR target/110901
+	* gcc.target/aarch64/options_set_29.c: New test.
+
+2025-01-28  Tamar Christina  <tamar.christina@arm.com>
+
+	Backported from master:
+	2025-01-16  Tamar Christina  <tamar.christina@arm.com>
+		    Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/113257
+	* gcc.target/aarch64/cpunative/info_34: New test.
+	* gcc.target/aarch64/cpunative/native_cpu_34.c: New test.
+	* gcc.target/aarch64/cpunative/info_35: New test.
+	* gcc.target/aarch64/cpunative/native_cpu_35.c: New test.
+
 2025-01-27  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:

commit 8774d5076d0a30c0809dd96f3fdbec8f867eeac5
Author: Marek Polacek <polacek@redhat.com>
Date:   Mon Jan 13 15:09:14 2025 -0500

    c++: re-enable NSDMI CONSTRUCTOR folding [PR118355]
    
    In c++/102990 we had a problem where massage_init_elt got {},
    digest_nsdmi_init turned that {} into { .value = (int) 1.0e+0 },
    and we crashed in the call to fold_non_dependent_init because
    a FIX_TRUNC_EXPR/FLOAT_EXPR got into tsubst*.  So we avoided
    calling fold_non_dependent_init for a CONSTRUCTOR.
    
    But that broke the following test, where we no longer fold the
    CONST_DECL in
      { .type = ZERO }
    to
      { .type = 0 }
    and then process_init_constructor_array does:
    
                if (next != error_mark_node
                    && (initializer_constant_valid_p (next, TREE_TYPE (next))
                        != null_pointer_node))
                  {
                    /* Use VEC_INIT_EXPR for non-constant initialization of
                       trailing elements with no explicit initializers.  */
                    picflags |= PICFLAG_VEC_INIT;
    
    because { .type = ZERO } isn't initializer_constant_valid_p.  Then we
    create a VEC_INIT_EXPR and say we can't convert the argument.
    
    So we have to fold the elements of the CONSTRUCTOR.  We just can't
    instantiate the elements in a template.
    
    This also fixes c++/118047.
    
            PR c++/118047
            PR c++/118355
    
    gcc/cp/ChangeLog:
    
            * typeck2.cc (massage_init_elt): Call fold_non_dependent_init
            unless for a CONSTRUCTOR in a template.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/nsdmi-list10.C: New test.
            * g++.dg/cpp0x/nsdmi-list9.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit e939005c496dfd4058fa57b6860bfadcabe4a111)

diff --git a/gcc/cp/typeck2.cc b/gcc/cp/typeck2.cc
index b04ec559aa0..e32a4c638c5 100644
--- a/gcc/cp/typeck2.cc
+++ b/gcc/cp/typeck2.cc
@@ -1537,10 +1537,10 @@ massage_init_elt (tree type, tree init, int nested, int flags,
     new_flags |= LOOKUP_AGGREGATE_PAREN_INIT;
   init = digest_init_r (type, init, nested ? 2 : 1, new_flags, complain);
   /* When we defer constant folding within a statement, we may want to
-     defer this folding as well.  Don't call this on CONSTRUCTORs because
-     their elements have already been folded, and we must avoid folding
-     the result of get_nsdmi.  */
-  if (TREE_CODE (init) != CONSTRUCTOR)
+     defer this folding as well.  Don't call this on CONSTRUCTORs in
+     a template because their elements have already been folded, and
+     we must avoid folding the result of get_nsdmi.  */
+  if (!(processing_template_decl && TREE_CODE (init) == CONSTRUCTOR))
     {
       tree t = fold_non_dependent_init (init, complain);
       if (TREE_CONSTANT (t))
diff --git a/gcc/testsuite/g++.dg/cpp0x/nsdmi-list10.C b/gcc/testsuite/g++.dg/cpp0x/nsdmi-list10.C
new file mode 100644
index 00000000000..36b74749cbf
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/nsdmi-list10.C
@@ -0,0 +1,35 @@
+// PR c++/118047
+// { dg-do compile { target c++11 } }
+
+typedef decltype(sizeof(char)) size_t;
+
+namespace std {
+template <typename T>
+struct initializer_list {
+  const T *_M_array;
+  size_t _M_len;
+  constexpr size_t size() const { return _M_len; }
+};
+}
+
+enum E {
+    One
+};
+
+struct A {
+    E e = One;
+};
+
+struct B {
+    A as[1] {};
+};
+
+struct V
+{
+  constexpr V(const std::initializer_list<B> &a) : size(a.size()){}
+  int size;
+};
+
+constexpr V a{{}};
+
+static_assert(a.size == 1, "");
diff --git a/gcc/testsuite/g++.dg/cpp0x/nsdmi-list9.C b/gcc/testsuite/g++.dg/cpp0x/nsdmi-list9.C
new file mode 100644
index 00000000000..ae69ba0810d
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/nsdmi-list9.C
@@ -0,0 +1,34 @@
+// PR c++/118355
+// { dg-do compile { target c++11 } }
+
+enum MY_ENUM
+{
+  ZERO,
+};
+
+struct FOO
+{
+  MY_ENUM type = ZERO;
+};
+
+struct ARR
+{
+  FOO array[1] = {};
+};
+
+template<typename>
+struct ARR2
+{
+  FOO array[1] = {};
+};
+
+void
+g ()
+{
+
+  ARR arr;
+  arr = {};
+
+  ARR2<int> arr2;
+  arr2 = {};
+}

commit f0420cc224db64efe87cbe2f45d4d7ba8deb9eb0
Author: Patrick Palka <ppalka@redhat.com>
Date:   Wed Jan 29 10:02:28 2025 -0500

    libstdc++: Fix views::transform(move_only_fn{}) forwarding [PR118413]
    
    The range adaptor perfect forwarding simplification mechanism is currently
    only enabled for trivially copyable bound arguments, to prevent undesirable
    copies of complex objects.  But "trivially copyable" is the wrong property
    to check for here, since a move-only type with a trivial move constructor
    is considered trivially copyable, and after P2492R2 we can't assume copy
    constructibility of the bound arguments.  This patch makes the mechanism
    more specifically check for trivial copy constructibility instead so
    that it's properly disabled for move-only bound arguments.
    
            PR libstdc++/118413
    
    libstdc++-v3/ChangeLog:
    
            * include/std/ranges (views::__adaptor::_Partial): Adjust
            constraints on the "simple" partial specializations to require
            is_trivially_copy_constructible_v instead of
            is_trivially_copyable_v.
            * testsuite/std/ranges/adaptors/adjacent_transform/1.cc (test04):
            Extend P2494R2 test.
            * testsuite/std/ranges/adaptors/transform.cc (test09): Likewise.
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 09d1cbee10b8c51aed48f047f30717f622d6f811)

diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index eba53917684..a966699479b 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -1122,7 +1122,7 @@ namespace views::__adaptor
   // which makes overload resolution failure diagnostics more concise.
   template<typename _Adaptor, typename... _Args>
     requires __adaptor_has_simple_extra_args<_Adaptor, _Args...>
-      && (is_trivially_copyable_v<_Args> && ...)
+      && (is_trivially_copy_constructible_v<_Args> && ...)
     struct _Partial<_Adaptor, _Args...> : _RangeAdaptorClosure<_Partial<_Adaptor, _Args...>>
     {
       tuple<_Args...> _M_args;
@@ -1153,7 +1153,7 @@ namespace views::__adaptor
   // where _Adaptor accepts a single extra argument.
   template<typename _Adaptor, typename _Arg>
     requires __adaptor_has_simple_extra_args<_Adaptor, _Arg>
-      && is_trivially_copyable_v<_Arg>
+      && is_trivially_copy_constructible_v<_Arg>
     struct _Partial<_Adaptor, _Arg> : _RangeAdaptorClosure<_Partial<_Adaptor, _Arg>>
     {
       _Arg _M_arg;
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
index a5791b3da70..772e4b3b6a0 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
@@ -110,6 +110,7 @@ test04()
   };
   // P2494R2 Relaxing range adaptors to allow for move only types
   static_assert( requires { views::pairwise_transform(x, move_only{}); } );
+  static_assert( requires { x | views::pairwise_transform(move_only{}); } );
 }
 
 int
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
index e1b74353e63..783b0fba7e1 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
@@ -191,8 +191,10 @@ test09()
 #if __cpp_lib_ranges >= 202207L
   // P2494R2 Relaxing range adaptors to allow for move only types
   static_assert( requires { transform(x, move_only{}); } );
+  static_assert( requires { x | transform(move_only{}); } ); // PR libstdc++/118413
 #else
   static_assert( ! requires { transform(x, move_only{}); } );
+  static_assert( ! requires { x | transform(move_only{}); } );
 #endif
 }
 

commit 50c111ecd1ae8eb8af0e7938305de7af892ba9ab
Author: Siddhesh Poyarekar <siddhesh@gotplt.org>
Date:   Thu Dec 19 08:09:15 2024 -0500

    testsuite/118127: Pass fortran tests on ppc64le for IEEE128 long doubles
    
    Denormal behaviour is well defined for IEEE128 long doubles, so
    XFAIL some gfortran tests only for targets with the IBM128 long double
    ABI.
    
    gcc/testsuite/ChangeLog:
    
            PR testsuite/118127
            * lib/target-supports.exp
            (check_effective_target_long_double_is_ibm128): New
            procedure.
            * gfortran.dg/default_format_2.f90: xfail for
            long_double_is_ibm128.
            * gfortran.dg/default_format_denormal_2.f90: Likewise.
            * gfortran.dg/large_real_kind_form_io_2.f90: Likewise.
    
    Signed-off-by: Siddhesh Poyarekar <siddhesh@gotplt.org>
    (cherry picked from commit d4d4e874dee2d5b0abe5ceb9f2a78e5602e86030)

diff --git a/gcc/testsuite/gfortran.dg/default_format_2.f90 b/gcc/testsuite/gfortran.dg/default_format_2.f90
index 5ad7b3a6429..dd04d3aae98 100644
--- a/gcc/testsuite/gfortran.dg/default_format_2.f90
+++ b/gcc/testsuite/gfortran.dg/default_format_2.f90
@@ -1,4 +1,4 @@
-! { dg-do run { xfail powerpc*-apple-darwin* powerpc*-*-linux* } }
+! { dg-do run { xfail long_double_is_ibm128 } }
 ! { dg-require-effective-target fortran_large_real }
 ! Test XFAILed on these platforms because the system's printf() lacks
 ! proper support for denormalized long doubles. See PR24685
diff --git a/gcc/testsuite/gfortran.dg/default_format_denormal_2.f90 b/gcc/testsuite/gfortran.dg/default_format_denormal_2.f90
index e9ccf5e8f61..ae056d506a2 100644
--- a/gcc/testsuite/gfortran.dg/default_format_denormal_2.f90
+++ b/gcc/testsuite/gfortran.dg/default_format_denormal_2.f90
@@ -1,4 +1,4 @@
-! { dg-do run { xfail powerpc*-*-* } }
+! { dg-do run { xfail long_double_is_ibm128 } }
 ! { dg-require-effective-target fortran_large_real }
 ! Test XFAILed on this platform because the system's printf() lacks
 ! proper support for denormalized long doubles. See PR24685
diff --git a/gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90 b/gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90
index 34b8aec462c..7b5ca645b62 100644
--- a/gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90
+++ b/gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90
@@ -1,4 +1,4 @@
-! { dg-do run { xfail powerpc*-apple-darwin* powerpc*-*-linux* } }
+! { dg-do run { xfail long_double_is_ibm128 } }
 ! Test XFAILed on these platforms because the system's printf() lacks
 ! proper support for denormalized long doubles. See PR24685
 ! { dg-require-effective-target fortran_large_real }
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index be303e300dc..f8856846f02 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -1817,6 +1817,20 @@ proc check_effective_target_fortran_integer_16 { } {
     }]
 }
 
+# Check if long double on the target defaults to the IBM extended format.
+
+proc check_effective_target_long_double_is_ibm128 { } {
+    if { ![istarget powerpc*-*-*] } {
+      return 0
+    }
+
+    return [check_no_compiler_messages long_double_is_ibm128 assembly {
+      #ifndef __LONG_DOUBLE_IBM128__
+      #error "__LONG_DOUBLE_IBM128__ not defined"
+      #endif
+    }]
+}
+
 # Return 1 if we can statically link libgfortran, 0 otherwise.
 #
 # When the target name changes, replace the cached result.

commit b53d19a152cacfb4fcd1abb130d24a1c5dcaef15
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Tue Jan 28 21:21:40 2025 +0100

    Fortran: fix passing of component ref to assumed-rank dummy [PR118683]
    
    While the fix for pr117774 addressed the passing of an inquiry reference
    to an assumed-rank dummy, it missed the similar case of passing a component
    reference.  The newer testcase gfortran.dg/pr81978.f90 uncovered this
    latent issue with a UBSAN instrumented compiler.
    
            PR fortran/118683
    
    gcc/fortran/ChangeLog:
    
            * trans-expr.cc (gfc_conv_procedure_call): The bounds update for
            passing to assumed-rank dummies shall also handle component
            references besides inquiry references.
    
    (cherry picked from commit 5d001fa122bf04cfd0611ff7723969a0421b3094)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 1efe435f397..601cc546d43 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -7254,6 +7254,9 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
 		    {
 		      if (ref->next->type == REF_INQUIRY)
 			break;
+		      if (ref->type == REF_ARRAY
+			  && ref->u.ar.type != AR_ELEMENT)
+			break;
 		    };
 		  if (ref->u.ar.type == AR_FULL
 		      && ref->u.ar.as->type != AS_ASSUMED_SIZE)

commit a0550ff9f36a27a03c15d49383c6ec76fc6a8e99
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Jan 30 00:24:13 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index ee73a5fce07..850652b6bce 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250129
+20250130
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 1b9c19bf4ea..7274afec88c 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,13 @@
+2025-01-29  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-01-14  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/118047
+	PR c++/118355
+	* typeck2.cc (massage_init_elt): Call fold_non_dependent_init
+	unless for a CONSTRUCTOR in a template.
+
 2025-01-28  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index f1e5e280eb3..c3c15a5caa4 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,13 @@
+2025-01-29  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-01-29  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/118683
+	* trans-expr.cc (gfc_conv_procedure_call): The bounds update for
+	passing to assumed-rank dummies shall also handle component
+	references besides inquiry references.
+
 2025-01-24  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 44458b1ac48..6bca881cd36 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,27 @@
+2025-01-29  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+
+	Backported from master:
+	2025-01-29  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+
+	PR testsuite/118127
+	* lib/target-supports.exp
+	(check_effective_target_long_double_is_ibm128): New
+	procedure.
+	* gfortran.dg/default_format_2.f90: xfail for
+	long_double_is_ibm128.
+	* gfortran.dg/default_format_denormal_2.f90: Likewise.
+	* gfortran.dg/large_real_kind_form_io_2.f90: Likewise.
+
+2025-01-29  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-01-14  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/118047
+	PR c++/118355
+	* g++.dg/cpp0x/nsdmi-list10.C: New test.
+	* g++.dg/cpp0x/nsdmi-list9.C: New test.
+
 2025-01-28  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 407b901bea3..d2b80ef76be 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,17 @@
+2025-01-29  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-01-29  Patrick Palka  <ppalka@redhat.com>
+
+	PR libstdc++/118413
+	* include/std/ranges (views::__adaptor::_Partial): Adjust
+	constraints on the "simple" partial specializations to require
+	is_trivially_copy_constructible_v instead of
+	is_trivially_copyable_v.
+	* testsuite/std/ranges/adaptors/adjacent_transform/1.cc (test04):
+	Extend P2494R2 test.
+	* testsuite/std/ranges/adaptors/transform.cc (test09): Likewise.
+
 2025-01-27  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
 
 	Backported from master:

commit 58ad709f8ac8f4e0868e92da1149e89f2d7b32d5
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Jan 31 00:24:43 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 850652b6bce..d42c41347a3 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250130
+20250131

commit 63ea47f594c8aedaa0527ca73466aaa3b4f870bd
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Sun Jan 26 22:56:57 2025 +0100

    Fortran: fix bogus diagnostics on renamed interface import [PR110993]
    
            PR fortran/110993
    
    gcc/fortran/ChangeLog:
    
            * frontend-passes.cc (check_externals_procedure): Do not compare
            interfaces of a non-bind(C) procedure against a bind(C) global one.
            (check_against_globals): Use local name from rename-on-use in the
            search for interfaces.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/use_rename_14.f90: New test.
    
    (cherry picked from commit 9104472b645f76a212af9f9c58378500f9ba937e)

diff --git a/gcc/fortran/frontend-passes.cc b/gcc/fortran/frontend-passes.cc
index 3c06018fdbb..ed8f71a8623 100644
--- a/gcc/fortran/frontend-passes.cc
+++ b/gcc/fortran/frontend-passes.cc
@@ -5741,6 +5741,9 @@ check_externals_procedure (gfc_symbol *sym, locus *loc,
   if (gsym->ns)
     gfc_find_symbol (sym->name, gsym->ns, 0, &def_sym);
 
+  if (gsym->bind_c && def_sym && def_sym->binding_label == NULL)
+    return 0;
+
   if (def_sym)
     {
       gfc_compare_actual_formal (&actual, def_sym->formal, 0, 0, 0, loc);
@@ -5837,6 +5840,10 @@ check_against_globals (gfc_symbol *sym)
 
   if (sym->binding_label)
     sym_name = sym->binding_label;
+  else if (sym->attr.use_rename
+	   && sym->ns->use_stmts->rename
+	   && sym->ns->use_stmts->rename->local_name[0] != '\0')
+    sym_name = sym->ns->use_stmts->rename->local_name;
   else
     sym_name = sym->name;
 
diff --git a/gcc/testsuite/gfortran.dg/use_rename_14.f90 b/gcc/testsuite/gfortran.dg/use_rename_14.f90
new file mode 100644
index 00000000000..03815a5f229
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/use_rename_14.f90
@@ -0,0 +1,46 @@
+! { dg-do compile }
+!
+! PR fortran/110993 - bogus diagnostics on renamed interface import
+!
+! Contributed by Rimvydas Jasinskas <rimvydas.jas at gmail.com>
+
+module m
+  interface
+    subroutine bar(x)
+      use iso_c_binding, only : c_float
+      implicit none
+      real(c_float) :: x(45)
+    end subroutine
+  end interface
+end
+
+module m1
+  interface
+    subroutine bar1(x) bind(c)
+      use iso_c_binding, only : c_float
+      implicit none
+      real(c_float) :: x(45)
+    end subroutine
+  end interface
+end
+
+module m2
+  interface
+    subroutine bar2(x) bind(c, name="bar2_")
+      use iso_c_binding, only : c_float
+      implicit none
+      real(c_float) :: x(45)
+    end subroutine
+  end interface
+end
+
+subroutine foo(y)
+  use m,  notthisone => bar
+  use m1, northisone => bar1
+  use m2,  orthisone => bar2
+  implicit none
+  real :: y(3)
+  call bar (y)
+  call bar1(y)
+  call bar2(y)
+end subroutine

commit 7bc54a84a509e29c56512e654bda34327cda4fd6
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Feb 1 00:22:48 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index d42c41347a3..50ae9039749 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250131
+20250201
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index c3c15a5caa4..368ee43576d 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,14 @@
+2025-01-31  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-01-27  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/110993
+	* frontend-passes.cc (check_externals_procedure): Do not compare
+	interfaces of a non-bind(C) procedure against a bind(C) global one.
+	(check_against_globals): Use local name from rename-on-use in the
+	search for interfaces.
+
 2025-01-29  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6bca881cd36..468adf14955 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2025-01-31  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-01-27  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/110993
+	* gfortran.dg/use_rename_14.f90: New test.
+
 2025-01-29  Siddhesh Poyarekar  <siddhesh@gotplt.org>
 
 	Backported from master:

commit 8c79b66dbcaa63fb76abbae9d794dbce68338400
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Sat Feb 1 10:56:44 2025 +0100

    Ada: Fix segfault on uninitialized variable as operand of primitive operator
    
    ...of derived real type.  It comes from an unexpected internal adjustment.
    
    gcc/ada/
            PR ada/118712
            * sem_warn.adb (Check_References): Deal with small adjustments of
            references.
    
    gcc/testsuite/
            * gnat.dg/warn33.adb: New test.
            * gnat.dg/warn33_pkg.ads: New helper.

diff --git a/gcc/ada/sem_warn.adb b/gcc/ada/sem_warn.adb
index eaf9a257ba0..6a7d36e58d2 100644
--- a/gcc/ada/sem_warn.adb
+++ b/gcc/ada/sem_warn.adb
@@ -1229,6 +1229,10 @@ package body Sem_Warn is
                   UR := Unset_Reference (E1);
                end if;
 
+               --  Protect again small adjustments of reference
+
+               UR := Unqual_Conv (UR);
+
                --  Special processing for access types
 
                if Present (UR) and then Is_Access_Type (E1T) then
diff --git a/gcc/testsuite/gnat.dg/warn33.adb b/gcc/testsuite/gnat.dg/warn33.adb
new file mode 100644
index 00000000000..779e2d12cfc
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/warn33.adb
@@ -0,0 +1,9 @@
+--  { dg-do compile }
+
+with Warn33_Pkg; use Warn33_Pkg;
+
+procedure Warn33 is
+  Var : DerT;
+begin
+  Var := 1.0 - Var; -- { dg-warning "may be referenced before" }
+end;
diff --git a/gcc/testsuite/gnat.dg/warn33_pkg.ads b/gcc/testsuite/gnat.dg/warn33_pkg.ads
new file mode 100644
index 00000000000..326fda85f98
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/warn33_pkg.ads
@@ -0,0 +1,7 @@
+package Warn33_Pkg is
+
+  type GenT is delta 1.0 range 1.0 .. 10.0;
+  function "-" (X : GenT; Y : GenT) return GenT;
+  type DerT is new GenT;
+
+end Warn33_Pkg;

commit f89f3e5d4fb1fb12498fed2d3105bea367fb2c5c
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Feb 2 00:22:57 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 50ae9039749..ad51826fd80 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250201
+20250202
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 202cc035046..52c368213ab 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2025-02-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/118712
+	* sem_warn.adb (Check_References): Deal with small adjustments of
+	references.
+
 2025-01-06  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* exp_aggr.adb (Two_Pass_Aggregate_Expansion): Use the base type of
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 468adf14955..f4e8b4ff607 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2025-02-01  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* gnat.dg/warn33.adb: New test.
+	* gnat.dg/warn33_pkg.ads: New helper.
+
 2025-01-31  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:

commit c2b2e9cf14445da4c51f1b0c6b92f87fb25ca585
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Feb 3 00:22:01 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index ad51826fd80..7f9b55c65c3 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250202
+20250203

commit 1e77549e1860249abafb8fc325fc4c1885b0d8c4
Author: Lewis Hyatt <lhyatt@gmail.com>
Date:   Sun Jan 26 18:57:00 2025 -0500

    options: Adjust cl_optimization_compare to avoid checking ICE [PR115913]
    
    At the end of a sequence like:
     #pragma GCC push_options
     ...
     #pragma GCC pop_options
    
    the handler for pop_options calls cl_optimization_compare() (as generated by
    optc-save-gen.awk) to make sure that all global state has been restored to
    the value it had prior to the push_options call. The verification is
    performed for almost all entries in the global_options struct. This leads to
    unexpected checking asserts, as discussed in the PR, in case the state of
    warnings-related options has been intentionally modified in between
    push_options and pop_options via a call to #pragma GCC diagnostic. Address
    that by skipping the verification for CL_WARNING-flagged options.
    
    gcc/ChangeLog:
    
            PR middle-end/115913
            * optc-save-gen.awk (cl_optimization_compare): Skip options with
            CL_WARNING flag.
    
    gcc/testsuite/ChangeLog:
    
            PR middle-end/115913
            * c-c++-common/cpp/pr115913.c: New test.

diff --git a/gcc/optc-save-gen.awk b/gcc/optc-save-gen.awk
index a3af88e3776..2d36e58677b 100644
--- a/gcc/optc-save-gen.awk
+++ b/gcc/optc-save-gen.awk
@@ -1467,6 +1467,11 @@ for (i = 0; i < n_opts; i++) {
 	if (name == "")
 		continue;
 
+	# We do not want to compare warning-related options, since they
+	# might have been modified by a #pragma GCC diagnostic.
+	if (flag_set_p("Warning", flags[i]))
+		continue;
+
 	if (name in checked_options)
 		continue;
 	checked_options[name]++
diff --git a/gcc/testsuite/c-c++-common/cpp/pr115913.c b/gcc/testsuite/c-c++-common/cpp/pr115913.c
new file mode 100644
index 00000000000..b9d10cda8d2
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/cpp/pr115913.c
@@ -0,0 +1,7 @@
+/* { dg-do preprocess } */
+/* PR middle-end/115913 */
+#pragma GCC push_options
+#pragma GCC diagnostic warning "-Wundef"
+/* The call to cl_optimization_compare performed by pop_options should not
+   lead to a checking failure.  */
+#pragma GCC pop_options

commit b0bb0d9c58e3c7b15932c716d0108de8b2190b54
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Feb 4 00:22:40 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 92f8dcb4da4..398ae040a17 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2025-02-03  Lewis Hyatt  <lhyatt@gmail.com>
+
+	PR middle-end/115913
+	* optc-save-gen.awk (cl_optimization_compare): Skip options with
+	CL_WARNING flag.
+
 2025-01-28  Tamar Christina  <tamar.christina@arm.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7f9b55c65c3..9be659a9cfd 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250203
+20250204
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f4e8b4ff607..f4f139b3940 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2025-02-03  Lewis Hyatt  <lhyatt@gmail.com>
+
+	PR middle-end/115913
+	* c-c++-common/cpp/pr115913.c: New test.
+
 2025-02-01  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* gnat.dg/warn33.adb: New test.

commit 65ecfbabb018896b600065c77f969475a43d529d
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Wed Nov 6 07:17:25 2024 +0000

    Fortran: F2008 passing of internal procs to a proc pointer [PR117434]
    
    2024-11-06  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/117434
            * interface.cc (gfc_compare_actual_formal): Skip 'Expected a
            procedure pointer error' if the formal argument typespec has an
            interface and the type of the actual arg is BT_PROCEDURE.
    
    gcc/testsuite/
            PR fortran/117434
            * gfortran.dg/proc_ptr_54.f90: New test. This is temporarily
            compile-only until one one seven four five five is fixed.
            * gfortran.dg/proc_ptr_55.f90: New test.
            * gfortran.dg/proc_ptr_56.f90: New test.
    
    (cherry picked from commit 4dbf4c0fdb188e1c348688de91e010f696cd59fc)

diff --git a/gcc/fortran/interface.cc b/gcc/fortran/interface.cc
index bf151dae743..c4f3a3b03fb 100644
--- a/gcc/fortran/interface.cc
+++ b/gcc/fortran/interface.cc
@@ -3495,12 +3495,17 @@ gfc_compare_actual_formal (gfc_actual_arglist **ap, gfc_formal_arglist *formal,
 
      skip_size_check:
 
-      /* Satisfy F03:12.4.1.3 by ensuring that a procedure pointer actual
-         argument is provided for a procedure pointer formal argument.  */
+      /* Satisfy either: F03:12.4.1.3 by ensuring that a procedure pointer
+	 actual argument is provided for a procedure pointer formal argument;
+	 or: F08:12.5.2.9 (F18:15.5.2.10) by ensuring that the effective
+	 argument shall be an external, internal, module, or dummy procedure.
+	 The interfaces are checked elsewhere.  */
       if (f->sym->attr.proc_pointer
 	  && !((a->expr->expr_type == EXPR_VARIABLE
 		&& (a->expr->symtree->n.sym->attr.proc_pointer
 		    || gfc_is_proc_ptr_comp (a->expr)))
+	       || (a->expr->ts.type == BT_PROCEDURE
+		   && f->sym->ts.interface)
 	       || (a->expr->expr_type == EXPR_FUNCTION
 		   && is_procptr_result (a->expr))))
 	{
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_54.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_54.f90
new file mode 100644
index 00000000000..e03ecb50740
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_54.f90
@@ -0,0 +1,95 @@
+! { dg-do compile }
+!
+! Test the fix for pr117434, in which the F2008 addition of being permitted to
+! pass an external, internal or module procedure to a dummy procedure pointer
+! gave the error "Expected a procedure pointer for argument ‘<arg_name>’ at (1).
+!
+! This testcase checks for correct results.
+!
+! Contributed by Damian Rouson  <damian@archaeologic.codes>
+!
+module julienne_test_description_m
+  implicit none
+
+  abstract interface
+    logical function test_function_i(arg)
+      integer, intent(in) :: arg
+    end function
+  end interface
+
+  type test_description_t
+    procedure(test_function_i), pointer, nopass :: test_function_
+  end type
+
+
+contains
+
+  type(test_description_t) function new_test_description(test_function)
+    procedure(test_function_i), intent(in), pointer :: test_function
+    new_test_description%test_function_ => test_function
+  end function
+
+end module
+
+module test_mod
+
+contains
+
+  logical function mod_test(arg)
+    integer, intent(in) :: arg
+    if (arg == 1) then
+      mod_test = .true.
+    else
+      mod_test = .false.
+    endif
+  end function
+
+end
+
+logical function ext_test(arg)
+  integer, intent(in) :: arg
+  if (arg == 2) then
+    ext_test = .true.
+  else
+    ext_test = .false.
+  endif
+end function
+
+  use julienne_test_description_m
+  use test_mod
+  implicit none
+  type(test_description_t) test_description
+
+  interface
+    logical function ext_test(arg)
+      integer, intent(in) :: arg
+    end function
+  end interface
+
+  test_description = new_test_description(test)
+  if (test_description%test_function_(1) &
+      .or. test_description%test_function_(2) &
+      .or. .not.test_description%test_function_(3)) stop 1
+
+  test_description = new_test_description(mod_test)
+  if (test_description%test_function_(2) &
+      .or. test_description%test_function_(3) &
+      .or. .not.test_description%test_function_(1)) stop 2
+
+  test_description = new_test_description(ext_test)
+  if (test_description%test_function_(1) &
+      .or. test_description%test_function_(3) &
+      .or. .not.test_description%test_function_(2)) stop 3
+
+contains
+
+  logical function test(arg)
+    integer, intent(in) :: arg
+    if (arg == 3) then
+      test = .true.
+    else
+      test = .false.
+    endif
+  end function
+
+end
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_55.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_55.f90
new file mode 100644
index 00000000000..7028634b54e
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_55.f90
@@ -0,0 +1,87 @@
+! { dg-do compile }
+!
+! Test the fix for pr117434, in which the F2008 addition of being permitted to
+! pass an external, internal or module procedure to a dummy procedure pointer
+! gave the error "Expected a procedure pointer for argument ‘<arg_name>’ at (1).
+!
+! This testcase tests that interface checking is OK in this situation.
+!
+! Contributed by Damian Rouson  <damian@archaeologic.codes>
+!
+module julienne_test_description_m
+  implicit none
+
+  abstract interface
+    logical function test_function_i(arg)
+      integer, intent(in) :: arg
+    end function
+  end interface
+
+  type test_description_t
+    procedure(test_function_i), pointer, nopass :: test_function_
+  end type
+
+
+contains
+
+  type(test_description_t) function new_test_description(test_function)
+    procedure(test_function_i), intent(in), pointer :: test_function
+    new_test_description%test_function_ => test_function
+  end function
+
+end module
+
+  use julienne_test_description_m
+  implicit none
+  type(test_description_t) test_description
+
+  test_description = new_test_description(test1)
+  test_description = new_test_description(test2) ! { dg-error "Type mismatch in function" }
+  test_description = new_test_description(test3) ! { dg-error "wrong number of arguments" }
+  test_description = new_test_description(test4) ! { dg-error "Rank mismatch in argument" }
+  test_description = new_test_description(test5) ! { dg-error "Rank mismatch in function result" }
+
+contains
+
+  logical function test1(arg)
+    integer, intent(in) :: arg
+    if (arg == 3) then
+      test1 = .true.
+    else
+      test1 = .false.
+    endif
+  end function
+
+  real function test2(arg)
+    integer, intent(in) :: arg
+    if (arg == 3) then
+      test2 = 1.0
+    else
+      test2 = 0.0
+    endif
+  end function
+
+  logical function test3()
+    test3 = .false.
+  end function
+
+  logical function test4(arg)
+    integer, intent(in) :: arg(:)
+    if (sum (arg) == 3) then
+      test4 = .true.
+    else
+      test4 = .false.
+    endif
+  end function
+
+  function test5(arg) result(res)
+    integer, intent(in) :: arg
+    logical :: res(2)
+    if (arg == 3) then
+      res = .true.
+    else
+      res = .false.
+    endif
+  end function
+
+end
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_56.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_56.f90
new file mode 100644
index 00000000000..ca5bed7e8f0
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_56.f90
@@ -0,0 +1,45 @@
+! { dg-do compile }
+! { dg-options "-std=f2003" }
+!
+! Test the fix for pr117434, in which the F2008 addition of being permitted to
+! pass an external, internal or module procedure to a dummy procedure pointer
+! gave the error "Expected a procedure pointer for argument ‘<arg_name>’ at (1).
+!
+! This testcase checks that -std=f2008 or later is required..
+!
+! Contributed by Damian Rouson  <damian@archaeologic.codes>
+!
+module julienne_test_description_m
+  implicit none
+
+  abstract interface
+    logical function test_function_i()
+    end function
+  end interface
+
+  type test_description_t
+    procedure(test_function_i), pointer, nopass :: test_function_
+  end type
+
+contains
+
+  type(test_description_t) function new_test_description(test_function)
+    procedure(test_function_i), intent(in), pointer :: test_function
+    new_test_description%test_function_ => test_function
+  end function
+
+end module
+
+  use julienne_test_description_m
+  implicit none
+  type(test_description_t) test_description
+
+  test_description = new_test_description(test) ! { dg-error "Fortran 2008:" }
+
+contains
+
+  logical function test()
+    test = .true.
+  end function
+
+end

commit 6f08060518a49b2b1eaf89100a07068eba3b30a9
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Feb 5 00:23:06 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 9be659a9cfd..e9825778341 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250204
+20250205
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 368ee43576d..80717a63753 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,13 @@
+2025-02-04  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-06  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/117434
+	* interface.cc (gfc_compare_actual_formal): Skip 'Expected a
+	procedure pointer error' if the formal argument typespec has an
+	interface and the type of the actual arg is BT_PROCEDURE.
+
 2025-01-31  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f4f139b3940..b26cc157e15 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2025-02-04  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-06  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/117434
+	* gfortran.dg/proc_ptr_54.f90: New test. This is temporarily
+	compile-only until one one seven four five five is fixed.
+	* gfortran.dg/proc_ptr_55.f90: New test.
+	* gfortran.dg/proc_ptr_56.f90: New test.
+
 2025-02-03  Lewis Hyatt  <lhyatt@gmail.com>
 
 	PR middle-end/115913

commit 6a4df914f62dce69910724ee793cdffeef3ba1df
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date:   Tue Feb 4 04:09:02 2025 +0100

    RTEMS: Add Cortex-M33 multilib
    
    Enable use of Armv8-M instruction set.
    
    Account for CVE-2021-35465 mitigation [PR102035].
    The -mfix-cmse-cve-2021-35465 option is enabled by default,
    if -mcpu=cortex-m33 is used.
    
    gcc/
    
            * config/arm/t-rtems: Add Cortex-M33 multilib.
    
    (cherry picked from commit f2a8f3c364a0d196efb0687ea421190b46d041d5)

diff --git a/gcc/config/arm/t-rtems b/gcc/config/arm/t-rtems
index b2fcf572bca..797640bd4f4 100644
--- a/gcc/config/arm/t-rtems
+++ b/gcc/config/arm/t-rtems
@@ -17,8 +17,8 @@ MULTILIB_DIRNAMES	+= eb
 MULTILIB_OPTIONS	+= mthumb
 MULTILIB_DIRNAMES	+= thumb
 
-MULTILIB_OPTIONS	+= march=armv5te+fp/march=armv6-m/march=armv7-a/march=armv7-a+simd/march=armv7-r/march=armv7-r+fp/mcpu=cortex-r52/mcpu=cortex-m3/mcpu=cortex-m4/mcpu=cortex-m4+nofp/mcpu=cortex-m7
-MULTILIB_DIRNAMES	+= armv5te+fp       armv6-m       armv7-a       armv7-a+simd       armv7-r       armv7-r+fp       cortex-r52      cortex-m3      cortex-m4      cortex-m4+nofp      cortex-m7
+MULTILIB_OPTIONS	+= march=armv5te+fp/march=armv6-m/march=armv7-a/march=armv7-a+simd/march=armv7-r/march=armv7-r+fp/mcpu=cortex-r52/mcpu=cortex-m3/mcpu=cortex-m33/mcpu=cortex-m4/mcpu=cortex-m4+nofp/mcpu=cortex-m7
+MULTILIB_DIRNAMES	+= armv5te+fp       armv6-m       armv7-a       armv7-a+simd       armv7-r       armv7-r+fp       cortex-r52      cortex-m3      cortex-m33      cortex-m4      cortex-m4+nofp      cortex-m7
 
 MULTILIB_OPTIONS	+= mfloat-abi=hard
 MULTILIB_DIRNAMES	+= hard
@@ -33,6 +33,7 @@ MULTILIB_REQUIRED	+= mthumb/march=armv7-r+fp/mfloat-abi=hard
 MULTILIB_REQUIRED	+= mthumb/march=armv7-r
 MULTILIB_REQUIRED	+= mthumb/mcpu=cortex-r52/mfloat-abi=hard
 MULTILIB_REQUIRED	+= mthumb/mcpu=cortex-m3
+MULTILIB_REQUIRED	+= mthumb/mcpu=cortex-m33
 MULTILIB_REQUIRED	+= mthumb/mcpu=cortex-m4/mfloat-abi=hard
 MULTILIB_REQUIRED	+= mthumb/mcpu=cortex-m4+nofp
 MULTILIB_REQUIRED	+= mthumb/mcpu=cortex-m7/mfloat-abi=hard

commit 8bca14a479cf18370fb82613bb265e1c337e87b3
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Feb 6 00:22:56 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 398ae040a17..c28d321e66a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2025-02-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	Backported from master:
+	2025-02-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	* config/arm/t-rtems: Add Cortex-M33 multilib.
+
 2025-02-03  Lewis Hyatt  <lhyatt@gmail.com>
 
 	PR middle-end/115913
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e9825778341..8817645f579 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250205
+20250206

commit 9a09fc9b8495f6cfa7b848b0064a96112dcb4a7f
Author: Lulu Cheng <chenglulu@loongson.cn>
Date:   Wed Jan 22 17:57:21 2025 +0800

    LoongArch: Fix ICE caused by illegal calls to builtin functions [PR118561].
    
            PR target/118561
    
    gcc/ChangeLog:
    
            * config/loongarch/loongarch-builtins.cc
            (loongarch_expand_builtin_lsx_test_branch):
            NULL_RTX will not be returned when an error is detected.
            (loongarch_expand_builtin): Likewise.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/loongarch/pr118561.c: New test.
    
    (cherry picked from commit 50d2bde68a097c2e9fb3bdd7e6664c8988889828)

diff --git a/gcc/config/loongarch/loongarch-builtins.cc b/gcc/config/loongarch/loongarch-builtins.cc
index 8a635938dee..669313ac9b7 100644
--- a/gcc/config/loongarch/loongarch-builtins.cc
+++ b/gcc/config/loongarch/loongarch-builtins.cc
@@ -3074,7 +3074,10 @@ loongarch_expand_builtin_lsx_test_branch (enum insn_code icode, tree exp)
     ops[1].value = force_reg (ops[1].mode, ops[1].value);
 
   if ((cbranch = maybe_gen_insn (icode, 3, ops)) == NULL_RTX)
-    error ("failed to expand built-in function");
+    {
+      error ("failed to expand built-in function");
+      return const0_rtx;
+    }
 
   cmp_result = gen_reg_rtx (SImode);
 
@@ -3114,7 +3117,7 @@ loongarch_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
     {
       error_at (EXPR_LOCATION (exp),
 		"built-in function %qD is not enabled", fndecl);
-      return target;
+      return target ? target : const0_rtx;
     }
 
   switch (d->builtin_type)
diff --git a/gcc/testsuite/gcc.target/loongarch/pr118561.c b/gcc/testsuite/gcc.target/loongarch/pr118561.c
new file mode 100644
index 00000000000..81a776eada3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/pr118561.c
@@ -0,0 +1,9 @@
+/* PR target/118561: ICE with -mfpu=none */
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=loongarch64 -mfpu=none" } */
+
+int
+test (void)
+{
+  return __builtin_loongarch_movfcsr2gr (0); /* { dg-error "built-in function '__builtin_loongarch_movfcsr2gr' is not enabled" } */
+}

commit ca652aebd30132b2a9afbc07c664a35b5e443350
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Thu Jan 30 22:21:19 2025 +0100

    Fortran: host association issue with symbol in COMMON block [PR108454]
    
    When resolving a flavorless symbol that is already registered with a COMMON
    block, and which neither has the intrinsic, generic, or external attribute,
    skip searching among interfaces to avoid false resolution to a derived type
    of the same name.
    
            PR fortran/108454
    
    gcc/fortran/ChangeLog:
    
            * resolve.cc (resolve_common_blocks): Initialize variable.
            (resolve_symbol): If a symbol is already registered with a COMMON
            block, do not search for an interface with the same name.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/common_29.f90: New test.
    
    (cherry picked from commit d6418fe22684f9335474d1fd405ade45954c069d)

diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index ca591e15e01..4d5e8b5537a 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -1040,7 +1040,7 @@ resolve_common_vars (gfc_common_head *common_block, bool named_common)
 static void
 resolve_common_blocks (gfc_symtree *common_root)
 {
-  gfc_symbol *sym;
+  gfc_symbol *sym = NULL;
   gfc_gsymbol * gsym;
 
   if (common_root == NULL)
@@ -16354,6 +16354,12 @@ resolve_symbol (gfc_symbol *sym)
 	  && sym->attr.if_source == IFSRC_UNKNOWN
 	  && sym->ts.type == BT_UNKNOWN))
     {
+      /* A symbol in a common block might not have been resolved yet properly.
+	 Do not try to find an interface with the same name.  */
+      if (sym->attr.flavor == FL_UNKNOWN && !sym->attr.intrinsic
+	  && !sym->attr.generic && !sym->attr.external
+	  && sym->attr.in_common)
+	goto skip_interfaces;
 
     /* If we find that a flavorless symbol is an interface in one of the
        parent namespaces, find its symtree in this namespace, free the
@@ -16377,6 +16383,7 @@ resolve_symbol (gfc_symbol *sym)
 	    }
 	}
 
+skip_interfaces:
       /* Otherwise give it a flavor according to such attributes as
 	 it has.  */
       if (sym->attr.flavor == FL_UNKNOWN && sym->attr.external == 0
diff --git a/gcc/testsuite/gfortran.dg/common_29.f90 b/gcc/testsuite/gfortran.dg/common_29.f90
new file mode 100644
index 00000000000..66f2a18a483
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/common_29.f90
@@ -0,0 +1,34 @@
+! { dg-do compile }
+! PR fortran/108454
+!
+! Contributed by G.Steinmetz
+
+module m
+  type t
+  end type
+contains
+  subroutine s
+    common t
+  end
+end
+
+module m2
+  implicit none
+  type t
+  end type
+contains
+  subroutine s
+    real :: t
+    common /com/ t
+  end
+end
+
+module m3
+  type t
+  end type
+contains
+  subroutine s
+    type(t) :: x  ! { dg-error "cannot be host associated at .1." }
+    common t      ! { dg-error "incompatible object of the same name" }
+  end
+end

commit 373e2dbc5d923b6f366a637e561bc457740164db
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Feb 7 00:24:04 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c28d321e66a..bea3235a919 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2025-02-06  Lulu Cheng  <chenglulu@loongson.cn>
+
+	Backported from master:
+	2025-02-06  Lulu Cheng  <chenglulu@loongson.cn>
+
+	PR target/118561
+	* config/loongarch/loongarch-builtins.cc
+	(loongarch_expand_builtin_lsx_test_branch):
+	NULL_RTX will not be returned when an error is detected.
+	(loongarch_expand_builtin): Likewise.
+
 2025-02-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 8817645f579..293639e3137 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250206
+20250207
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 80717a63753..a468b54d592 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,13 @@
+2025-02-06  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-01-31  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/108454
+	* resolve.cc (resolve_common_blocks): Initialize variable.
+	(resolve_symbol): If a symbol is already registered with a COMMON
+	block, do not search for an interface with the same name.
+
 2025-02-04  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b26cc157e15..802ee745b48 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,19 @@
+2025-02-06  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-01-31  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/108454
+	* gfortran.dg/common_29.f90: New test.
+
+2025-02-06  Lulu Cheng  <chenglulu@loongson.cn>
+
+	Backported from master:
+	2025-02-06  Lulu Cheng  <chenglulu@loongson.cn>
+
+	PR target/118561
+	* gcc.target/loongarch/pr118561.c: New test.
+
 2025-02-04  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:

commit 4d4c5ec93d65752a4aeda6bf2c9efe429e637969
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Sat Jan 11 08:23:48 2025 +0000

    Fortran: Fix error recovery for bad component arrayspecs [PR108434]
    
    2025-01-11  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran/
            PR fortran/108434
            * class.cc (generate_finalization_wrapper): To avoid memory
            leaks from callocs, return immediately if the derived type
            error flag is set.
            * decl.cc (build_struct): If the declaration of a derived type
            or class component does not have a deferred arrayspec, correct,
            set the error flag of the derived type and emit an immediate
            error.
    
    gcc/testsuite/
            PR fortran/108434
            * gfortran.dg/pr108434.f90 : Add tests from comment 1.
    
    (cherry picked from commit d64ca15351029164bac30b49fb3c4f9723e755de)

diff --git a/gcc/fortran/class.cc b/gcc/fortran/class.cc
index d34bd25cb5e..513278ffa53 100644
--- a/gcc/fortran/class.cc
+++ b/gcc/fortran/class.cc
@@ -1726,7 +1726,7 @@ generate_finalization_wrapper (gfc_symbol *derived, gfc_namespace *ns,
   gfc_expr *ancestor_wrapper = NULL, *rank;
   gfc_iterator *iter;
 
-  if (derived->attr.unlimited_polymorphic)
+  if (derived->attr.unlimited_polymorphic || derived->error)
     {
       vtab_final->initializer = gfc_get_null_expr (NULL);
       return;
diff --git a/gcc/fortran/decl.cc b/gcc/fortran/decl.cc
index 119c9dffa03..2647d5f5ea6 100644
--- a/gcc/fortran/decl.cc
+++ b/gcc/fortran/decl.cc
@@ -2420,11 +2420,24 @@ build_struct (const char *name, gfc_charlen *cl, gfc_expr **init,
     }
   else if (c->attr.allocatable)
     {
+      const char *err = G_("Allocatable component of structure at %C must have "
+			   "a deferred shape");
       if (c->as->type != AS_DEFERRED)
 	{
-	  gfc_error ("Allocatable component of structure at %C must have a "
-		     "deferred shape");
-	  return false;
+	  if (c->ts.type == BT_CLASS || c->ts.type == BT_DERIVED)
+	    {
+	      /* Issue an immediate error and allow this component to pass for
+		 the sake of clean error recovery.  Set the error flag for the
+		 containing derived type so that finalizers are not built.  */
+	      gfc_error_now (err);
+	      s->sym->error = 1;
+	      c->as->type = AS_DEFERRED;
+	    }
+	  else
+	    {
+	      gfc_error (err);
+	      return false;
+	    }
 	}
     }
   else
diff --git a/gcc/testsuite/gfortran.dg/pr108434.f90 b/gcc/testsuite/gfortran.dg/pr108434.f90
index e1768a57574..b7f43533805 100644
--- a/gcc/testsuite/gfortran.dg/pr108434.f90
+++ b/gcc/testsuite/gfortran.dg/pr108434.f90
@@ -1,11 +1,19 @@
 ! { dg-do compile }
 ! PR fortran/108434 - ICE in class_allocatable
-! Contributed by G.Steinmetz
+! Contributed by G.Steinmetz  <gscfq@t-online.de>
 
 program p
   type t
      class(c), pointer :: a(2) ! { dg-error "must have a deferred shape" }
   end type t
+  type s
+     class(d), allocatable :: a(2) ! { dg-error "must have a deferred shape|not been declared" }
+  end type
+  type u
+     type(e),  allocatable :: b(2) ! { dg-error "must have a deferred shape|not been declared" }
+  end type
   class(t), allocatable :: x
   class(t), pointer     :: y
+  class(s), allocatable :: x2
+  class(s), pointer :: y2
 end

commit 1cd744a6828f6ab9179906d16434ea40b6404737
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Thu Feb 6 16:40:19 2025 +0000

    Fortran:  FIx ICE in associate with elemental function [PR118750]
    
    2025-02-06  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/118750
            * resolve.cc (resolve_assoc_var): If the target expression has
            a rank, do not use gfc_expression_rank, since it will return 0
            if the function is elemental. Resolution will have produced the
            correct rank.
    
    gcc/testsuite/
            PR fortran/118750
            * gfortran.dg/associate_72.f90: New test.
    
    (cherry picked from commit a03303b4d5b2ca58e5750a4d5bd735d85a091273)

diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index 4d5e8b5537a..a0ed0e516da 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -9547,7 +9547,7 @@ resolve_assoc_var (gfc_symbol* sym, bool resolve_target)
 			  || gfc_is_ptr_fcn (target));
 
   /* Finally resolve if this is an array or not.  */
-  if (target->expr_type == EXPR_FUNCTION
+  if (target->expr_type == EXPR_FUNCTION && target->rank == 0
       && (sym->ts.type == BT_CLASS || sym->ts.type == BT_DERIVED))
     {
       gfc_expression_rank (target);
diff --git a/gcc/testsuite/gfortran.dg/associate_72.f90 b/gcc/testsuite/gfortran.dg/associate_72.f90
new file mode 100644
index 00000000000..993ebdfd5a7
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/associate_72.f90
@@ -0,0 +1,26 @@
+! { dg-do compile }
+! { dg-options "-fdump-tree-original" }
+!
+! Test the fix for the 14/15 regression PR118750
+!
+! Contributed by Damian Rouson  <damian@archaeologic.codes>
+!
+  implicit none
+
+  type string_t
+    character(:), allocatable :: str
+  end type
+
+  associate(str_a => get_string([string_t ("abcd"),string_t ("ef")]))
+    if (str_a(1)%str//str_a(2)%str /= "abcdef") STOP 1 ! Returned "Invalid array reference at (1)"
+  end associate
+
+contains
+
+  type(string_t) elemental function get_string(mold)
+    class(string_t), intent(in) :: mold
+    get_string = string_t(mold%str)
+  end function
+
+end 
+! { dg-final { scan-tree-dump-times "array01_string_t str_a" 1 "original" } }

commit 4098d67d92908d6a870bca14975d0ab88de72756
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Feb 8 00:22:01 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 293639e3137..f9d9d8c45b9 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250207
+20250208
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index a468b54d592..95dd5244690 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,28 @@
+2025-02-07  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2025-02-06  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/118750
+	* resolve.cc (resolve_assoc_var): If the target expression has
+	a rank, do not use gfc_expression_rank, since it will return 0
+	if the function is elemental. Resolution will have produced the
+	correct rank.
+
+2025-02-07  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2025-01-11  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/108434
+	* class.cc (generate_finalization_wrapper): To avoid memory
+	leaks from callocs, return immediately if the derived type
+	error flag is set.
+	* decl.cc (build_struct): If the declaration of a derived type
+	or class component does not have a deferred arrayspec, correct,
+	set the error flag of the derived type and emit an immediate
+	error.
+
 2025-02-06  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 802ee745b48..1a2e590096e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,19 @@
+2025-02-07  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2025-02-06  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/118750
+	* gfortran.dg/associate_72.f90: New test.
+
+2025-02-07  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2025-01-11  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/108434
+	* gfortran.dg/pr108434.f90 : Add tests from comment 1.
+
 2025-02-06  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:

commit f93541fc86d534be7d843fc092e6cafc2a580c31
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Feb 9 00:21:48 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f9d9d8c45b9..11e801e0ed9 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250208
+20250209

commit 796849274c155d6f3430d94500cfa3c11fb59a1d
Author: Dimitry Andric <dimitry@andric.com>
Date:   Tue Jan 28 18:36:16 2025 +0100

    libgcc: On FreeBSD use GCC's crt objects for static linking
    
    Add crtbeginT.o to extra_parts on FreeBSD. This ensures we use GCC's
    crt objects for static linking. Otherwise it could mix crtbeginT.o
    from the base system with libgcc's crtend.o, possibly leading to
    segfaults.
    
    libgcc:
            PR target/118685
            * config.host (*-*-freebsd*): Add crtbeginT.o to extra_parts.
    
    Signed-off-by: Dimitry Andric <dimitry@andric.com>

diff --git a/libgcc/config.host b/libgcc/config.host
index 73329037044..8ad2f404786 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -289,7 +289,7 @@ case ${host} in
   # machine-specific sections may refine and add to this
   # configuration.
   tmake_file="$tmake_file t-freebsd t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
-  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+  extra_parts="crtbegin.o crtend.o crtbeginS.o crtbeginT.o crtendS.o"
   case ${target_thread_file} in
     posix)
       tmake_file="${tmake_file} t-freebsd-thread"

commit 282dedf4408f6e373de6caec958f5ba870c10b30
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Feb 10 00:22:46 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 11e801e0ed9..039de05fe6a 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250209
+20250210
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 34bea392b79..46caf136f50 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2025-02-09  Dimitry Andric  <dimitry@andric.com>
+
+	PR target/118685
+	* config.host (*-*-freebsd*): Add crtbeginT.o to extra_parts.
+
 2025-01-09  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:

commit 0faffd526d5dbed4960ef0aadc4ba96f9bf377de
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Jan 16 09:17:50 2025 +0100

    vec.h: Properly destruct elements in auto_vec auto storage [PR118400]
    
    For T with non-trivial destructors, we were destructing objects in the
    vector on release only when not using auto storage of auto_vec.
    
    The following patch calls truncate (0) instead of m_vecpfx.m_num clearing,
    and truncate takes care of that destruction:
      unsigned l = length ();
      gcc_checking_assert (l >= size);
      if (!std::is_trivially_destructible <T>::value)
        vec_destruct (address () + size, l - size);
      m_vecpfx.m_num = size;
    
    2025-01-16  Jakub Jelinek  <jakub@redhat.com>
    
            PR ipa/118400
            * vec.h (vec<T, va_heap, vl_ptr>::release): Call m_vec->truncate (0)
            instead of clearing m_vec->m_vecpfx.m_num.
    
    (cherry picked from commit 43f4d44bebd63b354f8798fcef512d4d2b42c655)

diff --git a/gcc/vec.h b/gcc/vec.h
index bc83827f644..84540d4802e 100644
--- a/gcc/vec.h
+++ b/gcc/vec.h
@@ -2020,7 +2020,7 @@ vec<T, va_heap, vl_ptr>::release (void)
 
   if (using_auto_storage ())
     {
-      m_vec->m_vecpfx.m_num = 0;
+      m_vec->truncate (0);
       return;
     }
 

commit 2349c6a442df76acd15b6efcd70f77ecd718f46a
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Jan 17 11:30:07 2025 +0100

    match.pd: Fix (FTYPE) N CMP (FTYPE) M optimization for GENERIC [PR118522]
    
    The last case of this optimization assumes that if 2 integral types
    have same precision and TYPE_UNSIGNED, then they are uselessly convertible.
    While that is very likely the case for GIMPLE, it is not the case for
    GENERIC, so the following patch adds there a convert so that the
    optimization produces also valid GENERIC.  Without it we got
    (int) p == b where b had _BitInt(32) type, so incompatible types.
    
    2025-01-17  Jakub Jelinek  <jakub@redhat.com>
    
            PR tree-optimization/118522
            * match.pd ((FTYPE) N CMP (FTYPE) M): Add convert, as in GENERIC
            integral types with the same precision and sign might actually not
            be compatible types.
    
            * gcc.dg/bitint-120.c: New test.
    
    (cherry picked from commit 3ab9eb6946f7b832834b3d808c5617935e0be727)

diff --git a/gcc/match.pd b/gcc/match.pd
index f16fdd2d776..8465af07df8 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -6548,7 +6548,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
          (icmp (convert:type2 @1) @2)
          (if (TYPE_PRECISION (type1) == TYPE_PRECISION (type2)
               && type1_signed_p == type2_signed_p)
-	  (icmp @1 @2))))))))))
+	  (icmp @1 (convert @2)))))))))))
 
 /* Optimize various special cases of (FTYPE) N CMP CST.  */
 (for cmp  (lt le eq ne ge gt)
diff --git a/gcc/testsuite/gcc.dg/bitint-120.c b/gcc/testsuite/gcc.dg/bitint-120.c
new file mode 100644
index 00000000000..51098881e14
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bitint-120.c
@@ -0,0 +1,11 @@
+/* PR tree-optimization/118522 */
+/* { dg-do compile { target bitint } } */
+/* { dg-options "-O2" } */
+
+_BitInt(32) b;
+
+int
+foo (unsigned short p)
+{
+  return p == (double) b;
+}

commit 2c9ebb837b7154d51a11c73880096e5d7e4566a9
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Jan 23 11:11:23 2025 +0100

    builtins: Store unspecified value to *exp for inf/nan [PR114877]
    
    The fold_builtin_frexp folding for NaN/Inf just returned the first argument
    with evaluating second arguments side-effects, rather than storing something
    to what the second argument points to.
    
    The PR argues that the C standard requires the function to store something
    there but what exactly is stored is unspecified, so not storing there
    anything can result in UB if the value isn't initialized and is read later.
    
    glibc and newlib store there 0, musl apparently doesn't store anything.
    
    The following patch stores there zero (or would you prefer storing there
    some other value, 42, INT_MAX, INT_MIN, etc.?; zero is cheapest to form
    in assembly though) and adjusts the test so that it
    doesn't rely on not storing there anything but instead checks for
    -Wmaybe-uninitialized warning to find out that something has been stored
    there.
    Unfortunately I had to disable the NaN tests for -O0, while we can fold
    __builtin_isnan (__builtin_nan ("")) at compile time, we can't fold
    __builtin_isnan ((i = 0, __builtin_nan (""))) at compile time.
    fold_builtin_classify uses just tree_expr_nan_p and if that isn't true
    (because expr is a COMPOUND_EXPR with tree_expr_nan_p on the second arg),
    it does
          arg = builtin_save_expr (arg);
          return fold_build2_loc (loc, UNORDERED_EXPR, type, arg, arg);
    and that isn't folded at -O0 further, as we wrap it into SAVE_EXPR and
    nothing propagates the NAN to the comparison.
    I think perhaps tree_expr_nan_p etc. could have case COMPOUND_EXPR:
    added and recurse on the second argument, but that feels like stage1
    material to me if we want to do that at all.
    
    2025-01-23  Jakub Jelinek  <jakub@redhat.com>
    
            PR middle-end/114877
            * builtins.cc (fold_builtin_frexp): Handle rvc_nan and rvc_inf cases
            like rvc_zero, return passed in arg and set *exp = 0.
    
            * gcc.dg/torture/builtin-frexp-1.c: Add -Wmaybe-uninitialized as
            dg-additional-options.
            (bar): New function.
            (TESTIT_FREXP2): Rework the macro so that it doesn't test whether
            nothing has been stored to what the second argument points to, but
            instead that something has been stored there, whatever it is.
            (main): Temporarily don't enable the nan tests for -O0.
    
    (cherry picked from commit d19b0682f18f9f5217aee8002e3d04f8ded04ae8)

diff --git a/gcc/builtins.cc b/gcc/builtins.cc
index 0788f58f637..4856f81797a 100644
--- a/gcc/builtins.cc
+++ b/gcc/builtins.cc
@@ -9441,14 +9441,16 @@ fold_builtin_frexp (location_t loc, tree arg0, tree arg1, tree rettype)
       switch (value->cl)
       {
       case rvc_zero:
+      case rvc_nan:
+      case rvc_inf:
 	/* For +-0, return (*exp = 0, +-0).  */
+	/* For +-NaN or +-Inf, *exp is unspecified, but something should
+	   be stored there so that it isn't read from uninitialized object.
+	   As glibc and newlib store *exp = 0 for +-Inf/NaN, storing
+	   0 here as well is easiest.  */
 	exp = integer_zero_node;
 	frac = arg0;
 	break;
-      case rvc_nan:
-      case rvc_inf:
-	/* For +-NaN or +-Inf, *exp is unspecified, return arg0.  */
-	return omit_one_operand_loc (loc, rettype, arg0, arg1);
       case rvc_normal:
 	{
 	  /* Since the frexp function always expects base 2, and in
diff --git a/gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c b/gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
index 2d1c1847b26..328b803e9a1 100644
--- a/gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
+++ b/gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
@@ -11,6 +11,7 @@
    floating point formats need -funsafe-math-optimizations.  */
 /* { dg-require-effective-target inf } */
 /* { dg-options "-funsafe-math-optimizations" { target powerpc*-*-* } } */
+/* { dg-additional-options "-Wmaybe-uninitialized" } */
 
 extern void link_error(int);
 
@@ -52,22 +53,36 @@ extern void link_error(int);
     link_error(__LINE__); \
   } while (0)
 
+int __attribute__ ((__noipa__))
+bar (int x)
+{
+  (void) x;
+  return 42;
+} 
+
 /* Test that FUNCRES(frexp(NEG FUNCARG(ARGARG),&i)) is false.  Check
-   the sign as well.  Ensure side-effects are evaluated in i.  */
+   the sign as well.  Ensure side-effects are evaluated in the second
+   frexp argument.  */
 #define TESTIT_FREXP2(NEG,FUNCARG,ARGARG,FUNCRES) do { \
-  int i=5; \
+  int i, j = 5; \
   if (!__builtin_##FUNCRES##f(__builtin_frexpf(NEG __builtin_##FUNCARG##f(ARGARG),&i)) \
-      || CKSGN_F(__builtin_frexpf(NEG __builtin_##FUNCARG##f(ARGARG),(i++,&i)), NEG __builtin_##FUNCARG##f(ARGARG)) \
-      || CKEXP(i,6)) \
+      || CKSGN_F(__builtin_frexpf(NEG __builtin_##FUNCARG##f(ARGARG),(j++,&i)), NEG __builtin_##FUNCARG##f(ARGARG)) \
+      || CKEXP(j,6)) \
     link_error(__LINE__); \
+  if (CKEXP(bar(i),42)) \
+    __builtin_abort(); \
   if (!__builtin_##FUNCRES(__builtin_frexp(NEG __builtin_##FUNCARG(ARGARG),&i)) \
-      || CKSGN(__builtin_frexp(NEG __builtin_##FUNCARG(ARGARG),(i++,&i)), NEG __builtin_##FUNCARG(ARGARG)) \
-      || CKEXP(i,7)) \
+      || CKSGN(__builtin_frexp(NEG __builtin_##FUNCARG(ARGARG),(j++,&i)), NEG __builtin_##FUNCARG(ARGARG)) \
+      || CKEXP(j,7)) \
     link_error(__LINE__); \
+  if (CKEXP(bar(i),42)) \
+    __builtin_abort(); \
   if (!__builtin_##FUNCRES##l(__builtin_frexpl(NEG __builtin_##FUNCARG##l(ARGARG),&i)) \
-      || CKSGN_L(__builtin_frexpl(NEG __builtin_##FUNCARG##l(ARGARG),(i++,&i)), NEG __builtin_##FUNCARG##l(ARGARG)) \
-      || CKEXP(i,8)) \
+      || CKSGN_L(__builtin_frexpl(NEG __builtin_##FUNCARG##l(ARGARG),(j++,&i)), NEG __builtin_##FUNCARG##l(ARGARG)) \
+      || CKEXP(j,8)) \
     link_error(__LINE__); \
+  if (CKEXP(bar(i),42)) \
+    __builtin_abort(); \
   } while (0)
 
 void __attribute__ ((__noinline__))
@@ -111,8 +126,10 @@ foo(void)
      Exponent is left unspecified, but we test for side-effects.  */
   TESTIT_FREXP2 ( ,inf, , isinf);
   TESTIT_FREXP2 (- ,inf, , isinf);
+#ifdef __OPTIMIZE__
   TESTIT_FREXP2 ( ,nan, "", isnan);
   TESTIT_FREXP2 (- ,nan, "", isnan);
+#endif
 }
 
 int main()

commit 7a369b6a5589c7d9187701ee916f939307e00a86
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Jan 23 11:46:18 2025 +0100

    tree-assume: Fix UB in assume_query [PR118605]
    
    The assume_query constructor does
    assume_query::assume_query (function *f, bitmap p) : m_parm_list (p),
                                                         m_func (f)
    where m_parm_list is bitmap &.  This is compile time UB, because
    as soon as the constructor returns, m_parm_list reference is still
    bound to the parameter of the constructor which is no longer in scope.
    
    Now, one possible fix would be change the ctor argument to be bitmap &,
    but that doesn't really work because in the only user of that class
    we have
          auto_bitmap decls;
    ...
          assume_query query (fun, decls);
    and auto_bitmap just has
      operator bitmap () { return &m_bits; }
    Could be perhaps const bitmap &, but why?  bitmap is a pointer:
    typedef class bitmap_head *bitmap;
    and the EXECUTE_IF_SET_IN_BITMAP macros don't really change that point,
    they just inspect what is inside of that bitmap_head the pointer points
    to.
    
    So, the simplest I think is avoid references (which cause even worse
    code as it has to be dereferenced twice rather than once).
    
    2025-01-23  Jakub Jelinek  <jakub@redhat.com>
    
            PR tree-optimization/118605
            * tree-assume.cc (assume_query::m_parm_list): Change type
            from bitmap & to bitmap.
    
    (cherry picked from commit 27a05f8d11798889ecfb610db9bde781c3d218f7)

diff --git a/gcc/tree-assume.cc b/gcc/tree-assume.cc
index 10c1343492c..58b800fbe6c 100644
--- a/gcc/tree-assume.cc
+++ b/gcc/tree-assume.cc
@@ -98,7 +98,7 @@ protected:
   ssa_lazy_cache m_path;   // Values found on path
   ssa_lazy_cache m_parms;  // Cumulative parameter value calculated
   gimple_ranger *m_ranger;
-  bitmap &m_parm_list;	   // Parameter ssa-names list.
+  bitmap m_parm_list;	   // Parameter ssa-names list.
   function *m_func;
 };
 

commit 15e66f7c2409ddee058afc61a3760d0d055c2f83
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Jan 25 10:15:24 2025 +0100

    c++: Only destruct elts of array for new expression if exception is thrown during the initialization [PR117827]
    
    The following testcase r12-6328, because the elements of the array
    are destructed twice, once when the callee encounters delete[] p;
    and then second time when the exception is thrown.
    The array elts should be only destructed if exception is thrown from
    one of the constructors during the build_vec_init emitted code in case of
    new expressions, but when the new expression completes, it is IMO
    responsibility of user code to delete[] it when it is no longer needed.
    
    So, the following patch uses the cleanup_flags argument to build_vec_init
    to get notified of the flags that need to be changed when the expression
    is complete and build_disable_temp_cleanup to do the changes.
    
    2025-01-25  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/117827
            * init.cc (build_new_1): Pass address of a make_tree_vector ()
            initialized gc tree vector to build_vec_init and append
            build_disable_temp_cleanup to init_expr from it.
    
            * g++.dg/init/array66.C: New test.
    
    (cherry picked from commit ce268ca2a923f8f35cc9dd5a7d0468a3980f129f)

diff --git a/gcc/cp/init.cc b/gcc/cp/init.cc
index f363e5960fe..22d93793a4d 100644
--- a/gcc/cp/init.cc
+++ b/gcc/cp/init.cc
@@ -3693,6 +3693,11 @@ build_new_1 (vec<tree, va_gc> **placement, tree type, tree nelts,
                 error ("parenthesized initializer in array new");
 	      return error_mark_node;
             }
+
+	  /* Collect flags for disabling subobject cleanups once the complete
+	     object is fully constructed.  */
+	  vec<tree, va_gc> *flags = make_tree_vector ();
+
 	  init_expr
 	    = build_vec_init (data_addr,
 			      cp_build_binary_op (input_location,
@@ -3702,7 +3707,17 @@ build_new_1 (vec<tree, va_gc> **placement, tree type, tree nelts,
 			      vecinit,
 			      explicit_value_init_p,
 			      /*from_array=*/0,
-                              complain);
+			      complain,
+			      &flags);
+
+	  for (tree f : flags)
+	    {
+	      tree cl = build_disable_temp_cleanup (f);
+	      cl = convert_to_void (cl, ICV_STATEMENT, complain);
+	      init_expr = build2 (COMPOUND_EXPR, void_type_node,
+				  init_expr, cl);
+	    }
+	  release_tree_vector (flags);
 	}
       else
 	{
diff --git a/gcc/testsuite/g++.dg/init/array66.C b/gcc/testsuite/g++.dg/init/array66.C
new file mode 100644
index 00000000000..ca38df815de
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/array66.C
@@ -0,0 +1,33 @@
+// PR c++/117827
+// { dg-do run { target c++11 } }
+
+struct C {
+  int c;
+  static int d, e;
+  C () : c (0) { ++d; }
+  C (const C &) = delete;
+  C &operator= (const C &) = delete;
+  ~C () { ++e; }
+};
+int C::d, C::e;
+
+C *
+foo (C *p)
+{
+  delete[] p;
+  throw 1;
+}
+
+int
+main ()
+{
+  try
+    {
+      foo (new C[1] {});
+    }
+  catch (...)
+    {
+    }
+  if (C::d != C::e)
+    __builtin_abort ();
+}

commit 1dac899a10581dbcd55144456cca92d061190762
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Jan 28 10:14:05 2025 +0100

    combine: Fix up make_extraction [PR118638]
    
    The following testcase is miscompiled at -Os on x86_64-linux.
    The problem is during make_compound_operation of
    (ashiftrt:SI (ashift:SI (mult:SI (reg:SI 107 [ a_5 ])
                (const_int 3 [0x3]))
            (const_int 31 [0x1f]))
        (const_int 31 [0x1f]))
    where it incorrectly returns
    (mult:SI (sign_extract:SI (reg:SI 107 [ a_5 ])
            (const_int 2 [0x2])
            (const_int 0 [0]))
        (const_int 3 [0x3]))
    which isn't obviously true, the former returns either 0 or -1 depending
    on the least significant bit of the multiplication,
    the latter returns either 0 or -3 depending on the second least significant
    bit of the multiplication argument.
    
    The bug has been introduced in PR96998 r11-4563, which added handling of x
    * (2^N) similar to x << N.  In the above case, pos is 0 and len is 1,
    sign extracting a single least significant bit of the multiplication.
    As 3 is not a power of 2, shift_amt is -1.
    But IN_RANGE (-1, 1, 1 - 1) is still true, because the basic requirement of
    IN_RANGE that LOWER is not greater than UPPER is violated.
    The intention of using 1 as LOWER is to avoid matching multiplication by 1,
    that really shouldn't appear in the IL.  But to avoid violating IN_RANGE
    requirement, we need to verify that len is at least 2.
    
    I've added this len > 1 check to the inner if rather than outer because I
    think for GCC 16 we should add a further optimization.
    In the particular case of 1 least significant bit sign extraction from
    multiplication by 3, we could actually say it is equivalent to
    (sign_extract:SI (reg:SI 107 [ a_5 ])
            (const_int 1 [0x2])
            (const_int 0 [0]))
    That is because 3 is an odd number and multiplication by 2 will yield the
    least significant bit 0 (we are sign extracting just one) and so the
    multiplication doesn't change anything on the outcome.
    More generally, even for larger len, multiplication by C which is
    (1 << X) + 1 where X is >= len should be optimizable just to extraction
    of the multiplicand's least significant len bits.
    
    2025-01-28  Jakub Jelinek  <jakub@redhat.com>
    
            PR rtl-optimization/118638
            * combine.cc (make_extraction): Only optimize (mult x 2^n) if len is
            larger than 1.
    
            * gcc.c-torture/execute/pr118638.c: New test.
    
    (cherry picked from commit b529a417249335724d1f74bcf3167f6f9a623823)

diff --git a/gcc/combine.cc b/gcc/combine.cc
index 60afe043578..431a3042901 100644
--- a/gcc/combine.cc
+++ b/gcc/combine.cc
@@ -7588,7 +7588,7 @@ make_extraction (machine_mode mode, rtx inner, HOST_WIDE_INT pos,
 	 least significant (LEN - C) bits of X, giving an rtx
 	 whose mode is MODE, then multiply it by 2^C.  */
       const HOST_WIDE_INT shift_amt = exact_log2 (INTVAL (XEXP (inner, 1)));
-      if (IN_RANGE (shift_amt, 1, len - 1))
+      if (len > 1 && IN_RANGE (shift_amt, 1, len - 1))
 	{
 	  new_rtx = make_extraction (mode, XEXP (inner, 0),
 				     0, 0, len - shift_amt,
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr118638.c b/gcc/testsuite/gcc.c-torture/execute/pr118638.c
new file mode 100644
index 00000000000..5c0dbca5c09
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr118638.c
@@ -0,0 +1,20 @@
+/* PR rtl-optimization/118638 */
+
+__attribute__((noipa)) int
+foo (int x)
+{
+  int a = x != -3, b, c;
+  a *= 3;
+  b = 2 * x - 9;
+  a = a + b;
+  a = ~a;
+  c = a & 1;
+  return -c;
+}
+
+int
+main ()
+{
+  if (foo (0) != -1)
+    __builtin_abort ();
+}

commit b7553f76a7aac7ece958ff83661ac7b379f4d073
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Jan 29 09:32:04 2025 +0100

    c++: Return false from __is_bounded_array for zero-sized arrays [PR118655]
    
    This is basically Marek's PR114479 r14-9759 __is_array fix applied to
    __is_bounded_array as well.  Similarly to that trait, when not using
    the builtin it returned false for zero sized arrays but when using
    the builtin it returns true.
    
    2025-01-29  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/118655
            * semantics.cc (trait_expr_value) <case CPTK_IS_BOUNDED_ARRAY>: Return
            false for zero-sized arrays.
    
            * g++.dg/ext/is_bounded_array.C: Extend.
    
    (cherry picked from commit 3a6ddbf7b241e1cd9f73495ea373b0a12015bb07)

diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc
index 50e8deb9ef9..9ebe35dbaff 100644
--- a/gcc/cp/semantics.cc
+++ b/gcc/cp/semantics.cc
@@ -12527,7 +12527,14 @@ trait_expr_value (cp_trait_kind kind, tree type1, tree type2)
 		  || DERIVED_FROM_P (type1, type2)));
 
     case CPTK_IS_BOUNDED_ARRAY:
-      return type_code1 == ARRAY_TYPE && TYPE_DOMAIN (type1);
+      return (type_code1 == ARRAY_TYPE
+	      && TYPE_DOMAIN (type1)
+	      /* We don't want to report T[0] as being a bounded array type.
+		 This is for compatibility with an implementation of
+		 std::is_bounded_array by template argument deduction, because
+		 compute_array_index_type_loc rejects a zero-size array
+		 in SFINAE context.  */
+	      && !(TYPE_SIZE (type1) && integer_zerop (TYPE_SIZE (type1))));
 
     case CPTK_IS_CLASS:
       return NON_UNION_CLASS_TYPE_P (type1);
diff --git a/gcc/testsuite/g++.dg/ext/is_bounded_array.C b/gcc/testsuite/g++.dg/ext/is_bounded_array.C
index b5fe435de95..63cd4f89091 100644
--- a/gcc/testsuite/g++.dg/ext/is_bounded_array.C
+++ b/gcc/testsuite/g++.dg/ext/is_bounded_array.C
@@ -1,4 +1,5 @@
 // { dg-do compile { target c++11 } }
+// { dg-options "" }
 
 #define SA(X) static_assert((X),#X)
 
@@ -14,21 +15,34 @@
 
 class ClassType { };
 
+constexpr int sz0 = 0;
+constexpr int sz2 = 2;
+
 SA_TEST_CATEGORY(__is_bounded_array, int[2], true);
 SA_TEST_CATEGORY(__is_bounded_array, int[], false);
+SA_TEST_CATEGORY(__is_bounded_array, int[0], false);
 SA_TEST_CATEGORY(__is_bounded_array, int[2][3], true);
 SA_TEST_CATEGORY(__is_bounded_array, int[][3], false);
+SA_TEST_CATEGORY(__is_bounded_array, int[0][3], false);
+SA_TEST_CATEGORY(__is_bounded_array, int[3][0], false);
 SA_TEST_CATEGORY(__is_bounded_array, float*[2], true);
 SA_TEST_CATEGORY(__is_bounded_array, float*[], false);
 SA_TEST_CATEGORY(__is_bounded_array, float*[2][3], true);
 SA_TEST_CATEGORY(__is_bounded_array, float*[][3], false);
 SA_TEST_CATEGORY(__is_bounded_array, ClassType[2], true);
 SA_TEST_CATEGORY(__is_bounded_array, ClassType[], false);
+SA_TEST_CATEGORY(__is_bounded_array, ClassType[0], false);
 SA_TEST_CATEGORY(__is_bounded_array, ClassType[2][3], true);
 SA_TEST_CATEGORY(__is_bounded_array, ClassType[][3], false);
+SA_TEST_CATEGORY(__is_bounded_array, ClassType[0][3], false);
+SA_TEST_CATEGORY(__is_bounded_array, ClassType[2][0], false);
+SA_TEST_CATEGORY(__is_bounded_array, int[sz2], true);
+SA_TEST_CATEGORY(__is_bounded_array, int[sz0], false);
 SA_TEST_CATEGORY(__is_bounded_array, int(*)[2], false);
 SA_TEST_CATEGORY(__is_bounded_array, int(*)[], false);
+SA_TEST_CATEGORY(__is_bounded_array, int(*)[0], false);
 SA_TEST_CATEGORY(__is_bounded_array, int(&)[2], false);
+SA_TEST_CATEGORY(__is_bounded_array, int(&)[0], false);
 SA_TEST_FN(__is_bounded_array, int(&)[], false);
 
 // Sanity check.

commit acd0e21e964b266a7fa59461af7aa6918698a1bd
Author: Arsen Arsenović <arsen@aarsen.me>
Date:   Wed Jan 29 21:14:33 2025 +0100

    d: give dependency files better filenames [PR118477]
    
    Currently, the dependency files for root-file.o and common-file.o were
    both d/.deps/file.Po, which would cause parallel builds to fail
    sometimes with:
    
      make[3]: Leaving directory '/var/tmp/portage/sys-devel/gcc-14.1.1_p20240511/work/build/gcc'
      make[3]: Entering directory '/var/tmp/portage/sys-devel/gcc-14.1.1_p20240511/work/build/gcc'
      mv: cannot stat 'd/.deps/file.TPo': No such file or directory
      make[3]: *** [/var/tmp/portage/sys-devel/gcc-14.1.1_p20240511/work/gcc-14-20240511/gcc/d/Make-lang.in:421: d/root-file.o] Error 1 shuffle=131581365
    
    Also, this means that dependencies of one of root-file or common-file
    are missing when developing.  After this patch, those two files get
    assigned dependency files d/.deps/root-file.Po and
    d/.deps/common-file.Po respectively, so match the actual object
    files in the d/ subdirectory.
    
    There are other files with similar conflicts (mangle-package.o,
    visitor-package.o for instance).
    
    2025-01-29  Arsen Arsenović  <arsen@aarsen.me>
                Jakub Jelinek  <jakub@redhat.com>
    
            PR d/118477
            * Make-lang.in (DCOMPILE, DPOSTCOMPILE): Use $(basename $(@F))
            instead of $(*F).
    
    Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
    (cherry picked from commit d9ac0ad1e9a4ceec2d354ac0368da7462bea5675)

diff --git a/gcc/d/Make-lang.in b/gcc/d/Make-lang.in
index eaea6e039cf..30af9130192 100644
--- a/gcc/d/Make-lang.in
+++ b/gcc/d/Make-lang.in
@@ -65,8 +65,8 @@ ALL_DFLAGS = $(DFLAGS-$@) $(GDCFLAGS) -fversion=IN_GCC $(CHECKING_DFLAGS) \
 	$(WARN_DFLAGS)
 
 DCOMPILE.base = $(GDC) -c $(ALL_DFLAGS) -o $@
-DCOMPILE = $(DCOMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(*F).TPo
-DPOSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(*F).TPo $(@D)/$(DEPDIR)/$(*F).Po
+DCOMPILE = $(DCOMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(basename $(@F)).TPo
+DPOSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(basename $(@F)).TPo $(@D)/$(DEPDIR)/$(basename $(@F)).Po
 DLINKER = $(GDC) $(NO_PIE_FLAG) -lstdc++
 
 # Like LINKER, but use a mutex for serializing front end links.

commit 3f475f4ffa499858c143eaccdc0abafafc18f2ca
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Jan 31 11:02:41 2025 +0100

    niter: Make build_cltz_expr more robust [PR118689]
    
    Since my r15-7223 the niter analysis can recognize one loop during bootstrap
    as being ctz like.
    The patch just turned
    @@ -2173,7 +2173,7 @@ PROC m2pim_NumberIO_BinToStr (CARDINAL x
       _T535_44 = &buf[i.40_2]{lb: 1 sz: 4};
       _T536_45 = x_21 & 1;
       *_T535_44 = _T536_45;
    -  _T537_47 = x_21 / 2;
    +  _T537_47 = x_21 >> 1;
       x_48 = _T537_47;
       # DEBUG x => x_48
       if (x_48 != 0)
    which is not a big deal for the number_of_iterations_cltz optimization, it
    recognizes both right shift by 1 and unsigned division by 2 (and similarly
    for clz left shift by 1 or multiplication by 2).
    But starting with forwprop1 that change also resulted in
    @@ -1875,9 +1875,9 @@ PROC m2pim_NumberIO_BinToStr (CARDINAL x
       i.40_2 = (INTEGER) _T530_34;
       _T536_45 = x_21 & 1;
       MEM <CARDINAL[1:64]> [(CARDINAL *)&buf][i.40_2]{lb: 1 sz: 4} = _T536_45;
    -  _T537_47 = x_21 / 2;
    +  _T537_47 = x_21 >> 1;
       # DEBUG x => _T537_47
    -  if (x_21 > 1)
    +  if (_T537_47 != 0)
         goto <bb 3>; [INV]
       else
         goto <bb 8>; [INV]
    and apparently it is only the latter form that number_of_iterations_cltz
    pattern matches, not the former (after all, that was the exact reason
    for r15-7223).
    The problem is that build_cltz_expr assumes if IFN_C[LT]Z can't be used it
    can use the __builtin_c[lt]z{,l,ll} builtins, and while most of the FEs do
    create them, modula 2 does not.
    
    The following patch just lets us punt if the FE doesn't build those builtins.
    I've filed a PR against modula2 so that they add the builtins too.
    
    2025-01-31  Jakub Jelinek  <jakub@redhat.com>
    
            PR tree-optimization/118689
            PR modula2/115032
            * tree-ssa-loop-niter.cc (build_cltz_expr): Return NULL_TREE if fn is
            NULL and use_ifn is false.
    
    (cherry picked from commit 85e1714b0606579a339c234510063e057fe662af)

diff --git a/gcc/tree-ssa-loop-niter.cc b/gcc/tree-ssa-loop-niter.cc
index b71eb67fbc7..ba4b056e96e 100644
--- a/gcc/tree-ssa-loop-niter.cc
+++ b/gcc/tree-ssa-loop-niter.cc
@@ -2237,6 +2237,8 @@ build_cltz_expr (tree src, bool leading, bool define_at_zero)
 			      build_int_cst (integer_type_node, prec));
 	}
     }
+  else if (fn == NULL_TREE)
+    return NULL_TREE;
   else if (prec == 2 * lli_prec)
     {
       tree src1 = fold_convert (long_long_unsigned_type_node,

commit 916daed4ecb6ed8d329b66e97b9468c8f6e549bd
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Feb 1 00:50:24 2025 +0100

    icf: Compare call argument types in certain cases and asm operands [PR117432]
    
    compare_operand uses operand_equal_p under the hood, which e.g. for
    INTEGER_CSTs will just match the values rather regardless of their types.
    Now, in many comparing the type is redundant, if we have
      x_2 = y_3 + 1;
    we've already compared the type for the lhs and also for rhs1, there won't
    be any surprises on rhs2.
    As noted in the PR, there are cases where the type of the operand is the
    sole place of information and we don't want to ICF merge functions if the
    types differ.
    One case is stdarg functions, arguments passed to ..., it is different
    if we pass 1, 1L, 1LL.
    Another case are the K&R unprototyped functions (sure, gone in C23).
    And yet another case are inline asm operands, "r" (1) is different from "r"
    (1L) from "r" (1LL).
    
    So, the following patch determines based on lack of fntype (e.g. for
    internal functions), or on !prototype_p, or on stdarg_p (in that case
    using number of named arguments) which arguments need to have type checked
    and does that, plus compares types on inline asm operands (maybe it would be
    enough to do that just for input operands but we have just a routine to
    handle both and I didn't feel we need to differentiate).
    
    Furthermore, I've noticed fntype{1,2} isn't actually compared if it is a
    direct call (gimple_call_fndecl is non-NULL).  That is wrong too, we could
    have
      void (*fn) (int, long long) = (void (*) (int, long long)) foo;
      fn (1, 1LL);
    in one case and
      void (*fn) (long long, int) = (void (*) (long long, int)) foo;
      fn (1LL, 1);
    in another, both folded into a direct call of foo with different
    gimple_call_fntype.  Sure, one of them would be UB at runtime (or both), but
    what if we ICF merge it into something that into the one UB at runtime
    and the program actually calls the correct one only?
    
    2025-02-01  Jakub Jelinek  <jakub@redhat.com>
    
            PR ipa/117432
            * ipa-icf-gimple.cc (func_checker::compare_asm_inputs_outputs):
            Also return_false if operands have incompatible types.
            (func_checker::compare_gimple_call): Check fntype1 vs. fntype2
            compatibility for all non-internal calls and assume fntype1 and
            fntype2 are non-NULL for those.  For calls to non-prototyped
            calls or for stdarg_p functions after the last named argument (if any)
            check type compatibility of call arguments.
    
            * gcc.c-torture/execute/pr117432.c: New test.
            * gcc.target/i386/pr117432.c: New test.
    
    (cherry picked from commit ebd111a2896816e4f5ddf5108f361b3d9d287fa0)

diff --git a/gcc/ipa-icf-gimple.cc b/gcc/ipa-icf-gimple.cc
index 4c3174b68b6..5b31f56a913 100644
--- a/gcc/ipa-icf-gimple.cc
+++ b/gcc/ipa-icf-gimple.cc
@@ -459,7 +459,9 @@ func_checker::compare_asm_inputs_outputs (tree t1, tree t2,
 	return false;
 
       if (!compare_operand (TREE_VALUE (t1), TREE_VALUE (t2),
-			    get_operand_access_type (map, t1)))
+			    get_operand_access_type (map, t1))
+	  || !types_compatible_p (TREE_TYPE (TREE_VALUE (t1)),
+				  TREE_TYPE (TREE_VALUE (t2))))
 	return return_false ();
 
       tree p1 = TREE_PURPOSE (t1);
@@ -709,26 +711,37 @@ func_checker::compare_gimple_call (gcall *s1, gcall *s2)
       || gimple_call_alloca_for_var_p (s1) != gimple_call_alloca_for_var_p (s2))
     return false;
 
-  if (gimple_call_internal_p (s1)
-      && gimple_call_internal_fn (s1) != gimple_call_internal_fn (s2))
-    return false;
-
-  tree fntype1 = gimple_call_fntype (s1);
-  tree fntype2 = gimple_call_fntype (s2);
-
-  /* For direct calls we verify that types are compatible so if we matched
-     callees, callers must match, too.  For indirect calls however verify
-     function type.  */
-  if (!gimple_call_fndecl (s1))
+  unsigned check_arg_types_from = 0;
+  if (gimple_call_internal_p (s1))
     {
-      if ((fntype1 && !fntype2)
-	  || (!fntype1 && fntype2)
-	  || (fntype1 && !types_compatible_p (fntype1, fntype2)))
-	return return_false_with_msg ("call function types are not compatible");
+      if (gimple_call_internal_fn (s1) != gimple_call_internal_fn (s2))
+	return false;
     }
+  else
+    {
+      tree fntype1 = gimple_call_fntype (s1);
+      tree fntype2 = gimple_call_fntype (s2);
+      if (!types_compatible_p (fntype1, fntype2))
+	return return_false_with_msg ("call function types are not compatible");
+
+      if (comp_type_attributes (fntype1, fntype2) != 1)
+	return return_false_with_msg ("different fntype attributes");
 
-  if (fntype1 && fntype2 && comp_type_attributes (fntype1, fntype2) != 1)
-    return return_false_with_msg ("different fntype attributes");
+      check_arg_types_from = gimple_call_num_args (s1);
+      if (!prototype_p (fntype1) || !prototype_p (fntype2))
+	check_arg_types_from = 0;
+      else if (stdarg_p (fntype1))
+	{
+	  check_arg_types_from = list_length (TYPE_ARG_TYPES (fntype1));
+	  if (stdarg_p (fntype2))
+	    {
+	      unsigned n = list_length (TYPE_ARG_TYPES (fntype2));
+	      check_arg_types_from = MIN (check_arg_types_from, n);
+	    }
+	}
+      else if (stdarg_p (fntype2))
+	check_arg_types_from = list_length (TYPE_ARG_TYPES (fntype2));
+    }
 
   tree chain1 = gimple_call_chain (s1);
   tree chain2 = gimple_call_chain (s2);
@@ -746,6 +759,10 @@ func_checker::compare_gimple_call (gcall *s1, gcall *s2)
 
       if (!compare_operand (t1, t2, get_operand_access_type (&map, t1)))
 	return return_false_with_msg ("GIMPLE call operands are different");
+      if (i >= check_arg_types_from
+	  && !types_compatible_p (TREE_TYPE (t1), TREE_TYPE (t2)))
+	return return_false_with_msg ("GIMPLE call operand types are "
+				      "different");
     }
 
   /* Return value checking.  */
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr117432.c b/gcc/testsuite/gcc.c-torture/execute/pr117432.c
new file mode 100644
index 00000000000..23049fa1142
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr117432.c
@@ -0,0 +1,72 @@
+/* PR ipa/117432 */
+/* { dg-additional-options "-std=gnu2x" } */
+
+#include <stdarg.h>
+
+long long r;
+
+__attribute__((noipa)) void
+baz (int tag, ...)
+{
+  va_list ap;
+  va_start (ap, tag);
+  if (!r)
+    r = va_arg (ap, long long);
+  else
+    r = va_arg (ap, int);
+  va_end (ap);
+}
+
+void
+foo (void)
+{
+  baz (1, -1, 0);
+}
+
+void
+bar (void)
+{
+  baz (1, -1LL, 0);
+}
+
+__attribute__((noipa)) void
+qux (...)
+{
+  va_list ap;
+  va_start (ap);
+  if (!r)
+    r = va_arg (ap, long long);
+  else
+    r = va_arg (ap, int);
+  va_end (ap);
+}
+
+void
+corge (void)
+{
+  qux (-2, 0);
+}
+
+void
+fred (void)
+{
+  qux (-2LL, 0);
+}
+
+int
+main ()
+{
+  bar ();
+  if (r != -1LL)
+    __builtin_abort ();
+  foo ();
+  if (r != -1)
+    __builtin_abort ();
+  r = 0;
+  fred ();
+  if (r != -2LL)
+    __builtin_abort ();
+  corge ();
+  if (r != -2)
+    __builtin_abort ();
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr117432.c b/gcc/testsuite/gcc.target/i386/pr117432.c
new file mode 100644
index 00000000000..adc54b88344
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr117432.c
@@ -0,0 +1,17 @@
+/* PR ipa/117432 */
+/* { dg-do compile { target lp64 } } */
+/* { dg-options "-O2" } */
+/* { dg-final { scan-assembler "# myinsn %rax" } } */
+/* { dg-final { scan-assembler "# myinsn %eax" } } */
+
+void
+foo (void)
+{
+  asm volatile ("# myinsn %0" : : "r" (-42L));
+}
+
+void
+bar (void)
+{
+  asm volatile ("# myinsn %0" : : "r" (-42));
+}

commit ab9518d0814a3b094a0ca7356b4a68e3a65f5011
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Feb 6 15:39:18 2025 +0100

    loop-iv, riscv: Fix get_biv_step_1 for RISC-V [PR117506]
    
    The following test ICEs on RISC-V at least latently since
    r14-1622-g99bfdb072e67fa3fe294d86b4b2a9f686f8d9705 which added
    RISC-V specific case to get_biv_step_1 to recognize also
    ({zero,sign}_extend:DI (plus:SI op0 op1))
    
    The reason for the ICE is that op1 in this case is CONST_POLY_INT
    which unlike the really expected VOIDmode CONST_INTs has its own
    mode and still satisfies CONSTANT_P.
    GET_MODE (rhs) (SImode) is different from outer_mode (DImode), so
    the function later does
            *inner_step = simplify_gen_binary (code, outer_mode,
                                               *inner_step, op1);
    but that obviously ICEs because while *inner_step is either VOIDmode
    or DImode, op1 has SImode.
    
    The following patch fixes it by extending op1 using code so that
    simplify_gen_binary can handle it.  Another option would be
    to change the !CONSTANT_P (op1) 3 lines above this to
    !CONST_INT_P (op1), I think it isn't very likely that we get something
    useful from other constants there.
    
    2025-02-06  Jakub Jelinek  <jakub@redhat.com>
    
            PR rtl-optimization/117506
            * loop-iv.cc (get_biv_step_1): For {ZERO,SIGN}_EXTEND
            of PLUS apply {ZERO,SIGN}_EXTEND to op1.
    
            * gcc.dg/pr117506.c: New test.
            * gcc.target/riscv/pr117506.c: New test.
    
    (cherry picked from commit bb9cee8928f7f4dfb94e7a8f232eda736b711450)

diff --git a/gcc/loop-iv.cc b/gcc/loop-iv.cc
index f56cc5e1db6..433a75cdb18 100644
--- a/gcc/loop-iv.cc
+++ b/gcc/loop-iv.cc
@@ -714,6 +714,7 @@ get_biv_step_1 (df_ref def, scalar_int_mode outer_mode, rtx reg,
 	  if (!simple_reg_p (op0) || !CONSTANT_P (op1))
 	    return false;
 
+	  op1 = simplify_gen_unary (code, outer_mode, op1, GET_MODE (rhs));
 	  prev_code = code;
 	  code = PLUS;
 	}
diff --git a/gcc/testsuite/gcc.dg/pr117506.c b/gcc/testsuite/gcc.dg/pr117506.c
new file mode 100644
index 00000000000..4f25324645b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr117506.c
@@ -0,0 +1,18 @@
+/* PR rtl-optimization/117506 */
+/* { dg-do compile } */
+/* { dg-options "-O3 -funroll-loops" } */
+
+char a;
+int b;
+unsigned c;
+short d;
+
+void
+foo ()
+{
+  for (short f = 0; f < c; f += 3)
+    {
+      a ^= d;
+      b = b < 0 ? b : 0;
+    }
+}
diff --git a/gcc/testsuite/gcc.target/riscv/pr117506.c b/gcc/testsuite/gcc.target/riscv/pr117506.c
new file mode 100644
index 00000000000..ac4b9e35d63
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr117506.c
@@ -0,0 +1,5 @@
+/* PR rtl-optimization/117506 */
+/* { dg-do compile } */
+/* { dg-options "-march=rv64im_zve64f -mabi=lp64 -O3 -funroll-loops" } */
+
+#include "../../gcc.dg/pr117506.c"

commit 6f5ada57162c10d5ff4b04de275aadf9c81a3da5
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 7 14:27:18 2025 +0100

    c++: Allow constexpr reads from volatile std::nullptr_t objects [PR118661]
    
    As mentioned in the PR, https://eel.is/c++draft/conv.lval#note-1
    says that even volatile reads from std::nullptr_t typed objects actually
    don't read anything and https://eel.is/c++draft/expr.const#10.9
    says that even those are ok in constant expressions.
    
    So, the following patch adjusts the r9-4793 changes to have an exception
    for NULLPTR_TYPE.
    As [conv.lval]/3 also talks about accessing to inactive member, I've added
    testcase to cover that as well.
    
    2025-02-07  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/118661
            * constexpr.cc (potential_constant_expression_1): Don't diagnose
            lvalue-to-rvalue conversion of volatile lvalue if it has NULLPTR_TYPE.
            * decl2.cc (decl_maybe_constant_var_p): Return true for constexpr
            decls with NULLPTR_TYPE even if they are volatile.
    
            * g++.dg/cpp0x/constexpr-volatile4.C: New test.
            * g++.dg/cpp0x/constexpr-union9.C: New test.
    
    (cherry picked from commit 6c8e6d6febaed3c167ca9534935c2cb18045528e)

diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc
index 79dd6a7423c..83a9175b265 100644
--- a/gcc/cp/constexpr.cc
+++ b/gcc/cp/constexpr.cc
@@ -9597,7 +9597,8 @@ potential_constant_expression_1 (tree t, bool want_rval, bool strict, bool now,
     return true;
 
   if (TREE_THIS_VOLATILE (t) && want_rval
-      && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (t)))
+      && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (t))
+      && !NULLPTR_TYPE_P (TREE_TYPE (t)))
     {
       if (flags & tf_error)
 	constexpr_error (loc, fundef_p, "lvalue-to-rvalue conversion of "
diff --git a/gcc/cp/decl2.cc b/gcc/cp/decl2.cc
index 139b5c15b3e..5cbe4c0ceda 100644
--- a/gcc/cp/decl2.cc
+++ b/gcc/cp/decl2.cc
@@ -4650,7 +4650,8 @@ decl_maybe_constant_var_p (tree decl)
   tree type = TREE_TYPE (decl);
   if (!VAR_P (decl))
     return false;
-  if (DECL_DECLARED_CONSTEXPR_P (decl) && !TREE_THIS_VOLATILE (decl))
+  if (DECL_DECLARED_CONSTEXPR_P (decl)
+      && (!TREE_THIS_VOLATILE (decl) || NULLPTR_TYPE_P (type)))
     return true;
   if (DECL_HAS_VALUE_EXPR_P (decl))
     /* A proxy isn't constant.  */
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-union9.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-union9.C
new file mode 100644
index 00000000000..5d365f9cca6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-union9.C
@@ -0,0 +1,16 @@
+// PR c++/118661
+// { dg-do compile { target c++11 } }
+
+using nullptr_t = decltype (nullptr);
+union U { int i; nullptr_t n; };
+constexpr U u = { 42 };
+static_assert (u.n == nullptr, "");
+
+#if __cplusplus >= 201402L
+constexpr nullptr_t
+foo ()
+{
+  union U { int i; nullptr_t n; } u = { 42 };
+  return u.n;
+}
+#endif
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile4.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile4.C
new file mode 100644
index 00000000000..5ef024009b5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile4.C
@@ -0,0 +1,20 @@
+// PR c++/118661
+// { dg-do compile { target c++11 } }
+
+using nullptr_t = decltype (nullptr);
+constexpr volatile nullptr_t a = {};
+constexpr nullptr_t b = a;
+
+constexpr nullptr_t
+foo ()
+{
+#if __cplusplus >= 201402L
+  volatile nullptr_t c = {};
+  return c;
+#else
+  return nullptr;
+#endif
+}
+
+static_assert (b == nullptr, "");
+static_assert (foo () == nullptr, "");

commit 6cd1daf5206d9e0b2da84bf587c487f68aabd8db
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 7 14:30:11 2025 +0100

    c++: Don't use CLEANUP_EH_ONLY for new expression cleanup [PR118763]
    
    The following testcase is miscompiled since r12-6325 stopped
    preevaluating the initializers for new expression.
    If evaluating the initializers throws, there is a correct cleanup
    for that, but it is marked CLEANUP_EH_ONLY.  While in standard
    C++ that is just fine, if it has statement expressions, it can
    return or goto out of the expression and we should delete the
    pointer in that case too.
    
    There is already a sentry variable initialized to true and
    set to false after everything is initialized and used as a guard
    for the cleanup, so just removing the CLEANUP_EH_ONLY flag does
    everything we need.  And in the normal case of the initializer
    not using statement expressions at least with -O2 we get the same code,
    while the change changes one
    try { sentry = true; ... sentry = false; } catch { if (sentry) delete ...; }
    into
    try { sentry = true; ... sentry = false; } finally { if (sentry) delete ...; }
    optimizations will see that sentry is false when reaching the finally
    other than through an exception.
    
    Though, wonder what other CLEANUP_EH_ONLY cleanups might be an issue
    with statement expressions.
    
    2025-02-07  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/118763
            * init.cc (build_new_1): Don't set CLEANUP_EH_ONLY.
    
            * g++.dg/asan/pr118763.C: New test.
    
    (cherry picked from commit fcecc74cb38723457a0447924d9993b31252a8f9)

diff --git a/gcc/cp/init.cc b/gcc/cp/init.cc
index 22d93793a4d..e622547a092 100644
--- a/gcc/cp/init.cc
+++ b/gcc/cp/init.cc
@@ -3826,7 +3826,6 @@ build_new_1 (vec<tree, va_gc> **placement, tree type, tree nelts,
 	  tree end, sentry, begin;
 
 	  begin = get_target_expr (boolean_true_node);
-	  CLEANUP_EH_ONLY (begin) = 1;
 
 	  sentry = TARGET_EXPR_SLOT (begin);
 
diff --git a/gcc/testsuite/g++.dg/asan/pr118763.C b/gcc/testsuite/g++.dg/asan/pr118763.C
new file mode 100644
index 00000000000..401528583ed
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asan/pr118763.C
@@ -0,0 +1,15 @@
+// PR c++/118763
+// { dg-do run }
+
+int *
+foo (bool x)
+{
+  return new int (({ if (x) return nullptr; 1; }));
+}
+
+int
+main ()
+{
+  delete foo (true);
+  delete foo (false);
+}

commit 08bfa32ae92e36a791ebdefd063b4f2616cd6f80
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Feb 7 17:08:39 2025 +0100

    c++: Fix up name independent decl in structured binding handling in range for [PR115586]
    
    cp_parser_range_for temporarily reverts IDENTIFIER_BINDING changes
    to hide the decls from the structured bindings from lookup during
    parsing of the expression after :
    If there are 2 or more name independent decls, we undo IDENTIFIER_BINDING
    for the same name multiple times, even when just one has been added
    (with a TREE_LIST inside of it as decl).
    
    The following patch fixes it by handling the _ name at most once, the
    later loop will DTRT then and just reinstall the temporarily hidden
    binding with the TREE_LIST in there.
    
    2025-02-07  Jakub Jelinek  <jakub@redhat.com>
    
            PR c++/115586
            * parser.cc (cp_parser_range_for): For name independent decls in
            structured bindings, only push the name/binding once per
            structured binding.
    
            * g++.dg/cpp26/name-independent-decl9.C: New test.
            * g++.dg/cpp26/name-independent-decl10.C: New test.
    
    (cherry picked from commit ca7c6d1212b8589deed18386427c67851af2b9ad)

diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index 5bfbdf85f15..aeb36d1e483 100644
--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -14130,9 +14130,19 @@ cp_parser_range_for (cp_parser *parser, tree scope, tree init, tree range_decl,
 	      decomp = &decomp_d;
 	      decomp->count = tree_to_uhwi (TREE_OPERAND (v, 1)) + 1;
 	      decomp->decl = d;
+	      bool seen_name_independent_decl = false;
 	      for (unsigned int i = 0; i < decomp->count;
 		   i++, d = DECL_CHAIN (d))
 		{
+		  if (name_independent_decl_p (d))
+		    {
+		      /* If there is more than one _ decl in
+			 the structured binding, just push and move it
+			 away once.  */
+		      if (seen_name_independent_decl)
+			continue;
+		      seen_name_independent_decl = true;
+		    }
 		  tree name = DECL_NAME (d);
 		  names.safe_push (name);
 		  bindings.safe_push (IDENTIFIER_BINDING (name));
diff --git a/gcc/testsuite/g++.dg/cpp26/name-independent-decl10.C b/gcc/testsuite/g++.dg/cpp26/name-independent-decl10.C
new file mode 100644
index 00000000000..792c2bd0c6b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp26/name-independent-decl10.C
@@ -0,0 +1,63 @@
+// PR c++/115586
+// { dg-do compile { target c++11 } }
+// { dg-options "" }
+
+struct S { int a, b, c; };
+
+void
+foo ()
+{
+  S s[4] = {};
+  for (auto [_, _, a] : s)	// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+    ++_;			// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
+				// { dg-error "reference to '_' is ambiguous" "" { target *-*-* } .-1 }
+  for (auto _ : s)
+    ++_.b;
+  for (auto [a, _, b] : s)	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+    ++_;
+  for (auto [_, _, a] : s)	// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+    {				// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
+      ++_;			// { dg-error "reference to '_' is ambiguous" }
+    }
+  for (auto _ : s)
+    {
+      ++_.b;
+      int _ = 2;		// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+      ++_;			// { dg-error "reference to '_' is ambiguous" }
+    }
+  for (auto [a, _, b] : s)	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+    {
+      ++_;
+      int _ = ++b;		// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+      ++_;			// { dg-error "reference to '_' is ambiguous" }
+    }
+}
+
+void
+bar ()
+{
+  S s[4] = {};
+  auto [_, c, _] = s[0];	// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+  ++_;				// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
+				// { dg-error "reference to '_' is ambiguous" "" { target *-*-* } .-1 }
+  for (auto [a, _, _] : s)	// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+    ++_;			// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
+				// { dg-error "reference to '_' is ambiguous" "" { target *-*-* } .-1 }
+  for (auto _ : s)
+    ++_.c;
+  for (auto [a, b, _] : s)	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+    ++_;
+  for (auto [a, _, _] : s)	// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+    {				// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
+      ++_;			// { dg-error "reference to '_' is ambiguous" }
+      ++a;
+    }
+  for (auto _ : s)
+    int _ = 5;			// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+  for (auto [a, b, _] : s)	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+    {
+      ++_;
+      int _ = a + b;		// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+      ++_;			// { dg-error "reference to '_' is ambiguous" }
+    }
+}
diff --git a/gcc/testsuite/g++.dg/cpp26/name-independent-decl9.C b/gcc/testsuite/g++.dg/cpp26/name-independent-decl9.C
new file mode 100644
index 00000000000..0a8ef040597
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp26/name-independent-decl9.C
@@ -0,0 +1,49 @@
+// PR c++/115586
+// { dg-do compile { target c++11 } }
+// { dg-options "-Wunused-variable -Wunused-but-set-variable -Wunused-parameter -Wshadow" }
+
+struct S { int a, b, c; };
+
+void
+foo ()
+{
+  S s[4] = {};
+  for (auto [_, _, a] : s)	// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+    ++a;			// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
+  for (auto _ : s)
+    ++_.b;
+  for (auto [a, _, b] : s)	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+    ++a;
+  for (auto [_, _, a] : s)	// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+    int _ = ++a;		// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
+  for (auto _ : s)
+    {
+      int _ = 2;		// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+    }
+  for (auto [a, _, b] : s)	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+    int _ = ++b;		// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+}
+
+void
+bar ()
+{
+  S s[4] = {};
+  auto [_, c, _] = s[0];	// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+  ++c;				// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
+  for (auto [a, _, _] : s)	// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+    ++a;			// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
+  for (auto _ : s)
+    ++_.c;
+  for (auto [a, b, _] : s)	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+    ++b;
+  for (auto [a, _, _] : s)	// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+    {				// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
+      int _ = ++a;
+    }
+  for (auto _ : s)
+    int _ = 5;			// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+  for (auto [a, b, _] : s)	// { dg-warning "structured bindings only available with" "" { target c++14_down } }
+    {
+      int _ = a + b;		// { dg-warning "name-independent declarations only available with" "" { target c++23_down } }
+    }
+}

commit 7cb022442444833796b384684afef14d0b478941
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Sat Feb 8 08:54:31 2025 +0100

    i386: Fix ICE with conditional QI/HI vector maxmin [PR118776]
    
    The following testcase ICEs starting with GCC 12 since r12-4526
    although the bug has been introduced already in r12-2751.
    The problem was in the addition of cond_<code><mode> define_expand
    which uses nonimmediate_operand predicates for both maxmin operands
    for all VI1248_AVX512VLBW modes.  It works fine with
    VI48_AVX512VL modes because the <code><mode>3_mask VI48_AVX512VL
    define_expand uses ix86_fixup_binary_operands_no_copy and the
    *avx512f_<code><mode>3<mask_name> VI48_AVX512VL define_insn uses
    % in constraint and !(MEM_P && MEM_P) check in condition (and
    <code><mode>3 define_expand with VI124_256_AVX512F_AVX512BW iterator
    does that too), but eventhough the 8-bit and 16-bit element maxmin
    is commutative too, the <mask_codefor><code><mode>3<mask_name>
    define_insn with VI12_AVX512VL iterator didn't use % in constraint
    to make it commutative.  So, e.g. cond_umaxv32qi define_expand
    allowed nonimmediate_operand for both umax operands, but used
    gen_umaxv32qi_mask which wasn't commutative and only allowed
    nonimmediate_operand for the second operand.
    
    The following patch fixes it by keeping the <code><mode>3
    VI124_256_AVX512F_AVX512BW define_expand as is (it does
    ix86_fixup_binary_operands_no_copy) but extending the
    <code><mode>3_mask define_expand from VI48_AVX512VL to
    VI1248_AVX512VLBW which keeps the current modes with their
    ISA conditions and adds the VI12_AVX512VL modes under additional
    TARGET_AVX512BW condition, and turning the actual define_insn
    into an * prefixed name (which it was before just for the non-masked
    case) and having the same commutative operand handling as in other
    define_insns.
    
    2025-02-08  Jakub Jelinek  <jakub@redhat.com>
    
            PR target/118776
            * config/i386/sse.md (<code><mode>3_mask): Use VI1248_AVX512VLBW
            iterator rather than VI48_AVX512VL.
            (<mask_codefor><code><mode>3<mask_name>): Rename to ...
            (*avx512bw_<code><mode>3<mask_name>): ... this.  Use
            nonimmediate_operand rather than register_operand predicate and %v
            rather than v constraint for operand 1 and adjust condition to reject
            MEMs in both operand 1 and 2.
    
            * gcc.target/i386/pr118776.c: New test.
    
    (cherry picked from commit 64d8ea056a5c339700118a412dea1c44a57acf55)

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 111455cfcb7..67313d51853 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -16722,12 +16722,12 @@
 })
 
 (define_expand "<code><mode>3_mask"
-  [(set (match_operand:VI48_AVX512VL 0 "register_operand")
-	(vec_merge:VI48_AVX512VL
-	  (maxmin:VI48_AVX512VL
-	    (match_operand:VI48_AVX512VL 1 "nonimmediate_operand")
-	    (match_operand:VI48_AVX512VL 2 "nonimmediate_operand"))
-	  (match_operand:VI48_AVX512VL 3 "nonimm_or_0_operand")
+  [(set (match_operand:VI1248_AVX512VLBW 0 "register_operand")
+	(vec_merge:VI1248_AVX512VLBW
+	  (maxmin:VI1248_AVX512VLBW
+	    (match_operand:VI1248_AVX512VLBW 1 "nonimmediate_operand")
+	    (match_operand:VI1248_AVX512VLBW 2 "nonimmediate_operand"))
+	  (match_operand:VI1248_AVX512VLBW 3 "nonimm_or_0_operand")
 	  (match_operand:<avx512fmaskmode> 4 "register_operand")))]
   "TARGET_AVX512F"
   "ix86_fixup_binary_operands_no_copy (<CODE>, <MODE>mode, operands);")
@@ -16743,12 +16743,12 @@
    (set_attr "prefix" "maybe_evex")
    (set_attr "mode" "<sseinsnmode>")])
 
-(define_insn "<mask_codefor><code><mode>3<mask_name>"
+(define_insn "*avx512bw_<code><mode>3<mask_name>"
   [(set (match_operand:VI12_AVX512VL 0 "register_operand" "=v")
         (maxmin:VI12_AVX512VL
-          (match_operand:VI12_AVX512VL 1 "register_operand" "v")
+          (match_operand:VI12_AVX512VL 1 "nonimmediate_operand" "%v")
           (match_operand:VI12_AVX512VL 2 "nonimmediate_operand" "vm")))]
-  "TARGET_AVX512BW"
+  "TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
   "vp<maxmin_int><ssemodesuffix>\t{%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %2}"
   [(set_attr "type" "sseiadd")
    (set_attr "prefix" "evex")
diff --git a/gcc/testsuite/gcc.target/i386/pr118776.c b/gcc/testsuite/gcc.target/i386/pr118776.c
new file mode 100644
index 00000000000..44c18caf896
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr118776.c
@@ -0,0 +1,23 @@
+/* PR target/118776 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -mavx512bw -mavx512vl" } */
+
+void bar (unsigned char *);
+
+void
+foo (unsigned char *x)
+{
+  unsigned char b[32];
+  bar (b);
+  for (int i = 0; i < 32; i++)
+    {
+      unsigned char c = 8;
+      if (i > 3)
+	{
+	  unsigned char d = b[i];
+	  d = 1 > d ? 1 : d;
+	  c = d;
+	}
+      x[i] = c;
+    }
+}

commit 818b5cac394cc242c7d141147a6fa6b716beee52
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Feb 11 00:22:44 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bea3235a919..a852cce55bb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,96 @@
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-02-08  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/118776
+	* config/i386/sse.md (<code><mode>3_mask): Use VI1248_AVX512VLBW
+	iterator rather than VI48_AVX512VL.
+	(<mask_codefor><code><mode>3<mask_name>): Rename to ...
+	(*avx512bw_<code><mode>3<mask_name>): ... this.  Use
+	nonimmediate_operand rather than register_operand predicate and %v
+	rather than v constraint for operand 1 and adjust condition to reject
+	MEMs in both operand 1 and 2.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-02-06  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/117506
+	* loop-iv.cc (get_biv_step_1): For {ZERO,SIGN}_EXTEND
+	of PLUS apply {ZERO,SIGN}_EXTEND to op1.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-31  Jakub Jelinek  <jakub@redhat.com>
+
+	PR ipa/117432
+	* ipa-icf-gimple.cc (func_checker::compare_asm_inputs_outputs):
+	Also return_false if operands have incompatible types.
+	(func_checker::compare_gimple_call): Check fntype1 vs. fntype2
+	compatibility for all non-internal calls and assume fntype1 and
+	fntype2 are non-NULL for those.  For calls to non-prototyped
+	calls or for stdarg_p functions after the last named argument (if any)
+	check type compatibility of call arguments.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-31  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/118689
+	PR modula2/115032
+	* tree-ssa-loop-niter.cc (build_cltz_expr): Return NULL_TREE if fn is
+	NULL and use_ifn is false.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-28  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/118638
+	* combine.cc (make_extraction): Only optimize (mult x 2^n) if len is
+	larger than 1.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-23  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/118605
+	* tree-assume.cc (assume_query::m_parm_list): Change type
+	from bitmap & to bitmap.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-23  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/114877
+	* builtins.cc (fold_builtin_frexp): Handle rvc_nan and rvc_inf cases
+	like rvc_zero, return passed in arg and set *exp = 0.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-17  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/118522
+	* match.pd ((FTYPE) N CMP (FTYPE) M): Add convert, as in GENERIC
+	integral types with the same precision and sign might actually not
+	be compatible types.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-16  Jakub Jelinek  <jakub@redhat.com>
+
+	PR ipa/118400
+	* vec.h (vec<T, va_heap, vl_ptr>::release): Call m_vec->truncate (0)
+	instead of clearing m_vec->m_vecpfx.m_num.
+
 2025-02-06  Lulu Cheng  <chenglulu@loongson.cn>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 039de05fe6a..68b0ff9265d 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250210
+20250211
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 7274afec88c..8b644ac02a1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,51 @@
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-02-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/115586
+	* parser.cc (cp_parser_range_for): For name independent decls in
+	structured bindings, only push the name/binding once per
+	structured binding.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-02-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/118763
+	* init.cc (build_new_1): Don't set CLEANUP_EH_ONLY.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-02-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/118661
+	* constexpr.cc (potential_constant_expression_1): Don't diagnose
+	lvalue-to-rvalue conversion of volatile lvalue if it has NULLPTR_TYPE.
+	* decl2.cc (decl_maybe_constant_var_p): Return true for constexpr
+	decls with NULLPTR_TYPE even if they are volatile.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-29  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/118655
+	* semantics.cc (trait_expr_value) <case CPTK_IS_BOUNDED_ARRAY>: Return
+	false for zero-sized arrays.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-25  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/117827
+	* init.cc (build_new_1): Pass address of a make_tree_vector ()
+	initialized gc tree vector to build_vec_init and append
+	build_disable_temp_cleanup to init_expr from it.
+
 2025-01-29  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
index 362e39e5bcb..833cb7c4339 100644
--- a/gcc/d/ChangeLog
+++ b/gcc/d/ChangeLog
@@ -1,3 +1,13 @@
+2025-02-10  Arsen Arsenović  <arsen@aarsen.me>
+
+	Backported from master:
+	2025-01-29  Arsen Arsenović  <arsen@aarsen.me>
+		    Jakub Jelinek  <jakub@redhat.com>
+
+	PR d/118477
+	* Make-lang.in (DCOMPILE, DPOSTCOMPILE): Use $(basename $(@F))
+	instead of $(*F).
+
 2025-01-20  Iain Buclaw  <ibuclaw@gdcproject.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1a2e590096e..44fd56a6542 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,101 @@
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-02-08  Jakub Jelinek  <jakub@redhat.com>
+
+	PR target/118776
+	* gcc.target/i386/pr118776.c: New test.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-02-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/115586
+	* g++.dg/cpp26/name-independent-decl9.C: New test.
+	* g++.dg/cpp26/name-independent-decl10.C: New test.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-02-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/118763
+	* g++.dg/asan/pr118763.C: New test.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-02-07  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/118661
+	* g++.dg/cpp0x/constexpr-volatile4.C: New test.
+	* g++.dg/cpp0x/constexpr-union9.C: New test.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-02-06  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/117506
+	* gcc.dg/pr117506.c: New test.
+	* gcc.target/riscv/pr117506.c: New test.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-31  Jakub Jelinek  <jakub@redhat.com>
+
+	PR ipa/117432
+	* gcc.c-torture/execute/pr117432.c: New test.
+	* gcc.target/i386/pr117432.c: New test.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-29  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/118655
+	* g++.dg/ext/is_bounded_array.C: Extend.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-28  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/118638
+	* gcc.c-torture/execute/pr118638.c: New test.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-25  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/117827
+	* g++.dg/init/array66.C: New test.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-23  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/114877
+	* gcc.dg/torture/builtin-frexp-1.c: Add -Wmaybe-uninitialized as
+	dg-additional-options.
+	(bar): New function.
+	(TESTIT_FREXP2): Rework the macro so that it doesn't test whether
+	nothing has been stored to what the second argument points to, but
+	instead that something has been stored there, whatever it is.
+	(main): Temporarily don't enable the nan tests for -O0.
+
+2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-01-17  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/118522
+	* gcc.dg/bitint-120.c: New test.
+
 2025-02-07  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:

commit cec0326137ef91e2910a9c70eb9743f032e87137
Author: Haochen Jiang <haochen.jiang@intel.com>
Date:   Mon Feb 10 14:00:57 2025 +0800

    i386: Fix AVX512BW intrin header with __OPTIMIZE__ [PR 118813]
    
    When moving intrins around for AVX10 implementation in GCC 14,
    the intrin _kshiftli_mask32 and _kshiftri_mask32 are wrongly
    wrapped by "#if __OPTIMIZE__" instead of "#ifdef __OPTIMIZE__",
    leading to the intrin file not `-Wsystem-headers -Wundef` clean
    since r14-4490.
    
    gcc/ChangeLog:
    
            PR target/118813
            * config/i386/avx512bwintrin.h: Fix wrong __OPTIMIZE__
            wrap.

diff --git a/gcc/config/i386/avx512bwintrin.h b/gcc/config/i386/avx512bwintrin.h
index 8991c9c1e57..d07f73dde2f 100644
--- a/gcc/config/i386/avx512bwintrin.h
+++ b/gcc/config/i386/avx512bwintrin.h
@@ -199,7 +199,7 @@ _kunpackw_mask32 (__mmask16 __A, __mmask16 __B)
 					      (__mmask32) __B);
 }
 
-#if __OPTIMIZE__
+#ifdef __OPTIMIZE__
 extern __inline __mmask32
 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
 _kshiftli_mask32 (__mmask32 __A, unsigned int __B)

commit 5f47dc6e9aa82e1c00ed030cb9469cd84df8691d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Feb 11 13:47:54 2025 +0800

    x86: Correct ASM_OUTPUT_SYMBOL_REF
    
    x is not a macro argument.  It just happens to work as final.cc passes
    x for 2nd argument:
    
    final.cc:      ASM_OUTPUT_SYMBOL_REF (file, x);
    
            PR target/118825
            * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Replace x with
            SYM.
    
    Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
    (cherry picked from commit 7317fc0b03380a83ad03a5fc4fabef5f38c44c9d)

diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 1c456c3422f..2fc82b175e6 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -2229,7 +2229,7 @@ extern int const svr4_debugger_register_map[FIRST_PSEUDO_REGISTER];
 #define ASM_OUTPUT_SYMBOL_REF(FILE, SYM) \
   do {							\
     const char *name					\
-      = assemble_name_resolve (XSTR (x, 0));		\
+      = assemble_name_resolve (XSTR (SYM, 0));		\
     /* In -masm=att wrap identifiers that start with $	\
        into parens.  */					\
     if (ASSEMBLER_DIALECT == ASM_ATT			\

commit 0075e4a8428d056d63724c3b8a48350c0d596613
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Feb 12 00:22:40 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a852cce55bb..4e49d25a7b1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,18 @@
+2025-02-11  H.J. Lu  <hjl.tools@gmail.com>
+
+	Backported from master:
+	2025-02-11  H.J. Lu  <hjl.tools@gmail.com>
+
+	PR target/118825
+	* config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Replace x with
+	SYM.
+
+2025-02-11  Haochen Jiang  <haochen.jiang@intel.com>
+
+	PR target/118813
+	* config/i386/avx512bwintrin.h: Fix wrong __OPTIMIZE__
+	wrap.
+
 2025-02-10  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 68b0ff9265d..4bcf0fa7545 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250211
+20250212

commit 209de720fb8ad491568633780c8e8c5cca8b4c33
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Wed Feb 12 21:26:04 2025 +0000

    [PATCH] PR modula2/118703 Abort compiling m2pim_NumberIO_BinToStr
    
    This patch builds access to the gcc builtins clz, clzl, clzll,
    ctz, ctzl and ctzll within m2builtins.cc.  The patch provides
    modula2 api access to clz, clzll, ctz and ctzll though the
    Builtins definition module.  This PR was raised because of
    PR118689.
    
    gcc/m2/ChangeLog:
    
            PR modula2/118703
            * gm2-gcc/m2builtins.cc (define_builtin_gcc): New function.
            (m2builtins_init): Call define_builtin_gcc.
            * gm2-libs/Builtins.def (clz): New procedure function.
            (clzll): Ditto.
            (ctz): Ditto.
            (ctzll): Ditto.
            * gm2-libs/Builtins.mod (clz): New procedure function.
            (clzll): Ditto.
            (ctz): Ditto.
            (ctzll): Ditto.
            * gm2-libs/cbuiltin.def (clz): New procedure function.
            (clzll): Ditto.
            (ctz): Ditto.
            (ctzll): Ditto.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/118703
            * gm2/builtins/run/pass/testbitfns.mod: New test.
    
    (cherry picked from commit e2d32c81a993a27f3e9b5408f5d20580fe58feca)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-gcc/m2builtins.cc b/gcc/m2/gm2-gcc/m2builtins.cc
index 44f48fc01ba..9f87871f48f 100644
--- a/gcc/m2/gm2-gcc/m2builtins.cc
+++ b/gcc/m2/gm2-gcc/m2builtins.cc
@@ -375,6 +375,7 @@ static struct GTY(()) builtin_function_entry list_of_builtins[] = {
     BUILT_IN_NORMAL, "strchr", NULL, NULL, bf_default_lib },
   { "__builtin_strrchr", BT_FN_STRING_CONST_STRING_INT, BUILT_IN_STRCHR,
     BUILT_IN_NORMAL, "strrchr", NULL, NULL, bf_default_lib },
+
   { "__builtin_frame_address", BT_FN_PTR_UNSIGNED, BUILT_IN_FRAME_ADDRESS,
     BUILT_IN_NORMAL, "frame_address", NULL, NULL, bf_gcc },
   { "__builtin_return_address", BT_FN_PTR_UNSIGNED, BUILT_IN_RETURN_ADDRESS,
@@ -426,6 +427,9 @@ static GTY (()) tree long_doubleptr_type_node;
 static GTY (()) tree doubleptr_type_node;
 static GTY (()) tree floatptr_type_node;
 static GTY (()) tree builtin_ftype_int_var;
+static GTY (()) tree builtin_ftype_int_uint;
+static GTY (()) tree builtin_ftype_int_ulong;
+static GTY (()) tree builtin_ftype_int_ulonglong;
 static GTY (()) vec<builtin_macro_definition, va_gc> *builtin_macros;
 
 /* Prototypes for locally defined functions.  */
@@ -1480,6 +1484,27 @@ define_builtin_math (enum built_in_function val, const char *name, tree type,
      versions as well?  */
 }
 
+/* Define gcc specific builtins.  */
+
+static
+void
+define_builtin_gcc (void)
+{
+  /* Bit count functions.  */
+  define_builtin (BUILT_IN_CLZ, "clz", builtin_ftype_int_uint,
+		  "__builtin_clz", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+  define_builtin (BUILT_IN_CLZL, "clzl", builtin_ftype_int_ulong,
+		  "__builtin_clzl", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+  define_builtin (BUILT_IN_CLZLL, "clzll", builtin_ftype_int_ulonglong,
+		  "__builtin_clzll", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+  define_builtin (BUILT_IN_CTZ, "ctz", builtin_ftype_int_uint,
+		  "__builtin_ctz", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+  define_builtin (BUILT_IN_CTZL, "ctzl", builtin_ftype_int_ulong,
+		  "__builtin_ctzl", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+  define_builtin (BUILT_IN_CTZLL, "ctzll", builtin_ftype_int_ulonglong,
+		  "__builtin_ctzll", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+}
+
 void
 m2builtins_init (location_t location)
 {
@@ -1516,6 +1541,15 @@ m2builtins_init (location_t location)
   builtin_ftype_int_var = build_function_type (
       integer_type_node, tree_cons (NULL_TREE, double_type_node, endlink));
 
+  builtin_ftype_int_uint = build_function_type (
+      integer_type_node, tree_cons (NULL_TREE, unsigned_type_node, endlink));
+
+  builtin_ftype_int_ulong = build_function_type (
+      integer_type_node, tree_cons (NULL_TREE, long_unsigned_type_node, endlink));
+
+  builtin_ftype_int_ulonglong = build_function_type (
+      integer_type_node, tree_cons (NULL_TREE, long_long_unsigned_type_node, endlink));
+
   for (i = 0; list_of_builtins[i].name != NULL; i++)
     create_function_prototype (location, &list_of_builtins[i]);
 
@@ -1541,6 +1575,8 @@ m2builtins_init (location_t location)
   define_builtin_math (BUILT_IN_ISINF_SIGN, "isinf_sign", builtin_ftype_int_var,
 		       "__builtin_isinf_sign", ECF_CONST | ECF_NOTHROW | ECF_LEAF);
 
+  define_builtin_gcc ();
+
   gm2_alloca_node = find_builtin_tree ("__builtin_alloca");
   gm2_memcpy_node = find_builtin_tree ("__builtin_memcpy");
   gm2_memset_node = find_builtin_tree ("__builtin_memset");
diff --git a/gcc/m2/gm2-libs/Builtins.def b/gcc/m2/gm2-libs/Builtins.def
index 2ad66030e39..d19e653a491 100644
--- a/gcc/m2/gm2-libs/Builtins.def
+++ b/gcc/m2/gm2-libs/Builtins.def
@@ -229,6 +229,11 @@ PROCEDURE __BUILTIN__ strcspn (s, accept: ADDRESS) : CARDINAL ;
 PROCEDURE __BUILTIN__ strchr (s: ADDRESS; c: INTEGER) : ADDRESS ;
 PROCEDURE __BUILTIN__ strrchr (s: ADDRESS; c: INTEGER) : ADDRESS ;
 
+PROCEDURE __BUILTIN__ clz (value: CARDINAL) : INTEGER ;
+PROCEDURE __BUILTIN__ clzll (value: LONGCARD) : INTEGER ;
+PROCEDURE __BUILTIN__ ctz (value: CARDINAL) : INTEGER ;
+PROCEDURE __BUILTIN__ ctzll (value: LONGCARD) : INTEGER ;
+
 (*
    longjmp - this GCC builtin restricts the val to always 1.
 *)
diff --git a/gcc/m2/gm2-libs/Builtins.mod b/gcc/m2/gm2-libs/Builtins.mod
index 8079dc13565..0c99d23a3ec 100644
--- a/gcc/m2/gm2-libs/Builtins.mod
+++ b/gcc/m2/gm2-libs/Builtins.mod
@@ -765,6 +765,26 @@ BEGIN
    RETURN 1
 END isinf_signl ;
 
+PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_clz)) clz (value: CARDINAL) : INTEGER ;
+BEGIN
+   RETURN 1
+END clz ;
+
+PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_clzll)) clzll (value: LONGCARD) : INTEGER ;
+BEGIN
+   RETURN 1
+END clzll ;
+
+PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ctz)) ctz (value: CARDINAL) : INTEGER ;
+BEGIN
+   RETURN 1
+END ctz ;
+
+PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_ctzll)) ctzll (value: LONGCARD) : INTEGER ;
+BEGIN
+   RETURN 1
+END ctzll ;
+
 PROCEDURE __ATTRIBUTE__  __BUILTIN__ ((__builtin_longjmp)) longjmp (env: ADDRESS; val: INTEGER) ;
 BEGIN
    (* Empty, replaced internally by gcc.  *)
diff --git a/gcc/m2/gm2-libs/cbuiltin.def b/gcc/m2/gm2-libs/cbuiltin.def
index 41b95890184..10108de1e02 100644
--- a/gcc/m2/gm2-libs/cbuiltin.def
+++ b/gcc/m2/gm2-libs/cbuiltin.def
@@ -65,7 +65,10 @@ EXPORT UNQUALIFIED alloca, memcpy,
                    index, rindex,
                    memcmp, memset, memmove,
                    strcat, strncat, strcpy, strncpy, strcmp, strncmp,
-                   strlen, strstr, strpbrk, strspn, strcspn, strchr, strrchr ;
+                   strlen, strstr, strpbrk, strspn, strcspn, strchr, strrchr,
+
+                   clz, clzll,
+                   ctz, ctzll ;
 
 PROCEDURE alloca (i: CARDINAL) : ADDRESS ;
 PROCEDURE memcpy (dest, src: ADDRESS; n: CARDINAL) : ADDRESS ;
@@ -205,4 +208,10 @@ PROCEDURE strcspn (s, accept: ADDRESS) : CARDINAL ;
 PROCEDURE strchr (s: ADDRESS; c: INTEGER) : ADDRESS ;
 PROCEDURE strrchr (s: ADDRESS; c: INTEGER) : ADDRESS ;
 
+PROCEDURE clz (value: CARDINAL) : INTEGER ;
+PROCEDURE clzll (value: CARDINAL) : INTEGER ;
+PROCEDURE ctz (value: CARDINAL) : INTEGER ;
+PROCEDURE ctzll (value: CARDINAL) : INTEGER ;
+
+
 END cbuiltin.
diff --git a/gcc/testsuite/gm2/builtins/run/pass/testbitfns.mod b/gcc/testsuite/gm2/builtins/run/pass/testbitfns.mod
new file mode 100644
index 00000000000..16c6cb9a1e8
--- /dev/null
+++ b/gcc/testsuite/gm2/builtins/run/pass/testbitfns.mod
@@ -0,0 +1,90 @@
+MODULE testbitfns ;  
+
+FROM libc IMPORT printf, exit ;
+FROM Builtins IMPORT clz, clzll, ctz, ctzll ;
+
+
+(*
+   Assert - 
+*)
+
+PROCEDURE Assert (name: ARRAY OF CHAR;
+                  input, left, right: INTEGER; line: CARDINAL) ;
+BEGIN
+   IF left = right
+   THEN
+      printf ("pass: %s (%d) = %d\n", name, input, left)
+   ELSE
+      printf ("fail: %s (%d) # %d (should be %d)\n", name, input, left, right) ;
+      exitcode := 1
+   END
+END Assert ;
+
+
+(*
+   runtests - 
+*)
+
+PROCEDURE runtests ;
+VAR
+   c     : CARDINAL ;
+   l     : LONGCARD ;
+   result: INTEGER ;
+BEGIN
+   c := 16 ;
+   result := ctz (c) ;
+   Assert ("ctz", c, result, 4, __LINE__) ;
+   c := 4 ;
+   result := ctz (c) ;   
+   Assert ("ctz", c, result, 2, __LINE__) ;   
+   c := 14 ;
+   result := ctz (c) ;   
+   Assert ("ctz", c, result, 1, __LINE__) ; 
+   l := 16 ;
+   result := ctzll (l) ;   
+   Assert ("ctzll", l, result, 4, __LINE__) ;
+   l := 4 ;
+   result := ctzll (l) ;   
+   Assert ("ctzll", l, result, 2, __LINE__) ;   
+   l := 14 ;
+   result := ctzll (l) ;   
+   Assert ("ctzll", l, result, 1, __LINE__) ;
+
+   IF SIZE (c) = 4
+   THEN
+      c := 16 ;
+      result := clz (c) ;
+      Assert ("clz", c, result, 27, __LINE__) ;
+      c := 4 ;
+      result := clz (c) ;   
+      Assert ("clz", c, result, 29, __LINE__) ;   
+      c := 14 ;
+      result := clz (c) ;   
+      Assert ("clz", c, result, 28, __LINE__) ;
+      IF SIZE (l) = 8
+      THEN
+         l := 16 ;
+         result := clzll (l) ;   
+         Assert ("clzll", l, result, 59, __LINE__) ;
+         l := 4 ;
+         result := clzll (l) ;   
+         Assert ("clzll", l, result, 61, __LINE__) ;   
+         l := 14 ;
+         result := clzll (l) ;   
+         Assert ("ctzll", l, result, 60, __LINE__)
+      END
+   END
+END runtests ;
+
+
+VAR
+   exitcode: INTEGER ;
+BEGIN
+   exitcode := 0 ;
+   runtests ;
+   IF exitcode = 0
+   THEN
+      printf ("all tests pass!\n")
+   END ;
+   exit (exitcode)
+END testbitfns.

commit 6569505d4c1d549b07c6640911d8e3809b5b2a6b
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Feb 13 00:22:19 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 4bcf0fa7545..d38af5a6357 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250212
+20250213
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 5af3c455e36..cd2fd895590 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,24 @@
+2025-02-12  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2025-02-01  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/118703
+	* gm2-gcc/m2builtins.cc (define_builtin_gcc): New function.
+	(m2builtins_init): Call define_builtin_gcc.
+	* gm2-libs/Builtins.def (clz): New procedure function.
+	(clzll): Ditto.
+	(ctz): Ditto.
+	(ctzll): Ditto.
+	* gm2-libs/Builtins.mod (clz): New procedure function.
+	(clzll): Ditto.
+	(ctz): Ditto.
+	(ctzll): Ditto.
+	* gm2-libs/cbuiltin.def (clz): New procedure function.
+	(clzll): Ditto.
+	(ctz): Ditto.
+	(ctzll): Ditto.
+
 2025-01-09  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 44fd56a6542..55fac2082dc 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2025-02-12  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2025-02-01  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/118703
+	* gm2/builtins/run/pass/testbitfns.mod: New test.
+
 2025-02-10  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:

commit 9fa962a5db797665972aaa65426b881754782cfb
Author: Nathaniel Shead <nathanieloshead@gmail.com>
Date:   Wed Feb 12 23:07:43 2025 +1100

    c++: Constrain visibility for CNTTPs with internal types [PR118849]
    
    While looking into PR118846 I noticed that we don't currently constrain
    the linkage of functions involving CNTTPs of internal-linkage types.  It
    seems to me that this would be sensible to do.
    
            PR c++/118849
    
    gcc/cp/ChangeLog:
    
            * decl2.cc (min_vis_expr_r): Constrain visibility according to
            the type of decl_constant_var_p decls.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/template/linkage6.C: New test.
    
    Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>

diff --git a/gcc/cp/decl2.cc b/gcc/cp/decl2.cc
index 5cbe4c0ceda..bf8f566b8e3 100644
--- a/gcc/cp/decl2.cc
+++ b/gcc/cp/decl2.cc
@@ -2724,7 +2724,9 @@ min_vis_expr_r (tree *tp, int */*walk_subtrees*/, void *data)
 	/* The ODR allows definitions in different TUs to refer to distinct
 	   constant variables with internal or no linkage, so such a reference
 	   shouldn't affect visibility (PR110323).  FIXME but only if the
-	   lvalue-rvalue conversion is applied.  */;
+	   lvalue-rvalue conversion is applied.  We still want to restrict
+	   visibility according to the type of the declaration however.  */
+	tpvis = type_visibility (TREE_TYPE (t));
       else if (! TREE_PUBLIC (t))
 	tpvis = VISIBILITY_ANON;
       else
diff --git a/gcc/testsuite/g++.dg/template/linkage6.C b/gcc/testsuite/g++.dg/template/linkage6.C
new file mode 100644
index 00000000000..b86c986568f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/linkage6.C
@@ -0,0 +1,13 @@
+// PR c++/118849
+// { dg-do compile { target c++20 } }
+// { dg-final { scan-assembler-not "(weak|glob)\[^\n\]*_Z" { xfail powerpc-*-aix* } } }
+
+namespace {
+  struct A {};
+}
+
+template <auto Q> void f() { }
+
+int main() {
+  f<A{}>();
+}

commit 3d961691e0878e1328f9cbbc1d1af5e573ee6786
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Thu Feb 13 18:17:17 2025 +0000

    [PATCH] PR modula2/115112 Incorrect line debugging information occurs during INC builtin
    
    This patch fixes location bugs in BuildDecProcedure,
    BuildIncProcedure, BuildInclProcedure, BuildExclProcedure and
    BuildThrow.  All these procedure functions use the token position
    passed as a parameter (rather than from the quad stack).  It also
    fixes location bugs in CheckRangeIncDec to ensure that the token
    position is stored on the quad stack before calling subsidiary
    procedure functions.
    
    gcc/m2/ChangeLog:
    
            PR modula2/115112
            * gm2-compiler/M2Quads.mod (BuildPseudoProcedureCall): Pass
            tokno to each build procedure.
            (BuildThrowProcedure): New parameter functok.
            (BuildIncProcedure): New parameter proctok.
            Pass proctok on the quad stack during every push.
            (BuildDecProcedure): Ditto.
            (BuildInclProcedure): New parameter proctok.
            (BuildExclProcedure): New parameter proctok.
    
    gcc/testsuite/ChangeLog:
    
            PR modula2/115112
            * gm2/pim/run/pass/dectest.mod: New test.
            * gm2/pim/run/pass/inctest.mod: New test.
    
    (cherry picked from commit 4d0faaaaf917528d1c59bfad5401274c5be71b7b)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index 2c3969805dc..21699554a65 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -7020,19 +7020,19 @@ BEGIN
       BuildDisposeProcedure (tokno)
    ELSIF ProcSym = Inc
    THEN
-      BuildIncProcedure
+      BuildIncProcedure (tokno)
    ELSIF ProcSym = Dec
    THEN
-      BuildDecProcedure
+      BuildDecProcedure (tokno)
    ELSIF ProcSym = Incl
    THEN
-      BuildInclProcedure
+      BuildInclProcedure (tokno)
    ELSIF ProcSym = Excl
    THEN
-      BuildExclProcedure
+      BuildExclProcedure (tokno)
    ELSIF ProcSym = Throw
    THEN
-      BuildThrowProcedure
+      BuildThrowProcedure (tokno)
    ELSE
       InternalError  ('pseudo procedure not implemented yet')
    END
@@ -7083,14 +7083,12 @@ END GetItemPointedTo ;
                          |----------------|
 *)
 
-PROCEDURE BuildThrowProcedure ;
+PROCEDURE BuildThrowProcedure (functok: CARDINAL) ;
 VAR
-   functok  : CARDINAL ;
    op       : CARDINAL ;
    NoOfParam: CARDINAL ;
 BEGIN
    PopT (NoOfParam) ;
-   functok  := OperandTtok (NoOfParam + 1) ;
    IF NoOfParam = 1
    THEN
       op := OperandT (NoOfParam) ;
@@ -7327,19 +7325,19 @@ BEGIN
    IF IsExpressionCompatible (dtype, etype)
    THEN
       (* the easy case simulate a straightforward macro *)
-      PushTF (des, dtype) ;
+      PushTFtok (des, dtype, tokenpos) ;
       PushT (tok) ;
-      PushTF (expr, etype) ;
+      PushTFtok (expr, etype, tokenpos) ;
       doBuildBinaryOp (FALSE, TRUE)
    ELSE
       IF (IsOrdinalType (dtype) OR (dtype = Address) OR IsPointer (dtype)) AND
          (IsOrdinalType (etype) OR (etype = Address) OR IsPointer (etype))
       THEN
-         PushTF (des, dtype) ;
+         PushTFtok (des, dtype, tokenpos) ;
          PushT (tok) ;
-         PushTF (Convert, NulSym) ;
-         PushT (dtype) ;
-         PushT (expr) ;
+         PushTFtok (Convert, NulSym, tokenpos) ;
+         PushTtok (dtype, tokenpos) ;
+         PushTtok (expr, tokenpos) ;
          PushT (2) ;          (* Two parameters *)
          BuildConvertFunction (Convert, FALSE) ;
          doBuildBinaryOp (FALSE, TRUE)
@@ -7386,9 +7384,8 @@ END CheckRangeIncDec ;
                        |----------------|
 *)
 
-PROCEDURE BuildIncProcedure ;
+PROCEDURE BuildIncProcedure (proctok: CARDINAL) ;
 VAR
-   proctok   : CARDINAL ;
    NoOfParam,
    dtype,
    OperandSym,
@@ -7396,26 +7393,25 @@ VAR
    TempSym   : CARDINAL ;
 BEGIN
    PopT (NoOfParam) ;
-   proctok := OperandTtok (NoOfParam + 1) ;
    IF (NoOfParam = 1) OR (NoOfParam = 2)
    THEN
-      VarSym := OperandT (NoOfParam) ;  (* bottom/first parameter *)
+      VarSym := OperandT (NoOfParam) ;  (* Bottom/first parameter.  *)
       IF IsVar (VarSym)
       THEN
          dtype := GetDType (VarSym) ;
          IF NoOfParam = 2
          THEN
-            OperandSym := DereferenceLValue (OperandTok (1), OperandT (1))
+            OperandSym := DereferenceLValue (proctok, OperandT (1))
          ELSE
             PushOne (proctok, dtype,
                      'the {%EkINC} will cause an overflow {%1ad}') ;
 	    PopT (OperandSym)
          END ;
 
-         PushT (VarSym) ;
-         TempSym := DereferenceLValue (OperandTok (NoOfParam), VarSym) ;
-         CheckRangeIncDec (proctok, TempSym, OperandSym, PlusTok) ;  (* TempSym + OperandSym *)
-         BuildAssignmentWithoutBounds (proctok, FALSE, TRUE)   (* VarSym := TempSym + OperandSym *)
+         PushTtok (VarSym, proctok) ;
+         TempSym := DereferenceLValue (proctok, VarSym) ;
+         CheckRangeIncDec (proctok, TempSym, OperandSym, PlusTok) ;  (* TempSym + OperandSym.  *)
+         BuildAssignmentWithoutBounds (proctok, FALSE, TRUE)   (* VarSym := TempSym + OperandSym.  *)
       ELSE
          MetaErrorT1 (proctok,
                       'base procedure {%EkINC} expects a variable as a parameter but was given {%1Ed}',
@@ -7459,9 +7455,8 @@ END BuildIncProcedure ;
                        |----------------|
 *)
 
-PROCEDURE BuildDecProcedure ;
+PROCEDURE BuildDecProcedure (proctok: CARDINAL) ;
 VAR
-   proctok,
    NoOfParam,
    dtype,
    OperandSym,
@@ -7469,26 +7464,25 @@ VAR
    TempSym   : CARDINAL ;
 BEGIN
    PopT (NoOfParam) ;
-   proctok := OperandTtok (NoOfParam + 1) ;
    IF (NoOfParam = 1) OR (NoOfParam = 2)
    THEN
-      VarSym := OperandT (NoOfParam) ;  (* bottom/first parameter *)
+      VarSym := OperandT (NoOfParam) ;  (* Bottom/first parameter.  *)
       IF IsVar (VarSym)
       THEN
          dtype := GetDType (VarSym) ;
          IF NoOfParam = 2
          THEN
-            OperandSym := DereferenceLValue (OperandTok (1), OperandT (1))
+            OperandSym := DereferenceLValue (proctok, OperandT (1))
          ELSE
             PushOne (proctok, dtype,
                      'the {%EkDEC} will cause an overflow {%1ad}') ;
 	    PopT (OperandSym)
          END ;
 
-         PushT (VarSym) ;
+         PushTtok (VarSym, proctok) ;
          TempSym := DereferenceLValue (OperandTok (NoOfParam), VarSym) ;
-         CheckRangeIncDec (proctok, TempSym, OperandSym, MinusTok) ;  (* TempSym - OperandSym *)
-         BuildAssignmentWithoutBounds (proctok, FALSE, TRUE)   (* VarSym := TempSym - OperandSym *)
+         CheckRangeIncDec (proctok, TempSym, OperandSym, MinusTok) ;  (* TempSym - OperandSym.  *)
+         BuildAssignmentWithoutBounds (proctok, FALSE, TRUE)   (* VarSym := TempSym - OperandSym.  *)
       ELSE
          MetaErrorT1 (proctok,
                       'base procedure {%EkDEC} expects a variable as a parameter but was given {%1Ed}',
@@ -7552,9 +7546,8 @@ END DereferenceLValue ;
                         |----------------|
 *)
 
-PROCEDURE BuildInclProcedure ;
+PROCEDURE BuildInclProcedure (proctok: CARDINAL) ;
 VAR
-   proctok,
    optok     : CARDINAL ;
    NoOfParam,
    DerefSym,
@@ -7562,7 +7555,6 @@ VAR
    VarSym    : CARDINAL ;
 BEGIN
    PopT (NoOfParam) ;
-   proctok := OperandTtok (NoOfParam + 1) ;
    IF NoOfParam = 2
    THEN
       VarSym := OperandT (2) ;
@@ -7618,9 +7610,8 @@ END BuildInclProcedure ;
                         |----------------|
 *)
 
-PROCEDURE BuildExclProcedure ;
+PROCEDURE BuildExclProcedure (proctok: CARDINAL) ;
 VAR
-   proctok,
    optok     : CARDINAL ;
    NoOfParam,
    DerefSym,
@@ -7628,7 +7619,6 @@ VAR
    VarSym    : CARDINAL ;
 BEGIN
    PopT (NoOfParam) ;
-   proctok := OperandTtok (NoOfParam + 1) ;
    IF NoOfParam=2
    THEN
       VarSym := OperandT (2) ;
diff --git a/gcc/testsuite/gm2/pim/run/pass/dectest.mod b/gcc/testsuite/gm2/pim/run/pass/dectest.mod
new file mode 100644
index 00000000000..41d4744aff0
--- /dev/null
+++ b/gcc/testsuite/gm2/pim/run/pass/dectest.mod
@@ -0,0 +1,10 @@
+MODULE dectest ;  
+
+VAR
+   c: CARDINAL ;
+BEGIN
+   c := 20 ;
+   WHILE c > 1 DO
+      DEC (c)
+   END
+END dectest.
diff --git a/gcc/testsuite/gm2/pim/run/pass/inctest.mod b/gcc/testsuite/gm2/pim/run/pass/inctest.mod
new file mode 100644
index 00000000000..c4d9d2e0a35
--- /dev/null
+++ b/gcc/testsuite/gm2/pim/run/pass/inctest.mod
@@ -0,0 +1,10 @@
+MODULE inctest ;  
+
+VAR
+   c: CARDINAL ;
+BEGIN
+   c := 0 ;
+   WHILE c < 20 DO
+      INC (c)
+   END
+END inctest.

commit 88ca0670c79f123cc84928f78cd3d5eb46b91338
Author: Marek Polacek <polacek@redhat.com>
Date:   Tue Nov 26 14:37:21 2024 -0500

    driver: -fhardened and -z lazy/-z norelro [PR117739]
    
    As the manual states, using "-fhardened -fstack-protector" will produce
    a warning because -fhardened wants to enable -fstack-protector-strong,
    but it can't since it's been overriden by the weaker -fstack-protector.
    
    -fhardened also attempts to enable -Wl,-z,relro,-z,now.  By the same
    logic as above, "-fhardened -z norelro" or "-fhardened -z lazy" should
    produce the same warning.  But we don't detect this combination, so
    this patch fixes it.  I also renamed a variable to better reflect its
    purpose.
    
    Also don't check warn_hardened in process_command, since it's always
    true there.
    
    Also tweak wording in the manual as Jon Wakely suggested on IRC.
    
            PR driver/117739
    
    gcc/ChangeLog:
    
            * doc/invoke.texi: Tweak wording for -Whardened.
            * gcc.cc (driver_handle_option): If -z lazy or -z norelro was
            specified, don't enable linker hardening.
            (process_command): Don't check warn_hardened.
    
    gcc/testsuite/ChangeLog:
    
            * c-c++-common/fhardened-16.c: New test.
            * c-c++-common/fhardened-17.c: New test.
            * c-c++-common/fhardened-18.c: New test.
            * c-c++-common/fhardened-19.c: New test.
            * c-c++-common/fhardened-20.c: New test.
            * c-c++-common/fhardened-21.c: New test.
    
    Reviewed-by: Jakub Jelinek <jakub@redhat.com>
    (cherry picked from commit a134dcd8a010744a0097d190f73a4efc2e381531)

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index b575e2b9663..6a94c7b70a5 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -6974,8 +6974,8 @@ This warning is enabled by @option{-Wall}.
 Warn when @option{-fhardened} did not enable an option from its set (for
 which see @option{-fhardened}).  For instance, using @option{-fhardened}
 and @option{-fstack-protector} at the same time on the command line causes
-@option{-Whardened} to warn because @option{-fstack-protector-strong} is
-not enabled by @option{-fhardened}.
+@option{-Whardened} to warn because @option{-fstack-protector-strong} will
+not be enabled by @option{-fhardened}.
 
 This warning is enabled by default and has effect only when @option{-fhardened}
 is enabled.
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index 728332b8153..8690f15a8c9 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -302,9 +302,10 @@ static size_t dumpdir_length = 0;
    driver added to dumpdir after dumpbase or linker output name.  */
 static bool dumpdir_trailing_dash_added = false;
 
-/* True if -r, -shared, -pie, or -no-pie were specified on the command
-   line.  */
-static bool any_link_options_p;
+/* True if -r, -shared, -pie, -no-pie, -z lazy, or -z norelro were
+   specified on the command line, and therefore -fhardened should not
+   add -z now/relro.  */
+static bool avoid_linker_hardening_p;
 
 /* True if -static was specified on the command line.  */
 static bool static_p;
@@ -4413,10 +4414,17 @@ driver_handle_option (struct gcc_options *opts,
 	    }
 	/* Record the part after the last comma.  */
 	add_infile (arg + prev, "*");
+	if (strcmp (arg, "-z,lazy") == 0 || strcmp (arg, "-z,norelro") == 0)
+	  avoid_linker_hardening_p = true;
       }
       do_save = false;
       break;
 
+    case OPT_z:
+      if (strcmp (arg, "lazy") == 0 || strcmp (arg, "norelro") == 0)
+	avoid_linker_hardening_p = true;
+      break;
+
     case OPT_Xlinker:
       add_infile (arg, "*");
       do_save = false;
@@ -4616,7 +4624,7 @@ driver_handle_option (struct gcc_options *opts,
     case OPT_r:
     case OPT_shared:
     case OPT_no_pie:
-      any_link_options_p = true;
+      avoid_linker_hardening_p = true;
       break;
 
     case OPT_static:
@@ -5000,7 +5008,7 @@ process_command (unsigned int decoded_options_count,
   /* TODO: check if -static -pie works and maybe use it.  */
   if (flag_hardened)
     {
-      if (!any_link_options_p && !static_p)
+      if (!avoid_linker_hardening_p && !static_p)
 	{
 #if defined HAVE_LD_PIE && defined LD_PIE_SPEC
 	  save_switch (LD_PIE_SPEC, 0, NULL, /*validated=*/true, /*known=*/false);
@@ -5019,7 +5027,7 @@ process_command (unsigned int decoded_options_count,
 	    }
 	}
       /* We can't use OPT_Whardened yet.  Sigh.  */
-      else if (warn_hardened)
+      else
 	warning_at (UNKNOWN_LOCATION, 0,
 		    "linker hardening options not enabled by %<-fhardened%> "
 		    "because other link options were specified on the command "
diff --git a/gcc/testsuite/c-c++-common/fhardened-16.c b/gcc/testsuite/c-c++-common/fhardened-16.c
new file mode 100644
index 00000000000..7a50ad03e17
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/fhardened-16.c
@@ -0,0 +1,5 @@
+/* PR driver/117739 */
+/* { dg-do compile { target *-*-linux* *-*-gnu* } } */
+/* { dg-options "-fhardened -O -Wl,-z,lazy -Whardened" } */
+
+/* { dg-warning "linker hardening options not enabled" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/c-c++-common/fhardened-17.c b/gcc/testsuite/c-c++-common/fhardened-17.c
new file mode 100644
index 00000000000..acef8c64a9f
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/fhardened-17.c
@@ -0,0 +1,5 @@
+/* PR driver/117739 */
+/* { dg-do compile { target *-*-linux* *-*-gnu* } } */
+/* { dg-options "-fhardened -O -z lazy -Whardened" } */
+
+/* { dg-warning "linker hardening options not enabled" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/c-c++-common/fhardened-18.c b/gcc/testsuite/c-c++-common/fhardened-18.c
new file mode 100644
index 00000000000..1a9a34bd7d8
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/fhardened-18.c
@@ -0,0 +1,5 @@
+/* PR driver/117739 */
+/* { dg-do compile { target *-*-linux* *-*-gnu* } } */
+/* { dg-options "-Wl,-z,lazy -fhardened -O -Whardened" } */
+
+/* { dg-warning "linker hardening options not enabled" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/c-c++-common/fhardened-19.c b/gcc/testsuite/c-c++-common/fhardened-19.c
new file mode 100644
index 00000000000..a871702fd2d
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/fhardened-19.c
@@ -0,0 +1,5 @@
+/* PR driver/117739 */
+/* { dg-do compile { target *-*-linux* *-*-gnu* } } */
+/* { dg-options "-z lazy -fhardened -O -Whardened" } */
+
+/* { dg-warning "linker hardening options not enabled" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/c-c++-common/fhardened-20.c b/gcc/testsuite/c-c++-common/fhardened-20.c
new file mode 100644
index 00000000000..c9f2d89e653
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/fhardened-20.c
@@ -0,0 +1,5 @@
+/* PR driver/117739 */
+/* { dg-do compile { target *-*-linux* *-*-gnu* } } */
+/* { dg-options "-fhardened -O -Wl,-z,norelro -Whardened" } */
+
+/* { dg-warning "linker hardening options not enabled" "" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/c-c++-common/fhardened-21.c b/gcc/testsuite/c-c++-common/fhardened-21.c
new file mode 100644
index 00000000000..07b7ee10e04
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/fhardened-21.c
@@ -0,0 +1,5 @@
+/* PR driver/117739 */
+/* { dg-do compile { target *-*-linux* *-*-gnu* } } */
+/* { dg-options "-fhardened -O -z norelro -Whardened" } */
+
+/* { dg-warning "linker hardening options not enabled" "" { target *-*-* } 0 } */

commit 3e7c48f4ee5e0d191dd10993fb4cf666c761ac1f
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Feb 14 00:22:20 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4e49d25a7b1..57494720b23 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2025-02-13  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-02-13  Marek Polacek  <polacek@redhat.com>
+
+	PR driver/117739
+	* doc/invoke.texi: Tweak wording for -Whardened.
+	* gcc.cc (driver_handle_option): If -z lazy or -z norelro was
+	specified, don't enable linker hardening.
+	(process_command): Don't check warn_hardened.
+
 2025-02-11  H.J. Lu  <hjl.tools@gmail.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index d38af5a6357..c2b6f8fd1b4 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250213
+20250214
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 8b644ac02a1..ed85ca5046a 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2025-02-13  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/118849
+	* decl2.cc (min_vis_expr_r): Constrain visibility according to
+	the type of decl_constant_var_p decls.
+
 2025-02-10  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index cd2fd895590..9866f28496f 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,18 @@
+2025-02-13  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2025-02-04  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115112
+	* gm2-compiler/M2Quads.mod (BuildPseudoProcedureCall): Pass
+	tokno to each build procedure.
+	(BuildThrowProcedure): New parameter functok.
+	(BuildIncProcedure): New parameter proctok.
+	Pass proctok on the quad stack during every push.
+	(BuildDecProcedure): Ditto.
+	(BuildInclProcedure): New parameter proctok.
+	(BuildExclProcedure): New parameter proctok.
+
 2025-02-12  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 55fac2082dc..d2639a7e0d4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,30 @@
+2025-02-13  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-02-13  Marek Polacek  <polacek@redhat.com>
+
+	PR driver/117739
+	* c-c++-common/fhardened-16.c: New test.
+	* c-c++-common/fhardened-17.c: New test.
+	* c-c++-common/fhardened-18.c: New test.
+	* c-c++-common/fhardened-19.c: New test.
+	* c-c++-common/fhardened-20.c: New test.
+	* c-c++-common/fhardened-21.c: New test.
+
+2025-02-13  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2025-02-04  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/115112
+	* gm2/pim/run/pass/dectest.mod: New test.
+	* gm2/pim/run/pass/inctest.mod: New test.
+
+2025-02-13  Nathaniel Shead  <nathanieloshead@gmail.com>
+
+	PR c++/118849
+	* g++.dg/template/linkage6.C: New test.
+
 2025-02-12  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:

commit 5ec7193faa7a5a78dd5382aec220a49f4a76a976
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Fri Feb 7 21:21:10 2025 +0100

    Fortran: fix initialization of allocatable non-deferred character [PR59252]
    
            PR fortran/59252
    
    gcc/fortran/ChangeLog:
    
            * trans-expr.cc (gfc_trans_subcomponent_assign): Initialize
            allocatable non-deferred character with NULL properly.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/allocatable_char_1.f90: New test.
    
    (cherry picked from commit 818c36a85e3faec5442eb26799bfa3bba7764b36)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 601cc546d43..f6de2227675 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -9407,9 +9407,13 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component * cm,
       tmp = gfc_trans_alloc_subarray_assign (tmp, cm, expr);
       gfc_add_expr_to_block (&block, tmp);
     }
-  else if (init && cm->attr.allocatable && expr->expr_type == EXPR_NULL)
+  else if (cm->attr.allocatable && expr->expr_type == EXPR_NULL
+	   && (init
+	       || (cm->ts.type == BT_CHARACTER
+		   && !(cm->ts.deferred || cm->attr.pdt_string))))
     {
-      /* NULL initialization for allocatable components.  */
+      /* NULL initialization for allocatable components.
+	 Deferred-length character is dealt with later.  */
       gfc_add_modify (&block, dest, fold_convert (TREE_TYPE (dest),
 						  null_pointer_node));
     }
diff --git a/gcc/testsuite/gfortran.dg/allocatable_char_1.f90 b/gcc/testsuite/gfortran.dg/allocatable_char_1.f90
new file mode 100644
index 00000000000..1d6c25c4942
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/allocatable_char_1.f90
@@ -0,0 +1,47 @@
+! { dg-do run }
+! { dg-additional-options "-fdump-tree-original" }
+!
+! PR fortran/59252
+
+module mod
+  implicit none
+
+  type t1
+     character(256), allocatable :: label
+  end type t1
+
+  type t2
+     type(t1),       allocatable :: appv(:)
+  end type t2
+
+contains
+  subroutine construct(res)
+    type(t2), allocatable, intent(inout) :: res
+    if (.not. allocated(res)) allocate(res)
+  end subroutine construct
+
+  subroutine construct_appv(appv)
+    type(t1), allocatable, intent(inout) :: appv(:)
+    if (.not. allocated(appv)) allocate(appv(20))
+  end subroutine construct_appv
+
+  type(t1) function foo () result (res)
+  end function foo
+end module mod
+
+program testy
+  use mod
+  implicit none
+  type(t2), allocatable :: res
+  type(t1)              :: s
+
+  ! original test from pr59252
+  call construct     (res)
+  call construct_appv(res%appv)
+  deallocate (res)
+
+  ! related test from pr118747 comment 2:
+  s = foo ()
+end program testy
+
+! { dg-final { scan-tree-dump-not "__builtin_memmove" "original" } }

commit 9c38d0a79caef1909df9f51ec8d17c5f8cfecabd
Author: Gaius Mulley <gaiusmod2@gmail.com>
Date:   Fri Feb 14 19:17:02 2025 +0000

    [PATCH] PR modula2/118761: gm2 driver doesnt behave as gcc for -fhelp=BLA
    
    This patch enables the gm2 driver to handle -fsyntax-only -fhelp=optimizers,
    for example, correctly without terminating with gm2: fatal error:
    no input files.
    
    gcc/m2/ChangeLog:
    
            PR modula2/118761
            * gm2spec.cc (lang_specific_driver): Add case clauses for
            OPT__help, OPT__help_ set in_added_libraries to 0 and early
            return.
    
    (cherry picked from commit 3c5422e719d1fbabccaa9b63605171ea8bdfe57e)
    
    Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>

diff --git a/gcc/m2/gm2spec.cc b/gcc/m2/gm2spec.cc
index 2a4dccf8b93..d1fefdcc27c 100644
--- a/gcc/m2/gm2spec.cc
+++ b/gcc/m2/gm2spec.cc
@@ -576,6 +576,12 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
 	  args[i] |= SKIPOPT; /* We will add the option if it is needed.  */
 	  m2_path_name = decoded_options[i].arg;
 	  break;
+	case OPT__help:
+	case OPT__help_:
+	  /* Let gcc.cc handle this, as it has a really
+	     cool facility for handling --help and --verbose --help.  */
+	  *in_added_libraries = 0;
+	  return;
 	case OPT_I:
 	  args[i] |= SKIPOPT; /* We will add the option if it is needed.  */
 	  push_back_Ipath (decoded_options[i].arg);

commit b56db32e8b9c9ad515ff58c3e548ec55197b195a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Feb 15 00:26:41 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c2b6f8fd1b4..92ec7cafd89 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250214
+20250215
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 95dd5244690..b7b1ef3ee0b 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2025-02-14  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-02-07  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/59252
+	* trans-expr.cc (gfc_trans_subcomponent_assign): Initialize
+	allocatable non-deferred character with NULL properly.
+
 2025-02-07  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 9866f28496f..063055a5e82 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,13 @@
+2025-02-14  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	Backported from master:
+	2025-02-11  Gaius Mulley  <gaiusmod2@gmail.com>
+
+	PR modula2/118761
+	* gm2spec.cc (lang_specific_driver): Add case clauses for
+	OPT__help, OPT__help_ set in_added_libraries to 0 and early
+	return.
+
 2025-02-13  Gaius Mulley  <gaiusmod2@gmail.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d2639a7e0d4..a8a0134fa36 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2025-02-14  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-02-07  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/59252
+	* gfortran.dg/allocatable_char_1.f90: New test.
+
 2025-02-13  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:

commit e4f3c404c89eec48b467b2419f6fe655d56e30a2
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Feb 16 00:26:05 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 92ec7cafd89..b0189f2c256 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250215
+20250216

commit 5dcf4ec72d3459eac0b05de82455a8bb5fcb5384
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Feb 17 00:26:29 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index b0189f2c256..328350d1a96 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250216
+20250217

commit 31cbac836bb4f4c2172a91ee6164d8fdd32a8cb8
Author: Haochen Jiang <haochen.jiang@intel.com>
Date:   Mon Feb 10 16:53:27 2025 +0800

    i386: Do not check vector size conflict when AVX512 is not explicitly set [PR 118815]
    
    When AVX512 is not explicitly set, we should not take EVEX512 bit into
    consideration when checking vector size. It will solve the intrin header
    file reporting warnings when compiling with -Wsystem-headers.
    
    However, there is side effect on the usage for '-march=xxx -mavx10.1-256',
    where xxx is with AVX512. It will not report warning on vector size for now.
    Since it is a rare usage, we will take it.
    
    gcc/ChangeLog:
    
            PR target/118815
            * config/i386/i386-options.cc (ix86_option_override_internal):
            Do not check vector size conflict when AVX512 is not explicitly
            set.

diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index f6c450cc871..a6eba1ca2b8 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -2725,6 +2725,7 @@ ix86_option_override_internal (bool main_args_p,
 			"using 512 as max vector size");
 	}
       else if (TARGET_AVX512F_P (opts->x_ix86_isa_flags)
+	       && (opts->x_ix86_isa_flags_explicit & OPTION_MASK_ISA_AVX512F)
 	       && !(OPTION_MASK_ISA2_EVEX512
 		    & opts->x_ix86_isa_flags2_explicit))
 	warning (0, "Vector size conflicts between AVX10.1 and AVX512, using "

commit de562367d344758ea9264992e884f031d4435688
Author: Haochen Jiang <haochen.jiang@intel.com>
Date:   Tue Feb 11 11:29:34 2025 +0800

    i386: Deprecate -m[no-]avx10.1 and make -mno-avx10.1-512 to disable the whole AVX10.1
    
    Based on the feedback we got, we would like to re-alias avx10.x to 512
    bit in the future. This leaves the current avx10.1 alias to 256 bit
    inconsistent. Since it has been there for GCC 14.1 and GCC 14.2,
    we decide to deprecate avx10.1 alias. The current proposal is not
    adding it back in the future, but it might change if necessary.
    
    For -mno- options, it is confusing what it is disabling when it comes
    to avx10. Since there is barely usage enabling AVX10 with 512 bit
    then disabling it, we will only provide -mno-avx10.x options in the
    future, disabling the whole AVX10.x. If someone really wants to disable
    512 bit after enabling it, -mavx10.x-512 -mno-avx10.x -mavx10.x-256 is
    the only way to do that since we also do not want to break the usual
    expression on -m- options enabling everything mentioned.
    
    However, for avx10.1, since we deprecated avx10.1, there is no reason
    we should have -mno-avx10.1. Thus, we need to keep -mno-avx10.1-[256,512].
    To avoid confusion, we will make -mno-avx10.1-512 to disable the
    whole AVX10.1 set to match the future -mno-avx10.x.
    
    gcc/ChangeLog:
    
            * common/config/i386/i386-common.cc
            (OPTION_MASK_ISA2_AVX2_UNSET): Change AVX10.1 unset macro.
            (OPTION_MASK_ISA2_AVX10_1_256_UNSET): Removed.
            (OPTION_MASK_ISA2_AVX10_1_512_UNSET): Removed.
            (OPTION_MASK_ISA2_AVX10_1_UNSET): New.
            (ix86_handle_option): Adjust AVX10.1 unset macro.
            * common/config/i386/i386-isas.h: Remove avx10.1.
            * config/i386/i386-options.cc
            (ix86_valid_target_attribute_inner_p): Ditto.
            (ix86_option_override_internal): Adjust warning message.
            * config/i386/i386.opt: Remove mavx10.1.
            * config/i386/i386.opt.urls: Regenerated.
            * doc/extend.texi: Remove avx10.1 and adjust doc.
            * doc/sourcebuild.texi: Ditto.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/avx10_1-1.c: Change to avx10.1-256.
            * gcc.target/i386/avx10_1-13.c: Ditto.
            * gcc.target/i386/avx10_1-14.c: Ditto.
            * gcc.target/i386/avx10_1-21.c: Ditto.
            * gcc.target/i386/avx10_1-22.c: Ditto.
            * gcc.target/i386/avx10_1-23.c: Ditto.
            * gcc.target/i386/avx10_1-24.c: Ditto.
            * gcc.target/i386/avx10_1-3.c: Ditto.
            * gcc.target/i386/avx10_1-5.c: Ditto.
            * gcc.target/i386/avx10_1-6.c: Ditto.
            * gcc.target/i386/avx10_1-8.c: Ditto.
            * gcc.target/i386/avx10_1-12.c: Adjust warning message.
            * gcc.target/i386/avx10_1-19.c: Ditto.
            * gcc.target/i386/avx10_1-17.c: Adjust to no-avx10.1-512.

diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc
index e535a3d516d..73ba6246760 100644
--- a/gcc/common/config/i386/i386-common.cc
+++ b/gcc/common/config/i386/i386-common.cc
@@ -239,7 +239,7 @@ along with GCC; see the file COPYING3.  If not see
   (OPTION_MASK_ISA2_AVXIFMA_UNSET | OPTION_MASK_ISA2_AVXVNNI_UNSET \
    | OPTION_MASK_ISA2_AVXVNNIINT8_UNSET | OPTION_MASK_ISA2_AVXNECONVERT_UNSET \
    | OPTION_MASK_ISA2_AVXVNNIINT16_UNSET | OPTION_MASK_ISA2_AVX512F_UNSET \
-   | OPTION_MASK_ISA2_AVX10_1_256_UNSET)
+   | OPTION_MASK_ISA2_AVX10_1_UNSET)
 #define OPTION_MASK_ISA_AVX512F_UNSET \
   (OPTION_MASK_ISA_AVX512F | OPTION_MASK_ISA_AVX512CD_UNSET \
    | OPTION_MASK_ISA_AVX512PF_UNSET | OPTION_MASK_ISA_AVX512ER_UNSET \
@@ -319,9 +319,8 @@ along with GCC; see the file COPYING3.  If not see
 #define OPTION_MASK_ISA2_APX_F_UNSET OPTION_MASK_ISA2_APX_F
 #define OPTION_MASK_ISA2_EVEX512_UNSET OPTION_MASK_ISA2_EVEX512
 #define OPTION_MASK_ISA2_USER_MSR_UNSET OPTION_MASK_ISA2_USER_MSR
-#define OPTION_MASK_ISA2_AVX10_1_256_UNSET \
-  (OPTION_MASK_ISA2_AVX10_1_256 | OPTION_MASK_ISA2_AVX10_1_512_UNSET)
-#define OPTION_MASK_ISA2_AVX10_1_512_UNSET OPTION_MASK_ISA2_AVX10_1_512
+#define OPTION_MASK_ISA2_AVX10_1_UNSET \
+  (OPTION_MASK_ISA2_AVX10_1_256 | OPTION_MASK_ISA2_AVX10_1_512)
 
 /* SSE4 includes both SSE4.1 and SSE4.2.  -mno-sse4 should the same
    as -mno-sse4.1. */
@@ -1419,8 +1418,8 @@ ix86_handle_option (struct gcc_options *opts,
 	}
       else
 	{
-	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX10_1_256_UNSET;
-	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX10_1_256_UNSET;
+	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX10_1_UNSET;
+	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX10_1_UNSET;
 	  opts->x_ix86_no_avx10_1_explicit = 1;
 	}
       return true;
@@ -1435,8 +1434,8 @@ ix86_handle_option (struct gcc_options *opts,
 	}
       else
 	{
-	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX10_1_512_UNSET;
-	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX10_1_512_UNSET;
+	  opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_AVX10_1_UNSET;
+	  opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_AVX10_1_UNSET;
 	  opts->x_ix86_no_avx10_1_explicit = 1;
 	}
       return true;
diff --git a/gcc/common/config/i386/i386-isas.h b/gcc/common/config/i386/i386-isas.h
index 9c2179a3dd8..017c795e211 100644
--- a/gcc/common/config/i386/i386-isas.h
+++ b/gcc/common/config/i386/i386-isas.h
@@ -193,7 +193,6 @@ ISA_NAMES_TABLE_START
   ISA_NAMES_TABLE_ENTRY("sm4", FEATURE_SM4, P_NONE, "-msm4")
   ISA_NAMES_TABLE_ENTRY("apxf", FEATURE_APX_F, P_NONE, "-mapxf")
   ISA_NAMES_TABLE_ENTRY("usermsr", FEATURE_USER_MSR, P_NONE, "-musermsr")
-  ISA_NAMES_TABLE_ENTRY("avx10.1", FEATURE_AVX10_1_256, P_NONE, "-mavx10.1")
   ISA_NAMES_TABLE_ENTRY("avx10.1-256", FEATURE_AVX10_1_256, P_AVX10_1_256, "-mavx10.1-256")
   ISA_NAMES_TABLE_ENTRY("avx10.1-512", FEATURE_AVX10_1_512, P_AVX10_1_512, "-mavx10.1-512")
 ISA_NAMES_TABLE_END
diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index a6eba1ca2b8..11c6ddf0f44 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -1135,7 +1135,6 @@ ix86_valid_target_attribute_inner_p (tree fndecl, tree args, char *p_strings[],
     IX86_ATTR_ISA ("apxf", OPT_mapxf),
     IX86_ATTR_ISA ("evex512", OPT_mevex512),
     IX86_ATTR_ISA ("usermsr", OPT_musermsr),
-    IX86_ATTR_ISA ("avx10.1", OPT_mavx10_1_256),
     IX86_ATTR_ISA ("avx10.1-256", OPT_mavx10_1_256),
     IX86_ATTR_ISA ("avx10.1-512", OPT_mavx10_1_512),
 
@@ -2746,7 +2745,7 @@ ix86_option_override_internal (bool main_args_p,
 	  && ((OPTION_MASK_ISA2_AVX10_1_256 | OPTION_MASK_ISA2_AVX10_1_512)
 	      & opts->x_ix86_isa_flags2_explicit))
 	{
-	  warning (0, "%<-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512%> "
+	  warning (0, "%<-mno-avx10.1-256, -mno-avx10.1-512%> "
 		      "cannot disable AVX512 instructions when "
 		      "%<-mavx512XXX%>");
 	  /* Reset those unset AVX512 flags set by AVX10 options when AVX10 is
diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
index d5f793a9e8b..f99c4e3ae5d 100644
--- a/gcc/config/i386/i386.opt
+++ b/gcc/config/i386/i386.opt
@@ -1380,8 +1380,3 @@ mavx10.1-512
 Target Mask(ISA2_AVX10_1_512) Var(ix86_isa_flags2) Save
 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2,
 and AVX10.1-512 built-in functions and code generation.
-
-mavx10.1
-Target Alias(mavx10.1-256)
-Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2,
-and AVX10.1 built-in functions and code generation.
diff --git a/gcc/config/i386/i386.opt.urls b/gcc/config/i386/i386.opt.urls
index 81c5bb9a927..3ed76635002 100644
--- a/gcc/config/i386/i386.opt.urls
+++ b/gcc/config/i386/i386.opt.urls
@@ -615,6 +615,3 @@ UrlSuffix(gcc/x86-Options.html#index-mavx10_002e1-256)
 mavx10.1-512
 UrlSuffix(gcc/x86-Options.html#index-mavx10_002e1-512)
 
-mavx10.1
-UrlSuffix(gcc/x86-Options.html#index-mavx10_002e1)
-
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 14834fc4a18..8bd30bb2a46 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -7383,20 +7383,17 @@ Enable/disable the generation of the USER_MSR instructions.
 Enable/disable the generation of the APX features, including
 EGPR, PUSH2POP2, NDD and PPX.
 
-@cindex @code{target("avx10.1")} function attribute, x86
-@item avx10.1
-@itemx no-avx10.1
-Enable/disable the generation of the AVX10.1 instructions.
-
 @cindex @code{target("avx10.1-256")} function attribute, x86
 @item avx10.1-256
 @itemx no-avx10.1-256
-Enable/disable the generation of the AVX10.1 instructions.
+Enable the generation of the AVX10.1 instructions with 256 bit support.
+Disable the generation of the AVX10.1 instructions.
 
 @cindex @code{target("avx10.1-512")} function attribute, x86
 @item avx10.1-512
 @itemx no-avx10.1-512
-Enable/disable the generation of the AVX10.1 512 bit instructions.
+Enable the generation of the AVX10.1 instructions with 512 bit support.
+Disable the generation of the AVX10.1 instructions.
 
 @cindex @code{target("cld")} function attribute, x86
 @item cld
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 8e4e59ac44c..5b026cfe073 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -2543,11 +2543,8 @@ Target supports compiling @code{avx} instructions.
 @item avx_runtime
 Target supports the execution of @code{avx} instructions.
 
-@item avx10.1
-Target supports the execution of @code{avx10.1} instructions.
-
 @item avx10.1-256
-Target supports the execution of @code{avx10.1} instructions.
+Target supports the execution of @code{avx10.1-256} instructions.
 
 @item avx10.1-512
 Target supports the execution of @code{avx10.1-512} instructions.
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-1.c b/gcc/testsuite/gcc.target/i386/avx10_1-1.c
index cfd9662bb13..33ce99ed60a 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-1.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target { ! ia32 } } } */
-/* { dg-options "-O2 -march=x86-64 -mavx10.1" } */
+/* { dg-options "-O2 -march=x86-64 -mavx10.1-256" } */
 
 #include <immintrin.h>
 
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-12.c b/gcc/testsuite/gcc.target/i386/avx10_1-12.c
index 61f0e4db61b..ae1c77bbcbd 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-12.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-12.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-march=x86-64 -mno-avx10.1-512 -mavx512f" } */
-/* { dg-warning "'-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512' cannot disable AVX512 instructions when '-mavx512XXX'" "" { target *-*-* } 0 } */
+/* { dg-warning "'-mno-avx10.1-256, -mno-avx10.1-512' cannot disable AVX512 instructions when '-mavx512XXX'" "" { target *-*-* } 0 } */
 /* { dg-final { scan-assembler "%zmm" } } */
 
 #include "avx10_1-2.c"
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-13.c b/gcc/testsuite/gcc.target/i386/avx10_1-13.c
index 8a111190025..e94ac8e1862 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-13.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-13.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-march=x86-64 -mavx10.1" } */
+/* { dg-options "-march=x86-64 -mavx10.1-256" } */
 /* { dg-final { scan-assembler "%zmm" } } */
 
 typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-14.c b/gcc/testsuite/gcc.target/i386/avx10_1-14.c
index 03222a7a031..76573e644fe 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-14.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-14.c
@@ -4,7 +4,7 @@
 
 typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
 
-__attribute__ ((target ("avx10.1"))) __m512d
+__attribute__ ((target ("avx10.1-256"))) __m512d
 foo ()
 { /* { dg-warning "Vector size conflicts between AVX10.1 and AVX512, using 512 as max vector size" } */
   __m512d a, b;
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-17.c b/gcc/testsuite/gcc.target/i386/avx10_1-17.c
index a19230f597b..09f125215dc 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-17.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-17.c
@@ -4,9 +4,9 @@
 
 typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
 
-__attribute__ ((target ("no-avx10.1"))) __m512d
+__attribute__ ((target ("no-avx10.1-512"))) __m512d
 foo ()
-{ /* { dg-warning "'-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512' cannot disable AVX512 instructions when '-mavx512XXX'" } */
+{ /* { dg-warning "'-mno-avx10.1-256, -mno-avx10.1-512' cannot disable AVX512 instructions when '-mavx512XXX'" } */
   __m512d a, b;
   a = a + b;
   return a;
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-19.c b/gcc/testsuite/gcc.target/i386/avx10_1-19.c
index 7aacc15aad9..7445ecfa548 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-19.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-19.c
@@ -6,7 +6,7 @@ typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
 
 __attribute__ ((target ("avx512f"))) __m512d
 foo ()
-{ /* { dg-warning "'-mno-avx10.1, -mno-avx10.1-256, -mno-avx10.1-512' cannot disable AVX512 instructions when '-mavx512XXX'" } */
+{ /* { dg-warning "'-mno-avx10.1-256, -mno-avx10.1-512' cannot disable AVX512 instructions when '-mavx512XXX'" } */
   __m512d a, b;
   a = a + b;
   return a;
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-21.c b/gcc/testsuite/gcc.target/i386/avx10_1-21.c
index 27a7265df61..0a1fcc9c0f8 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-21.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-21.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-march=x86-64 -mavx10.1 -mevex512 -Wno-psabi" } */
+/* { dg-options "-march=x86-64 -mavx10.1-256 -mevex512 -Wno-psabi" } */
 /* { dg-warning "Using '-mevex512' without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size" "" { target *-*-* } 0 } */
 /* { dg-final { scan-assembler-not "%zmm" } } */
 
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-22.c b/gcc/testsuite/gcc.target/i386/avx10_1-22.c
index 796262283d6..cb649dc5538 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-22.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-22.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-march=x86-64 -mavx10.1 -Wno-psabi" } */
+/* { dg-options "-march=x86-64 -mavx10.1-256 -Wno-psabi" } */
 /* { dg-final { scan-assembler-not "%zmm" } } */
 
 typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-23.c b/gcc/testsuite/gcc.target/i386/avx10_1-23.c
index 6e8d64d0f34..f31c63650ab 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-23.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-23.c
@@ -4,7 +4,7 @@
 
 typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
 
-__attribute__ ((target ("avx10.1"))) __m512d
+__attribute__ ((target ("avx10.1-256"))) __m512d
 foo ()
 { /* { dg-warning "Using '-mevex512' without any AVX512 features enabled together with AVX10.1 only will not enable any AVX512 or AVX10.1-512 features, using 256 as max vector size" "" { target *-*-* } 0 } */
   __m512d a, b;
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-24.c b/gcc/testsuite/gcc.target/i386/avx10_1-24.c
index 2e93f041760..1bba0fb4b66 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-24.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-24.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -mavx10.1" } */
+/* { dg-options "-O2 -march=x86-64 -mavx10.1-256" } */
 /* { dg-final { scan-assembler-not "%zmm" } } */
 
 typedef float __m512 __attribute__ ((__vector_size__ (64), __may_alias__));
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-3.c b/gcc/testsuite/gcc.target/i386/avx10_1-3.c
index 3be988a1a62..a176f2749ce 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-3.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-3.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -mavx10.1" } */
+/* { dg-options "-O2 -march=x86-64 -mavx10.1-256" } */
 
 #include <immintrin.h>
 
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-5.c b/gcc/testsuite/gcc.target/i386/avx10_1-5.c
index 20b78ea9510..3079cf14ef0 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-5.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-5.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O0 -march=x86-64 -mavx10.1 -Wno-psabi" } */
+/* { dg-options "-O0 -march=x86-64 -mavx10.1-256 -Wno-psabi" } */
 /* { dg-final { scan-assembler-not ".%zmm" } } */
 
 #include "avx10_1-2.c"
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-6.c b/gcc/testsuite/gcc.target/i386/avx10_1-6.c
index fbc92d5c4ca..60dbd05c4a7 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-6.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-6.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -march=x86-64 -mavx10.1" } */
+/* { dg-options "-O2 -march=x86-64 -mavx10.1-256" } */
 
 #include <immintrin.h>
 
diff --git a/gcc/testsuite/gcc.target/i386/avx10_1-8.c b/gcc/testsuite/gcc.target/i386/avx10_1-8.c
index 69b6c6a3e1a..ec930f72218 100644
--- a/gcc/testsuite/gcc.target/i386/avx10_1-8.c
+++ b/gcc/testsuite/gcc.target/i386/avx10_1-8.c
@@ -1,4 +1,4 @@
 /* { dg-do compile { target { ! ia32 } } } */
-/* { dg-options "-march=x86-64 -mavx10.1 -mavx512f -mno-evex512" } */
+/* { dg-options "-march=x86-64 -mavx10.1-256 -mavx512f -mno-evex512" } */
 
 #include "avx10_1-1.c"

commit 889fb66025cef4e434cc60e35add9f7406e38db7
Author: Lulu Cheng <chenglulu@loongson.cn>
Date:   Wed Feb 12 11:50:50 2025 +0800

    LoongArch: When -mfpu=none, '__loongarch_frecipe' shouldn't be defined [PR118843].
    
            PR target/118843
    
    gcc/ChangeLog:
    
            * config/loongarch/loongarch-c.cc
            (loongarch_update_cpp_builtins): Fix macro definition issues.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/loongarch/pr118843.c: New test.
    
    (cherry picked from commit ee579b7c257468b9032ab4583ec455fa871d4428)

diff --git a/gcc/config/loongarch/loongarch-c.cc b/gcc/config/loongarch/loongarch-c.cc
index c6763647cd1..591d1dabcdf 100644
--- a/gcc/config/loongarch/loongarch-c.cc
+++ b/gcc/config/loongarch/loongarch-c.cc
@@ -85,9 +85,6 @@ loongarch_cpu_cpp_builtins (cpp_reader *pfile)
   else
     builtin_define ("__loongarch_frlen=0");
 
-  if (TARGET_HARD_FLOAT && ISA_HAS_FRECIPE)
-    builtin_define ("__loongarch_frecipe");
-
   if (ISA_HAS_LSX)
     {
       builtin_define ("__loongarch_simd");
@@ -107,7 +104,9 @@ loongarch_cpu_cpp_builtins (cpp_reader *pfile)
   int max_v_major = 1, max_v_minor = 0;
 
   for (int i = 0; i < N_EVO_FEATURES; i++)
-    if (la_target.isa.evolution & la_evo_feature_masks[i])
+    if (la_target.isa.evolution & la_evo_feature_masks[i]
+	&& (la_evo_feature_masks[i] != OPTION_MASK_ISA_FRECIPE
+	    || TARGET_HARD_FLOAT))
       {
 	builtin_define (la_evo_macro_name[i]);
 
diff --git a/gcc/testsuite/gcc.target/loongarch/pr118843.c b/gcc/testsuite/gcc.target/loongarch/pr118843.c
new file mode 100644
index 00000000000..30372b8ffe6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/pr118843.c
@@ -0,0 +1,6 @@
+/* { dg-do preprocess } */
+/* { dg-options "-mfrecipe -mfpu=none" } */
+
+#ifdef __loongarch_frecipe
+#error __loongarch_frecipe should not be avaliable here
+#endif

commit 4467274face2553615d08f36707b3bd3df137733
Author: Andreas Tobler <andreast@gcc.gnu.org>
Date:   Sun Jun 9 23:18:04 2024 +0200

    FreeBSD: Stop linking _p libs for -pg as of FreeBSD 14
    
    As of FreeBSD version 14, FreeBSD no longer provides profiled system
    libraries like libc_p and libpthread_p. Stop linking against them if
    the FreeBSD major version is 14 or more.
    
    gcc:
            * config/freebsd-spec.h: Change fbsd-lib-spec for FreeBSD > 13,
            do not link against profiled system libraries if -pg is invoked.
            Add a define to note about this change.
            * config/aarch64/aarch64-freebsd.h: Use the note to inform if
            -pg is invoked on FreeBSD > 13.
            * config/arm/freebsd.h: Likewise.
            * config/i386/freebsd.h: Likewise.
            * config/i386/freebsd64.h: Likewise.
            * config/riscv/freebsd.h: Likewise.
            * config/rs6000/freebsd64.h: Likewise.
            * config/rs6000/sysv4.h: Likeise.

diff --git a/gcc/config/aarch64/aarch64-freebsd.h b/gcc/config/aarch64/aarch64-freebsd.h
index 53cc17a1caf..e26d69ce46c 100644
--- a/gcc/config/aarch64/aarch64-freebsd.h
+++ b/gcc/config/aarch64/aarch64-freebsd.h
@@ -35,6 +35,7 @@
 #undef  FBSD_TARGET_LINK_SPEC
 #define FBSD_TARGET_LINK_SPEC "                                 \
     %{p:%nconsider using `-pg' instead of `-p' with gprof (1)}  \
+    " FBSD_LINK_PG_NOTE "					\
     %{v:-V}                                                     \
     %{assert*} %{R*} %{rpath*} %{defsym*}                       \
     %{shared:-Bshareable %{h*} %{soname*}}                      \
diff --git a/gcc/config/arm/freebsd.h b/gcc/config/arm/freebsd.h
index 9d0a5a842ab..ee4860ae637 100644
--- a/gcc/config/arm/freebsd.h
+++ b/gcc/config/arm/freebsd.h
@@ -47,6 +47,7 @@
 #undef	LINK_SPEC
 #define LINK_SPEC "							\
   %{p:%nconsider using `-pg' instead of `-p' with gprof (1)}		\
+  " FBSD_LINK_PG_NOTE "							\
   %{v:-V}								\
   %{assert*} %{R*} %{rpath*} %{defsym*}					\
   %{shared:-Bshareable %{h*} %{soname*}}				\
diff --git a/gcc/config/freebsd-spec.h b/gcc/config/freebsd-spec.h
index a6d1ad1280f..f43056bf2cf 100644
--- a/gcc/config/freebsd-spec.h
+++ b/gcc/config/freebsd-spec.h
@@ -92,19 +92,29 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    libc, depending on whether we're doing profiling or need threads support.
    (similar to the default, except no -lg, and no -p).  */
 
+#if FBSD_MAJOR < 14
+#define FBSD_LINK_PG_NOTHREADS	"%{!pg: -lc}  %{pg: -lc_p}"
+#define FBSD_LINK_PG_THREADS	"%{!pg: %{pthread:-lpthread} -lc} " 	\
+				"%{pg: %{pthread:-lpthread} -lc_p}"
+#define FBSD_LINK_PG_NOTE ""
+#else
+#define FBSD_LINK_PG_NOTHREADS "%{-lc} "
+#define FBSD_LINK_PG_THREADS   "%{pthread:-lpthread} -lc "
+#define FBSD_LINK_PG_NOTE "%{pg:%nFreeBSD no longer provides profiled "\
+			  "system libraries}"
+#endif
+
 #ifdef FBSD_NO_THREADS
 #define FBSD_LIB_SPEC "							\
   %{pthread: %eThe -pthread option is only supported on FreeBSD when gcc \
 is built with the --enable-threads configure-time option.}		\
   %{!shared:								\
-    %{!pg: -lc}								\
-    %{pg:  -lc_p}							\
+    " FBSD_LINK_PG_NOTHREADS "						\
   }"
 #else
 #define FBSD_LIB_SPEC "							\
   %{!shared:								\
-    %{!pg: %{pthread:-lpthread} -lc}					\
-    %{pg:  %{pthread:-lpthread_p} -lc_p}				\
+    " FBSD_LINK_PG_THREADS "						\
   }									\
   %{shared:								\
     %{pthread:-lpthread} -lc						\
diff --git a/gcc/config/i386/freebsd.h b/gcc/config/i386/freebsd.h
index 3c57dc7cfae..583c752bb76 100644
--- a/gcc/config/i386/freebsd.h
+++ b/gcc/config/i386/freebsd.h
@@ -80,6 +80,7 @@ along with GCC; see the file COPYING3.  If not see
 #undef	LINK_SPEC
 #define LINK_SPEC "\
   %{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \
+  " FBSD_LINK_PG_NOTE " \
   %{v:-V} \
   %{assert*} %{R*} %{rpath*} %{defsym*} \
   %{shared:-Bshareable %{h*} %{soname*}} \
diff --git a/gcc/config/i386/freebsd64.h b/gcc/config/i386/freebsd64.h
index af3fc3018b7..12985e22ef9 100644
--- a/gcc/config/i386/freebsd64.h
+++ b/gcc/config/i386/freebsd64.h
@@ -33,6 +33,7 @@ along with GCC; see the file COPYING3.  If not see
 #define LINK_SPEC "\
   %{m32:-m elf_i386_fbsd}%{!m32:-m elf_x86_64_fbsd} \
   %{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \
+  " FBSD_LINK_PG_NOTE " \
   %{v:-V} \
   %{assert*} %{R*} %{rpath*} %{defsym*} \
   %{shared:-Bshareable %{h*} %{soname*}} \
diff --git a/gcc/config/riscv/freebsd.h b/gcc/config/riscv/freebsd.h
index 5dd4d51c42b..6063861e704 100644
--- a/gcc/config/riscv/freebsd.h
+++ b/gcc/config/riscv/freebsd.h
@@ -42,6 +42,7 @@ along with GCC; see the file COPYING3.  If not see
 #define LINK_SPEC "						\
   -melf" XLEN_SPEC DEFAULT_ENDIAN_SPEC "riscv			\
   %{p:%nconsider using `-pg' instead of `-p' with gprof (1)}	\
+  " FBSD_LINK_PG_NOTES "						\
   %{v:-V}							\
   %{assert*} %{R*} %{rpath*} %{defsym*}				\
   -X								\
diff --git a/gcc/config/rs6000/freebsd64.h b/gcc/config/rs6000/freebsd64.h
index 55e75cfb66a..6740170d3cc 100644
--- a/gcc/config/rs6000/freebsd64.h
+++ b/gcc/config/rs6000/freebsd64.h
@@ -112,6 +112,7 @@ extern int dot_symbols;
 
 #define LINK_OS_FREEBSD_SPEC_DEF "\
   %{p:%nconsider using `-pg' instead of `-p' with gprof(1)} \
+  " FBSD_LINK_PG_NOTE " \
   %{v:-V} \
   %{assert*} %{R*} %{rpath*} %{defsym*} \
   %{shared:-Bshareable %{h*} %{soname*}} \
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index bcafa9d0cf4..e997dd77e5e 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -748,6 +748,7 @@ GNU_USER_TARGET_CC1_SPEC
 
 #define LINK_OS_FREEBSD_SPEC "\
   %{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \
+  " FBSD_LINK_PG_NOTE " \
   %{v:-V} \
   %{assert*} %{R*} %{rpath*} %{defsym*} \
   %{shared:-Bshareable %{h*} %{soname*}} \

commit fdc640e5530b3b6f80eaf85d463967f0c2e9299d
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Feb 18 00:22:39 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 57494720b23..d7fa7d3d2bb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,50 @@
+2025-02-17  Andreas Tobler  <andreast@gcc.gnu.org>
+
+	* config/freebsd-spec.h: Change fbsd-lib-spec for FreeBSD > 13,
+	do not link against profiled system libraries if -pg is invoked.
+	Add a define to note about this change.
+	* config/aarch64/aarch64-freebsd.h: Use the note to inform if
+	-pg is invoked on FreeBSD > 13.
+	* config/arm/freebsd.h: Likewise.
+	* config/i386/freebsd.h: Likewise.
+	* config/i386/freebsd64.h: Likewise.
+	* config/riscv/freebsd.h: Likewise.
+	* config/rs6000/freebsd64.h: Likewise.
+	* config/rs6000/sysv4.h: Likeise.
+
+2025-02-17  Lulu Cheng  <chenglulu@loongson.cn>
+
+	Backported from master:
+	2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>
+
+	PR target/118843
+	* config/loongarch/loongarch-c.cc
+	(loongarch_update_cpp_builtins): Fix macro definition issues.
+
+2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* common/config/i386/i386-common.cc
+	(OPTION_MASK_ISA2_AVX2_UNSET): Change AVX10.1 unset macro.
+	(OPTION_MASK_ISA2_AVX10_1_256_UNSET): Removed.
+	(OPTION_MASK_ISA2_AVX10_1_512_UNSET): Removed.
+	(OPTION_MASK_ISA2_AVX10_1_UNSET): New.
+	(ix86_handle_option): Adjust AVX10.1 unset macro.
+	* common/config/i386/i386-isas.h: Remove avx10.1.
+	* config/i386/i386-options.cc
+	(ix86_valid_target_attribute_inner_p): Ditto.
+	(ix86_option_override_internal): Adjust warning message.
+	* config/i386/i386.opt: Remove mavx10.1.
+	* config/i386/i386.opt.urls: Regenerated.
+	* doc/extend.texi: Remove avx10.1 and adjust doc.
+	* doc/sourcebuild.texi: Ditto.
+
+2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>
+
+	PR target/118815
+	* config/i386/i386-options.cc (ix86_option_override_internal):
+	Do not check vector size conflict when AVX512 is not explicitly
+	set.
+
 2025-02-13  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 328350d1a96..bec432ba466 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250217
+20250218
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a8a0134fa36..57a837497fc 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,28 @@
+2025-02-17  Lulu Cheng  <chenglulu@loongson.cn>
+
+	Backported from master:
+	2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>
+
+	PR target/118843
+	* gcc.target/loongarch/pr118843.c: New test.
+
+2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* gcc.target/i386/avx10_1-1.c: Change to avx10.1-256.
+	* gcc.target/i386/avx10_1-13.c: Ditto.
+	* gcc.target/i386/avx10_1-14.c: Ditto.
+	* gcc.target/i386/avx10_1-21.c: Ditto.
+	* gcc.target/i386/avx10_1-22.c: Ditto.
+	* gcc.target/i386/avx10_1-23.c: Ditto.
+	* gcc.target/i386/avx10_1-24.c: Ditto.
+	* gcc.target/i386/avx10_1-3.c: Ditto.
+	* gcc.target/i386/avx10_1-5.c: Ditto.
+	* gcc.target/i386/avx10_1-6.c: Ditto.
+	* gcc.target/i386/avx10_1-8.c: Ditto.
+	* gcc.target/i386/avx10_1-12.c: Adjust warning message.
+	* gcc.target/i386/avx10_1-19.c: Ditto.
+	* gcc.target/i386/avx10_1-17.c: Adjust to no-avx10.1-512.
+
 2025-02-14  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:

commit cbff381dedbb1deb6037fdf949993f69f8cc2167
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Feb 19 00:22:07 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index bec432ba466..7462e91a3a7 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250218
+20250219

commit 2abb1f170a0dbe2d9e9f628d57dda69fef2fd59e
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Feb 20 00:21:46 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7462e91a3a7..efb19b9646b 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250219
+20250220

commit 9ffecde121af883b60bbe60d00425036bc873048
Author: Lulu Cheng <chenglulu@loongson.cn>
Date:   Wed Feb 12 14:29:58 2025 +0800

    LoongArch: Fix the issue of function jump out of range caused by crtbeginS.o [PR118844].
    
    Due to the presence of R_LARCH_B26 in
    /usr/lib/gcc/loongarch64-linux-gnu/14/crtbeginS.o, its addressing
    range is [PC-128MiB, PC+128MiB-4]. This means that when the code
    segment size exceeds 128MB, linking with lld will definitely fail
    (ld will not fail because the order of the two is different).
    
    The linking order:
      lld: crtbeginS.o + .text + .plt
      ld : .plt + crtbeginS.o + .text
    
    To solve this issue, add '-mcmodel=extreme' when compiling crtbeginS.o.
    
            PR target/118844
    
    libgcc/ChangeLog:
    
            * config/loongarch/t-crtstuff: Add '-mcmodel=extreme'
            to CRTSTUFF_T_CFLAGS_S.
    
    (cherry picked from commit ae14d7d04da8c6cb542269722638071f999f94d8)

diff --git a/libgcc/config/loongarch/t-crtstuff b/libgcc/config/loongarch/t-crtstuff
index b8c36eb66b7..2a2489b7ef4 100644
--- a/libgcc/config/loongarch/t-crtstuff
+++ b/libgcc/config/loongarch/t-crtstuff
@@ -3,3 +3,9 @@
 # to .eh_frame data from crtbeginT.o instead of the user-defined object
 # during static linking.
 CRTSTUFF_T_CFLAGS += -fno-omit-frame-pointer -fno-asynchronous-unwind-tables
+
+# As shown in the test case PR118844, when using lld for linking,
+# it fails due to B26 in crtbeginS.o causing the link to exceed the range.
+# Therefore, the issue was resolved by adding the compilation option
+# "-mcmodel=extreme" when compiling crtbeginS.o.
+CRTSTUFF_T_CFLAGS_S += -mcmodel=extreme

commit 3a6e6b8d6663ca342d007727a80031dddb526833
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Feb 21 00:22:41 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index efb19b9646b..1591c466619 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250220
+20250221
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 46caf136f50..e9fda642314 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,12 @@
+2025-02-20  Lulu Cheng  <chenglulu@loongson.cn>
+
+	Backported from master:
+	2025-02-17  Lulu Cheng  <chenglulu@loongson.cn>
+
+	PR target/118844
+	* config/loongarch/t-crtstuff: Add '-mcmodel=extreme'
+	to CRTSTUFF_T_CFLAGS_S.
+
 2025-02-09  Dimitry Andric  <dimitry@andric.com>
 
 	PR target/118685

commit 68d50c95af648cb8b0709ce63285525dfb53d376
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Feb 22 00:22:48 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 1591c466619..e1fa9784f9e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250221
+20250222

commit 02eedd2932e4c91f41437f56c34eee1a128c24fb
Author: Harald Anlauf <anlauf@gmx.de>
Date:   Sat Feb 15 20:36:15 2025 +0100

    Fortran: passing of derived type to VALUE,OPTIONAL dummy argument [PR118080]
    
    For scalar OPTIONAL dummy arguments with the VALUE attribute, gfortran
    passes a hidden flag to denote presence or absence of the actual argument
    for intrinsic types.  Extend this treatment to derived type (user-defined
    as well as from intrinsic module ISO_C_BINDING).
    
            PR fortran/118080
    
    gcc/fortran/ChangeLog:
    
            * gfortran.texi: Adjust documentation.
            * trans-decl.cc (create_function_arglist): Adjust to pass hidden
            presence flag also for derived type dummies with VALUE,OPTIONAL
            attribute.
            * trans-expr.cc (gfc_conv_expr_present): Expect hidden presence
            flag also for derived type dummies with VALUE,OPTIONAL attribute.
            (conv_cond_temp): Adjust to allow derived types.
            (conv_dummy_value): Extend to handle derived type dummies with
            VALUE,OPTIONAL attribute.
            (gfc_conv_procedure_call): Adjust for actual arguments passed to
            derived type dummies with VALUE,OPTIONAL attribute.
            * trans-types.cc (gfc_get_function_type): Adjust fndecl for
            hidden presence flag.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/value_optional_2.f90: New test.
    
    (cherry picked from commit 8859dce9037bcb242819305f02e16edbea38923c)

diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi
index 371666dcbb6..c3bf1ce0276 100644
--- a/gcc/fortran/gfortran.texi
+++ b/gcc/fortran/gfortran.texi
@@ -3766,7 +3766,8 @@ passed by value.
 
 For @code{OPTIONAL} dummy arguments, an absent argument is denoted
 by a NULL pointer, except for scalar dummy arguments of intrinsic type
-which have the @code{VALUE} attribute.  For those, a hidden Boolean
+or derived type (but not @code{CLASS}) and
+that have the @code{VALUE} attribute.  For those, a hidden Boolean
 argument (@code{logical(kind=C_bool),value}) is used to indicate
 whether the argument is present.
 
diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc
index 7a381519999..5010e93c1a4 100644
--- a/gcc/fortran/trans-decl.cc
+++ b/gcc/fortran/trans-decl.cc
@@ -2661,8 +2661,7 @@ create_function_arglist (gfc_symbol * sym)
   for (f = gfc_sym_get_dummy_args (sym); f; f = f->next)
     if (f->sym != NULL
 	&& f->sym->attr.optional && f->sym->attr.value
-	&& !f->sym->attr.dimension && f->sym->ts.type != BT_CLASS
-	&& !gfc_bt_struct (f->sym->ts.type))
+	&& !f->sym->attr.dimension && f->sym->ts.type != BT_CLASS)
       hidden_typelist = TREE_CHAIN (hidden_typelist);
 
   for (f = gfc_sym_get_dummy_args (sym); f; f = f->next)
@@ -2744,12 +2743,11 @@ create_function_arglist (gfc_symbol * sym)
 		type = gfc_sym_type (f->sym);
 	    }
 	}
-      /* For scalar intrinsic types, VALUE passes the value,
+      /* For scalar intrinsic types or derived types, VALUE passes the value,
 	 hence, the optional status cannot be transferred via a NULL pointer.
 	 Thus, we will use a hidden argument in that case.  */
       if (f->sym->attr.optional && f->sym->attr.value
-	  && !f->sym->attr.dimension && f->sym->ts.type != BT_CLASS
-	  && !gfc_bt_struct (f->sym->ts.type))
+	  && !f->sym->attr.dimension && f->sym->ts.type != BT_CLASS)
 	{
           tree tmp;
           strcpy (&name[1], f->sym->name);
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index f6de2227675..68b627cc465 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -2047,10 +2047,9 @@ gfc_conv_expr_present (gfc_symbol * sym, bool use_saved_desc)
   gcc_assert (sym->attr.dummy);
   orig_decl = decl = gfc_get_symbol_decl (sym);
 
-  /* Intrinsic scalars with VALUE attribute which are passed by value
-     use a hidden argument to denote the present status.  */
-  if (sym->attr.value && !sym->attr.dimension
-      && sym->ts.type != BT_CLASS && !gfc_bt_struct (sym->ts.type))
+  /* Intrinsic scalars and derived types with VALUE attribute which are passed
+     by value use a hidden argument to denote the presence status.  */
+  if (sym->attr.value && !sym->attr.dimension && sym->ts.type != BT_CLASS)
     {
       char name[GFC_MAX_SYMBOL_LEN + 2];
       tree tree_name;
@@ -6128,13 +6127,13 @@ post_call:
 
 /* Create "conditional temporary" to handle scalar dummy variables with the
    OPTIONAL+VALUE attribute that shall not be dereferenced.  Use null value
-   as fallback.  Only instances of intrinsic basic type are supported.  */
+   as fallback.  Does not handle CLASS.  */
 
 static void
 conv_cond_temp (gfc_se * parmse, gfc_expr * e, tree cond)
 {
   tree temp;
-  gcc_assert (e->ts.type != BT_DERIVED && e->ts.type != BT_CLASS);
+  gcc_assert (e && e->ts.type != BT_CLASS);
   gcc_assert (e->rank == 0);
   temp = gfc_create_var (TREE_TYPE (parmse->expr), "condtemp");
   TREE_STATIC (temp) = 1;
@@ -6170,6 +6169,17 @@ conv_dummy_value (gfc_se * parmse, gfc_expr * e, gfc_symbol * fsym,
 	  parmse->expr = null_pointer_node;
 	  parmse->string_length = build_int_cst (gfc_charlen_type_node, 0);
 	}
+      else if (gfc_bt_struct (fsym->ts.type)
+	       && !(fsym->ts.u.derived->from_intmod == INTMOD_ISO_C_BINDING))
+	{
+	  /* Pass null struct.  Types c_ptr and c_funptr from ISO_C_BINDING
+	     are pointers and passed as such below.  */
+	  tree temp = gfc_create_var (gfc_sym_type (fsym), "absent");
+	  TREE_CONSTANT (temp) = 1;
+	  TREE_READONLY (temp) = 1;
+	  DECL_INITIAL (temp) = build_zero_cst (TREE_TYPE (temp));
+	  parmse->expr = temp;
+	}
       else
 	parmse->expr = fold_convert (gfc_sym_type (fsym),
 				     integer_zero_node);
@@ -6199,9 +6209,7 @@ conv_dummy_value (gfc_se * parmse, gfc_expr * e, gfc_symbol * fsym,
       parmse->string_length = slen1;
     }
 
-  if (fsym->attr.optional
-      && fsym->ts.type != BT_CLASS
-      && fsym->ts.type != BT_DERIVED)
+  if (fsym->attr.optional && fsym->ts.type != BT_CLASS)
     {
       /* F2018:15.5.2.12 Argument presence and
 	 restrictions on arguments not present.  */
@@ -6231,7 +6239,10 @@ conv_dummy_value (gfc_se * parmse, gfc_expr * e, gfc_symbol * fsym,
       else
 	{
 	  tmp = gfc_conv_expr_present (e->symtree->n.sym);
-	  if (e->ts.type != BT_CHARACTER && !e->symtree->n.sym->attr.value)
+	  if (gfc_bt_struct (fsym->ts.type)
+	      && !(fsym->ts.u.derived->from_intmod == INTMOD_ISO_C_BINDING))
+	    conv_cond_temp (parmse, e, tmp);
+	  else if (e->ts.type != BT_CHARACTER && !e->symtree->n.sym->attr.value)
 	    parmse->expr
 	      = fold_build3_loc (input_location, COND_EXPR,
 				 TREE_TYPE (parmse->expr),
@@ -6503,7 +6514,6 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
 	      && fsym->attr.value
 	      && fsym->attr.optional
 	      && !fsym->attr.dimension
-	      && fsym->ts.type != BT_DERIVED
 	      && fsym->ts.type != BT_CLASS))
 	{
 	  if (se->ignore_optional)
@@ -6525,8 +6535,7 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
 		 value, pass "0" and a hidden argument gives the optional
 		 status.  */
 	      if (fsym && fsym->attr.optional && fsym->attr.value
-		  && !fsym->attr.dimension && fsym->ts.type != BT_CLASS
-		  && !gfc_bt_struct (sym->ts.type))
+		  && !fsym->attr.dimension && fsym->ts.type != BT_CLASS)
 		{
 		  conv_dummy_value (&parmse, e, fsym, optionalargs);
 		}
@@ -6629,10 +6638,10 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
 		}
 	    }
 
-	  /* Scalar dummy arguments of intrinsic type with VALUE attribute.  */
+	  /* Scalar dummy arguments of intrinsic type or derived type with
+	     VALUE attribute.  */
 	  if (fsym
 	      && fsym->attr.value
-	      && fsym->ts.type != BT_DERIVED
 	      && fsym->ts.type != BT_CLASS)
 	    conv_dummy_value (&parmse, e, fsym, optionalargs);
 
diff --git a/gcc/fortran/trans-types.cc b/gcc/fortran/trans-types.cc
index 61523c7d162..a1e969b35a9 100644
--- a/gcc/fortran/trans-types.cc
+++ b/gcc/fortran/trans-types.cc
@@ -3235,15 +3235,14 @@ gfc_get_function_type (gfc_symbol * sym, gfc_actual_arglist *actual_args,
 
 	  vec_safe_push (hidden_typelist, type);
 	}
-      /* For scalar intrinsic types, VALUE passes the value,
+      /* For scalar intrinsic types or derived types, VALUE passes the value,
 	 hence, the optional status cannot be transferred via a NULL pointer.
 	 Thus, we will use a hidden argument in that case.  */
       if (arg
 	  && arg->attr.optional
 	  && arg->attr.value
 	  && !arg->attr.dimension
-	  && arg->ts.type != BT_CLASS
-	  && !gfc_bt_struct (arg->ts.type))
+	  && arg->ts.type != BT_CLASS)
 	vec_safe_push (typelist, boolean_type_node);
       /* Coarrays which are descriptorless or assumed-shape pass with
 	 -fcoarray=lib the token and the offset as hidden arguments.  */
diff --git a/gcc/testsuite/gfortran.dg/value_optional_2.f90 b/gcc/testsuite/gfortran.dg/value_optional_2.f90
new file mode 100644
index 00000000000..4f42f166e81
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/value_optional_2.f90
@@ -0,0 +1,338 @@
+! { dg-do run }
+! PR fortran/118080
+!
+! Test passing of scalar derived types (user-defined or ISO_C_BINDING)
+! to dummy argument with OPTIONAL + VALUE attribute
+!
+! Original/initial testcase by Tobias Burnus
+
+module m
+  use iso_c_binding
+  implicit none(type,external)
+  logical is_present
+contains
+  subroutine f(x)
+    ! void f (void * x, logical(kind=1) .x)  - 2nd arg = is-present flag
+    type(c_ptr), optional, value :: x
+    if (present(x) .neqv. is_present) stop 1
+    if (present(x)) then
+      block
+        integer, pointer :: ptr
+        call c_f_pointer(x,ptr)
+        if (ptr /= 55) stop 2
+      end block
+    endif
+  end
+end
+
+module m0
+  use m
+  implicit none(type,external)
+contains
+  subroutine test_pr118080
+    type(c_ptr) :: a
+    integer, target :: x
+    a = c_loc(x)
+    x = 55
+
+    is_present = .true.
+    call f(a)
+
+    is_present = .false.
+    call f()
+
+    ! Trying again after the absent call:
+    is_present = .true.
+    call f(a)
+
+    print *, "Passed original test"
+  end subroutine test_pr118080
+end
+
+! Exercise ISO_C_BINDING uses
+module m1
+  use iso_c_binding, only: c_ptr, c_funptr, C_NULL_PTR, C_NULL_FUNPTR
+  implicit none
+  logical :: is_present = .false.
+  integer :: base = 0
+contains
+  subroutine test_c ()
+    type(c_ptr)    :: x = C_NULL_PTR
+    type(c_funptr) :: y = C_NULL_FUNPTR
+
+    is_present = .true.
+    base = 10
+    ! Tests with c_ptr:
+    call f_c (x)
+    call f_c_opt (x)
+    call f_c_val (x)
+    call f_c_opt_val (x)
+    call f_c2_opt (x)
+    call f_c2_opt_val (x)
+
+    ! Tests with c_funptr:
+    call g_c (y)
+    call g_c_opt (y)
+    call g_c_val (y)
+    call g_c_opt_val (y)
+    call g_c2_opt (y)
+    call g_c2_opt_val (y)
+
+    ! Elemental subroutine calls:
+    base = 20
+    call f_c ([x])
+    call f_c_opt ([x])
+    call f_c_val ([x])
+    call f_c_opt_val ([x])
+    call f_c2_opt ([x])
+    call f_c2_opt_val ([x])
+
+    call g_c ([y])
+    call g_c_opt ([y])
+    call g_c_val ([y])
+    call g_c_opt_val ([y])
+    call g_c2_opt ([y])
+    call g_c2_opt_val ([y])
+
+    is_present = .false.
+    base = 30
+    call f_c_opt ()
+    call f_c_opt_val ()
+    call f_c2_opt ()
+    call f_c2_opt_val ()
+
+    call g_c_opt ()
+    call g_c_opt_val ()
+    call g_c2_opt ()
+    call g_c2_opt_val ()
+
+    print *, "Passed test_c"
+  end subroutine test_c
+
+  elemental subroutine f_c (x)
+    type(c_ptr), intent(in) :: x
+  end
+  !
+  elemental subroutine f_c_val (x)
+    type(c_ptr), value :: x
+    call f_c (x)
+  end
+  !
+  elemental subroutine f_c_opt (x)
+    type(c_ptr), intent(in), optional :: x
+    if (present (x) .neqv. is_present) error stop base+1
+  end
+  !
+  elemental subroutine f_c_opt_val (x)
+    type(c_ptr), value, optional :: x
+    if (present (x) .neqv. is_present) error stop base+2
+  end
+  !
+  elemental subroutine f_c2_opt_val (x)
+    type(c_ptr), value, optional :: x
+    if (present (x) .neqv. is_present) error stop base+3
+    call f_c_opt (x)
+    call f_c_opt_val (x)
+    if (present (x)) call f_c (x)
+    if (present (x)) call f_c_val (x)
+  end
+  !
+  elemental subroutine f_c2_opt (x)
+    type(c_ptr), intent(in), optional :: x
+    if (present (x) .neqv. is_present) error stop base+4
+    call f_c_opt_val (x)
+    call f_c2_opt_val (x)
+  end
+
+  elemental subroutine g_c (x)
+    type(c_funptr), intent(in) :: x
+  end
+  !
+  elemental subroutine g_c_val (x)
+    type(c_funptr), value :: x
+    call g_c (x)
+  end
+  !
+  elemental subroutine g_c_opt (x)
+    type(c_funptr), intent(in), optional :: x
+    if (present (x) .neqv. is_present) error stop base+6
+  end
+  !
+  elemental subroutine g_c_opt_val (x)
+    type(c_funptr), value, optional :: x
+    if (present (x) .neqv. is_present) error stop base+7
+  end
+  !
+  elemental subroutine g_c2_opt_val (x)
+    type(c_funptr), value, optional :: x
+    if (present (x) .neqv. is_present) error stop base+8
+    call g_c_opt (x)
+    call g_c_opt_val (x)
+    if (present (x)) call g_c (x)
+    if (present (x)) call g_c_val (x)
+  end
+  !
+  elemental subroutine g_c2_opt (x)
+    type(c_funptr), intent(in), optional :: x
+    if (present (x) .neqv. is_present) error stop base+9
+    call g_c_opt_val (x)
+    call g_c2_opt_val (x)
+  end
+  !
+end
+
+! Exercise simple user-defined types
+module m2
+  implicit none
+
+  type t1
+     character(42) :: c = ""
+     logical       :: l = .false.
+  end type t1
+
+  type, bind(c) :: t2
+     real    :: r(8) = 0.
+     complex :: c(4) = 0.
+     integer :: i    = 0
+  end type t2
+
+  logical :: is_present = .false.
+  integer :: base = 0
+contains
+  subroutine test_t ()
+    type(t1) :: x
+    type(t2) :: y
+
+    x% c = "foo"
+
+    is_present = .true.
+    base = 50
+    ! Tests with t1:
+    call f_c (x)
+    call f_c_opt (x)
+    call f_c_val (x)
+    call f_c_opt_val (x)
+    call f_c2_opt (x)
+    call f_c2_opt_val (x)
+
+    ! Tests with t2:
+    call g_c (y)
+    call g_c_opt (y)
+    call g_c_val (y)
+    call g_c_opt_val (y)
+    call g_c2_opt (y)
+    call g_c2_opt_val (y)
+
+    ! Elemental subroutine calls:
+    base = 60
+    call f_c ([x])
+    call f_c_opt ([x])
+    call f_c_val ([x])
+    call f_c_opt_val ([x])
+    call f_c2_opt ([x])
+    call f_c2_opt_val ([x])
+
+    call g_c ([y])
+    call g_c_opt ([y])
+    call g_c_val ([y])
+    call g_c_opt_val ([y])
+    call g_c2_opt ([y])
+    call g_c2_opt_val ([y])
+
+    is_present = .false.
+    base = 70
+    call f_c_opt ()
+    call f_c_opt_val ()
+    call f_c2_opt ()
+    call f_c2_opt_val ()
+
+    call g_c_opt ()
+    call g_c_opt_val ()
+    call g_c2_opt ()
+    call g_c2_opt_val ()
+
+    print *, "Passed test_t"
+  end subroutine test_t
+
+  elemental subroutine f_c (x)
+    type(t1), intent(in) :: x
+    if (x% c /= "foo") error stop base
+  end
+  !
+  elemental subroutine f_c_val (x)
+    type(t1), value :: x
+    if (x% c /= "foo") error stop base+5
+    call f_c (x)
+  end
+  !
+  elemental subroutine f_c_opt (x)
+    type(t1), intent(in), optional :: x
+    if (present (x) .neqv. is_present) error stop base+1
+  end
+  !
+  elemental subroutine f_c_opt_val (x)
+    type(t1), value, optional :: x
+    if (present (x) .neqv. is_present) error stop base+2
+  end
+  !
+  elemental subroutine f_c2_opt_val (x)
+    type(t1), value, optional :: x
+    if (present (x) .neqv. is_present) error stop base+3
+    call f_c_opt (x)
+    call f_c_opt_val (x)
+    if (present (x)) call f_c (x)
+    if (present (x)) call f_c_val (x)
+  end
+  !
+  elemental subroutine f_c2_opt (x)
+    type(t1), intent(in), optional :: x
+    if (present (x) .neqv. is_present) error stop base+4
+    call f_c_opt_val (x)
+    call f_c2_opt_val (x)
+  end
+
+  elemental subroutine g_c (x)
+    type(t2), intent(in) :: x
+  end
+  !
+  elemental subroutine g_c_val (x)
+    type(t2), value :: x
+    call g_c (x)
+  end
+  !
+  elemental subroutine g_c_opt (x)
+    type(t2), intent(in), optional :: x
+    if (present (x) .neqv. is_present) error stop base+6
+  end
+  !
+  elemental subroutine g_c_opt_val (x)
+    type(t2), value, optional :: x
+    if (present (x) .neqv. is_present) error stop base+7
+  end
+  !
+  elemental subroutine g_c2_opt_val (x)
+    type(t2), value, optional :: x
+    if (present (x) .neqv. is_present) error stop base+8
+    call g_c_opt (x)
+    call g_c_opt_val (x)
+    if (present (x)) call g_c (x)
+    if (present (x)) call g_c_val (x)
+  end
+  !
+  elemental subroutine g_c2_opt (x)
+    type(t2), intent(in), optional :: x
+    if (present (x) .neqv. is_present) error stop base+9
+    call g_c_opt_val (x)
+    call g_c2_opt_val (x)
+  end
+end
+
+program pr118080
+  use m0
+  use m1
+  use m2
+  implicit none
+  call test_pr118080 ()
+  call test_c()
+  call test_t()
+end

commit c3da3539489eb934bbc38d899ca20d9a97b8fdb0
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Feb 23 00:22:25 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e1fa9784f9e..e4d939c1430 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250222
+20250223
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index b7b1ef3ee0b..f80919d0100 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,23 @@
+2025-02-22  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-02-15  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/118080
+	* gfortran.texi: Adjust documentation.
+	* trans-decl.cc (create_function_arglist): Adjust to pass hidden
+	presence flag also for derived type dummies with VALUE,OPTIONAL
+	attribute.
+	* trans-expr.cc (gfc_conv_expr_present): Expect hidden presence
+	flag also for derived type dummies with VALUE,OPTIONAL attribute.
+	(conv_cond_temp): Adjust to allow derived types.
+	(conv_dummy_value): Extend to handle derived type dummies with
+	VALUE,OPTIONAL attribute.
+	(gfc_conv_procedure_call): Adjust for actual arguments passed to
+	derived type dummies with VALUE,OPTIONAL attribute.
+	* trans-types.cc (gfc_get_function_type): Adjust fndecl for
+	hidden presence flag.
+
 2025-02-14  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 57a837497fc..eb26993370f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2025-02-22  Harald Anlauf  <anlauf@gmx.de>
+
+	Backported from master:
+	2025-02-15  Harald Anlauf  <anlauf@gmx.de>
+
+	PR fortran/118080
+	* gfortran.dg/value_optional_2.f90: New test.
+
 2025-02-17  Lulu Cheng  <chenglulu@loongson.cn>
 
 	Backported from master:

commit fd386b345a0406dc4f67173db76fdaca089b5675
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Feb 24 00:23:13 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e4d939c1430..927bc531bc8 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250223
+20250224

commit 2456fd2c73df1839f645f36b09d3b33aea1883d3
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Jan 23 13:10:17 2025 +0100

    tree-optimization/112859 - bogus loop distribution
    
    When we get a zero distance vector we still have to check for the
    situation of a common inner loop with zero distance.  But we can
    still allow a zero distance for the loop we distribute
    (gcc.dg/tree-ssa/ldist-33.c is such a case).  This is because
    zero distances in non-outermost loops are a misrepresentation
    of dependence by dependence analysis.
    
    Note that test coverage of loop distribution of loop nests is
    very low.
    
            PR tree-optimization/112859
            PR tree-optimization/115347
            * tree-loop-distribution.cc
            (loop_distribution::pg_add_dependence_edges): For a zero
            distance vector still make sure to not have an inner
            loop with zero distance.
    
            * gcc.dg/torture/pr112859.c: New testcase.
            * gcc.dg/torture/pr115347.c: Likewise.
    
    (cherry picked from commit 04ba1300407f106a6dd10d346f58a51d87e6d43e)

diff --git a/gcc/testsuite/gcc.dg/torture/pr112859.c b/gcc/testsuite/gcc.dg/torture/pr112859.c
new file mode 100644
index 00000000000..18f5bf40cb7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr112859.c
@@ -0,0 +1,24 @@
+/* { dg-do run } */
+/* { dg-additional-options "-ftree-loop-distribution" } */
+
+struct a {
+  char b;
+  int c;
+} f, *i = &f;
+static struct a e[4];
+int *d, **g = &d;
+static int h, j;
+int main()
+{
+  for (; h < 1; h++) {
+    struct a k = {1, 1};
+    for (j = 0; j < 2; j++) {
+      *i = e[h];
+      e[h] = k;
+    }
+    *g = 0;
+  }
+  if (f.c != 1)
+    __builtin_abort();
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr115347.c b/gcc/testsuite/gcc.dg/torture/pr115347.c
new file mode 100644
index 00000000000..2299495144b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr115347.c
@@ -0,0 +1,21 @@
+/* { dg-do run } */
+/* { dg-additional-options "-ftree-loop-distribution" } */
+
+struct a {
+  int b;
+  int c;
+} d, e[2];
+int f, g, h;
+int main()
+{
+  for (; f < 1; f++) {
+    for (h = 0; h < 2; h++) {
+      d = e[f];
+      g = e[1].c;
+      e[f].c = 1;
+    }
+  }
+  if (d.c != 1)
+    __builtin_abort();
+  return 0;
+}
diff --git a/gcc/tree-loop-distribution.cc b/gcc/tree-loop-distribution.cc
index 2bbd8da33e8..aa5bd825c46 100644
--- a/gcc/tree-loop-distribution.cc
+++ b/gcc/tree-loop-distribution.cc
@@ -2178,25 +2178,30 @@ loop_distribution::pg_add_dependence_edges (struct graph *rdg, int dir,
 		 gcc.dg/tree-ssa/pr94969.c.  */
 	      if (DDR_NUM_DIST_VECTS (ddr) != 1)
 		this_dir = 2;
-	      /* If the overlap is exact preserve stmt order.  */
-	      else if (lambda_vector_zerop (DDR_DIST_VECT (ddr, 0),
-					    DDR_NB_LOOPS (ddr)))
-		;
-	      /* Else as the distance vector is lexicographic positive swap
-		 the dependence direction.  */
 	      else
 		{
-		  if (DDR_REVERSED_P (ddr))
-		    this_dir = -this_dir;
-		  this_dir = -this_dir;
-
+		  /* If the overlap is exact preserve stmt order.  */
+		  if (lambda_vector_zerop (DDR_DIST_VECT (ddr, 0),
+					   DDR_NB_LOOPS (ddr)))
+		    ;
+		  /* Else as the distance vector is lexicographic positive swap
+		     the dependence direction.  */
+		  else
+		    {
+		      if (DDR_REVERSED_P (ddr))
+			this_dir = -this_dir;
+		      this_dir = -this_dir;
+		    }
 		  /* When then dependence distance of the innermost common
 		     loop of the DRs is zero we have a conflict.  */
 		  auto l1 = gimple_bb (DR_STMT (dr1))->loop_father;
 		  auto l2 = gimple_bb (DR_STMT (dr2))->loop_father;
 		  int idx = index_in_loop_nest (find_common_loop (l1, l2)->num,
 						DDR_LOOP_NEST (ddr));
-		  if (DDR_DIST_VECT (ddr, 0)[idx] == 0)
+		  if (DDR_DIST_VECT (ddr, 0)[idx] == 0
+		      /* Unless it is the outermost loop which is the one
+			 we eventually distribute.  */
+		      && idx != 0)
 		    this_dir = 2;
 		}
 	    }

commit a3871eead4540b3a746b877408088d41ce12c846
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Jan 28 15:01:25 2025 +0100

    tree-optimization/112859 - add comment
    
    This adds a comment before the workaround, indicating flaky
    dependence analysis.
    
            PR tree-optimization/112859
            * tree-loop-distribution.cc
            (loop_distribution::pg_add_dependence_edges): Add comment.
    
    (cherry picked from commit 3ccbc8c9d182c380e396631b2b5a683de4fddba9)

diff --git a/gcc/tree-loop-distribution.cc b/gcc/tree-loop-distribution.cc
index aa5bd825c46..a1280a89880 100644
--- a/gcc/tree-loop-distribution.cc
+++ b/gcc/tree-loop-distribution.cc
@@ -2193,7 +2193,9 @@ loop_distribution::pg_add_dependence_edges (struct graph *rdg, int dir,
 		      this_dir = -this_dir;
 		    }
 		  /* When then dependence distance of the innermost common
-		     loop of the DRs is zero we have a conflict.  */
+		     loop of the DRs is zero we have a conflict.  This is
+		     due to wonky dependence analysis which sometimes
+		     ends up using a zero distance in place of unknown.  */
 		  auto l1 = gimple_bb (DR_STMT (dr1))->loop_father;
 		  auto l2 = gimple_bb (DR_STMT (dr2))->loop_father;
 		  int idx = index_in_loop_nest (find_common_loop (l1, l2)->num,

commit c886bd9ab21429a11bea393b5a6e7438a1d924ef
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Jan 29 13:25:14 2025 +0100

    tree-optimization/114052 - consider infinite sub-loops when lowering iter bound
    
    When we walk stmts to find always executed stmts with UB in the last
    iteration to be able to reduce the iteration count by one we fail
    to consider infinite subloops in the last iteration that would make
    such stmt not execute.  The following adds this.
    
            PR tree-optimization/114052
            * tree-ssa-loop-niter.cc (maybe_lower_iteration_bound): Check
            for infinite subloops we might not exit.
    
            * gcc.dg/pr114052-1.c: New testcase.

diff --git a/gcc/testsuite/gcc.dg/pr114052-1.c b/gcc/testsuite/gcc.dg/pr114052-1.c
new file mode 100644
index 00000000000..e971f684414
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr114052-1.c
@@ -0,0 +1,40 @@
+/* { dg-do run } */
+/* { dg-require-effective-target signal } */
+/* { dg-options "-O2" } */
+
+#include <stdint.h>
+#include <unistd.h>
+#include <signal.h>
+#include <stdlib.h>
+
+volatile int y;
+void __attribute__((noipa)) put(int x)
+{
+  if (y)
+    __builtin_printf ("%i\n", x);
+}
+
+void __attribute__((noipa)) f(void)
+{
+  int counter = 0;
+  while (1) {
+      if (counter >= 2) continue;
+      put (counter++);
+  }
+}
+
+void do_exit (int i)
+{
+  exit (0);
+}
+
+int main()
+{
+  struct sigaction s;
+  sigemptyset (&s.sa_mask);
+  s.sa_handler = do_exit;
+  s.sa_flags = 0;
+  sigaction (SIGALRM, &s, NULL);
+  alarm (1);
+  f();
+}
diff --git a/gcc/tree-ssa-loop-niter.cc b/gcc/tree-ssa-loop-niter.cc
index ba4b056e96e..4392bbb7f68 100644
--- a/gcc/tree-ssa-loop-niter.cc
+++ b/gcc/tree-ssa-loop-niter.cc
@@ -4686,7 +4686,14 @@ maybe_lower_iteration_bound (class loop *loop)
           FOR_EACH_EDGE (e, ei, bb->succs)
 	    {
 	      if (loop_exit_edge_p (loop, e)
-		  || e == loop_latch_edge (loop))
+		  || e == loop_latch_edge (loop)
+		  /* When exiting an inner loop, verify it is finite.  */
+		  || (!flow_bb_inside_loop_p (bb->loop_father, e->dest)
+		      && !finite_loop_p (bb->loop_father))
+		  /* When we enter an irreducible region and the entry
+		     does not contain a bounding stmt assume it might be
+		     infinite.  */
+		  || (bb->flags & BB_IRREDUCIBLE_LOOP))
 		{
 		  found_exit = true;
 		  break;

commit 95c98c5368aedf2a482bf551cd2573c1961a6823
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Jan 15 14:31:57 2025 +0100

    tree-optimization/115494 - PRE PHI translation and ranges
    
    When we PHI translate dependent expressions we keep SSA defs in
    place of the translated expression in case the expression itself
    did not change even though it's context did and thus the validity
    of ranges associated with it.  That eventually leads to simplification
    errors given we violate the precondition that used SSA defs fed to
    vn_valueize are valid to use (including their associated ranges).
    The following makes sure to replace those with new representatives
    always, not only when the dependent expression translation changed it.
    
    The fix was originally discovered by Michael Morin.
    
            PR tree-optimization/115494
            * tree-ssa-pre.cc (phi_translate_1): Always generate a
            representative for translated dependent expressions.
    
            * gcc.dg/torture/pr115494.c: New testcase.
    
    Co-Authored-By: Mikael Morin <mikael@gcc.gnu.org>
    (cherry picked from commit ea1deefe54ea1c5182bfa179abf36469c9ec6974)

diff --git a/gcc/testsuite/gcc.dg/torture/pr115494.c b/gcc/testsuite/gcc.dg/torture/pr115494.c
new file mode 100644
index 00000000000..a8c614433a6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr115494.c
@@ -0,0 +1,24 @@
+/* { dg-do run } */
+
+unsigned char a;
+int b = 1, c, d;
+int __attribute__((noipa))
+f()
+{
+  char e;
+  c = b - c;
+  a = ~(c || a);
+  e = -(b ^ a);
+  d = e && b;
+  a = ~(b & a);
+  if (a < 2)
+    return 1;
+  return 0;
+}
+
+int main()
+{
+  if (f())
+    __builtin_abort();
+}
+
diff --git a/gcc/tree-ssa-pre.cc b/gcc/tree-ssa-pre.cc
index 5cf1968bc26..a4c93e4f26f 100644
--- a/gcc/tree-ssa-pre.cc
+++ b/gcc/tree-ssa-pre.cc
@@ -1430,7 +1430,7 @@ phi_translate_1 (bitmap_set_t dest,
 		unsigned int op_val_id = VN_INFO (newnary->op[i])->value_id;
 		leader = find_leader_in_sets (op_val_id, set1, set2);
 		result = phi_translate (dest, leader, set1, set2, e);
-		if (result && result != leader)
+		if (result)
 		  /* If op has a leader in the sets we translate make
 		     sure to use the value of the translated expression.
 		     We might need a new representative for that.  */
@@ -1553,7 +1553,7 @@ phi_translate_1 (bitmap_set_t dest,
 		op_val_id = VN_INFO (op[n])->value_id;
 		leader = find_leader_in_sets (op_val_id, set1, set2);
 		opresult = phi_translate (dest, leader, set1, set2, e);
-		if (opresult && opresult != leader)
+		if (opresult)
 		  {
 		    tree name = get_representative_for (opresult);
 		    changed |= name != op[n];

commit fbecb7df9742ade5513d901ca03e9a6c082915e5
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Oct 1 10:37:16 2024 +0200

    tree-optimization/116906 - unsafe PRE with never executed edges
    
    When we're computing ANTIC for PRE we treat edges to not yet visited
    blocks as having a maximum ANTIC solution to get at an optimistic
    solution in the iteration.  That assumes the edges visted eventually
    execute.  This is a wrong assumption that can lead to wrong code
    (and not only non-optimality) when possibly trapping expressions
    are involved as the testcases in the PR show.  The following mitigates
    this by pruning trapping expressions from ANTIC computed when
    maximum sets are involved.
    
            PR tree-optimization/116906
            * tree-ssa-pre.cc (prune_clobbered_mems): Add clean_traps
            argument.
            (compute_antic_aux): Direct prune_clobbered_mems to prune
            all traps when any MAX solution was involved in the ANTIC
            computation.
            (compute_partial_antic_aux): Adjust.
    
            * gcc.dg/pr116906-1.c: New testcase.
            * gcc.dg/pr116906-2.c: Likewise.
    
    (cherry picked from commit 3e1bd6470e4deba1a3ad14621037098311ad1350)

diff --git a/gcc/testsuite/gcc.dg/pr116906-1.c b/gcc/testsuite/gcc.dg/pr116906-1.c
new file mode 100644
index 00000000000..27b1fdae02b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr116906-1.c
@@ -0,0 +1,43 @@
+/* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */
+/* { dg-options "-O2" } */
+
+#include <stdint.h>
+#include <unistd.h>
+#include <signal.h>
+#include <stdlib.h>
+
+int a = 1, b = 0;
+
+uint64_t safe_mod(uint64_t a, uint64_t b)
+{
+    if (b == 0) return a;
+    else return a % b;
+}
+
+int __attribute__((noipa))
+f(uint64_t p)
+{
+    int c = 0;
+j:
+    b = safe_mod(
+        (c = ((a &= (0 < p)) && 1), 1), p);
+    if (!c)
+        goto j;
+    return 0;
+}
+
+void do_exit (int i)
+{
+  exit (0);
+}
+
+int main()
+{
+  struct sigaction s;
+  sigemptyset (&s.sa_mask);
+  s.sa_handler = do_exit;
+  s.sa_flags = 0;
+  sigaction (SIGALRM, &s, NULL);
+  alarm (1);
+  f(b);
+}
diff --git a/gcc/testsuite/gcc.dg/pr116906-2.c b/gcc/testsuite/gcc.dg/pr116906-2.c
new file mode 100644
index 00000000000..3478771678c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr116906-2.c
@@ -0,0 +1,40 @@
+/* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */
+/* { dg-options "-O2 -fno-tree-ch" } */
+
+#include <unistd.h>
+#include <signal.h>
+#include <stdlib.h>
+
+int x;
+
+void __attribute__((noipa))
+foo (int *p, unsigned n)
+{
+  unsigned i = 0;
+  do
+    {
+      if (i == n)
+        break;
+      if (p)
+        x = *p;
+      i += 2;
+    }
+  while (1);
+  x = *p;
+}
+
+void do_exit (int i)
+{
+  exit (0);
+}
+
+int main()
+{
+  struct sigaction s;
+  sigemptyset (&s.sa_mask);
+  s.sa_handler = do_exit;
+  s.sa_flags = 0;
+  sigaction (SIGALRM, &s, NULL);
+  alarm (1);
+  foo ((int *)0, 1);
+}
diff --git a/gcc/tree-ssa-pre.cc b/gcc/tree-ssa-pre.cc
index a4c93e4f26f..9ad33959e98 100644
--- a/gcc/tree-ssa-pre.cc
+++ b/gcc/tree-ssa-pre.cc
@@ -2008,10 +2008,11 @@ clean (bitmap_set_t set1, bitmap_set_t set2 = NULL)
 }
 
 /* Clean the set of expressions that are no longer valid in SET because
-   they are clobbered in BLOCK or because they trap and may not be executed.  */
+   they are clobbered in BLOCK or because they trap and may not be executed.
+   When CLEAN_TRAPS is true remove all possibly trapping expressions.  */
 
 static void
-prune_clobbered_mems (bitmap_set_t set, basic_block block)
+prune_clobbered_mems (bitmap_set_t set, basic_block block, bool clean_traps)
 {
   bitmap_iterator bi;
   unsigned i;
@@ -2049,7 +2050,7 @@ prune_clobbered_mems (bitmap_set_t set, basic_block block)
 	     a possible exit point.
 	     ???  This is overly conservative if we translate AVAIL_OUT
 	     as the available expression might be after the exit point.  */
-	  if (BB_MAY_NOTRETURN (block)
+	  if ((BB_MAY_NOTRETURN (block) || clean_traps)
 	      && vn_reference_may_trap (ref))
 	    to_remove = i;
 	}
@@ -2060,7 +2061,7 @@ prune_clobbered_mems (bitmap_set_t set, basic_block block)
 	     a possible exit point.
 	     ???  This is overly conservative if we translate AVAIL_OUT
 	     as the available expression might be after the exit point.  */
-	  if (BB_MAY_NOTRETURN (block)
+	  if ((BB_MAY_NOTRETURN (block) || clean_traps)
 	      && vn_nary_may_trap (nary))
 	    to_remove = i;
 	}
@@ -2114,6 +2115,8 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge)
 
   bool was_visited = BB_VISITED (block);
   bool changed = ! BB_VISITED (block);
+  bool any_max_on_edge = false;
+
   BB_VISITED (block) = 1;
   old = ANTIC_OUT = S = NULL;
 
@@ -2158,6 +2161,7 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge)
 		 maximal set to arrive at a maximum ANTIC_IN solution.
 		 We can ignore them in the intersection operation and thus
 		 need not explicitely represent that maximum solution.  */
+	      any_max_on_edge = true;
 	      if (dump_file && (dump_flags & TDF_DETAILS))
 		fprintf (dump_file, "ANTIC_IN is MAX on %d->%d\n",
 			 e->src->index, e->dest->index);
@@ -2223,7 +2227,7 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge)
 
   /* Prune expressions that are clobbered in block and thus become
      invalid if translated from ANTIC_OUT to ANTIC_IN.  */
-  prune_clobbered_mems (ANTIC_OUT, block);
+  prune_clobbered_mems (ANTIC_OUT, block, any_max_on_edge);
 
   /* Generate ANTIC_OUT - TMP_GEN.  */
   S = bitmap_set_subtract_expressions (ANTIC_OUT, TMP_GEN (block));
@@ -2396,7 +2400,7 @@ compute_partial_antic_aux (basic_block block,
 
   /* Prune expressions that are clobbered in block and thus become
      invalid if translated from PA_OUT to PA_IN.  */
-  prune_clobbered_mems (PA_OUT, block);
+  prune_clobbered_mems (PA_OUT, block, false);
 
   /* PA_IN starts with PA_OUT - TMP_GEN.
      Then we subtract things from ANTIC_IN.  */

commit a42b180b4b46417b0e8b2d548f34aeec7826abd0
Author: Richard Biener <rguenther@suse.de>
Date:   Tue Jan 28 12:28:14 2025 +0100

    tree-optimization/117424 - invalid LIM of trapping ref
    
    The following addresses a bug in tree_could_trap_p leading to
    hoisting of a possibly trapping, because of out-of-bound, access.
    We only ensured the first accessed byte is within a decl there,
    the patch makes sure the whole base of the reference is within it.
    This is pessimistic if a handled component would then subset to
    a sub-object within the decl but upcasting of a decl to larger
    types should be uncommon, questionable, and wrong without
    -fno-strict-aliasing.
    
    The testcase is a bit fragile, but I could not devise a (portable)
    way to ensure an out-of-bound access to a decl would fault.
    
            PR tree-optimization/117424
            * tree-eh.cc (tree_could_trap_p): Verify the base is
            fully contained within a decl.
    
            * gcc.dg/tree-ssa/ssa-lim-25.c: New testcase.
    
    (cherry picked from commit f1e776ce58ae4a6ae67886adb4ae806598e2c7ef)

diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-25.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-25.c
new file mode 100644
index 00000000000..3e0f013d1e0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-25.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-lim2-details" } */
+
+char x;
+
+long foo (int n)
+{
+  long y = 0;
+  for (int j = 0; j < 1024; ++j)
+    for (int i = 0; i < n; ++i)
+      y += *(long *)&x;
+  return y;
+}
+
+/* Because *(long *)&x may trap we have to preserve execution and
+   only hoist it from the innermost loop (after the header check).  */
+/* { dg-final { scan-tree-dump-not "out of loop 1" "lim2" } } */
+/* { dg-final { scan-tree-dump "out of loop 2" "lim2" } } */
diff --git a/gcc/tree-eh.cc b/gcc/tree-eh.cc
index a8de341e562..03251ec1ca7 100644
--- a/gcc/tree-eh.cc
+++ b/gcc/tree-eh.cc
@@ -2733,11 +2733,16 @@ tree_could_trap_p (tree expr)
 	  if (TREE_CODE (base) == STRING_CST)
 	    return maybe_le (TREE_STRING_LENGTH (base), off);
 	  tree size = DECL_SIZE_UNIT (base);
+	  tree refsz = TYPE_SIZE_UNIT (TREE_TYPE (expr));
 	  if (size == NULL_TREE
+	      || refsz == NULL_TREE
 	      || !poly_int_tree_p (size)
-	      || maybe_le (wi::to_poly_offset (size), off))
+	      || !poly_int_tree_p (refsz)
+	      || maybe_le (wi::to_poly_offset (size), off)
+	      || maybe_gt (off + wi::to_poly_offset (refsz),
+			   wi::to_poly_offset (size)))
 	    return true;
-	  /* Now we are sure the first byte of the access is inside
+	  /* Now we are sure the whole base of the access is inside
 	     the object.  */
 	  return false;
 	}

commit 7c36056ede3a7e0eed8c95b4080b3f4ce6be12b1
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Jan 27 10:49:51 2025 +0100

    rtl-optimization/118662 - wrong combination of vector sign-extends
    
    The following fixes an issue in the RTL combiner where we correctly
    combine two vector sign-extends with a vector load
    
    Trying 7, 9 -> 10:
        7: r106:V4QI=[r119:DI]
          REG_DEAD r119:DI
        9: r108:V4HI=sign_extend(vec_select(r106:V4QI#0,parallel))
       10: r109:V4SI=sign_extend(vec_select(r108:V4HI#0,parallel))
          REG_DEAD r108:V4HI
    
    to
    
    modifying insn i2     9: r109:V4SI=sign_extend([r119:DI])
    
    but since r106 is used we wrongly materialize it using a subreg:
    
    modifying insn i3    10: r106:V4QI=r109:V4SI#0
    
    which of course does not work for modes with more than one component,
    specifically vector and complex modes.
    
            PR rtl-optimization/118662
            * combine.cc (try_combine): When re-materializing a load
            from an extended reg by a lowpart subreg make sure we're
            not dealing with vector or complex modes.
    
            * gcc.dg/torture/pr118662.c: New testcase.
    
    (cherry picked from commit 343e1083eb9f57e05c0caba195f118ef2e95cc40)

diff --git a/gcc/combine.cc b/gcc/combine.cc
index 431a3042901..a40b295bd0d 100644
--- a/gcc/combine.cc
+++ b/gcc/combine.cc
@@ -3904,6 +3904,9 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
      copy.  This saves at least one insn, more if register allocation can
      eliminate the copy.
 
+     We cannot do this if the involved modes have more than one elements,
+     like for vector or complex modes.
+
      We cannot do this if the destination of the first assignment is a
      condition code register.  We eliminate this case by making sure
      the SET_DEST and SET_SRC have the same mode.
@@ -3919,6 +3922,8 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
 	   && GET_CODE (SET_SRC (XVECEXP (newpat, 0, 0))) == SIGN_EXTEND
 	   && (GET_MODE (SET_DEST (XVECEXP (newpat, 0, 0)))
 	       == GET_MODE (SET_SRC (XVECEXP (newpat, 0, 0))))
+	   && ! VECTOR_MODE_P (GET_MODE (SET_DEST (XVECEXP (newpat, 0, 0))))
+	   && ! COMPLEX_MODE_P (GET_MODE (SET_DEST (XVECEXP (newpat, 0, 0))))
 	   && GET_CODE (XVECEXP (newpat, 0, 1)) == SET
 	   && rtx_equal_p (SET_SRC (XVECEXP (newpat, 0, 1)),
 			   XEXP (SET_SRC (XVECEXP (newpat, 0, 0)), 0))
diff --git a/gcc/testsuite/gcc.dg/torture/pr118662.c b/gcc/testsuite/gcc.dg/torture/pr118662.c
new file mode 100644
index 00000000000..b9e8cca0aeb
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr118662.c
@@ -0,0 +1,18 @@
+/* { dg-do run } */
+/* { dg-additional-options "-ftree-slp-vectorize -fno-vect-cost-model" } */
+/* { dg-additional-options "-msse4" { target sse4_runtime} } */
+
+int __attribute__((noipa)) addup(signed char *num) {
+  int val = num[0] + num[1] + num[2] + num[3];
+  if (num[3] >= 0)
+    val++;
+  return val;
+}
+
+int main(int, char *[])
+{
+  signed char num[4] = {1, 1, 1, -1};
+  if (addup(num) != 2)
+    __builtin_abort();
+  return 0;
+}

commit 5759b5f4af2d7ad09e0ad04be95fb26244d4e726
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Feb 3 14:27:01 2025 +0100

    lto/113207 - fix free_lang_data_in_type
    
    When we process function types we strip volatile and const qualifiers
    after building a simplified type variant (which preserves those).
    The qualified type handling of both isn't really compatible, so avoid
    bad interaction by swapping this, first dropping const/volatile
    qualifiers and then building the simplified type thereof.
    
            PR lto/113207
            * ipa-free-lang-data.cc (free_lang_data_in_type): First drop
            const/volatile qualifiers from function argument types,
            then build a simplified type.
    
            * gcc.dg/pr113207.c: New testcase.
    
    (cherry picked from commit a55e14b239181381204c615335929b3316d75370)

diff --git a/gcc/ipa-free-lang-data.cc b/gcc/ipa-free-lang-data.cc
index 3ad203fec4c..b04bc5f3d89 100644
--- a/gcc/ipa-free-lang-data.cc
+++ b/gcc/ipa-free-lang-data.cc
@@ -436,9 +436,7 @@ free_lang_data_in_type (tree type, class free_lang_data_d *fld)
 	 different front ends.  */
       for (tree p = TYPE_ARG_TYPES (type); p; p = TREE_CHAIN (p))
 	{
-	  TREE_VALUE (p) = fld_simplified_type (TREE_VALUE (p), fld);
 	  tree arg_type = TREE_VALUE (p);
-
 	  if (TYPE_READONLY (arg_type) || TYPE_VOLATILE (arg_type))
 	    {
 	      int quals = TYPE_QUALS (arg_type)
@@ -448,6 +446,7 @@ free_lang_data_in_type (tree type, class free_lang_data_d *fld)
 	      if (!fld->pset.add (TREE_VALUE (p)))
 		free_lang_data_in_type (TREE_VALUE (p), fld);
 	    }
+	  TREE_VALUE (p) = fld_simplified_type (TREE_VALUE (p), fld);
 	  /* C++ FE uses TREE_PURPOSE to store initial values.  */
 	  TREE_PURPOSE (p) = NULL;
 	}
diff --git a/gcc/testsuite/gcc.dg/pr113207.c b/gcc/testsuite/gcc.dg/pr113207.c
new file mode 100644
index 00000000000..81f53d8fcc2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr113207.c
@@ -0,0 +1,10 @@
+/* { dg-compile } */
+/* { dg-require-effective-target lto } */
+/* { dg-options "-flto -fchecking" }  */
+
+typedef struct cl_lispunion *cl_object;
+struct cl_lispunion {};
+cl_object cl_error() __attribute__((noreturn));
+volatile cl_object cl_coerce_value0;
+void cl_coerce() { cl_error(); }
+void L66safe_canonical_type(cl_object volatile);

commit 79025d071338fe9b302c24a91e0a623954e30056
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Feb 3 15:12:52 2025 +0100

    tree-optimization/117113 - ICE with unroll-and-jam
    
    When there's an inner loop without virtual header PHI but the outer
    loop has one the fusion process cannot handle the need to create
    an inner loop virtual header PHI.  Punt in this case.
    
            PR tree-optimization/117113
            * gimple-loop-jam.cc (unroll_jam_possible_p): Detect when
            we cannot handle virtual SSA update.
    
            * gcc.dg/torture/pr117113.c: New testcase.
    
    (cherry picked from commit 0675eb17480bada678bf2769d39732027abcd6d0)

diff --git a/gcc/gimple-loop-jam.cc b/gcc/gimple-loop-jam.cc
index 306d5ceaef4..5d92c081e31 100644
--- a/gcc/gimple-loop-jam.cc
+++ b/gcc/gimple-loop-jam.cc
@@ -279,13 +279,17 @@ unroll_jam_possible_p (class loop *outer, class loop *loop)
      body would be the after-iter value of the first body) if it's over
      an associative and commutative operation.  We wouldn't
      be able to handle unknown cycles.  */
+  bool inner_vdef = false;
   for (psi = gsi_start_phis (loop->header); !gsi_end_p (psi); gsi_next (&psi))
     {
       affine_iv iv;
       tree op = gimple_phi_result (psi.phi ());
 
       if (virtual_operand_p (op))
-	continue;
+	{
+	  inner_vdef = true;
+	  continue;
+	}
       if (!simple_iv (loop, loop, op, &iv, true))
 	return false;
       /* The inductions must be regular, loop invariant step and initial
@@ -301,6 +305,12 @@ unroll_jam_possible_p (class loop *outer, class loop *loop)
 	 copy, _not_ the next value of the second body.  */
     }
 
+  /* When there's no inner loop virtual PHI IV we cannot handle the update
+     required to the inner loop if that doesn't already have one.  See
+     PR117113.  */
+  if (!inner_vdef && get_virtual_phi (outer->header))
+    return false;
+
   return true;
 }
 
diff --git a/gcc/testsuite/gcc.dg/torture/pr117113.c b/gcc/testsuite/gcc.dg/torture/pr117113.c
new file mode 100644
index 00000000000..e90ad034a4d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr117113.c
@@ -0,0 +1,20 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-fno-tree-dce -fno-inline" } */
+
+int a, b, c;
+volatile int d[1];
+void e() {}
+void f(int g) {}
+int main() {
+  int i;
+  for (; b; b--) {
+    for (i = 0; i < 3; i++) {
+      e();
+      f(d[0]);
+      d[0];
+    }
+    if (a)
+      c++;
+  }
+  return 0;
+}

commit a760d18770d1bb33818acc54102959ace1ea13a0
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Jan 13 09:12:23 2025 +0100

    tree-optimization/117119 - ICE with int128 IV in dataref analysis
    
    Here's another fix for a missing check that an IV value fits in a
    HIW.  It's originally from Stefan.
    
            PR tree-optimization/117119
            * tree-data-ref.cc (initialize_matrix_A): Check whether
            an INTEGER_CST fits in HWI, otherwise return chrec_dont_know.
    
            * gcc.dg/torture/pr117119.c: New testcase.
    
    Co-Authored-By: Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
    (cherry picked from commit d3904a3ad9d7b4c8e5e536e5166b89548510fd48)

diff --git a/gcc/testsuite/gcc.dg/torture/pr117119.c b/gcc/testsuite/gcc.dg/torture/pr117119.c
new file mode 100644
index 00000000000..0ec4ac1b180
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr117119.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target int128 } */
+
+unsigned __int128 g_728;
+int func_1_l_5011[8];
+void func_1() {
+  for (;; g_728 += 1)
+    func_1_l_5011[g_728] ^= func_1_l_5011[g_728 + 5];
+}
+void main() {}
diff --git a/gcc/tree-data-ref.cc b/gcc/tree-data-ref.cc
index 501a4593727..856370f4345 100644
--- a/gcc/tree-data-ref.cc
+++ b/gcc/tree-data-ref.cc
@@ -4066,7 +4066,7 @@ initialize_matrix_A (lambda_matrix A, tree chrec, unsigned index, int mult)
       }
 
     case INTEGER_CST:
-      return chrec;
+      return cst_and_fits_in_hwi (chrec) ? chrec : chrec_dont_know;
 
     default:
       gcc_unreachable ();

commit 62ae21874e231b9fd01733627414fd8e4f561aa9
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Jan 8 09:25:52 2025 +0100

    tree-optimization/117979 - failed irreducible loop update from DCE
    
    When CD-DCE creates forwarders to reduce false control dependences
    it fails to update the irreducible state of edge and the forwarder
    block in case the fowarder groups both normal (entry) and edges
    from an irreducible region (necessarily backedges).  This is because
    when we split the first edge, if that's a normal edge, the forwarder
    and its edge to the original block will not be marked as part
    of the irreducible region but when we then redirect an edge from
    within the region it becomes so.
    
    The following fixes this up.
    
    Note I think creating a forwarder that includes backedges is
    likely not going to help, but at this stage I don't want to change
    the CFG going into DCE.  For regular loops we'll have a single
    entry and a single backedge by means of loop init and will never
    create a forwarder - so this is solely happening for irreducible
    regions where it's harder to prove that such forwarder doesn't help.
    
            PR tree-optimization/117979
            * tree-ssa-dce.cc (make_forwarders_with_degenerate_phis):
            Properly update the irreducible region state.
    
            * gcc.dg/torture/pr117979.c: New testcase.
    
    (cherry picked from commit eca04660a2c9546c8ecefc5288395eb8a9fdc168)

diff --git a/gcc/testsuite/gcc.dg/torture/pr117979.c b/gcc/testsuite/gcc.dg/torture/pr117979.c
new file mode 100644
index 00000000000..646cd70776b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr117979.c
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+
+int a, b;
+void foo (void);
+int __attribute__((returns_twice)) bar (int);
+
+int __attribute__((const))
+baz (int f)
+{
+  if (f)
+    {
+      l:;
+      for (f = 0; f < 6; ++f)
+        if (bar (b))
+          goto l;
+      for (;; a--)
+        ;
+    }
+  foo ();
+  return 0;
+}
diff --git a/gcc/tree-ssa-dce.cc b/gcc/tree-ssa-dce.cc
index 636c471d4c8..a458c55003e 100644
--- a/gcc/tree-ssa-dce.cc
+++ b/gcc/tree-ssa-dce.cc
@@ -1873,14 +1873,24 @@ make_forwarders_with_degenerate_phis (function *fn)
 		  free_dominance_info (fn, CDI_DOMINATORS);
 		  basic_block forwarder = split_edge (args[start].first);
 		  profile_count count = profile_count::zero ();
+		  bool irr = false;
 		  for (unsigned j = start + 1; j < i; ++j)
 		    {
 		      edge e = args[j].first;
+		      if (e->flags & EDGE_IRREDUCIBLE_LOOP)
+			irr = true;
 		      redirect_edge_and_branch_force (e, forwarder);
 		      redirect_edge_var_map_clear (e);
 		      count += e->count ();
 		    }
 		  forwarder->count = count;
+		  if (irr)
+		    {
+		      forwarder->flags |= BB_IRREDUCIBLE_LOOP;
+		      single_succ_edge (forwarder)->flags
+			|= EDGE_IRREDUCIBLE_LOOP;
+		    }
+
 		  if (vphi)
 		    {
 		      tree def = copy_ssa_name (vphi_args[0]);

commit 422f65add32acd1ebb3c09fd4837456898348c17
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Jan 27 12:53:21 2025 +0100

    tree-optimization/118653 - ICE in vectorizable_live_operation
    
    The checking code didn't take into account debug uses.
    
            PR tree-optimization/118653
            * tree-vect-loop.cc (vectorizable_live_operation): Also allow
            out-of-loop debug uses.
    
            * gcc.dg/vect/pr118653.c: New testcase.
    
    (cherry picked from commit 6a510dea7f3b047d0650a48e558a4911973930eb)

diff --git a/gcc/testsuite/gcc.dg/vect/pr118653.c b/gcc/testsuite/gcc.dg/vect/pr118653.c
new file mode 100644
index 00000000000..9322b23a17d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr118653.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-O3 -g" } */
+
+static short func1 (short si1, short si2) {
+  return (si1 - si2);
+}
+unsigned short g_72;
+extern int g_100[];
+short g_173;
+void func_42(void)
+{
+  for (g_173 = 10; g_173 > 0; g_173 = func1 (g_173, 1))
+    for (g_72 = 1; g_72 < 5; g_72++)
+      g_100[g_72] &= 1;
+}
diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index 2db483c245e..be0359fa3d1 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -11010,7 +11010,8 @@ vectorizable_live_operation (vec_info *vinfo, stmt_vec_info stmt_info,
 
       /* There a no further out-of-loop uses of lhs by LC-SSA construction.  */
       FOR_EACH_IMM_USE_STMT (use_stmt, imm_iter, lhs)
-	gcc_assert (flow_bb_inside_loop_p (loop, gimple_bb (use_stmt)));
+	gcc_assert (is_gimple_debug (use_stmt)
+		    || flow_bb_inside_loop_p (loop, gimple_bb (use_stmt)));
     }
   else
     {

commit 93e7442f0845e4ee5222a2370eb1a83d513939aa
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Feb 3 09:55:50 2025 +0100

    tree-optimization/118717 - store commoning vs. abnormals
    
    When we sink common stores in cselim or the sink pass we have to
    make sure to not introduce overlapping lifetimes for abnormals
    used in the ref.  The easiest is to avoid sinking stmts which
    reference abnormals at all which is what the following does.
    
            PR tree-optimization/118717
            * tree-ssa-phiopt.cc (cond_if_else_store_replacement_1):
            Do not common stores referencing abnormal SSA names.
            * tree-ssa-sink.cc (sink_common_stores_to_bb): Likewise.
    
            * gcc.dg/torture/pr118717.c: New testcase.
    
    (cherry picked from commit fbcbbfe2bf83eb8b1347144eeca37b06be5a8bb5)

diff --git a/gcc/testsuite/gcc.dg/torture/pr118717.c b/gcc/testsuite/gcc.dg/torture/pr118717.c
new file mode 100644
index 00000000000..42dc5ec84f2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr118717.c
@@ -0,0 +1,41 @@
+/* { dg-do compile } */
+
+void jj(void);
+int ff1(void) __attribute__((__returns_twice__));
+struct s2 {
+  int prev;
+};
+typedef struct s1 {
+  unsigned interrupt_flag;
+  unsigned interrupt_mask;
+  int tag;
+  int state;
+}s1;
+int ff(void);
+static inline
+int mm(s1 *ec) {
+  if (ff())
+    if (ec->interrupt_flag & ~(ec)->interrupt_mask)
+      return 0;
+}
+void ll(s1 *ec) {
+  int t = 1;
+  int state;
+  if (t)
+  {
+    {
+      s1 *const _ec = ec;
+      struct s2 _tag = {0};
+      if (ff1())
+	state = ec->state;
+      else
+	state = 0;
+      if (!state)
+	mm (ec);
+      _ec->tag = _tag.prev;
+    }
+    if (state)
+      __builtin_exit(0);
+  }
+  jj();
+}
diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc
index 8cb1413b49a..f01979aa003 100644
--- a/gcc/tree-ssa-phiopt.cc
+++ b/gcc/tree-ssa-phiopt.cc
@@ -3433,7 +3433,9 @@ cond_if_else_store_replacement_1 (basic_block then_bb, basic_block else_bb,
       || else_assign == NULL
       || !gimple_assign_single_p (else_assign)
       || gimple_clobber_p (else_assign)
-      || gimple_has_volatile_ops (else_assign))
+      || gimple_has_volatile_ops (else_assign)
+      || stmt_references_abnormal_ssa_name (then_assign)
+      || stmt_references_abnormal_ssa_name (else_assign))
     return false;
 
   lhs = gimple_assign_lhs (then_assign);
diff --git a/gcc/tree-ssa-sink.cc b/gcc/tree-ssa-sink.cc
index 880d6f70a80..e29de570f52 100644
--- a/gcc/tree-ssa-sink.cc
+++ b/gcc/tree-ssa-sink.cc
@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "tree-eh.h"
 #include "tree-ssa-live.h"
+#include "tree-dfa.h"
 
 /* TODO:
    1. Sinking store only using scalar promotion (IE without moving the RHS):
@@ -503,7 +504,8 @@ sink_common_stores_to_bb (basic_block bb)
 	      gimple *def = SSA_NAME_DEF_STMT (arg);
 	      if (! is_gimple_assign (def)
 		  || stmt_can_throw_internal (cfun, def)
-		  || (gimple_phi_arg_edge (phi, i)->flags & EDGE_ABNORMAL))
+		  || (gimple_phi_arg_edge (phi, i)->flags & EDGE_ABNORMAL)
+		  || stmt_references_abnormal_ssa_name (def))
 		{
 		  /* ???  We could handle some cascading with the def being
 		     another PHI.  We'd have to insert multiple PHIs for

commit dbb91c392de525c993ab51e5e96fb6a36c3abc98
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Feb 25 00:22:55 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d7fa7d3d2bb..7cafd9488b8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,129 @@
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-02-03  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/118717
+	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1):
+	Do not common stores referencing abnormal SSA names.
+	* tree-ssa-sink.cc (sink_common_stores_to_bb): Likewise.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-27  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/118653
+	* tree-vect-loop.cc (vectorizable_live_operation): Also allow
+	out-of-loop debug uses.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-08  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117979
+	* tree-ssa-dce.cc (make_forwarders_with_degenerate_phis):
+	Properly update the irreducible region state.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-13  Richard Biener  <rguenther@suse.de>
+		    Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+
+	PR tree-optimization/117119
+	* tree-data-ref.cc (initialize_matrix_A): Check whether
+	an INTEGER_CST fits in HWI, otherwise return chrec_dont_know.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-02-04  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117113
+	* gimple-loop-jam.cc (unroll_jam_possible_p): Detect when
+	we cannot handle virtual SSA update.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-02-04  Richard Biener  <rguenther@suse.de>
+
+	PR lto/113207
+	* ipa-free-lang-data.cc (free_lang_data_in_type): First drop
+	const/volatile qualifiers from function argument types,
+	then build a simplified type.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-27  Richard Biener  <rguenther@suse.de>
+
+	PR rtl-optimization/118662
+	* combine.cc (try_combine): When re-materializing a load
+	from an extended reg by a lowpart subreg make sure we're
+	not dealing with vector or complex modes.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-28  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117424
+	* tree-eh.cc (tree_could_trap_p): Verify the base is
+	fully contained within a decl.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-01  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116906
+	* tree-ssa-pre.cc (prune_clobbered_mems): Add clean_traps
+	argument.
+	(compute_antic_aux): Direct prune_clobbered_mems to prune
+	all traps when any MAX solution was involved in the ANTIC
+	computation.
+	(compute_partial_antic_aux): Adjust.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-16  Richard Biener  <rguenther@suse.de>
+		    Mikael Morin  <mikael@gcc.gnu.org>
+
+	PR tree-optimization/115494
+	* tree-ssa-pre.cc (phi_translate_1): Always generate a
+	representative for translated dependent expressions.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/114052
+	* tree-ssa-loop-niter.cc (maybe_lower_iteration_bound): Check
+	for infinite subloops we might not exit.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-28  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/112859
+	* tree-loop-distribution.cc
+	(loop_distribution::pg_add_dependence_edges): Add comment.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-27  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/112859
+	PR tree-optimization/115347
+	* tree-loop-distribution.cc
+	(loop_distribution::pg_add_dependence_edges): For a zero
+	distance vector still make sure to not have an inner
+	loop with zero distance.
+
 2025-02-17  Andreas Tobler  <andreast@gcc.gnu.org>
 
 	* config/freebsd-spec.h: Change fbsd-lib-spec for FreeBSD > 13,
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 927bc531bc8..8781321aefe 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250224
+20250225
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index eb26993370f..59a632fdef0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,101 @@
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-02-03  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/118717
+	* gcc.dg/torture/pr118717.c: New testcase.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-27  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/118653
+	* gcc.dg/vect/pr118653.c: New testcase.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-08  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117979
+	* gcc.dg/torture/pr117979.c: New testcase.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-13  Richard Biener  <rguenther@suse.de>
+		    Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
+
+	PR tree-optimization/117119
+	* gcc.dg/torture/pr117119.c: New testcase.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-02-04  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117113
+	* gcc.dg/torture/pr117113.c: New testcase.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-02-04  Richard Biener  <rguenther@suse.de>
+
+	PR lto/113207
+	* gcc.dg/pr113207.c: New testcase.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-27  Richard Biener  <rguenther@suse.de>
+
+	PR rtl-optimization/118662
+	* gcc.dg/torture/pr118662.c: New testcase.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-28  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/117424
+	* gcc.dg/tree-ssa/ssa-lim-25.c: New testcase.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2024-10-01  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/116906
+	* gcc.dg/pr116906-1.c: New testcase.
+	* gcc.dg/pr116906-2.c: Likewise.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-16  Richard Biener  <rguenther@suse.de>
+		    Mikael Morin  <mikael@gcc.gnu.org>
+
+	PR tree-optimization/115494
+	* gcc.dg/torture/pr115494.c: New testcase.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/114052
+	* gcc.dg/pr114052-1.c: New testcase.
+
+2025-02-24  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-01-27  Richard Biener  <rguenther@suse.de>
+
+	PR tree-optimization/112859
+	PR tree-optimization/115347
+	* gcc.dg/torture/pr112859.c: New testcase.
+	* gcc.dg/torture/pr115347.c: Likewise.
+
 2025-02-22  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:

commit 09cc01ca00a140c110c02e4ba297da4718f105e8
Author: Richard Biener <rguenther@suse.de>
Date:   Fri Feb 7 14:42:23 2025 +0100

    jit/118780 - make sure to include dlfcn.h when plugin support is disabled
    
    The following makes the dlfcn.h explicitly requested which avoids
    build failure when JIT is enabled but plugin support disabled as
    currently the include is conditional on plugin support.
    
            PR jit/118780
    gcc/
            * system.h: Check INCLUDE_DLFCN_H for including dlfcn.h instead
            of ENABLE_PLUGIN.
            * plugin.cc: Define INCLUDE_DLFCN_H.
    
    gcc/jit/
            * jit-playback.cc: Define INCLUDE_DLFCN_H.
            * jit-result.cc: Likewise.
    
    (cherry picked from commit e22962538f64bb6e5ac87977ec8a5d86f4ef21cb)

diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc
index 6baa838af10..799fd195ec6 100644
--- a/gcc/jit/jit-playback.cc
+++ b/gcc/jit/jit-playback.cc
@@ -20,6 +20,7 @@ along with GCC; see the file COPYING3.  If not see
 
 #include "config.h"
 #define INCLUDE_MUTEX
+#define INCLUDE_DLFCN_H
 #include "libgccjit.h"
 #include "system.h"
 #include "coretypes.h"
diff --git a/gcc/jit/jit-result.cc b/gcc/jit/jit-result.cc
index 30770d20f3d..66a767fd361 100644
--- a/gcc/jit/jit-result.cc
+++ b/gcc/jit/jit-result.cc
@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
+#define INCLUDE_DLFCN_H
 #include "system.h"
 #include "coretypes.h"
 
diff --git a/gcc/plugin.cc b/gcc/plugin.cc
index aaa7e66888a..b27c6460306 100644
--- a/gcc/plugin.cc
+++ b/gcc/plugin.cc
@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3.  If not see
    APIs described in doc/plugin.texi.  */
 
 #include "config.h"
+#define INCLUDE_DLFCN_H
 #include "system.h"
 #include "coretypes.h"
 #include "options.h"
diff --git a/gcc/system.h b/gcc/system.h
index 1028dcb1eb3..b18482c7190 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -690,7 +690,7 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
 # endif
 #endif
 
-#if defined (ENABLE_PLUGIN) && defined (HAVE_DLFCN_H)
+#if defined (INCLUDE_DLFCN_H) && defined (HAVE_DLFCN_H)
 /* If plugin support is enabled, we could use libdl.  */
 #include <dlfcn.h>
 #endif

commit ce4cb48c3396837cf1562882b3f23f768558945b
Author: Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
Date:   Thu Feb 13 09:13:06 2025 +0100

    s390: Fix s390_valid_shift_count() for TI mode [PR118835]
    
    During combine we may end up with
    
    (set (reg:DI 66 [ _6 ])
         (ashift:DI (reg:DI 72 [ x ])
                    (subreg:QI (and:TI (reg:TI 67 [ _1 ])
                                       (const_wide_int 0x0aaaaaaaaaaaaaabf))
                               15)))
    
    where the shift count operand does not trivially fit the scheme of
    address operands.  Reject those operands, especially since
    strip_address_mutations() expects expressions of the form
    (and ... (const_int ...)) and fails for (and ... (const_wide_int ...)).
    
    Thus, be more strict here and accept only CONST_INT operands.  Done by
    replacing immediate_operand() with const_int_operand() which is enough
    since the former only additionally checks for LEGITIMATE_PIC_OPERAND_P
    and targetm.legitimate_constant_p which are always true for CONST_INT
    operands.
    
    While on it, fix indentation of the if block.
    
    gcc/ChangeLog:
    
            PR target/118835
            * config/s390/s390.cc (s390_valid_shift_count): Reject shift
            count operands which do not trivially fit the scheme of
            address operands.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/s390/pr118835.c: New test.
    
    (cherry picked from commit ac9806dae30d07ab082ac341fe5646987753adcb)

diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc
index f2e4f5e101c..8b383034e03 100644
--- a/gcc/config/s390/s390.cc
+++ b/gcc/config/s390/s390.cc
@@ -3363,26 +3363,31 @@ s390_valid_shift_count (rtx op, HOST_WIDE_INT implicit_mask)
 
   /* Check for an and with proper constant.  */
   if (GET_CODE (op) == AND)
-  {
-    rtx op1 = XEXP (op, 0);
-    rtx imm = XEXP (op, 1);
+    {
+      rtx op1 = XEXP (op, 0);
+      rtx imm = XEXP (op, 1);
 
-    if (GET_CODE (op1) == SUBREG && subreg_lowpart_p (op1))
-      op1 = XEXP (op1, 0);
+      if (GET_CODE (op1) == SUBREG && subreg_lowpart_p (op1))
+	op1 = XEXP (op1, 0);
 
-    if (!(register_operand (op1, GET_MODE (op1)) || GET_CODE (op1) == PLUS))
-      return false;
+      if (!(register_operand (op1, GET_MODE (op1)) || GET_CODE (op1) == PLUS))
+	return false;
 
-    if (!immediate_operand (imm, GET_MODE (imm)))
-      return false;
+      /* Accept only CONST_INT as immediates, i.e., reject shift count operands
+	 which do not trivially fit the scheme of address operands.  Especially
+	 since strip_address_mutations() expects expressions of the form
+	 (and ... (const_int ...)) and fails for
+	 (and ... (const_wide_int ...)).  */
+      if (!const_int_operand (imm, GET_MODE (imm)))
+	return false;
 
-    HOST_WIDE_INT val = INTVAL (imm);
-    if (implicit_mask > 0
-	&& (val & implicit_mask) != implicit_mask)
-      return false;
+      HOST_WIDE_INT val = INTVAL (imm);
+      if (implicit_mask > 0
+	  && (val & implicit_mask) != implicit_mask)
+	return false;
 
-    op = op1;
-  }
+      op = op1;
+    }
 
   /* Check the rest.  */
   return s390_decompose_addrstyle_without_index (op, NULL, NULL);
diff --git a/gcc/testsuite/gcc.target/s390/pr118835.c b/gcc/testsuite/gcc.target/s390/pr118835.c
new file mode 100644
index 00000000000..1ca6cd95543
--- /dev/null
+++ b/gcc/testsuite/gcc.target/s390/pr118835.c
@@ -0,0 +1,21 @@
+/* { dg-do compile { target int128 } } */
+/* { dg-options "-O2" } */
+
+/* During combine we may end up with patterns of the form
+
+   (set (reg:DI 66 [ _6 ])
+        (ashift:DI (reg:DI 72 [ x ])
+                   (subreg:QI (and:TI (reg:TI 67 [ _1 ])
+                                      (const_wide_int 0x0aaaaaaaaaaaaaabf))
+                              15)))
+
+   which should be rejected since the shift count does not trivially fit the
+   scheme of address operands.  */
+
+long
+test (long x, int y)
+{
+  __int128 z = 0xAAAAAAAAAAAAAABF;
+  z &= y;
+  return x << z;
+}

commit d13602d2109cb0038f47ede0ac2fda54638f45e4
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Feb 26 00:23:33 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7cafd9488b8..17ae983e110 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,23 @@
+2025-02-25  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	Backported from master:
+	2025-02-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	PR target/118835
+	* config/s390/s390.cc (s390_valid_shift_count): Reject shift
+	count operands which do not trivially fit the scheme of
+	address operands.
+
+2025-02-25  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-02-07  Richard Biener  <rguenther@suse.de>
+
+	PR jit/118780
+	* system.h: Check INCLUDE_DLFCN_H for including dlfcn.h instead
+	of ENABLE_PLUGIN.
+	* plugin.cc: Define INCLUDE_DLFCN_H.
+
 2025-02-24  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 8781321aefe..5faab8b9a3f 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250225
+20250226
diff --git a/gcc/jit/ChangeLog b/gcc/jit/ChangeLog
index f98098d97d2..15bc6b8644b 100644
--- a/gcc/jit/ChangeLog
+++ b/gcc/jit/ChangeLog
@@ -1,3 +1,12 @@
+2025-02-25  Richard Biener  <rguenther@suse.de>
+
+	Backported from master:
+	2025-02-07  Richard Biener  <rguenther@suse.de>
+
+	PR jit/118780
+	* jit-playback.cc: Define INCLUDE_DLFCN_H.
+	* jit-result.cc: Likewise.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 59a632fdef0..05ba20dfd38 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2025-02-25  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	Backported from master:
+	2025-02-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+
+	* gcc.target/s390/pr118835.c: New test.
+
 2025-02-24  Richard Biener  <rguenther@suse.de>
 
 	Backported from master:

commit 460a803a6239658dc0673aafd57e543892dc0dc8
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Feb 27 00:23:41 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 5faab8b9a3f..78e945cf0f0 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250226
+20250227

commit ba488a332ad171eff17c1f135c111c5730f4ce25
Author: Haochen Jiang <haochen.jiang@intel.com>
Date:   Wed Feb 26 11:28:45 2025 +0800

    i386: Treat Granite Rapids/Granite Rapids-D similar as Sapphire Rapids in x86-tune.def
    
    Since GNR, GNR-D are both P-core based, we should treat them
    just like SPR for now.
    
    gcc/ChangeLog:
    
            * config/i386/x86-tune.def
            (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): Add GNR, GNR-D.
            (X86_TUNE_AVOID_256FMA_CHAINS): Ditto.
            (X86_TUNE_AVX512_MOVE_BY_PIECES): Ditto.
            (X86_TUNE_AVX512_STORE_BY_PIECES): Ditto.

diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def
index ec8de3144a8..39431e07e69 100644
--- a/gcc/config/i386/x86-tune.def
+++ b/gcc/config/i386/x86-tune.def
@@ -87,8 +87,8 @@ DEF_TUNE (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY,
    several insns to break false dependency on the dest register for GLC
    micro-architecture.  */
 DEF_TUNE (X86_TUNE_DEST_FALSE_DEP_FOR_GLC,
-	  "dest_false_dep_for_glc", m_SAPPHIRERAPIDS | m_CORE_HYBRID
-	  | m_CORE_ATOM)
+	  "dest_false_dep_for_glc", m_SAPPHIRERAPIDS | m_GRANITERAPIDS
+	  | m_GRANITERAPIDS_D | m_CORE_HYBRID | m_CORE_ATOM)
 
 /* X86_TUNE_SSE_SPLIT_REGS: Set for machines where the type and dependencies
    are resolved on SSE register parts instead of whole registers, so we may
@@ -529,7 +529,8 @@ DEF_TUNE (X86_TUNE_AVOID_128FMA_CHAINS, "avoid_fma_chains", m_ZNVER
    smaller FMA chain.  */
 DEF_TUNE (X86_TUNE_AVOID_256FMA_CHAINS, "avoid_fma256_chains",
 	  m_ZNVER2 | m_ZNVER3 | m_ZNVER4 | m_ZNVER5 | m_CORE_HYBRID
-	  | m_SAPPHIRERAPIDS | m_CORE_ATOM | m_GENERIC)
+	  | m_SAPPHIRERAPIDS | m_GRANITERAPIDS | m_GRANITERAPIDS_D
+	  | m_CORE_ATOM | m_GENERIC)
 
 /* X86_TUNE_AVOID_512FMA_CHAINS: Avoid creating loops with tight 512bit or
    smaller FMA chain.  */
@@ -596,12 +597,14 @@ DEF_TUNE (X86_TUNE_AVX256_STORE_BY_PIECES, "avx256_store_by_pieces",
 /* X86_TUNE_AVX512_MOVE_BY_PIECES: Optimize move_by_pieces with 512-bit
    AVX instructions.  */
 DEF_TUNE (X86_TUNE_AVX512_MOVE_BY_PIECES, "avx512_move_by_pieces",
-	  m_SAPPHIRERAPIDS | m_ZNVER4 | m_ZNVER5)
+	  m_SAPPHIRERAPIDS | m_GRANITERAPIDS | m_GRANITERAPIDS_D
+	  | m_ZNVER4 | m_ZNVER5)
 
 /* X86_TUNE_AVX512_STORE_BY_PIECES: Optimize store_by_pieces with 512-bit
    AVX instructions.  */
 DEF_TUNE (X86_TUNE_AVX512_STORE_BY_PIECES, "avx512_store_by_pieces",
-	  m_SAPPHIRERAPIDS | m_ZNVER4 | m_ZNVER5)
+	  m_SAPPHIRERAPIDS | m_GRANITERAPIDS | m_GRANITERAPIDS_D
+	  | m_ZNVER4 | m_ZNVER5)
 
 /*****************************************************************************/
 /*****************************************************************************/

commit 3003d404b436c2dbd5a3a282c25b797d887237d9
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Jan 28 13:11:50 2025 -0500

    c++: constexpr VEC_INIT_EXPR [PR118285]
    
    cxx_eval_vec_init_1 was doing the wrong thing for an array of
    self-referential class type; just evaluating the TARGET_EXPR initializer
    creates a new object that refers to the TARGET_EXPR_SLOT, if we want it to
    refer properly to the initialization target we need to provide it.
    
            PR c++/118285
    
    gcc/cp/ChangeLog:
    
            * constexpr.cc (cxx_eval_vec_init_1): Build INIT_EXPR for
            initializing a class.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/initlist-opt7.C: New test.

diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc
index 83a9175b265..4b10763950d 100644
--- a/gcc/cp/constexpr.cc
+++ b/gcc/cp/constexpr.cc
@@ -5522,7 +5522,11 @@ cxx_eval_vec_init_1 (const constexpr_ctx *ctx, tree atype, tree init,
 	  if (init == void_node)
 	    /* Trivial default-init, don't do anything to the CONSTRUCTOR.  */
 	    return ctx->ctor;
-	  eltinit = cxx_eval_constant_expression (&new_ctx, init, lval,
+	  eltinit = init;
+	  if (CLASS_TYPE_P (elttype) && new_ctx.object)
+	    /* Clarify what object is being initialized (118285).  */
+	    eltinit = build2 (INIT_EXPR, elttype, new_ctx.object, eltinit);
+	  eltinit = cxx_eval_constant_expression (&new_ctx, eltinit, lval,
 						  non_constant_p, overflow_p);
 	  reuse = i == 0;
 	}
@@ -5535,6 +5539,9 @@ cxx_eval_vec_init_1 (const constexpr_ctx *ctx, tree atype, tree init,
 	  eltinit = (perform_implicit_conversion_flags
 		     (elttype, eltinit, complain,
 		      LOOKUP_IMPLICIT|LOOKUP_NO_NARROWING));
+	  if (CLASS_TYPE_P (elttype) && new_ctx.object)
+	    /* Clarify what object is being initialized (118285).  */
+	    eltinit = build2 (INIT_EXPR, elttype, new_ctx.object, eltinit);
 	  eltinit = cxx_eval_constant_expression (&new_ctx, eltinit, lval,
 						  non_constant_p, overflow_p);
 	}
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist-opt7.C b/gcc/testsuite/g++.dg/cpp0x/initlist-opt7.C
new file mode 100644
index 00000000000..f55ef5b77c5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist-opt7.C
@@ -0,0 +1,41 @@
+// PR c++/118285
+// { dg-do compile { target c++20 } }
+
+#include <initializer_list>
+
+struct A {
+  char *a;
+  union { char b[8]; long c; };
+  constexpr A (const char *x) : a(b)
+  {
+    for (int i = 0; i < 8; ++i)
+      b[i] = 0;
+  }
+  constexpr ~A ()
+  {
+    if (!foo ())
+      bar (c);
+  }
+  constexpr bool foo ()
+  {
+    char *x = a;
+    if (x == b)
+      return true;
+    return false;
+  }
+  constexpr void bar (long) {}
+};
+
+constexpr void
+baz (std::initializer_list<A>)
+{
+}
+
+constexpr bool
+qux ()
+{
+  baz ({""});
+  return true;
+}
+
+static_assert (qux (), "");

commit b4f66a79e0c9b65d78aed6c982bdcff48ed098d5
Author: Jason Merrill <jason@redhat.com>
Date:   Mon Jan 27 18:30:18 2025 -0500

    c++: init-list opt and lvalue initializers [PR118673]
    
    When fn returns {extension}, the ArrayRef in the initializer_list is
    constructed to point to 'extension', the variable with static storage
    duration.  The optimization was copying extension's value into a temporary
    array and constructing the ArrayRef to point to that temporary copy instead,
    resulting in a dangling pointer.  So suppress this optimization if the
    element constructor takes a reference and the initializer is a non-mergeable
    lvalue.
    
            PR c++/118673
    
    gcc/cp/ChangeLog:
    
            * call.cc (maybe_init_list_as_array): Check for lvalue
            initializers.
            * cp-tree.h (enum cp_lvalue_kind_flags): Add clk_mergeable.
            * tree.cc (lvalue_kind): Return it.
            (non_mergeable_glvalue_p): New.
            (test_lvalue_kind): Adjust.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/initlist-opt6.C: New test.

diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc
index 1609a64c3fa..bb376d9cb13 100644
--- a/gcc/cp/call.cc
+++ b/gcc/cp/call.cc
@@ -4331,6 +4331,15 @@ maybe_init_list_as_array (tree elttype, tree init)
     /* Let the normal code give the error.  */
     return NULL_TREE;
 
+  /* A glvalue initializer might be significant to a reference constructor
+     or conversion operator.  */
+  if (!DECL_CONSTRUCTOR_P (c->cand->fn)
+      || (TYPE_REF_P (TREE_VALUE
+		      (FUNCTION_FIRST_USER_PARMTYPE (c->cand->fn)))))
+    for (auto &ce : CONSTRUCTOR_ELTS (init))
+      if (non_mergeable_glvalue_p (ce.value))
+	return NULL_TREE;
+
   tree first = CONSTRUCTOR_ELT (init, 0)->value;
   conversion *fc = implicit_conversion (elttype, init_elttype, first, false,
 					LOOKUP_IMPLICIT|LOOKUP_NO_NARROWING,
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index a9a4a7abc40..a9a14d6267c 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -5582,7 +5582,8 @@ enum cp_lvalue_kind_flags {
   clk_class = 4,    /* A prvalue of class or array type.  */
   clk_bitfield = 8, /* An lvalue for a bit-field.  */
   clk_packed = 16,  /* An lvalue for a packed field.  */
-  clk_implicit_rval = 1<<5 /* An lvalue being treated as an xvalue.  */
+  clk_implicit_rval = 1<<5, /* An lvalue being treated as an xvalue.  */
+  clk_mergeable = 1<<6
 };
 
 /* This type is used for parameters and variables which hold
@@ -8035,6 +8036,7 @@ extern bool glvalue_p				(const_tree);
 extern bool obvalue_p				(const_tree);
 extern bool xvalue_p	                        (const_tree);
 extern bool bitfield_p				(const_tree);
+extern bool non_mergeable_glvalue_p		(const_tree);
 extern tree cp_stabilize_reference		(tree);
 extern bool builtin_valid_in_constant_expr_p    (const_tree);
 extern tree build_min				(enum tree_code, tree, ...);
diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc
index 01e6c1cb892..b37d4605e06 100644
--- a/gcc/cp/tree.cc
+++ b/gcc/cp/tree.cc
@@ -191,6 +191,8 @@ lvalue_kind (const_tree ref)
       return op1_lvalue_kind;
 
     case STRING_CST:
+      return clk_ordinary | clk_mergeable;
+
     case COMPOUND_LITERAL_EXPR:
       return clk_ordinary;
 
@@ -210,6 +212,10 @@ lvalue_kind (const_tree ref)
 	  && DECL_LANG_SPECIFIC (ref)
 	  && DECL_IN_AGGR_P (ref))
 	return clk_none;
+
+      if (DECL_MERGEABLE (ref))
+	return clk_ordinary | clk_mergeable;
+
       /* FALLTHRU */
     case INDIRECT_REF:
     case ARROW_EXPR:
@@ -407,6 +413,17 @@ bitfield_p (const_tree ref)
   return (lvalue_kind (ref) & clk_bitfield);
 }
 
+/* True if REF is a glvalue with a unique address, excluding mergeable glvalues
+   such as string constants.  */
+
+bool
+non_mergeable_glvalue_p (const_tree ref)
+{
+  auto kind = lvalue_kind (ref);
+  return (kind != clk_none
+	  && !(kind & (clk_class|clk_mergeable)));
+}
+
 /* C++-specific version of stabilize_reference.  */
 
 tree
@@ -6353,11 +6370,11 @@ test_lvalue_kind ()
   tree string_lit = build_string (4, "foo");
   TREE_TYPE (string_lit) = char_array_type_node;
   string_lit = fix_string_type (string_lit);
-  ASSERT_EQ (clk_ordinary, lvalue_kind (string_lit));
+  ASSERT_EQ (clk_ordinary|clk_mergeable, lvalue_kind (string_lit));
 
   tree wrapped_string_lit = maybe_wrap_with_location (string_lit, loc);
   ASSERT_TRUE (location_wrapper_p (wrapped_string_lit));
-  ASSERT_EQ (clk_ordinary, lvalue_kind (wrapped_string_lit));
+  ASSERT_EQ (clk_ordinary|clk_mergeable, lvalue_kind (wrapped_string_lit));
 
   tree parm = build_decl (UNKNOWN_LOCATION, PARM_DECL,
 			  get_identifier ("some_parm"),
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist-opt6.C b/gcc/testsuite/g++.dg/cpp0x/initlist-opt6.C
new file mode 100644
index 00000000000..80192892b8a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist-opt6.C
@@ -0,0 +1,26 @@
+// PR c++/118673
+// { dg-do run { target c++11 } }
+
+#include <initializer_list>
+
+struct ArrayRef {
+  const int *Data = nullptr;
+  ArrayRef(const int &OneElt) : Data(&OneElt) {}
+};
+
+struct Vec
+{
+  ArrayRef Elts[1];
+  Vec(std::initializer_list<ArrayRef> IL)
+    : Elts{*IL.begin()}
+    {  }
+};
+
+[[gnu::noinline]] Vec fn() {
+  static const auto extension = 42;
+  return {extension};
+}
+int main() {
+  auto t = fn();
+  if (t.Elts[0].Data[0] != 42) __builtin_abort();
+}

commit 19bf2732ae4ad0c37c2493e82cc500724de746a8
Author: Iain Sandoe <iains.gcc@gmail.com>
Date:   Thu Jan 30 08:19:21 2025 +0000

    c++: Update const_decl handling after r15-7259 [PR118673].
    
    Objective-C++ uses CONST_DECLs to hold constant string objects
    these should also be treated as mergable lvalues.
    
            PR c++/118673
    
    gcc/cp/ChangeLog:
    
            * tree.cc (lvalue_kind): Mark CONST_DECLs as mergable
            when they are also TREE_STATIC.
    
    Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>

diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc
index b37d4605e06..abed2ce859c 100644
--- a/gcc/cp/tree.cc
+++ b/gcc/cp/tree.cc
@@ -213,7 +213,7 @@ lvalue_kind (const_tree ref)
 	  && DECL_IN_AGGR_P (ref))
 	return clk_none;
 
-      if (DECL_MERGEABLE (ref))
+      if (TREE_CODE (ref) == CONST_DECL || DECL_MERGEABLE (ref))
 	return clk_ordinary | clk_mergeable;
 
       /* FALLTHRU */

commit a72e782528749bf553158039783ce79fa760e3a4
Author: Jason Merrill <jason@redhat.com>
Date:   Tue Jan 28 17:39:41 2025 -0500

    c++: disable initializer_list transformation
    
    PRs 118673 and 118285 are wrong-code bugs with the transformation to build
    an initializer_list backing array from a static array of the initializer
    expressions; let's disable that transformation on the GCC 14 branch.
    
            PR c++/118673
            PR c++/118285
    
    gcc/cp/ChangeLog:
    
            * call.cc (convert_like_internal) [ck_list]: Stop using
            maybe_init_list_as_array for GCC 14.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/tree-ssa/initlist-opt5.C: Add xfail.

diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc
index bb376d9cb13..f580c3f5442 100644
--- a/gcc/cp/call.cc
+++ b/gcc/cp/call.cc
@@ -8690,16 +8690,7 @@ convert_like_internal (conversion *convs, tree expr, tree fn, int argnum,
 	unsigned len = CONSTRUCTOR_NELTS (expr);
 	tree array;
 
-	if (tree init = maybe_init_list_as_array (elttype, expr))
-	  {
-	    elttype = cp_build_qualified_type
-	      (elttype, cp_type_quals (elttype) | TYPE_QUAL_CONST);
-	    array = build_array_of_n_type (elttype, len);
-	    array = build_vec_init_expr (array, init, complain);
-	    array = get_target_expr (array);
-	    array = cp_build_addr_expr (array, complain);
-	  }
-	else if (len)
+	if (len)
 	  {
 	    tree val; unsigned ix;
 
diff --git a/gcc/testsuite/g++.dg/tree-ssa/initlist-opt5.C b/gcc/testsuite/g++.dg/tree-ssa/initlist-opt5.C
index fc928bb5405..fea59b440b6 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/initlist-opt5.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/initlist-opt5.C
@@ -3,7 +3,7 @@
 // { dg-do compile { target c++11 } }
 
 // Check that we call the basic_string constructor once (and define it once).
-// { dg-final { scan-tree-dump-times {>::basic_string} 2 "gimple" } }
+// { dg-final { scan-tree-dump-times {>::basic_string} 2 "gimple" { xfail *-*-* } } }
 
 #include <string>
 

commit 7e7a1b612654479e821214f7ef7658de8a132714
Author: Jason Merrill <jason@redhat.com>
Date:   Sat Feb 15 10:48:17 2025 +0100

    c++: NRVO, constexpr, lambda [PR118053]
    
    Here during constant evaluation we encounter a VAR_DECL with DECL_VALUE_EXPR
    of the RESULT_DECL, where the latter has been adjusted for
    pass-by-invisible-reference.  We already had the code to deal with this, we
    just need to use it in the non-capture case of DECL_VALUE_EXPR as well.
    
            PR c++/118053
    
    gcc/cp/ChangeLog:
    
            * constexpr.cc (cxx_eval_constant_expression): Generalize
            DECL_VALUE_EXPR invisiref handling.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp1y/constexpr-lambda1.C: New test.
    
    (cherry picked from commit de66529f2e7bb24fb2b61b82e6a953f3f6c12902)

diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc
index 4b10763950d..a5c6227b8dd 100644
--- a/gcc/cp/constexpr.cc
+++ b/gcc/cp/constexpr.cc
@@ -7460,18 +7460,19 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t,
 		 definition, so don't try to look at the closure.  But if the
 		 captured variable is constant, try to evaluate it directly. */
 	      r = DECL_CAPTURED_VARIABLE (t);
-	      tree type = TREE_TYPE (t);
-	      if (TYPE_REF_P (type) != TYPE_REF_P (TREE_TYPE (r)))
-		{
-		  /* Adjust r to match the reference-ness of t.  */
-		  if (TYPE_REF_P (type))
-		    r = build_address (r);
-		  else
-		    r = convert_from_reference (r);
-		}
 	    }
 	  else
 	    r = DECL_VALUE_EXPR (t);
+
+	  tree type = TREE_TYPE (t);
+	  if (TYPE_REF_P (type) != TYPE_REF_P (TREE_TYPE (r)))
+	    {
+	      /* Adjust r to match the reference-ness of t.  */
+	      if (TYPE_REF_P (type))
+		r = build_address (r);
+	      else
+		r = convert_from_reference (r);
+	    }
 	  return cxx_eval_constant_expression (ctx, r, lval, non_constant_p,
 					       overflow_p);
 	}
diff --git a/gcc/testsuite/g++.dg/cpp1y/constexpr-lambda1.C b/gcc/testsuite/g++.dg/cpp1y/constexpr-lambda1.C
new file mode 100644
index 00000000000..dca3920ddc0
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/constexpr-lambda1.C
@@ -0,0 +1,21 @@
+// PR c++/118053
+// { dg-do compile { target c++14 } }
+// { dg-additional-options -O }
+
+template <typename _Tp> struct vector {
+  _Tp * _M_finish;
+  vector(_Tp);
+  vector(const vector &);
+  constexpr auto back() { return *_M_finish; }
+};
+template <typename Funct> void
+run(Funct funct) { funct(1); }
+
+vector<int>
+runner() try {
+  vector<int> vec{1};
+  run([&](auto) { vec.back(); });
+  return vec;
+} catch (...) {
+  return 1;
+}

commit 59b09468243d07f6ac7ab38cd0b7fedd00a47385
Author: Jason Merrill <jason@redhat.com>
Date:   Sun Feb 16 00:17:30 2025 +0100

    testsuite: limit concepts-pr67774.C to C++20
    
    This test breaks with -std=c++23 -fconcepts-ts, but works at the default
    -std=c++20 -fconcepts-ts.  Since we're removing -fconcepts-ts in GCC 15,
    it's not worth trying to fix this conflict.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/concepts-pr67774.C: Change target to c++20_only.

diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-pr67774.C b/gcc/testsuite/g++.dg/cpp2a/concepts-pr67774.C
index 5ee5c2dac8f..d24384364cc 100644
--- a/gcc/testsuite/g++.dg/cpp2a/concepts-pr67774.C
+++ b/gcc/testsuite/g++.dg/cpp2a/concepts-pr67774.C
@@ -1,4 +1,4 @@
-// { dg-do compile { target c++20 } }
+// { dg-do compile { target c++20_only } }
 // { dg-additional-options "-fconcepts-ts" }
 
 #include <type_traits>

commit ac47b3b7666eedb58a8d5e5b8781725006afff92
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Feb 28 00:23:33 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 17ae983e110..d10e5495f4e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2025-02-27  Haochen Jiang  <haochen.jiang@intel.com>
+
+	* config/i386/x86-tune.def
+	(X86_TUNE_DEST_FALSE_DEP_FOR_GLC): Add GNR, GNR-D.
+	(X86_TUNE_AVOID_256FMA_CHAINS): Ditto.
+	(X86_TUNE_AVX512_MOVE_BY_PIECES): Ditto.
+	(X86_TUNE_AVX512_STORE_BY_PIECES): Ditto.
+
 2025-02-25  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 78e945cf0f0..e392026598c 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250227
+20250228
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index ed85ca5046a..6f436124bff 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,41 @@
+2025-02-27  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2025-02-15  Jason Merrill  <jason@redhat.com>
+
+	PR c++/118053
+	* constexpr.cc (cxx_eval_constant_expression): Generalize
+	DECL_VALUE_EXPR invisiref handling.
+
+2025-02-27  Jason Merrill  <jason@redhat.com>
+
+	PR c++/118673
+	PR c++/118285
+	* call.cc (convert_like_internal) [ck_list]: Stop using
+	maybe_init_list_as_array for GCC 14.
+
+2025-02-27  Iain Sandoe  <iains.gcc@gmail.com>
+
+	PR c++/118673
+	* tree.cc (lvalue_kind): Mark CONST_DECLs as mergable
+	when they are also TREE_STATIC.
+
+2025-02-27  Jason Merrill  <jason@redhat.com>
+
+	PR c++/118673
+	* call.cc (maybe_init_list_as_array): Check for lvalue
+	initializers.
+	* cp-tree.h (enum cp_lvalue_kind_flags): Add clk_mergeable.
+	* tree.cc (lvalue_kind): Return it.
+	(non_mergeable_glvalue_p): New.
+	(test_lvalue_kind): Adjust.
+
+2025-02-27  Jason Merrill  <jason@redhat.com>
+
+	PR c++/118285
+	* constexpr.cc (cxx_eval_vec_init_1): Build INIT_EXPR for
+	initializing a class.
+
 2025-02-13  Nathaniel Shead  <nathanieloshead@gmail.com>
 
 	PR c++/118849
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 05ba20dfd38..324ed7193bb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,31 @@
+2025-02-27  Jason Merrill  <jason@redhat.com>
+
+	* g++.dg/cpp2a/concepts-pr67774.C: Change target to c++20_only.
+
+2025-02-27  Jason Merrill  <jason@redhat.com>
+
+	Backported from master:
+	2025-02-15  Jason Merrill  <jason@redhat.com>
+
+	PR c++/118053
+	* g++.dg/cpp1y/constexpr-lambda1.C: New test.
+
+2025-02-27  Jason Merrill  <jason@redhat.com>
+
+	PR c++/118673
+	PR c++/118285
+	* g++.dg/tree-ssa/initlist-opt5.C: Add xfail.
+
+2025-02-27  Jason Merrill  <jason@redhat.com>
+
+	PR c++/118673
+	* g++.dg/cpp0x/initlist-opt6.C: New test.
+
+2025-02-27  Jason Merrill  <jason@redhat.com>
+
+	PR c++/118285
+	* g++.dg/cpp0x/initlist-opt7.C: New test.
+
 2025-02-25  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
 
 	Backported from master:

commit a66d9754b8779446214853c86af41d74577da14a
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Dec 30 13:08:41 2024 +0000

    libstdc++: Implement LWG 2937 for std::filesystem::equivalent [PR118158]
    
    Do not report an error for (is_other(s1) && is_other(s2)) as the
    standard originally said, nor for (is_other(s1) || is_other(s2)) as
    libstdc++ was doing. We can compare inode numbers for special files and
    so give sensible answers.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/118158
            * src/c++17/fs_ops.cc (fs::equivalent): Remove error reporting
            for is_other(s1) && is_other(s2) case, as per LWG 2937.
            * testsuite/27_io/filesystem/operations/pr118158.cc: New test.
    
    (cherry picked from commit 301a961ffd0567eece55ece42e80a7ba9e855ba0)

diff --git a/libstdc++-v3/src/c++17/fs_ops.cc b/libstdc++-v3/src/c++17/fs_ops.cc
index 946fefd9e44..53c8b6d445a 100644
--- a/libstdc++-v3/src/c++17/fs_ops.cc
+++ b/libstdc++-v3/src/c++17/fs_ops.cc
@@ -914,24 +914,16 @@ fs::equivalent(const path& p1, const path& p2, error_code& ec) noexcept
   else
     err = errno;
 
-  if (exists(s1) && exists(s2))
-    {
-      if (is_other(s1) && is_other(s2))
-	{
-	  ec = std::__unsupported();
-	  return false;
-	}
-      ec.clear();
-      if (is_other(s1) || is_other(s2))
-	return false;
-      return fs::equiv_files(p1.c_str(), st1, p2.c_str(), st2, ec);
-    }
+  if (err)
+    ec.assign(err, std::generic_category());
   else if (!exists(s1) || !exists(s2))
     ec = std::make_error_code(std::errc::no_such_file_or_directory);
-  else if (err)
-    ec.assign(err, std::generic_category());
   else
-    ec.clear();
+    {
+      ec.clear();
+      if (s1.type() == s2.type())
+	return fs::equiv_files(p1.c_str(), st1, p2.c_str(), st2, ec);
+    }
   return false;
 #else
   ec = std::make_error_code(std::errc::function_not_supported);
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/operations/pr118158.cc b/libstdc++-v3/testsuite/27_io/filesystem/operations/pr118158.cc
new file mode 100644
index 00000000000..b57a2d184f4
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/filesystem/operations/pr118158.cc
@@ -0,0 +1,62 @@
+// { dg-do run { target c++17 } }
+// { dg-require-filesystem-ts "" }
+
+#include <filesystem>
+#include <testsuite_fs.h>
+#include <testsuite_hooks.h>
+
+#if defined(_GLIBCXX_HAVE_SYS_STAT_H) && defined(_GLIBCXX_HAVE_SYS_TYPES_H)
+# include <sys/types.h>
+# include <sys/stat.h>  // mkfifo
+#endif
+
+namespace fs = std::filesystem;
+
+void
+test_pr118158()
+{
+#if defined(_GLIBCXX_HAVE_SYS_STAT_H) && defined(_GLIBCXX_HAVE_SYS_TYPES_H) \
+  && defined(S_IWUSR) && defined(S_IRUSR)
+  auto p1 = __gnu_test::nonexistent_path();
+  auto p2 = __gnu_test::nonexistent_path();
+  auto p3 = __gnu_test::nonexistent_path();
+  const std::error_code bad_ec = make_error_code(std::errc::invalid_argument);
+  std::error_code ec;
+  bool result;
+
+  VERIFY( ! ::mkfifo(p1.c_str(), S_IWUSR | S_IRUSR) );
+  __gnu_test::scoped_file f1(p1, __gnu_test::scoped_file::adopt_file);
+
+  // Special file is equivalent to itself.
+  VERIFY( equivalent(p1, p1) );
+  VERIFY( equivalent(p1, p1, ec) );
+  VERIFY( ! ec );
+
+  VERIFY( ! ::mkfifo(p2.c_str(), S_IWUSR | S_IRUSR) );
+  __gnu_test::scoped_file f2(p2, __gnu_test::scoped_file::adopt_file);
+
+  ec = bad_ec;
+  // Distinct special files are not equivalent.
+  VERIFY( ! equivalent(p1, p2, ec) );
+  VERIFY( ! ec );
+
+  // Non-existent paths are always an error.
+  VERIFY( ! equivalent(p1, p3, ec) );
+  VERIFY( ec == std::errc::no_such_file_or_directory );
+  ec = bad_ec;
+  VERIFY( ! equivalent(p3, p2, ec) );
+  VERIFY( ec == std::errc::no_such_file_or_directory );
+
+  // Special file is not equivalent to regular file.
+  __gnu_test::scoped_file f3(p3);
+  ec = bad_ec;
+  VERIFY( ! equivalent(p1, p3, ec) );
+  VERIFY( ! ec );
+#endif
+}
+
+int
+main()
+{
+  test_pr118158();
+}

commit 1921b0c043014cdcc9981eefb674f2cab3a9d72e
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Nov 15 22:03:20 2024 +0000

    libstdc++: Add debug assertions to std::list and std::forward_list
    
    While working on fancy pointer support for the linked lists I noticed
    they didn't have any debug assertions. This adds the obvious non-empty
    assertions to front() and back().
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/forward_list.h (forward_list::front): Add
            non-empty assertions.
            * include/bits/stl_list.h (list::front, list::back): Add
            non-empty assertions.
    
    (cherry picked from commit e7aa614d7372b5d3cbcd2400838c80ef905ba381)

diff --git a/libstdc++-v3/include/bits/forward_list.h b/libstdc++-v3/include/bits/forward_list.h
index 5ab2253f609..1dae56c4734 100644
--- a/libstdc++-v3/include/bits/forward_list.h
+++ b/libstdc++-v3/include/bits/forward_list.h
@@ -40,6 +40,7 @@
 #include <bits/allocator.h>
 #include <ext/alloc_traits.h>
 #include <ext/aligned_buffer.h>
+#include <debug/assertions.h>
 
 namespace std _GLIBCXX_VISIBILITY(default)
 {
@@ -821,6 +822,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       reference
       front()
       {
+	__glibcxx_requires_nonempty();
 	_Node* __front = static_cast<_Node*>(this->_M_impl._M_head._M_next);
 	return *__front->_M_valptr();
       }
@@ -833,6 +835,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       const_reference
       front() const
       {
+	__glibcxx_requires_nonempty();
 	_Node* __front = static_cast<_Node*>(this->_M_impl._M_head._M_next);
 	return *__front->_M_valptr();
       }
diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h
index 8b2521960a8..08948484468 100644
--- a/libstdc++-v3/include/bits/stl_list.h
+++ b/libstdc++-v3/include/bits/stl_list.h
@@ -59,6 +59,7 @@
 
 #include <bits/concept_check.h>
 #include <ext/alloc_traits.h>
+#include <debug/assertions.h>
 #if __cplusplus >= 201103L
 #include <initializer_list>
 #include <bits/allocated_ptr.h>
@@ -1203,7 +1204,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
       _GLIBCXX_NODISCARD
       reference
       front() _GLIBCXX_NOEXCEPT
-      { return *begin(); }
+      {
+	__glibcxx_requires_nonempty();
+	return *begin();
+      }
 
       /**
        *  Returns a read-only (constant) reference to the data at the first
@@ -1212,7 +1216,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
       _GLIBCXX_NODISCARD
       const_reference
       front() const _GLIBCXX_NOEXCEPT
-      { return *begin(); }
+      {
+	__glibcxx_requires_nonempty();
+	return *begin();
+      }
 
       /**
        *  Returns a read/write reference to the data at the last element
@@ -1222,6 +1229,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
       reference
       back() _GLIBCXX_NOEXCEPT
       {
+	__glibcxx_requires_nonempty();
 	iterator __tmp = end();
 	--__tmp;
 	return *__tmp;
@@ -1235,6 +1243,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
       const_reference
       back() const _GLIBCXX_NOEXCEPT
       {
+	__glibcxx_requires_nonempty();
 	const_iterator __tmp = end();
 	--__tmp;
 	return *__tmp;

commit dd8866d79632ddcf4811859e98f5c990627d5727
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Dec 5 12:46:26 2024 +0000

    libstdc++: Use ADL swap for containers' function objects [PR117921]
    
    The standard says that Compare, Pred and Hash objects should be swapped
    as described in [swappable.requirements] which means calling swap
    unqualified with std::swap visible to name lookup.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/117921
            * include/bits/hashtable_policy.h (_Hash_code_base::_M_swap):
            Use ADL swap for Hash members.
            (_Hashtable_base::_M_swap): Use ADL swap for _Equal members.
            * include/bits/stl_tree.h (_Rb_tree::swap): Use ADL swap for
            _Compare members.
            * testsuite/23_containers/set/modifiers/swap/adl.cc: New test.
            * testsuite/23_containers/unordered_set/modifiers/swap-2.cc: New
            test.
    
    (cherry picked from commit 0368c42507328774cadbea589509b95aaf3cb826)

diff --git a/libstdc++-v3/include/bits/hashtable_policy.h b/libstdc++-v3/include/bits/hashtable_policy.h
index 68ec8d9470a..738a4da9382 100644
--- a/libstdc++-v3/include/bits/hashtable_policy.h
+++ b/libstdc++-v3/include/bits/hashtable_policy.h
@@ -1396,7 +1396,10 @@ namespace __detail
 
       void
       _M_swap(_Hash_code_base& __x)
-      { std::swap(__ebo_hash::_M_get(), __x.__ebo_hash::_M_get()); }
+      {
+	using std::swap;
+	swap(__ebo_hash::_M_get(), __x.__ebo_hash::_M_get());
+      }
 
       const _Hash&
       _M_hash() const { return __ebo_hash::_M_cget(); }
@@ -1780,7 +1783,8 @@ namespace __detail
       _M_swap(_Hashtable_base& __x)
       {
 	__hash_code_base::_M_swap(__x);
-	std::swap(_EqualEBO::_M_get(), __x._EqualEBO::_M_get());
+	using std::swap;
+	swap(_EqualEBO::_M_get(), __x._EqualEBO::_M_get());
       }
 
       const _Equal&
diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h
index 978093fc587..99575f6fe14 100644
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -2089,7 +2089,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count);
 	}
       // No need to swap header's color as it does not change.
-      std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare);
+
+      using std::swap;
+      swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare);
 
       _Alloc_traits::_S_on_swap(_M_get_Node_allocator(),
 				__t._M_get_Node_allocator());
diff --git a/libstdc++-v3/testsuite/23_containers/set/modifiers/swap/adl.cc b/libstdc++-v3/testsuite/23_containers/set/modifiers/swap/adl.cc
new file mode 100644
index 00000000000..2b7975a366f
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/set/modifiers/swap/adl.cc
@@ -0,0 +1,54 @@
+// { dg-do run { target c++11 } }
+
+// Bug 117921 - containers do not use ADL swap for Compare, Pred or Hash types
+
+#include <set>
+#include <testsuite_hooks.h>
+
+namespace adl
+{
+  struct Less : std::less<int>
+  {
+    static bool swapped;
+    friend void swap(Less&, Less&) { swapped = true; }
+  };
+  bool Less::swapped = false;
+
+  struct Allocator_base
+  {
+    static bool swapped;
+  };
+  bool Allocator_base::swapped = false;
+
+  using std::size_t;
+
+  template<typename T>
+    struct Allocator : Allocator_base
+    {
+      using value_type = T;
+
+      Allocator() { }
+      template<typename U> Allocator(const Allocator<U>&) { }
+
+      T* allocate(size_t n) { return std::allocator<T>().allocate(n); }
+      void deallocate(T* p, size_t n) { std::allocator<T>().deallocate(p, n); }
+
+      using propagate_on_container_swap = std::true_type;
+
+      friend void swap(Allocator&, Allocator&) { swapped = true; }
+    };
+}
+
+void
+test_swap()
+{
+  std::set<int, adl::Less, adl::Allocator<int>> s1, s2;
+  s1.swap(s2);
+  VERIFY( adl::Less::swapped );
+  VERIFY( adl::Allocator_base::swapped );
+}
+
+int main()
+{
+  test_swap();
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap-2.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap-2.cc
new file mode 100644
index 00000000000..a0fb1a6f662
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap-2.cc
@@ -0,0 +1,62 @@
+// { dg-do run { target c++11 } }
+
+// Bug 117921 - containers do not use ADL swap for Compare, Pred or Hash types
+
+#include <unordered_set>
+#include <testsuite_hooks.h>
+
+namespace adl
+{
+  struct Hash : std::hash<int>
+  {
+    static bool swapped;
+    friend void swap(Hash&, Hash&) { swapped = true; }
+  };
+  bool Hash::swapped = false;
+
+  struct Eq : std::equal_to<int>
+  {
+    static bool swapped;
+    friend void swap(Eq&, Eq&) { swapped = true; }
+  };
+  bool Eq::swapped = false;
+
+  struct Allocator_base
+  {
+    static bool swapped;
+  };
+  bool Allocator_base::swapped = false;
+
+  using std::size_t;
+
+  template<typename T>
+    struct Allocator : Allocator_base
+    {
+      using value_type = T;
+
+      Allocator() { }
+      template<typename U> Allocator(const Allocator<U>&) { }
+
+      T* allocate(size_t n) { return std::allocator<T>().allocate(n); }
+      void deallocate(T* p, size_t n) { std::allocator<T>().deallocate(p, n); }
+
+      using propagate_on_container_swap = std::true_type;
+
+      friend void swap(Allocator&, Allocator&) { swapped = true; }
+    };
+}
+
+void
+test_swap()
+{
+  std::unordered_set<int, adl::Eq, adl::Hash, adl::Allocator<int>> s1, s2;
+  s1.swap(s2);
+  VERIFY( adl::Hash::swapped );
+  VERIFY( adl::Eq::swapped );
+  VERIFY( adl::Allocator_base::swapped );
+}
+
+int main()
+{
+  test_swap();
+}

commit 6e97d601f18141a67d0896122187e556d5f3d6c4
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Dec 9 09:36:15 2024 +0000

    libstdc++: Add missing equality comparison in new tests [PR117921]
    
    These new tests fail in Debug Mode because the allocator types aren't
    equality comparable.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/117921
            * testsuite/23_containers/set/modifiers/swap/adl.cc: Add
            equality comparison for Allocator.
            * testsuite/23_containers/unordered_set/modifiers/swap-2.cc:
            Likewise.
    
    (cherry picked from commit 5cdd78b39725fb1d82cb6bd68e8f56bf4f5d51cd)

diff --git a/libstdc++-v3/testsuite/23_containers/set/modifiers/swap/adl.cc b/libstdc++-v3/testsuite/23_containers/set/modifiers/swap/adl.cc
index 2b7975a366f..e2a1742c953 100644
--- a/libstdc++-v3/testsuite/23_containers/set/modifiers/swap/adl.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/modifiers/swap/adl.cc
@@ -36,6 +36,7 @@ namespace adl
       using propagate_on_container_swap = std::true_type;
 
       friend void swap(Allocator&, Allocator&) { swapped = true; }
+      friend bool operator==(Allocator, Allocator) { return true; }
     };
 }
 
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap-2.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap-2.cc
index a0fb1a6f662..9d8b2200e24 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap-2.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/swap-2.cc
@@ -43,6 +43,7 @@ namespace adl
       using propagate_on_container_swap = std::true_type;
 
       friend void swap(Allocator&, Allocator&) { swapped = true; }
+      friend bool operator==(Allocator, Allocator) { return true; }
     };
 }
 

commit 70452d24fa4bc6962f51232674ffdd6826723777
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Dec 16 09:45:40 2024 +0000

    libstdc++: Add missing character to __to_wstring_numeric map
    
    The mapping from char to wchar_t needs to handle 'i' and 'I' but those
    were absent from the table that is used for some non-ASCII encodings.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/basic_string.h (__to_wstring_numeric): Add 'i'
            and 'I' to mapping.
    
    (cherry picked from commit e1937cf33abded5c6ebbe4938a4a3e8cb3365176)

diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h
index 2794ec6419a..abbe17cf4a1 100644
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -4496,6 +4496,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
 	__wc['d'] = L'd';
 	__wc['e'] = L'e';
 	__wc['f'] = L'f';
+	__wc['i'] = L'i'; // for "inf"
 	__wc['n'] = L'n'; // for "nan" and "inf"
 	__wc['p'] = L'p'; // for hexfloats "0x1p1"
 	__wc['x'] = L'x';
@@ -4505,6 +4506,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
 	__wc['D'] = L'D';
 	__wc['E'] = L'E';
 	__wc['F'] = L'F';
+	__wc['I'] = L'I';
 	__wc['N'] = L'N';
 	__wc['P'] = L'P';
 	__wc['X'] = L'X';

commit 6561de33c3b184b039f79f49a5f1c949f9c6ecd5
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Jun 21 00:25:32 2024 +0100

    libstdc++: Qualify calls in <bits/stl_uninitialized.h> to prevent ADL
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/stl_uninitialized.h (uninitialized_default_construct)
            (uninitialized_default_construct_n, uninitialized_value_construct)
            (uninitialized_value_construct_n): Qualify calls to prevent ADL.
    
    (cherry picked from commit 09ca26cd24778e0820525edfac1cce07262f7e6c)

diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h b/libstdc++-v3/include/bits/stl_uninitialized.h
index 7f84da31578..3c405d8fbe8 100644
--- a/libstdc++-v3/include/bits/stl_uninitialized.h
+++ b/libstdc++-v3/include/bits/stl_uninitialized.h
@@ -975,7 +975,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     uninitialized_default_construct(_ForwardIterator __first,
 				    _ForwardIterator __last)
     {
-      __uninitialized_default_novalue(__first, __last);
+      std::__uninitialized_default_novalue(__first, __last);
     }
 
   /**
@@ -989,7 +989,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     inline _ForwardIterator
     uninitialized_default_construct_n(_ForwardIterator __first, _Size __count)
     {
-      return __uninitialized_default_novalue_n(__first, __count);
+      return std::__uninitialized_default_novalue_n(__first, __count);
     }
 
   /**
@@ -1003,7 +1003,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     uninitialized_value_construct(_ForwardIterator __first,
 				  _ForwardIterator __last)
     {
-      return __uninitialized_default(__first, __last);
+      return std::__uninitialized_default(__first, __last);
     }
 
   /**
@@ -1017,7 +1017,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     inline _ForwardIterator
     uninitialized_value_construct_n(_ForwardIterator __first, _Size __count)
     {
-      return __uninitialized_default_n(__first, __count);
+      return std::__uninitialized_default_n(__first, __count);
     }
 
   /**

commit f83bc0edb51e3e70e9cb5786f99f299ad2baa283
Author: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Date:   Thu Feb 6 14:24:17 2025 +0000

    libstdc++: fix a dangling reference crash in ranges::is_permutation [PR118160]
    
    The code was caching the result of `invoke(proj, *it)` in a local
    `auto &&` variable. The problem is that this may create dangling
    references, for instance in case `proj` is `std::identity` (the common
    case) and `*it` produces a prvalue: lifetime extension does not
    apply here due to the expressions involved.
    
    Instead, store (and lifetime-extend) the result of `*it` in a separate
    variable, then project that variable. While at it, also forward the
    result of the projection to the predicate, so that the predicate can
    act on the proper value category.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/118160
            PR libstdc++/100249
            * include/bits/ranges_algo.h (__is_permutation_fn): Avoid a
            dangling reference by storing the result of the iterator
            dereference and the result of the projection in two distinct
            variables, in order to lifetime-extend each one.
            Forward the projected value to the predicate.
            * testsuite/25_algorithms/is_permutation/constrained.cc: Add a
            test with a range returning prvalues. Test it in a constexpr
            context, in order to rely on the compiler to catch UB.
    
    Signed-off-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
    (cherry picked from commit 2a2bd96d0d2109384a0eedde843ba811d2e18738)

diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h
index 0386e7aafa6..6bac65bc564 100644
--- a/libstdc++-v3/include/bits/ranges_algo.h
+++ b/libstdc++-v3/include/bits/ranges_algo.h
@@ -561,9 +561,12 @@ namespace ranges
 
 	for (auto __scan = __first1; __scan != __last1; ++__scan)
 	  {
-	    auto&& __proj_scan = std::__invoke(__proj1, *__scan);
+	    auto&& __scan_deref = *__scan;
+	    auto&& __proj_scan =
+	      std::__invoke(__proj1, std::forward<decltype(__scan_deref)>(__scan_deref));
 	    auto __comp_scan = [&] <typename _Tp> (_Tp&& __arg) -> bool {
-	      return std::__invoke(__pred, __proj_scan,
+	      return std::__invoke(__pred,
+				   std::forward<decltype(__proj_scan)>(__proj_scan),
 				   std::forward<_Tp>(__arg));
 	    };
 	    if (__scan != ranges::find_if(__first1, __scan,
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
index 2fbebe37609..7266aff5b17 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
@@ -19,6 +19,7 @@
 
 #include <algorithm>
 #include <iterator>
+#include <ranges>
 #include <testsuite_hooks.h>
 #include <testsuite_iterators.h>
 
@@ -76,10 +77,22 @@ test03()
   while (std::next_permutation(std::begin(cx), std::end(cx)));
 }
 
+constexpr
+bool
+test04() // PR118160, do not create dangling references
+{
+  int x[] = { 4, 3, 2, 1 };
+  auto y = std::views::iota(1, 5);
+  return ranges::is_permutation(x, y) && ranges::is_permutation(y, x);
+}
+
+static_assert(test04());
+
 int
 main()
 {
   test01();
   test02();
   test03();
+  VERIFY( test04() );
 }

commit fb9a2af992813f874c942472fb35506b6180ffbf
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Apr 13 13:03:44 2022 +0100

    libstdc++: Handle extended alignment in std::get_temporary_buffer [PR105258]
    
    This adds extended alignment support to std::get_temporary_buffer etc.
    so that when std::stable_sort uses a temporary buffer it works for
    overaligned types.
    
    Also simplify the _Temporary_buffer type by using RAII for the
    allocation, via a new data member. This simplifies the _Temporary_buffer
    constructor and destructor by makingthem only responsible for
    constructing and destroying the elements, not managing the memory.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/105258
            * include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer):
            New function to do allocation for get_temporary_buffer, with
            extended alignment support.
            (__detail::__return_temporary_buffer): Support extended
            alignment.
            (get_temporary_buffer): Use __get_temporary_buffer.
            (return_temporary_buffer): Support extended alignment. Add
            deprecated attribute.
            (_Temporary_buffer): Move allocation and deallocation into a
            subobject and remove try-catch block in constructor.
            (__uninitialized_construct_buf): Use argument deduction for
            value type.
            * testsuite/20_util/temporary_buffer.cc: Add dg-warning for new
            deprecated warning.
            * testsuite/25_algorithms/stable_sort/overaligned.cc: New test.
    
    (cherry picked from commit b0efdcbf58a76af3b8fff75f1d53d334fb5b46ee)

diff --git a/libstdc++-v3/include/bits/stl_tempbuf.h b/libstdc++-v3/include/bits/stl_tempbuf.h
index 77b121460f9..fa03fd27704 100644
--- a/libstdc++-v3/include/bits/stl_tempbuf.h
+++ b/libstdc++-v3/include/bits/stl_tempbuf.h
@@ -66,19 +66,58 @@ namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
+#if __has_builtin(__builtin_operator_new) >= 201802L
+# define _GLIBCXX_OPERATOR_NEW __builtin_operator_new
+# define _GLIBCXX_OPERATOR_DELETE __builtin_operator_delete
+#else
+# define _GLIBCXX_OPERATOR_NEW ::operator new
+# define _GLIBCXX_OPERATOR_DELETE ::operator delete
+#endif
+
   namespace __detail
   {
+    // Equivalent to std::get_temporary_buffer but won't return a smaller size.
+    // It either returns a buffer of __len elements, or a null pointer.
+    template<typename _Tp>
+      inline _Tp*
+      __get_temporary_buffer(ptrdiff_t __len) _GLIBCXX_NOTHROW
+      {
+	if (__builtin_expect(__len > (size_t(-1) / sizeof(_Tp)), 0))
+	  return 0;
+
+#if __cpp_aligned_new
+	if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
+	  return (_Tp*) _GLIBCXX_OPERATOR_NEW(__len * sizeof(_Tp),
+					      align_val_t(alignof(_Tp)),
+					      nothrow_t());
+#endif
+	return (_Tp*) _GLIBCXX_OPERATOR_NEW(__len * sizeof(_Tp), nothrow_t());
+      }
+
+    // Equivalent to std::return_temporary_buffer but with a size argument.
+    // The size is the number of elements, not the number of bytes.
     template<typename _Tp>
       inline void
       __return_temporary_buffer(_Tp* __p,
 				size_t __len __attribute__((__unused__)))
       {
 #if __cpp_sized_deallocation
-	::operator delete(__p, __len * sizeof(_Tp));
+# define _GLIBCXX_SIZED_DEALLOC(T, p, n) (p), (n) * sizeof(T)
 #else
-	::operator delete(__p);
+# define _GLIBCXX_SIZED_DEALLOC(T, p, n) (p)
 #endif
+
+#if __cpp_aligned_new
+	if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
+	  {
+	    _GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(_Tp, __p, __len),
+				     align_val_t(alignof(_Tp)));
+	    return;
+	  }
+#endif
+	_GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(_Tp, __p, __len));
       }
+#undef _GLIBCXX_SIZED_DEALLOC
   }
 
   /**
@@ -90,7 +129,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    *
    *  This function tries to obtain storage for @c __len adjacent Tp
    *  objects.  The objects themselves are not constructed, of course.
-   *  A pair<> is returned containing <em>the buffer s address and
+   *  A pair<> is returned containing <em>the buffer's address and
    *  capacity (in the units of sizeof(_Tp)), or a pair of 0 values if
    *  no storage can be obtained.</em>  Note that the capacity obtained
    *  may be less than that requested if the memory is unavailable;
@@ -110,13 +149,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
       while (__len > 0)
 	{
-	  _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
-							std::nothrow));
-	  if (__tmp != 0)
-	    return std::pair<_Tp*, ptrdiff_t>(__tmp, __len);
+	  if (_Tp* __tmp = __detail::__get_temporary_buffer<_Tp>(__len))
+	    return pair<_Tp*, ptrdiff_t>(__tmp, __len);
 	  __len = __len == 1 ? 0 : ((__len + 1) / 2);
 	}
-      return std::pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
+      return pair<_Tp*, ptrdiff_t>();
     }
 
   /**
@@ -127,9 +164,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
    *  Frees the memory pointed to by __p.
    */
   template<typename _Tp>
+    _GLIBCXX17_DEPRECATED
     inline void
     return_temporary_buffer(_Tp* __p)
-    { ::operator delete(__p); }
+    {
+#if __cpp_aligned_new
+      if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
+	_GLIBCXX_OPERATOR_DELETE(__p, align_val_t(alignof(_Tp)));
+      else
+#endif
+      _GLIBCXX_OPERATOR_DELETE(__p);
+    }
+
+#undef _GLIBCXX_OPERATOR_DELETE
+#undef _GLIBCXX_OPERATOR_NEW
 
   /**
    *  This class is used in two places: stl_algo.h and ext/memory,
@@ -150,14 +198,29 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
     protected:
       size_type  _M_original_len;
-      size_type  _M_len;
-      pointer    _M_buffer;
+      struct _Impl
+      {
+	explicit
+	_Impl(ptrdiff_t __original_len)
+	{
+	  pair<pointer, size_type> __p(
+	    std::get_temporary_buffer<value_type>(__original_len));
+	  _M_len = __p.second;
+	  _M_buffer = __p.first;
+	}
+
+	~_Impl()
+	{ std::__detail::__return_temporary_buffer(_M_buffer, _M_len); }
+
+	size_type  _M_len;
+	pointer    _M_buffer;
+      } _M_impl;
 
     public:
       /// As per Table mumble.
       size_type
       size() const
-      { return _M_len; }
+      { return _M_impl._M_len; }
 
       /// Returns the size requested by the constructor; may be >size().
       size_type
@@ -167,12 +230,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       /// As per Table mumble.
       iterator
       begin()
-      { return _M_buffer; }
+      { return _M_impl._M_buffer; }
 
       /// As per Table mumble.
       iterator
       end()
-      { return _M_buffer + _M_len; }
+      { return _M_impl._M_buffer + _M_impl._M_len; }
 
       /**
        * Constructs a temporary buffer of a size somewhere between
@@ -181,10 +244,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       _Temporary_buffer(_ForwardIterator __seed, size_type __original_len);
 
       ~_Temporary_buffer()
-      {
-	std::_Destroy(_M_buffer, _M_buffer + _M_len);
-	std::__detail::__return_temporary_buffer(_M_buffer, _M_len);
-      }
+      { std::_Destroy(_M_impl._M_buffer, _M_impl._M_buffer + _M_impl._M_len); }
 
     private:
       // Disable copy constructor and assignment operator.
@@ -203,7 +263,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
         __ucr(_Pointer __first, _Pointer __last,
 	      _ForwardIterator __seed)
         {
-	  if (__first == __last)
+	  if (__builtin_expect(__first == __last, 0))
 	    return;
 
 	  _Pointer __cur = __first;
@@ -243,17 +303,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // the same value when the algorithm finishes, unless one of the
   // constructions throws.
   //
-  // Requirements: _Pointer::value_type(_Tp&&) is valid.
-  template<typename _Pointer, typename _ForwardIterator>
+  // Requirements:
+  // _Tp is move constructible and constructible from std::move(*__seed).
+  template<typename _Tp, typename _ForwardIterator>
     inline void
-    __uninitialized_construct_buf(_Pointer __first, _Pointer __last,
+    __uninitialized_construct_buf(_Tp* __first, _Tp* __last,
 				  _ForwardIterator __seed)
     {
-      typedef typename std::iterator_traits<_Pointer>::value_type
-	_ValueType;
-
       std::__uninitialized_construct_buf_dispatch<
-        __has_trivial_constructor(_ValueType)>::
+	__has_trivial_constructor(_Tp)>::
 	  __ucr(__first, __last, __seed);
     }
 
@@ -262,26 +320,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   template<typename _ForwardIterator, typename _Tp>
     _Temporary_buffer<_ForwardIterator, _Tp>::
     _Temporary_buffer(_ForwardIterator __seed, size_type __original_len)
-    : _M_original_len(__original_len), _M_len(0), _M_buffer(0)
+    : _M_original_len(__original_len), _M_impl(__original_len)
     {
-      std::pair<pointer, size_type> __p(
-		std::get_temporary_buffer<value_type>(_M_original_len));
-
-      if (__p.first)
-	{
-	  __try
-	    {
-	      std::__uninitialized_construct_buf(__p.first, __p.first + __p.second,
-						 __seed);
-	      _M_buffer = __p.first;
-	      _M_len = __p.second;
-	    }
-	  __catch(...)
-	    {
-	      std::__detail::__return_temporary_buffer(__p.first, __p.second);
-	      __throw_exception_again;
-	    }
-	}
+      std::__uninitialized_construct_buf(begin(), end(), __seed);
     }
 #pragma GCC diagnostic pop
 
diff --git a/libstdc++-v3/testsuite/20_util/temporary_buffer.cc b/libstdc++-v3/testsuite/20_util/temporary_buffer.cc
index 155d19034e5..065739be29d 100644
--- a/libstdc++-v3/testsuite/20_util/temporary_buffer.cc
+++ b/libstdc++-v3/testsuite/20_util/temporary_buffer.cc
@@ -44,7 +44,7 @@ int main(void)
       VERIFY( results.first == 0 );
   }
 
-  std::return_temporary_buffer(results.first);
+  std::return_temporary_buffer(results.first); // { dg-warning "deprecated" "" { target c++17 } }
 
   return 0;
 }
diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_sort/overaligned.cc b/libstdc++-v3/testsuite/25_algorithms/stable_sort/overaligned.cc
new file mode 100644
index 00000000000..3c200624617
--- /dev/null
+++ b/libstdc++-v3/testsuite/25_algorithms/stable_sort/overaligned.cc
@@ -0,0 +1,29 @@
+// { dg-do run { target c++17 } }
+// PR libstdc++/105258 std::get_temporary_buffer() does not respect alignment
+
+#include <algorithm>
+#include <cstdint>
+#include <testsuite_hooks.h>
+
+struct alignas(__STDCPP_DEFAULT_NEW_ALIGNMENT__ * 2) Overaligned
+{
+  ~Overaligned()
+  {
+    auto alignment = reinterpret_cast<std::uintptr_t>(this);
+    VERIFY( (alignment % alignof(Overaligned)) == 0 );
+  }
+
+  bool operator<(const Overaligned&) const { return false; }
+};
+
+void
+test_pr105258()
+{
+  Overaligned o[2];
+  std::stable_sort(o, o+2);
+}
+
+int main()
+{
+  test_pr105258();
+}

commit c795413cf3a879e1e9155774652180fb3fbf5830
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Jun 18 20:53:53 2024 +0100

    libstdc++: Fix warning regressions in <bits/stl_tempbuf.h>
    
    I caused some new warnings with -Wsystem-headers with my recent changes
    to std::get_temporary_buffer and std::_Temporary_buffer. There's a
    -Wsign-compare warning which can be avoided by casting the ptrdiff_t
    argument to size_t (which also conveniently rejects negative values).
    
    There's also a -Wdeprecated-declarations warning because I moved where
    std::get_temporary_buffer is called, but didn't move the diagnostic
    pragmas that suppress the warning for calling it.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/stl_tempbuf.h (__get_temporary_buffer): Cast
            argument to size_t to handle negative values and suppress
            -Wsign-compare warning.
            (_Temporary_buffer): Move diagnostic pragmas to new location of
            call to std::get_temporary_buffer.
    
    (cherry picked from commit 8c52adcf5f9812ef66aeef357590fb2f148302f7)

diff --git a/libstdc++-v3/include/bits/stl_tempbuf.h b/libstdc++-v3/include/bits/stl_tempbuf.h
index fa03fd27704..759c4937744 100644
--- a/libstdc++-v3/include/bits/stl_tempbuf.h
+++ b/libstdc++-v3/include/bits/stl_tempbuf.h
@@ -82,7 +82,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       inline _Tp*
       __get_temporary_buffer(ptrdiff_t __len) _GLIBCXX_NOTHROW
       {
-	if (__builtin_expect(__len > (size_t(-1) / sizeof(_Tp)), 0))
+	if (__builtin_expect(size_t(__len) > (size_t(-1) / sizeof(_Tp)), 0))
 	  return 0;
 
 #if __cpp_aligned_new
@@ -200,6 +200,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       size_type  _M_original_len;
       struct _Impl
       {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 	explicit
 	_Impl(ptrdiff_t __original_len)
 	{
@@ -208,6 +210,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  _M_len = __p.second;
 	  _M_buffer = __p.first;
 	}
+#pragma GCC diagnostic pop
 
 	~_Impl()
 	{ std::__detail::__return_temporary_buffer(_M_buffer, _M_len); }
@@ -315,8 +318,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  __ucr(__first, __last, __seed);
     }
 
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
   template<typename _ForwardIterator, typename _Tp>
     _Temporary_buffer<_ForwardIterator, _Tp>::
     _Temporary_buffer(_ForwardIterator __seed, size_type __original_len)
@@ -324,7 +325,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     {
       std::__uninitialized_construct_buf(begin(), end(), __seed);
     }
-#pragma GCC diagnostic pop
 
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace

commit 3b9885ac4df2e83cec2080d5a7013b71345a7a7b
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jun 26 14:09:07 2024 +0100

    libstdc++: Do not use C++11 alignof in C++98 mode [PR104395]
    
    When -faligned-new (or Clang's -faligned-allocation) is used our
    allocators try to support extended alignments, gated on the
    __cpp_aligned_new macro. However, because they use alignof(_Tp) which is
    not a keyword in C++98 mode, using -std=c++98 -faligned-new results in
    errors from <memory> and other headers.
    
    We could change them to use __alignof__ instead of alignof, but that
    would potentially alter the result of the conditions, because e.g.
    alignof(long long) != __alignof__(long long) on some targets. That's
    probably not an issue for any types with extended alignment, so maybe it
    would be a safe change.
    
    For now, it seems acceptable to just disable the extended alignment
    support in C++98 mode, so that -faligned-new enables std::align_val_t
    and the corresponding operator new overloads, but doesn't affect
    std::allocator, __gnu_cxx::__bitmap_allocator etc.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/104395
            * include/bits/new_allocator.h: Disable extended alignment
            support in C++98 mode.
            * include/bits/stl_tempbuf.h: Likewise.
            * include/ext/bitmap_allocator.h: Likewise.
            * include/ext/malloc_allocator.h: Likewise.
            * include/ext/mt_allocator.h: Likewise.
            * include/ext/pool_allocator.h: Likewise.
            * testsuite/ext/104395.cc: New test.
    
    (cherry picked from commit 03d3aeb0e0fa7dec9bd702cabf57ef73cdc32704)

diff --git a/libstdc++-v3/include/bits/new_allocator.h b/libstdc++-v3/include/bits/new_allocator.h
index 21e7e22cae0..3a749dc91db 100644
--- a/libstdc++-v3/include/bits/new_allocator.h
+++ b/libstdc++-v3/include/bits/new_allocator.h
@@ -140,7 +140,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	    std::__throw_bad_alloc();
 	  }
 
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
 	if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	  {
 	    std::align_val_t __al = std::align_val_t(alignof(_Tp));
@@ -161,7 +161,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 # define _GLIBCXX_SIZED_DEALLOC(p, n) (p)
 #endif
 
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
 	if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	  {
 	    _GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(__p, __n),
diff --git a/libstdc++-v3/include/bits/stl_tempbuf.h b/libstdc++-v3/include/bits/stl_tempbuf.h
index 759c4937744..0f267054613 100644
--- a/libstdc++-v3/include/bits/stl_tempbuf.h
+++ b/libstdc++-v3/include/bits/stl_tempbuf.h
@@ -85,7 +85,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	if (__builtin_expect(size_t(__len) > (size_t(-1) / sizeof(_Tp)), 0))
 	  return 0;
 
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
 	if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	  return (_Tp*) _GLIBCXX_OPERATOR_NEW(__len * sizeof(_Tp),
 					      align_val_t(alignof(_Tp)),
@@ -107,7 +107,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 # define _GLIBCXX_SIZED_DEALLOC(T, p, n) (p)
 #endif
 
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
 	if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	  {
 	    _GLIBCXX_OPERATOR_DELETE(_GLIBCXX_SIZED_DEALLOC(_Tp, __p, __len),
@@ -168,7 +168,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     inline void
     return_temporary_buffer(_Tp* __p)
     {
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
       if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	_GLIBCXX_OPERATOR_DELETE(__p, align_val_t(alignof(_Tp)));
       else
diff --git a/libstdc++-v3/include/ext/bitmap_allocator.h b/libstdc++-v3/include/ext/bitmap_allocator.h
index ef2ee13187b..45b2283ca30 100644
--- a/libstdc++-v3/include/ext/bitmap_allocator.h
+++ b/libstdc++-v3/include/ext/bitmap_allocator.h
@@ -1017,7 +1017,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	if (__n > this->max_size())
 	  std::__throw_bad_alloc();
 
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
 	if (alignof(value_type) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	  {
 	    const size_type __b = __n * sizeof(value_type);
@@ -1044,7 +1044,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       {
 	if (__builtin_expect(__p != 0, true))
 	  {
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
 	    // Types with extended alignment are handled by operator delete.
 	    if (alignof(value_type) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	      {
diff --git a/libstdc++-v3/include/ext/malloc_allocator.h b/libstdc++-v3/include/ext/malloc_allocator.h
index cde06d83241..2a58847b8a9 100644
--- a/libstdc++-v3/include/ext/malloc_allocator.h
+++ b/libstdc++-v3/include/ext/malloc_allocator.h
@@ -120,7 +120,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  }
 
 	_Tp* __ret = 0;
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
 #if __cplusplus > 201402L && _GLIBCXX_HAVE_ALIGNED_ALLOC
 	if (alignof(_Tp) > alignof(std::max_align_t))
 	  {
diff --git a/libstdc++-v3/include/ext/mt_allocator.h b/libstdc++-v3/include/ext/mt_allocator.h
index 0b0bf8dc5f7..77f7dcd2762 100644
--- a/libstdc++-v3/include/ext/mt_allocator.h
+++ b/libstdc++-v3/include/ext/mt_allocator.h
@@ -693,7 +693,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       if (__n > this->max_size())
 	std::__throw_bad_alloc();
 
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
       // Types with extended alignment are handled by operator new/delete.
       if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	{
@@ -748,7 +748,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     {
       if (__builtin_expect(__p != 0, true))
 	{
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
 	  // Types with extended alignment are handled by operator new/delete.
 	  if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	    {
diff --git a/libstdc++-v3/include/ext/pool_allocator.h b/libstdc++-v3/include/ext/pool_allocator.h
index 13895b2f71a..679b4b3d276 100644
--- a/libstdc++-v3/include/ext/pool_allocator.h
+++ b/libstdc++-v3/include/ext/pool_allocator.h
@@ -224,7 +224,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 	  const size_t __bytes = __n * sizeof(_Tp);
 
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
 	  if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	    {
 	      std::align_val_t __al = std::align_val_t(alignof(_Tp));
@@ -272,7 +272,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       using std::size_t;
       if (__builtin_expect(__n != 0 && __p != 0, true))
 	{
-#if __cpp_aligned_new
+#if __cpp_aligned_new && __cplusplus >= 201103L
 	  if (alignof(_Tp) > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
 	    {
 	      ::operator delete(__p, std::align_val_t(alignof(_Tp)));
diff --git a/libstdc++-v3/testsuite/ext/104395.cc b/libstdc++-v3/testsuite/ext/104395.cc
new file mode 100644
index 00000000000..252c40c9698
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/104395.cc
@@ -0,0 +1,8 @@
+// { dg-options "-std=gnu++98 -faligned-new" }
+// { dg-do compile }
+#include <ext/memory>
+#include <ext/bitmap_allocator.h>
+#include <ext/mt_allocator.h>
+#include <ext/malloc_allocator.h>
+#include <ext/new_allocator.h>
+#include <ext/pool_allocator.h>

commit 8443a90c4332b9c1b8c370c971777807512f7602
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu May 30 20:36:42 2024 +0100

    libstdc++: Optimize std::basic_string_view::starts_with
    
    We get smaller code at all optimization levels by not creating a
    temporary object, just comparing lengths first and then using
    traits_type::compare. This does less work than calling substr then
    operator==.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/string_view (starts_with(basic_string_view)):
            Compare lengths first and then call traits_type::compare
            directly.
    
    (cherry picked from commit 482f97e79fc29ea2d61f1425b32564a668b51e1c)

diff --git a/libstdc++-v3/include/std/string_view b/libstdc++-v3/include/std/string_view
index a7c5a126461..740aa9344f0 100644
--- a/libstdc++-v3/include/std/string_view
+++ b/libstdc++-v3/include/std/string_view
@@ -385,7 +385,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       [[nodiscard]]
       constexpr bool
       starts_with(basic_string_view __x) const noexcept
-      { return this->substr(0, __x.size()) == __x; }
+      {
+	return _M_len >= __x._M_len
+	  && traits_type::compare(_M_str, __x._M_str, __x._M_len) == 0;
+      }
 
       [[nodiscard]]
       constexpr bool

commit 85f4136aa83b33783c2ee80bffc2e61e80e4b887
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Sat Jun 1 10:45:55 2024 +0100

    libstdc++: Reuse temporary buffer utils in <stacktrace>
    
    The non-throwing allocation logic in std::stacktrace duplicates the
    logic in <bits/stl_tempbuf.h>, so we can just reuse those utilities.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
            Use __detail::__get_temporary_buffer.
            (basic_stacktrace::_Impl::_M_deallocate): Use
            __detail::__return_temporary_buffer.
    
    (cherry picked from commit 2a83084ce5536353ceb8554e906f87273a59c4fd)

diff --git a/libstdc++-v3/include/std/stacktrace b/libstdc++-v3/include/std/stacktrace
index dcff886c095..c7558069d5d 100644
--- a/libstdc++-v3/include/std/stacktrace
+++ b/libstdc++-v3/include/std/stacktrace
@@ -45,6 +45,7 @@
 #include <bits/stl_algo.h>
 #include <bits/stl_iterator.h>
 #include <bits/stl_uninitialized.h>
+#include <bits/stl_tempbuf.h> // __get_temporary_buffer
 #include <ext/numeric_traits.h>
 
 namespace std _GLIBCXX_VISIBILITY(default)
@@ -546,21 +547,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  return std::min(__size_max, __alloc_max);
 	}
 
-#if __has_builtin(__builtin_operator_new) >= 201802L
-# define _GLIBCXX_OPERATOR_NEW __builtin_operator_new
-# define _GLIBCXX_OPERATOR_DELETE __builtin_operator_delete
-#else
-# define _GLIBCXX_OPERATOR_NEW ::operator new
-# define _GLIBCXX_OPERATOR_DELETE ::operator delete
-#endif
-
-#if __cpp_sized_deallocation
-# define _GLIBCXX_SIZED_DELETE(T, p, n) \
-  _GLIBCXX_OPERATOR_DELETE((p), (n) * sizeof(T))
-#else
-# define _GLIBCXX_SIZED_DELETE(T, p, n) _GLIBCXX_OPERATOR_DELETE(p)
-#endif
-
 	// Precondition: _M_frames == nullptr && __n != 0
 	pointer
 	_M_allocate(allocator_type& __alloc, size_type __n) noexcept
@@ -571,11 +557,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 		{
 		  // For std::allocator we use nothrow-new directly so we
 		  // don't need to handle exceptions from __alloc.allocate(n).
-		  size_t __nb = __n * sizeof(value_type);
-		  void* const __p = _GLIBCXX_OPERATOR_NEW (__nb, nothrow_t{});
+		  auto __p = __detail::__get_temporary_buffer<value_type>(__n);
 		  if (__p == nullptr) [[unlikely]]
 		    return nullptr;
-		  _M_frames = static_cast<pointer>(__p);
+		  _M_frames = __p;
 		}
 	      else
 		{
@@ -600,9 +585,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	  if (_M_capacity)
 	    {
 	      if constexpr (is_same_v<allocator_type, allocator<value_type>>)
-		_GLIBCXX_SIZED_DELETE(value_type,
-				      static_cast<void*>(_M_frames),
-				      _M_capacity);
+		__detail::__return_temporary_buffer(_M_frames, _M_capacity);
 	      else
 		__alloc.deallocate(_M_frames, _M_capacity);
 	      _M_frames = nullptr;
@@ -610,10 +593,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	    }
 	}
 
-#undef _GLIBCXX_SIZED_DELETE
-#undef _GLIBCXX_OPERATOR_DELETE
-#undef _GLIBCXX_OPERATOR_NEW
-
 	// Precondition: __n <= _M_size
 	void
 	_M_resize(size_type __n, allocator_type& __alloc) noexcept

commit 2b9449c2c1b60ddc191d51617d892fa461b5cfcb
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Feb 27 21:58:09 2025 +0000

    libstdc++: Fix outdated comment in <stacktrace>
    
    My r15-998-g2a83084ce55363 change replaced the use of nothrow
    operator new with a call to __get_temporary_buffer, so update the
    comment to match.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/stacktrace (_Impl::_M_allocate): Fix outdated
            comment.
    
    (cherry picked from commit e8302282cdb53ae1d347c12d7a50c4209fbab4f7)

diff --git a/libstdc++-v3/include/std/stacktrace b/libstdc++-v3/include/std/stacktrace
index c7558069d5d..fc1b3af9e4f 100644
--- a/libstdc++-v3/include/std/stacktrace
+++ b/libstdc++-v3/include/std/stacktrace
@@ -555,7 +555,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	    {
 	      if constexpr (is_same_v<allocator_type, allocator<value_type>>)
 		{
-		  // For std::allocator we use nothrow-new directly so we
+		  // Use non-throwing __get_temporary_buffer, so that we
 		  // don't need to handle exceptions from __alloc.allocate(n).
 		  auto __p = __detail::__get_temporary_buffer<value_type>(__n);
 		  if (__p == nullptr) [[unlikely]]

commit 9c02bad2b5e012e36bb0a440063569bc40b95f2e
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Aug 23 22:06:43 2024 +0100

    libstdc++: Hide std::tuple internals from Doxygen docs
    
    libstdc++-v3/ChangeLog:
    
            * include/std/tuple: Do not include implementation details in
            Doxygen documentation.
    
    (cherry picked from commit 5cfee9360c90da8171e9f6bb71568bdc4c296e6e)

diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple
index 3065058e184..85a380842b6 100644
--- a/libstdc++-v3/include/std/tuple
+++ b/libstdc++-v3/include/std/tuple
@@ -65,6 +65,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   template<typename... _Elements>
     class tuple;
 
+  /// @cond undocumented
   template<typename _Tp>
     struct __is_empty_non_tuple : is_empty<_Tp> { };
 
@@ -828,6 +829,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 	static constexpr bool __is_explicitly_constructible()
 	{ return false; }
     };
+  /// @endcond
 
   /// Primary class template, tuple
   template<typename... _Elements>

commit 3a8d05b61a9568d60ee922f899408555470eeff1
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Feb 12 17:29:59 2025 +0000

    libstdc++: Use init_priority attribute for tzdb globals [PR118811]
    
    When linking statically to libstdc++.a (or to libstdc++_nonshared.a in
    the RHEL devtoolset compiler) there's a static initialization order
    problem where user code might be constructed before the
    std::chrono::tzdb_list globals, and so might try to use them after
    they've already been destroyed.
    
    Use the init_priority attribute on those globals so that they are
    initialized early. Since r15-7511-g4e7f74225116e7 we can disable the
    warnings for using a reserved priority using a diagnostic pragma.
    
    However, for the backport to the release branch the warnings can only be
    suppressed by defining the objects in a system header.  Move them to a
    new file that uses '#pragma GCC system_header' and then include that in
    tzdb.cc.
    
    libstdc++-v3/ChangeLog:
    
            PR libstdc++/118811
            * src/c++20/tzdb.cc (tzdb_list::_Node): Move definitions of
            static data members to new header.
            * src/c++20/tzdb_globals.h: New header. Use init_priority
            attribute on static data members.
            * testsuite/std/time/tzdb_list/pr118811.cc: New test.
    
    (cherry picked from commit 99f57446e63b8ebeaeeae8dc48981cd5f1dfb831)

diff --git a/libstdc++-v3/src/c++20/tzdb.cc b/libstdc++-v3/src/c++20/tzdb.cc
index 7e8cce7ce8c..3fe426d2800 100644
--- a/libstdc++-v3/src/c++20/tzdb.cc
+++ b/libstdc++-v3/src/c++20/tzdb.cc
@@ -133,6 +133,8 @@ namespace std::chrono
     // of this type gives them access to the private members of time_zone
     // and tzdb, without needing them declared in the <chrono> header.
 
+    // The tzdb_list singleton. This doesn't contain the actual linked list,
+    // but it has member functions that give access to it.
     static tzdb_list _S_the_list;
 
 #if USE_ATOMIC_SHARED_PTR
@@ -177,17 +179,7 @@ namespace std::chrono
   // Implementation of the private constructor used for the singleton object.
   constexpr tzdb_list::tzdb_list(nullptr_t) { }
 
-  // The tzdb_list singleton. This doesn't contain the actual linked list,
-  // but it has member functions that give access to it.
-  constinit tzdb_list tzdb_list::_Node::_S_the_list(nullptr);
-
-  // Shared pointer to the first Node in the list.
-  constinit tzdb_list::_Node::head_ptr tzdb_list::_Node::_S_head_owner{nullptr};
-
-#if USE_ATOMIC_LIST_HEAD
-  // Lock-free access to the first Node in the list.
-  constinit atomic<tzdb_list::_Node*> tzdb_list::_Node::_S_head_cache{nullptr};
-#endif
+#include "tzdb_globals.h"
 
   // The data structures defined in this file (Rule, on_day, at_time etc.)
   // are used to represent the information parsed from the tzdata.zi file
diff --git a/libstdc++-v3/src/c++20/tzdb_globals.h b/libstdc++-v3/src/c++20/tzdb_globals.h
new file mode 100644
index 00000000000..94d54dad140
--- /dev/null
+++ b/libstdc++-v3/src/c++20/tzdb_globals.h
@@ -0,0 +1,14 @@
+// This is only in a header so we can use the system_header pragma,
+// to suppress the warning caused by using a reserved init_priority.
+#pragma GCC system_header
+
+[[gnu::init_priority(98)]]
+constinit tzdb_list tzdb_list::_Node::_S_the_list(nullptr);
+
+[[gnu::init_priority(98)]]
+constinit tzdb_list::_Node::head_ptr tzdb_list::_Node::_S_head_owner{nullptr};
+
+#if USE_ATOMIC_LIST_HEAD
+[[gnu::init_priority(98)]]
+constinit atomic<tzdb_list::_Node*> tzdb_list::_Node::_S_head_cache{nullptr};
+#endif
diff --git a/libstdc++-v3/testsuite/std/time/tzdb_list/pr118811.cc b/libstdc++-v3/testsuite/std/time/tzdb_list/pr118811.cc
new file mode 100644
index 00000000000..3968be3f0ec
--- /dev/null
+++ b/libstdc++-v3/testsuite/std/time/tzdb_list/pr118811.cc
@@ -0,0 +1,25 @@
+// { dg-do run { target c++20 } }
+// { dg-require-effective-target tzdb }
+// { dg-require-effective-target cxx11_abi }
+// { dg-require-static-libstdcxx }
+// { dg-additional-options "-static-libstdc++" }
+
+#include <chrono>
+
+struct Global
+{
+  Global()
+  {
+    (void) std::chrono::current_zone(); // initialize tzdb on first use
+  }
+
+  ~Global()
+  {
+    (void) std::chrono::current_zone(); // attempt to use it again on exit
+  }
+
+} global;
+
+int main()
+{
+}

commit 451791981b9630489b6935491720c6ecc97f6830
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Mar 1 13:10:14 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e392026598c..a607fb00164 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250228
+20250301
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index d2b80ef76be..ad22d189be0 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,177 @@
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2025-02-20  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/118811
+	* src/c++20/tzdb.cc (tzdb_list::_Node): Move definitions of
+	static data members to new header.
+	* src/c++20/tzdb_globals.h: New header. Use init_priority
+	attribute on static data members.
+	* testsuite/std/time/tzdb_list/pr118811.cc: New test.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-08-23  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/tuple: Do not include implementation details in
+	Doxygen documentation.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2025-02-27  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/stacktrace (_Impl::_M_allocate): Fix outdated
+	comment.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
+	Use __detail::__get_temporary_buffer.
+	(basic_stacktrace::_Impl::_M_deallocate): Use
+	__detail::__return_temporary_buffer.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/string_view (starts_with(basic_string_view)):
+	Compare lengths first and then call traits_type::compare
+	directly.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/104395
+	* include/bits/new_allocator.h: Disable extended alignment
+	support in C++98 mode.
+	* include/bits/stl_tempbuf.h: Likewise.
+	* include/ext/bitmap_allocator.h: Likewise.
+	* include/ext/malloc_allocator.h: Likewise.
+	* include/ext/mt_allocator.h: Likewise.
+	* include/ext/pool_allocator.h: Likewise.
+	* testsuite/ext/104395.cc: New test.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-19  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/stl_tempbuf.h (__get_temporary_buffer): Cast
+	argument to size_t to handle negative values and suppress
+	-Wsign-compare warning.
+	(_Temporary_buffer): Move diagnostic pragmas to new location of
+	call to std::get_temporary_buffer.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-03  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/105258
+	* include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer):
+	New function to do allocation for get_temporary_buffer, with
+	extended alignment support.
+	(__detail::__return_temporary_buffer): Support extended
+	alignment.
+	(get_temporary_buffer): Use __get_temporary_buffer.
+	(return_temporary_buffer): Support extended alignment. Add
+	deprecated attribute.
+	(_Temporary_buffer): Move allocation and deallocation into a
+	subobject and remove try-catch block in constructor.
+	(__uninitialized_construct_buf): Use argument deduction for
+	value type.
+	* testsuite/20_util/temporary_buffer.cc: Add dg-warning for new
+	deprecated warning.
+	* testsuite/25_algorithms/stable_sort/overaligned.cc: New test.
+
+2025-02-28  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
+
+	Backported from master:
+	2025-02-07  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
+
+	PR libstdc++/118160
+	PR libstdc++/100249
+	* include/bits/ranges_algo.h (__is_permutation_fn): Avoid a
+	dangling reference by storing the result of the iterator
+	dereference and the result of the projection in two distinct
+	variables, in order to lifetime-extend each one.
+	Forward the projected value to the predicate.
+	* testsuite/25_algorithms/is_permutation/constrained.cc: Add a
+	test with a range returning prvalues. Test it in a constexpr
+	context, in order to rely on the compiler to catch UB.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-06-21  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/stl_uninitialized.h (uninitialized_default_construct)
+	(uninitialized_default_construct_n, uninitialized_value_construct)
+	(uninitialized_value_construct_n): Qualify calls to prevent ADL.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-18  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/basic_string.h (__to_wstring_numeric): Add 'i'
+	and 'I' to mapping.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/117921
+	* testsuite/23_containers/set/modifiers/swap/adl.cc: Add
+	equality comparison for Allocator.
+	* testsuite/23_containers/unordered_set/modifiers/swap-2.cc:
+	Likewise.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-12-05  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/117921
+	* include/bits/hashtable_policy.h (_Hash_code_base::_M_swap):
+	Use ADL swap for Hash members.
+	(_Hashtable_base::_M_swap): Use ADL swap for _Equal members.
+	* include/bits/stl_tree.h (_Rb_tree::swap): Use ADL swap for
+	_Compare members.
+	* testsuite/23_containers/set/modifiers/swap/adl.cc: New test.
+	* testsuite/23_containers/unordered_set/modifiers/swap-2.cc: New
+	test.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2024-11-27  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/forward_list.h (forward_list::front): Add
+	non-empty assertions.
+	* include/bits/stl_list.h (list::front, list::back): Add
+	non-empty assertions.
+
+2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
+
+	Backported from master:
+	2025-01-16  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/118158
+	* src/c++17/fs_ops.cc (fs::equivalent): Remove error reporting
+	for is_other(s1) && is_other(s2) case, as per LWG 2937.
+	* testsuite/27_io/filesystem/operations/pr118158.cc: New test.
+
 2025-01-29  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:

commit faa15a3453be197059dafb826dc825edd135808b
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Mar 2 00:24:16 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index a607fb00164..08a14c75034 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250301
+20250302

commit 04b5c8b90cd95611d99684282cc321f06a0b49c2
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Fri Feb 28 19:22:36 2025 +0100

    d: Fix comparing uninitialized memory in dstruct.d [PR116961]
    
    Floating-point emulation in the D front-end is done via a type named
    `struct longdouble`, which in GDC is a small interface around the
    real_value type. Because the D code cannot include gcc/real.h directly,
    a big enough buffer is used for the data instead.
    
    On x86_64, this buffer is actually bigger than real_value itself, so
    when a new longdouble object is created with
    
        longdouble r;
        real_from_string3 (&r.rv (), buffer, mode);
        return r;
    
    there is uninitialized padding at the end of `r`.  This was never a
    problem when D was implemented in C++ (until GCC 12) as comparing two
    longdouble objects with `==' would be forwarded to the relevant
    operator== overload that extracted the underlying real_value.
    
    However when the front-end was translated to D, such conditions were
    instead rewritten into identity comparisons
    
        return exp.toReal() is CTFloat.zero
    
    The `is` operator gets lowered as a call to `memcmp() == 0', which is
    where the read of uninitialized memory occurs, as seen by valgrind.
    
    ==26778== Conditional jump or move depends on uninitialised value(s)
    ==26778==    at 0x911F41: dmd.dstruct._isZeroInit(dmd.expression.Expression) (dstruct.d:635)
    ==26778==    by 0x9123BE: StructDeclaration::finalizeSize() (dstruct.d:373)
    ==26778==    by 0x86747C: dmd.aggregate.AggregateDeclaration.determineSize(ref const(dmd.location.Loc)) (aggregate.d:226)
    [...]
    
    To avoid accidentally reading uninitialized data, explicitly initialize
    all `longdouble` variables with an empty constructor on C++ side of the
    implementation before initializing underlying real_value type it holds.
    
            PR d/116961
    
    gcc/d/ChangeLog:
    
            * d-codegen.cc (build_float_cst): Change new_value type from real_t to
            real_value.
            * d-ctfloat.cc (CTFloat::fabs): Default initialize the return value.
            (CTFloat::ldexp): Likewise.
            (CTFloat::parse): Likewise.
            * d-longdouble.cc (longdouble::add): Likewise.
            (longdouble::sub): Likewise.
            (longdouble::mul): Likewise.
            (longdouble::div): Likewise.
            (longdouble::mod): Likewise.
            (longdouble::neg): Likewise.
            * d-port.cc (Port::isFloat32LiteralOutOfRange): Likewise.
            (Port::isFloat64LiteralOutOfRange): Likewise.
    
    gcc/testsuite/ChangeLog:
    
            * gdc.dg/pr116961.d: New test.
    
    (cherry picked from commit f7bc17ebc9ef89700672ed7125da719f3558f3b7)

diff --git a/gcc/d/d-codegen.cc b/gcc/d/d-codegen.cc
index 2b3089b5f6d..3b616930fe0 100644
--- a/gcc/d/d-codegen.cc
+++ b/gcc/d/d-codegen.cc
@@ -246,15 +246,15 @@ build_integer_cst (dinteger_t value, tree type)
 tree
 build_float_cst (const real_t &value, Type *totype)
 {
-  real_t new_value;
+  real_value new_value;
   TypeBasic *tb = totype->isTypeBasic ();
 
   gcc_assert (tb != NULL);
 
   tree type_node = build_ctype (tb);
-  real_convert (&new_value.rv (), TYPE_MODE (type_node), &value.rv ());
+  real_convert (&new_value, TYPE_MODE (type_node), &value.rv ());
 
-  return build_real (type_node, new_value.rv ());
+  return build_real (type_node, new_value);
 }
 
 /* Returns the .length component from the D dynamic array EXP.  */
diff --git a/gcc/d/d-ctfloat.cc b/gcc/d/d-ctfloat.cc
index e77365ad048..2393c47bbbf 100644
--- a/gcc/d/d-ctfloat.cc
+++ b/gcc/d/d-ctfloat.cc
@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3.  If not see
 real_t
 CTFloat::fabs (real_t r)
 {
-  real_t x;
+  real_t x = {};
   real_arithmetic (&x.rv (), ABS_EXPR, &r.rv (), NULL);
   return x.normalize ();
 }
@@ -43,7 +43,7 @@ CTFloat::fabs (real_t r)
 real_t
 CTFloat::ldexp (real_t r, int exp)
 {
-  real_t x;
+  real_t x = {};
   real_ldexp (&x.rv (), &r.rv (), exp);
   return x.normalize ();
 }
@@ -87,7 +87,7 @@ CTFloat::isInfinity (real_t r)
 real_t
 CTFloat::parse (const char *buffer, bool &overflow)
 {
-  real_t r;
+  real_t r = {};
   real_from_string3 (&r.rv (), buffer, TYPE_MODE (long_double_type_node));
 
   /* Front-end checks overflow to see if the value is representable.  */
diff --git a/gcc/d/d-longdouble.cc b/gcc/d/d-longdouble.cc
index e4c8c5e6eb0..212689d1280 100644
--- a/gcc/d/d-longdouble.cc
+++ b/gcc/d/d-longdouble.cc
@@ -113,7 +113,7 @@ longdouble::to_bool (void) const
 longdouble
 longdouble::add (const longdouble &r) const
 {
-  longdouble x;
+  longdouble x = {};
   real_arithmetic (&x.rv (), PLUS_EXPR, &this->rv (), &r.rv ());
   return x.normalize ();
 }
@@ -121,7 +121,7 @@ longdouble::add (const longdouble &r) const
 longdouble
 longdouble::sub (const longdouble &r) const
 {
-  longdouble x;
+  longdouble x = {};
   real_arithmetic (&x.rv (), MINUS_EXPR, &this->rv (), &r.rv ());
   return x.normalize ();
 }
@@ -129,7 +129,7 @@ longdouble::sub (const longdouble &r) const
 longdouble
 longdouble::mul (const longdouble &r) const
 {
-  longdouble x;
+  longdouble x = {};
   real_arithmetic (&x.rv (), MULT_EXPR, &this->rv (), &r.rv ());
   return x.normalize ();
 }
@@ -137,7 +137,7 @@ longdouble::mul (const longdouble &r) const
 longdouble
 longdouble::div (const longdouble &r) const
 {
-  longdouble x;
+  longdouble x = {};
   real_arithmetic (&x.rv (), RDIV_EXPR, &this->rv (), &r.rv ());
   return x.normalize ();
 }
@@ -145,7 +145,7 @@ longdouble::div (const longdouble &r) const
 longdouble
 longdouble::mod (const longdouble &r) const
 {
-  longdouble x;
+  longdouble x = {};
   real_value q;
 
   if (r.rv ().cl == rvc_zero || REAL_VALUE_ISINF (this->rv ()))
@@ -172,7 +172,7 @@ longdouble::mod (const longdouble &r) const
 longdouble
 longdouble::neg (void) const
 {
-  longdouble x;
+  longdouble x = {};
   real_arithmetic (&x.rv (), NEGATE_EXPR, &this->rv (), NULL);
   return x.normalize ();
 }
diff --git a/gcc/d/d-port.cc b/gcc/d/d-port.cc
index f15f24d1023..616fa2e4e43 100644
--- a/gcc/d/d-port.cc
+++ b/gcc/d/d-port.cc
@@ -74,7 +74,7 @@ Port::strupr (char *s)
 bool
 Port::isFloat32LiteralOutOfRange (const char *buffer)
 {
-  real_t r;
+  real_t r = {};
 
   real_from_string3 (&r.rv (), buffer, TYPE_MODE (float_type_node));
 
@@ -87,7 +87,7 @@ Port::isFloat32LiteralOutOfRange (const char *buffer)
 bool
 Port::isFloat64LiteralOutOfRange (const char *buffer)
 {
-  real_t r;
+  real_t r = {};
 
   real_from_string3 (&r.rv (), buffer, TYPE_MODE (double_type_node));
 
diff --git a/gcc/testsuite/gdc.dg/pr116961.d b/gcc/testsuite/gdc.dg/pr116961.d
new file mode 100644
index 00000000000..fd51308636c
--- /dev/null
+++ b/gcc/testsuite/gdc.dg/pr116961.d
@@ -0,0 +1,7 @@
+// { dg-do compile }
+struct S116961
+{
+    float thing = 0.0;
+}
+
+static assert(__traits(isZeroInit, S116961) == true);

commit c1535f242f703d3142bef1ca7c31d1ee17633696
Author: Jeff Law <jlaw@ventanamicro.com>
Date:   Sun Dec 29 08:27:30 2024 -0700

    [PR target/116720] Fix test for valid mempair operands
    
    So this BZ is a case where we incorrectly indicated that the operand array was
    suitable for the t-head load/store pair instructions.
    
    In particular there's a test which checks alignment, but that happens *before*
    we know if the operands are going to be reversed.  So the routine reported the
    operands are suitable.
    
    At a later point the operands have been reversed into the proper order and we
    realize the alignment test should have failed, resulting in the unrecognized
    insn.
    
    This fixes the code by moving the reversal check earlier and actually swapping
    the local variables with the operands.  That in turn allows for simpler testing
    of alignments, ordering, etc.
    
    I've tested this on rv32 and rv64 in my tester.  I don't offhand know if the
    patch from Filip that's been causing headaches for the RISC-V port has been
    reverted/fixed.  So there's a nonzero chance the pre-commit CI tester will
    fail.  I'll keep an eye on it and act appropriately.
    
            PR target/116720
    gcc/
            * config/riscv/thead.cc (th_mempair_operands_p): Test for
            aligned memory after swapping operands.  Simplify test for
            first memory access as well.
    
    gcc/testsuite/
            * gcc.target/riscv/pr116720.c: New test.
    
    (cherry picked from commit 0b06abe027a78681d29a5e91daa74bf8dba39826)

diff --git a/gcc/config/riscv/thead.cc b/gcc/config/riscv/thead.cc
index 6f5edeb7e0a..0be5e4aceb8 100644
--- a/gcc/config/riscv/thead.cc
+++ b/gcc/config/riscv/thead.cc
@@ -285,19 +285,27 @@ th_mempair_operands_p (rtx operands[4], bool load_p,
   if (MEM_VOLATILE_P (mem_1) || MEM_VOLATILE_P (mem_2))
     return false;
 
-  /* If we have slow unaligned access, we only accept aligned memory.  */
-  if (riscv_slow_unaligned_access_p
-      && known_lt (MEM_ALIGN (mem_1), GET_MODE_SIZE (mode) * BITS_PER_UNIT))
-    return false;
 
   /* Check if the addresses are in the form of [base+offset].  */
   bool reversed = false;
   if (!th_mempair_check_consecutive_mems (mode, &mem_1, &mem_2, &reversed))
     return false;
 
+  /* If necessary, reverse the local copy of the operands to simplify	
+     testing of alignments and mempair operand.  */
+  if (reversed)
+    {
+      std::swap (mem_1, mem_2);
+      std::swap (reg_1, reg_2);
+    }
+
+  /* If we have slow unaligned access, we only accept aligned memory.  */
+  if (riscv_slow_unaligned_access_p
+      && known_lt (MEM_ALIGN (mem_1), GET_MODE_SIZE (mode) * BITS_PER_UNIT))
+    return false;
+
   /* The first memory accesses must be a mempair operand.  */
-  if ((!reversed && !th_mempair_operand_p (mem_1, mode))
-      || (reversed && !th_mempair_operand_p (mem_2, mode)))
+  if (!th_mempair_operand_p (mem_1, mode))
     return false;
 
   /* The operands must be of the same size.  */
diff --git a/gcc/testsuite/gcc.target/riscv/pr116720.c b/gcc/testsuite/gcc.target/riscv/pr116720.c
new file mode 100644
index 00000000000..0f795aba0bf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr116720.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -march=rv32ixtheadmempair -mabi=ilp32 -mno-strict-align" } */
+
+struct a {
+  signed : 22;
+};
+volatile short b;
+int *c;
+void d(int e, struct a) {
+  b;
+  c = &e;
+}

commit 19cf19828710c741525c600db877b49c883ba1ab
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Mar 3 00:24:30 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d10e5495f4e..df2d23d80c7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2025-03-02  Jeff Law  <jlaw@ventanamicro.com>
+
+	Backported from master:
+	2024-12-29  Jeff Law  <jlaw@ventanamicro.com>
+
+	PR target/116720
+	* config/riscv/thead.cc (th_mempair_operands_p): Test for
+	aligned memory after swapping operands.  Simplify test for
+	first memory access as well.
+
 2025-02-27  Haochen Jiang  <haochen.jiang@intel.com>
 
 	* config/i386/x86-tune.def
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 08a14c75034..b12838a3943 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250302
+20250303
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
index 833cb7c4339..25ac9c8c735 100644
--- a/gcc/d/ChangeLog
+++ b/gcc/d/ChangeLog
@@ -1,3 +1,23 @@
+2025-03-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	Backported from master:
+	2025-02-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	PR d/116961
+	* d-codegen.cc (build_float_cst): Change new_value type from real_t to
+	real_value.
+	* d-ctfloat.cc (CTFloat::fabs): Default initialize the return value.
+	(CTFloat::ldexp): Likewise.
+	(CTFloat::parse): Likewise.
+	* d-longdouble.cc (longdouble::add): Likewise.
+	(longdouble::sub): Likewise.
+	(longdouble::mul): Likewise.
+	(longdouble::div): Likewise.
+	(longdouble::mod): Likewise.
+	(longdouble::neg): Likewise.
+	* d-port.cc (Port::isFloat32LiteralOutOfRange): Likewise.
+	(Port::isFloat64LiteralOutOfRange): Likewise.
+
 2025-02-10  Arsen Arsenović  <arsen@aarsen.me>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 324ed7193bb..83ff5207074 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,19 @@
+2025-03-02  Jeff Law  <jlaw@ventanamicro.com>
+
+	Backported from master:
+	2024-12-29  Jeff Law  <jlaw@ventanamicro.com>
+
+	PR target/116720
+	* gcc.target/riscv/pr116720.c: New test.
+
+2025-03-02  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	Backported from master:
+	2025-02-28  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	PR d/116961
+	* gdc.dg/pr116961.d: New test.
+
 2025-02-27  Jason Merrill  <jason@redhat.com>
 
 	* g++.dg/cpp2a/concepts-pr67774.C: Change target to c++20_only.

commit 6ffbc711afbda9446df51fd2b542ecd61853283d
Author: Filip Kastl <fkastl@suse.cz>
Date:   Sun Mar 2 06:39:17 2025 +0100

    gimple: sccopy: Prune removed statements from SCCs [PR117919]
    
    While writing the sccopy pass I didn't realize that 'replace_uses_by ()' can
    remove portions of the CFG.  This happens when replacing arguments of some
    statement results in the removal of an EH edge.  Because of this sccopy can
    then work with GIMPLE statements that aren't part of the IR anymore.  In
    PR117919 this triggered an assertion within the pass which assumes that
    statements the pass works with are reachable.
    
    This patch tells the pass to notice when a statement isn't in the IR anymore
    and remove it from it's worklist.
    
            PR tree-optimization/117919
    
    gcc/ChangeLog:
    
            * gimple-ssa-sccopy.cc (scc_copy_prop::propagate): Prune
            statements that 'replace_uses_by ()' removed.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/pr117919.C: New test.
    
    Signed-off-by: Filip Kastl <fkastl@suse.cz>
    (cherry picked from commit 5349aa2accdf34a7bf9cabd1447878aaadfc0e87)

diff --git a/gcc/gimple-ssa-sccopy.cc b/gcc/gimple-ssa-sccopy.cc
index 138ee9a0ac4..d4d06f3b13e 100644
--- a/gcc/gimple-ssa-sccopy.cc
+++ b/gcc/gimple-ssa-sccopy.cc
@@ -550,6 +550,19 @@ sccopy_propagate ()
     {
       vec<gimple *> scc = worklist.pop ();
 
+      /* When we do 'replace_scc_by_value' it may happen that some EH edges
+	 get removed.  That means parts of CFG get removed.  Those may
+	 contain copy statements.  For that reason we prune SCCs here.  */
+      unsigned i;
+      for (i = 0; i < scc.length (); i++)
+	if (gimple_bb (scc[i]) == NULL)
+	  scc.unordered_remove (i);
+      if (scc.is_empty ())
+	{
+	  scc.release ();
+	  continue;
+	}
+
       auto_vec<gimple *> inner;
       hash_set<tree> outer_ops;
       tree last_outer_op = NULL_TREE;
diff --git a/gcc/testsuite/g++.dg/pr117919.C b/gcc/testsuite/g++.dg/pr117919.C
new file mode 100644
index 00000000000..fa2d9c9cd1e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pr117919.C
@@ -0,0 +1,52 @@
+/* PR tree-optimization/117919 */
+/* { dg-do compile } */
+/* { dg-options "-O1 -fno-tree-forwprop -fnon-call-exceptions --param=early-inlining-insns=192 -std=c++20" } */
+
+char _M_p, _M_construct___beg;
+struct _Alloc_hider {
+  _Alloc_hider(char);
+};
+long _M_string_length;
+void _M_destroy();
+void _S_copy_chars(char *, char *, char *) noexcept;
+char _M_local_data();
+struct Trans_NS___cxx11_basic_string {
+  _Alloc_hider _M_dataplus;
+  bool _M_is_local() {
+    if (_M_local_data())
+      if (_M_string_length)
+        return true;
+    return false;
+  }
+  void _M_dispose() {
+    if (!_M_is_local())
+      _M_destroy();
+  }
+  char *_M_construct___end;
+  Trans_NS___cxx11_basic_string(Trans_NS___cxx11_basic_string &)
+      : _M_dataplus(0) {
+    struct _Guard {
+      ~_Guard() { _M_guarded->_M_dispose(); }
+      Trans_NS___cxx11_basic_string *_M_guarded;
+    } __guard0;
+    _S_copy_chars(&_M_p, &_M_construct___beg, _M_construct___end);
+  }
+};
+namespace filesystem {
+struct path {
+  path();
+  Trans_NS___cxx11_basic_string _M_pathname;
+};
+} // namespace filesystem
+struct FileWriter {
+  filesystem::path path;
+  FileWriter() : path(path) {}
+};
+struct LanguageFileWriter : FileWriter {
+  LanguageFileWriter(filesystem::path) {}
+};
+int
+main() {
+  filesystem::path output_file;
+  LanguageFileWriter writer(output_file);
+}

commit dd09f67512a213eb677a3b50a090368fcf2a0b81
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Mar 4 00:22:48 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index df2d23d80c7..97001aa24ea 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2025-03-03  Filip Kastl  <fkastl@suse.cz>
+
+	Backported from master:
+	2025-03-02  Filip Kastl  <fkastl@suse.cz>
+
+	PR tree-optimization/117919
+	* gimple-ssa-sccopy.cc (scc_copy_prop::propagate): Prune
+	statements that 'replace_uses_by ()' removed.
+
 2025-03-02  Jeff Law  <jlaw@ventanamicro.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index b12838a3943..7b95daf8170 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250303
+20250304
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 83ff5207074..092493d72b1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2025-03-03  Filip Kastl  <fkastl@suse.cz>
+
+	Backported from master:
+	2025-03-02  Filip Kastl  <fkastl@suse.cz>
+
+	PR tree-optimization/117919
+	* g++.dg/pr117919.C: New test.
+
 2025-03-02  Jeff Law  <jlaw@ventanamicro.com>
 
 	Backported from master:

commit 455ea90d6e5ed2938fb7cc7008bf738dcbbc72d4
Author: Martin Jambor <mjambor@suse.cz>
Date:   Tue Mar 4 14:53:41 2025 +0100

    ipa-sra: Avoid clashes with ipa-cp when pulling accesses across calls (PR 118243)
    
    Among other things, IPA-SRA checks whether splitting out a bit of an
    aggregate or something passed by reference would lead into a clash
    with an already known IPA-CP constant a way which would cause problems
    later on.  Unfortunately the test is done only in
    adjust_parameter_descriptions and is missing when accesses are
    propagated from callees to callers, which leads to miscompilation
    reported as PR 118243 (where the callee is a function created by
    ipa-split).
    
    The matter is then further complicated by the fact that we consider
    complex numbers as scalars even though they can be modified piecemeal
    (IPA-CP can detect and propagate the pieces separately too) which then
    confuses the parameter manipulation machinery furter.
    
    This patch simply adds the missing check to avoid the IPA-SRA
    transform in these cases too, which should be suitable for backporting
    to all affected release branches.  It is a bit of a shame as in the PR
    testcase we do propagate both components of the complex number in
    question and the transformation phase could recover.  I have some
    prototype patches in this direction but that is something for (a)
    stage 1.
    
    gcc/ChangeLog:
    
    2025-02-10  Martin Jambor  <mjambor@suse.cz>
    
            PR ipa/118243
            * ipa-sra.cc (pull_accesses_from_callee): New parameters
            caller_ipcp_ts and param_idx.  Check that scalar pulled accesses would
            not clash with a known IPA-CP aggregate constant.
            (param_splitting_across_edge): Pass IPA-CP transformation summary and
            caller parameter index to pull_accesses_from_callee.
    
    gcc/testsuite/ChangeLog:
    
    2025-02-10  Martin Jambor  <mjambor@suse.cz>
    
            PR ipa/118243
            * g++.dg/ipa/pr118243.C: New test.
    
    (cherry picked from commit 0bffcd469e68d68ba9c724f515651deff8494b82)

diff --git a/gcc/ipa-sra.cc b/gcc/ipa-sra.cc
index 6d6da408925..25fbccd0348 100644
--- a/gcc/ipa-sra.cc
+++ b/gcc/ipa-sra.cc
@@ -3640,15 +3640,19 @@ enum acc_prop_kind {ACC_PROP_DONT, ACC_PROP_COPY, ACC_PROP_CERTAIN};
 
 /* Attempt to propagate all definite accesses from ARG_DESC to PARAM_DESC,
    (which belongs to CALLER) if they would not violate some constraint there.
-   If successful, return NULL, otherwise return the string reason for failure
-   (which can be written to the dump file).  DELTA_OFFSET is the known offset
-   of the actual argument withing the formal parameter (so of ARG_DESCS within
-   PARAM_DESCS), ARG_SIZE is the size of the actual argument or zero, if not
-   known. In case of success, set *CHANGE_P to true if propagation actually
-   changed anything.  */
+   CALLER_IPCP_TS describes the caller, PARAM_IDX is the index of the parameter
+   described by PARAM_DESC.  If successful, return NULL, otherwise return the
+   string reason for failure (which can be written to the dump file).
+   DELTA_OFFSET is the known offset of the actual argument withing the formal
+   parameter (so of ARG_DESCS within PARAM_DESCS), ARG_SIZE is the size of the
+   actual argument or zero, if not known. In case of success, set *CHANGE_P to
+   true if propagation actually changed anything.  */
 
 static const char *
-pull_accesses_from_callee (cgraph_node *caller, isra_param_desc *param_desc,
+pull_accesses_from_callee (cgraph_node *caller,
+			   ipcp_transformation *caller_ipcp_ts,
+			   int param_idx,
+			   isra_param_desc *param_desc,
 			   isra_param_desc *arg_desc,
 			   unsigned delta_offset, unsigned arg_size,
 			   bool *change_p)
@@ -3673,6 +3677,17 @@ pull_accesses_from_callee (cgraph_node *caller, isra_param_desc *param_desc,
 	continue;
 
       unsigned offset = argacc->unit_offset + delta_offset;
+
+      if (caller_ipcp_ts && !AGGREGATE_TYPE_P (argacc->type))
+	{
+	  ipa_argagg_value_list avl (caller_ipcp_ts);
+	  tree value = avl.get_value (param_idx, offset);
+	  if (value && ((tree_to_uhwi (TYPE_SIZE (TREE_TYPE (value)))
+			 / BITS_PER_UNIT)
+			!= argacc->unit_size))
+	    return " propagated access would conflict with an IPA-CP constant";
+	}
+
       /* Given that accesses are initially stored according to increasing
 	 offset and decreasing size in case of equal offsets, the following
 	 searches could be written more efficiently if we kept the ordering
@@ -3781,6 +3796,8 @@ param_splitting_across_edge (cgraph_edge *cs)
   cgraph_node *callee = cs->callee->function_symbol (&availability);
   isra_func_summary *from_ifs = func_sums->get (cs->caller);
   gcc_checking_assert (from_ifs && from_ifs->m_parameters);
+  ipcp_transformation *caller_ipcp_ts
+    = ipcp_get_transformation_summary (cs->caller);
 
   isra_call_summary *csum = call_sums->get (cs);
   gcc_checking_assert (csum);
@@ -3851,8 +3868,8 @@ param_splitting_across_edge (cgraph_edge *cs)
 	  else
 	    {
 	      const char *pull_failure
-		= pull_accesses_from_callee (cs->caller, param_desc, arg_desc,
-					     0, 0, &res);
+		= pull_accesses_from_callee (cs->caller, caller_ipcp_ts, idx,
+					     param_desc, arg_desc, 0, 0, &res);
 	      if (pull_failure)
 		{
 		  if (dump_file && (dump_flags & TDF_DETAILS))
@@ -3913,7 +3930,8 @@ param_splitting_across_edge (cgraph_edge *cs)
 	  else
 	    {
 	      const char *pull_failure
-		= pull_accesses_from_callee (cs->caller, param_desc, arg_desc,
+		= pull_accesses_from_callee (cs->caller, caller_ipcp_ts, idx,
+					     param_desc, arg_desc,
 					     ipf->unit_offset,
 					     ipf->unit_size, &res);
 	      if (pull_failure)
diff --git a/gcc/testsuite/g++.dg/ipa/pr118243.C b/gcc/testsuite/g++.dg/ipa/pr118243.C
new file mode 100644
index 00000000000..5efaa276da1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ipa/pr118243.C
@@ -0,0 +1,40 @@
+/* { dg-do run } */
+/* { dg-options "-O3 -std=gnu++11" } */
+
+using complex_t = int __complex__;
+
+struct A {
+    complex_t value;
+    A(double r) : value{0, r} {}
+};
+
+[[gnu::noipa]]
+void f(int a)
+{
+  if (a != 1)
+    __builtin_abort();
+}
+[[gnu::noipa]] void g(const char *, int x){}
+
+
+void test(const complex_t &c, const int &x) {
+    if (x < 0)
+        g("%d\n", x);
+    else
+    {
+        f( __imag__ c);
+    }
+}
+
+void f1() {
+    {
+        A a{1};
+        test(a.value, 123);
+    }
+}
+
+int main()
+{
+        f1();
+	return 0;
+}

commit b7b8307893ef0b6a2a0565d75af831cca4c9511a
Author: Uros Bizjak <ubizjak@gmail.com>
Date:   Wed Feb 12 11:19:57 2025 +0100

    combine: Discard REG_UNUSED note in i2 when register is also referenced in i3 [PR118739]
    
    The combine pass is trying to combine:
    
    Trying 16, 22, 21 -> 23:
       16: r104:QI=flags:CCNO>0
       22: {r120:QI=r104:QI^0x1;clobber flags:CC;}
          REG_UNUSED flags:CC
       21: r119:QI=flags:CCNO<=0
          REG_DEAD flags:CCNO
       23: {r110:QI=r119:QI|r120:QI;clobber flags:CC;}
          REG_DEAD r120:QI
          REG_DEAD r119:QI
          REG_UNUSED flags:CC
    
    and creates the following two insn sequence:
    
    modifying insn i2    22: r104:QI=flags:CCNO>0
          REG_DEAD flags:CC
    deferring rescan insn with uid = 22.
    modifying insn i3    23: r110:QI=flags:CCNO<=0
          REG_DEAD flags:CC
    deferring rescan insn with uid = 23.
    
    where the REG_DEAD note in i2 is not correct, because the flags
    register is still referenced in i3.  In try_combine() megafunction,
    we have this part:
    
    --cut here--
        /* Distribute all the LOG_LINKS and REG_NOTES from I1, I2, and I3.  */
        if (i3notes)
          distribute_notes (i3notes, i3, i3, newi2pat ? i2 : NULL,
                            elim_i2, elim_i1, elim_i0);
        if (i2notes)
          distribute_notes (i2notes, i2, i3, newi2pat ? i2 : NULL,
                            elim_i2, elim_i1, elim_i0);
        if (i1notes)
          distribute_notes (i1notes, i1, i3, newi2pat ? i2 : NULL,
                            elim_i2, local_elim_i1, local_elim_i0);
        if (i0notes)
          distribute_notes (i0notes, i0, i3, newi2pat ? i2 : NULL,
                            elim_i2, elim_i1, local_elim_i0);
        if (midnotes)
          distribute_notes (midnotes, NULL, i3, newi2pat ? i2 : NULL,
                            elim_i2, elim_i1, elim_i0);
    --cut here--
    
    where the compiler distributes REG_UNUSED note from i2:
    
       22: {r120:QI=r104:QI^0x1;clobber flags:CC;}
          REG_UNUSED flags:CC
    
    via distribute_notes() using the following:
    
    --cut here--
              /* Otherwise, if this register is used by I3, then this register
                 now dies here, so we must put a REG_DEAD note here unless there
                 is one already.  */
              else if (reg_referenced_p (XEXP (note, 0), PATTERN (i3))
                       && ! (REG_P (XEXP (note, 0))
                             ? find_regno_note (i3, REG_DEAD,
                                                REGNO (XEXP (note, 0)))
                             : find_reg_note (i3, REG_DEAD, XEXP (note, 0))))
                {
                  PUT_REG_NOTE_KIND (note, REG_DEAD);
                  place = i3;
                }
    --cut here--
    
    Flags register is used in I3, but there already is a REG_DEAD note in I3.
    The above condition doesn't trigger and continues in the "else" part where
    REG_DEAD note is put to I2.  The proposed solution corrects the above
    logic to trigger every time the register is referenced in I3, avoiding the
    "else" part.
    
            PR rtl-optimization/118739
    
    gcc/ChangeLog:
    
            * combine.cc (distribute_notes) <case REG_UNUSED>: Correct the
            logic when the register is used by I3.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/i386/pr118739.c: New test.
    
    (cherry picked from commit a92dc3fe31c95d56019b2fb95a58414bca06241f)

diff --git a/gcc/combine.cc b/gcc/combine.cc
index a40b295bd0d..8ce8e0696ff 100644
--- a/gcc/combine.cc
+++ b/gcc/combine.cc
@@ -14485,14 +14485,15 @@ distribute_notes (rtx notes, rtx_insn *from_insn, rtx_insn *i3, rtx_insn *i2,
 	  /* Otherwise, if this register is used by I3, then this register
 	     now dies here, so we must put a REG_DEAD note here unless there
 	     is one already.  */
-	  else if (reg_referenced_p (XEXP (note, 0), PATTERN (i3))
-		   && ! (REG_P (XEXP (note, 0))
-			 ? find_regno_note (i3, REG_DEAD,
-					    REGNO (XEXP (note, 0)))
-			 : find_reg_note (i3, REG_DEAD, XEXP (note, 0))))
+	  else if (reg_referenced_p (XEXP (note, 0), PATTERN (i3)))
 	    {
-	      PUT_REG_NOTE_KIND (note, REG_DEAD);
-	      place = i3;
+	      if (! (REG_P (XEXP (note, 0))
+		     ? find_regno_note (i3, REG_DEAD, REGNO (XEXP (note, 0)))
+		     : find_reg_note (i3, REG_DEAD, XEXP (note, 0))))
+		{
+		  PUT_REG_NOTE_KIND (note, REG_DEAD);
+		  place = i3;
+		}
 	    }
 
 	  /* A SET or CLOBBER of the REG_UNUSED reg has been removed,
diff --git a/gcc/testsuite/gcc.target/i386/pr118739.c b/gcc/testsuite/gcc.target/i386/pr118739.c
new file mode 100644
index 00000000000..89bed546363
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr118739.c
@@ -0,0 +1,50 @@
+/* PR rtl-optimization/118739 */
+/* { dg-do run } */
+/* { dg-options "-O3 -fno-tree-forwprop -fno-tree-vrp" } */
+
+volatile int a;
+int b, c, d = 1, e, f, g;
+
+int h (void)
+{
+  int i = 1;
+
+ j:
+  for (b = 1; b; b--)
+    {
+      asm ("#");
+
+      g = 0;
+
+      for (; g <= 1; g++)
+	{
+	  int k = f = 0;
+
+	  for (; f <= 1; f++)
+	    k = (1 == i) >= k || ((d = 0) >= a) + k;
+	}
+    }
+
+  for (; i < 3; i++)
+    {
+      if (!c)
+	return g;
+
+      if (e)
+	goto j;
+
+      asm ("#");
+    }
+
+  return 0;
+}
+
+int main()
+{
+  h();
+
+  if (d != 1)
+    __builtin_abort();
+
+  return 0;
+}

commit e79fc5a7bc9958c95fd09928188f5aa6c051d4c1
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Tue Mar 4 09:52:22 2025 +0100

    testsuite: Add tests for already fixed PR [PR119071]
    
    Uros' r15-7793 fixed this PR as well, I'm just committing tests
    from the PR so that it can be closed.
    
    2025-03-04  Jakub Jelinek  <jakub@redhat.com>
    
            PR rtl-optimization/119071
            * gcc.dg/pr119071.c: New test.
            * gcc.c-torture/execute/pr119071.c: New test.
    
    (cherry picked from commit ccf9db9a6fa4b5bc7aad5e9603e2ac71984142a0)

diff --git a/gcc/testsuite/gcc.c-torture/execute/pr119071.c b/gcc/testsuite/gcc.c-torture/execute/pr119071.c
new file mode 100644
index 00000000000..91f29cce3d5
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr119071.c
@@ -0,0 +1,15 @@
+/* PR rtl-optimization/119071 */
+
+int a, b;
+
+int
+main ()
+{
+  int c = 0;
+  if (a + 2)
+    c = 1;
+  int d = (1 + c - 2 + c == 1) - 1;
+  b = ((d + 1) << d) + d;
+  if (b != 1)
+    __builtin_abort ();
+}
diff --git a/gcc/testsuite/gcc.dg/pr119071.c b/gcc/testsuite/gcc.dg/pr119071.c
new file mode 100644
index 00000000000..ade1d288d2a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr119071.c
@@ -0,0 +1,45 @@
+/* PR rtl-optimization/119071 */
+/* { dg-do run } */
+/* { dg-options "-O2 -fgimple" } */
+
+int a, b;
+
+int __GIMPLE (ssa,startwith("expand"))
+foo (void)
+{
+  int _1;
+  int _2;
+  int _3;
+  int _5;
+  _Bool _7;
+  int _8;
+  int _9;
+  _Bool _14;
+  int _15;
+  int _16;
+  _Bool _17;
+  int _18;
+
+  __BB(2):
+  _1 = a;
+  _17 = _1 != _Literal (int) -2;
+  _18 = (int) _17;
+  _2 = _18 + _Literal (int) -1;
+  _3 = _2 + _18;
+  _14 = _3 != 1;
+  _15 = (int) _14;
+  _16 = -_15;
+  _7 = _3 == 1;
+  _9 = (int) _7;
+  _5 = _9 << _16;
+  _8 = _5 - _15;
+  b = _8;
+  return _8;
+}
+
+int
+main ()
+{
+  if (foo () != 1)
+    __builtin_abort ();
+}

commit a42ef0938f38b05919d8586883150819ee0ce757
Author: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Date:   Fri Nov 8 18:39:32 2024 +0100

    testsuite: arm: Use effective-target for pr68674.c test
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/arm/pr68674.c: Use effective-target arm_arch_v7a
            and arm_libc_fp_abi.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
    (cherry picked from commit 879fd9c822633ecf2c62471d1a7f9b9619e296b7)

diff --git a/gcc/testsuite/gcc.target/arm/pr68674.c b/gcc/testsuite/gcc.target/arm/pr68674.c
index 0b3237458fe..3fd562d0518 100644
--- a/gcc/testsuite/gcc.target/arm/pr68674.c
+++ b/gcc/testsuite/gcc.target/arm/pr68674.c
@@ -1,9 +1,10 @@
 /* PR target/68674 */
 /* { dg-do compile } */
-/* { dg-require-effective-target arm_neon_ok } */
-/* { dg-require-effective-target arm_fp_ok } */
+/* { dg-require-effective-target arm_arch_v7a_ok } */
+/* { dg-require-effective-target arm_libc_fp_abi_ok } */
 /* { dg-options "-O2" } */
-/* { dg-add-options arm_fp } */
+/* { dg-add-options arm_arch_v7a } */
+/* { dg-add-options arm_libc_fp_abi } */
 
 #pragma GCC target ("fpu=vfp")
 

commit 7fb1d7bff18d318de00021765e1e12b0d56e7ac1
Author: Richard Earnshaw <rearnsha@arm.com>
Date:   Mon Mar 3 15:30:58 2025 +0000

    arm: xfail gcc.target/arm/unsigned-extend-1.c for thumb1
    
    Partial backport of 2a502f9e4c5c6a8e908ef1b0b5c03fb2e4bd4390.
    
    gcc/testsuite:
            * gcc.target/arm/unsigned-extend-1.c: Expand check for any
            insn suggesting a zero-extend.  XFAIL for thumb1 code.
    
    Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>

diff --git a/gcc/testsuite/gcc.target/arm/unsigned-extend-1.c b/gcc/testsuite/gcc.target/arm/unsigned-extend-1.c
index 3b4ab048fb0..fa3d34400bf 100644
--- a/gcc/testsuite/gcc.target/arm/unsigned-extend-1.c
+++ b/gcc/testsuite/gcc.target/arm/unsigned-extend-1.c
@@ -5,5 +5,5 @@ unsigned char foo (unsigned char c)
 {
   return (c >= '0') && (c <= '9');
 }
-
-/* { dg-final { scan-assembler-not "uxtb" } } */
+/* We shouldn't need any zero-extension idioms here.  */
+/* { dg-final { scan-assembler-not "\t(uxtb|and|lsr|lsl)" { xfail arm_thumb1 } } } */

commit aa8793daa4ec110ae1e8fa240614651711b93fe4
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Tue Mar 4 17:49:30 2025 +0000

    Fix folding of BIT_NOT_EXPR for POLY_INT_CST [PR118976]
    
    There was an embarrassing typo in the folding of BIT_NOT_EXPR for
    POLY_INT_CSTs: it used - rather than ~ on the poly_int.  Not sure
    how that happened, but it might have been due to the way that
    ~x is implemented as -1 - x internally.
    
    gcc/
            PR tree-optimization/118976
            * fold-const.cc (const_unop): Use ~ rather than - for BIT_NOT_EXPR.
            * config/aarch64/aarch64.cc (aarch64_test_sve_folding): New function.
            (aarch64_run_selftests): Run it.
    
    (cherry picked from commit 78380fd7f743e23dfdf013d68a2f0347e1511550)

diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index 32adc2fa985..0495adc7dd3 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -30544,6 +30544,16 @@ aarch64_test_sysreg_encoding_clashes (void)
     }
 }
 
+/* Test SVE arithmetic folding.  */
+
+static void
+aarch64_test_sve_folding ()
+{
+  tree res = fold_unary (BIT_NOT_EXPR, ssizetype,
+			 ssize_int (poly_int64 (1, 1)));
+  ASSERT_TRUE (operand_equal_p (res, ssize_int (poly_int64 (-2, -1))));
+}
+
 /* Run all target-specific selftests.  */
 
 static void
@@ -30552,6 +30562,7 @@ aarch64_run_selftests (void)
   aarch64_test_loading_full_dump ();
   aarch64_test_fractional_cost ();
   aarch64_test_sysreg_encoding_clashes ();
+  aarch64_test_sve_folding ();
 }
 
 } // namespace selftest
diff --git a/gcc/fold-const.cc b/gcc/fold-const.cc
index 0d8942deedd..7427caace7c 100644
--- a/gcc/fold-const.cc
+++ b/gcc/fold-const.cc
@@ -1953,7 +1953,7 @@ const_unop (enum tree_code code, tree type, tree arg0)
       if (TREE_CODE (arg0) == INTEGER_CST)
 	return fold_not_const (arg0, type);
       else if (POLY_INT_CST_P (arg0))
-	return wide_int_to_tree (type, -poly_int_cst_value (arg0));
+	return wide_int_to_tree (type, ~poly_int_cst_value (arg0));
       /* Perform BIT_NOT_EXPR on each element individually.  */
       else if (TREE_CODE (arg0) == VECTOR_CST)
 	{

commit df9c10d18b5b1323efb5f7823c31a259859d87a4
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Tue Mar 4 17:49:31 2025 +0000

    aarch64: Add missing simd requirements for INS [PR118531]
    
    In g:b096a6ebe9d9f9fed4c105f6555f724eb32af95c I'd forgotten
    to gate some uses of INS on TARGET_SIMD.
    
    gcc/
            PR target/118531
            * config/aarch64/aarch64.md (*insv_reg<mode>_<SUBDI_BITS>)
            (*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>)
            (*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>): Add missing
            simd requirements.
    
    gcc/testsuite/
            * gcc.target/aarch64/ins_bitfield_1a.c: New test.
            * gcc.target/aarch64/ins_bitfield_3a.c: Likewise.
            * gcc.target/aarch64/ins_bitfield_5a.c: Likewise.
    
    (cherry picked from commit 1b8820421488d220a95f651b51175d618063c48c)

diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index dbde066f747..a08523a2b07 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -6130,7 +6130,8 @@
       return "ins\t%0.<bits_etype>[%1], %2.<bits_etype>[0]";
     return "ins\t%0.<bits_etype>[%1], %w2";
   }
-  [(set_attr "type" "bfm,neon_ins_q,neon_ins_q")]
+  [(set_attr "type" "bfm,neon_ins_q,neon_ins_q")
+   (set_attr "arch" "*,simd,simd")]
 )
 
 (define_insn "*insv_reg<mode>"
@@ -6163,7 +6164,8 @@
     operands[2] = lowpart_subreg (<GPI:MODE>mode, operands[2],
 				  <ALLX:MODE>mode);
   }
-  [(set_attr "type" "bfm,neon_ins_q,neon_ins_q")]
+  [(set_attr "type" "bfm,neon_ins_q,neon_ins_q")
+   (set_attr "arch" "*,simd,simd")]
 )
 
 (define_insn "*aarch64_bfi<GPI:mode><ALLX:mode>4"
@@ -6195,7 +6197,8 @@
   {
     operands[2] = lowpart_subreg (DImode, operands[3], <ALLX:MODE>mode);
   }
-  [(set_attr "type" "bfm,neon_ins_q,neon_ins_q")]
+  [(set_attr "type" "bfm,neon_ins_q,neon_ins_q")
+   (set_attr "arch" "*,simd,simd")]
 )
 
 ;;  Match a bfi instruction where the shift of OP3 means that we are
diff --git a/gcc/testsuite/gcc.target/aarch64/ins_bitfield_1a.c b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_1a.c
new file mode 100644
index 00000000000..028d4aa1e89
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_1a.c
@@ -0,0 +1,8 @@
+/* { dg-do assemble } */
+/* { dg-options "-O2 --save-temps" } */
+
+#pragma GCC target "+nosimd"
+
+#include "ins_bitfield_1.c"
+
+/* { dg-final { scan-assembler-not {\tins\t} } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/ins_bitfield_3a.c b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_3a.c
new file mode 100644
index 00000000000..1c153667a8d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_3a.c
@@ -0,0 +1,8 @@
+/* { dg-do assemble } */
+/* { dg-options "-O2 --save-temps" } */
+
+#pragma GCC target "+nosimd"
+
+#include "ins_bitfield_3.c"
+
+/* { dg-final { scan-assembler-not {\tins\t} } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/ins_bitfield_5a.c b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_5a.c
new file mode 100644
index 00000000000..f6bdde97f98
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/ins_bitfield_5a.c
@@ -0,0 +1,8 @@
+/* { dg-do assemble } */
+/* { dg-options "-O2 --save-temps" } */
+
+#pragma GCC target "+nosimd"
+
+#include "ins_bitfield_5.c"
+
+/* { dg-final { scan-assembler-not {\tins\t} } } */

commit 2ed37595a3c5cf246e8eeea337cf3071c4bb3a59
Author: Patrick Palka <ppalka@redhat.com>
Date:   Fri Feb 28 10:56:49 2025 -0500

    c++: generic lambda, implicit 'this' capture, xobj memfn [PR119038]
    
    When a generic lambda calls an overload set containing an iobj member
    function we speculatively capture 'this'.  We need to do the same
    for an xobj member function.
    
            PR c++/119038
    
    gcc/cp/ChangeLog:
    
            * lambda.cc (maybe_generic_this_capture): Consider xobj
            member functions as well, not just iobj.  Update function
            comment.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp23/explicit-obj-lambda15.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 1a150f1f688486b12cd975bdc4cd1bd52a7e0110)

diff --git a/gcc/cp/lambda.cc b/gcc/cp/lambda.cc
index 5b5e31c141e..3f69b1fb126 100644
--- a/gcc/cp/lambda.cc
+++ b/gcc/cp/lambda.cc
@@ -950,9 +950,8 @@ maybe_resolve_dummy (tree object, bool add_capture_p)
 /* When parsing a generic lambda containing an argument-dependent
    member function call we defer overload resolution to instantiation
    time.  But we have to know now whether to capture this or not.
-   Do that if FNS contains any non-static fns.
-   The std doesn't anticipate this case, but I expect this to be the
-   outcome of discussion.  */
+   Do that if FNS contains any non-static fns as per
+   [expr.prim.lambda.capture]/7.1.  */
 
 void
 maybe_generic_this_capture (tree object, tree fns)
@@ -971,7 +970,7 @@ maybe_generic_this_capture (tree object, tree fns)
 	for (lkp_iterator iter (fns); iter; ++iter)
 	  if (((!id_expr && TREE_CODE (*iter) != USING_DECL)
 	       || TREE_CODE (*iter) == TEMPLATE_DECL)
-	      && DECL_IOBJ_MEMBER_FUNCTION_P (*iter))
+	      && DECL_OBJECT_MEMBER_FUNCTION_P (*iter))
 	    {
 	      /* Found a non-static member.  Capture this.  */
 	      lambda_expr_this_capture (lam, /*maybe*/-1);
diff --git a/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda15.C b/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda15.C
new file mode 100644
index 00000000000..369f0895ed1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda15.C
@@ -0,0 +1,11 @@
+// PR c++/119038
+// { dg-do compile { target c++23 } }
+
+struct A {
+  void f() {
+    [&](auto x) { g(x); h(x); }(0);
+  }
+
+  void g(this A&, int);
+  void h(this auto&, auto);
+};

commit e834308d70cabd4213e38f0b2a6ec5cdb31e9807
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Mar 5 00:25:17 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 97001aa24ea..e377a848153 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,45 @@
+2025-03-04  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR target/118531
+	* config/aarch64/aarch64.md (*insv_reg<mode>_<SUBDI_BITS>)
+	(*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>)
+	(*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>): Add missing
+	simd requirements.
+
+2025-03-04  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2025-03-04  Richard Sandiford  <richard.sandiford@arm.com>
+
+	PR tree-optimization/118976
+	* fold-const.cc (const_unop): Use ~ rather than - for BIT_NOT_EXPR.
+	* config/aarch64/aarch64.cc (aarch64_test_sve_folding): New function.
+	(aarch64_run_selftests): Run it.
+
+2025-03-04  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2025-03-03  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR rtl-optimization/118739
+	* combine.cc (distribute_notes) <case REG_UNUSED>: Correct the
+	logic when the register is used by I3.
+
+2025-03-04  Martin Jambor  <mjambor@suse.cz>
+
+	Backported from master:
+	2025-02-28  Martin Jambor  <mjambor@suse.cz>
+
+	PR ipa/118243
+	* ipa-sra.cc (pull_accesses_from_callee): New parameters
+	caller_ipcp_ts and param_idx.  Check that scalar pulled accesses would
+	not clash with a known IPA-CP aggregate constant.
+	(param_splitting_across_edge): Pass IPA-CP transformation summary and
+	caller parameter index to pull_accesses_from_callee.
+
 2025-03-03  Filip Kastl  <fkastl@suse.cz>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 7b95daf8170..0cf6d8a9f9a 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250304
+20250305
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 6f436124bff..a38494f9265 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,13 @@
+2025-03-04  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-02-28  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/119038
+	* lambda.cc (maybe_generic_this_capture): Consider xobj
+	member functions as well, not just iobj.  Update function
+	comment.
+
 2025-02-27  Jason Merrill  <jason@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 092493d72b1..993f7156916 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,58 @@
+2025-03-04  Patrick Palka  <ppalka@redhat.com>
+
+	Backported from master:
+	2025-02-28  Patrick Palka  <ppalka@redhat.com>
+
+	PR c++/119038
+	* g++.dg/cpp23/explicit-obj-lambda15.C: New test.
+
+2025-03-04  Richard Sandiford  <richard.sandiford@arm.com>
+
+	Backported from master:
+	2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* gcc.target/aarch64/ins_bitfield_1a.c: New test.
+	* gcc.target/aarch64/ins_bitfield_3a.c: Likewise.
+	* gcc.target/aarch64/ins_bitfield_5a.c: Likewise.
+
+2025-03-04  Richard Earnshaw  <rearnsha@arm.com>
+
+	* gcc.target/arm/unsigned-extend-1.c: Expand check for any
+	insn suggesting a zero-extend.  XFAIL for thumb1 code.
+
+2025-03-04  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	Backported from master:
+	2025-03-04  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+
+	* gcc.target/arm/pr68674.c: Use effective-target arm_arch_v7a
+	and arm_libc_fp_abi.
+
+2025-03-04  Jakub Jelinek  <jakub@redhat.com>
+
+	Backported from master:
+	2025-03-04  Jakub Jelinek  <jakub@redhat.com>
+
+	PR rtl-optimization/119071
+	* gcc.dg/pr119071.c: New test.
+	* gcc.c-torture/execute/pr119071.c: New test.
+
+2025-03-04  Uros Bizjak  <ubizjak@gmail.com>
+
+	Backported from master:
+	2025-03-03  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR rtl-optimization/118739
+	* gcc.target/i386/pr118739.c: New test.
+
+2025-03-04  Martin Jambor  <mjambor@suse.cz>
+
+	Backported from master:
+	2025-02-28  Martin Jambor  <mjambor@suse.cz>
+
+	PR ipa/118243
+	* g++.dg/ipa/pr118243.C: New test.
+
 2025-03-03  Filip Kastl  <fkastl@suse.cz>
 
 	Backported from master:

commit 750d691077d96879068312dd4b25a51c1d6958c5
Author: Tomasz Kamiński <tkaminsk@redhat.com>
Date:   Wed Mar 5 11:11:55 2025 +0100

    libstdc++: Fix subrange conversion to pair-like [PR119121]
    
    Fix regression introduced by r14-8710-g65b4cba9d6a9ff
    
            PR libstdc++/119121
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/ranges_util.h (__detail::__pair_like_convertible_from):
            Use `_Tp` in `is_reference_v` check
            * testsuite/std/ranges/subrange/tuple_like.cc: New tests for
            pair-like conversion
    
    Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
    (cherry picked from commit 95b2f8d8fb3131165b1b38645dacf10a5dd2bc15)

diff --git a/libstdc++-v3/include/bits/ranges_util.h b/libstdc++-v3/include/bits/ranges_util.h
index aba5b6a88c0..c2a87a23341 100644
--- a/libstdc++-v3/include/bits/ranges_util.h
+++ b/libstdc++-v3/include/bits/ranges_util.h
@@ -243,7 +243,7 @@ namespace ranges
 
     template<typename _Tp, typename _Up, typename _Vp>
       concept __pair_like_convertible_from
-	= !range<_Tp> && !is_reference_v<_Vp> && __pair_like<_Tp>
+	= !range<_Tp> && !is_reference_v<_Tp> && __pair_like<_Tp>
 	&& constructible_from<_Tp, _Up, _Vp>
 	&& __convertible_to_non_slicing<_Up, tuple_element_t<0, _Tp>>
 	&& convertible_to<_Vp, tuple_element_t<1, _Tp>>;
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc b/libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
index a02475b1157..71f9535106d 100644
--- a/libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
@@ -18,6 +18,8 @@
 // { dg-do compile { target c++20 } }
 
 #include <ranges>
+#include <tuple>
+#include <utility>
 
 using S1 = std::ranges::subrange<int*>;
 using S2 = std::ranges::subrange<long*, void*>;
@@ -49,3 +51,30 @@ static_assert( std::same_as<decltype(std::get<1>(s2)), void*> );
 const S2 c2;
 static_assert( std::same_as<decltype(std::get<0>(c2)), long*> );
 static_assert( std::same_as<decltype(std::get<1>(c2)), void*> );
+
+std::pair<int*, int*> p1 = s1;
+std::pair<long*, void*> p2 = s2;
+std::tuple<int*, int*> t1 = s1;
+std::tuple<long*, void*> t2 = s2;
+
+std::pair<int*, int*> const& p3 = s1;
+std::tuple<int*, int*>&& t3 = s1;
+
+std::pair<int const*, int const*> p4 = s1;
+std::tuple<int const*, void*> t4 = s1;
+
+static_assert( !std::convertible_to<std::ranges::subrange<int const*>, std::pair<int*, int*>> );
+static_assert( !std::convertible_to<std::ranges::subrange<int const*>, std::tuple<int*, int*>> );
+
+static_assert( !std::convertible_to<std::ranges::subrange<int*>, std::pair<long*, long*>> );
+static_assert( !std::convertible_to<std::ranges::subrange<int*>, std::tuple<int, int>> );
+
+struct B {};
+struct D : B {};
+
+std::ranges::subrange<D*> sd;
+std::pair<D*, D*> p5 = sd;
+std::tuple<D const*, D const*> t5 = sd;
+
+static_assert( !std::convertible_to<std::ranges::subrange<D*>, std::pair<B*, B*>> );
+static_assert( !std::convertible_to<std::ranges::subrange<B*>, std::tuple<D*, D*>> );

commit 6e17b356a78635e66d1a895b86fbcc0bde0589bb
Author: Hannes Braun <hannes@hannesbraun.net>
Date:   Thu Feb 20 15:09:41 2025 +0100

    arm: Fix signedness of vld1q intrinsic parms [PR118942]
    
    vld1q_s8_x3, vld1q_s16_x3, vld1q_s8_x4 and vld1q_s16_x4 were expecting
    pointers to unsigned integers. These parameters should be pointers to
    signed integers.
    
    gcc/ChangeLog:
            PR target/118942
            * config/arm/arm_neon.h (vld1q_s8_x3): Use int8_t instead of
            uint16_t.
            (vld1q_s16_x3): Use int16_t instead of uint16_t.
            (vld1q_s8_x4): Likewise.
            (vld1q_s16_x4): Likewise.
    
    gcc/testsuite/ChangeLog:
            PR target/118942
            * gcc.target/arm/simd/vld1q_base_xN_1.c: Add -Wpointer-sign.
    
    Signed-off-by: Hannes Braun <hannes@hannesbraun.net>
    (cherry picked from commit 4d0a333ef13e2da140cd44c4941b20f48a80dc0f)

diff --git a/gcc/config/arm/arm_neon.h b/gcc/config/arm/arm_neon.h
index 8e70c717731..11d2dc06877 100644
--- a/gcc/config/arm/arm_neon.h
+++ b/gcc/config/arm/arm_neon.h
@@ -10854,7 +10854,7 @@ vld1q_s64_x2 (const int64_t * __a)
 
 __extension__ extern __inline int8x16x3_t
 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_s8_x3 (const uint8_t * __a)
+vld1q_s8_x3 (const int8_t * __a)
 {
   union { int8x16x3_t __i; __builtin_neon_ci __o; } __rv;
   __rv.__o = __builtin_neon_vld1q_x3v16qi ((const __builtin_neon_qi *) __a);
@@ -10863,7 +10863,7 @@ vld1q_s8_x3 (const uint8_t * __a)
 
 __extension__ extern __inline int16x8x3_t
 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_s16_x3 (const uint16_t * __a)
+vld1q_s16_x3 (const int16_t * __a)
 {
   union { int16x8x3_t __i; __builtin_neon_ci __o; } __rv;
   __rv.__o = __builtin_neon_vld1q_x3v8hi ((const __builtin_neon_hi *) __a);
@@ -10890,7 +10890,7 @@ vld1q_s64_x3 (const int64_t * __a)
 
 __extension__ extern __inline int8x16x4_t
 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_s8_x4 (const uint8_t * __a)
+vld1q_s8_x4 (const int8_t * __a)
 {
   union { int8x16x4_t __i; __builtin_neon_xi __o; } __rv;
   __rv.__o = __builtin_neon_vld1q_x4v16qi ((const __builtin_neon_qi *) __a);
@@ -10899,7 +10899,7 @@ vld1q_s8_x4 (const uint8_t * __a)
 
 __extension__ extern __inline int16x8x4_t
 __attribute__  ((__always_inline__, __gnu_inline__, __artificial__))
-vld1q_s16_x4 (const uint16_t * __a)
+vld1q_s16_x4 (const int16_t * __a)
 {
   union { int16x8x4_t __i; __builtin_neon_xi __o; } __rv;
   __rv.__o = __builtin_neon_vld1q_x4v8hi ((const __builtin_neon_hi *) __a);
diff --git a/gcc/testsuite/gcc.target/arm/simd/vld1q_base_xN_1.c b/gcc/testsuite/gcc.target/arm/simd/vld1q_base_xN_1.c
index 01b29b60084..c73afe2b723 100644
--- a/gcc/testsuite/gcc.target/arm/simd/vld1q_base_xN_1.c
+++ b/gcc/testsuite/gcc.target/arm/simd/vld1q_base_xN_1.c
@@ -1,6 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-require-effective-target arm_neon_ok } */
-/* { dg-options "-save-temps -O2" } */
+/* { dg-options "-save-temps -O2 -Wpointer-sign" } */
 /* { dg-add-options arm_neon } */
 
 #include "arm_neon.h"

commit 1a4f1e5f91a69434f2ec0d95c91bad2c928dcff3
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Wed Mar 5 12:18:20 2025 +0000

    aarch64: Check for invalid use arrays in ldp_fusion [PR118320]
    
    As Andrew says in the bugzilla comments, this PR is about a case where
    we tried to fuse two stores of x0, one in which x0 was defined and one
    in which it was undefined.  merge_access_arrays failed on the conflict,
    but the failure wasn't caught.
    
    Normally the hazard detection code would fail if the instructions
    had incompatible uses.  However, an undefined use doesn't impose
    many restrictions on movements.  I think this is likely to be the
    only case where hazard detection isn't enough.
    
    As Andrew notes in bugzilla, it might be possible to allow uses
    of defined and undefined values to be merged to the defined value.
    But that sounds dangerous in the general case, as an rtl-ssa-level
    decision.  We might run the risk of turning conditional UB into
    unconditional UB.  And LLVM proves that the definition of "undef"
    isn't simple.
    
    This is a backport of
    r15-7282-gf559ac896942ffe0e2315d0a4d8b8b517a16d607.
    
    gcc/
            PR rtl-optimization/118320
            * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
            Commonize the merge of input_uses and return early if it
            fails.
    
    gcc/testsuite/
            PR rtl-optimization/118320
            * g++.dg/torture/pr118320.C: New test.
    
    Co-authored-by: Alex Coplan <alex.coplan@arm.com>

diff --git a/gcc/config/aarch64/aarch64-ldp-fusion.cc b/gcc/config/aarch64/aarch64-ldp-fusion.cc
index f32d30d54c5..1791ca5563c 100644
--- a/gcc/config/aarch64/aarch64-ldp-fusion.cc
+++ b/gcc/config/aarch64/aarch64-ldp-fusion.cc
@@ -1784,6 +1784,24 @@ ldp_bb_info::fuse_pair (bool load_p,
       input_uses[i] = remove_note_accesses (attempt, input_uses[i]);
     }
 
+  // Get the uses that the pair instruction would have, and punt if
+  // the unpaired instructions use different definitions of the same
+  // register.  That would normally be caught as a side-effect of
+  // hazard detection below, but this check also deals with cases
+  // in which one use is undefined and the other isn't.
+  auto new_uses = merge_access_arrays (attempt,
+				       drop_memory_access (input_uses[0]),
+				       drop_memory_access (input_uses[1]));
+  if (!new_uses.is_valid ())
+    {
+      if (dump_file)
+	fprintf (dump_file,
+		 "  rejecting pair: i%d and i%d use different definiitions of"
+		 " the same register\n",
+		 insns[0]->uid (), insns[1]->uid ());
+      return false;
+    }
+
   // Edge case: if the first insn is a writeback load and the
   // second insn is a non-writeback load which transfers into the base
   // register, then we should drop the writeback altogether as the
@@ -1911,10 +1929,7 @@ ldp_bb_info::fuse_pair (bool load_p,
 						   input_defs[1]);
       gcc_assert (pair_change->new_defs.is_valid ());
 
-      pair_change->new_uses
-	= merge_access_arrays (attempt,
-			       drop_memory_access (input_uses[0]),
-			       drop_memory_access (input_uses[1]));
+      pair_change->new_uses = new_uses;
       gcc_assert (pair_change->new_uses.is_valid ());
       set_pair_pat (pair_change);
     }
@@ -1936,9 +1951,7 @@ ldp_bb_info::fuse_pair (bool load_p,
 	    case Action::CHANGE:
 	    {
 	      set_pair_pat (change);
-	      change->new_uses = merge_access_arrays (attempt,
-						      input_uses[0],
-						      input_uses[1]);
+	      change->new_uses = new_uses;
 	      auto d1 = drop_memory_access (input_defs[0]);
 	      auto d2 = drop_memory_access (input_defs[1]);
 	      change->new_defs = merge_access_arrays (attempt, d1, d2);
@@ -1970,9 +1983,7 @@ ldp_bb_info::fuse_pair (bool load_p,
 	      auto new_insn = crtl->ssa->create_insn (attempt, INSN, pair_pat);
 	      change = make_change (new_insn);
 	      change->move_range = move_range;
-	      change->new_uses = merge_access_arrays (attempt,
-						      input_uses[0],
-						      input_uses[1]);
+	      change->new_uses = new_uses;
 	      gcc_assert (change->new_uses.is_valid ());
 
 	      auto d1 = drop_memory_access (input_defs[0]);
diff --git a/gcc/testsuite/g++.dg/torture/pr118320.C b/gcc/testsuite/g++.dg/torture/pr118320.C
new file mode 100644
index 00000000000..228d79860b5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr118320.C
@@ -0,0 +1,15 @@
+// { dg-additional-options "-fno-tree-sra" } */
+
+struct T{
+  long f[2];
+};
+void f1(int);
+void g(T&);
+void f1()
+{
+  T a;
+  a.~T(); // To force the clobber
+  a.f[1] = 1;
+  T b = a;
+  g(b);
+}

commit 8c635072ae68f60f14333cf113e75fa25a55becf
Author: Marek Polacek <polacek@redhat.com>
Date:   Tue Mar 4 13:07:27 2025 -0500

    c++: disable -Wnonnull in unevaluated context [PR115580]
    
    This PR complains that we issue a -Wnonnull even in a decltype.
    This fix disables even -Wformat and -Wrestrict.  I think that's fine.
    
            PR c++/115580
    
    gcc/c-family/ChangeLog:
    
            * c-common.cc (check_function_arguments): Return early if
            c_inhibit_evaluation_warnings.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/warn/Wnonnull16.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 459c8a55567b06522e4b9cc0a4ef62f9d3024526)

diff --git a/gcc/c-family/c-common.cc b/gcc/c-family/c-common.cc
index d5b28efd6db..0d05694b6d0 100644
--- a/gcc/c-family/c-common.cc
+++ b/gcc/c-family/c-common.cc
@@ -6160,6 +6160,9 @@ check_function_arguments (location_t loc, const_tree fndecl, const_tree fntype,
 {
   bool warned_p = false;
 
+  if (c_inhibit_evaluation_warnings)
+    return warned_p;
+
   /* Check for null being passed in a pointer argument that must be
      non-null.  In C++, this includes the this pointer.  We also need
      to do this if format checking is enabled.  */
diff --git a/gcc/testsuite/g++.dg/warn/Wnonnull16.C b/gcc/testsuite/g++.dg/warn/Wnonnull16.C
new file mode 100644
index 00000000000..8740f351ac7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wnonnull16.C
@@ -0,0 +1,16 @@
+// PR c++/115580
+// { dg-do compile { target c++11 } }
+
+class WithMember {
+public:
+  int foo();
+};
+
+decltype(((WithMember*)nullptr)->foo()) footype; // { dg-bogus "pointer is null" }
+
+int f(void*) __attribute__((nonnull));
+
+void g()
+{
+  [[maybe_unused]] decltype(f(nullptr)) b; // { dg-bogus "non-null" }
+}

commit 844f5f1f0e0b7ba4f53c75f7129b9a132d17b81e
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Mar 6 00:24:11 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e377a848153..b9e3d69d3d1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,23 @@
+2025-03-05  Richard Sandiford  <richard.sandiford@arm.com>
+	    Alex Coplan  <alex.coplan@arm.com>
+
+	PR rtl-optimization/118320
+	* config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
+	Commonize the merge of input_uses and return early if it
+	fails.
+
+2025-03-05  Hannes Braun  <hannes@hannesbraun.net>
+
+	Backported from master:
+	2025-03-05  Hannes Braun  <hannes@hannesbraun.net>
+
+	PR target/118942
+	* config/arm/arm_neon.h (vld1q_s8_x3): Use int8_t instead of
+	uint16_t.
+	(vld1q_s16_x3): Use int16_t instead of uint16_t.
+	(vld1q_s8_x4): Likewise.
+	(vld1q_s16_x4): Likewise.
+
 2025-03-04  Richard Sandiford  <richard.sandiford@arm.com>
 
 	Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 0cf6d8a9f9a..31df6d356f3 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250305
+20250306
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 21c8d9b9308..8f94beee4bf 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,12 @@
+2025-03-05  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-03-05  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/115580
+	* c-common.cc (check_function_arguments): Return early if
+	c_inhibit_evaluation_warnings.
+
 2025-01-09  Jakub Jelinek  <jakub@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 993f7156916..1f194cd4469 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,25 @@
+2025-03-05  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-03-05  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/115580
+	* g++.dg/warn/Wnonnull16.C: New test.
+
+2025-03-05  Richard Sandiford  <richard.sandiford@arm.com>
+	    Alex Coplan  <alex.coplan@arm.com>
+
+	PR rtl-optimization/118320
+	* g++.dg/torture/pr118320.C: New test.
+
+2025-03-05  Hannes Braun  <hannes@hannesbraun.net>
+
+	Backported from master:
+	2025-03-05  Hannes Braun  <hannes@hannesbraun.net>
+
+	PR target/118942
+	* gcc.target/arm/simd/vld1q_base_xN_1.c: Add -Wpointer-sign.
+
 2025-03-04  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ad22d189be0..90d665fc3f8 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,14 @@
+2025-03-05  Tomasz Kamiński  <tkaminsk@redhat.com>
+
+	Backported from master:
+	2025-03-05  Tomasz Kamiński  <tkaminsk@redhat.com>
+
+	PR libstdc++/119121
+	* include/bits/ranges_util.h (__detail::__pair_like_convertible_from):
+	Use `_Tp` in `is_reference_v` check
+	* testsuite/std/ranges/subrange/tuple_like.cc: New tests for
+	pair-like conversion
+
 2025-02-28  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backported from master:

commit 43d777078387ab2c4aabe526f6ee0ff13055e0b6
Author: Xi Ruoyao <xry111@xry111.site>
Date:   Sun Mar 2 19:02:50 2025 +0800

    LoongArch: Fix incorrect reorder of __lsx_vldx and __lasx_xvldx [PR119084]
    
    They could be incorrectly reordered with store instructions like st.b
    because the RTL expression does not have a memory_operand or a (mem)
    expression.  The incorrect reorder has been observed in openh264 LTO
    build.
    
    Expand them to a (mem) expression instead of unspec to fix the issue.
    
    Closes: https://github.com/cisco/openh264/issues/3857
    
    (cherry picked from commit 4856292f7a680ec478e7607f1b71781996d7d542)
    
    Edited to remove the loongarch.cc change which is not needed for gcc-14
    branch.
    
    gcc/ChangeLog:
    
            PR target/119084
            * config/loongarch/lasx.md (UNSPEC_LASX_XVLDX): Remove.
            (lasx_xvldx): Remove.
            * config/loongarch/lsx.md (UNSPEC_LSX_VLDX): Remove.
            (lsx_vldx): Remove.
            * config/loongarch/simd.md (QIVEC): New define_mode_iterator.
            (<simd_isa>_<x>vldx): New define_expand.
    
    gcc/testsuite/ChangeLog:
    
            PR target/119084
            * gcc.target/loongarch/pr119084.c: New test.

diff --git a/gcc/config/loongarch/lasx.md b/gcc/config/loongarch/lasx.md
index 94bbd0c26bb..fe32194e811 100644
--- a/gcc/config/loongarch/lasx.md
+++ b/gcc/config/loongarch/lasx.md
@@ -155,7 +155,6 @@
   UNSPEC_LASX_XVSSRLRN
   UNSPEC_LASX_XVEXTL_QU_DU
   UNSPEC_LASX_XVLDI
-  UNSPEC_LASX_XVLDX
   UNSPEC_LASX_XVSTX
   UNSPEC_LASX_VECINIT_MERGE
   UNSPEC_LASX_VEC_SET_INTERNAL
@@ -4679,18 +4678,6 @@
   [(set_attr "type" "simd_load")
    (set_attr "mode" "V4DI")])
 
-(define_insn "lasx_xvldx"
-  [(set (match_operand:V32QI 0 "register_operand" "=f")
-	(unspec:V32QI [(match_operand:DI 1 "register_operand" "r")
-		       (match_operand:DI 2 "reg_or_0_operand" "rJ")]
-		      UNSPEC_LASX_XVLDX))]
-  "ISA_HAS_LASX"
-{
-  return "xvldx\t%u0,%1,%z2";
-}
-  [(set_attr "type" "simd_load")
-   (set_attr "mode" "V32QI")])
-
 (define_insn "lasx_xvstx"
   [(set (mem:V32QI (plus:DI (match_operand:DI 1 "register_operand" "r")
 			    (match_operand:DI 2 "reg_or_0_operand" "rJ")))
diff --git a/gcc/config/loongarch/lsx.md b/gcc/config/loongarch/lsx.md
index 5ee5845e84b..67ba8e8ad5d 100644
--- a/gcc/config/loongarch/lsx.md
+++ b/gcc/config/loongarch/lsx.md
@@ -100,7 +100,6 @@
   UNSPEC_LSX_VSSRLRN
   UNSPEC_LSX_VLDI
   UNSPEC_LSX_VSHUF_B
-  UNSPEC_LSX_VLDX
   UNSPEC_LSX_VSTX
   UNSPEC_LSX_VEXTL_QU_DU
   UNSPEC_LSX_VSETEQZ_V
@@ -3070,18 +3069,6 @@
   [(set_attr "type" "simd_shf")
    (set_attr "mode" "V16QI")])
 
-(define_insn "lsx_vldx"
-  [(set (match_operand:V16QI 0 "register_operand" "=f")
-	(unspec:V16QI [(match_operand:DI 1 "register_operand" "r")
-		       (match_operand:DI 2 "reg_or_0_operand" "rJ")]
-		      UNSPEC_LSX_VLDX))]
-  "ISA_HAS_LSX"
-{
-  return "vldx\t%w0,%1,%z2";
-}
-  [(set_attr "type" "simd_load")
-   (set_attr "mode" "V16QI")])
-
 (define_insn "lsx_vstx"
   [(set (mem:V16QI (plus:DI (match_operand:DI 1 "register_operand" "r")
 			    (match_operand:DI 2 "reg_or_0_operand" "rJ")))
diff --git a/gcc/config/loongarch/simd.md b/gcc/config/loongarch/simd.md
index 00ff2823a4e..691e7195636 100644
--- a/gcc/config/loongarch/simd.md
+++ b/gcc/config/loongarch/simd.md
@@ -113,6 +113,16 @@
 ;; instruction here so we can avoid duplicating logics.
 ;; =======================================================================
 
+;; REG + REG load
+
+(define_mode_iterator QIVEC [(V16QI "ISA_HAS_LSX") (V32QI "ISA_HAS_LASX")])
+(define_expand "<simd_isa>_<x>vldx"
+  [(set (match_operand:QIVEC 0 "register_operand" "=f")
+	(mem:QIVEC (plus:DI (match_operand:DI 1 "register_operand")
+			    (match_operand:DI 2 "register_operand"))))]
+  "TARGET_64BIT")
+
+
 ;;
 ;; FP vector rounding instructions
 ;;
diff --git a/gcc/testsuite/gcc.target/loongarch/pr119084.c b/gcc/testsuite/gcc.target/loongarch/pr119084.c
new file mode 100644
index 00000000000..b5943303851
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/pr119084.c
@@ -0,0 +1,24 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -mlsx" } */
+/* { dg-require-effective-target loongarch_sx_hw } */
+
+typedef signed char V16QI __attribute__ ((vector_size (16)));
+static char x[128];
+
+__attribute__ ((noipa)) int
+noopt (int x)
+{
+  return x;
+}
+
+int
+main (void)
+{
+  int t = noopt (32);
+
+  x[32] = 1;
+
+  V16QI y = __builtin_lsx_vldx (x, t);
+  if (y[0] != 1)
+    __builtin_trap ();
+}

commit fa7630698e21fc78d1554fa6e930971386a5688d
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Mar 7 00:22:10 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b9e3d69d3d1..e2c574236a8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2025-03-06  Xi Ruoyao  <xry111@xry111.site>
+
+	PR target/119084
+	* config/loongarch/lasx.md (UNSPEC_LASX_XVLDX): Remove.
+	(lasx_xvldx): Remove.
+	* config/loongarch/lsx.md (UNSPEC_LSX_VLDX): Remove.
+	(lsx_vldx): Remove.
+	* config/loongarch/simd.md (QIVEC): New define_mode_iterator.
+	(<simd_isa>_<x>vldx): New define_expand.
+
 2025-03-05  Richard Sandiford  <richard.sandiford@arm.com>
 	    Alex Coplan  <alex.coplan@arm.com>
 
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 31df6d356f3..5f4d7bc93d2 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250306
+20250307
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1f194cd4469..f08573c72ca 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2025-03-06  Xi Ruoyao  <xry111@xry111.site>
+
+	PR target/119084
+	* gcc.target/loongarch/pr119084.c: New test.
+
 2025-03-05  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:

commit 1c99a8f255ae7a68e477b7653df7a8dcf936cbeb
Author: Christophe Lyon <christophe.lyon@linaro.org>
Date:   Mon Mar 3 11:12:18 2025 +0000

    arm: Handle fixed PIC register in require_pic_register (PR target/115485)
    
    Commit r9-4307-g89d7557202d25a forgot to accept a fixed PIC register
    when extending the assert in require_pic_register.
    
    arm_pic_register can be set explicitly by the user
    (e.g. -mpic-register=r9) or implicitly as the default value with
    -fpic/-fPIC/-fPIE and -mno-pic-data-is-text-relative -mlong-calls, and
    we want to use/accept it when recording cfun->machine->pic_reg as used
    to be the case.
    
            PR target/115485
            gcc/
            * config/arm/arm.cc (require_pic_register): Fix typos in
            comment. Handle fixed arm_pic_register.
    
            gcc/testsuite/
            * g++.target/arm/pr115485.C: New test.
    
    (cherry picked from commit b1d0ac28de643e7c810e407a0668737131cdcc00)

diff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc
index 7b3b26a5951..59b41e3d046 100644
--- a/gcc/config/arm/arm.cc
+++ b/gcc/config/arm/arm.cc
@@ -8074,8 +8074,8 @@ legitimate_pic_operand_p (rtx x)
 
 /* Record that the current function needs a PIC register.  If PIC_REG is null,
    a new pseudo is allocated as PIC register, otherwise PIC_REG is used.  In
-   both case cfun->machine->pic_reg is initialized if we have not already done
-   so.  COMPUTE_NOW decide whether and where to set the PIC register.  If true,
+   both cases cfun->machine->pic_reg is initialized if we have not already done
+   so.  COMPUTE_NOW decides whether and where to set the PIC register.  If true,
    PIC register is reloaded in the current position of the instruction stream
    irregardless of whether it was loaded before.  Otherwise, it is only loaded
    if not already done so (crtl->uses_pic_offset_table is null).  Note that
@@ -8095,6 +8095,7 @@ require_pic_register (rtx pic_reg, bool compute_now)
   if (!crtl->uses_pic_offset_table || compute_now)
     {
       gcc_assert (can_create_pseudo_p ()
+		  || (arm_pic_register != INVALID_REGNUM)
 		  || (pic_reg != NULL_RTX
 		      && REG_P (pic_reg)
 		      && GET_MODE (pic_reg) == Pmode));
diff --git a/gcc/testsuite/g++.target/arm/pr115485.C b/gcc/testsuite/g++.target/arm/pr115485.C
new file mode 100644
index 00000000000..491b48c726a
--- /dev/null
+++ b/gcc/testsuite/g++.target/arm/pr115485.C
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-fPIE -mno-pic-data-is-text-relative -mlong-calls -ffunction-sections" } */
+
+struct c1 {
+  virtual void func1() = 0;
+};
+struct  c2 {
+  virtual ~c2() {}
+};
+struct c3 : c2, c1 {
+  void func1() override;
+  void func3();
+};
+void c3::func1() {
+  func3();
+}

commit 9608070a386f71148aa76a34aef60b342caa73b8
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Mar 8 00:22:25 2025 +0000

    Daily bump.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e2c574236a8..d91fc568bb9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2025-03-07  Christophe Lyon  <christophe.lyon@linaro.org>
+
+	Backported from master:
+	2025-03-07  Christophe Lyon  <christophe.lyon@linaro.org>
+
+	PR target/115485
+	* config/arm/arm.cc (require_pic_register): Fix typos in
+	comment. Handle fixed arm_pic_register.
+
 2025-03-06  Xi Ruoyao  <xry111@xry111.site>
 
 	PR target/119084
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 5f4d7bc93d2..e0b09102792 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250307
+20250308
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f08573c72ca..7264860a426 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2025-03-07  Christophe Lyon  <christophe.lyon@linaro.org>
+
+	Backported from master:
+	2025-03-07  Christophe Lyon  <christophe.lyon@linaro.org>
+
+	PR target/115485
+	* g++.target/arm/pr115485.C: New test.
+
 2025-03-06  Xi Ruoyao  <xry111@xry111.site>
 
 	PR target/119084

commit 2b9cfa7608aac6481ac555c5702de080c76bc442
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sun Mar 9 00:21:44 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index e0b09102792..747d240bdb0 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250308
+20250309

commit c6b2a359d348e2255cbf5b548540ecd8a5fa5a59
Author: Andre Vehreschild <vehre@gcc.gnu.org>
Date:   Tue Mar 4 12:56:20 2025 +0100

    Fortran: Fix gimplification error on assignment to pointer [PR103391]
    
            PR fortran/103391
    
    gcc/fortran/ChangeLog:
    
            * trans-expr.cc (gfc_trans_assignment_1): Do not use poly assign
            for pointer arrays on lhs (as it is done for allocatables
            already).
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/assign_12.f90: New test.
    
    (cherry picked from commit 04909c7ecc023874c3444b85f88c60b7b7cc7778)

diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 68b627cc465..cf651185213 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -12350,14 +12350,14 @@ gfc_trans_assignment_1 (gfc_expr * expr1, gfc_expr * expr2, bool init_flag,
      needed.  */
   lhs_attr = gfc_expr_attr (expr1);
 
-  is_poly_assign = (use_vptr_copy || lhs_attr.pointer
-		    || (lhs_attr.allocatable && !lhs_attr.dimension))
-		   && (expr1->ts.type == BT_CLASS
-		       || gfc_is_class_array_ref (expr1, NULL)
-		       || gfc_is_class_scalar_expr (expr1)
-		       || gfc_is_class_array_ref (expr2, NULL)
-		       || gfc_is_class_scalar_expr (expr2))
-		   && lhs_attr.flavor != FL_PROCEDURE;
+  is_poly_assign
+    = (use_vptr_copy
+       || ((lhs_attr.pointer || lhs_attr.allocatable) && !lhs_attr.dimension))
+      && (expr1->ts.type == BT_CLASS || gfc_is_class_array_ref (expr1, NULL)
+	  || gfc_is_class_scalar_expr (expr1)
+	  || gfc_is_class_array_ref (expr2, NULL)
+	  || gfc_is_class_scalar_expr (expr2))
+      && lhs_attr.flavor != FL_PROCEDURE;
 
   realloc_flag = flag_realloc_lhs
 		 && gfc_is_reallocatable_lhs (expr1)
diff --git a/gcc/testsuite/gfortran.dg/assign_12.f90 b/gcc/testsuite/gfortran.dg/assign_12.f90
new file mode 100644
index 00000000000..be31021f24c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/assign_12.f90
@@ -0,0 +1,28 @@
+!{ dg-do run }
+!
+! Check assignment works for derived types to memory referenced by pointer
+! Contributed by G. Steinmetz  <gscfq@t-online.de>
+
+program pr103391
+   type t
+     character(1) :: c
+   end type
+   type t2
+      type(t), pointer :: a(:)
+   end type
+
+   type(t), target :: arr(2)
+   type(t2) :: r
+
+   arr = [t('a'), t('b')]
+
+   r = f([arr])
+   if (any(r%a(:)%c /= ['a', 'b'])) stop 1
+contains
+   function f(x)
+      class(t), intent(in), target :: x(:)
+      type(t2) :: f
+      allocate(f%a(size(x,1)))
+      f%a = x
+   end
+end

commit e4f886c463fffd0bd2b1c98fa668c20aab5b37d2
Author: Jerry DeLisle <jvdelisle@gcc.gnu.org>
Date:   Fri Mar 7 18:33:29 2025 -0800

    Fortran: Fix ICE in resolve.cc with -pedantic
    
    Fixes an ICE in gfc_resolve_code when passing an
    optional array to an elemental procedure with `-pedantic` enabled.
    PR95446 added the original check, this patch fixes the case where the
    other actual argument is an array literal (or something else other
    than a variable).
    
            PR fortran/119054
    
    gcc/fortran/ChangeLog:
    
            * resolve.cc (resolve_elemental_actual): When checking other
            actual arguments to elemental procedures, don't check
            attributes of literals and function calls.
    
    gcc/testsuite/ChangeLog:
    
            * gfortran.dg/pr95446.f90: Expand test case to literals and
            function calls.
    
            Signed-off-by: Peter Hill <peter.hill@york.ac.uk>
    
    (cherry picked from commit 3014f8787196d7c0d15d24195c8f07167968ff55)

diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index a0ed0e516da..0261b4e6b24 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -2409,7 +2409,9 @@ resolve_elemental_actual (gfc_expr *expr, gfc_code *c)
 	  for (a = arg0; a; a = a->next)
 	    if (a != arg
 		&& a->expr->rank == arg->expr->rank
-		&& !a->expr->symtree->n.sym->attr.optional)
+		&& (a->expr->expr_type != EXPR_VARIABLE
+		    || (a->expr->expr_type == EXPR_VARIABLE
+			&& !a->expr->symtree->n.sym->attr.optional)))
 	      {
 		t = true;
 		break;
diff --git a/gcc/testsuite/gfortran.dg/pr95446.f90 b/gcc/testsuite/gfortran.dg/pr95446.f90
index 86e1019d7af..0787658813a 100644
--- a/gcc/testsuite/gfortran.dg/pr95446.f90
+++ b/gcc/testsuite/gfortran.dg/pr95446.f90
@@ -22,6 +22,20 @@ program elemental_optional
 
   end function outer
 
+  function outer_literal(o) result(l)
+    integer, intent(in), optional :: o(5)
+    integer :: l(5)
+
+    l = inner(o, [1,2,3,4,5])
+  end function outer_literal
+
+  function outer_func(o) result(l)
+    integer, intent(in), optional :: o(5)
+    integer :: l(5)
+
+    l = inner(o, outer())
+  end function outer_func
+
   elemental function inner(a,b) result(x)
     integer, intent(in), optional :: a
     integer, intent(in) :: b

commit f6f90e015f642424ba0e94871d9389facaca5395
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Sat Nov 16 15:56:10 2024 +0000

    Fortran: Fix segmentation fault in defined assignment [PR109066]
    
    2024-11-16  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/109066
            * resolve.cc (generate_component_assignments): If the temporary
            for 'var' is a pointer and 'expr' is neither a constant or
            a variable, change its attribute from pointer to allocatable.
            This avoids assignment to a temporary point that has neither
            been allocated or associated.
    
    gcc/testsuite/
            PR fortran/109066
            * gfortran.dg/defined_assignment_12.f90: New test.
    
    (cherry picked from commit 27ff8049bbdb0a001ba46835cd6a334c4ac76573)

diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index 0261b4e6b24..71cb3d75801 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -12157,6 +12157,11 @@ generate_component_assignments (gfc_code **code, gfc_namespace *ns)
     {
       /* Assign the rhs to the temporary.  */
       tmp_expr = get_temp_from_expr ((*code)->expr1, ns);
+      if (tmp_expr->symtree->n.sym->attr.pointer)
+	{
+	  tmp_expr->symtree->n.sym->attr.pointer = 0;
+	  tmp_expr->symtree->n.sym->attr.allocatable = 1;
+	}
       this_code = build_assignment (EXEC_ASSIGN,
 				    tmp_expr, (*code)->expr2,
 				    NULL, NULL, (*code)->loc);
diff --git a/gcc/testsuite/gfortran.dg/defined_assignment_12.f90 b/gcc/testsuite/gfortran.dg/defined_assignment_12.f90
new file mode 100644
index 00000000000..57445abe25c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/defined_assignment_12.f90
@@ -0,0 +1,61 @@
+! { dg-do run }
+!
+! Test fix of PR109066, which caused segfaults as below
+!
+! Contributed by Andrew Benson  <abensonca@gcc.gnu.org>
+!
+module bugMod
+
+  type :: rm
+     integer :: c=0
+   contains
+     procedure :: rma
+     generic   :: assignment(=) => rma
+  end type rm
+
+  type :: lc
+     type(rm) :: lm
+  end type lc
+
+contains
+
+  impure elemental subroutine rma(to,from)
+    implicit none
+    class(rm), intent(out) :: to
+    class(rm), intent(in) :: from
+    to%c = -from%c
+    return
+  end subroutine rma
+
+end module bugMod
+
+program bug
+  use bugMod
+  implicit none
+  type(lc), pointer :: i, j(:)
+
+  allocate (i)
+  i = lc (rm (1))                      ! Segmentation fault
+  if (i%lm%c .ne. -1) stop 1
+  i = i_ptr ()                         ! Segmentation fault
+  if (i%lm%c .ne. 1) stop 2
+
+  allocate (j(2))
+  j = [lc (rm (2)), lc (rm (3))]       ! Segmentation fault
+  if (any (j%lm%c .ne. [-2,-3])) stop 3
+  j = j_ptr ()                         ! Worked!
+  if (any (j%lm%c .ne. [2,3])) stop 4
+
+contains
+
+  function i_ptr () result(res)
+    type(lc), pointer :: res
+    res => i
+  end function
+
+  function j_ptr () result(res)
+    type(lc), pointer :: res (:)
+    res => j
+  end function
+
+end program bug

commit 89fa4d8996602d8471dec5c1a7b47d0de50621f3
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Mon Mar 10 00:21:35 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 747d240bdb0..95dbf27d32a 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250309
+20250310
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index f80919d0100..2b4d84ac15c 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,35 @@
+2025-03-09  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-16  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/109066
+	* resolve.cc (generate_component_assignments): If the temporary
+	for 'var' is a pointer and 'expr' is neither a constant or
+	a variable, change its attribute from pointer to allocatable.
+	This avoids assignment to a temporary point that has neither
+	been allocated or associated.
+
+2025-03-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	Backported from master:
+	2025-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR fortran/119054
+	* resolve.cc (resolve_elemental_actual): When checking other
+	actual arguments to elemental procedures, don't check
+	attributes of literals and function calls.
+
+2025-03-09  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+	Backported from master:
+	2025-03-04  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+	PR fortran/103391
+	* trans-expr.cc (gfc_trans_assignment_1): Do not use poly assign
+	for pointer arrays on lhs (as it is done for allocatables
+	already).
+
 2025-02-22  Harald Anlauf  <anlauf@gmx.de>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7264860a426..6355f3f6296 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,29 @@
+2025-03-09  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2024-11-16  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/109066
+	* gfortran.dg/defined_assignment_12.f90: New test.
+
+2025-03-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	Backported from master:
+	2025-03-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+	PR fortran/119054
+	* gfortran.dg/pr95446.f90: Expand test case to literals and
+	function calls.
+	Signed-off-by: Peter Hill <peter.hill@york.ac.uk>
+
+2025-03-09  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+	Backported from master:
+	2025-03-04  Andre Vehreschild  <vehre@gcc.gnu.org>
+
+	PR fortran/103391
+	* gfortran.dg/assign_12.f90: New test.
+
 2025-03-07  Christophe Lyon  <christophe.lyon@linaro.org>
 
 	Backported from master:

commit 5cb69a5e4f136dd92c2182d6744aff2c12291a4f
Author: Paul Thomas <pault@gcc.gnu.org>
Date:   Mon Jan 27 09:55:26 2025 +0000

    Fortran: ICE in gfc_conv_expr_present w. defined assignment [PR118640]
    
    2025-01-27  Paul Thomas  <pault@gcc.gnu.org>
    
    gcc/fortran
            PR fortran/118640
            * resolve.cc (generate_component_assignments): Make sure that
            the rhs temporary does not pick up the optional attribute from
            the lhs.
    
    gcc/testsuite/
            PR fortran/118640
            * gfortran.dg/pr118640.f90: New test.
    
    (cherry picked from commit 3600b1ff14a459e84bb40bdfea7cd8d2ffd73d8d)

diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index 71cb3d75801..7df879bf158 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -12159,7 +12159,12 @@ generate_component_assignments (gfc_code **code, gfc_namespace *ns)
       tmp_expr = get_temp_from_expr ((*code)->expr1, ns);
       if (tmp_expr->symtree->n.sym->attr.pointer)
 	{
+	  /* Use allocate on assignment for the sake of simplicity. The
+	     temporary must not take on the optional attribute. Assume
+	     that the assignment is guarded by a PRESENT condition if the
+	     lhs is optional.  */
 	  tmp_expr->symtree->n.sym->attr.pointer = 0;
+	  tmp_expr->symtree->n.sym->attr.optional = 0;
 	  tmp_expr->symtree->n.sym->attr.allocatable = 1;
 	}
       this_code = build_assignment (EXEC_ASSIGN,
diff --git a/gcc/testsuite/gfortran.dg/pr118640.f90 b/gcc/testsuite/gfortran.dg/pr118640.f90
new file mode 100644
index 00000000000..8f74dbff067
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr118640.f90
@@ -0,0 +1,38 @@
+! { dg-do compile }
+!
+! Check the fix for an ICE in gfc_conv_expr_present, which resulted from
+! the rhs temporary picking up the optional attribute from the lhs in a
+! defined assignment.
+!
+! Contributed by Jakub Jelenik  <jakub@gcc.gnu.org>
+!
+module foo
+  type t1
+  contains
+    procedure bar
+    generic :: assignment(=) => bar
+  end type
+  type t2
+    type(t1) m
+  end type
+contains
+  subroutine bar (x, y)
+    intent(in) y
+    class(t1), intent(out) :: x
+  end subroutine
+end module
+subroutine baz (x, y)
+  use foo
+  integer y
+  type(t2), pointer, optional :: x
+  interface
+    function qux (x)
+      use foo
+      integer x
+      type(t2) qux
+    end function
+  end interface
+  if (present (x)) then
+    x = qux (y)  ! ICE was here
+  end if
+end subroutine

commit ca0ea3d4192313ad00da4ff734baffcecafe0b1f
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Mon Mar 10 20:52:49 2025 +0100

    libphobos: Default to libc closefrom in spawnProcessPosix [PR119112]
    
    This is a backport of two changes in upstream Phobos.
    
    - The current implementation of spawnProcessPosix is broken on systems
    with a large `ulimit -n' because it always OOMs making it impossible to
    spawn processes. Using the libc implementation, when available, for
    doing file descriptor operations en-mass solves this problem.
    
    - The fallback code now reads the list of file descriptors in use from
    /dev/fd or /proc/this/fd, avoiding the need to scroll through the entire
    list of possible file descriptors. This fixes the fork process being
    very slow and memory intensive when RLIMIT_NOFILE is too high.
    
            PR d/119112
    
    libphobos/ChangeLog:
    
            * libdruntime/core/sys/freebsd/unistd.d (closefrom): Add binding.
            * libdruntime/core/sys/linux/unistd.d (closefrom): Likewise.
            * libdruntime/core/sys/openbsd/unistd.d (closefrom): Likewise.
            * src/std/process.d (enum InternalError): Add closefds_dup2.
            (spawnProcessPosix): Use closefrom when available.
    
    Reviewed-on: https://github.com/dlang/phobos/pull/9048
    Reviewed-on: https://github.com/dlang/phobos/pull/9077

diff --git a/libphobos/libdruntime/core/sys/freebsd/unistd.d b/libphobos/libdruntime/core/sys/freebsd/unistd.d
index 493cda1c8c9..ebb7afa2726 100644
--- a/libphobos/libdruntime/core/sys/freebsd/unistd.d
+++ b/libphobos/libdruntime/core/sys/freebsd/unistd.d
@@ -17,3 +17,5 @@ extern(C):
 nothrow:
 
 int getosreldate() pure @trusted;
+
+void closefrom(int);
diff --git a/libphobos/libdruntime/core/sys/linux/unistd.d b/libphobos/libdruntime/core/sys/linux/unistd.d
index faa226cf407..548870268db 100644
--- a/libphobos/libdruntime/core/sys/linux/unistd.d
+++ b/libphobos/libdruntime/core/sys/linux/unistd.d
@@ -5,6 +5,7 @@ public import core.sys.posix.unistd;
 version (linux):
 extern(C):
 nothrow:
+@nogc:
 
 // Additional seek constants for sparse file handling
 // from Linux's unistd.h, stdio.h, and linux/fs.h
@@ -21,3 +22,6 @@ char* getpass(const(char)* prompt);
 
 // Exit all threads in a process
 void exit_group(int status);
+
+/// Close all open file descriptors greater or equal to `lowfd`
+void closefrom(int lowfd);
diff --git a/libphobos/libdruntime/core/sys/openbsd/unistd.d b/libphobos/libdruntime/core/sys/openbsd/unistd.d
index 4232c036049..9618543d8da 100644
--- a/libphobos/libdruntime/core/sys/openbsd/unistd.d
+++ b/libphobos/libdruntime/core/sys/openbsd/unistd.d
@@ -19,3 +19,5 @@ int getthrname(pid_t, char*, size_t);
 int pledge(const scope char*, const scope char*);
 int setthrname(pid_t, const scope char*);
 int unveil(const scope char*, const scope char*);
+
+int closefrom(int);
diff --git a/libphobos/src/std/process.d b/libphobos/src/std/process.d
index 494910f3535..3b892217917 100644
--- a/libphobos/src/std/process.d
+++ b/libphobos/src/std/process.d
@@ -872,6 +872,7 @@ version (Posix) private enum InternalError : ubyte
     doubleFork,
     malloc,
     preExec,
+    closefds_dup2,
 }
 
 /*
@@ -1000,7 +1001,7 @@ private Pid spawnProcessPosix(scope const(char[])[] args,
         if (config.flags & Config.Flags.detached)
             close(pidPipe[0]);
         close(forkPipe[0]);
-        immutable forkPipeOut = forkPipe[1];
+        auto forkPipeOut = forkPipe[1];
         immutable pidPipeOut = pidPipe[1];
 
         // Set the working directory.
@@ -1034,56 +1035,157 @@ private Pid spawnProcessPosix(scope const(char[])[] args,
 
             if (!(config.flags & Config.Flags.inheritFDs))
             {
-                // NOTE: malloc() and getrlimit() are not on the POSIX async
-                // signal safe functions list, but practically this should
-                // not be a problem. Java VM and CPython also use malloc()
-                // in its own implementation via opendir().
-                import core.stdc.stdlib : malloc;
-                import core.sys.posix.poll : pollfd, poll, POLLNVAL;
-                import core.sys.posix.sys.resource : rlimit, getrlimit, RLIMIT_NOFILE;
-
-                // Get the maximum number of file descriptors that could be open.
-                rlimit r;
-                if (getrlimit(RLIMIT_NOFILE, &r) != 0)
-                {
-                    abortOnError(forkPipeOut, InternalError.getrlimit, .errno);
-                }
-                immutable maxDescriptors = cast(int) r.rlim_cur;
+                version (FreeBSD)
+                    import core.sys.freebsd.unistd : closefrom;
+                else version (OpenBSD)
+                    import core.sys.openbsd.unistd : closefrom;
 
-                // The above, less stdin, stdout, and stderr
-                immutable maxToClose = maxDescriptors - 3;
-
-                // Call poll() to see which ones are actually open:
-                auto pfds = cast(pollfd*) malloc(pollfd.sizeof * maxToClose);
-                if (pfds is null)
-                {
-                    abortOnError(forkPipeOut, InternalError.malloc, .errno);
-                }
-                foreach (i; 0 .. maxToClose)
-                {
-                    pfds[i].fd = i + 3;
-                    pfds[i].events = 0;
-                    pfds[i].revents = 0;
-                }
-                if (poll(pfds, maxToClose, 0) >= 0)
+                static if (!__traits(compiles, closefrom))
                 {
-                    foreach (i; 0 .. maxToClose)
+                    void fallback (int lowfd)
                     {
-                        // don't close pipe write end
-                        if (pfds[i].fd == forkPipeOut) continue;
-                        // POLLNVAL will be set if the file descriptor is invalid.
-                        if (!(pfds[i].revents & POLLNVAL)) close(pfds[i].fd);
+                        import core.sys.posix.dirent : dirent, opendir, readdir, closedir, DIR;
+                        import core.sys.posix.unistd : close;
+                        import core.sys.posix.stdlib : atoi, malloc, free;
+                        import core.sys.posix.sys.resource : rlimit, getrlimit, RLIMIT_NOFILE;
+
+                        // Get the maximum number of file descriptors that could be open.
+                        rlimit r;
+                        if (getrlimit(RLIMIT_NOFILE, &r) != 0)
+                            abortOnError(forkPipeOut, InternalError.getrlimit, .errno);
+
+                        immutable maxDescriptors = cast(int) r.rlim_cur;
+
+                        // Missing druntime declaration
+                        pragma(mangle, "dirfd")
+                        extern(C) nothrow @nogc int dirfd(DIR* dir);
+
+                        DIR* dir = null;
+
+                        // We read from /dev/fd or /proc/self/fd only if the limit is high enough
+                        if (maxDescriptors > 128*1024)
+                        {
+                            // Try to open the directory /dev/fd or /proc/self/fd
+                            dir = opendir("/dev/fd");
+                            if (dir is null) dir = opendir("/proc/self/fd");
+                        }
+
+                        // If we have a directory, close all file descriptors except stdin, stdout, and stderr
+                        if (dir)
+                        {
+                            scope(exit) closedir(dir);
+
+                            int opendirfd = dirfd(dir);
+
+                            // Iterate over all file descriptors
+                            while (true)
+                            {
+                                dirent* entry = readdir(dir);
+
+                                if (entry is null) break;
+                                if (entry.d_name[0] == '.') continue;
+
+                                int fd = atoi(cast(char*) entry.d_name);
+
+                                // Don't close stdin, stdout, stderr, or the directory file descriptor
+                                if (fd < lowfd || fd == opendirfd) continue;
+
+                                close(fd);
+                            }
+                        }
+                        else
+                        {
+                            // This is going to allocate 8 bytes for each possible file descriptor from lowfd to r.rlim_cur
+                            if (maxDescriptors <= 128*1024)
+                            {
+                                // NOTE: malloc() and getrlimit() are not on the POSIX async
+                                // signal safe functions list, but practically this should
+                                // not be a problem. Java VM and CPython also use malloc()
+                                // in its own implementation via opendir().
+                                import core.stdc.stdlib : malloc;
+                                import core.sys.posix.poll : pollfd, poll, POLLNVAL;
+
+                                immutable maxToClose = maxDescriptors - lowfd;
+
+                                // Call poll() to see which ones are actually open:
+                                auto pfds = cast(pollfd*) malloc(pollfd.sizeof * maxToClose);
+                                if (pfds is null)
+                                {
+                                    abortOnError(forkPipeOut, InternalError.malloc, .errno);
+                                }
+
+                                foreach (i; 0 .. maxToClose)
+                                {
+                                    pfds[i].fd = i + lowfd;
+                                    pfds[i].events = 0;
+                                    pfds[i].revents = 0;
+                                }
+
+                                if (poll(pfds, maxToClose, 0) < 0)
+                                    // couldn't use poll, use the slow path.
+                                    goto LslowClose;
+
+                                foreach (i; 0 .. maxToClose)
+                                {
+                                    // POLLNVAL will be set if the file descriptor is invalid.
+                                    if (!(pfds[i].revents & POLLNVAL)) close(pfds[i].fd);
+                                }
+                            }
+                            else
+                            {
+                            LslowClose:
+                                // Fall back to closing everything.
+                                foreach (i; lowfd .. maxDescriptors)
+                                {
+                                    close(i);
+                                }
+                            }
+                        }
                     }
-                }
-                else
-                {
-                    // Fall back to closing everything.
-                    foreach (i; 3 .. maxDescriptors)
+
+                    // closefrom may not be available on the version of glibc we build against.
+                    // Until we find a way to perform this check we will try to use dlsym to
+                    // check for the function. See: https://github.com/dlang/phobos/pull/9048
+                    version (CRuntime_Glibc)
                     {
-                        if (i == forkPipeOut) continue;
-                        close(i);
+                        void closefrom (int lowfd) {
+                            static bool tryGlibcClosefrom (int lowfd) {
+                                import core.sys.posix.dlfcn : dlopen, dlclose, dlsym, dlerror, RTLD_LAZY;
+
+                                void *handle = dlopen("libc.so.6", RTLD_LAZY);
+                                if (!handle)
+                                    return false;
+                                scope(exit) dlclose(handle);
+
+                                // Clear errors
+                                dlerror();
+                                alias closefromT = extern(C) void function(int) @nogc @system nothrow;
+                                auto closefrom = cast(closefromT) dlsym(handle, "closefrom");
+                                if (dlerror())
+                                    return false;
+
+                                closefrom(lowfd);
+                                return true;
+                            }
+
+                            if (!tryGlibcClosefrom(lowfd))
+                                fallback(lowfd);
+                        }
                     }
+                    else
+                        alias closefrom = fallback;
                 }
+
+                // We need to close all open file descriptors excluding std{in,out,err}
+                // and forkPipeOut because we still need it.
+                // Since the various libc's provide us with `closefrom` move forkPipeOut
+                // to position 3, right after STDERR_FILENO, and close all FDs following that.
+                if (dup2(forkPipeOut, 3) == -1)
+                    abortOnError(forkPipeOut, InternalError.closefds_dup2, .errno);
+                forkPipeOut = 3;
+                // forkPipeOut needs to be closed after we call `exec`.
+                setCLOEXEC(forkPipeOut, true);
+                closefrom(forkPipeOut + 1);
             }
             else // This is already done if we don't inherit descriptors.
             {
@@ -1189,6 +1291,10 @@ private Pid spawnProcessPosix(scope const(char[])[] args,
                 case InternalError.preExec:
                     errorMsg = "Failed to execute preExecFunction";
                     break;
+                case InternalError.closefds_dup2:
+                    assert(!(config.flags & Config.Flags.inheritFDs));
+                    errorMsg = "Failed to close inherited file descriptors";
+                    break;
                 case InternalError.noerror:
                     assert(false);
             }

commit 79366d9bec48d90d47b463e74c6096d14b055e32
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Tue Mar 11 00:22:48 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 95dbf27d32a..4bd9e51ab1b 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250310
+20250311
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 2b4d84ac15c..f56bc66ca3a 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,13 @@
+2025-03-10  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2025-01-27  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/118640
+	* resolve.cc (generate_component_assignments): Make sure that
+	the rhs temporary does not pick up the optional attribute from
+	the lhs.
+
 2025-03-09  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6355f3f6296..bbc0bec1b8b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2025-03-10  Paul Thomas  <pault@gcc.gnu.org>
+
+	Backported from master:
+	2025-01-27  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/118640
+	* gfortran.dg/pr118640.f90: New test.
+
 2025-03-09  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:
diff --git a/libphobos/ChangeLog b/libphobos/ChangeLog
index b57d473fdfe..19ec39251e8 100644
--- a/libphobos/ChangeLog
+++ b/libphobos/ChangeLog
@@ -1,3 +1,12 @@
+2025-03-10  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	PR d/119112
+	* libdruntime/core/sys/freebsd/unistd.d (closefrom): Add binding.
+	* libdruntime/core/sys/linux/unistd.d (closefrom): Likewise.
+	* libdruntime/core/sys/openbsd/unistd.d (closefrom): Likewise.
+	* src/std/process.d (enum InternalError): Add closefds_dup2.
+	(spawnProcessPosix): Use closefrom when available.
+
 2024-08-01  Release Manager
 
 	* GCC 14.2.0 released.

commit af69315f84778dc1455d2a06d355a67ad8b9241e
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Tue Mar 11 17:56:18 2025 +0100

    d: Fix regression returning from function with invariants [PR119139]
    
    An optimization was added in GDC-12 which sets the TREE_READONLY flag on
    all local variables with the storage class `const' assigned.  For some
    reason, const is also being added by the front-end to `__result'
    variables in non-virtual functions, which ends up getting wrong code by
    the gimplify pass promoting the local to static storage.
    
    A bug has been raised upstream, as this looks like an error in the AST.
    For now, turn off setting TREE_READONLY on all result variables.
    
            PR d/119139
    
    gcc/d/ChangeLog:
    
            * decl.cc (get_symbol_decl): Don't set TREE_READONLY for __result
            declarations.
    
    gcc/testsuite/ChangeLog:
    
            * gdc.dg/pr119139.d: New test.
    
    (cherry picked from commit 81582ca6cb692098c1bda7995aec46c6cbfbfcb3)

diff --git a/gcc/d/decl.cc b/gcc/d/decl.cc
index 0a87c85ae2e..7cc203ac842 100644
--- a/gcc/d/decl.cc
+++ b/gcc/d/decl.cc
@@ -1325,7 +1325,7 @@ get_symbol_decl (Declaration *decl)
       /* `const` applies to data that cannot be changed by the const reference
 	 to that data. It may, however, be changed by another reference to that
 	 same data.  */
-      if (vd->isConst () && !vd->isDataseg ())
+      if (vd->isConst () && !vd->isResult () && !vd->isDataseg ())
 	TREE_READONLY (decl->csym) = 1;
     }
 
diff --git a/gcc/testsuite/gdc.dg/pr119139.d b/gcc/testsuite/gdc.dg/pr119139.d
new file mode 100644
index 00000000000..dc42c411e39
--- /dev/null
+++ b/gcc/testsuite/gdc.dg/pr119139.d
@@ -0,0 +1,24 @@
+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119139
+// { dg-do compile }
+// { dg-options "-fdump-tree-gimple" }
+string toString()
+{
+    return "1";
+}
+
+struct B
+{
+    ulong n;
+
+    invariant{}
+
+    string str()
+    {
+        if (n == 0)
+        {
+            return "0";
+        }
+        return toString();
+    }
+}
+// { dg-final { scan-tree-dump-not "static const struct  __result =" "gimple" } }

commit 3a07660a5a6a4f09e6e9478229e7609697a9105e
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Mar 12 00:23:02 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 4bd9e51ab1b..a2876d18ceb 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250311
+20250312
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
index 25ac9c8c735..d594befd258 100644
--- a/gcc/d/ChangeLog
+++ b/gcc/d/ChangeLog
@@ -1,3 +1,12 @@
+2025-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	Backported from master:
+	2025-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	PR d/119139
+	* decl.cc (get_symbol_decl): Don't set TREE_READONLY for __result
+	declarations.
+
 2025-03-02  Iain Buclaw  <ibuclaw@gdcproject.org>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bbc0bec1b8b..deffa4a9166 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2025-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	Backported from master:
+	2025-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
+
+	PR d/119139
+	* gdc.dg/pr119139.d: New test.
+
 2025-03-10  Paul Thomas  <pault@gcc.gnu.org>
 
 	Backported from master:

commit f1dd3a17cf34d26f448bc2fd4f6c218c38140b08
Author: Richard Earnshaw <rearnsha@arm.com>
Date:   Tue Mar 4 16:17:32 2025 +0000

    arm: testsuite: improve guard checks for arm_neon.h
    
    The header file arm_neon.h provides the Advanced SIMD intrinsics that
    are available on armv7 or later A & R profile cores.  However, they
    are not compatible with M-profile and we also need to ensure that the
    FP instructions are enabled (with -mfloat-abi=softfp/hard).  That
    leads to some complicated checking as arm_neon.h includes stdint.h
    and, at least on linux, that can require that the appropriate ABI
    bits/ headers are also installed.
    
    This patch adds a new check to target-supports.exp to establish the
    minimal set of option overrides needed to enable use of this header in
    a test.
    
    gcc/testsuite:
            * lib/target-supports.exp
            (check_effective_target_arm_neon_h_ok_nocache): New function.
            (check_effective_target_arm_neon_h_ok): Likewise.
            (add_options_for_arm_neon_h): Likewise.
            (check_effective_target_arm_libc_fp_abi_ok_nocache): Allow any
            Arm target, not just arm32.
            * gcc.target/arm/attr-neon-builtin-fail.c: Use it.
            * gcc.target/arm/attr-neon-builtin-fail2.c: Likewise.
            * gcc.target/arm/attr-neon-fp16.c: Likewise.
            * gcc.target/arm/attr-neon2.c: Likewise.
    
    (cherry picked from commit b7f5d9114801716924a67ea393f0c30ab793e505)

diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
index fb6e0b9cd66..645d708f005 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
@@ -1,9 +1,8 @@
 /* Check that calling a neon builtin from a function compiled with vfp fails.  */
 /* { dg-do compile } */
-/* { dg-require-effective-target arm_fp_ok } */
-/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-require-effective-target arm_neon_h_ok } */
 /* { dg-options "-O2" } */
-/* { dg-add-options arm_fp } */
+/* { dg-add-options arm_neon_h } */
 
 #include <arm_neon.h>
 
@@ -15,4 +14,3 @@ foo (uint8x16_t *p)
 }
 
 /* { dg-error "inlining failed in call to 'always_inline'" "" { target *-*-* } 0 } */
-
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
index 9cb5a2ebb90..ed0c4634b77 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
@@ -1,8 +1,8 @@
 /* Check that calling a neon builtin from a function compiled with vfp fails.  */
 /* { dg-do compile } */
-/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-require-effective-target arm_neon_h_ok } */
 /* { dg-options "-O2" } */
-/* { dg-add-options arm_vfp } */
+/* { dg-add-options arm_neon_h } */
 
 extern __simd64_int8_t a, b;
 
@@ -13,4 +13,3 @@ foo (__simd128_int16_t *p)
   *p = (__simd128_int16_t)__builtin_neon_vaddlsv8qi (a, b); /* { dg-error "You must enable NEON instructions .*" } */
 
 }
-
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
index d7b75645bc4..a5982604f9e 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
@@ -1,8 +1,8 @@
 /* { dg-do compile } */
 /* { dg-skip-if "-mpure-code supports M-profile only and without Neon" { *-*-* } { "-mpure-code" } } */
-/* { dg-require-effective-target arm_fp_ok } */
+/* { dg-require-effective-target arm_neon_h_ok } */
 /* { dg-options "-mfp16-format=ieee" } */
-/* { dg-add-options arm_fp } */
+/* { dg-add-options arm_neon_h } */
 
 #include "arm_neon.h"
 
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon2.c b/gcc/testsuite/gcc.target/arm/attr-neon2.c
index a7a72dac379..c0f7667c2dc 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon2.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon2.c
@@ -1,8 +1,7 @@
 /* { dg-do compile } */
-/* { dg-require-effective-target arm_neon_ok } */
-/* { dg-require-effective-target arm_fp_ok } */
+/* { dg-require-effective-target arm_neon_h_ok } */
 /* { dg-options "-Ofast" } */
-/* { dg-add-options arm_fp } */
+/* { dg-add-options arm_neon_h } */
 
 /* Reset fpu to a value compatible with the next pragmas.  */
 #pragma GCC target ("fpu=vfp")
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index f8856846f02..112ff52bec1 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -4754,7 +4754,7 @@ proc add_options_for_arm_fp { flags } {
 proc check_effective_target_arm_libc_fp_abi_ok_nocache { } {
     global et_arm_libc_fp_abi_flags
     set et_arm_libc_fp_abi_flags ""
-    if { [check_effective_target_arm32] } {
+    if { [istarget arm*-*-*] } {
 	foreach flags {"-mfloat-abi=hard" "-mfloat-abi=softfp"} {
 	    if { [check_no_compiler_messages_nocache arm_libc_fp_abi_ok object {
 		#include <stdint.h>
@@ -4782,6 +4782,57 @@ proc add_options_for_arm_libc_fp_abi { flags } {
     return "$flags $et_arm_libc_fp_abi_flags"
 }
 
+# Try to find the minimal set of flags needed to make the header file
+# arm_neon.h compatible with this compilation.  This is complicated due
+# to the fact that this header doesn't work properly on m-profile cores
+# and also won't work correctly if the wrong floating-point ABI is used
+# on the platform (since arm_neon.h can include stdint.h, which on Linux
+# will pull in stub headers that aren't installed).
+# Note: This will not necessarily enable Neon instructions, just provide
+# something where the header will not cause errors.
+
+proc check_effective_target_arm_neon_h_ok_nocache { } {
+    # none-arm or thumb1 cannot support neon, so there's no point in
+    # looking further.
+    if { [istarget arm*-*-*] } {
+	global et_arm_neon_h_flags
+	set base_flags [add_options_for_arm_libc_fp_abi ""]
+	foreach flags {"" "-mfpu=auto" "-marm" "-marm -mfpu=auto" \
+			   "-mcpu=unset -march=armv7-a+fp -mfpu=auto" } {
+	    if { [check_no_compiler_messages_nocache arm_neon_h_ok assembly {
+		#if __ARM_ARCH < 5
+		#error architecture too low for FP
+		#endif
+		#if __ARM_ARCH < 7
+		#if !defined(__arm__) || (defined(__thumb__) && !defined(__thumb2__))
+		#error incompatible arch or mode
+		#endif
+		#endif
+		#if __ARM_ARCH_PROFILE == 'M'
+		#error incompatible profile
+		#endif
+	    } "$base_flags $flags" ] } {
+		set et_arm_neon_h_flags "$base_flags $flags"
+		return 1
+	    }
+	}
+    }
+    return 0
+}
+
+proc check_effective_target_arm_neon_h_ok { } {
+    return [check_cached_effective_target arm_neon_h_ok \
+		check_effective_target_arm_neon_h_ok_nocache]
+}
+
+proc add_options_for_arm_neon_h { flags } {
+    if { ! [check_effective_target_arm_neon_h_ok] } {
+	return "$flags"
+    }
+    global et_arm_neon_h_flags
+    return "$flags $et_arm_neon_h_flags"
+}
+
 # Return 1 if this is an ARM target defining __ARM_FP with
 # double-precision support. We may need -mfloat-abi=softfp or
 # equivalent options.  Some multilibs may be incompatible with these

commit de08b13018a13970475a4936265673b21dccb691
Author: Richard Earnshaw <rearnsha@arm.com>
Date:   Tue Mar 11 10:48:54 2025 +0000

    arm: testsuite: fix arm_neon_h checks with conflicting cpu/arch
    
    GCC will complain if the -mcpu flag specifies a different architecture
    to that specified in -march, but if the floating-point ABI is "soft",
    then differences in the floating-point architecture features are
    ignored.
    
    However, the arm_libc_fp_abi checks whether we change the FP ABI by
    adding -mfloat-abi=hard/softfp to override the defaults.  If that
    fails it won't add anything.
    
    Unfortunately arm_neon_h_ok wasn't correctly checking whether the libc
    check had worked and just assumed that it would always add something
    to enable FP.  That's insufficient and we need to consider this failure.
    We simply mark tests as unsupported in this case.
    
    gcc/testsuite/ChangeLog:
    
            * lib/target-supports.exp
            (check_effective_target_arm_neon_h_ok_nocache): Return zero if
            check_effective_target_arm_libc_fp_abi_ok reports failure.
    
    (cherry picked from commit 1b7a05770833eb210783ec8babd0027ec237d191)

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 112ff52bec1..e9f9bb06f3b 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -4794,7 +4794,8 @@ proc add_options_for_arm_libc_fp_abi { flags } {
 proc check_effective_target_arm_neon_h_ok_nocache { } {
     # none-arm or thumb1 cannot support neon, so there's no point in
     # looking further.
-    if { [istarget arm*-*-*] } {
+    if { [istarget arm*-*-*]
+	 && [check_effective_target_arm_libc_fp_abi_ok]} {
 	global et_arm_neon_h_flags
 	set base_flags [add_options_for_arm_libc_fp_abi ""]
 	foreach flags {"" "-mfpu=auto" "-marm" "-marm -mfpu=auto" \

commit e5ae0a014fbc792a69267af79cfbf580566b436a
Author: Marek Polacek <polacek@redhat.com>
Date:   Fri Mar 7 11:26:46 2025 -0500

    c++: ICE with lambda in fold expression in requires [PR119134]
    
    The r12-8258 fix assumes that DECL_CONTEXT of 'pack' in
    check_for_bare_parameter_packs is going to be an operator()
    but as this test shows, it can be empty.
    
            PR c++/119134
    
    gcc/cp/ChangeLog:
    
            * pt.cc (check_for_bare_parameter_packs): Check DECL_CONTEXT.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/lambda-uneval24.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 0e47062ce70d147091f1a97ec94bd6efad92bc5e)

diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index d5bf6af8467..3369e6218aa 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -4336,6 +4336,7 @@ check_for_bare_parameter_packs (tree t, location_t loc /* = UNKNOWN_LOCATION */)
 	tree pack = TREE_VALUE (parameter_packs);
 	if (is_capture_proxy (pack)
 	    || (TREE_CODE (pack) == PARM_DECL
+		&& DECL_CONTEXT (pack)
 		&& DECL_CONTEXT (DECL_CONTEXT (pack)) == lam))
 	  break;
       }
diff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-uneval24.C b/gcc/testsuite/g++.dg/cpp2a/lambda-uneval24.C
new file mode 100644
index 00000000000..a2b45595e47
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/lambda-uneval24.C
@@ -0,0 +1,4 @@
+// PR c++/119134
+// { dg-do compile { target c++20 } }
+
+void f(auto... args) requires(([args] {}, ..., true)) {}

commit a27b24c9f4ee7fc12d077ea111200223e4a95c7d
Author: Marek Polacek <polacek@redhat.com>
Date:   Wed Mar 12 14:49:53 2025 -0400

    c++: ICE with aligned member and trivial assign op [PR117512]
    
    build_over_call has:
    
              t = build2 (MODIFY_EXPR, void_type_node,
                          build2 (MEM_REF, array_type, arg0, alias_set),
                          build2 (MEM_REF, array_type, arg, alias_set));
              val = build2 (COMPOUND_EXPR, TREE_TYPE (to), t, to);
    
    which creates an expression that can look like:
    
      d = MEM <unsigned char[4]> [(struct A *)&TARGET_EXPR <D.2894, foo()]
        = MEM <unsigned char[4]> [(struct A *)(const struct A &) &e],
          TARGET_EXPR <D.2894, foo()>
    
    that is, a COMPOUND_EXPR where a TARGET_EXPR is used twice, and its
    address is taken in the left-hand side operand, so it can't be elided.
    But set_target_expr_eliding simply recurses on the second operand of
    a COMPOUND_EXPR and marks the TARGET_EXPR as eliding.  This then causes
    a crash.
    
    cp_build_indirect_ref_1 should not be changing the value category.
    While *&TARGET_EXPR is an lvalue, folding it into TARGET_EXPR would
    render is a prvalue of class type.
    
            PR c++/117512
    
    gcc/cp/ChangeLog:
    
            * typeck.cc (cp_build_indirect_ref_1): Only do the *&e -> e
            folding if the result would be an lvalue.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp0x/alignas23.C: New test.
            * g++.dg/ext/align3.C: New test.
            * g++.dg/ext/align4.C: New test.
            * g++.dg/ext/align5.C: New test.
    
    Reviewed-by: Jason Merrill <jason@redhat.com>
    (cherry picked from commit 3dd7b598065ea0280fc65ce656c575c5142fa4fc)

diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc
index e32e4a7b7ac..a3b1e52f224 100644
--- a/gcc/cp/typeck.cc
+++ b/gcc/cp/typeck.cc
@@ -3838,7 +3838,11 @@ cp_build_indirect_ref_1 (location_t loc, tree ptr, ref_operator errorstring,
 	  return error_mark_node;
 	}
       else if (do_fold && TREE_CODE (pointer) == ADDR_EXPR
-	       && same_type_p (t, TREE_TYPE (TREE_OPERAND (pointer, 0))))
+	       && same_type_p (t, TREE_TYPE (TREE_OPERAND (pointer, 0)))
+	       /* Don't let this change the value category.  '*&TARGET_EXPR'
+		  is an lvalue, but folding it into 'TARGET_EXPR' would turn
+		  it into a prvalue of class type.  */
+	       && lvalue_p (TREE_OPERAND (pointer, 0)))
 	/* The POINTER was something like `&x'.  We simplify `*&x' to
 	   `x'.  */
 	return TREE_OPERAND (pointer, 0);
diff --git a/gcc/testsuite/g++.dg/cpp0x/alignas23.C b/gcc/testsuite/g++.dg/cpp0x/alignas23.C
new file mode 100644
index 00000000000..3c218a3542c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/alignas23.C
@@ -0,0 +1,15 @@
+// PR c++/117512
+// { dg-do compile { target c++11 } }
+
+struct A {
+  alignas(sizeof (long long)) int b;
+  ~A ();
+};
+A foo (int);
+
+void
+bar ()
+{
+  A e = { 0 };
+  A d = foo (0) = e;
+}
diff --git a/gcc/testsuite/g++.dg/ext/align3.C b/gcc/testsuite/g++.dg/ext/align3.C
new file mode 100644
index 00000000000..6a20dfc57b1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/align3.C
@@ -0,0 +1,14 @@
+// PR c++/117512
+
+struct A {
+  __attribute__((aligned)) int b;
+  ~A ();
+};
+A foo (int);
+
+void
+bar ()
+{
+  A e = { 0 };
+  A d = foo (0) = e;
+}
diff --git a/gcc/testsuite/g++.dg/ext/align4.C b/gcc/testsuite/g++.dg/ext/align4.C
new file mode 100644
index 00000000000..b0d83e30237
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/align4.C
@@ -0,0 +1,14 @@
+// PR c++/117512
+
+struct __attribute__((aligned (2 * sizeof (int)))) A {
+  int b;
+  ~A ();
+};
+A foo (int);
+
+void
+bar ()
+{
+  A e = { 0 };
+  A d = foo (0) = e;
+}
diff --git a/gcc/testsuite/g++.dg/ext/align5.C b/gcc/testsuite/g++.dg/ext/align5.C
new file mode 100644
index 00000000000..7e821274352
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/align5.C
@@ -0,0 +1,18 @@
+// PR c++/117512
+// { dg-do run }
+
+struct A {
+  __attribute__((aligned(2 * sizeof (int)))) int i;
+  ~A() {}
+};
+
+A foo () { A a = { 19 }; return a; }
+
+int
+main ()
+{
+  A a = { 42 };
+  A r = foo () = a;
+  if (r.i != 42)
+    __builtin_abort ();
+}

commit 6fcad2bfa07037fe3dc81cbc411f5b4f1e308f5b
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Thu Mar 13 00:22:45 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index a2876d18ceb..450c315bb77 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250312
+20250313
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a38494f9265..e7fcdb51ad4 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,20 @@
+2025-03-12  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-03-12  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/117512
+	* typeck.cc (cp_build_indirect_ref_1): Only do the *&e -> e
+	folding if the result would be an lvalue.
+
+2025-03-12  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-03-12  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/119134
+	* pt.cc (check_for_bare_parameter_packs): Check DECL_CONTEXT.
+
 2025-03-04  Patrick Palka  <ppalka@redhat.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index deffa4a9166..43d3b33883d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,47 @@
+2025-03-12  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-03-12  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/117512
+	* g++.dg/cpp0x/alignas23.C: New test.
+	* g++.dg/ext/align3.C: New test.
+	* g++.dg/ext/align4.C: New test.
+	* g++.dg/ext/align5.C: New test.
+
+2025-03-12  Marek Polacek  <polacek@redhat.com>
+
+	Backported from master:
+	2025-03-12  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/119134
+	* g++.dg/cpp2a/lambda-uneval24.C: New test.
+
+2025-03-12  Richard Earnshaw  <rearnsha@arm.com>
+
+	Backported from master:
+	2025-03-11  Richard Earnshaw  <rearnsha@arm.com>
+
+	* lib/target-supports.exp
+	(check_effective_target_arm_neon_h_ok_nocache): Return zero if
+	check_effective_target_arm_libc_fp_abi_ok reports failure.
+
+2025-03-12  Richard Earnshaw  <rearnsha@arm.com>
+
+	Backported from master:
+	2025-03-07  Richard Earnshaw  <rearnsha@arm.com>
+
+	* lib/target-supports.exp
+	(check_effective_target_arm_neon_h_ok_nocache): New function.
+	(check_effective_target_arm_neon_h_ok): Likewise.
+	(add_options_for_arm_neon_h): Likewise.
+	(check_effective_target_arm_libc_fp_abi_ok_nocache): Allow any
+	Arm target, not just arm32.
+	* gcc.target/arm/attr-neon-builtin-fail.c: Use it.
+	* gcc.target/arm/attr-neon-builtin-fail2.c: Likewise.
+	* gcc.target/arm/attr-neon-fp16.c: Likewise.
+	* gcc.target/arm/attr-neon2.c: Likewise.
+
 2025-03-11  Iain Buclaw  <ibuclaw@gdcproject.org>
 
 	Backported from master:

commit 1016eea220ffb75a8b8c3031918e1834a8a544e8
Author: Eric Botcazou <ebotcazou@adacore.com>
Date:   Fri Mar 14 00:01:46 2025 +0100

    Plug small loophole in the pattern matching done by -fdump-ada-spec
    
    gcc/c-family/
            PR ada/119265
            * c-ada-spec.cc (dump_ada_node) <INTEGER_TYPE>: Deal with typedefs
            of unsigned __int128.

diff --git a/gcc/c-family/c-ada-spec.cc b/gcc/c-family/c-ada-spec.cc
index e56ef10f443..0f54f904b6a 100644
--- a/gcc/c-family/c-ada-spec.cc
+++ b/gcc/c-family/c-ada-spec.cc
@@ -2193,8 +2193,8 @@ dump_ada_node (pretty_printer *buffer, tree node, tree type, int spc,
     case BOOLEAN_TYPE:
       if (TYPE_NAME (node)
 	  && !(TREE_CODE (TYPE_NAME (node)) == TYPE_DECL
-	       && !strcmp (IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (node))),
-			   "__int128")))
+	       && !strncmp (IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (node))),
+			   "__int128", 8)))
 	{
 	  if (TREE_CODE (TYPE_NAME (node)) == IDENTIFIER_NODE)
 	    pp_ada_tree_identifier (buffer, TYPE_NAME (node), node,

commit 158987a2887b5162bf84bbf9a94a92a77397483a
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Fri Mar 14 00:21:46 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 450c315bb77..f662df52798 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250313
+20250314
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 8f94beee4bf..4f849bc89d9 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+2025-03-13  Eric Botcazou  <ebotcazou@adacore.com>
+
+	PR ada/119265
+	* c-ada-spec.cc (dump_ada_node) <INTEGER_TYPE>: Deal with typedefs
+	of unsigned __int128.
+
 2025-03-05  Marek Polacek  <polacek@redhat.com>
 
 	Backported from master:

commit f8504e361c895b13d00e5c6a52a6cbb47fcc2a9d
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Sat Mar 15 00:23:47 2025 +0000

    Daily bump.

diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index f662df52798..75b3f29cb4b 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250314
+20250315
